Cwebp

名稱

cwebp -- 將圖片檔壓縮成 WebP 檔案

Synopsis

cwebp [options] input_file -o output_file.webp

說明

cwebp 會壓縮使用 WebP 格式的圖片。輸入格式可以是 PNG、JPEG、TIFF、WebP 或原始 Y'CbCr 範例。注意:系統不支援動畫 PNG 和 WebP 動畫檔案。

選項

基本選項如下:

-o string
指定輸出 WebP 檔案名稱。如果省略,cwebp 會執行壓縮,但只會回報統計資料。使用「-」做為輸出名稱會導向「stdout」。
-- string
明確指定輸入檔案。如果輸入檔案的開頭是「-」,這個選項就非常實用。此選項必須顯示為 last。系統會忽略後續採用的其他選項。
-h, -help
簡短使用摘要。
-H, -longhelp
所有可用選項的摘要。
-version
列印版本號碼 (格式為 primary.minor.revision) 並結束。
-lossless
對圖片進行編碼時不會喪失任何損失。如果圖片有完全透明區域,只有在使用 -exact 選項時,系統才會保留隱藏的像素值 (R/G/B 或 Y/U/V)。
-near_lossless int
指定幾乎無損圖片預先處理作業的等級。這個選項會調整像素值以協助壓縮,但對視覺品質的影響最小。會自動觸發無損壓縮模式。範圍為 0 (預先處理上限) 至 100 (非預先處理,此為預設值)。一般值約為 60。請注意,使用 -q 100 有損結果有時可能會產生較好的結果。
-q float

指定介於 0100 之間的 RGB 管道壓縮係數。預設值為 75

若是有損壓縮 (預設),少量因素會產生品質較低的檔案。使用 100 值就能達到最佳品質。

若是無損壓縮 (由 -lossless 選項指定),小型因素可加快壓縮速度,但會產生更大的檔案。使用 100 值達到壓縮上限。

-z int

開啟 lossless 壓縮模式,並在指定的等級介於 0 到 9 之間。等級 0 為最快等級,9 表示最慢。快速模式產生的檔案大小會比慢圖片還要大。可用的預設值是 -z 6。這個選項實際上是部分預先定義的品質和方法設定的捷徑。如果後續使用 -q-m 選項,這些選項會失效。

-alpha_q int

指定 0100 之間的 Alpha 壓縮壓縮係數。使用 100 值達到 Alpha 無損壓縮;值較低時,則會產生有損壓縮。預設為 100

-preset string

指定一組預先定義的參數,以符合特定類型的來源材質。可能的值包括:defaultphotopicturedrawingicontext

由於 -preset 會覆寫其他參數值 (-q 除外),因此這個選項應優先按照引數的順序顯示。

-m int

指定要使用的壓縮方法。這個參數可控制編碼速度與壓縮檔案大小與品質之間的平衡。可能的值介於 06 之間。預設值為 4。使用較高的值時,編碼器會花更多時間檢查其他編碼可能性,並決定品質改善程度。值越低可以縮短處理時間,但代價是較大檔案並降低壓縮品質。

-crop x_position y_position width height

將來源裁剪為矩形,左上角為座標 (x_positiony_position) 及大小 width x height。這個裁剪區域必須完全包含在來源矩形中。注意:系統會在任何縮放「之前」套用裁剪範圍。

-resize width height

將來源大小調整為大小為 width x height 的矩形。如果寬度或高度參數其中之一為 0,系統就會計算這個值來保留長寬比。注意:系統會在裁剪「之後」套用縮放比例,

-mt

盡可能使用多執行緒進行編碼。

-low_memory

將壓縮大小 (通常) 減少四倍以減少有損編碼的記憶體用量。這樣會減慢編碼速度,且輸出的大小和失真度稍有不同。這個旗標僅適用於方法 3 以上的方法,且預設為關閉。請注意,關閉此標記會對位元串流造成一些副作用:它會強制某些位元串流功能,例如分區數量 (強制設為 1)。請注意,使用此選項時,cwebp 會輸出位元串流大小的詳細報表。

失真選項

這些選項僅在有失真編碼時有效 (預設值有無 Alpha 版本)。

-size int
指定壓縮輸出內容的目標大小 (以位元組為單位) 來嘗試觸及。壓縮工具會進行數次編碼部分,盡可能接近此目標。如果同時使用 -size-psnr,系統會採用 -size 值。
-psnr float
指定要嘗試取得壓縮輸出內容的目標 PSNR (採用 dB)。壓縮工具會進行數次編碼部分,盡可能接近此目標。如果同時使用 -size-psnr,系統會採用 -size 值。
-pass int
設定 -size-psnr 選項使用字典期間要使用的票證數量上限。最大值為 10,預設值為 1。如果使用 -size-psnr 選項,但未指定 -pass,則系統會使用預設值「6」票證。如果已指定 -pass,但未指定 -size-psnr,則系統會使用 40 dB 的目標 PSNR。
-af
開啟自動篩選功能。這個演算法會花更多時間最佳化篩選強度,以達到均衡的品質。
-jpeg_like
變更內部參數對應,以更符合 JPEG 壓縮的預期大小。這個標記一般會產生與 JPEG 值類似的輸出檔案 (採用相同的 -q 設定),但視覺失真度較低。

進階選項:

-f int
指定解除封鎖篩選器的強度,介於 0 (不篩選) 和 100 (最大篩選) 之間。如果設為 0,系統就會關閉所有篩選功能。 值越大,圖片解碼後套用的篩選程序就會越長。值越大,圖片越流暢。一般值通常介於 2050 之間。
-sharpness int
指定濾鏡的銳利度 (如有使用)。範圍是 0 (最低) 到 7 (最銳利)。預設值為 0
-strong
使用高強度篩選 (如果透過 -f 選項使用篩選功能)。高強度篩選功能預設為開啟。
-nostrong
停用高強度篩選 (如果透過 -f 選項使用),並改用簡易篩選。
-sharp_yuv
視需要進行更準確、更清晰的 RGB->YUV 轉換情形。請注意,這項程序的執行速度低於預設的「快速」RGB->YUV。
-sns int
指定空間雜訊形狀的幅度。空間噪音形態 (簡稱 sns,簡稱 sns) 是指廣泛的內建演算法集合,用來決定相片的哪些區域應使用較少的位元,而其他需要更妥善傳輸位元的位置。可能的範圍從 0 (演算法已關閉) 到 100 (最大效果)。預設值為 50
-segments int
變更在 DNS 演算法區隔期間使用的分區數量。區隔必須介於 14 之間。預設值為 4。除非使用 -low_memory,否則這個選項對於方法 3 及以上方法沒有作用。
-partition_limit int
限制某些巨集區塊使用的位元數,降低品質。 範圍為 0 (無降級,預設值) 至 100 (完全降級)。適合大型圖片的實用值通常約在 30-70 左右。在 VP8 格式中,所謂的控制分區限制為 512k,可用於儲存下列資訊:是否略過巨集區塊、其所屬的區隔、是否在內部編碼為 4x4 或 16x16 內模式,最後用於每個子區塊的預測模式。如果圖片非常大,每 16x16 巨集區塊的 512k 就只會留下一些空間。每個巨集區塊的絕對必須至少為 4 位元。略過、區隔和模式資訊幾乎可以全部用到這 4 位元 (雖然情況不太可能發生),這對大型圖片而言就會造成問題。partition_limit 因子可控制最昂貴模式 (4x4 內) 的使用頻率。如果達到 512k 的限制,並顯示下列訊息:錯誤代碼:6 (PARTITION0_OVERFLOW: Partition #0 過大,無法配合 512k),如果使用 -partition_limit 不足以滿足 512k 的限制,則應使用較少的區隔以便為每個巨集區塊儲存更多標頭位元。請參閱 -segments 選項。請注意,-m-q 選項也會影響編碼器的決策和能達到此上限的能力。

記錄選項

這些選項可控制輸出程度:

-v
列印額外資訊 (特別是編碼時間)。
-print_psnr
運算及回報平均 PSNR (峰值訊號與雜訊率)。
-print_ssim
運算和回報平均 SSIM (結構相似度指標,詳情請參閱 https://en.wikipedia.org/wiki/SSIM)。
-print_lsim
計算及回報區域相似度指標 (指收合像素鄰點的最低誤差總和)。
-progress
回報編碼進度百分比。
-quiet
不列印任何內容。
-short
只列印簡短資訊 (輸出檔案大小和 PSNR) 以供測試。
-map int
輸出編碼資訊的其他 ASCII 對應。可能的對應值範圍從 16。這僅用於協助偵錯。

其他選項

其他進階選項包括:

-s width height
指定輸入檔案實際上是由採用 ITU-R BT.601 建議的原始 Y'CbCr 範例,以 4:2:0 線性格式組成。鋁合金大小 width x height
-pre int
指定一些預先處理步驟。如果使用 2 值,則會在 RGBA->YUVA 轉換期間觸發品質相依的偽隨機加密作業 (僅限有損壓縮)。
-alpha_filter string
指定 Alpha 平面的預測篩選方法。nonefastbest 中的其中一個之一,其複雜度和速度緩慢的順序增加。預設值為 fast。在內部,Alpha 篩選會使用四種可能的預測 (無、水平、垂直、漸層) 執行。best 模式會依序嘗試每個模式,並挑選大小較小的模式。fast 模式只會嘗試形成「先驗」猜測,而不會測試所有模式。
-alpha_method int
指定用於 Alpha 壓縮的演算法:01。演算法 0 表示未壓縮,1 會使用 WebP 無損格式壓縮。預設為 1
-exact
將 RGB 值保留透明區。這項設定預設為關閉,以便進行壓縮。
-blend_alpha int
這個選項會使用十六進位指定背景顏色 (以 0xrrggbb 為單位),將 Alpha 通道與來源混合,Alpha 通道會在之後重設為不透明值 255
-noalpha
如果使用這個選項,系統會捨棄 Alpha 版。
-hint string
指定輸入圖片類型的提示。可能的值包括:photopicturegraph
-metadata string

以半形逗號分隔的中繼資料清單,用於從輸入內容複製到輸出內容 (如有)。有效值:allnoneexificcxmp。預設為 none

請注意,每種輸入格式可能僅支援部分組合。

-noasm

停用所有組合最佳化功能。

錯誤

示例

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

作者

cwebplibwebp 的一部分,由 WebP 團隊編寫。如需最新的原始碼樹狀結構,請前往 https://chromium.googlesource.com/webm/libwebp/

這份手動頁面是專為 Debian 專案所編寫,可能會供其他專案使用。