(57)【特許請求の範囲】
【請求項１】
複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、ピクセルのブロックに対して変換符号化演算が実行されて対応する変換係数値のブロックを生成し、前記変換係数値のブロックは、所定のスキャン順序でスキャンされてスキャンされた係数値の配列が生成され、前記スキャンされた配列中の前記係数値は、複数の数値ペアにより表され、該数値ペアは、第１の数値および第２の数値を有しており、前記第１および前記第２の数値は、前記数値ペアを表す複数のコンテキストの１つに割り当てられる画像符号化方法であって、
前記複数のコンテキストは、コンテキストベースの算術コーダのコンテキストであり、
数値ペアの前記第１の数値は、別の数値ペアの第１の数値に基づいてコンテキストに割り当てられることを特徴とする方法。
【請求項２】
前にコンテキストに割り当てられた数値ペアの前記第１の数値に基づいて、数値ペアの前記第１の数値がコンテキストに割り当てられることを特徴とする請求項１に記載の方法。
【請求項３】
前記複数のコンテキストは、コンテキストベースの２値算術コーダのコンテキストであることを特徴とする請求項１または２に記載の方法。
【請求項４】
前記数値ペアの前記第１の数値はビンのセットに写像され、前記ビンのセットの各々は、関連したビン番号を有し、第１の値または第２の値のどちらか１つを取り得ることを特徴とする請求項３に記載の方法。
【請求項５】
前記数値ペアの前記第２の数値はビンのセットに写像され、前記ビンのセットの各々は、関連したビン番号を有し、第１の値または第２の値のどちらか１つを取り得ることを特徴とする請求項３に記載の方法。
【請求項６】
前記ビンのセットの所定の１つへの数値の写像は、前記ビンを前記第１の値に割り当てることにより示されることを特徴とする請求項４または５に記載の方法。
【請求項７】
前記第１の値は１であり、前記第２の値は０であることを特徴とする請求項４ないし６のいずれか一項に記載の方法。
【請求項８】
別の数値ペアの前記第１の数値に基づくコンテキストへの数値ペアの前記第１の数値の割り当ては、前記数値ペアの前記第１の数値が写像される前記ビン番号を考慮に入れることを特徴とする請求項４ないし７のいずれか一項に記載の方法。
【請求項９】
前記第１の数値は非ゼロ係数値を示すこと、および
前記第２の数値は、前記非ゼロ係数値に先行する連続したゼロ係数の個数を示すことを特徴とする請求項１ないし８のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、静止画像およびビデオシーケンスの圧縮に関し、より具体的には、コンテキストベースの適応２値算術符号化方法およびシステムに関する。
【背景技術】
【０００２】
非圧縮形式のデジタル画像は、画像ピクセルすなわち画素の配列を含む。例えば、クオーター共通交換形式（Quarter Common Interchage Format）（ＱＣＩＦ）として知られる、一般に用いられるデジタル画像形式において、画像、すなわちフレームは、１７６×１４４ピクセルの配列で配置された２５，３４４個のピクセルを含む。次に各ピクセルは、ピクセルの明るさ（輝度）および／または色（クロミナンス）についての情報を伝えるある数のビットにより表される。デジタル画像中のピクセルの輝度および／またはクロミナンスを表すための種々の方式が存在する。一般的に、いわゆるＹＵＶカラーモデルが用いられる。輝度、すなわちＹ成分は、ピクセルの輝度を表すのに対して、ピクセルの色は、２つのクロミナンスすなわち色差成分であるラベル付けされたＵおよびＶにより表される。光の３原色を表す成分に基づくＲＧＢ（赤、緑、青）カラーモデルのような他のカラーモデルも一般的に用いられる。しかしながら、原色に基づくカラーモデルと比較して、輝度／クロミナンス表現に基づくカラーモデルには利点がある。これらの利点は、色の変化に対するよりも強度の変化に対してより敏感である人間の視覚系の性質に由来する。ＹＵＶカラーモデルは典型的には、輝度成分（Ｙ）よりもクロミナンス成分（Ｕ、Ｖ）についてより低い空間分解能を用いることにより、この特性を利用する。このように、知覚された画質が顕著に低下することなく、画像中の色情報を表すために必要とされる情報量を低減できる。
【０００３】
クロミナンス成分のより低い空間分解能は、通常、サブサンプリングによって達成される。典型的には、１６×１６画像ピクセルのブロックが、輝度情報を含む８×８ピクセルの４つのブロックにより表され、対応するクロミナンス成分は、輝度成分中の１６×１６ピクセルのブロックに等しい画像領域を表す８×８ピクセルの１つのブロックにより各々表される。クロミナンス成分はこのように、ｘおよびｙ方向において２のファクターにより空間的にサブサンプリングされる。結果として生じる、４つの８×８ピクセル輝度ブロックと空間的に対応する２つの８×８ピクセルクロミナンスブロックとのアセンブリは一般的に、ＹＵＶマクロブロック、または略してマクロブロックと呼ばれる。ＱＣＩＦ画像は、そのようなマクロブロックを１１×９個含む。もし輝度ブロックおよびクロミナンスブロックが、８ビット分解能により（つまり、０から２５５の範囲の数により）表されれば、各マクロブロックに関連した輝度およびクロミナンス情報を表すために必要な総ビット数は、６×（８×８×８）＝３０７２ビットである。従って、ＱＣＩＦ形式の画像を表すために必要なビット数は、９９×３０７２＝３０４，１２８ビットである。
【０００４】
デジタルカラー画像の双方のクロミナンス成分が２のファクターによりサブサンプリングされる上記の状況においてさえ、ほんの中程度サイズ（例えば、１７６×１４４ピクセル）の非圧縮画像が、これを表現するために多くのビットを必要とすることが認識されなければならない。このことは、非圧縮形式のデジタル画像を記憶するために必要とされるメモリー量が極端に大きいことを意味している。さらに、もし静止画像が、例えば利用可能な帯域幅が中程度ないし低いデータ通信ネットワーク上を転送されるのであれば、伝送時間が非常に長引いたり、ネットワークが輻輳したりすることがある。もしデジタルビデオシーケンスとして一連の画像をリアルタイムで伝送することが要求されれば、帯域幅要件はいっそう厳しいものになる。例えば、ＹＵＶカラーモデルを用いて表される、未圧縮ＱＣＩＦ形式の一連の画像を含むデジタルビデオシーケンスを毎秒３０フレームのレートで伝送するには、９メガビット／秒（毎秒１００万ビット）以上が要求される。そのような高いデータレートは、必要とされる記憶容量、伝送チャンネル容量およびハードウェア性能が非常に大きいため、ビデオ記録、伝送および表示の用途に使用するのは一般に非現実的である。もしビデオシーケンスが、ＩＳＤＮ（Integrated Services Digital Network：統合サービスデジタル網）またはＰＳＴＮ（Public Service Telephone Network：公衆電話網）のような固定回線網上をリアルタイムで伝送されるのであれば、利用可能なデータ伝送帯域幅は、典型的には６４キロビット／秒のオーダーである。伝送が少なくとも部分的に無線通信リンク上で行われる移動ビデオ電話技術において、利用可能な帯域幅は２０キロビット／秒と低くなることがある。このことは、低帯域幅通信網上でのデジタル画像またはビデオシーケンスの伝送を可能にするために、ビデオデータを表すために用いられる情報量のかなりの低減を達成しなければならないことを意味している。それでもやはり、画像／ビデオシーケンスの品質を大きく劣化させることなくこの低減が達成されることが望ましい。
【０００５】
過去何年にもわたり、デジタル画像およびビデオシーケンスを表すために必要とされるデータ量の低減に多くの研究活動が傾注されてきており、その結果、デジタル静止画像およびデジタルビデオを圧縮するための多くの様々な方式および国際規格が開発された。今日存在するほとんどすべての静止画像およびビデオのエンコーダにおいて用いられる画像圧縮の基本的手法は、ブロックベースの変換符号化を伴う。典型的には、変換符号化は、画像データを、ピクセル値を含む表現から、係数値のセットを含む形式へ翻訳する。計数値の各々は、当該変換の基底関数のための加重係数（乗数）である。典型的なデジタル画像内にかなりの程度の空間的冗長性があることを示し得る。実際面では、このことは、一般に画像内の任意のピクセルの値は、そのすぐ近傍の他のピクセルの値と実質的に同じであること、すなわち、ピクセル値の間には相当の相関関係があることを意味している。２次元離散コサイン変換（ＤＣＴ）のような特定の数学的変換が画像データに対して実行されると、この空間的冗長性が大きく低減され、それによって、画像データのよりコンパクトな表現が生成されることがさらに知られている。
【０００６】
ＪＰＥＧ静止画像符号化において用いられるブロックベースの変換符号化
広く使用されているＪＰＥＧ規格のベースラインモードに従って実行されるような静止画像圧縮において、符号化される画像は最初に、各ブロックが、例えば画像ピクセルの８×８配列を含む重複しない正方形ブロックの配列に分割される。ＪＰＥＧベースラインの場合、次に２次元離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）が画像ブロックの各々に独立して適用される。これは、画像データをピクセル値領域から空間周波数領域へ変換して対応する計数値のセットを生成する効果があり、計数値の各々は、２次元ＤＣＴの基底関数のための加重ファクターである。このようにして生成された係数値は量子化され、次に、それらの表現に必要なデータ量（すなわち、ビット数）をさらに減らすために、エントロピー符号化を用いて無損失な方法で符号化される。ＪＰＥＧベースラインによれば、エントロピーコーダは、ハフマン符号化のみを使用して圧縮ビットストリームを生成する。なお、他のモードでは算術符号化を代わりに用い得る。最後に、画像および符号化のパラメータ（例えば、圧縮タイプ、量子化および符号化テーブル、画像サイズ等）を記述するデータが、エントロピーエンコーダにより生成されたビットストリーム中に埋め込まれる。ＪＰＥＧ規格が４つの代替符号化モードを含んでおり、量子化および使用できる符号化テーブルに制約をほとんど加えないので、これは、ＪＰＥＧ圧縮ビットストリームが種々のプラットホーム間で交換されることおよびどのような曖昧性もなく画像が再構成されることを可能にするために必要である。
【０００７】
フィルム上に記録された普通の映画のようなデジタルビデオシーケンスは、一連の静止画像（「フレーム」と呼ばれることが多い）を含み、動きの幻覚は、そのフレームを比較的高速で、典型的には毎秒１５ないし３０フレームで次々に表示することによって作り出される。任意の静止画像中におけるように、デジタルビデオシーケンス内の個々のフレームのピクセル値は、かなりの空間冗長性を示す。従って、デジタルビデオシーケンスのフレームは、ちょうど個々の静止画像のように、ブロックベースの変換符号化に適する。
【０００８】
ビデオシーケンスの連続したフレーム中の画像も、かなり類似する傾向があり、従って、１つのビデオフレームと次のビデオフレームとの間の全体的変化はかなり小さい。このことは、典型的なデジタルビデオシーケンス内に相当な時間的冗長性があることを意味している。例えば、１つの場面は、背景のようないくつかの静止要素と、いくつかの動く領域、例えばニュースキャスターの顔とを含み得る。シーケンスの連続フレーム中では、背景が変更されないままであり、場面中の唯一の動きがニュースキャスターの表情の変化に起因するということがあり得る。従って、ビデオシーケンスの圧縮された表現を形成する場合、空間冗長性を減らす方法に加えてシーケンスの画像データの時間的冗長性を減らす手法を用いる可能性もあり、その結果、さらなるデータ圧縮を達成することが可能になる。
【０００９】
ハイブリッドビデオエンコーダ／デコーダ
従来技術のビデオ符号化システムは、ビデオシーケンス中の時間的冗長性を減らすために「動き補償予測」として知られている手法を利用する。動き補償予測を使用すると、デジタルビデオシーケンス中のいくつか（しばしば多く）のフレームの画像内容が、「参照フレーム」として知られるシーケンスの１つ以上の他のフレームから「予測される」。画像内容の予測は、符号化（圧縮）されるフレームと参照フレームとの間での画像のオブジェクトまたは領域の動きを「動きベクトル」を用いてトレースすることによって達成される。一般に、参照フレームは、ビデオシーケンス中で、符号化されるフレームに先行するかこれに続くことができる。しかしながら、本明細書中の後の議論から明らかになるように、動き補償予測をビデオシーケンスのすべてのフレームに適用することは適当（または可能）ではなく、従って、少なくとも２種類の符号化が従来技術のビデオ符号化システムにおいて使用される。
【００１０】
動き補償予測を用いて圧縮されるビデオシーケンスのフレームは、ＩＮＴＥＲ符号化またはＰフレームと一般に呼ばれる。ビデオフレームの画像内容の十分に精密な表現が動き補償予測単独で提供されることはめったになく、従って、各ＩＮＴＥＲ符号化フレームをいわゆる「予測エラー」（ＰＥ）フレームに設けることが一般に必要である。後に本明細書中でより詳細に説明されるように、予測エラーフレームは、ＩＮＴＥＲ符号化フレームのデコードされたバージョンと符号化されるフレームの画像内容との間の差分を表す。より具体的には、予測エラーフレームは、符号化されるフレーム中のピクセル値と当該フレームの予測された（ＩＮＴＥＲ符号化された）バージョンに基づいて形成された対応する再構築されたピクセル値との間の差分を表す値を含む。その結果、予測エラーフレームは、静止画像と同様な特徴を有し、静止画像を表すのに必要なデータ量（ビット数）を減らすためにブロックベースの変換符号化が適用できる。
【００１１】
動き補償予測を用いて圧縮されないビデオシーケンスのフレームは、ＩＮＴＲＡ符号化またはＩフレームと呼ばれる。一般に、ＩＮＴＲＡ符号化されたフレームは、符号化されるフレームのピクセル値にブロックベースの変換符号化を直接適用することによって生成される。さらに、可能な場合には、ＩＮＴＲＡ符号化されたフレームのブロックは、同じフレーム内の前に符号化されたブロックから予測される。ＩＮＴＲＡ予測として知られているこの手法は、ＩＮＴＲＡ符号化されたフレームを表すために必要なデータ量をさらに減らす効果がある。
【００１２】
ブロックベースの変換符号化および動き補償予測の原理をより詳細に例示するため、図１を参照するが、この図は、圧縮された（符号化された）ビデオビットストリームを生成すためにＩＮＴＲＡ符号化とＩＮＴＥＲ符号化との組み合わせを使用する一般的なハイブリッドビデオエンコーダの概略図である。対応するデコーダが図２に例示されており、本明細書中で後に説明される。
【００１３】
ビデオエンコーダ３００は、カメラまたは他のビデオソース（図示せず）からデジタルビデオ信号を受信するための入力３０１を備えている。エンコーダは、ブロックベースの離散コサイン変換（ＤＣＴ）を実行するように構成された変換ユニット３０４、量子化器３０６、逆量子化器３０８、逆ブロックベースの離散コサイン変換（ＩＤＣＴ）を実行するように構成された逆変換ユニット３１０、結合器３１２および３１６、ならびにフレーム記憶装置３２０も含んでいる。エンコーダは、動き推定器３３０、動き場コーダ３４０、および動き補償予測器３５０をさらに備えている。スイッチ３０２および３１４は、エンコーダをビデオ符号化のＩＮＴＲＡモードとビデオ符号化のＩＮＴＥＲモードとの間で切り替えるために、コントロールマネージャー３６０により協調的に操作される。エンコーダ３００は、遠方の受信端末へさらに伝送するため、または、例えば、コンピュータハードドライブのような大容量記憶媒体（図示せず）に記憶するためにエンコーダ３００によって生成された種々のタイプの情報から、単一ビットストリーム３３５を形成するビデオ多重コーダ３７０も備えている。
【００１４】
エンコーダ３００は以下の通り動作する。ビデオソースから入力３０１へ提供される非圧縮ビデオの各フレームは、受信され、好ましくはラスタ−スキャン方式でマクロブロックごとに処理される。新しいビデオシーケンスの符号化が開始すると、シーケンスの最初のフレームが、ＩＮＴＲＡ符号化フレームとして符号化される。その後、１）符号化されている現在のフレームが、その予測に用いられる参照フレームと非常に異なるため、過剰な予測エラー情報が生成されると判定される、２）あらかじめ定義されたＩＮＴＲＡフレーム繰返し間隔が満了した、または、３）フレームがＩＮＴＲＡ符号化形式で提供されることを要求する受信端末からのフィードバックが受信される、という条件の１つが満たされない限り、エンコーダは各フレームをＩＮＴＥＲ符号化形式で符号化するようにプログラムされる。
【００１５】
条件１）の発生は、結合器３１６の出力を監視することにより検出される。結合器３１６は、符号化されているフレームの現在のマクロブロックと、動き補償予測ブロック３５０において生成される予測との間の差分を形成する。もしこの差分の測定値（例えば、ピクセル値の絶対差分の合計）が、所定のしきい値を超過すれば、結合器３１６はコントロールライン３１９を介してコントロールマネージャー３６０に通知し、コントロールマネージャー３６０は、エンコーダ３００をＩＮＴＲＡ符号化モードに切り替えるため、コントロールライン３１３を介してスイッチ３０２および３１４を操作する。条件２）の発生は、タイマーが満了するかフレームカウンターがフレームの所定数に達すれば、コントロールマネージャー３６０が、スイッチ３０２および３１４を操作して、コントロールライン３１３を介してエンコーダをＩＮＴＲＡ符号化モードに切り替えるように、コントロールマネージャー３６０に実装されたタイマーまたはフレームカウンターよって監視される。もしコントロールマネージャー３６０が、ＩＮＴＲＡフレームリフレッシュが受信端末により要求されていることを示すフィードバック信号を、例えば受信端末から、コントロールライン３２１を介して受信すれば、条件３）が起動される。例えば、前に伝送されたフレームが、その伝送の間の干渉によりひどく損なわれ、受信器においてデコードすることが不可能になれば、そのような条件が生じることがある。この状況において、受信デコーダは、次のフレームがＩＮＴＲＡ符号化形式で符号化されるように要求を出し、それにより、符号化シーケンスを再初期化する。
【００１６】
ＩＮＴＲＡ符号化モードにおけるエンコーダ３００の操作を説明する。ＩＮＴＲＡ符号化モードにおいて、コントロールマネージャー３６０は、スイッチ３０２を操作して入力ライン３１８からビデオ入力を受け入れる。ビデオ信号入力は、入力３０１から入力ライン３１８を介してマクロブロックごとに受信される。それらが受信されると、マクロブロックを構成する輝度およびクロミナンス値のブロックがＤＣＴ変換ブロック３０４に送られ、この変換ブロックは、値の各ブロックに対して２次元離散コサイン変換を実行して、各ブロックについてＤＣＴ係数の２次元配列を生成する。各マクロブロックが、輝度値の８×８ピクセル４つと、空間的に対応するクロミナンス値の８×８ピクセル２つとを含む以前に説明したような状況において、ＤＣＴ変換ブロック３０４は、各ブロックについて係数値の８×８配列を生成する。
【００１７】
各ブロックについてのＤＣＴ係数は量子化器３０６に送られ、そこで量子化パラメータＱＰを用いて量子化される。量子化パラメータＱＰの選択は、コントロールライン３１５を介してコントロールマネージャー３６０により制御される。量子化により情報の損失が生じるが、これは、量子化された係数は、当初ＤＣＴ変換ブロック３０４により成生された係数よりも数値精度が低いからである。これにより、ビデオシーケンスの各画像を表すために必要なデータ量を低減できるさらなる機構がもたらされる。しかしながら、本質的に無損失なＤＣＴ変換とは異なり、量子化により生じたた情報の損失は、画質における不可逆的劣化を引き起こす。ＤＣＴ係数に適用される量子化の程度が大きくなればなるほど、画質の損失はより大きくなる。
【００１８】
各ブロックについての量子化されたＤＣＴ係数は、図１のライン３２５により示されるように、量子化器３０６からビデオ多重コーダ３７０に送られる。ビデオ多重コーダ３７０は、ジグザグスキャン手順を用いて各ブロックについての変換係数を順序付けする。この操作により、量子化された変換係数の２次元配列が、１次元配列に変換される。図３に示されるような典型的なジグザグスキャン順序は、係数を空間周波数のほぼ昇順に順序付けする。これも、１次元配列中により早く配置された係数がその配列中により遅く配置された係数よりも大きい絶対値を有する確率が強くなるように、係数をそれらの値に従って順序付ける傾向がある。これは、より低い空間周波数が画像ブロック内でより高い振幅を有する傾向があるからである。その結果、量子化された変換係数の１次元配列中の後ろの方の値は一般にゼロである。
【００１９】
ＤＣＴ変換係数のｒｕｎ−ｌｅｖｅｌ符号化
典型的には、ビデオ多重コーダ３７０は、１次元配列中の各非ゼロ量子化された係数を、ｌｅｖｅｌおよびｒｕｎと呼ばれる２つの値で表す。ｌｅｖｅｌは、量子化された係数の値であり、ｒｕｎは、当該係数に先行する連続したゼロ値係数の個数である。ある特定の係数についてのｒｕｎおよびｌｅｖｅｌ値は、ｌｅｖｅｌ値が、関連するｒｕｎ値に先行するように順序付けされる。ゼロに等しいｌｅｖｅｌ値は、ブロック中に非ゼロ係数値がもはやないことを示すために用いられる。この０−ｌｅｖｅｌ値は、ＥＯＢ（end-of-block：ブロック終結）記号と呼ばれる。
【００２０】
エントロピー符号化
ｒｕｎおよびｌｅｖｅｌ値は、ビデオ多重コーダ３７０中でエントロピー符号化を用いてさらに圧縮される。エントロピー符号化は、符号化されるデータ集合内のシンボルが様々な発生確率を一般に有しているという事実を利用する無損失演算である。従って、各シンボルを表すために固定のビット数を用いる代わりに、発生する確率がより高いシンボルが、より少ないビットを有する符号語により表されるように、可変のビット数が割り当てられる。この理由から、エントロピー符号化はしばしば可変長符号化（Variable Length Coding：ＶＬＣ）と呼ばれる。ｌｅｖｅｌおよびｒｕｎの特定の値は他の値よりも発生する確率が高いので、エントロピー符号化手法は、ｒｕｎおよびｌｅｖｅｌ値を表すのに必要なビット数を減らすために効果的に用い得る。いくつかの異なる方法を、エントロピー符号化の実施に用いることができる。例えば、ｒｕｎおよびｌｅｖｅｌパラメータのエントロピー符号化は、符号化されるデータのセット中の各可能な記号とその対応する可変長コードとの間の写像を定義するルックアップテーブルを用いて実施できる。そのようなルックアップテーブルは、符号化されるシンボルと同一のシンボルを含みかつ同様な統計的特性を有するトレーニングマテリアルの統計解析により定義されることが多い。算術符号化として知られている別の手法も、ｒｕｎおよびｌｅｖｅｌ値を可変長符号語に変換するために用い得る。算術符号化において、シンボルのグループ、例えば、量子化された変換係数のブロックについてのｒｕｎおよびｌｅｖｅｌ値は、浮動小数点１０進数として符号化される。
【００２１】
適切な方法を用いてｒｕｎおよびｌｅｖｅｌ値がひとたびエントロピー符号化されると、ビデオ多重コーダはさらに、それらの値を、当該情報の種類に適した可変長符号化方法を用いてやはりエントロピー符号化された制御情報と結合させて、符号化された画像情報の単一の圧縮されたビットストリーム３３５を形成する。
【００２２】
マクロブロックの局所的にデコードされたバージョンも、エンコーダ３００中で形成される。これは、量子化器３０６により出力された各ブロックについての量子化された変換係数を、逆量子化器３０８を通して送り、逆ＤＣＴ変換を逆変換ブロック３１０中で適用することによって行われる。このようにして、ピクセル値の再構成された配列が、マクロブロックの各ブロックについて構成される。その結果生じるデコードされた画像データは、結合器３１２に入力される。ＩＮＴＲＡ符号化モードにおいて、スイッチ３１４は、スイッチ３１４を介した結合器３１２への入力がゼロになるように設定される。このようにして、結合器３１２により実行される演算は、デコードされた画像データを変更されないまま送ることに等しい。
【００２３】
現在のフレームの以降のマクロブロックが受信され、前に説明されたエンコードおよびデコードステップを、ブロック３０４、３０６、３０８、３１０、および３１２で受けるにつれて、ＩＮＴＲＡ符号化されたフレームのデコードされたバージョンがフレーム記憶装置３２０中に蓄積される。現在のフレームの最後のマクロブロックがＩＮＴＲＡ符号化され、続いてデコードされた時、フレーム記憶装置３２０は、その後受信されるＩＮＴＥＲ符号化形式のビデオフレームを符号化する際に予測参照フレームとして使用するために利用可能な完全にデコードされたフレームを含んでいる。
【００２４】
ＩＮＴＥＲ符号化モードでのエンコーダ３００の演算を説明する。ＩＮＴＥＲ符号化モードにおいて、コントロールマネージャー３６０は、結合器３１６の出力を含むその入力をライン３１７から受信するためにスイッチ３０２を操作する。結合器３１６は、入力３０１からマクロブロックごとにビデオ入力信号を受信する。マクロブロックを構成する輝度およびクロミナンス値のブロックを結合器３１６が受信するにつれて、結合器は予測エラー情報の対応するブロックを形成する。予測エラー情報は、当該ブロックと、動き補償予測ブロック３５０において生成されたその予測との差分を表す。より具体的には、マクロブロックの各ブロックについての予測エラー情報は値の２次元配列を含み、値の各々は、符号化されている輝度またはクロミナンス情報のブロック中のピクセル値と、以下で説明される手順に従いそのブロックについての動き補償予測を形成することにより得られるデコードされたピクセル値との差分を表している。従って、各マクロブロックが、輝度値の８×８ピクセルブロック４つと、空間的に対応するクロミナンス値の８×８ピクセルブロック２つとを含む状況において、マクロブロックについての予測エラー情報は、輝度予測エラー値の８×８ブロック４つと、空間的に対応するクロミナンス予測エラー値の８×８ブロック２つとを同様に含んでいる。
【００２５】
マクロブロックの各ブロックについての予測エラー情報は、ＤＣＴ変換ブロック３０４に送られ、このブロックが、予測エラー値の各ブロックに対して２次元離散コサイン変換を実行して各ブロックについてＤＣＴ変換係数の２次元配列を生成する。従って、各マクロブロックについての予測エラー情報が、輝度予測エラー値の８×８ブロック４つと、空間的に対応するクロミナンス予測エラー値の８×８ブロック２つとを含む状況において、ＤＣＴ変換ブロック３０４は、各予測エラーブロックについて変換係数値の８×８配列を生成する。各予測エラーブロックについての変換係数は、量子化器３０６に送られ、そこで、ＩＮＴＲＡ符号化モードでのエンコーダの演算に関して上記で説明した方法と類似した方法で、量子化パラメータＱＰを用いて量子化される。やはり、量子化パラメータＱＰの選択は、コントロールライン３１５を介してコントロールマネージャー３６０により制御される。
【００２６】
マクロブロックの各ブロックについての予測エラー情報を表す量子化されたＤＣＴ係数は、図１のライン３２５により示されるように、量子化器３０６からビデオ多重コーダ３７０に送られる。ＩＮＴＲＡ符号化モードにおけるように、ビデオ多重コーダ３７０は、前に説明したジグザグスキャン手順（図３参照）を用いて各予測エラーブロックについての変換係数を順序付けし、次に、各非ゼロ量子化係数をｌｅｖｅｌおよびｒｕｎ値として表す。コーダは、ＩＮＴＲＡ符号化モードに関して上記で説明した方法と類似の方法で、エントロピー符号化を用いてｒｕｎおよびｌｅｖｅｌ値をさらに圧縮する。ビデオ多重コーダ３７０は、ライン３２６を介して動き場符号化ブロック３４０から動きベクトル情報（以下で説明される）を、そしてコントロールマネージャー３６０から制御情報も受信する。コーダは、動きベクトル情報をエントロピー符号化して、エントロピー符号化された動きベクトル、予測エラーおよび制御情報を含む符号化された画像情報の単一ビットストリーム３３５を形成する。
【００２７】
マクロブロックの各ブロックについての予測エラー情報を表す量子化されたＤＣＴ係数も、量子化器３０６から逆量子化器３０８へ送られる。ここで、それらは逆量子化され、結果的に生じる逆量子化されたＤＣＴ係数のブロックが逆ＤＣＴ変換ブロック３１０に適用され、そこで逆ＤＣＴ変換を受けて予測エラー値の局所的にデコードされたブロックを生成する。予測エラー値の局所的にデコードされたブロックは、次に結合器３１２に入力される。ＩＮＴＥＲ符号化モードにおいて、スイッチ３１４は、動き補償予測ブロック３５０により生成されるマクロブロックの各ブロックについての予測ピクセル値も結合器３１２が受信するように設定される。結合器３１２は、予測エラー値の局所的にデコードされたブロックの各々を、予測されたピクセル値の対応するブロックと結合して、再構成された画像ブロックを生成してそれらをフレーム記憶装置３２０内に格納する。
【００２８】
ビデオ信号の以降のマクロブロックがビデオソースから受信され、前に説明されたエンコードおよびデコードステップをブロック３０４、３０６、３０８、３１０、３１２で受けるにつれて、ＩＮＴＥＲ符号化されたフレームのデコードされたバージョンがフレーム記憶装置３２０中に蓄積される。フレームの最後のマクロブロックがＩＮＴＥＲ符号化され、続いてデコードされた時、フレーム記憶装置３２０は、その後受信されるＩＮＴＥＲ符号化形式のビデオフレームをエンコードする際の予測参照フレームとして使用するために利用可能な完全にデコードされたフレームを含む。
【００２９】
現在のフレームのマクロブロックについての予測の形成を説明する。ＩＮＴＥＲ符号化形式でエンコードされたどのようなフレームも、動き補償予測のための参照フレームを必要とする。このことは、必然的に，ビデオシーケンスをエンコードする時、エンコードされる最初のフレームは、それがシーケンス中の最初のフレームであろうと他のフレームであろうと、ＩＮＴＲＡ符号化された形式でエンコードされなければならないことを意味している。このことは、ひいては、ビデオエンコーダ３００がコントロールマネージャー３６０によりＩＮＴＥＲ符号化モードに切り替えられると、前にエンコードされたフレームを局所的にデコードすることによって形成された完全な参照フレームが、エンコーダのフレーム記憶装置３２０中ですでに利用可能であることを意味している。一般に、参照フレームは、ＩＮＴＲＡ符号化されたフレームかＩＮＴＥＲ符号化されたフレームを局所的にデコードすることによって形成される。
【００３０】
現在のフレームのマクロブロックについての予測形成における最初のステップは、動き推定ブロック３３０により実行される。動き推定ブロック３３０は、符号化されるフレームの現在のマクロブロックを構成する輝度およびクロミナンス値のブロックをライン３２８を介して受信する。動き推定ブロックは次に、現在のマクロブロックと実質的に一致す参照フレーム中の領域を識別するために、ブロックマッチング演算を実行する。ブロックマッチング演算を実行するために、動き場推定ブロックは、フレーム記憶装置３２０中に格納された参照フレームデータにライン３２７を介してアクセスする。より具体的には、動き推定ブロック３３０は、検査中のマクロブロックと、フレーム記憶装置３２０中に格納された参照フレームからの最もマッチする候補ピクセル領域との間におけるピクセル値の差分を表す差分値（例えば、絶対差分の合計）を計算することによりブロックマッチングを実行する。参照フレームの所定調査領域内の考えられるすべてのオフセットにおける候補領域についての差分値が生成され、動き推定ブロック３３０が、最小の計算された差分値を決定する。最小の差分値を生み出す、現在のフレーム中のマクロブロックと、参照フレーム中のピクセル値の候補ブロックとの間のオフセットは、当該マクロブロックについての動きベクトルを定義する。
【００３１】
動き推定ブロック３３０がマクロブロックについての動きベクトルをひとたび生成すると、このブロックは、動きベクトルを動き場符号化ブロック３４０に出力する。動き場符号化ブロック３４０は、基底関数および動き係数のセットを含む動きモデルを用いて、動き推定ブロック３３０から受信された動きベクトルを見積もる。より具体的には、動き場符号化ブロック３４０は、動きベクトルが、基底関数を掛けられた時に、動きベクトルの近似値を形成する動作係数値のセットを表す。典型的には、２つの動作係数と基底関数のみを有する並進運動モデルが用いられる。
【００３２】
動き係数は、動き場符号化ブロック３４０から動き補償予測ブロック３５０へ送られる。動き補償予測ブロック３５０は、動き推定ブロック３３０により識別されたピクセル値の最もマッチする候補領域もフレーム記憶装置３２０から受信する。動き場符号化ブロック３４０により発生された動きベクトルの近似表現と、参照フレームからのピクセルの最もマッチする候補領域のピクセル値とを用いて、動き補償予測ブロック３５０は、マクロブロックの各ブロックについての予測されたピクセル値の配列を成生する。予測されたピクセル値の各ブロックは結合器３１６へ送られ、そこで、予測されたピクセル値は、現在のマクロブロックの対応するブロック中の実際の（入力）ピクセル値から減じられる。このように、マクロブロックについての１セットの予測エラーブロックが得られる。
【００３３】
図２に示されるビデオデコーダ４００の演算を説明する。デコーダ４００は、エンコードされたビデオビットストリーム３３５をエンコーダ３００から受信しこれをその成分部分に逆多重化するビデオ多重デコーダ４７０、逆量子化器４１０、逆ＤＣＴ変換器４２０、動き補償予測ブロック４４０、フレーム記憶装置４５０、結合器４３０、コントロールマネージャー４６０、および出力４８０を含む。
【００３４】
コントロールマネージャー４６０は、ＩＮＴＲＡ符号化されたフレームかそれともＩＮＴＥＲ符号化されたフレームがデコードされているかに呼応して、デコーダ４００の演算を制御する。デコーダをデコードモード間で切り替えさせるＩＮＴＲＡ／ＩＮＴＥＲトリガ制御信号が、例えば、エンコーダから受信された各圧縮ビデオフレームのヘッダー部分中に提供されるピクチャタイプ情報から導き出される。ＩＮＴＲＡ／ＩＮＴＥＲトリガ制御信号は、エンコードされたビデオビットストリームからビデオ多重デコーダ４７０によって抽出され、コントロールライン４２２を介してコントロールマネージャー４６０に送られる。
【００３５】
ＩＮＴＲＡ符号化されたフレームのデコードは、マクロブロックごとに実行され、各マクロブロックは、それに関連するエンコードされた情報が受信されたビデオビットストリーム３３５中で識別されると実質的にすぐにデコードされる。ビデオ多重デコーダ４７０は最初に、当該マクロブロックに関連する考え得る制御情報から、マクロブロックのブロックについてのエンコードされた情報を分離する。ＩＮＴＲＡ符号化されたマクロブロックの各ブロックについてのエンコードされた情報は、可変長符号語を含む。これらの符号語は、ブロックの非ゼロ量子化されたＤＣＴ係数についてのエントロピー符号化されたｌｅｖｅｌおよびｒｕｎ値を表す。ビデオ多重デコーダ４１０は、エンコーダ３００において用いられるエンコード方法に対応する可変長デコード方法を用いて可変長符号語をデコードし、その結果、ｌｅｖｅｌおよびｒｕｎ値を復元する。次にこのデコーダは、マクロブロックの各ブロックについての量子化された変換係数値の配列を再構成し、それらを逆量子化器４１０に送る。マクロブロックに関連するどのような制御情報も、適切な可変長デコード方法を用いてビデオ多重デコーダにおいてデコードされ、コントロールマネージャー４６０に送られる。特に、変換係数に適用される量子化レベルに関する情報が、エンコードされたビットストリームからビデオ多重デコーダ４７０によって抽出され、コントロールライン４２４を介してコントロールマネージャー４６０に供給される。そして今度は、このコントロールマネージャーが、この情報をコントロールライン４１５を介して逆量子化器４２０に送る。逆量子化器４１０は、制御情報に従ってマクロブロックの各ブロックについての量子化されたＤＣＴ係数を逆量子化し、今逆量子化されたＤＣＴ係数を逆ＤＣＴ変換器４２０に供給する。
【００３６】
逆ＤＣＴ変換器４２０は、マクロブロックの各ブロックについての逆量子化されたＤＣＴ係数に対して逆ＤＣＴ変換を実行して、再構成されたピクセル値を含む画像情報のデコードされたブロックを形成する。ＩＮＴＲＡ符号化されたマクロブロックのエンコーディング／デコーディングにおいて動き補償予測が使用されない時、コントロールマネージャー４６０は、ＩＮＴＲＡ符号化されたマクロブロックのデコーディングにおいてどのような参照情報も使用されないように、結合器４３０を制御する。マクロブロックの各ブロックについての再構成されたピクセル値は、デコーダのビデオ出力４８０に送られ、例えば、そこで表示装置（図示せず）に供給し得る。マクロブロックの各ブロックについての再構成されたピクセル値は、フレーム記憶装置４５０中にも格納し得る。ＩＮＴＲＡ符号化されたフレームのその後のマクロブロックがデコードおよび記憶される時、デコードされたフレームは、フレーム記憶装置４５０中で順次アセンブルされ、かくして、後に受信されたＩＮＴＥＲ符号化されたフレームのデコーディングに関連して、動き補償予測のための参照フレームとして使用するために利用可能になる。
【００３７】
ＩＮＴＥＲ符号化されたフレームもマクロブロックごとにデコードされ、各ＩＮＴＥＲ符号化されたマクロブロックは、それに関連するエンコードされた情報が受信されたビットストリーム中で識別されると実質的にただちにデコードされる。ビデオ多重デコーダ４７０は、ＩＮＴＥＲ符号化されたマクロブロックの各ブロックについてのエンコードされた予測エラー情報を、エンコードされた動きベクトル情報および当該マクロブロックに関連する考えられる制御情報から分離する。上記で説明したように、マクロブロックの各ブロックについてのエンコードされた予測エラー情報は、当該予測エラーブロックについての非ゼロ量子化された変換係数についてのエントロピー符号化されたｌｅｖｅｌおよびｒｕｎ値を表す可変長符号語を含んでいる。ビデオ多重デコーダ４７０は、エンコーダ３００において用いられるエンコード方法と対応する可変長デコード方法を用いて可変長符号語をデコードし、それによって、ｌｅｖｅｌおよびｒｕｎ値を復元する。次にこのデコーダは、各予測エラーブロックについての量子化された変換係数値の配列を再構成し、それらを逆量子化器４１０に送る。ＩＮＴＥＲ符号化されたマクロブロックに関する制御情報も、ビデオ多重デコーダにおいて、適切な可変長デコーディング方法を用いてデコードされ、コントロールマネージャー４６０に送られる。予測エラーブロックの変換係数に適用される量子化レベルに関する情報が、エンコードされたビットストリームから抽出され、コントロールライン４２４を介してコントロールマネージャー４６０に供給される。そして今度は、コントロールマネージャーは、この情報をコントロールライン４１５を介して逆量子化器４２０に送る。逆量子化器４１０は、制御情報に従ってマクロブロックの各ブロックについての予測エラー情報を表す量子化されたＤＣＴ係数を逆量子化し、今逆量子化されたＤＣＴ係数を逆ＤＣＴ変換器４２０に供給する。次に、各ブロックについての予測エラー情報を表す逆量子化されたＤＣＴ係数は、逆ＤＣＴ変換器４２０において逆変換されて、マクロブロックの各ブロックについての再構成された予測エラー値の配列を発生する。
【００３８】
マクロブロックに関連したエンコードされた動きベクトル情報は、エンコードされたビデオビットストリーム３３５からビデオ多重デコーダ４７０により抽出され、適切な可変長デコード方法を用いてデコードされる。このようにして得られたデコードされた動きベクトル情報は、データライン４２６を介して動き補償予測ブロック４４０に送られて、このブロックが、エンコーダ３００においてＩＮＴＥＲ符号化されたマクロブロックをエンコードするために使用されたものと同じ動きモデルを用いてマクロブロックについての動きベクトルを再構成する。再構成された動きベクトルは、元々はエンコーダの動き推定ブロック３３０により決定された動きベクトルを見積もる。デコーダの動き補償予測ブロック４４０は、フレーム記憶装置４５０中に格納された予測参照フレーム中の再構成されたピクセルの領域の位置を特定するために、再構成された動きベクトルを用いる。参照フレームは、例えば、前にデコードされたＩＮＴＲＡ符号化されたフレームか、あるいは前にデコードされたＩＮＴＥＲ符号化されたフレームとすることができる。どちらの場合も、再構成された動きベクトルにより示されるピクセルの領域は、当該マクロブロックについての予測を形成するために使用される。より具体的には、動き補償予測ブロック４４０は、参照フレーム中で識別されたピクセルの領域から対応するピクセル値をコピーすることにより、マクロブロックの各ブロックについてのピクセル値の配列を形成する。参照フレームから導き出されたピクセル値のブロックである予測は、動き補償予測ブロック４４０から結合器４３０へ送られ、そこで、デコードされた予測エラー情報と結合される。実際には、予測された各ブロックのピクセル値は、逆ＤＣＴ変換器４２０により出力される対応する再構成された予測エラー値に加算される。このようにして、マクロブロックの各ブロックについての再構成されたピクセル値の配列が得られる。再構成されたピクセル値は、デコーダのビデオ出力４８０に送られて、またフレーム記憶装置４５０中に格納される。ＩＮＴＥＲ符号化されたフレームのその後のマクロブロックがデコードされて蓄えられる時、デコードされたフレームがフレーム記憶装置４５０中で順次アセンブルされ、このようにして、他のＩＮＴＥＲ符号化されたフレームの動き補償予測のための参照フレームとして使用するために利用可能になる。
【００３９】
Ｈ．２６Ｌビデオ符号化標準
ＩＴＵ−Ｔ勧告Ｈ．２６Ｌは、国際電気通信連合により開発されたビデオ符号化標準のファミリーにおける最新のものである。これは、とりわけ非常に低いビットレート、典型的には６４キロビット／秒以下でのビデオ符号化向けであり、これにより、この標準は、利用可能な帯域幅の最適使用が優先事項である無線通信ネットワークまたはいずれかの固定回線通信ネットワークを介した伝送のためのデジタルビデオの符号化にとって特に適したものになる。ＩＴＵ−Ｔ  Ｈ．２６Ｌにより規定されるビデオエンコーディングシステムは、ハイブリッドビデオ符号化システムであり、これは、図１および２において例示される一般的なビデオエンコーダ３００およびデコーダ４００に関連して上記で説明された一般原則に従って動作する。特に、Ｈ．２６Ｌに従って実施されるビデオエンコーディングシステムは、ビデオシーケンス内の空間的および時間的冗長性を減らすために、ブロックベース変換符号化と動き補償予測との組み合わせを利用する。
【００４０】
テストモデル８（ＴＭＬ８）として知られており、「Ｈ．２６Ｌテストモデル・ロングターム・ナンバー８（ＴＭＬ−８）ドラフト０（H.26L Test Model Long Term Number 8 (TML-8) draft0）」（ＩＴＵ−Ｔ電気通信標準化部門、研究グループ１６、ビデオ符号化専門家グループ（ITU-T Telecommunications Standarization Section, Study Group 16, Video Coding Experts Group））に記載されているＨ．２６Ｌ勧告の最新バージョンは、２つの選択可能なエントロピー符号化モードを規定している。第１の（デフォルト）モードにおいて、いわゆる汎用可変長符号化（ＵＶＬＣ：Universal Varialble Length Coding）方法が、すべてのシンタックス要素を符号化するために用いられる。ＵＶＬＣ符号化モードは、当該情報のタイプを問わず、ビデオエンコーダにより生成された様々な種類の情報すべてを表すために同じ可変長符号語の集合が用いられるルックアップテーブル方法である。代わりのエントロピー符号化方法は、Ｈ．２６Ｌのいわゆる「高複雑性プロファイル（high complexity profile）」における使用について規定されており、コンテキストベース適応２値算術符号化（ＣＡＢＡＣ：Context-based Adaptive Binary Arithmetic Coding）として知られている手法である。これは、符号化されている情報の統計的特性に連続的に適応する２値算術符号化の１形式であり、エントロピー符号化の最も効率的な形式の１つであることが技術的に知られている（H. Witten, R. M. Neal, and J. G. Cleary, ”Arithmetic coding for data compression（データ圧縮のための算術符号化）,” Commun. ACM, vol. 30, pp. 520-540, June 1987参照）。
【００４１】
ビデオエンコーダにより生成されたすべてのタイプの情報を表すために、ＵＶＬＣエントロピー符号化が同じ可変長符号語の集合を用いるので、一般に、符号語の統計的特性は、エンコードされる情報の特徴と最適には一致しない。例えば、ＩＮＴＲＡ符号化された画像ブロックについての量子化されたＤＣＴ係数を表すために用いられる特定のｒｕｎおよびｌｅｖｅｌ値の発生頻度は、量子化パラメータ値に関連する制御情報中の値の発生と異なる可能性がある。ＣＡＢＡＣエントロピー符号化方法は、ＵＶＬＣエントロピー符号化方法の本質的に次善の性質を克服するために、Ｈ．２６Ｌ勧告に導入された。本明細書において以前に説明したように、算術符号化は、単一の可変長コード（浮動小数点数）で符号化されるシンボルのグループを表す。これは、各シンボルを別個にエンコードするエントロピー符号化方法と比較して特別な利点を提供する。具体的には、各シンボルを別個に符号化するエントロピー符号化方法は、各シンボルを表すために少なくとも１ビットを必要とする。算術符号化は単一の符号語でシンボルのグループを表すので、１シンボルあたり１ビット未満のデータ圧縮レートを達成することが可能である。従って、Ｈ．２６Ｌ中で規定されるＣＡＢＡＣ方法も、改善されたデータ圧縮の可能性を提供する。さらに、これは適応性のある方法なので、符号化されている情報の統計的特徴の変化を考慮に入れることも可能であり、たとえ符号化されているデータの性質がある程度変化しても、データ圧縮性能が確実に保持される。
【００４２】
コンテキストベースの算術符号化
上記で説明したように、ＣＡＢＡＣ算術符号化はエントロピー符号化方法であり、エンコードされる情報の変化する統計量に適応することができる。このように、固定された統計的特性を想定するエントロピー符号化手法と比較して、この手法は、改善された圧縮効率を提供することが可能である。図４は、代表的なコンテキストベースの２値算術エンコーダ７００を例示している。ＣＡＢＡＣは、２値算術符号化方法であり、従って、非２進値を有する符号化されるデータシンボルは、最初に２値写像ブロック７１０中で２進値に変換（「２値化」）される。２値化プロセスは、符号化されるシンボルをビンのシーケンスに写像することを伴い、ビンの各々は、対応するビン番号を有しており、０か１の値が割り当てられる。そのような写像の１例を表１に示す。原則として、他の２値化方式を想定することができる。
【００４３】
【表１】
0005635479.tif 000002
【００４４】
ＣＡＢＡＣ方法において、ビンの各々は、いわゆる「コンテキスト」に割り当てられる（それゆえ、コンテキストベースの算術符号化という名称になる）。コンテキストは、同様な統計的特徴を有しているビンを集めることと考えることができる。言い換えれば、特定のコンテキストに割り当てられた各ビンは、そのコンテキストに属する他のビンと同様の確率で値１または０を含むと仮定される。このように、算術コーダにおいて符号語を生成するために用いられる確率推定値は、符号化される各々の考えられるビンではなく各コンテキストについて定義される。各コンテキストは、事前に設定されかつ符号化されるデータシンボル（従ってビン）の統計的特徴についての情報に基づく「コンテキストモデル」に従って定義される。一般に、もし０の発生確率と１の発生確率との差が最大化されれば、２値算術エンコーダにより達成されるデータ圧縮比は向上する。同様に、コンテキストベースの算術符号化の性能は、コンテキストモデルの選択にも依存する。このことは、一般に、コンテキストモデルは、各コンテキストに割り当てられたビンについて、０および１の発生確率の差を最大にするように選ばれるべきであることを意味している。
【００４５】
図４に例示される代表的なコンテキストベースの算術コーダにおいて、符号化されるシンボルが２値写像ブロック７１０中でひとたび２値化されると、その記号は、コンテキスト割り当てブロック７２０中で対応するコンテキストに割り当てられる。対応するビンに割り当てられた値（すなわち、１または０）は、次に算術コーダ７３０に送られる。算術コーダ７３０の符号化エンジン７５０は次に、ビンが割り当てられるコンテキストについての確率推定値を用いてビン値をエンコードする。性能、すなわち算術エンコーダにより達成されるデータ圧縮比は、確率推定値の精度に依存する。原則として、推定値は固定型または適応型とすることができる。もし固定型確率推定値が用いられれば、各コンテキストについての確率推定値は、所定の値に割り当てられ、エンコーディング工程の間不変のままである。固定型確率推定値は典型的には、エンコードされる実際のデータの統計的特性に似た統計的特性を有するトレーニングマテリアルを解析することにより事前に得られる。もし適応型確率推定値が用いられれば、各コンテキストについての確率推定値を初期化するために固定値が用いられ、次に、これまでにエンコードされたデータ（ビン）の実際の統計的特性に基づいてエンコード工程全体を通して確率が更新される。適応型確率推定値は、符号化されているマテリアルに適合できるので、一般により良好に機能する。
【００４６】
図４に例示される代表的なコンテキストベースの算術コーダは、適応型確率推定値を使用し、更新された確率推定値が計算される確率推定ブロック７４０を含んでいる。各コンテキストについての確率推定値は、各コンテキストに割り当てられたビンの各々についての１および０の発生数の記録をとることにより更新される。例えば、任意のコンテキストｋに割り当てられたビンに、値０をｍ回および値１をｎ回割り当てると、コンテキストｋにおける１についての確率推定値はｎ／（ｎ（ｍ＋１））であり、０についての確率推定値は（ｍ＋１）／（ｎ（ｍ＋１））である。
【００４７】
図５は、図４に関連して説明されたエンコーダに対応するコンテキストベースの算術デコーダ８００を例示している。算術符号化されたデータシンボルを表しているビットストリームが、入力８１０においてコンテキストベースの算術デコーダにより受信される。初めに、前にデコードされたシンボルに基づいて、コンテキストがコンテキスト割り当てブロック８５０において計算され、ビン値の確率推定値が更新される。コンテキスト割り当てブロック８５０において実行されるコンテキスト割り当て、および確率推定ブロック８３０において実行される確率推定値の計算は、エンコーダと同じやり方で実行される。受信されたビットは次に、算術デコーダ８２０の算術デコーディングエンジン８４０に供給され、そこでビットは、計算されたコンテキストおよびビン値の現在の確率推定値を用いて、デコードビン値に変換される。デコードされたビンは、ビン−値写像ブロック８６０においてｒｕｎおよびｌｅｖｅｌ値に写像される。
【００４８】
Ｈ．２６Ｌにおいて用いられるＣＡＢＡＣ法
ＩＴＵ−Ｔ勧告Ｈ．２６Ｌの高複雑性プロファイルにおいて使用するために採用されたＣＡＢＡＣ算術符号化方法の詳細を詳しく説明する。Ｈ．２６Ｌ  ＴＭＬ８によれば、ｒｕｎおよびｌｅｖｅｌ値についてのコンテキストは、符号化されているブロックのタイプおよび２値化されたｌｅｖｅｌまたはｒｕｎ値のビン番号に依存する。係数値、成分タイプ（輝度／クロミナンス、ＡＣ／ＤＣ）、または符号化モード（ＩＮＴＥＲ／ＩＮＴＲＡ）を順序付けるために用いられるスキャンモード（シングル／ダブル）に従って種々のブロックタイプが定義される。しかしながら、所定のブロックタイプについて、コンテキストはビン番号にのみ依存する。より具体的には、Ｈ．２６Ｌ  ＴＭＬ８によれば、ｌｅｖｅｌエンコーディングについて４つのコンテキストが定義される。第１のものは第１のビンについてであり、第２のものは第２のビンについてであるのに対して、第３のコンテキストは、ｌｅｖｅｌの大きさを表すビンの残りについてのものである。残りのコンテキストは、ｌｅｖｅｌの符号のために用いられる。ｒｕｎ値をコンテキストに割り当てるために同様な方法が用いられる。ｒｕｎについては３つのコンテキストがあり、第１のものは第１のビンについてであり、第２のものは第２のビンについてであり、第３のものは残りすべてのビンについてのものである。ｒｕｎ値が常に０以上なので、符号情報を表すために付加的なコンテキストの必要は皆無である。従って、所定タイプのブロックについて、変換係数ビンのための（ｌｅｖｅｌおよびｒｕｎ双方のエンコーディングのための）コンテキストへのビンの割り当ては、以下のように要約できる：
【００４９】
【数１】
0005635479.tif 000003
【００５０】
式中、ｂｉｎ＿ｎｒはビン番号であり、ｃｏｎｔｅｘｔはコンテキスト番号である。Ｈ．２６Ｌ  ＴＭＬ８によれば、ＭＡＸ＿ＢＩＮ＿ＶＡＬの値は３に設定されるが、原則的に、別のＭＡＸ＿ＢＩＮ＿ＶＡＬを代わりに用いることもできる。
【００５１】
ｒｕｎ−ｌｅｖｅｌペアは次の通りエンコードされる：ｒｕｎおよびｌｅｖｅｌは最初に、ブロック／係数タイプに従って、すなわちスキャンモード、係数タイプ（ＤＣ／ＡＣ）、および符号化モード（ＩＮＴＥＲ／ＩＮＴＲＡまたは１６×１６ＩＮＴＲＡ）に従って分類される。ｌｅｖｅｌおよびｒｕｎは次に、これらをビンのシーケンス上に写像することによって２値化され、各ビンは、そのビン番号に基づいてコンテキストに割り当てられる。
【００５２】
図６ａ−６ｄは、量子化されたＤＣＴ係数の代表的な４×４配列を参照してこのプロセスを詳細に例示している。この図は、量子化されたＤＣＴ係数についてのｒｕｎおよびｌｅｖｅｌ値の統計的特性が追跡される方法を例示することによって、ＣＡＢＡＣ法の適応的性質も実証している。量子化されたＤＣＴ係数値の２次元配列は、最初にジグザグスキャンされ、図６ａに示されるように、値の１次元配列を生成する。次に、１次元配列中の非ゼロ係数値がｒｕｎおよびｌｅｖｅｌ値のペアとして表される。前に説明されたように、各ｌｅｖｅｌ値は、非ゼロの量子化されたＤＣＴ係数の値を表すのに対して、関連するｒｕｎ値は、当該係数に先行するゼロ値係数の個数に対応する。量子化されたＤＣＴ係数の代表的配列から導き出されたｒｕｎ−ｌｅｖｅｌペアが図６ｂに示してある。各ペアにおいて、ｌｅｖｅｌ値は関連するｒｕｎ値に先行し、ゼロに等しいｌｅｖｅｌ値は、ブロック中に非ゼロ係数値がもはやないことを示すブロック終結記号として用いられる。
【００５３】
次に、各ｒｕｎおよびｌｅｖｅｌ値は、２進値に変換される。Ｈ．２６Ｌ  ＴＭＬ８によれば、量子化されたＤＣＴ変換係数値についてのｒｕｎおよびｌｅｖｅｌ値を変換するために用いられる２値化方式は、上記の表１で示されたものと同一である。図６ｃは、表１に提示される２値化方式を代表的配列中のｒｕｎおよびｌｅｖｅｌ値に適用したときの結果を示している。図６ｃは、Ｈ．２６Ｌによるコンテキストへのビンの割り当ても示している。上記で説明されたように、ｒｕｎおよびｌｅｖｅｌ値の大きさを記述するために３つのコンテキストのみが用いられる。第１のコンテキストはビン１に対応し、第２のものはビン２に対応するのに対して、第３のコンテキストは残りのビンすべてを含んでいる。図６ｃにおいて、コンテキストは太い水平線により輪郭を描かれている。図６ｃを検討することにより、ｌｅｖｅｌ値の大部分が、コンテキスト３に割り当てられるビンに写像されるのに対して、ｒｕｎ値の大部分が、コンテキスト１に割り当てられるビンに写像されることがわかる。
【００５４】
割り当てられた各コンテキストについての確率推定値は、ビンのエンコーディング後に更新される。ｒｕｎおよびｌｅｖｅｌコンテキストについての確率推定値は独立して更新される。前に説明されたように、所定のコンテキストについての確率推定値は、当該コンテキストに割り当てられたビンの統計的特徴を表す。より具体的には、確率推定値は、１を１個または０を１個含んでいるコンテキストに割り当てられたビンの尤度を記述する。図６ｄは、確率推定値がｒｕｎおよびｌｅｖｅｌについて更新される方法を代表的な方法で記述する。この図は、図６ａに示された量子化されたＤＣＴ係数の４×４ブロックを表すｒｕｎおよびｌｅｖｅｌが２値化され、コンテキストに割り当てられそして算術エンコーダ中でエンコードされる前および後の、１を１個または０を１個含んでいる所定のｒｕｎまたはｌｅｖｅｌコンテキストに割り当てられたビンの確率を例示している。図６ｄは表という形式をとっており、この表は、各コンテキストに割り当てられたビン中の１および０の発生を記録する。従って、所定のコンテキストについての確率推定値は以下のように与えられる：
０の確率＝０の数／（０の数＋１の数）
１の確率＝１の数／（０の数＋１の数）
この図においては、図６ａに示される量子化されたＤＣＴ係数の４×４ブロックは、処理されるそのようなブロックの最初のものであると仮定される。このことは、この表において記録すべき１および０の以前の発生が皆無であることを意味している。この問題を克服するため、ブロックが処理される前に、各コンテキストは、１または０を等しい確率で含むことが仮定される。これは、同一の値を、０および１の発生を記録する列に記録することによって示される。図６ｄにおいて、１は、確率推定値を初期化するために用いられる。代わりに、トレーニングデータの解析から導き出された確率推定値を、各コンテキストについての確率推定値の初期化に用い得るであろう。次に、量子化されたＤＣＴ変換係数のブロックについてのｒｕｎおよびｌｅｖｅｌ値が２値化されて、コンテキストに割り当てられる時に、確率推定値は、各コンテキストのビン中で発生する１および０の個数を計数することにより更新される。図６ｄの右側の列は、図６ａに示された量子化されたＤＣＴの４×４ブロックの処理後の状況を示す。
【００５５】
ＩＴＵ−Ｔ勧告Ｈ．２６Ｌ  ＴＭＬ８の高複雑性プロファイルにおいて採用されたＣＡＢＡＣ算術エンコーディング方法は、ＵＶＬＣエントロピー符号化方法と比較して、データ圧縮における改善をもたらすけれども、それでもなお符号化効率に関しては最適ではない。従って、符号化効率がさらに向上されるコンテキストベースの算術符号化のための方法およびシステムを提供することが本発明の目的である。
【先行技術文献】
【非特許文献】
【００５６】
【非特許文献１】「Ｈ．２６Ｌテストモデル・ロングターム・ナンバー８（ＴＭＬ−８）ドラフト０（H.26L Test Model Long Term Number 8 (TML-8) draft0）」（ＩＴＵ−Ｔ電気通信標準化部門、研究グループ１６、ビデオ符号化専門家グループ（ITU-T Telecommunications Standarization Section, Study Group 16, Video Coding Experts Group））
【非特許文献２】H. Witten, R. M. Neal, and J. G. Cleary, "Arithmetic coding for data compression（データ圧縮のための算術符号化）," Commun. ACM, vol. 30, pp. 520-540, June 1987
【発明の概要】
【００５７】
発明の要約
本発明は、コンテキストベースの算術符号化を用いて所定のデータシンボルを符号化する時に、他のデータシンボルが割り当てられるコンテキストを考慮に入れるコンテキストモデルを用いることにより符号化効率の向上が達成されるという認識に基づいている。Ｈ．２６Ｌ  ＴＭＬ８の高複雑性プロファイルにおいて用いられるＣＡＢＡＣ法に特に関連して、本発明の発明者らは、ＤＣＴ変換係数に関連するｒｕｎおよびｌｅｖｅｌ値の間に特定の関係が存在することを突き止めた。本発明者らはさらに、ｒｕｎおよびｌｅｖｅｌ値に適用された時に、向上された符号化効率でＣＡＢＡＣ法が動作することを可能にする改良コンテキストモデルを構築するためにこれらの関係を用いることができることを突き止めた。特に、本発明者らは、連続したｌｅｖｅｌ値が有意な類似性を呈することを突き止めた。より具体的には、変換係数の所定のブロック内で、エンコードされる係数のｌｅｖｅｌは、一般に、前にエンコードされた係数のｌｅｖｅｌとほぼ同様の大きさを有している。本発明者らは、ｌｅｖｅｌおよびｒｕｎ値の間の逆の関係も突き止めた。特に、より大きいｌｅｖｅｌ値は、より小さいｒｕｎ値により先行される可能性がより高い。逆もまた真であり、すなわち、より小さいｌｅｖｅｌ値は、より大きいｒｕｎにより先行される可能性が高い。その結果、本発明は、ｌｅｖｅｌおよびｒｕｎ値の間のこれらの関係を考慮に入れるＤＣＴ変換係数の符号化のための新しいコンテキストモデルの創出を提示する。
【００５８】
コンテキストベースの算術エンコーダへの実装を意図した第１のそのようなコンテキストモデルにおいて、２値化された係数ｌｅｖｅｌ値のビンに割り当てられたコンテキストは、前にエンコードされた係数ｌｅｖｅｌによって決まる。コンテキストベースの算術デコーダへの実装を意図した第２のそのようなコンテキストモデルにおいて、２値化された係数ｌｅｖｅｌ値のビンに割り当てられたコンテキストは、前にデコードされた係数ｌｅｖｅｌによって決まる。コンテキストベースの算術エンコーダかコンテキストベースの算術デコーダに実装された第３のコンテキストモデルにおいて、２値化された係数ｒｕｎ値のビンに割り当てられたコンテキストは、係数のｌｅｖｅｌ値によって決まる。
【００５９】
本発明者らは、種々の画像ブロックに関連した変換係数値の間に一定の類似性が存在することも突き止めた。これらの類似性は、互いに近くに位置する画像ブロック間でより大きく、隣接する画像ブロック間で最大になる傾向がある。より具体的には、特定の画像ブロックを表す非ゼロ変換係数値の数Ｎcは、当該画像ブロックの近く、または隣接する画像ブロックにおける非ゼロ変換係数値の数に類似する傾向がある。従って、本発明は、変換符号化された画像ブロックについての非ゼロ変換係数の個数の表示を提供することおよびこの値をエントロピー符号化を用いて符号化するという概念をさらに導入する。さらに、Ｎc値を符号化するために、コンテキストベースの算術符号化が用いられるのであれば、少なくとも１つの他の変換符号化された画像ブロックについてのＮc値に割り当てられたコンテキストを考慮に入れることにより、ブロックのＮc値をコンテキストに割り当てることが有利であることを本発明者は突き止めた。このように、互いに近くに位置する画像ブロック間のＮc値間の類似性は、コンテキストベースの算術符号化手順中で利用できる。ＩＴＵ−Ｔ勧告Ｈ．２６Ｌ  ＴＭＬ８によれば、画像ブロック中の非ゼロ変換係数の個数はエンコードされない。代わりに、そして前に説明されたように、ブロック終結（ＥＯＢ）表示が提供される。ＥＯＢ表示は、非ゼロ係数に対応する最後のｒｕｎ−ｌｅｖｅｌペアがエンコードされたことを伝える。本発明者らは、ブロック中の非ゼロ係数の個数の明示的表示が提供されてコンテキストベースの算術符号化を用いて符号化される、提案された方法により、現在Ｈ．２６Ｌ  ＴＭＬ８において現在利用されているようなＥＯＢ表示を提供する方法と比較して、符号化効率の向上につながることを突き止めた。
【００６０】
本発明の背後にある動機および本発明の基本的概念は、ビデオエンコーディング／デコーディングの文脈において、そしてＨ．２６Ｌ  ＴＭＬ８に関連してより具体的に提示されたが、本発明は他のビデオ符号化システムそして静止画符号化にも応用できることが理解されるべきである。原則として、本発明は、ブロックベースの変換符号化およびコンテキストベースの算術符号化が用いられるどのような画像符号化システムにおいても応用できる。
【００６１】
本発明の第１の局面によれば、複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、変換符号化演算がピクセル値のブロックに対して実行されて対応する変換係数値のブロックを生成する画像符号化方法が提供される。変換係数値のブロックは、所定のスキャン順序でスキャンされてスキャンされた係数値の配列が生成され、スキャンされた配列中の係数値は、複数の数値ペアにより表され、数値ペアは、第１の数値および第２の数値を有している。第１の数値および第２の数値は、数値ペアを表す複数のコンテキストの１つに割り当てられる。本発明の第１の局面によれば、数値ペアの第１の値は、別の数値ペアの第１の数値に基づいてコンテキストに割り当てられる。
【００６２】
好ましくは、数値ペアの第１の数値を別の数値ペアの第１の数値に基づいてコンテキストに割り当てるステップは、他の数値ペアの第１の数値が割り当てられるコンテキストを考慮に入れる。
【００６３】
有利には、数値ペアの第１の数値は、非ゼロ係数値を示す。好ましくは、数値ペアの第１の数値は、非ゼロ係数値の大きさに等しい。
【００６４】
有利には、数値ペアの第２の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を表す。
【００６５】
好ましくは、コンテキストは、コンテキストベースの算術コーダのコンテキストである。
【００６６】
より好ましくは、コンテキストは、コンテキストベースの２値算術コーダのコンテキストである。
【００６７】
有利には、第１および第２の数値はビンのセットに写像され、ビンの各々は、関連したビン番号を有し、各々は、第１か第２の値を取り得る。
【００６８】
好ましくは、第１および第２の数値の各々は、ビンのセットの１つに写像され、ピンのセットの所定の１つへの数値の写像は、ビンの値を第１の値に割り当てることによって示される。
【００６９】
好ましくは、第１の値は１であり、第２の値は０である。
【００７０】
好ましくは、ビンのセットの各々は、コンテキストに割り当てられる。
【００７１】
有利には、他の数値ペア中の第１の数値が割り当てられるコンテキストを考慮に入れつつ、他の数値ペアの第１の数値に基づいて、数値ペアの第１の数値をコンテキストに割り当てるステップは、他の数値ペアの第１の数値が写像されるビンのビン番号を試験することにより実施される。
【００７２】
有利には、この方法は、各コンテキストの統計的特性を記述する確率推定値の保持をさらに含む。
【００７３】
好ましくは、各コンテキストについて、確率推定値は、コンテキストに割り当てられている所定の値を有する数値の統計的尤度を示す。
【００７４】
好ましくは、各コンテキストについて、確率推定値は、当該コンテキストに割り当てられたビン中における第１の値および第２の値の発生の記録をとることにより保持される。
【００７５】
本発明の第２の局面によれば、複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、変換符号化演算が、ピクセル値のブロックに対して実行されて変換係数値の対応するブロックを生成する画像符号化方法が提供される。変換係数値のブロックは、所定のスキャン順序でスキャンされてスキャンされた係数値配列が生成され、スキャンされた配列中の係数値は、複数の数値ペアにより表され、数値ペアは、第１の数値および第２の数値を有している。第１の数値および第２の数値は、数値ペアを表す複数のコンテキストの１つに割り当てられる。本発明の第２の局面によれば、数値ペアの第２の数値は、数値ペアの第１の数値に基づいてコンテキストに割り当てられる。
【００７６】
好ましくは、数値ペアの第２の数値を数値ペアの第１の数値に基づいてコンテキストに割り当てるステップは、数値ペアの第２の数値が割り当てられるコンテキストを考慮に入れる。
【００７７】
有利には、数値ペアの第１の数値は、非ゼロ係数値を表す。好ましくは、数値ペアの第１の数値は、非ゼロ係数値の大きさに等しい。
【００７８】
有利には、数値ペアの第２の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を示す。
【００７９】
好ましくは、コンテキストは、コンテキストベースの算術コーダのコンテキストである。
【００８０】
より好ましくは、コンテキストは、コンテキストベースの２値算術コーダのコンテキストである。
【００８１】
有利には、第１および第２の数値はビンのセットに写像され、ビンの各々は、関連したビン番号を有し、第１か第２の値を取り得る。
【００８２】
好ましくは、第１および第２の数値の各々は、ビンのセットの１つに写像され、ピンのセットの所定の１つへの数値の写像は、ビン値を第１の値に割り当てることによって示される。
【００８３】
好ましくは、第１の値は１であり、第２の値は０である。
【００８４】
好ましくは、ビンのセットの各々は、コンテキストに割り当てられる。
【００８５】
有利には、数値ペアの１つの中の第２の数値が割り当てられるコンテキストを考慮に入れつつ、数値ペアの第１の数値に基づいて数値ペアの第２の数値をコンテキストに割り当てるステップは、第２の数値が写像されるビンのビン番号を試験することにより実施される。
【００８６】
有利には、この方法は、各コンテキストの統計的特性を記述する確率推定値の保持をさらに含む。
【００８７】
好ましくは、各コンテキストについて、確率推定値は、コンテキストに割り当てられている所定の値を有する数値の統計的尤度を示す。
【００８８】
好ましくは、各コンテキストについて、確率推定値は、当該コンテキストに割り当てられたビン中における第１の値および第２の値の発生の記録をとることにより保持される。
【００８９】
好ましくは、本発明の第１および第２の局面による方法は、両方とも変換係数値のブロックに適用される。
【００９０】
本発明の第３の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するための手段と、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するための手段とを含むエンコーダが提供される。エンコーダはさらに、変換係数値のブロックを所定のスキャン順序でスキャンして係数値のスキャンされた配列を生成するための手段と、スキャンされた配列中の係数値を第１および第２の数値を有する複数の数値ペアにより表すための手段と、数値ペアを表す複数のコンテキストの１つに第１および第２の数値を割り当てるための手段とを含む。本発明の第３の局面によれば、エンコーダは、数値ペアの第１の数値を、別の数値ペアの第１の数値に基づいてコンテキストに割り当てるための手段を含む。
【００９１】
本発明の第４の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するための手段と、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するための手段とを含むエンコーダが提供される。エンコーダはさらに、変換係数値のブロックを所定のスキャン順序でスキャンして係数値のスキャンされた配列を生成するための手段と、スキャンされた配列中の係数値を第１および第２の数値を有する複数の数値ペアにより表すための手段と、数値ペアを表す複数のコンテキストの１つに第１および第２の数値を割り当てるための手段とを含む。本発明の第４の局面によれば、エンコーダは、数値ペアの第２の数値を、数値ペアの第１の数値に基づいてコンテキストに割り当てるための手段を含む。
【００９２】
本発明の第５の局面によれば、複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、変換符号化演算が、ピクセルのブロックに対して実行されて変換係数値の対応するブロックを生成する画像符号化方法が提供される。本発明の第５の局面によれば、この方法は、変換係数値のブロック中の非ゼロ係数値の個数を示す数値を提供し、その数値を表すコンテキストにその数値を割り当てるステップを含む。
【００９３】
有利には、変換係数値のブロック中の非ゼロ変換係数値の個数を示す数値をコンテキストに割り当てるステップは、変換係数の別のブロック中の非ゼロ係数の個数を示す別のそのような数値が割り当てられるコンテキストを考慮に入れる。
【００９４】
有利には、変換値のブロックは、所定のスキャン順序でスキャンされて係数値のスキャンされた配列を生成し、スキャンされた配列中の係数値は、第１および第２の数値を有する複数の数値ペアにより表される。
【００９５】
有利には、数値ペアの第１の数値は、非ゼロ係数値を示す。
【００９６】
好ましくは、数値ペアの第１の数値は、非ゼロ係数値の大きさに等しい。
【００９７】
より好ましくは、数値ペアの第１の数値は、非ゼロ係数値の大きさマイナス１に等しい。
【００９８】
有利には、数値ペアの第２の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を示す。
【００９９】
好ましくは、スキャンされた係数値の配列中の最後の非ゼロ係数値を示すブロック終結表示は提供されない。
【０１００】
好ましくは、本発明の第１、第２および第５の局面による方法はそれぞれ、変換係数値のブロックに適用される。
【０１０１】
本発明の第６の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するための手段と、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するための手段とを含むエンコーダが提供される。エンコーダは、変換係数値のブロック中の非ゼロ係数値の個数を示す数値を提供するための手段と、その数値を表すコンテキストにその数値を割り当てるための手段とを含む。
【０１０２】
有利には、エンコーダは、変換係数値のブロック中の非ゼロ変換係数値の個数を示す数値を、変換係数の別のブロック中の非ゼロ変換係数値の個数を示す別のそのような数値が割り当てられるコンテキストを考慮に入れて割り当てるための手段をさらに含む。
【０１０３】
本発明の第７の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するためのコードと、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するためのコードとを含むコンピュータプログラムが提供される。コンピュータプログラムはさらに、変換係数値のブロックを所定のスキャン順序でスキャンして係数値のスキャンされた配列を生成するためのコードと、スキャンされた配列中の係数値を第１の数値および第２の数値を有する複数の数値ペアにより表すためのコードと、数値ペアを表す複数のコンテキストの１つに第１および第２の数値を割り当てるためのコードとを含む。本発明の第７の局面によれば、コンピュータプログラムは、数値ペアの１つの中の第１の数値を、別の数値ペアの第１の数値に基づいてコンテキストに割り当てるためのコードも含む。
【０１０４】
有利には、数値ペアの第１の数値は、非ゼロ係数値を示す。
【０１０５】
好ましくは、数値ペアの第１の数値は、非ゼロ係数値の大きさに等しい。
【０１０６】
有利には、数値ペアの第２の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を表す。
【０１０７】
本発明の第８の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するためのコードと、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するためのコードとを含むコンピュータプログラムが提供される。コンピュータプログラムはさらに、変換係数値のブロックを所定のスキャン順序でスキャンして係数値のスキャンされた配列を生成するためのコードと、スキャンされた配列中の係数値を第１の数値および第２の数値を有する複数の数値ペアにより表すためのコードと、数値ペアを示す複数のコンテキストの１つに第１および第２の数値を割り当てるためのコードとを含む。本発明の第８の局面によれば、コンピュータプログラムは、数値ペアの第２の数値を、その数値ペアの第１の数値に基づいてコンテキストに割り当てるためのコードも含む。
【０１０８】
有利には、数値ペアの第１の数値は、非ゼロ係数値を示す。
【０１０９】
好ましくは、数値ペアの第１の数値は、非ゼロ係数値の大きさに等しい。
【０１１０】
有利には、数値ペアの第２の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を表す。
【０１１１】
本発明の第９の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するためのコードと、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するためのコードとを含むコンピュータプログラムが提供される。本発明の第９の局面によれば、コンピュータプログラムは、変換係数値のブロック中の非ゼロ係数値の個数を示す数値を提供するためのコードと、その数値を表すコンテキストにその数値を割り当てるためのコードをさらに含む。
【０１１２】
有利には、コンピュータプログラムは、変換係数値のブロック中の非ゼロ変換係数値の個数を示す数値をコンテキストに、変換係数の別のブロック中の非ゼロ変換係数値の個数を示す別のそのような数値が割り当てられるコンテキストを考慮に入れて、割り当てるためのコードをさらに含む。
【０１１３】
発明の第１０の局面によれば、本発明の第７、第８および第９の局面によるコンピュータプログラムが提供される。
【０１１４】
本発明の第１１の局面によれば、データシンボルの配列が符号語で表されるコンテキストベースの算術エンコード方法が提供される。前記配列中のデータシンボルは、第１の数値および第２の数値を含む数値ペアである。数値ペアの第１の数値は、第１の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられ、数値ペアの第２の数値は、第２の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられる。本発明の第１１の局面によれば、数値ペアの第１の数値は、前記数値ペアの別のものの第１の数値に基づいてコンテキストに割り当てられる。
【０１１５】
本発明の第１２の局面によれば、データシンボルの配列がその配列を表す符号語からデコードされるコンテキストベースの算術デコード方法が提供される。前記配列中のデータシンボルは、第１の数値および第２の数値を含む数値ペアである。数値ペアの第１の数値は、第１の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられ、数値ペアの第２の数値は、第２の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられる。本発明の第１２の局面によれば、数値ペアの第１の数値は、前記数値ペアの別のものの第１の数値に基づいてコンテキストに割り当てられる。
【０１１６】
本発明の第１３の局面によれば、データシンボルの配列が符号語で表されるコンテキストベースの算術エンコード方法が提供される。配列中のデータシンボルは、第１の数値および第２の数値を含む数値ペアである。数値ペアの第１の数値は、第１の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられ、数値ペアの第２の数値は、第２の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられる。本発明の第１３の局面によれば、数値ペアの第２の数値は、数値ペアの第１の数値に基づいてコンテキストに割り当てられる。
【０１１７】
本発明の第１４の局面によれば、データシンボルの配列がその配列を表す符号語からデコードされるコンテキストベースの算術デコード方法が提供される。配列中のデータシンボルは、第１の数値および第２の数値を含む数値ペアである。数値ペアの第１の数値は、第１の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられ、数値ペアの第２の数値は、第２の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられる。本発明の第１４の局面によれば、数値ペアの第２の数値は、その数値ペアの第１の数値に基づいてコンテキストに割り当てられる。
【０１１８】
本発明の第１５の局面によれば、データシンボルの配列が符号語で表され、その配列中の非ゼロデータシンボルの個数を示す数値が提供されかつその数値を表すコンテキストに割り当てられるコンテキストベースの算術エンコード方法が提供される。
【０１１９】
本発明の第１６の局面によれば、データシンボルの配列を符号語で表すための手段を含むコンテキストベースの算術エンコーダが提供される。前記配列中のデータシンボルは、第１の数値および第２の数値を含む数値ペアであり、エンコーダは、数値ペアの第１の数値を、第１の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段と、数値ペアの第２の数値を、第２の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段とをさらに含む。本発明の第１６の局面によれば、エンコーダは、数値ペアの第１の数値を、前記数値ペアの別のものの第１の数値に基づいてコンテキストに割り当てるための手段を含む。
【０１２０】
本発明の第１７の局面によれば、データシンボルの配列を、その配列を表す符号語からデコードするための手段を含むコンテキストベースの算術デコーダが提供される。配列中のデータシンボルは、第１の数値および第２の数値を含む数値ペアであり、デコーダは、数値ペアの第１の数値を、第１の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段と、数値ペアの第２の数値を、第２の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段とをさらに含む。本発明の第１７の局面によれば、デコーダは、数値ペアの第１の数値を、前記数値ペアの別のものの第１の数値に基づいてコンテキストに割り当てるための手段を含む。
【０１２１】
本発明の第１８の局面によれば、データシンボルの配列を符号語で表すための手段を含むコンテキストベースの算術エンコーダが提供される。前記配列中のデータシンボルは、第１の数値および第２の数値を含む数値ペアであり、エンコーダは、数値ペアの第１の数値を、第１の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段と、数値ペアの第２の数値を、第２の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段とをさらに含む。本発明の第１８の局面によれば、エンコーダは、数値ペアの第２の数値を、数値ペアの第１の数値に基づいてコンテキストに割り当てるための手段を含む。
【０１２２】
本発明の第１９の局面によれば、データシンボルの配列を、その配列を表す符号語からデコードするための手段を含むコンテキストベースの算術デコーダが提供される。配列中のデータシンボルは、第１の数値および第２の数値を含む数値ペアであり、デコーダは、数値ペアの第１の数値を、第１の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段と、数値ペアの第２の数値を、第２の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段とをさらに含む。本発明の第１９の局面によれば、デコーダは、数値ペアの第２の数値を、数値ペアの第１の数値に基づいてコンテキストに割り当てるための手段を含む。
【０１２３】
本発明の第２０の局面によれば、データシンボルの配列を符号語で表すための手段を含み、その配列中の非ゼロデータシンボルの個数を示す数値を提供するための手段と、前記数値をその数値を表すコンテクスに割り当てるための手段とをさらに含むコンテキストベースの算術エンコーダが提供される。
【０１２４】
本発明は、図７ａから１２に関連してなされる説明を読めば直ちに明白になるであろう。
【図面の簡単な説明】
【０１２５】
【図１】ブロックベースの変換符号化および動き補償予測を用いる代表的なビデオエンコーダの構造を例示するブロック図である。
【図２】図１のエンコーダに対応する代表的なビデオデコーダのブロック図である。
【図３】代表的なジグザグスキャンを示す線図表示である。
【図４】従来技術のコンテキストベースの算術符号化方式におけるエンコーダを示すブロック図である。
【図５】従来技術のコンテキストベースの算術符号化方式におけるデコーダを示すブロック図である。
【図６ａ】ジグザグスキャンされた量子化されたＤＣＴ係数値の代表的な２次元配列を示す線図表示である。
【図６ｂ】図６ａの配列から導き出されたｌｅｖｅｌおよびｒｕｎ値を示す表である。
【図６ｃ】表１の２値化方式を図６ｂのｌｅｖｅｌおよびｒｕｎ値に適用した結果得られる２値化されたｌｅｖｅｌおよびｒｕｎ値を示す表である。
【図６ｄ】確率推定値がｒｕｎおよびｌｅｖｅｌから更新される方法を示す表である。
【図７ａ】コンテキストが、ｌｅｖｅｌ値に基づいてビンに割り当てられる方法を示す表である。
【図７ｂ】本発明の第１の実施形態に従ってコンテキストがｌｅｖｅｌ値に割り当てられる方法を示す表である。
【図８ａ】コンテキストが、ｒｕｎ値に基づいてビンに割り当てられる方法を示す表である。
【図８ｂ】本発明の第２の実施形態に従ってコンテキストがｒｕｎ値に割り当てられる方法を示す表である。
【図９】本発明によるコンテキストベースの算術符号化方式におけるエンコーダを例示するブロック図である。
【図１０】本発明によるデコーダを例示するブロック図である。
【図１１】本発明の好ましい実施形態による画像符号化方法を例示するフローチャートである。
【図１２】本発明の別の実施形態による画像符号化方法を例示するフローチャートである。
【発明を実施するための形態】
【０１２６】
本発明の実施形態を詳細に論じる。上記で説明されたように、本発明は、コンテキストベースの算術コーダの符号化効率（データ圧縮）の改善を達成できるいくつかの関連機構を提供する。この改善は、他のデータ記号が割り当てられるコンテキストを考慮に入れるコンテキストモデルを用いて達成される。
【０１２７】
以下のセクション１．１で詳細に説明される本発明の第１の実施形態は、ＩＴＵ−Ｔ勧告Ｈ．２６Ｌにより定義されるような画像符号化システムでの使用に適するコンテキストベースの２値算術コーダに関する。この実施形態においては、画像ピクセルの変換符号化ブロックの量子化された変換係数をｒｕｎ−ｌｅｖｅｌ符号化して発生されたｌｅｖｅｌ値が、同じブロックに属する別の変換係数のｌｅｖｅｌを考慮に入れつつコンテキストに割り当てられる。
【０１２８】
セクション１．２で詳細に説明される本発明の第２の実施形態も、ＩＴＵ−Ｔ勧告Ｈ．２６Ｌにより定義されるような画像符号化システムのためのコンテキストベースの２値算術コーダに関する。この第２の実施形態においては、画像ピクセルの変換符号化ブロックの量子化されたＤＣＴ変換係数をｒｕｎ−ｌｅｖｅｌ符号化して生成されたｒｕｎ値が、ｒｕｎ値が属するｒｕｎ−ｌｅｖｅｌペアのｌｅｖｅｌ値を考慮に入れつつコンテキストに割り当てられる。
【０１２９】
本発明の第３の実施形態は、セクション１．３で説明され、またＩＴＵ−Ｔ勧告Ｈ．２６Ｌにより定義されるような画像符号化システムのためのコンテキストベースの算術コーダに関する。この第３の実施形態によれば、変換符号化画像ブロックについての非ゼロ変換係数の個数Ｎcが決定されて、少なくとも１つの他の変換符号化画像ブロックについてのＮc値に割り当てられたコンテキストを考慮に入れつつコンテキストに割り当てられる。
【０１３０】
本発明の好ましい実施形態は、上記３つの実施形態の機能性を兼備している。
【０１３１】
本明細書において前に説明されたように、ＩＴＵ−Ｔ勧告Ｈ．２６Ｌ  ＴＭＬ８の高複雑性プロファイルは、ＣＡＢＡＣとして知られているコンテキストベースの算術符号化の形式を使用する。Ｈ．２６Ｌに従って実装されるビデオエンコーダにおいて、ＣＡＢＡＣ法は、画像ピクセルのブロックを（ＩＮＴＲＡ符号化モードで）変換符号化したり予測エラー値のブロックを（ＩＮＴＥＲ符号化モードで）変換符号化したりすることにより生成された変換係数を含む、エンコーダにより生成される多種多様なタイプの情報をエンコードするために用いられる。画像ピクセルのブロックを変換符号化することにより生成される変換係数の２次元配列は、特定のスキャンモードに従ってスキャンされて１次元配列を生成する。Ｈ．２６Ｌには、そのようなスキャンモードが２つ定義されている。第１のものは「シングルスキャンモード」として知られているのに対して、他方は「ダブルスキャンモード」と呼ばれる。どちらのスキャンモードが用いられたとしても、変換係数のスキャンにより、係数値の２次元配列は、係数が既定の方法で順序付けされる１次元配列に変換される。１次元配列中の順序付けされた変換係数値は、ｒｕｎ−ｌｅｖｅｌ値に変換される。順序付けされた１次元配列中の最後のエントリはブロック終結記号であり、この記号は、Ｈ．２６Ｌ  ＴＭＬ８によれば、０に等しいｌｅｖｅｌ値の形を取る。このことは、順序付けされた配列中の最後の非ゼロ係数値がｒｕｎ−ｌｅｖｅｌペアに変換されたことを示す。
【０１３２】
ｒｕｎおよびｌｅｖｅｌ値は、各々に値０または１を割り当てることができる一連のビンにこれらの値を写像することによって２進数に変換（２値化）される（表１参照）。２値化されたｒｕｎおよびｌｅｖｅｌ値は次に、コンテキストに割り当てられ、コンテキストの別個のセットがｒｕｎおよびｌｅｖｅｌについて定義される。Ｈ．２６Ｌ  ＴＭＬ８によれば、所定のブロックタイプについて、ｌｅｖｅｌについて定義されたコンテキストのセットは、ｌｅｖｅｌが割り当てられるビン番号にのみによって決まる。より具体的には、Ｈ．２６ＬＴ  ＭＬ８によれば、ｌｅｖｅｌエンコーディングについて、４つのコンテキストが定義される。第１のものは第１のビンのためのものであり、第２のものは第２のビンのためのものであるのに対して、第３のコンテキストは、ｌｅｖｅｌの大きさを表している残りのビンのためのものである。残りのコンテキストは、ｌｅｖｅｌの符号のために使われる。ｒｕｎについては３つのコンテキストがあり、第１のものは第１のビンのためのものであり、第２のものは第２のビンのためのものであり、第３のものは残りすべてのビンのためのものである。ｒｕｎ値は常にゼロに等しいかゼロより大きいので、符号情報を表すための付加的コンテキストの必要は皆無である。
【０１３３】
１．１．  ｌｅｖｅｌについてのコンテキストモデル
本発明の第１の実施形態によれば、２値化されたｌｅｖｅｌ値をコンテキストに割り当てる時、ｌｅｖｅｌ値自身が写像されるビンに加え、先行ｒｕｎ−ｌｅｖｅｌペアのｌｅｖｅｌ値も考慮に入れられる。この文脈において、用語「先行ｒｕｎ−ｌｅｖｅｌペア」は、計数値の順序付けされた１次元配列中の先行する係数に対応するｒｕｎ−ｌｅｖｅｌペアを意味している。以下の疑似コードは、ｌｅｖｅｌ自身が写像されるビンおよび先行ｒｕｎ−ｌｅｖｅｌペアのｌｅｖｅｌ値の両方を考慮に入れつつ、コンテキストをｒｕｎ−ｌｅｖｅｌペアのｌｅｖｅｌ値に割り当てるための代表的な手順を示す。
【０１３４】
【数２】
0005635479.tif 000004
【０１３５】
式（２）において、ｐｒｅｖ＿ｌｅｖｅｌは、前回のｒｕｎ−ｌｅｖｅｌペアのｌｅｖｅｌ値の大きさである。ｐｒｅｖ＿ｌｅｖｅｌは、各ブロックの最初にゼロに初期化される。ダブルスキャンモードにおいては、ｐｒｅｖ＿ｌｅｖｅｌは、各スキャンの最初に、１ブロックにつき２回初期化される。パラメータＭＡＸ＿ＢＩＮ＿ＬＥＶＥＬは、ｌｅｖｅｌ値が写像されるビン番号がコンテキスト割り当てに影響する方法を制御する手段を提供する。より具体的には、そしてＨ．２６Ｌ  ＴＭＬ８による現行のコンテキストの割り当てと同様な方法で、ＭＡＸ＿ＢＩＮ＿ＬＥＶＥＬは、ＭＡＸ＿ＢＩＮ＿ＬＥＶＥＬより大きいか等しいすべてのビン番号が割り当てられるコンテキストを効果的に定義する。同様に、パラメータＭＡＸ＿ＬＥＶＥＬは、前回のｒｕｎ−ｌｅｖｅｌペアのｌｅｖｅｌ値がコンテキストの割り当てに影響する方法を制御する手段を提供する。図７ａおよび７ｂは、本発明の第１の実施形態に従って式（２）の疑似コードをＭＡＸ＿ＢＩＮ＿ＬＥＶＥＬ＝３およびＭＡＸ＿ＢＩＮ＿ＬＥＶＥＬ＝５で適用することによりコンテキストがｌｅｖｅｌ値に割り当てられる方法を例示する。原則として、符号化されるｌｅｖｅｌ値の統計的特徴に適するコンテキストのセットを定義するために、ＭＡＸ＿ＢＩＮ＿ＬＥＶＥＬとＭＡＸ＿ＬＥＶＥＬとのいかなる組み合わせも用いることができる。
【０１３６】
１.２.  ｒｕｎについてのコンテキストモデル
本発明の第２の実施形態によれば、セクション１.１に記載されたアプローチと同様なアプローチが、ｒｕｎ値をコンテキストに割り当てるために用いられる。より具体的には、２値化されたｒｕｎ値をコンテキストに割り当てる時、ｒｕｎ値自身が写像されるビン考慮するのに加え、ｒｕｎ値が属するｒｕｎ−ｌｅｖｅｌペアのｌｅｖｅｌも考慮に入れられる。以下の疑似コードは、ｒｕｎ自身が写像されるビンおよびｒｕｎ値が属するｒｕｎ−ｌｅｖｅｌペアのｌｅｖｅｌ値の両方を考慮に入れつつ、コンテキストをｒｕｎ−ｌｅｖｅｌペアのｒｕｎ値に割り当てるための代表的な手順を示す：
【０１３７】
【数３】
0005635479.tif 000005
【０１３８】
式（３）において、ｌｅｖｅｌは、ｒｕｎ−ｌｅｖｅｌペアのｌｅｖｅｌ値の大きさである。パラメータＭＡＸ＿ＢＩＮ＿ＲＵＮは、ｒｕｎ値が写像されるビン番号がコンテキストの割り当てに影響する方法を制御する手段を提供する。より具体的には、およびＨ．２６Ｌ  ＴＭＬ８による現行のコンテキストの割り当てと同様な方法で、ＭＡＸ＿ＢＩＮ＿ＲＵＮは、ＭＡＸ＿ＢＩＮ＿ＲＵＮより大きいか等しいすべてのビン番号が割り当てられるコンテキストを効果的に定義する。同様に、パラメータＭＡＸ＿ＲＵＮＬは、ｒｕｎ−ｌｅｖｅｌペアのｌｅｖｅｌ値がコンテキストの割り当てに影響する方法を制御する手段を提供する。図８ａおよび８ｂは、本発明の第２の実施形態に従って式（３）の疑似コードをＭＡＸ＿ＢＩＮ＿ＲＵＮ＝３およびＭＡＸ＿ＲＵＮＬ＝４で適用することによりコンテキストがｌｅｖｅｌ値に割り当てられる方法を例示する。原則として、符号化されるｒｕｎ値の統計的特徴に適するコンテキストのセットを定義するために、ＭＡＸ＿ＢＩＮ＿ＲＵＮとＭＡＸ＿ＲＵＮＬとのいかなる組み合わせも用いることができる。
【０１３９】
１．３  非ゼロ係数の個数についてのコンテキスト
本発明の第３の実施形態は特に、変換係数値の順序付けられた配列がｒｕｎおよびｌｅｖｅｌ値に変換される方法、および量子化された変換係数値の配列に対応するｒｕｎ−ｌｅｖｅｌペアの数を示す方法に関する。より具体的には、画像ピクセルまたは予測エラー値のブロックが変換符号化されて変換係数値の２次元配列を形成し、係数値の各々が量子化された後、配列中の非ゼロ量子化係数値の個数が決定される。Ｎcと呼ばれる値が、その数に割り当てられ、配列中の非ゼロ係数値の個数を明示的に示すために使用される。従って、本発明のこの実施形態によれば、ＥＯＢ記号、例えばゼロに等しいｌｅｖｅｌ値は、もはや必要とされない。
【０１４０】
量子化された変換係数は、所定のスキャン順序に従ってさらにスキャンされて、順序付けられた１次元配列を生成する。代わりに、Ｎcは、量子化された係数値を順序付けした後に決定することができる。次に、順序付けられた配列中の非ゼロ量子化係数の各々がｒｕｎ−ｌｅｖｅｌペアに変換される。本発明のこの実施形態によれば、ｒｕｎ−ｌｅｖｅｌペアのｌｅｖｅｌ値は、量子化された係数の値の大きさマイナス１であることを示し、ｒｕｎ値は、当該係数に先行する連続したゼロ値の量子化された係数の個数と対応する。ｌｅｖｅｌ値は、量子化された係数の値の大きさマイナス１に割り当てられる。なぜならば、ゼロに等しいｌｅｖｅｌ値は、ブロック終結標識としてもはや用いられないからである。これにより、ｌｅｖｅｌ情報を表すために必要とされるデータ量（例えば、ビット数）の節約がもたらされる。
【０１４１】
次に、ｌｅｖｅｌおよびｒｕｎ値は、Ｎc値がそうであるように、エントロピー符号化を用いてエンコードされる。Ｈ．２６Ｌ  ＴＭＬ８において実施されるＣＡＢＡＣ法のようなコンテキストベースの算術符号化方法が用いられる状況において、ｒｕｎおよびｌｅｖｅｌ値は、上記で記載されたような本発明の第１および／または第２の実施態様に従ってエンコードできる。代わりに、ｒｕｎおよびｌｅｖｅｌ値についてどのような他の適切なコンテキストモデルも用い得る。加えて、別個のコンテキストモデルがＮcについて定義される。本発明のこの実施形態によれば、所定のブロック中の非ゼロ量子化変換係数の個数を表すＮc値が最初に、対応するビン数を各々が有している一連のビンにこの値を写像することにより２値化される。次に、Ｎcが写像されるビン数およびＮc値がすでに割り当てられた少なくとも１つの他の画像ブロックまたはマクロブロックのＮcに基づいてＮcについてのコンテキストが決定される。以下の疑似コードは、Ｎc自身が写像されるビンおよび先行Ｎc値の両方を考慮に入れつつ、コンテキストをＮc値に割り当てるための代表的な手順を示す。
【０１４２】
【数４】
0005635479.tif 000006
【０１４３】
式（４）において、ｐｒｅｖ＿ｎｃは、前回のＮc値である。
【０１４４】
量子化された変換係数の所定のブロックについてのエンコードされたｌｅｖｅｌおよびｒｕｎ値がエンコーダからデコーダに伝送される場合、エントロピー符号化されたＮc値は、エンコードされたｒｕｎおよびｌｅｖｅｌ値の前に伝送される。デコーダにおいて、Ｎc値はデコードされ、当該ブロックについての量子化された変換係数値に対応するｒｕｎ−ｌｅｖｅｌペアが続く。エンコーダにおいてなされた対応する減算を補償するため、ｌｅｖｅｌ値がデコードされる際に＋１の値がｌｅｖｅｌ値の大きさに加えられる。
【０１４５】
本発明による画像符号化方法を用いる符号化効率の改善を実証するため、ＱＰ＝２８、２４、２０、１６についての結果を用いて平均ビットレート差分が計算される。表２は、ＴＭＬ８と比較した時のビットレート低下を百分率で示し、ＭＡＸ＿ＬＥＶＥＬ＝５およびＭＡＸ＿ＲＵＮ＝４である。すべてのフレームは、ＣＡＢＡＣモードでＩフレームとしてエンコードされる。表２に示されるように、ビットレート低下は０．９５〜４．７４％である。ＱＰ値が小さい場合に、改善はより顕著である。
【０１４６】
【表２】
0005635479.tif 000007
【０１４７】
表２において、表の第１行に見られる名称は、Gisle Bjontegaard ”Recommended Simulation Conditions for H.26L（Ｈ．２６Ｌのための推奨シミュレーション条件）”（VCG-M75, ITU-T Video Coding Experts Group, Austin, Texas, USA, 2-4 April, 2001）において用いられるピクチャである。
【０１４８】
図９を参照すると、送信側のエンコーダ１０は、本発明によれば、前回のｌｅｖｅｌおよびｒｕｎを蓄えるためのユニット１６を含んでいる。図９に示されるように、所定のブロックについてのｒｕｎ−ｌｅｖｅｌペア１０２が、写像ユニット１２へ提供され、このユニットが、各ビンが０または１の値を持っている一連のビンへペアを写像する。ｒｕｎ−ｌｅｖｅｌペアを表すシーケンス中のビンのロケーションは、ビン番号と呼ばれる。ビン番号は、信号１０４により表される。信号１０４およびユニット１６により提供された前に符号化されたｌｅｖｅｌ値１０８に基づき、割り当てユニット１４は、コンテキストをビン番号に割り当てる。信号１０６により示されるコンテキストは、適応算術コーダ２０に提供される。１の発生確率および０の発生確率は、確率推定モジュール２２により推定される。確率推定値１２０に基づき、算術エンコーディングユニット２４がビンをエンコードする。確率推定を更新するため、フィードバック信号１２４がエンコーダ２４から確率推定モジュール２２に提供される。エンコードされた情報は、後に使用するため、デコーダに送られるか記憶装置中に蓄えられるビットストリーム１２２にされる。
【０１４９】
好ましくは、エンコーダ１０はユニット１８も含んでおり、このユニットは、ｒｕｎ−ｌｅｖｅｌペアが算術エンコーダ２０に提供される前に、ブロック中の非ゼロ係数の個数、Ｎcを算術エンコーダ２０に提供することができ、その結果、Ｎcもエンコードされてビットストリーム１２２中に組み込まれる。Ｎcは信号１１０により表される。Ｎcを用いることにより、ブロック終結（ＥＯＢ）記号をデコーダに送出する必要は皆無である。従来技術では、ＥＯＢ記号として０のｌｅｖｅｌ値が用いられる。より具体的には、Ｎcは変換および量子化の後に見出され、エントロピーエンコーディングを用いてエンコードされる。非ゼロ係数の個数が既知であれば、ブロック終結を知らせるために０−ｌｅｖｅｌ値を用いることはもはや必要ではないことに注目すべきである。従って、量子化された係数の値から１を減算してｌｅｖｅｌ値を変更することが可能である。
【０１５０】
受信側では、図１０に示されるように、エンコーダ１０により提供されるビットストリーム１２２を受信するためにデコーダ５０が用いられる。算術符号化されたデータシンボルを表す受信されたビットストリームは、参照番号２０２により示される。最初に、前にデコードされたシンボルに基づいて、コンテキストがコンテキスト割り当てブロック６６において計算され、ビン値の確率推定値が確率推定ブロック６２において更新される。確率推定値更新される根拠である前にデコードされた記号は、参照番号２０５により示される。コンテキスト割り当てブロック６６において実行されるようなコンテキスト割り当て、および確率推定ブロック６２において実行されるような確率推定値の計算は、エンコーダ１０におけるものと同様である。受信されたビット２０２は次に、算術コーダ６０中の算術デコードエンジン６４に供給され、そこでビットは、計算されたコンテキストおよびビン値の現在の確率推定値２０４を用いて、デコードされたビン値２０６に変換される。デコードされたビン２０８は、ブロック６８においてｒｕｎおよびｌｅｖｅｌの値に写像される。ブロック中の非ゼロ係数の個数、Ｎcがエンコーダ１０において符号化され、受信されたビットストリーム２０２中に提供されれば、信号２１４がビン−値写像モジュール６８に提供され、それによって、量子化された係数は、ｌｅｖｅｌ値に１を加えることにより復元される。
【０１５１】
図１１は、本発明の好ましい実施形態による画像符号化方法を例示するフローチャートである。示されるように、この方法５００は、画像がエンコーダにより受信されるステップ５１０で開始する。受信された画像は、ステップ５２０において複数のブロックに分割される。各ブロックは、ステップ５３０においてスキャンされ、ブロック中の量子化された係数のｌｅｖｅｌおよびｒｕｎがステップ５４０において得られる。従来技術の符号化方式と対照的に、本発明は、ステップ５５０でのコンテキスト割り当てにおいて前回のｌｅｖｅｌも用いる。特に、量子化された係数のｌｅｖｅｌ値を表すビンへのコンテキスト割り当ては、セクション１．１で説明されたように、前に符号化されたｌｅｖｅｌの値を考慮に入れる。同様に、量子化された係数のｒｕｎ値を表すビンへのコンテキスト割り当ては、セクション１．２で説明されたように、ｌｅｖｅｌ値を考慮に入れる。割り当てられたコンテキストは、ステップ５６０においてエンコードするために算術コーダに送られる。加えて、Ｎcすなわち非ゼロ量子化係数の個数が、ステップ５３０においてブロックがスキャンされている間またはその後に決定され、Ｎcは、セクション１．３で説明されたように、Ｎcおよびコンテキストがデコーダに提供される前に、ステップ５６０においてエンコードされる。
【０１５２】
代わりに、画像符号化方法は、図１１に示されるように、コンテキストが割り当てられる時に、前にエンコードされたｌｅｖｅｌまたはｒｕｎの値を考慮することなく、Ｎcを示す信号を受信側にただ単に伝えることによって改善できる。図１２に示されるように、ステップ５５０でコンテキストを割り当てるために前に符号化されたｌｅｖｅｌおよびｒｕｎをステップ５４０において得る代わりに、Ｎcはステップ５４２において得られて提供される。ステップ５５０において割り当てられたコンテキストが送られる前に、Ｎcは、ステップ５６０においてエンコードするために算術コーダに送られる。Ｎcを送ることによって、ＥＯＢ記号をデコーダに送る必要は皆無になる。
【０１５３】
本発明の好ましい実施形態に関して本発明を説明してきが、実施形態の形状および詳細における前述および様々なその他の変化、省略および変更を、本発明の範囲を逸脱することなくなし得ることが当業者によって理解されるであろう。
【図１】
0005635479.tif 000008
【図２】
0005635479.tif 000009
【図３】
0005635479.tif 000010
【図４】
0005635479.tif 000011
【図５】
0005635479.tif 000012
【図６ａ】
0005635479.tif 000013
【図６ｂ】
0005635479.tif 000014
【図６ｃ】
0005635479.tif 000015
【図６ｄ】
0005635479.tif 000016
【図７ａ】
0005635479.tif 000017
【図７ｂ】
0005635479.tif 000018
【図８ａ】
0005635479.tif 000019
【図８ｂ】
0005635479.tif 000020
【図９】
0005635479.tif 000021
【図１０】
0005635479.tif 000022
【図１１】
0005635479.tif 000023
【図１２】
0005635479.tif 000024