CBRとVBRの違い|動画エンコードにおけるビットレート制御アルゴリズムの仕組み
「ビデオ圧縮ツールに数値を入力すれば、あとは勝手に小さくなってくれる」——多くのユーザーがそう認識していますが、実際のエンコード処理はそれほど単純ではありません。特に「動画を指定の容量に収めたい」という要求に対して、ソフトウェアは毎秒どれだけのデータ量を割り当てるべきか、瞬時に判断し続けなければなりません。
本記事では、動画エンコーダ内部で稼働するビットレート制御(Rate Control)アルゴリズムの技術的原理に迫ります。CBR(固定ビットレート)とVBR(可変ビットレート)という2つの方式が、どのように符号化データを配分し、なぜVBRの2パス処理が「目標ファイルサイズ(Target File Size)」実現に適しているのかを、エンジニアリングの視点から解説します。
レート制御(Rate Control)とは?
レート制御とは、動画符号化器(Encoder)の出力帯域を意図的に制限する制御機構です。無制限に高画質を追求すれば、理論上は無限にデータ量が増大します。しかし現実のストレージ容量や通信帯域は有限であるため、エンコーダは「与えられたビット予算の中で、どこに情報量を集中させるか」を常に計算し続けなければなりません。
この制御の核心は、ファイルサイズ(File Size)と視覚品質(Visual Quality)の最適トレードオフを見出すことにあります。単純に全フレームの量子化ステップを粗くすれば容量は減りますが、それではブロックノイズや色帯びが全域に発生し、映像の構造情報が破壊されてしまいます。レート制御が優れているかどうかは、人間の視覚特性に配慮した「賢いビット配分」にかかっています。
CBR(Constant Bitrate / 固定ビットレート)の仕組みと特性
CBRは、時間あたりの平均ビットレートを一定に保つ方式です。エンコーダは1秒間に消費できるビット数に厳格な上限を設け、それを超えないようフレームごとの符号化を調整します。これは、情報理論的には「情報量の局所変動を無視した均等配分」に相当します。
メリット:予測可能性とバッファ整合性
CBRの最大の強みは、出力データレートが時間軸上で完全に平坦であることです。ファイルサイズは単純に「ビットレート × 時間」でほぼ正確に算出でき、放送局やライブ配信インフラにおいて、伝送路の帯域設計が極めて容易になります。
また、デコーダ側の入力バッファ(Buffer)がオーバーフローまたはアンダーフローするリスクが低く、リアルタイム性が要求されるライブストリーミングやブロードキャストに適しています。一定のレートでデータが供給されるため、復号処理のタイミングも安定します。
デメリット:情報量の浪費と局所的劣化
一方で、CBRには構造的な欠陥が存在します。映像情報の複雑度は時間とともに大きく変動します。例えば、暗転シーンや静止した空の映像では、理論上は極めて少ないビット数で再現可能です。にもかかわらずCBRは「決められたレート」を維持するため、不要なデータを埋め込み(スタッフィング)せざるを得ず、情報論的に無駄な消費が生じます。
逆に、激しいアクションシーンや細かいテクスチャが乱れる場面では、割り当てられたビット予算が局所的に不足し、マクロブロック単位の粗い量子化が強いられます。結果として、動きの激しいシーンでブロックノイズやモスキートノイズが顕在化するという、画質分布の偏りが生じます。
VBR(Variable Bitrate / 可変ビットレート)の仕組みと特性
VBRは、フレームごとの情報複雑度に応じてビット配分を可変させる方式です。エンコーダは先行的に、または並行的に映像内容を分析し、「このシーンにはどれだけのビットが必要か」を推定します。人間の視覚特性からすれば、複雑なシーンほど多くのビットを、単調なシーンほど少ないビットを割り当てるのは極めて合理的です。
可変ビットレートの配分ロジック
具体的には、エンコーダは各フレームの動きベクトル(Motion Vector)分布、残差信号(Residual)のエントロピー、エッジの密度などを指標として「複雑度マップ」を生成します。高い動きと細部を含むフレームには高ビットレートを割り当て、グラデーションが平坦な背景や静止画では低ビットレートに抑制します。
この方式により、同じ平均ビットレートであっても、CBRより高い主観画質(PSNRやSSIMだけでなくVMAFスコア)が得られることが一般的です。情報量が必要な場所に集中投資されるため、ビットあたりの品質効率(Quality per Bit)が最適化されます。
2-Pass VBR:品質と容量の最適解を導く技術
VBRの中でも、特に「目標ファイルサイズ」を厳密に満たす必要がある場面で強力なのが**2パス可変ビットレート(2-Pass VBR)**です。
**第1パス(分析フェーズ)**では、エンコーダは実際の符号化を行わず、全フレームの複雑度をスキャンします。シーンごとの動きの激しさ、色の分散、テクスチャの密度などを定量化し、全体のビット需要分布を統計的に把握します。
**第2パス(符号化フェーズ)**では、第1パスで得られた統計情報を基に、全体の「ビット予算総額(ターゲットファイルサイズに対応)」を各シーンに再配分します。需要の高いシーンに十分な余裕を持たせつつ、需要の低いシーンで徹底的に削減し、総量制約を厳守しながら品質の最大化を図ります。
この2パス処理は、ファイルダウンロード用途やアーカイブ保存、そして「指定容量に収める」という要件に最も適した手法です。なぜなら、エンコーダが「全体像」を把握した上で最適化を行うため、1パスVBRに比べて局所的なビット不足や予算の浪費が極めて少ないからです。
ターゲットファイルサイズを実現する技術的背景
「動画をちょうどXX MBに収めたい」という要求は、一見単純な数値調整のように見えますが、内部的には高度な制御工学の問題です。単純に全体の量子化パラメータ(QP)を一律に上げればサイズは縮みますが、それでは映像の構造的特徴を無視した暴力的な圧縮となり、品質は一様に崩壊します。
真のターゲットサイズ制御には、レート制御アルゴリズムが歪率(Rate-Distortion)特性をリアルタイムにモデル化し、フレーム単位で最適な符号化モードを選択する能力が不可欠です。特に、WebAssembly(WASM)などのブラウザ環境でこれを実現する場合、クライアント側のCPUリソースとメモリ制約の中で、上記の複雑な数値計算を完結させる必要があります。
2-Pass VBRの思想は、このような制約下でも「限られたリソースで最大の品質」を引き出すための、エンジニアリング的に最も洗練されたアプローチの一つです。
まとめ
CBRとVBRの違いは、単に「ビットレートが固定か変動か」という表層的な問題ではありません。それは、情報をどのように時間軸上に配分するかという設計思想の相違です。
CBRはライブ配信やブロードキャストといちじるしい伝送路の安定性が要求される場面でその真価を発揮します。一方、VBR——特に2-Pass方式——は、ターゲットファイルサイズを厳密に満たしつつ、視覚的に最も重要なシーンに情報量を集中させることで、容量と品質の最適解を導き出します。
動画の軽量化において、単なる「小さくする」技術ではなく、映像の構造を理解し、ビットを賢く配分するアルゴリズムの選択こそが、最終的な体験品質を決定づける重要な技術要素です。