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
sampel PNG, JPEG, TIFF, WebP, atau Y'CbCr mentah.
Catatan: File animasi PNG dan WebP tidak didukung.
Opsi
Opsi dasarnya adalah:
-o string
- Tentukan nama file WebP output. Jika dihilangkan,
cwebp
akan melakukan kompresi tetapi hanya melaporkan statistik. Penggunaan "-" sebagai nama output akan mengarahkan output ke 'stdout'. -- string
- Tentukan file input secara eksplisit. Opsi ini berguna jika misalnya file input
dimulai dengan '-'. Opsi ini harus muncul
last
. Opsi lain setelah itu akan diabaikan. -h, -help
- Ringkasan penggunaan singkat.
-H, -longhelp
- Ringkasan semua opsi yang tersedia.
-version
- Cetak nomor versi (sebagai primary.minor.revision) dan keluar.
-lossless
- Mengenkode gambar tanpa kehilangan nilai 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
-exact
digunakan. -near_lossless int
- Tentukan tingkat pra-pemrosesan gambar nyaris hilang. Opsi ini menyesuaikan
nilai piksel untuk membantu kompresi, tetapi memiliki dampak minimal pada kualitas
visual. Ini memicu mode kompresi lossless secara otomatis.
Rentangnya adalah
0
(prapemrosesan maksimum) hingga100
(tanpa pra-pemrosesan, default). Nilai biasanya sekitar60
. Perhatikan bahwa lossy dengan-q 100
terkadang dapat 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 akan menghasilkan file yang lebih kecil dengan kualitas 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 dengan menggunakan nilai100
.-z int
Aktifkan mode kompresi
lossless
dengan level yang ditentukan antara 0 dan 9, dengan level 0 adalah yang tercepat, dan 9 adalah 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 bagi beberapa setelan yang telah ditentukan untuk kualitas dan metode. Jika opsi-q
atau-m
kemudian digunakan, maka penerapan opsi ini akan dibatalkan.-alpha_q int
Tentukan faktor kompresi untuk kompresi alfa antara
0
dan100
. Kompresi alfa lossless dicapai menggunakan nilai100
, sedangkan nilai yang lebih rendah menghasilkan kompresi lossy. Defaultnya adalah100
.-preset string
Tentukan sekumpulan parameter yang telah ditentukan sebelumnya agar sesuai dengan jenis materi sumber tertentu. Nilai yang mungkin adalah:
default
,photo
,picture
,drawing
,icon
,text
.Karena
-preset
menimpa nilai parameter lain (kecuali nilai-q
), opsi ini sebaiknya muncul terlebih dahulu sesuai urutan argumen.-m int
Tentukan metode kompresi yang akan digunakan. Parameter ini mengontrol kompromi antara kecepatan encoding serta ukuran dan kualitas file yang dikompresi. Nilai yang memungkinkan berkisar dari
0
hingga6
. Nilai defaultnya adalah4
. 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 ke persegi panjang dengan sudut kiri atas pada koordinat (
x_position
,y_position
) dan ukuranwidth
xheight
. Area pemangkasan ini harus sepenuhnya dimuat dalam persegi panjang sumber. Catatan: pemangkasan diterapkan sebelum penskalaan.-resize width height
Ubah ukuran sumber menjadi persegi panjang dengan ukuran
width
xheight
. Jika salah satu (tetapi tidak keduanya) parameter lebar atau tinggi adalah0
, 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 lebih lambat dan ukuran serta distorsi output sedikit berbeda. Tanda ini hanya berlaku untuk metode 3 dan yang lebih baru, serta dinonaktifkan secara default. Perlu diperhatikan bahwa menonaktifkan flag ini akan menimbulkan beberapa efek samping pada bitstream: hal ini akan memaksa fitur bitstream tertentu seperti jumlah partisi (dipaksa ke
1
). Perhatikan bahwa laporan ukuran bitstream yang lebih mendetail akan dicetak olehcwebp
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) untuk mencoba menjangkau output
terkompresi. Kompresor akan membuat beberapa penerusan encoding parsial untuk
mendekati target ini sedekat mungkin. Jika
-size
dan-psnr
digunakan, nilai-size
akan berlaku. -psnr float
- Tentukan PSNR target (dalam dB) untuk mencoba menjangkau output terkompresi.
Kompresor akan membuat beberapa penerusan encoding parsial untuk mendapatkan
sedekat mungkin dengan target ini. Jika
-size
dan-psnr
digunakan, nilai-size
akan berlaku. -pass int
- Menetapkan jumlah kartu maksimum 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 kartu '6' akan digunakan. Jika-pass
ditentukan, tetapi-size
atau-psnr
tidak ditentukan, PSNR target 40 dB 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 biasanya akan menghasilkan file output
berukuran serupa dengan JPEG-nya yang setara (untuk setelan
-q
yang sama), tetapi dengan distorsi visual yang lebih sedikit.
Opsi lanjutan:
-f int
- Tentukan kekuatan filter depemblokiran, antara
0
(tanpa pemfilteran) dan100
(pemfilteran maksimum). Nilai0
akan menonaktifkan pemfilteran apa pun. Nilai yang lebih tinggi akan meningkatkan kekuatan proses pemfilteran yang diterapkan setelah mendekode gambar. Semakin tinggi nilainya, semakin halus gambar akan muncul. Nilai standar biasanya berada dalam rentang20
hingga50
. -sharpness int
- Tentukan ketajaman pemfilteran (jika digunakan). Rentangnya adalah
0
(paling tajam) hingga7
(paling tidak tajam). Default-nya adalah0
. -strong
- Gunakan pemfilteran yang kuat (jika pemfilteran digunakan berkat opsi
-f
). Pemfilteran yang kuat diaktifkan secara default. -nostrong
- Nonaktifkan pemfilteran yang kuat (jika pemfilteran digunakan berkat opsi
-f
) dan gunakan pemfilteran sederhana sebagai gantinya. -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
- Tentukan 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 di mana area lain untuk mentransfer bit ini dengan lebih baik. Rentang yang memungkinkan berubah dari
0
(algoritma nonaktif) hingga100
(efek maksimal). Nilai defaultnya adalah50
. -segments int
- Ubah jumlah partisi yang akan digunakan selama segmentasi algoritma
sns. 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
digunakan. -partition_limit int
- Turunkan kualitas dengan membatasi jumlah bit yang digunakan oleh beberapa macroblock.
Rentangnya adalah
0
(tanpa degradasi, default) ke100
(degradasi penuh). Nilai yang berguna biasanya sekitar30
-70
untuk gambar yang cukup besar. Dalam format VP8, yang disebut partisi kontrol memiliki batas 512k dan digunakan untuk menyimpan informasi berikut: apakah macroblok dilewati, segmen mana yang mencakupnya, apakah itu dikodekan 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 blok makro 16x16. Nilai minimum absolut adalah 4 bit per makroblok. Informasi lewati, segmen, dan mode dapat menggunakan hampir semua 4 bit ini (meskipun tidak mungkin terjadi), yang bermasalah untuk gambar yang sangat besar. Faktorpartition_limit
mengontrol seberapa sering mode yang paling mahal (intra4x4) akan digunakan. Hal ini berguna jika batas 512k tercapai dan pesan berikut ditampilkan: Kode error: 6 (PARTITION0_OVERFLOW: Partisi #0 terlalu besar untuk muat 512k). Jika penggunaan-partition_limit
tidak cukup untuk memenuhi batasan 512k, pengguna harus menggunakan lebih sedikit segmen untuk menghemat lebih banyak bit header per makroblok. Lihat opsi-segments
. Perlu diperhatikan bahwa opsi-m
dan-q
juga memengaruhi keputusan encoder dan kemampuan untuk mencapai batas ini.
Opsi Logging
Opsi ini mengontrol tingkat output:
-v
- Mencetak informasi tambahan (khususnya waktu encoding).
-print_psnr
- Menghitung dan melaporkan PSNR rata-rata (rasio Peak-Signal-To-Noise).
-print_ssim
- Menghitung dan melaporkan SSIM (metrik kemiripan struktural) rata-rata, lihat https://en.wikipedia.org/wiki/SSIM untuk mengetahui detail tambahan).
-print_lsim
- Hitung dan laporkan metrik kemiripan lokal (jumlah error terendah di antara beberapa piksel yang berdekatan).
-progress
- Melaporkan progres encoding dalam persen.
-quiet
- Jangan cetak apa pun.
-short
- Hanya mencetak informasi singkat (ukuran file output dan PSNR) untuk tujuan pengujian.
-map int
- Menampilkan peta ASCII tambahan yang berisi 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
- Tentukan bahwa file input benar-benar terdiri dari sampel Y'CbCr mentah
dengan mengikuti rekomendasi ITU-R BT.601, dalam format linear 4:2:0. 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 (khusus kompresi lossy). -alpha_filter string
- Tentukan metode pemfilteran prediktif untuk bidang alfa. Salah satu dari
none
,fast
, ataubest
, dalam meningkatkan kompleksitas dan urutan kelambatan. Defaultnya adalahfast
. Secara internal, pemfilteran alfa dilakukan menggunakan empat kemungkinan prediksi (tidak ada, horizontal, vertikal, gradien). Modebest
akan mencoba setiap mode secara bergantian dan memilih mode yang memberikan ukuran lebih kecil. Modefast
hanya akan mencoba membuat tebakan a priori tanpa menguji semua mode. -alpha_method int
- Tentukan algoritma yang digunakan untuk kompresi alfa:
0
atau1
. Algoritma0
menunjukkan tidak ada 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 menggabungkan saluran alfa (jika ada) dengan sumber menggunakan
warna latar belakang yang ditentukan dalam heksadesimal sebagai 0xrrggbb. Saluran
alfa selanjutnya akan 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 string
Daftar 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.
-noasm
Menonaktifkan semua pengoptimalan assembly.
Bug
Laporkan semua bug ke issue tracker: https://bugs.chromium.org/p/webp
Selamat datang di patch! 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 pihak lain).