JA EN
体系現場のメディア実務
·★ 会員·10分で読めます

エンコード設定の読み方 — CRF・プリセット・2パスは何を変えるのか

ffmpegのコマンドに並ぶ -crf 23 -preset slow -pass 2 は、それぞれ別の質問に答えるつまみです。何を一定に保つか(CRF)、探索にどれだけ時間をかけるか(プリセット)、全体を先に読むか(2パス)。量子化ステップの式とレート歪み最適化から、各パラメータが効く理由を1つずつ解き、コピペで使える実コマンドと現場の落とし穴まで降ります。

対象imageタスクpractice

比喩: 引っ越し業者への3つの注文

動画エンコードの設定は、引っ越し業者への注文に置き換えるとほぼそのまま通じます。

1つ目の注文は「予算で頼むか、仕上がりで頼むか」。トラック2台分の予算で頼めば、荷物が多かろうと少なかろうとコストは固定です。これがビットレート指定。逆に「食器は1枚も割らないでください、トラックの台数はお任せします」と頼めば、仕上がりが固定でコストは成り行きです。これがCRF(品質指定)。

2つ目は「作業員がどれだけ丁寧に詰めるか」。時間をかけて隙間なく箱詰めすれば、同じ仕上がりでも箱の数は減ります。これがプリセット。速いプリセットは雑な箱詰め、遅いプリセットは丁寧な箱詰めです。

3つ目は「下見をしてから荷造りするか」。先に家中を見て回れば「本棚は大きい箱、洗面用品は小さい箱」と最適に配分できます。これが2パスです。

この3つは独立したつまみです。ここを混同すると設定の意味が読めなくなるので、1つずつ中身を開けていきます。

直感: 3つのつまみは別の質問に答えている

ffmpegでよく見る次のコマンドを、質問に分解してみます。

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow -c:a copy output.mp4

よくある誤解が「プリセットを遅くすると画質が上がる」です。半分誤りで、CRF指定なら画質はほぼ同じまま、ファイルが小さくなるが正解です。プリセットは品質のつまみではなく、同じ品質を達成するコストのつまみです。

仕組みの根っこ: すべてはQP——「どれだけ丸めるか」

3つのつまみの意味を理解するには、その下にある1つの数字を知る必要があります。量子化パラメータ(QP)です。

動画圧縮の基礎で見たように、エンコーダは画面をブロックに分け、周波数変換した係数を「割って丸める」ことで情報を捨てます。どれだけ粗く丸めるかを決める割り算の分母が量子化ステップで、H.264ではQP(0〜51の整数)から次の関係で決まります。

Qstep2QP/6Q_{\text{step}} \propto 2^{QP/6}
(1)

読み下すと「QPが6増えるごとに、丸めの粗さが2倍になる」。QstepQ_{\text{step}} は割り算の分母(大きいほど多くの情報が捨てられる)、QPQP はエンコーダが場面ごとに選ぶ整数です。QPが小さければ係数がほぼそのまま残って高画質・大容量、QPが大きければ係数がゼロだらけになって低画質・小容量。動画エンコードの品質とサイズは、突き詰めればこの1つの数字の綱引きです。

丸めが画質をどう壊すかは、静止画ですが同じ原理をその場で体感できます。

FIG 1量子化の粗さを上げると、係数がゼロに潰れてブロックノイズが浮く。CRFやQPが触っているのは本質的にこのつまみ

では `-crf 23` は何をしているのか。素朴な「品質一定」は全ブロックに同じQPを使うことですが(CQP指定)、CRF(Constant Rate Factor)はもう一歩踏み込みます。

この先にあるもの

§

ここから先は会員限定です

解説記事371本・教科書26章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は毎日3本ずつ増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

コメント

コメントにはログインが必要です