Nome
cwebp
-- Comprimi un file immagine in un file WebP
Trama
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 Y'CbCr non elaborati.
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à compressione, ma solo statistiche. Se utilizzi "-" come nome dell'output, l'output verrà indirizzato a "stdout". -- string
- Specifica in modo esplicito il file di input. Questa opzione è utile se l'input
inizia con "-" ad esempio. Questa opzione deve essere visualizzata come
last
. Eventuali altre opzioni successive verranno ignorate. -h, -help
- Un breve riepilogo dell'utilizzo.
-H, -longhelp
- Un riepilogo di tutte le opzioni possibili.
-version
- Stampa il numero di versione (come major.minor.revision) ed esci.
-lossless
- Codifica l'immagine senza alcuna perdita. Per le immagini con un'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 preelaborazione delle immagini quasi senza perdita di dati. Questa opzione regola
pixel per facilitare la comprimibilità, ma ha un impatto minimo sull'elemento
qualità. Attiva automaticamente la modalità di compressione senza perdita di dati.
L'intervallo va da
0
(pre-elaborazione massima) a100
(nessuna pre-elaborazione, valore predefinito). Il valore tipico è di circa60
. Tieni presente che in perdita con-q 100
a volte può produrre risultati migliori. -q float
Specifica il fattore di compressione per i canali RGB compreso tra
0
e100
. La Il valore predefinito è75
.In caso di compressione con perdita di dati (impostazione predefinita), un piccolo fattore produce una riduzione con una qualità inferiore. La qualità migliore si ottiene utilizzando il valore
100
.In caso di compressione senza perdita di dati (specificata dall'opzione
-lossless
), un coefficiente ridotto consente una maggiore velocità di compressione, ma produce un file più grande. La compressione massima si ottiene utilizzando il valore100
.-z int
Attiva la modalità di compressione
lossless
con il livello specificato compreso tra 0 e 9, dove 0 è il livello più veloce e 9 il più lento. La modalità rapida produce file di dimensioni maggiori rispetto a quelle più lente. Un buon valore predefinito è-z 6
. Questa opzione è in realtà una scorciatoia per alcune impostazioni predefinite per la qualità e il metodo. Se in un secondo momento vengono utilizzate le opzioni-q
o-m
, l'effetto di questa opzione verrà annullato.-alpha_q int
Specifica il fattore di compressione per la compressione alpha compreso tra
0
e100
. La compressione senza perdita di dati di alpha viene ottenuta utilizzando un valore di100
, mentre i valori più bassi comportano una compressione con perdita di dati. L'impostazione predefinita è100
.-preset string
Specifica un insieme di parametri predefiniti in base a un determinato tipo di materiale di origine. I valori possibili sono:
default
,photo
,picture
,drawing
,icon
etext
.Poiché
-preset
sovrascrive gli altri parametri, (tranne-q
) uno), preferibilmente questa opzione dovrebbe apparire per prima nell'ordine argomenti.-m int
Specifica il metodo di compressione da utilizzare. Questo parametro controlla il livello tra la velocità di codifica e le dimensioni e la qualità del file compresso. I valori possibili vanno da
0
a6
. Il valore predefinito è4
. Quando è più alta vengono utilizzati, l'encoder dedicherà più tempo a ispezionare possibilità di codifica e decidere il guadagno di qualità. Un valore inferiore può contribuire a ridurre i tempi di elaborazione a scapito delle dimensioni dei file e della 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 dimensioniwidth
xheight
. Questa area di ritaglio deve essere completamente contenuta nel rettangolo di origine. Nota: il ritaglio viene applicata prima di qualsiasi scala.-resize width height
Ridimensiona l'origine in modo che abbia le dimensioni di un rettangolo di
width
xheight
. Se uno (ma non entrambi) dei parametri larghezza o altezza è0
, il valore verrà calcolato mantenendo le proporzioni. Nota: la scalabilità viene applicata dopo ritagliato.-mt
Se possibile, utilizza il multi-threading per la codifica.
-low_memory
Riduci l'utilizzo di memoria della codifica con perdita salvando quattro volte le dimensioni compresse (in genere). In questo modo la codifica è più lenta e l'output leggermente diverse per dimensioni e distorsione. Questo flag è valido solo per metodi 3 e successivi ed è disattivata per impostazione predefinita. Tieni presente che se lasci disattivato questo flag, il bitstream avrà alcuni effetti collaterali: verranno forzate determinate funzionalità del bitstream, come il numero di partizioni (impostato su
1
). Tieni presente che, quando utilizzi questa opzione,cwebp
stampa un report più dettagliato sulle dimensioni del bitstream.
Opzioni con perdita di dati
Queste opzioni sono efficaci solo durante la codifica con perdita di dati (valore predefinito, con o senza alpha).
-size int
- Specifica una dimensione target (in byte) da provare a raggiungere per l'output compresso. Il compressore eseguirà diversi passaggi di codifica parziale per avvicinarsi il più possibile a questo target. Se vengono utilizzati sia
-size
che-psnr
, avrà la precedenza il valore-size
. -psnr float
- Specifica un PSNR target (in dB) da raggiungere per l'output compresso.
Il compressore effettua diversi passaggi della codifica parziale per ottenere
il più vicino possibile a questo target. Se vengono utilizzati sia
-size
che-psnr
, prevarrà il valore-size
. -pass int
- Imposta un numero massimo di tessere da usare 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 non è stato specificato-pass
, verrà utilizzato un valore predefinito di 6 passaggi. Se viene specificato-pass
, ma né-size
né-psnr
sono, verrà utilizzato un PSNR target di 40 dB. -af
- Attiva il filtro automatico. Questo algoritmo dedica più tempo all'ottimizzazione la forza di filtro per raggiungere una qualità ben bilanciata.
-jpeg_like
- Modifica la mappatura dei parametri interni in modo che corrisponda meglio alla dimensione prevista del
Compressione JPEG. In genere, questo flag 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 sblocco, tra
0
(nessun filtro) e100
(filtro massimo). Un valore0
disattiva qualsiasi filtro. Un valore più alto aumenterà l'efficacia del processo di filtro applicato dopo aver decodificato l'immagine. Maggiore è il valore, più fluida sarà l'immagine . I valori tipici sono generalmente compresi tra20
e50
. -sharpness int
- Specifica la nitidezza del filtro (se utilizzato). L'intervallo è
0
(più nitido) a7
(meno diesis). Il valore predefinito è0
. -strong
- Utilizza un filtro rigoroso (se il filtro viene utilizzato grazie all'opzione
-f
). Il filtro rigoroso è attivo per impostazione predefinita. -nostrong
- Disattiva il filtro avanzato (se viene utilizzato grazie all'opzione
-f
) e utilizza invece il filtro semplice. -sharp_yuv
- Utilizza una conversione RGB->YUV più precisa e nitida. Tieni presente che questa procedura è più lenta della conversione RGB->YUV "veloce" predefinita.
-sns int
- Specifica l'ampiezza della definizione del rumore spaziale. La definizione del rumore spaziale
(o SNS per abbreviazione) si riferisce a una raccolta generale di algoritmi integrati
utilizzati per decidere quale area dell'immagine deve utilizzare relativamente meno bit
e dove trasferire meglio questi bit. L'intervallo possibile va da
0
(l'algoritmo è disattivato) 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
1
-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 va da
0
(nessun degrado, il valore predefinito) a100
(degrado completo). I valori utili sono in genere intorno a30
-70
per immagini di dimensioni moderatamente grandi. Nel formato VP8, la cosiddetta partizione di controllo ha un limite di 512 KB e viene utilizzata per memorizzare le seguenti informazioni: se il macroblocco viene saltato, a quale segmento appartiene, se è codificato come modalità intra 4x4 o intra 16x16 e infine le modalità di previsione da utilizzare per ciascuno dei sottoblocchi. Per un'immagine molto grande, 512k lascia spazio a pochi bit al Macroblocco 16 x 16. Il valore minimo assoluto è 4 bit per macroblocco. Le informazioni su salti, segmenti e modalità possono utilizzare quasi tutti questi 4 bit (anche se la situazione è improbabile), il che rappresenta un problema per le immagini di grandi dimensioni. La Il fattorepartition_limit
controlla la frequenza con cui la modalità più costosa (4x4 intra). Ciò è utile nel caso in cui venga raggiunto il limite di 512.000 e viene visualizzato il seguente messaggio: Codice di errore: 6 (PARTITION0_OVERFLOW: la partizione 0 è troppo grande per adattarsi a 512k). Se l'utilizzo di-partition_limit
non è sufficiente per soddisfare il vincolo di 512 KB, è necessario utilizzare meno segmenti per risparmiare più bit di intestazione per macroblocco. Consulta l'opzione-segments
. Tieni presente che le opzioni-m
e-q
influiscono anche sul le decisioni del codificatore e la capacità di raggiungere questo limite.
Opzioni di logging
Queste opzioni controllano il livello di output:
-v
- Stampa di informazioni aggiuntive (in particolare il tempo di codifica).
-print_psnr
- Calcola e segnala il valore PSNR (rapporto picco-segnale-rumore).
-print_ssim
- Calcola e segnala l'SIM media (metrica di somiglianza strutturale), vedi https://en.wikipedia.org/wiki/SSIM per ulteriori dettagli).
-print_lsim
- Calcolo e generazione di report sulla metrica di somiglianza locale (somma dell'errore più basso tra i pixel vicini collocati).
-progress
- Segnala l'avanzamento della codifica in percentuale.
-quiet
- Non stampare nulla.
-short
- Stampa solo informazioni brevi (dimensioni del file di output e PSNR) per il test scopi.
-map int
- Genera una mappa ASCII aggiuntiva delle informazioni di codifica. I possibili valori mappa vanno da
1
a6
. Questo è solo per facilitare il debug.
Opzioni aggiuntive
Altre opzioni avanzate sono:
-s width height
- Specifica che il file di input è costituito da campioni Y'CbCr non elaborati
in base alle raccomandazioni ITU-R BT.601, in formato lineare 4:2:0. La
le dimensioni del piano luminario sono
width
xheight
. -pre int
- Specifica alcuni passaggi di pre-elaborazione. L'utilizzo del valore
2
attiverà 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 di
none
,fast
obest
, in ordine crescente di complessità e lentezza. Il valore predefinito èfast
. Internamente, il filtro alpha viene eseguito utilizzando quattro previsioni possibili (nessuna, orizzontale, verticale, gradiente). La modalitàbest
prova ogni modalità a turno e sceglie quella che genera la dimensione più ridotta. La modalitàfast
cercherà solo di formulare un'ipotesi a priori senza testare tutte le modalità. -alpha_method int
- Specifica l'algoritmo utilizzato per la compressione alfa:
0
o1
. Algoritmo0
indica nessuna compressione,1
utilizza il formato WebP lossless per la compressione. Il valore predefinito è1
. -exact
- Conserva i valori RGB in un'area trasparente. L'impostazione predefinita è disattivata, per comprimibilità.
-blend_alpha int
- Questa opzione fonde il canale alfa (se presente) con l'origine utilizzando il colore di sfondo specificato in esadecimale come 0xrrggbb. Alfa
del canale viene successivamente reimpostato sul valore opaco
255
. -noalpha
- L'utilizzo di questa opzione comporterà l'eliminazione del canale alpha.
-hint string
- Specifica il suggerimento relativo al tipo di immagine di input. I valori possibili sono:
photo
,picture
ograph
. -metadata string
Un elenco separato da virgole di metadati da copiare dall'input all'output, se presente. Valori validi:
all
,none
,exif
,icc
,xmp
. L'impostazione predefinita ènone
.Tieni presente che ogni formato di input potrebbe non supportare tutte le combinazioni.
-noasm
Disattiva tutte le ottimizzazioni dell'assembly.
Bug
Segnala tutti i bug tramite Issue Tracker: https://issues.webmproject.org
Le patch sono ben accette! Per iniziare, consulta 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 WebP.
L'albero 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).