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) a100
(nessuna pre-elaborazione, il valore predefinito). Il valore tipico è intorno a60
. 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
e100
. 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 di100
.-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
e100
. La compressione senza perdita di dati alfa viene ottenuta utilizzando un valore100
, 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
e6
. 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 dimensioniwidth
xheight
. 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
xheight
. 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 checwebp
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
né-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) e100
(filtro massimo). Il valore0
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 tra20
e50
. -sharpness int
- Specifica la nitidezza del filtro (se utilizzato). L'intervallo è da
0
(più nitido) a7
(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) a100
(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
a4
. 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) e100
(Riduzione completa). I valori utili sono in genere compresi tra30
e70
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 fattorepartition_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
e6
. 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
xheight
. -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
obest
, 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
o1
. L'algoritmo0
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
ograph
. -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
Segnala tutti i bug nel Issue Tracker: https://bugs.chromium.org/p/webp
Le patch sono ben accette! Per iniziare, visita questa pagina: https://www.webmproject.org/code/contribute/submitting-patches/
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).