(57)【要約】【課題】ビットプレーンを復号する際のデータ伝送量を抑制する。【解決手段】複数のマクロブロックに分けられたピクチャの各マクロブロックの２値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンがピクチャヘッダに含まれる圧縮画像データに対して、符号化ビットプレーンを復号する際に、残留値ビットプレーン復号部１０１は、符号化残留値ビットプレーンに対して残留値ビットプレーンを得るまでの復号を行って復号結果を中間データとして出力する。記憶部１０２は、中間データを記憶する。ビットプレーンマクロブロックレイヤ復号部１０３は、記憶部１０２に記憶された中間データに対して、マクロブロックレイヤで差分復元を行ってビットプレーンデコード結果ｂを得、このビットプレーンデコード結果ｂをマクロブロックレイヤ復号部５３０に出力する。【選択図】図１
2008048240.tif 000002
【特許請求の範囲】
【請求項１】
複数のマクロブロックに分けられたピクチャの各前記マクロブロックの２値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンがピクチャヘッダに含まれる圧縮画像データに対して、前記符号化ビットプレーンを復号するビットプレーン復号装置であって、
前記符号化ビットプレーンは、ビットプレーンについての予測値に基づいて残留値ビットプレーンを生成し、該残留値ビットプレーンを所定の符号化方式で符号化する差分符号化により得られた符号化残留値ビットプレーンであり、
ピクチャレイヤで処理を行うものであって、前記符号化残留値ビットプレーンに対して残留値ビットプレーンを得るまでの復号を行って復号結果を中間データとして出力する残留値ビットプレーン復号部と、
前記中間データを記憶する中間データ記憶部と、
マクロブロックレイヤで処理を行うものであって、該中間データ記憶部に記憶された残留値ビットプレーンとなる中間データに対して差分復元を行って最終データを出力するビットプレーンマクロブロックレイヤ復号部とを備えることを特徴とするビットプレーン復号装置。
【請求項２】
前記符号化ビットプレーンは、互いに異なる複数の種類の前記所定の符号化方式のうちのいずれかを用いた差分符号化により得られた符号化残留値ビットプレーンであり、
前記残留値ビットプレーン復号部は複数あり、それぞれが自身の対応する前記所定の符号化方式を用いた差分符号化により得られた符号化残留値ビットプレーンを復号して前記中間データを得て前記中間データ記憶部に出力することを特徴とする請求項１に記載のビットプレーン復号装置。
【請求項３】
前記符号化ビットプレーンは、符号化残留値ビットプレーンと、非差分符号化により得られた非差分符号化ビットプレーンのいずれかであり、
ピクチャレイヤで処理を行うものであって、前記非差分符号化ビットプレーンを復号して復号結果を中間データとして前記中間データ記憶部に出力する非差分符号化ビットプレーン復号部をさらに備え、
前記ビットプレーンマクロブロックレイヤ復号部は、符号化残留値ビットプレーンの前記中間データに対して差分復元を行って最終データを出力するか、非差分符号化ビットプレーンの前記中間データを最終データとして出力することを特徴とする請求項１または２に記載のビットプレーン復号装置。
【請求項４】
前記非差分符号化ビットプレーンの符号化方式を用いた差分符号化により得られた前記符号化残留値ビットプレーンの残留値ビットプレーン復号部は、前記非差分符号化ビットプレーンの非差分符号化ビットプレーン復号部であることを特徴とする請求項３に記載のビットプレーン復号装置。
【請求項５】
前記非差分符号化ビットプレーンは、ビットプレーンに対してビットの条件反転を行って条件反転ビットプレーンを得、該条件反転ビットプレーンを所定の符号化方式で符号化する条件反転符号化により得られた符号化条件反転ビットプレーンであり、
前記非差分符号化ビットプレーン復号部は、該符号化条件反転ビットプレーンに対して条件反転ビットプレーンを得るまでの復号を行って復号結果を中間データとして前記中間データ記憶部に出力し、
前記ビットプレーンマクロブロックレイヤ復号部は、前記中間データ記憶部に記憶された前記条件反転ビットプレーンとなる中間データに対してビットの条件反転を行って最終データを出力することを特徴とする請求項３または４に記載のビットプレーン復号装置。
【請求項６】
前記非差分符号化ビットプレーンは、互いに異なる複数の所定の符号化方式のうちのいずれかを用いた条件反転符号化により得られた符号化条件反転ビットプレーンであり、
前記非差分符号化ビットプレーン復号部は複数あり、それぞれが自身の対応する前記所定の符号化方式を用いた条件反転符号化により得られた符号化条件反転ビットプレーンを復号して条件反転ビットプレーンを得、該条件反転ビットプレーンを中間データとして前記中間データ記憶部に出力することを特徴とする請求項５に記載のビットプレーン復号装置。
【請求項７】
複数のマクロブロックに分けられたピクチャの各前記マクロブロックの２値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンがピクチャヘッダに含まれる圧縮画像データに対して、前記符号化ビットプレーンを復号するビットプレーン復号方法であって、
ビットプレーンピクチャレイヤで処理を行うビットプレーンピクチャレイヤ復号ステップと、
マクロブロックレイヤで処理を行うビットプレーンマクロブロックレイヤ復号ステップを含み、
ビットプレーンについての予測値に基づいて残留値ビットプレーンを生成し、該残留値ビットプレーンを所定の符号化方式で符号化する差分符号化により得られた符号化残留値ビットプレーンに対して、
前記ビットプレーンピクチャレイヤ復号ステップにおいて、残留値ビットプレーンを得るまでの復号を行い、
前記ビットプレーンマクロブロックレイヤ復号ステップにおいて、前記ビットプレーンピクチャレイヤ復号ステップで得られた前記残留値ビットプレーンに含まれた、各マクロブロックについての残留値に対して差分復元を行って最終データを出力することを特徴とするビットプレーン復号方法。
【請求項８】
非差分符号化により得られた非差分符号化ビットプレーンに対して、
前記ビットプレーンピクチャレイヤ復号ステップにおいて、該非差分符号化ビットプレーンを復号し、
前記ビットプレーンマクロブロックレイヤ復号ステップにおいて、非差分符号化ビットプレーンの復号結果を最終データとしてマクロブロック毎に出力することを特徴とする請求項７に記載のビットプレーン復号方法。
【請求項９】
前記非差分符号化ビットプレーンは、ビットプレーンに対してビットの条件反転を行って条件反転ビットプレーンを得、該条件反転ビットプレーンを所定の符号化方式で符号化する条件反転符号化により得られた符号化条件反転ビットプレーンであり、
前記ビットプレーンピクチャレイヤ復号ステップにおいて、前記符号化条件反転ビットプレーンに対して条件反転ビットプレーンを得るまでの復号を行い、
前記ビットプレーンマクロブロックレイヤ復号ステップにおいて、前記条件反転ビットプレーンに含まれた、各マクロブロックの条件反転された前記２値フラグ情報に対してビットの条件反転を行って最終データを出力することを特徴とする請求項８に記載のビットプレーン復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マクロブロックの２値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンがピクチャヘッダに含まれる圧縮画像データに対して、符号化ビットプレーンを復号する技術に関する。
【背景技術】
【０００２】
デジタル技術の発展に伴い、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）プレーヤのようなデジタル方式の音声、画像の再生装置が実用化されている。このような装置の扱うデータは、通常符号化されており、その符号化方式としては、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）、Ｈ．２６４、ＶＣ−１などに代表されるビデオ符号化方式である。
【０００３】
上記の符号化方式では、符号化は階層的に行われる。図２５は、これらの階層の概念を示す。一連の動画像はシーケンスと呼ばれ、その中の個々の画面はピクチャと呼ばれる。さらに、１枚のピクチャは、定められた大きさのマクロブロックに分割される。符号化は、これに対応したレイヤ分けで行われる。
【０００４】
ここで、ＶＣ−１方式（非特許文献１参照）を例にして具体的に説明する。
図２６は、ＶＣ−１方式のビットストリームを示す。図示のように、このビットストリームは、シーケンスレベルの情報をシーケンスレイヤで符号化して得たシーケンスレイヤ情報１６０１と、ピクチャレベルの情報をピクチャレイヤで符号化して得たピクチャレイヤ情報１６０３を有する。さらに、必要に応じて数個のピクチャの境界にエントリポイントレイヤ情報１６０２を挿入することもできる。
【０００５】
図２７は、ＶＣ−１方式のビットストリームにおけるピクチャレイヤ情報１６０３のビットストリーム構造を示す。ピクチャレイヤ情報１６０３は、符号化されたピクチャヘッダ１７０１と、符号化されたスライスヘッダ１７０２と、マクロブロックの情報を符号化して得たマクロブロックレイヤ情報１７０３を有する。
【０００６】
ところで、マクロブロックの情報の一部であるが、マクロブロックレイヤ情報１７０３ではなく、ピクチャヘッダ１７０１に含まれているものがある。
【０００７】
非特許文献１の１９２頁８．７章に記載されているように、ＶＣ−１方式において、マクロブロック毎の２値フラグ情報を１画面分まとめてピクチャヘッダで符号化するというビットプレーン符号化技術が用いられる。マクロブロックの２値フラグ情報は、ＡＣ予測のフラグ、スキップマクロブロックのフラグなどの１ビットの情報である。これらを１画面単位すなわちピクチャ単位にまとめたものはビットプレーンと呼ばれる。ビットプレーンはマクロブロックの符号要素の数個毎について複数種類定義されている。図２８は、その一例を示す。ビットプレーンは、マクロブロックに対応した２次元の２値画像データであり、図示のように、１ピクチャの水平方向（図中Ｘ方向）と垂直方向（図中Ｙ方向）のマクロブロック数が１２と９であれば、ビットプレーンも１２×９の２値画像データとなる。
【０００８】
このようなビットプレーンは、マクロブロックの情報を表すものであるが、ピクチャヘッダに含まれる形で符号化される。
【０００９】
図２９は、ピクチャヘッダ１７０１のビットストリームの構成を示す。図示のように、ピクチャヘッダで符号化される情報が複数あり、そのうち、ビットプレーン符号化されたマクロブロック情報（たとえば図中ビットプレーン符号化マクロブロック情報１９１０、以下符号化ビットプレーンともいう）がある。符号化時の条件により、ピクチャヘッダ内において、ビットプレーン符号化マクロブロック情報が存在しないまたは複数存在する場合がある。
【００１０】
図３０は、ビットプレーン符号化マクロブロック情報すなわち符号化ビットプレーン１９１０のビットストリームを示す。符号化ビットプレーン１９１０は、１ビットの反転ビット（ＩＮＶＥＲＴともいう）２１０１、可変長符号化されたモード情報（以下ＩＭＯＤＥという）２１０２、データビット２１０３を有する。ＩＭＯＤＥ２１０２は後述する符号化のモードを示し、データビット２１０３は、ＩＭＯＤＥ２１０２により示されるモードで符号化される。
【００１１】
ＶＣ−１方式におけるビットプレーンの符号化は、モードにより表される複数の方法に分けられる（非特許文献１参照）。これらのモードは、ｒａｗモード、ノーマル２モード、Ｄｉｆｆ−２モード、ノーマル６モード、Ｄｉｆｆ−６モード、行スキップモード、列スキップモードがある。さらに、これらのモードとは別個に反転ビット２１０１の値を指定して符号化することができる。反転ビット２１０１は、Ｄｉｆｆ−２モードとＤｉｆｆ−６モードでは、予測値を計算するときのデフォルト値として用いられ、他のモード（ｒａｗモードを除く）では、デコードの結果を反転するか否かを示す値として用いられる。
【００１２】
ｒａｗモードの場合、ビットプレーンに含まれる情報は、マクロブロックレイヤで個々に符号化され、ピクチャヘッダでの復号化が行われない。他のモードでは、ビットプレーンが構成され、そのモードに応じた符号化がなされる。
【００１３】
行スキップモードでは、画面は１行ごとに分割され、それぞれの行に１ビットが付加される。このビットの値が０である行は行全体が０となり、それ以外の行はそれの各値がそのまま符号化される。
【００１４】
列スキップモードでは、画面は１列ごとに分割され、それぞれの列に１ビットが付加される。このビットの値が０である列が列全体が０となり、それ以外の列はそれの各値がそのまま符号化される。
【００１５】
ノーマル２モードとＤｉｆｆ−２モードでは、マクロブロックは２つずつ１組にされ、各組についての２ビットの情報が可変長符号化される。符号化時の主走査方向と副走査方向はそれぞれ上から下へ向かう方向と左から右に向かう方向であり、画面の左上隅から右に走査が行われ、右端に達すると１ライン下の左端に進む順で符号化が行われる。１ピクチャ内のマクロブロックの数が奇数である場合には、始めの１マクロブロックすなわち左上隅のマクロブロックのみ単独で符号化される。なお、Ｄｉｆｆ−２モードの場合には、差分符号化が行われ、ビットプレーンで符号化されている値は、予測値との差分（以下残留値ともいう）である。
【００１６】
ノーマル６モードとＤｉｆｆ−６モードでは、マクロブロックは６つずつ１つ組にされ、各組についての６ビットの情報が可変長符号化される。１組のマイクブロックはタイルと呼ばれ、この２つのモードでは、６要素の矩形タイルが用いられる。ピクチャのサイズに応じて、マイクブロックの組合せ方法が決められている。主走査方向（垂直方向）のマクロブロック数が３の倍数であり、かつ、副走査方向（水平方向）のマクロブロック数が３の倍数ではない場合には、タイルとして図３１に示す（ａ）の２×３垂直タイルが用いられ、それ以外の場合には、図３１に示す（ｂ）の３×２水平タイルが用いられる。タイルの分割はピクチャの右下隅に合わせて行われ、最後に左上部に残ったマクロブロックが図３１の（ａ）と（ｂ）のいずれかの形態にもできない場合には、これらのマクロブロックは線形タイル（１×Ｎ列線形タイルまたはＮ×１行線形タイル）（Ｎ：自然数）にされる。符号化は、まず２×３垂直タイルまたは３×２水平タイルを左上端からの順で行われ、その後、列線形タイル、行線形タイルの順で行われる。列線形タイルの符号化方法は列スキップモード時と同じく、行線形タイルの符号化は行スキップモード時と同じである。なお、Ｄｉｆｆ−６の場合にも差分符号化が行われ、ビットプレーンで符号化されている値は、残留値である。
【００１７】
図３１の（ｃ）、（ｄ）、（ｅ）は、この２つのモードでビットプレーン符号化する場合のタイル分割の形態の例を示す。これらの例では、細線の矩形はマクロブロックを示し、太線の矩形はタイルを示す。（ｃ）では、ピクチャサイズが５×６マクロブロックであり、上記規定に従い、２×３垂直タイルが用いられる。そして、左端の１列のマクロブロックは列線形タイルとなる。（ｄ）では、ピクチャサイズが６×３マクロブロックであるため、３×２水平タイルが用いられる。そして、上端の１行のマクロブロックは行線形タイルとなる。また、（ｅ）では、ピクチャサイズが８×５マクロブロックであるため、３×２水平タイルが用いられる。そして、左端の２列のマクロブロックは２つの列線形タイルとなり、上端の１行のマクロブロックは１つの行線形タイルとなる。図３１の（ｃ）、（ｄ）、（ｅ）にある番号は符号化の順番を示し、番号の小さいタイルが先に符号化される。
【００１８】
以上、ＶＣ−１方式により得られたビットストリームの構造、および符号化について説明した。ここで、このようなビットストリームの復号ついて説明する。
【００１９】
図３２は、ピクチャレイヤ以下についての復号処理を示すフローチャートであり、図２７に示すピクチャレイヤ情報１６０３のビットストリームを対象とする。図示のように、まず、ピクチャヘッダ１７０１の復号（Ｓ２００）が行われ、その後、マクロブロックレイヤ情報 １７０３の復号（Ｓ３００）において、それぞれのマクロブロックの復号が行われる。なお、ＶＣ−１方式ではスライスヘッダ１７０２を付加するか否かについては任意であり、付加されている場合にその復号は、マクロブロックの先頭の処理として扱うことができる。図３２においては、それをマクロブロックレイヤ復号（Ｓ３００）の一部として示す。
【００２０】
ステップＳ２００におけるピクチャヘッダ復号の詳細を、図３３に示す。
図３３に示すように、ピクチャヘッダ１７０１の復号に際し、まず、復号する符号要素が定められる（Ｓ２０１）。ピクチャヘッダ１７０１内で符号化された情報は、規格により、固定長符号化、可変長符号化、ビットプレーン符号化のいずれかの符号化方式によって符号化されたものである。ステップＳ２０１において、規格に沿って当該符号要素に応じた符号化方式が選択され、それに対応する復号が行われる（Ｓ２０２：固定長符号、Ｓ２０３、またはＳ２０２：可変長符号、Ｓ２０３、またはＳ２０２：ビットプレーン符号、Ｓ２０５）。このような処理が繰り返され、ピクチャヘッダ１７０１における最後のヘッダ情報を復号したことをもって（Ｓ２０６：Ｙｅｓ）、処理が終了する。
【００２１】
図３４は、図３３のステップＳ２０５におけるビットフレーン復号を示すフローチャートである。ビットプレーンの復号に際して、まず、ビットプレーンの復号方法を定めるビットプレーン補助データが復号される（Ｓ２１１）。ＶＣ−１の場合には、ここで反転ビット２１０１、ＩＭＯＤＥ２１０２が復号される。次のステップＳ２１２において、復号されたビットプレーン補助データに基づいてデータビット２１０３が存在するか否かの判定が行われる。ＶＣ−１の場合には、ｒａｗモードかそれ以外のモードかが判定される。ｒａｗモードの場合にはデータビット２１０３が無く、それ以外のモードの場合にはデータビット２１０３が存在することになる。データビット２１０３があればデータビット２１０３の復号が行われ（Ｓ２１２：Ｙｅｓ、Ｓ２１３）、データビット２１０３が無ければ、処理が終了する。
【００２２】
図３５は、図３４のステップＳ２１３におけるデータビット復号の詳細を示す。図示のように、ビットプレーンのデータビットの復号に際し、まず、復号化されたＩＭＯＤＥ２１０２に基づいて、ビットプレーンの符号化方式が差分符号化を用いた差分符号化方式（Ｄｉｆｆ−２モードまたはＤｉｆｆ−６モード）か、差分符号化を用いない通常符号化方式（ノーマル２モード、ノーマル６モード、行スキップモード、列スキップモード）かが判定される（Ｓ２２１）。通常符号化方式が用いられていればビットプレーン通常復号化が行われ（Ｓ２２１：Ｎｏ、Ｓ２２２）、差分符号化方式が用いられていればビットプレーン差分復号化が行われる（Ｓ２２１：Ｙｅｓ、Ｓ２２３）。
【００２３】
前述したように、Ｄｉｆｆ−２モードとＤｉｆｆ−６モードでは差分符号化が行われ、ビットプレーンで符号化されている値は、予測値との差分を表す残留値である。残留値より構成されたビットプレーンは以下残留値ビットプレーンという。
【００２４】
この２つのモードで符号化されたビットプレーンの復号は、ビットフレーン差分復号化（Ｓ２２３）である。具体的には、残留値ビットプレーン（正確には符号化された残留値ビットプレーン）を復号して各残留値ｒを得、そして式（１）に示すようにこの残留値ｒと予測値ｐを加算して最終的なデコード結果ｂ（以下ビットプレーンデコード結果という）を得る。以下、説明上の便宜のため、残留値ｒを得るまでの復号と、残留値ｒを用いてビットプレーンデコード結果ｂを得るための処理をそれぞれ残留値ビットプレーン復号と差分復元という。
【００２５】
【数１】
2008048240.tif 000003
【００２６】
なお、式（１）における予測値ｐは、下記の式（２）に従って求められる。
【００２７】
【数２】
2008048240.tif 000004
【００２８】
式（２）から分かるように、（ｉ，ｊ）のマクロブロックは、左上隅および左端の列のマクロブロックではなければ、その予測値ｐ（ｉ，ｊ）を求める際に、このマクロブロックと隣接する上および左のマクロブロックのビットプレーンデコード結果（ｂ（ｉ−１，ｊ）、ｂ（ｉ−１，ｊ））が参照される。そのため、これらのマクロブロックのビットプレーンデコード結果ｂが既に得られている必要がある。前述したように、Ｄｉｆｆ−６モードにおいて、線形タイルが最後に符号化されるため、このピクチャ全体の残留値ビットプレーン復号が終わらないと、差分復元が実行できないことが生じうる。
【００２９】
たとえば、図３１の（ｅ）に示す例の場合において、タイル１の左上隅のマクロブロック（マクロブロックＡ）は、その左隣のマクロブロック（マクロブロックＢ）がタイル６に含まれ、上隣のマクロブロック（マクロブロックＣ）がタイル７に含まれる。式（２）に示すように、マクロブロックＡの予測値Ｐを得るためにはマクロブロックＢおよびマクロブロックＣのビットプレーンデコード結果ｂが必要である。式（１）に示すように、マクロブロックＢ、マクロブロックＣのビットプレーンデコード結果ｂを得るためには、それらの残留値ｒが用いられるため、タイル６およびタイトル７の残留値ビットプレーン復号が終了している必要がある。
【００３０】
ところで、残留値ビットプレーン復号はタイルの符号化順に行われるので、タイル６とタイル７はタイル１より後に残留値ビットプレーン復号されることになる。そのため、タイル６とタイル７の残留値ビットプレーン復号が終わらなければ、マクロブロックＡの差分復元ができない。
【００３１】
このように、差分符号化が用いられるＤｉｆｆ−６モードの場合には、ピクチャ全体の残留値ビットプレーン復号が終了しなければ、差分復元ができないときがある。
【００３２】
特許文献１には、Ｄｉｆｆ−６モードのような差分符号化によって得られたビットプレーンの復号手法が開示されている。この手法は、ピクチャ単位にビットプレーンの再構築を行うものであり、図３６（特許文献１における図２７）に示すように、まず、ステップＳ２７１０において残留ビットプレーンを復号する。この処理は、上述した残留値ビットプレーン復号に相当し、それによって１ピクチャ分のビットプレーンの残留値ｒが得られる。次にステップＳ２７２０において、プレディレクタビットプレーンが求められる。この処理は、上述した式（２）に従って行われ、これによって、１ピクチャ分のビットプレーンの予測値ｐが得られる。そして、上記２つのステップで得られた残留値ｒと予測値ｐを用いて、式（１）に従って差分復元が行われ、ビットプレーンが再構築される（Ｓ２７３０）。
【特許文献１】特表２００５−５１３８８３号公報
【非特許文献１】Ｐｒｏｐｏｓｅｄ  ＳＭＰＴＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  Ｔｅｌｅｖｉｓｉｏｎ：ＶＣ−１  Ｃｏｍｐｒｅｓｓｅｄ  Ｖｉｄｅｏ  Ｂｉｔｓｔｒｅａｍ  Ｆｏｒｍａｔ  ａｎｄ  Ｄｅｃｏｄｉｎｇ  Ｐｒｏｃｅｓｓ，２００５年８月２３日
【発明の開示】
【発明が解決しようとする課題】
【００３３】
特許文献１に記載の手法を実現する装置として、図３７に示す構成が考えられる。図３７に示す装置は、ピクチャレイヤ以下の復号（図３２に示すピクチャヘッダ復号とマクロブロックレイヤ復号）を行うものであり、ピクチャヘッダ復号におけるビットプレーン復号（図３３におけるステップＳ２０５）をビットプレーン差分復号に特化している。なお、ピクチャヘッダ復号におけるビットプレーン復号以外の処理（固定長復号、可変長復号）を担う構成については省略する。
【００３４】
この装置は、残留値ビットプレーン復号部１１、記憶部１２、ピクチャ一括ビットプレーン差分復元部１３、マクロブロックレイヤ復号部１６を有する。残留値ビットプレーン復号部１１は、図３６におけるステップＳ２７１０の処理すなわち残留値ビットプレーン復号を行い、１ピクチャ分の残留値ｒを得て、中間データとして記憶部１２に書き込む。
【００３５】
ピクチャ一括ビットプレーン差分復元部１３は、ビットプレーンデコード結果ｂを得るために、２つの処理すなわち予測値ｐの計算と差分復元を行うものであり、図３８に示すように、予測値計算部１４と差分復元部１５を有する。まず、予測値計算部１４は、式（２）に従ってｉｎｖｅｒｔ値をこのピクチャの左上隅のマクロブロックの予測値ｐ（０，０）として求める。次に、差分復元部１５は、式（１）に従って左上隅のマクロブロックのビットプレーンデコード結果ｂ（０，０）を求める。このビットプレーンデコード結果ｂ（０，０）は、記憶部１２において、ビットプレーンデコード結果ｂを記憶するために割り当てられた領域に書き込まれる。その後、予測値計算部１４と差分復元部１５は、式（１）と式（２）に示す処理を繰り返し実行して１ピクチャ分のマクロブロックのビットプレーンデコード結果ｂを得る。
【００３６】
このようにして得られた１ピクチャ分のビットプレーンデコード結果ｂが得られ、記憶部１２に保存される。
【００３７】
マクロブロックレイヤ復号部１６は、記憶部１２に保存された、ピクチャ一括ビットプレーン差分復元部１３により得られたビットプレーンデコード結果ｂを参照して、マクロブロックレイヤ復号を行って、デコード結果ｍを得る。以下、ビットプレーンデコード結果ｂとの混同を防ぐために、マクロブロックレイヤ復号によって得られたデコード結果ｍをマクロブロックデコード結果ｍという。
【００３８】
図３９は、マクロブロックレイヤ復号部１６の処理を示すフローチャートである。この処理は、図３２におけるステップＳ３００に対応するものであり、図示のように、記憶部１２に保存されたビットプレーンデコード結果ｂを参照して、全てのマクロブロックに対してマクロブロックレイヤの復号が行われる（Ｓ３０１、Ｓ３０２：Ｙｅｓ）。
【００３９】
前述したように、符号化ビットプレーン１９１０がピクチャヘッダ１７０１に含まれるため、ピクチャヘッダ１７０１に含まれている他の情報（ピクチャヘッダ情報１など）と同じように、符号化ビットプレーン１９１０の復号を、ピクチャレイヤすなわちピクチャ単位で行うように考えやすい。
【００４０】
Ｄｉｆｆ−６モードの場合、ピクチャ全体の残留値ビットプレーン復号が終了しなければ、差分復元ができないときがあるので、残留値ビットプレーン復号がピクチャレイヤで行うことは必要である。ここで、残留値ビットプレーン復号の後に、ピクチャ一括ビットプレーン差分復元部１３が、ビットプレーンデコード結果ｂが得られるまでの処理をピクチャ単位で行う場合について考える。この場合、ビットプレーンデコード結果ｂがピクチャ単位で扱われるので、ピクチャ一括ビットプレーン差分復元部１３は、ビットプレーンデコード結果ｂを求める処理を実行するたびに、１ピクチャ分のビットプレーンデコード結果ｂ（まだビットプレーンデコード結果ｂが得られていない位置のビットプレーンデコード結果ｂについては例えばデフォルト値またはビットプレーンデコード結果ｂがまだ無いことを示すフラグが記憶されるとする）の読出しと、新しく求められたビットプレーンデコード結果ｂを加えて得た結果を記憶部１２への書戻しが生じる。
【００４１】
これでは、ピクチャ一括ビットプレーン差分復元部１３と記憶部１２間のデータ伝送量が多いため、ピクチャ一括ビットプレーン差分復元部１３から記憶部１２へのアクセス帯域を大きくとる必要がある。
【課題を解決するための手段】
【００４２】
本発明の一つの態様はビットプレーン復号装置である。この装置は、複数のマクロブロックに分けられたピクチャの各マクロブロックの２値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンがピクチャヘッダに含まれる圧縮画像データに対して、符号化ビットプレーンを復号するビットプレーン復号装置であって、残留値ビットプレーン復号部と、中間データ記憶部と、ビットプレーンマクロブロックレイヤ復号部を備える。
【００４３】
残留値ビットプレーン復号部は、ピクチャレイヤで処理を行うものであり、ビットプレーンについての予測値に基づいて残留値ビットプレーンを生成し、該残留値ビットプレーンを所定の符号化方式で符号化する差分符号化により得られた符号化残留値ビットプレーンに対して残留値ビットプレーンを得るまでの復号を行って復号結果を中間データとして出力する。
【００４４】
中間データ記憶部は、残留値ビットプレーン復号部からの中間データを記憶する。
【００４５】
ビットプレーンマクロブロックレイヤ復号部は、マクロブロックレイヤで処理を行うものであり、中間データ記憶部に記憶された残留値ビットプレーンとなる中間データに対して差分復元を行って最終データを出力する。
【００４６】
本発明の別の態様は、ビットプレーン復号方法である。この方法は、符号化残留値ビットプレーンに対して、残留値ビットプレーンを得るまでの復号をピクチャレイヤで行い、残留値ビットプレーンに含まれた、各マクロブロックについての残留値に対する差分復元をマクロブロックレイヤで行う。
【００４７】
ここで、「ピクチャレイヤで処理を行う」とは、ピクチャ単位に処理することを意味し、「マクロブロックレイヤで処理を行う」とは、マクロブロック単位に処理することを意味する。
【００４８】
なお、上記方法、装置を、システム、プログラムに置き換えたものも、本発明の態様としては有効である。
【発明の効果】
【００４９】
本発明にかかるビットプレーン復号技術によれば、復号処理時のデータ伝送量を抑制することができる。
【発明を実施するための最良の形態】
【００５０】
本発明の具体的な実施の形態を説明する前に、まず本発明による技術の原理について説明する。
【００５１】
図１は、本発明の第１の技術にかかるデータ処理装置１００の構成を示す。このデータ処理装置１００は、ピクチャを複数のマクロブロックに分け、各マクロブロックの２値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンを復号するとともに、マクロブロックレイヤの復号も行う。なお、この符号化ビットプレーンは、ピクチャヘッダに含まれており、差分符号化により得られた符号化残留値ビットプレーンとする。
【００５２】
図１に示すように、データ処理装置１００は、残留値ビットプレーン復号部１０１と、記憶部１０２と、ビットプレーンマクロブロックレイヤ復号部１０３と、マクロブロックレイヤ復号部１０５を備える。データ処理装置１００には、残留値ビットプレーンのビットストリームが入力される。
【００５３】
残留値ビットプレーン復号部１０１は、入力されたビットストリームに対して、残留値ビットプレーンを得るまでの復号を行って復号結果を中間データとして記憶部１０２に出力する。残留値ビットプレーン復号部１０１は、ピクチャレイヤでこの復号を行うものであり、それによって、１ピクチャ分の残留値ｒからなる残留値ビットプレーンが記憶部１０２に書き込まれる。
【００５４】
残留値ビットプレーンは中間データに該当し、記憶部１０２は中間データ記憶部として機能する。
【００５５】
ビットプレーンマクロブロックレイヤ復号部１０３は、マクロブロックレイヤで処理を行うものであり、記憶部１０２に記憶された残留値ｒをマクロブロック毎に読み出して差分復元処理を行う。図２は、ビットプレーンマクロブロックレイヤ復号部１０３の構成を示す。
【００５６】
ビットプレーンマクロブロックレイヤ復号部１０３は、予測値計算部１０６、差分復元部１０７、予測参照データ保存部１０８を有する。
【００５７】
前述したように、１ピクチャ分の残留値ｒから構成される符号化残留値ビットプレーンは、ビットプレーンについての予測値に基づいて残留値ビットプレーンを生成し、残留値ビットプレーンを所定の符号化方式で符号化する差分符号化により得られたものである。
【００５８】
差分復元部１０７は、記憶部１０２から１マクロブロックずつ残留値ｒを読み出して、予測値計算部１０６により得られた予測値ｐと加算してこのマクロブロックのビットプレーンデコード結果ｂを得て、マクロブロックレイヤ復号部１０５とマクロブロックレイヤ復号部１０５に出力する。
【００５９】
予測参照データ保存部１０８は、予測値ｐを計算するための予測参照データを記憶する。この予測参照データは、差分符号化時の符号化方式によって用いるものが異なるが、残留値ｒに対応するマクロブロックの位置によって、既定のデフォルト値や、この位置以外の他の位置のマクロブロックのビットプレーンデコード結果ｂである可能性がある。ある位置のビットプレーンデコード結果ｂを求める際に、この位置より先に処理されることによってそれらのビットプレーンデコード結果ｂが得られているマクロブロックのビットプレーンデコード結果ｂを参照する場合において、予測参照データ保存部１０８は、差分復元部１０７から出力して得たビットプレーンデコード結果ｂを、このビットプレーンデコード結果ｂのマクロブロックより後に処理されるマクロブロックの予測値ｐを得るために必要な期間だけ保存する。
【００６０】
予測値計算部１０６は、予測参照データ保存部１０８に記憶された参照データを用いて該当する位置の予測値ｐを算出して差分復元部１０７に供する。
【００６１】
差分復元部１０７により得られたビットプレーンデコード結果ｂは、逐次マクロブロックレイヤ復号部１０５に出力され、マクロブロックレイヤ復号部１０５は、それを用いてマクロブロックレイヤの復号を行ってマクロブロックデコード結果ｍを得る。
【００６２】
図３は、データ処理装置１００が行う処理の流れを示すフローチャートである。まず、残留値ビットプレーン復号部１０１により符号化残留値ビットプレーンの復号が行われ、１ピクチャ分の残留値ｒから構成される残留値ビットプレーンが得られる（Ｓ１１００）。この残留値ビットプレーンは、中間データとして記憶部１０２に記憶される（Ｓ１１０２）。ここまでの処理は、ピクチャ単位で行われる。
【００６３】
ステップＳ１１０４〜Ｓ１１２２まで、図中点線により囲まれた処理は、マクロブロック単位で行われる。まず、ステップＳ１１０４において、注目マクロブロックについて復号すべきビットプレーンが存在するか否かの確認がビットプレーンマクロブロックレイヤ復号部１０３により行われる。この確認は、注目マクロブロックは、その２値フラグ情報がピクチャヘッダにビットプレーン符号化されており、まだ完全に復号されていないすなわちそのビットプレーンデコード結果ｂがまだ得られていないかの確認である。復号すべきビットプレーンがある（Ｓ１１０４：Ｙｅｓ）と、予測値計算部１０６により予測値ｐが算出される（Ｓ１１０６）。そして、差分復元部１０７により、記憶部１０２から読み出したこのマクロブロックの残留値ｒと予測値ｐの加算が行われ、ビットプレーンデコード結果ｂが得られる（Ｓ１１０８）。このビットプレーンデコード結果ｂは、予測参照データ保存部１０８とマクロブロックレイヤ復号部１０５に出力される（Ｓ１１１０）。
【００６４】
なお、注目マクロブロックについて復号すべきビットプレーンが複数存在する場合には、Ｓ１１０６〜Ｓ１１１０の処理は、それぞれのビットプレーンに対して実行される。
【００６５】
予測参照データ保存部１０８に出力されたビットプレーンデコード結果ｂは、このマクロブロックの後に処理されるマクロブロックの予測値ｐの参照のために予測参照データとして必要な期間だけ保存される。
【００６６】
ビットプレーンマクロブロックレイヤ復号部１０３からマクロブロックレイヤ復号部１０５に出力されたビットプレーンデコード結果ｂは、対応するマクロブロックの符号化要素の復号に用いられる（Ｓ１１２０）。
【００６７】
なお、ステップＳ１１０４において、復号すべきビットプレーンがない場合（Ｓ１１０４：Ｎｏ）には、マクロブロックレイヤ復号部１０５によりビットプレーン符号化されていない符号化要素の復号が行われる（Ｓ１１２０）。
【００６８】
ステップＳ１１０４〜Ｓ１１２０までの処理は、１ピクチャのすべてのマクロブロックに対して行われた（Ｓ１１２２：Ｙｅｓ）ことをもって、このピクチャの処理が終了する。
【００６９】
このように、この第１の技術は、ピクチャヘッダに含まれた、差分符号化されたビットプレーンを復号する際に、ピクチャレイヤにおいて、残留値ビットプレーンを得るまでの復号のみを行い、差分復元をマクロブロックレイヤで行う。そのため、１つのマクロブロックについて差分復元をする際に、中間データである残留値ビットプレーンを記憶した中間データ記憶部へのアクセスが一度で済む上に、一度に読み出すデータの量が少ない。これによってビットプレーンを復号する際のデータ伝送量を減らすことができ、差分復元を担う部分と中間データ記憶部間のアクセス帯域を抑制することができる。
【００７０】
また、差分復元をマクロブロックレイヤで行うことによって、ビットプレーンマクロブロックレイヤ復号部１０３がビットプレーンデコード結果ｂを直接マクロブロックレイヤ復号部１０５に直接出力することができる。これによって、ビットプレーンデコード結果ｂを中間データ記憶部に書き戻す工程、マクロブロックレイヤ復号部１０５がビットプレーンデコード結果ｂを読み出す工程を減らすことができ、効率が良い。
【００７１】
なお、図１に示すデータ処理装置１００において、ビットプレーンマクロブロックレイヤ復号部１０３の予測値計算部１０６が用いるデフォルト値が予測参照データ保存部１０８に記憶されるようになっているが、このデフォルト値は、予測値計算部１０６に保持されるようにしてもよい。また、デフォルト値は、補助データとして他のフラグ情報とともにピクチャヘッダにビットプレーン復号されている場合には、残留値ビットプレーン復号部１０１による復号処理の際に、この補助データも復号して予測値計算部１０６に供するようにしてもよい。
【００７２】
前述したように、差分符号化は、ビットプレーンについての予測値に基づいて残留値ビットプレーンを生成し、残留値ビットプレーンを所定の符号化方式で符号化する。同じ差分符号化でも、残留値ビットプレーンを符号化する際の符号化方式が様々ある。本発明の第１の技術は、複数たとえば２つの異なる符号化方式でそれぞれ得られた符号化残留値ビットプレーンに対応する必要のあるシステムにも適用することができ、データ伝送量を減らすとともに、ハードウェアの規模を抑制することができる。
【００７３】
図４は、たとえばこのような２種類の残留値ビットプレーンを処理対象とした場合に、図１に示すデータ処理装置１００の代わりに用いるデータ処理装置１００ａの構成を示す。データ処理装置１００ａにおいて、残留値ビットプレーン復号部１０１の代わりにビットプレーンピクチャレイヤ復号部１０１ａを用いた以外、他の各構成は、データ処理装置１００における相対応する構成と同じであるので、ここで、ビットプレーンピクチャレイヤ復号部１０１ａについてのみ説明する。
【００７４】
図４に示すように、ビットプレーンピクチャレイヤ復号部１０１ａは、第１の残留値ビットプレーン復号部１０９ａと、第２の残留値ビットプレーン復号部１０９ｂを有する。これらは、異なる符号化方式にそれぞれ対応し、自身が対応する符号化方式で符号化された残留値ビットプレーンに対して、残留値ビットプレーンを得るまでの復号を行う。
【００７５】
複数の異なる符号化方式でそれぞれ得られた符号化残留値ビットプレーンについて、残留値ビットプレーンを得るまでの処理が異なるが、差分復元処理が同じであるため、こうすることによって、符号化方式が異なる差分符号化ビットプレーンについて、マクロブロックレイヤで差分復元を担う処理部を兼用することができ、回路サイズを小さくすることができる。
【００７６】
図５は、本発明の第２の技術にかかるデータ処理装置２００の構成を示す。このデータ処理装置２００は、ピクチャを複数のマクロブロックに分け、各マクロブロックの２値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンを復号するとともに、マクロブロックレイヤの復号も行う。また、この符号化ビットプレーンは、ピクチャヘッダに含まれており、差分符号化により得られた符号化残留値ビットプレーンと、非差分符号化により得られた非差分符号化ビットプレーンのいずれであり、データ処理装置２００は、この２つの符号化ビットプレーンを処理可能である。なお、符号化ビットプレーンには、この符号化ビットプレーンが差分符号化と非差分符号化のいずれにより符号化されたかを示す補助データが含まれている。
【００７７】
図５に示すように、データ処理装置２００は、ビットプレーンピクチャレイヤ復号部２０１と、記憶部２１０と、ビットプレーンマクロブロックレイヤ復号部２２０と、マクロブロックレイヤ復号部２３０を備える。データ処理装置２００には、符号化残留値ビットプレーンと非差分符号化ビットプレーンのいずれかであるビットストリームが入力される。
【００７８】
図６は、ビットプレーンピクチャレイヤ復号部２０１の構成を示す。ビットプレーンピクチャレイヤ復号部２０１は、ピクチャレイヤで処理を行うものであり、ビットプレーン補助データ復号部２０２と、残留値ビットプレーン復号部２０３と、非差分符号化ビットプレーン復号部２０４と、選択部２０５を有する。
【００７９】
ビットプレーン補助データ復号部２０２は、入力されたビットストリームに対して、補助データを復号して、選択部２０５とビットプレーンマクロブロックレイヤ復号部２２０に供する。ここで補助データは、入力された符号化ビットプレーンが差分符号化により符号化されたものか、非差分符号化により符号化されたものを示すものである。
【００８０】
残留値ビットプレーン復号部２０３と非差分符号化ビットプレーン復号部２０４は、符号化ビットプレーンに対してそれぞれ復号して復号結果を得て選択部２０５に出力する。残留値ビットプレーン復号部２０３は、図１に示す残留値ビットプレーン復号部１０１と同じであるので、ここで詳細な説明を省略する。符号化ビットプレーンが残留値ビットプレーンであるときに、残留値ビットプレーン復号部２０３により得られた復号結果は残留値ビットプレーンである。また、符号化ビットプレーンが非差分符号化ビットプレーンであるときに、非差分符号化ビットプレーン復号部２０４により得られた復号結果はビットプレーンである。
【００８１】
選択部２０５は、補助データに基づいて、残留値ビットプレーン復号部２０３と非差分符号化ビットプレーン復号部２０４のいずれかの出力を中間データとして選択して、中間データ記憶部として機能する記憶部２１０に出力する。具体的には、補助データが、符号化ビットプレーンが差分符号化により符号化されたものであることを示すときには残留値ビットプレーン復号部２０３の復号結果を選択して出力し、補助データが、符号化ビットプレーンが非差分符号化により符号化されたものであることを示すときには非差分符号化ビットプレーン復号部２０４の復号結果を選択して出力する。
【００８２】
図７は、ビットプレーンマクロブロックレイヤ復号部２２０の構成を示す。ビットプレーンマクロブロックレイヤ復号部２２０は、マクロブロックレイヤで処理を行うものであり、予測値計算部２２１と、差分復元部２２２と、セレクタ２２３と、予測参照データ保存部２２４を有する。予測値計算部２２１と、差分復元部２２２は、図１に示すビットプレーンマクロブロックレイヤ復号部１０３における相対応する構成と同じであるので、ここで詳細な説明を省略する。
【００８３】
差分復元部２２２の処理結果は、セレクタ２２３に入力される。また、セレクタ２２３には、記憶部２１０に記憶された中間データのうちの、注目マクロブロックの中間データと、補助データも入力される。セレクタ２２３は、補助データに基づいて、補助データが差分符号化を示すときに、差分復元部２２２からの出力をビットプレーンデコード結果ｂとして出力する一方、補助データが非差分符号化を示すときに、中間データそのものをビットプレーンデコード結果ｂとして出力する。なお、ビットプレーンデコード結果ｂは予測参照データ保存部２２４にも出力される。
【００８４】
マクロブロックレイヤ復号部２３０は、ビットプレーンマクロブロックレイヤ復号部２２０から出力されてきたビットプレーンデコード結果ｂを用いてマクロブロックレイヤの復号をし、その処理は図１に示すマクロブロックレイヤ復号部１０５による処理と同じであるので、ここで詳細な説明を省略する。
【００８５】
図８は、図５に示すデータ処理装置２００が行う処理の流れを示すフローチャートである。まず、ビットプレーンピクチャレイヤ復号部２０１によるピクチャレイヤでの処理が行われる（Ｓ１２００〜Ｓ１２０４）。具体的には、まず、補助データが復号される（Ｓ１２００）。符号化ビットプレーンが差分符号化により得られた符号化残留値ビットプレーンである場合には、残留値ビットプレーン復号部２０３により残留値ビットプレーンが得られるまでの復号が行われる（Ｓ１２０２：Ｙｅｓ、Ｓ１２０３）。一方、符号化ビットプレーンが非差分符号化により得られた非差分符号化ビットプレーンである場合には、非差分符号化ビットプレーン復号部２０４により復号が行われ、完全に復号されたビットプレーンが得られる（Ｓ１２０２：Ｎｏ、Ｓ１２０４）。
【００８６】
ビットプレーンピクチャレイヤ復号部２０１の復号結果は、ピクチャ単位で記憶部２１０に記憶される（Ｓ１２０８）。
【００８７】
ステップＳ１２１０からの処理は、マクロブロックレイヤで行われる。
まず、ステップＳ１２１０において、注目マクロブロックについて復号すべきビットプレーンが存在するか否かの確認がビットプレーンマクロブロックレイヤ復号部２２０により行われる。この確認は、注目マクロブロックは、その２値フラグ情報がビットプレーン符号化されているか否かの確認である。復号すべきビットプレーンがある（Ｓ１２１０：Ｙｅｓ）場合には、予測値計算部２２１により注目マクロブロックに対する予測値ｐが算出され、差分復元部２２２により、中間データと予測値ｐの排他的論理和演算が行われる（Ｓ１２１１、Ｓ１２１２）。
【００８８】
セレクタ２２３は、補助データが差分符号化と非差分符号化のいずれを示すかによって異なる処理が行われる。具体的には、補助データが非差分符号化を示す場合には、注目マクロブロックの中間データをそのままビットプレーンデコード結果ｂとして出力する（Ｓ１２１３：Ｎｏ、Ｓ１２１５）一方、補助データが差分符号化を示す場合には、差分復元部２２２の演算結果をビットプレーンデコード結果ｂとして出力する（Ｓ１２１３：Ｙｅｓ、Ｓ１２１４）。
【００８９】
なお、注目マクロブロックについて復号すべきビットプレーンが複数存在する場合には、Ｓ１２１１〜Ｓ１２１５の処理は、それぞれのビットプレーンに対して実行される。
【００９０】
ビットプレーンマクロブロックレイヤ復号部２２０のセレクタ２２３からマクロブロックレイヤ復号部２３０に出力されたビットプレーンデコード結果ｂは、対応するマクロブロックの符号化要素の復号に用いられる（Ｓ１２１６）。
【００９１】
なお、ステップＳ１２１０において、復号すべきビットプレーンがない場合（Ｓ１２１０：Ｎｏ）には、マクロブロックレイヤ復号部２３０によりビットプレーン符号化されていない符号化要素の復号が行われる（Ｓ１２１６）。
【００９２】
ステップＳ１２１０〜Ｓ１２１６までの処理は、１ピクチャのすべてのマクロブロックに対して行われた（Ｓ１２１７：Ｙｅｓ）ことをもって、このピクチャの処理が終了する。
【００９３】
このように、この第２の技術も、ピクチャヘッダに含まれた、差分符号化されたビットプレーンを復号する際に、ピクチャレイヤにおいては、残留値ビットプレーンを得るまでの復号のみを行い、差分復元をマクロブロックレイヤで行う。そのため、図１に示すデータ処理装置１００と同じ効果を得ることができる。
【００９４】
さらに、データ処理装置２００は、差分符号化により得られた符号化残留値ビットプレーンと非差分符号化により得られた非差分符号化ビットプレーンのビットプレーンデコード結果ｂを同じくマクロブロックレイヤで取得して出力している。これによって、符号化残留値ビットプレーンと非差分符号化ビットプレーンのいずれにも対応する必要のあるシステムにおいて、２種類のビットプレーンに対して同じマクロブロックレイヤ復号部を用いることができる。そのため、ハードウェアの規模を抑制することができる。
【００９５】
前述したように、差分符号化は、ビットプレーンについての予測値に基づいて残留値ビットプレーンを生成し、残留値ビットプレーンを所定の符号化方式で符号化する。非差分符号化は、残留値ではなく、ビットプレーンそのものを符号化する。非差分符号化する際に用いる符号化方式は、残留値ビットプレーンを符号化するときに用いる符号化方式と同じである可能性がある。本発明の第２の技術は、符号化残留値ビットプレーンと、この符号化残留値ビットプレーンの符号化方式と同じ符号化方式で非差分符号化したビットプレーンの両方に対応する必要のあるシステムにも適用することができ、さらにハードウェアの規模を抑制することができる。
【００９６】
図９は、この２種類の符号化ビットプレーンを処理対象とした場合に、図５に示すデータ処理装置２００におけるビットプレーンピクチャレイヤ復号部２０１の代わりに用いるビットプレーンピクチャレイヤ復号部２０１ａの構成を示す。
【００９７】
ビットプレーンピクチャレイヤ復号部２０１ａは、ビットプレーン補助データ復号部２０２ａと、ビットプレーンデータビット復号部２０３ａを有する。
【００９８】
ビットプレーン補助データ復号部２０２ａは、図６に示すビットプレーンピクチャレイヤ復号部２０１のビットプレーン補助データ復号部２０２と同じである。
【００９９】
ビットプレーンデータビット復号部２０３ａは、入力されたビットプレーンを復号する。ここで、符号化残留値ビットプレーンと非差分符号化残留値ビットプレーンが同じ符号化方式で符号化されたものであり、残留値ビットプレーン復号部２０３は、いずれの符号化ビットプレーンに対しても同じ処理をする。これによって、符号化残留値ビットプレーンから得られた中間データは残留値ビットプレーンであり、非差分符号化ビットプレーンから得られた中間データは、完全に復号されたビットプレーンである。
【０１００】
これは、残留値ビットプレーンの符号化方式と、非差分符号化ビットプレーンの符号化方式とが同じであることに着目し、２種類のビットプレーンに対して、ビットプレーンピクチャレイヤ復号部を兼用する。それによってさらに回路サイズを小さくすることができる。
【０１０１】
なお、データ処理装置２００において、ビットプレーンマクロブロックレイヤ復号部２２０の予測値計算部２２１が用いるデフォルト値が予測参照データ保存部２２４に記憶されるようになっているが、このデフォルト値は、予測値計算部２２４に保持されるようにしてもよい。また、デフォルト値は、補助データとして他のフラグ情報とともにピクチャヘッダにビットプレーン復号されている場合には、ビットプレーンピクチャレイヤ復号部２０１のビットプレーン補助データ復号部２０２による復号処理の際に、この補助データも復号して予測値計算部２２４に供するようにしてもよい。
【０１０２】
図１０は、本発明の第３の技術にかかるデータ処理装置３００の構成を示す。このデータ処理装置３００は、ピクチャを複数のマクロブロックに分け、各マクロブロックの２値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンを復号するとともに、マクロブロックレイヤの復号も行う。また、この符号化ビットプレーンは、ピクチャヘッダに含まれており、差分符号化により得られた符号化残留値ビットプレーンと、非差分符号化により得られた非差分符号化ビットプレーンのいずれであり、データ処理装置３００は、この２つの符号化ビットプレーンを処理可能である。さらに、データ処理装置３００が対象とする非差分符号化ビットプレーンは、元のビットプレーンに対してビットの条件反転を行ってから符号化したものであり、符号化条件反転ビットプレーンである。なお、符号化ビットプレーンには、この符号化ビットプレーンが差分符号化と非差分符号化のいずれにより符号化されたか、および非差分符号化の場合において符号化時にビット反転したか否かを示す補助データが含まれている。なお、ビット反転したか否かを示す補助データを以下反転ビットという。
【０１０３】
図１０に示すように、データ処理装置３００は、ビットプレーンピクチャレイヤ復号部３０１と、記憶部３１０と、ビットプレーンマクロブロックレイヤ復号部３２０と、マクロブロックレイヤ復号部３３０を備える。データ処理装置３００には、符号化残留値ビットプレーンと符号化反転ビットプレーンのいずれかであるビットストリームが入力される。
【０１０４】
図１１は、ビットプレーンピクチャレイヤ復号部３０１の構成を示す。ビットプレーンピクチャレイヤ復号部３０１は、ピクチャレイヤで処理を行うものであり、ビットプレーン補助データ復号部３０２と、残留値ビットプレーン復号部３０３と、非差分符号化ビットプレーン復号部３０４と、選択部３０６を有する。
【０１０５】
ビットプレーン補助データ復号部３０２は、入力されたビットストリームに対して、補助データを復号して、ビットプレーンマクロブロックレイヤ復号部３２０および選択部３０６に供する。ここで補助データは、入力されたビットプレーンが差分符号化により符号化されたものか、非差分符号化により符号化されたものを示すもの、および反転ビットである。なお、非差分符号化ビットプレーンは符号化条件反転ビットプレーンであるため、非差分符号化ビットプレーンであることを示す補助データは符号化条件反転ビットプレーンであることも示すことになる。
【０１０６】
残留値ビットプレーン復号部３０３と非差分符号化ビットプレーン復号部３０４は、符号化ビットプレーンに対してそれぞれ復号して復号結果を得て選択部３０６に出力する。残留値ビットプレーン復号部３０３は、図１に示す残留値ビットプレーン復号部１０１と同じであるので、ここで詳細な説明を省略する。符号化ビットプレーンが残留値ビットプレーンであるときに、残留値ビットプレーン復号部３０３により得られた復号結果は残留値ビットプレーンである。また、符号化ビットプレーンが非差分符号化ビットプレーンであるときに、非差分符号化ビットプレーン復号部３０４により得られた復号結果は条件反転ビットプレーンである。
【０１０７】
選択部３０６は、補助データに基づいて、残留値ビットプレーン復号部３０３と非差分符号化ビットプレーン復号部３０４のいずれかの出力を中間データとして選択して、中間データ記憶部として機能する記憶部３１０に出力する。具体的には、補助データが、符号化ビットプレーンが差分符号化により符号化されたものであることを示すときには残留値ビットプレーン復号部３０３の復号結果を選択して出力し、補助データが、符号化ビットプレーンが非差分符号化により符号化されたものであることを示すときには非差分符号化ビットプレーン復号部３０４の復号結果を選択して出力する。
【０１０８】
図１２は、ビットプレーンマクロブロックレイヤ復号部３２０の構成を示す。ビットプレーンマクロブロックレイヤ復号部３２０は、マクロブロックレイヤで処理を行うものであり、セレクタ３２２と、予測参照データ保存部３２３と、予測値計算部３２４と、排他的論理和演算部３２５を有する。
【０１０９】
予測値計算部３２４と予測参照データ保存部３２３は、図１に示すビットプレーンマクロブロックレイヤ復号部１０３における相対応する構成と同じであるので、ここで詳細な説明を省略する。
【０１１０】
セレクタ３２２には、予測値計算部３２４により得られた予測値ｐと、ビットプレーンピクチャレイヤ復号部３０１により得られた補助データが入力される。セレクタ３２２は、補助データに基づいて、補助データが差分符号化を示すときには予測値ｐを排他的論理和演算部３２５に出力する一方、補助データが非差分符号化を示すときには反転ビットを排他的論理和演算部３２５に出力する。
【０１１１】
排他的論理和演算部３２５は、セレクタ３２２の出力と、このマクロブロックの中間データとに対して排他的論理和演算を行ってビットプレーンデコード結果ｂを得る。このビットプレーンデコード結果ｂは、マクロブロックレイヤ復号部３３０と予測参照データ保存部３２３に出力される。
【０１１２】
すなわち、中間データが残留値である場合には、排他的論理和演算部３２５により残留値と予測値ｐの排他的論理和演算が行われる。この排他的論理和演算は差分復元に該当し、それによってマクロブロックのビットプレーンデコード結果ｂが得られる。
【０１１３】
一方、中間データが条件反転ビットプレーンのデータである場合には、排他的論理和演算部３２５により中間データと反転ビットの排他的論理和演算が行われる。この排他的論理和演算はビットの条件反転に該当し、それによってマクロブロックのビットプレーンデコード結果ｂが得られる。
【０１１４】
条件反転符号化は、ビットプレーンの構成などの条件に応じて符号化前に反転するか否かを決めて符号化し、符号化されたビットプレーンにはこの符号化ビットプレーンが符号化前に反転されたか否かを示す反転ビットが含まれている。この反転ビットは、たとえばＶＣ−１方式におけるＩｎｖｅｒｔ値のように１と０で反転するか否かを示す１ビットである。補助データが非差分符号化を示す場合において、セレクタ３２２よりこの反転ビットが排他的論理和演算部３２５に入力されることによって、非差分符号化ビットプレーンから得た中間データは、符号化される前に反転された場合にはビット反転され、符号化される前にビット反転されていない場合にはビット反転されないことになる。
【０１１５】
マクロブロックレイヤ復号部３３０は、ビットプレーンマクロブロックレイヤ復号部３２０から出力されてきたビットプレーンデコード結果ｂを用いてマクロブロックレイヤの復号をし、図１に示すマクロブロックレイヤ復号部１０５と同じであるので、ここで詳細な説明を省略する。
【０１１６】
図１３は、図１０に示すデータ処理装置３００が行う処理の流れを示すフローチャートである。まず、ビットプレーンピクチャレイヤ復号部３０１によるピクチャレイヤでの処理が行われる（Ｓ１３００〜Ｓ１３０４）。具体的には、まず、補助データが復号される（Ｓ１３００）。符号化ビットプレーンが差分符号化により得られた符号化残留値ビットプレーンである場合には、残留値ビットプレーン復号部３０３により残留値ビットプレーンが得られるまでの復号が行われる（Ｓ１３０２：Ｙｅｓ、Ｓ１３０３）。一方、符号化ビットプレーンが非差分符号化により得られた符号化条件反転ビットプレーンである場合には、非差分符号化ビットプレーン復号部３０４により条件反転ビットプレーンが得られるまでの復号が行われる（Ｓ１３０２：Ｎｏ、Ｓ１３０４）。
【０１１７】
ビットプレーンピクチャレイヤ復号部３０１の復号結果は、ピクチャ単位で記憶部３１０に記憶される（Ｓ１３０８）。
【０１１８】
ステップＳ１３１０からの処理は、マクロブロックレイヤで行われる。
【０１１９】
まず、ステップＳ１３１０において、注目マクロブロックについて復号すべきビットプレーンが存在するか否かの確認がビットプレーンマクロブロックレイヤ復号部３２０により行われる。この確認は、注目マクロブロックは、その２値フラグ情報がビットプレーン符号化されているか否かの確認である。復号すべきビットプレーンがある（Ｓ１３１０：Ｙｅｓ）場合には、予測値計算部３２４により注目マクロブロックについての予測値ｐが算出される（Ｓ１３１１）。そして、セレクタ３２２により、補助データが非差分符号化を示す場合には反転ビットが出力され（Ｓ１３１２：Ｎｏ、Ｓ１３１４）、補助データが差分符号化を示す場合には予測値ｐが出力される（Ｓ１３１２：Ｙｅｓ、Ｓ１３１３）。
【０１２０】
排他的論理和演算部３２５において、セレクタ３２２の出力と中間データの排他的論理和演算が行われ、注目マクロブロックのビットプレーンデコード結果ｂが得られる（Ｓ１３１５）。このビットプレーンデコード結果ｂは、予測参照データ保存部３２３とマクロブロックレイヤ復号部３３０に出力される（Ｓ１３１６）。
【０１２１】
なお、注目マクロブロックについて復号すべきビットプレーンが複数存在する場合には、Ｓ１３１１〜Ｓ１３１６の処理は、それぞれのビットプレーンに対して実行される。
【０１２２】
ビットプレーンマクロブロックレイヤ復号部３２０からマクロブロックレイヤ復号部３３０に出力されたビットプレーンデコード結果ｂは、対応するマクロブロックの符号化要素の復号に用いられる（Ｓ１３１７）。
【０１２３】
なお、ステップＳ１３１０において、復号すべきビットプレーンがない場合（Ｓ１３１０：Ｎｏ）には、マクロブロックレイヤ復号部３３０によりビットプレーン符号化されていない符号化要素の復号が行われる（Ｓ１３１７）。
【０１２４】
ステップＳ１３１０〜Ｓ１３１７までの処理は、１ピクチャのすべてのマクロブロックに対して行われた（Ｓ１３１８：Ｙｅｓ）ことをもって、このピクチャの処理が終了する。
【０１２５】
このように、この第３の技術も、ピクチャヘッダに含まれた、差分符号化されたビットプレーンを復号する際に、ピクチャレイヤにおいては、残留値ビットプレーンを得るまでの復号のみを行い、差分復元をマクロブロックレイヤで行う。そのため、図１に示すデータ処理装置１００と同じ効果を得ることができる。
【０１２６】
また、データ処理装置３００は、符号化条件反転ビットプレーンを復号する際に、ピクチャレイヤにおいては、条件反転ビットプレーンを得るまでの復号のみを行い、ビットの条件反転をマクロブロックレイヤで行う。そのため、１つのマクロブロックについてビットの条件反転をする際に、中間データである条件反転ビットプレーンを記憶した中間データ記憶部へのアクセスが一度で済む上に、一度に読み出すデータの量が少ない。これによってビットプレーンを復号する際のデータ伝送量を減らすことができ、ビットの条件反転を担う部分と中間データ記憶部間のアクセス帯域を抑制することができる。
【０１２７】
また、ビットの条件反転をマクロブロックレイヤで行うことによって、ビットプレーンマクロブロックレイヤ復号部３２０がビットプレーンデコード結果ｂを直接マクロブロックレイヤ復号部３３０に直接出力することができる。これによって、ビットの条件反転を行う際におけるビットプレーンデコード結果ｂを中間データ記憶部に書き戻す工程、マクロブロックレイヤ復号部３３０がビットプレーンデコード結果ｂを読み出す工程を減らすことができ、効率が良い。
【０１２８】
また、データ処理装置３００は、差分復元処理が予測値と残留値の排他的論理和演算であり、ビットの条件反転処理が条件反転ビットプレーンのデータと反転ビットの排他的論理和演算であることに着目して、符号化残留値ビットプレーンと符号化条件反転ビットプレーンを復号する際のビットプレーンマクロブロックレイヤ復号部を共有させることを実現している。これにより回路のサイズダウンを図ることができる。
【０１２９】
さらに、データ処理装置３００は、差分符号化により得られた符号化残留値ビットプレーンと非差分符号化により得られた符号化条件反転ビットプレーンのビットプレーンデコード結果ｂを同じくマクロブロックレイヤで取得して出力している。そのため、これによって、符号化残留値ビットプレーンと符号化条件反転ビットプレーンのいずれにも対応する必要のあるシステムにおいて、２種類のビットプレーンに対して同じマクロブロックレイヤ復号部を用いることができる。そのため、ハードウェアの規模を抑制することができる。
【０１３０】
なお、データ処理装置３００において、ビットプレーンマクロブロックレイヤ復号部３２０の予測値計算部３２４が用いるデフォルト値が予測参照データ保存部３２３に記憶されるようになっているが、このデフォルト値は、予測値計算部３２４に保持されるようにしてもよい。また、デフォルト値は、補助データの一部として他のフラグ情報とともにピクチャヘッダにビットプレーン復号されている場合には、ビットプレーンピクチャレイヤ復号部３０１のビットプレーン補助データ復号部３０２による復号処理の際に、この補助データも復号して予測値計算部３２４に供するようにしてもよい。
【０１３１】
前述したように、条件反転符号化は、ビットプレーンに対してビットの条件反転を行って条件反転ビットプレーンを生成し、条件反転ビットプレーンを所定の符号化方式で符号化する。同じ条件反転符号化でも、条件反転ビットプレーンを符号化する際の符号化方式が様々ある。本発明の第３の技術は、符号化残留値ビットプレーンと、複数たとえば２つの異なる符号化方式でそれぞれ得られた符号化条件反転ビットプレーンに対応する必要のあるシステムにも適用することができ、さらにハードウェアの規模を抑制することができる。
【０１３２】
図１４は、この３種類の符号化ビットプレーンを処理対象とした場合に、図１０に示すデータ処理装置３００におけるビットプレーンピクチャレイヤ復号部３０１の代わりに用いるビットプレーンピクチャレイヤ復号部３０１ａの構成を示す。
【０１３３】
ビットプレーンピクチャレイヤ復号部３０１ａは、ビットプレーン補助データ復号部３０２ａと、残留値ビットプレーン復号部３０３ａ、第１の非差分符号化ビットプレーン復号部３０４ａと、第２の非差分符号化ビットプレーン復号部３０５ａを有する。
【０１３４】
ビットプレーン補助データ復号部３０２ａは、図１１に示すビットプレーンピクチャレイヤ復号部３０１のビットプレーン補助データ復号部３０２と同じである。
【０１３５】
残留値ビットプレーン復号部３０３ａは、図１１に示すビットプレーンピクチャレイヤ復号部３０１の残留値ビットプレーン復号部３０３と同じであり、符号化残留値ビットプレーンに対して、残留値ビットプレーンを得るまでの復号を行う。
【０１３６】
第１の非差分符号化ビットプレーン復号部３０４ａと第２の非差分符号化ビットプレーン復号部３０５ａは、異なる符号化方式にそれぞれ対応し、自身が対応する符号化方式で符号化された条件反転ビットプレーンに対して条件反転ビットプレーンを得るまでの復号を行う。
【０１３７】
複数の異なる符号化方式でそれぞれ得られた符号化条件反転ビットプレーンについて、条件反転ビットプレーンを得るまでの処理が異なるが、条件反転ビットプレーンに対するビットの条件反転処理が同じであるため、こうすることによって、マクロブロックレイヤでビットの条件反転を行う処理部を兼用することができ、回路サイズを小さくすることができる。
【０１３８】
以上、本発明による復号技術の原理について説明した。これらの技術は、単独に用いてもそれぞれの効果を発揮し、組み合わせてもよい。
【０１３９】
次に、上述した原理を具現化したシステムについて説明する。
図１５は、本発明の復号技術をＶＣ−１のビットプレーンの復号に適用したＶＣ−１復号装置５００を示す。ＶＣ−１復号装置５００は、ＶＣ−１方式の圧縮データに含まれるビットプレーンを復号するとともに、マクロブロックレイヤの復号も行う。前述したように、ＶＣ−１方式におけるビットプレーンの符号化は、モードにより表される複数の方法に分けられる。これらのモードは、ｒａｗモード、ノーマル２モード、Ｄｉｆｆ−２モード、ノーマル６モード、Ｄｉｆｆ−６モード、行スキップモード、列スキップモードがある。図３０に示すように、ＶＣ−１方式の符号化ビットプレーン１９１０には、このビットプレーンがいずれのモードで符号化されたかを示すＩＭＯＤＥ２１０２と、反転ビット２１０１（以下Ｉｎｖｅｒｔ値ともいう）が含まれている。Ｉｎｖｅｒｔ値２１０１は、Ｄｉｆｆ−２モードとＤｉｆｆ−６モードでは、予測値を計算するときのデフォルト値として用いられ、他のモード（ｒａｗモードを除く）では、デコードの結果を反転するか否かを示す値として用いられる。具体的にはＩｎｖｅｒｔ値が１であるときには反転することを意味し、０であるときには反転しないことを意味する。ｒａｗモードでは、マクロブロックの情報が、マクロブロックレイヤで１ビットずつ符号化され、ビットプレーンの符号化が行われない。この場合、ＩＭＯＤＥ２１０２の後にデータビット２１０３が無い。
【０１４０】
ＶＣ−１復号装置５００は、ビットプレーンピクチャレイヤ復号部４００と、記憶部５１０と、ビットプレーンマクロブロックレイヤ復号部５２０と、マクロブロックレイヤ復号部５３０を備える。ＶＣ−１復号装置５００には、上述した７種類のいずれかの符号化方法による符号化ビットプレーンであるビットストリームが入力される。
【０１４１】
図１６は、ビットプレーンピクチャレイヤ復号部４００の構成を示す。ビットプレーンピクチャレイヤ復号部４００は、ピクチャレイヤで処理を行うものであり、ＩＮＶＥＲＴ値復号部４０１と、符号化モード復号部４０２と、Ｎｏｒｍ−２／Ｄｉｆｆ−２復号部４０３と、Ｎｏｒｍ−６／Ｄｉｆｆ−６復号部４０４と、行スキップ復号部４０５と、列スキップ復号部４０６と、第一のセレクタ４１０と、ＸＯＲ４１１と、第二のセレクタ４１３を備える。
【０１４２】
ＩＮＶＥＲＴ値復号部４０１と符号化モード復号部４０２は、ＶＣ−１の符号化ビットプレーンにおける補助データに該当するＩＮＶＥＲＴ値と符号化モード（以下ＩＭＯＤＥともいう）をそれぞれ復号する。
【０１４３】
Ｎｏｒｍ−２／Ｄｉｆｆ−２復号部４０３は、ノーマル２モードとＤｉｆｆ−２モードで符号化されたビットプレーンに対して途中までの復号を行う。ノーマル２モードは条件反転符号化モードであり、このモードでは、ＩＮＶＥＲＴ値に応じてビットプレーンを反転してから符号化するかそのまま符号化し、それによって得られた符号化ビットプレーンは、以下符号化条件反転ビットプレーンという。また、Ｄｉｆｆ−２モードは差分符号化モードであり、このモードでは、残留値ビットプレーンに対して符号化する。この２つの符号化モードでは、符号化方式が同じであるため、Ｎｏｒｍ−２／Ｄｉｆｆ−２復号部４０３は、この２つのモードの符号化ビットプレーンに対して、その符号化方式に対応した復号処理を行って、条件反転ビットプレーンと残留値ビットプレーンをそれぞれ得る。
【０１４４】
Ｎｏｒｍ−６／Ｄｉｆｆ−６復号部４０４は、ノーマル６モードとＤｉｆｆ−６モードで符号化されたビットプレーンに対して途中までの復号を行う。Ｎｏｒｍ−６／Ｄｉｆｆ−６復号部４０４は、この２つのモードの符号化ビットプレーンについて、条件反転ビットプレーンと残留値ビットプレーンをそれぞれ得る。
【０１４５】
行スキップ復号部４０５と列スキップ復号部４０６は、行スキップモードと列スキップモードにそれぞれ対応し、この２つのモードの符号化ビットプレーンに対して途中までの復号を行う。行スキップモードと列スキップモードも、条件反転符号化モードであるため、行スキップ復号部４０５と列スキップ復号部４０６により得られた復号結果は、条件反転ビットプレーンである。
【０１４６】
第一のセレクタ４１０には、符号化モード復号部４０２により復号されたＩＭＯＤＥが入力される。第一のセレクタ４１０は、４つの復号部から、ＩＭＯＤＥにより示される符号化モードに対応した復号部の出力を選択してＸＯＲ４１１と第二のセレクタ４１３に出力する。
【０１４７】
ＸＯＲ４１１は、排他的論理和演算を行うものであり、第一のセレクタ４１０からの出力と、ＩＮＶＥＲＴ値復号部４０１より得られたＩｎｖｅｒｔ値に対して排他的論理演算を行って、演算の結果を第二のセレクタ４１３に出力する。
【０１４８】
第二のセレクタ４１３は、符号化モード復号部４０２より得られたＩＭＯＤＥに基づいて、ＸＯＲ４１１の出力と第一のセレクタ４１０の出力のいずれかを選択して中間データとして記憶部５１０に出力する。具体的には、ＩＭＯＤＥが条件反転符号化モード（行スキップモード、列スキップモード、ノーマル２モード、ノーマル６モード）を示す場合にはＸＯＲ４１１の演算結果を、ＩＭＯＤＥが差分符号化モード（Ｄｉｆｆ−２モード、Ｄｉｆｆ−６モード）を示す場合には第一のセレクタ４１０の出力を選択する。
【０１４９】
すなわち、差分符号化ビットプレーンに対して、残留値ビットプレーンが中間データとして記憶部５１０に出力され、符号化条件反転ビットプレーンに対しては、条件反転ビットプレーンが得られた後にさらに条件反転処理が施され、その結果ビットプレーンデコード結果ｂが中間データとして記憶部５１０に出力される。
【０１５０】
中間データ記憶部として機能する記憶部５１０は、第二のセレクタ４１３の出力を記憶する。
【０１５１】
図１７は、ビットプレーンマクロブロックレイヤ復号部５２０の構成を示す。ビットプレーンマクロブロックレイヤ復号部５２０は、マクロブロックレイヤで処理を行うものであり、予測値計算部５２２と、差分復元部５２３と、ラインバッファ５２４と、セレクタ５２５を有する。
【０１５２】
予測値計算部５２２にはＩｎｖｅｒｔ値が入力される。予測値計算部５２２は、このＩｎｖｅｒｔ値を１つ目のマクロブロックについての予測値ｐとして得る。その他の位置のマクロブロックについてはラインバッファ５２４に記憶された参照データのうちの、該当するマクロブロックの上隣と左隣のデータ（それらに詳細については後述する）を用いて予測値ｐを計算する。
【０１５３】
差分復元部５２３は、記憶部５１０から中間データを１マクロずつ読み出して、予測値ｐと排他的論理和演算して差分復元処理を行う。
【０１５４】
セレクタ５２５は、ＩＭＯＤＥに応じて、差分復元部５２３の出力と、中間データとのいずれかを選択してビットプレーンデコード結果ｂとして出力する。具体的には、ＩＭＯＤＥが差分符号化モード（Ｄｉｆｆ−２モードまたはＤｉｆｆ−６モード）を示すときには差分復元部５２３の出力を出力し、ＩＭＯＤＥが条件反転符号化モードを示すときには中間データをビットプレーンデコード結果ｂとして出力する。
【０１５５】
ビットプレーンデコード結果ｂは、マクロブロックレイヤ復号部５３０に出力されるとともに、ラインバッファ５２４にも出力される。
【０１５６】
ラインバッファ５２４は、既にビットプレーンデコード結果ｂが得られたマクロブロックより後に処理されるマクロブロックの予測値ｐを計算するための参照データを必要な期間のみ記憶する。
【０１５７】
図１８に示すように、ＶＣ−１方式における走査順は、１ピクチャの左上隅のマクロブロックから開始し右方向に進み、その後、右端に到達したら１行下の左端のマクロブロックに進み、各行においては左から進む順になっている。これは１ピクチャの右下隅のマクロブロックに到達するまで繰り返される。
【０１５８】
また、ＶＣ−１方式における差分モード符号化がなされたビットプレーンを復号する際に、予測値を計算するために参照されるデータ（ビットプレーンデコード結果ｂ）は、このマクロブロックの上隣と左隣のデータである。そのため、図１９に斜線で示されるマクロブロックが処理中のマクロブロックである場合には、このマクロブロックの後に処理されるマクロブロックのために、図中太線で囲まれた１行分のマクロブロックのビットプレーンデコード結果ｂが記憶されている必要である。ラインバッファ５２４は、既にビットプレーンデコード結果ｂが得られたマクロブロックのデータのうちの、後のマクロブロックの予測値ｐを計算するために必要な分のみを記憶する。
【０１５９】
マクロブロックレイヤ復号部５３０は、ビットプレーンマクロブロックレイヤ復号部５２０から出力されてきたビットプレーンデコード結果ｂを用いてマクロブロックレイヤの復号をしてマクロブロックデコード結果ｍを得る。
【０１６０】
図２０は、図１５に示すＶＣ−１復号装置５００が行う処理の流れを示すフローチャートである。まず、ビットプレーンピクチャレイヤ復号部４００によるピクチャレイヤでの処理が行われる（Ｓ１５００〜Ｓ１５０８）。具体的には、まず、Ｉｎｖｅｒｔ値とＩＭＯＤＥが復号される（Ｓ１５００）。ＩＭＯＤＥがｒａｗモードを示す場合（Ｓ１５０２：Ｙｅｓ）には、処理がマクロブロックレイヤの処理に進む。一方、ＩＭＯＤＥがｒａｗ以外のモードを示す場合（Ｓ１５０２：Ｎｏ）には、その符号化方式に応じた復号が行われる（Ｓ１５０３）。この復号は、符号化残留値ビットプレーンに対しては残留値ビットプレーンを得るまでの処理である、符号化条件反転ビットプレーンに対しては条件反転ビットプレーンを得るまでの処理である。
【０１６１】
これらの復号により得られた復号結果は、ＸＯＲ４１１によりＩｎｖｅｒｔ値と排他的論理和演算することによって条件反転される。第二のセレクタ４１３は、ＩＭＯＤＥにより差分符号化が示されている場合にはＸＯＲ４１１により条件反転される前の復号結果すなわち残留値ビットプレーンを中間データとして記憶部５１０に出力する（Ｓ１５０４：Ｙｅｓ、Ｓ１５０５）。一方、ＩＭＯＤＥにより条件反転符号化が示されている場合にはＸＯＲ４１１の演算結果を中間データとして記憶部５１０に出力する（Ｓ１５０４：Ｎｏ、Ｓ１５０６）。
【０１６２】
中間データは、記憶部５１０に記憶される（Ｓ１５０８）。
【０１６３】
ステップＳ１５１０からの処理は、マクロブロックレイヤで行われる。
【０１６４】
まず、ステップＳ１５１０において、注目マクロブロックについて復号すべきビットプレーンが存在するか否かの確認がビットプレーンマクロブロックレイヤ復号部５２０により行われる。これはＩＭＯＤＥがｒａｗモードを示すか否かの確認である。
【０１６５】
ＩＭＯＤＥがｒａｗモード以外を示す場合（Ｓ１５１０：Ｙｅｓ）場合には、Ｉｎｖｅｒｔ値または、ラインバッファ５２４に記憶された参照データに基づいて注目マクロブロックについての予測値ｐが算出される（Ｓ１５１２）。そして、差分復元部５２３より中間データと予測値ｐの排他的論理和演算がなされる（Ｓ１５１４）。セレクタ５２５は、ＩＭＯＤＥが差分符号化を示す場合には差分復元部５２３の出力をビットプレーンデコード結果ｂとして出力し（Ｓ１５１６：Ｙｅｓ、Ｓ１５２０）、ＩＭＯＤＥが条件反転符号化を示す場合には中間データをビットプレーンデコード結果ｂとして出力する（Ｓ１５１６：Ｎｏ、Ｓ１５１８）。
【０１６６】
ステップＳ１５２０とステップＳ１５１８において、ビットプレーンデコード結果ｂは、ラインバッファ５２４とマクロブロックレイヤ復号部５３０に出力される。なお、ラインバッファ５２４は、ビットプレーンデコード結果ｂを参照データとして必要な期間のみ記憶する。
【０１６７】
なお、注目マクロブロックについて復号すべきビットプレーンが複数存在する場合には、Ｓ１５１２〜Ｓ１５２０の処理は、それぞれのビットプレーンに対して実行される。
【０１６８】
ビットプレーンマクロブロックレイヤ復号部５２０からマクロブロックレイヤ復号部５３０に出力されたビットプレーンデコード結果ｂは、対応するマクロブロックの符号化要素の復号に用いられる（Ｓ１５３０）。
【０１６９】
なお、ステップＳ１５１０において、ＩＭＯＤＥがｒａｗモードを示す場合（Ｓ１５１０：Ｎｏ）には、マクロブロックレイヤ復号部５３０によりビットプレーン符号化されていない符号化要素の復号が行われる（Ｓ１５３０）。
【０１７０】
ステップＳ１５１０〜Ｓ１５３０までの処理は、１ピクチャのすべてのマクロブロックに対して行われた（Ｓ１５３２：Ｙｅｓ）ことをもって、このピクチャの処理が終了する。
【０１７１】
本実施の形態のＶＣ−１復号装置５００は、データ処理装置１００、データ処理装置２００の技術をＶＣ−１方式のビットプレーンの復号に適用したものであり、上記２つの技術の効果を得ることができる。
【０１７２】
図２１は、本発明の復号技術をＶＣ−１のビットプレーンの復号に適用したＶＣ−１復号装置７００を示す。ＶＣ−１復号装置７００は、ＶＣ−１復号装置５００と同じように、ＶＣ−１方式の圧縮データに含まれるビットプレーンを復号するとともに、マクロブロックレイヤの復号も行うものである。ＶＣ−１復号装置５００が、条件反転ビットプレーンの条件反転処理をピクチャレイヤで行うのに対して、ＶＣ−１復号装置７００は、この条件反転処理をマクロブロックレイヤで行う。
【０１７３】
ＶＣ−１復号装置７００は、ビットプレーンピクチャレイヤ復号部６００と、記憶部７１０と、ビットプレーンマクロブロックレイヤ復号部７２０と、マクロブロックレイヤ復号部７３０を備える。
【０１７４】
図２２は、ビットプレーンピクチャレイヤ復号部６００の構成を示す。ビットプレーンピクチャレイヤ復号部６００は、ＩＮＶＥＲＴ値復号部６０１と、符号化モード復号部６０２と、Ｎｏｒｍ−２／Ｄｉｆｆ−２復号部６０３と、Ｎｏｒｍ−６／Ｄｉｆｆ−６復号部６０４と、行スキップ復号部６０５と、列スキップ復号部６０６と、セレクタ６１０を備える。
【０１７５】
ＩＮＶＥＲＴ値復号部６０１、符号化モード復号部６０２、Ｎｏｒｍ−２／Ｄｉｆｆ−２復号部６０３、Ｎｏｒｍ−６／Ｄｉｆｆ−６復号部６０４、行スキップ復号部６０５、列スキップ復号部６０６は、ＶＣ−１復号装置５００における相対応する構成と同じ機能を有するので、ここで詳細な説明を省略する。
【０１７６】
セレクタ６１０には、符号化モード復号部６０２により復号されたＩＭＯＤＥが入力される。セレクタ６１０は、４つの復号部から、ＩＭＯＤＥにより示される符号化モードに対応した復号部の出力を選択して記憶部７１０に出力する。このように、ビットプレーンピクチャレイヤ復号部６００から出力される中間データは、差分符号化モードの場合には残留値ビットプレーンであり、条件反転符号化モードの場合には条件反転ビットプレーンである。
【０１７７】
中間データ記憶部として機能する記憶部７１０は、セレクタ６１０の出力を記憶する。
【０１７８】
図２３は、ビットプレーンマクロブロックレイヤ復号部７２０の構成を示す。ビットプレーンマクロブロックレイヤ復号部７２０は、マクロブロックレイヤで処理を行うものであり、予測値計算部７２２と、セレクタ７２３と、ラインバッファ７２４と、排他的論理和演算部７２５を有する。
【０１７９】
予測値計算部７２２とラインバッファ７２４は、ＶＣ−１復号装置５００における予測値計算部５２２とラインバッファ５２４とそれぞれ同じであるので、ここで詳細な説明を省略する。
【０１８０】
セレクタ７２３にはＩｎｖｅｒｔ値、予測値ｐ、ＩＭＯＤＥが入力される。セレクタ７２３は、ＩＭＯＤＥに応じてＩｎｖｅｒｔ値と予測値ｐのいずれかを排他的論理和演算部７２５に出力する。具体的には、ＩＭＯＤＥが差分符号化モードを示すときには予測値ｐを出力し、ＩＭＯＤＥが条件反転符号化モードを示すときにはＩｎｖｅｒｔ値を出力する。
【０１８１】
排他的論理和演算部７２５は、記憶部７１０から中間データを１マクロブロックずつ読み出して、対応するマクロブロックに対してセレクタ７２３からの出力と排他的論理和演算を行ってこのマクロブロックのビットプレーンデコード結果ｂを得る。これにより、差分符号化モードの場合には、ビットプレーンデコード結果ｂが中間データと予測値ｐとの排他的論理和演算の結果であり、条件反転符号化モードの場合には、ビットプレーンデコード結果ｂが中間データに対してＩｎｖｅｒｔ値に応じて条件反転処理されたものである。すなわち、ここでは、排他的論理和演算部７２５は、差分復元部とビット反転部を兼ねる。
【０１８２】
排他的論理和演算部７２５により得られたビットプレーンデコード結果ｂは、マクロブロックレイヤ復号部７３０に出力されるとともに、ラインバッファ７２４にも出力される。
【０１８３】
ラインバッファ７２４は、既にビットプレーンデコード結果ｂが得られたマクロブロックより後に処理されるマクロブロックの予測値ｐを計算するための参照データを必要な期間のみ記憶する。
【０１８４】
マクロブロックレイヤ復号部７３０は、ビットプレーンマクロブロックレイヤ復号部５２０から出力されてきたビットプレーンデコード結果ｂを用いてマクロブロックレイヤの復号をしてマクロブロックデコード結果ｍを得る。
【０１８５】
図２４は、図２１に示すＶＣ−１復号装置７００が行う処理の流れを示すフローチャートである。まず、ビットプレーンピクチャレイヤ復号部６００によるピクチャレイヤでの処理が行われる（Ｓ１６００〜Ｓ１６０３）。具体的には、まず、Ｉｎｖｅｒｔ値とＩＭＯＤＥが復号される（Ｓ１６００）。ＩＭＯＤＥがｒａｗモードを示す場合（Ｓ１６０２：Ｙｅｓ）には、処理がマクロブロックレイヤの処理に進む。一方、ＩＭＯＤＥがｒａｗ以外のモードを示す場合（Ｓ１６０２：Ｎｏ）には、その符号化方式に応じた復号が行われる（Ｓ１６０３）。この復号は、中間データを得るまでの処理であり、差分符号化モードの場合には残留値ビットプレーンが得られ、条件反転符号化モードの場合には条件反転ビットプレーンが得られる。これらの中間データは、記憶部７１０に記憶される（Ｓ１６０８）。
【０１８６】
ステップＳ１６１０からの処理は、マクロブロックレイヤで行われる。
まず、ステップＳ１６１０において、注目マクロブロックについて復号すべきビットプレーンが存在するか否かの確認がビットプレーンマクロブロックレイヤ復号部５２０により行われる。これはＩＭＯＤＥがｒａｗモードを示すか否かの確認である。
【０１８７】
ＩＭＯＤＥがｒａｗモード以外を示す場合（Ｓ１６１０：Ｙｅｓ）場合には、Ｉｎｖｅｒｔ値または、ラインバッファ７２４に記憶された参照データに基づいて注目マクロブロックについての予測値ｐが算出される（Ｓ１６１２）。そして、セレクタ７２３により、ＩＭＯＤＥが差分符号化を示す場合には予測値ｐが排他的論理和演算部７２５に出力され（Ｓ１６１４：Ｙｅｓ、Ｓ１６１６）、ＩＭＯＤＥが条件反転符号化を示す場合にはＩｎｖｅｒｔ値が排他的論理和演算部７２５に出力される（Ｓ１６１４：Ｎｏ、Ｓ１６１８）。
【０１８８】
排他的論理和演算部７２５において、セレクタ７２３の出力と中間データの排他的論理和演算が行われ、注目マクロブロックのビットプレーンデコード結果ｂが得られる（Ｓ１６２０）。このビットプレーンデコード結果ｂは、ラインバッファ７２４とマクロブロックレイヤ復号部７３０に出力される（Ｓ１６２２）。なお、ラインバッファ７２４は、ビットプレーンデコード結果ｂを参照データとして必要な期間のみ記憶する。
【０１８９】
なお、注目マクロブロックについて復号すべきビットプレーンが複数存在する場合には、Ｓ１６１２〜Ｓ１６２２の処理は、それぞれのビットプレーンに対して実行される。
【０１９０】
ビットプレーンマクロブロックレイヤ復号部７２０からマクロブロックレイヤ復号部７３０に出力されたビットプレーンデコード結果ｂは、対応するマクロブロックの符号化要素の復号に用いられる（Ｓ１６３０）。
【０１９１】
なお、ステップＳ１６１０において、ＩＭＯＤＥがｒａｗモードを示す場合（Ｓ１６１０：Ｎｏ）には、マクロブロックレイヤ復号部７３０によりビットプレーン符号化されていない符号化要素の復号が行われる（Ｓ１６３０）。
【０１９２】
ステップＳ１６１０〜Ｓ１６３０までの処理は、１ピクチャのすべてのマクロブロックに対して行われた（Ｓ１６３２：Ｙｅｓ）ことをもって、このピクチャの処理が終了する。
【０１９３】
本実施の形態のＶＣ−１復号装置７００は、データ処理装置１００、データ処理装置２００、データ処理装置３００の技術をＶＣ−１方式のビットプレーンの復号に適用し、上記３つの技術の効果を得ることができる。ＶＣ−１復号装置７００は、条件反転ビットプレーンの条件反転処理をマクロブロックレイヤで行うことによって、より装置の規模を小さくすることができる。
【０１９４】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、さまざまな変更、増減を加えてもよい。これらの変更、増減が加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【０１９５】
【図１】本発明の第１の復号技術を適用したデータ処理装置の構成を示すブロック図である。
【図２】図１に示すデータ処理装置におけるビットプレーンマクロブロックレイヤ復号部の構成を示すブロック図である。
【図３】図１に示すデータ処理装置の処理の流れを示すフローチャートである。
【図４】本発明の第１の復号技術を適用した他のデータ処理装置の構成を示すブロック図である。
【図５】本発明の第２の復号技術を適用したデータ処理装置の構成を示すブロック図である。
【図６】図５に示すデータ処理装置におけるビットプレーンピクチャレイヤ復号部の構成を示すブロック図である。
【図７】図５に示すデータ処理装置におけるビットプレーンマクロブロックレイヤ復号部の構成を示すブロック図である。
【図８】図５に示すデータ処理装置の処理の流れを示すフローチャートである。
【図９】図５に示すデータ処理装置に適用可能な他のビットプレーンピクチャレイヤ復号部の構成を示すブロック図である。
【図１０】本発明の第３の復号技術を適用したデータ処理装置の構成を示すブロック図である。
【図１１】図１０に示すデータ処理装置におけるビットプレーンピクチャレイヤ復号部の構成を示すブロック図である。
【図１２】図１０に示すデータ処理装置におけるビットプレーンマクロブロックレイヤ復号部の構成を示すブロック図である。
【図１３】図１０に示すデータ処理装置の処理の流れを示すフローチャートである。
【図１４】図１０に示すデータ処理装置に適用可能な他のビットプレーンピクチャレイヤ復号部の構成を示すブロック図である。
【図１５】本発明の第１の実施の形態にかかるＶＣ−１復号装置の構成を示すブロック図である。
【図１６】図１５に示すＶＣ−１復号装置におけるビットプレーンピクチャレイヤ復号部の構成を示すブロック図である。
【図１７】図１５に示すＶＣ−１復号装置におけるビットプレーンマクロブロックレイヤ復号部の構成を示すブロック図である。
【図１８】マクロブロックの走査順を示す図である。
【図１９】予測値を計算する際に参照するデータの位置を説明するための図である。
【図２０】図１５に示すＶＣ−１復号装置の処理の流れを示すフローチャートである。
【図２１】本発明の第２の実施の形態にかかるＶＣ−１復号装置の構成を示すブロック図である。
【図２２】図２１に示すＶＣ−１復号装置におけるビットプレーンピクチャレイヤ復号部の構成を示すブロック図である。
【図２３】図２１に示すＶＣ−１復号装置におけるビットプレーンマクロブロックレイヤ復号部の構成を示すブロック図である。
【図２４】図２１に示すＶＣ−１復号装置の処理の流れを示すフローチャートである。
【図２５】動画像符号化の一般的な階層構造を説明するための図である。
【図２６】ＶＣ−１方式のビットストリームの構造を示す図である。
【図２７】ＶＣ−１方式のビットストリームのピクチャレイヤの構造を示す図である。
【図２８】ビットプレーンの例を示す図である。
【図２９】ＶＣ−１方式のビットストリームにおけるピクチャヘッダの構造を示す図である。
【図３０】ＶＣ−１方式の符号化ビットプレーンの構造を示す図である。
【図３１】ＶＣ−１方式による符号化手法を説明するための図である。
【図３２】ピクチャレイヤ以下の復号手順を示すフローチャートである。
【図３３】ピクチャヘッダの復号手順を示すフローチャートである。
【図３４】ビットプレーンの復号手順を示すフローチャートである。
【図３５】ビットプレーンのデータビットの復号手順を示すフローチャートである。
【図３６】従来技術による差分符号化ビットプレーンの復号手順を示すフローチャートである。
【図３７】ビットプレーンを復号する際の問題点を説明するために用いられるデータ処理装置を示す図である。
【図３８】図３７に示すデータ処理装置におけるピクチャ一括ビットプレーン差分復元部を示す図である。
【図３９】図３７に示すデータ処理装置におけるマクロブロックレイヤ復号部の処理を示すフローチャートである。
【符号の説明】
【０１９６】
１００  データ処理装置、  １００ａ  データ処理装置、  １０１  残留値ビットプレーン復号部、  １０１ａ  ビットプレーンピクチャレイヤ復号部、  １０２  記憶部、  １０３  ビットプレーンマクロブロックレイヤ復号部、  １０５  マクロブロックレイヤ復号部、  １０６  予測値計算部、  １０７  差分復元部、  １０８  予測参照データ保存部、  １０９ａ  第１の残留値ビットプレーン復号部、  １０９ｂ  第２の残留値ビットプレーン復号部、  ２００  データ処理装置、  ２０１  ビットプレーンピクチャレイヤ復号部、  ２０１ａ  ビットプレーンピクチャレイヤ復号部、  ２０２  ビットプレーン補助データ復号部、  ２０２ａ  ビットプレーン補助データ復号部、  ２０３  残留値ビットプレーン復号部、  ２０３ａ  ビットプレーンデータビット復号部、  ２０４  非差分符号化ビットプレーン復号部、２０５  選択部、  ２１０  記憶部、  ２２０  ビットプレーンマクロブロックレイヤ復号部、  ２２１  予測値計算部、  ２２２  差分復元部、  ２２３  セレクタ、  ２２４  予測参照データ保存部、  ２３０  マクロブロックレイヤ復号部、  ３００  データ処理装置、  ３０１  ビットプレーンピクチャレイヤ復号部、  ３０１ａ  ビットプレーンピクチャレイヤ復号部、  ３０２  ビットプレーン補助データ復号部、  ３０２ａ  ビットプレーン補助データ復号部、  ３０３  残留値ビットプレーン復号部、  ３０３ａ  残留値ビットプレーン復号部、  ３０４  非差分符号化ビットプレーン復号部、  ３０４ａ  第１の非差分符号化ビットプレーン復号部、  ３０５ａ  第２の非差分符号化ビットプレーン復号部、３０６  選択部、  ３１０  記憶部、  ３２０  ビットプレーンマクロブロックレイヤ復号部、  ３２２  セレクタ、  ３２３  予測参照データ保存部、  ３２４  予測値計算部、  ３２５  排他的論理和演算部、  ３３０  マクロブロックレイヤ復号部、  ４００  ビットプレーンピクチャレイヤ復号部、  ４０１  ＩＮＶＥＲＴ値復号部、  ４０２  符号化モード復号部、  ４０３  Ｎｏｒｍ−２／Ｄｉｆｆ−２復号部、  ４０４  Ｎｏｒｍ−６／Ｄｉｆｆ−６復号部、  ４０５  行スキップ復号部、  ４０６  列スキップ復号部、  ４１０  第一のセレクタ、  ４１１  ＸＯＲ、  ４１３  第二のセレクタ、  ５００  ＶＣ−１復号装置、  ５１０  記憶部、  ５２０  ビットプレーンマクロブロックレイヤ復号部、  ５２２  予測値計算部、  ５２３  差分復元部、  ５２４  ラインバッファ、  ５２５  セレクタ、  ５３０  マクロブロックレイヤ復号部、  ６００  ビットプレーンピクチャレイヤ復号部、  ６０１  ＩＮＶＥＲＴ値復号部、  ６０２  符号化モード復号部、  ６０３  Ｎｏｒｍ−２／Ｄｉｆｆ−２復号部、  ６０４  Ｎｏｒｍ−６／Ｄｉｆｆ−６復号部、  ６０５  行スキップ復号部、  ６０６  列スキップ復号部、  ６１０  セレクタ、  ７００  ＶＣ−１復号装置、  ７１０  記憶部、  ７２０  ビットプレーンマクロブロックレイヤ復号部、  ７２２  予測値計算部、  ７２３  セレクタ、  ７２４  ラインバッファ、  ７２５  排他的論理和演算部、  ７３０  マクロブロックレイヤ復号部。
【図１】
2008048240.tif 000005
【図２】
2008048240.tif 000006
【図３】
2008048240.tif 000007
【図４】
2008048240.tif 000008
【図５】
2008048240.tif 000009
【図６】
2008048240.tif 000010
【図７】
2008048240.tif 000011
【図８】
2008048240.tif 000012
【図９】
2008048240.tif 000013
【図１０】
2008048240.tif 000014
【図１１】
2008048240.tif 000015
【図１２】
2008048240.tif 000016
【図１３】
2008048240.tif 000017
【図１４】
2008048240.tif 000018
【図１５】
2008048240.tif 000019
【図１６】
2008048240.tif 000020
【図１７】
2008048240.tif 000021
【図１８】
2008048240.tif 000022
【図１９】
2008048240.tif 000023
【図２０】
2008048240.tif 000024
【図２１】
2008048240.tif 000025
【図２２】
2008048240.tif 000026
【図２３】
2008048240.tif 000027
【図２４】
2008048240.tif 000028
【図２５】
2008048240.tif 000029
【図２６】
2008048240.tif 000030
【図２７】
2008048240.tif 000031
【図２８】
2008048240.tif 000032
【図２９】
2008048240.tif 000033
【図３０】
2008048240.tif 000034
【図３１】
2008048240.tif 000035
【図３２】
2008048240.tif 000036
【図３３】
2008048240.tif 000037
【図３４】
2008048240.tif 000038
【図３５】
2008048240.tif 000039
【図３６】
2008048240.tif 000040
【図３７】
2008048240.tif 000041
【図３８】
2008048240.tif 000042
【図３９】
2008048240.tif 000043