コンテキスト適応型バイナリ算術符号化( CABAC ) は、 H.264/MPEG-4 AVC [ 1 ] [ 2 ]および高効率ビデオ符号化(HEVC) 規格で使用されるエントロピー符号化の一種です。これは可逆圧縮技術ですが、使用されるビデオ符号化規格は通常、非可逆圧縮アプリケーション向けです。CABAC は、ビデオ符号化で使用される他のほとんどのエントロピー符号化アルゴリズムよりもはるかに優れた圧縮を提供する点で注目に値し、H.264/AVC 符号化方式に前身の方式よりも優れた圧縮能力を与える重要な要素の 1 つです。[ 3 ]
H.264/MPEG-4 AVCでは、CABACは、標準規格のベースラインプロファイルで使用されているコンテキスト適応型可変長符号化(CAVLC)と呼ばれるより単純な方式よりもデコードに多くの処理を必要とするため、メインプロファイルとそれ以上のプロファイル(拡張プロファイルは除く)でのみサポートされています。また、CABACは並列化やベクトル化が難しいため、空間領域並列化などの他の形式の並列化と併用される場合があります。HEVCでは、CABACは標準規格のすべてのプロファイルで使用されています。
CABACは算術符号化に基づいており、ビデオ符号化規格のニーズに合わせていくつかの革新と変更が加えられています。[ 4 ]
CABACは、さまざまな状況に対応するために複数の確率モードを備えています。まず、すべての非バイナリシンボルをバイナリに変換します。次に、各ビットについて、使用する確率モデルを選択し、近傍の要素からの情報を使用して確率推定を最適化します。 最後に、算術符号化を適用してデータを圧縮します。

コンテキストモデリングは、符号化シンボルの条件付き確率の推定値を提供します。適切なコンテキストモデルを利用することで、現在符号化しようとしているシンボルの近傍にある既に符号化されたシンボルに応じて異なる確率モデルを切り替えることにより、シンボル間の冗長性を活用することができます。コンテキストモデリングは、CABACがCAVLCエントロピー符号化方式に比べてビットレートを約10%削減できる主な要因となっています。
データシンボルをコーディングするには、以下の段階があります。
1. x方向の動きベクトルの差である値MVDxを二値化する。
二値化された符号語の最初のビットはbin 1、2番目のビットはbin 2、といった具合です。
2. 各ビンに対してコンテキストモデルを選択します。ビン1については、以前にコード化されたMVD値に基づいて、3つのモデルのうちの1つが選択されます。以前にコード化された2つの値e kのL1ノルムが計算されます。
e kが小さい場合、現在の MVD の振幅が小さい可能性が高い。逆に、e kが大きい場合、現在の MVD の振幅が大きい可能性が高い。それに応じて確率表(コンテキスト モデル)を選択する。残りのビンは、さらに 4 つのコンテキスト モデルのいずれかを使用してコード化される。
3. 各ビンをエンコードします。選択されたコンテキストモデルは、ビンに「1」が含まれる確率とビンに「0」が含まれる確率という2つの確率推定値を提供します。これらの推定値に基づいて、算術コーダーがビンをエンコードするために使用する2つのサブレンジが決定されます。
4. コンテキストモデルを更新します。たとえば、コンテキストモデル2がビン1に選択され、ビン1の値が「0」だった場合、「0」の頻度カウントが増加します。これは、次回このモデルが選択されたときに、「0」になる確率がわずかに高くなることを意味します。モデルの総出現回数が閾値を超えると、「0」と「1」の頻度カウントが縮小され、結果として最近の観測値に高い優先順位が与えられます。
算術デコーダは規格で詳細に説明されている。それは3つの明確な特性を持っている。
復号処理の定義は、算術符号化および復号の低複雑度実装を容易にするように設計されています。全体として、CABACはCAVLCベースの符号化と比較して符号化効率が向上していますが、計算複雑度は高くなります。
1986年、IBMの研究者であるKottappuram MA MohiuddinとJorma Johannes Rissanenは、乗算不要の2進算術符号化アルゴリズムの特許を出願した。 [ 5 ] [ 6 ] 1988年、RB Arps、TK Truong、DJ Lu、WB Pennebaker、L. Mitchell、GG Langdonを含むIBMの研究チームは、Q-Coderと呼ばれる適応型2進算術符号化(ABAC)アルゴリズムを発表した。[ 7 ] [ 8 ]
上記の特許および研究論文は、IBM および三菱電機の他のいくつかの特許および研究論文とともに、 1992 年にCCITTおよびJoint Photographic Experts GroupによってJPEG画像圧縮フォーマットの適応型バイナリ算術符号化アルゴリズムの基礎として引用されました。 [ 5 ]しかし、ハフマン符号化と算術符号化の両方のオプションがある JPEG ファイル フォーマットのエンコーダおよびデコーダは、通常、ハフマン符号化オプションのみをサポートしています。これは元々特許上の懸念によるものでしたが、JPEG の算術符号化特許[ 9 ]は、JPEG 規格の古さのためにその後失効しています。[ 10 ]動画圧縮における適応型バイナリ算術符号化の最初の使用例は、1989 年に IBM の研究者が MPEG グループに提出した提案でした。[ 11 ] [ 12 ]この提案は、フレーム内 JPEG からフレーム間ビデオ符号化に算術符号化の使用を拡張しました。
1999年、Youngjun Yoo(テキサス・インスツルメンツ)、Young Gap Kwon、Antonio Ortega(南カリフォルニア大学)は、コンテキスト適応型のバイナリ算術符号化を発表しました。[ 13 ]最新のコンテキスト適応型バイナリ算術符号化(CABAC)アルゴリズムは、2003年にH.264/MPEG-4 AVCフォーマットで商用化されました。 [ 14 ] AVCフォーマットの特許の大部分は、パナソニック、合同会社IPブリッジ、LGエレクトロニクスが保有しています。[ 15 ]