【文献】
Detlev Marpe, et al.,Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard,IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY,米国,IEEE,2003年 7月,vol.13, no.7,pp.620-636
(58)【調査した分野】(Int.Cl.,DB名)
シンタックス要素(327)がこのシンタックス要素のバイナリゼーションを使用して符号化された、データストリーム(401)から情報サンプルのアレイを復号化するためのデコーダであって、
前記データストリーム(401)の以前に復号化された部分に依存して、異なるコンテキストの中から1つのコンテキストを選択し、前記異なるコンテキストに関連し、かつ0と1の間の1つの最高確率シンボルと1つの最低確率シンボルの確率とを示す、確率状態を更新することにより、バイナリー・エントロピー復号化を使用して、前記データストリーム(401)から前記バイナリゼーションのいくつかのビン(326)を導出するエントロピー復号器(409)と、
前記シンタックス要素(327)のバイナリゼーションを逆二値化することで、前記シンタックス要素の整数値を得るデ・シンボライザ(314)と、
前記シンタックス要素の整数値に基づいて、量子化パラメータを使用して前記情報サンプルのアレイを再構築する再構築部(404)と、を備え、
前記エントロピー復号器(409)は、126個の確率状態を区別し、傾きaとオフセットdとを持つ前記量子化パラメータQPの線形方程式a・QP+dに従って、前記異なるコンテキストに関連した確率状態を初期化するよう構成され、前記a・QP+dは1又は0の所定のシンボルの確率を示しており、a・QP+dが63より大きいか否かの決定は0又は1が前記最高確率シンボルであるかどうかを直接的に示しており、
前記エントロピー復号器は、前記異なるコンテキストのそれぞれについて、各8ビット初期化値の第1の4ビット部分と第2の4ビット部分とから前記線形方程式の傾きaとオフセットdとを導出するよう構成されている、デコーダ。
シンタックス要素のバイナリゼーションを使用して前記シンタックス要素をデータストリームへと符号化することによって、情報サンプルのアレイを前記データストリームへと符号化するエンコーダであって、
量子化パラメータに依存して前記シンタックス要素の整数値を設定することにより、前記情報サンプルのアレイを表現する構築部と、
前記シンタックス要素の整数値を二値化して前記シンタックス要素のバイナリゼーションを得るシンボライザと、
前記データストリームの以前に符号化された部分に依存して、異なるコンテキストの中から1つのコンテキストを選択し、前記異なるコンテキストに関連し、かつ0と1の間の1つの最高確率シンボルと1つの最低確率シンボルの確率とを示す、確率状態を更新することにより、バイナリー・エントロピー符号化を使用して、前記バイナリゼーションのいくつかのビンを前記データストリームへと符号化するエントロピー符号器と、を備え、
前記エントロピー符号器は、126個の確率状態を区別し、傾きaとオフセットdとを持つ前記量子化パラメータQPの線形方程式a・QP+dに従って、前記異なるコンテキストに関連した確率状態を初期化するよう構成され、前記a・QP+dは1又は0の所定のシンボルの確率を示しており、a・QP+dが63より大きいか否かの決定は0又は1が前記最高確率シンボルであるかどうかを直接的に示しており、
前記エントロピー符号器は、前記異なるコンテキストのそれぞれについて、各8ビット初期化値の第1の4ビット部分と第2の4ビット部分とから前記線形方程式の傾きaとオフセットdとを導出するよう構成されている、エンコーダ。
シンタックス要素のバイナリゼーションを使用して前記シンタックス要素をデータストリームへと符号化することによって、情報サンプルのアレイを前記データストリームへと符号化する方法であって、
量子化パラメータに依存して前記シンタックス要素の整数値を設定することにより、前記情報サンプルのアレイを表現するステップと、
前記シンタックス要素の整数値を二値化して前記シンタックス要素のバイナリゼーションを得るステップと、
前記データストリームの以前に符号化された部分に依存して、異なるコンテキストの中から1つのコンテキストを選択し、前記異なるコンテキストに関連し、かつ0と1の間の1つの最高確率シンボルと1つの最低確率シンボルの確率とを示す、確率状態を更新することにより、バイナリー・エントロピー符号化を使用して、前記バイナリゼーションのいくつかのビンを前記データストリームへと符号化するステップと、を含み、
前記情報サンプルのアレイを表現するステップは、126個の確率状態を区別し、前記方法はさらに、傾きaとオフセットdとを持つ前記量子化パラメータQPの線形方程式a・QP+dに従って、前記異なるコンテキストに関連した確率状態を初期化し、前記a・QP+dは1又は0の所定のシンボルの確率を示しており、a・QP+dが63より大きいか否かの決定は0又は1が前記最高確率シンボルであるかどうかを直接的に示しており、前記異なるコンテキストのそれぞれについて、各8ビット初期化値の第1の4ビット部分と第2の4ビット部分とから前記線形方程式の傾きaとオフセットdとを導出すること、を含む方法。
【発明を実施するための形態】
【0011】
図を説明する中で、これらの図の幾つかに登場する構成要素は、それらの図の各々において同じ参照符号で示し、不要な反復を避けるために、機能に関する限りはそれら構成要素の繰返しの説明を省略する。しかしながら、1つの図面に関して与えられた機能及び説明は、明示の断りがない限りは他の図面にも適用されるものとする。
【0012】
以下に、まず全体的なビデオ符号化概念の実施形態を
図1〜
図17に関して説明する。
図1〜
図6は、シンタックスレベルで動作するビデオコーデックの部分に関連する。続く
図8〜
図17は、シンタックス要素ストリームからデータストリームへの変換と、その逆とに関する符号化部分の実施形態に関連する。次に、本発明の具体的な態様及び実施形態を、
図1〜
図17に関して説明される全体的な概念の可能性のある実施の形態として説明する。
【0013】
図1は本発明の諸態様が実施され得るエンコーダ10の一例を示す。
【0014】
エンコーダは、情報サンプルのアレイ20をデータストリームへと符号化する。情報サンプルのアレイは、例えば明るさ値、色彩値、輝度値及びクロマ値などに対応する情報サンプルを表してもよい。しかし、情報サンプルはまた、サンプルアレイ20が例えば光センサーの時間などによって生成された深度マップである場合には、深度値であってもよい。
【0015】
エンコーダ10はブロック・ベースの符号器である。即ち、エンコーダ10は、サンプルアレイ20をブロック40の単位でデータストリーム30へと符号化する。ブロック40の単位での符号化は、必ずしもエンコーダ10がこれらブロック40を完全に互いに独立して符号化することを意味するものではない。むしろ、エンコーダ10は、残りのブロックを外挿又はイントラ予測するために、以前に符号化されたブロックの復元を使用してもよいし、符号化パラメータを設定するために、即ちそれぞれのブロックに対応する各サンプルアレイ領域が符号化される方法を設定するために、ブロックの粒度を使用してもよい。
【0016】
また、エンコーダ10は変換符号器である。即ち、エンコーダ10は、各ブロック40内の情報サンプルを空間ドメインからスペクトルドメインに移すための変換を使用することで、ブロック40を符号化する。FFTのDCTなどのような二次元変換が使用されてもよい。好ましくは、ブロック40は正方形又は長方形である。
【0017】
図1に示すサンプルアレイ20からブロック40へのサブ分割は、単に説明の目的を担うだけのものである。
図1は、相互に重ならないように隣接する正方形又は長方形のブロック40の規則的な二次元配置へとサブ分割された状態としての、サンプルアレイ20を示す。ブロック40のサイズは予め決定されてもよい。つまり、エンコーダ10は、ブロック40のブロックサイズについての情報をデータストリーム30内で復号側に伝送しなくてもよい。例えば、デコーダはその予め決定されたブロックサイズを予想してもよい。
【0018】
しかし、複数の代替例が可能である。例えば、ブロックは相互にオーバーラップしてもよい。しかし、その重なりの程度は、各ブロックがいずれの隣接ブロックにも重ならない部分を有するように、又は、ブロックの各サンプルが所定の方向に沿って現在のブロックに並置して配される隣接ブロックの中で最大でも1ブロックにしか重ならないように、制限される。後者は、左右の隣接ブロックが現在のブロックを完全に覆うように重なることができるが、隣接ブロック自体は互いに重ならないことを意味する。同じことが縦方向及び対角方向での隣接についても当てはまる。
【0019】
更なる代替例として、サンプルアレイ20のブロック40へのサブ分割をエンコーダ10によりサンプルアレイ20のコンテンツに適用し、サブ分割で使用されたサブ分割情報をビットストリーム30を介してデコーダ側に転送してもよい。
【0020】
図2a〜2cは、サンプルアレイ20のブロック40へのサブ分割についての異なる例を示す。
図2aは、異なるサイズのブロック40へのサンプルアレイ20の四分木ベースのサブ分割を示し、ここでは、代表的なブロックを40a、40b、40c及び40dによって示し、この順序でサイズが増大している。
図2aのサブ分割によると、サンプルアレイ20は、最初に、ツリーブロック40dの規則的な二次元配置に分割される。これらツリーブロック40dは、それに関連付けられて、あるツリーブロック40dが、四分木構造に従ってさらにサブ分割されるか否かに関する個別のサブ分割情報を有する。ブロック40dの左側のツリーブロックは、例示的に、四分木構造に従って、更に小さいブロックへとサブ分割されている。エンコーダ10は、
図2aにおいて実線及び破線で示したブロックの各々について、1つの二次元変換を実行してもよい。換言すると、エンコーダ10は、ブロックのサブ分割の単位でアレイ20を変換することができる。
【0021】
四分木ベースのサブ分割の代わりに、より一般的な複分木ベースのサブ分割を用いてもよく、階層レベルあたりの子ノードの数は、異なる階層レベル間で異なっていてもよい。
【0022】
図2bはサブ分割についての他の例を示す。
図2bによると、サンプルアレイ20は、最初に、互いに重ならずに隣接する規則的な二次元配置のマクロブロック40bに分割される。ここで、各マイクロブロック40bにはサブ分割情報が関連付けられており、このサブ分割情報によって、マイクロブロックは、サブ分割されないか、又はサブ分割される場合には異なるマイクロブロックについては異なるサブ分割粒度が達成されるように、規則的な二次元の方法で同じサイズのサブブロックにサブ分割される。その結果は、サンプルアレイ20の異なるサイズのブロック40へのサブ分割となり、異なるサイズの代表例が40a、40b及び40a’で示されている。
図2aに示されているように、エンコーダ10は、
図2bに実線及び破線で示すブロックの各々に二次元変換を実行する。
図2cについては後述する。
【0023】
図3は、エンコーダ10によって生成されたデータストリーム30を復号化してサンプルアレイ20の復元バージョン60を復元することができるデコーダ50を示す。デコーダ50は、データストリーム30からブロック40の各々についての変換係数ブロックを抽出し、変換係数ブロックの各々に逆変換を実行することによって、復元バージョン60を復元する。
【0024】
エンコーダ10及びデコーダ50は、変換係数ブロックについての情報を挿入し、またこの情報をデータストリームから抽出するために、エントロピー符号化/復号化をそれぞれ実行するように構成されてもよい。これに関する詳細は後述する。なお、データストリーム30は、必ずしもサンプルアレイ20の全てのブロック40に対して、変換係数ブロックの情報を含んでいなくてもよい。寧ろ、ブロック40の部分集合が、他の手法でビットストリーム30に符号化されてもよい。例えば、エンコーダ10は、ブロック40うちのあるブロックについての変換係数ブロックを挿入することをやめるように判断し、代わりに、代替の符号化パラメータをビットストリーム30内に挿入して、デコーダ50がそれを予測できるようにするか、又は復元されたバージョン60内のそれぞれブロックを満たせるようにしてもよい。例えば、エンコーダ10は、復号側でデコーダによるテクスチャ合成を行ってサンプルアレイ20が満たされるように、サンプルアレイ20内にブロックを配置するためのテクスチャ解析を行い、これをビットストリーム内で適宜示すようにしてもよい。
【0025】
以降の図面において説明するように、変換係数ブロックは、必ずしも、サンプルアレイ20のそれぞれのブロック40の元の情報サンプルのスペクトルドメイン表現を表す必要はない。寧ろ、そのような変換係数ブロックは、それぞれのブロック40の予測残余のスペクトルドメイン表現を表してもよい。
図4はそのようなエンコーダの実施形態を示す。
図4のエンコーダは、変換ステージ100、エントロピー符号器102、逆変換ステージ104、予測器106、減算器108及び加算器110を備える。減算器108と変換ステージ100とエントロピー符号器102とは、この順序で
図4のエンコーダの入力112と出力114との間に直列に接続される。逆変換ステージ104と加算器110と予測器106とは、この順序で変換ステージ100の出力と減算器108の反転入力との間に接続され、予測器106の出力はまた、加算器110の他の入力に接続されている。
【0026】
図4のコーダは、予測変換ベースのブロックコーダである。即ち、入力112に入るサンプルアレイ20のブロックが、同じサンプルアレイ20の以前に符号化および再構築された部分から、又は、以前に符号化および再構築された他のサンプルアレイであって、上演時間において現在のサンプルアレイ20に先行又は後続してもよいサンプルアレイから、予測される。予測は、予測器106によって実行される。減算器108は、そのような元のブロックから予測値を減算し、変換ステージ100は、予測残余について二次元変換を実行する。変換ステージ100内における二次元変換そのもの又は後続の処理が、変換係数ブロック内の変換係数の量子化を導いてもよい。量子化された変換係数ブロックは、例えば、エントロピー符号器102内でエントロピー符号化によってロスレスで符号化され、結果として得られるデータストリームは、出力114で出力される。逆変換ステージ104は量子化された残余を再構築し、続く加算器110は、再構築された残余と対応する予測とを結合することで再構築された情報サンプルを取得し、この情報サンプルに基づいて、予測器106が、上述した現在符号化されている予測ブロックを予測することができる。予測器106は、ブロックを予測するために、イントラ予測モード及びインター予測モードのような異なる予測モードを使用してもよく、予測パラメータは、データストリーム内への挿入のためにエントロピー符号器102に送られる。各インター予測された予測ブロックについて、それぞれの動きデータがエントロピー符号器114を介してビットストリーム内へと挿入されることで、復号化側が予測を再現できるようになる。ピクチャの予測ブロックのための動きデータは、動きベクトル差を表すシンタックス要素を含むシンタックス部分を含んでもよく、その動きベクトル差は、現在の予測ブロックについての動きベクトルを、例えば近隣の既に符号化された予測ブロックの動きベクトルから所定の方法で導出された動きベクトル予測値との比較において差分的に符号化するものであってもよい。
【0027】
即ち、
図4の実施形態によれば、変換係数ブロックは、サンプルアレイの実際の情報サンプルではなく、サンプルアレイの残余のスペクトル表示を表す。即ち、
図4の実施形態によれば、シンタックス要素の列は、データストリーム114内へとエントロピー符号化されるために、エントロピー符号器102に入力されてもよい。シンタックス要素の列は、変換ブロックについて、インター予測ブロックのための動きベクトル差のシンタックス要素と、有意変換係数レベルの位置を示す有意性マップと、有意変換係数レベルそのものを定義するシンタックス要素とを含んでもよい。
【0028】
なお、
図4の実施形態には幾つかの代替例が存在し、そのうちの幾つかは明細書の導入部で記載されたものであり、その記載は、ここで
図4の説明に組み込まれる。
【0029】
図5は、
図4のエンコーダによって生成されたデータストリームを復号化できるデコーダを示す。
図5のデコーダは、エントロピー復号器150、逆変換ステージ152、加算器154及び予測器156を備える。エントロピー復号器150と逆変換ステージ152と加算器154とは、この順で
図5の復号器の入力158と出力160との間に直列に接続される。エントロピー復号器150の他の出力が予測器156に接続され、次に予測器156は、加算器154の出力と他の入力との間に接続される。エントロピー復号器150は、入力158で
図5のデコーダに入るデータストリームから変換係数ブロックを抽出するが、この場合、残余信号を取得するために、ステージ152において変換係数ブロックに逆変換が適用される。残余信号は、加算器154において予測器156からの予測と結合されることで、出力160におけるサンプルアレイの再構成されたバージョンの再構成されたブロックが得られる。再構成されたバージョンに基づいて予測器156が予測を生成し、それにより、エンコーダ側の予測器106によって実行された予測を再構成する。エンコーダ側で使用されたのと同じ予測を取得するために、予測器156は予測パラメータを用いるが、この予測パラメータは、エントロピー復号器150が入力158におけるデータストリームから取得したものである。
【0030】
なお、上記の実施形態において、残余の予測および変換が実行される空間的粒度は相互に等しくなくてもよい。これは
図2Cに示される。同図は、予測粒度の予測ブロックに関するサブ分割を実線で、残余粒度を破線で示している。図から分かるように、サブ分割は、相互に独立したエンコーダによって選択されてもよい。より厳密には、データストリームのシンタックスは、予測のサブ分割から独立した残余のサブ分割の定義を可能とする。代替的に、残余のサブ分割が予測のサブ分割の拡張であり、各残余ブロックが予測ブロックと等しいか、又はその適切なサブセットとなってもよい。これは、例えば
図2a及び
図2bに示す。ここでも、予測粒度は実線で示され、残余粒度は破線で示されている。つまり、
図2a〜
図2cでは、参照符号が付された全てのブロックは、1つの二次元変換が実行される残余ブロックとなる一方で、破線ブロック40aを包含する大きい実線ブロックが、例えば、予測パラメータ設定が個々に実行される予測ブロックとなる。
【0031】
上述の実施形態は、(残余又は元の)サンプルのブロックがエンコーダ側で変換係数ブロックへと変換され、その変換係数ブロックがデコーダ側でサンプルの再構成されたブロックへと逆変換される、という点で共通する。この点については
図6に示す。
図6はサンプル200のブロックを示す。
図6の場合、このブロック200は、例示的に、二次元でサイズが4・4のサンプル202である。サンプル202は、横方向x及び縦方向yに沿って、規則的に配置されている。上述の二次元変換Tによって、ブロック200は、スペクトルドメイン、即ち変換係数206のブロック204へと変換され、ここで、変換ブロック204はブロック200と同じサイズである。即ち、変換ブロック204は、横方向および縦方向の両方において、ブロック200が有するサンプルの数と同数の変換係数206を有する。しかし、変換Tはスペクトル変換であるので、変換ブロック204内の変換係数206の位置は、ブロック200のコンテンツの空間位置ではなく、スペクトル成分に対応する。特に、変換ブロック204の横軸は、それに沿って横方向のスペクトル周波数が単調増加する軸に対応し、縦軸は、それに沿って縦方向の空間周波数が単調増加する軸に対応し、ここで、横方向および縦方向の両方において最も高い周波数に対応する変換係数206が最下段右側角に位置するように、DC成分変換係数はブロック204の角、ここでは例示的に最上段左角、に位置する。空間方向を無視すれば、所定の変換係数206が属する空間周波数は、概して最上段左角から最下段右側角へと増加する。逆変換T
-1によって、変換ブロック204は、ブロック200の複製208を再取得するように、スペクトルドメインから空間ドメインへと再伝送される。変換中に量子化/損失がもたらされない場合には、再構築は完全なものとなる。
【0032】
既に上述したように、ブロック200のブロックサイズが大きくなると、結果として得られるスペクトル表示204のスペクトル解像度は増加することが、
図6から分かる。他方、量子化ノイズは、ブロック208全体にわたって拡がる傾向にあり、このため、ブロック200内の急激かつ非常に局所的なオブジェクトは、量子化ノイズに起因して、元のブロック200と比較して、再変換されたブロックに偏差をもたらす傾向がある。しかし、より大きなブロックを用いることの主な優位点は、小さなブロックに比べて大きなブロック内では、有意の、即ち非ゼロの(量子化された)変換係数、即ちレベルの数を一方とし、非有意変換係数の数を他方とする比が低減されることができ、その結果、より良い符号化効率が可能となることである。換言すると、往々にして、有意変換係数レベル、即ち、ゼロに量子化されていない変換係数レベルは、変換ブロック204にわたって疎らに分散される。そのため、以降にさらに詳細に記載する実施形態によると、有意変換係数レベルの位置は、有意性マップによって、データストリーム内に信号化される。これとは別に、有意変換係数の値、即ち変換係数が量子化される場合には変換係数レベルが、データストリーム内で送信される。
【0033】
従って、上述した全てのエンコーダ及びデコーダは、シンタックス要素の所定のシンタックスを扱うように構成されている。つまり、変換係数レベル、変換ブロックの有意性マップに関するシンタックス要素、インター予測ブロックに関する動きデータのシンタックス要素などのような上述したシンタックス要素は、所定の方法でデータストリーム内に連続的に配置されると推定されている。そのような所定の方法は、例えばH264標準または他のビデオコーデックにおいて行われたような疑似コードの形態で表現されてもよい。
【0034】
更に換言すれば、上述の記載は、ここでは例示的にビデオデータであるメディアデータから、所定のシンタックス要素タイプを規定する予め定義されたシンタックス構造に従うシンタックス要素列への変換と、その意味論と、それらの間の順序とを、主に扱うものである。
図4と
図5のエントロピーエンコーダ及びエントロピーデコーダは、次に記載するように動作し、構成されてもよい。それらエンコーダ及びデコーダは、シンタックス要素列とデータストリーム、即ちシンボル又はビットのストリームとの間の変換を実行する役割を担う。
【0035】
本発明の実施形態に係るエントロピーエンコーダを
図7に示す。このエンコーダは、シンタックス要素のストリーム301を2つ以上の部分的ビットストリーム312の集合へとロスレスに変換する。
【0036】
本発明の好適な一実施形態においては、各シンタックス要素301は、1つ以上のカテゴリー、即ちシンタックス要素タイプからなる1つの集合のカテゴリーと関連付けられている。一例として、カテゴリーはシンタックス要素のタイプを特定することができる。ハイブリッド・ビデオ符号化のコンテキストにおいては、マクロブロック・符号化モード、ブロック・符号化モード、参照ピクチャーインデックス、動きベクトル差、サブ分割フラグ、符号化されたブロックフラグ、量子化パラメータ、変換係数レベルなどに対し、別個のカテゴリーが関連付けられてもよい。オーディオ、スピーチ、テキスト、文書、又は汎用データ符号化などの他のアプリケーション分野において、シンタックス要素のさまざまな分類が可能である。
【0037】
一般的に、各シンタックス要素は有限又は可算無限の集合の値を取ることができ、ここで、可能性のあるシンタックス要素値の集合は、異なるシンタックス要素カテゴリーごとに異なることができる。例えば、バイナリーのシンタックス要素も整数値のシンタックス要素も存在する。
【0038】
符号化および復号化のアルゴリズムの複雑さを低減するとともに、様々なシンタックス要素とシンタックス要素カテゴリーのための一般的な符号化および復号化の設計を可能にするため、シンタックス要素301はバイナリー決定(binary decisions)の順序付けられた集合へと変換され、その後、これらのバイナリー決定は単純なバイナリー・符号化アルゴリズムによって処理される。そのため、バイナライザ302は各シンタックス要素301の値をビン303の列(又はストリング又はワード)へ全単射的にマップする。ビン303の列は順序付けられたバイナリー決定の1つの集合を表す。各ビン303又はバイナリー決定は、2つの値からなる1セットのうちの1つの値、例えば値0と1のうちの一方をとることができる。バイナリゼーションスキームは、異なるシンタックス要素カテゴリーについては異なっていてもよい。特定のシンタックス要素カテゴリーについてのバイナリゼーションスキームは、その特定のカテゴリーのための可能なシンタックス要素値の集合及び/又はシンタックス要素の他の特性に依存することができる。
【0039】
表1は、可算無限集合のための3つの例示的なバイナリゼーションスキームを示す。これらの可算無限集合のためのバイナリゼーションスキームは、シンタックス要素値の有限集合にも適用することができる。特に、シンタックス要素値の大きな有限集合の場合は、(使用されないビン列から生じる)非効率性を無視することができるが、このようなバイナリゼーションスキームの普遍性は、複雑性とメモリー要件の面で利点を提供する。シンタックス要素値の小さな有限集合については、可能なシンボル値の数に対してバイナリゼーションスキームを適応することが(符号化効率の点から)好ましいことが多い。
【0040】
表2は、8つの値から成る有限集合のための3つの例示的なバイナリゼーションスキームを示す。有限集合のためのバイナリゼーションスキームは、ビン列の有限集合が冗長度のない符号を表す(かつ潜在的にビン列を並び換える)ように、ビン列の幾つかを変更することによって、可算無限集合のための普遍的バイナリゼーションスキームから導出することができる。例えば表2の切り詰めユーナリー・バイナリゼーションスキームは、普遍的ユーナリー・バイナリゼーションのシンタックス要素7のためのビン列を変更することによって作られた(表1参照)。表2の次数0の、切り詰められかつ並べ換えられた指数ゴロム・バイナリゼーションは、普遍的指数ゴロム次数0のシンタックス要素7のためのビン列を変更することによって(表1参照)、及びビン列を並び換えることによって作られた(シンボル7のための切り詰められたビン列はシンボル1に割り当てられた)。シンタックス要素の有限集合については、表2の最後のコラムに例示されるように、非系統的/非普遍的なバイナリゼーションスキームを使用することも可能である。
【0043】
バイナライザ302によって作成されたビン列の各ビン303は、パラメータ割当部304に順に送られる。パラメータ割当部は各ビン303に1つ以上のパラメータからなる1つの集合を割り当て、パラメータの関連付けられた集合を有するビン305を出力する。パラメータの集合は、エンコーダとデコーダにおいて全く同じ方法で決定される。パラメータの集合は、以下のパラメータのうちの1つ以上から構成されてもよい。
【0044】
特に、パラメータ割当部304は、現在のビン303に対してコンテキストモデルを割り当てるよう構成されてもよい。例えば、パラメータ割当部304は、現在のビン303についての有効なコンテキストインデックスのうちの1つを選択してもよい。現在のビン303についての有効なコンテキストの集合は、ビンのタイプに依存してもよく、そのビンのタイプは、シンタックス要素301のタイプ/カテゴリーと、現在のビン303がその一部であるバイナリゼーションと、そのバイナリゼーション内における現在のビン303の位置と、により定義されてもよい。有効なコンテキストの集合の中からのコンテキストの選択は、以前のビンとそのビンに関連するシンタックス要素とに依存してもよい。これらコンテキストの各々は、それに関連付けされた確率モデルを有している。即ち、現在のビンに関する2つの可能なビン値のうちの1つについての確率の推定の尺度を有している。確率モデルは、特に、現在のビンに関する劣勢確率又は優勢確率を持つビン値についての確率推定の尺度であってもよく、さらに、確率モデルは、2つの可能なビン値のうちのどちらが現在のビン303に関して劣勢確率又は優勢確率を持つビン値を表すかの推定を指定する識別子によって定義されてもよい。現在のビンについて1つのコンテキストだけが有効である場合には、コンテキストの選択は行わなくてもよい。後段にて更に詳細に説明するように、パラメータ割当部304は、異なるコンテキストに関連付けられた確率モデルをそれぞれのコンテキストに属するそれぞれのビンの実際のビン統計へと適応させるために、確率モデルの適応を実行してもよい。
【0045】
また、後段にて更に詳細に説明するように、パラメータ割当部304は、高効率(HE)モードまたは低複雑性(LC)モードのいずれが活性化されているかに依存して、異なるように動作してもよい。両方のモードにおいて、確率モデルは現在のビン303を、ビン符号器310のうちのいずれかに対し、後述するように関連付ける。この場合、パラメータ割当部304の動作モードは、LCモードにおいて複雑性が低くなる傾向があるが、符号化効率は高効率モードにおいて高くなる。それは、個々のビン303を個々の符号器310へと関連付けるパラメータ割当部304がビン統計に対してより正確に適応され、結果としてLCモードよりもエントロピーを最適化しているからである。
【0046】
パラメータ割当部304の出力であるパラメータの関連付けられた集合を有する各ビン305は、ビンバッファ選択部306に送られる。ビンバッファ選択部306は、入力されたビン値とこれに関連付けられたパラメータ305に基づいて、入力されたビン305の値を潜在的に変更し、出力ビン307(潜在的に変更済みの値を有する)を2つ以上のビンバッファ308のうちの1つに送る。出力ビン307が送られるビンバッファ308は、入力ビン305の値及び/又は関連付けられたパラメータ305の値に基づいて決定される。
【0047】
本発明の好適な一実施形態において、ビンバッファ選択部306はビンの値を変更しない。即ち、出力ビン307は入力ビン305と常に同一の値を有する。本発明の更なる好適な実施形態においては、ビンバッファ選択部306は、入力ビン値305と、現在のビンに関する2つの可能なビン値のうちの1つについての確率推定のための関連付けられた尺度と、に基づいて、出力ビン値307を決定する。本発明の好適な一実施形態においては、出力ビン値307は、現在のビンに関する2つの可能なビン値のうちの1つについての確率の尺度が特定のしきい値未満(又はしきい値以下)の場合には、入力ビン値305と同等に設定され、他方、現在のビンに関する2つの可能なビン値のうちの1つについての確率の尺度が特定のしきい値以上の(又はしきい値より大きい)場合には、出力ビン値307は変更される(即ち入力ビン値の逆に設定される)。本発明の更なる好適な実施形態においては、出力ビン値307は、現在のビンに関する2つの可能なビン値のうちの1つについての確率の尺度が特定のしきい値より大きい(又はしきい値以上の)場合には、入力ビン値305と等しい値を設定され、他方、現在のビンに関する2つの可能なビン値のうちの1つについての確率の尺度が特定のしきい値以下(又はしきい値未満)の場合には、出力ビン値307は変更される(即ち入力ビン値の逆に設定される)。本発明の好適な一実施形態において、しきい値は、両方の可能なビン値の推定される確率について、値0.5に一致する。
【0048】
本発明の更なる好適な実施形態においては、ビンバッファ選択部306は、入力ビン値305と、2つの可能なビン値のうちのどちらが現在のビンに関して劣勢確率又は優勢確率を持つビン値を表すかの推定を指定する関連付けられた識別子と、に基づいて、出力ビン値307を決定する。本発明の好適な一実施形態においては、識別子が2つの可能なビン値のうちの第1のビン値が現在のビンに関して劣勢確率(又は優勢確率)を持つビン値を表すことを指定する場合、出力ビン値307は入力ビン値305と等しい値に設定され、他方、識別子が2つの可能なビン値のうちの第2のビン値が現在のビンに関して劣勢確率(又は優勢確率)を持つビン値を表すことを指定する場合、出力ビン値307は変更される(即ち、入力ビン値の逆に設定される)。
【0049】
本発明の好適な一実施形態においては、ビンバッファ選択部306は、現在のビンに関する2つの可能なビン値のうちの1つについて確率推定のために関連付けられた尺度に基づいて、出力ビン307が送られるビンバッファ308を決定する。本発明の好適な一実施形態においては、2つの可能なビン値のうちの1つについての確率推定の尺度としての可能な値の集合は有限であり、ビンバッファ選択部306は、2つの可能なビン値のうちの1つに関する確率推定のための可能な各値に対し、正に1つのビンバッファ308を関連付けるテーブルを含み、このテーブルでは、2つの可能なビン値の1つについての確率推定の尺度の異なる値が、同じビンバッファ308に対して関連付けられることができる。本発明の更なる好ましい実施形態においては、2つの可能なビン値のうちの1つについての確率推定の尺度として可能な値の範囲は、幾つかの区間に区分され、ビンバッファ選択部306は、2つの可能なビン値のうちの1つについての確率推定の現在の尺度のための区間インデックスを決定し、更に、ビンバッファ選択部306は、正に1つのビンバッファ308をこの区間インデックスのための可能な各値に関連付けるテーブルを含み、ここでは、区間インデックスのための異なる値を同じビンバッファ308に対して関連付けることができる。本発明の好ましい一実施形態においては、2つの可能なビン値のうちの一方についての確率推定の逆の尺度(逆の尺度とは確率推定P及び1−Pを表す尺度である)を有する入力ビン305が、同じビンバッファ308に供給される。本発明の更なる好ましい実施形態においては、現在のビンに関する2つの可能なビン値のうちの一方についての確率推定の尺度を特定のビンバッファに関連付けることは、例えば作成された部分的ビットストリームが同様のビットレートを持つことを確実にするために、経時的に適応される。以下においては、区間インデックスはpipeインデックスとも呼ばれ、そのpipeインデックスは、精製インデックス(refinement index)と優勢確率を持つビン値を示すフラグと共に、実際の確率モデル、即ち確率推定を指示する。
【0050】
本発明の好ましい一実施形態においては、ビンバッファ選択部306は、現在のビンに関して劣勢確率又は優勢確率を持つビン値の確率推定のために関連付けられた尺度に基づいて、出力ビン307を送るべきビンバッファ308を決定する。本発明の好ましい一実施形態においては、劣勢確率又は優勢確率を持つビン値の確率推定のための尺度として可能な値の集合は有限であり、ビンバッファ選択部306は、正に1つのビンバッファ308を劣勢確率又は優勢確率を持つビン値のための確率推定の可能な各値に関連付けるテーブルを含み、このテーブルでは、劣勢確率又は優勢確率を持つビン値についての確率推定の尺度のための異なる値を同じビンバッファ308に対して関連付けることができる。本発明の更なる好適な実施形態においては、劣勢確率又は優勢確率を持つビン値についての確率推定の尺度として可能な値の範囲は幾つかの区間に区分され、ビンバッファ選択部306は、劣勢確率又は優勢確率を持つビン値についての確率推定のための現在の尺度に関する区間インデックスを決定し、さらに、ビンバッファ選択部306は、1つのビンバッファ308をこの区間インデックスのための可能な各値に関連付けるテーブルを含み、このテーブルでは、区間インデックスのための異なる値を同じビンバッファ308に対して関連付けることができる。本発明の更なる実施形態においては、現在のビンに関して劣勢確率又は優勢確率を持つビン値についての確率推定の尺度を特定のビンバッファに関連付けることは、例えば作成された部分的ビットストリームが同様のビットレートを持つことを確実にするために、経時的に適応される。
【0051】
2つ以上のビンバッファ308の各々は1つのビン符号器310に接続され、各ビン符号器は1つのビンバッファ308だけに連結されている。各ビン符号器310は、関連付けられたビンバッファ308からビンを読み出し、ビン列309をビット列を表す符号語311に変換する。ビンバッファ308は先入れ先出しバッファを表す。即ち、(順番において)後でビンバッファ308に送られるビンは、(順番において)先にビンバッファ308に送られたビンよりも前に符号化されることはない。特定のビン符号器310の出力である符号語311は、特定の部分的ビットストリーム312に書き込まれる。全体の符号化アルゴリズムは、シンタックス要素301を2つ以上の部分的なビットストリーム312へと変換し、この場合、部分的ビットストリームの数はビンバッファ及びビン符号器の数と等しい。本発明の好ましい実施形態においては、ビン符号器310は、可変数のビン309を可変数のビットからなる符号語311へと変換する。上記および下記に概説される本発明の実施形態の1つの利点は、ビンの符号化は(例えば、確率尺度が異なる各グループについて)並列的に実行することができる点にあり、これにより、幾つかの構成例における処理時間が短縮される。
【0052】
本発明の実施形態の他の利点は、ビン符号器310によって行われるビン符号化がパラメータ305の様々な集合のために特別に設計できる点にある。特に、ビン符号化と符号化は、推定された確率の異なるグループ毎に(符号化効率および/又は複雑性に関して)最適化することができる。一方で、この利点は符号化/復号化の複雑性の低減を可能にする。他方では、符号化効率の向上を可能にする。本発明の好適な一実施形態においては、ビン符号器310は、現在のビンに関する2つの可能なビン値5のうちの1つについての確率推定の尺度の異なるグループ毎に、異なる符号化アルゴリズム(即ち、ビン列の符号語へのマッピング)を実施する。本発明の更なる好適な実施形態においては、ビン符号器310は、現在のビンに関して劣勢確率又は優勢確率を持つビン値についての確率推定の尺度の異なるグループ毎に、異なる符号化アルゴリズムを実施する。
【0053】
本発明の好ましい一実施形態において、複数のビン符号器310−又は1つ以上のビン符号器−は、入力ビン列309を符号語311へと直接的にマップするエントロピー符号器を表している。このようなマッピングは効率的に実施することができ、複雑な算術符号化エンジンを必要としない。(デコーダで行われているような)ビン列への符号語の逆マッピングは、入力列の完全な復号化を保証するために一意的である必要があるが、ビン列309の符号語311へのマッピングは、必ずしも一意的である必要はない。即ち、1つの特定のビン列が2つ以上の符号語の列へとマップされることも可能である。本発明の好ましい一実施形態においては、入力ビン列309の符号語311へのマッピングは全単射である。本発明の更なる好ましい実施形態において、複数のビン符号器310−又は1つ以上のビン符号器−は、可変長の入力ビン列309を可変長の符号語311に直接的にマップするエントロピー符号器を表している。本発明の好ましい一実施形態において、出力された符号語は、一般的なハフマン符号(general Huffman codes)又は基準ハフマン符号(canonical Huffman codes)などの冗長度のない符号を表している。
【0054】
冗長度のない符号にビン列を全単射的にマッピングするための2つの例を表3に示す。本発明の更なる好適な実施形態において、出力符号語は、エラー検出とエラー回復のために適した冗長度のある符号を表している。本発明の更なる好適な実施形態において、出力符号語は、シンタックス要素を暗号化するために適した暗号化コードを表す。
【0056】
本発明の更なる好適な実施形態において、複数のビン符号器310−又は1つ以上のビン符号器−は、可変長の入力ビン列309を固定長の符号語311に直接的にマップするエントロピー符号器を表している。本発明の更なる好適な実施形態において、複数のビン符号器310(又は1つ以上のビン符号器)は、固定長の入力ビン列309を可変長の符号語311に直接的にマップするエントロピー符号器を表している。
【0057】
本発明の一実施形態に係るデコーダを
図8に示す。このデコーダは、基本的には上述のエンコーダの逆の操作を実行し、これによってシンタックス要素327の(以前に符号化済みの)列が、2つ以上の部分的ビットストリーム324の集合から復号化される。デコーダは2つの異なる処理フローを含む。即ち、エンコーダのデータフローを複製するデータ要求のためのフローと、エンコーダデータフローの逆を表わすデータフローとを含む。
図8において、破線の矢印はデータ要求フローを表し、他方、実線の矢印はデータフローを表す。デコーダの構成ブロックは、基本的にエンコーダの構成ブロックを複製しているが、逆の操作を実行する。
【0058】
シンタックス要素の復号化は、バイナライザ314へ送られる、新たな復号化済みシンタックス要素に対する要求313によってトリガーされる。本発明の好ましい一実施形態において、新たな復号化済みシンタックス要素に対する各要求313は、1つ以上のカテゴリーからなる集合の1つのカテゴリーに関連付けられている。このシンタックス要素に対する要求に関連付けられているカテゴリーは、対応するシンタックス要素に符号化の過程で関連付けられていたカテゴリーと同一である。
【0059】
バイナライザ314は、シンタックス要素に対する要求313をパラメータ割当部316へ送られるビンに対する1つ以上の要求へとマップする。バイナライザ314によりパラメータ割当部316へ送られる、ビンに対する要求への最終応答として、バイナライザ314は、ビンバッファ選択部318から復号化済みのビン326を受信する。バイナライザ314は、復号化済みのビン326の受信された列と、要求されたシンタックス要素のための特定のバイナリゼーションスキームのビン列とを比較して、もし受信された復号化済みのビン326の列がシンタックス要素のバイナリゼーションと合致した場合には、バイナライザは、そのビンバッファを空にして、さらに、新たな復号化済みシンボルに対する要求への最終応答として、その復号化済みのシンタックス要素を出力する。もし既に受信された復号化済みのビンの列が、要求されたシンタックス要素のためのバイナリゼーションスキームのビン列のいずれとも合致しない場合には、バイナライザは、復号化済みのビンの列が、要求されたシンタックス要素のためのバイナリゼーションスキームのビン列の1つに合致するまで、ビンに対する他の要求をパラメータ割当部へと送信する。シンタックス要素に対する各々の要求ごとに、デコーダは、対応するシンタックス要素を符号化するために使用されたものと同じバイナリゼーションスキームを使用する。バイナリゼーションスキームは、異なるシンタックス要素カテゴリーごとに異なり得る。特定のシンタックス要素カテゴリーのためのバイナリゼーションスキームは、可能なシンタックス要素値の集合及び/又は特定のカテゴリーについてのシンタックス要素の他の特性に依存し得る。
【0060】
パラメータ割当部316は、ビンに対する各要求に対して1つ以上のパラメータの集合を割り当て、さらにそのビンに対する要求とそれに関連付けられたパラメータの集合とを、ビンバッファ選択部に送信する。要求されたビンに対してパラメータ割当部により割り当てられたパラメータの集合は、符号化の過程において対応するビンへ割当てられたものと同一である。このパラメータの集合は、
図7のエンコーダの説明の中で上述したパラメータのうちの1つ以上から構成されてもよい。
【0061】
本発明の好適な一実施形態においては、パラメータ割当部316は、ビンに対する各要求と、割当部304が実行したのと同様のパラメータ、即ち、コンテキスト及びその関連する尺度であって現在要求されているビンに関する2つの可能なビン値のうちの1つについての確率推定の尺度、例えば現在要求されているビンに関する劣勢確率又は優勢確率を持つビン値についての確率推定の尺度や、2つの可能なビン値のうちどちらが現在要求されているビンに関する劣勢確率又は優勢確率を持つビン値を表すかの推定を指定する識別子などと、を関連付ける。
【0062】
パラメータ割当部316は、1つ以上の既に復号化済みのシンボルの集合に基づいて、上述した確率の尺度(現在要求されているビンに関する2つの可能なビン値のうちの1つについての確率推定の尺度と、現在要求されているビンに関する劣勢確率又は優勢確率を持つビン値についての確率推定の尺度と、2つの可能なビン値のうちどちらが現在要求されているビンに関する劣勢確率又は優勢確率を持つビン値を表すかの推定を指定する識別子)のうちの1つ以上を決定してもよい。ビンに対する特定の要求のための確率尺度の決定は、対応するビンのためのエンコーダにおける処理を複製するものである。確率尺度を決定するために使用される復号化済みのシンボルは、同じシンボルカテゴリーの既に復号化済みの1つ以上のシンボル、(シンタックス要素に対する現在の要求に関連付けられたデータ集合に対して)空間的及び/又は時間的に隣接した位置にある(例えばサンプルのブロックやグループなどの)データ集合に対応する、同じシンボルカテゴリーの1つ以上の既に復号化済みのシンボル、又は、(シンタックス要素に対する現在の要求に関連付けられたデータ集合に対して)空間的及び/又は時間的に同一及び/又は隣接した位置にあるデータ集合に対応する、異なるシンボルカテゴリーの1つ以上の既に復号化済みのシンボルを含むことができる。
【0063】
パラメータ割当部316の出力である、関連付けられたパラメータの集合を有するビンに対する各要求317は、ビンバッファ選択部318内へ送られる。関連付けられたパラメータ317の集合に基づいて、ビンバッファ選択部318は、2つ以上のビンバッファ320のうちの1つに向かってビンに対する要求319を送信し、選択されたビンバッファ320から復号化済みのビン325を受信する。復号化済みの入力ビン325は、潜在的に変更され、復号化済みの出力ビン326−潜在的に変更済みの値を有する−は、関連付けられたパラメータの集合を有するビンに対する要求317への最終応答として、バイナライザ314に送信される。
【0064】
ビンに対する要求が送信されるべきビンバッファ320が選択される方法は、エンコーダ側においてビンバッファ選択部の出力ビンが送信されるべきビンバッファが選択された方法と同様である。
【0065】
本発明の好ましい一実施形態において、ビンバッファ選択部318は、ビンに対する要求319が送信されるべきビンバッファ320を、現在要求されているビンに関する2つの可能なビン値のうちの1つについての確率推定の関連付けられた尺度に基づいて決定する。本発明の好ましい一実施形態において、2つの可能なビン値のうちの1つについての確率推定の尺度に関する可能な値の集合は有限であり、ビンバッファ選択部318は、正に1つのビンバッファ320を、2つの可能なビン値のうちの1つについての確率推定の各可能な値と関連付ける、テーブルを含み、ここで、2つの可能なビン値のうちの1つについての確率推定の尺度に関する異なる値を、同一のビンバッファ320と関連付けることができる。本発明の更なる好ましい実施形態において、2つの可能なビン値のうちの1つについての確率推定の尺度に関する可能な値の範囲は、複数の区間に区分され、ビンバッファ選択部318は、2つの可能なビン値のうちの1つについての確率推定の現在の尺度に係る区間インデックスを決定し、さらに、ビンバッファ選択部318は、正に1つのビンバッファ320を、区間インデックスに関する各可能な値と関連付けるテーブルを含み、ここで、区間インデックスに関する異なる値を、同じビンバッファ320に関連付けることができる。本発明の好適な一実施形態においては、2つの可能なビン値のうちの1つについての確率推定に関し、反対の尺度を有するビンに対する要求317(反対の尺度とは、確率推定Pと1−Pとを表す尺度同士である)は、同じビンバッファ320へ転送されてもよい。本発明の更なる好適な実施形態においては、現在のビン要求に関する2つの可能なビン値のうちの1つについての確率推定の尺度と特定のビンバッファとの関連付けが、経時的に適応されてもよい。
【0066】
本発明の更なる好適な実施形態においては、ビンバッファ選択部318は、ビンに対する要求319が送信されるべきビンバッファ320を、現在要求されているビンに関する劣勢確率又は優勢確率を持つビン値についての確率推定の関連付けられた尺度に基づいて決定してもよい。本発明の好適な一実施形態においては、劣勢確率又は優勢確率を持つビン値についての確率推定の尺度に関する可能な値の集合は有限であり、ビンバッファ選択部318は、正に1つのビンバッファ320を劣勢確率又は優勢確率を持つビン値についての確率推定の各可能な値と関連付ける、テーブルを含み、ここで、劣勢確率又は優勢確率を持つビン値についての確率推定の尺度に関する異なる値を同じビンバッファ320と関連付けることができる。本発明の更なる好適な実施形態においては、劣勢確率又は優勢確率を持つビン値についての確率推定の尺度に関する可能な値の範囲が複数の区間へと区分され、ビンバッファ選択部318は、劣勢確率又は優勢確率を持つビン値についての確率推定に関する現在の尺度に係る区間インデックスを決定し、更に、ビンバッファ選択部318は、正に1つのビンバッファ320を区間インデックスに関する各可能な値と関連付ける、テーブルを含み、ここで、区間インデックスに関する異なる値を、同じビンバッファ320と関連付けることができる。本発明の更なる好適な実施形態においては、現在要求されているビンに関して劣勢確率又は優勢確率を持つビン値についての確率推定の尺度と特定のビンバッファとの関連付けが、経時的に適応される。
【0067】
ビンバッファ選択部318は、選択されたビンバッファ320から復号化済みのビン325を受信した後で、入力ビン325を潜在的に変更し、出力ビン326−潜在的に変更済みの値を有する−をバイナライザ314へと送信する。ビンバッファ選択部318の入力/出力ビンマッピングは、エンコーダ側におけるビンバッファ選択部の入力/出力ビンマッピングの逆である。
【0068】
本発明の好ましい一実施形態においては、ビンバッファ選択部318は、ビンの値を変更しないように、即ち、出力ビン326が入力ビン325と同じ値を常に有するように構成される。本発明の好ましい更なる実施形態においては、ビンバッファ選択部318は、入力ビン値325と、ビンに対する要求317と関連付けられた現在要求されているビンに関する2つの可能なビン値のうちの1つについての確率推定の尺度とに基づいて、出力ビン値326を決定する。本発明の好ましい一実施形態においては、現在のビン要求に関する2つの可能なビン値のうちの1つについての確率の尺度が特定のしきい値未満(又はしきい値以下)である場合には、出力ビン値326は入力ビン値325と等しく設定されるが、他方、現在のビン要求に関する2つの可能なビン値のうちの1つについての確率の尺度が特定のしきい値以上(又はしきい値より大きい)である場合には、出力ビン値326は変更される(即ち、入力ビン値の逆に設定される)。本発明の好ましい更なる実施形態において、出力ビン値326は、現在のビン要求に関する2つの可能なビン値のうちの1つについての確率の尺度が特定のしきい値より大きい(又はしきい値以上の)場合には、入力ビン値325と等しく設定されるが、他方、現在のビン要求に関する2つの可能なビン値のうちの1つについての確率の尺度が特定のしきい値以下(又はしきい値未満)である場合には、出力ビン値326は変更される(即ち、入力ビン値の逆に設定される)。本発明の好ましい一実施形態においては、しきい値は、両方の可能なビン値についての推定された確率に関し、0.5の値に一致している。
【0069】
本発明の更なる好ましい実施形態において、ビンバッファ選択部318は、入力ビン値325と、ビンに対する要求317と関連付けられており、2つの可能なビン値のうちのどちらが現在のビン要求に関して劣勢確率又は優勢確率を持つビン値を表すかの推定を指定する識別子と、に基づいて、出力ビン値326を決定する。本発明の好ましい一実施形態においては、識別子が、2つの可能なビン値のうちの第1のビン値が現在のビン要求について劣勢確率(又は優勢確率)を持つビン値を表していると指定する場合には、出力ビン値326は入力ビン値325と等しく設定され、他方、識別子が2つの可能なビン値のうちの第2のビン値が現在のビン要求について劣勢確率(又は優勢確率)を持つビン値を表していると指定する場合には、出力ビン値326は変更される(即ち、入力ビン値の逆に設定される)。
【0070】
上述したように、ビンバッファ選択部は、2つ以上のビンバッファ320のうちの1つへ、ビンに対する要求319を送信する。ビンバッファ320は、接続されたビン復号器322から復号化済みのビンの列321を受け取る、先入れ先出しバッファを表す。ビンバッファ選択部318からビンバッファ320へ送られる、ビンに対する要求319への応答として、ビンバッファ320はビンバッファ320に最初に送られたそのコンテンツのビンを取り除き、それをビンバッファ選択部318に送信する。先にビンバッファ320に送信されるビンは先に取り除かれ、ビンバッファ選択部318へと送信される。
【0071】
2つ以上のビンバッファ320の各々は、正に1つのビン復号器322に接続されており、各ビン復号器は1つだけのビンバッファ320に接続されている。各ビン復号器322は、分離された部分的ビットストリーム324からビット列を表す符号語323を読み出す。ビン復号器は、符号語323を接続されたビンバッファ320に送信されるビンの列321に変換する。全体的な復号化アルゴリズムは、2つ以上の部分的なビットストリーム324を複数の復号化済みシンタックス要素へ変換し、ここで、部分的ビットストリームの数はビンバッファとビン復号器の数と等しく、シンタックス要素の復号化は新しいシンタックス要素に対する要求によってトリガーされる。本発明の好適な一実施形態においては、ビン復号器322は、可変数のビットから成る符号語323を可変数のビンの列321へ変換する。本発明の実施形態の1つの利点は、2つ以上の部分的ビットストリームからのビンの復号化が(例えば確率尺度の異なるグループについて)並列的に実行されることができ、これによって複数の構成にかかる処理時間を短縮できるという点にある。
【0072】
本発明の実施形態の他の利点は、ビン復号器322によって行われるビン復号化が、パラメータ317の異なる集合に対して特別に設計することができる点にある。特に、ビンの符号化と復号化は推定される確率の異なるグループ毎に(符号化効率及び/又は複雑性に関して)最適化することができる。一方で、このような最適化は、同様の符号化効率を有する現状技術のエントロピー符号化アルゴリズムと比較して、符号化/復号化の複雑性を低減できる。他方で、このような最適化は、同様の符号化/復号化の複雑性を有する現状技術のエントロピー符号化アルゴリズムと比較して、符号化効率の向上を可能にする。本発明の好適な一実施形態において、ビン復号器322は、現在のビン要求に関する2つの可能なビン値317のうちの1つについての確率推定の尺度の異なるグループ毎に、異なる復号化アルゴリズム(即ち、ビン列から符号語へのマッピング)を実行する。本発明の好適な更なる実施形態において、ビン復号器322は、現在要求されているビンに関する劣勢確率又は優勢確率を持つビン値についての確率推定の尺度の異なるグループ毎に、異なる復号化アルゴリズムを実行する。
【0073】
ビン復号器322は、エンコーダ側における対応するビン符号器の逆マッピングを行う。
【0074】
本発明の好ましい一実施形態において、複数のビン復号器322−又は1つ以上のビン復号器−は、符号語323をビンの列321に直接的にマップするエントロピー復号器を表している。このようなマッピングは効率的に実施することができ、複雑な算術符号化エンジンを必要としない。ビン列への符号語のマッピングは一意である必要がある。本発明の好ましい一実施形態においては、符号語323のビンの列321へのマッピングは全単射である。本発明の更なる好ましい実施形態において、複数のビン復号器310−又は1つ以上のビン復号器−は、可変長の符号語323を可変長のビン列321へと直接的にマップするエントロピー復号器を表している。本発明の好ましい実施形態において、入力された符号語は、一般的なハフマン符号又は基準ハフマン符号などの冗長度のない符号を表している。冗長度のない符号をビン列に全単射マッピングするための2つの例は表3に示されている。
【0075】
本発明の好ましい更なる実施形態においては、複数のビン復号器322−又は1つ以上のビン復号器−は、固定長の符号語323を可変長のビン列321へと直接的にマップするエントロピー復号器を表している。本発明の好ましい更なる実施形態においては、複数のビン復号器322−又は1つ以上のビン復号器−は、可変長の符号語323を固定長のビン列321へと直接的にマップするエントロピー復号器を表している。
【0076】
従って、
図7及び
図8は、シンボル301の列を符号化するためのエンコーダと、それを再構築するためのデコーダとについての実施の形態を示したものである。エンコーダは、幾つかのパラメータ305を、シンボルの列の各シンボルに対して割り当てるよう構成された割当部304を含む。この割当ては、シンタックス要素301のカテゴリーなど、シンボル列の先行するシンボル内に含まれた情報に基づいたものであり、現在のシンボルが属する表現−例えばバイナリゼーションなど−であって、シンタックス要素301のシンタックス構造に従って現時点で予想される表現への割り当てであり、その予想とは、先行するシンタックス要素とシンボル301の履歴から推定可能なものである。更に、符号器は、それぞれのエントロピー符号器へ送られたシンボル301をそれぞれのビットストリーム312へと変換するように各々が構成されている、複数のエントロピー符号器310と、複数のエントロピー符号器310のうちの選択された1つに対して各シンボル301を送るように構成されている選択部306であって、その選択がそれぞれのシンボル301に割り当てられたパラメータ305の数に基づいている、選択部306と、を含む。割当部304は、選択部306と統合されて、それぞれの選択部502が得られると考えることもできる。
【0077】
シンボル列を再構築するためのデコーダは、それぞれのビットストリーム323をシンボル321へと変換するように各々が構成されている、複数のエントロピー復号器322と、シンボル列の以前に再構築済みのシンボル(
図8の326及び327参照)内に含まれる情報に基づいて、再構築されるべきシンボル列の各シンボル315に対し、幾つかのパラメータ317を割り当てるよう構成された割当部316と、再構築されるべきシンボル列の各シンボルを、複数のエントロピー復号器322のうちの選択された1つから回収するよう構成されている選択部318であって、その選択がそれぞれのシンボルに対して定義づけられているパラメータの数に依存する、選択部318と、を含む。割当部316は、各シンボルに割り当てられたパラメータの数が、それぞれのシンボルが持つ可能性のあるシンボル値の間の分布の確率推定のための尺度を含むか又は尺度そのものとなるように構成されていてもよい。また、割当部316と選択部318とは、1つのブロック、即ち選択部402へと統合されると考えられてもよい。再構築されるべきシンボル列は、二値アルファベットから作成され、割当部316は、確率分布の推定が、二値アルファベットの2つの可能なビン値の劣勢確率又は優勢確率を持つビン値の確率推定のための尺度と、2つの可能なビン値のうちどちらが劣勢確率又は優勢確率を持つビン値を表すかの推定を指定する識別子と、から成るように構成されていてもよい。割当部316はさらに、再構築されるべきシンボル315の列の各シンボルに対し、再構築されるべきシンボル列の以前の再構築済みのシンボル内に含まれる情報に基づいて、コンテキストを内部的に割り当てるよう構成されてもよく、このとき各コンテキストは、それぞれの確率分布の推定が関連付けられた状態であり、割当部316はさらに、各コンテキストについての確率分布推定を、それぞれのコンテキストが割り当てられた以前に再構築済みのシンボルのシンボル値に基づいて、実際のシンボル統計に適応するよう構成されてもよい。このコンテキストは、ビデオ又はピクチャの符号化において、又は財務的なアプリケーションの場合には表において、シンタックス要素が属する位置の空間的関係又は近接性を考慮に入れてもよい。次いで、各シンボルについての確率分布の推定のための尺度が、それぞれのシンボルに割り当てられたコンテキストと関連付けられた確率分布推定に基づいて決定されてもよく、それは例えば、それぞれのシンボルに割り当てられたコンテキストと関連付けられた確率分布推定(以下の実施形態においてはpipeインデックスと精製インデックスとによって示される)を、複数の確率分布推定の代表値(精製インデックスは切り離した状態)の1つへと、量子化するか又はそれぞれの表へのインデックスとして使用することによって実行され、それにより、(pipeインデックスが部分的ビットストリーム312を示している)確率分布推定のための尺度が取得されてもよい。選択部は、複数のエントロピー符号器と複数の確率分布推定の代表値との間で、全単射的な関連付けが定義付けられるよう構成されてもよい。選択部318は、シンボル列の以前に再構築済みのシンボルに基づく予め決定された決定論的な方法で、確率分布推定の範囲から複数の確率分布推定の代表値へと、量子化マッピングを経時的に変化させるよう構成されてもよい。つまり、選択部318は、量子化ステップのサイズ、即ち、個別の確率インデックスにマップされた確率分布の区間を変更することができ、その個別の確率インデックスは、個別のエントロピー復号器と全単射的に関連付けられていてもよい。次いで、複数のエントロピー復号器322は、量子化マッピングにおける変化に応答してシンボルをビットストリームへと変換する方法を適応するよう構成されてもよい。例えば、各エントロピー復号器322は、それぞれの確率分布推定の量子化区間内において、所定の確率分布推定に対して最適化される、即ち最適な圧縮率を有することができ、かつ、エントロピー復号器322が最適化されるべく変化する際に、それぞれの確率分布推定の量子化区間内においてこの所定の確率分布推定の位置を適応させるために、その符号語/シンボルの列のマッピングを変化させてもよい。選択部は、シンボルが複数のエントロピー復号器から回収されるレートのばらつきが小さくなるように、量子化マッピングを変化させるよう構成されてもよい。バイナライザ314に関しては、シンタックス要素が既に二値である場合には無くてもよいことに留意すべきである。さらに、復号器322のタイプによっては、バッファ320は不要である。また、バッファはその復号器内で統合されてもよい。
【0078】
<有限のシンタックス要素列の終了>
本発明の好ましい実施形態において、符号化と復号化は、シンタックス要素の有限集合に対して行われる。多くの場合、静止画像、ビデオシーケンスのフレームやフィールド、画像のスライス、ビデオシーケンスのフレーム又はフィールドのスライス、又は連続的なオーディオサンプルの集合などのデータの所定の量が符号化される。シンタックス要素の有限集合の場合、一般に、符号器側で作成された部分的ビットストリームを終了させる必要がある。即ち、伝送された又は記憶された部分的ビットストリームから、全てのシンタックス要素を復号化できることが保証されなければならない。最後のビンが対応するビンバッファ308内へ挿入された後に、ビン符号器310は、完全な符号語が部分的ビットストリーム312に書き込まれることを保証しなければならない。もしビン符号器310が、ビン列を符号語に直接マッピングするエントロピー符号器を表す場合には、最後のビンをビンバッファに書き込んだ後にビンバッファに記憶されるビン列は、符号語に関連付けられているビン列を表さない場合がある(即ち、符号語に関連付けられている2つ以上のビン列の接頭語を表す場合がある)。このような場合、ビンバッファ内でそのビン列を接頭語として含むビン列に関連付けられているどのような符号語も、部分的ビットストリームに書き込まれる必要がある(ビンバッファはフラッシュされる必要がある)。これは、特定の又は任意の値を持つビンを、符号語が書き込まれるまで、ビンバッファへ挿入することにより、実行することができる。本発明の好ましい一実施形態において、ビン符号器は、(関連付けられたビン列がビンバッファ内でそのビン列を接頭語として含む必要があるという特性に加えて)最短の長さを有する符号語の1つを選択する。デコーダ側では、ビン復号器322は、部分的ビットストリーム内の最後の符号語に要求されるより多くのビンを復号化してもよく、これらのビンはビンバッファ選択部318によって要求されずに、廃棄されかつ無視される。シンボルの有限集合の復号化は、復号化済みのシンタックス要素に対する要求によって制御される。即ち、もしある量のデータに対して更なるシンタックス要素が要求されない場合、その復号化は終了する。
【0079】
<部分的ビットストリームの伝送と多重化>
エンコーダによって作成される部分的ビットストリーム312は、別個に伝送されることが可能であり、若しくは単一のビットストリーム内へ多重化されることが可能であり、又は、部分的ビットストリームの符号語が単一のビットストリーム内へインターリーブされることが可能である。
【0080】
本発明の一実施形態においては、ある量のデータに係る各部分的ビットストリームは1つのデータパケットへ書き込まれる。その量のデータとは、静止画像、ビデオシーケンスのフィールドやフレーム、静止画像のスライス、ビデオシーケンスのフィールド又はフレームのスライス、又はオーディオサンプルのフレームなどの、シンタックス要素の任意の集合であってもよい。
【0081】
本発明の他の好ましい実施形態においては、ある量のデータに係る部分的ビットストリームの2つ以上、又はある量のデータに係る全ての部分的ビットストリームが、1つのデータパケット内へ多重化される。多重化された部分的ビットストリームを含むデータパケットの構造を
図9に示す。
【0082】
データパケット400は、(考慮対象となるある量のデータに係る)各部分的ビットストリームのデータに関するヘッダと1つのパーティションとから構成される。データパケットのヘッダ400は、データパケット(の残り)をビットストリームデータのセグメント402へと区分するための指示を含む。パーティション(区分)についての指示に加え、ヘッダは、更なる情報を含み得る。本発明の好ましい一実施形態においては、データパケットの区分についての指示は、ビット若しくはバイトの単位、又は多数のビット若しくは多数のバイトの単位のデータセグメントの始点位置である。本発明の好ましい一実施形態において、データセグメントの始点位置は、データパケットのヘッダ内に絶対値として符号化されており、データパケットの始点に対する位置か、若しくはヘッダの終点に対する位置か、又は先行するデータパケットの始点に対する位置である。本発明の好ましい更なる実施形態においては、データセグメントの始点位置は、差分的に符号化される。即ち、データセグメントの実際の始点と、データセグメントの始点についての予測と、の間の差のみが符号化される。この予測は、データパケットの全体のサイズ、ヘッダのサイズ、データパケット内のデータセグメントの数、先行するデータセグメントの始点位置など、既に既知であるか又は伝送された情報に基づいて導出可能である。本発明の好ましい一実施形態においては、最初のデータパケットの始点位置は符号化されないが、データパケットのヘッダのサイズに基づいて推測される。デコーダ側においては、伝送されたパーティションの指示は、データセグメントの始点を導出するために使用される。次いで、データセグメントは部分的ビットストリームとして使用され、データセグメントに含まれるデータは、対応するビン復号器に順に供給される。
【0083】
部分的ビットストリームをデータパケット内へ多重化するための方法には、幾つかの選択肢がある。一つの方法は、部分的ビットストリームのサイズ同士が非常に近い場合は特に必要なサイド情報を低減できる方法であり、
図10に示す。データパケットのペイロード、即ちそのヘッダ411なしのデータパケット410は、予め定義された方法でセグメント412へと区分される。一例として、データパケットのペイロードは同一サイズのセグメントへと区分されることができる。次に、各セグメントは部分的ビットストリーム又は部分的ビットストリーム413の最初の部分と関連付けられる。部分的ビットストリームが関連付けられたデータセグメントよりも大きい場合には、その残りの部分414は、他のデータセグメントの終点における未使用のスペースに配置される。これは、ビットストリームの残りの部分が(データセグメントの終点から開始する)逆の順序で挿入される方法で実行されることができ、サイド情報が削減される。部分的ビットストリームの残りの部分とデータセグメントとの関連付け、及び、2つ以上の残りの部分がデータセグメントへ追加される場合に、1つ以上の残りの部分に関する始点は、ビットストリームの内部、例えばデータパケットヘッダ内で信号化される必要がある。
【0084】
<可変長符号語のインターリービング>
幾つかのアプリケーションにおいては、1つのデータパケット内の(ある量のシンタックス要素に係る)部分的ビットストリームの上述した多重化は、次のような欠点を持つ可能性がある。即ち、一方では、小さいデータパケットにとっては、パーティションについて信号化するために必要とされるサイド情報のためのビット数が、部分的ビットストリーム内の実際のデータに対して重大になりうるため、最終的に符号化効率を低下させる。他方で、多重化は、(例えばビデオ会議アプリケーションなどの)低遅延が要求されるアプリケーションには、不向きである可能性がある。上述した多重化の場合、部分的ビットストリームが完全に作成される以前に、エンコーダがデータパケットの伝送を開始することは不可能である。なぜなら、パーティションの始点位置が事前に知られていないからである。さらに、一般に、デコーダは、データパケットの復号化を開始し得る前に、最後のデータセグメントの始点を受信するまで待機する必要がある。ビデオ会議システムのようなアプリケーションにおいては、これらの遅延は合計されて、複数のビデオピクチャを用いたシステム(特に、伝送ビットレートに近いビットレートに関して、及び1つのピクチャを符号化/復号化するために2つのピクチャ間の時間区間に近い要求をするエンコーダ/デコーダに関して)の追加的な全体的遅延となる可能性があり、このようなアプリケーションには致命的である。特定のアプリケーションに関するこのような欠点を克服するために、本発明の好ましい実施形態のエンコーダは、2つ以上のビン符号器によって生成される符号語が、単一のビットストリームにインターリーブされるよう構成され得る。インターリーブ済みの符号語を有するビットストリームは、デコーダに直接的に送信されることができる(小さなバッファ遅延を無視する場合は以下を参照)。デコーダ側においては、2つ以上のビン復号器は、復号化の順序でビットストリームから直接的に符号語を読み出す。即ち、復号化は最初に受信したビットから開始され得る。更に、部分的ビットストリームの多重化(又はインターリービング)を信号化するために、サイド情報は必要とされない。ビン復号器322が、グローバル・ビットバッファから可変長符号語を読み出さず、その代わりにビン復号器322が、グローバル・ビットバッファから固定長のビット列を常に読み出し、これら固定長のビット列をローカル・ビットバッファへ追加する場合には、デコーダの複雑さを低減するための更なる方法が得られる。ここで、各ビン復号器322は、分離したローカル・ビットバッファと連結されている。次いで、可変長符号語がローカル・ビットバッファから読み出される。これにより、可変長符号語の解析が並行的に実行されることができ、固定長のビット列のアクセスを同期的な方法で実行するだけでよくなり、しかし固定長のビット列のこのようなアクセスは通常は非常に迅速であるため、結果的に、全体的な復号化の複雑さは一部のアーキテクチャについて低減され得る。特定のローカル・ビットバッファへ送信されるビンの固定数は異なるローカル・ビットバッファごとに異なる場合があり、ビン復号器、ビンバッファ、又はビットバッファにおける事象としてのあるパラメータに依存して、経時的に変化し得る。しかしながら、特定のアクセスによって読み出されるビット数は特定のアクセス中に読み出される実際のビットには依存しない。これは可変長の符号語の読み出しに対する重要な違いである。固定長のビット列の読み出しは、ビンバッファ、ビン復号器、又はローカル・ビットバッファ内における所定の事象によってトリガーされる。一例として、連結されているビットバッファ内に存在しているビット数が予め定義されたしきい値を下回った場合、新たな固定長のビット列の読み出しを要求することが可能である。この場合、異なるしきい値を異なるビットバッファに対して使用することができる。エンコーダにおいては、固定長のビン列がデコーダ側でビットストリームから読み出されるのと同じ順序で、ビットストリーム内へ挿入されることを確保する必要がある。この固定長列のインターリービングと、上述したものと同様の低遅延制御とを組み合わせることも可能である。固定長のビット列のインターリービングのための好ましい実施形態を以下に説明する。このようなインターリービングのスキームについての詳細に関しては、特許文献1を参照されたい。
【0085】
以前の符号化がビデオデータの圧縮のために使用される実施形態を説明した後で、本発明の実施形態を実行するための更なる実施形態として、圧縮率を一方とし、ルックアップテーブル及び演算のオーバーヘッドを他方とする妥協点に関して、特に効率的な構成をもたらす実施形態について説明する。特に、以下の実施形態は、演算的にあまり複雑でない可変長符号を、ビットストリームを個別にエントロピー符号化し、確率推定の部分を効率的にカバーするために使用することを可能にする。以下に説明する実施形態においては、シンボルはバイナリーの性質を持ち、以下に記載するVLC符号は、例えば[0;0.5]内の範囲を有するR
LPSによって表されるような、確率推定を効率的にカバーする。
【0086】
特に、以下の実施形態は、
図7〜
図17における個別のエントロピー符号器310及び復号器322の可能な実施形態を、それぞれ説明するものである。それらの実施形態は、ビン即ちバイナリーシンボルが、画像やビデオの圧縮アプリケーションにおいて出現する場合、それらを符号化するために適している。従って、これらの実施形態はまた、画像やビデオの符号化であって、そのようなバイナリーシンボルが、符号化されるべき1つ以上のビンストリーム307や、復号化されるべき1つ以上のビットストリーム324へとそれぞれ分割され、そのようなビンストリームの各々が、ベルヌーイ・プロセスの実現として考慮され得るような符号化に対して適用可能である。以下に説明する実施形態は、以下に説明する種々のいわゆる可変/可変符号(v2v符号)を使用して、ビンストリームを符号化する。v2v符号は、同一数の符号語を有する2つの接頭語なし符号として考えられてもよい。即ち、1次及び2次の接頭語なし符号である。1次の接頭語なし符号の各符号語は、2次の接頭語なし符号の1つの符号語と関連付けられている。以下に説明する実施形態によれば、符号器310及び復号器322のうちの少なくとも幾つかは、次のように動作する。即ち、特定のビン列307を符号化するために、1次の接頭語なし符号の符号語がバッファ308から読まれたときにはいつも、2次の接頭語なし符号の対応する符号語がビットストリーム312に書き込まれる。同様の過程がそのようなビットストリーム324を復号化するために使用されるが、但し、1次と2次の接頭語なし符号は入れ替わっている。つまり、ビットストリーム324を復号化するために、2次の接頭語なし符号の符号語がそれぞれのビットストリーム324から読まれたときにはいつも、1次の接頭語なし符号の対応する符号語がバッファ320に書き込まれる。
【0087】
有利なことには、以下に説明する符号はルックアップテーブルを必要とはしない。それらの符号は、有限状態機械(finite state machines)の形態で構成可能である。ここで説明するv2v符号は、単純な構築ルールによって生成できるので、符号語のために大きなテーブルを記憶する必要がない。代わりに、単純なアルゴリズムを使用して、符号化や復号化を実行できる。3つの構築ルールを以下に説明するが、そのうち2つはパラメータ化できる。それらは上述した確率区間の異なる部分又は互いに素な部分をもカバーし、従って、例えばこれら3つの全ての符号を(符号器310/復号器322)のうちの異なる各1つに対して各々を並行して)使用するか、又はそれらのうちの2つを使用すれば、特に有利となる。以下に説明する構築ルールを用いて、任意の確率pを有するベルヌーイ過程において、符号の1つが過度の符号長に関して良好に作動するように、v2v符号の集合を設計することが可能である。
【0088】
上述したように、ストリーム312及び324の符号化及び復号化は、各ストリームについて独立して、又はインターリーブされる方法で実行されてもよい。しかし、この点は本件で説明するv2v符号の部類に特有というわけではない。従って、以下の説明では、3つの構築ルールの各々について、特定の符号語の符号化及び復号化だけが説明されている。しかしながら、ここで強調しておくが、インターリービングの解決策に関連する上述した実施形態の全てもまた、本件で説明する符号、又は符号器310及び復号器322に対して、それぞれ組み合わせることが可能である。
【0089】
構築ルール1:「ユーナリービンPIPE」符号又は符号器310/復号器322
ユーナリービンPIPE符号(PIPE=probability interval partitioning entropy:確率区間区分エントロピー)は、いわゆる「ビンPIPE」符号、即ち、各々が上述した確率範囲[0;0.5]の所定の確率のサブ区間に属しているバイナリーシンボル統計のデータを伝送する個々のビットストリーム312および324のいずれかの符号化に適している符号の特別なバージョンである。まず、ビンPIPE符号の構築を説明する。ビンPIPE符号は、少なくとも3つの符号語を有する任意の接頭語なし符号から構築することができる。1つのv2v符号を形成するために、ビンPIPE符号は1次及び2次の符号として接頭語なし符号を使用するが、しかし、2次の接頭語なし符号の2つの符号語は入れ替えられている。これは、2つの符号語を除いて、ビンが、ビットストリームに変更なしに書き込まれることを意味する。この技術によれば、1つの接頭語なし符号だけを情報とともに記憶するだけで済み、2つの符号語が入れ替えられることから、メモリー消費量が削減される。異なる長さの符号語を入れ替えることに意味があることに留意されたい。そうでない場合、ビットストリームは(ビンストリームの終端で発生する効果を考慮に入れずに)ビンストリームと同じ長さを有することになり得るからである。
【0090】
この構築ルールにより、ビンPIPE符号の顕著な特性は、(符号語のマッピングが保持されたままで)1次と2次の接頭語なし符号が入れ替えられた場合、結果として得られるv2v符号は元のv2v符号と同一である点にある。従って、符号化アルゴリズムと復号化アルゴリズムはビンPIPE符号に対して同一である。
【0091】
ユーナリービンPIPE符号は、特殊な接頭語なし符号から構築される。この特別な接頭語なし符号は、以下のように構築される。最初に、n個のユーナリー符号語から成る接頭語なし符号が、'01'、'001'、'0001'からスタートして、n個の符号語が生じるまで生成される。nはユーナリービンPIPE符号のパラメータである。最長の符号語から、後続の(trailing)1は削除される。これは切り詰められた(truncated)ユーナリー符号(ただし、符号語'0'なし)に対応している。次に、n−1個のユーナリー符号語が'10'、'110'、'1110'からスタートして、n−1個の符号語が生じるまで生成される。最長の符号語から、後続の0は削除される。これら2つの接頭語なし符号の和集合はユーナリービンPIPE符号を生成するための入力として使用される。入れ替えられる2つの符号語は、0だけから成る符号語と1だけから成る符号語である。
【0092】
n=4の場合の例:
番号 1次 2次
1 0000 111
2 0001 0001
3 001 001
4 01 01
5 10 10
6 110 110
7 111 0000
【0093】
構築ルール2:「ユーナリー・トゥ・ライス」符号およびユーナリー・トゥ・ライス符号器10/復号器22:
ユーナリー・トゥ・ライス符号は、切り詰められたユーナリー符号を1次符号として使用する。すなわち、ユーナリー符号語は、'1'、'01'、'001'からスタートして、2
n+1個の符号語が生じるまで生成され、最長の符号語から、後続の1が削除される。nはユーナリー・トゥ・ライス符号のパラメータである。2次の接頭語なし符号は、以下のように、1次の接頭語なし符号の符号語から構築される。0だけから成る1次の符号語に対して、符号語'1'が割り当てられる。他の全ての符号語は、1次の接頭語なし符号の対応する符号語の0の数のnビットのバイナリー表現を有する符号語'0'の連結から成る。
【0094】
n=3の場合の例:
番号 1次 2次
1 1 0000
2 01 0001
3 001 0010
4 0001 0011
5 00001 0100
6 000001 0101
7 0000001 0110
8 00000001 0111
9 00000000 1
これは、無限のユーナリー符号を、ライスパラメータ2
nを有するライス符号にマッピングすることと同じであることに留意されたい。
【0095】
構築ルール3:「3つのビン」符号
3つのビン符号は次のように与えられる:
番号 1次 2次
1 000 0
2 001 100
3 010 101
4 100 110
5 110 11100
6 101 11101
7 011 11110
8 111 11111
【0096】
1次の符号(シンボル列)が固定長(常に3つのビン)であり、符号語は1の数の昇順でソートされるという特性を有している。
【0097】
3つのビン符号の効率的な構成例を次に説明する。この3つのビン符号のための符号器と復号器は、テーブルを記憶せずに、以下のように構成することができる。
【0098】
符号器(10のいずれか)において、3つのビンが、ビンストリーム(即ち7)から読み出される。これらの3つのビンがたった1つの1を含む場合、この符号語‘1’がビットストリームに書き込まれ、その後には、(右から00でスタートする)1の位置のバイナリー表現から成る2つのビンが続く。3つのビンがたった1つの0を含む場合、符号語‘111’がビットストリームに書き込まれ、その後には、(右から00でスタートする)0の位置のバイナリー表現から成る2つのビンが続く。残りの符号語‘000’と‘111’は、‘0’と‘11111’にそれぞれマップされる。
【0099】
復号器(22のいずれか)において、1つのビン又はビットがそれぞれのビットストリーム24から読み出される。1つのビン又はビットが‘0’と等しい場合には、符号語‘000’がビンストリーム21に復号化される。もしそれが‘1’と等しい場合には、さらに2つのビンがビットストリーム24から読み出される。これら2つのビットが‘11’と等しくない場合、これらのビットは、数のバイナリー表現として解釈され、2つの0と1つの1とが、この1の位置がその数によって決定されるようにビットストリームから復号化される。2つのビットが‘11’と等しい場合、さらに2つのビットが数のバイナリー表現として解釈される。この数が3より小さい場合、2つの1と1つの0とが復号化され、この数は0の位置を決定する。もしそれが3と等しい場合には、‘111’がビンストリームに復号化される。
【0100】
ユーナリービンPIPE符号の効率的な構成例を次に説明する。ユーナリービンPIPE符号のためのエンコーダとデコーダは、カウンタを使用して効率的に実装することができる。ビンPIPE符号の構造により、ビンPIPE符号の符号化と復号化は容易に実施できる。
【0101】
符号器(10のいずれか)において、符号語の最初のビンが‘0’と等しい場合、ビンは、‘1’が生じるか又はn個の0(符号語の最初の‘0’を含む)が読み出されるまで処理される。‘1’が生じた場合、読み出されたビンは変更されないままでビットストリームに書き込まれる。それ以外の場合(すなわち、n個の0が読み出された場合)、n−1個の1がビットストリームに書き込まれる。符号語の最初のビンが‘1’と等しい場合、ビンは‘0’が生じるかまたはn−1個の1(符号語の最初の‘1’を含む)が読み出されるまで処理される。‘0’が生じた場合、読み出されたビンは変更されないままでビットストリームに書き込まれる。それ以外の場合(すなわち、n−1個の1が読み出された場合)、n個の0がビットストリームへ書き込まれる。
【0102】
復号器(322のいずれか)においては、符号器のためのアルゴリズムと同じアルゴリズムが使用される。これは、上述したようにビンPIPE符号に関して同じであるためである。
【0103】
ユーナリー・トゥ・ライス符号の効率的な構成例を次に説明する。ユーナリー・トゥ・ライス符号のためのエンコーダとデコーダは、ここで説明するようにカウンタを使用して効率的に実装することができる。
【0104】
符号器(310のいずれか)において、ビンは、1が生じるかまたは2
n個の0が読み出されるまで、ビンストリーム(即ち7)から読み出される。0の数がカウントされる。カウント数が2
n個と等しい場合、符号語‘1’がビットストリームへ書き込まれる。それ以外の場合、‘0’が書き込まれ、その後に、カウントされた数のバイナリー表現がnビットで書き込まれる。
【0105】
復号器(322のいずれか)において、1つのビットが読み出される。このビットが‘1’と等しい場合、2
n個の0がビンストリングに復号化される。もしこのビットが‘0’と等しい場合には、n個の更なるビットが読み出され、数のバイナリー表現として解釈される。0のこの数は、ビンストリームに復号化され、その後に1つの‘1’が続く。
【0106】
換言すれば、直上で述べた実施形態は、シンボル303の列を符号化するためのエンコーダについて説明しており、このエンコーダは、シンボル列の以前のシンボル内に含まれる情報に基づいてこのシンボル列の各シンボルに対して幾つかのパラメータ305を割り当てるように構成された割当部316と、各々がそれぞれのエントロピー符号器310へ伝送されたシンボル307をそれぞれのビットストリーム312へ変換するように構成された複数のエントロピー符号器310と、各シンボル303を複数のエントロピー符号器310の選択された1つへ伝送するように構成された選択部6であって、この選択はそれぞれのシンボル303に割り当てられたパラメータ305の数に依存している選択部6と、を含む。この実施形態によれば、エントロピー符号器の少なくとも第1の部分集合は、シンボル307のストリーム内の可変長のシンボル列を、ビットストリーム312内に挿入されるべき可変長の符号語へとそれぞれマップするよう構成された可変長符号器であってもよく、その際に、第1の部分集合のエントロピー符号器310の各々は全単射マッピングルールを使用し、この全単射マッピングルールに基づいて、(2n−1)≧3個の符号語を有する1次の接頭語なし符号の符号語が、1次の接頭語符号と同一である2次の接頭語なし符号の符号語へとマップされて、その結果、1次の接頭語なし符号の符号語のうち2つを除く全てが、2次の接頭語なし符号の同一の符号語にマップされる一方で、1次と2次の接頭語なし符号の2つの符号語は異なる長さを有し、かつ相互に入れ替えられた状態でマップされ、ここで、上述した確率区間の区間の異なる部分をカバーするために、エントロピー符号器同士で異なるnを使用してもよい。第1の接頭語なし符号は、第1の接頭語なし符号の符号語が(a,b)
2,(a,a,b)
3,...,(a,...,a,b)
n,(a,...,a)
n,(b,a)
2,(b,b,a)
3,...,(b,...,b,a)
n-1,(b,...,b)
n-1となるよう構成され、相互に入れ替えられた状態にマップされた2つの符号語は、(a,...,a)
nと(b,...,b)
n-1とであり、ここで、b≠aでかつa,b∈{0,1}である。しかしながら、これに代わる方法も実行可能である。
【0107】
換言すれば、エントロピー符号器の第1の部分集合の各々は、それぞれのエントロピー符号器に伝送されたシンボルをそれぞれのビットストリームに変換する際に、それぞれのエントロピー符号器へ伝送された最初のシンボルを検査し、
(1)最初のシンボルがa∈{0,1}と等しいかどうかを判定し、そうである場合、それぞれのエントロピー符号器は、それぞれのエントロピー符号器に伝送された後続のシンボルを検査し、
(1.1)b≠aでかつb∈{0,1}であるbが、最初のシンボルに続く次のn−1個のシンボル内に生じるかどうかを判定し、そうである場合、それぞれのエントロピー符号器は、シンボルbに至るまで、最初のシンボルの後にそれぞれのエントロピー符号器に伝送された後続のシンボルが続く状態と等しいそれぞれのビットストリームへ符号語を書き込むよう構成され、
(1.2)bが最初のシンボルに続く次のn−1個のシンボル内に全く生じないかどうかを判定し、そうである場合、それぞれのエントロピー符号器は、(b,...,b)
n-1と等しいそれぞれのビットストリームへ符号語を書き込むよう構成され、又は、
(2)最初のシンボルがbと等しいかどうかを判定し、そうである場合、それぞれのエントロピー符号器は、それぞれのエントロピー符号器に伝送された後続のシンボルを検査し、
(2.1)aが最初のシンボルに続く次のn−2個のシンボル内に生じるかどうかを判定し、そうである場合、それぞれのエントロピー符号器は、シンボルaに至るまで、最初のシンボルの後にそれぞれのエントロピー符号器に伝送された後続のシンボルが続く状態と等しいそれぞれのビットストリームへ符号語を書き込むよう構成され、若しくは、
(2.2)aが最初のシンボルに続く次のn−2個のシンボル内に全く生じないかどうかを判定し、そうである場合、それぞれのエントロピー符号器は、(a,...,a)
nと等しいそれぞれのビットストリームへ符号語を書き込むよう構成されている。
【0108】
追加的または代替的に、エントロピー符号器10の第2の部分集合は、可変長のシンボル列を固定長の符号語へとそれぞれマップするよう構成された可変長符号器であってもよく、その際には、第2の部分集合のエントロピー符号器の各々は全単射マッピングルールを使用し、この全単射マッピングルールに基づいて、b≠aでかつa,b∈{0,1}であるタイプ{(a),(ba),(bba),...,(b...ba),(bb...b)}の2
n+1個の符号語を有する1次の切り詰められたユーナリー符号の符号語が、2次の接頭語なし符号の符号語へとマップされ、その結果、1次の切り詰められたユーナリー符号の符号語(bb...b)が2次の接頭語なし符号の符号語(c)へとマップされ、かつ1次の切り詰められたユーナリー符号の他の全ての符号語{(a),(ba),(bba),...,(b...ba)}が、c≠dでかつc,d∈{0,1}である(d)を接頭語として有しかつnビットのワードを接尾語として有するような符号語へとマップされ、ここで、各エントロピー符号器は異なるnを使用する。エントロピー符号器の第2の部分集合の各々は、nビットのワードが、1次の切り詰められたユーナリー符号のそれぞれの符号語内にあるbの数のnビットの表現となるよう構成されてもよい。しかしながら、これに代わる代替方法も実行可能である。
【0109】
ここでも、それぞれの符号器10の演算モードの観点から、エントロピー符号器の第2の部分集合の各々は、それぞれのエントロピー符号器に伝送されたシンボルをそれぞれのビットストリームへと変換する際に、aが生じるまで、又は、それぞれのエントロピー符号器に伝送されたシンボル列の数が2
n個であって列の2
n個の全てのシンボルがbであるような2
n個に達するまで、それぞれのエントロピー符号器へ伝送されたシンボル列内のbの数をカウントするよう構成されてもよく、
(1)bの数が2
nと等しい場合には、c∈{0,1}であるcを2次の接頭語なし符号の符号語としてそれぞれのビットストリームへ書き込み、
(2)bの数が2
nより小さい場合には、c≠dでかつd∈{0,1}である(d)を接頭語として有し、bの数に応じて決定されたnビットのワードを接尾語として有する、それぞれのビットストリームへと2次の接頭語なし符号の符号語を書き込む。
【0110】
更に追加的または代替的に、エントロピー符号器10の所定の1つは、固定長のシンボル列を可変長の符号語にそれぞれマップするよう構成された可変長符号器であってもよく、その所定のエントロピー符号器は全単射マッピングルールを使用し、この全単射マッピングルールに基づいて、1次符号の長さ3を有する2
3個の符号語が2次の接頭語なし符号の符号語へとマップされ、その結果、a∈{0,1}である1次符号の符号語(aaa)
3は、c∈{0,1}である符号語(c)にマップされ、b≠aでかつb∈{0,1}である1個だけのbを有する1次符号の全ての3個の符号語は、接頭語としてc≠dでかつd∈{0,1}である(d)を有しかつ接尾語として2ビットワードの第1の集合からのそれぞれの第1の2ビットワードを有する符号語にマップされ、1つだけのaを有する1次符号の全ての3つの符号語は、接頭語として(d)を有しかつ接尾語として第1の集合の要素ではない第1の2ビットワードと2ビットワードの第2の集合からの第2の2ビットワードとの連結を有する符号語へとマップされる。符号語(bbb)
3は、接頭語として(d)を有しかつ接尾語として第1の集合の要素ではない第1の2ビットワードと第2の集合の要素ではない第2の2ビットワードとの連結を有する符号語へとマップされる。1つだけのbを有する1次符号の符号語の第1の2ビットワードは1次符号のそれぞれの符号語内のbの位置の2ビット表現であってもよく、1つだけのaを有する1次符号の符号語の第2の2ビットワードは1次符号のそれぞれの符号語内のaの位置の2ビット表現であってもよい。しかしながら、これに代わる方法も実行可能である。
【0111】
ここでも、エントロピー符号器の所定の1つは、所定のエントロピー符号器に伝送されたシンボルをそれぞれのビットストリームへ変換する際に、所定のエントロピー符号器へのトリプレット(3要素から成る1組)内のシンボルを以下の点について検査するよう構成されてもよい。即ち、
(1)トリプレットは複数のaから成るか否かが検査され、そうである場合には、所定のエントロピー符号器がそれぞれのビットストリームへ符号語(c)を書き込むよう構成され、
(2)トリプレットが1つだけのbを含むか否かが検査され、そうである場合には、所定のエントロピー符号器が(d)を接頭語として有しかつトリプレット内のbの位置の2ビットの表現を接尾語として有する符号語を、それぞれのビットストリームへと書き込むよう構成され、
(3)トリプレットが1つだけのaを含むか否かが検査され、そうである場合には、所定のエントロピー符号器が、(d)を接頭語として有しかつ第1の集合の要素ではない第1の2ビットワードとトリプレット内のaの位置の2ビットの表現との連結を接尾語として有する符号語を、それぞれのビットストリームへと書き込むよう構成され、又は、
(4)トリプレットが複数のbから成るか否かが検査され、そうである場合には、所定のエントロピー符号器が、(d)を接頭語として有しかつ第1の集合の要素ではない第1の2ビットワードと第2の集合の要素ではない第1の2ビットワードとの連結を接尾語として有する符号語を、それぞれのビットストリームへと書き込むよう構成されてもよい。
【0112】
復号化側に関して、直上で説明した実施形態は、シンボル326の列を再構築するためのデコーダであって、各々がそれぞれのビットストリーム324をシンボル321へと変換するよう構成された複数のエントロピー復号器322と、シンボル列の以前に再構築されたシンボル内に含まれる情報に基づいて、再構築されるべきシンボル列の各シンボル326に対して幾つかのパラメータを割り当てるよう構成された割当部316と、複数のエントロピー復号器のうちの選択された1つから再構築されるべきシンボル列の各シンボル325を回収するよう構成された選択部318であって、その選択はそれぞれのシンボルに対して定義付けられたパラメータの数に依存する選択部318と、を含むデコーダを開示している。この実施形態によれば、エントロピー復号器322の少なくとも第1の部分集合は、可変長の符号語を可変長のシンボル列へとそれぞれマップするよう構成された可変長復号器であり、その際に、第1の部分集合のエントロピー復号器322の各々は全単射マッピングルールを使用し、この全単射マッピングルールに基づいて、(2n−1)≧3個の符号語を有する1次の接頭語なし符号の符号語が1次の接頭語符号と同一である2次の接頭語なし符号の符号語へとマップされて、その結果、1次の接頭語なし符号の符号語のうち2つを除く全てが、2次の接頭語なし符号の同一の符号語へとマップされる一方で、1次と2次の接頭語なし符号の2つの符号語は異なる長さを有し、かつ相互に入れ替えられた状態でマップされ、ここで、各エントロピー復号器が異なるnを使用する。第1の接頭語なし符号は、第1の接頭語なし符号の符号語が(a,b)
2,(a,a,b)
3,...,(a,...,a,b)
n,(a,...,a)
n,(b,a)
2,(b,b,a)
3,...,(b,...,b,a)
n-1,(b,...,b)
n-1であり、相互に入れ替えられた状態でマップされた2つの符号語が、(a,...,a)
n及び(b,...,b)
n-1であって、但しb≠aでかつa,b∈{0,1}となるように構築することができる。しかしながら、これに代わる方法も実行可能である。
【0113】
エントロピー復号器の第1の部分集合の各々は、それぞれのビットストリームをシンボルに変換する際に、それぞれのビットストリームの最初のビットを以下の点について検査するよう構成されてもよい。即ち、
(1)最初のビットがa∈{0,1}と等しいかどうかを判定し、そうである場合、それぞれのエントロピー復号器はそれぞれのビットストリームの後続するビットを検査するよう構成され、
(1.1)最初のビットに続く次のn−1個のビット内に、b≠aでかつb∈{0,1}のbが生じるかどうかを判定し、そうである場合、それぞれのエントロピー復号器は、ビットbに至るまで、最初のビットの後にそれぞれのビットストリームの後続のビットが続く状態と等しいシンボル列を再構築するよう構成され、若しくは、
(1.2)最初のビットに続く次のn−1個のビット内にbが全く生じないかどうかを判定し、そうである場合、それぞれのエントロピー復号器は(b,...,b)
n-1と等しいシンボル列を再構築するよう構成され、又は、
(2)最初のビットがbと等しいかどうかを判定し、そうである場合、それぞれのエントロピー復号器はそれぞれのビットストリームの後続するビットを検査するよう構成され、
(2.1)aが最初のビットに続く次のn−2個のビット内に生じるかどうかを判定し、そうである場合、それぞれのエントロピー復号器は、シンボルaに至るまで、最初のビットの後にそれぞれのビットストリームの後続のビットが続く状態と等しい、シンボル列を再構築するよう構成され、若しくは、
(2.2)aが最初のビットに続く次のn−2個のビット内に全く生じないかどうかを判定し、そうである場合、それぞれのエントロピー復号器は(a,...,a)
nと等しいシンボル列を再構築するよう構成されてもよい。
【0114】
追加的又は代替的に、エントロピー復号器322の少なくとも第2の部分集合は、固定長の符号語を可変長のシンボル列へとそれぞれマップするよう構成された可変長復号器であってもよく、その際に、第2の部分集合のエントロピー復号器の各々は全単射マッピングルールを使用し、この全単射マッピングルールに基づいて、2次の接頭語なし符号の符号語が、タイプ{(a),(ba),(bba),...,(b...ba),(bb...b)}であって、但しb≠aでかつa,b∈{0,1}である2n+1個の符号語を有する1次の切り詰められたユーナリー符号からなる符号語へとマップされて、その結果、2次の接頭語なし符号の符号語(c)が1次の切り詰められたユーナリー符号の符号語(bb...b)にマップされて、c≠dおよびc,d∈{0,1}である(d)を接頭語として有し、かつnビットのワードを接尾語として有する各符号語が、1次の切り詰められたユーナリー符号の他の符号語{(a),(ba),(bba),...,(b...ba)}のうちのそれぞれ1つへとマップされ、ここで、各エントロピー復号器は、異なるnを使用する。エントロピー復号器の第2の部分集合の各々は、nビットのワードが、1次の切り詰められたユーナリー符号のそれぞれの符号語内のbの数のnビットの表現であるように構成されてもよい。しかしながら、これに代わる方法も実行可能である。
【0115】
エントロピー復号器の第2の部分集合の各々は、固定長の符号語を可変長のシンボル列へとそれぞれマップするよう構成された可変長の復号器であってもよく、それぞれのエントロピー復号器のビットストリームをシンボルに変換する際に、それぞれのビットストリームの最初のビットを以下の点について検査するよう構成されてもよい。即ち、
(1)最初のビットが、c∈{0,1}であるcと等しいかどうかを判定し、そうである場合、それぞれのエントロピー復号器は、b∈{0,1}である(bb...b)
2nと等しいシンボル列を再構築するよう構成され、又は、
(2)最初のビットが、c≠dでかつc,d∈{0,1}であるdと等しいかどうかを判定し、そうである場合、それぞれのエントロピー復号器は、最初のビットに後続する、それぞれのビットストリームのn個の更なるビットからnビットのワードを決定し、そのnビットのワードから、タイプ{(a),(ba),(bba),...,(b...ba),(bb...b)}であり但しb≠aでかつb∈{0,1}であって、bの数がnビットのワードに依存するシンボル列を再構築するよう構成されてもよい。
【0116】
追加的又は代替的に、エントロピー復号器22の所定の1つは、可変長の符号語を固定長のシンボル列へとそれぞれマップするよう構成された可変長の復号器であってもよく、その所定のエントロピー復号器は全単射マッピングルールを使用し、この全単射マッピングルールに基づいて、2次の接頭語なし符号の符号語は1次符号の長さ3の2
3個の符号語へとマップされて、その結果、c∈{0,1}である符号語(c)は、a∈{0,1}である1次符号の符号語(aaa)
3へとマップされ、c≠dでかつd∈{0,1}である(d)を接頭語として有しかつ3つの2ビットワードからなる第1の集合からそれぞれの第1の2ビットワードを接尾語として有する符号語は、b≠aでかつb∈{0,1}である1つだけのbを有する1次符号の全ての3つの符号語へとマップされ、(d)を接頭語として有しかつ第1の集合の要素ではない第1の2ビットワードと3つの2ビットワードから成る第2の集合からの第2の2ビットワードとの連結を接尾語として有する符号語は、1つだけのaを有する1次符号の全ての3つ符号語へとマップされ、(d)を接頭語として有しかつ第1の集合の要素ではない第1の2ビットワードと第2の集合の要素ではない第2の2ビットワードとの連結を接尾語として有する符号語は、符号語(bbb)
3へとマップされる。1つだけのbを有する1次符号の符号語の第1の2ビットワードは、1次符号のそれぞれの符号語内のbの位置の2ビット表現であってもよく、また、1つだけのaを有する1次符号の符号語の第2の2ビットワードは、1次符号のそれぞれの符号語内のaの位置の2ビット表現であってもよい。しかしながら、これに代わる方法も実行可能である。
【0117】
エントロピー復号器の所定の1つは、可変長の符号語を、各々3つのシンボルから成るシンボル列へとそれぞれマップするよう構成された可変長の復号器であってもよく、それぞれのエントロピー復号器のビットストリームをシンボルへ変換する際に、それぞれのビットストリームの最初のビットを以下の点について検査するよう構成されてもよい。即ち、
(1)それぞれのビットストリームの最初のビットがc∈{0,1}であるcと等しいかどうかを判定し、そうである場合、所定のエントロピー復号器がa∈{0,1}である(aaa)
3と等しいシンボル列を再構築するよう構成され、又は、
(2)それぞれのビットストリームの最初のビットがc≠dでかつd∈{0,1}であるdと等しいかどうかを判定し、そうである場合、所定のエントロピー復号器は、それぞれのビットストリームの最初のビットに続く2個の更なるビットから第1の2ビットワードを決定するよう構成され、さらに、その第1の2ビットワードを検査して、
(2.1)その第1の2ビットワードが3つの2ビットワードからなる第1の集合の要素でないかどうかを判定し、そうである場合、所定のエントロピー復号器は、b≠aでかつb∈{0,1}である1つだけのbを有するシンボル列を再構築するよう構成されており、ここで、それぞれのシンボル列内のbの位置は第1の2ビットワードに依存しており、若しくは、
(2.2)第1の2ビットワードが第1の集合の要素であるかどうかを判定し、そうである場合、所定のエントロピー復号器は、その第1の2ビットワードがそこから決定されてきた2つのビットに後続する、それぞれのビットストリームの2個の更なるビットから第2の2ビットワードを決定するよう構成され、さらに、その第2の2ビットワードを検査するよう構成されて、
(3.1)その第2の2ビットワードが3つの2ビットワードから成る第2の集合の要素でないかどうかを判定し、そうである場合、所定のエントロピー復号器は、1つだけのaを有するシンボル列を再構築するよう構成されており、ここで、それぞれのシンボル列内のaの位置は第2の2ビットワードに依存しており、若しくは、
(3.2)第2の2ビットワードが3つの2ビットワードから成る第2の集合の要素であるかどうかを判定し、そうである場合、所定のエントロピー復号器は、(bbb)
3と等しいシンボル列を再構築するよう構成されてもよい。
【0118】
ビデオ符号化スキームの全体的な概念を説明した後で、本発明の実施形態を上述した実施形態に関して説明する。換言すれば、以下に説明する実施形態は、上述したスキームを使用して実施されてもよく、逆に、以下に説明する実施形態を使用しまた開発して、上述した符号化スキームが実施されてもよい。
【0119】
図7〜
図9に関連して説明された上述の実施形態においては、
図1〜
図6のエントロピーエンコーダ及びデコーダは、PIPEの概念に従って構成されていた。1つの特別な実施形態では、算術的な単一確率状態の符号器310/復号器322が使用されていた。以下に説明するように、他の実施形態によれば、エンティティー306〜310とそれに対応するエンティティー318〜322とは、通常のエントロピー符号化エンジンによって置き換えられてもよい。例えば、ある算術的な符号化エンジンは、ただ1つの共通状態RとLを処理し、全てのシンボルを1つの共通のビットストリームへと符号化してもよく、それにより、並行処理に関する現在のPIPE概念の有利な局面をあきらめる一方で、以下に説明するように、部分的ビットストリームをインターリーブする必要性を除去できる。そのようにすることで、更新(テーブルのルックアップ)によってコンテキストの確率が推定される基となる確率状態の数が、確率区間のサブ分割が実行される基となる確率状態の数よりも大きくなる可能性がある。つまり、テーブルRtabへとインデックス化する前に確率区間幅の値を量子化するのと同様に、確率状態インデックスもまた量子化されてもよい。従って、上述した単一の符号器310及び復号器322についての可能な構成は、コンテキスト適応型バイナリー算術符号化/復号化のエンジンとしてのエントロピー符号器/復号器318〜322/306〜310の構成例として拡大解釈可能である。
【0120】
更に詳細には、一実施形態によれば、(ここではコンテキスト割当部として作動する)パラメータ割当部の出力は以下のように動作してもよい:
0.割当部304は、確率パラメータと共にビン値を伝送する。確率はpState_current[bin]である。
1.従って、エントロピー符号化エンジンは、1)valLPSと、2)ビンと、3)確率分布推定pState_current[bin]とを受け取る。pState_current[bin]は、Rtabの識別可能な確率状態インデックスの数よりも多数の状態を有してもよい。その場合、pState_current[bin]は、例えばm個のLSBを無視することなどによって量子化されてもよい。ここで、1つのp_state、即ち次にテーブルRtabにアクセスするために使用されるインデックスを得るために、mは1以上であり、恐らくは2又は3である。しかし、この量子化は行われなくてもよい。即ち、p_stateはpState_current[bin]であってもよい。
2.次に、Rの量子化が実行される(上述したように、1つのR(及び1つの共通ビットストリームを持つ対応するL)がp_stateの全ての識別可能な値について使用/処理されるか、又は、1つのR(及び各R/Lのペア毎の関連付けられた部分的ビットストリームを持つ対応するL)がp_stateの識別可能な値ごとに使用/処理されるか、であり、後者の場合は、そのような値ごとに1つのビン符号器310を有することと同じになるであろう。)
q_index = Qtab[R>>q] (又は量子化の他の形態)
3.次に、R
LPSとRの決定が実行される。
R
LPS=Rtab[p_state][q_index];Rtabはp[p_state]・Q[q_index]についての事前に計算された値をその中に格納済みである。
R=R−R
LPS (即ち、Rはまるで「ビン」がMPSであったかのように、事前更新されている)
4.新たな部分的区間の計算:
(bin = 1 - valMPS)の場合、
L¬L+R
R¬R
LPS
5.LとRの再正規化、ビットの書き込み。
【0121】
同様に、(ここではコンテキスト割当部として作動する)パラメータ割当部の出力に接続されたエントロピー復号器は、以下のように動作してもよい:
0.割当部304は、確率パラメータと共にビン値を伝送する。確率はpState_current[bin]である。
1.従って、エントロピー復号化エンジンは、1)valLPSと、2)確率分布推定pState_current[bin]と共に、ビンに対する要求を受け取る。pState_current[bin]は、Rtabの識別可能な確率状態インデックスの数よりも多数の状態を有してもよい。その場合、pState_current[bin]は、例えばm個のLSBを無視することなどによって量子化されてもよい。ここで、1つのp_state、即ち次にテーブルRtabにアクセスするために使用されるインデックスを得るために、mは1以上であり、恐らくは2又は3である。しかし、この量子化は行わなくてもよい。即ち、p_stateはpState_current[bin]であってもよい。
2.次に、Rの量子化が実行される(上述したように、1つのR(及び1つの共通ビットストリームを持つ対応するV)が、p_stateの全ての識別可能な値について使用/処理されるか、又は、1つのR(及び各R/Lのペア毎の関連付けられた部分的ビットストリームを持つ対応するV)が、p_stateの識別可能な値ごとに使用/処理されるか、であり、後者の場合は、そのような値ごとに1つのビン符号器310を有することと同じになるであろう。)
q_index = Qtab[R>>q] (又は量子化の他の形態)
3.次に、R
LPSとRの決定が実行される。
R
LPS=Rtab[p_state][q_index];Rtabはp[p_state]・Q[q_index]についての事前に計算された値をその中に格納済みである。
R=R−R
LPS (即ち、Rはまるで「ビン」がMPSであったかのように、事前更新されている)
4.部分的区間の位置に基づくビンの決定:
(V
3R)の場合、
bin ¬ 1−valMPS(ビンはLPSとして復号化される。ビンバッファ選択部18は、このビン情報及びvalMPSを使用して実際のビン値を取得する。)
V¬V−R
R¬R
LPS
その他のとき、
bin ¬ valMPS (ビンはMPSとして復号化される。このビン情報及びvalMPSを使用して実際のビン値が取得される。)
5.Rの再正規化、1ビットの読出しとVの更新。
【0122】
上述したように、割当部4は各ビンに対してpState_current[bin]を割り当てる。その関連付けはコンテキストの選択に基づいて実行されてもよい。つまり、割当部4は、コンテキストインデックスctxIdxを使用してコンテキストを選択してもよく、そのインデックスには、それぞれのpState_currentが関連付けられている。確率の更新は、確率pState_current[bin]が現在のビンに適用される各回ごとに実行されてもよい。確率状態pState_current[bin]の更新は、符号化されたビットの値に基づいて実行される。
(bit = 1 - valMPS) の場合、
pState_current ← Next_State_LPS [pState_current]
(pState_current = 0) の場合、valMPS ← 1−valMPS
その他の場合
pState_current ← Next_State_MPS [pState_current]
【0123】
2つ以上のコンテキストが与えられた場合、その適応は、コンテキストごとに実行される。即ちpState_current[ctxIdx]が符号化のために使用され、次に現在のビン値を使用して更新される(それぞれ符号化又は復号化される)。
【0124】
以下に更に詳細に説明するように、以下の実施形態によれば、エンコーダとデコーダとは、任意ではあるが、異なるモード、即ち低複雑性(LC)及び高効率(HE)のモードで動作するよう構成されてもよい。この点については、以下においては主にPIPE符号化に関して(またLC及びHE−PIPEモードについて述べながら)説明する。しかし、複雑性のスケーラビリティの詳細に関する説明は、1つの共通のコンテキスト適応型算術エンコーダ/デコーダを使用する実施形態などのような、エントロピー符号化/復号化エンジンの他の構成へと容易に転用できる。
【0125】
以下に説明する実施形態によれば、両方のエントロピー符号化のモードは、次の点について共有可能である。即ち、
・(シンタックス要素列301と327についてそれぞれ)同一のシンタックス及びセマンティクス
・(CABACに関して現在指定されているように)全てのシンタックス要素について同一のバイナリゼーションスキーム(即ちバイナライザは活性されたモードに関係なく動作してもよい)
・同一のPIPE符号の使用(即ちビン符号器/復号器は、活性されたモードに関係なく動作してもよい)
・(CABACに関して現在指定されているように16ビットの初期化値の代わりに)8ビットの確率モデル初期化値の使用。
【0126】
一般的に言えば、LC-PIPEとHE-PIPEとは、各ビンのためにPIPE経路312を選択する複雑性などのような、処理の複雑性において異なっている。
【0127】
例えば、LCモードは次のような制限下に動作してもよい。即ち、各ビン(binIdx)のために、ただ1つの確率モデル、即ち1つのctxIdxが存在してもよい。つまり、LCPIPEの中にコンテキスト選択/適応が準備されなくてもよい。しかし、残余符号化に使用されるシンタックス要素など特定のシンタックス要素は、以下に更に説明するように、コンテキストを使用して符号化されてもよい。更に、全ての確率モデルは非適応型であってもよい。即ち、全てのモデルは(スライスタイプとスライスQPとの選択に依存する)適切なモデル確率を用いて各スライスの開始時に初期化されてもよく、また、そのスライスの処理を通じて固定されていてもよい。例えば、8個の異なるPIPE符号310/322に対応する8個の異なるモデル確率だけが、コンテキストのモデリング及び符号化の両方についてサポートされてもよい。残余符号化のための特定のシンタックス要素、即ちsignificance_coeff_flag と coeff_abs_level_greaterX (但し X=1,2)とは、それらのセマンティクスについては以下により詳細に説明するが、例えば4個のシンタックス要素から成る(少なくとも)複数のグループが、同一のモデル確率を用いて符号化/復号化されるように、確率モデルへと割り当てられてもよい。CABACと比較して、LC−PIPEモードは、凡そ同一のR−D性能と同一の処理能力とを達成できる。
【0128】
HE−PIPEはH.264のCABACと概念的に同様に構成されてもよいが、以下のような違いが存在する。即ち、バイナリー算術符号化(BAC)は、(LC−PIPEの場合と同様に)PIPE符号化によって置き換えられる。各確率モデル、即ち各ctxIdxは、pipeIdx と refineIdxとによって表現されてもよく、ここで、0...7の範囲内の値を有するpipeIdx は、8個の異なるPIPE符号のモデル確率を表している。この変化は、状態の内部的表現に影響を与えるだけであって、状態機械(即ち確率推定)の挙動そのものに対して影響を与えるものではない。以下に更に詳細に説明するように、確率モデルの初期化は上述したような8ビットの初期化値を使用してもよい。シンタックス要素coeff_abs_level_greaterX (但し X=1,2)、coeff_abs_level_minus3及び coeff_sign_flag(これらのセマンティクスについては以下の説明から明らかになるであろう)の後方スキャニングは、(例えば有意性マップの符号化などで使用される)前方スキャンと同じスキャニング経路で実行されてもよい。coeff_abs_level_greaterX (但し X=1,2)の符号化のためのコンテキストの導出もまた簡素化されてもよい。CABACと比較して、本願提案のHE−PIPEは、より良好な処理量で概ね同様のR−D性能を達成できる。
【0129】
例えば、直上で述べたコンテキスト適応型バイナリー算術符号化/復号化エンジンを様々なモードにおいて動作するようにレンダリングすることによって、直上で述べたモードを容易に形成できることは、理解しやすいことである。
【0130】
従って、本発明の第1の態様に係る実施形態によれば、データストリームを復号化するためのデコーダは、
図11に示すように構築されてもよい。そのデコーダは、インターリーブされたビットストリーム340などのデータストリーム401を復号化するためのものであり、そのビットストリーム340内には、ビデオデータなどのメディアデータが符号化されている。デコーダは、データストリーム401に依存して、低複雑性モードまたは高効率モードを活性化するよう構成された、モードスイッチ400を含む。この目的のために、データストリーム401は、バイナリーシンタックス要素などのシンタックス要素を含んでもよく、その場合、低複雑性モードが活性されるべきモードとなるバイナリー値1と、高効率モードが活性されるべきモードとなるバイナリー値0とを有してもよい。自明ではあるが、バイナリー値と符号化モードとの間の関係は切り替え可能であり、また、3つ以上の可能な値を有する非バイナリーのシンタックス要素も使用可能である。両方のモード間の実際の選択は、それぞれのシンタックス要素の受取りの前には未だ不明であるため、このシンタックス要素は、例えば固定の確率推定もしくは確率モデルを用いて符号化されるデータストリーム401のある先頭ヘッダの内部に含まれてもよく、又は、そのまま、即ちバイパスモードを使用して、データストリーム401内へと書き込まれてもよい。
【0131】
更に、
図11のデコーダは、複数のエントロピー復号器322を含み、その各々が、データストリーム401内の符号語を、シンボルから成る部分的シーケンス321へと変換するよう構成されてもよい。上述したように、デ・インターリーバ404が、エントロピー復号器322の入力を一方とし、データストリーム401が適用される
図11のデコーダの入力を他方として、それらの間に接続されてもよい。更に、既に上述したように、エントロピー復号器322の各々は、それぞれの確率区間と関連付けられてもよく、その場合、異なるエントロピー復号器の各確率区間が一緒になって、0から1の全体的確率区間(又はエントロピー復号器322が絶対シンボル値ではなくMPS及びLPSを扱っている場合には0から0.5)をカバーしてもよい。この点に関する詳細は、上述した通りである。後段においては、復号器の数は8個であって、各復号器に1つのPIPEインデックスが割り当てられていると仮定するが、しかし、他のいかなる個数もまた可能である。更に、これらコーダの内の1つであって、以下においては例示的にpipe_id 0 を有するコーダは、同等に確からしい(equi-probable)統計を有するビン、即ちそれらのビン値が1と0とを同等に確からしいと想定しているビンに対して最適化されている。この復号器はビンを単に次へと送るだけでもよい。それぞれの符号器310は、同様に作動する。最高確率を有するビン値の値、即ちvalMpsに依存した、選択部402及び502のそれぞれによるいかなるビン操作も行われないこともあり得る。換言すれば、それぞれの部分的ストリームのエントロピーは、既に最適である。
【0132】
更に、
図11のデコーダは選択部402を含み、この選択部は、複数のエントロピー復号器322の中の選択された1つからシンボル列326の各シンボルを回収するよう構成されている。上述したように、選択部402はパラメータ割当部316と選択部318とに分解されてもよい。デ・シンボライザ314は、シンボル列326をデ・シンボライズしてシンタックス要素列327を取得するよう構成されている。再構築部(リ・コンストラクタ)404は、シンタックス要素列327に基づいてメディアデータ405を再構築するよう構成されている。選択部402は、矢印406により示すように、低複雑性モードと高効率モードとのうちの活性化された1つに依存して、選択を実行するよう構成されている。
【0133】
既に上述したように、再構築部404は、シンタックス要素の固定されたシンタックス及びセマンティクス、即ちモードスイッチ400によるモード選択に関して固定されたものに作用する、予測的なブロック・ベースのビデオデコーダの一部であってもよい。つまり、再構築部404の構築は、モードが切替え可能であることによる影響を受けない。より厳密には、再構築部404は、モードスイッチ400がもたらすモードの切替え可能性に起因して、実装オーバーヘッドを増大させることがなく、さらに、少なくとも残余データ及び予測データに関する機能は、スイッチ400によって選択されたモードに関係なく同じである。同様のことがエントロピー復号器322に関しても当てはまる。これら全てのエントロピー復号器322は両方のモードにおいて再使用される。従って、
図11のデコーダが両方のモード、即ち低複雑性モードと高効率モードとに対して互換性を有しているが、追加的な実装オーバーヘッドがない。
【0134】
側面的な特徴として留意すべき点は、
図11のデコーダが1つのモード又は他のモードにおける自己充足型のデータストリームに対して作動できるだけではない点である。寧ろ、
図11のデータストリーム401とデコーダは、ビデオ又は何らかのオーディオピースの途中などのようなメディアデータの1ピースの間に、両方のモード間で切り替えることさえ可能であるように構成されてもよく、それにより、例えば電池の状態やその他の外部的または環境的条件に依存して、デコーダからエンコーダへのフィードバックチャネルを使用しながら復号化側の符号化複雑性を制御してもよく、それにより、モード選択を状況に応じてロック・ループ制御してもよい。
【0135】
従って、
図11のデコーダは、両方の場合即ちLCモードが選択されている場合とHEモードが選択されている場合とにおいて、同様に作動する。再構築部404は、シンタックス要素を使用して再構築を実行し、あるシンタックス構造指令(syntax structure prescription)を処理するか又はそれに従うことで、所定のシンタックス要素タイプの現在のシンタックス要素を要求する。デ・シンボライザ314は、再構築部404によって要求されたシンタックス要素のための有効なバイナリゼーションをもたらすために、幾つかのビンを要求する。自明ではあるが、バイナリーアルファベットの場合には、デ・シンボライザ314によって実行されるバイナリゼーションは、現在要求されているバイナリーシンタックスとして、それぞれのビン/シンボル326を再構築部404へと単に送るだけである。
【0136】
しかし、選択部402は、モードスイッチ400によって選択されたモードとは独立して作動する。選択部402の作動モードは、高効率モードにおいては複雑さが増し、低複雑性モードにおいては複雑さが低くなる傾向にある。さらに、以下の説明から分かるように、低複雑性モードにおける選択部402の作動モードはまた、エントロピー復号器322から連続的なシンボルを回収する際に選択部402がエントロピー復号器322間の選択を変化させるレートを減少させる傾向にある。換言すれば、低複雑性モードにおいて、直接的に連続するシンボルは、複数のエントロピー復号器322の中の同一のエントロピー復号器から回収される確率が高くなる。これにより、エントロピー復号器322からのシンボルの回収をより高速化できる。他方、高効率モードにおいては、選択部402の作動モードは、エントロピー復号器322間における選択を以下のように導く傾向にある。即ち、それぞれの選択されたエントロピー復号器322と関連付けられた確率区間が、選択部402によって現時点で回収されつつあるシンボルの実際のシンボル統計により近い状態で一致するような選択であって、その結果、高効率モードに従ってそれぞれのデータストリームを生成する際に、符号化側においてより良好な圧縮率をもたらす選択である。
【0137】
例えば、両方のモードにおける選択部402の異なる挙動は、以下のように実現されてもよい。例えば、選択部402は、所定のシンボルについて、高効率モードが活性化している場合には、複数のエントロピー復号器322間の選択をシンボル列326の以前に回収されたシンボルに依存して実行してもよく、低複雑性モードが活性化している場合には、シンボル列の以前に回収されたシンボルから独立して実行してもよい。シンボル列326の以前に回収されたシンボルに対する依存性は、コンテキスト適応性及び/又は確率適応性に基づいてもよい。これら両方の適応性は、選択部402における低複雑性モードの期間中はスイッチオフされてもよい。
【0138】
更なる実施形態によれば、データストリーム401は、スライス、フレーム、ピクチャのグループ、フレーム列又はその他のような連続的な部分を有する構造であってもよく、シンボル列の各シンボルが複数のシンボルタイプのうちのそれぞれ1つと関連付けられていてもよい。この場合、選択部402は、高効率モードが活性化している場合には、現在の部分の中の所定のシンボルタイプのシンボルについて、その選択を現在の部分の中の所定のシンボルタイプのシンボル列の以前に回収されたシンボルに依存して変化させるよう構成されてもよく、低複雑性モードが活性化されている場合には、その選択が現在の部分の中で一定を保つように構成されてもよい。つまり、選択部402は、所定のシンボルタイプについてエントロピー復号器322間の選択を変更可能としてもよいが、しかし、これらの変更は、連続的な部分間の遷移の間に発生するよう制限される。このような手法により、実際のシンボル統計の評価は、発生する時間事象が稀となるよう制限され、他方、符号化の複雑性は時間的大部分の中では低減される。
【0139】
更に、シンボル列326の各シンボルは、複数のシンボルタイプの内のそれぞれ1つと関連付けられていてもよく、選択部402は、高効率モードが活性化している場合には、所定のシンボルタイプの所定のシンボルについて、複数のコンテキストの内の1つをシンボル列326の以前に回収されたシンボルに依存して選択するよう構成され、かつエントロピー復号器322間の選択を選択されたコンテキストに関連する確率モデルに依存して実行すると共に、所定のシンボルに依存して、選択されたコンテキストに関連する確率モデルを更新するよう構成されてもよく、他方、低複雑性モードが活性化している場合には、複数のコンテキストの内の1つをシンボル列326の以前に回収されたシンボルに依存して選択するよう構成され、かつエントロピー復号器322間の選択を選択されたコンテキストに関連する確率モデルに依存して実行すると共に、選択されたコンテキストに関連する確率モデルを維持するよう構成されてもよい。つまり、選択部402は、両方のモードにおいて、あるシンタックス要素タイプに関してはコンテキスト適応性を使用できる一方で、LCモードの場合には、確率適応を抑制している。
【0140】
代替的に、確率適応を完全に抑制する代わりに、選択部402は、HEモードと比較してLCモードの確率適応の更新レートを単に減少させるだけでもよい。
【0141】
更に、可能性のあるLC−PIPE特有の態様、即ちLCモードの態様は、下記のように言い換えることもできるであろう。特に、非適応型の確率モデルをLCモードにおいて使用することが可能である。非適応型の確率モデルは、ハードコード化され、即ち全体的に一定の確率を有してもよく、又は、1つのスライスを処理する間を通してだけその確率が一定に保持され、よってスライスタイプ及びQP、即ち例えばスライスごとにデータストリーム401内に信号化されている量子化パラメータに依存して設定されてもよい。同一のコンテキストに割り当てられた連続的なビンは固定の確率モデルに従うと仮定することで、それらビンの内の複数個について、それらが同一のPIPE符号を使用して符号化されているとして、1つのステップで、即ち同一のエントロピー復号器を使用して復号化することが可能であり、また、復号化された各ビンの後の確率更新を省略できる。確率更新を省略することは、符号化および復号化プロセスの間の動作を節約できることになり、従ってまた複雑性を低減させ、ハードウエアの設計においても有意な簡素化をもたらすことになる。
【0142】
全ての又は幾つかの選択された確率モデルについて、このモデルを使用した所定数のビンの符号化/復号化が完了した後では確率更新が許可されるという方法で、非適応型の制約が軽減されてもよい。適切な更新区間は、複数のビンを一度に復号化する能力を持つ一方で、確率適応を可能にする。
【0143】
以下に、LC-PIPEとHE-PIPEとに共通でかつ複雑性においてスケーラブルな可能性のある態様について、より詳細に説明する。特に、以下においては、LC-PIPEモードとHE-PIPEモードに関して同一の方法で又は複雑性においてスケーラブルな方法で使用できる態様について説明する。複雑性においてスケーラブルであるとは、特別な部分を取り除くか又はその部分をそれより複雑でない何かによって置き換えることにより、LCの場合がHEの場合から導出されるという意味である。しかしながら、この説明の前に注意すべき点がある。それは、
図11の実施形態は、上述したコンテキスト適応型バイナリー算術符号化/復号化の実施形態へと容易に変換可能であるという点であり、その場合、選択部402及びエントロピー復号器322は1つのコンテキスト適応型バイナリー算術デコーダへと凝縮されて、データストリーム401を直接的に受け取り、現時点でデータストリームから導出されるべきビンのためのコンテキストを選択するであろうという点である。この点は、特にコンテキスト適応性及び/又は確率適応性に関して真実である。低複雑性モードにおいては、機能性/適応性の両方がスイッチオフされてもよく、又はより緩和されて設計されてもよい。
【0144】
例えば、
図11の実施形態を構成する際に、エントロピー復号器322を含むPIPEエントロピー・符号化ステージは、8個の系統的な可変−可変符号(variable-to-variable-codes)を使用することが可能である。即ち、各エントロピー復号器322が、上述したv2vタイプの復号器であってもよい。系統的なv2v符号を使用するPIPEの符号化概念は、v2v符号の個数を制限することで簡素化される。コンテキスト適応型バイナリー算術復号器の場合には、その復号器は、異なるコンテキストに対して同じ確率状態を取り扱うことも可能であり、それを−又はその量子化されたバージョンを−確率サブ分割のために使用することもできる。CABAC又は確率モデルの状態、即ち確率更新のために使用された状態から、PIPEids又はRtab内を参照するための確率インデックスへのマッピングは、表Aに示すようなものでもよい。
【0146】
この修正された符号化スキームは、複雑性においてスケーラブルなビデオ符号化の手法のための基礎として使用されてもよい。確率モード適応を実行する場合には、選択部402又はコンテキスト適応型バイナリー算術復号器はPIPE復号器322を選択してもよく、即ち、使用されるべきPIPEインデックスとRtab内への確率インデックスとをそれぞれ、(ここでは例示的に0〜62の範囲である)確率状態インデックスであって(コンテキストを介するなどにより)現時点で復号化されるべきシンボルに関連しているインデックスに基づいて、表Aに示すマッピングを用いて導出してもよく、また現時点で復号化されたシンボルに依存して、例えばMPS及びLPSの場合にそれぞれ参照されるべき次の確率状態インデックスを指摘している特定のテーブルウォーク遷移値(table walk transition values)を使用して、前記確率状態インデックスを更新してもよい。LCモードの場合には、後者の更新は行わなくてもよい。グローバルに固定された確率モデルの場合には、マッピングさえ行わなくてもよい。
【0147】
しかしながら、任意のエントロピー符号化の設定が使用可能であり、本明細書に示す技術は軽微な適応とともに使用されることも可能である。
【0148】
上述した
図11の説明では、シンタックス要素およびシンタックス要素タイプについて多少一般的に説明した。以下においては、変換係数レベルの複雑性を構成可能な符号化について説明する。
【0149】
例えば、再構築部404は、シンタックス要素列の一部分に基づいて、高効率モード又は低複雑性モードが活性化されているかに関わらず、変換係数レベル202の変換ブロック200を再構築するよう構成されてもよく、そのシンタックス要素列327のその部分が、変換ブロック200内の非ゼロの変換係数レベルの位置を示す1つの有意性マップを定義している有意性マップシンタックス要素をインターリーブされていない状態で含んでいてもよく、次に(その後に)、それら非ゼロの変換係数レベルを定義するレベルシンタックス要素を含んでもよい。特に、次のような要素が含まれてもよい。即ち、変換ブロック内の最後の非ゼロの変換係数レベルの位置を示すエンド位置シンタックス要素(last_significant_pos_x, last_significant_pos_y)と、第1のシンタックス要素(coeff_significant_flag)であって、それらシンタックス要素が一緒になって1つの有意性マップを定義しており、更に、変換ブロック(200)内のDC位置から最後の非ゼロの変換係数レベルの位置へと繋がる一次元経路(274)に沿って、各位置についてそれぞれの位置にある変換係数レベルが非ゼロであるか否かについて示している第1のシンタックス要素と、第1のバイナリーシンタックス要素に従って非ゼロの変換係数レベルが位置している一次元経路(274)の各位置について、それぞれの位置にある変換係数レベルが1よりも大きいか否かを示す第2のシンタックス要素(coeff_abs_greater1)と、第1のバイナリーシンタックス要素に従って1よりも大きい変換係数レベルが位置している一次元経路の各位置について、それぞれの位置にあるそれぞれの変換係数レベルが1を超える量を示す第3のシンタックス要素(coeff_abs_greater2, coeff_abs_minus3)と、が含まれてもよい。
【0150】
エンド位置シンタックス要素と第1のシンタックス要素と第2のシンタックス要素と第3のシンタックス要素との間の順序は、高効率モードと低複雑性モードとに関して同一であってもよく、更に、選択部402は、シンボルについてのエントロピー復号器322間の選択であって、デ・シンボライザ314がそのシンボルからエンド位置シンタックス要素、第1のシンタックス要素、第2のシンタックス要素及び/又は第3のシンタックス要素を取得するシンボルについての選択を、活性化されている低複雑性モード又は高効率モードに依存して異なるように実行するよう構成されてもよい。
【0151】
特に、選択部402は、デ・シンボライザ314が第1のシンタックス要素と第2のシンタックス要素とを取得するシンボル・サブ列の中の所定のシンボルタイプの各シンボルのために、その所定のシンボルタイプの各シンボルについて、シンボル・サブ列内の所定のシンボルタイプの以前に回収されたシンボルに依存して、複数のコンテキストの内の1つを選択するよう構成されてもよく、高効率モードが活性化されている場合には、選択されたコンテキストに関連する確率モデルに依存して選択を実行し、低複雑性モードが活性化されている場合には、サブ列の一連の連続的サブ部分に亘って選択が一定となるように、ピース毎に一定の方法で選択を実行するよう構成されてもよい。上述したように、サブ部分は、一次元経路274に沿って測定された場合にそれぞれのサブ部分が伸びる位置の数、又は、現在のコンテキストを用いて既に符号化されたそれぞれのタイプのシンタックス要素の数として測定されてもよい。つまり、バイナリーシンタックス要素のcoeff_significant_flag, coeff_abs_greater1 及び coeff_abs_greater2は、例えばHEモードにおける選択されたコンテキストの確率モデルに基づいて復号器322を選択することで、コンテキスト適応型で符号化される。確率適応もまた使用される。LCモードにおいては、各シンタックス要素coeff_significant_flag, coeff_abs_greater1 及び coeff_abs_greater2のために使用される異なるコンテキストも存在する。しかし、これらシンタックス要素の各々に関し、経路274に沿った第1部分についてはコンテキストが静的に保持され、経路274に沿った次の直後の部分への遷移部においてのみコンテキストが変化できる。例えば、各部分は、それぞれの位置に関してそれぞれシンタックス要素が存在するか否かとは関係なくブロック200の4、8、16個の位置分の長さを有すると定義されてもよい。例えば、coeff_abs_greater1及びcoeff_abs_greater2は、有意な位置、即ちcoeff_significant_flag が1である位置についてだけ存在する。代替的に、各部分は、結果として得られるそれぞれの部分がより多くのブロック位置に亘って延びるか否かとは関係なく、4、8、16個のシンタックス要素分の長さを有すると定義されてもよい。例えば、coeff_abs_greater1及びcoeff_abs_greater2は、有意な位置についてだけ存在する。従って、4個のシンタックス要素の各部分は4ブロック位置を超えて延びていてもよく、そこでは、経路274に沿ったその間の位置について、この位置におけるそれぞれのレベルがゼロであるために、coeff_abs_greater1及びcoeff_abs_greater2などのようなシンタックス要素が全く伝送されない。
【0152】
デ・シンボライザが第1のシンタックス要素と第2のシンタックス要素とを取得するシンボル・サブ列の中の所定のシンボルタイプのシンボルについて、選択部402は、その所定のシンボルタイプの各シンボルに対して、複数のコンテキストの内の1つを選択するよう構成されてもよく、その選択は、所定のシンボル値を有しかつ同一のサブ部分に属するシンボル・サブ列内の所定のシンボルタイプの以前に回収されたシンボルの数に依存してもよいし、又は、同一のサブ部分に属するシンボルの列内の所定のシンボルタイプの以前に回収されたシンボルの数に依存してもよい。上述した実施形態によれば、第1の選択肢ではcoeff_abs_greater1が正しく、第2の選択肢ではcoeff_abs_greater2が正しい。
【0153】
更に、第1のバイナリーシンタックス要素に従って1よりも大きい変換係数レベルが位置している一次元経路の各位置について、それぞれの位置にあるそれぞれの変換係数レベルが1を超える量を示す第3のシンタックス要素は、整数値のシンタックス要素、即ち coeff_abs_minus3を含んでもよい。デ・シンボライザ314は、制御パラメータによって制御可能なマッピング関数を使用して、シンボル列ワードのドメインを整数値のシンタックス要素のコ・ドメイン(co-domain)へとマップするよう構成されてもよく、更に、各整数値のシンタックス要素ごとの制御パラメータを、高効率モードが活性化されている場合には、先行する第3のシンタックス要素の整数値のシンタックス要素に依存して設定し、低複雑性モードが活性化されている場合には、サブ列の一連の連続的サブ部分に亘ってその設定が一定となるように、ピース毎に一定の方法でその設定を実行するよう構成されてもよい。但し、選択部402は、整数値のシンタックス要素へとマップされたシンボル列ワードのシンボルのために、複数のエントロピー復号器(322)の内の所定の1つを選択するよう構成され、その1つが、高効率モードと低複雑性モードとの両方において、ある均等確率分布に関連付けられていてもよい。つまり、デ・シンボライザさえも、スイッチ400により選択されるモードに依存して作動可能であることが、点線407によって示されている。制御パラメータのピース毎に一定の設定に代えて、デ・シンボライザ314は、制御パラメータを例えば現在のスライスの期間中一定に保持してもよく、又は、時間において全体的に一定に保持してもよい。
【0154】
次に、複雑性のスケーラブルなコンテキストモデリングについて説明する。
【0155】
コンテキストモデル・インデックスを導出するために、上方と左の近隣部の同じシンタックス要素を評価することは、普通の手法であり、HEの場合には、例えば動きベクトル差シンタックス要素に関して、頻繁に使用されている。しかし、この評価は比較的大きなバッファストレージを必要とし、シンタックス要素の直接的な符号化を許可しない。更に、より高度な符号化性能を達成するためには、より多くの有効な近隣部が評価されてもよい。
【0156】
好ましい一実施形態においては、近隣の正方形または長方形のブロック又は予測ユニットのシンタックス要素を評価する全てのコンテキストモデリング・ステージが、1つのコンテキストモデルに固定される。これは、コンテキストモデル選択ステージにおける適応性の無効化に等しい。その好ましい実施形態については、現在のCABACの設計とは違い、バイナリゼーションの後の、ビンストリングのビンインデックスに依存したコンテキストモデル選択は、修正されない。他の好ましい実施形態は、シンタックス要素についての近隣部の評価も用いた固定型コンテキストモデルに加えて、異なるビンインデックスについてのコンテキストモデルもまた固定される。この説明には、動きベクトル差や、変換係数レベルの符号化に関連するシンタックス要素についてのバイナリゼーション及びコンテキストモデル選択を含んでいない点に注意されたい。
【0157】
好ましい一実施形態においては、左の近隣部の評価だけが許可される。これにより、もはや最終のブロック又は符号化ユニットラインを格納する必要がなくなるため、処理チェーン内におけるバッファの削減がもたらされる。他の好ましい実施形態においては、同一の符号化ユニット内にある近隣部だけが評価される。
【0158】
好ましい一実施形態においては、全ての有効な近隣部が評価される。例えば、上方と左の近隣部に加えて、上方左、上方右および下方左の近隣部が有効性の場合に評価される。
【0159】
すなわち、
図11の選択部402は、高効率モードが活性化されている場合には、メディアデータのある所定のブロックに関連するある所定のシンボルのために、メディアデータのより多数の異なる近隣ブロックに関連するシンボル列の以前に回収されたシンボルを使用して、複数のコンテキストのうちの1つを選択し、かつその選択されたコンテキストに関連する確率モデルに依存して、エントロピー復号器322間の選択を実行するよう構成されてもよい。つまり、近隣ブロックは、時間及び/又は空間のドメインにおいて近隣であってもよい。空間的に近隣のブロックは、例えば
図1〜
図3において示されている。その場合、選択部402は、モードスイッチ400によるモード選択に応じてコンタクト適応を実行してもよく、その適応は、HEモードの場合にはLCモードの場合と比較して、より多数の近隣ブロックに関連する以前に回収されたシンボル又はシンタックス要素に基づいて実行されるため、上述したようにストレージオーバーヘッドを低減できる。
【0160】
次に、一実施形態に従って、複雑性において低減された動きベクトル差の符号化について説明する。
【0161】
H.264/AVCビデオコーデック標準においては、マクロブロックに関連する動きベクトルは、現在のマクロブロックの動きベクトルと、中央動きベクトル予測値との間の差(動きベクトル差−mvd)を信号化することで伝送される。エントロピーコーダとしてCABACが使用された場合には、mvdは以下のように符号化される。即ち、整数値のmvdは絶対値と正負符号の部分へと分割される。絶対値の部分は、切り詰められたユーナリー及び3次の指数ゴロムの組合せを使用して二値化(バイナライズ)され、結果として得られるビンストリングの接頭語及び接尾語として参照される。切り詰められたユーナリー・バイナリゼーションに関連するビンは、コンテキストモデルを使用しながら符号化され、指数ゴロムのバイナリゼーションに関連するビンは、バイパスモード、即ちCABACの0.5を有する固定された確率で符号化される。ユーナリー・バイナリゼーションは以下のように行われる。mvdの絶対値の整数値をnと仮定する。その場合、結果として得られるビンストリングは、n個の「1」と1個の後続の「0」とから構成される。一例として、n=4と仮定する。その場合は、ビンストリングは「11110」となる。切り詰められたユーナリーの場合には、ある限界値が存在し、もし値がこの限界値を超えた場合には、ビンストリングはn+1個の「1」を有する。mvdの場合には、限界値は9に等しい。つまり、9以上の絶対値mvdが符号化された場合には、9個の「1」という結果になり、ビンストリングは接頭語と接尾語から成る指数ゴロムのバイナリゼーションを用いたものとなる。切り詰められたユーナリー部分に関するコンテキストモデリングは、以下のように実行される。ビンストリングの第1のビンについて、上方及び左の近隣マクロブロックからの絶対値のmvdの値が、もし有効ならば取得される(有効でない場合はその値は0と推定される)。(水平又は垂直方向の)特定の成分についての合計が2よりも大きい場合には第2のコンテキストモデルが選択される。もしその絶対値合計が32よりも大きい場合には第3のコンテキストモデルが選択され、その他の場合(絶対値合計が3未満の場合)には第1のコンテキストモデルが選択される。更に、コンテキストモデルは各成分について異なっている。ビンストリングの第2のビンについて、第4のコンテキストモデルが使用され、第5のコンテキストモデルがユーナリー部分の残りのビンのために使用される。絶対値のmvdが9以上である場合、例えば切り詰められたユーナリー部分の全てのビンが「1」に等しい場合には、その絶対値のmvdの値と9との間の差が3次の指数ゴロムバイナリゼーションを用いてバイパスモードで符号化される。最後のステップにおいて、mvdの正負符号がバイパスモードで符号化される。
【0162】
エントロピーコーダとしてCABACを使用する場合のmvdについての最新の符号化技術が、高効率ビデオ符号化(HEVC)プロジェクトの現在のテストモデル(HM)の中に明記されている。HEVCにおいて、ブロックサイズは可変であり、動きベクトルによって特定される形状は予測ユニット(PU)と呼ばれている。上方及び左の近隣部のPUサイズは、現在のPUとは異なる形状及びサイズを有してもよい。従って、関連する場合は常に、上方及び左の近隣の定義は、ここでは現在のPUの上方−左のコーナーの上方及び左の近隣として言及される。符号化そのものに関しては、第1のビンについての導出処理だけが実施形態によって変化し得る。近隣部からのMVの絶対値合計を評価する代わりに、各近隣部が別個に評価されてもよい。ある近隣部の絶対値MVが有効であり、16を超える場合にはコンテキストモデル・インデックスが増加され、結果として第1のビンのためのコンテキストモデルと同数になってもよく、他方、残りの絶対値MVDレベル及び正負符号の符号化は、H.264/AVCと正に同一であってもよい。
【0163】
上述したmvdの符号化に関する技術においては、9個のビンまではコンテキストモデルを用いて符号化され、他方、mvdの残りの値は正負符号の情報と一緒に低複雑性バイパスモードで符号化されてもよい。この実施形態が説明する技術は、コンテキストモデルで符号化されるビンの数を減少させ、結果的にバイパスの数を増大させ、更にmvdの符号化のために必要なコンテキストモデルの数を減少させる。そのため、カットオフ値は9から1又は2へと減少する。つまり、絶対値mvdがゼロよりも大きいか否かを特定する第1のビンだけがコンテキストモデルを使用して符号化されるか、又は、絶対値mvdがゼロ及び1よりも大きいか否かを特定する第1及び第2のビンだけがコンテキストモデルを使用して符号化され、他方、残りの値はバイパスモード及び/又はVLC符号を使用して符号化される。ユーナリー符号又は切り詰められたユーナリー符号を使用せずに、VLC符号を使用するバイナリゼーションから生じた全てのビンは、低複雑性のバイパスモードを使用して符号化される。PIPEの場合には、ビットストリーム内への及びビットストリームからの直接的な挿入が可能である。更に、第1のビンについてのより良好なコンテキストモデル選択を導出するための上方及び左の近隣部の異なる定義が存在するときは、それが使用されてもよい。
【0164】
好ましい一実施形態においては、絶対値のMVD成分の残りの部分を二値化するために、指数ゴロム符号が使用される。そのため、指数ゴロム符号の次数は可変である。指数ゴロム符号の次数は次のように導出される。第1のビンについてのコンテキストモデルと、そのコンテキストモデルのインデックスとが導出されて符号化された後で、そのインデックスが指数ゴロムバイナリゼーション部分の次数として使用される。この好ましい実施形態においては、第1のビンのためのコンテキストモデルは1〜3の範囲にあり、その結果、インデックスは0〜2となり、これらが指数ゴロム符号の次数として使用される。この好ましい実施形態は、HEの場合について使用可能である。
【0165】
絶対値MVDの符号化における上述したような2×5のコンテキストを使用する技術の代替法として、9個のユーナリー符号バイナリゼーションビンを符号化するために、14個のコンテキストモデル(各成分について7個)が使用されてもよい。例えば、ユーナリー部分の第1及び第2のビンが、上述したように4個の異なるコンテキストを用いて符号化され得る一方で、第5のコンテキストが第3のビンのために使用され、第6のコンテキストが第4のビンのために使用されてもよく、また、第5〜第9のビンが第7のコンテキストを使用して符号化されてもよい。従って、この場合、14個のコンテキストが必要となり、残りの値だけが低複雑性バイパスモードで符号化できることさえ起こり得る。コンテキストモデルを用いて符号化されるビンの数を減少させて結果的にバイパスの数を増大させ、またMVDの符号化に必要とされるコンテキストモデルの数を減少させるための技術は、カットオフ値を例えば9から1又は2へと減少させることである。つまり、絶対値MVDがゼロよりも大きいか否かを特定する第1のビンだけがコンテキストモデルを使用して符号化されるか、又は、絶対値MVDがゼロ及び1よりも大きいか否かを特定する第1及び第2のビンだけがそれぞれのコンテキストモデルを使用して符号化され、他方、残りの値はVLC符号を使用して符号化される。VLC符号を使用するバイナリゼーションから生じた全てのビンは、低複雑性のバイパスモードを使用して符号化される。PIPEの場合には、ビットストリーム内へ及びビットストリームからの直接的な挿入が可能である。更に、ここに提案された実施形態は、第1のビンについてのより良好なコンテキストモデル選択を導出するための上方及び左の近隣部の異なる定義を使用する。これに加え、第1のビン又は第1及び第2のビンのために必要とされるコンテキストモデルの数を減少させるような方法で、コンテキストモデリングが修正されてもよく、その結果、更なるメモリー削減を実現し得る。また、上方の近隣部のような近隣部の評価を無効化することも可能であり、その結果、近隣部のmvd値の格納のために必要となるラインバッファ/メモリーの節約を実現することもできる。最後に、上記成分の符号化順序は、両方の成分についての接頭語のビン(即ち、コンテキストモデルを用いて符号化されるビン)の符号化の後で、バイパスビンの符号化を可能にするような方法で分割されてもよい。
【0166】
好ましい一実施形態においては、絶対値のmvd成分の残りの部分を二値化するために、指数ゴロム符号が使用される。そのため、指数ゴロム符号の次数は可変である。指数ゴロム符号の次数は次のように導出されてもよい。第1のビンについてのコンテキストモデルと、そのコンテキストモデルのインデックスとが導出された後で、そのインデックスが指数ゴロムバイナリゼーションの次数として使用される。この好ましい実施形態においては、第1のビンのためのコンテキストモデルは1〜3の範囲にあり、その結果、インデックスは0〜2となり、これが指数ゴロム符号の次数として使用される。この好ましい実施形態は、HEの場合について使用可能であり、コンテキストモデルの数は6へと削減される。再度コンテキストモデルの数を減少させ、従ってメモリーを節約するために、更なる実施形態においては、水平及び垂直成分が同一のコンテキストモデルを共有してもよい。その場合、3個のコンテキストモデルだけが必要とされる。更に、本発明の更なる好ましい実施形態においては、左の近隣部だけが評価の考慮対象となってもよい。この好ましい実施形態においては、(例えば0若しくは1の指数ゴロムパラメータとなる単一閾値16か、又は、0若しくは2の指数ゴロムパラメータとなる単一閾値32のように)閾値は無修正であり得る。この好ましい実施形態では、mvd値の格納のために必要となるラインバッファを節約できる。他の好適な実施形態においては、閾値が修正され、2及び16に等しくなる。その好適な実施形態については、合計で3個のコンテキストモデルがmvdの符号化のために必要となり、可能性のある指数ゴロムパラメータは0〜2の範囲となる。更なる好適な実施形態において、閾値は16及び32に等しい。この実施形態もHEの場合にとって適切である。
【0167】
本発明の更なる好適な実施形態において、カットオフ値は、9から2へと引き下げられる。この好適な実施形態では、第1及び第2のビンは、コンテキストモデルを用いて符号化されてもよい。第1のビンについてのコンテキストモデルの選択は、現状技術に沿って実行されてもよく、又は、上述した好ましい実施形態に沿って修正されてもよい。第2のビンについては、現状技術のように別のコンテキストモデルが選択される。更なる好ましい実施形態においては、第2のビンについてのコンテキストモデルは、左の近隣部のmvdを評価することで選択される。その場合、コンテキストモデル・インデックスは第1のビンのものと同一であるが、有効なコンテキストモデルは第1のビンのものとは異なる。合計で6個のコンテキストモデルが必要となる(成分同士がコンテキストモデルを共有している点に注意されたい)。ここでも、指数ゴロムパラメータは、第1のビンの選択されたコンテキストモデル・インデックスに依存してもよい。本発明の他の好適な実施形態においては、指数ゴロムパラメータは第2のビンのコンテキストモデル・インデックスに依存している。本発明のこの実施形態も、HEの場合に使用可能である。
【0168】
本発明の更なる好適な実施形態においては、両方のビンのためのコンテキストモデルは固定されており、左又は上方の近隣部を評価することで導出される訳ではない。この好適な実施形態に関しては、コンテキストモデルの合計数は2と等しい。本発明の更なる好適な実施形態においては、第1のビン及び第2のビンは同一のコンテキストモデルを共有する。結果的に、ただ1つのコンテキストモデルがmvdの符号化のために必要となる。本発明の両方の好適な実施形態においては、指数ゴロムパラメータが固定され、1に等しくてもよい。本発明のこの好適な実施形態は、HEとLCとの両方の構成にとって適切である。
【0169】
他の好適な実施形態において、指数ゴロム部分の次数は、第1のビンのコンテキストモデル・インデックスから独立して導出される。この場合、H.264/AVの通常のコンテキストモデル選択の絶対値合計が、指数ゴロム部分の次数を導出するために使用される。この好適な実施形態は、HEの構成にとって適切である。
【0170】
他の好適な実施形態において、指数ゴロム符号の次数は固定であって、0に設定される。別の好適な実施形態では、指数ゴロム符号の次数は固定であって、1に設定される。また別の好適な実施形態では、指数ゴロム符号の次数は2に固定される。更に別の実施形態では、指数ゴロム符号の次数は3に固定される。更に他の実施形態では、指数ゴロム符号の次数は、現在のPUの形状及びサイズに基づいて固定される。これらの提案された実施形態は、LCの場合に使用可能である。指数ゴロム部分の固定された次数は、コンテキストモデルを用いて符号化された少ない個数のビンを用いて考慮されることに注意されたい。
【0171】
ある好ましい実施形態においては、近隣部は以下のように定義される。上方のPUについては、現在のPUをカバーする全てのPUが考慮対象となり、最大値MVを有するPUが使用される。この方法は、左の近隣についても適用される。現在のPUをカバーする全てのPUが評価され、最大値MVを有するPUが使用される。他の好適な実施形態においては、現在のPUの上方及び左の境界をカバーする全てのPUからの平均絶対値動きベクトル値が第1のビンを導出するために使用される。
【0172】
上段で提案された好ましい実施形態において、符号化の順序は以下のように変更することも可能である。即ち、水平及び垂直方向に関して次々に(又はその逆に)、mvdが特定されなければならない。従って、2個のビンストリングが符号化される必要がある。エントロピー符号化・エンジンに関するモード切替え(即ちバイパスと通常モードの間の切替え)の数を最小化するために、第1のステップにおいては両方の成分に関するコンテキストモデルを用いて符号化されたビンを符号化し、次に第2のステップにおいてはバイパスモードで符号化されたビンを符号化することが可能である。これは、順序だけを述べていることに注意されたい。
【0173】
ユーナリー又は切り詰められたユーナリー・バイナリゼーションから得られるビンはまた、その値が現在のビンインデックスよりも大きいか否かを特定する1ビンインデックス毎に1つのフラグの等価固定長バイナリゼーションによっても、表現され得ることに留意されたい。一例として、mvdの切り詰められたユーナリー・バイナリゼーションのカットオフ値が2に設定された場合、値0、1、2に対して符号語は0、10、11となる。1ビンインデックス毎に1つのフラグを有する対応する等価固定長バイナリゼーションにおいては、ビンインデックス0(即ち第1のビン)のための1つのフラグは、絶対値mvdの値が0よりも大きいか否かを特定し、ビンインデックス1を有する第2のビンのための1つのフラグは、絶対値mvdの値が1よりも大きいか否かを特定する。第1のフラグが1と等しいときだけ第2のフラグが符号化される場合には、結果として同じ符号語0、10、11が得られる。
【0174】
次に、一実施形態に従う確率モデルの内部状態の複雑性がスケーラブルな表現について説明する。
【0175】
HE−PIPEのセットアップでは、確率モデルの内部状態は、それを用いてビンを符号化した後で更新される。更新された状態は、古い状態と符号化されたビンの値とを使用して、状態遷移テーブル・ルックアップ(state transition table lookup)によって導出される。CABACの場合には、1つの確率モデルは63個の異なる状態を持つことができ、そこでは各状態が区間(0.0,0.5)内の1つのモデル確率と対応している。これら状態の各々は、2個のモデル確率を実現するために使用される。その状態に割り当てられた確率に加え、1.0からその確率を差し引いたものも使用され、valMpsと呼ばれるフラグが、その確率又は1.0からその確率を差し引いたものが使用されたかどうかを記憶する。そのため、合計で126個の状態になる。そのような確率モデルをPIPE符号化概念を用いて使用するために、126個の状態の各々は有効なPIPEコーダの内の1つへとマップされる必要がある。PIPEコーダの現在の実装例においては、この点はルックアップテーブルを使用して行われている。そのようなマッピングの一例は、表Aに示されている。
【0176】
以下の実施形態は、内部状態をPIPEインデックスへと変換するためのルックアップテーブルの使用を避けるために、確率モデルの内部状態がどのように表現され得るかを説明するものである。確率モデルの内部状態変数からPIPEインデックスを抽出するためには、単に、ある簡素なビットマスキング操作が必要とされるのみである。確率モデルの内部状態の、複雑性がスケーラブルであるこの新規な表現は、2つのレベルを持つ方法で設計されている。低複雑性の操作が必須であるようなアプリケーションについては、第1レベルだけが使用される。そのレベルは、関連するビンを符号化又は復号化するために使用されるpipeインデックス及びフラグvalMpsだけを記述する。上述したPIPEエントロピー符号化・スキームの場合には、第1レベルは、8個の異なるモデル確率の間を区別するために使用されてもよい。従って、第1レベルは、pipeIdx のための3ビットと、valMpsフラグのための更なる1ビットとを必要とするであろう。第2レベルでは、第1レベルの粗い確率範囲の各々が、確率の表現をより高度な分解能でサポートする複数のより小さな区間へと精製(refine)される。このようなより詳細な表現によって、確率推定値(probability estimators)のより正確な操作が可能となる。一般的には、それは高度なRD性能を目指す符号化アプリケーションにとって適切である。一例として、PIPEを用いた確率モデルの内部状態のこの複雑性がスケーラブルな表現は、以下のように示される。
【0178】
第1及び第2のレベルは、単一の8ビットメモリ内に記憶される。第1のレベル−PIPEインデックスと最有意ビット(most significant bit)についてのMPSの値−を記憶するために4ビットが必要であり、別の4ビットは第2のレベルを記憶するために使用される。CABAC確率推定値の挙動を行うために、各PIPEインデックスは、何個のCABAC状態がPIPEインデックスにマップされたかに依存して、特定数の許可された精製インデックス(refinement indeices)を有している。例えば、表Aのマッピングについての各PIPEインデックス当たりのCABAC状態の数を表Bに示す。
【0180】
ビンの符号化又は復号化の処理の間、PIPEインデックス及びvalMpsは、単純なビットマスク又はビットシフト操作を使用して、直接的にアクセスされ得る。低複雑性符号化処理は第1レベルの4ビットだけを要求し、高効率符号化処理は追加的に第2レベルの4ビットを利用して、CABAC確率推定値の確率モデル更新を実行する。この更新を実行するために、状態遷移ルックアップテーブルは、オリジナルテーブルと同一の状態遷移を実行する一方で、複雑性においてスケーラブルである2レベルの状態の表現を使用するよう設計されてもよい。オリジナル状態遷移テーブルは、2×63個の構成要素から成る。各入力状態について、そのテーブルは2個の出力状態を含む。複雑性がスケーラブルである表現を使用する場合、状態遷移テーブルのサイズは、テーブルサイズの許容可能な増大量である2×128の構成要素を超えることはない。この増大量は、精製インデックスを表現するためにどれだけ多数のビットが使用されるかに依存しており、CABAC確率推定値の挙動を正確に模倣するためには、4ビットが必要である。しかし、各pipeインデックスについて8個以下の状態しか許可しないようにCABAC状態の縮小された集合に対して作動できる、異なる確率推定値が使用され得る。従って、精製インデックスを表現するために使用されるビットの数を適応することで、メモリ消費を、符号化処理の所与の複雑性レベルに合致させることができる。CABACを用いたモデル確率の内部状態−64個の確率状態インデックスが存在する−とは異なり、モデル確率を特定のPIPE符号へとマップするためにテーブル・ルックアップを使用することが回避され、更なる変換は不要となる。
【0181】
次に、一実施形態に係る複雑性がスケーラブルなコンテキストモデルの更新について説明する。
【0182】
コンテキストモデルを更新するために、その確率状態インデックスは、1つ以上の以前に符号化されたビンに基づいて更新されてもよい。HE−PIPEのセットアップにおいては、この更新は、各ビンの符号化又は復号化の後に実行される。反対に、LC−PIPEのセットアップにおいては、この更新は一度も実行されなくてもよい。
【0183】
しかし、コンテキストモデルの更新を複雑性においてスケーラブルな方法で実行することは可能である。つまり、コンテキストモデルを更新するか否かの決定は、多様な局面に基づいてもよい。例えば、あるコーダのセットアップは、例えばシンタックス要素coeff_significant_flagのコンテキストモデルのような特定のコンテキストモデルだけについては更新を実行できない一方で、他の全てのコンテキストモデルについては常に更新を実行してもよい。
【0184】
換言すれば、選択部402は、幾つかの所定のシンボルタイプの各々のシンボルについて、エントロピー復号器322間での選択を実行するよう構成され、その場合、それぞれの所定のシンボルに関連するそれぞれの確率モデルに依存して、低複雑性モードにおいては高効率モードの場合よりも所定のシンボルタイプの数が小さくなるように選択してもよい。
【0185】
更に、コンテキストモデルを更新するかどうかを制御する基準は、例えばビットストリームパケットのサイズやそれまでに復号化されたビンの数であってもよく、又は、コンテキストモデルに関する特定の固定数若しくは可変数のビンを符号化した後にだけ更新を実行してもよい。
【0186】
コンテキストモデルを更新するかどうかを決定するこのスキームを用いて、複雑性がスケーラブルであるコンテキストモデル更新が実装され得る。その更新は、コンテキストモデルの更新が実行されるビットストリーム内のビンの部分を増大させるか又は減少させることができる。コンテキストモデルの更新数が多ければ多い程、符号化効率が良好となり、かつ演算上の複雑性が増す。このように、上述のスキームを用いて、複雑性においてスケーラブルなコンテキストモデル更新が達成可能となる。
【0187】
好適な一実施形態において、コンテキストモデル更新は、シンタックス要素coeff_significant_flag, coeff_abs_greater1, 及び coeff_abs_greater2を除く全てのシンタックス要素のビンに関して実行される。
【0188】
更なる実施形態において、コンテキストモデル更新は、シンタックス要素coeff_significant_flag, coeff_abs_greater1, 及び coeff_abs_greater2のビンに関してだけ実行される。
【0189】
更なる実施形態において、コンテキストモデル更新は、あるスライスの符号化又は復号化が開始したときに、全てのコンテキストモデルについて実行される。特定の所定数の変換ブロックが処理された後に、コンテキストモデル更新は、そのスライスの終端に到達するまで全てのコンテキストモデルについて無効化される。
【0190】
例えば選択部402は、所定のシンボルタイプのシンボルに関し、エントロピー復号器322間の選択を、その所定のシンボルタイプに関連する確率モデルに依存して、その関連する確率モデルの更新と共に又は更新なしに実行してもよく、その場合、所定のシンボルタイプのシンボルについての選択が上記更新と共に実行されるシンボル列の学習段階(learning phase)の長さが、低複雑性モードにおいては高効率モードよりも短くなるように構成されてもよい。
【0191】
別の好ましい実施形態は、前述した好ましい実施形態と同様であるが、但し、この実施形態では、コンテキストモデルの内部状態の複雑性がスケーラブルな表現を使用しており、その方法は、1つのテーブルが全てのコンテキストモデルの「第1部分」(valMpsとpipeIdx)を記憶し、第2のテーブルが全てのコンテキストモデルの「第2部分」(refineIdx)を記憶するという方法である。(前述した好ましい実施形態において説明したように)コンテキストモデル更新が全てのコンテキストモデルに関して無効化される点においては、「第2部分」を記憶しているテーブルが不要となり、従って削除され得る。
【0192】
次に、一実施形態に係るビン列のためのコンテキストモデル更新について説明する。
【0193】
LC−PIPEの構成においては、タイプcoeff_significant_flag, coeff_abs_greater1、及び coeff_abs_greater2のシンタックス要素のビンが、複数の部分集合へとグループ化される。各部分集合について、そのビンを符号化するために単一のコンテキストモデルが使用される。この場合、この列のある固定数のビンを符号化した後で、コンテキストモデル更新が実行されてもよい。これは、以下においてはマルチビン更新と呼ばれる。しかし、この更新は、最後のビン及びコンテキストモデルの内部状態を使用する更新とは異なっていてもよい。例えば、符号化されたビンごとに、1つのコンテキストモデル更新ステップが実行されてもよい。
【0194】
以下に、8個のビンから成る例示的な部分集合の符号化についての例を挙げる。文字「b」は1つのビンの復号化を表し、文字「u」はコンテキストモデルの更新を表す。LC−PIPEの場合には、コンテキストモデル更新を実行せずに、ビン復号化だけが実行される。
bbbbbbbb
【0195】
HE-PIPEの場合には、各ビンの復号化の後にコンテキストモデル更新が実行される。
bubububububububu
【0196】
複雑性を幾分減少させるために、コンテキストモデル更新はビン列の後に実行されてもよい(この例では各4個のビンの復号化の後にこれら4個のビンの更新が実行される)。
bbbbuuuubbbbuuuu
【0197】
つまり、選択部402は、所定のシンボルタイプのシンボルに関し、エントロピー復号器322間の選択を、その所定のシンボルタイプに関連する確率モデルに依存して、その関連する確率モデルの更新と共に若しくは更新なしに実行するよう構成されてもよく、その場合、上記更新と共に所定のシンボルタイプのシンボルのための選択が実行される回数が、低複雑性モードにおいては高効率モードよりも低くなるように構成されてもよい。
【0198】
この場合、4個のビンの復号化の後で、それら復号化されたばかりの4個のビンに基づいて4個の更新ステップが続く。これら4個の更新ステップは、特別なルックアップテーブルの参照を用いた単一のステップによっても実行され得る点に留意されたい。このルックアップテーブルは、4個のビンの可能な各組合せとコンテキストモデルの可能な各内部状態とについて、4つの従来の更新ステップの後で結果として得られる新たな状態を記憶する。
【0199】
あるモードにおいては、シンタックス要素coeff_significant_flagのためにマルチビン更新が使用される。他の全てのシンタックス要素に関しては、コンテキストモデル更新は使用されない。マルチビン更新ステップが実行される前に符号化されるビンの数は、nに設定される。その集合のビンの数がnによって割り切れない場合には、1〜n−1個のビンは、最後のマルチビン更新の後でその部分集合の末尾に残る。これらビンの各々について、これら全てのビンの符号化の後で、従来の単一ビン更新が実行される。数nは1よりも大きい任意の正の数であってよい。他のモードは、以前のモードと同一であってもよい。但し、マルチビン更新が(coeff_significant_flag だけに代えて)coeff_significant_flag、coeff_abs_greater1、及びcoeff_abs_greater2の任意の組合せについて実行される。従って、このモードは他のモードよりも複雑になる可能性がある。(マルチビン更新が使用されない)他の全てのシンタックス要素は、2つの互いに素な部分集合へと分割されることができ、ここで、これら部分集合の内の1つについて、単一ビン更新が使用され、他の部分集合については、コンテキストモデル更新は使用されない。可能性のある任意の互いに素な部分集合(空の部分集合を含む)が有効である。
【0200】
代替的な実施形態において、マルチビン更新は、マルチビン更新ステップの直前に符号化された最後のm個のビンだけに基づいてもよい。mは、nよりも小さい任意の自然数であってもよい。従って、復号化は以下のように実行されてよい。即ち、
bbbbuubbbbuubbbbuubbbb・・・
但し、n=4かつm=2である。
【0201】
つまり、選択部402は、所定のシンボルタイプのシンボルに関し、エントロピー復号器322間の選択をその所定のシンボルタイプに関連する確率モデルに依存して実行してもよく、その選択と共に、所定のシンボルタイプのm個の最近のシンボルに基づいて、所定のタイプのn番目のシンボル毎にその関連する確率モデルを更新してもよく、低複雑性モードにおいては比n/mが高効率モードよりも高くなるよう構成されてもよい。
【0202】
更なる好適な実施形態においては、シンタックス要素coeff_significant_flagについて、HE−PIPEに関して上述したようなローカルテンプレートを用いるコンテキストモデリングスキームが、コンテキストモデルをシンタックス要素のビンに対して割り当てるために使用されてもよい。しかしながら、これらビンについて、コンテキストモデル更新は使用されない。
【0203】
更に、選択部402は、所定のシンボルタイプのシンボルについて、複数のコンテキストの内の1つをシンボル列の以前に回収されたシンボルの数に依存して選択し、かつエントロピー復号器322間の選択を、選択されたコンテキストに関連する確率モデルに依存して実行してもよく、その場合、コンテキストの数及び/又は以前に回収されたシンボルの数が低複雑性モードにおいては高効率モードよりも低くなるようしてもよい。
【0204】
<8ビットの初期化値を使用する確率モデル初期化>
この章では、現状技術のビデオ符号化標準H.265/AVCの場合のような2個の8ビット値の代わりに、いわゆる8ビットの初期化値を使用する、複雑性がスケーラブルな確率モデルの内部状態の初期化プロセスについて説明する。この8ビットの初期化値は、H.264/AVCのCABACにおける確率モデルのために使用される初期化値のペアに匹敵する、2つの部分から構成される。これら2つの部分は、あるQPから(例えばPIPEインデックスの形態で)特別な確率を表現する確率モデルの内部状態を計算するための線形方程式の2個のパラメータを表現している。
−第1部分は傾きを記述し、それは、符号化又は復号化の間に使用される量子化パラメータ(QP)に対する内部状態の依存性を利用するものである。
−第2部分は、所与のQPにおけるPIPEインデックス及びvalMpsを定義する。
【0205】
所与の初期化値を使用して確率モデルを初期化するために、2つの異なるモードが有効である。第1モードはQP独立型の初期化と呼ばれる。それは、全てのQPのための初期化値の第2部分に定義されたPIPEインデックス及びvalMpsだけを使用する。これは、傾きが0に等しい場合と同じである。第2モードはQP依存型の初期化と呼ばれ、それは、追加的に初期化値の第1部分の傾きを使用して、PIPEインデックスを変更しかつ精製インデックスを定義する。8ビット初期化値の2つの部分は、次のように表される。
【0207】
それは2個の4ビット部分から成る。第1部分は、1つのアレイ内に記憶されていた16個の異なる所定の傾きの内から1つを指し示す、あるインデックスを含む。所定の傾きは、7個の負の傾き(傾きインデックス0〜6)と、ゼロと等しい1つの傾き(傾きインデックス7)と、8個の正の傾き(傾きインデックス8〜15)とから成る。傾きは表C内に示されている。
【0209】
浮動小数点演算の使用を回避するために、全ての値は256のファクタによってスケールされる。第2部分は、確率区間p=0とp=1との間のvalMps=1の上昇する確率を具体化するPIPEインデックスである。換言すれば、PIPEコーダnは、PIPEコーダn−1よりも高いモデル確率で作動しなければならない。各確率モデルについて、1つのPIPE確率インデックスが有効であり、そのインデックスにより、その確率区間がQP=26についてp
valMPs=1の確率を含むPIPEコーダが識別される。
【0211】
QPと8ビット初期化値とは、y=m*(QP−QPref)+256*bの形態を有する単純な線形方程式を演算することにより、確率モデルの内部状態の初期化を計算する上で必要である。mは、傾きインデックス(8ビット初期化値の第1部分)を使用して表Cから導出された傾きを定義しており、bは、QPref=26におけるPIPEコーダ(8ビット初期化値の第2部分:「PIPE確率インデックス」)を示すことに注意されたい。そのとき、yが2047よりも大きい場合、valMpsは1であり、pipeIdxは(y−2048)>>8と等しい。その他の場合には、valMpsは0であり、pipeIdxは(2047−y)>>8と等しい。valMpsが1と等しい場合、精製インデックスは、(((y−2048)&255)*numStates)>>8と等しい。その他の場合には、精製インデックスは、(((2047−y)&255)*numStates)>>8と等しい。両方の場合において、numStatesは、表Bに示されたpipeIdxのCABAC状態の数と等しい。
【0212】
上述のスキームは、PIPEコーダとの組合せの中で使用されるだけではなく、上述のCABACスキームとの組合せにおいても使用可能である。PIPEがない場合、幾つかのCABAC状態、即ちPIPEIdx (即ち pState_current[bin]のそれぞれ最有意ビット)ごとの確率更新の状態遷移が実行される確率状態(pState_current[bin])は、実際にはCABAC状態のピース毎の線形補間をQPに依存して実現させるパラメータの一集合に過ぎない。更に、パラメータnumStatesが同じ値を全てのPIPEIdxのために使用する場合には、このピース毎の線形補間はまた、仮想的に無効化されることもできる。例えば、全ての場合についてnumStatesを8へと設定することは、全体で16*8個の状態を生じさせ、精製インデックスの演算は、valMpsが1と等しい場合の((y−2048)&255)>>5、又は、valMpsが0と等しい場合の((2047−y)&255)へと簡易化する。この場合、valMpsとPIPEIdxと精製インデックスとを使用した表現を、H.264/AVCのオリジナルCABACによって使用される表現へと逆にマッピングすることは、非常に簡単である。CABAC状態は、(PIPEIdx<<3)+精製インデックスとして与えられる。この点については、以下に
図16を参照しながら更に説明する。
【0213】
8ビット初期化値の傾きがゼロと等しくない場合、又は、QPが26と等しくない場合には、符号化又は復号化処理のQPを用いた線形方程式を使用することで、内部状態を演算する必要がある。傾きがゼロと等しい場合、又は、現在の符号化処理のQPが26と等しい場合には、8ビット初期化値の第2部分は、確率モデルの内部状態を初期化するために直接的に使用可能である。その他の場合には、結果的に得られる内部状態の小数部(decimal part)が、特定のPIPEコーダの限界値の間の線形補間によって、高効率符号化のアプリケーションにおける精製インデックスを決定するために更に利用されてもよい。この好ましい実施形態においては、線形補間は、小数部と現在のPIPEコーダに有効な精製インデックスの合計数とを単純に乗算し、その結果を最も近い整数の精製インデックスへとマッピングすることによって実行される。
【0214】
確率モデルの内部状態の初期化のプロセスは、PIPE確率インデックス状態の数に関連して変化できる。特に、PIPEコーダE1を使用している同等に確からしいモードの二重の発生、即ちMPSが1又は0である間を区別する2個の異なるPIPEインデックスの使用は、以下のように回避でき得る。ここでも、このプロセスは、スライスデータの解析の開始期間中に発動されることができ、更に、このプロセスの入力は、表Eに示すような8ビットの初期化値であってもよく、それらは、例えば初期化されるべき各コンテキストモデルについてのビットストリーム内で伝送されてもよい。
【0216】
最初の4ビットはある傾きインデックスを定義し、ビットb4〜b7をマスキングすることによって回収される。各傾きインデックスに対して1つの傾き(m)が特定され、これを表Fに表す。
【0218】
ビットb0〜b3、即ち8ビット初期化値の最後の4ビットは、probIdxを識別し、所定のQPにおける確率を記述する。probIdx 0は、値0を有するシンボルについての最高確率を示し、probIdx 14は、値1を有するシンボルについての最高確率を示す。表Gは、各probIdxについて、対応するpipeCoderとその valMpsとを示す。
【0220】
内部状態の計算は、両方の値を用いて、y=m*x+256*bのような線形方程式を使用することで実行され、ここで、mは傾きを示し、xは現在のスライスのQPを示し、bは以下に説明するようにprobIdxから導出される。このプロセス内の全ての値は256のファクタでスケールされ、浮動小数点演算の使用が回避される。このプロセスの出力(y)は現在のQPにおける確率モデルの内部状態を表現しており、8ビットメモリ内に格納される。表Gに示すように、内部状態はvalMpsとpipeIdxとrefineIdxとから構成される。
【0222】
refineIdxとpipeIdxとの割り当ては、CABAC確率モデルの内部状態(pStateCtx)と類似し、表Hに示す。
【0224】
ある好適な実施形態では、probIdxはQP26において定義される。8ビットの初期化値に基づいて、1つの確率モデルの内部状態(valMps、pipeIdx及びrefineIdx)は、以下の疑似コードで記述されるように処理される。
【0225】
上記疑似コードに示されるように、refineIdxは、pipeIdxの区間の間を線形的に補間し、その結果を対応するrefineIdxへと量子化することで計算される。オフセットは、各pipeIdxについてのrefineIdxの合計数を特定する。fullCtxState/256の区間[7,8)は半分に分割される。区間[7,7.5)は、pipeIdx=0及びvalMps=0へとマップされ、区間[7.5,8)は、pipeIdx=0及びvalMps=1へとマップされる。
図15は、内部状態を導出するプロセスを説明し、fullCtxState/256のpStateCtxへのマッピングを示す。
【0226】
傾きは、probIdx及びQPの依存性を示す点に注意されたい。8ビットの初期化値のslopeIdxが7と等しい場合には、結果として得られる確率モデルの内部状態は全てのスライスQPについて同一となり、よって、内部状態の初期化プロセスはスライスの現在のQPから独立したものとなる。
【0227】
つまり、選択部402は、量子化ステップサイズQPを示すシンタックス要素を使用して、全体ストリーム又は次のスライスなどであるデータストリームの後続部分を復号化する際に使用されるべきpipeインデックスを初期化してもよく、量子化ステップサイズQPとは、この後続部分のデータであってその中に含まれている変換係数レベルなどのデータを、このシンタックス要素をあるインデックスとして使用して、LCとHEとの両方のモードに共通の1つのテーブルへと量子化するために使用されたものである。表Dのようなテーブルは、各シンボルタイプについてのそれぞれの参照QPrefに関するpipeインデックス、又は、各シンボルタイプについての他のデータを含んでもよい。現在の部分の実際のQPに依存して、選択部は、実際のQP及びQPそれ自身によって示されるそれぞれのテーブルエントリーaを使用して、aと(QP−QPref)との乗算などにより、pipeインデックス値を演算してもよい。LCモードとHEモードとのただ1つの違いは、選択部が、LCモードの場合はHEモードよりも低い精度で結果を演算するという点である。選択部は、例えば演算結果の整数部分だけを使用してもよい。HEモードにおいては、小数部などのようなより高い精度の残余が、より低い精度又は整数の部分によって示されるそれぞれのpipeインデックスに対して有効な精製インデックスの内の1つを選択するために、使用される。精製インデックスは、HEモードで(潜在的にはより稀ではあるがLCモードでも)使用され、上述したテーブルウォークを使用することなどによって、確率適応が実行される。現在のpipeインデックスについての有効なインデックスをその高域側境界に維持する場合には、その高いpipeインデックスは、次に、精製インデックスを最小化することで選択される。現在のpipeインデックスについての有効なインデックスをその低域側境界に維持する場合には、その次の低いpipeインデックスは、次に、精製インデックスを新たなpipeインデックスについて有効な最大値へと最大化することで、選択される。pipeインデックスと精製インデックスは確率状態を定義するが、部分的ストリーム間の選択については、選択部はpipeインデックスだけを使用する。精製インデックスは、確率モデルをより近く、又はより細密な精度で追跡する役割だけを果たす。
【0228】
しかしながら、上述の説明は、複雑性におけるスケーラブル性が、
図7〜
図17のPIPE又はCABACの符号化概念から独立して、
図12に示すデコーダを用いても達成可能であることを示している。
図12のデコーダは、メディアデータがその中に符号化されているデータストリーム601を復号化するものであり、データストリーム601に依存して低複雑性モード又は高効率モードを活性化するよう構成されたモードスイッチ600と、データストリーム601から−直接的又は例えばエントロピー復号化を介して−取得されたシンボル列603を、制御パラメータによって制御可能なマッピング関数を使用してデ・シンボライズすることで、整数値のシンタックス要素604を取得するよう構成されたデ・シンボライザ602と、を備える。前記マッピング関数は、シンボル列ワードのドメインを整数値のシンタックス要素のコ・ドメインへとマッピングするためのものである。再構築部605は、整数値のシンタックス要素に基づいて、メディアデータ606を再構築するよう構成されている。デ・シンボライザ602は、そのデ・シンボル化を以下のように実行するよう構成されている。即ち、制御パラメータは、矢印607によって示すように、高効率モードが活性化されている場合には、データストリームに応じて第1レートで変化し、他方、低複雑性モードが活性化されている場合には、制御パラメータは、データストリームとは無関係に一定であるか、又はデータストリームに応じて変化するものの、第1レートよりも低い第2レートで変化するよう構成されている。例えば、制御パラメータは、以前にデ・シンボライズされたシンボルに応じて変化してもよい。
【0229】
上述の実施形態のうちの幾つかは
図12の態様を使用していた。列327内のシンタックス要素coeff_abs_minus3 と MVDとは、例えば矢印407によって示すように、選択されたモードに依存してデ・シンボライザ314内で二値化されており、再構築部605は、これらシンタックス要素を再構築のために使用していた。自明な点として、
図11と
図12の両態様は容易に組合せ可能であるが、
図12の態様はまた、他の符号化環境とも組合せ可能である。
【0230】
例えば、上述した動きベクトル差符号化を参照されたい。デ・シンボライザ602は、以下のように構成されてもよい。即ち、マッピング関数は、カットオフ値未満の整数値シンタックス要素のドメインの第1区間内では、マッピングを実行するために切り詰められたユーナリー符号を使用し、カットオフ値以上の整数値シンタックス要素のドメインの第2区間内では、カットオフ値のための切り詰められたユーナリー符号の形態を持つ接頭部とVLC符号語の形態を持つ接尾語との組合せを使用するよう構成されてもよく、ここで、デコーダはエントロピー復号器608を含んでもよく、そのエントロピー復号器608は、切り詰められたユーナリー符号の幾つかの第1ビンを可変の確率推定を用いるエントロピー復号化を使用してデータストリーム601から導出し、VLC符号語の幾つかの第2ビンを一定の同等確率を有するバイパスモードを使用して導出するよう構成されてもよい。HEモードにおいては、エントロピー符号化は、矢印609で示すように、LC符号化よりも複雑であり得る。つまり、コンテキスト適応性及び/又は確率適応は、HEモードにおいて適用され、LCモードにおいては抑制されてもよく、又は、多様な実施形態に関して上述したように、複雑性が他の条件に関してスケールされてもよい。
【0231】
メディアデータをデータストリームへと符号化するための、
図11のデコーダに適合するエンコーダを
図13に示す。このエンコーダは、低複雑性モード又は高効率モードの活性化をデータストリーム501内で信号化するよう構成された挿入部500と、メディアデータ505をシンタックス要素列506へとプリコード(precode)するよう構成された構築部(コンストラクタ)504と、シンタックス要素列506をシンボル列508へとシンボル化するよう構成されたシンボライザ507と、各々がシンボルの部分的な列をデータストリームの符号語へと変換するよう構成された複数のエントロピー符号器310と、シンボル列508の各シンボルを複数のエントロピー符号器310内の選択された1つへと送るよう構成された選択部502と、を含んでもよく、ここで選択部502は、矢印511で示すように、その選択を低複雑性モード及び高効率モードの内の活性化された1つに依存して実行するよう構成されてもよい。符号器310の符号語をインターリーブするために、任意ではあるが、インターリーバ510が準備されてもよい。
【0232】
メディアデータをデータストリームへと符号化するための、
図12のデコーダに適合するエンコーダを
図14に示す。このエンコーダは、低複雑性モード又は高効率モードの活性化をデータストリーム701内で信号化するよう構成された挿入部700と、メディアデータ705を整数値のシンタックス要素を含むシンタックス要素列706へとプリコードするよう構成された構築部704と、整数値のシンタックス要素のドメインをシンボル列ワードのコ・ドメインへとマッピングするためのシンボライザ707であって、制御パラメータによって制御可能なマッピング関数を使用して、整数値のシンタックス要素をシンボル化するよう構成されたシンボライザ707と、を含み、ここで、シンボライザ707は、そのシンボル化を以下のように実行するよう構成されている。即ち、制御パラメータは、矢印708によって示すように、高効率モードが活性化されている場合には、データストリームに応じて第1レートで変化し、他方、低複雑性モードが活性化されている場合には、制御パラメータは、データストリームとは無関係に一定であるか、又はデータストリームに応じて変化するものの、第1レートよりも低い第2レートで変化するよう構成されている。シンボル化の結果は、データストリーム701内へと符号化される。
【0233】
図14の実施形態は、上述したコンテキスト適応型バイナリー算術符号化/復号化の実施形態へと容易に転換可能であるという点を指摘しておく。その場合、選択部509及びエントロピー符号器310は1つのコンテキスト適応型バイナリー算術エンコーダへと凝縮されて、データストリーム401を直接的に出力し、現時点でデータストリームから導出されるべきビンのためのコンテキストを選択するであろう。この点は、特にコンテキスト適応性及び/又は確率適応性にとって真実である。低複雑性モードにおいては、機能性/適応性の両方がスイッチオフされてもよく、又はより緩和されて設計されてもよい。
【0234】
上述の実施形態の幾つかに関して説明されたようなモード切替え能力は、他の実施形態では無くてもよいことがこれまで簡単に触れられて来た。この点を明確にするために、
図16を参照されたい。この図がその説明に用いられるのは、
図16の実施形態が上述の実施形態とはモード切替え能力が削除されている点においてだけ異なっているからである。更に、以下の説明を読めば、傾き及びオフセットに関し、例えばH.264よりも精度の低いパラメータを使用して、コンテキストの確率推定を初期化することの結果として得られる利点が明らかになるであろう。
【0235】
具体的には、
図16は、シンタックス要素327のバイナリゼーションを使用して、その中にシンタックス要素327が符号化されているデータストリーム401からビデオを復号化するためのデコーダを示す。上述の説明において、
図1〜
図15に関して述べられた全ての詳細についても、例えばデ・シンボライザ314、再構築部404及びエントロピー復号器409の機能などに関する限り、
図16の中に示す項目へと転換可能である点に注意しなければならない。しかしながら、完全性を目途として、これら詳細の内の幾つかについて以下に再度説明する。
【0236】
デコーダは、異なるコンテキストの中から1つのコンテキストを選択し、データストリーム401の以前に復号化された部分に依存して、それら異なるコンテキストに関連する確率状態を更新することによって、バイナリー・エントロピー復号化を使用して、データストリーム401からバイナリゼーションの幾つかのビン36を導出するよう構成されたエントロピー復号器409を含む。より詳細には、上述したように、エントロピー復号器409は、上述のCABACスキーム、又は、バイナリーPIPE復号化などのバイナリー・エントロピー復号化を使用して、即ち、並行して作動する複数のエントロピー復号器322とそれぞれの選択部/割当部とを含む構造を使用して、データストリーム401からバイナリゼーションの幾つかのビン326を導出するよう構成されてもよい。コンテキスト選択に関する限り、データストリーム401の以前に復号化済みの部分に対するその依存性は、上述のように具体化されてもよい。つまり、エントロピー復号器は、現在導出されるべきビンが属しているバイナリゼーションの中の現在導出されるべきビンの位置、現在導出すべきビンが属しているバイナリゼーションを逆二値化(デ・バイナライズ)することによりその整数値が取得されるシンタックス要素のシンタックス要素タイプ、又は、データストリーム401から以前に導出された1つ以上のビン若しくは以前に逆二値化されたシンタックス要素の整数値に依存して、現在導出されるべきビンのためのコンテキスト選択を実行するよう構成されてもよい。例えば、選択されるコンテキストは、所定のシンタックス要素のバイナリゼーションの第1及び第2のビンの間で異なってもよい。更に、コンテキストの異なるグループが、変換係数レベル、動きベクトル差、符号化モード・パラメータその他のような、異なるシンタックス要素タイプのために提供されてもよい。
【0237】
確率状態の更新に関する限り、エントロピー復号器409は、現在導出されたビンに依存して、126個の確率状態の内の現在導出されたビンのために選択されたコンテキストに関連付けられた現在の確率状態から、126個の中の新たな確率状態へと遷移することで、現在導出されたビンについての更新を実行するよう構成されてもよい。上述したように、エントロピー復号器409は、例えば現在の状態と現在導出されたビンの値とを使用してテーブルエントリーにアクセスしてもよく、そのアクセスされたテーブルエントリーが新たな確率状態を示していてもよい。上述のテーブルNext_State_LPS と Next_State_MPS とを参照されたい。上述した他のステップ0〜5に加え、それらのテーブルに対するテーブル・ルックアップがエントロピー復号器によって実行される。上述の説明においては、確率状態は時折pState_current[bin]として表された。また、上述したように、エントロピー復号器409は、現在の確率区間を表す現在の確率区間ビット値(R)を量子化して、確率区間インデックスq_index を取得し、更に、その確率区間インデックスと、現在導出されるべきビンのために選択されたコンテキストに関連する現在の確率状態に依存する確率状態インデックスp_stateとを使用して、テーブルエントリー(Rtab)の中の1つのテーブルエントリーをインデックス化することで、区間サブ分割を実行して現在の確率区間を2つの部分的区間へとサブ分割することによって、現在導出されるべきビンをバイナリー算術的に復号化するよう構成されてもよい。上述したように、エントロピー復号器409は、現在の確率区間幅の値Rに関し8ビット表現を使用してもよい。現在の確率区間幅の値を量子化するために、エントロピー復号器409は、例えば8ビット表現の2個又は3個の最も有意なビットを取り出してもよい。
【0238】
エントロピー復号器409は、次に、現在の確率区間の内部からのオフセット状態の値に基づいて、2つの部分的区間の間の選択を実行し、確率区間幅の値とオフセット状態の値を更新し、更に、選択された部分的区間を使用して現在導出されるべきビンの値を推測し、かつ更新された確率区間幅と、オフセット状態の値即ち上述の説明におけるVと、の再正規化を実行してもよく、このとき、データストリーム401からのビットの読み出しの継続を含んでもよい。上述したように、オフセット状態の値Vに基づく2つの部分的区間の間の選択は、RとVとの間の比較を含んでもよく、他方、確率区間幅の値とオフセット状態値との更新は、現在導出されるべきビンの値に依存してもよい。
【0239】
図16の説明を続けると、デコーダは、シンタックス要素327のバイナリゼーションを逆二値化して、その結果、シンタックス要素の整数値を取得するよう構成された、デ・シンボライザ314を更に含む。
図16のデコーダに更に含まれる再構築部404は、次に、シンタックス要素の整数値に基づき、量子化パラメータQPを使用して、ビデオ405を再構築する。例えば、再構築部404は上述したように予測的な方法で作動してもよく、それと共に、量子化パラメータを使用して、予測残余の変換されたバージョンを表現する変換係数レベルなど、予測残余を表現するための正確さを設定してもよい。エントロピー復号器409は、上述のように126個の確率状態を区別するよう構成されている。つまり、valMPSの指示、即ち0と1との間における、即ち可能なシンボル状態の間におけるMBSの指示と組合せられた、pState_current[bin] が、126個の異なる状態を呈することができることになる。エントロピー復号器409は、量子化パラメータの線形方程式、即ちa・QP+dの方程式に従って、様々なコンテキストに関連付けられた確率状態、即ち様々な有効コンテキストに関するpState_currentを初期化する。ここで、pState_currentは、実際には
LSBの確率だけを指示していることを思い出して欲しい。従って、a・QP+dは両方を表す。即ち、pState_current及びvalMPSであって、2つの状態の内のどちらがMBSであり、どちらがLBSであるかの指示を表す。a・QP+dがあるシンボルの、即ち1又は0の確率を指示する一方で、a・QP+dが63より大きいか否かについての事実は、0か1が
MSBであるか否かを直接的に指示する。エントロピー復号器126は、様々なコンテキストの各々について、線形方程式の傾きaとオフセットbとを、それぞれの8ビット初期化値の第1及び第2の4ビット部分、即ち、4個の
MSB及びより低い4個の
LSBから導出する。この点において、エントロピー復号器409は、様々なコンテキストに関連する確率を、ビデオのスライスの開始点として初期化するよう構成されてもよい。エントロピー復号器は、例えばビデオの各スライスのための量子化パラメータを、個別に決定するよう構成されてもよい。つまり、エントロピー復号器409は、データストリーム401から、各スライスのための量子化パラメータをどのように設定するかについての情報を導出してもよい。次に、傾きとオフセットとを使用しながら、確率推定が、各スライスの開始時に、それぞれのスライスのそれぞれの量子化パラメータを使用してセットされる。「スライスの開始時に」とは、例えば「何らかのコンテキストを使用してエントロピー復号化されるべき第1のビンを復号化する前に」という意味であってもよい。特に、エントロピー復号器409は、ビデオの各スライスの開始時に異なるコンテキストと関連付けられた各確率状態を初期化する際に、現在のスライスのための量子化パラメータをデータストリーム401から読み出し、かつ、異なるコンテキストに関連付けられた各確率状態を現在のスライスのための量子化パラメータの線形方程式に従って初期化するよう構成されてもよく、ここで、エントロピー復号器は、スライスの各々のために、線形方程式の傾きとオフセットとを同一のそれぞれ8ビット初期化値の第1及び第2の4ビット部分から導出してもよい。つまり、量子化パラメータQPがビデオのスライスの間で変化する一方で、傾きとオフセットの対は変化しない。
【0240】
上述したように、再構築部404は予測的な方法で作動してもよい。従って、再構築部404は、シンタックス要素327の整数値に基づいてビデオ405を再構築する際に、量子化パラメータQPを使用しながらシンタックス要素に含まれた変換係数レベルを逆量子化し、逆量子化された変換係数レベルに対する再変換を実行して予測残余を取得し、空間的及び/又は時間的予測を実行して予測信号を取得し、更に、予測残余と予測信号とを結合してビデオ405を再構築してもよい。
【0241】
具体的な例を挙げると、エントロピー復号器409は、異なるコンテキストの各々のために、傾き及びオフセットを第1及び第2の4ビット部分から、例えば上述したテーブル・ルックアップにより、又は代替的に線形演算など個別の算術的演算を使用することにより、互いに独立して導出するよう構成されてもよい。つまり、8ビットの初期化値の2個の4ビット部分の4ビットを一方とし、126個の異なる確率状態値を他方とする場合の間のギャップを埋めるために、エントロピー復号器409は、両方の4ビット部分を個別に各線形方程式に当てはめてもよい。例えば、8ビット初期化値の
MSBであるpが、slope=m・p+nを演算することによって傾きへと変更され、8ビット初期化値の4個の
LSBであるqが、offset=s・q+tによってオフセットを演算するために使用される。m,n,t及びsは、適切に選択された定数である。完全さを目指す意味だけにおいて、
図17は、
図16のデコーダに適合するエンコーダを示す。ここで、
図17のエンコーダは例えば
図13のエンコーダや他の実施形態のエンコーダの構造に密接に対応しており、それは、
図16のデコーダが
図11のデコーダに対応していることと同様である。即ち、モード切換え能力を除外する点と、エントロピー符号器513をPIPEの概念又は上述したCABACの概念などの他の概念を含むより包括的な条件で実装する点と、を除いて対応している。このほか、
図16に関して述べた全ての説明は、
図17に対して同等に転換できる。
【0242】
これまで装置を説明する文脈で幾つかの態様を示してきたが、これらの態様は対応する方法の説明でもあることは明らかであり、そのブロック又は装置が方法ステップ又は方法ステップの特徴に対応することは明らかである。同様に、方法ステップを説明する文脈で示した態様もまた、対応する装置の対応するブロックもしくは項目又は特徴を表している。方法ステップの幾つか又は全ては、例えばマイクロプロセッサ、プログラム可能なコンピュータ、又は電子回路等のハードウエア装置により(を使用して)実行されても良い。幾つかの実施形態においては、最も重要な方法ステップの内の1つ又は複数のステップはそのような装置によって実行されても良い。
【0243】
本発明の符号化済みの信号は、デジタル記憶媒体に記憶されても良く、インターネットのような無線伝送媒体や有線伝送媒体などの伝送媒体によって伝送されても良い。
【0244】
所定の構成要件にも依るが、本発明の実施形態は、ハードウエア又はソフトウエアにおいて実装可能である。この実装は、その中に格納される電子的に読み取り可能な制御信号を有し、本発明の各方法が実行されるようにプログラム可能なコンピュータシステムと協働する(又は協働可能な)、デジタル記憶媒体、例えばフレキシブルディスク,DVD,ブルーレイ,CD,ROM,PROM,EPROM,EEPROM,フラッシュメモリなどを使用して実行することができる。従って、そのデジタル記憶媒体はコンピュータ読み取り可能であっても良い。
【0245】
本発明に従う幾つかの実施形態は、上述した方法の1つを実行するようプログラム可能なコンピュータシステムと協働可能で、電子的に読み取り可能な制御信号を有するデータキャリアを含んでも良い。
【0246】
一般的に、本発明の実施例は、プログラムコードを有するコンピュータプログラム製品として実装することができ、このプログラムコードは当該コンピュータプログラム製品がコンピュータ上で作動するときに、本発明の方法の一つを実行するよう作動できる。そのプログラムコードは例えば機械読み取り可能なキャリアに記憶されても良い。
【0247】
他の実施形態は、上述した方法の1つを実行するための、機械読み取り可能なキャリアに記憶されたコンピュータプログラムを含む。
【0248】
換言すれば、本発明の方法のある実施形態は、そのコンピュータプログラムがコンピュータ上で作動するときに、上述した方法の1つを実行するためのプログラムコードを有する、コンピュータプログラムである。
【0249】
本発明の他の実施形態は、上述した方法の1つを実行するために記録されたコンピュータプログラムを含む、データキャリア(又はデジタル記憶媒体又はコンピュータ読み取り可能な媒体)である。データキャリア、デジタル記憶媒体又は記録された媒体は、典型的には有形であり、及び/又は非一時的である。
【0250】
本発明の他の実施形態は、上述した方法の1つを実行するためのコンピュータプログラムを表現するデータストリーム又は信号列である。そのデータストリーム又は信号列は、例えばインターネットを介するデータ通信接続を介して伝送されるように構成されても良い。
【0251】
他の実施形態は、上述した方法の1つを実行するように構成又は適用された、例えばコンピュータ又はプログラム可能な論理デバイスのような処理手段を含む。
【0252】
他の実施形態は、上述した方法の1つを実行するためのコンピュータプログラムがインストールされたコンピュータを含む。
【0253】
本発明によるさらなる実施形態は、本明細書に記載の方法のうちの1つを実行するためのコンピュータプログラムを受信機へと(例えば、電子的または光学的に)転送するよう構成された装置またはシステムを含む。受信機は、例えばコンピュータ、携帯デバイス、メモリデバイス、などであってよい。装置またはシステムは、例えばコンピュータプログラムを受信機へと転送するためのファイルサーバを備えることができる。
【0254】
幾つかの実施形態においては、(例えば書換え可能ゲートアレイのような)プログラム可能な論理デバイスは、上述した方法の幾つか又は全ての機能を実行するために使用されても良い。幾つかの実施形態では、書換え可能ゲートアレイは、上述した方法の1つを実行するためにマイクロプロセッサと協働しても良い。一般的に、そのような方法は、好適には任意のハードウエア装置によって実行される。
【0255】
上述した実施形態は、本発明の原理を単に例示的に示したにすぎない。本明細書に記載した構成及び詳細について修正及び変更が可能であることは、当業者にとって明らかである。従って、本発明は、本明細書に実施形態の説明及び解説の目的で提示した具体的詳細によって限定されるものではなく、添付した特許請求の範囲によってのみ限定されるべきである。
【0256】
[請求項1]
シンタックス要素(327)がこのシンタックス要素のバイナリゼーションを使用して符号化された、データストリーム(401)からビデオを復号化するためのデコーダであって、
前記データストリーム(401)の以前に復号化された部分に基づいて、異なるコンテキストの中から1つのコンテキストを選択し、かつ前記異なるコンテキストに関連する確率状態を更新することにより、バイナリー・エントロピー復号化を使用して、前記データストリーム(401)から前記バイナリゼーションのいくつかのビン(326)を導出するエントロピー復号器(409)と、
前記シンタックス要素(327)のバイナリゼーションを逆二値化することで、前記シンタックス要素の整数値を得るデ・シンボライザ(314)と、
前記シンタックス要素の整数値に基づいて、量子化パラメータを使用して前記ビデオを再構築する再構築部(404)と、を備え、
前記エントロピー復号器(409)は、126個の確率状態を区別し、前記量子化パラメータの線形方程式にしたがって前記異なるコンテキストに関連した確率状態を初期化し、前記エントロピー復号器は、前記異なるコンテキストのそれぞれについて、各8ビット初期化値の第1の4ビット部分と第2の4ビット部分とから前記線形方程式の傾きとオフセットとを導出するよう構成されている、デコーダ。
[請求項2]
請求項1に記載のデコーダにおいて、
前記エントロピー復号器(409)は、バイナリー算術復号化又はバイナリーPIPE復号化を使用して、前記データストリーム(401)から前記バイナリゼーションのいくつかのビン(326)を導出するよう構成されている、デコーダ。
[請求項3]
請求項1又は2に記載のデコーダにおいて、
現在導出されるべきビンが所属する前記バイナリゼーション内での前記現在導出されるべきビンのビン位置と、
前記現在導出されるべきビンが所属する前記バイナリゼーションを逆二値化することによってその整数値が得られる前記シンタックス要素のシンタックス要素タイプと、
前記データストリーム(401)から以前に導出された1つ以上のビン、又は以前に逆二値化されたシンタックス要素の整数値と、の内の1つ又は複数に依存して、
前記エントロピー復号器(409)が前記現在導出されるべきビンに対するコンテキスト選択を実行するよう構成されている、デコーダ。
[請求項4]
請求項1〜3のいずれかに記載のデコーダにおいて、
前記エントロピー復号器(409)は、現在導出されたビンに依存して、前記126個の確率状態の中の前記現在導出されたビンのために選択されたコンテキストに関連する現在の確率状態から、前記126個の確率状態の中の新たな確率状態へと遷移させることで、前記現在導出されたビンに対する前記確率状態の更新を実行するよう構成されている、デコーダ。
[請求項5]
請求項1〜4のいずれかに記載のデコーダにおいて、
前記エントロピー復号器(409)は、現在の確率区間を表す現在の確率区間幅値を量子化することにより、確率区間インデックスを取得し、更に、前記確率区間インデックスと、前記現在導出されるべきビンのために選択されたコンテキストに関連する現在の確率状態に依存する確率状態インデックスとを使用して、テーブルエントリー内の1つのテーブルエントリーをインデックス化することで、区間サブ分割を実行して前記現在の確率区間から2つの部分的区間へサブ分割することにより、現在導出されるべきビンをバイナリー算術復号化するよう構成されている、デコーダ。
[請求項6]
請求項5に記載のデコーダにおいて、
前記エントロピー復号器(409)は、前記現在の確率区間幅値のために8ビット表現を使用し、前記現在の確率区間幅値を量子化するに際し、前記8ビット表現の2つ又は3つの最も有意なビットを取り出すよう構成されている、デコーダ。
[請求項7]
請求項5又は6に記載のデコーダにおいて、
前記エントロピー復号器(409)は、前記現在の確率区間の内部からのオフセット状態値に基づいて前記2つの部分的区間内で選択し、前記確率区間幅値とオフセット状態値とを更新し、前記選択された部分的区間を使用して現在導出されるべきビンの値を推測し、前記データストリーム(401)からビットの継続的な読み出しを含む、前記更新された確率区間幅値と前記オフセット状態値との再正規化を実行するよう構成されている、デコーダ。
[請求項8]
請求項1〜7のいずれかに記載のデコーダにおいて、前記エントロピー復号器(409)は、前記ビデオのスライスの開始時に、前記異なるコンテキストに関連した確率状態を初期化するよう構成されている、デコーダ。
[請求項9]
請求項8に記載のデコーダにおいて、前記エントロピー復号器(409)は、前記ビデオの各スライスについて前記量子化パラメータを個別に決定するよう構成されている、デコーダ。
[請求項10]
請求項1〜9のいずれかに記載のデコーダにおいて、
前記エントロピー復号器(409)は、前記データストリーム(401)から現在のスライスに対する前記量子化パラメータを読み出し、かつ前記現在のスライスに対する前記量子化パラメータの線形方程式に従って前記異なるコンテキストに関連した確率状態を初期化することによって、前記ビデオのスライスの開始時に前記異なるコンテキストに関連した確率状態を初期化するよう構成されており、
前記エントロピー復号器(409)は、前記スライスのそれぞれについて、同じ各8ビット初期化値の第1の4ビット部分と第2の4ビット部分とから、前記線形方程式の傾きとオフセットとを導出するよう構成されている、デコーダ。
[請求項11]
請求項1〜10のいずれかに記載のデコーダにおいて、
前記再構築部(404)は、前記シンタックス要素(327)の整数値に基づいて前記ビデオ(405)を再構築するに当り、前記量子化パラメータを使用して前記シンタックス要素に含まれる変換係数レベルを逆量子化し、前記逆量子化された変換係数レベルに対して再変換を実行して予測残余を取得し、空間的及び/又は時間的予測を実行して予測信号を取得し、さらに前記予測残余と前記予測信号とを結合して前記ビデオ(405)を再構築するよう構成されている、デコーダ。
[請求項12]
請求項1〜11のいずれかに記載のデコーダにおいて、
前記エントロピー復号器(409)は、前記異なるコンテキストのそれぞれについて、各8ビット初期化値の第1の4ビット部分と第2の4ビット部分とから互いに独立して前記線形方程式の傾きとオフセットとを導出するよう構成されている、デコーダ。
[請求項13]
請求項1〜12のいずれかに記載のデコーダにおいて、
前記エントロピー復号器は、前記異なるコンテキストのそれぞれについて、各8ビット初期化値の第1の4ビット部分と第2の4ビット部分とからテーブル・ルックアップ又は算術的演算を使用して前記線形方程式の傾きとオフセットとを導出するよう構成されている、デコーダ。
[請求項14]
請求項1〜12のいずれかに記載のデコーダにおいて、
前記エントロピー復号器は、前記異なるコンテキストのそれぞれについて、前記第1の4ビット部分をパラメータの第1ペアで乗算しかつオフセットすることによって前記線形方程式の傾きを導出し、前記第2の4ビット部分をパラメータの第2ペアで乗算しかつオフセットすることによって前記線形方程式のオフセットを導出するよう構成されている、デコーダ。
[請求項15]
シンタックス要素のバイナリゼーションを使用して前記シンタックス要素をデータストリームへと符号化することによって、ビデオを前記データストリームへと符号化するエンコーダであって、
量子化パラメータに依存して前記シンタックス要素の整数値を設定することにより、前記ビデオを表現する構築部と、
前記シンタックス要素の整数値を二値化して前記シンタックス要素のバイナリゼーションを得るシンボライザと、
前記データストリームの以前に符号化された部分に依存して、異なるコンテキストの中から1つのコンテキストを選択し、かつ前記異なるコンテキストに関連した確率状態を更新することにより、バイナリー・エントロピー符号化を使用して、前記バイナリゼーションのいくつかのビンを前記データストリームへと符号化するエントロピー符号器と、を備え、
前記エントロピー符号器は、126個の確率状態を区別し、前記量子化パラメータの線形方程式に従って、前記異なるコンテキストに関連した確率状態を初期化するよう構成され、前記エントロピー符号器は、前記異なるコンテキストのそれぞれについて、各8ビット初期化値の第1の4ビット部分と第2の4ビット部分とから前記線形方程式の傾きとオフセットとを導出するよう構成されている、エンコーダ。
[請求項16]
請求項15に記載のエンコーダにおいて、
前記エントロピー符号器は、バイナリー算術符号化又はバイナリーPIPE符号化を使用して、前記バイナリゼーションのいくつかのビンを前記データストリームへと符号化するよう構成されている、エンコーダ。
[請求項17]
請求項15又は16に記載のエンコーダにおいて、
現在符号化されるべきビンが所属する前記バイナリゼーション内での前記現在符号化されるべきビンのビン位置と、
前記現在符号化されるべきビンが所属する前記バイナリゼーションへとその整数値が二値化される前記シンタックス要素のシンタックス要素タイプと、
前記データストリームへと以前に符号化された1つ以上のビン、又はバイナリゼーションが以前に符号化されたシンタックス要素の整数値と、の内の1つ又は複数に依存して、
前記エントロピー符号器が前記現在符号化されるべきビンに対するコンテキスト選択を実行するよう構成されている、エンコーダ。
[請求項18]
請求項15〜17のいずれかに記載のエンコーダにおいて、
前記エントロピー符号器は、現在符号化されたビンに依存して、前記126個の確率状態の中の現在符号化されたビンに対して選択されたコンテキストに関連する現在の確率状態から、前記126個の確率状態の中の新たな確率状態へと遷移させることによって、現在符号化されたビンに対して前記確率状態の更新を実行するよう構成されている、エンコーダ。
[請求項19]
請求項15〜18のいずれかに記載のエンコーダにおいて、
前記エントロピー符号器は、現在の確率区間を表す現在の確率区間幅値を量子化することにより、確率区間インデックスを取得し、更に、前記確率区間インデックスと、前記現在符号化されるべきビンのために選択されたコンテキストに関連付けられた現在の確率状態に依存する確率状態インデックスとを使用して、テーブルエントリー内の1つのテーブルエントリーをインデックス化することにより、区間サブ分割を実行して前記現在の確率区間から2つの部分的区間へサブ分割することにより、現在符号化されるべきビンをバイナリー算術符号化するよう構成されている、エンコーダ。
[請求項20]
請求項19に記載のエンコーダにおいて、
前記エントロピー符号器は、前記現在の確率区間幅値のために8ビット表現を使用し、前記現在の確率区間幅値を量子化するに際し、前記8ビット表現の2つ又は3つの最も有意なビットを取り出すよう構成されている、エンコーダ。
[請求項21]
請求項19又は20に記載のエンコーダにおいて、
前記エントロピー符号器は、前記現在符号化されるべきビンの整数値に基づいて前記2つの部分的区間内で選択し、前記選択された部分的区間を使用して前記確率区間幅値と確率区間オフセットとを更新し、前記データストリームへのビットの継続的な書き込みを含む、前記確率区間幅値と前記確率区間オフセットとの再正規化を実行するよう構成されている、エンコーダ。
[請求項22]
請求項15〜21のいずれかに記載のエンコーダにおいて、
前記エントロピー復号器は、前記ビデオの各スライスの開始時に、異なるコンテキストに関連した前記確率状態を初期化するよう構成されている、エンコーダ。
[請求項23]
請求項15〜22のいずれかに記載のエンコーダにおいて、
前記エントロピー符号器は、前記ビデオの各スライスの開始時に、異なるコンテキストに関連した前記確率状態を初期化するよう構成されている、エンコーダ。
[請求項24]
請求項15〜23のいずれかに記載のエンコーダにおいて、
前記エントロピー符号器は、前記データストリームから現在のスライスに対する前記量子化パラメータを個別に設定し、かつ前記現在のスライスに対する前記量子化パラメータの線形方程式に従って異なるコンテキストに関連した前記確率状態を初期化することにより、前記ビデオの各スライスの開始時に前記異なるコンテキストに関連した確率状態を初期化するよう構成されており、
前記エントロピー符号器は、前記スライスのぞれぞれについて、同じ各8ビット初期化値の第1の4ビット部分と第2の4ビット部分とから、前記線形方程式の傾きとオフセットとを導出するよう構成されている、エンコーダ。
[請求項25]
請求項15〜24のいずれかに記載のエンコーダにおいて、
前記構築部は、前記シンタックス要素の整数値を設定するに当り、空間的及び/又は時間的予測を実行して予測信号を取得し、前記予測信号及び前記ビデオから予測残余を導出し、前記予測残余に対して変換を実行して変換係数レベルを取得し、前記量子化パラメータを使用して前記変換係数レベルを量子化することで前記シンタックス要素に含まれる量子化済み変換係数レベルを取得するよう構成されている、エンコーダ。
[請求項26]
請求項15〜25のいずれかに記載のエンコーダにおいて、
前記エントロピー符号器は、前記異なるコンテキストのそれぞれについて、各8ビット初期化値の第1の4ビット部分と第2の4ビット部分とから互いに独立して前記線形方程式の傾きとオフセットとを導出するよう構成されている、エンコーダ。
[請求項27]
請求項15〜26のいずれかに記載のエンコーダにおいて、
前記エントロピー符号器は、前記異なるコンテキストのそれぞれについて、各8ビット初期化値の第1の4ビット部分と第2の4ビット部分とからテーブル・ルックアップ又は算術的演算を使用して前記線形方程式の傾きとオフセットとを導出するよう構成されている、エンコーダ。
[請求項28]
請求項15〜27のいずれかに記載のエンコーダにおいて、
前記エントロピー符号器は、前記異なるコンテキストのそれぞれについて、前記第1の4ビット部分をパラメータの第1ペアで乗算しかつオフセットすることによって前記線形方程式の傾きを導出し、前記第2の4ビット部分をパラメータの第2ペアで乗算しかつオフセットすることによって前記線形方程式のオフセットを導出するよう構成されている、エンコーダ。
[請求項29]
シンタックス要素がこのシンタックス要素のバイナリゼーションを使用して符号化された、データストリームからビデオを復号化するための方法であって、
前記データストリームの以前に復号化された部分に基づいて、異なるコンテキストの中から1つのコンテキストを選択し、かつ前記異なるコンテキストに関連する確率状態を更新することにより、バイナリー・エントロピー復号化を使用して、前記データストリームから前記バイナリゼーションのいくつかのビンを導出するステップと、
前記シンタックス要素のバイナリゼーションを逆二値化することで、前記シンタックス要素の整数値を得るステップと、
前記シンタックス要素の整数値に基づいて、量子化パラメータを使用して前記ビデオを再構築するステップと、を備え、
前記バイナリゼーションのいくつかのビンを導出するステップは、126個の確率状態を区別し、前記方法はさらに、前記量子化パラメータの線形方程式にしたがって前記異なるコンテキストに関連した確率状態を初期化し、前記異なるコンテキストのそれぞれについて、各8ビット初期化値の第1の4ビット部分と第2の4ビット部分とから前記線形方程式の傾きとオフセットとを導出すること、を含む方法。
[請求項30]
シンタックス要素のバイナリゼーションを使用して前記シンタックス要素をデータストリームへと符号化することによって、ビデオを前記データストリームへと符号化する方法であって、
量子化パラメータに依存して前記シンタックス要素の整数値を設定することにより、前記ビデオを表現するステップと、
前記シンタックス要素の整数値を二値化して前記シンタックス要素のバイナリゼーションを得るステップと、
前記データストリームの以前に符号化された部分に依存して、異なるコンテキストの中から1つのコンテキストを選択し、かつ前記異なるコンテキストに関連した確率状態を更新することにより、バイナリー・エントロピー符号化を使用して、前記バイナリゼーションのいくつかのビンを前記データストリームへと符号化するステップと、を備え、
前記ビデオを表現するステップは、126個の確率状態を区別し、前記方法はさらに、前記量子化パラメータの線形方程式に従って、前記異なるコンテキストに関連した確率状態を初期化し、前記異なるコンテキストのそれぞれについて、各8ビット初期化値の第1の4ビット部分と第2の4ビット部分とから前記線形方程式の傾きとオフセットとを導出すること、を含む方法。
[請求項31]
コンピュータ上で作動されたとき、請求項29又は30に記載の方法を実行するためのプログラムコードを有するコンピュータプログラム。