動画エンコーディング・ラボ

書き出す前に実践的なエンコーディングのトレードオフを探ってみよう

インタラクティブシミュレーションを読み込んでいます...

動きの速いシーンでビットレートが最初に破綻する理由 🖖

すべてのフレームにはエントロピーの「需要」がある——きれいに見えるために実際に必要なビット数のことで、解像度、フレームレート、動き、クロマのディテールによって決まる。選択したビットレートは固定の「予算」だ。CBRモードではクリップ全体に均等に配分され、CRFモードではシーンごとの目標画質に合わせて割り当てられる。動きが速くディテールの多いシーンの需要がこの予算を超えると、エンコーダーはビット割り当て内に収めるためにより強く丸め込むしかなくなる——これこそが、ブロックノイズやにじみが穏やかなシーンではなく、最も動きの激しいシーンで真っ先に現れる理由だ。

小さいファイル、同じ画質、作成は遅い 🖖

新しいコーデックは同じ映像をより少ないビットに詰め込みます。このラボはそれを数値化しており、同等画質なら H.265 を H.264 の72%、AV1 を58%のサイズとしてモデル化しています。つまり H.265 に移ると約4分の1、AV1 に移ると40%あまりが減ります。このラボが示す落とし穴は、その節約が計算コストを伴うこと。AV1 のエンコードは H.264 の何倍も時間がかかることがあります。目安は、再生できる機器と使える時間が許す範囲で最も新しいコーデックを選ぶことです。

なぜ60fpsでも2倍にならないのか 🖖

直感的にはフレーム数が2倍ならビットレートも2倍必要に思えますが、そうはなりません。時間的に近いフレームほど互いに似ているため、エンコーダの動き補償はごくわずかな差分だけを保存すれば済みます。同等画質で30fpsから60fpsに上げても、増えるビットはたいてい約30〜50%で、100%ではありません。追加フレームは隣のフレームのほぼ複製なので安上がりなのです。

全プロセスの詳細解説

  1. 6 Mbit/sでの2分間の1080p30の圧縮 5 ステップ

    1080p30、6 Mbit/sでの2分間は90 MBになる。それがどれほどの圧縮を表しているかを求め、4Kストリームと比較できる1つの数値を見つけよ。

    1. まずカメラが出力するものから始める。解像度にフレームレートをかけるとピクセルレートが得られ、それは毎秒62.2百万ピクセルという大きな数値になる。

    2. ファイルサイズはビットレートに時間をかけたものであり、唯一の落とし穴はビットとバイトの違いである。2分間で90 MBとなる。

    3. ビットレート単体ではフォーマット間で比較できない。6 Mbit/sは720pには十分だが、4Kには不十分である。ピクセルレートで割ることで解像度の影響が取り除かれ、比較可能なピクセル秒あたりビット数が残る。

    4. 8ビットの非圧縮4:2:0は1ピクセルあたり平均12ビットとなるため、生ストリームは746 Mbit/sになる。

    5. それに対し、6 Mbit/sの圧縮比はおよそ124対1であり、それでも映像は十分に鑑賞可能である。これこそが現代のコーデックが実際に主張していることである。

    解答

    ツールは62,208,000 px/s3,600フレーム、90 MB、そして0.0965ピクセル秒あたりビット数を出力する。この最後の数値こそが汎用的な指標である。これを固定すると、4Kには24 Mbit/sが必要となる。ピクセル数が4倍、ビットレートも4倍で、ピクセルあたりの視覚的予算は同じになる。また、配信サービスが寛容かどうかを判定する方法もこれである。サイズが異なるフォーマット間でメガビット数を議論するのではなく、配信サービスのビットレートをピクセルレートで割って比較すればよい。

参考文献 (1)

例題