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
列印版本號碼 (格式為 major.minor.revision) 並結束。
-lossless
以無損方式編碼圖片。針對有完全透明區域的圖片 只有在 使用「-exact」選項。
-near_lossless int
指定近乎無損的圖片預先處理程度。這個選項會調整像素值,以利壓縮,但對視覺品質的影響極小。系統會自動觸發無損壓縮模式。 範圍介於 0 (預先處理量最大) 至 100 (不預先處理, )。一般值約為 60。請注意,使用 -q 100 時會有損失 有時候能帶來更好的成果
-q float

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

如果使用失真壓縮 (預設),係數越小,產生的檔案大小越小,但品質也會降低。使用 100 的值可獲得最佳品質。

如果是無損壓縮 (由 -lossless 選項指定), 小型係數提高壓縮速度,但會產生更大的檔案。 使用 100 值可達到最大的壓縮率。

-z int

在指定等級介於 0 的情況下,開啟 lossless 壓縮模式 而 9,等級 0 代表最快,9 代表最慢。快速模式產生的檔案大小會比較慢的模式大。-z 6 是不錯的預設設定。 這個選項其實是品質和方法的預先定義設定捷徑。如果之後使用 -q-m 選項,就會 並作廢。

-alpha_q int

指定 0 與 alpha 壓縮數的壓縮因數 100。Alpha 的無損壓縮使用 100 值來達成。 較低的值則會產生有損壓縮。預設為 100

-preset string

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

因為 -preset 會覆寫其他參數的的值 (-q 除外 此選項最好按照 引數。

-m int

指定要使用的壓縮方法。這個參數可控制編碼速度與壓縮檔案大小和品質之間的取捨。可能的值介於 06 之間。預設值為 4。使用較高的值時,編碼器會花更多時間檢查其他編碼可能性,並決定品質增益。值越低,處理時間越快,但檔案大小會變大,壓縮品質也會降低。

-crop x_position y_position width height

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

-resize width height

將來源大小調整為 width x height 的矩形。如果有 (但並非兩者) 的寬度或高度參數都是 0,這個值會是 計算方法是保留長寬比注意:系統會在裁剪套用縮放。

-mt

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

-low_memory

將壓縮後的檔案大小減少四倍,降低有損編碼的記憶體用量 大小 (通常)。這會導致編碼速度變慢,且輸出內容的大小和失真程度略有不同。這個標記只適用於 方法 3 以上,且預設為關閉。請注意,如果將這個標記保持停用 會有部分副作用:這會強制使用特定位元流 例如分區數量 (強制為 1) 等功能。請注意 使用本例時,cwebp 會列印位元流大小的詳細報告 如果有需要 SQL 指令的分析工作負載 則 BigQuery 可能是最佳選擇

有損選項

這些選項僅在進行有損編碼 (預設,含或不含 alpha) 時有效。

-size int
請指定目標大小 (以位元組為單位),以便嘗試達到壓縮輸出結果。這個壓縮器會對 以盡可能接近目標位置如果同時使用 -size-psnr,系統會採用 -size 的值。
-psnr float
指定目標 PSNR (以分貝為單位),以便嘗試達到壓縮輸出值。壓縮器會進行數次部分編碼傳遞 盡可能達成目標如果同時使用 -size-psnr-size 值會優先採用。
-pass int
設定在選項 -size-psnr 使用的二元法中使用的傳遞次數上限。最大值為 10,預設值為 1。如果使用 -size-psnr 選項,但未指定 -pass,系統會使用預設值「6」的通行證。如果指定 -pass,但未指定 -size-psnr,系統會使用 40dB 的目標 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」) 是指一般的內建演算法集合 用於決定圖片中應使用較少位元、 以及哪些地方可以更妥善傳輸這些位元可能範圍是 0 (演算法已關閉) 至 100 (最高效果)。預設值為 50
-segments int
變更在 sns 演算法區隔期間要使用的分區數量。區隔必須介於 14 之間。預設值為 4。 這個選項對方法 3 以上版本沒有作用,除非 -low_memory 是 使用方式
-partition_limit int
限制部分巨集區使用的位元數,以降低品質。範圍為 0 (無降級,預設值) 到 100 (完全降級)。對於中等大小的圖片,通常會使用 3070 之間的值。在 VP8 格式中,所謂的控制區段限制為 512k,用於儲存下列資訊:是否略過區塊、區塊所屬的區段、是否以內部 4x4 或內部 16x16 模式編碼,以及最後要為每個子區塊使用的預測模式。對於超大型圖片,512k 只會為每個 16x16 宏區塊留出幾個位元空間。每個巨集區塊的絕對下限為 4 位元。略過, 區隔和模式資訊幾乎佔了這 4 位元 (不過 則不可能),這對超大型圖片而言是問題。partition_limit 係數會控制最耗用位元模式 (內 4x4) 的使用頻率。這在達到 512k 上限且顯示下列訊息時很有用:錯誤代碼:6 (PARTITION0_OVERFLOW:分區 #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
指定輸入檔案實際上是由原始 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 會使用 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 專案編寫 (其他人也可能使用)。