【課題を解決するための手段】
【0007】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを符号化するための算術エンコーダを作成し、算術エンコーダは、間隔サイズ情報(p
k、R*p
k)を、1つまたは複数のシンボル値(例えば、バイナリ値)の算術符号化が複数の状態変数値(s
ik)(例えば、インデックスkによって表示される所与のコンテキストモードに関連付けられるもの)に基づいて符号化されるように導出するように構成され、これは、異なる適合時定数で以前に符号化された複数のシンボル値(例えば、バイナリ値0と1のシーケンス)の統計を表し、算術エンコーダは、ルックアップテーブル(LUT1)を使用して、第1の状態変数値(s
k1)、またはそのスケーリングおよび/または丸められたバージョン([s
k1*a
k1])をマッピングし、ルックアップテーブル(LUT1)を使用して、第2の状態変数値(s
k2)、またはそのスケーリングおよび/または丸められたバージョン([s
k2*a
k2])をマッピングするように構成され、符号化される1つまたは複数のシンボルの算術符号化のための間隔サイズを説明する間隔サイズ情報(例えば、p
kまたはR*p
k)を取得するようにする。
【0008】
本発明によるこの実施形態は、ルックアップテーブルベースのマッピングが異なる適合時定数に関連付けられた状態変数値に適用される場合、間隔サイズ情報を特に良好な信頼性で取得できるという考えに基づいている。言い換えると、異なる時間スケールで統計(例えばシンボル確率)を記述する2つの状態変数値に同じルックアップテーブルを適用することにより、間隔サイズ情報を効率的な方法(1つのルックアップテーブルのみが必要なため)でありながらも、信頼性が高い(間隔サイズ情報の決定では、様々な時間スケールの統計が考慮されるため)様式で取得できる。ルックアップテーブルを使用した状態変数値のマッピングは、状態変数値に基づいて間隔サイズ情報を導出する際の重要かつ即時のステップと見なすことができる。任意選択で、1つまたは複数の追加のマッピングおよび/またはマッピング結果の結合は、間隔サイズ情報の導出における第1および第2の状態変数値のルックアップテーブルベースのマッピングに従うことができる。任意選択で、確率値は、第1の状態変数値および第2の状態変数値のルックアップテーブルベースのマッピングを使用して中間量として取得され得る。さらに、第1の状態変数値のルックアップテーブルベースのマッピングの結果から、および第2の状態変数値のルックアップテーブルベースのマッピングの結果から、間隔サイズ情報を導出するための異なる概念が可能である。
【0009】
結論として、本発明によるこの実施形態は、(少なくとも)2つのルックアップテーブルベースのマッピングを使用する第1の状態変数値および第2の状態変数値に基づく間隔サイズ情報の導出を提供する。したがって、異なる適合時定数に関連付けられている状態変数値は、個別にマッピングできるが、同じマッピングルール(ルックアップテーブルで定義)を使用して、間隔サイズ情報を決定するためのリソースの要求を適度に少なく保つが、異なる適合時定数または統計計算時定数で取得された複数の以前に処理された(例えば、符号化または復号された)シンボルの統計(または統計情報)の考慮(例えば、重み付けの考慮)を依然として可能にする。
【0010】
好ましい実施形態では、算術エンコーダは、ルックアップテーブルを使用して、第1の状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k1*a
k1])を第1の確率値(p
k1)にマッピングするように構成され、算術エンコーダは、ルックアップテーブルを使用して、第2の状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k2*a
k2])を第2の確率値(p
k2)にマッピングするように構成され、算術エンコーダは、第1の確率値および第2の確率値を使用して(例えば、加重和または加重平均を使用して)結合確率値(pk)を取得するように構成される。
【0011】
このような概念を使用すると、シンボル確率(例えば、「1」シンボルの確率または「0」シンボルの確率)を表す結合確率値は、第1の状態変数値と第2の状態変数値に基づいて容易く導出できる。例えば、第1の敏捷性を有する以前に処理された(例えば、符号化または復号された)シンボルに続く第1の状態変数値は、第1の確率値にマッピングすることができ、また第2の敏捷性を有する以前に処理された(例えば、符号化または復号された)シンボルに続く第2の状態変数値は、第2の確率値に効率的にマッピングできる。したがって、異なる時間スケールで発生する以前に処理されたシンボルの傾向を考慮することができ、それでも非常に効率的な方法で結合確率値を導出することが可能である。第1および第2の状態変数値により、異なる適合時定数で以前に処理されたシンボルの傾向を追跡でき、状態変数値を「部分的な」確率値(第1の確率値および第2の確率値)にマッピングすることは、結合確率値に寄与し、上記の概念を使用して非常にリソース効率の高い方法で実行できる。
【0012】
好ましい実施形態では、算術エンコーダは、符号化されるシンボルが第1の値(例えば「1」)をとる場合に状態変数値を第1の方向に変更する(例えばより正になる)ように構成され、また符号化されるシンボルが第1の値とは異なる第2の値(例えば「0」)をとる場合(例えば、状態変数値が正と負の値をとることができるように)に状態変数値を第2の方向に(例えば、より負になるもの)変更するように構成され、算術エンコーダは、それぞれの状態変数値の絶対値(s
ki>0の場合はs
ki、それ以外の場合は−s
ki)に応じて(例えば、状態変数値の絶対値のスケーリングおよび丸められたバージョンに応じて)評価されるルックアップテーブルのエントリを決定するように構成される。
【0013】
例えば、正と負の値をとることができる状態変数値を使用することによって(例えば、以前に処理されたシンボルの履歴に応じて、また例えば、以前に処理された反対のシンボルに対して対称的に)、それぞれの状態変数値の絶対値に依存するルックアップテーブルのエントリを選択することにより、概念の効率をさらに向上させることができる。例えば、状態変数値の可能な値(または量子化された値)ごとにルックアップテーブルの専用エントリを用意する必要は、もはやなくなった。むしろ、正の状態変数値と対応する負の状態変数値の両方(つまり、絶対値は等しいが符号が反対の「逆」状態変数値)に対してルックアップテーブルのエントリを二重に使用することができる。その結果、ルックアップテーブルのエントリの数を少なく保つことができ、以前に処理された反対のシンボルに関する間隔サイズ情報の決定の「対称性」を利用することができる。
【0014】
好ましい実施形態では、算術エンコーダは、第1の状態変数値が第1の符号(例えば、正の符号)をとる場合に、第1の確率値(p
k1)をルックアップテーブルによって提供される値(例えば、
[この文献は図面を表示できません]
)に設定するように構成され、算術エンコーダは、第1の状態変数値が第2の符号(例えば、負の符号)をとる場合、第1の確率値(p
k1)を、所定の値(例えば、1)からルックアップテーブルによって提供される値(例えば、
[この文献は図面を表示できません]
)を減算することによって得られる値に設定するように構成される。
【0015】
このようなメカニズムを使用すると、ルックアップテーブルのエントリの数を少なく保つことができ(例えば、ルックアップテーブルのエントリは、それぞれの状態変数値の絶対値に基づいてのみ選択されるため)、一方でそれぞれの状態変数値の反対の符号の「相補的な」確率値を取得することが依然として可能である。したがって、確率値を決定するために、高度なリソース効率と低い計算の複雑さが達成される。
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
LUT1は確率値を含むルックアップテーブルであり、
[.]はフロア演算子であり、
s
kiはi番目の状態変数値であり、
a
kiは、i番目の状態変数値に関連付けられた重み付け値である(例えば、i番目の状態変数値の数の範囲をルックアップテーブルのいくつかのエントリに適合させる重み付け値)ことにより、2つ以上の確率値p
kiを決定するように構成される。
このような計算は計算効率が高く、リソース需要を適度に小さく保つことがわかっている。
【0016】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
LUT1は確率値を含むルックアップテーブルであり、
[.]はフロア演算子であり、
s
kiはi番目の状態変数値であり、
a
kiは、i番目の状態変数値に関連付けられた重み付け値である(例えば、i番目の状態変数値の数の範囲をルックアップテーブルのいくつかのエントリに適合させる重み付け値)ことにより、2つ以上の確率値p
kiを決定するように構成される。
このような計算は、実際の数の表現に応じて、一部の状況においては有利であることがわかっている。特に、フロア演算子は、状態変数値の符号に関係なく、同じオペランドに適用される。特に、フロア演算子のオペランドの符号を削除する必要がないため、幾分かの計算の複雑さが軽減される。むしろ、否定は、通常は整数値であるフロア演算子の結果にのみ適用される。したがって、否定演算子を適用する複雑さは特に少程度である。言い換えれば、本明細書で説明される概念はまた、特に低度の複雑さをもたらす。
【0017】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
式中Nは考慮される確率値の数で(考慮される状態変数値の数に等しい場合がある)、b
kiは、重み付け値(例えば、結合確率値に対する個々の状態変数値の影響を制御する重み付け係数)である(b
kiは、好ましくは、von 2の整数値の効力であり、2つの異なるb
ki間の比は好ましくは、2の整数値の効力である)
ことに従って、複数の確率値p
kiに基づいて結合確率値p
kを取得するように構成される。
異なる状態変数値に基づいて取得された確率値に異なる重み付けを適用することにより、短期統計と長期統計の結合確率値への異なる影響を考慮することができ、特に意味のある結合確率値を取得できる。
【0018】
好ましい実施形態では、算術エンコーダは、2次元ルックアップテーブルを使用して、第1の状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k1*a
k1])を第1のサブインターバル幅値(R*p
k1)にマッピングするように構成され、そのエントリは、第1の状態変数値に依存して(例えば、確率指数iを使用するなどして、第1のルックアップテーブルエントリ座標を決定するために)、およびシンボルの符号化前の算術符号化のコーディング間隔のサイズを記述するコーディング間隔サイズ情報(例えば、R、またはRから導出される指数j)に依存して(例えば、第2のルックアップテーブルエントリ座標を決定するために)アドレス指定され、算術エンコーダは、2次元ルックアップテーブルを使用して、第2の状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k2*a
k2])を第2のサブインターバル幅値(R*p
k2)にマッピングするように構成され、そのエントリは、第2の状態変数値に依存して(例えば、第1のルックアップテーブルエントリ座標を決定するために)、およびシンボルの符号化前の算術符号化のコーディング間隔のサイズを記述するコーディング間隔サイズ情報(例えば、R)に依存してアドレス指定され(例えば、第2のルックアップテーブルエントリ座標を決定するために)、算術エンコーダは、第1のサブインターバル幅値および第2のサブインターバル幅値を使用して(例えば、加重和または加重平均を使用して)、結合されたサブインターバル幅値を取得するように構成される。
【0019】
複数の異なる確率値と複数の異なる間隔サイズ値との乗算を反映するこのような2次元ルックアップテーブルを使用することにより、乗算の演算を省けるため、計算の複雑さを軽減することができる。例えば、2次元ルックアップテーブルのエントリを指定する2つのインデックス(行インデックスと列インデックス)の1つは、それぞれの状態変数値(またはそのスケーリングおよび/または丸められたバージョン)によって定義され、第2のインデックスは、現在の(合計)コーディング間隔サイズによって決定される。したがって、第1のインデックスおよび第2のインデックスに基づいて、2次元ルックアップテーブルの要素(エントリ)を一意に識別することができ、識別された要素は、通常、それぞれの状態変数値に関連付けられた確率値と、第2のテーブルインデックスに関連付けられたコーディング間隔サイズとの積を反映する。その結果、場合によっては読み取り専用メモリである可能性があるメモリを2次元ルックアップテーブルに費やすことにより、乗算演算の実行を省ける。これは、計算リソースの観点からも、またエネルギー消費の観点からも有利な場合がある。
【0020】
算術エンコーダの好ましい実施形態では、2次元ルックアップテーブルは、そのエントリが第1および第2の状態変数値の値ドメインの異なる値間隔の確率値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k];
[この文献は図面を表示できません]
)を含む第1の1次元ベクトル(1次元ルックアップテーブルを形成する)、およびそのエントリがコーディング間隔サイズ情報の量子化レベルを含む第2の1次元ベクトル(
[この文献は図面を表示できません]
)の間の2項積として表すことができる。
このような3次元ルックアップテーブルを使用することにより、確率値とコーディング間隔サイズの異なるペア間の乗算演算をテーブルにより反映させることができる。したがって、2次元ルックアップテーブルの適切な要素を選択することにより、乗算演算の実行を省くことができる。さらに、このようなアプローチを使用すると、2次元ルックアップテーブルのエントリを非常に簡単な方法で取得できる。
【0021】
算術エンコーダの好ましい実施形態では、2次元ルックアップテーブル(RangTabLPS)の要素が、ベースルックアップテーブル(Base TabLPS)に基づいて定義され、2次元ルックアップテーブルの要素の第1のグループ(またはブロック、例えば、「上半分」)は、ベースルックアップテーブルの要素と同一であるか、ベースルックアップテーブルの要素の丸められたバージョンであり、2次元ルックアップテーブルの要素の第2のグループ(またはブロック、例えば「下半分」)は、ベースルックアップテーブルの要素のスケーリングおよび丸められたバージョンである。
このようなアプローチを使用することにより、2次元ルックアップテーブルの要素の概ね指数関数的である増加または減衰を取得できる。例えば、2次元ルックアップテーブルの要素を定義して、2次元ルックアップテーブルの要素の第2のグループが、実質的に(例えば、丸めによって引き起こされる偏差を除いて)2次元ルックアップテーブルの要素の第1のグループのスケーリングされたバージョンになるようにすることによって、非常に均一な2次元ルックアップテーブルを取得できる。また、このようなアプローチを使用して、2次元ルックアップテーブルの要素を簡単に取得できることに留意されたい。
【0022】
算術エンコーダの好ましい実施形態では、2次元ルックアップテーブルの要素の第2のグループは、ベースルックアップテーブルの要素の右シフトバージョンである。
このようなアプローチを使用することにより、右シフト操作を非常に簡単に実行できるため、2次元ルックアップテーブルの要素を特に効率的な方法で取得できる。また、右シフト操作は適切なスケーリングを引き起こし、非常に効率的な方法で丸め操作を実行することもできる。
【0023】
算術エンコーダの好ましい実施形態では、確率指数(Qp
2(p
LPS);i)は、2次元ルックアップテーブルの要素の第1のグループの要素または2次元ルックアップテーブルの要素の第2のグループの要素のどちらを評価するかを決定し、確率指数(例えば、確率値、例えばp
LPSを定量化することによって取得される)の第1の範囲(例えば、0〜μ−1)は、要素の第1のグループの要素に関連付けられ、確率指数(例えば、確率値、例えばp
LPSを、例えば、量子化関数Qp2(.)を使用して定量化することによって取得される)の第2の範囲(例えば、μ以上)は、要素の第2のグループの要素に関連付けられている。そのような概念を使用することにより、要素の第1のグループの要素を使用すべきか、要素の第2のグループの要素を使用すべきかの違いが、確率指数に応じてできるようになり得、例えば、それぞれの状態変数値に基づき得る。例えば、確率指数(例えば、最も可能性の低いシンボルの確率によって、または整数の指数値によって定義され得る)は、例えば、マッピングを使用して、それぞれの状態変数値に基づいて導出され得る。例えば、第1の状態変数値のマッピングを使用して得られた第1の確率値、または第2の状態変数値のマッピングを使用して得られた第2の確率値を使用して、2次元ルックアップテーブルのどの要素を評価すべきかを決定することができる(特に、2次元ルックアップテーブルの要素の第1のグループの要素を評価するか、2次元ルックアップテーブルの要素の第2のグループの要素を評価するかを決定する)。
また、この概念を使用すると、ベースルックアップテーブルに基づいて「オンザフライ」で2次元ルックアップテーブルのそれぞれの要素を決定することができ、その要素の数は、確率指数とコーディング間隔サイズ指数によって対処されるテーブル要素の数よりも少なくなる。
【0024】
算術エンコーダの好ましい実施形態では、確率指数(i)と第1のサイズ値(例えば、μ、サイズ値は例えば、第1の方向のベースルックアップテーブルの拡張を説明する)および間隔サイズ指数(例えば量子化演算Qr2(.)、例えばjを使用するなどして間隔サイズ情報Rに基づいて取得できる)との間の除算の除算残差(i%μ)は、2次元ルックアップテーブルの要素を取得するためにベースルックアップテーブルのどの要素を使用するかを決定する。
このような概念を使用することにより、ベースルックアップテーブルの第1の方向への拡張が可能な確率指数値の数よりも小さい場合でも、ベースルックアップテーブルの適切な要素を選択できる。確率指数と第1のサイズ値の間の除算の分割残差を評価することにより、ベースルックアップテーブルの第1の方向への拡張を表すことができ、ベースルックアップテーブルの要素を2つ以上の異なる確率指数値に再利用できる(例えば、第1のサイズ値の分異なる場合がある)。その結果、ベースルックアップテーブルのエントリは、第1のサイズ値の分が異なる2つの確率指数値に対して、例えば異なるスケーリングを使用して2回使用できる。したがって、2次元ルックアップテーブルは通常、確率指数値の進化を記述し、確率指数値の第2の範囲の進化は、確率指数値の第1の範囲の進化と比較した場合に、スケーリングされたバージョン(例えば、丸め効果を受け入れる)であることが利用できる。
【0025】
好ましい実施形態では、算術エンコーダは、
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j)、[i/μ]);
BaseTabLPSは、次元μxλのベースルックアップテーブルであり、iは、確率情報に関連付けられたテーブルインデックスであり、jは、間隔サイズ情報に関連付けられたテーブルインデックスであり(例えば、現在のコーディング間隔サイズを記述する)、%は除算残差演算であり、/は除算演算であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、またはbは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右側にシフトするかどうか、および何ビットシフトするかを決定する、
ことに従って2次元ルックアップテーブル(RangTabLPS)の要素を取得するように構成される。
そのようなアプローチを使用することによって、スケーリング関数またはスケーリング操作の結果によって定義され得る間隔サイズ情報は、特にメモリ効率の良い方法で取得され得る。例えば、「BaseTabLPS」ルックアップテーブルは、その第1の次元μが、確率情報に関連付けられたテーブルインデックスiの値の範囲よりも通常小さいため、またその第2の次元λが間隔サイズ情報によって記述される可能な異なる間隔サイズに等しい可能性があるため、特に小さい場合がある。さらに、iとμの商のフロア演算によって定義される異なるスケーリング係数の数が比較的小さいため、スケーリング関数は特に効率的な方法で実装することができる。例えば、iとμの間の除算の範囲が0と2より小さい最大値との間である場合、2つの異なるスケーリング操作のみを実行できる。例えば、2つ、3つ、または4つの異なるスケーリングの任意の選択のみが存在する可能性があり(iとμの間の商に応じて)、これらのスケーリングの任意の選択は、少数の所定の値のみを使用した乗算を使用して、または単なるシフト演算さえをも使用して、効率的に実装できる。
【0026】
算術エンコーダの好ましい実施形態では、2次元ルックアップテーブル(RangTabLPS)の要素は、確率テーブル(probTabLPS)に基づいて定義され、確率テーブルは、複数の確率値のセット(例えば、指数iによって表される)および所与のコーディング間隔サイズの間隔サイズを記述し、複数の確率値のセットにない確率値および/または所与の(参照)コーディング間隔サイズとは異なるコーディング間隔サイズの2次元ルックアップテーブルの要素は、スケーリングを使用して確率テーブルから導出される。
そのようなアプローチを使用して、異なる間隔サイズが、関連する確率値間の差異、および/または関連するコーディング間隔サイズ間の差異に依存するスケーリングによって互いに関連していることが多いことを利用することができる。別の言い方をすれば、2次元ルックアップテーブルが現在考慮されている確率値および/または現在考慮されているコーディング間隔サイズに適合する要素を含まない場合でも、適切な間隔サイズを依然として取得でき、2次元ルックアップテーブルの別の要素は相応してスケーリングされる(例えば、現在考慮されている確率値に依存して、および/または現在考慮されているコーディング間隔サイズに依存して)。
【0027】
算術エンコーダの好ましい実施形態では、2次元ルックアップテーブルの要素が、コーディング間隔サイズ(R)に応じて、確率テーブルの選択された要素(probTabLPS[i%μ])の(乗法の)第1のスケーリングを使用し、現在の確率値(指数iにより指定)に関連付けられた要素が確率値のセットに含まれるかどうかに応じて(例えば、現在の確率値は、確率テーブルでカバーされている確率値の範囲内にあるかどうかに応じて)、第1のスケーリングの結果の第2のスケーリングを使用して取得される。
したがって、2次元ルックアップテーブルの要素は、確率テーブルの適切なエントリを使用して、また適切なスケーリングを使用して「オンザフライ」で取得でき、評価される「確率テーブル」は、通常、2次元のルックアップテーブルよりも大幅に小さくなる。言い換えると、2次元ルックアップテーブルの要素をアドレス指定する2つのインデックスに基づいて、確率テーブルの適切な要素が選択され、スケーリングされる。ただし、多くの場合、このような概念により、メモリの要求と計算の複雑さの間のトレードオフが改善される。
【0028】
算術エンコーダの好ましい実施形態では、確率指数(例えばi、例えば、現在の確率値を表す)、および第1のサイズ値(例えばμ、例えばサイズ値が確率テーブルの拡張について説明する)の間の除算の除算残差(i%μ)は、確率テーブルのどの要素が第1のスケーリングでスケーリングされるかを決定する、および/または確率指数(i)と第1のサイズ値との間の除算の整数除算結果([i/μ])は、第2のスケーリングで使用されるスケーリング係数(2−[i/μ])を決定するおよび/またはコーディング間隔サイズは、第1のスケーリングの乗法スケーリング係数(Qr2(R))を決定する。
このような概念を使用すると、確率指数とコーディング間隔サイズ指数の2次元グリッドの(比較的小さい)部分の間隔サイズのみを表す小さな確率テーブルを使用でき、メモリスペースを省ける。次に、適切な間隔サイズ情報は、確率テーブルの要素の上記の選択によって、および確率テーブルの選択された要素の上記の2倍のスケーリングによっても取得することができる。
【0029】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
iは、確率情報に関連付けられたテーブルインデックスであり、jは間隔サイズ情報に関連付けられたテーブルインデックスであり、%は除算残差演算であり、/は除算演算であり、probTabLPS []は確率テーブルであり、μは確率テーブルの要素の数であり(Iの値の範囲は通常μよりも大きくなる)、Rは間隔サイズ(または現在のコーディング間隔サイズ)であり、Qr2(R)はRに依存するスケーリング係数であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、bは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右シフトをするかどうか、および何ビットシフトするかを決定する、
ことに従って2次元ルックアップテーブルの要素
[この文献は図面を表示できません]
を取得するように構成される。
間隔サイズ情報を表している可能性があるか、間隔サイズ情報に等しい可能性がある2次元ルックアップテーブルの適切な要素を取得するためにこのような概念を使用することにより、メモリの要件と計算の複雑さの間の非常に良いトレードオフを得ることができる。テーブル「probTabLPS」は、例えば、1次元テーブルであり得、該テーブルの要素の数は、テーブルインデックスiのいくつかの異なる可能な値よりも小さくてもよい。ただし、確率テーブルprobTabLPSの選択された要素と、間隔サイズRに依存するスケーリング係数Qr
2(R)の積をスケーリングすることにより、良好な精度に到達でき、発生する可能性のある丸め誤差を適度に小さく保つことができる。さらに、スケーリングは「フロア」演算子によって取得される整数値について演算するため、効率的なスケーリングの概念を使用でき、これは、例えば、整数の乗算、整数の除算、またはビットシフト演算によって定義できる。したがって、計算の負荷は非常に小さい。
【0030】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
iは、確率情報に関連付けられたテーブルインデックスであり、jは間隔サイズ情報に関連付けられたテーブルインデックスであり、%は除算残差演算であり、/は除算演算であり、probTabLPS []は確率テーブルであり、μは確率テーブルの要素の数であり(Iの値の範囲は通常μよりも大きくなる)、Rは間隔サイズ(または現在のコーディング間隔サイズ)であり、Qr2(R)はRに依存するスケーリング係数であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、bは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右シフトをするかどうか、および何ビットシフトするかを決定する、
ことに従って2次元ルックアップテーブルの要素
[この文献は図面を表示できません]
を取得するように構成される。
また、間隔サイズ情報を取得するためのこのアプローチは特に効率的であり、間隔サイズ情報(第1のスケーリングと第2のスケーリングの結果として取得される)に対して質の高い結果をもたらすことがわかっている。
【0031】
算術エンコーダの好ましい実施形態では、確率指数(例えばi、例えば、現在の確率値を表す)および第1のサイズ値(例えばμ、例えばサイズ値が確率テーブルの拡張について説明する)の間の除算の除算残差(i%μ)は、確率テーブルのどの要素が第1のスケーリングでスケーリングされるかを決定する、および/または確率指数(i)と第1のサイズ値との間の除算の整数除算結果([i/μ])は、第1のスケーリングで使用されるスケーリング係数(2
−[i/μ])を決定する、および/またはコーディング間隔サイズ(R)は、第2のスケーリングの乗法スケーリング係数(Qr
2(R))を決定する。
上記の分割残差に依存して確率テーブルの要素(1次元の確率テーブルである可能性がある)を選択することにより、間隔サイズが、スケーリングを除いて、確率指数の異なる範囲で実質的に類似するという事実が利用され得る。したがって、確率テーブルは、確率指数の単一の範囲の値のみを反映し、確率指数の他の範囲の間隔サイズ値は、第1のスケーリングを使用して取得される。第2のスケーリングは、確率テーブルによって表される値、または第1のスケーリングを使用してそれに基づいて得られる値を、コーディング間隔サイズに適合させ、それによって適切な間隔サイズ情報を取得するようにする。
その結果、メモリ消費、計算の複雑さ、および精度の間の良好なトレードオフが得られ、例えば、第1のサイズ値が適切に選択された場合、除算残差と整数除算の結果は、計算上非常に簡単な方法で取得できる(例えば、2つの効力になる)。
【0032】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
iは、確率情報に関連付けられたテーブルインデックスであり、jは間隔サイズ情報に関連付けられたテーブルインデックスであり、%は除算残差演算であり、/は除算演算であり(例えば、整数の結果を提供する)、probTabLPS []は確率テーブルであり、μは確率テーブルの要素の数であり(Iの値の範囲は通常μよりも大きくなる)、Rは間隔サイズであり、Qr
2(R)はRに依存するスケーリング係数であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、bは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右シフトをするかどうか、および何ビットシフトするかを決定する、
ことに従って2次元ルックアップテーブルの要素
[この文献は図面を表示できません]
を取得するように構成される。
この計算ルールは、前述の概念を非常に効率的な方法で実装する。
【0033】
算術エンコーダの好ましい実施形態では、2次元ルックアップテーブルは、そのエントリが第1および第2の状態変数値の値ドメインの異なる値間隔の確率値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k];
[この文献は図面を表示できません]
)を含む第1の1次元ベクトル(1次元ルックアップテーブルを形成する)、およびそのエントリがコーディング間隔サイズ情報の量子化レベルを含む第2の1次元ベクトル(
[この文献は図面を表示できません]
)の間の2項積として、表すことができる。
このような2次元ルックアップテーブルは、状態変数値に基づいて、およびコーディング間隔サイズ情報に基づいて、間隔サイズ情報を効率的に導出するために十分に使用可能である。2次元ルックアップテーブル内のルックアップは、状態変数値の確率値へのマッピング、および取得された確率値とコーディング間隔サイズの乗算に対応する。したがって、2次元ルックアップテーブルの選択されたエントリに等しい可能性がある間隔サイズ情報を取得することは非常に容易に可能であり、2次元ルックアップテーブルのそれぞれの要素は、それぞれの状態変数値に応じて、またコーディング間隔サイズ情報の独立性で、選択され得る(それぞれの状態変数値が2次元ルックアップテーブルの要素の第1のインデックスを決定し得、コーディング間隔サイズ情報が第2のインデックスを決定し得る)。
【0034】
好ましい実施形態では、算術エンコーダは、第1および第2の状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])からそれぞれ第1および第2のサブインターバル幅値(R*p
k)を計算するよう構成され、この計算は、そのエントリが第1および第2の状態変数値の値ドメインの異なる値間隔の確率値、またはそのスケーリングおよび/または丸められたバージョン([s
k2*a
k2])を含む1次元ルックアップテーブル(LUT4)を使用して、第1および第2の状態変数値(s
k)、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])を第1および第2の確率値にマッピングすること、およびシンボルを量子化レベルに符号化する前に、算術符号化のコーディング間隔のサイズを記述するコーディング間隔サイズ情報(例えば、R)を量子化することにより、これを行い、算術エンコーダは、さらに、第1および第2の確率値と、一方で量子化レベルの間の積を決定する(事前計算された積のルックアップまたは乗算によって)し、第1のサブインターバル幅値と第2のサブインターバル幅値を使用して(例えば、加重和または加重平均を使用して)結合されたサブインターバル幅値を取得するように構成される。
このようなアプローチを使用することはまた、特定の状況下で非常に効率的であることがわかっている。第1の状態値のみに基づいて(ただし、第2の状態変数値を考慮せずに)第1のサブインターバル幅の値を導出し、第2の状態変数値のみに基づいて(ただし、第1の状態変数値を考慮せずに)第2のサブインターバル幅の値を計算することにより、異なる適合時定数を使用して取得される状態変数値の実質的に別個の処理は、処理の大半を通じて維持される。最終段階でのみ、第1のサブインターバル幅の値と第2のサブインターバル幅の値を結合して、結合したサブインターバル幅の値を取得し、これは高い精度をもたらし、状況によっては、第1の状態変数値と第2の状態変数値が、あまりにも早い段階で組み合わされる場合に発生する劣化を回避する。
【0035】
好ましい実施形態では、算術エンコーダは、コーディング間隔サイズ情報に論理右シフトを適用することによってコーディング間隔サイズ情報の量子化を実行するように構成される。
論理右シフトは最小限の計算リソースしか必要としないため、この概念は特に実装が簡単である。
好ましい実施形態では、算術エンコーダは、コーディング間隔サイズ情報
[この文献は図面を表示できません]
の量子化を
[この文献は図面を表示できません]
により実行するように構成され、式中、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
および
[この文献は図面を表示できません]
はパラメータである。
このような量子化も非常に簡単に実装できることがわかった。特に、パラメータ
[この文献は図面を表示できません]
と
[この文献は図面を表示できません]
が整数の値(または1より大きい整数の値)になるように選択されている場合、計算の労力は非常に低くなる。
【0036】
算術エンコーダの好ましい実施形態では、1次元ルックアップテーブルのエントリは、第1および第2の状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])の増加で単調に減少する。
1次元ルックアップテーブルの単調に減少するエントリを使用すると、間隔サイズ情報に良好な結果がもたらされることが示されている。
【0037】
算術エンコーダの好ましい実施形態では、第1および第2の状態変数値の値ドメインの異なる値間隔、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])は、等しいサイズになる。
値の間隔のこのような等しいサイズの使用により、単純な量子化が可能になる。さらに、値の間隔を同じサイズにすることで、ルックアップテーブルの要素を適度な労力でオンザフライで決定できる。
【0038】
算術エンコーダの好ましい実施形態では、第1および第2の状態変数値の値ドメインの異なる値間隔、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])は、等しいサイズになる。
1次元ルックアップテーブルのエントリのこのような単調な減少を使用すると、指数関数的減衰を高い精度で表すことができるようになる。
【0039】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを符号化するための算術エンコーダを作成し、算術エンコーダは、間隔サイズ情報(p
k、R*p
k)を、1つまたは複数のシンボル値(例えば、バイナリ値)の算術符号化が複数の状態変数値(s
ik)(例えば、インデックスkによって表示される所与のコンテキストモードに関連付けられるもの)に基づいて符号化されるように導出するように構成され、これは、異なる適合時定数で以前に符号化された複数のシンボル値(例えば、バイナリ値0と1のシーケンス)の統計を表し、算術エンコーダは、結合状態変数値(s
k)(例えば、状態変数値の加重和であり得る)、複数の個々の状態変数値(s
ik)の基礎となるものを導出するように構成され、算術エンコーダは、結合状態変数値(s
k)、またはそのスケーリングおよび/または丸められたバージョン([s
k2*a
k2])を、ルックアップテーブルを使用してマッピングして、符号化される1つまたは複数のシンボルの算術符号化の間隔サイズを説明する間隔サイズ情報(例えば、p
kまたはR*p
k)を取得するように構成される。
【0040】
本発明によるこの実施形態は、ルックアップテーブルを使用してマッピングが実行される前に結合状態変数値が決定される場合、間隔サイズ情報の決定において高い効率が得られるという考えに基づく。したがって、2つ(またはそれ以上)の状態変数値を使用して個別のルックアップテーブルルックアップを実行する必要がもはやなくなった。むしろ、間隔サイズ情報を決定するには、単一のテーブルルックアップで十分な場合がある。特に、ルックアップテーブルルックアップを実行する前の第1の状態変数値と第2の状態変数値の結合は、多くの状況下で間隔サイズ情報の質を著しく低下させないことがわかった。
【0041】
好ましい実施形態では、算術エンコーダは、結合状態変数値を取得するために、状態変数値の加重和を決定するように構成される。
状態変数値の加重和の計算は、結合状態変数値を決定するための効率的な方法であり、また2つの状態変数値の異なる関連性を考慮するのにも適していることがわかっており、それは状態変数値を導出するときに使用される様々な適合時定数により引き起こされる。
【0042】
好ましい実施形態では、算術エンコーダは、状態変数値(
[この文献は図面を表示できません]
)および関連する重み付け値(
[この文献は図面を表示できません]
結合状態変数値(s
k)を得るため)の積を丸めることによって得られる丸められた値(
[この文献は図面を表示できません]
)の合計を決定するように構成される。
合計を実行する前にスケーリングされた値の丸めを実行すると、特に意味のある結果が得られることがわかっている。状態変数値の1つの無視できる寄与は、丸めによって排除され、結合状態変数値に影響を与えない。したがって、信頼性の高い結果を得ることができ、結合状態変数値は通常整数の値をとり、これは、ルックアップテーブルの要素を選択するためのインデックスとして機能するのに非常に適している。
【0043】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
s
k2は状態変数値であり、Nは考慮される状態変数値の数であり、
[.]はフロア演算子であり、d
kiは状態変数値に関連付けられた重み付け値(例えば、結合状態変数値への個々の状態変数値の影響を制御する重み付け係数)(d
kiは好ましくはフォン2の整数値の効力であり、2つの異なるd
ki間の比率は好ましくは2の整数値の効力である)[2つの異なるd
ki間の比率は、好ましくは8以上)であることに従って、結合状態変数値s
kを決定するように構成される。
結合状態変数値を導出するためのこの概念は、前に説明したように、非常に意味のある結合状態変数値をもたらす。
【0044】
好ましい実施形態では、算術エンコーダは、符号化されるシンボルが第1の値(例えば「1」)をとる場合に状態変数値を第1の方向に変更する(例えばより正になる)ように構成され、また符号化されるシンボルが第1の値とは異なる第2の値(例えば「0」)をとる場合(例えば、状態変数値が正と負の値をとることができるように)に状態変数値を第2の方向に(例えば、より負になるもの)変更するように構成され、算術エンコーダは、結合状態変数値の絶対値(s
ki>0の場合はs
k、それ以外の場合は−s
k)に応じて(例えば、結合状態変数値の絶対値のスケーリングおよび丸められたバージョンに応じて)評価されるルックアップテーブルのエントリを決定するように構成される。
状態変数値の決定のためのこの概念(例えば、第1の状態変数値の決定および第2の状態変数値のため)は、第1の状態変数値および第2の状態変数値の別個のマッピングが使用される場合と同じ利点をもたらす。
【0045】
好ましい実施形態では、算術エンコーダは、結合状態変数値が第1の符号(例えば、正の符号)をとる場合に、確率値(p
k)をルックアップテーブルによって提供される値(例えば、
[この文献は図面を表示できません]
)に設定するように構成され、算術エンコーダは、状態変数値が第2の符号(例えば、負の符号)をとる場合、確率値(p
k)を、所定の値(例えば、1)からルックアップテーブルによって提供される値(例えば、
[この文献は図面を表示できません]
)を減算することによって得られる値に設定するように構成される。
ルックアップテーブルのサイズを小さくできるため、結合状態変数値を確率値にマッピングすることに対するこの概念は効率的である。特に、ルックアップテーブルの同じ要素が、所与の正の結合状態変数値および所与の(正の)結合状態変数値の負のバージョンに関連付けられるため、ルックアップテーブルの要素の数を減らすことができる。言い換えると、所与の概念では、結合状態変数値の絶対値が、確率値の提供のためにルックアップテーブルのどの要素が評価されるかを決定する。
ただし、結合状態変数値の符号は、確率値をルックアップテーブルによって提供される値、またはルックアップテーブルによって提供される値を符号に応じて所定の値から減算することによって得られる値に設定することにより、適切かつ効率的な方法で依然として考慮される。したがって、計算の複雑さが低い程度の結合状態値に基づいて、意味のある確率値を取得することができる。
【0046】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
LUT2は確率値を含むルックアップテーブルであり、[.]はフロア演算子であり、s
kは結合変数値であり、a
kは、結合状態変数値に関連付けられた重み付け値である(例えば、i番目の状態変数値の数の範囲をルックアップテーブルのいくつかのエントリに適合させる重み付け値)ことにより、結合確率値p
kを決定するように構成される。
結合状態変数値s
kに基づいて結合確率値を決定するためのこの概念は、計算上非常に効率的な方法で前に概説された概念を実装する。
【0047】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
LUT2は確率値を含むルックアップテーブルであり、[.]はフロア演算子であり、s
kは結合変数値であり、a
kは、結合状態変数値に関連付けられた重み付け値である(例えば、i番目の状態変数値の数の範囲をルックアップテーブルのいくつかのエントリに適合させる重み付け値)ことにより、結合確率値p
kを決定するように構成される。
この概念では、スケーリングされた結合状態変数値s
kの絶対値の計算はない。むしろ、スケーリングされた(「重み付けされた」)結合状態変数値に適用される「フロア」の演算のみがあり、状況によっては、絶対値の形成よりも少ない労力で実装できる。否定は整数値にのみ適用される。整数値は、重み付けされた結合状態変数値の下方の丸め(フロア演算子)によって取得される。ただし、整数値の否定は、通常、小数値または浮動小数点表現の値の否定ほど複雑ではない。したがって、ここで説明する概念は、状況によっては複雑さを軽減するのに役立ち得る。
【0048】
好ましい実施形態では、算術エンコーダは、結合状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])を、2次元ルックアップテーブルを使用してサブインターバル幅値(R*p
k)にマッピングするように構成され、そのエントリは、結合状態変数値に依存して(例えば、第1のルックアップテーブルエントリの座標を決定するために)、およびシンボルの符号化前の算術符号化のコーディング間隔のサイズを記述するコーディング間隔サイズ情報(例えば、R)に依存して(例えば、第2のルックアップテーブルエントリの座標を決定するために)アドレス指定される。
この概念を使用して、結合状態変数値の結合確率値へのマッピング、および結合確率値とコーディング間隔サイズとの乗算を、単一のルックアップテーブルルックアップ演算に結合することができる。したがって、2次元のルックアップテーブルが必要だが、乗算の演算は省ける。2次元ルックアップテーブルのエントリは事前に計算されている場合があり、これにより、実行時の結合の負荷が非常に低く抑えられる。むしろ、第1のテーブルインデックスは、結合状態変数値、またはそのスケーリングおよび/または丸められたバージョンに基づいて決定され得、第2のテーブルインデックスは、コーディング間隔サイズ情報に基づいて決定され得る(例えば、丸めまたは量子化を使用)。第1のステップ指数および第2の状態指数は、2次元ルックアップテーブルの要素を一意に指定することができ、2次元ルックアップテーブルの指定された要素は、サブ間隔幅値として(または間隔サイズ情報として)使用することができる。したがって、非常に効率的な概念が得られ、ルックアップテーブルに十分なメモリが利用可能な場合の計算の複雑さが軽減される。
【0049】
算術エンコーダの好ましい実施形態では、2次元ルックアップテーブルは、そのエントリが結合状態変数値の値ドメインの異なる値間隔の確率値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k];
[この文献は図面を表示できません]
)を含む第1の1次元ベクトル(
[この文献は図面を表示できません]
、1次元ルックアップテーブルを形成する)、およびそのエントリがコーディング間隔サイズ情報の量子化レベルを含む第2の1次元ベクトル(
[この文献は図面を表示できません]
)の間の2項積として、表すことができる。
このような2次元ルックアップテーブルは、非常に良い結果をもたらす。特に、この2次元ルックアップテーブルのすべての要素は、結合状態変数値に関連付けられたそれぞれの確率値とコーディング間隔サイズの乗算を表す。したがって、本明細書で説明する2次元ルックアップテーブルは、乗算の必要性を排除し、これは、非常にリソース効率が高いと見なすことができる。
【0050】
算術エンコーダの好ましい実施形態では、2次元ルックアップテーブル(RangTabLPS)の要素が、ベースルックアップテーブル(Base TabLPS)に基づいて定義され、2次元ルックアップテーブルの要素の第1のグループ(またはブロック、例えば、「上半分」)は、ベースルックアップテーブルの要素と同一であるか、ベースルックアップテーブルの要素の丸められたバージョンであり、2次元ルックアップテーブルの要素の第2のグループ(またはブロック、例えば「下半分」)は、ベースルックアップテーブルの要素のスケーリングおよび丸められたバージョンである。
ベースルックアップテーブルに基づいて2次元ルックアップテーブルの要素を定義することにより、2次元ルックアップテーブルを非常に簡単な方法で生成できる。さらに、2次元ルックアップテーブルの要素の第2のグループは、ベースルックアップテーブルの要素のスケーリングおよび丸められたバージョンであるため(2次元ルックアップテーブルの要素の第1のグループの要素は、ベースルックアップテーブルの要素またはベースルックアップテーブルの要素の丸められたバージョンと同一)、2次元ルックアップテーブルの行または列の要素の指数関数的な展開がよく反映される。2次元ルックアップテーブルの要素の第2のブロックが実質的に(丸め効果を除く)2次元ルックアップテーブルの要素の第1のブロックのスケーリングされたバージョンであるという概念を使用することにより、結合状態変数値を間隔サイズ情報にマッピングすることに対する適切な特性を反映することができる。
【0051】
算術エンコーダの好ましい実施形態では、2次元ルックアップテーブルの要素の第2のグループはベースルックアップテーブルの要素の右シフトバージョンである。
これにより、2次元ルックアップテーブルのエントリ(要素)を簡単に生成できる。
ベースルックアップテーブルの右シフト要素は、スケーリングと丸め操作を結合した非常に効率的な概念であることがわかっている。
【0052】
算術エンコーダの好ましい実施形態では、確率指数(Qp
2(p
LPS);i)は、2次元ルックアップテーブルの要素の第1のグループの要素または2次元ルックアップテーブルの要素の第2のグループの要素のどちらを評価するかを決定し、確率指数(例えば、確率値、例えばp
LPSを定量化することによって取得される)の第1の範囲(例えば、0〜μ−1)は、要素の第1のグループの要素に関連付けられ、確率指数(例えば、確率値、例えばp
LPSを、例えば、量子化関数Qp2(.)を使用して定量化することによって取得される)の第2の範囲(例えば、μ以上)は、要素の第2のグループの要素に関連付けられている。
(中間量として確率値を使用せずに)結合状態変数値から直接導出され得る、または結合状態変数値に基づく結合確率値を使用して導出され得る確率指数を使用することによって、2次元ルックアップテーブルの要素の選択は非常に効率的に行うことができる。また、確率指数は、要素の第1のグループの要素と要素の第2のグループの要素の使用を切り替えるために使用され、これにより、2次元ルックアップテーブルの要素をオンザフライで効率的に決定できる。
【0053】
算術エンコーダの好ましい実施形態では、確率指数(i)と第1のサイズ値(例えば、μ、サイズ値は例えば、第1の方向のベースルックアップテーブルの拡張を説明する)および間隔サイズ指数(例えば量子化演算Qr2(.)、例えばjを使用するなどして間隔サイズ情報Rに基づいて取得できる)との間の除算の除算残差(i%μ)は、2次元ルックアップテーブルの要素を取得するためにベースルックアップテーブルのどの要素を使用するかを決定する。
【0054】
好ましい実施形態では、算術エンコーダは、
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j)、[i/μ])
BaseTabLPSは、次元μxλのベースルックアップテーブルであり、iは、確率情報に関連付けられたテーブルインデックスであり、jは、間隔サイズ情報に関連付けられたテーブルインデックスであり(例えば、現在のコーディング間隔サイズを記述する)、%は除算残差演算であり、/は除算演算であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、またはbは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右側にシフトするかどうか、および何ビットシフトするかを決定する、
ことに従って2次元ルックアップテーブル(RangTabLPS)の要素を取得するように構成される。
該除算残差を評価して、ベースルックアップテーブルのどの要素を使用して2次元ルックアップテーブルの要素を取得するかを決定することにより、2次元ルックアップテーブルの要素のオンザフライの決定を、非常に高い効率で実行することができる。特に、2次元ルックアップテーブルが、ベースルックアップテーブルの同じ要素に基づく2つ以上の要素グループで構成されているという事実は、ベースルックアップテーブルのどの要素を2次元ルックアップテーブルの要素を取得するために使用するかを決定するための分割残差の使用によって反映され得る。言い換えれば、2次元ルックアップテーブルの要素とベースルックアップテーブルの要素との間の周期的関係は、除算残差がまた確率指数の増加に関して周期的であるため、該除算残差の考慮によってよく反映される。
【0055】
算術エンコーダの好ましい実施形態では、2次元ルックアップテーブル(RangTabLPS)の要素は、確率テーブル(probTabLPS)に基づいて定義され、確率テーブルは、複数の確率値のセット(例えば、指数iによって表される)および所与のコーディング間隔サイズの間隔サイズを記述し、複数の確率値のセットにない確率値および/または所与の(参照)コーディング間隔サイズとは異なるコーディング間隔サイズの2次元ルックアップテーブルの要素は、スケーリングを使用して確率テーブルから導出される。
この概念は、状態変数値の個別のマッピングの場合について説明した対応する概念と同じ考慮事項に基づいている。
【0056】
算術エンコーダの好ましい実施形態では、2次元ルックアップテーブル(RangTabLPS)の要素は、確率テーブル(probTabLPS)に基づいて定義され、確率テーブルは、複数の確率値のセット(例えば、指数iによって表される)および所与のコーディング間隔サイズの間隔サイズを記述し、複数の確率値のセットにない確率値および/または所与の(参照)コーディング間隔サイズとは異なるコーディング間隔サイズの2次元ルックアップテーブルの要素は、スケーリングを使用して確率テーブルから導出される。
2次元ルックアップテーブルの要素のそのようなオンザフライの決定は、特に高い資源効率を含むことがわかっている。さらにまた、第1の状態変数値および第2の状態変数値の別個のマッピングの文脈内で使用される対応するアルゴリズムに関してなされた上記のコメントが適用されることに留意されたい。2次元ルックアップテーブルの要素の決定の基礎として、典型的には2次元ルックアップテーブルよりも小さい(例えば、より少ない要素を含む)確率テーブルを使用することによって、非常に高い効率を得ることができる。例えば、確率テーブルは、重要な範囲にわたる様々な確率値と様々な(量子化された)コーディング間隔サイズのマッピングを表す場合があり、したがって、単純なスケーリングを超える乗算を回避するのに役立つ場合がある(「単純な」スケーリングでは、例えば、シフト演算を使用して実装する場合がある)。
複数の確率値のセットに含まれない1つまたは複数の確率値、および所与のコーディング間隔サイズとは異なる1つまたは複数のコーディング間隔サイズの2次元ルックアップテーブルの要素は、確率テーブルから、スケーリングを使用して導出される。したがって、例えば、1つの行または1つの列のみを含み得る非常に小さい確率テーブルを有することで十分である。したがって、確率テーブルの要素の数は、異なる可能性のある確率値の数よりも少ない場合さえもあり得る(つまり、2次元ルックアップテーブルの異なる可能な確率指数の数よりも少ない場合がある)。さらに、スケーリングは確率値に依存する、および/またはコーディング間隔サイズに依存することに留意されたい。スケーリングは、例えば、確率テーブルのサイズが適切に選択されている場合、ビットシフト演算などの非常に単純なメカニズムを使用して実行できる。ビットシフト演算に基づくこのような「単純な」スケーリング演算は、任意の可変オペランド(例えば、2の効力とは異なる)を使用した「通常の」乗算と比較すると、必要な計算リソースが大幅に少なくなる。
【0057】
算術エンコーダの好ましい実施形態では、2次元ルックアップテーブルの要素が、コーディング間隔サイズ(R)に応じて、確率テーブルの選択された要素(probTabLPS[i%μ])の(乗法の)第1のスケーリングを使用し、現在の確率値(指数iにより指定)に関連付けられた要素が確率値のセットに含まれるかどうかに応じて(例えば、現在の確率値は、確率テーブルでカバーされている確率値の範囲内にあるかどうかに応じて)、第1のスケーリングの結果の第2のスケーリングを使用して取得される。
2次元ルックアップテーブルの要素のそのような計算は特に効率的であることがわかっている。さらに、第1の状態変数値および第2の状態変数値の別個のマッピングの文脈で提供される、対応する機能の上記の議論も参照される。
【0058】
算術エンコーダの好ましい実施形態では、確率指数(例えばi、例えば、現在の確率値を表す)、および第1のサイズ値(例えばμ、例えばサイズ値が確率テーブルの拡張について説明する)の間の除算の除算残差(i%μ)は、確率テーブルのどの要素が第1のスケーリングでスケーリングされるかを決定する、および/または確率指数(i)と第1のサイズ値との間の除算の整数除算結果([i/μ])は、第2のスケーリングで使用されるスケーリング係数(2
−[i/μ])を決定するおよび/またはコーディング間隔サイズは、第1のスケーリングの乗法スケーリング係数(Qr2(R))を決定する。
この機能に関しては、第1の状態変数値および第2の状態変数値の別個のマッピングの文脈で提供される、対応する機能の上記の議論も参照される。
【0059】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
iは、確率情報に関連付けられたテーブルインデックスであり、jは間隔サイズ情報に関連付けられたテーブルインデックスであり、%は除算残差演算であり、/は除算演算であり、probTabLPS []は確率テーブルであり、μは確率テーブルの要素の数であり(Iの値の範囲は通常μよりも大きくなる)、Rは間隔サイズ(または現在のコーディング間隔サイズ)であり、Qr2(R)はRに依存するスケーリング係数であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、bは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右シフトをするかどうか、および何ビットシフトするかを決定する、
ことに従って
2次元ルックアップテーブルの要素
[この文献は図面を表示できません]
を取得するように構成される。
この機能に関しては、第1の状態変数値および第2の状態変数値の別個のマッピングの文脈で提供される、対応する機能の上記の議論も参照される。
【0060】
算術エンコーダの好ましい実施形態では、2次元ルックアップテーブルの要素が、確率テーブルの選択された要素(probTabLPS[i%μ])の(乗法の)第1のスケーリングを使用し、現在の確率値(指数iにより指定)に関連付けられた要素が確率値のセットに含まれるかどうかに応じて(例えば、現在の確率値は、確率テーブルでカバーされている確率値の範囲内にあるかどうかに応じて)、また、コーディング間隔サイズ(R)に応じて、第1のスケーリングの結果の第2のスケーリングを使用して取得される。
この機能に関しては、第1の状態変数値および第2の状態変数値の別個のマッピングの文脈で提供される、対応する機能の上記の議論も参照される。
【0061】
算術エンコーダの好ましい実施形態では、確率指数(例えばi、例えば、現在の確率値を表す)、および第1のサイズ値(例えばμ、例えばサイズ値が確率テーブルの拡張について説明する)の間の除算の除算残差([i%μ])は、確率テーブルのどの要素が第1のスケーリングでスケーリングされるかを決定する、および/または確率指数(i)と第1のサイズ値との間の除算の整数除算結果([i/μ])は、第1のスケーリングで使用されるスケーリング係数(2
−[i/μ])を決定する、および/またはコーディング間隔サイズ(R)は、第2のスケーリングの乗法スケーリング係数(Qr
2(R))を決定する。
この機能に関しては、第1の状態変数値と第2の状態変数値との別個のマッピングの文脈で提供される対応する機能の上記の議論も参照され、結合状態変数値または結合確率値は、それぞれの個々の状態変数値またはそれぞれの個々の確率値の代わりに使用される。
【0062】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
iは、確率情報に関連付けられたテーブルインデックスであり、jは間隔サイズ情報に関連付けられたテーブルインデックスであり、%は除算残差演算であり、/は除算演算であり(例えば、整数の結果を提供する)、probTabLPS []は確率テーブルであり、μは確率テーブルの要素の数であり(Iの値の範囲は通常μよりも大きくなる)、Rは間隔サイズであり、Qr
2(R)はRに依存するスケーリング係数であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、bは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右シフトをするかどうか、および何ビットシフトするかを決定する、
ことに従って、2次元ルックアップテーブルの要素
[この文献は図面を表示できません]
を取得するように構成される。
この機能に関しては、第1の状態変数値と第2の状態変数値との別個のマッピングの文脈で提供される対応する機能の上記の議論も参照され、結合状態変数値または結合確率値は、個々の状態変数値の代わりになり、結合確率値が個々の確率値の代わりになる。
【0063】
好ましい実施形態では、算術エンコーダは、結合状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])からサブインターバル幅値(R*p
k)を計算するよう構成され、この計算は、そのエントリが結合状態変数値の値ドメインの異なる値間隔の確率値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k];
[この文献は図面を表示できません]
)を含む1次元ルックアップテーブル(LUT4)を使用して、結合状態変数値(s
k)、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k];
[この文献は図面を表示できません]
)を結合確率値にマッピングすること、およびシンボルを量子化レベルに符号化する前に、算術符号化のコーディング間隔のサイズを記述するコーディング間隔サイズ情報(例えば、R)を量子化することにより、これを行い、算術エンコーダは、さらに、結合確率値と量子化レベルの間の積を計算する(事前に計算された積のルックアップまたは乗算によって)ように構成される。
この機能に関しては、第1の状態変数値と第2の状態変数値との別個のマッピングの文脈で提供される対応する機能の上記の議論も参照され、ここで結合状態変数値または結合確率値は、個々の状態変数値の代わりになり、ここで結合確率値が個々の確率値の代わりになる。
【0064】
好ましい実施形態では、算術エンコーダは、コーディング間隔サイズ情報に論理右シフトを適用することによってコーディング間隔サイズ情報の量子化を実行するように構成される。
この機能に関しては、第1の状態変数値および第2の状態変数値の別個のマッピングの文脈で提供される、対応する機能の上記の議論も参照される。
【0065】
好ましい実施形態では、算術エンコーダは、コーディング間隔サイズ情報
[この文献は図面を表示できません]
の量子化を
[この文献は図面を表示できません]
により実行するように構成され、式中、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
および
[この文献は図面を表示できません]
はパラメータである。
この機能に関しては、第1の状態変数値および第2の状態変数値の別個のマッピングの文脈で提供される、対応する機能の上記の議論も参照される。
【0066】
算術エンコーダの好ましい実施形態では、1次元ルックアップテーブルのエントリは、結合状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])の増加で単調に減少する。
この機能に関しては、第1の状態変数値および第2の状態変数値の別個のマッピングの文脈で提供される、対応する機能の上記の議論も参照される。
【0067】
算術エンコーダの好ましい実施形態では、結合状態変数値の値ドメインの異なる値間隔、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])は、等しいサイズである。
この機能に関しては、第1の状態変数値および第2の状態変数値の別個のマッピングの文脈で提供される、対応する機能の上記の議論も参照される。
【0068】
算術エンコーダの好ましい実施形態では、1次元ルックアップテーブルのエントリは、結合状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])の増加で減少率を伴って単調に減少する。
この機能に関しては、第1の状態変数値および第2の状態変数値の別個のマッピングの文脈で提供される、対応する機能の上記の議論も参照される。
【0069】
算術エンコーダの好ましい実施形態では、ルックアップテーブルは、指数関数的減衰(例えば、0.5からの低下)を(例えば、+/−10%または+/−20%の許容範囲内で)定義する。
指数関数的減衰は、状態変数値に基づいて間隔サイズ情報を導出するための適切な関係をよく反映していることがわかっている。また、指数関数的減衰は、ルックアップテーブルを使用して非常に効率的に表すことができ、ルックアップテーブルの要素のオンザフライでの決定でさえ、わずかな労力で可能である。
【0070】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つ以上の重み付け値であり、Aは
[この文献は図面を表示できません]
であるか、ゼロ設定または大きさの縮小によって、引数の1つ以上の極値に対してのみ、それから逸脱して、更新された
[この文献は図面を表示できません]
を所定の値の範囲のままにすることを回避する(例えば、
[この文献は図面を表示できません]
は
[この文献は図面を表示できません]
より大きな値ドメインを持つ;つまり、
[この文献は図面を表示できません]
は
[この文献は図面を表示できません]
に準量子化される;
[この文献は図面を表示できません]
の極値の場合、
[この文献は図面を表示できません]
は上記の式に従って未修正のAによって変更され、その値ドメインを離れることができる:これを回避するために、これらの極値に対応するエントリが削減またはゼロにされる場合があることを考慮されたい)、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
、および
[この文献は図面を表示できません]
は所定のパラメータである(例は上記に記載されている)
ことに従って複数の可変状態値
[この文献は図面を表示できません]
を更新するように構成される。
状態変数のそのような更新は、高い計算効率で行うことができ、マッピングテーブルを事前に計算することができることがわかっている。例えば、状態変数値
[この文献は図面を表示できません]
が所定の範囲(例えば、所定の最小値と所定の最大値との間)を維持することを達成することができる。さらに、マッピングテーブルAの適切な選択を使用して、状態変数値が、以前に処理された(例えば、符号化または復号された)シンボルの統計の記述にうまく適合されることが達成され得る。また、それぞれの状態変数値の適合時定数は、重み付け値mおよびnを適切に選択することによって適合できることに留意されたい。したがって、ここで説明するアルゴリズムは、状態変数値
[この文献は図面を表示できません]
の更新に効率的に使用できる。
【0071】
好ましい実施形態では、算術エンコーダは、テーブルルックアップまたは計算によって
[この文献は図面を表示できません]
を導出するように構成される。
したがって、更新された状態変数値を導出するために、様々な概念が可能である。
【0072】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを符号化するための算術エンコーダであって、算術エンコーダは、1つまたは複数の状態変数値(s
1k、s
2k)を決定するように構成され、これは、以前に符号化された複数のシンボル値(例えば、バイナリ値0および1のシーケンス)の統計(例えば、複数の状態変数値の場合、異なる適合時定数の統計)を表し、および
算術エンコーダは、1つまたは複数の状態変数値(s
ik)(例えば、インデックスkにより示される、所与のコンテキストモードに関連付けられている)に基づいて符号化される1つまたは複数のシンボル値の算術符号化の間隔サイズ情報(p
k、R*p
k)を導出するように構成され、これは複数の以前に符号化されたシンボル値(例えば、バイナリ値0および1のシーケンス)の統計(例えば、複数の状態変数値の場合、異なる適合時定数の統計)を表し、算術エンコーダは、符号化されるシンボルに依存して、ルックアップテーブル(A)を使用して(例えば、シンボルを符号化した後)、第1の状態変数値(s
k1)を更新するように構成される。
【0073】
本発明によるこの実施形態は、算術符号化(例えば、符号化または復号)のための間隔サイズ情報の導出に使用される状態変数値の更新が、ルックアップテーブルを使用しながら特に良好な結果を伴って実行され得るという発見に基づいており、その理由はルックアップテーブルを使用することが、符号化または復号される信号の特性に特によく適合した状態変数値の更新を可能にするためである。例えば、ルックアップテーブルを使用して、「古い」状態変数値と更新された状態変数値の間の微調整された関係を簡単に表すことができるが、大規模な計算(例えば、三角関数または指数関数または対数関数などの評価)を実行する必要はない。したがって、ルックアップテーブルを使用した状態変数値の更新の実装は、計算の複雑さを適度に小さく保つのに役立つ。理想的には、「古い」状態変数値に基づいて更新された状態変数値を取得するために、ルックアップテーブルルックアップの他に、乗算(または単純な乗算、例えばビットシフト演算)、丸め演算、および加算のみが使用される。例えば、現在処理されているシンボル(例えば、符号化されるシンボルまたは復号されるシンボル)は、更新された状態変数値を取得するために、例えばルックアップテーブルベースのマッピングルールのどの部分を評価するかを決定する。
結論として、ルックアップテーブルを使用して更新された状態変数値を提供すると、高い柔軟性と低い計算の複雑さの両方が提供されることがわかっている。
【0074】
好ましい実施形態では、算術エンコーダは、符号化されるシンボルに依存して、ルックアップテーブル(A)を使用して(例えば、符号化されるシンボルを符号化した後)第2の状態変数値(s
k2)を更新するように構成される。
第1の状態変数値を更新するために使用されるのと同じルックアップテーブルを使用して、第2の状態変数値を更新することが有利であることがわかっている。例えば、第1の状態変数値および第2の状態変数値の適合時定数に関して考えられる差異は、例えば、1つまたは複数のスケーリング係数を使用して考慮することができ、これは、例えば、ルックアップテーブルの要素の選択、および/またはルックアップテーブルの選択された要素のスケーリングに適用され得る。結論として、2つ以上の状態変数値の導出に単一のルックアップテーブルのみが使用されている場合でも、2つ以上の状態変数値を適合させて、処理されたシンボル値の(つまり、以前に符号化されたシンボル値または復号されたシンボル値の)異なる統計特性を表すことができる。
【0075】
好ましい実施形態では、算術エンコーダは、異なる適合時定数を使用して、第1の状態変数値および第2の状態変数値を更新するように構成される。
異なる適合時定数を使用して第1の状態変数値と第2の状態変数値を更新することにより、以前に処理されたシンボルの異なる統計特性を状態変数値に反映させることができる。異なる適合時定数で処理されたシンボルの統計を表す状態変数値の可用性は、シンボルの算術コーディング(符号化/復号)の間隔サイズの正確な調整に非常に役立つことがわかっている。また、状態変数値のルックアップテーブルベースの更新により、非常に高い信頼性と低い計算の複雑さが実現されることがわかっている。
【0076】
好ましい実施形態では、算術エンコーダは、符号化されるシンボルが第1の値をとるか、第1の値とは異なる第2の値をとるかに応じて、ルックアップテーブルを使用して決定された値によって以前の状態変数値を選択的に増減するように構成される。
このようなアプローチを使用することにより、状態変数値を再帰的に適合させることができ、処理されたシンボル(例えば、符号化されるシンボル、または以前に符号化されたシンボル、または以前に復号されたシンボル)が、状態変数値の変化の方向(増加または減少)を決定する。他方、適合のサイズ(すなわち、増加または減少のサイズ)は、選択されたルックアップテーブルエントリによって決定され、スケーリングが適用され得る。その結果、状態変数値を更新するための効率的なメカニズムが存在し、これは、高度な柔軟性を実現し、それでも非常にリソース効率が高くなる。
【0077】
好ましい実施形態では、算術エンコーダは、以前の状態変数値を、符号化されるシンボルが第1の値をとる場合に、以前の状態変数値が正である場合と比較して、以前の状態変数値が負である場合に、比較的大きい値だけ増加させるように構成され、算術エンコーダは、以前の状態変数値を、符号化されるシンボルが、第1の値とは異なる第2の値をとる場合に、以前の状態変数値が負である場合と比較して、以前の状態変数値が正である場合に、比較的大きい値だけ減少させるように構成される(それは、例えば、ルックアップテーブルを適切に選択することで到達する)。
このようなアプローチを使用すると、状態変数値が指数関数的に最大の正の値に向かって発展し、指数関数的に最小値に向かって発展するように到達できる。(正の)最大値および(負の)最小値に向かうこの近似は、ほぼ漸近的になる可能性がある。言い換えると、現在の状態変数値が(正の)最大値から離れるほど、(増加する)ステップが(正の)最大値に向かって大きくなり、現在の状態変数値が(負の)最大値から離れるほど、(負の)最小値に向かう(減少)ステップが大きくなる。したがって、指数漸近的挙動は、この概念を使用して近似できる。ただし、このような概念は、状態変数値の更新に非常に適していることがわかっている。特に、そのようなアプローチは、状態変数値を決定するための「無限インパルス応答」アプローチに非常に適していることがわかっている。
【0078】
好ましい実施形態では、算術エンコーダは、符号化されるシンボルが第1の値をとる場合、所定(例えば、固定の)のオフセット値(z)と以前に計算された第1の状態変数値(
[この文献は図面を表示できません]
)、またはそのスケーリングおよび/または丸められたバージョン(
[この文献は図面を表示できません]
)の合計に依存して、第1の状態変数値を更新するときに評価されるルックアップテーブルのエントリのインデックスを決定するように構成され、算術エンコーダは、符号化されるシンボルが第2の値をとる場合、所定(例えば、固定の)のオフセット値(z)と以前に計算された第1の状態変数値の逆(−1を乗算する)バージョン(
[この文献は図面を表示できません]
)、またはそのスケーリングおよび/または丸められたバージョン(
[この文献は図面を表示できません]
)(例えば、以前に計算された第1の状態変数値の逆バージョン)の合計に依存して、第1の状態変数値を更新するときに評価されるルックアップテーブルのエントリのインデックスを決定するように構成される。
このようなアプローチを使用すると、現在処理されているシンボルを考慮して、適度な労力でルックアップテーブルの適切なエントリを選択できる。以前に計算された状態変数値と処理された(符号化または復号された)シンボルの両方がルックアップテーブルのエントリの選択を決定し、その結果、以前に計算された状態変数値と比較したときに更新された状態変数値がどれだけ増加または減少するかによって決定され得る。オフセット値は、例えば、オフセット値とスケーリングされた(処理されたシンボルによっては逆にされる可能性がある)以前計算された状態変数値の合計が、有効なルックアップテーブルインデックスになることを保証し得る。これは、有効なルックアップテーブルインデックスが通常負ではないためである。このような概念を使用すると、適切なルックアップテーブルインデックスを選択し、更新された状態変数値を効率的に提供することが簡単に可能になる。
【0079】
好ましい実施形態では、算術エンコーダは、符号化されるシンボルが第1の値をとる場合、所定(例えば、固定の)のオフセット値(z)と以前に計算された第2の状態変数値(
[この文献は図面を表示できません]
)、またはそのスケーリングおよび/または丸められたバージョン(
[この文献は図面を表示できません]
)の合計に依存して、第2の状態変数値を更新するときに評価されるルックアップテーブルのエントリのインデックスを決定するように構成され、算術エンコーダは、符号化されるシンボルが第2の値をとる場合、所定(例えば、固定の)のオフセット値(z)と以前に計算された第2の状態変数値の逆(−1を乗算する)バージョン(
[この文献は図面を表示できません]
)、またはそのスケーリングおよび/または丸められたバージョン(
[この文献は図面を表示できません]
)(例えば、以前に計算された第2の状態変数値の逆バージョン)の合計に依存して、第2の状態変数値を更新するときに評価されるルックアップテーブルのエントリのインデックスを決定するように構成される。
第2の状態変数値の更新に関するこの概念は、第1の状態変数値の更新に関する概念と実質的に同一であり、例えば、同じルックアップテーブルを評価してメモリリソースを省くことができ、例えば、第1の状態変数値の更新と比較した場合の異なるスケーリング値を使用して、それにより、修正された状態変数値の更新特性を取得することができる。例えば、第1の状態変数値および状態変数値についての異なる適合時定数は、更新された第1の状態変数値および更新された第2の状態変数値の決定のために異なるスケーリング値を使用することによって取得され得る。
【0080】
好ましい実施形態では、算術エンコーダは、第1の状態変数値の更新時に評価されるルックアップテーブルのエントリのインデックスを決定するときに、第1のスケーリング値(m
k1)を適用して、以前に計算された第1の状態変数値(s
k1)をスケーリングするように構成され、算術エンコーダは、第2の状態変数値の更新時に評価されるルックアップテーブルのエントリのインデックスを決定するときに、第2のスケーリング値(m
k2)を適用して、以前に計算された第2の状態変数値(s
k2)をスケーリングするように構成され、第1のスケーリング値が第2のスケーリング値とは異なる(また、第1および第2のスケーリング値は好ましくは2の整数効力であり、第1のスケーリング値と第2のスケーリング値との間の比は、2の場合、好ましくは整数効力であり、第1のスケーリング値および第2のスケーリング値は、好ましくは少なくとも8倍異なる)。
第1の状態変数値を更新するときに評価されるルックアップテーブルのエントリのインデックスを決定するときと、第2の状態変数値を更新するときに評価されるルックアップテーブルのエントリのインデックスを決定するときに異なるスケーリング値を使用することによって、異なる適合時定数が効率的に実装でき、基本的な状態変数値の更新アルゴリズムと、使用されるルックアップテーブルとは同一であり得、唯一の重要な違いはスケーリング値の選択であり得る。これにより、非常にリソースを省く実装が可能になる。
【0081】
好ましい実施形態では、算術エンコーダは、第1の状態変数値を更新するときに第1のスケーリング値(例えば、n
k1)を使用してルックアップテーブルの評価によって返される値をスケーリングするように構成され、算術エンコーダは、第2の状態変数値を更新するときに第2のスケーリング値(例えば、n
k2)を使用してルックアップテーブルの評価によって返される値をスケーリングするように構成され、第1のスケーリング値は第2のスケーリング値とは異なる。
(例えば、選択されたルックアップテーブルエントリの)ルックアップテーブルの評価によって返される値の説明された異なるスケーリングは、第1の状態変数値および第2の状態変数値を更新するときに、異なる適合時定数の効率的な実装を可能にする。さらに、このようなスケーリングにより、第1の状態変数値の更新と第2の状態変数値の更新に同じルックアップテーブルを使用できるようになるため、メモリリソースの節約に役立つ。
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
Aはルックアップテーブルであり(例えば、整数の値を含む)、zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であることに従って、1つまたは複数の更新された状態変数値
[この文献は図面を表示できません]
を決定するように構成される。
状態変数値のこのような更新メカニズムは、高い計算効率で実装でき、信頼できる結果を提供することがわかっている。
【0082】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
Aはルックアップテーブルであり(例えば、整数の値を含む)、zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であることに従って、1つまたは複数の更新された状態変数値
[この文献は図面を表示できません]
を決定するように構成される。
状態変数値を更新するためのそのようなメカニズムはまた、状況によっては非常に有利である可能性があることがわかっている。特に、このようなアプローチを使用して、一部の実装では計算効率が悪い可能性がある浮動小数点値を反転する必要はない。したがって、本概念は、状況によっては非常に優れたリソース効率をもたらす可能性がある。
【0083】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
Aはルックアップテーブルであり(例えば、整数の値を含む)、zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であることに従って、1つまたは複数の更新された状態変数値
[この文献は図面を表示できません]
を決定するように構成される。
この概念はまた、一部の実装環境で特に高い計算効率と優れた精度をもたらすことがわかっている。
【0084】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
Aはルックアップテーブルであり(例えば、整数の値を含む)、zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であることに従って、1つまたは複数の更新された状態変数値
[この文献は図面を表示できません]
を決定するように構成される。
この概念はまた、状況によっては計算効率と信頼性の面で利点をもたらすことがわかっている。
【0085】
算術エンコーダの好ましい実施形態では、Aのエントリは、ルックアップテーブルインデックスの増加とともに単調に減少する。
このようなアプローチを使用すると、状態変数値の最大値または最小値への近似が単調および/または連続的および/または漸近的であることに到達する可能性がある。例えば、それぞれの最大値または最小値から遠く離れている状態変数は、それぞれの最大値または最小値に向かって比較的速く修正される一方で、それぞれの最大値または最小値に近い状態変数値は、該最大値または最小値に向かって比較的ゆっくりと修正されることに到達することができる。したがって、ルックアップテーブルのエントリの上記の選択により、最大値または最小値のスムーズな近似が可能になり、それはもう1つの状態変数値に基づいて間隔サイズ情報を導出するのに非常に役立つことがわかっている。
【0086】
好ましい実施形態では、算術エンコーダは、Aは
[この文献は図面を表示できません]
であるか、ゼロ設定または大きさの縮小によって、引数の1つ以上の極値に対してのみ、それから逸脱して、更新された
[この文献は図面を表示できません]
を所定の値の範囲のままにすることを回避する(例えば、
[この文献は図面を表示できません]
は
[この文献は図面を表示できません]
より大きな値ドメインを持つ;つまり、
[この文献は図面を表示できません]
は
[この文献は図面を表示できません]
に準量子化される;
[この文献は図面を表示できません]
の極値の場合、
[この文献は図面を表示できません]
は上記の式に従って未修正のAによって変更され、その値ドメインを離れることができる:これを回避するために、これらの極値に対応するエントリが削減またはゼロにされる場合があることを考慮されたい)、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
、および
[この文献は図面を表示できません]
は所定のパラメータである(例は上記に記載されている)。
ルックアップテーブルΑのそのような選択は、該ルックアップテーブルAを使用して更新される状態変数値の特に有利な挙動をもたらすことがわかっている。
【0087】
算術エンコーダの好ましい実施形態では、ルックアップテーブルの最後のエントリ(これは、第1の状態変数値が最大許容値まで及ぶ所定の値の範囲に達したとき、または第1の状態変数値が所定のしきい値を超えたときにアドレス指定される)はゼロに等しい。
ルックアップテーブルの最後のエントリ(0に等しい)を使用することにより、更新された状態変数値が最大値および/または最小値を超えることを簡単に回避できる。
好ましい実施形態では、算術エンコーダは、更新された状態変数値にクリッピング操作を適用して、更新されクリップされた状態変数値を所定の値の範囲内に保つように構成される。
このようなメカニズムを使用すると、状態変数値が最小値と最大値の間の所定の範囲を超えることを容易に防ぐことができる。したがって、状態変数値が「合理的な」値をとることを保証することができる。
【0088】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
によってクリッピング操作を
更新された状態変数値に適用するように構成され、
[この文献は図面を表示できません]
は
[この文献は図面を表示できません]
の最大許容値であり、
[この文献は図面を表示できません]
は
[この文献は図面を表示できません]
の最小許容値である。
このようなクリッピング操作は効率的な方法で実装でき、無効な状態変数値を回避できることがわかっている。
【0089】
好ましい実施形態では、算術エンコーダは、異なるコンテキストモデルに異なるスケーリング値を適用するように構成される(例えば、スケーリング値の少なくとも1つが2つの異なるコンテキストモデル間で異なるようにする)。
異なるコンテキストモデルに対して異なるスケーリング値を使用して、異なるコンテキストモデルの異なる統計特性(異なるタイプの情報および/またはタイプのビットストリーム構文要素に関連付けられている可能性がある)を考慮することができる。異なるコンテキストモデルに異なるスケーリング値を使用することにより、状態変数値の更新手順を、基礎となるアルゴリズムを根本的に変更することなく、異なるコンテキストモデルに簡単に適合させることができる。したがって、適切なスケーリング値を非常に効率的な方法で取得できる。
【0090】
好ましい実施形態では、算術エンコーダは、上記の実施形態の1つで定義された間隔サイズ情報を取得するように構成される。
状態変数値の更新の概念は、間隔サイズ情報の導出のための上記の概念と結合して十分に使用できることがわかっている。
【0091】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを符号化するための算術エンコーダを作成するものであり、算術エンコーダは、1つまたは複数の状態変数値(s
ik)に基づいて符号化される1つまたは複数のシンボル値の算術符号化の間隔サイズ値(R
LPS)(それは例えば、インデックスkで示される所与のコンテキストモードに関連付けられている)を導出するように構成され、これは、以前に符号化された複数のシンボル値(例えば、バイナリ値0および1のシーケンス)の統計を表し(例えば、異なる適合時定数を使用)、算術エンコーダは、ベースルックアップテーブル(Base TabLPS)を使用して間隔サイズ値(R
LPS)を決定するように構成され(その次元は、確率指数の観点から、可能な確率指数iの数よりも小さい)、算術エンコーダは、1つまたは複数の状態変数値(例えば、i=Qp(p
LPS)のように)を基にして得られる確率指数(i)が第1の範囲(例えば、μ未満)内にある場合、決定された間隔サイズ値がベースルックアップテーブルの要素と同一であるか、またはベースルックアップテーブルの要素の丸めのバージョンであり、確率指数が第2の範囲(例えば、μ以上)内にある場合は、ベースルックアップテーブルの要素のスケーリングと丸めを使用して、決定された間隔サイズ値が取得されるように、間隔サイズ値(R
LPS)が決定されるように構成され、算術エンコーダは、間隔サイズ値(R
LPS)を使用して1つまたは複数のシンボルの算術符号化を実行するように構成される。
【0092】
本発明によるこの実施形態は、算術エンコーダにおける間隔サイズ値の決定が「ベースルックアップテーブル」を使用して実行できるという考えに基づいており、その次元は、該ベースルックアップテーブルの要素を再利用することによる所与の現在のコーディング間隔サイズに関連するいくつかの異なる間隔サイズ値よりも小さく、1回はスケーリングなしで、もう1回はスケーリングがありである。したがって、異なる範囲の状態変数値に関連付けられている算術符号化(符号化/復号)の間隔サイズ値は、スケーリングによって実質的に異なる(例えば、いくつかの丸め効果を除いて)ことが利用可能である。したがって、比較的小さな「ベースルックアップテーブル」を使用することができ、そのエントリは、異なる確率指数に対して複数回使用される(確率指数は、それぞれの状態変数値に基づいて導出され得る)。
結論として、ここで説明する概念により、1つまたは複数の状態変数値に基づいて間隔サイズ値を非常に効率的に決定できる。
【0093】
好ましい実施形態では、算術エンコーダは、間隔サイズ値を決定するように構成され、決定された間隔サイズ値(R
LPS)は、確率指数が第2の範囲内にある場合、ベースルックアップテーブルの要素の右シフトバージョンである。
この概念は、右シフト演算が計算上非常に効率的であり、また、確率指数が第2の範囲内にある場合、信頼できる間隔サイズ値を提供するという考えに基づいている(一方、好ましくは、確率指数が第1の範囲内にある場合は、ベースルックアップテーブルの要素にシフト演算が適用されない)。その結果、第1の範囲内と第2の範囲内の「対応する」確率指数に提供される間隔サイズ値は、主にビットシフトによって異なる(可能な丸めを除く)。これは通常、確率指数値の範囲全体、または完全な「第1の範囲」(通常は3つ以上の異なる値で構成される)にも当てはまる。さらに、右シフト演算は通常、2の効力による除算に対応することに留意されたい。
【0094】
好ましい実施形態では、確率指数(Qp2(p
LPS))は、ルックアップテーブルの要素が間隔サイズ値(R
LPS)として提供されるかどうか、またはルックアップテーブルの要素が間隔サイズ値(R
LPS)を得るようにスケーリングおよび丸められるかどうかを決定する。
確率指数(または、より具体的には、確率指数が第1の範囲内にあるか、第2の範囲内にあるかという質問)が、ルックアップテーブル(ベースルックアップテーブル)の要素に基づいて、スケーリング(および任意選択で丸め)を適用して間隔サイズ値を取得するかどうか決定するため、アルゴリズムは非常に単純に保つことができる。例えば、確率指数が第1の範囲内にあるか、第2の範囲内にあるかを確認することは、確率指数を所定の値で除算するか、確率指数を1つ以上のしきい値と比較することで簡単に実行できる。したがって、確率指数に基づいて、スケーリング(および任意選択の丸め)を実行するかどうかを簡単に決定できる。したがって、間隔サイズ値の導出の概念は非常に効率的である。
【0095】
算術エンコーダの好ましい実施形態では、確率指数(i)と第1のサイズ値(例えば、μ、サイズ値は例えば、第1の方向のベースルックアップテーブルの拡張を説明する)および間隔サイズ指数(例えば量子化演算Qr2(.)を使用するなどして間隔サイズ情報または合計間隔サイズ情報Rに基づいて取得できる)との間の除算の除算残差(i%μ)は、間隔サイズ値を取得するためにベースルックアップテーブルのどの要素を使用するかを決定する。
分割残差と区間サイズ指数に依存してベースルックアップテーブルのエントリを選択することにより、2次元ベースルックアップテーブルを簡単に評価でき、2次元ベースルックアップテーブルの要素には、間隔サイズ値(間隔サイズ指数で表すことができる)を使用して乗算を組み込むことができる。したがって、2次元のベースルックアップテーブルを有することにより、間隔サイズ値を使用した乗算を省くことができる(分割残差を第1のテーブルインデックスとして使用でき、間隔サイズ指数を第2のテーブルインデックスとして使用できる)。さらに、第1のテーブルインデックスとしての除算残差の使用は、ベースルックアップテーブルの要素が確率指数の増加に伴って周期的に選択されるという事実によく適合している(確率指数の後続の範囲がベースルックアップテーブルの共通範囲を選択するため)。結論として、上記の実装は、ベースルックアップテーブルの要素への非常に簡単なアクセスを可能にし、ベースルックアップテーブルの2次元の性質により、間隔サイズ値との乗算を回避するのに役立つ。
【0096】
好ましい実施形態では、算術エンコーダは、
R
XPS=Scal(BaseTabLPS[i%μ][j]、[i/μ])
BaseTabLPSは、次元μxλのベースルックアップテーブルであり、iは、確率情報に関連付けられたテーブルインデックスであり、jは、間隔サイズ情報に関連付けられたテーブルインデックスであり(例えば、合計間隔サイズ情報R)、%は除算残差演算であり、/は除算演算であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、またはbは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右側にシフトするかどうか、および何ビットシフトするかを決定する、
ことに従って、間隔サイズ値R
XPS(例えば、R
LPS)を取得するように構成される。
間隔サイズ情報を構成する間隔サイズ値を決定するためのそのような概念は、計算効率が高く、比較的小さなベースルックアップテーブルの使用を可能にすることがわかっている。特に、乗算演算を回避できる。さらに、分割残差演算および除算演算は、例えば、次元μが2の効力である場合、非常に計算効率の高い方法で実施することもできる。したがって、間隔サイズ値の導出について説明した概念により、計算上非常に効率的な実装が可能になる。
【0097】
好ましい実施形態では、算術エンコーダは、1つまたは複数の状態変数値(s
ik)(これはインデックスkによって示される所与のコンテキストモードに関連付けられる)に基づいて符号化される1つまたは複数のシンボル値の算術符号化の間隔サイズ値(R
LPS)を導出するように構成され、これは、以前に符号化された複数のシンボル値の統計を表し(例えば、バイナリ値0と1のシーケンス)(例えば、異なる適合時定数で);算術エンコーダは、1つまたは複数の状態変数値から導出された(現在の)確率値に基づいて、また(現在の)コーディング間隔サイズ(R)に基づいて、確率テーブル(Prob TabLPS)(確率指数という観点で次元が可能な確率指数iの数値より小さい)を使用して間隔サイズ値(R
LPS)を決定するように構成され、確率テーブルは、複数の確率値のセット(例えば、0とμ−1の間の確率指数に対して)および(単一の)所与の(参照)コーディング間隔サイズの間隔サイズ(間隔サイズ値)を記述し、算術エンコーダは、現在の確率値が複数の確率値のセットにない(例えば、μ以上の現在の確率値と関連付けられた確率指数である)場合、および/または現在のコーディング間隔サイズ(R)が、所与(参照)のコーディング間隔サイズとは異なる場合、間隔サイズ値(R
LPS)を取得するよう所与(参照)の確率テーブル(Prob_TabLPS)の要素をスケーリングするように構成され、また、算術エンコーダは、間隔サイズ値(R
LPS)を使用して1つまたは複数のシンボルの算術符号化を実行するように構成される。
この概念は、確率値(または確率指数)の異なる(重複しない)範囲に関連付けられた間隔サイズ値が、スケーリング操作によって実質的に(可能な丸め効果を除いて)関連付けられているという考えに基づいている。ルックアップテーブル(確率テーブル)のサイズが適切に選択されている場合、スケーリング演算は、例えば、ビットシフト演算を使用して、計算効率の高い方法で実装され得ることにも留意されたい。その結果、小さな計算労力で算術コーディング(符号化または復号)に使用され、メモリを省く小さなサイズのルックアップテーブルのみを使用する間隔サイズ値を導出することが可能である。
【0098】
好ましい実施形態では、算術エンコーダは、(現在の)コーディング間隔サイズ(R)に応じて、確率テーブルの選択された要素(probTabLPS[i%μ])の(乗法の)第1のスケーリングを使用し、現在の確率値(指数iにより指定)に関連付けられた要素が複数の確率値のセットに含まれるかどうかに応じて(例えば、現在の確率値は、確率テーブルでカバーされている確率値の範囲内にあるかどうかに応じて)、第1のスケーリングの結果の第2のスケーリングを使用して間隔サイズ値を取得されるように構成される。
2段階の乗算またはスケーリングを使用して、間隔サイズ情報を取得することにより、小さな確率テーブルを使用できる。例えば、確率テーブルは、単一のコーディング間隔サイズおよび所与の比較的狭い範囲の確率値(「複数の確率値のセット」によって表され得る)のみを「直接」カバーし得る。したがって、他のいずれかのコーディング間隔サイズ、および確率テーブルによって「直接」カバーされる複数の確率値のセットに含まれない任意の確率値について、意味のある信頼できる間隔サイズ値が取得されるように、スケーリングが実行される。
【0099】
算術エンコーダの好ましい実施形態では、確率指数(例えばi、例えば、現在の確率値を表す)および第1のサイズ値(例えばμ、例えばサイズ値が確率テーブルの拡張について説明する)の間の除算の除算残差(i%μ)は、確率テーブルのどの要素が第1のスケーリングでスケーリングされるかを決定する、および/または確率指数(i)および第1のサイズ値間の除算の整数除算結果([i/μ])は、第2のスケーリングで使用されるスケーリング係数(2−[i/μ])を決定する、および/またはコーディング間隔サイズ(R)は、第1のスケーリングの乗法スケーリング係数(Qr2(R))を決定する。
除算残差を使用して確率のどの要素がスケーリングされるかを決定することは、確率テーブルのエントリが確率指数の増加とともに定期的に再利用される(例えば、周期的に)という事実を活用するのに役立つ。除算残差の使用は、この事実を表している。また、除算残差は、状況によっては、特に除算が2の効力で行われる場合、非常に高い計算効率で計算できる。
さらに、整数除算の結果に基づいてスケーリング係数を決定することにより、スケーリング係数を確率指数値の異なる(隣接する)範囲に簡単に割り当てることができる。さらに、整数除算の結果は、状況によっては、特に除算が2の効力で行われる場合、計算上非常に効率的な方法で計算できる。
さらに、コーディング間隔サイズに依存して乗法スケーリング係数を決定することは、間隔サイズ値がコーディング間隔サイズに比例するという事実を反映している。したがって、間隔サイズ値を高い効率かつ精度で得ることができる。
【0100】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
iは、確率情報に関連付けられたテーブルインデックスであり、jは間隔サイズ情報に関連付けられたテーブルインデックスであり、%は除算残差演算であり、/は除算演算であり、probTabLPS []は確率テーブルであり、μは確率テーブルの要素の数であり(iの値の範囲は通常μよりも大きくなる)、Rは間隔サイズ(または現在のコーディング間隔サイズ)であり、Qr
2(R)はRに依存するスケーリング係数であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、bは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右シフトをするかどうか、および何ビットシフトするかを決定する、
ことに従って間隔サイズ値R
XPS(例えば、R
LPS)を取得するように構成される。
間隔サイズ値を決定するためのそのようなアルゴリズムは、計算上効率的であり、良質の結果を提供することがわかっている。確率テーブルは比較的小さくすることができ、スケーリング関数は、例えば、1つまたは複数のビットシフト演算を使用して、計算効率の良い方法で実装することができる。
【0101】
好ましい実施形態では、算術エンコーダは、現在の確率値(指数iにより指定)に関連付けられた要素が確率値に含まれるかどうかに応じて(例えば、現在の確率値は、確率テーブルでカバーされている確率値の範囲内にあるかどうかに応じて)、確率テーブルの選択された要素(probTabLPS[i%μ])の(乗法の)第1のスケーリングを使用し、また、コーディング間隔サイズ(R)に応じて、第1のスケーリングの結果の第2のスケーリングを使用して、間隔サイズ値を取得されるように構成される。
この概念では、上記の概念と比較すると、第1のスケーリングと第2のスケーリングの処理順序が逆になっている。ただし、基本的な考慮事項は同じままである。
【0102】
好ましい実施形態では、確率指数(例えばi、例えば、現在の確率値を表す)、および第1のサイズ値(例えばμ、例えばサイズ値が確率テーブルの拡張について説明する)の間の除算の除算残差(i%μ)は、確率テーブルのどの要素が第1のスケーリングでスケーリングされるかを決定する、および/または確率指数(i)および第1のサイズ値間の除算の整数除算結果([i/μ])は、第1のスケーリングで使用されるスケーリング係数(例えば、2−[i/μ]またはa−b[i/μ])を決定する、および/または(現在の)コーディング間隔サイズ(R)は、第2のスケーリングの乗法スケーリング係数(Qr2(R))を決定する。
この概念では、上記の概念と比較すると、第1のスケーリングと第2のスケーリングの順序が逆になっている。ただし、基本的な考慮事項は変更されていない。
【0103】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
iは、確率情報に関連付けられたテーブルインデックスであり、jは(現在の)間隔サイズ情報に関連付けられたテーブルインデックスであり、%は除算残差演算であり、/は除算演算であり(例えば、整数の結果を提供する)、probTabLPS []は確率テーブルであり、μは確率テーブルの要素の数であり(iの値の範囲は通常μよりも大きくなる)、Rは間隔サイズ(または現在のコーディング間隔サイズ)であり、Qr
2(R)はRに依存するスケーリング係数であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、bは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右シフトをするかどうか、および何ビットシフトするかを決定する、
ことに従って間隔サイズ値R
XPS(例えば、R
LPS)を取得するように構成される。
この概念では、上記の実装と比較すると、第1のスケーリングおよび第2のスケーリングのスケーリング順序が逆になっている。ただし、基本的な基礎となる考え方は変わりない。
【0104】
以下では、算術復号に関連するいくつかの実施形態について説明する。ただし、算術復号に関連する概念、考慮事項、およびこれらの概念の基礎となる詳細は、算術符号化の概念の基礎となる概念、考慮事項、および詳細と実質的に同じである。したがって、上記の説明も同様に当てはまる。ただし、符号化されるシンボル値は、復号されるシンボル値または以前に復号されたシンボルに対応し、以前に符号化されたシンボル値は、以前に復号されたシンボル値に対応する。さらに、符号化特徴と復号特徴との間の対応は、当業者には明らかであり、請求項の文言の比較からも明らかである。
【0105】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを復号するための算術デコーダを作成するものであり、算術デコーダは、1つまたは複数の状態変数値(s
ik)に基づいて復号される1つまたは複数のシンボル値の算術復号の間隔サイズ値(R
LPS)(それは例えば、インデックスkで示される所与のコンテキストモードに関連付けられている)を導出するように構成され、これは、以前に復号された複数のシンボル値(例えば、バイナリ値0および1のシーケンス)の統計を表し(例えば、異なる適合時定数を使用)、算術デコーダは、ベースルックアップテーブル(Base TabLPS)を使用して間隔サイズ値(R
LPS)を決定するように構成され(その次元は、確率指数の観点から、可能な確率指数iの数よりも小さい)、算術デコーダは、1つまたは複数の状態変数値(例えば、i=Qp(p
LPS)のように)を基にして得られる確率指数(i)が第1の範囲(例えば、μ未満)内にある場合、決定された間隔サイズ値がベースルックアップテーブルの要素と同一であるか、またはベースルックアップテーブルの要素の丸めのバージョンであり、確率指数が第2の範囲(例えば、μ以上)内にある場合は、ベースルックアップテーブルの要素のスケーリングと丸めを使用して、決定された間隔サイズ値が取得されるように、間隔サイズ値(R
LPS)が決定されるように構成され、算術デコーダは、間隔サイズ値(R
LPS)を使用して1つまたは複数のシンボルの算術復号を実行するように構成される。
【0106】
好ましい実施形態では、算術デコーダは、間隔サイズ値を決定するように構成され、決定された間隔サイズ値(R
LPS)は、確率指数が第2の範囲内にある場合、ベースルックアップテーブルの要素の右シフトバージョンである。
【0107】
算術デコーダの好ましい実施形態では、確率指数(Qp2(p
LPS))は、ルックアップテーブルの要素が間隔サイズ値(R
LPS)として提供されるかどうか、またはルックアップテーブルの要素が間隔サイズ値(R
LPS)を得るようにスケーリングおよび丸められるかどうかを決定する。
【0108】
算術デコーダの好ましい実施形態では、確率指数(i)と第1のサイズ値(例えば、μ、サイズ値は例えば、第1の方向のベースルックアップテーブルの拡張を説明する)および間隔サイズ指数(例えば量子化演算Qr2(.)を使用するなどして間隔サイズ情報または合計間隔サイズ情報Rに基づいて取得できる)との間の除算の除算残差(i%μ)は、間隔サイズ値を取得するためにベースルックアップテーブルのどの要素を使用するかを決定する。
【0109】
好ましい実施形態では、算術デコーダは、
R
XPS=Scal(BaseTabLPS[i%μ][j)、[i/μ])
BaseTabLPSは、次元μxλのベースルックアップテーブルであり、iは、確率情報に関連付けられたテーブルインデックスであり、jは、間隔サイズ情報に関連付けられたテーブルインデックスであり(例えば、合計間隔サイズ情報R)、%は除算残差演算であり、/は除算演算であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、またはbは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右側にシフトするかどうか、および何ビットシフトするかを決定する、
ことに従って、間隔サイズ値R
XPS(例えば、R
LPS)を取得するように構成される。
【0110】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを復号するための算術デコーダを作成するものであり、算術デコーダは、1つまたは複数の状態変数値(s
ik)(これは、例えば、インデックスkによって示される所与のコンテキストモードに関連付けられる)に基づいて復号される1つまたは複数のシンボル値の算術復号の間隔サイズ値(R
LPS)を導出するように構成され、これは、以前に復号された複数のシンボル値の統計を表し(例えば、バイナリ値0と1のシーケンス)(例えば、異なる適合時定数で);算術デコーダは、1つまたは複数の状態変数値から導出された(現在の)確率値に基づいて、また(現在の)コーディング間隔サイズ(R)に基づいて、確率テーブル(Prob TabLPS)(確率指数という観点で次元が可能な確率指数iの数値より小さい)を使用して間隔サイズ値(R
LPS)を決定するように構成され、確率テーブルは、複数の確率値のセット(例えば、0とμ−1の間の確率指数に対して)および(単一の)所与の(参照)コーディング間隔サイズの間隔サイズ(間隔サイズ値)を記述し、算術デコーダは、現在の確率値が複数の確率値のセットにない(例えば、μ以上の現在の確率値と関連付けられた確率指数である)場合、および/または現在のコーディング間隔サイズ(R)が、所与(参照)のコーディング間隔サイズとは異なる場合、間隔サイズ値(R
LPS)を取得するよう確率テーブル(Prob_TabLPS)の要素(例えば、現在の確率値に依存して選択された要素)をスケーリングするように構成され、また、算術デコーダは、間隔サイズ値(R
LPS)を使用して1つまたは複数のシンボルの算術復号化を実行するように構成される。
【0111】
好ましい実施形態では、算術デコーダは、(現在の)コーディング間隔サイズ(R)に応じて、確率テーブルの選択された要素(probTabLPS[i%μ])の(乗法の)第1のスケーリングを使用し、現在の確率値(指数iにより指定)に関連付けられた要素が複数の確率値のセットに含まれるかどうかに応じて(例えば、現在の確率値は、確率テーブルでカバーされている確率値の範囲内にあるかどうかに応じて)、第1のスケーリングの結果の第2のスケーリングを使用して間隔サイズ値を取得されるように構成される。
【0112】
算術デコーダの好ましい実施形態では、確率指数(例えばi、例えば、現在の確率値を表す)、および第1のサイズ値(例えばμ、例えばサイズ値が確率テーブルの拡張について説明する)の間の除算の除算残差(i%μ)は、確率テーブルのどの要素が第1のスケーリングでスケーリングされるかを決定する、および/または確率指数(i)および第1のサイズ値間の除算の整数除算結果([i/μ])は、第2のスケーリングで使用されるスケーリング係数(2
−[i/μ])を決定する、および/またはコーディング間隔サイズ(R)は、第1のスケーリングの乗法スケーリング係数(Qr2(R))を決定する。
【0113】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
iは、確率情報に関連付けられたテーブルインデックスであり、jは間隔サイズ情報に関連付けられたテーブルインデックスであり、%は除算残差演算であり、/は除算演算であり、probTabLPS []は確率テーブルであり、μは確率テーブルの要素の数であり(iの値の範囲は通常μよりも大きくなる)、Rは間隔サイズ(または現在のコーディング間隔サイズ)であり、Qr
2(R)はRに依存するスケーリング係数であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、bは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右シフトをするかどうか、および何ビットシフトするかを決定する、
ことに従って間隔サイズ値R
XPS(例えば、R
LPS)を取得するように構成される。
【0114】
好ましい実施形態では、算術デコーダは、現在の確率値(指数iにより指定)に関連付けられた要素が確率値に含まれるかどうかに応じて(例えば、現在の確率値は、確率テーブルでカバーされている確率値の範囲内にあるかどうかに応じて)、確率テーブルの選択された要素(probTabLPS[i%μ])の(乗法の)第1のスケーリングを使用し、また、コーディング間隔サイズ(R)に応じて、第1のスケーリングの結果の第2のスケーリングを使用して、間隔サイズ値を取得されるように構成される。
【0115】
算術デコーダの好ましい実施形態では、確率指数(例えばi、例えば、現在の確率値を表す)、および第1のサイズ値(例えばμ、例えばサイズ値が確率テーブルの拡張について説明する)との間の除算の除算残差(i%μ)は、確率テーブルのどの要素が第1のスケーリングでスケーリングされるかを決定する、および/または確率指数(i)および第1のサイズ値間の除算の整数除算結果([i/μ])は、第1のスケーリングで使用されるスケーリング係数(例えば、2
−[i/μ]またはa
−b[i/μ])を決定する、および/または(現在の)コーディング間隔サイズ(R)は、第2のスケーリングの乗法スケーリング係数(Qr
2(R))を決定する。
【0116】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
iは、確率情報に関連付けられたテーブルインデックスであり、jは(現在の)間隔サイズ情報に関連付けられたテーブルインデックスであり、%は除算残差演算であり、/は除算演算であり(例えば、整数の結果を提供する)、probTabLPS []は確率テーブルであり、μは確率テーブルの要素の数であり(iの値の範囲は通常μよりも大きくなる)、Rは間隔サイズ(または現在のコーディング間隔サイズ)であり、Qr
2(R)はRに依存するスケーリング係数であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、bは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右シフトをするかどうか、および何ビットシフトするかを決定する、
ことに従って間隔サイズ値R
XPS(例えば、R
LPS)を取得するように構成される。
【0117】
以下では、算術符号化に関連するいくつかのさらなる実施形態について説明する。
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを符号化するための算術エンコーダを作成するものであり、算術エンコーダは、以前に符号化された複数のシンボル値の統計を表す1つの状態変数値(s
k)を決定するように構成され、算術エンコーダは、結合状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])から、符号化されるシンボル値の算術符号化のためのサブインターバル幅値(
[この文献は図面を表示できません]
)を計算するよう構成され、この計算は、そのエントリが結合状態変数値の値ドメインの異なる値間隔の確率値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k];
[この文献は図面を表示できません]
)を含む1次元ルックアップテーブル(
[この文献は図面を表示できません]
)を使用して、1つの状態変数値(s
k)、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k];
[この文献は図面を表示できません]
)を確率値にマッピングすること、および量子化レベル(
[この文献は図面を表示できません]
)に符号化されるシンボル値の算術符号化の前に、算術符号化のコーディング間隔のサイズを記述するコーディング間隔サイズ情報(例えば、R)を量子化することにより、これを行い、算術エンコーダは、さらに、確率値と、量子化レベルの間の積を決定する(事前に計算された積のルックアップまたは乗算によって)ように構成され、算術エンコーダは、符号化されるシンボル値に依存して状態変数値の更新を実行するように構成される。
【0118】
この実施形態は、非常に単純な一次元ルックアップテーブルを、結合状態変数値に基づくサブインターバル幅値の決定に使用できるという発見に基づいている。コーディング間隔サイズは、コーディング間隔サイズ情報の量子化、および確率値と量子化値(または量子化レベル)の間の積の決定によって考慮される。したがって、信頼できる結果は適度な努力で得られる。
【0119】
好ましい実施形態では、算術エンコーダは、1つの状態変数値(s
k)として、結合状態変数値(例えば、状態変数値の加重和であり得る)、複数の状態変数値(s
ik)(例えば、バイナリ値0および1のシーケンス)(例えば、複数の状態変数値の場合、異なる適合時定数の統計)の基礎となるものを導出するように構成され、これは、異なる適合時定数の複数の以前に符号化されたシンボル値(例えば、バイナリ値0および1のシーケンス)の統計を表す。
結合状態変数値を1つの状態変数値として使用すると、特に良好な結果が得られることがわかっている。様々な適合時定数を考慮すると、短時間の統計と長時間の統計の両方を考慮することができるため、サブインターバル幅の値の信頼性が特に高くなる。
【0120】
好ましい実施形態では、算術エンコーダは、結合状態変数値を取得するために、状態変数値の加重和を決定するように構成される。
結合状態変数値のそのような計算は、計算の労力を適度に少なく保ちながら、結合状態変数値に対する短期統計と長期統計の異なる影響の考慮を可能にする。
【0121】
好ましい実施形態では、算術エンコーダは、状態変数値(
[この文献は図面を表示できません]
)および関連する重み付け値(
[この文献は図面を表示できません]
結合状態変数値(s
k)を得るため)の積を丸めることによって得られる丸められた値(
[この文献は図面を表示できません]
)の合計を決定するように構成される。
合計の前に丸め演算を適用すると、計算の労力が軽減され、状態変数値と関連する重み付け値の非常に小さな積の影響も排除される。したがって、信頼性が向上する。
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
s
k2は状態変数値であり、Nは考慮される状態変数値の数であり、[.]はフロア演算子であり、d
kiは状態変数値に関連付けられた重み付け値(例えば、結合状態変数値への個々の状態変数値の影響を制御する重み付け係数)(d
kiは好ましくはフォン2の整数値の効力であり、2つの異なるd
ki間の比率は好ましくは2の整数値の効力である)[2つの異なるd
ki間の比率は、好ましくは8以上)であることに従って、結合状態変数値s
kを決定するように構成される。
結合状態変数値のそのような導出は特に有利であることがわかっている。結合状態変数値を決定するための対応する概念の上記の説明の言及もなされている。
【0122】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つ以上の重み付け値であり、Aは
[この文献は図面を表示できません]
であるか、ゼロ設定または大きさの縮小によって、引数の1つ以上の極値に対してのみ、それから逸脱して、更新された
[この文献は図面を表示できません]
を所定の値の範囲のままにすることを回避する(例えば、
[この文献は図面を表示できません]
は
[この文献は図面を表示できません]
より大きな値ドメインを持つ;つまり、
[この文献は図面を表示できません]
は
[この文献は図面を表示できません]
に準量子化される;
[この文献は図面を表示できません]
の極値の場合、
[この文献は図面を表示できません]
は上記の式に従って未修正のAによって変更され、その値ドメインを離れることができる:これを回避するために、これらの極値に対応するエントリが削減またはゼロにされる場合があることを考慮されたい)、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
、および
[この文献は図面を表示できません]
は所定のパラメータである(例は上記に記載されている)
ことに従って、状態変数値の更新を行う際、複数の状態変数値
[この文献は図面を表示できません]
を更新するように構成される。
状態変数値のそのような更新は特に有利であることがわかっている。状態変数の更新については、この概念に関する上記の説明も参照される。
【0123】
好ましい実施形態では、算術エンコーダは、テーブルルックアップまたは計算によって
[この文献は図面を表示できません]
を導出するように構成される。
この概念に関しては、上記の説明が参照される。
【0124】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
Aはルックアップテーブルであり(例えば、整数の値を含む)、zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であることに従って、1つまたは複数の更新された状態変数値
[この文献は図面を表示できません]
を決定するように構成される。
1つまたは複数の状態変数値を更新するためのこの概念の利点については、上記の説明が参照される。
【0125】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
Aはルックアップテーブルであり(例えば、整数の値を含む)、zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であることに従って、1つまたは複数の更新された状態変数値
[この文献は図面を表示できません]
を決定するように構成される。
1つまたは複数の状態変数値を更新するためのこの概念の利点について、上記の説明が参照される。
【0126】
好ましい実施形態では、算術エンコーダは、
[この文献は図面を表示できません]
Aはルックアップテーブルであり(例えば、整数の値を含む)、zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であることに従って、1つまたは複数の更新された状態変数値
[この文献は図面を表示できません]
を決定するように構成される。
1つまたは複数の状態変数値を更新するためのこの概念の利点については、上記の説明が参照される。
【0127】
好ましい実施形態では、算術エンコーダは、コーディング間隔サイズ情報に論理右シフトを適用することによってコーディング間隔サイズ情報の量子化を実行するように構成される。
コーディング間隔サイズ情報の論理的な右シフトは、計算上非常に効率的である。
好ましい実施形態では、算術エンコーダは、コーディング間隔サイズ情報
[この文献は図面を表示できません]
の量子化を
[この文献は図面を表示できません]
により実行するように構成され、式中、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
および
[この文献は図面を表示できません]
はパラメータである。
コーディング間隔サイズ情報のこの量子化の利点に関しては、上記の論述が参照される。
算術エンコーダの好ましい実施形態では、1次元ルックアップテーブルのエントリは、1つの状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])の増加で単調に減少する。
1次元ルックアップテーブルのこの構造の利点については、上記の説明が参照される。
算術エンコーダの好ましい実施形態では、1つの状態変数値の値ドメインの異なる値間隔、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])は、等しいサイズである。
この概念の利点については、上記の説明が参照される。
【0128】
算術エンコーダの好ましい実施形態では、1次元ルックアップテーブルのエントリは、1つの状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])の増加で減少率を伴って単調に減少する。
この概念の利点については、上記の説明が参照される。
以下では、算術符号化についての上記の概念に対応する算術復号の概念について説明する。したがって、同じ説明が適用され、上記と同じ詳細を任意選択で使用できる。ただし、算術エンコーダは算術デコーダに対応することに留意されたい。さらに、以前に符号化されたシンボル値は、通常、以前に復号されたシンボル値に対応し、符号化されるシンボル値は、通常、以前に復号されたシンボル値(または復号されるシンボル値)に対応し得る。ただし、特徴の対応に関しては、関連する(または対応する)概念を定義する対応するクレームの比較も参照される。
【0129】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを復号するための算術デコーダを作成し、算術デコーダは、間隔サイズ情報(p
k、R*p
k)を、1つまたは複数のシンボル値(例えば、バイナリ値)の算術復号が複数の状態変数値(s
ik)(例えば、インデックスkによって表示される所与のコンテキストモードに関連付けられるもの)に基づいて復号されるように導出するように構成され、これは、異なる適合時定数で以前に復号された複数のシンボル値(例えば、バイナリ値0と1のシーケンス)の統計(例えば、復号される1つまたは複数のシンボルが特定のシンボル値を含む確率の推定)を表し、算術デコーダは、ルックアップテーブル(LUT1)を使用して、第1の状態変数値(s
k1)、またはそのスケーリングおよび/または丸められたバージョン([s
k1*a
k1])をマッピングし、ルックアップテーブル(LUT1)を使用して、第2の状態変数値(s
k2)、またはそのスケーリングおよび/または丸められたバージョン([s
k2*a
k2])をマッピングするように構成され、復号される1つまたは複数のシンボルの算術復号のための間隔サイズを説明する間隔サイズ情報(例えば、p
kまたはR*p
k)を取得するようにする。
【0130】
好ましい実施形態では、算術デコーダは、ルックアップテーブルを使用して、第1の状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k1*a
k1])を第1の確率値(p
k1)にマッピングするように構成され、算術デコーダは、ルックアップテーブルを使用して、第2の状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k2*a
k2])を第2の確率値(p
k2)にマッピングするように構成され、算術デコーダは、第1の確率値および第2の確率値を使用して(例えば、加重和または加重平均を使用して)結合確率値(pk)を取得するように構成される。
好ましい実施形態では、算術デコーダは、復号されるシンボルが第1の値(例えば「1」)をとる場合に状態変数値を第1の方向に変更する(例えばより正になる)ように構成され、また復号されるシンボルが第1の値とは異なる第2の値(例えば「0」)をとる場合(例えば、状態変数値が正と負の値をとることができるように)に状態変数値を第2の方向に(例えば、より負になるもの)変更するように構成され、算術デコーダは、それぞれの状態変数値の絶対値(s
ki>0の場合はs
ki、それ以外の場合は−s
ki)に応じて(例えば、状態変数値の絶対値のスケーリングおよび丸められたバージョンに応じて)評価されるルックアップテーブルのエントリを決定するように構成される。
【0131】
好ましい実施形態では、算術デコーダは、第1の状態変数値が第1の符号(例えば、正の符号)をとる場合に、第1の確率値(p
k1)をルックアップテーブルによって提供される値(例えば、
[この文献は図面を表示できません]
)に設定するように構成され、算術デコーダは、第1の状態変数値が第2の符号(例えば、負の符号)をとる場合、第1の確率値(p
k1)を、所定の値(例えば、1)からルックアップテーブルによって提供される値(例えば、
[この文献は図面を表示できません]
)を減算することによって得られる値に設定するように構成される。
【0132】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
LUT1は確率値を含むルックアップテーブルであり、[.]はフロア演算子であり、s
kiはi番目の状態変数値であり、a
kiは、i番目の状態変数値に関連付けられた重み付け値である(例えば、i番目の状態変数値の数の範囲をルックアップテーブルのいくつかのエントリに適合させる重み付け値)ことにより、2つ以上の確率値p
kiを決定するように構成される。
【0133】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
LUT1は確率値を含むルックアップテーブルであり、[.]はフロア演算子であり、s
kiはi番目の状態変数値であり、a
kiは、i番目の状態変数値に関連付けられた重み付け値である(例えば、i番目の状態変数値の数の範囲をルックアップテーブルのいくつかのエントリに適合させる重み付け値)ことにより、2つ以上の確率値p
kiを決定するように構成される。
【0134】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
式中Nは考慮される確率値の数で(考慮される状態変数値の数に等しい場合がある)、b
kiは、重み付け値(例えば、結合確率値に対する個々の状態変数値の影響を制御する重み付け係数)である[b
kiは、好ましくは、von 2の整数値の効力であり、2つの異なるb
ki間の比は好ましくは、2の整数値の効力である)
ことに従って、複数の確率値p
kiに基づいて結合確率値p
kを取得するように構成される。
【0135】
好ましい実施形態では、算術デコーダは、2次元ルックアップテーブルを使用して、第1の状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k1*a
k1])を第1のサブインターバル幅値(R*p
k1)にマッピングするように構成され、そのエントリは、第1の状態変数値に依存して(例えば、第1のルックアップテーブルエントリ座標を決定するために)、およびシンボルの復号前の算術復号のコーディング間隔のサイズを記述するコーディング間隔サイズ情報(例えば、R)に依存して(例えば、第2のルックアップテーブルエントリ座標を決定するために)アドレス指定され、算術デコーダは、2次元ルックアップテーブルを使用して、第2の状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k1*a
k1])を第2のサブインターバル幅値(R*p
k2)にマッピングするように構成され、そのエントリは、第2の状態変数値に依存して(例えば、第1のルックアップテーブルエントリ座標を決定するために)、およびシンボルの復号前の算術復号のコーディング間隔のサイズを記述するコーディング間隔サイズ情報(例えば、R)に依存してアドレス指定され(例えば、第2のルックアップテーブルエントリ座標を決定するために)、算術デコーダは、第1のサブインターバル幅値および第2のサブインターバル幅値を使用して(例えば、加重和または加重平均を使用して)、結合されたサブインターバル幅値を取得するように構成される。
【0136】
算術デコーダの好ましい実施形態では、2次元ルックアップテーブルは、そのエントリが第1および第2の状態変数値の値ドメインの異なる値の確率値またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k];
[この文献は図面を表示できません]
)を含む第1の1次元ベクトル(1次元ルックアップテーブルを形成する)、およびそのエントリがコーディング間隔サイズ情報の量子化レベルを含む第2の1次元ベクトル(
[この文献は図面を表示できません]
)の間の二項積として表すことができる。
【0137】
算術デコーダの好ましい実施形態では、2次元ルックアップテーブル(RangTabLPS)の要素が、ベースルックアップテーブル(Base TabLPS)に基づいて定義され、2次元ルックアップテーブルの要素の第1のグループ(またはブロック、例えば、「上半分」)は、ベースルックアップテーブルの要素と同一であるか、ベースルックアップテーブルの要素の丸められたバージョンであり、2次元ルックアップテーブルの要素の第2のグループ(またはブロック、例えば「下半分」)は、ベースルックアップテーブルの要素のスケーリングおよび丸められたバージョンである。
【0138】
算術デコーダの好ましい実施形態では、2次元ルックアップテーブルの要素の第2のグループはベースルックアップテーブルの要素の右シフトバージョンである。
【0139】
算術デコーダの好ましい実施形態では、確率指数(Qp
2(p
LPS);i)は、2次元ルックアップテーブルの要素の第1のグループの要素または2次元ルックアップテーブルの要素の第2のグループの要素のどちらを評価するかを決定し、確率指数(例えば、確率値、例えばp
LPSを定量化することによって取得される)の第1の範囲(例えば、0〜μ−1)は、要素の第1のグループの要素に関連付けられ、確率指数(例えば、確率値、例えばp
LPSを、例えば、量子化関数Qp2(.)を使用して定量化することによって取得される)の第2の範囲(例えば、μ以上)は、要素の第2のグループの要素に関連付けられている。
【0140】
算術デコーダの好ましい実施形態では、確率指数(i)と第1のサイズ値(例えば、μ、サイズ値は例えば、第1の方向のベースルックアップテーブルの拡張を説明する)および間隔サイズ指数(例えば量子化演算Qr2(.)、例えばjを使用するなどして間隔サイズ情報Rに基づいて取得できる)との間の除算の除算残差(i%μ)は、2次元ルックアップテーブルの要素を取得するためにベースルックアップテーブルのどの要素を使用するかを決定する。
【0141】
好ましい実施形態では、算術デコーダは、
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j)、[i/μ])
BaseTabLPSは、次元μxλのベースルックアップテーブルであり、iは、確率情報に関連付けられたテーブルインデックスであり、jは、間隔サイズ情報に関連付けられたテーブルインデックスであり(例えば、現在のコーディング間隔サイズを記述する)、%は除算残差演算であり、/は除算演算であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、またはbは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右側にシフトするかどうか、および何ビットシフトするかを決定する、
ことに従って2次元ルックアップテーブル(RangTabLPS)の要素を取得するように構成される。
【0142】
算術デコーダの好ましい実施形態では、2次元ルックアップテーブル(RangTabLPS)の要素は、確率テーブル(probTabLPS)に基づいて定義され、確率テーブルは、複数の確率値のセット(例えば、指数iによって表される)および所与のコーディング間隔サイズの間隔サイズを記述し、複数の確率値のセットにない確率値および/または所与の(参照)コーディング間隔サイズとは異なるコーディング間隔サイズの2次元ルックアップテーブルの要素は、スケーリングを使用して確率テーブルから導出される。
【0143】
算術デコーダの好ましい実施形態では、2次元ルックアップテーブルの要素が、コーディング間隔サイズ(R)に応じて、確率テーブルの選択された要素(probTabLPS[i%μ])の(乗法の)第1のスケーリングを使用し、現在の確率値(指数iにより指定)に関連付けられた要素が確率値のセットに含まれるかどうかに応じて(例えば、現在の確率値は、確率テーブルでカバーされている確率値の範囲内にあるかどうかに応じて)、第1のスケーリングの結果の第2のスケーリングを使用して取得される。
【0144】
算術デコーダの好ましい実施形態では、確率指数(例えばi、例えば、現在の確率値を表す)、および第1のサイズ値(例えばμ、例えばサイズ値が確率テーブルの拡張について説明する)の間の除算の除算残差(i%μ)は、確率テーブルのどの要素が第1のスケーリングでスケーリングされるかを決定する、および/または確率指数(i)および第1のサイズ値間の除算の整数除算結果([i/μ])は、第2のスケーリングで使用されるスケーリング係数(2
−[i/μ])を決定する、および/またはコーディング間隔サイズは、第1のスケーリングの乗法スケーリング係数(Qr2(R))を決定する。
【0145】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
iは、確率情報に関連付けられたテーブルインデックスであり、jは間隔サイズ情報に関連付けられたテーブルインデックスであり、%は除算残差演算であり、/は除算演算であり、probTabLPS []は確率テーブルであり、μは確率テーブルの要素の数であり(Iの値の範囲は通常μよりも大きくなる)、Rは間隔サイズ(または現在のコーディング間隔サイズ)であり、Qr2(R)はRに依存するスケーリング係数であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、bは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右シフトをするかどうか、および何ビットシフトするかを決定する、
ことに従って2次元ルックアップテーブルの要素
[この文献は図面を表示できません]
を取得するように構成される。
【0146】
算術デコーダの好ましい実施形態では、現在の確率値(指数iにより指定)に関連付けられた要素が確率値に含まれるかどうかに応じて(例えば、現在の確率値は、確率テーブルでカバーされている確率値の範囲内にあるかどうかに応じて)、確率テーブルの選択された要素(probTabLPS[i%μ])の(乗法の)第1のスケーリングを使用し、また、コーディング間隔サイズ(R)に応じて、第1のスケーリングの結果の第2のスケーリングを使用して、2次元ルックアップテーブルの要素を取得するように構成される。
【0147】
算術デコーダの好ましい実施形態では、確率指数(例えばi、例えば、現在の確率値を表す)、および第1のサイズ値(例えばμ、例えばサイズ値が確率テーブルの拡張について説明する)の間の除算の除算残差([i%μ])は、確率テーブルのどの要素が第1のスケーリングでスケーリングされるかを決定する、および/または確率指数(i)と第1のサイズ値との間の除算の整数除算結果([i/μ])は、第1のスケーリングで使用されるスケーリング係数(2
−[i/μ])を決定する、および/またはコーディング間隔サイズ(R)は、第2のスケーリングの乗法スケーリング係数(Qr
2(R))を決定する。
【0148】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
iは、確率情報に関連付けられたテーブルインデックスであり、jは間隔サイズ情報に関連付けられたテーブルインデックスであり、%は除算残差演算であり、/は除算演算であり(例えば、整数の結果を提供する)、probTabLPS []は確率テーブルであり、μは確率テーブルの要素の数であり(Iの値の範囲は通常μよりも大きくなる)、Rは間隔サイズであり、Qr
2(R)はRに依存するスケーリング係数であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、bは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右シフトをするかどうか、および何ビットシフトするかを決定する、
ことに従って、2次元ルックアップテーブルの要素
[この文献は図面を表示できません]
を取得するように構成される。
【0149】
好ましい実施形態では、算術デコーダは、第1および第2の状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])からそれぞれ第1および第2のサブインターバル幅値(R*p
k)を計算するよう構成され、第1および第2の状態変数値の値ドメインの異なる値間隔の確率値、またはそのスケーリングおよび/または丸められたバージョン([s
k2*a
k2])を含む1次元ルックアップテーブル(LUT4)エントリを第1および第2の確率値へ使用して、第1および第2の状態変数値(s
k)、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])にマッピングすること、およびシンボルを量子化レベルに符号化する前に、算術符号化のコーディング間隔のサイズを記述するコーディング間隔サイズ情報(例えば、R)を量子化すること、第1および第2の確率値と、一方で量子化レベルの間の積を決定する(事前計算された積のルックアップまたは乗算によって)こと、および第1のサブインターバル幅値と第2のサブインターバル幅値を使用して(例えば、加重和または加重平均を使用して)結合されたサブインターバル幅値を取得することによる。
好ましい実施形態では、算術デコーダは、コーディング間隔サイズ情報に論理右シフトを適用することによってコーディング間隔サイズ情報の量子化を実行するように構成される。
【0150】
好ましい実施形態では、算術デコーダは、コーディング間隔サイズ情報
[この文献は図面を表示できません]
の量子化を
[この文献は図面を表示できません]
により実行するように構成され、式中、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
および
[この文献は図面を表示できません]
はパラメータである。
【0151】
算術デコーダの好ましい実施形態では、1次元ルックアップテーブルのエントリは、第1および第2の状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])の増加で単調に減少する。
【0152】
算術デコーダの好ましい実施形態では、第1および第2の状態変数値の値ドメインの異なる値間隔、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])は、等しいサイズになる。
【0153】
算術デコーダの好ましい実施形態では、1次元ルックアップテーブルのエントリは、第1および第2の状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])の増加で減少率を伴って単調に減少する。
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを復号するための算術デコーダを作成し、算術デコーダは、間隔サイズ情報(p
k、R*p
k)を、1つまたは複数のシンボル値(例えば、バイナリ値)の算術復号が複数の状態変数値(s
ik)(例えば、インデックスkによって表示される所与のコンテキストモードに関連付けられるもの)に基づいて復号されるように導出するように構成され、これは、異なる適合時定数で以前に復号された複数のシンボル値(例えば、バイナリ値0と1のシーケンス)(例えば、復号される1つまたは複数のシンボルが特定のシンボル値を含む確率の推定)の統計を表し、算術デコーダは、結合状態変数値(s
k)(例えば、状態変数値の加重和であり得る)、複数の個々の状態変数値(s
ik)の基礎となるものを導出するように構成され、算術デコーダは、結合状態変数値(s
k)、またはそのスケーリングおよび/または丸められたバージョン([s
k2*a
k2])を、ルックアップテーブルを使用してマッピングして、復号される1つまたは複数のシンボルの算術復号の間隔サイズを説明する間隔サイズ情報(例えば、p
kまたはR*p
k)を取得するように構成される。
好ましい実施形態では、算術デコーダは、結合状態変数値を取得するために、状態変数値の加重和を決定するように構成される。
【0154】
好ましい実施形態では、算術デコーダは、状態変数値(
[この文献は図面を表示できません]
)および関連する重み付け値(
[この文献は図面を表示できません]
結合状態変数値(s
k)を得るため)の積を丸めることによって得られる丸められた値(
[この文献は図面を表示できません]
)の合計を決定するように構成される。
【0155】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
s
k2は状態変数値であり、Nは考慮される状態変数値の数であり、[.]はフロア演算子であり、d
kiは状態変数値に関連付けられた重み付け値(例えば、結合状態変数値への個々の状態変数値の影響を制御する重み付け係数)(d
kiは好ましくはフォン2の整数値の効力であり、2つの異なるd
ki間の比率は好ましくは2の整数値の効力である)[2つの異なるd
ki間の比率は、好ましくは8以上)であることに従って、結合状態変数値s
kを決定するように構成される。
【0156】
好ましい実施形態では、算術デコーダは、復号されるシンボルが第1の値(例えば「1」)をとる場合に状態変数値を第1の方向に変更する(例えばより正になる)ように構成され、また復号されるシンボルが第1の値とは異なる第2の値(例えば「0」)をとる場合(例えば、状態変数値が正と負の値をとることができるように)に状態変数値を第2の方向に(例えば、より負になるもの)変更するように構成され、算術デコーダは、結合状態変数値の絶対値(s
ki>0の場合はs
k、それ以外の場合は−s
k)に応じて(例えば、結合状態変数値の絶対値のスケーリングおよび丸められたバージョンに応じて)評価されるルックアップテーブルのエントリを決定するように構成される。
【0157】
好ましい実施形態では、算術デコーダは、結合状態変数値が第1の符号(例えば、正の符号)をとる場合に、確率値(p
k)をルックアップテーブルによって提供される値(例えば、
[この文献は図面を表示できません]
)に設定するように構成され、算術デコーダは、状態変数値が第2の符号(例えば、負の符号)をとる場合、確率値(p
k)を、所定の値(例えば、1)からルックアップテーブルによって提供される値(例えば、
[この文献は図面を表示できません]
)を減算することによって得られる値に設定するように構成される。
【0158】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
LUT2は確率値を含むルックアップテーブルであり、[.]はフロア演算子であり、s
kは結合変数値であり、a
kは、結合状態変数値に関連付けられた重み付け値である(例えば、i番目の状態変数値の数の範囲をルックアップテーブルのいくつかのエントリに適合させる重み付け値)ことにより、結合確率値p
kを決定するように構成される。
【0159】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
LUT2は確率値を含むルックアップテーブルであり、[.]はフロア演算子であり、s
kは結合変数値であり、a
kは、結合状態変数値に関連付けられた重み付け値である(例えば、i番目の状態変数値の数の範囲をルックアップテーブルのいくつかのエントリに適合させる重み付け値)ことにより、結合確率値p
kを決定するように構成される。
【0160】
好ましい実施形態では、算術デコーダは、結合状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])を、2次元ルックアップテーブルを使用してサブインターバル幅値(R*p
k)にマッピングするように構成され、そのエントリは、結合状態変数値に依存して(例えば、第1のルックアップテーブルエントリの座標を決定するために)、およびシンボルの復号前の算術復号のコーディング間隔のサイズを記述するコーディング間隔サイズ情報(例えば、R)に依存して(例えば、第2のルックアップテーブルエントリの座標を決定するために)アドレス指定される。
【0161】
算術デコーダの好ましい実施形態では、2次元ルックアップテーブルは、そのエントリが結合状態変数値の値ドメインの異なる値間隔の確率値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k];
[この文献は図面を表示できません]
)を含む第1の1次元ベクトル(
[この文献は図面を表示できません]
、1次元ルックアップテーブルを形成する)、およびそのエントリがコーディング間隔サイズ情報の量子化レベルを含む第2の1次元ベクトル(
[この文献は図面を表示できません]
)の間の2項積として、表すことができる。
【0162】
算術デコーダの好ましい実施形態では、2次元ルックアップテーブル(RangTabLPS)の要素が、ベースルックアップテーブル(Base TabLPS)に基づいて定義され、2次元ルックアップテーブルの要素の第1のグループ(またはブロック、例えば、「上半分」)は、ベースルックアップテーブルの要素と同一であるか、ベースルックアップテーブルの要素の丸められたバージョンであり、2次元ルックアップテーブルの要素の第2のグループ(またはブロック、例えば「下半分」)は、ベースルックアップテーブルの要素のスケーリングおよび丸められたバージョンである。
【0163】
算術デコーダの好ましい実施形態では、2次元ルックアップテーブルの要素の第2のグループはベースルックアップテーブルの要素の右シフトバージョンである。
【0164】
算術デコーダの好ましい実施形態では、確率指数(Qp
2(p
LPS);i)は、2次元ルックアップテーブルの要素の第1のグループの要素または2次元ルックアップテーブルの要素の第2のグループの要素のどちらを評価するかを決定し、確率指数(例えば、確率値、例えばp
LPSを定量化することによって取得される)の第1の範囲(例えば、0〜μ−1)は、要素の第1のグループの要素に関連付けられ、確率指数(例えば、確率値、例えばp
LPSを、例えば、量子化関数Qp2(.)を使用して定量化することによって取得される)の第2の範囲(例えば、μ以上)は、要素の第2のグループの要素に関連付けられている。
【0165】
算術デコーダの好ましい実施形態では、確率指数(i)と第1のサイズ値(例えば、μ、サイズ値は例えば、第1の方向のベースルックアップテーブルの拡張を説明する)および間隔サイズ指数(例えば量子化演算Qr2(.)、例えばjを使用するなどして間隔サイズ情報Rに基づいて取得できる)との間の除算の除算残差(i%μ)は、2次元ルックアップテーブルの要素を取得するためにベースルックアップテーブルのどの要素を使用するかを決定する。
【0166】
好ましい実施形態では、算術デコーダは、
RangeTabLPS[i][j]=Scal(BaseTabLPS[i%μ][j)、[i/μ])
BaseTabLPSは、次元μxλのベースルックアップテーブルであり、iは、確率情報に関連付けられたテーブルインデックスであり、jは、間隔サイズ情報に関連付けられたテーブルインデックスであり(例えば、現在のコーディング間隔サイズを記述する)、%は除算残差演算であり、/は除算演算であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、またはbは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右側にシフトするかどうか、および何ビットシフトするかを決定する、
ことに従って、2次元ルックアップテーブル(RangTabLPS)の要素を取得するように構成される。
【0167】
算術デコーダの好ましい実施形態では、2次元ルックアップテーブル(RangTabLPS)の要素は、確率テーブル(probTabLPS)に基づいて定義され、確率テーブルは、複数の確率値のセット(例えば、指数iによって表される)および所与のコーディング間隔サイズの間隔サイズを記述し、複数の確率値のセットにない確率値および/または所与の(参照)コーディング間隔サイズとは異なるコーディング間隔サイズの2次元ルックアップテーブルの要素は、スケーリングを使用して確率テーブルから導出される。
【0168】
算術デコーダの好ましい実施形態では、2次元ルックアップテーブルの要素が、コーディング間隔サイズ(R)に応じて、確率テーブルの選択された要素(probTabLPS[i%μ])の(乗法の)第1のスケーリングを使用し、現在の確率値(指数iにより指定)に関連付けられた要素が確率値のセットに含まれるかどうかに応じて(例えば、現在の確率値は、確率テーブルでカバーされている確率値の範囲内にあるかどうかに応じて)、第1のスケーリングの結果の第2のスケーリングを使用して取得される。
【0169】
算術デコーダの好ましい実施形態では、確率指数(例えばi、例えば、現在の確率値を表す)、および第1のサイズ値(例えばμ、例えばサイズ値が確率テーブルの拡張について説明する)の間の除算の除算残差(i%μ)は、確率テーブルのどの要素が第1のスケーリングでスケーリングされるかを決定する、および/または確率指数(i)および第1のサイズ値間の除算の整数除算結果([i/μ])は、第2のスケーリングで使用されるスケーリング係数(2
−[i/μ])を決定する、および/またはコーディング間隔サイズは、第1のスケーリングの乗法スケーリング係数(Qr2(R))を決定する。
【0170】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
iは、確率情報に関連付けられたテーブルインデックスであり、jは間隔サイズ情報に関連付けられたテーブルインデックスであり、%は除算残差演算であり、/は除算演算であり、probTabLPS []は確率テーブルであり、μは確率テーブルの要素の数であり(Iの値の範囲は通常μよりも大きくなる)、Rは間隔サイズ(または現在のコーディング間隔サイズ)であり、Qr2(R)はRに依存するスケーリング係数であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、bは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右シフトをするかどうか、および何ビットシフトするかを決定する、
ことに従って
2次元ルックアップテーブルの要素
[この文献は図面を表示できません]
を取得するように構成される。
【0171】
算術デコーダの好ましい実施形態では、現在の確率値(指数iにより指定)に関連付けられた要素が確率値に含まれるかどうかに応じて(例えば、現在の確率値は、確率テーブルでカバーされている確率値の範囲内にあるかどうかに応じて)、確率テーブルの選択された要素(probTabLPS[i%μ])の(乗法の)第1のスケーリングを使用し、また、コーディング間隔サイズ(R)に応じて、第1のスケーリングの結果の第2のスケーリングを使用して、2次元ルックアップテーブルの要素を取得するように構成される。
【0172】
算術デコーダの好ましい実施形態では、確率指数(例えばi、例えば、現在の確率値を表す)、および第1のサイズ値(例えばμ、例えばサイズ値が確率テーブルの拡張について説明する)の間の除算の除算残差(i%μ)は、確率テーブルのどの要素が第1のスケーリングでスケーリングされるかを決定する、および/または確率指数(i)および第1のサイズ値間の除算の整数除算結果([i/μ])は、第1のスケーリングで使用されるスケーリング係数(2
−[i/μ])を決定する、および/またはコーディング間隔サイズ(R)は、第2のスケーリングの乗法スケーリング係数(Qr
2(R))を決定する。
【0173】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
iは、確率情報に関連付けられたテーブルインデックスであり、jは間隔サイズ情報に関連付けられたテーブルインデックスであり、%は除算残差演算であり、/は除算演算であり(例えば、整数の結果を提供する)、probTabLPS []は確率テーブルであり、μは確率テーブルの要素の数であり(Iの値の範囲は通常μよりも大きくなる)、Rは間隔サイズであり、Qr
2(R)はRに依存するスケーリング係数であり、Scal(x,y)はスケーリング関数であり(例えば、Scal(x,y)=[x*a
−by]として定義され、[.]はフロア演算であり、aは、好ましくは2以上の定数であり、bは、好ましくは1以上の定数であり、スケーリング関数は、好ましくは、右シフトビットシフト演算を使用して実装され、yは、xの右シフトをするかどうか、および何ビットシフトするかを決定する、
ことに従って、2次元ルックアップテーブルの要素
[この文献は図面を表示できません]
を取得するように構成される。
【0174】
好ましい実施形態では、算術デコーダは、結合状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])からサブインターバル幅値(R*p
k)を計算するよう構成され、このことは、結合状態変数値の値ドメインの異なる値間隔の確率値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k];
[この文献は図面を表示できません]
)を含む1次元ルックアップテーブル(LUT4)エントリを使用して、結合状態変数値(s
k)、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k];
[この文献は図面を表示できません]
)を結合確率値にマッピングすること、およびシンボルを量子化レベルに符号化する前に、算術符号化のコーディング間隔のサイズを記述するコーディング間隔サイズ情報(例えば、R)を量子化すること、結合確率値と量子化レベルの間の積を決定することによる。
【0175】
好ましい実施形態では、算術デコーダは、コーディング間隔サイズ情報に論理右シフトを適用することによってコーディング間隔サイズ情報の量子化を実行するように構成される。
【0176】
好ましい実施形態では、算術デコーダは、コーディング間隔サイズ情報
[この文献は図面を表示できません]
の量子化を
[この文献は図面を表示できません]
により実行するように構成され、式中、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
および
[この文献は図面を表示できません]
はパラメータである。
【0177】
算術デコーダの好ましい実施形態では、1次元ルックアップテーブルのエントリは、結合状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])の増加で単調に減少する。
【0178】
算術デコーダの好ましい実施形態では、結合状態変数値の値ドメインの異なる値間隔、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])は、等しいサイズである。
算術デコーダの好ましい実施形態では、1次元ルックアップテーブルのエントリは、結合状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])の増加で減少率を伴って単調に減少する。
【0179】
算術デコーダの好ましい実施形態では、ルックアップテーブルは、指数関数的減衰(例えば、0.5からの低下)を(例えば、+/−10%または+/−20%の許容範囲内で)定義する。
【0180】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つ以上の重み付け値であり、Aは
[この文献は図面を表示できません]
であるか、ゼロ設定または大きさの縮小によって、引数の1つ以上の極値に対してのみ、それから逸脱して、更新された
[この文献は図面を表示できません]
を所定の値の範囲のままにすることを回避する(例えば、
[この文献は図面を表示できません]
は
[この文献は図面を表示できません]
より大きな値ドメインを持つ;つまり、
[この文献は図面を表示できません]
は
[この文献は図面を表示できません]
に準量子化される;
[この文献は図面を表示できません]
の極値の場合、
[この文献は図面を表示できません]
は上記の式に従って未修正のAによって変更され、その値ドメインを離れることができる:これを回避するために、これらの極値に対応するエントリが削減またはゼロにされる場合があることを考慮されたい)、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
、および
[この文献は図面を表示できません]
は所定のパラメータである(例は上記に記載されている)
ことに従って複数の可変状態値
[この文献は図面を表示できません]
を更新するように構成される。。
【0181】
好ましい実施形態では、算術デコーダは、テーブルルックアップまたは計算によって
[この文献は図面を表示できません]
を導出するように構成される。
【0182】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを符号化するための算術デコーダを作成するものであり、算術デコーダは、1つまたは複数の状態変数値(s
1k、s
2k)を決定するように構成され、これは、以前に復号された複数のシンボル値(例えば、バイナリ値0および1のシーケンス)の統計(例えば、復号される1つまたは複数のシンボルが特定のシンボル値を含む確率の推定値)(例えば、複数の状態変数値が決定される場合、異なる適合時定数の統計)を表し、また、算術デコーダは、1つまたは複数の状態変数値(s
ik)(例えば、インデックスkにより示される、所与のコンテキストモードに関連付けられている)に基づいて復号される1つまたは複数のシンボル値の算術復号の間隔サイズ情報(p
k、R*p
k)を導出するように構成され、これは複数の以前に符号化されたシンボル値(例えば、バイナリ値0および1のシーケンス)の統計(例えば、複数の状態変数値が決定される場合、異なる適合時定数の統計)を表し、算術デコーダは、復号されるシンボルに依存して、ルックアップテーブル(A)を使用して(例えば、復号されるシンボルを復号した後)、第1の状態変数値(s
k1)を更新するように構成される。
【0183】
好ましい実施形態では、算術デコーダは、復号されたるシンボルに依存し、ルックアップテーブル(A)を使用して(例えば、復号されるシンボルを復号した後)、第2の状態変数値(s
k2)を更新するように構成される。
【0184】
好ましい実施形態では、算術デコーダは、異なる適合時定数を使用して、第1の状態変数値および第2の状態変数値を更新するように構成される。
【0185】
好ましい実施形態では、算術デコーダは、復号されるシンボルが第1の値をとるか、第1の値とは異なる第2の値をとるかに応じて、ルックアップテーブルを使用して決定された値によって以前の状態変数値を選択的に増減するように構成される。
【0186】
好ましい実施形態では、算術デコーダは、以前の状態変数値を、復号されるシンボルが第1の値をとる場合に、以前の状態変数値が正である場合と比較して、以前の状態変数値が負である場合に、比較的大きい値だけ増加させるように構成され、算術デコーダは、以前の状態変数値を、復号されるシンボルが、第1の値とは異なる第2の値をとる場合に、以前の状態変数値が負である場合と比較して、以前の状態変数値が正である場合に、比較的大きい値だけ減少させるように構成される(それは、例えば、ルックアップテーブルを適切に選択することで到達する)。
【0187】
好ましい実施形態では、算術デコーダは、復号されるシンボルが第1の値をとる場合、所定(例えば、固定の)のオフセット値(z)と以前に計算された第1の状態変数値(
[この文献は図面を表示できません]
)、またはそのスケーリングおよび/または丸められたバージョン(
[この文献は図面を表示できません]
)の合計に依存して、第1の状態変数値を更新するときに評価されるルックアップテーブルのエントリのインデックスを決定するように構成され、算術デコーダは、復号されるシンボルが第2の値をとる場合、所定(例えば、固定の)のオフセット値(z)と以前に計算された第1の状態変数値の逆(−1を乗算する)バージョン(
[この文献は図面を表示できません]
)、またはそのスケーリングおよび/または丸められたバージョン(
[この文献は図面を表示できません]
)(例えば、以前に計算された第1の状態変数値の逆バージョン)の合計に依存して、第1の状態変数値を更新するときに評価されるルックアップテーブルのエントリのインデックスを決定するように構成される。
【0188】
好ましい実施形態では、算術デコーダは、復号されるシンボルが第1の値をとる場合、所定(例えば、固定の)のオフセット値(z)と以前に計算された第2の状態変数値(
[この文献は図面を表示できません]
)、またはそのスケーリングおよび/または丸められたバージョン(
[この文献は図面を表示できません]
)の合計に依存して、第2の状態変数値を更新するときに評価されるルックアップテーブルのエントリのインデックスを決定するように構成され、算術デコーダは、復号されるシンボルが第2の値をとる場合、所定(例えば、固定の)のオフセット値(z)と以前に計算された第2の状態変数値の逆(−1を乗算する)バージョン(
[この文献は図面を表示できません]
)、またはそのスケーリングおよび/または丸められたバージョン(
[この文献は図面を表示できません]
)(例えば、以前に計算された第2の状態変数値の逆バージョン)の合計に依存して、第2の状態変数値を更新するときに評価されるルックアップテーブルのエントリのインデックスを決定するように構成される。
【0189】
好ましい実施形態では、算術デコーダは、第1の状態変数値の更新時に評価されるルックアップテーブルのエントリのインデックスを決定するときに、第1のスケーリング値(m
k1)を適用して、以前に計算された第1の状態変数値(s
k1)をスケーリングするように構成され、算術デコーダは、第2の状態変数値の更新時に評価されるルックアップテーブルのエントリのインデックスを決定するときに、第2のスケーリング値(m
k2)を適用して、以前に計算された第2の状態変数値(s
k2)をスケーリングするように構成され、第1のスケーリング値が第2のスケーリング値とは異なる(また、第1および第2のスケーリング値は好ましくは2の整数効力であり、第1のスケーリング値と第2のスケーリング値との間の比は、2の場合、好ましくは整数効力であり、第1のスケーリング値および第2のスケーリング値は、好ましくは少なくとも8倍異なる)。
【0190】
好ましい実施形態では、算術デコーダは、第1の状態変数値を更新するときに第1のスケーリング値(例えば、n
k1)を使用してルックアップテーブルの評価によって返される値をスケーリングするように構成され、
算術デコーダは、第2の状態変数値を更新するときに第2のスケーリング値(例えば、n
k2)を使用してルックアップテーブルの評価によって返される値をスケーリングするように構成され、第1のスケーリング値は第2のスケーリング値とは異なる。
【0191】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
Aはルックアップテーブルであり(例えば、整数の値を含む)、zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であることに従って、1つまたは複数の更新された状態変数値
[この文献は図面を表示できません]
を決定するように構成される。
【0192】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
Aはルックアップテーブルであり(例えば、整数の値を含む)、zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であることに従って、1つまたは複数の更新された状態変数値
[この文献は図面を表示できません]
を決定するように構成される。
【0193】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
Aはルックアップテーブルであり(例えば、整数の値を含む)、zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であることに従って、1つまたは複数の更新された状態変数値
[この文献は図面を表示できません]
を決定するように構成される。
【0194】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
Aはルックアップテーブルであり(例えば、整数の値を含む)、zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であることに従って、1つまたは複数の更新された状態変数値
[この文献は図面を表示できません]
を決定するように構成される。
【0195】
算術デコーダの好ましい実施形態では、Aのエントリは、ルックアップテーブルインデックスの増加とともに単調に減少する。
【0196】
好ましい実施形態では、算術デコーダは、Aは
[この文献は図面を表示できません]
であるか、ゼロ設定または大きさの縮小によって、引数の1つ以上の極値に対してのみ、それから逸脱して、更新された
[この文献は図面を表示できません]
を所定の値の範囲のままにすることを回避する(例えば、
[この文献は図面を表示できません]
は
[この文献は図面を表示できません]
より大きな値ドメインを持つ;つまり、
[この文献は図面を表示できません]
は
[この文献は図面を表示できません]
に準量子化される;
[この文献は図面を表示できません]
の極値の場合、
[この文献は図面を表示できません]
は上記の式に従って未修正のAによって変更され、その値ドメインを離れることができる:これを回避するために、これらの極値に対応するエントリが削減またはゼロにされる場合があることを考慮されたい)、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
、および
[この文献は図面を表示できません]
は所定のパラメータである(例は上記に記載されている)。
【0197】
算術デコーダの好ましい実施形態では、ルックアップテーブルの最後のエントリ(これは、第1の状態変数値が最大許容値まで及ぶ所定の値の範囲に達したとき、または第1の状態変数値が所定のしきい値を超えたときにアドレス指定される)はゼロに等しい。
【0198】
好ましい実施形態では、算術デコーダは、更新された状態変数値にクリッピング操作を適用して、更新されクリップされた状態変数値を所定の値の範囲内に保つように構成される。
【0199】
好ましい実施形態では、算術デコーダは、更新された状態変数値に、
[この文献は図面を表示できません]
、に従ってクリッピング操作を適用するように構成され、
[この文献は図面を表示できません]
は、
[この文献は図面を表示できません]
の最大許容値であり、
[この文献は図面を表示できません]
は、
[この文献は図面を表示できません]
の最小許容値である。
【0200】
好ましい実施形態では、算術デコーダは、異なるコンテキストモデルに異なるスケーリング値を適用するように構成される(例えば、スケーリング値の少なくとも1つが2つの異なるコンテキストモデル間で異なるようにする)。
【0201】
好ましい実施形態では、算術デコーダは、上記の実施形態の1つで定義された間隔サイズ情報を取得するように構成される。
【0202】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを復号するための算術デコーダを作成するものであり、算術デコーダは、以前に復号された複数のシンボル値の統計を表す1つの状態変数値(s
k)を決定するように構成され、算術デコーダは、結合状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])から、復号されるシンボル値の算術復号のためのサブインターバル幅値(
[この文献は図面を表示できません]
)を計算するよう構成され、この計算は、そのエントリが結合状態変数値の値ドメインの異なる値間隔の確率値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k];
[この文献は図面を表示できません]
)を含む1次元ルックアップテーブル(
[この文献は図面を表示できません]
)を使用して、1つの状態変数値(s
k)、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k];
[この文献は図面を表示できません]
)を結合確率値にマッピングすること、および量子化レベル(
[この文献は図面を表示できません]
)に符号化されるシンボル値の算術復号の前に、算術符号化のコーディング間隔のサイズを記述するコーディング間隔サイズ情報(例えば、R)を量子化することにより、これを行い、算術デコーダは、さらに、確率値と、量子化レベルの間の積を決定する(事前に計算された積のルックアップまたは乗算によって)ように構成され、算術デコーダは、(実際に復号される)復号されるシンボルに依存して状態変数値の更新を実行するように構成される。
【0203】
好ましい実施形態では、算術デコーダは、1つの状態変数値(s
k)として、結合状態変数値(例えば、状態変数値の加重和であり得る)、複数の状態変数値(s
ik)(例えば、バイナリ値0および1のシーケンス)(例えば、複数の状態変数値の場合、異なる適合時定数の統計)の基礎となるものを導出するように構成され、これは、異なる適合時定数の複数の以前に復号されたシンボル値(例えば、バイナリ値0および1のシーケンス)の統計を表す。
【0204】
好ましい実施形態では、算術デコーダは、結合状態変数値を取得するために、状態変数値の加重和を決定するように構成される。
【0205】
好ましい実施形態では、算術デコーダは、状態変数値(
[この文献は図面を表示できません]
)および関連する重み付け値(
[この文献は図面を表示できません]
結合状態変数値(s
k)を得るため)の積を丸めることによって得られる丸められた値(
[この文献は図面を表示できません]
)の合計を決定するように構成される。
【0206】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
s
k2は状態変数値であり、Nは考慮される状態変数値の数であり、[.]はフロア演算子であり、d
kiは状態変数値に関連付けられた重み付け値(例えば、結合状態変数値への個々の状態変数値の影響を制御する重み付け係数)(d
kiは好ましくはフォン2の整数値の効力であり、2つの異なるd
ki間の比率は好ましくは2の整数値の効力である)[2つの異なるd
ki間の比率は、好ましくは8以上)であることに従って、結合状態変数値s
kを決定するよう構成される。
【0207】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つ以上の重み付け値であり、Aは
[この文献は図面を表示できません]
であるか、ゼロ設定または大きさの縮小によって、引数の1つ以上の極値に対してのみ、それから逸脱して、更新された
[この文献は図面を表示できません]
を所定の値の範囲のままにすることを回避する(例えば、
[この文献は図面を表示できません]
は
[この文献は図面を表示できません]
より大きな値ドメインを持つ;つまり、
[この文献は図面を表示できません]
は
[この文献は図面を表示できません]
に準量子化される;
[この文献は図面を表示できません]
の極値の場合、
[この文献は図面を表示できません]
は上記の式に従って未修正のAによって変更され、その値ドメインを離れることができる:これを回避するために、これらの極値に対応するエントリが削減またはゼロにされる場合があることを考慮されたい)、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
、および
[この文献は図面を表示できません]
は所定のパラメータである(例は上記に記載されている)
ことに従って、状態変数値の更新を行う際、複数の状態変数値
[この文献は図面を表示できません]
を更新するように構成される。
【0208】
好ましい実施形態では、算術デコーダは、テーブルルックアップまたは計算によって
[この文献は図面を表示できません]
を導出するように構成される。
【0209】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
Aはルックアップテーブルであり(例えば、整数の値を含む)、zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であることに従って、1つまたは複数の更新された状態変数値
[この文献は図面を表示できません]
を決定するように構成される。
【0210】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
Aはルックアップテーブルであり(例えば、整数の値を含む)、zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であることに従って、1つまたは複数の更新された状態変数値
[この文献は図面を表示できません]
を決定するように構成される。
【0211】
好ましい実施形態では、算術デコーダは、
[この文献は図面を表示できません]
Aはルックアップテーブルであり(例えば、整数の値を含む)、zは所定の(一定の)オフセット値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であり、
[この文献は図面を表示できません]
は1つまたは複数の重み付け値であることに従って、1つまたは複数の更新された状態変数値
[この文献は図面を表示できません]
を決定するように構成される。
【0212】
好ましい実施形態では、算術デコーダは、コーディング間隔サイズ情報に論理右シフトを適用することによってコーディング間隔サイズ情報の量子化を実行するように構成される。
【0213】
好ましい実施形態では、算術デコーダは、コーディング間隔サイズ情報
[この文献は図面を表示できません]
の量子化を
[この文献は図面を表示できません]
により実行するように構成され、式中、
[この文献は図面を表示できません]
、
[この文献は図面を表示できません]
および
[この文献は図面を表示できません]
はパラメータである。
【0214】
算術デコーダの好ましい実施形態では、1次元ルックアップテーブルのエントリは、1つの状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])の増加で単調に減少する。
【0215】
算術デコーダの好ましい実施形態では、1つの状態変数値の値ドメインの異なる値間隔、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])は、等しいサイズである。
【0216】
算術デコーダの好ましい実施形態では、1次元ルックアップテーブルのエントリは、1つの状態変数値、またはそのスケーリングおよび/または丸められたバージョン([s
k*a
k])の増加で減少率を伴って単調に減少する。
【0217】
本発明による実施形態は、ビデオエンコーダを作成するものであり、ビデオエンコーダは、複数のビデオフレームを符号化するように構成され、ビデオエンコーダは、上記の実施形態のいずれかに記載の、ビデオコンテンツを表すバイナリ値のシーケンスに基づいて符号化されたバイナリシーケンスを提供するための算術エンコーダを備える。
【0218】
本明細書で論じられる算術エンコーダは、ビデオエンコーダ内部での使用に非常に適していることに留意されたい。この場合、符号化されるシンボルおよび/または以前に符号化されたシンボルは、ビデオビットストリームのシンボルであり得る。例えば、符号化されるシンボルおよび/または以前に符号化されたシンボルは、ビデオコンテンツを表すサイド情報または制御情報のビットおよび/または符号化された変換係数のビットを表すことができる。言い換えれば、符号化されるシンボルおよび/または以前に符号化されたシンボルは、ビデオコンテンツを表すためにビットストリームに含まれる情報のいずれかを表すことができる。ただし、状態変数値は、様々な「コンテキスト」、つまり様々なタイプの情報に対して個別に決定される場合があることに留意されたい。例えば、特定のタイプの情報(例えば、特定のタイプのサイド情報)に関連付けられたビットのみが、特定の結合状態変数値を取得するために使用される特定の状態変数値、または特定の状態変数値のセットに寄与することができる。したがって、間隔サイズ情報はまた、異なるコンテキストに対して、すなわち、異なるタイプの情報(例えば、サイド情報)に関連付けられたシンボル値の符号化のために、個別に導出され得る。
【0219】
本発明による実施形態は、ビデオデコーダを作成するものであって、ビデオエンコーダは、複数のビデオフレームを復合するように構成され、ビデオデコーダは、上記の実施形態のいずれかに記載の、バイナリシーケンスの符号化表現(211)に基づいて復号されたバイナリシーケンス(例えば、復号されたシンボル値に基づく)を提供するための算術デコーダ(120;220)を備える。
ビデオデコーダは、ビデオエンコーダと同じ考慮事項に基づいている。したがって、上記の説明もまた、当てはまるものであり、符号化されたシンボルまたは符号化されるシンボルは、復号されたシンボルに対応する。
【0220】
さらに、本発明によるさらなる実施形態は、それぞれの方法およびコンピュータプログラムを作成することに留意されたい。
【0221】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを符号化するための方法を作成し、方法は、間隔サイズ情報(p
k、R*p
k)を、1つまたは複数のシンボル値(例えば、バイナリ値)の算術符号化が複数の状態変数値(s
ik)(例えば、インデックスkによって表示される所与のコンテキストモードに関連付けられるもの)に基づいて符号化されるように導出することを含み、これは、異なる適合時定数で以前に符号化された複数のシンボル値(例えば、バイナリ値0と1のシーケンス)の統計を表し、方法は、ルックアップテーブル(LUT1)を使用して、第1の状態変数値(s
k1)、またはそのスケーリングおよび/または丸められたバージョン([s
k1*a
k1])をマッピングし、ルックアップテーブル(LUT1)を使用して、第2の状態変数値(s
k2)、またはそのスケーリングおよび/または丸められたバージョン([s
k2*a
k2])をマッピングすることを含み、符号化される1つまたは複数のシンボルの算術符号化のための間隔サイズを説明する間隔サイズ情報(例えば、p
kまたはR*p
k)を取得するようにする。
【0222】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを符号化するための方法を作成し、方法は、間隔サイズ情報(p
k、R*p
k)を、1つまたは複数のシンボル値(例えば、バイナリ値)の算術符号化が複数の状態変数値(s
ik)(例えば、インデックスkによって表示される所与のコンテキストモードに関連付けられるもの)に基づいて符号化されるように導出することを含み、これは、異なる適合時定数で以前に符号化された複数のシンボル値(例えば、バイナリ値0と1のシーケンス)の統計を表し、方法は、結合状態変数値(s
k)(例えば、状態変数値の加重和であり得る)、複数の個々の状態変数値(s
ik)の基礎となるものを導出するように構成され、算術デコーダは、結合状態変数値(s
k)、またはそのスケーリングおよび/または丸められたバージョン([s
k2*a
k2])を、ルックアップテーブルを使用してマッピングして、符号化される1つまたは複数のシンボルの算術符号化の間隔サイズを説明する間隔サイズ情報(例えば、p
kまたはR*p
k)を取得することを含む。
【0223】
本発明による実施形態は、シンボル値(二進値)を有する複数のシンボルを符号化するための方法を作成し、この方法は、1つまたは複数の状態変数値(s
1k、s
2k)を決定することを含み、これは、以前に符号化された複数のシンボル値(例えば、バイナリ値0および1のシーケンス)の統計(例えば、複数の状態変数値の場合、異なる適合時定数の統計)を表し、また、方法は、1つまたは複数の状態変数値(s
ik)(例えば、インデックスkにより示される、所与のコンテキストモードに関連付けられている)に基づいて符号化される1つまたは複数のシンボル値の算術符号化の間隔サイズ情報(p
k、R*p
k)を導出することを含み、これは複数の以前に符号化されたシンボル値(例えば、バイナリ値0および1のシーケンス)の統計(例えば、複数の状態変数値の場合、異なる適合時定数の統計)を表し、方法は、符号化されるシンボルに依存して、ルックアップテーブル(A)を使用して(例えば、シンボルを符号化した後)、第1の状態変数値(s
k1)を更新することを含む。
【0224】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを復号するための方法を作成し、方法は、間隔サイズ情報(p
k、R*p
k)を、1つまたは複数のシンボル値(例えば、バイナリ値)の算術復号が複数の状態変数値(s
ik)(例えば、インデックスkによって表示される所与のコンテキストモードに関連付けられるもの)に基づいて復号されるように導出することを含み、これは、異なる適合時定数で以前に復号された複数のシンボル値(例えば、バイナリ値0と1のシーケンス)の統計(例えば、復号される1つまたは複数のシンボルが特定のシンボル値を含む確率の推定)を表し、方法は、ルックアップテーブル(LUT1)を使用して、第1の状態変数値(s
k1)、またはそのスケーリングおよび/または丸められたバージョン([s
k1*a
k1])をマッピングし、ルックアップテーブル(LUT1)を使用して、第2の状態変数値(s
k2)、またはそのスケーリングおよび/または丸められたバージョン([s
k2*a
k2])をマッピングすることを含み、復号される1つまたは複数のシンボルの算術復号のための間隔サイズを説明する間隔サイズ情報(例えば、p
kまたはR*p
k)を取得するようにする。
【0225】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを復号するための方法を作成し、方法は、間隔サイズ情報(p
k、R*p
k)を、1つまたは複数のシンボル値(例えば、バイナリ値)の算術復号が複数の状態変数値(s
ik)(例えば、インデックスkによって表示される所与のコンテキストモードに関連付けられるもの)に基づいて復号されるように導出することを含み、これは、異なる適合時定数で以前に復号された複数のシンボル値(例えば、バイナリ値0と1のシーケンス)(例えば、復号される1つまたは複数のシンボルが特定のシンボル値を含む確率の推定)の統計を表し、方法は、結合状態変数値(s
k)(例えば、状態変数値の加重和であり得る)、複数の個々の状態変数値(s
ik)の基礎となるものを導出することを含み、方法は、結合状態変数値(s
k)、またはそのスケーリングおよび/または丸められたバージョン([s
k2*a
k2])を、ルックアップテーブルを使用してマッピングして、復号される1つまたは複数のシンボルの算術復号の間隔サイズを説明する間隔サイズ情報(例えば、p
kまたはR*p
k)を取得することを含む。
【0226】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを符号化するための方法を作成するものであり、方法は、1つまたは複数の状態変数値(s
1k、s
2k)を決定することを含み、これは、以前に復号された複数のシンボル値(例えば、バイナリ値0および1のシーケンス)の統計(例えば、復号される1つまたは複数のシンボルが特定のシンボル値を含む確率の推定値)(例えば、複数の状態変数値が決定される場合、異なる適合時定数の統計)を表し、また、方法は、1つまたは複数の状態変数値(s
ik)(例えば、インデックスkにより示される、所与のコンテキストモードに関連付けられている)に基づいて復号される1つまたは複数のシンボル値の算術復号の間隔サイズ情報(p
k、R*p
k)を導出することを含み、これは複数の以前に符号化されたシンボル値(例えば、バイナリ値0および1のシーケンス)の統計(例えば、複数の状態変数値が決定される場合、異なる適合時定数の統計)を表し、算術デコーダは、復号されるシンボルに依存して、ルックアップテーブル(A)を使用して、第1の状態変数値(s
k1)を更新することを含む。
【0227】
本発明による実施形態は、上記の実施形態のうちの1つによるエンコーダおよびデコーダによって実行される方法を作成する。
【0228】
本発明による実施形態は、コンピュータプログラムがコンピュータ上で実行されるときに、上記の実施形態のうちの1つによる方法を実行するためのコンピュータプログラムを作成する。
【0229】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを符号化するための方法を作成するものであり、方法は、1つまたは複数の状態変数値(s
ik)に基づいて符号化される1つまたは複数のシンボル値の算術符号化の間隔サイズ値(R
LPS)(それは例えば、インデックスkで示される所与のコンテキストモードに関連付けられている)を導出することを含み、これは、以前に符号化された複数のシンボル値(例えば、バイナリ値0および1のシーケンス)の統計を表し(例えば、異なる適合時定数を使用)、方法は、ベースルックアップテーブル(Base TabLPS)を使用して間隔サイズ値(R
LPS)を決定することを含み(その次元は、確率指数の観点から、可能な確率指数iの数よりも小さい)、方法は、1つまたは複数の状態変数値(例えば、i=Qp(p
LPS)のように)を基にして得られる確率指数(i)が第1の範囲(例えば、μ未満)内にある場合、決定された間隔サイズ値がベースルックアップテーブルの要素と同一であるか、またはベースルックアップテーブルの要素の丸めのバージョンであり、確率指数が第2の範囲(例えば、μ以上)内にある場合は、ベースルックアップテーブルの要素のスケーリングと丸めを使用して、決定された間隔サイズ値が取得されるように、間隔サイズ値(R
LPS)を決定することを含み、方法は、間隔サイズ値(R
LPS)を使用して1つまたは複数のシンボルの算術符号化を実行することを含む。
【0230】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを符号化するための方法を作成するものであり、方法は、1つまたは複数の状態変数値(s
ik)(これはインデックスkによって示される所与のコンテキストモードに関連付けられる)に基づいて符号化される1つまたは複数のシンボル値の算術符号化の間隔サイズ値(R
LPS)を導出することを含み、これは、以前に符号化された複数のシンボル値の統計を表し(例えば、バイナリ値0と1のシーケンス)(例えば、異なる適合時定数で);算術デコーダは、1つまたは複数の状態変数値から導出された(現在の)確率値に基づいて、また(現在の)コーディング間隔サイズ(R)に基づいて、確率テーブル(Prob TabLPS)(確率指数という観点で次元が可能な確率指数iの数値より小さい)を使用して間隔サイズ値(R
LPS)を決定することを含み、確率テーブルは、複数の確率値のセット(例えば、0とμ−1の間の確率指数に対して)および(単一の)所与の(参照)コーディング間隔サイズの間隔サイズ(間隔サイズ値)を記述し、方法は、現在の確率値が複数の確率値のセットにない(例えば、μ以上の現在の確率値と関連付けられた確率指数である)場合、および/または現在のコーディング間隔サイズ(R)が、所与(参照)のコーディング間隔サイズとは異なる場合、間隔サイズ値(R
LPS)を取得するよう所与(参照)の確率テーブル(Prob_TabLPS)の要素をスケーリングすることを含み、また、方法は、間隔サイズ値(R
LPS)を使用して1つまたは複数のシンボルの算術符号化を実行することを含む。
【0231】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを復号するための方法を作成するものであり、方法は、1つまたは複数の状態変数値(s
ik)に基づいて復号される1つまたは複数のシンボル値の算術復号の間隔サイズ値(R
LPS)(それは例えば、インデックスkで示される所与のコンテキストモードに関連付けられている)を導出することを含み、これは、以前に復号された複数のシンボル値(例えば、バイナリ値0および1のシーケンス)の統計を表し(例えば、異なる適合時定数を使用)、方法は、ベースルックアップテーブル(Base TabLPS)を使用して間隔サイズ値(R
LPS)を決定することを含み(その次元は、確率指数の観点から、可能な確率指数iの数よりも小さい)、方法は、1つまたは複数の状態変数値(例えば、i=Qp(p
LPS)のように)を基にして得られる確率指数(i)が第1の範囲(例えば、μ未満)内にある場合、決定された間隔サイズ値がベースルックアップテーブルの要素と同一であるか、またはベースルックアップテーブルの要素の丸めのバージョンであり、確率指数が第2の範囲(例えば、μ以上)内にある場合は、ベースルックアップテーブルの要素のスケーリングと丸めを使用して、決定された間隔サイズ値が取得されるように、間隔サイズ値(R
LPS)を決定することを含み、方法は、間隔サイズ値(R
LPS)を使用して1つまたは複数のシンボルの算術復号を実行するように構成される。
【0232】
本発明による実施形態は、シンボル値(例えば、バイナリ値)を有する複数のシンボルを復号するための方法を作成するものであり、方法は、1つまたは複数の状態変数値(s
ik)(これはインデックスkによって示される所与のコンテキストモードに関連付けられる)に基づいて復号される1つまたは複数のシンボル値の算術復号の間隔サイズ値(R
LPS)を導出することを含み、これは、以前に復号された複数のシンボル値の統計を表し(例えば、バイナリ値0と1のシーケンス)(例えば、異なる適合時定数で);算術デコーダは、1つまたは複数の状態変数値から導出された(現在の)確率値に基づいて、また(現在の)コーディング間隔サイズ(R)に基づいて、確率テーブル(Prob TabLPS)(確率指数という観点で次元が可能な確率指数iの数値より小さい)を使用して間隔サイズ値(R
LPS)を決定することを含み、確率テーブルは、複数の確率値のセット(例えば、0とμ−1の間の確率指数に対して)および(単一の)所与の(参照)コーディング間隔サイズの間隔サイズ(間隔サイズ値)を記述し、方法は、現在の確率値が複数の確率値のセットにない(例えば、μ以上の現在の確率値と関連付けられた確率指数である)場合、および/または現在のコーディング間隔サイズ(R)が、所与(参照)のコーディング間隔サイズとは異なる場合、間隔サイズ値(R
LPS)を取得するよう所与(参照)の確率テーブル(Prob_TabLPS)の要素をスケーリングすることを含み、また、方法は、間隔サイズ値(R
LPS)を使用して1つまたは複数のシンボルの算術復号を実行することを含む。
【0233】
本発明による実施形態は、コンピュータプログラムがコンピュータ上で実行されるときに、上記の実施形態のうちの1つによる方法を実行するためのコンピュータプログラムを作成する。
【0234】
上記の方法は、上記の装置と同じ考慮事項に基づいている。しかし、この方法は、装置に関しても、本明細書に記載の特徴、機能、および詳細のいずれかによって任意選択で補足できることに留意されたい。これらの方法は、任意選択で、該特徴、機能、および詳細によって、個別および組み合わせの両方で、補足することができる。同じことがコンピュータプログラムにも当てはまる。
【0235】
続いて、本発明による実施形態を、以下の付属の図面を参照して説明する。