エントロピー符号化とはロスレス符号化手法に関わる(*一種数学的な*)用
語で、データの構成要素を代替符丁と、あらかじめ定義された予測、変換、量子化、などと組み合わせて置き換えるもの。データサイズ削減効果が非常に大
きい(エントロピー符号化それ自体のデータ節約効果はそれなりでしか無い)。
本規格上のエントロピー符号化方式は二つ。VLC(variable length
coding、可変長符号化)と BAC(binary arithmetic coding、2進数算術符号化)だ。
H.264/AVCでは二つともCA(context adaptive、文脈適応)方式で使うので、それぞれの用語は CAVLC と
CABAC となる。これでスライス・レイヤー以下の Syntax element(*
訳語不詳*)を臨機応変に符号化できる。過去の規格同様、マクロブロックは符号記述とデコード・プロセスの基本ユ
ニットだ。
Syntax elementsには以下の要素が含まれる。:
- シークエンス、ピクチャ、スライス・ヘッダ用の高次レイヤー syntax
element。これらはシンプルな固定長符号か、シンプルなUVLC(universal VLC、汎用VLC)符号化テーブルで符号化される。;
- スライス・ペイロード・データ。例えばスライスの長さやマクロブロック・スキッピング・インジケータなど(CAVLC&
nbsp; やCABACなどのエントロピー符号化が使われるレイヤー以下にある);
- マクロブロック・タイプ(mb_type);
- マクロブロックのCBP(coded block pattern)。これは、4x4または8x8変換ブロックのどれが
non-zero 係数を持っているかのフラグ(従って符号化の必要が無いサブマクロブロックを効率的に区別することができる);
- マクロブロック量子化パラメータ。直前マクロブロックのデルタとして符号化される(*coded
as a delta from the
previous macroblock*);
- 参照フレームインデックス;
- モーション・ベクトル(MVs)。隣接データから形成されたMVの予測から、デルタとして送られる(*sent as a delta from a prediction of the
MV
formed from neighboring data*);
- 量子化された変換係数(8x8・4x4変換から、または、ローレベル4x4変換のDC係数に適用された二次ハダマード変換から)(*from 8x8 or 4x4
transformations, or from secondary Hadamard transformations applied to
DC coefficients of lower-level 4x4
transformations*)。
最後の2タイプのデータが符号化データの大半を占める。一方非常に低いビットレートでは、a.~g.の分量が最大になり得る。高ビットレートで
は、h.
が大半だ。そして文脈適応(CA)が優先的に使われるのは、変換係数の符号化(*h.)だ。(実際、CAVLCでは、文脈適応は変換係数にしか使われな
い)。