Nama
cwebp
-- Mengompresi file gambar ke file WebP
Synopsis
cwebp [options] input_file -o output_file.webp
Deskripsi
cwebp
mengompresi gambar menggunakan format WebP. Format input dapat berupa
PNG, JPEG, TIFF, WebP, atau sampel Y'CbCr mentah.
Catatan: File PNG dan WebP animasi tidak didukung.
Opsi
Opsi dasarnya adalah:
-o string
- Tentukan nama file WebP output. Jika dihilangkan,
cwebp
akan menjalankan kompresi namun hanya melaporkan statistik. Menggunakan "-" karena nama output akan mengarahkan output ke 'stdout'. -- string
- Tentukan file input secara eksplisit. Opsi ini berguna jika input
file dimulai dengan '-' ke titik akhir pelanggan. Opsi ini harus muncul
last
. Opsi lain setelah itu akan diabaikan. -h, -help
- Ringkasan penggunaan singkat.
-H, -longhelp
- Ringkasan semua kemungkinan opsi.
-version
- Cetak nomor versi (sebagai primary.minor.revision) lalu keluar.
-lossless
- Mengenkode gambar tanpa kehilangan apa pun. Untuk gambar dengan
area transparan penuh,
nilai piksel yang tidak terlihat (R/G/B atau Y/U/V) hanya akan dipertahankan jika
Opsi
-exact
digunakan. -near_lossless int
- Menentukan tingkat pra-pemrosesan gambar yang nyaris lossless. Opsi ini menyesuaikan
nilai piksel untuk membantu kompresi, tetapi memiliki dampak minimal pada elemen visual
{i>sandwich<i} itu. Mode ini akan memicu mode kompresi lossless secara otomatis.
Rentangnya adalah
0
(pra-pemrosesan maksimum) hingga100
(tanpa pra-pemrosesan, default). Nilai standarnya adalah sekitar60
. Perhatikan bahwa lossy dengan-q 100
terkadang memberikan hasil yang lebih baik. -q float
Tentukan faktor kompresi untuk saluran RGB antara
0
dan100
. Defaultnya adalah75
.Dalam kasus kompresi lossy (default), faktor kecil menghasilkan {i>file<i} dengan kualitas yang lebih rendah. Kualitas terbaik dicapai dengan menggunakan nilai
100
.Untuk kompresi lossless (ditentukan oleh opsi
-lossless
), faktor kecil memungkinkan kecepatan kompresi lebih cepat, tetapi menghasilkan file yang lebih besar. Kompresi maksimum dicapai menggunakan nilai100
.-z int
Aktifkan mode kompresi
lossless
dengan tingkat yang ditentukan antara 0 dan 9, dengan level 0 adalah yang tercepat, 9 adalah yang paling lambat. Mode cepat menghasilkan ukuran file yang lebih besar daripada yang lebih lambat. Default yang baik adalah-z 6
. Opsi ini sebenarnya adalah pintasan untuk beberapa setelan standar untuk kualitas metode. Jika opsi-q
atau-m
selanjutnya digunakan, opsi tersebut akan membatalkan efek opsi ini.-alpha_q int
Tentukan faktor kompresi untuk kompresi alfa antara
0
dan100
. Kompresi alfa tanpa kehilangan dicapai menggunakan nilai100
, sedangkan nilai yang lebih rendah akan menghasilkan kompresi lossy. Defaultnya adalah100
.-preset string
Menetapkan kumpulan parameter yang telah ditetapkan untuk memenuhi jenis materi sumber. Nilai yang mungkin adalah:
default
,photo
,picture
,drawing
,icon
,text
.Karena
-preset
menimpa parameter lainnya nilai tersebut (kecuali-q
satu), opsi ini sebaiknya muncul terlebih dahulu dalam urutan argumen.-m int
Tentukan metode kompresi yang akan digunakan. Parameter ini mengontrol nilai antara kecepatan encoding serta ukuran dan kualitas file yang dikompresi. Nilai yang mungkin berkisar dari
0
hingga6
. Nilai defaultnya adalah4
. Jika lebih tinggi nilai tersebut digunakan, encoder akan menghabiskan lebih banyak waktu untuk kemungkinan pengkodean dan memutuskan peningkatan kualitas. Nilai yang lebih rendah dapat menghasilkan waktu pemrosesan yang lebih cepat dengan mengorbankan ukuran file yang lebih besar dan kualitas kompresi yang lebih rendah.-crop x_position y_position width height
Memangkas sumber menjadi persegi panjang dengan sudut kiri atas pada koordinat (
x_position
,y_position
) dan ukuranwidth
xheight
. Pemangkasan ini harus sepenuhnya berada dalam persegi panjang sumber. Catatan: pemangkasan diterapkan sebelum penskalaan apa pun.-resize width height
Ubah ukuran sumber menjadi persegi panjang dengan ukuran
width
xheight
. Jika salah satu (tetapi bukan keduanya) untuk parameter lebar atau tinggi adalah0
, nilainya akan menjadi dihitung dengan mempertahankan rasio aspek. Catatan: penskalaan diterapkan setelah pemangkasan.-mt
Gunakan multi-threading untuk encoding, jika memungkinkan.
-low_memory
Kurangi penggunaan memori encoding lossy dengan menghemat empat kali lipat ukuran (biasanya). Hal ini akan memperlambat proses encoding dan sedikit berbeda dalam hal ukuran dan distorsi. Penanda ini hanya berlaku untuk metode 3 dan yang lebih baru, dan nonaktif secara {i>default<i}. Perhatikan bahwa membiarkan tanda ini tidak aktif akan memiliki beberapa efek samping pada bitstream: memaksa bitstream tertentu fitur seperti jumlah partisi (dipaksa
1
). Perhatikan bahwa jika laporan detail ukuran bitstream dicetak olehcwebp
saat menggunakan sebelumnya.
Opsi Lossy
Opsi ini hanya efektif ketika melakukan encoding lossy (default, dengan atau tanpa alfa).
-size int
- Tentukan ukuran target (dalam byte) yang akan dicoba dan dijangkau untuk file yang dikompresi
{i>output<i} tersebut. Kompresor akan membuat beberapa
lintasan penyandian data parsial dalam
untuk mendekati target ini. Jika
-size
dan-psnr
digunakan, nilai-size
yang akan berlaku. -psnr float
- Tentukan PSNR target (dalam dB) untuk mencoba menjangkau output yang dikompresi.
Kompresor akan membuat beberapa
lintasan penyandian data parsial untuk mendapatkan
hasil sedekat mungkin dengan target ini. Jika
-size
dan-psnr
digunakan, Nilai-size
akan berlaku. -pass int
- Menetapkan jumlah maksimum kartu yang akan digunakan selama dikotomi yang digunakan oleh opsi
-size
atau-psnr
. Nilai maksimum adalah10
, default-nya adalah1
. Jika opsi-size
atau-psnr
digunakan, tetapi-pass
tidak ditentukan, nilai default dari '6' kartu akan digunakan. Jika-pass
ditentukan, tetapi tidak-size
atau-psnr
, target PSNR sebesar 40 dB akan digunakan. -af
- Mengaktifkan filter otomatis. Algoritma ini akan menghabiskan waktu tambahan untuk mengoptimalkan kekuatan pemfilteran untuk mencapai kualitas yang seimbang.
-jpeg_like
- Ubah pemetaan parameter internal agar lebih cocok dengan ukuran yang diharapkan
Kompresi JPEG. Penanda ini umumnya akan
menghasilkan file {i>output<i} berupa
ukuran yang mirip dengan JPEG setara (untuk setelan
-q
yang sama), tetapi dengan lebih sedikit distorsi visual.
Opsi lanjutan:
-f int
- Menentukan kekuatan filter depemblokiran, di antara
0
(tanpa pemfilteran) dan100
(pemfilteran maksimum). Nilai0
akan menonaktifkan pemfilteran. Nilai yang lebih tinggi akan meningkatkan kekuatan proses pemfilteran yang diterapkan setelah melakukan dekode gambar. Semakin tinggi nilainya, semakin halus gambarnya akan muncul. Nilai standar biasanya dalam rentang20
hingga50
. -sharpness int
- Menentukan ketajaman pemfilteran (jika digunakan). Rentangnya adalah
0
(paling tajam) hingga7
(paling tidak tajam). Default-nya adalah0
. -strong
- Gunakan pemfilteran yang ketat (jika pemfilteran digunakan berkat
-f
). Pemfilteran yang kuat diaktifkan secara default. -nostrong
- Menonaktifkan pemfilteran yang ketat (jika pemfilteran sedang digunakan berkat
-f
) dan menggunakan pemfilteran sederhana. -sharp_yuv
- Gunakan konversi RGB->YUV yang lebih akurat dan tajam jika diperlukan. Perhatikan bahwa proses lebih lambat daripada proses 'cepat' default RGB->konversi YUV.
-sns int
- Tentukan amplitudo pembentukan derau spasial. Pembentukan derau spasial
(atau disingkat sns) mengacu pada kumpulan umum algoritma bawaan
digunakan untuk memutuskan area gambar mana yang
harus menggunakan bit yang relatif lebih sedikit,
dan tempat lain untuk
mentransfer bit ini. Rentang yang mungkin dimulai dari
0
(algoritma nonaktif) ke100
(efek maksimal). Nilai defaultnya adalah50
. -segments int
- Ubah jumlah partisi yang akan digunakan selama segmentasi sns
algoritme. Segmen harus berada dalam rentang
1
hingga4
. Nilai defaultnya adalah4
. Opsi ini tidak berpengaruh untuk metode 3 dan yang lebih baru, kecuali jika-low_memory
data. -partition_limit int
- Degradasi kualitas dengan membatasi jumlah bit yang digunakan oleh beberapa macroblok.
Rentang adalah
0
(tanpa degradasi, default) hingga100
(degradasi penuh). Nilai yang berguna biasanya sekitar30
-70
untuk gambar yang cukup besar. Di beberapa format VP8, yang disebut partisi kontrol memiliki batas 512k dan digunakan untuk menyimpan informasi berikut: apakah makroblok dilewati, segmen mana yang berada di dalamnya, apakah kode itu dikodekan sebagai intra 4x4 atau mode intra 16x16, dan terakhir mode prediksi yang digunakan untuk masing-masing sub-blok. Untuk gambar yang sangat besar, 512K hanya menyisakan ruang untuk beberapa bit per Makroblok 16x16. Minimum absolut adalah 4 bit per macroblock. Lewati, informasi segmen, dan mode dapat menghabiskan hampir semua 4 bit ini (meskipun kasus ini tidak mungkin terjadi), yang bermasalah untuk gambar yang sangat besar. Tujuan Faktorpartition_limit
mengontrol seberapa sering mode yang paling mahal (intra 4x4) akan digunakan. Hal ini berguna jika batas 512k tercapai dan pesan berikut akan ditampilkan: Kode error: 6 (PARTITION0_OVERFLOW: Partisi #0 terlalu besar untuk muat 512k). Jika menggunakan-partition_limit
tidak cukup untuk memenuhi batasan 512k, harus ada menggunakan lebih sedikit segmen untuk menyimpan lebih banyak bit {i>header<i} per macroblok. Lihat opsi-segments
. Perhatikan bahwa opsi-m
dan-q
juga memengaruhi keputusan dan kemampuan encoder mencapai batas ini.
Opsi Logging
Opsi ini mengontrol tingkat output:
-v
- Mencetak informasi tambahan (khususnya waktu encoding).
-print_psnr
- Hitung dan laporkan PSNR (rasio Puncak Sinyal-Ke-bisingan) rata-rata.
-print_ssim
- Hitung dan laporkan SSIM rata-rata (metrik kemiripan struktural, lihat https://en.wikipedia.org/wiki/SSIM untuk detail selengkapnya).
-print_lsim
- Hitung dan laporkan metrik kemiripan lokal (jumlah error terendah di antara tetangga piksel yang ditempatkan).
-progress
- Laporkan progres encoding dalam persen.
-quiet
- Jangan cetak apa pun.
-short
- Hanya cetak informasi singkat (ukuran file output dan PSNR) untuk pengujian tujuan.
-map int
- Output peta ASCII tambahan dari informasi encoding. Nilai peta yang mungkin
rentang dari
1
hingga6
. Ini hanya dimaksudkan untuk membantu proses debug.
Opsi Tambahan
Opsi lanjutan lainnya adalah:
-s width height
- Menentukan bahwa file input benar-benar terdiri dari sampel Y'CbCr mentah
mengikuti rekomendasi ITU-R BT.601, dalam format linear 4:2:0. Tujuan
bidang luma memiliki ukuran
width
xheight
. -pre int
- Tentukan beberapa langkah pra-pemrosesan. Menggunakan nilai
2
akan memicu dithering pseudo-random yang bergantung pada kualitas selama konversi RGBA->YUVA (hanya kompresi lossy). -alpha_filter string
- Menentukan metode pemfilteran prediktif untuk bidang alfa. Salah satu
none
,fast
, ataubest
, dalam meningkatkan kompleksitas dan urutan kelambatan. Defaultnya adalahfast
. Secara internal, pemfilteran alfa dilakukan menggunakan empat prediksi yang mungkin terjadi (none, horizontal, vertical, gradient).best
akan mencoba setiap mode secara bergantian dan memilih mode yang memberi lebih ukuran. Modefast
hanya akan mencoba membuat tebakan aprii tanpa menguji semua mode. -alpha_method int
- Tentukan algoritma yang digunakan untuk kompresi alfa:
0
atau1
. Algoritma0
menunjukkan tidak adanya kompresi,1
menggunakan format lossless WebP untuk kompresi. Defaultnya adalah1
. -exact
- Pertahankan nilai RGB di area transparan. Setelan defaultnya adalah nonaktif, untuk membantu kompresibilitas.
-blend_alpha int
- Opsi ini memadukan saluran alfa (jika ada) dengan sumber menggunakan
warna latar belakang yang ditentukan dalam heksadesimal
sebagai 0xrrggbb. Alfa
saluran kemudian direset ke nilai buram
255
. -noalpha
- Menggunakan opsi ini akan menghapus saluran alfa.
-hint string
- Tentukan petunjuk tentang jenis gambar input. Kemungkinan nilainya adalah:
photo
,picture
ataugraph
. -metadata string
Daftar metadata yang dipisahkan koma yang akan disalin dari input ke output jika saat ini. Nilai yang valid:
all
,none
,exif
,icc
,xmp
. Defaultnya adalahnone
.Perhatikan, setiap format input mungkin tidak mendukung semua kombinasi.
-noasm
Nonaktifkan semua pengoptimalan assembly.
Bug
Laporkan semua bug ke issue tracker: https://issues.webmproject.org
Patch boleh dipasang! Lihat halaman ini untuk memulai: https://www.webmproject.org/code/contribute/submitting-patches/
Contoh
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
Penulis
cwebp
adalah bagian dari libwebp
, dan ditulis oleh tim WebP.
Hierarki sumber terbaru tersedia di
https://chromium.googlesource.com/webm/libwebp/
Halaman manual ini ditulis untuk proyek Debian (dan dapat digunakan oleh lainnya).