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- Menentukan nama file WebP output. Jika dihilangkan,
cwebpakan melakukan kompresi, tetapi hanya melaporkan statistik. Menggunakan "-" sebagai nama output akan mengarahkan output ke 'stdout'. -- string- Menentukan 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 major.minor.revision) dan keluar.
-lossless- Mengenkode gambar tanpa kehilangan apa pun. Untuk gambar dengan area yang sepenuhnya transparan,
nilai piksel yang tidak terlihat (R/G/B atau Y/U/V) hanya akan dipertahankan jika
opsi
-exactdigunakan. -near_lossless int- Menentukan tingkat pra-pemrosesan gambar yang nyaris lossless. Opsi ini menyesuaikan
nilai piksel untuk membantu kompresi, tetapi memiliki dampak minimal pada kualitas
visual. Mode ini otomatis memicu mode kompresi lossless.
Rentangnya adalah
0(pra-pemrosesan maksimum) hingga100(tanpa pra-pemrosesan, default). Nilai standarnya adalah sekitar60. Perhatikan bahwa lossy dengan-q 100terkadang dapat memberikan hasil yang lebih baik. -q floatTentukan faktor kompresi untuk saluran RGB antara
0dan100. 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.Dalam kasus kompresi lossless (ditentukan oleh opsi
-lossless), faktor kecil memungkinkan kecepatan kompresi yang lebih cepat, tetapi menghasilkan file yang lebih besar. Kompresi maksimum dicapai menggunakan nilai100.-z intAktifkan mode kompresi
losslessdengan 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-qatau-mdigunakan, opsi tersebut akan membatalkan efek opsi ini.-alpha_q intTentukan faktor kompresi untuk kompresi alfa antara
0dan100. Kompresi alfa tanpa kehilangan dicapai menggunakan nilai100, sedangkan nilai yang lebih rendah akan menghasilkan kompresi lossy. Defaultnya adalah100.-preset stringMenetapkan kumpulan parameter yang telah ditetapkan untuk memenuhi jenis materi sumber. Nilai yang mungkin adalah:
default,photo,picture,drawing,icon,text.Karena
-presetmenimpa parameter lainnya nilai tersebut (kecuali-qsatu), opsi ini sebaiknya muncul terlebih dahulu dalam urutan argumen.-m intTentukan metode kompresi yang akan digunakan. Parameter ini mengontrol kompromi antara kecepatan encoding dan ukuran serta kualitas file yang dikompresi. Nilai yang mungkin berkisar dari
0hingga6. Nilai defaultnya adalah4. Jika nilai yang lebih tinggi digunakan, encoder akan menghabiskan lebih banyak waktu untuk memeriksa kemungkinan encoding tambahan dan menentukan 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 heightPangkas sumber menjadi persegi panjang dengan sudut kiri atas pada koordinat (
x_position,y_position) dan ukuranwidthxheight. Pemangkasan ini harus sepenuhnya berada dalam persegi panjang sumber. Catatan: pemangkasan diterapkan sebelum penskalaan apa pun.-resize width heightUbah ukuran sumber menjadi persegi panjang dengan ukuran
widthxheight. Jika salah satu (tetapi tidak keduanya) parameter lebar atau tinggi adalah0, nilai akan dihitung dengan mempertahankan rasio aspek. Catatan: penskalaan diterapkan setelah pemangkasan.-mtGunakan multi-threading untuk encoding, jika memungkinkan.
-low_memoryMengurangi penggunaan memori encoding lossy dengan menyimpan empat kali ukuran yang dikompresi (biasanya). Hal ini akan membuat encoding lebih lambat dan output memiliki ukuran dan distorsi yang sedikit berbeda. Flag ini hanya berlaku untuk metode 3 dan yang lebih baru, serta dinonaktifkan secara default. Perhatikan bahwa jika flag ini dinonaktifkan, akan ada beberapa efek samping pada bitstream: flag ini akan memaksa fitur bitstream tertentu seperti jumlah partisi (dipaksa ke
1). Perhatikan bahwa laporan ukuran bitstream yang lebih mendetail dicetak olehcwebpsaat menggunakan opsi ini.
Opsi Lossy
Opsi ini hanya efektif ketika melakukan encoding lossy (setelan default, 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
-sizedan-psnrdigunakan, nilai-sizeyang akan berlaku. -psnr float- Menentukan PSNR target (dalam dB) untuk mencoba dan mencapai output yang dikompresi.
Kompresi akan melakukan beberapa kali encoding parsial untuk mendapatkan
sesedikit mungkin target ini. Jika
-sizedan-psnrdigunakan, nilai-sizeakan diprioritaskan. -pass int- Menetapkan jumlah maksimum kartu yang akan digunakan selama dikotomi yang digunakan oleh opsi
-sizeatau-psnr. Nilai maksimumnya adalah10, defaultnya adalah1. Jika opsi-sizeatau-psnrdigunakan, tetapi-passtidak ditentukan, nilai default '6' akan digunakan. Jika-passditentukan, tetapi tidak-sizeatau-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
-qyang sama), tetapi dengan lebih sedikit distorsi visual.
Opsi lanjutan:
-f int- Tentukan kekuatan filter penghapusan pemblokiran, antara
0(tanpa pemfilteran) dan100(pemfilteran maksimum). Nilai0akan menonaktifkan pemfilteran apa pun. Nilai yang lebih tinggi akan meningkatkan kekuatan proses pemfilteran yang diterapkan setelah melakukan dekode gambar. Makin tinggi nilainya, makin halus gambar yang akan muncul. Nilai standar biasanya berkisar antara20hingga50. -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- Menggunakan konversi RGB->YUV yang lebih akurat dan lebih tajam. Perhatikan bahwa proses ini lebih lambat daripada konversi RGB->YUV 'cepat' default.
-sns int- Menentukan amplitudo pembentukan derau spasial. Pembentukan derau spasial
(atau disingkat sns) mengacu pada kumpulan umum algoritma bawaan
yang digunakan untuk menentukan area gambar mana yang harus menggunakan bit yang relatif lebih sedikit,
dan tempat lain untuk mentransfer bit ini dengan lebih baik. Rentang yang mungkin dimulai dari
0(algoritma nonaktif) ke100(efek maksimal). Nilai defaultnya adalah50. -segments int- Mengubah jumlah partisi yang akan digunakan selama segmentasi algoritma sns. Segmen harus berada dalam rentang
1hingga4. Nilai defaultnya adalah4. Opsi ini tidak berpengaruh untuk metode 3 dan yang lebih baru, kecuali jika-low_memorydigunakan. -partition_limit int- Menurunkan kualitas dengan membatasi jumlah bit yang digunakan oleh beberapa makroblok.
Rentang adalah
0(tanpa degradasi, default) hingga100(degradasi penuh). Nilai yang berguna biasanya sekitar30-70untuk gambar yang cukup besar. Dalam format VP8, partisi kontrol yang disebut memiliki batas 512k dan digunakan untuk menyimpan informasi berikut: apakah makroblok dilewatkan, segmen mana yang menjadi bagiannya, apakah dienkode sebagai mode intra 4x4 atau intra 16x16, dan terakhir mode prediksi yang akan digunakan untuk setiap sub-blok. Untuk gambar yang sangat besar, 512k hanya menyisakan ruang untuk beberapa bit per makroblok 16x16. Minimum absolut adalah 4 bit per macroblock. Informasi skip, segmen, dan mode dapat menggunakan hampir semua 4 bit ini (meskipun kemungkinannya kecil), yang bermasalah untuk gambar yang sangat besar. Tujuan Faktorpartition_limitmengontrol 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_limittidak 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-mdan-qjuga memengaruhi keputusan dan kemampuan encoder untuk mencapai batas ini.
Opsi Logging
Opsi ini mengontrol tingkat output:
-v- Cetak informasi tambahan (khususnya waktu encoding).
-print_psnr- Menghitung dan melaporkan PSNR (rasio Sinyal-Terhadap-Derau Puncak) rata-rata.
-print_ssim- Menghitung dan melaporkan SSIM rata-rata (metrik kemiripan struktural, lihat https://en.wikipedia.org/wiki/SSIM untuk detail tambahan).
-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- Menghasilkan peta ASCII tambahan dari informasi encoding. Nilai peta yang mungkin berkisar dari
1hingga6. Ini hanya dimaksudkan untuk membantu proses debug.
Opsi Tambahan
Opsi lanjutan lainnya adalah:
-s width height- Tentukan bahwa file input sebenarnya terdiri dari sampel Y'CbCr mentah
mengikuti rekomendasi ITU-R BT.601, dalam format linear 4:2:0. Bidang luminans memiliki ukuran
widthxheight. -pre int- Menentukan beberapa langkah prapemrosesan. Menggunakan nilai
2akan 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 dari
none,fast, ataubest, dalam urutan kompleksitas dan kelambatan yang meningkat. Defaultnya adalahfast. Secara internal, pemfilteran alfa dilakukan menggunakan empat kemungkinan prediksi (tidak ada, horizontal, vertikal, gradien). Modebestakan mencoba setiap mode secara bergantian dan memilih mode yang memberikan ukuran yang lebih kecil. Modefasthanya akan mencoba membuat tebakan aprii tanpa menguji semua mode. -alpha_method int- Menentukan algoritma yang digunakan untuk kompresi alfa:
0atau1. Algoritme0menunjukkan tidak ada kompresi,1menggunakan 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. Saluran alfa
kemudian direset ke nilai buram
255. -noalpha- Menggunakan opsi ini akan menghapus saluran alfa.
-hint string- Tentukan petunjuk tentang jenis gambar input. Nilai yang mungkin adalah:
photo,picture, ataugraph. -metadata stringDaftar metadata yang dipisahkan koma untuk disalin dari input ke output jika ada. Nilai yang valid:
all,none,exif,icc,xmp. Defaultnya adalahnone.Perhatikan bahwa setiap format input mungkin tidak mendukung semua kombinasi.
-noasmNonaktifkan semua pengoptimalan assembly.
Bug
Laporkan semua bug ke pelacak masalah: https://issues.webmproject.org
Patch diterima. 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 project Debian (dan dapat digunakan oleh orang lain).