名前
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
- バージョン番号を(メジャー.minor.revision として)出力して終了します。
-lossless
- 画像を失わずにエンコードします。完全に透明な領域を含む画像の場合、非表示のピクセル値(R / G / B または Y / U / V)は、
-exact
オプションが使用されている場合にのみ保持されます。 -near_lossless int
- ほぼ損失のない画像前処理のレベルを指定します。このオプションは、圧縮しやすくするためにピクセル値を調整しますが、画質への影響は最小限です。これにより、ロスレス圧縮モードが自動的にトリガーされます。範囲は、
0
(最大前処理)から100
(前処理なし、デフォルト)です。一般的な値は約60
です。-q 100
でロッシーを使用すると、結果が向上する場合があります。 -q float
RGB チャネルの圧縮率を
0
~100
の範囲で指定します。デフォルトは75
です。ロッシー圧縮(デフォルト)の場合、小さな因子により、画質の低い小さなファイルが生成されます。最高の品質を得るには、
100
の値を使用します。ロスレス圧縮(
-lossless
オプションで指定)の場合、小さい係数によって圧縮速度は速くなりますが、大きなファイルが生成されます。最大圧縮を行うには、値に100
を使用します。-z int
lossless
圧縮モードをオンにします。圧縮レベルは 0 ~ 9 で指定します。レベル 0 が最も高速、9 が最も低速です。高速モードでは、低速のファイルよりも大きなファイルサイズが生成されます。適切なデフォルト値は-z 6
です。 このオプションは、品質とメソッドの事前定義された設定の一部へのショートカットです。オプション-q
または-m
を後で使用すると、このオプションの効果は無効になります。-alpha_q int
0
から100
までのアルファ圧縮の圧縮係数を指定します。アルファのロスレス圧縮は100
の値を使用して実現されますが、値が小さいほどロッシー圧縮になります。デフォルトは100
です。-preset string
特定の種類のソース マテリアルに合わせて、事前定義パラメータのセットを指定します。有効な値は
default
、photo
、picture
、drawing
、icon
、text
です。-preset
は他のパラメータ(-q
以外のパラメータ)を上書きするため、このオプションは引数の順序で最初に表示されることが推奨されます。-m int
使用する圧縮方法を指定します。このパラメータは、エンコード速度と圧縮ファイルのサイズおよび品質のトレードオフを制御します。可能な値は、
0
~6
です。デフォルト値は4
です。高い値を使用すると、エンコーダは追加のエンコードの可能性を検査し、品質の向上を決定します。値を小さくすると、処理時間が短縮され、ファイルサイズと圧縮品質が低くなります。-crop x_position y_position width height
ソースを、座標(
x_position
、y_position
)の左上隅、サイズwidth
、height
の長方形に切り抜きます。この切り抜き領域は、ソースの長方形内に完全に収まっている必要があります。注: トリミングはスケーリングの前に適用されます。-resize width height
ソースのサイズを
width
×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' パスが使用されます。 -af
- 自動フィルタを有効にします。このアルゴリズムは、バランスの取れた品質を実現するためにフィルタリング強度の最適化に時間を費やします。
-jpeg_like
- JPEG 圧縮で予想されるサイズに合わせて、内部パラメータ マッピングを変更します。このフラグは通常、同じ
-q
設定に関して JPEG と同等のサイズの出力ファイルを生成しますが、視覚的な歪みは小さくなります。
詳細オプション:
-f int
- 非ブロックフィルタの強度を
0
(フィルタリングなし)と100
(最大フィルタリング)の間で指定します。値を0
に設定すると、フィルタリングがオフになります。値を大きくするほど、画像のデコード後に適用されるフィルタリング プロセスの強度が高くなります。値が大きいほど、動画が滑らかに表示されます。一般的な値は通常、20
~50
です。 -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 アルゴリズムのセグメンテーション中に使用するパーティションの数を変更します。セグメントは
1
~4
の範囲で指定してください。デフォルト値は4
です。-low_memory
を使用しない限り、このオプションはメソッド 3 以降で無効です。 -partition_limit int
- 一部のマクロブロックで使用されるビット数を制限することで、品質が低下します。範囲は
0
(デグレードなし、デフォルト)から100
(完全なデグレード)です。やや大きな画像の場合、有効な値は通常30
~70
程度です。VP8 形式では、いわゆるコントロール パーティションの上限が 512k で、マクロブロックをスキップするかどうか、どのセグメントに属しているか、4 × 4 または 16 × 16 のいずれかのモードでコード化されているかどうか、最後に各サブブロックで使用する予測モードを格納するために使用されます。非常に大きな画像の場合、512k は 16x16 マクロブロックごとに数ビットの空きしかありません。絶対最小値はマクロブロックあたり 4 ビットです。スキップ、セグメント、モードの情報により、これら 4 ビットのほとんどが使用される可能性があります(ただし、まれに例外です)。これは、非常に大きな画像の場合には問題です。partition_limit
係数は、最もビットコストの高いモード(4x4 内)が使用される頻度を制御します。これは、512k の上限に達し、次のメッセージが表示される場合に便利です。エラーコード: 6(PARTITION0_OVERFLOW: パーティション #0 が大きすぎて 512k には対応できません)。-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 マップを出力します。指定できるマップ値の範囲は
1
から6
です。これはデバッグを支援することのみを目的としています。
その他のオプション
より高度なオプションは次のとおりです。
-s width height
- 入力ファイルが、実際には ITU-R BT.601 推奨に従い、4:2:0 リニア形式で未加工の Y' CbCr サンプルで構成されていることを指定します。輝度プレーンのサイズは
width
xheight
です。 -pre int
- 前処理の手順をいくつか指定します。値を
2
に設定すると、RGBA->YUVA 変換中に品質依存の疑似ランダム ディザリングがトリガーされます(不可逆圧縮のみ)。 -alpha_filter string
- アルファ プレーンの予測フィルタリング メソッドを指定します。
none
、fast
、best
のいずれか。複雑度と速度の遅い順になります。デフォルトは、fast
です。内部的には、4 つの可能性のある予測(なし、水平、垂直、グラデーション)を使用してアルファ フィルタリングが実行されます。best
モードでは、各モードが順番に試行され、モードが小さい方が選択されます。fast
モードは、すべてのモードをテストせずに単純に前例推測を形成しようとします。 -alpha_method int
- アルファ圧縮に使用するアルゴリズムを指定します(
0
または1
)。アルゴリズム0
は圧縮なしを示し、1
は WebP のロスレス形式を圧縮に使用します。 デフォルトは1
です。 -exact
- RGB 値は透明領域で保持します。圧縮性を考慮して、デフォルトはオフです。
-blend_alpha int
- このオプションは、アルファ チャネル(存在する場合)を、16 進数で指定された背景色を 0xrrggbb としてソースとブレンドします。その後、アルファ チャネルは不透明値
255
にリセットされます。 -noalpha
- このオプションを使用すると、アルファ チャンネルは破棄されます。
-hint string
- 入力画像タイプに関するヒントを指定します。有効な値は
photo
、picture
、graph
です。 -metadata string
入力から出力にコピーするメタデータ(存在する場合)のカンマ区切りのリスト。有効な値:
all
、none
、exif
、icc
、xmp
デフォルトはnone
です。各入力形式はすべての組み合わせをサポートしているわけではありません。
-noasm
組み立ての最適化をすべて無効にします。
バグ
すべてのバグを Issue Tracker で報告してください。https://bugs.chromium.org/p/webp
パッチ大歓迎です。開始するには、https://www.webmproject.org/code/contribute/submitting-patches/ を参照してください。
例
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
作成者
cwebp
は libwebp
の一部であり、WebP チームによって作成されました。
最新のソースツリーは https://chromium.googlesource.com/webm/libwebp/ で入手できます。
このマニュアル ページは、Debian プロジェクト用に作成されています(他のユーザーによって使用されている場合もあります)。