(57)【要約】【課題】【解決手段】  シンボル列の前のシンボル内に含まれる情報に基づいてシンボル列の各シンボルへ多数のパラメータを割当てるように構成されている割当部と、各々がそれぞれのエントロピーエンコーダへ転送されたシンボルをそれぞれのビットストリームに変換するように構成されている複数のエントロピーエンコーダと、複数のエントロピーエンコーダの選択された１つのエントロピーエンコーダへ各シンボルを転送するように構成されている選択部であって、この選択がそれぞれのシンボルへ割り当てられたパラメータの数に依存する選択部と、を含むシンボル列を符号化するためのエンコーダ。【選択図】図１
2013528025.tif 000002
【特許請求の範囲】
【請求項１】
シンボル列を符号化するためのエンコーダであって、
前記シンボル列の前のシンボル内に含まれる情報に基づいて前記シンボル列の各シンボルへ多数のパラメータを割り当てる割当部と、
各々がそれぞれのエントロピーエンコーダへ転送された前記シンボルをそれぞれのビットストリームへ変換するように構成されている複数のエントロピーエンコーダと、
前記複数のエントロピーエンコーダの選択された１つへ各シンボルを転送するように構成されている選択部であって、前記選択が前記それぞれのシンボルへ割り当てられた前記パラメータの数に依存している、選択部と、
を備えるエンコーダ。
【請求項２】
請求項１に記載のエンコーダにおいて、前記割当部は、各シンボルに割り当てられた前記パラメータの数が、前記それぞれのシンボルが想定し得る可能な値の中で確率分布の予測に対する測度を含むか、または前記確率分布の予測に対する測度となるように構成されているエンコーダ。
【請求項３】
請求項２に記載のエンコーダにおいて、前記シンボル列はバイナリアルファベットから作られ、前記割当部は、前記確率分布の前記予測は、確率の低いまたは確率の高いビン値の確率の予測に対する測度と、前記２つの可能なビン値のうちどちらが前記確率の低いまたは確率の高いビン値を表すかの予測を指定する識別子と、から成るように構成されているエンコーダ。
【請求項４】
請求項２または３に記載のエンコーダにおいて、前記割当部は、各コンテクストがこれに関連付けられた各確率分布予測を有する前記シンボル列の前のシンボル内に含まれる前記情報に基づいて前記シンボル列の各シンボルへコンテクストを割り当て、前記それぞれのコンテクストが割り当てられる前のシンボルのシンボル値に基づいて各コンテクストの前記確率分布の予測を実際のシンボル統計に適応させ、前記それぞれのシンボルに割り当てられた前記コンテクストに関連付けられた前記確率分布予測に基づいてシンボルごとに前記確率分布の前記予測に対して前記測度を求めるエンコーダ。
【請求項５】
請求項４に記載のエンコーダにおいて、前記割当部は、シンボルごとに前記確率分布の前記予測に対して前記測度を求める際に、前記確率分布の前記予測に対する前記測度を得るために複数の確率分布予測代表の１つへ前記各シンボルに割り当てられた前記コンテクストに関連付けられた前記確率分布の予測を量子化するように構成されており、前記選択部は、全単射関連付けが前記複数のエントロピーエンコーダと前記複数の確率分布予測代表との間で定義付けられるように構成されているエンコーダ。
【請求項６】
請求項５に記載のエンコーダにおいて、前記選択部は、所定の決定論的な方法で、量子化マッピングを前記シンボル列の前のシンボルに応じて前記確率分布予測の範囲から前記複数の確率分布予測代表へ経時的に変化させるエンコーダ。
【請求項７】
請求項６に記載のエンコーダにおいて、前記複数のエントロピーエンコーダは、前記量子化マッピングの変化に応答して、そのシンボルをビットストリームへ変換する方法を適応させるエンコーダ。
【請求項８】
請求項５または６に記載のエンコーダにおいて、前記選択部は、前記エントロピーエンコーダがシンボルを変換する前記ビットストリームのビットレートのバラツキを少なくするように前記量子化マッピングを変更するエンコーダ。
【請求項９】
請求項１から８のいずれか１項に記載のエンコーダにおいて、前記複数のエントロピーエンコーダの少なくとも１つはこれに関連付けられているシンボル入力バッファを有しており、前記選択部が、前記関連付けられているシンボル入力バッファを介して、前記少なくとも１つのエントロピーエンコーダへ前記シンボルを転送するエンコーダ。
【請求項１０】
請求項１から９のいずれか１項に記載のエンコーダにおいて、少なくとも１つのエントロピーエンコーダはシンボル列を符号語にマッピングするように構成された可変長コーダであるエンコーダ。
【請求項１１】
請求項１から１０のいずれか１項に記載のエンコーダにおいて、前記複数のエントロピーエンコーダの各々は可変長のシンボル列を固定長の符号語へマッピングするように構成された可変長コーダであるエンコーダ。
【請求項１２】
請求項１１に記載のエンコーダにおいて、符号語バッファであって、前記符号語バッファが前記選択部によって前記複数のエントロピーエンコーダへ転送された前記シンボル列の前記シンボルが前記それぞれのエントロピーエンコーダにおいて符号語へマッピングされる新しいシンボル列の初期部分となるような順番に応じて前記複数のエントロピーエンコーダから前記符号語に対する符号語エントリ列を順に蓄積し、前記複数のビットストリームからインターリーブされた符号語の単一ストリームを得るために順に前記符号語エントリ内へ入力された符号語を取り除くように構成されている前記符号語バッファを更に含み、各エントロピーエンコーダは前記それぞれのエントロピーエンコーダに対して蓄積された前記符号語エントリへその符号語を順に入力するエンコーダ。
【請求項１３】
請求項１２に記載のエンコーダにおいて、前記複数のエントロピーエンコーダと前記符号語バッファは、現在転送されているがまだマッピングされていないシンボルを、前記現在転送されているがまだマッピングされていないシンボルを接頭語として有するドント―ケアシンボルによって、有意シンボル列へ断続的に拡張し、前記このようにして拡張されたシンボル列を符号語へマッピングし、前記このようにして得られた符号語を前記蓄積された符号語エントリへ入力し、これにより前記符号語エントリをフラッシュするエンコーダ。
【請求項１４】
請求項１２に記載のエンコーダにおいて、前記複数のエントロピーエンコーダと前記符号語バッファは、多数の蓄積された符号語エントリと入力された符号語を有する多数の符号語エントリとの合計が所定基準を満たす事象において前記断続的拡張、入力、およびフラッシュをするエンコーダ。
【請求項１５】
請求項１から１０のいずれか１項に記載のエンコーダにおいて、前記エントロピーエンコーダの少なくとも第１の部分集合は可変長のシンボル列を可変長の符号語にそれぞれマッピングするように構成された可変長コーダであり、その際、前記第１の部分集合の前記エントロピーコーダの各々は全単射マッピングルールを使用し、前記全単射マッピングルールに基づいて、（２ｎ−１）≧３の符号語を有する１次接頭語無し符号の符号語が前記１次接頭語無し符号と同一である２次接頭語無し符号の符号語にマッピングされて、前記１次接頭語無し符号の前記符号語のうち２つを除く全てが、前記２次接頭語無し符号の同一の符号語にマッピングされるとともに、前記１次と前記２次の接頭語無し符号の前記２つの符号語が異なる長さを有しかつ相互に入れ替え可能にマッピングされ、前記エントロピーエンコーダは異なるｎを使用するエンコーダ。
【請求項１６】
請求項１５に記載のエンコーダにおいて、前記第１の接頭語無し符号は、前記第１の接頭語無し符号の前記符号語が（ａ、ｂ）２、（ａ、ａ、ｂ）３、．．．、（ａ、．．．、ａ、ｂ）ｎ、（ａ、．．．、ａ）ｎ、（ｂ、ａ）２、（ｂ、ｂ、ａ）３、．．．、（ｂ、．．．、ｂ、ａ）ｎ−１、（ｂ、．．．、ｂ）ｎ−１であり、前記相互に入れ替え可能にマッピングされた前記２つの符号語は、ｂ≠ａおよび
【数１５５】
2013528025.tif 000169
のとき、（ａ、．．．、ａ）ｎおよび（ｂ、．．．、ｂ）ｎ−１であるエンコーダ。
【請求項１７】
請求項１から請求項１６のいずれか１項に記載のエンコーダにおいて、
エントロピーエンコーダの第１の部分集合の各々は、前記それぞれのエントロピーエンコーダへ転送される前記シンボルを前記それぞれのビットストリームに変換する際、前記それぞれのエントロピーエンコーダへ転送された第１のシンボルを検討して、
第１のシンボルが
【数１５６】
2013528025.tif 000170
と等しいかどうかを判定し、そうである場合、前記それぞれのエントロピーエンコーダは、前記それぞれのエントロピーエンコーダへ転送された後に続くシンボルを検討するように構成され、
ｂ≠ａおよび
【数１５７】
2013528025.tif 000171
のとき、ｂが、前記第１のシンボルに後続する次のｎ−１番目のシンボル内に出現するかどうかを判定し、そうである場合、前記それぞれのエントロピーエンコーダは、前記シンボルｂに至るまで、前記それぞれのエントロピーエンコーダへ転送された前記後続するシンボルによって後続される前記第１のシンボルと等しい、前記それぞれのビットストリームへ符号語を書き込むように構成され、
ｂが前記第１のシンボルに後続する前記次のｎ−１番目のシンボル内に全く出現しないかどうかを判定し、そうである場合、前記それぞれのエントロピーエンコーダは、（ｂ、．．．、ｂ）ｎ−１と等しい前記それぞれのビットストリームへ符号語を書き込むように構成され、
第１のシンボルがｂと等しいかどうかを判定し、そうである場合、前記それぞれのエントロピーエンコーダは前記それぞれのエントロピーエンコーダへ転送される前記後続のシンボルを検討するように構成され、
ａが前記第１のシンボルに後続する前記次のｎ−２番目のシンボル内に出現するかどうかを判定し、そうである場合、前記それぞれのエントロピーエンコーダは、前記シンボルａに至るまで、前記それぞれのエントロピーエンコーダへ転送された前記後続するシンボルによって後続される前記第１のシンボルと等しい、前記それぞれのビットストリームへ符号語を書き込むように構成され、
ａが前記第１のシンボルに後続する前記次のｎ−２番目のシンボル内に全く出現しないかどうかを判定し、そうである場合、前記それぞれのエントロピーエンコーダは、（ａ、．．．、ａ）ｎと等しい前記それぞれのビットストリームへ符号語を書き込むように構成されている
エンコーダ。
【請求項１８】
請求項１から請求項１７のいずれか１項に記載のエンコーダにおいて、
前記エントロピーエンコーダの少なくとも第２の部分集合は可変長のシンボル列を固定長の符号語へそれぞれマッピングするように構成された可変長コーダであり、その際、前記第２の部分集合の前記エントロピーコーダの各々は全単射マッピングルールを使用し、前記全単射マッピングルールに基づいて、ｂ≠ａおよび
【数１５８】
2013528025.tif 000172
のとき、｛（ａ）、（ｂａ）、（ｂｂａ）、．．．、（ｂ．．．ｂａ）、（ｂｂ．．．ｂ）｝のタイプの２ｎ＋１個の符号語を有する１次切り捨て単項符号の符号語が２次接頭語無し符号の符号語にマッピングされ、これによって、前記１次切り捨て単項符号の前記符号語（ｂｂ．．．ｂ）が前記２次接頭語無し符号の符号語（ｃ）にマッピングされ、前記１次切り捨て単項符号のすべての他の符号語｛（ａ）、（ｂａ）、（ｂｂａ）、．．．、（ｂ．．．ｂａ）｝が、接頭語としてｃ≠ｄおよび
【数１５９】
2013528025.tif 000173
である（ｄ）を有し、接尾語としてｎビットのワードを有する符号語にマッピングされ、前記エントロピーエンコーダは異なるｎを使用する
エンコーダ。
【請求項１９】
請求項１８に記載のエンコーダにおいて、エントロピーエンコーダの前記第２の部分集合の各々は、前記ｎビットのワードが前記１次切り捨て単項符号の前記それぞれの符号語内の複数のｂの番号のｎビットの表現であるエンコーダ。
【請求項２０】
請求項１から請求項１９のいずれか１項に記載のエンコーダにおいて、
エントロピーエンコーダの第２の部分集合の各々は、前記それぞれのエントロピーエンコーダへ転送された前記シンボルを前記それぞれのビットストリームへ変換する際、ａが出現するまで、または、前記それぞれのエントロピーエンコーダへ転送された前記シンボル列の数が前記列のすべての２ｎのシンボルがｂである２ｎに達するまで、前記それぞれのエントロピーエンコーダへ転送されたシンボル列内の多数のｂをカウントするように構成されており、
複数のｂの数が２ｎと等しい場合、
【数１６０】
2013528025.tif 000174
であるｃを２次接頭語無し符号の符号語として前記それぞれのビットストリームへ書き込み、
複数のｂの数が２ｎより小さい場合、ｃ≠ｄおよび
【数１６１】
2013528025.tif 000175
である（ｄ）を接頭語として有し、前記複数のｂの数に応じて決定されたｎビットのワードを接尾語として有する、前記それぞれのビットストリームへ前記２次接頭語無し符号の符号語を書き込む、
エンコーダ。
【請求項２１】
請求項１から請求項２０のいずれか１項に記載のエンコーダにおいて、前記エントロピーエンコーダの所定の１つは、固定長のシンボル列を可変長の符号語にそれぞれマッピングするように構成された可変長コーダであり、前記所定のエントロピーエンコーダは全単射マッピングルールを使用し、前記全単射マッピングルールに基づいて、１次符号の長さ３の２３符号語は２次接頭語無し符号の符号語にマッピングされ、これによって、ａ∈｛０、１｝である前記１次符号の前記符号語（ａａａ）３は、ｃ∈｛０、１｝である符号語（ｃ）にマッピングされ、ｂ≠ａおよびｂ∈｛０、１｝である１つだけのｂを有する前記１次符号のすべての３つの符号語は、ｃ≠ｄおよびｄ∈｛０、１｝である（ｄ）を接頭語として有しかつ２ビットのワードの第１の集合のうちのそれぞれの第１の２ビットのワードを接尾語として有する符号語にマッピングされ、１つだけのａを有する前記１次符号の全ての３つの符号語は、（ｄ）を接頭語として有しかつ前記第１の集合の要素ではない第１の２ビットのワードと２ビットのワードの第２の集合のうちの第２の２ビットのワードとの連結を接尾語として有する符号語にマッピングされ、前記符号語（ｂｂｂ）３は、（ｄ）を接頭語として有しかつ前記第１の集合の要素ではない前記第１の２ビットのワードと前記第２の集合の要素ではない第２の２ビットのワードの連結を接尾語として有する符号語にマッピングされるエンコーダ。
【請求項２２】
請求項２１に記載のエンコーダにおいて、１つだけのｂを有する前記１次符号の前記符号語の前記第１の２ビットのワードは前記１次符号の前記それぞれの符号語内の前記ｂの位置の２ビットの表現であり、１つだけのａを有する前記１次符号の前記符号語の前記第２の２ビットのワードは前記１次符号の前記それぞれの符号語内の前記ａの位置の２ビットの表現であるエンコーダ。
【請求項２３】
請求項１から請求項２２のいずれか１項に記載のエンコーダにおいて、
前記エントロピーエンコーダの所定の１つは、前記所定のエントロピーエンコーダへ転送された前記シンボルを前記それぞれのビットストリームへ変換する際、トリプレット内の前記所定のエントロピーエンコーダへの前記シンボルを検討して、
前記トリプレットは複数のａから成るかが検討され、そうである場合、前記所定のエントロピーエンコーダは前記それぞれのビットストリームへ前記符号語（ｃ）を書き込むように構成され、
前記トリプレットが１つだけのｂを含むかが検討され、そうである場合、前記所定のエントロピーエンコーダは（ｄ）を接頭語として有しかつ前記トリプレット内の前記ｂの位置の２ビットの表現を接尾語として有する符号語を、前記それぞれのビットストリームへ書き込むように構成され、
前記トリプレットが１つだけのａを含むかが検討され、そうである場合、前記所定のエントロピーエンコーダは、（ｄ）を接頭語として有しかつ前記第１の集合の要素ではない前記第１の２ビットのワードと前記トリプレット内の前記ａの位置の２ビットの表現との連結を接尾語として有する符号語を、前記それぞれのビットストリームへ書き込むように構成され、または
前記トリプレットが複数のｂから成るかが検討され、そうである場合、前記所定のエントロピーエンコーダは（ｄ）を接頭語として有しかつ前記第１の集合の要素ではない前記第１の２ビットのワードと前記第２の集合の要素ではない前記第１の２ビットのワードとの連結を接尾語として有する符号語を、前記それぞれのビットストリームへ書き込むように構成されている、
エンコーダ。
【請求項２４】
シンボル列を符号化する方法であって、
前記シンボル列の前のシンボル内に含まれる情報に基づいて前記シンボル列の各シンボルへ多数のパラメータを割り当て、
複数のエントロピーエンコーダの選択された１つに各シンボルを転送するステップであって、前記選択は前記それぞれのシンボルへ割り当てられた前記パラメータの数に応じて行なわれ、前記複数のエントロピーエンコーダの各々は前記それぞれのエントロピーエンコーダへ転送されたシンボルをそれぞれのビットストリームへ変換する
シンボル列符号化方法。
【請求項２５】
シンボル列を復元するためのデコーダであって、
各々がそれぞれのビットストリームをシンボルへ変換するように構成されている複数のエントロピーデコーダと、
前記シンボル列の前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボル列の各シンボルへ多数のパラメータを割り当てるように構成されている割当部と、
前記複数のエントロピーデコーダの選択された１つから復元される前記シンボル列の各シンボルを検索するように構成されている選択部であって、前記選択は前記それぞれのシンボルに対して定義付けられた前記パラメータの数に応じて行われる、選択部と、
を備えるデコーダ。
【請求項２６】
請求項２５に記載のデコーダにおいて、前記割当部は、各シンボルに割り当てられた前記パラメータの数がそれぞれのシンボルが想定し得る前記可能なシンボル値の中から確率分布の予測に対する測度を含むかまたは前記確率分布の予測に対する測度であるデコーダ。
【請求項２７】
請求項２６に記載のデコーダにおいて、復元される前記シンボル列はバイナリアルファベットから作られ、前記割当部は、前記確率分布の予測が、前記バイナリアルファベットの前記２つの可能なビン値の確率の低いまたは確率の高いビン値の確率の予測に対する測度と、前記２つの可能なビン値のうちどちらが前記確率の低いまたは確率の高いビン値を表すかの予測を指定する識別子と、から成るデコーダ。
【請求項２８】
請求項２６または２７に記載のデコーダにおいて、前記割当部は、各コンテクストがこれに関連付けられたそれぞれの確率分布予測を有することによって復元される前記シンボル列の前に復元されたシンボル内に含まれる前記情報に基づいて復元される前記シンボル列の各シンボルへコンテクストを内的に割り当て、前記それぞれのコンテクストが割り当てられた前に復元されたシンボルのシンボル値に基づいてコンテクストごとに前記確率分布予測を実際のシンボル統計に適応させ、前記それぞれのシンボルに割り当てられた前記コンテクストに関連付けられた前記確率分布予測に基づいてシンボルごとに前記確率分布の前記予測に対する前記測度を求めるデコーダ。
【請求項２９】
請求項２８に記載のデコーダにおいて、前記割当部は、シンボルごとに前記確率分布の前記予測に対して前記測度を求める際に、前記確率分布の前記予測に対する前記測度を得るために複数の確率分布予測代表の１つへ前記各シンボルに割り当てられた前記コンテクストに関連付けされた前記確率分布の予測を量子化するように構成されており、前記選択部は、全単射関連付けが前記複数のエントロピーエンコーダと前記複数の確率分布予測代表との間で定義付けられるように構成されたデコーダ。
【請求項３０】
請求項３９に記載のデコーダにおいて、前記選択部は、所定の決定論的な方法で、量子化マッピングを前記シンボル列の前に復元されたシンボルに応じて前記確率分布予測の範囲から前記複数の確率分布予測代表へ経時的に変化させるデコーダ。
【請求項３１】
請求項３０に記載のデコーダにおいて、前記複数のエントロピーデコーダは、前記量子化マッピングの変化に応答して、そのシンボルをビットストリームへ変換する方法を適応させるデコーダ。
【請求項３２】
請求項３０または３１に記載のデコーダにおいて、前記選択部は、前記シンボルが前記複数のエントロピーデコーダから検索される速度のバラツキを少なくするように前記量子化マッピングを変化させるデコーダ。
【請求項３３】
請求項２５から請求項３２のいずれか１項に記載のデコーダにおいいて、少なくとも１つのエントロピーデコーダはこれに関連付けられているシンボル出力バッファを有しており、前記選択部が、前記関連付けられているシンボル出力バッファを介して、前記少なくとも１つのエントロピーデコーダから前記シンボルを検索するように構成されているデコーダ。
【請求項３４】
請求項２５から請求項３３のいずれか１項に記載のデコーダにおいて、前記少なくとも１つのエントロピーデコーダは符号語をシンボル列へマッピングするように構成されている可変長デコーダであるデコーダ。
【請求項３５】
請求項２５から請求項３４に記載のデコーダにおいて、前記複数のエントロピーデコーダの各々は固定長の符号語を可変長のシンボル列へマッピングするように構成されている可変長デコーダであるデコーダ。
【請求項３６】
請求項３５に記載のデコーダにおいて、単一ストリームのインターリーブされた符号語を受け取るための符号語エントリをさらに含み、前記複数のエントロピーデコーダが、前記複数のエントロピーデコーダからの前記選択部によって検索される復元される予定の前記シンボル列の前記シンボルによって前記それぞれのエントロピーデコーダにおいて新しい符号語からマッピングされる新しいシンボル列が得られる順に従って順に前記符号語エントリから前記符号語を検索するように構成されているデコーダ。
【請求項３７】
請求項３６に記載のデコーダにおいて、前記複数のエントロピーデコーダおよび前記選択部は復元される前記シンボル列の形成に参加しないためにシンボル列の接尾語を断続的に切り捨てるように構成されているデコーダ。
【請求項３８】
請求項３７に記載のデコーダにおいて、前記複数のエントロピーデコーダおよび前記選択部は、前記符号語エントリからのそれぞれのエントロピーデコーダの２つの連続した符号語検索間の前記複数のエントロピーデコーダによって前記符号語エントリから既に検索されている多数の符号語が、所定の基準を満たしている事象において、断続的破棄を実行するように構成されているデコーダ。
【請求項３９】
請求項３６から請求項３８のいずれか１項に記載のデコーダにおいいて、前記インターリーブされた符号語を解析し、これを、前記デコーダからの検索リクエストがあり次第、符号語単位で、前記エントロピーデコーダへ分布させるように構成されている符号語エントリにおいて符号語バッファをさらに含むデコーダ。
【請求項４０】
請求項２５から請求項３９のいずれか一項に記載のデコーダにおいて、前記エントロピーデコーダの少なくとも第１の部分集合は可変長の符号語を可変長のシンボル列にそれぞれマッピングするように構成された可変長デコーダであり、その際、前記第１の部分集合の前記エントロピーデコーダの各々は全単射マッピングルールを使用し、前記全単射マッピングルールに基づいて、（２ｎ−１）≧３の符号語を有する１次接頭語無し符号の符号語が前記１次接頭語符号と同一である２次接頭語無し符号の符号語にマッピングされて、前記１次接頭語無し符号の前記符号語のうち２つを除く全てが、前記２次接頭語無し符号の同一の符号語にマッピングされるとともに、前記１次と前記２次の接頭語無し符号の前記２つの符号語が異なる長さを有しかつ相互に入れ替え可能にマッピングされ、前記エントロピーエンコーダは異なるｎを使用するデコーダ。
【請求項４１】
請求項４０に記載のデコーダにおいて、前記第１の接頭語無し符号は、前記第１の接頭語無し符号の前記符号語が（ａ、ｂ）２、（ａ、ａ、ｂ）３、．．．、（ａ、．．．、ａ、ｂ）ｎ、（ａ、．．．、ａ）ｎ、（ｂ、ａ）２、（ｂ、ｂ、ａ）３、．．．、（ｂ、．．．、ｂ、ａ）ｎ−１、（ｂ、．．．、ｂ）ｎ−１であり、前記入れ替え可能に相互にマッピングされた前記２つの符号語は、ｂ≠ａおよび
【数１６２】
2013528025.tif 000176
のとき、（ａ、．．．、ａ）ｎおよび（ｂ、．．．、ｂ）ｎ−１であるように構築されるデコーダ。
【請求項４２】
請求項２５から請求項４１のいずれか１項に記載のデコーダにおいて、
エントロピーエンコーダの第１の部分集合の各々は、可変長の符号語を可変長のシンボル列にマッピングするように構成された可変長デコーダであり、前記それぞれのビットストリームを前記シンボルに変換する際、前記それぞれのビットストリームの第１のビットを検討して、
第１のビットが
【数１６３】
2013528025.tif 000177
と等しいかどうかを判定し、そうである場合、前記それぞれのエントロピーエンコーダは前記それぞれのビットストリームの前記後続するビットを検討するように構成され、
ｂ≠ａおよび
【数１６４】
2013528025.tif 000178
のとき、ｂが、前記第１のビットに後続する前記次のｎ−１番目のビット内に出現するかどうかを判定し、そうである場合、前記それぞれのデトロピーデコーダは、前記ビットｂに至るまで、前記それぞれのビットストリームの前記後続するビットによって後続される前記第１のビットと等しい、シンボル列を復元するように構成され、
ｂが前記第１のビットに後続する前記次のｎ−１番目のビット内にまったく出現しないかどうかを判定し、そうである場合、前記それぞれのエントロピーデコーダは（ｂ、．．．、ｂ）ｎ−１と等しいシンボル列を復元するように構成され、
前記第１のビットがｂと等しいかどうかを判定し、そうである場合、前記それぞれのエントロピーデコーダは前記それぞれのビットストリームの前記後続するビットを検討するよう構成され、
ａが前記第１のビットに後続する前記次のｎ−２番目のビット内に出現するかどうかを判定し、そうである場合、前記それぞれのエントロピーデコーダは、前記シンボルａに至るまで、前記それぞれのビットストリームの前記後続するビットによって後続される前記第１のビットと等しい、シンボル列を復元するように構成され、
ａが前記第１のビットに後続する前記次のｎ−２番目のビット内にまったく出現しないかどうかを判定し、そうである場合、前記それぞれのエントロピーデコーダは（ａ、．．．、ａ）ｎと等しいシンボル列を復元するように構成されている
デコーダ。
【請求項４３】
請求項３５から請求項４２のいずれか１項に記載のデコーダにおいて、前記エントロピーデコーダの少なくとも第２の部分集合は、固定長の符号語に可変長のシンボル列にそれぞれマッピングするように構成された可変長デコーダであり、その際、前記第２の部分集合の前記エントロピーデコーダの各々は全単射マッピングルールを使用し、前記全単射マッピングルールに基づいて、２次接頭語無し符号の符号語が、ｂ≠ａおよびａ、
【数１６５】
2013528025.tif 000179
であるタイプ｛（ａ）、（ｂａ）、（ｂｂａ）、．．．、（ｂ．．．ｂａ）、（ｂｂ．．．ｂ）｝の２ｎ＋１個の符号語を有する１次切り捨て単項符号の符号語にマッピングされ、これによって、前記２次接頭語無し符号の符号語（ｃ）が前記１次切り捨て単項符号の前記符号語（ｂｂ．．．ｂ）にマッピングされ、ｃ≠ｄおよび
【数１６６】
2013528025.tif 000180
のとき（ｄ）を接頭語として有しかつｎビットのワードを接尾語として有する符号語が前記１次切り捨て単項符号の他の符号語｛（ａ）、（ｂａ）、（ｂｂａ）、．．．、（ｂ．．．ｂａ）｝のそれぞれにマッピングされ、前記エントロピーデコーダは異なるｎを使用するデコーダ。
【請求項４４】
請求項４３に記載のデコーダにおいて、エントロピーデコーダの前記第２の部分集合の各々は、前記ｎビットのワードが前記１次切り捨て単項符号の前記それぞれの符号語内の複数のｂの数のｎビットの表現であるように構成されているデコーダ。
【請求項４５】
請求項２５から請求項４４のいずれか１項に記載のデコーダにおいて、
エントロピーデコーダの第２の部分集合の各々は、固定長の符号語を可変長のシンボル列にそれぞれマッピングするように構成された可変長デコーダであり、前記それぞれのエントロピーデコーダの前記ビットストリームを前記シンボルに変換する際、前記それぞれのビットストリームの第１のビットを検討して、
前記それぞれのビットストリームの第１のビットが、ｃ∈｛０、１｝のときｃと等しいかどうかを判定し、そうである場合、前記それぞれのエントロピーデコーダはｂ∈｛０、１｝のとき（ｂｂ．．．ｂ）２ｎと等しいシンボル列を復元するように構成され、
前記それぞれのビットストリームの第１のビットが、ｃ≠ｄおよびｃ、ｄ∈｛０、１｝のときｄと等しいかどうかを判定し、そうである場合、前記それぞれのエントロピーデコーダは、前記第１のビットに後続する、前記それぞれのビットストリームのｎ個の更なるビットからｎビットのワードを決定し、前記ｎビットのワードから、前記複数のｂの数が前記ｎビットのワードに応じる、ｂ≠ａおよびｂ∈｛０、１｝のときタイプ｛（ａ）、（ｂａ）、（ｂｂａ）、．．．、（ｂ．．．ｂａ）、（ｂｂ．．．ｂ）｝であるシンボル列を復元するように構成されているデコーダ。
【請求項４６】
請求項２５から請求項４５のいずれか１項に記載のデコーダにおいて、前記エントロピーデコーダの所定の１つは可変長の符号語を固定長のシンボル列にそれぞれマッピングするように構成された可変長デコーダであり、前記所定のエントロピーデコーダは全単射マッピングルールを使用し、前記全単射マッピングルールに基づいて、２次接頭語無し符号の符号語は１次符号の長さ３の２３符号語にマッピングされて、
【数１６７】
2013528025.tif 000181
である符号語（ｃ）が
【数１６８】
2013528025.tif 000182
である前記１次符号の前記符号語（ａａａ）３にマッピングされ、ｃ≠ｄおよび
【数１６９】
2013528025.tif 000183
である（ｄ）を接頭語として有しかつ３つの２ビットのワードの第１の集合のうちのそれぞれの第１の２ビットのワードを接尾語として有する符号語がｂ≠ａおよび
【数１７０】
2013528025.tif 000184
である１つだけのｂを有する前記１次符号の３つの符号語全てにマッピングされ、（ｄ）を接頭語として有しかつ前記第１の集合の要素ではない第１の２ビットのワードと３つの２ビットのワードの第２の集合のうちの第２の２ビットのワードとの連結を接尾語として有する符号語が１つだけのａを有する前記１次符号の３つの符号語全てにマッピングされ、（ｄ）を接頭語として有しかつ前記第１の集合の要素ではない前記第１の２ビットのワードと前記第２の集合の要素ではない第２の２ビットのワードとの連結を接尾語として有する符号語が符号語（ｂｂｂ）３にマッピングされるデコーダ。
【請求項４７】
請求項４６に記載のデコーダにおいて、１つだけのｂを有する前記１次符号の前記符号語の前記第１の２ビットのワードは前記１次符号の前記それぞれの符号語内で前記ｂの位置の２ビットの表現であり、１つだけのａを有する前記１次符号の前記符号語の前記第２の２ビットのワードは前記１次符号の前記それぞれの符号語内の前記ａの位置の２ビットの表現であるデコーダ。
【請求項４８】
請求項２５から請求項４７のいずれか一項に記載のデコーダにおいて、
前記エントロピーデコーダの所定の１つは、可変長の符号語を３つのシンボル各々のシンボル列へそれぞれマッピングするように構成された可変長デコーダであり、前記それぞれのエントロピーデコーダの前記ビットストリームを前記シンボルへ変換する際、前記それぞれのビットストリームの前記第１のビットを検討するように構成され、
前記それぞれのビットストリームの前記第１のビットが
【数１７１】
2013528025.tif 000185
のときｃと等しいかどうかを判定し、そうである場合、前記所定のエントロピーデコーダが０｛０、１｝のとき（ａａａ）３と等しいシンボル列を復元するように構成され、または、
前記それぞれのビットストリームの前記第１のビットがｃ≠ｄおよび
【数１７２】
2013528025.tif 000186
であるｄと等しいかどうかを判定し、そうである場合、前記所定のエントロピーデコーダは、前記第１のビットに後続する、前記それぞれのビットストリームの２個の更なるビットから第１の２ビットのワードを決定しかつ前記第１の２ビットのワードを検討するように構成され、
前記第１の２ビットのワードが３つの２ビットのワードの第１の集合の要素でないかどうかを判定し、そうである場合、前記所定のエントロピーデコーダは前記それぞれのシンボル列内のｂの位置が前記第１の２ビットのワードに応じる、ｂ≠ａおよび
【数１７３】
2013528025.tif 000187
である１つだけのｂを有するシンボル列を復元するように構成され、または、
前記第１の２ビットのワードが前記第１の集合の要素であるかどうかを判定し、そうである場合、前記所定のエントロピーデコーダは、前記第１の２ビットのワードが既に決定されている前記２つのビットに後続する、前記それぞれのビットストリームの２個の更なるビットから第２の２ビットのワードを決定し、前記第２の２ビットのワードを検討するように構成され、
前記第２の２ビットのワードが３つの２ビットのワードの第２の集合の要素でないかどうかを判定し、そうである場合、前記所定のエントロピーデコーダは、前記それぞれのシンボル列のａの前記位置が前記第２の２ビットのワードに応じる、１つだけのａを有するシンボル列を復元するように構成され、または、
前記第２の２ビットのワードが３つの２ビットのワードの第２の集合の要素であるかどうかを判定し、そうである場合、前記所定のエントロピーデコーダは（ｂｂｂ）３と等しいシンボル列を復元するように構成されている
デコーダ。
【請求項４９】
請求項２５から請求項４１のいずれか１項に記載のデコーダにおいて、
前記エントロピーデコーダの少なくとも１つの部分集合の各々は、現在のインターバル幅Ｒと前記現在のインターバル幅Ｒ内の値Ｖによって定義付けられる内部状態を有するバイナリ算術復号化エンジンであり、前記バイナリ算術復号化エンジンは、前記それぞれのビットストリームを前記シンボルへ変換する際、
ｉ＝０．．．Ｋ−１であるＫインターバル［Ｄｉ、Ｄｉ＋１）を使用して、Ｒがインターバル［Ｄｑ＿ｉｎｄｅｘ、Ｄｑ＿ｉｎｄｅｘ＋１）の範囲に含まれるように、前記現在のインターバル幅Ｒを量子化インデックスｑ＿ｉｎｄｅｘにマッピングし、
ＬＰＳに対応する部分的インターバル幅ＲＬＰＳ＝Ｒｔａｂ［ｑ＿ｉｎｄｅｘ］を取得するために、テーブルＲｔａｂとインデックスとしての量子化インデックスｑ＿ｉｎｄｅｘを使用して前記テーブルＲｔａｂへのインターバル分割を実行し、ここで、Ｒｔａｂ［ｉ］がｉ＝０．．．Ｋ−１に対する２の指数であり、ここで、ＭＰＳに対応する前記部分インターバル幅ＲＭＰＳはＲ−ＲＬＰＳであり、
ＲＭＰＳ≦Ｖであるかどうかをチェックし、ＲＭＰＳ≦Ｖである場合、現在のシンボルをＬＰＳと等しくなるように復元し、ＶをＶ−ＲＭＰＳになるように、そして、ＲをＲＬＰＳになるように更新し、ＲＭＰＳ≦Ｖでない場合、現在のシンボルとＮＭＰＳ−１個の後続のシンボルを、ＮＭＰＳ＝（Ｒ−ｍａｘ｛Ｖ＋１、Ｄｑ＿ｉｎｄｅｘＲＬＰＳ｝）／ＲＬＰＳであるＭＰＳと等しくなるように復元し、ＲをＲ−ＮＭＰＳ・ＲＬＰＳになるように更新し、
前記それぞれのビットストリームを用いてＲを繰り込みかつＶを更新するように構成されている
デコーダ。
【請求項５０】
請求項４９に記載のデコーダにおいて、前記エントロピーデコーダの前記部分集合の各々の前記バイナリ算術復号化エンジンは、Ｒを繰り込み、Ｖを更新する際、Ｒｍｉｎ＝Ｄ０のときＲ＜Ｒｍｉｎであるかどうかをチェックし、Ｒ＜Ｒｍｉｎの場合、ＲがＲｍｉｎと等しいかこれより大きくなるように最小値ｙを用いてＲをＲ・２ｙになるように増分し、Ｖｙビット位置を左へシフトすることによってＶを更新し、ライン整列された前記それぞれのビットストリームの次のｙ個のビットに基づいてＶの前記ｙ個の最下位ビットを設定するように構成されているデコーダ。
【請求項５１】
請求項４９または５０に記載のデコーダにおいて、前記エントロピーデコーダの前記部分集合は各々が異なるテーブルＲｔａｂを有する複数のエントロピーデコーダを含むデコーダ。
【請求項５２】
請求項５１に記載のデコーダにおいて、前記複数のデコーダに対して、Ｒｔａｂ［ｉ］が、エントロピーデコーダごとに、ｐＬＰＳと、Ｑｉ∈［Ｄｉ、Ｄｉ＋１）であるベクトル｛Ｑ０、．．．、ＱＫ−１｝と、のペアが存在するように選択され、これにより、ｉ＝０．．．Ｋのとき、０．９９・ｐＬＰＳ・Ｑｉ＜Ｒｔａｂ［ｉ］＜１．０１・ＰＬＰＳ・Ｑｉであり、ｐＬＰＳは前記複数のエントロピーデコーダのなかで相互に異なっているデコーダ。
【請求項５３】
請求項５１または５２に記載のデコーダにおいて、Ｋは前記複数のエントロピーデコーダのなかで相互に異なっているデコーダ。
【請求項５４】
請求項４９から請求項５４のいずれか１項に記載のデコーダにおいて、
前記複数のエントロピーデコーダのうち、ｉ＝１．．．Ｋのとき、Ｋ＝１またはＱｉ＝Ｑ０の少なくとも１つに対して、前記エントロピーデコーダの前記バイナリ算術復号化エンジンは、前記それぞれのビットストリームを前記シンボルに変換する際、
ＲＬＰＳ＝Ｑ０を設定することによってインターバル分割を実行し、
ＲＭＰＳ≦Ｖであるかどうかをチェックし、ＲＭＰＳ≦Ｖである場合、現在のシンボルをＬＰＳと等しくなるように復元し、ＶをＶ−ＲＭＰＳになるように、ＲをＲＬＰＳになるように更新し、ＲＭＰＳ≦Ｖでない場合、現在のシンボルとＮＭＰＳ−１個のこれに続くシンボルを、ＮＭＰＳ＝（Ｒ−ｍａｘ｛Ｖ＋１、Ｒｍｉｎ−ＲＬＰＳ｝）／ＲＬＰＳであるＭＰＳと等しくなるように復元し、ＲをＲ−ＮＭＰＳ・ＲＬＰＳになるように更新し、
前記それぞれのビットストリームを用いてＲを繰り込みかつＶを更新するように構成されている
デコーダ。
【請求項５５】
請求項４９から請求項５４のいずれか１項に記載のデコーダにおいて、前記エントロピーデコーダの前記部分集合の各々の前記バイナリ算術復号化エンジンは、項｛Ｒ−ｍａｘ｛Ｖ＋１、Ｄｑ＿ｉｎｄｅｘ−ＲＬＰＳ｝）ｌｏｇ２（ＲＬＰＳ）ビットの結果値を右にシフトすることによって、ＮＭＰＳを計算するように構成されているデコーダ。
【請求項５６】
請求項２５から請求項４１のいずれかに１項に記載のデコーダにおいて、
前記エントロピーデコーダの少なくとも１つの部分集合の各々は、現在のインターバル幅Ｒと前記現在のインターバル幅Ｒ内の値Ｖによって定義付けられる内部状態を有するバイナリ算術復号化エンジンであり、前記バイナリ算術復号化エンジンは、前記それぞれのビットストリームを前記シンボルに変換する際、
ＬＰＳに対応する前記部分的インターバル幅ＲＬＰＳをＱ０と等しくなるように設定することによってインターバル分割を実行し、ここで、ＭＰＳに対応する前記部分的インターバル幅ＲＭＰＳはＲ−ＲＬＰＳであり、
ＲＭＰＳ≦Ｖであるかどうかをチェックし、ＲＭＰＳ≦Ｖである場合、現在のシンボルをＬＰＳと等しくなるように復元し、ＶをＶ−ＲＭＰＳになるように、ＲをＲＬＰＳになるように更新し、ＲＭＰＳ≦Ｖでない場合、現在のシンボルとＮＭＰＳ−１個のこれに続くシンボルを、ＮＭＰＳ＝（Ｒ−ｍａｘ｛Ｖ＋１、Ｄｑ＿ｉｎｄｅｘ−ＲＬＰＳ｝／ＲＬＰＳであるＭＰＳと等しくなるように復元し、ＲをＲ−ＮＭＰＳ・ＲＬＰＳになるように更新し、
前記それぞれのビットストリームを用いてＲを繰り込み、Ｖを更新するように構成されている
デコーダ。
【請求項５７】
有意性マッピングのシンタックス要素を順に表すシンボル列と、次に、ゼロと不等である変換係数を含む（ビデオ）画像のブロックに対してゼロと不等である変換係数の値のシンボル表現と、を復号化するためのデバイスであって、前記有意性マッピングの前記シンタックス要素は、前記それぞれの位置において変換係数がゼロと不等であるかどうかをスキャン順序にしたがって前記変換係数の前記位置を指定し、ゼロと不等である変換係数の値の前記シンボル表現は、ゼロと不等である最後の変換係数からスタートする逆スキャン順序にしたがって前記シンボル列によって表され、前記デバイスは、請求項２５から請求項５６のいずれか１項に記載のデコーダを使用して、前記シンボル列を復元するように構成されているデバイス。
【請求項５８】
エントロピー符号化された情報シンボルをエントロピー復号化するための装置であって、前記エントロピー符号化された情報シンボルは、前記シンボルに対する確率情報に基づいてシンボル列のシンボルをエントロピー符号化することによって生成され、前記シンボルはシンボル集合の一部であり、前記シンボルに対する前記確率情報は、前記シンボルのコンテクストに基づいて求められ、前記コンテクストは、先に処理されている１以上のコンテクストシンボルを含み、前記スタートシンボルをエントロピー符号化するために初期化確率情報が使用され、前記初期化確率情報はスタートシンボルに関連するとともに初期化確率分布が前記シンボル集合の全てのシンボルに対する等確率分布とは異なるように決定されるシンボル統計の予測に基づくものであり、
前記装置が、請求項２５〜請求項５６のいずれか１項に記載の前記シンボル列を復元するためのデコーダであって、前記情報シンボルの列をエントロピー符号化する時に既に使用されていた前記確率情報を取得するように構成され、前記スタートシンボルをエントロピー符号化する時に既に使用されていた前記初期化確率情報を取得するために初期化部を備えたデコーダを含む、装置。
【請求項５９】
請求項２８または２９に記載のデコーダにおいて、前記割当部は、復元される前記シンボル列内で、前記それぞれのコンテクストが割り当てられるシンボルの最初の出現に先立ってそれぞれの初期化確率分布予測に対してコンテクストごとに前記確率分布予測を初期化するように構成されており、前記初期化確率分布予測は、スタートシンボルに関連するとともに初期化確率分布が前記シンボルの基礎となるシンボル集合の全てのシンボルに対する等確率分布と異なるように決定されるシンボル統計に基づく、デコーダ。
【請求項６０】
請求項２８または２９に記載のデコーダにおいて、
復元される前記シンボル列は、所定のシンタックス要素のシンボル表現の少なくとも１つのシンボルを含み、前記復元されるシンボル列は、ビデオ信号のプリコードされたバージョンであるプリコードされたビデオ信号であり、前記ビデオ信号は画像サンプルから成る少なくとも１つのビデオフレームを表し、前記画像サンプルは異なる時刻でキャプチャされる第１または第２のフィールドのいずれかに属しており、前記ビデオフレームはマクロブロック対領域へ空間的に分割され、各マクロブロック対領域はトップおよびボトムマクロブロックに関連付けられるとともに第１または第２のいずれかの分布タイプであり、各マクロブロック対領域に対して、前記それぞれのマクロブロック対領域内の前記画素サンプルの各々が、前記それぞれのマクロブロック対領域の前記分布タイプに基づいて、前記それぞれのマクロブロック対領域の前記トップおよびボトムのマクロブロックの各々に割り当てられ、前記所定のシンタックス要素は前記マクロブロック対領域の所定のマクロブロック対領域の前記トップおよびボトムのマクロブロックの所定のマクロブロックに関連しており、
前記割当部が、
前記所定のシンタックス要素に対して、少なくとも前記所定のマクロブロック対領域が第１または第２のいずれの分布タイプかに基づいて近接マクロブロックを判定し、
前記近接マクロブロックの所定の属性に基づいて、少なくとも２つのコンテクストのいずれか１つを、前記所定のシンタックス要素の前記シンボル表現の前記少なくとも１つのシンボルへ割り当て、各コンテクストは異なる確率分布予測に関連付けられており、
前記少なくとも１つのシンボルに割り当てられた前記コンテクストに関連付けられた前記確率分布予測に基づいて、前記少なくとも１つのシンボルに対する前記確率分布の前記予測に対する前記測度を求めるように構成されている、
デコーダ。
【請求項６１】
請求項６０に記載のデコーダにおいて、
前記所定のシンタックス要素に対して、近接マクロブロックを決定する際、
割当部は、少なくとも前記所定のマクロブロック対領域が前記フレーム符号化されたまたはフィールド符号化された分布タイプであるかに基づいて前記所定のマクロブロックの左の近接マクロブロックを判定するように構成され、
前記所定のマクロブロックの左の近接マクロブロックは、前記所定のマクロブロック対領域が前記フィールド符号化された分布タイプであれば、前記所定のマクロブロック対領域の左側のマクロブロック対領域のボトムマクロブロックになると判定され、
左の前記マクロブロック対領域も前記フィールド符号化された分布タイプであれば、前記所定のマクロブロックは前記所定のマクロブロック対領域の前記ボトムマクロブロックであり、
左の前記マクロブロック対領域が前記フレーム符号化された分布タイプであれば、前記所定のマクロブロックの左の前記近接マクロブロックは前記所定のマクロブロック対領域の左の前記マクロブロック対領域のトップマクロブロックであると判定され、または、左の前記マクロブロック対領域が前記フィールド符号化された分布タイプであれば、前記所定のマクロブロックは前記所定のマクロブロック対領域の前記トップマクロブロックになり、
前記所定のマクロブロックの左の前記近接マクロブロックは、前記所定のマクロブロック対領域が前記フレーム符号化された分布タイプであれば、前記所定のマクロブロック対領域の左の前記マクロブロック対領域の前記ボトムマクロブロックであると判定され、
左の前記マクロブロック対領域も前記フレーム符号化された分布タイプであれば、前記所定のマクロブロックは前記所定のマクロブロック対領域の前記ボトムマクロブロックであり、
前記所定のマクロブロックの左の前記近接マクロブロックは、左の前記マクロブロック対領域が前記フィールド符号化された分布タイプであれば、前記所定のマクロブロック対領域の左の前記マクロブロック対領域の前記トップマクロブロックであると判定され、または、
左の前記マクロブロック対領域が前記フレーム符号化された分布タイプであれば、前記所定のマクロブロックは前記所定のマクロブロック対領域の前記トップマクロブロックになり、
前記所定のマクロブロックの上の近接マクロブロックは、少なくとも前記所定のマクロブロック対領域がフレーム符号化されたまたはフィールド符号化された分布タイプであるかに基づき、
前記所定のマクロブロックの上の前記近接マクロブロックは、前記所定のマクロブロック対領域が前記フレーム符号化された分布タイプであれば、
前記所定のマクロブロックが前記所定のマクロブロック対領域の前記ボトムマクロブロックである場合には前記所定のマクロブロック対領域のトップマクロブロックであると判定され、
前記所定のマクロブロックが前記所定のマクロブロック対領域の前記トップマクロブロックである場合、前記所定のマクロブロック対領域の上に対する前記マクロブロック対領域のボトムマクロブロックであると判定され、
前記所定のマクロブロック対領域が前記フィールド符号化された分布タイプでありかつ前記所定のマクロブロックが前記所定のマクロブロック対領域の前記トップマクロブロックである場合、
前記所定のマクロブロックの上の前記近接マクロブロックは、
前記所定のマクロブロック対領域の上の前記マクロブロック対領域が前記フレーム符号化された分布タイプであれば、前記所定のマクロブロック対領域の上に対する前記マクロブロック対領域の前記ボトムマクロブロックであると判定され、
前記所定のマクロブロック対領域の上に対する前記マクロブロック対領域が前記フィールド符号化された分布タイプであれば、前記所定のマクロブロック対領域の上に対する前記マクロブロック対領域の前記トップマクロブロックであると判定され、
前記所定のマクロブロックの上の前記近接マクロブロックは、
前記所定のマクロブロック対領域が前記フィールド符号化された分布タイプでありかつ前記所定のマクロブロックが前記所定のマクロブロック対領域の前記ボトムマクロブロックである場合、前記所定のマクロブロック対領域の上に対する前記マクロブロック対領域の前記ボトムマクロブロックであると判定され、
前記所定のマクロブロックの左の前記近接マクロブロックと前記所定のマクロブロックの上の前記近接マクロブロックの所定の属性に基づいて、前記所定のマクロブロックの前記所定のシンタックス要素へ前記少なくとも２つのコンテクストモデルの１つを割り当てる、
デコーダ。
【請求項６２】
請求項６０または６１に記載のデコーダにおいて、
前記所定のシンタックス要素は、前記マクロブロック対領域の所定のマクロブロック対領域の前記トップおよびボトムマクロブロックの所定のマクロブロックに関連しておりかつ前記所定のマクロブロックのクロマ情報に使用される空間予測のタイプを示すクロマ予測インジケータであり、
前記割当部は、
前記少なくとも２つのコンテクストの１つを割り当てる際、前記所定のマクロブロックと前記近接マクロブロックが前記ビデオフレームの同一スライスまたは前記ビデオフレームの異なるスライスに属するかどうかを示す前記近接マクロブロックの利用可能性、
予測に使用される前記近接マクロブロックのマクロブロック予測モードと分割を指定する、前記近接マクロブロックのマクロブロックタイプインジケータ、
前記符号化されたビットストリームにおいて前記近接マクロブロックがインターまたはイントラ符号化であること、および
前記近接マクロブロックに対して、前記近接マクロブロックのクロマ情報に使用される空間予測タイプを指定するシンタックス要素、
に基づいて、前記割当てを実行するように構成されている、
デコーダ。
【請求項６３】
請求項６０から請求項６２のいずれか１項に記載のデコーダにおいて、
前記第１と第２のフィールドはそれぞれ、前記ビデオフレームの交互の行のトップおよびボトムフィールドであり、前記第１と第２の分布タイプはそれぞれ、フレーム符号化されたまたはフィールド符号化された分布タイプであり、前記それぞれのマクロブロック対領域内の前記画素サンプルの各々が前記それぞれのマクロブロック対領域の前記分布タイプに基づいて前記それぞれのマクロブロック対領域の前記トップおよびボトムマクロブロックのそれぞれの１つに割り当てられ、これによって、前記フレーム符号化された分布タイプに基づいて、前記それぞれのマクロブロック対領域の上方部分に配置されている画素サンプルが前記トップマクロブロックへ割り当てられ、前記それぞれのマクロブロック対領域の下方部分に配置されている画素サンプルが前記ボトムマクロブロックへ割り当てられる一方、前記フィールド符号化された分布タイプに基づいて、前記トップフィールドに属している前記それぞれのマクロブロック対領域内の画素サンプルが前記トップマクロブロックに割り当てられ、前記ボトムフィールドに属している前記それぞれのマクロブロック対領域内の画素サンプルが前記ボトムマクロブロックに割り当てられ、前記マクロブロックの各々が前記シンタックス要素の各１つへ関連付けられ、前記所定のシンタックス要素は前記マクロブロック対領域の所定のマクロブロック対領域の前記トップおよびボトムマクロブロックの所定のマクロブロックに関連しており、ここで、
割当部は、
前記所定のシンタックス要素に対して近接マクロブロックを決定する際、
前記所定のマクロブロック対領域が、前記フレーム符号化されたまたはフィールド符号化された分布タイプか、左のマクロブロック対領域が前記フレーム符号化されたまたはフィールド符号化された分布タイプか、および前記所定のマクロブロックが前記所定のマクロブロック対領域の前記トップマクロブロックであるかまたは前記ボトムマクロブロックであるか基づいて、前記所定のマクロブロックの左の近接マクロブロックを決定し、
前記所定のマクロブロック対領域が前記フィールド符号化された分布タイプである場合、左の前記マクロブロック対領域も前記フィールド符号化された分布タイプでありかつ前記所定のマクロブロックが前記所定のマクロブロック対領域の前記ボトムマクロブロックであり、次いで、
前記所定のマクロブロックの左の前記近接マクロブロックは前記所定のマクロブロック対領域の左の前記マクロブロック対領域のボトムマクロブロックであると決定され、
前記所定のマクロブロック対領域が前記フィールド符号化された分布タイプである場合、左の前記マクロブロック対領域は前記フレーム符号化された分布タイプでありかつ前記所定のマクロブロックは前記所定のマクロブロック対領域の前記ボトムマクロブロックであり、次いで、
前記所定のサブパートの左上のサンプルのルマロケーションのライン数が前記所定のマクロブロックの上半分内にある場合、前記所定のマクロブロックの左の前記近接マクロブロックは前記所定のマクロブロック対領域の左の前記マクロブロック対領域のトップマクロブロックであると決定され、
前記所定のサブパートの前記左上のサンプルの前記ルマロケーションの前記ライン数が前記所定のマクロブロックの下半分内にある場合、前記所定のマクロブロックの左の前記近接マクロブロックは前記所定のマクロブロック対領域の左の前記マクロブロック対領域の前記ボトムマクロブロックであると決定され、
前記所定のマクロブロック対領域が前記フィールド符号化された分布タイプである場合、左のマクロブロック対領域も前記フィールド符号化された分布タイプでありかつ前記所定のマクロブロックは前記所定のマクロブロック対領域の前記トップマクロブロックであり、次いで、
前記所定のマクロブロックの左の前記近接マクロブロックは、前記所定のマクロブロック対領域の左の前記マクロブロック対領域の前記トップマクロブロックであると決定され、
前記所定のマクロブロック対領域が前記フィールド符号化された分布タイプである場合、左の前記マクロブロック対領域は前記フレーム符号化された分布タイプでありかつ前記所定のマクロブロックは前記所定のマクロブロック対領域の前記トップマクロブロックであり、次いで、
前記所定のサブパートの前記左上のサンプルの前記ルマロケーションの前記ライン数が前記所定のマクロブロックの上半分内に置かれている場合、前記所定のマクロブロックの左の前記近接マクロブロックは、前記所定のマクロブロック対領域の左の前記マクロブロック対領域の前記トップマクロブロックであると決定され、
前記所定のサブパートの前記左上のサンプルの前記ルマロケーションの前記ライン数が前記所定のマクロブロックの下半分内にある場合、前記所定のマクロブロックの左の前記近接マクロブロックは、前記所定のマクロブロック対領域の左の前記マクロブロック対領域の前記ボトムマクロブロックであると決定され、
前記所定のマクロブロック対領域が前記フレーム符号化された分布タイプである場合、左のマクロブロック対領域も前記フレーム符号化された分布タイプでありかつ前記所定のマクロブロックは前記所定のマクロブロック対領域の前記トップマクロブロックであり、次いで、
前記所定のマクロブロックの左の前記近接マクロブロックは前記所定のマクロブロック対領域の左の前記マクロブロック対領域の前記トップマクロブロックであると決定され、
前記所定のマクロブロック対領域が前記フレーム符号化された分布タイプである場合、左の前記マクロブロック対領域は前記フィールド符号化された分布タイプでありかつ前記所定のマクロブロックは前記所定のマクロブロック対領域の前記トップマクロブロックであり、次いで、
前記所定のマクロブロックの左の前記近接マクロブロックは前記所定のマクロブロック対領域の左の前記マクロブロック対領域の前記トップマクロブロックであると決定され、
前記所定のマクロブロック対領域が前記フレーム符号化された分布タイプである場合、左のマクロブロック対領域も前記フレーム符号化された分布タイプでありかつ前記所定のマクロブロックは前記所定のマクロブロック対領域の前記ボトムマクロブロックであり、次いで、
前記所定のマクロブロックの左の前記近接マクロブロックは、前記所定のマクロブロック対領域の左の前記マクロブロック対領域の前記ボトムマクロブロックであると決定され、
前記所定のマクロブロック対領域が前記フレーム符号化された分布タイプである場合、左の前記マクロブロック対領域は前記フィールド符号化された分布タイプでありかつ前記所定のマクロブロックは前記所定のマクロブロック対領域の前記ボトムマクロブロックであり、次いで、
前記所定のマクロブロックの左の前記近接マクロブロックは、前記所定のマクロブロック対領域の左の前記マクロブロック対領域の前記トップマクロブロックであると決定され、
前記所定のマクロブロックの左の前記近接マクロブロックの所定の属性に基づいて前記少なくとも２つのコンテクストモデルの１つを前記所定のシンタックス要素に割り当てるように構成されている、
デコーダ。
【請求項６４】
請求項６０から請求項６３のいずれか１項に記載のデコーダにおいて、
前記シンタックス要素は、前記それぞれのマクロブロックに対して、前記それぞれのマクロブロックが前記プリコードされたビデオ信号を復号化する時にスキップされるかどうかを指定するスキップインジケータであり、
前記シンタックス要素は、予測に使用される前記それぞれのマクロブロックのマクロブロック予測モードと分割を指定するタイプインジケータであり、
前記シンタックス要素は、前記それぞれのマクロブロックに対して、前記それぞれのマクロブロックのどのサブパートが非ゼロ変換係数を含み、どのサブパートが非ゼロ変換係数を含まないかを指定するパターンインジケータであり、
前記シンタックス要素は、前記それぞれのマクロブロックに対して、前記それぞれのマクロブロックのクロマ情報に使用される空間予測のタイプを示すクロマ予測インジケータであり、
前記所定のマクロブロックは、前記所定のマクロブロックが分割されるサブパートの単位またはこのサブパートを分割するより小さいサブユニットにおいて、空間ドメインから頻度ドメインへ変換され、前記所定のシンタックス要素は、前記所定のマクロブロックの所定のサブパートに対して、前記所定のサブパートが少なくとも１つの非ゼロ変換係数を含む変換係数の集合に対応しているかどうかを指定し、
前記シンタックス要素は、それぞれのマクロブロックに対する前記分割の所定の１つに対して、動きベクトル成分と前記動きベクトル成分の予測との間の差分を指定し、または
前記所定のシンタックス要素は、前記マクロブロック対領域の所定のマクロブロック対領域の前記トップおよびボトムマクロブロックの所定のマクロブロックに関連しており、前記所定のマクロブロックの分割の所定の１つに対して、前記所定のマクロブロックの動き予測において使用される基準画像のインデックスを指定する、
デコーダ。
【請求項６５】
請求項２５から請求項５６のいずれか１項に記載のデコーダにおいて、
前記復元されるシンボル列の前記シンボルはビンでありかつデータ値のバイナリ表現を含み、前記データ値の前記バイナリ表現は、第１の２値化方式に基づく前記データ値の最小値と所定のカットオフ値の２値化である１次接頭語を有し、前記データ値が前記所定のカットオフ値より大きい場合、１次接尾語は前記１次接頭語に付記され、前記１次接尾語は第２の２値化方式に基づく前記データ値から前記所定のカットオフ値を引いた差分の２値化であり、
前記割当部と前記選択部は、
前記バイナリ表現においてビンごとに、
前記ビンが前記１次接頭語の一部である場合、前記割当部は前記ビンに対して前記パラメータを決定し、前記選択部はこれに基づいて前記検索と選択を実行し、
前記符号語の前記ビンが前記１次接尾語の一部である場合、前記選択部は静的ビン値確率予測によって前記ビンを復号化するように構成されている前記デコーダの復号化ステージから前記ビンを検索し、
これによって、前記データ値の前記バイナリ表現を取得するように構成されている、
デコーダ。
【請求項６６】
請求項２５または５６に記載のデコーダにおいて、
前記復元されるシンボル列は所定のシンタックス要素のシンボル表現の少なくとも１つのシンボルを含み、前記復元されるシンボル列は少なくとも１つのビデオフレームを表すプリコードされたビデオであり、前記シンタックス要素は前記ビデオフレームの所定の部分に関連付けられかつ前記ビデオフレームの前記所定の部分が第１または第２のいずれの方法で前記プリコードされたビデオ信号へプリコードされるかを示しており、ここで、
前記割当部は、
前記所定の部分に近接する前記ビデオフレームの近接部分がバイナリ値を取得するために前記第１または前記第２のいずれの方法でプリコードされるかを調査し、
前記バイナリ値に基づいて前記所定のシンタックス要素の前記シンボル表現の前記少なくとも１つのシンボルに少なくとも２つのコンテクストの１つを割り当て、ここで、各コンテクストモデルは異なる確率予測に関連付けられており、
前記少なくとも１つのシンボルに割り当てられた前記コンテクストに関連付けられた前記確率分布予測に基づいて前記少なくとも１つのシンボルに対して前記確率分布の前記予測に対する前記測度を求めるように構成されている、
デコーダ。
【請求項６７】
請求項１９または２０に記載のデコーダにおいて、
前記復元されるシンボル列は変換データユニットまたはそのサブユニットのシンボル表現の少なくとも１つのシンボルを含み、前記変換データユニットは、ビデオフレームまたは画像の複数の部分のうちの所定の部分に対応するデータの変換の結果値である変換係数の所定の変換係数のプリコードされたバージョンであり、前記複数の部分は第１のスキャンパターンに関連付けられている第１のタイプの部分または第２のスキャンパターンに関連付けられている第２のタイプの部分のいずれかであり、
前記割当部は、
前記所定の部分が前記第１または前記第２のいずれのスキャンパターンに関連付けられたタイプの部分であるかに基づいて、コンテクストモデルの第１の集合と第２の集合を選択し、前記第１の集合と前記第２の集合は互いに異なっており、
前記所定の変換係数に割り当てられた前記スキャン位置に基づいてコンテクストモデルの前記第１または第２の集合の前記選択された１つの集合の１つのコンテクストモデルを前記変換データユニットまたは前記そのサブユニットの前記シンボル表現の前記少なくとも１つのシンボルに割り当て、各コンテクストモデルは異なる確率予測に関連付けられており、
前記少なくとも１つのシンボルに割り当てられた前記コンテクストモデルに関連付けられる前記確率分布予測に基づいて前記少なくとも１つのシンボルに対する前記確率分布の前記予測に対する前記測度を求めるように構成されている、
デコーダ。
【請求項６８】
シンボル列を復元する方法であって
前記シンボル列の前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボル列の各シンボルへ多数のパラメータを割り当てるステップと、
複数のエントロピーデコーダの選択された１つから復元される前記シンボル列の各シンボルを検索するステップであって、前記選択が前記それぞれのシンボルに対して定義付けられた前記パラメータの数に依存しておりかつ前記複数のエントロピーデコーダの各々がそれぞれのビットストリームをシンボルに変換するように構成されている、ステップと、
を含む、方法。
【請求項６９】
コンピュータ実行時に、クレーム２４または６８に記載の方法を実行するためのプログラムコードを有するコンピュータプログラムを格納しているコンピュータ読み出し可能なデジタル記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、ビデオおよびオーディオの圧縮などのアプリケーションに使用されるエントロピー符号化に関する。
【０００２】
本発明は、離散的データのエントロピー符号化および復号化のための新しい方法および装置を記載している。一般に、エントロピー符号化は、最も汎用な形態のデータの可逆圧縮と考えることができる。可逆圧縮は、元のデータの表現に必要とされるよりも少ないビット数でも、情報を全く損失せずに、離散的データを表すことを目的とする。離散的データは、テキスト、図形、画像、ビデオ、オーディオ、音声、ファクシミリ、医用データ、気象データ、財務データの形態、または他の形態のデジタルデータの形態で提供される。
【背景技術】
【０００３】
エントロピー符号化において、基礎となる離散的データソースの特定のハイレベルな特徴は無視される場合が多い。これによって、任意のデータソースは、所与のｍ変数のアルファベットの値を取り、かつ対応する（離散的）確率分布｛ｐ１、．．．、ｐｍ｝によって特徴付けられるソースシンボルの列として与えられると考えられる。これらの抽象的な設定において、シンボルあたりのビットの予想される符号語の長さに関するエントロピー符号化方法の下限はエントロピーによって与えられる。
【数１】
2013528025.tif 000003
【０００４】
ハフマン符号や算術符号はエントロピー限界（ある意味で）を近似化することが可能な実用的符号の周知の例である。固定した確率分布に対して、ハフマン符号を構築するのは比較的容易である。ハフマン符号の最も魅力的な特性は、そのインプリメンテーションが可変長符号（ＶＬＣ）テーブルを使用することによって効率的に実現可能である点にある。しかしながら、時変するソース統計、すなわち、変化するシンボル確率を扱う場合、ハフマン符号とそれに対応するＶＬＣテーブルの適応はアルゴリズムの複雑さだけでなくインプリメンテーションコストの両方に鑑みて要求が多すぎるという問題があった。また、ｐｋ＞０．５の支配的なアルファベット値を有する場合、（たとえば、ランレングス符号化などの任意のアルファベットの拡張子を使用しない）対応するハフマン符号はかなりの冗長度を生じてしまう。ハフマン符号のもう１つの欠点は、高次数の確率モデリングを扱う場合、ＶＬＣテーブルの多数の集合が必要とされるという事実によってもたらされる。これに対して、算術符号化は、実質的にはＶＬＣより複雑であるが、適応型および高次数の確率モデリングだけでなく、かなり偏った確率分布に対処する時により一貫性のある十分な処理ができるという利点を提供する。実際のところ、この特徴は、基本的には、算術符号化は、少なくとも概念的に、多かれ少なかれ直接的な方法で、確率予測の任意の所与の値をマッピングするために結果として得られる符号語の部分にメカニズムを与えるという事実から得ることができる。このようなインターフェイスを具備することで、算術符号化は、一方で、確率モデリングと確率予測のタスクを明確に分離させ、他方で、実際のエントロピー符号化、すなわち、シンボルの符号語へのマッピングを実現させる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
概念的ではあるが、明確にするために、以下の説明をバイナリアルファベットのケースに限定している。本発明の根本的な方法は、ｍ＞２である、ｍ変数のアルファベットの一般的なケースに適用される。バイナリアルファベットにおける値をもつシンボルの確率分布は単一パラメータｐ＝ｐＬＰＳで表され、いわゆる、確率予測ｐＬＰＳ≦０．５である確率の低いシンボル（ＬＰＳ）とｐＭＰＳ＝１−ｐＬＰＳである確率の高いシンボル（ＭＰＳ）の間で有用な分割が行われる。このように、一般のケースでは、０＜ｐＬＰＳ≦０．５０であり、実際のケースでは、確率予測は、多くの場合、最小確率値ｐｍｉｎによって下から境界付けされ、これにより、Ｐｍｉｎ≦ｐＬＰＳになる。
【課題を解決するための手段】
【０００６】
本発明の実施形態によるシンボル列を符号化するためのエンコーダはシンボル列の前のシンボル内に含まれる情報に基づいてシンボル列の各シンボルへ多数のパラメータを割り当てるように構成されている割当部と、各々がそれぞれのエントロピーエンコーダへ送られたシンボルをそれぞれのビットストリームへ変換するように構成されている複数のエントロピーエンコーダと、複数のエントロピーエンコーダの選択された１つへ各シンボルを送るように構成されている選択部であって、選択はそれぞれのシンボルへ割り当てられたパラメータの数に応じて行われる、選択部と、を含む。
【０００７】
本発明の実施形態によるシンボル列を復元するためのデコーダは、各々がそれぞれのビットストリームをシンボルへ変換するように構成されている複数のエントロピーデコーダと、シンボル列の前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボル列の各シンボルへ多数のパラメータを割り当てるように構成されている割当部と、複数のエントロピーデコーダの選択された１つのエントロピーデコーダから復元されるシンボル列の各シンボルを検索するように構成されている選択部であって、この選択はそれぞれのシンボルに対して定義付けられたパラメータの数に応じて行われる、選択部と、を含む。
【０００８】
任意のソースシンボル列が２つ以上の部分的ビットストリームへマッピングされるエントロピー符号化アルゴリズムと、元のソースシンボルが２つ以上の部分的ビットストリームから復号化される復号化アルゴリズムとの、実施形態が記載されている。エンコーダサイドでは、ソースシンボルは最初に２値化され（これらのシンボルがバイナリシンボルを表していない場合）、２値化の各ビンはパラメータの集合に関連付けられる。次に、関連付けられたパラメータは、インデックスの小集合にマッピングされ特定のインデックスに関連付けられた全てのビンが特定のバイナリエントロピーエンコーダによって符号化され、対応する符号語または複数の符号語が特定の部分的なビットストリームに書き込まれる。デコーダサイドでは、ソースシンボルはソースシンボルへのリクエストがあり次第復号化される。ソースシンボルへのリクエストをビンへのリクエストに変換するためにエンコーダと同じ２値化方式が使用され、ビンへの各リクエストはエンコーダサイドにおいて対応するビンと同じパラメータの集合に関連付けられる。関連付けられたパラメータがここでまた、インデックスの小集合にマッピングされ、ここで、マッピングはエンコーダサイドと同じマッピングである。特定のインデックスに関連付けられている全てのビンリクエストは、対応する部分的ビットストリームから符号語または複数の符号語を読み出す特定のバイナリエントロピーデコーダによって復号化される。エンコーダとデコーダは、異なるバイナリエントロピーエンコーダとデコーダが異なる符号化アルゴリズム（すなわち、ビン列と符号語の間の異なるマッピング）を使用するように構成されている。
【０００９】
本発明の好ましい実施形態において、関連付けられたパラメータの集合は、特定のビン（または同等の測度の集合）に対する２つのビン値のうちの１つの確率に対する測度を表す。確率に対する測度は、たとえば、Ｎ個の値の集合の値によって表すことができる確率の状態を表すことができる。確率の予測は、ビンの実際の符号化からデカップルされる。次に、確率測度は、ビンの符号化と復号化が特定のバイナリエントロピーエンコーダとデコーダに割り当てられる確率のインデックスへマッピングされる。確率測度の確率インデックスへのマッピング（これにより確率測度の群へクラスタリングする）はまた、たとえば、既に転送されているシンボルに応じて、経時的に変化する。たとえば、作成された部分的なビットストリームが同様のビットレートを有していることを確実にするために、一定の確率測度または確率インデックスによって符号化されたビンの数に割当てを適応させることができる。本発明の好ましい実施形態において、バイナリエントロピーのエンコーダとデコーダの数は、確率測度に対して可能な値の数より少ない。関連付けられた確率の正確な予測を可能にする多数の可能な確率測度は、各インデックスが特定のバイナリエントロピーエンコーダとデコーダに関連付けられる少数の確率のインデックスへマッピングされる。少数のバイナリエントロピーエンコーダとデコーダは、部分的ビットストリームを送信するためのオーバーヘッドを小さく保つことができるとともに、符号化および復号化システムの同期オーバーヘッドを小さく保つことができるという利点をもたらす。ビンを特定のバイナリエントロピーエンコーダとデコーダに割り当てるための基礎として確率測度を使用する場合、バイナリエンコーダとデコーダを確率測度の群の代表値に対して特に最適化することができ、これによって（最もよく知られているエントロピー符号化方式と同様の）高い符号化効率が可能になる。さらに、ビン列の符号語への単純なマッピングおよびその逆のマッピングから成る単純な符号化と復号化のアルゴリズムを確率測度の群の代表値に対して設計することができる。これにより、符号化と復号化システムの複雑さを軽減しながらも、高い符号化効率を得ることができる。この点において、ビン確率を正確に予測するためには確率測度の高粒度が必要とされることに注目されたい。すなわち、いかなる不正確性も符号化効率にマイナスの影響を与える。しかし、ビンを符号化するためには、相対的に少数（確率予測に対して可能な確率測度値の数よりもかなり小さい数）の確率群で十分である。これは、特定の確率とは異なるがこれに近い確率に対して設計されたエントロピー符号化アルゴリズムを使用して特定の関連付けられた確率測度でビンを符号化することによって得られる速度の上昇はきわめて小さいためである。少数のバイナリエントロピーエンコーダとデコーダの使用により、上述した利点が得られる。本発明の更なる実施形態において、ビンに関連付けられるパラメータの集合は、２つのビンの値の１つと１以上の更なるパラメータの確率に対する測度から成る。
【００１０】
本発明の好ましい実施形態を、設計上の態様において利点を提供する図面および本発明の様々な好ましい実施形態を参照して以下により詳細に説明し、これらの利点を強調する。
【図面の簡単な説明】
【００１１】
【図１】実施形態によるエンコーダを示すブロック図である。
【図２】実施形態による、図１のエンコーダによって生成されたビットストリームを復号化するために適切なデコーダを示すブロック図である。
【図３】実施形態による、多重化された部分的ビットストリームを使用したデータパケットを概略的に示す図である。
【図４】更なる実施形態による、固定サイズのセグメントを使用した代替セグメンテーションを有するデータパケットを概略的に示す図である。
【図５】部分的なビットストリームインターリーブを使用する実施形態によるエンコーダを示すブロック図である。
【図６】実施形態による、図５のエンコーダサイドでの符号語バッファの状態の例を概略的に示す図である。
【図７】部分的ビットストリームインターリーブを使用した実施形態によるデコーダを示すブロック図である。
【図８】符号語の単集合を用いた符号語インターリーブを使用した実施形態によるデコーダを示すブロック図である。
【図９】固定長のビット列のインターリーブを使用した実施形態によるエンコーダを示すブロック図である。
【図１０】実施形態による、図９のエンコーダサイドでのグローバルビットバッファの状態の例を概略的に示す図である。
【図１１】固定長のビット列のインターリーブを使用した実施形態によるデコーダを示すブロック図である。
【図１２】均一確率分布が（０、０．５］であることを想定して、Ｋ＝４のインターバルへの最適確率インターバル離散化を示すグラフである。
【図１３】ｐ＝０．３８のＬＰＢの確率に対するバイナリ事象のツリーとハフマンアルゴリズムによって取得された関連付けられた可変長コードとを概略的に示す図である。
【図１４】テーブルエントリの最大数Ｌｍが与えられた場合、最適コードＣに対する相対的なビットレートの上昇率ρ（ｐ、Ｃ）が集合されるグラフである。
【図１５】Ｋ＝１２のインターバル（ｃｐ．セクション３）への理論的最適確率インターバルパーティションと最大数がＬｍ＝６５のテーブルエントリである場合のＶＮＢ２ＶＬＣコードを有する実際の設計に対する速度上昇を示すグラフである。
【図１６】３項選択ツリーを完全なバイナリ選択ツリーへ変換する例を概略的に示す図である。
【図１７】実施形態によるエンコーダ（左側部分）とデコーダ（右側部分）とを含むシステムを示すブロック図である。
【図１８】図１〜図１７の実施形態のいずれかによるエントロピー符号化を用いた実施形態による符号化変換係数の基本原理を示す図である。
【図１９】有意性マッピング（マークされたシンボルは転送されない）の符号化の２つの例を示す図である。
【図２０】変換係数（ＡＢＳ）の大きさに対する２値化を示す図である。
【図２１】Ｈ．２６４／ＡＶＣの規格に対するブロックタイプとそれらの分類を示す図である。
【図２２】１ビットのシンボルＣＢＰ４に対するコンテクストモデリングを示す図である。
【図２３】有意変換係数の大きさを符号化するためのコンテクストモデリングを例示す図である。
【図２４】アプリケーション例によるエントロピーエンコーダの配列を示すブロック図である。
【図２５】図２４からの初期化部を詳細に示す図である。
【図２６】最小確率シンボル（ＬＰＳ）に対する確率情報と対応する最大確率シンボル（ＭＰＳ）の値を初期化確率情報として含む初期化確率情報テーブルを基準とする基準インデックスを算出するための一連のステップを示す図である。
【図２７】アプリケーション例によるエントロピーデコーダの配列を概略的に示すブロック図である。
【図２８】符号化環境を示すハイレベルなブロック図である。
【図２９】図２８の符号化環境のエントロピー符号化部分を示すブロック図である。
【図３０】画像またはビデオフレームのマクロブロック対への空間的分割を概略的に示す図である。
【図３１Ａ】本発明の実施形態によるフレームモードを概略的に示す図である。
【図３１Ｂ】本発明の実施形態によるフィールドモードを概略的に示す図である。
【図３２】本発明の実施形態による、近接するシンタックス要素に基づくコンテクスト割当てによるシンタックス要素の符号化を示す流れ図である。
【図３３】本発明の実施形態による、コンテクストモデルが割り当てられているコンテクストモデルに基づくシンタックス要素のバイナリエントロピー符号化を示す流れ図である。
【図３４】本発明の実施形態による、マクロブロックのアドレッシング方式を概略的に示す図である。
【図３５】サンプルが現在のマクロブロックの上部または左側の境界線を越えて配置されており、現在のマクロブロックは符号化されたフレームまたはフィールドであり、現在のマクロブロックは現在のマクロブロック対のトップまたはボトムのマクロブロックであり、したがって、マクロブロックｍｂＡｄｄｒＡが符号化されたフレームまたはフィールドであり、このサンプルがおかれるラインは奇数または偶数のライン数ｙＮであることによって、現在のマクロブロックの左上のサンプルに対する座標ｘＮとｙＮと、更に、そのサンプルに対するマクロブロックｍｂＡｄｄｒＮにおけるサンプルに対するｙ座標ｙＭと、を有するサンプルを含むマクロブロックを示すマクロブロックアドレスｍｂＡｄｄｒＮをどのように取得するかを示す表である。
【図３６】マクロブロックパーティション、サブマクロブロックパーティション、マクロブロックパーティションスキャン、およびサブマクロブロックパーティションスキャンを概略的に示す図である。
【図３７】本発明を適用可能な復号化環境を示すハイレベルなブロック図である。
【図３８】符号化されたビットストリームから図３２および図３３に示されているように符号化されたシンタックス要素の復号化を示す流れ図である。
【図３９】エントロピー復号化プロセスと図３の復号化プロセスを示す流れ図である。
【図４０】マクロブロックに対して発生するＨ．２６４／ＡＶＣビデオエンコーダに対する基本的な符号化構造を示す図である。
【図４１】現在のシンタックス要素Ｃの左および上にある２つの近接シンタックス要素ＡとＢからなるコンテクストテンプレートを示す図である。
【図４２】スライスされた画像の分割を示す図である
【図４３】左に向かって「サンプルＡ＿Ｑを使用してブロックのサンプルａ〜ｐに対して行われるイントラ＿４×４の予測」を示し、右に向かって「イントラ＿４×４の予測に対する予測方向」を示す図である。
【図４４】図４６の２値化方式に関連する２値化符号化ツリーの一部を示す図である。
【図４５】絶対データ値の２値化を概略的に示す図である。
【図４６】絶対値が２値化されるビンストリングを示す表である。
【図４７】絶対値が２値化されるビンストリングを示す表である。
【図４８】２値化を実行するための擬似Ｃコードを示す図である。
【図４９】エントロピー符号化されたビットストリームをデータ値への復号化を概略的に示す図である。
【図５０】データ値の２値化からのデータ値の回復を概略的に示す図である。
【図５１】図５０のプロセスの接尾語部分に関する抽出を概略的に示す図である。
【図５２】シンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの符号化を示す流れ図である。
【図５３】ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇｓへコンテクストモデルを割り当てるプロセスを示す流れ図である
【図５４】図５２の符号化方式によってもたらされる符号化されたビットストリームからのシンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの復号化を示す流れ図である。
【図５５】ビデオフレームまたは画像の符号化を概略的に示す流れ図である。
【図５６】フィールド符号化されたマクロブロックとフレーム符号化されたマクロブロックに対して使用される異なるスキャンパターンを示す図である。
【図５７】例示的に選択された変換係数レベルから得られる有意マップを示す表である。
【図５８】本発明の実施形態によるシンタックス要素ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇの符号化を示す流れ図である。
【図５９】デコーダサイドでの解析プロセスを示す擬似Ｃコードを示す図である。
【図６０】図５８の符号化方式によって符号化されたビットストリームからのシンタックスｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇの復号化を示す流れ図である。
【図６１Ａ】実施形態による、エントロピーエンコーダ／デコーダの対に対するＭＰＳの実行を復号化するプロセスを概略的に示す図である。
【図６１Ｂ】実施形態による、エントロピーエンコーダ／デコーダの対に対するＭＰＳの実行を復号化するプロセスを概略的に示す図である。
【図６２】実施形態によるインターバルの幅の量子化の例を概略的に示す図である。
【発明を実施するための形態】
【００１２】
図面を説明する際、これらの図中のいくつかにおいて発生する要素は各図面において同一の参照番号によって示され、機能性に関する限りこれらの要素の反復説明は不要な反復を避けるために省略していることに留意されたい。しかるに、そうでない場合の記述が特にされていない限り、１つの図に関して提供される機能性および説明は他の図にも当てはめることができる。
【００１３】
本発明の実施形態によるエンコーダを図１に示す。このエンコーダは、ソースシンボル１のストリームを２つ以上の部分的ビットストリーム１２の集合へ可逆的に変換する。本発明の好ましい実施形態において、各ソースシンボル１は１以上のカテゴリの集合のカテゴリに関連付けられる。一例として、カテゴリはソースシンボルのタイプを指定することができる。ハイブリッドビデオ符号化のコンテクストにおいて、個別のカテゴリはマクロブロック符号化モード、ブロック符号化モード、基準画像インデックス、動きベクトル差、分割フラグ、符号化されたブロックフラグ、量子化パラメータ、変換係数レベルなどに関連付けられる。オーディオ、音声、テキスト、文書、または汎用データ符号化などの他のアプリケーション分野において、ソースシンボルのさまざまな分類が可能である。
【００１４】
一般に、各ソースシンボルは有限または可算無限集合の値を取ることができ、可能なソースシンボル値の集合は、異なるソースシンボルカテゴリごとに異ならせることができる。符号化および復号化アルゴリズムの複雑さを低減するとともに異なるソースシンボルとソースシンボルカテゴリに対する一般の符号化および復号化の設計を可能にするため、ソースシンボル１はバイナリディシジョンの順序付けられた集合に変換され、これらのバイナリディシジョンは単純なバイナリ符号化アルゴリズムによって処理される。よって、バイナライザ２は各ソースシンボル１の値をビン３の列（またはストリング）へ全単射マッピングする。ビン３の列は順序付けられたバイナリディシジョンの集合を表す。各ビン３またはバイナリディシジョンは、たとえば、０と１の組合せなどの２つの値の組合せから１つの値を取ることができる。２値化方式は異なるソースシンボルカテゴリ別に異なっていてよい。特定のソースシンボルカテゴリに対する２値化方式は、その特定のカテゴリに対する可能なソースシンボル値および／またはソースシンボルの他の特性の集合に依存することができる。表１は、可算無限集合のための３つの例示的な２値化方式を示す。これらの可算無限集合の２値化方式は、シンボル値の有限集合に適用することもできる。シンボル値の大きな有限集合の場合は特に、（未使用のビン列から生じる）非効率性を無視することができるが、このような２値化方式の普遍性は複雑さとメモリ要件の面で利点を提供する。シンボル値の小さな有限集合の場合、可能なシンボル値の数に対して２値化方式を適応することが（符号化効率の点から）好ましいことが多い。表２は、８つの値から成る有限集合に対する３つの例示的な２値化方式を示している。有限集合に対する２値化方式は、ビン列の有限集合が冗長度のないコードを表す（かつ潜在的にビン列を並び換える）ようにビン列の一部を変更することによって可算無限集合に対する普遍的２値化方式から得ることができる。たとえば、表２の切り捨て単項２値化方式は、普遍的単項２値化のソースシンボル７に対するビン列を変更することによって作られた（表１参照）。表２の次数０の、切り捨てられかつ並べ換えられた指数ゴロム２値化は、普遍的指数ゴロム次数０の２値化のソースシンボル７に対するビン列を変更することによって（表１参照）、およびビン列を並び換えることによって（シンボル７の切捨てられたビン列はシンボル１に割り当てられた）作られた。シンボルの有限集合の場合、表２の最後の列に例示されるように、非系統的／非普遍的な２値化方式を使用することも可能である。
【表１】
2013528025.tif 000004
【表２】
2013528025.tif 000005
【００１５】
バイナライザ２によって作成されたビン列の各ビン３はパラメータ割当部４に順に送られる。パラメータの割当部は各ビン３に１以上のパラメータの集合を割り当て、パラメータの関連付けられた集合を有するビン５を出力する。パラメータの集合は、エンコーダとデコーダにおいて全く同じ方法で判定される。パラメータの集合は、以下のパラメータの１以上から成る場合がある。
・現在のビンに対する２つの可能なビン値の１つに対する確率の予測に対する測度、
・現在のビンに対する確率の低いまたは確率の高いビン値に対する確率の予測に対する測度、
・２つの可能なビン値のうちどちらが現在のビンに対する確率の低いまたは確率の高いビン値を表すかの予測を指定する識別子、
・関連付けられたソースシンボルのカテゴリ、
・関連付けられたソースシンボルの重要度の測度、
・関連付けられたシンボルのロケーションの測度（たとえば、時間的、空間的、または量的なデータ集合における）、
・ビンまたは関連付けられたソースシンボルに対して伝送路コード保護を指定する識別子、
・ビンまたは関連付けられたソースシンボルに対して暗号化方式を指定する識別子、
・関連付けられたシンボルに対する等級を指定する識別子、
・関連付けられたソースシンボルに対するビン列内のビン数。
【００１６】
本発明の好ましい実施形態において、パラメータ割当部４は、各ビン３、５を、現在のビンに対する２つの可能なビン値のうちの１つに対する確率の予測のための測度に関連付ける。本発明の更なる好ましい実施形態において、パラメータ割当部４は、各ビン３、５を、現在のビンに対して確率の低いまたは確率の高いビン値に対する確率の予測に対する測度と、２つの可能なビン値のうちどちらが現在のビンに対する確率の低いまたは確率の高いビン値を表すかの予測を指定する識別子と、に関連付ける。確率の低いまたは確率の高いビン値に対する確率と、２つの可能なビン値のうちどちらが確率の低いまたは確率の高いビン値であるかを指定する識別子とは、２つの可能なビン値のうちの１つの確率に対する等しい測度であることに留意されたい。
【００１７】
本発明の更なる好ましい実施形態において、パラメータ割当部４は、各ビン３、５を、現在のビンに対する２つの可能なビンのうちの１つに対する確率の予測のための測度と、１以上の更なるパラメータ（上記に挙げたパラメータの１以上であり得る）と、に関連付ける。本発明の更なる好ましい実施形態において、パラメータ割当部４は、各ビン３、５を、現在のビンに対する確率の低いまたは確率の高いビン値の確率の予測に対する測度と、２つの可能なビン値のうちどちらが現在のビンに対して確率の低いまたは確率の高いビン値を表すかの予測を指定する識別子と、１以上のパラメータ（上記に挙げたパラメータのうちの１以上であり得る）と、に関連付ける。
【００１８】
本発明の好ましい実施形態において、パラメータ割当部４は、すでに符号化されたシンボルの１以上の集合に基づいて、上述した確率測度（現在のビンに対する２つの可能なビン値のうちの１つに対する確率の予測に対する測度、現在のビンに対して確率の低いまたは確率の高いビン値の確率の予測に対する測度、および２つの可能なビン値のうちどちらが現在のビンに対する確率の低いまたは確率の高いビン値を表すかの予測を指定する識別子）の１以上を算定する。確率測度を算定するために使用される符号化されたシンボルは、同じシンボルカテゴリの１以上のすでに符号化されたシンボル、（現在のソースシンボルに関連付けられたデータ集合に関して）隣り合って配設されている空間的および／または時間的なロケーションの（たとえばサンプルのブロックや群など）データ集合に対応する同じシンボルカテゴリの１以上のすでに符号化されたシンボル、または、（現在のソースシンボルに関連付けられたデータ集合に関して）同じおよび／または隣り合って配設されている空間的および／または時間的なロケーションのデータ集合に対応する異なるシンボルカテゴリの１以上のすでに符号化されたシンボルを含むことができる。
【００１９】
パラメータ割当部４の出力であるパラメータの関連付けられた集合を有する各ビン５は、ビンバッファ選択部６に送られる。ビンバッファ選択部６は、入力されたビン値とこれに関連付けられたパラメータ５に基づいて、入力されたビン５の値を潜在的に変更し、この潜在的に変更された値を有する出力ビン７を２つ以上のビンバッファ８のうちの１つに送る。出力ビン７が送られるビンバッファ８は、入力ビン５の値および／または関連付けられたパラメータ５の値に基づいて、決定される。
本発明の好ましい実施形態において、ビンバッファ選択部６はビンの値を変更しない。すなわち、出力ビン７は入力ビン５と常に同じ値を有する。
【００２０】
本発明の更なる好ましい実施形態において、ビンバッファ選択部６は、入力ビン値５と、現在のビンに対する２つの可能なビン値のいずれか１つに対する確率の予測に対する関連付けられた測度と、に基づいて、出力ビン値７を求める。本発明の好ましい実施形態において、出力ビン値７は、現在のビンに対する２つの可能なビン値のいずれか１つに対する確率に対する測度が特定のしきい値未満（またはしきい値以下）の場合、入力ビン値５と同等に設定され、現在のビンに対する２つの可能なビン値のいずれか１つに対する確率に対する測度が特定のしきい値以上の（またはしきい値より大きい）場合、出力ビン値７は変更される（すなわち入力ビン値の逆に設定される）。本発明の更なる好ましい実施形態において、出力ビン値７は、現在のビンに対する２つの可能なビン値のいずれか１つに対する確率に対する測度が特定のしきい値より大きい（またはしきい値以上の）場合、入力ビン値５と等しい値を設定され、現在のビンに対する２つの可能なビン値のいずれか１つに対する確率に対する測度が特定のしきい値以下（またはしきい値未満）の場合、出力ビン値７は変更される（すなわち入力ビン値の逆に設定される）。本発明の好ましい実施形態において、しきい値は、両方の可能なビン値の予測される確率に対して値０．５に一致する。
【００２１】
本発明の更なる好ましい実施形態において、ビンバッファ選択部６は、入力ビン値５と、２つの可能なビン値のうちどちらが現在のビンに対する確率の低いまたは確率の高いビン値を表すかの予測を指定する関連付けられた識別子と、に基づいて、出力ビン値７を求める。本発明の好ましい実施形態において、識別子が２つの可能なビン値の第１のビン値が現在のビンに対する確率の低い（または確率の高い）ビン値を表すことを指定する場合、出力ビン値７は入力ビン値５と等しい値を設定され、識別子が２つの可能なビン値の第２のビン値が現在のビンに対する確率の低い（または確率の高い）ビン値を表すことを指定する場合、出力ビン値７は変更される（すなわち、入力ビン値の逆に設定される）。
【００２２】
本発明の好ましい実施形態において、ビンバッファ選択部６は、現在のビンに対する２つの可能なビン値のいずれか１つに対する確率の予測に対する関連付けられた測度に基づいて、出力ビン７が送られるビンバッファ８を決定する。本発明の好ましい実施形態において、２つの可能なビン値のいずれか１つに対する確率の予測に対する測度としての可能な値の集合は有限であり、ビンバッファ選択部６は、２つの可能なビン値の１つに対する確率の予測に対する各可能な値に１つだけのビンバッファ８を関連付けるテーブルを含み、２つの可能なビン値の１つに対する確率の予測に対する測度に対して異なる値を同じビンバッファ８に関連付けることができる。本発明の更なる好ましい実施形態において、２つの可能なビン値の１つに対する確率の予測に対する測度として可能な値の範囲は多数のインターバルに分割され、ビンバッファ選択部６は２つの可能なビン値の１つに対する確率の予測に対する現在の測度に対するインターバルインデックスを決定し、また、ビンバッファ選択部６は１つだけのビンバッファ８をこのインターバルインデックスに対する各可能な値に関連付けるテーブルを含み、インターバルインデックスに対して異なる値を同じビンバッファ８に関連付けることができる。本発明の好ましい実施形態において、２つの可能なビン値の１つに対する確率の予測に対する逆の測度を有する入力ビン５（逆測度は確率予測Ｐおよび１−Ｐを表す測度である）は同じビンバッファ８へ供給される。本発明の更なる好ましい実施形態において、現在のビンに対する２つの可能なビン値の１つに対する確率の予測に対する測度を特定のビンバッファに関連付けることは、たとえば、作成された部分的ビットストリームが同様のビットレートを有することを確実にするために、経時的に適応される。
【００２３】
本発明の更なる好ましい実施形態において、ビンバッファ選択部６は、現在のビンに対して確率の低いまたは確率の高いビン値の確率の予測に対する関連付けられた測度に基づいて出力ビン７が送られるビンバッファ８を決定する。本発明の好ましい実施形態において、確率の低いまたは確率の高いビン値に対する確率の予測に対する測度として可能な値の集合は有限であり、ビンバッファ選択部６は、１つだけのビンバッファ８を確率の低いまたは確率の高いビン値に対する確率の予測の各可能な値に関連付けるテーブルを含み、確率の低いまたは確率の高いビン値に対する確率の予測に対する測度に対して異なる値を同じビンバッファ８に関連付けることができる。本発明の更なる好ましい実施形態において、確率の低いまたは確率の高いビン値に対する確率の予測に対する測度として可能な値の範囲は多数のインターバルに分割され、ビンバッファ選択部６は確率の低いまたは確率の高いビン値に対する確率の予測に対する現在の測度に対するインターバルインデックスを決定し、また、ビンバッファ選択部６は１つだけのビンバッファ８をこのインターバルインデックスに対する各可能な値に関連付けるテーブルを含み、このテーブルにおいて、インターバルインデックスに対して異なる値を同じビンバッファ８に関連付けることができる。本発明の更なる好ましい実施形態において、現在のビンに対する確率の低いまたは確率の高いビン値に対する確率の予測に対する測度を特定のビンバッファに関連付けることは、たとえば、作成された部分的ビットストリームが同様のビットレートを有することを確実にするために、経時的に適応される。
【００２４】
２つ以上のビンバッファ８のそれぞれは１つだけのビンエンコーダ１０に連結され、各ビンエンコーダは１つのビンバッファ８だけに連結されている。各ビンエンコーダ１０は、関連付けられているビンバッファ８からビンを読み出し、ビン列９をビットの列を表す符号語１１に変換する。ビンバッファ８は先入れ先出しバッファを表し、後から（順に）ビンバッファ８に送られるビンはビンバッファ８に先に（順に）送られるビンより前に符号化されない。特定のビンエンコーダ１０の出力である符号語１１は特定の部分的ビットストリーム１２に書き込まれる。全体の符号化アルゴリズムは、ソースシンボル１を２つ以上の部分的なビットストリーム１２へ変換し、この場合、部分的ビットストリームの数はビンバッファとビンエンコーダの数と等しい。本発明の好ましい実施形態において、ビンエンコーダ１０は、ビン９の可変数をビットの可変数の符号語１１に変換する。上記および下記に概説される本発明の実施形態の１つの利点は、ビンの符号化は（たとえば、確率測度の異なる群に対して）並行して行うことができる点にあり、これによっていくつかのインプリメンテーションに対する処理時間が短縮される。
【００２５】
本発明の実施形態の他の利点は、ビンエンコーダ１０によって行われるビン符号化がパラメータ５の異なる集合に対して具体的に設計できる点にある。特に、ビン符号化と符号化は、予測確率の異なる群ごとに（符号化効率および／または複雑さに関して）最適化することができる。一方で、これは、同様の符号化効率を有する最先端のエントロピー符号化アルゴリズムに対して符号化／復号化の複雑さの低減を可能にする。他方では、同様の符号化／復号化の複雑性を有する最先端のエントロピー符号化アルゴリズムに対して符号化効率の向上を可能にする。本発明の好ましい実施形態において、ビンエンコーダ１０は、現在のビンに対する２つの可能なビン値５の１つに対する確率の予測に対する測度の異なる群ごとに異なる符号化アルゴリズムを実施する（すなわち、ビン列を符号語にマッピングする）。本発明の更なる好ましい実施形態において、ビンエンコーダ１０は、現在のビンに対する確率の低いまたは確率の高いビン値に対する確率の予測に対する測度の異なる群ごとに、異なる符号化アルゴリズムを実施する。更なる好ましい実施形態において、ビンエンコーダ１０は、異なる伝送路保護コードごとに異なる符号化アルゴリズムを実施する。更なる好ましい実施形態において、ビンエンコーダ１０は、異なる暗号化方式ごとに異なる符号化アルゴリズムを実施する。更なる好ましい実施形態において、ビンエンコーダ１０は、伝送路保護コードと、現在のビンに対する２つの可能なビン値５のいずれか１つに対する確率の予測に対する測度の群との様々な組み合わせに対して、異なる符号化アルゴリズムを実施する。更なる好ましい実施形態において、ビンエンコーダ１０は、伝送路保護コードと、現在のビンに対して確率の低いまたは確率の高いビン値５の確率の予測に対する測度の群と、の様々な組み合わせに対して、異なる符号化アルゴリズムを実施する。更なる好ましい実施形態において、ビンエンコーダ１０は、暗号化方式と、現在のビンに対する２つの可能なビン値５のいずれか１つに対する確率の予測に対する測度の群と、の様々な組み合わせに対して、異なる符号化アルゴリズムを実施する。更なる好ましい実施形態において、ビンエンコーダ１０は、暗号化方式と、現在のビンに対する確率の低いまたは確率の高いビン値５に対する確率の予測に対する測度の群と、の様々な組み合わせに対して、異なる符号化アルゴリズムを実施する。
【００２６】
本発明の好ましい実施形態において、複数のビンエンコーダ１０、またはビンエンコーダの１つ以上、はバイナリ算術符号化エンジンを表している。本発明の更なる好ましい実施形態において、ビンエンコーダの１つ以上がバイナリ算術符号化エンジンを表し、ここで、所与のビンバッファの代表的ＬＰＳ／ＬＰＢ確率ｐＬＰＳから対応するコードインターバル幅ＲＬＰＳへのマッピング、すなわち、たとえば、符号インターバルの下限を識別する現在のインターバル幅Ｒと現在のインターバルオフセットＬとによって画定されるバイナリ算術符号化エンジンの内部状態のインターバル分割、は、テーブルルックアップを使用することによって実現される。更なる好ましい実施形態において、所与のビンバッファに関連付けられる各テーブルベースのバイナリ算術符号化エンジンに対して、Ｋ個の代表的インターバル幅の値｛Ｑ０、．．．、ＱＫ−１｝がＲＬＰＳを表すために使用され、その際、Ｋの選択および代表的インターバル幅の値｛Ｑ０、．．．、ＱＫ−１｝はビンバッファに依存している。Ｋ＞１を選択した場合、ビンの算術符号化は、現在のインターバル幅Ｒを｛０、．．．、Ｋ−１｝の値を有する量子化インデックスｑにマッピングし、ｑをインデックスとして使用することによってルックアップテーブルから対応する部分的インターバル幅の値のＱｑにアクセスすることによってインターバル分割を実行するサブステップを含む。Ｋ＝１を選択する場合、すなわち、代表的インターバル幅の値Ｑ０だけが付与されている場合、この値Ｑ０は、単一の繰込みサイクル内の対応するビンバッファに入る複数のＭＰＳ／ＭＰＢ値の復号化を可能にするために２の指数として選択される。各算術符号化エンジンの得られる符号語は個別に転送され、パケット化され、または格納されるか、あるいは、以下に説明されるように、転送または格納するためにインターリーブされる。
【００２７】
すなわち、バイナリ算術符号化エンジン１０は、そのビンバッファ８内の複数のビンを符号化する際に、以下のステップを実行する。
【００２８】
１．ビンバッファからｖａｌＬＰＳ、ビンを受信するステップ：（ｐ＿ｓｔａｔｅ［ｂｉｎ］などの確率分布予測はバイナリ算術符号化エンジン１０に関連付けられたので、ここで考慮されるそれぞれのバイナリ算術符号化エンジン１０は「ビン」を受け取るように選択されている（言い換えれば、「ビン」はそれぞれのバイナリ算術符号化エンジン１０に関連付けられた）ことを想起されたい。）
２．Ｒを量子化するステップ：
ｑ＿ｉｎｄｅｘ＝Ｑｔａｂ［Ｒ＞＞ｑ］（または他の形態の量子化）
３．ＲＬＰＳおよびＲを決定するステップ：
【００２９】
ＲＬＰＳ＝Ｒｔａｂ［ｑ＿ｉｎｄｅｘ］（ｐ＿ｓｔａｔｅは、考慮されているバイナリ算術符号化エンジン１０に対して固定されており、すなわち、ｐ＿ｓｔａｔｅ［ｅｎｃｏｄｅｒ］であるので、ここでは、ｐ＿ｓｔａｔｅについて述べていない。そして、Ｒｔａｂはｐ［ｐ＿ｓｔａｔｅ［ｅｎｃｏｄｅｒ］］・Ｑ［ｑ＿ｉｎｄｅｘ］に対して予備計算された値を格納している。）
Ｒ＝Ｒ−ＲＬＰＳ［すなわち、Ｒは「ビン」がＭＰＳであるかのように予め事前更新される。］
４．新しい部分的インターバルを計算するステップ：
【数２】
2013528025.tif 000006
５．ＬとＲを繰込み、ビットを書き込むステップ
ここで、
ｑ＿ｉｎｄｅｘ  Ｑｔａｂから読み出された量子化値のインデックスを記述
ｐ＿ｓｔａｔｅ  （バイナリ算術符号化エンジン１０に対して固定された）現在の状態を記述
ＲＬＰＳ              ＬＰＳに対応するインターバル幅を記述
ｖａｌＭＰＳ    ＭＰＳに対応するビットの値を記述。
したがって、バイナリ算術復号化エンジン２２は、ビン出力をビンバッファ２０へ復号化する際、以下のステップを実行しうる。
【００３０】
１．ビンに対するリクエストを受信するステップ：（ｐ＿ｓｔａｔｅ［ｂｉｎ］などの確率分布予測はバイナリ算術復号化エンジン２２に関連付けられたので、ここで考慮されるそれぞれのバイナリ算術復号化エンジン２２は「ビン」を復号化するように選択されている（言い換えれば、「ビン」はそれぞれのバイナリ算術復号化エンジン２２に関連付けられた）ことを想起されたい。）
２．Ｒを量子化するステップ：
ｑ＿ｉｎｄｅｘ＝Ｑｔａｂ［Ｒ＞＞ｑ］（または他の形態の量子化）
３．ＲＬＰＳとＲを決定するステップ：
【００３１】
ＲＬＰＳ＝Ｒｔａｂ［ｑ＿ｉｎｄｅｘ］（ｐ＿ｓｔａｔｅは、考慮されているバイナリ算術復号化エンジン２２に対して固定されており、すなわち、ｐ＿ｓｔａｔｅ［ｅｎｃｏｄｅｒ］であるので、ここでは、ｐ＿ｓｔａｔｅについて述べていない。そして、Ｒｔａｂはｐ［ｐ＿ｓｔａｔｅ［ｅｎｃｏｄｅｒ］］・Ｑ［ｑ＿ｉｎｄｅｘ］に対して予備計算された値を格納している。）
Ｒ＝Ｒ−ＲＬＰＳ［すなわち、Ｒは「ビン」がＭＰＳであるかのように予め事前更新される。］
４．部分的インターバルの位置に応じたビンを決定するステップ：
【数３】
2013528025.tif 000007
５．Ｒを繰込み、１つのビットを読み出し、Ｖを更新するステップ
ここで、
ｑ＿ｉｎｄｅｘ  Ｑｔａｂから読み出された量子化値のインデックスを記述
ｐ＿ｓｔａｔｅ  （バイナリ算術復号化エンジン２２に対して固定された）現在の状態を記述
ＲＬＰＳ  ＬＰＳに対応するインターバル幅を記述
ｖａｌＭＰＳ  ＭＰＳに対応するビットの値を記述
Ｖ  現在の部分的インターバルの内部から値を記述。
【００３２】
本発明の更なる好ましい実施形態において、複数のビンエンコーダ１０、またはビンエンコーダの１つ以上、が入力ビン列９を符号語１０に直接マッピングするエントロピーエンコーダを表している。このようなマッピングは、効率的に実施することができ、複雑な算術符号化エンジンを必要としない。ビン列への符号語の逆マッピングは（デコーダで行われているように）、入力列の完全な復号化を保証するために一意である必要があるが、ビン列９の符号語１０へのマッピングは、必ずしも一意である必要はない。つまり、特定のビン列は１以上の符号語の列へマッピングすることも可能である。本発明の好ましい実施形態において、入力ビン列９の符号語１０へのマッピングは全単射である。本発明の更なる好ましい実施形態において、複数のビンエンコーダ１０−またはビンエンコーダの１つ以上−は入力ビンの可変長列９を可変長符号語１０に直接マッピングするエントロピーエンコーダを表している。本発明の好ましい実施形態において、出力された符号語は、一般的なハフマン符号または基準のハフマン符号などの冗長度のないコードを表している。
【００３３】
冗長度のないコードにビン列を全単射マッピングするための２つの例を表３に示す。本発明の更なる好ましい実施形態において、出力符号語は、エラー検出とエラー回復のために適切な冗長度のあるコードを表している。本発明の更なる好ましい実施形態において、出力符号語は、ソースシンボルを暗号化するための適切な暗号化コードを表す。
【００３４】
【表３】
2013528025.tif 000008
【００３５】
本発明の更なる好ましい実施形態において、複数のビンエンコーダ１０―またはビンエンコーダの１つ以上―は、入力ビンの可変長列９を固定長の符号語１０に直接マッピングするエントロピーエンコーダを表している。本発明の更なる好ましい実施形態において、複数のビンエンコーダ１０―またはビンエンコーダの１つ以上―は、可変長符号語１０に入力ビンの固定長列９を直接マッピングするエントロピーエンコーダを表している。
【００３６】
本発明の一実施形態によるデコーダを図２に示す。基本的にデコーダはエンコーダの逆演算を実行し、これによって（前に符号化された）ソースシンボル２７の列が２つ以上の部分的ビットストリーム２４の集合から復号化される。デコーダは、エンコーダのデータフローを複製するデータリクエストのためのフローと、エンコーダデータフローの逆を表わすデータフローと、の２つの異なる処理フローを含む。図２において、破線の矢印はデータリクエストフローを表し、実線の矢印はデータフローを表す。デコーダのビルディングブロックは、基本的にエンコーダのビルディングブロックを複製するが、逆演算を実行する。
【００３７】
ソースシンボルの復号化はバイナライザ１４へ送られる新しい復号化されたソースシンボルに対するリクエスト１３によってトリガされる。本発明の好ましい実施形態において、新しい復号化されたソースシンボルに対する各リクエスト１３は、１つ以上のカテゴリの集合のカテゴリに関連付けられる。ソースシンボルに対するリクエストに関連付けられているカテゴリは、符号化中に対応するソースシンボルに関連付けされたカテゴリと同じである。
【００３８】
バイナライザ１４は、ソースシンボルに対するリクエスト１３をパラメータ割当部１６へ送られるビンに対する１つ以上のリクエスト内へマッピングする。バイナライザ１４によりパラメータ割当部１６へ送られるビンに対するリクエストに対する最終応答として、バイナライザ１４はビンバッファ選択部１８から復号化されたビン２６を受信する。バイナライザ１４は、受信した復号化されたビン２６の列をリクエストされたソースシンボルに対する特定の２値化方式のビン列と比較して、受信した復号化されたビン２６の列がソースシンボルの２値化と整合した場合、バイナライザはそのビンバッファを空にして新しく復号化されたシンボルに対するリクエストへの最終応答として復号化されたソースシンボルを出力する。既に受信した復号化されたビンの列がリクエストされたソースシンボルに対する２値化方式に対するビン列のいずれとも整合しない場合、バイナライザは、復号化されたビンの列がリクエストされたソースシンボルに対する２値化方式のビン列の１つに整合するまで、ビンに対する他のリクエストをパラメータ割当部へ送信する。ソースシンボルに対するリクエストごとに、デコーダは、対応するソースシンボルを符号化するために使用されたものと同じ２値化方式を使用する。２値化方式は、異なるソースシンボルカテゴリごとに異なっていてよい。特定のソースシンボルカテゴリに対する２値化方式は、可能なソースシンボル値および／または特定のカテゴリに対するソースシンボルの他の特性の集合に依存しうる。
【００３９】
パラメータ割当部は、ビンに対する各リクエストへ１つ以上のパラメータの集合を割り当て、関連付けられたパラメータの集合を有するビンに対するリクエストをビンバッファ選択部へ送信する。パラメータ割当部によってリクエストされたビンへ割り当てられたパラメータの集合は、符号化している間に対応するビンへ割当てられたものと同じである。このパラメータの集合はエンコーダ記述において述べられているパラメータの１つ以上から成りうる。
【００４０】
本発明の好ましい実施形態において、パラメータ割当部１６は、ビンに対する各リクエスを、現在リクエストされているビンに対する２つの可能なビン値のうちの１つに対する確率の予測に対する測度に関連付ける。本発明の更なる好ましい実施形態において、パラメータ割当部１６は、ビンに対する各リクエストを、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値に対する確率の予測に対する測度と、２つの可能なビン値のうちどちらが現在リクエストされているビンに対する確率の低いまたは確率の高いビン値を表すかの予測を指定する識別子とに関連付ける。
【００４１】
本発明の更なる好ましい実施形態において、パラメータ割当部１６は、ビンに対する各リクエスト１５、１７を、現在リクエストされているビンに対する２つの可能なビン値のうちの１つに対する確率の予測に対する測度と、１以上の更なるパラメータと、に関連付ける。本発明の更なる好ましい実施形態において、パラメータ割当部１６は、ビンに対する各リクエスト１５、１７を、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値に対する確率の予測に対する測度と、２つの可能なビン値のうちどちらが現在リクエストされているビンに対する確率の低いまたは確率の高いビン値を表すかの予測を指定する識別子と、１つ以上の更なるパラメータ（上記に挙げたパラメータの１つ以上でありうる）と、に関連付ける。
【００４２】
本発明の好ましい実施形態において、パラメータ割当部１６は、１つ以上の既に復号化されたシンボルの集合に基づいて、上述した確率測度（現在リクエストされているビンに対する２つの可能なビン値のうちの１つに対する確率の予測に対する測度と、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値に対する確率の予測に対する測度と、２つの可能なビン値のうちどちらが現在リクエストされているビンに対する確率の低いまたは確率の高いビン値を表すかの予測を指定する識別子）の１つ以上を決定する。ビンに対する特定のリクエストに対する確率測度の決定は、対応するビンに対するエンコーダにおいて処理を複製する。確率測度を決定するために使用される復号化されたシンボルは、同じシンボルカテゴリの１つ以上の既に復号化されたシンボル、（ソースシンボルに対する現在のリクエストに関連付けられたデータ集合に関連して）近接空間的および／または時間的なロケーションの（サンプルのブロックまたは群などの）データ集合に対応する同じシンボルカテゴリの１つ以上の既に復号化されたシンボル、または（ソースシンボルに対する現在のリクエストに関連付けられたデータ集合に関連して）同一および／または近接空間的および／または時間的なロケーションのデータ集合に対応する異なるシンボルカテゴリの１つ以上の既に復号化されたシンボルを含む。
【００４３】
パラメータ割当部１６の出力であるパラメータの関連付けられた集合を有するビンに対する各リクエスト１７は、ビンバッファ選択部１８内へ送られる。パラメータ１７の関連付けられた集合に基づいて、ビンバッファ選択部１８は、２つ以上のビンバッファ２０のうちの１つへビンに対するリクエスト１９を送信し、選択されたビンバッファ２０から復号化されたビン２５を受信する。復号化された入力ビン２５は、潜在的に変更され、復号化された出力ビン２６―潜在的に変更された値を有する―は、パラメータの関連付けられた集合を有するビンに対するリクエスト１７への最終応答としてバイナライザ１４へ送信される。
【００４４】
ビンに対するリクエストが転送される先のビンバッファ２０は、エンコーダサイドのビンバッファ選択部の出力ビンが送信されたビンバッファと同様に選択される。
【００４５】
本発明の好ましい実施形態において、ビンバッファ選択部１８は、ビンに対するリクエスト１９が送信される先のビンバッファ２０を、現在リクエストされているビンに対する２つの可能なビン値の１つに対する確率の予測に対する関連付けられた測度に基づいて決定する。本発明の好ましい実施形態において、２つの可能なビン値のうちの１つに対する確率の予測に対する測度に対する可能な値の集合は有限であり、ビンバッファ選択部１８は１つだけのビンバッファ２０を２つの可能なビン値のうちの１つに対する確率の予測の各可能な値と関連付けるテーブルを含み、ここで、２つの可能なビン値の１つに対する確率の予測に対する測度に対して異なる値を同一のビンバッファ２０と関連付けることができる。本発明の更なる好ましい実施形態において、２つの可能なビン値の１つに対する確率の予測に対する測度に対する可能な値の範囲は多数のインターバルに分割され、ビンバッファ選択部１８は２つの可能なビン値の１つに対する確率の予測に対する現在の測度に対するインターバルインデックスを決定し、ビンバッファ選択部１８は１つだけのビンバッファ２０をインターバルインデックスに対する各可能な値と関連付けるテーブルを含み、ここで、インターバルインデックスごとに異なる値を同じビンバッファ２０に関連付けることができる。本発明の好ましい実施形態において、２つの可能なビン値の１つに対する確率の予測に対する反対の測度を有するビンに対するリクエスト１７（反対測度は確率予測Ｐと１−Ｐを表す測度である）は同じビンバッファ２０へ転送される。本発明の更なる好ましい実施形態において、現在のビンリクエストに対する２つの可能なビン値の１つに対する確率の予測に対する測度を特定のビンバッファと関連付けることが経時的に適応される。
【００４６】
本発明の更なる好ましい実施形態において、ビンバッファ選択部１８は、ビンに対するリクエスト１９が送信される先のビンバッファ２０を、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値に対する確率の予測に対する関連付けられた測度に基づいて決定する。本発明の好ましい実施形態において、確率の低いまたは確率の高いビン値に対する確率の予測に対する測度に対する可能な値の集合は有限であり、ビンバッファ選択部１８は１つだけのビンバッファ２０を確率の低いまたは確率の高いビン値に対する確率の予測の各可能な値と関連付けるテーブルを含み、ここで、確率の低いまたは確率の高いビン値に対する確率の予測に対する測度に対する異なる値を同じビンバッファ２０と関連付けることができる。本発明の更なる好ましい実施形態において、確率の低いまたは確率の高いビン値に対する確率の予測に対する測度に対する可能な値の範囲は多数のインターバルへ分割され、ビンバッファ選択部１８は確率の低いまたは確率の高いビン値に対する確率の予測に対する現在の測度に対するインターバルインデックスを決定し、ビンバッファ選択部１８は１つだけのビンバッファ２０をインターバルインデックスに対する各可能な値と関連付けるテーブルを含み、ここで、インターバルインデックスに対する異なる値を同じビンバッファ２０と関連付けることができる。本発明の更なる好ましい実施形態において、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値に対する確率の予測に対する測度を特定のビンバッファと関連付けることが経時的に適応される。
【００４７】
選択されたビンバッファ２０から復号化されたビン２５を受信した後、ビンバッファ選択部１８は潜在的に入力ビン２５を変更し、潜在的に変更された値を有する出力ビン２６をバイナライザ１４へ送信する。ビンバッファ選択部１８の入力／出力ビンマッピングは、エンコーダサイドのビンバッファ選択部の入力／出力ビンマッピングの逆である。
本発明の好ましい実施形態において、ビンバッファ選択部１８はビンの値を変更しない。すなわち、出力ビン２６は入力ビン２５と同じ値を常に有している。
【００４８】
本発明の更なる好ましい実施形態において、ビンバッファ選択部１８は、入力ビン値２５と、ビンに対するリクエスト１７と関連付けられた現在リクエストされているビンに対する２つの可能なビン値のうちの１つに対する確率の予測に対する測度に基づいて、出力ビン値２６を決定する。本発明の好ましい実施形態において、現在のビンリクエストに対する２つの可能なビン値のうちの１つに対する確率に対する測度が特定のしきい値未満（またはしきい値以下）である場合、出力ビン値２６は入力ビン値２５と等しく設定されるが、現在のビンリクエストに対する２つの可能なビン値のうちの１つに対する確率に対する測度が特定のしきい値以上（またはしきい値より大きい）である場合、出力ビン値２６は変更される（すなわち、入力ビン値の逆に設定される）。本発明の更なる好ましい実施形態において、出力ビン値２６は、現在のビンリクエストに対する２つの可能なビン値のうちの１つに対する確率に対する測度が特定のしきい値より大きい（またはしきい値以上の）場合、入力ビン値２５と等しく設定されるが、現在のビンリクエストに対する２つの可能なビン値のうちの１つに対する確率に対する測度が特定のしきい値以下（またはしきい値未満）である場合、出力ビン値２６は変更される（すなわち、入力ビン値の逆に設定される）。本発明の好ましい実施形態において、しきい値は両方の可能なビン値に対する予測された確率に対して０．５の値に一致している。
【００４９】
本発明の更なる好ましい実施形態において、ビンバッファ選択部１８は、入力ビン値２５と、２つの可能なビン値のうちどちらがビンに対するリクエスト１７に関連付けられている現在のビンリクエストに対する確率の低いまたは確率の高いビン値を表すかの予測を指定する識別子と、に基づいて、出力ビン値２６を決定する。本発明の好ましい実施形態において、識別子が２つの可能なビン値のうちの第１のビン値が現在のビンリクエストに対して確率の低い（または確率の高い）ビン値を表していることを指定する場合、出力ビン値２６は入力ビン値２５と等しく設定され、識別子が２つの可能なビン値のうちの第２のビン値が現在のビンリクエストに対して確率の低い（または確率の高い）ビン値を表していることを指定する場合、出力ビン値２６は変更される（すなわち、入力ビン値の逆に設定される）。
【００５０】
上述したように、ビンバッファ選択部は、２つ以上のビンバッファ２０のいずれか１つへビンに対するリクエスト１９を送信する。ビンバッファ２０は、連結されているビンデコーダ２２から復号化されたビンの列２１とともに送られる、先入れ先出しバッファを表す。ビンバッファ選択部１８からビンバッファ２０へ送られるビンに対するリクエスト１９への応答として、ビンバッファ２０はビンバッファ２０に最初に送られたそのコンテンツのビンを取り除き、それをビンバッファ選択部１８へ送信する。先にビンバッファ２０に送信されるビンは先に取り除かれ、ビンバッファ選択部１８へ送信される。
【００５１】
２つ以上のビンバッファ２０の各々は１つだけのビンデコーダ２２に連結され、各ビンデコーダは１つだけのビンバッファ２０に連結されている。各ビンデコーダ２２は、分離した部分的ビットストリーム２４から、ビット列を表す符号語２３を読み出す。ビンデコーダは、符号語２３を、連結されているビンバッファ２０に送信されるビンの列２１に変換する。全体的な復号化アルゴリズムは２つ以上の部分的なビットストリーム２４を多数の復号化されたソースシンボルへ変換し、ここで、部分的ビットストリームの数はビンバッファとビンデコーダの数と等しく、ソースシンボルの復号化は新しいソースシンボルに対するリクエストによってトリガされる。本発明の好ましい実施形態において、ビンデコーダ２２は、可変数のビットから成る符号語２３を可変数のビンの列２１へ変換する。本発明の実施形態の１つの利点は、２つ以上の部分的ビットストリームからのビンの復号化が（たとえば、確率測度の異なる群に対して）並列に行うことができ、これによっていくつかのインプリメンテーションの処理時間を短縮できるという点にある。
【００５２】
本発明の実施形態の他の利点は、ビンデコーダ２２によって行われるビン復号化がパラメータ１７の異なる集合に対して具体的に設計することができる点にある。特に、ビンの符号化と復号化は予測される確率の異なる群ごとに（符号化効率および／または複雑さに関して）最適化することができる。一方で、これは、同様の符号化効率を有する最先端のエントロピー符号化アルゴリズムに対して符号化／復号化の複雑さの低減を可能にする。他方で、これは、同様の符号化／復号化の複雑性を有する最先端のエントロピー符号化アルゴリズムに対して符号化効率の向上を可能にする。本発明の好ましい実施形態において、ビンデコーダ２２は現在のビンリクエストに対する２つの可能なビン値１７のうちの１つに対する確率の予測に対する測度の異なる群に対して異なる復号化アルゴリズムを実施する（すなわち、ビン列を符号語にマッピングする）。本発明の更なる好ましい実施形態において、ビンデコーダ２２は、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値に対する確率の予測に対する測度の異なる群ごとに、異なる復号化アルゴリズムを実施する。更なる好ましい実施形態において、ビンデコーダ２２は、異なる伝送路保護コードごとに異なる復号化アルゴリズムを実施する。更なる好ましい実施形態において、ビンデコーダ２２は、異なる暗号化方式ごとに異なる復号化アルゴリズムを実施する。更なる好ましい実施形態において、ビンデコーダ２２は、伝送路保護コードと、現在リクエストされているビンに対する２つの可能なビン値１７のいずれか１つに対する確率の予測に対する測度の群と、の様々な組み合わせに対して、異なる復号化アルゴリズムを実施する。更なる好ましい実施形態において、ビンデコーダ２２は、伝送路保護コードと、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値１７の確率の予測に対する測度の群と、の様々な組み合わせに対して、異なる復号化アルゴリズムを実施する。更なる好ましい実施形態において、ビンデコーダ２２は、暗号化方式と、現在リクエストされているビンに対する２つの可能なビン値１７のいずれか１つに対する確率の予測に対する測度の群と、の様々な組み合わせに対して、異なる復号化アルゴリズムを実施する。更なる好ましい実施形態において、ビンデコーダ２２は、暗号化方式と、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値１７に対する確率の予測に対する測度の群と、の様々な組み合わせに対して、異なる復号化アルゴリズムを実施する。
ビンデコーダ２２は、エンコーダサイドの対応しているビンエンコーダの逆マッピングを行う。
本発明の好ましい実施形態において、複数のビンデコーダ２２―またはビンデコーダの１つ以上―は、バイナリ算術復号化エンジンを表している。
【００５３】
本発明の更なる好ましい実施形態において、複数のビンデコーダ２２―またはビンデコーダの１つ以上―は、符号語２３をビンの列２１に直接マッピングするエントロピーデコーダを表している。このようなマッピングは、効率的に実施することができ、複雑な算術符号化エンジンを必要としない。ビン列への符号語のマッピングは一意である必要がある。本発明の好ましい実施形態において、符号語２３のビンの列２１へのマッピングは全単射である。本発明の更なる好ましい実施形態において、複数のビンデコーダ１０―またはビンデコーダの１つ以上―は、可変長の符号語２３をビンの可変長の列２１へ直接マッピングするエントロピーデコーダを表している。本発明の好ましい実施形態において、入力された符号語は、一般的なハフマン符号または基準のハフマン符号などの冗長度のないコードを表している。冗長度のないコードをビン列に全単射マッピングするための２つの例を表３に示す。本発明の更なる好ましい実施形態において、入力された符号語は、エラー検出とエラー復元のために適切な冗長度のあるコードを表している。本発明の更なる好ましい実施形態において、入力された符号語は暗号化コードを表している。
【００５４】
本発明の更なる好ましい実施形態において、複数のビンデコーダ２２―またはビンデコーダの１つ以上―は、固定長の符号語２３をビンの可変長の列２１上へ直接マッピングするエントロピーデコーダを表している。本発明の更なる好ましい実施形態において、複数のビンデコーダ２２―またはビンデコーダの１つ以上―は、可変長の符号語２３を固定長のビンの列２１へ直接マッピングするエントロピーデコーダを表している。
【００５５】
したがって、図１および図２は、シンボル３の列を符号化するためのエンコーダと同シンボル３の列を復元するためのデコーダについての実施の形態を示す。エンコーダは、シンボル列の各シンボルへ多数のパラメータ５を割り当てるように構成された割当部４を含む。この割当ては、現在のシンボルが属しており、シンタックス要素１のシンタックス構造に応じて、先行のシンタックス要素１およびシンボル３の履歴からどの予想が推定可能であるかが現在予想されている、―２値化などの―表現に対してシンタックス要素１のカテゴリなどのシンボル列の先行シンボル内に含まれる情報に基づいて、行われる。また、エンコーダは、それぞれのエントロピーエンコーダへ転送されたシンボル３をそれぞれのビットストリーム１２へ変換するように各々が構成されている複数のエントロピーエンコーダ１０と、その選択がそれぞれのシンボル３に割り当てられたパラメータ５の数に依存する、複数のエントロピーエンコーダ１０の選択された１つに各シンボル３を転送するように構成されている選択部６と、を含む。シンボル列を復元するためのデコーダは、それぞれのビットストリーム２３をシンボル２１に変換するように各々が構成されている複数のエントロピーデコーダ２２と、シンボル列のうちの前に復元されたシンボル（図２の２６および２７参照）に含まれる情報に基づいて復元されるシンボル列の各シンボル１５へ多数のパラメータ１７を割り当てる割当部１６と、その選択がそれぞれのシンボルに対して定義づけられているパラメータの数に依存する、複数のエントロピーデコーダ２２のうちの選択された１つから復元されるシンボル列の各シンボルを検索するように構成されている選択部１８と、を含む。割当部１６は各シンボルに割り当てられたパラメータの数が、それぞれのシンボルが想定し得る可能なシンボル値の中から分布の確率の予測に対する測度を含むかまたはこれに対する測度であるように構成されていてもよい。復元されるシンボル列はバイナリアルファベットから作成され、割当部１６は、確率分布の予測が、バイナリアルファベットの２つの可能なビン値の確率の低いまたは確率の高いビン値の確率の予測に対する測度と、２つの可能なビン値のうちどちらが確率の低いまたは確率の高いビン値を表すかの予測を指定する識別子と、から成るように構成されていてもよい。割当部１６はさらに、関連付けられたそれぞれの確率分布予測を有する各コンテクストによって復元されるシンボル列の、前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボル１５の列の各シンボルへコンテクストを内的に割り当てるとともに、それぞれのコンテクストが割り当てられる、前に復元されたシンボルのシンボル値に基づいて各コンテクストに対する確率分布予測を実際のシンボル統計値に適応させるように構成されていてもよい。このコンテクストはビデオまたは画像符号化においてまたは財政的アプリケーションの場合に表においてシンタックス要素が属する空間的関係または位置の近接性を考慮に入れてもよい。次いで、シンボルごとの確率分布の予測に対する測度は、確率分布の予測に対する測度を得るために、たとえば、それぞれのシンボルに割り当てられたコンテクストと関連付けられた確率分布予測を複数の確率分布予測の代表値の１つに対して量子化することによって、それぞれのシンボルに割り当てられたコンテクストと関連付けられた確率分布予測に基づいて、決定されてもよい。選択部は、複数のエントロピーエンコーダと複数の確率分布予測の代表値との間で全単射関連付けが定義付けられるように構成することができる。選択部１８は、シンボル列の、前に復元されているシンボルに依存する所定の決定論的な方法において量子化マッピングを確率分布予測の範囲から複数の確率分布予測の代表値へ経時的に変化させるように構成されていてもよい。すなわち、選択部１８は、量子化ステップの大きさ、すなわち、個別のエントロピーデコーダと全単射で関連付けられている個別の確率インデックスにマッピングされた確率分布のインターバルを変更することができる。次いで、複数のエントロピーデコーダ２２は量子化マッピングの変化に応答してシンボルをビットストリームへ変換する方法を適応させるように構成されていてもよい。たとえば、各エントロピーデコーダ２２は、それぞれの確率分布予測の量子化インターバル内のある確率分布予測に対して最適化され、すなわち、最適な圧縮率を有することができ、それぞれの確率分布予測量子化インターバル内のこのある確率分布予測の位置を適応させるために、後者を最適化するための変更時にその符号語／シンボル列マッピングを変更することができる。選択部はシンボルが複数のエントロピーデコーダから検索される速度のばらつきが少なくなるように量子化マッピングを変化させるように構成されていてもよい。バイナライザ１４に関しては、シンタックス要素がすでに２値である場合はそのままにされる。さらに、デコーダ２２のタイプによっては、バッファ２０は不要である。また、バッファはデコーダ内で統合されてもよい。
有限のソースシンボル列の終了
【００５６】
本発明の好ましい実施形態において、符号化と復号化は、ソースシンボルの有限集合に対して行われる。多くの場合、静止画、ビデオシーケンスのフレームやフィールド、画像のスライス、ビデオシーケンスのフレームまたはフィールドのスライス、または連続的オーディオサンプルの集合などのデータのある一定量が符号化される。ソースシンボルの有限集合の場合、一般に、エンコーダサイドで作成された部分的ビットストリームを終了させる必要がある。すなわち、すべてのソースシンボルを送信されたまたは格納された部分的なビットストリームから復号化できることを確実にする必要がある。最後のビンが対応するビンバッファ８内へ挿入された後、ビンエンコーダ１０は、完全な符号語が部分的なビットストリーム１２に書き込まれることを確実にする必要がある。ビンエンコーダ１０がバイナリ算術符号化エンジンを表す場合、算術符号語を終了する必要がある。ビンデコーダ１０がビン列を符号語に直接マッピングするエントロピーエンコーダを表す場合、最後のビンをビンバッファに書き込んだ後にビンバッファに格納されるビン列は、符号語に関連付けられているビン列を表さない場合がある（すなわち、符号語に関連付けられている２つ以上のビン列の接頭語を表す場合がある。このような場合、ビンバッファに接頭語としてビン列を含むビン列に関連付けられているどのような符号語も、部分的なビットストリームに書き込まれる必要がある（ビンバッファをフラッシュする必要がある）。これは、特定のまたは任意の値を有するビンを、符号語が書き込まれるまで、ビンバッファへ挿入することによって行うことができる。本発明の好ましい実施形態において、ビンエンコーダは、（関連付けられたビン列がビンバッファ内に接頭語としてビン列を含む必要がある特性に加えて）最短長を有する符号語の１つを選択する。デコーダサイドでは、ビンデコーダ２２は、部分的なビットストリーム内の最後の符号語に要求されるより多くのビンを復号化することができ、これらのビンはビンバッファ選択部１８によってリクエストされずに破棄されかつ無視される。シンボルの有限集合の復号化は、復号化されたソースシンボルのリクエストによって制御され、データの量に対してこれ以上のソースシンボルがリクエストされない場合、この復号化は終了する。
部分的ビットストリームの送信と多重化
【００５７】
エンコーダによって作成される部分的ビットストリーム１２は別個に送信されることができるか、単一のビットストリーム内へ多重化することができるか、または部分的ビットストリームの符号語が単一のビットストリーム内へインターリーブすることができる。
【００５８】
本発明の好ましい実施形態において、データ量に対する各部分的ビットストリームは１つのデータパケットへ書き込まれる。データ量は、静止画、ビデオシーケンスのフィールドやフレーム、静止画のスライス、ビデオシーケンスのフィールドまたはフレームのスライス、またはオーディオサンプルのフレームなどのソースシンボルの任意の集合であってよい。
【００５９】
本発明の他の好ましい実施形態において、データ量に対する部分的ビットストリームの２つ以上またはデータ量に対する全ての部分的ビットストリームは１つのデータパケット内へ多重化される。多重化された部分的なビットストリームを含むデータパケットの構造を図３に示す。
【００６０】
データパケット１００は、ヘッダと、（データの考えられる量に対する）各部分的ビットストリームのデータの一分割から成る。データパケットのヘッダ１００は、ビットストリームデータ１０２のセグメント内へのデータパケット（の残り）を分割するための表示を含む。分割に対する表示のほかに、ヘッダは更なる情報を含みうる。本発明の好ましい実施形態において、データパケットの分割に対する表示はビットやバイトまたはビットの倍数またはバイトの倍数といった単位で表されるデータセグメントの開始部分である。本発明の好ましい実施形態において、データセグメントの開始部分は、データパケットの開始に対する、またはヘッダの終わりに対する、または前のデータパケットの開始部分に対する、データパケットのヘッダ内の絶対値として、符号化される。本発明の更なる好ましい実施形態において、データセグメントの開始部分は差動的に符号化され、すなわち、データセグメントの実際の開始とデータセグメントの開始に対する予測との間の差のみが符号化される。この予測は、データパケットの全体のサイズ、ヘッダのサイズ、データパケット内のデータセグメントの数、先行するデータセグメントの開始部分などの既に知られているかまたは送信された情報に基づいて求められ得る。本発明の好ましい実施形態において、第１のデータパケットの開始部分は符号化されないが、データパケットヘッダの大きさに基づいて推測される。デコーダサイドにおいて、送信されたパーティション表示はデータセグメントの開始を導出するために使用される。次いで、データセグメントは部分的ビットストリームとして使用され、データセグメントに含まれるデータは対応するビンデコーダに順に供給される。
【００６１】
データパケット内へ部分的ビットストリームを多重化するためのいくつかの代替手段がある。一つには、部分的ビットストリームのサイズが非常に近い場合は特に、要求されるサイド情報を削減することができる方法が図４に示されている。データパケットのペイロード、すなわちそのヘッダ１１１なしのデータパケット１１０は所定の定義づけられている方法でセグメント１１２内へ分割される。一例として、データパケットのペイロードは同一サイズのセグメントへ分割することができる。次に、各セグメントは、部分的ビットストリームまたは部分的ビットストリーム１１３の第１の部分と関連付けられる。部分的ビットストリームが関連付けられたデータセグメントよりも大きい場合、その残部１１４は他のデータセグメントの終わり部分の未使用スペースへ配置される。これはビットストリームの残部が逆の順序（データセグメントの終わりから開始する）で挿入する方法で行うことができ、これによってサイド情報が削減される。部分的ビットストリームの残部のデータセグメントへの関連付け、および、１より多い残部がデータセグメントへ追加される場合、残部の１以上に対する開始点はビットストリームの内部、たとえば、データパケットヘッダ内で、シグナリング（情報伝達）される必要がある。
可変長符号語のインターリービング
【００６２】
一部のアプリケーションにおいて、１つのデータパケット内の（ソースシンボルの量に対する）部分的ビットストリームの上記した多重化は、下記のような欠点を有しうる：一方では、小さいデータパケットに対して、分割をシグナリングするために必要とされるサイド情報に対するビット数が部分的ビットストリーム内の実際のデータに対して有意になりうるため、最終的に符号化効率を低下させる。他方では、多重化は、（たとえば、ビデオ会議アプリケーションなどの）低遅延が要求されるアプリケーションには不向きであることがある。説明されている多重化の場合、分割の開始部分がそれより前に知られていないので、エンコーダは部分的ビットストリームが完全に作成される前にデータパケットの送信を開始することができない。さらに、一般に、デコーダは、データパケットの復号化を開始する前に、最後のデータセグメントの開始を受信するまで待機する必要がある。ビデオ会議システムのようなアプリケーションにおいて、これらの遅延は、（送信ビットレートに近いビットレートに対して、および画像を符号化／復号化するための２つの画像間の時間インターバルに近い要求をするエンコーダ／デコーダに対して特に）、複数のビデオ画像のシステムの更なる全体遅延に加算される可能性があり、このようなアプリケーションには致命的である。特定のアプリケーションに対するこのような欠点を克服するために、本発明の好ましい実施形態のエンコーダは、２つ以上のビンエンコーダによって生成される符号語が単一のビットストリームにインターリーブされるように構成することができる。インターリーブされた符号語を有するビットストリームは、デコーダに直接送信することができる（小さなバッファ遅延を無視する場合は以下を参照）。デコーダサイドにおいて、２つ以上のビンデコーダは復号化順にビットストリームから直接符号語を読み出し、復号化は最初に受信したビットから開始される。更に、部分的ビットストリームの多重化（またはインターリーブ）をシグナリングするためにサイド情報は必要とされない。
【００６３】
符号語のインターリーブを有するエンコーダの基本構造を図５に示す。ビンエンコーダ１０は、部分的ビットストリームに符号語を直接書き込まないが、単一符号語バッファ２９に連結されており、そこから符号語が符号化順にビットストリーム３４へ書き込まれる。ビンエンコーダ１０は、１つ以上の新しい符号語バッファエントリに対するリクエスト２８を符号語バッファ２９へ送信し、この後、符号語バッファ２９へ符号語３０を送信し、これらが蓄積されたバッファエントリへ格納される。（一般に可変長の）符号語バッファ２９の符号語３１は、符号語ライタ３２によってアクセスされる。符号語ライタ３２は生成されたビットストリーム３４へ対応するビット３３を書き込む。符号語バッファ２９は、先入れ先出しバッファとして演算し、先に蓄積された符号語エントリはビットストリームへ先に書き込まれる。
【００６４】
更なる一般化において、符号語バッファの数がビンエンコーダの数より少ない場合、複数の符号語バッファと部分的なビットストリームが可能である。ビンエンコーダ１０は符号語バッファ２９内に１以上の符号語を蓄積し、これによって、符号語バッファ内の１つ以上の符号語の蓄積は連結されているビンバッファ８内のある事象によってトリガされる。本発明の好ましい実施形態において、符号語バッファ２９は、デコーダがビットストリームを瞬時に復号できるように演算する。符号語がビットストリームに書き込まれる符号化順序は、対応する符号語が符号語バッファに蓄積されている順序と同じである。本発明の好ましい実施形態において、各ビンエンコーダ１０は、その蓄積が連結されているビンバッファ内のある事象によってトリガされることによって１つの符号語を蓄積する。本発明の別の好ましい実施形態において、各ビンエンコーダ１０はその蓄積が連結されているビンバッファ内のある事象によってトリガされることによって１つより多くの符号語を蓄積する。本発明の更なる好ましい実施形態において、ビンエンコーダ１０は異なる量の符号語を蓄積する。ここで、特定のビンエンコーダによって蓄積される符号語の量は、（たとえば、関連する確率測度、すでに書かれたビット数などの）特定のビンエンコーダおよび／または特定のビンエンコーダ／ビンバッファの他の特性に依存しうる。
【００６５】
本発明の好ましい実施形態において、符号語バッファは以下のように演算する。新しいビン７が特定のビンバッファ８に送られ、ビンバッファ内にすでに格納されているビンの数がゼロであり、特定のビンバッファに連結されているビンエンコーダに対する符号語バッファ内には現在符号語が蓄積されていない場合、この連結されているビンエンコーダ１０は、それにより１つ以上の符号語エントリが特定のビンエンコーダに対して符号語バッファ２９内に蓄積されるリクエストを符号語バッファへ送信する。符号語エントリは可変数ビットを有することができる。バッファエントリにおけるビット数の上限しきい値は通常、対応するビンエンコーダの最大符号語サイズによって付与される。次の符号語または（符号語エントリまたは複数の符号語エントリが蓄積されている）ビンエンコーダによって生成される次の符号語は符号語バッファの蓄積されたエントリまたは複数のエントリ内に格納される。特定のビンエンコーダに対する符号語バッファ内のすべての蓄積されたバッファエントリが符号語で埋め込まれ、次のビンが特定のビンエンコーダに連結されているビンバッファに送信される場合、１つ以上の新しい符号語が特定のビンエンコーダなどに対する符号語バッファ内に蓄積される。符号語バッファ２９は、ある方法で、先入れ先出しバッファを表す。バッファエントリは順に蓄積される。対応するバッファエントリが先に蓄積されている符号語は先にビットストリームへ書き込まれる。符号語ライタ３２は、連続的にまたは符号語バッファ２９へ符号語３０が書き込まれた後に、符号語バッファ２９の状態をチェックする。第１のバッファエントリが完成した符号語を含む場合（すなわち、バッファエントリは蓄積されていないが符号語を含む場合）、対応する符号語３１と対応するバッファエントリは、符号語バッファ２０から取り除かれ、符号語３３のビットはビットストリームへ書き込まれる。このプロセスは、第１のバッファエントリが符号語を含まなくなるまで（すなわち、蓄積されるかまたはフリーになるまで）反復される。復号化プロセスの終了時、すなわち、考えられるデータの量の全てのソースシンボルが処理された場合、符号語のバッファをフラッシュする必要がある。そのフラッシュプロセスに対して、以下が第１のステップとしてビンバッファ／ビンエンコーダごとに適用される。すなわち、ビンバッファがビンを含む場合、特定のまたは任意の値を有するビンは、得られるビン列が、符号語に関連付けられたビン列を表すまで加算される（上記したように、ビンを加算する１つの好ましい方法は、接頭語としてビンバッファの元のコンテンツを含むビン列に関連付けられた、最短長さの可能な符号語―またはこれらのうちの１つ―を生成するようなビン値を加算することである）。次に、符号語は対応するビンエンコーダに対する次に蓄積されたバッファエントリへ書き込まれ、（対応する）ビンバッファは空になる。複数のバッファエントリが１つ以上のビンエンコーダに対して蓄積されている場合、符号語のバッファは蓄積された符号語エントリを未だに含む場合がある。その場合、これらの符号語エントリには任意であるが、対応するビンエンコーダに対して有効な符号語が埋め込まれている。本発明の好ましい実施形態において、最短の有効な符号語または最短の有効な符号語（複数ある場合）の１つが挿入される。最後に、符号語バッファ内の残留している全ての符号語はビットストリームに書き込まれる。
【００６６】
符号語バッファの状態に対する２つの例を図６に示す。この例（ａ）において、符号語バッファは、符号語と５個の蓄積されたエントリが埋め込まれている２個のエントリを含む。更に、次の空きバッファエントリはマークされている。第１のエントリには、符号語が埋め込まれている（すなわち、ビンエンコーダ２が前に蓄積されたエントリへ符号語を書き込んだばかりである）。次のステップにおいて、この符号語は符号語バッファから除去され、ビットストリームへ書き込まれる。次に、ビンエンコーダ３の第１の蓄積された符号語は第１のバッファエントリであるが、このエントリは蓄積されているだけでこのエントリに符号語が全く書き込まれていないので、このエントリを符号語のバッファから取り除くことができない。例（ｂ）において、符号語バッファは、符号語と４個の蓄積されたエントリが埋め込まれている３個のエントリを含む。第１のエントリは蓄積されているとしてマークされ、したがって、符号語ライタは符号語をビットストリームに書き込むことはできない。３個の符号語が符号語バッファに含まれているが、符号語ライタは、符号語がビンエンコーダ３に対する最初に蓄積されたバッファエントリに書き込まれるまで、待機しなければならない。符号語は、デコーダサイドでプロセスを逆転することが可能であるように、蓄積されている順に書き込む必要があることに留意されたい（下記参照）。
【００６７】
符号語インターリーブを有するデコーダの基本的な構造を図７に示す。ビンデコーダ１０は、個別の部分的ビットストリームから直接符号語を読み出さないが、符号語３７が符号化順に読み出されるビットバッファ３８に連結されている。符号語もビットストリームから直接読み出すことができるので、ビットバッファ３８が必ずしも必要とされないことに留意されたい。プロセッシングチェーンの異なる態様を明確に区別するためにビットバッファ３８を主としてこの図に含めた。インターリーブされた符号語を有しているビットストリーム４０のビット３９はビットバッファ３８に順に挿入され、これが先入れ先出しバッファを表している。特定のビンデコーダ２２が１つ以上のビン列に対するリクエスト３５を受信した場合、ビンデコーダ２２は、ビットに対するリクエスト３６を介して、ビットバッファ３８から１つ以上の符号語３７を読み出す。デコーダはソースシンボルを瞬時に復号化することができる。（上記のように）エンコーダは、符号語バッファを適切に演算させることによって、符号語がビンデコーダによってリクエストされるのと同じ順序でビットストリームへ書き込まれることを確実にする必要があることに留意されたい。デコーダにおいて、全体の復号化プロセスは、ソースシンボルに対するリクエストによってトリガされる。特定のビンエンコーダによってエンコーダサイドで蓄積された符号語の数と対応するビンデコーダによって読み出される符号語の数としてのパラメータは同じでなければならない。
【００６８】
更なる一般化において、ビットバッファの数がビンデコーダの数より少ない場合、複数の符号語バッファと部分的なビットストリームが可能である。ビンデコーダ２２は、ビットバッファ３８から１つ以上の符号語を１回だけ読み出し、これによって、ビットバッファからの１つ以上の符号語の読み出しが連結されているビンバッファ２０におけるある事象によってトリガされる。本発明の好ましい実施形態において、デコーダは、１以上の符号語が、ビンに対するリクエスト１９が特定のビンバッファ２０に送信されたときに読み出され、ビンバッファはビンを含まないように演算する。しかし、たとえば、ビンバッファ内のビン数が所定のしきい値より少ない場合などの他の事象によっても、符号語の読み出しをトリガすることが可能である。本発明の好ましい実施形態において、各ビンデコーダ２２は、読み出しが連結されているビンバッファにおけるある事象によってトリガされることによって、１つの符号語を読み出す。本発明の別の好ましい実施形態において、各ビンデコーダ２２は、読み出しが連結されているビンバッファ内のある事象によってトリガされることによって１つより多くの符号語を読み出す。本発明の更なる好ましい実施形態において、ビンデコーダ２２は、異なる量の符号語を読み出し、ここで、特定のビンデコーダによって読み出される符号語の量は、（関連付けられた確率測度、既に読み出されたビット数などの）特定のビンデコーダおよび／または特定のビンデコーダ／ビンバッファの他の特性に依存することができる。
【００６９】
本発明の好ましい実施形態において、ビットバッファからの符号語の読み出しは以下のように演算される。新しいビンリクエスト１９はビンバッファ選択部１８から特定のビンバッファ２０へ送信され、ビンバッファ内のビンの数がゼロである場合、連結されているビンデコーダ２２は、ビットバッファ３８に対するビットリクエスト３６を介して、ビットバッファ３８から１つ以上の符号語３７を読み出す。ビンデコーダ２２は、読み出された符号語３７をビンの列２１へ変換し、これらのビン列を連結されているビンバッファ２０内へ格納する。ビンに対するリクエスト１９への最終応答として、最初に挿入されたビンはビンバッファ２０から取り除かれ、ビンバッファ選択部１８へ送られる。更なるビンリクエストに対する応答として、ビンバッファ内に残っているビンは、ビンバッファが空になるまで除去される。更なるビンリクエストは、ビットバッファなどから１つ以上の新しい符号語を読み出すためにビンデコーダをトリガする。ビットバッファ３８は、事前に定義付けられたサイズの先入れ先出しバッファを表しかつビットストリーム４０からのビット３９が連続的に埋め込まれる。符号語が復号化プロセスによってリクエストされたときと同じ方法でビットストリームに書き込まれることを確実にするために、エンコーダサイドの符号語バッファは上記に説明した方法と同様に演算することができる。
【００７０】
したがって、複数のエントロピーデコーダの各々は、可変長のシンボル列に固定長の符号語をマッピングするように構成されている可変長デコーダであってよく、符号語バッファ４３の出力などの符号語エントリはインターリーブされた符号語の単一ストリームを受け取るために提供されうる。複数のエントロピーデコーダ２２は、複数のエントロピーデコーダから選択部１８によって検索された時に復元されるシンボル列のシンボルによってそれぞれのエントロピーデコーダにおいて新しい符号語からマッピングされる新しいシンボル列を得られる順序に応じて順に符号語のエントリから符号語を検索するように構成することができる。
低遅延制約のある可変長符号語のインターリービング
【００７１】
記載される符号語インターリービングは、任意の分割情報がサイド情報として送信されることを必要としない。そして、符号語はビットストリーム内でインターリーブされるので、遅延も一般的に小さい。しかしながら、これは、（たとえば、符号語バッファに格納される最大ビット数によって指定される）特定の遅延制約が遵守されることを保証するものではない。また、符号語バッファに必要とされるバッファのサイズが理論的には非常に大きくなる可能性がある。図６（ｂ）における例を考慮した場合、これ以上のビンがビンバッファ３へ送信されず、したがって、データパケットの最後にフラッシュプロセスが適用されるまで、ビンエンコーダ３が任意の新しい符号語を符号語バッファへ送信しない可能性がでてくる。よって、ビンエンコーダ１および２に対する全ての符号語は、それらがビットストリームへ書き込むことができるようになる前にデータパケットの最後まで待機する必要がでてくる。この欠点は、更なるメカニズムを符号化するプロセス（また、後述する復号化プロセス）に追加することにより、回避することができる。この追加メカニズムの基本的な概念は、遅延または遅延の上限（以下を参照）に関連した測度が指定したしきい値を超える場合、最初に蓄積されたバッファエントリは、（データパケットの最後に使用したものと同様のメカニズムを用いて）対応するビンバッファをフラッシュすることによって埋め込まれる、というものである。このようなメカニズムによって、関連付けられた遅延測度が指定されたしきい値を下回るまで、待機するバッファエントリの数が削減される。デコーダサイドにおいて、遅延制約を遵守するために、エンコーダサイドで挿入されていたビンを破棄する必要がある。ビンを廃棄するために、基本的に、エンコーダサイドと同様のメカニズムを使用することができる。このような遅延制御に対する２つの好ましい実施形態が以下に記載される。
【００７２】
本発明の好ましい一実施形態において、遅延（または遅延の上限）の測度は、符号語バッファ内のアクティブなバッファエントリの数であり、ここで、アクティブなバッファエントリの数は蓄積されたバッファエントリの数と符号語を含むバッファエントリの数との合計である。最初のバッファエントリが符号語を含む場合、この符号語がビットストリームに書き込まれるので、最初のバッファエントリは常に蓄積されたバッファエントリまたは空きのバッファエントリであることに留意されたい。たとえば、最大許容バッファ遅延が（アプリケーションにより決定されるが）Ｄ個のビットであり、全てのビンエンコーダに対する最大符号語サイズがＬとすると、遅延の制約を犯さずに、符号語バッファ内に含むことができる符号語の最大数に対する下限はＮ＝Ｄ／Ｌによって算出することができる。ビット内の遅延測度Ｄはシステムによって必要とされないが、符号語の最大数Ｎはエンコーダとデコーダの両方に既知である必要がある。本発明の好ましい実施形態において、符号語バッファエンントリの最大数Ｎはアプリケーションによって固定される。本発明の他の好ましい実施形態において、符号語バッファエントリの最大数Ｎはビットストリームの内部、たとえば、ビットストリームに含まれる、データパケットのヘッダ（またはスライスヘッダ）またはビットストリームに含まれるパラメータ集合内でシグナリングされる。ビンエンコーダ１０が、符号語バッファ２９へ１以上の新しいバッファエントリの蓄積に対するリクエストを送信する場合、新しい符号語バッファエントリが蓄積される前に、以下のプロセスが実行される（すなわち、複数の符号語バッファエントリが１つのリクエストによって蓄積される場合は、複数回実行される）。現在アクティブなバッファエントリ数プラス１（次に蓄積されるバッファエントリを考慮して）が符号語バッファエントリの最大数Ｎより大きい場合、（蓄積された）最初のバッファエントリは、現在アクティブなバッファエントリ数プラス１が符号語バッファエントリの最大数Ｎと等しいかこれより少なくなるまで、以下に記載されるプロセスによってフラッシュされる。蓄積されたバッファエントリのフラッシュはデータパケットの最後におけるフラッシュに類似している。対応している最初のバッファエントリを蓄積したビンエンコーダ１０は、得られるビン列が符号語と関連付けられたビン列を表すまで、連結されているビンバッファ８へ特定のまたは任意のビン値を有するビンを加算することによってフラッシュされる。次に、符号語は蓄積されたバッファエントリに書き込まれ、それが最終的に（ビンバッファを空にし、前に蓄積されたバッファエントリを削除しつつ）ビットストリームへ追加される。前述したように、ビンバッファにビンを追加するための１つの好ましい方法は、最短の可能な符号語を生成するビンを追加することである。デコーダサイドでは、遅延制約を遵守するために追加されたビンを破棄するために同様のプロセスが実行される。これにより、デコーダはビットバッファから読み出された符号語をカウントするカウンタＣを維持する（このカウンタはビットバッファ内で維持することができる）。カウンタＣはデータパケットの復号化の開始時に（たとえば、ゼロに）初期化され、符号語の読み出し後に１増加される。加えて、各ビンデコーダ２２はカウンタＣｘを含み、このカウンタＣｘは、最後の符号語が対応するビンデコーダ２２によって読みだされる前に符号語カウンタＣの値を格納する。すなわち、特定のビンデコーダ２２が新しい符号語を読み出す場合、最初のステップとしてそのカウンタＣｘはＣと等しく設定され、次に、符号語がビットバッファから読み出される。ビンに対するリクエスト１９が特定のビンバッファ２０へ送信され、全体符号語カウンタＣと連結されているビンデコーダ２２のカウンタＣｘとの差（Ｃ−Ｃｘ）が符号語バッファエントリの最大数Ｎよりも大きい場合、特定のビンバッファ２０に現在格納されている全てのビンが破棄され、無視される。この追加ステップ以外に、復号化は、上記のように演算される。ビンに対するリクエスト１９が送信される先のビンバッファ２０が（すべてのビンがすでに除去されていたため、またはビンリクエストが受信された後に低遅延メカニズムが第１のステップにおいてすべてのビンを破棄したため）空の場合、連結されているビンデコーダ２２はビットバッファ３８などから１以上の新しい符号語を読み出す。
【００７３】
本発明の別の好ましい実施形態において、遅延に対する測度（または遅延の上限）は符号語バッファ内のアクティブなバッファエントリに対する最大符号語長の合計であり、ここで、特定のバッファエントリの最大符号語長はそのバッファエントリと関連付けられる復号化されたビンに依存する。バッファエントリの最大符号語長は６個として例示されている。最初のバッファエントリが符号語を含む場合、この符号語がビットストリームに書き込まれるので、最初のバッファエントリが常に蓄積されたバッファエントリまたは空きのバッファエントリであることに改めて留意されたい。最大許容バッファ遅延（アプリケーションにより決定される）がＤ個のビットとする。この最大バッファ遅延Ｄはエンコーダとデコーダの両方に既知である必要がある。本発明の好ましい実施形態において、最大バッファ遅延Ｄはアプリケーションによって固定される。本発明の別の好ましい実施形態において、最大バッファ遅延Ｄは、たとえば、ビットストリームに含まれる、データパケットのヘッダ（またはスライスヘッダ）またはパラメータ集合内で、ビットストリーム内部でシグナリングされる。ビット、またはバイト、またはビットの倍数、またはバイトの倍数の単位でシグナリングできる。ビンエンコーダ１０が、符号語バッファ２９へ１以上の新しいバッファエントリの蓄積に対するリクエストを送信する場合、新しい符号語バッファエントリが蓄積される前に以下のプロセスが実行される（すなわち、複数の符号語バッファエントリが１リクエストによって蓄積される場合は、複数回実行される）。
【００７４】
現在アクティブなすべてのバッファエントリに対する最大符号語長と蓄積されるバッファエントリの最大符号語長との合計が最大バッファ遅延Ｄよりも大きい場合、すべてのアクティブなバッファエントリに対する最大符号語長と蓄積されるバッファエントリに対する最大符号語長との合計が最大バッファ遅延Ｄと等しいかそれより小さくなるまで、（蓄積された）最初のバッファエントリは、上記したプロセスによってフラッシュされる。一例として、図６（ｂ）を参考にする。現在アクティブなすべてのバッファエントリの最大符号語長の合計は２９である。最大バッファ遅延Ｄが３２と等しくなるように設定されていると仮定する。次のバッファエントリが、最大符号語長が３と等しいビンエンコーダ２によって蓄積される場合、２９＋３は３２より大きくないので、最初のバッファエントリはフラッシュされない。しかし、次のバッファエントリが、最大符号語長が７と等しいビンエンコーダ１によって蓄積される場合、２９＋７が３２より大きいので、最初のバッファエントリはフラッシュされる。蓄積されたバッファエントリのフラッシュは（対応するビンバッファに特定または任意の値を有するビンを追加することによって）上記のように行われる。
【００７５】
デコーダサイドにおいて、遅延の制約に従うために追加されたビンを破棄するために同様のプロセスが実行される。これによって、デコーダはビットバッファから読み出された符号語に対する最大符号語長をカウントするカウンタＣを維持する（このカウンタはビットバッファ内で維持することができる）。異なるビンデコーダと関連付けられる最大符号語長は異なる場合があることに留意されたい。カウンタＣはデータパケットの復号化の開始時に（たとえば、ゼロに）初期化され、符号語の読み出し後に増加される。このカウンタは読み出された符号語の実際の長さではなく、その最大長さ分増加される。すなわち、符号語が特定のビンデコーダによって読み出され、特定のビンデコーダによって使用される符号語テーブルと関連付けられる最大符号語長がＬｘ（異なるビンデコーダは異なる最大符号語長に関連付けることができる）である場合、カウンタＣはＬｘだけ増加される。全体的なカウンタＣに加えて、各ビンデコーダ２２はカウンタＣｘを含み、このカウンタＣｘは、最後の符号語が対応するビンデコーダ２２によって読み出される前に符号語カウンタＣの値を格納する。すなわち、特定のビンデコーダ２２が新しい符号語を読み出す場合、最初のステップとしてそのカウンタＣｘはＣと等しく設定され、次に、符号語がビットバッファから読み出される。ビンに対するリクエスト１９が特定のビンバッファ２０へ送信され、全体的なカウンタＣと連結されているビンデコーダ２２のカウンタＣｘとの差（Ｃ−Ｃｘ）が最大バッファ遅延Ｄよりも大きい場合、特定のビンバッファ２０に現在格納されている全てのビンが破棄され、無視される。この追加ステップ以外に、復号化は、上記のように演算される。ビンに対するリクエスト１９が送信される先のビンバッファ２０が（すべてのビンがすでに除去されていたため、またはビンリクエストが受信された後に低遅延メカニズムが第１のステップにおいてすべてのビンを破棄したため）空の場合、連結されているビンデコーダ２２はビットバッファ３８などから１以上の新しい符号語を読み出す。
【００７６】
したがって、複数のエントロピーデコーダ２２と選択部１８は、復元されるシンボル列の形成に参加しないようにシンボル列の接尾語を断続的に破棄するように構成することができる。２９。断続的破棄は、符号語エントリからのそれぞれのエントロピーデコーダの２つの連続した符号語検索間の複数のエントロピーデコーダによって符号語エントリから既に検索されている多数の符号語が所定基準を満たしている事象において実行することができる。次いで、複数のエントロピーエンコーダと符号語バッファは、現在転送されているがまだマッピングされていないシンボルを接頭語として有するドント―ケアシンボルによって、現在転送されているがまだマッピングプされていないシンボルを有意シンボル列へ断続的に拡張し、これによって拡張されたシンボル列を符号語へマッピングし、これによって得られた符号語を蓄積された符号語エントリへ入力し、符号語エントリをフラッシュするように構成されてもよい。断続的拡張、入力、フラッシュは、多数の蓄積された符号語エントリと入力された符号語を有する多数の符号語エントリとの合計が所定基準を満たす事象において発生する。所定基準は複数のエンコーダ／デコーダペアの最大符号語長を考慮に入れることができる。
【００７７】
いくつかのアーキテクチャにおいて、符号語のインターリービングに対する上記した好ましい実施形態によって、復号化の複雑さの点において欠点が生じる可能性がある。図７に示すように、すべてのビンデコーダ２２は、単一ビットバッファ３８から符号語（一般的な場合、可変長符号語）を読み出す。符号語は正しい順序で読み出される必要があるので、符号語の読出しは並列に実行することができない。これは、特定のビンデコーダは、他のビンデコーダが符号語の読み出しを終了するまで待機する必要があることを意味する。そして、可変長符号語の読出しの複雑さが（部分的に並列化された）復号化プロセスの残部との関係で重要である場合、可変長符号語のこのアクセスが全体の復号化プロセスに対する障害になり得る。単一ビットバッファからのアクセスの複雑さを低減するために用いることができる、記載されている本発明の実施形態のいくつかの変形があり、いくつかを以下に説明する。本発明の好ましい一実施形態において、（たとえば、冗長度のない接頭語符号を表している）符号語の単一集合が存在し、ビンデコーダ２２ごとに使用される符号語の集合は、単一符号語集合の部分集合である。異なるビンデコーダ２２は単一符号語集合の異なる部分集合を使用できることに留意されたい。ビンデコーダ２２の一部によって使用される符号語集合が同じでも、ビン列との関連付けは異なるビンデコーダ２２ごとに異なる。本発明の特定の実施形態において、符号語の同一集合はすべてのビンデコーダ２２に対して使用される。全てのビンデコーダに対する符号語の集合を含む単一符号語集合を部分集合として有して場合、符号語の解析はビンデコーダ外で行うことができることから、符号語アクセスの複雑さが低減できる。符号化プロセスは上記のプロセスに関して変更されない。改良された復号化プロセスを図８に示す。単一符号語リーダはビットストリーム４０からビット４６とともに供給され―一般的に可変長の―符号語を解析する。読み出された符号語４４は、先入れ先出しバッファを表す、符号語バッファ４３内へ挿入される。ビンデコーダ２２は、符号語バッファ４３へ１以上の符号語に対するリクエスト４１を送信し、このリクエストへの応答として１以上の符号語が符号語バッファから（順に）取り除かれ、対応するビンデコーダ２２へ送信される。本発明の本実施形態によれば、潜在的に複雑な符号語の解析は裏処理で行うことができ、ビンデコーダを待機する必要がないことに留意されたい。ビンデコーダは既に解析された符号語へアクセスし、潜在的に複雑な符号語の解析はもはや全体的なバッファに対するリクエストの一部ではない。寧ろ、既に解析された符号語はビンデコーダへ送信されるが、符号語のインデックスだけをビンデコーダに送信されるように実施することもできる。
固定長のビット列のインターリービング
【００７８】
ビンデコーダ２２が、グローバルビットバッファ３８から可変長符号語を読み出さない代わりに、グローバルビットバッファ３８から固定長のビット列を常に読み出しこれらの固定長のビット列をローカルビットバッファへ追加する場合に、デコーダの複雑さを低減するための更なる方法が得られる。ここで、各ビンデコーダ２２は分離したローカルビットバッファと連結されている。次いで、可変長符号語はローカルビットバッファから読み出される。これにより、可変長符号語の解析は、並行に実行することができ、ビットの固定長列のアクセスのみが同期的な方法で行われる必要があるが、ビットの固定長列のこのようなアクセスは通常は非常に迅速であり、これにより、全体的な復号化の複雑さは一部のアーキテクチャに対して低減され得る。特定のローカルビットバッファへ送信されるビンの固定数は異なるローカルビットバッファごとに異なる場合があり、ビンデコーダ、ビンバッファ、またはビットバッファにおける事象としてのあるパラメータに応じて、経時的に変化しうる。しかしながら、特定のアクセスによって読み出されるビット数は特定のアクセス中に読み出される実際のビットに依存しない。これは可変長の符号語の読み出しに対する重要な違いである。ビットの固定長列の読み出しはビンバッファ、ビンデコーダ、またはローカルビットバッファにおけるある事象によってトリガされる。一例として、連結されているビットバッファ内に存在しているビット数が所定のしきい値を下回った場合、新しい固定長のビット列の読み出しをリクエストすることが可能である。ここでは、異なるしきい値を異なるビットバッファに対して使用することができる。エンコーダでは、固定長のビン列が同じ順序でビットストリーム内へ挿入されることを確実とすること必要があり、ここでは、デコーダサイドでビットストリームから読み出される。この固定長列のインターリービングと、上で説明したものと同様の低遅延コントロールと、を組み合わせることも可能である。固定長のビット列のインターリービングのための好ましい実施形態を以下に説明する。
【００７９】
図９は、２つ以上のビンエンコーダに対する固定長のビット列をインターリーブする、本発明の実施形態に対する基本的なエンコーダ構造を示す図である。図５に示された実施例とは対照的に、ビンエンコーダ１０は単一の符号語バッファに連結されていない。その代わり、各ビンエンコーダ１０は、対応する部分的ビットストリームに対するビットを格納する、個別のビットバッファ４８と連結されている。すべてのビットバッファ４８はグローバルビットバッファ５１に連結されている。グローバルビットバッファ５１はビットライタ５３に連結されており、このビットライタ５３は、グローバルビットバッファから符号化／復号化の順序でビット５２を除去し、除去されたビット５４をビットストリーム５５へ書き込む。特定のビットバッファ４８または連結されているビンエンコーダ１０またはビンバッファ８におけるある事象において、ビットバッファ４８はそれによりいくつかのビット数がグローバルビットバッファ５１内に蓄積されるグローバルビットバッファ５１へリクエスト４９を送信する。固定長のビット列の蓄積に対するリクエスト４９は順に処理される。グローバルビットバッファ５１はある方法で先入れ先出しバッファを表す。すなわち、先に蓄積されたビットは先にビットストリームに書き込まれる。異なるビットバッファ４８は、既に符号化されたシンボルに基づいて経時的に変化することもできる異なる量のビットを蓄積することができるが、特定のリクエストによって蓄積されたビット数は、リクエストがグローバルビットバッファに送信される時点で知られていることに留意されたい。
【００８０】
本発明の特定の実施形態において、ビットバッファ４８とグローバルビットバッファ５１は以下に説明されるように演算する。特定のビットバッファ４８によって蓄積されたビットの量は、Ｎｘと表記される。このビットの数Ｎｘは異なるビットバッファ４８ごとに異ならせることができ、また、経時的に変化し得る。本発明の好ましい実施形態において、特定のビットバッファ４８によって蓄積されたＮｘ個のビット数は経時的に固定される。ビット４９のＮｘ個の固定数に対する蓄積はビットバッファ４８内のビット数Ｍｘ個、蓄積リクエストに対するビットＮｘ個、および関連付けられた最大符号語長Ｌｘに基づいてトリガされる。各ビンエンコーダ１０は異なる最大符号語長Ｌｘと関連付けることができることに留意されたい。ビン７が特定のビンバッファ８へ送られ、特定のビンバッファ８が空であり、Ｎｘ個のビットの列の１つ以下が（ビンエンコーダを介して）特定のビンバッファに連結されているビットバッファ４８に対するグローバルビットバッファ内に蓄積され、（ビンエンコーダを介して）特定のビンバッファ８に連結されているビットバッファ４８の蓄積リクエストによって蓄積されたビットの数Ｎｘとこのビットバッファ４８内に現在あるビットの数Ｍｘとの差（Ｎｘ−Ｍｘ）が対応するビンエンコーダ１０と関連付けられた最大符号語長Ｌｘより小さい場合、連結されているビットバッファ４９は、Ｎｘ個のビットの蓄積に対するリクエスト４９をグローバルビットバッファ５１へ送信する。グローバルビットバッファ５１は特定のビットバッファ４８に対してＮｘ個のビットを蓄積し、次の蓄積のためにそのポインタを増加させる。Ｎｘ個のビットがグローバルビットバッファに蓄積された後、ビン７はビンバッファ８に格納される。この単一ビンが符号語に関連付けられたビン列を既に表している場合、ビンエンコーダ１０は、ビンバッファ８からこのビンを取り除いて、連結されているビットバッファ４８へ対応する符号語４７を書き込む。そうでない場合（この単一ビンは符号語に関連付けられたビン列を表している）、ビンバッファ８が符号語に関連付けられたビン列を含むまで、更なるビン７が特定のビンバッファ８によって受容される。この場合、連結されているビンエンコーダ１０はビンバッファ８からビン列９を取り除いて、対応する符号語４７を連結されているビットバッファ４８に書き込む。ビットバッファ４８において得られるビット数Ｍｘ個が蓄積されたビットの数Ｎｘより大きいかまたはこれと等しい場合、ビットバッファ４８に最初に書き込まれたＮｘ個のビットはグローバルビットバッファ５１内で前に蓄積されたスペースへ挿入される。特定のビンバッファ８へ送信される次のビン７として、上記したのと同じプロセスが実行される。すなわち、新しいＮｘ個のビット数がグローバルビットバッファ内に蓄積される必要があるかが最初にチェックされ（Ｎｘ−ＭｘがＬｘより小さい場合）、次に、ビンはビンバッファ８等に挿入される。ビットライタは、グローバルビットバッファの固定長のビット列をそれらが蓄積された順に書き込む。グローバルビットバッファ５１における最初の固定長エントリがグローバルビットバッファに実際に挿入された固定長ビット列を含む場合（すなわち、蓄積だけではない場合）、ビットライタ５３はグローバルビットバッファ５１からこのビット列５２に対するビットを除去し、ビット５４をビットストリームに書き込む。このプロセスは、グローバルビットバッファにおける最初の固定長エントリが蓄積されたまたは空きのエントリを表すまで、繰り返される。グローバルビットバッファにおける最初の固定長のエントリが蓄積されたエントリを表す場合、ビットライタ５３は、このエントリがビットストリーム５５へ更なるビット５４を書き込む前に実際のビットで埋め込まれるまで、待機する。
【００８１】
データパケットの最後に、ビンバッファは上記したようにフラッシュされる。更に、ビットバッファは、グローバルビットバッファ内のすべての蓄積されたバッファエントリが埋まり、ビットストリームに書き込まれるまで、特定のまたは任意の値を有するビットを追加することによってフラッシュする必要がある。
【００８２】
図１０に、グローバルビットバッファ５１の可能な状態の２つの例が示されている。この例（ａ）において、異なるビットバッファ／ビンエンコーダが異なる数のビットを蓄積しているケースが図示されている。グローバルビットバッファは、実際に書き込まれた固定長のビット列を有する３つのエントリと蓄積された固定長のビット列を有する４つのエントリを含む。最初の固定長エントリは（ビットバッファ／ビンエンコーダ２によって挿入されたばかりであるはずの）実際のビットを既に含む。このエントリ（すなわち、対応する８ビット）は除去されかつビットストリームに書き込むことができる。次のエントリはビンエンコーダ３に対して１０個のビットを蓄積するが、実際のビットはまだ挿入されていない。このエントリはビットストリームに書き込むことはできず、実際のビットが挿入されるまで待機する必要がある。第２の例（ｂ）において、すべてのビットバッファ／ビンエンコーダが同一個数のビット（８ビット）を蓄積した。グローバルビットバッファは、８ビット列に対して４個の蓄積と、３個の実際に書き込まれた８ビット列を含む。最初のエントリはビンエンコーダ３に対して８ビットの蓄積を含む。任意の新しいビットをビットストリームに書き込むことができる前に、ビットライタは、ビットバッファ／ビンエンコーダ３がこの蓄積されたエントリに８ビットの実際の値を書き込むまで、待機する必要がある。
【００８３】
図１１は、固定長ビット列をインターリーブする本発明の実施形態に対する基本的なデコーダ構造を示す図である。図７に示される実施形態とは対照的に、ビンデコーダ２２は、単一ビットバッファに連結されていない。その代わり、各ビンデコーダ２２は分離したビットバッファ５８に連結されており、このビットバッファ５８は対応する部分的ビットストリームからビットを格納する。全てのビットバッファ５８はグローバルビットバッファ６１に連結されている。ビットストリーム６３からのビット６２はグローバルビットバッファ６１内へ挿入される。特定のビットバッファ５８または連結されているビンデコーダ２２またはビンバッファ２０内のある事象が発生すると、ビットバッファ５８は、それによりビットの固定長列６０がグローバルビットバッファ６１から除去され、特定のビットバッファ５８へ挿入される、グローバルビットバッファ６１へリクエスト５９を送信する。固定長ビット列に対するリクエスト５９は順に処理される。グローバルビットバッファ６１は先入れ先出しバッファを表し、グローバルビットバッファへ先に挿入されたビットは先に除去される。異なるビットバッファ５８は異なるビット量をリクエストすることができ、この量は既に復号化されているシンボルに基づいて経時的に変化し得るが、特定のリクエストによってリクエストされるビット数はリクエストがグローバルビットバッファへ送られる時点で知られることに留意されたい。符号語はビットストリームから直接読み出すこともできるので、グローバルビットバッファ６１は必ずしも必要とされないことに留意されたい。グローバルビットバッファ６１は、主として、プロセッシングチェーンの異なる態様をはっきり分けるために図示されている。
【００８４】
本発明の特定の実施形態において、ビットバッファ５８とグローバルビットバッファ６１は以下に説明されるように演算する。特定のビットバッファ５８によってリクエストされ読み出されるビットの量はＮｘと表記され、エンコーダサイドで対応するビットバッファによってグローバルビットバッファへ書き込まれるビット量と等しい。このビットの数Ｎｘは異なるビットバッファ５８ごとに異ならせることができ、また、経時的に変化し得る。本発明の好ましい実施形態において、特定のビットバッファ５８によってリクエストされかつ読み出されるＮｘ個のビット数は経時的に固定される。Ｎｘ個のビットの固定数６０の読み出しは、ビットバッファ５８内のビット数Ｍｘ個と、関連付けられた最大符号語長Ｌｘとに基づいてトリガされる。各ビンデコーダ２２は異なる最大符号語長Ｌｘと関連付けることができることに留意されたい。ビンに対するリクエスト１９が特定のビンバッファ２０へ送られ、特定のビンバッファ２０が空であり、（ビンデコーダを介して）特定のビンバッファ２０に連結されているビットバッファ５８内のビット数Ｍｘが対応するビンデコーダ２２と関連付けられた最大符号語長Ｌｘより小さい場合、連結されているビットバッファ５８は、新しいＮｘ個のビットの列に対するリクエスト５９をグローバルビットバッファ６１へ送信する。このリクエストへの応答として、最初のＮｘ個のビットがグローバルビットバッファ６１から除去され、このＮｘ個のビットの列６０はこのリクエストが送信された元のビットバッファ５８へ送信される。最終的に、このＮｘ個のビットの列は対応するビットバッファ５８へ加算される。次に、次の符号語５７がこのビットバッファから読み出され、連結されているビンデコーダ２２は関連付けられたビン列２１を連結されているビンバッファ２０内へ挿入する。ビンに対する元のリクエスト１９に対する最終応答として、最初のビンはビンバッファ２０から除去され、この復号化されたビン２５はビンバッファ選択部１８へ送られる。次のビンリクエスト１９が特定のビンバッファ２０へ送られ、このビンバッファが空でない場合、次のビットはビンバッファ２０から除去される。ビンバッファが空であるが、連結されているビットバッファ５８内のビット数Ｍｘが関連付けられた最大符号語長Ｌｘより大きいかまたはこれと等しい場合、次の符号語がビットバッファから読み出され、新しいビン列が、最初のビットが除去されかつビンバッファ選択部へ送信されるビンバッファ内へ挿入される。ビットバッファが空であり、連結されているビットバッファ５８内のビット数Ｍｘが関連付けられた最大符号語長Ｌｘより小さい場合、Ｎｘ個のビットの次の列がグローバルビットバッファ６１から読み出され、連結されているローカルビットバッファ５８内へ挿入され、次の符号語がビットバッファから読み出され、新しいビン列がビンバッファへ挿入され、列の最初のビンが除去されビンバッファ選択部へ送信される。このプロセスは、全てのソースシンボルが復号化されるまで反復される。
【００８５】
データパケットの最後において、リクエストされたソースシンボルを復号化するために必要とされる以上のビンおよび／またはビットがビンバッファおよび／またはビットバッファに挿入されることもある。ビンバッファ内の残留ビンとビットバッファ内の残留ビットは破棄され、無視される。
低遅延制約を有する固定長のビット列のインターリービング
【００８６】
固定長のビット列のインターリービングによるエントロピーエンコーダおよびデコーダに対する記載されている実施形態は、上記されているエンコーダバッファ遅延を制御するための方式と組み合わせることもできる。基本的な概念は、上記の遅延制御を有する実施形態と同じである。遅延または遅延の上限に関連した測度（以下参照）が指定されたしきい値を超えた場合、最初に蓄積されたバッファエントリは、（データパケットの最後に使用したものと同様のメカニズムを用いて）対応するビンバッファをフラッシュし、蓄積された固定長のバッファエントリの全てのビットを埋めるために更なるビットを潜在的に書き込むことによって、埋められる。このようなメカニズムによって、関連付けられた遅延測度が指定されたしきい値を下回るまで、待機するバッファエントリの数が削減される。デコーダサイドにおいて、遅延制約を遵守するために、エンコーダサイドで挿入されていたビンおよびビットを破棄する必要がある。ビンおよびビットを廃棄するために、基本的に、エンコーダサイドと同様のメカニズムを使用することができる。
【００８７】
本発明の好ましい実施形態において、遅延（または遅延の上限）の測度は、グローバルビットバッファ内のアクティブなバッファエントリにおけるビット数であり、ここで、アクティブなバッファエントリの数は、蓄積された固定長バッファエントリの数と、既に書き込まれたビットを含む固定長のバッファエントリの数と、の合計である。最初のバッファエントリが書き込まれたビットを含む場合、これらのビットはビットストリームへ書き込まれるので、最初のバッファエントリは常に蓄積された固定長のバッファエントリまたは空きのバッファエントリであることに留意されたい。最大許容バッファ遅延（アプリケーションにより決定されるが）をＤ個のビットとする。この最大バッファ遅延Ｄはエンコーダとデコーダの両方に知られている必要がある。本発明の好ましい実施形態において、最大バッファ遅延Ｄはアプリケーションによって固定される。本発明の他の好ましい実施形態において、最大バッファ遅延Ｄはビットストリームの内部、たとえば、ビットストリームに含まれる、データパケットのヘッダ（またはスライスヘッダ）またはパラメータ集合内でシグナリングされる。ビット、またはバイト、またはビットの倍数、またはバイトの倍数の単位でシグナリングできる。ビンエンコーダ１０がグローバルビットバッファ５１へ新しい固定長のビット列の蓄積に対するリクエストを送信する場合、新しい固定長のバッファエントリが蓄積される前に、次のプロセスが実行される。
【００８８】
グローバルビットバッファ内のアクティブなバッファエントリ内のビット数と現在の蓄積リクエストによって蓄積されたビット数との合計が最大バッファ遅延Ｄより大きい場合、（蓄積された）最初のバッファエントリは、グローバルビットバッファ内のアクティブなバッファエントリ内のビット数と、現在の蓄積リクエストによって蓄積されたビットの数との合計が最大バッファ遅延Ｄと等しいかまたはこれより少なくなるまで、以下に記載されるプロセスによってフラッシュされる。蓄積された固定長バッファエントリのフラッシュはデータパケットの最後におけるフラッシュに類似している。対応している最初のバッファエントリを蓄積したビットバッファ４８に連結されているビンエンコーダ１０は、得られるビン列が符号語と関連付けられたビン列を表すまで、連結されているビンバッファ８へ特定のまたは任意のビン値を有するビンを加算することによってフラッシュされ、次に、符号語は対応するビットバッファ４８へ挿入される。前述したように、ビンバッファにビンを追加するための１つの好ましい方法は、最短の可能な符号語を生成するビンを追加することである。符号語の連結されているビットバッファへの書き込みと、グローバルビットバッファへの固定長のビット列の潜在的な挿入との後で、ビットバッファ内にビットがまだある場合（すなわち、書き込まれた符号語が蓄積された固定長のビット列を完全に埋め込まなかった場合）、特定のまたは任意の値を有する更なるビットが、全てのビットがビットバッファから除去され蓄積されたバッファエントリに書き込まれるまで、ビットバッファへ加算される。最終的に、このプロセスの最後では、完成されたバッファエントリ（グローバルビットバッファ内の最初の固定長エントリ）がグローバルビットバッファから除去されてビットストリームへ書き込まれる。
【００８９】
デコーダサイドでは、遅延制約を遵守するために追加されたビンおよびビットを破棄するために同様のプロセスが実行される。これにより、デコーダはグローバルビットバッファから読み出されたビットをカウントするカウンタＣを維持する（このカウンタはグローバルビットバッファ内で維持することができる）。カウンタＣはデータパケットの復号化の開始時に（たとえば、ゼロに）初期化され、固定長の列が読み出された後に増加される。Ｎｘ個のビットの固定長列がグローバルビットバッファ６１から読み出される場合、カウンタＣはＮｘだけ増加される。全体的なカウンタＣに加え、各ビットバッファ５８はカウンタＣｘを含み、このカウンタＣｘは、最後の固定長ビット列が対応するビットバッファ５８内へ読み込まれる前にビットカウンタＣの値を格納する。特定のビットバッファ５８が新しい固定長ビット列を読み出す場合、そのカウンタＣｘは最初のステップとしてＣと等しく設定され、次に、固定長ビット列がグローバルビットバッファ６１から読み出される。ビンに対するリクエスト１９が特定のビンバッファ２０へ送信され、全体のカウンタＣと連結されているビットバッファ５８のカウンタＣｘとの差（Ｃ−Ｃｘ）が最大バッファ遅延Ｄより大きい場合、特定のビンバッファ２０に現在格納されている全てのビンと連結されているビットバッファ５８内に格納されている全てのビットが破棄され、無視される。この追加のステップ以外に、復号化は上記のように演算される。ビンに対するリクエスト１９が送信される先のビンバッファ２０が、（すべてのビンがすでに除去されていたため、またはビンリクエストが受信された後に低遅延メカニズムが第１のステップにおいてすべてのビンを破棄したため）空である場合、連結されているビンデコーダ２２は連結されているビットバッファ５８から新しい符号語を読み出すことを試みる。ビットバッファ５８内のビット数が最大符号語長より少ない場合、符号語が読み出される前に、グローバルビットバッファ６１などから新しい固定長ビット列が読み出される。
【００９０】
このように、上記の実施形態は各々、ハフマン符号化の複雑さのレベルにおいて算術符号化の効率とシンプルなモデリングの能力を提供するエントロピー符号化への新規なアプローチを示している。離散的なシンボルの入力列の事象スペースはバイナリ確率インターバルの小集合へマッピングされる。確率のインターバルを用いたエントロピー符号化は固定されたままでありモデリングステージからデカップリングされているが、ソースシンボルに対する確率モデルは固定されまたは適応することができる。確率インターバルの各々はハフマン符号の複雑さのレベルを有する非常にシンプルなエントロピーコードを用いて符号化される。事象空間投影式エントロピー符号化（ＥＳＰＥＣ）の過剰率は算術符号化の場合と同様である。
【００９１】
したがって、上記実施形態は、エントロピー符号化の効率を高めるための見込みのある方法を可能にする。一般に、エントロピー符号化は、データの可逆圧縮の最も一般的な形態だと考えられる。可逆圧縮は、元のデータ表現が必要とするより少ないビット数で、情報を損なわずに、離散的データを表現することを目的としている。離散的データは、テキスト、図形、画像、ビデオ、オーディオ、音声、ファクシミリ、医用データ、気象データ、財務データの形態、または他の形態のデジタルデータの形態で付与することができる。多くの符号化アプリケーションにおいて、元のソースデータは、最初に、いわゆる符号化シンボルにマッピングされ、次に、これらの符号化シンボルはエントロピー符号化される。符号化シンボルへのマッピングは量子化を含みうり、この場合、全体的な符号化方式は非可逆的である。符号化シンボルｓは、Ｍ変数（Ｍ≧２）アルファベットＡ＝｛ａ０、．．．、ａＭ−１｝の任意の値を取ることができる。このシンボルｓを符号化するために、アルファベットは予測された確率の質量関数（ｐｍｆ）｛ｐｓ（ａ０）、．．．、ｐｓ（ａＭ−１）｝と関連付けられ、このｐｍｆ内で考慮されない符号化シンボル間の全ての依存関係は無視される。これらの抽象的な設定に対してエントロピー
【数４】
2013528025.tif 000009
は、シンボルｓを符号化するためにシンボルあたりのビットにおいて予想される符号語長さに対する最大下限であり、これは、エントロピー符号化技術を用いて達成することができる。何十年もの間、ハフマン符号化と算術符号化が実用的なエントロピー符号化を支配してきた。これらは、（ある意味で）エントロピーの限界を近似することが可能である実用符号の周知の例である。
【００９２】
固定された確率分布に対して、ハフマン符号を構築することは比較的容易である。ハフマン符号の最も魅力的な特性はそのインプリメンテーションが可変長コード（ＶＬＣ）テーブルを使用することで効率的に実現できることである。しかしながら、時変するソースの統計を扱う場合、すなわち、シンボル確率を変える場合、ハフマン符号とこれに対応するＶＬＣテーブルの適応は、アルゴリズムの複雑さのみならずインプリメンテーションコストの両方に鑑みて要求が多すぎる。さらに、ｐｓ（ａｉ）＞０．５である支配的なアルファベット値を有する場合、対応するハフマン符号の冗長度（たとえば、ランレングス符号化などの任意のアルファベットの拡張子を使用しなければ）は実に大きい。ハフマン符号のもう１つの欠点は、高次の確率モデリングを扱う場合、ＶＬＣテーブルの複数の集合が必要とされるという事実によってもたらされる。
【００９３】
一方、算術符号化は、実質的にＶＬＣより複雑であるが、適応型および高次数の確率モデリングだけでなく、かなり偏った確率分布に対処する時により一貫性のある適切な処理を行うことができるという利点を提供する。実際に、この特徴は、基本的には、算術符号化は、少なくとも概念的には、多かれ少なかれ直接的な方法で確率予測の任意の所与の値を得られる符号語の一部にマッピングするためのメカニズムを提供する事実に起因する。このようなインターフェイスを具備することによって、算術符号化は、一方では、確率モデリングと確率予測のタスクを互いに明確に区別し、他方では、実際のエントロピー符号化、すなわち、シンボルの符号語へのマッピングを可能にする。
【００９４】
今説明した従来のエントロピー符号化方式とは異なり、上述した本発明の実施形態の一部は一種の事象空間投影を使用しており、その数学的背景を以下により詳細に説明する。
符号化シンボルの列｛ｓ０、．．．、ｓＮ−１）｝を考える。各シンボルは、アルファベット
【数５】
2013528025.tif 000010
から引き出される。アルファベット
【数６】
2013528025.tif 000011
は、それぞれが確率予測
【数７】
2013528025.tif 000012
と関連付けられている２つ以上の文字を含む。確率予測
【数８】
2013528025.tif 000013
は、エンコーダとデコーダに知られており、固定または可変とされる。変数の確率がエンコーダとデコーダにおいて同時に予測されると仮定される。アルファベットＡｉは、シンボル列に対して同一であるかまたは異なるシンボルタイプが異なるアルファベットと関連付けられるかのいずれかである。後者の場合、デコーダが列内の各シンボルのアルファベットを知っていると仮定される。この仮定は、実用的なソースのコーデックの説明はシンボルとそのアルファベットの順序を定めているシンタックスを含むとして正当化される。
シンボルの列｛ｓ０、．．．、ｓＮ−１｝は、ビンとも呼ばれるバイナリシンボルの列に変換される。シンボルｓｉごとに、２値化
【数９】
2013528025.tif 000014
は、ビン
【数１０】
2013528025.tif 000015
の順序付けられた集合へのアルファベット文字
【数１１】
2013528025.tif 000016
の全単射マッピングを表している。２値化マッピング
【数１２】
2013528025.tif 000017
は異なるシンボルｓｉごとにまたはシンボルカテゴリごとに異ならせることができる。特定のシンボルｓｉに対する各ビン列ｉは、１つ以上のビン
【数１３】
2013528025.tif 000018
からなる。デコーダサイドにおいて、シンボルｓｉは、ビン列ｂｉが与えられている場合、逆マッピング
【数１４】
2013528025.tif 000019
によって復元することができる。２値化の結果として、ソースシンボルの列｛ｓ０、．．．、ｓＮ−１｝を表すビン列｛ｂ０、．．．、ｂＢ−１｝が取得される。
【００９５】
すべてのビンｂｊが同じバイナリアルファベットＢ＝｛０、１｝と関連付けられるが、
【数１５】
2013528025.tif 000020
である場合、対応するバイナリｐｍｆ
【数１６】
2013528025.tif 000021
は通常は異なる。バイナリｐｍｆ
【数１７】
2013528025.tif 000022
は確率の低いビン（ＬＰＢ）値ｂｊＬＰＢとその確率ｐｊＬＰＢ（ｐｊＬＰＢ≦０．５である場合）によって記述することができる。このバイナリ確率記述｛ｂｊＬＰＢ、ｐｊＬＰＢ｝は、２値化マッピング
【数１８】
2013528025.tif 000023
が与えられた場合、シンボルアルファベットに対する確率予測
【数１９】
2013528025.tif 000024
から直接導出することができる。エンコーダサイドとデコーダサイドにおいて｛ｂｊＬＰＢ、ｐｊＬＰＢ｝を同時に直接予測することが可能である（そして、しばしば好ましい）。したがって、ビンは、シンタックスと前に符号化されたシンボルまたはビンに基づく確率モデル（また、コンテクストとも呼ばれる）と関連付けることができる。確率モデルごとに、確率の記述｛ｂｊＬＰＢ、ｐｊＬＰＢ｝は、確率モデルによって符号化されたビンの値に基づいて予測される。このようなバイナリ確率モデリングの例を、Ｈ．２６４のＣＡＢＡＣとして説明する。
【００９６】
バイナリエントロピー関数
【数２０】
2013528025.tif 000025
はｐ＝０．５周辺で左右対称であり、同じバイナリコーダは、ｂｊＬＰＢの値とは無関係に、同一のＬＰＢ確率ｐｊＬＰＢと関連付けられたすべてのビンを符号化するために使用することができる。したがって、ビン列｛ｂ０、．．．、ｂＢ−１｝は、符号化ビン
【数２１】
2013528025.tif 000026
の列へ変換される。ビンｂｊごとに、対応する全単射マッピング
【数２２】
2013528025.tif 000027
は、
【数２３】
2013528025.tif 000028
で表される。ここで、プラス記号を円で囲んだ演算子は、排他論理和演算子を表す。デコーダサイドにおいて、ビンｂｊは符号化ビン
【数２４】
2013528025.tif 000029
と対応するＬＰＢ値ｂｊＬＰＢが与えられている場合、逆マッピング
【数２５】
2013528025.tif 000030
によって、復元することができる。符号化ビン
【数２６】
2013528025.tif 000031
は対応するビンｂｊの値がＬＰＢ値ｂｊＬＰＢと等しくなることを指定し、符号化ビン
【００９７】
【数２７】
2013528025.tif 000032
は対応するビンｂｊの値が確率の高い値（ＭＰＢ）値１−ｂｊＬＰＢと等しくなることを指定する。
【００９８】
符号化ビンの列
【数２８】
2013528025.tif 000033
は一意にソースシンボルの列｛ｓ０、．．．、ｓＮ−１｝を表し、エントロピー符号化に用いることができる対応する確率予測はＬＰＢ確率ｐｊＬＰＢ（ｐｊＬＰＢ≦０．５である場合）によって完全に記述することができる。したがって、半開インターバル（０、０．５］において１つだけの確率は符号化ビン
【数２９】
2013528025.tif 000034
に対するバイナリエントロピーコーダを設計するために考慮する必要がある。
実際のバイナリエントロピー符号化については、符号化ビン列
【数３０】
2013528025.tif 000035
が少数の確率インターバルＩｋへ投影される。ＬＰＢの確率インターバル（０、０．５］はＫインターバルＩｋ＝（ｐｋ、ｐｋ＋１］に分割される。
【数３１】
2013528025.tif 000036
【００９９】
Ｋインターバルの集合はｋ＝１、．．．、Ｋ−１であるとき、Ｋ−１インターバルの境界ｐｋで特徴づけられる。一般性を失うことなく、ｋ＝０、．．．、Ｋであるときｐｋ＜ｐｋ＋１であると仮定する。外のインターバルの境界は固定され、ｐ０＝０およびｐｋ＝０．５が付与されている。単純な非適応バイナリエントロピーコーダがインターバルＩｋごとに設計される。関連づけられたＬＰＢの確率
【数３２】
2013528025.tif 000037
を有する全ての符号化ビン
【数３３】
2013528025.tif 000038
はインターバルＩｋに割り当てられ、対応する固定エントロピーコーダによって符号化される。
【０１００】
以下の説明において、すべてのビンは、符号化ビン
【数３４】
2013528025.tif 000039
を表し、すべての確率ｐはＬＰＢ確率ｐｊＬＰＢである。
【０１０１】
符号化効率の確率インターバルの離散化の影響を調べる際、われわれはエントロピー限界を達成する固定確率のために最適なエントロピーエンコーダを設計できることを前提としている。各確率インターバルＩｋ＝（ｐｋ、ｐｋ＋１］は代表確率
【数３５】
2013528025.tif 000040
と関連付けられており、対応する最適なエントロピーコーダは、この代表的な確率のエントロピー限界を達成すべきである。これらの仮定の下で、インターバル代表値ｐＩｋに対して最適なエントロピーコーダを用いて確率ｐでビンを符号化する速度は、
【数３６】
2013528025.tif 000041
で与えられる。
【０１０２】
この場合、Ｈ（ｐ）はバイナリエントロピー関数３を表し、
【数３７】
2013528025.tif 000042
は、その最初の導関数である。さらに、インターバルにおける確率分布（０、０．５］が、
【数３８】
2013528025.tif 000043
のとき、ｆ（ｐ）で与えられることを前提とする。次に、ビンあたりのビットで予測される速度は、対応する代表的な確率｛ｐＩｋ｝を有する所与のＫインターバル｛Ｉｋ｝の集合に対して、
【数３９】
2013528025.tif 000044
で表される。
【０１０３】
ｋ＝０、．．．、Ｋ−１であるとき、任意の代表的な確率ｐＩｋに対する最初の部分的導関数は、
【数４０】
2013528025.tif 000045
で与えられる。
【０１０４】
等式
【数４１】
2013528025.tif 000046
は、定義Ｉｋのドメイン内の代表的確率ｐＩｋに対して、単一の解
【数４２】
2013528025.tif 000047
を有している。この解に対する第２の部分的導関数
【数４３】
2013528025.tif 000048
は、
【数４４】
2013528025.tif 000049
の場合、常にゼロより大きい。
【０１０５】
したがって、条件Ｂ１２が満たされた場合、等式Ｂ１０において付与された値
【数４５】
2013528025.tif 000050
は、インターバル境界ｐｋおよびｐｋ＋１であるとき、予測全体速度Ｒを最小とするインターバルＩｋに対する代表的確率である。それ以外の場合、ビンはインターバルＩｋに全く投影されることなく、代表的確率
【数４６】
2013528025.tif 000051
が、全体速度Ｒに影響を与えずに、任意に選択されるが、このような構成は、インターバルＩｋがエントロピー符号化に用いるものではないため、回避すべきである。
【０１０６】
最適なインターバル境界に対する条件を見つけるために、われわれは、ｋ＝１、．．．、Ｋ−１であるとき、インターバル境界ｐｋに関して予測される全体速度Ｒの最初の導関数を検討する。全ての
【数４７】
2013528025.tif 000052
に対してｆ（ｐ）＞０である場合、
【数４８】
2013528025.tif 000053
は、定義［ｐＩｋ−１、ｐＩｋ）のドメイン内部のインターバル境界ｐｋに対して単一の解
【数４９】
2013528025.tif 000054
を有しており、この解に対する第２の部分的導関数
【数５０】
2013528025.tif 000055
はゼロより常に大きく、これによって、インターバル代表値ｐＩｋ−１およびｐＩｋが与えられたとき、
【数５１】
2013528025.tif 000056
は、予測全体速度Ｒを最小にするインターバル境界
【数５２】
2013528025.tif 000057
である。ｆ（ｐ）＝０であるとき、確率
【数５３】
2013528025.tif 000058
が存在する場合、等式
【数５４】
2013528025.tif 000059
は複数の解を有するが、等式Ｂ１３で付与されている
【数５５】
2013528025.tif 000060
は、更なる最適解が存在しても依然として最適である。
【０１０７】
インターバルＫの数および確率分布ｆ（ｐ）が与えられているとき、予測全体速度Ｒを最小にするｋ＝１、．．．、Ｋ−１であるインターバル境界ｐｋおよびｋ＝０、．．．、Ｋ−１であるインターバル代表値ｐＩｋは、ｋ＝０、．．．、Ｋ−１に対して、条件Ｂ１２を受けることになっている等式Ｂ１０とＢ１３によって付与される等式システムを解くことによって得ることができる。これは、以下の反復アルゴリズムによって得ることができる。
【０１０８】
アルゴリズム１：
１）条件Ｂ１２が全てのｋ＝０、．．．、Ｋ−１対して満たされるように、インターバル（０、０．５］をｐ０＝０、ｐｋ＝０．５、であり、全てのｋ＝０、．．．、Ｋ−１対してｐｋ＜ｐｋ＋１であるＫ個の任意のインターバル、Ｉｋ＝（ｐｋ、ｐｋ＋１］へ分割する。
２）等式Ｂ１０に基づいて、ｋ＝０、．．．、Ｋ−１である代表値ｐＩｋを更新する。
３）等式Ｂ１３に基づいて、ｋ＝１、．．．、Ｋ−１であるインターバル境界値ｐｋを更新する。
４）収束まで、前の２つのステップを繰り返す。
【０１０９】
図１２は上記のアルゴリズムを用いた最適なインターバル離散化の例を示している、この例において、われわれは、０＜ｐ≦０．５であるとき、均一な確率分布ｆ（ｐ）＝２を仮定し、確率インターバル（０、０．５］をＫ＝４のインターバルに分割した。確率インターバルの離散化が、すべての
【数５６】
2013528025.tif 000061
対してＡ（ｐ）≧Ｈ（ｐ）である、バイナリエントロピー関数Ｈ（ｐ）の区分的な線形近似Ａ（ｐ）につながることが示されている。
【０１１０】
符号化効率上のインターバルの離散化の影響に対する測度として、エントロピー限界に相対して予測される全体的な速度増加
【数５７】
2013528025.tif 000062
を使用することができる。図１２の特定の例において、エントロピーの予測値
【数５８】
2013528025.tif 000063
は、ビンあたりの１／（２１ｎ２）ビットと等しく、速度オーバーヘッド
【数５９】
2013528025.tif 000064
は１．０１％と等しい。表４は、選択されたインターバルＫ個に対して、均一な確率分布および、
【数６０】
2013528025.tif 000065
のとき、ｆ（ｐ）＝８ｐである、線形に増加する確率分布に対する速度オーバーヘッド
【数６１】
2013528025.tif 000066
および
【数６２】
2013528025.tif 000067
をそれぞれ、挙げている。
【表４】
2013528025.tif 000068
【０１１１】
このセクションでの検討は、一定の確率（たとえば、８〜１０個のインターバル）を有する少数インターバルへのＬＰＢの確率インターバル（０、０．５］の離散化が符号化効率に与える影響がきわめて小さいことを示した。
【０１１２】
確率インターバルに対する上述したエントロピー符号化は、固定確率を用いた個別のコーダを有用にする。
【０１１３】
以下において、われわれはまず、簡単なコードは固定確率に対してどのように設計することができるかを示す。これらの結果によって、われわれは結合してコードの設計とＬＰＢ確率インターバル（０、０．５］の分割を最適化するアルゴリズムを展開する。
【０１１４】
固定確率ｐ＝ｐＩｋに対するエントロピー符号化は、算術符号化または可変長符号化を使用して実行することができる。後者の場合は、以下のアプローチがシンプルで非常に効率的であるように思われる。
【０１１５】
われわれは、ビンの可変数が可変長符号語にマッピングされるバイナリエントロピー符号化方式を検討する。一意的な復号化性に関して、ビン列への符号語の逆マッピングは一意である必要がある。そして、われわれはできるだけエントロピー限界に接近するコードを設計したいので、われわれの考えを全単射マッピングに制約する。図１３に示すように、このような全単射マッピングは、すべてのリーフノードが符号語と関連付けられているバイナリツリーによって表することができる。ツリーエッジはバイナリ事象を表している。図１３の例において、下方エッジはＬＰＢビン値を表し、上方エッジはＭＰＢビン値を表している。バイナリツリーが完全なバイナリツリーの場合、すなわち、すべてのノードがリーフであるか２つの子孫をもっている場合、バイナリツリーはビンに対する接頭語符号を表している。各リーフノードは、与えられたＬＰＢの確率ｐに基づいて確率と関連付けられる。ルートノードは確率ｐｒｏｏｔ＝１を有している。他のすべてのノードに対する確率は、対応する先祖の確率にＬＰＢの子孫に対するｐとＭＰＢの子孫に対するｑ＝１−ｐを乗算することによって得られる。各リーフノードＬｌは、ルートノードからリーフノードまでのＬＰＢエッジの数ａｌとＭＰＢエッジの数ｂｌによって特徴づけられる。特定のＬＰＢの確率ｐに対して、リーフノードＬ＝｛ａｌ、ｂｌ｝に対する確率ｐｌは、
【数６３】
2013528025.tif 000069
と等しい。
バイナリツリーＴは、リーフノードＬの数と、ｌ＝０、．．．、Ｌ−１である、関連付けられたペア｛ａｌ、ｂｌ｝と、によって完全に特徴付けられる。
【０１１６】
完全なバイナリツリーＴとＬＰＢの確率ｐが与えられた場合、リーフノードへの符号語の最適な割当ては、ハフマンアルゴリズムによって得ることができる。可変長符号語（ＶＮＢ２ＶＬＣ）マッピングＣに対して得られる可変数のビットは、リーフノードの数と同一である符号語Ｌの数、および、ｌｌが対応するリーフノードＬｌ＝｛ａｌ、ｂｌ｝と関連付けられた符号語長を表す、ｌ＝０、．．．、Ｌ−１に対するタプル｛ａｌ、ｂｌ、ｌｌ｝によって特徴付けられる。符号語長｛ｌｌ｝が与えられたとき、符号語割り当てに対して複数の可能性があり、実際の符号語の割当ては、符号語が一意に復号可能な接頭語符号を表している限りは重要ではないことに留意されたい。所与のコードＣとＬＰＢの確率ｐに対するビンあたりのビットにおける予測された速度Ｒ（ｐ、Ｃ）は、予測された符号語長と符号語あたりのビンの予測数の割合である。
【数６４】
2013528025.tif 000070
【０１１７】
大抵の場合、コード設計は符号語Ｌの最大数、符号語あたりのビンの最大数、または最大符号語長などの要因によって制限されるか、または、特定の構造のコードへ制約される（たとえば、最適化された解析を可能にするために）。特定のアプリケーションのために利用可能なコードの集合Ｓｃが与えられたと仮定した場合、特定のＬＰＢ確率ｐに対する最適コード
【数６５】
2013528025.tif 000071
は、予測レートＲ（ｐ、Ｃ）を最小にすることによって求められる。
【数６６】
2013528025.tif 000072
【０１１８】
他の迅速な代替として、最小化はバイナリツリーＳＴの所与の集合に対して進めることができ、ツリーごとに、ハフマンアルゴリズムによって得られる１つだけのＶＮＢ２ＶＬＣコードＣが考えられている。一例として、リーフノードＬの数が所与の最大数Ｌｍより少ないかまたはこれと等しい全てのバイナリツリーＴを考慮することによって、様々なＬＰＢの確率ｐに対してＶＮＢ２ＶＬＣコードを設計した。図１４において、相対速度の増加ρ（ｐ、Ｃ＊（ｐ））＝Ｒ（ｐ、Ｃ＊（ｐ））／Ｈ（ｐ）は、選択した最大テーブルサイズＬｍに対してＬＰＢの確率ｐにプロットされる。速度増加ρ（ｐ）は、通常、より大きなテーブルサイズを可能にすることによって減少される。より大きなＬＰＢ確率の場合、通常、８〜１６個の符号語から成る小テーブルサイズＬが速度増加ρ（ｐ）を合理的に小さめに維持するために十分であるが、より小さいＬＰＢ確率（たとえば、ｐ＜０．１）に対しては、より大きなテーブルサイズＬが必要とされる。
【０１１９】
前のセクションで、われわれは、最適なコードと固定されたＬＰＢの確率に対するコード設計を想定して最適な確率離散化を検討した。しかし、一般に、限定されたテーブルサイズの現実のＶＮＢ２ＶＬＣコードではエントロピー限界を達成することはできないので、最適化されたエントロピー符号化設計を得るためにコードの設計とＬＰＢ確率インターバル（０、０．５］の分割を同時に考える必要がある。
【０１２０】
所与のインターバルＩｋ＝（ｐｋ、ｐｋ＋１］に対して、この所与のインターバルに対する予測速度
【数６７】
2013528025.tif 000073
を最小とする場合、最適なコード
【数６８】
2013528025.tif 000074
における所与の集合ＳＣのコードＣｋは以下のように表す。
【数６９】
2013528025.tif 000075
【０１２１】
実用的な設計の場合、等式Ｂ１９における積分の最小化は、等式Ｂ１０に基づいてインターバルＩｋに対する最適代表確率
【数７０】
2013528025.tif 000076
を最初に決定し、次に等式Ｂ１８に基づいて代表確率
【数７１】
2013528025.tif 000077
に対する所与の集合ＳＣの最適なコード
【数７２】
2013528025.tif 000078
を選択することによって、符号化効率にほとんど影響を与えずに、簡略化することができる。
ｋ＝０、．．．、Ｋ−１であるコードの集合Ｃｋが与えられたとき、ｋ＝１、．．．、Ｋ−１である最適なインターバル境界値ｐｋは、予想される全体的な速度
【数７３】
2013528025.tif 000079
を最小とすることによって求められる。
【０１２２】
最初の導関数を、ｋ＝１、．．．、Ｋ−１である、ゼロと等しいインターバル境界
【数７４】
2013528025.tif 000080
に関して設定すると、
【数７５】
2013528025.tif 000081
となる。
【０１２３】
等式Ｂ１３と同様に、
【数７６】
2013528025.tif 000082
が常に最適解であることが示されているが、確率分布ｆ（ｐ）によっては、さらに最適な解が存在する可能性がある。これにより、所与の関連付けられたコードＣｋ−１およびＣｋをそれぞれ有する、２つのインターバルＩｋ−１とＩｋ間の最適なインターバル境界
【数７７】
2013528025.tif 000083
は、関数Ｒ（ｐ、Ｃｋ−１）とＲ（ｐ、Ｃｋ）の交点である。
【０１２４】
これによって、以下のインタラクティブアルゴリズムは、
【数７８】
2013528025.tif 000084
である、確率インターバルの数Ｋ、可能なコードの集合ＳＣ、および確率分布ｆ（ｐ）が付与された時、確率インターバル分割と関連付けられたコードを同時に求めるために使用することができる。
【０１２５】
アルゴリズム２：
１）セクション３で指定されたアルゴリズム１を使用して、ｋ＝０、．．．、Ｋであるとき、初期の確率インターバル境界値ｐｋを求める。
２）等式Ｂ１０に基づいて、ｋ＝０、．．．、Ｋ−１であるとき、確率インターバルＩｋに対して、代表値ｐＩｋを求める。
３）等式Ｂ１８に基づいて、ｋ＝０、．．．、Ｋ−１であるとき、インターバル代表値ｐＩｋに対して、コード
【数７９】
2013528025.tif 000085
を求める。
４）等式Ｂ２１に基づいて、ｋ＝１、．．．、Ｋ−１であるとき、インターバル境界値ｐｋを更新する。
５）収束するまで上記の３ステップを繰り返す。
【０１２６】
アルゴリズム２におけるステップ２および３は、等式Ｂ１９に応じて、ｋ＝０、．．．、Ｋである、インターバル境界ｐｋに基づいて、ｋ＝０、．．．、Ｋ−１である、コード
【数８０】
2013528025.tif 000086
の直接導出によって置き換えることができる。そして、セクション４．１に述べたように、ステップ３の最小化は、バイナリツリーＴごとに、ハフマンアルゴリズムによって得られる１つだけのＶＮＢ２ＶＬＣコードＣｋが考慮される、バイナリツリーＳＴの所与の集合に対して展開することもできる。
【０１２７】
一例として、われわれは、アルゴリズム２を使用して、Ｋ＝１２の確率インターバルへの分割と、対応するＶＮＢ２ＶＬＣコードを同時に導き出した。このとき、アルゴリズムのステップ３における最小化を、ツリーＴごとに評価されたコードＣがハフマンアルゴリズムによって得られたバイナリツリーＳＴの所与の集合に対する等価の最小化と置き換えた。われわれは、最大数Ｌｍ＝６５個のリーフノードを有するツリーＴ、よって、最大６５個のテーブルエントリを有するコードＣを考えた。最大１６個のリーフノードを有するすべてのバイナリツリーＴは最小化において評価されていたが、われわれは、１６個より多くのリーフノードをもつツリーに対して、より少数のリーフノードを有するツリーに対して最良の結果をもたらす、その次に最適な検索を採用した。
【０１２８】
図１５において、コード設計例として、エントロピー限界ΔＲ（ｐ）＝Ｒ（ｐ）−Ｈ（ｐ）に対して予測される速度増加が、ＬＰＢの確率ｐに対してプロットされる。比較として、われわれは、（セクション３で展開されるように）理論的に最適な確率インターバルの離散化に対して予測速度増加ΔＲと、図中、更なる制約ｐＩＫ−１＝０．５を有する理論的に最適な確率インターバルの離散化と、をプロットした。確率インターバルの同時離散化とＶＮＢ２ＶＬＣコード設計によって、インターバルの境界線のシフトにつながる（ｋ＝１、．．．、Ｋ−１であるインターバル境界ｐｋがΔＲ（ｐ）曲線の極大値によって与えられる）ことが分かる。均一な確率分布ｆ（ｐ）を仮定した場合、本物のＶＮＢ２ＶＬＣコードを有する設計例に対するエントロピー限界に対する相対的に予測される全体的速度の増加は、
【数８１】
2013528025.tif 000087
である。理論的に最適な確率インターバルの離散化および更なる制約ｐＩＫ−１＝０．５を有する理論的に最適な確率の離散化のそれぞれに対応する相対的速度増加はそれぞれ、
【数８２】
2013528025.tif 000088
と
【数８３】
2013528025.tif 000089
である。
【０１２９】
符号語の終了は以下のように実行できる。シンボルの有限列｛ｓ０、．．．ｓＮ−１｝を符号化する時、Ｋ個のバイナリエンコーダの各々がｋ＝０、．．．、Ｋ−１のとき、符号化ビンの有限列
【数８４】
2013528025.tif 000090
を処理する。そして、Ｋ個のバイナリエンコーダの各々に対して、符号語または符号語の列
【数８５】
2013528025.tif 000091
が付与された時、列の全ての符号化ビン
【数８６】
2013528025.tif 000092
が復元できることが確かになった。
【０１３０】
算術符号化を採用する場合、符号化ビンの列に対する算術符号語は、すべての符号化ビンが符号語を与えられて復号化されるように終了する必要がある。上記のＶＮＢ２ＶＬＣコードに対して、列
【数８７】
2013528025.tif 000093
の最後のビンは、符号語に関連付けられたビン列を表していない可能性がある。このような場合、残留するビン列を接頭語として含む任意の符号語が書き込むことができる。最短長（またはこれらの符号語の１つ）を有している対応する符号語が選ばれた場合、オーバーヘッドを最小にすることができる。デコーダサイドにおいて、ビットストリームシンタックスと２値化方式によって識別することができるビン列の最後における更なる読み出しビンは破棄される。
【０１３１】
簡単なコード設計の例が以下に提供される。図示目的のために、われわれは、３文字と、ｐｓ（ａ０）＝０．７、ｐｓ（ａ１）＝０．１８、およびｐｓ（ａ２）＝０．１２の固定された関連確率を有するソース｛ｓ｝の簡単な例を考える。図１５に示すように、対応する３項の選択ツリーは完全なバイナリツリーに変換することができる。
【０１３２】
図１５における、完全なバイナリツリーの２値化が表５に示されている。３項シンボルｐｍｆｐｓは、２つのバイナリｐｍｆ：ｐｂ０＝（０．７，０．３）とｐｂ１＝（０．６，０．４）に変換される。ビットストリーム内のシンボルｓごとに、ビンｂ０が存在している。ビンｂ０が０と等しいとき、ｂ１も存在している。表２に提供された２値化はソースｓに対する最適な１文字ハフマン符号と同じであることに留意されたい。
【表５】
2013528025.tif 000094
【０１３３】
ソースｓのエントロピーは、
Ｈ（０．７、０．１８、０．１２）＝Ｈ（０．７、０．３）＋０．３Ｈ（０．６、０．４）
＝１．１７２６ｂｉｔ／ｓｙｍｂｏｌ      （Ｂ２２）
１文字ハフマン符号の平均符号語長は、次式で与えられる：
【数８８】
2013528025.tif 000095
これは、ρＨＣ＝０．１２７４ビット／シンボルの冗長度または１０．８７％の予測速度オーバーヘッドに対応する。
【０１３４】
固定されたｐｍｆを有する特定の２値化の例に対して、ビンｂ０とｂ１は、両ビンに対してＬＰＢの値ｂｊＬＰＢが０と等しいので、既に、符号化ビンを表している。ＬＰＢの確率の分布ｆ（ｓ）は、ｐ＝０．３とｐ＝０．４の場合を除いて、ｆ（ｐ）＝０で離散的である。これによって、最適な確率離散化は、代表値がｐＩ０＝０．３とｐＩ１＝０．４である、Ｋ＝２のインターバルにつながる。これらのインターバル間のインターバル境界ｐ１は（０．３、０．４］において任意に選択することができる。
【０１３５】
ソースを符号化するために、ソースシンボルの列は、ビン列へ２値化される。ビンｂ０は、すべてのソースシンボルのために送信される。ビンｂ１は、ｂ０＝０の場合に限って送信される。ビンｂ０とｂ１は、一定のＬＰＢの確率ｐＩ０＝０．３とｐＩ１＝０．４それぞれによって個別に符号化される。
【０１３６】
固定した確率を有するバイナリアルファベットの効率的な符号化はシンプルなＶＮＢ２ＶＬＣマッピングによって達成することができる。ＬＰＢの確率ｐＬＰＢ＝０．３とｐＬＰＢ＝０．４に対する小さい符号化テーブルとのＶＮＢ２ＶＬＣマッピングの例を表６と表７にそれぞれ示す。ｐＬＰＢ＝０．３に対するＶＮＢ２ＶＬＣマッピングの冗長度は０．００６９ｂｉｔ／ｂｉｎ、すなわち０．７８８％であり、ＬＰＢの確率ｐＬＰＢ＝０．４に対しては、冗長度は０．００５３ｂｉｔ／ｂｉｎ、すなわち０．５４８％である。
【表６】
2013528025.tif 000096
【表７】
2013528025.tif 000097
【０１３７】
新しい符号化方法によってもたらされる全体予測速度は、
【数８９】
2013528025.tif 000098
【０１３８】
全体の冗長度はエントロピー限界に対して０．７３％であり、これは１文字ハフマン符号と比較して、重要な改良点を示している。
【０１３９】
同様の符号化効率の改良はランレングスコードを作成することによって得ることができることが主張できる。上記の例において、われわれは最大２つのシンボルまでの実行を考慮することによって最大確率シンボルに対するランレングスコードを構築することができる。事象の各々｛ａ０ａ０、ａ０ａ１、ａ０ａ２、ａ１ａ２｝は別個の符号語に関連付けられる。このようなコードは、エントロピー限界に相対する冗長度１．３４％をもたらす。実際に、ＶＮＢ２ＶＬＣコードは、バイナリシンボルに対するランレングスコードの一般化としてみなすことができる（表３のＶＮＢ２ＶＬＣコードはランレングスコードを効果的に表している）。固定確率を有する単一のシンボルアルファベットの場合、提示されたアプローチに関して同様の符号化効率を、可変長符号語に対して可変数のソースシンボルをマッピングするコードを作成することによって達成することができる。この提示されているアプローチの主な利点は、固定または適合確率予測を有する任意のソースシンボル列を、固定したＬＰＢ確率で演算する少数のシンプルなバイナリコーダへマッピングする際の、そのフレキシビリティである。
【０１４０】
一意の決定可能性を達成する方法を次に考える。
【０１４１】
提供されているエントロピー符号化方式によって、ソースシンボル列ｓ＝｛ｓ０、．．．ｓＮ−１｝の符号化は以下の３つの基本的なステップから成る。
・シンボル２値化ｂ＝｛ｂ０、．．．ｂＢ−１｝＝γｂ（ｓ）がビン列ｂ＝｛ｂ０、．．．ｂＢ−１｝をもたらすステップ。
・ビン列を符号化ビン列
【数９０】
2013528025.tif 000099
へ変換するステップ。
・確率インターバル離散化とＫ個の固定バイナリコーダを用いて、符号化ビン列
【０１４２】
【数９１】
2013528025.tif 000100
をバイナリエントロピー符号化するステップ。
符号化ビン列
【０１４３】
【数９２】
2013528025.tif 000101
が一意に復号可能であり、γｂとγｃのマッピングが可逆である場合、シンボル列ｓ＝｛ｓ０、．．．ｓＮ−１｝は一意に復号可能である。
【０１４４】
γｅに、１つ以上の符号語ｃ（ｂｃ）＝｛ｃ０、．．．｝の列への１以上の符号化ビンの列
【数９３】
2013528025.tif 000102
のエンコーダマッピングを通知させる。
ｃ（ｂｃ）＝γｅ（ｂｃ）      （Ｂ２５）。
【０１４５】
符号化ビン列ｂｃの一意的な復号可能性に対して、符号語ｃ（ｂｃ）の列が付与されているとき、エンコーダマッピングγｅは、一意の符号語ｃ（ｂｃ）が各々の可能な符号化ビン列ｂｃに割り当てられるという特性を有する必要がある。
【数９４】
2013528025.tif 000103
【０１４６】
この特性は、算術コードまたは接頭語符号が使用されている場合、常に満たされる。ＶＮＢ２ＶＬＣコードがビンの可変数に対する接頭語符号を表しているので、（セクション４．３において説明した符号語終了を含む）セクション４．１に説明されているＶＮＢ２ＶＬＣコードに対して、特に、満たされる。
【０１４７】
しかしながら、提示されているエントロピー符号化のアプローチにおいては、符号化ビンの列ｂｃはｋ＝０、．．．、Ｋ−１であるＫ個のサブシーケンス
【数９５】
2013528025.tif 000104
に分割され、
｛ｂ０ｃ、．．．、ｂＫ−１ｃ｝＝γｐ（ｂｃ）                （Ｂ２７）
サブシーケンス
【数９６】
2013528025.tif 000105
のそれぞれに対して、符号語ｃｋ（ｂｋｃ）の列は、特定のエンコーダマッピング
【数９７】
2013528025.tif 000106
を使用して割り当てられる。これによって、一意的な復号可能性の条件は拡張する必要がある。符号化ビンｂｃの列は、符号化ビンｂｋｃの各サブシーケンスが対応する符号語ｃｋ（ｂｋｃ）が付与されて一意に復号可能でありかつ分割ルールγｐがそのデコーダに知られている場合、ｋ＝０、．．．、Ｋ−１である、Ｋ個の符号語ｃｋ（ｂｋｃ）の列が付与されて、一意に復号可能となる。分割ルールγｐは、ＬＰＢ確率インターバルの離散化｛Ｉｋ｝と、ｊ＝０、．．．、Ｂ−１のとき、符号化ビン
【数９８】
2013528025.tif 000107
と関連付けられるＬＰＢ確率ｐｊＬＰＢとによって付与される。したがって、ＬＰＢ確率インターバルの離散化｛Ｉｋ｝は、デコーダサイドで知られている必要があり、ｊ＝０、．．．、Ｂ−１のとき、符号化ビン
【数９９】
2013528025.tif 000108
ごとのＬＰＢ確率ｐｊＬＰＢはエンコーダサイドとデコーダサイドにおいて同様に求められる必要がある。
【０１４８】
符号化ビン列ｃへのビン列のマッピングγｃは、ｊ＝０、．．．、Ｂ−１のとき、各単一のｂｊが、バイナリマッピング
【数１００】
2013528025.tif 000109
によって変換される。デコーダサイドでは、ビン列は、ｊ＝０、．．．、Ｂ−１のとき、バイナリマッピング
【数１０１】
2013528025.tif 000110
によって求めることができる。各ビンｂｊに対するＬＰＢ値ｂｊＬＰＢが、エンコーダとデコーダサイドで同じように得られる場合、
【数１０２】
2013528025.tif 000111
なので、これらのマッピング
【数１０３】
2013528025.tif 000112
は、対応するエンコーダマッピング
【数１０４】
2013528025.tif 000113
の逆を表しており、これによって、ビン列ｂの符号化ビン列ｂｃへの変換γｂは可逆である。
【０１４９】
最後に、われわれは、ｉ＝０、．．．、Ｎ−１のときの各シンボルｓｉがビン列
【０１５０】
【数１０５】
2013528025.tif 000114
にマッピングされる２値化ｂ＝γｂ（ｓ）の可逆性を調べる。シンボルｓｉは、２値化マッピング
【数１０６】
2013528025.tif 000115
がシンボルｓｉに対するアルファベットＡｉの各文字
【数１０７】
2013528025.tif 000116
へ異なるビン列
【数１０８】
2013528025.tif 000117
を割り当てる場合、対応するビン列ｂｉが与えられて一意に復号化することができる。しかしながら、この条件は、ビン列ｂ＝｛ｂ０、．．．ｂＢ−１｝の、ｉ＝０、．．．、Ｎ−１のときのシンボルｓｉに対応するビン列ｂｉへの分割がデコーダに知られていないので、不十分である。十分な条件は、シンボルｓｉごとに、対応するアルファベットＡｉの文字
【数１０９】
2013528025.tif 000118
に関連付けられるビン列
【数１１０】
2013528025.tif 000119
が接頭語符号を形成しかつｉ＝０、．．．、Ｎ−１のとき、シンボルｓｉごとの２値化マッピング
【数１１１】
2013528025.tif 000120
が、デコーダサイドで知られているときに与えられる。
【０１５１】
提示されているエントロピー符号化のアプローチのための一意的な復号可能性の条件は次のようにまとめることができる。
・２値化マッピング
【数１１２】
2013528025.tif 000121
は、接頭語符号を表しかつ（シンボル符号化順に）デコーダに知られている。
・すべてのビンｂｊに対する確率モデル（ｂｊＬＰＢ、ｐｊＬＰＢ）はエンコーダとデコーダサイドで同様に得られる。
・ＬＰＢ確率インターバル（０、０．５］が、ｋ＝０、．．．、Ｋ−１のとき、Ｋ個のインターバルＩｋへ分割されることがデコーダに知られている。
・ｋ＝０、．．．、Ｋ−１のとき、各確率インターバルＩｋに対するマッピング
【数１１３】
2013528025.tif 000122
が一意に復号可能なコードを表している。
【０１５２】
以下において、われわれは、全体的なエンコーダとデコーダの設計例をより詳細に説明する。われわれは、ビンの確率モデル｛ｂＬＰＢ、ｐＬＰＢ｝がエンコーダおよびデコーダサイドで直接予測され、Ｋ個のバイナリコーダがセクション４．１で説明されたＶＮＢ２ＶＬＣマッピングを使用する、符号化方式に集中する。各ソースシンボルｓは、その値の範囲を含むシンボルのタイプを決定するシンボルカテゴリｃｓと関連付けられる必要がある。シンボルと、関連付けられたシンボルカテゴリの順序は、エンコーダとデコーダサイドで知られていることが仮定されるシンタックスによって付与される必要がある。
【０１５３】
エンコーダおよびデコーダの設計例のブロック図を図１７に示す。エンコーダサイドにおいて、関連付けられたシンボルカテゴリｃｓを有するシンボルｓはバイナライザへ供給され、バイナライザは各シンボルｓをビン列
【数１１４】
2013528025.tif 000123
へ変換する。
【０１５４】
使用される２値化方式
【数１１５】
2013528025.tif 000124
はシンボルカテゴリｃｓに基づいて決定される。さらに、バイナライザは、ビン列ｓの各ビンｂを、このビンｂを符号化するために使用される確率モデルを指定する、確率モデル表示ｃｂと関連付ける。確率モデル表示ｃｂは、シンボルカテゴリｃｓ、ビン列ｓ内部の現在のビンのビン数、および／または既に符号化されたビンおよびシンボルの値に基づいて、得ることができる。
【０１５５】
確率予測割当部は、値の対｛ｂＬＰＢ、ｐＬＰＢ｝によって特徴付けられる、複数の確率モデルを維持している。それは、バイナライザからビンｂと、関連付けられる確率モデル表示ｃｂを受信し、ＬＰＢ値ｂＬＰＢと表示された確率モデルのＬＰＢ確率ｐＬＰＢとを符号化ビン導出子部と確率量子化部にそれぞれ転送する。その後、対応する確率モデル｛ｂＬＰＢ、ｐＬＰＢ｝は受信したビンｂの値を用いて更新される。
【０１５６】
符号化ビン導出子部はバイナライザと確率予測子と割当部から、ビンｂと関連付けられたＬＰＢ値ｂＬＰＢとをそれぞれ受け取り、ｂｃ＝ｂ［ＥＸＯＲ］ｂＬＰＢによって求められる符号化ビンｂｃを確率量子化部へ送信する。この確率量子化部は、各符号化ビンｂｃをＫ個のバイナリエンコーダの１つへ転送する。確率量子化部は、ＬＰＢ確率インターバルの量子化｛Ｉｋ｝に関する情報を含む。符号化ビンｂｃに関連付けられかつ確率予測割当部から受信されるＬＰＢ確率ｐＬＰＢは、インターバル境界｛ｐｋ｝と、
【数１１６】
2013528025.tif 000125
が求められる確率インターバルインデックスｋと比較される。次に、符号化ビンｂｃは関連付けられたバイナリエンコーダへ転送される。
【０１５７】
Ｋ個のバイナリエンコーダの各々は、ビンバッファおよびビンエンコーダから成る。ビンバッファは、確率量子化部から符号化ビンｂｃを受け取り、これらを符号化順に格納する。ビンエンコーダは特定のＶＮＢ２ＶＬＣマッピングを実施し、ビンバッファ内のビン列を符号語に関連付けられるビン列と比較する。ビンバッファ内のビン列がこれらのビン列の１つと等しい場合、ビンエンコーダはこのビン列｛ｂｃ｝をビンバッファから取り出し、関連した符号語（｛ｂｃ｝）を対応する符号語ストリームに書き込む。シンボル列に対する符号化プロセスの終わりに、セクション４．３で説明したように、ビンバッファが空になってない全てのバイナリエンコーダに対して終了符号語が書き込まれる。
【０１５８】
Ｋ個の得られた符号語ストリームは個別に送信され、パケット化され、もしくは格納され、あるいは、送信または格納を目的としてインターリーブされる（セクション６．２参照）。
【０１５９】
デコーダサイドで、ビンデコーダとビンバッファから成るＫ個のバイナリデコーダの各々は、１符号語のストリームを受信する。ビンデコーダは、符号語のストリームからの符号語（｛ｂｃ｝）を読み出し、符号化順に、関連付けられたビン列｛ｂｃ｝をビンバッファに挿入する。
【０１６０】
シンボル列の復号化は、基礎となるシンタックスによって駆動される。シンボルｓに対するリクエストは、シンボルカテゴリｃｓと一緒にバイナライザへ送信される。バイナライザはこれらのシンボルリクエストをビンに対するリクエストに変換する。ビンに対するリクエストは、エンコーダと同様に求められる確率モデル表示ｃｂに関連付けられ、確率予測子と割当部へ送信される。確率予測子と割当部は、エンコーダサイドで相方と同様に演算される。確率モデル表示ｃｂに基づいて、確率モデルを識別し、そのＬＰＢ値ｂＬＰＢとＬＰＢ確率ｐＬＰＢをビン導出子と確率量子化部のそれぞれへ送信する。
【０１６１】
確率量子化部は、バイナリエンコーダがエンコーダサイドで決定されるのと同様に、ＬＰＢ確率ｐＬＰＢに基づいて、Ｋ個のバイナリデコーダの１つを決定し、対応するビンバッファから、最初の符号化ビンｂｃを符号化順に取り除き、それをビン導出子へ転送する。ビン導出子は符号化ビンｂｃと関連付けられたＬＰＢ値ｂＬＰＢとを、確率量子化部、確率予測割当部のそれぞれから受け取り、ビン値ｂ＝ｂｃ［ＥＸＯＲ］ｂＬＰＢを求める。バイナライザから送信されたビンリクエストへの最終応答として、ビン導出子は、復号化されたビン値ｂを、バイナライザ、確率予測割当部へ送信する。
【０１６２】
確率予測子と割当部において、復号化されたビンｂの値は、エンコーダサイドでと同じように、関連付けられた値ｃｂによって選択された確率モデル｛ｂＬＰＢ、ｐＬＰＢ｝を更新するために使用される。最後に、バイナライザは、受信したビンｂをシンボルリクエストのために既に受信されているビン列ｓへ加算し、このビン列ｓを、２値化方式
【数１１７】
2013528025.tif 000126
によってシンボル値と関連付けられるビン列と比較する。ビン列ｓがこれらのビン列の１つと一致する場合、対応する復号化されたシンボルｓがシンボルリクエストへの最終応答として出力される。それ以外の場合、バイナライザは、シンボルｓが復号化されるまで、更なるビンリクエストを送る。
【０１６３】
シンタックスによって駆動される更なるシンボルリクエストが受信されなくなった場合、シンボル列の復号化は終了する。（終了符号語の結果として、）エントロピー復号化プロセスの終わりに、ビンバッファ内に含まれている可能性のある符号化ビンｂｃは破棄される。
【０１６４】
以上の実施形態をまとめると、どれもエントロピー符号化へ新規なアプローチを表している。シンボル列のビットストリームへのマッピングと逆マッピングが記載されている。各シンボルはエンコーダとデコーダにとって同時に既知の関連付けられているパラメータを持っている。エントロピーコーデックは、各々がシンボルに関連付けられているパラメータのサブセットに割り当てられている複数の先入れ先出し（ＦＩＦＯ）バッファを含む。シンボルの所与のパラメータに対して、エンコーダがシンボルを対応するＦＩＦＯバッファへ割り当てる。エンコーダ割当てルールはデコーダサイドにおいて知られているので、デコーダはエンコーダがこのシンボルを割り当てたＦＩＦＯバッファから読み出す。
【０１６５】
シンボルへパラメータを割り当てるための一例はその確率の予測である。確率予測はエンコーダとデコーダにおいて同時に行うことができる測定から求められる。特定のＦＩＦＯバッファは、選択されている確率の部分集合に含まれる予測された確率値を有するシンボルを含み、これによってエントロピー符号化が改良される。この改良は、ビットレートの低減、複雑さの緩和、遅延の低下、またはエラー回復に関連しうる。
【０１６６】
シンボルへのパラメータ割当ての他の例としては、シンボルの確率の予測と、以下の１つ以上を含む他のパラメータが挙げられる：シンボルの意味、その重要性、そのロケーション（時間的、空間的、体積など）、その伝送路コードの保護。特定のＦＩＦＯバッファは選択される確率の部分集合に関連するシンボルを含み、これによって、エントロピー符号化を改良できるとともに他のパラメータに対する有利性が達成できる。
【０１６７】
一部の実施形態は一般的に圧縮されたデータに関して説明してきたが、上述した符号化が圧縮ビデオデータに使用され、すなわち、ビデオおよび／または画像の符号化に用いられる実施形態が説明される。
【実施例１】
【０１６８】
第１の実施形態は、画像および／またはビデオコーダおよびデコーダにおける符号化変換係数に係り、たとえば、Ｈ．２６４／ＡＶＣにおけるＣＡＢＡＣの対応する部分を置き換える、ビデオ符号化の分野の符号化変換係数に対して、新規な効率的な方法として特に用いることができる変換係数の符号化について記載する。
【０１６９】
ＭＰＥＧ―２、Ｈ．２６３、およびＭＰＥＧ―４などのビデオ符号化に対する初期のハイブリッドブロックベースの規格では、量子化された変換係数（レベル）のブロックは、定義付けられたスキャンプロセスによって、ランレングス符号化とその後のマッピングを使用して可変長を有する符号語に符号化されたベクトルへ、マッピングされる。
【０１７０】
ＭＰＥＧ―２において、可変長を有する符号語は、２次元の事象（ＲＵＮ、ＬＥＶＥＬ）に関連付けられ、ここで、ＬＥＶＥＬは、ゼロに量子化されない（有意）変換係数の量子化された値を表し、ランレングスＲＵＮは、ゼロに量子化される後続の（非有意）変換係数の数を示し、これらは、変換係数のベクトルにおいて、現行の有意変換係数の直前にある。さらに、可変長を有する符号語は２つの特別な事象ＥＯＢとＥＳＣＡＰＥに対して定義づけられる。ＥＯＢ事象がブロック内にこれ以上有意変換係数がないことを示しているのに対し、ＥＳＣＡＰＥ事象は既存の事象（ＲＵＮ、ＬＥＶＥＬ）は可変長を有する符号語の定義づけられたアルファベットによって表すことができないことを示す。この場合、シンボルＲＵＮとＬＥＶＥＬは固定長の符号語によって符号化される。
【０１７１】
さらに新しい符号化規格のＨ．２６３およびＭＰＥＧ―４において、可変長を有する符号語の関連付けは、３次元の事象（ＬＡＳＴ、ＲＵＮ、ＬＥＶＥＬ）に基づいて行われ、ここで、バイナリシンボルＬＡＳＴは、現在の有意変換係数がブロック内の最新の有意係数であるかどうか、または更なる有意変換係数が後に続くかどうかを示す。これらの３次元の事象を使用することによって、更なるＥＯＢ事象は必要とされないが、ＥＳＣＡＰＥ事象がＭＰＥＧ―２と同様に使用される。この場合、バイナリシンボルＬＡＳＴはＲＵＮとＬＥＶＥＬに対して追加的に符号化される。
【０１７２】
ＭＰＥＧ―２、Ｈ．２６３、およびＭＰＥＧ―４において実現される変換係数の符号化は以下の欠点を有している：
・各符号化事象に対して、整数長さを有する符号語のみが関連付けられることができ、０．５より大きい確率を有する事象の効率的な符号化は行えない。
・符号化事象をブロック内のすべての変換係数に対する可変長を有する符号語へマッピングするための固定テーブルの使用は、位置または頻度に依存するシンボル統計を考慮していない。
・実際に存在するシンボルの統計への適応は不可能である。
・存在しているインターシンボルの冗長度からは利用できない。
【０１７３】
Ｈ．２６３規格のＡｎｎｅｘ  Ｅは、異なる所定のモデル確率分布が使用されている任意の非適応算術符号化を指定する。
・第１、第２、第３の事象（ＬＡＳＴ、ＲＵＮ、ＬＥＶＥＬ）ごとに１つ／ＥＳＣＡＰＥ
・全ての以下の事象（ＬＡＳＴ、ＲＵＮ、ＬＥＶＥＬ）に対して他の１つ／変換係数のブロックのＥＳＣＡＰＥ、および、
・ＥＳＣＡＰＥ事象の後に符号化されたシンボルＬＡＳＴ、ＲＵＮ、およびＬＥＶＥＬごとに１つ。
【０１７４】
しかしながら、以下の理由から、符号化効率のかなりの増加は、任意の算術符号化によって得ることができない：
・非整数の長さを有する符号語を符号化事象に関連付けることができるという算術符号化の利点は形態（ＬＡＳＴ、ＲＵＮ、ＬＥＶＥＬ）の結合した事象を用いることによって符号化効率に殆ど効果をもたない。
・異なる確率分布を使用するという利点が実際に存在するシンボル統計への適応が可能ではないという事実によって消される。
【０１７５】
Ｈ．２６４／ＡＶＣにおいて、変換係数を符号化するための可変長を有する符号語に基づくコンテクスト適応方法は、エントロピー符号化するための標準的な方法として指定される。ここで、変換係数のブロックの符号化は以下の特性によって決定される：
・ブロック内の有意係数の数と、変換係数のベクトルの終わりの１つに量子化された以降の係数の数と、の両方がシンボルＣＯＥＦＦ＿ＴＯＫＥＮによって決定される。ブロックタイプと近接ブロックに対して既に符号化／復号化されたシンボルＣＯＥＦＦ＿ＴＯＫＥＮとに基づいて、５個の定義付けられた符号語テーブルの１つが符号化のために選択される。
・係数のベクトルの終わりの１つに量子化された変換係数に対して、単一ビットだけが符号を指定するために転送されるのに対し、残っている有意変換係数の値（レベル）の符号化は結合された接頭および接尾符号語によって逆のスキャン順に行われる。
・有意変換係数の数が対応するブロックに対する変換係数の数より小さい場合、シンボルＴＯＴＡＬ＿ＺＥＲＯＳが符号化され、これは、係数ベクトルにおいて、最後の有意係数の前にあるゼロに量子化された変換係数の数を表している。このため、１８個の符号語のテーブルが指定され、これらのテーブルは、有意係数の数とブロックタイプに基づいて、切り替えられる。
・有意係数の前のゼロ（ＲＵＮ）に量子化された（非有意）係数のランレングスは、すでに符号化されているＲＵＮの合計がＴＯＴＡＬ＿ＺＥＲＯＳより小さい限り、有意変換係数ごとに、逆のスキャン順で、符号化される。既に符号化／復号化されたＴＯＴＡＬ＿ＺＥＲＯＳとＲＵＮに基づいて、７個の符号語テーブル間で切り替えが行われる。
【０１７６】
このいわゆる、ＣＡＶＬＣ方式（ＣＡＶＬＣ：コンテクスト適応型可変長符号化）は、コンテクストに応じたス符号語テーブルの切り替えにより、ＭＰＥＧ―２、Ｈ．２６３、およびＭＰＥＧ―４で指定される方法よりもはるかに効率的な変換係数の符号化を可能にするが、基本的に以下の欠点がある：
・既に符号化／復号化されたシンボルに基づいて異なる符号語テーブル間で切り替えが行われても、これらの符号語テーブルは、実際のシンボル統計に対して調整することができない。
・可変長を有する符号語を使用した場合、０．５より大きいシンボル確率を有する事象を効率的に符号化することはできない。この制約によって、異なるモデルの確率分布間を切り替えるために適切なコンテクストを構築することを可能にするかもしれないより小さな値の範囲を有するシンボルの符号化が特に妨げられる。
【０１７７】
ブロックベースの画像とビデオのコーダにおいて、変換係数を符号化する周知の方法の説明された欠点を回避することができる解決方法は、適応型エントロピー符号化と、シンボル間の冗長度を使用するために適切なコンテクストの生成と、の結合である。
【０１７８】
上述の符号化方式と比較して、次に説明されるアプリケーション例は、画像および／またはビデオコーダおよびデコーダにおいて変換係数を符号化するための方式を表し、これが、上述した欠点を克服し、特に、符号化に必要とされる計算量を少なく保つことができる。この符号化を図１〜１７を参照して実施形態に記載されたエントロピー符号化方式と結合することによって、きわめて効果的な符号化効率を得ることができる。
【０１７９】
第１の態様によれば、以下に説明する符号化方式は、画像および／またはビデオコーダおよびデコーダにおいて変換係数を符号化する方法を提供し、ここで、有意変換係数を含む（ビデオ）画像のブロックに対して、変換係数の符号化が、各ブロックに対して、
・スキャンプロセスにおいて、ブロック内の有意変換係数の位置、次に、
・逆スキャン順序―ブロック内の最後の有意変換係数から開始される―で有意変換係数の値（レベル）が決定されかつ符号化されるように、実行される。
【０１８０】
１つの好ましい実施形態は、ブロックの最後の変換係数以外のブロックの各有意変換係数が１ビットのシンボルによって特徴付けられることによって、特徴付けられる。
【０１８１】
また、有意変換係数ごとの符号が１ビットのシンボル（ＳＩＧＮ）によって表されかつ大きさがバイナリ符号化シンボル（ＡＢＳ）によって表される場合に有利である。
【０１８２】
１つの好ましい実施形態において、有意変換係数を含むブロックは、たとえば、ＣＢＰまたはマクロブロックモードなどの他のシンタックス要素に関連して１ビットのシンボルＣＢＰ４によって特徴付けられる。
【０１８３】
ブロックの係数ごとに１ビットのシンボルＳＩＧと、ブロックの有意係数ごとに１ビットのシンボルＬＡＳＴを転送することによって、有意性マッピングが符号化されるという点がこの方法の特に有利な点であり、ここで、転送はスキャン順に行われ、ＳＩＧは有意係数を識別するために機能し、ＬＡＳＴはブロック内にこれ以上有意変換係数があるかどうかを示す。
【０１８４】
他の好ましい実施形態において、有意性マッピングを符号化するためにおよび／または係数の大きさを符号化するために、１ビットのシンボルＣＢＰ４に対するモデリングはコンテクストに依存した方法で行われる。したがって、これに匹敵する統計値を有する変換係数のブロックタイプはブロックカテゴリに集約される。
【０１８５】
本発明の方法の特別な実施形態において、有意情報（ＳＩＧ、ＬＡＳＴ）はブロックの最後のスキャン位置に転送されない、という点も利点である。
【０１８６】
好ましい実施形態において、大きさ（ＡＢＳ）は、単項２値化内のシンボルによって、または接頭部分と接尾部分とを有するシンボルによって、表され、ここで、接頭部分は１から成り、接尾部分は０番目の次数の指数ゴロムコードで符号化される。
【０１８７】
第２の態様によれば、本実施形態は、画像および／またはビデオコーダおよびデコーダにおいて変換係数を符号化する方法を実行するように形成された少なくとも１つのプロセッサおよび／またはチップを有する構成を提供し、有意変換係数を含む（ビデオ）画像のブロックに対して、今述べた方法で変換係数の符号化が実行される。
【０１８８】
第３の態様によれば、現在のアプリケーション例は、コンピュータのメモリにロードされた後、コンピュータが、画像および／またはビデオコーダおよびデコーダにおいて変換係数を符号化するための方法を実行することを可能にするコンピュータプログラムを提供し、有意変換係数を含む（ビデオ）画像のブロックに対して、変換係数の符号化は上で説明した方法で行われる。
【０１８９】
このようなコンピュータプログラムは、たとえば、（有料または無料で、自由にアクセスできるか、パスワードで保護されて）ダウンロード用のデータや通信ネットワークにおいて提供される。このようにして提供されるコンピュータプログラムは、請求項１１に記載のコンピュータプログラムが、たとえば、インターネットなどの転送用ネットワークからこのネットワークに接続されているデータ処理手段へダウンロードされる方法によって利用することができる。
【０１９０】
第４の態様によれば、本実施形態は、コンピュータのメモリにロードされた後、コンピュータが、画像および／またはビデオコーダおよびデコーダにおいて変換係数を符号化するための方法を実行することを可能にする、プログラムが格納されているコンピュータ読出し可能な記憶媒体を提供し、有意変換係数を含む（ビデオ）画像のブロックに対して、変換係数の符号化が説明された方法で行われる。
【０１９１】
変換係数を符号化する方法は、特に、以下の特徴によって特に特徴付けられる：
変換係数の２次元ブロックは、スキャンプロセスによって１次元ベクトルにマッピングされる。
・周知の方法で使用されているＥＯＢシンボル、ＬＡＳＴシンボルまたは係数カウンタ（有意係数の数）ならびにＲＵＮ（スキャン順序における非有意係数の数）のシンタックス要素は１ビットのシンボルＣＢＰ４と有意性マッピングによって置き換えられる。
・レベル（有意係数の大きさ）は、逆スキャン順に符号化される。
・コンテクストモデリングは新規な方法で行われる。
【０１９２】
図１８は、符号化方法を示す図である。変換係数の各ブロックに対して、高次のシンタックス要素（ＣＢＰまたはマクロブロックモード）が対象となるブロックが有意変換係数を含まないことをすでに表示していない限り、１ビットのシンボルＣＢＰ４が最初に転送される。ブロック内に有意係数が存在しない場合、ＣＢＰ４シンボルはゼロになる。１つの場合、有意変換係数の（スキャン順の）位置を指定する有意性マッピングが符号化される。これに続いて、有意係数の大きさと符号が逆スキャン順に転送される。符号化プロセスの詳細な説明は以下の１で行う。その後、バイナリエントロピー符号化のためのコンテクストモデリングを２で説明する。ここでは、ビンのエントロピー符号化がエントロピー符号化のための上記の実施形態のいずれかによって実行される。
【０１９３】
１．変換係数の符号化の説明
１．１．スキャン変換係数
各ブロックの変換係数は（たとえば、ジグザグスキャンなどの）スキャンプロセスによってベクトルにマッピングされる。
【０１９４】
１．２．ＣＢＰ４シンボル
ＣＢＰ４は、有意変換係数（変換係数がゼロに等しくない）がブロック内にあるかどうかを示す１ビットのシンボルである。ＣＢＰ４シンボルがゼロである場合、対応するブロックに対する更なる情報は転送されない。
【０１９５】
１．３．有意性マッピング
ＣＢＰ４シンボルが、対応するブロックが有意係数を含むことを示している場合、有意性マッピングは符号化される。これは、スキャン順に係数ごとに１ビットのシンボル（ＳＩＧ）を転送することによって行われる。対応する有意シンボルが１つ（有意係数）である場合、他の１ビットのシンボル（ＬＡＳＴ）が転送される。このシンボルは、現在の有意係数がブロック内の最後の有意係数であるかどうかまたはさらなる有意係数が後に続くかどうかを示す。図１９は、有意性マッピングを符号化するための方法を示す２つの例を示す。有意情報（ＳＩＧ、ＬＡＳＴ）は、ブロックの最後のスキャン位置に対して転送されない。有意性マッピングの転送が１つのＬＡＳＴシンボルによってまだ終了されていない場合、最後のスキャン位置における係数が有意であることが明らかである（図１９の黄色でマークされた位置を参照されたい）。
【０１９６】
１．４．レベルの情報
ブロック内の有意変換係数の位置が有意性マッピングによって明確に指定される。係数（レベル）の正確な値の符号化は、２つの符号化シンボル：ＡＢＳ（係数の大きさ）とＳＩＧＮ（係数の符号）によって行われる。ＳＩＧＮは１ビットのシンボルを表すが、図２０による２値化は係数（ＡＢＳ）の大きさを符号化するために使用される。インターバル［１；１４］の係数の大きさに対して、この２値化は単項２値化に対応している。１４より大きい係数の大きさに対する２値化は、１４個の１から成る接頭部分と、シンボル（ＡＢＳ−１５）に対する０次数の指数ゴロムコードを表す接尾部分と、から成る。２値化は、有意係数（ゼロに等しくない係数）は常に１と等しいまたはこれより大きい大きさ（ＡＢＳ）を有するので、０と等しい係数の大きさ（ＡＢＳ）に対する表現を含まない。
【０１９７】
１４より大きい係数の大きさに対する０次数の指数ゴロムコードから成る接頭部分と接尾部分から形成される２値化は、シンボル確率０．５を有する特別な非適応コンテクストが接尾部分の全てのバイナリ決定に対する符号化効率を犠牲にすることなく使用できるという利点を有し、これによって符号化および復号化の計算量を削減することができる。
【０１９８】
これらのレベルは、（ブロック内の最新の有意係数で始まる）逆スキャン順に符号化される。これはバイナリエントロピー符号化に対して適切なコンテクストを形成することを可能とする。
【０１９９】
２．コンテクストモデリング
有意性マップの上記の符号化および値の２値化によって、割当部がコンテクストと関連付けられた確率に基づいて部分的なビットストリーム選択のためのパラメータを割り当てる、上記の実施形態のいずれかにより復号化／符号化されるシンボル列が生じ、これは以下のように決定される。
【０２００】
一般に、画像および／またはビデオ符号化システムを考えた時、異なるタイプの変換係数ブロックが分化される。これにより、Ｈ．２６４／ＡＶＣ規格の現在の最終草案国際規格において異なる統計（図２１の表の左列）を有する、たとえば、１２種類の変換係数ブロックが存在している。大部分の画像列と符号化条件に対して、統計の一部は非常に類似している。使用するコンテクスト数を少なく保ち、よって、符号化される画像列の統計への迅速な適応を確実とするために、ブロックタイプは、Ｈ．２６４／ＡＶＣの規格において、たとえば、５つのカテゴリに分類することができる（図２１の表の右列を参照）。他の画像および／またはビデオ符号化システムに対しても同様の分類が可能である。Ｈ．２６４／ＡＶＣ規格における５つのカテゴリの各々に対して、コンテクストの個々の量がシンボルＣＢＰ４、ＳＩＧ、ＬＡＳＴおよびＡＢＳに対して使用される。
【０２０１】
２．１．ＣＢＰ４シンボルのためのコンテクストモデリング
１ビットのシンボルＣＢＰ４を符号化するために、４つの異なるコンテクストが個別の変換ブロックのカテゴリごとに使用される（図２１参照）。符号化されるブロックＣのコンテクスト番号は、
ｃｔｘ＿ｎｕｍｂｅｒ＿ｃｂｐ４（Ｃ）＝ＣＢＰ４（Ａ）＋２×ＣＢＰ４（Ｂ）
によって決定される。ここで、同じブロックタイプに関連付けられると見なされるブロックＣのそれらの近接ブロック（左と上）はＡとＢで指定される。Ｈ．２６４／ＡＶＣ規格に関して、以下の６つのブロックの種類：Ｌｕｍａ―ＤＣ、Ｌｕｍａ―ＡＣ、Ｃｈｒｏｍａ―Ｕ―ＤＣ、Ｃｈｒｏｍａ―Ｕ―ＡＣ、Ｃｈｒｏｍａ―Ｖ―ＤＣおよびＣｈｒｏｍａ―Ｖ―ＡＣは、この条件づけに応じて区別されている。変換係数の関連するブロックＸ（ＡまたはＢ）が、近接するマクロブロック内に存在しない場合（これは、たとえば、現在のブロックがＩＮＴＲＡ１６×１６モードで符号化されるが、近接ブロックがＩＮＴＥＲモードで転送された場合である）、ＣＢＰ４（Ｘ）は近接ブロックＸに対してゼロに設定される。近接ブロックＸ（ＡまたはＢ）が画像領域の外にあるかまたは他のスライスに属している場合、対応する値ＣＢＰ４（Ｘ）はデフォルト値に置き換えられる。デフォルト値１はＩＮＴＲＡ符号化ブロックに使用され、デフォルト値０はＩＮＴＥＲ符号化ブロックに使用される。
【０２０２】
２．２．有意性マッピングを符号化するためのコンテクストモデリング
有意性マッピングを符号化するために、ｍａｘ＿ｋｏｅｆｆ−１の異なるコンテクストがシンボルＳＩＧとＬＡＳＴを符号化するためにブロックカテゴリごとに使用される（図２１を参照）。よって、ｍａｘ＿ｋｏｅｆｆは、対応するブロックカテゴリの変換係数の数を指定する（Ｈ．２６４／ＡＶＣついては、図２１を参照）。コンテクスト番号は常に、考慮される係数の対応するスキャン位置によって表される。ｉ番目の係数としてスキャンされた係数ｋｏｅｆｆ［ｉ］のコンテクスト番号はしたがって以下のようになる：
ｃｔｘ＿ｎｕｍｂｅｒ＿ｓｉｇ（ｋｏｅｆｆ［ｉ］）＝ｃｔｘ＿ｎｕｍｂｅｒ＿ｌａｓｔ（ｋｏｅｆｆ［ｉ］）＝ｉ
２＊ｍａｘ＿ｋｏｅｆｆ−２のコンテクストは有意性マッピングを符号化するためのブロックタイプのカテゴリごとに使用される。
【０２０３】
２．３．係数の大きさを符号化するためのコンテクストモデリング
図２０に示した２値化は、有意変換係数の大きさを符号化するために使用される。ブロックカテゴリごとに２つの異なるコンテクストの量が使用される。すなわち、１つは、２値化の最初のバイナリ決定ビン：ｂｉｎ＝１（図２０でオレンジ色にマーキング）を符号化するもの、他の１つは、２値化のバイナリ決定ビン：ｂｉｎ＝２．．１４（図２０で緑色にマーキング）を符号化するものである。よって、コンテクスト番号は以下のように関連付けられる：
ｃｔｘ＿ｎｕｍｂｅｒ＿ａｂｓ＿１ｂｉｎ
＝（ｋｏｅｆｆ  ｗｉｔｈ  ＡＢＳ＞１  ｃｏｄｅｄ  ？  ４：
ｍａｘ（３、ＡＢＳ＝１の符号化された係数の数））、
ｃｔｘ＿ｎｕｍｂｅｒ＿ａｂｓ＿ｒｂｉｎｓ
＝ｍａｘ（４、ＡＢＳ＞１の符号化された係数の数））。
【０２０４】
変換係数の大きさは逆スキャン順に転送される。最初のバイナリ決定に対するコンテクストは、ＡＢＳ＝１の大きさを有する既に（逆スキャン順に）転送された係数の数によって決定される。大きさがＡＢＳ＝１の３つより多い係数が既に転送された場合、コンテクスト番号３が常に選択される。大きさがＡＢＳ＞１の係数が転送されるやいなや、ブロック内のすべての残留有意係数に対してコンテクスト４が使用される。
【０２０５】
ｂｉｎ＝２．．１４を有するすべてのバイナリ決定は１および同じコンテクストを用いて符号化される。したがって、コンテクスト番号は大きさがＡＢＳ＞１の既に（逆スキャン順に）既に符号化された係数の数によって決定され、ここで、最大のコンテクスト番号は４に制限される。例を説明するため、有意変換係数の大きさＡＢＳを符号化するときのコンテクスト選択の２つの例を図２３に示す。係数の大きさおよび符号ＳＩＧＮに対して、バイナリ決定ｂｉｎ＞１４を符号化するために、シンボル確率Ｐ０＝Ｐ１＝０．５である個別の非適応コンテクストが使用される。
【０２０６】
したがって、図１８〜２３に示す応用実施形態は画像および／またはビデオコーダおよびデコーダにおいて変換係数を符号化することに関しており、ここで、有意変換係数を含む（ビデオ）画像のブロックに対して、変換係数の符号化は、ブロックごとに、スキャンプロセスにおいて、ブロック内の有意変換係数の位置、次に、ブロック内の最後の有意変換係数から開始される逆スキャン順に有意変換係数の値（レベル）が求められ符号化されるように実行される。ブロックの最後の変換係数以外のブロックの各々の有意変換係数は、１ビットのシンボルによって特徴づけられる。また、有意変換係数ごとに、符号は１ビットのシンボル（ＳＩＧＮ）によって示されてもよいし、大きさはバイナリ符号化シンボル（ＡＢＳ）によって示される。大きさは単項２値化でシンボル（ＡＢＳ）によってまたは接頭部分と接尾部分を有するシンボル（ＡＢＳ）によって示されてもよく、ここで、接頭部分は１から成り、接尾部分は０次数の指数ゴロムコードで符号化される。有意変換係数を含むブロックは、たとえば、ＣＢＰまたはマクロブロックモードなどのさらなるシンタックス要素との関係において１ビットのシンボルＣＢＰ４によって特徴付けられる。さらに、ブロックの係数ごとに１ビットのシンボル（ＳＩＧ）とブロックの有意係数ごとに１ビットのシンボル（ＬＡＳＴ）を転送することによって有意性マッピングが符号化されうり、ここで、転送はスキャン順に行われ、（ＳＩＧ）は有意係数を識別し、（ＬＡＳＴ）はブロック内に更なる有意変換係数があるかどうかを示す。１ビットのシンボルＣＢＰ４に対して、有意性マッピングを符号化するためおよび／または係数の大きさを符号化するためのモデリングをコンテクストに依存する方法で行うことができる。有意情報（ＳＩＧ、ＬＡＳＴ）はブロックの最後のスキャン位置に対して転送されない。比較可能な統計を有する変換係数のブロックタイプはブロックカテゴリへ集約することができる。
【０２０７】
言いかえれば、変換係数レベルの符号化は３つのステップに分割することができる。第１のステップにおいて、変換ブロックごとにバイナリシンタックス要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇが送信され、変換ブロックが有意変換係数レベル（すなわち、非ゼロである変換係数）を含むかどうかを通知する。このシンタックス要素が、有意変換係数レベルが存在していることを示す場合、バイナリ値の有意性マップが符号化され、どの変換係数レベルが非ゼロ値を有しているかを指定する。次に、逆スキャン順に、非ゼロ変換係数レベルの値が符号化される。有意性マップは以下のように符号化される。スキャン順で係数ごとに、バイナリシンタックス要素ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが符号化され、対応する変換係数レベルがゼロと等しくないかどうかを指定する。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇビンが１と等しい場合、すなわち、非ゼロの変換係数レベルがこのスキャン位置に存在する場合、更なるバイナリシンタックス要素ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが符号化される。このビンは、現在の有意変換係数レベルがブロック内部で最後の有意変換係数レベルであるかどうかまたは更なる有意変換係数レベルがスキャン順に続くかどうかを示す。ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが更なる有意変換係数が続いていないことを示す場合、ブロックに対する有意性マップを指定するための更なるシンタックス要素は符号化されない。次のステップにおいて、ブロック内のロケーションが有意性マップによって既に決定されている有意変換係数レベルの値が符号化される。有意変換係数レベルの値は以下の３つのシンタックス要素を使用して逆スキャン順に符号化される。バイナリシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅは、有意変換係数レベルの絶対値が１より大きいかどうかを示す。バイナリシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅが絶対値が１より大きいことを示す場合、さらなるシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅが送信され、これは変換係数レベルの絶対値マイナス１を指定する。最後に、変換係数値の符号を指定する、バイナリシンタックス要素ｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇは有意変換係数レベルごとに符号化される。ここでも、有意性マップに関連しているシンタックス要素はスキャン順に符号化される一方、変換係数レベルの実際の値に関連しているシンタックス要素は逆スキャン順に符号化され、より適切なコンテクストモデルの使用を可能にすることに留意されたい。
【０２０８】
Ｈ．２６４のＣＡＢＡＣエントロピー符号化において、変換係数レベルに対する全てのシンタックス要素はバイナリ確率モデリングを用いて符号化される。非バイナリシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅは最初に２値化され、すなわち、それはバイナリ決定（ビン）列にマッピングされ、これらのビンは順に符号化される。バイナリシンタックス要素ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ、ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅ、およびｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇは直接符号化される。（バイナリシンタックス要素を含む）各符号化されたビンはコンテクストと関連付けられる。コンテクストは符号化されたビンの等級ごとの確率モデルを表す。２つの可能なビン値の１つに対する確率に関連する測度は、対応するコンテクストで既に符号化されているビンの値に基づいてコンテクストごとに予測される。変換符号化に関連したいくつかのビンに対して、符号化するために使用されるコンテクストはすでに送信されたシンタックス要素に基づいてまたはブロック内の位置に基づいて選択される。
【０２０９】
有意性マップはスキャン位置に対する（変換係数レベルがゼロとは異なる）有意性に関する情報を指定する。Ｈ．２６４規格のＣＡＢＡＣエントロピー符号化において、４×４のブロックサイズの場合、バイナリシンタックス要素ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇを符号化するためのスキャン位置ごとに分離したコンテクストが使用され、ここで、スキャン位置のｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇに対して異なるコンテクストが使用される。８×８のブロックの場合、同じコンテクストモデルが４つの連続スキャン位置に対し使用され、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇに対して１６個のコンテクストモデルが生じ、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇに対して更なる１６個のコンテクストモデルが生じる。
【０２１０】
有意性マップを符号化した後、ブロックは逆スキャン順に処理される。スキャン位置が有意である場合、すなわち、係数がゼロと異なる場合、バイナリシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅが送信される。初めに、対応するコンテクストモデルの集合の２番目のコンテクストモデルがｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅシンタックス要素に対して選択される。ブロック内の任意のｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅシンタックス要素の符号化された値が１にと等しい場合（すなわち、絶対的な係数が２より大きい場合）、コンテクストモデリングは集合の最初のコンテクストモデルにスイッチバックされかつブロックの最後までこのコンテクストモデルを使用する。そうでない場合（ブロック内ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅのすべての符号化された値がゼロでありかつ対応する絶対値係数レベルが１と等しい場合）、コンテクストモデルは、考えられるブロックの逆スキャン順に既に符号化／復号化されているゼロと等しいｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅシンタックス要素の数に基づいて、選択される。シンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅに対するコンテクストモデル選択は以下の等式によって要約される。ここで、現在のコンテクストモデルインデックスＣｔ＋１は、前のコンテクストモデルインデックスＣｔと、等式においてｂｉｎｔで表される前に符号化されたシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅの値に基づいて選択される。ブロック内の最初のシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅの場合、コンテクストモデルインデックスはＣｔ＝１にと等しく設定される。
【数１１８】
2013528025.tif 000127
【０２１１】
同じスキャン位置に対するｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅシンタックス要素が１と等しいとき、絶対変換係数レベルを符号化するための２番目のシンタックス要素である、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅのみが符号化される。非バイナリシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅはビン列内およびこの２値化の最初のビンに対して２値化される。コンテクストモデルインデックスは以下に説明するように選択される。２値化の残留ビンは固定コンテクストで符号化される。２値化の最初のビンに対するコンテクストは次のように選択される。最初のｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅシンタックス要素について、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅシンタックス要素の最初のビンに対するコンテクストモデルの集合の最初のコンテクストモデルが選択され、対応するコンテクストモデルインデックスは、Ｃｔ＝０と等しく設定される。ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅシンタックス要素の更なる最初のビンごとに、コンテクストモデリングは、集合内のコンテクストモデルの数が５に制限される、集合の次のコンテクストモデルに切り替わる。コンテクストモデルの選択は、現在のコンテクストモデルインデックスＣｔ＋１が前のコンテクストモデルインデックスＣｔに基づいて選択される、次の式によって表すことができる。上述のように、ブロック内の最初のシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅに対して、コンテクストモデルインデックスはＣｔ＝０と等しく設定される。コンテクストモデルの異なる集合がシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅとｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅに対して使用されることに留意されたい。
Ｃｔ＋１（ｃｔ）＝ｍｉｎ（Ｃｔ＋１、４）。
【０２１２】
先に説明したエントロピー符号化の実施形態に今説明した応用実施形態を組み合わせた場合、個々のコンテクストに割り当てられた確率は、たとえば、エントロピーエンコーダ（上述した、確率を確率の部分的ビットストリームのより小さい集合に量子化した後などの、複数の部分的ビットストリームパスの中のエントロピーデコーダ）を選択するために使用されるパラメータとしてまたはパラメータの少なくとも１つとして使用することができる。換言すれば、シンボル列の復元が有意性マッピングの連続的な定義付けかつこれに続く逆スキャン順にゼロと等しくない変換係数の値の符号化は以上に説明した実施形態のいずれかによるデコーダを使用して行うことができる。
【実施例２】
【０２１３】
上に概略的に述べられたエントロピー符号化の実施形態のアプリケーションについての実施例２によれば、より高い圧縮効率を有する改良されたエントロピー符号化設計が達成される。
【０２１４】
エントロピー符号化された情報シンボルを得るために情報シンボルのシンボル列をエントロピー符号化するための装置であって、シンボル列はスタートシンボルを有している装置は、このシンボルに対する確率情報に基づいてシンボル列のシンボルをエントロピー符号化するためのエントロピーエンコーダであって、このシンボルはシンボル集合の一部であり、エントロピー符号化された情報シンボルを生成するエントロピーエンコーダと、このシンボルのコンテクストに基づいてこのシンボルの確率情報を導出するためのコンテクストモデラと、を含み、このコンテクストはこのシンボルを処理する前にエントロピーエンコーダによって処理された１以上のコンテクストシンボルを含み、コンテクストモデラは初期化確率情報を判定しかつこれをエントロピーエンコーダへ提供することによってコンテクストモデラを初期化するための初期化部を含み、この初期化確率情報はスタートシンボルを処理するためにエントロピーエンコーダによって使用され、初期化部は、初期化確率分布がシンボルの集合の全てのシンボルに対する等確率分布とは異なるように、スタートシンボルに関連したシンボル統計の予測に基づいて、初期化確率情報を決定するために動作可能である。エントロピーエンコーダは、前述した実施形態のいずれかに基づいて具現化することができる。
【０２１５】
エントロピー符号化された情報シンボルをエントロピー復号化するためのデコーダであって、エントロピー符号化された情報シンボルはシンボルに対する確率情報に基づいてシンボル列のシンボルをエントロピー的に符号化することによって生成され、このシンボルはシンボル集合の一部であり、このシンボルに対する確率情報はシンボルのコンテクストに基づいて求められ、このコンテクストは先に処理された１以上のコンテクストシンボルを含み、スタートシンボルをエントロピー的に符号化するために初期化確率情報が使用されており、この初期化確率情報はスタートシンボルに関連しているシンボル統計の予測に基づいておりかつ初期化確率分布がシンボルの集合の全てのシンボルに対する等確率分布とは異なるように決定される、デコーダは、スタートシンボルを有する情報シンボルのシンボル列を得るためにエントロピー符号化された情報シンボルをエントロピー復号化するためのエントロピーデコーダと、この情報シンボル列をエントロピー符号化するときに使用される確率情報を得るためのコンテクストモデラトを含み、このコンテクストモデラはスタートシンボルをエントロピー符号化する時に使用される初期化確率情報を取得するための初期化部を含む。このエントロピーデコーダは前述した実施形態のいずれかに基づいて具現化することができる。
【０２１６】
改良された圧縮効率は、初期化確率情報が該当するシンボル集合のすべてのシンボルに対する等確率分布とは異なるように、コンテクストモデラを初期化することによって得ることができる。特に、初期化部は、少なくともスタートシンボルに関連しているシンボルの統計の予測に基づくシンボル列のスタートシンボルに対して使用される初期化確率情報を決定するために動作可能であることから、初期化確率情報はシンボル集合のすべてのシンボルに対する等確率分布とは異なる。
【０２１７】
特に、この「インテリジェント」初期化は、異なるビデオソースからの多用に変化するコンテンツを有するビデオ素材を符号化するために有利である。本発明の好ましい実施形態において、初期確率情報は符号化された情報を量子化するために使用される量子化パラメータに基づいて導出することができることが分かっている。ビデオ符号化アプリケーションにおいて、および、特に、Ｈ．２６４／ＡＶＣビデオ圧縮規格に関連しているビデオ符号化アプリケーション用において、エントロピー符号化される情報シンボルのシンボル列は、たとえば、時間／空間的なインター／イントラフレーム予測モードによって得られる変換された残留値から求められる。
【０２１８】
さらに、インテリジェントな初期化をビデオソース素材についての事前知識に基づいて有利に行うことができる。特に、圧縮効率は、初期化値のいくつかの集合を定義付けることによって向上することが分かっている。いわゆるＩ―またはＳＩ―スライスに対しては、たとえば、初期化値の単一集合で十分間に合う。いわゆるＰ―、ＳＰ―またはＢ―スライスなどの時間的に予測符号化されるスライスに対して、１つより多くの、好ましくは、３つの異なる初期化値の集合を定義付けることができる。これらのスライスに対して、初期化値の選択された集合はエンコーダ出力ビットストリームにおいてあるシンタックス要素によって指定され、これによって、符号化された出力ビットストリームを処理するデコーダが正確にそれ自体を初期化することが可能である。好ましくは、このシンタックス要素はスライスヘッダの一部として送信される。ここで、エンコーダはスライスごとのシンボル統計に対して最も適切な値である初期化値の集合を選択する自由度を有している。
【０２１９】
好ましくは、初期化値が、エントロピーエンコーダによって処理されるシンボル列がどのデータタイプまたはサブデータタイプに属しているかを検出することによって、さらに多様化する。この特定のタイプはコンテクストインデックス変数によって表示される。このコンテクストインデックス変数は、好ましくは、対応する数の初期化確率情報を導出することができる最大３９９個の異なるコンテクストモデルから１つをシグナリングできるように設計され、これにより、各々がスタートシンボルを有する多数の異なるシンボル列に対して、最適に適応された初期化が決定される。
【０２２０】
エントロピー符号化されるシンボルは異なるコンテクストモデルを帰属させているということに留意しなければならない。好ましくは、複数のシンボルまたはビットは複数のコンテクストモデルのうち１つのコンテクストモデルを使用して符号化される。これらの複数のシンボルやビットはシンボル列を形成し、ここで、シンボル列の最初に符号化されるシンボル、すなわち、コンテクストモデルを帰属させたシンボル列はスタートシンボルである。コンテクストモデルは、１つまたは１つより多い確率モデルを含むことができる。１つより多くの確率モデルを有するコンテクストモデルの場合、確率モデルが変化するたびに、新しい初期化が行われる。
【０２２１】
以下において、エントロピー符号化装置またはエントロピー符号化方法の構造および機能を示す図２４を参照されたい。特に、図２４は、エントロピー符号化された情報シンボルを取得するために情報シンボルのシンボル列をエントロピー符号化するための装置を示し、ここで、シンボル列はスタートシンボルを有している。シンボル列は、エントロピーエンコーダ１１１２のシンボル列入力へ入力される。エントロピー符号化された情報シンボルは、エントロピーエンコーダ１１１２にも接続されているエントロピーエンコーダ出力１１１４で出力される。エントロピーエンコーダは、シンボルの確率情報に基づいてシンボル列のシンボルをエントロピー符号化するよう演算する。確率情報は、確率情報入力１６を介して、エントロピーエンコーダ１１１２へ入力される。シンボルは、バイナリの場合、２つの異なるシンボル、すなわち、バイナリ「０」とバイナリ「１」のみを含む、指定されたシンボル集合の一部であるので、シンボルの集合の１つのシンボルに対してのみ確率情報を提供するには十分である。本発明によれば、この数が最大確率シンボルに対する確率よりも必然的に小さいので、最小確率シンボル（ＬＰＳ）の確率情報を提供することが好ましいとされる。さらに、確率情報入力１１１６を介してエントロピーエンコーダに与えられる確率情報は、最小確率シンボルの値またその逆の値を容易に求めることができる、最大確率シンボルの値を含む。
【０２２２】
エンコーダは、シンボルのコンテクストに基づいてシンボルに対する確率情報を得るためのコンテクストモデラ１１１８を更に含む。このコンテクストは、コンテクスト入力１１２０によってコンテクストモデラへ入力された１以上のコンテクストシンボルを含み、これらのコンテクストシンボルは実際のシンボルを処理する前にエントロピーエンコーダ１１１２によって処理されている。
【０２２３】
コンテクストモデラ１１１８は、初期化確率情報がスタートシンボル、すなわち、コンテクストシンボルが全く存在しないシンボル列のシンボル、すなわち、スタートシンボルに先行してエントロピーエンコーダ１１１２によって処理されたシンボル、を処理するためにエントロピーエンコーダ１１１２によって使用される時、初期化確率情報を決定しこれをエントロピーエンコーダ１１１２へ提供することによってコンテクストモデラを初期化するために初期化部１１２０を含む。これは、エントロピー符号化方式が連続方式であるので、スタートシンボルがシンボル列の最初のシンボルであることを意味する。
【０２２４】
初期化部は、初期化確率がスタートシンボルが属するシンボル集合のすべてのシンボルに対して等確率分布とは異なるように、スタートシンボルに関連するシンボル統計の予測に基づいて初期化確率情報を判定するように動作可能である。
【０２２５】
コンテクストモデラ、よって、エントロピーコーダが、エントロピーエンコーダによってシンボル列が符号化されることが予想されるシンボル統計の予測に基づいてインテリジェントに初期化されるので、エントロピー符号化装置は改良されたスタートアップ性能を示す。言い換えれば、エントロピー符号化装置は、スタートシンボルに対して、スタートシンボルが最初のシンボル列ではないが中間のシンボル列であるかのように振舞う。よって、初期化により、スタートシンボルに対してエントロピー符号化装置の事前適応が既に得られることになる。初期化確率情報が等確率分布に設定される、単純なアプローチとは対照的に、エントロピーエンコーダはすぐにコンテクスト事前適応となる。単純なアプローチの場合、コンテクスト適応は、コンテクストシンボルを形成する先行して符号化されたシンボルの数に対応するいくつかのステップを必要とする。
【０２２６】
コンテクストモデラとエントロピーエンコーダの本発明の初期化は、単にインテリジェント初期化確率情報を提供することにより、これ以上のアクションを取らずして、単純な等確率分布と比較すると、３％程度までのビットレートの節約になることが分かっている。
【０２２７】
図２５は、図２４に示した初期化部１０２０の好ましい実施形態を示す。初期化部１１２０は、スライスヘッダからシンボル列への量子化パラメータを検索するための検索部を含む。また、スライスヘッダも、スライスデータのデータタイプを検出するための検出部へ入力される。更に、スライスデータのサブデータタイプを検出するための検出部１２０４が提供されている。検出部１２０４は更に、検出されたサブデータのタイプに基づいて様々な初期化テーブルにアクセスするため動作可能である。後述するように、様々な初期化テーブルへのアクセスは一方でコンテクストインデックスによって、好ましくは、他方で初期化インデックスによって、制御される。スライスデータに応じて、Ｉ―およびＳＩ―スライスに対するあるコンテクストインデックスを有する初期化テーブルが１つだけ存在する。Ｐ―およびＢ―スライスに対して、少なくとも２つ、好ましくは３つの、ここでもコンテクストインデックスによってアドレスされる初期化テーブルが存在しており、ここで、実際に使用される少なくとも２つのテーブルうちのテーブルが初期化インデックスによってアドレスされる。
【０２２８】
算出部１２０６は、一方で検索部１２００、他方で検出部１２０４に接続されている。算出部１２０６は、実際の初期化確率、あるいは、好ましい実施形態によれば、確率状態のインデックス、すなわち、最小確率シンボルに対する確率情報を含む初期化確率情報テーブルに対する基準値となり得る、初期化確率に関する情報を計算するように動作可能である。発明者によって、スライスデータを量子化するために使用される量子化パラメータからの初期化確率の線形依存から改良された圧縮効率、すなわち、最適初期化に近いものを得ることができることが見出された。したがって、図２５の算出部１２０６は線形計算を適用するために動作可能であり、ここで、パラメータｍは線形依存の勾配を示すが、他の初期化パラメータ、すなわち、ｎは、ｙ―軸のオフセットを示す。図２５における算出部１２０６によって処理される基本的な等式はブロック２０６では、
ｍ×ＱＰ＋ｎ
と表され、ここで、ＱＰは量子化パラメータであるが、ｍとｎは、あるコンテクストインデックスによってアドレスされる異なる初期化テーブルから取り出された初期化パラメータである。
【０２２９】
好ましい実施形態において、図２５の算出部１２０６は、図２６に示すような一連のステップを実行する。最初のステップにおいて、式ｍ×ｓｌｉｃｅＱＰ＋ｎが計算される。ここで、図２６の好ましい実施形態において、ｍ×ｓｌｉｃｅＱＰの値Ｆが４桁右にシフトされていることに留意されたい。当然のことながら、ここでは、すべての値がバイナリストリングであることに留意されたい。４桁のシフトは、２つの相補的なプレゼンテーションにおける積ｍ×ｓｌｉｃｅＱＰの表示に関連している。次に、このシフト後の結果が他の初期化パラメータｎに加算される。次いで、一方でこの結果の最小値、他方で整数値１１２６が選択される。この最小値が１より大きい場合、この最小値が選択され補助変数ｐｒｅＣｔｘＳｔａｔｅに割り当てられる。次に、この補助変数が６３より小さいかまたはこれと等しいかどうかが判定される。この判定が肯定された場合、確率状態インデックス変数ｐＳｔａｔｅＩｄｘは６３と補助変数との差として計算される。さらに、最大確率シンボル（ｖａｌＭＰＳ）の値がゼロと等しいと判定される。他のケースの場合、すなわち、補助変数が６３より大きい場合、確率状態インデックスｐＳｔａｔｅＩｄｘは補助変数と値６４の差として計算される。さらに、最大確率シンボルの値が１に設定される。
【０２３０】
確率状態インデックスが最小確率シンボルに対する確率情報を含む初期化確率情報テーブルへの基準であることに留意されたい。確率状態インデックスの値は確率情報テーブル内で６４個の異なる確率情報値をアドレスすることができる。最初に確率状態インデックスを計算してから次にこの確率状態インデックスを用いてテーブルをアドレスする理由は、実際のエントロピーエンコーダコアの改良された設計部分である。当然ながら、適切なマッピングによって、図２６に示される一連のステップもこの初期化確率情報を直接計算することができる。
【０２３１】
量子化パラメータＳｌｉｃｅＱＰは、変換係数の量子化を決定するために使用される。パラメータは５２個の値をとる。これらの値は、量子化パラメータが１つ増加すれば、量子化ステップサイズが約１２％大きくなることを意味する（６増加すれば、２の因数分、量子化ステップサイズが大きくなることを意味する）ように配置することができる。約１２％のステップサイズの変化が大まかに約１２％のビットレートの減少を意味することが分かる。
【０２３２】
以下において、本発明のエントロピーデコーダを示す図２７を参照する。従来技術のエントロピー符号化／復号化において既知であるように、エントロピーデコーダは、送信されたインターバル（いうまでもなくバイナリ形式で表される）を復号化されたビット、すなわち、スタートシンボルを有する情報シンボル列へ分解するために、エンコーダによってそれぞれの符号化ステップに対して使用される同一の確率分布を必要とする。このため、本発明のエントロピーデコーダは、エントロピーデコーダ１１６０と、初期化部１１６４を含むコンテクストモデラ１１６２と、を含む。ここで、図２７に示されるデコーダが図２４のエンコーダと同様に構築されていることが分かる。ここでも、コンテクストモデラ１１６２は、確率情報、すなわち、列のスタートシンボルに関しては、初期化確率情報を提供する。この情報は、図２４に関して説明した方法と同様の方法、すなわち、それぞれのスライス量子化パラメータを決定すること、あるコンテクストインデックスを決定すること、および、エントロピーデコーダがスタートシンボルを処理するために演算可能であるときに初期化確率情報を算出するための対応する初期化パラメータｍ、ｎを決定することによって、生成される。エンコーダ内のシンボル列のスタートシンボルは符号化される最初のシンボルでありかつ復号化される最初のシンボルでもあるので、エントロピー符号化／復号化チェーンは一種の先入れ先出しのパイプラインであることに留意されたい。したがって、図２７に示したエントロピーデコーダには、図２４に示したエントロピーエンコーダに関連して説明されたものと同じ初期化プロセスを使用することができる。
【０２３３】
正規のコンテクスト適応モードに関して、コンテクストモデラもまた、図２４に関連して説明されたものと同じ演算ステップを実行することができる。
【０２３４】
図２４と図２７の両図において、エントロピーエンコーダ／デコーダは、以前の図１〜図１７に示したものと同様に実施可能である。
【実施例３】
【０２３５】
実施例３において、以上に記載された実施形態のいくつかの拡張が記載される。
【０２３６】
これは、符号化または復号化されるシンボルの基礎にある確率予測がインデックスｐ＿ｓｔａｔｅを使用して確率状態Ｐｎに関連付けられている場合に特に有利である。
【０２３７】
たとえば、Ｎ個の異なる代表的確率状態がある。同じく、遷移ルールが付与されうり、ここで、遷移ルールは、現在符号化または復号化されたシンボルに基づいて、符号化または復号化される次のシンボルに対して、どの新しい状態が使用されるかを示している。したがって、現在付与されている確率状態Ｐｎのインデックスｎのほかに最小確率シンボル（ＬＰＳ）が出現するときに新しい確率状態Ｐｍのインデックスｍを含むテーブルＮｅｘｔ＿Ｓｔａｔｅ＿ＬＰＳが作成される場合、および／または、現在付与されている確率状態Ｐｎのインデックスｎのほかに最大確率シンボル（ＭＰＳ）が出現するときに新しい確率状態Ｐｍのインデックスｍを含むテーブルＮｅｘｔ＿Ｓｔａｔｅ＿ＭＰＳが作成される場合に有利である。
【０２３８】
符号化の１つの特別なインプリメンテーションは以下のステップを含む：
１．ＬＰＳを決定するステップ
２．量子化するステップ
ｐ＝ｑｕａｎｔｉｚｅ［ｐ＿ｓｔａｔｅ］
３．符号化／復号化するステップ
部分的ビットストリームを選択するためのパラメータとしてｐを使用してビットを符号化／復号化する
４．ｐ＿ｓｔａｔｅを適応するステップ：
【数１１９】
2013528025.tif 000128
ここで、
ｂｉｔ  復号化／符号化される現在のビット、
ｐ＿ｓｔａｔｅ  ビットに割り当てられたコンテクストの現在の確率状態、
ｖａｌＭＰＳ  ＭＰＳに対応するビットの値
である。
【０２３９】
さらに、確率モデルの初期化が量子化パラメータＳｌｉｃｅＱＰとプリセットされたモデルパラメータｍとｎに応じて実行される場合に有利であることが分かる。ここで、ＳｌｉｃｅＱＰはスライスの初めにプリセットされた量子化パラメータを記述し、ｍとｎはモデルパラメータを記述している。
【０２４０】
確率モデルの初期化が以下のステップを含む場合にも有利である：
１．ｐｒｅＳｔａｔｅ＝ｍｉｎ（ｍａｘ（１、（（ｍ＊ＳｌｉｃｅＱＰ）＞＞４）＋ｎ）、２ ＊（Ｎ−１））
２．ｉｆ（ｐｒｅＳｔａｔｅ＜＝ Ｎ−１）ｔｈｅｎ、
ｐ＿ｓｔａｔｅ＝Ｎ−１−ｐｒｅＳｔａｔｅ
ｖａｌＭＰＳ＝０
ｅｌｓｅ
ｐ＿ｓｔａｔｅ＝ｐｒｅＳｔａｔｅ−Ｎ
ｖａｌＭＰＳ＝１
ここで、ｖａｌＭＰＳはＭＰＳに対応するビットの値を記述し、ＳｌｉｃｅＱＰはスライスの初めにプリセットされた量子化パラメータを記述し、ｍとｎはモデルパラメータを記述している。
【０２４１】
理論的背景をより詳細に説明する。
【０２４２】
テーブルを利用した確率予測
既に上述したように、符号化されるシンボルの出現確率の予測はできるだけ良好であるべきである。非定常ソース統計への適応を可能にするために、この予測は、符号化プロセスの過程で更新される必要がある。一般に、これには符号化された結果値のスケーリングされた頻度カウンタを使用して演算する通常の方法が用いられる。ＣＬＰＳとＣＭＰＳがＬＰＳおよびＭＰＳの出現頻度に対するカウンタを示している場合、これらのカウンタを用いて予測
【数１２０】
2013528025.tif 000129
【０２４３】
が実行され、次に、エントロピー符号化／復号化はこの確率を用いて実行される。実用的な用途に対して、等式（Ｃ１）において必要とされる分割は不利である。しかしながら、全体カウンタＣＴｏｔａｌ＝ＣＭＰＳ＋ＣＬＰＳの所定のしきい値Ｃｍａｘが超えた場合のカウンタの読み値の再スケーリングを実行するために、しばしば、便利であり必要とされる。Ｃｍａｘの適切な選択によって、ＣＴｏｔａｌの逆数の値を集計することができ、これによって等式（Ｃ１）に必要とされる分割はテーブルアクセスおよび乗算とシフト演算に置き換えることができる。しかしながら、これらの算術演算を回避するために、本発明においては、確率予測のために完全に表支援された方法が使用される。
【０２４４】
このため、トレーニングフェーズにおいて、代表的確率状態｛ＰＫ｜０≦ｋ＜Ｎｍａｘ｝が前もって選択され、ここで、状態の選択は一方で符号化されるデータの統計に依存し、他方で状態のデフォルト最大数Ｎｍａｘのサイド条件に依存する。さらに、現在符号化されたシンボルに基づいて符号化される次のシンボルに対してどの新しい状態が使用されるべきかを示す遷移ルールが定義付けられる。これらの遷移ルールは、２つのテーブルの形態：｛Ｎｅｘｔ＿Ｓｔａｔｅ＿ＬＰＳｋ｜０≦ｋ＜Ｎｍａｘ｝と｛Ｎｅｘｔ＿Ｓｔａｔｅ＿ＭＰＳｋ｜０≦ｋ＜Ｎｍａｘ｝で付与され、ここで、現在与えられている確率状態のインデックスｎに対して、ＬＰＳまたはＭＰＳがそれぞれ出現する場合、テーブルは新しい確率状態Ｐｍのインデックスｍを提供する。ここで、本明細書で提案されるエントロピーエンコーダまたはデコーダのそれぞれにおける確率予測に対して、確率状態の明示的な集計が不要であることに留意されたい。寧ろ、これらの状態は、次のセクションに記載されているように、それぞれのインデックスを使用して暗黙にアドレスされるにすぎない。遷移ルールに加えて、どの確率状態においてＬＰＳおよびＭＰＳの値を交換すべきかが指定される必要がある。一般に、そのインデックスｐ＿ｓｔａｔｅを用いて識別できるこのような優良状態は１つだけにすぎない。
【０２４５】
次に、確率状態ｐ＿ｓｔａｔｅの更新が、符号化されたビットの値に応じて、どのように実行されるかを説明する：
ｉｆ（ｂｉｔ＝１−ｖａｌＭＰＳ）ｔｈｅｎ、
ｐ＿ｓｔａｔｅ←Ｎｅｘｔ＿Ｓｔａｔｅ＿ＬＰＳ［ｐ＿ｓｔａｔｅ］
ｉｆ（ｐ＿ｓｔａｔｅ＝０）ｔｈｅｎ  ｖａｌＭＰＳ←１−ｖａｌＭＰＳ
ｅｌｓｅ
ｐ＿ｓｔａｔｅ←Ｎｅｘｔ＿Ｓｔａｔｅ＿ＭＰＳ［ｐ＿ｓｔａｔｅ］
セクション「表支援確率予測」において既に上述した遷移テーブルＮｅｘｔ＿Ｓｔａｔｅ＿ＬＰＳとＮｅｘｔ＿Ｓｔａｔｅ＿ＭＰＳが使用される。
【０２４６】
均等確率分布による符号化
たとえば、確率分布がゼロを中心に左右対称に配置されている符号付きの値が符号化されるアプリケーションにおいて、符号情報を符号化するために、一般的に、等しい分布が想定されうる。この情報は一方でエントロピー符号化されたビットストリーム内へ埋め込まれるが、他方では、表支援確率予測とインターバル分離の比較的コンパクトな装置をほぼ０．５の確率に使用することは理にかなってないので、以下に例示されうる特別なエンコーダ／デコーダ手順を任意に使用する、提案された特殊なケースのためのものである。
この特殊なケースにおいて、ビンのエントロピー符号化は、すべてのシンボルの値が同じ確率である確率分布を使用して実行される。
【０２４７】
確率モデルのアドレスと初期化
使用されている全ての確率モデルは、２つのパラメータ：１）ＬＰＳの確率状態を特徴づけるインデックスｐ＿ｓｔａｔｅと、２）ＭＰＳの値ｖａｌＭＰＳ、とを使用して表される。これらの２つの変数の各々は、（１つのスライスのビデオ符号化のアプリケーションにおいて）完成した符号化単位の符号化または復号化のそれぞれの初めにおいて初期化される必要がある。したがって、初期化値は、たとえば、以下によって例示される、（スライスの）量子化パラメータなどのコントロール情報から求めることができる。
１．ｐｒｅＳｔａｔｅ＝ｍｉｎ（ｍａｘ（１、（（ｍ＊ＳｌｉｃｅＱＰ）＞＞４）＋ｎ）、２＊（Ｎ−１））
２．ｉｆ（ｐｒｅＳｔａｔｅ＜＝Ｎ−１）ｔｈｅｎ
ｐ＿ｓｔａｔｅ＝Ｎ−１−ｐｒｅＳｔａｔｅ
ｖａｌＭＰＳ＝０
ｅｌｓｅ
ｐ＿ｓｔａｔｅ＝ｐｒｅＳｔａｔｅ−Ｎ
ｖａｌＭＰＳ＝１
【０２４８】
フォワード制御初期化プロセス
モデルのスタート分布の適応の更なる可能性は以下の方法によって提供される。モデルの初期化のより良好な適応を保証するために、エンコーダにおいて、モデルの所定のスタート値の選択が提供されうる。これらのモデルはスタート分布の群へ結合されかつ複数のインデックスを用いてアドレスされうり、これによって、エンコーダにおいて、スタート値の群の適応性選択が実行されかつ頁情報としてのインデックスの形態でデコーダに送信される。この方法は、フォワード制御初期化プロセスと呼ばれる。
【実施例４】
【０２４９】
次の実施例はビデオフレーム符号化に係り、より詳細には、近接するシンタックス要素に基づくコンテクスト割当てを使用した符号化方式に関する。以下のアプリケーション例は、より高い圧縮効果を可能にする上記の実施形態を用いたビデオ符号化方式を提供する。
【０２５０】
この利点は、画像サンプルから成る少なくとも１つのビデオフレームを表すビデオ信号を符号化することによって達成される。この画像サンプルは異なる時刻でキャプチャされる第１または第２のフィールドのいずれかに属している。ビデオフレームは、トップおよびボトムのマクロブロックと関連付けられる、マクロブロック対領域内へ空間分割される。符号化は、マクロブロック対領域ごとに、同マクロブロック対領域が第１または第２の分布タイプのいずれのタイプであるかを決定するステップと、マクロブロック対領域ごとにそれぞれのマクロブロック対領域のトップおよびボトムマクロブロックのそれぞれの１つにそれぞれのマクロブロック対領域内の画素サンプルの各々を割り当てるステップと、ビデオ信号をプリコードされたビデオ信号へプリコードするステップと、を含み、プリコードステップはマクロブロック対領域の現在のマクロブロック対領域に関連付けられたトップおよびボトムのマクロブロックの現在マクロブロックをプリコードして現在のシンタックス要素を取得するサブステップを含む。その後、現在のシンタックス要素に対して、近接マクロブロックが、現在のマクロブロック対領域が第１の分布であるかまたは第２の分布タイプであるかに少なくとも基づいて、決定される。少なくとも２つのコンテクストモデルの１つが近接マクロブロックの所定の属性に基づいて現在のシンタックス要素に割り当てられ、ここで、各コンテクストモデルは異なった確率予測と関連付けられている。最終的に、少なくとも１つのシンボルがシンタックス要素の表示に関連している、上記の実施形態のいずれかに基づいてシンボル列の符号化が行われる。割当部は、それぞれのシンボルに割り当てられたコンテクストに関連付けられた確率分布予測に基づいて、それぞれのシンボルに対する確率分布の予測に対する測度を決定するように構成される。したがって、選択部は、それぞれのエントロピーコーダとそれぞれの部分的ビットストリームを選択する。
【０２５１】
符号化されたビットストリームからシンタックス要素を復号化することも記載されている。符号化されたビットストリームはプリコードされたビデオ信号のエントロピー符号化されたバージョンであり、プリコードされたビデオ信号はビデオ信号のプリコードされたバージョンであり、このビデオ信号は画像サンプルから成る少なくとも１つのビデオフレームを表し、これらの画像サンプルは異なる時刻でキャプチャされる第１または第２のフィールドのいずれかに属し、ビデオフレームはマクロブロック対領域へ空間分割され、各マクロブロック対領域はトップおよびボトムマクロクロックに関連付けられかつ第１または第２の分布のいずれかの分布タイプであり、ここで、各マクロクロック対領域に対して、それぞれのマクロブロック対領域内の画素サンプルの各々が、それぞれのマクロブロック対領域の分布タイプに基づいて、それぞれのマクロブロック対領域のトップおよびボトムのマクロブロックの各々に割り当てられ、ここで、シンタックス要素はマクロブロック対領域の現在のマクロブロック対領域のトップおよびボトムのマクロブロックの現在のマクロブロックに関連している。この方法は、現在のシンタックス要素に対して、近接マクロブロックを、少なくとも現在のマクロブロック対領域が第１の分布であるかまたは第２の分布タイプであるかに基づいて、判定するステップと、各々が異なる確率予測と関連付けられる、少なくとも２つのコンテクストモデルのうちの１つを近接マクロブロックの所定の属性に基づいて現在のシンタックス要素に割り当てるステップと、各コンテクストモデルは異なる確率予測に関連付けられ、上記の実施形態のいずれかに基づいて少なくとも１つのシンボルがシンタックス要素の表示に関連しているシンボル列を復元するステップと、を含む。割当部は、それぞれのシンボルに割り当てられたコンテクストに関連付けられた確率分布予測に基づいて、それぞれのシンボルに対する確率分布の予測測度を決定するように構成される。したがって、選択部は、それぞれのエントロピーデコーダとそれぞれの部分的ビットストリームをそれぞれ選択する。
【０２５２】
以下に概略的に述べるアプリケーション例は、どのような理由であれ、たとえば、非移動領域と移動領域を有するビデオフレームを符号化するときのより良好な効果などの、第１および第２の分布タイプのマクロブロック対領域、すなわち、フィールドおよびフレーム符号化されたマクロブロック対、がビデオフレームで同時に使用される、すなわち、ＭＢＡＦＦ符号化が使用される場合、画素サンプルの連続ブロック間の近接部分を、各マクロブロック対がコンテクストモデリングのためのフレームマクロブロック対とみなされることとは異なる方法において、定義付ける必要があることと、近接ブロックと現在のブロックによってカバーされる領域の距離が、各マクロブロック対をフレームマクロブロック対として考えた時に、非常に大きくなるという発見を利用する。これはまた、現在のブロックの近接に配列されていない近接ブロックを選択することは条件となる確率モデルの適応に影響を与えるので、符号化効率を低下させる可能性がある。
【０２５３】
さらに、以下に概略的に述べるアプリケーション例は、画像サンプルのブロックの間の近接部分、すなわち、符号化または復号化されるシンタックス要素が関連する近接ブロックおよびその属性に基づいてコンテクストモデルの割り当てが行われる現在のブロックをより良好に定義付けるために、および近接ブロックが現在のブロックを含む現在のマクロブロックの境界または周囲を超えて配置される場合、現在のブロックを含む現在のマクロブロック対領域が、第１または第２の分布のタイプのいずれのタイプであるか、すなわち、フレーム符号化されているかまたはフィールド符号化されているか、に基づいて、近接ブロックを含むマクロブロックの判定を行うことが重要であるということを利用する。
【０２５４】
これらのブロックはマクロブロックであるかまたはそのサブパートであってよい。どちらの場合も、近接ブロックの判定は、少なくとも、近接ブロックが現在のマクロブロックの境界を超えて配置されている限り、近接マクロブロックを決定することを含む。
【０２５５】
図２８は、本発明が適用されうるビデオエンコーダ環境を一般的に示す図である。ビデオフレーム２０１０の画像はビデオプリコーダ２０１２へ供給される。ビデオプリコーダは画像２０１０をいわゆるマクロブロック１０ａの単位で取り扱う。各マクロブロックは画像２０１０のいくつかの画像サンプルを含む。マクロブロックごとに変換係数への変換が実行され、次に変換係数レベルへの量子化が実行される。また、イントラフレーム予測または動き補正は、画素データ上でなく予測される画素値に対するその差分に対して上記のステップを直接実行しないように使用され、これによって、より簡単に圧縮される少数値が得られる。
【０２５６】
プリコーダ２０１２は、結果値、すなわち、プリコードされたビデオ信号を出力する。変換係数レベルまたはスキップされた変換係数レベルを表す有意マップなどの変換係数の符号化に関連している、プリコードされたビデオ信号における全ての残留データ要素は、残留データシンタックス要素と呼ばれる。残留データシンタックス要素以外に、プリコーダ２０１２によって出力されるプリコードされたビデオ信号は、各マクロブロックがどのようにして符号化されたかおよび復号化される必要があるかのそれぞれに関するコントロール情報を含むコントロール情報シンタックス要素を含む。言い換えれば、シンタックス要素は、２つのカテゴリに分割可能である。第１のカテゴリにおいて、制御情報のシンタックス要素は、たとえば、マクロブロックタイプ、サブマクロブロックタイプ、空間的および時間的の両タイプの予測モードに対する情報だけでなく、スライスベースおよびマクロブロックベースのコントロール情報に関連する要素を含む。第２のカテゴリにおいて、量子化された変換係数のブロック内のすべての有意係数のロケーションを表す有意マップなどの全ての残留データ要素、および量子化ステップに対応するレベルの単位で表される有意係数の値は結合され、すなわち、残留データシンタックス要素となる。
【０２５７】
画像２０１０が分割されるマクロブロックはいくつかのスライスにグループ化される。すなわち、画像２０１０はスライスに再分割される。このような再分割の例を図４３に示す。図中、各ブロックまたは矩形はマクロブロックを表している。スライスごとに、多数のシンタックス要素が、それぞれのスライスのマクロブロックの符号化されたバージョンを形成する、プリコーダ２０１２によって生成される。
【０２５８】
プリコーダ２０１２は、図１〜１７のいずれかに関して上述の実施形態のいずれかによる、図２９により詳細に説明されているエントロピーコーダを含む、最終コーダステージ２０１４へシンタックス要素を転送する。最終コーダステージ２０１４はスライスごとに符号語ストリームを生成する。スライスに対して符号語ストリームを生成する場合、最終コーダステージ２０１４は、各シンタックス要素がエントロピーコーダ２０１４に渡されたビデオ信号のビットストリーム内のある意味をもつデータ値であるという事実を利用する。エントロピーコーダ２０１４は画像２０１０のスライスに対する符号語を含む圧縮された最終の符号化されたビデオビットストリームを出力する。
【０２５９】
図２９は、最終コードビットストリーム内へシンタックス要素を符号化するための全体的に参照番号２１００が付された配置を示す。符号化配置２１００は３段：２１００ａ、２１００ｂ、および２１００ｃに分かれている。
【０２６０】
第１のステージ２１００ａは２値化ステージであって、バイナライザ２１０２を含む。バイナライザ２１０２の入力は、スイッチ２１０６を介して、ステージ２１００ａの入力２１０４に接続されている。同時に、入力２１０４は、符号化配置２１００の入力を形成する。バイナライザ２１０２の出力はステージ２１００ａの出力２１０８に接続され、同時に、ステージ２１００ｂの入力を形成する。スイッチ２１０６は入力２１０４に到達するシンタックス要素をバイナライザ２１０２または２値化ステージ出力２１０８のどちらかに渡すことが可能であり、よって、バイナライザ２１０２をバイパスする。
【０２６１】
スイッチ２１０６の機能は、シンタックス要素が要求する２値化形式内に既にある場合、入力２１０４で実際のシンタックス要素を２値化ステージ出力２１０８へ直接渡すことである。非バイナリ値シンタックス要素と呼ばれる、正確な２値化形式にないシンタックス要素の例は、動きベクトルの差および変換係数レベルである。すでにバイナリ値であるので、２値化する必要がないシンタックス要素の例としては、より詳細に後述する、ＭＢＡＦＦ（ＭＢＡＦＦ＝マクロブロック適応型フレーム／フィールド）符号化モードフラグまたはｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇ、ｍｂ＿ｓｋｉｐ＿ｆｌａｇ、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇがある。２値化でないので２値化される必要があるシンタックス要素の例は、シンタックス要素ｍｂ＿ｔｙｐｅ、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎ、ｒｅｆ＿ｉｄｘ＿ｌ０、ｒｅｆ＿ｉｄｘ＿ｌ１、ｍｖｄ＿ｌ０、ｍｖｄ＿ｌ１、とｉｎｔｒｏ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅを含む。
【０２６２】
異なる２値化方式は２値化されるシンタックス要素に使用される。たとえば、固定長の２値化プロセスはシンタックス要素の値のＬビットの符号なし整数ビンストリングを使用して構成されており、ここで、Ｌは、ｃＭＡＸがシンタックス要素の最大可能値である、合計と等しいかこれより大きい最も近い整数まで切り上げられたｌｏｇ２（ｃＭａｘ＋１）と等しい。ｆｌの２値化のためのビンのインデックス付けは、ゼロのビンインデックスが、最上位ビットに向けてビンのインデックスの値が増加するにつれて、最下位ビットに関係するように行われる。他の２値化方式は、切り捨て単項２値化方式であり、最大可能値ｃＭａｘより小さいシンタックス要素値Ｃは、１と等しいＣより小さいビンインデックスを有するビンと０と等しいＣのビンインデックスを有するビンとを有する長さＣ＋１のビットまたはビンストリングにマッピングされるが、最大可能値ｃＭａｘと等しいシンタックス要素は、対応するビンストリングは全てのビットが後にゼロが続かない１と等しい、長さｃＭａｘのビットストリングである。他の２値化方式は、ｋ番目の指数ゴロム２値化方式であり、ここで、シンタックス要素は、接頭語ビットストリングと、最終的に接尾語ビットストリングから構成されるビンストリングにマッピングされる。
【０２６３】
非バイナリ値をもつシンタックス要素は、スイッチ２１０６を介してバイナライザ２１０２へ渡される。バイナライザ２１０２は非バイナリ値のシンタックス要素を符号語またはいわゆるビンストリングへマッピングすることで、これらのシンタックス要素はバイナリ形式になる。用語「ビン」は、符号化ツリーのルートノードから２値化される非バイナリシンタックス要素の非バイナリ値に対応している符号化ツリーのリーフへ遷移する時、ビットストリングまたは符号語へ非バイナリ値の２値化マッピングを定義付ける符号化ツリーのノードで作成する必要のあるバイナリ決定を意味する。したがって、ビンストリングは、ビンまたはバイナリ決定の列であり、各ビットがバイナリ決定の結果である、同じビット数を有する符号語に対応している。
【０２６４】
バイナライザ２１０２によって出力されるビンストリングは、バイナライザ２１０２によって出力されたビンストリングとバイナライザ２１０２をバイパスする既に２値化されたシンタックス要素とを２値化ステージ出力２１０８において単一ビットストリームへ併合するために、２値化ステージ出力１０８へ直接は渡されないが、バイナライザ２１０２の出力と出力２１０８の間に配置されたビンループオーバー手段２１１０によって出力２１０８へ制御可能に渡される。
【０２６５】
したがって、２値化ステージ２１０８はシンタックス要素を適切な２値化された表現に転送するために使用される。バイナライザ２１０２における２値化手順は、好ましくは、非常に効率的なバイナリエントロピー符号化を可能にするためにシンタックス要素の確率分布に適応される２値化表現を得ることができる。
【０２６６】
ステージ２１００ｂは、コンテクストモデリングステージであり、コンテクストモデラ２１１２およびスイッチ２１１３を含む。コンテクストモデラ２１１２は、入力、出力、および任意のフィードバック入力を含む。コンテクストモデラ２１１２の入力は、スイッチ２１１３を介して、２値化ステージ出力２１０８に接続されている。コンテクストモデラ２１１２の出力はステージ２１００ｃの正規の符号化入力端子２１１４に接続されている。スイッチ２１１３の機能は、コンテクストモデラ２１１２またはステージ２１００ｃのバイパス符号化入力端子２１１６のいずれかへの２値化ステージ出力２１０８におけるビン列のビットまたはビンを渡すことであり、これによりコンテクストモデラ２１１２をバイパスする。
【０２６７】
スイッチ２１１３の目的は、ステージ１００ｃで行われる後続のバイナリエントロピー符号化を容易にすることである。より正確には、バイナライザ２１０２により出力されたビンストリング内のビンのいくつかはヒューリスティックにほぼ等しい等確率分布を示す。これは、対応するビットがほぼ５０％の確率で１であり、ほぼ５０％の確率で０であり、または、言い換えれば、ビンストリング内のこのビンに対応しているビットは１または０になる確率が５０／５０であることを意味する。これらのビンはバイパス符号化入力端子２１１６へ送られ、一定であることからオーバーヘッドの適応または更新を必要としない等しい確率の確率予測の使用によりバイナリエントロピー符号化される。すべての他のビンに対して、これらのビンの確率分布がステージ２１００ａによって出力される他のビンに依存しており、これによって、この確率分布は、例示的なシンタックス要素に関して以下に例としてより詳細に説明するそれぞれのビンのバイナリエントロピー符号化に使用される確率予測を適応または更新するだけの価値があるようにヒューリスティックに決定される。よって、後者のビンはスイッチ２１１３によりコンテクストモデラ２１１２の入力端子へ供給される。
【０２６８】
コンテクストモデラ２１１２は、コンテクストモデルの集合を管理する。コンテクストモデルごとに、コンテクストモデラ２１１２は実際のビットまたはビン値の確率分布予測を格納している。コンテクストモデラ２１１２の入力に到達するビンごとに、コンテクストモデラ２１１２はコンテクストモデルの集合の１つを選択する。すなわち、コンテクストモデラ２１１２はコンテクストモデルの集合の１つにビンを割り当てる。ビンのコンテクストモデルへの割当ては、同じコンテクストモデルに属しているビンの実際の確率分布が同じまたは同様の挙動を示すことで、あるコンテクストモデルに対するコンテクストモデラ２１１２内に格納された実際のビットまたはビン値の確率分布予測は、このコンテクストモデルに割り当てられるすべてのビンに対して、実際の確率分布の良好な近似となる。本発明による割り当てプロセスは近接ブロックのシンタックス要素間の空間的な関係を利用する。この割り当てプロセスを以下に詳細に説明する。
【０２６９】
入ってくるビンにコンテクストモデルを割り当てた場合、コンテクストモデラ２１１２は、このビンが割り当てられているコンテクストモデルの確率分布予測と一緒に、さらに、エントロピー符号化ステージ２１００ｃへビンを渡す。この測度によって、コンテクストモデラ２１１２はエントロピー符号化ステージ２１００ｃを駆動して、コンテクストモデラ２１１２によって示される切り替えられたビット値の確率分布予測に基づいてスイッチ２１１３によってコンテクストモデラ２１１２のビン入力の符号化された表現としてビット列を生成する。
【０２７０】
また、コンテクストモデラ２１１２は、シンタックス要素とビンが派生した画像またはビデオフレームの特性または属性へコンテクストモデルごとに確率分布予測を適応させるために、コンテクストモデルごとに確率分布予測を連続的に更新する。予測適応あるいは予測更新は、コンテクストモデラ２１１２がステージ２１００ｃからフィードバックライン２１１７に渡ってフィードバック入力において受信するかまたはこれを一時的に格納する過去または先行のビットまたはビンの値に基づいて行われる。よって、言い換えれば、コンテクストモデラ２１１２はエントロピー符号化ステージ２１００ｃに渡されたビン値に応答して確率予測を更新する。より正確には、コンテクストモデラ２１１２は、このビン値のコンテクストモデルに関連付けられた確率予測の適応または更新に対してのみ、あるコンテクストモデルに割り当てられたビン値を使用する。
【０２７１】
同じビンまたは同じシンタックス要素がステージ２１００ａから渡されたビンにおいて何回か出現する場合、シンタックス要素のいくつかは、例示的なシンタックス要素に関して以下に詳細に説明するように、これらが出現するたびに、前に入ってきたまたは前にエントロピー符号化されたビンに応じて、および／または、近接ブロックの前に符号化されたシンタックス要素などの他の状況に応じて、異なるコンテクストモデルへ割り当てられることができる。
【０２７２】
バイナリエントロピー符号化に使用される確率予測が最初にコードとその効率を決定するとともに確率予測が符号化中に常に実際の確率分布を非常に効果的に近似化するようにかなりの程度までシンタックス要素とビンの統計的依存を利用する適切なモデルを有することが最も重要であることは、上記から明らかである。
【０２７３】
符号化配置１００の第３のステージ２１００ｃは、エントロピー符号化ステージである。この第３のステージ２１００ｃは、正規の符号化エンジン２１１８、バイパス符号化エンジン２１２０、およびスイッチ２１２２を含む。正規の符号化エンジン２１１８は入力および出力端子を備えている。正規の符号化エンジン２１１８の入力端子は正規の符号化入力端子２１１４に接続されている。正規の符号化エンジン２１１８は、コンテクストモデラ２１１２から渡されたコンテクストモデルを使用して、コンテクストモデラ２１１２から渡されたビン値をバイナリエントロピー符号化し、符号化されたビットを出力する。また、正規の符号化エンジン２１１８は、フィードバックライン２１１７に渡って、コンテクストモデラ２１１２のフィードバック入力へ、コンテクストモデル更新に対するビン値を渡す。正規の符号化エンジンは図１〜１７の上述の実施形態のいずれかに対応している。但し、それぞれのビンと、対応する確率インデックスに対するコンテクストの設定については、上述の実施形態の割当部はコンテクストモデラ内に部分的に組み込まれる。上述したように、割当部は、このようにして得られたパラメータを選択部１８へ転送する前に確率インデックスを量子化しうり、この選択部１８はそれぞれのエントロピーエンコーダを選択する。
【０２７４】
バイパス符号化エンジン２１１２も入力および出力端子を有し、入力端子はバイパス符号化入力端子２１１６に接続されている。バイパス符号化エンジン２１２０は、静的な所定の確率分布予測を使用してスイッチ２１１３を介して２値化ステージ出力２１０８から直接渡されたビン値をバイナリエントロピー符号化するために使用され、また、符号化されたビットを出力する。バイパス符号化エンジンは任意の数のシンボルの単位における１：１のマッピングを使用し得る。
【０２７５】
正規の符号化エンジン２１１８とバイパス符号化エンジン２１２０から出力された符号化されたビットはスイッチ２１２２によって符号化配置２１００の出力２１２４において単一ビットストリームへ併合され、ビットストリームは入力端子２１０４の入力としてシンタックス要素のバイナリエントロピー符号化されたビットストリームを表している。よって、正規の符号化エンジン２１１８とバイパス符号化２１２０は、適応型または静的確率分布モデルのいずれかに基づいてエントロピー符号化をビット単位に実行するように協働する。
【０２７６】
符号化配置２１００の演算について図２８と図２９に関して概して説明したが、近接ブロックのシンタックス要素に基づいてコンテクスト割当てプロセスが使用される例示的なシンタックス要素の取り扱いに関して、実施形態に沿って、その機能を以下により詳細に説明する。このため、まず図３０〜図３１Ｂに関して、現在ブロックと、ＭＢＡＦＦの場合に現在ブロックに関するシンタックス要素へのコンテクストモデルの割当て中に使用される近接ブロックとの間の近接性の定義付けをより良好に理解することを可能にするために、ＭＢＡＦＦ符号化の意味が説明される。
【０２７７】
図３０は、画像または復号化されたビデオフレーム２０１０を示す。ビデオフレーム２０１０はマクロブロック対１０ｂに空間分割されている。マクロブロック対は行２２００と列２２０２のアレイで配置されている。各マクロブロック対は２つのマクロブロック２０１０ａから成る。
【０２７８】
各マクロブロック１０ａをアドレスできるようにするために、マクロブロック２０１０ａに対して列が定義付けられる。このために、各マクロブロック対において、マクロブロック対の１つはトップマクロブロックとして指定されるのに対し、他の１つはボトムマクロブロックとして指定され、トップおよびボトムマクロブロックの意味は、図３１Ａと図３１Ｂに沿って説明されるプリコーダ２０１２（図２８）によってマクロブロック対が符号化されるモードに依存する。したがって、各マクロブロック対の行２２００は２つのマクロブロック行：マクロブロック対のライン２２００のマクロブロック対におけるトップマクロブロックから成るトップマクロブロック行２２００ａと、マクロブロック対のボトムマクロブロックを含むボトムマクロブロック行２００ｂから成る。
【０２７９】
本実施例によれば、左上のマクロブロック対のトップマクロブロックはアドレスゼロに存在する。次のアドレス、すなわち、アドレス１は、左上のマクロブロック対のボトムマクロブロックに割り当てられる。同じく、すなわち、トップマクロブロック行２２００ａにおけるマクロブロック対のトップマクロブロックのアドレスは、２、４、．．．、２ｉ−２であり、アドレスが左から右に上昇しており、ｉはマクロブロックまたはマクロブロック対の単位で画像幅を表している。トップマクロブロック対の行２２００のマクロブロック対のボトムマクロブロックにはアドレス１、３、．．．、２ｉ−１が割り当てられ、アドレスは左から右へ上昇する。マクロブロック２０１０ａを表すボックスに書き込まれた数字および弓状の行によって図３０において示されるように、２ｉから４ｉ−１までの次の２ｉアドレスは、上部から順に次のマクロブロック対の行のマクロブロック対のマクロブロックに割り当てられる。
【０２８０】
図３０はマクロブロックよりむしろ、マクロブロック対の単位で画像２０１０の空間的な再分割を示していることを強調する。各マクロブロック対２０１０ｂは画像の空間的矩形領域を表している。具体的なマクロブロック対２０１０ｂの空間的な矩形領域内にある画像２０１０のすべての画像サンプルまたは画素（図示しない）はこのマクロブロック対に属している。具体的な画素または画像サンプルがマクロブロック対のトップまたはボトムマクロブロックに属しているかどうかはプリコーダ２０１２が、以下に詳細に説明するように、そのマクロブロック対のマクロブロックを符号化した際のモードに依存する。
【０２８１】
図３１Ａは、その左側に、マクロブロック対２０１０ｂに属している画素または画像サンプルの配置を示している。示されるように、画素は行および列のアレイ内に配置される。図示されている各画素は、図３１Ａの以下の説明を簡単にするために数字で示されている。図３１Ａに示されるように、画素の一部はｘで示され、他はΥで示されている。ｘで示される全ての画素は画像の第１のフィールドに属しており、Υで示される他の画素は画像の第２のフィールドに属している。同じフィールドに属する画素は画像の他の行内に配置される。画像またはビデオフレームは２つのインターリーブされたフィールド：トップフィールドとボトムフィールドを含むとみなすことができる。トップフィールドは、Υで示される画素を含み、偶数行、２ｎ＋２、２ｎ＋４、２ｎ＋６、．．．を含み、２ｎは１つの画像またはビデオフレームの行の数であり、ｎは０と等しいかこれより大きい整数である。ボトムフィールドはフレームの第２のラインから開始される奇数行を含む。
【０２８２】
マクロブロック対２０１０ｂが属しているビデオフレームは、たとえば、ボトムフィールド前にトップフィールドが来るような、２つのフィールドが異なる時刻でキャプチャされたインターレースフレームであると想定される。マクロブロック対の画素または画像サンプルは、それぞれのマクロブロック対がプリコーダ２０１２（図２８）によってプリコードされるモードに応じて、マクロブロック対のトップまたはボトムマクロブロックに異なって割り当てられる。理由を以下に示す。
【０２８３】
図２８に関して上述したように、輝度、すなわち、ルマと、色度、すなわち、クロマのサンプルであってよい、マクロブロックの画像サンプルは、プリコーダ２０１２によって空間的または時間的に予測されうり、得られる予測残留値は残留データのシンタックス要素を得るために変換符号化を使用して符号化される。動く物体やカメラの動きの領域をもつ、インターレースフレーム（および現在のビデオフレームがインターレースフレームであることが想定される）において、画素の２つの隣り合う行は、両方のフィールドが同じ時刻にキャプチャされるプログレッシブなビデオフレームと比較した場合に削減された統計的依存度を示す傾向がある。したがって、このような動く物体やカメラの動きの場合、上述したように、マクロブロック上で動作するプリコーダ２０１２によって実行されたプリコードは、マクロブロック対がマクロブロック対の上半分領域を表すトップマクロブロックとマクロブロック対の下半分領域を表すボトムマクロブロックへ空間的に再分割された時に、圧縮効率が低下させる可能性があるにすぎない。というのは、この場合、両方のマクロブロック：トップおよびボトムマクロブロックは、トップフィールドとボトムフィールドの画素を含むからである。この場合、プリコーダ２０１２が、フィールドを個別に符号化すること、すなわち、トップフィールド画素をトップマクロブロックへ割り当て、ボトムフィールド画素をボトムフィールドマクロブロックへ割り当てることがより効率的であろう。
【０２８４】
マクロブロック対の画素がトップおよびボトムマクロブロックにどのように割り当てられているかを説明するために、図３１Ａ、３１Ｂは、フレームとフィールドモードのそれぞれの場合に得られるトップおよびボトムマクロブロックを右手側に示している。
【０２８５】
図３１Ａは、フレームモード、すなわち、各マクロブロック対が空間的に上半分と下半分のマクロブロックに分割されている場合を示している。図３１Ａは、フレームモードで符号化される場合に定義付けられる場合のトップマクロブロックを２２５０で、ボトムマクロブロックを２２５２で示す。フレームモードは両方向矢印２２５４で示されている。図に示すように、トップマクロブロック２５０はマクロブロック対２０１０ｂの画素サンプルの半分を含み、他の画像サンプルはボトムマクロブロック２２５２へ割り当てられる。より具体的には、上半分行の２ｎ＋１〜２ｎ＋６とナンバリングされた画像サンプルはトップマクロブロック２２５０に属しているが、マクロブロック対１０ｂの行２ｎ＋７〜２ｎ＋１２を含む下半分の画像サンプル９１〜９６、０１〜０６、１１〜１６はボトムマクロブロック２２５２に属する。このように、フレームモードで符号化される場合、マクロブロック２２５０と２２５２の両方は、ｘで示される最初の時刻でキャプチャされた第１のフィールドの画像素子と、Υで示される第２の異なる時刻でキャプチャされた第２のフィールドの画像サンプルと、の両方を含む。
【０２８６】
カメラなどによって出力される時の画素のトップまたはボトムマクロブロックへの割り当ては、フィールドモードによって若干異なる。図３１Ｂにおいて両方向矢印２２５６により示されるように、フィールドモードで符号化される場合、マクロブロック対２０１０ｂのトップマクロブロック２２５２はｘで示されるトップフィールドの全ての画像サンプルを含むが、ボトムマクロブロック２２５４はΥで示されるボトムフィールドの全ての画像サンプルを含む。したがって、フィールドモード２２５６に基づいて符号化される場合、マクロブロック対内の各マクロブロックは、トップおよびボトムフィールドの画像サンプルの混合というより、単に、トップフィールドの画像サンプルまたはボトムフィールドの画像サンプルのいずれかを含む。
【０２８７】
ここで、画像のマクロブロック対への空間的分割およびマクロブロック対内の画像サンプルのマクロブロック対のトップまたはボトムのマクロブロックのいずれかへの割当てについて説明してきたが、この割当ては、マクロブロック対またはマクロブロック対のマクロブロックがプリコーダ２０１２によって符号化されるモードに依存している。プリコーダ２０１２によって出力されるプリコードされたビデオ信号に含まれるシンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの機能と意味を説明すると同時に、単にフィールドまたはフレーム符号化されたフレームに対するＭＢＡＦＦ符号化されたフレームの利点を説明するために、ここでもまた、図２８を参照されたい。
【０２８８】
プリコーダ２０１２がインターレースされたビデオフレームを表すビデオ信号を受信すると、プリコーダ２０１２は、ビデオフレーム２０１０を符号化する時に以下の決定を自在に行うことができる：
【０２８９】
―プリコーダは、１つの単一符号化フレームとしてこれらを符号化するために２つのフィールドを結合し、これにより、各マクロブロック対と各マクロブロックはフレームモードで符号化されうる。
【０２９０】
―あるいは、２つのフィールドを結合して、これらを個別の符号化されたフィールドとして符号化し、これにより各マクロブロック対と各マクロブロックはフィールドモードで符号化されうる。
【０２９１】
―最後のオプションとして、２つのフィールドを結合してこれらを単一フレームとして圧縮するが、このフレームを符号化する際、マクロブロック対を符号化する前に、マクロブロック対を２つのフィールドマクロブロックの対かまたは２つのフレームマクロブロックの対のいずれかに分割する。
【０２９２】
３つのオプションからの選択は列内のフレームごとに適応可能に行うことができる。最初の２つのオプションからの選択は画像適応型フレーム／フィールド（ＰＡＦＦ）符号化と呼ばれる。フレームが２つのフィールドとして符号化される場合、各フィールドはマクロブロックに分割され、フレームに非常に類似した方法で符号化される。
【０２９３】
フレームが、いくつかの領域が移動するが、他が移動しない混合領域から成る場合、一般に、フレームモードでは非移動領域を符号化し、移動領域をフィールドモードで符号化することがより効率的である。したがって、フレーム／フィールド符号化はフレーム内のマクロブロックの縦の対ごとに個別に決定することができる。これは、上に示した選択肢の第３の符号化の選択肢である。この符号化オプションはマクロブロック適応型フレーム／フィールド（ＭＢＡＦＦ）符号化と呼ばれている。以下に、プリコーダ２０１２がこのオプションだけを使用する決定をしたと想定する。上述のように、ＭＢＡＦＦ符号化は、符号化モードタイプ（フィールドまたはフレームモード）をシーンの各領域へより良好に適応させることを可能にする。たとえば、プリコーダ２０１２は、フレームモードにおいてビデオシーンの固定領域に配置されているマクロブロック対を符号化する一方、フィールドモードにおいて速い動きを示すシーンの領域内のマクロブロック対を符号化する。
【０２９４】
上述のように、フレームモードで符号化されたマクロブロック対に対して、各マクロブロックはフレームラインを含む。フィールドモードで符号化されたマクロブロック対に対して、トップマクロブロックはトップフィールドラインを含み、ボトムマクロブロックはボトムフィールドラインを含む。マクロブロック対ごとのフレーム／フィールドは、プリコーダ２０１２によってマクロブロック対レベルで決定される。すなわち、トップマクロブロックがフィールド符号化される場合、これが、同じマクロブロック対内にあるボトムマクロブロックにも適用される。この測度によって、基本的なマクロブロック処理構造がそのまま維持されており、動き補正領域はマクロブロックと同サイズにすることが許可される。
【０２９５】
フィールドマクロブロック対の各マクロブロックはＰＡＦＦ符号化のフィールド内のマクロブロックに非常に同様に処理される。しかし、フィールドとフレームのマクロブロック対の混合がＭＢＡＦＦフレーム内で出現することもあるので、この混合を説明にするためにＰＡＦＦ符号化と比較した場合、動きベクトルの予測、イントラ予測モードの予測、イントラフレームサンプル予測、エントロピー符号化におけるデブロックフィルタリングおよびコンテクストモデリング、および変換係数のジグザグスキャンなどの、プリコーダ２０１２におけるプリコード手順のいくつかの工程が変更される。
【０２９６】
要約すると、プリコーダ２０１２によって出力されるプリコードされたビデオ信号は、使用を決定した符号化プリコーダ２０１２のタイプに依存する。本明細書で想定されるように、ＭＢＡＦＦ符号化の場合、プリコードされたビデオ信号は、スキップされなかったマクロブロック対の各々に対して、フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇを含む。フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇは、各マクロブロック対に対して、対応するマクロブロックがフレームまたはフィールド符号化モードのいずれで符号化されるかということに属していることを示す。デコーダサイドにおいて、このフラグはプリコードされたビデオ信号を正確に復号化するために必要とされる。マクロブロック対のマクロブロックがフレームモードで符号化される場合、フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇはゼロであり、他の場合においてこのフラグは１である。
【０２９７】
さて、図２９の元のデコーダの配置の一般的な演算モードを特別なビンに言及せずに説明したが、図３２では、ＭＢＡＦＦ符号化モードがアクティブである間に近接ブロックのシンタックス要素間の空間的な関係性が使用される、例示的なシンタックス要素のビンストリングのバイナリエントロピー符号化に関して、この配置の機能性を説明する。
【０２９８】
図３２に示したプロセスはコンテクストモデラ２１１２の入力でのシンタックス要素のビン値の到達時にスタートする。すなわち、最終的に、シンタックス要素は、必要に応じて、すなわち、シンタックス要素がすでにバイナリ値でない場合、バイナライザ２１０２において２値化される必要があった。最初のステップ２３００において、コンテクストモデラ２１１２は、入ってくるビンが、近接シンタックス要素、すなわち、近接ブロック内のシンタックス要素に基づくコンテクスト割当て専用のビンであるかを判定する。図３２の説明は、ＭＢＡＦＦ符号化がアクティブであることを想定することが想起される。ステップ２３００で、入ってくるビンが近接するシンタックス要素に基づくコンテクスト割当て専用のビンではないと判定された場合、ステップ２３０４において、他のシンタックス要素のハンドリングが実行される。第２の場合において、コンテクストモデラ２１１２は入ってくるビンのシンタックス要素が関連している現在ブロックの近接ブロックを判定する。ステップ２３０６の判定プロセスは例示的なシンタックス要素とこれらのビンのそれぞれに関して以下に詳細に説明される。いずれの場合でも、ステップ２３０６における判定は、該当する近接ブロックが現在ブロックを含むマクロブロックの外部ブロックであれば、現在のビンのシンタックス要素が関連しているフレームまたはフィールド符号化される現在マクロブロックに依存する。
【０２９９】
次に、ステップ２３０８において、コンテクストモデラ２１１２は、近接ブロックの所定の属性に基づいてビンへコンテクストモデルを割り当てる。割り当てステップ２３０８によって、現在のシンタックス要素の現在のビンのバイナリエントロピー符号化のために使用される、確率モデルへ各コンテクストインデックスを割り当てるテーブル内のそれぞれのエントリを指し示す、コンテクストインデックスｃｔｘＩｄｘを得る。
【０３００】
ｃｔｘＩｄｘの決定後、コンテクストモデラ２１１２は、現在のビン自体と一緒に、ｃｔｘＩｄｘによりインデックス付けされた変数ｃｔｘＩｄｘまたは確率予測状態を正規の符号化エンジン２１１８へ渡す。これらの入力に基づいて、正規の符号化エンジン２１１８は、ステップ２３２２において、ｃｔｘＩｄｘによりインデックス付けされたコンテクストモデルの現在の確率状態を用いて、ビンをエントロピー符号化する。具体的には、たとえば、インデックスは、それぞれの部分的ビットストリーム２０１２を選択するために使用される。
【０３０１】
その後、正規の符号化エンジン２１１８は、パス２１１７を介してビン値をコンテクストモデラ２１１２へ戻し、これによって、コンテクストモデラ２１１２は、ステップ２３２４において、その確率予測状態に対して、ｃｔｘＩｄｘによりインデックス付けされたコンテクストモデルを適応させる。次に、出力２１２４でビットストリームへシンタックス要素を符号化するプロセスは、２３２６において終了する。
【０３０２】
ステップ２３１０の前にその中にシンタックス要素が２値化され得るビンストリングが、符号化され、すなわち、それぞれの部分的なビットストリーム２０１２に割り当てられ、続いてステップ２３２２のコンテクストモデルｃｔｘＩｄｘの現在確率状態を使用することによって符号化されたビンと、図３２には示さないが、等しい確率の確率予測を使用してバイパス符号化エンジン２１２０において符号化されるビンと、の両方から成りうることを強調する。寧ろ、図３２は単にシンタックス要素の１つのビンの例示的な符号化に関する。
図３２の点線２３２７で囲まれたステップ２３２２および２３２４は、図３３に関してより詳細に説明される。
【０３０３】
図３３の左側は、プロセス２３２７の流れ図を示す。図３３の右側は、コンテクストモデラ２１１２および正規の符号化エンジン２１１８の両方が、具体的な変数をロードし、書き込み、更新するためにアクセスするメモリ２３２８を示している。これらの変数は、バイナリエントロピーコーダ２１００ｃの現在の状態または現在の確率インターバルを定義付けるＲとＬを含む。
【０３０４】
メモリ２３２８は、たとえば、０から２３９８までのｃｔｘＩｄｘの各可能な値と、それぞれのコンテクストインデックスｃｔｘＩｄｘによりインデックス付けされたそれぞれのコンテクストモデルの現在の確率予測状態を定義付ける確率状態対のインデックスσ□とＭＰＳ値ωとを関連付けるテーブル２３２９を含む。確率状態σは、可能な確率値ｐσの集合の１つを一意に識別するインデックスである。確率値ｐσはこのコンテクストモデルの次のビンが最小確率シンボル（ＬＰＳ）になる確率の予測である。可能なビン値のどちらか、すなわち、ＬＰＳがヌルまたは１かどうかはＭＰＳωの値によって示される。ωが１の場合、ＬＰＳは０であり、逆も同じである。したがって、状態インデックスとＭＰＳは共に、それぞれのコンテクストモデルの実際の確率状態または確率予測を一意に定義付ける。
【０３０５】
ステップ２３３４において、実際のビン値は正規の符号化エンジン２１１８へ送信される。
【０３０６】
ステップ２３３６において、正規の符号化エンジン２１１８は、実際のビンの値が、すなわち、現在のシンタックス要素から得られた既に２値化されたシンタックス要素またはビンストリングの１つのビンのいずれかが、ωｉによって示される最大確率シンボルと等しいかどうかをチェックする。現在のビンがＭＰＳである場合、コンテクストモデラ２１１２は、σｉを更新することによって現在のコンテクストモデルの確率予測状態を更新する。具体的には、コンテクストモデラ２１１２は、実際のシンボルやビンが最大確率シンボル、すなわち、σがｔｒａｎｓＩｄｘＭＰＳ（σｉ）であった場合に各確率状態インデックスσを更新された確率状態インデックスと関連付けるテーブル２３４０を使用する。
【０３０７】
ステップ２３３８の後、プロセスは、正規の符号化エンジン２１１８に送信されるビンがその選択部によってそれぞれの部分的ビットストリームエンコーダへ送られる２３４０において終了する。
【０３０８】
ステップ２３３６において、現在のビンが最小確率シンボルＬＰＳであると判定された場合、ステップ２３４４において、σｉが０と等しいかどうか、すなわち、確率状態インデックスが１と０の両方に対して等しい確率を示しているかどうかが判定される。次に、値ＭＰＳはωｉ＝１−ωｉを計算することによって更新される。次に、ステップ２３４６において、確率状態インデックスがテーブル２３４０を使用して実際化される。このテーブル２３４０は、実際のビン値が最小確率シンボルである場合、各現在の確率状態インデックスを更新された確率状態インデックスと関連付ける、すなわち、σｉをｔｒａｎｓＩｄｘＬＰＳ（σｉ）になるように補正する。確率状態インデックスのσｉとωｉがステップ２３４４とステップ２３４６において適応された後、プロセスは既に述べたステップ２３４０へ進む。
【０３０９】
コンテクストモデル割り当てに対する近接ブロックのシンタックス要素間の空間的関係性を利用することによってシンタックス要素の符号化プロセスを説明してきたが、現在のブロックと近接ブロックとの間のコンテクストモデルの割り当てと近接性の定義付けは、プリコーダ２０１２による出力としてプリコードされたビデオ信号内に含まれる以下のシンタックス要素に関して、以下に詳細に説明する。これらのシンタックス要素を以下に列挙する。
【表８】
2013528025.tif 000130
2013528025.tif 000131
2013528025.tif 000132
【０３１０】
上記の表からわかるように、これらのシンタックス要素のいくつかは全体として現在のマクロブロックに関しており、他は、サブパート、すなわち、現在マクロブロックのサブマクロブロックまたはそのパーティションに関している。同様に、コンテクストモデルのこれらのシンタックス要素への割り当ては、近接マクロブロック、近接サブマクロブロック、またはその近接パーティションのいずれかのシンタックス要素に依存している。図３６は、マクロブロック（上行）とサブマクロブロック（下行）のパーティションを示す。図３６に示すように、これらのパーティションはインター予測に対してスキャンされる。図３６の外側の矩形はそれぞれマクロブロックまたはサブマクロブロックにおけるサンプルを示す。内側の矩形はパーティションを示す。各内側の矩形の数字は、マクロブロックパーティション逆スキャンまたはサブマクロブロックパーティション逆スキャンのインデックスを特定している。
【０３１１】
近接ブロックのシンタックス要素についてコンテクストモデルの割り当ての依存関係を詳細に説明する前に、図３４では、符号化される現在シンタックス要素を含む現在ブロックの左および上のブロック内にシンタックス要素を含む可能な候補であるので、現在マクロブロック対の左と上のマクロブロック対のトップマクロブロックのアドレスがどのように計算されるかが示されている。空間的な関係を説明するために、図３４は、ビデオフレームの６個のマクロブロック対の一部を示し、ここで、図３４の各矩形領域は、１つのマクロブロックに対応し、各列の第１と第２の２つの縦に隣接するマクロブロックは、マクロブロック対を形成する。
【０３１２】
図３４において、ＣｕｒｒＭｂＡｄｄｒは、現在のシンタックス要素が関連付けられているかまたは関係している、現在のマクロブロック対のトップマクロブロックのマクロブロックアドレスを示している。現在のマクロブロック対は、太線で囲まれている。言い換えれば、これらは、マクロブロック対の境界付けをしている。ｍｂＡｄｄｒＡとｍｂＡｄｄｒＢはそれぞれ、現在のマクロブロック対の左側と上側に対するマクロブロック対のトップマクロブロックのアドレスを示している。
【０３１３】
現在のマクロブロック対の左および上方に対する近接するマクロブロック対のトップマクロブロックのアドレスを計算するために、コンテクストモデラ２１１２は以下式を計算する。
ＭｂＡｄｄｒＡ＝２・（ＣｕｒｒＭｂＡｄｄｒ／２−１）
ＭｂＡｄｄｒＢ＝２・（ＣｕｒｒＭｂＡｄｄｒ／２−ＰｉｃＷｉｄｔｈＩｎＭｂｓ）
【０３１４】
ここで、ＰｉｃＷｉｄｔｈＩｎＭｂｓはマクロブロックの単位内の画像を指定する。上記に付与されている等式は図３０を参照することによって理解される。図３０においてマクロブロック単位の画像幅はｉで示されていることに留意されたい。上に与えられている等式は、上の等式において、「／」が結果のトランザクションがゼロに向かう整数除算を示すので、現在のマクロブロックアドレスＣｕｒｒＭｂＡｄｄｒｅｓｓが現在のマクロブロック対のボトムマクロブロックの奇数番号が付されたマクロブロックアドレス、すなわち、ＣｕｒｒＭｂＡｄｄｒｅｓｓ＋１と交換されたときに真であることにさらに留意されたい。たとえば、７／４と−７／−４が１に切り捨てられ、−７／４と７／−１は−１に切り捨てられる。
【０３１５】
さて、近接マクロブロックをどのように計算するかを説明したが、各マクロブロックが１６×１６のルマサンプルを含むことが単に想起される。これらのルマサンプルは、４つの８×８のルマブロックに分割されている。これらのルマブロックは４×４のルマブロックにさらに分割することもできる。また、以下の説明のために、各マクロブロックは、８×８のルマサンプルをさらに含み、すなわち、ルマサンプルと比較してクロマサンプルの画素幅は倍増している。マクロブロックのこれらの８×８のクロマサンプルは４つの４×４ルマブロックに分割されている。マクロブロックのブロックは番号付けされている。したがって、４つの８×８ルマブロックは各々、マクロブロック内の各８×８ブロックを一意に示すそれぞれのブロックアドレスを有している。次に、マクロブロック内の各ピクセルサンプルは位置（ｘ、ｙ）に属しており、（ｘ、ｙ）はマクロブロックの左上のルマまたはクロマサンプルに対して現在のブロックの左上のサンプルのルマまたはクロマロケーションを示している。たとえば、図３１Ｂのトップマクロブロック２２５２内の画素２０２３は、ルマサンプルに対して、画素位置（２、１）、すなわち、３列目、２行目を有しうる。
【０３１６】
これを説明したが、上記の表に記載されたシンタックス要素のビンの少なくともいくつかに対するｃｔｘＩｄｘの導出プロセスを説明する。
【０３１７】
シンタックス要素ｍｂ＿ｓｋｉｐ＿ｆｌａｇに関して、コンテクストモデラの割当ては近接マクロブロックに関連するシンタックス要素に依存する。したがって、コンテクストインデックスｃｔｘＩｄｘを決定するために、アドレスｍｂＡｄｄｒＡとｍｂＡｄｄｒＢは上記のように決定される。次に、ｃｏｎｄＴｅｒｍＮ（ＮはＡまたはＢのいずれかである）を次のように設定されている変数であるとする。
・ｍｂＡｄｄｒＮが利用できない、または、マクロブロックｍｂＡｄｄｒＮのためのｍｂ＿ｓｋｉｐ＿ｆｌａｇが１と等しい場合、ｃｏｎＴｅｒｍＮは０に設定される。
・それ以外の場合、ｃｏｎｄＴｅｒｍＮは１に設定される。
・ｃｔｘＩｄｘは、コンテクストインデックス増分子ｃｔｘＩｄｘＩｎｃ＝ｃｏｎＴｅｒｍＡ＋ｃｏｎｄＴｅｒｍＢに基づいて得られる。
【０３１８】
シンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇに対して、ｃｔｘＩｄｘは次のように決定される：
ｃｏｎｄＴｅｒｍＮ（ＮはＡまたはＢのいずれかである）は次のように設定されている変数であるとする。
・次の条件のいずれかが真である場合、ｃｏｎｄＴｅｒｍＮが０に設定され、
・ｍｂＡｄｄｒＮは利用できない。
・マクロブロックｍｂＡｄｄｒＮはフレームマクロブロックである。
・それ以外の場合、ｃｏｎｄＴｅｒｍＮは１に設定される。
ｃｔｘＩｄｘはコンテクストインデックス増分子ｃｔｘＩｄｘＩｎｃ＝ｃｏｎｄＴｅｒｍＡ＋ｃｏｎｄＴｅｒｍＢに基づいて得られる。
ここで、（（（ＣｕｒｒＭｂＡｄｄｒ／２）％（ＰｉｃＷｉｄｔｈＩｎＭｂｓ））＝０）であれば、ｍｂａｄｄｒＮは利用できない。
【０３１９】
シンタックス要素Ｍｂ＿ｔｙｐｅの場合、ｃｔｘＩｄｘは、マクロブロックｍｂＡｄｄｒＮ（ＮはＡまたはＢのいずれかである）の利用可能性とこの近接マクロブロックのシンタックス要素Ｍｂ＿ｔｙｐｅに依存して決められる。
【０３２０】
上記の表に記載されている他のシンタックス要素に対して、コンテクストモデラ割当ての依存度が定義づけられる。ここで、マクロブロックより小さいブロックに関連するシンタックス要素の場合、この割当てはマクロブロックより小さいこのようなより小さなブロックに関連しているシンタックス要素に依存している。たとえば、シンタックス要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎの場合、コンテクストインデックスの割り当ては、マクロブロックＭｂＡｄｄｒＮの利用可能性とマクロブロックＭｂＡｄｄｒＮのシンタックス要素Ｍｂ＿ｔｙｐｅだけでなく、近接ブロックのシンタックス要素Ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎに依存する。また、上記のシンタックス要素がすべて近接ブロックのそれぞれのシンタックス要素に依存していることは注目に値する。これとは別に、シンタックス要素ｍｖｄ＿ｌ０、ｍｖｄ＿ｌ１、ｒｅｆ＿ｉｄｘ＿ｌ０とｒｅｆ＿ｉｄｘ＿ｌ１のコンテクストモデル割り当ては、近接ブロックのそれぞれのシンタックス要素に依存しない。ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅに対するコンテクストモデラ割り当ては、ｍｂＡｄｄｒＮの利用可能性、マクロブロックｍｂＡｄｄｒＮがインター予測モードで符号化されるか否か、マクロブロックｍｂＡｄｄｒＮに対するＭｂ＿ｔｙｐｅ、およびマクロブロックＭｂＡｄｄｒＮに対するシンタックス要素ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅに依存する。シンタックス要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇコンテクストモデル割り当ては、ＭｂＡｄｄｒＮの利用可能性、インター予測モードで符号化された現在のマクロブロック、マクロブロックｍｂＡｄｄｒＮに対するＭｂ＿ｔｙｐｅ、および近接ブロックのシンタックス要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇに依存する。
【０３２１】
以下において、近接ブロックがどのように決定されるかを説明する。具体的には、これは、ｍｂＡｄｄｒＮとマクロブロックＭｂＡｄｄｒＮのサブパートをインデックス付けするブロックインデックスの計算を含み、このサブパートは現在のブロックの近接ブロックである。
【０３２２】
本発明の一実施形態によれば、以下に説明するように、マクロブロック適応型フレーム／フィールド符号化を使用するスライスに対する近接性は、ＭＢＡＦＦフレーム内部のコンテクスト適応型バイナリエントロピー符号化におけるコンテクストモデリングに使用される近接ブロックによってカバーされる領域が現在のブロックでカバーされる領域と隣り合うことを保証するように定義付けられる。一般に、これは、符号化プロセス中に予測される条件的確率の方がより信頼できるので、各マクロブロック対を本明細書の導入部分で説明したコンテクストモデリングのためのフレームのマクロブロック対と見なした場合に比較して、ＭＢＡＦＦスライスの符号化に関連してここで使用するコンテクスト適応型エントロピー符号化方式の符号化効率を改良させる。
【０３２３】
現在のブロックと基準ブロックとの間の近接性を定義付ける一般概念は次のセクション１．１に説明されている。セクション１．２では、現在のブロック、マクロブロック、またはパーティションの左および上方に対する近接ブロック、マクロブロック、またはパーティションがコンテクスト適応型バイナリエントロピー符号化のコンテクストモデリングを目的としていかにして取得されるかを明記する詳細な説明がなされる。
【０３２４】
１．１．一般的な概念による近接性の定義
（ｘ、ｙ）を、画像ＣｕｒｒＰｉｃの左上のルマまたはクロマサンプルに関して現在のブロックの左上のサンプルのルマまたはクロマロケーションを示すとする。変数ＣｕｒｒＰｉｃは、現在のブロックがフレームモード（ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇが０と等しい）で符号化されたマクロブロック対の一部である場合、トップおよびボトムフィールドをインターリーブすることによって得られる、現在のフレームを指定する。現在のブロックが、トップフィールドマクロブロックであるかその一部である場合、ＣｕｒｒＰｉｃは、現在のフレームのトップフィールドを指定し、現在のブロックが、ボトムフィールドマクロブロックであるかその一部である場合、ＣｕｒｒＰｉｃは、現在のフレームのボトムフィールドを指定する。
【０３２５】
（ｘＡ、ｙＡ）と（ｘＢ、ｙＢ）を画像ＣｕｒｒＰｉｃ内部のロケーション（ｘ、ｙ）の左および上方に対するルマまたはクロマロケーションをそれぞれ示すとする。ロケーション（ｘＡ、ｙＡ）と（ｘＢ、ｙＢ）は次のように指定される。
（ｘＡ、ｙＡ）＝（ｘ−１、ｙ）
（ｘＢ、ｙＢ）＝（ｘ、ｙ−１）
【０３２６】
現在のブロックの左側のブロックは、画像ＣｕｒｒＰｉｃの左上のルマまたはクロマサンプルに対するロケーション（ｘＡ、ｙＡ）でルマまたはクロマサンプルを含むブロックとして定義付けられ、現在のブロックの上のブロックは、画像ＣｕｒｒＰｉｃの左上のルマまたはクロマサンプルに対するロケーション（ｘＢ、ｙＢ）でルマまたはクロマサンプルを含むブロックとして定義付けられる。ロケーション（ｘＡ、ｙＡ）または（ｘＢ、ｙＢ）が現在のスライスの外側のロケーションを指定する場合、対応するブロックは利用できないとマークされる。
【０３２７】
１．２．近接性の定義の詳細な説明
セクション１．２．１で説明されているアルゴリズムは、現在のマクロブロックの左上のルマサンプルに関連して表現されているルマサンプルのロケーションが、マクロブロックアドレスへどのようにマッピングされるかを説明するＭＢＡＦＦスライスの一般的な概念を特定している。このマクロブロックのアドレスは対応するルマサンプルをカバーするマクロブロック、およびこのマクロブロックの左上のルマサンプルに関して表現されるルマ度サンプルロケーションを特定している。この概念は、以下のセクション１．２．２〜１．２．６で使用される。
【０３２８】
セクション１．２．２〜１．２．６は、近接マクロブロック、８×８のルマブロック、４×４のルマブロック、４×４のクロマブロック、現在のマクロブロックの左上のパーティション、８×８のルマブロック、４×４のルマブロック、４×４のクロマブロック、またはパーティションがどのように指定されるかを説明する。これらの近接マクロブロック、ブロック、またはパーティションが以下のシンタックス要素に対するＣＡＢＡＣのコンテクストモデリングのために必要とされる：ｍｂ＿ｓｋｉｐ＿ｆｌａｇ、ｍｂ＿ｔｙｐｅ、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎ、ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅ、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇ、ｒｅｆ＿ｉｄｘ＿ｌ０、ｒｅｆ＿ｉｄｘ＿ｌ１、ｍｖｄ＿ｌ０、ｍｖｄ＿ｌ１。
【０３２９】
１．２．１．近接サンプルのロケーションの指定
（ｘＮ、ｙＮ）が、マクロブロックアドレスＣｕｒｒＭｂＡｄｄｒを有する現在のマクロブロックの左上のルマサンプルに関して表された所与のルマサンプルロケーションを示すとする。本実施形態によれば、各マクロブロックが１６×１６のルマサンプルを含むことが想起される。ｘＮ、ｙＮは、−１．．．１６の範囲内にある。ｍｂＡｄｄｒＮを（ｘＮ、ｙＮ）を含むマクロブロックのマクロブロックアドレスとし、（ｘＷ、ｙＷ）を（現在のマクロブロックの左上のルマサンプルに対してではなく）マクロブロックｍｂＡｄｄｒＮの左上のルマサンプルに関して表現されるロケーション（ｘＮ、ｙＮ）であるとする。
【０３３０】
ｍｂＡｄｄｒＡとｍｂＡｄｄｒＢが現在のマクロブロック対の左側のマクロブロック対のトップマクロブロックと現在のマクロブロック対の上のマクロブロック対のトップマクロブロックのマクロブロックアドレスをそれぞれ指定するものとする。ＰｉｃＷｉｄｔｈＩｎＭｂｓをマクロブロック単位の画像幅を指定する変数であるとすると、ｍｂＡｄｄｒＡとｍｂＡｄｄｒＢは次のように指定される。
ｍｂＡｄｄｒＡ＝２＊（ＣｕｒｒＭｂＡｄｄｒ／２−１）
【０３３１】
ｍｂＡｄｄｒＡが０より少ないか、（ＣｕｒｒＭｂＡｄｄｒ／２）％ＰｉｃＷｉｄｔｈＩｎＭｂｓが０と等しいか、またはアドレスｍｂＡｄｄｒＡを有するマクロブロックが現在のスライスとは異なるスライスに属している場合、ｍｂＡｄｄｒＡは利用できないとマークされる。
ｍｂＡｄｄｒＢ＝２＊（ＣｕｒｒＭｂＡｄｄｒ／２−ＰｉｃＷｉｄｔｈＩｎＭｂｓ）
【０３３２】
ｍｂＡｄｄｒＢが０より小さい場合、またはアドレスｍｂＡｄｄｒＢを有するマクロブロックが現在のスライスとは異なるスライスに属している場合、ｍｂＡｄｄｒＢは利用できないとマークされる。
【０３３３】
図３５の表は、次の２つの順序付けられたステップにおいてマクロブロックのアドレスｍｂＡｄｄｒＮと変数ｙＭを指定している：
１．（ｘＮ、ｙＮ）（最初と２番目の列）と以下の変数に基づくマクロブロックアドレスｍｂＡｄｄｒＸ（５番目の列）の指定：
・アドレスＣｕｒｒＭｂＡｄｄｒを有する現在のマクロブロックがフレームマクロブロック対の一部分である場合、変数ｃｕｒｒＭｂＦｒａｍｅＦｌａｇ（３番目の列）は１に設定され、それ以外の場合、０に設定される。
・ＣｕｒｒＭｂＡｄｄｒ％２が０と等しい場合、変数ｍｂ１ｓＴｏｐＭｂＦｌａｇ（４番目の列）は１に設定され、それ以外の場合、０に設定される。
２．ｍｂＡｄｄｒＸ（５番目の列）の利用可能性によっては以下が適用される：
・ｍｂＡｄｄｒＸ（ｍｂＡｄｄｒＡまたはｍｂＡｄｄｒＢのいずれでもよい）が利用できないとマークされている場合、ｍｂＡｄｄｒＮは利用できないとマークされる。
・それ以外の場合（ｍｂＡｄｄｒＸが利用可能である場合）、ｍｂＡｄｄｒＮは利用可能であるとマークされ、表１は、ｍｂＡｄｄｒＮとｙＭを、（ｘＮ、ｙＮ）（最初と２番目の列）、ｃｕｒｒＭｂＦｒａｍｅＦｌａｇ（３番目の列）、ｍｂｌｓＴｏｐＭｂＦｌａｇ（４番目の列）、および以下のように得られる変数ｍｂＡｄｄｒＸＦｒａｍｅＦｌａｇ（６番目の列）に基づいて指定する：
・ｍｂＡｄｄｒＸＦｒａｍｅＦｌａｇは、マクロブロックｍｂＡｄｄｒＸがフレームマクロブロックである場合、１に設定され、それ以外の場合は、０に設定される。
【０３３４】
表１の上記のフラグの未指定の値は、対応するフラグの値が現在の表の行とは無関係であることを示している。
【０３３５】
要約すると、最初の４つの列に、入力値ｘＮ、ｙＮ、ｃｕｒｒＭｂＦｒａｍｅＦｌａｇおよびＭｂｌｓＴｏｐＭｂＦｌａｇが入力される。具体的には、パラメータｘＮ、ｙＮに対して可能な入力値は−１〜１６（−１と１６を含む）である。これらのパラメータは５番目の列に記載のｍｂＡｄｄｒＸ、すなわち、所望されるルマサンプルを含むマクロブロック対を決定する。次の２つの列、すなわち、６番目と７番目の列は、最終出力ｍｂＡｄｄｒＮとｙＮを取得するために必要とされる。これらの更なる入力パラメータは、ｍｂＡｄｄｒＸによって示されるマクロブロック対がフレームまたはフィールド符号化されるかを示すＭｂＡｄｄｒＸＦｒａｍｅＦｌａｇ、および、ｙＮが偶数か奇数か否かまたは８より大きいか８であるか否かに関するいくつかの更なる条件である。
【０３３６】
図に示すように、ｘＮ、ｙＮが共に正またはゼロである場合、すなわち、所望される画素サンプルが、ｘＮ、ｙＮが定義付けられる現在のマクロブロック内にある場合、出力されたマクロブロックアドレスは変化しない。すなわち、それは、ＣｕｒｒＭｂＡｄｄｒと等しい。また、ｙＭはｙＭと等しい。入力ｘＭとｙＭが現在のマクロブロックの外、すなわち、全てが現在のマクロブロックの上部（ｙＮ＜０）の左側（ｘＮ＜０）にある画素サンプルを示す場合、これは変化する。
図３５の表の結果からすると、マクロブロックｍｂＡｄｄｒＮの左上のルマサンプルに対する近接ルマロケーション（ｘＷ、ｙＷ）は、
ｘＷ＝（ｘＮ＋１６）％１６
ｙＷ＝（ｙＭ＋１６）％１６
として指定される。
【０３３７】
上述の考えは単にルマサンプルを例示することに関係するものであることを強調する。マクロブロックは単に８×８のクロマサンプルを含むので、クロマサンプルを考慮する場合、この考えは若干異なる。
【０３３８】
１．２．２．近接マクロブロックの指定
現在のマクロブロックの左および上方の近接マクロブロックの指定は、以下のシンタックス要素に対してＣＡＢＡＣのコンテクストモデリングに使用される。
ｍｂ＿ｓｋｉｐ＿ｆｌａｇ、ｍｂ＿ｔｙｐｅ、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎ、ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄｉｃｔｉｏｎ＿ｍｏｄｅ、とｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇ
【０３３９】
ｍｂＡｄｄｒＡを現在のマクロブロックの左側のマクロブロックのマクロブロックアドレスとし、ｍｂＡｄｄｒＢを現在のマクロブロックの上方のマクロブロックのマクロブロックアドレスとする。
【０３４０】
ｍｂＡｄｄｒＡ、ｍｂＡｄｄｒＢ、およびそれらの利用可能性の状態は以下のように求められる：
・ルマロケーションが（ｘＮ、ｙＮ）＝（−１、０）である場合、セクション１．２．１で説明したように、ｍｂＡｄｄｒＡとその利用可能性の状態が得られる。
・ルマロケーションが（ｘＮ、ｙＮ）＝（０、−１）である場合、セクション１．２．１で説明したように、ｍｂＡｄｄｒＢとその利用可能性の状態が得られる。
【０３４１】
１．２．３．近接８×８ルマブロックの指定
現在の８×８ルマブロックの左および上方の近接８×８のルマブロックの指定は、シンタックス要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎに対するＣＡＢＡＣのコンテクストモデリングに使用される。
【０３４２】
ｌｕｍａ８×８ＢｌｋＩｄｘを、現在のマクロブロックＣｕｒｒＭｂＡｄｄｒ内の現在の８×８ルマブロックのインデックスとする。ブロックインデックスｌｕｍａ８×８ＢｌｋＩｄｘのマクロブロック内のそれぞれのブロックへの割当ての実施形態を図９に示す（右上角）。
【０３４３】
ｍｂＡｄｄｒＡを現在の８×８ルマブロックの左側に８×８のルマブロックを含むマクロブロックのマクロブロックアドレスとし、ｍｂＡｄｄｒＢを現在の８×８ルマブロックの上方に８×８のルマブロックを含むマクロブロックのマクロブロックアドレスとする。さらに、ｌｕｍａ８×８ＢｌｋＩｄｘＡを現在の８×８ルマブロックの左側の８×８ルマブロックの８×８ルマブロックインデックス（マクロブロックｍｂＡｄｄｒＡの中）とし、ｌｕｍａ８×８ＢｌｋＩｄＸＢを現在の８×８ルマブロックの上方の８×８ルマブロックの８×８ルマブロックインデックス（マクロブロックｍｂＡｄｄｒＢの中）とする。
【０３４４】
ｍｂＡｄｄｒＡ、ｍｂＡｄｄｒＢ、ｌｕｍａ８×８ＢｌｋＩｄｘＡ、ｌｕｍａ８×８ＢｌｋＩｄｘＢ、およびそれらの利用可能性の状態は、次のように得られる：
・（ｘＣ、ｙＣ）を現在のマクロブロックの左上のルマサンプルに対する現在の８×８ルマブロックの左上のサンプルのルマロケーションとする。
・ルマロケーション（ｘＮ、ｙＮ）＝（ｘＣ−１、ｙＣ）の場合、ｍｂＡｄｄｒＡ、その利用可能性の状態、およびルマロケーション（ｘＷ、ｙＷ）はセクション１．２．１に説明されているように得られる。ｍｂＡｄｄｒＡが利用可能な場合、ｌｕｍａ８×８ＢｌｋＩｄｘＡが、ルマロケーション（ｘＷ、ｙＷ）をカバーするマクロブロックｍｂＡｄｄｒＡの内部の８×８ルマブロックを指すように設定される。それ以外の場合、ｌｕｍａ８×８ＢｌｋＩｄＡは利用できないとマークされる。
・ルマロケーション（ｘＮ、ｙＮ）＝（ｘＣ、ｙＣ−１）の場合、ｍｂＡｄｄｒＢ、その利用可能性の状態、およびルマロケーション（ｘＷ、ｙＷ）はセクション１．２．１に説明されているように得られる。ｍｂＡｄｄｒＢが利用可能な場合、ｌｕｍａ８×８ＢｌｋＩｄｘＢが、ルマロケーション（ｘＷ、ｙＷ）をカバーするマクロブロックｍｂＡｄｄｒＢの内部の８×８ルマブロックを指すように設定される。それ以外の場合、ｌｕｍａ８×８ＢｌｋＩｄｘＢは利用できないとマークされる。
【０３４５】
１．２．４．近接４×４のルマブロックの指定
現在の４×４ルマブロックの左および上方の近接４×４ルマブロックの指定は、シンタックス要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇに対するＣＡＢＡＣのコンテクストモデリングに使用される。
【０３４６】
ｌｕｍａ４×４ＢｌｋＩｄｘを現在のマクロブロックＣｕｒｒＭｂＡｄｄｒ内部の現在の４×４ルマブロックのインデックス（復号化順に）とする。たとえば、ｌｕｍａ４×４ＢｌｋＩｄｘは、図９の右下角に示すように、４を乗じた４×４ｂｌｏｃｋとパーティション番号を含む８×８ブロックのｌｕｍａ８×８ＢｌｋＩｄｘとして定義できる。
【０３４７】
ｍｂＡｄｄｒＡを現在の４×４ルマブロックの左側に４×４のルマブロックを含むマクロブロックのマクロブロックアドレスとし、ｍｂＡｄｄｒＢを現在の４×４ルマブロックの上方に４×４のルマブロックを含むマクロブロックのマクロブロックアドレスとする。さらに、ｌｕｍａ４×４ＢｌｋＩｄｘＡを現在の４×４ルマブロックの左側の４×４ルマブロックの４×４ルマブロックインデックス（マクロブロックｍｂＡｄｄｒＡの中）とし、ｌｕｍａ４×４ＢｌｋＩｄｘＢを現在の４×４ルマブロックの上方の４×４ルマブロックの４×４ルマブロックインデックス（マクロブロックｍｂＡｄｄｒＢの中）とする。
ｍｂＡｄｄｒＡ、ｍｂＡｄｄｒＢ、ｌｕｍａ４×４ＢｌｋＩｄｘＡ、ｌｕｍａ４×４ＢｌｋＩｄｘＢ、およびそれらの利用可能性の状態は次のように得られる：
・（ｘＣ、ｙＣ）を現在のマクロブロックの左上のルマサンプルに対する現在の４×４ルマブロックの左上のサンプルのルマロケーションとする。
・ルマロケーション（ｘＮ、ｙＮ）＝（ｘＣ−１、ｙＣ）の場合、ｍｂＡｄｄｒＡ、その利用可能性の状態、およびルマロケーション（ｘＷ、ｙＷ）はセクション１．２．１に説明されているように得られる。ｍｂＡｄｄｒＡが利用可能な場合、ｌｕｍａ４×４ＢｌｋＩｄｘＡが、ルマロケーション（ｘＷ、ｙＷ）をカバーするマクロブロックｍｂＡｄｄｒＡの内部の４×４ルマブロックを指すように設定される。それ以外の場合、ｌｕｍａ４×４ＢｌｋＩｄｘＡは利用できないとマークされる。
・ルマロケーション（ｘＮ、ｙＮ）＝（ｘＣ、ｙＣ−１）の場合、ｍｂＡｄｄｒＢ、その利用可能性の状態、およびルマロケーション（ｘＷ、ｙＷ）はセクション１．２．１に説明されているように得られる。ｍｂＡｄｄｒＢが利用可能な場合、ｌｕｍａ４×４ＢｌｋＩｄｘＢが、ルマロケーション（ｘＷ、ｙＷ）をカバーするマクロブロックｍｂＡｄｄｒＢの内部の４×４ルマブロックを指すように設定される。それ以外の場合、ｌｕｍａ４×４ＢｌｋＩｄｘＢは利用できないとマークされる。
【０３４８】
１．２．５近接４×４のクロマブロックの指定
現在の４×４クロマブロックの左および上方の近接４×４クロマブロックの指定は、シンタックス要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇに対するＣＡＢＡＣのコンテクストモデリングに使用される。
【０３４９】
ｃｈｒｏｍａ４×４ＢｌｋＩｄｘを現在のマクロブロックＣｕｒｒＭｂＡｄｄｒ内部の現在の４×４クロマブロックのインデックス（復号化順に）とする。
【０３５０】
ｍｂＡｄｄｒＡを現在の４×４クロマブロックの左側に４×４のクロマブロックを含むマクロブロックのマクロブロックアドレスとし、ｍｂＡｄｄｒＢを現在の４×４クロマブロックの上方に４×４のクロマブロックを含むマクロブロックのマクロブロックアドレスとする。さらに、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＡを現在の４×４クロマブロックの左側の４×４クロマブロックの４×４クロマブロックインデックス（マクロブロックｍｂＡｄｄｒＡの中）とし、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＢを現在の４×４クロマブロックの上方の４×４クロマブロックの４×４クロマブロックインデックス（マクロブロックｍｂＡｄｄｒＢの中）とする。
【０３５１】
ｍｂＡｄｄｒＡ、ｍｂＡｄｄｒＢ、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＡ、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＢ、およびそれらの利用可能性の状態は次のように得られる：
・ｌｕｍａ８×８ＢｌｋＩｄｘ＝ｃｈｒｏｍａ４×４ＢｌｋＩｄｘの場合、変数ｍｂＡｄｄｒＡ、ｍｂＡｄｄｒＢ、ｌｕｍａ８×８ＢｌｋＩｄｘＡ、ｌｕｍａ８×８ＢｌｋＩｄｘＢ、およびそれらの利用可能性の状態は、セクション１．２．３に記載されるように得られる。
・ｌｕｍａ８×８ＢｌｋＩｄｘＡが利用可能であれば、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＡはｌｕｍａ８×８ＢｌｋＩｄｘＡと等しくなるように設定される。それ以外の場合、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＡは利用できないとマークされる。
・ｌｕｍａ８×８ＢｌｋＩｄｘＢが利用可能であれば、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＢはｌｕｍａ８×８ＢｌｋＩｄｘＢと等しくなるように設定される。それ以外の場合、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＢは利用できないとマークされる。
【０３５２】
１．２．６．近接パーティションの指定
現在のパーティションの左および上方の近接パーティションの指定は、以下のシンタックス要素に対するＣＡＢＡＣのコンテクストモデリングに使用される。
ｒｅｆ＿ｉｄｘ＿ｌ０、ｒｅｆ＿ｉｄｘ＿ｌ１、ｍｖｄ＿ｌ０、ｍｖｄ＿ｌ１
【０３５３】
ｍｂＰａｒｔＩｄｘとｓｕｂＭｂＰａｒｔＩｄｘを、現在のマクロブロックＣｕｒｒＭｂＡｄｄｒ内の現在のパーティションを指定するマクロブロックパーティションとサブマクロブロックパーティションのインデックスとする。このようなパーティションインデックスの例を図３６に示す。
【０３５４】
ｍｂＡｄｄｒＡを現在のパーティションの左側にパーティションを含むマクロブロックのマクロブロックアドレスとし、ｍｂＡｄｄｒＢを現在のパーティションの上方にパーティションを含むマクロブロックのマクロブロックアドレスとする。さらに、ｍｂＰａｒｔＩｄｘＡとｓｕｂＭｂＰａｒｔＩｄｘＡを現在のパーティションの左側のパーティションのマクロブロックパーティションおよびサブマクロブロックパーティションのインデックス（マクロブロックｍｂＡｄｄｒＡの中）とし、ｍｂＰａｒｔＩｄｘＢとｓｕｂＭｂＰａｒｔＩｄｘＢを現在のパーティションの上方のパーティションのマクロブロックパーティションおよびサブマクロブロックパーティションのインデックス（マクロブロックｍｂＡｄｄｒＢの中）とする。
【０３５５】
ｍｂＡｄｄｒＡ、ｍｂＡｄｄｒＢ、ｍｂＰａｒｔＩｄｘＡ、ｓｕｂＭｂＰａｒｔＩｄｘＡ、ｍｂＰａｒｔＩｄｘＢ、ｓｕｂＭｂＰａｒｔＩｄｘＢ、およびそれらの利用可能性の状態は次のように得られる：
・（ｘＣ、ｙＣ）を現在のマクロブロックの左上のルマサンプルに対するｍｂＰａｒｔＩｄｘとｓｕｂＭｂＰａｒｔＩｄｘによって与えられる現在のパーティションの左上のサンプルのルマロケーションとする。
・ルマロケーション（ｘＮ、ｙＮ）＝（ｘＣ−１、ｙＣ）の場合、ｍｂＡｄｄｒＡ、その利用可能性の状態、およびルマロケーション（ｘＷ、ｙＷ）はセクション１．２．１に説明されているように得られる。ｍｂＡｄｄｒＡが利用不可能である場合、ｍｂＰａｒｔＩｄｘＡとｓｕｂＭｂＰａｒｔＩｄｘＡは利用できないとマークされる。それ以外の場合、ｍｂＰａｒｔＩｄｘＡが、ルマロケーション（ｘＷ、ｙＷ）をカバーするマクロブロックｍｂＡｄｄｒＡの内部のマクロブロックパーティションを指すように設定され、ｓｕｂＭｂＰａｒｔＩｄｘＡが、ルマロケーション（ｘＷ、ｙＷ）をカバーする（マクロブロックｍｂＡｄｄｒＡ内の）マクロブロックパーティションｍｂＰａｒｔＩｄｘＡの内部のサブマクロブロックパーティションを指すように設定される。
・ルマロケーション（ｘＮ、ｙＮ）＝（ｘＣ、ｙＣ−１）の場合、ｍｂＡｄｄｒＢ、その利用可能性の状態、およびルマロケーション（ｘＷ、ｙＷ）はセクション１．２．１に記載されているように得られる。ｍｂＡｄｄｒＢが利用不可能である場合、ｍｂＰａｒｔＩｄｘＢとｓｕｂＭｂＰａｒｔＩｄｘＢは利用できないとマークされる。それ以外の場合、ｍｂＰａｒｔＩｄｘＢが、ルマロケーション（ｘＷ、ｙＷ）をカバーするマクロブロックｍｂＡｄｄｒＢの内部のマクロブロックパーティションを指すように設定され、ｓｕｂＭｂＰａｒｔＩｄｘＢが、ルマロケーション（ｘＷ、ｙＷ）をカバーする（マクロブロックｍｂＡｄｄｒＢ内の）マクロブロックパーティションｍｂＰａｒｔＩｄｘＢの内部のサブマクロブロックパーティションを指すように設定される。
【０３５６】
上記のシンタックス要素またはビンストリングまたはそれらのビンの部分をどのようにエントロピー符号化ビットストリームへ符号化するかを説明したが、このビットストリームの復号化およびビンの検索は図３７から３９に関して説明する。
【０３５７】
図３７は、本発明が適用されうるビデオデコーダ環境を示す一般的な図である。エントロピーデコーダ４００は、上記のようにエントロピー符号化されたビットストリームを受信し、それを図３８〜３９に関して下記により詳細に示すように扱う。具体的には、エントロピーデコーダ２４００は、プリコードされたビデオ信号、特に、そこに含まれているシンタックス要素を得るために、バイナリエントロピー復号化によってエントロピー符号化されたビットストリームを復号化し、これを、プリコードデコーダ２４０２へ渡す。プリコードデコーダ２４０２は、マクロブロックごとに、次に、スライスごとに、ビデオフレーム２０１０の画素の画像のサンプルを検索するために、上記のシンタックス要素などの動きベクトル成分やフラグなどのシンタックス要素を使用する。
【０３５８】
次に、図３８は、ビンが復号化されるたびにエントロピーデコーダ２４００によって実行される復号化プロセスを示す。どのビンが復号化されるかはエントロピーデコーダ２４００によって現在予測されているシンタックス要素に依存している。この知識はそれぞれの解析規制から得られる。
【０３５９】
復号化プロセスにおいて、まず、ステップ２５００において、デコーダ２４００は、復号化する次のビンが近接シンタックス要素に基づくコンテクストモデルの割り当てに対応しているタイプのシンタックス要素のビンであるかどうかをチェックする。そうでない場合、デコーダ２４００はステップ２５０４の他のシンタックス要素のハンドリングへ進む。しかし、ステップ２５００のチェック結果が肯定された場合、デコーダ２４００は、ステップ２５０６とステップ２５０８において、復号化する現在のビンが属する現在のブロックの近接ブロックの決定を実行し、ステップ２５０６で決定された近接ブロックの所定の属性に基づいてコンテクストモデルをビンへ割り当てる。ここで、ステップ２５０６と２５０８は図３２の符号化プロセスのステップ２３０６と２３０８に対応している。これらのステップによって、コンテクストインデックスｃｔｘＩｄｘが得られる。したがって、ｃｔｘＩｄｘの決定は、以下のエントロピー復号化に使用されるコンテクストモデルを決定するためのステップ２３０６および２３０８における図３２の符号化プロセスと同様に、ステップ２５０６とステップ２５０８で行われる。
【０３６０】
次に、ステップ２５２２において、エントロピーデコーダ２４００は、ステップ２５１０〜２５２０において得られたｃｔｘＩｄｘによりインデックス付けされたコンテクストモジュールの実際の確率状態を使用して、エントロピー符号化されたビットストリームから、実際のビンをエントロピー復号化する。つまり、エントロピーデコーダ２４００は、各々がそれぞれの部分的ビットストリームに関連付けられている、内部に複数のエントロピーデコーダを有する上記のエントロピーデコーダのいずれかに対応している正規の復号化エンジンを含む。ステップ２５２２において、ビンは、確率インデックスによってまたは少なくとも確率インデックスに基づいてインデックス付けされた部分的ビットストリームからリクエストされる。このステップの結果は実際のビンの値である。
【０３６１】
その後、ステップ２５２４において、ｃｔｘＩｄｘ確率状態は、ステップ２２２４と同様に、適応または更新される。その後、ステップ２５２６においてプロセスは終了する。
【０３６２】
言うまでもなく、図３８に示したプロセスによって得られる個々のビンは、シンタックス要素がバイナリタイプである場合のみにおいてシンタックス要素の値を表す。それ以外の場合、２値化に対応するステップは、ビンストリングからシンタックス要素の実際の値を得るために逆の方法で実行する必要がある。
【０３６３】
図３９において、左側のステップ２５２２とステップ２５２４を点線２５２７で囲むことでより詳細に示す。右側は２５６４で示している。図３８は、エントロピーデコーダ２４００が、変数をロード、格納、そして更新するためにアクセスできるメモリとそのコンテンツを示している。図示したように、エントロピーデコーダ２４００は、以下に説明されるように、符号化プロセスをエミュレートするので、エントロピーデコーダはエントロピーコーダ２０１４と同じ変数を操作し管理する。
【０３６４】
最初のステップ２５６６において、デコーダ２４００は、それぞれのコンテクストに関連付けられた確率インデックスによりインデックス付けされた部分的ビットストリームから現在のビンの値を取得する。
【０３６５】
しかし、値はまだ値ＭＰＳとＬＰＳとの相対的な用語で示されている。したがって、ステップ２５７０において、デコーダ２４００はエントロピー符号化されたビットストリームにおけるエントロピー符号化符号語の値がωＩによって示される最大確率シンボルであったかどうかをチェックする。そうである場合、ステップ２５７２において、デコーダ２４００はビン値をωｉの値へ設定する。そうでない場合、ステップ２５７４において、デコーダ２４００はシンボルを１−ωｉになるように設定する。
【０３６６】
ステップ２５７２の後、ステップ２５７６において、デコーダ２４００は、図３６においてステップ２３３８に関して既述されているように確率状態インデックスωｉを遷移させることによって、ωｉとωｉによって定義付けされている現在のコンテクストモデルｉの確率状態を適応させるか更新する。その後、プロセス２５２７はステップ２５７８で終了する。
【０３６７】
ステップ２５７４の後、デコーダ２４００は、ステップ２５８２において、ωｉが０と等しい場合、ωｉ＝１−ωｉを計算することによって、次に、図３６においてステップ２３４６に関して説明したように確率状態インデックスωｉを新しい確率状態インデックスへ遷移することによって、ステップ２５８２および２５８４において、確率状態を適応させるか更新する。その後、プロセスはステップ２５７８において終了する。
【０３６８】
具体的な実施形態を説明してきたが、これら実施形態に限定されないことに留意されたい。特に、ステップ２３０８と２４０８に基づく割当ては、近接ブロックのシンタックス要素、すなわち、プリコーダ２０１２によって出力されたプリコードされたビデオ信号に含まれるシンタックス要素、に依存する必要はない。この割当ては、寧ろ、近接ブロックの他の属性に依存しうる。また、図３５のテーブルに関連して説明されている近接ブロック間の近接性の定義は変化しうる。さらに、２つのインターレースされたフィールドの画素サンプルは上記した方法以外の他の方法で配置することができる。
【０３６９】
また、４×４のブロック以外のブロックサイズを変換の基礎として使用することができ、上記実施形態において、変換が予測に対する画像サンプルの差に対して適用されたが、変換は予測を実行せずに画像サンプル自体に適用することもできる。また、変換のタイプは重要ではない。ＤＣＴはＦＦＴやウェーブレット変換と同様に使用することができる。さらに、説明した実施例は、バイナリのエントロピー符号化／復号化に限定されない。むしろ、マルチシンボルエントロピー符号化にも同様に適用することができる。さらに、スライス、マクロブロック対、マクロブロック、画像素子などへのビデオフレームの分割は例示目的のためになされ、実施例の範囲を制限するものではない。
【０３７０】
以下において、図２８よりも詳細に、近接シンタックス要素に基づくコンテクスト割り当てを使用したシンタックス要素の上記エントロピー符号化が使用されるブロック２８００で図４０に示されるように、エントロピーエンコーダを含むビデオエンコーダエンジンの完成したセットアップを示している図４０を参照されたい。具体的には、図４０は、マクロブロック用の新しいＨ．２６４／ＡＶＣ規格に対する基本的な符号化構造を示している。入力ビデオ信号は、各マクロブロックが１６×１６のルマピクセルを有しているマクロブロックへ分割される。次に、スライス群およびスライスへのマクロブロックの関連付けが選択され、次に、各スライスの各マクロブロックは、図４０における演算ブロックのネットワークによって処理される。ここで、画像内に様々なスライスがある場合でもマクロブロックの効率的な並列処理が可能であることに留意されたい。スライス群およびスライスへのマクロブロックの関連付けは、図４０のコーダコントロール２８０２と称されるブロックによって実行される。以下のように定義付けられるいくつかのスライスが存在している：
・Ｉスライス：スライスの全てのマクロブロックがイントラ予測を用いて符号化されるスライス。
・Ｐスライス：さらに、Ｉスライスの符号化タイプに対して、Ｐスライスのいくつかのマクロブロックも予測ブロック当たり多くとも１つの動き補正された予測信号を有するインター予測を用いて符号化できる。
・Ｂスライス：さらに、Ｐスライスにおいて利用可能な符号化タイプに対して、Ｂスライスのいくつかのマクロブロックも予測ブロック当たり２つの動き補正された予測信号を有するインター予測を用いて符号化できる。
【０３７１】
上記の３つの符号化のタイプは、以下に説明されるような基準画像の使用を除いて、前の規格のものと非常に類似している。スライスに対する以下の２つの符号化タイプは新しい：
・ＳＰスライス：異なるプリコードされた画像間の効率的なスイッチングが可能になるように符号化されている、いわゆるスイッチングＰスライス。
・ＳＩスライス：ランダムアクセスとエラー回復の目的のためにＳＰスライスにおけるマクロブロックの正確な一致を可能にするいわゆるスイッチングＩスライス。
【０３７２】
スライスは、フレキシブルなマクロブロックオーダー（ＦＭＯ）を使用しない場合にラスタスキャン順に処理されるマクロブロック列である。図４２に示すように、画像は１つまたはいくつかのスライスへ分割されうる。したがって、画像は１つ以上のスライスの集合である。スライスは、アクティブな列と画像パラメータ集合が与えられた場合、それらのシンタックス要素はビットストリームから解析され、スライスが表現する画像の領域内のサンプルの値は、使用される基準画像がエンコーダおよびデコーダにおいて一致していることを前提として、他のスライスからのデータを使用せずに正確に復号化されるという意味で、自己完結的である。他のスライスからのいくつかの情報がスライス境界を横切ってデブロッキングフィルタを適用するために必要とされる場合がある。
【０３７３】
ＦＭＯは画像がスライスグループの概念を使用することによってスライスおよびマクロブロックに分割される方法を変更する。各スライスグループは、画像パラメータ集合のコンテンツとスライスヘッダからのいくつかの情報によって指定される、マクロブロックからスライスグループへのマッピングによって定義づけられるマクロブロックの集合である。このマクロブロックからスライスグループへのマッピングは画像内のマクロブロックごとのスライスグループ識別番号から成り、関連付けられたマクロブロックがどのスライスグループに属しているかを指定する。各スライスグループは、１スライスが、特定のスライスグループのマクロブロックの集合内のラスタスキャン順に処理される同じスライスグループ内のマクロブロックの列であるように、１つ以上のスライスに分割することができる（ＦＭＯが使用されていない場合は全体画像が単一のスライスグループから成るＦＭＯのシンプルな特殊なケースと見なすことができる。）。
【０３７４】
ＦＭＯを使用して、画像は、インターリーブされたスライス、分散したマクロブロックの割り当て、１つ以上の「前景」スライスグループ、「残留」スライスグループ、またはチェッカーボードタイプマッピングなどの多くのマクロブロックスキャンパターンに分けることができる。
【０３７５】
各マクロブロックを、スライス符号化のタイプによって、いくつかの符号化タイプの１つへ送信することができる。すべてのスライス符号化タイプにおいて、クロマ予測とＩ＿ＰＣＭ予測モードと共にＩｎｔｒａ＿４×４またはＩｎｔｒａ＿１６×１６と示される以下のタイプのイントラ符号化がサポートされる。
【０３７６】
Ｉｎｔｒａ＿４×４モードは、各４×４ルマブロックを個別に予測することに基づき、有意な細部を有する画像の部分の符号化によく適している。他方、Ｉｎｔｒａ＿１６×１６モードは、全体的な１６×１６ルマブロックの予測をし、画像の非常に平滑な領域を符号化するのにより適している。
【０３７７】
更に、これらの２タイプのルマ予測に対して個別のクロマ予測が行われる。Ｉｎｔｒａ＿４×４とＩｎｔｒａ＿１６ｘ１６に代わるものとして、Ｉ＿ＰＣＭ符号化タイプはエンコーダが予測および変換符号化プロセスを単にバイパスして、その代わりに、符号化されたサンプルの値を直接送信することを可能にする。Ｉ＿ＰＣＭモードには、以下の目的を果たす：
１．Ｉ＿ＰＣＭモードは、エンコーダがサンプルの値を正確に表すことを可能にする。
２．Ｉ＿ＰＣＭモードは、データを大きく拡張せずに変則的な画像コンテンツの値を正確に表す方法を提供する。
３．Ｉ＿ＰＣＭモードは、符号化効率に影響を与えずに、デコーダがマクロブロックに対して処理する必要があるビットの数を厳密に制限することを可能にする。
【０３７８】
イントラ予測が変換ドメインで行われてきた従来のビデオ符号化規格（すなわちＨ．２６３＋およびＭＰＥＧ−４  Ｖｉｓｕａｌ）とは対照的に、Ｈ．２６４／ＡＶＣ規格のイントラ予測は、予測されるブロックの左および／または上の前に符号化されたブロックの近接サンプルのビンを参照することによって、空間ドメインにおいて常に実行される。これは、動き補正によりインター符号化されたマクロブロックへ伝搬する送信エラーにより環境にエラー伝搬をもたらすおそれがある。したがって、イントラ符号化された近接マクロブロックのみからの予測を可能とする制約されたイントラ符号化モードがシグナリングできる。
【０３７９】
Ｉｎｔｒａ＿４×４モードを使用する場合、図４３の左側に示すように、各４×４ブロックは、空間的に近接するサンプルから予測される。ａ〜ｐでラベル付けされた４×４ブロックの１６個のサンプルは、Ａ〜Ｑでラベル付けされた隣り合うブロック内の先に復号化されたサンプルを用いて予測される。各４×４ブロックに対して、９個の予測モードの１つを利用することができる。更に、（１つの値が４×４ブロック全体を予測するために使用される）「ＤＣ」予測に対して、図４１の右側に示すように、８つの方向性予測モードが指定される。これらのモードは、様々な角度のエッジなどの画像の方向性のある構造を予測するために適している。
【０３８０】
また、イントラマクロブロック符号化タイプに対して、様々な予測のまたは動き補正された符号化タイプは、Ｐマクロブロックタイプとして指定される。各Ｐマクロブロックタイプは、動き補正された予測に使用されるブロック形状へのマクロブロックの特定のパーティションに対応する。１６×１６、１６×８、８×１６、および８×８のサンプルのルマブロックサイズを有するパーティションはシンタックスでサポートされる。８×８のサンプルを使用するパーティションを選択した場合、８×８のパーティションごとに１つの更なるシンタックス要素が送信される。このシンタックス要素は、対応する８×８のパーティションが、８×４、４×８、または４×４のルマサンプルおよび対応するクロマサンプルのパーティションに、更に分割されるかを指定する。
【０３８１】
各予測符号化されたＭ×Ｎのルマブロックの予測信号は、並進運動ベクトルと画像基準インデックスによって指定される、対応する基準画像の領域を移動させることによって取得される。このように、マクロブロックが４個の８×８のパーティションを使用して符号化され、各８×８のパーティションが４個の４×４のパーティションにさらに分割される場合、１６個の動きベクトルの最大値を単一のＰマクロブロックに対して送信することができる。
【０３８２】
量子化パラメータＳｌｉｃｅＱＰは、Ｈ．２６４／ＡＶＣ規格の変換係数の量子化を決定するために使用される。このパラメータは５２個の値を取ることができる。これらの値は、量子化パラメータが１つ増えると、量子化ステップサイズが約１２％増加することを意味する（６の増加はちょうど２の因数による量子化ステップサイズの増加を意味する）ように構成される。約１２％のステップサイズの変化は、おおまかに、約１２％のビットレートの減少を意味することが分かる。
【０３８３】
ブロックの量子化変換係数は一般にジグザグ方式でスキャンされ、エントロピー符号化方式を使用して送信される。クロマ成分の２×２ＤＣ係数は、ラスタスキャン順にスキャンされる。Ｈ．２６４／ＡＶＣ規格のすべての逆変換演算は１６ビット整数値の加算とビットシフト演算をのみ使用して実施することができる。同様に、１６ビットのメモリアクセスだけがエンコーダにおける順方向変換と量子化プロセスの良好なインプリメンテーションに必要とされる。
【０３８４】
図２９に関して上に説明した符号化配置による図４０のエントロピーエンコーダ２８００。コンテクストモデラは、正規の符号化エンジンとも呼ばれるエントロピーエンコーダへコンテクストモデル、すなわち、確率情報を送信する。符号化されるビット、すなわち、ビンは、コンテクストモデラから正規の符号化エンジンへ転送される。このビン値も、コンテクストモデルの更新が得られるようにコンテクストモデラへフィードバックされる。バイパス符号化エンジンとも呼ばれるエントロピーエンコーダを含むバイパスブランチが提供される。バイパス符号化エンジンは、入力ビン値をエントロピー符号化するために演算可能である。正規の符号化エンジンに相対して、バイパス符号化エンジンは適応型符号化エンジンではなく、好ましくは、コンテクスト適応せずに一定の確率モデルとともに機能する。２つのブランチの選択はスイッチによって取得される。バイナライザデバイスは、ビンストリング、すなわち、バイナリ値のストリングを取得するために非２値化されたシンタックス要素を２値化するように演算可能である。シンタックス要素がすでにバイナリ値のシンタックス要素である場合、バイナライザはバイパスされる。
【０３８５】
いわゆる正規の符号化モードにおいて、実際のエントロピー符号化プロセスに先立って、これもビンと称する、所与のバイナリ決定が、確率モデルが対応する選択が前に符号化されたシンタックス要素またはビンに依存しうるように選択される、コンテクストモデリングステージに入る。次に、コンテクストモデルの割当て後、ビン値はその関連するモデルとともに正規の符号化エンジンへ渡され、ここで、これに続くモデル更新とともにエントロピー符号化の最終ステージが行われる（図２９を参照）。
【０３８６】
あるいは、バイパス符号化モードが、明示的に割り当てられたモデルを使用せずに、簡素化した符号化エンジンを用いて符号化（および復号化）プロセス全体の高速化を可能にするために、選択されたビンに対して選択される。このモードは、動きベクトルや変換係数レベルの差の成分に関して、これらのシンタックス要素の１次接尾語のビンを符号化する時に特に効果的である。
【０３８７】
以下において、３つの主要な機能的組立ブロック：２値化、コンテクストモデリング、図４０のエンコーダにおけるバイナリエントロピー符号化がそれらの．．．．とともに。
【実施例５】
【０３８８】
この実施例では、実施例４がさらに拡張され、図３４、３５、４６〜４９。本実施例によれば、データ値の２値化が、１次的接頭語をもたらすように、第１の２値化方式によってデータ値と所定のカットオフ値の最小値を２値化することによって実行され、データ値がカットオフ値より大きい場合、第２の２値化方式によってデータ値マイナス所定のカットオフ値の差を２値化してバイナリ接尾語を得て、ここで、第１の２値化方式は第２の２値化方式とは異なり、次に、１次接尾語を１次接頭語に付記する。
【０３８９】
データ値はデータ値の２値化された表現から復元され、データ値の２値化された表現は第１の２値化方式によるデータ値と所定のカットオフ値の最小値の２値化である１次接頭語を有する符号語であり、データ値が所定のカットオフ値より大きい場合、１次接尾語が１次接頭語に付記され、この１次接尾語は第２の２値化方式による、データ値マイナス所定のカットオフ値の差の２値化である。この方法は、１次接頭語から最小値を抽出するステップと、最小値がカットオフ値と等しい場合は、１次接尾語からデータ値マイナス所定のカットオフ値の差を抽出するステップと、を含む。次に、所定のカットオフ値がこの差に追加されてデータ値を取得し、最小値がカットオフ値より小さい場合、この最小値がデータ値として扱われる。
【０３９０】
符号化ビットストリームへのデータ値の符号化は、１次接頭語を得るために、第１の２値化方式によってデータ値と所定のカットオフ値の最小値を２値化するステップと、データ値がカットオフ値より大きい場合、バイナリ接尾語を得るために、第２の２値化方式によってデータ値マイナス所定のカットオフ値の差を２値化するステップと、ここで、第１の２値化方式と第２の２値化方式は異なり、次に、１次接尾語を１次接頭語に付記するステップと、を含む。次に、符号語のビットごとに、符号語のビットが１次接頭語の一部である場合、適応型可変ビット値確率予測によるビットのバイナリエントロピー符号化が、確率予測依存型の部分的ビットストリーム選択を有する上記の実施形態のいずれかによって、実行されるか、または、符号語のビットが１次接尾語の一部であれば、静的ビット値確率予測によってビットのバイナリ符号化が実行され、これによって、符号化されたビットストリームが得られる。
【０３９１】
データ値の２値化された表現を表す符号化されたビットストリームの復号化を説明する。データ値の２値化された表現は、１次接頭語を有する符号語であり、かつ第１の２値化方式によるデータ値と所定のカットオフ値の最小値の２値化である。データ値が所定のカットオフ値より大きい場合、１次接尾語が１次接頭語に付記される。１次接尾語は、第２の２値化方式による、データ値マイナス所定のカットオフ値の差の２値化である。この方法は、符号語のビットごとに、符号語のビットが１次接頭語の一部である場合、適応型可変ビット値確率予測によって符号化されたビットストリームをバイナリエントロピー復号化することによって、すなわち、確率予測に関連付けられた部分的ビットストリームを介してビットを検索することによって、ビットを決定するステップと、符号語のビットが１次接尾語の一部である場合、静的ビット値確率予測によってビットをバイナリ復号化することによってビットを決定するステップとを含み、これにより符号語を得る。次に、最小値が１次接頭語から抽出される。最小値がカットオフ値と等しい場合、データ値マイナス所定のカットオフ値の差が１次接尾語から抽出され、所定のカットオフ値がこの差に加算されて、データ値が得られる。最小値がカットオフ値より小さい場合、この最小値がデータ値とされる。
【０３９２】
ビデオ信号においてシンタックス要素を形成する、データ値と、特に、動きベクトル差の成分または変換係数レベルの値と、の非常に効果的な圧縮は、エントロピー符号化のためにシンタックス要素を用意するための２値化方式―この２値化方式は実質的に２つの異なる２値化方式の組合せである―を使用して、および、２値化されたシンタックス要素を符号化するためのｍ変数のエントロピー符号化ではなくバイナリエントロピー符号化を使用して、達成される。
【０３９３】
元のｍ変数のソースアルファベットで演算するｍ変数のエントロピーコーダの代わりにバイナリエントロピー符号化エンジンを使用することの利点は、２つの可能なビット値に対する確率の判定がちょうど１つの確率予測値によって定義できるので、確率予測の複雑さが軽減されることである。適応型のｍ変数のエントロピー符号化は、ｍ＞２の場合、一般的に、確率予測の更新を行うために非常に複雑な多くの動作を必要とする計算的に複雑な演算になる。
【０３９４】
具体的な実施形態によれば、切り捨て単項２値化方式とｋ番目の次数の指数ゴロム２値化方式の連結が使用される。単項／ｋ番目の次数の指数ゴロム（ＵＥＧｋ）２値化と呼ばれるこの連結方式は、動きベクトル差と、変換係数レベルの絶対値と、に適用される。これらの連結された２値化方式の設計は以下の観察によって動機付けされる。まず、単項コードは実施コストの面で最もシンプルな接頭語なしのコードである。第２に、対応するツリーのノード配列が一般に、ルートノードからの内部ノードの距離が大きくなるにつれて、対応するバイナリ確率にあまり偏りが発生しないような配列なので、以降のコンテクストモデリングステージにおける個々のシンボル確率の迅速な適応を可能にする。これらの観察結果は、動きベクトルの絶対差と変換係数レベルの小さな値に対して精度が高い。大きな値に対しては、接頭語としての適応された切り捨て単項ツリーと接尾語としての静的指数ゴロム符号化ツリーを連結させるアイデアに達した適応型モデリングをあまり使用しない。一般に、上述したように、大きい値の場合、ＥＧｋ接尾語部分が、観察された確率分布に対してかなり良好な適合を既に表している。
【０３９５】
一方で、バイナライザ２１０２がシンタックス要素をマッピングする符号語の「ビット」またはビン間の関係、他方で「ビン」間の関係を説明するために、図４４は、図４６に関して後述する２値化方式に対応するバイナリ符号化ツリーを示している。全体的に参照番号３１５０で示される符号化ツリーは、ルートノード３１５２といくつかの内部ノード３１５４を含み、ルートノード３１５２と内部ノード３１５４は、インデックスｉが対応するノードに関連付けられた整数であるＣｉによって指定される。これらのノードの各々は、左ブランチがビン値０に対応し、右ブランチがビン値１に対応している「ビン」と呼ばれる条件ブランチまたはバイナリ決定を定義付ける。
【０３９６】
ツリー３１５０は、終端ノード３１５６も含む。図４４において終端ノード３１５６に割り当てられた番号はシンタックス要素のデータ値に対応し、このデータ値は、図４６の２値化方式に基づいて、ルートノード３１５２からそれぞれの終端ノード３１５６までのパスをたどるときのビットまたはビン値から得られる符号語またはビットストリングに対応している。たとえば、データ値１７は、図４６に示すように、符号語ビットストリング１１１１１１１１１１１１１１１０１に対応する。パスは、ルートノード３１５２と内部ノード３１５４Ｃ２〜Ｃ１７を含む。各ノード３１５２または３１５４は、「ビン」と呼ばれるバイナリ決定と見なされうる。ルートノード３１５２からそれぞれの終端ノード３１５６までのツリー３１５０を横断するためのバイナリ決定の連結は、対応するシンボル値またはシンタックス要素値の「ビンストリング」を表している。
【０３９７】
各バイナリ決定は、決定がバイナリゼロ（図４４において左ブランチ）とバイナリ１（図４４において右ブランチ）が得られるかについての確率を示す実際の確率分布を有している。言い換えれば、バイナリ決定の実際の確率分布は、このバイナリ決定時に、シンタックス要素パスがゼロまたは１ブランチを取ることの確率を定義付ける。したがって、あるデータ値を仮定するためのシンタックス要素に対する実際の確率は、ルートノード３１５２から各終端ノード３１５６までのパスに沿って配置されたノードにおけるそれぞれの確率の積と等しい。
【０３９８】
バイナリエントロピー符号化の場合、ツリー３１５０の各バイナリ決定またはノード３１５２、３１５４、すなわち、各ビンは、ビット値確率予測またはコンテクストモデルすなわちＣｉに関連付けられている。以下により詳細に記載されているように、ノードまたはビンの全てが適応確率予測モデルに関連付けられているわけではなく、静的な確率予測に関連付けられてもよいことから、コンテクストモデリングオーバーヘッド、すなわち、圧縮率を高めるために過去のビンに応じて予測を適応させるための管理が削減される。
【０３９９】
次に、図４５では、本発明の一実施形態による２値化方式の実施形態を説明する。図４５は、バイナライザ３１０２が非バイナリ値化されたシンタックス要素上で実行するステップを概略的に示している。具体的には、図４５は、変換係数レベルの絶対値、すなわち、変換係数値の計算のためのスケーリングに先立つ復号化プロセスにおける特に２次元の頻度インデックスに関連付けられた値を表す整数量、を２値化するための実施形態である。
【０４００】
図４５の２値化方式は、一方で切り捨て単項２値化方式、他方でｋ番目の次数の指数ゴロム２値化方式を連結したものである。切り捨て単項２値化方式は単項２値化方式を基礎としている。単項２値化方式に基づいて、ゼロと等しいかゼロより大きい各符号なしの整数値シンボルｘに対して、ｘがマッピングされる単項符号語は、ｘ個の「１」のビットプラス終端「０」ビットから成る。単項２値化方式とは異なり、切り捨て単項（ＴＵ）コードは、ｘ＜Ｓに対してコードが単項コードによって与えられる、０≦Ｘ≦Ｓのｘに対してのみ定義付けられ、ｘ＝Ｓの場合、ｘ＝ＳのＴＵコードが終端ビット「０」なしのｘ個の「１」ビットのみから成る符号語により付与されるように、終端「０」ビットは無視される。指数ゴロム２値化方式によれば、一般に、データ値ｘは接頭語と接尾語から成る符号語にマッピングされる。より正確には、ｋ番目の次数の指数ゴロム２値化方式によれば、データ値は、少なくとも接頭語を有し、データ値によっては接尾語も有する符号語にマッピングされる。ＥＧｋ符号語の接頭部は、
【０４０１】
【数１２１】
2013528025.tif 000133
である値ｌ（ｘ）に対応する単項コードから成り、ｋはコードの次数を示し、
【数１２２】
2013528025.tif 000134
は実値ｒより小さいかこれと等しい最大整数である。ＥＧｋの接尾部は、ｋ＋ｌ（ｘ）の有意ビットを使用して、ｘ＋２ｋ（１−２ｌ（ｘ））のバイナリ表現として計算される。
【０４０２】
図４５からわかるように、２値化される絶対データ値ｘは、ｘとＳの最小値を決定するために、３２００において、カットオフ値Ｓと比較される。Ｓは、排他的に、すなわち残留値に対してゴロム２値化方式を使用せずに、切り捨て単項符号を使用して、絶対データ値ｘを定義付けるカットオフ値である。言い換えれば、カットオフ値Ｓ未満の全ての絶対データ値ｘに対して、絶対データ値ｘを符号語にマッピングするために、切り捨て単項２値化が専ら使用され、この符号語はしたがって１次接頭語のみから成る。絶対データ値ｘがＳより大きいまたはＳと等しい場合、１次接尾語が１次接頭語に付記される。後述するように、１次接尾語はｘ−Ｓからのゼロ次数の指数ゴロム２値化方式に基づいて作成される。
【０４０３】
３２０２においてｘとＳの間の最小値は切り捨て単項２値化方式に基づいて２値化される。結果は、ｘがマッピングされる最終符号語３２０６の少なくとも一部を構成する、１次接頭語２０４である。１次接頭語はこのようにＭｉｎ（Ｓ、Ａｂｓ（ｘ））の値の単項２値化からなり、ここで、Ｍｉｎ（ａ、ｂ）は値ａとｂの最小値を示し、Ａｂｓ（ｘ）はｘの絶対値を示している。言い換えれば、１次接頭語は、ｘがＳより大きいかまたはこれと等しい場合、Ｓ個の１から成り、ｘがＳより小さい場合、終端ゼロが後に続くｘ個の先頭の１から成る。
【０４０４】
３２０８において絶対データ値ｘはカットオフ値Ｓと比較される。この比較によってｘがＳより小さい場合、２値化は３２１０で終了し、したがって、絶対データ値ｘが図４５の２値化方式に基づいてマッピングされる符号語３２０６は１次接頭語３２０４のみからなる。それ以外の場合、すなわち、ｘがＳと等しいかまたはＳより大きい場合、３２１２において、カットオフ値Ｓは絶対データ値ｘから減算される。ｘマイナスＳによって得られる差分値は、残留値と呼ばれることもあり、３２１４において、ｋがゼロと等しい、ｋ番目の次数の指数ゴロム２値化方式に基づいて処理される。ｋ番目の次数の指数ゴロム２値化方式は、図４８に関してより詳細に後述される。
【０４０５】
「ｘマイナスＳ」の差の２値化３２１４の結果は、１次接尾語３２０８として１次接頭語３２０４に付記される。したがって、絶対データ値ｘがカットオフ値Ｓより大きいかまたはこれと等しい場合、得られる符号語２０６は、１次接尾語３２０８が後に続く１次接頭語３２０４から成り、ここで、１次接尾語３２０８は、ｘ−Ｓのｋ番目の次数の指数ゴロム２値化である。以下の説明から明らかなように、１次接尾語３２０８自体は、これ以降、２次接頭語３２１８と２次接尾語３２２０と呼ばれる、接頭語と接尾語から成っている。
【０４０６】
実験的研究は、変換係数レベルの絶対値に対して、Ｓ＝１４、ｋ＝０が、１次接頭語の一部である符号語３２０６のビットだけが適応型確率モデルを用いてエントロピー符号化されても、このような２値化された変換係数レベル値をバイナリエントロピーコーダへ渡す場合、相対的に良好な圧縮比率を提供し、よって、符号化オーバーヘッドを削減することができることを示した。
【０４０７】
図４６は、左列３２１５内の変換係数レベルの絶対値を、Ｓ＝１４およびｋ＝０であるときの図４５の３２５２の右側の２値化に基づく対応する符号語とともに一覧にした表を示す。ゼロ値化された、すなわち、非有意変換係数レベルが上述した有意性マップを用いて符号化されるので、２値化とこれに続く符号化プロセスはシンタックス要素「変換係数レベル値マイナス１」に適用されることに留意されたい。したがって、図４５に関して、図４６の表の３２５０には、ｘプラス１の値が一覧にされている。図４６の表は、値Ｓ＝１４、ｋ＝０であるときの図４５の２値化方式の結果を示している。
【０４０８】
図に示すように、絶対値がマッピングされる符号語またはビンストリングは、少なくともＴＵ接頭語を含み、符号語またはビンストリングのＴＵ接頭部分は、図４６の３２５４において強調されている。図示したように、１５（＝ｘ＋１）未満の絶対値は３２５６で示すようにＥＧ０接尾語を有さない。また、点線３２５８で示すように、各ＥＧ０接尾語３２５６は、点線３２５８の左側にある２次接頭語を含み、絶対値１５に属する符号語の１つを除いて、すべてのＥＧ０接尾語３２５６は、点線３２５８の右側に配置された２次接尾語を含む。
【０４０９】
図４６と同様に、図４７は、ｋ＝３、Ｓ＝９であるときに図４５の２値化方式に基づいて取得される絶対値とビンストリングのペアの表を示している。図４６の要素と同じ図４７の表の要素には図４６と同じ参照番号が付され、これらの要素の反復説明は省略する。符号ビットは図４７の表に示されていない。
【０４１０】
図４７に基づく２値化方式によるｋおよびＳに対する値は、動きベクトルの差分の絶対成分に適用された場合、良好な圧縮効果を示した。動きベクトルの差分に対して、図４７に示すＵＥＧｋ２値化は以下のように構成される。動きベクトル成分の値ｍｖｄが与えられるとする。ＵＥＧｋビンストリングの接頭部に対して、ＴＵ２値化（図４５の３２０２）は、カットオフ値Ｓ＝９を有するｍｖｄの絶対値を使用して引き出される。ｍｖｄがゼロと等しい場合、ビンストリングは接頭語符号語「０」、２７０のみから構成される。条件｜ｍｖｄ｜≧９に従う場合（図４５の３２０８）、接尾語は、符号ｍｖｄが負のｍｖｄに対しては符号ビット「１」（図示しない）を用いて付記され、それ以外の場合は符号ビット「０」（図示しない）が付記される、｜ｍｖｄ｜−９の値に対するＥＧ３符号語として構成される（図４５の３２１４）。０＜｜ｍｖｄ｜＜９ときのｍｖｄ値に対して、接尾語は符号ビットのみから構成される。
【０４１１】
動きベクトル差の成分が４分の１のサンプル精度における予測誤差を表すと仮定すると、接頭部分は＋／−２のサンプルの最大誤差成分に常に対応している。指数ゴロムパラメータｋ＝３を選択した場合、接尾符号語は、２つのサンプルの単位で予測誤差の幾何学的な増加が対応する接尾符号語長さの線形増加によってキャプチャされるように、与えられる。
【０４１２】
図４５〜図４７に関して図２９におけるバイナライザ３１０２の機能性を大まかに説明してきたが、図４５におけるｋ番目の次数の指数ゴロム２値化３２１４に対する可能なインプリメンテーションを図４８に関してより詳細に説明する。図４８は、図４５の２値化方式に基づいて絶対データ値ｘの２値化を表す符号語の１次接尾部分を構成するプロセスを示す擬似Ｃコードを示す。まず、ステップ３３００において、補助パラメータｋが、使用される指数ゴロム２値化の次数に初期化される。図４７に基づく動きベクトル差の成分の２値化の場合、たとえば、ステップ３３００において、ｋは３の値に初期化される。
【０４１３】
動きベクトル差（ｍｖｄ）の絶対値とここでは９のカットオフ値との比較をライン３３０２において行い、ｍｖｄの絶対値が９より大きいかまたは９と等しいことが分かった場合、ステップ３３０４において、ｓｕｆＳに取得するためにｍｖｄの絶対値からカットオフ値Ｓ＝９が減算される。また、ステップ３３０６において、パラメータｓｔｏｐＬｏｏｐがゼロの値に初期化される。次に、３３０８において、ｓｔｏｐＬｏｏｐパラメータは、ライン３１０においてチェックされるように、その値を０より大きい正の値へ変更しない限り、条件ｉｆの演算が実行される。条件ｉｆの演算によってｓｕｆＳがｋ番目の２の指数（３１２ｄ）より大きいかこれと等しいことが分かった場合、３３１２において、ビット値１を有するビットが出力され（３３１２ａ）、ｋ番目の２の指数がｓｕｆＳから減算され（３３１２ｂ）、ｋが増分される（３３１２ｃ）。それ以外の場合、つまりｓｕｆＳがｋ番目の２の指数より小さい場合（３３１２ｅ）、ゼロのビット値を有するビットが出力され（３３１２ｆ）、ｋの実際の値（３３１２ｇ）と等しい多数のビットを使用したｓｕｆＳのバイナリ表現が出力され（３３１２ｈ）、パラメータｓｔｏｐＬｏｏｐが１の値に設定され（３３１２ｅ）、これにより、条件ｉｆ演算３３０８の反復実行３３０８を停止する結果になる。
【０４１４】
３３０４〜３３１２の全ステップは、ステップ３３０２の比較によってｍｖｄの絶対値が９より大きいかこれと等しいことが分かった場合に、実行される。３３０２の比較とは無関係に、３３１４において、ｍｖｄがゼロより大きい場合、ゼロの符号ビットが出力され、ｍｖｄがゼロより小さい場合、１の符号ビットが出力される。符号ビットは図４７に示されていない。
【０４１５】
図４８の擬似Ｃコードから明らかであるように、３番目の次数の指数ゴロム２値化方式の場合、図４７にも示されるように、接尾部分は、１つが３３１２ｆのゼロビットであり、他の３つが３３１２ｈにおけるバイナリ表現出力のビットである４ビットを少なくとも含み、各符号語の末尾の符号ビットは無視される。
【０４１６】
本発明の実施形態によるエンコーダサイドにおける２値化とエントロピー符号化について説明してきたが、図４９は、エントロピー符号化されたビットストリームを復号化するためにデコーダサイドで実行される本発明の一実施形態にとしてのステップを示す。
【０４１７】
まず、ステップ３４００において、エントロピー符号化されたビットストリームを受信するデコーダは、符号化されたビットストリームから判定される次のビンまたはビットが１次接頭語ビットまたは１次接尾語ビットであるかどうかを決定する。デコーダは、予想される次のビンまたはビットが、２値化されたシンタックス要素の１次接頭語または１次接尾語のビットであるかどうかについて、エントロピー符号化されたビットストリームの所定のシンタックスやり方から知っている。
【０４１８】
ステップ３４００で、予想されるビットが１次接頭語のビットであると判定された場合、デコーダは適応可能に変化する確率予測またはコンテクストモデルに基づくバイナリエントロピー復号化によってこのビットに対するビット値を決定する。つまり、デコーダは、選択するためにそれぞれの確率予測を使用して、上に説明したそれぞれの部分的ビットストリームを選択する。デコーダは、それぞれのコンテクストモデルタイプによって示される過去の復号化されたビンに基づいてこの適応可能に変化する確率予測を更新する。
【０４１９】
ビットが１次接尾語のビットである場合、３４０３において、次のビットまたはビン値が静的な確率モデルに基づくエントロピー復号化を行うことによって決定される。これは、実際のビットを含むビンに対して符号語を１：１でマッピングすることを含みうる。
【０４２０】
符号語全体のビットに対してビット値を達成するためのビットが残っている場合、デコーダは、３４０８において、ステップ３４００から３４０４を反復する。ステップ３４０８においてビットが残っていない場合、復号化プロセスはステップ３４１０において終了する。シンタックス要素が絶対変換係数レベルマイナス１である場合に図４４に示した符号化ツリーなどのそれぞれの２値化符号ツリーの後に続くことによって、デコーダは、シンタックス要素のバイナリ表現が終了した時、すなわち、復号化されたビットが実際のシンタックス要素の最後のビットであるか、を知ることができる。
【０４２１】
図５０は、図４９のプロセスによって取得される符号語から、符号語に２値化されたデータ値を復元するプロセスを示している。図４９のプロセスによって取得されるビット値はビットストリーム３４５０を形成する。上に説明したように、デコーダは、新しい符号語がビットストリーム３４５０上にくる時を知ることができ、新しい符号語のインスタンスは信号３４５２によって表わされる。
【０４２２】
ステップ３４５４の最小値抽出ステップにおいて、値ｍが符号語の１次接頭語の先頭の符号語をカウントすることによりバイナリ符号語から抽出される。このカウントはｍと等しい。ステップ３４５６においてｍとＳがチェックされ、ｍがＳと等しい場合（デコーダはどのシンタックス要素がどの２値化方式によって符号化されるかを知っているので、Ｓの値をデコーダは知っている）、ステップ３４５８の差分抽出ステップにおいて、ビットストリーム３４５０からの１次接頭語のビットに続くビットを受信し、これらのビットは符号語の１次接尾部分を形成する。ステップ３４５８の差分抽出ステップにおいて、復元されるデータ値ｘとカットオフ値Ｓとの差は、ビットストリーム３４５０の符号語の１次接尾語から復元される。
ステップ３４６０において、Ｓはステップ３３５８で復元された差ｘ−Ｓに加算され、実際に符号化されたシンタックス要素に対する値である、値ｘを得る。
最小値抽出ステップ４５４を示す擬似Ｃコードの例は次のようになる：
ｍ＝−１；                              ／計数パラメータを初期化し
ｆｏｒ（ｂ＝０；（ｂ−１）；ｍ＋＋）｛  ／の先頭ビットをビット単位で読み出し
ｂ＝ｒｅａｄ＿ｂｉｔｓ（１）；        ／符号語、各読出しの前に
ｉｆ（ｍ＝Ｓ）                        ／実際までに、ｋを増分し
ｂ＝０；                            ／読出したビットがゼロまたはｍ＝Ｓ
｝                                      
【０４２３】
差分抽出ステップ３４５８によって実行されるサブステップは、図５１に示されている。ステップ３５００において、差分抽出部は、値ｍを取得するために１次接尾語の先頭ビットをカウントする。次に、ステップ３５０２において、モーデョンベクトルの差が３であり、変換係数レベルの値が０である、ｋが、ゼロと比較される。ステップ３５０４において、ｋがゼロと等しい場合、ステップ３５０４において、ｍはゼロと比較される。この比較において、ｍ＝０の場合、ステップ３５０６において、データ値ｘが、モーションベクトルの差の場合に９であり、変換係数レベルの場合に１４である、カットオフ値Ｓと等しいことが推測される。
【０４２４】
ｋはゼロと等しくないおよび／またはｍがゼロと等しくない場合、ステップ３５０８において、次のｋプラスｍの後続ビットがビットストリーム３４５０、すなわち、２次接頭語の終端ビットに続くビットから、読み出される。よって、バイナリ（ｋ＋ｍ）ビット長さの表現として、Ａ＝ｘ−Ｓ＋２ｋ（１−２ｍ）が達成される。この等式から容易に求められるように、ｍ＝０の場合、Ａ＝ｘ−Ｓである。
【０４２５】
ステップ３５１０においてｍを０と比較し、ｍ＝０であることが判明した場合、バイナリ表現Ａから２ｋ（１−２ｍ）の値を減算してｘ−Ｓの値を得る。
【実施例６】
【０４２６】
この例において、実施例４はさらに拡張され、図３４、３５、３６、３７ａ、ｂ、３９、４５、４６〜４９が適用される。本実施例において、プリコードされたビデオ信号に含まれるシンタックス要素に対する符号化方式が提供され、この方式はより高い圧縮効果を可能にする。
【０４２７】
プリコードされたビデオ信号に含まれるシンタックス要素を符号化ビットストリームへ符号化するための方法が説明される。プリコードされたビデオ信号は少なくとも１つのビデオフレームを表し、このシンタックス要素はビデオフレームの所定の部分に関連付けられかつこのビデオフレームの所定の部分が１次または２次のいずれの方法でプリコードされたビデオ信号へプリコードされるかを示しており、この方法は、バイナリ値を取得するために、所定の部分に近接するビデオフレームの近接部分が第１の方法でプリコードされるかまたは第２の方法においてプリコードされるかを調査するステップと、このバイナリ値に基づいてビデオフレームの所定の部分へ少なくとも２つのコンテクストモデルの１つを割り当てるステップを含み、各コンテクストモデルは異なる確率予測に関連付けられる。最終的に、シンボル列の符号化は上記の実施形態のいずれかに基づいて行われ、少なくとも１つのシンボルはシンタックス要素の表現に関連している。この割当部は、それぞれのシンボルに割り当てられたコンテクストに関連付けられた確率分布予測に基づいてそれぞれのシンボルに対して確率分布の予測に対する測度を求めるように構成されている。これによって、選択部はそれぞれのエントロピーコーダを選択する。
【０４２８】
本発明の第２の態様によれば、この態様は、符号化されたビットストリームからシンタックス要素を復号化するための方法によって達成される。このシンタックス要素はプリコードされたビデオ信号内に含まれており、このプリコードされたビデオ信号は少なくとも１つのビデオフレームを表し、このシンタックス要素はビデオフレームの所定の部分に関連付けられかつこのビデオフレームの所定の部分が第１または第２のいずれの方法でプリコードされたビデオ信号へプリコードされるかを示しており、この方法は、バイナリ値を取得するために、所定の部分に近接するビデオフレームの近接部分が第１の方法でプリコードされるかまたは第２の方法でプリコードされるかを調査するステップと、このバイナリ値に基づいてビデオフレームの所定の部分へ少なくとも２つのコンテクストモデルの１つを割り当てるステップを含み、各コンテクストモデルは異なる確率予測に関連付けられ、上記実施形態のいずれかに基づいて少なくとも１つのシンボルがシンタックス要素の表現に関連しているシンボル列の復元が実行される。この割当部は、それぞれのシンボルに割り当てられたコンテクストに関連付けられた確率分布予測に基づいてそれぞれのシンボルに対して確率分布の予測に対する測度を求めるように構成されている。これによって、選択部はそれぞれのエントロピーデコーダを選択する。
【０４２９】
本実施例は、プリコードされたビデオ信号の符号化圧縮率がより高いであろうという発見に基づいている。ビデオフレームや画像の所定の部分に関連付けられかつビデオフレームの所定部分が第１または第２の方法のいずれによってプリコードされるかを示すシンタックス要素、すなわち、コントロール情報シンタックス要素が少なくとも２つのコンテクストモデルの１つに割り当てられる時、この割当ては、第１または第２の方法でプリコードされたビデオフレームの近接する部分に依存している。次に、シンタックス要素は、１つのコンテクストモデルが関連付けられた確率予測に基づいて符号化されたビットストリームへエントロピー符号化されうる。この測度によって、シンタックス要素の実際のまたは真の確率分布が同じタイプであるがビデオフレームの近接部分に関連付けられるシンタックス要素に依存することが利用され、実際の確率分布がより正確に近似され得る。
【０４３０】
したがって、より正確に調整可能な確率予測によって、プリコードされたビデオ信号に対する符号化されたビットストリームの圧縮率を上昇させることができうることは本発明の利点である。
【０４３１】
言い換えれば、本発明の一実施形態によれば、特定のタイプのシンタックス要素は、これがプリコードされたビデオ信号において出現するたびに少なくとも２つのコンテクストモデルのうちの異なる１つずつに割り当てられる。このコンテクストモデルの選択は、シンタックス要素が出現するたびに実行され、ビデオフレームの近接する部分が第１または第２のいずれの方法でプリコードされるかに依存している。実際には、この測度によって、プリコードされたビデオ信号に出現するこのタイプのすべてのシンタックス要素はいくつかのコンテクストモデルのグループにグループ化され、各シンタックス要素は１つのコンテクストモデルグループに属しており、各コンテクストモデルグループはコンテクストモデルの異なる１つに割り当てられ、かつ各コンテクストモデルは異なる確率予測に関連付けられる。したがって、各グループは、異なる確率予測に基づいてエントロピー符号化され、すなわち、その確率予測が割り当てられるコンテクストモデルに属している。
【０４３２】
本発明の他の実施形態によれば、各コンテクストモデルの確率予測は前に符号化されたシンタックス要素に適応され、この適応はコンテクストモデルごとに個別に実行される。言い換えれば、エントロピー符号化されたばかりの各シンタックス要素が、このシンタックス要素が割り当てられるコンテクストモデルの確率予測を適応させるために使用される。したがって、同じタイプでありかつ同じコンテクストモデルに割り当てられた後に続くシンタックス要素は、適応された確率予測によってエントロピー符号化される。この測度によって、コンテクストモデルは互いから独立して適応されまたは管理されるので、適応に撚り実際のまたは真の確率予測に対するより良好な近似が得られ、これによってより良好な圧縮率が得られる。
【０４３３】
本発明の具体的な実施形態によれば、空間依存性コンテクストモデルの選択はプリコードされたビデオ信号においてフレーム／フィールド符号化モードのフラグを符号化するために使用される。このフレーム／フィールド符号化モードのフラグは、それぞれのビデオフレーム部分がフレームまたはフィールド符号化のいずれのモードで符号化されるかどうかを示している。より正確には、本実施形態によれば、ビデオフレームはインターレースされたフレームであり、その画像サンプルの一部は１つの時刻でキャプチャされるが他の画像サンプルは他の時刻でキャプチャされ、この第１の画像サンプルは第１のフィールドと称され、第２の画像サンプルは第２のフィールドと称される。また、ビデオフレームは各々が２つのマクロブロックから成る、複数のマクロブロック対のアレイへ空間的に分割される。フィールドモードで符号化される場合、マクロブロック対内の１つのマクロブロックは第１のフィールドの画像サンプルまたは第２のフィールドの画像サンプルを含むのみであるが、そのマクロブロック対の他のマクロブロックはマクロブロック対内の他のフィールドの画像サンプルを含むかまたは表している。フレームモードで符号化される場合、マクロブロックは第１と第２のフィールド画像サンプルの両方、具体的には、マクロブロック対内に空間的にトップまたはボトムマクロブロックを含むが、同じマクロブロック対の他のマクロブロックはマクロブロック対内の他の画像サンプルを表している。
【０４３４】
シンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇに関して、以下により詳細に説明するように、ステージ２１００ａから渡されたビンにおいて同じビンまたは同じシンタックス要素が数回出現する場合、このシンタックス要素は前に入ってくるかまたは前にエントロピー符号化されたビンに基づいて異なるコンテクストモデルに割り当てられる。
【０４３５】
符号化配置２１００の演算について説明してきたが、以下では、本発明の実施形態によるシンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの取り扱いに関してその機能についてより詳細に説明する。このため、まず、図３０〜３１ｂに関して、このフラグの意味を説明する。
【０４３６】
さて、割当ては、マクロブロック対またはマクロブロック対のマクロブロックがプリコーダ２０１２によって符号化されるモードに依存しており、プリコータ４０１２によって出力されるプリコードされたビデオ信号に含まれるシンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの機能および意味を説明するために、ここでも、図２８を参照する。
【０４３７】
―プリコーダ４０１２がインターレースされたビデオフレームを表すビデオ信号を受信すると、プリコーダ４０１２は、ビデオフレーム４０１０を符号化する時に以下の決定を自在に行うことができる。
【０４３８】
―プリコーダは、１つの単一符号化フレームとしてこれらを符号化するために２つのフィールドを結合し、これにより、各マクロブロック対と各マクロブロックはフレームモードで符号化されうる。
【０４３９】
―あるいは、２つのフィールドを結合して、これらを個別の符号化されたフィールドとして符号化し、これにより各マクロブロック対と各マクロブロックはフィールドモードで符号化されうる。
【０４４０】
最後のオプションとして、２つのフィールドを結合してこれらを単一フレームとして圧縮するが、このフレームを符号化する際、マクロブロック対を符号化する前に、マクロブロック対を２つのフィールドマクロブロックの対かまたは２つのフレームマクロブロックの対のいずれかに分割する。
【０４４１】
３つのオプションからの選択は列内のフレームごとに適応可能に行うことができる。最初の２つのオプションからの選択は画像適応型フレーム／フィールド（ＰＡＦＦ）符号化と呼ばれる。フレームが２つのフィールドとして符号化される場合、各フィールドはマクロブロックに分割され、フレームに非常に類似した方法で符号化される。
【０４４２】
フレームが、いくつかの領域が移動するが、他が移動しない混合領域から成る場合、一般に、フレームモードでは非移動領域を符号化し、移動領域をフィールドモードで符号化することがより効率的である。したがって、フレーム／フィールド符号化はフレーム内のマクロブロックの縦の対ごとに個別に決定することができる。これは、上に示したオプションの第３の符号化のオプションである。この符号化オプションはマクロブロック適応型フレーム／フィールド（ＭＢＡＦＦ）符号化と呼ばれている。以下に、プリコーダ４０１２がこのオプションだけを使用する決定をしたと想定する。上述のように、ＭＢＡＦＦ符号化は、符号化モードタイプ（フィールドまたはフレームモード）をシーンの各領域へより良好に適応させることを可能にする。たとえば、プリコーダ４０１２は、フレームモードにおいてビデオシーンの固定領域に配置されているマクロブロック対を符号化する一方、フィールドモードにおいて速い動きを示すシーンの領域内のマクロブロック対を符号化する。
【０４４３】
上述のように、フレームモードで符号化されたマクロブロック対に対して、各マクロブロックはフレームラインを含む。フィールドモードで符号化されたマクロブロック対に対して、トップマクロブロックはトップフィールドラインを含み、ボトムマクロブロックはボトムフィールドラインを含む。マクロブロック対ごとのフレーム／フィールドは、プリコーダ４０１２によってマクロブロック対レベルで決定される。すなわち、トップマクロブロックがフィールド符号化される場合、これが、同じマクロブロック対内にあるボトムマクロブロックにも適用される。この測度によって、基本的なマクロブロック処理構造がそのまま維持されており、動き補正領域はマクロブロックと同サイズにすることが許可される。
【０４４４】
フィールドマクロブロック対の各マクロブロックはＰＡＦＦ符号化のフィールド内のマクロブロックに非常に同様に処理される。しかし、フィールドとフレームのマクロブロック対の混合がＭＢＡＦＦフレーム内で出現することもあるので、この混合を説明にするためにＰＡＦＦ符号化と比較した場合、動きベクトルの予測、イントラ予測モードの予測、イントラフレームサンプル予測、エントロピー符号化におけるデブロックフィルタリングおよびコンテクストモデリング、および変換係数のジグザグスキャンなどの、プリコーダ４０１２におけるプリコード手順のいくつかの工程が変更される。
【０４４５】
要約すると、プリコーダ４０１２によって出力されるプリコードされたビデオ信号は、使用を決定した符号化プリコーダ４０１２のタイプに依存する。本明細書で想定されるように、ＭＢＡＦＦ符号化の場合、プリコードされたビデオ信号は、スキップされなかったマクロブロック対の各々に対して、フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇを含む。フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇは、各マクロブロック対に対して、対応するマクロブロックがフレームまたはフィールド符号化モードのいずれで符号化されるかということに属していることを示す。デコーダサイドにおいて、このフラグはプリコードされたビデオ信号を正確に復号化するために必要とされる。マクロブロック対のマクロブロックがフレームモードで符号化される場合、フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇはゼロであり、他の場合においてこのフラグは１である。
【０４４６】
さて、図２９の元のデコーダの配置の一般的な動作モードを特別なビンに言及せずに説明したが、図５２では、フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇのバイナリエントロピー符号化に関して、この配置の機能性を説明する。
【０４４７】
図５２に示すプロセスは、フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇがコンテクストモデラ４１１２の入力に到達した時点でスタートする。第１のステップ４３００において、コンテクストモデラ４１１２は、入ってくるシンタックス要素またはビンがｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇであるかどうかを判定する。そうでない場合は、コンテクストモデラ４１１２は、ステップ３０２において手順またはサブルーチンを取り扱う別のシンタックス要素へ切り替える。入ってくるビンがｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇである場合、ステップ３０４において、コンテクストモデラ４１１２はフラグがどのコンテクストモデルに属するかを判定する。
【０４４８】
ステップ４３０４を図５３においてより詳細に示す。現在のｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇに対応するコンテクストモデルを決定するとき、コンテクストモデラ４１１２は、ステップ４３０６において、現在のマクロブロック対の左と上のマクロブロック対のトップマクロブロックのアドレスを最初に計算する。
【０４４９】
次のステップ４３０８および４３０９において、コンテクストモデラ４１１２は、現在のマクロブロック対の左と上のマクロブロック対それぞれのトップマクロブロックの利用可能性を判断する。ステップ４３０８において、ｍｂＡｄｄｒＡが０より小さい場合、左の近接するマクロブロックＡは利用可能であるとマークされる。これは、ステップ４３０９のｍｂＡｄｄｒＢについても同様に適用される。したがって、ＮがＡまたはＢのいずれかであるＭｂＡｄｄｒＮは、マクロブロック対が実際に存在する場合、それぞれの近接するマクロブロック対のトップマクロブロックのアドレスであると同時に、それぞれの近接マクロブロック対ＡおよびＢそれぞれの利用可能性の状態を示す。
【０４５０】
代替実施形態において、上記の条件のほかに以下：「アドレスｍｂＡｄｄｒＮを有するマクロブロックが現在のスライスと同じスライスに属する」の条件が真である場合、マクロブロックＡまたはＢは利用可能であるとマークされるのみである。
【０４５１】
ステップ４３０８／４３０９において、ＮがＡまたはＢのいずれかであるマクロブロックＮが利用可能であるとマークされた場合、ステップ４３１０とステップ４３１１のそれぞれにおいて、マクロブロックＮ（ＮはＡまたはＢと等しい）がフィールドモードで符号化されたマクロブロックであるかまたはフレームモードで符号化されたマクロブロックであるかが判定される。マクロブロックＡがフィールドモードで符号化される場合、ステップ４３１２においてフラグｃｏｎｄＴｅｒｍｆｌａｇＡは１に設定される。これはマクロブロックＢにも同様に適用され、マクロブロックＢがフィールドモードで符号化される場合、ステップ４３１３においてｃｏｎｄＴｅｒｍｆｌａｇＢは１に設定される。全ての他のケースにおいて、すなわち、ｍｂＡｄｄｒＡが０より小さい（４３０８）またはマクロブロックＡがフレームモードで符号化される場合（４３１０）、ステップ４３１４において、フラグｃｏｎｄＴｅｒｍＦｌａｇＡは０に設定される。したがって、ｍｂＡｄｄｒＢが０より小さい（４３０９）またはマクロブロックＢがフレームモードで符号化される場合（４３１１）、ステップ４３１５において、フラグｃｏｎｄＴｅｒｍＦｌａｇＢは０に設定される。
【０４５２】
ステップ４３１６において、ｃｏｎｄＴｅｒｍＦｌａｇＡとｃｏｎｄＴｅｒｍＦｌａｇＢがコンテクストモデラ４１１２によって使用されて、ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇのバイナリエントロピー符号化に使用される確率モデルを示すコンテクストインデックスｃｔｘＩｄｘＭｂＦｉｅｌｄを計算する。具体的には、コンテクストモデラは、
ｃｔｘＩｄｘＭｂＦｉｅｌｄ＝ｃｏｎｄＴｅｒｍＦｌａｇＡ＋ｃｏｎｄＴｅｒｍＦｌａｇＢ
を計算し、多数の｛０、１、２｝が得られる。
【０４５３】
図５２に戻って、ステップ４３０４の判定の後、コンテクストモデラ４１１２は、正規の符号化エンジン４１１８へｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇと共にｃｔｘＩｄｘＭｂＦｉｅｌｄによってインデックス付けされた変数ｃｔｘＩｄｘＭｂＦｉｅｌｄ（コンテクストインデックスマクロブロックフィールド）または確率予測状態を渡し、次に、上記した実施形態のいずれかに基づいて構築される。すなわち、上記の実施形態の割当部は、ステップ４３０４において決定されたコンテクストを介して決定された確率に基づいて部分的ビットストリームを選択するためのパラメータを設定すると、選択部はそれぞれの部分的ビットストリームパスへｃｔｘＩｄｘＭｂＦｉｅｌｄのビンを送る。ステップ４３１８において、フラグｍｂ＿ｆｉｅｌｄ＿は、次に、ｃｔｘＩｄｘＭｂＦｉｅｌｄによりインデックス付けされるコンテクストモデルの現在の確率状態に基づいて選択されたそれぞれの部分的ビットストリームに符号化される。
【０４５４】
その後、正規の符号化エンジン４１１８は、パス４１１７を経由してｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇのビン値をパスしてコンテクストモデラ４１１２へ戻す。そして、コンテクストモデラ４１１２は、ステップ４３２０において、その確率予測状態に関して、ｃｔｘＩｄｘＭｂＦｉｅｌｄによりインデックス付けされたコンテクストモデルを適応させる。その後、出力４１２４におけるフラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇのビットストリームへの符号化のプロセスは、４３２２で終了する。
【０４５５】
図５４はエントロピーデコーダ４４００によって実行される復号化プロセスをより詳細に示す。まず、ステップ４５００において、デコーダ４４００は、復号化する次のビンがｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇであるかどうかをチェックする。そうでない場合、ステップ４５０２において、デコーダ４００は、他のビンハンドリングプロセス（図示しない）へ切り替える。肯定の場合、ステップ４５０４において、デコーダ４４００は、フラグが属するコンテクストモデルを決定する。ステップ４５０４は、符号化プロセスにおけるステップ４３０４と同様に、または図５３に示すように実行される。
【０４５６】
次に、ステップ４５０６において、実際のビン、すなわち、ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇは、ステップ４５０４で得られたｃｔｘＩｄｘＭｂＦｉｅｌｄによってインデックス付けされたコンテクストモデルの実際の確率状態を使用してインデックス付けすることによってそれぞれの部分的ビットストリームエントロピーデコーダから得られる。このステップの結果は、ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇに対する値である。その後、ステップ４５０８において、ｃｔｘＩｄｘＭｂＦｉｅｌｄ確率状態は、ステップ４３２０と同様に、適応または更新される。その後、ステップ４５１０においてプロセスは終了する。
【０４５７】
ステップ４５０４における判定により、マクロブロックがマクロブロックＡとＢのフラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇ（図２２）が既に前にプリコードされていることを保証する適切な順でプリコードされたビデオ信号を介してステップ実行されるので、同じインデックスｃｔｘＩｄｘＭｂＦｉｅｌｄが得られる。したがって、コンテクストモデルは、ステップ４５０４において、エンコーダサイドのケースと同じく、近接マクロブロックの前に復号化されたフラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇに基づいて推論される。
【０４５８】
上記の実施例は、マクロブロックまたはマクロブロック対のフレーム／フィールドモード符号化を示すフラグに限定されないことに留意されたい。むしろ、上記の説明は、他のシンタックス要素にも適用することができる。
【０４５９】
ステップ４３１０に関して、以下に留意されたい。通常、マクロブロックはプリコードされたビデオ信号に符号化される。にもかかわらず、たとえば、このマクロブロックの対応する変換係数レベルはすべてある量子化しきい値よりも小さいので、マクロブロックは符号化またはスキップされないということがある。したがって、いくつかのマクロブロックに対して、利用可能なｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇが存在しない。よって、後者がスキップされたものである場合、ステップ４３１０は、それぞれの近接マクロブロックのｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇを単に調査しただけでは実行できない可能性がある。ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇが（図２２のＡまたはＢを含む）近接マクロブロック対のいずれかのマクロブロックに対して存在しない場合（ボトムマクロブロックがｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇを有する場合、このマクロブロックがＡまたはＢのｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇとなるように選択される）、以下が適用される（Ａを含むマクロブロック対が欠落していると想定される）：
・同じスライス内の（Ａの）左に近接マクロブロック対が存在する場合、（Ａの）ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの値は（Ａを含む）現在のマクロブロック対の左の近接マクロブロック対に対するｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの値と等しいと推論されるべきである。
・同じスライス内の（Ａの）左に近接マクロブロック対が存在しないが、同じスライス内の（Ａの）上に近接マクロブロック対が存在する場合、（Ａの）ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの値は（Ａを含む）現在のマクロブロック対の上の近接マクロブロック対のｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの値と等しいと推論されるべきである。
・それ以外の場合（（Ａを含む）現在のマクロブロック対の左にも上にも近接マクロブロック対が存在しない場合）、（Ａの）ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの値はゼロと等しいと推論されるべきである。
言うまでもなく、上記のステップは単にＡからＢに切り替えることによって、トップマクロブロックＢにも適用される。
【０４６０】
さらに、ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇをエントロピー符号化するためのコンテクストモデルを決定するために、図２２および３４に関して説明した近接関係以外の近接関係を使用してもよい。
【０４６１】
さらに、すでに述べたように、上記実施形態はまた、他のコントロールシンタックス要素や他のビンにも適用可能である。また、本発明はバイナリエントロピー符号化に限定されず、他のシンボルエントロピー符号化にも適用できる。さらに、スライス、マクロブロック対、マクロブロック、画像素子等へのビデオフレームへの分割は例示目的のためだけになされており、本発明の範囲をこの特殊なケースに限定することを意図していない。
【実施例７】
【０４６２】
この例において、実施例４はさらに拡張され、図３４、３５、３６、３７ａ、ｂ、３９、４５、４６〜４９が適用される。実施例７によれば、ビデオフレームや画像を符号化する方法は、第１のタイプの部分および第２のタイプの部分においてビデオフレームや画像を分割するステップであって、第１のタイプの部分は第１のスキャンパターンに関連付けられ、第２のタイプの部分は第１のスキャンパターンとは異なる第２のスキャンパターンに関連付けられるステップと、ビデオフレームや画像の所定の部分に対応するデータを変換係数の２次元アレイへ変換するステップであって、スキャン順序は所定部分のスキャンパターンによって変換係数の中で定義づけられ、スキャン順序は各変換係数を一意のスキャン位置を割り当てるステップと、変換データユニットを得るために所定の変換係数をプリコードするステップと、所定の部分が第１または第２のスキャンパターンに関連付けられるタイプの部分であるかどうかに従って、コンテクストモデルの第１及び第２の集合の１つを選択するステップであって、第１と第２の集合は互いに異なっている、ステップと、所定の変換係数に割り当てられたスキャン位置に基づいてコンテクストモデルの第１および第２の集合の選択された１つのコンテクストモデルを変換データユニットへ割り当てるステップであって、各コンテクストモデルは異なる確率予測に関連付けられるステップと、割り当てられたコンテクストモデルが上記の実施形態のいずれかを使用して関連付けられる確率予測に基づいて変換データユニットまたはこのサブユニットを符号化されたビットストリームへ符号化するステップと、を含む。
【０４６３】
実施例７によれば、符号化されたビットストリームから変換データユニットまたはそのサブユニットを復号化することを説明しており、この変換データユニットは、ビデオフレームまたは画像の複数の部分のうちの所定の部分に対応するデータの変換の結果である変換係数の所定の変換係数のプリコードされたバージョンであり、これらの部分は第１のスキャンパターンに関連付けられた第１のタイプの部分または第２のスキャンパターンに関連付けられた第２のタイプの部分のいずれかであり、この方法は、所定の部分が第１または第２のいずれのスキャンパターンに関連付けられているタイプの部分であるかに基づいて、コンテクストモデルの第１と第２の集合のいずれか１つを選択するステップであって、第１の集合と第２の集合は互いに異なっているステップと、所定の変換係数に割り当てられたスキャン位置に基づいてコンテクストモデルの第１の集合または第２の集合の選択されたいずれか１つの集合のコンテクストモデルを変換データユニットまたはそのサブユニットに割り当てるステップであって、各コンテクストモデルは異なる確率予測に関連付けられている、ステップと、上記実施形態のいずれかを使用して、割り当てられたコンテクストモデルが関連付けられる確率予測に基づいて、符号化されたビットストリームから変換データユニットまたはそのサブユニットを復号化するステップと、を含む。
【０４６４】
コンテクストモデルの異なる集合が、コンテクストモデルの異なる集合が異なるスキャンパターンに関連付けられたビデオフレームまたは画像の部分に関連する変換データユニットまたはそのサブユニットを符号化するために使用される場合と比較した際、第１のスキャンパターンに関連付けられたビデオフレームまたは画像の部分に関連している変換データユニットまたはそれらのサブユニットを符号化するために使用される場合、ビデオフレームや画像から得られる変換データユニットまたはそれらのサブユニットがより圧縮された方法で符号化され得ることは有利であることを見出した。この測度によって、コンテクストモデルが、異なるスキャンパターンであることによる同一のスキャン位置に属している変換データユニット間で異なる可能性のある実際のシンボル統計へより高い精度で適応することができる。実際の確率分布をより高精度に近似させることができるので、符号化されたビットストリームの圧縮率を向上させることができる。さらに、異なるコンテクストモデルが異なるスキャンパターンに関連付けられた画像部分に関連した変換データユニットに使用されるので、そのコンテクストモデルの確率予測の更新に貢献する変換データユニットはより均一な実際の確率分布を示すことから、更新された確率予測は実際の確率分布をより高精度に近似させる。同様に、異なるコンテクストモデルの集合を提供することによって、コンテクストモデルの確率予測を実際の確率分布に対してより高精度に初期化することができる。したがって、符号化されたビットストリームの圧縮率をさらに上昇させることができる。
【０４６５】
マクロブロック適応型フレーム／フィールド符号化を説明してきたが、本発明の実施形態による符号化方式の実施中のフレームおよびフィールドマクロブロックの一般的な取り扱いを、図５５を参照して、説明する。図５５は、図２８のプリコーダ２０１２とエントロピーコーダ２０１４によって実行されるフレームおよびフィールドマクロブロックを符号化するステップを示している。
【０４６６】
図５５は、図３４に関して説明されたように、マクロブロック対５０１０ｂ１および５０１０ｂ２に既に分割されているビデオフレームまたは画像５０１０を符号化するプロセスを示している。図５５において、マクロブロック対５０１０ｂ１と５０１０ｂ２の２つのみが例示されている。マクロブロック対５０１０ｂ１がフィールド符号化されるが、マクロブロック対５０１０ｂ２はフレーム符号化されると想定される。マクロブロック対５０１０ｂ１と５０１０ｂ２に属している画素サンプルはプリコーダ５０１２へ渡され、ステップ５２７０において処理される。ステップ５２７０は、マクロブロック対５０１０ｂ１と５０１０ｂ２の画像サンプルから予測される画素サンプルを減算し、空間ドメインからの差分をスペクトルドメインへ変換することを含む。ステップ５２２０の結果は、各マクロブロック対５０１０ｂ１および５０１０ｂ２ごとの変換係数のいくつかの２次元アレイであり、変換係数の各２次元アレイは、４×４の画素サンプルのサブパートまたは画素サンプルの差分などのマクロブロック対５０１０ｂ１と５０１０ｂ２のマクロブロックのサブパートに属している。図５５は、２５７２で示される、マクロブロック５０１０ｂ１から求められる変換係数の１つの２次元アレイと、マクロブロック５０１０ｂ２から求められる変換係数の他の２次元アレイ５２７４と、を例示している。たとえば、アレイ５２７２および５２７４は４×４のアレイである。これらはマクロブロック対５０１０ｂ１と５０１０ｂ２のマクロブロックの１つの予測残の４×４のブロックに適用されるＤＣＴによって取得することができる。たとえば、マクロブロックは１６×１６の大きさのサンプルである。この場合、予測残の１６個の４×４のブロックはマクロブロックごとに１６個の４×４の変換係数アレイへ変換されうる。ＤＣＴは４×４の離散コサイン変換または同様の特性を有する分離可能な整数変換でありうる。デコーダサイドの逆変換の不整合は変換マトリクスを逆変換が正確な整数演算によって定義されるように定義付けることによって回避されうる。
【０４６７】
ここで、以下において、変換係数のアレイ５２７２を得た画素サンプルの４×４ブロックは、図３１Ｂに示すように、マクロブロック２２５２内の画素１〜４、２１〜２４、４１〜４４、および６１〜６４のブロックに対応し、アレイ５２７４が関連している画素サンプルの４×４ブロックは、図３１Ａに示すように、マクロブロック２２５０の画素サンプル１〜４、１１〜１４、２１〜２４、および３１〜３４を含むと仮定する。
【０４６８】
図示されているように、ステップ５２７０の変換が適用される４×４ブロック内の画素間の空間的関係は、フィールドマクロブロックとフレームマクロブロックで異なる。具体的には、列に沿った画素ピッチは、フィールドマクロブロックに比べると、フレームマクロブロックの場合は倍になっている。したがって、アレイ５２７２および５２７４において同じアレイ位置を想定する２つの変換係数は異なる頻度に関係する。このため、前述したように、異なるスキャンパターンが、アレイ５２７２および５２７４における変換係数間のスキャン順を定義するために使用される。この理由は、下位の頻度の変換係数がゼロである可能性が高いためである。したがって、異なるスキャン順序が、それらが関連する頻度に基づいて変換係数をソートするために使用される。
【０４６９】
図５６は、フレームおよびフィールドマクロブロックに使用されるスキャンパターンの例を示す。５２７４において、図示したように、変換係数の２次元アレイはフレームマクロブロックから得ることができる。各アレイ位置において０から１５までの数字が書きこまれ、この数字はそれぞれの変換係数のスキャン位置を示している。矢印５２７６はスキャンパターンを表している。図示するように、フレーム符号化されたマクロブロックに関連する変換係数間のスキャン順序を定義するために使用されるスキャンパターン５２７６は、アレイ５２７４の１コーナーで開始しこの開始コーナーの正反対に配置されたコーナーに対して斜めに進行するジグザグスキャンにおいて、スキャンされる。図５６において、スキャン位置０を有するアレイ５２７４の左上のコーナーの変換係数が列と行の方向にＤＣ成分を表すが、正反対に配置されたスキャン位置５０１５を有する変換係数は列と行の方向に最大頻度部分を表すと想定される。
【０４７０】
図５６の右側において、図示のようにフィールドマクロブロックに関連した変換係数アレイ５２７２用のスキャンパターン。繰り返しになるが、４×４の変換係数アレイ５２７２の各配列位置は、スキャン位置番号によって指定されている。フィールドマクロブロックの場合のスキャンパターンは矢印５２７８で示されている。見て分かるように、フィールド符号化されたマクロブロックに対するスキャンパターン５２７８は、フレーム符号化されたマクロブロックに対するスキャンパターン５２７６とは異なる。両方のスキャンパターン５２７６と５２７８は、変換係数０から１５の間でスキャン順序を定義する。
【０４７１】
図５５に戻って参照すると、プリコーダ５０１２はステップ５２８０に進み、ここで、アレイ５２７２および５２７４で変換係数を変換データユニットの列５２８２および５２８４へプリコードする。ステップは図５７に関してより詳細に説明されており、４つの行を有する表を示している。最初の行において、０から８のスキャン位置が記載されている。２番目の行において、スキャン位置０から８に対して可能な変換係数レベルに対する例が与えられる。８より大きいスキャン位置における変換係数レベルはすべて０であると想定される。
【０４７２】
さて、５２８０のプリコードを実行する場合、プリコーダ５０１２はスキャン位置０で開始されるスキャン順序で変換係数を実行し、各変換係数において、以下のステップを実行する：
１．変換係数が０でない場合、すなわち、変換係数が有意である場合、プリコーダ５０１２は、このスキャン位置に対するｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇを１に設定する。それ以外の場合、プリコーダ５０１２はｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇをゼロに設定する。図示されているように、スキャン位置０における最初の変換係数レベルは９であり、よって、図５７における３番目の行で見られるように、このスキャン位置に対するｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは１である。
２．有意な変換係数に対して、この変換係数がスキャン順における変換係数内の最後の有意変換係数であるかどうかが証明される。そうである場合、創出された現在のスキャン位置に対するｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは１に設定される。それ以外の場合、現在のスキャン位置に対するｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは０に設定される。図５７の最後の行に示されるように、この実施例において、有意である最後の変換係数レベルはスキャン位置８における変換係数である。したがって、この変換係数に対するｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは１に設定されるが、スキャン位置０、２、３、および６における他の有意変換係数に対するｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは０に設定される。
３．すべての有意変換係数について、プリコーダ５０１２は、これらの変換係数を指定するシンタックス要素を作成する。
【０４７３】
要約すると、プリコーダ５０１２は、最初のスキャン位置から最後の有意変換係数のスキャン位置までの変換係数ごとに、それぞれの変換係数が有意でない場合はｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ、または、変換係数が有意である場合はそれぞれの変換係数の値を指定する、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇと、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとデータのいずれかから成る変換データユニットを作成する。このように得られた全てのシンタックス要素ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは有意である変換係数のスキャン位置を表す有意性マップを形成する。
【０４７４】
プリコーダ５０１２は、シンタックス要素の線形ストリーム、すなわち、プリコードされたビデオ信号５２８６内へ列５２８２と５２８４を組み込む。これらのシンタックス要素の順序を以下に示す。
【０４７５】
一般に、まず、有意性マップに対応するシンタックス要素が送信され、これに続いて、有意変換係数を逆スキャン順に示す値が送信される。具体的には、列５２８２と５２８４の最初のシンタックス要素は、スキャン位置０のｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇである。スキャン位置０の変換係数が有意である場合、スキャン位置０のｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇの後にそのスキャン位置に対するｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが続く。その後、次のスキャン位置のｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ、すなわち、スキャン位置１などが送信される。非ゼロ変換係数を有する最後のスキャン位置のｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇを送信した後、非ゼロ変換係数に対する非バイナリ値が逆スキャン順に送信される。図５７の例において、シンタックス要素ストリーム２８６のシンタックス要素は（最初のシンタックス要素から始まって）、１、０、０、１、０、１、０、０、０、１、０、０、１、１、１、−１、３、−５、９である。
【０４７６】
更に３個のシンタックス要素５２８６がシンタックス要素方向を取り扱うエントロピーコーダ５０１４に送られる。よって、以下の説明は、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇの取り扱いに集中している。このようなフラグがエントロピーコーダ５０１４に到達すると、エントロピーコーダ５０１４は、ステップ５２８８において、２次元変換係数マトリクスを、現在のシンタックス要素ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが属する変換データユニットの列へマッピングするために使用されたスキャンパターンに基づいて、２つのコンテクストモデルの集合５２９０と５２９２のいずれか１つを選択する。ステップ５２８８を実行するために、エントロピーコーダ５０１４は、現在のシンタックス要素が属する現在のマクロブロックの前述したｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇを調べ、このフラグはスキャンパターン５２７８が使用されていた場合に現在のマクロブロックがフィールドモードで符号化されるか、または、スキャンパターン５２７６が使用されていた場合に現在のマクロブロックがフレームモードで符号化されたか、を示す。
【０４７７】
次のステップにおいて、エントロピーコーダ５０１４は、コンテクストモデルの集合５２９０および５２９２のうち選択された１つの集合の１つのコンテクストモデルを、そのスキャン位置に基づいて符号化される現在のシンタックス要素へ、割り当てる。この測度によって、たとえば、列５２８２のスキャン位置２に属しているシンタックス要素ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは、列５２８４のスキャン位置２においてｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇに割り当てられたコンテクストモデルとは異なるコンテクストモデルの集合５２９０のコンテクストモデルを得る。これは、列５２８２および５２８４のスキャン位置を定義付けるために使用される様々なスキャンパターンによる、これらのスキャン位置におけるシンタックス要素ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇに対する異なる確率分布をもたらす。
【０４７８】
最後に、ステップ５２９６において、現在のシンタックス要素は、選択されたコンテクストモデルの集合から割り当てられたコンテクストのモデルを使用してバイナリエントロピー符号化される。これは上記の実施形態において説明したように行われる。すなわち、選択されたコンテクストの確率予測を用いてそれぞれの部分的ビットストリームを選択することである。
【０４７９】
以下において、図５８に関して、図５５に続いてエントロピーコーダ５０１４によって実行されるステップ５２８８、５２９４、および５２９６をより詳細に説明する。
【０４８０】
図５８に示すプロセスは、シンタックス要素がコンテクストモデラ５１１２の入力に到達した時点でスタートする。最初のステップ５３００において、コンテクストモデラ５１１２は、入ってくるシンタックス要素またはビンがｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであるかどうかを判定する。否定されれば、ステップ５３０２において、コンテクストモデラ５１１２は入ってくるシンタックス要素またはビンが、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであるかどうかを判定する。否定されれば、ステップ５３０４において、コンテクストモデラ５１１２は、手順またはサブルーチンを取り扱う別のシンタックス要素へ切り替える。現在のシンタックス要素がｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇである場合、ステップ５３０６において、このフラグがフレーム符号化されたマクロブロックかまたはフィールド符号化されたマクロブロックのいずれに属しているかどうかがチェックされる。ステップ５３０６は、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが属している変換係数のスキャン位置がスキャンパターン５２７６またはスキャンパターン５２７８のいずれによって判定されるかをチェックすることと等しい。ステップ５３０２において、シンタックス要素がｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであると判定される場合、同じチェックがステップ５３０８において実行される。ステップ５３００、５３０２、５３０６、および５３０８は、シンタックス要素の到達時に、可能なシナリオを５つのケースに制限する。最初のケースはすでに言及されており、現在のシンタックス要素がｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇでもｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇでもないときに存在する。このケースでは、ステップ５３０４において、別のシンタックス要素の取り扱いが実行される。第２のケースにおいて、シンタックス要素はフィールドコードマクロブロックに属するｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであり、この場合、ステップ５３１０において、コンテクストインデックスオフセット値は、値ｏｆｆｓｅｔ１に設定される。第３のケースにおいて、現在のシンタックス要素はフレーム符号化されたマクロブロックに属するｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであり、ステップ５３１２において、インデックスｃｔｘＩｄｘ  Ｏｆｆｓｅｔはｏｆｆｓｅｔ２に設定される。同様に、第４と第５のケースにおいて、シンタックス要素はフィールド符号化またはフレーム符号化されたマクロブロックに属しているｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであり、ステップ５３４０において、インデックスｃｔｘＩｄｘ  Ｏｆｆｓｅｔはｏｆｆｓｅｔ３に設定され、ステップ５３１６においてｏｆｆｓｅｔ４にそれぞれ設定される。インデックスｃｔｘＩｄｘ  Ｏｆｆｓｅｔはコンテクストモデルの共通の一覧を指し示すためにある。ｏｆｆｓｅｔ１〜ｏｆｆｓｅｔ４までの値は互いに異なる。
【０４８１】
ステップ５３１０〜５３１６以降、ステップ５３１８において、インデックス増分子ｃｔｘＩｄｘＩｎｃ（コンテクストインデックス増分子）は、シンタックス要素、すなわち、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが属しているスキャン位置（ｓｃａｎｎｉｎｇＰｏｓ）と等しく設定される。その後、ステップ５３２０において、コンテクストインデックスは、コンテクストインデックスオフセットｃｔｘＩｄｘ  Ｏｆｆｓｅｔおよびインデックス増分子ｃｔｘＩｄｘ  Ｉｎｃとの合計によって求められる。ステップ５３００〜５３２０は、コンテクストモデラ５１１２によって実行される。ステップ５３２０の結果は、シンタックス要素のバイナリエントロピー符号化に使用される確率モデルを示すコンテクストインデックスｃｔｘＩｄｘである。
【０４８２】
ｃｔｘＩｄｘの決定後、コンテクストモデラ５１１２は、そのシンタックス要素自体と一緒に、すなわち、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇと一緒に、上記に概述されたように、上記の実施形態のいずれかに基づいて構成される正規の符号化エンジン１１８に対して、ｃｔｘＩｄｘによりインデックス付けされた変数ｃｔｘＩｄｘまたは確率予測状態を渡す。これらの入力に基づいて、正規の符号化エンジン５１１８は、ステップ５３２２において、ｃｔｘＩｄｘによりインデックス付けされたコンテクストモデルの現在の確率状態を使用してシンタックス要素をビットストリーム５１２４内へエントロピー符号化する。
【０４８３】
その後、正規の符号化エンジン５１１８が、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇのビン値をそれぞれ、パス１１７を経由して、コンテクストモデラ５１１２へ戻すと、ステップ５３２４において、コンテクストモデラ５１１２は、ｃｔｘＩｄｘによりインデックス付けされたコンテクストモデルをその確率予測状態に対して適応させる。その後、ステップ５３２６において、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇを出力５１２４におけるビットストリーム内へ符号化するプロセスが終了する。
【０４８４】
以上から明らかであろうように、ステップ５３００〜５３１６は、図５５のステップ５２８８に属しているが、ステップ５３１８および５３２０は、ステップ５２９４に属しており、ステップ５３２２および５３２４はステップ５２９６に属している。
【０４８５】
実際の復号化プロセスを詳細に説明する前に、解析プロセスが図５９に例示されており、図５９は、エントロピーデコーダ５４００において実行される解析プロセスに対する擬似Ｃコードを示している。図５９に示されるこの解析プロセスは、有意性マップと係数値が図５７に関して上に説明したように符号化されること、すなわち、有意性マップがスキャン順に続くとともに逆スキャン順に順序づけられた有意性変換係数の係数値に先行することを前提に、マクロブロックに対するその対応する係数値とともに有意性マップを解析するために適切である。
【０４８６】
図５９において、太字で書かれている変数はエントロピーデコーダ５４００に到達するエントロピー符号化されたビットストリームから読み出される。読み出しには、バイナリエントロピー復号化が使用される。ビンｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇに対する読み出しプロセスは図６０により詳細に示される。解析プロセスは、図５９の擬似Ｃコードの１行目に見られるようにｒｅｓｉｄｕａｌ＿ｂｌｏｃｋ＿ＣＡＢＡＣと呼ばれる。このプロセスｒｅｓｉｄｕａｌ＿ｂｌｏｃｋ＿ＣＡＢＡＣの出力は、図５７に示されるようなスキャン位置ごとに変換係数レベルを示す１次元アレイｃｏｅｆｆＬｅｖｅｌである。入力として、プロセスｒｅｓｉｄｕａｌ＿ｂｌｏｃｋ＿ＣＡＢＡＣはマクロブロック内の係数の最大数を示す変数ｍａｘＮｕｍＣｏｅｆｆ、本実施例では、１６を受信する。
【０４８７】
次に、プロセスは、現在のブロックにおいてすべての変換係数レベルがゼロであるかどうかを示すｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇと呼ばれるフラグの読み出しから、２行目でスタートする。この場合、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇはゼロであり、それ以外の場合、このｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇは１である。以下において、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇは１であり、よって、少なくとも１つの変換係数レベルはゼロにならないと想定する。よって、４行目において、変数ＮｕｍＣｏｅｆｆはｍａｘＮｕｍＣｏｅｆｆに設定される。これは、以下の１と等しいｗｈｅｎ―ｄｏ―ｌｏｏｐ  ｎｏ  ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが読み出される場合、最後の有意変換係数のスキャン位置が係数ｍａｘＮｕｍＣｏｅｆｆの最大数と等しいことを意味する。５行目において、カウンタｉはゼロに初期化される。以下の６行目でスタートするｗｈｉｌｅ―ｄｏ―ｌｏｏｐにおいて、まず、１つのビンが読み出され、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇへ入力される。図５９に関して、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは１次元アレイである。７行目で読み出されるビンは、アレイｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ、すなわち、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ［ｉ］の位置ｉに置かれる。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ［ｉ］が１（８行目）である場合、すなわち、スキャン位置ｉにおける係数が有意である場合、次のビンは、ビットストリーム、すなわち、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ［ｉ］から読み出される。ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ［ｉ］が１である場合（１０行目）、すなわち、スキャン位置ｉにおける変換係数がスキャン順において最後の有意変換係数である場合、変数ＮｕｍＣｏｅｆｆは１１行目においてｉ＋１に設定され、これも１次元アレイであるｃｏｅｆｆＬｅｖｅｌは、ｉ＋１と等しいかこれより大きい全ての位置において、ゼロに設定される（１２および１３行目）。これは、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが１であるスキャン位置以降の、全ての後続するスキャン位置の変換係数がゼロであることを意味する。
【０４８８】
両方の条件節（１４および１５行目）の後、カウンタｉが１６行目において増分される。最後に、１７行目において、カウンタｉがＮｕｍＣｏｅｆｆ―１より大きいかこれと等しいかが証明される。これが肯定された場合、ｗｈｉｌｅ―ｄｏ―ｌｏｏｐが再度、繰り返される。したがって、５行目から１７行目において、有意性マップはビットストリームから読み出される。以下、１８行目において、最初の有意変換係数レベルマイナス１が読み出され、すなわち、ｃｏｅｆｆ＿ｕｐｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ１であり、符号フラグｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇがこれに続く。より具体的には、１８行目と１９行目において読み出されるシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｕｐｓ＿ｍｉｎｕｓ１とｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇの両方はスキャン順に最後の有意変換係数に関わっている。この変換係数の実際値は２０行目で計算される。次いで、２１〜２８行目までのｆｏｒ―ｌｏｏｐにおいて、４〜１７行目で受信した有意性マップを使用して残っている有意変換係数がビットストリームから読み出される。ｆｏｒ―ｌｏｏｐのカウンタｉは、ＮｕｍＣｏｅｆｆ―２、すなわち、最後の有意変換係数のスキャン位置の直前で先行するスキャン位置、に初期化される。ｆｏｒ―ｌｏｏｐのそれぞれの遷移後にこのカウンタは減分される。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ［ｉ］が１である場合（２２行目）、スキャン位置ｉにおける変換係数の係数レベルが２３〜２５行目において求められ、これらの行は、事実上、１８から２０行目に一致している。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ［ｉ］がゼロである場合（２６行目）、スキャン位置の係数レベルは２７行目においてゼロに設定される。
【０４８９】
次に、図６０は、ビンが復号化されるたびにエントロピーデコーダ４００によって実行される復号化プロセスを示している。どのビンが復号化されるかは、エントロピーデコーダ５４００によって現在予想されているシンタックス要素に依存している。有意性マップおよび対応する非ゼロ変換係数レベルに関して、この知識は、図５９の解析プロセスから得られる。
【０４９０】
復号化プロセスにおいて、まず、ステップ５５００において、デコーダ５４００は、復号化する次のビンがｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであるかをチェックする。これが否定された場合、ステップ５５０２において、復号化する次のビンがｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであるかをチェックする。復号化する次のビンは、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇである。復号化する次のビンが、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇのいずれかである場合、デコーダ５４００は、ステップ５５０４または５５０６のそれぞれにおいて、このフラグがフレーム符号化されたマクロブロックまたはフィールド符号化されたマクロブロックのどちらに属するかについてチェックする。復号化する次のビンが、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇでもｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇでもない場合、ステップ５０４において、デコーダ４００は他のシンタックス要素ハンドリングへ進む。ステップ５５００、５５０２、５５０６および５５０８のチェックは、図５８の符号化プロセスのステップ５３００、５３０２、５３０６、および５３０８に対応しており、したがって、復号化する次のビンが、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇのいずれであるか、および対応するマクロブロックがフレーム符号化されるかまたはフィールド符号化されるかに依存して、ｃｔｘＩｄｘ  Ｏｆｆｓｅｔは、ステップ５５１０、５５１２、５５１４、および５５１６のいずれかのステップにおいて、それぞれｏｆｆｓｅｔ１、ｏｆｆｓｅｔ２、ｏｆｆｓｅｔ３、およびｏｆｆｓｅｔ４の１に設定され、ここで、ステップ５５１０〜５５１６は、図５８のステップ５３１０から３５１６に対応している。したがって、ｃｔｘＩｄｘＩｎｃとｃｔｘＩｄｘは、以下のエントロピー復号化に使用されるコンテクストモデルを決定するために、ステップ５５１８および５５２０において、図８のステップ３１８と３２０の符号化プロセスと同様に、判定される。
【０４９１】
次に、ステップ５５２２において、エントロピーデコーダ５４００は、ステップ５５１０から５５２０において得られたｃｔｘＩｄｘによりインデックス付けされたコンテクストモジュールの実際の確率状態を使用してエントロピー符号化されたビットストリームから、実際のビン、すなわち、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇをエントロピー復号化する。すなわち、それぞれの部分的なビットストリームは確率インデックスおよびそこから読み出されるビンに基づいて選択される。このステップの結果は、実際のビンに対する値である。その後、ステップ５５２４において、ステップ５２２４と同様に、ｃｔｘＩｄｘ確率状態が適応または更新される。その後、ステップ５５２６においてプロセスが終了する。
【０４９２】
上記の復号化プロセスにおいて、ステップ５５２７、すなわち、ｍｂ＿ｆｉｌｅｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの復号化は、各ビンの復号化の後に行われたように見えるが、そうではない。実際は、このステップは、最高でも、１つのマクロブロック対に対してのみ起こる。
【０４９３】
前の符号化もがビデオデータを圧縮するために用いられる実施形態について説明してきたが、一方で圧縮率と、他方でルックアップテーブルおよび計算オーバーヘッドと、の間の良好なトレードオフにおいてインプリメンテーションを特に有効にする本発明の実施形態を実施するための更なる実施形態を説明するために、図６１Ａ、Ｂおよび６２を参照する。具体的には、以下の実施形態は、個別のビットストリームをエントロピー符号化しかつ確率予測の部分を効果的にカバーするために計算上あまり複雑でない可変長コードの使用を可能にする。以下で説明する実施形態において、シンボルはバイナリ性質のものであり、以下に提示されるＶＬＣコードは、［０；０．５］内に拡張する、たとえば、ＲＬＰＳで表される確率予測を効果的にカバーする。
【０４９４】
具体的には、以下に概略的に示す実施形態は、図１〜１１の個別のエントロピーコーダ１０およびデコーダ２２の可能なインプリメンテーションを記載している。それらは、画像またはビデオ圧縮アプリケーションにおいて出現する時、ビン、すなわちバイナリシンボルを符号化するために適切である。したがって、これらの実施形態は、このようなバイナリシンボルが符号化されるビン７と復号化されるビットストリーム２４１つ以上のストリームへそれぞれ分割される、画像またはビデオ符号化に適用可能であり、ここで、各このようなビンストリームはベルヌーイプロセス（Ｂｅｒｎｏｕｌｌｉ  ｐｒｏｃｅｓｓ）の実現とみなすことができる。以下に説明される実施形態は、以下で説明する様々ないわゆる、変数間コード（ｖ２ｖ―コード）の１つ以上を使用してビンストリームを符号化する。ｖ２ｖ―コードは、同数の符号語を有する２つの接頭語無し符号：１次接頭語無し符号と２次接頭語無し符号であるとみなすことができる。１次接頭語無し符号の各符号語は２次接頭語無し符号の１つの符号語に関連付けられる。下記に概述する実施形態によれば、エンコーダ１０およびデコーダ２２の少なくとも一部は以下のように動作する：ビン７の特定の列を符号化するために、１次接頭語無し符号がバッファ８から読み出される時は常に、２次接頭語無し符号の対応する符号語がビットストリーム１２へ書き込まれる。同じ手順がこのようなビットストリーム２４を復号化するために使用されるが、１次と２次の接頭語無し符号は入れ替えられる。すなわち、ビットストリーム２４を復号化するために、２次接頭語無し符号の符号語がそれぞれのビットストリーム２４から読み出される時は常に、１次接頭語無し符号の対応する符号語がバッファ２０へ書き込まれる。
【０４９５】
有利なことに、以下で説明するコードはルックアップテーブル必要としない。これらの符号は有限状態マシンの形態で実施可能である。ここで提示されるｖ２ｖ―コードは、これらの符号語のために大きなテーブルを格納する必要がないように単純な構築ルールによって生じさせることができる。その代わり、符号化または復号を行うために単純なアルゴリズムは使用することができる。これらの２つがパラメータ化される３つの構築ルールを以下に説明する。上述した確率インターバルの異なる部分または非結合の部分でさえもカバーすることから、並列配置された３つのコード全て（エンコーダ１１／デコーダ２２の異なる符号ごとに）又はその２つのコードをまとめて使用する場合にとりわけ有利である。以下に説明する構築ルールによれば、任意の確率ｐを有するベルヌーイプロセスに対して、コードのいずれか１つが過剰なコード長さに関しても良好に実行するようにｖ２ｖ―コードの集合を設計することが可能である。
【０４９６】
前述したように、ストリーム１２および２４の符号化と復号化はそれぞれ、ストリームごとに独立してまたはインターリーブ方法のいずれかで実行することができる。しかしながら、これは提示されているｖ２ｖ―コードのクラスに特有のものではなく、したがって、特定の符号語の符号化及び復号化のみが３つの構築ルールの各々に対して以下に説明される。しかしながら、インターリービングソリューションに関する上記の実施形態の全ては、現在説明している符号またはエンコーダ１０およびデコーダ２２のそれぞれと結合可能であることを強調しておく。
【０４９７】
構築ルール１：「単項ビンパイプ」符号またはエンコーダ１０／デコーダ２２
単項ビンパイプ符号（ＰＩＰＥ＝エントロピーを分割する確率インターバル）は、いわゆる「ビンパイプ」符号、すなわち、各々が上述した確率範囲［０；０．５］のある確率のサブインターバルに属しているバイナリシンボル統計のデータを転送する個々のビットストリーム１２および２４のいずれかの符号化に適している符号、の特別なバージョンである。まず、ビンパイプ符号の構築を説明する。ビンパイプ符号は、少なくとも３つの符号語を有する任意の接頭語無し符号から構築することができる。ｖ２ｖ―符号を形成するために、ビンパイプ符号は１次と２次の符号として接頭語無し符号を使用するが、２次接頭語無し符号の２つの符号語は入れ替えられる。これは、２つの符号語を除いて、ビンが、変更されないビットストリームに書き込まれることを意味する。この方法によれば、１つの接頭語無し符号だけを情報とともに格納するだけで済み、２つの符号語が入れ替えられることから、メモリの消費量が削減される。異なる長さの符号語を入れ替えることに意味があることに留意されたい。そうでない場合、ビットストリームは（ビンストリームの終わりに発生する影響を考慮に入れずに）ビンストリームと同じ長さを有することになるからである。
【０４９８】
この構築ルールにより、ビンパイプ符号の顕著な特性は、１次と２次の接頭語無し符号が入れ替えられても（と同時に、符号語のマッピングが保持されている）、得られるｖ２ｖ―符号は元のｖ２ｖ―符号と同一である点にある。したがって、符号化アルゴリズムと復号化アルゴリズムはビンパイプ符号に対して同一である。
【０４９９】
単項ビンパイプ符号は特殊な接頭語無し符号から構築される。この特別な接頭語無し符号は、以下のように構築される。最初に、ｎ個の単項符号語から成る接頭語無し符号が、‘０１’、‘００１’、‘０００１’からスタートして、ｎ個の符号語が生じるまで生成される。ｎは単項ビンパイプ符号のパラメータである。最長の符号語から、末尾の１は削除される。これは切り捨て単項符号（ただし、符号語‘０’なし）に対応している。次に、ｎ−１個の単項符号語が‘１０’、‘１１０’、‘１１１０’からスタートして、ｎ−１個の符号語が生じるまで生成される。最長の符号語から、末尾の０は削除される。これら２つの接頭語無し符号の和集合は単項ビンパイプ符号を生成するための入力として使用される。入れ替えられる２つの符号語は０だけから成る符号語と１だけから成る符号語である。
【０５００】
ｎ＝４の場合の例：
番号−１次−２次
１−００００−１１１
２−０００１−０００１
３−００１−００１
４−０１−０１
５−１０−１０
６−１１０−１１０
７−１１１−００００
【０５０１】
構築ルール２：「単項ライス」符号および単項ライスエンコーダ１０／デコーダ２２：
単項ライス符号は切り捨て単項符号を１次符号として使用する。すなわち、単項符号語は、‘１’、‘０１’、‘００１’からスタートして、２ｎ＋１個の符号語が生じるまで生成され、最長の符号語から、末尾の１が削除される。ｎは単項ライス符号のパラメータである。２次接頭語無し符号は、以下のように、１次接頭語無し符号の符号語から構築される。０だけから成る１次符号語に、符号語‘１’が割り当てられる。他のすべての符号語は、１次接頭語無し符号の対応する符号語の０の数のｎビットのバイナリ表現を有する符号語‘０’の連結から成る。
【０５０２】
ｎ＝３の場合の例：
番号−１次−２次
１−１−００００
２−０１−０００１
３−００１−００１０
４−０００１−００１１
５−００００１−０１００
６−０００００１−０１０１
７−００００００１−０１１０
８−０００００００１−０１１１
９−００００００００−１
これはライスパラメータ２ｎを有するライス符号に無限の単項符号をマッピングすることと同じであることに留意されたい。
【０５０３】
構築ルール３：‘３つのビン’コード
３つのビンコードは次のように与えられる：
番号−１次−２次
１−０００−０
２−００１−１００
３−０１０−１０１
４−１００−１１０
５−１１０−１１１００
６−１０１−１１１０１
７−０１１−１１１１０
８−１１１−１１１１１。
【０５０４】
１次符号（シンボル列）が固定長（常に３つのビン）であり、符号語は１の数の昇順でソートされるという特性を有している。
【０５０５】
３つのビンコードの効率的なインプリメンテーション次に説明する。この３つのビンコードに対するエンコーダとデコーダは、テーブルを格納せずに、以下のように実行することができる。
【０５０６】
エンコーダ（１０のいずれか）において、３つのビンは、ビンストリーム（すなわち、７）から読み出される。これらの３つのビンがたった１つの１を含む場合、この符号語‘１’は（右から００でスタートする）１の位置のバイナリ表現から成る２つのビンが後続するビットストリームに書き込まれる。３つのビンがたった１つの０を含む場合、符号語‘１１１’は（右から００でスタートする）０の位置のバイナリ表現から成る２つのビンが後続するビットストリームに書き込まれる。残留符号語‘０００’と‘１１１’は、‘０’と‘１１１１１’にそれぞれ、マッピングされる。
【０５０７】
デコーダ（２２のいずれか）において、１つのビンまたはビットがそれぞれのビットストリーム２４から読み出される。１つのビン又はビットが‘０’と等しい場合、符号語‘０００’はビンストリーム２１に復号化される。‘１’と等しい場合、さらに２つのビンがビットストリーム２４から読み出される。これらの２つのビットが‘１１’と等しくない場合、これらのビットは、数のバイナリ表現として解釈され、２つの０と１つの１がこの１の位置が数によって決定されるようにビットストリームに復号化される。２つのビットが‘１１’と等しい場合、さらに２つのビットが数のバイナリ表現として解釈される。この数が３より小さい場合、２つの１と１つの０が復号化され、この数は０の位置を決定する。３と等しい場合、‘１１１’はビンストリームに復号化される。
【０５０８】
単項ビンパイプ符号の効率的なインプリメンテーションを次に説明する。単項ビンパイプ符号に対するエンコーダとデコーダはカウンタを使用して効率的に実施することができる。ビンパイプ符号の構造により、ビンパイプ符号の符号化と復号化は容易に実施できる。
【０５０９】
エンコーダ（１０のいずれか）において、符号語の最初のビンが‘０’と等しい場合、ビンは、‘１’が生じるか又はｎ個の０が読み出されるまで、処理される（符号語の最初の‘０’を含む）。‘１’が生じた場合、読み出されたビンは変更されないビットストリームへ書き込まれる。それ以外の場合（すなわち、ｎ個の０が読み出された場合）、ｎ−１個の１がビットストリームに書き込まれる。符号語の最初のビンが‘１’と等しい場合、ビンは‘０’が生じるかまたはｎ−１個の１が読み出されるまで、処理される（符号語の最初の‘１’を含む）。‘０’が生じた場合、読み出されたビンは変更されないビットストリームへ書き込まれる。それ以外の場合（すなわち、ｎ−１個の１が読み出された場合）、ｎ個の０がビットストリームへ書き込まれる。
【０５１０】
デコーダ（２２のいずれか）において、エンコーダに対して同じアルゴリズムが使用される。上に説明したように、ビンパイプ符号に対しても同じであるためである。
【０５１１】
単項ライス符号の効率的なインプリメンテーションを次に説明する。単項ライス符号に対するエンコーダとデコーダはここで説明するようにカウンタを使用して効率的に実施することができる。
【０５１２】
エンコーダ（１０のいずれか）において、ビンは、１が生じるかまたは２ｎ個の０が読み出されるまで、ビンストリーム（すなわち、７）から読み出される。０の数がカウントされる。カウント数が２ｎ個と等しい場合、符号語‘１’がビットストリームへ書き込まれる。それ以外の場合、‘０’が書き込まれ、ｎ個のビットが書き込まれた、カウントされた数のバイナリ表現がこれに続く。
【０５１３】
デコーダ（２２のいずれか）において、１つのビットが読み出される。このビットが‘１’と等しい場合、２ｎ個の０がビンストリングに復号化される。このビットが‘０’と等しい場合、さらにｎ個のビットが読み出され、数のバイナリ表現として解釈される。０のこの数は、‘１’が後続するビンストリームに復号化される。
【０５１４】
言い換えれば、今述べた実施形態は、シンボル３の列を符号化するためのエンコーダについて説明しており、このエンコーダは、シンボル列の前のシンボル内に含まれる情報に基づいてこのシンボル列の各シンボルに多数のパラメータ５を割り当てるように構成された割当部１６と、各々がそれぞれのエントロピーエンコーダ１０へ転送されたシンボル７をそれぞれのビットストリーム１２へ変換するように構成されている複数のエントロピーエンコーダ１０と、各シンボル３を複数のエントロピーエンコーダ１０の選択された１つへ転送するように構成されている選択部６であって、この選択はそれぞれのシンボル３に割り当てられたパラメータ５の数に依存している選択部６と、を含む。今概述した実施形態によれば、エントロピーエンコーダの少なくとも第１の部分集合は、シンボル７のストリーム内の可変長のシンボル列を、ビットストリーム１２内に挿入される可変長の符号語に、それぞれマッピングするように構成されている可変長エンコーダであり、その際、第１の部分集合のエントロピーコーダ１０の各々は全単射マッピングルールを使用し、この全単射マッピングルールに基づいて、（２ｎ−１）≧３の符号語を有する１次接頭語無し符号の符号語が１次接頭語符号と同一である２次接頭語無し符号の符号語にマッピングされて、１次接頭語無し符号の符号語のうち２つを除く全てが、２次接頭語無し符号の同一の符号語にマッピングされるとともに１次と２次の接頭語無し符号の２つの符号語が異なる長さを有しかつ相互に入れ替え可能にマッピングされ、ここで、上述の確率インターバルのインターバルの異なる部分をカバーするためにエントロピーエンコーダは異なるｎを使用しうる。第１の接頭語無し符号は、第１の接頭語無し符号の符号語が（ａ、ｂ）２、（ａ、ａ、ｂ）３、．．．、（ａ、．．．、ａ、ｂ）ｎ、（ａ、．．．、ａ）ｎ、（ｂ、ａ）２、
（ｂ、ｂ、ａ）３、．．．、（ｂ、．．．、ｂ、ａ）ｎ−１、（ｂ、．．．、ｂ）ｎ−１となるように構成され、相互に入れ替え可能にマッピングされた２つの符号語は、ｂ≠ａおよび
【数１２３】
2013528025.tif 000135
のとき、（ａ、．．．、ａ）ｎと（ｂ、．．．、ｂ）ｎ−１である。しかしながら、これに代わる方法も実行可能である。
【０５１５】
言い換えれば、エントロピーエンコーダの第１の部分集合の各々は、それぞれのエントロピーエンコーダへ転送されたシンボルをそれぞれのビットストリームに変換する際、それぞれのエントロピーエンコーダへ転送された第１のシンボルを検討して、（１）第１のシンボルが
【数１２４】
2013528025.tif 000136
と等しいかどうかを判定し、そうである場合、それぞれのエントロピーエンコーダは、それぞれのエントロピーエンコーダへ転送された後に続くシンボルを検討して、（１．１）ｂ≠ａおよび
【数１２５】
2013528025.tif 000137
であるｂが第１のシンボルに続く次のｎ−１番目のシンボル内に生じるかどうかを判定し、そうである場合、それぞれのエントロピーエンコーダは、シンボルｂに至るまで、それぞれのエントロピーエンコーダへ転送された後続するシンボルによって後続される第１のシンボルと等しい、それぞれのビットストリームへ符号語を書き込むように構成され、（１．２）ｂが第１のシンボルに後続する次のｎ−１番目のシンボル内に全く生じないかどうかを判定し、そうである場合、それぞれのエントロピーエンコーダは、（ｂ、．．．、ｂ）ｎ−１と等しいそれぞれのビットストリームへ符号語を書き込むよう構成され、または、（２）第１のシンボルがｂと等しいかどうかを判定し、そうである場合、それぞれのエントロピーエンコーダはそれぞれのエントロピーエンコーダへ転送された後続のシンボルを検討して、（２．１）ａが第１のシンボルに後続する次のｎ−２番目のシンボル内に生じるかを判定し、そうである場合、それぞれのエントロピーエンコーダは、シンボルａに至るまで、それぞれのエントロピーエンコーダへ転送された後続するシンボルによって後続される第１のシンボルと等しいそれぞれのビットストリームへ符号語を書き込むように構成され、または、（２．２）ａが第１のシンボルに後続する次のｎ−２番目のシンボル内に全く生じないかを判定し、そうである場合、それぞれのエントロピーエンコーダは、（ａ、．．．、ａ）ｎと等しいそれぞれのビットストリームへ符号語を書き込むように構成されている。
【０５１６】
これに加えてまたはこれに代えて、エントロピーエンコーダ１０の第２の部分集合は可変長のシンボル列を固定長の符号語へそれぞれ、マッピングするように構成された可変長エンコーダであってよく、その際、第２の部分集合のエントロピーコーダの各々は全単射マッピングルールを使用し、この全単射マッピングルールに基づいて、ｂ≠ａおよび
【数１２６】
2013528025.tif 000138
であるタイプ｛（ａ）、（ｂａ）、（ｂｂａ）、．．．、（ｂ．．．ｂａ）、（ｂｂ．．．ｂ）｝の２ｎ＋１個の符号語を有する１次切り捨て単項符号の符号語が２次接頭語無し符号の符号語にマッピングされ、これによって、１次切り捨て単項符号の符号語（ｂｂ．．．ｂ）が２次接頭語無し符号の符号語（ｃ）にマッピングされ、１次切り捨て単項符号のすべての他の符号語｛（ａ）、（ｂａ）、（ｂｂａ）、．．．、（ｂ．．．ｂａ）｝が、接頭語としてｃ≠ｄおよび
【数１２７】
2013528025.tif 000139
である（ｄ）を有し、接尾語としてｎビットのワードを有する、符号語にマッピングされ、エントロピーエンコーダは異なるｎを使用する。エントロピーエンコーダの第２の部分集合の各々は、ｎビットのワードが１次切り捨て単項符号のそれぞれの符号語内の複数のｂの数のｎビットの表現となるように構成することができる。しかしながら、これに代わる代替方法も実行可能である。
【０５１７】
ここでも、それぞれのエンコーダ１０の演算モードの観点から、エントロピーエンコーダの第２の部分集合の各々は、それぞれのエントロピーエンコーダへ転送されたシンボルをそれぞれのビットストリームへ変換する際、ａが生じるまで、または、それぞれのエントロピーエンコーダへ転送されたシンボル列の数が列のすべての２ｎのシンボルがｂである２ｎに達するまで、それぞれのエントロピーエンコーダへ転送されたシンボル列内の多数のｂをカウントするように構成することができ、（１）複数のｂの数が２ｎと等しい場合、
【数１２８】
2013528025.tif 000140
であるｃを２次接頭語無し符号の符号語としてそれぞれのビットストリームへ書き込み、（２）複数のｂの数が２ｎより小さい場合、ｃ≠ｄおよび
【数１２９】
2013528025.tif 000141
である（ｄ）を接頭語として有し、複数のｂの数に応じて決定されたｎビットのワードを接尾語として有する、それぞれのビットストリームへ２次接頭語無し符号の符号語を書き込む。
【０５１８】
さらに、これに加えてまたはこれに代えて、エントロピーエンコーダ１０の所定の１つは、固定長のシンボル列を可変長の符号語にそれぞれマッピングするように構成された可変長エンコーダであってもよく、所定のエントロピーコーダは全単射マッピングルールを使用し、この全単射マッピングルールに基づいて、１次符号の長さ３の２３符号語は２次接頭語無し符号の符号語にマッピングされ、これによって、
【数１３０】
2013528025.tif 000142
である１次符号の符号語（ａａａ）３は、
【数１３１】
2013528025.tif 000143
である符号語（ｃ）にマッピングされ、ｂ≠ａおよび
【数１３２】
2013528025.tif 000144
である１つだけのｂを有する１次符号の全ての３つの符号語は、接頭語としてｃ≠ｄおよび
【数１３３】
2013528025.tif 000145
である（ｄ）を有しかつ接尾語として２ビットのワードの第１の集合のうちそれぞれの第１の２ビットのワードを有する符号語にマッピングされ、１つだけのａを有する１次符号の全ての３つの符号語は、接頭語として（ｄ）を有しかつ接尾語として第１の集合の要素ではない第１の２ビットのワードと２ビットのワードの第２の集合のうち第２の２ビットのワードとの連結を有する符号語にマッピングされ、符号語（ｂｂｂ）３は、接頭語として（ｄ）を有しかつ接尾語として第１の集合の要素ではない第１の２ビットのワードと第２の集合の要素ではない第２の２ビットのワードとの連結を有する符号語にマッピングされる。１つだけのｂを有する１次符号の符号語の第１の２ビットのワードは１次符号のそれぞれの符号語内のｂの位置の２ビットの表現でありえ、１つだけのａを有する１次符号の符号語の第２の２ビットのワードは１次符号のそれぞれの符号語内のａの位置の２ビットの表現でありえる。しかしながら、これに代わる方法も実行可能である。
【０５１９】
ここでも、エントロピーエンコーダの所定の１つは、所定のエントロピーエンコーダへ転送されたシンボルをそれぞれのビットストリームへ変換する際、トリプレット内の所定のエントロピーエンコーダへのシンボルを検討して、（１）トリプレットは複数のａから成るかが検討され、そうである場合、所定のエントロピーエンコーダはそれぞれのビットストリームへ符号語（ｃ）を書き込むよう構成され、（２）トリプレットが１つだけのｂを含むかが検討され、そうである場合、所定のエントロピーエンコーダは（ｄ）を接頭語として有しかつトリプレット内のｂの位置の２ビットの表現を接尾語として有する符号語を、それぞれのビットストリームへ、書き込むよう構成され、（３）トリプレットが１つだけのａを含むかが検討され、そうである場合、所定のエントロピーエンコーダは、（ｄ）を接頭語として有しかつ第１の集合の要素ではない第１の２ビットのワードとトリプレット内のａの位置の２ビットの表現との連結を接尾語として有する符号語を、それぞれのビットストリームへ書き込むよう構成され、または、（４）トリプレットが複数のｂから成るかが検討され、そうである場合、所定のエントロピーエンコーダは（ｄ）を接頭語として有しかつ第１の集合の要素ではない第１の２ビットのワードと第２の集合の要素ではない第１の２ビットのワードとの連結を接尾語として有する符号語を、それぞれのビットストリームへ書き込むように構成されている。
【０５２０】
復号化サイドに関して、今説明した実施形態は、シンボル２６の列を復元するためのデコーダであって、各々がそれぞれのビットストリーム２４をシンボル２１へ変換するように構成されている複数のエントロピーデコーダ２２と、シンボル列の前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボル列の各シンボル２６へ多数のパラメータを割り当てるように構成されている割当部１６と、複数のエントロピーデコーダのうち選択された１つから復元されるシンボル列の各シンボル２５を検索するように構成されている選択部１８であって、選択はそれぞれのシンボルに対して定義付けられたパラメータの数に応じて行われる、選択部１８と、を含むデコーダを開示している。今説明した実施形態によれば、エントロピーデコーダ２２の少なくとも第１の部分集合は可変長の符号語を可変長のシンボル列にそれぞれマッピングするように構成された可変長デコーダであり、その際、第１の部分集合のエントロピーデコーダ２２の各々は全単射マッピングルールを使用し、この全単射マッピングルールに基づいて、（２ｎ−１）≧３の符号語を有する１次接頭語無し符号の符号語が１次接頭語符号と同一である２次接頭語無し符号の符号語にマッピングされて、１次接頭語無し符号の符号語のうち２つを除く全てが、２次接頭語無し符号の同一の符号語にマッピングされるとともに、１次と２次の接頭語無し符号の２つの符号語が異なる長さを有しておりかつ相互に入れ替え可能にマッピングされ、エントロピーエンコーダは異なるｎを使用する。第１の接頭語無し符号は、第１の接頭語無し符号の符号語が（ａ、ｂ）２、（ａ、ａ、ｂ）３、．．．、（ａ、．．．、ａ、ｂ）ｎ、（ａ、．．．、ａ）ｎ、（ｂ、ａ）２、（ｂ、ｂ、ａ）３、．．．、（ｂ、．．．、ｂ、ａ）ｎ−１、（ｂ、．．．、ｂ）ｎ−１であり、入れ替え可能に相互にマッピングされた２つの符号語は、ｂ≠ａおよび
【数１３４】
2013528025.tif 000146
のとき、（ａ、．．．、ａ）ｎおよび（ｂ、．．．、ｂ）ｎ−１であるように構築することができる。しかしながら、これに代わる方法も実行可能である。
【０５２１】
エントロピーエンコーダの第１の部分集合の各々は、それぞれのビットストリームをシンボルに変換する際、それぞれのビットストリームの第１のビットを検討して、（１）第１のビットがａ０｛０、１｝と等しいかどうかを判定し、そうである場合、それぞれのエントロピーエンコーダはそれぞれのビットストリームの後続するビットを検討するよう構成され、（１．１）第１のビットに後続する次のｎ−１ビット内に、ｂ≠ａおよびｂ０｛０、１｝のｂが生じるかどうかを判定し、そうである場合、それぞれのエントロピーデコーダは、ビットｂに至るまで、それぞれのビットストリームの後続するビットによって後続される第１のビットと等しい、シンボル列を復元するよう構成され、または、（１．２）第１のビットに後続する次のｎ−１ビット内にｂがまったく生じないかどうかを判定し、そうである場合、それぞれのエントロピーデコーダは（ｂ、．．．、ｂ）ｎ−１と等しいシンボル列を復元するよう構成され、または、（２）第１のビットがｂと等しいかどうかを判定し、そうである場合、それぞれのエントロピーデコーダはそれぞれのビットストリームの後続するビットを検討して、（２．１）ａが第１のビットに後続する次のｎ−２ビット内に生じるかどうかを判定し、そうである場合、それぞれのエントロピーデコーダは、シンボルａに至るまで、それぞれのビットストリームの後続するビットによって後続される第１のビットと等しい、シンボル列を復元するよう構成され、または、（２．２）ａが第１のビットに後続する次のｎ−２ビット内にまったく生じないかどうかを判定し、そうである場合、それぞれのエントロピーデコーダは（ａ、．．．、ａ）ｎと等しいシンボル列を復元するように構成される。
【０５２２】
これに加えてまたはこれに代えて、エントロピーデコーダ２２の少なくとも第２の部分集合は、固定長の符号語を可変長のシンボル列にそれぞれマッピングするように構成された可変長デコーダであってもよく、その際、第２の部分集合のエントロピーデコーダの各々は全単射マッピングルールを使用し、この全単射マッピングルールに基づいて、２次接頭語無し符号の符号語が、ｂ≠ａおよび
【数１３５】
2013528025.tif 000147
であるタイプ｛（ａ）、（ｂａ）、（ｂｂａ）、．．．、（ｂ．．．ｂａ）、（ｂｂ．．．ｂ）｝の２ｎ＋１個の符号語を有する１次切り捨て単項符号の符号語へマッピングされて、２次接頭語無し符号の符号語（ｃ）が１次切り捨て単項符号の符号語（ｂｂ．．．ｂ）にマッピングされ、ｃ≠ｄおよび
【数１３６】
2013528025.tif 000148
である（ｄ）を接頭語として有しかつｎビットのワードを接尾語として有する符号語が１次切り捨て単項符号の他の符号語｛（ａ）、（ｂａ）、（ｂｂａ）、．．．、（ｂ．．．ｂａ）｝の１つのそれぞれにマッピングされ、エントロピーデコーダは異なるｎを使用する。エントロピーデコーダの第２の部分集合の各々は、ｎビットのワードが１次切り捨て単項符号のそれぞれの符号語内の複数のｂの数のｎビットの表現であるように構成されている。しかしながら、これに代わる方法も実行可能である。
【０５２３】
エントロピーデコーダの第２の部分集合の各々は、固定長の符号語を可変長のシンボル列にそれぞれマッピングするように構成された可変長デコーダであってもよく、それぞれのエントロピーデコーダのビットストリームをシンボルに変換する際、それぞれのビットストリームの第１のビットを検討して、（１）このそれぞれのビットストリームの第１のビットが、
【数１３７】
2013528025.tif 000149
であるｃと等しいかどうかを判定し、そうである場合、それぞれのエントロピーデコーダは
【数１３８】
2013528025.tif 000150
である（ｂｂ．．．ｂ）２ｎと等しいシンボル列を復元するよう構成され、または（２）このそれぞれのビットストリームの第１のビットが、ｃ≠ｄおよび
【数１３９】
2013528025.tif 000151
であるｄと等しいかどうかを判定し、そうである場合、それぞれのエントロピーデコーダは、第１のビットに後続する、それぞれのビットストリームのｎ個の更なるビットからｎビットのワードを決定し、ｎビットのワードに基づいて、複数のｂの数を有するｂ≠ａおよび
【数１４０】
2013528025.tif 000152
であるタイプ｛（ａ）、（ｂａ）、（ｂｂａ）、．．．、（ｂ．．．ｂａ）、（ｂｂ．．．ｂ）｝であるシンボル列を復元するように構成されている。
【０５２４】
これに加えてまたはこれに代えて、エントロピーデコーダ２２の所定の１つは可変長の符号語を固定長のシンボル列にそれぞれマッピングするように構成された可変長デコーダであってもよく、所定のエントロピーデコーダは全単射マッピングルールを使用し、この全単射マッピングルールに基づいて、２次接頭語無し符号の符号語は１次符号の長さ３の２３符号語にマッピングされて、
【数１４１】
2013528025.tif 000153
である符号語（ｃ）が
【数１４２】
2013528025.tif 000154
である１次符号の符号語（ａａａ）３にマッピングされ、ｃ≠ｄおよび
【数１４３】
2013528025.tif 000155
である（ｄ）を接頭語として有しかつ３つの２ビットのワードの第１の集合のうちのそれぞれの第１の２ビットのワードを接尾語として有する符号語がｂ≠ａおよび
【数１４４】
2013528025.tif 000156
である１つだけのｂを有する１次符号の３つの符号語全てにマッピングされ、（ｄ）を接頭語として有しかつ第１の集合の要素ではない第１の２ビットのワードと３つの２ビットのワードの第２の集合のうちの第２の２ビットのワードとの連結を接尾語として有する符号語が１つだけのａを有する１次符号の３つ符号語全てにマッピングされ、（ｄ）を接頭語として有しかつ第１の集合の要素ではない第１の２ビットのワードと第２の集合の要素ではない第２の２ビットのワードとの連結を接尾語として有する符号語が符号語（ｂｂｂ）３にマッピングされる。１つだけのｂを有する１次符号の符号語の第１の２ビットのワードは、１次符号のそれぞれの符号語内のｂの位置の２ビットの表現であり、１つだけのａを有する１次符号の符号語の第２の２ビットのワードは１次符号のそれぞれの符号語内のａの位置の２ビットの表現でありうる。しかしながら、これに代わる方法も実行可能である。
【０５２５】
エントロピーデコーダの所定の１つは、可変長の符号語を３つのシンボル各々のシンボル列へそれぞれマッピングするように構成された可変長デコーダであってもよく、それぞれのエントロピーデコーダのビットストリームをシンボルへ変換する際、それぞれのビットストリームの第１のビットを検討して、（１）それぞれのビットストリームの第１のビットが
【数１４５】
2013528025.tif 000157
であるｃと等しいかどうかを判定し、そうである場合、所定のエントロピーデコーダがａ０｛０、１｝である（ａａａ）３と等しいシンボル列を復元するよう構成され、または、（２）それぞれのビットストリームの第１のビットがｃ≠ｄおよび
【数１４６】
2013528025.tif 000158
であるｄと等しいかどうかを判定し、そうである場合、所定のエントロピーデコーダは、第１のビットに後続する、それぞれのビットストリームの２個の更なるビットから第１の２ビットのワードを決定しかつ第１の２ビットのワードを検討するよう構成され、（２．１）第１の２ビットのワードが３つの２ビットのワードの第１の集合の要素でないかどうかを判定し、そうである場合、所定のエントロピーデコーダがそれぞれのシンボル列内のｂの位置が第１の２ビットのワードに応じる、ｂ≠ａおよびｂ０｛０、１｝である１つだけのｂを有するシンボル列を復元するよう構成され、または、（２．２）第１の２ビットのワードが第１の集合の要素であるかどうかを判定し、そうである場合、所定のエントロピーデコーダが、第１の２ビットのワードが既に決定されている２つのビットに後続する、それぞれのビットストリームの２個の更なるビットから第２の２ビットのワードを決定しかつ第２の２ビットのワードを検討するよう構成され、（３．１）第２の２ビットのワードが３つの２ビットのワードの第２の集合の要素でないかどうかを判定し、そうである場合、所定のエントロピーデコーダは、それぞれのシンボル列のａの位置が第２の２ビットのワードに応じる、１つだけのａを有するシンボル列を復元するよう構成され、または、（３．２）第２の２ビットのワードが３つの２ビットのワードの第２の集合の要素であるかどうかを判定し、そうである場合、所定のエントロピーデコーダが（ｂｂｂ）３と等しいシンボル列を復元するように構成されている。
【０５２６】
次に、エンコーダ１０／デコーダ２２の１つまたはいくつかまたはすべてに対して、すなわち、シンボルの分布から個別のパスに対して得られる確率インターバル分割のある確率インターバルを担うこれらのエンコーダ／デコーダのペアの各々に対して使用することができるテーブルベースのバイナリ算術符号化および復号化方式を説明する。
【０５２７】
有利なことに、エンコーダ１０／デコーダ２２に関して以下に説明する実施形態は、バイナリ算術復号化エンジンの単一繰り込みサイクル内の複数のＭＰＳを処理することが可能である。
【０５２８】
本発明の実施形態の原理および利点を理解するために、複数のエンコーダ１０／デコーダ２２のペアが、以下のタイプのバイナリ算術エンコーダ／デコーダであったと想定する。所与のビンバッファ８の代表ＬＰＳ／ＬＰＢの確率ｐＬＰＳから対応する符号インターバル幅ＲＬＰＳへのマッピング―すなわち、たとえば、符号インターバルの下限を識別する、現在のインターバル幅Ｒと現在のインターバルオフセットＬによって画定される、バイナリ算術符号化エンジンの内部状態のインターバル分割―はテーブルルックアップを使用して実現される。所与のビンバッファ８に関連付けられている各テーブルベースのバイナリ算術符号化エンジン１０に対して、Ｋ個の代表的インターバル幅の値｛Ｑ０、．．．、ＱＫ−１｝がＲを表すために使用され、Ｋの選択と代表的インターバル幅の値｛Ｑ０、．．．、ＱＫ−１｝はビンバッファ８に依存していると想定する。よって、ビン９の算術的符号化は、現在のインターバル幅Ｒを｛０、．．．、Ｋ−１｝の値を有する量子化インデックスｑへマッピングし、現在のビンに関連付けられたＬＰＳに対する確率予測ｐを対応する部分的インターバル幅の値Ｑｑで乗算した積の値と、ｑをインデックスとして使用して、ルックアップテーブルＲｔａｂから、このビンが割当部によって割り当てられたエントロピーエンコーダと、にアクセスすることによって、インターバル分割を実行するサブステップを含むことができる。各算術符号化エンジン１０によって得られる符号語は個別に、送信され、パケット化され、または格納されるか、あるいは、図１〜１１などの様々な実施形態に関して上記に説明したように、送信または格納を目的として、インターリーブされうる。
【０５２９】
すなわち、バイナリ算術符号化エンジン１０は、そのビンバッファ８内の複数ビン９を符号化する際に以下のステップを実行する：
１．ビンバッファ８からｖａｌＬＰＳ、ビンを受信するステップ（ここで考慮されるそれぞれのバイナリ算術符号化エンジン１０は（割当部１６と選択部６によって）「ビン」を受けとるように選択されまたは選定され、または、言い換えれば、割当部４によって決定されるｐ＿ｓｔａｔｅ［ｂｉｎ］などの確率分布予測は、現在考慮されるこのバイナリ算術符号化エンジン１０に関連付けられていたため、「ビン」はここで考えられるそれぞれのバイナリ算術符号化エンジン１０に関連付けられていたことを想起されたい。）
２．Ｒを量子化するステップ：
ｑ＿ｉｎｄｅｘ＝Ｑｔａｂ［Ｒ＞＞ｑ］（または他の形態の量子化；Ｋ個の量子化レベルが利用可能である。）
３．ＲＬＰＳおよびＲＭＰＳを決定するステップ：
ＲＬＰＳ＝Ｒｔａｂ［ｑ＿ｉｎｄｅｘ］（ｐ＿ｓｔａｔｅ、すなわち、ＬＰＳであるビンの確率は、考慮されているバイナリ算術符号化エンジン１０に対して固定されており、すなわち、ｐ＿ｓｔａｔｅは現在のエンコーダ１０に対して固定されており、ｐ＿ｓｔａｔｅ［ｅｎｃｏｄｅｒ］と表記されうるので、ここでは述べていない。そして、Ｒｔａｂはｐ［ｐ＿ｓｔａｔｅ［ｅｎｃｏｄｅｒ］］・Ｑ［ｑ＿ｉｎｄｅｘ］に対して予備計算された値を格納していることに留意されたい）
ＲＭＰＳ＝Ｒ−ＲＬＰＳ（すなわち、エンコーダ１０はインターバルを２つの部分に分ける）
４．新しい部分的インターバルを計算するステップ：
【数１４７】
2013528025.tif 000159
５．ＬおよびＲを繰込み、ビットを書き込むステップ
【数１４８】
2013528025.tif 000160
ここで、
ｑ＿ｉｎｄｅｘ  Ｑｔａｂから読み出された量子化値のインデックスを記述
ｐ＿ｓｔａｔｅ  （バイナリ算術符号化エンジンに対して固定されかつ同エンジン間で互いに異なる）現在の状態を記述
ＲＬＰＳ          ＬＰＳに対応するインターバル幅を記述
ＲＭＰＳ          ＭＰＳに対応するインターバル幅を記述
Ｒｍｉｎ          Ｒに対する最小許容値を記述
ｖａｌＭＰＳ    ＭＰＳに対応するビットの値を記述
である。
【０５３０】
したがって、バイナリ算術復号化エンジン２２は、ビン出力をビンバッファへ復号化する際、以下のステップを実行することができる：
１．それぞれの部分的ビットストリーム２４からビン又はビットに対するリクエストを受信するステップ（ｐ＿ｓｔａｔｅ［ｂｉｎ］などの確率分布予測は割当部１６によってバイナリ算術復号化エンジンに関連付けられていたので、すなわち、割当部１６および選択部１８によって、ここで考慮されるそれぞれのバイナリ算術復号化エンジン２２は、この「ビン」または「ビット」を復号化するために選択された（または、言い換えれば、「ビン」はそれぞれのバイナリ算術復号化エンジン２２に関連付けられていた）ことを想起されたい）
２．Ｒを量子化するステップ：
ｑ＿ｉｎｄｅｘ＝Ｑｔａｂ［Ｒ＞＞ｑ］（または他の形態の量子化）
３．ＲＬＰＳとＲＭＰＳを決定するステップ：
【０５３１】
ＲＬＰＳ＝Ｒｔａｂ［ｑ＿ｉｎｄｅｘ］（ｐ＿ｓｔａｔｅは、考慮されているバイナリ算術復号化エンジンに対して固定されており、すなわち、ｐ＿ｓｔａｔｅ［ｅｎｃｏｄｅｒ］であるので、ここでは、ｐ＿ｓｔａｔｅについて述べておらず、Ｒｔａｂはｐ［ｐ＿ｓｔａｔｅ［ｅｎｃｏｄｅｒ］］・Ｑ［ｑ＿ｉｎｄｅｘ］に対して予備計算された値を格納していることに留意されたい）
ＲＭＰＳ＝Ｒ−ＲＬＰＳ
４．部分的インターバルの位置に依存するビンを決定するステップ：
【数１４９】
2013528025.tif 000161
５．Ｒを繰り込み、１ビットを読み出し、Ｖを更新するステップ
【数１５０】
2013528025.tif 000162
ここで、
ｑ＿ｉｎｄｅｘ  Ｑｔａｂから読み出された量子化値のインデックスを記述、
ｐ＿ｓｔａｔｅ  （バイナリ算術復号化エンジンに対して固定された）現在の状態を記述、
ＲＬＰＳ          ＬＰＳに対応するインターバル幅を記述、
ＲＭＰＳ          ＭＰＳに対応するインターバル幅を記述、
Ｒｍｉｎ          Ｒに対する最小許容値を記述、
ｖａｌＭＰＳ    ＭＰＳに対応するビットの値を記述、
Ｖ              現在の部分的インターバルの内部からの値を記述。
【０５３２】
ビンデコーダ２２についての以下に概略的に説明する実施形態は、以下に説明されるように、スループットに関して復号化プロセスの改良を達成する。具体的には、ＭＰＳのランの符号化は、Ｒが単にゆっくり変化している間も、Ｌを不変なままにしておくことができる。ｐ＿ｓｔａｔｅはエンコーダ１０／デコーダ２２の対に対して一定しているので、ステップ５の繰り込みチェックを含むステップ１〜５をループすることを必要とせずに必要とされる次の繰り込みまでＭＰＳのランをＭＰＳのランの全てのシンボルに対して個別に復号化することが可能である。以下の説明は、１つの対応するｐ＿ｓｔａｔｅに関連付けられた１つのエンコーダ／デコーダ対の構築を中心に述べる。しかしながら、これにより、１つより多くのデコーダ２２はそれぞれ、異なるｐ＿ｓｔａｔｅまたはＲｔａｂによって構築されうる。
【０５３３】
Ｄ０、．．．、ＤＫ−１がステップ３（「Ｒの量子化」）における値Ｒの範囲から値ｑ＿ｉｎｄｅｘを導出するために使用されるＫの決定しきい値を示すとする。Ｒがインターバル［Ｄｉ、Ｄｉ＋１）内にある場合、ｉと等しいｑ＿ｉｎｄｅｘの値が求められる。これは、図６２に示されている。Ｒの値範囲は、ＲｍｉｎとＲｍａｘの間の定義付けと繰り込みの効果に対して求められる。ここで示すように、Ｄ０、．．．、ＤＫ−１は、インターバル［Ｒｍｉｎ、Ｒｍａｘ）を実質的と等しい長さのサブインターバルへ分割する。
【０５３４】
インターバルインデックスｉ＝０．．．Ｋ−１を有する各インターバルには、集合｛Ｑ０、．．．、ＱＫ−１｝からの代表的インターバル幅値が属しており、上記に説明したように、｛ＲＬＰＳ（０）、．．．、ＲＬＰＳ（Ｋ−１）｝からのＲＬＰＳに対する値は、したがって、所与の代表的インターバル幅値と、ビンとエントロピーエンコーダ／デコーダのそれぞれに関連付けられたＬＰＳに対する予測確率と、に対する表形式の値ＲＬＰＳを表している。Ｄ０がＲｍｉｎと等しいことに留意されたい。
【０５３５】
決定インターバル幅Ｄｉ＋１−Ｄｉに関するＲＬＰＳの十分に小さな値については、複数のＭＰＳを単一サイクル内で復号化することができる（上に概述したステップ１〜５）。これを図６１Ａ、Ｂに示す。同時に復号化することができるＭＰＳの正確な数は、ビンバッファ選択部１８が同じビンバッファ２０から複数のビンをリクエストすることを前提にした場合、Ｒ、Ｄｉ、およびＶに依存している。複数のＭＰＳの最大数ＮＭＰＳは以下のように与えられる。
Ｔ＝ｍａｘ｛Ｖ＋１、Ｄｉ−ＲＬＰＳ｝        （１）
とすると、次に、
【数１５１】
2013528025.tif 000163
となる。
【０５３６】
式（１）の最初の代入「Ｔ＝Ｖ＋１」を図６１Ａに示し、第２の代入、すなわち、「Ｔ＝Ｄｉ−ＲＬＰＳ」を図６１Ｂに示す。
【０５３７】
この表記によって、上記に概述したバイナリ算術復号化エンジンのステップ４は以下のように変更することができる：
ビンの決定は部分的インターバルの位置に依存している：
【数１５２】
2013528025.tif 000164
ｉｆ（Ｖ≧ＲＭＰＳ）ｔｈｅｎ［ｎｏ  ｍｏｄｉｆｉｃａｔｉｏｎ  ｆｏｒ  ＬＰＳ  ｐａｔｈ］｛
ｂｉｎ←１−ｖａｌＭＰＳ（ビンはＬＰＳとして復号化され、ビンバッファ選択部はこのビン情報とｖａｌＭＰＳとの使用によって実際のビン値を取得する。）
Ｖ←Ｖ−ＲＭＰＳ
Ｒ←ＲＬＰＳ｝
ｅｌｓｅ｛
式（１）と（２）を使用して、ＮＭＰＳを決定する
Ｒ←Ｒ−ＮＭＰＳ＊ＲＬＰＳ
ｆｏｒ  ｉ＝０  ｔｏ  ＮＭＰＳ−１
ｂｉｎ←ｖａｌＭＰＳ（ＮＭＰＳビンはＭＰＳとして復号化される。ビンバッファ選択部は、このビン情報とｖａｌＭＰＳとの使用によって実際のビンの値を取得する）｝。
【０５３８】
ＲＬＰＳに対して任意の値が認められた場合、これは、変更されたステップ４におけるＭＰＳパスの最初の２つのサブステップにおいて整数除算と乗算演算の適用をリクエストする（「それ以外の場合」ブランチに対応する）。
【０５３９】
これらの演算をより簡単にするために、２の指数が、本実施形態による、それぞれのエンコーダ／デコーダの｛Ｑ０、．．．、ＱＫ−１｝とｐＬＰＳとの積のそれぞれの積の代表値に対応しているＲｔａｂ［ｑ＿ｉｎｄｅｘ］における表形式のされたＲＬＰＳ値として、使用される。更に、仮定が、ＲＬＰＳが決定インターバル幅Ｄｉ＋１−Ｄｉに相対して小さいことを保っているこれらのビンエンコーダ１０／デコーダ２２に対して、Ｋの数は小さく保たれる。一般的には、たとえば、Ｋ≦２の選択によって保たれる。
【０５４０】
（ＲＬＰＳに対応する）Ｒｔａｂ［１．．．Ｋ］＝２αの選択によって、等式（２）は以下のように簡単化される：
ＮＭＰＳ＝（Ｒ−Ｔ）＞＞α        （３）
変更されたステップ４におけるＭＰＳブランチのサブステップ２におけるＲの更新は以下のように簡単化される。
【数１５３】
2013528025.tif 000165
【０５４１】
１０個の異なるビンエンコーダ／デコーダの対１０、２２のケースを例として考える。例示したケースに於いて、Ｒは、Ｒｍｉｎ＝２５６となるように９ビットで表されることに留意されたい。表８は、例示的にＫ＝４を選択したときの表形式のＲＬＰＳ値の例を含み、この場合、本実施形態を使用していない。
【０５４２】
【表９】
2013528025.tif 000166
表９は、表９の最後の３行、すなわち、最も低いｐ＿ｓｔａｔｅ値に対応する行番号８〜１０、に対応する少なくとも３つのビンエンコーダ／デコーダに対する表形式のＲＬＰＳ値の配置に本実施形態が適用された場合の例を示す。行番号６と７に対応するビンエンコーダ／デコーダに対しては、原理が部分的に適用され、これらの行の各々における少なくとも２つの列に対するＲＬＰＳ値は２の指数で表されるという結果が得られた。
【０５４３】
【表１０】
2013528025.tif 000167
表９において、各ラインは、１０個の異なるエントロピーエンコーダ／デコーダの対１０／２２に対する表Ｒｔａｂ［１．．．４］に対応している。
【０５４４】
したがって、図６１Ａ〜６２に関して説明されている実施形態は、とりわけ、シンボル２６の列を復元するためのデコーダを記載しており、このデコーダは、各々がそれぞれのビットストリーム２４をシンボル２１へ変換するように構成されている複数のエントロピーデコーダ２２と、シンボルの列の前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボル列の各シンボル２６へ多数のパラメータを割り当てるように構成されている割当部１６と、複数のエントロピーデコーダの選択された１つから復元されるシンボル列の各シンボル２５を検索するように構成されている選択部１８であって、この選択がそれぞれのシンボルに対して定義付けられたパラメータの数に応じて行われる、選択部１８と、を含む。エントロピーデコーダの少なくとも１つの部分集合の各々は、現在のインターバル幅Ｒとこの現在のインターバル幅Ｒ内の値Ｖによって定義付けられる内部状態を有するバイナリ算術復号化エンジンでありえ、このバイナリ算術復号化エンジンは、それぞれのビットストリームをシンボルへ変換する際、（１）ｉ＝０．．．Ｋ−１であるＫインターバル［Ｄｉ、Ｄｉ＋１）を使用して、Ｒがインターバル［Ｄｑ＿ｉｎｄｅｘ、Ｄｑ＿ｉｎｄｅｘ＋
１）の範囲に含まれるように、現在のインターバル幅Ｒを量子化インデックスｑ＿ｉｎｄｅｘにマッピングし；（２）ＬＰＳに対応する部分的インターバル幅ＲＬＰＳ＝Ｒｔａｂ［ｑ＿ｉｎｄｅｘ］を取得するために、テーブルＲｔａｂと、インデックスとしての量子化インデックスｑ＿ｉｎｄｅｘと、を使用して、テーブルＲｔａｂへのインターバル分割を実行し、ここで、Ｒｔａｂ［ｉ］はｉ＝０．．．Ｋ−１に対する２の指数であり、ここで、ＭＰＳに対応する部分的インターバル幅ＲＭＰＳはＲ−ＲＬＰＳであり；（３）ＲＭＰＳ≦Ｖであるかどうかをチェックし、ＲＭＰＳ≦Ｖである場合、現在のシンボルをＬＰＳと等しくなるように復元し、ＶをＶ−ＲＭＰＳになるように、そして、ＲをＲＬＰＳになるように更新し、ＲＭＰＳ≦Ｖでない場合、現在のシンボルとＮＭＰＳ−１個の後続のシンボルを、ＮＭＰＳ＝（Ｒ−ｍａｘ｛Ｖ＋１、Ｄｑ＿ｉｎｄｅｘ−ＲＬＰＳ｝）／ＲＬＰＳであるＭＰＳと等しくなるように復元し、ＲをＲ−ＮＭＰＳ・ＲＬＰＳになるように更新し、（４）それぞれのビットストリームを用いてＲを繰り込みかつＶを更新するように構成されている。エントロピーデコーダの部分集合の各々のバイナリ算術復号化エンジンは、Ｒを繰り込みかつＶを更新する際、（４．１）Ｒｍｉｎ＝Ｄ０のときＲ＜Ｒｍｉｎであるかどうかをチェックし、Ｒ＜Ｒｍｉｎの場合、（４．２）ＲがＲｍｉｎと等しいかこれより大きくなるように最小値ｙを用いてＲがＲ・２ｙになるように増分し、（４．３）Ｖｙビット位置を左へシフトすることによってＶを更新し、（４．４）ライン整列されたそれぞれのビットストリームの次のｙ個のビットに基づいてＶのｙ個の最下位ビットを設定するように構成されていてもよい。エントロピーデコーダの部分集合は各々が異なるテーブルＲｔａｂを有する複数のエントロピーデコーダを含みうる。その場合、複数のデコーダに対して、Ｒｔａｂ［ｉ］が、エントロピーデコーダごとに、ｐＬＰＳと、
【数１５４】
2013528025.tif 000168
であるベクトル｛Ｑ０、．．．、ＱＫ−１｝と、のペアが存在するように選択され、これにより、ｉ＝０．．．Ｋのとき、０．９９・ｐＬＰＳ・Ｑｉ＜Ｒｔａｂ［ｉ］＜１．０１・ＰＬＰＳ・Ｑｉになり、ｐＬＰＳは複数のエントロピーデコーダのなかで相互に異なっている。Ｋは複数のエントロピーデコーダのなかで相互に異なっている。複数のエントロピーデコーダのうち、ｉ＝１．．．Ｋのとき、Ｋ＝１またはＱｉ＝Ｑ０の少なくとも１つに対して、エントロピーデコーダのバイナリ算術復号化エンジンは、それぞれのビットストリームをシンボルに変換する際、ＲＬＰＳ＝Ｑ０を設定することによってインターバル分割を実行し、ＲＭＰＳ≦Ｖであるかどうかをチェックし、ＲＭＰＳ≦Ｖである場合、現在のシンボルをＬＰＳと等しくなるように復元し、ＶをＶ−ＲＭＰＳになるように、ＲをＲＬＰＳになるように更新し、ＲＭＰＳ≦Ｖでない場合、現在のシンボルとＮＭＰＳ−１個のこれに続くシンボルを、ＮＭＰＳ＝（Ｒ−ｍａｘ｛Ｖ＋１、Ｒｍｉｎ−ＲＬＰＳ｝）／ＲＬＰＳであるＭＰＳと等しくなるように復元し、ＲをＲ−ＮＭＰＳ・ＲＬＰＳになるように更新し、それぞれのビットストリームを用いてＲを繰り込みかつＶを更新するように構成されていてもよい。エントロピーデコーダの部分集合の各々のバイナリ算術復号化エンジンは、項｛Ｒ−ｍａｘ｛Ｖ＋１、Ｄｑ＿ｉｎｄｅｘ−ＲＬＰＳ｝）ｌｏｇ２（ＲＬＰＳ）ビットの結果を右にシフトすることによって、ＮＭＰＳを計算するように構成されていてもよい。さらに、エントロピーデコーダの少なくとも１つの部分集合の各々は、現在のインターバル幅Ｒと現在のインターバル幅Ｒ内の値Ｖによって定義付けられる内部状態を有するバイナリ算術復号化エンジンであってもよく、バイナリ算術復号化エンジンは、それぞれのビットストリームをシンボルに変換する際、ＬＰＳに対応する部分的インターバル幅ＲＬＰＳをＱ０と等しくなるように設定することによってインターバル分割を実行し、ここで、ＭＰＳに対応する部分的インターバル幅ＲＭＰＳはＲ−ＲＬＰＳであり、ＲＭＰＳ≦Ｖであるかどうかをチェックし、ＲＭＰＳ≦Ｖである場合、現在のシンボルをＬＰＳと等しくなるように復元し、ＶをＶ−ＲＭＰＳになるように、ＲをＲＬＰＳになるように更新し、ＲＭＰＳ≦Ｖでない場合、現在のシンボルとＮＭＰＳ−１個のこれに続くシンボルを、ＮＭＰＳ＝（Ｒ−ｍａｘ｛Ｖ＋１、Ｄｑ＿ｉｎｄｅｘ−ＲＬＰＳ｝／ＲＬＰＳであるＭＰＳに等しくなるように復元し、ＲをＲ−ＮＭＰＳ・ＲＬＰＳになるように更新し、それぞれのビットストリームを用いてＲを繰り込みかつＶを更新するように構成されている。
【０５４５】
以上、装置に関連していくつかの態様を説明してきたが、これらの態様は、ブロックやデバイスが方法ステップやその特徴に対応する、対応する方法の記載をも表すことは明確である。同様に、方法ステップの関連において説明されている態様は、対応する装置の対応するブロックやアイテムや特徴の記載をも表す。方法ステップの一部またはすべてが、たとえば、マイクロプロセッサ、プログラム可能なコンピュータや電子回路などのハードウェア装置によって（またはこれを使用して）実行されうる。いくつかの実施形態において、最も重要な方法ステップの１以上はこのような装置によって実行可能である。
【図１】
2013528025.tif 000188
【図２】
2013528025.tif 000189
【図３】
2013528025.tif 000190
【図４】
2013528025.tif 000191
【図５】
2013528025.tif 000192
【図６】
2013528025.tif 000193
【図７】
2013528025.tif 000194
【図８】
2013528025.tif 000195
【図１０】
2013528025.tif 000196
【図１１】
2013528025.tif 000197
【図１２】
2013528025.tif 000198
【図１３】
2013528025.tif 000199
【図１４】
2013528025.tif 000200
【図１５】
2013528025.tif 000201
【図１６】
2013528025.tif 000202
【図１７】
2013528025.tif 000203
【図１８】
2013528025.tif 000204
【図１９】
2013528025.tif 000205
【図２０】
2013528025.tif 000206
【図２１】
2013528025.tif 000207
【図２２】
2013528025.tif 000208
【図２３】
2013528025.tif 000209
【図２４】
2013528025.tif 000210
【図２５】
2013528025.tif 000211
【図２６】
2013528025.tif 000212
【図２７】
2013528025.tif 000213
【図２８】
2013528025.tif 000214
【図２９】
2013528025.tif 000215
【図３０】
2013528025.tif 000216
【図３１Ａ】
2013528025.tif 000217
【図３１Ｂ】
2013528025.tif 000218
【図３２】
2013528025.tif 000219
【図３３】
2013528025.tif 000220
【図３４】
2013528025.tif 000221
【図３５】
2013528025.tif 000222
【図３６】
2013528025.tif 000223
【図３７】
2013528025.tif 000224
【図３８】
2013528025.tif 000225
【図３９】
2013528025.tif 000226
【図４１】
2013528025.tif 000227
【図４２】
2013528025.tif 000228
【図４３】
2013528025.tif 000229
【図４４】
2013528025.tif 000230
【図４５】
2013528025.tif 000231
【図４６】
2013528025.tif 000232
【図４７】
2013528025.tif 000233
【図４８】
2013528025.tif 000234
【図４９】
2013528025.tif 000235
【図５０】
2013528025.tif 000236
【図５１】
2013528025.tif 000237
【図５２】
2013528025.tif 000238
【図５３】
2013528025.tif 000239
【図５４】
2013528025.tif 000240
【図５５】
2013528025.tif 000241
【図５６】
2013528025.tif 000242
【図５７】
2013528025.tif 000243
【図５８】
2013528025.tif 000244
【図５９】
2013528025.tif 000245
【図６０】
2013528025.tif 000246
【図６１Ａ】
2013528025.tif 000247
【図６１Ｂ】
2013528025.tif 000248
【図６２】
2013528025.tif 000249
【図９】
2013528025.tif 000250
【図４０】
2013528025.tif 000251
【国際調査報告】
2013528025.tif 000252
2013528025.tif 000253
2013528025.tif 000254
2013528025.tif 000255
2013528025.tif 000256
2013528025.tif 000257
2013528025.tif 000258