(57)【特許請求の範囲】
【請求項１】
減算係数のためのマクロブロック記録により、ビデオコード化効率を改善するための方法であり、
量子化されたベースレイヤーの係数を反転量子化したものを未量子化のＤＣＴ係数から差し引くことにより減算係数を演算し、
前記減算係数のマクロブロックを格納フレームに格納して、記録し、
ビット平面エントロピィコード化の手段により、前記記録した減算係数のマクロブロックをエンコードし、ビット平面の可変長にコード化し、さらに、
前記減算係数のマクロブロックの記録には、
ベースレイヤーからマクロブロックの量子化スケール値を得て、
ベースレイヤー内でコード化されないマクロブロックにおける前記量子化スケール値を、ベースレイヤー内でコード化されないマクロブロックに先立ち、前記コード化されたマクロブロックの量子化スケール値にセットし、そして、
最も高い量子化スケール値を持つマクロブロックを記録シーケンスの先頭に置き、残りのマクロブロックの中でより高い量子化スケール値を持つマクロブロックを順次再配置することを特徴とする減算係数のためのマクロブロック記録により、ビデオコード化効率を改善するための方法。
【請求項２】
前記減算係数のマクロブロックの記録には、
ＶＯＰ内の前記記録シーケンスを決定し、そして、
前記記録シーケンスに基づく前記マクロブロックのためにコード化シーケンスを記録するステップを含む、請求項１記載の減算係数のためのマクロブロック記録により、ビデオコード化効率を改善するための方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＭＰＥＧ−４ スタンダード内における超微粒子のビデオ スカラビリティ スキームに使用され得る。
【０００２】
【発明の背景】
ＭＰＥＧ−４スタンダードにおける超微粒子のビデオ スカラビリティ スキームは、ビデオネットワーク アプリケーションをターゲットとする。そのスキームは、サーバーとそのクライアントとの間のネットワーク状態のチャンネル能力に基づくビデオ クォリティでのスカラビリティを可能にする。ＦＧＳスキームにおいて、ＭＰＥＧ−４ビデオは、２つの異なるレイヤー内でコード化され、それらのレイヤーでは、エンハンスメント レイヤーがベースレイヤーのビデオクオリティを高める。そのベースレイヤーの情報は、相応なクオリティのビデオを表示するために自身のレイヤー上でデコードされ得る。一方、エンハンスメントレイヤーは、高められたクオリティのビデオを表示するために、ベースレイヤーに加えられることが要求される。
【０００３】
エンハンスメントレイヤーのコード化のために、オリジナルの値から周波数ドメイン内のベースレイヤー係数のデコードされた値を差し引くことにより、最初にベースレイヤー係数から減算係数が計算される。これらの減算係数は、ビット-プラン バリアブル レングス コード用アルゴリズムを用いてコード化される。
【０００４】
ＦＧＳスキームでは、サーバーは、そのクライアントに送信されるべき、コード化されたエンハンスメントレイヤーのＶＤＰ毎のあるビット数のみを許可するレギレータとして機能する。ＶＤＰ毎のビット数は、ネットワーク状態およびチャンネル能力に依存する。ネットワーク接続のチャンネル能力がより高ければ、エンハンスメントレイヤーのより多いビットがその接続を通じて送信される。
【０００５】
クライアント側では、エンハンスメントレイヤーの受信されたビットは、その後、減算係数を形成するために用いられ、そして、エンハンスされた係数を形成するために周波数ドメイン内のこれらの減算係数は、ベースレイヤーの係数に加算される。
【０００６】
現在の技術では、エンハンスメントレイヤーの減算係数は、マクロブロックのレベルで得られ、そして、コード化されたマクロブロックは、水平方向のスキャンラインの順番に配置される。同じビット平面内において、ビット平面ＶＬＣが減算係数で実行されたとき、トップ左の大半のマクロブロックのビットが最初に送出され、そして、ボトム右のマクロブロックのビットが続いて送出される。エンハンスされたレイヤーのコード化効率を改善するために、ＶＯＰ内のマクロブロックの配置順序を変更する試みはされない。
【０００７】
図１は、エンハンスメントレイヤーのコード化の従来技術を示す。そのエンハンスメントレイヤーのコード化のプロセスのための従来技術は、基本的に３つのモジュールからなる。それらは、反転量子化モジュール１０１、減算演算モジュール１０２およびビット平面バリアブルレングスコード化モジュール(ＶＬＣ)１０３である。反転量子化モジュールにおいて、非量子化のベースレイヤー係数を得るために、量子化されたベースレイヤーの係数が反転量子化される。その減算係数は、オリジナルのディスクリート コサイン トランスフォーム(ＤＣＴ)係数から再構築されたベースレイヤーＤＣＴ係数を減じることにより、得られる。その減算係数は、その後、ビット平面ＶＬＣアルゴリズムを用いてコード化される。
【０００８】
エンハンスメントレイヤーのためのデコードプロセスの従来技術を図２に示す。このプロセスは、主にビット平面ＶＬＤモジュール２０１、加算演算モジュール２０２、反転ＤＣＴ(ＩＤＣＴ)モジュール２０３およびエンハンスされたピクセル再現モジュール２０４の４つのモジュールからなる。デコーダにより受け取られた情報は、モジュール２０１内のビット平面ＶＬＤアルゴリズムを用いてデコードされる。ベースレイヤーのデコードされたＤＣＴ係数とエンハンスメントレイヤーの減算係数とを加算することにより、エンハンストされたＤＣＴがモジュール２０２で得られる。そのエンハンストされたＤＣＴ係数は、その後、モジュール２０３内の反転ＤＣＴを用いて空間的に広がるドメインに変形される。ＩＤＣＴの出力は、モジュール２０４で示されるようなエンハンストされたピクセルを与えるために、内部でないコード化されたマクロブロックの場合の動きの補償の出力に加算する。内部でコード化されたマクロブロックの場合、エンハンスされたピクセルはＩＤＣＴモジュールの出力となる。
【０００９】
【発明が解決しようとする課題】
現在のＦＧＳスキームでは、ビット平面のコード化が使用される。演算された減算係数の値は、分割され、そしていくつかのビット平面レベルにコード化される。同じビット平面レベル内では、減算係数のビットがブロックにして配列され、そしてこれらのブロックは、マクロブロックに更にグループ化される。トップ右のＶＯＰに位置する大半のマクロブロックが最初にコード化され、ボトム右のＶＯＰに位置する大半のマクロブロックは最後にコード化される。
【００１０】
ビット平面レベル内では、ＶＯＰ内のマクロブロックは必ずしもすべてではないがチャンネル能力に依存してデコーダに送信される。もしＶＯＰの特定のビット平面レベル内の全数のマクロブロックの半分が送信できるチャンネル能力さえあれば、ビット平面レベル内のマクロブロックの現在の配列を用いて、ＶＯＰの上半分に属するマクロブロックのみが送信される。しかしながら、ベースレイヤーのエンコード化プロセスに速度制御が使用されるならば、減算係数の流動的な範囲は異なるブロックで異なる。下位のＶＯＰの半分でのマクロブロックがより大きな減算係数を持つ可能性がある。それ故、この場合には、ＶＯＰの下半分でのマクロブロックの替わりにＶＯＰの上半分でのマクロブロックを送信することは、コード化効率の点で極めて効率的ではない。
【００１１】
それ故、この開示の主眼は、公知技術のコード化技術の非効率を解決することにある。解決すべき問題は、エンハンスメントレイヤーのＶＯＰ内のマクロブロックを、同一のビット平面レベル内で最初にコード化されるマクロブロックの減算係数が最後にコード化されるマクロブロックの減算係数よりもより大きく流動的なレンジを持てるように、いかに再配列するかである。
【００１２】
【課題を解決するための手段】
ベースレイヤーのコード化における量子化プロセスでは、ＱＳがブロックの係数に適用されるべき量子化の力を決定するために用いられる。Ｈ.263およびＭＰＥＧ双方の量子化技術のためには、より高いＱＳ値がより強い量子化となる。エンハンスメントレイヤー内の減算係数は、実際にベースレイヤーからの量子化ノイズである。それ故、もし、ＶＯＰ内の残りのブロックよりもより強い量子化がブロックに適用されたならば、かなり高い可能性で、この特定のブロックの減算値が、より低いＱＳ値を持つ残りのブロックの減算値よりもより高くなる。
【００１３】
エンハンスメントレイヤー内のマクロブロックの配列における公知技術の非効率性の問題は、ベースレイヤー内の対応するマクロブロックのＱＳ値を用いてエンハンスメントレイヤーのマクロブロックを再配列することにより解決され得る。
【００１４】
現状の技術では、エンハンスメントレイヤー内のマクロブロックの配列は、ベースレイヤー内の配列に従う。本発明の新規な点はマクロブロックの配列が固定されないことである。その配列は、ベースレイヤー内のマクロブロックの量子化スケール値に依存する。アルゴリズムを再配列するその新しいマクロブロックは、同じビット平面レベルおよび同じＶＯＰ内で、最初にコード化されるマクロブロックが、後でコード化されるマクロブロックの減算係数よりもより高い値を持つことを確実にする。
【００１５】
【発明の実施の形態】
ＭＰＥＧ−４ビデオコード化標準では、２種類の量子化が用いられる。それらはＨ.263およびＭＰＥＧ量子化である。Ｈ.263非量子化に対する公式を下に示す。
【数１】
0004526642.tif 000002
【００１６】
上式で示されるように、その量子化スケール値は、ブロック内のゼロでない係数を量子化するために用いられる。同様に、ＭＰＥＧ非量子化では、下式で示されるように、この量子化スケール値は、ゼロでない係数の非量子化のために要求されるパラメータの一つとして用いられる。
【数２】
0004526642.tif 000003
【００１７】
量子化スケール値がより高ければ、コード化プロセスの間にブロック内のＤＣＴ係数を量子化するために用いられる量子化がより強くなることが知られている。これにより、減算係数の大きさに対する流動的な範囲は、量子化スケール値に直接関係する。それ故、ベースレイヤーにて大きい量子化スケールを持つマクロブロックのために、エンハンスメントレイヤーでの対応する減算係数の大きさが同程度に高くなる。
【００１８】
この発明の目的は、大きい減算値を持つマクロブロックが、小さい減算値を持つマクロブロックよりも、より高い確率で早期にコード化されるために、エンハンスメントレイヤー内のマクロブロックの順序のコード化を記録することである。これはベースレイヤーで利用できる情報を用いて達成される。
【００１９】
この発明の実施形態を図３により説明する。図３はこの発明のエンコーダのブロック図を示す。この発明を構築する陰影を付したモジュール３０３、３０４および３０５が現存する公知技術に新たに追加されている。エンハンスメントレイヤーのコード化プロセスでは、ＶＯＰのすべての減算係数が図示したモジュール３０２内で最初に演算される。その減算係数は元のＤＣＴ係数から非量子化のＤＣＴ係数を差し引くことにより計算される。これらの減算係数は、図示されるようにモジュール３０３内の格納フレームに格納される。
【００２０】
次に、ＶＯＰ内のすべてのマクロブロックの量子化スケール値は、ベースレイヤーから得られる。ベースレイヤーでのマクロブロックがエンコード化されていない場合では、マクロブロックの実際の量子化スケール値はデコーダでデコードすることができない。これらのマクロブロックのために、量子化スケール値は、先にコード化されたマクロブロックの量子化スケール値と同一になる。
【００２１】
得られた量子化スケール値を用いて、エンハンスメントレイヤー内のマクロブロックに対するシーケンスの記録は、モジュール３０４内でその後演算される。記録したシーケンスを得てからは、ＶＯＰ内のマクロブロックは、モジュール３０５内にて記録したシーケンスに従って記録される。これらのマクロブロック内の減算係数は、図示したモジュール３０６内にてビット平面の可変長にコード化される。
【００２２】
図４はこの発明のデコーダのブロック図を示す。この発明を形成する陰影を付したモジュール４０２および４０３が現存する公知の技術に新たに追加されている。ＶＯＰのエンハンスメントレイヤーデコード化プロセスは、以下のごとくである。ベースレイヤーのすべてのマクロブロックは、デコード化され、マクロブロックの量子化スケール値は、ベースレイヤー情報から得られる。同様にエンハンスメントレイヤーエンコード化プロセスにおいて、ベースレイヤー内でコード化されないマクロブロックの量子化スケール値は、先にコード化されたマクロブロックの量子化スケール値にセットされる。次に、得られた量子化スケール値に基づき、エンコード化プロセスにおけるのと同じ記録シーケンスがモジュール４０３から引き出される。
【００２３】
デコーダにより受信されたビットは、その後、モジュール４０１内にて、逆のビット平面可変長コード化を用いてデコードされる。その逆のマクロブロック記録プロセスは、次にモジュール４０２内で行われ、ここでマクロブロックが引き出された記録順を用いて元の順序に記録される。エンハンスメントレイヤー内の記録されたマクロブロックは、次にモジュール４０４内にて、エンハンスされたＤＣＴ係数を与えるために、ベースレイヤーでのマクロブロックに加算される。従来技術と同様に、エンハンスされたＤＣＴ係数は、モジュール４０５にて逆のＤＣＴを用いて特定のドメインに送信される。ＩＤＣＴの出力は、図示したモジュール４０６においてエンハンスされたピクセルを得るために、非内部のコード化されたマクロブロックの場合に、移動補償の出力に加算される。
【００２４】
・記録順序の決定
エンハンスメントレイヤーに対するマクロブロックの記録シーケンスは、次のアルゴリズムを用いて得られる。最初、ＶＯＰ内に最も高い量子化スケール値を持つマクロブロックのマクロブロック番号が記録シーケンスのスタートに置かれる。記録シーケンスにおける次のこれらの番号は、マクロブロックの量子化スケール値に従って再配置されたマクロブロック番号の残りである。残りのマクロブロックよりもより高い量子化スケール値を持つこれらのマクロブロックの番号は、最初に記録シーケンス内に置かれる。記録シーケンスにおける最後のマクロブロック番号は、ＶＯＰ内で最低の量子化スケール値を持つマクロブロックのマクロブロック番号である。
【００２５】
・マクロブロックの記録
エンハンスメントレイヤー内のマクロブロックは、記録用シーケンスに従って記録される。その記録は、ＶＯＰ内のマクロブロックを、記録シーケンスに指示されたマクロブロック番号の位置から記録シーケンスへの対応するインデックスへ移動することによって実行される。図５は、記録シーケンスを用いたマクロブロックの記録例を示す。図５に示すように、記録シーケンスに見られる第１のマクロブロック番号は、１２である。これにより、ＶＯＰ内のマクロブロック位置１２に元来あったマクロブロックは、マクロブロックの記録後にマクロブロック位置０に移動される。このマクロブロックの記録プロセスは、ビット平面可変長コード化プロセスの直前に実行される。
【００２６】
・逆のマクロブロック記録
デコーダ側では、逆のマクロブロック記録は、マクロブロックをエンハンスメントレイヤーおよびベースレイヤーの双方で同期させるために実行された。同じ記録シーケンスは、コード化プロセスにおけるのと同じように発生される。その逆のマクロブロック記録は、エンハンスメントレイヤーのコード化プロセスの間に記録シーケンス内に指示されたごとく、ＶＯＰ内のマクロブロックをマクロブロック番号位置に移動することにより実行される。
【００２７】
【発明の効果】
本発明は、粒状スケーラビリティスキームにおいて、エンハンスメントレイヤーのＶＯＰ内のマクロブロックの位置の再配置が極めて効率的に行われ、これにより、ビット平面可変長コード化のコード化効率を改善する。
【図面の簡単な説明】
【図１】  従来のエンコーダのブロック図
【図２】  従来のエンコーダのブロック図
【図３】  本発明の実施形態におけるエンコーダのブロック図
【図４】  本発明の実施形態におけるエンコーダのブロック図
【図５】  ベースレイヤーからの量子化スケール値を用いたマクロブロックの記録例
【符号の説明】
３０３  格納フレームモジュール
３０４  マクロブロック記録シーケンス決定モジュール
３０５  マクロブロック記録モジュール
４０２  逆のマクロブロック記録
４０３  マクロブロック記録シーケンス決定モジュール
【図１】
0004526642.tif 000004
【図２】
0004526642.tif 000005
【図３】
0004526642.tif 000006
【図４】
0004526642.tif 000007
【図５】
0004526642.tif 000008