cwebp

Nome

cwebp: compressione di un file immagine in un file WebP

Synopsis

cwebp [options] input_file -o output_file.webp

Descrizione

cwebp comprime un'immagine utilizzando il formato WebP. Il formato di input può essere PNG, JPEG, TIFF, WebP o campioni non elaborati Y'CbCr. Nota: i file PNG e WebP animati non sono supportati.

Opzioni

Le opzioni di base sono:

-o string
Specifica il nome del file WebP di output. Se omesso, cwebp eseguirà la compressione, ma segnalerà solo statistiche. Se usi "-" come nome dell'output, l'output verrà indirizzato a "stdout".
-- string
Specifica in modo esplicito il file di input. Questa opzione è utile se il file di input inizia con "-". Questa opzione deve apparire last. Eventuali altre opzioni successive verranno ignorate.
-h, -help
Un breve riepilogo sull'utilizzo.
-H, -longhelp
Un riepilogo di tutte le opzioni possibili.
-version
Stampa il numero della versione (con il nome main.minor.revision) ed esci.
-lossless
Codifica l'immagine senza alcuna perdita. Per le immagini con area completamente trasparente, i valori dei pixel invisibili (R/G/B o Y/U/V) verranno conservati solo se viene utilizzata l'opzione -exact.
-near_lossless int
Specifica il livello di pre-elaborazione delle immagini quasi senza perdita di dati. Questa opzione regola i valori dei pixel per favorire la comprimibilità, ma ha un impatto minimo sulla qualità visiva. Attiva automaticamente la modalità di compressione senza perdita di dati. L'intervallo va da 0 (pre-elaborazione massima) a 100 (nessuna pre-elaborazione, il valore predefinito). Il valore tipico è intorno a 60. Tieni presente che a volte la perdita di dati con -q 100 può generare risultati migliori.
-q float

Specifica il fattore di compressione per i canali RGB compreso tra 0 e 100. Il valore predefinito è 75.

In caso di compressione con perdita di dati (predefinita), un fattore ridotto produce un file più piccolo con qualità inferiore. La qualità migliore si ottiene utilizzando un valore pari a 100.

In caso di compressione senza perdita di dati (specificata dall'opzione -lossless), un piccolo fattore consente una velocità di compressione più elevata, ma produce un file di dimensioni maggiori. La compressione massima si ottiene utilizzando un valore di 100.

-z int

Attiva la modalità di compressione lossless con il livello specificato compreso tra 0 e 9, dove il livello 0 è il più veloce e 9 il più lento. La modalità veloce genera file di dimensioni maggiori rispetto a quelli più lenti. Un valore predefinito valido è -z 6. Questa opzione è in realtà una scorciatoia per alcune impostazioni predefinite di qualità e metodo. Se in un secondo momento vengono utilizzate le opzioni -q o -m, l'effetto di questa opzione non sarà valido.

-alpha_q int

Specifica il fattore di compressione per la compressione alfa tra 0 e 100. La compressione senza perdita di dati alfa viene ottenuta utilizzando un valore 100, mentre i valori più bassi comportano una compressione con perdita. Il valore predefinito è 100.

-preset string

Specifica un insieme di parametri predefiniti per adattarsi a un determinato tipo di materiale di origine. I valori possibili sono: default, photo, picture, drawing, icon, text.

Poiché -preset sovrascrive i valori degli altri parametri (tranne quello di -q), questa opzione dovrebbe preferibilmente apparire per prima nell'ordine degli argomenti.

-m int

Specifica il metodo di compressione da utilizzare. Questo parametro controlla il compromesso tra velocità di codifica e dimensioni e qualità del file compresso. I valori possibili sono compresi tra 0 e 6. Il valore predefinito è 4. Quando vengono utilizzati valori più elevati, il codificatore trascorre più tempo a ispezionare ulteriori possibilità di codifica e decidere il guadagno di qualità. Un valore inferiore può comportare tempi di elaborazione più rapidi, a scapito di dimensioni dei file maggiori e minore qualità della compressione.

-crop x_position y_position width height

Ritaglia l'origine in un rettangolo con angolo in alto a sinistra alle coordinate (x_position, y_position) e dalle dimensioni width x height. Questa area di ritaglio deve essere contenuta completamente all'interno del rettangolo di origine. Nota: il ritaglio viene applicato prima del ridimensionamento.

-resize width height

Ridimensiona l'origine in un rettangolo di dimensioni width x height. Se uno (ma non entrambi) dei parametri di larghezza o altezza è 0, il valore verrà calcolato mantenendo le proporzioni. Nota: la scalabilità viene applicata dopo il ritaglio.

-mt

Se possibile, utilizza il multi-threading per la codifica.

-low_memory

Per ridurre l'utilizzo della memoria durante la codifica con perdita di dati, risparmia quattro volte le dimensioni compresse (in genere). Ciò renderà la codifica più lenta e l'output leggermente diverso in termini di dimensioni e distorsione. Questo flag è valido solo per i metodi 3 e successivi ed è disattivato per impostazione predefinita. Tieni presente che se lasci disattivato questo flag si avranno alcuni effetti collaterali sul bitstream: verranno forzate alcune funzionalità di bitstream come il numero di partizioni (forzate a 1). Tieni presente che cwebp quando utilizzi questa opzione viene stampato un report più dettagliato sulle dimensioni del flusso di bit.

Opzioni con perdita

Queste opzioni sono efficaci solo quando si esegue la codifica con perdita di dati (valore predefinito, con o senza alpha).

-size int
Specifica una dimensione target (in byte) per provare a raggiungere l'output compresso. Il compressore eseguirà diversi passaggi di codifica parziale per avvicinarsi il più possibile a questo target. Se vengono utilizzati entrambi i valori -size e -psnr, prevarrà il valore -size.
-psnr float
Specifica un PSNR target (in dB) per provare a raggiungere l'output compresso. Il compressore eseguirà diversi passaggi di codifica parziale in modo da avvicinarsi il più possibile a questo target. Se vengono utilizzati entrambi i valori -size e -psnr, prevarrà il valore di -size.
-pass int
Imposta un numero massimo di tessere da utilizzare durante la dicotomia utilizzata dalle opzioni -size o -psnr. Il valore massimo è 10, il valore predefinito è 1. Se sono state utilizzate le opzioni -size o -psnr, ma -pass non è stato specificato, verrà utilizzato un valore predefinito di "6". Se -pass è specificato, ma né -size-psnr, verrà utilizzato un PSNR target di 40 dB.
-af
Attiva il filtro automatico. Questo algoritmo impiegherà più tempo per ottimizzare l'efficacia del filtro per raggiungere una qualità ben bilanciata.
-jpeg_like
Modifica la mappatura dei parametri interni in modo che corrisponda meglio alle dimensioni previste della compressione JPEG. Questo flag generalmente produce un file di output di dimensioni simili all'equivalente JPEG (per la stessa impostazione -q), ma con meno distorsione visiva.

Opzioni avanzate:

-f int
Specifica l'intensità del filtro di rimozione, scegliendo tra 0 (nessun filtro) e 100 (filtro massimo). Il valore 0 disattiverà tutti i filtri. Un valore maggiore aumenta l'intensità del processo di filtro applicato dopo la decodifica dell'immagine. Più alto è il valore, più l'immagine sarà uniforme. I valori tipici sono generalmente compresi tra 20 e 50.
-sharpness int
Specifica la nitidezza del filtro (se utilizzato). L'intervallo è da 0 (più nitido) a 7 (meno diesis). Il valore predefinito è 0.
-strong
Utilizza filtri efficaci (se vengono utilizzati filtri grazie all'opzione -f). I filtri efficaci sono attivi per impostazione predefinita.
-nostrong
Disabilita filtri efficaci (se vengono utilizzati filtri grazie all'opzione -f) e usa invece filtri semplici.
-sharp_yuv
Usa una conversione RGB->YUV più precisa e nitida, se necessario. Tieni presente che questo processo è più lento della conversione RGB->YUV predefinita "Veloce".
-sns int
Specifica l'ampiezza del modellamento del rumore spaziale. Il formato del rumore spaziale (o sns) si riferisce a una raccolta generale di algoritmi integrati utilizzati per decidere quale area dell'immagine dovrebbe utilizzare meno bit e dove altro per trasferirli meglio. L'intervallo possibile va da 0 (l'algoritmo non è attivo) a 100 (l'effetto massimo). Il valore predefinito è 50.
-segments int
Modifica il numero di partizioni da utilizzare durante la segmentazione dell'algoritmo sns. I segmenti devono essere compresi nell'intervallo da 1 a 4. Il valore predefinito è 4. Questa opzione non ha effetto per i metodi 3 e successivi, a meno che non venga utilizzato -low_memory.
-partition_limit int
Riduci la qualità limitando il numero di bit utilizzati da alcuni macroblocchi. L'intervallo è compreso tra 0 (nessuna riduzione, il valore predefinito) e 100 (Riduzione completa). I valori utili sono in genere compresi tra 30 e 70 per le immagini di dimensioni moderate. Nel formato VP8, la cosiddetta partizione di controllo ha un limite di 512 kB e viene utilizzata per archiviare le seguenti informazioni: se il macroblocco viene ignorato, a quale segmento appartiene, se codificato in modalità intra 4 x 4 o intra 16 x 16 e infine le modalità di previsione da utilizzare per ciascuno dei blocchi secondari. Per un'immagine molto grande, 512 kB lascia spazio solo per pochi bit per macroblocco 16 x 16. Il minimo assoluto è di 4 bit per macroblocco. Le informazioni relative a salti, segmenti e modalità possono utilizzare quasi tutti questi 4 bit (sebbene sia improbabile), il che costituisce un problema per le immagini molto grandi. Il fattore partition_limit controlla la frequenza con cui verrà utilizzata la modalità più costosa in bit (intra 4x4). Ciò è utile nel caso in cui venga raggiunto il limite di 512 kB e venga visualizzato il seguente messaggio: Codice di errore: 6 (PARTITION0_OVERFLOW: la partizione n. 0 è troppo grande per la dimensione 512 kB). Se l'utilizzo di -partition_limit non è sufficiente per soddisfare il vincolo di 512.000, si dovrebbero utilizzare meno segmenti per risparmiare più bit di intestazione per macroblocco. Vedi l'opzione -segments. Tieni presente che le opzioni -m e -q influiscono anche sulle decisioni del codificatore e sulla capacità di raggiungere questo limite.

Opzioni di logging

Queste opzioni controllano il livello di output:

-v
Stampare informazioni aggiuntive (in particolare il tempo di codifica).
-print_psnr
Calcola e registra la media dei PSNR (Peak-Signal-To-Noise rapporto).
-print_ssim
Calcola e registra la metrica SSIM media (strutturale somiglianza strutturale; vedi https://en.wikipedia.org/wiki/SSIM per ulteriori dettagli).
-print_lsim
Calcola e segnala la metrica di somiglianza locale (somma dell'errore più basso tra i pixel vicini posizionati).
-progress
Segnala l'avanzamento della codifica in percentuale.
-quiet
Non stampare nulla.
-short
Stampa solo brevi informazioni (dimensioni del file di output e PSNR) a scopo di test.
-map int
Genera una mappa ASCII aggiuntiva delle informazioni di codifica. I possibili valori della mappa sono compresi tra 1 e 6. In questo modo, è possibile eseguire solo il debug.

Opzioni aggiuntive

Le opzioni più avanzate sono:

-s width height
Specifica che il file di input è in realtà costituito da campioni non elaborati Y'CbCr in base al consiglio ITU-R BT.601, in formato lineare 4:2:0. Il piano lume ha dimensioni width x height.
-pre int
Specifica alcuni passaggi di pre-elaborazione. L'utilizzo di un valore 2 attiverà il dithering pseudo-casuale dipendente dalla qualità durante la conversione RGBA->YUVA (solo compressione con perdita di dati).
-alpha_filter string
Specifica il metodo di filtro predittivo per il piano alpha. Uno tra none, fast o best, in ordine crescente di complessità e lentezza. Il valore predefinito è fast. Internamente, i filtri alfa vengono eseguiti utilizzando quattro possibili previsioni (nessuna, orizzontale, verticale, gradiente). La modalità best proverà ciascuna modalità a turno e sceglierà quella che dà la dimensione più piccola. La modalità fast proverà a formulare un'ipotesi a priorità senza testare tutte le modalità.
-alpha_method int
Specifica l'algoritmo utilizzato per la compressione alfa: 0 o 1. L'algoritmo 0 non indica alcuna compressione, 1 utilizza il formato senza perdita di dati WebP per la compressione. Il valore predefinito è 1.
-exact
Conserva i valori RGB nell'area trasparente. L'impostazione predefinita è disattivata, per favorire la comprimibilità.
-blend_alpha int
Questa opzione unisce il canale alfa (se presente) con l'origine utilizzando il colore di sfondo specificato in esadecimale come 0xrrggbb. Il canale alfa viene successivamente reimpostato sul valore opaco 255.
-noalpha
Se utilizzi questa opzione, il canale alfa verrà eliminato.
-hint string
Specifica il suggerimento relativo al tipo di immagine di input. I valori possibili sono: photo, picture o graph.
-metadata string

Un elenco di metadati separati da virgole da copiare dall'input all'output, se presente. Valori validi: all, none, exif, icc, xmp. Il valore predefinito è none.

Tieni presente che ogni formato di input potrebbe non supportare tutte le combinazioni.

-noasm

Disattiva tutte le ottimizzazioni dell'assemblaggio.

Bug

Esempi

cwebp -q 50 -lossless picture.png -o picture_lossless.webp
cwebp -q 70 picture_with_alpha.png -o picture_with_alpha.webp
cwebp -sns 70 -f 50 -size 60000 picture.png -o picture.webp
cwebp -o picture.webp -- ---picture.png

Autori

cwebp fa parte di libwebp ed è stato scritto dal team di WebP. La struttura di origine più recente è disponibile all'indirizzo https://chromium.googlesource.com/webm/libwebp/.

Questa pagina del manuale è stata scritta per il progetto Debian (e può essere utilizzata da altri).