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 會執行壓縮,但只會回報統計資料。使用 &&t;-" 做為輸出名稱,會將輸出內容直接導向 'stdout'.
-- string
明確指定輸入檔案。如果輸入檔案開頭為 '-',這個選項就非常實用。此選項必須顯示為 last。 之後會忽略任何其他選項。
-h, -help
簡短使用摘要。
-H, -longhelp
所有可能選項的摘要。
-version
列印版本號碼 (main major.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

開啟指定壓縮層級 (0 到 9) 的 lossless 壓縮模式,其中等級 0 是最快的,9 是最慢。快速模式產生的檔案大小會比慢速更大。良好的預設值是 -z 6。對於這個選項和方法的某些預先定義設定,這個選項實際上是捷徑。如果日後使用 -q-m 選項,這些選項就會失效。

-alpha_q int

指定 0100 之間 Alpha 壓縮的壓縮係數。Alpha 的無損壓縮是以 100 的值達成,而較低的值則導致有損壓縮。預設為 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 (dd),以嘗試壓縮輸出內容。 壓縮器會多次傳送部分編碼,以便盡可能達到此目標。如果同時使用 -size-psnr,系統會優先使用 -size 值。
-pass int
設定在選項 -size-psnr 使用的 Diadiadi 期間可用的票證數量上限。最大值為 10,預設值為 1。如果使用選項 -size-psnr,但-pass 未指定,則會使用預設值「##9966'」將使用票證。
-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 轉換。請注意,這個程序的執行速度比預設的 'Fast' RGB->YUV 轉換慢。
-sns int
指定空間噪音形狀的幅度。空間噪音形狀 (或簡稱 sns) 是指一般的內建演算法,用於判斷圖片中的哪些區域應使用相對較少的位元,以及哪些地方可以更好地傳輸這些位元。可能的範圍介於 0 (演算法已關閉) 至 100 (最大效果)。預設值為 50
-segments int
變更在 Sns 演算法區隔期間使用的分區數量。區隔應在 14 之間。預設值為 4。除非使用 -low_memory,否則這個方法不適用於方法 3 以上的版本。
-partition_limit int
限制部分巨集區塊使用的位元數以降低品質。 範圍為 0 (無降級,預設) 至 100 (完全降級)。一般來說,中位數的圖片應在 30-70 之間。在 VP8 格式中,所謂的控制分區有 512k 個限制,用於儲存下列資訊:巨集區塊是否被略過、是否屬於哪個區隔、是否已編碼為 4x4 或 Intra 16x16 模式,最後是每個子區塊要使用的預測模式。針對非常大的圖片,512k 只允許每個 16x16 巨集區塊只保留幾個位元。每個巨集區塊的絕對最小值為 4 位元。略過、區隔和模式資訊幾乎可以用到這 4 位元 (儘管不太可能如此),這對於超大型圖片來說並不容易。partition_limit 係數可控制使用最昂貴模式 (內部 4x4) 的頻率。如果達到 512k 的上限,並顯示下列訊息,這項功能就能派上用場:錯誤代碼:6 (Partition0_OVERFLOW:分區 #0 過大,不適合 512 k)。如果使用 -partition_limit 不足以達成 512k 限制條件,則必須使用較少的區隔,以為每個巨集區塊儲存更多標頭位元。請參閱 -segments 選項。

記錄選項

這些選項可控管輸出層級:

-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
指定輸入檔案實際包含原始 Y'CbCr 範例,並依照 ITU-R BT.601 建議提供 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 使用無損格式壓縮格式進行壓縮。預設為 1
-exact
在透明區域中保留 RGB 值。這項設定會預設為關閉,以利壓縮。
-blend_alpha int
這個選項會將 Alpha 管道 (如有) 與來源進行比對,方法是使用以 0xrrggbb 指定的十六進位顏色。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 專案編寫而成,可供他人使用。