webp

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 contoh PNG, JPEG, TIFF, WebP, atau Y'CbCr mentah. Catatan: File animasi PNG dan WebP tidak didukung.

Opsi

Opsi dasarnya adalah:

-o string
Menentukan nama file WebP output. Jika dihilangkan, cwebp akan melakukan kompresi tetapi hanya melaporkan statistik. Penggunaan "-" sebagai nama output akan mengarahkan output ke 'stdout'.
-- string
Menentukan file input secara eksplisit. Opsi ini berguna jika misalnya, file input dimulai dengan '-'. Opsi ini harus muncul last. Opsi lainnya setelah itu akan diabaikan.
-h, -help
Ringkasan penggunaan singkat.
-H, -longhelp
Ringkasan semua opsi yang memungkinkan.
-version
Cetak nomor versi (sebagai major.minor.revision) dan keluar.
-lossless
Mengenkode gambar tanpa kehilangan. Untuk gambar dengan area transparan sepenuhnya, nilai piksel yang tidak terlihat (R/G/B atau Y/U/V) hanya akan dipertahankan jika opsi -exact digunakan.
-near_lossless int
Menentukan tingkat prapemrosesan gambar yang nyaris tanpa kehilangan data. Opsi ini menyesuaikan nilai piksel untuk membantu kompresibilitas, tetapi memiliki dampak minimal terhadap kualitas visual. Memicu mode kompresi lossless secara otomatis. Rentangnya adalah 0 (prapemrosesan maksimum) hingga 100 (tanpa pra-pemrosesan, default). Nilai biasanya adalah sekitar 60. Perlu diketahui bahwa lossy dengan -q 100 terkadang dapat memberikan hasil yang lebih baik.
-q float

Tentukan faktor kompresi untuk saluran RGB antara 0 dan 100. Defaultnya adalah 75.

Dalam kasus kompresi lossy (default), faktor kecil akan menghasilkan file yang lebih kecil dengan kualitas 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 dengan menggunakan nilai 100.

-z int

Aktifkan mode kompresi lossless dengan level yang ditentukan antara 0 dan 9, dengan level 0 adalah yang tercepat, 9 sebagai yang paling lambat. Mode cepat menghasilkan ukuran file yang lebih besar daripada file yang lebih lambat. Default yang baik adalah -z 6. Opsi ini sebenarnya adalah pintasan untuk beberapa setelan yang telah ditentukan untuk kualitas dan metode. Jika opsi -q atau -m kemudian digunakan, efek dari opsi ini akan membatalkannya.

-alpha_q int

Tentukan faktor kompresi untuk kompresi alfa antara 0 dan 100. Kompresi alfa lossless dicapai menggunakan nilai 100, sedangkan nilai yang lebih rendah menghasilkan kompresi lossy. Default-nya adalah 100.

-preset string

Menentukan kumpulan parameter yang telah ditentukan agar sesuai dengan jenis materi sumber tertentu. Kemungkinan nilainya adalah: default, photo, picture, drawing, icon, text.

Karena -preset menimpa nilai parameter lain (kecuali nilai -q), opsi ini sebaiknya muncul terlebih dahulu dalam urutan argumen.

-m int

Tentukan metode kompresi yang akan digunakan. Parameter ini mengontrol keseimbangan antara kecepatan encoding serta ukuran dan kualitas file yang dikompresi. Nilai yang memungkinkan berkisar dari 0 hingga 6. Nilai defaultnya adalah 4. Jika nilai yang lebih tinggi digunakan, encoder akan menghabiskan lebih banyak waktu untuk memeriksa kemungkinan encoding tambahan 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

Pangkas sumber menjadi persegi panjang dengan sudut kiri atas pada koordinat (x_position, y_position) dan ukuran width x height. Area pemangkasan ini harus sepenuhnya dimuat dalam persegi panjang sumber. Catatan: pemangkasan diterapkan sebelum penskalaan apa pun.

-resize width height

Ubah ukuran sumber ke persegi panjang dengan ukuran width x height. Jika salah satu (tetapi tidak keduanya) dari parameter lebar atau tinggi adalah 0, nilai akan 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 ukuran terkompresi (biasanya). Tindakan ini akan membuat encoding menjadi lebih lambat dan ukuran dan distorsi output akan sedikit berbeda. Flag ini hanya berlaku untuk metode 3 ke atas, dan nonaktif secara default. Perlu diperhatikan bahwa jika flag ini tidak aktif, akan memiliki beberapa efek samping pada bitstream: hal ini akan memaksa fitur bitstream tertentu seperti jumlah partisi (dipaksa ke 1). Perhatikan bahwa laporan yang lebih mendetail terkait ukuran bitstream dicetak oleh cwebp saat menggunakan opsi ini.

Opsi lossy

Opsi ini hanya efektif saat melakukan encoding lossy (default, dengan atau tanpa alfa).

-size int
Tentukan ukuran target (dalam byte) yang akan dicoba dan dijangkau untuk output terkompresi. Kompresor akan membuat beberapa penerusan encoding parsial untuk mendapatkan hasil sedekat mungkin dengan target ini. Jika -size dan -psnr digunakan, nilai -size akan berlaku.
-psnr float
Tentukan PSNR target (dalam dB) yang ingin dicoba dan dijangkau untuk output terkompresi. Kompresor akan melakukan beberapa penerusan encoding parsial untuk mendapatkan 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 adalah 10, default adalah 1. Jika opsi -size atau -psnr digunakan, tetapi -pass tidak ditentukan, nilai default kartu '6' akan digunakan.
-af
Mengaktifkan filter otomatis. Algoritma ini akan menghabiskan waktu tambahan untuk mengoptimalkan kekuatan pemfilteran guna mencapai kualitas yang seimbang.
-jpeg_like
Ubah pemetaan parameter internal agar lebih cocok dengan ukuran kompresi JPEG yang diharapkan. Tanda ini umumnya akan menghasilkan file output yang berukuran serupa dengan JPEG-nya yang setara (untuk setelan -q yang sama), tetapi dengan lebih sedikit distorsi visual.

Opsi lanjutan:

-f int
Tentukan kekuatan filter deblocking, antara 0 (tanpa pemfilteran) dan 100 (pemfilteran maksimum). Nilai 0 akan menonaktifkan pemfilteran apa pun. Nilai yang lebih tinggi akan meningkatkan kekuatan proses pemfilteran yang diterapkan setelah mendekode gambar. Semakin tinggi nilainya, semakin halus gambarnya. Nilai standar biasanya berkisar antara 20 hingga 50.
-sharpness int
Tentukan ketajaman pemfilteran (jika digunakan). Rentangnya adalah 0 (paling tajam) hingga 7 (paling tidak tajam). Default-nya adalah 0.
-strong
Gunakan pemfilteran yang kuat (jika pemfilteran digunakan berkat opsi -f). Pemfilteran kuat diaktifkan secara default.
-nostrong
Nonaktifkan pemfilteran yang kuat (jika pemfilteran digunakan berkat opsi -f) dan gunakan pemfilteran sederhana.
-sharp_yuv
Gunakan konversi RGB->YUV yang lebih akurat dan lebih tajam jika diperlukan. 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 lokasi lain untuk mentransfer bit ini dengan lebih baik. Rentang yang memungkinkan mulai dari 0 (algoritma nonaktif) hingga 100 (efek maksimal). Nilai defaultnya adalah 50.
-segments int
Ubah jumlah partisi yang akan digunakan selama segmentasi algoritma sns. Segmen harus berada dalam rentang 1 hingga 4. Nilai defaultnya adalah 4. Opsi ini tidak berpengaruh untuk metode 3 dan yang lebih baru, kecuali jika -low_memory digunakan.
-partition_limit int
Turunkan kualitas dengan membatasi jumlah bit yang digunakan oleh beberapa makroblok. Rentangnya adalah 0 (tanpa penurunan, default) ke 100 (degradasi penuh). Nilai yang berguna biasanya sekitar 30-70 untuk gambar yang cukup besar. Dalam format VP8, partisi kontrol yang disebut memiliki batas 512k dan digunakan untuk menyimpan informasi berikut: apakah macroblock dilewati atau tidak, segmen mana yang mencakupnya, apakah itu dikodekan sebagai mode intra 4x4 atau intra 16x16, dan terakhir mode prediksi yang digunakan untuk setiap sub-blok. Untuk gambar yang sangat besar, 512k hanya menyisakan ruang untuk beberapa bit per makroblok 16x16. Nilai minimum absolut adalah 4 bit per makroblok. Informasi lewati, segmentasi, dan mode dapat menggunakan hampir semua 4 bit ini (meskipun kemungkinannya tidak terjadi), yang bermasalah untuk gambar yang sangat besar. Faktor partition_limit mengontrol seberapa sering mode paling mahal (intra 4x4) akan digunakan. Hal ini berguna jika telah mencapai batas 512k dan pesan berikut ditampilkan: Kode error: 6(PARTITION0_OVERFLOW: Partisi #0 terlalu besar untuk 512k). Jika penggunaan -partition_limit tidak cukup untuk memenuhi batasan 512k, Anda harus menggunakan lebih sedikit segmen untuk menghemat lebih banyak bit header per macroblock. Lihat opsi -segments.

Opsi Logging

Opsi ini mengontrol tingkat output:

-v
Mencetak informasi tambahan (khususnya waktu encoding).
-print_psnr
Hitung dan laporkan rata-rata PSNR (rasio Puncak-Sinyal terhadap-Kebisingan).
-print_ssim
Hitung dan laporkan SSIM (metrik kesamaan struktural) rata-rata, lihat https://en.wikipedia.org/wiki/SSIM untuk detail tambahan).
-print_lsim
Hitung dan laporkan metrik kesamaan lokal (jumlah error terendah di antara piksel yang terkolokasi).
-progress
Laporkan progres encoding dalam persen.
-quiet
Jangan cetak apa pun.
-short
Hanya mencetak informasi singkat (ukuran file output dan PSNR) untuk tujuan pengujian.
-map int
Menghasilkan peta ASCII tambahan informasi encoding. Kemungkinan nilai peta berkisar dari 1 hingga 6. 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 dengan mengikuti rekomendasi ITU-R BT.601, dalam format linear 4:2:0. Pesawat luma memiliki ukuran width x height.
-pre int
Tentukan beberapa langkah pra-pemrosesan. Menggunakan nilai 2 akan memicu dithering pseudo-random yang bergantung pada kualitas selama konversi RGBA->YUVA (khusus kompresi lossy).
-alpha_filter string
Tentukan metode pemfilteran prediktif untuk bidang alfa. Salah satu dari none, fast, atau best, dalam urutan meningkatkan kompleksitas dan kelambatan. Defaultnya adalah fast. Secara internal, pemfilteran alfa dilakukan menggunakan empat kemungkinan prediksi (tidak ada, horizontal, vertikal, gradien). Mode best akan mencoba setiap mode secara bergantian dan memilih mode yang memberikan ukuran yang lebih kecil. Mode fast hanya akan mencoba membuat tebakan apriori tanpa menguji semua mode.
-alpha_method int
Tentukan algoritma yang digunakan untuk kompresi alfa: 0 atau 1. Algoritme 0 menunjukkan tidak ada kompresi, 1 menggunakan format lossless WebP untuk kompresi. Defaultnya adalah 1.
-exact
Pertahankan nilai RGB di area transparan. Setelan defaultnya adalah nonaktif, untuk membantu kompresibilitas.
-blend_alpha int
Opsi ini menggabungkan saluran alfa (jika ada) dengan sumber menggunakan warna latar belakang yang ditentukan dalam heksadesimal sebagai 0xrrggbb. Saluran alfa selanjutnya direset ke nilai buram 255.
-noalpha
Menggunakan opsi ini akan menghapus saluran alfa.
-hint string
Menentukan petunjuk tentang jenis gambar input. Kemungkinan nilainya adalah: photo, picture, atau graph.
-metadata string

Daftar metadata yang dipisahkan koma yang akan disalin dari input ke output jika ada. Nilai yang valid: all, none, exif, icc, xmp. Defaultnya adalah none.

Perhatikan bahwa setiap format input mungkin tidak mendukung semua kombinasi.

-noasm

Menonaktifkan semua pengoptimalan assembly.

Bug

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).