(57)【要約】4n×4m（n、mは、1以上の正の整数）のブロックサイズを有するブロックに変換係数が分割されるコンテキストベースの適応ＶＬＣを用いて画像を符号化するための方法およびシステムであって、各ブロックはジグザグ方式でスキャンされて、16n×mの長さを有する係数の順序付けられたベクトルを生成する。エントロピー符号化器を用いて変換係数を符号化する前に、順序付けられたベクトルはインタリーブ方式でサブサンプリングされ、n×mのサブサンプリングされた変換係数のシーケンスを生成する。
2006501740.tif 000002
【特許請求の範囲】
【請求項１】
画像を示すデータを用いる画像符号化の方法であって、
該画像データから、少なくとも1つの変換係数ブロックを形成するステップと、
変換係数シーケンスを提供するために、該変換係数ブロックをスキャンするステップと、
複数のサブサンプリングされた変換係数シーケンスを提供するために、シーケンス中の変換係数をインタリーブ方式でサブサンプリングするステップと、
前記サブサンプリングされた変換係数シーケンスを、エントロピー符号化器を用いて符号化するステップとを特徴とする方法。
【請求項２】
前記サブサンプリングするステップが、前記符号化するステップの前に実行されることを特徴とする請求項1に記載の方法。
【請求項３】
前記符号化するステップが、前記サブサンプリングするステップの前に実行されることを特徴とする請求項1に記載の方法。
【請求項４】
前記変換係数シーケンスが、16n×mの長さを有しており、nおよびmは1以上の正の整数であることを特徴とする請求項1〜3のいずれか一項に記載の方法。
【請求項５】
前記サブサンプリングされた変換係数シーケンスの各々が、16の長さを有していることを特徴とする請求項4に記載の方法。
【請求項６】
前記画像データが、予測誤差データであることを特徴とする請求項1〜5のいずれか一項に記載の方法。
【請求項７】
前記画像データが、ピクセルデータであることを特徴とする請求項1〜5のいずれか一項に記載の方法。
【請求項８】
前記変換係数を、量子化された変換係数に量子化することをさらに特徴とする請求項1〜7のいずれか一項に記載の方法。
【請求項９】
画像を示す画像データの画像符号化において用いられるコンピュータプログラムであって、その符号化プロセスが、
前記画像データから、少なくとも1つの変換係数ブロックを形成するステップと、
変換係数シーケンスを提供するために、前記変換係数ブロックをスキャンするステップとを有する前記コンピュータプログラムにおいて、
複数のサブサンプリングされた変換係数シーケンスを提供するために、シーケンス中の変換係数をインタリーブ方式でサブサンプリングするためのアルゴリズムを特徴とするコンピュータプログラム。
【請求項１０】
前記符号化プロセスが、前記サブサンプリングされた変換係数シーケンスをエントロピー符号化器を用いて符号化するステップをさらに有することを特徴とする請求項9に記載のコンピュータプログラム。
【請求項１１】
前記符号化プロセスが、前記のサブサンプリングの前に、前記変換係数シーケンスをエントロピー符号化器を用いて符号化するステップをさらに含むことを特徴とする請求項9に記載のコンピュータプログラム。
【請求項１２】
画像データを受信し該画像データを示すビットストリームを提供するための画像符号化器であって、
該画像データから、少なくとも1つの変換係数ブロックを形成するための手段と、
前記のブロックから、順序付けられた変換係数シーケンスを形成するために、前記変換係数ブロックをスキャンするための手段と、
複数のサブサンプリングされた変換係数シーケンスを形成するために、前記順序付けられた変換係数シーケンスをサブサンプリングするためのソフトウェアプログラムと、
符号化された変換係数を示す信号を提供するために、前記サブサンプリングされた変換係数シーケンスをエントロピー符号化するための手段と、
前記の信号に基づいて前記ビットストリームを提供するための手段とを特徴とする画像符号化器。
【請求項１３】
前記ソフトウェアプログラムが、前記符号化された変換係数を示す信号を提供する前記エントロピー符号化手段の前に、前記複数のサブサンプリングされた変換係数シーケンスを形成することを特徴とする請求項12に記載の画像符号化器。
【請求項１４】
前記エントロピー符号化手段が、前記複数のサブサンプリングされた変換係数シーケンスを形成する前記ソフトウェアプログラムの前に、前記符号化された変換係数を示す信号を提供することを特徴とする請求項12に記載の画像符号化器。
【請求項１５】
前記画像データが、予測誤差データであることを特徴とする請求項12〜14のいずれか一項に記載の画像符号化器。
【請求項１６】
前記画像データが、ピクセルデータであることを特徴とする請求項12〜14のいずれか一項に記載の画像符号化器。
【請求項１７】
画像データを示すビットストリームを提供するためのサーバーと該ビットストリームに基づいて該画像データを再構成するためのクライアントとを備える画像符号化システムであって、該サーバーが、
該画像データを示す信号を受信するための受信器と、
該信号から、少なくとも1つの変換係数ブロックを形成するための手段と、
前記のブロックから、順序付けられた変換係数シーケンスを形成するために、前記変換係数ブロックをスキャンするための手段と、
複数のサブサンプリングされた変換係数シーケンスを形成するために、前記順序付けられた変換係数シーケンスをサブサンプリングするためのソフトウェアプログラムと、
符号化された変換係数を示すさらなる信号を提供するために、前記サブサンプリングされた変換係数シーケンスをエントロピー符号化するための手段と、
前記さらなる信号に基づいて前記ビットストリームを提供するための手段とを特徴とする、画像符号化システム。
【請求項１８】
前記ソフトウェアプログラムが、前記符号化された変換係数を示す信号を提供する前記エントロピー符号化手段の前に、前記複数のサブサンプリングされた変換係数シーケンスを形成することを特徴とする請求項17に記載の画像符号化システム。
【請求項１９】
前記エントロピー符号化手段が、前記複数のサブサンプリングされた変換係数シーケンスを形成する前記ソフトウェアプログラムの前に、前記符号化された変換係数を示す信号を提供することを特徴とする請求項17に記載の画像符号化システム。
【請求項２０】
前記画像データが、予測誤差データであることを特徴とする請求項17〜19のいずれか一項に記載の画像符号化システム。
【請求項２１】
前記画像データが、ピクセルデータであることを特徴とする請求項17〜19のいずれか一項に記載の画像符号化システム。
【請求項２２】
画像を示す画像データを用いる画像符号化の方法であって、
該画像データから、少なくとも1つの変換係数ブロックを形成するステップと、
複数のサブサンプリングされた変換係数シーケンスを提供するために、前記のブロック中の変換係数をインタリーブ方式でサブサンプリングするステップと、
複数のサブサンプリングされた変換係数シーケンスを提供するために、サブサンプリングされた変換係数ブロックをスキャンするステップと、
前記サブサンプリングされた変換係数シーケンスを、エントロピー符号化器を用いて符号化するステップとを特徴とする方法。
【請求項２３】
画像を示す画像データを用いる画像符号化の方法であって、該画像データから少なくとも1つの変換係数ブロックが形成され、シーケンス中の複数の位置に置かれた変換係数シーケンスを提供するために該変換係数ブロックがスキャンされ、これらの位置は、1つの基準位置を含み、該基準位置に対して前記複数の位置の各々は1つの距離を規定するようになっている前記画像符号化の方法において、
前記距離の各々に1つのコスト値を割り当てるステップと、
前記シーケンス中の変換係数を、該コスト値に基づいて複数のサブシーケンスに配列するステップと、
エントロピー符号化器を用いて変換係数の前記サブシーケンスを符号化することを特徴とする方法。
【請求項２４】
前記サブシーケンスの各々は、該各サブシーケンス中の変換係数に関連付けられたコスト値の合計を示す総コストを有しており、
前記配列ステップは、前記各サブシーケンスの総コストと他のサブシーケンスの各々の総コストとの差が最小になることを達成するようになっていることを特徴とする請求項23に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、ビデオ符号化および圧縮の分野に関し、より詳細にはコンテキストベース適応可変長符号化のための方法およびシステムに関する。
【背景技術】
【０００２】
典型的なビデオ符号化器は、オリジナルのビデオシーケンスの各フレームを、“ブロック”と呼ばれる隣接する矩形領域に分割する。これらのブロックは、“イントラモード”（Ｉモード）、または“インターモード”（Ｐモード）で符号化される。Ｐモードについては、符号化器は最初に、Ｆrefにより示される前に伝送された“参照フレーム”において符号化されているブロックに類似のブロックを探索する。探索は一般に、符号化されるブロックからの一定の空間変位にせいぜい限定される。ベストマッチ、すなわち“予測”が特定されている場合、そのことは、2次元（２Ｄ）動きベクトル（Δｘ，Δｙ）の形で表され、Δｘは水平変位であり、Δｙは垂直変位である。動きベクトルは参照フレームと共に、以下の予測ブロックＦpredを構成するために使用される。
【０００３】
Ｆpred（ｘ，ｙ）＝Ｆref（ｘ＋Δｘ，ｙ＋Δｙ）
フレーム内の1つのピクセルの位置は、（ｘ，ｙ）により示される。
【０００４】
Ｉモードで符号化されたブロックについては、予測ブロックは、同じフレーム内の前に符号化された近傍のブロックからの空間予測を用いて形成される。ＩモードおよびＰモード双方については、予測誤差、すなわち、符号化されているブロックと予測ブロックとの差が、ある種の離散変換の1組の重み付き基底関数として表される。変換は典型的には、8×8または4×4ブロックベースで実行される。重み−変換係数−は、次いで量子化される。量子化によって情報損失が生じ、従って、量子化された係数は、オリジナルの係数よりも低い精度を有する。
【０００５】
量子化された変換係数および動きベクトルは、“構文要素”の例である。これらは、ある種の制御情報と共に、ビデオシーケンスの完全な符号化表現を形成する。符号化器から復号器への伝送の前に、すべての構文要素は、エントロピー符号化され、その結果、それらの表現に必要なビット数をさらに低減する。エントロピー符号化は、伝送または保存されたシンボル（本願の場合には構文要素）を表すために必要なビット数を、シンボルの分布の特性（ある種のシンボルは他のシンボルよりも頻繁に生じる）を利用することによって最小限にすることを目的とする無損失演算である。
【０００６】
ビデオ符号化器により使用されるエントロピー符号化の1つの方法は、可変長符号（ＶＬＣ）である。ビット（0および1）のシーケンスであるＶＬＣ符号語が各シンボルに割り当てられる。ＶＬＣは、符号語長さが、その符号語により表されるシンボルがどれほど頻繁に生じるかに対応するように構成され、例えば、より頻繁に生じるシンボルは、より短いＶＬＣ符号語により表される。さらに、ＶＬＣは、符号語が一意に復号可能なように構成されなければならない。すなわち、有限長さの有効なビットシーケンスを復号器が受信すれば、符号化された場合に、受信されたビットシーケンスを生成したであろう唯一の考誤差れる入力シンボルのシーケンスがなければならない。
【０００７】
ビットストリームを正確に復号するために、符号化器および復号器双方は、ＶＬＣ符号語の同じ組およびそれらの符号語へのシンボルの同じ割り当てを用いなければならない。前に論じたように、圧縮を最大にするために、最も頻繁に生じるシンボルには、最も短いＶＬＣ符号語が割り当てられるべきである。しかしながら、種々のシンボルの頻度（確率）は、符号化されている実際のフレームに依存する。ＶＬＣ符号語の単一の組、およびそれらの符号語へのシンボルの一定の割り当てが用いられる場合には、たとえシーケンス全体にわたって平均シンボル確率が異ならないとしても、所定のフレーム内のシンボルの確率分布がＶＬＣにより想定された確率と異なる可能性がある。その結果、ＶＬＣ符号語の単一の組およびそれらの符号語へのシンボルの単一の割り当てを用いることにより、符号化効率が低下する。
【０００８】
この問題を是正するために、種々の適応の方法が用いられる。適度な計算の複雑性および良好な圧縮対効率のトレードオフをもたらし、最新技術のビデオ符号化器において現在用いられている1つのアプローチを説明する。シンボルの1つの組について、ＶＬＣ符号語（ＶＬＣ）を規定する多くのテーブルが、使用する符号化器および復号器に供される。特定のシンボルを符号化するために選択されたテーブルはその場合、符号化されたブロックのタイプ（ＩまたはＰタイプのブロック）、符号化されている成分（ルーマ(luma)またはクロマ(chroma)）、または量子化パラメータ（ＱＰ）値のような、符号化器および復号器双方に既知の情報に依存する。性能は、ＶＬＣ間で切り換えるために用いられるパラメータが、シンボル統計をどの程度うまく特徴付けるかに依存する。
【０００９】
復号器において、現在のフレーム中のブロックは、符号化器におけると同じ方法でその予測を最初に構成し、圧縮された予測誤差にその予測を付加することにより得られる。圧縮された予測誤差は、量子化された係数を用いて変換基底関数に重み付けすることにより見い出される。再構成されたフレームとオリジナルのフレームとの差は、再構成誤差と呼ばれる。
【００１０】
圧縮比、すなわち、オリジナルのシーケンスおよび圧縮されたシーケンスを表すために用いられるビット数の比率は、変換係数を量子化する際に用いられる量子化パラメータ（ＱＰ）の値を調整することによって制御できる。圧縮比は、使用されるエントロピー符号化の方法にも依存する。
【００１１】
所定のブロック中の係数は、ジグザグスキャンを用いて順序付けられ（スキャンされ）、1次元の順序付けられた係数ベクトルという結果になる。4×4ブロックについての代表的なジグザグスキャンを図1に示す。
【００１２】
ジグザグスキャンは、2次元（２Ｄ）変換の適用後、ほとんどのエネルギーを有している変換係数（すなわち、より高い値の係数）が低周波数変換関数に対応し、図1に描かれるようにブロックの左上に向かって置かれるという仮定に立っている。従って、ジグザグスキャンによって生成された係数ベクトルにおいて、より高い大きさの係数は、ベクトルの先頭に向かって出現する可能性が最も高い。量子化後に、低エネルギー係数のほとんどは0に等しくなる。
【００１３】
係数のベクトルは、各非ゼロ係数が2つの値、すなわち、ラン（ベクトル中の非ゼロ値に先行する連続したゼロ係数の数）およびレベル（係数の値）により表されるようにさらに処理され得る。
【００１４】
ＣＡＶＬＣ（コンテキストベース適応ＶＬＣ）は、ＪＶＴ符号化器“Joint Final Committee Draft(JFCD) of Joint Video Specification(ITU-T Rec.H.264|ISO/IEC 14496-10 AVC”において用いられる変換係数の符号化方法である。要約すると、ＣＡＶＬＣを用いて単一の4×4ブロックを符号化することは、以下の5つのステップを伴う。
【００１５】
1．  ブロック中の非ゼロ係数の総数を、“後続の1”の数と組み合わせて符号化するステップ。
【００１６】
係数ベクトルが逆順で（すなわち、図1においては、15、14、13、12、11、．．．）読まれる場合に、大きさが1を超える係数に遭遇する前に遭遇する大きさが1の係数の数として、この後続の1の数が規定される。この情報を符号化するために用いられるＶＬＣは、非ゼロ係数の予測される数に基づき、この予測は、前に符号化された近傍のブロック（上方および左方のブロック）中の非ゼロ係数の数に基づく。
【００１７】
2．  いずれの後続の1の正負符号も符号化するステップ。
【００１８】
3．  後続の1以外の非ゼロ係数のレベル（大きさ）を符号化するステップ。
【００１９】
4．  最後の非ゼロ係数の前の係数ベクトル中のゼロ値の数、すなわちすべての“ラン”の合計を符号化するステップ。この値を符号化する時に用いられるＶＬＣは、ブロック中の非ゼロ係数の総数に依存する。その理由は、これら2つの値の間にある種の関係があるからである。
【００２０】
5．  係数ベクトル中の最後の非ゼロ値から始め、各非ゼロ係数の前で生じるランを符号化するステップ。
【００２１】
ラン値を符号化するために用いられるＶＬＣは、ステップ（4）からのランの合計、およびこれまでに符号化されたランの合計に基づいて選ばれる。例えば、あるブロックが8の“ランの合計”を有し、符号化された第1のランが6であれば、残りのすべてのランは、0、1、または2でなければならない。考えられるランの長さが次第に短くなるので、より効率的なＶＬＣ符号は、ランを表すために必要とされるビット数を最小限にするように選ばれる。
【００２２】
典型的なブロックベースのビデオ符号化器を図2に示す。図1に示されるように、ビデオサーバー１００は、ビデオ情報源からビデオ信号１１０を受信するフロントエンドユニット１０と、ビデオ多重符号化器４０とを含んでいる。ビデオ情報源から入力１１０へ提供される未圧縮ビデオの各フレームは、ラスタスキャン順序でマクロブロックごとに受信および処理される。フロントエンドユニット１０は、ＩモードとＰモードとの間で切り替えるためおよび制御信号１２０を介して多重符号化器４０とのタイミング調整を実行するための符号化制御マネージャー１２、ＤＣＴ（離散コサイン変換）変換モジュール１６、および量子化されたＤＣＴ係数を提供するための量子化器１４とを含んでいる。量子化されたＤＣＴ係数１２２は、多重符号化器４０に送られる。フロントエンドユニット１０は、逆ブロックベース離散コサイン変換（ＩＤＣＴ）を実行するための逆量子化器１８および逆変換ユニット２０ならびにビデオシーケンス中の時間冗長性を減らし誤差予測および補償目的のために予測誤差フレームを提供するための動き補償予測および推定モジュール２２も含んでいる。動き推定モジュール２２は、多重符号化器４０に各マクロブロックについての動きベクトル１２４も提供する。多重符号化器４０は典型的には、画像データの各ブロックについて順序ベクトルを形成するためにジグザグスキャンを実行するためのスキャンモジュール４２、ランおよびレベルパラメータによって非ゼロ量子化されたＤＣＴ係数を指定するためのエントロピー符号化モジュール４４を含んでいる。ランおよびレベル値はさらにビン(bin)のシーケンスにマッピングされ、ビンの各々は、コンテキスト割り当てモジュール４６によっていわゆる‘コンテキスト’に割り当てられる。コンテキストは、動きベクトルと共に、ビットストリーム１４０にフォーマットされる。コンテキストベースの符号化器は技術的に知られている。さらに、変換モジュール１６をＦＦＴ（高速フーリエ変換）モジュールまたはＤＦＴ（離散フーリエ変換）モジュールとすること、およびそのＤＣＴをＤＣＴの近似とすることが可能である。
【００２３】
典型的な復号器を図3に示す。示されるように、クライアント２００はビデオ多重復号器６０を含み、この復号器は、符号化されたビデオビットストリーム１４０を符号化器４０から受信する。復号器６０は、Ｉモードフレームもマクロブロックごとに復号する。ビットストリーム１４０中に含まれているＶＬＣ符号語に基づき、復号器６０中の係数抽出モジュール６２は、ランおよびレベル値を再生し、次に、マクロブロックの各ブロックについて量子化されたＤＣＴ係数１６２の配列を再構成する。マクロブロックに関連付けられた符号化された動きベクトル情報は、符号化されたビデオビットストリーム１４０から抽出される。抽出された動きベクトル１６６は、再構成された量子化されたＤＣＴ係数１６２と共に、バックエンドユニット８０に提供される。逆量子化器８４は、マクロブロックの各ブロックについての予測誤差情報を表す量子化されたＤＣＴ係数１６２を逆量子化し、結果を逆変換器８６に提供する。符号化制御マネジャー８２により提供される制御情報によって、ビデオ信号１８０を生成するために、マクロブロックの各ブロックについての再構成された予測誤差値の配列がもたらされる。
【００２４】
現在、ビデオおよび静止画像は一般に、周波数領域へのブロック方式の変換を利用して符号化される。そのような符号化方法は、Joint Video Team(JVT)によるH.26L（または近い将来H.264になる）標準において用いられる。そのような方法において、画像は最初に、サイズが4×4ピクセルのブロックに再分割され、ブロックは変換係数の4×4マトリックスに変換される。係数は次に、ジグザグ経路に沿ってそれらの係数をスキャンすることによって配列され、変換係数の順序付けられたシーケンス−1次元ベクトルを形成するために、低周波数係数はスキャン中で最初に配置される。図1の4×4変換係数マトリックスは、1次元配列すなわち1、2、5、9、6、3、4、7、10、13、14、11、8、12、15、16のシーケンスという結果になる。以下のステップがランレングス符号化によりＤＣＴ係数の量子化された値を符号化することなので、これは有利であり、その結果、より起こりそうなランが短い符号により表される（ハフマン符号化または算術符号化）。そのようなやり方で配列される場合、スキャンの終わりに係数の多くは最後に通常は0になる。従って、係数は高効率で符号化される。すべてのシンボルが同じ長さを有している（ビットにおいて）わけではないことを可変長符号化が意味していることは知られている。ハフマン符号化は可変長符号化の1つの例である。算術符号化は、ひと続きのシンボルを伴っているという点で若干異なっている。従って、1シンボルの長さを、Xビットを必要とするとして記述することは一般にはできない。むしろ、特定のひと続きのシンボルはYビットを必要とする。この理由から、“エントロピー符号化”はおそらく、“可変長符号化”よりも一般的な用語である。
【００２５】
上述の符号化方式は、4×4ピクセルのブロック変換を生成するために用いられる。しかしながら、コンテキストベース適応ＶＬＣ（ＣＡＶＬＣ）は、変換係数を4×4よりも大きいブロックに分割することを伴うことがある。例えば、ＪＶＴ符号化器は、4×8、8×4、および8×8ブロックでの変換を実行する“適応ブロック変換”（ＡＢＴ）と呼ばれる機能を含んでいる。従って、4×4ブロック用に設計された符号化方式は、もはや適用できない。この問題の解決策は、より大きいブロックをサイズ4×4のサブブロックに分割することである。
【００２６】
現行の解決策が提案されており、そこでは、係数のＡＢＴブロックは空間領域中の4×4ブロックに分割される。1例として、図4には、1つの8×8ブロックが、ＪＶＴ符号化器においてこのブロックのために用いられるスキャン順序の1つと共に示してある。4つの4×4ブロックに分割された同じブロックが図5a〜5cに示してある。その後、各4×4ブロックは、4×4スキャンを用いてジグザグスキャンされて、長さ16の複数のベクトルをもたらす。次に、これらの長さ16のベクトルは、標準的な4×4ＣＡＶＬＣアルゴリズムに渡される。図1に示される4×4スキャンが図5a〜5cの4×4ブロックについて用いられる場合、結果として生じるベクトルは、図6a〜6cに与えられるようなものである。
【００２７】
この現行のＣＡＶＬＣアルゴリズムは、係数ベクトルの内容についてある特定の仮定を立てている。これらの仮定に反する場合、ＣＡＶＬＣにより用いられた符号化テーブル（すなわち、どのシンボルを記述するためにどの符号語が用いられるかを指定しているテーブル）は“ミスマッチとなる”。これは、テーブル中の符号語の長さがシンボルの確率をもはや正確に反映しないことを意味し、その結果、ＣＡＶＬＣは効率がより低くなる。
【００２８】
この現行のアプローチの結果として、ＡＢＴブロックの分割後に作り出された各4×4ブロックは、ＡＢＴ変換における種々の周波数に対応する係数を有している。例えば、図5aの4×4ブロックは、低周波数情報（水平および垂直双方に）および従って高振幅係数のほとんどを含んでいる。同様に、図5dの4×4ブロックは、高周波数情報および低振幅係数を含んでいる。ＣＡＶＬＣアルゴリズムは、より高い大きさは一般にベクトルの先頭に向かって生じると仮定しており、決定的には、このアルゴリズムは、0のより長いランが一般にベクトルの最後に向かって生じると仮定している。図5dの4×4ブロックが図5aの4×4ブロック中の多くの値を含むことは統計上ありそうになく、“範囲外の”値は、それらに関連付けられた0の長いランを持つものと考えられる。図5dの4×4ブロックは1つないし2つの非ゼロ係数を含み得るが、それらの係数の位置はＣＡＶＬＣが予期するものとミスマッチされ、その結果、そのブロックの符号化は不釣合いに多くのビットを必要とする。
【００２９】
ＣＡＶＬＣ法は、近傍のブロックが同様の数の非ゼロ係数を有するとも仮定している。変換関数の種々の周波数に対応する係数を有するブロックについては、非ゼロ係数の数は大幅に変化する。そのことは、所定のブロックの非ゼロ係数の数を符号化するために用いられるＶＬＣテーブルの誤った選択につながり得る。その理由は、この選択がそのブロックの近傍のブロックの非ゼロ係数の数に基づいているからである。
【００３０】
従って、現行のブロック分割方式は、符号化効率および量子化精度に関して最適な解決策ではない。
【００３１】
nおよびmが1以上の正の整数である(4n)×(4m)の一般的なサイズを有するＡＢＴブロックに適用できるビデオおよび画像符号化のためのより効率的な方法およびシステムを提供することは有利かつ望ましいことである。
【発明の開示】
【課題を解決するための手段】
【００３２】
4×4よりも大きいブロック変換の適用後に結果として生じる量子化された係数を表すために必要とされるビット数を低減することが本発明の第1の目的である。より正確には、本発明は、4×8、8×4、または8×8変換に起因する係数を表すために必要とされるビット数を低減することを目的とする。さらに、ＪＶＴ符号化器を実現する符号により必要とされるメモリーを最小限にするためだけでなく，ＪＶＴ符号化器の設計を単純化するためにも、4×4ブロック用に開発されたＣＡＶＬＣ法は、未変更または最小限の修正で4×8、8×4、または8×8ブロックの符号化に用いられることが望ましい。
【００３３】
この目的は、オリジナルのベクトルをインタリーブ方式で用いて、4×4よりも大きいブロックをサイズ4×4の複数のサブブロックで分割することにより達成できる。
【００３４】
従って、本発明の第1の態様に従い、画像符号化の方法は、
画像データから、少なくとも1つの変換係数ブロックを形成するステップと、
変換係数シーケンスを提供するために、変換係数ブロックをスキャンするステップと、
複数のサブサンプリングされた変換係数シーケンスを提供するために、シーケンス中の変換係数をインタリーブ方式でサブサンプリングするステップと、
サブサンプリングされた変換係数シーケンスを、エントロピー符号化器を用いて符号化するステップとを特徴とする。
【００３５】
有益には、前記サブサンプリングするステップは、前記符号化するステップの前または後に実行される。
【００３６】
好ましくは、変換係数シーケンスは、16n×mの長さを有しており、nおよびmは1以上の正の整数であり、前記サブサンプリングされた変換係数シーケンスの各々は、16の長さを有している。
【００３７】
本発明の第2の態様によれば、画像符号化において用いられるコンピュータプログラムが提供され、符号化プロセスは、
画像データから、少なくとも1つの変換係数ブロックを形成するステップと、
変換係数シーケンスを提供するために、変換係数ブロックをスキャンするステップとを含む。このコンピュータプログラムは、
複数のサブサンプリングされた変換係数シーケンスを提供するために、シーケンス中の変換係数をインタリーブ方式でサブサンプリングするためのアルゴリズムを特徴とする。
【００３８】
有益には、符号化プロセスは、サブサンプリングされた変換係数シーケンスをエントロピー符号化器を用いて符号化するステップをさらに含む。
【００３９】
また、符号化プロセスは、前記サブサンプリングの前に、変換係数シーケンスをエントロピー符号化器を用いて符号化するステップをさらに含む。
【００４０】
本発明の第3の態様によれば、画像データを受信しこの画像データを示すビットストリームを提供するための画像符号化器が提供される。この画像符号化器は、
画像データから、少なくとも1つの変換係数ブロックを形成するための手段と、
ブロックから、順序付けられた変換係数シーケンスを形成するために、変換係数ブロックをスキャンするための手段と、
複数のサブサンプリングされた変換係数シーケンスを形成するために、順序付けられた変換係数シーケンスをサブサンプリングするためのソフトウェアプログラムと、
符号化された変換係数を示す信号を提供するために、サブサンプリングされた変換係数シーケンスをエントロピー符号化するための手段と、
信号に基づいてビットストリームを提供するための手段とを特徴とする。
【００４１】
本発明の第4の態様によれば、画像データを示すビットストリームを提供するためのサーバーとビットストリームに基づいて画像データを再構成するためのクライアントとを含む画像符号化システムが提供され、サーバーは、
画像データを示す信号を受信するための受信器と、
信号から、少なくとも1つの変換係数ブロックを形成するための手段と、
ブロックから、順序付けられた変換係数シーケンスを形成するために、変換係数ブロックをスキャンするための手段と、
複数のサブサンプリングされた変換係数シーケンスを形成するために、順序付けられた変換係数シーケンスをサブサンプリングするためのソフトウェアプログラムと、
符号化された変換係数を示すさらなる信号を提供するために、サブサンプリングされた変換係数シーケンスをエントロピー符号化するための手段と、
さらなる信号に基づいてビットストリームを提供するための手段とを特徴とする。
【発明を実施するための最良の形態】
【００４２】
本発明に従うブロック分割法は、1つの変換係数ＡＢＴブロック（8×8ブロック、4×8または8×4ブロック）を複数の4×4ブロックに分割し、これらのブロックは、標準的な4×4ＣＡＶＬＣアルゴリズムを用いて符号化される。各4×4ブロック中の係数の統計的分布が同様であることを保証するため、4×4ブロック間の係数の分割は係数エネルギーに基づく。係数のエネルギーは、このエネルギーの対応する変換関数の周波数に依存し、例えば、ＡＢＴブロックのジグザグスキャン中でのその位置により示し得る。そのような分割の結果として、所定の4×4ブロックに対し選ばれたすべての係数がＡＢＴブロック中で互いに空間的に隣接しているわけではない。
【００４３】
本発明において提示される方法は、4×8、8×4または8×8変換を用いて生成された係数ブロックで動作し、これらのブロックは、順序付けられた係数のベクトルを生成するために、続いてジグザグパターン（または他のいずれかのパターン）でスキャンされるものである。
【００４４】
前に言及されたように、ジグザグスキャンの目標は、非ゼロ係数を係数ベクトルの先頭に集めることである。実際上、この目標は、減少するエネルギー（分散）に従って係数を配列することである。これを達成するために用いられる実際のスキャンは、エネルギーが一般的に減少しているのであれば、本発明にとり少しも重要ではない。
【００４５】
長さNの順序付けられた係数のベクトルを生成するためのジグザグスキャンの後（Nは、8×8ブロックについては64、4×8または8×4ブロックについては32である）、本発明のアルゴリズムは、このベクトルを、各々長さ16のN/16個のより小さいベクトルに分割する。そのようなベクトルの各々は、サブサンプリングプロセスにおいて長さNの係数ベクトルから(N/16)番目ごとの係数を取ることによって形成される。例えば、順序付けられたベクトルが、c0，c1，c2，．．．，c63とラベルを付けられた係数を含んでいれば、長さ16の第1の分割されたベクトルは、c0，c4，c8，c12，．．．，c60を含む。長さ16の第2の分割されたベクトルは、c1，c5，c9，c13，．．．，c61を含み、第3および第4のベクトルについて以下同様である。例えば、図7に示されるように、順序付けられたベクトルが64個の係数の1次元配列により表されれば、長さ16の第1、第2、第3および第4の分割されたベクトルが図8a〜8dにそれぞれ示される。
【００４６】
説明されたやり方で長さ16のサブサンプリングされたベクトルが得られた後、それらのベクトルは、標準的な4×4ＣＡＶＬＣアルゴリズムを用いて符号化される。ＣＡＶＬＣの説明に記載されているように、非ゼロ係数の符号化は、上方および左方の近傍の4×4ブロックの非ゼロ係数の数に依存する（図8a〜8d参照）。従って、ＡＢＴブロックを分割することにより作り出されたベクトルの各々には、ＡＢＴブロックを空間的に分割することによって作り出された4×4ブロックの1つの空間位置が割り当てられる。例えば、本発明の方法が8×4ブロックで動作する場合、第1のベクトルには、上方の4×4ブロックが割り当てられ、第2のベクトルには下方のブロックが割り当てられる。
【００４７】
図8a〜8dに示されるように4番目ごとの係数が選ばれる本発明に従う方法において、0〜4の番号を付けられた第1の（“最上位の”）4つの係数の中の1つの係数が各4×4ブロックに割り当てられる。（4〜7の番号を付けられた）次の4個のグループの中の1つの係数が各4×4ブロックに割り当てられる。同じパターンが、4つの係数の残りのグループについて繰り返される。これには、結果として生じる4×4ブロックの各々におけるエネルギー量を“均衡させる”効果がある。本願発明による実験によれば、このアルゴリズムは、現行の解決策と比較した場合、所定のビデオシーケンスを表すために平均3〜5％少ないビットを必要とする。
【００４８】
ベクトル分割法を用いるビデオ符号化を容易にするため、本発明に従って、図9に示されるようなビデオサーバー１０２および図10に示されるようなビデオクライアント２０２を用いることができる。本発明に従う符号化器２４２と典型的な符号化器４０(図2)との主要な差異は、ＡＢＴブロック（4n×4mブロックであり、n、mは1以上の正の整数）を、図8a〜8dに示されるようにn×mブロックにインタリーブ方式で分割するためのインタリーブ分割ユニット４８を多重符号化器２４２が含んでいることである。本発明によれば、スキャンユニット４２が、長さN(N＝16n×m)の係数の順序付けられたベクトルを生成した後、アルゴリズムを有しているインタリーブ分割ユニット４８中のコンピュータソフトウェアが、この順序付けられたベクトルを、各々16の長さを有しているn×mのより小さいベクトルに分割するために用いられる。そのようなベクトルは各々、(n×m)番目ごとの係数を、長さNの順序付けられた係数ベクトルから取ることによって形成される。従って、ビットストリーム１４２は、n×mの分割されたベクトルのコンテキストを示す。
【００４９】
同様に、クライアント２０２の復号器２６２は、ベクトル組み立てユニット６６を有しており、このユニットは、n×mの分割されたベクトル中の係数を長さNの順序付けられたベクトルに再グループ化するためのアルゴリズムを備えるコンピュータプログラムを有している。
【００５０】
図8a〜10に関連して説明されるようなアルゴリズムは、より一般的な概念の特定の実施例であることが留意されるべきである。ベクトル中のＤＣ（または第1の）項からのその“距離”を表している長さNのベクトル中の各位置に、ある数を割り当てることが可能である。この値は、その位置における係数の相対的な重要性を反映するべきである。例えば、図1において、最初に位置1を符号化するか2を符号化するかの選択はほとんど任意であり、従って、それらの位置には同じ“距離”または“コスト”値が割り当てられるかもしれない。
【００５１】
すべてのブロックが同様の特徴を有している（すなわち、ＣＡＶＬＣ符号化器に適している）ことを確実にすることは、最小化問題である。考えられる各割り当てパターンについて、各4×4ブロック中の係数の総“コスト”を計算することができ、4×4ブロック全体にわたっての分散が取られる。分散を最小限にする割り当てパターンは、最も類似した統計的特性を有するブロックに至る。
【００５２】
数学的には、Pが割り当てパターンの集合であれば、下記のようになるpの値を計算したい。
【００５３】
【数１】
2006501740.tif 000003
【００５４】
ここで、
【数２】
2006501740.tif 000004
であり、ｄi,jは、j番目の分割ベクトルのi番目の係数の“コスト”である。上述されるように、ここで説明される割り当てパターンは、分割されたブロックの間の“コスト分散”を最小にしようとする試みの1例である。理解されなければならないことは、割り当てパターンが適応的に選択されれば、符号化器において用いられる割り当てパターンについての情報が復号器に伝送される必要があるということである。また、割り当てパターンは、画像の符号化において用いられる他のパラメータから決定され得る。ここで最も重要なことは、符号化器および復号器双方は同じ割り当てパターンを用いるということである。その理由は、そうしないと符号化された画像が適切に復号できないからである。
【００５５】
ＤＣ係数は様々にかつ別個に符号化できることが留意されるべきである。しかしながら、現行の4×4ＣＡＶＬＣを変更しないようにするために、ＤＣ係数は、3つの最低周波数のＡＣ値とは異なって取り扱われることはない。ＤＣ係数を別個に取り扱うことは、ブロック中に係数が非常に少ない（例えば、8×8ブロックについて、4つの4×4ブロックのうちの3つが空である）場合には、概して利益をもたす。この場合には、ＤＣ項を非ゼロ値の数の予測から除外することが望ましいことがある。しかしながら、利益は一般に大きくはないことがある。
【００５６】
スキャンにおけるある係数の位置に固有の距離／コスト計量は、その係数がどの4×4ブロックに割り当てられるかを決定するために用い得る。例えば、“0000111122223333．．．”のコストパターンは、そのような決定のために用い得る。また、“0111.42．．．”のようなカルテシアン距離を用いることができる。割り当てアルゴリズムの効果は、等しいまたはほぼ等しい総コストを有するブロックを作り出すことである。従って、各ブロックについての総コストの分散は、類似性の尺度であると見なされる。スキャンにおいて次の係数について選ばれるブロックは、これまでにそれに割り当てられた係数の最も低い累積コストを有するブロックである。
【００５７】
ジグザグスキャンの前に、図4に示されるような8×8ブロックを図11ａ〜11dに示されるような4つの“インタリーブされた”サブブロックにサブサンプリングするために、あらかじめ規定されたサブサンプル手順を用いることも可能である。長さ16の4つの順序付けられたベクトルを生成するために、次にジグザグスキャンがこれらのサブブロックに適用される。従って、結果は、図8a〜8dに示される結果に等しい。それゆえ、以下のステップを含む画像符号化方法を提供することが可能である。
【００５８】
1.  画像データに対して、少なくとも1つの変換係数ブロックを形成するステップ、
2.  複数のサブサンプリングされた変換係数ブロックを提供するために、ブロック中の変換係数をあらかじめ規定された方法でサブサンプリングするステップ、
3.  複数のサブサンプリングされた変換係数シーケンスを提供するために、サブサンプリングされた変換係数ブロックをスキャンするステップ、
4.  サブサンプリングされた変換係数シーケンスを、エントロピー符号化器を用いて符号化するステップ。
【００５９】
上記で説明されたような本発明の方法は、4×4ブロック間のＡＢＴ変換の種々の周波数に対応する係数を均等に分割する。従って、作り出された4×4ブロックは、ＣＡＶＬＣ符号化器により予期される特性と統計的に同様な特性を有しており、このことは符号化効率の向上につながる。
【００６０】
上に述べたように、本発明をその好ましい実施例に関して説明してきたが、本発明の形態および細部における前述およびその他の変更、省略および逸脱が、本発明の範囲から離れることなくなし得ることが当業者により理解されるであろう。
【図面の簡単な説明】
【００６１】
【図１】4×4ブロックのための典型的なジグザグスキャンを示す図である。
【図２】ブロックベースの変換符号化および動き補償予測を用いる典型的なビデオサーバーのブロック図を示す図である。
【図３】図2の符号化器に対応する典型的なビデオクライアントのブロック図を示す図である。
【図４】8×8ブロックのための典型的なジグザグスキャンを示す図である。
【図５ａ】図4の8×8ブロックからの4×4サブブロックを示す図である。
【図５ｂ】図4の8×8ブロックからの別の4×4サブブロックを示す図である。
【図５ｃ】図4の8×8ブロックからのさらに別の4×4サブブロックを示す図である。
【図５ｄ】図4の8×8ブロックからの第4の4×4サブブロックを示す図である。
【図６ａ】4×4ＣＡＶＬＣアルゴリズムに渡される、図5aの4×4ブロックに従うベクトルを表す1次元配列を示す図である。
【図６ｂ】4×4ＣＡＶＬＣアルゴリズムに渡される、図5bの4×4ブロックに従うベクトルを表す1次元配列を示す図である。
【図６ｃ】4×4ＣＡＶＬＣアルゴリズムに渡される、図5cの4×4ブロックに従うベクトルを表す1次元係数配列を示す図である。
【図６ｄ】4×4ＣＡＶＬＣアルゴリズムに渡される、図5dの4×4ブロックに従うベクトルを表す1次元配列を示す図である。
【図７】8×8ブロックの順序付けられた係数シーケンスを表す1次元ベクトルを示す図である。
【図８ａ】本発明に従う、オリジナルのベクトルからの第1の分割されたベクトルを表す1次元係数配列を示す図である。
【図８ｂ】本発明に従う、オリジナルのベクトルからの第2の分割されたベクトルを表す1次元係数配列を示す図である。
【図８ｃ】本発明に従う、オリジナルのベクトルからの第3の分割されたベクトルを表す1次元係数配列を示す図である。
【図８ｄ】本発明に従う、オリジナルのベクトルからの第4の分割されたベクトルを表す1次元係数配列を示す図である。
【図９】本発明に従う、典型的なビデオサーバーのブロック図を示す図である。
【図１０】本発明に従う、図9のビデオ符号化器に対応するビデオクライアントのブロック図を示す図である。
【図１１ａ】8×8変換係数ブロックからサブサンプリングされた4×4ブロックを示す図である。
【図１１ｂ】8×8変換係数ブロックからサブサンプリングされた別の4×4ブロックを示す図である。
【図１１ｃ】8×8変換係数ブロックからサブサンプリングされたさらに別の4×4ブロックを示す図である。
【図１１ｄ】8×8変換係数ブロックからサブサンプリングされた第4の4×4ブロックを示す図である。
【図１】
2006501740.tif 000005
【図２】
2006501740.tif 000006
【図３】
2006501740.tif 000007
【図４】
2006501740.tif 000008
2006501740.tif 000009
2006501740.tif 000010
【図７】
2006501740.tif 000011
2006501740.tif 000012
【図９】
2006501740.tif 000013
【図１０】
2006501740.tif 000014
2006501740.tif 000015
【国際調査報告】
2006501740.tif 000016