(57)【要約】【解決手段】シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当てる割当部と、各々が、転送されてきたシンボルをそれぞれのビットストリームに変換する複数のエントロピーエンコーダと、各々のシンボルを、それぞれのシンボルに割り当てられた複数のパラメータに依存して複数のエントロピーエンコーダから選択される１つのエントロピーエンコーダに転送する選択部とを備える。
2014534677.tif 000002
【特許請求の範囲】
【請求項１】
シンボルシーケンスを符号化するエンコーダであって、
前記シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当てる割当部（４）と、
各々が、転送されてきたシンボル（７）をそれぞれのビットストリーム（４７）に変換する複数のエントロピーエンコーダ（１０）と、
各々のシンボルを、それぞれのシンボルに割り当てられた前記複数のパラメータに依存して前記複数のエントロピーエンコーダから選択される１つのエントロピーエンコーダに転送する選択部（６）と、
を備え、
前記複数のエントロピーエンコーダは各々、シンボルシーケンスを、それぞれの最大ビット長Ｌｘ以下の長さの符号語にマッピングする可変長コーダであり、
前記複数のエントロピーエンコーダ（１０）の各々に対して設けられ、そのエントロピーエンコーダのそれぞれのビットストリーム（４７）をバッファリングする個別のバッファ（４８）と、
前記複数のエントロピーエンコーダに対して、それぞれビット長Ｎｘの切片となるトランシェのエントリのシーケンスを、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約するグローバルバッファ（５１）と、
を備え、
前記複数のエントロピーエンコーダおよび前記個別のバッファは、前記選択部（６）により前記複数のエントロピーエンコーダに転送されたシンボルシーケンスのシンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ（５１）内にその時点で予約されているビット数から、その時点で前記それぞれのエントロピーエンコーダに対する前記個別のバッファ内、または前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点でバッファリングされているビット数Ｍｘを差し引いた値が、前記それぞれのエントロピーエンコーダに対してさらに符号語を生成するものとして意図される最小符号語数Ｃｘに１を加え、前記それぞれの最大ビット長Ｌｘを乗算したもの、すなわち（Ｃｘ＋１）・Ｌｘ、を予約するのに不十分であるときに、前記複数のエントロピーエンコーダのそれぞれに対して、ビット長Ｎｘのトランシェエントリの予約（４９）をトリガするように協働し、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリーム（４７）のバッファリングされた部分を出力して、前記グローバルバッファ（５１）内のそれぞれ予約されたトランシェエントリを満たし、前記グローバルベッファは、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、複数のビットストリームのビットストリームのトランシェの単一ストリーム（５２）であってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを得る
エンコーダ。
【請求項２】
請求項１に記載のエンコーダにおいて、前記割当部は、各シンボルに割り当てられた前記複数のパラメータが、前記それぞれのシンボルが想定し得る可能な値の中で確率分布の推定に対する測度を含むか、または前記確率分布の推定に対する測度となる構成を有するエンコーダ。
【請求項３】
請求項２に記載のエンコーダにおいて、前記シンボルシーケンスは二値アルファベットから作られ、前記割当部は、前記確率分布の推定が、確率の低いまたは確率の高いビン値の確率の推定に対する測度と、前記２つの可能なビン値のうちどちらが確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子を含む構成を有するエンコーダ。
【請求項４】
請求項２または３に記載のエンコーダにおいて、前記割当部は、各コンテクストがこれに関連付けられた各確率分布推定を有するシンボルシーケンスのシンボル内に含まれる情報に基づいて前記シンボルシーケンスの各シンボルにコンテクストを割り当て、それぞれのコンテクストが割り当てられる前のシンボルのシンボル値に基づいて各コンテクストの確率分布の推定を実際のシンボル統計に適応させ、各シンボルに割り当てられたコンテクストに関連付けられた確率分布推定に基づいて、シンボルごとに確率分布の推定に対して測度を求めるエンコーダ。
【請求項５】
請求項４に記載のエンコーダにおいて、前記割当部は、シンボルごとに確率分布の推定に対して測度を求める際に、その測度を得るために複数の確率分布推定代表の１つへ各シンボルに割り当てられたコンテクストに関連付けられた確率分布の推定を量子化する構成を有し、前記選択部は、全単射関連付けが前記複数のエントロピーエンコーダと前記複数の確率分布推定代表との間で定義付ける構成を有するエンコーダ。
【請求項６】
請求項５に記載のエンコーダにおいて、前記選択部は、所定の決定論的な方法で、量子化マッピングを前記シンボルシーケンスの前のシンボルに応じて確率分布推定の範囲から複数の確率分布推定代表へ経時的に変化させるエンコーダ。
【請求項７】
請求項６に記載のエンコーダにおいて、前記複数のエントロピーエンコーダは、量子化マッピングの変化に応答して、そのシンボルをビットストリームへ変換する方法を適応させるエンコーダ。
【請求項８】
請求項５または６に記載のエンコーダにおいて、前記選択部は、前記エントロピーエンコーダがシンボルを変換するビットストリームのビットレートのばらつきを小さくするように、前記量子化マッピングを変更する構成を有するエンコーダ。
【請求項９】
請求項１から８のいずれか１項に記載のエンコーダにおいて、前記複数のエントロピーエンコーダの少なくとも１つは、これに関連付けられているシンボル入力バッファを有し、前記選択部は、前記関連付けられているシンボル入力バッファを介して、前記少なくとも１つのエントロピーエンコーダへシンボルを転送する構成を有するエンコーダ。
【請求項１０】
請求項１から９のいずれか１項に記載のエンコーダにおいて、前記グローバルバッファは、前記複数のエントロピーエンコーダとそれぞれの個別のバッファとのいずれかによるそれぞれの予約のトリガ時に、予約されてから最も時間が経過して既に満たされているトランシェエントリから、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリは除いて、前記トランシェエントリ単位で順に、前記トランシェエントリのうち満たされたトランシェエントリの取り出しを実行する構成を有するエンコーダ。
【請求項１１】
請求項１から１０のいずれか１項に記載のエンコーダにおいて、
前記個別のバッファは、ビットストリームの蓄えられた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリをトランシェエントリ単位で満たす構成を有し、
前記グローバルバッファは、
前記複数のエントロピーエンコーダと前記個別のバッファのいずれかによるそれぞれの予約のトリガ時に、
予約されてから最も時間が経過して既に満たされているトランシェエントリから、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリは除いて、前記トランシェエントリ単位で順に、前記トランシェエントリのうち満たされたトランシェエントリの取り出しを完了し、その後に、
予約ささたトランシェエントリによってカバーされる前記グローバルバッファ内のビット数と、それぞれ予約−トリガを行っているエントロピーエンコーダのビット長Ｎｘとの和が、最大バッファ遅延Ｄより大きいかどうかをチェックし、
大きくない場合には、
前記それぞれ予約−トリガを行っているエントロピーエンコーダに対してビット長Ｎｘのそれぞれの新しいトランシェエントリを予約し、
大きい場合には、
前記選択部により、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダに、まだエントロピー符号化されていないシンボルがあればそれを転送して、有効なシンボルシーケンスへ拡張させ、その有効なシンボルシーケンを符号語にマッピングさせて、対応する個別のバッファに予約させ、その後に、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリに対して、前記エントロピーエンコーダの個別のバッファに現在予約されているビット数Ｍｘ個が、そのエントロピーエンコーダのビット長Ｎｘより小さいかどうかをチェックし、そうであれば、Ｎｘ−Ｍｘを現在バッファリングされているＭｘビットへ追加し、その後、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダの個別のバッファからＮｘ個の予約されたビットを、前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを満たすためにこれに出力し、その際、予約されたＮｘビットを上回る可能性のある付加的にバッファリングされたビットは残しておく、
エンコーダ。
【請求項１２】
請求項１から１１のいずれか１項に記載のエンコーダにおいて、前記トランシェの単一ストリームをチャンクに断片化するフラグメンタイザをさらに備え、各チャンクには、前記複数のエントロピーエンコーダのトランシェがどのようにそれぞれのチャンクに分散してチャンクのシーケンスが得られたかの情報を含む、エンコーダ。
【請求項１３】
請求項１から１２のいずれか１項に記載のエンコーダにおいて、前記複数のエントロピーエンコーダおよび前記グローバルバッファが、現在転送されているが未だにマッピングされていないシンボルを前記現在転送されているが未だにマッピングされていないシンボルを接頭語として有しているドント−ケアシンボルによって有効シンボルシーケンスへ断続的に拡張し、このように拡張されたシンボルシーケンスを符号語内にマッピングし、それにより得られた符号語を予約されたトランシェエントリ内へ入力し、そのトランシェエントリをフラッシュする、エンコーダ。
【請求項１４】
請求項１から１３のいずれか１項に記載のエンコーダにおいて、前記複数のエントロピーエンコーダおよび前記グローバルバッファが、トランシェエントリの数と符号語を入力したトランシェエントリの数との和が所定の基準を満たす事象において、前記断続的な拡張、入力、およびフラッシュを実行するエンコーダ。
【請求項１５】
シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当て、
各シンボルを複数のエントロピーエンコーダの選択された１つに転送し、その選択はそのシンボルに割り当てられたパラメータに応じて行われ、前記複数のエントロピーエンコーダは各々、シンボルシーケンスをそれぞれの最大ビット長Ｌｘ以下の長さの符号語にマッピングする可変長コーダであって、転送されたシンボルをそれぞれのビットストリームへ変換する
シンボルシーケンスの符号化方法において、
各エントロピーエンコーダに対して、そのエントロピーエンコーダのビットストリームを各個別のバッファにバッファリングし、
前記複数のエントロピーエンコーダに対して、それぞれビット長Ｎｘの切片となるトランシェのエントリのシーケンスを、グローバルバッファ内に、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約し、
前記選択部により前記複数のエントロピーエンコーダに転送されたシンボルシーケンスのシンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点で予約されているビット数から、その時点で前記それぞれのエントロピーエンコーダに対する前記個別のバッファ内、または前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点でバッファリングされているビット数Ｍｘを差し引いた値が、前記それぞれのエントロピーエンコーダに対してさらに符号語を生成するものとして意図される最小符号語数Ｃｘに１を加え、前記それぞれの最大ビット長Ｌｘを乗算したもの、すなわち（Ｃｘ＋１）・Ｌｘ、を予約するのに不十分であるときに、前記複数のエントロピーエンコーダのそれぞれに対して、ビット長Ｎｘのトランシェエントリの予約（４９）をトリガし、
前記符号語バッファからビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ）内のそれぞれ予約されたトランシェエントリを満たし、
トランシェアントリのうち満たされたトランシェエントリを順に取り出して、複数のビットストリームのビットストリームのトランシェの単一ストリーム（５２）であってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを得る
シンボルシーケンスの符号化方法。
【請求項１６】
シンボルシーケンスを復元するデコーダであって、
各々がそれぞれのビットストリーム（５７）をシンボル（２１）へ変換する複数のエントロピーデコーダ（２２）と、
前記シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボル（２５）へ複数のパラメータを割り当てる割当部（１６）と、
複数のエントロピーデコーダのうち選択された１つから復元されるシンボルシーケンス（２５）の各シンボルを検索し、その選択を前記それぞれのシンボルに対して定義付けられたパラメータに応じて行う選択部（１８）と、
を備え、
前記エントロピーデコーダ（２２）は各々、それぞれの最大ビット長Ｌｘ以下の長さの符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
前記デコーダは、複数のビットストリームのビットストリーム（６０）のトランシェの単一ストリーム（６２）であってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを受信し、前記トランシェへのリクエストが発生する順に応じて前記複数のエントロピーデコーダへ前記トランシェを順次分配するグローバルバッファを備え、
前記複数のエントロピーデコーダ（２２）は各々、前記複数のエントロピーデコーダから、前記選択部（１８）により検索されるときに復元される前記シンボルシーケンス（２５）の前記シンボルのうち、前記エントロピーデコーダの各々によってそれぞれのビットストリーム（５７）内の新しい符号語からマッピングされる新しいシンボルシーケンスの初期部分を形成するシンボルに遭遇するときに、前記グローバルバッファからそれぞれのビットストリームのそれぞれのビット長Ｎｘのトランシェに対してそれぞれのリクエスト（５６、５９）をトリガし、その際、それぞれの時点で、前記グローバルバッファ（６１）によって前記エントロピーデコーダの各々へ分配されていたが、新しい符号語を含めて、それまで、前記エントロピーデコーダ（２２）によって未だにエントロピー復号化されていなかったそれぞれのビットストリーム（５７）のビット数Ｍｘ個が、前記エントロピーデコーダの各々に対するさらなる符号語の意図される最小数Ｃｘに１を加えて前記それぞれの最大ビット長Ｌｘを乗算したもの、すなわち、（Ｃｘ＋１）・Ｌｘ、未満であることを前提としている、
デコーダ。
【請求項１７】
請求項１６に記載のデコーダにおいて、エントロピーデコーダごとに、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたビット数を、前記グローバルバッファから前記エントロピーデコーダの各々まで分配させた最も長い間分配されていないトランシェの分配に至るまで、ロギングし、
それぞれのビット長Ｎｘのトランシェに対するそれぞれのリクエストがトリガされる度ごとに、一方で、前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたグローバルビット数と、他方で、ロギングされた最小ビット数と、の差が、最大バッファ遅延Ｄより大きいかどうかを判断し、
大きい場合には、
前記グローバルバッファから前記ロギングされた最小数がロギングされていた前記エントロピーデコーダまで分配させた前記最も長い間予約されていないトランシェと、前記ロギングされた最小数が前記選択部によりロギングされている前記エントロピーデコーダから未だ検索されていない任意のシンボルと、を廃棄する
デコーダ。
【請求項１７】
請求項１５または１６に記載のデコーダにおいて、前記複数のエントロピーエンコーダの前記トランシェが前記それぞれのチャンクに対してどのように分布されているかについての情報がそれぞれ添付されているチャンクのシーケンスから、前記トランシェの単一ストリームの再構成するデフラグメンタイザをさらに含む、デコーダ。
【請求項１８】
請求項１５から１７のいずれか１項に記載のデコーダにおいて、前記割当部は、各シンボルに割り当てられた複数のパラメータが、それぞれのシンボルが想定し得る可能なシンボル値の中から確率分布の推定に対する測度を含む、または前記確率分布の推定に対する測度であるように構成された、デコーダ。
【請求項１９】
請求項１８に記載のデコーダにおいて、復元されるシンボルシーケンスは二値アルファベットのシンボルシーケンスであり、前記割当部は、前記確率分布の推定が、前記二値アルファベットの前記２つの可能なビン値の確率の低いまたは確率の高いビン値の確率の推定に対する測度と、前記２つの可能なビン値のうちどちらが前記確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子とから成るように構成された、デコーダ。
【請求項２０】
請求項１８または１９に記載のデコーダにおいて、前記割当部は、各コンテクストがこれに関連付けられたそれぞれの確率分布推定を有することによって復元される前記シンボルシーケンスの前に復元されたシンボル内に含まれる前記情報に基づいて復元される前記シンボルシーケンスの各シンボルへコンテクストを内的に割り当て、前記それぞれのコンテクストが割り当てられる前に復元されたシンボルのシンボル値に基づいてコンテクストごとに前記確率分布推定を実際のシンボル統計に適応させ、前記それぞれのシンボルに割り当てられた前記コンテクストに関連付けられた前記確率分布推定に基づいてシンボルごとに前記確率分布の前記推定に対する前記測度を求めるデコーダ。
【請求項２１】
請求項２０に記載のデコーダにおいて、前記割当部は、シンボルごとに前記確率分布の前記推定に対して前記測度を求める際に、前記確率分布の前記推定に対する前記測度を得るために複数の確率分布推定代表の１つへ前記各シンボルに割り当てられた前記コンテクストに関連付けされた前記確率分布の推定を量子化し、前記選択部は、全単射関連付けが前記複数のエントロピーエンコーダと前記複数の確率分布推定代表との間で定義付けられるデコーダ。
【請求項２２】
請求項２１に記載のデコーダにおいて、前記選択部は、所定の決定論的な方法で、量子化マッピングを前記シンボルシーケンスの前に復元されたシンボルに応じて前記確率分布推定の範囲から前記複数の確率分布推定代表へ経時的に変化させるデコーダ。
【請求項２３】
請求項２２に記載のデコーダにおいて、前記複数のエントロピーデコーダは、前記量子化マッピングの変化に応答して、そのシンボルをビットストリームへ変換する方法を適応させるデコーダ。
【請求項２４】
請求項２２または２３に記載のデコーダにおいて、前記選択部は、前記シンボルが前記複数のエントロピーデコーダから検索されるレートのばらつきを少なくするように前記量子化マッピングを変化させるデコーダ。
【請求項２５】
請求項１５から２４のいずれか１項に記載のデコーダにおいて、少なくとも１つのエントロピーデコーダは、これに関連付けられているシンボル出力バッファを有しており、前記選択部は、前記関連付けられているシンボル出力バッファを介して、前記少なくとも１つのエントロピーデコーダから前記シンボルを検索するデコーダ。
【請求項２６】
請求項１５から２５のいずれか１項に記載のデコーダにおいて、前記複数のエントロピーデコーダおよび前記選択部は復元される前記シンボルシーケンスの形成に参加しないためにシンボルシーケンスの接尾語を断続的に切り捨てるデコーダ。
【請求項２７】
請求項１６に記載のデコーダにおいて、前記複数のエントロピーデコーダおよび前記選択部は、前記トランシェエントリからのそれぞれのエントロピーデコーダの２つの連続した符号語検索間の前記複数のエントロピーデコーダによって前記トランシェエントリから既に検索されている多数の符号語が、所定の基準を満たしている事象において、断続的切り捨てを実行するデコーダ。
【請求項２８】
シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボルへ複数のパラメータを割り当て、
複数のエントロピーデコーダの選択された１つから復元される前記シンボルシーケンスの各シンボルを検索し、この選択は、それぞれのシンボルに対して定義付けられたパラメータに応じて行い、前記複数のエントロピーデコーダは各々、それぞれのビッオストリームをシンボルに変換する構成であって、各エントロピーデコーダが、それぞれの最大ビット長Ｌｘ以下の長さの符号語をシンボルシーケンスにマッピングする可変長デコーダである
シンボルシーケンスの復元方法において、
ビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームをグローバルバッファに受信し、
前記トランシェへのリクエストが発生する順に応じてグローバルバッファから前記前記複数のエントロピーデコーダへ前記トランシェを順次分配し、
前記複数のエントロピーデコーダの各々に対し、前記複数のエントロピーデコーダから、前記選択部により検索されるときに復元される前記シンボルシーケンスの前記シンボルのうち、前記エントロピーデコーダの各々によってそれぞれのビットストリーム内の新しい符号語からマッピングされる新しいシンボルシーケンスの初期部分を形成するシンボルに遭遇するときに、前記グローバルバッファからそれぞれのビットストリームのそれぞれのビット長Ｎｘのトランシェに対してそれぞれのリクエストをトリガし、
このトリガに際して、それぞれの時点で、前記グローバルバッファ（６１）によって前記エントロピーデコーダの各々へ分配されていたが、新しい符号語を含めて、それまで、前記エントロピーデコーダ（２２）によって未だにエントロピー復号化されていなかったそれぞれのビットストリーム（５７）のビット数Ｍｘ個が、前記エントロピーデコーダの各々に対するさらなる符号語の意図される最小数Ｃｘに１を加えて前記それぞれの最大ビット長Ｌｘを乗算したもの、すなわち、（Ｃｘ＋１）・Ｌｘ、未満であることを前提とする
シンボルシーケンスの復元方法。
【請求項２９】
シンボルシーケンスを符号化するエンコーダであって、
前記シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当てる割当部と、
各々が、転送されてきたシンボルをそれぞれのビットストリームに変換する複数のエントロピーエンコーダと、
各々のシンボルを、それぞれのシンボルに割り当てられた前記複数のパラメータに依存して前記複数のエントロピーエンコーダから選択される１つのエントロピーエンコーダに転送する選択部と、
を備え、
前記複数のエントロピーエンコーダは各々、シンボルシーケンスを、それぞれの最大ビット長Ｌｘ以下の長さの符号語にマッピングする可変長コーダであり、
前記複数のエントロピーエンコーダの各々に対して設けられ、そのエントロピーエンコーダのそれぞれのビットストリームをバッファリングする個別のバッファと、
前記複数のエントロピーエンコーダに対して、トランシェのエントリのシーケンスを、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約するグローバルバッファ）と、
を備え、
前記複数のエントロピーエンコーダおよび前記個別のバッファは、前記選択部により前記複数のエントロピーエンコーダへ転送された前記シンボルシーケンスの前記シンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記エントロピーエンコーダのそれぞれの１つに対してビット長Ｎｘのトランシェエントリの予約をトリガするように協働し、その際、前記それぞれの時点で、前記それぞれのエントロピーエンコーダに対する前記グローバルバッファ内に現在予約されているビット数と、前記それぞれのエントロピーエンコーダの前記個別のバッファ内または前記それぞれのエントロピーエンコーダに対する前記グローバルバッファ内で現在バッファリングされているビット数Ｍｘ個と、の差が所定の基準を満たしていないことを前提とし、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリを満たし、前記グローバルベッファは、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、複数のビットストリームのビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを獲得し、
前記個別のバッファは、ビットストリームの蓄えられた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリをトランシェエントリ単位で満たす構成を有し、
前記グローバルバッファは、前記複数のエントロピーエンコーダと前記個別のバッファのいずれかによるそれぞれの予約のトリガ時に、
予約されてから最も時間が経過して既に満たされているトランシェエントリから、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリは除いて、前記トランシェエントリ単位で順に、前記トランシェエントリのうち満たされたトランシェエントリの取り出しを完了し、その後に、
予約ささたトランシェエントリによってカバーされる前記グローバルバッファ内のビット数と、それぞれ予約−トリガを行っているエントロピーエンコーダのビット長Ｎｘとの和が、最大バッファ遅延Ｄより大きいかどうかをチェックし、
大きくない場合には、
前記それぞれ予約−トリガを行っているエントロピーエンコーダに対してビット長Ｎｘのそれぞれの新しいトランシェエントリを予約し、
大きい場合には、
前記選択部により、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダに、まだエントロピー符号化されていないシンボルがあればそれを転送して、有効なシンボルシーケンスへ拡張させ、その有効なシンボルシーケンを符号語にマッピングさせて、対応する個別のバッファに予約させ、その後に、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリに対して、前記エントロピーエンコーダの個別のバッファに現在予約されているビット数Ｍｘ個が、そのエントロピーエンコーダのビット長Ｎｘより小さいかどうかをチェックし、そうであれば、Ｎｘ−Ｍｘを現在バッファリングされているＭｘビットへ追加し、その後、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダの個別のバッファからＮｘ個の予約されたビットを、前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを満たすためにこれに出力し、その際、予約されたＮｘビットを上回る可能性のある付加的にバッファリングされたビットは残しておく
構成を有する
エンコーダ。
【請求項３０】
請求項２９に記載のエンコーダにおいて、前記複数のエントロピーエンコーダのうち所定の１つが、より高頻度で選択されたエントロピーエンコーダであると期待され、前記所定のエントロピーエンコーダが１ビット長の符号語を単にサポートし、前記エンコーダが、前記それぞれの予約−トリガ型エントロピーエンコーダが前記所定のエントロピーエンコーダである場合、前記予約されたトランシェエントリによってカバーされた前記グローバルバッファ内のビット数プラス前記所定のエントロピーエンコーダに対して前記リクエストされたトランシェエントリのビット長Ｎｘが最大バッファ遅延Ｄより大きいかどうかをチェックする代わりに、
前記予約されるトランシェエントリによってカバーされる前記グローバルバッファ内のビット数プラス前記所定のエントロピーエンコーダに対して前記リクエストされたトランシェエントリの前記ビット長Ｎｘが定義済みの閾値より大きいかどうか（Ｄ２＜Ｄ）をチェックし、
前記定義済みの閾値Ｄ２より大きい場合、
予約されているが未だ完全に書き込まれていないトランシェエントリのいずれかの予約を最も長い間トリガしていないエントロピーエンコーダを決定し、
前記決定されたエントロピーエンコーダにより、前記選択部により前記エントロピーエンコーダへ転送された、あれば、未だエントロピー符号化されていないシンボルを、有効シンボルシーケンスへ拡張させ、前記決定されたエントロピーエンコーダの前記個別のバッファによってバッファリングされるように前記有効シンボルシーケンスを符号語にマッピングさせ、
前記決定されたエントロピーエンコーダの前記個別のバッファ内で現在バッファリングされているビットを前記所定のエントロピーエンコーダの前記個別のバッファへ変位させ、
前記未だ完全に書き込まれていないトランシェエントリの予約を前記決定されたエントロピーエンコーダから前記所定のエントロピーエンコーダへ変更する、
エンコーダ。
【請求項３１】
シンボルシーケンスを復元するデコーダであって、
各々がそれぞれのビットストリームをシンボルへ変換する複数のエントロピーデコーダと、
前記シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボル（２５）へ複数のパラメータを割り当てる割当部と、
複数のエントロピーデコーダのうち選択された１つから復元されるシンボルシーケンスの各シンボルを検索し、その選択を前記それぞれのシンボルに対して定義付けられたパラメータに応じて行う選択部と、
を備え、
前記エントロピーデコーダは各々、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
前記デコーダは、複数のビットストリームのビットストリーム（６０）のトランシェの単一ストリーム（６２）であってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを受信し、前記トランシェへのリクエストが発生する順に応じて前記複数のエントロピーデコーダへ前記トランシェを順次分配するグローバルバッファを備え、
前記複数のエントロピーデコーダは各々、前記複数のエントロピーデコーダから、前記選択部により検索されるときに復元される前記シンボルシーケンスの前記シンボルのうち、前記エントロピーデコーダの各々によってそれぞれのビットストリーム内の新しい符号語からマッピングされる新しいシンボルシーケンスの初期部分を形成するシンボルに遭遇するときに、前記グローバルバッファからそれぞれのビットストリームのそれぞれのビット長Ｎｘのトランシェに対してそれぞれのリクエストをトリガし、その際、それぞれの時点で、前記グローバルバッファによって前記エントロピーデコーダの各々へ分配されていたが、新しい符号語を含めて、それまで、前記エントロピーデコーダによって未だにエントロピー復号化されていなかったそれぞれのビットストリームのビット数Ｍｘ個が所定の数を下回ることを前提としており、
エントロピーデコーダごとに、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたビット数を、前記グローバルバッファから前記エントロピーデコーダの各々まで分配させた最も長い間分配されていないトランシェの分配に至るまで、ロギングし、
それぞれのビット長Ｎｘのトランシェに対するそれぞれのリクエストがトリガされる度ごとに、一方で、前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたグローバルビット数と、他方で、ロギングされた最小ビット数と、の差が、最大バッファ遅延Ｄより大きいかどうかを判断し、
大きい場合には、
前記グローバルバッファから前記ロギングされた最小数がロギングされていた前記エントロピーデコーダまで分配させた前記最も長い間予約されていないトランシェと、前記ロギングされた最小数が前記選択部によりロギングされている前記エントロピーデコーダから未だ検索されていない任意のシンボルと、を廃棄する
デコーダ。
【請求項３２】
請求項３１に記載のデコーダにおいて、前記複数のエントロピーデコーダのうち、所定の１つがより高頻度で選択されるエントロピーデコーダであると期待され、前記所定のエントロピーデコーダが１ビット長の符号語を単にサポートし、前記デコーダが、前記それぞれのリクエストが前記所定のエントロピーデコーダに由来する場合、一方で前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分布させたグローバルビット数と、他方で、ロギングされた最小ビット数と、の差が最大バッファ遅延Ｄより大きいかどうかを判断する代わりに、
一方で前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分布させたグローバルビット数と、他方でロギングされた最小ビット数と、の差が定義済みの閾値より大きいかどうか（Ｄ２＜Ｄ）をチェックし、
前記定義済みの閾値Ｄ２より大きい場合、
前記ロギングされた最小数が前記選択部によりロギングされている前記エントロピーデコーダから未だ検索されていないシンボルを切り捨て、
前記所定のエントロピーデコーダによって復号化されるように、前記グローバルバッファから前記ロギングされた最小数がロギングされている前記エントロピーデコーダへ分布させたトランシェの非復号化部分を再方向付けする、
デコーダ。
【請求項３３】
シンボルシーケンスを符号化するエンコーダであって、
前記シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当てる割当部と、
各々が、転送されてきたシンボルをそれぞれのビットストリームに変換する複数のエントロピーエンコーダと、
各々のシンボルを、それぞれのシンボルに割り当てられた前記複数のパラメータに依存して前記複数のエントロピーエンコーダから選択される１つのエントロピーエンコーダに転送する選択部と、
を備え、
前記複数のエントロピーエンコーダは各々、シンボルシーケンスを、それぞれの最大ビット長Ｌｘ以下の長さの符号語にマッピングする可変長コーダであり、
前記複数のエントロピーエンコーダの各々に対して設けられ、そのエントロピーエンコーダのそれぞれのビットストリームをバッファリングする個別のバッファと、
前記複数のエントロピーエンコーダに対して、トランシェのエントリのシーケンスを、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約するグローバルバッファと、
を備え、
前記複数のエントロピーエンコーダおよび前記個別のバッファは、前記選択部により前記複数のエントロピーエンコーダへ転送された前記シンボルシーケンスの前記シンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記エントロピーエンコーダのそれぞれの１つに対してビット長Ｎｘのトランシェエントリの予約をトリガするように協働し、その際、前記それぞれの時点で、前記それぞれのエントロピーエンコーダに対する前記グローバルバッファ内に現在予約されているビット数と、前記それぞれのエントロピーエンコーダの前記個別のバッファ内または前記それぞれのエントロピーエンコーダに対する前記グローバルバッファ内で現在バッファリングされているビット数Ｍｘ個と、の差が所定の基準を満たしていないことを前提とし、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリを満たし、前記グローバルベッファは、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、複数のビットストリームのビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを獲得し、
前記エンコーダはさらに、前記トランシェの単一ストリームをチャンクに断片化するフラグメンタイザをさらに備え、各チャンクには、前記複数のエントロピーエンコーダのトランシェがどのようにそれぞれのチャンクに分散してチャンクのシーケンスが得られたかの情報を含む、
エンコーダ。
【請求項３５】
シンボルシーケンスを復元するデコーダであって、
各々がそれぞれのビットストリームをシンボルへ変換する複数のエントロピーデコーダと、
前記シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボルへ複数のパラメータを割り当てる割当部と、
複数のエントロピーデコーダのうち選択された１つから復元されるシンボルシーケンスの各シンボルを検索し、その選択を前記それぞれのシンボルに対して定義付けられたパラメータに応じて行う選択部と、
を備え、
前記エントロピーデコーダは各々、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
前記デコーダはさらに、前記複数のエントロピーエンコーダの前記トランシェが前記それぞれのチャンクに対してどのように分布されているかについての情報がそれぞれ添付されているチャンクのシーケンスから、前記トランシェの単一ストリームの再構成するデフラグメンタイザをさらに含む、
デコーダ。
【請求項３６】
シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当て、
各シンボルを複数のエントロピーエンコーダの選択された１つに転送し、その選択はそのシンボルに割り当てられたパラメータに応じて行われ、前記複数のエントロピーエンコーダは各々、シンボルシーケンスを符号語にマッピングする可変長コーダであって、転送されたシンボルをそれぞれのビットストリームへ変換する
シンボルシーケンスの符号化方法において、
前記エントロピーデコーダは各々、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
各エントロピーエンコーダに対して、そのエントロピーエンコーダのビットストリームを各個別のバッファにバッファリングし、
前記複数のエントロピーエンコーダに対して、それぞれビット長Ｎｘの切片となるトランシェのエントリのシーケンスを、グローバルバッファ内に、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約し、
前記選択部により前記複数のエントロピーエンコーダに転送されたシンボルシーケンスのシンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点で予約されているビット数と、その時点で前記それぞれのエントロピーエンコーダに対する前記個別のバッファ内、または前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点でバッファリングされているビット数Ｍｘとの差が、所定の基準を満たしていないことを前提とし、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリを満たし、
前記グローバルベッファから、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、複数のビットストリームのビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを獲得し、
前記個別のバッファからビットストリームの蓄えられた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリをトランシェエントリ単位で満たし、
前記複数のエントロピーエンコーダと前記個別のバッファのいずれかによるそれぞれの予約のトリガ時に、
予約されてから最も時間が経過して既に満たされているトランシェエントリから、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリは除いて、前記トランシェエントリ単位で順に、前記トランシェエントリのうち満たされたトランシェエントリの取り出しを完了し、その後に、
予約ささたトランシェエントリによってカバーされる前記グローバルバッファ内のビット数と、それぞれ予約−トリガを行っているエントロピーエンコーダのビット長Ｎｘとの和が、最大バッファ遅延Ｄより大きいかどうかをチェックし、
大きくない場合には、
前記それぞれ予約−トリガを行っているエントロピーエンコーダに対してビット長Ｎｘのそれぞれの新しいトランシェエントリを予約し、
大きい場合には、
前記選択部により、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダに、まだエントロピー符号化されていないシンボルがあればそれを転送して、有効なシンボルシーケンスへ拡張させ、その有効なシンボルシーケンを符号語にマッピングさせて、対応する個別のバッファに予約させ、その後に、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリに対して、前記エントロピーエンコーダの個別のバッファに現在予約されているビット数Ｍｘ個が、そのエントロピーエンコーダのビット長Ｎｘより小さいかどうかをチェックし、そうであれば、Ｎｘ−Ｍｘを現在バッファリングされているＭｘビットへ追加し、その後、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダの個別のバッファからＮｘ個の予約されたビットを、前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを満たすためにこれに出力し、その際、予約されたＮｘビットを上回る可能性のある付加的にバッファリングされたビットは残しておく
方法。
【請求項３７】
各々がそれぞれのビットストリームをシンボルに変換する複数のエントロピーデコーダを用いてシンボルシーケンスを復元する方法であって、
シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボルへ複数のパラメータを割り当て、
複数のエントロピーデコーダの選択された１つから復元される前記シンボルシーケンスの各シンボルを検索し、この選択は、それぞれのシンボルに対して定義付けられたパラメータに応じて行う
シンボルシーケンスの復元方法において、
各エントロピーデコーダは、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
ビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームをグローバルバッファに受信し、
前記トランシェへのリクエストが発生する順に応じてグローバルバッファから前記前記複数のエントロピーデコーダへ前記トランシェを順次分配し、
前記複数のエントロピーデコーダの各々に対し、前記複数のエントロピーデコーダから、前記選択部により検索されるときに復元される前記シンボルシーケンスの前記シンボルのうち、前記エントロピーデコーダの各々によってそれぞれのビットストリーム内の新しい符号語からマッピングされる新しいシンボルシーケンスの初期部分を形成するシンボルに遭遇するときに、前記グローバルバッファからそれぞれのビットストリームのそれぞれのビット長Ｎｘのトランシェに対してそれぞれのリクエストをトリガし、
エントロピーデコーダごとに、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたビット数を、前記グローバルバッファから前記エントロピーデコーダの各々まで分配させた最も長い間分配されていないトランシェの分配に至るまで、ロギングし、
それぞれのビット長Ｎｘのトランシェに対するそれぞれのリクエストがトリガされる度ごとに、一方で、前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたグローバルビット数と、他方で、ロギングされた最小ビット数と、の差が、最大バッファ遅延Ｄより大きいかどうかを判断し、
大きい場合には、
前記グローバルバッファから前記ロギングされた最小数がロギングされていた前記エントロピーデコーダまで分配させた前記最も長い間予約されていないトランシェと、前記ロギングされた最小数が前記選択部によりロギングされている前記エントロピーデコーダから未だ検索されていない任意のシンボルと、を廃棄する
シンボルシーケンスの復元方法。
【請求項３８】
シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当て、
各シンボルを複数のエントロピーエンコーダの選択された１つに転送し、その選択はそのシンボルに割り当てられたパラメータに応じて行われ、前記複数のエントロピーエンコーダは各々、シンボルシーケンスを符号語にマッピングする可変長コーダであって、転送されたシンボルをそれぞれのビットストリームへ変換する
シンボルシーケンスの符号化方法において、
前記エントロピーデコーダは各々、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
各エントロピーエンコーダに対して、そのエントロピーエンコーダのビットストリームを各個別のバッファにバッファリングし、
前記複数のエントロピーエンコーダに対して、それぞれビット長Ｎｘの切片となるトランシェのエントリのシーケンスを、グローバルバッファ内に、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約し、
前記選択部により前記複数のエントロピーエンコーダに転送されたシンボルシーケンスのシンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点で予約されているビット数と、その時点で前記それぞれのエントロピーエンコーダに対する前記個別のバッファ内、または前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点でバッファリングされているビット数Ｍｘとの差が、所定の基準を満たしていないことを前提とし、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリを満たし、前記グローバルベッファから、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、複数のビットストリームのビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを獲得し、
前記トランシェの単一ストリームをチャンクに断片化して、各チャンクに、前記複数のエントロピーエンコーダのトランシェがどのようにそれぞれのチャンクに分散してチャンクのシーケンスが得られたかの情報を添付する
シンボルシーケンスの符号化方法。
【請求項３９】
各々がそれぞれのビットストリームをシンボルに変換する複数のエントロピーデコーダを用いてシンボルシーケンスを復元する方法であって、
シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボルへ複数のパラメータを割り当て、
複数のエントロピーデコーダの選択された１つから復元される前記シンボルシーケンスの各シンボルを検索し、この選択は、それぞれのシンボルに対して定義付けられたパラメータに応じて行う
シンボルシーケンスの復元方法において、
各エントロピーデコーダは、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
前記複数のエントロピーエンコーダの前記トランシェが前記それぞれのチャンクに対してどのように分布されているかについての情報がそれぞれ添付されているチャンクのシーケンスから、前記トランシェの単一ストリームの再構成する
シンボルシーケンスの復元方法。
【請求項４０】
コンピュータ実行時に、請求項１５、２８、３６、３７、３８、または３９に記載の方法を実行するためのプログラムコードを有するコンピュータプログラムを格納しているコンピュータ読出し可能なデジタル記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、ビデオおよびオーディオの圧縮などの応用に使用されるエントロピー符号化に関する。
【背景技術】
【０００２】
本発明は、離散データのエントロピー符号化および復号化のための新しい方法および装置について記述する。一般に、エントロピー符号化は、最も汎用な形態のデータの可逆圧縮と考えることができる。可逆圧縮は、元のデータの表現に必要とされるよりも少ないビット数でも、情報を全く損失せずに、離散データを表すことを目的とする。離散データは、テキスト、図形、画像、ビデオ、オーディオ、音声、ファクシミリ、医用データ、気象データ、財務データの形態、または他の形態のデジタルデータの形態で提供される。
【０００３】
エントロピー符号化において、基礎となる離散データソースの特定のハイレベルな特徴は無視される場合が多い。これによって、任意のデータソースは、所与のｍ個のアルファベットの値を取り、かつ対応する（離散）確率分布｛ｐ１，．．．，ｐｍ｝によって特徴付けられるソースシンボルのシーケンスとして与えられると考えられる。これらの抽象的な設定において、シンボルあたりのビットの予想される符号語の長さに関するエントロピー符号化方法の下限は、エントロピーによって与えられる。
【数１】
2014534677.tif 000003
【０００４】
ハフマン符号や算術符号は、（ある意味で）エントロピー限界を近似化することが可能な実用的符号の周知の例である。固定した確率分布に対して、ハフマン符号を構築するのは比較的容易である。ハフマン符号の最も魅力的な特性は、その実装が、可変長符号（ＶＬＣ）テーブルを使用することによって、効率的に実現可能である点にある。しかしながら、時間と共に変化するソース統計、すなわち、変化するシンボル確率を扱う場合、ハフマン符号とそれに対応するＶＬＣテーブルの適応は、アルゴリズムの複雑さだけでなく、実装コストの両方に鑑みて、要求が多すぎるという問題があった。また、ｐｋ＞０．５の支配的なアルファベット値を有する場合、（たとえば、ランレングス符号化などの任意のアルファベットの拡張子を使用しない）対応するハフマン符号は、かなりの冗長度を生じてしまう。ハフマン符号のもう１つの欠点は、高次数の確率モデリングを扱う場合、ＶＬＣテーブルの多数の集合が必要とされるという事実によってもたらされる。これに対して、算術符号化は、実質的にはＶＬＣより複雑であるが、適応型および高次数の確率モデリングだけでなく、かなり偏った確率分布に対処する時に、より一貫性のある十分な操作ができるという利点を提供する。実際のところ、この特徴は、基本的には、算術符号化は、少なくとも概念的に、多かれ少なかれ直接的な方法で、確率推定の任意の所与の値をマッピングするために、結果として得られる符号語の部分にメカニズムを与えるという事実から得ることができる。このようなインターフェイスを備えることで、算術符号化は、一方で、確率モデリングと確率推定のタスクとを明確に分離させ、他方で、実際のエントロピー符号化、すなわちシンボルの符号語へのマッピング、を実現させる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
概念的ではあるが、明確にするために、以下の説明を二値アルファベットのケースに限定している。本発明の根本的な方法は、ｍ＞２であるｍ個のアルファベットの一般的なケースに適用される。二値アルファベットにおける値をもつシンボルの確率分布は単一パラメータｐ＝ｐＬＰＳで表され、いわゆる、確率推定ｐＬＰＳ≦０．５である確率の低いシンボル（ＬＰＳ）とｐＭＰＳ＝１−ｐＬＰＳである確率の高いシンボル（ＭＰＳ）の間で有用な分割が行われる。このように、一般のケースでは０＜ｐＬＰＳ≦０．５であり、実際のケースでは、確率推定は、多くの場合、最小確率値ｐｍｉｎによって下から境界付けされ、これにより、ｐｍｉｎ≦ｐＬＰＳになる。
【０００６】
一方では符号化の効率性、他方では符号化の煩雑性の間にうまく折合いを付けるためには、シンポルシーケンスを、部分的なビットストリームを介して、並列にエントロピー符号化するとよい。ここで、部分的なビットストリームは各々、シンボルシーケンスの個別の部分の符号化の責めを負うものであるとする。例えば、ＰＩＰＥ（ｐｒｏｂａｂｉｌｉｔｙ  ｉｎｔｅｒｖａｌ  ｐａｒｔｉｔｉｏｎｉｎｇ  ｅｎｔｒｏｐｙ）符号化の場合のように、シンボル統計または確率推定の観点から、シンボルシーケンスの個別の部分の符号化に最も適したものとする。しかし、この結果として生じる問題は、共通の単一ビットストリームが望まれている場合の、部分的なビットストリームをインターリーブする必要性である。
【課題を解決するための手段】
【０００７】
本発明の実施形態によるシンボルシーケンスを符号化するエンコーダは、シンボルシーケンスの以前のシンボル内に含まれる情報に基づいてシンボルシーケンスの各シンボルへ多数のパラメータを割り当てるように構成された割当部と、各々がそれぞれのエントロピーエンコーダへ送られたシンボルをそれぞれのビットストリームへ変換するように構成された複数のエントロピーエンコーダと、複数のエントロピーエンコーダの選択された１つへ各シンボルを送るように構成され、前記選択をそれぞれのシンボルへ割り当てられたパラメータの数に応じて行う選択部と、を含む。
【０００８】
発明の実施形態によるシンボルシーケンスを復元するデコーダは、各々がそれぞれのビットストリームをシンボルへ変換するように構成された複数のエントロピーデコーダと、シンボルシーケンスの以前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボルへ多数のパラメータを割り当てるように構成された割当部と、複数のエントロピーデコーダの選択された１つのエントロピーデコーダから復元されるシンボルシーケンスの各シンボルを検索するように構成され、この選択をそれぞれのシンボルに対して定義付けられたパラメータの数に応じて行う選択部と、を含む。
【０００９】
ひとつの見地によれば、インターリーブは次のように行われる。すなわち、各エントロピーコーダがＶＬＣ（可変長符号）並べ替えを行い、インターリーブが（擬似）固定サイズの切片（これを以下「トランシェ」という）単位で実行される。これにより、各エントロピー符号化パスに対して、復号化手順を並列に実行できる。また、少なくとも１つの符号語が符号化側で符号化中のいつでも得られ、復号化手続の並列化およびパイプライン化が容易になる。
【００１０】
他の見地によれば、インターリーブは次のように行われる。すなわち、各エントロピーコーダがＶＬＣ並べ替えを行い、インターリーブが（擬似）固定サイズのトランシェ単位で実行される。これにより、最大符号化遅延制約が遵守されなさそうなときはいつでも訪問頻度が低いエントロピー符号化パスをフラッシュする（洗い流す）ことによって、最大符号化遅延制約が遵守される。しかしながら、それぞれのエントロピー符号化パスのフラッシュは、完全に行われるのではなく、最大符号化遅延制約を遵守するために費やされる追加ビットレートを最小に保つように、１つの追加トランシェを形成するために必要な量だけフラッシュされる。
【００１１】
他の見地によれば、各エントロピーコーダがＶＬＣ並べ替えを行い、インターリーブが（擬似）固定サイズのトランシェ単位で実行されるが、トランシェのシーケンスは、トランシェ分配に関する情報を有するいわゆるチャンクに断片化（フラグメンタイズ）されたバージョンで転送され、随意的遅延制約遵守スキームが適用されても、デコーダ並列化手順が、さらなる遅延を引き起こすことなく、一段と容易になる。
【００１２】
任意のソースシンボルのシーケンスが２以上の部分的ビットストリームへマッピングされるエントロピー符号化アルゴリズムと、オリジナルのソースシンボルが２以上の部分的ビットストリームから復号化される復号化アルゴリズムとの、実施形態が記載される。エンコーダ側では、ソースシンボルが最初に二値化され（これらのシンボルが既に二値シンボルを表しているものではない場合）、二値化の各ビンがパラメータの集合に関連付けられる。次に、関連付けられたパラメータがインデックスの小集合にマッピングされ、特定のインデックスに関連付けられたすべてのビンが特定の二値エントロピーエンコーダによって符号化され、対応する符号語または複数の符号語が特定の部分的なビットストリームに書き込まれる。デコーダ側では、ソースシンボルが、ソースシンボルに対するリクエストにより復号化される。エンコーダに対してと同じ二値化方式を使用して、ソースシンボルに対するリクエストをビンへのリクエストに変換し、ビンへの各リクエストが、エンコーダ側における対応するビンと同じパラメータの集合に関連付けられる。関連付けられたパラメータがここでまた、インデックスの小集合にマッピングされる。このマッピングは、エンコーダ側と同じマッピングである。特定のインデックスに関連付けられているすべてのビンリクエストが、対応する部分的ビットストリームから符号語または複数の符号語を読み出す特定の二値エントロピーデコーダによって、復号化される。エンコーダとデコーダは、異なる二値エントロピーエンコーダとデコーダが異なる符号化アルゴリズム（すなわち、ビンシーケンスと符号語の間の異なるマッピング）を使用するように構成されている。
【００１３】
本発明の好ましい実施形態において、関連付けられたパラメータの集合は、特定のビン（または同等の測度の集合）に対する２つのビン値のうちの１つの確率に対する測度を表す。確率に対する測度は、たとえば、Ｎ個の値の集合の値によって表すことができる確率の状態を表すことができる。確率の推定は、ビンの実際の符号化からデカップルされる。次に、確率測度は、ビンの符号化と復号化が特定の二値エントロピーエンコーダとデコーダに割り当てられる確率のインデックスへマッピングされる。確率測度の確率インデックスへのマッピング（これにより確率測度の群へクラスタリングする）はまた、たとえば、既に転送されているシンボルに応じて、経時的に変化する。たとえば、作成された部分的なビットストリームが同様のビットレートを有していることを確実にするために、一定の確率測度または確率インデックスによって符号化されたビンの数に割当てを適応させることができる。本発明の好ましい実施形態において、二値エントロピーのエンコーダとデコーダの数は、確率測度に対して可能な値の数より少ない。関連付けられた確率の正確なを可能にする多数の可能な確率測度は、各インデックスが特定の二値エントロピーエンコーダとデコーダに関連付けられる少数の確率のインデックスへマッピングされる。少数の二値エントロピーエンコーダとデコーダは、部分的ビットストリームを送信するためのオーバーヘッドを小さく保つことができるとともに、符号化および復号化システムの同期オーバーヘッドを小さく保つことができるという利点をもたらす。ビンを特定の二値エントロピーエンコーダとデコーダに割り当てるための基礎として確率測度を使用する場合、二値エンコーダとデコーダを確率測度の群の代表値に対して特に最適化することができ、これによって（最もよく知られているエントロピー符号化方式と同様の）高い符号化効率が可能になる。さらに、ビンシーケンスの符号語への単純なマッピングおよびその逆のマッピングから成る単純な符号化と復号化のアルゴリズムを確率測度の群の代表値に対して設計することができる。これにより、符号化と復号化システムの複雑さを軽減しながらも、高い符号化効率を得ることができる。この点において、ビン確率を正確に推定するためには確率測度の高粒度が必要とされることに注目されたい。すなわち、いかなる不正確性も符号化効率にマイナスの影響を与える。しかし、ビンを符号化するためには、相対的に少数（確率推定に対して可能な確率測度値の数よりもかなり小さい数）の確率群で十分である。これは、特定の確率とは異なるがこれに近い確率に対して設計されたエントロピー符号化アルゴリズムを使用して特定の関連付けられた確率測度でビンを符号化することによって得られるレートの上昇はきわめて小さいためである。少数の二値エントロピーエンコーダとデコーダの使用により、上述した利点が得られる。本発明のさらなる実施形態において、ビンに関連付けられるパラメータの集合は、２つのビンの値の１つと１以上のさらなるパラメータの確率に対する測度から成る。
【００１４】
本発明の独立クレームの主要事項は、これまで概述した事項、および以下のさらなる具体的な利点を達成する。
【００１５】
以下に、本発明の好ましい実施形態を図面を参照してより詳しく説明し、いくつかの設計上の側面に関して利点を提供する本発明の種々の好ましい実施形態を取り上げる。
【図面の簡単な説明】
【００１６】
【図１】実施形態によるエンコーダを示すブロック図である。
【図２】実施形態による、図１のエンコーダによって生成されたビットストリームを復号化するために適切なデコーダを示すブロック図である。
【図３】比較例による、多重化された部分的ビットストリームを使用したデータパケットを概略的に示す図である。
【図４】さらなる比較例による、固定サイズのセグメントを使用した代替セグメンテーションを有するデータパケットを概略的に示す図である。
【図５】部分的なビットストリームインターリーブを使用する比較例によるエンコーダを示すブロック図である。
【図６】比較例による、図５のエンコーダ側での符号語バッファの状態の例を概略的に示す図である。
【図７】部分的ビットストリームインターリーブを使用した比較例によるデコーダを示すブロック図である。
【図８】符号語の単集合を用いた符号語インターリーブを使用した比較例によるデコーダを示すブロック図である。
【図９】固定長のビットシーケンスのインターリーブを使用した実施形態によるエンコーダを示すブロック図である。
【図１０】実施形態による、図９のエンコーダ側でのグローバルビットバッファの状態の例を概略的に示す図である。
【図１１】固定長のビットシーケンスのインターリーブを使用した実施形態によるデコーダを示すブロック図である。
【図１２】均一確率分布が（０、０．５］であることを想定して、Ｋ＝４の区間への最適確率区間離散化を示すグラフである。
【図１３】ｐ＝０．３８のＬＰＢの確率に対する二値事象のツリーとハフマンアルゴリズムによって取得された関連付けられた可変長符号とを概略的に示す図である。
【図１４】テーブルエントリの最大数Ｌｍが与えられた場合、最適符号Ｃに対する相対的なビットレートの上昇率ρ（ｐ、Ｃ）が集合されるグラフである。
【図１５】Ｋ＝１２の区間（ｃｐ．セクション３）への理論的最適確率区間パーティションと最大数がＬｍ＝６５のテーブルエントリである場合のＶＮＢ２ＶＬＣ符号を有する実際の設計に対するレート上昇を示すグラフである。
【図１６】３項選択ツリーを完全な二値選択ツリーへ変換する例を概略的に示す図である。
【図１７】実施形態によるエンコーダ（左側部分）とデコーダ（右側部分）とを含むシステムを示すブロック図である。
【図１８】図１〜図１７の実施形態のいずれかによるエントロピー符号化を用いた実施形態による符号化変換係数の基本原理を示す図である。
【図１９】有意性マッピング（マークされたシンボルは転送されない）の符号化の２つの例を示す図である。
【図２０】変換係数（ＡＢＳ）の大きさに対する二値化を示す図である。
【図２１】Ｈ．２６４／ＡＶＣの規格に対するブロックタイプとそれらの分類を示す図である。
【図２２】１ビットのシンボルＣＢＰ４に対するコンテクストモデリングを示す図である。
【図２３】有意変換係数の大きさを符号化するためのコンテクストモデリングを例示す図である。
【図２４】適用例によるエントロピーエンコーダの配列を示すブロック図である。
【図２５】図２４からの初期化部を詳細に示す図である。
【図２６】最小確率シンボル（ＬＰＳ）に対する確率情報と対応する最大確率シンボル（ＭＰＳ）の値を初期化確率情報として含む初期化確率情報テーブルを基準とする基準インデックスを算出するための一連のステップを示す図である。
【図２７】適用例によるエントロピーデコーダの配列を概略的に示すブロック図である。
【図２８】符号化環境を示すハイレベルなブロック図である。
【図２９】図２８の符号化環境のエントロピー符号化部分を示すブロック図である。
【図３０】画像またはビデオフレームのマクロブロック対への空間的分割を概略的に示す図である。
【図３１Ａ】本発明の実施形態によるフレームモードを概略的に示す図である。
【図３１Ｂ】本発明の実施形態によるフィールドモードを概略的に示す図である。
【図３２】本発明の実施形態による、近接するシンタックス要素に基づくコンテクスト割当てによるシンタックス要素の符号化を示す流れ図である。
【図３３】本発明の実施形態による、コンテクストモデルが割り当てられているコンテクストモデルに基づくシンタックス要素の二値エントロピー符号化を示す流れ図である。
【図３４】本発明の実施形態による、マクロブロックのアドレッシング方式を概略的に示す図である。
【図３５】サンプルが現在のマクロブロックの上部または左側の境界線を越えて配置されており、現在のマクロブロックは符号化されたフレームまたはフィールドであり、現在のマクロブロックは現在のマクロブロック対のトップまたはボトムのマクロブロックであり、したがって、マクロブロックｍｂＡｄｄｒＡが符号化されたフレームまたはフィールドであり、このサンプルが置かれるラインは奇数または偶数のライン数ｙＮであることによって、現在のマクロブロックの左上のサンプルに対する座標ｘＮとｙＮと、さらに、そのサンプルに対するマクロブロックｍｂＡｄｄｒＮにおけるサンプルに対するｙ座標ｙＭと、を有するサンプルを含むマクロブロックを示すマクロブロックアドレスｍｂＡｄｄｒＮをどのように取得するかを示す表である。
【図３６】マクロブロックパーティション、サブマクロブロックパーティション、マクロブロックパーティションスキャン、およびサブマクロブロックパーティションスキャンを概略的に示す図である。
【図３７】本発明を適用可能な復号化環境を示すハイレベルなブロック図である。
【図３８】符号化されたビットストリームから図３２および図３３に示されているように符号化されたシンタックス要素の復号化を示す流れ図である。
【図３９】エントロピー復号化プロセスと図３の復号化プロセスを示す流れ図である。
【図４０】マクロブロックに対して発生するＨ．２６４／ＡＶＣビデオエンコーダに対する基本的な符号化構造を示す図である。
【図４１】現在のシンタックス要素Ｃの左および上にある２つの近接シンタックス要素ＡとＢからなるコンテクストテンプレートを示す図である。
【図４２】スライスされた画像の分割を示す図である。
【図４３】左に向かって「サンプルＡ＿Ｑを使用してブロックのサンプルａ〜ｐに対して行われるイントラ＿４×４の予測」を示し、右に向かって「イントラ＿４×４の予測に対する予測方向」を示す図である。
【図４４】図４６の二値化方式に関連する二値化符号化ツリーの一部を示す図である。
【図４５】絶対データ値の二値化を概略的に示す図である。
【図４６】絶対値が二値化されるビンストリングを示す表である。
【図４７】絶対値が二値化されるビンストリングを示す表である。
【図４８】二値化を実行するための擬似Ｃ符号を示す図である。
【図４９】エントロピー符号化されたビットストリームのデータ値への復号化を概略的に示す図である。
【図５０】データ値の二値化からのデータ値の回復を概略的に示す図である。
【図５１】図５０のプロセスの接尾語部分に関する抽出を概略的に示す図である。
【図５２】シンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの符号化を示す流れ図である。
【図５３】ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇｓへコンテクストモデルを割り当てるプロセスを示す流れ図である。
【図５４】図５２の符号化方式によってもたらされる符号化されたビットストリームからのシンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの復号化を示す流れ図である。
【図５５】ビデオフレームまたは画像の符号化を概略的に示す流れ図である。
【図５６】フィールド符号化されたマクロブロックとフレーム符号化されたマクロブロックに対して使用される異なるスキャンパターンを示す図である。
【図５７】例示的に選択された変換係数レベルから得られる有意マップを示す表である。
【図５８】本発明の実施形態によるシンタックス要素ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇの符号化を示す流れ図である。
【図５９】デコーダ側での解析プロセスを示す擬似Ｃ符号を示す図である。
【図６０】図５８の符号化方式によって符号化されたビットストリームからのシンタックスｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇの復号化を示す流れ図である。
【図６１】固定長ビットシーケンスのインターリーブを使用する実施形態に係るエンコーダを示すブロック図である。
【図６２】固定長ビットシーケンスのインターリーブを使用する実施形態に係るデコーダを示すブロック図である。
【図６３】図６１、図６２の実施形態に対する一定の多重化例を使用して４つの部分的ビットストリームから生じるチャンクの多重化の例を概略的に示す図である。
【図６４】図９のエンコーダのバッファのバッファ状態のシーケンスを概略的に示す図である。
【図６５】図９のエンコーダのバッファのバッファ状態のシーケンスを概略的に示す図である。
【図６６】図９のエンコーダのバッファのバッファ状態のシーケンスを概略的に示す図である。
【図６７】図９のエンコーダのバッファのバッファ状態のシーケンスを概略的に示す図である。
【図６８】図９のエンコーダのバッファのバッファ状態のシーケンスを概略的に示す図である。
【発明を実施するための形態】
【００１７】
図面の説明に関して、これらの図中のいくつかにおいて発生する要素は、各図面において同一の参照番号によって示され、機能性に関する限り、これらの要素の反復説明は、不要な反復を避けるために省略する。とはいえ、そうでない場合の記述が特にされていない限り、１つの図に関して提供される機能性および説明は、他の図にも当てはめることができる。
【００１８】
本発明の実施形態に係るエンコーダを図１に示す。このエンコーダは、ソースシンボル１のストリームを２つ以上の部分的ビットストリーム１２の集合へ可逆的に変換する。本発明の好ましい実施形態において、各ソースシンボル１は、１以上のカテゴリの集合のうちの１つのカテゴリに関連付けられる。一例として、これらのカテゴリは、ソースシンボルのタイプを指定することができる。ハイブリッドビデオ符号化の文脈において、個別のカテゴリは、マクロブロック符号化モード、ブロック符号化モード、基準画像インデックス、動きベクトル差、分割フラグ、符号化されたブロックフラグ、量子化パラメータ、変換係数レベルなどに関連付けられる。オーディオ、音声、テキスト、文書、または汎用データ符号化などの他の応用分野において、ソースシンボルの様々な分類が可能である。
【００１９】
一般に、各ソースシンボルは、有限または可算無限集合の値を取ることができ、可能なソースシンボル値の集合は、異なるソースシンボルカテゴリごとに異ならせることができる。符号化および復号化アルゴリズムの複雑さを低減するとともに、異なるソースシンボルとソースシンボルカテゴリに対する一般の符号化および復号化の設計を可能にするため、ソースシンボル１は、二分決定の順序付き集合に変換され、これらの二分決定は、単純な二値符号化アルゴリズムによって処理される。よって、バイナライザ２は、各ソースシンボル１の値を、ビン３のシーケンス（またはストリング）へ全単射マッピングする。ビン３のシーケンスは、順序付き二分決定の集合を表す。各ビン３すなわち二分決定は、たとえば、０と１の組合せなどの２つの値の組合せから、１つの値を取ることができる。二値化方式は、異なるソースシンボルカテゴリ別に異なっていてよい。特定のソースシンボルカテゴリに対する二値化方式は、その特定のカテゴリに対する可能なソースシンボル値および／またはソースシンボルの他の特性の集合に依存することができる。表１は、可算無限集合のための３つの例示的な二値化方式を示す。これらの可算無限集合の二値化方式は、シンボル値の有限集合に適用することもできる。シンボル値の大きな有限集合の場合は特に、（未使用のビンシーケンスから生じる）非効率性を無視することができるが、このような二値化方式の普遍性は、複雑さとメモリ要件の面で利点を提供する。シンボル値の小さな有限集合の場合、可能なシンボル値の数に対して二値化方式を適応することが（符号化効率の点から）好ましいことが多い。表２は、８つの値から成る有限集合に対する３つの例示的な二値化方式を示している。有限集合に対する二値化方式は、ビンシーケンスの有限集合が冗長度のない符号を表す（かつ潜在的にビンシーケンスを並び替える）ようにビンシーケンスの一部を変更することによって、可算無限集合に対する普遍的二値化方式から得ることができる。たとえば、表２の切り捨てユニタリ二値化方式は、普遍的ユニタリ二値化のソースシンボル７に対するビンシーケンスを変更することによって作られた（表１参照）。表２の次数０の、切り捨てられかつ並び替えられた指数ゴロム二値化は、普遍的指数ゴロム次数０の二値化のソースシンボル７に対するビンシーケンスを変更することによって（表１参照）、およびビンシーケンスを並び替えることによって（シンボル７の切り捨てられたビンシーケンスはシンボル１に割り当てられた）作られた。シンボルの有限集合の場合、表２の最後の列に例示されるように、非系統的／非普遍的な二値化方式を使用することも可能である。
【００２０】
【表１】
2014534677.tif 000004
【００２１】
【表２】
2014534677.tif 000005
【００２２】
バイナライザ２によって作成されたビンシーケンスの各ビン３は、パラメータ割当部４に順に送られる。パラメータ割当部４は、各ビン３に１以上のパラメータの集合を割り当て、パラメータの関連付けられた集合を有するビン５を出力する。パラメータの集合は、エンコーダとデコーダにおいて全く同じ方法で判定される。パラメータの集合は、以下のパラメータの１以上から成る：
・現在のビンに対する２つの可能なビン値の１つに対する確率の推定に対する測度、
・現在のビンに対する確率の低いまたは確率の高いビン値に対する確率の推定に対する測度、
・２つの可能なビン値のうちどちらが現在のビンに対する確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子、
・関連付けられたソースシンボルのカテゴリ、
・関連付けられたソースシンボルの重要度の測度、
・関連付けられたシンボルのロケーションの測度（例えば、時間的、空間的、または量的なデータ集合における）、
・ビンまたは関連付けられたソースシンボルに対して伝送路符号保護を指定する識別子、
ビンまたは関連付けられたソースシンボルに対して暗号化方式を指定する識別子、
・関連付けられたシンボルに対する等級を指定する識別子、
・関連付けられたソースシンボルに対するビンシーケンス内のビン数。
【００２３】
本発明の好ましい実施形態において、パラメータ割当部４は、各ビン３、５を、現在のビンに対する２つの可能なビン値のうちの１つに対する確率の推定のための測度に関連付ける。本発明のさらなる好ましい実施形態において、パラメータ割当部４は、各ビン３、５を、現在のビンに対して確率の低いまたは確率の高いビン値に対する確率の推定に対する測度と、２つの可能なビン値のうちどちらが現在のビンに対する確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子と、に関連付ける。留意すべきことは、確率の低いまたは確率の高いビン値に対する確率と、２つの可能なビン値のうちどちらが確率の低いまたは確率の高いビン値であるかを指定する識別子とは、２つの可能なビン値のうちの１つの確率に対する等しいことである。
【００２４】
本発明のさらなる好ましい実施形態において、パラメータ割当部４は、各ビン３、５を、現在のビンに対する２つの可能なビンのうちの１つに対する確率の推定のための測度と、１以上のさらなるパラメータ（上記に挙げたパラメータの１以上であり得る）と、に関連付ける。本発明のさらなる好ましい実施形態において、パラメータ割当部４は、各ビン３、５を、現在のビンに対する確率の低いまたは確率の高いビン値の確率の推定に対する測度と、２つの可能なビン値のうちどちらが現在のビンに対して確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子と、１以上のパラメータ（上記に挙げたパラメータのうちの１以上であり得る）と、に関連付ける。
【００２５】
本発明の好ましい実施形態において、パラメータ割当部４は、既に符号化されたシンボルの１以上の集合に基づいて、上述した確率測度（現在のビンに対する２つの可能なビン値のうちの１つに対する確率の推定に対する測度、現在のビンに対して確率の低いまたは確率の高いビン値の確率の推定に対する測度、および２つの可能なビン値のうちどちらが現在のビンに対する確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子）の１以上を算定する。確率測度を算定するために使用される符号化されたシンボルは、同じシンボルカテゴリの１以上の既に符号化されたシンボル、（現在のソースシンボルに関連付けられたデータ集合に関して）隣り合って配設されている空間的および／または時間的なロケーションの（たとえばサンプルのブロックや群など）データ集合に対応する同じシンボルカテゴリの１以上の既に符号化されたシンボル、または、（現在のソースシンボルに関連付けられたデータ集合に関して）同じおよび／または隣り合って配設されている空間的および／または時間的なロケーションのデータ集合に対応する異なるシンボルカテゴリの１以上の既に符号化されたシンボルを含むことができる。
【００２６】
パラメータ割当部４の出力であるパラメータの関連付けられた集合を有する各ビン５は、ビンバッファ選択部６に送られる。ビンバッファ選択部６は、入力されたビン値とこれに関連付けられたパラメータ５に基づいて、入力されたビン５の値を必要であれば変更し、この必要に応じて変更された値を有する出力ビン７を２つ以上のビンバッファ８のうちの１つに送る。出力ビン７が送られるビンバッファ８は、入力ビン５の値および／または関連付けられたパラメータ５の値に基づいて、決定される。
【００２７】
本発明の好ましい実施形態において、ビンバッファ選択部６は、ビンの値を変更しない。すなわち、出力ビン７は、入力ビン５と常に同じ値を有する。
【００２８】
本発明のさらなる好ましい実施形態において、ビンバッファ選択部６は、入力ビン値５と、現在のビンに対する２つの可能なビン値のいずれか１つに対する確率の推定に対する関連付けられた測度と、に基づいて、出力ビン値７を求める。本発明の好ましい実施形態において、出力ビン値７は、現在のビンに対する２つの可能なビン値のいずれか１つに対する確率の測度が特定のしきい値未満（またはしきい値以下）の場合、入力ビン値５と同等に設定され、現在のビンに対する２つの可能なビン値のいずれか１つに対する確率の測度が特定のしきい値以上の（またはしきい値より大きい）場合、出力ビン値７は変更される（すなわち入力ビン値の逆に設定される）。本発明のさらなる好ましい実施形態において、出力ビン値７は、現在のビンに対する２つの可能なビン値のいずれか１つに対する確率の特定のしきい値より大きい（またはしきい値以上の）場合、入力ビン値５と等しい値を設定され、現在のビンに対する２つの可能なビン値のいずれか１つに対する確率の測度が特定のしきい値以下（またはしきい値未満）の場合、出力ビン値７は変更される（すなわち入力ビン値の逆に設定される）。本発明の好ましい実施形態において、しきい値は、両方の可能なビン値の推定される確率に対して、値０．５に一致する。
【００２９】
本発明のさらなる好ましい実施形態において、ビンバッファ選択部６は、入力ビン値５と、２つの可能なビン値のうちどちらが現在のビンに対する確率の低いまたは確率の高いビン値を表すかの推定を指定する関連付けられた識別子と、に基づいて、出力ビン値７を求める。本発明の好ましい実施形態において、識別子が２つの可能なビン値の第１のビン値が現在のビンに対する確率の低い（または確率の高い）ビン値を表すことを指定する場合、出力ビン値７は入力ビン値５と等しい値を設定され、識別子が２つの可能なビン値の第２のビン値が現在のビンに対する確率の低い（または確率の高い）ビン値を表すことを指定する場合、出力ビン値７は変更される（すなわち、入力ビン値の逆に設定される）。
【００３０】
本発明の好ましい実施形態において、ビンバッファ選択部６は、現在のビンに対する２つの可能なビン値のいずれか１つに対する確率の推定に対する関連付けられた測度に基づいて、出力ビン７が送られるビンバッファ８を決定する。本発明の好ましい実施形態において、２つの可能なビン値のいずれか１つに対する確率の推定に対する測度としての可能な値の集合は有限であり、ビンバッファ選択部６は、２つの可能なビン値の１つに対する確率の推定に対する各可能な値に１つだけのビンバッファ８を関連付けるテーブルを含み、２つの可能なビン値の１つに対する確率の推定に対する測度に対して異なる値を同じビンバッファ８に関連付けることができる。本発明のさらなる好ましい実施形態において、２つの可能なビン値の１つに対する確率の推定に対する測度として可能な値の範囲は多数の区間（インターバル）に分割され、ビンバッファ選択部６は２つの可能なビン値の１つに対する確率の推定に対する現在の測度に対する区間インデックスを決定し、また、ビンバッファ選択部６は１つだけのビンバッファ８をこの区間インデックスに対する各可能な値に関連付けるテーブルを含み、区間インデックスに対して異なる値を同じビンバッファ８に関連付けることができる。本発明の好ましい実施形態において、２つの可能なビン値の１つに対する確率の推定に対する逆の測度を有する入力ビン５（逆測度は確率推定Ｐおよび１−Ｐを表す測度である）は同じビンバッファ８へ供給される。本発明のさらなる好ましい実施形態において、現在のビンに対する２つの可能なビン値の１つに対する確率の推定に対する測度を特定のビンバッファに関連付けることは、例えば、作成された部分的ビットストリームが同様のビットレートを有することを確実にするために、経時的に適応される。
【００３１】
本発明のさらなる好ましい実施形態において、ビンバッファ選択部６は、現在のビンに対して確率の低いまたは確率の高いビン値の確率の推定に対する関連付けられた測度に基づいて出力ビン７が送られるビンバッファ８を決定する。本発明の好ましい実施形態において、確率の低いまたは確率の高いビン値に対する確率の推定に対する測度として可能な値の集合は有限であり、ビンバッファ選択部６は、１つだけのビンバッファ８を確率の低いまたは確率の高いビン値に対する確率の推定の各可能な値に関連付けるテーブルを含み、確率の低いまたは確率の高いビン値に対する確率の推定に対する測度に対して異なる値を同じビンバッファ８に関連付けることができる。本発明のさらなる好ましい実施形態において、確率の低いまたは確率の高いビン値に対する確率の推定に対する測度として可能な値の範囲は多数の区間に分割され、ビンバッファ選択部６は確率の低いまたは確率の高いビン値に対する確率の推定に対する現在の測度に対する区間インデックスを決定し、また、ビンバッファ選択部６は１つだけのビンバッファ８をこの区間インデックスに対する各可能な値に関連付けるテーブルを含み、このテーブルにおいて、区間インデックスに対して異なる値を同じビンバッファ８に関連付けることができる。本発明のさらなる好ましい実施形態において、現在のビンに対する確率の低いまたは確率の高いビン値に対する確率の推定に対する測度を特定のビンバッファに関連付けることは、たとえば、作成された部分的ビットストリームが同様のビットレートを有することを確実にするために、経時的に適応される。
【００３２】
２つ以上のビンバッファ８の、それぞれは１つだけのビンエンコーダ１０に連結され、各ビンエンコーダは、１つのビンバッファ８だけに連結されている。各ビンエンコーダ１０は、関連付けられているビンバッファ８からビンを読み出し、ビンシーケンス９をビットのシーケンスを表す符号語１１に変換する。ビンバッファ８は、先入れ先出しバッファを表し、後から（順に）ビンバッファ８に送られるビンは、ビンバッファ８に先に（順に）送られるビンより前に符号化されることはない。特定のビンエンコーダ１０の出力である符号語１１は、特定の部分的ビットストリーム１２に書き込まれる。全体の符号化アルゴリズムは、ソースシンボル１を２つ以上の部分的なビットストリーム１２へ変換し、この場合、部分的ビットストリームの数は、ビンバッファとビンエンコーダの数と等しい。本発明の好ましい実施形態において、ビンエンコーダ１０は、ビン９の可変数をビットの可変数の符号語１１に変換する。上記および下記に概説される本発明の実施形態の１つの利点は、ビンの符号化は（たとえば、確率測度の異なる群に対して）並行して行うことができる点にあり、これによっていくつかのインプリメンテーションに対する処理時間が短縮される。
【００３３】
本発明の実施形態の他の利点は、ビンエンコーダ１０によって行われるビン符号化がパラメータ５の異なる集合に対して具体的に設計できる点にある。特に、ビン符号化と符号化は、推定確率の異なる群ごとに（符号化効率および／または複雑さに関して）最適化することができる。一方で、これは、同様の符号化効率を有する最先端のエントロピー符号化アルゴリズムに対して符号化／復号化の複雑さの低減を可能にする。他方では、同様の符号化／復号化の複雑性を有する最先端のエントロピー符号化アルゴリズムに対して符号化効率の向上を可能にする。本発明の好ましい実施形態において、ビンエンコーダ１０は、現在のビンに対する２つの可能なビン値５の１つに対する確率の推定に対する測度の異なる群ごとに異なる符号化アルゴリズムを実施する（すなわち、ビンシーケンスを符号語にマッピングする）。本発明のさらなる好ましい実施形態において、ビンエンコーダ１０は、現在のビンに対する確率の低いまたは確率の高いビン値に対する確率の推定に対する測度の異なる群ごとに、異なる符号化アルゴリズムを実施する。さらなる好ましい実施形態において、ビンエンコーダ１０は、異なる伝送路保護符号ごとに異なる符号化アルゴリズムを実施する。さらなる好ましい実施形態において、ビンエンコーダ１０は、異なる暗号化方式ごとに異なる符号化アルゴリズムを実施する。さらなる好ましい実施形態において、ビンエンコーダ１０は、伝送路保護符号と、現在のビンに対する２つの可能なビン値５のいずれか１つに対する確率の推定に対する測度の群との様々な組合せに対して、異なる符号化アルゴリズムを実施する。さらなる好ましい実施形態において、ビンエンコーダ１０は、伝送路保護符号と、現在のビンに対して確率の低いまたは確率の高いビン値５の確率の推定に対する測度の群と、の様々な組合せに対して、異なる符号化アルゴリズムを実施する。さらなる好ましい実施形態において、ビンエンコーダ１０は、暗号化方式と、現在のビンに対する２つの可能なビン値５のいずれか１つに対する確率の推定に対する測度の群と、の様々な組合せに対して、異なる符号化アルゴリズムを実施する。さらなる好ましい実施形態において、ビンエンコーダ１０は、暗号化方式と、現在のビンに対する確率の低いまたは確率の高いビン値５に対する確率の推定に対する測度の群と、の様々な組合せに対して、異なる符号化アルゴリズムを実施する。
【００３４】
本発明の好ましい実施形態において、複数のビンエンコーダ１０、またはビンエンコーダの１つ以上は、二値算術符号化エンジンを表している。本発明のさらなる好ましい実施形態において、ビンエンコーダの１つ以上が二値算術符号化エンジンを表し、ここで、所与のビンバッファの代表的ＬＰＳ／ＬＰＢ確率ｐＬＰＳから対応する符号区間幅ＲＬＰＳへのマッピング、すなわち、例えば、符号区間の下限を識別する現在の区間幅Ｒと現在の区間オフセットＬとによって画定される二値算術符号化エンジンの内部状態の区間分割は、テーブルルックアップを使用することによって実現される。さらなる好ましい実施形態において、所与のビンバッファに関連付けられる各テーブルベースの二値算術符号化エンジンに対して、Ｋ個の代表的区間幅の値｛Ｑ０，．．．，ＱＫ−１｝がＲＬＰＳを表すために使用され、その際、Ｋの選択および代表的区間幅の値｛Ｑ０，．．．，ＱＫ−１｝はビンバッファに依存している。Ｋ＞１を選択した場合、ビンの算術符号化は、現在の区間幅Ｒを｛０，．．．，Ｋ−１｝の値を有する量子化インデックスｑにマッピングし、ｑをインデックスとして使用することによってルックアップテーブルから対応する部分的区間幅の値のＱｑにアクセスすることによって区間分割を実行するサブステップを含む。Ｋ＝１を選択する場合、すなわち、代表的区間幅の値Ｑ０だけが付与されている場合、この値Ｑ０は、単一の繰込みサイクル内の対応するビンバッファに入る複数のＭＰＳ／ＭＰＢ値の復号化を可能にするために２の指数として選択される。各算術符号化エンジンの得られる符号語は個別に転送され、パケット化され、または格納されるか、あるいは、以下に説明されるように、転送または格納するためにインターリーブされる。
【００３５】
すなわち、二値算術符号化エンジン１０は、そのビンバッファ８内の複数のビンを符号化する際に、以下のステップを実行する。
１．ビンバッファからｖａｌＬＰＳ、ビンの受信：
（想起：ここで考慮されるそれぞれの二値算術符号化エンジン１０は、「ビン」を受け取るように選択されている。その理由は、ｐ＿ｓｔａｔｅ［ｂｉｎ］などの確率分布推定が、二値算術符号化エンジン１０に関連付けられた（言い換えれば、「ビン」は、それぞれの二値算術符号化エンジン１０に関連付けられていた）からである。）
２．Ｒの量子化：
ｑ＿ｉｎｄｅｘ＝Ｑｔａｂ［Ｒ＞＞ｑ］  （または他の形態の量子化）
３．ＲＬＰＳおよびＲの決定：
ＲＬＰＳ＝Ｒｔａｂ［ｑ＿ｉｎｄｅｘ］（ｐ＿ｓｔａｔｅは、考慮されている二値算術符号化エンジン１０に対して固定されており、すなわち、ｐ＿ｓｔａｔｅ［ｅｎｃｏｄｅｒ］であるので、ここでは、ｐ＿ｓｔａｔｅについて述べていない。そして、Ｒｔａｂはｐ［ｐ＿ｓｔａｔｅ［ｅｎｃｏｄｅｒ］］・Ｑ［ｑ＿ｉｎｄｅｘ］に対して予備計算された値を格納している。）
Ｒ＝Ｒ−ＲＬＰＳ［すなわち、Ｒは「ビン」がＭＰＳであるかのように予め事前更新される。］
４．新しい部分的区間の計算：
ｉｆ（ｂｉｎ＝１−ｖａｌＭＰＳ）  ｔｈｅｎ  
Ｌ←Ｌ＋Ｒ
Ｒ←ＲＬＰＳ
５．ＬおよびＲの繰り込み、ビット書き込み、
ここで、
ｑ＿ｉｎｄｅｘは、Ｑｔａｂから読み出された量子化値のインデックスを記述し、
ｐ＿ｓｔａｔｅは、（二値算術符号化エンジン１０に対して固定された）現在の状態を記述し、
ＲＬＰＳは、ＬＰＳに対応する区間幅を記述し、
ｖａｌＭＰＳは、ＭＰＳに対応するビットの値を記述する。
【００３６】
したがって、二値算術復号化エンジン２２は、ビン出力をビンバッファ２０へ復号化する際、以下のステップを実行する：
１．ビンに対するリクエストの受信：
（（想起：ここで考慮されるそれぞれの二値算術復号化エンジン２２は、「ビン」を復号化するように選択されている。その理由は、ｐ＿ｓｔａｔｅ［ｂｉｎ］などの確率分布推定が、二値算術復号化エンジン２２に関連付けられた（すなわち、「ビン」は、それぞれの二値算術復号化エンジン２２に関連付けられていた）からである。）
２．Ｒの量子化：
ｑ＿ｉｎｄｅｘ＝Ｑｔａｂ［Ｒ＞＞ｑ］  （または他の形態の量子化）
３．ＲＬＰＳとＲの決定：
ＲＬＰＳ＝Ｒｔａｂ［ｑ＿ｉｎｄｅｘ］（ｐ＿ｓｔａｔｅは、考慮されている二値算術復号化エンジン２２に対して固定されており、すなわち、ｐ＿ｓｔａｔｅ［ｅｎｃｏｄｅｒ］であるので、ここでは、ｐ＿ｓｔａｔｅについて述べていない。そして、Ｒｔａｂはｐ［ｐ＿ｓｔａｔｅ［ｅｎｃｏｄｅｒ］］・Ｑ［ｑ＿ｉｎｄｅｘ］に対して予備計算された値を格納している。）
Ｒ＝Ｒ−ＲＬＰＳ［すなわち、Ｒは「ビン」がＭＰＳであるかのように予め事前更新される。］
４．部分的区間の位置に応じたビンの決定：
ｉｆ（Ｖ≧Ｒ）  ｔｈｅｎ  
ｂｉｎ←１−ｖａｌＭＰＳ（ビンはＬＰＳとして符号化される。ビンバッファ選択肢１８はこのビン情報とｖａｌＭＰＳを使用して実際のビン値を取得する。）
Ｖ←Ｖ−Ｒ
Ｒ←ＲＬＰＳ
ｅｌｓｅ
ｂｉｎ←ｖａｌＭＰＳ（ビンはＭＰＳとして符号化される。ビンバッファ選択子１８はこのビン情報とｖａｌＭＰＳを使用して実際のビン値を取得する。）
５．Ｒの繰り込み、１ビット読み出し、Ｖの更新、
ここで、
ｑ＿ｉｎｄｅｘは、Ｑｔａｂから読み出された量子化値のインデックスを記述し、
ｐ＿ｓｔａｔｅは、（二値算術復号化エンジン２２に対して固定された）現在の状態を記述し、
ＲＬＰＳは、ＬＰＳに対応する区間幅を記述し、
ｖａｌＭＰＳは、ＭＰＳに対応するビットの値を記述し、
Ｖは、現在の部分的区間の内部から値を記述する。
【００３７】
本発明のさらなる好ましい実施形態において、複数のビンエンコーダ１０、またはビンエンコーダの１つ以上が、入力ビンシーケンス９を符号語１０に直接マッピングするエントロピーエンコーダである。このようなマッピングは、効率的に実施することができ、複雑な算術符号化エンジンを必要としない。ビンシーケンスへの符号語の逆マッピングは（デコーダで行われているように）、入力シーケンスの完全な復号化を保証するために一意である必要があるが、ビンシーケンス９の符号語１０へのマッピングは、必ずしも一意である必要はない。つまり、特定のビンシーケンスを１以上の符号語のシーケンスへマッピングすることも可能である。本発明の好ましい実施形態において、入力ビンシーケンス９の符号語１０へのマッピングは、全単射である。本発明のさらなる好ましい実施形態において、複数のビンエンコーダ１０、またはビンエンコーダの１つ以上は、入力ビンの可変長シーケンス９を可変長符号語１０に直接マッピングするエントロピーエンコーダである。本発明の好ましい実施形態において、出力された符号語は、一般的なハフマン符号または基準のハフマン符号などの冗長度のない符号を表している。
【００３８】
冗長度のない符号にビンシーケンスを全単射マッピングするための２つの例を表３に示す。本発明のさらなる好ましい実施形態において、出力符号語は、エラー検出とエラー回復のために適切な冗長度のある符号を表している。本発明のさらなる好ましい実施形態において、出力符号語は、ソースシンボルを暗号化するための適切な暗号化符号を表す。
【表３】
2014534677.tif 000006
【００３９】
本発明のさらなる好ましい実施形態において、複数のビンエンコーダ１０、またはビンエンコーダの１つ以上は、入力ビンの可変長シーケンス９を固定長の符号語１０に直接マッピングするエントロピーエンコーダを表している。本発明のさらなる好ましい実施形態において、複数のビンエンコーダ１０、またはビンエンコーダの１つ以上は、可変長符号語１０に入力ビンの固定長シーケンス９を直接マッピングするエントロピーエンコーダである。
【００４０】
本発明の一実施形態によるデコーダを図２に示す。基本的にデコーダは、エンコーダの逆演算を実行し、これによって（前に符号化された）ソースシンボル２７のシーケンスが２つ以上の部分的ビットストリーム２４の集合から復号化される。デコーダは、エンコーダのデータフローを複製するデータリクエストのためのフローと、エンコーダデータフローの逆を表すデータフローと、の２つの異なるプロセスフローを含む。図２において、破線の矢印はデータリクエストフローを表し、実線の矢印はデータフローを表す。デコーダのビルディングブロックは、基本的にエンコーダのビルディングブロックを複製するが、逆演算を実行する。
【００４１】
ソースシンボルの復号化は、バイナライザ１４へ送られる新しい復号化されたソースシンボルに対するリクエスト１３によってトリガされる。本発明の好ましい実施形態において、新しい復号化されたソースシンボルに対する各リクエスト１３は、１つ以上のカテゴリの集合のカテゴリに関連付けられる。ソースシンボルに対するリクエストに関連付けられているカテゴリは、符号化中に対応するソースシンボルに関連付けされたカテゴリと同じである。
【００４２】
バイナライザ１４は、ソースシンボルに対するリクエスト１３を、パラメータ割当部１６へ送られるビンに対する１つ以上のリクエスト内へマッピングする。バイナライザ１４によりパラメータ割当部１６へ送られるビンに対するリクエストに対する最終応答として、バイナライザ１４はビンバッファ選択部１８から復号化されたビン２６を受信する。バイナライザ１４は、受信した復号化されたビン２６のシーケンスをリクエストされたソースシンボルに対する特定の二値化方式のビンシーケンスと比較して、受信した復号化されたビン２６のシーケンスがソースシンボルの二値化と整合した場合、バイナライザはそのビンバッファを空にして新しく復号化されたシンボルに対するリクエストへの最終応答として復号化されたソースシンボルを出力する。既に受信した復号化されたビンのシーケンスがリクエストされたソースシンボルに対する二値化方式に対するビンシーケンスのいずれとも整合しない場合、バイナライザは、復号化されたビンのシーケンスがリクエストされたソースシンボルに対する二値化方式のビンシーケンスの１つに整合するまで、ビンに対する他のリクエストをパラメータ割当部へ送信する。ソースシンボルに対するリクエストごとに、デコーダは、対応するソースシンボルを符号化するために使用されたものと同じ二値化方式を使用する。二値化方式は、異なるソースシンボルカテゴリごとに異なっていてよい。特定のソースシンボルカテゴリに対する二値化方式は、可能なソースシンボル値および／または特定のカテゴリに対するソースシンボルの他の特性の集合に依存することができる。
【００４３】
パラメータ割当部は、ビンに対する各リクエストへ１つ以上のパラメータの集合を割り当て、関連付けられたパラメータの集合を有するビンに対するリクエストをビンバッファ選択部へ送信する。パラメータ割当部によってリクエストされたビンへ割り当てられたパラメータの集合は、符号化している間に対応するビンへ割当てられたものと同じである。このパラメータの集合は、エンコーダ記述において述べられているパラメータの１つ以上から構成される。
【００４４】
本発明の好ましい実施形態において、パラメータ割当部１６は、ビンに対する各リクエスを、現在リクエストされているビンに対する２つの可能なビン値のうちの１つに対する確率の推定に対する測度に関連付ける。本発明のさらなる好ましい実施形態において、パラメータ割当部１６は、ビンに対する各リクエストを、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値に対する確率の推定に対する測度と、２つの可能なビン値のうちどちらが現在リクエストされているビンに対する確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子とに関連付ける。
【００４５】
本発明のさらなる好ましい実施形態において、パラメータ割当部１６は、ビンに対する各リクエスト１５、１７を、現在リクエストされているビンに対する２つの可能なビン値のうちの１つに対する確率の推定に対する測度と、１以上のさらなるパラメータと、に関連付ける。本発明のさらなる好ましい実施形態において、パラメータ割当部１６は、ビンに対する各リクエスト１５、１７を、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値に対する確率の推定に対する測度と、２つの可能なビン値のうちどちらが現在リクエストされているビンに対する確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子と、１つ以上のさらなるパラメータ（上記に挙げたパラメータの１つ以上であり得る）と、に関連付ける。
【００４６】
本発明の好ましい実施形態において、パラメータ割当部１６は、１つ以上の既に復号化されたシンボルの集合に基づいて、上述した確率測度（現在リクエストされているビンに対する２つの可能なビン値のうちの１つに対する確率の推定に対する測度と、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値に対する確率の推定に対する測度と、２つの可能なビン値のうちどちらが現在リクエストされているビンに対する確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子）の１つ以上を決定する。ビンに対する特定のリクエストに対する確率測度の決定は、対応するビンに対するエンコーダにおいてプロセスを複製する。確率測度を決定するために使用される復号化されたシンボルは、同じシンボルカテゴリの１つ以上の既に復号化されたシンボル、（ソースシンボルに対する現在のリクエストに関連付けられたデータ集合に関連して）近接空間的および／または時間的なロケーションの（サンプルのブロックまたは群などの）データ集合に対応する同じシンボルカテゴリの１つ以上の既に復号化されたシンボル、または（ソースシンボルに対する現在のリクエストに関連付けられたデータ集合に関連して）同一および／または近接空間的および／または時間的なロケーションのデータ集合に対応する異なるシンボルカテゴリの１つ以上の既に復号化されたシンボルを含む。
【００４７】
パラメータ割当部１６の出力であるパラメータの関連付けられた集合を有するビンに対する各リクエスト１７は、ビンバッファ選択部１８内へ送られる。パラメータ１７の関連付けられた集合に基づいて、ビンバッファ選択部１８は、２つ以上のビンバッファ２０のうちの１つへビンに対するリクエスト１９を送信し、選択されたビンバッファ２０から復号化されたビン２５を受信する。復号化された入力ビン２５は、潜在的に変更され、復号化された出力ビン２６―潜在的に変更された値を有する―は、パラメータの関連付けられた集合を有するビンに対するリクエスト１７への最終応答としてバイナライザ１４へ送信される。
【００４８】
ビンに対するリクエストが転送される先のビンバッファ２０は、エンコーダ側のビンバッファ選択部の出力ビンが送信されたビンバッファと同様に選択される。
【００４９】
本発明の好ましい実施形態において、ビンバッファ選択部１８は、ビンに対するリクエスト１９が送信される先のビンバッファ２０を、現在リクエストされているビンに対する２つの可能なビン値の１つに対する確率の推定に対する関連付けられた測度に基づいて決定する。本発明の好ましい実施形態において、２つの可能なビン値のうちの１つに対する確率の推定に対する測度に対する可能な値の集合は有限であり、ビンバッファ選択部１８は１つだけのビンバッファ２０を２つの可能なビン値のうちの１つに対する確率の推定の各可能な値と関連付けるテーブルを含み、ここで、２つの可能なビン値の１つに対する確率の推定に対する測度に対して異なる値を同一のビンバッファ２０と関連付けることができる。本発明のさらなる好ましい実施形態において、２つの可能なビン値の１つに対する確率の推定に対する測度に対する可能な値の範囲は多数の区間に分割され、ビンバッファ選択部１８は２つの可能なビン値の１つに対する確率の推定に対する現在の測度に対する区間インデックスを決定し、ビンバッファ選択部１８は１つだけのビンバッファ２０を区間インデックスに対する各可能な値と関連付けるテーブルを含み、ここで、区間インデックスごとに異なる値を同じビンバッファ２０に関連付けることができる。本発明の好ましい実施形態において、２つの可能なビン値の１つに対する確率の推定に対する反対の測度を有するビンに対するリクエスト１７（反対測度は確率推定Ｐと１−Ｐを表す測度である）は同じビンバッファ２０へ転送される。本発明のさらなる好ましい実施形態において、現在のビンリクエストに対する２つの可能なビン値の１つに対する確率の推定に対する測度を特定のビンバッファと関連付けることが経時的に適応される。
【００５０】
本発明のさらなる好ましい実施形態において、ビンバッファ選択部１８は、ビンに対するリクエスト１９が送信される先のビンバッファ２０を、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値に対する確率の推定に対する関連付けられた測度に基づいて決定する。本発明の好ましい実施形態において、確率の低いまたは確率の高いビン値に対する確率の推定に対する測度に対する可能な値の集合は有限であり、ビンバッファ選択部１８は１つだけのビンバッファ２０を確率の低いまたは確率の高いビン値に対する確率の推定の各可能な値と関連付けるテーブルを含み、ここで、確率の低いまたは確率の高いビン値に対する確率の推定に対する測度に対する異なる値を同じビンバッファ２０と関連付けることができる。本発明のさらなる好ましい実施形態において、確率の低いまたは確率の高いビン値に対する確率の推定に対する測度に対する可能な値の範囲は多数の区間へ分割され、ビンバッファ選択部１８は確率の低いまたは確率の高いビン値に対する確率の推定に対する現在の測度に対する区間インデックスを決定し、ビンバッファ選択部１８は１つだけのビンバッファ２０を区間インデックスに対する各可能な値と関連付けるテーブルを含み、ここで、区間インデックスに対する異なる値を同じビンバッファ２０と関連付けることができる。本発明のさらなる好ましい実施形態において、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値に対する確率の推定に対する測度を特定のビンバッファと関連付けることが経時的に適応される。
【００５１】
選択されたビンバッファ２０から復号化されたビン２５を受信した後、ビンバッファ選択部１８は潜在的に入力ビン２５を変更し、潜在的に変更された値を有する出力ビン２６をバイナライザ１４へ送信する。ビンバッファ選択部１８の入力／出力ビンマッピングは、エンコーダ側のビンバッファ選択部の入力／出力ビンマッピングの逆である。
【００５２】
本発明の好ましい実施形態において、ビンバッファ選択部１８はビンの値を変更しない。すなわち、出力ビン２６は入力ビン２５と同じ値を常に有している。
【００５３】
本発明のさらなる好ましい実施形態において、ビンバッファ選択部１８は、入力ビン値２５と、ビンに対するリクエスト１７と関連付けられた現在リクエストされているビンに対する２つの可能なビン値のうちの１つに対する確率の推定に対する測度に基づいて、出力ビン値２６を決定する。本発明の好ましい実施形態において、現在のビンリクエストに対する２つの可能なビン値のうちの１つに対する確率に対する測度が特定のしきい値未満（またはしきい値以下）である場合、出力ビン値２６は入力ビン値２５と等しく設定されるが、現在のビンリクエストに対する２つの可能なビン値のうちの１つに対する確率に対する測度が特定のしきい値以上（またはしきい値より大きい）である場合、出力ビン値２６は変更される（すなわち、入力ビン値の逆に設定される）。本発明のさらなる好ましい実施形態において、出力ビン値２６は、現在のビンリクエストに対する２つの可能なビン値のうちの１つに対する確率に対する測度が特定のしきい値より大きい（またはしきい値以上の）場合、入力ビン値２５と等しく設定されるが、現在のビンリクエストに対する２つの可能なビン値のうちの１つに対する確率に対する測度が特定のしきい値以下（またはしきい値未満）である場合、出力ビン値２６は変更される（すなわち、入力ビン値の逆に設定される）。本発明の好ましい実施形態において、しきい値は両方の可能なビン値に対する推定された確率に対して０．５の値に一致している。
【００５４】
本発明のさらなる好ましい実施形態において、ビンバッファ選択部１８は、入力ビン値２５と、２つの可能なビン値のうちどちらがビンに対するリクエスト１７に関連付けられている現在のビンリクエストに対する確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子と、に基づいて、出力ビン値２６を決定する。本発明の好ましい実施形態において、識別子が２つの可能なビン値のうちの第１のビン値が現在のビンリクエストに対して確率の低い（または確率の高い）ビン値を表していることを指定する場合、出力ビン値２６は入力ビン値２５と等しく設定され、識別子が２つの可能なビン値のうちの第２のビン値が現在のビンリクエストに対して確率の低い（または確率の高い）ビン値を表していることを指定する場合、出力ビン値２６は変更される（すなわち、入力ビン値の逆に設定される）。
【００５５】
上述したように、ビンバッファ選択部は、２つ以上のビンバッファ２０のいずれか１つへビンに対するリクエスト１９を送信する。ビンバッファ２０は、連結されているビンデコーダ２２から復号化されたビンのシーケンス２１とともに送られる、先入れ先出しバッファを表す。ビンバッファ選択部１８からビンバッファ２０へ送られるビンに対するリクエスト１９への応答として、ビンバッファ２０はビンバッファ２０に最初に送られたそのコンテンツのビンを取り出し、それをビンバッファ選択部１８へ送信する。先にビンバッファ２０に送信されるビンは先に取り出され、ビンバッファ選択部１８へ送信される。
【００５６】
２つ以上のビンバッファ２０の各々は１つだけのビンデコーダ２２に連結され、各ビンデコーダは１つだけのビンバッファ２０に連結されている。各ビンデコーダ２２は、分離した部分的ビットストリーム２４から、ビットシーケンスを表す符号語２３を読み出す。ビンデコーダは、符号語２３を、連結されているビンバッファ２０に送信されるビンのシーケンス２１に変換する。全体的な復号化アルゴリズムは２つ以上の部分的なビットストリーム２４を多数の復号化されたソースシンボルへ変換し、ここで、部分的ビットストリームの数はビンバッファとビンデコーダの数と等しく、ソースシンボルの復号化は新しいソースシンボルに対するリクエストによってトリガされる。本発明の好ましい実施形態において、ビンデコーダ２２は、可変数のビットから成る符号語２３を可変数のビンのシーケンス２１へ変換する。本発明の実施形態の１つの利点は、２つ以上の部分的ビットストリームからのビンの復号化が（たとえば、確率測度の異なる群に対して）並列に行うことができ、これによっていくつかのインプリメンテーションの処理時間を短縮できるという点にある。
【００５７】
本発明の実施形態の他の利点は、ビンデコーダ２２によって行われるビン復号化がパラメータ１７の異なる集合に対して具体的に設計することができる点にある。特に、ビンの符号化と復号化は推定される確率の異なる群ごとに（符号化効率および／または複雑さに関して）最適化することができる。一方で、これは、同様の符号化効率を有する最先端のエントロピー符号化アルゴリズムに対して符号化／復号化の複雑さの低減を可能にする。他方で、これは、同様の符号化／復号化の複雑性を有する最先端のエントロピー符号化アルゴリズムに対して符号化効率の向上を可能にする。本発明の好ましい実施形態において、ビンデコーダ２２は現在のビンリクエストに対する２つの可能なビン値１７のうちの１つに対する確率の推定に対する測度の異なる群に対して異なる復号化アルゴリズムを実施する（すなわち、ビンシーケンスを符号語にマッピングする）。本発明のさらなる好ましい実施形態において、ビンデコーダ２２は、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値に対する確率の推定に対する測度の異なる群ごとに、異なる復号化アルゴリズムを実施する。さらなる好ましい実施形態において、ビンデコーダ２２は、異なる伝送路保護符号ごとに異なる復号化アルゴリズムを実施する。さらなる好ましい実施形態において、ビンデコーダ２２は、異なる暗号化方式ごとに異なる復号化アルゴリズムを実施する。さらなる好ましい実施形態において、ビンデコーダ２２は、伝送路保護符号と、現在リクエストされているビンに対する２つの可能なビン値１７のいずれか１つに対する確率の推定に対する測度の群と、の様々な組合せに対して、異なる復号化アルゴリズムを実施する。さらなる好ましい実施形態において、ビンデコーダ２２は、伝送路保護符号と、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値１７の確率の推定に対する測度の群と、の様々な組合せに対して、異なる復号化アルゴリズムを実施する。さらなる好ましい実施形態において、ビンデコーダ２２は、暗号化方式と、現在リクエストされているビンに対する２つの可能なビン値１７のいずれか１つに対する確率の推定に対する測度の群と、の様々な組合せに対して、異なる復号化アルゴリズムを実施する。さらなる好ましい実施形態において、ビンデコーダ２２は、暗号化方式と、現在リクエストされているビンに対する確率の低いまたは確率の高いビン値１７に対する確率の推定に対する測度の群と、の様々な組合せに対して、異なる復号化アルゴリズムを実施する。
【００５８】
ビンデコーダ２２は、エンコーダ側の対応しているビンエンコーダの逆マッピングを行う。
【００５９】
本発明の好ましい実施形態において、複数のビンデコーダ２２―またはビンデコーダの１つ以上―は、二値算術復号化エンジンを表している。
【００６０】
本発明のさらなる好ましい実施形態において、複数のビンデコーダ２２、またはビンデコーダの１つ以上は、符号語２３をビンのシーケンス２１に直接マッピングするエントロピーデコーダを表している。このようなマッピングは、効率的に実施することができ、複雑な算術符号化エンジンを必要としない。ビンシーケンスへの符号語のマッピングは一意である必要がある。本発明の好ましい実施形態において、符号語２３のビンのシーケンス２１へのマッピングは全単射である。本発明のさらなる好ましい実施形態において、複数のビンデコーダ１０―またはビンデコーダの１つ以上―は、可変長の符号語２３をビンの可変長のシーケンス２１へ直接マッピングするエントロピーデコーダを表している。本発明の好ましい実施形態において、入力された符号語は、一般的なハフマン符号または基準のハフマン符号などの冗長度のない符号を表している。冗長度のない符号をビンシーケンスに全単射マッピングするための２つの例を表３に示す。本発明のさらなる好ましい実施形態において、入力された符号語は、エラー検出とエラー復元のために適切な冗長度のある符号を表している。本発明のさらなる好ましい実施形態において、入力された符号語は暗号化符号を表している。
【００６１】
本発明のさらなる好ましい実施形態において、複数のビンデコーダ２２、またはビンデコーダの１つ以上は、固定長の符号語２３をビンの可変長のシーケンス２１上へ直接マッピングするエントロピーデコーダを表している。本発明のさらなる好ましい実施形態において、複数のビンデコーダ２２―またはビンデコーダの１つ以上―は、可変長の符号語２３を固定長のビンのシーケンス２１へ直接マッピングするエントロピーデコーダを表している。
【００６２】
したがって、図１および図２は、シンボル３のシーケンスを符号化するためのエンコーダと同シンボル３のシーケンスを復元するためのデコーダについての実施の形態を示す。エンコーダは、シンボルシーケンスの各シンボルへ多数のパラメータ５を割り当てるように構成された割当部４を含む。この割当ては、現在のシンボルが属しており、シンタックス要素１のシンタックス構造に応じて、先行のシンタックス要素１およびシンボル３の履歴からどの予想が推定可能であるかが現在予想されている、―二値化などの―表現に対してシンタックス要素１のカテゴリなどのシンボルシーケンスの先行シンボル内に含まれる情報に基づいて、行われる。また、エンコーダは、それぞれのエントロピーエンコーダへ転送されたシンボル３をそれぞれのビットストリーム１２へ変換するように各々が構成されている複数のエントロピーエンコーダ１０と、その選択がそれぞれのシンボル３に割り当てられたパラメータ５の数に依存する、複数のエントロピーエンコーダ１０の選択された１つに各シンボル３を転送するように構成されている選択部６と、を含む。シンボルシーケンスを復元するためのデコーダは、それぞれのビットストリーム２３をシンボル２１に変換するように各々が構成されている複数のエントロピーデコーダ２２と、シンボルシーケンスのうちの前に復元されたシンボル（図２の２６および２７参照）に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボル１５へ多数のパラメータ１７を割り当てる割当部１６と、その選択がそれぞれのシンボルに対して定義付けられているパラメータの数に依存する、複数のエントロピーデコーダ２２のうちの選択された１つから復元されるシンボルシーケンスの各シンボルを検索するように構成されている選択部１８と、を含む。割当部１６は各シンボルに割り当てられたパラメータの数が、それぞれのシンボルが想定し得る可能なシンボル値の中から分布の確率の推定に対する測度を含むかまたはこれに対する測度であるように構成されていてもよい。復元されるシンボルシーケンスは二値アルファベットから作成され、割当部１６は、確率分布の推定が、二値アルファベットの２つの可能なビン値の確率の低いまたは確率の高いビン値の確率の推定に対する測度と、２つの可能なビン値のうちどちらが確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子と、から成るように構成されていてもよい。割当部１６はさらに、関連付けられたそれぞれの確率分布推定を有する各コンテクストによって復元されるシンボルシーケンスの、前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボル１５のシーケンスの各シンボルへコンテクストを内的に割り当てるとともに、それぞれのコンテクストが割り当てられる、前に復元されたシンボルのシンボル値に基づいて各コンテクストに対する確率分布推定を実際のシンボル統計値に適応させるように構成されていてもよい。このコンテクストはビデオまたは画像符号化においてまたは財政的申請の場合に表においてシンタックス要素が属する空間的関係または位置の近接性を考慮に入れてもよい。次いで、シンボルごとの確率分布の推定に対する測度は、確率分布の推定に対する測度を得るために、たとえば、それぞれのシンボルに割り当てられたコンテクストと関連付けられた確率分布推定を複数の確率分布推定の代表値の１つに対して量子化することによって、それぞれのシンボルに割り当てられたコンテクストと関連付けられた確率分布推定に基づいて、決定されてもよい。選択部は、複数のエントロピーエンコーダと複数の確率分布推定の代表値との間で全単射関連付けが定義付けられるように構成することができる。選択部１８は、シンボルシーケンスの、前に復元されているシンボルに依存する所定の決定論的な方法において量子化マッピングを確率分布推定の範囲から複数の確率分布推定の代表値へ経時的に変化させるように構成されていてもよい。すなわち、選択部１８は、量子化ステップの大きさ、すなわち、個別のエントロピーデコーダと全単射で関連付けられている個別の確率インデックスにマッピングされた確率分布の区間を変更することができる。次いで、複数のエントロピーデコーダ２２は量子化マッピングの変化に応答してシンボルをビットストリームへ変換する方法を適応させるように構成されていてもよい。たとえば、各エントロピーデコーダ２２は、それぞれの確率分布推定の量子化区間内のある確率分布推定に対して最適化され、すなわち、最適な圧縮率を有することができ、それぞれの確率分布推定量子化区間内のこのある確率分布推定の位置を適応させるために、後者を最適化するための変更時にその符号語／シンボルシーケンスマッピングを変更することができる。選択部はシンボルが複数のエントロピーデコーダから検索されるレートのばらつきが少なくなるように量子化マッピングを変化させるように構成されていてもよい。バイナライザ１４に関しては、シンタックス要素が既に２値である場合はそのままにされる。さらに、デコーダ２２のタイプによっては、バッファ２０は不要である。また、バッファはデコーダ内で統合されてもよい。
【００６３】
［有限のソースシンボルシーケンスの終了］
本発明の好ましい実施形態において、符号化と復号化は、ソースシンボルの有限集合に対して行われる。多くの場合、静止画、ビデオシーケンスのフレームやフィールド、画像のスライス、ビデオシーケンスのフレームまたはフィールドのスライス、または連続的オーディオサンプルの集合などのデータのある一定量が符号化される。ソースシンボルの有限集合の場合、一般に、エンコーダ側で作成された部分的ビットストリームを終了させる必要がある。すなわち、すべてのソースシンボルを送信されたまたは格納された部分的なビットストリームから復号化できることを確実にする必要がある。最後のビンが対応するビンバッファ８内へ挿入された後、ビンエンコーダ１０は、完全な符号語が部分的なビットストリーム１２に書き込まれることを確実にする必要がある。ビンエンコーダ１０が二値算術符号化エンジンを表す場合、算術符号語を終了する必要がある。ビンデコーダ１０がビンシーケンスを符号語に直接マッピングするエントロピーエンコーダを表す場合、最後のビンをビンバッファに書き込んだ後にビンバッファに格納されるビンシーケンスは、符号語に関連付けられているビンシーケンスを表さない場合がある（すなわち、符号語に関連付けられている２つ以上のビンシーケンスの接頭語を表す場合がある。このような場合、ビンバッファに接頭語としてビンシーケンスを含むビンシーケンスに関連付けられているどのような符号語も、部分的なビットストリームに書き込まれる必要がある（ビンバッファをフラッシュする必要がある）。これは、特定のまたは任意の値を有するビンを、符号語が書き込まれるまで、ビンバッファへ挿入することによって行うことができる。本発明の好ましい実施形態において、ビンエンコーダは、（関連付けられたビンシーケンスがビンバッファ内に接頭語としてビンシーケンスを含む必要がある特性に加えて）最短長を有する符号語の１つを選択する。デコーダ側では、ビンデコーダ２２は、部分的なビットストリーム内の最後の符号語に要求されるより多くのビンを復号化することができ、これらのビンはビンバッファ選択部１８によってリクエストされずに破棄されかつ無視される。シンボルの有限集合の復号化は、復号化されたソースシンボルのリクエストによって制御され、データの量に対してこれ以上のソースシンボルがリクエストされない場合、この復号化は終了する。
【００６４】
［部分的ビットストリームの送信と多重化］
エンコーダによって作成される部分的ビットストリーム１２は別個に送信されることができるか、単一のビットストリーム内へ多重化することができるか、または部分的ビットストリームの符号語が単一のビットストリーム内へインターリーブすることができる。
【００６５】
好ましい比較例として、データ量に対する各部分的ビットストリームは、１つのデータパケットへ書き込まれる。データ量は、静止画、ビデオシーケンスのフィールドやフレーム、静止画のスライス、ビデオシーケンスのフィールドまたはフレームのスライス、またはオーディオサンプルのフレームなどのソースシンボルの任意の集合であってよい。
【００６６】
他の好ましい比較例として、データ量に対する部分的ビットストリームの２つ以上またはデータ量に対するすべての部分的ビットストリームが、１つのデータパケット内へ多重化される。多重化された部分的なビットストリームを含むデータパケットの構造を図３に示す。
【００６７】
データパケット１００は、ヘッダと、（データの考えられる量に対する）各部分的ビットストリームのデータの一分割から成る。データパケット１００のヘッダは、ビットストリームデータ１０２のセグメント内へのデータパケット（の残り）を分割するための表示を含む。分割に対する表示の他に、ヘッダはさらなる情報を含み得る。好ましい比較例において、データパケットの分割に対する表示はビットやバイトまたはビットの倍数またはバイトの倍数といった単位で表されるデータセグメントの開始部分である。さらなる比較において、データセグメントの開始部分は、データパケットの開始に対する、またはヘッダの終わりに対する、または前のデータパケットの開始部分に対する、データパケットのヘッダ内の絶対値として、符号化される。さらなる比較例において、データセグメントの開始部分は差動的に符号化され、すなわち、データセグメントの実際の開始とデータセグメントの開始に対する予測との間の差のみが符号化される。この予測は、データパケットの全体のサイズ、ヘッダのサイズ、データパケット内のデータセグメントの数、先行するデータセグメントの開始部分などの既に知られているかまたは送信された情報に基づいて求められ得る。比較例において、第１のデータパケットの開始部分は符号化されないが、データパケットヘッダの大きさに基づいて推測される。デコーダ側において、送信されたパーティション表示はデータセグメントの開始を導出するために使用される。次いで、データセグメントは部分的ビットストリームとして使用され、データセグメントに含まれるデータは対応するビンデコーダに順に供給される。
【００６８】
データパケット内へ部分的ビットストリームを多重化するためのいくつかの代替手段がある。一つには、部分的ビットストリームのサイズが非常に近い場合は特に、要求されるサイド情報を削減することができる方法が図４に示されている。データパケットのペイロード、すなわちそのヘッダ１１１なしのデータパケット１１０は所定の定義付けられている方法でセグメント１１２内へ分割される。一例として、データパケットのペイロードは同一サイズのセグメントへ分割することができる。次に、各セグメントは、部分的ビットストリームまたは部分的ビットストリーム１１３の第１の部分と関連付けられる。部分的ビットストリームが関連付けられたデータセグメントよりも大きい場合、その残部１１４は他のデータセグメントの終わり部分の未使用空間へ配置される。これはビットストリームの残部が逆の順序（データセグメントの終わりから開始する）で挿入する方法で行うことができ、これによってサイド情報が削減される。部分的ビットストリームの残部のデータセグメントへの関連付け、および、１より多い残部がデータセグメントへ追加される場合、残部の１以上に対する開始点はビットストリームの内部、たとえば、データパケットヘッダ内で、シグナリング（信号伝達）される必要がある。
【００６９】
［可変長符号語のインターリービング］
一部の応用において、１つのデータパケット内の（ソースシンボルの量に対する）部分的ビットストリームの上記した多重化は、下記のような欠点を有し得る：一方では、小さいデータパケットに対して、分割を信号伝達するために必要とされるサイド情報に対するビット数が部分的ビットストリーム内の実際のデータに対して有意になり得るため、最終的に符号化効率を低下させる。他方では、多重化は、（たとえば、ビデオ会議応用などの）低遅延が要求される応用には不向きであることがある。説明されている多重化の場合、分割の開始部分がそれより前に知られていないので、エンコーダは部分的ビットストリームが完全に作成される前にデータパケットの送信を開始することができない。さらに、一般に、デコーダは、データパケットの復号化を開始する前に、最後のデータセグメントの開始を受信するまで待機する必要がある。ビデオ会議システムのような応用において、これらの遅延は、（送信ビットレートに近いビットレートに対して、および画像を符号化／復号化するための２つの画像間の時間区間に近い要求をするエンコーダ／デコーダに対して特に）、複数のビデオ画像のシステムのさらなる全体遅延に加算される可能性があり、このような応用には致命的である。特定の応用に対するこのような欠点を克服するために、比較例のエンコーダは、２つ以上のビンエンコーダによって生成される符号語が単一のビットストリームにインターリーブされるように構成することができる。インターリーブされた符号語を有するビットストリームは、デコーダに直接送信することができる（小さなバッファ遅延を無視する場合は以下を参照）。デコーダ側において、２つ以上のビンデコーダは復号化順にビットストリームから直接符号語を読み出し、復号化は最初に受信したビットから開始される。さらに、部分的ビットストリームの多重化（またはインターリーブ）を信号伝達するためにサイド情報は必要とされない。
【００７０】
符号語のインターリーブを有するエンコーダの基本構造を図５に示す。ビンエンコーダ１０は、部分的ビットストリームに符号語を直接書き込まないが、単一符号語バッファ２９に連結されており、そこから符号語が符号化順にビットストリーム３４へ書き込まれる。ビンエンコーダ１０は、１つ以上の新しい符号語バッファエントリに対するリクエスト２８を符号語バッファ２９へ送信し、この後、符号語バッファ２９へ符号語３０を送信し、これらが予約されたバッファエントリへ格納される。（一般に可変長の）符号語バッファ２９の符号語３１は、符号語ライタ３２によってアクセスされる。符号語ライタ３２は生成されたビットストリーム３４へ対応するビット３３を書き込む。符号語バッファ２９は、先入れ先出しバッファとして演算し、先に予約された符号語エントリは、ビットストリームへ先に書き込まれる。
【００７１】
さらなる一般化において、符号語バッファの数がビンエンコーダの数より少ない場合、複数の符号語バッファと部分的なビットストリームが可能である。ビンエンコーダ１０は符号語バッファ２９内に１以上の符号語を予約し、これによって、符号語バッファ内の１つ以上の符号語の予約は連結されているビンバッファ８内のある事象によってトリガされる。比較例において、符号語バッファ２９は、デコーダがビットストリームを瞬時に復号できるように演算する。符号語がビットストリームに書き込まれる符号化順序は、対応する符号語が符号語バッファに予約さている順序と同じである。本発明の好ましい実施形態において、各ビンエンコーダ１０は、その予約が連結されているビンバッファ内のある事象によってトリガされることによって１つの符号語を予約する。本発明の他の好ましい実施形態において、各ビンエンコーダ１０はその予約が連結されているビンバッファ内のある事象によってトリガされることによって１つより多くの符号語を予約する。さらなる比較例において、ビンエンコーダ１０は異なる量の符号語を予約する。ここで、特定のビンエンコーダによって予約される符号語の量は、（たとえば、関連する確率測度、既に書かれたビット数などの）特定のビンエンコーダおよび／または特定のビンエンコーダ／ビンバッファの他の特性に依存する。
【００７２】
さらなる比較例において、符号語バッファは以下のように演算する。新しいビン７が特定のビンバッファ８に送られ、ビンバッファ内に既に格納されているビンの数がゼロであり、特定のビンバッファに連結されているビンエンコーダに対する符号語バッファ内には現在符号語が予約されていない場合、この連結されているビンエンコーダ１０は、それにより１つ以上の符号語エントリが特定のビンエンコーダに対して符号語バッファ２９内に予約されるリクエストを符号語バッファへ送信する。符号語エントリは可変数ビットを有することができる。バッファエントリにおけるビット数の上限しきい値は通常、対応するビンエンコーダの最大符号語サイズによって付与される。次の符号語または（符号語エントリまたは複数の符号語エントリが予約されている）ビンエンコーダによって生成される次の符号語は符号語バッファの予約されたエントリまたは複数のエントリ内に格納される。特定のビンエンコーダに対する符号語バッファ内のすべての予約されたバッファエントリが符号語で埋め込まれ、次のビンが特定のビンエンコーダに連結されているビンバッファに送信される場合、１つ以上の新しい符号語が特定のビンエンコーダ等に対する符号語バッファ内に予約される。符号語バッファ２９は、ある方法で、先入れ先出しバッファを表す。バッファエントリは順に予約される。対応するバッファエントリが先に予約されている符号語は先にビットストリームへ書き込まれる。符号語ライタ３２は、連続的にまたは符号語バッファ２９へ符号語３０が書き込まれた後に、符号語バッファ２９の状態をチェックする。第１のバッファエントリが完成した符号語を含む場合（すなわち、バッファエントリは予約されていないが符号語を含む場合）、対応する符号語３１と対応するバッファエントリは、符号語バッファ２０から取り出され、符号語３３のビットはビットストリームへ書き込まれる。このプロセスは、第１のバッファエントリが符号語を含まなくなるまで（すなわち、予約されるかまたはフリーになるまで）反復される。復号化プロセスの終了時、すなわち、考えられるデータの量のすべてのソースシンボルが処理された場合、符号語のバッファをフラッシュする必要がある。そのフラッシュプロセスに対して、以下が第１のステップとしてビンバッファ／ビンエンコーダごとに適用される。すなわち、ビンバッファがビンを含む場合、特定のまたは任意の値を有するビンは、得られるビンシーケンスが、符号語に関連付けられたビンシーケンスを表すまで加算される（上記したように、ビンを加算する１つの好ましい方法は、接頭語としてビンバッファの元のコンテンツを含むビンシーケンスに関連付けられた、最短長さの可能な符号語―またはこれらのうちの１つ―を生成するようなビン値を加算することである）。次に、符号語は対応するビンエンコーダに対する次に予約されたバッファエントリへ書き込まれ、（対応する）ビンバッファは空になる。複数のバッファエントリが１つ以上のビンエンコーダに対して予約されている場合、符号語のバッファは予約された符号語エントリを未だに含む場合がある。その場合、これらの符号語エントリには任意であるが、対応するビンエンコーダに対して有効な符号語が埋め込まれている。さらなる比較例において、最短の有効な符号語または最短の有効な符号語（複数ある場合）の１つが挿入される。最後に、符号語バッファ内の残留しているすべての符号語はビットストリームに書き込まれる。
【００７３】
符号語バッファの状態に対する２つの例を図６に示す。この例（ａ）において、符号語バッファは、符号語と５個の予約されたエントリが埋め込まれている２個のエントリを含む。さらに、次の空きバッファエントリはマークされている。第１のエントリには、符号語が埋め込まれている（すなわち、ビンエンコーダ２が前に予約されたエントリへ符号語を書き込んだばかりである）。次のステップにおいて、この符号語は符号語バッファから取り出され、ビットストリームへ書き込まれる。次に、ビンエンコーダ３の第１の予約された符号語は第１のバッファエントリであるが、このエントリは予約されているだけでこのエントリに符号語が全く書き込まれていないので、このエントリを符号語のバッファから取り出すことができない。例（ｂ）において、符号語バッファは、符号語と４個の予約されたエントリが埋め込まれている３個のエントリを含む。第１のエントリは予約されているとしてマークされ、したがって、符号語ライタは符号語をビットストリームに書き込むことはできない。３個の符号語が符号語バッファに含まれているが、符号語ライタは、符号語がビンエンコーダ３に対する最初に予約されたバッファエントリに書き込まれるまで、待機しなければならない。符号語は、デコーダ側でプロセスを逆転することが可能であるように、予約されている順に書き込む必要があることに留意されたい（下記参照）。
【００７４】
符号語インターリーブを有するデコーダの基本的な構造を図７に示す。ビンデコーダ１０は、個別の部分的ビットストリームから直接符号語を読み出さないが、符号語３７が符号化順に読み出されるビットバッファ３８に連結されている。符号語もビットストリームから直接読み出すことができるので、ビットバッファ３８が必ずしも必要とされないことに留意されたい。プロセッシングチェーンの異なる態様を明確に区別するためにビットバッファ３８を主としてこの図に含めた。インターリーブされた符号語を有しているビットストリーム４０のビット３９はビットバッファ３８に順に挿入され、これが先入れ先出しバッファを表している。特定のビンデコーダ２２が１つ以上のビンシーケンスに対するリクエスト３５を受信した場合、ビンデコーダ２２は、ビットに対するリクエスト３６を介して、ビットバッファ３８から１つ以上の符号語３７を読み出す。デコーダはソースシンボルを瞬時に復号化することができる。（上記のように）エンコーダは、符号語バッファを適切に演算させることによって、符号語がビンデコーダによってリクエストされるのと同じ順序でビットストリームへ書き込まれることを確実にする必要があることに留意されたい。デコーダにおいて、全体の復号化プロセスは、ソースシンボルに対するリクエストによってトリガされる。特定のビンエンコーダによってエンコーダ側で予約された符号語の数と対応するビンデコーダによって読み出される符号語の数としてのパラメータは同じでなければならない。
【００７５】
さらなる一般化において、ビットバッファの数がビンデコーダの数より少ない場合、複数の符号語バッファと部分的なビットストリームが可能である。ビンデコーダ２２は、ビットバッファ３８から１つ以上の符号語を１回だけ読み出し、これによって、ビットバッファからの１つ以上の符号語の読出しが連結されているビンバッファ２０におけるある事象によってトリガされる。さらなる比較例において、デコーダは、１以上の符号語が、ビンに対するリクエスト１９が特定のビンバッファ２０に送信されたときに読み出され、ビンバッファはビンを含まないように演算する。しかし、たとえば、ビンバッファ内のビン数が所定のしきい値より少ない場合などの他の事象によっても、符号語の読出しをトリガすることが可能である。さらなる比較例において、各ビンデコーダ２２は、読出しが連結されているビンバッファにおけるある事象によってトリガされることによって、１つの符号語を読み出す。他の比較例において、各ビンデコーダ２２は、読出しが連結されているビンバッファ内のある事象によってトリガされることによって１つより多くの符号語を読み出す。さらなる比較例において、ビンデコーダ２２は、異なる量の符号語を読み出し、ここで、特定のビンデコーダによって読み出される符号語の量は、（関連付けられた確率測度、既に読み出されたビット数などの）特定のビンデコーダおよび／または特定のビンデコーダ／ビンバッファの他の特性に依存することができる。
【００７６】
ビットバッファからの符号語の読出しは、以下のように演算される。新しいビンリクエスト１９がビンバッファ選択部１８から特定のビンバッファ２０へ送信され、ビンバッファ内のビンの数がゼロである場合、連結されているビンデコーダ２２は、ビットバッファ３８に対するビットリクエスト３６を介して、ビットバッファ３８から１つ以上の符号語３７を読み出す。ビンデコーダ２２は、読み出された符号語３７をビンのシーケンス２１へ変換し、これらのビンシーケンスを連結されているビンバッファ２０内へ格納する。ビンに対するリクエスト１９への最終応答として、最初に挿入されたビンはビンバッファ２０から取り出され、ビンバッファ選択部１８へ送られる。さらなるビンリクエストに対する応答として、ビンバッファ内に残っているビンは、ビンバッファが空になるまで取り出される。さらなるビンリクエストは、ビットバッファなどから１つ以上の新しい符号語を読み出すためにビンデコーダをトリガする。ビットバッファ３８は、事前に定義付けられたサイズの先入れ先出しバッファを表しかつビットストリーム４０からのビット３９が連続的に埋め込まれる。符号語が復号化プロセスによってリクエストされたときと同じ方法でビットストリームに書き込まれることを確実にするために、エンコーダ側の符号語バッファは上記に説明した方法と同様に演算することができる。
【００７７】
したがって、複数のエントロピーデコーダの各々は、可変長のシンボルシーケンスに固定長の符号語をマッピングするように構成されている可変長デコーダであってよく、符号語バッファ４３の出力などの符号語エントリはインターリーブされた符号語の単一ストリームを受け取るために提供され得る。複数のエントロピーデコーダ２２は、複数のエントロピーデコーダから選択部１８によって検索されたときに復元されるシンボルシーケンスのシンボルによってそれぞれのエントロピーデコーダにおいて新しい符号語からマッピングされる新しいシンボルシーケンスを得られる順序に応じて順に符号語のエントリから符号語を検索するように構成することができる。
【００７８】
［低遅延制約のある可変長符号語のインターリービング］
記載される符号語インターリービングは、任意の分割情報がサイド情報として送信されることを必要としない。そして、符号語はビットストリーム内でインターリーブされるので、遅延も一般的に小さい。しかしながら、これは、（たとえば、符号語バッファに格納される最大ビット数によって指定される）特定の遅延制約が遵守されることを保証するものではない。また、符号語バッファに必要とされるバッファのサイズが理論的には非常に大きくなる可能性がある。図６（ｂ）における例を考慮した場合、これ以上のビンがビンバッファ３へ送信されず、したがって、データパケットの最後にフラッシュプロセスが適用されるまで、ビンエンコーダ３が任意の新しい符号語を符号語バッファへ送信しない可能性がでてくる。よって、ビンエンコーダ１および２に対するすべての符号語は、それらがビットストリームへ書き込むことができるようになる前にデータパケットの最後まで待機する必要がでてくる。この欠点は、さらなるメカニズムを符号化するプロセス（また、後述する復号化プロセス）に追加することにより、回避することができる。この追加メカニズムの基本的な概念は、遅延または遅延の上限（以下を参照）に関連した測度が指定したしきい値を超える場合、最初に予約されたバッファエントリは、（データパケットの最後に使用したものと同様のメカニズムを用いて）対応するビンバッファをフラッシュすることによって埋め込まれる、というものである。このようなメカニズムによって、関連付けられた遅延測度が指定されたしきい値を下回るまで、待機するバッファエントリの数が削減される。デコーダ側において、遅延制約を遵守するために、エンコーダ側で挿入されていたビンを破棄する必要がある。ビンを廃棄するために、基本的に、エンコーダ側と同様のメカニズムを使用することができる。このような遅延制御に対する２つの比較例が以下に記載される。
【００７９】
一比較例において、遅延（または遅延の上限）の測度は、符号語バッファ内のアクティブなバッファエントリの数であり、ここで、アクティブなバッファエントリの数は予約されたバッファエントリの数と符号語を含むバッファエントリの数との合計である。最初のバッファエントリが符号語を含む場合、この符号語がビットストリームに書き込まれるので、最初のバッファエントリは常に予約されたバッファエントリまたは空きのバッファエントリであることに留意されたい。たとえば、最大許容バッファ遅延が（応用により決定されるが）Ｄ個のビットであり、すべてのビンエンコーダに対する最大符号語サイズがＬとすると、遅延の制約を犯さずに、符号語バッファ内に含むことができる符号語の最大数に対する下限はＮ＝Ｄ／Ｌによって算出することができる。ビット内の遅延測度Ｄはシステムによって必要とされないが、符号語の最大数Ｎはエンコーダとデコーダの両方に既知である必要がある。さらなる比較例において、符号語バッファエンントリの最大数Ｎは応用によって固定される。他の比較例において、符号語バッファエントリの最大数Ｎはビットストリームの内部、たとえば、ビットストリームに含まれる、データパケットのヘッダ（またはスライスヘッダ）またはビットストリームに含まれるパラメータ集合内で信号伝達される。ビンエンコーダ１０が、符号語バッファ２９へ１以上の新しいバッファエントリの予約に対するリクエストを送信する場合、新しい符号語バッファエントリが予約される前に、以下のプロセスが実行される（すなわち、複数の符号語バッファエントリが１つのリクエストによって予約される場合は、複数回実行される）。現在アクティブなバッファエントリ数プラス１（次に予約されるバッファエントリを考慮して）が符号語バッファエントリの最大数Ｎより大きい場合、（予約された）最初のバッファエントリは、現在アクティブなバッファエントリ数プラス１が符号語バッファエントリの最大数Ｎと等しいかこれより少なくなるまで、以下に記載されるプロセスによってフラッシュされる。予約されたバッファエントリのフラッシュはデータパケットの最後におけるフラッシュに類似している。対応している最初のバッファエントリを予約したビンエンコーダ１０は、得られるビンシーケンスが符号語と関連付けられたビンシーケンスを表すまで、連結されているビンバッファ８へ特定のまたは任意のビン値を有するビンを加算することによってフラッシュされる。次に、符号語は予約されたバッファエントリに書き込まれ、それが最終的に（ビンバッファを空にし、前に予約されたバッファエントリを削除しつつ）ビットストリームへ追加される。前述したように、ビンバッファにビンを追加するための１つの好ましい方法は、最短の可能な符号語を生成するビンを追加することである。デコーダ側では、遅延制約を遵守するために追加されたビンを破棄するために同様のプロセスが実行される。これにより、デコーダはビットバッファから読み出された符号語をカウントするカウンタＣを維持する（このカウンタはビットバッファ内で維持することができる）。カウンタＣはデータパケットの復号化の開始時に（たとえば、ゼロに）初期化され、符号語の読出し後に１増加される。加えて、各ビンデコーダ２２はカウンタＣｘを含み、このカウンタＣｘは、最後の符号語が対応するビンデコーダ２２によって読み出される前に符号語カウンタＣの値を格納する。すなわち、特定のビンデコーダ２２が新しい符号語を読み出す場合、最初のステップとしてそのカウンタＣｘはＣと等しく設定され、次に、符号語がビットバッファから読み出される。ビンに対するリクエスト１９が特定のビンバッファ２０へ送信され、全体符号語カウンタＣと連結されているビンデコーダ２２のカウンタＣｘとの差（Ｃ−Ｃｘ）が符号語バッファエントリの最大数Ｎよりも大きい場合、特定のビンバッファ２０に現在格納されているすべてのビンが破棄され、無視される。この追加ステップ以外に、復号化は、上記のように演算される。ビンに対するリクエスト１９が送信される先のビンバッファ２０が（すべてのビンが既に取り出されていたため、またはビンリクエストが受信された後に低遅延メカニズムが第１のステップにおいてすべてのビンを破棄したため）空の場合、連結されているビンデコーダ２２はビットバッファ３８などから１以上の新しい符号語を読み出す。
【００８０】
本発明の他の比較例において、遅延に対する測度（または遅延の上限）は符号語バッファ内のアクティブなバッファエントリに対する最大符号語長の合計であり、ここで、特定のバッファエントリの最大符号語長はそのバッファエントリと関連付けられる復号化されたビンに依存する。バッファエントリの最大符号語長は６個として例示されている。最初のバッファエントリが符号語を含む場合、この符号語がビットストリームに書き込まれるので、最初のバッファエントリが常に予約されたバッファエントリまたは空きのバッファエントリであることに改めて留意されたい。最大許容バッファ遅延（応用により決定される）がＤ個のビットとする。この最大バッファ遅延Ｄはエンコーダとデコーダの両方に既知である必要がある。本発明の好ましい実施形態において、最大バッファ遅延Ｄは応用によって固定される。本発明の他の好ましい実施形態において、最大バッファ遅延Ｄは、たとえば、ビットストリームに含まれる、データパケットのヘッダ（またはスライスヘッダ）またはパラメータ集合内で、ビットストリーム内部で信号伝達される。ビット、またはバイト、またはビットの倍数、またはバイトの倍数の単位で信号伝達できる。ビンエンコーダ１０が、符号語バッファ２９へ１以上の新しいバッファエントリの予約に対するリクエストを送信する場合、新しい符号語バッファエントリが予約される前に以下のプロセスが実行される（すなわち、複数の符号語バッファエントリが１リクエストによって予約される場合は、複数回実行される）。
【００８１】
現在アクティブなすべてのバッファエントリに対する最大符号語長と予約されるバッファエントリの最大符号語長との合計が最大バッファ遅延Ｄよりも大きい場合、すべてのアクティブなバッファエントリに対する最大符号語長と予約されるバッファエントリに対する最大符号語長との合計が最大バッファ遅延Ｄと等しいかそれより小さくなるまで、（予約された）最初のバッファエントリは、上記したプロセスによってフラッシュされる。一例として、図６（ｂ）を参考にする。現在アクティブなすべてのバッファエントリの最大符号語長の合計は２９である。最大バッファ遅延Ｄが３２と等しくなるように設定されていると仮定する。次のバッファエントリが、最大符号語長が３と等しいビンエンコーダ２によって予約される場合、２９＋３は３２より大きくないので、最初のバッファエントリはフラッシュされない。しかし、次のバッファエントリが、最大符号語長が７と等しいビンエンコーダ１によって予約される場合、２９＋７が３２より大きいので、最初のバッファエントリはフラッシュされる。予約されたバッファエントリのフラッシュは（対応するビンバッファに特定または任意の値を有するビンを追加することによって）上記のように行われる。
【００８２】
デコーダ側において、遅延の制約に従うために追加されたビンを破棄するために同様のプロセスが実行される。これによって、デコーダはビットバッファから読み出された符号語に対する最大符号語長をカウントするカウンタＣを維持する（このカウンタはビットバッファ内で維持することができる）。異なるビンデコーダと関連付けられる最大符号語長は異なる場合があることに留意されたい。カウンタＣはデータパケットの復号化の開始時に（たとえば、ゼロに）初期化され、符号語の読出し後に増加される。このカウンタは読み出された符号語の実際の長さではなく、その最大長さ分増加される。すなわち、符号語が特定のビンデコーダによって読み出され、特定のビンデコーダによって使用される符号語テーブルと関連付けられる最大符号語長がＬｘ（異なるビンデコーダは異なる最大符号語長に関連付けることができる）である場合、カウンタＣはＬｘだけ増加される。全体的なカウンタＣに加えて、各ビンデコーダ２２はカウンタＣｘを含み、このカウンタＣｘは、最後の符号語が対応するビンデコーダ２２によって読み出される前に符号語カウンタＣの値を格納する。すなわち、特定のビンデコーダ２２が新しい符号語を読み出す場合、最初のステップとしてそのカウンタＣｘはＣと等しく設定され、次に、符号語がビットバッファから読み出される。ビンに対するリクエスト１９が特定のビンバッファ２０へ送信され、全体的なカウンタＣと連結されているビンデコーダ２２のカウンタＣｘとの差（Ｃ−Ｃｘ）が最大バッファ遅延Ｄよりも大きい場合、特定のビンバッファ２０に現在格納されているすべてのビンが破棄され、無視される。この追加ステップ以外に、復号化は、上記のように演算される。ビンに対するリクエスト１９が送信される先のビンバッファ２０が（すべてのビンが既に取り出されていたため、またはビンリクエストが受信された後に低遅延メカニズムが第１のステップにおいてすべてのビンを破棄したため）空の場合、連結されているビンデコーダ２２はビットバッファ３８などから１以上の新しい符号語を読み出す。
【００８３】
したがって、複数のエントロピーデコーダ２２と選択部１８は、復元されるシンボルシーケンスの形成に参加しないようにシンボルシーケンスの接尾語を断続的に破棄するように構成することができる。２９。断続的破棄は、符号語エントリからのそれぞれのエントロピーデコーダの２つの連続した符号語検索間の複数のエントロピーデコーダによって符号語エントリから既に検索されている多数の符号語が所定基準を満たしている事象において実行することができる。次いで、複数のエントロピーエンコーダと符号語バッファは、現在転送されているがまだマッピングされていないシンボルを接頭語として有するドント―ケアシンボルによって、現在転送されているがまだマッピングされていないシンボルを有意シンボルシーケンスへ断続的に拡張し、これによって拡張されたシンボルシーケンスを符号語へマッピングし、これによって得られた符号語を予約された符号語エントリへ入力し、符号語エントリをフラッシュするように構成されてもよい。断続的拡張、入力、フラッシュは、多数の予約された符号語エントリと入力された符号語を有する多数の符号語エントリとの合計が所定基準を満たす事象において発生する。所定基準は複数のエンコーダ／デコーダペアの最大符号語長を考慮に入れることができる。
【００８４】
いくつかのアーキテクチャにおいて、符号語のインターリービングに対する上記した比較例によって、復号化の複雑さの点において欠点が生じる可能性がある。図７に示すように、すべてのビンデコーダ２２は、単一ビットバッファ３８から符号語（一般的な場合、可変長符号語）を読み出す。符号語は正しい順序で読み出される必要があるので、符号語の読出しは並列に実行することができない。これは、特定のビンデコーダは、他のビンデコーダが符号語の読出しを終了するまで待機する必要があることを意味する。そして、可変長符号語の読出しの複雑さが（部分的に並列化された）復号化プロセスの残部との関係で重要である場合、可変長符号語のこのアクセスが全体の復号化プロセスに対する障害になり得る。単一ビットバッファからのアクセスの複雑さを低減するために用いることができる、記載されている比較例のいくつかの変形があり、いくつかを以下に説明する。一比較例において、（たとえば、冗長度のない接頭語符号を表している）符号語の単一集合が存在し、ビンデコーダ２２ごとに使用される符号語の集合は、単一符号語集合の部分集合である。異なるビンデコーダ２２は単一符号語集合の異なる部分集合を使用できることに留意されたい。ビンデコーダ２２の一部によって使用される符号語集合が同じでも、ビンシーケンスとの関連付けは異なるビンデコーダ２２ごとに異なる。特定の比較例において、符号語の同一集合はすべてのビンデコーダ２２に対して使用される。すべてのビンデコーダに対する符号語の集合を含む単一符号語集合を部分集合として有して場合、符号語の解析はビンデコーダ外で行うことができることから、符号語アクセスの複雑さが低減できる。符号化プロセスは上記のプロセスに関して変更されない。改良された復号化プロセスを図８に示す。単一符号語リーダは、ビットストリーム４０からビット４６とともに供給され、一般的に可変長の、符号語を解析する。読み出された符号語４４は、先入れ先出しバッファを表す、符号語バッファ４３内へ挿入される。ビンデコーダ２２は、符号語バッファ４３へ１以上の符号語に対するリクエスト４１を送信し、このリクエストへの応答として１以上の符号語が符号語バッファから（順に）取り出され、対応するビンデコーダ２２へ送信される。本比較例によれば、潜在的に複雑な符号語の解析はバックグラウンドのプロセスで行うことができ、ビンデコーダを待機する必要がないことに留意されたい。ビンデコーダは既に解析された符号語へアクセスし、潜在的に複雑な符号語の解析はもはや全体的なバッファに対するリクエストの一部ではない。むしろ、既に解析された符号語はビンデコーダへ送信されるが、符号語のインデックスだけをビンデコーダに送信されるように実施することもできる。
【００８５】
［固定長のビットシーケンスのインターリービング］
ビンデコーダ２２が、グローバルビットバッファ３８から可変長符号語を読み出さない代わりに、グローバルビットバッファ３８から固定長のビットシーケンスを常に読み出しこれらの固定長のビットシーケンスをローカルビットバッファへ追加する場合に、デコーダの複雑さを低減するためのさらなる方法が得られる。ここで、各ビンデコーダ２２は分離したローカルビットバッファと連結されている。次いで、可変長符号語はローカルビットバッファから読み出される。これにより、可変長符号語の解析は、並行に実行することができ、ビットの固定長シーケンスのアクセスのみが同期的な方法で行われる必要があるが、ビットの固定長シーケンスのこのようなアクセスは通常は非常に迅速であり、これにより、全体的な復号化の複雑さは一部のアーキテクチャに対して低減される。
【００８６】
特定のローカルビットバッファへ送信されるビンの固定数は、異なるローカルビットバッファごとに異なる場合があり、ビンデコーダ、ビンバッファ、またはビットバッファにおける事象としてのあるパラメータに応じて、経時的に変化し得る。しかしながら、特定のアクセスによって読み出されるビット数は特定のアクセス中に読み出される実際のビットに依存しない。これは可変長の符号語の読出しに対する重要な違いである。ビットの固定長シーケンスの読出しはビンバッファ、ビンデコーダ、またはローカルビットバッファにおけるある事象によってトリガされる。一例として、連結されているビットバッファ内に存在しているビット数が所定のしきい値を下回った場合、新しい固定長のビットシーケンスの読出しをリクエストすることが可能である。ここでは、異なるしきい値を異なるビットバッファに対して使用することができる。エンコーダでは、固定長のビンシーケンスが同じ順序でビットストリーム内へ挿入されることを確実とすること必要があり、ここでは、デコーダ側でビットストリームから読み出される。この固定長シーケンスのインターリービングと、上で説明したものと同様の低遅延コントロールと、を組み合わせることも可能である。固定長のビットシーケンスのインターリービングのための好ましい実施形態を以下に説明する。
【００８７】
図９は、２つ以上のビンエンコーダに対する固定長のビットシーケンスをインターリーブする、本発明の実施形態に対する基本的なエンコーダ構造を示す図である。図５に示された実施例とは対照的に、ビンエンコーダ１０は単一の符号語バッファに連結されていない。その代わり、各ビンエンコーダ１０は、対応する部分的ビットストリームに対するビットを格納する、個別のビットバッファ４８と連結されている。すべてのビットバッファ４８はグローバルビットバッファ５１に連結されている。グローバルビットバッファ５１はビットライタ５３に連結されており、このビットライタ５３は、グローバルビットバッファから符号化／復号化の順序でビット５２を取り出し、取り出されたビット５４をビットストリーム５５へ書き込む。特定のビットバッファ４８または連結されているビンエンコーダ１０またはビンバッファ８におけるある事象において、ビットバッファ４８はそれによりいくつかのビット数がグローバルビットバッファ５１内に予約されるグローバルビットバッファ５１へリクエスト４９を送信する。固定長のビットシーケンスの予約に対するリクエスト４９は順に処理される。グローバルビットバッファ５１はある方法で先入れ先出しバッファを表す。すなわち、先に予約されたビットは先にビットストリームに書き込まれる。ここで、異なるビットバッファ４８は、既に符号化されたシンボルに基づいて経時的に変化することもできる異なる量のビットを予約することができるが、特定のリクエストによって予約されたビット数は、リクエストがグローバルビットバッファに送信される時点で知られていることに注意する。
【００８８】
本発明の特定の実施形態において、ビットバッファ４８とグローバルビットバッファ５１は、以下に説明されるように動作する。上述したように、図９の実施形態によれば、エントロピーエンコーダは可変長符号器であり、シンボルシーケンスをそれぞれの最大ビット長Ｌｘ以下の長さの符号語にマッピングする。どのＶＬＣ符号を使用するかは重要ではない。
【００８９】
特定のビットバッファ４８によって予約されるビットの量をＮｘと表記する。このビット数Ｎｘは、異なるビットバッファ４８に対して異なる値とすることができ、また、経時的に変化させることができる。本発明の好ましい実施形態では、特定のビットバッファ４８によって予約されるビット数Ｎｘは、経時的に固定される。
【００９０】
固定数Ｎｘのビット４９の予約は、ビットバッファ４８内のビット数Ｍｘ、予約リクエストのビット数Ｎｘ、ビットバッファ内に格納されることが意図される最小の符号語数Ｃｘ、および関連付けられた最大符号語長Ｌｘに基づいてトリガされる。
【００９１】
Ｃｘ＝０が最高の符号化効率を可能にすることに注意する。その理由は、最新の確率を用いて新しい固定長シーケンスを予約し、これが、さらなる結果においてフラッシュを生じさせる不必要な予約の可能性を低減するからである。とはいえ、ハードウェアベースのデコーダの実施のためには、より上位の値が望ましい。Ｃｘ＝１の場合、少なくとも１つの完全な符号語がビットバッファ内で利用可能であり、単一ビンリクエストに対して、ビットバッファを補充するためにパイプラインを停止させることなく、常に応答できる。また、各ビンエンコーダ１０が異なる最大符号語長Ｌｘに関連付けられ、Ｎｘ≦ｍａｘ（（Ｃｘ＋１）＊Ｌｘ−１，Ｌｘ）が満たされなければならないことに注意が必要である。
【００９２】
ビン７が特定のビンバッファ８に送信され、特定のビンバッファ８は空であり、かつ、Ｎｘビットのシーケンスが（ビンエンコーダを介して）特定のビンバッファに連結されているビットバッファ４８に対するグローバルビットバッファ内に予約されていない場合、連結されたビットバッファ４９は、グローバルビットバッファ５１へＮｘビットの予約に対するリクエスト４９を送信する。そうでなければ、ビン７が特定のビンバッファ８へ送信され、特定のビンバッファ８が空であり、唯一のＮｘビットのシーケンスが（ビンエンコーダを介して）特定のビンバッファに連結されているビットバッファ４８に対するグローバルビットバッファ内に予約され、（ビンエンコーダを介して）特定のビンバッファに連結されているビットバッファ４８の予約リクエストによって予約されたビット数Ｎｘと、このビットバッファ４８内に現在存在しているビット数Ｍｘとの差Ｎｘ−Ｍｘが、対応するビンエンコーダ１０に関連付けられた最大符号語長Ｌｘに、意図される符号語数Ｃｘを１増分したものが乗算された値より小さい値である場合（Ｎｘ−Ｍｘ＜（Ｃｘ＋１）＊Ｌｘ）、連結されたビットバッファ４９は、Ｎｘビットの予約のリクエスト４９をグローバルビットバッファ５１へ送信する。グローバルビットバッファ５１は、特定のビットバッファ４８に対してＮｘビットを予約し、次の予約のために、そのポインタを増加させる。Ｎｘビットがグローバルビットバッファに予約された後、ビン７がビンバッファ８に格納される。この単一ビンが符号語に関連付けられたビンシーケンスを既に表している場合、ビンエンコーダ１０は、ビンバッファ８からこのビンを取り出して、連結されているビットバッファ４８へ、対応する符号語４７を書き込む。そうでない場合（この単一ビンは符号語に関連付けられたビンシーケンスを表している）、ビンバッファ８が符号語に関連付けられたビンシーケンスを含むまで、さらなるビン７が、特定のビンバッファ８によって受容される。この場合、連結されているビンエンコーダ１０は、ビンバッファ８からビンシーケンス９を取り出して、対応する符号語４７を連結されているビットバッファ４８に書き込む。ビットバッファ４８において得られるビット数Ｍｘが、予約されたビット数Ｎｘより大きいかまたはこれと等しい場合、ビットバッファ４８に最初に書き込まれたＮｘビットは、グローバルビットバッファ５１内で、前に予約されたスペースへ挿入される。特定のビンバッファ８へ送信される次のビン７として、上記したのと同じプロセスが実行される。すなわち、新しい数のＮｘビットが、グローバルビットバッファ内に予約される必要があるかが最初にチェックされ（Ｎｘ−Ｍｘが（Ｃｘ＋１）＊Ｌｘより小さい場合）、次に、ビンはビンバッファ８等に挿入される。
【００９３】
言い換えれば、グローバルバッファ５１は、これらのトランシェエントリに対する予約がトリガされる順に応じた順番で、複数のエントロピーエンコーダに対して、トランシェエントリのシーケンス、すなわち、長さＮｘのビットシーケンスを予約する。次に、トリガは、上のように行われる。すなわち、複数のエントロピーエンコーダ１０とそれぞれの個別のバッファ４８が、選択部６により複数のエントロピーエンコーダ１０へ転送されたシンボルシーケンスのシンボルがそれぞれのエントロピーエンコーダ１０において符号語にマッピングされる新しいシンボルシーケンスの初期部分になるときに、エントロピーエンコーダのそれぞれの１つに対してビット長Ｎｘのトランシェエントリの予約４９をトリガするように協働し、その際、（新しいシンボルの初期部分の）それぞれの時点で、それぞれのエントロピーエンコーダ１０に対するグローバルバッファ５１内に現在予約されているビット数マイナスそれぞれのエントロピーエンコーダ１０の個別のバッファ４８、または、予約されたＮｘビットの中間の部分書き込みの場合におけるそれぞれのエントロピーエンコーダに対するグローバルバッファにおいて、現在バッファリングされているビット数Ｍｘが、それぞれのエントロピーエンコーダに対するさらなる符号語の意図される最小数Ｃｘプラス１にそれぞれの最大ビット長Ｌｘを乗算したもの、すなわち、（Ｃｘ＋１）・Ｌｘを収容するには不十分であることを前提としている。
【００９４】
ビットライタ５３は、グローバルビットバッファの固定長のビットシーケンスを、それらが予約された順に書き込む。グローバルビットバッファ５１における最初の固定長エントリがグローバルビットバッファに実際に挿入された固定長ビットシーケンスを含む場合（すなわち、予約だけではない場合）、ビットライタ５３は、グローバルビットバッファ５１からこのビットシーケンス５２に対するビットを取り出し、ビット５４をビットストリームに書き込む。このプロセスは、グローバルビットバッファにおける最初の固定長エントリが予約されたまたは空きのエントリを表すまで、繰り返される。グローバルビットバッファにおける最初の固定長のエントリが予約されたエントリを表す場合、ビットライタ５３は、このエントリがビットストリーム５５へさらなるビット５４を書き込む前に実際のビットで埋め込まれるまで、待機する。
【００９５】
すなわち、複数のエントロピーエンコーダ１０の個別のバッファ４８は、ビットストリーム４７のバッファリングされた部分を出力して、それぞれの予約されたトランシェエントリをグローバルバッファ５１内に満たし、グローバルバッファ５１は、満たされたトランシェエントリをシーケンシャルに取り出して、複数のビットストリームの、ビットストリームのトランシェの単一のストリーム５２を得る。この単一ストリーム５２には、トランシェがインターリーブにより散在する。すなわち、ビットライタ５３の機能性は、グローバルバッファ５１内に含まれるものとする。
【００９６】
データパケットの最後に、ビンバッファは、上記したようにフラッシュされる。さらに、ビットバッファは、グローバルビットバッファ内のすべての予約されたバッファエントリが埋まり、ビットストリームに書き込まれるまで、特定のまたは任意の値を有するビットを追加することによってフラッシュする必要がある。
【００９７】
図１０に、グローバルビットバッファ５１の可能な状態の２つの例が示さる。例（ａ）において、異なるビットバッファ／ビンエンコーダが異なる数のビットを予約している場合が図示されている。グローバルビットバッファは、実際に書き込まれた固定長のビットシーケンスを有する３つのエントリと予約された固定長のビットシーケンスを有する４つのエントリを含む。最初の固定長エントリは（ビットバッファ／ビンエンコーダ２によって挿入されたばかりであるはずの）実際のビットを既に含む。このエントリ（すなわち、対応する８ビット）は、取り出され、ビットストリームに書き込まれる。次のエントリは、ビンエンコーダ３に対して１０個のビットを予約するが、実際のビットはまだ挿入されていない。このエントリはビットストリームに書き込むことはできず、実際のビットが挿入されるまで待機する必要がある。第２の例（ｂ）では、すべてのビットバッファ／ビンエンコーダが、同一個数のビット（８ビット）を予約している。グローバルビットバッファは、８ビットシーケンスに対して、４個の予約と、３個の実際に書き込まれた８ビットシーケンスを含む。最初のエントリはビンエンコーダ３に対して８ビットの予約を含む。任意の新しいビットをビットストリームに書き込むことができる前に、ビットライタは、ビットバッファ／ビンエンコーダ３がこの予約されたエントリに８ビットの実際の値を書き込むまで、待機する必要がある。
【００９８】
図１１は、固定長ビットシーケンスをインターリーブする本発明の実施形態に対する基本的なデコーダ構造を示す図である。図７に示される実施形態とは対照的に、ビンデコーダ２２は、単一ビットバッファに連結されていない。その代わり、各ビンデコーダ２２は分離したビットバッファ５８に連結されており、このビットバッファ５８は対応する部分的ビットストリームからビットを格納する。すべてのビットバッファ５８はグローバルビットバッファ６１に連結されている。ビットストリーム６３からのビット６２はグローバルビットバッファ６１内へ挿入される。特定のビットバッファ５８または連結されているビンデコーダ２２またはビンバッファ２０内のある事象が発生すると、ビットバッファ５８は、それによりビットの固定長シーケンス６０がグローバルビットバッファ６１から取り出され、特定のビットバッファ５８へ挿入される、グローバルビットバッファ６１へリクエスト５９を送信する。固定長ビットシーケンスに対するリクエスト５９は順に処理される。グローバルビットバッファ６１は先入れ先出しバッファを表し、グローバルビットバッファへ先に挿入されたビットは先に取り出される。異なるビットバッファ５８は異なるビット量をリクエストすることができ、この量は既に復号化されているシンボルに基づいて経時的に変化し得るが、特定のリクエストによってリクエストされるビット数はリクエストがグローバルビットバッファへ送られる時点で知られることに留意されたい。符号語はビットストリームから直接読み出すこともできるので、グローバルビットバッファ６１は必ずしも必要とされないことに留意されたい。グローバルビットバッファ６１は、主として、プロセッシングチェーンの異なる態様をはっきり分けるために図示されている。ビットバッファ５８は、エントロピーデコーダ２２に含まれるものとすることもできる。
【００９９】
本発明の特定の実施形態において、ビットバッファ５８とグローバルビットバッファ６１は以下に説明されるように演算する。特定のビットバッファ５８によってリクエストされ読み出されるビットの量はＮｘと表記され、エンコーダ側で対応するビットバッファによってグローバルビットバッファへ書き込まれるビット量と等しい。このビット数Ｎｘは異なるビットバッファ５８ごとに異ならせることができ、また、経時的に変化し得る。本発明の好ましい実施形態において、特定のビットバッファ５８によってリクエストされかつ読み出されるＮｘ個のビット数は、経時的に固定される。
【０１００】
ビットの固定数Ｎｘ個６０の読出しは、ビットバッファ５８内のビット数Ｍｘ個、ビットバッファ内への格納が意図される最小符号語数Ｃｘ、および関連付けられた最大符号語長Ｌｘに基づいてトリガされる。各ビンデコーダ２２が異なる最大符号語長Ｌｘに関連付けられ、Ｎｘ≦ｍａｘ（（Ｃｘ＋１）＊Ｌｘ−１，Ｌｘ）を満たすべきであることに注目する。
【０１０１】
ビン１９に対するリクエストが特定のビンバッファ２０に送信され、特定のビンバッファ２０が空であり、かつ、特定のビンバッファ２０に（ビンデコーダを介して）連結されているビンバッファ５８内のビット数Ｍｘ個が、対応するビンデコーダ２２に関連付けられる最大符号語長Ｌｘに意図される符号語数Ｃｘ個を１増分した値を乗算したものを下回る場合（Ｍｘ＜（Ｃｘ＋１）＊Ｌｘ）、連結されたビットバッファ５８はグローバルビットバッファ６１へ新しいＮｘ個のビットシーケンスに対するリクエスト５９を送信する。このリクエストへの応答として、最初のＮｘ個のビットがグローバルビットバッファ６１から取り出され、このＮｘ個のビットのシーケンス６０はこのリクエストが送信された元のビットバッファ５８へ送信される。最終的に、このＮｘ個のビットのシーケンスは対応するビットバッファ５８へ加算される。次に、次の符号語５７がこのビットバッファから読み出され、連結されているビンデコーダ２２は関連付けられたビンシーケンス２１を連結されているビンバッファ２０内へ挿入する。ビンに対する元のリクエスト１９に対する最終応答として、最初のビンはビンバッファ２０から取り出され、この復号化されたビン２５はビンバッファ選択部１８へ送られる。次のビンリクエスト１９が特定のビンバッファ２０へ送られ、このビンバッファが空でない場合、次のビットはビンバッファ２０から取り出される。ビンバッファ２０が空であるが、連結されたビンバッファ５８内のビット数Ｍｘ個が、関連付けられる最大符号語長Ｌｘに意図される符号語数Ｃｘを１増分した値を乗算したものに等しいかそれより大きい場合（Ｍｘ≧（Ｃｘ＋１）＊Ｌｘ）、次の符号語がビットバッファから読み出され、新しいビットシーケンスがビンバッファへ挿入され、そこから第１のビットが取り出されてビンバッファ選択部へ送信される。ビンバッファ２０が空でありかつ連結されているビンバッファ５８内のビット数Ｍｘ個が、関連付けられた最大符号語長Ｌｘに意図される符号語数Ｃｘを１増分した値を乗算したものを下回る場合（Ｍｘ＜（Ｃｘ＋１）＊Ｌｘ）、次のＮｘ個のビットシーケンスがグローバルビットバッファ６１から読み出され、連結されたビットバッファ５８内へ挿入された場合、次の符号語がビットバッファから読み出され、新しいビンシーケンスがこのビンバッファへ挿入され、このシーケンスの第１のビンが取り出されてビンバッファ選択部へ送信される。このプロセスは、すべてのソースシンボルが復号化されるまで反復される。
【０１０２】
言い換えれば、グローバルバッファ６１は、複数のビットストリームのビットストリーム６０のトランシェの単一ストリーム６２を受け取る構成であり、この単一ストリーム６２内に、トランシェがインターリーブされて散在している。ここで、グローバルバッファ６１は、トランシェに対するリクエスト５９が発生する順に依存して、グローバルバッファから複数のエントロピーデコーダにトランシェをシーケンシャルに分配するように構成される。特に、複数のエントロピーデコーダ２２の各々が複数のエントロピーデコーダから選択部１８によって検索されたときに復元されるシンボルシーケンス２５のシンボルのうち、それぞれのエントロピーデコーダによってそれぞれのビットストリーム５７内で新しい符号語からマッピングされる新しいシンボルシーケンスの初期部分を形成するシンボルに遭遇するときに、グローバルバッファ６１からそれぞれのビットストリームのそれぞれのビット長Ｎｘのトランシェに対してそれぞれのリクエスト５６、５９をトリガし、それぞれの時点で、グローバルバッファ６１によってそれぞれのエントロピーデコーダ２２へ分配されているが、それまで、新しい符号語を含めて、エントロピーデコーダ２２によって未だにエントロピー復号化されていないそれぞれのビットストリーム５７のビット数Ｍｘ個が、それぞれのエントロピーデコーダ２２に対するさらなる符号語の意図される最小数Ｃｘプラス１にそれぞれの最大ビット長Ｌｘを乗算したもの、すなわち、Ｃｘ＋１・Ｌｘ未満であることを前提としている。
【０１０３】
データパケットの最後において、リクエストされたソースシンボルを復号化するために必要とされる以上のビンおよび／またはビットがビンバッファおよび／またはビットバッファに挿入されることもある。ビンバッファ内の残留ビンとビットバッファ内の残留ビットは破棄され、無視される。
【０１０４】
［低遅延制約を有する固定長のビットシーケンスのインターリービング］
固定長のビットシーケンスのインターリービングによるエントロピーエンコーダおよびデコーダに対する記載されている実施形態は、上記されているエンコーダバッファ遅延を制御するための方式と組み合わせることもできる。基本的な概念は、上記の遅延制御を有する実施形態と同じである。遅延または遅延の上限に関連した測度（以下参照）が指定されたしきい値を超えた場合、最初に予約されたバッファエントリは、（データパケットの最後に使用したものと同様のメカニズムを用いて）対応するビンバッファをフラッシュし、予約された固定長のバッファエントリのすべてのビットを埋めるためにさらなるビットを潜在的に書き込むことによって、埋められる。このようなメカニズムによって、関連付けられた遅延測度が指定されたしきい値を下回るまで、待機するバッファエントリの数が削減される。デコーダ側において、遅延制約を遵守するために、エンコーダ側で挿入されていたビンおよびビットを破棄する必要がある。ビンおよびビットを廃棄するために、基本的に、エンコーダ側と同様のメカニズムを使用することができる。
【０１０５】
本発明の好ましい実施形態において、遅延（または遅延の上限）の測度は、グローバルビットバッファ内のアクティブなバッファエントリにおけるビット数であり、ここで、アクティブなバッファエントリの数は、予約された固定長バッファエントリの数と、既に書き込まれたビットを含む固定長のバッファエントリの数と、の合計である。なお、ビットライタ５３にさらなる制約が適用される。グローバルビットバッファ５１内の第１の固定長エントリが固定長ビットシーケンスを含む場合はいつでも（すなわち、予約されているだけではない）、ビットライタ５３がビットの書き込みを開始する低遅延制約なしの場合とは対照的に、このプロセスは次の固定長予約リクエスト４９がトリガされるまで遅延し、その後、そのリクエスト４９の直前に実施される。理由は以下の通りである。ビットライタ５３がグローバルバッファ５１を常に読み出すことが可能になれば、エンコーダおよびデコーダは、ビンレベルで、すなわち、共通のビンシーケンスのビンごとに、低遅延制約をチェックする必要がある。しかしながら、これは、遅延などに関してほとんどペナルティなしで回避できるが、手間のかかる作業である。
【０１０６】
最大許容バッファ遅延（応用により決定されるが）をＤ個のビットとする。この最大バッファ遅延Ｄは、エンコーダとデコーダの両方に知られている必要がある。本発明の好ましい実施形態において、最大バッファ遅延Ｄは、応用によって固定される。本発明の他の好ましい実施形態において、最大バッファ遅延Ｄは、ビットストリームの内部、たとえば、ビットストリームに含まれる、データパケットのヘッダ（またはスライスヘッダ）またはパラメータ集合内で信号伝達される。ビット、またはバイト、またはビットの倍数、またはバイトの倍数の単位で信号伝達できる。ビンエンコーダ１０がグローバルビットバッファ５１へ新しい固定長のビットシーケンスの予約に対するリクエストを送信する場合、新しい固定長のバッファエントリが予約される前に、次のプロセスが実行される。
【０１０７】
グローバルビットバッファ内のアクティブなバッファエントリ内のビット数と現在の予約リクエストによって予約されたビット数との合計が最大バッファ遅延Ｄより大きい場合、（予約された）最初のバッファエントリは、グローバルビットバッファ内のアクティブなバッファエントリ内のビット数と、現在の予約リクエストによって予約されたビット数との合計が最大バッファ遅延Ｄと等しいかまたはこれより少なくなるまで、以下に記載されるプロセスによってフラッシュされる。予約された固定長バッファエントリのフラッシュはデータパケットの最後におけるフラッシュに類似している。対応する第１のバッファエントリを予約しているビットバッファ４８に連結されているビンエンコーダ１０は、フラッシュされる。これは、対応するビンバッファ８が空でない場合、特定のまたは任意の値を有するビンは、得られたビンシーケンスが符号語に関連付けられるビンシーケンスを表すまで、連結されたビンバッファ８に追加され、この符号語は、その後、対応するビットバッファ４８内へ挿入されることを意味する。前述したように、ビンバッファにビンを追加するための１つの好ましい方法は、最短の可能な符号語を生成するビンを追加することである。フラッシュされるビットバッファがグローバルビットバッファ６１から固定長ビットシーケンスをリクエストしたものと同じである場合には、ビットバッファはリクエスト５９をトリガした単一ビンだけを格納し、これはフラッシュされない。対応するビットバッファ４８内で得られたビット数Ｍｘ個が固定長シーケンスのビット数Ｎｘ個より小さい場合、ＭｘがＮｘに等しくなるまで、できるだけ多くの特定のまたは任意のビットが追加される。その後（ビンが追加されても追加されなくても）、ＭｘがＮｘに等しいかそれより大きくなり、ビットの１つの固定長シーケンスがグローバルビットバッファ５１内の対応する予約されたスロットへ書き込まれる（そして、固定長予約リクエスト４９の直前、またはビットストリームの最後のフラッシュ処理プロセスにより、ビットライタ５３の次の処理の間、ビットストリーム５５へ書き込まれる）。すなわち、それぞれのビンバッファ内に既存のビンを詰め込むことにより、たとえば、新しい符号語の発生の実施が原因で、ビット数がＮｘを超える場合、それぞれのビットバッファ４８を完全にフラッシュする必要はない。むしろ、これらのビットはそれぞれのビットバッファ４８内に残り、さもなければ、ビットレートにさらなる歪みをきたすとされるビットの詰め込みは必要ない。
【０１０８】
すなわち、換言すれば、グローバルバッファ５１は、予約されてから最も時間が経過して既に満たされているトランシェエントリを含めてそのエントリから、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリまで、ただしそのエントリは除いて、複数のエントロピーエンコーダ１０とそれぞれの個別のバッファ４８のいずれかによってそれぞれの予約のトリガ４９のときにトランシェエントリの単位で、順番に、書き込み済みのトランシェエントリの取り出しを実行するように構成される。
【０１０９】
グローバルバッファ５１は、複数のエントロピーエンコーダとそれぞれの個別のバッファのいずれかによるそれぞれの予約のトリガ４９のときに、以下を行うように構成される。
【０１１０】
第１に、グローバルバッファ５１は、予約されてから最も時間が経過して既に満たされているトランシェエントリを含めてそのエントリから、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリまで、ただしそのエントリは除いて、トランシェエントリのうち書き込み済みトランシェエントリの取り出しを終わらせる。
【０１１１】
第２に、グローバルバッファ５１は、予約されたトランシェエントリによってカバーされたグローバルバッファ５１内のビット数プラスそれぞれの予約−トリガ型エントロピーエンコーダ１０に対して、リクエストされたトランシェエントリのビット長Ｎｘが最大バッファ遅延Ｄより大きいかどうかをチェックする。
【０１１２】
第３に、チェック結果が否定されれば、グローバルバッファ５１は、それぞれの予約−トリガ型エントロピーエンコーダ２２に対して、ビット長Ｎｘのそれぞれの新しいトランシェエントリを予約する。
【０１１３】
しかしながら、チェック結果が肯定であれば、予約されてから最も時間が経過してもまだ満たされてないトランシェエントリを予約しているエントロピーエンコーダ１０が、グローバルバッファ５１により、選択部６によりそのエントロピーエンコーダに転送させ、あれば、未だエントロピー符号化されていないシンボルを有効シンボルシーケンスへ拡張させ、対応する個別のバッファによってバッファリングされるように、有効シンボルシーケンスを符号語にマッピングさせる。その後、予約されてから最も時間が経過してもまだ満たされてないトランシェエントリが、予約されたエントロピーエンコーダ２２の個別のバッファ４８内で現在バッファリングされているビット数Ｍｘ個がこのエントロピーエンコーダ２２に対するビット長Ｎｘより小さいかどうかをチェックし、小さい場合、Ｎｘ−Ｍｘを現在バッファリングされているＭｘ個のビットへ追加する。有効シンボルシーケンスへの拡張または任意の追加が必要か否かにかかわらず、予約されてから最も時間が経過してもまだ満たされてないトランシェエントリを予約しているエントロピーエンコーダ２２の個別のバッファ４８からＮｘ個のバッファリングされたビットは、これを書き込むために、予約されてから最も時間が経過してもまだ満たされてないトランシェエントリ内に出力され、その際、出力されたＮｘ個のバッファリングされたビットを上回る可能性のなる付加的にバッファリングされたビットを個別のバッファ内に残す。
【０１１４】
その後、トランシェエントリへのリクエストを最終的に処理するために低遅延基準を再度チェックする前に、一方で少なくとも１つの満たされてから最も時間が経過しているトランシェエントリ（少なくともフラッシュによって満たされてから最も時間が経過しているものを含む）がグローバルビットバッファ５１から出力され、その後、低遅延基準が再びチェックされ、以下同様に行われる。
【０１１５】
デコーダ側では、遅延制約を遵守するために追加されたビンおよびビットを破棄するために、同様のプロセスが実行される。これにより、デコーダは、グローバルビットバッファから読み出されたビットをカウントするカウンタＣを維持する（このカウンタは、グローバルビットバッファ内で維持することができる）。カウンタＣは、データパケットの復号化の開始時に（たとえば、ゼロに）初期化され、固定長のシーケンスが読み出された後に増加される。Ｎｘビットの固定長シーケンスがグローバルビットバッファ６１から読み出された場合、カウンタＣはＮｘ増加される。全体カウンタＣに加えて、各ビットバッファ５８は２つのカウンタＣｘ１とＣｘ２を含み、これらのカウンタは、対応するビットバッファ５８へ読み出された最後の２つの固定長ビットシーケンスの前に、ビットカウンタＣの値を格納する。２つ未満の固定長ビットシーケンスが特定のビットバッファ５８内にあり、Ｃｘ１が先に読み込まれていた固定長ビットシーケンスに対応している全体カウンタ値を常に格納することを確かなものにする。これは、ビットがビットバッファ５８から除かれたとき、Ｃｘ２はＣｘ１になることができ、その後、Ｃｘ２は定義付けされないことを示唆している。特定のビットバッファ５８が新しい固定長のビットシーケンスを読み出す場合、そのカウンタＣｘ１またはＣｘ２は、ビットバッファ５８が空であるかどうか（Ｃｘ１）または空でないかどうか（Ｃｘ２）に応じて、第１のステップとして、Ｃに等しく設定され、その後、固定長ビットシーケンスがグローバルビットバッファ６１から読み出される。固定長ビットシーケンス５９に対するリクエストがグローバルビットバッファ６１へ送信され、全体カウンタＣと、すべてのビットバッファの最小値Ｃｘ１を有するビットバッファ５８のカウンタＣｘ１と、の差（Ｃ−Ｃｘ１）が、最大バッファ遅延Ｄより大きい場合、対応するビンバッファ２０に現在格納されているすべてのビンおよびＣｘ１に関連付けられた固定長シーケンスに由来する連結されたビットバッファ５８に格納されるすべてのビットが、切り捨てられ無視される。この追加のステップ以外に、復号化は、上記のように演算される。ビンに対するリクエスト１９が送信される先のビンバッファ２０が、（すべてのビンが既に取り出されていたため、またはビンリクエストが受信された後に低遅延メカニズムが第１のステップにおいてすべてのビンを破棄したため）空である場合、連結されているビンデコーダ２２は、連結されているビットバッファ５８から新しい符号語を読み出すことを試みる。ビットバッファ５８内のビット数が最大符号語長より少ない場合、符号語が読み出される前に、グローバルビットバッファ６１などから新しい固定長ビットシーケンスが読み出される。
【０１１６】
言い換えれば、デコーダは、エントロピーデコーダごとに、グローバルバッファ６１からそれぞれのエントロピーデコーダ２２への分配から最も時間が経過したトランシェについて、グローバルバッファ６１から複数のエントロピーデコーダ２２へ分配させたビット数を
ロギングする。また、デコーダは、それぞれのビット長Ｎｘのトランシェに対するそれぞれのリクエストがトリガされる度ごとに、一方で、それぞれのリクエストに至るまで、グローバルバッファ６１から複数のエントロピーデコーダ２２へ分配させたグローバルビット数と、他方で、ロギングされた最小ビット数Ｃｘ１と、の差が、最大バッファ遅延Ｄより大きいかどうかを判断する。大きい場合、グローバルバッファ６１からロギングされた最小数がロギングされていたエントロピーデコーダ２２まで分配させた予約から最も時間の経過したトランシェと、ロギングされた最小数が選択部１８によりロギングされているエントロピーデコーダ２２から未だ検索されていない任意のシンボル２１と、を切り捨てる。
【０１１７】
前述した低遅延の実施形態はＣｘ＝０による実行されても好適かつ有利であろうことは言うまでもない。
【０１１８】
［低遅延制約を有する固定長ビットシーケンスと削減されたビットレートオーバーヘッドのインターリーブ］
前述の方式は、低遅延操作がもたらすビットレートオーバーヘッドを削減するために、さらに最適化される。同程度に可能性のあるビンに対して適切であり、かつ各ビン７から１ビット長の符号語４７を生成する特定のビンエンコーダ１０が存在すると想定し、これが他のビンエンコーダ１０より高頻度で使用されるとさらに想定する。正確に言えば、このようなより高頻度で使用されるビンエンコーダ１０は、ビンバッファ選択部６によって、より高頻度にビン７を設けることができる。さらに、このようなより高頻度で使用されるビンエンコーダ１０は、より多くの符号語４７を生成し、したがって、グローバルビットバッファ５１へ転送されるより多くの固定長ビットシーケンス５０を生成することもできる。同程度に可能性あるビンに対してこのようなより高頻度で使用されるビンエンコーダ１０を有するコーデック設定において、前のセクションで説明したようなインターリーブ方式への変更は、低遅延制約によって生じるフラッシュ動作に由来するビットレートオーバーヘッドを削減することができる。上記方式に必要とされる変更を以下に説明する。
【０１１９】
ビンエンコーダ１０が、グローバルビットバッファ５１へ、新たな固定長ビットシーケンスの予約に対するリクエストを送信する場合、低遅延基準がチェックされ、この基準を外す限り、フラッシュ動作が実行される。新規発明は、前のセクションの方式と全く同じ手順を使用するが、同程度に可能性のあるビンに対するより高頻度で使用されるビンエンコーダ１０が新しい固定長ビットシーケンスの予約に対するリクエストを送信する場合において、さらなる処理ステップをグローバルビットバッファ５１に追加する。低遅延基準をチェックする代わりに、グローバルビットバッファ内のアクティブなバッファエントリのビット数プラス現在の予約リクエストにより予約されるビット数が、定義済みの閾値Ｄ２より大きいかどうかがチェックされる（Ｄ２＜Ｄ）。
【０１２０】
大きい場合、以下の処理ステップが実行される。
・グローバルビットバッファ５１内で予約されてから最も時間が経過してもまだ満たされていないトランシェエントリに属しているビンエンコーダ１０が決定される（なお、ビンエンコーダ１０は１ビットの符号語４７しか生成しないので、等しくあり得るビンに対してより高頻度で使用されるビンエンコーダ１０であるはずがなく、よって、属しているビットバッファ４８は空である必要がある）。グローバルビットバッファ５１内で予約されてから最も時間が経過してもまだ満たされていないトランシェエントリに属しているビンバッファ８内のビンは、（符号語、好ましくは、短い符号語を作成するために、任意のまたは特定のビンを追加することによって、）符号語４７が生成されるまでに終了し、この符号語が、対応するビットバッファ４８に追加される。次のステップにおいて、このビットバッファのコンテンツが同程度に可能性のあるビンに対してより高い頻度で使用されるビンエンコーダ１０の空のビットバッファ４８へ移動し、グローバルビットバッファ５１内の予約されてから最も時間の経過したトランシェエントリの所有権は、同程度に可能性のあるビンに対してより高頻度で使用されるビンエンコーダ１０へ移動する。その後、新しい固定長ビットシーケンスを予約することがまだ必要かどうかがチェックされ、必要であれば、手順は前のセクションで説明した方式と全く同様に続行される（低遅延基準のチェック、潜在的バッファのフラッシュ、符号語予約）。
【０１２１】
さもなければ、すなわち、グローバルビットバッファのアクティブバッファエントリ内のビット数プラス現在予約リクエストによって予約されるビット数が定義済みの閾値Ｄ２より大きくないことが分かった場合（Ｄ２＜Ｄ）、
・手順は前のセクションにおいて説明した方式と全く同様に続行される（低遅延基準のチェック、潜在的バッファのフラッシュ、符号語予約）。
【０１２２】
図６４〜図６８は、すべてのビンエンコーダおよびすべての予約に対して、例としてＬｘ＝８とし、バッファ書き込み例による４つのビンコーダの設定の一例を使用して、上記の手順を示している。インデックス１を有するビンエンコーダ１０は、より高頻度で使用されるビンエンコーダである必要がある。
【０１２３】
第１に、固定長ビットシーケンスの予約に対するリクエストが、インデックス１を有するビンエンコーダによってもたらされる（図６４参照）。結果的に、グローバルビットバッファ５１内のアクティブバッファエントリ内のビット数プラス現在予約リクエストによって、予約されるビット数が定義済みの閾値Ｄ２より大きいかどうかがチェックされる。この実施例では、閾値Ｄ２より大きい場合を示しており、よって、予約されてから最も時間が経過してもまだ満たされていないグローバルビットバッファの予約に係るビンエンコーダがフラッシュされる。この実施例において、これはビンエンコーダ３である（図６４参照）。フラッシュプロセスによって生成される符号語は、図６５に示すように、インデックス３を有するビットバッファへ転送される。これに続いて、ビットバッファ３のコンテンツはビットバッファ１へ移動し（このような状況においては、常に空である。図６６参照）、インデックス３を有するビンエンコーダの予約は、インデックス１を有するビンエンコーダへ切り替わる（図６７参照）。最後のステップとして、予約のリクエストが必要かどうかの初期チェックが反復される（図６８参照）。すなわち、新しく書き込まれたビットバッファ１が、Ｌｘ個の予約ビットだけが新しいリクエストが必要であるとされたそれぞれのエントロピーエンコーダへシフトしている間、エントロピーエンコーダ１に対するＬｘ−ＭｘがＣｘおよびＬｘに応じて上述の基準を満たすことを意味する、それほど多くのビットを得たかどうかチェックされる。得られていれば、プロセッシングは、前のセクションで説明したように続行される（低遅延基準のチェック、潜在的バッファのフラッシュ、符号語予約）。得られていない場合、ビンエンコーダ１から４のいずれかにおいて次の符号語の準備が整うまで、予約に対する新しいリクエストは発生しない。
【０１２４】
上記変形例では、強制符号語終了の数は増加するが、閾値Ｄ２が（Ｄ、ビンエンコーダ１０の特性、およびビンバッファ選択部６がどのようにビンをビンエンコーダ１０へ分配させるかの統計に応じて）適切に選択された場合、後に続くトランシェエントリ終了の数は減少し、よって、全体的なビットレートオーバーヘッドが削減される。
【０１２５】
デコーダの実施についての変更も、以下のように必要である。固定長ビットシーケンス５９に対するリクエストが、同程度に可能性のあるビンに対してより高頻度で使用されるビンデコーダ２２によって、グローバルビットバッファ６１へ送信された場合、全体的なカウンタＣと、すべてのビットバッファのＣｘ１の最小値を有するビットバッファ５８のカウンタＣｘ１と、の差（Ｃ−Ｃｘ１）が評価される：
【０１２６】
その値が定義済みの閾値Ｄ２より大きい場合、
・対応するビンバッファ２０内に現在格納されているすべてのビンは切り捨てられるが、Ｃｘ１に関連付けられる固定長シーケンスに由来する連結されたビットバッファ５８内に格納されているすべてのまだ消費されないビットが同程度に可能性のあるビットに対するより高頻度で使用されるビンデコーダ２２のビットバッファ５８へ移動される。すなわち、より高頻度で使用されるビンデコーダ２２のビットバッファ５８が、今度は、ＣｘとＬｘに応じて上述基準に基づいて符号語を復号化するために十分な未消費ビットを含んでいるかどうかがチェックされる。含んでいる場合、手順は前のセクションにおいて説明したように続行される（低遅延基準のチェック、ビンとビットの潜在的切り捨て、固定長ビットシーケンスの読出し）。
【０１２７】
さもなければ、その値が最大バッファ遅延Ｄより大きい場合、同様の処理が前のセクションにおけるように続行される（低遅延基準のチェック、ビンとビットの潜在的切り捨て、固定長ビットシーケンスの読出し）。
【０１２８】
［インターリーブされた固定長ビットシーケンスの処理最適化］
低遅延制約の有無に応じた、および／または、デコーダに対する最小符号語保証をもつ、固定長ビットシーケンスのインターリーブによるエントロピーエンコーダおよびデコーダに対する図９〜１１に記載された実施形態は、デコーダ並列化処理を容易にするための以下の方法で拡張することができる。低遅延制約に関して上述したエンコーダバッファ遅延を制御するための方式に組み合わせた下記の実施形態が特に有利である。
【０１２９】
ここで記載した実施形態は、デコーダにおいて最適化された処理のための仕組み（スキーム）を定義付ける。これは、低遅延の場合のみならず、デコーダによって処理されるべき「固定区間」または「チャンク」サイズが存在する他のどのような場合でも適用できる。このプロセスは、「チャンク」に対する処理の仕組みに基づくデコーダでの簡易化処理を可能にし、特別なビットストリーム内信号伝達または帯域外の明示的または暗黙の信号伝達として最も明確に記載される。「トランシェ処理の仕組み」は「チャンク」内でどのくらい多くの特定「パイプ」のトランシェが続くかをデコーダへ示す。この特定の仕組みは、たとえば、ラウンドロビン方式で、「パイプデコーダ」を「書き込む」ために使用される。この仕組みは、「チャンク」の最後まで適用される。これによって、デコーダが処理される次のパイプを検出せずに、符号語の直線的処理を可能にする。これは処理される次のパイプの検出をもはや必要としないので、デコーダの実施を簡易化する。
【０１３０】
エンコーダの実施形態を図６１に示し、デコーダの実施形態を図６２に示す。ほぼすべての要素が図９および図１１に示したものと同じであり、よって、これらの図面に関して記載した実施形態の上記説明を参照されたい。ただし、フラグメンタイザ２００は、ビットライタ５３と、最終的に転送されるビットストリーム５５が適用される出力と、の間に配置され、デフラグメンタイザ２０２は、転送されたビットストリーム６３が入力する対応する入力と、グローバルビットバッファ６１に代えて個別バッファ５８と、の間に配置される。
【０１３１】
フラグメンタイザ２００は、ビットストリーム６２として示すトランシェの単一のストリームを、チャンクへフラグメンタイズ（断片化）する。１つのこのようなチャンク２０４を図６３に示す。各チャンク２０４は、複数のエントロピーエンコーダ番号、すなわち、それぞれの部分的ビットストリームＰ番号のトランシェが、ビットストリーム６３を形成するチャンクのシーケンスを取得するために、どのようにそれぞれのチャンク２０４に対して分配されるかについての情報を含むヘッダ２０６を有するデフラグメンタイザ２０２を伴う。ヘッダ情報に対する形式例は以下に説明され、参照番号２０８で例示する。具体的には、以下に説明するように、フラグメンタイザは、トランシェの単一ストリームをチャンクへフラグメンタイズする際、トランシェの単一ストリーム内のそれぞれのチャンクのトランシェの元の順番を、そのトランシェ内のそれぞれのチャンクに付随の情報により示される所望の順番に変更する。
【０１３２】
デコーダは、チャンクのヘッダ２０６内の情報を使用してビットストリーム６３が表すチャンクのシーケンスのチャンク内のトランシェを分配する構成のデフラグメンタイザ２０２を備える。個別のチャンクを形成する際に、符号化側が各個別の部分的ビットストリーム６０に対してトランシェの間で順序を維持したように、デフラグメンタイザ２０２は、エントロピーデコーダおよび部分的ビットストリーム６０のそれぞれとのトランシェの関連付けに応じて、チャンク内のトランシェを、ＶＬＣ符号語がビンデコーダ２２によるリクエスト５６によってフェッチされるビットバッファ５８に分配させる必要がある。
【０１３３】
したがって、３種類の情報：それぞれのチャンク内のトランシェ位置、トランシェのエントロピーデコーダとの関連付け、および各部分的ビットストリームが個別に関わっているトランシェの間での正確な順序、をデフラグメンタイザに知らしめる必要がある。第１の種類の情報は、例えば、すべてのエントロピーデコーダに等しいＮｘを使用し、チャンクのサイズを所定のＮｘの倍数に設定することによって、デフォルトによりデコーダに知らしめられるが、トランシェのエントロピーデコーダとの関連付けおよび正確な順序に対する部分的ビットストリームの個別の並び替えは、ヘッダに示されるか、または、ストリーム外のサイド情報として示される。いうまでもなく、フラグメンタイザは、この並び替えを、正確な順序に対する部分的ビットストリームの個別の並び替えが部分的ビットストリームごとに維持されるような並び替えに限定してもよい。
【０１３４】
したがって、エンコーダ側に並び替えが適用された場合、デフラグメンタイザは、情報が並び替えられた順序でそれぞれのエントロピーデコーダに属しているトランシェの位置を示したときに、これに応じて行動する。
【０１３５】
仕組みの一例として、以下のような想定数４個のパイプに対する「チャンク」のトランシェ体系について説明する：
パイプ番号  チャンク数
０          ４
１          ３
２          ２
３          １
【０１３６】
デコーダは、実施例において、「チャンク」のすべてのデータが消費されるまで、以下のようにデータを処理する。デコーダはトランシェを消費し、例えばラウンドロビン方式で、Ｐ０の４つのトランシェ、Ｐ１の３個のチャンク、Ｐ２の２個のチャンク、およびＰ３の１個のチャンクを処理する。
【０１３７】
図６３は、参照番号２０８において、各「チャンク」の前にヘッダ２０６を含むビットストリーム内信号伝達方式の一例を含む実施例を示す。
【０１３８】
ヘッダは、この実施例では、チャンクＮ個の最後の絶対的トランシェ位置から、それぞれの「部分的ビットストリーム」に対してトランシェの数の違いを示す。
【０１３９】
エンコーダ側において、ビット書き込みプロセスが、「チャンク」のサイズに達する時間まで遅延する。すなわち、すべての符号語は、「チャンク」のサイズの限界まで、「部分的ビットストリーム」あたりキャッシュされる。チャンクのサイズはＤ、すなわち遅延制約に等しい。これは、ヘッダサイズを含んでも良く、含まなくてもよい。フラグメンタイザ２００内の「処理方式」評価部は、選択された「処理方式」、すなわち、ラウンドロビン方式で、「チャンク」内で処理されるトランシェの数を定義付けることができる。
【０１４０】
その後、書き込みプロセスがフラグメンタイザ２００に適用され、選択された「トランシェ処理方式」でビットストリーム内に「チャンク」の「トランシェ」を配置する。書き込みプロセスは、選択された「トランシェ処理方式」のための信号伝達をさらに含む。
【０１４１】
デコーダでは、ビットストリーム内または、あるいはビットストリーム外、で使用可能な暗黙的または明示的な信号伝達を識別する必要がある。最も単純なケースでは、「チャンク」に先行するヘッダ２０６を読み出し、信号伝達された処理方式に基づいて、ビットストリームリーダが、信号伝達された「トランシェ処理方式」が識別されるように、部分的ビットストリームごとにトランシェの数に達するまで、ラウンドロビン方式で部分的ビットストリームトランシェに関して書き込む。
【０１４２】
「トランシェ処理方式」はビットストリーム内信号伝達である。「トランシェ処理方式」を信号伝達するために必要とされるオーバーヘッドを削減するために、信号伝達ヘッダは、信号伝達された「チャンク」内の特定のパイプに対するトランシェ値の存在を、パイプごとに示すことができる。それぞれの部分的ビットストリームのトランシェが存在している場合、フラグがセットされ、その後に位置の信号伝達が続く。位置信号伝達は以下のように動作する。フラグ表示された「部分的ビットストリーム」ごとに、ヘッダは、最後のトランシェ位置Ｎ−１から離間されたそれぞれの部分的ビットストリームの最後のトランシェの位置を示し、ここで、Ｎは「チャンク」内のすべてのトランシェの数に等しい。
【０１４３】
別の位置の信号伝達は、ラウンドロビン間隔の数に基づいて決定されてよく、ここでは、フラグ表示された「部分的ビットストリーム」に対して、特定のパイプからの部分的ビットストリームごとの差、すなわち、「チャンク」処理が終了した最後のパイプに相対するラウンドロビン間隔の差としての「チャンク」の初期部分からのラウンドロビン間隔の数を指す。
【０１４４】
図６２の説明に代えて、デフラグメンタイザを、伝送されたビットストリーム６３が入力される対応入力と、グローバルビットバッファ６１との間に配置することができる。デフラグメンタイザ２０２は、チャンクのヘッダ２０６の情報を使って、図１１のビットストリーム６３が示すチャンクシーケンスから、ビットストリーム６２が図１１のグローバルバッファ６１に入力する元のトランシェの単一ストリームを、再びデフラグメンタイズ（断片復元）するように構成される。
【０１４５】
このように、上記の実施形態は各々、ハフマン符号化の複雑さのレベルにおいて算術符号化の効率とシンプルなモデリングの能力を提供するエントロピー符号化への新規なアプローチを示している。離散的なシンボルの入力シーケンスの事象空間は、二値確率区間の小集合へマッピングされる。確率の区間を用いたエントロピー符号化は固定されたままであり、モデリングステージからデカップリングされているが、ソースシンボルに対する確率モデルは固定されまたは適応することができる。確率区間の各々は、ハフマン符号の複雑さのレベルを有する非常にシンプルなエントロピー符号を用いて符号化される。事象空間投影式エントロピー符号化（ＥＳＰＥＣ）の過剰率は、算術符号化の場合と同様である。
【０１４６】
したがって、上記実施形態は、エントロピー符号化の効率を高めるための見込みのある方法を可能にする。一般に、エントロピー符号化は、データの可逆圧縮の最も一般的な形態だと考えられる。可逆圧縮は、元のデータ表現が必要とするより少ないビット数で、情報を損なわずに、離散データを表現することを目的としている。離散データは、テキスト、図形、画像、ビデオ、オーディオ、音声、ファクシミリ、医用データ、気象データ、財務データの形態、または他の形態のデジタルデータの形態で付与することができる。多くの符号化応用において、元のソースデータは、最初に、いわゆる符号化シンボルにマッピングされ、次に、これらの符号化シンボルはエントロピー符号化される。符号化シンボルへのマッピングは量子化を含みうり、この場合、全体的な符号化方式は非可逆的である。符号化シンボルｓは、Ｍ変数（Ｍ≧２）アルファベットＡ＝｛ａ０，．．．，ａＭ−１｝の任意の値を取ることができる。このシンボルｓを符号化するために、アルファベットは推定された確率の質量関数（ｐｍｆ）｛ｐｓ（ａ０），．．．，ｐｓ（ａＭ−１）｝と関連付けられ、このｐｍｆ内で考慮されない符号化シンボル間のすべての依存関係は無視される。これらの抽象的な設定に対してエントロピー
【数２】
2014534677.tif 000007
は、シンボルｓを符号化するためにシンボルあたりのビットにおいて期待される符号語長に対する最大下限であり、これは、エントロピー符号化技術を用いて達成することができる。何十年もの間、ハフマン符号化と算術符号化が実用的なエントロピー符号化を支配してきた。これらは、（ある意味で）エントロピーの限界を近似することが可能である実用符号の周知の例である。
【０１４７】
固定された確率分布に対して、ハフマン符号を構築することは比較的容易である。ハフマン符号の最も魅力的な特性はそのインプリメンテーションが可変長符号（ＶＬＣ）テーブルを使用することで効率的に実現できることである。しかしながら、時変するソースの統計を扱う場合、すなわち、シンボル確率を変える場合、ハフマン符号とこれに対応するＶＬＣテーブルの適応は、アルゴリズムの複雑さのみならず実装コストの両方に鑑みて、要求が多すぎる。さらに、ｐｓ（ａｉ）＞０．５である支配的なアルファベット値を有する場合、対応するハフマン符号の冗長度（たとえば、ランレングス符号化などの任意のアルファベットの拡張子を使用しなければ）は実に大きい。ハフマン符号のもう１つの欠点は、高次の確率モデリングを扱う場合、ＶＬＣテーブルの複数の集合が必要とされるという事実によってもたらされる。
【０１４８】
一方、算術符号化は、実質的にＶＬＣより複雑であるが、適応型および高次数の確率モデリングだけでなく、かなり偏った確率分布に対処する時に、より一貫性のある適切な操作を行うことができるという利点を提供する。実際に、この特徴は、基本的には、算術符号化は、少なくとも概念的には、多かれ少なかれ直接的な方法で確率推定の任意の所与の値を得られる符号語の一部にマッピングするためのメカニズムを提供する事実に起因する。このようなインターフェイスを具備することによって、算術符号化は、一方では、確率モデリングと確率推定のタスクを互いに明確に区別し、他方では、実際のエントロピー符号化、すなわち、シンボルの符号語へのマッピングを可能にする。
【０１４９】
ここ今説明した従来のエントロピー符号化方式とは異なり、上述した本発明の実施形態の一部は一種の事象空間投影を使用しており、その数学的背景を以下により詳細に説明する。
【０１５０】
符号化シンボルのシーケンス｛ｓ０，．．．，ｓＮ−１｝を考える。各シンボルは、アルファベットＳｉ∈Ａｉから引き出される。アルファベットＡｉ＝｛ａｉ０，ａｉ１，…｝は、それぞれが確率推定ｐｓ（ａｉｍ）と関連付けられている２つ以上の文字を含む。確率推定ｐｓ（ａｉｍ）は、エンコーダとデコーダに知られており、固定または可変とされる。変数の確率がエンコーダとデコーダにおいて同時に推定されると仮定される。アルファベットＡｉは、シンボルシーケンスに対して同一であるかまたは異なるシンボルタイプが異なるアルファベットと関連付けられるかのいずれかである。後者の場合、デコーダがシーケンス内の各シンボルのアルファベットを知っていると仮定される。この仮定は、実用的なソースのコーデックの説明はシンボルとそのアルファベットの順序を定めているシンタックスを含むとして正当化される。
【０１５１】
シンボルのシーケンス｛ｓ０,．．．,ｓＮ−１｝は、ビンとも呼ばれる二値シンボルのシーケンスに変換される。シンボルｓｉごとに、二値化
【数３】
2014534677.tif 000008
は、アルファベット文字ａｉｍのビンｂｉｍの順序付けられた集合への全単射マッピングを表している。二値化マッピングγｉｂは異なるシンボルｓｉごとにまたはシンボルカテゴリごとに異ならせることができる。特定のシンボルｓｉに対する各ビンシーケンスｉは、１つ以上のビンｂｉｋからなる。デコーダ側において、シンボルｓｉは、ビンシーケンスｉが与えられている場合、逆マッピングＳｉ＝（γｉｂ）−１（ｉ）によって復元することができる。二値化の結果として、ソースシンボルのシーケンス｛ｓ０,．．．,ｓＮ−１｝を表すビンシーケンス｛ｂ０,．．．,ｂＢ−１｝が取得される。
【０１５２】
すべてのビンｂｊが同じ二値アルファベットＢ＝｛０，１｝と関連付けられるが、対応する二値ｐｍｆ｛ｐｊ０，ｐｊ１｝は、ｐｊ１＝ｐｊ０であり、通常は異なる。二値ｐｍｆ｛ｐｊ０，ｐｊ１｝は、確率の低いビン（ＬＰＢ）値ｂｊＬＰＢとその確率ｐｊＬＰＢ（ｐｊＬＰＢ≦０．５である場合）によって記述することができる。この二値確率記述｛ｂｊＬＰＢ、ｐｊＬＰＢ｝は、二値化マッピングγｉｂが与えられた場合、シンボルアルファベットに対する確率推定ｐｓ（ａｉｍ）から直接導出することができる。エンコーダ側とデコーダ側において｛ｂｊＬＰＢ、ｐｊＬＰＢ｝を同時に直接推定することが可能である（そして、しばしば好ましい）。したがって、ビンは、シンタックスと前に符号化されたシンボルまたはビンに基づく確率モデル（また、コンテクストとも呼ばれる）と関連付けることができる。確率モデルごとに、確率の記述｛ｂｊＬＰＢ，ｐｊＬＰＢ｝は、確率モデルによって符号化されたビンの値に基づいて推定される。このような二値確率系列化の例は、ＣＡＢＡＣに示される。
【０１５３】
二値エントロピー関数
【数４】
2014534677.tif 000009
はｐ＝０．５周辺で左右対称であり、同じ二値コーダは、ｂｊＬＰＢの値とは無関係に、同一のＬＰＢ確率ｐｊＬＰＢと関連付けられたすべてのビンを符号化するために使用することができる。したがって、ビンシーケンス｛ｂ０，．．．，ｂＢ−１｝は、符号化ビンのシーケンス｛ｂｃ０，．．．，ｂｃＢ−１｝へ変換される。ビンｂｊごとに、対応する全単射マッピングγｊｃは、
【数５】
2014534677.tif 000010
で表される。ここで、プラス記号を円で囲んだ演算子は、排他論理和演算子を表す。デコーダ側において、ビンｂｊは、符号化ビンｂｃｊと対応するＬＰＢ値ｂｊＬＰＢが与えられている場合、逆マッピング
【数６】
2014534677.tif 000011
によって復元することができる。符号化ビンｂｃｊ＝０は、対応するビンｂｊの値がＬＰＢ値ｂｊＬＰＢと等しくなることを指定し、符号化ビンｂｃｊ＝１は、対応するビンｂｊの値が確率の高い値（ＭＰＢ）値１−ｂｊＬＰＢと等しくなることを指定する。
【０１５４】
符号化ビンのシーケンス｛ｂｃ０，．．．，ｂｃＢ−１｝は、一意にソースシンボルのシーケンス｛ｓ０，．．．，ｓＮ−１｝を表し、エントロピー符号化に用いることができる対応する確率推定はＬＰＢ確率ｐｊＬＰＢ（ｐｊＬＰＢ≦０．５である場合）によって完全に記述することができる。したがって、半開区間（０，０．５］において、１つだけの確率は、符号化ビンｂｃｉに対する二値エントロピーコーダを設計するために考慮する必要がある。
【０１５５】
実際の二値エントロピー符号化については、符号化ビンシーケンス｛ｂｃ０，．．．，ｂｃＢ−１｝が、少数の確率区間Ｉｋへ投影される。ＬＰＢの確率区間（０，０．５］は、Ｋ区間Ｉｋ＝（ｐｋ，ｐｋ＋１］に分割される。
【数７】
2014534677.tif 000012
【０１５６】
Ｋ区間の集合がｋ＝１，．．．，Ｋ−１で特徴付けられるとき、Ｋ−１区間の境界ｐｋで特徴付けられる。一般性を失うことなく、ｋ＝０，．．．，Ｋであるときｐｋ＜ｐｋ＋１であると仮定する。外の区間の境界は固定され、ｐ０＝０およびｐｋ＝０．５が付与されている。単純な非適応二値エントロピーコーダが区間Ｉｋごとに設計される。関連付けられたＬＰＢの確率ｐｊＬＰＢ∈Ｉｋを有するすべての符号化ビンｂｃｊは区間Ｉｋに割り当てられ、対応する固定エントロピーコーダによって符号化される。
【０１５７】
以下の説明において、すべてのビンが符号化ビンｂｃｊを表し、すべての確率ｐはＬＰＢ確率ｐｊＬＰＢである。
【０１５８】
符号化効率の確率区間の離散化の影響を調べる際、われわれはエントロピー限界を達成する固定確率のために最適なエントロピーエンコーダを設計できることを前提としている。各確率区間Ｉｋ＝（ｐｋ、ｐｋ＋１］は、代表確率ｐＩｋ∈Ｉｋと関連付けられており、対応する最適なエントロピーコーダは、この代表的な確率のエントロピー限界を達成すべきである。これらの仮定の下で、区間代表値ｐＩｋに対して最適なエントロピーコーダを用いて確率ｐでビンを符号化するレートは、
【数８】
2014534677.tif 000013
で与えられる。
【０１５９】
この場合、Ｈ（ｐ）は二値エントロピー関数３を表し、
【数９】
2014534677.tif 000014
は、その一次導関数である。さらに、区間における確率分布（０，０．５］がｆ（ｐ）で与えられ、
【数１０】
2014534677.tif 000015
であるものとする。このとき、ビンあたりのビットで期待されるレートは、対応する代表的な確率｛ｐＩｋ｝を有する所与のＫ区間｛Ｉｋ｝の集合に対して、
【数１１】
2014534677.tif 000016
で表される。
ｋ＝０，．．．，Ｋ−１であるとき、任意の代表的な確率ｐＩｋに対する一次偏導関数は、
【数１２】
2014534677.tif 000017
で与えられる。
【０１６０】
等式
【数１３】
2014534677.tif 000018
は、定義Ｉｋのドメイン内の代表的確率ｐＩｋに対して、単一の解
【数１４】
2014534677.tif 000019
を有している。この解に対する二次偏導関数
【数１５】
2014534677.tif 000020
は、
【数１６】
2014534677.tif 000021
の場合、常にゼロより大きい。
【０１６１】
したがって、数式（Ｂ１２）の条件が満たされた場合、等式（Ｂ１０）において付与された値ｐ＊Ｉｋは、与えられた区間境界ｐｋおよびｐｋ＋１で期待される全体のレートＲを最小にする区間Ｉｋに対する代表的確率である。それ以外の場合、ビンは区間Ｉｋに全く投影されることなく、代表的確率ｐＩｋ∈Ｉｋが全体レートＲに影響を与えずに任意に選択されるが、このような構成は、区間Ｉｋがエントロピー符号化に用いるものではないため、回避すべきである。
【０１６２】
最適な区間境界に対する条件を見つけるために、ｋ＝１，．．．，Ｋ−１であるとき、区間境界ｐｋに関して期待される全体レートＲの一次導関数を検討する。すべてのｐ∈［ｐＩｋ−１，ｐＩｋ）に対してｆ（ｐ）＞０である場合、
【数１７】
2014534677.tif 000022
は、定義［ｐＩｋ−１，ｐＩｋ）のドメイン内部の区間境界ｐｋに対して、単一の解単一の解
【数１８】
2014534677.tif 000023
を有しており、この解に対する二次偏導関数
【数１９】
2014534677.tif 000024
は常にゼロより大きく、これによって、ｐ＊ｋは、与えられた区間代表値ｐＩｋ−１およびｐＩｋでで、期待される全体レートＲを最小にする区間境界ｐｋ∈［ｐＩｋ−１，ｐＩｋ）である。ｆ（ｐ）＝０であるとき、確率ｐ∈［ｐＩｋ−１，ｐＩｋ）が存在する場合、数１７に示す等式は複数の解を有するが、等式Ｂ１３で付与されているｐ＊ｋは、さらなる最適解が存在しても依然として最適である。
【０１６３】
区間Ｋの数および確率分布ｆ（ｐ）が与えられているとき、期待される全体レートＲを最小にするｋ＝１，．．．，Ｋ−１である区間境界ｐｋおよびｋ＝０，．．．，Ｋ−１である区間代表値ｐＩｋは、ｋ＝０，．．．，Ｋ−１に対して、条件Ｂ１２を受けることになっている等式Ｂ１０とＢ１３によって付与される等式システムを解くことによって得ることができる。これは、以下の反復アルゴリズムによって得ることができる。
【０１６４】
アルゴリズム１：
１）条件Ｂ１２がすべてのｋ＝０，．．．，Ｋ−１対して満たされるように、区間（０、０．５］をｐ０＝０、ｐｋ＝０．５、であり、すべてのｋ＝０，．．．，Ｋ−１対してｐｋ＜ｐｋ＋１であるＫ個の任意の区間、Ｉｋ＝（ｐｋ、ｐｋ＋１］へ分割する。
２）等式Ｂ１０に基づいて、ｋ＝０，．．．，Ｋ−１である代表値ｐＩｋを更新する。
３）等式Ｂ１３に基づいて、ｋ＝１，．．．，Ｋ−１である区間境界値ｐｋを更新する。
４）収束まで、前の２つのステップを繰り返す。
【０１６５】
図１２は、上記のアルゴリズムを用いた最適な区間離散化の例を示している、この例において、われわれは、０＜ｐ≦０．５であるとき、均一な確率分布ｆ（ｐ）＝２を仮定し、確率区間（０、０．５］をＫ＝４の区間に分割した。確率区間の離散化が、すべてのｐ∈（０，０．５］に対してＡ（ｐ）≧Ｈ（ｐ）である、二値エントロピー関数Ｈ（ｐ）の区分的な線形近似Ａ（ｐ）につながることが示されている。
【０１６６】
符号化効率上の区間の離散化の影響に対する測度として、エントロピー限界に相対して期待される全体的なレートの増加
【数２０】
2014534677.tif 000025
を使用することができる。図１２の特定の例において、エントロピーの期待値
【数２１】
2014534677.tif 000026
は、ビンあたり１／（２１ｎ２）ビットと等しく、レートオーバーヘッド
【数２２】
2014534677.tif 000027
は、１．０１％と等しい。表４は、選択された区間数Ｋに対する、均一な確率分布とｐ∈（０，０．５］で線形に増加する確率分布ｆ（ｐ）＝８ｐのそれぞれのレートオーバーヘッド
【数２３】
2014534677.tif 000028
および
【数２４】
2014534677.tif 000029
を示す。
【表４】
2014534677.tif 000030
【０１６７】
このセクションでの検討は、一定の確率（たとえば、８〜１０個の区間）を有する少数区間へのＬＰＢの確率区間（０、０．５］の離散化が符号化効率に与える影響がきわめて小さいことを示した。
【０１６８】
確率区間に対する上述したエントロピー符号化は、固定確率を用いた個別のコーダを有用にする。
【０１６９】
以下において、まず、簡単な符号を固定確率に対してどのように設計することができるかを示す。これらの結果によって、符号の設計とＬＰＢ確率区間（０、０．５］の分割を結合的に最適化するアルゴリズムを展開する。
【０１７０】
固定確率ｐ＝ｐＩｋに対するエントロピー符号化は、算術符号化または可変長符号化を使用して実行することができる。後者の場合は、以下のアプローチがシンプルで非常に効率的であるように思われる。
【０１７１】
ビンの可変数が可変長符号語にマッピングされる二値エントロピー符号化方式を検討する。一意的な復号化性に関して、ビンシーケンスへの符号語の逆マッピングは一意である必要がある。そして、できるだけエントロピー限界に接近する符号を設計したいので、検討を全単射マッピングに制約する。図１３に示すように、このような全単射マッピングは、すべてのリーフノードが符号語と関連付けられている二値ツリーによって表することができる。ツリーエッジは二値事象を表している。図１３の例において、下方エッジはＬＰＢビン値を表し、上方エッジはＭＰＢビン値を表している。二値ツリーが完全な二値ツリーの場合、すなわち、すべてのノードがリーフであるか２つの子孫をもっている場合、二値ツリーはビンに対する接頭語符号を表している。各リーフノードは、与えられたＬＰＢの確率ｐに基づいて確率と関連付けられる。ルートノードは確率ｐｒｏｏｔ＝１を有している。他のすべてのノードに対する確率は、対応する先祖の確率にＬＰＢの子孫に対するｐとＭＰＢの子孫に対するｑ＝１−ｐを乗算することによって得られる。各リーフノードＬｉは、ルートノードからリーフノードまでのＬＰＢエッジの数ａｉとＭＰＢエッジの数ｂｉによって特徴付けられる。特定のＬＰＢの確率ｐに対して、リーフノードＬ＝｛ａｉ，ｂｉ｝に対する確率ｐｉは、
【数２５】
2014534677.tif 000031
と等しい。
【０１７２】
二値ツリーＴは、リーフノード数Ｌと、ｌ＝０，．．．，Ｌ−１に関連付けられたペア｛ａｉ、ｂｉ｝とによって、完全に特徴付けられる。
【０１７３】
完全な二値ツリーＴとＬＰＢ確率ｐが与えられた場合、リーフノードへの符号語の最適な割当ては、ハフマンアルゴリズムによって得ることができる。可変長符号語（ＶＮＢ２ＶＬＣ）マッピングＣに対して得られる可変数のビットは、ノードの数と同一の符号語数Ｌと、ｌ＝０，．．．，Ｌ−１に対するタプル｛ａｉ，ｂｉ，ｌｉ｝とによって特徴付けられる。ここで、ｌｉは、対応するリーフノードＬｉ＝｛ａｉ、ｂｉ｝と関連付けられた符号語長を表す。符号語長｛ｌｉ｝が与えられたとき、符号語割り当てに対して複数の可能性があり、実際の符号語の割り当ては、符号語が一意に復号可能な接頭語符号を表している限りは重要ではない。所与の符号ＣとＬＰＢの確率ｐに対するビンあたりのビットにおける期待されるレートＲ（ｐ、Ｃ）は、期待される符号語長と符号語あたりのビンの期待数の割合である。
【数２６】
2014534677.tif 000032
【０１７４】
大抵の場合、符号設計は符号語Ｌの最大数、符号語あたりのビンの最大数、または最大符号語長などの要因によって制限されるか、または、特定の構造の符号へ制約される（たとえば、最適化された解析を可能にするために）。特定の応用のために利用可能な符号の集合Ｓｃが与えられたと仮定した場合、特定のＬＰＢ確率ｐに対する最適符号Ｃ＊∈Ｓｃは、期待レートＲ（ｐ、Ｃ）を最小にすることによって求められる。
【数２７】
2014534677.tif 000033
【０１７５】
他の迅速な代替として、最小化を二値ツリーＳＴの所与の集合に対して進めることができ、ツリーごとに、ハフマンアルゴリズムによって得られる１つだけのＶＮＢ２ＶＬＣ符号Ｃが考えられる。一例として、リーフノード数Ｌが所与の最大数Ｌｍより小さいかまたはこれと等しいすべての二値ツリーＴを考慮することによって、様々なＬＰＢの確率ｐに対してＶＮＢ２ＶＬＣ符号が設計された。図１４において、相対レートの増加ρ（ｐ、Ｃ＊（ｐ））＝Ｒ（ｐ、Ｃ＊（ｐ））／Ｈ（ｐ）は、選択した最大テーブルサイズＬｍに対してＬＰＢの確率ｐにプロットされる。レート増加ρ（ｐ）は、通常、より大きなテーブルサイズを可能にすることによって減少される。より大きなＬＰＢ確率の場合、通常、８〜１６個の符号語から成る小テーブルサイズＬが、レート増加ρ（ｐ）を合理的に小さめに維持するために十分であるが、より小さいＬＰＢ確率（たとえば、ｐ＜０．１）に対しては、より大きなテーブルサイズＬが必要とされる。
【０１７６】
前のセクションで、最適な符号と固定されたＬＰＢの確率に対する符号設計を想定して最適な確率離散化を検討した。しかし、一般に、限定されたテーブルサイズの現実のＶＮＢ２ＶＬＣ符号ではエントロピー限界を達成することはできないので、最適化されたエントロピー符号化設計を得るために、符号の設計とＬＰＢ確率区間（０、０．５］の分割を同時に考える必要がある。
【０１７７】
所与の区間Ｉｋ＝（ｐｋ、ｐｋ＋１］に対して、この所与の区間に対する期待レート
【数２８】
2014534677.tif 000034
を最小とする場合、最適な符号Ｃ＊ｋにおける所与の集合ＳＣの符号Ｃｋは、以下のように表される。
【数２９】
2014534677.tif 000035
【数３０】
2014534677.tif 000036
を最小とすることによって求められる。
【０１７８】
区間境界に関する一次導関数をゼロに等しく設定する数１７は、
【数３１】
2014534677.tif 000037
を生じる。
【０１７９】
等式Ｂ１３と同様に、ｐ＊ｋが常に最適解であることが示されているが、確率分布ｆ（ｐ）によっては、さらに最適な解が存在する可能性がある。これにより、所与の関連付けられた符号Ｃｋ−１およびＣｋをそれぞれ有する２つの区間Ｉｋ−１とＩｋ間の最適な区間境界ｐ＊ｋは、関数Ｒ（ｐ、Ｃｋ−１）とＲ（ｐ、Ｃｋ）の交点である。
【０１８０】
この結果として、以下のインタラクティブアルゴリズムを、確率区間の数Ｋ、可能な符号の集合ＳＣ、および確率分布ｆ（ｐ）、ただしｐ∈（０，０．５］を与えて、確率区間分割と演練する符号とを連結して導き出すために使用することができる。
【０１８１】
アルゴリズム２：
１）セクション３で指定されたアルゴリズム１を使用して、初期の確率区間境界値ｐｋ、ただしｋ＝０，．．．，Ｋ、を導出する
２）等式Ｂ１０に基づいて、確率区間Ｉｋ、ただしｋ＝０，．．．，Ｋ−１、に対して代表値ｐＩｋを導出する
３）等式Ｂ１８に基づいて、区間代表値ｐＩｋ、ただしｋ＝０，．．．，Ｋ−１、に対して符号Ｃｋ∈Ｓｃを 導出する
４）等式Ｂ２１に基づいて、区間境界値ｐｋ、ただしｋ＝１，．．．，Ｋ−１、を更新する
５）収束するまで上記の３ステップを繰り返す。
【０１８２】
アルゴリズム２におけるステップ２および３は、等式Ｂ１９に応じて、区間境界ｐｋ、ただしｋ＝０，．．．，Ｋ、に基づいて、符号Ｃｋ∈Ｓｃ、ただしｋ＝０，．．．，Ｋ−１、の直接導出によって置き換えることができる。そして、セクション４．１に述べたように、ステップ３の最小化は、二値ツリーＳＴの所与の集合に対して展開し、二値ツリーＴごとに、ハフマンアルゴリズムによって得られる１つだけのＶＮＢ２ＶＬＣ符号Ｃｋを考慮することができる。
【０１８３】
一例として、我々は、アルゴリズム２を使用して、Ｋ＝１２の確率区間への分割と、対応するＶＮＢ２ＶＬＣ符号を同時に導き出した。このとき、アルゴリズムのステップ３における最小化を、ツリーＴごとに評価された符号Ｃがハフマンアルゴリズムによって得られた二値ツリーＳＴの所与の集合に対する等価の最小化と置き換えた。我々は、最大数Ｌｍ＝６５個のリーフノードと、そして最大６５個のテーブルエントリを有する符号Ｃとを有するツリーＴを考慮した。最大１６個のリーフノードを有するすべての二値ツリーＴは最小化において評価されていたが、われわれは、１６個より多くのリーフノードをもつツリーに対して、より少数のリーフノードを有するツリーに対して最良の結果をもたらす、その次に最適な検索を採用した。
【０１８４】
図１５において、符号設計例として、エントロピー限界ΔＲ（ｐ）＝Ｒ（ｐ）−Ｈ（ｐ）に対して期待されるレート増加が、ＬＰＢの確率ｐに対してプロットされる。比較として、（セクション３で展開されるように）理論的に最適な確率区間の離散化に対して期待レート増加ΔＲと、図中、さらなる制約ｐＩＫ−１＝０．５を有する理論的に最適な確率区間の離散化と、をプロットした。確率区間の同時離散化とＶＮＢ２ＶＬＣ符号設計によって、区間の境界線のシフトにつながる（ｋ＝１，．．．，Ｋ−１である区間境界ｐｋがΔＲ（ｐ）曲線の極大値によって与えられる）ことがわかる。均一な確率分布ｆ（ｐ）を仮定した場合、本物のＶＮＢ２ＶＬＣ符号を有する設計例に対するエントロピー限界に対する相対的に期待される全体的レートの増加は、
【数３２】
2014534677.tif 000038
である。理論的に最適な確率区間の離散化およびさらなる制約ｐＩＫ−１＝０．５を有する理論的に最適な確率の離散化のそれぞれに対応する相対的レート増加はそれぞれ、
【数３３】
2014534677.tif 000039
および
【数３４】
2014534677.tif 000040
である。
【０１８５】
符号語の終了は、以下のように実行できる。シンボルの有限シーケンス｛ｓ０，．．．，ｓＮ−１｝を符号化するとき、Ｋ個の二値エンコーダの各々が、符号化ビンの有限シーケンスｃｋ＝｛ｂｃ０，．．．，ｂｃＢｋ−１｝ｋ、ただしｋ＝０，．．．，Ｋ−１、を処理する。そして、Ｋ個の二値エンコーダの各々に対して、シーケンスの全ての符号化ビンｃｋ＝｛ｂｃ０，．．．，ｂｃＢｋ−１｝ｋが再構築され、符号語または符号語のシーケンスｋ（ｃｋ）が与えられることが確認された。
【０１８６】
算術符号化を採用する場合、符号化ビンのシーケンスに対する算術符号語は、すべての符号化ビンが符号語を与えられて復号化されるように終了する必要がある。上記のＶＮＢ２ＶＬＣ符号に対して、シーケンスｃｋの最後のビンは、符号語に関連付けられたビンシーケンスを表していない可能性がある。このような場合、残留するビンシーケンスを接頭語として含む任意の符号語が書き込むことができる。最短長（またはこれらの符号語の１つ）を有している対応する符号語が選ばれた場合、オーバーヘッドを最小にすることができる。デコーダ側において、ビットストリームシンタックスと二値化方式によって識別することができるビンシーケンスの最後におけるさらなる読出しビンは破棄される。
【０１８７】
簡単な符号設計の例が以下に提供される。図示目的のために、３文字と、ｐｓ（ａ０）＝０．７、ｐｓ（ａ１）＝０．１８、およびｐｓ（ａ２）＝０．１２の固定された関連確率を有するソース｛ｓ｝の簡単な例を考える。図１５に示すように、対応する３項の選択ツリーは、完全な二値ツリーに変換することができる。
【０１８８】
図１５における、完全な二値ツリーの二値化が表５に示されている。３項シンボルｐｍｆｐｓは、２つの二値ｐｍｆ：ｐｂ０＝（０．７，０．３）とｐｂ１＝（０．６，０．４）に変換される。ビットストリーム内のシンボルｓごとに、ビンｂ０が存在している。ビンｂ０が０と等しいとき、ｂ１も存在している。表２に提供された二値化がソースｓに対する最適な１文字ハフマン符号と同じであることに留意されたい。
【表５】
2014534677.tif 000041
【０１８９】
ソースｓのエントロピーは、
【数３５】
2014534677.tif 000042
である。１文字ハフマン符号の平均符号語長は、次式で与えられる：
【数３６】
2014534677.tif 000043
これは、ρＨＣ＝０．１２７４ビット／シンボルの冗長度または１０．８７％の期待レートオーバーヘッドに対応する。
【０１９０】
固定されたｐｍｆを有する特定の二値化の例に対して、ビンｂ０とｂ１は、両ビンに対してＬＰＢの値ｂｊＬＰＢが０と等しいので、既に、符号化ビンを表している。ＬＰＢの確率の分布ｆ（ｓ）は、ｐ＝０．３とｐ＝０．４の場合を除いて、ｆ（ｐ）＝０で離散的である。これによって、最適な確率離散化は、代表値がｐＩ０＝０．３とｐＩ１＝０．４である、Ｋ＝２の区間につながる。これらの区間の境界ｐ１は、［０．３、０．４）において任意に選択することができる。
【０１９１】
ソースを符号化するために、ソースシンボルの列は、ビン列へ二値化される。ビンｂ０は、すべてのソースシンボルのために送信される。ビンｂ１は、ｂ０＝０の場合に限って送信される。ビンｂ０とｂ１は、一定のＬＰＢの確率ｐＩ０＝０．３とｐＩ１＝０．４それぞれによって個別に符号化される。
【０１９２】
固定した確率を有する二値アルファベットの効率的な符号化はシンプルなＶＮＢ２ＶＬＣマッピングによって達成することができる。ＬＰＢの確率ｐＬＰＢ＝０．３とｐＬＰＢ＝０．４に対する小さい符号化テーブルとのＶＮＢ２ＶＬＣマッピングの例を表６と表７にそれぞれ示す。ｐＬＰＢ＝０．３に対するＶＮＢ２ＶＬＣマッピングの冗長度は０．００６９ｂｉｔ／ｂｉｎ、すなわち０．７８８％であり、ＬＰＢの確率ｐＬＰＢ＝０．４に対しては、冗長度は０．００５３ｂｉｔ／ｂｉｎ、すなわち０．５４８％である。
【表６】
2014534677.tif 000044
【表７】
2014534677.tif 000045
【０１９３】
新しい符号化方法によってもたらされる全体として期待されるレートは、次の通りである。
【数３７】
2014534677.tif 000046
【０１９４】
全体の冗長度はエントロピー限界に対して０．７３％であり、これは１文字ハフマン符号と比較して、重要な改良点を示している。
【０１９５】
同様の符号化効率の改良はランレングスコードを作成することによって得ることができることが主張できる。上記の例において、われわれは最大２つのシンボルまでの実行を考慮することによって最大確率シンボルに対するランレングスコードを構築することができる。事象の各々｛ａ０ａ０、ａ０ａ１、ａ０ａ２、ａ１ａ２｝は別個の符号語に関連付けられる。このようなコードは、エントロピー限界に相対する冗長度１．３４％をもたらす。実際に、ＶＮＢ２ＶＬＣコードは、二値シンボルに対するランレングスコードの一般化としてみなすことができる（表３のＶＮＢ２ＶＬＣコードはランレングスコードを効果的に表している）。固定確率を有する単一のシンボルアルファベットの場合、提示されたアプローチに関して同様の符号化効率を、可変長符号語に対して可変数のソースシンボルをマッピングするコードを作成することによって達成することができる。この提示されているアプローチの主な利点は、固定または適合確率推定を有する任意のソースシンボル列を、固定したＬＰＢ確率で演算する少数のシンプルな二値コーダへマッピングする際の、そのフレキシビリティである。
【０１９６】
一意の決定可能性を達成する方法を次に考える。
【０１９７】
提供されているエントロピー符号化方式によって、ソースシンボルのシーケンス＝｛ｓ０，．．．，ｓＮ−１｝の符号化は、以下の３つの基本的なステップ：
・ビンシーケンス＝｛ｂ０，．．．，ｂＢ−１｝を生成するすシンボル二値化＝｛ｂ０，．．．，ｂＢ−１｝＝γｂ（）
・ビンシーケンスの符号化ビンシーケンスｃ＝｛ｂｃ０，．．．，ｂｃＢ−１｝＝γｃ（）へ の０変換
・確率区間離散化とＫ個の固定二値コーダを用いた符号化ビンシーケンスｃ＝｛ｂｃ０，．．．，ｂｃＢ−１｝の二値エントロピー符号化
を有する。
【０１９８】
符号化ビンシーケンスｃ＝｛ｂｃ０，．．．，ｂｃＢ−１｝が一意に復号可能であり、γｂとγｃのマッピングが可逆である場合、シンボルシーケンス＝｛ｓ０，．．．，ｓＮ−１｝は一意に復号可能である。
【０１９９】
γｅに、１以上の符号化ビンのシーケンスｃ＝｛ｂｃ０，．．．｝の１つ以上の符号語（ｃ）＝｛ｃ０，．．．｝のシーケンスへのエンコーダマッピングを通知させる。
【数３８】
2014534677.tif 000047
【０２００】
符号化ビンシーケンスｃの一意的な復号可能性に対して、符号語（ｃ）のシーケンスが付与されているとき、エンコーダマッピングγｅは、一意の符号語ｃ（ｂｃ）が各々の可能な符号化ビンシーケンスｂｃに割り当てられるという特性を有する必要がある。
【数３９】
2014534677.tif 000048
【０２０１】
この特性は、算術コードまたは接頭語符号が使用されている場合、常に満たされる。ＶＮＢ２ＶＬＣコードがビンの可変数に対する接頭語符号を表しているので、（セクション４．３において説明した符号語終了を含む）セクション４．１に説明されているＶＮＢ２ＶＬＣコードに対して、特に、満たされる。
【０２０２】
しかしながら、提示されているエントロピー符号化のアプローチにおいては、符号化ビンのシーケンスｃは、Ｋ個のサブシーケンスｃｋ、ただしｋ＝０，．．．，Ｋ−１、
【数４０】
2014534677.tif 000049
に分割され、サブシーケンスｃｋのそれぞれに対して、符号語ｋ（ｃｋ）のシーケンスが、特定のエンコーダマッピングγｋｅを使用して割り当てられる。これによって、一意的な復号可能性の条件は拡張する必要がある。符号化ビンｃのシーケンスは、符号化ビンｃｋの各サブシーケンスが、対応する符号語ｋ（ｃｋ）が付与されて一意に復号可能であり、かつ分割ルールγｐがそのデコーダに知られている場合、Ｋ個の符号語ｋ（ｃｋ）のシーケンスが付与されて、一意に復号可能となる。ここで、ｋ＝０，．．．，Ｋ−１である。分割ルールγｐは、ＬＰＢ確率区間の離散化｛Ｉｋ｝と、符号化ビンｂｃｊと関連付けられるＬＰＢ確率ｐｊＬＰＢ、ただしｊ＝０，．．．，Ｂ−１、とによって付与される。したがって、ＬＰＢ確率区間の離散化｛Ｉｋ｝は、デコーダ側で知られている必要があり、符号化ビンｂｃｊ、ただしｊ＝０，．．．，Ｂ−１、ごとのＬＰＢ確率ｐｊＬＰＢは、エンコーダ側とデコーダ側とで同じ方法で導出する必要がある。
【０２０３】
ビンシーケンスの符号化ビンシーケンスｃへのマッピングγｃは、各単一のｂｊ、ただしｊ＝０，．．．，Ｂ−１、が、二値マッピング
【数４１】
2014534677.tif 000050
によって変換される。デコーダ側では、ビンシーケンスが、二値マッピング
【数４２】
2014534677.tif 000051
によって求めることができる。ここで、ｊ＝０，．．．，Ｂ−１である。各ビンｂｊに対するＬＰＢ値ｂｊＬＰＢが、エンコーダとデコーダ側で同じように得られる場合、
【数４３】
2014534677.tif 000052
なので、これらのマッピング（γｊｃ）−１は、対応するエンコーダマッピングγｊｃの逆を表す。したがって、ビンシーケンスの符号化ビンシーケンスｂｃへの変換γｂは、可逆である。
【０２０４】
最後に、われわれは、各シンボルｓｉ、ただしｉ＝０，．．．，Ｎ−１、がビンシーケンスｉ＝γｉｂ（ｓｉ）にニマッピングされる二値化γｂ（）の可逆性を調べる。シンボルｓｉは、二値化マッピングγｉｂがシンボルｓｉに対するアルファベットＡｉの各文字ａｉｍへ異なるビンシーケンスｊｍを割り当てる場合、対応するビンシーケンスｉが与えられて一意に復号化することができる。しかしながら、この条件は、ビンシーケンス＝｛ｂ０，．．．，ｂＢ−１｝の、ｉ＝０，．．．，Ｎ−１のときのシンボルｓｉに対応するビンシーケンスｉへの分割がデコーダに知られていないので、不十分である。十分な条件は、シンボルｓｉごとに、対応するアルファベットＡｉの文字ａｉｍに関連付けられるビンシーケンスｊｍ、ただしｉ＝０，．．．，Ｎ−１、が接頭語符号を形成し、各シンボルｓｉ、ただしｉ＝０，．．．，Ｎ−１、に対する二値化マッピングγｉｂが、デコーダ側で知られているときに与えられる。
【０２０５】
提示されているエントロピー符号化のアプローチのための一意的な復号可能性の条件は、次のようにまとめることができる：
・二値化マッピングγｉｂは、接頭語符号を表しかつ（シンボル符号化順に）デコーダに知られている、
・すべてのビンｂｊに対する確率モデル（ｂｊＬＰＢ、ｐｊＬＰＢ）は、エンコーダとデコーダ側で同様に導かれる、
・ＬＰＢ確率区間（０、０．５］が、Ｋ個の区間Ｉｋ、ただしｋ＝０，．．．，Ｋ−１に分割されることが、デコーダに知られている、
・各確率区間Ｉｋ、ただしｋ＝０，．．．，Ｋ−１、に対するマッピングγｋｅが、一意に復号可能なコードを表している。
【０２０６】
以下において、われわれは、全体的なエンコーダとデコーダの設計例をより詳細に説明する。われわれは、ビンの確率モデル｛ｂＬＰＢ、ｐＬＰＢ｝がエンコーダおよびデコーダ側で直接推定され、Ｋ個の二値コーダがセクション４．１で説明されたＶＮＢ２ＶＬＣマッピングを使用する、符号化方式に集中する。各ソースシンボルｓは、その値の範囲を含むシンボルのタイプを決定するシンボルカテゴリｃｓと関連付けられる必要がある。シンボルと、関連付けられたシンボルカテゴリの順序は、エンコーダとデコーダ側で知られていることが仮定されるシンタックスによって付与される必要がある。
【０２０７】
エンコーダおよびデコーダの設計例のブロック図を図１７に示す。エンコーダ側において、関連付けられたシンボルカテゴリｃｓを有するシンボルｓはバイナライザへ供給され、バイナライザは各シンボルｓをビンシーケンスｓ＝γｃｓｂ（ｓ）へ変換する。
【０２０８】
使用される二値化手法γｃｓｂは、シンボルカテゴリｃｓに基づいて決定される。さらに、バイナライザは、ビンシーケンスｓの各ビンｂを、このビンｂを符号化するために使用される確率モデルを指定する、確率モデル表示ｃｂと関連付ける。確率モデル表示ｃｂは、シンボルカテゴリｃｓ、ビンシーケンスｓ内部の現在のビンのビン数、および／または既に符号化されたビンおよびシンボルの値に基づいて、得ることができる。
【０２０９】
確率推定割当部は、値の対｛ｂＬＰＢ、ｐＬＰＢ｝によって特徴付けられる、複数の確率モデルを維持している。それは、バイナライザからビンｂと、関連付けられる確率モデル表示ｃｂを受信し、ＬＰＢ値ｂＬＰＢと表示された確率モデルのＬＰＢ確率ｐＬＰＢとを符号化ビン導出子部と確率量子化部にそれぞれ転送する。その後、対応する確率モデル｛ｂＬＰＢ、ｐＬＰＢ｝は受信したビンｂの値を用いて更新される。
【０２１０】
符号化ビン導出部は、バイナライザと確率推定割当部から、ビンｂと関連付けられたＬＰＢ値ｂＬＰＢとをそれぞれ受け取り、
【数４４】
2014534677.tif 000053
によって求められる符号化ビンｂｃを確率量子化部へ送信する。この確率量子化部は、各符号化ビンｂｃをＫ個の二値エンコーダの１つへ転送する。確率量子化部は、ＬＰＢ確率区間の量子化｛Ｉｋ｝に関する情報を含む。符号化ビンｂｃに関連付けられかつ確率推定割当部から受信されるＬＰＢ確率ｐＬＰＢは、区間境界｛ｐｋ｝と、ｐＬＰＢ∈Ｉｋが求められる確率区間インデックスｋと比較される。次に、符号化ビンｂｃは関連付けられた二値エンコーダへ転送される。
【０２１１】
Ｋ個の二値エンコーダの各々は、ビンバッファおよびビンエンコーダから成る。ビンバッファは、確率量子化部から符号化ビンｂｃを受け取り、これらを符号化順に格納する。ビンエンコーダは特定のＶＮＢ２ＶＬＣマッピングを実施し、ビンバッファ内のビンシーケンスを符号語に関連付けられるビンシーケンスと比較する。ビンバッファ内のビンシーケンスがこれらのビンシーケンスの１つと等しい場合、ビンエンコーダはこのビンシーケンス｛ｂｃ｝をビンバッファから取り出し、関連した符号語（｛ｂｃ｝）を対応する符号語ストリームに書き込む。シンボルシーケンスに対する符号化プロセスの終わりに、セクション４．３で説明したように、ビンバッファが空になってない全ての二値エンコーダに対して終了符号語が書き込まれる。
【０２１２】
Ｋ個の得られた符号語ストリームは個別に送信され、パケット化され、もしくは格納され、あるいは、送信または格納を目的としてインターリーブされる（セクション６．２参照）。
【０２１３】
デコーダ側で、ビンデコーダとビンバッファから成るＫ個の二値デコーダの各々は、１符号語のストリームを受信する。ビンデコーダは、符号語のストリームからの符号語（｛ｂｃ｝）を読み出し、符号化順に、関連付けられたビンシーケンス｛ｂｃ｝をビンバッファに挿入する。
【０２１４】
シンボルシーケンスの復号化は、基礎となるシンタックスによって駆動される。シンボルｓに対するリクエストは、シンボルカテゴリｃｓと一緒にバイナライザへ送信される。バイナライザはこれらのシンボルリクエストをビンに対するリクエストに変換する。ビンに対するリクエストは、エンコーダと同様に求められる確率モデル表示ｃｂに関連付けられ、確率推定割当部へ送信される。確率推定割当部は、エンコーダ側で相方と同様に演算される。確率モデル表示ｃｂに基づいて、確率モデルを識別し、そのＬＰＢ値ｂＬＰＢとＬＰＢ確率ｐＬＰＢをビン導出部と確率量子化部のそれぞれへ送信する。
【０２１５】
確率量子化部は、二値エンコーダがエンコーダ側で決定されるのと同様に、ＬＰＢ確率ｐＬＰＢに基づいて、Ｋ個の二値デコーダの１つを決定し、対応するビンバッファから、最初の符号化ビンｂｃを符号化順に取り除き、それをビン導出子へ転送する。ビン導出子は符号化ビンｂｃと関連付けられたＬＰＢ値ｂＬＰＢとを、確率量子化部、確率推定割当部のそれぞれから受け取り、ビン値
【数４５】
2014534677.tif 000054
を求める。バイナライザから送信されたビンリクエストへの最終応答として、ビン導出子は、復号化されたビン値ｂを、バイナライザ、確率推定割当部へ送信する。
【０２１６】
確率推定割当部において、復号化されたビンｂの値は、エンコーダ側でと同じように、関連付けられた値ｃｂによって選択された確率モデル｛ｂＬＰＢ、ｐＬＰＢ｝を更新するために使用される。最後に、バイナライザは、受信したビンｂをシンボルリクエストのために既に受信されているビンシーケンスｓへ加算し、このビンシーケンスｓを、二値化手法γｃｓｂによってシンボル値と関連付けられるビンシーケンスと比較する。ビンシーケンスｓがこれらのビンシーケンスの１つと一致する場合、対応する復号化されたシンボルｓがシンボルリクエストへの最終応答として出力される。それ以外の場合、バイナライザは、シンボルｓが復号化されるまで、更なるビンリクエストを送る。
【０２１７】
シンタックスによって駆動される更なるシンボルリクエストが受信されなくなった場合、シンボルシーケンスの復号化は終了する。（終了符号語の結果として、）エントロピー復号化プロセスの終わりに、ビンバッファ内に含まれている可能性のある符号化ビンｂｃは破棄される。
【０２１８】
以上の実施形態をまとめると、どれもエントロピー符号化へ新規なアプローチを表している。シンボルシーケンスのビットストリームへのマッピングと逆マッピングが記載されている。各シンボルはエンコーダとデコーダにとって同時に既知の関連付けられているパラメータを持っている。エントロピーコーデックは、各々がシンボルに関連付けられているパラメータのサブセットに割り当てられている複数の先入れ先出し（ＦＩＦＯ）バッファを含む。シンボルの所与のパラメータに対して、エンコーダがシンボルを対応するＦＩＦＯバッファへ割り当てる。エンコーダ割当てルールはデコーダ側において知られているので、デコーダはエンコーダがこのシンボルを割り当てたＦＩＦＯバッファから読み出す。
【０２１９】
シンボルへパラメータを割り当てるための一例はその確率の推定である。確率推定はエンコーダとデコーダにおいて同時に行うことができる測定から求められる。特定のＦＩＦＯバッファは、選択されている確率の部分集合に含まれる推定された確率値を有するシンボルを含み、これによってエントロピー符号化が改良される。この改良は、ビットレートの低減、複雑さの緩和、遅延の低下、またはエラー回復に関連しうる。
【０２２０】
シンボルへのパラメータ割当ての他の例としては、シンボルの確率の推定と、以下の１つ以上を含む他のパラメータが挙げられる：シンボルの意味、その重要性、そのロケーション（時間的、空間的、体積など）、その伝送路コードの保護。特定のＦＩＦＯバッファは選択される確率の部分集合に関連するシンボルを含み、これによって、エントロピー符号化を改良できるとともに他のパラメータに対する有利性が達成できる。
【０２２１】
一部の実施形態は一般的に圧縮されたデータに関して説明してきたが、上述した符号化が圧縮ビデオデータに使用され、すなわち、ビデオおよび／または画像の符号化に用いられる実施形態が説明される。
【実施例１】
【０２２２】
第１の実施形態は、画像および／またはビデオコーダおよびデコーダにおける符号化変換係数に係り、たとえば、Ｈ．２６４／ＡＶＣにおけるＣＡＢＡＣの対応する部分を置き換える、ビデオ符号化の分野の符号化変換係数に対して、新規な効率的な方法として特に用いることができる変換係数の符号化について記載する。
【０２２３】
ＭＰＥＧ―２、Ｈ．２６３、およびＭＰＥＧ―４などのビデオ符号化に対する初期のハイブリッドブロックベースの規格では、量子化された変換係数（レベル）のブロックは、定義付けられたスキャンプロセスによって、ランレングス符号化とその後のマッピングを使用して可変長を有する符号語に符号化されたベクトルへ、マッピングされる。
【０２２４】
ＭＰＥＧ―２において、可変長を有する符号語は、２次元の事象（ＲＵＮ、ＬＥＶＥＬ）に関連付けられ、ここで、ＬＥＶＥＬは、ゼロに量子化されない（有意）変換係数の量子化された値を表し、ランレングスＲＵＮは、ゼロに量子化される後続の（非有意）変換係数の数を示し、これらは、変換係数のベクトルにおいて、現行の有意変換係数の直前にある。さらに、可変長を有する符号語は２つの特別な事象ＥＯＢとＥＳＣＡＰＥに対して定義づけられる。ＥＯＢ事象がブロック内にこれ以上有意変換係数がないことを示しているのに対し、ＥＳＣＡＰＥ事象は既存の事象（ＲＵＮ、ＬＥＶＥＬ）は可変長を有する符号語の定義づけられたアルファベットによって表すことができないことを示す。この場合、シンボルＲＵＮとＬＥＶＥＬは固定長の符号語によって符号化される。
【０２２５】
さらに新しい符号化規格のＨ．２６３およびＭＰＥＧ―４において、可変長を有する符号語の関連付けは、３次元の事象（ＬＡＳＴ、ＲＵＮ、ＬＥＶＥＬ）に基づいて行われ、ここで、二値シンボルＬＡＳＴは、現在の有意変換係数がブロック内の最新の有意係数であるかどうか、または更なる有意変換係数が後に続くかどうかを示す。これらの３次元の事象を使用することによって、更なるＥＯＢ事象は必要とされないが、ＥＳＣＡＰＥ事象がＭＰＥＧ―２と同様に使用される。この場合、二値シンボルＬＡＳＴはＲＵＮとＬＥＶＥＬに対して追加的に符号化される。
【０２２６】
ＭＰＥＧ―２、Ｈ．２６３、およびＭＰＥＧ―４において実現される変換係数の符号化は以下の欠点を有している：
・各符号化事象に対して、整数長さを有する符号語のみが関連付けられることができ、０．５より大きい確率を有する事象の効率的な符号化は行えない。
・符号化事象をブロック内のすべての変換係数に対する可変長を有する符号語へマッピングするための固定テーブルの使用は、位置または頻度に依存するシンボル統計を考慮していない。
・実際に存在するシンボルの統計への適応は不可能である。
・存在しているインターシンボルの冗長度からは利用できない。
【０２２７】
Ｈ．２６３規格のＡｎｎｅｘ  Ｅは、異なる所定のモデル確率分布が使用されている任意の非適応算術符号化を指定する。
・第１、第２、第３の事象（ＬＡＳＴ、ＲＵＮ、ＬＥＶＥＬ）ごとに１つ／ＥＳＣＡＰＥ
・全ての以下の事象（ＬＡＳＴ、ＲＵＮ、ＬＥＶＥＬ）に対して他の１つ／変換係数のブロックのＥＳＣＡＰＥ、および、
・ＥＳＣＡＰＥ事象の後に符号化されたシンボルＬＡＳＴ、ＲＵＮ、およびＬＥＶＥＬごとに１つ。
【０２２８】
しかしながら、以下の理由から、符号化効率のかなりの増加は、任意の算術符号化によって得ることができない：
・非整数の長さを有する符号語を符号化事象に関連付けることができるという算術符号化の利点は形態（ＬＡＳＴ、ＲＵＮ、ＬＥＶＥＬ）の結合した事象を用いることによって符号化効率に殆ど効果をもたない。
・異なる確率分布を使用するという利点が実際に存在するシンボル統計への適応が可能ではないという事実によって消される。
【０２２９】
Ｈ．２６４／ＡＶＣにおいて、変換係数を符号化するための可変長を有する符号語に基づくコンテクスト適応方法は、エントロピー符号化するための標準的な方法として指定される。ここで、変換係数のブロックの符号化は以下の特性によって決定される：
・ブロック内の有意係数の数と、変換係数のベクトルの終わりの１つに量子化された以降の係数の数と、の両方がシンボルＣＯＥＦＦ＿ＴＯＫＥＮによって決定される。ブロックタイプと近接ブロックに対して既に符号化／復号化されたシンボルＣＯＥＦＦ＿ＴＯＫＥＮとに基づいて、５個の定義付けられた符号語テーブルの１つが符号化のために選択される。
・係数のベクトルの終わりの１つに量子化された変換係数に対して、単一ビットだけが符号を指定するために転送されるのに対し、残っている有意変換係数の値（レベル）の符号化は結合された接頭および接尾符号語によって逆のスキャン順に行われる。
・有意変換係数の数が対応するブロックに対する変換係数の数より小さい場合、シンボルＴＯＴＡＬ＿ＺＥＲＯＳが符号化され、これは、係数ベクトルにおいて、最後の有意係数の前にあるゼロに量子化された変換係数の数を表している。このため、１８個の符号語のテーブルが指定され、これらのテーブルは、有意係数の数とブロックタイプに基づいて、切り替えられる。
・有意係数の前のゼロ（ＲＵＮ）に量子化された（非有意）係数のランレングスは、すでに符号化されているＲＵＮの合計がＴＯＴＡＬ＿ＺＥＲＯＳより小さい限り、有意変換係数ごとに、逆のスキャン順で、符号化される。既に符号化／復号化されたＴＯＴＡＬ＿ＺＥＲＯＳとＲＵＮに基づいて、７個の符号語テーブル間で切り替えが行われる。
【０２３０】
このいわゆる、ＣＡＶＬＣ方式（ＣＡＶＬＣ：コンテクスト適応型可変長符号化）は、コンテクストに応じたス符号語テーブルの切り替えにより、ＭＰＥＧ―２、Ｈ．２６３、およびＭＰＥＧ―４で指定される方法よりもはるかに効率的な変換係数の符号化を可能にするが、基本的に以下の欠点がある：
・既に符号化／復号化されたシンボルに基づいて異なる符号語テーブル間で切り替えが行われても、これらの符号語テーブルは、実際のシンボル統計に対して調整することができない。
・可変長を有する符号語を使用した場合、０．５より大きいシンボル確率を有する事象を効率的に符号化することはできない。この制約によって、異なるモデルの確率分布間を切り替えるために適切なコンテクストを構築することを可能にするかもしれないより小さな値の範囲を有するシンボルの符号化が特に妨げられる。
【０２３１】
ブロックベースの画像とビデオのコーダにおいて、変換係数を符号化する周知の方法の説明された欠点を回避することができる解決方法は、適応型エントロピー符号化と、シンボル間の冗長度を使用するために適切なコンテクストの生成と、の結合である。
【０２３２】
上述の符号化方式と比較して、次に説明されるアプリケーション例は、画像および／またはビデオコーダおよびデコーダにおいて変換係数を符号化するための方式を表し、これが、上述した欠点を克服し、特に、符号化に必要とされる計算量を少なく保つことができる。この符号化を図１〜１７を参照して実施形態に記載されたエントロピー符号化方式と結合することによって、きわめて効果的な符号化効率を得ることができる。
【０２３３】
第１の態様によれば、以下に説明する符号化方式は、画像および／またはビデオコーダおよびデコーダにおいて変換係数を符号化する方法を提供し、ここで、有意変換係数を含む（ビデオ）画像のブロックに対して、変換係数の符号化が、各ブロックに対して、
・スキャンプロセスにおいて、ブロック内の有意変換係数の位置、次に、
・逆スキャン順序―ブロック内の最後の有意変換係数から開始される―で有意変換係数の値（レベル）が決定されかつ符号化されるように、実行される。
【０２３４】
１つの好ましい実施形態は、ブロックの最後の変換係数以外のブロックの各有意変換係数が１ビットのシンボルによって特徴付けられることによって、特徴付けられる。
【０２３５】
また、有意変換係数ごとの符号が１ビットのシンボル（ＳＩＧＮ）によって表されかつ大きさが二値符号化シンボル（ＡＢＳ）によって表される場合に有利である。
【０２３６】
１つの好ましい実施形態において、有意変換係数を含むブロックは、たとえば、ＣＢＰまたはマクロブロックモードなどの他のシンタックス要素に関連して１ビットのシンボルＣＢＰ４によって特徴付けられる。
【０２３７】
ブロックの係数ごとに１ビットのシンボルＳＩＧと、ブロックの有意係数ごとに１ビットのシンボルＬＡＳＴを転送することによって、有意性マッピングが符号化されるという点がこの方法の特に有利な点であり、ここで、転送はスキャン順に行われ、ＳＩＧは有意係数を識別するために機能し、ＬＡＳＴはブロック内にこれ以上有意変換係数があるかどうかを示す。
【０２３８】
他の好ましい実施形態において、有意性マッピングを符号化するためにおよび／または係数の大きさを符号化するために、１ビットのシンボルＣＢＰ４に対するモデリングはコンテクストに依存した方法で行われる。したがって、これに匹敵する統計値を有する変換係数のブロックタイプはブロックカテゴリに集約される。
【０２３９】
本発明の方法の特別な実施形態において、有意情報（ＳＩＧ、ＬＡＳＴ）はブロックの最後のスキャン位置に転送されない、という点も利点である。
【０２４０】
好ましい実施形態において、大きさ（ＡＢＳ）は、単項二値化内のシンボルによって、または接頭部分と接尾部分とを有するシンボルによって、表され、ここで、接頭部分は１から成り、接尾部分は０番目の次数の指数ゴロムコードで符号化される。
【０２４１】
第２の態様によれば、本実施形態は、画像および／またはビデオコーダおよびデコーダにおいて変換係数を符号化する方法を実行するように形成された少なくとも１つのプロセッサおよび／またはチップを有する構成を提供し、有意変換係数を含む（ビデオ）画像のブロックに対して、今述べた方法で変換係数の符号化が実行される。
【０２４２】
第３の態様によれば、現在のアプリケーション例は、コンピュータのメモリにロードされた後、コンピュータが、画像および／またはビデオコーダおよびデコーダにおいて変換係数を符号化するための方法を実行することを可能にするコンピュータプログラムを提供し、有意変換係数を含む（ビデオ）画像のブロックに対して、変換係数の符号化は上で説明した方法で行われる。
【０２４３】
このようなコンピュータプログラムは、たとえば、（有料または無料で、自由にアクセスできるか、パスワードで保護されて）ダウンロード用のデータや通信ネットワークにおいて提供される。このようにして提供されるコンピュータプログラムは、請求項１１に記載のコンピュータプログラムが、たとえば、インターネットなどの転送用ネットワークからこのネットワークに接続されているデータ処理手段へダウンロードされる方法によって利用することができる。
【０２４４】
第４の態様によれば、本実施形態は、コンピュータのメモリにロードされた後、コンピュータが、画像および／またはビデオコーダおよびデコーダにおいて変換係数を符号化するための方法を実行することを可能にする、プログラムが格納されているコンピュータ読出し可能な記憶媒体を提供し、有意変換係数を含む（ビデオ）画像のブロックに対して、変換係数の符号化が説明された方法で行われる。
【０２４５】
変換係数を符号化する方法は、特に、以下の特徴によって特に特徴付けられる：
変換係数の２次元ブロックは、スキャンプロセスによって１次元ベクトルにマッピングされる。
・周知の方法で使用されているＥＯＢシンボル、ＬＡＳＴシンボルまたは係数カウンタ（有意係数の数）ならびにＲＵＮ（スキャン順序における非有意係数の数）のシンタックス要素は１ビットのシンボルＣＢＰ４と有意性マッピングによって置き換えられる。
・レベル（有意係数の大きさ）は、逆スキャン順に符号化される。
・コンテクストモデリングは新規な方法で行われる。
【０２４６】
図１８は、符号化方法を示す図である。変換係数の各ブロックに対して、高次のシンタックス要素（ＣＢＰまたはマクロブロックモード）が対象となるブロックが有意変換係数を含まないことをすでに表示していない限り、１ビットのシンボルＣＢＰ４が最初に転送される。ブロック内に有意係数が存在しない場合、ＣＢＰ４シンボルはゼロになる。１つの場合、有意変換係数の（スキャン順の）位置を指定する有意性マッピングが符号化される。これに続いて、有意係数の大きさと符号が逆スキャン順に転送される。符号化プロセスの詳細な説明は以下の１で行う。その後、二値エントロピー符号化のためのコンテクストモデリングを２で説明する。ここでは、ビンのエントロピー符号化がエントロピー符号化のための上記の実施形態のいずれかによって実行される。
【０２４７】
１．変換係数の符号化の説明
１．１．スキャン変換係数
各ブロックの変換係数は（たとえば、ジグザグスキャンなどの）スキャンプロセスによってベクトルにマッピングされる。
【０２４８】
１．２．ＣＢＰ４シンボル
ＣＢＰ４は、有意変換係数（変換係数がゼロに等しくない）がブロック内にあるかどうかを示す１ビットのシンボルである。ＣＢＰ４シンボルがゼロである場合、対応するブロックに対する更なる情報は転送されない。
【０２４９】
１．３．有意性マッピング
ＣＢＰ４シンボルが、対応するブロックが有意係数を含むことを示している場合、有意性マッピングは符号化される。これは、スキャン順に係数ごとに１ビットのシンボル（ＳＩＧ）を転送することによって行われる。対応する有意シンボルが１つ（有意係数）である場合、他の１ビットのシンボル（ＬＡＳＴ）が転送される。このシンボルは、現在の有意係数がブロック内の最後の有意係数であるかどうかまたはさらなる有意係数が後に続くかどうかを示す。図１９は、有意性マッピングを符号化するための方法を示す２つの例を示す。有意情報（ＳＩＧ、ＬＡＳＴ）は、ブロックの最後のスキャン位置に対して転送されない。有意性マッピングの転送が１つのＬＡＳＴシンボルによってまだ終了されていない場合、最後のスキャン位置における係数が有意であることが明らかである（図１９の黄色でマークされた位置を参照されたい）。
【０２５０】
１．４．レベルの情報
ブロック内の有意変換係数の位置が有意性マッピングによって明確に指定される。係数（レベル）の正確な値の符号化は、２つの符号化シンボル：ＡＢＳ（係数の大きさ）とＳＩＧＮ（係数の符号）によって行われる。ＳＩＧＮは１ビットのシンボルを表すが、図２０による二値化は係数（ＡＢＳ）の大きさを符号化するために使用される。区間［１；１４］の係数の大きさに対して、この二値化は単項二値化に対応している。１４より大きい係数の大きさに対する二値化は、１４個の１から成る接頭部分と、シンボル（ＡＢＳ−１５）に対する０次数の指数ゴロムコードを表す接尾部分と、から成る。二値化は、有意係数（ゼロに等しくない係数）は常に１と等しいまたはこれより大きい大きさ（ＡＢＳ）を有するので、０と等しい係数の大きさ（ＡＢＳ）に対する表現を含まない。
【０２５１】
１４より大きい係数の大きさに対する０次数の指数ゴロムコードから成る接頭部分と接尾部分から形成される二値化は、シンボル確率０．５を有する特別な非適応コンテクストが接尾部分の全ての二値決定に対する符号化効率を犠牲にすることなく使用できるという利点を有し、これによって符号化および復号化の計算量を削減することができる。
【０２５２】
これらのレベルは、（ブロック内の最新の有意係数で始まる）逆スキャン順に符号化される。これは二値エントロピー符号化に対して適切なコンテクストを形成することを可能とする。
【０２５３】
２．コンテクストモデリング
有意性マップの上記の符号化および値の二値化によって、割当部がコンテクストと関連付けられた確率に基づいて部分的なビットストリーム選択のためのパラメータを割り当てる、上記の実施形態のいずれかにより復号化／符号化されるシンボルシーケンスが生じ、これは以下のように決定される。
【０２５４】
一般に、画像および／またはビデオ符号化システムを考えた時、異なるタイプの変換係数ブロックが分化される。これにより、Ｈ．２６４／ＡＶＣ規格の現在の最終草案国際規格において異なる統計（図２１の表の左列）を有する、たとえば、１２種類の変換係数ブロックが存在している。大部分の画像シーケンスと符号化条件に対して、統計の一部は非常に類似している。使用するコンテクスト数を少なく保ち、よって、符号化される画像シーケンスの統計への迅速な適応を確実とするために、ブロックタイプは、Ｈ．２６４／ＡＶＣの規格において、たとえば、５つのカテゴリに分類することができる（図２１の表の右列を参照）。他の画像および／またはビデオ符号化システムに対しても同様の分類が可能である。Ｈ．２６４／ＡＶＣ規格における５つのカテゴリの各々に対して、コンテクストの個々の量がシンボルＣＢＰ４、ＳＩＧ、ＬＡＳＴおよびＡＢＳに対して使用される。
【０２５５】
２．１．ＣＢＰ４シンボルのためのコンテクストモデリング
１ビットのシンボルＣＢＰ４を符号化するために、４つの異なるコンテクストが個別の変換ブロックのカテゴリごとに使用される（図２１参照）。符号化されるブロックＣのコンテクスト番号は、
ｃｔｘ＿ｎｕｍｂｅｒ＿ｃｂｐ４（Ｃ）＝ＣＢＰ４（Ａ）＋２×ＣＢＰ４（Ｂ）
によって決定される。ここで、同じブロックタイプに関連付けられると見なされるブロックＣのそれらの近接ブロック（左と上）はＡとＢで指定される。Ｈ．２６４／ＡＶＣ規格に関して、以下の６つのブロックの種類：Ｌｕｍａ―ＤＣ、Ｌｕｍａ―ＡＣ、Ｃｈｒｏｍａ―Ｕ―ＤＣ、Ｃｈｒｏｍａ―Ｕ―ＡＣ、Ｃｈｒｏｍａ―Ｖ―ＤＣおよびＣｈｒｏｍａ―Ｖ―ＡＣは、この条件づけに応じて区別されている。変換係数の関連するブロックＸ（ＡまたはＢ）が、近接するマクロブロック内に存在しない場合（これは、たとえば、現在のブロックがＩＮＴＲＡ１６×１６モードで符号化されるが、近接ブロックがＩＮＴＥＲモードで転送された場合である）、ＣＢＰ４（Ｘ）は近接ブロックＸに対してゼロに設定される。近接ブロックＸ（ＡまたはＢ）が画像領域の外にあるかまたは他のスライスに属している場合、対応する値ＣＢＰ４（Ｘ）はデフォルト値に置き換えられる。デフォルト値１はＩＮＴＲＡ符号化ブロックに使用され、デフォルト値０はＩＮＴＥＲ符号化ブロックに使用される。
【０２５６】
２．２．有意性マッピングを符号化するためのコンテクストモデリング
有意性マッピングを符号化するために、ｍａｘ＿ｋｏｅｆｆ−１の異なるコンテクストがシンボルＳＩＧとＬＡＳＴを符号化するためにブロックカテゴリごとに使用される（図２１を参照）。よって、ｍａｘ＿ｋｏｅｆｆは、対応するブロックカテゴリの変換係数の数を指定する（Ｈ．２６４／ＡＶＣついては、図２１を参照）。コンテクスト番号は常に、考慮される係数の対応するスキャン位置によって表される。ｉ番目の係数としてスキャンされた係数ｋｏｅｆｆ［ｉ］のコンテクスト番号はしたがって以下のようになる：
ｃｔｘ＿ｎｕｍｂｅｒ＿ｓｉｇ（ｋｏｅｆｆ［ｉ］）＝ｃｔｘ＿ｎｕｍｂｅｒ＿ｌａｓｔ（ｋｏｅｆｆ［ｉ］）＝ｉ
２＊ｍａｘ＿ｋｏｅｆｆ−２のコンテクストは有意性マッピングを符号化するためのブロックタイプのカテゴリごとに使用される。
【０２５７】
２．３．係数の大きさを符号化するためのコンテクストモデリング
図２０に示した二値化は、有意変換係数の大きさを符号化するために使用される。ブロックカテゴリごとに２つの異なるコンテクストの量が使用される。すなわち、１つは、二値化の最初の二値決定ビン：ｂｉｎ＝１（図２０でオレンジ色にマーキング）を符号化するもの、他の１つは、二値決定ビン：ｂｉｎ＝２．．１４（図２０で緑色にマーキング）を符号化するものである。よって、コンテクスト番号は以下のように関連付けられる：
ｃｔｘ＿ｎｕｍｂｅｒ＿ａｂｓ＿１ｂｉｎ
＝（ｋｏｅｆｆ  ｗｉｔｈ  ＡＢＳ＞１  ｃｏｄｅｄ  ？  ４：
ｍａｘ（３、ＡＢＳ＝１の符号化された係数の数））、
ｃｔｘ＿ｎｕｍｂｅｒ＿ａｂｓ＿ｒｂｉｎｓ
＝ｍａｘ（４、ＡＢＳ＞１の符号化された係数の数））。
【０２５８】
変換係数の大きさは逆スキャン順に転送される。最初の二値決定に対するコンテクストは、ＡＢＳ＝１の大きさを有する既に（逆スキャン順に）転送された係数の数によって決定される。大きさがＡＢＳ＝１の３つより多い係数が既に転送された場合、コンテクスト番号３が常に選択される。大きさがＡＢＳ＞１の係数が転送されるやいなや、ブロック内のすべての残留有意係数に対してコンテクスト４が使用される。
【０２５９】
ｂｉｎ＝２．．１４を有するすべての二値決定は１および同じコンテクストを用いて符号化される。したがって、コンテクスト番号は大きさがＡＢＳ＞１の既に（逆スキャン順に）既に符号化された係数の数によって決定され、ここで、最大のコンテクスト番号は４に制限される。例を説明するため、有意変換係数の大きさＡＢＳを符号化するときのコンテクスト選択の２つの例を図２３に示す。係数の大きさおよび符号ＳＩＧＮに対して、二値決定ｂｉｎ＞１４を符号化するために、シンボル確率Ｐ０＝Ｐ１＝０．５である個別の非適応コンテクストが使用される。
【０２６０】
したがって、図１８〜２３に示す応用実施形態は画像および／またはビデオコーダおよびデコーダにおいて変換係数を符号化することに関しており、ここで、有意変換係数を含む（ビデオ）画像のブロックに対して、変換係数の符号化は、ブロックごとに、スキャンプロセスにおいて、ブロック内の有意変換係数の位置、次に、ブロック内の最後の有意変換係数から開始される逆スキャン順に有意変換係数の値（レベル）が求められ符号化されるように実行される。ブロックの最後の変換係数以外のブロックの各々の有意変換係数は、１ビットのシンボルによって特徴づけられる。また、有意変換係数ごとに、符号は１ビットのシンボル（ＳＩＧＮ）によって示されてもよいし、大きさは二値符号化シンボル（ＡＢＳ）によって示される。大きさは単項二値化でシンボル（ＡＢＳ）によってまたは接頭部分と接尾部分を有するシンボル（ＡＢＳ）によって示されてもよく、ここで、接頭部分は１から成り、接尾部分は０次数の指数ゴロムコードで符号化される。有意変換係数を含むブロックは、たとえば、ＣＢＰまたはマクロブロックモードなどのさらなるシンタックス要素との関係において１ビットのシンボルＣＢＰ４によって特徴付けられる。さらに、ブロックの係数ごとに１ビットのシンボル（ＳＩＧ）とブロックの有意係数ごとに１ビットのシンボル（ＬＡＳＴ）を転送することによって有意性マッピングが符号化されうり、ここで、転送はスキャン順に行われ、（ＳＩＧ）は有意係数を識別し、（ＬＡＳＴ）はブロック内に更なる有意変換係数があるかどうかを示す。１ビットのシンボルＣＢＰ４に対して、有意性マッピングを符号化するためおよび／または係数の大きさを符号化するためのモデリングをコンテクストに依存する方法で行うことができる。有意情報（ＳＩＧ、ＬＡＳＴ）はブロックの最後のスキャン位置に対して転送されない。比較可能な統計を有する変換係数のブロックタイプはブロックカテゴリへ集約することができる。
【０２６１】
言いかえれば、変換係数レベルの符号化は３つのステップに分割することができる。第１のステップにおいて、変換ブロックごとに二値シンタックス要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇが送信され、変換ブロックが有意変換係数レベル（すなわち、非ゼロである変換係数）を含むかどうかを通知する。このシンタックス要素が、有意変換係数レベルが存在していることを示す場合、二値の値の有意性マップが符号化され、どの変換係数レベルが非ゼロ値を有しているかを指定する。次に、逆スキャン順に、非ゼロ変換係数レベルの値が符号化される。有意性マップは以下のように符号化される。スキャン順で係数ごとに、二値シンタックス要素ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが符号化され、対応する変換係数レベルがゼロと等しくないかどうかを指定する。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇビンが１と等しい場合、すなわち、非ゼロの変換係数レベルがこのスキャン位置に存在する場合、更なる二値シンタックス要素ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが符号化される。このビンは、現在の有意変換係数レベルがブロック内部で最後の有意変換係数レベルであるかどうかまたは更なる有意変換係数レベルがスキャン順に続くかどうかを示す。ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが更なる有意変換係数が続いていないことを示す場合、ブロックに対する有意性マップを指定するための更なるシンタックス要素は符号化されない。次のステップにおいて、ブロック内のロケーションが有意性マップによって既に決定されている有意変換係数レベルの値が符号化される。有意変換係数レベルの値は以下の３つのシンタックス要素を使用して逆スキャン順に符号化される。二値シンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅは、有意変換係数レベルの絶対値が１より大きいかどうかを示す。二値シンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅが絶対値が１より大きいことを示す場合、さらなるシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅが送信され、これは変換係数レベルの絶対値マイナス１を指定する。最後に、変換係数値の符号を指定する、二値シンタックス要素ｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇは有意変換係数レベルごとに符号化される。ここでも、有意性マップに関連しているシンタックス要素はスキャン順に符号化される一方、変換係数レベルの実際の値に関連しているシンタックス要素は逆スキャン順に符号化され、より適切なコンテクストモデルの使用を可能にすることに留意されたい。
【０２６２】
Ｈ．２６４のＣＡＢＡＣエントロピー符号化において、変換係数レベルに対する全てのシンタックス要素は二値確率モデリングを用いて符号化される。非二値シンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅは最初に二値化され、すなわち、それは二値決定（ビン）シーケンスにマッピングされ、これらのビンは順に符号化される。二値シンタックス要素ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ、ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅ、およびｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇは直接符号化される。（二値シンタックス要素を含む）各符号化されたビンはコンテクストと関連付けられる。コンテクストは符号化されたビンの等級ごとの確率モデルを表す。２つの可能なビン値の１つに対する確率に関連する測度は、対応するコンテクストで既に符号化されているビンの値に基づいてコンテクストごとに予測される。変換符号化に関連したいくつかのビンに対して、符号化するために使用されるコンテクストはすでに送信されたシンタックス要素に基づいてまたはブロック内の位置に基づいて選択される。
【０２６３】
有意性マップはスキャン位置に対する（変換係数レベルがゼロとは異なる）有意性に関する情報を指定する。Ｈ．２６４規格のＣＡＢＡＣエントロピー符号化において、４×４のブロックサイズの場合、二値シンタックス要素ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇを符号化するためのスキャン位置ごとに分離したコンテクストが使用され、ここで、スキャン位置のｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇに対して異なるコンテクストが使用される。８×８のブロックの場合、同じコンテクストモデルが４つの連続スキャン位置に対し使用され、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇに対して１６個のコンテクストモデルが生じ、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇに対して更なる１６個のコンテクストモデルが生じる。
【０２６４】
有意性マップを符号化した後、ブロックは逆スキャン順に処理される。スキャン位置が有意である場合、すなわち、係数がゼロと異なる場合、二値シンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅが送信される。初めに、対応するコンテクストモデルの集合の２番目のコンテクストモデルがｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅシンタックス要素に対して選択される。ブロック内の任意のｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅシンタックス要素の符号化された値が１にと等しい場合（すなわち、絶対的な係数が２より大きい場合）、コンテクストモデリングは集合の最初のコンテクストモデルにスイッチバックされかつブロックの最後までこのコンテクストモデルを使用する。そうでない場合（ブロック内ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅのすべての符号化された値がゼロでありかつ対応する絶対値係数レベルが１と等しい場合）、コンテクストモデルは、考えられるブロックの逆スキャン順に既に符号化／復号化されているゼロと等しいｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅシンタックス要素の数に基づいて、選択される。シンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅに対するコンテクストモデル選択は以下の等式によって要約される。ここで、現在のコンテクストモデルインデックスＣｔ＋１は、前のコンテクストモデルインデックスＣｔと、等式においてｂｉｎｔで表される前に符号化されたシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅの値に基づいて選択される。ブロック内の最初のシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅの場合、コンテクストモデルインデックスはＣｔ＝１にと等しく設定される。
【数４６】
2014534677.tif 000055
【０２６５】
同じスキャン位置に対するｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅシンタックス要素が１と等しいとき、絶対変換係数レベルを符号化するための２番目のシンタックス要素である、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅのみが符号化される。非二値シンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅはビンシーケンス内およびこの二値化の最初のビンに対して二値化される。コンテクストモデルインデックスは以下に説明するように選択される。二値化の残留ビンは固定コンテクストで符号化される。二値化の最初のビンに対するコンテクストは次のように選択される。最初のｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅシンタックス要素について、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅシンタックス要素の最初のビンに対するコンテクストモデルの集合の最初のコンテクストモデルが選択され、対応するコンテクストモデルインデックスは、Ｃｔ＝０と等しく設定される。ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅシンタックス要素の更なる最初のビンごとに、コンテクストモデリングは、集合内のコンテクストモデルの数が５に制限される、集合の次のコンテクストモデルに切り替わる。コンテクストモデルの選択は、現在のコンテクストモデルインデックスＣｔ＋１が前のコンテクストモデルインデックスＣｔに基づいて選択される、次の式によって表すことができる。上述のように、ブロック内の最初のシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅに対して、コンテクストモデルインデックスはＣｔ＝０と等しく設定される。コンテクストモデルの異なる集合がシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｇｒｅａｔｅｒ＿ｏｎｅとｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅに対して使用されることに留意されたい。
Ｃｔ＋１（ｃｔ）＝ｍｉｎ（Ｃｔ＋１、４）。
【０２６６】
先に説明したエントロピー符号化の実施形態に今説明した応用実施形態を組み合わせた場合、個々のコンテクストに割り当てられた確率は、たとえば、エントロピーエンコーダ（上述した、確率を確率の部分的ビットストリームのより小さい集合に量子化した後などの、複数の部分的ビットストリームパスの中のエントロピーデコーダ）を選択するために使用されるパラメータとしてまたはパラメータの少なくとも１つとして使用することができる。換言すれば、シンボルシーケンスの復元が有意性マッピングの連続的な定義付けかつこれに続く逆スキャン順にゼロと等しくない変換係数の値の符号化は以上に説明した実施形態のいずれかによるデコーダを使用して行うことができる。
【実施例２】
【０２６７】
上に概略的に述べられたエントロピー符号化の実施形態のアプリケーションについての実施例２によれば、より高い圧縮効率を有する改良されたエントロピー符号化設計が達成される。
【０２６８】
エントロピー符号化された情報シンボルを得るために情報シンボルのシンボルシーケンスをエントロピー符号化するための装置であって、シンボルシーケンスはスタートシンボルを有している装置は、このシンボルに対する確率情報に基づいてシンボルシーケンスのシンボルをエントロピー符号化するためのエントロピーエンコーダであって、このシンボルはシンボル集合の一部であり、エントロピー符号化された情報シンボルを生成するエントロピーエンコーダと、このシンボルのコンテクストに基づいてこのシンボルの確率情報を導出するためのコンテクストモデラと、を含み、このコンテクストはこのシンボルを処理する前にエントロピーエンコーダによって処理された１以上のコンテクストシンボルを含み、コンテクストモデラは初期化確率情報を判定しかつこれをエントロピーエンコーダへ提供することによってコンテクストモデラを初期化するための初期化部を含み、この初期化確率情報はスタートシンボルを処理するためにエントロピーエンコーダによって使用され、初期化部は、初期化確率分布がシンボルの集合の全てのシンボルに対する等確率分布とは異なるように、スタートシンボルに関連したシンボル統計の推定に基づいて、初期化確率情報を決定するために動作可能である。エントロピーエンコーダは、前述した実施形態のいずれかに基づいて具現化することができる。
【０２６９】
エントロピー符号化された情報シンボルをエントロピー復号化するためのデコーダであって、エントロピー符号化された情報シンボルはシンボルに対する確率情報に基づいてシンボルシーケンスのシンボルをエントロピー的に符号化することによって生成され、このシンボルはシンボル集合の一部であり、このシンボルに対する確率情報はシンボルのコンテクストに基づいて求められ、このコンテクストは先に処理された１以上のコンテクストシンボルを含み、スタートシンボルをエントロピー的に符号化するために初期化確率情報が使用されており、この初期化確率情報はスタートシンボルに関連しているシンボル統計の推定に基づいておりかつ初期化確率分布がシンボルの集合の全てのシンボルに対する等確率分布とは異なるように決定される、デコーダは、スタートシンボルを有する情報シンボルのシンボルシーケンスを得るためにエントロピー符号化された情報シンボルをエントロピー復号化するためのエントロピーデコーダと、この情報シンボルシーケンスをエントロピー符号化するときに使用される確率情報を得るためのコンテクストモデラトを含み、このコンテクストモデラはスタートシンボルをエントロピー符号化する時に使用される初期化確率情報を取得するための初期化部を含む。このエントロピーデコーダは前述した実施形態のいずれかに基づいて具現化することができる。
【０２７０】
改良された圧縮効率は、初期化確率情報が該当するシンボル集合のすべてのシンボルに対する等確率分布とは異なるように、コンテクストモデラを初期化することによって得ることができる。特に、初期化部は、少なくともスタートシンボルに関連しているシンボルの統計の推定に基づくシンボルシーケンスのスタートシンボルに対して使用される初期化確率情報を決定するために動作可能であることから、初期化確率情報はシンボル集合のすべてのシンボルに対する等確率分布とは異なる。
【０２７１】
特に、この「インテリジェント」初期化は、異なるビデオソースからの多用に変化するコンテンツを有するビデオ素材を符号化するために有利である。本発明の好ましい実施形態において、初期確率情報は符号化された情報を量子化するために使用される量子化パラメータに基づいて導出することができることが分かっている。ビデオ符号化アプリケーションにおいて、および、特に、Ｈ．２６４／ＡＶＣビデオ圧縮規格に関連しているビデオ符号化アプリケーション用において、エントロピー符号化される情報シンボルのシンボルシーケンスは、たとえば、時間／空間的なインター／イントラフレーム予測モードによって得られる変換された残留値から求められる。
【０２７２】
さらに、インテリジェントな初期化をビデオソース素材についての事前知識に基づいて有利に行うことができる。特に、圧縮効率は、初期化値のいくつかの集合を定義付けることによって向上することが分かっている。いわゆるＩ―またはＳＩ―スライスに対しては、たとえば、初期化値の単一集合で十分間に合う。いわゆるＰ―、ＳＰ―またはＢ―スライスなどの時間的に予測符号化されるスライスに対して、１つより多くの、好ましくは、３つの異なる初期化値の集合を定義付けることができる。これらのスライスに対して、初期化値の選択された集合はエンコーダ出力ビットストリームにおいてあるシンタックス要素によって指定され、これによって、符号化された出力ビットストリームを処理するデコーダが正確にそれ自体を初期化することが可能である。好ましくは、このシンタックス要素はスライスヘッダの一部として送信される。ここで、エンコーダはスライスごとのシンボル統計に対して最も適切な値である初期化値の集合を選択する自由度を有している。
【０２７３】
好ましくは、初期化値が、エントロピーエンコーダによって処理されるシンボルシーケンスがどのデータタイプまたはサブデータタイプに属しているかを検出することによって、さらに多様化する。この特定のタイプはコンテクストインデックス変数によって表示される。このコンテクストインデックス変数は、好ましくは、対応する数の初期化確率情報を導出することができる最大３９９個の異なるコンテクストモデルから１つを信号伝達できるように設計され、これにより、各々がスタートシンボルを有する多数の異なるシンボルシーケンスに対して、最適に適応された初期化が決定される。
【０２７４】
エントロピー符号化されるシンボルは異なるコンテクストモデルを帰属させているということに留意しなければならない。好ましくは、複数のシンボルまたはビットは複数のコンテクストモデルのうち１つのコンテクストモデルを使用して符号化される。これらの複数のシンボルやビットはシンボルシーケンスを形成し、ここで、シンボルシーケンスの最初に符号化されるシンボル、すなわち、コンテクストモデルを帰属させたシンボルシーケンスはスタートシンボルである。コンテクストモデルは、１つまたは１つより多い確率モデルを含むことができる。１つより多くの確率モデルを有するコンテクストモデルの場合、確率モデルが変化するたびに、新しい初期化が行われる。
【０２７５】
以下において、エントロピー符号化装置またはエントロピー符号化方法の構造および機能を示す図２４を参照されたい。特に、図２４は、エントロピー符号化された情報シンボルを取得するために情報シンボルのシンボルシーケンスをエントロピー符号化するための装置を示し、ここで、シンボルシーケンスはスタートシンボルを有している。シンボルシーケンスは、エントロピーエンコーダ１１１２のシンボルシーケンス入力へ入力される。エントロピー符号化された情報シンボルは、エントロピーエンコーダ１１１２にも接続されているエントロピーエンコーダ出力１１１４で出力される。エントロピーエンコーダは、シンボルの確率情報に基づいてシンボルシーケンスのシンボルをエントロピー符号化するよう演算する。確率情報は、確率情報入力１６を介して、エントロピーエンコーダ１１１２へ入力される。シンボルは、二値の場合、２つの異なるシンボル、すなわち、二値「０」と二値「１」のみを含む、指定されたシンボル集合の一部であるので、シンボルの集合の１つのシンボルに対してのみ確率情報を提供するには十分である。本発明によれば、この数が最大確率シンボルに対する確率よりも必然的に小さいので、最小確率シンボル（ＬＰＳ）の確率情報を提供することが好ましいとされる。さらに、確率情報入力１１１６を介してエントロピーエンコーダに与えられる確率情報は、最小確率シンボルの値またその逆の値を容易に求めることができる、最大確率シンボルの値を含む。
【０２７６】
エンコーダは、シンボルのコンテクストに基づいてシンボルに対する確率情報を得るためのコンテクストモデラ１１１８を更に含む。このコンテクストは、コンテクスト入力１１２０によってコンテクストモデラへ入力された１以上のコンテクストシンボルを含み、これらのコンテクストシンボルは実際のシンボルを処理する前にエントロピーエンコーダ１１１２によって処理されている。
【０２７７】
コンテクストモデラ１１１８は、初期化確率情報がスタートシンボル、すなわち、コンテクストシンボルが全く存在しないシンボルシーケンスのシンボル、すなわち、スタートシンボルに先行してエントロピーエンコーダ１１１２によって処理されたシンボル、を処理するためにエントロピーエンコーダ１１１２によって使用される時、初期化確率情報を決定しこれをエントロピーエンコーダ１１１２へ提供することによってコンテクストモデラを初期化するために初期化部１１２０を含む。これは、エントロピー符号化方式が連続方式であるので、スタートシンボルがシンボルシーケンスの最初のシンボルであることを意味する。
【０２７８】
初期化部は、初期化確率がスタートシンボルが属するシンボル集合のすべてのシンボルに対して等確率分布とは異なるように、スタートシンボルに関連するシンボル統計の推定に基づいて初期化確率情報を判定するように動作可能である。
【０２７９】
コンテクストモデラ、よって、エントロピーコーダが、エントロピーエンコーダによってシンボルシーケンスが符号化されることが予想されるシンボル統計の推定に基づいてインテリジェントに初期化されるので、エントロピー符号化装置は改良されたスタートアップ性能を示す。言い換えれば、エントロピー符号化装置は、スタートシンボルに対して、スタートシンボルが最初のシンボルシーケンスではないが中間のシンボルシーケンスであるかのように振舞う。よって、初期化により、スタートシンボルに対してエントロピー符号化装置の事前適応が既に得られることになる。初期化確率情報が等確率分布に設定される、単純なアプローチとは対照的に、エントロピーエンコーダはすぐにコンテクスト事前適応となる。単純なアプローチの場合、コンテクスト適応は、コンテクストシンボルを形成する先行して符号化されたシンボルの数に対応するいくつかのステップを必要とする。
【０２８０】
コンテクストモデラとエントロピーエンコーダの本発明の初期化は、単にインテリジェント初期化確率情報を提供することにより、これ以上のアクションを取らずして、単純な等確率分布と比較すると、３％程度までのビットレートの節約になることが分かっている。
【０２８１】
図２５は、図２４に示した初期化部１０２０の好ましい実施形態を示す。初期化部１１２０は、スライスヘッダからシンボルシーケンスへの量子化パラメータを検索するための検索部を含む。また、スライスヘッダも、スライスデータのデータタイプを検出するための検出部へ入力される。更に、スライスデータのサブデータタイプを検出するための検出部１２０４が提供されている。検出部１２０４は更に、検出されたサブデータのタイプに基づいて様々な初期化テーブルにアクセスするため動作可能である。後述するように、様々な初期化テーブルへのアクセスは一方でコンテクストインデックスによって、好ましくは、他方で初期化インデックスによって、制御される。スライスデータに応じて、Ｉ―およびＳＩ―スライスに対するあるコンテクストインデックスを有する初期化テーブルが１つだけ存在する。Ｐ―およびＢ―スライスに対して、少なくとも２つ、好ましくは３つの、ここでもコンテクストインデックスによってアドレスされる初期化テーブルが存在しており、ここで、実際に使用される少なくとも２つのテーブルうちのテーブルが初期化インデックスによってアドレスされる。
【０２８２】
算出部１２０６は、一方で検索部１２００、他方で検出部１２０４に接続されている。算出部１２０６は、実際の初期化確率、あるいは、好ましい実施形態によれば、確率状態のインデックス、すなわち、最小確率シンボルに対する確率情報を含む初期化確率情報テーブルに対する基準値となり得る、初期化確率に関する情報を計算するように動作可能である。発明者によって、スライスデータを量子化するために使用される量子化パラメータからの初期化確率の線形依存から改良された圧縮効率、すなわち、最適初期化に近いものを得ることができることが見出された。したがって、図２５の算出部１２０６は線形計算を適用するために動作可能であり、ここで、パラメータｍは線形依存の勾配を示すが、他の初期化パラメータ、すなわち、ｎは、ｙ―軸のオフセットを示す。図２５における算出部１２０６によって処理される基本的な等式はブロック２０６では、
ｍ×ＱＰ＋ｎ
と表され、ここで、ＱＰは量子化パラメータであるが、ｍとｎは、あるコンテクストインデックスによってアドレスされる異なる初期化テーブルから取り出された初期化パラメータである。
【０２８３】
好ましい実施形態において、図２５の算出部１２０６は、図２６に示すような一連のステップを実行する。最初のステップにおいて、式ｍ×ｓｌｉｃｅＱＰ＋ｎが計算される。ここで、図２６の好ましい実施形態において、ｍ×ｓｌｉｃｅＱＰの値Ｆが４桁右にシフトされていることに留意されたい。当然のことながら、ここでは、すべての値が二値ストリングであることに留意されたい。４桁のシフトは、２つの相補的なプレゼンテーションにおける積ｍ×ｓｌｉｃｅＱＰの表示に関連している。次に、このシフト後の結果が他の初期化パラメータｎに加算される。次いで、一方でこの結果の最小値、他方で整数値１１２６が選択される。この最小値が１より大きい場合、この最小値が選択され補助変数ｐｒｅＣｔｘＳｔａｔｅに割り当てられる。次に、この補助変数が６３より小さいかまたはこれと等しいかどうかが判定される。この判定が肯定された場合、確率状態インデックス変数ｐＳｔａｔｅＩｄｘは６３と補助変数との差として計算される。さらに、最大確率シンボル（ｖａｌＭＰＳ）の値がゼロと等しいと判定される。他のケースの場合、すなわち、補助変数が６３より大きい場合、確率状態インデックスｐＳｔａｔｅＩｄｘは補助変数と値６４の差として計算される。さらに、最大確率シンボルの値が１に設定される。
【０２８４】
確率状態インデックスが最小確率シンボルに対する確率情報を含む初期化確率情報テーブルへの基準であることに留意されたい。確率状態インデックスの値は確率情報テーブル内で６４個の異なる確率情報値をアドレスすることができる。最初に確率状態インデックスを計算してから次にこの確率状態インデックスを用いてテーブルをアドレスする理由は、実際のエントロピーエンコーダコアの改良された設計部分である。当然ながら、適切なマッピングによって、図２６に示される一連のステップもこの初期化確率情報を直接計算することができる。
【０２８５】
量子化パラメータＳｌｉｃｅＱＰは、変換係数の量子化を決定するために使用される。パラメータは５２個の値をとる。これらの値は、量子化パラメータが１つ増加すれば、量子化ステップサイズが約１２％大きくなることを意味する（６増加すれば、２の因数分、量子化ステップサイズが大きくなることを意味する）ように配置することができる。約１２％のステップサイズの変化が大まかに約１２％のビットレートの減少を意味することが分かる。
【０２８６】
以下において、本発明のエントロピーデコーダを示す図２７を参照する。従来技術のエントロピー符号化／復号化において既知であるように、エントロピーデコーダは、送信された区間（いうまでもなく二値形式で表される）を復号化されたビット、すなわち、スタートシンボルを有する情報シンボルシーケンスへ分解するために、エンコーダによってそれぞれの符号化ステップに対して使用される同一の確率分布を必要とする。このため、本発明のエントロピーデコーダは、エントロピーデコーダ１１６０と、初期化部１１６４を含むコンテクストモデラ１１６２と、を含む。ここで、図２７に示されるデコーダが図２４のエンコーダと同様に構築されていることが分かる。ここでも、コンテクストモデラ１１６２は、確率情報、すなわち、シーケンスのスタートシンボルに関しては、初期化確率情報を提供する。この情報は、図２４に関して説明した方法と同様の方法、すなわち、それぞれのスライス量子化パラメータを決定すること、あるコンテクストインデックスを決定すること、および、エントロピーデコーダがスタートシンボルを処理するために演算可能であるときに初期化確率情報を算出するための対応する初期化パラメータｍ、ｎを決定することによって、生成される。エンコーダ内のシンボルシーケンスのスタートシンボルは符号化される最初のシンボルでありかつ復号化される最初のシンボルでもあるので、エントロピー符号化／復号化チェーンは一種の先入れ先出しのパイプラインであることに留意されたい。したがって、図２７に示したエントロピーデコーダには、図２４に示したエントロピーエンコーダに関連して説明されたものと同じ初期化プロセスを使用することができる。
【０２８７】
正規のコンテクスト適応モードに関して、コンテクストモデラもまた、図２４に関連して説明されたものと同じ演算ステップを実行することができる。
【０２８８】
図２４と図２７の両図において、エントロピーエンコーダ／デコーダは、以前の図１〜図１７に示したものと同様に実施可能である。
【実施例３】
【０２８９】
実施例３において、以上に記載された実施形態のいくつかの拡張が記載される。
【０２９０】
これは、符号化または復号化されるシンボルの基礎にある確率推定がインデックスｐ＿ｓｔａｔｅを使用して確率状態Ｐｎに関連付けられている場合に特に有利である。
【０２９１】
たとえば、Ｎ個の異なる代表的確率状態がある。同じく、遷移ルールが付与されうり、ここで、遷移ルールは、現在符号化または復号化されたシンボルに基づいて、符号化または復号化される次のシンボルに対して、どの新しい状態が使用されるかを示している。したがって、現在付与されている確率状態Ｐｎのインデックスｎのほかに最小確率シンボル（ＬＰＳ）が出現するときに新しい確率状態Ｐｍのインデックスｍを含むテーブルＮｅｘｔ＿Ｓｔａｔｅ＿ＬＰＳが作成される場合、および／または、現在付与されている確率状態Ｐｎのインデックスｎのほかに最大確率シンボル（ＭＰＳ）が出現するときに新しい確率状態Ｐｍのインデックスｍを含むテーブルＮｅｘｔ＿Ｓｔａｔｅ＿ＭＰＳが作成される場合に有利である。
【０２９２】
符号化の１つの特別なインプリメンテーションは以下のステップを含む：
１．ＬＰＳを決定するステップ
２．量子化するステップ
ｐ＝ｑｕａｎｔｉｚｅ［ｐ＿ｓｔａｔｅ］
３．符号化／復号化するステップ
部分的ビットストリームを選択するためのパラメータとしてｐを使用してビットを符号化／復号化する
４．ｐ＿ｓｔａｔｅを適応するステップ：
ｉｆ（ｂｉｔ＝１−ｖａｌＭＰＳ）  ｔｈｅｎ
ｐ＿ｓｔａｔｅ←Ｎｅｘｔ＿Ｓｔａｔｅ＿ＬＰＳ［ｐ＿ｓｔａｔｅ］
ｉｆ（ｐ＿ｓｔａｔｅ＝０）  ｔｈｅｎ  ｖａｌＭＰＳ←１−ｖａｌＭＰＳ
ｅｌｓｅ
ｐ＿ｓｔａｔｅ←Ｎｅｘｔ＿Ｓｔａｔｅ＿ＭＰＳ［ｐ＿ｓｔａｔｅ］
ここで、
ｂｉｔ  復号化／符号化される現在のビット、
ｐ＿ｓｔａｔｅ  ビットに割り当てられたコンテクストの現在の確率状態、
ｖａｌＭＰＳ  ＭＰＳに対応するビットの値
である。
【０２９３】
さらに、確率モデルの初期化が量子化パラメータＳｌｉｃｅＱＰとプリセットされたモデルパラメータｍとｎに応じて実行される場合に有利であることが分かる。ここで、ＳｌｉｃｅＱＰはスライスの初めにプリセットされた量子化パラメータを記述し、ｍとｎはモデルパラメータを記述している。
【０２９４】
確率モデルの初期化が以下のステップを含む場合にも有利である：
１．ｐｒｅＳｔａｔｅ＝ｍｉｎ（ｍａｘ（１、（（ｍ＊ＳｌｉｃｅＱＰ）＞＞４）＋ｎ）、２ ＊（Ｎ−１））
２．ｉｆ（ｐｒｅＳｔａｔｅ＜＝ Ｎ−１）ｔｈｅｎ、
ｐ＿ｓｔａｔｅ＝Ｎ−１−ｐｒｅＳｔａｔｅ
ｖａｌＭＰＳ＝０
ｅｌｓｅ
ｐ＿ｓｔａｔｅ＝ｐｒｅＳｔａｔｅ−Ｎ
ｖａｌＭＰＳ＝１
ここで、ｖａｌＭＰＳはＭＰＳに対応するビットの値を記述し、ＳｌｉｃｅＱＰはスライスの初めにプリセットされた量子化パラメータを記述し、ｍとｎはモデルパラメータを記述している。
【０２９５】
理論的背景をより詳細に説明する。
【０２９６】
テーブルを利用した確率推定
既に上述したように、符号化されるシンボルの出現確率の推定はできるだけ良好であるべきである。非定常ソース統計への適応を可能にするために、この推定は、符号化プロセスの過程で更新される必要がある。一般に、これには符号化された結果値のスケーリングされた頻度カウンタを使用して演算する通常の方法が用いられる。ＣＬＰＳとＣＭＰＳがＬＰＳおよびＭＰＳの出現頻度に対するカウンタを示している場合、これらのカウンタを用いて推定
【数４７】
2014534677.tif 000056
【０２９７】
が実行され、次に、エントロピー符号化／復号化はこの確率を用いて実行される。実用的な用途に対して、等式（Ｃ１）において必要とされる分割は不利である。しかしながら、全体カウンタＣＴｏｔａｌ＝ＣＭＰＳ＋ＣＬＰＳの所定のしきい値Ｃｍａｘが超えた場合のカウンタの読み値の再スケーリングを実行するために、しばしば、便利であり必要とされる。Ｃｍａｘの適切な選択によって、ＣＴｏｔａｌの逆数の値を集計することができ、これによって等式（Ｃ１）に必要とされる分割はテーブルアクセスおよび乗算とシフト演算に置き換えることができる。しかしながら、これらの算術演算を回避するために、本発明においては、確率推定のために完全に表支援された方法が使用される。
【０２９８】
このため、トレーニングフェーズにおいて、代表的確率状態｛ＰＫ｜０≦ｋ＜Ｎｍａｘ｝が前もって選択され、ここで、状態の選択は一方で符号化されるデータの統計に依存し、他方で状態のデフォルト最大数Ｎｍａｘのサイド条件に依存する。さらに、現在符号化されたシンボルに基づいて符号化される次のシンボルに対してどの新しい状態が使用されるべきかを示す遷移ルールが定義付けられる。これらの遷移ルールは、２つのテーブルの形態：｛Ｎｅｘｔ＿Ｓｔａｔｅ＿ＬＰＳｋ｜０≦ｋ＜Ｎｍａｘ｝と｛Ｎｅｘｔ＿Ｓｔａｔｅ＿ＭＰＳｋ｜０≦ｋ＜Ｎｍａｘ｝で付与され、ここで、現在与えられている確率状態のインデックスｎに対して、ＬＰＳまたはＭＰＳがそれぞれ出現する場合、テーブルは新しい確率状態Ｐｍのインデックスｍを提供する。ここで、本明細書で提案されるエントロピーエンコーダまたはデコーダのそれぞれにおける確率推定に対して、確率状態の明示的な集計が不要であることに留意されたい。寧ろ、これらの状態は、次のセクションに記載されているように、それぞれのインデックスを使用して暗黙にアドレスされるにすぎない。遷移ルールに加えて、どの確率状態においてＬＰＳおよびＭＰＳの値を交換すべきかが指定される必要がある。一般に、そのインデックスｐ＿ｓｔａｔｅを用いて識別できるこのような優良状態は１つだけにすぎない。
【０２９９】
次に、確率状態ｐ＿ｓｔａｔｅの更新が、符号化されたビットの値に応じて、どのように実行されるかを説明する：
ｉｆ（ｂｉｔ＝１−ｖａｌＭＰＳ）ｔｈｅｎ、
ｐ＿ｓｔａｔｅ←Ｎｅｘｔ＿Ｓｔａｔｅ＿ＬＰＳ［ｐ＿ｓｔａｔｅ］
ｉｆ（ｐ＿ｓｔａｔｅ＝０）ｔｈｅｎ  ｖａｌＭＰＳ←１−ｖａｌＭＰＳ
ｅｌｓｅ
ｐ＿ｓｔａｔｅ←Ｎｅｘｔ＿Ｓｔａｔｅ＿ＭＰＳ［ｐ＿ｓｔａｔｅ］
セクション「表支援確率推定」において既に上述した遷移テーブルＮｅｘｔ＿Ｓｔａｔｅ＿ＬＰＳとＮｅｘｔ＿Ｓｔａｔｅ＿ＭＰＳが使用される。
【０３００】
均等確率分布による符号化
たとえば、確率分布がゼロを中心に左右対称に配置されている符号付きの値が符号化されるアプリケーションにおいて、符号情報を符号化するために、一般的に、等しい分布が想定されうる。この情報は一方でエントロピー符号化されたビットストリーム内へ埋め込まれるが、他方では、表支援確率推定と区間分離の比較的コンパクトな装置をほぼ０．５の確率に使用することは理にかなってないので、以下に例示されうる特別なエンコーダ／デコーダ手順を任意に使用する、提案された特殊なケースのためのものである。
この特殊なケースにおいて、ビンのエントロピー符号化は、すべてのシンボルの値が同じ確率である確率分布を使用して実行される。
【０３０１】
確率モデルのアドレスと初期化
使用されている全ての確率モデルは、２つのパラメータ：１）ＬＰＳの確率状態を特徴づけるインデックスｐ＿ｓｔａｔｅと、２）ＭＰＳの値ｖａｌＭＰＳ、とを使用して表される。これらの２つの変数の各々は、（１つのスライスのビデオ符号化のアプリケーションにおいて）完成した符号化単位の符号化または復号化のそれぞれの初めにおいて初期化される必要がある。したがって、初期化値は、たとえば、以下によって例示される、（スライスの）量子化パラメータなどのコントロール情報から求めることができる。
１．ｐｒｅＳｔａｔｅ＝ｍｉｎ（ｍａｘ（１、（（ｍ＊ＳｌｉｃｅＱＰ）＞＞４）＋ｎ）、２＊（Ｎ−１））
２．ｉｆ（ｐｒｅＳｔａｔｅ＜＝Ｎ−１）ｔｈｅｎ
ｐ＿ｓｔａｔｅ＝Ｎ−１−ｐｒｅＳｔａｔｅ
ｖａｌＭＰＳ＝０
ｅｌｓｅ
ｐ＿ｓｔａｔｅ＝ｐｒｅＳｔａｔｅ−Ｎ
ｖａｌＭＰＳ＝１
【０３０２】
フォワード制御初期化プロセス
モデルのスタート分布の適応の更なる可能性は以下の方法によって提供される。モデルの初期化のより良好な適応を保証するために、エンコーダにおいて、モデルの所定のスタート値の選択が提供されうる。これらのモデルはスタート分布の群へ結合されかつ複数のインデックスを用いてアドレスされうり、これによって、エンコーダにおいて、スタート値の群の適応性選択が実行されかつ頁情報としてのインデックスの形態でデコーダに送信される。この方法は、フォワード制御初期化プロセスと呼ばれる。
【実施例４】
【０３０３】
次の実施例はビデオフレーム符号化に係り、より詳細には、近接するシンタックス要素に基づくコンテクスト割当てを使用した符号化方式に関する。以下のアプリケーション例は、より高い圧縮効果を可能にする上記の実施形態を用いたビデオ符号化方式を提供する。
【０３０４】
この利点は、画像サンプルから成る少なくとも１つのビデオフレームを表すビデオ信号を符号化することによって達成される。この画像サンプルは異なる時刻でキャプチャされる第１または第２のフィールドのいずれかに属している。ビデオフレームは、トップおよびボトムのマクロブロックと関連付けられる、マクロブロック対領域内へ空間分割される。符号化は、マクロブロック対領域ごとに、同マクロブロック対領域が第１または第２の分布タイプのいずれのタイプであるかを決定するステップと、マクロブロック対領域ごとにそれぞれのマクロブロック対領域のトップおよびボトムマクロブロックのそれぞれの１つにそれぞれのマクロブロック対領域内の画素サンプルの各々を割り当てるステップと、ビデオ信号をプリコードされたビデオ信号へプリコードするステップと、を含み、プリコードステップはマクロブロック対領域の現在のマクロブロック対領域に関連付けられたトップおよびボトムのマクロブロックの現在マクロブロックをプリコードして現在のシンタックス要素を取得するサブステップを含む。その後、現在のシンタックス要素に対して、近接マクロブロックが、現在のマクロブロック対領域が第１の分布であるかまたは第２の分布タイプであるかに少なくとも基づいて、決定される。少なくとも２つのコンテクストモデルの１つが近接マクロブロックの所定の属性に基づいて現在のシンタックス要素に割り当てられ、ここで、各コンテクストモデルは異なった確率推定と関連付けられている。最終的に、少なくとも１つのシンボルがシンタックス要素の表示に関連している、上記の実施形態のいずれかに基づいてシンボルシーケンスの符号化が行われる。割当部は、それぞれのシンボルに割り当てられたコンテクストに関連付けられた確率分布推定に基づいて、それぞれのシンボルに対する確率分布の推定に対する測度を決定するように構成される。したがって、選択部は、それぞれのエントロピーコーダとそれぞれの部分的ビットストリームを選択する。
【０３０５】
符号化されたビットストリームからシンタックス要素を復号化することも記載されている。符号化されたビットストリームはプリコードされたビデオ信号のエントロピー符号化されたバージョンであり、プリコードされたビデオ信号はビデオ信号のプリコードされたバージョンであり、このビデオ信号は画像サンプルから成る少なくとも１つのビデオフレームを表し、これらの画像サンプルは異なる時刻でキャプチャされる第１または第２のフィールドのいずれかに属し、ビデオフレームはマクロブロック対領域へ空間分割され、各マクロブロック対領域はトップおよびボトムマクロクロックに関連付けられかつ第１または第２の分布のいずれかの分布タイプであり、ここで、各マクロクロック対領域に対して、それぞれのマクロブロック対領域内の画素サンプルの各々が、それぞれのマクロブロック対領域の分布タイプに基づいて、それぞれのマクロブロック対領域のトップおよびボトムのマクロブロックの各々に割り当てられ、ここで、シンタックス要素はマクロブロック対領域の現在のマクロブロック対領域のトップおよびボトムのマクロブロックの現在のマクロブロックに関連している。この方法は、現在のシンタックス要素に対して、近接マクロブロックを、少なくとも現在のマクロブロック対領域が第１の分布であるかまたは第２の分布タイプであるかに基づいて、判定するステップと、各々が異なる確率推定と関連付けられる、少なくとも２つのコンテクストモデルのうちの１つを近接マクロブロックの所定の属性に基づいて現在のシンタックス要素に割り当てるステップと、各コンテクストモデルは異なる確率推定に関連付けられ、上記の実施形態のいずれかに基づいて少なくとも１つのシンボルがシンタックス要素の表示に関連しているシンボルシーケンスを復元するステップと、を含む。割当部は、それぞれのシンボルに割り当てられたコンテクストに関連付けられた確率分布推定に基づいて、それぞれのシンボルに対する確率分布の推定測度を決定するように構成される。したがって、選択部は、それぞれのエントロピーデコーダとそれぞれの部分的ビットストリームをそれぞれ選択する。
【０３０６】
以下に概略的に述べるアプリケーション例は、どのような理由であれ、たとえば、非移動領域と移動領域を有するビデオフレームを符号化するときのより良好な効果などの、第１および第２の分布タイプのマクロブロック対領域、すなわち、フィールドおよびフレーム符号化されたマクロブロック対、がビデオフレームで同時に使用される、すなわち、ＭＢＡＦＦ符号化が使用される場合、画素サンプルの連続ブロック間の近接部分を、各マクロブロック対がコンテクストモデリングのためのフレームマクロブロック対とみなされることとは異なる方法において、定義付ける必要があることと、近接ブロックと現在のブロックによってカバーされる領域の距離が、各マクロブロック対をフレームマクロブロック対として考えた時に、非常に大きくなるという発見を利用する。これはまた、現在のブロックの近接に配列されていない近接ブロックを選択することは条件となる確率モデルの適応に影響を与えるので、符号化効率を低下させる可能性がある。
【０３０７】
さらに、以下に概略的に述べるアプリケーション例は、画像サンプルのブロックの間の近接部分、すなわち、符号化または復号化されるシンタックス要素が関連する近接ブロックおよびその属性に基づいてコンテクストモデルの割り当てが行われる現在のブロックをより良好に定義付けるために、および近接ブロックが現在のブロックを含む現在のマクロブロックの境界または周囲を超えて配置される場合、現在のブロックを含む現在のマクロブロック対領域が、第１または第２の分布のタイプのいずれのタイプであるか、すなわち、フレーム符号化されているかまたはフィールド符号化されているか、に基づいて、近接ブロックを含むマクロブロックの判定を行うことが重要であるということを利用する。
【０３０８】
これらのブロックはマクロブロックであるかまたはそのサブパートであってよい。どちらの場合も、近接ブロックの判定は、少なくとも、近接ブロックが現在のマクロブロックの境界を超えて配置されている限り、近接マクロブロックを決定することを含む。
【０３０９】
図２８は、本発明が適用されうるビデオエンコーダ環境を一般的に示す図である。ビデオフレーム２０１０の画像はビデオプリコーダ２０１２へ供給される。ビデオプリコーダは画像２０１０をいわゆるマクロブロック１０ａの単位で取り扱う。各マクロブロックは画像２０１０のいくつかの画像サンプルを含む。マクロブロックごとに変換係数への変換が実行され、次に変換係数レベルへの量子化が実行される。また、イントラフレーム予測または動き補正は、画素データ上でなく予測される画素値に対するその差分に対して上記のステップを直接実行しないように使用され、これによって、より簡単に圧縮される少数値が得られる。
【０３１０】
プリコーダ２０１２は、結果値、すなわち、プリコードされたビデオ信号を出力する。変換係数レベルまたはスキップされた変換係数レベルを表す有意マップなどの変換係数の符号化に関連している、プリコードされたビデオ信号における全ての残留データ要素は、残留データシンタックス要素と呼ばれる。残留データシンタックス要素以外に、プリコーダ２０１２によって出力されるプリコードされたビデオ信号は、各マクロブロックがどのようにして符号化されたかおよび復号化される必要があるかのそれぞれに関するコントロール情報を含むコントロール情報シンタックス要素を含む。言い換えれば、シンタックス要素は、２つのカテゴリに分割可能である。第１のカテゴリにおいて、制御情報のシンタックス要素は、たとえば、マクロブロックタイプ、サブマクロブロックタイプ、空間的および時間的の両タイプの予測モードに対する情報だけでなく、スライスベースおよびマクロブロックベースのコントロール情報に関連する要素を含む。第２のカテゴリにおいて、量子化された変換係数のブロック内のすべての有意係数のロケーションを表す有意マップなどの全ての残留データ要素、および量子化ステップに対応するレベルの単位で表される有意係数の値は結合され、すなわち、残留データシンタックス要素となる。
【０３１１】
画像２０１０が分割されるマクロブロックはいくつかのスライスにグループ化される。すなわち、画像２０１０はスライスに再分割される。このような再分割の例を図４３に示す。図中、各ブロックまたは矩形はマクロブロックを表している。スライスごとに、多数のシンタックス要素が、それぞれのスライスのマクロブロックの符号化されたバージョンを形成する、プリコーダ２０１２によって生成される。
【０３１２】
プリコーダ２０１２は、図１〜１７のいずれかに関して上述の実施形態のいずれかによる、図２９により詳細に説明されているエントロピーコーダを含む、最終コーダステージ２０１４へシンタックス要素を転送する。最終コーダステージ２０１４はスライスごとに符号語ストリームを生成する。スライスに対して符号語ストリームを生成する場合、最終コーダステージ２０１４は、各シンタックス要素がエントロピーコーダ２０１４に渡されたビデオ信号のビットストリーム内のある意味をもつデータ値であるという事実を利用する。エントロピーコーダ２０１４は画像２０１０のスライスに対する符号語を含む圧縮された最終の符号化されたビデオビットストリームを出力する。
【０３１３】
図２９は、最終コードビットストリーム内へシンタックス要素を符号化するための全体的に参照番号２１００が付された配置を示す。符号化配置２１００は３段：２１００ａ、２１００ｂ、および２１００ｃに分かれている。
【０３１４】
第１のステージ２１００ａは二値化ステージであって、バイナライザ２１０２を含む。バイナライザ２１０２の入力は、スイッチ２１０６を介して、ステージ２１００ａの入力２１０４に接続されている。同時に、入力２１０４は、符号化配置２１００の入力を形成する。バイナライザ２１０２の出力はステージ２１００ａの出力２１０８に接続され、同時に、ステージ２１００ｂの入力を形成する。スイッチ２１０６は入力２１０４に到達するシンタックス要素をバイナライザ２１０２または二値化ステージ出力２１０８のどちらかに渡すことが可能であり、よって、バイナライザ２１０２をバイパスする。
【０３１５】
スイッチ２１０６の機能は、シンタックス要素が要求する二値化形式内に既にある場合、入力２１０４で実際のシンタックス要素を二値化ステージ出力２１０８へ直接渡すことである。非二値のシンタックス要素と呼ばれる、正確な二値化形式にないシンタックス要素の例は、動きベクトルの差および変換係数レベルである。すでに二値の値であるので、二値化する必要がないシンタックス要素の例としては、より詳細に後述する、ＭＢＡＦＦ（ＭＢＡＦＦ＝マクロブロック適応型フレーム／フィールド）符号化モードフラグまたはｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇ、ｍｂ＿ｓｋｉｐ＿ｆｌａｇ、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇがある。二値化でないので二値化される必要があるシンタックス要素の例は、シンタックス要素ｍｂ＿ｔｙｐｅ、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎ、ｒｅｆ＿ｉｄｘ＿ｌ０、ｒｅｆ＿ｉｄｘ＿ｌ１、ｍｖｄ＿ｌ０、ｍｖｄ＿ｌ１、とｉｎｔｒｏ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅを含む。
【０３１６】
異なる二値化方式は二値化されるシンタックス要素に使用される。たとえば、固定長の二値化プロセスはシンタックス要素の値のＬビットの符号なし整数ビンストリングを使用して構成されており、ここで、Ｌは、ｃＭＡＸがシンタックス要素の最大可能値である、合計と等しいかこれより大きい最も近い整数まで切り上げられたｌｏｇ２（ｃＭａｘ＋１）と等しい。ｆｌの二値化のためのビンのインデックス付けは、ゼロのビンインデックスが、最上位ビットに向けてビンのインデックスの値が増加するにつれて、最下位ビットに関係するように行われる。他の二値化方式は、切り捨て単項二値化方式であり、最大可能値ｃＭａｘより小さいシンタックス要素値Ｃは、１と等しいＣより小さいビンインデックスを有するビンと０と等しいＣのビンインデックスを有するビンとを有する長さＣ＋１のビットまたはビンストリングにマッピングされるが、最大可能値ｃＭａｘと等しいシンタックス要素は、対応するビンストリングは全てのビットが後にゼロが続かない１と等しい、長さｃＭａｘのビットストリングである。他の二値化方式は、ｋ番目の指数ゴロム二値化方式であり、ここで、シンタックス要素は、接頭語ビットストリングと、最終的に接尾語ビットストリングから構成されるビンストリングにマッピングされる。
【０３１７】
非二値の値をもつシンタックス要素は、スイッチ２１０６を介してバイナライザ２１０２へ渡される。バイナライザ２１０２は非二値のシンタックス要素を符号語またはいわゆるビンストリングへマッピングすることで、これらのシンタックス要素は二値形式になる。用語「ビン」は、符号化ツリーのルートノードから二値化される非二値シンタックス要素の非二値に対応している符号化ツリーのリーフへ遷移する時、ビットストリングまたは符号語へ非二値の二値化マッピングを定義付ける符号化ツリーのノードで作成する必要のある二値決定を意味する。したがって、ビンストリングは、ビンまたは二値決定のシーケンスであり、各ビットが二値決定の結果である、同じビット数を有する符号語に対応している。
【０３１８】
バイナライザ２１０２によって出力されるビンストリングは、バイナライザ２１０２によって出力されたビンストリングとバイナライザ２１０２をバイパスする既に二値化されたシンタックス要素とを二値化ステージ出力２１０８において単一ビットストリームへ併合するために、二値化ステージ出力１０８へ直接は渡されないが、バイナライザ２１０２の出力と出力２１０８の間に配置されたビンループオーバー手段２１１０によって出力２１０８へ制御可能に渡される。
【０３１９】
したがって、二値化ステージ２１０８はシンタックス要素を適切な二値化された表現に転送するために使用される。バイナライザ２１０２における二値化手順は、好ましくは、非常に効率的な二値エントロピー符号化を可能にするためにシンタックス要素の確率分布に適応される二値化表現を得ることができる。
【０３２０】
ステージ２１００ｂは、コンテクストモデリングステージであり、コンテクストモデラ２１１２およびスイッチ２１１３を含む。コンテクストモデラ２１１２は、入力、出力、および任意のフィードバック入力を含む。コンテクストモデラ２１１２の入力は、スイッチ２１１３を介して、二値化ステージ出力２１０８に接続されている。コンテクストモデラ２１１２の出力はステージ２１００ｃの正規の符号化入力端子２１１４に接続されている。スイッチ２１１３の機能は、コンテクストモデラ２１１２またはステージ２１００ｃのバイパス符号化入力端子２１１６のいずれかへの二値化ステージ出力２１０８におけるビンシーケンスのビットまたはビンを渡すことであり、これによりコンテクストモデラ２１１２をバイパスする。
【０３２１】
スイッチ２１１３の目的は、ステージ１００ｃで行われる後続の二値エントロピー符号化を容易にすることである。より正確には、バイナライザ２１０２により出力されたビンストリング内のビンのいくつかはヒューリスティックにほぼ等しい等確率分布を示す。これは、対応するビットがほぼ５０％の確率で１であり、ほぼ５０％の確率で０であり、または、言い換えれば、ビンストリング内のこのビンに対応しているビットは１または０になる確率が５０／５０であることを意味する。これらのビンはバイパス符号化入力端子２１１６へ送られ、一定であることからオーバーヘッドの適応または更新を必要としない等しい確率の確率推定の使用により二値エントロピー符号化される。すべての他のビンに対して、これらのビンの確率分布がステージ２１００ａによって出力される他のビンに依存しており、これによって、この確率分布は、例示的なシンタックス要素に関して以下に例としてより詳細に説明するそれぞれのビンの二値エントロピー符号化に使用される確率推定を適応または更新するだけの価値があるようにヒューリスティックに決定される。よって、後者のビンはスイッチ２１１３によりコンテクストモデラ２１１２の入力端子へ供給される。
【０３２２】
コンテクストモデラ２１１２は、コンテクストモデルの集合を管理する。コンテクストモデルごとに、コンテクストモデラ２１１２は実際のビットまたはビン値の確率分布推定を格納している。コンテクストモデラ２１１２の入力に到達するビンごとに、コンテクストモデラ２１１２はコンテクストモデルの集合の１つを選択する。すなわち、コンテクストモデラ２１１２はコンテクストモデルの集合の１つにビンを割り当てる。ビンのコンテクストモデルへの割当ては、同じコンテクストモデルに属しているビンの実際の確率分布が同じまたは同様の挙動を示すことで、あるコンテクストモデルに対するコンテクストモデラ２１１２内に格納された実際のビットまたはビン値の確率分布推定は、このコンテクストモデルに割り当てられるすべてのビンに対して、実際の確率分布の良好な近似となる。本発明による割り当てプロセスは近接ブロックのシンタックス要素間の空間的な関係を利用する。この割り当てプロセスを以下に詳細に説明する。
【０３２３】
入ってくるビンにコンテクストモデルを割り当てた場合、コンテクストモデラ２１１２は、このビンが割り当てられているコンテクストモデルの確率分布推定と一緒に、さらに、エントロピー符号化ステージ２１００ｃへビンを渡す。この測度によって、コンテクストモデラ２１１２はエントロピー符号化ステージ２１００ｃを駆動して、コンテクストモデラ２１１２によって示される切り替えられたビット値の確率分布推定に基づいてスイッチ２１１３によってコンテクストモデラ２１１２のビン入力の符号化された表現としてビットシーケンスを生成する。
【０３２４】
また、コンテクストモデラ２１１２は、シンタックス要素とビンが派生した画像またはビデオフレームの特性または属性へコンテクストモデルごとに確率分布推定を適応させるために、コンテクストモデルごとに確率分布推定を連続的に更新する。推定適応あるいは推定更新は、コンテクストモデラ２１１２がステージ２１００ｃからフィードバックライン２１１７に渡ってフィードバック入力において受信するかまたはこれを一時的に格納する過去または先行のビットまたはビンの値に基づいて行われる。よって、言い換えれば、コンテクストモデラ２１１２はエントロピー符号化ステージ２１００ｃに渡されたビン値に応答して確率推定を更新する。より正確には、コンテクストモデラ２１１２は、このビン値のコンテクストモデルに関連付けられた確率推定の適応または更新に対してのみ、あるコンテクストモデルに割り当てられたビン値を使用する。
【０３２５】
同じビンまたは同じシンタックス要素がステージ２１００ａから渡されたビンにおいて何回か出現する場合、シンタックス要素のいくつかは、例示的なシンタックス要素に関して以下に詳細に説明するように、これらが出現するたびに、前に入ってきたまたは前にエントロピー符号化されたビンに応じて、および／または、近接ブロックの前に符号化されたシンタックス要素などの他の状況に応じて、異なるコンテクストモデルへ割り当てられることができる。
【０３２６】
二値エントロピー符号化に使用される確率推定が最初にコードとその効率を決定するとともに確率推定が符号化中に常に実際の確率分布を非常に効果的に近似化するようにかなりの程度までシンタックス要素とビンの統計的依存を利用する適切なモデルを有することが最も重要であることは、上記から明らかである。
【０３２７】
符号化配置１００の第３のステージ２１００ｃは、エントロピー符号化ステージである。この第３のステージ２１００ｃは、正規の符号化エンジン２１１８、バイパス符号化エンジン２１２０、およびスイッチ２１２２を含む。正規の符号化エンジン２１１８は入力および出力端子を備えている。正規の符号化エンジン２１１８の入力端子は正規の符号化入力端子２１１４に接続されている。正規の符号化エンジン２１１８は、コンテクストモデラ２１１２から渡されたコンテクストモデルを使用して、コンテクストモデラ２１１２から渡されたビン値を二値エントロピー符号化し、符号化されたビットを出力する。また、正規の符号化エンジン２１１８は、フィードバックライン２１１７に渡って、コンテクストモデラ２１１２のフィードバック入力へ、コンテクストモデル更新に対するビン値を渡す。正規の符号化エンジンは図１〜１７の上述の実施形態のいずれかに対応している。但し、それぞれのビンと、対応する確率インデックスに対するコンテクストの設定については、上述の実施形態の割当部はコンテクストモデラ内に部分的に組み込まれる。上述したように、割当部は、このようにして得られたパラメータを選択部１８へ転送する前に確率インデックスを量子化しうり、この選択部１８はそれぞれのエントロピーエンコーダを選択する。
【０３２８】
バイパス符号化エンジン２１１２も入力および出力端子を有し、入力端子はバイパス符号化入力端子２１１６に接続されている。バイパス符号化エンジン２１２０は、静的な所定の確率分布推定を使用してスイッチ２１１３を介して二値化ステージ出力２１０８から直接渡されたビン値を二値エントロピー符号化するために使用され、また、符号化されたビットを出力する。バイパス符号化エンジンは任意の数のシンボルの単位における１：１のマッピングを使用し得る。
【０３２９】
正規の符号化エンジン２１１８とバイパス符号化エンジン２１２０から出力された符号化されたビットはスイッチ２１２２によって符号化配置２１００の出力２１２４において単一ビットストリームへ併合され、ビットストリームは入力端子２１０４の入力としてシンタックス要素の二値エントロピー符号化されたビットストリームを表している。よって、正規の符号化エンジン２１１８とバイパス符号化２１２０は、適応型または静的確率分布モデルのいずれかに基づいてエントロピー符号化をビット単位に実行するように協働する。
【０３３０】
符号化配置２１００の演算について図２８と図２９に関して概して説明したが、近接ブロックのシンタックス要素に基づいてコンテクスト割当てプロセスが使用される例示的なシンタックス要素の取り扱いに関して、実施形態に沿って、その機能を以下により詳細に説明する。このため、まず図３０〜図３１Ｂに関して、現在ブロックと、ＭＢＡＦＦの場合に現在ブロックに関するシンタックス要素へのコンテクストモデルの割当て中に使用される近接ブロックとの間の近接性の定義付けをより良好に理解することを可能にするために、ＭＢＡＦＦ符号化の意味が説明される。
【０３３１】
図３０は、画像または復号化されたビデオフレーム２０１０を示す。ビデオフレーム２０１０はマクロブロック対１０ｂに空間分割されている。マクロブロック対は行２２００と列２２０２のアレイで配置されている。各マクロブロック対は２つのマクロブロック２０１０ａから成る。
【０３３２】
各マクロブロック１０ａをアドレスできるようにするために、マクロブロック２０１０ａに対して列が定義付けられる。このために、各マクロブロック対において、マクロブロック対の１つはトップマクロブロックとして指定されるのに対し、他の１つはボトムマクロブロックとして指定され、トップおよびボトムマクロブロックの意味は、図３１Ａと図３１Ｂに沿って説明されるプリコーダ２０１２（図２８）によってマクロブロック対が符号化されるモードに依存する。したがって、各マクロブロック対の行２２００は２つのマクロブロック行：マクロブロック対のライン２２００のマクロブロック対におけるトップマクロブロックから成るトップマクロブロック行２２００ａと、マクロブロック対のボトムマクロブロックを含むボトムマクロブロック行２００ｂから成る。
【０３３３】
本実施例によれば、左上のマクロブロック対のトップマクロブロックはアドレスゼロに存在する。次のアドレス、すなわち、アドレス１は、左上のマクロブロック対のボトムマクロブロックに割り当てられる。同じく、すなわち、トップマクロブロック行２２００ａにおけるマクロブロック対のトップマクロブロックのアドレスは、２、４，．．．，２ｉ−２であり、アドレスが左から右に上昇しており、ｉはマクロブロックまたはマクロブロック対の単位で画像幅を表している。トップマクロブロック対の行２２００のマクロブロック対のボトムマクロブロックにはアドレス１、３，．．．，２ｉ−１が割り当てられ、アドレスは左から右へ上昇する。マクロブロック２０１０ａを表すボックスに書き込まれた数字および弓状の行によって図３０において示されるように、２ｉから４ｉ−１までの次の２ｉアドレスは、上部から順に次のマクロブロック対の行のマクロブロック対のマクロブロックに割り当てられる。
【０３３４】
図３０はマクロブロックよりむしろ、マクロブロック対の単位で画像２０１０の空間的な再分割を示していることを強調する。各マクロブロック対２０１０ｂは画像の空間的矩形領域を表している。具体的なマクロブロック対２０１０ｂの空間的な矩形領域内にある画像２０１０のすべての画像サンプルまたは画素（図示しない）はこのマクロブロック対に属している。具体的な画素または画像サンプルがマクロブロック対のトップまたはボトムマクロブロックに属しているかどうかはプリコーダ２０１２が、以下に詳細に説明するように、そのマクロブロック対のマクロブロックを符号化した際のモードに依存する。
【０３３５】
図３１Ａは、その左側に、マクロブロック対２０１０ｂに属している画素または画像サンプルの配置を示している。示されるように、画素は行および列のアレイ内に配置される。図示されている各画素は、図３１Ａの以下の説明を簡単にするために数字で示されている。図３１Ａに示されるように、画素の一部はｘで示され、他はΥで示されている。ｘで示される全ての画素は画像の第１のフィールドに属しており、Υで示される他の画素は画像の第２のフィールドに属している。同じフィールドに属する画素は画像の他の行内に配置される。画像またはビデオフレームは２つのインターリーブされたフィールド：トップフィールドとボトムフィールドを含むとみなすことができる。トップフィールドは、Υで示される画素を含み、偶数行、２ｎ＋２、２ｎ＋４、２ｎ＋６，．．．，を含み、２ｎは１つの画像またはビデオフレームの行の数であり、ｎは０と等しいかこれより大きい整数である。ボトムフィールドはフレームの第２のラインから開始される奇数行を含む。
【０３３６】
マクロブロック対２０１０ｂが属しているビデオフレームは、たとえば、ボトムフィールド前にトップフィールドが来るような、２つのフィールドが異なる時刻でキャプチャされたインターレースフレームであると想定される。マクロブロック対の画素または画像サンプルは、それぞれのマクロブロック対がプリコーダ２０１２（図２８）によってプリコードされるモードに応じて、マクロブロック対のトップまたはボトムマクロブロックに異なって割り当てられる。理由を以下に示す。
【０３３７】
図２８に関して上述したように、輝度、すなわち、ルマと、色度、すなわち、クロマのサンプルであってよい、マクロブロックの画像サンプルは、プリコーダ２０１２によって空間的または時間的に予測され、得られる予測残留値は残留データのシンタックス要素を得るために変換符号化を使用して符号化される。動く物体やカメラの動きの領域をもつ、インターレースフレーム（および現在のビデオフレームがインターレースフレームであることが想定される）において、画素の２つの隣り合う行は、両方のフィールドが同じ時刻にキャプチャされるプログレッシブなビデオフレームと比較した場合に削減された統計的依存度を示す傾向がある。したがって、このような動く物体やカメラの動きの場合、上述したように、マクロブロック上で動作するプリコーダ２０１２によって実行されたプリコードは、マクロブロック対がマクロブロック対の上半分領域を表すトップマクロブロックとマクロブロック対の下半分領域を表すボトムマクロブロックへ空間的に再分割された時に、圧縮効率が低下させる可能性があるにすぎない。というのは、この場合、両方のマクロブロック：トップおよびボトムマクロブロックは、トップフィールドとボトムフィールドの画素を含むからである。この場合、プリコーダ２０１２が、フィールドを個別に符号化すること、すなわち、トップフィールド画素をトップマクロブロックへ割り当て、ボトムフィールド画素をボトムフィールドマクロブロックへ割り当てることがより効率的であろう。
【０３３８】
マクロブロック対の画素がトップおよびボトムマクロブロックにどのように割り当てられているかを説明するために、図３１Ａ、３１Ｂは、フレームとフィールドモードのそれぞれの場合に得られるトップおよびボトムマクロブロックを右手側に示している。
【０３３９】
図３１Ａは、フレームモード、すなわち、各マクロブロック対が空間的に上半分と下半分のマクロブロックに分割されている場合を示している。図３１Ａは、フレームモードで符号化される場合に定義付けられる場合のトップマクロブロックを２２５０で、ボトムマクロブロックを２２５２で示す。フレームモードは両方向矢印２２５４で示されている。図に示すように、トップマクロブロック２５０はマクロブロック対２０１０ｂの画素サンプルの半分を含み、他の画像サンプルはボトムマクロブロック２２５２へ割り当てられる。より具体的には、上半分行の２ｎ＋１〜２ｎ＋６とナンバリングされた画像サンプルはトップマクロブロック２２５０に属しているが、マクロブロック対１０ｂの行２ｎ＋７〜２ｎ＋１２を含む下半分の画像サンプル９１〜９６、０１〜０６、１１〜１６はボトムマクロブロック２２５２に属する。このように、フレームモードで符号化される場合、マクロブロック２２５０と２２５２の両方は、ｘで示される最初の時刻でキャプチャされた第１のフィールドの画像素子と、Υで示される第２の異なる時刻でキャプチャされた第２のフィールドの画像サンプルと、の両方を含む。
【０３４０】
カメラなどによって出力される時の画素のトップまたはボトムマクロブロックへの割り当ては、フィールドモードによって若干異なる。図３１Ｂにおいて両方向矢印２２５６により示されるように、フィールドモードで符号化される場合、マクロブロック対２０１０ｂのトップマクロブロック２２５２はｘで示されるトップフィールドの全ての画像サンプルを含むが、ボトムマクロブロック２２５４はΥで示されるボトムフィールドの全ての画像サンプルを含む。したがって、フィールドモード２２５６に基づいて符号化される場合、マクロブロック対内の各マクロブロックは、トップおよびボトムフィールドの画像サンプルの混合というより、単に、トップフィールドの画像サンプルまたはボトムフィールドの画像サンプルのいずれかを含む。
【０３４１】
ここで、画像のマクロブロック対への空間的分割およびマクロブロック対内の画像サンプルのマクロブロック対のトップまたはボトムのマクロブロックのいずれかへの割当てについて説明してきたが、この割当ては、マクロブロック対またはマクロブロック対のマクロブロックがプリコーダ２０１２によって符号化されるモードに依存している。プリコーダ２０１２によって出力されるプリコードされたビデオ信号に含まれるシンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの機能と意味を説明すると同時に、単にフィールドまたはフレーム符号化されたフレームに対するＭＢＡＦＦ符号化されたフレームの利点を説明するために、ここでもまた、図２８を参照されたい。
【０３４２】
プリコーダ２０１２がインターレースされたビデオフレームを表すビデオ信号を受信すると、プリコーダ２０１２は、ビデオフレーム２０１０を符号化する時に以下の決定を自在に行うことができる：
【０３４３】
―プリコーダは、１つの単一符号化フレームとしてこれらを符号化するために２つのフィールドを結合し、これにより、各マクロブロック対と各マクロブロックはフレームモードで符号化されうる。
【０３４４】
―あるいは、２つのフィールドを結合して、これらを個別の符号化されたフィールドとして符号化し、これにより各マクロブロック対と各マクロブロックはフィールドモードで符号化されうる。
【０３４５】
―最後のオプションとして、２つのフィールドを結合してこれらを単一フレームとして圧縮するが、このフレームを符号化する際、マクロブロック対を符号化する前に、マクロブロック対を２つのフィールドマクロブロックの対かまたは２つのフレームマクロブロックの対のいずれかに分割する。
【０３４６】
３つのオプションからの選択は列内のフレームごとに適応可能に行うことができる。最初の２つのオプションからの選択は画像適応型フレーム／フィールド（ＰＡＦＦ）符号化と呼ばれる。フレームが２つのフィールドとして符号化される場合、各フィールドはマクロブロックに分割され、フレームに非常に類似した方法で符号化される。
【０３４７】
フレームが、いくつかの領域が移動するが、他が移動しない混合領域から成る場合、一般に、フレームモードでは非移動領域を符号化し、移動領域をフィールドモードで符号化することがより効率的である。したがって、フレーム／フィールド符号化はフレーム内のマクロブロックの縦の対ごとに個別に決定することができる。これは、上に示した選択肢の第３の符号化の選択肢である。この符号化オプションはマクロブロック適応型フレーム／フィールド（ＭＢＡＦＦ）符号化と呼ばれている。以下に、プリコーダ２０１２がこのオプションだけを使用する決定をしたと想定する。上述のように、ＭＢＡＦＦ符号化は、符号化モードタイプ（フィールドまたはフレームモード）をシーンの各領域へより良好に適応させることを可能にする。たとえば、プリコーダ２０１２は、フレームモードにおいてビデオシーンの固定領域に配置されているマクロブロック対を符号化する一方、フィールドモードにおいて速い動きを示すシーンの領域内のマクロブロック対を符号化する。
【０３４８】
上述のように、フレームモードで符号化されたマクロブロック対に対して、各マクロブロックはフレームラインを含む。フィールドモードで符号化されたマクロブロック対に対して、トップマクロブロックはトップフィールドラインを含み、ボトムマクロブロックはボトムフィールドラインを含む。マクロブロック対ごとのフレーム／フィールドは、プリコーダ２０１２によってマクロブロック対レベルで決定される。すなわち、トップマクロブロックがフィールド符号化される場合、これが、同じマクロブロック対内にあるボトムマクロブロックにも適用される。この測度によって、基本的なマクロブロック処理構造がそのまま維持されており、動き補正領域はマクロブロックと同サイズにすることが許可される。
【０３４９】
フィールドマクロブロック対の各マクロブロックはＰＡＦＦ符号化のフィールド内のマクロブロックに非常に同様に処理される。しかし、フィールドとフレームのマクロブロック対の混合がＭＢＡＦＦフレーム内で出現することもあるので、この混合を説明にするためにＰＡＦＦ符号化と比較した場合、動きベクトルの予測、イントラ予測モードの予測、イントラフレームサンプル予測、エントロピー符号化におけるデブロックフィルタリングおよびコンテクストモデリング、および変換係数のジグザグスキャンなどの、プリコーダ２０１２におけるプリコード手順のいくつかの工程が変更される。
【０３５０】
要約すると、プリコーダ２０１２によって出力されるプリコードされたビデオ信号は、使用を決定した符号化プリコーダ２０１２のタイプに依存する。本明細書で想定されるように、ＭＢＡＦＦ符号化の場合、プリコードされたビデオ信号は、スキップされなかったマクロブロック対の各々に対して、フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇを含む。フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇは、各マクロブロック対に対して、対応するマクロブロックがフレームまたはフィールド符号化モードのいずれで符号化されるかということに属していることを示す。デコーダ側において、このフラグはプリコードされたビデオ信号を正確に復号化するために必要とされる。マクロブロック対のマクロブロックがフレームモードで符号化される場合、フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇはゼロであり、他の場合においてこのフラグは１である。
【０３５１】
さて、図２９の元のデコーダの配置の一般的な演算モードを特別なビンに言及せずに説明したが、図３２では、ＭＢＡＦＦ符号化モードがアクティブである間に近接ブロックのシンタックス要素間の空間的な関係性が使用される、例示的なシンタックス要素のビンストリングの二値エントロピー符号化に関して、この配置の機能性を説明する。
【０３５２】
図３２に示したプロセスはコンテクストモデラ２１１２の入力でのシンタックス要素のビン値の到達時にスタートする。すなわち、最終的に、シンタックス要素は、必要に応じて、すなわち、シンタックス要素がすでに二値の値でない場合、バイナライザ２１０２において二値化される必要があった。最初のステップ２３００において、コンテクストモデラ２１１２は、入ってくるビンが、近接シンタックス要素、すなわち、近接ブロック内のシンタックス要素に基づくコンテクスト割当て専用のビンであるかを判定する。図３２の説明は、ＭＢＡＦＦ符号化がアクティブであることを想定することが想起される。ステップ２３００で、入ってくるビンが近接するシンタックス要素に基づくコンテクスト割当て専用のビンではないと判定された場合、ステップ２３０４において、他のシンタックス要素のハンドリングが実行される。第２の場合において、コンテクストモデラ２１１２は入ってくるビンのシンタックス要素が関連している現在ブロックの近接ブロックを判定する。ステップ２３０６の判定プロセスは例示的なシンタックス要素とこれらのビンのそれぞれに関して以下に詳細に説明される。いずれの場合でも、ステップ２３０６における判定は、該当する近接ブロックが現在ブロックを含むマクロブロックの外部ブロックであれば、現在のビンのシンタックス要素が関連しているフレームまたはフィールド符号化される現在マクロブロックに依存する。
【０３５３】
次に、ステップ２３０８において、コンテクストモデラ２１１２は、近接ブロックの所定の属性に基づいてビンへコンテクストモデルを割り当てる。割り当てステップ２３０８によって、現在のシンタックス要素の現在のビンの二値エントロピー符号化のために使用される、確率モデルへ各コンテクストインデックスを割り当てるテーブル内のそれぞれのエントリを指し示す、コンテクストインデックスｃｔｘＩｄｘを得る。
【０３５４】
ｃｔｘＩｄｘの決定後、コンテクストモデラ２１１２は、現在のビン自体と一緒に、ｃｔｘＩｄｘによりインデックス付けされた変数ｃｔｘＩｄｘまたは確率推定状態を正規の符号化エンジン２１１８へ渡す。これらの入力に基づいて、正規の符号化エンジン２１１８は、ステップ２３２２において、ｃｔｘＩｄｘによりインデックス付けされたコンテクストモデルの現在の確率状態を用いて、ビンをエントロピー符号化する。具体的には、たとえば、インデックスは、それぞれの部分的ビットストリーム２０１２を選択するために使用される。
【０３５５】
その後、正規の符号化エンジン２１１８は、パス２１１７を介してビン値をコンテクストモデラ２１１２へ戻し、これによって、コンテクストモデラ２１１２は、ステップ２３２４において、その確率推定状態に対して、ｃｔｘＩｄｘによりインデックス付けされたコンテクストモデルを適応させる。次に、出力２１２４でビットストリームへシンタックス要素を符号化するプロセスは、２３２６において終了する。
【０３５６】
ステップ２３１０の前にその中にシンタックス要素が二値化され得るビンストリングが、符号化され、すなわち、それぞれの部分的なビットストリーム２０１２に割り当てられ、続いてステップ２３２２のコンテクストモデルｃｔｘＩｄｘの現在確率状態を使用することによって符号化されたビンと、図３２には示さないが、等しい確率の確率推定を使用してバイパス符号化エンジン２１２０において符号化されるビンと、の両方から成りうることを強調する。寧ろ、図３２は単にシンタックス要素の１つのビンの例示的な符号化に関する。
図３２の点線２３２７で囲まれたステップ２３２２および２３２４は、図３３に関してより詳細に説明される。
【０３５７】
図３３の左側は、プロセス２３２７の流れ図を示す。図３３の右側は、コンテクストモデラ２１１２および正規の符号化エンジン２１１８の両方が、具体的な変数をロードし、書き込み、更新するためにアクセスするメモリ２３２８を示している。これらの変数は、二値エントロピーコーダ２１００ｃの現在の状態または現在の確率区間を定義付けるＲとＬを含む。
【０３５８】
メモリ２３２８は、たとえば、０から２３９８までのｃｔｘＩｄｘの各可能な値と、それぞれのコンテクストインデックスｃｔｘＩｄｘによりインデックス付けされたそれぞれのコンテクストモデルの現在の確率推定状態を定義付ける確率状態対のインデックスσ□とＭＰＳ値ωとを関連付けるテーブル２３２９を含む。確率状態σは、可能な確率値ｐσの集合の１つを一意に識別するインデックスである。確率値ｐσはこのコンテクストモデルの次のビンが最小確率シンボル（ＬＰＳ）になる確率の推定である。可能なビン値のどちらか、すなわち、ＬＰＳがヌルまたは１かどうかはＭＰＳωの値によって示される。ωが１の場合、ＬＰＳは０であり、逆も同じである。したがって、状態インデックスとＭＰＳは共に、それぞれのコンテクストモデルの実際の確率状態または確率推定を一意に定義付ける。
【０３５９】
ステップ２３３４において、実際のビン値は正規の符号化エンジン２１１８へ送信される。
【０３６０】
ステップ２３３６において、正規の符号化エンジン２１１８は、実際のビンの値が、すなわち、現在のシンタックス要素から得られた既に二値化されたシンタックス要素またはビンストリングの１つのビンのいずれかが、ωｉによって示される最大確率シンボルと等しいかどうかをチェックする。現在のビンがＭＰＳである場合、コンテクストモデラ２１１２は、σｉを更新することによって現在のコンテクストモデルの確率推定状態を更新する。具体的には、コンテクストモデラ２１１２は、実際のシンボルやビンが最大確率シンボル、すなわち、σがｔｒａｎｓＩｄｘＭＰＳ（σｉ）であった場合に各確率状態インデックスσを更新された確率状態インデックスと関連付けるテーブル２３４０を使用する。
【０３６１】
ステップ２３３８の後、プロセスは、正規の符号化エンジン２１１８に送信されるビンがその選択部によってそれぞれの部分的ビットストリームエンコーダへ送られる２３４０において終了する。
【０３６２】
ステップ２３３６において、現在のビンが最小確率シンボルＬＰＳであると判定された場合、ステップ２３４４において、σｉが０と等しいかどうか、すなわち、確率状態インデックスが１と０の両方に対して等しい確率を示しているかどうかが判定される。次に、値ＭＰＳはωｉ＝１−ωｉを計算することによって更新される。次に、ステップ２３４６において、確率状態インデックスがテーブル２３４０を使用して実際化される。このテーブル２３４０は、実際のビン値が最小確率シンボルである場合、各現在の確率状態インデックスを更新された確率状態インデックスと関連付ける、すなわち、σｉをｔｒａｎｓＩｄｘＬＰＳ（σｉ）になるように補正する。確率状態インデックスのσｉとωｉがステップ２３４４とステップ２３４６において適応された後、プロセスは既に述べたステップ２３４０へ進む。
【０３６３】
コンテクストモデル割り当てに対する近接ブロックのシンタックス要素間の空間的関係性を利用することによってシンタックス要素の符号化プロセスを説明してきたが、現在のブロックと近接ブロックとの間のコンテクストモデルの割り当てと近接性の定義付けは、プリコーダ２０１２による出力としてプリコードされたビデオ信号内に含まれる以下のシンタックス要素に関して、以下に詳細に説明する。これらのシンタックス要素を以下に列挙する。
【表８】
2014534677.tif 000057
2014534677.tif 000058
2014534677.tif 000059
【０３６４】
上記の表からわかるように、これらのシンタックス要素のいくつかは全体として現在のマクロブロックに関しており、他は、サブパート、すなわち、現在マクロブロックのサブマクロブロックまたはそのパーティションに関している。同様に、コンテクストモデルのこれらのシンタックス要素への割り当ては、近接マクロブロック、近接サブマクロブロック、またはその近接パーティションのいずれかのシンタックス要素に依存している。図３６は、マクロブロック（上行）とサブマクロブロック（下行）のパーティションを示す。図３６に示すように、これらのパーティションはインター予測に対してスキャンされる。図３６の外側の矩形はそれぞれマクロブロックまたはサブマクロブロックにおけるサンプルを示す。内側の矩形はパーティションを示す。各内側の矩形の数字は、マクロブロックパーティション逆スキャンまたはサブマクロブロックパーティション逆スキャンのインデックスを特定している。
【０３６５】
近接ブロックのシンタックス要素についてコンテクストモデルの割り当ての依存関係を詳細に説明する前に、図３４では、符号化される現在シンタックス要素を含む現在ブロックの左および上のブロック内にシンタックス要素を含む可能な候補であるので、現在マクロブロック対の左と上のマクロブロック対のトップマクロブロックのアドレスがどのように計算されるかが示されている。空間的な関係を説明するために、図３４は、ビデオフレームの６個のマクロブロック対の一部を示し、ここで、図３４の各矩形領域は、１つのマクロブロックに対応し、各列の第１と第２の２つの縦に隣接するマクロブロックは、マクロブロック対を形成する。
【０３６６】
図３４において、ＣｕｒｒＭｂＡｄｄｒは、現在のシンタックス要素が関連付けられているかまたは関係している、現在のマクロブロック対のトップマクロブロックのマクロブロックアドレスを示している。現在のマクロブロック対は、太線で囲まれている。言い換えれば、これらは、マクロブロック対の境界付けをしている。ｍｂＡｄｄｒＡとｍｂＡｄｄｒＢはそれぞれ、現在のマクロブロック対の左側と上側に対するマクロブロック対のトップマクロブロックのアドレスを示している。
【０３６７】
現在のマクロブロック対の左および上方に対する近接するマクロブロック対のトップマクロブロックのアドレスを計算するために、コンテクストモデラ２１１２は以下式を計算する。
ＭｂＡｄｄｒＡ＝２・（ＣｕｒｒＭｂＡｄｄｒ／２−１）
ＭｂＡｄｄｒＢ＝２・（ＣｕｒｒＭｂＡｄｄｒ／２−ＰｉｃＷｉｄｔｈＩｎＭｂｓ）
【０３６８】
ここで、ＰｉｃＷｉｄｔｈＩｎＭｂｓはマクロブロックの単位内の画像を指定する。上記に付与されている等式は図３０を参照することによって理解される。図３０においてマクロブロック単位の画像幅はｉで示されていることに留意されたい。上に与えられている等式は、上の等式において、「／」が結果のトランザクションがゼロに向かう整数除算を示すので、現在のマクロブロックアドレスＣｕｒｒＭｂＡｄｄｒｅｓｓが現在のマクロブロック対のボトムマクロブロックの奇数番号が付されたマクロブロックアドレス、すなわち、ＣｕｒｒＭｂＡｄｄｒｅｓｓ＋１と交換されたときに真であることにさらに留意されたい。たとえば、７／４と−７／−４が１に切り捨てられ、−７／４と７／−１は−１に切り捨てられる。
【０３６９】
さて、近接マクロブロックをどのように計算するかを説明したが、各マクロブロックが１６×１６のルマサンプルを含むことが単に想起される。これらのルマサンプルは、４つの８×８のルマブロックに分割されている。これらのルマブロックは４×４のルマブロックにさらに分割することもできる。また、以下の説明のために、各マクロブロックは、８×８のルマサンプルをさらに含み、すなわち、ルマサンプルと比較してクロマサンプルの画素幅は倍増している。マクロブロックのこれらの８×８のクロマサンプルは４つの４×４ルマブロックに分割されている。マクロブロックのブロックは番号付けされている。したがって、４つの８×８ルマブロックは各々、マクロブロック内の各８×８ブロックを一意に示すそれぞれのブロックアドレスを有している。次に、マクロブロック内の各ピクセルサンプルは位置（ｘ、ｙ）に属しており、（ｘ、ｙ）はマクロブロックの左上のルマまたはクロマサンプルに対して現在のブロックの左上のサンプルのルマまたはクロマロケーションを示している。たとえば、図３１Ｂのトップマクロブロック２２５２内の画素２０２３は、ルマサンプルに対して、画素位置（２、１）、すなわち、３列目、２行目を有しうる。
【０３７０】
これを説明したが、上記の表に記載されたシンタックス要素のビンの少なくともいくつかに対するｃｔｘＩｄｘの導出プロセスを説明する。
【０３７１】
シンタックス要素ｍｂ＿ｓｋｉｐ＿ｆｌａｇに関して、コンテクストモデラの割当ては近接マクロブロックに関連するシンタックス要素に依存する。したがって、コンテクストインデックスｃｔｘＩｄｘを決定するために、アドレスｍｂＡｄｄｒＡとｍｂＡｄｄｒＢは上記のように決定される。次に、ｃｏｎｄＴｅｒｍＮ（ＮはＡまたはＢのいずれかである）を次のように設定されている変数であるとする。
・ｍｂＡｄｄｒＮが利用できない、または、マクロブロックｍｂＡｄｄｒＮのためのｍｂ＿ｓｋｉｐ＿ｆｌａｇが１と等しい場合、ｃｏｎＴｅｒｍＮは０に設定される。
・それ以外の場合、ｃｏｎｄＴｅｒｍＮは１に設定される。
・ｃｔｘＩｄｘは、コンテクストインデックス増分子ｃｔｘＩｄｘＩｎｃ＝ｃｏｎＴｅｒｍＡ＋ｃｏｎｄＴｅｒｍＢに基づいて得られる。
【０３７２】
シンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇに対して、ｃｔｘＩｄｘは次のように決定される：
ｃｏｎｄＴｅｒｍＮ（ＮはＡまたはＢのいずれかである）は次のように設定されている変数であるとする。
・次の条件のいずれかが真である場合、ｃｏｎｄＴｅｒｍＮが０に設定され、
・ｍｂＡｄｄｒＮは利用できない。
・マクロブロックｍｂＡｄｄｒＮはフレームマクロブロックである。
・それ以外の場合、ｃｏｎｄＴｅｒｍＮは１に設定される。
ｃｔｘＩｄｘはコンテクストインデックス増分子ｃｔｘＩｄｘＩｎｃ＝ｃｏｎｄＴｅｒｍＡ＋ｃｏｎｄＴｅｒｍＢに基づいて得られる。
ここで、（（（ＣｕｒｒＭｂＡｄｄｒ／２）％（ＰｉｃＷｉｄｔｈＩｎＭｂｓ））＝０）であれば、ｍｂａｄｄｒＮは利用できない。
【０３７３】
シンタックス要素Ｍｂ＿ｔｙｐｅの場合、ｃｔｘＩｄｘは、マクロブロックｍｂＡｄｄｒＮ（ＮはＡまたはＢのいずれかである）の利用可能性とこの近接マクロブロックのシンタックス要素Ｍｂ＿ｔｙｐｅに依存して決められる。
【０３７４】
上記の表に記載されている他のシンタックス要素に対して、コンテクストモデラ割当ての依存度が定義づけられる。ここで、マクロブロックより小さいブロックに関連するシンタックス要素の場合、この割当てはマクロブロックより小さいこのようなより小さなブロックに関連しているシンタックス要素に依存している。たとえば、シンタックス要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎの場合、コンテクストインデックスの割り当ては、マクロブロックＭｂＡｄｄｒＮの利用可能性とマクロブロックＭｂＡｄｄｒＮのシンタックス要素Ｍｂ＿ｔｙｐｅだけでなく、近接ブロックのシンタックス要素Ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎに依存する。また、上記のシンタックス要素がすべて近接ブロックのそれぞれのシンタックス要素に依存していることは注目に値する。これとは別に、シンタックス要素ｍｖｄ＿ｌ０、ｍｖｄ＿ｌ１、ｒｅｆ＿ｉｄｘ＿ｌ０とｒｅｆ＿ｉｄｘ＿ｌ１のコンテクストモデル割り当ては、近接ブロックのそれぞれのシンタックス要素に依存しない。ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅに対するコンテクストモデラ割り当ては、ｍｂＡｄｄｒＮの利用可能性、マクロブロックｍｂＡｄｄｒＮがインター予測モードで符号化されるか否か、マクロブロックｍｂＡｄｄｒＮに対するＭｂ＿ｔｙｐｅ、およびマクロブロックＭｂＡｄｄｒＮに対するシンタックス要素ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅに依存する。シンタックス要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇコンテクストモデル割り当ては、ＭｂＡｄｄｒＮの利用可能性、インター予測モードで符号化された現在のマクロブロック、マクロブロックｍｂＡｄｄｒＮに対するＭｂ＿ｔｙｐｅ、および近接ブロックのシンタックス要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇに依存する。
【０３７５】
以下において、近接ブロックがどのように決定されるかを説明する。具体的には、これは、ｍｂＡｄｄｒＮとマクロブロックＭｂＡｄｄｒＮのサブパートをインデックス付けするブロックインデックスの計算を含み、このサブパートは現在のブロックの近接ブロックである。
【０３７６】
本発明の一実施形態によれば、以下に説明するように、マクロブロック適応型フレーム／フィールド符号化を使用するスライスに対する近接性は、ＭＢＡＦＦフレーム内部のコンテクスト適応型二値エントロピー符号化におけるコンテクストモデリングに使用される近接ブロックによってカバーされる領域が現在のブロックでカバーされる領域と隣り合うことを保証するように定義付けられる。一般に、これは、符号化プロセス中に予測される条件的確率の方がより信頼できるので、各マクロブロック対を本明細書の導入部分で説明したコンテクストモデリングのためのフレームのマクロブロック対と見なした場合に比較して、ＭＢＡＦＦスライスの符号化に関連してここで使用するコンテクスト適応型エントロピー符号化方式の符号化効率を改良させる。
【０３７７】
現在のブロックと基準ブロックとの間の近接性を定義付ける一般概念は次のセクション１．１に説明されている。セクション１．２では、現在のブロック、マクロブロック、またはパーティションの左および上方に対する近接ブロック、マクロブロック、またはパーティションがコンテクスト適応型二値エントロピー符号化のコンテクストモデリングを目的としていかにして取得されるかを明記する詳細な説明がなされる。
【０３７８】
１．１．一般的な概念による近接性の定義
（ｘ、ｙ）を、画像ＣｕｒｒＰｉｃの左上のルマまたはクロマサンプルに関して現在のブロックの左上のサンプルのルマまたはクロマロケーションを示すとする。変数ＣｕｒｒＰｉｃは、現在のブロックがフレームモード（ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇが０と等しい）で符号化されたマクロブロック対の一部である場合、トップおよびボトムフィールドをインターリーブすることによって得られる、現在のフレームを指定する。現在のブロックが、トップフィールドマクロブロックであるかその一部である場合、ＣｕｒｒＰｉｃは、現在のフレームのトップフィールドを指定し、現在のブロックが、ボトムフィールドマクロブロックであるかその一部である場合、ＣｕｒｒＰｉｃは、現在のフレームのボトムフィールドを指定する。
【０３７９】
（ｘＡ、ｙＡ）と（ｘＢ、ｙＢ）を画像ＣｕｒｒＰｉｃ内部のロケーション（ｘ、ｙ）の左および上方に対するルマまたはクロマロケーションをそれぞれ示すとする。ロケーション（ｘＡ、ｙＡ）と（ｘＢ、ｙＢ）は次のように指定される。
（ｘＡ、ｙＡ）＝（ｘ−１、ｙ）
（ｘＢ、ｙＢ）＝（ｘ、ｙ−１）
【０３８０】
現在のブロックの左側のブロックは、画像ＣｕｒｒＰｉｃの左上のルマまたはクロマサンプルに対するロケーション（ｘＡ、ｙＡ）でルマまたはクロマサンプルを含むブロックとして定義付けられ、現在のブロックの上のブロックは、画像ＣｕｒｒＰｉｃの左上のルマまたはクロマサンプルに対するロケーション（ｘＢ、ｙＢ）でルマまたはクロマサンプルを含むブロックとして定義付けられる。ロケーション（ｘＡ、ｙＡ）または（ｘＢ、ｙＢ）が現在のスライスの外側のロケーションを指定する場合、対応するブロックは利用できないとマークされる。
【０３８１】
１．２．近接性の定義の詳細な説明
セクション１．２．１で説明されているアルゴリズムは、現在のマクロブロックの左上のルマサンプルに関連して表現されているルマサンプルのロケーションが、マクロブロックアドレスへどのようにマッピングされるかを説明するＭＢＡＦＦスライスの一般的な概念を特定している。このマクロブロックのアドレスは対応するルマサンプルをカバーするマクロブロック、およびこのマクロブロックの左上のルマサンプルに関して表現されるルマ度サンプルロケーションを特定している。この概念は、以下のセクション１．２．２〜１．２．６で使用される。
【０３８２】
セクション１．２．２〜１．２．６は、近接マクロブロック、８×８のルマブロック、４×４のルマブロック、４×４のクロマブロック、現在のマクロブロックの左上のパーティション、８×８のルマブロック、４×４のルマブロック、４×４のクロマブロック、またはパーティションがどのように指定されるかを説明する。これらの近接マクロブロック、ブロック、またはパーティションが以下のシンタックス要素に対するＣＡＢＡＣのコンテクストモデリングのために必要とされる：ｍｂ＿ｓｋｉｐ＿ｆｌａｇ、ｍｂ＿ｔｙｐｅ、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎ、ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅ、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇ、ｒｅｆ＿ｉｄｘ＿ｌ０、ｒｅｆ＿ｉｄｘ＿ｌ１、ｍｖｄ＿ｌ０、ｍｖｄ＿ｌ１。
【０３８３】
１．２．１．近接サンプルのロケーションの指定
（ｘＮ、ｙＮ）が、マクロブロックアドレスＣｕｒｒＭｂＡｄｄｒを有する現在のマクロブロックの左上のルマサンプルに関して表された所与のルマサンプルロケーションを示すとする。本実施形態によれば、各マクロブロックが１６×１６のルマサンプルを含むことが想起される。ｘＮ、ｙＮは、−１．．．１６の範囲内にある。ｍｂＡｄｄｒＮを（ｘＮ、ｙＮ）を含むマクロブロックのマクロブロックアドレスとし、（ｘＷ、ｙＷ）を（現在のマクロブロックの左上のルマサンプルに対してではなく）マクロブロックｍｂＡｄｄｒＮの左上のルマサンプルに関して表現されるロケーション（ｘＮ、ｙＮ）であるとする。
【０３８４】
ｍｂＡｄｄｒＡとｍｂＡｄｄｒＢが現在のマクロブロック対の左側のマクロブロック対のトップマクロブロックと現在のマクロブロック対の上のマクロブロック対のトップマクロブロックのマクロブロックアドレスをそれぞれ指定するものとする。ＰｉｃＷｉｄｔｈＩｎＭｂｓをマクロブロック単位の画像幅を指定する変数であるとすると、ｍｂＡｄｄｒＡとｍｂＡｄｄｒＢは次のように指定される。
ｍｂＡｄｄｒＡ＝２＊（ＣｕｒｒＭｂＡｄｄｒ／２−１）
【０３８５】
ｍｂＡｄｄｒＡが０より少ないか、（ＣｕｒｒＭｂＡｄｄｒ／２）％ＰｉｃＷｉｄｔｈＩｎＭｂｓが０と等しいか、またはアドレスｍｂＡｄｄｒＡを有するマクロブロックが現在のスライスとは異なるスライスに属している場合、ｍｂＡｄｄｒＡは利用できないとマークされる。
ｍｂＡｄｄｒＢ＝２＊（ＣｕｒｒＭｂＡｄｄｒ／２−ＰｉｃＷｉｄｔｈＩｎＭｂｓ）
【０３８６】
ｍｂＡｄｄｒＢが０より小さい場合、またはアドレスｍｂＡｄｄｒＢを有するマクロブロックが現在のスライスとは異なるスライスに属している場合、ｍｂＡｄｄｒＢは利用できないとマークされる。
【０３８７】
図３５の表は、次の２つの順序付けられたステップにおいてマクロブロックのアドレスｍｂＡｄｄｒＮと変数ｙＭを指定している：
１．（ｘＮ、ｙＮ）（最初と２番目の列）と以下の変数に基づくマクロブロックアドレスｍｂＡｄｄｒＸ（５番目の列）の指定：
・アドレスＣｕｒｒＭｂＡｄｄｒを有する現在のマクロブロックがフレームマクロブロック対の一部分である場合、変数ｃｕｒｒＭｂＦｒａｍｅＦｌａｇ（３番目の列）は１に設定され、それ以外の場合、０に設定される。
・ＣｕｒｒＭｂＡｄｄｒ％２が０と等しい場合、変数ｍｂ１ｓＴｏｐＭｂＦｌａｇ（４番目の列）は１に設定され、それ以外の場合、０に設定される。
２．ｍｂＡｄｄｒＸ（５番目の列）の利用可能性によっては以下が適用される：
・ｍｂＡｄｄｒＸ（ｍｂＡｄｄｒＡまたはｍｂＡｄｄｒＢのいずれでもよい）が利用できないとマークされている場合、ｍｂＡｄｄｒＮは利用できないとマークされる。
・それ以外の場合（ｍｂＡｄｄｒＸが利用可能である場合）、ｍｂＡｄｄｒＮは利用可能であるとマークされ、表１は、ｍｂＡｄｄｒＮとｙＭを、（ｘＮ、ｙＮ）（最初と２番目の列）、ｃｕｒｒＭｂＦｒａｍｅＦｌａｇ（３番目の列）、ｍｂｌｓＴｏｐＭｂＦｌａｇ（４番目の列）、および以下のように得られる変数ｍｂＡｄｄｒＸＦｒａｍｅＦｌａｇ（６番目の列）に基づいて指定する：
・ｍｂＡｄｄｒＸＦｒａｍｅＦｌａｇは、マクロブロックｍｂＡｄｄｒＸがフレームマクロブロックである場合、１に設定され、それ以外の場合は、０に設定される。
【０３８８】
表１の上記のフラグの未指定の値は、対応するフラグの値が現在の表の行とは無関係であることを示している。
【０３８９】
要約すると、最初の４つの列に、入力値ｘＮ、ｙＮ、ｃｕｒｒＭｂＦｒａｍｅＦｌａｇおよびＭｂｌｓＴｏｐＭｂＦｌａｇが入力される。具体的には、パラメータｘＮ、ｙＮに対して可能な入力値は−１〜１６（−１と１６を含む）である。これらのパラメータは５番目の列に記載のｍｂＡｄｄｒＸ、すなわち、所望されるルマサンプルを含むマクロブロック対を決定する。次の２つの列、すなわち、６番目と７番目の列は、最終出力ｍｂＡｄｄｒＮとｙＮを取得するために必要とされる。これらの更なる入力パラメータは、ｍｂＡｄｄｒＸによって示されるマクロブロック対がフレームまたはフィールド符号化されるかを示すＭｂＡｄｄｒＸＦｒａｍｅＦｌａｇ、および、ｙＮが偶数か奇数か否かまたは８より大きいか８であるか否かに関するいくつかの更なる条件である。
【０３９０】
図に示すように、ｘＮ、ｙＮが共に正またはゼロである場合、すなわち、所望される画素サンプルが、ｘＮ、ｙＮが定義付けられる現在のマクロブロック内にある場合、出力されたマクロブロックアドレスは変化しない。すなわち、それは、ＣｕｒｒＭｂＡｄｄｒと等しい。また、ｙＭはｙＭと等しい。入力ｘＭとｙＭが現在のマクロブロックの外、すなわち、全てが現在のマクロブロックの上部（ｙＮ＜０）の左側（ｘＮ＜０）にある画素サンプルを示す場合、これは変化する。
図３５の表の結果からすると、マクロブロックｍｂＡｄｄｒＮの左上のルマサンプルに対する近接ルマロケーション（ｘＷ、ｙＷ）は、
ｘＷ＝（ｘＮ＋１６）％１６
ｙＷ＝（ｙＭ＋１６）％１６
として指定される。
【０３９１】
上述の考えは単にルマサンプルを例示することに関係するものであることを強調する。マクロブロックは単に８×８のクロマサンプルを含むので、クロマサンプルを考慮する場合、この考えは若干異なる。
【０３９２】
１．２．２．近接マクロブロックの指定
現在のマクロブロックの左および上方の近接マクロブロックの指定は、以下のシンタックス要素に対してＣＡＢＡＣのコンテクストモデリングに使用される。
ｍｂ＿ｓｋｉｐ＿ｆｌａｇ、ｍｂ＿ｔｙｐｅ、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎ、ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄｉｃｔｉｏｎ＿ｍｏｄｅ、とｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇ
【０３９３】
ｍｂＡｄｄｒＡを現在のマクロブロックの左側のマクロブロックのマクロブロックアドレスとし、ｍｂＡｄｄｒＢを現在のマクロブロックの上方のマクロブロックのマクロブロックアドレスとする。
【０３９４】
ｍｂＡｄｄｒＡ、ｍｂＡｄｄｒＢ、およびそれらの利用可能性の状態は以下のように求められる：
・ルマロケーションが（ｘＮ、ｙＮ）＝（−１、０）である場合、セクション１．２．１で説明したように、ｍｂＡｄｄｒＡとその利用可能性の状態が得られる。
・ルマロケーションが（ｘＮ、ｙＮ）＝（０、−１）である場合、セクション１．２．１で説明したように、ｍｂＡｄｄｒＢとその利用可能性の状態が得られる。
【０３９５】
１．２．３．近接８×８ルマブロックの指定
現在の８×８ルマブロックの左および上方の近接８×８のルマブロックの指定は、シンタックス要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎに対するＣＡＢＡＣのコンテクストモデリングに使用される。
【０３９６】
ｌｕｍａ８×８ＢｌｋＩｄｘを、現在のマクロブロックＣｕｒｒＭｂＡｄｄｒ内の現在の８×８ルマブロックのインデックスとする。ブロックインデックスｌｕｍａ８×８ＢｌｋＩｄｘのマクロブロック内のそれぞれのブロックへの割当ての実施形態を図９に示す（右上角）。
【０３９７】
ｍｂＡｄｄｒＡを現在の８×８ルマブロックの左側に８×８のルマブロックを含むマクロブロックのマクロブロックアドレスとし、ｍｂＡｄｄｒＢを現在の８×８ルマブロックの上方に８×８のルマブロックを含むマクロブロックのマクロブロックアドレスとする。さらに、ｌｕｍａ８×８ＢｌｋＩｄｘＡを現在の８×８ルマブロックの左側の８×８ルマブロックの８×８ルマブロックインデックス（マクロブロックｍｂＡｄｄｒＡの中）とし、ｌｕｍａ８×８ＢｌｋＩｄＸＢを現在の８×８ルマブロックの上方の８×８ルマブロックの８×８ルマブロックインデックス（マクロブロックｍｂＡｄｄｒＢの中）とする。
【０３９８】
ｍｂＡｄｄｒＡ、ｍｂＡｄｄｒＢ、ｌｕｍａ８×８ＢｌｋＩｄｘＡ、ｌｕｍａ８×８ＢｌｋＩｄｘＢ、およびそれらの利用可能性の状態は、次のように得られる：
・（ｘＣ、ｙＣ）を現在のマクロブロックの左上のルマサンプルに対する現在の８×８ルマブロックの左上のサンプルのルマロケーションとする。
・ルマロケーション（ｘＮ、ｙＮ）＝（ｘＣ−１、ｙＣ）の場合、ｍｂＡｄｄｒＡ、その利用可能性の状態、およびルマロケーション（ｘＷ、ｙＷ）はセクション１．２．１に説明されているように得られる。ｍｂＡｄｄｒＡが利用可能な場合、ｌｕｍａ８×８ＢｌｋＩｄｘＡが、ルマロケーション（ｘＷ、ｙＷ）をカバーするマクロブロックｍｂＡｄｄｒＡの内部の８×８ルマブロックを指すように設定される。それ以外の場合、ｌｕｍａ８×８ＢｌｋＩｄＡは利用できないとマークされる。
・ルマロケーション（ｘＮ、ｙＮ）＝（ｘＣ、ｙＣ−１）の場合、ｍｂＡｄｄｒＢ、その利用可能性の状態、およびルマロケーション（ｘＷ、ｙＷ）はセクション１．２．１に説明されているように得られる。ｍｂＡｄｄｒＢが利用可能な場合、ｌｕｍａ８×８ＢｌｋＩｄｘＢが、ルマロケーション（ｘＷ、ｙＷ）をカバーするマクロブロックｍｂＡｄｄｒＢの内部の８×８ルマブロックを指すように設定される。それ以外の場合、ｌｕｍａ８×８ＢｌｋＩｄｘＢは利用できないとマークされる。
【０３９９】
１．２．４．近接４×４のルマブロックの指定
現在の４×４ルマブロックの左および上方の近接４×４ルマブロックの指定は、シンタックス要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇに対するＣＡＢＡＣのコンテクストモデリングに使用される。
【０４００】
ｌｕｍａ４×４ＢｌｋＩｄｘを現在のマクロブロックＣｕｒｒＭｂＡｄｄｒ内部の現在の４×４ルマブロックのインデックス（復号化順に）とする。たとえば、ｌｕｍａ４×４ＢｌｋＩｄｘは、図９の右下角に示すように、４を乗じた４×４ｂｌｏｃｋとパーティション番号を含む８×８ブロックのｌｕｍａ８×８ＢｌｋＩｄｘとして定義できる。
【０４０１】
ｍｂＡｄｄｒＡを現在の４×４ルマブロックの左側に４×４のルマブロックを含むマクロブロックのマクロブロックアドレスとし、ｍｂＡｄｄｒＢを現在の４×４ルマブロックの上方に４×４のルマブロックを含むマクロブロックのマクロブロックアドレスとする。さらに、ｌｕｍａ４×４ＢｌｋＩｄｘＡを現在の４×４ルマブロックの左側の４×４ルマブロックの４×４ルマブロックインデックス（マクロブロックｍｂＡｄｄｒＡの中）とし、ｌｕｍａ４×４ＢｌｋＩｄｘＢを現在の４×４ルマブロックの上方の４×４ルマブロックの４×４ルマブロックインデックス（マクロブロックｍｂＡｄｄｒＢの中）とする。
ｍｂＡｄｄｒＡ、ｍｂＡｄｄｒＢ、ｌｕｍａ４×４ＢｌｋＩｄｘＡ、ｌｕｍａ４×４ＢｌｋＩｄｘＢ、およびそれらの利用可能性の状態は次のように得られる：
・（ｘＣ、ｙＣ）を現在のマクロブロックの左上のルマサンプルに対する現在の４×４ルマブロックの左上のサンプルのルマロケーションとする。
・ルマロケーション（ｘＮ、ｙＮ）＝（ｘＣ−１、ｙＣ）の場合、ｍｂＡｄｄｒＡ、その利用可能性の状態、およびルマロケーション（ｘＷ、ｙＷ）はセクション１．２．１に説明されているように得られる。ｍｂＡｄｄｒＡが利用可能な場合、ｌｕｍａ４×４ＢｌｋＩｄｘＡが、ルマロケーション（ｘＷ、ｙＷ）をカバーするマクロブロックｍｂＡｄｄｒＡの内部の４×４ルマブロックを指すように設定される。それ以外の場合、ｌｕｍａ４×４ＢｌｋＩｄｘＡは利用できないとマークされる。
・ルマロケーション（ｘＮ、ｙＮ）＝（ｘＣ、ｙＣ−１）の場合、ｍｂＡｄｄｒＢ、その利用可能性の状態、およびルマロケーション（ｘＷ、ｙＷ）はセクション１．２．１に説明されているように得られる。ｍｂＡｄｄｒＢが利用可能な場合、ｌｕｍａ４×４ＢｌｋＩｄｘＢが、ルマロケーション（ｘＷ、ｙＷ）をカバーするマクロブロックｍｂＡｄｄｒＢの内部の４×４ルマブロックを指すように設定される。それ以外の場合、ｌｕｍａ４×４ＢｌｋＩｄｘＢは利用できないとマークされる。
【０４０２】
１．２．５近接４×４のクロマブロックの指定
現在の４×４クロマブロックの左および上方の近接４×４クロマブロックの指定は、シンタックス要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇに対するＣＡＢＡＣのコンテクストモデリングに使用される。
【０４０３】
ｃｈｒｏｍａ４×４ＢｌｋＩｄｘを現在のマクロブロックＣｕｒｒＭｂＡｄｄｒ内部の現在の４×４クロマブロックのインデックス（復号化順に）とする。
【０４０４】
ｍｂＡｄｄｒＡを現在の４×４クロマブロックの左側に４×４のクロマブロックを含むマクロブロックのマクロブロックアドレスとし、ｍｂＡｄｄｒＢを現在の４×４クロマブロックの上方に４×４のクロマブロックを含むマクロブロックのマクロブロックアドレスとする。さらに、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＡを現在の４×４クロマブロックの左側の４×４クロマブロックの４×４クロマブロックインデックス（マクロブロックｍｂＡｄｄｒＡの中）とし、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＢを現在の４×４クロマブロックの上方の４×４クロマブロックの４×４クロマブロックインデックス（マクロブロックｍｂＡｄｄｒＢの中）とする。
【０４０５】
ｍｂＡｄｄｒＡ、ｍｂＡｄｄｒＢ、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＡ、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＢ、およびそれらの利用可能性の状態は次のように得られる：
・ｌｕｍａ８×８ＢｌｋＩｄｘ＝ｃｈｒｏｍａ４×４ＢｌｋＩｄｘの場合、変数ｍｂＡｄｄｒＡ、ｍｂＡｄｄｒＢ、ｌｕｍａ８×８ＢｌｋＩｄｘＡ、ｌｕｍａ８×８ＢｌｋＩｄｘＢ、およびそれらの利用可能性の状態は、セクション１．２．３に記載されるように得られる。
・ｌｕｍａ８×８ＢｌｋＩｄｘＡが利用可能であれば、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＡはｌｕｍａ８×８ＢｌｋＩｄｘＡと等しくなるように設定される。それ以外の場合、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＡは利用できないとマークされる。
・ｌｕｍａ８×８ＢｌｋＩｄｘＢが利用可能であれば、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＢはｌｕｍａ８×８ＢｌｋＩｄｘＢと等しくなるように設定される。それ以外の場合、ｃｈｒｏｍａ４×４ＢｌｋＩｄｘＢは利用できないとマークされる。
【０４０６】
１．２．６．近接パーティションの指定
現在のパーティションの左および上方の近接パーティションの指定は、以下のシンタックス要素に対するＣＡＢＡＣのコンテクストモデリングに使用される。
ｒｅｆ＿ｉｄｘ＿ｌ０、ｒｅｆ＿ｉｄｘ＿ｌ１、ｍｖｄ＿ｌ０、ｍｖｄ＿ｌ１
【０４０７】
ｍｂＰａｒｔＩｄｘとｓｕｂＭｂＰａｒｔＩｄｘを、現在のマクロブロックＣｕｒｒＭｂＡｄｄｒ内の現在のパーティションを指定するマクロブロックパーティションとサブマクロブロックパーティションのインデックスとする。このようなパーティションインデックスの例を図３６に示す。
【０４０８】
ｍｂＡｄｄｒＡを現在のパーティションの左側にパーティションを含むマクロブロックのマクロブロックアドレスとし、ｍｂＡｄｄｒＢを現在のパーティションの上方にパーティションを含むマクロブロックのマクロブロックアドレスとする。さらに、ｍｂＰａｒｔＩｄｘＡとｓｕｂＭｂＰａｒｔＩｄｘＡを現在のパーティションの左側のパーティションのマクロブロックパーティションおよびサブマクロブロックパーティションのインデックス（マクロブロックｍｂＡｄｄｒＡの中）とし、ｍｂＰａｒｔＩｄｘＢとｓｕｂＭｂＰａｒｔＩｄｘＢを現在のパーティションの上方のパーティションのマクロブロックパーティションおよびサブマクロブロックパーティションのインデックス（マクロブロックｍｂＡｄｄｒＢの中）とする。
【０４０９】
ｍｂＡｄｄｒＡ、ｍｂＡｄｄｒＢ、ｍｂＰａｒｔＩｄｘＡ、ｓｕｂＭｂＰａｒｔＩｄｘＡ、ｍｂＰａｒｔＩｄｘＢ、ｓｕｂＭｂＰａｒｔＩｄｘＢ、およびそれらの利用可能性の状態は次のように得られる：
・（ｘＣ、ｙＣ）を現在のマクロブロックの左上のルマサンプルに対するｍｂＰａｒｔＩｄｘとｓｕｂＭｂＰａｒｔＩｄｘによって与えられる現在のパーティションの左上のサンプルのルマロケーションとする。
・ルマロケーション（ｘＮ、ｙＮ）＝（ｘＣ−１、ｙＣ）の場合、ｍｂＡｄｄｒＡ、その利用可能性の状態、およびルマロケーション（ｘＷ、ｙＷ）はセクション１．２．１に説明されているように得られる。ｍｂＡｄｄｒＡが利用不可能である場合、ｍｂＰａｒｔＩｄｘＡとｓｕｂＭｂＰａｒｔＩｄｘＡは利用できないとマークされる。それ以外の場合、ｍｂＰａｒｔＩｄｘＡが、ルマロケーション（ｘＷ、ｙＷ）をカバーするマクロブロックｍｂＡｄｄｒＡの内部のマクロブロックパーティションを指すように設定され、ｓｕｂＭｂＰａｒｔＩｄｘＡが、ルマロケーション（ｘＷ、ｙＷ）をカバーする（マクロブロックｍｂＡｄｄｒＡ内の）マクロブロックパーティションｍｂＰａｒｔＩｄｘＡの内部のサブマクロブロックパーティションを指すように設定される。
・ルマロケーション（ｘＮ、ｙＮ）＝（ｘＣ、ｙＣ−１）の場合、ｍｂＡｄｄｒＢ、その利用可能性の状態、およびルマロケーション（ｘＷ、ｙＷ）はセクション１．２．１に記載されているように得られる。ｍｂＡｄｄｒＢが利用不可能である場合、ｍｂＰａｒｔＩｄｘＢとｓｕｂＭｂＰａｒｔＩｄｘＢは利用できないとマークされる。それ以外の場合、ｍｂＰａｒｔＩｄｘＢが、ルマロケーション（ｘＷ、ｙＷ）をカバーするマクロブロックｍｂＡｄｄｒＢの内部のマクロブロックパーティションを指すように設定され、ｓｕｂＭｂＰａｒｔＩｄｘＢが、ルマロケーション（ｘＷ、ｙＷ）をカバーする（マクロブロックｍｂＡｄｄｒＢ内の）マクロブロックパーティションｍｂＰａｒｔＩｄｘＢの内部のサブマクロブロックパーティションを指すように設定される。
【０４１０】
上記のシンタックス要素またはビンストリングまたはそれらのビンの部分をどのようにエントロピー符号化ビットストリームへ符号化するかを説明したが、このビットストリームの復号化およびビンの検索は図３７から３９に関して説明する。
【０４１１】
図３７は、本発明が適用されうるビデオデコーダ環境を示す一般的な図である。エントロピーデコーダ４００は、上記のようにエントロピー符号化されたビットストリームを受信し、それを図３８〜３９に関して下記により詳細に示すように扱う。具体的には、エントロピーデコーダ２４００は、プリコードされたビデオ信号、特に、そこに含まれているシンタックス要素を得るために、二値エントロピー復号化によってエントロピー符号化されたビットストリームを復号化し、これを、プリコードデコーダ２４０２へ渡す。プリコードデコーダ２４０２は、マクロブロックごとに、次に、スライスごとに、ビデオフレーム２０１０の画素の画像のサンプルを検索するために、上記のシンタックス要素などの動きベクトル成分やフラグなどのシンタックス要素を使用する。
【０４１２】
次に、図３８は、ビンが復号化されるたびにエントロピーデコーダ２４００によって実行される復号化プロセスを示す。どのビンが復号化されるかはエントロピーデコーダ２４００によって現在予測されているシンタックス要素に依存している。この知識はそれぞれの解析規制から得られる。
【０４１３】
復号化プロセスにおいて、まず、ステップ２５００において、デコーダ２４００は、復号化する次のビンが近接シンタックス要素に基づくコンテクストモデルの割り当てに対応しているタイプのシンタックス要素のビンであるかどうかをチェックする。そうでない場合、デコーダ２４００はステップ２５０４の他のシンタックス要素のハンドリングへ進む。しかし、ステップ２５００のチェック結果が肯定された場合、デコーダ２４００は、ステップ２５０６とステップ２５０８において、復号化する現在のビンが属する現在のブロックの近接ブロックの決定を実行し、ステップ２５０６で決定された近接ブロックの所定の属性に基づいてコンテクストモデルをビンへ割り当てる。ここで、ステップ２５０６と２５０８は図３２の符号化プロセスのステップ２３０６と２３０８に対応している。これらのステップによって、コンテクストインデックスｃｔｘＩｄｘが得られる。したがって、ｃｔｘＩｄｘの決定は、以下のエントロピー復号化に使用されるコンテクストモデルを決定するためのステップ２３０６および２３０８における図３２の符号化プロセスと同様に、ステップ２５０６とステップ２５０８で行われる。
【０４１４】
次に、ステップ２５２２において、エントロピーデコーダ２４００は、ステップ２５１０〜２５２０において得られたｃｔｘＩｄｘによりインデックス付けされたコンテクストモジュールの実際の確率状態を使用して、エントロピー符号化されたビットストリームから、実際のビンをエントロピー復号化する。つまり、エントロピーデコーダ２４００は、各々がそれぞれの部分的ビットストリームに関連付けられている、内部に複数のエントロピーデコーダを有する上記のエントロピーデコーダのいずれかに対応している正規の復号化エンジンを含む。ステップ２５２２において、ビンは、確率インデックスによってまたは少なくとも確率インデックスに基づいてインデックス付けされた部分的ビットストリームからリクエストされる。このステップの結果は実際のビンの値である。
【０４１５】
その後、ステップ２５２４において、ｃｔｘＩｄｘ確率状態は、ステップ２２２４と同様に、適応または更新される。その後、ステップ２５２６においてプロセスは終了する。
【０４１６】
言うまでもなく、図３８に示したプロセスによって得られる個々のビンは、シンタックス要素が二値タイプである場合のみにおいてシンタックス要素の値を表す。それ以外の場合、二値化に対応するステップは、ビンストリングからシンタックス要素の実際の値を得るために逆の方法で実行する必要がある。
【０４１７】
図３９において、左側のステップ２５２２とステップ２５２４を点線２５２７で囲むことでより詳細に示す。右側は２５６４で示している。図３８は、エントロピーデコーダ２４００が、変数をロード、格納、そして更新するためにアクセスできるメモリとそのコンテンツを示している。図示したように、エントロピーデコーダ２４００は、以下に説明されるように、符号化プロセスをエミュレートするので、エントロピーデコーダはエントロピーコーダ２０１４と同じ変数を操作し管理する。
【０４１８】
最初のステップ２５６６において、デコーダ２４００は、それぞれのコンテクストに関連付けられた確率インデックスによりインデックス付けされた部分的ビットストリームから現在のビンの値を取得する。
【０４１９】
しかし、値はまだ値ＭＰＳとＬＰＳとの相対的な用語で示されている。したがって、ステップ２５７０において、デコーダ２４００はエントロピー符号化されたビットストリームにおけるエントロピー符号化符号語の値がωＩによって示される最大確率シンボルであったかどうかをチェックする。そうである場合、ステップ２５７２において、デコーダ２４００はビン値をωｉの値へ設定する。そうでない場合、ステップ２５７４において、デコーダ２４００はシンボルを１−ωｉになるように設定する。
【０４２０】
ステップ２５７２の後、ステップ２５７６において、デコーダ２４００は、図３６においてステップ２３３８に関して既述されているように確率状態インデックスωｉを遷移させることによって、ωｉとωｉによって定義付けされている現在のコンテクストモデルｉの確率状態を適応させるか更新する。その後、プロセス２５２７はステップ２５７８で終了する。
【０４２１】
ステップ２５７４の後、デコーダ２４００は、ステップ２５８２において、ωｉが０と等しい場合、ωｉ＝１−ωｉを計算することによって、次に、図３６においてステップ２３４６に関して説明したように確率状態インデックスωｉを新しい確率状態インデックスへ遷移することによって、ステップ２５８２および２５８４において、確率状態を適応させるか更新する。その後、プロセスはステップ２５７８において終了する。
【０４２２】
具体的な実施形態を説明してきたが、これら実施形態に限定されないことに留意されたい。特に、ステップ２３０８と２４０８に基づく割当ては、近接ブロックのシンタックス要素、すなわち、プリコーダ２０１２によって出力されたプリコードされたビデオ信号に含まれるシンタックス要素、に依存する必要はない。この割当ては、寧ろ、近接ブロックの他の属性に依存しうる。また、図３５のテーブルに関連して説明されている近接ブロック間の近接性の定義は変化しうる。さらに、２つのインターレースされたフィールドの画素サンプルは上記した方法以外の他の方法で配置することができる。
【０４２３】
また、４×４のブロック以外のブロックサイズを変換の基礎として使用することができ、上記実施形態において、変換が予測に対する画像サンプルの差に対して適用されたが、変換は予測を実行せずに画像サンプル自体に適用することもできる。また、変換のタイプは重要ではない。ＤＣＴはＦＦＴやウェーブレット変換と同様に使用することができる。さらに、説明した実施例は、二値のエントロピー符号化／復号化に限定されない。むしろ、マルチシンボルエントロピー符号化にも同様に適用することができる。さらに、スライス、マクロブロック対、マクロブロック、画像素子などへのビデオフレームの分割は例示目的のためになされ、実施例の範囲を制限するものではない。
【０４２４】
以下において、図２８よりも詳細に、近接シンタックス要素に基づくコンテクスト割り当てを使用したシンタックス要素の上記エントロピー符号化が使用されるブロック２８００で図４０に示されるように、エントロピーエンコーダを含むビデオエンコーダエンジンの完成したセットアップを示している図４０を参照されたい。具体的には、図４０は、マクロブロック用の新しいＨ．２６４／ＡＶＣ規格に対する基本的な符号化構造を示している。入力ビデオ信号は、各マクロブロックが１６×１６のルマピクセルを有しているマクロブロックへ分割される。次に、スライス群およびスライスへのマクロブロックの関連付けが選択され、次に、各スライスの各マクロブロックは、図４０における演算ブロックのネットワークによって処理される。ここで、画像内に様々なスライスがある場合でもマクロブロックの効率的な並列処理が可能であることに留意されたい。スライス群およびスライスへのマクロブロックの関連付けは、図４０のコーダコントロール２８０２と称されるブロックによって実行される。以下のように定義付けられるいくつかのスライスが存在している：
・Ｉスライス：スライスの全てのマクロブロックがイントラ予測を用いて符号化されるスライス。
・Ｐスライス：さらに、Ｉスライスの符号化タイプに対して、Ｐスライスのいくつかのマクロブロックも予測ブロック当たり多くとも１つの動き補正された予測信号を有するインター予測を用いて符号化できる。
・Ｂスライス：さらに、Ｐスライスにおいて利用可能な符号化タイプに対して、Ｂスライスのいくつかのマクロブロックも予測ブロック当たり２つの動き補正された予測信号を有するインター予測を用いて符号化できる。
【０４２５】
上記の３つの符号化のタイプは、以下に説明されるような基準画像の使用を除いて、前の規格のものと非常に類似している。スライスに対する以下の２つの符号化タイプは新しい：
・ＳＰスライス：異なるプリコードされた画像間の効率的なスイッチングが可能になるように符号化されている、いわゆるスイッチングＰスライス。
・ＳＩスライス：ランダムアクセスとエラー回復の目的のためにＳＰスライスにおけるマクロブロックの正確な一致を可能にするいわゆるスイッチングＩスライス。
【０４２６】
スライスは、フレキシブルなマクロブロックオーダー（ＦＭＯ）を使用しない場合にラスタスキャン順に処理されるマクロブロック列である。図４２に示すように、画像は１つまたはいくつかのスライスへ分割されうる。したがって、画像は１つ以上のスライスの集合である。スライスは、アクティブな列と画像パラメータ集合が与えられた場合、それらのシンタックス要素はビットストリームから解析され、スライスが表現する画像の領域内のサンプルの値は、使用される基準画像がエンコーダおよびデコーダにおいて一致していることを前提として、他のスライスからのデータを使用せずに正確に復号化されるという意味で、自己完結的である。他のスライスからのいくつかの情報がスライス境界を横切ってデブロッキングフィルタを適用するために必要とされる場合がある。
【０４２７】
ＦＭＯは画像がスライスグループの概念を使用することによってスライスおよびマクロブロックに分割される方法を変更する。各スライスグループは、画像パラメータ集合のコンテンツとスライスヘッダからのいくつかの情報によって指定される、マクロブロックからスライスグループへのマッピングによって定義づけられるマクロブロックの集合である。このマクロブロックからスライスグループへのマッピングは画像内のマクロブロックごとのスライスグループ識別番号から成り、関連付けられたマクロブロックがどのスライスグループに属しているかを指定する。各スライスグループは、１スライスが、特定のスライスグループのマクロブロックの集合内のラスタスキャン順に処理される同じスライスグループ内のマクロブロックのシーケンスであるように、１つ以上のスライスに分割することができる（ＦＭＯが使用されていない場合は全体画像が単一のスライスグループから成るＦＭＯのシンプルな特殊なケースと見なすことができる。）。
【０４２８】
ＦＭＯを使用して、画像は、インターリーブされたスライス、分散したマクロブロックの割り当て、１つ以上の「前景」スライスグループ、「残留」スライスグループ、またはチェッカーボードタイプマッピングなどの多くのマクロブロックスキャンパターンに分けることができる。
【０４２９】
各マクロブロックを、スライス符号化のタイプによって、いくつかの符号化タイプの１つへ送信することができる。すべてのスライス符号化タイプにおいて、クロマ予測とＩ＿ＰＣＭ予測モードと共にＩｎｔｒａ＿４×４またはＩｎｔｒａ＿１６×１６と示される以下のタイプのイントラ符号化がサポートされる。
【０４３０】
Ｉｎｔｒａ＿４×４モードは、各４×４ルマブロックを個別に予測することに基づき、有意な細部を有する画像の部分の符号化によく適している。他方、Ｉｎｔｒａ＿１６×１６モードは、全体的な１６×１６ルマブロックの予測をし、画像の非常に平滑な領域を符号化するのにより適している。
【０４３１】
更に、これらの２タイプのルマ予測に対して個別のクロマ予測が行われる。Ｉｎｔｒａ＿４×４とＩｎｔｒａ＿１６ｘ１６に代わるものとして、Ｉ＿ＰＣＭ符号化タイプはエンコーダが予測および変換符号化プロセスを単にバイパスして、その代わりに、符号化されたサンプルの値を直接送信することを可能にする。Ｉ＿ＰＣＭモードには、以下の目的を果たす：
１．Ｉ＿ＰＣＭモードは、エンコーダがサンプルの値を正確に表すことを可能にする。
２．Ｉ＿ＰＣＭモードは、データを大きく拡張せずに変則的な画像コンテンツの値を正確に表す方法を提供する。
３．Ｉ＿ＰＣＭモードは、符号化効率に影響を与えずに、デコーダがマクロブロックに対して処理する必要があるビットの数を厳密に制限することを可能にする。
【０４３２】
イントラ予測が変換ドメインで行われてきた従来のビデオ符号化規格（すなわちＨ．２６３＋およびＭＰＥＧ−４  Ｖｉｓｕａｌ）とは対照的に、Ｈ．２６４／ＡＶＣ規格のイントラ予測は、予測されるブロックの左および／または上の前に符号化されたブロックの近接サンプルのビンを参照することによって、空間ドメインにおいて常に実行される。これは、動き補正によりインター符号化されたマクロブロックへ伝搬する送信エラーにより環境にエラー伝搬をもたらすおそれがある。したがって、イントラ符号化された近接マクロブロックのみからの予測を可能とする制約されたイントラ符号化モードが信号伝達できる。
【０４３３】
Ｉｎｔｒａ＿４×４モードを使用する場合、図４３の左側に示すように、各４×４ブロックは、空間的に近接するサンプルから予測される。ａ〜ｐでラベル付けされた４×４ブロックの１６個のサンプルは、Ａ〜Ｑでラベル付けされた隣り合うブロック内の先に復号化されたサンプルを用いて予測される。各４×４ブロックに対して、９個の予測モードの１つを利用することができる。更に、（１つの値が４×４ブロック全体を予測するために使用される）「ＤＣ」予測に対して、図４１の右側に示すように、８つの方向性予測モードが指定される。これらのモードは、様々な角度のエッジなどの画像の方向性のある構造を予測するために適している。
【０４３４】
また、イントラマクロブロック符号化タイプに対して、様々な予測のまたは動き補正された符号化タイプは、Ｐマクロブロックタイプとして指定される。各Ｐマクロブロックタイプは、動き補正された予測に使用されるブロック形状へのマクロブロックの特定のパーティションに対応する。１６×１６、１６×８、８×１６、および８×８のサンプルのルマブロックサイズを有するパーティションはシンタックスでサポートされる。８×８のサンプルを使用するパーティションを選択した場合、８×８のパーティションごとに１つの更なるシンタックス要素が送信される。このシンタックス要素は、対応する８×８のパーティションが、８×４、４×８、または４×４のルマサンプルおよび対応するクロマサンプルのパーティションに、更に分割されるかを指定する。
【０４３５】
各予測符号化されたＭ×Ｎのルマブロックの予測信号は、並進運動ベクトルと画像基準インデックスによって指定される、対応する基準画像の領域を移動させることによって取得される。このように、マクロブロックが４個の８×８のパーティションを使用して符号化され、各８×８のパーティションが４個の４×４のパーティションにさらに分割される場合、１６個の動きベクトルの最大値を単一のＰマクロブロックに対して送信することができる。
【０４３６】
量子化パラメータＳｌｉｃｅＱＰは、Ｈ．２６４／ＡＶＣ規格の変換係数の量子化を決定するために使用される。このパラメータは５２個の値を取ることができる。これらの値は、量子化パラメータが１つ増えると、量子化ステップサイズが約１２％増加することを意味する（６の増加はちょうど２の因数による量子化ステップサイズの増加を意味する）ように構成される。約１２％のステップサイズの変化は、おおまかに、約１２％のビットレートの減少を意味することが分かる。
【０４３７】
ブロックの量子化変換係数は一般にジグザグ方式でスキャンされ、エントロピー符号化方式を使用して送信される。クロマ成分の２×２ＤＣ係数は、ラスタスキャン順にスキャンされる。Ｈ．２６４／ＡＶＣ規格のすべての逆変換演算は１６ビット整数値の加算とビットシフト演算をのみ使用して実施することができる。同様に、１６ビットのメモリアクセスだけがエンコーダにおける順方向変換と量子化プロセスの良好なインプリメンテーションに必要とされる。
【０４３８】
図２９に関して上に説明した符号化配置による図４０のエントロピーエンコーダ２８００。コンテクストモデラは、正規の符号化エンジンとも呼ばれるエントロピーエンコーダへコンテクストモデル、すなわち、確率情報を送信する。符号化されるビット、すなわち、ビンは、コンテクストモデラから正規の符号化エンジンへ転送される。このビン値も、コンテクストモデルの更新が得られるようにコンテクストモデラへフィードバックされる。バイパス符号化エンジンとも呼ばれるエントロピーエンコーダを含むバイパスブランチが提供される。バイパス符号化エンジンは、入力ビン値をエントロピー符号化するために演算可能である。正規の符号化エンジンに相対して、バイパス符号化エンジンは適応型符号化エンジンではなく、好ましくは、コンテクスト適応せずに一定の確率モデルとともに機能する。２つのブランチの選択はスイッチによって取得される。バイナライザデバイスは、ビンストリング、すなわち、二値ストリングを取得するために非二値化されたシンタックス要素を二値化するように演算可能である。シンタックス要素がすでに二値シンタックス要素である場合、バイナライザはバイパスされる。
【０４３９】
いわゆる正規の符号化モードにおいて、実際のエントロピー符号化プロセスに先立って、これもビンと称する、所与の二値決定が、確率モデルが対応する選択が前に符号化されたシンタックス要素またはビンに依存しうるように選択される、コンテクストモデリングステージに入る。次に、コンテクストモデルの割当て後、ビン値はその関連するモデルとともに正規の符号化エンジンへ渡され、ここで、これに続くモデル更新とともにエントロピー符号化の最終ステージが行われる（図２９を参照）。
【０４４０】
あるいは、バイパス符号化モードが、明示的に割り当てられたモデルを使用せずに、簡素化した符号化エンジンを用いて符号化（および復号化）プロセス全体の高速化を可能にするために、選択されたビンに対して選択される。このモードは、動きベクトルや変換係数レベルの差の成分に関して、これらのシンタックス要素の１次接尾語のビンを符号化する時に特に効果的である。
【０４４１】
以下では、３つの主要な機能的組立ブロック、すなわち、図４０のエンコーダ内の二値化、コンテクストモデリングおよび二値エントロピー符号化について説明する。
【実施例５】
【０４４２】
この実施例では、実施例４がさらに拡張され、図３４、３５、４６〜４９。本実施例によれば、データ値の二値化が、１次的接頭語をもたらすように、第１の二値化方式によってデータ値と所定のカットオフ値の最小値を二値化することによって実行され、データ値がカットオフ値より大きい場合、第２の二値化方式によってデータ値マイナス所定のカットオフ値の差を二値化して二値接尾語を得て、ここで、第１の二値化方式は第２の二値化方式とは異なり、次に、１次接尾語を１次接頭語に付記する。
【０４４３】
データ値はデータ値の二値化された表現から復元され、データ値の二値化された表現は第１の二値化方式によるデータ値と所定のカットオフ値の最小値の二値化である１次接頭語を有する符号語であり、データ値が所定のカットオフ値より大きい場合、１次接尾語が１次接頭語に付記され、この１次接尾語は第２の二値化方式による、データ値マイナス所定のカットオフ値の差の二値化である。この方法は、１次接頭語から最小値を抽出するステップと、最小値がカットオフ値と等しい場合は、１次接尾語からデータ値マイナス所定のカットオフ値の差を抽出するステップと、を含む。次に、所定のカットオフ値がこの差に追加されてデータ値を取得し、最小値がカットオフ値より小さい場合、この最小値がデータ値として扱われる。
【０４４４】
符号化ビットストリームへのデータ値の符号化は、１次接頭語を得るために、第１の二値化方式によってデータ値と所定のカットオフ値の最小値を二値化するステップと、データ値がカットオフ値より大きい場合、二値接尾語を得るために、第２の二値化方式によってデータ値マイナス所定のカットオフ値の差を二値化するステップと、ここで、第１の二値化方式と第２の二値化方式は異なり、次に、１次接尾語を１次接頭語に付記するステップと、を含む。次に、符号語のビットごとに、符号語のビットが１次接頭語の一部である場合、適応型可変ビット値確率推定によるビットの二値エントロピー符号化が、確率推定依存型の部分的ビットストリーム選択を有する上記の実施形態のいずれかによって、実行されるか、または、符号語のビットが１次接尾語の一部であれば、静的ビット値確率推定によってビットの二値符号化が実行され、これによって、符号化されたビットストリームが得られる。
【０４４５】
データ値の二値化された表現を表す符号化されたビットストリームの復号化を説明する。データ値の二値化された表現は、１次接頭語を有する符号語であり、かつ第１の二値化方式によるデータ値と所定のカットオフ値の最小値の二値化である。データ値が所定のカットオフ値より大きい場合、１次接尾語が１次接頭語に付記される。１次接尾語は、第２の二値化方式による、データ値マイナス所定のカットオフ値の差の二値化である。この方法は、符号語のビットごとに、符号語のビットが１次接頭語の一部である場合、適応型可変ビット値確率推定によって符号化されたビットストリームを二値エントロピー復号化することによって、すなわち、確率推定に関連付けられた部分的ビットストリームを介してビットを検索することによって、ビットを決定するステップと、符号語のビットが１次接尾語の一部である場合、静的ビット値確率推定によってビットを二値復号化することによってビットを決定するステップとを含み、これにより符号語を得る。次に、最小値が１次接頭語から抽出される。最小値がカットオフ値と等しい場合、データ値マイナス所定のカットオフ値の差が１次接尾語から抽出され、所定のカットオフ値がこの差に加算されて、データ値が得られる。最小値がカットオフ値より小さい場合、この最小値がデータ値とされる。
【０４４６】
ビデオ信号においてシンタックス要素を形成する、データ値と、特に、動きベクトル差の成分または変換係数レベルの値と、の非常に効果的な圧縮は、エントロピー符号化のためにシンタックス要素を用意するための二値化方式―この二値化方式は実質的に２つの異なる二値化方式の組合せである―を使用して、および、二値化されたシンタックス要素を符号化するためのｍ変数のエントロピー符号化ではなく二値エントロピー符号化を使用して、達成される。
【０４４７】
元のｍ変数のソースアルファベットで演算するｍ変数のエントロピーコーダの代わりに二値エントロピー符号化エンジンを使用することの利点は、２つの可能なビット値に対する確率の判定がちょうど１つの確率推定値によって定義できるので、確率推定の複雑さが軽減されることである。適応型のｍ変数のエントロピー符号化は、ｍ＞２の場合、一般的に、確率推定の更新を行うために非常に複雑な多くの動作を必要とする計算的に複雑な演算になる。
【０４４８】
具体的な実施形態によれば、切り捨て単項二値化方式とｋ番目の次数の指数ゴロム二値化方式の連結が使用される。単項／ｋ番目の次数の指数ゴロム（ＵＥＧｋ）二値化と呼ばれるこの連結方式は、動きベクトル差と、変換係数レベルの絶対値と、に適用される。これらの連結された二値化方式の設計は以下の観察によって動機付けされる。まず、単項コードは実施コストの面で最もシンプルな接頭語なしのコードである。第２に、対応するツリーのノード配列が一般に、ルートノードからの内部ノードの距離が大きくなるにつれて、対応する二値確率にあまり偏りが発生しないような配列なので、以降のコンテクストモデリングステージにおける個々のシンボル確率の迅速な適応を可能にする。これらの観察結果は、動きベクトルの絶対差と変換係数レベルの小さな値に対して精度が高い。大きな値に対しては、接頭語としての適応された切り捨て単項ツリーと接尾語としての静的指数ゴロム符号化ツリーを連結させるアイデアに達した適応型モデリングをあまり使用しない。一般に、上述したように、大きい値の場合、ＥＧｋ接尾語部分が、観察された確率分布に対してかなり良好な適合を既に表している。
【０４４９】
一方で、バイナライザ２１０２がシンタックス要素をマッピングする符号語の「ビット」またはビン間の関係、他方で「ビン」間の関係を説明するために、図４４は、図４６に関して後述する二値化方式に対応する二値符号化ツリーを示している。全体的に参照番号３１５０で示される符号化ツリーは、ルートノード３１５２といくつかの内部ノード３１５４を含み、ルートノード３１５２と内部ノード３１５４は、インデックスｉが対応するノードに関連付けられた整数であるＣｉによって指定される。これらのノードの各々は、左ブランチがビン値０に対応し、右ブランチがビン値１に対応している「ビン」と呼ばれる条件ブランチまたは二値決定を定義付ける。
【０４５０】
ツリー３１５０は、終端ノード３１５６も含む。図４４において終端ノード３１５６に割り当てられた番号はシンタックス要素のデータ値に対応し、このデータ値は、図４６の二値化方式に基づいて、ルートノード３１５２からそれぞれの終端ノード３１５６までのパスをたどるときのビットまたはビン値から得られる符号語またはビットストリングに対応している。たとえば、データ値１７は、図４６に示すように、符号語ビットストリング１１１１１１１１１１１１１１１０１に対応する。パスは、ルートノード３１５２と内部ノード３１５４Ｃ２〜Ｃ１７を含む。各ノード３１５２または３１５４は、「ビン」と呼ばれる二値決定と見なされうる。ルートノード３１５２からそれぞれの終端ノード３１５６までのツリー３１５０を横断するための二値決定の連結は、対応するシンボル値またはシンタックス要素値の「ビンストリング」を表している。
【０４５１】
各二値決定は、決定が二値ゼロ（図４４において左ブランチ）と二値１（図４４において右ブランチ）が得られるかについての確率を示す実際の確率分布を有している。言い換えれば、二値決定の実際の確率分布は、この二値決定時に、シンタックス要素パスがゼロまたは１ブランチを取ることの確率を定義付ける。したがって、あるデータ値を仮定するためのシンタックス要素に対する実際の確率は、ルートノード３１５２から各終端ノード３１５６までのパスに沿って配置されたノードにおけるそれぞれの確率の積と等しい。
【０４５２】
二値エントロピー符号化の場合、ツリー３１５０の各二値決定またはノード３１５２、３１５４、すなわち、各ビンは、ビット値確率推定またはコンテクストモデルすなわちＣｉに関連付けられている。以下により詳細に記載されているように、ノードまたはビンの全てが適応確率推定モデルに関連付けられているわけではなく、静的な確率推定に関連付けられてもよいことから、コンテクストモデリングオーバーヘッド、すなわち、圧縮率を高めるために過去のビンに応じて推定を適応させるための管理が削減される。
【０４５３】
次に、図４５では、本発明の一実施形態による二値化方式の実施形態を説明する。図４５は、バイナライザ３１０２が非二値化されたシンタックス要素上で実行するステップを概略的に示している。具体的には、図４５は、変換係数レベルの絶対値、すなわち、変換係数値の計算のためのスケーリングに先立つ復号化プロセスにおける特に２次元の頻度インデックスに関連付けられた値を表す整数量、を二値化するための実施形態である。
【０４５４】
図４５の二値化方式は、一方で切り捨て単項二値化方式、他方でｋ番目の次数の指数ゴロム二値化方式を連結したものである。切り捨て単項二値化方式は単項二値化方式を基礎としている。単項二値化方式に基づいて、ゼロと等しいかゼロより大きい各符号なしの整数値シンボルｘに対して、ｘがマッピングされる単項符号語は、ｘ個の「１」のビットプラス終端「０」ビットから成る。単項二値化方式とは異なり、切り捨て単項（ＴＵ）コードは、ｘ＜Ｓに対してコードが単項コードによって与えられる、０≦Ｘ≦Ｓのｘに対してのみ定義付けられ、ｘ＝Ｓの場合、ｘ＝ＳのＴＵコードが終端ビット「０」なしのｘ個の「１」ビットのみから成る符号語により付与されるように、終端「０」ビットは無視される。指数ゴロム二値化方式によれば、一般に、データ値ｘは接頭語と接尾語から成る符号語にマッピングされる。より正確には、ｋ番目の次数の指数ゴロム二値化方式によれば、データ値は、少なくとも接頭語を有し、データ値によっては接尾語も有する符号語にマッピングされる。ＥＧｋ符号語の接頭部は、
【０４５５】
【数４８】
2014534677.tif 000060
である値ｌ（ｘ）に対応する単項コードから成り、ｋはコードの次数を示し、
【数４９】
2014534677.tif 000061
は実値ｒより小さいかこれと等しい最大整数である。ＥＧｋの接尾部は、ｋ＋ｌ（ｘ）の有意ビットを使用して、ｘ＋２ｋ（１−２ｌ（ｘ））の二値表現として計算される。
【０４５６】
図４５からわかるように、二値化される絶対データ値ｘは、ｘとＳの最小値を決定するために、３２００において、カットオフ値Ｓと比較される。Ｓは、排他的に、すなわち残留値に対してゴロム二値化方式を使用せずに、切り捨て単項符号を使用して、絶対データ値ｘを定義付けるカットオフ値である。言い換えれば、カットオフ値Ｓ未満の全ての絶対データ値ｘに対して、絶対データ値ｘを符号語にマッピングするために、切り捨て単項二値化が専ら使用され、この符号語はしたがって１次接頭語のみから成る。絶対データ値ｘがＳより大きいまたはＳと等しい場合、１次接尾語が１次接頭語に付記される。後述するように、１次接尾語はｘ−Ｓからのゼロ次数の指数ゴロム二値化方式に基づいて作成される。
【０４５７】
３２０２においてｘとＳの間の最小値は切り捨て単項二値化方式に基づいて二値化される。結果は、ｘがマッピングされる最終符号語３２０６の少なくとも一部を構成する、１次接頭語２０４である。１次接頭語はこのようにＭｉｎ（Ｓ、Ａｂｓ（ｘ））の値の単項二値化からなり、ここで、Ｍｉｎ（ａ、ｂ）は値ａとｂの最小値を示し、Ａｂｓ（ｘ）はｘの絶対値を示している。言い換えれば、１次接頭語は、ｘがＳより大きいかまたはこれと等しい場合、Ｓ個の１から成り、ｘがＳより小さい場合、終端ゼロが後に続くｘ個の先頭の１から成る。
【０４５８】
３２０８において絶対データ値ｘはカットオフ値Ｓと比較される。この比較によってｘがＳより小さい場合、二値化は３２１０で終了し、したがって、絶対データ値ｘが図４５の二値化方式に基づいてマッピングされる符号語３２０６は１次接頭語３２０４のみからなる。それ以外の場合、すなわち、ｘがＳと等しいかまたはＳより大きい場合、３２１２において、カットオフ値Ｓは絶対データ値ｘから減算される。ｘマイナスＳによって得られる差分値は、残留値と呼ばれることもあり、３２１４において、ｋがゼロと等しい、ｋ番目の次数の指数ゴロム二値化方式に基づいて処理される。ｋ番目の次数の指数ゴロム二値化方式は、図４８に関してより詳細に後述される。
【０４５９】
「ｘマイナスＳ」の差の二値化３２１４の結果は、１次接尾語３２０８として１次接頭語３２０４に付記される。したがって、絶対データ値ｘがカットオフ値Ｓより大きいかまたはこれと等しい場合、得られる符号語２０６は、１次接尾語３２０８が後に続く１次接頭語３２０４から成り、ここで、１次接尾語３２０８は、ｘ−Ｓのｋ番目の次数の指数ゴロム二値化である。以下の説明から明らかなように、１次接尾語３２０８自体は、これ以降、２次接頭語３２１８と２次接尾語３２２０と呼ばれる、接頭語と接尾語から成っている。
【０４６０】
実験的研究は、変換係数レベルの絶対値に対して、Ｓ＝１４、ｋ＝０が、１次接頭語の一部である符号語３２０６のビットだけが適応型確率モデルを用いてエントロピー符号化されても、このような二値化された変換係数レベル値を二値エントロピーコーダへ渡す場合、相対的に良好な圧縮比率を提供し、よって、符号化オーバーヘッドを削減することができることを示した。
【０４６１】
図４６は、左列３２１５内の変換係数レベルの絶対値を、Ｓ＝１４およびｋ＝０であるときの図４５の３２５２の右側の二値化に基づく対応する符号語とともに一覧にした表を示す。ゼロ値化された、すなわち、非有意変換係数レベルが上述した有意性マップを用いて符号化されるので、二値化とこれに続く符号化プロセスはシンタックス要素「変換係数レベル値マイナス１」に適用されることに留意されたい。したがって、図４５に関して、図４６の表の３２５０には、ｘプラス１の値が一覧にされている。図４６の表は、値Ｓ＝１４、ｋ＝０であるときの図４５の二値化方式の結果を示している。
【０４６２】
図に示すように、絶対値がマッピングされる符号語またはビンストリングは、少なくともＴＵ接頭語を含み、符号語またはビンストリングのＴＵ接頭部分は、図４６の３２５４において強調されている。図示したように、１５（＝ｘ＋１）未満の絶対値は３２５６で示すようにＥＧ０接尾語を有さない。また、点線３２５８で示すように、各ＥＧ０接尾語３２５６は、点線３２５８の左側にある２次接頭語を含み、絶対値１５に属する符号語の１つを除いて、すべてのＥＧ０接尾語３２５６は、点線３２５８の右側に配置された２次接尾語を含む。
【０４６３】
図４６と同様に、図４７は、ｋ＝３、Ｓ＝９であるときに図４５の二値化方式に基づいて取得される絶対値とビンストリングのペアの表を示している。図４６の要素と同じ図４７の表の要素には図４６と同じ参照番号が付され、これらの要素の反復説明は省略する。符号ビットは図４７の表に示されていない。
【０４６４】
図４７に基づく二値化方式によるｋおよびＳに対する値は、動きベクトルの差分の絶対成分に適用された場合、良好な圧縮効果を示した。動きベクトルの差分に対して、図４７に示すＵＥＧｋ二値化は以下のように構成される。動きベクトル成分の値ｍｖｄが与えられるとする。ＵＥＧｋビンストリングの接頭部に対して、ＴＵ二値化（図４５の３２０２）は、カットオフ値Ｓ＝９を有するｍｖｄの絶対値を使用して引き出される。ｍｖｄがゼロと等しい場合、ビンストリングは接頭語符号語「０」、２７０のみから構成される。条件｜ｍｖｄ｜≧９に従う場合（図４５の３２０８）、接尾語は、符号ｍｖｄが負のｍｖｄに対しては符号ビット「１」（図示しない）を用いて付記され、それ以外の場合は符号ビット「０」（図示しない）が付記される、｜ｍｖｄ｜−９の値に対するＥＧ３符号語として構成される（図４５の３２１４）。０＜｜ｍｖｄ｜＜９ときのｍｖｄ値に対して、接尾語は符号ビットのみから構成される。
【０４６５】
動きベクトル差の成分が４分の１のサンプル精度における予測誤差を表すと仮定すると、接頭部分は＋／−２のサンプルの最大誤差成分に常に対応している。指数ゴロムパラメータｋ＝３を選択した場合、接尾符号語は、２つのサンプルの単位で予測誤差の幾何学的な増加が対応する接尾符号語長さの線形増加によってキャプチャされるように、与えられる。
【０４６６】
図４５〜図４７に関して図２９におけるバイナライザ３１０２の機能性を大まかに説明してきたが、図４５におけるｋ番目の次数の指数ゴロム二値化３２１４に対する可能なインプリメンテーションを図４８に関してより詳細に説明する。図４８は、図４５の二値化方式に基づいて絶対データ値ｘの二値化を表す符号語の１次接尾部分を構成するプロセスを示す擬似Ｃコードを示す。まず、ステップ３３００において、補助パラメータｋが、使用される指数ゴロム二値化の次数に初期化される。図４７に基づく動きベクトル差の成分の二値化の場合、たとえば、ステップ３３００において、ｋは３の値に初期化される。
【０４６７】
動きベクトル差（ｍｖｄ）の絶対値とここでは９のカットオフ値との比較をライン３３０２において行い、ｍｖｄの絶対値が９より大きいかまたは９と等しいことが分かった場合、ステップ３３０４において、ｓｕｆＳに取得するためにｍｖｄの絶対値からカットオフ値Ｓ＝９が減算される。また、ステップ３３０６において、パラメータｓｔｏｐＬｏｏｐがゼロの値に初期化される。次に、３３０８において、ｓｔｏｐＬｏｏｐパラメータは、ライン３１０においてチェックされるように、その値を０より大きい正の値へ変更しない限り、条件ｉｆの演算が実行される。条件ｉｆの演算によってｓｕｆＳがｋ番目の２の指数（３１２ｄ）より大きいかこれと等しいことが分かった場合、３３１２において、ビット値１を有するビットが出力され（３３１２ａ）、ｋ番目の２の指数がｓｕｆＳから減算され（３３１２ｂ）、ｋが増分される（３３１２ｃ）。それ以外の場合、つまりｓｕｆＳがｋ番目の２の指数より小さい場合（３３１２ｅ）、ゼロのビット値を有するビットが出力され（３３１２ｆ）、ｋの実際の値（３３１２ｇ）と等しい多数のビットを使用したｓｕｆＳの二値表現が出力され（３３１２ｈ）、パラメータｓｔｏｐＬｏｏｐが１の値に設定され（３３１２ｅ）、これにより、条件ｉｆ演算３３０８の反復実行３３０８を停止する結果になる。
【０４６８】
３３０４〜３３１２の全ステップは、ステップ３３０２の比較によってｍｖｄの絶対値が９より大きいかこれと等しいことが分かった場合に、実行される。３３０２の比較とは無関係に、３３１４において、ｍｖｄがゼロより大きい場合、ゼロの符号ビットが出力され、ｍｖｄがゼロより小さい場合、１の符号ビットが出力される。符号ビットは図４７に示されていない。
【０４６９】
図４８の擬似Ｃコードから明らかであるように、３番目の次数の指数ゴロム二値化方式の場合、図４７にも示されるように、接尾部分は、１つが３３１２ｆのゼロビットであり、他の３つが３３１２ｈにおける二値表現出力のビットである４ビットを少なくとも含み、各符号語の末尾の符号ビットは無視される。
【０４７０】
本発明の実施形態によるエンコーダ側における二値化とエントロピー符号化について説明してきたが、図４９は、エントロピー符号化されたビットストリームを復号化するためにデコーダ側で実行される本発明の一実施形態にとしてのステップを示す。
【０４７１】
まず、ステップ３４００において、エントロピー符号化されたビットストリームを受信するデコーダは、符号化されたビットストリームから判定される次のビンまたはビットが１次接頭語ビットまたは１次接尾語ビットであるかどうかを決定する。デコーダは、予想される次のビンまたはビットが、二値化されたシンタックス要素の１次接頭語または１次接尾語のビットであるかどうかについて、エントロピー符号化されたビットストリームの所定のシンタックスやり方から知っている。
【０４７２】
ステップ３４００で、予想されるビットが１次接頭語のビットであると判定された場合、デコーダは適応可能に変化する確率推定またはコンテクストモデルに基づく二値エントロピー復号化によってこのビットに対するビット値を決定する。つまり、デコーダは、選択するためにそれぞれの確率推定を使用して、上に説明したそれぞれの部分的ビットストリームを選択する。デコーダは、それぞれのコンテクストモデルタイプによって示される過去の復号化されたビンに基づいてこの適応可能に変化する確率推定を更新する。
【０４７３】
ビットが１次接尾語のビットである場合、３４０３において、次のビットまたはビン値が静的な確率モデルに基づくエントロピー復号化を行うことによって決定される。これは、実際のビットを含むビンに対して符号語を１：１でマッピングすることを含みうる。
【０４７４】
符号語全体のビットに対してビット値を達成するためのビットが残っている場合、デコーダは、３４０８において、ステップ３４００から３４０４を反復する。ステップ３４０８においてビットが残っていない場合、復号化プロセスはステップ３４１０において終了する。シンタックス要素が絶対変換係数レベルマイナス１である場合に図４４に示した符号化ツリーなどのそれぞれの二値化符号ツリーの後に続くことによって、デコーダは、シンタックス要素の二値表現が終了した時、すなわち、復号化されたビットが実際のシンタックス要素の最後のビットであるか、を知ることができる。
【０４７５】
図５０は、図４９のプロセスによって取得される符号語から、符号語に二値化されたデータ値を復元するプロセスを示している。図４９のプロセスによって取得されるビット値はビットストリーム３４５０を形成する。上に説明したように、デコーダは、新しい符号語がビットストリーム３４５０上にくる時を知ることができ、新しい符号語のインスタンスは信号３４５２によって表わされる。
【０４７６】
ステップ３４５４の最小値抽出ステップにおいて、値ｍが符号語の１次接頭語の先頭の符号語をカウントすることにより二値符号語から抽出される。このカウントはｍと等しい。ステップ３４５６においてｍとＳがチェックされ、ｍがＳと等しい場合（デコーダはどのシンタックス要素がどの二値化方式によって符号化されるかを知っているので、Ｓの値をデコーダは知っている）、ステップ３４５８の差分抽出ステップにおいて、ビットストリーム３４５０からの１次接頭語のビットに続くビットを受信し、これらのビットは符号語の１次接尾部分を形成する。ステップ３４５８の差分抽出ステップにおいて、復元されるデータ値ｘとカットオフ値Ｓとの差は、ビットストリーム３４５０の符号語の１次接尾語から復元される。
ステップ３４６０において、Ｓはステップ３３５８で復元された差ｘ−Ｓに加算され、実際に符号化されたシンタックス要素に対する値である、値ｘを得る。
最小値抽出ステップ４５４を示す擬似Ｃコードの例は次のようになる：
ｍ＝−１；                              ／計数パラメータを初期化し
ｆｏｒ（ｂ＝０；（ｂ−１）；ｍ＋＋）｛  ／の先頭ビットをビット単位で読み出し
ｂ＝ｒｅａｄ＿ｂｉｔｓ（１）；        ／符号語、各読出しの前に
ｉｆ（ｍ＝Ｓ）                        ／実際までに、ｋを増分し
ｂ＝０；                            ／読出したビットがゼロまたはｍ＝Ｓ
｝                                      
【０４７７】
差分抽出ステップ３４５８によって実行されるサブステップは、図５１に示されている。ステップ３５００において、差分抽出部は、値ｍを取得するために１次接尾語の先頭ビットをカウントする。次に、ステップ３５０２において、モーデョンベクトルの差が３であり、変換係数レベルの値が０である、ｋが、ゼロと比較される。ステップ３５０４において、ｋがゼロと等しい場合、ステップ３５０４において、ｍはゼロと比較される。この比較において、ｍ＝０の場合、ステップ３５０６において、データ値ｘが、モーションベクトルの差の場合に９であり、変換係数レベルの場合に１４である、カットオフ値Ｓと等しいことが推測される。
【０４７８】
ｋはゼロと等しくないおよび／またはｍがゼロと等しくない場合、ステップ３５０８において、次のｋプラスｍの後続ビットがビットストリーム３４５０、すなわち、２次接頭語の終端ビットに続くビットから、読み出される。よって、二値（ｋ＋ｍ）ビット長さの表現として、Ａ＝ｘ−Ｓ＋２ｋ（１−２ｍ）が達成される。この等式から容易に求められるように、ｍ＝０の場合、Ａ＝ｘ−Ｓである。
【０４７９】
ステップ３５１０においてｍを０と比較し、ｍ＝０であることが判明した場合、二値表現Ａから２ｋ（１−２ｍ）の値を減算してｘ−Ｓの値を得る。
【実施例６】
【０４８０】
この例において、実施例４はさらに拡張され、図３４、３５、３６、３７ａ、ｂ、３９、４５、４６〜４９が適用される。本実施例において、プリコードされたビデオ信号に含まれるシンタックス要素に対する符号化方式が提供され、この方式はより高い圧縮効果を可能にする。
【０４８１】
プリコードされたビデオ信号に含まれるシンタックス要素を符号化ビットストリームへ符号化するための方法が説明される。プリコードされたビデオ信号は少なくとも１つのビデオフレームを表し、このシンタックス要素はビデオフレームの所定の部分に関連付けられかつこのビデオフレームの所定の部分が１次または２次のいずれの方法でプリコードされたビデオ信号へプリコードされるかを示しており、この方法は、二値の値を取得するために、所定の部分に近接するビデオフレームの近接部分が第１の方法でプリコードされるかまたは第２の方法においてプリコードされるかを調査するステップと、この二値の値に基づいてビデオフレームの所定の部分へ少なくとも２つのコンテクストモデルの１つを割り当てるステップを含み、各コンテクストモデルは異なる確率推定に関連付けられる。最終的に、シンボルシーケンスの符号化は上記の実施形態のいずれかに基づいて行われ、少なくとも１つのシンボルはシンタックス要素の表現に関連している。この割当部は、それぞれのシンボルに割り当てられたコンテクストに関連付けられた確率分布推定に基づいてそれぞれのシンボルに対して確率分布の推定に対する測度を求めるように構成されている。これによって、選択部はそれぞれのエントロピーコーダを選択する。
【０４８２】
本発明の第２の態様によれば、この態様は、符号化されたビットストリームからシンタックス要素を復号化するための方法によって達成される。このシンタックス要素はプリコードされたビデオ信号内に含まれており、このプリコードされたビデオ信号は少なくとも１つのビデオフレームを表し、このシンタックス要素はビデオフレームの所定の部分に関連付けられかつこのビデオフレームの所定の部分が第１または第２のいずれの方法でプリコードされたビデオ信号へプリコードされるかを示しており、この方法は、二値の値を取得するために、所定の部分に近接するビデオフレームの近接部分が第１の方法でプリコードされるかまたは第２の方法でプリコードされるかを調査するステップと、この二値の値に基づいてビデオフレームの所定の部分へ少なくとも２つのコンテクストモデルの１つを割り当てるステップを含み、各コンテクストモデルは異なる確率推定に関連付けられ、上記実施形態のいずれかに基づいて少なくとも１つのシンボルがシンタックス要素の表現に関連しているシンボルシーケンスの復元が実行される。この割当部は、それぞれのシンボルに割り当てられたコンテクストに関連付けられた確率分布推定に基づいてそれぞれのシンボルに対して確率分布の推定に対する測度を求めるように構成されている。これによって、選択部はそれぞれのエントロピーデコーダを選択する。
【０４８３】
本実施例は、プリコードされたビデオ信号の符号化圧縮率がより高いであろうという発見に基づいている。ビデオフレームや画像の所定の部分に関連付けられかつビデオフレームの所定部分が第１または第２の方法のいずれによってプリコードされるかを示すシンタックス要素、すなわち、コントロール情報シンタックス要素が少なくとも２つのコンテクストモデルの１つに割り当てられる時、この割当ては、第１または第２の方法でプリコードされたビデオフレームの近接する部分に依存している。次に、シンタックス要素は、１つのコンテクストモデルが関連付けられた確率推定に基づいて符号化されたビットストリームへエントロピー符号化されうる。この測度によって、シンタックス要素の実際のまたは真の確率分布が同じタイプであるがビデオフレームの近接部分に関連付けられるシンタックス要素に依存することが利用され、実際の確率分布がより正確に近似され得る。
【０４８４】
したがって、より正確に調整可能な確率推定によって、プリコードされたビデオ信号に対する符号化されたビットストリームの圧縮率を上昇させることができうることは本発明の利点である。
【０４８５】
言い換えれば、本発明の一実施形態によれば、特定のタイプのシンタックス要素は、これがプリコードされたビデオ信号において出現するたびに少なくとも２つのコンテクストモデルのうちの異なる１つずつに割り当てられる。このコンテクストモデルの選択は、シンタックス要素が出現するたびに実行され、ビデオフレームの近接する部分が第１または第２のいずれの方法でプリコードされるかに依存している。実際には、この測度によって、プリコードされたビデオ信号に出現するこのタイプのすべてのシンタックス要素はいくつかのコンテクストモデルのグループにグループ化され、各シンタックス要素は１つのコンテクストモデルグループに属しており、各コンテクストモデルグループはコンテクストモデルの異なる１つに割り当てられ、かつ各コンテクストモデルは異なる確率推定に関連付けられる。したがって、各グループは、異なる確率推定に基づいてエントロピー符号化され、すなわち、その確率推定が割り当てられるコンテクストモデルに属している。
【０４８６】
本発明の他の実施形態によれば、各コンテクストモデルの確率推定は前に符号化されたシンタックス要素に適応され、この適応はコンテクストモデルごとに個別に実行される。言い換えれば、エントロピー符号化されたばかりの各シンタックス要素が、このシンタックス要素が割り当てられるコンテクストモデルの確率推定を適応させるために使用される。したがって、同じタイプでありかつ同じコンテクストモデルに割り当てられた後に続くシンタックス要素は、適応された確率推定によってエントロピー符号化される。この測度によって、コンテクストモデルは互いから独立して適応されまたは管理されるので、適応に撚り実際のまたは真の確率推定に対するより良好な近似が得られ、これによってより良好な圧縮率が得られる。
【０４８７】
本発明の具体的な実施形態によれば、空間依存性コンテクストモデルの選択はプリコードされたビデオ信号においてフレーム／フィールド符号化モードのフラグを符号化するために使用される。このフレーム／フィールド符号化モードのフラグは、それぞれのビデオフレーム部分がフレームまたはフィールド符号化のいずれのモードで符号化されるかどうかを示している。より正確には、本実施形態によれば、ビデオフレームはインターレースされたフレームであり、その画像サンプルの一部は１つの時刻でキャプチャされるが他の画像サンプルは他の時刻でキャプチャされ、この第１の画像サンプルは第１のフィールドと称され、第２の画像サンプルは第２のフィールドと称される。また、ビデオフレームは各々が２つのマクロブロックから成る、複数のマクロブロック対のアレイへ空間的に分割される。フィールドモードで符号化される場合、マクロブロック対内の１つのマクロブロックは第１のフィールドの画像サンプルまたは第２のフィールドの画像サンプルを含むのみであるが、そのマクロブロック対の他のマクロブロックはマクロブロック対内の他のフィールドの画像サンプルを含むかまたは表している。フレームモードで符号化される場合、マクロブロックは第１と第２のフィールド画像サンプルの両方、具体的には、マクロブロック対内に空間的にトップまたはボトムマクロブロックを含むが、同じマクロブロック対の他のマクロブロックはマクロブロック対内の他の画像サンプルを表している。
【０４８８】
シンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇに関して、以下により詳細に説明するように、ステージ２１００ａから渡されたビンにおいて同じビンまたは同じシンタックス要素が数回出現する場合、このシンタックス要素は前に入ってくるかまたは前にエントロピー符号化されたビンに基づいて異なるコンテクストモデルに割り当てられる。
【０４８９】
符号化配置２１００の演算について説明してきたが、以下では、本発明の実施形態によるシンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの取り扱いに関してその機能についてより詳細に説明する。このため、まず、図３０〜３１ｂに関して、このフラグの意味を説明する。
【０４９０】
さて、割当ては、マクロブロック対またはマクロブロック対のマクロブロックがプリコーダ２０１２によって符号化されるモードに依存しており、プリコータ４０１２によって出力されるプリコードされたビデオ信号に含まれるシンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの機能および意味を説明するために、ここでも、図２８を参照する。
【０４９１】
―プリコーダ４０１２がインターレースされたビデオフレームを表すビデオ信号を受信すると、プリコーダ４０１２は、ビデオフレーム４０１０を符号化する時に以下の決定を自在に行うことができる。
【０４９２】
―プリコーダは、１つの単一符号化フレームとしてこれらを符号化するために２つのフィールドを結合し、これにより、各マクロブロック対と各マクロブロックはフレームモードで符号化されうる。
【０４９３】
―あるいは、２つのフィールドを結合して、これらを個別の符号化されたフィールドとして符号化し、これにより各マクロブロック対と各マクロブロックはフィールドモードで符号化されうる。
【０４９４】
最後のオプションとして、２つのフィールドを結合してこれらを単一フレームとして圧縮するが、このフレームを符号化する際、マクロブロック対を符号化する前に、マクロブロック対を２つのフィールドマクロブロックの対かまたは２つのフレームマクロブロックの対のいずれかに分割する。
【０４９５】
３つのオプションからの選択は列内のフレームごとに適応可能に行うことができる。最初の２つのオプションからの選択は画像適応型フレーム／フィールド（ＰＡＦＦ）符号化と呼ばれる。フレームが２つのフィールドとして符号化される場合、各フィールドはマクロブロックに分割され、フレームに非常に類似した方法で符号化される。
【０４９６】
フレームが、いくつかの領域が移動するが、他が移動しない混合領域から成る場合、一般に、フレームモードでは非移動領域を符号化し、移動領域をフィールドモードで符号化することがより効率的である。したがって、フレーム／フィールド符号化はフレーム内のマクロブロックの縦の対ごとに個別に決定することができる。これは、上に示したオプションの第３の符号化のオプションである。この符号化オプションはマクロブロック適応型フレーム／フィールド（ＭＢＡＦＦ）符号化と呼ばれている。以下に、プリコーダ４０１２がこのオプションだけを使用する決定をしたと想定する。上述のように、ＭＢＡＦＦ符号化は、符号化モードタイプ（フィールドまたはフレームモード）をシーンの各領域へより良好に適応させることを可能にする。たとえば、プリコーダ４０１２は、フレームモードにおいてビデオシーンの固定領域に配置されているマクロブロック対を符号化する一方、フィールドモードにおいて速い動きを示すシーンの領域内のマクロブロック対を符号化する。
【０４９７】
上述のように、フレームモードで符号化されたマクロブロック対に対して、各マクロブロックはフレームラインを含む。フィールドモードで符号化されたマクロブロック対に対して、トップマクロブロックはトップフィールドラインを含み、ボトムマクロブロックはボトムフィールドラインを含む。マクロブロック対ごとのフレーム／フィールドは、プリコーダ４０１２によってマクロブロック対レベルで決定される。すなわち、トップマクロブロックがフィールド符号化される場合、これが、同じマクロブロック対内にあるボトムマクロブロックにも適用される。この測度によって、基本的なマクロブロック処理構造がそのまま維持されており、動き補正領域はマクロブロックと同サイズにすることが許可される。
【０４９８】
フィールドマクロブロック対の各マクロブロックはＰＡＦＦ符号化のフィールド内のマクロブロックに非常に同様に処理される。しかし、フィールドとフレームのマクロブロック対の混合がＭＢＡＦＦフレーム内で出現することもあるので、この混合を説明にするためにＰＡＦＦ符号化と比較した場合、動きベクトルの予測、イントラ予測モードの予測、イントラフレームサンプル予測、エントロピー符号化におけるデブロックフィルタリングおよびコンテクストモデリング、および変換係数のジグザグスキャンなどの、プリコーダ４０１２におけるプリコード手順のいくつかの工程が変更される。
【０４９９】
要約すると、プリコーダ４０１２によって出力されるプリコードされたビデオ信号は、使用を決定した符号化プリコーダ４０１２のタイプに依存する。本明細書で想定されるように、ＭＢＡＦＦ符号化の場合、プリコードされたビデオ信号は、スキップされなかったマクロブロック対の各々に対して、フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇを含む。フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇは、各マクロブロック対に対して、対応するマクロブロックがフレームまたはフィールド符号化モードのいずれで符号化されるかということに属していることを示す。デコーダ側において、このフラグはプリコードされたビデオ信号を正確に復号化するために必要とされる。マクロブロック対のマクロブロックがフレームモードで符号化される場合、フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇはゼロであり、他の場合においてこのフラグは１である。
【０５００】
さて、図２９の元のデコーダの配置の一般的な動作モードを特別なビンに言及せずに説明したが、図５２では、フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの二値エントロピー符号化に関して、この配置の機能性を説明する。
【０５０１】
図５２に示すプロセスは、フラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇがコンテクストモデラ４１１２の入力に到達した時点でスタートする。第１のステップ４３００において、コンテクストモデラ４１１２は、入ってくるシンタックス要素またはビンがｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇであるかどうかを判定する。そうでない場合は、コンテクストモデラ４１１２は、ステップ３０２において手順またはサブルーチンを取り扱う別のシンタックス要素へ切り替える。入ってくるビンがｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇである場合、ステップ３０４において、コンテクストモデラ４１１２はフラグがどのコンテクストモデルに属するかを判定する。
【０５０２】
ステップ４３０４を図５３においてより詳細に示す。現在のｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇに対応するコンテクストモデルを決定するとき、コンテクストモデラ４１１２は、ステップ４３０６において、現在のマクロブロック対の左と上のマクロブロック対のトップマクロブロックのアドレスを最初に計算する。
【０５０３】
次のステップ４３０８および４３０９において、コンテクストモデラ４１１２は、現在のマクロブロック対の左と上のマクロブロック対それぞれのトップマクロブロックの利用可能性を判断する。ステップ４３０８において、ｍｂＡｄｄｒＡが０より小さい場合、左の近接するマクロブロックＡは利用可能であるとマークされる。これは、ステップ４３０９のｍｂＡｄｄｒＢについても同様に適用される。したがって、ＮがＡまたはＢのいずれかであるＭｂＡｄｄｒＮは、マクロブロック対が実際に存在する場合、それぞれの近接するマクロブロック対のトップマクロブロックのアドレスであると同時に、それぞれの近接マクロブロック対ＡおよびＢそれぞれの利用可能性の状態を示す。
【０５０４】
代替実施形態において、上記の条件のほかに以下：「アドレスｍｂＡｄｄｒＮを有するマクロブロックが現在のスライスと同じスライスに属する」の条件が真である場合、マクロブロックＡまたはＢは利用可能であるとマークされるのみである。
【０５０５】
ステップ４３０８／４３０９において、ＮがＡまたはＢのいずれかであるマクロブロックＮが利用可能であるとマークされた場合、ステップ４３１０とステップ４３１１のそれぞれにおいて、マクロブロックＮ（ＮはＡまたはＢと等しい）がフィールドモードで符号化されたマクロブロックであるかまたはフレームモードで符号化されたマクロブロックであるかが判定される。マクロブロックＡがフィールドモードで符号化される場合、ステップ４３１２においてフラグｃｏｎｄＴｅｒｍｆｌａｇＡは１に設定される。これはマクロブロックＢにも同様に適用され、マクロブロックＢがフィールドモードで符号化される場合、ステップ４３１３においてｃｏｎｄＴｅｒｍｆｌａｇＢは１に設定される。全ての他のケースにおいて、すなわち、ｍｂＡｄｄｒＡが０より小さい（４３０８）またはマクロブロックＡがフレームモードで符号化される場合（４３１０）、ステップ４３１４において、フラグｃｏｎｄＴｅｒｍＦｌａｇＡは０に設定される。したがって、ｍｂＡｄｄｒＢが０より小さい（４３０９）またはマクロブロックＢがフレームモードで符号化される場合（４３１１）、ステップ４３１５において、フラグｃｏｎｄＴｅｒｍＦｌａｇＢは０に設定される。
【０５０６】
ステップ４３１６において、ｃｏｎｄＴｅｒｍＦｌａｇＡとｃｏｎｄＴｅｒｍＦｌａｇＢがコンテクストモデラ４１１２によって使用されて、ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの二値エントロピー符号化に使用される確率モデルを示すコンテクストインデックスｃｔｘＩｄｘＭｂＦｉｅｌｄを計算する。具体的には、コンテクストモデラは、
ｃｔｘＩｄｘＭｂＦｉｅｌｄ＝ｃｏｎｄＴｅｒｍＦｌａｇＡ＋ｃｏｎｄＴｅｒｍＦｌａｇＢ
を計算し、多数の｛０、１、２｝が得られる。
【０５０７】
図５２に戻って、ステップ４３０４の判定の後、コンテクストモデラ４１１２は、正規の符号化エンジン４１１８へｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇと共にｃｔｘＩｄｘＭｂＦｉｅｌｄによってインデックス付けされた変数ｃｔｘＩｄｘＭｂＦｉｅｌｄ（コンテクストインデックスマクロブロックフィールド）または確率推定状態を渡し、次に、上記した実施形態のいずれかに基づいて構築される。すなわち、上記の実施形態の割当部は、ステップ４３０４において決定されたコンテクストを介して決定された確率に基づいて部分的ビットストリームを選択するためのパラメータを設定すると、選択部はそれぞれの部分的ビットストリームパスへｃｔｘＩｄｘＭｂＦｉｅｌｄのビンを送る。ステップ４３１８において、フラグｍｂ＿ｆｉｅｌｄ＿は、次に、ｃｔｘＩｄｘＭｂＦｉｅｌｄによりインデックス付けされるコンテクストモデルの現在の確率状態に基づいて選択されたそれぞれの部分的ビットストリームに符号化される。
【０５０８】
その後、正規の符号化エンジン４１１８は、パス４１１７を経由してｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇのビン値をパスしてコンテクストモデラ４１１２へ戻す。そして、コンテクストモデラ４１１２は、ステップ４３２０において、その確率推定状態に関して、ｃｔｘＩｄｘＭｂＦｉｅｌｄによりインデックス付けされたコンテクストモデルを適応させる。その後、出力４１２４におけるフラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇのビットストリームへの符号化のプロセスは、４３２２で終了する。
【０５０９】
図５４はエントロピーデコーダ４４００によって実行される復号化プロセスをより詳細に示す。まず、ステップ４５００において、デコーダ４４００は、復号化する次のビンがｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇであるかどうかをチェックする。そうでない場合、ステップ４５０２において、デコーダ４００は、他のビンハンドリングプロセス（図示しない）へ切り替える。肯定の場合、ステップ４５０４において、デコーダ４４００は、フラグが属するコンテクストモデルを決定する。ステップ４５０４は、符号化プロセスにおけるステップ４３０４と同様に、または図５３に示すように実行される。
【０５１０】
次に、ステップ４５０６において、実際のビン、すなわち、ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇは、ステップ４５０４で得られたｃｔｘＩｄｘＭｂＦｉｅｌｄによってインデックス付けされたコンテクストモデルの実際の確率状態を使用してインデックス付けすることによってそれぞれの部分的ビットストリームエントロピーデコーダから得られる。このステップの結果は、ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇに対する値である。その後、ステップ４５０８において、ｃｔｘＩｄｘＭｂＦｉｅｌｄ確率状態は、ステップ４３２０と同様に、適応または更新される。その後、ステップ４５１０においてプロセスは終了する。
【０５１１】
ステップ４５０４における判定により、マクロブロックがマクロブロックＡとＢのフラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇ（図２２）が既に前にプリコードされていることを保証する適切な順でプリコードされたビデオ信号を介してステップ実行されるので、同じインデックスｃｔｘＩｄｘＭｂＦｉｅｌｄが得られる。したがって、コンテクストモデルは、ステップ４５０４において、エンコーダ側のケースと同じく、近接マクロブロックの前に復号化されたフラグｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇに基づいて推論される。
【０５１２】
上記の実施例は、マクロブロックまたはマクロブロック対のフレーム／フィールドモード符号化を示すフラグに限定されないことに留意されたい。むしろ、上記の説明は、他のシンタックス要素にも適用することができる。
【０５１３】
ステップ４３１０に関して、以下に留意されたい。通常、マクロブロックはプリコードされたビデオ信号に符号化される。にもかかわらず、たとえば、このマクロブロックの対応する変換係数レベルはすべてある量子化しきい値よりも小さいので、マクロブロックは符号化またはスキップされないということがある。したがって、いくつかのマクロブロックに対して、利用可能なｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇが存在しない。よって、後者がスキップされたものである場合、ステップ４３１０は、それぞれの近接マクロブロックのｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇを単に調査しただけでは実行できない可能性がある。ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇが（図２２のＡまたはＢを含む）近接マクロブロック対のいずれかのマクロブロックに対して存在しない場合（ボトムマクロブロックがｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇを有する場合、このマクロブロックがＡまたはＢのｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇとなるように選択される）、以下が適用される（Ａを含むマクロブロック対が欠落していると想定される）：
・同じスライス内の（Ａの）左に近接マクロブロック対が存在する場合、（Ａの）ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの値は（Ａを含む）現在のマクロブロック対の左の近接マクロブロック対に対するｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの値と等しいと推論されるべきである。
・同じスライス内の（Ａの）左に近接マクロブロック対が存在しないが、同じスライス内の（Ａの）上に近接マクロブロック対が存在する場合、（Ａの）ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの値は（Ａを含む）現在のマクロブロック対の上の近接マクロブロック対のｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの値と等しいと推論されるべきである。
・それ以外の場合（（Ａを含む）現在のマクロブロック対の左にも上にも近接マクロブロック対が存在しない場合）、（Ａの）ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの値はゼロと等しいと推論されるべきである。
言うまでもなく、上記のステップは単にＡからＢに切り替えることによって、トップマクロブロックＢにも適用される。
【０５１４】
さらに、ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇをエントロピー符号化するためのコンテクストモデルを決定するために、図２２および３４に関して説明した近接関係以外の近接関係を使用してもよい。
【０５１５】
さらに、すでに述べたように、上記実施形態はまた、他のコントロールシンタックス要素や他のビンにも適用可能である。また、本発明は二値エントロピー符号化に限定されず、他のシンボルエントロピー符号化にも適用できる。さらに、スライス、マクロブロック対、マクロブロック、画像素子等へのビデオフレームへの分割は例示目的のためだけになされており、本発明の範囲をこの特殊なケースに限定することを意図していない。
【実施例７】
【０５１６】
この例において、実施例４はさらに拡張され、図３４、３５、３６、３７ａ、ｂ、３９、４５、４６〜４９が適用される。実施例７によれば、ビデオフレームや画像を符号化する方法は、第１のタイプの部分および第２のタイプの部分においてビデオフレームや画像を分割するステップであって、第１のタイプの部分は第１のスキャンパターンに関連付けられ、第２のタイプの部分は第１のスキャンパターンとは異なる第２のスキャンパターンに関連付けられるステップと、ビデオフレームや画像の所定の部分に対応するデータを変換係数の２次元アレイへ変換するステップであって、スキャン順序は所定部分のスキャンパターンによって変換係数の中で定義づけられ、スキャン順序は各変換係数を一意のスキャン位置を割り当てるステップと、変換データユニットを得るために所定の変換係数をプリコードするステップと、所定の部分が第１または第２のスキャンパターンに関連付けられるタイプの部分であるかどうかに従って、コンテクストモデルの第１及び第２の集合の１つを選択するステップであって、第１と第２の集合は互いに異なっている、ステップと、所定の変換係数に割り当てられたスキャン位置に基づいてコンテクストモデルの第１および第２の集合の選択された１つのコンテクストモデルを変換データユニットへ割り当てるステップであって、各コンテクストモデルは異なる確率推定に関連付けられるステップと、割り当てられたコンテクストモデルが上記の実施形態のいずれかを使用して関連付けられる確率推定に基づいて変換データユニットまたはこのサブユニットを符号化されたビットストリームへ符号化するステップと、を含む。
【０５１７】
実施例７によれば、符号化されたビットストリームから変換データユニットまたはそのサブユニットを復号化することを説明しており、この変換データユニットは、ビデオフレームまたは画像の複数の部分のうちの所定の部分に対応するデータの変換の結果である変換係数の所定の変換係数のプリコードされたバージョンであり、これらの部分は第１のスキャンパターンに関連付けられた第１のタイプの部分または第２のスキャンパターンに関連付けられた第２のタイプの部分のいずれかであり、この方法は、所定の部分が第１または第２のいずれのスキャンパターンに関連付けられているタイプの部分であるかに基づいて、コンテクストモデルの第１と第２の集合のいずれか１つを選択するステップであって、第１の集合と第２の集合は互いに異なっているステップと、所定の変換係数に割り当てられたスキャン位置に基づいてコンテクストモデルの第１の集合または第２の集合の選択されたいずれか１つの集合のコンテクストモデルを変換データユニットまたはそのサブユニットに割り当てるステップであって、各コンテクストモデルは異なる確率推定に関連付けられている、ステップと、上記実施形態のいずれかを使用して、割り当てられたコンテクストモデルが関連付けられる確率推定に基づいて、符号化されたビットストリームから変換データユニットまたはそのサブユニットを復号化するステップと、を含む。
【０５１８】
コンテクストモデルの異なる集合が、コンテクストモデルの異なる集合が異なるスキャンパターンに関連付けられたビデオフレームまたは画像の部分に関連する変換データユニットまたはそのサブユニットを符号化するために使用される場合と比較した際、第１のスキャンパターンに関連付けられたビデオフレームまたは画像の部分に関連している変換データユニットまたはそれらのサブユニットを符号化するために使用される場合、ビデオフレームや画像から得られる変換データユニットまたはそれらのサブユニットがより圧縮された方法で符号化され得ることは有利であることを見出した。この測度によって、コンテクストモデルが、異なるスキャンパターンであることによる同一のスキャン位置に属している変換データユニット間で異なる可能性のある実際のシンボル統計へより高い精度で適応することができる。実際の確率分布をより高精度に近似させることができるので、符号化されたビットストリームの圧縮率を向上させることができる。さらに、異なるコンテクストモデルが異なるスキャンパターンに関連付けられた画像部分に関連した変換データユニットに使用されるので、そのコンテクストモデルの確率推定の更新に貢献する変換データユニットはより均一な実際の確率分布を示すことから、更新された確率推定は実際の確率分布をより高精度に近似させる。同様に、異なるコンテクストモデルの集合を提供することによって、コンテクストモデルの確率推定を実際の確率分布に対してより高精度に初期化することができる。したがって、符号化されたビットストリームの圧縮率をさらに上昇させることができる。
【０５１９】
マクロブロック適応型フレーム／フィールド符号化を説明してきたが、本発明の実施形態による符号化方式の実施中のフレームおよびフィールドマクロブロックの一般的な取り扱いを、図５５を参照して、説明する。図５５は、図２８のプリコーダ２０１２とエントロピーコーダ２０１４によって実行されるフレームおよびフィールドマクロブロックを符号化するステップを示している。
【０５２０】
図５５は、図３４に関して説明されたように、マクロブロック対５０１０ｂ１および５０１０ｂ２に既に分割されているビデオフレームまたは画像５０１０を符号化するプロセスを示している。図５５において、マクロブロック対５０１０ｂ１と５０１０ｂ２の２つのみが例示されている。マクロブロック対５０１０ｂ１がフィールド符号化されるが、マクロブロック対５０１０ｂ２はフレーム符号化されると想定される。マクロブロック対５０１０ｂ１と５０１０ｂ２に属している画素サンプルはプリコーダ５０１２へ渡され、ステップ５２７０において処理される。ステップ５２７０は、マクロブロック対５０１０ｂ１と５０１０ｂ２の画像サンプルから予測される画素サンプルを減算し、空間ドメインからの差分をスペクトルドメインへ変換することを含む。ステップ５２２０の結果は、各マクロブロック対５０１０ｂ１および５０１０ｂ２ごとの変換係数のいくつかの２次元アレイであり、変換係数の各２次元アレイは、４×４の画素サンプルのサブパートまたは画素サンプルの差分などのマクロブロック対５０１０ｂ１と５０１０ｂ２のマクロブロックのサブパートに属している。図５５は、２５７２で示される、マクロブロック５０１０ｂ１から求められる変換係数の１つの２次元アレイと、マクロブロック５０１０ｂ２から求められる変換係数の他の２次元アレイ５２７４と、を例示している。たとえば、アレイ５２７２および５２７４は４×４のアレイである。これらはマクロブロック対５０１０ｂ１と５０１０ｂ２のマクロブロックの１つの予測残の４×４のブロックに適用されるＤＣＴによって取得することができる。たとえば、マクロブロックは１６×１６の大きさのサンプルである。この場合、予測残の１６個の４×４のブロックはマクロブロックごとに１６個の４×４の変換係数アレイへ変換されうる。ＤＣＴは４×４の離散コサイン変換または同様の特性を有する分離可能な整数変換でありうる。デコーダ側の逆変換の不整合は変換マトリクスを逆変換が正確な整数演算によって定義されるように定義付けることによって回避されうる。
【０５２１】
ここで、以下において、変換係数のアレイ５２７２を得た画素サンプルの４×４ブロックは、図３１Ｂに示すように、マクロブロック２２５２内の画素１〜４、２１〜２４、４１〜４４、および６１〜６４のブロックに対応し、アレイ５２７４が関連している画素サンプルの４×４ブロックは、図３１Ａに示すように、マクロブロック２２５０の画素サンプル１〜４、１１〜１４、２１〜２４、および３１〜３４を含むと仮定する。
【０５２２】
図示されているように、ステップ５２７０の変換が適用される４×４ブロック内の画素間の空間的関係は、フィールドマクロブロックとフレームマクロブロックで異なる。具体的には、列に沿った画素ピッチは、フィールドマクロブロックに比べると、フレームマクロブロックの場合は倍になっている。したがって、アレイ５２７２および５２７４において同じアレイ位置を想定する２つの変換係数は異なる頻度に関係する。このため、前述したように、異なるスキャンパターンが、アレイ５２７２および５２７４における変換係数間のスキャン順を定義するために使用される。この理由は、下位の頻度の変換係数がゼロである可能性が高いためである。したがって、異なるスキャン順序が、それらが関連する頻度に基づいて変換係数をソートするために使用される。
【０５２３】
図５６は、フレームおよびフィールドマクロブロックに使用されるスキャンパターンの例を示す。５２７４において、図示したように、変換係数の２次元アレイはフレームマクロブロックから得ることができる。各アレイ位置において０から１５までの数字が書きこまれ、この数字はそれぞれの変換係数のスキャン位置を示している。矢印５２７６はスキャンパターンを表している。図示するように、フレーム符号化されたマクロブロックに関連する変換係数間のスキャン順序を定義するために使用されるスキャンパターン５２７６は、アレイ５２７４の１コーナーで開始しこの開始コーナーの正反対に配置されたコーナーに対して斜めに進行するジグザグスキャンにおいて、スキャンされる。図５６において、スキャン位置０を有するアレイ５２７４の左上のコーナーの変換係数が列と行の方向にＤＣ成分を表すが、正反対に配置されたスキャン位置５０１５を有する変換係数は列と行の方向に最大頻度部分を表すと想定される。
【０５２４】
図５６の右側において、図示のようにフィールドマクロブロックに関連した変換係数アレイ５２７２用のスキャンパターン。繰り返しになるが、４×４の変換係数アレイ５２７２の各配列位置は、スキャン位置番号によって指定されている。フィールドマクロブロックの場合のスキャンパターンは矢印５２７８で示されている。見て分かるように、フィールド符号化されたマクロブロックに対するスキャンパターン５２７８は、フレーム符号化されたマクロブロックに対するスキャンパターン５２７６とは異なる。両方のスキャンパターン５２７６と５２７８は、変換係数０から１５の間でスキャン順序を定義する。
【０５２５】
図５５に戻って参照すると、プリコーダ５０１２はステップ５２８０に進み、ここで、アレイ５２７２および５２７４で変換係数を変換データユニットのシーケンス５２８２および５２８４へプリコードする。ステップは図５７に関してより詳細に説明されており、４つの行を有する表を示している。最初の行において、０から８のスキャン位置が記載されている。２番目の行において、スキャン位置０から８に対して可能な変換係数レベルに対する例が与えられる。８より大きいスキャン位置における変換係数レベルはすべて０であると想定される。
【０５２６】
さて、５２８０のプリコードを実行する場合、プリコーダ５０１２はスキャン位置０で開始されるスキャン順序で変換係数を実行し、各変換係数において、以下のステップを実行する：
１．変換係数が０でない場合、すなわち、変換係数が有意である場合、プリコーダ５０１２は、このスキャン位置に対するｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇを１に設定する。それ以外の場合、プリコーダ５０１２はｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇをゼロに設定する。図示されているように、スキャン位置０における最初の変換係数レベルは９であり、よって、図５７における３番目の行で見られるように、このスキャン位置に対するｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは１である。
２．有意な変換係数に対して、この変換係数がスキャン順における変換係数内の最後の有意変換係数であるかどうかが証明される。そうである場合、創出された現在のスキャン位置に対するｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは１に設定される。それ以外の場合、現在のスキャン位置に対するｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは０に設定される。図５７の最後の行に示されるように、この実施例において、有意である最後の変換係数レベルはスキャン位置８における変換係数である。したがって、この変換係数に対するｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは１に設定されるが、スキャン位置０、２、３、および６における他の有意変換係数に対するｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは０に設定される。
３．すべての有意変換係数について、プリコーダ５０１２は、これらの変換係数を指定するシンタックス要素を作成する。
【０５２７】
要約すると、プリコーダ５０１２は、最初のスキャン位置から最後の有意変換係数のスキャン位置までの変換係数ごとに、それぞれの変換係数が有意でない場合はｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ、または、変換係数が有意である場合はそれぞれの変換係数の値を指定する、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇと、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとデータのいずれかから成る変換データユニットを作成する。このように得られた全てのシンタックス要素ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは有意である変換係数のスキャン位置を表す有意性マップを形成する。
【０５２８】
プリコーダ５０１２は、シンタックス要素の線形ストリーム、すなわち、プリコードされたビデオ信号５２８６内へシーケンス５２８２と５２８４を組み込む。これらのシンタックス要素の順序を以下に示す。
【０５２９】
一般に、まず、有意性マップに対応するシンタックス要素が送信され、これに続いて、有意変換係数を逆スキャン順に示す値が送信される。具体的には、シーケンス５２８２と５２８４の最初のシンタックス要素は、スキャン位置０のｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇである。スキャン位置０の変換係数が有意である場合、スキャン位置０のｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇの後にそのスキャン位置に対するｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが続く。その後、次のスキャン位置のｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ、すなわち、スキャン位置１などが送信される。非ゼロ変換係数を有する最後のスキャン位置のｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇを送信した後、非ゼロ変換係数に対する非二値の値が逆スキャン順に送信される。図５７の例において、シンタックス要素ストリーム２８６のシンタックス要素は（最初のシンタックス要素から始まって）、１、０、０、１、０、１、０、０、０、１、０、０、１、１、１、−１、３、−５、９である。
【０５３０】
更に３個のシンタックス要素５２８６がシンタックス要素方向を取り扱うエントロピーコーダ５０１４に送られる。よって、以下の説明は、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇの取り扱いに集中している。このようなフラグがエントロピーコーダ５０１４に到達すると、エントロピーコーダ５０１４は、ステップ５２８８において、２次元変換係数マトリクスを、現在のシンタックス要素ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが属する変換データユニットのシーケンスへマッピングするために使用されたスキャンパターンに基づいて、２つのコンテクストモデルの集合５２９０と５２９２のいずれか１つを選択する。ステップ５２８８を実行するために、エントロピーコーダ５０１４は、現在のシンタックス要素が属する現在のマクロブロックの前述したｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇを調べ、このフラグはスキャンパターン５２７８が使用されていた場合に現在のマクロブロックがフィールドモードで符号化されるか、または、スキャンパターン５２７６が使用されていた場合に現在のマクロブロックがフレームモードで符号化されたか、を示す。
【０５３１】
次のステップにおいて、エントロピーコーダ５０１４は、コンテクストモデルの集合５２９０および５２９２のうち選択された１つの集合の１つのコンテクストモデルを、そのスキャン位置に基づいて符号化される現在のシンタックス要素へ、割り当てる。この測度によって、たとえば、シーケンス５２８２のスキャン位置２に属しているシンタックス要素ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは、シーケンス５２８４のスキャン位置２においてｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇに割り当てられたコンテクストモデルとは異なるコンテクストモデルの集合５２９０のコンテクストモデルを得る。これは、シーケンス５２８２および５２８４のスキャン位置を定義付けるために使用される様々なスキャンパターンによる、これらのスキャン位置におけるシンタックス要素ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇに対する異なる確率分布をもたらす。
【０５３２】
最後に、ステップ５２９６において、現在のシンタックス要素は、選択されたコンテクストモデルの集合から割り当てられたコンテクストのモデルを使用して二値エントロピー符号化される。これは上記の実施形態において説明したように行われる。すなわち、選択されたコンテクストの確率推定を用いてそれぞれの部分的ビットストリームを選択することである。
【０５３３】
以下において、図５８に関して、図５５に続いてエントロピーコーダ５０１４によって実行されるステップ５２８８、５２９４、および５２９６をより詳細に説明する。
【０５３４】
図５８に示すプロセスは、シンタックス要素がコンテクストモデラ５１１２の入力に到達した時点でスタートする。最初のステップ５３００において、コンテクストモデラ５１１２は、入ってくるシンタックス要素またはビンがｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであるかどうかを判定する。否定されれば、ステップ５３０２において、コンテクストモデラ５１１２は入ってくるシンタックス要素またはビンが、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであるかどうかを判定する。否定されれば、ステップ５３０４において、コンテクストモデラ５１１２は、手順またはサブルーチンを取り扱う別のシンタックス要素へ切り替える。現在のシンタックス要素がｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇである場合、ステップ５３０６において、このフラグがフレーム符号化されたマクロブロックかまたはフィールド符号化されたマクロブロックのいずれに属しているかどうかがチェックされる。ステップ５３０６は、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが属している変換係数のスキャン位置がスキャンパターン５２７６またはスキャンパターン５２７８のいずれによって判定されるかをチェックすることと等しい。ステップ５３０２において、シンタックス要素がｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであると判定される場合、同じチェックがステップ５３０８において実行される。ステップ５３００、５３０２、５３０６、および５３０８は、シンタックス要素の到達時に、可能なシナリオを５つのケースに制限する。最初のケースはすでに言及されており、現在のシンタックス要素がｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇでもｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇでもないときに存在する。このケースでは、ステップ５３０４において、別のシンタックス要素の取り扱いが実行される。第２のケースにおいて、シンタックス要素はフィールドコードマクロブロックに属するｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであり、この場合、ステップ５３１０において、コンテクストインデックスオフセット値は、値ｏｆｆｓｅｔ１に設定される。第３のケースにおいて、現在のシンタックス要素はフレーム符号化されたマクロブロックに属するｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであり、ステップ５３１２において、インデックスｃｔｘＩｄｘ  Ｏｆｆｓｅｔはｏｆｆｓｅｔ２に設定される。同様に、第４と第５のケースにおいて、シンタックス要素はフィールド符号化またはフレーム符号化されたマクロブロックに属しているｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであり、ステップ５３４０において、インデックスｃｔｘＩｄｘ  Ｏｆｆｓｅｔはｏｆｆｓｅｔ３に設定され、ステップ５３１６においてｏｆｆｓｅｔ４にそれぞれ設定される。インデックスｃｔｘＩｄｘ  Ｏｆｆｓｅｔはコンテクストモデルの共通の一覧を指し示すためにある。ｏｆｆｓｅｔ１〜ｏｆｆｓｅｔ４までの値は互いに異なる。
【０５３５】
ステップ５３１０〜５３１６以降、ステップ５３１８において、インデックス増分子ｃｔｘＩｄｘＩｎｃ（コンテクストインデックス増分子）は、シンタックス要素、すなわち、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが属しているスキャン位置（ｓｃａｎｎｉｎｇＰｏｓ）と等しく設定される。その後、ステップ５３２０において、コンテクストインデックスは、コンテクストインデックスオフセットｃｔｘＩｄｘ  Ｏｆｆｓｅｔおよびインデックス増分子ｃｔｘＩｄｘ  Ｉｎｃとの合計によって求められる。ステップ５３００〜５３２０は、コンテクストモデラ５１１２によって実行される。ステップ５３２０の結果は、シンタックス要素の二値エントロピー符号化に使用される確率モデルを示すコンテクストインデックスｃｔｘＩｄｘである。
【０５３６】
ｃｔｘＩｄｘの決定後、コンテクストモデラ５１１２は、そのシンタックス要素自体と一緒に、すなわち、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇと一緒に、上記に概述されたように、上記の実施形態のいずれかに基づいて構成される正規の符号化エンジン１１８に対して、ｃｔｘＩｄｘによりインデックス付けされた変数ｃｔｘＩｄｘまたは確率推定状態を渡す。これらの入力に基づいて、正規の符号化エンジン５１１８は、ステップ５３２２において、ｃｔｘＩｄｘによりインデックス付けされたコンテクストモデルの現在の確率状態を使用してシンタックス要素をビットストリーム５１２４内へエントロピー符号化する。
【０５３７】
その後、正規の符号化エンジン５１１８が、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇのビン値をそれぞれ、パス１１７を経由して、コンテクストモデラ５１１２へ戻すと、ステップ５３２４において、コンテクストモデラ５１１２は、ｃｔｘＩｄｘによりインデックス付けされたコンテクストモデルをその確率推定状態に対して適応させる。その後、ステップ５３２６において、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇを出力５１２４におけるビットストリーム内へ符号化するプロセスが終了する。
【０５３８】
以上から明らかであろうように、ステップ５３００〜５３１６は、図５５のステップ５２８８に属しているが、ステップ５３１８および５３２０は、ステップ５２９４に属しており、ステップ５３２２および５３２４はステップ５２９６に属している。
【０５３９】
実際の復号化プロセスを詳細に説明する前に、解析プロセスが図５９に例示されており、図５９は、エントロピーデコーダ５４００において実行される解析プロセスに対する擬似Ｃコードを示している。図５９に示されるこの解析プロセスは、有意性マップと係数値が図５７に関して上に説明したように符号化されること、すなわち、有意性マップがスキャン順に続くとともに逆スキャン順に順序づけられた有意性変換係数の係数値に先行することを前提に、マクロブロックに対するその対応する係数値とともに有意性マップを解析するために適切である。
【０５４０】
図５９において、太字で書かれている変数はエントロピーデコーダ５４００に到達するエントロピー符号化されたビットストリームから読み出される。読み出しには、二値エントロピー復号化が使用される。ビンｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇに対する読み出しプロセスは図６０により詳細に示される。解析プロセスは、図５９の擬似Ｃコードの１行目に見られるようにｒｅｓｉｄｕａｌ＿ｂｌｏｃｋ＿ＣＡＢＡＣと呼ばれる。このプロセスｒｅｓｉｄｕａｌ＿ｂｌｏｃｋ＿ＣＡＢＡＣの出力は、図５７に示されるようなスキャン位置ごとに変換係数レベルを示す１次元アレイｃｏｅｆｆＬｅｖｅｌである。入力として、プロセスｒｅｓｉｄｕａｌ＿ｂｌｏｃｋ＿ＣＡＢＡＣはマクロブロック内の係数の最大数を示す変数ｍａｘＮｕｍＣｏｅｆｆ、本実施例では、１６を受信する。
【０５４１】
次に、プロセスは、現在のブロックにおいてすべての変換係数レベルがゼロであるかどうかを示すｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇと呼ばれるフラグの読み出しから、２行目でスタートする。この場合、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇはゼロであり、それ以外の場合、このｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇは１である。以下において、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｆｌａｇは１であり、よって、少なくとも１つの変換係数レベルはゼロにならないと想定する。よって、４行目において、変数ＮｕｍＣｏｅｆｆはｍａｘＮｕｍＣｏｅｆｆに設定される。これは、以下の１と等しいｗｈｅｎ―ｄｏ―ｌｏｏｐ  ｎｏ  ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが読み出される場合、最後の有意変換係数のスキャン位置が係数ｍａｘＮｕｍＣｏｅｆｆの最大数と等しいことを意味する。５行目において、カウンタｉはゼロに初期化される。以下の６行目でスタートするｗｈｉｌｅ―ｄｏ―ｌｏｏｐにおいて、まず、１つのビンが読み出され、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇへ入力される。図５９に関して、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇは１次元アレイである。７行目で読み出されるビンは、アレイｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ、すなわち、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ［ｉ］の位置ｉに置かれる。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ［ｉ］が１（８行目）である場合、すなわち、スキャン位置ｉにおける係数が有意である場合、次のビンは、ビットストリーム、すなわち、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ［ｉ］から読み出される。ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ［ｉ］が１である場合（１０行目）、すなわち、スキャン位置ｉにおける変換係数がスキャン順において最後の有意変換係数である場合、変数ＮｕｍＣｏｅｆｆは１１行目においてｉ＋１に設定され、これも１次元アレイであるｃｏｅｆｆＬｅｖｅｌは、ｉ＋１と等しいかこれより大きい全ての位置において、ゼロに設定される（１２および１３行目）。これは、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが１であるスキャン位置以降の、全ての後続するスキャン位置の変換係数がゼロであることを意味する。
【０５４２】
両方の条件節（１４および１５行目）の後、カウンタｉが１６行目において増分される。最後に、１７行目において、カウンタｉがＮｕｍＣｏｅｆｆ―１より大きいかこれと等しいかが証明される。これが肯定された場合、ｗｈｉｌｅ―ｄｏ―ｌｏｏｐが再度、繰り返される。したがって、５行目から１７行目において、有意性マップはビットストリームから読み出される。以下、１８行目において、最初の有意変換係数レベルマイナス１が読み出され、すなわち、ｃｏｅｆｆ＿ｕｐｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ１であり、符号フラグｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇがこれに続く。より具体的には、１８行目と１９行目において読み出されるシンタックス要素ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｕｐｓ＿ｍｉｎｕｓ１とｃｏｅｆｆ＿ｓｉｇｎ＿ｆｌａｇの両方はスキャン順に最後の有意変換係数に関わっている。この変換係数の実際値は２０行目で計算される。次いで、２１〜２８行目までのｆｏｒ―ｌｏｏｐにおいて、４〜１７行目で受信した有意性マップを使用して残っている有意変換係数がビットストリームから読み出される。ｆｏｒ―ｌｏｏｐのカウンタｉは、ＮｕｍＣｏｅｆｆ―２、すなわち、最後の有意変換係数のスキャン位置の直前で先行するスキャン位置、に初期化される。ｆｏｒ―ｌｏｏｐのそれぞれの遷移後にこのカウンタは減分される。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ［ｉ］が１である場合（２２行目）、スキャン位置ｉにおける変換係数の係数レベルが２３〜２５行目において求められ、これらの行は、事実上、１８から２０行目に一致している。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ［ｉ］がゼロである場合（２６行目）、スキャン位置の係数レベルは２７行目においてゼロに設定される。
【０５４３】
次に、図６０は、ビンが復号化されるたびにエントロピーデコーダ４００によって実行される復号化プロセスを示している。どのビンが復号化されるかは、エントロピーデコーダ５４００によって現在予想されているシンタックス要素に依存している。有意性マップおよび対応する非ゼロ変換係数レベルに関して、この知識は、図５９の解析プロセスから得られる。
【０５４４】
復号化プロセスにおいて、まず、ステップ５５００において、デコーダ５４００は、復号化する次のビンがｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであるかをチェックする。これが否定された場合、ステップ５５０２において、復号化する次のビンがｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇであるかをチェックする。復号化する次のビンは、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇである。復号化する次のビンが、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇのいずれかである場合、デコーダ５４００は、ステップ５５０４または５５０６のそれぞれにおいて、このフラグがフレーム符号化されたマクロブロックまたはフィールド符号化されたマクロブロックのどちらに属するかについてチェックする。復号化する次のビンが、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇでもｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇでもない場合、ステップ５０４において、デコーダ４００は他のシンタックス要素ハンドリングへ進む。ステップ５５００、５５０２、５５０６および５５０８のチェックは、図５８の符号化プロセスのステップ５３００、５３０２、５３０６、および５３０８に対応しており、したがって、復号化する次のビンが、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇのいずれであるか、および対応するマクロブロックがフレーム符号化されるかまたはフィールド符号化されるかに依存して、ｃｔｘＩｄｘ  Ｏｆｆｓｅｔは、ステップ５５１０、５５１２、５５１４、および５５１６のいずれかのステップにおいて、それぞれｏｆｆｓｅｔ１、ｏｆｆｓｅｔ２、ｏｆｆｓｅｔ３、およびｏｆｆｓｅｔ４の１に設定され、ここで、ステップ５５１０〜５５１６は、図５８のステップ５３１０から３５１６に対応している。したがって、ｃｔｘＩｄｘＩｎｃとｃｔｘＩｄｘは、以下のエントロピー復号化に使用されるコンテクストモデルを決定するために、ステップ５５１８および５５２０において、図８のステップ３１８と３２０の符号化プロセスと同様に、判定される。
【０５４５】
次に、ステップ５５２２において、エントロピーデコーダ５４００は、ステップ５５１０から５５２０において得られたｃｔｘＩｄｘによりインデックス付けされたコンテクストモジュールの実際の確率状態を使用してエントロピー符号化されたビットストリームから、実際のビン、すなわち、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇまたはｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇをエントロピー復号化する。すなわち、それぞれの部分的なビットストリームは確率インデックスおよびそこから読み出されるビンに基づいて選択される。このステップの結果は、実際のビンに対する値である。その後、ステップ５５２４において、ステップ５２２４と同様に、ｃｔｘＩｄｘ確率状態が適応または更新される。その後、ステップ５５２６においてプロセスが終了する。
【０５４６】
上記の復号化プロセスにおいて、ステップ５５２７、すなわち、ｍｂ＿ｆｉｌｅｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇの復号化は、各ビンの復号化の後に行われたように見えるが、そうではない。実際は、このステップは、最高でも、１つのマクロブロック対に対してのみ起こる。
【０５４７】
上記説明および以下の特許請求の範囲は、それぞれの記載または請求の範囲に基づいてエンコーダまたはデコーダの動作中に実行されるステップを含む方法を包含するものとして理解されたい。
【０５４８】
以上、装置に関連していくつかの態様を説明してきたが、これらの態様は、ブロックやデバイスが方法ステップやその特徴に対応する、対応する方法の記載をも表すことは明確である。同様に、方法ステップの関連において説明されている態様は、対応する装置の対応するブロックやアイテムや特徴の記載をも表す。方法ステップの一部またはすべてが、たとえば、マイクロプロセッサ、プログラム可能なコンピュータや電子回路などのハードウェア装置によって（またはこれを使用して）実行され得る。いくつかの実施形態において、最も重要な方法ステップの１以上はこのような装置によって実行可能である。
【０５４９】
本発明の符号化／圧縮された信号は、デジタル記憶媒体に記憶され、または、インターネットなどの無線伝送媒体または有線伝送媒体などの伝送媒体へ転送することができる。
【０５５０】
一定の実施要件に応じて、本発明の実施形態は、ハードウェアまたはソフトウェアにおいて実現することができる。実施は、電子的に可読なコントロール信号を記憶したフレキシブルディスク、ＤＶＤ、ブルーレイ（登録商標）、ＣＤ、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ（登録商標）またはフラッシュメモリなどのデジタル記憶媒体を用いて実行され、これらは、それぞれの方法が実行できるようにプログラマブルコンピュータシステムと協働する（または協働することができる）。したがって、デジタル記憶媒体はコンピュータ可読媒体であってよい。
【０５５１】
本発明による一部の実施形態は、本明細書に記載の方法の１つが実行されるように、プログラマブルコンピュータシステムと協働することができる電子的に可読なコントロール信号を有するデータキャリアを含む。
【０５５２】
一般に、本発明の実施形態は、プログラムコードを有するコンピュータプログラムプロダクトとして実現され得て、プログラムコードはコンピュータプログラムプロダクトがコンピュータ上で実行されるときに方法の１つを実行するためにオペラブル（動作可能）である。プログラムコードは、たとえば、マシン可読キャリアに記憶されてもよい。
【０５５３】
他の実施形態は、機械可読媒体に記憶された本明細書に記載の方法の一つを実行するためのコンピュータプログラムを含む。
【０５５４】
換言すれば、本発明の方法の実施形態は、コンピュータプログラムがコンピュータ上で実行される際、本明細書中で記載されている方法の１つを実行するためのプログラムコードを有するコンピュータプログラムである。
【０５５５】
したがって、本発明の方法のさらなる実施形態は、本明細書中に記載されている方法の１つの実行するためのコンピュータプログラムを記録したデータキャリア（またはデジタル記憶媒体またはコンピュータ可読媒体）である。
【０５５６】
したがって、本発明の方法のさらなる実施形態は、本明細書中に記載されている方法の１つを実行するためのコンピュータプログラムを表す信号のデータストリームまたはシーケンスである。たとえば、信号のデータストリームまたはシーケンスは、たとえば、インターネットを介して、データ通信接続によって転送される。
【０５５７】
さらなる実施形態は、本明細書中に記載されている方法の１つを実行するように構成されたまたは適応された、たとえば、コンピュータ、またはプログラマブル論理デバイスなどのプロセッシング手段を含む。
【０５５８】
さらなる実施形態は、本明細書に記載した方法の１つを実行するためのコンピュータプログラムをインストールしたコンピュータを含む。
【０５５９】
いくつかの実施形態において、プログラマブル論理デバイス（たとえば、フィールドプログラマブルゲートアレイ）は、本明細書に記載された方法の一つを実行するために、マイクロプロセッサと協働することができる。一般に、これらの方法は、好ましくは、任意のハードウェア装置によって実行される。
【０５６０】
上記した実施形態は本発明の原理を例示しているにすぎない。なお、本明細書に記載されている構成および細部の変更および変形は他の当業者には明確であることが理解されよう。したがって、本発明は、添付の特許請求の範囲を逸脱しない限りにおいて本明細書中の実施形態の記載および説明によって提示される具体的な詳細によって限定されないことを意図する。
【図１】
2014534677.tif 000062
【図２】
2014534677.tif 000063
【図３】
2014534677.tif 000064
【図４】
2014534677.tif 000065
【図５】
2014534677.tif 000066
【図６】
2014534677.tif 000067
【図７】
2014534677.tif 000068
【図８】
2014534677.tif 000069
【図９】
2014534677.tif 000070
【図１０】
2014534677.tif 000071
【図１１】
2014534677.tif 000072
【図１２】
2014534677.tif 000073
【図１３】
2014534677.tif 000074
【図１４】
2014534677.tif 000075
【図１５】
2014534677.tif 000076
【図１６】
2014534677.tif 000077
【図１７】
2014534677.tif 000078
【図１８】
2014534677.tif 000079
【図１９】
2014534677.tif 000080
【図２０】
2014534677.tif 000081
【図２１】
2014534677.tif 000082
【図２２】
2014534677.tif 000083
【図２３】
2014534677.tif 000084
【図２４】
2014534677.tif 000085
【図２５】
2014534677.tif 000086
【図２６】
2014534677.tif 000087
【図２７】
2014534677.tif 000088
【図２８】
2014534677.tif 000089
【図２９】
2014534677.tif 000090
【図３０】
2014534677.tif 000091
【図３１Ａ】
2014534677.tif 000092
【図３１Ｂ】
2014534677.tif 000093
【図３２】
2014534677.tif 000094
【図３３】
2014534677.tif 000095
【図３４】
2014534677.tif 000096
【図３５】
2014534677.tif 000097
【図３６】
2014534677.tif 000098
【図３７】
2014534677.tif 000099
【図３８】
2014534677.tif 000100
【図３９】
2014534677.tif 000101
【図４１】
2014534677.tif 000102
【図４２】
2014534677.tif 000103
【図４３】
2014534677.tif 000104
【図４４】
2014534677.tif 000105
【図４５】
2014534677.tif 000106
【図４６】
2014534677.tif 000107
【図４７】
2014534677.tif 000108
【図４８】
2014534677.tif 000109
【図４９】
2014534677.tif 000110
【図５０】
2014534677.tif 000111
【図５１】
2014534677.tif 000112
【図５２】
2014534677.tif 000113
【図５３】
2014534677.tif 000114
【図５４】
2014534677.tif 000115
【図５５】
2014534677.tif 000116
【図５６】
2014534677.tif 000117
【図５７】
2014534677.tif 000118
【図５８】
2014534677.tif 000119
【図５９】
2014534677.tif 000120
【図６０】
2014534677.tif 000121
【図６１】
2014534677.tif 000122
【図６２】
2014534677.tif 000123
【図６３】
2014534677.tif 000124
【図６４】
2014534677.tif 000125
【図６５】
2014534677.tif 000126
【図６６】
2014534677.tif 000127
【図６７】
2014534677.tif 000128
【図６８】
2014534677.tif 000129
【図４０】
2014534677.tif 000130
【手続補正書】
【提出日】平成26年10月7日(2014.10.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
シンボルシーケンスを符号化するエンコーダであって、
前記シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当てる割当部（４）と、
各々が、転送されてきたシンボル（７）をそれぞれのビットストリーム（４７）に変換する複数のエントロピーエンコーダ（１０）と、
各々のシンボルを、それぞれのシンボルに割り当てられた前記複数のパラメータに依存して前記複数のエントロピーエンコーダから選択される１つのエントロピーエンコーダに転送する選択部（６）と、
を備え、
前記複数のエントロピーエンコーダは各々、シンボルシーケンスを、それぞれの最大ビット長Ｌｘ以下の長さの符号語にマッピングする可変長コーダであり、
前記複数のエントロピーエンコーダ（１０）の各々に対して設けられ、そのエントロピーエンコーダのそれぞれのビットストリーム（４７）をバッファリングする個別のバッファ（４８）と、
前記複数のエントロピーエンコーダに対して、それぞれビット長Ｎｘの切片となるトランシェのエントリのシーケンスを、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約するグローバルバッファ（５１）と、
を備え、
前記複数のエントロピーエンコーダおよび前記個別のバッファは、前記選択部（６）により前記複数のエントロピーエンコーダに転送されたシンボルシーケンスのシンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ（５１）内にその時点で予約されているビット数から、その時点で前記それぞれのエントロピーエンコーダに対する前記個別のバッファ内、または前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点でバッファリングされているビット数Ｍｘを差し引いた値が、前記それぞれのエントロピーエンコーダに対してさらに符号語を生成するものとして意図される最小符号語数Ｃｘに１を加え、前記それぞれの最大ビット長Ｌｘを乗算したもの、すなわち（Ｃｘ＋１）・Ｌｘ、を予約するのに不十分であるときに、前記複数のエントロピーエンコーダのそれぞれに対して、ビット長Ｎｘのトランシェエントリの予約（４９）をトリガするように協働し、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリーム（４７）のバッファリングされた部分を出力して、前記グローバルバッファ（５１）内のそれぞれ予約されたトランシェエントリを満たし、前記グローバルベッファは、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、前記グローバルバッファに満たされたビットストリームのトランシェがインターリーブされて散在する単一ストリーム（５２）を得る
エンコーダ。
【請求項２】
請求項１に記載のエンコーダにおいて、前記割当部は、各シンボルに割り当てられた前記複数のパラメータが、前記それぞれのシンボルが想定し得る可能な値の中で確率分布の推定に対する測度を含むか、または前記確率分布の推定に対する測度となる構成を有するエンコーダ。
【請求項３】
請求項２に記載のエンコーダにおいて、前記シンボルシーケンスは二値アルファベットから作られ、前記割当部は、前記確率分布の推定が、確率の低いまたは確率の高いビン値の確率の推定に対する測度と、前記２つの可能なビン値のうちどちらが確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子を含む構成を有するエンコーダ。
【請求項４】
請求項２または３に記載のエンコーダにおいて、前記割当部は、各コンテクストがこれに関連付けられた各確率分布推定を有するシンボルシーケンスのシンボル内に含まれる情報に基づいて前記シンボルシーケンスの各シンボルにコンテクストを割り当て、それぞれのコンテクストが割り当てられる前のシンボルのシンボル値に基づいて各コンテクストの確率分布の推定を実際のシンボル統計に適応させ、各シンボルに割り当てられたコンテクストに関連付けられた確率分布推定に基づいて、シンボルごとに確率分布の推定に対して測度を求めるエンコーダ。
【請求項５】
請求項４に記載のエンコーダにおいて、前記割当部は、シンボルごとに確率分布の推定に対して測度を求める際に、その測度を得るために複数の確率分布推定代表の１つへ各シンボルに割り当てられたコンテクストに関連付けられた確率分布の推定を量子化する構成を有し、前記選択部は、全単射関連付けが前記複数のエントロピーエンコーダと前記複数の確率分布推定代表との間で定義付ける構成を有するエンコーダ。
【請求項６】
請求項５に記載のエンコーダにおいて、前記選択部は、所定の決定論的な方法で、量子化マッピングを前記シンボルシーケンスの前のシンボルに応じて確率分布推定の範囲から複数の確率分布推定代表へ経時的に変化させるエンコーダ。
【請求項７】
請求項６に記載のエンコーダにおいて、前記複数のエントロピーエンコーダは、量子化マッピングの変化に応答して、そのシンボルをビットストリームへ変換する方法を適応させるエンコーダ。
【請求項８】
請求項５または６に記載のエンコーダにおいて、前記選択部は、前記エントロピーエンコーダがシンボルを変換するビットストリームのビットレートのばらつきを小さくするように、前記量子化マッピングを変更する構成を有するエンコーダ。
【請求項９】
請求項１から８のいずれか１項に記載のエンコーダにおいて、前記複数のエントロピーエンコーダの少なくとも１つは、これに関連付けられているシンボル入力バッファを有し、前記選択部は、前記関連付けられているシンボル入力バッファを介して、前記少なくとも１つのエントロピーエンコーダへシンボルを転送する構成を有するエンコーダ。
【請求項１０】
請求項１から９のいずれか１項に記載のエンコーダにおいて、前記グローバルバッファは、前記複数のエントロピーエンコーダとそれぞれの個別のバッファとのいずれかによるそれぞれの予約のトリガ時に、予約されてから最も時間が経過して既に満たされているトランシェエントリから、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリは除いて、前記トランシェエントリ単位で順に、前記トランシェエントリのうち満たされたトランシェエントリの取り出しを実行する構成を有するエンコーダ。
【請求項１１】
請求項１から１０のいずれか１項に記載のエンコーダにおいて、
前記個別のバッファは、ビットストリームの蓄えられた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリをトランシェエントリ単位で満たす構成を有し、
前記グローバルバッファは、
前記複数のエントロピーエンコーダと前記個別のバッファのいずれかによるそれぞれの予約のトリガ時に、
予約されてから最も時間が経過して既に満たされているトランシェエントリから、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリは除いて、前記トランシェエントリ単位で順に、前記トランシェエントリのうち満たされたトランシェエントリの取り出しを完了し、その後に、
予約ささたトランシェエントリによってカバーされる前記グローバルバッファ内のビット数と、それぞれ予約−トリガを行っているエントロピーエンコーダのビット長Ｎｘとの和が、最大バッファ遅延Ｄより大きいかどうかをチェックし、
大きくない場合には、
前記それぞれ予約−トリガを行っているエントロピーエンコーダに対してビット長Ｎｘのそれぞれの新しいトランシェエントリを予約し、
大きい場合には、
前記選択部により、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダに、まだエントロピー符号化されていないシンボルがあればそれを転送して、有効なシンボルシーケンスへ拡張させ、その有効なシンボルシーケンを符号語にマッピングさせて、対応する個別のバッファに予約させ、その後に、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリに対して、前記エントロピーエンコーダの個別のバッファに現在予約されているビット数Ｍｘ個が、そのエントロピーエンコーダのビット長Ｎｘより小さいかどうかをチェックし、そうであれば、Ｎｘ−Ｍｘを現在バッファリングされているＭｘビットへ追加し、その後、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダの個別のバッファからＮｘ個の予約されたビットを、前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを満たすためにこれに出力し、その際、予約されたＮｘビットを上回る可能性のある付加的にバッファリングされたビットは残しておく、
エンコーダ。
【請求項１２】
請求項１から１１のいずれか１項に記載のエンコーダにおいて、前記トランシェの単一ストリームをチャンクに断片化するフラグメンタイザをさらに備え、各チャンクには、前記複数のエントロピーエンコーダのトランシェがどのようにそれぞれのチャンクに分散してチャンクのシーケンスが得られたかの情報を含む、エンコーダ。
【請求項１３】
請求項１から１２のいずれか１項に記載のエンコーダにおいて、前記複数のエントロピーエンコーダおよび前記グローバルバッファが、現在転送されているが未だにマッピングされていないシンボルを前記現在転送されているが未だにマッピングされていないシンボルを接頭語として有しているドント−ケアシンボルによって有効シンボルシーケンスへ断続的に拡張し、このように拡張されたシンボルシーケンスを符号語内にマッピングし、それにより得られた符号語を予約されたトランシェエントリ内へ入力し、そのトランシェエントリをフラッシュする、エンコーダ。
【請求項１４】
請求項１から１３のいずれか１項に記載のエンコーダにおいて、前記複数のエントロピーエンコーダおよび前記グローバルバッファが、トランシェエントリの数と符号語を入力したトランシェエントリの数との和が所定の基準を満たす事象において、前記断続的な拡張、入力、およびフラッシュを実行するエンコーダ。
【請求項１５】
請求項１から１４のいずれか１項に記載のエンコーダにおいて、Ｃｘ＞０であるエンコーダ。
【請求項１６】
シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当て、
各シンボルを複数のエントロピーエンコーダの選択された１つに転送し、その選択はそのシンボルに割り当てられたパラメータに応じて行われ、前記複数のエントロピーエンコーダは各々、シンボルシーケンスをそれぞれの最大ビット長Ｌｘ以下の長さの符号語にマッピングする可変長コーダであって、転送されたシンボルをそれぞれのビットストリームへ変換する
シンボルシーケンスの符号化方法において、
各エントロピーエンコーダに対して、そのエントロピーエンコーダのビットストリームを各個別のバッファにバッファリングし、
前記複数のエントロピーエンコーダに対して、それぞれビット長Ｎｘの切片となるトランシェのエントリのシーケンスを、グローバルバッファ内に、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約し、
前記選択部により前記複数のエントロピーエンコーダに転送されたシンボルシーケンスのシンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点で予約されているビット数から、その時点で前記それぞれのエントロピーエンコーダに対する前記個別のバッファ内、または前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点でバッファリングされているビット数Ｍｘを差し引いた値が、前記それぞれのエントロピーエンコーダに対してさらに符号語を生成するものとして意図される最小符号語数Ｃｘに１を加え、前記それぞれの最大ビット長Ｌｘを乗算したもの、すなわち（Ｃｘ＋１）・Ｌｘ、を予約するのに不十分であるときに、前記複数のエントロピーエンコーダのそれぞれに対して、ビット長Ｎｘのトランシェエントリの予約（４９）をトリガし、
前記符号語バッファからビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ（５１）内のそれぞれ予約されたトランシェエントリを満たし、
トランシェアントリのうち満たされたトランシェエントリを順に取り出して、前記グローバルバッファに満たされたビットストリームのトランシェがインターリーブされて散在する単一ストリーム（５２）を得る
シンボルシーケンスの符号化方法。
【請求項１７】
シンボルシーケンスを復元するデコーダであって、
各々がそれぞれのビットストリーム（５７）をシンボル（２１）へ変換する複数のエントロピーデコーダ（２２）と、
前記シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボル（２５）へ複数のパラメータを割り当てる割当部（１６）と、
複数のエントロピーデコーダのうち選択された１つから復元されるシンボルシーケンス（２５）の各シンボルを検索し、その選択を前記それぞれのシンボルに対して定義付けられたパラメータに応じて行う選択部（１８）と、
を備え、
前記エントロピーデコーダ（２２）は各々、それぞれの最大ビット長Ｌｘ以下の長さの符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
前記デコーダは、ビットストリーム（６０）のトランシェがインターリーブされて散在する単一ストリーム（６２）を受信し、前記トランシェへのリクエストが発生する順に応じて前記複数のエントロピーデコーダへ前記トランシェを順次分配するグローバルバッファを備え、
前記複数のエントロピーデコーダ（２２）は各々、前記複数のエントロピーデコーダから、前記選択部（１８）により検索されるときに復元される前記シンボルシーケンス（２５）の前記シンボルのうち、前記エントロピーデコーダの各々によってそれぞれのビットストリーム（５７）内の新しい符号語からマッピングされる新しいシンボルシーケンスの初期部分を形成するシンボルに遭遇するときに、前記グローバルバッファからそれぞれのビットストリームのそれぞれのビット長Ｎｘのトランシェに対してそれぞれのリクエスト（５６、５９）をトリガし、その際、それぞれの時点で、前記グローバルバッファ（６１）によって前記エントロピーデコーダの各々へ分配されていたが、新しい符号語を含めて、それまで、前記エントロピーデコーダ（２２）によって未だにエントロピー復号化されていなかったそれぞれのビットストリーム（５７）のビット数Ｍｘ個が、前記エントロピーデコーダの各々に対するさらなる符号語の意図される最小数Ｃｘに１を加えて前記それぞれの最大ビット長Ｌｘを乗算したもの、すなわち、（Ｃｘ＋１）・Ｌｘ、未満であることを前提としている、
デコーダ。
【請求項１８】
請求項１７に記載のデコーダにおいて、エントロピーデコーダごとに、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたビット数を、前記グローバルバッファから前記エントロピーデコーダの各々まで分配させた最も長い間分配されていないトランシェの分配に至るまで、ロギングし、
それぞれのビット長Ｎｘのトランシェに対するそれぞれのリクエストがトリガされる度ごとに、一方で、前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたグローバルビット数と、他方で、ロギングされた最小ビット数と、の差が、最大バッファ遅延Ｄより大きいかどうかを判断し、
大きい場合には、
前記グローバルバッファから前記ロギングされた最小数がロギングされていた前記エントロピーデコーダまで分配させた前記最も長い間予約されていないトランシェと、前記ロギングされた最小数が前記選択部によりロギングされている前記エントロピーデコーダから未だ検索されていない任意のシンボルと、を廃棄する
デコーダ。
【請求項１９】
請求項１７または１８に記載のデコーダにおいて、前記複数のエントロピーエンコーダの前記トランシェが前記それぞれのチャンクに対してどのように分布されているかについての情報がそれぞれ添付されているチャンクのシーケンスから、前記トランシェの単一ストリームの再構成するデフラグメンタイザをさらに含む、デコーダ。
【請求項２０】
請求項１７から１９のいずれか１項に記載のデコーダにおいて、前記割当部は、各シンボルに割り当てられた複数のパラメータが、それぞれのシンボルが想定し得る可能なシンボル値の中から確率分布の推定に対する測度を含む、または前記確率分布の推定に対する測度であるように構成された、デコーダ。
【請求項２１】
請求項２０に記載のデコーダにおいて、復元されるシンボルシーケンスは二値アルファベットのシンボルシーケンスであり、前記割当部は、前記確率分布の推定が、前記二値アルファベットの前記２つの可能なビン値の確率の低いまたは確率の高いビン値の確率の推定に対する測度と、前記２つの可能なビン値のうちどちらが前記確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子とから成るように構成された、デコーダ。
【請求項２２】
請求項２０または２１に記載のデコーダにおいて、前記割当部は、各コンテクストがこれに関連付けられたそれぞれの確率分布推定を有することによって復元される前記シンボルシーケンスの前に復元されたシンボル内に含まれる前記情報に基づいて復元される前記シンボルシーケンスの各シンボルへコンテクストを内的に割り当て、前記それぞれのコンテクストが割り当てられる前に復元されたシンボルのシンボル値に基づいてコンテクストごとに前記確率分布推定を実際のシンボル統計に適応させ、前記それぞれのシンボルに割り当てられた前記コンテクストに関連付けられた前記確率分布推定に基づいてシンボルごとに前記確率分布の前記推定に対する前記測度を求めるデコーダ。
【請求項２３】
請求項２２に記載のデコーダにおいて、前記割当部は、シンボルごとに前記確率分布の前記推定に対して前記測度を求める際に、前記確率分布の前記推定に対する前記測度を得るために複数の確率分布推定代表の１つへ前記各シンボルに割り当てられた前記コンテクストに関連付けされた前記確率分布の推定を量子化し、前記選択部は、全単射関連付けが前記複数のエントロピーエンコーダと前記複数の確率分布推定代表との間で定義付けられるデコーダ。
【請求項２４】
請求項２３に記載のデコーダにおいて、前記選択部は、所定の決定論的な方法で、量子化マッピングを前記シンボルシーケンスの前に復元されたシンボルに応じて前記確率分布推定の範囲から前記複数の確率分布推定代表へ経時的に変化させるデコーダ。
【請求項２５】
請求項２４に記載のデコーダにおいて、前記複数のエントロピーデコーダは、前記量子化マッピングの変化に応答して、そのシンボルをビットストリームへ変換する方法を適応させるデコーダ。
【請求項２６】
請求項２４または２５に記載のデコーダにおいて、前記選択部は、前記シンボルが前記複数のエントロピーデコーダから検索されるレートのばらつきを少なくするように前記量子化マッピングを変化させるデコーダ。
【請求項２７】
請求項１６から２６のいずれか１項に記載のデコーダにおいて、少なくとも１つのエントロピーデコーダは、これに関連付けられているシンボル出力バッファを有しており、前記選択部は、前記関連付けられているシンボル出力バッファを介して、前記少なくとも１つのエントロピーデコーダから前記シンボルを検索するデコーダ。
【請求項２８】
請求項１６から２７のいずれか１項に記載のデコーダにおいて、前記複数のエントロピーデコーダおよび前記選択部は復元される前記シンボルシーケンスの形成に参加しないためにシンボルシーケンスの接尾語を断続的に切り捨てるデコーダ。
【請求項２９】
請求項２８に記載のデコーダにおいて、前記複数のエントロピーデコーダおよび前記選択部は、前記トランシェエントリからのそれぞれのエントロピーデコーダの２つの連続した符号語検索間の前記複数のエントロピーデコーダによって前記トランシェエントリから既に検索されている多数の符号語が、所定の基準を満たしている事象において、断続的切り捨てを実行するデコーダ。
【請求項３０】
請求項１から２９のいずれか１項に記載のデコーダにおいて、Ｃｘ＞０であるデコーダ。
【請求項３１】
シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボルへ複数のパラメータを割り当て、
複数のエントロピーデコーダの選択された１つから復元される前記シンボルシーケンスの各シンボルを検索し、この選択は、それぞれのシンボルに対して定義付けられたパラメータに応じて行い、前記複数のエントロピーデコーダは各々、それぞれのビッオストリームをシンボルに変換する構成であって、各エントロピーデコーダが、それぞれの最大ビット長Ｌｘ以下の長さの符号語をシンボルシーケンスにマッピングする可変長デコーダである
シンボルシーケンスの復元方法において、
ビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームをグローバルバッファに受信し、
前記トランシェへのリクエストが発生する順に応じてグローバルバッファから前記前記複数のエントロピーデコーダへ前記トランシェを順次分配し、
前記複数のエントロピーデコーダの各々に対し、前記複数のエントロピーデコーダから、前記選択部により検索されるときに復元される前記シンボルシーケンスの前記シンボルのうち、前記エントロピーデコーダの各々によってそれぞれのビットストリーム内の新しい符号語からマッピングされる新しいシンボルシーケンスの初期部分を形成するシンボルに遭遇するときに、前記グローバルバッファからそれぞれのビットストリームのそれぞれのビット長Ｎｘのトランシェに対してそれぞれのリクエストをトリガし、
このトリガに際して、それぞれの時点で、前記グローバルバッファ（６１）によって前記エントロピーデコーダの各々へ分配されていたが、新しい符号語を含めて、それまで、前記エントロピーデコーダ（２２）によって未だにエントロピー復号化されていなかったそれぞれのビットストリーム（５７）のビット数Ｍｘ個が、前記エントロピーデコーダの各々に対するさらなる符号語の意図される最小数Ｃｘに１を加えて前記それぞれの最大ビット長Ｌｘを乗算したもの、すなわち、（Ｃｘ＋１）・Ｌｘ、未満であることを前提とする
シンボルシーケンスの復元方法。
【請求項３２】
シンボルシーケンスを符号化するエンコーダであって、
前記シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当てる割当部と、
各々が、転送されてきたシンボルをそれぞれのビットストリームに変換する複数のエントロピーエンコーダと、
各々のシンボルを、それぞれのシンボルに割り当てられた前記複数のパラメータに依存して前記複数のエントロピーエンコーダから選択される１つのエントロピーエンコーダに転送する選択部と、
を備え、
前記複数のエントロピーエンコーダは各々、シンボルシーケンスを、それぞれの最大ビット長Ｌｘ以下の長さの符号語にマッピングする可変長コーダであり、
前記複数のエントロピーエンコーダの各々に対して設けられ、そのエントロピーエンコーダのそれぞれのビットストリームをバッファリングする個別のバッファと、
前記複数のエントロピーエンコーダに対して、トランシェのエントリのシーケンスを、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約するグローバルバッファ）と、
を備え、
前記複数のエントロピーエンコーダおよび前記個別のバッファは、前記選択部により前記複数のエントロピーエンコーダへ転送された前記シンボルシーケンスの前記シンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記エントロピーエンコーダのそれぞれの１つに対してビット長Ｎｘのトランシェエントリの予約をトリガするように協働し、その際、前記それぞれの時点で、前記それぞれのエントロピーエンコーダに対する前記グローバルバッファ内に現在予約されているビット数と、前記それぞれのエントロピーエンコーダの前記個別のバッファ内または前記それぞれのエントロピーエンコーダに対する前記グローバルバッファ内で現在バッファリングされているビット数Ｍｘ個と、の差が所定の基準を満たしていないことを前提とし、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリを満たし、前記グローバルベッファは、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、複数のビットストリームのビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを獲得し、
前記個別のバッファは、ビットストリームの蓄えられた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリをトランシェエントリ単位で満たす構成を有し、
前記グローバルバッファは、前記複数のエントロピーエンコーダと前記個別のバッファのいずれかによるそれぞれの予約のトリガ時に、
予約されてから最も時間が経過して既に満たされているトランシェエントリから、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリは除いて、前記トランシェエントリ単位で順に、前記トランシェエントリのうち満たされたトランシェエントリの取り出しを完了し、その後に、
予約ささたトランシェエントリによってカバーされる前記グローバルバッファ内のビット数と、それぞれ予約−トリガを行っているエントロピーエンコーダのビット長Ｎｘとの和が、最大バッファ遅延Ｄより大きいかどうかをチェックし、
大きくない場合には、
前記それぞれ予約−トリガを行っているエントロピーエンコーダに対してビット長Ｎｘのそれぞれの新しいトランシェエントリを予約し、
大きい場合には、
前記選択部により、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダに、まだエントロピー符号化されていないシンボルがあればそれを転送して、有効なシンボルシーケンスへ拡張させ、その有効なシンボルシーケンスを符号語にマッピングさせて、対応する個別のバッファに予約させ、その後に、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリに対して、前記エントロピーエンコーダの個別のバッファに現在予約されているビット数Ｍｘ個が、そのエントロピーエンコーダのビット長Ｎｘより小さいかどうかをチェックし、そうであれば、Ｎｘ−Ｍｘを現在バッファリングされているＭｘビットへ追加し、その後、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダの個別のバッファからＮｘ個の予約されたビットを、前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを満たすためにこれに出力し、その際、予約されたＮｘビットを上回る可能性のある付加的にバッファリングされたビットは残しておく
構成を有する
エンコーダ。
【請求項３３】
請求項３３に記載のエンコーダにおいて、前記複数のエントロピーエンコーダのうち所定の１つが、より高頻度で選択されたエントロピーエンコーダであると期待され、前記所定のエントロピーエンコーダが１ビット長の符号語を単にサポートし、前記エンコーダが、前記それぞれの予約−トリガ型エントロピーエンコーダが前記所定のエントロピーエンコーダである場合、前記予約されたトランシェエントリによってカバーされた前記グローバルバッファ内のビット数プラス前記所定のエントロピーエンコーダに対して前記リクエストされたトランシェエントリのビット長Ｎｘが最大バッファ遅延Ｄより大きいかどうかをチェックする代わりに、
前記予約されるトランシェエントリによってカバーされる前記グローバルバッファ内のビット数プラス前記所定のエントロピーエンコーダに対して前記リクエストされたトランシェエントリの前記ビット長Ｎｘが定義済みの閾値より大きいかどうか（Ｄ２＜Ｄ）をチェックし、
前記定義済みの閾値Ｄ２より大きい場合、
予約されているが未だ完全に書き込まれていないトランシェエントリのいずれかの予約を最も長い間トリガしていないエントロピーエンコーダを決定し、
前記決定されたエントロピーエンコーダにより、前記選択部により前記エントロピーエンコーダへ転送された、あれば、未だエントロピー符号化されていないシンボルを、有効シンボルシーケンスへ拡張させ、前記決定されたエントロピーエンコーダの前記個別のバッファによってバッファリングされるように前記有効シンボルシーケンスを符号語にマッピングさせ、
前記決定されたエントロピーエンコーダの前記個別のバッファ内で現在バッファリングされているビットを前記所定のエントロピーエンコーダの前記個別のバッファへ変位させ、
前記未だ完全に書き込まれていないトランシェエントリの予約を前記決定されたエントロピーエンコーダから前記所定のエントロピーエンコーダへ変更する、
エンコーダ。
【請求項３４】
シンボルシーケンスを復元するデコーダであって、
各々がそれぞれのビットストリームをシンボルへ変換する複数のエントロピーデコーダと、
前記シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボル（２５）へ複数のパラメータを割り当てる割当部と、
複数のエントロピーデコーダのうち選択された１つから復元されるシンボルシーケンスの各シンボルを検索し、その選択を前記それぞれのシンボルに対して定義付けられたパラメータに応じて行う選択部と、
を備え、
前記エントロピーデコーダは各々、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
前記デコーダは、ビットストリーム（６０）のトランシェがインターリーブされて散在する単一ストリーム（６２）を受信し、前記トランシェへのリクエストが発生する順に応じて前記複数のエントロピーデコーダへ前記トランシェを順次分配するグローバルバッファを備え、
前記複数のエントロピーデコーダは各々、前記複数のエントロピーデコーダから、前記選択部により検索されるときに復元される前記シンボルシーケンスの前記シンボルのうち、前記エントロピーデコーダの各々によってそれぞれのビットストリーム内の新しい符号語からマッピングされる新しいシンボルシーケンスの初期部分を形成するシンボルに遭遇するときに、前記グローバルバッファからそれぞれのビットストリームのそれぞれのビット長Ｎｘのトランシェに対してそれぞれのリクエストをトリガし、その際、それぞれの時点で、前記グローバルバッファによって前記エントロピーデコーダの各々へ分配されていたが、新しい符号語を含めて、それまで、前記エントロピーデコーダによって未だにエントロピー復号化されていなかったそれぞれのビットストリームのビット数Ｍｘ個が所定の数を下回ることを前提としており、
エントロピーデコーダごとに、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたビット数を、前記グローバルバッファから前記エントロピーデコーダの各々まで分配させた最も長い間分配されていないトランシェの分配に至るまで、ロギングし、
それぞれのビット長Ｎｘのトランシェに対するそれぞれのリクエストがトリガされる度ごとに、一方で、前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたグローバルビット数と、他方で、ロギングされた最小ビット数と、の差が、最大バッファ遅延Ｄより大きいかどうかを判断し、
大きい場合には、
前記グローバルバッファから前記ロギングされた最小数がロギングされていた前記エントロピーデコーダまで分配させた前記最も長い間予約されていないトランシェと、前記ロギングされた最小数が前記選択部によりロギングされている前記エントロピーデコーダから未だ検索されていない任意のシンボルと、を廃棄する
デコーダ。
【請求項３５】
請求項３４に記載のデコーダにおいて、前記複数のエントロピーデコーダのうち、所定の１つがより高頻度で選択されるエントロピーデコーダであると期待され、前記所定のエントロピーデコーダが１ビット長の符号語を単にサポートし、前記デコーダが、前記それぞれのリクエストが前記所定のエントロピーデコーダに由来する場合、一方で前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分布させたグローバルビット数と、他方で、ロギングされた最小ビット数と、の差が最大バッファ遅延Ｄより大きいかどうかを判断する代わりに、
一方で前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分布させたグローバルビット数と、他方でロギングされた最小ビット数と、の差が定義済みの閾値より大きいかどうか（Ｄ２＜Ｄ）をチェックし、
前記定義済みの閾値Ｄ２より大きい場合、
前記ロギングされた最小数が前記選択部によりロギングされている前記エントロピーデコーダから未だ検索されていないシンボルを切り捨て、
前記所定のエントロピーデコーダによって復号化されるように、前記グローバルバッファから前記ロギングされた最小数がロギングされている前記エントロピーデコーダへ分布させたトランシェの非復号化部分を再方向付けする、
デコーダ。
【請求項３６】
シンボルシーケンスを符号化するエンコーダであって、
前記シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当てる割当部と、
各々が、転送されてきたシンボルをそれぞれのビットストリームに変換する複数のエントロピーエンコーダと、
各々のシンボルを、それぞれのシンボルに割り当てられた前記複数のパラメータに依存して前記複数のエントロピーエンコーダから選択される１つのエントロピーエンコーダに転送する選択部と、
を備え、
前記複数のエントロピーエンコーダは各々、シンボルシーケンスを、それぞれの最大ビット長Ｌｘ以下の長さの符号語にマッピングする可変長コーダであり、
前記複数のエントロピーエンコーダの各々に対して設けられ、そのエントロピーエンコーダのそれぞれのビットストリームをバッファリングする個別のバッファと、
前記複数のエントロピーエンコーダに対して、トランシェのエントリのシーケンスを、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約するグローバルバッファと、
を備え、
前記複数のエントロピーエンコーダおよび前記個別のバッファは、前記選択部により前記複数のエントロピーエンコーダへ転送された前記シンボルシーケンスの前記シンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記エントロピーエンコーダのそれぞれの１つに対してビット長Ｎｘのトランシェエントリの予約をトリガするように協働し、その際、前記それぞれの時点で、前記それぞれのエントロピーエンコーダに対する前記グローバルバッファ内に現在予約されているビット数と、前記それぞれのエントロピーエンコーダの前記個別のバッファ内または前記それぞれのエントロピーエンコーダに対する前記グローバルバッファ内で現在バッファリングされているビット数Ｍｘ個と、の差が所定の基準を満たしていないことを前提とし、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリを満たし、前記グローバルベッファは、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、複数のビットストリームのビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを獲得し、
前記エンコーダはさらに、前記トランシェの単一ストリームをチャンクに断片化するフラグメンタイザをさらに備え、各チャンクには、前記複数のエントロピーエンコーダのトランシェがどのようにそれぞれのチャンクに分散してチャンクのシーケンスが得られたかの情報を含む、
エンコーダ。
【請求項３７】
請求項３６記載のエンコーダにおいて、前記フラグメンタイザは、前記トランシェの単一ストリームをチャンクに断片化し、順序を変える
エンコーダ。
【請求項３８】
シンボルシーケンスを復元するデコーダであって、
各々がそれぞれのビットストリームをシンボルへ変換する複数のエントロピーデコーダと、
前記シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボルへ複数のパラメータを割り当てる割当部と、
複数のエントロピーデコーダのうち選択された１つから復元されるシンボルシーケンスの各シンボルを検索し、その選択を前記それぞれのシンボルに対して定義付けられたパラメータに応じて行う選択部と、
を備え、
前記エントロピーデコーダは各々、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
前記デコーダはさらに、前記複数のエントロピーエンコーダの前記トランシェが前記それぞれのチャンクに対してどのように分布されているかについての情報がそれぞれ添付されているチャンクのシーケンスから、前記トランシェの単一ストリームの再構成するデフラグメンタイザをさらに含む、
デコーダ。
【請求項３９】
シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当て、
各シンボルを複数のエントロピーエンコーダの選択された１つに転送し、その選択はそのシンボルに割り当てられたパラメータに応じて行われ、前記複数のエントロピーエンコーダは各々、シンボルシーケンスを符号語にマッピングする可変長コーダであって、転送されたシンボルをそれぞれのビットストリームへ変換する
シンボルシーケンスの符号化方法において、
前記エントロピーデコーダは各々、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
各エントロピーエンコーダに対して、そのエントロピーエンコーダのビットストリームを各個別のバッファにバッファリングし、
前記複数のエントロピーエンコーダに対して、それぞれビット長Ｎｘの切片となるトランシェのエントリのシーケンスを、グローバルバッファ内に、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約し、
前記選択部により前記複数のエントロピーエンコーダに転送されたシンボルシーケンスのシンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点で予約されているビット数と、その時点で前記それぞれのエントロピーエンコーダに対する前記個別のバッファ内、または前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点でバッファリングされているビット数Ｍｘとの差が、所定の基準を満たしていないことを前提とし、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリを満たし、
前記グローバルベッファから、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、複数のビットストリームのビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを獲得し、
前記個別のバッファからビットストリームの蓄えられた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリをトランシェエントリ単位で満たし、
前記複数のエントロピーエンコーダと前記個別のバッファのいずれかによるそれぞれの予約のトリガ時に、
予約されてから最も時間が経過して既に満たされているトランシェエントリから、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリは除いて、前記トランシェエントリ単位で順に、前記トランシェエントリのうち満たされたトランシェエントリの取り出しを完了し、その後に、
予約ささたトランシェエントリによってカバーされる前記グローバルバッファ内のビット数と、それぞれ予約−トリガを行っているエントロピーエンコーダのビット長Ｎｘとの和が、最大バッファ遅延Ｄより大きいかどうかをチェックし、
大きくない場合には、
前記それぞれ予約−トリガを行っているエントロピーエンコーダに対してビット長Ｎｘのそれぞれの新しいトランシェエントリを予約し、
大きい場合には、
前記選択部により、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダに、まだエントロピー符号化されていないシンボルがあればそれを転送して、有効なシンボルシーケンスへ拡張させ、その有効なシンボルシーケンを符号語にマッピングさせて、対応する個別のバッファに予約させ、その後に、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリに対して、前記エントロピーエンコーダの個別のバッファに現在予約されているビット数Ｍｘ個が、そのエントロピーエンコーダのビット長Ｎｘより小さいかどうかをチェックし、そうであれば、Ｎｘ−Ｍｘを現在バッファリングされているＭｘビットへ追加し、その後、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダの個別のバッファからＮｘ個の予約されたビットを、前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを満たすためにこれに出力し、その際、予約されたＮｘビットを上回る可能性のある付加的にバッファリングされたビットは残しておく
シンボルシーケンスの符号化方法。
【請求項４０】
各々がそれぞれのビットストリームをシンボルに変換する複数のエントロピーデコーダを用いてシンボルシーケンスを復元する方法であって、
シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボルへ複数のパラメータを割り当て、
複数のエントロピーデコーダの選択された１つから復元される前記シンボルシーケンスの各シンボルを検索し、この選択は、それぞれのシンボルに対して定義付けられたパラメータに応じて行う
シンボルシーケンスの復元方法において、
各エントロピーデコーダは、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
ビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームをグローバルバッファに受信し、
前記トランシェへのリクエストが発生する順に応じてグローバルバッファから前記前記複数のエントロピーデコーダへ前記トランシェを順次分配し、
前記複数のエントロピーデコーダの各々に対し、前記複数のエントロピーデコーダから、前記選択部により検索されるときに復元される前記シンボルシーケンスの前記シンボルのうち、前記エントロピーデコーダの各々によってそれぞれのビットストリーム内の新しい符号語からマッピングされる新しいシンボルシーケンスの初期部分を形成するシンボルに遭遇するときに、前記グローバルバッファからそれぞれのビットストリームのそれぞれのビット長Ｎｘのトランシェに対してそれぞれのリクエストをトリガし、
エントロピーデコーダごとに、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたビット数を、前記グローバルバッファから前記エントロピーデコーダの各々まで分配させた最も長い間分配されていないトランシェの分配に至るまで、ロギングし、
それぞれのビット長Ｎｘのトランシェに対するそれぞれのリクエストがトリガされる度ごとに、一方で、前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたグローバルビット数と、他方で、ロギングされた最小ビット数と、の差が、最大バッファ遅延Ｄより大きいかどうかを判断し、
大きい場合には、
前記グローバルバッファから前記ロギングされた最小数がロギングされていた前記エントロピーデコーダまで分配させた前記最も長い間予約されていないトランシェと、前記ロギングされた最小数が前記選択部によりロギングされている前記エントロピーデコーダから未だ検索されていない任意のシンボルと、を廃棄する
シンボルシーケンスの復元方法。
【請求項４１】
シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当て、
各シンボルを複数のエントロピーエンコーダの選択された１つに転送し、その選択はそのシンボルに割り当てられたパラメータに応じて行われ、前記複数のエントロピーエンコーダは各々、シンボルシーケンスを符号語にマッピングする可変長コーダであって、転送されたシンボルをそれぞれのビットストリームへ変換する
シンボルシーケンスの符号化方法において、
前記エントロピーデコーダは各々、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
各エントロピーエンコーダに対して、そのエントロピーエンコーダのビットストリームを各個別のバッファにバッファリングし、
前記複数のエントロピーエンコーダに対して、それぞれビット長Ｎｘの切片となるトランシェのエントリのシーケンスを、グローバルバッファ内に、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約し、
前記選択部により前記複数のエントロピーエンコーダに転送されたシンボルシーケンスのシンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点で予約されているビット数と、その時点で前記それぞれのエントロピーエンコーダに対する前記個別のバッファ内、または前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点でバッファリングされているビット数Ｍｘとの差が、所定の基準を満たしていないことを前提とし、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリを満たし、前記グローバルベッファから、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、複数のビットストリームのビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを獲得し、
前記トランシェの単一ストリームをチャンクに断片化して、各チャンクに、前記複数のエントロピーエンコーダのトランシェがどのようにそれぞれのチャンクに分散してチャンクのシーケンスが得られたかの情報を添付する
シンボルシーケンスの符号化方法。
【請求項４２】
各々がそれぞれのビットストリームをシンボルに変換する複数のエントロピーデコーダを用いてシンボルシーケンスを復元する方法であって、
シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボルへ複数のパラメータを割り当て、
複数のエントロピーデコーダの選択された１つから復元される前記シンボルシーケンスの各シンボルを検索し、この選択は、それぞれのシンボルに対して定義付けられたパラメータに応じて行う
シンボルシーケンスの復元方法において、
各エントロピーデコーダは、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
前記複数のエントロピーエンコーダの前記トランシェが前記それぞれのチャンクに対してどのように分布されているかについての情報がそれぞれ添付されているチャンクのシーケンスから、前記トランシェの単一ストリームの再構成する
シンボルシーケンスの復元方法。
【請求項４３】
コンピュータ実行時に、請求項１７、３１、３９、４０、４１、または４２に記載の方法を実行するためのプログラムコードを有するコンピュータプログラムを格納しているコンピュータ読出し可能なデジタル記憶媒体。
【手続補正書】
【提出日】平成26年10月7日(2014.10.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
シンボルシーケンスを符号化するエンコーダであって、
前記シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当てる割当部（４）と、
各々が、転送されてきたシンボル（７）をそれぞれのビットストリーム（４７）に変換する複数のエントロピーエンコーダ（１０）と、
各々のシンボルを、それぞれのシンボルに割り当てられた前記複数のパラメータに依存して前記複数のエントロピーエンコーダから選択される１つのエントロピーエンコーダに転送する選択部（６）と、
を備え、
前記複数のエントロピーエンコーダは各々、シンボルシーケンスを、それぞれの最大ビット長Ｌｘ以下の長さの符号語にマッピングする可変長コーダであり、
前記複数のエントロピーエンコーダ（１０）の各々に対して設けられ、そのエントロピーエンコーダのそれぞれのビットストリーム（４７）をバッファリングする個別のバッファ（４８）と、
前記複数のエントロピーエンコーダに対して、それぞれビット長Ｎｘの切片となるトランシェのエントリのシーケンスを、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約するグローバルバッファ（５１）と、
を備え、
前記複数のエントロピーエンコーダおよび前記個別のバッファは、前記選択部（６）により前記複数のエントロピーエンコーダに転送されたシンボルシーケンスのシンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ（５１）内にその時点で予約されているビット数から、その時点で前記それぞれのエントロピーエンコーダに対する前記個別のバッファ内、または前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点でバッファリングされているビット数Ｍｘを差し引いた値が、前記それぞれのエントロピーエンコーダに対してさらに符号語を生成するものとして意図される最小符号語数Ｃｘに１を加え、前記それぞれの最大ビット長Ｌｘを乗算したもの、すなわち（Ｃｘ＋１）・Ｌｘ、を予約するのに不十分であるときに、前記複数のエントロピーエンコーダのそれぞれに対して、ビット長Ｎｘのトランシェエントリの予約（４９）をトリガするように協働し、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリーム（４７）のバッファリングされた部分を出力して、前記グローバルバッファ（５１）内のそれぞれ予約されたトランシェエントリを満たし、前記グローバルベッファは、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、前記グローバルバッファに満たされたビットストリームのトランシェがインターリーブされて散在する単一ストリーム（５２）を得る
エンコーダ。
【請求項２】
請求項１に記載のエンコーダにおいて、前記割当部は、各シンボルに割り当てられた前記複数のパラメータが、前記それぞれのシンボルが想定し得る可能な値の中で確率分布の推定に対する測度を含むか、または前記確率分布の推定に対する測度となる構成を有するエンコーダ。
【請求項３】
請求項２に記載のエンコーダにおいて、前記シンボルシーケンスは二値アルファベットから作られ、前記割当部は、前記確率分布の推定が、確率の低いまたは確率の高いビン値の確率の推定に対する測度と、前記２つの可能なビン値のうちどちらが確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子を含む構成を有するエンコーダ。
【請求項４】
請求項２または３に記載のエンコーダにおいて、前記割当部は、各コンテクストがこれに関連付けられた各確率分布推定を有するシンボルシーケンスのシンボル内に含まれる情報に基づいて前記シンボルシーケンスの各シンボルにコンテクストを割り当て、それぞれのコンテクストが割り当てられる前のシンボルのシンボル値に基づいて各コンテクストの確率分布の推定を実際のシンボル統計に適応させ、各シンボルに割り当てられたコンテクストに関連付けられた確率分布推定に基づいて、シンボルごとに確率分布の推定に対して測度を求めるエンコーダ。
【請求項５】
請求項４に記載のエンコーダにおいて、前記割当部は、シンボルごとに確率分布の推定に対して測度を求める際に、その測度を得るために複数の確率分布推定代表の１つへ各シンボルに割り当てられたコンテクストに関連付けられた確率分布の推定を量子化する構成を有し、前記選択部は、全単射関連付けが前記複数のエントロピーエンコーダと前記複数の確率分布推定代表との間で定義付ける構成を有するエンコーダ。
【請求項６】
請求項５に記載のエンコーダにおいて、前記選択部は、所定の決定論的な方法で、量子化マッピングを前記シンボルシーケンスの前のシンボルに応じて確率分布推定の範囲から複数の確率分布推定代表へ経時的に変化させるエンコーダ。
【請求項７】
請求項６に記載のエンコーダにおいて、前記複数のエントロピーエンコーダは、量子化マッピングの変化に応答して、そのシンボルをビットストリームへ変換する方法を適応させるエンコーダ。
【請求項８】
請求項５または６に記載のエンコーダにおいて、前記選択部は、前記エントロピーエンコーダがシンボルを変換するビットストリームのビットレートのばらつきを小さくするように、前記量子化マッピングを変更する構成を有するエンコーダ。
【請求項９】
請求項１から８のいずれか１項に記載のエンコーダにおいて、前記複数のエントロピーエンコーダの少なくとも１つは、これに関連付けられているシンボル入力バッファを有し、前記選択部は、前記関連付けられているシンボル入力バッファを介して、前記少なくとも１つのエントロピーエンコーダへシンボルを転送する構成を有するエンコーダ。
【請求項１０】
請求項１から９のいずれか１項に記載のエンコーダにおいて、前記グローバルバッファは、前記複数のエントロピーエンコーダとそれぞれの個別のバッファとのいずれかによるそれぞれの予約のトリガ時に、予約されてから最も時間が経過して既に満たされているトランシェエントリから、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリは除いて、前記トランシェエントリ単位で順に、前記トランシェエントリのうち満たされたトランシェエントリの取り出しを実行する構成を有するエンコーダ。
【請求項１１】
請求項１から１０のいずれか１項に記載のエンコーダにおいて、
前記個別のバッファは、ビットストリームの蓄えられた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリをトランシェエントリ単位で満たす構成を有し、
前記グローバルバッファは、
前記複数のエントロピーエンコーダと前記個別のバッファのいずれかによるそれぞれの予約のトリガ時に、
予約されてから最も時間が経過して既に満たされているトランシェエントリから、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリは除いて、前記トランシェエントリ単位で順に、前記トランシェエントリのうち満たされたトランシェエントリの取り出しを完了し、その後に、
予約ささたトランシェエントリによってカバーされる前記グローバルバッファ内のビット数と、それぞれ予約−トリガを行っているエントロピーエンコーダのビット長Ｎｘとの和が、最大バッファ遅延Ｄより大きいかどうかをチェックし、
大きくない場合には、
前記それぞれ予約−トリガを行っているエントロピーエンコーダに対してビット長Ｎｘのそれぞれの新しいトランシェエントリを予約し、
大きい場合には、
前記選択部により、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダに、まだエントロピー符号化されていないシンボルがあればそれを転送して、有効なシンボルシーケンスへ拡張させ、その有効なシンボルシーケンを符号語にマッピングさせて、対応する個別のバッファに予約させ、その後に、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリに対して、前記エントロピーエンコーダの個別のバッファに現在予約されているビット数Ｍｘ個が、そのエントロピーエンコーダのビット長Ｎｘより小さいかどうかをチェックし、そうであれば、Ｎｘ−Ｍｘを現在バッファリングされているＭｘビットへ追加し、その後、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダの個別のバッファからＮｘ個の予約されたビットを、前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを満たすためにこれに出力し、その際、予約されたＮｘビットを上回る可能性のある付加的にバッファリングされたビットは残しておく、
エンコーダ。
【請求項１２】
請求項１から１１のいずれか１項に記載のエンコーダにおいて、前記トランシェの単一ストリームをチャンクに断片化するフラグメンタイザをさらに備え、各チャンクには、前記複数のエントロピーエンコーダのトランシェがどのようにそれぞれのチャンクに分散してチャンクのシーケンスが得られたかの情報を含む、エンコーダ。
【請求項１３】
請求項１から１２のいずれか１項に記載のエンコーダにおいて、前記複数のエントロピーエンコーダおよび前記グローバルバッファが、現在転送されているが未だにマッピングされていないシンボルを前記現在転送されているが未だにマッピングされていないシンボルを接頭語として有しているドント−ケアシンボルによって有効シンボルシーケンスへ断続的に拡張し、このように拡張されたシンボルシーケンスを符号語内にマッピングし、それにより得られた符号語を予約されたトランシェエントリ内へ入力し、そのトランシェエントリをフラッシュする、エンコーダ。
【請求項１４】
請求項１から１３のいずれか１項に記載のエンコーダにおいて、前記複数のエントロピーエンコーダおよび前記グローバルバッファが、トランシェエントリの数と符号語を入力したトランシェエントリの数との和が所定の基準を満たす事象において、前記断続的な拡張、入力、およびフラッシュを実行するエンコーダ。
【請求項１５】
請求項１から１４のいずれか１項に記載のエンコーダにおいて、Ｃｘ＞０であるエンコーダ。
【請求項１６】
シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当て、
各シンボルを複数のエントロピーエンコーダの選択された１つに転送し、その選択はそのシンボルに割り当てられたパラメータに応じて行われ、前記複数のエントロピーエンコーダは各々、シンボルシーケンスをそれぞれの最大ビット長Ｌｘ以下の長さの符号語にマッピングする可変長コーダであって、転送されたシンボルをそれぞれのビットストリームへ変換する
シンボルシーケンスの符号化方法において、
各エントロピーエンコーダに対して、そのエントロピーエンコーダのビットストリームを各個別のバッファにバッファリングし、
前記複数のエントロピーエンコーダに対して、それぞれビット長Ｎｘの切片となるトランシェのエントリのシーケンスを、グローバルバッファ内に、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約し、
前記選択部により前記複数のエントロピーエンコーダに転送されたシンボルシーケンスのシンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点で予約されているビット数から、その時点で前記それぞれのエントロピーエンコーダに対する前記個別のバッファ内、または前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点でバッファリングされているビット数Ｍｘを差し引いた値が、前記それぞれのエントロピーエンコーダに対してさらに符号語を生成するものとして意図される最小符号語数Ｃｘに１を加え、前記それぞれの最大ビット長Ｌｘを乗算したもの、すなわち（Ｃｘ＋１）・Ｌｘ、を予約するのに不十分であるときに、前記複数のエントロピーエンコーダのそれぞれに対して、ビット長Ｎｘのトランシェエントリの予約（４９）をトリガし、
前記符号語バッファからビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ（５１）内のそれぞれ予約されたトランシェエントリを満たし、
トランシェアントリのうち満たされたトランシェエントリを順に取り出して、前記グローバルバッファに満たされたビットストリームのトランシェがインターリーブされて散在する単一ストリーム（５２）を得る
シンボルシーケンスの符号化方法。
【請求項１７】
シンボルシーケンスを復元するデコーダであって、
各々がそれぞれのビットストリーム（５７）をシンボル（２１）へ変換する複数のエントロピーデコーダ（２２）と、
前記シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボル（２５）へ複数のパラメータを割り当てる割当部（１６）と、
複数のエントロピーデコーダのうち選択された１つから復元されるシンボルシーケンス（２５）の各シンボルを検索し、その選択を前記それぞれのシンボルに対して定義付けられたパラメータに応じて行う選択部（１８）と、
を備え、
前記エントロピーデコーダ（２２）は各々、それぞれの最大ビット長Ｌｘ以下の長さの符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
前記デコーダは、ビットストリーム（６０）のトランシェがインターリーブされて散在する単一ストリーム（６２）を受信し、前記トランシェへのリクエストが発生する順に応じて前記複数のエントロピーデコーダへ前記トランシェを順次分配するグローバルバッファを備え、
前記複数のエントロピーデコーダ（２２）は各々、前記複数のエントロピーデコーダから、前記選択部（１８）により検索されるときに復元される前記シンボルシーケンス（２５）の前記シンボルのうち、前記エントロピーデコーダの各々によってそれぞれのビットストリーム（５７）内の新しい符号語からマッピングされる新しいシンボルシーケンスの初期部分を形成するシンボルに遭遇するときに、前記グローバルバッファからそれぞれのビットストリームのそれぞれのビット長Ｎｘのトランシェに対してそれぞれのリクエスト（５６、５９）をトリガし、その際、それぞれの時点で、前記グローバルバッファ（６１）によって前記エントロピーデコーダの各々へ分配されていたが、新しい符号語を含めて、それまで、前記エントロピーデコーダ（２２）によって未だにエントロピー復号化されていなかったそれぞれのビットストリーム（５７）のビット数Ｍｘ個が、前記エントロピーデコーダの各々に対するさらなる符号語の意図される最小数Ｃｘに１を加えて前記それぞれの最大ビット長Ｌｘを乗算したもの、すなわち、（Ｃｘ＋１）・Ｌｘ、未満であることを前提としている、
デコーダ。
【請求項１８】
請求項１７に記載のデコーダにおいて、エントロピーデコーダごとに、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたビット数を、前記グローバルバッファから前記エントロピーデコーダの各々まで分配させた最も長い間分配されていないトランシェの分配に至るまで、ロギングし、
それぞれのビット長Ｎｘのトランシェに対するそれぞれのリクエストがトリガされる度ごとに、一方で、前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたグローバルビット数と、他方で、ロギングされた最小ビット数と、の差が、最大バッファ遅延Ｄより大きいかどうかを判断し、
大きい場合には、
前記グローバルバッファから前記ロギングされた最小数がロギングされていた前記エントロピーデコーダまで分配させた前記最も長い間予約されていないトランシェと、前記ロギングされた最小数が前記選択部によりロギングされている前記エントロピーデコーダから未だ検索されていない任意のシンボルと、を廃棄する
デコーダ。
【請求項１９】
請求項１７または１８に記載のデコーダにおいて、前記複数のエントロピーエンコーダの前記トランシェが前記それぞれのチャンクに対してどのように分布されているかについての情報がそれぞれ添付されているチャンクのシーケンスから、前記トランシェの単一ストリームの再構成するデフラグメンタイザをさらに含む、デコーダ。
【請求項２０】
請求項１７から１９のいずれか１項に記載のデコーダにおいて、前記割当部は、各シンボルに割り当てられた複数のパラメータが、それぞれのシンボルが想定し得る可能なシンボル値の中から確率分布の推定に対する測度を含む、または前記確率分布の推定に対する測度であるように構成された、デコーダ。
【請求項２１】
請求項２０に記載のデコーダにおいて、復元されるシンボルシーケンスは二値アルファベットのシンボルシーケンスであり、前記割当部は、前記確率分布の推定が、前記二値アルファベットの前記２つの可能なビン値の確率の低いまたは確率の高いビン値の確率の推定に対する測度と、前記２つの可能なビン値のうちどちらが前記確率の低いまたは確率の高いビン値を表すかの推定を指定する識別子とから成るように構成された、デコーダ。
【請求項２２】
請求項２０または２１に記載のデコーダにおいて、前記割当部は、各コンテクストがこれに関連付けられたそれぞれの確率分布推定を有することによって復元される前記シンボルシーケンスの前に復元されたシンボル内に含まれる前記情報に基づいて復元される前記シンボルシーケンスの各シンボルへコンテクストを内的に割り当て、前記それぞれのコンテクストが割り当てられる前に復元されたシンボルのシンボル値に基づいてコンテクストごとに前記確率分布推定を実際のシンボル統計に適応させ、前記それぞれのシンボルに割り当てられた前記コンテクストに関連付けられた前記確率分布推定に基づいてシンボルごとに前記確率分布の前記推定に対する前記測度を求めるデコーダ。
【請求項２３】
請求項２２に記載のデコーダにおいて、前記割当部は、シンボルごとに前記確率分布の前記推定に対して前記測度を求める際に、前記確率分布の前記推定に対する前記測度を得るために複数の確率分布推定代表の１つへ前記各シンボルに割り当てられた前記コンテクストに関連付けされた前記確率分布の推定を量子化し、前記選択部は、全単射関連付けが前記複数のエントロピーエンコーダと前記複数の確率分布推定代表との間で定義付けられるデコーダ。
【請求項２４】
請求項２３に記載のデコーダにおいて、前記選択部は、所定の決定論的な方法で、量子化マッピングを前記シンボルシーケンスの前に復元されたシンボルに応じて前記確率分布推定の範囲から前記複数の確率分布推定代表へ経時的に変化させるデコーダ。
【請求項２５】
請求項２４に記載のデコーダにおいて、前記複数のエントロピーデコーダは、前記量子化マッピングの変化に応答して、そのシンボルをビットストリームへ変換する方法を適応させるデコーダ。
【請求項２６】
請求項２４または２５に記載のデコーダにおいて、前記選択部は、前記シンボルが前記複数のエントロピーデコーダから検索されるレートのばらつきを少なくするように前記量子化マッピングを変化させるデコーダ。
【請求項２７】
請求項１６から２６のいずれか１項に記載のデコーダにおいて、少なくとも１つのエントロピーデコーダは、これに関連付けられているシンボル出力バッファを有しており、前記選択部は、前記関連付けられているシンボル出力バッファを介して、前記少なくとも１つのエントロピーデコーダから前記シンボルを検索するデコーダ。
【請求項２８】
請求項１６から２７のいずれか１項に記載のデコーダにおいて、前記複数のエントロピーデコーダおよび前記選択部は復元される前記シンボルシーケンスの形成に参加しないためにシンボルシーケンスの接尾語を断続的に切り捨てるデコーダ。
【請求項２９】
請求項２８に記載のデコーダにおいて、前記複数のエントロピーデコーダおよび前記選択部は、前記トランシェエントリからのそれぞれのエントロピーデコーダの２つの連続した符号語検索間の前記複数のエントロピーデコーダによって前記トランシェエントリから既に検索されている多数の符号語が、所定の基準を満たしている事象において、断続的切り捨てを実行するデコーダ。
【請求項３０】
請求項１から２９のいずれか１項に記載のデコーダにおいて、Ｃｘ＞０であるデコーダ。
【請求項３１】
シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボルへ複数のパラメータを割り当て、
複数のエントロピーデコーダの選択された１つから復元される前記シンボルシーケンスの各シンボルを検索し、この選択は、それぞれのシンボルに対して定義付けられたパラメータに応じて行い、前記複数のエントロピーデコーダは各々、それぞれのビッオストリームをシンボルに変換する構成であって、各エントロピーデコーダが、それぞれの最大ビット長Ｌｘ以下の長さの符号語をシンボルシーケンスにマッピングする可変長デコーダである
シンボルシーケンスの復元方法において、
ビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームをグローバルバッファに受信し、
前記トランシェへのリクエストが発生する順に応じてグローバルバッファから前記前記複数のエントロピーデコーダへ前記トランシェを順次分配し、
前記複数のエントロピーデコーダの各々に対し、前記複数のエントロピーデコーダから、前記選択部により検索されるときに復元される前記シンボルシーケンスの前記シンボルのうち、前記エントロピーデコーダの各々によってそれぞれのビットストリーム内の新しい符号語からマッピングされる新しいシンボルシーケンスの初期部分を形成するシンボルに遭遇するときに、前記グローバルバッファからそれぞれのビットストリームのそれぞれのビット長Ｎｘのトランシェに対してそれぞれのリクエストをトリガし、
このトリガに際して、それぞれの時点で、前記グローバルバッファ（６１）によって前記エントロピーデコーダの各々へ分配されていたが、新しい符号語を含めて、それまで、前記エントロピーデコーダ（２２）によって未だにエントロピー復号化されていなかったそれぞれのビットストリーム（５７）のビット数Ｍｘ個が、前記エントロピーデコーダの各々に対するさらなる符号語の意図される最小数Ｃｘに１を加えて前記それぞれの最大ビット長Ｌｘを乗算したもの、すなわち、（Ｃｘ＋１）・Ｌｘ、未満であることを前提とする
シンボルシーケンスの復元方法。
【請求項３２】
シンボルシーケンスを符号化するエンコーダであって、
前記シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当てる割当部と、
各々が、転送されてきたシンボルをそれぞれのビットストリームに変換する複数のエントロピーエンコーダと、
各々のシンボルを、それぞれのシンボルに割り当てられた前記複数のパラメータに依存して前記複数のエントロピーエンコーダから選択される１つのエントロピーエンコーダに転送する選択部と、
を備え、
前記複数のエントロピーエンコーダは各々、シンボルシーケンスを、それぞれの最大ビット長Ｌｘ以下の長さの符号語にマッピングする可変長コーダであり、
前記複数のエントロピーエンコーダの各々に対して設けられ、そのエントロピーエンコーダのそれぞれのビットストリームをバッファリングする個別のバッファと、
前記複数のエントロピーエンコーダに対して、トランシェのエントリのシーケンスを、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約するグローバルバッファ）と、
を備え、
前記複数のエントロピーエンコーダおよび前記個別のバッファは、前記選択部により前記複数のエントロピーエンコーダへ転送された前記シンボルシーケンスの前記シンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記エントロピーエンコーダのそれぞれの１つに対してビット長Ｎｘのトランシェエントリの予約をトリガするように協働し、その際、前記それぞれの時点で、前記それぞれのエントロピーエンコーダに対する前記グローバルバッファ内に現在予約されているビット数と、前記それぞれのエントロピーエンコーダの前記個別のバッファ内または前記それぞれのエントロピーエンコーダに対する前記グローバルバッファ内で現在バッファリングされているビット数Ｍｘ個と、の差が所定の基準を満たしていないことを前提とし、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリを満たし、前記グローバルベッファは、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、複数のビットストリームのビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを獲得し、
前記個別のバッファは、ビットストリームの蓄えられた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリをトランシェエントリ単位で満たす構成を有し、
前記グローバルバッファは、前記複数のエントロピーエンコーダと前記個別のバッファのいずれかによるそれぞれの予約のトリガ時に、
予約されてから最も時間が経過して既に満たされているトランシェエントリから、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリは除いて、前記トランシェエントリ単位で順に、前記トランシェエントリのうち満たされたトランシェエントリの取り出しを完了し、その後に、
予約ささたトランシェエントリによってカバーされる前記グローバルバッファ内のビット数と、それぞれ予約−トリガを行っているエントロピーエンコーダのビット長Ｎｘとの和が、最大バッファ遅延Ｄより大きいかどうかをチェックし、
大きくない場合には、
前記それぞれ予約−トリガを行っているエントロピーエンコーダに対してビット長Ｎｘのそれぞれの新しいトランシェエントリを予約し、
大きい場合には、
前記選択部により、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダに、まだエントロピー符号化されていないシンボルがあればそれを転送して、有効なシンボルシーケンスへ拡張させ、その有効なシンボルシーケンスを符号語にマッピングさせて、対応する個別のバッファに予約させ、その後に、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリに対して、前記エントロピーエンコーダの個別のバッファに現在予約されているビット数Ｍｘ個が、そのエントロピーエンコーダのビット長Ｎｘより小さいかどうかをチェックし、そうであれば、Ｎｘ−Ｍｘを現在バッファリングされているＭｘビットへ追加し、その後、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダの個別のバッファからＮｘ個の予約されたビットを、前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを満たすためにこれに出力し、その際、予約されたＮｘビットを上回る可能性のある付加的にバッファリングされたビットは残しておく
構成を有する
エンコーダ。
【請求項３３】
請求項３２に記載のエンコーダにおいて、前記複数のエントロピーエンコーダのうち所定の１つが、より高頻度で選択されたエントロピーエンコーダであると期待され、前記所定のエントロピーエンコーダが１ビット長の符号語を単にサポートし、前記エンコーダが、前記それぞれの予約−トリガ型エントロピーエンコーダが前記所定のエントロピーエンコーダである場合、前記予約されたトランシェエントリによってカバーされた前記グローバルバッファ内のビット数プラス前記所定のエントロピーエンコーダに対して前記リクエストされたトランシェエントリのビット長Ｎｘが最大バッファ遅延Ｄより大きいかどうかをチェックする代わりに、
前記予約されるトランシェエントリによってカバーされる前記グローバルバッファ内のビット数プラス前記所定のエントロピーエンコーダに対して前記リクエストされたトランシェエントリの前記ビット長Ｎｘが定義済みの閾値より大きいかどうか（Ｄ２＜Ｄ）をチェックし、
前記定義済みの閾値Ｄ２より大きい場合、
予約されているが未だ完全に書き込まれていないトランシェエントリのいずれかの予約を最も長い間トリガしていないエントロピーエンコーダを決定し、
前記決定されたエントロピーエンコーダにより、前記選択部により前記エントロピーエンコーダへ転送された、あれば、未だエントロピー符号化されていないシンボルを、有効シンボルシーケンスへ拡張させ、前記決定されたエントロピーエンコーダの前記個別のバッファによってバッファリングされるように前記有効シンボルシーケンスを符号語にマッピングさせ、
前記決定されたエントロピーエンコーダの前記個別のバッファ内で現在バッファリングされているビットを前記所定のエントロピーエンコーダの前記個別のバッファへ変位させ、
前記未だ完全に書き込まれていないトランシェエントリの予約を前記決定されたエントロピーエンコーダから前記所定のエントロピーエンコーダへ変更する、
エンコーダ。
【請求項３４】
シンボルシーケンスを復元するデコーダであって、
各々がそれぞれのビットストリームをシンボルへ変換する複数のエントロピーデコーダと、
前記シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボル（２５）へ複数のパラメータを割り当てる割当部と、
複数のエントロピーデコーダのうち選択された１つから復元されるシンボルシーケンスの各シンボルを検索し、その選択を前記それぞれのシンボルに対して定義付けられたパラメータに応じて行う選択部と、
を備え、
前記エントロピーデコーダは各々、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
前記デコーダは、ビットストリーム（６０）のトランシェがインターリーブされて散在する単一ストリーム（６２）を受信し、前記トランシェへのリクエストが発生する順に応じて前記複数のエントロピーデコーダへ前記トランシェを順次分配するグローバルバッファを備え、
前記複数のエントロピーデコーダは各々、前記複数のエントロピーデコーダから、前記選択部により検索されるときに復元される前記シンボルシーケンスの前記シンボルのうち、前記エントロピーデコーダの各々によってそれぞれのビットストリーム内の新しい符号語からマッピングされる新しいシンボルシーケンスの初期部分を形成するシンボルに遭遇するときに、前記グローバルバッファからそれぞれのビットストリームのそれぞれのビット長Ｎｘのトランシェに対してそれぞれのリクエストをトリガし、その際、それぞれの時点で、前記グローバルバッファによって前記エントロピーデコーダの各々へ分配されていたが、新しい符号語を含めて、それまで、前記エントロピーデコーダによって未だにエントロピー復号化されていなかったそれぞれのビットストリームのビット数Ｍｘ個が所定の数を下回ることを前提としており、
エントロピーデコーダごとに、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたビット数を、前記グローバルバッファから前記エントロピーデコーダの各々まで分配させた最も長い間分配されていないトランシェの分配に至るまで、ロギングし、
それぞれのビット長Ｎｘのトランシェに対するそれぞれのリクエストがトリガされる度ごとに、一方で、前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたグローバルビット数と、他方で、ロギングされた最小ビット数と、の差が、最大バッファ遅延Ｄより大きいかどうかを判断し、
大きい場合には、
前記グローバルバッファから前記ロギングされた最小数がロギングされていた前記エントロピーデコーダまで分配させた前記最も長い間予約されていないトランシェと、前記ロギングされた最小数が前記選択部によりロギングされている前記エントロピーデコーダから未だ検索されていない任意のシンボルと、を廃棄する
デコーダ。
【請求項３５】
請求項３４に記載のデコーダにおいて、前記複数のエントロピーデコーダのうち、所定の１つがより高頻度で選択されるエントロピーデコーダであると期待され、前記所定のエントロピーデコーダが１ビット長の符号語を単にサポートし、前記デコーダが、前記それぞれのリクエストが前記所定のエントロピーデコーダに由来する場合、一方で前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分布させたグローバルビット数と、他方で、ロギングされた最小ビット数と、の差が最大バッファ遅延Ｄより大きいかどうかを判断する代わりに、
一方で前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分布させたグローバルビット数と、他方でロギングされた最小ビット数と、の差が定義済みの閾値より大きいかどうか（Ｄ２＜Ｄ）をチェックし、
前記定義済みの閾値Ｄ２より大きい場合、
前記ロギングされた最小数が前記選択部によりロギングされている前記エントロピーデコーダから未だ検索されていないシンボルを切り捨て、
前記所定のエントロピーデコーダによって復号化されるように、前記グローバルバッファから前記ロギングされた最小数がロギングされている前記エントロピーデコーダへ分布させたトランシェの非復号化部分を再方向付けする、
デコーダ。
【請求項３６】
シンボルシーケンスを符号化するエンコーダであって、
前記シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当てる割当部と、
各々が、転送されてきたシンボルをそれぞれのビットストリームに変換する複数のエントロピーエンコーダと、
各々のシンボルを、それぞれのシンボルに割り当てられた前記複数のパラメータに依存して前記複数のエントロピーエンコーダから選択される１つのエントロピーエンコーダに転送する選択部と、
を備え、
前記複数のエントロピーエンコーダは各々、シンボルシーケンスを、それぞれの最大ビット長Ｌｘ以下の長さの符号語にマッピングする可変長コーダであり、
前記複数のエントロピーエンコーダの各々に対して設けられ、そのエントロピーエンコーダのそれぞれのビットストリームをバッファリングする個別のバッファと、
前記複数のエントロピーエンコーダに対して、トランシェのエントリのシーケンスを、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約するグローバルバッファと、
を備え、
前記複数のエントロピーエンコーダおよび前記個別のバッファは、前記選択部により前記複数のエントロピーエンコーダへ転送された前記シンボルシーケンスの前記シンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記エントロピーエンコーダのそれぞれの１つに対してビット長Ｎｘのトランシェエントリの予約をトリガするように協働し、その際、前記それぞれの時点で、前記それぞれのエントロピーエンコーダに対する前記グローバルバッファ内に現在予約されているビット数と、前記それぞれのエントロピーエンコーダの前記個別のバッファ内または前記それぞれのエントロピーエンコーダに対する前記グローバルバッファ内で現在バッファリングされているビット数Ｍｘ個と、の差が所定の基準を満たしていないことを前提とし、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリを満たし、前記グローバルベッファは、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、複数のビットストリームのビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを獲得し、
前記エンコーダはさらに、前記トランシェの単一ストリームをチャンクに断片化するフラグメンタイザをさらに備え、各チャンクには、前記複数のエントロピーエンコーダのトランシェがどのようにそれぞれのチャンクに分散してチャンクのシーケンスが得られたかの情報を含む、
エンコーダ。
【請求項３７】
請求項３６記載のエンコーダにおいて、前記フラグメンタイザは、前記トランシェの単一ストリームをチャンクに断片化し、順序を変える
エンコーダ。
【請求項３８】
シンボルシーケンスを復元するデコーダであって、
各々がそれぞれのビットストリームをシンボルへ変換する複数のエントロピーデコーダと、
前記シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボルへ複数のパラメータを割り当てる割当部と、
複数のエントロピーデコーダのうち選択された１つから復元されるシンボルシーケンスの各シンボルを検索し、その選択を前記それぞれのシンボルに対して定義付けられたパラメータに応じて行う選択部と、
を備え、
前記エントロピーデコーダは各々、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
前記デコーダはさらに、前記複数のエントロピーエンコーダの前記トランシェが前記それぞれのチャンクに対してどのように分布されているかについての情報がそれぞれ添付されているチャンクのシーケンスから、前記トランシェの単一ストリームの再構成するデフラグメンタイザをさらに含む、
デコーダ。
【請求項３９】
シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当て、
各シンボルを複数のエントロピーエンコーダの選択された１つに転送し、その選択はそのシンボルに割り当てられたパラメータに応じて行われ、前記複数のエントロピーエンコーダは各々、シンボルシーケンスを符号語にマッピングする可変長コーダであって、転送されたシンボルをそれぞれのビットストリームへ変換する
シンボルシーケンスの符号化方法において、
前記エントロピーデコーダは各々、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
各エントロピーエンコーダに対して、そのエントロピーエンコーダのビットストリームを各個別のバッファにバッファリングし、
前記複数のエントロピーエンコーダに対して、それぞれビット長Ｎｘの切片となるトランシェのエントリのシーケンスを、グローバルバッファ内に、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約し、
前記選択部により前記複数のエントロピーエンコーダに転送されたシンボルシーケンスのシンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点で予約されているビット数と、その時点で前記それぞれのエントロピーエンコーダに対する前記個別のバッファ内、または前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点でバッファリングされているビット数Ｍｘとの差が、所定の基準を満たしていないことを前提とし、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリを満たし、
前記グローバルベッファから、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、複数のビットストリームのビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを獲得し、
前記個別のバッファからビットストリームの蓄えられた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリをトランシェエントリ単位で満たし、
前記複数のエントロピーエンコーダと前記個別のバッファのいずれかによるそれぞれの予約のトリガ時に、
予約されてから最も時間が経過して既に満たされているトランシェエントリから、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリは除いて、前記トランシェエントリ単位で順に、前記トランシェエントリのうち満たされたトランシェエントリの取り出しを完了し、その後に、
予約ささたトランシェエントリによってカバーされる前記グローバルバッファ内のビット数と、それぞれ予約−トリガを行っているエントロピーエンコーダのビット長Ｎｘとの和が、最大バッファ遅延Ｄより大きいかどうかをチェックし、
大きくない場合には、
前記それぞれ予約−トリガを行っているエントロピーエンコーダに対してビット長Ｎｘのそれぞれの新しいトランシェエントリを予約し、
大きい場合には、
前記選択部により、予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダに、まだエントロピー符号化されていないシンボルがあればそれを転送して、有効なシンボルシーケンスへ拡張させ、その有効なシンボルシーケンを符号語にマッピングさせて、対応する個別のバッファに予約させ、その後に、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリに対して、前記エントロピーエンコーダの個別のバッファに現在予約されているビット数Ｍｘ個が、そのエントロピーエンコーダのビット長Ｎｘより小さいかどうかをチェックし、そうであれば、Ｎｘ−Ｍｘを現在バッファリングされているＭｘビットへ追加し、その後、
前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを予約しているエントロピーエンコーダの個別のバッファからＮｘ個の予約されたビットを、前記予約されてから最も時間が経過してもまだ満たされていないトランシェエントリを満たすためにこれに出力し、その際、予約されたＮｘビットを上回る可能性のある付加的にバッファリングされたビットは残しておく
シンボルシーケンスの符号化方法。
【請求項４０】
各々がそれぞれのビットストリームをシンボルに変換する複数のエントロピーデコーダを用いてシンボルシーケンスを復元する方法であって、
シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボルへ複数のパラメータを割り当て、
複数のエントロピーデコーダの選択された１つから復元される前記シンボルシーケンスの各シンボルを検索し、この選択は、それぞれのシンボルに対して定義付けられたパラメータに応じて行う
シンボルシーケンスの復元方法において、
各エントロピーデコーダは、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
ビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームをグローバルバッファに受信し、
前記トランシェへのリクエストが発生する順に応じてグローバルバッファから前記前記複数のエントロピーデコーダへ前記トランシェを順次分配し、
前記複数のエントロピーデコーダの各々に対し、前記複数のエントロピーデコーダから、前記選択部により検索されるときに復元される前記シンボルシーケンスの前記シンボルのうち、前記エントロピーデコーダの各々によってそれぞれのビットストリーム内の新しい符号語からマッピングされる新しいシンボルシーケンスの初期部分を形成するシンボルに遭遇するときに、前記グローバルバッファからそれぞれのビットストリームのそれぞれのビット長Ｎｘのトランシェに対してそれぞれのリクエストをトリガし、
エントロピーデコーダごとに、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたビット数を、前記グローバルバッファから前記エントロピーデコーダの各々まで分配させた最も長い間分配されていないトランシェの分配に至るまで、ロギングし、
それぞれのビット長Ｎｘのトランシェに対するそれぞれのリクエストがトリガされる度ごとに、一方で、前記それぞれのリクエストに至るまで、前記グローバルバッファから前記複数のエントロピーデコーダへ分配させたグローバルビット数と、他方で、ロギングされた最小ビット数と、の差が、最大バッファ遅延Ｄより大きいかどうかを判断し、
大きい場合には、
前記グローバルバッファから前記ロギングされた最小数がロギングされていた前記エントロピーデコーダまで分配させた前記最も長い間予約されていないトランシェと、前記ロギングされた最小数が前記選択部によりロギングされている前記エントロピーデコーダから未だ検索されていない任意のシンボルと、を廃棄する
シンボルシーケンスの復元方法。
【請求項４１】
シンボルシーケンスの各々のシンボルに、そのシンボルシーケンスの前のシンボル内に含まれていた情報に基づいて、複数のパラメータを割り当て、
各シンボルを複数のエントロピーエンコーダの選択された１つに転送し、その選択はそのシンボルに割り当てられたパラメータに応じて行われ、前記複数のエントロピーエンコーダは各々、シンボルシーケンスを符号語にマッピングする可変長コーダであって、転送されたシンボルをそれぞれのビットストリームへ変換する
シンボルシーケンスの符号化方法において、
前記エントロピーデコーダは各々、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
各エントロピーエンコーダに対して、そのエントロピーエンコーダのビットストリームを各個別のバッファにバッファリングし、
前記複数のエントロピーエンコーダに対して、それぞれビット長Ｎｘの切片となるトランシェのエントリのシーケンスを、グローバルバッファ内に、前記複数のエントロピーエンコーダのためのトランシェ分のエントリの予約がトリガされる順番によって決まるシーケンシャルな順番で予約し、
前記選択部により前記複数のエントロピーエンコーダに転送されたシンボルシーケンスのシンボルが、新しいシンボルシーケンスの始まりとなって、それぞれのエントロピーエンコーダで符号語にマッピングされるときに、前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点で予約されているビット数と、その時点で前記それぞれのエントロピーエンコーダに対する前記個別のバッファ内、または前記それぞれのエントロピーエンコーダに対して前記グローバルバッファ内にその時点でバッファリングされているビット数Ｍｘとの差が、所定の基準を満たしていないことを前提とし、
前記複数のエントロピーエンコーダの前記個別のバッファは、前記ビットストリームのバッファリングされた部分を出力して、前記グローバルバッファ内のそれぞれ予約されたトランシェエントリを満たし、前記グローバルベッファから、トランシェエントリのうち満たされたトランシェエントリを順に取り出して、複数のビットストリームのビットストリームのトランシェの単一ストリームであってこのトランシェの単一ストリームにインターリーブされて散在するトランシェの単一ストリームを獲得し、
前記トランシェの単一ストリームをチャンクに断片化して、各チャンクに、前記複数のエントロピーエンコーダのトランシェがどのようにそれぞれのチャンクに分散してチャンクのシーケンスが得られたかの情報を添付する
シンボルシーケンスの符号化方法。
【請求項４２】
各々がそれぞれのビットストリームをシンボルに変換する複数のエントロピーデコーダを用いてシンボルシーケンスを復元する方法であって、
シンボルシーケンスの前に復元されたシンボル内に含まれる情報に基づいて復元されるシンボルシーケンスの各シンボルへ複数のパラメータを割り当て、
複数のエントロピーデコーダの選択された１つから復元される前記シンボルシーケンスの各シンボルを検索し、この選択は、それぞれのシンボルに対して定義付けられたパラメータに応じて行う
シンボルシーケンスの復元方法において、
各エントロピーデコーダは、符号語をシンボルシーケンスにマッピングする可変長デコーダであり、
前記複数のエントロピーエンコーダの前記トランシェが前記それぞれのチャンクに対してどのように分布されているかについての情報がそれぞれ添付されているチャンクのシーケンスから、前記トランシェの単一ストリームの再構成する
シンボルシーケンスの復元方法。
【請求項４３】
コンピュータ実行時に、請求項１７、３１、３９、４０、４１、または４２に記載の方法を実行するためのプログラムコードを有するコンピュータプログラムを格納しているコンピュータ読出し可能なデジタル記憶媒体。
【国際調査報告】
2014534677.tif 000131
2014534677.tif 000132
2014534677.tif 000133
2014534677.tif 000134