エントロピー符号化方式
コンテキスト適応型二値算術符号化 ( CABAC )は、 H.264/MPEG-4 AVC [1] [2] および 高効率ビデオ符号化 (HEVC)規格 で用いられる エントロピー符号化 の一種である。CABACは ロスレス圧縮 技術であるが、CABACが用いられるビデオ符号化規格は典型的には 非可逆圧縮 アプリケーション向けである。CABACは、ビデオ符号化において用いられる他のほとんどのエントロピー符号化アルゴリズムよりもはるかに優れた 圧縮率を 提供することで知られており、H.264/AVC符号化方式に従来のものよりも優れた圧縮能力をもたらす重要な要素の一つである。 [3]
H.264/MPEG-4 AVC では 、CABACは標準規格のメイン プロファイル 以上(拡張プロファイルは除く)でのみサポートされています。これは、CABACのデコード処理が、標準規格のベースラインプロファイルで使用されている コンテキスト適応型可変長符号化 (CAVLC)と呼ばれるよりシンプルな方式よりも大きいためです。また、CABACは並列化やベクトル化が難しいため、他の形式の並列処理(空間領域並列処理など)と組み合わせて使用される場合があります。HEVCでは、CABACは標準規格のすべてのプロファイルで使用されています。
アルゴリズム
CABACは算術符号化 に基づいていますが 、ビデオ符号化規格のニーズに合わせていくつかの革新と変更が加えられています。 [4]
バイナリ シンボルをエンコードすることで、複雑さを低く抑え、任意のシンボルのより頻繁に使用されるビットの確率モデリングを可能にします。
確率モデルはローカルコンテキストに基づいて適応的に選択され、コーディングモードは通常ローカルでよく相関しているため、確率のより適切なモデリングが可能になります。
量子化された 確率範囲と確率状態 を使用することにより、乗算を必要としない範囲除算を使用します。
CABACは、異なるコンテキストに対応する複数の 確率 モードを備えています。まず、すべての非 バイナリ シンボルをバイナリに変換します。次に、各ビットごとに、使用する確率モデルを選択し、隣接する要素の情報を用いて確率推定を最適化します。 最後に、 算術符号化を 適用してデータを圧縮します。
H264ビデオ圧縮規格で使用されるエントロピー符号化方式のCABAC(英語)
コンテキストモデリングは、符号化シンボルの条件付き確率の推定値を提供します。適切なコンテキストモデルを用いることで、符号化対象シンボルの近傍に存在する既に符号化されたシンボルに基づいて異なる確率モデルを切り替えることで、与えられたシンボル間冗長性を最大限に活用できます。コンテキストモデリングは、CABACが CAVLC エントロピー符号化方式と比較して約10%の ビットレート 削減を実現している主な要因です。
データ シンボルのコーディングには、次の段階が含まれます。
二値化:CABACは二値算術符号化方式(Barithmetic Coding)を採用しており、これは2値(1または0)の決定値のみを符号化することを意味します。非二値シンボル(変換係数や動きベクトルなど)は、算術符号化の前に「二値化」、つまり2値コードに変換されます。このプロセスは、データシンボルを可変長コードに変換するプロセスに似ていますが、2値コードは伝送前に算術符号化器によってさらに符号化されます。
2 値化されたシンボルの各ビット (または「ビン」) に対してステージが繰り返されます。
コンテキストモデルの選択:「コンテキストモデル」とは、2値化されたシンボルの1つ以上のビンに対する確率モデルです。このモデルは、最近符号化されたデータシンボルの統計情報に基づいて、利用可能なモデルの中から選択されます。コンテキストモデルは、各ビンが「1」または「0」となる確率を格納します。
算術符号化:算術符号化器は、選択された確率モデルに従って各ビンを符号化します。各ビンには2つのサブレンジ(「0」と「1」に対応)しかないことに注意してください。
確率の更新: 選択されたコンテキスト モデルは、実際のコード化された値に基づいて更新されます (たとえば、ビン値が「1」の場合、「1」の頻度カウントが増加します)。
例
1. x 方向
の動きベクトル差の値MVDxを2値化します
2 値化されたコードワードの最初のビットはビン 1、2 番目のビットはビン 2、というように続きます。
2. 各ビンのコンテキストモデルを選択する。ビン1には、以前にコード化されたMVD値に基づいて、3つのモデルから1つを選択する。以前にコード化された2つの値のL1ノルムe k を計算する。
e k が小さい場合、現在のMVDの大きさが小さくなる可能性が高くなります。逆に、e k が大きい場合、現在のMVDの大きさが大きくなる可能性が高くなります。これに応じて確率表(コンテキストモデル)を選択します。残りのビンは、さらに4つのコンテキストモデルのいずれかを使用してコード化されます
3. 各ビンを符号化する。選択されたコンテキストモデルは、ビンに「1」が含まれる確率と「0」が含まれる確率という2つの確率推定値を提供する。これらの推定値に基づいて、算術符号化器がビンを符号化する際に使用する2つのサブレンジが決定される。
4. コンテキストモデルを更新します。例えば、ビン1にコンテキストモデル2が選択され、ビン1の値が「0」だった場合、「0」の頻度カウントが増加します。これは、このモデルが次に選択されたときに、「0」の確率がわずかに高くなることを意味します。あるモデルの出現回数の合計が閾値を超えると、「0」と「1」の頻度カウントが縮小され、結果として最近の観測値が優先されます。
算術復号エンジン
算術デコーダは標準規格で詳細に説明されており、3つの異なる特性を持っています。
確率の推定は、「最小確率シンボル」(LPS、2 つのバイナリ決定「0」または「1」のうち最も確率が低いもの) の 64 個の個別の確率状態間の遷移プロセスによって実行されます。
算術符号化器の現在の状態を表す範囲 R は 、各ステップで新しい範囲を計算する前に、事前設定された値の小さな範囲に量子化され、ルックアップ テーブルを使用して新しい範囲を計算することが可能になります (つまり、乗算は不要です)。
ほぼ均一な確率分布を持つデータ シンボルに対して、簡略化されたエンコードおよびデコード プロセスが定義されています。
復号処理の定義は、算術符号化と復号の低複雑度の実装を容易にするように設計されています。全体として、CABACはCAVLCベースの符号化と比較して、計算量の増加を犠牲にして、符号化効率を向上させます。
歴史
1986年、 IBMの 研究者であるコッタプラム・M・A・モヒウディンとヨルマ・ヨハネス・リッサネンは、 乗算を必要としない2値算術符号化アルゴリズムの 特許を申請しました。 [5] [6] 1988年、RB・アープス、TK・トゥルオン、DJ・ルー、WB・ペネベーカー、L・ミッチェル、GG・ラングドンを含むIBMの研究チームは、Q-Coderと呼ばれる適応型2値算術符号化(ABAC)アルゴリズムを発表しました。 [7] [8]
上記の特許と研究論文は、IBMと 三菱電機の他のいくつかの特許と研究論文とともに、1992年に CCITT と 合同写真専門家グループ によって JPEG 画像圧縮 形式の適応型2値算術符号化アルゴリズム の基礎として引用されました。 [5]しかし、 ハフマン符号化 と算術符号化の両方のオプションがあるJPEGファイル形式のエンコーダとデコーダは 通常、ハフマン符号化オプションのみをサポートします。これは、もともと特許の問題によるものでしたが、JPEGの算術符号化特許 [9] は、JPEG標準の古さにより期限が切れています。 [10] 動画圧縮での適応型2値算術符号化の使用が最初に報告されたのは、1989年にIBMの研究者がMPEGグループに提案したときでした。 [11] [12] この提案は、算術符号化の使用をイントラフレームJPEGからインターフレームビデオ符号化に拡張しました。
1999年、ヨンジュン・ユウ( テキサス・インスツルメンツ )、ヤング・ガプ・クォン、アントニオ・オルテガ( 南カリフォルニア大学 )は、コンテキスト適応型のバイナリ算術符号化を発表しました。 [13] 現代のコンテキスト適応型バイナリ算術符号化(CABAC)アルゴリズムは、 2003年に H.264/MPEG-4 AVC形式で商用化されました。 [14] AVC形式の特許の大部分は、 パナソニック 、 合同会社IPブリッジ 、 LGエレクトロニクス が保有しています。 [15]
参照
参考文献
^ リチャードソン、イアン・EG、H.264 / MPEG-4 パート10 ホワイトペーパー、2002年10月17日
^ リチャードソン、イアン・EG (2003). H.264とMPEG-4ビデオ圧縮:次世代マルチメディアのためのビデオコーディング . チチェスター:John Wiley & Sons Ltd.
^ Ze-Nian Li; Mark S. Drew; Jiangchuan Liu (2014年4月9日). 『マルチメディアの基礎』 Springer Science & Business Media. ISBN 978-3-319-05290-8 。
^ Marpe, D., Schwarz, H., Wiegand, T., H.264/AVCビデオ圧縮規格におけるコンテキストベース適応型バイナリ算術符号化、 IEEE Trans. Circuits and Systems for Video Technology 、Vol. 13, No. 7、pp. 620–636、2003年7月
^ ab 「T.81 – 連続階調静止画像のデジタル圧縮および符号化 – 要件およびガイドライン」 (PDF) . CCITT . 1992年9月. 2019年 7月12日 閲覧 。
^ 米国特許4,652,856
^ Arps, RB; Truong, TK; Lu, DJ; Pasco, RC; Friedman, TD (1988年11月). 「二値画像の適応型データ圧縮のための多目的VLSIチップ」. IBM Journal of Research and Development . 32 (6): 775– 795. doi :10.1147/rd.326.0775. ISSN 0018-8646.
^ Pennebaker, WB; Mitchell, JL; Langdon, GG; Arps, RB (1988年11月). 「Q-Coder適応型バイナリ算術符号化器の基本原理の概要」. IBM Journal of Research and Development . 32 (6): 717– 726. doi :10.1147/rd.326.0717. ISSN 0018-8646.
^ 「勧告T.81(1992)訂正1(01/04)」 勧告T.81(1992) 国際電気通信連合(ITU)2004年11月9日。 2011年 2月3日 閲覧 。
^ JPEG静止画像データ圧縮規格 、WB Pennebakerと JL Mitchell 、Kluwer Academic Press、1992年 。ISBN 0-442-01272-1
^ 適応算術符号化を用いた動画保存のためのDCT符号化 、CA Gonzales、L. Allman、T. McCarthy、P. Wendt、AN Akansu、「Signal Processing: Image Communication」、2、145、1990年
^ 算術符号化を使用したMPEG環境向けのモーションビデオシーケンスのエンコード 、E. Viscito および C. Gonzales、SPIE Visual Communications and Image Processing '90、1990年10月2~4日。
^ Ortega, A. (1999年10月). 「コンテキストモデルを用いた埋め込み画像領域圧縮」. Proceedings 1999 International Conference on Image Processing (Cat. 99CH36348) . Vol. 1. pp. 477–481. doi :10.1109/ICIP.1999.821655. ISBN 0-7803-5467-2 . S2CID 27303716
^ 「コンテキストベース適応型二値算術符号化(CABAC)」.フラウンホーファ ー ・ハインリッヒ・ヘルツ研究所. 2019年 7月13日 閲覧
^ 「AVC/H.264 – 特許リスト」 (PDF) . MPEG LA . 2019年 7月6日 閲覧 。