cwebp

名前

cwebp - 画像ファイルを WebP ファイルに圧縮します。

概要

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
損失なしで画像をエンコードする。完全に透明な領域を含む画像の場合、非表示のピクセル値(R/G/B または Y/U/V)は、-exact オプションを使用した場合にのみ保持されます。
-near_lossless int
ほぼ可逆の画像前処理のレベルを指定します。このオプションは、圧縮性を高めるためにピクセル値を調整しますが、画質への影響は最小限です。可逆圧縮モードが自動的にトリガーされます。 範囲は 0(最大の前処理)から 100(前処理なし、デフォルト)です。一般的な値は 60 前後です。-q 100 で非可逆変換を使用すると、より良い結果が得られる場合があります。
-q float

RGB チャンネルの圧縮率は 0100 の範囲で指定します。デフォルトは 75 です。

非可逆圧縮(デフォルト)の場合、小さい係数によって小さいファイルが生成されますが、画質は低くなります。最高品質を実現するには、100 の値を使用します。

可逆圧縮(-lossless オプションで指定)の場合、係数が小さいほど圧縮速度は速くなりますが、生成されるファイルが大きくなります。最大圧縮を実現するには、値 100 を使用します。

-z int

lossless 圧縮モードをオンにします。圧縮モードは 0 ~ 9 の範囲で指定します。レベル 0 が最も速く、9 が最も遅くなります。高速モードでは、低速モードよりもファイルサイズが大きくなります。適切なデフォルトは -z 6 です。このオプションは、実際には品質と方法に関する事前定義されたいくつかの設定へのショートカットです。その後、-q または -m オプションを使用すると、このオプションの効果が無効になります。

-alpha_q int

アルファ圧縮の圧縮率は 0100 の範囲で指定します。アルファの可逆圧縮は 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

非可逆エンコードのメモリ使用量を削減するために、圧縮サイズ(通常)の 4 倍を節約します。これにより、エンコードが遅くなり、出力のサイズと歪みが若干異なります。このフラグはメソッド 3 以上の場合にのみ有効で、デフォルトではオフになっています。このフラグをオフのままにすると、ビットストリームにいくつかの副作用があります。パーティションの数(強制的に 1 に設定)などの特定のビットストリーム機能が強制されます。このオプションを使用すると、ビットストリーム サイズのより詳細なレポートは cwebp によって出力されます。

非可逆オプション

これらのオプションは、非可逆エンコードを行う場合にのみ有効です(デフォルト、アルファあり、なし)。

-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)とは、画像内のどの領域で比較的ビット数が少ないか、それ以外の部分でビットをより適切に転送するかを決定するために使用される組み込みアルゴリズムの一般的なコレクションです。設定可能な範囲は 0(アルゴリズムがオフ)から 100(最大の効果)です。デフォルト値は 50 です。
-segments int
sns アルゴリズムのセグメンテーション中に使用するパーティションの数を変更します。セグメントは 14 の範囲内で指定してください。デフォルト値は 4 です。-low_memory が使用されている場合を除き、このオプションは 3 以降のメソッドには影響しません。
-partition_limit int
一部のマクロブロックで使用されるビット数を制限することで、品質を低下させます。範囲は 0(デグラデーションなし、デフォルト)から 100(フル デグラデーション)です。サイズがやや大きい画像の場合、通常は 3070 程度が有用な値になります。VP8 形式では、いわゆるコントロール パーティションに 512,000 の上限があり、マクロブロックがスキップされたかどうか、どのセグメントに属しているか、イントラ 4x4 モードとイントラ 16x16 モードのどちらでコーディングされているか、最後に各サブブロックで使用する予測モードなどの情報を格納するために使用されます。非常に大きな画像の場合、512K は 16x16 マクロブロックあたり数ビットのスペースしか残せません。絶対最小値は、マクロブロックあたり 4 ビットです。スキップ、セグメント、モードの情報は、これら 4 ビットのほぼすべてを使用する可能性があります(可能性は低いですが、非常に大きな画像では問題になります)。partition_limit 係数は、最もビットコストの高いモード(イントラ 4x4)が使用される頻度を制御します。これは、512k の上限に達し、「Error code: 6 (PARTITION0_OVERFLOW: Partition #0 is too large tofit 512k)」というメッセージが表示される場合に便利です。-partition_limit を使用するだけでは 512, 000 の制約を満たすのに十分でない場合は、使用するセグメントを少なくして、マクロブロックあたりのヘッダービット数を増やします。-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 推奨の 4:2:0 線形形式の未加工 Y'CbCr サンプルで構成されていることを指定します。輝度プレーンのサイズは width x height です。
-pre int
前処理ステップを指定します。値を 2 にすると、RGBA から YUVA への変換中に、品質依存の擬似ランダム ディザリングがトリガーされます(非可逆圧縮のみ)。
-alpha_filter string
アルファ プレーンの予測フィルタリング方法を指定します。nonefastbest のいずれか。複雑さ、速度の遅い順に並べられます。デフォルトは fast です。内部では、アルファ フィルタリングは 4 つの可能な予測(なし、水平、垂直、勾配)を使用して実行されます。best モードは各モードを順番に試し、サイズが小さいモードを選択します。fast モードは、すべてのモードをテストせずに、アプリオリ推測を試行します。
-alpha_method int
アルファ圧縮に使用するアルゴリズムを 0 または 1 で指定します。アルゴリズム 0 は圧縮なしを示し、1 は圧縮に WebP 可逆形式を使用します。デフォルトは 1 です。
-exact
透明な領域で RGB 値を保持します。圧縮性を高めるため、デフォルトはオフになっています。
-blend_alpha int
このオプションは、16 進数で指定する背景色を 0xrrggbb として、アルファ チャンネル(存在する場合)とソースをブレンドします。その後、アルファ チャンネルは不透明な値 255 にリセットされます。
-noalpha
このオプションを使用すると、アルファ版チャンネルは破棄されます。
-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 プロジェクト用に作成されました(他のユーザーも使用する可能性があります)。