コンテキストベースの適応2値算術符号化方法およびシステム
【課題】複数のピクセルを有するブロックに画像が分割される画像符号化方法。
【解決手段】ピクセルのブロックに対して変換符号化演算が実行されて対応する変換計数値のブロックが生成され、このブロックがスキャンされて、第1および第2の数値を有する複数の数値ペアにより表されるスキャンされた計数値の配列を生成する。第1および第2の数値は、数値ペアを表す複数のコンテキストの1つに割り当てられる(14)。数値ペアの第1の数値が、別の数値ペアの第1の数値に基づいてコンテキストに割り当てられる。代わりに、数値ペアの第2の数値が、数値ペア(16)の第1の数値に基づいてコンテキストに割り当てられる。さらに、変換計数値のブロック中の非ゼロ計数値の個数を示す数値が決定されてコンテキストに割り当てられる。
【解決手段】ピクセルのブロックに対して変換符号化演算が実行されて対応する変換計数値のブロックが生成され、このブロックがスキャンされて、第1および第2の数値を有する複数の数値ペアにより表されるスキャンされた計数値の配列を生成する。第1および第2の数値は、数値ペアを表す複数のコンテキストの1つに割り当てられる(14)。数値ペアの第1の数値が、別の数値ペアの第1の数値に基づいてコンテキストに割り当てられる。代わりに、数値ペアの第2の数値が、数値ペア(16)の第1の数値に基づいてコンテキストに割り当てられる。さらに、変換計数値のブロック中の非ゼロ計数値の個数を示す数値が決定されてコンテキストに割り当てられる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、静止画像およびビデオシーケンスの圧縮に関し、より具体的には、コンテキストベースの適応2値算術符号化方法およびシステムに関する。
【背景技術】
【0002】
非圧縮形式のデジタル画像は、画像ピクセルすなわち画素の配列を含む。例えば、クオーター共通交換形式(Quarter Common Interchage Format)(QCIF)として知られる、一般に用いられるデジタル画像形式において、画像、すなわちフレームは、176×144ピクセルの配列で配置された25,344個のピクセルを含む。次に各ピクセルは、ピクセルの明るさ(輝度)および/または色(クロミナンス)についての情報を伝えるある数のビットにより表される。デジタル画像中のピクセルの輝度および/またはクロミナンスを表すための種々の方式が存在する。一般的に、いわゆるYUVカラーモデルが用いられる。輝度、すなわちY成分は、ピクセルの輝度を表すのに対して、ピクセルの色は、2つのクロミナンスすなわち色差成分であるラベル付けされたUおよびVにより表される。光の3原色を表す成分に基づくRGB(赤、緑、青)カラーモデルのような他のカラーモデルも一般的に用いられる。しかしながら、原色に基づくカラーモデルと比較して、輝度/クロミナンス表現に基づくカラーモデルには利点がある。これらの利点は、色の変化に対するよりも強度の変化に対してより敏感である人間の視覚系の性質に由来する。YUVカラーモデルは典型的には、輝度成分(Y)よりもクロミナンス成分(U、V)についてより低い空間分解能を用いることにより、この特性を利用する。このように、知覚された画質が顕著に低下することなく、画像中の色情報を表すために必要とされる情報量を低減できる。
【0003】
クロミナンス成分のより低い空間分解能は、通常、サブサンプリングによって達成される。典型的には、16×16画像ピクセルのブロックが、輝度情報を含む8×8ピクセルの4つのブロックにより表され、対応するクロミナンス成分は、輝度成分中の16×16ピクセルのブロックに等しい画像領域を表す8×8ピクセルの1つのブロックにより各々表される。クロミナンス成分はこのように、xおよびy方向において2のファクターにより空間的にサブサンプリングされる。結果として生じる、4つの8×8ピクセル輝度ブロックと空間的に対応する2つの8×8ピクセルクロミナンスブロックとのアセンブリは一般的に、YUVマクロブロック、または略してマクロブロックと呼ばれる。QCIF画像は、そのようなマクロブロックを11×9個含む。もし輝度ブロックおよびクロミナンスブロックが、8ビット分解能により(つまり、0から255の範囲の数により)表されれば、各マクロブロックに関連した輝度およびクロミナンス情報を表すために必要な総ビット数は、6×(8×8×8)=3072ビットである。従って、QCIF形式の画像を表すために必要なビット数は、99×3072=304,128ビットである。
【0004】
デジタルカラー画像の双方のクロミナンス成分が2のファクターによりサブサンプリングされる上記の状況においてさえ、ほんの中程度サイズ(例えば、176×144ピクセル)の非圧縮画像が、これを表現するために多くのビットを必要とすることが認識されなければならない。このことは、非圧縮形式のデジタル画像を記憶するために必要とされるメモリー量が極端に大きいことを意味している。さらに、もし静止画像が、例えば利用可能な帯域幅が中程度ないし低いデータ通信ネットワーク上を転送されるのであれば、伝送時間が非常に長引いたり、ネットワークが輻輳したりすることがある。もしデジタルビデオシーケンスとして一連の画像をリアルタイムで伝送することが要求されれば、帯域幅要件はいっそう厳しいものになる。例えば、YUVカラーモデルを用いて表される、未圧縮QCIF形式の一連の画像を含むデジタルビデオシーケンスを毎秒30フレームのレートで伝送するには、9メガビット/秒(毎秒100万ビット)以上が要求される。そのような高いデータレートは、必要とされる記憶容量、伝送チャンネル容量およびハードウェア性能が非常に大きいため、ビデオ記録、伝送および表示の用途に使用するのは一般に非現実的である。もしビデオシーケンスが、ISDN(Integrated Services Digital Network:統合サービスデジタル網)またはPSTN(Public Service Telephone Network:公衆電話網)のような固定回線網上をリアルタイムで伝送されるのであれば、利用可能なデータ伝送帯域幅は、典型的には64キロビット/秒のオーダーである。伝送が少なくとも部分的に無線通信リンク上で行われる移動ビデオ電話技術において、利用可能な帯域幅は20キロビット/秒と低くなることがある。このことは、低帯域幅通信網上でのデジタル画像またはビデオシーケンスの伝送を可能にするために、ビデオデータを表すために用いられる情報量のかなりの低減を達成しなければならないことを意味している。それでもやはり、画像/ビデオシーケンスの品質を大きく劣化させることなくこの低減が達成されることが望ましい。
【0005】
過去何年にもわたり、デジタル画像およびビデオシーケンスを表すために必要とされるデータ量の低減に多くの研究活動が傾注されてきており、その結果、デジタル静止画像およびデジタルビデオを圧縮するための多くの様々な方式および国際規格が開発された。今日存在するほとんどすべての静止画像およびビデオのエンコーダにおいて用いられる画像圧縮の基本的手法は、ブロックベースの変換符号化を伴う。典型的には、変換符号化は、画像データを、ピクセル値を含む表現から、係数値のセットを含む形式へ翻訳する。計数値の各々は、当該変換の基底関数のための加重係数(乗数)である。典型的なデジタル画像内にかなりの程度の空間的冗長性があることを示し得る。実際面では、このことは、一般に画像内の任意のピクセルの値は、そのすぐ近傍の他のピクセルの値と実質的に同じであること、すなわち、ピクセル値の間には相当の相関関係があることを意味している。2次元離散コサイン変換(DCT)のような特定の数学的変換が画像データに対して実行されると、この空間的冗長性が大きく低減され、それによって、画像データのよりコンパクトな表現が生成されることがさらに知られている。
【0006】
JPEG静止画像符号化において用いられるブロックベースの変換符号化
広く使用されているJPEG規格のベースラインモードに従って実行されるような静止画像圧縮において、符号化される画像は最初に、各ブロックが、例えば画像ピクセルの8×8配列を含む重複しない正方形ブロックの配列に分割される。JPEGベースラインの場合、次に2次元離散コサイン変換(DCT:Discrete Cosine Transform)が画像ブロックの各々に独立して適用される。これは、画像データをピクセル値領域から空間周波数領域へ変換して対応する計数値のセットを生成する効果があり、計数値の各々は、2次元DCTの基底関数のための加重ファクターである。このようにして生成された係数値は量子化され、次に、それらの表現に必要なデータ量(すなわち、ビット数)をさらに減らすために、エントロピー符号化を用いて無損失な方法で符号化される。JPEGベースラインによれば、エントロピーコーダは、ハフマン符号化のみを使用して圧縮ビットストリームを生成する。なお、他のモードでは算術符号化を代わりに用い得る。最後に、画像および符号化のパラメータ(例えば、圧縮タイプ、量子化および符号化テーブル、画像サイズ等)を記述するデータが、エントロピーエンコーダにより生成されたビットストリーム中に埋め込まれる。JPEG規格が4つの代替符号化モードを含んでおり、量子化および使用できる符号化テーブルに制約をほとんど加えないので、これは、JPEG圧縮ビットストリームが種々のプラットホーム間で交換されることおよびどのような曖昧性もなく画像が再構成されることを可能にするために必要である。
【0007】
フィルム上に記録された普通の映画のようなデジタルビデオシーケンスは、一連の静止画像(「フレーム」と呼ばれることが多い)を含み、動きの幻覚は、そのフレームを比較的高速で、典型的には毎秒15ないし30フレームで次々に表示することによって作り出される。任意の静止画像中におけるように、デジタルビデオシーケンス内の個々のフレームのピクセル値は、かなりの空間冗長性を示す。従って、デジタルビデオシーケンスのフレームは、ちょうど個々の静止画像のように、ブロックベースの変換符号化に適する。
【0008】
ビデオシーケンスの連続したフレーム中の画像も、かなり類似する傾向があり、従って、1つのビデオフレームと次のビデオフレームとの間の全体的変化はかなり小さい。このことは、典型的なデジタルビデオシーケンス内に相当な時間的冗長性があることを意味している。例えば、1つの場面は、背景のようないくつかの静止要素と、いくつかの動く領域、例えばニュースキャスターの顔とを含み得る。シーケンスの連続フレーム中では、背景が変更されないままであり、場面中の唯一の動きがニュースキャスターの表情の変化に起因するということがあり得る。従って、ビデオシーケンスの圧縮された表現を形成する場合、空間冗長性を減らす方法に加えてシーケンスの画像データの時間的冗長性を減らす手法を用いる可能性もあり、その結果、さらなるデータ圧縮を達成することが可能になる。
【0009】
ハイブリッドビデオエンコーダ/デコーダ
従来技術のビデオ符号化システムは、ビデオシーケンス中の時間的冗長性を減らすために「動き補償予測」として知られている手法を利用する。動き補償予測を使用すると、デジタルビデオシーケンス中のいくつか(しばしば多く)のフレームの画像内容が、「参照フレーム」として知られるシーケンスの1つ以上の他のフレームから「予測される」。画像内容の予測は、符号化(圧縮)されるフレームと参照フレームとの間での画像のオブジェクトまたは領域の動きを「動きベクトル」を用いてトレースすることによって達成される。一般に、参照フレームは、ビデオシーケンス中で、符号化されるフレームに先行するかこれに続くことができる。しかしながら、本明細書中の後の議論から明らかになるように、動き補償予測をビデオシーケンスのすべてのフレームに適用することは適当(または可能)ではなく、従って、少なくとも2種類の符号化が従来技術のビデオ符号化システムにおいて使用される。
【0010】
動き補償予測を用いて圧縮されるビデオシーケンスのフレームは、INTER符号化またはPフレームと一般に呼ばれる。ビデオフレームの画像内容の十分に精密な表現が動き補償予測単独で提供されることはめったになく、従って、各INTER符号化フレームをいわゆる「予測エラー」(PE)フレームに設けることが一般に必要である。後に本明細書中でより詳細に説明されるように、予測エラーフレームは、INTER符号化フレームのデコードされたバージョンと符号化されるフレームの画像内容との間の差分を表す。より具体的には、予測エラーフレームは、符号化されるフレーム中のピクセル値と当該フレームの予測された(INTER符号化された)バージョンに基づいて形成された対応する再構築されたピクセル値との間の差分を表す値を含む。その結果、予測エラーフレームは、静止画像と同様な特徴を有し、静止画像を表すのに必要なデータ量(ビット数)を減らすためにブロックベースの変換符号化が適用できる。
【0011】
動き補償予測を用いて圧縮されないビデオシーケンスのフレームは、INTRA符号化またはIフレームと呼ばれる。一般に、INTRA符号化されたフレームは、符号化されるフレームのピクセル値にブロックベースの変換符号化を直接適用することによって生成される。さらに、可能な場合には、INTRA符号化されたフレームのブロックは、同じフレーム内の前に符号化されたブロックから予測される。INTRA予測として知られているこの手法は、INTRA符号化されたフレームを表すために必要なデータ量をさらに減らす効果がある。
【0012】
ブロックベースの変換符号化および動き補償予測の原理をより詳細に例示するため、図1を参照するが、この図は、圧縮された(符号化された)ビデオビットストリームを生成すためにINTRA符号化とINTER符号化との組み合わせを使用する一般的なハイブリッドビデオエンコーダの概略図である。対応するデコーダが図2に例示されており、本明細書中で後に説明される。
【0013】
ビデオエンコーダ300は、カメラまたは他のビデオソース(図示せず)からデジタルビデオ信号を受信するための入力301を備えている。エンコーダは、ブロックベースの離散コサイン変換(DCT)を実行するように構成された変換ユニット304、量子化器306、逆量子化器308、逆ブロックベースの離散コサイン変換(IDCT)を実行するように構成された逆変換ユニット310、結合器312および316、ならびにフレーム記憶装置320も含んでいる。エンコーダは、動き推定器330、動き場コーダ340、および動き補償予測器350をさらに備えている。スイッチ302および314は、エンコーダをビデオ符号化のINTRAモードとビデオ符号化のINTERモードとの間で切り替えるために、コントロールマネージャー360により協調的に操作される。エンコーダ300は、遠方の受信端末へさらに伝送するため、または、例えば、コンピュータハードドライブのような大容量記憶媒体(図示せず)に記憶するためにエンコーダ300によって生成された種々のタイプの情報から、単一ビットストリーム335を形成するビデオ多重コーダ370も備えている。
【0014】
エンコーダ300は以下の通り動作する。ビデオソースから入力301へ提供される非圧縮ビデオの各フレームは、受信され、好ましくはラスタ−スキャン方式でマクロブロックごとに処理される。新しいビデオシーケンスの符号化が開始すると、シーケンスの最初のフレームが、INTRA符号化フレームとして符号化される。その後、1)符号化されている現在のフレームが、その予測に用いられる参照フレームと非常に異なるため、過剰な予測エラー情報が生成されると判定される、2)あらかじめ定義されたINTRAフレーム繰返し間隔が満了した、または、3)フレームがINTRA符号化形式で提供されることを要求する受信端末からのフィードバックが受信される、という条件の1つが満たされない限り、エンコーダは各フレームをINTER符号化形式で符号化するようにプログラムされる。
【0015】
条件1)の発生は、結合器316の出力を監視することにより検出される。結合器316は、符号化されているフレームの現在のマクロブロックと、動き補償予測ブロック350において生成される予測との間の差分を形成する。もしこの差分の測定値(例えば、ピクセル値の絶対差分の合計)が、所定のしきい値を超過すれば、結合器316はコントロールライン319を介してコントロールマネージャー360に通知し、コントロールマネージャー360は、エンコーダ300をINTRA符号化モードに切り替えるため、コントロールライン313を介してスイッチ302および314を操作する。条件2)の発生は、タイマーが満了するかフレームカウンターがフレームの所定数に達すれば、コントロールマネージャー360が、スイッチ302および314を操作して、コントロールライン313を介してエンコーダをINTRA符号化モードに切り替えるように、コントロールマネージャー360に実装されたタイマーまたはフレームカウンターよって監視される。もしコントロールマネージャー360が、INTRAフレームリフレッシュが受信端末により要求されていることを示すフィードバック信号を、例えば受信端末から、コントロールライン321を介して受信すれば、条件3)が起動される。例えば、前に伝送されたフレームが、その伝送の間の干渉によりひどく損なわれ、受信器においてデコードすることが不可能になれば、そのような条件が生じることがある。この状況において、受信デコーダは、次のフレームがINTRA符号化形式で符号化されるように要求を出し、それにより、符号化シーケンスを再初期化する。
【0016】
INTRA符号化モードにおけるエンコーダ300の操作を説明する。INTRA符号化モードにおいて、コントロールマネージャー360は、スイッチ302を操作して入力ライン318からビデオ入力を受け入れる。ビデオ信号入力は、入力301から入力ライン318を介してマクロブロックごとに受信される。それらが受信されると、マクロブロックを構成する輝度およびクロミナンス値のブロックがDCT変換ブロック304に送られ、この変換ブロックは、値の各ブロックに対して2次元離散コサイン変換を実行して、各ブロックについてDCT係数の2次元配列を生成する。各マクロブロックが、輝度値の8×8ピクセル4つと、空間的に対応するクロミナンス値の8×8ピクセル2つとを含む以前に説明したような状況において、DCT変換ブロック304は、各ブロックについて係数値の8×8配列を生成する。
【0017】
各ブロックについてのDCT係数は量子化器306に送られ、そこで量子化パラメータQPを用いて量子化される。量子化パラメータQPの選択は、コントロールライン315を介してコントロールマネージャー360により制御される。量子化により情報の損失が生じるが、これは、量子化された係数は、当初DCT変換ブロック304により成生された係数よりも数値精度が低いからである。これにより、ビデオシーケンスの各画像を表すために必要なデータ量を低減できるさらなる機構がもたらされる。しかしながら、本質的に無損失なDCT変換とは異なり、量子化により生じたた情報の損失は、画質における不可逆的劣化を引き起こす。DCT係数に適用される量子化の程度が大きくなればなるほど、画質の損失はより大きくなる。
【0018】
各ブロックについての量子化されたDCT係数は、図1のライン325により示されるように、量子化器306からビデオ多重コーダ370に送られる。ビデオ多重コーダ370は、ジグザグスキャン手順を用いて各ブロックについての変換係数を順序付けする。この操作により、量子化された変換係数の2次元配列が、1次元配列に変換される。図3に示されるような典型的なジグザグスキャン順序は、係数を空間周波数のほぼ昇順に順序付けする。これも、1次元配列中により早く配置された係数がその配列中により遅く配置された係数よりも大きい絶対値を有する確率が強くなるように、係数をそれらの値に従って順序付ける傾向がある。これは、より低い空間周波数が画像ブロック内でより高い振幅を有する傾向があるからである。その結果、量子化された変換係数の1次元配列中の後ろの方の値は一般にゼロである。
【0019】
DCT変換係数のrun−level符号化
典型的には、ビデオ多重コーダ370は、1次元配列中の各非ゼロ量子化された係数を、levelおよびrunと呼ばれる2つの値で表す。levelは、量子化された係数の値であり、runは、当該係数に先行する連続したゼロ値係数の個数である。ある特定の係数についてのrunおよびlevel値は、level値が、関連するrun値に先行するように順序付けされる。ゼロに等しいlevel値は、ブロック中に非ゼロ係数値がもはやないことを示すために用いられる。この0−level値は、EOB(end-of-block:ブロック終結)記号と呼ばれる。
【0020】
エントロピー符号化
runおよびlevel値は、ビデオ多重コーダ370中でエントロピー符号化を用いてさらに圧縮される。エントロピー符号化は、符号化されるデータ集合内のシンボルが様々な発生確率を一般に有しているという事実を利用する無損失演算である。従って、各シンボルを表すために固定のビット数を用いる代わりに、発生する確率がより高いシンボルが、より少ないビットを有する符号語により表されるように、可変のビット数が割り当てられる。この理由から、エントロピー符号化はしばしば可変長符号化(Variable Length Coding:VLC)と呼ばれる。levelおよびrunの特定の値は他の値よりも発生する確率が高いので、エントロピー符号化手法は、runおよびlevel値を表すのに必要なビット数を減らすために効果的に用い得る。いくつかの異なる方法を、エントロピー符号化の実施に用いることができる。例えば、runおよびlevelパラメータのエントロピー符号化は、符号化されるデータのセット中の各可能な記号とその対応する可変長コードとの間の写像を定義するルックアップテーブルを用いて実施できる。そのようなルックアップテーブルは、符号化されるシンボルと同一のシンボルを含みかつ同様な統計的特性を有するトレーニングマテリアルの統計解析により定義されることが多い。算術符号化として知られている別の手法も、runおよびlevel値を可変長符号語に変換するために用い得る。算術符号化において、シンボルのグループ、例えば、量子化された変換係数のブロックについてのrunおよびlevel値は、浮動小数点10進数として符号化される。
【0021】
適切な方法を用いてrunおよびlevel値がひとたびエントロピー符号化されると、ビデオ多重コーダはさらに、それらの値を、当該情報の種類に適した可変長符号化方法を用いてやはりエントロピー符号化された制御情報と結合させて、符号化された画像情報の単一の圧縮されたビットストリーム335を形成する。
【0022】
マクロブロックの局所的にデコードされたバージョンも、エンコーダ300中で形成される。これは、量子化器306により出力された各ブロックについての量子化された変換係数を、逆量子化器308を通して送り、逆DCT変換を逆変換ブロック310中で適用することによって行われる。このようにして、ピクセル値の再構成された配列が、マクロブロックの各ブロックについて構成される。その結果生じるデコードされた画像データは、結合器312に入力される。INTRA符号化モードにおいて、スイッチ314は、スイッチ314を介した結合器312への入力がゼロになるように設定される。このようにして、結合器312により実行される演算は、デコードされた画像データを変更されないまま送ることに等しい。
【0023】
現在のフレームの以降のマクロブロックが受信され、前に説明されたエンコードおよびデコードステップを、ブロック304、306、308、310、および312で受けるにつれて、INTRA符号化されたフレームのデコードされたバージョンがフレーム記憶装置320中に蓄積される。現在のフレームの最後のマクロブロックがINTRA符号化され、続いてデコードされた時、フレーム記憶装置320は、その後受信されるINTER符号化形式のビデオフレームを符号化する際に予測参照フレームとして使用するために利用可能な完全にデコードされたフレームを含んでいる。
【0024】
INTER符号化モードでのエンコーダ300の演算を説明する。INTER符号化モードにおいて、コントロールマネージャー360は、結合器316の出力を含むその入力をライン317から受信するためにスイッチ302を操作する。結合器316は、入力301からマクロブロックごとにビデオ入力信号を受信する。マクロブロックを構成する輝度およびクロミナンス値のブロックを結合器316が受信するにつれて、結合器は予測エラー情報の対応するブロックを形成する。予測エラー情報は、当該ブロックと、動き補償予測ブロック350において生成されたその予測との差分を表す。より具体的には、マクロブロックの各ブロックについての予測エラー情報は値の2次元配列を含み、値の各々は、符号化されている輝度またはクロミナンス情報のブロック中のピクセル値と、以下で説明される手順に従いそのブロックについての動き補償予測を形成することにより得られるデコードされたピクセル値との差分を表している。従って、各マクロブロックが、輝度値の8×8ピクセルブロック4つと、空間的に対応するクロミナンス値の8×8ピクセルブロック2つとを含む状況において、マクロブロックについての予測エラー情報は、輝度予測エラー値の8×8ブロック4つと、空間的に対応するクロミナンス予測エラー値の8×8ブロック2つとを同様に含んでいる。
【0025】
マクロブロックの各ブロックについての予測エラー情報は、DCT変換ブロック304に送られ、このブロックが、予測エラー値の各ブロックに対して2次元離散コサイン変換を実行して各ブロックについてDCT変換係数の2次元配列を生成する。従って、各マクロブロックについての予測エラー情報が、輝度予測エラー値の8×8ブロック4つと、空間的に対応するクロミナンス予測エラー値の8×8ブロック2つとを含む状況において、DCT変換ブロック304は、各予測エラーブロックについて変換係数値の8×8配列を生成する。各予測エラーブロックについての変換係数は、量子化器306に送られ、そこで、INTRA符号化モードでのエンコーダの演算に関して上記で説明した方法と類似した方法で、量子化パラメータQPを用いて量子化される。やはり、量子化パラメータQPの選択は、コントロールライン315を介してコントロールマネージャー360により制御される。
【0026】
マクロブロックの各ブロックについての予測エラー情報を表す量子化されたDCT係数は、図1のライン325により示されるように、量子化器306からビデオ多重コーダ370に送られる。INTRA符号化モードにおけるように、ビデオ多重コーダ370は、前に説明したジグザグスキャン手順(図3参照)を用いて各予測エラーブロックについての変換係数を順序付けし、次に、各非ゼロ量子化係数をlevelおよびrun値として表す。コーダは、INTRA符号化モードに関して上記で説明した方法と類似の方法で、エントロピー符号化を用いてrunおよびlevel値をさらに圧縮する。ビデオ多重コーダ370は、ライン326を介して動き場符号化ブロック340から動きベクトル情報(以下で説明される)を、そしてコントロールマネージャー360から制御情報も受信する。コーダは、動きベクトル情報をエントロピー符号化して、エントロピー符号化された動きベクトル、予測エラーおよび制御情報を含む符号化された画像情報の単一ビットストリーム335を形成する。
【0027】
マクロブロックの各ブロックについての予測エラー情報を表す量子化されたDCT係数も、量子化器306から逆量子化器308へ送られる。ここで、それらは逆量子化され、結果的に生じる逆量子化されたDCT係数のブロックが逆DCT変換ブロック310に適用され、そこで逆DCT変換を受けて予測エラー値の局所的にデコードされたブロックを生成する。予測エラー値の局所的にデコードされたブロックは、次に結合器312に入力される。INTER符号化モードにおいて、スイッチ314は、動き補償予測ブロック350により生成されるマクロブロックの各ブロックについての予測ピクセル値も結合器312が受信するように設定される。結合器312は、予測エラー値の局所的にデコードされたブロックの各々を、予測されたピクセル値の対応するブロックと結合して、再構成された画像ブロックを生成してそれらをフレーム記憶装置320内に格納する。
【0028】
ビデオ信号の以降のマクロブロックがビデオソースから受信され、前に説明されたエンコードおよびデコードステップをブロック304、306、308、310、312で受けるにつれて、INTER符号化されたフレームのデコードされたバージョンがフレーム記憶装置320中に蓄積される。フレームの最後のマクロブロックがINTER符号化され、続いてデコードされた時、フレーム記憶装置320は、その後受信されるINTER符号化形式のビデオフレームをエンコードする際の予測参照フレームとして使用するために利用可能な完全にデコードされたフレームを含む。
【0029】
現在のフレームのマクロブロックについての予測の形成を説明する。INTER符号化形式でエンコードされたどのようなフレームも、動き補償予測のための参照フレームを必要とする。このことは、必然的に,ビデオシーケンスをエンコードする時、エンコードされる最初のフレームは、それがシーケンス中の最初のフレームであろうと他のフレームであろうと、INTRA符号化された形式でエンコードされなければならないことを意味している。このことは、ひいては、ビデオエンコーダ300がコントロールマネージャー360によりINTER符号化モードに切り替えられると、前にエンコードされたフレームを局所的にデコードすることによって形成された完全な参照フレームが、エンコーダのフレーム記憶装置320中ですでに利用可能であることを意味している。一般に、参照フレームは、INTRA符号化されたフレームかINTER符号化されたフレームを局所的にデコードすることによって形成される。
【0030】
現在のフレームのマクロブロックについての予測形成における最初のステップは、動き推定ブロック330により実行される。動き推定ブロック330は、符号化されるフレームの現在のマクロブロックを構成する輝度およびクロミナンス値のブロックをライン328を介して受信する。動き推定ブロックは次に、現在のマクロブロックと実質的に一致す参照フレーム中の領域を識別するために、ブロックマッチング演算を実行する。ブロックマッチング演算を実行するために、動き場推定ブロックは、フレーム記憶装置320中に格納された参照フレームデータにライン327を介してアクセスする。より具体的には、動き推定ブロック330は、検査中のマクロブロックと、フレーム記憶装置320中に格納された参照フレームからの最もマッチする候補ピクセル領域との間におけるピクセル値の差分を表す差分値(例えば、絶対差分の合計)を計算することによりブロックマッチングを実行する。参照フレームの所定調査領域内の考えられるすべてのオフセットにおける候補領域についての差分値が生成され、動き推定ブロック330が、最小の計算された差分値を決定する。最小の差分値を生み出す、現在のフレーム中のマクロブロックと、参照フレーム中のピクセル値の候補ブロックとの間のオフセットは、当該マクロブロックについての動きベクトルを定義する。
【0031】
動き推定ブロック330がマクロブロックについての動きベクトルをひとたび生成すると、このブロックは、動きベクトルを動き場符号化ブロック340に出力する。動き場符号化ブロック340は、基底関数および動き係数のセットを含む動きモデルを用いて、動き推定ブロック330から受信された動きベクトルを見積もる。より具体的には、動き場符号化ブロック340は、動きベクトルが、基底関数を掛けられた時に、動きベクトルの近似値を形成する動作係数値のセットを表す。典型的には、2つの動作係数と基底関数のみを有する並進運動モデルが用いられる。
【0032】
動き係数は、動き場符号化ブロック340から動き補償予測ブロック350へ送られる。動き補償予測ブロック350は、動き推定ブロック330により識別されたピクセル値の最もマッチする候補領域もフレーム記憶装置320から受信する。動き場符号化ブロック340により発生された動きベクトルの近似表現と、参照フレームからのピクセルの最もマッチする候補領域のピクセル値とを用いて、動き補償予測ブロック350は、マクロブロックの各ブロックについての予測されたピクセル値の配列を成生する。予測されたピクセル値の各ブロックは結合器316へ送られ、そこで、予測されたピクセル値は、現在のマクロブロックの対応するブロック中の実際の(入力)ピクセル値から減じられる。このように、マクロブロックについての1セットの予測エラーブロックが得られる。
【0033】
図2に示されるビデオデコーダ400の演算を説明する。デコーダ400は、エンコードされたビデオビットストリーム335をエンコーダ300から受信しこれをその成分部分に逆多重化するビデオ多重デコーダ470、逆量子化器410、逆DCT変換器420、動き補償予測ブロック440、フレーム記憶装置450、結合器430、コントロールマネージャー460、および出力480を含む。
【0034】
コントロールマネージャー460は、INTRA符号化されたフレームかそれともINTER符号化されたフレームがデコードされているかに呼応して、デコーダ400の演算を制御する。デコーダをデコードモード間で切り替えさせるINTRA/INTERトリガ制御信号が、例えば、エンコーダから受信された各圧縮ビデオフレームのヘッダー部分中に提供されるピクチャタイプ情報から導き出される。INTRA/INTERトリガ制御信号は、エンコードされたビデオビットストリームからビデオ多重デコーダ470によって抽出され、コントロールライン422を介してコントロールマネージャー460に送られる。
【0035】
INTRA符号化されたフレームのデコードは、マクロブロックごとに実行され、各マクロブロックは、それに関連するエンコードされた情報が受信されたビデオビットストリーム335中で識別されると実質的にすぐにデコードされる。ビデオ多重デコーダ470は最初に、当該マクロブロックに関連する考え得る制御情報から、マクロブロックのブロックについてのエンコードされた情報を分離する。INTRA符号化されたマクロブロックの各ブロックについてのエンコードされた情報は、可変長符号語を含む。これらの符号語は、ブロックの非ゼロ量子化されたDCT係数についてのエントロピー符号化されたlevelおよびrun値を表す。ビデオ多重デコーダ410は、エンコーダ300において用いられるエンコード方法に対応する可変長デコード方法を用いて可変長符号語をデコードし、その結果、levelおよびrun値を復元する。次にこのデコーダは、マクロブロックの各ブロックについての量子化された変換係数値の配列を再構成し、それらを逆量子化器410に送る。マクロブロックに関連するどのような制御情報も、適切な可変長デコード方法を用いてビデオ多重デコーダにおいてデコードされ、コントロールマネージャー460に送られる。特に、変換係数に適用される量子化レベルに関する情報が、エンコードされたビットストリームからビデオ多重デコーダ470によって抽出され、コントロールライン424を介してコントロールマネージャー460に供給される。そして今度は、このコントロールマネージャーが、この情報をコントロールライン415を介して逆量子化器420に送る。逆量子化器410は、制御情報に従ってマクロブロックの各ブロックについての量子化されたDCT係数を逆量子化し、今逆量子化されたDCT係数を逆DCT変換器420に供給する。
【0036】
逆DCT変換器420は、マクロブロックの各ブロックについての逆量子化されたDCT係数に対して逆DCT変換を実行して、再構成されたピクセル値を含む画像情報のデコードされたブロックを形成する。INTRA符号化されたマクロブロックのエンコーディング/デコーディングにおいて動き補償予測が使用されない時、コントロールマネージャー460は、INTRA符号化されたマクロブロックのデコーディングにおいてどのような参照情報も使用されないように、結合器430を制御する。マクロブロックの各ブロックについての再構成されたピクセル値は、デコーダのビデオ出力480に送られ、例えば、そこで表示装置(図示せず)に供給し得る。マクロブロックの各ブロックについての再構成されたピクセル値は、フレーム記憶装置450中にも格納し得る。INTRA符号化されたフレームのその後のマクロブロックがデコードおよび記憶される時、デコードされたフレームは、フレーム記憶装置450中で順次アセンブルされ、かくして、後に受信されたINTER符号化されたフレームのデコーディングに関連して、動き補償予測のための参照フレームとして使用するために利用可能になる。
【0037】
INTER符号化されたフレームもマクロブロックごとにデコードされ、各INTER符号化されたマクロブロックは、それに関連するエンコードされた情報が受信されたビットストリーム中で識別されると実質的にただちにデコードされる。ビデオ多重デコーダ470は、INTER符号化されたマクロブロックの各ブロックについてのエンコードされた予測エラー情報を、エンコードされた動きベクトル情報および当該マクロブロックに関連する考えられる制御情報から分離する。上記で説明したように、マクロブロックの各ブロックについてのエンコードされた予測エラー情報は、当該予測エラーブロックについての非ゼロ量子化された変換係数についてのエントロピー符号化されたlevelおよびrun値を表す可変長符号語を含んでいる。ビデオ多重デコーダ470は、エンコーダ300において用いられるエンコード方法と対応する可変長デコード方法を用いて可変長符号語をデコードし、それによって、levelおよびrun値を復元する。次にこのデコーダは、各予測エラーブロックについての量子化された変換係数値の配列を再構成し、それらを逆量子化器410に送る。INTER符号化されたマクロブロックに関する制御情報も、ビデオ多重デコーダにおいて、適切な可変長デコーディング方法を用いてデコードされ、コントロールマネージャー460に送られる。予測エラーブロックの変換係数に適用される量子化レベルに関する情報が、エンコードされたビットストリームから抽出され、コントロールライン424を介してコントロールマネージャー460に供給される。そして今度は、コントロールマネージャーは、この情報をコントロールライン415を介して逆量子化器420に送る。逆量子化器410は、制御情報に従ってマクロブロックの各ブロックについての予測エラー情報を表す量子化されたDCT係数を逆量子化し、今逆量子化されたDCT係数を逆DCT変換器420に供給する。次に、各ブロックについての予測エラー情報を表す逆量子化されたDCT係数は、逆DCT変換器420において逆変換されて、マクロブロックの各ブロックについての再構成された予測エラー値の配列を発生する。
【0038】
マクロブロックに関連したエンコードされた動きベクトル情報は、エンコードされたビデオビットストリーム335からビデオ多重デコーダ470により抽出され、適切な可変長デコード方法を用いてデコードされる。このようにして得られたデコードされた動きベクトル情報は、データライン426を介して動き補償予測ブロック440に送られて、このブロックが、エンコーダ300においてINTER符号化されたマクロブロックをエンコードするために使用されたものと同じ動きモデルを用いてマクロブロックについての動きベクトルを再構成する。再構成された動きベクトルは、元々はエンコーダの動き推定ブロック330により決定された動きベクトルを見積もる。デコーダの動き補償予測ブロック440は、フレーム記憶装置450中に格納された予測参照フレーム中の再構成されたピクセルの領域の位置を特定するために、再構成された動きベクトルを用いる。参照フレームは、例えば、前にデコードされたINTRA符号化されたフレームか、あるいは前にデコードされたINTER符号化されたフレームとすることができる。どちらの場合も、再構成された動きベクトルにより示されるピクセルの領域は、当該マクロブロックについての予測を形成するために使用される。より具体的には、動き補償予測ブロック440は、参照フレーム中で識別されたピクセルの領域から対応するピクセル値をコピーすることにより、マクロブロックの各ブロックについてのピクセル値の配列を形成する。参照フレームから導き出されたピクセル値のブロックである予測は、動き補償予測ブロック440から結合器430へ送られ、そこで、デコードされた予測エラー情報と結合される。実際には、予測された各ブロックのピクセル値は、逆DCT変換器420により出力される対応する再構成された予測エラー値に加算される。このようにして、マクロブロックの各ブロックについての再構成されたピクセル値の配列が得られる。再構成されたピクセル値は、デコーダのビデオ出力480に送られて、またフレーム記憶装置450中に格納される。INTER符号化されたフレームのその後のマクロブロックがデコードされて蓄えられる時、デコードされたフレームがフレーム記憶装置450中で順次アセンブルされ、このようにして、他のINTER符号化されたフレームの動き補償予測のための参照フレームとして使用するために利用可能になる。
【0039】
H.26Lビデオ符号化標準
ITU−T勧告H.26Lは、国際電気通信連合により開発されたビデオ符号化標準のファミリーにおける最新のものである。これは、とりわけ非常に低いビットレート、典型的には64キロビット/秒以下でのビデオ符号化向けであり、これにより、この標準は、利用可能な帯域幅の最適使用が優先事項である無線通信ネットワークまたはいずれかの固定回線通信ネットワークを介した伝送のためのデジタルビデオの符号化にとって特に適したものになる。ITU−T H.26Lにより規定されるビデオエンコーディングシステムは、ハイブリッドビデオ符号化システムであり、これは、図1および2において例示される一般的なビデオエンコーダ300およびデコーダ400に関連して上記で説明された一般原則に従って動作する。特に、H.26Lに従って実施されるビデオエンコーディングシステムは、ビデオシーケンス内の空間的および時間的冗長性を減らすために、ブロックベース変換符号化と動き補償予測との組み合わせを利用する。
【0040】
テストモデル8(TML8)として知られており、「H.26Lテストモデル・ロングターム・ナンバー8(TML−8)ドラフト0(H.26L Test Model Long Term Number 8 (TML-8) draft0)」(ITU−T電気通信標準化部門、研究グループ16、ビデオ符号化専門家グループ(ITU-T Telecommunications Standarization Section, Study Group 16, Video Coding Experts Group))に記載されているH.26L勧告の最新バージョンは、2つの選択可能なエントロピー符号化モードを規定している。第1の(デフォルト)モードにおいて、いわゆる汎用可変長符号化(UVLC:Universal Varialble Length Coding)方法が、すべてのシンタックス要素を符号化するために用いられる。UVLC符号化モードは、当該情報のタイプを問わず、ビデオエンコーダにより生成された様々な種類の情報すべてを表すために同じ可変長符号語の集合が用いられるルックアップテーブル方法である。代わりのエントロピー符号化方法は、H.26Lのいわゆる「高複雑性プロファイル(high complexity profile)」における使用について規定されており、コンテキストベース適応2値算術符号化(CABAC:Context-based Adaptive Binary Arithmetic Coding)として知られている手法である。これは、符号化されている情報の統計的特性に連続的に適応する2値算術符号化の1形式であり、エントロピー符号化の最も効率的な形式の1つであることが技術的に知られている(H. Witten, R. M. Neal, and J. G. Cleary, ”Arithmetic coding for data compression(データ圧縮のための算術符号化),” Commun. ACM, vol. 30, pp. 520-540, June 1987参照)。
【0041】
ビデオエンコーダにより生成されたすべてのタイプの情報を表すために、UVLCエントロピー符号化が同じ可変長符号語の集合を用いるので、一般に、符号語の統計的特性は、エンコードされる情報の特徴と最適には一致しない。例えば、INTRA符号化された画像ブロックについての量子化されたDCT係数を表すために用いられる特定のrunおよびlevel値の発生頻度は、量子化パラメータ値に関連する制御情報中の値の発生と異なる可能性がある。CABACエントロピー符号化方法は、UVLCエントロピー符号化方法の本質的に次善の性質を克服するために、H.26L勧告に導入された。本明細書において以前に説明したように、算術符号化は、単一の可変長コード(浮動小数点数)で符号化されるシンボルのグループを表す。これは、各シンボルを別個にエンコードするエントロピー符号化方法と比較して特別な利点を提供する。具体的には、各シンボルを別個に符号化するエントロピー符号化方法は、各シンボルを表すために少なくとも1ビットを必要とする。算術符号化は単一の符号語でシンボルのグループを表すので、1シンボルあたり1ビット未満のデータ圧縮レートを達成することが可能である。従って、H.26L中で規定されるCABAC方法も、改善されたデータ圧縮の可能性を提供する。さらに、これは適応性のある方法なので、符号化されている情報の統計的特徴の変化を考慮に入れることも可能であり、たとえ符号化されているデータの性質がある程度変化しても、データ圧縮性能が確実に保持される。
【0042】
コンテキストベースの算術符号化
上記で説明したように、CABAC算術符号化はエントロピー符号化方法であり、エンコードされる情報の変化する統計量に適応することができる。このように、固定された統計的特性を想定するエントロピー符号化手法と比較して、この手法は、改善された圧縮効率を提供することが可能である。図4は、代表的なコンテキストベースの2値算術エンコーダ700を例示している。CABACは、2値算術符号化方法であり、従って、非2進値を有する符号化されるデータシンボルは、最初に2値写像ブロック710中で2進値に変換(「2値化」)される。2値化プロセスは、符号化されるシンボルをビンのシーケンスに写像することを伴い、ビンの各々は、対応するビン番号を有しており、0か1の値が割り当てられる。そのような写像の1例を表1に示す。原則として、他の2値化方式を想定することができる。
【0043】
【表1】
【0044】
CABAC方法において、ビンの各々は、いわゆる「コンテキスト」に割り当てられる(それゆえ、コンテキストベースの算術符号化という名称になる)。コンテキストは、同様な統計的特徴を有しているビンを集めることと考えることができる。言い換えれば、特定のコンテキストに割り当てられた各ビンは、そのコンテキストに属する他のビンと同様の確率で値1または0を含むと仮定される。このように、算術コーダにおいて符号語を生成するために用いられる確率推定値は、符号化される各々の考えられるビンではなく各コンテキストについて定義される。各コンテキストは、事前に設定されかつ符号化されるデータシンボル(従ってビン)の統計的特徴についての情報に基づく「コンテキストモデル」に従って定義される。一般に、もし0の発生確率と1の発生確率との差が最大化されれば、2値算術エンコーダにより達成されるデータ圧縮比は向上する。同様に、コンテキストベースの算術符号化の性能は、コンテキストモデルの選択にも依存する。このことは、一般に、コンテキストモデルは、各コンテキストに割り当てられたビンについて、0および1の発生確率の差を最大にするように選ばれるべきであることを意味している。
【0045】
図4に例示される代表的なコンテキストベースの算術コーダにおいて、符号化されるシンボルが2値写像ブロック710中でひとたび2値化されると、その記号は、コンテキスト割り当てブロック720中で対応するコンテキストに割り当てられる。対応するビンに割り当てられた値(すなわち、1または0)は、次に算術コーダ730に送られる。算術コーダ730の符号化エンジン750は次に、ビンが割り当てられるコンテキストについての確率推定値を用いてビン値をエンコードする。性能、すなわち算術エンコーダにより達成されるデータ圧縮比は、確率推定値の精度に依存する。原則として、推定値は固定型または適応型とすることができる。もし固定型確率推定値が用いられれば、各コンテキストについての確率推定値は、所定の値に割り当てられ、エンコーディング工程の間不変のままである。固定型確率推定値は典型的には、エンコードされる実際のデータの統計的特性に似た統計的特性を有するトレーニングマテリアルを解析することにより事前に得られる。もし適応型確率推定値が用いられれば、各コンテキストについての確率推定値を初期化するために固定値が用いられ、次に、これまでにエンコードされたデータ(ビン)の実際の統計的特性に基づいてエンコード工程全体を通して確率が更新される。適応型確率推定値は、符号化されているマテリアルに適合できるので、一般により良好に機能する。
【0046】
図4に例示される代表的なコンテキストベースの算術コーダは、適応型確率推定値を使用し、更新された確率推定値が計算される確率推定ブロック740を含んでいる。各コンテキストについての確率推定値は、各コンテキストに割り当てられたビンの各々についての1および0の発生数の記録をとることにより更新される。例えば、任意のコンテキストkに割り当てられたビンに、値0をm回および値1をn回割り当てると、コンテキストkにおける1についての確率推定値はn/(n(m+1))であり、0についての確率推定値は(m+1)/(n(m+1))である。
【0047】
図5は、図4に関連して説明されたエンコーダに対応するコンテキストベースの算術デコーダ800を例示している。算術符号化されたデータシンボルを表しているビットストリームが、入力810においてコンテキストベースの算術デコーダにより受信される。初めに、前にデコードされたシンボルに基づいて、コンテキストがコンテキスト割り当てブロック850において計算され、ビン値の確率推定値が更新される。コンテキスト割り当てブロック850において実行されるコンテキスト割り当て、および確率推定ブロック830において実行される確率推定値の計算は、エンコーダと同じやり方で実行される。受信されたビットは次に、算術デコーダ820の算術デコーディングエンジン840に供給され、そこでビットは、計算されたコンテキストおよびビン値の現在の確率推定値を用いて、デコードビン値に変換される。デコードされたビンは、ビン−値写像ブロック860においてrunおよびlevel値に写像される。
【0048】
H.26Lにおいて用いられるCABAC法
ITU−T勧告H.26Lの高複雑性プロファイルにおいて使用するために採用されたCABAC算術符号化方法の詳細を詳しく説明する。H.26L TML8によれば、runおよびlevel値についてのコンテキストは、符号化されているブロックのタイプおよび2値化されたlevelまたはrun値のビン番号に依存する。係数値、成分タイプ(輝度/クロミナンス、AC/DC)、または符号化モード(INTER/INTRA)を順序付けるために用いられるスキャンモード(シングル/ダブル)に従って種々のブロックタイプが定義される。しかしながら、所定のブロックタイプについて、コンテキストはビン番号にのみ依存する。より具体的には、H.26L TML8によれば、levelエンコーディングについて4つのコンテキストが定義される。第1のものは第1のビンについてであり、第2のものは第2のビンについてであるのに対して、第3のコンテキストは、levelの大きさを表すビンの残りについてのものである。残りのコンテキストは、levelの符号のために用いられる。run値をコンテキストに割り当てるために同様な方法が用いられる。runについては3つのコンテキストがあり、第1のものは第1のビンについてであり、第2のものは第2のビンについてであり、第3のものは残りすべてのビンについてのものである。run値が常に0以上なので、符号情報を表すために付加的なコンテキストの必要は皆無である。従って、所定タイプのブロックについて、変換係数ビンのための(levelおよびrun双方のエンコーディングのための)コンテキストへのビンの割り当ては、以下のように要約できる:
【0049】
【数1】
【0050】
式中、bin_nrはビン番号であり、contextはコンテキスト番号である。H.26L TML8によれば、MAX_BIN_VALの値は3に設定されるが、原則的に、別のMAX_BIN_VALを代わりに用いることもできる。
【0051】
run−levelペアは次の通りエンコードされる:runおよびlevelは最初に、ブロック/係数タイプに従って、すなわちスキャンモード、係数タイプ(DC/AC)、および符号化モード(INTER/INTRAまたは16×16INTRA)に従って分類される。levelおよびrunは次に、これらをビンのシーケンス上に写像することによって2値化され、各ビンは、そのビン番号に基づいてコンテキストに割り当てられる。
【0052】
図6a−6dは、量子化されたDCT係数の代表的な4×4配列を参照してこのプロセスを詳細に例示している。この図は、量子化されたDCT係数についてのrunおよびlevel値の統計的特性が追跡される方法を例示することによって、CABAC法の適応的性質も実証している。量子化されたDCT係数値の2次元配列は、最初にジグザグスキャンされ、図6aに示されるように、値の1次元配列を生成する。次に、1次元配列中の非ゼロ係数値がrunおよびlevel値のペアとして表される。前に説明されたように、各level値は、非ゼロの量子化されたDCT係数の値を表すのに対して、関連するrun値は、当該係数に先行するゼロ値係数の個数に対応する。量子化されたDCT係数の代表的配列から導き出されたrun−levelペアが図6bに示してある。各ペアにおいて、level値は関連するrun値に先行し、ゼロに等しいlevel値は、ブロック中に非ゼロ係数値がもはやないことを示すブロック終結記号として用いられる。
【0053】
次に、各runおよびlevel値は、2進値に変換される。H.26L TML8によれば、量子化されたDCT変換係数値についてのrunおよびlevel値を変換するために用いられる2値化方式は、上記の表1で示されたものと同一である。図6cは、表1に提示される2値化方式を代表的配列中のrunおよびlevel値に適用したときの結果を示している。図6cは、H.26Lによるコンテキストへのビンの割り当ても示している。上記で説明されたように、runおよびlevel値の大きさを記述するために3つのコンテキストのみが用いられる。第1のコンテキストはビン1に対応し、第2のものはビン2に対応するのに対して、第3のコンテキストは残りのビンすべてを含んでいる。図6cにおいて、コンテキストは太い水平線により輪郭を描かれている。図6cを検討することにより、level値の大部分が、コンテキスト3に割り当てられるビンに写像されるのに対して、run値の大部分が、コンテキスト1に割り当てられるビンに写像されることがわかる。
【0054】
割り当てられた各コンテキストについての確率推定値は、ビンのエンコーディング後に更新される。runおよびlevelコンテキストについての確率推定値は独立して更新される。前に説明されたように、所定のコンテキストについての確率推定値は、当該コンテキストに割り当てられたビンの統計的特徴を表す。より具体的には、確率推定値は、1を1個または0を1個含んでいるコンテキストに割り当てられたビンの尤度を記述する。図6dは、確率推定値がrunおよびlevelについて更新される方法を代表的な方法で記述する。この図は、図6aに示された量子化されたDCT係数の4×4ブロックを表すrunおよびlevelが2値化され、コンテキストに割り当てられそして算術エンコーダ中でエンコードされる前および後の、1を1個または0を1個含んでいる所定のrunまたはlevelコンテキストに割り当てられたビンの確率を例示している。図6dは表という形式をとっており、この表は、各コンテキストに割り当てられたビン中の1および0の発生を記録する。従って、所定のコンテキストについての確率推定値は以下のように与えられる:
0の確率=0の数/(0の数+1の数)
1の確率=1の数/(0の数+1の数)
この図においては、図6aに示される量子化されたDCT係数の4×4ブロックは、処理されるそのようなブロックの最初のものであると仮定される。このことは、この表において記録すべき1および0の以前の発生が皆無であることを意味している。この問題を克服するため、ブロックが処理される前に、各コンテキストは、1または0を等しい確率で含むことが仮定される。これは、同一の値を、0および1の発生を記録する列に記録することによって示される。図6dにおいて、1は、確率推定値を初期化するために用いられる。代わりに、トレーニングデータの解析から導き出された確率推定値を、各コンテキストについての確率推定値の初期化に用い得るであろう。次に、量子化されたDCT変換係数のブロックについてのrunおよびlevel値が2値化されて、コンテキストに割り当てられる時に、確率推定値は、各コンテキストのビン中で発生する1および0の個数を計数することにより更新される。図6dの右側の列は、図6aに示された量子化されたDCTの4×4ブロックの処理後の状況を示す。
【0055】
ITU−T勧告H.26L TML8の高複雑性プロファイルにおいて採用されたCABAC算術エンコーディング方法は、UVLCエントロピー符号化方法と比較して、データ圧縮における改善をもたらすけれども、それでもなお符号化効率に関しては最適ではない。従って、符号化効率がさらに向上されるコンテキストベースの算術符号化のための方法およびシステムを提供することが本発明の目的である。
【先行技術文献】
【非特許文献】
【0056】
【非特許文献1】「H.26Lテストモデル・ロングターム・ナンバー8(TML−8)ドラフト0(H.26L Test Model Long Term Number 8 (TML-8) draft0)」(ITU−T電気通信標準化部門、研究グループ16、ビデオ符号化専門家グループ(ITU-T Telecommunications Standarization Section, Study Group 16, Video Coding Experts Group))
【非特許文献2】H. Witten, R. M. Neal, and J. G. Cleary, "Arithmetic coding for data compression(データ圧縮のための算術符号化)," Commun. ACM, vol. 30, pp. 520-540, June 1987
【発明の概要】
【0057】
発明の要約
本発明は、コンテキストベースの算術符号化を用いて所定のデータシンボルを符号化する時に、他のデータシンボルが割り当てられるコンテキストを考慮に入れるコンテキストモデルを用いることにより符号化効率の向上が達成されるという認識に基づいている。H.26L TML8の高複雑性プロファイルにおいて用いられるCABAC法に特に関連して、本発明の発明者らは、DCT変換係数に関連するrunおよびlevel値の間に特定の関係が存在することを突き止めた。本発明者らはさらに、runおよびlevel値に適用された時に、向上された符号化効率でCABAC法が動作することを可能にする改良コンテキストモデルを構築するためにこれらの関係を用いることができることを突き止めた。特に、本発明者らは、連続したlevel値が有意な類似性を呈することを突き止めた。より具体的には、変換係数の所定のブロック内で、エンコードされる係数のlevelは、一般に、前にエンコードされた係数のlevelとほぼ同様の大きさを有している。本発明者らは、levelおよびrun値の間の逆の関係も突き止めた。特に、より大きいlevel値は、より小さいrun値により先行される可能性がより高い。逆もまた真であり、すなわち、より小さいlevel値は、より大きいrunにより先行される可能性が高い。その結果、本発明は、levelおよびrun値の間のこれらの関係を考慮に入れるDCT変換係数の符号化のための新しいコンテキストモデルの創出を提示する。
【0058】
コンテキストベースの算術エンコーダへの実装を意図した第1のそのようなコンテキストモデルにおいて、2値化された係数level値のビンに割り当てられたコンテキストは、前にエンコードされた係数levelによって決まる。コンテキストベースの算術デコーダへの実装を意図した第2のそのようなコンテキストモデルにおいて、2値化された係数level値のビンに割り当てられたコンテキストは、前にデコードされた係数levelによって決まる。コンテキストベースの算術エンコーダかコンテキストベースの算術デコーダに実装された第3のコンテキストモデルにおいて、2値化された係数run値のビンに割り当てられたコンテキストは、係数のlevel値によって決まる。
【0059】
本発明者らは、種々の画像ブロックに関連した変換係数値の間に一定の類似性が存在することも突き止めた。これらの類似性は、互いに近くに位置する画像ブロック間でより大きく、隣接する画像ブロック間で最大になる傾向がある。より具体的には、特定の画像ブロックを表す非ゼロ変換係数値の数Ncは、当該画像ブロックの近く、または隣接する画像ブロックにおける非ゼロ変換係数値の数に類似する傾向がある。従って、本発明は、変換符号化された画像ブロックについての非ゼロ変換係数の個数の表示を提供することおよびこの値をエントロピー符号化を用いて符号化するという概念をさらに導入する。さらに、Nc値を符号化するために、コンテキストベースの算術符号化が用いられるのであれば、少なくとも1つの他の変換符号化された画像ブロックについてのNc値に割り当てられたコンテキストを考慮に入れることにより、ブロックのNc値をコンテキストに割り当てることが有利であることを本発明者は突き止めた。このように、互いに近くに位置する画像ブロック間のNc値間の類似性は、コンテキストベースの算術符号化手順中で利用できる。ITU−T勧告H.26L TML8によれば、画像ブロック中の非ゼロ変換係数の個数はエンコードされない。代わりに、そして前に説明されたように、ブロック終結(EOB)表示が提供される。EOB表示は、非ゼロ係数に対応する最後のrun−levelペアがエンコードされたことを伝える。本発明者らは、ブロック中の非ゼロ係数の個数の明示的表示が提供されてコンテキストベースの算術符号化を用いて符号化される、提案された方法により、現在H.26L TML8において現在利用されているようなEOB表示を提供する方法と比較して、符号化効率の向上につながることを突き止めた。
【0060】
本発明の背後にある動機および本発明の基本的概念は、ビデオエンコーディング/デコーディングの文脈において、そしてH.26L TML8に関連してより具体的に提示されたが、本発明は他のビデオ符号化システムそして静止画符号化にも応用できることが理解されるべきである。原則として、本発明は、ブロックベースの変換符号化およびコンテキストベースの算術符号化が用いられるどのような画像符号化システムにおいても応用できる。
【0061】
本発明の第1の局面によれば、複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、変換符号化演算がピクセル値のブロックに対して実行されて対応する変換係数値のブロックを生成する画像符号化方法が提供される。変換係数値のブロックは、所定のスキャン順序でスキャンされてスキャンされた係数値の配列が生成され、スキャンされた配列中の係数値は、複数の数値ペアにより表され、数値ペアは、第1の数値および第2の数値を有している。第1の数値および第2の数値は、数値ペアを表す複数のコンテキストの1つに割り当てられる。本発明の第1の局面によれば、数値ペアの第1の値は、別の数値ペアの第1の数値に基づいてコンテキストに割り当てられる。
【0062】
好ましくは、数値ペアの第1の数値を別の数値ペアの第1の数値に基づいてコンテキストに割り当てるステップは、他の数値ペアの第1の数値が割り当てられるコンテキストを考慮に入れる。
【0063】
有利には、数値ペアの第1の数値は、非ゼロ係数値を示す。好ましくは、数値ペアの第1の数値は、非ゼロ係数値の大きさに等しい。
【0064】
有利には、数値ペアの第2の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を表す。
【0065】
好ましくは、コンテキストは、コンテキストベースの算術コーダのコンテキストである。
【0066】
より好ましくは、コンテキストは、コンテキストベースの2値算術コーダのコンテキストである。
【0067】
有利には、第1および第2の数値はビンのセットに写像され、ビンの各々は、関連したビン番号を有し、各々は、第1か第2の値を取り得る。
【0068】
好ましくは、第1および第2の数値の各々は、ビンのセットの1つに写像され、ピンのセットの所定の1つへの数値の写像は、ビンの値を第1の値に割り当てることによって示される。
【0069】
好ましくは、第1の値は1であり、第2の値は0である。
【0070】
好ましくは、ビンのセットの各々は、コンテキストに割り当てられる。
【0071】
有利には、他の数値ペア中の第1の数値が割り当てられるコンテキストを考慮に入れつつ、他の数値ペアの第1の数値に基づいて、数値ペアの第1の数値をコンテキストに割り当てるステップは、他の数値ペアの第1の数値が写像されるビンのビン番号を試験することにより実施される。
【0072】
有利には、この方法は、各コンテキストの統計的特性を記述する確率推定値の保持をさらに含む。
【0073】
好ましくは、各コンテキストについて、確率推定値は、コンテキストに割り当てられている所定の値を有する数値の統計的尤度を示す。
【0074】
好ましくは、各コンテキストについて、確率推定値は、当該コンテキストに割り当てられたビン中における第1の値および第2の値の発生の記録をとることにより保持される。
【0075】
本発明の第2の局面によれば、複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、変換符号化演算が、ピクセル値のブロックに対して実行されて変換係数値の対応するブロックを生成する画像符号化方法が提供される。変換係数値のブロックは、所定のスキャン順序でスキャンされてスキャンされた係数値配列が生成され、スキャンされた配列中の係数値は、複数の数値ペアにより表され、数値ペアは、第1の数値および第2の数値を有している。第1の数値および第2の数値は、数値ペアを表す複数のコンテキストの1つに割り当てられる。本発明の第2の局面によれば、数値ペアの第2の数値は、数値ペアの第1の数値に基づいてコンテキストに割り当てられる。
【0076】
好ましくは、数値ペアの第2の数値を数値ペアの第1の数値に基づいてコンテキストに割り当てるステップは、数値ペアの第2の数値が割り当てられるコンテキストを考慮に入れる。
【0077】
有利には、数値ペアの第1の数値は、非ゼロ係数値を表す。好ましくは、数値ペアの第1の数値は、非ゼロ係数値の大きさに等しい。
【0078】
有利には、数値ペアの第2の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を示す。
【0079】
好ましくは、コンテキストは、コンテキストベースの算術コーダのコンテキストである。
【0080】
より好ましくは、コンテキストは、コンテキストベースの2値算術コーダのコンテキストである。
【0081】
有利には、第1および第2の数値はビンのセットに写像され、ビンの各々は、関連したビン番号を有し、第1か第2の値を取り得る。
【0082】
好ましくは、第1および第2の数値の各々は、ビンのセットの1つに写像され、ピンのセットの所定の1つへの数値の写像は、ビン値を第1の値に割り当てることによって示される。
【0083】
好ましくは、第1の値は1であり、第2の値は0である。
【0084】
好ましくは、ビンのセットの各々は、コンテキストに割り当てられる。
【0085】
有利には、数値ペアの1つの中の第2の数値が割り当てられるコンテキストを考慮に入れつつ、数値ペアの第1の数値に基づいて数値ペアの第2の数値をコンテキストに割り当てるステップは、第2の数値が写像されるビンのビン番号を試験することにより実施される。
【0086】
有利には、この方法は、各コンテキストの統計的特性を記述する確率推定値の保持をさらに含む。
【0087】
好ましくは、各コンテキストについて、確率推定値は、コンテキストに割り当てられている所定の値を有する数値の統計的尤度を示す。
【0088】
好ましくは、各コンテキストについて、確率推定値は、当該コンテキストに割り当てられたビン中における第1の値および第2の値の発生の記録をとることにより保持される。
【0089】
好ましくは、本発明の第1および第2の局面による方法は、両方とも変換係数値のブロックに適用される。
【0090】
本発明の第3の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するための手段と、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するための手段とを含むエンコーダが提供される。エンコーダはさらに、変換係数値のブロックを所定のスキャン順序でスキャンして係数値のスキャンされた配列を生成するための手段と、スキャンされた配列中の係数値を第1および第2の数値を有する複数の数値ペアにより表すための手段と、数値ペアを表す複数のコンテキストの1つに第1および第2の数値を割り当てるための手段とを含む。本発明の第3の局面によれば、エンコーダは、数値ペアの第1の数値を、別の数値ペアの第1の数値に基づいてコンテキストに割り当てるための手段を含む。
【0091】
本発明の第4の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するための手段と、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するための手段とを含むエンコーダが提供される。エンコーダはさらに、変換係数値のブロックを所定のスキャン順序でスキャンして係数値のスキャンされた配列を生成するための手段と、スキャンされた配列中の係数値を第1および第2の数値を有する複数の数値ペアにより表すための手段と、数値ペアを表す複数のコンテキストの1つに第1および第2の数値を割り当てるための手段とを含む。本発明の第4の局面によれば、エンコーダは、数値ペアの第2の数値を、数値ペアの第1の数値に基づいてコンテキストに割り当てるための手段を含む。
【0092】
本発明の第5の局面によれば、複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、変換符号化演算が、ピクセルのブロックに対して実行されて変換係数値の対応するブロックを生成する画像符号化方法が提供される。本発明の第5の局面によれば、この方法は、変換係数値のブロック中の非ゼロ係数値の個数を示す数値を提供し、その数値を表すコンテキストにその数値を割り当てるステップを含む。
【0093】
有利には、変換係数値のブロック中の非ゼロ変換係数値の個数を示す数値をコンテキストに割り当てるステップは、変換係数の別のブロック中の非ゼロ係数の個数を示す別のそのような数値が割り当てられるコンテキストを考慮に入れる。
【0094】
有利には、変換値のブロックは、所定のスキャン順序でスキャンされて係数値のスキャンされた配列を生成し、スキャンされた配列中の係数値は、第1および第2の数値を有する複数の数値ペアにより表される。
【0095】
有利には、数値ペアの第1の数値は、非ゼロ係数値を示す。
【0096】
好ましくは、数値ペアの第1の数値は、非ゼロ係数値の大きさに等しい。
【0097】
より好ましくは、数値ペアの第1の数値は、非ゼロ係数値の大きさマイナス1に等しい。
【0098】
有利には、数値ペアの第2の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を示す。
【0099】
好ましくは、スキャンされた係数値の配列中の最後の非ゼロ係数値を示すブロック終結表示は提供されない。
【0100】
好ましくは、本発明の第1、第2および第5の局面による方法はそれぞれ、変換係数値のブロックに適用される。
【0101】
本発明の第6の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するための手段と、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するための手段とを含むエンコーダが提供される。エンコーダは、変換係数値のブロック中の非ゼロ係数値の個数を示す数値を提供するための手段と、その数値を表すコンテキストにその数値を割り当てるための手段とを含む。
【0102】
有利には、エンコーダは、変換係数値のブロック中の非ゼロ変換係数値の個数を示す数値を、変換係数の別のブロック中の非ゼロ変換係数値の個数を示す別のそのような数値が割り当てられるコンテキストを考慮に入れて割り当てるための手段をさらに含む。
【0103】
本発明の第7の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するためのコードと、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するためのコードとを含むコンピュータプログラムが提供される。コンピュータプログラムはさらに、変換係数値のブロックを所定のスキャン順序でスキャンして係数値のスキャンされた配列を生成するためのコードと、スキャンされた配列中の係数値を第1の数値および第2の数値を有する複数の数値ペアにより表すためのコードと、数値ペアを表す複数のコンテキストの1つに第1および第2の数値を割り当てるためのコードとを含む。本発明の第7の局面によれば、コンピュータプログラムは、数値ペアの1つの中の第1の数値を、別の数値ペアの第1の数値に基づいてコンテキストに割り当てるためのコードも含む。
【0104】
有利には、数値ペアの第1の数値は、非ゼロ係数値を示す。
【0105】
好ましくは、数値ペアの第1の数値は、非ゼロ係数値の大きさに等しい。
【0106】
有利には、数値ペアの第2の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を表す。
【0107】
本発明の第8の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するためのコードと、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するためのコードとを含むコンピュータプログラムが提供される。コンピュータプログラムはさらに、変換係数値のブロックを所定のスキャン順序でスキャンして係数値のスキャンされた配列を生成するためのコードと、スキャンされた配列中の係数値を第1の数値および第2の数値を有する複数の数値ペアにより表すためのコードと、数値ペアを示す複数のコンテキストの1つに第1および第2の数値を割り当てるためのコードとを含む。本発明の第8の局面によれば、コンピュータプログラムは、数値ペアの第2の数値を、その数値ペアの第1の数値に基づいてコンテキストに割り当てるためのコードも含む。
【0108】
有利には、数値ペアの第1の数値は、非ゼロ係数値を示す。
【0109】
好ましくは、数値ペアの第1の数値は、非ゼロ係数値の大きさに等しい。
【0110】
有利には、数値ペアの第2の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を表す。
【0111】
本発明の第9の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するためのコードと、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するためのコードとを含むコンピュータプログラムが提供される。本発明の第9の局面によれば、コンピュータプログラムは、変換係数値のブロック中の非ゼロ係数値の個数を示す数値を提供するためのコードと、その数値を表すコンテキストにその数値を割り当てるためのコードをさらに含む。
【0112】
有利には、コンピュータプログラムは、変換係数値のブロック中の非ゼロ変換係数値の個数を示す数値をコンテキストに、変換係数の別のブロック中の非ゼロ変換係数値の個数を示す別のそのような数値が割り当てられるコンテキストを考慮に入れて、割り当てるためのコードをさらに含む。
【0113】
発明の第10の局面によれば、本発明の第7、第8および第9の局面によるコンピュータプログラムが提供される。
【0114】
本発明の第11の局面によれば、データシンボルの配列が符号語で表されるコンテキストベースの算術エンコード方法が提供される。前記配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアである。数値ペアの第1の数値は、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられ、数値ペアの第2の数値は、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられる。本発明の第11の局面によれば、数値ペアの第1の数値は、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てられる。
【0115】
本発明の第12の局面によれば、データシンボルの配列がその配列を表す符号語からデコードされるコンテキストベースの算術デコード方法が提供される。前記配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアである。数値ペアの第1の数値は、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられ、数値ペアの第2の数値は、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられる。本発明の第12の局面によれば、数値ペアの第1の数値は、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てられる。
【0116】
本発明の第13の局面によれば、データシンボルの配列が符号語で表されるコンテキストベースの算術エンコード方法が提供される。配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアである。数値ペアの第1の数値は、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられ、数値ペアの第2の数値は、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられる。本発明の第13の局面によれば、数値ペアの第2の数値は、数値ペアの第1の数値に基づいてコンテキストに割り当てられる。
【0117】
本発明の第14の局面によれば、データシンボルの配列がその配列を表す符号語からデコードされるコンテキストベースの算術デコード方法が提供される。配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアである。数値ペアの第1の数値は、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられ、数値ペアの第2の数値は、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられる。本発明の第14の局面によれば、数値ペアの第2の数値は、その数値ペアの第1の数値に基づいてコンテキストに割り当てられる。
【0118】
本発明の第15の局面によれば、データシンボルの配列が符号語で表され、その配列中の非ゼロデータシンボルの個数を示す数値が提供されかつその数値を表すコンテキストに割り当てられるコンテキストベースの算術エンコード方法が提供される。
【0119】
本発明の第16の局面によれば、データシンボルの配列を符号語で表すための手段を含むコンテキストベースの算術エンコーダが提供される。前記配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアであり、エンコーダは、数値ペアの第1の数値を、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段と、数値ペアの第2の数値を、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段とをさらに含む。本発明の第16の局面によれば、エンコーダは、数値ペアの第1の数値を、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てるための手段を含む。
【0120】
本発明の第17の局面によれば、データシンボルの配列を、その配列を表す符号語からデコードするための手段を含むコンテキストベースの算術デコーダが提供される。配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアであり、デコーダは、数値ペアの第1の数値を、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段と、数値ペアの第2の数値を、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段とをさらに含む。本発明の第17の局面によれば、デコーダは、数値ペアの第1の数値を、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てるための手段を含む。
【0121】
本発明の第18の局面によれば、データシンボルの配列を符号語で表すための手段を含むコンテキストベースの算術エンコーダが提供される。前記配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアであり、エンコーダは、数値ペアの第1の数値を、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段と、数値ペアの第2の数値を、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段とをさらに含む。本発明の第18の局面によれば、エンコーダは、数値ペアの第2の数値を、数値ペアの第1の数値に基づいてコンテキストに割り当てるための手段を含む。
【0122】
本発明の第19の局面によれば、データシンボルの配列を、その配列を表す符号語からデコードするための手段を含むコンテキストベースの算術デコーダが提供される。配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアであり、デコーダは、数値ペアの第1の数値を、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段と、数値ペアの第2の数値を、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段とをさらに含む。本発明の第19の局面によれば、デコーダは、数値ペアの第2の数値を、数値ペアの第1の数値に基づいてコンテキストに割り当てるための手段を含む。
【0123】
本発明の第20の局面によれば、データシンボルの配列を符号語で表すための手段を含み、その配列中の非ゼロデータシンボルの個数を示す数値を提供するための手段と、前記数値をその数値を表すコンテクスに割り当てるための手段とをさらに含むコンテキストベースの算術エンコーダが提供される。
【0124】
本発明は、図7aから12に関連してなされる説明を読めば直ちに明白になるであろう。
【図面の簡単な説明】
【0125】
【図1】ブロックベースの変換符号化および動き補償予測を用いる代表的なビデオエンコーダの構造を例示するブロック図である。
【図2】図1のエンコーダに対応する代表的なビデオデコーダのブロック図である。
【図3】代表的なジグザグスキャンを示す線図表示である。
【図4】従来技術のコンテキストベースの算術符号化方式におけるエンコーダを示すブロック図である。
【図5】従来技術のコンテキストベースの算術符号化方式におけるデコーダを示すブロック図である。
【図6a】ジグザグスキャンされた量子化されたDCT係数値の代表的な2次元配列を示す線図表示である。
【図6b】図6aの配列から導き出されたlevelおよびrun値を示す表である。
【図6c】表1の2値化方式を図6bのlevelおよびrun値に適用した結果得られる2値化されたlevelおよびrun値を示す表である。
【図6d】確率推定値がrunおよびlevelから更新される方法を示す表である。
【図7a】コンテキストが、level値に基づいてビンに割り当てられる方法を示す表である。
【図7b】本発明の第1の実施形態に従ってコンテキストがlevel値に割り当てられる方法を示す表である。
【図8a】コンテキストが、run値に基づいてビンに割り当てられる方法を示す表である。
【図8b】本発明の第2の実施形態に従ってコンテキストがrun値に割り当てられる方法を示す表である。
【図9】本発明によるコンテキストベースの算術符号化方式におけるエンコーダを例示するブロック図である。
【図10】本発明によるデコーダを例示するブロック図である。
【図11】本発明の好ましい実施形態による画像符号化方法を例示するフローチャートである。
【図12】本発明の別の実施形態による画像符号化方法を例示するフローチャートである。
【発明を実施するための形態】
【0126】
本発明の実施形態を詳細に論じる。上記で説明されたように、本発明は、コンテキストベースの算術コーダの符号化効率(データ圧縮)の改善を達成できるいくつかの関連機構を提供する。この改善は、他のデータ記号が割り当てられるコンテキストを考慮に入れるコンテキストモデルを用いて達成される。
【0127】
以下のセクション1.1で詳細に説明される本発明の第1の実施形態は、ITU−T勧告H.26Lにより定義されるような画像符号化システムでの使用に適するコンテキストベースの2値算術コーダに関する。この実施形態においては、画像ピクセルの変換符号化ブロックの量子化された変換係数をrun−level符号化して発生されたlevel値が、同じブロックに属する別の変換係数のlevelを考慮に入れつつコンテキストに割り当てられる。
【0128】
セクション1.2で詳細に説明される本発明の第2の実施形態も、ITU−T勧告H.26Lにより定義されるような画像符号化システムのためのコンテキストベースの2値算術コーダに関する。この第2の実施形態においては、画像ピクセルの変換符号化ブロックの量子化されたDCT変換係数をrun−level符号化して生成されたrun値が、run値が属するrun−levelペアのlevel値を考慮に入れつつコンテキストに割り当てられる。
【0129】
本発明の第3の実施形態は、セクション1.3で説明され、またITU−T勧告H.26Lにより定義されるような画像符号化システムのためのコンテキストベースの算術コーダに関する。この第3の実施形態によれば、変換符号化画像ブロックについての非ゼロ変換係数の個数Ncが決定されて、少なくとも1つの他の変換符号化画像ブロックについてのNc値に割り当てられたコンテキストを考慮に入れつつコンテキストに割り当てられる。
【0130】
本発明の好ましい実施形態は、上記3つの実施形態の機能性を兼備している。
【0131】
本明細書において前に説明されたように、ITU−T勧告H.26L TML8の高複雑性プロファイルは、CABACとして知られているコンテキストベースの算術符号化の形式を使用する。H.26Lに従って実装されるビデオエンコーダにおいて、CABAC法は、画像ピクセルのブロックを(INTRA符号化モードで)変換符号化したり予測エラー値のブロックを(INTER符号化モードで)変換符号化したりすることにより生成された変換係数を含む、エンコーダにより生成される多種多様なタイプの情報をエンコードするために用いられる。画像ピクセルのブロックを変換符号化することにより生成される変換係数の2次元配列は、特定のスキャンモードに従ってスキャンされて1次元配列を生成する。H.26Lには、そのようなスキャンモードが2つ定義されている。第1のものは「シングルスキャンモード」として知られているのに対して、他方は「ダブルスキャンモード」と呼ばれる。どちらのスキャンモードが用いられたとしても、変換係数のスキャンにより、係数値の2次元配列は、係数が既定の方法で順序付けされる1次元配列に変換される。1次元配列中の順序付けされた変換係数値は、run−level値に変換される。順序付けされた1次元配列中の最後のエントリはブロック終結記号であり、この記号は、H.26L TML8によれば、0に等しいlevel値の形を取る。このことは、順序付けされた配列中の最後の非ゼロ係数値がrun−levelペアに変換されたことを示す。
【0132】
runおよびlevel値は、各々に値0または1を割り当てることができる一連のビンにこれらの値を写像することによって2進数に変換(2値化)される(表1参照)。2値化されたrunおよびlevel値は次に、コンテキストに割り当てられ、コンテキストの別個のセットがrunおよびlevelについて定義される。H.26L TML8によれば、所定のブロックタイプについて、levelについて定義されたコンテキストのセットは、levelが割り当てられるビン番号にのみによって決まる。より具体的には、H.26LT ML8によれば、levelエンコーディングについて、4つのコンテキストが定義される。第1のものは第1のビンのためのものであり、第2のものは第2のビンのためのものであるのに対して、第3のコンテキストは、levelの大きさを表している残りのビンのためのものである。残りのコンテキストは、levelの符号のために使われる。runについては3つのコンテキストがあり、第1のものは第1のビンのためのものであり、第2のものは第2のビンのためのものであり、第3のものは残りすべてのビンのためのものである。run値は常にゼロに等しいかゼロより大きいので、符号情報を表すための付加的コンテキストの必要は皆無である。
【0133】
1.1. levelについてのコンテキストモデル
本発明の第1の実施形態によれば、2値化されたlevel値をコンテキストに割り当てる時、level値自身が写像されるビンに加え、先行run−levelペアのlevel値も考慮に入れられる。この文脈において、用語「先行run−levelペア」は、計数値の順序付けされた1次元配列中の先行する係数に対応するrun−levelペアを意味している。以下の疑似コードは、level自身が写像されるビンおよび先行run−levelペアのlevel値の両方を考慮に入れつつ、コンテキストをrun−levelペアのlevel値に割り当てるための代表的な手順を示す。
【0134】
【数2】
【0135】
式(2)において、prev_levelは、前回のrun−levelペアのlevel値の大きさである。prev_levelは、各ブロックの最初にゼロに初期化される。ダブルスキャンモードにおいては、prev_levelは、各スキャンの最初に、1ブロックにつき2回初期化される。パラメータMAX_BIN_LEVELは、level値が写像されるビン番号がコンテキスト割り当てに影響する方法を制御する手段を提供する。より具体的には、そしてH.26L TML8による現行のコンテキストの割り当てと同様な方法で、MAX_BIN_LEVELは、MAX_BIN_LEVELより大きいか等しいすべてのビン番号が割り当てられるコンテキストを効果的に定義する。同様に、パラメータMAX_LEVELは、前回のrun−levelペアのlevel値がコンテキストの割り当てに影響する方法を制御する手段を提供する。図7aおよび7bは、本発明の第1の実施形態に従って式(2)の疑似コードをMAX_BIN_LEVEL=3およびMAX_BIN_LEVEL=5で適用することによりコンテキストがlevel値に割り当てられる方法を例示する。原則として、符号化されるlevel値の統計的特徴に適するコンテキストのセットを定義するために、MAX_BIN_LEVELとMAX_LEVELとのいかなる組み合わせも用いることができる。
【0136】
1.2. runについてのコンテキストモデル
本発明の第2の実施形態によれば、セクション1.1に記載されたアプローチと同様なアプローチが、run値をコンテキストに割り当てるために用いられる。より具体的には、2値化されたrun値をコンテキストに割り当てる時、run値自身が写像されるビン考慮するのに加え、run値が属するrun−levelペアのlevelも考慮に入れられる。以下の疑似コードは、run自身が写像されるビンおよびrun値が属するrun−levelペアのlevel値の両方を考慮に入れつつ、コンテキストをrun−levelペアのrun値に割り当てるための代表的な手順を示す:
【0137】
【数3】
【0138】
式(3)において、levelは、run−levelペアのlevel値の大きさである。パラメータMAX_BIN_RUNは、run値が写像されるビン番号がコンテキストの割り当てに影響する方法を制御する手段を提供する。より具体的には、およびH.26L TML8による現行のコンテキストの割り当てと同様な方法で、MAX_BIN_RUNは、MAX_BIN_RUNより大きいか等しいすべてのビン番号が割り当てられるコンテキストを効果的に定義する。同様に、パラメータMAX_RUNLは、run−levelペアのlevel値がコンテキストの割り当てに影響する方法を制御する手段を提供する。図8aおよび8bは、本発明の第2の実施形態に従って式(3)の疑似コードをMAX_BIN_RUN=3およびMAX_RUNL=4で適用することによりコンテキストがlevel値に割り当てられる方法を例示する。原則として、符号化されるrun値の統計的特徴に適するコンテキストのセットを定義するために、MAX_BIN_RUNとMAX_RUNLとのいかなる組み合わせも用いることができる。
【0139】
1.3 非ゼロ係数の個数についてのコンテキスト
本発明の第3の実施形態は特に、変換係数値の順序付けられた配列がrunおよびlevel値に変換される方法、および量子化された変換係数値の配列に対応するrun−levelペアの数を示す方法に関する。より具体的には、画像ピクセルまたは予測エラー値のブロックが変換符号化されて変換係数値の2次元配列を形成し、係数値の各々が量子化された後、配列中の非ゼロ量子化係数値の個数が決定される。Ncと呼ばれる値が、その数に割り当てられ、配列中の非ゼロ係数値の個数を明示的に示すために使用される。従って、本発明のこの実施形態によれば、EOB記号、例えばゼロに等しいlevel値は、もはや必要とされない。
【0140】
量子化された変換係数は、所定のスキャン順序に従ってさらにスキャンされて、順序付けられた1次元配列を生成する。代わりに、Ncは、量子化された係数値を順序付けした後に決定することができる。次に、順序付けられた配列中の非ゼロ量子化係数の各々がrun−levelペアに変換される。本発明のこの実施形態によれば、run−levelペアのlevel値は、量子化された係数の値の大きさマイナス1であることを示し、run値は、当該係数に先行する連続したゼロ値の量子化された係数の個数と対応する。level値は、量子化された係数の値の大きさマイナス1に割り当てられる。なぜならば、ゼロに等しいlevel値は、ブロック終結標識としてもはや用いられないからである。これにより、level情報を表すために必要とされるデータ量(例えば、ビット数)の節約がもたらされる。
【0141】
次に、levelおよびrun値は、Nc値がそうであるように、エントロピー符号化を用いてエンコードされる。H.26L TML8において実施されるCABAC法のようなコンテキストベースの算術符号化方法が用いられる状況において、runおよびlevel値は、上記で記載されたような本発明の第1および/または第2の実施態様に従ってエンコードできる。代わりに、runおよびlevel値についてどのような他の適切なコンテキストモデルも用い得る。加えて、別個のコンテキストモデルがNcについて定義される。本発明のこの実施形態によれば、所定のブロック中の非ゼロ量子化変換係数の個数を表すNc値が最初に、対応するビン数を各々が有している一連のビンにこの値を写像することにより2値化される。次に、Ncが写像されるビン数およびNc値がすでに割り当てられた少なくとも1つの他の画像ブロックまたはマクロブロックのNcに基づいてNcについてのコンテキストが決定される。以下の疑似コードは、Nc自身が写像されるビンおよび先行Nc値の両方を考慮に入れつつ、コンテキストをNc値に割り当てるための代表的な手順を示す。
【0142】
【数4】
【0143】
式(4)において、prev_ncは、前回のNc値である。
【0144】
量子化された変換係数の所定のブロックについてのエンコードされたlevelおよびrun値がエンコーダからデコーダに伝送される場合、エントロピー符号化されたNc値は、エンコードされたrunおよびlevel値の前に伝送される。デコーダにおいて、Nc値はデコードされ、当該ブロックについての量子化された変換係数値に対応するrun−levelペアが続く。エンコーダにおいてなされた対応する減算を補償するため、level値がデコードされる際に+1の値がlevel値の大きさに加えられる。
【0145】
本発明による画像符号化方法を用いる符号化効率の改善を実証するため、QP=28、24、20、16についての結果を用いて平均ビットレート差分が計算される。表2は、TML8と比較した時のビットレート低下を百分率で示し、MAX_LEVEL=5およびMAX_RUN=4である。すべてのフレームは、CABACモードでIフレームとしてエンコードされる。表2に示されるように、ビットレート低下は0.95〜4.74%である。QP値が小さい場合に、改善はより顕著である。
【0146】
【表2】
【0147】
表2において、表の第1行に見られる名称は、Gisle Bjontegaard ”Recommended Simulation Conditions for H.26L(H.26Lのための推奨シミュレーション条件)”(VCG-M75, ITU-T Video Coding Experts Group, Austin, Texas, USA, 2-4 April, 2001)において用いられるピクチャである。
【0148】
図9を参照すると、送信側のエンコーダ10は、本発明によれば、前回のlevelおよびrunを蓄えるためのユニット16を含んでいる。図9に示されるように、所定のブロックについてのrun−levelペア102が、写像ユニット12へ提供され、このユニットが、各ビンが0または1の値を持っている一連のビンへペアを写像する。run−levelペアを表すシーケンス中のビンのロケーションは、ビン番号と呼ばれる。ビン番号は、信号104により表される。信号104およびユニット16により提供された前に符号化されたlevel値108に基づき、割り当てユニット14は、コンテキストをビン番号に割り当てる。信号106により示されるコンテキストは、適応算術コーダ20に提供される。1の発生確率および0の発生確率は、確率推定モジュール22により推定される。確率推定値120に基づき、算術エンコーディングユニット24がビンをエンコードする。確率推定を更新するため、フィードバック信号124がエンコーダ24から確率推定モジュール22に提供される。エンコードされた情報は、後に使用するため、デコーダに送られるか記憶装置中に蓄えられるビットストリーム122にされる。
【0149】
好ましくは、エンコーダ10はユニット18も含んでおり、このユニットは、run−levelペアが算術エンコーダ20に提供される前に、ブロック中の非ゼロ係数の個数、Ncを算術エンコーダ20に提供することができ、その結果、Ncもエンコードされてビットストリーム122中に組み込まれる。Ncは信号110により表される。Ncを用いることにより、ブロック終結(EOB)記号をデコーダに送出する必要は皆無である。従来技術では、EOB記号として0のlevel値が用いられる。より具体的には、Ncは変換および量子化の後に見出され、エントロピーエンコーディングを用いてエンコードされる。非ゼロ係数の個数が既知であれば、ブロック終結を知らせるために0−level値を用いることはもはや必要ではないことに注目すべきである。従って、量子化された係数の値から1を減算してlevel値を変更することが可能である。
【0150】
受信側では、図10に示されるように、エンコーダ10により提供されるビットストリーム122を受信するためにデコーダ50が用いられる。算術符号化されたデータシンボルを表す受信されたビットストリームは、参照番号202により示される。最初に、前にデコードされたシンボルに基づいて、コンテキストがコンテキスト割り当てブロック66において計算され、ビン値の確率推定値が確率推定ブロック62において更新される。確率推定値更新される根拠である前にデコードされた記号は、参照番号205により示される。コンテキスト割り当てブロック66において実行されるようなコンテキスト割り当て、および確率推定ブロック62において実行されるような確率推定値の計算は、エンコーダ10におけるものと同様である。受信されたビット202は次に、算術コーダ60中の算術デコードエンジン64に供給され、そこでビットは、計算されたコンテキストおよびビン値の現在の確率推定値204を用いて、デコードされたビン値206に変換される。デコードされたビン208は、ブロック68においてrunおよびlevelの値に写像される。ブロック中の非ゼロ係数の個数、Ncがエンコーダ10において符号化され、受信されたビットストリーム202中に提供されれば、信号214がビン−値写像モジュール68に提供され、それによって、量子化された係数は、level値に1を加えることにより復元される。
【0151】
図11は、本発明の好ましい実施形態による画像符号化方法を例示するフローチャートである。示されるように、この方法500は、画像がエンコーダにより受信されるステップ510で開始する。受信された画像は、ステップ520において複数のブロックに分割される。各ブロックは、ステップ530においてスキャンされ、ブロック中の量子化された係数のlevelおよびrunがステップ540において得られる。従来技術の符号化方式と対照的に、本発明は、ステップ550でのコンテキスト割り当てにおいて前回のlevelも用いる。特に、量子化された係数のlevel値を表すビンへのコンテキスト割り当ては、セクション1.1で説明されたように、前に符号化されたlevelの値を考慮に入れる。同様に、量子化された係数のrun値を表すビンへのコンテキスト割り当ては、セクション1.2で説明されたように、level値を考慮に入れる。割り当てられたコンテキストは、ステップ560においてエンコードするために算術コーダに送られる。加えて、Ncすなわち非ゼロ量子化係数の個数が、ステップ530においてブロックがスキャンされている間またはその後に決定され、Ncは、セクション1.3で説明されたように、Ncおよびコンテキストがデコーダに提供される前に、ステップ560においてエンコードされる。
【0152】
代わりに、画像符号化方法は、図11に示されるように、コンテキストが割り当てられる時に、前にエンコードされたlevelまたはrunの値を考慮することなく、Ncを示す信号を受信側にただ単に伝えることによって改善できる。図12に示されるように、ステップ550でコンテキストを割り当てるために前に符号化されたlevelおよびrunをステップ540において得る代わりに、Ncはステップ542において得られて提供される。ステップ550において割り当てられたコンテキストが送られる前に、Ncは、ステップ560においてエンコードするために算術コーダに送られる。Ncを送ることによって、EOB記号をデコーダに送る必要は皆無になる。
【0153】
本発明の好ましい実施形態に関して本発明を説明してきが、実施形態の形状および詳細における前述および様々なその他の変化、省略および変更を、本発明の範囲を逸脱することなくなし得ることが当業者によって理解されるであろう。
【技術分野】
【0001】
本発明は、静止画像およびビデオシーケンスの圧縮に関し、より具体的には、コンテキストベースの適応2値算術符号化方法およびシステムに関する。
【背景技術】
【0002】
非圧縮形式のデジタル画像は、画像ピクセルすなわち画素の配列を含む。例えば、クオーター共通交換形式(Quarter Common Interchage Format)(QCIF)として知られる、一般に用いられるデジタル画像形式において、画像、すなわちフレームは、176×144ピクセルの配列で配置された25,344個のピクセルを含む。次に各ピクセルは、ピクセルの明るさ(輝度)および/または色(クロミナンス)についての情報を伝えるある数のビットにより表される。デジタル画像中のピクセルの輝度および/またはクロミナンスを表すための種々の方式が存在する。一般的に、いわゆるYUVカラーモデルが用いられる。輝度、すなわちY成分は、ピクセルの輝度を表すのに対して、ピクセルの色は、2つのクロミナンスすなわち色差成分であるラベル付けされたUおよびVにより表される。光の3原色を表す成分に基づくRGB(赤、緑、青)カラーモデルのような他のカラーモデルも一般的に用いられる。しかしながら、原色に基づくカラーモデルと比較して、輝度/クロミナンス表現に基づくカラーモデルには利点がある。これらの利点は、色の変化に対するよりも強度の変化に対してより敏感である人間の視覚系の性質に由来する。YUVカラーモデルは典型的には、輝度成分(Y)よりもクロミナンス成分(U、V)についてより低い空間分解能を用いることにより、この特性を利用する。このように、知覚された画質が顕著に低下することなく、画像中の色情報を表すために必要とされる情報量を低減できる。
【0003】
クロミナンス成分のより低い空間分解能は、通常、サブサンプリングによって達成される。典型的には、16×16画像ピクセルのブロックが、輝度情報を含む8×8ピクセルの4つのブロックにより表され、対応するクロミナンス成分は、輝度成分中の16×16ピクセルのブロックに等しい画像領域を表す8×8ピクセルの1つのブロックにより各々表される。クロミナンス成分はこのように、xおよびy方向において2のファクターにより空間的にサブサンプリングされる。結果として生じる、4つの8×8ピクセル輝度ブロックと空間的に対応する2つの8×8ピクセルクロミナンスブロックとのアセンブリは一般的に、YUVマクロブロック、または略してマクロブロックと呼ばれる。QCIF画像は、そのようなマクロブロックを11×9個含む。もし輝度ブロックおよびクロミナンスブロックが、8ビット分解能により(つまり、0から255の範囲の数により)表されれば、各マクロブロックに関連した輝度およびクロミナンス情報を表すために必要な総ビット数は、6×(8×8×8)=3072ビットである。従って、QCIF形式の画像を表すために必要なビット数は、99×3072=304,128ビットである。
【0004】
デジタルカラー画像の双方のクロミナンス成分が2のファクターによりサブサンプリングされる上記の状況においてさえ、ほんの中程度サイズ(例えば、176×144ピクセル)の非圧縮画像が、これを表現するために多くのビットを必要とすることが認識されなければならない。このことは、非圧縮形式のデジタル画像を記憶するために必要とされるメモリー量が極端に大きいことを意味している。さらに、もし静止画像が、例えば利用可能な帯域幅が中程度ないし低いデータ通信ネットワーク上を転送されるのであれば、伝送時間が非常に長引いたり、ネットワークが輻輳したりすることがある。もしデジタルビデオシーケンスとして一連の画像をリアルタイムで伝送することが要求されれば、帯域幅要件はいっそう厳しいものになる。例えば、YUVカラーモデルを用いて表される、未圧縮QCIF形式の一連の画像を含むデジタルビデオシーケンスを毎秒30フレームのレートで伝送するには、9メガビット/秒(毎秒100万ビット)以上が要求される。そのような高いデータレートは、必要とされる記憶容量、伝送チャンネル容量およびハードウェア性能が非常に大きいため、ビデオ記録、伝送および表示の用途に使用するのは一般に非現実的である。もしビデオシーケンスが、ISDN(Integrated Services Digital Network:統合サービスデジタル網)またはPSTN(Public Service Telephone Network:公衆電話網)のような固定回線網上をリアルタイムで伝送されるのであれば、利用可能なデータ伝送帯域幅は、典型的には64キロビット/秒のオーダーである。伝送が少なくとも部分的に無線通信リンク上で行われる移動ビデオ電話技術において、利用可能な帯域幅は20キロビット/秒と低くなることがある。このことは、低帯域幅通信網上でのデジタル画像またはビデオシーケンスの伝送を可能にするために、ビデオデータを表すために用いられる情報量のかなりの低減を達成しなければならないことを意味している。それでもやはり、画像/ビデオシーケンスの品質を大きく劣化させることなくこの低減が達成されることが望ましい。
【0005】
過去何年にもわたり、デジタル画像およびビデオシーケンスを表すために必要とされるデータ量の低減に多くの研究活動が傾注されてきており、その結果、デジタル静止画像およびデジタルビデオを圧縮するための多くの様々な方式および国際規格が開発された。今日存在するほとんどすべての静止画像およびビデオのエンコーダにおいて用いられる画像圧縮の基本的手法は、ブロックベースの変換符号化を伴う。典型的には、変換符号化は、画像データを、ピクセル値を含む表現から、係数値のセットを含む形式へ翻訳する。計数値の各々は、当該変換の基底関数のための加重係数(乗数)である。典型的なデジタル画像内にかなりの程度の空間的冗長性があることを示し得る。実際面では、このことは、一般に画像内の任意のピクセルの値は、そのすぐ近傍の他のピクセルの値と実質的に同じであること、すなわち、ピクセル値の間には相当の相関関係があることを意味している。2次元離散コサイン変換(DCT)のような特定の数学的変換が画像データに対して実行されると、この空間的冗長性が大きく低減され、それによって、画像データのよりコンパクトな表現が生成されることがさらに知られている。
【0006】
JPEG静止画像符号化において用いられるブロックベースの変換符号化
広く使用されているJPEG規格のベースラインモードに従って実行されるような静止画像圧縮において、符号化される画像は最初に、各ブロックが、例えば画像ピクセルの8×8配列を含む重複しない正方形ブロックの配列に分割される。JPEGベースラインの場合、次に2次元離散コサイン変換(DCT:Discrete Cosine Transform)が画像ブロックの各々に独立して適用される。これは、画像データをピクセル値領域から空間周波数領域へ変換して対応する計数値のセットを生成する効果があり、計数値の各々は、2次元DCTの基底関数のための加重ファクターである。このようにして生成された係数値は量子化され、次に、それらの表現に必要なデータ量(すなわち、ビット数)をさらに減らすために、エントロピー符号化を用いて無損失な方法で符号化される。JPEGベースラインによれば、エントロピーコーダは、ハフマン符号化のみを使用して圧縮ビットストリームを生成する。なお、他のモードでは算術符号化を代わりに用い得る。最後に、画像および符号化のパラメータ(例えば、圧縮タイプ、量子化および符号化テーブル、画像サイズ等)を記述するデータが、エントロピーエンコーダにより生成されたビットストリーム中に埋め込まれる。JPEG規格が4つの代替符号化モードを含んでおり、量子化および使用できる符号化テーブルに制約をほとんど加えないので、これは、JPEG圧縮ビットストリームが種々のプラットホーム間で交換されることおよびどのような曖昧性もなく画像が再構成されることを可能にするために必要である。
【0007】
フィルム上に記録された普通の映画のようなデジタルビデオシーケンスは、一連の静止画像(「フレーム」と呼ばれることが多い)を含み、動きの幻覚は、そのフレームを比較的高速で、典型的には毎秒15ないし30フレームで次々に表示することによって作り出される。任意の静止画像中におけるように、デジタルビデオシーケンス内の個々のフレームのピクセル値は、かなりの空間冗長性を示す。従って、デジタルビデオシーケンスのフレームは、ちょうど個々の静止画像のように、ブロックベースの変換符号化に適する。
【0008】
ビデオシーケンスの連続したフレーム中の画像も、かなり類似する傾向があり、従って、1つのビデオフレームと次のビデオフレームとの間の全体的変化はかなり小さい。このことは、典型的なデジタルビデオシーケンス内に相当な時間的冗長性があることを意味している。例えば、1つの場面は、背景のようないくつかの静止要素と、いくつかの動く領域、例えばニュースキャスターの顔とを含み得る。シーケンスの連続フレーム中では、背景が変更されないままであり、場面中の唯一の動きがニュースキャスターの表情の変化に起因するということがあり得る。従って、ビデオシーケンスの圧縮された表現を形成する場合、空間冗長性を減らす方法に加えてシーケンスの画像データの時間的冗長性を減らす手法を用いる可能性もあり、その結果、さらなるデータ圧縮を達成することが可能になる。
【0009】
ハイブリッドビデオエンコーダ/デコーダ
従来技術のビデオ符号化システムは、ビデオシーケンス中の時間的冗長性を減らすために「動き補償予測」として知られている手法を利用する。動き補償予測を使用すると、デジタルビデオシーケンス中のいくつか(しばしば多く)のフレームの画像内容が、「参照フレーム」として知られるシーケンスの1つ以上の他のフレームから「予測される」。画像内容の予測は、符号化(圧縮)されるフレームと参照フレームとの間での画像のオブジェクトまたは領域の動きを「動きベクトル」を用いてトレースすることによって達成される。一般に、参照フレームは、ビデオシーケンス中で、符号化されるフレームに先行するかこれに続くことができる。しかしながら、本明細書中の後の議論から明らかになるように、動き補償予測をビデオシーケンスのすべてのフレームに適用することは適当(または可能)ではなく、従って、少なくとも2種類の符号化が従来技術のビデオ符号化システムにおいて使用される。
【0010】
動き補償予測を用いて圧縮されるビデオシーケンスのフレームは、INTER符号化またはPフレームと一般に呼ばれる。ビデオフレームの画像内容の十分に精密な表現が動き補償予測単独で提供されることはめったになく、従って、各INTER符号化フレームをいわゆる「予測エラー」(PE)フレームに設けることが一般に必要である。後に本明細書中でより詳細に説明されるように、予測エラーフレームは、INTER符号化フレームのデコードされたバージョンと符号化されるフレームの画像内容との間の差分を表す。より具体的には、予測エラーフレームは、符号化されるフレーム中のピクセル値と当該フレームの予測された(INTER符号化された)バージョンに基づいて形成された対応する再構築されたピクセル値との間の差分を表す値を含む。その結果、予測エラーフレームは、静止画像と同様な特徴を有し、静止画像を表すのに必要なデータ量(ビット数)を減らすためにブロックベースの変換符号化が適用できる。
【0011】
動き補償予測を用いて圧縮されないビデオシーケンスのフレームは、INTRA符号化またはIフレームと呼ばれる。一般に、INTRA符号化されたフレームは、符号化されるフレームのピクセル値にブロックベースの変換符号化を直接適用することによって生成される。さらに、可能な場合には、INTRA符号化されたフレームのブロックは、同じフレーム内の前に符号化されたブロックから予測される。INTRA予測として知られているこの手法は、INTRA符号化されたフレームを表すために必要なデータ量をさらに減らす効果がある。
【0012】
ブロックベースの変換符号化および動き補償予測の原理をより詳細に例示するため、図1を参照するが、この図は、圧縮された(符号化された)ビデオビットストリームを生成すためにINTRA符号化とINTER符号化との組み合わせを使用する一般的なハイブリッドビデオエンコーダの概略図である。対応するデコーダが図2に例示されており、本明細書中で後に説明される。
【0013】
ビデオエンコーダ300は、カメラまたは他のビデオソース(図示せず)からデジタルビデオ信号を受信するための入力301を備えている。エンコーダは、ブロックベースの離散コサイン変換(DCT)を実行するように構成された変換ユニット304、量子化器306、逆量子化器308、逆ブロックベースの離散コサイン変換(IDCT)を実行するように構成された逆変換ユニット310、結合器312および316、ならびにフレーム記憶装置320も含んでいる。エンコーダは、動き推定器330、動き場コーダ340、および動き補償予測器350をさらに備えている。スイッチ302および314は、エンコーダをビデオ符号化のINTRAモードとビデオ符号化のINTERモードとの間で切り替えるために、コントロールマネージャー360により協調的に操作される。エンコーダ300は、遠方の受信端末へさらに伝送するため、または、例えば、コンピュータハードドライブのような大容量記憶媒体(図示せず)に記憶するためにエンコーダ300によって生成された種々のタイプの情報から、単一ビットストリーム335を形成するビデオ多重コーダ370も備えている。
【0014】
エンコーダ300は以下の通り動作する。ビデオソースから入力301へ提供される非圧縮ビデオの各フレームは、受信され、好ましくはラスタ−スキャン方式でマクロブロックごとに処理される。新しいビデオシーケンスの符号化が開始すると、シーケンスの最初のフレームが、INTRA符号化フレームとして符号化される。その後、1)符号化されている現在のフレームが、その予測に用いられる参照フレームと非常に異なるため、過剰な予測エラー情報が生成されると判定される、2)あらかじめ定義されたINTRAフレーム繰返し間隔が満了した、または、3)フレームがINTRA符号化形式で提供されることを要求する受信端末からのフィードバックが受信される、という条件の1つが満たされない限り、エンコーダは各フレームをINTER符号化形式で符号化するようにプログラムされる。
【0015】
条件1)の発生は、結合器316の出力を監視することにより検出される。結合器316は、符号化されているフレームの現在のマクロブロックと、動き補償予測ブロック350において生成される予測との間の差分を形成する。もしこの差分の測定値(例えば、ピクセル値の絶対差分の合計)が、所定のしきい値を超過すれば、結合器316はコントロールライン319を介してコントロールマネージャー360に通知し、コントロールマネージャー360は、エンコーダ300をINTRA符号化モードに切り替えるため、コントロールライン313を介してスイッチ302および314を操作する。条件2)の発生は、タイマーが満了するかフレームカウンターがフレームの所定数に達すれば、コントロールマネージャー360が、スイッチ302および314を操作して、コントロールライン313を介してエンコーダをINTRA符号化モードに切り替えるように、コントロールマネージャー360に実装されたタイマーまたはフレームカウンターよって監視される。もしコントロールマネージャー360が、INTRAフレームリフレッシュが受信端末により要求されていることを示すフィードバック信号を、例えば受信端末から、コントロールライン321を介して受信すれば、条件3)が起動される。例えば、前に伝送されたフレームが、その伝送の間の干渉によりひどく損なわれ、受信器においてデコードすることが不可能になれば、そのような条件が生じることがある。この状況において、受信デコーダは、次のフレームがINTRA符号化形式で符号化されるように要求を出し、それにより、符号化シーケンスを再初期化する。
【0016】
INTRA符号化モードにおけるエンコーダ300の操作を説明する。INTRA符号化モードにおいて、コントロールマネージャー360は、スイッチ302を操作して入力ライン318からビデオ入力を受け入れる。ビデオ信号入力は、入力301から入力ライン318を介してマクロブロックごとに受信される。それらが受信されると、マクロブロックを構成する輝度およびクロミナンス値のブロックがDCT変換ブロック304に送られ、この変換ブロックは、値の各ブロックに対して2次元離散コサイン変換を実行して、各ブロックについてDCT係数の2次元配列を生成する。各マクロブロックが、輝度値の8×8ピクセル4つと、空間的に対応するクロミナンス値の8×8ピクセル2つとを含む以前に説明したような状況において、DCT変換ブロック304は、各ブロックについて係数値の8×8配列を生成する。
【0017】
各ブロックについてのDCT係数は量子化器306に送られ、そこで量子化パラメータQPを用いて量子化される。量子化パラメータQPの選択は、コントロールライン315を介してコントロールマネージャー360により制御される。量子化により情報の損失が生じるが、これは、量子化された係数は、当初DCT変換ブロック304により成生された係数よりも数値精度が低いからである。これにより、ビデオシーケンスの各画像を表すために必要なデータ量を低減できるさらなる機構がもたらされる。しかしながら、本質的に無損失なDCT変換とは異なり、量子化により生じたた情報の損失は、画質における不可逆的劣化を引き起こす。DCT係数に適用される量子化の程度が大きくなればなるほど、画質の損失はより大きくなる。
【0018】
各ブロックについての量子化されたDCT係数は、図1のライン325により示されるように、量子化器306からビデオ多重コーダ370に送られる。ビデオ多重コーダ370は、ジグザグスキャン手順を用いて各ブロックについての変換係数を順序付けする。この操作により、量子化された変換係数の2次元配列が、1次元配列に変換される。図3に示されるような典型的なジグザグスキャン順序は、係数を空間周波数のほぼ昇順に順序付けする。これも、1次元配列中により早く配置された係数がその配列中により遅く配置された係数よりも大きい絶対値を有する確率が強くなるように、係数をそれらの値に従って順序付ける傾向がある。これは、より低い空間周波数が画像ブロック内でより高い振幅を有する傾向があるからである。その結果、量子化された変換係数の1次元配列中の後ろの方の値は一般にゼロである。
【0019】
DCT変換係数のrun−level符号化
典型的には、ビデオ多重コーダ370は、1次元配列中の各非ゼロ量子化された係数を、levelおよびrunと呼ばれる2つの値で表す。levelは、量子化された係数の値であり、runは、当該係数に先行する連続したゼロ値係数の個数である。ある特定の係数についてのrunおよびlevel値は、level値が、関連するrun値に先行するように順序付けされる。ゼロに等しいlevel値は、ブロック中に非ゼロ係数値がもはやないことを示すために用いられる。この0−level値は、EOB(end-of-block:ブロック終結)記号と呼ばれる。
【0020】
エントロピー符号化
runおよびlevel値は、ビデオ多重コーダ370中でエントロピー符号化を用いてさらに圧縮される。エントロピー符号化は、符号化されるデータ集合内のシンボルが様々な発生確率を一般に有しているという事実を利用する無損失演算である。従って、各シンボルを表すために固定のビット数を用いる代わりに、発生する確率がより高いシンボルが、より少ないビットを有する符号語により表されるように、可変のビット数が割り当てられる。この理由から、エントロピー符号化はしばしば可変長符号化(Variable Length Coding:VLC)と呼ばれる。levelおよびrunの特定の値は他の値よりも発生する確率が高いので、エントロピー符号化手法は、runおよびlevel値を表すのに必要なビット数を減らすために効果的に用い得る。いくつかの異なる方法を、エントロピー符号化の実施に用いることができる。例えば、runおよびlevelパラメータのエントロピー符号化は、符号化されるデータのセット中の各可能な記号とその対応する可変長コードとの間の写像を定義するルックアップテーブルを用いて実施できる。そのようなルックアップテーブルは、符号化されるシンボルと同一のシンボルを含みかつ同様な統計的特性を有するトレーニングマテリアルの統計解析により定義されることが多い。算術符号化として知られている別の手法も、runおよびlevel値を可変長符号語に変換するために用い得る。算術符号化において、シンボルのグループ、例えば、量子化された変換係数のブロックについてのrunおよびlevel値は、浮動小数点10進数として符号化される。
【0021】
適切な方法を用いてrunおよびlevel値がひとたびエントロピー符号化されると、ビデオ多重コーダはさらに、それらの値を、当該情報の種類に適した可変長符号化方法を用いてやはりエントロピー符号化された制御情報と結合させて、符号化された画像情報の単一の圧縮されたビットストリーム335を形成する。
【0022】
マクロブロックの局所的にデコードされたバージョンも、エンコーダ300中で形成される。これは、量子化器306により出力された各ブロックについての量子化された変換係数を、逆量子化器308を通して送り、逆DCT変換を逆変換ブロック310中で適用することによって行われる。このようにして、ピクセル値の再構成された配列が、マクロブロックの各ブロックについて構成される。その結果生じるデコードされた画像データは、結合器312に入力される。INTRA符号化モードにおいて、スイッチ314は、スイッチ314を介した結合器312への入力がゼロになるように設定される。このようにして、結合器312により実行される演算は、デコードされた画像データを変更されないまま送ることに等しい。
【0023】
現在のフレームの以降のマクロブロックが受信され、前に説明されたエンコードおよびデコードステップを、ブロック304、306、308、310、および312で受けるにつれて、INTRA符号化されたフレームのデコードされたバージョンがフレーム記憶装置320中に蓄積される。現在のフレームの最後のマクロブロックがINTRA符号化され、続いてデコードされた時、フレーム記憶装置320は、その後受信されるINTER符号化形式のビデオフレームを符号化する際に予測参照フレームとして使用するために利用可能な完全にデコードされたフレームを含んでいる。
【0024】
INTER符号化モードでのエンコーダ300の演算を説明する。INTER符号化モードにおいて、コントロールマネージャー360は、結合器316の出力を含むその入力をライン317から受信するためにスイッチ302を操作する。結合器316は、入力301からマクロブロックごとにビデオ入力信号を受信する。マクロブロックを構成する輝度およびクロミナンス値のブロックを結合器316が受信するにつれて、結合器は予測エラー情報の対応するブロックを形成する。予測エラー情報は、当該ブロックと、動き補償予測ブロック350において生成されたその予測との差分を表す。より具体的には、マクロブロックの各ブロックについての予測エラー情報は値の2次元配列を含み、値の各々は、符号化されている輝度またはクロミナンス情報のブロック中のピクセル値と、以下で説明される手順に従いそのブロックについての動き補償予測を形成することにより得られるデコードされたピクセル値との差分を表している。従って、各マクロブロックが、輝度値の8×8ピクセルブロック4つと、空間的に対応するクロミナンス値の8×8ピクセルブロック2つとを含む状況において、マクロブロックについての予測エラー情報は、輝度予測エラー値の8×8ブロック4つと、空間的に対応するクロミナンス予測エラー値の8×8ブロック2つとを同様に含んでいる。
【0025】
マクロブロックの各ブロックについての予測エラー情報は、DCT変換ブロック304に送られ、このブロックが、予測エラー値の各ブロックに対して2次元離散コサイン変換を実行して各ブロックについてDCT変換係数の2次元配列を生成する。従って、各マクロブロックについての予測エラー情報が、輝度予測エラー値の8×8ブロック4つと、空間的に対応するクロミナンス予測エラー値の8×8ブロック2つとを含む状況において、DCT変換ブロック304は、各予測エラーブロックについて変換係数値の8×8配列を生成する。各予測エラーブロックについての変換係数は、量子化器306に送られ、そこで、INTRA符号化モードでのエンコーダの演算に関して上記で説明した方法と類似した方法で、量子化パラメータQPを用いて量子化される。やはり、量子化パラメータQPの選択は、コントロールライン315を介してコントロールマネージャー360により制御される。
【0026】
マクロブロックの各ブロックについての予測エラー情報を表す量子化されたDCT係数は、図1のライン325により示されるように、量子化器306からビデオ多重コーダ370に送られる。INTRA符号化モードにおけるように、ビデオ多重コーダ370は、前に説明したジグザグスキャン手順(図3参照)を用いて各予測エラーブロックについての変換係数を順序付けし、次に、各非ゼロ量子化係数をlevelおよびrun値として表す。コーダは、INTRA符号化モードに関して上記で説明した方法と類似の方法で、エントロピー符号化を用いてrunおよびlevel値をさらに圧縮する。ビデオ多重コーダ370は、ライン326を介して動き場符号化ブロック340から動きベクトル情報(以下で説明される)を、そしてコントロールマネージャー360から制御情報も受信する。コーダは、動きベクトル情報をエントロピー符号化して、エントロピー符号化された動きベクトル、予測エラーおよび制御情報を含む符号化された画像情報の単一ビットストリーム335を形成する。
【0027】
マクロブロックの各ブロックについての予測エラー情報を表す量子化されたDCT係数も、量子化器306から逆量子化器308へ送られる。ここで、それらは逆量子化され、結果的に生じる逆量子化されたDCT係数のブロックが逆DCT変換ブロック310に適用され、そこで逆DCT変換を受けて予測エラー値の局所的にデコードされたブロックを生成する。予測エラー値の局所的にデコードされたブロックは、次に結合器312に入力される。INTER符号化モードにおいて、スイッチ314は、動き補償予測ブロック350により生成されるマクロブロックの各ブロックについての予測ピクセル値も結合器312が受信するように設定される。結合器312は、予測エラー値の局所的にデコードされたブロックの各々を、予測されたピクセル値の対応するブロックと結合して、再構成された画像ブロックを生成してそれらをフレーム記憶装置320内に格納する。
【0028】
ビデオ信号の以降のマクロブロックがビデオソースから受信され、前に説明されたエンコードおよびデコードステップをブロック304、306、308、310、312で受けるにつれて、INTER符号化されたフレームのデコードされたバージョンがフレーム記憶装置320中に蓄積される。フレームの最後のマクロブロックがINTER符号化され、続いてデコードされた時、フレーム記憶装置320は、その後受信されるINTER符号化形式のビデオフレームをエンコードする際の予測参照フレームとして使用するために利用可能な完全にデコードされたフレームを含む。
【0029】
現在のフレームのマクロブロックについての予測の形成を説明する。INTER符号化形式でエンコードされたどのようなフレームも、動き補償予測のための参照フレームを必要とする。このことは、必然的に,ビデオシーケンスをエンコードする時、エンコードされる最初のフレームは、それがシーケンス中の最初のフレームであろうと他のフレームであろうと、INTRA符号化された形式でエンコードされなければならないことを意味している。このことは、ひいては、ビデオエンコーダ300がコントロールマネージャー360によりINTER符号化モードに切り替えられると、前にエンコードされたフレームを局所的にデコードすることによって形成された完全な参照フレームが、エンコーダのフレーム記憶装置320中ですでに利用可能であることを意味している。一般に、参照フレームは、INTRA符号化されたフレームかINTER符号化されたフレームを局所的にデコードすることによって形成される。
【0030】
現在のフレームのマクロブロックについての予測形成における最初のステップは、動き推定ブロック330により実行される。動き推定ブロック330は、符号化されるフレームの現在のマクロブロックを構成する輝度およびクロミナンス値のブロックをライン328を介して受信する。動き推定ブロックは次に、現在のマクロブロックと実質的に一致す参照フレーム中の領域を識別するために、ブロックマッチング演算を実行する。ブロックマッチング演算を実行するために、動き場推定ブロックは、フレーム記憶装置320中に格納された参照フレームデータにライン327を介してアクセスする。より具体的には、動き推定ブロック330は、検査中のマクロブロックと、フレーム記憶装置320中に格納された参照フレームからの最もマッチする候補ピクセル領域との間におけるピクセル値の差分を表す差分値(例えば、絶対差分の合計)を計算することによりブロックマッチングを実行する。参照フレームの所定調査領域内の考えられるすべてのオフセットにおける候補領域についての差分値が生成され、動き推定ブロック330が、最小の計算された差分値を決定する。最小の差分値を生み出す、現在のフレーム中のマクロブロックと、参照フレーム中のピクセル値の候補ブロックとの間のオフセットは、当該マクロブロックについての動きベクトルを定義する。
【0031】
動き推定ブロック330がマクロブロックについての動きベクトルをひとたび生成すると、このブロックは、動きベクトルを動き場符号化ブロック340に出力する。動き場符号化ブロック340は、基底関数および動き係数のセットを含む動きモデルを用いて、動き推定ブロック330から受信された動きベクトルを見積もる。より具体的には、動き場符号化ブロック340は、動きベクトルが、基底関数を掛けられた時に、動きベクトルの近似値を形成する動作係数値のセットを表す。典型的には、2つの動作係数と基底関数のみを有する並進運動モデルが用いられる。
【0032】
動き係数は、動き場符号化ブロック340から動き補償予測ブロック350へ送られる。動き補償予測ブロック350は、動き推定ブロック330により識別されたピクセル値の最もマッチする候補領域もフレーム記憶装置320から受信する。動き場符号化ブロック340により発生された動きベクトルの近似表現と、参照フレームからのピクセルの最もマッチする候補領域のピクセル値とを用いて、動き補償予測ブロック350は、マクロブロックの各ブロックについての予測されたピクセル値の配列を成生する。予測されたピクセル値の各ブロックは結合器316へ送られ、そこで、予測されたピクセル値は、現在のマクロブロックの対応するブロック中の実際の(入力)ピクセル値から減じられる。このように、マクロブロックについての1セットの予測エラーブロックが得られる。
【0033】
図2に示されるビデオデコーダ400の演算を説明する。デコーダ400は、エンコードされたビデオビットストリーム335をエンコーダ300から受信しこれをその成分部分に逆多重化するビデオ多重デコーダ470、逆量子化器410、逆DCT変換器420、動き補償予測ブロック440、フレーム記憶装置450、結合器430、コントロールマネージャー460、および出力480を含む。
【0034】
コントロールマネージャー460は、INTRA符号化されたフレームかそれともINTER符号化されたフレームがデコードされているかに呼応して、デコーダ400の演算を制御する。デコーダをデコードモード間で切り替えさせるINTRA/INTERトリガ制御信号が、例えば、エンコーダから受信された各圧縮ビデオフレームのヘッダー部分中に提供されるピクチャタイプ情報から導き出される。INTRA/INTERトリガ制御信号は、エンコードされたビデオビットストリームからビデオ多重デコーダ470によって抽出され、コントロールライン422を介してコントロールマネージャー460に送られる。
【0035】
INTRA符号化されたフレームのデコードは、マクロブロックごとに実行され、各マクロブロックは、それに関連するエンコードされた情報が受信されたビデオビットストリーム335中で識別されると実質的にすぐにデコードされる。ビデオ多重デコーダ470は最初に、当該マクロブロックに関連する考え得る制御情報から、マクロブロックのブロックについてのエンコードされた情報を分離する。INTRA符号化されたマクロブロックの各ブロックについてのエンコードされた情報は、可変長符号語を含む。これらの符号語は、ブロックの非ゼロ量子化されたDCT係数についてのエントロピー符号化されたlevelおよびrun値を表す。ビデオ多重デコーダ410は、エンコーダ300において用いられるエンコード方法に対応する可変長デコード方法を用いて可変長符号語をデコードし、その結果、levelおよびrun値を復元する。次にこのデコーダは、マクロブロックの各ブロックについての量子化された変換係数値の配列を再構成し、それらを逆量子化器410に送る。マクロブロックに関連するどのような制御情報も、適切な可変長デコード方法を用いてビデオ多重デコーダにおいてデコードされ、コントロールマネージャー460に送られる。特に、変換係数に適用される量子化レベルに関する情報が、エンコードされたビットストリームからビデオ多重デコーダ470によって抽出され、コントロールライン424を介してコントロールマネージャー460に供給される。そして今度は、このコントロールマネージャーが、この情報をコントロールライン415を介して逆量子化器420に送る。逆量子化器410は、制御情報に従ってマクロブロックの各ブロックについての量子化されたDCT係数を逆量子化し、今逆量子化されたDCT係数を逆DCT変換器420に供給する。
【0036】
逆DCT変換器420は、マクロブロックの各ブロックについての逆量子化されたDCT係数に対して逆DCT変換を実行して、再構成されたピクセル値を含む画像情報のデコードされたブロックを形成する。INTRA符号化されたマクロブロックのエンコーディング/デコーディングにおいて動き補償予測が使用されない時、コントロールマネージャー460は、INTRA符号化されたマクロブロックのデコーディングにおいてどのような参照情報も使用されないように、結合器430を制御する。マクロブロックの各ブロックについての再構成されたピクセル値は、デコーダのビデオ出力480に送られ、例えば、そこで表示装置(図示せず)に供給し得る。マクロブロックの各ブロックについての再構成されたピクセル値は、フレーム記憶装置450中にも格納し得る。INTRA符号化されたフレームのその後のマクロブロックがデコードおよび記憶される時、デコードされたフレームは、フレーム記憶装置450中で順次アセンブルされ、かくして、後に受信されたINTER符号化されたフレームのデコーディングに関連して、動き補償予測のための参照フレームとして使用するために利用可能になる。
【0037】
INTER符号化されたフレームもマクロブロックごとにデコードされ、各INTER符号化されたマクロブロックは、それに関連するエンコードされた情報が受信されたビットストリーム中で識別されると実質的にただちにデコードされる。ビデオ多重デコーダ470は、INTER符号化されたマクロブロックの各ブロックについてのエンコードされた予測エラー情報を、エンコードされた動きベクトル情報および当該マクロブロックに関連する考えられる制御情報から分離する。上記で説明したように、マクロブロックの各ブロックについてのエンコードされた予測エラー情報は、当該予測エラーブロックについての非ゼロ量子化された変換係数についてのエントロピー符号化されたlevelおよびrun値を表す可変長符号語を含んでいる。ビデオ多重デコーダ470は、エンコーダ300において用いられるエンコード方法と対応する可変長デコード方法を用いて可変長符号語をデコードし、それによって、levelおよびrun値を復元する。次にこのデコーダは、各予測エラーブロックについての量子化された変換係数値の配列を再構成し、それらを逆量子化器410に送る。INTER符号化されたマクロブロックに関する制御情報も、ビデオ多重デコーダにおいて、適切な可変長デコーディング方法を用いてデコードされ、コントロールマネージャー460に送られる。予測エラーブロックの変換係数に適用される量子化レベルに関する情報が、エンコードされたビットストリームから抽出され、コントロールライン424を介してコントロールマネージャー460に供給される。そして今度は、コントロールマネージャーは、この情報をコントロールライン415を介して逆量子化器420に送る。逆量子化器410は、制御情報に従ってマクロブロックの各ブロックについての予測エラー情報を表す量子化されたDCT係数を逆量子化し、今逆量子化されたDCT係数を逆DCT変換器420に供給する。次に、各ブロックについての予測エラー情報を表す逆量子化されたDCT係数は、逆DCT変換器420において逆変換されて、マクロブロックの各ブロックについての再構成された予測エラー値の配列を発生する。
【0038】
マクロブロックに関連したエンコードされた動きベクトル情報は、エンコードされたビデオビットストリーム335からビデオ多重デコーダ470により抽出され、適切な可変長デコード方法を用いてデコードされる。このようにして得られたデコードされた動きベクトル情報は、データライン426を介して動き補償予測ブロック440に送られて、このブロックが、エンコーダ300においてINTER符号化されたマクロブロックをエンコードするために使用されたものと同じ動きモデルを用いてマクロブロックについての動きベクトルを再構成する。再構成された動きベクトルは、元々はエンコーダの動き推定ブロック330により決定された動きベクトルを見積もる。デコーダの動き補償予測ブロック440は、フレーム記憶装置450中に格納された予測参照フレーム中の再構成されたピクセルの領域の位置を特定するために、再構成された動きベクトルを用いる。参照フレームは、例えば、前にデコードされたINTRA符号化されたフレームか、あるいは前にデコードされたINTER符号化されたフレームとすることができる。どちらの場合も、再構成された動きベクトルにより示されるピクセルの領域は、当該マクロブロックについての予測を形成するために使用される。より具体的には、動き補償予測ブロック440は、参照フレーム中で識別されたピクセルの領域から対応するピクセル値をコピーすることにより、マクロブロックの各ブロックについてのピクセル値の配列を形成する。参照フレームから導き出されたピクセル値のブロックである予測は、動き補償予測ブロック440から結合器430へ送られ、そこで、デコードされた予測エラー情報と結合される。実際には、予測された各ブロックのピクセル値は、逆DCT変換器420により出力される対応する再構成された予測エラー値に加算される。このようにして、マクロブロックの各ブロックについての再構成されたピクセル値の配列が得られる。再構成されたピクセル値は、デコーダのビデオ出力480に送られて、またフレーム記憶装置450中に格納される。INTER符号化されたフレームのその後のマクロブロックがデコードされて蓄えられる時、デコードされたフレームがフレーム記憶装置450中で順次アセンブルされ、このようにして、他のINTER符号化されたフレームの動き補償予測のための参照フレームとして使用するために利用可能になる。
【0039】
H.26Lビデオ符号化標準
ITU−T勧告H.26Lは、国際電気通信連合により開発されたビデオ符号化標準のファミリーにおける最新のものである。これは、とりわけ非常に低いビットレート、典型的には64キロビット/秒以下でのビデオ符号化向けであり、これにより、この標準は、利用可能な帯域幅の最適使用が優先事項である無線通信ネットワークまたはいずれかの固定回線通信ネットワークを介した伝送のためのデジタルビデオの符号化にとって特に適したものになる。ITU−T H.26Lにより規定されるビデオエンコーディングシステムは、ハイブリッドビデオ符号化システムであり、これは、図1および2において例示される一般的なビデオエンコーダ300およびデコーダ400に関連して上記で説明された一般原則に従って動作する。特に、H.26Lに従って実施されるビデオエンコーディングシステムは、ビデオシーケンス内の空間的および時間的冗長性を減らすために、ブロックベース変換符号化と動き補償予測との組み合わせを利用する。
【0040】
テストモデル8(TML8)として知られており、「H.26Lテストモデル・ロングターム・ナンバー8(TML−8)ドラフト0(H.26L Test Model Long Term Number 8 (TML-8) draft0)」(ITU−T電気通信標準化部門、研究グループ16、ビデオ符号化専門家グループ(ITU-T Telecommunications Standarization Section, Study Group 16, Video Coding Experts Group))に記載されているH.26L勧告の最新バージョンは、2つの選択可能なエントロピー符号化モードを規定している。第1の(デフォルト)モードにおいて、いわゆる汎用可変長符号化(UVLC:Universal Varialble Length Coding)方法が、すべてのシンタックス要素を符号化するために用いられる。UVLC符号化モードは、当該情報のタイプを問わず、ビデオエンコーダにより生成された様々な種類の情報すべてを表すために同じ可変長符号語の集合が用いられるルックアップテーブル方法である。代わりのエントロピー符号化方法は、H.26Lのいわゆる「高複雑性プロファイル(high complexity profile)」における使用について規定されており、コンテキストベース適応2値算術符号化(CABAC:Context-based Adaptive Binary Arithmetic Coding)として知られている手法である。これは、符号化されている情報の統計的特性に連続的に適応する2値算術符号化の1形式であり、エントロピー符号化の最も効率的な形式の1つであることが技術的に知られている(H. Witten, R. M. Neal, and J. G. Cleary, ”Arithmetic coding for data compression(データ圧縮のための算術符号化),” Commun. ACM, vol. 30, pp. 520-540, June 1987参照)。
【0041】
ビデオエンコーダにより生成されたすべてのタイプの情報を表すために、UVLCエントロピー符号化が同じ可変長符号語の集合を用いるので、一般に、符号語の統計的特性は、エンコードされる情報の特徴と最適には一致しない。例えば、INTRA符号化された画像ブロックについての量子化されたDCT係数を表すために用いられる特定のrunおよびlevel値の発生頻度は、量子化パラメータ値に関連する制御情報中の値の発生と異なる可能性がある。CABACエントロピー符号化方法は、UVLCエントロピー符号化方法の本質的に次善の性質を克服するために、H.26L勧告に導入された。本明細書において以前に説明したように、算術符号化は、単一の可変長コード(浮動小数点数)で符号化されるシンボルのグループを表す。これは、各シンボルを別個にエンコードするエントロピー符号化方法と比較して特別な利点を提供する。具体的には、各シンボルを別個に符号化するエントロピー符号化方法は、各シンボルを表すために少なくとも1ビットを必要とする。算術符号化は単一の符号語でシンボルのグループを表すので、1シンボルあたり1ビット未満のデータ圧縮レートを達成することが可能である。従って、H.26L中で規定されるCABAC方法も、改善されたデータ圧縮の可能性を提供する。さらに、これは適応性のある方法なので、符号化されている情報の統計的特徴の変化を考慮に入れることも可能であり、たとえ符号化されているデータの性質がある程度変化しても、データ圧縮性能が確実に保持される。
【0042】
コンテキストベースの算術符号化
上記で説明したように、CABAC算術符号化はエントロピー符号化方法であり、エンコードされる情報の変化する統計量に適応することができる。このように、固定された統計的特性を想定するエントロピー符号化手法と比較して、この手法は、改善された圧縮効率を提供することが可能である。図4は、代表的なコンテキストベースの2値算術エンコーダ700を例示している。CABACは、2値算術符号化方法であり、従って、非2進値を有する符号化されるデータシンボルは、最初に2値写像ブロック710中で2進値に変換(「2値化」)される。2値化プロセスは、符号化されるシンボルをビンのシーケンスに写像することを伴い、ビンの各々は、対応するビン番号を有しており、0か1の値が割り当てられる。そのような写像の1例を表1に示す。原則として、他の2値化方式を想定することができる。
【0043】
【表1】
【0044】
CABAC方法において、ビンの各々は、いわゆる「コンテキスト」に割り当てられる(それゆえ、コンテキストベースの算術符号化という名称になる)。コンテキストは、同様な統計的特徴を有しているビンを集めることと考えることができる。言い換えれば、特定のコンテキストに割り当てられた各ビンは、そのコンテキストに属する他のビンと同様の確率で値1または0を含むと仮定される。このように、算術コーダにおいて符号語を生成するために用いられる確率推定値は、符号化される各々の考えられるビンではなく各コンテキストについて定義される。各コンテキストは、事前に設定されかつ符号化されるデータシンボル(従ってビン)の統計的特徴についての情報に基づく「コンテキストモデル」に従って定義される。一般に、もし0の発生確率と1の発生確率との差が最大化されれば、2値算術エンコーダにより達成されるデータ圧縮比は向上する。同様に、コンテキストベースの算術符号化の性能は、コンテキストモデルの選択にも依存する。このことは、一般に、コンテキストモデルは、各コンテキストに割り当てられたビンについて、0および1の発生確率の差を最大にするように選ばれるべきであることを意味している。
【0045】
図4に例示される代表的なコンテキストベースの算術コーダにおいて、符号化されるシンボルが2値写像ブロック710中でひとたび2値化されると、その記号は、コンテキスト割り当てブロック720中で対応するコンテキストに割り当てられる。対応するビンに割り当てられた値(すなわち、1または0)は、次に算術コーダ730に送られる。算術コーダ730の符号化エンジン750は次に、ビンが割り当てられるコンテキストについての確率推定値を用いてビン値をエンコードする。性能、すなわち算術エンコーダにより達成されるデータ圧縮比は、確率推定値の精度に依存する。原則として、推定値は固定型または適応型とすることができる。もし固定型確率推定値が用いられれば、各コンテキストについての確率推定値は、所定の値に割り当てられ、エンコーディング工程の間不変のままである。固定型確率推定値は典型的には、エンコードされる実際のデータの統計的特性に似た統計的特性を有するトレーニングマテリアルを解析することにより事前に得られる。もし適応型確率推定値が用いられれば、各コンテキストについての確率推定値を初期化するために固定値が用いられ、次に、これまでにエンコードされたデータ(ビン)の実際の統計的特性に基づいてエンコード工程全体を通して確率が更新される。適応型確率推定値は、符号化されているマテリアルに適合できるので、一般により良好に機能する。
【0046】
図4に例示される代表的なコンテキストベースの算術コーダは、適応型確率推定値を使用し、更新された確率推定値が計算される確率推定ブロック740を含んでいる。各コンテキストについての確率推定値は、各コンテキストに割り当てられたビンの各々についての1および0の発生数の記録をとることにより更新される。例えば、任意のコンテキストkに割り当てられたビンに、値0をm回および値1をn回割り当てると、コンテキストkにおける1についての確率推定値はn/(n(m+1))であり、0についての確率推定値は(m+1)/(n(m+1))である。
【0047】
図5は、図4に関連して説明されたエンコーダに対応するコンテキストベースの算術デコーダ800を例示している。算術符号化されたデータシンボルを表しているビットストリームが、入力810においてコンテキストベースの算術デコーダにより受信される。初めに、前にデコードされたシンボルに基づいて、コンテキストがコンテキスト割り当てブロック850において計算され、ビン値の確率推定値が更新される。コンテキスト割り当てブロック850において実行されるコンテキスト割り当て、および確率推定ブロック830において実行される確率推定値の計算は、エンコーダと同じやり方で実行される。受信されたビットは次に、算術デコーダ820の算術デコーディングエンジン840に供給され、そこでビットは、計算されたコンテキストおよびビン値の現在の確率推定値を用いて、デコードビン値に変換される。デコードされたビンは、ビン−値写像ブロック860においてrunおよびlevel値に写像される。
【0048】
H.26Lにおいて用いられるCABAC法
ITU−T勧告H.26Lの高複雑性プロファイルにおいて使用するために採用されたCABAC算術符号化方法の詳細を詳しく説明する。H.26L TML8によれば、runおよびlevel値についてのコンテキストは、符号化されているブロックのタイプおよび2値化されたlevelまたはrun値のビン番号に依存する。係数値、成分タイプ(輝度/クロミナンス、AC/DC)、または符号化モード(INTER/INTRA)を順序付けるために用いられるスキャンモード(シングル/ダブル)に従って種々のブロックタイプが定義される。しかしながら、所定のブロックタイプについて、コンテキストはビン番号にのみ依存する。より具体的には、H.26L TML8によれば、levelエンコーディングについて4つのコンテキストが定義される。第1のものは第1のビンについてであり、第2のものは第2のビンについてであるのに対して、第3のコンテキストは、levelの大きさを表すビンの残りについてのものである。残りのコンテキストは、levelの符号のために用いられる。run値をコンテキストに割り当てるために同様な方法が用いられる。runについては3つのコンテキストがあり、第1のものは第1のビンについてであり、第2のものは第2のビンについてであり、第3のものは残りすべてのビンについてのものである。run値が常に0以上なので、符号情報を表すために付加的なコンテキストの必要は皆無である。従って、所定タイプのブロックについて、変換係数ビンのための(levelおよびrun双方のエンコーディングのための)コンテキストへのビンの割り当ては、以下のように要約できる:
【0049】
【数1】
【0050】
式中、bin_nrはビン番号であり、contextはコンテキスト番号である。H.26L TML8によれば、MAX_BIN_VALの値は3に設定されるが、原則的に、別のMAX_BIN_VALを代わりに用いることもできる。
【0051】
run−levelペアは次の通りエンコードされる:runおよびlevelは最初に、ブロック/係数タイプに従って、すなわちスキャンモード、係数タイプ(DC/AC)、および符号化モード(INTER/INTRAまたは16×16INTRA)に従って分類される。levelおよびrunは次に、これらをビンのシーケンス上に写像することによって2値化され、各ビンは、そのビン番号に基づいてコンテキストに割り当てられる。
【0052】
図6a−6dは、量子化されたDCT係数の代表的な4×4配列を参照してこのプロセスを詳細に例示している。この図は、量子化されたDCT係数についてのrunおよびlevel値の統計的特性が追跡される方法を例示することによって、CABAC法の適応的性質も実証している。量子化されたDCT係数値の2次元配列は、最初にジグザグスキャンされ、図6aに示されるように、値の1次元配列を生成する。次に、1次元配列中の非ゼロ係数値がrunおよびlevel値のペアとして表される。前に説明されたように、各level値は、非ゼロの量子化されたDCT係数の値を表すのに対して、関連するrun値は、当該係数に先行するゼロ値係数の個数に対応する。量子化されたDCT係数の代表的配列から導き出されたrun−levelペアが図6bに示してある。各ペアにおいて、level値は関連するrun値に先行し、ゼロに等しいlevel値は、ブロック中に非ゼロ係数値がもはやないことを示すブロック終結記号として用いられる。
【0053】
次に、各runおよびlevel値は、2進値に変換される。H.26L TML8によれば、量子化されたDCT変換係数値についてのrunおよびlevel値を変換するために用いられる2値化方式は、上記の表1で示されたものと同一である。図6cは、表1に提示される2値化方式を代表的配列中のrunおよびlevel値に適用したときの結果を示している。図6cは、H.26Lによるコンテキストへのビンの割り当ても示している。上記で説明されたように、runおよびlevel値の大きさを記述するために3つのコンテキストのみが用いられる。第1のコンテキストはビン1に対応し、第2のものはビン2に対応するのに対して、第3のコンテキストは残りのビンすべてを含んでいる。図6cにおいて、コンテキストは太い水平線により輪郭を描かれている。図6cを検討することにより、level値の大部分が、コンテキスト3に割り当てられるビンに写像されるのに対して、run値の大部分が、コンテキスト1に割り当てられるビンに写像されることがわかる。
【0054】
割り当てられた各コンテキストについての確率推定値は、ビンのエンコーディング後に更新される。runおよびlevelコンテキストについての確率推定値は独立して更新される。前に説明されたように、所定のコンテキストについての確率推定値は、当該コンテキストに割り当てられたビンの統計的特徴を表す。より具体的には、確率推定値は、1を1個または0を1個含んでいるコンテキストに割り当てられたビンの尤度を記述する。図6dは、確率推定値がrunおよびlevelについて更新される方法を代表的な方法で記述する。この図は、図6aに示された量子化されたDCT係数の4×4ブロックを表すrunおよびlevelが2値化され、コンテキストに割り当てられそして算術エンコーダ中でエンコードされる前および後の、1を1個または0を1個含んでいる所定のrunまたはlevelコンテキストに割り当てられたビンの確率を例示している。図6dは表という形式をとっており、この表は、各コンテキストに割り当てられたビン中の1および0の発生を記録する。従って、所定のコンテキストについての確率推定値は以下のように与えられる:
0の確率=0の数/(0の数+1の数)
1の確率=1の数/(0の数+1の数)
この図においては、図6aに示される量子化されたDCT係数の4×4ブロックは、処理されるそのようなブロックの最初のものであると仮定される。このことは、この表において記録すべき1および0の以前の発生が皆無であることを意味している。この問題を克服するため、ブロックが処理される前に、各コンテキストは、1または0を等しい確率で含むことが仮定される。これは、同一の値を、0および1の発生を記録する列に記録することによって示される。図6dにおいて、1は、確率推定値を初期化するために用いられる。代わりに、トレーニングデータの解析から導き出された確率推定値を、各コンテキストについての確率推定値の初期化に用い得るであろう。次に、量子化されたDCT変換係数のブロックについてのrunおよびlevel値が2値化されて、コンテキストに割り当てられる時に、確率推定値は、各コンテキストのビン中で発生する1および0の個数を計数することにより更新される。図6dの右側の列は、図6aに示された量子化されたDCTの4×4ブロックの処理後の状況を示す。
【0055】
ITU−T勧告H.26L TML8の高複雑性プロファイルにおいて採用されたCABAC算術エンコーディング方法は、UVLCエントロピー符号化方法と比較して、データ圧縮における改善をもたらすけれども、それでもなお符号化効率に関しては最適ではない。従って、符号化効率がさらに向上されるコンテキストベースの算術符号化のための方法およびシステムを提供することが本発明の目的である。
【先行技術文献】
【非特許文献】
【0056】
【非特許文献1】「H.26Lテストモデル・ロングターム・ナンバー8(TML−8)ドラフト0(H.26L Test Model Long Term Number 8 (TML-8) draft0)」(ITU−T電気通信標準化部門、研究グループ16、ビデオ符号化専門家グループ(ITU-T Telecommunications Standarization Section, Study Group 16, Video Coding Experts Group))
【非特許文献2】H. Witten, R. M. Neal, and J. G. Cleary, "Arithmetic coding for data compression(データ圧縮のための算術符号化)," Commun. ACM, vol. 30, pp. 520-540, June 1987
【発明の概要】
【0057】
発明の要約
本発明は、コンテキストベースの算術符号化を用いて所定のデータシンボルを符号化する時に、他のデータシンボルが割り当てられるコンテキストを考慮に入れるコンテキストモデルを用いることにより符号化効率の向上が達成されるという認識に基づいている。H.26L TML8の高複雑性プロファイルにおいて用いられるCABAC法に特に関連して、本発明の発明者らは、DCT変換係数に関連するrunおよびlevel値の間に特定の関係が存在することを突き止めた。本発明者らはさらに、runおよびlevel値に適用された時に、向上された符号化効率でCABAC法が動作することを可能にする改良コンテキストモデルを構築するためにこれらの関係を用いることができることを突き止めた。特に、本発明者らは、連続したlevel値が有意な類似性を呈することを突き止めた。より具体的には、変換係数の所定のブロック内で、エンコードされる係数のlevelは、一般に、前にエンコードされた係数のlevelとほぼ同様の大きさを有している。本発明者らは、levelおよびrun値の間の逆の関係も突き止めた。特に、より大きいlevel値は、より小さいrun値により先行される可能性がより高い。逆もまた真であり、すなわち、より小さいlevel値は、より大きいrunにより先行される可能性が高い。その結果、本発明は、levelおよびrun値の間のこれらの関係を考慮に入れるDCT変換係数の符号化のための新しいコンテキストモデルの創出を提示する。
【0058】
コンテキストベースの算術エンコーダへの実装を意図した第1のそのようなコンテキストモデルにおいて、2値化された係数level値のビンに割り当てられたコンテキストは、前にエンコードされた係数levelによって決まる。コンテキストベースの算術デコーダへの実装を意図した第2のそのようなコンテキストモデルにおいて、2値化された係数level値のビンに割り当てられたコンテキストは、前にデコードされた係数levelによって決まる。コンテキストベースの算術エンコーダかコンテキストベースの算術デコーダに実装された第3のコンテキストモデルにおいて、2値化された係数run値のビンに割り当てられたコンテキストは、係数のlevel値によって決まる。
【0059】
本発明者らは、種々の画像ブロックに関連した変換係数値の間に一定の類似性が存在することも突き止めた。これらの類似性は、互いに近くに位置する画像ブロック間でより大きく、隣接する画像ブロック間で最大になる傾向がある。より具体的には、特定の画像ブロックを表す非ゼロ変換係数値の数Ncは、当該画像ブロックの近く、または隣接する画像ブロックにおける非ゼロ変換係数値の数に類似する傾向がある。従って、本発明は、変換符号化された画像ブロックについての非ゼロ変換係数の個数の表示を提供することおよびこの値をエントロピー符号化を用いて符号化するという概念をさらに導入する。さらに、Nc値を符号化するために、コンテキストベースの算術符号化が用いられるのであれば、少なくとも1つの他の変換符号化された画像ブロックについてのNc値に割り当てられたコンテキストを考慮に入れることにより、ブロックのNc値をコンテキストに割り当てることが有利であることを本発明者は突き止めた。このように、互いに近くに位置する画像ブロック間のNc値間の類似性は、コンテキストベースの算術符号化手順中で利用できる。ITU−T勧告H.26L TML8によれば、画像ブロック中の非ゼロ変換係数の個数はエンコードされない。代わりに、そして前に説明されたように、ブロック終結(EOB)表示が提供される。EOB表示は、非ゼロ係数に対応する最後のrun−levelペアがエンコードされたことを伝える。本発明者らは、ブロック中の非ゼロ係数の個数の明示的表示が提供されてコンテキストベースの算術符号化を用いて符号化される、提案された方法により、現在H.26L TML8において現在利用されているようなEOB表示を提供する方法と比較して、符号化効率の向上につながることを突き止めた。
【0060】
本発明の背後にある動機および本発明の基本的概念は、ビデオエンコーディング/デコーディングの文脈において、そしてH.26L TML8に関連してより具体的に提示されたが、本発明は他のビデオ符号化システムそして静止画符号化にも応用できることが理解されるべきである。原則として、本発明は、ブロックベースの変換符号化およびコンテキストベースの算術符号化が用いられるどのような画像符号化システムにおいても応用できる。
【0061】
本発明の第1の局面によれば、複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、変換符号化演算がピクセル値のブロックに対して実行されて対応する変換係数値のブロックを生成する画像符号化方法が提供される。変換係数値のブロックは、所定のスキャン順序でスキャンされてスキャンされた係数値の配列が生成され、スキャンされた配列中の係数値は、複数の数値ペアにより表され、数値ペアは、第1の数値および第2の数値を有している。第1の数値および第2の数値は、数値ペアを表す複数のコンテキストの1つに割り当てられる。本発明の第1の局面によれば、数値ペアの第1の値は、別の数値ペアの第1の数値に基づいてコンテキストに割り当てられる。
【0062】
好ましくは、数値ペアの第1の数値を別の数値ペアの第1の数値に基づいてコンテキストに割り当てるステップは、他の数値ペアの第1の数値が割り当てられるコンテキストを考慮に入れる。
【0063】
有利には、数値ペアの第1の数値は、非ゼロ係数値を示す。好ましくは、数値ペアの第1の数値は、非ゼロ係数値の大きさに等しい。
【0064】
有利には、数値ペアの第2の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を表す。
【0065】
好ましくは、コンテキストは、コンテキストベースの算術コーダのコンテキストである。
【0066】
より好ましくは、コンテキストは、コンテキストベースの2値算術コーダのコンテキストである。
【0067】
有利には、第1および第2の数値はビンのセットに写像され、ビンの各々は、関連したビン番号を有し、各々は、第1か第2の値を取り得る。
【0068】
好ましくは、第1および第2の数値の各々は、ビンのセットの1つに写像され、ピンのセットの所定の1つへの数値の写像は、ビンの値を第1の値に割り当てることによって示される。
【0069】
好ましくは、第1の値は1であり、第2の値は0である。
【0070】
好ましくは、ビンのセットの各々は、コンテキストに割り当てられる。
【0071】
有利には、他の数値ペア中の第1の数値が割り当てられるコンテキストを考慮に入れつつ、他の数値ペアの第1の数値に基づいて、数値ペアの第1の数値をコンテキストに割り当てるステップは、他の数値ペアの第1の数値が写像されるビンのビン番号を試験することにより実施される。
【0072】
有利には、この方法は、各コンテキストの統計的特性を記述する確率推定値の保持をさらに含む。
【0073】
好ましくは、各コンテキストについて、確率推定値は、コンテキストに割り当てられている所定の値を有する数値の統計的尤度を示す。
【0074】
好ましくは、各コンテキストについて、確率推定値は、当該コンテキストに割り当てられたビン中における第1の値および第2の値の発生の記録をとることにより保持される。
【0075】
本発明の第2の局面によれば、複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、変換符号化演算が、ピクセル値のブロックに対して実行されて変換係数値の対応するブロックを生成する画像符号化方法が提供される。変換係数値のブロックは、所定のスキャン順序でスキャンされてスキャンされた係数値配列が生成され、スキャンされた配列中の係数値は、複数の数値ペアにより表され、数値ペアは、第1の数値および第2の数値を有している。第1の数値および第2の数値は、数値ペアを表す複数のコンテキストの1つに割り当てられる。本発明の第2の局面によれば、数値ペアの第2の数値は、数値ペアの第1の数値に基づいてコンテキストに割り当てられる。
【0076】
好ましくは、数値ペアの第2の数値を数値ペアの第1の数値に基づいてコンテキストに割り当てるステップは、数値ペアの第2の数値が割り当てられるコンテキストを考慮に入れる。
【0077】
有利には、数値ペアの第1の数値は、非ゼロ係数値を表す。好ましくは、数値ペアの第1の数値は、非ゼロ係数値の大きさに等しい。
【0078】
有利には、数値ペアの第2の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を示す。
【0079】
好ましくは、コンテキストは、コンテキストベースの算術コーダのコンテキストである。
【0080】
より好ましくは、コンテキストは、コンテキストベースの2値算術コーダのコンテキストである。
【0081】
有利には、第1および第2の数値はビンのセットに写像され、ビンの各々は、関連したビン番号を有し、第1か第2の値を取り得る。
【0082】
好ましくは、第1および第2の数値の各々は、ビンのセットの1つに写像され、ピンのセットの所定の1つへの数値の写像は、ビン値を第1の値に割り当てることによって示される。
【0083】
好ましくは、第1の値は1であり、第2の値は0である。
【0084】
好ましくは、ビンのセットの各々は、コンテキストに割り当てられる。
【0085】
有利には、数値ペアの1つの中の第2の数値が割り当てられるコンテキストを考慮に入れつつ、数値ペアの第1の数値に基づいて数値ペアの第2の数値をコンテキストに割り当てるステップは、第2の数値が写像されるビンのビン番号を試験することにより実施される。
【0086】
有利には、この方法は、各コンテキストの統計的特性を記述する確率推定値の保持をさらに含む。
【0087】
好ましくは、各コンテキストについて、確率推定値は、コンテキストに割り当てられている所定の値を有する数値の統計的尤度を示す。
【0088】
好ましくは、各コンテキストについて、確率推定値は、当該コンテキストに割り当てられたビン中における第1の値および第2の値の発生の記録をとることにより保持される。
【0089】
好ましくは、本発明の第1および第2の局面による方法は、両方とも変換係数値のブロックに適用される。
【0090】
本発明の第3の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するための手段と、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するための手段とを含むエンコーダが提供される。エンコーダはさらに、変換係数値のブロックを所定のスキャン順序でスキャンして係数値のスキャンされた配列を生成するための手段と、スキャンされた配列中の係数値を第1および第2の数値を有する複数の数値ペアにより表すための手段と、数値ペアを表す複数のコンテキストの1つに第1および第2の数値を割り当てるための手段とを含む。本発明の第3の局面によれば、エンコーダは、数値ペアの第1の数値を、別の数値ペアの第1の数値に基づいてコンテキストに割り当てるための手段を含む。
【0091】
本発明の第4の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するための手段と、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するための手段とを含むエンコーダが提供される。エンコーダはさらに、変換係数値のブロックを所定のスキャン順序でスキャンして係数値のスキャンされた配列を生成するための手段と、スキャンされた配列中の係数値を第1および第2の数値を有する複数の数値ペアにより表すための手段と、数値ペアを表す複数のコンテキストの1つに第1および第2の数値を割り当てるための手段とを含む。本発明の第4の局面によれば、エンコーダは、数値ペアの第2の数値を、数値ペアの第1の数値に基づいてコンテキストに割り当てるための手段を含む。
【0092】
本発明の第5の局面によれば、複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、変換符号化演算が、ピクセルのブロックに対して実行されて変換係数値の対応するブロックを生成する画像符号化方法が提供される。本発明の第5の局面によれば、この方法は、変換係数値のブロック中の非ゼロ係数値の個数を示す数値を提供し、その数値を表すコンテキストにその数値を割り当てるステップを含む。
【0093】
有利には、変換係数値のブロック中の非ゼロ変換係数値の個数を示す数値をコンテキストに割り当てるステップは、変換係数の別のブロック中の非ゼロ係数の個数を示す別のそのような数値が割り当てられるコンテキストを考慮に入れる。
【0094】
有利には、変換値のブロックは、所定のスキャン順序でスキャンされて係数値のスキャンされた配列を生成し、スキャンされた配列中の係数値は、第1および第2の数値を有する複数の数値ペアにより表される。
【0095】
有利には、数値ペアの第1の数値は、非ゼロ係数値を示す。
【0096】
好ましくは、数値ペアの第1の数値は、非ゼロ係数値の大きさに等しい。
【0097】
より好ましくは、数値ペアの第1の数値は、非ゼロ係数値の大きさマイナス1に等しい。
【0098】
有利には、数値ペアの第2の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を示す。
【0099】
好ましくは、スキャンされた係数値の配列中の最後の非ゼロ係数値を示すブロック終結表示は提供されない。
【0100】
好ましくは、本発明の第1、第2および第5の局面による方法はそれぞれ、変換係数値のブロックに適用される。
【0101】
本発明の第6の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するための手段と、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するための手段とを含むエンコーダが提供される。エンコーダは、変換係数値のブロック中の非ゼロ係数値の個数を示す数値を提供するための手段と、その数値を表すコンテキストにその数値を割り当てるための手段とを含む。
【0102】
有利には、エンコーダは、変換係数値のブロック中の非ゼロ変換係数値の個数を示す数値を、変換係数の別のブロック中の非ゼロ変換係数値の個数を示す別のそのような数値が割り当てられるコンテキストを考慮に入れて割り当てるための手段をさらに含む。
【0103】
本発明の第7の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するためのコードと、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するためのコードとを含むコンピュータプログラムが提供される。コンピュータプログラムはさらに、変換係数値のブロックを所定のスキャン順序でスキャンして係数値のスキャンされた配列を生成するためのコードと、スキャンされた配列中の係数値を第1の数値および第2の数値を有する複数の数値ペアにより表すためのコードと、数値ペアを表す複数のコンテキストの1つに第1および第2の数値を割り当てるためのコードとを含む。本発明の第7の局面によれば、コンピュータプログラムは、数値ペアの1つの中の第1の数値を、別の数値ペアの第1の数値に基づいてコンテキストに割り当てるためのコードも含む。
【0104】
有利には、数値ペアの第1の数値は、非ゼロ係数値を示す。
【0105】
好ましくは、数値ペアの第1の数値は、非ゼロ係数値の大きさに等しい。
【0106】
有利には、数値ペアの第2の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を表す。
【0107】
本発明の第8の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するためのコードと、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するためのコードとを含むコンピュータプログラムが提供される。コンピュータプログラムはさらに、変換係数値のブロックを所定のスキャン順序でスキャンして係数値のスキャンされた配列を生成するためのコードと、スキャンされた配列中の係数値を第1の数値および第2の数値を有する複数の数値ペアにより表すためのコードと、数値ペアを示す複数のコンテキストの1つに第1および第2の数値を割り当てるためのコードとを含む。本発明の第8の局面によれば、コンピュータプログラムは、数値ペアの第2の数値を、その数値ペアの第1の数値に基づいてコンテキストに割り当てるためのコードも含む。
【0108】
有利には、数値ペアの第1の数値は、非ゼロ係数値を示す。
【0109】
好ましくは、数値ペアの第1の数値は、非ゼロ係数値の大きさに等しい。
【0110】
有利には、数値ペアの第2の数値は、非ゼロ係数値に先行する連続したゼロ係数値の個数を表す。
【0111】
本発明の第9の局面によれば、各々がピクセル値を有している複数のピクセルを有する複数のブロックに画像を分割するためのコードと、変換符号化演算をピクセルのブロックに対して実行して変換係数値の対応するブロックを生成するためのコードとを含むコンピュータプログラムが提供される。本発明の第9の局面によれば、コンピュータプログラムは、変換係数値のブロック中の非ゼロ係数値の個数を示す数値を提供するためのコードと、その数値を表すコンテキストにその数値を割り当てるためのコードをさらに含む。
【0112】
有利には、コンピュータプログラムは、変換係数値のブロック中の非ゼロ変換係数値の個数を示す数値をコンテキストに、変換係数の別のブロック中の非ゼロ変換係数値の個数を示す別のそのような数値が割り当てられるコンテキストを考慮に入れて、割り当てるためのコードをさらに含む。
【0113】
発明の第10の局面によれば、本発明の第7、第8および第9の局面によるコンピュータプログラムが提供される。
【0114】
本発明の第11の局面によれば、データシンボルの配列が符号語で表されるコンテキストベースの算術エンコード方法が提供される。前記配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアである。数値ペアの第1の数値は、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられ、数値ペアの第2の数値は、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられる。本発明の第11の局面によれば、数値ペアの第1の数値は、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てられる。
【0115】
本発明の第12の局面によれば、データシンボルの配列がその配列を表す符号語からデコードされるコンテキストベースの算術デコード方法が提供される。前記配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアである。数値ペアの第1の数値は、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられ、数値ペアの第2の数値は、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられる。本発明の第12の局面によれば、数値ペアの第1の数値は、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てられる。
【0116】
本発明の第13の局面によれば、データシンボルの配列が符号語で表されるコンテキストベースの算術エンコード方法が提供される。配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアである。数値ペアの第1の数値は、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられ、数値ペアの第2の数値は、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられる。本発明の第13の局面によれば、数値ペアの第2の数値は、数値ペアの第1の数値に基づいてコンテキストに割り当てられる。
【0117】
本発明の第14の局面によれば、データシンボルの配列がその配列を表す符号語からデコードされるコンテキストベースの算術デコード方法が提供される。配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアである。数値ペアの第1の数値は、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられ、数値ペアの第2の数値は、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てられる。本発明の第14の局面によれば、数値ペアの第2の数値は、その数値ペアの第1の数値に基づいてコンテキストに割り当てられる。
【0118】
本発明の第15の局面によれば、データシンボルの配列が符号語で表され、その配列中の非ゼロデータシンボルの個数を示す数値が提供されかつその数値を表すコンテキストに割り当てられるコンテキストベースの算術エンコード方法が提供される。
【0119】
本発明の第16の局面によれば、データシンボルの配列を符号語で表すための手段を含むコンテキストベースの算術エンコーダが提供される。前記配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアであり、エンコーダは、数値ペアの第1の数値を、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段と、数値ペアの第2の数値を、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段とをさらに含む。本発明の第16の局面によれば、エンコーダは、数値ペアの第1の数値を、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てるための手段を含む。
【0120】
本発明の第17の局面によれば、データシンボルの配列を、その配列を表す符号語からデコードするための手段を含むコンテキストベースの算術デコーダが提供される。配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアであり、デコーダは、数値ペアの第1の数値を、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段と、数値ペアの第2の数値を、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段とをさらに含む。本発明の第17の局面によれば、デコーダは、数値ペアの第1の数値を、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てるための手段を含む。
【0121】
本発明の第18の局面によれば、データシンボルの配列を符号語で表すための手段を含むコンテキストベースの算術エンコーダが提供される。前記配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアであり、エンコーダは、数値ペアの第1の数値を、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段と、数値ペアの第2の数値を、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段とをさらに含む。本発明の第18の局面によれば、エンコーダは、数値ペアの第2の数値を、数値ペアの第1の数値に基づいてコンテキストに割り当てるための手段を含む。
【0122】
本発明の第19の局面によれば、データシンボルの配列を、その配列を表す符号語からデコードするための手段を含むコンテキストベースの算術デコーダが提供される。配列中のデータシンボルは、第1の数値および第2の数値を含む数値ペアであり、デコーダは、数値ペアの第1の数値を、第1の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段と、数値ペアの第2の数値を、第2の数値を表す複数のコンテキストから選択されたコンテキストに割り当てるための手段とをさらに含む。本発明の第19の局面によれば、デコーダは、数値ペアの第2の数値を、数値ペアの第1の数値に基づいてコンテキストに割り当てるための手段を含む。
【0123】
本発明の第20の局面によれば、データシンボルの配列を符号語で表すための手段を含み、その配列中の非ゼロデータシンボルの個数を示す数値を提供するための手段と、前記数値をその数値を表すコンテクスに割り当てるための手段とをさらに含むコンテキストベースの算術エンコーダが提供される。
【0124】
本発明は、図7aから12に関連してなされる説明を読めば直ちに明白になるであろう。
【図面の簡単な説明】
【0125】
【図1】ブロックベースの変換符号化および動き補償予測を用いる代表的なビデオエンコーダの構造を例示するブロック図である。
【図2】図1のエンコーダに対応する代表的なビデオデコーダのブロック図である。
【図3】代表的なジグザグスキャンを示す線図表示である。
【図4】従来技術のコンテキストベースの算術符号化方式におけるエンコーダを示すブロック図である。
【図5】従来技術のコンテキストベースの算術符号化方式におけるデコーダを示すブロック図である。
【図6a】ジグザグスキャンされた量子化されたDCT係数値の代表的な2次元配列を示す線図表示である。
【図6b】図6aの配列から導き出されたlevelおよびrun値を示す表である。
【図6c】表1の2値化方式を図6bのlevelおよびrun値に適用した結果得られる2値化されたlevelおよびrun値を示す表である。
【図6d】確率推定値がrunおよびlevelから更新される方法を示す表である。
【図7a】コンテキストが、level値に基づいてビンに割り当てられる方法を示す表である。
【図7b】本発明の第1の実施形態に従ってコンテキストがlevel値に割り当てられる方法を示す表である。
【図8a】コンテキストが、run値に基づいてビンに割り当てられる方法を示す表である。
【図8b】本発明の第2の実施形態に従ってコンテキストがrun値に割り当てられる方法を示す表である。
【図9】本発明によるコンテキストベースの算術符号化方式におけるエンコーダを例示するブロック図である。
【図10】本発明によるデコーダを例示するブロック図である。
【図11】本発明の好ましい実施形態による画像符号化方法を例示するフローチャートである。
【図12】本発明の別の実施形態による画像符号化方法を例示するフローチャートである。
【発明を実施するための形態】
【0126】
本発明の実施形態を詳細に論じる。上記で説明されたように、本発明は、コンテキストベースの算術コーダの符号化効率(データ圧縮)の改善を達成できるいくつかの関連機構を提供する。この改善は、他のデータ記号が割り当てられるコンテキストを考慮に入れるコンテキストモデルを用いて達成される。
【0127】
以下のセクション1.1で詳細に説明される本発明の第1の実施形態は、ITU−T勧告H.26Lにより定義されるような画像符号化システムでの使用に適するコンテキストベースの2値算術コーダに関する。この実施形態においては、画像ピクセルの変換符号化ブロックの量子化された変換係数をrun−level符号化して発生されたlevel値が、同じブロックに属する別の変換係数のlevelを考慮に入れつつコンテキストに割り当てられる。
【0128】
セクション1.2で詳細に説明される本発明の第2の実施形態も、ITU−T勧告H.26Lにより定義されるような画像符号化システムのためのコンテキストベースの2値算術コーダに関する。この第2の実施形態においては、画像ピクセルの変換符号化ブロックの量子化されたDCT変換係数をrun−level符号化して生成されたrun値が、run値が属するrun−levelペアのlevel値を考慮に入れつつコンテキストに割り当てられる。
【0129】
本発明の第3の実施形態は、セクション1.3で説明され、またITU−T勧告H.26Lにより定義されるような画像符号化システムのためのコンテキストベースの算術コーダに関する。この第3の実施形態によれば、変換符号化画像ブロックについての非ゼロ変換係数の個数Ncが決定されて、少なくとも1つの他の変換符号化画像ブロックについてのNc値に割り当てられたコンテキストを考慮に入れつつコンテキストに割り当てられる。
【0130】
本発明の好ましい実施形態は、上記3つの実施形態の機能性を兼備している。
【0131】
本明細書において前に説明されたように、ITU−T勧告H.26L TML8の高複雑性プロファイルは、CABACとして知られているコンテキストベースの算術符号化の形式を使用する。H.26Lに従って実装されるビデオエンコーダにおいて、CABAC法は、画像ピクセルのブロックを(INTRA符号化モードで)変換符号化したり予測エラー値のブロックを(INTER符号化モードで)変換符号化したりすることにより生成された変換係数を含む、エンコーダにより生成される多種多様なタイプの情報をエンコードするために用いられる。画像ピクセルのブロックを変換符号化することにより生成される変換係数の2次元配列は、特定のスキャンモードに従ってスキャンされて1次元配列を生成する。H.26Lには、そのようなスキャンモードが2つ定義されている。第1のものは「シングルスキャンモード」として知られているのに対して、他方は「ダブルスキャンモード」と呼ばれる。どちらのスキャンモードが用いられたとしても、変換係数のスキャンにより、係数値の2次元配列は、係数が既定の方法で順序付けされる1次元配列に変換される。1次元配列中の順序付けされた変換係数値は、run−level値に変換される。順序付けされた1次元配列中の最後のエントリはブロック終結記号であり、この記号は、H.26L TML8によれば、0に等しいlevel値の形を取る。このことは、順序付けされた配列中の最後の非ゼロ係数値がrun−levelペアに変換されたことを示す。
【0132】
runおよびlevel値は、各々に値0または1を割り当てることができる一連のビンにこれらの値を写像することによって2進数に変換(2値化)される(表1参照)。2値化されたrunおよびlevel値は次に、コンテキストに割り当てられ、コンテキストの別個のセットがrunおよびlevelについて定義される。H.26L TML8によれば、所定のブロックタイプについて、levelについて定義されたコンテキストのセットは、levelが割り当てられるビン番号にのみによって決まる。より具体的には、H.26LT ML8によれば、levelエンコーディングについて、4つのコンテキストが定義される。第1のものは第1のビンのためのものであり、第2のものは第2のビンのためのものであるのに対して、第3のコンテキストは、levelの大きさを表している残りのビンのためのものである。残りのコンテキストは、levelの符号のために使われる。runについては3つのコンテキストがあり、第1のものは第1のビンのためのものであり、第2のものは第2のビンのためのものであり、第3のものは残りすべてのビンのためのものである。run値は常にゼロに等しいかゼロより大きいので、符号情報を表すための付加的コンテキストの必要は皆無である。
【0133】
1.1. levelについてのコンテキストモデル
本発明の第1の実施形態によれば、2値化されたlevel値をコンテキストに割り当てる時、level値自身が写像されるビンに加え、先行run−levelペアのlevel値も考慮に入れられる。この文脈において、用語「先行run−levelペア」は、計数値の順序付けされた1次元配列中の先行する係数に対応するrun−levelペアを意味している。以下の疑似コードは、level自身が写像されるビンおよび先行run−levelペアのlevel値の両方を考慮に入れつつ、コンテキストをrun−levelペアのlevel値に割り当てるための代表的な手順を示す。
【0134】
【数2】
【0135】
式(2)において、prev_levelは、前回のrun−levelペアのlevel値の大きさである。prev_levelは、各ブロックの最初にゼロに初期化される。ダブルスキャンモードにおいては、prev_levelは、各スキャンの最初に、1ブロックにつき2回初期化される。パラメータMAX_BIN_LEVELは、level値が写像されるビン番号がコンテキスト割り当てに影響する方法を制御する手段を提供する。より具体的には、そしてH.26L TML8による現行のコンテキストの割り当てと同様な方法で、MAX_BIN_LEVELは、MAX_BIN_LEVELより大きいか等しいすべてのビン番号が割り当てられるコンテキストを効果的に定義する。同様に、パラメータMAX_LEVELは、前回のrun−levelペアのlevel値がコンテキストの割り当てに影響する方法を制御する手段を提供する。図7aおよび7bは、本発明の第1の実施形態に従って式(2)の疑似コードをMAX_BIN_LEVEL=3およびMAX_BIN_LEVEL=5で適用することによりコンテキストがlevel値に割り当てられる方法を例示する。原則として、符号化されるlevel値の統計的特徴に適するコンテキストのセットを定義するために、MAX_BIN_LEVELとMAX_LEVELとのいかなる組み合わせも用いることができる。
【0136】
1.2. runについてのコンテキストモデル
本発明の第2の実施形態によれば、セクション1.1に記載されたアプローチと同様なアプローチが、run値をコンテキストに割り当てるために用いられる。より具体的には、2値化されたrun値をコンテキストに割り当てる時、run値自身が写像されるビン考慮するのに加え、run値が属するrun−levelペアのlevelも考慮に入れられる。以下の疑似コードは、run自身が写像されるビンおよびrun値が属するrun−levelペアのlevel値の両方を考慮に入れつつ、コンテキストをrun−levelペアのrun値に割り当てるための代表的な手順を示す:
【0137】
【数3】
【0138】
式(3)において、levelは、run−levelペアのlevel値の大きさである。パラメータMAX_BIN_RUNは、run値が写像されるビン番号がコンテキストの割り当てに影響する方法を制御する手段を提供する。より具体的には、およびH.26L TML8による現行のコンテキストの割り当てと同様な方法で、MAX_BIN_RUNは、MAX_BIN_RUNより大きいか等しいすべてのビン番号が割り当てられるコンテキストを効果的に定義する。同様に、パラメータMAX_RUNLは、run−levelペアのlevel値がコンテキストの割り当てに影響する方法を制御する手段を提供する。図8aおよび8bは、本発明の第2の実施形態に従って式(3)の疑似コードをMAX_BIN_RUN=3およびMAX_RUNL=4で適用することによりコンテキストがlevel値に割り当てられる方法を例示する。原則として、符号化されるrun値の統計的特徴に適するコンテキストのセットを定義するために、MAX_BIN_RUNとMAX_RUNLとのいかなる組み合わせも用いることができる。
【0139】
1.3 非ゼロ係数の個数についてのコンテキスト
本発明の第3の実施形態は特に、変換係数値の順序付けられた配列がrunおよびlevel値に変換される方法、および量子化された変換係数値の配列に対応するrun−levelペアの数を示す方法に関する。より具体的には、画像ピクセルまたは予測エラー値のブロックが変換符号化されて変換係数値の2次元配列を形成し、係数値の各々が量子化された後、配列中の非ゼロ量子化係数値の個数が決定される。Ncと呼ばれる値が、その数に割り当てられ、配列中の非ゼロ係数値の個数を明示的に示すために使用される。従って、本発明のこの実施形態によれば、EOB記号、例えばゼロに等しいlevel値は、もはや必要とされない。
【0140】
量子化された変換係数は、所定のスキャン順序に従ってさらにスキャンされて、順序付けられた1次元配列を生成する。代わりに、Ncは、量子化された係数値を順序付けした後に決定することができる。次に、順序付けられた配列中の非ゼロ量子化係数の各々がrun−levelペアに変換される。本発明のこの実施形態によれば、run−levelペアのlevel値は、量子化された係数の値の大きさマイナス1であることを示し、run値は、当該係数に先行する連続したゼロ値の量子化された係数の個数と対応する。level値は、量子化された係数の値の大きさマイナス1に割り当てられる。なぜならば、ゼロに等しいlevel値は、ブロック終結標識としてもはや用いられないからである。これにより、level情報を表すために必要とされるデータ量(例えば、ビット数)の節約がもたらされる。
【0141】
次に、levelおよびrun値は、Nc値がそうであるように、エントロピー符号化を用いてエンコードされる。H.26L TML8において実施されるCABAC法のようなコンテキストベースの算術符号化方法が用いられる状況において、runおよびlevel値は、上記で記載されたような本発明の第1および/または第2の実施態様に従ってエンコードできる。代わりに、runおよびlevel値についてどのような他の適切なコンテキストモデルも用い得る。加えて、別個のコンテキストモデルがNcについて定義される。本発明のこの実施形態によれば、所定のブロック中の非ゼロ量子化変換係数の個数を表すNc値が最初に、対応するビン数を各々が有している一連のビンにこの値を写像することにより2値化される。次に、Ncが写像されるビン数およびNc値がすでに割り当てられた少なくとも1つの他の画像ブロックまたはマクロブロックのNcに基づいてNcについてのコンテキストが決定される。以下の疑似コードは、Nc自身が写像されるビンおよび先行Nc値の両方を考慮に入れつつ、コンテキストをNc値に割り当てるための代表的な手順を示す。
【0142】
【数4】
【0143】
式(4)において、prev_ncは、前回のNc値である。
【0144】
量子化された変換係数の所定のブロックについてのエンコードされたlevelおよびrun値がエンコーダからデコーダに伝送される場合、エントロピー符号化されたNc値は、エンコードされたrunおよびlevel値の前に伝送される。デコーダにおいて、Nc値はデコードされ、当該ブロックについての量子化された変換係数値に対応するrun−levelペアが続く。エンコーダにおいてなされた対応する減算を補償するため、level値がデコードされる際に+1の値がlevel値の大きさに加えられる。
【0145】
本発明による画像符号化方法を用いる符号化効率の改善を実証するため、QP=28、24、20、16についての結果を用いて平均ビットレート差分が計算される。表2は、TML8と比較した時のビットレート低下を百分率で示し、MAX_LEVEL=5およびMAX_RUN=4である。すべてのフレームは、CABACモードでIフレームとしてエンコードされる。表2に示されるように、ビットレート低下は0.95〜4.74%である。QP値が小さい場合に、改善はより顕著である。
【0146】
【表2】
【0147】
表2において、表の第1行に見られる名称は、Gisle Bjontegaard ”Recommended Simulation Conditions for H.26L(H.26Lのための推奨シミュレーション条件)”(VCG-M75, ITU-T Video Coding Experts Group, Austin, Texas, USA, 2-4 April, 2001)において用いられるピクチャである。
【0148】
図9を参照すると、送信側のエンコーダ10は、本発明によれば、前回のlevelおよびrunを蓄えるためのユニット16を含んでいる。図9に示されるように、所定のブロックについてのrun−levelペア102が、写像ユニット12へ提供され、このユニットが、各ビンが0または1の値を持っている一連のビンへペアを写像する。run−levelペアを表すシーケンス中のビンのロケーションは、ビン番号と呼ばれる。ビン番号は、信号104により表される。信号104およびユニット16により提供された前に符号化されたlevel値108に基づき、割り当てユニット14は、コンテキストをビン番号に割り当てる。信号106により示されるコンテキストは、適応算術コーダ20に提供される。1の発生確率および0の発生確率は、確率推定モジュール22により推定される。確率推定値120に基づき、算術エンコーディングユニット24がビンをエンコードする。確率推定を更新するため、フィードバック信号124がエンコーダ24から確率推定モジュール22に提供される。エンコードされた情報は、後に使用するため、デコーダに送られるか記憶装置中に蓄えられるビットストリーム122にされる。
【0149】
好ましくは、エンコーダ10はユニット18も含んでおり、このユニットは、run−levelペアが算術エンコーダ20に提供される前に、ブロック中の非ゼロ係数の個数、Ncを算術エンコーダ20に提供することができ、その結果、Ncもエンコードされてビットストリーム122中に組み込まれる。Ncは信号110により表される。Ncを用いることにより、ブロック終結(EOB)記号をデコーダに送出する必要は皆無である。従来技術では、EOB記号として0のlevel値が用いられる。より具体的には、Ncは変換および量子化の後に見出され、エントロピーエンコーディングを用いてエンコードされる。非ゼロ係数の個数が既知であれば、ブロック終結を知らせるために0−level値を用いることはもはや必要ではないことに注目すべきである。従って、量子化された係数の値から1を減算してlevel値を変更することが可能である。
【0150】
受信側では、図10に示されるように、エンコーダ10により提供されるビットストリーム122を受信するためにデコーダ50が用いられる。算術符号化されたデータシンボルを表す受信されたビットストリームは、参照番号202により示される。最初に、前にデコードされたシンボルに基づいて、コンテキストがコンテキスト割り当てブロック66において計算され、ビン値の確率推定値が確率推定ブロック62において更新される。確率推定値更新される根拠である前にデコードされた記号は、参照番号205により示される。コンテキスト割り当てブロック66において実行されるようなコンテキスト割り当て、および確率推定ブロック62において実行されるような確率推定値の計算は、エンコーダ10におけるものと同様である。受信されたビット202は次に、算術コーダ60中の算術デコードエンジン64に供給され、そこでビットは、計算されたコンテキストおよびビン値の現在の確率推定値204を用いて、デコードされたビン値206に変換される。デコードされたビン208は、ブロック68においてrunおよびlevelの値に写像される。ブロック中の非ゼロ係数の個数、Ncがエンコーダ10において符号化され、受信されたビットストリーム202中に提供されれば、信号214がビン−値写像モジュール68に提供され、それによって、量子化された係数は、level値に1を加えることにより復元される。
【0151】
図11は、本発明の好ましい実施形態による画像符号化方法を例示するフローチャートである。示されるように、この方法500は、画像がエンコーダにより受信されるステップ510で開始する。受信された画像は、ステップ520において複数のブロックに分割される。各ブロックは、ステップ530においてスキャンされ、ブロック中の量子化された係数のlevelおよびrunがステップ540において得られる。従来技術の符号化方式と対照的に、本発明は、ステップ550でのコンテキスト割り当てにおいて前回のlevelも用いる。特に、量子化された係数のlevel値を表すビンへのコンテキスト割り当ては、セクション1.1で説明されたように、前に符号化されたlevelの値を考慮に入れる。同様に、量子化された係数のrun値を表すビンへのコンテキスト割り当ては、セクション1.2で説明されたように、level値を考慮に入れる。割り当てられたコンテキストは、ステップ560においてエンコードするために算術コーダに送られる。加えて、Ncすなわち非ゼロ量子化係数の個数が、ステップ530においてブロックがスキャンされている間またはその後に決定され、Ncは、セクション1.3で説明されたように、Ncおよびコンテキストがデコーダに提供される前に、ステップ560においてエンコードされる。
【0152】
代わりに、画像符号化方法は、図11に示されるように、コンテキストが割り当てられる時に、前にエンコードされたlevelまたはrunの値を考慮することなく、Ncを示す信号を受信側にただ単に伝えることによって改善できる。図12に示されるように、ステップ550でコンテキストを割り当てるために前に符号化されたlevelおよびrunをステップ540において得る代わりに、Ncはステップ542において得られて提供される。ステップ550において割り当てられたコンテキストが送られる前に、Ncは、ステップ560においてエンコードするために算術コーダに送られる。Ncを送ることによって、EOB記号をデコーダに送る必要は皆無になる。
【0153】
本発明の好ましい実施形態に関して本発明を説明してきが、実施形態の形状および詳細における前述および様々なその他の変化、省略および変更を、本発明の範囲を逸脱することなくなし得ることが当業者によって理解されるであろう。
【特許請求の範囲】
【請求項1】
複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、ピクセルのブロックに対して変換符号化演算が実行されて対応する変換係数値のブロックを生成し、前記変換係数値のブロックは、所定のスキャン順序でスキャンされてスキャンされた係数値の配列が生成され、前記スキャンされた配列中の前記係数値は、複数の数値ペアにより表され、該数値ペアは、第1の数値および第2の数値を有しており、前記第1および前記第2の数値は、前記数値ペアを表す複数のコンテキストの1つに割り当てられる画像符号化方法であって、数値ペアの前記第1の数値は、別の数値ペアの第1の数値に基づいてコンテキストに割り当てられることを特徴とする方法。
【請求項2】
前にコンテキストに割り当てられた数値ペアの前記第1の数値に基づいて、数値ペアの前記第1の数値がコンテキストに割り当てられることを特徴とする請求項1に記載の方法。
【請求項3】
前記複数のコンテキストは、コンテキストベースの算術コーダのコンテキストであることを特徴とする請求項1または2に記載の方法。
【請求項4】
前記複数のコンテキストは、コンテキストベースの2値算術コーダのコンテキストであることを特徴とする請求項1または2に記載の方法。
【請求項5】
前記数値ペアの前記第1の数値はビンのセットに写像され、前記ビンのセットの各々は、関連したビン番号を有し、第1の値または第2の値のどちらか1つを取り得ることを特徴とする請求項4に記載の方法。
【請求項6】
前記数値ペアの前記第2の数値はビンのセットに写像され、前記ビンのセットの各々は、関連したビン番号を有し、第1の値または第2の値のどちらか1つを取り得ることを特徴とする請求項4に記載の方法。
【請求項7】
前記ビンのセットの所定の1つへの数値の写像は、前記ビンを前記第1の値に割り当てることにより示されることを特徴とする請求項5または6に記載の方法。
【請求項8】
前記第1の値は1であり、前記第2の値は0であることを特徴とする請求項5、6または7のいずれか一項に記載の方法。
【請求項9】
別の数値ペアの前記第1の数値に基づくコンテキストへの数値ペアの前記第1の数値の割り当ては、前記数値ペアの前記第1の数値が写像される前記ビン番号を考慮に入れることを特徴とする請求項5〜8のいずれか一項に記載の方法。
【請求項10】
前記第1の数値は非ゼロ係数値を示すこと、および
前記第2の数値は、前記非ゼロ係数値に先行する連続したゼロ係数の個数を示すことを特徴とする請求項1〜9のいずれか一項に記載の方法。
【請求項11】
複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、ピクセル値のブロックに対して変換符号化演算が実行されて対応する変換係数値のブロックを生成し、前記変換係数値のブロックは、所定のスキャン順序でスキャンされてスキャンされた係数値の配列が生成され、前記スキャンされた配列中の前記係数値は、複数の数値ペアにより表され、該数値ペアは、第1の数値および第2の数値を有しており、前記第1および前記第2の数値は、前記数値ペアを表す複数のコンテキストの1つに割り当てられる画像符号化方法であって、数値ペアの前記第2の値は、前記数値ペアの前記第1の数値に基づいてコンテキストに割り当てられることを特徴とする方法。
【請求項12】
前記複数のコンテキストは、コンテキストベースの算術コーダのコンテキストであることを特徴とする請求項11に記載の方法。
【請求項13】
前記複数のコンテキストは、コンテキストベースの2値算術コーダのコンテキストであることを特徴とする請求項11に記載の方法。
【請求項14】
前記数値ペアの前記第1の数値はビンのセットに写像され、前記ビンの各々は、関連したビン番号を有し、各々が第1の値または第2の値のいずれか1つを取り得ることを特徴とする請求項13に記載の方法。
【請求項15】
前記数値ペアの前記第2の数値はビンのセットに写像され、前記ビンのセットの各々は、関連したビン番号を有し、第1の値または第2の値のいずれか1つを取り得ることを特徴とする請求項13に記載の方法。
【請求項16】
ビンの前記セットの所定の1つへの数値の写像は、前記ビンの値を前記第1の値に割り当てることにより示されることを特徴とする請求項14または15に記載の方法。
【請求項17】
前記第1の値は1であり、前記第2の値は0であることを特徴とする請求項14、15または16のいずれか一項に記載の方法。
【請求項18】
前記数値ペアの前記第1の数値に基づくコンテキストへの数値ペアの前記第2の数値の割り当ては、前記数値ペアの前記第2の数値が写像されるビン番号を考慮に入れることを特徴とする請求項14〜17のいずれか一項に記載の方法。
【請求項19】
前記第1の数値は非ゼロ係数値を示すこと、および
前記第2の数値は、前記非ゼロ係数値に先行する連続したゼロ係数の個数を示すことを特徴とする請求項11〜18のいずれか一項に記載の方法。
【請求項20】
各ピクセルがピクセル値を有しているピクセルを複数有する複数のブロックに画像を分割するための手段と、ピクセルのブロックに対して変換符号化演算を実行し対応する変換係数値のブロックを生成するための手段と、前記変換係数値のブロックを所定のスキャン順序でスキャンしてスキャンされた係数値の配列を生成するための手段と、前記スキャンされた配列中の前記係数値を、第1および第2の数値を有する複数の数値ペアにより表すための手段と、前記第1および前記第2の数値を、前記数値ペアを表す複数のコンテキストの1つに割り当てるための手段とを含むエンコーダであって、数値ペアの第1の値を、別の数値ペアの第1の数値に基づいてコンテキストに割り当てるための手段を含むことを特徴とするエンコーダ。
【請求項21】
別の数値ペアは、前にコンテキストに割り当てられた数値ペアであることを特徴とする請求項20に記載のエンコーダ。
【請求項22】
前記複数のコンテキストは、コンテキストベースの算術コーダのコンテキストであることを特徴とする請求項20または21に記載のエンコーダ。
【請求項23】
前記複数のコンテキストは、コンテキストベースの2値算術コーダのコンテキストであることを特徴とする請求項20または21に記載のエンコーダ。
【請求項24】
前記数値ペアの前記第1の数値をビンのセットに写像するための手段をさらに含み、前記ビンのセットの各々は、関連したビン番号を有し、第1の値または第2の値のいずれか1つを取り得ることを特徴とする請求項23に記載のエンコーダ。
【請求項25】
前記数値ペアの前記第2の数値をビンのセットに写像するための手段をさらに含み、前記ビンのセットの各々は、関連したビン番号を有し、第1の値または第2の値のいずれか1つを取り得ることを特徴とする請求項23に記載のエンコーダ。
【請求項26】
前記ビンを前記第1の値に割り当てることによって、数値を前記ビンのセットの所定の1つに写像するための手段をさらに含むことを特徴とする請求項24または25に記載のエンコーダ。
【請求項27】
前記第1の値は1であり、前記第2の値は0であることを特徴とする請求項24、25または26のいずれか一項に記載のエンコーダ。
【請求項28】
別の数値ペアの前記第1の数値に基づきコンテキストへ数値ペアの前記第1の数値を割り当てるための前記手段は、前記数値ペアの前記第1の数値が写像されるビン番号を考慮に入れるように構成されることを特徴とする請求項24〜27のいずれか一項に記載のエンコーダ。
【請求項29】
前記第1の数値は非ゼロ係数値を示すこと、および
前記第2の数値は、前記非ゼロ係数値に先行する連続したゼロ係数値の個数を示すことを特徴とする請求項20〜28のいずれか一項に記載のエンコーダ。
【請求項30】
各ピクセルがピクセル値を有しているピクセルを複数有する複数のブロックに画像を分割するための手段と、ピクセルのブロックに対して変換符号化演算を実行し対応する変換係数値のブロックを生成するための手段と、前記変換係数値のブロックを所定のスキャン順序でスキャンしてスキャンされた係数値の配列を生成するための手段と、前記スキャンされた配列中の前記係数値を、第1および第2の数値を有する複数の数値ペアにより表すための手段と、前記第1および前記第2の数値を、前記数値ペアを表す複数のコンテキストの1つに割り当てるための手段とを含むエンコーダであって、数値ペアの前記第2の値を、前記数値ペアの前記第1の数値に基づいてコンテキストに割り当てるための手段を含むことを特徴とするエンコーダ。
【請求項31】
前記さらなる複数のコンテキストは、コンテキストベースの算術コーダのコンテキストであることを特徴とする請求項30に記載のエンコーダ。
【請求項32】
前記さらなる複数のコンテキストは、コンテキストベースの2値算術コーダのコンテキストであることを特徴とする請求項30に記載のエンコーダ。
【請求項33】
前記数値ペアの前記第1の数値をビンのセットに写像するための手段をさらに含み、前記ビンの各々は、関連したビン番号を有し、第1の値または第2の値のいずれか1つを取り得ることを特徴とする請求項32に記載のエンコーダ。
【請求項34】
前記数値ペアの前記第2の数値をビンのセットに写像するための手段をさらに含み、前記ビンの各々は、関連したビン番号を有し、第1の値または第2の値のいずれか1つを取り得ることを特徴とする請求項32に記載のエンコーダ。
【請求項35】
前記ビンを前記第1の値に割り当てることによって、数値を前記ビンのセットの所定の1つに写像するための手段をさらに含むことを特徴とする請求項33または34に記載のエンコーダ。
【請求項36】
前記第1の値は1であり、前記第2の値は0であることを特徴とする請求項33、34または35のいずれか一項に記載のエンコーダ。
【請求項37】
前記数値ペアの前記第1の数値に基づきコンテキストへ数値ペアの前記第2の数値を割り当てるための前記手段は、前記数値ペアの前記第2の数値が写像されるビン番号を考慮に入れることを特徴とする請求項33〜36のいずれか一項に記載のエンコーダ。
【請求項38】
前記第1の数値は非ゼロ係数値を示すこと、および
前記第2の数値は、前記非ゼロ係数値に先行する連続したゼロ係数の個数を示すことを特徴とする請求項30〜37のいずれか一項に記載のエンコーダ。
【請求項39】
複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、ピクセル値のブロックに対して変換符号化演算が実行されて対応する変換係数値のブロックを生成する画像符号化方法であって、
前記変換係数値のブロック中の非ゼロ係数の個数を示す数値を提供するステップと、
前記数値を、前記数値を表すコンテキストに割り当てるステップとを特徴とする方法。
【請求項40】
前記変換係数値のブロック中の非ゼロ係数値の前記個数を示す前記数値は、別の変換係数のブロック中の非ゼロ係数値の個数を示す別の上記ような数値が割り当てられるコンテキストを考慮に入れつつ、コンテキストに割り当てられることを特徴とする請求項39に記載の方法。
【請求項41】
前記変換係数値のブロックは、所定のスキャン順序でスキャンされてスキャンされた係数値の配列を生成すること、および
前記スキャンされた配列中の前記係数値は、第1の数値および第2の数値を有する複数の数値ペアにより表されることを特徴とする請求項39または40に記載の方法。
【請求項42】
前記第1の数値は非ゼロ係数値を示すこと、および
前記第2の数値は、前記非ゼロ係数値に先行する連続したゼロ係数値の個数を示すことを特徴とする請求項41に記載の方法。
【請求項43】
前記変換係数値のブロック中の非ゼロ計数値の個数を示す数値は、前記スキャンされた係数値の配列中の最後の非ゼロ係数値を示すブロック終結表示の送出を回避するために提供されることを特徴とする請求項41または42に記載の方法。
【請求項44】
前記第1の数値は、非ゼロ係数値の大きさマイナス1に等しいことを特徴とする請求項41、42または43のいずれか一項に記載の方法。
【請求項45】
各ピクセルがピクセル値を有しているピクセルを複数有する複数のブロックに画像を分割するための手段と、ピクセルのブロックに対して変換符号化演算を実行し対応する変換係数値のブロックを生成するための手段とを含むエンコーダであって、
前記変換係数値のブロック中の非ゼロ係数の個数を示す数値を提供するための手段と、
前記数値を、前記数値を表すコンテキストに割り当てるための手段とを含むことを特徴とするエンコーダ。
【請求項46】
前記変換計数値のブロック中の非ゼロ変換計数値の前記個数を示す前記数値をコンテキストに割り当てるための前記手段は、別の変換計数値のブロック中の非ゼロ変換計数値の個数を示す別のそのような数値が割り当てられるコンテキストを考慮に入れることを特徴とする請求項45に記載のエンコーダ。
【請求項47】
前記変換係数値のブロックを所定のスキャン順序でスキャンしてスキャンされた係数値の配列を生成するための手段と、前記スキャンされた配列中の前記係数値を、第1および第2の数値を有する複数の数値ペアにより表すための手段とをさらに含むことを特徴とする請求項45または46に記載のエンコーダ。
【請求項48】
前記第1の数値は非ゼロ係数値を示すこと、および
前記第2の数値は、前記非ゼロ係数値に先行する連続したゼロ係数の個数を示すことを特徴とする請求項47に記載の方法。
【請求項49】
各ピクセルがピクセル値を有しているピクセルを複数有する複数のブロックに画像を分割するためのコードと、ピクセル値のブロックに対して変換符号化演算を実行して対応する変換係数値のブロックを生成するためのコードと、前記変換係数値のブロックを所定のスキャン順序でスキャンしてスキャンされた係数値の配列を生成するためのコードと、前記スキャンされた配列中の前記係数値を、第1および第2の数値を有する複数の数値ペアにより表すためのコードと、前記第1および前記第2の数値を、前記数値ペアを表す複数のコンテキストの1つに割り当てるためのコードとを含むコンピュータプログラムであって、前記数値ペアの1つの中の前記第1の値を、別の数値ペアの第1の数値に基づいてコンテキストに割り当てるためのコードを含むことを特徴とするコンピュータプログラム。
【請求項50】
各ピクセルがピクセル値を有しているピクセルを複数有する複数のブロックに画像を分割するためのコードと、ピクセル値のブロックに対して変換符号化演算を実行し対応する変換係数値のブロックを生成するためのコードと、前記変換係数値のブロックを所定のスキャン順序でスキャンしてスキャンされた係数値の配列を生成するためのコードと、前記スキャンされた配列中の前記係数値を、第1および第2の数値を有する複数の数値ペアにより表すためのコードと、前記第1および前記第2の数値を、前記数値ペアを表す複数のコンテキストの1つに割り当てるためのコードとを含むコンピュータプログラムであって、数値ペアの前記第2の値を、前記数値ペアの前記第1の数値に基づいてコンテキストに割り当てるためのコードを含むことを特徴とするコンピュータプログラム。
【請求項51】
各ピクセルがピクセル値を有しているピクセルを複数有する複数のブロックに画像を分割するための手段と、ピクセルのブロックに対して変換符号化演算を実行し対応する変換係数値のブロックを生成するためのコードとを含むコンピュータプログラムであって、
前記変換係数値のブロック中の非ゼロ係数の個数を示す数値を提供するためのコードと、
前記数値を、前記数値を表すコンテキストに割り当てるためのコードとを含むことを特徴とするコンピュータプログラム。
【請求項52】
画像が複数の画像ブロックとして表され、該画像ブロックの少なくとも1つが変換係数の順序付けされた配列として表され、変換係数の前記順序付けされた配列は、コンテキストベースの算術符号化を用いて符号化されて係数の前記順序付けされた配列を表す符号語を生成し、前記係数の各々がコンテキストに割り当てられる画像符号化方法であって、第1の係数が、前記順序付けられた配列中の前記第1の係数に先行する第2の係数を参照してコンテキストに割り当てられることを特徴とする方法。
【請求項53】
データシンボルの順序付けされた配列が符号語で表され、前記順序付けされた配列中の前記データシンボルの各々は、複数のコンテキストから選択されるコンテキストに割り当てられ、前記複数のコンテキストの各々は、前記コンテキストに割り当てられたデータシンボルを表すコンテキストベースの算術符号化方法であって、前記順序付けされた配列中の第1のデータ記号が、前記順序付けされた配列中の前記第1のデータシンボルに先行する第2のデータシンボルを参照してコンテキストに割り当てられることを特徴とする方法。
【請求項54】
データシンボルの配列が符号語で表され、前記配列中の前記データシンボルは、第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値は、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられ、数値ペアの前記第2の数値は、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられるコンテキストベースの算術エンコード方法であって、数値ペアの前記第1の数値は、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てられることを特徴とする方法。
【請求項55】
データシンボルの配列が、該配列を表す符号語からデコードされ、前記配列中の前記データシンボルは、第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値は、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられ、数値ペアの前記第2の数値は、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられるコンテキストベースの算術デコード方法であって、数値ペアの前記第1の数値は、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てられることを特徴とする方法。
【請求項56】
データシンボルの配列が符号語で表され、前記配列中の前記データシンボルは、第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値は、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられ、数値ペアの前記第2の数値は、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられるコンテキストベースの算術エンコード方法であって、数値ペアの前記第2の数値は、前記数値ペアの前記第1の数値に基づいてコンテキストに割り当てられることを特徴とする方法。
【請求項57】
データシンボルの配列が、該配列を表す符号語からデコードされ、前記配列中の前記データシンボルは、第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値は、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられ、数値ペアの前記第2の数値は、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられるコンテキストベースの算術デコード方法であって、数値ペアの前記第2の数値は、前記数値ペアの前記第1の数値に基づいてコンテキストに割り当てられることを特徴とする方法。
【請求項58】
データシンボルの配列が符号語で表されるコンテキストベースの算術エンコード方法であって、
前記配列中の非ゼロデータシンボルの個数を示す数値を提供するステップと、
前記数値を、前記数値を表すコンテキストに割り当てるステップとを特徴とする方法。
【請求項59】
データシンボルの配列を符号語で表すための手段を含み、前記配列中の前記データシンボルは第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値を、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段と、数値ペアの前記第2の数値を、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段とを含むコンテキストベースの算術エンコーダであって、数値ペアの前記第1の数値を、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てるための手段を含むことを特徴とするエンコーダ。
【請求項60】
データシンボルの配列を前記配列を表す符号語からデコードするための手段を含み、前記配列中の前記データシンボルは第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値を、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段と、数値ペアの前記第2の数値を、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段とを含むコンテキストベースの算術デコーダであって、数値ペアの前記第1の数値を、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てるための手段を含むことを特徴とするデコーダ。
【請求項61】
データシンボルの配列を符号語で表すための手段を含み、前記配列中の前記データシンボルは第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値を、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段と、数値ペアの前記第2の数値を、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段とを含むコンテキストベースの算術エンコーダであって、数値ペアの前記第2の数値を、前記数値ペアの前記第1の数値に基づいてコンテキストに割り当てるための手段を含むことを特徴とするエンコーダ。
【請求項62】
データシンボルの配列を前記配列を表す符号語からデコードするための手段を含み、前記配列中の前記データシンボルは第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値を、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段と、数値ペアの前記第2の数値を、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段とを含むコンテキストベースの算術デコーダであって、数値ペアの前記第2の数値を、前記数値ペアの前記第1の数値に基づいてコンテキストに割り当てるための手段を含むことを特徴とするデコーダ。
【請求項63】
データシンボルの配列を符号語で表すための手段を含むコンテキストベースの算術エンコーダであって、
前記配列中の非ゼロデータシンボルの個数を示す数値を提供するための手段と、
前記数値を、前記数値を表すコンテキストに割り当てるための手段とを含むことを特徴とするエンコーダ。
【請求項1】
複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、ピクセルのブロックに対して変換符号化演算が実行されて対応する変換係数値のブロックを生成し、前記変換係数値のブロックは、所定のスキャン順序でスキャンされてスキャンされた係数値の配列が生成され、前記スキャンされた配列中の前記係数値は、複数の数値ペアにより表され、該数値ペアは、第1の数値および第2の数値を有しており、前記第1および前記第2の数値は、前記数値ペアを表す複数のコンテキストの1つに割り当てられる画像符号化方法であって、数値ペアの前記第1の数値は、別の数値ペアの第1の数値に基づいてコンテキストに割り当てられることを特徴とする方法。
【請求項2】
前にコンテキストに割り当てられた数値ペアの前記第1の数値に基づいて、数値ペアの前記第1の数値がコンテキストに割り当てられることを特徴とする請求項1に記載の方法。
【請求項3】
前記複数のコンテキストは、コンテキストベースの算術コーダのコンテキストであることを特徴とする請求項1または2に記載の方法。
【請求項4】
前記複数のコンテキストは、コンテキストベースの2値算術コーダのコンテキストであることを特徴とする請求項1または2に記載の方法。
【請求項5】
前記数値ペアの前記第1の数値はビンのセットに写像され、前記ビンのセットの各々は、関連したビン番号を有し、第1の値または第2の値のどちらか1つを取り得ることを特徴とする請求項4に記載の方法。
【請求項6】
前記数値ペアの前記第2の数値はビンのセットに写像され、前記ビンのセットの各々は、関連したビン番号を有し、第1の値または第2の値のどちらか1つを取り得ることを特徴とする請求項4に記載の方法。
【請求項7】
前記ビンのセットの所定の1つへの数値の写像は、前記ビンを前記第1の値に割り当てることにより示されることを特徴とする請求項5または6に記載の方法。
【請求項8】
前記第1の値は1であり、前記第2の値は0であることを特徴とする請求項5、6または7のいずれか一項に記載の方法。
【請求項9】
別の数値ペアの前記第1の数値に基づくコンテキストへの数値ペアの前記第1の数値の割り当ては、前記数値ペアの前記第1の数値が写像される前記ビン番号を考慮に入れることを特徴とする請求項5〜8のいずれか一項に記載の方法。
【請求項10】
前記第1の数値は非ゼロ係数値を示すこと、および
前記第2の数値は、前記非ゼロ係数値に先行する連続したゼロ係数の個数を示すことを特徴とする請求項1〜9のいずれか一項に記載の方法。
【請求項11】
複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、ピクセル値のブロックに対して変換符号化演算が実行されて対応する変換係数値のブロックを生成し、前記変換係数値のブロックは、所定のスキャン順序でスキャンされてスキャンされた係数値の配列が生成され、前記スキャンされた配列中の前記係数値は、複数の数値ペアにより表され、該数値ペアは、第1の数値および第2の数値を有しており、前記第1および前記第2の数値は、前記数値ペアを表す複数のコンテキストの1つに割り当てられる画像符号化方法であって、数値ペアの前記第2の値は、前記数値ペアの前記第1の数値に基づいてコンテキストに割り当てられることを特徴とする方法。
【請求項12】
前記複数のコンテキストは、コンテキストベースの算術コーダのコンテキストであることを特徴とする請求項11に記載の方法。
【請求項13】
前記複数のコンテキストは、コンテキストベースの2値算術コーダのコンテキストであることを特徴とする請求項11に記載の方法。
【請求項14】
前記数値ペアの前記第1の数値はビンのセットに写像され、前記ビンの各々は、関連したビン番号を有し、各々が第1の値または第2の値のいずれか1つを取り得ることを特徴とする請求項13に記載の方法。
【請求項15】
前記数値ペアの前記第2の数値はビンのセットに写像され、前記ビンのセットの各々は、関連したビン番号を有し、第1の値または第2の値のいずれか1つを取り得ることを特徴とする請求項13に記載の方法。
【請求項16】
ビンの前記セットの所定の1つへの数値の写像は、前記ビンの値を前記第1の値に割り当てることにより示されることを特徴とする請求項14または15に記載の方法。
【請求項17】
前記第1の値は1であり、前記第2の値は0であることを特徴とする請求項14、15または16のいずれか一項に記載の方法。
【請求項18】
前記数値ペアの前記第1の数値に基づくコンテキストへの数値ペアの前記第2の数値の割り当ては、前記数値ペアの前記第2の数値が写像されるビン番号を考慮に入れることを特徴とする請求項14〜17のいずれか一項に記載の方法。
【請求項19】
前記第1の数値は非ゼロ係数値を示すこと、および
前記第2の数値は、前記非ゼロ係数値に先行する連続したゼロ係数の個数を示すことを特徴とする請求項11〜18のいずれか一項に記載の方法。
【請求項20】
各ピクセルがピクセル値を有しているピクセルを複数有する複数のブロックに画像を分割するための手段と、ピクセルのブロックに対して変換符号化演算を実行し対応する変換係数値のブロックを生成するための手段と、前記変換係数値のブロックを所定のスキャン順序でスキャンしてスキャンされた係数値の配列を生成するための手段と、前記スキャンされた配列中の前記係数値を、第1および第2の数値を有する複数の数値ペアにより表すための手段と、前記第1および前記第2の数値を、前記数値ペアを表す複数のコンテキストの1つに割り当てるための手段とを含むエンコーダであって、数値ペアの第1の値を、別の数値ペアの第1の数値に基づいてコンテキストに割り当てるための手段を含むことを特徴とするエンコーダ。
【請求項21】
別の数値ペアは、前にコンテキストに割り当てられた数値ペアであることを特徴とする請求項20に記載のエンコーダ。
【請求項22】
前記複数のコンテキストは、コンテキストベースの算術コーダのコンテキストであることを特徴とする請求項20または21に記載のエンコーダ。
【請求項23】
前記複数のコンテキストは、コンテキストベースの2値算術コーダのコンテキストであることを特徴とする請求項20または21に記載のエンコーダ。
【請求項24】
前記数値ペアの前記第1の数値をビンのセットに写像するための手段をさらに含み、前記ビンのセットの各々は、関連したビン番号を有し、第1の値または第2の値のいずれか1つを取り得ることを特徴とする請求項23に記載のエンコーダ。
【請求項25】
前記数値ペアの前記第2の数値をビンのセットに写像するための手段をさらに含み、前記ビンのセットの各々は、関連したビン番号を有し、第1の値または第2の値のいずれか1つを取り得ることを特徴とする請求項23に記載のエンコーダ。
【請求項26】
前記ビンを前記第1の値に割り当てることによって、数値を前記ビンのセットの所定の1つに写像するための手段をさらに含むことを特徴とする請求項24または25に記載のエンコーダ。
【請求項27】
前記第1の値は1であり、前記第2の値は0であることを特徴とする請求項24、25または26のいずれか一項に記載のエンコーダ。
【請求項28】
別の数値ペアの前記第1の数値に基づきコンテキストへ数値ペアの前記第1の数値を割り当てるための前記手段は、前記数値ペアの前記第1の数値が写像されるビン番号を考慮に入れるように構成されることを特徴とする請求項24〜27のいずれか一項に記載のエンコーダ。
【請求項29】
前記第1の数値は非ゼロ係数値を示すこと、および
前記第2の数値は、前記非ゼロ係数値に先行する連続したゼロ係数値の個数を示すことを特徴とする請求項20〜28のいずれか一項に記載のエンコーダ。
【請求項30】
各ピクセルがピクセル値を有しているピクセルを複数有する複数のブロックに画像を分割するための手段と、ピクセルのブロックに対して変換符号化演算を実行し対応する変換係数値のブロックを生成するための手段と、前記変換係数値のブロックを所定のスキャン順序でスキャンしてスキャンされた係数値の配列を生成するための手段と、前記スキャンされた配列中の前記係数値を、第1および第2の数値を有する複数の数値ペアにより表すための手段と、前記第1および前記第2の数値を、前記数値ペアを表す複数のコンテキストの1つに割り当てるための手段とを含むエンコーダであって、数値ペアの前記第2の値を、前記数値ペアの前記第1の数値に基づいてコンテキストに割り当てるための手段を含むことを特徴とするエンコーダ。
【請求項31】
前記さらなる複数のコンテキストは、コンテキストベースの算術コーダのコンテキストであることを特徴とする請求項30に記載のエンコーダ。
【請求項32】
前記さらなる複数のコンテキストは、コンテキストベースの2値算術コーダのコンテキストであることを特徴とする請求項30に記載のエンコーダ。
【請求項33】
前記数値ペアの前記第1の数値をビンのセットに写像するための手段をさらに含み、前記ビンの各々は、関連したビン番号を有し、第1の値または第2の値のいずれか1つを取り得ることを特徴とする請求項32に記載のエンコーダ。
【請求項34】
前記数値ペアの前記第2の数値をビンのセットに写像するための手段をさらに含み、前記ビンの各々は、関連したビン番号を有し、第1の値または第2の値のいずれか1つを取り得ることを特徴とする請求項32に記載のエンコーダ。
【請求項35】
前記ビンを前記第1の値に割り当てることによって、数値を前記ビンのセットの所定の1つに写像するための手段をさらに含むことを特徴とする請求項33または34に記載のエンコーダ。
【請求項36】
前記第1の値は1であり、前記第2の値は0であることを特徴とする請求項33、34または35のいずれか一項に記載のエンコーダ。
【請求項37】
前記数値ペアの前記第1の数値に基づきコンテキストへ数値ペアの前記第2の数値を割り当てるための前記手段は、前記数値ペアの前記第2の数値が写像されるビン番号を考慮に入れることを特徴とする請求項33〜36のいずれか一項に記載のエンコーダ。
【請求項38】
前記第1の数値は非ゼロ係数値を示すこと、および
前記第2の数値は、前記非ゼロ係数値に先行する連続したゼロ係数の個数を示すことを特徴とする請求項30〜37のいずれか一項に記載のエンコーダ。
【請求項39】
複数のピクセルを有する複数のブロックに画像が分割され、各ピクセルはピクセル値を有しており、ピクセル値のブロックに対して変換符号化演算が実行されて対応する変換係数値のブロックを生成する画像符号化方法であって、
前記変換係数値のブロック中の非ゼロ係数の個数を示す数値を提供するステップと、
前記数値を、前記数値を表すコンテキストに割り当てるステップとを特徴とする方法。
【請求項40】
前記変換係数値のブロック中の非ゼロ係数値の前記個数を示す前記数値は、別の変換係数のブロック中の非ゼロ係数値の個数を示す別の上記ような数値が割り当てられるコンテキストを考慮に入れつつ、コンテキストに割り当てられることを特徴とする請求項39に記載の方法。
【請求項41】
前記変換係数値のブロックは、所定のスキャン順序でスキャンされてスキャンされた係数値の配列を生成すること、および
前記スキャンされた配列中の前記係数値は、第1の数値および第2の数値を有する複数の数値ペアにより表されることを特徴とする請求項39または40に記載の方法。
【請求項42】
前記第1の数値は非ゼロ係数値を示すこと、および
前記第2の数値は、前記非ゼロ係数値に先行する連続したゼロ係数値の個数を示すことを特徴とする請求項41に記載の方法。
【請求項43】
前記変換係数値のブロック中の非ゼロ計数値の個数を示す数値は、前記スキャンされた係数値の配列中の最後の非ゼロ係数値を示すブロック終結表示の送出を回避するために提供されることを特徴とする請求項41または42に記載の方法。
【請求項44】
前記第1の数値は、非ゼロ係数値の大きさマイナス1に等しいことを特徴とする請求項41、42または43のいずれか一項に記載の方法。
【請求項45】
各ピクセルがピクセル値を有しているピクセルを複数有する複数のブロックに画像を分割するための手段と、ピクセルのブロックに対して変換符号化演算を実行し対応する変換係数値のブロックを生成するための手段とを含むエンコーダであって、
前記変換係数値のブロック中の非ゼロ係数の個数を示す数値を提供するための手段と、
前記数値を、前記数値を表すコンテキストに割り当てるための手段とを含むことを特徴とするエンコーダ。
【請求項46】
前記変換計数値のブロック中の非ゼロ変換計数値の前記個数を示す前記数値をコンテキストに割り当てるための前記手段は、別の変換計数値のブロック中の非ゼロ変換計数値の個数を示す別のそのような数値が割り当てられるコンテキストを考慮に入れることを特徴とする請求項45に記載のエンコーダ。
【請求項47】
前記変換係数値のブロックを所定のスキャン順序でスキャンしてスキャンされた係数値の配列を生成するための手段と、前記スキャンされた配列中の前記係数値を、第1および第2の数値を有する複数の数値ペアにより表すための手段とをさらに含むことを特徴とする請求項45または46に記載のエンコーダ。
【請求項48】
前記第1の数値は非ゼロ係数値を示すこと、および
前記第2の数値は、前記非ゼロ係数値に先行する連続したゼロ係数の個数を示すことを特徴とする請求項47に記載の方法。
【請求項49】
各ピクセルがピクセル値を有しているピクセルを複数有する複数のブロックに画像を分割するためのコードと、ピクセル値のブロックに対して変換符号化演算を実行して対応する変換係数値のブロックを生成するためのコードと、前記変換係数値のブロックを所定のスキャン順序でスキャンしてスキャンされた係数値の配列を生成するためのコードと、前記スキャンされた配列中の前記係数値を、第1および第2の数値を有する複数の数値ペアにより表すためのコードと、前記第1および前記第2の数値を、前記数値ペアを表す複数のコンテキストの1つに割り当てるためのコードとを含むコンピュータプログラムであって、前記数値ペアの1つの中の前記第1の値を、別の数値ペアの第1の数値に基づいてコンテキストに割り当てるためのコードを含むことを特徴とするコンピュータプログラム。
【請求項50】
各ピクセルがピクセル値を有しているピクセルを複数有する複数のブロックに画像を分割するためのコードと、ピクセル値のブロックに対して変換符号化演算を実行し対応する変換係数値のブロックを生成するためのコードと、前記変換係数値のブロックを所定のスキャン順序でスキャンしてスキャンされた係数値の配列を生成するためのコードと、前記スキャンされた配列中の前記係数値を、第1および第2の数値を有する複数の数値ペアにより表すためのコードと、前記第1および前記第2の数値を、前記数値ペアを表す複数のコンテキストの1つに割り当てるためのコードとを含むコンピュータプログラムであって、数値ペアの前記第2の値を、前記数値ペアの前記第1の数値に基づいてコンテキストに割り当てるためのコードを含むことを特徴とするコンピュータプログラム。
【請求項51】
各ピクセルがピクセル値を有しているピクセルを複数有する複数のブロックに画像を分割するための手段と、ピクセルのブロックに対して変換符号化演算を実行し対応する変換係数値のブロックを生成するためのコードとを含むコンピュータプログラムであって、
前記変換係数値のブロック中の非ゼロ係数の個数を示す数値を提供するためのコードと、
前記数値を、前記数値を表すコンテキストに割り当てるためのコードとを含むことを特徴とするコンピュータプログラム。
【請求項52】
画像が複数の画像ブロックとして表され、該画像ブロックの少なくとも1つが変換係数の順序付けされた配列として表され、変換係数の前記順序付けされた配列は、コンテキストベースの算術符号化を用いて符号化されて係数の前記順序付けされた配列を表す符号語を生成し、前記係数の各々がコンテキストに割り当てられる画像符号化方法であって、第1の係数が、前記順序付けられた配列中の前記第1の係数に先行する第2の係数を参照してコンテキストに割り当てられることを特徴とする方法。
【請求項53】
データシンボルの順序付けされた配列が符号語で表され、前記順序付けされた配列中の前記データシンボルの各々は、複数のコンテキストから選択されるコンテキストに割り当てられ、前記複数のコンテキストの各々は、前記コンテキストに割り当てられたデータシンボルを表すコンテキストベースの算術符号化方法であって、前記順序付けされた配列中の第1のデータ記号が、前記順序付けされた配列中の前記第1のデータシンボルに先行する第2のデータシンボルを参照してコンテキストに割り当てられることを特徴とする方法。
【請求項54】
データシンボルの配列が符号語で表され、前記配列中の前記データシンボルは、第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値は、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられ、数値ペアの前記第2の数値は、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられるコンテキストベースの算術エンコード方法であって、数値ペアの前記第1の数値は、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てられることを特徴とする方法。
【請求項55】
データシンボルの配列が、該配列を表す符号語からデコードされ、前記配列中の前記データシンボルは、第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値は、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられ、数値ペアの前記第2の数値は、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられるコンテキストベースの算術デコード方法であって、数値ペアの前記第1の数値は、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てられることを特徴とする方法。
【請求項56】
データシンボルの配列が符号語で表され、前記配列中の前記データシンボルは、第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値は、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられ、数値ペアの前記第2の数値は、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられるコンテキストベースの算術エンコード方法であって、数値ペアの前記第2の数値は、前記数値ペアの前記第1の数値に基づいてコンテキストに割り当てられることを特徴とする方法。
【請求項57】
データシンボルの配列が、該配列を表す符号語からデコードされ、前記配列中の前記データシンボルは、第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値は、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられ、数値ペアの前記第2の数値は、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てられるコンテキストベースの算術デコード方法であって、数値ペアの前記第2の数値は、前記数値ペアの前記第1の数値に基づいてコンテキストに割り当てられることを特徴とする方法。
【請求項58】
データシンボルの配列が符号語で表されるコンテキストベースの算術エンコード方法であって、
前記配列中の非ゼロデータシンボルの個数を示す数値を提供するステップと、
前記数値を、前記数値を表すコンテキストに割り当てるステップとを特徴とする方法。
【請求項59】
データシンボルの配列を符号語で表すための手段を含み、前記配列中の前記データシンボルは第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値を、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段と、数値ペアの前記第2の数値を、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段とを含むコンテキストベースの算術エンコーダであって、数値ペアの前記第1の数値を、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てるための手段を含むことを特徴とするエンコーダ。
【請求項60】
データシンボルの配列を前記配列を表す符号語からデコードするための手段を含み、前記配列中の前記データシンボルは第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値を、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段と、数値ペアの前記第2の数値を、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段とを含むコンテキストベースの算術デコーダであって、数値ペアの前記第1の数値を、前記数値ペアの別のものの第1の数値に基づいてコンテキストに割り当てるための手段を含むことを特徴とするデコーダ。
【請求項61】
データシンボルの配列を符号語で表すための手段を含み、前記配列中の前記データシンボルは第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値を、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段と、数値ペアの前記第2の数値を、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段とを含むコンテキストベースの算術エンコーダであって、数値ペアの前記第2の数値を、前記数値ペアの前記第1の数値に基づいてコンテキストに割り当てるための手段を含むことを特徴とするエンコーダ。
【請求項62】
データシンボルの配列を前記配列を表す符号語からデコードするための手段を含み、前記配列中の前記データシンボルは第1の数値および第2の数値を含む数値ペアであり、数値ペアの前記第1の数値を、前記第1の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段と、数値ペアの前記第2の数値を、前記第2の数値を表す複数のコンテキストから選択されるコンテキストに割り当てるための手段とを含むコンテキストベースの算術デコーダであって、数値ペアの前記第2の数値を、前記数値ペアの前記第1の数値に基づいてコンテキストに割り当てるための手段を含むことを特徴とするデコーダ。
【請求項63】
データシンボルの配列を符号語で表すための手段を含むコンテキストベースの算術エンコーダであって、
前記配列中の非ゼロデータシンボルの個数を示す数値を提供するための手段と、
前記数値を、前記数値を表すコンテキストに割り当てるための手段とを含むことを特徴とするエンコーダ。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6a】
【図6b】
【図6c】
【図6d】
【図7a】
【図7b】
【図8a】
【図8b】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6a】
【図6b】
【図6c】
【図6d】
【図7a】
【図7b】
【図8a】
【図8b】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2012−80551(P2012−80551A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2011−243560(P2011−243560)
【出願日】平成23年11月7日(2011.11.7)
【分割の表示】特願2003−531401(P2003−531401)の分割
【原出願日】平成14年9月12日(2002.9.12)
【出願人】(398012616)ノキア コーポレイション (1,359)
【Fターム(参考)】
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願日】平成23年11月7日(2011.11.7)
【分割の表示】特願2003−531401(P2003−531401)の分割
【原出願日】平成14年9月12日(2002.9.12)
【出願人】(398012616)ノキア コーポレイション (1,359)
【Fターム(参考)】
[ Back to top ]