トップ :: H 電気 :: H04 電気通信技術




【発明の名称】 ビットプレーン復号装置およびビットプレーン復号方法
【発明者】 【氏名】横山 裕

【要約】 【課題】ビットプレーンを復号する際のデータ伝送量を抑制する。

【構成】複数のマクロブロックに分けられたピクチャの各マクロブロックの2値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンがピクチャヘッダに含まれる圧縮画像データに対して、符号化ビットプレーンを復号する際に、残留値ビットプレーン復号部101は、符号化残留値ビットプレーンに対して残留値ビットプレーンを得るまでの復号を行って復号結果を中間データとして出力する。記憶部102は、中間データを記憶する。ビットプレーンマクロブロックレイヤ復号部103は、記憶部102に記憶された中間データに対して、マクロブロックレイヤで差分復元を行ってビットプレーンデコード結果bを得、このビットプレーンデコード結果bをマクロブロックレイヤ復号部530に出力する。
【特許請求の範囲】
【請求項1】
複数のマクロブロックに分けられたピクチャの各前記マクロブロックの2値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンがピクチャヘッダに含まれる圧縮画像データに対して、前記符号化ビットプレーンを復号するビットプレーン復号装置であって、
前記符号化ビットプレーンは、ビットプレーンについての予測値に基づいて残留値ビットプレーンを生成し、該残留値ビットプレーンを所定の符号化方式で符号化する差分符号化により得られた符号化残留値ビットプレーンであり、
ピクチャレイヤで処理を行うものであって、前記符号化残留値ビットプレーンに対して残留値ビットプレーンを得るまでの復号を行って復号結果を中間データとして出力する残留値ビットプレーン復号部と、
前記中間データを記憶する中間データ記憶部と、
マクロブロックレイヤで処理を行うものであって、該中間データ記憶部に記憶された残留値ビットプレーンとなる中間データに対して差分復元を行って最終データを出力するビットプレーンマクロブロックレイヤ復号部とを備えることを特徴とするビットプレーン復号装置。
【請求項2】
前記符号化ビットプレーンは、互いに異なる複数の種類の前記所定の符号化方式のうちのいずれかを用いた差分符号化により得られた符号化残留値ビットプレーンであり、
前記残留値ビットプレーン復号部は複数あり、それぞれが自身の対応する前記所定の符号化方式を用いた差分符号化により得られた符号化残留値ビットプレーンを復号して前記中間データを得て前記中間データ記憶部に出力することを特徴とする請求項1に記載のビットプレーン復号装置。
【請求項3】
前記符号化ビットプレーンは、符号化残留値ビットプレーンと、非差分符号化により得られた非差分符号化ビットプレーンのいずれかであり、
ピクチャレイヤで処理を行うものであって、前記非差分符号化ビットプレーンを復号して復号結果を中間データとして前記中間データ記憶部に出力する非差分符号化ビットプレーン復号部をさらに備え、
前記ビットプレーンマクロブロックレイヤ復号部は、符号化残留値ビットプレーンの前記中間データに対して差分復元を行って最終データを出力するか、非差分符号化ビットプレーンの前記中間データを最終データとして出力することを特徴とする請求項1または2に記載のビットプレーン復号装置。
【請求項4】
前記非差分符号化ビットプレーンの符号化方式を用いた差分符号化により得られた前記符号化残留値ビットプレーンの残留値ビットプレーン復号部は、前記非差分符号化ビットプレーンの非差分符号化ビットプレーン復号部であることを特徴とする請求項3に記載のビットプレーン復号装置。
【請求項5】
前記非差分符号化ビットプレーンは、ビットプレーンに対してビットの条件反転を行って条件反転ビットプレーンを得、該条件反転ビットプレーンを所定の符号化方式で符号化する条件反転符号化により得られた符号化条件反転ビットプレーンであり、
前記非差分符号化ビットプレーン復号部は、該符号化条件反転ビットプレーンに対して条件反転ビットプレーンを得るまでの復号を行って復号結果を中間データとして前記中間データ記憶部に出力し、
前記ビットプレーンマクロブロックレイヤ復号部は、前記中間データ記憶部に記憶された前記条件反転ビットプレーンとなる中間データに対してビットの条件反転を行って最終データを出力することを特徴とする請求項3または4に記載のビットプレーン復号装置。
【請求項6】
前記非差分符号化ビットプレーンは、互いに異なる複数の所定の符号化方式のうちのいずれかを用いた条件反転符号化により得られた符号化条件反転ビットプレーンであり、
前記非差分符号化ビットプレーン復号部は複数あり、それぞれが自身の対応する前記所定の符号化方式を用いた条件反転符号化により得られた符号化条件反転ビットプレーンを復号して条件反転ビットプレーンを得、該条件反転ビットプレーンを中間データとして前記中間データ記憶部に出力することを特徴とする請求項5に記載のビットプレーン復号装置。
【請求項7】
複数のマクロブロックに分けられたピクチャの各前記マクロブロックの2値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンがピクチャヘッダに含まれる圧縮画像データに対して、前記符号化ビットプレーンを復号するビットプレーン復号方法であって、
ビットプレーンピクチャレイヤで処理を行うビットプレーンピクチャレイヤ復号ステップと、
マクロブロックレイヤで処理を行うビットプレーンマクロブロックレイヤ復号ステップを含み、
ビットプレーンについての予測値に基づいて残留値ビットプレーンを生成し、該残留値ビットプレーンを所定の符号化方式で符号化する差分符号化により得られた符号化残留値ビットプレーンに対して、
前記ビットプレーンピクチャレイヤ復号ステップにおいて、残留値ビットプレーンを得るまでの復号を行い、
前記ビットプレーンマクロブロックレイヤ復号ステップにおいて、前記ビットプレーンピクチャレイヤ復号ステップで得られた前記残留値ビットプレーンに含まれた、各マクロブロックについての残留値に対して差分復元を行って最終データを出力することを特徴とするビットプレーン復号方法。
【請求項8】
非差分符号化により得られた非差分符号化ビットプレーンに対して、
前記ビットプレーンピクチャレイヤ復号ステップにおいて、該非差分符号化ビットプレーンを復号し、
前記ビットプレーンマクロブロックレイヤ復号ステップにおいて、非差分符号化ビットプレーンの復号結果を最終データとしてマクロブロック毎に出力することを特徴とする請求項7に記載のビットプレーン復号方法。
【請求項9】
前記非差分符号化ビットプレーンは、ビットプレーンに対してビットの条件反転を行って条件反転ビットプレーンを得、該条件反転ビットプレーンを所定の符号化方式で符号化する条件反転符号化により得られた符号化条件反転ビットプレーンであり、
前記ビットプレーンピクチャレイヤ復号ステップにおいて、前記符号化条件反転ビットプレーンに対して条件反転ビットプレーンを得るまでの復号を行い、
前記ビットプレーンマクロブロックレイヤ復号ステップにおいて、前記条件反転ビットプレーンに含まれた、各マクロブロックの条件反転された前記2値フラグ情報に対してビットの条件反転を行って最終データを出力することを特徴とする請求項8に記載のビットプレーン復号方法。
【発明の詳細な説明】【技術分野】
【0001】
本発明は、マクロブロックの2値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンがピクチャヘッダに含まれる圧縮画像データに対して、符号化ビットプレーンを復号する技術に関する。
【背景技術】
【0002】
デジタル技術の発展に伴い、DVD(Digital Versatile Disc)プレーヤのようなデジタル方式の音声、画像の再生装置が実用化されている。このような装置の扱うデータは、通常符号化されており、その符号化方式としては、MPEG(Moving Picture Experts Group)、H.264、VC−1などに代表されるビデオ符号化方式である。
【0003】
上記の符号化方式では、符号化は階層的に行われる。図25は、これらの階層の概念を示す。一連の動画像はシーケンスと呼ばれ、その中の個々の画面はピクチャと呼ばれる。さらに、1枚のピクチャは、定められた大きさのマクロブロックに分割される。符号化は、これに対応したレイヤ分けで行われる。
【0004】
ここで、VC−1方式(非特許文献1参照)を例にして具体的に説明する。
図26は、VC−1方式のビットストリームを示す。図示のように、このビットストリームは、シーケンスレベルの情報をシーケンスレイヤで符号化して得たシーケンスレイヤ情報1601と、ピクチャレベルの情報をピクチャレイヤで符号化して得たピクチャレイヤ情報1603を有する。さらに、必要に応じて数個のピクチャの境界にエントリポイントレイヤ情報1602を挿入することもできる。
【0005】
図27は、VC−1方式のビットストリームにおけるピクチャレイヤ情報1603のビットストリーム構造を示す。ピクチャレイヤ情報1603は、符号化されたピクチャヘッダ1701と、符号化されたスライスヘッダ1702と、マクロブロックの情報を符号化して得たマクロブロックレイヤ情報1703を有する。
【0006】
ところで、マクロブロックの情報の一部であるが、マクロブロックレイヤ情報1703ではなく、ピクチャヘッダ1701に含まれているものがある。
【0007】
非特許文献1の192頁8.7章に記載されているように、VC−1方式において、マクロブロック毎の2値フラグ情報を1画面分まとめてピクチャヘッダで符号化するというビットプレーン符号化技術が用いられる。マクロブロックの2値フラグ情報は、AC予測のフラグ、スキップマクロブロックのフラグなどの1ビットの情報である。これらを1画面単位すなわちピクチャ単位にまとめたものはビットプレーンと呼ばれる。ビットプレーンはマクロブロックの符号要素の数個毎について複数種類定義されている。図28は、その一例を示す。ビットプレーンは、マクロブロックに対応した2次元の2値画像データであり、図示のように、1ピクチャの水平方向(図中X方向)と垂直方向(図中Y方向)のマクロブロック数が12と9であれば、ビットプレーンも12×9の2値画像データとなる。
【0008】
このようなビットプレーンは、マクロブロックの情報を表すものであるが、ピクチャヘッダに含まれる形で符号化される。
【0009】
図29は、ピクチャヘッダ1701のビットストリームの構成を示す。図示のように、ピクチャヘッダで符号化される情報が複数あり、そのうち、ビットプレーン符号化されたマクロブロック情報(たとえば図中ビットプレーン符号化マクロブロック情報1910、以下符号化ビットプレーンともいう)がある。符号化時の条件により、ピクチャヘッダ内において、ビットプレーン符号化マクロブロック情報が存在しないまたは複数存在する場合がある。
【0010】
図30は、ビットプレーン符号化マクロブロック情報すなわち符号化ビットプレーン1910のビットストリームを示す。符号化ビットプレーン1910は、1ビットの反転ビット(INVERTともいう)2101、可変長符号化されたモード情報(以下IMODEという)2102、データビット2103を有する。IMODE2102は後述する符号化のモードを示し、データビット2103は、IMODE2102により示されるモードで符号化される。
【0011】
VC−1方式におけるビットプレーンの符号化は、モードにより表される複数の方法に分けられる(非特許文献1参照)。これらのモードは、rawモード、ノーマル2モード、Diff−2モード、ノーマル6モード、Diff−6モード、行スキップモード、列スキップモードがある。さらに、これらのモードとは別個に反転ビット2101の値を指定して符号化することができる。反転ビット2101は、Diff−2モードとDiff−6モードでは、予測値を計算するときのデフォルト値として用いられ、他のモード(rawモードを除く)では、デコードの結果を反転するか否かを示す値として用いられる。
【0012】
rawモードの場合、ビットプレーンに含まれる情報は、マクロブロックレイヤで個々に符号化され、ピクチャヘッダでの復号化が行われない。他のモードでは、ビットプレーンが構成され、そのモードに応じた符号化がなされる。
【0013】
行スキップモードでは、画面は1行ごとに分割され、それぞれの行に1ビットが付加される。このビットの値が0である行は行全体が0となり、それ以外の行はそれの各値がそのまま符号化される。
【0014】
列スキップモードでは、画面は1列ごとに分割され、それぞれの列に1ビットが付加される。このビットの値が0である列が列全体が0となり、それ以外の列はそれの各値がそのまま符号化される。
【0015】
ノーマル2モードとDiff−2モードでは、マクロブロックは2つずつ1組にされ、各組についての2ビットの情報が可変長符号化される。符号化時の主走査方向と副走査方向はそれぞれ上から下へ向かう方向と左から右に向かう方向であり、画面の左上隅から右に走査が行われ、右端に達すると1ライン下の左端に進む順で符号化が行われる。1ピクチャ内のマクロブロックの数が奇数である場合には、始めの1マクロブロックすなわち左上隅のマクロブロックのみ単独で符号化される。なお、Diff−2モードの場合には、差分符号化が行われ、ビットプレーンで符号化されている値は、予測値との差分(以下残留値ともいう)である。
【0016】
ノーマル6モードとDiff−6モードでは、マクロブロックは6つずつ1つ組にされ、各組についての6ビットの情報が可変長符号化される。1組のマイクブロックはタイルと呼ばれ、この2つのモードでは、6要素の矩形タイルが用いられる。ピクチャのサイズに応じて、マイクブロックの組合せ方法が決められている。主走査方向(垂直方向)のマクロブロック数が3の倍数であり、かつ、副走査方向(水平方向)のマクロブロック数が3の倍数ではない場合には、タイルとして図31に示す(a)の2×3垂直タイルが用いられ、それ以外の場合には、図31に示す(b)の3×2水平タイルが用いられる。タイルの分割はピクチャの右下隅に合わせて行われ、最後に左上部に残ったマクロブロックが図31の(a)と(b)のいずれかの形態にもできない場合には、これらのマクロブロックは線形タイル(1×N列線形タイルまたはN×1行線形タイル)(N:自然数)にされる。符号化は、まず2×3垂直タイルまたは3×2水平タイルを左上端からの順で行われ、その後、列線形タイル、行線形タイルの順で行われる。列線形タイルの符号化方法は列スキップモード時と同じく、行線形タイルの符号化は行スキップモード時と同じである。なお、Diff−6の場合にも差分符号化が行われ、ビットプレーンで符号化されている値は、残留値である。
【0017】
図31の(c)、(d)、(e)は、この2つのモードでビットプレーン符号化する場合のタイル分割の形態の例を示す。これらの例では、細線の矩形はマクロブロックを示し、太線の矩形はタイルを示す。(c)では、ピクチャサイズが5×6マクロブロックであり、上記規定に従い、2×3垂直タイルが用いられる。そして、左端の1列のマクロブロックは列線形タイルとなる。(d)では、ピクチャサイズが6×3マクロブロックであるため、3×2水平タイルが用いられる。そして、上端の1行のマクロブロックは行線形タイルとなる。また、(e)では、ピクチャサイズが8×5マクロブロックであるため、3×2水平タイルが用いられる。そして、左端の2列のマクロブロックは2つの列線形タイルとなり、上端の1行のマクロブロックは1つの行線形タイルとなる。図31の(c)、(d)、(e)にある番号は符号化の順番を示し、番号の小さいタイルが先に符号化される。
【0018】
以上、VC−1方式により得られたビットストリームの構造、および符号化について説明した。ここで、このようなビットストリームの復号ついて説明する。
【0019】
図32は、ピクチャレイヤ以下についての復号処理を示すフローチャートであり、図27に示すピクチャレイヤ情報1603のビットストリームを対象とする。図示のように、まず、ピクチャヘッダ1701の復号(S200)が行われ、その後、マクロブロックレイヤ情報 1703の復号(S300)において、それぞれのマクロブロックの復号が行われる。なお、VC−1方式ではスライスヘッダ1702を付加するか否かについては任意であり、付加されている場合にその復号は、マクロブロックの先頭の処理として扱うことができる。図32においては、それをマクロブロックレイヤ復号(S300)の一部として示す。
【0020】
ステップS200におけるピクチャヘッダ復号の詳細を、図33に示す。
図33に示すように、ピクチャヘッダ1701の復号に際し、まず、復号する符号要素が定められる(S201)。ピクチャヘッダ1701内で符号化された情報は、規格により、固定長符号化、可変長符号化、ビットプレーン符号化のいずれかの符号化方式によって符号化されたものである。ステップS201において、規格に沿って当該符号要素に応じた符号化方式が選択され、それに対応する復号が行われる(S202:固定長符号、S203、またはS202:可変長符号、S203、またはS202:ビットプレーン符号、S205)。このような処理が繰り返され、ピクチャヘッダ1701における最後のヘッダ情報を復号したことをもって(S206:Yes)、処理が終了する。
【0021】
図34は、図33のステップS205におけるビットフレーン復号を示すフローチャートである。ビットプレーンの復号に際して、まず、ビットプレーンの復号方法を定めるビットプレーン補助データが復号される(S211)。VC−1の場合には、ここで反転ビット2101、IMODE2102が復号される。次のステップS212において、復号されたビットプレーン補助データに基づいてデータビット2103が存在するか否かの判定が行われる。VC−1の場合には、rawモードかそれ以外のモードかが判定される。rawモードの場合にはデータビット2103が無く、それ以外のモードの場合にはデータビット2103が存在することになる。データビット2103があればデータビット2103の復号が行われ(S212:Yes、S213)、データビット2103が無ければ、処理が終了する。
【0022】
図35は、図34のステップS213におけるデータビット復号の詳細を示す。図示のように、ビットプレーンのデータビットの復号に際し、まず、復号化されたIMODE2102に基づいて、ビットプレーンの符号化方式が差分符号化を用いた差分符号化方式(Diff−2モードまたはDiff−6モード)か、差分符号化を用いない通常符号化方式(ノーマル2モード、ノーマル6モード、行スキップモード、列スキップモード)かが判定される(S221)。通常符号化方式が用いられていればビットプレーン通常復号化が行われ(S221:No、S222)、差分符号化方式が用いられていればビットプレーン差分復号化が行われる(S221:Yes、S223)。
【0023】
前述したように、Diff−2モードとDiff−6モードでは差分符号化が行われ、ビットプレーンで符号化されている値は、予測値との差分を表す残留値である。残留値より構成されたビットプレーンは以下残留値ビットプレーンという。
【0024】
この2つのモードで符号化されたビットプレーンの復号は、ビットフレーン差分復号化(S223)である。具体的には、残留値ビットプレーン(正確には符号化された残留値ビットプレーン)を復号して各残留値rを得、そして式(1)に示すようにこの残留値rと予測値pを加算して最終的なデコード結果b(以下ビットプレーンデコード結果という)を得る。以下、説明上の便宜のため、残留値rを得るまでの復号と、残留値rを用いてビットプレーンデコード結果bを得るための処理をそれぞれ残留値ビットプレーン復号と差分復元という。
【0025】
【数1】


【0026】
なお、式(1)における予測値pは、下記の式(2)に従って求められる。
【0027】
【数2】


【0028】
式(2)から分かるように、(i,j)のマクロブロックは、左上隅および左端の列のマクロブロックではなければ、その予測値p(i,j)を求める際に、このマクロブロックと隣接する上および左のマクロブロックのビットプレーンデコード結果(b(i−1,j)、b(i−1,j))が参照される。そのため、これらのマクロブロックのビットプレーンデコード結果bが既に得られている必要がある。前述したように、Diff−6モードにおいて、線形タイルが最後に符号化されるため、このピクチャ全体の残留値ビットプレーン復号が終わらないと、差分復元が実行できないことが生じうる。
【0029】
たとえば、図31の(e)に示す例の場合において、タイル1の左上隅のマクロブロック(マクロブロックA)は、その左隣のマクロブロック(マクロブロックB)がタイル6に含まれ、上隣のマクロブロック(マクロブロックC)がタイル7に含まれる。式(2)に示すように、マクロブロックAの予測値Pを得るためにはマクロブロックBおよびマクロブロックCのビットプレーンデコード結果bが必要である。式(1)に示すように、マクロブロックB、マクロブロックCのビットプレーンデコード結果bを得るためには、それらの残留値rが用いられるため、タイル6およびタイトル7の残留値ビットプレーン復号が終了している必要がある。
【0030】
ところで、残留値ビットプレーン復号はタイルの符号化順に行われるので、タイル6とタイル7はタイル1より後に残留値ビットプレーン復号されることになる。そのため、タイル6とタイル7の残留値ビットプレーン復号が終わらなければ、マクロブロックAの差分復元ができない。
【0031】
このように、差分符号化が用いられるDiff−6モードの場合には、ピクチャ全体の残留値ビットプレーン復号が終了しなければ、差分復元ができないときがある。
【0032】
特許文献1には、Diff−6モードのような差分符号化によって得られたビットプレーンの復号手法が開示されている。この手法は、ピクチャ単位にビットプレーンの再構築を行うものであり、図36(特許文献1における図27)に示すように、まず、ステップS2710において残留ビットプレーンを復号する。この処理は、上述した残留値ビットプレーン復号に相当し、それによって1ピクチャ分のビットプレーンの残留値rが得られる。次にステップS2720において、プレディレクタビットプレーンが求められる。この処理は、上述した式(2)に従って行われ、これによって、1ピクチャ分のビットプレーンの予測値pが得られる。そして、上記2つのステップで得られた残留値rと予測値pを用いて、式(1)に従って差分復元が行われ、ビットプレーンが再構築される(S2730)。
【特許文献1】特表2005−513883号公報
【非特許文献1】Proposed SMPTE Standard for Television:VC−1 Compressed Video Bitstream Format and Decoding Process,2005年8月23日
【発明の開示】
【発明が解決しようとする課題】
【0033】
特許文献1に記載の手法を実現する装置として、図37に示す構成が考えられる。図37に示す装置は、ピクチャレイヤ以下の復号(図32に示すピクチャヘッダ復号とマクロブロックレイヤ復号)を行うものであり、ピクチャヘッダ復号におけるビットプレーン復号(図33におけるステップS205)をビットプレーン差分復号に特化している。なお、ピクチャヘッダ復号におけるビットプレーン復号以外の処理(固定長復号、可変長復号)を担う構成については省略する。
【0034】
この装置は、残留値ビットプレーン復号部11、記憶部12、ピクチャ一括ビットプレーン差分復元部13、マクロブロックレイヤ復号部16を有する。残留値ビットプレーン復号部11は、図36におけるステップS2710の処理すなわち残留値ビットプレーン復号を行い、1ピクチャ分の残留値rを得て、中間データとして記憶部12に書き込む。
【0035】
ピクチャ一括ビットプレーン差分復元部13は、ビットプレーンデコード結果bを得るために、2つの処理すなわち予測値pの計算と差分復元を行うものであり、図38に示すように、予測値計算部14と差分復元部15を有する。まず、予測値計算部14は、式(2)に従ってinvert値をこのピクチャの左上隅のマクロブロックの予測値p(0,0)として求める。次に、差分復元部15は、式(1)に従って左上隅のマクロブロックのビットプレーンデコード結果b(0,0)を求める。このビットプレーンデコード結果b(0,0)は、記憶部12において、ビットプレーンデコード結果bを記憶するために割り当てられた領域に書き込まれる。その後、予測値計算部14と差分復元部15は、式(1)と式(2)に示す処理を繰り返し実行して1ピクチャ分のマクロブロックのビットプレーンデコード結果bを得る。
【0036】
このようにして得られた1ピクチャ分のビットプレーンデコード結果bが得られ、記憶部12に保存される。
【0037】
マクロブロックレイヤ復号部16は、記憶部12に保存された、ピクチャ一括ビットプレーン差分復元部13により得られたビットプレーンデコード結果bを参照して、マクロブロックレイヤ復号を行って、デコード結果mを得る。以下、ビットプレーンデコード結果bとの混同を防ぐために、マクロブロックレイヤ復号によって得られたデコード結果mをマクロブロックデコード結果mという。
【0038】
図39は、マクロブロックレイヤ復号部16の処理を示すフローチャートである。この処理は、図32におけるステップS300に対応するものであり、図示のように、記憶部12に保存されたビットプレーンデコード結果bを参照して、全てのマクロブロックに対してマクロブロックレイヤの復号が行われる(S301、S302:Yes)。
【0039】
前述したように、符号化ビットプレーン1910がピクチャヘッダ1701に含まれるため、ピクチャヘッダ1701に含まれている他の情報(ピクチャヘッダ情報1など)と同じように、符号化ビットプレーン1910の復号を、ピクチャレイヤすなわちピクチャ単位で行うように考えやすい。
【0040】
Diff−6モードの場合、ピクチャ全体の残留値ビットプレーン復号が終了しなければ、差分復元ができないときがあるので、残留値ビットプレーン復号がピクチャレイヤで行うことは必要である。ここで、残留値ビットプレーン復号の後に、ピクチャ一括ビットプレーン差分復元部13が、ビットプレーンデコード結果bが得られるまでの処理をピクチャ単位で行う場合について考える。この場合、ビットプレーンデコード結果bがピクチャ単位で扱われるので、ピクチャ一括ビットプレーン差分復元部13は、ビットプレーンデコード結果bを求める処理を実行するたびに、1ピクチャ分のビットプレーンデコード結果b(まだビットプレーンデコード結果bが得られていない位置のビットプレーンデコード結果bについては例えばデフォルト値またはビットプレーンデコード結果bがまだ無いことを示すフラグが記憶されるとする)の読出しと、新しく求められたビットプレーンデコード結果bを加えて得た結果を記憶部12への書戻しが生じる。
【0041】
これでは、ピクチャ一括ビットプレーン差分復元部13と記憶部12間のデータ伝送量が多いため、ピクチャ一括ビットプレーン差分復元部13から記憶部12へのアクセス帯域を大きくとる必要がある。
【課題を解決するための手段】
【0042】
本発明の一つの態様はビットプレーン復号装置である。この装置は、複数のマクロブロックに分けられたピクチャの各マクロブロックの2値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンがピクチャヘッダに含まれる圧縮画像データに対して、符号化ビットプレーンを復号するビットプレーン復号装置であって、残留値ビットプレーン復号部と、中間データ記憶部と、ビットプレーンマクロブロックレイヤ復号部を備える。
【0043】
残留値ビットプレーン復号部は、ピクチャレイヤで処理を行うものであり、ビットプレーンについての予測値に基づいて残留値ビットプレーンを生成し、該残留値ビットプレーンを所定の符号化方式で符号化する差分符号化により得られた符号化残留値ビットプレーンに対して残留値ビットプレーンを得るまでの復号を行って復号結果を中間データとして出力する。
【0044】
中間データ記憶部は、残留値ビットプレーン復号部からの中間データを記憶する。
【0045】
ビットプレーンマクロブロックレイヤ復号部は、マクロブロックレイヤで処理を行うものであり、中間データ記憶部に記憶された残留値ビットプレーンとなる中間データに対して差分復元を行って最終データを出力する。
【0046】
本発明の別の態様は、ビットプレーン復号方法である。この方法は、符号化残留値ビットプレーンに対して、残留値ビットプレーンを得るまでの復号をピクチャレイヤで行い、残留値ビットプレーンに含まれた、各マクロブロックについての残留値に対する差分復元をマクロブロックレイヤで行う。
【0047】
ここで、「ピクチャレイヤで処理を行う」とは、ピクチャ単位に処理することを意味し、「マクロブロックレイヤで処理を行う」とは、マクロブロック単位に処理することを意味する。
【0048】
なお、上記方法、装置を、システム、プログラムに置き換えたものも、本発明の態様としては有効である。
【発明の効果】
【0049】
本発明にかかるビットプレーン復号技術によれば、復号処理時のデータ伝送量を抑制することができる。
【発明を実施するための最良の形態】
【0050】
本発明の具体的な実施の形態を説明する前に、まず本発明による技術の原理について説明する。
【0051】
図1は、本発明の第1の技術にかかるデータ処理装置100の構成を示す。このデータ処理装置100は、ピクチャを複数のマクロブロックに分け、各マクロブロックの2値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンを復号するとともに、マクロブロックレイヤの復号も行う。なお、この符号化ビットプレーンは、ピクチャヘッダに含まれており、差分符号化により得られた符号化残留値ビットプレーンとする。
【0052】
図1に示すように、データ処理装置100は、残留値ビットプレーン復号部101と、記憶部102と、ビットプレーンマクロブロックレイヤ復号部103と、マクロブロックレイヤ復号部105を備える。データ処理装置100には、残留値ビットプレーンのビットストリームが入力される。
【0053】
残留値ビットプレーン復号部101は、入力されたビットストリームに対して、残留値ビットプレーンを得るまでの復号を行って復号結果を中間データとして記憶部102に出力する。残留値ビットプレーン復号部101は、ピクチャレイヤでこの復号を行うものであり、それによって、1ピクチャ分の残留値rからなる残留値ビットプレーンが記憶部102に書き込まれる。
【0054】
残留値ビットプレーンは中間データに該当し、記憶部102は中間データ記憶部として機能する。
【0055】
ビットプレーンマクロブロックレイヤ復号部103は、マクロブロックレイヤで処理を行うものであり、記憶部102に記憶された残留値rをマクロブロック毎に読み出して差分復元処理を行う。図2は、ビットプレーンマクロブロックレイヤ復号部103の構成を示す。
【0056】
ビットプレーンマクロブロックレイヤ復号部103は、予測値計算部106、差分復元部107、予測参照データ保存部108を有する。
【0057】
前述したように、1ピクチャ分の残留値rから構成される符号化残留値ビットプレーンは、ビットプレーンについての予測値に基づいて残留値ビットプレーンを生成し、残留値ビットプレーンを所定の符号化方式で符号化する差分符号化により得られたものである。
【0058】
差分復元部107は、記憶部102から1マクロブロックずつ残留値rを読み出して、予測値計算部106により得られた予測値pと加算してこのマクロブロックのビットプレーンデコード結果bを得て、マクロブロックレイヤ復号部105とマクロブロックレイヤ復号部105に出力する。
【0059】
予測参照データ保存部108は、予測値pを計算するための予測参照データを記憶する。この予測参照データは、差分符号化時の符号化方式によって用いるものが異なるが、残留値rに対応するマクロブロックの位置によって、既定のデフォルト値や、この位置以外の他の位置のマクロブロックのビットプレーンデコード結果bである可能性がある。ある位置のビットプレーンデコード結果bを求める際に、この位置より先に処理されることによってそれらのビットプレーンデコード結果bが得られているマクロブロックのビットプレーンデコード結果bを参照する場合において、予測参照データ保存部108は、差分復元部107から出力して得たビットプレーンデコード結果bを、このビットプレーンデコード結果bのマクロブロックより後に処理されるマクロブロックの予測値pを得るために必要な期間だけ保存する。
【0060】
予測値計算部106は、予測参照データ保存部108に記憶された参照データを用いて該当する位置の予測値pを算出して差分復元部107に供する。
【0061】
差分復元部107により得られたビットプレーンデコード結果bは、逐次マクロブロックレイヤ復号部105に出力され、マクロブロックレイヤ復号部105は、それを用いてマクロブロックレイヤの復号を行ってマクロブロックデコード結果mを得る。
【0062】
図3は、データ処理装置100が行う処理の流れを示すフローチャートである。まず、残留値ビットプレーン復号部101により符号化残留値ビットプレーンの復号が行われ、1ピクチャ分の残留値rから構成される残留値ビットプレーンが得られる(S1100)。この残留値ビットプレーンは、中間データとして記憶部102に記憶される(S1102)。ここまでの処理は、ピクチャ単位で行われる。
【0063】
ステップS1104〜S1122まで、図中点線により囲まれた処理は、マクロブロック単位で行われる。まず、ステップS1104において、注目マクロブロックについて復号すべきビットプレーンが存在するか否かの確認がビットプレーンマクロブロックレイヤ復号部103により行われる。この確認は、注目マクロブロックは、その2値フラグ情報がピクチャヘッダにビットプレーン符号化されており、まだ完全に復号されていないすなわちそのビットプレーンデコード結果bがまだ得られていないかの確認である。復号すべきビットプレーンがある(S1104:Yes)と、予測値計算部106により予測値pが算出される(S1106)。そして、差分復元部107により、記憶部102から読み出したこのマクロブロックの残留値rと予測値pの加算が行われ、ビットプレーンデコード結果bが得られる(S1108)。このビットプレーンデコード結果bは、予測参照データ保存部108とマクロブロックレイヤ復号部105に出力される(S1110)。
【0064】
なお、注目マクロブロックについて復号すべきビットプレーンが複数存在する場合には、S1106〜S1110の処理は、それぞれのビットプレーンに対して実行される。
【0065】
予測参照データ保存部108に出力されたビットプレーンデコード結果bは、このマクロブロックの後に処理されるマクロブロックの予測値pの参照のために予測参照データとして必要な期間だけ保存される。
【0066】
ビットプレーンマクロブロックレイヤ復号部103からマクロブロックレイヤ復号部105に出力されたビットプレーンデコード結果bは、対応するマクロブロックの符号化要素の復号に用いられる(S1120)。
【0067】
なお、ステップS1104において、復号すべきビットプレーンがない場合(S1104:No)には、マクロブロックレイヤ復号部105によりビットプレーン符号化されていない符号化要素の復号が行われる(S1120)。
【0068】
ステップS1104〜S1120までの処理は、1ピクチャのすべてのマクロブロックに対して行われた(S1122:Yes)ことをもって、このピクチャの処理が終了する。
【0069】
このように、この第1の技術は、ピクチャヘッダに含まれた、差分符号化されたビットプレーンを復号する際に、ピクチャレイヤにおいて、残留値ビットプレーンを得るまでの復号のみを行い、差分復元をマクロブロックレイヤで行う。そのため、1つのマクロブロックについて差分復元をする際に、中間データである残留値ビットプレーンを記憶した中間データ記憶部へのアクセスが一度で済む上に、一度に読み出すデータの量が少ない。これによってビットプレーンを復号する際のデータ伝送量を減らすことができ、差分復元を担う部分と中間データ記憶部間のアクセス帯域を抑制することができる。
【0070】
また、差分復元をマクロブロックレイヤで行うことによって、ビットプレーンマクロブロックレイヤ復号部103がビットプレーンデコード結果bを直接マクロブロックレイヤ復号部105に直接出力することができる。これによって、ビットプレーンデコード結果bを中間データ記憶部に書き戻す工程、マクロブロックレイヤ復号部105がビットプレーンデコード結果bを読み出す工程を減らすことができ、効率が良い。
【0071】
なお、図1に示すデータ処理装置100において、ビットプレーンマクロブロックレイヤ復号部103の予測値計算部106が用いるデフォルト値が予測参照データ保存部108に記憶されるようになっているが、このデフォルト値は、予測値計算部106に保持されるようにしてもよい。また、デフォルト値は、補助データとして他のフラグ情報とともにピクチャヘッダにビットプレーン復号されている場合には、残留値ビットプレーン復号部101による復号処理の際に、この補助データも復号して予測値計算部106に供するようにしてもよい。
【0072】
前述したように、差分符号化は、ビットプレーンについての予測値に基づいて残留値ビットプレーンを生成し、残留値ビットプレーンを所定の符号化方式で符号化する。同じ差分符号化でも、残留値ビットプレーンを符号化する際の符号化方式が様々ある。本発明の第1の技術は、複数たとえば2つの異なる符号化方式でそれぞれ得られた符号化残留値ビットプレーンに対応する必要のあるシステムにも適用することができ、データ伝送量を減らすとともに、ハードウェアの規模を抑制することができる。
【0073】
図4は、たとえばこのような2種類の残留値ビットプレーンを処理対象とした場合に、図1に示すデータ処理装置100の代わりに用いるデータ処理装置100aの構成を示す。データ処理装置100aにおいて、残留値ビットプレーン復号部101の代わりにビットプレーンピクチャレイヤ復号部101aを用いた以外、他の各構成は、データ処理装置100における相対応する構成と同じであるので、ここで、ビットプレーンピクチャレイヤ復号部101aについてのみ説明する。
【0074】
図4に示すように、ビットプレーンピクチャレイヤ復号部101aは、第1の残留値ビットプレーン復号部109aと、第2の残留値ビットプレーン復号部109bを有する。これらは、異なる符号化方式にそれぞれ対応し、自身が対応する符号化方式で符号化された残留値ビットプレーンに対して、残留値ビットプレーンを得るまでの復号を行う。
【0075】
複数の異なる符号化方式でそれぞれ得られた符号化残留値ビットプレーンについて、残留値ビットプレーンを得るまでの処理が異なるが、差分復元処理が同じであるため、こうすることによって、符号化方式が異なる差分符号化ビットプレーンについて、マクロブロックレイヤで差分復元を担う処理部を兼用することができ、回路サイズを小さくすることができる。
【0076】
図5は、本発明の第2の技術にかかるデータ処理装置200の構成を示す。このデータ処理装置200は、ピクチャを複数のマクロブロックに分け、各マクロブロックの2値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンを復号するとともに、マクロブロックレイヤの復号も行う。また、この符号化ビットプレーンは、ピクチャヘッダに含まれており、差分符号化により得られた符号化残留値ビットプレーンと、非差分符号化により得られた非差分符号化ビットプレーンのいずれであり、データ処理装置200は、この2つの符号化ビットプレーンを処理可能である。なお、符号化ビットプレーンには、この符号化ビットプレーンが差分符号化と非差分符号化のいずれにより符号化されたかを示す補助データが含まれている。
【0077】
図5に示すように、データ処理装置200は、ビットプレーンピクチャレイヤ復号部201と、記憶部210と、ビットプレーンマクロブロックレイヤ復号部220と、マクロブロックレイヤ復号部230を備える。データ処理装置200には、符号化残留値ビットプレーンと非差分符号化ビットプレーンのいずれかであるビットストリームが入力される。
【0078】
図6は、ビットプレーンピクチャレイヤ復号部201の構成を示す。ビットプレーンピクチャレイヤ復号部201は、ピクチャレイヤで処理を行うものであり、ビットプレーン補助データ復号部202と、残留値ビットプレーン復号部203と、非差分符号化ビットプレーン復号部204と、選択部205を有する。
【0079】
ビットプレーン補助データ復号部202は、入力されたビットストリームに対して、補助データを復号して、選択部205とビットプレーンマクロブロックレイヤ復号部220に供する。ここで補助データは、入力された符号化ビットプレーンが差分符号化により符号化されたものか、非差分符号化により符号化されたものを示すものである。
【0080】
残留値ビットプレーン復号部203と非差分符号化ビットプレーン復号部204は、符号化ビットプレーンに対してそれぞれ復号して復号結果を得て選択部205に出力する。残留値ビットプレーン復号部203は、図1に示す残留値ビットプレーン復号部101と同じであるので、ここで詳細な説明を省略する。符号化ビットプレーンが残留値ビットプレーンであるときに、残留値ビットプレーン復号部203により得られた復号結果は残留値ビットプレーンである。また、符号化ビットプレーンが非差分符号化ビットプレーンであるときに、非差分符号化ビットプレーン復号部204により得られた復号結果はビットプレーンである。
【0081】
選択部205は、補助データに基づいて、残留値ビットプレーン復号部203と非差分符号化ビットプレーン復号部204のいずれかの出力を中間データとして選択して、中間データ記憶部として機能する記憶部210に出力する。具体的には、補助データが、符号化ビットプレーンが差分符号化により符号化されたものであることを示すときには残留値ビットプレーン復号部203の復号結果を選択して出力し、補助データが、符号化ビットプレーンが非差分符号化により符号化されたものであることを示すときには非差分符号化ビットプレーン復号部204の復号結果を選択して出力する。
【0082】
図7は、ビットプレーンマクロブロックレイヤ復号部220の構成を示す。ビットプレーンマクロブロックレイヤ復号部220は、マクロブロックレイヤで処理を行うものであり、予測値計算部221と、差分復元部222と、セレクタ223と、予測参照データ保存部224を有する。予測値計算部221と、差分復元部222は、図1に示すビットプレーンマクロブロックレイヤ復号部103における相対応する構成と同じであるので、ここで詳細な説明を省略する。
【0083】
差分復元部222の処理結果は、セレクタ223に入力される。また、セレクタ223には、記憶部210に記憶された中間データのうちの、注目マクロブロックの中間データと、補助データも入力される。セレクタ223は、補助データに基づいて、補助データが差分符号化を示すときに、差分復元部222からの出力をビットプレーンデコード結果bとして出力する一方、補助データが非差分符号化を示すときに、中間データそのものをビットプレーンデコード結果bとして出力する。なお、ビットプレーンデコード結果bは予測参照データ保存部224にも出力される。
【0084】
マクロブロックレイヤ復号部230は、ビットプレーンマクロブロックレイヤ復号部220から出力されてきたビットプレーンデコード結果bを用いてマクロブロックレイヤの復号をし、その処理は図1に示すマクロブロックレイヤ復号部105による処理と同じであるので、ここで詳細な説明を省略する。
【0085】
図8は、図5に示すデータ処理装置200が行う処理の流れを示すフローチャートである。まず、ビットプレーンピクチャレイヤ復号部201によるピクチャレイヤでの処理が行われる(S1200〜S1204)。具体的には、まず、補助データが復号される(S1200)。符号化ビットプレーンが差分符号化により得られた符号化残留値ビットプレーンである場合には、残留値ビットプレーン復号部203により残留値ビットプレーンが得られるまでの復号が行われる(S1202:Yes、S1203)。一方、符号化ビットプレーンが非差分符号化により得られた非差分符号化ビットプレーンである場合には、非差分符号化ビットプレーン復号部204により復号が行われ、完全に復号されたビットプレーンが得られる(S1202:No、S1204)。
【0086】
ビットプレーンピクチャレイヤ復号部201の復号結果は、ピクチャ単位で記憶部210に記憶される(S1208)。
【0087】
ステップS1210からの処理は、マクロブロックレイヤで行われる。
まず、ステップS1210において、注目マクロブロックについて復号すべきビットプレーンが存在するか否かの確認がビットプレーンマクロブロックレイヤ復号部220により行われる。この確認は、注目マクロブロックは、その2値フラグ情報がビットプレーン符号化されているか否かの確認である。復号すべきビットプレーンがある(S1210:Yes)場合には、予測値計算部221により注目マクロブロックに対する予測値pが算出され、差分復元部222により、中間データと予測値pの排他的論理和演算が行われる(S1211、S1212)。
【0088】
セレクタ223は、補助データが差分符号化と非差分符号化のいずれを示すかによって異なる処理が行われる。具体的には、補助データが非差分符号化を示す場合には、注目マクロブロックの中間データをそのままビットプレーンデコード結果bとして出力する(S1213:No、S1215)一方、補助データが差分符号化を示す場合には、差分復元部222の演算結果をビットプレーンデコード結果bとして出力する(S1213:Yes、S1214)。
【0089】
なお、注目マクロブロックについて復号すべきビットプレーンが複数存在する場合には、S1211〜S1215の処理は、それぞれのビットプレーンに対して実行される。
【0090】
ビットプレーンマクロブロックレイヤ復号部220のセレクタ223からマクロブロックレイヤ復号部230に出力されたビットプレーンデコード結果bは、対応するマクロブロックの符号化要素の復号に用いられる(S1216)。
【0091】
なお、ステップS1210において、復号すべきビットプレーンがない場合(S1210:No)には、マクロブロックレイヤ復号部230によりビットプレーン符号化されていない符号化要素の復号が行われる(S1216)。
【0092】
ステップS1210〜S1216までの処理は、1ピクチャのすべてのマクロブロックに対して行われた(S1217:Yes)ことをもって、このピクチャの処理が終了する。
【0093】
このように、この第2の技術も、ピクチャヘッダに含まれた、差分符号化されたビットプレーンを復号する際に、ピクチャレイヤにおいては、残留値ビットプレーンを得るまでの復号のみを行い、差分復元をマクロブロックレイヤで行う。そのため、図1に示すデータ処理装置100と同じ効果を得ることができる。
【0094】
さらに、データ処理装置200は、差分符号化により得られた符号化残留値ビットプレーンと非差分符号化により得られた非差分符号化ビットプレーンのビットプレーンデコード結果bを同じくマクロブロックレイヤで取得して出力している。これによって、符号化残留値ビットプレーンと非差分符号化ビットプレーンのいずれにも対応する必要のあるシステムにおいて、2種類のビットプレーンに対して同じマクロブロックレイヤ復号部を用いることができる。そのため、ハードウェアの規模を抑制することができる。
【0095】
前述したように、差分符号化は、ビットプレーンについての予測値に基づいて残留値ビットプレーンを生成し、残留値ビットプレーンを所定の符号化方式で符号化する。非差分符号化は、残留値ではなく、ビットプレーンそのものを符号化する。非差分符号化する際に用いる符号化方式は、残留値ビットプレーンを符号化するときに用いる符号化方式と同じである可能性がある。本発明の第2の技術は、符号化残留値ビットプレーンと、この符号化残留値ビットプレーンの符号化方式と同じ符号化方式で非差分符号化したビットプレーンの両方に対応する必要のあるシステムにも適用することができ、さらにハードウェアの規模を抑制することができる。
【0096】
図9は、この2種類の符号化ビットプレーンを処理対象とした場合に、図5に示すデータ処理装置200におけるビットプレーンピクチャレイヤ復号部201の代わりに用いるビットプレーンピクチャレイヤ復号部201aの構成を示す。
【0097】
ビットプレーンピクチャレイヤ復号部201aは、ビットプレーン補助データ復号部202aと、ビットプレーンデータビット復号部203aを有する。
【0098】
ビットプレーン補助データ復号部202aは、図6に示すビットプレーンピクチャレイヤ復号部201のビットプレーン補助データ復号部202と同じである。
【0099】
ビットプレーンデータビット復号部203aは、入力されたビットプレーンを復号する。ここで、符号化残留値ビットプレーンと非差分符号化残留値ビットプレーンが同じ符号化方式で符号化されたものであり、残留値ビットプレーン復号部203は、いずれの符号化ビットプレーンに対しても同じ処理をする。これによって、符号化残留値ビットプレーンから得られた中間データは残留値ビットプレーンであり、非差分符号化ビットプレーンから得られた中間データは、完全に復号されたビットプレーンである。
【0100】
これは、残留値ビットプレーンの符号化方式と、非差分符号化ビットプレーンの符号化方式とが同じであることに着目し、2種類のビットプレーンに対して、ビットプレーンピクチャレイヤ復号部を兼用する。それによってさらに回路サイズを小さくすることができる。
【0101】
なお、データ処理装置200において、ビットプレーンマクロブロックレイヤ復号部220の予測値計算部221が用いるデフォルト値が予測参照データ保存部224に記憶されるようになっているが、このデフォルト値は、予測値計算部224に保持されるようにしてもよい。また、デフォルト値は、補助データとして他のフラグ情報とともにピクチャヘッダにビットプレーン復号されている場合には、ビットプレーンピクチャレイヤ復号部201のビットプレーン補助データ復号部202による復号処理の際に、この補助データも復号して予測値計算部224に供するようにしてもよい。
【0102】
図10は、本発明の第3の技術にかかるデータ処理装置300の構成を示す。このデータ処理装置300は、ピクチャを複数のマクロブロックに分け、各マクロブロックの2値フラグ情報をビットプレーンとして符号化して得た符号化ビットプレーンを復号するとともに、マクロブロックレイヤの復号も行う。また、この符号化ビットプレーンは、ピクチャヘッダに含まれており、差分符号化により得られた符号化残留値ビットプレーンと、非差分符号化により得られた非差分符号化ビットプレーンのいずれであり、データ処理装置300は、この2つの符号化ビットプレーンを処理可能である。さらに、データ処理装置300が対象とする非差分符号化ビットプレーンは、元のビットプレーンに対してビットの条件反転を行ってから符号化したものであり、符号化条件反転ビットプレーンである。なお、符号化ビットプレーンには、この符号化ビットプレーンが差分符号化と非差分符号化のいずれにより符号化されたか、および非差分符号化の場合において符号化時にビット反転したか否かを示す補助データが含まれている。なお、ビット反転したか否かを示す補助データを以下反転ビットという。
【0103】
図10に示すように、データ処理装置300は、ビットプレーンピクチャレイヤ復号部301と、記憶部310と、ビットプレーンマクロブロックレイヤ復号部320と、マクロブロックレイヤ復号部330を備える。データ処理装置300には、符号化残留値ビットプレーンと符号化反転ビットプレーンのいずれかであるビットストリームが入力される。
【0104】
図11は、ビットプレーンピクチャレイヤ復号部301の構成を示す。ビットプレーンピクチャレイヤ復号部301は、ピクチャレイヤで処理を行うものであり、ビットプレーン補助データ復号部302と、残留値ビットプレーン復号部303と、非差分符号化ビットプレーン復号部304と、選択部306を有する。
【0105】
ビットプレーン補助データ復号部302は、入力されたビットストリームに対して、補助データを復号して、ビットプレーンマクロブロックレイヤ復号部320および選択部306に供する。ここで補助データは、入力されたビットプレーンが差分符号化により符号化されたものか、非差分符号化により符号化されたものを示すもの、および反転ビットである。なお、非差分符号化ビットプレーンは符号化条件反転ビットプレーンであるため、非差分符号化ビットプレーンであることを示す補助データは符号化条件反転ビットプレーンであることも示すことになる。
【0106】
残留値ビットプレーン復号部303と非差分符号化ビットプレーン復号部304は、符号化ビットプレーンに対してそれぞれ復号して復号結果を得て選択部306に出力する。残留値ビットプレーン復号部303は、図1に示す残留値ビットプレーン復号部101と同じであるので、ここで詳細な説明を省略する。符号化ビットプレーンが残留値ビットプレーンであるときに、残留値ビットプレーン復号部303により得られた復号結果は残留値ビットプレーンである。また、符号化ビットプレーンが非差分符号化ビットプレーンであるときに、非差分符号化ビットプレーン復号部304により得られた復号結果は条件反転ビットプレーンである。
【0107】
選択部306は、補助データに基づいて、残留値ビットプレーン復号部303と非差分符号化ビットプレーン復号部304のいずれかの出力を中間データとして選択して、中間データ記憶部として機能する記憶部310に出力する。具体的には、補助データが、符号化ビットプレーンが差分符号化により符号化されたものであることを示すときには残留値ビットプレーン復号部303の復号結果を選択して出力し、補助データが、符号化ビットプレーンが非差分符号化により符号化されたものであることを示すときには非差分符号化ビットプレーン復号部304の復号結果を選択して出力する。
【0108】
図12は、ビットプレーンマクロブロックレイヤ復号部320の構成を示す。ビットプレーンマクロブロックレイヤ復号部320は、マクロブロックレイヤで処理を行うものであり、セレクタ322と、予測参照データ保存部323と、予測値計算部324と、排他的論理和演算部325を有する。
【0109】
予測値計算部324と予測参照データ保存部323は、図1に示すビットプレーンマクロブロックレイヤ復号部103における相対応する構成と同じであるので、ここで詳細な説明を省略する。
【0110】
セレクタ322には、予測値計算部324により得られた予測値pと、ビットプレーンピクチャレイヤ復号部301により得られた補助データが入力される。セレクタ322は、補助データに基づいて、補助データが差分符号化を示すときには予測値pを排他的論理和演算部325に出力する一方、補助データが非差分符号化を示すときには反転ビットを排他的論理和演算部325に出力する。
【0111】
排他的論理和演算部325は、セレクタ322の出力と、このマクロブロックの中間データとに対して排他的論理和演算を行ってビットプレーンデコード結果bを得る。このビットプレーンデコード結果bは、マクロブロックレイヤ復号部330と予測参照データ保存部323に出力される。
【0112】
すなわち、中間データが残留値である場合には、排他的論理和演算部325により残留値と予測値pの排他的論理和演算が行われる。この排他的論理和演算は差分復元に該当し、それによってマクロブロックのビットプレーンデコード結果bが得られる。
【0113】
一方、中間データが条件反転ビットプレーンのデータである場合には、排他的論理和演算部325により中間データと反転ビットの排他的論理和演算が行われる。この排他的論理和演算はビットの条件反転に該当し、それによってマクロブロックのビットプレーンデコード結果bが得られる。
【0114】
条件反転符号化は、ビットプレーンの構成などの条件に応じて符号化前に反転するか否かを決めて符号化し、符号化されたビットプレーンにはこの符号化ビットプレーンが符号化前に反転されたか否かを示す反転ビットが含まれている。この反転ビットは、たとえばVC−1方式におけるInvert値のように1と0で反転するか否かを示す1ビットである。補助データが非差分符号化を示す場合において、セレクタ322よりこの反転ビットが排他的論理和演算部325に入力されることによって、非差分符号化ビットプレーンから得た中間データは、符号化される前に反転された場合にはビット反転され、符号化される前にビット反転されていない場合にはビット反転されないことになる。
【0115】
マクロブロックレイヤ復号部330は、ビットプレーンマクロブロックレイヤ復号部320から出力されてきたビットプレーンデコード結果bを用いてマクロブロックレイヤの復号をし、図1に示すマクロブロックレイヤ復号部105と同じであるので、ここで詳細な説明を省略する。
【0116】
図13は、図10に示すデータ処理装置300が行う処理の流れを示すフローチャートである。まず、ビットプレーンピクチャレイヤ復号部301によるピクチャレイヤでの処理が行われる(S1300〜S1304)。具体的には、まず、補助データが復号される(S1300)。符号化ビットプレーンが差分符号化により得られた符号化残留値ビットプレーンである場合には、残留値ビットプレーン復号部303により残留値ビットプレーンが得られるまでの復号が行われる(S1302:Yes、S1303)。一方、符号化ビットプレーンが非差分符号化により得られた符号化条件反転ビットプレーンである場合には、非差分符号化ビットプレーン復号部304により条件反転ビットプレーンが得られるまでの復号が行われる(S1302:No、S1304)。
【0117】
ビットプレーンピクチャレイヤ復号部301の復号結果は、ピクチャ単位で記憶部310に記憶される(S1308)。
【0118】
ステップS1310からの処理は、マクロブロックレイヤで行われる。
【0119】
まず、ステップS1310において、注目マクロブロックについて復号すべきビットプレーンが存在するか否かの確認がビットプレーンマクロブロックレイヤ復号部320により行われる。この確認は、注目マクロブロックは、その2値フラグ情報がビットプレーン符号化されているか否かの確認である。復号すべきビットプレーンがある(S1310:Yes)場合には、予測値計算部324により注目マクロブロックについての予測値pが算出される(S1311)。そして、セレクタ322により、補助データが非差分符号化を示す場合には反転ビットが出力され(S1312:No、S1314)、補助データが差分符号化を示す場合には予測値pが出力される(S1312:Yes、S1313)。
【0120】
排他的論理和演算部325において、セレクタ322の出力と中間データの排他的論理和演算が行われ、注目マクロブロックのビットプレーンデコード結果bが得られる(S1315)。このビットプレーンデコード結果bは、予測参照データ保存部323とマクロブロックレイヤ復号部330に出力される(S1316)。
【0121】
なお、注目マクロブロックについて復号すべきビットプレーンが複数存在する場合には、S1311〜S1316の処理は、それぞれのビットプレーンに対して実行される。
【0122】
ビットプレーンマクロブロックレイヤ復号部320からマクロブロックレイヤ復号部330に出力されたビットプレーンデコード結果bは、対応するマクロブロックの符号化要素の復号に用いられる(S1317)。
【0123】
なお、ステップS1310において、復号すべきビットプレーンがない場合(S1310:No)には、マクロブロックレイヤ復号部330によりビットプレーン符号化されていない符号化要素の復号が行われる(S1317)。
【0124】
ステップS1310〜S1317までの処理は、1ピクチャのすべてのマクロブロックに対して行われた(S1318:Yes)ことをもって、このピクチャの処理が終了する。
【0125】
このように、この第3の技術も、ピクチャヘッダに含まれた、差分符号化されたビットプレーンを復号する際に、ピクチャレイヤにおいては、残留値ビットプレーンを得るまでの復号のみを行い、差分復元をマクロブロックレイヤで行う。そのため、図1に示すデータ処理装置100と同じ効果を得ることができる。
【0126】
また、データ処理装置300は、符号化条件反転ビットプレーンを復号する際に、ピクチャレイヤにおいては、条件反転ビットプレーンを得るまでの復号のみを行い、ビットの条件反転をマクロブロックレイヤで行う。そのため、1つのマクロブロックについてビットの条件反転をする際に、中間データである条件反転ビットプレーンを記憶した中間データ記憶部へのアクセスが一度で済む上に、一度に読み出すデータの量が少ない。これによってビットプレーンを復号する際のデータ伝送量を減らすことができ、ビットの条件反転を担う部分と中間データ記憶部間のアクセス帯域を抑制することができる。
【0127】
また、ビットの条件反転をマクロブロックレイヤで行うことによって、ビットプレーンマクロブロックレイヤ復号部320がビットプレーンデコード結果bを直接マクロブロックレイヤ復号部330に直接出力することができる。これによって、ビットの条件反転を行う際におけるビットプレーンデコード結果bを中間データ記憶部に書き戻す工程、マクロブロックレイヤ復号部330がビットプレーンデコード結果bを読み出す工程を減らすことができ、効率が良い。
【0128】
また、データ処理装置300は、差分復元処理が予測値と残留値の排他的論理和演算であり、ビットの条件反転処理が条件反転ビットプレーンのデータと反転ビットの排他的論理和演算であることに着目して、符号化残留値ビットプレーンと符号化条件反転ビットプレーンを復号する際のビットプレーンマクロブロックレイヤ復号部を共有させることを実現している。これにより回路のサイズダウンを図ることができる。
【0129】
さらに、データ処理装置300は、差分符号化により得られた符号化残留値ビットプレーンと非差分符号化により得られた符号化条件反転ビットプレーンのビットプレーンデコード結果bを同じくマクロブロックレイヤで取得して出力している。そのため、これによって、符号化残留値ビットプレーンと符号化条件反転ビットプレーンのいずれにも対応する必要のあるシステムにおいて、2種類のビットプレーンに対して同じマクロブロックレイヤ復号部を用いることができる。そのため、ハードウェアの規模を抑制することができる。
【0130】
なお、データ処理装置300において、ビットプレーンマクロブロックレイヤ復号部320の予測値計算部324が用いるデフォルト値が予測参照データ保存部323に記憶されるようになっているが、このデフォルト値は、予測値計算部324に保持されるようにしてもよい。また、デフォルト値は、補助データの一部として他のフラグ情報とともにピクチャヘッダにビットプレーン復号されている場合には、ビットプレーンピクチャレイヤ復号部301のビットプレーン補助データ復号部302による復号処理の際に、この補助データも復号して予測値計算部324に供するようにしてもよい。
【0131】
前述したように、条件反転符号化は、ビットプレーンに対してビットの条件反転を行って条件反転ビットプレーンを生成し、条件反転ビットプレーンを所定の符号化方式で符号化する。同じ条件反転符号化でも、条件反転ビットプレーンを符号化する際の符号化方式が様々ある。本発明の第3の技術は、符号化残留値ビットプレーンと、複数たとえば2つの異なる符号化方式でそれぞれ得られた符号化条件反転ビットプレーンに対応する必要のあるシステムにも適用することができ、さらにハードウェアの規模を抑制することができる。
【0132】
図14は、この3種類の符号化ビットプレーンを処理対象とした場合に、図10に示すデータ処理装置300におけるビットプレーンピクチャレイヤ復号部301の代わりに用いるビットプレーンピクチャレイヤ復号部301aの構成を示す。
【0133】
ビットプレーンピクチャレイヤ復号部301aは、ビットプレーン補助データ復号部302aと、残留値ビットプレーン復号部303a、第1の非差分符号化ビットプレーン復号部304aと、第2の非差分符号化ビットプレーン復号部305aを有する。
【0134】
ビットプレーン補助データ復号部302aは、図11に示すビットプレーンピクチャレイヤ復号部301のビットプレーン補助データ復号部302と同じである。
【0135】
残留値ビットプレーン復号部303aは、図11に示すビットプレーンピクチャレイヤ復号部301の残留値ビットプレーン復号部303と同じであり、符号化残留値ビットプレーンに対して、残留値ビットプレーンを得るまでの復号を行う。
【0136】
第1の非差分符号化ビットプレーン復号部304aと第2の非差分符号化ビットプレーン復号部305aは、異なる符号化方式にそれぞれ対応し、自身が対応する符号化方式で符号化された条件反転ビットプレーンに対して条件反転ビットプレーンを得るまでの復号を行う。
【0137】
複数の異なる符号化方式でそれぞれ得られた符号化条件反転ビットプレーンについて、条件反転ビットプレーンを得るまでの処理が異なるが、条件反転ビットプレーンに対するビットの条件反転処理が同じであるため、こうすることによって、マクロブロックレイヤでビットの条件反転を行う処理部を兼用することができ、回路サイズを小さくすることができる。
【0138】
以上、本発明による復号技術の原理について説明した。これらの技術は、単独に用いてもそれぞれの効果を発揮し、組み合わせてもよい。
【0139】
次に、上述した原理を具現化したシステムについて説明する。
図15は、本発明の復号技術をVC−1のビットプレーンの復号に適用したVC−1復号装置500を示す。VC−1復号装置500は、VC−1方式の圧縮データに含まれるビットプレーンを復号するとともに、マクロブロックレイヤの復号も行う。前述したように、VC−1方式におけるビットプレーンの符号化は、モードにより表される複数の方法に分けられる。これらのモードは、rawモード、ノーマル2モード、Diff−2モード、ノーマル6モード、Diff−6モード、行スキップモード、列スキップモードがある。図30に示すように、VC−1方式の符号化ビットプレーン1910には、このビットプレーンがいずれのモードで符号化されたかを示すIMODE2102と、反転ビット2101(以下Invert値ともいう)が含まれている。Invert値2101は、Diff−2モードとDiff−6モードでは、予測値を計算するときのデフォルト値として用いられ、他のモード(rawモードを除く)では、デコードの結果を反転するか否かを示す値として用いられる。具体的にはInvert値が1であるときには反転することを意味し、0であるときには反転しないことを意味する。rawモードでは、マクロブロックの情報が、マクロブロックレイヤで1ビットずつ符号化され、ビットプレーンの符号化が行われない。この場合、IMODE2102の後にデータビット2103が無い。
【0140】
VC−1復号装置500は、ビットプレーンピクチャレイヤ復号部400と、記憶部510と、ビットプレーンマクロブロックレイヤ復号部520と、マクロブロックレイヤ復号部530を備える。VC−1復号装置500には、上述した7種類のいずれかの符号化方法による符号化ビットプレーンであるビットストリームが入力される。
【0141】
図16は、ビットプレーンピクチャレイヤ復号部400の構成を示す。ビットプレーンピクチャレイヤ復号部400は、ピクチャレイヤで処理を行うものであり、INVERT値復号部401と、符号化モード復号部402と、Norm−2/Diff−2復号部403と、Norm−6/Diff−6復号部404と、行スキップ復号部405と、列スキップ復号部406と、第一のセレクタ410と、XOR411と、第二のセレクタ413を備える。
【0142】
INVERT値復号部401と符号化モード復号部402は、VC−1の符号化ビットプレーンにおける補助データに該当するINVERT値と符号化モード(以下IMODEともいう)をそれぞれ復号する。
【0143】
Norm−2/Diff−2復号部403は、ノーマル2モードとDiff−2モードで符号化されたビットプレーンに対して途中までの復号を行う。ノーマル2モードは条件反転符号化モードであり、このモードでは、INVERT値に応じてビットプレーンを反転してから符号化するかそのまま符号化し、それによって得られた符号化ビットプレーンは、以下符号化条件反転ビットプレーンという。また、Diff−2モードは差分符号化モードであり、このモードでは、残留値ビットプレーンに対して符号化する。この2つの符号化モードでは、符号化方式が同じであるため、Norm−2/Diff−2復号部403は、この2つのモードの符号化ビットプレーンに対して、その符号化方式に対応した復号処理を行って、条件反転ビットプレーンと残留値ビットプレーンをそれぞれ得る。
【0144】
Norm−6/Diff−6復号部404は、ノーマル6モードとDiff−6モードで符号化されたビットプレーンに対して途中までの復号を行う。Norm−6/Diff−6復号部404は、この2つのモードの符号化ビットプレーンについて、条件反転ビットプレーンと残留値ビットプレーンをそれぞれ得る。
【0145】
行スキップ復号部405と列スキップ復号部406は、行スキップモードと列スキップモードにそれぞれ対応し、この2つのモードの符号化ビットプレーンに対して途中までの復号を行う。行スキップモードと列スキップモードも、条件反転符号化モードであるため、行スキップ復号部405と列スキップ復号部406により得られた復号結果は、条件反転ビットプレーンである。
【0146】
第一のセレクタ410には、符号化モード復号部402により復号されたIMODEが入力される。第一のセレクタ410は、4つの復号部から、IMODEにより示される符号化モードに対応した復号部の出力を選択してXOR411と第二のセレクタ413に出力する。
【0147】
XOR411は、排他的論理和演算を行うものであり、第一のセレクタ410からの出力と、INVERT値復号部401より得られたInvert値に対して排他的論理演算を行って、演算の結果を第二のセレクタ413に出力する。
【0148】
第二のセレクタ413は、符号化モード復号部402より得られたIMODEに基づいて、XOR411の出力と第一のセレクタ410の出力のいずれかを選択して中間データとして記憶部510に出力する。具体的には、IMODEが条件反転符号化モード(行スキップモード、列スキップモード、ノーマル2モード、ノーマル6モード)を示す場合にはXOR411の演算結果を、IMODEが差分符号化モード(Diff−2モード、Diff−6モード)を示す場合には第一のセレクタ410の出力を選択する。
【0149】
すなわち、差分符号化ビットプレーンに対して、残留値ビットプレーンが中間データとして記憶部510に出力され、符号化条件反転ビットプレーンに対しては、条件反転ビットプレーンが得られた後にさらに条件反転処理が施され、その結果ビットプレーンデコード結果bが中間データとして記憶部510に出力される。
【0150】
中間データ記憶部として機能する記憶部510は、第二のセレクタ413の出力を記憶する。
【0151】
図17は、ビットプレーンマクロブロックレイヤ復号部520の構成を示す。ビットプレーンマクロブロックレイヤ復号部520は、マクロブロックレイヤで処理を行うものであり、予測値計算部522と、差分復元部523と、ラインバッファ524と、セレクタ525を有する。
【0152】
予測値計算部522にはInvert値が入力される。予測値計算部522は、このInvert値を1つ目のマクロブロックについての予測値pとして得る。その他の位置のマクロブロックについてはラインバッファ524に記憶された参照データのうちの、該当するマクロブロックの上隣と左隣のデータ(それらに詳細については後述する)を用いて予測値pを計算する。
【0153】
差分復元部523は、記憶部510から中間データを1マクロずつ読み出して、予測値pと排他的論理和演算して差分復元処理を行う。
【0154】
セレクタ525は、IMODEに応じて、差分復元部523の出力と、中間データとのいずれかを選択してビットプレーンデコード結果bとして出力する。具体的には、IMODEが差分符号化モード(Diff−2モードまたはDiff−6モード)を示すときには差分復元部523の出力を出力し、IMODEが条件反転符号化モードを示すときには中間データをビットプレーンデコード結果bとして出力する。
【0155】
ビットプレーンデコード結果bは、マクロブロックレイヤ復号部530に出力されるとともに、ラインバッファ524にも出力される。
【0156】
ラインバッファ524は、既にビットプレーンデコード結果bが得られたマクロブロックより後に処理されるマクロブロックの予測値pを計算するための参照データを必要な期間のみ記憶する。
【0157】
図18に示すように、VC−1方式における走査順は、1ピクチャの左上隅のマクロブロックから開始し右方向に進み、その後、右端に到達したら1行下の左端のマクロブロックに進み、各行においては左から進む順になっている。これは1ピクチャの右下隅のマクロブロックに到達するまで繰り返される。
【0158】
また、VC−1方式における差分モード符号化がなされたビットプレーンを復号する際に、予測値を計算するために参照されるデータ(ビットプレーンデコード結果b)は、このマクロブロックの上隣と左隣のデータである。そのため、図19に斜線で示されるマクロブロックが処理中のマクロブロックである場合には、このマクロブロックの後に処理されるマクロブロックのために、図中太線で囲まれた1行分のマクロブロックのビットプレーンデコード結果bが記憶されている必要である。ラインバッファ524は、既にビットプレーンデコード結果bが得られたマクロブロックのデータのうちの、後のマクロブロックの予測値pを計算するために必要な分のみを記憶する。
【0159】
マクロブロックレイヤ復号部530は、ビットプレーンマクロブロックレイヤ復号部520から出力されてきたビットプレーンデコード結果bを用いてマクロブロックレイヤの復号をしてマクロブロックデコード結果mを得る。
【0160】
図20は、図15に示すVC−1復号装置500が行う処理の流れを示すフローチャートである。まず、ビットプレーンピクチャレイヤ復号部400によるピクチャレイヤでの処理が行われる(S1500〜S1508)。具体的には、まず、Invert値とIMODEが復号される(S1500)。IMODEがrawモードを示す場合(S1502:Yes)には、処理がマクロブロックレイヤの処理に進む。一方、IMODEがraw以外のモードを示す場合(S1502:No)には、その符号化方式に応じた復号が行われる(S1503)。この復号は、符号化残留値ビットプレーンに対しては残留値ビットプレーンを得るまでの処理である、符号化条件反転ビットプレーンに対しては条件反転ビットプレーンを得るまでの処理である。
【0161】
これらの復号により得られた復号結果は、XOR411によりInvert値と排他的論理和演算することによって条件反転される。第二のセレクタ413は、IMODEにより差分符号化が示されている場合にはXOR411により条件反転される前の復号結果すなわち残留値ビットプレーンを中間データとして記憶部510に出力する(S1504:Yes、S1505)。一方、IMODEにより条件反転符号化が示されている場合にはXOR411の演算結果を中間データとして記憶部510に出力する(S1504:No、S1506)。
【0162】
中間データは、記憶部510に記憶される(S1508)。
【0163】
ステップS1510からの処理は、マクロブロックレイヤで行われる。
【0164】
まず、ステップS1510において、注目マクロブロックについて復号すべきビットプレーンが存在するか否かの確認がビットプレーンマクロブロックレイヤ復号部520により行われる。これはIMODEがrawモードを示すか否かの確認である。
【0165】
IMODEがrawモード以外を示す場合(S1510:Yes)場合には、Invert値または、ラインバッファ524に記憶された参照データに基づいて注目マクロブロックについての予測値pが算出される(S1512)。そして、差分復元部523より中間データと予測値pの排他的論理和演算がなされる(S1514)。セレクタ525は、IMODEが差分符号化を示す場合には差分復元部523の出力をビットプレーンデコード結果bとして出力し(S1516:Yes、S1520)、IMODEが条件反転符号化を示す場合には中間データをビットプレーンデコード結果bとして出力する(S1516:No、S1518)。
【0166】
ステップS1520とステップS1518において、ビットプレーンデコード結果bは、ラインバッファ524とマクロブロックレイヤ復号部530に出力される。なお、ラインバッファ524は、ビットプレーンデコード結果bを参照データとして必要な期間のみ記憶する。
【0167】
なお、注目マクロブロックについて復号すべきビットプレーンが複数存在する場合には、S1512〜S1520の処理は、それぞれのビットプレーンに対して実行される。
【0168】
ビットプレーンマクロブロックレイヤ復号部520からマクロブロックレイヤ復号部530に出力されたビットプレーンデコード結果bは、対応するマクロブロックの符号化要素の復号に用いられる(S1530)。
【0169】
なお、ステップS1510において、IMODEがrawモードを示す場合(S1510:No)には、マクロブロックレイヤ復号部530によりビットプレーン符号化されていない符号化要素の復号が行われる(S1530)。
【0170】
ステップS1510〜S1530までの処理は、1ピクチャのすべてのマクロブロックに対して行われた(S1532:Yes)ことをもって、このピクチャの処理が終了する。
【0171】
本実施の形態のVC−1復号装置500は、データ処理装置100、データ処理装置200の技術をVC−1方式のビットプレーンの復号に適用したものであり、上記2つの技術の効果を得ることができる。
【0172】
図21は、本発明の復号技術をVC−1のビットプレーンの復号に適用したVC−1復号装置700を示す。VC−1復号装置700は、VC−1復号装置500と同じように、VC−1方式の圧縮データに含まれるビットプレーンを復号するとともに、マクロブロックレイヤの復号も行うものである。VC−1復号装置500が、条件反転ビットプレーンの条件反転処理をピクチャレイヤで行うのに対して、VC−1復号装置700は、この条件反転処理をマクロブロックレイヤで行う。
【0173】
VC−1復号装置700は、ビットプレーンピクチャレイヤ復号部600と、記憶部710と、ビットプレーンマクロブロックレイヤ復号部720と、マクロブロックレイヤ復号部730を備える。
【0174】
図22は、ビットプレーンピクチャレイヤ復号部600の構成を示す。ビットプレーンピクチャレイヤ復号部600は、INVERT値復号部601と、符号化モード復号部602と、Norm−2/Diff−2復号部603と、Norm−6/Diff−6復号部604と、行スキップ復号部605と、列スキップ復号部606と、セレクタ610を備える。
【0175】
INVERT値復号部601、符号化モード復号部602、Norm−2/Diff−2復号部603、Norm−6/Diff−6復号部604、行スキップ復号部605、列スキップ復号部606は、VC−1復号装置500における相対応する構成と同じ機能を有するので、ここで詳細な説明を省略する。
【0176】
セレクタ610には、符号化モード復号部602により復号されたIMODEが入力される。セレクタ610は、4つの復号部から、IMODEにより示される符号化モードに対応した復号部の出力を選択して記憶部710に出力する。このように、ビットプレーンピクチャレイヤ復号部600から出力される中間データは、差分符号化モードの場合には残留値ビットプレーンであり、条件反転符号化モードの場合には条件反転ビットプレーンである。
【0177】
中間データ記憶部として機能する記憶部710は、セレクタ610の出力を記憶する。
【0178】
図23は、ビットプレーンマクロブロックレイヤ復号部720の構成を示す。ビットプレーンマクロブロックレイヤ復号部720は、マクロブロックレイヤで処理を行うものであり、予測値計算部722と、セレクタ723と、ラインバッファ724と、排他的論理和演算部725を有する。
【0179】
予測値計算部722とラインバッファ724は、VC−1復号装置500における予測値計算部522とラインバッファ524とそれぞれ同じであるので、ここで詳細な説明を省略する。
【0180】
セレクタ723にはInvert値、予測値p、IMODEが入力される。セレクタ723は、IMODEに応じてInvert値と予測値pのいずれかを排他的論理和演算部725に出力する。具体的には、IMODEが差分符号化モードを示すときには予測値pを出力し、IMODEが条件反転符号化モードを示すときにはInvert値を出力する。
【0181】
排他的論理和演算部725は、記憶部710から中間データを1マクロブロックずつ読み出して、対応するマクロブロックに対してセレクタ723からの出力と排他的論理和演算を行ってこのマクロブロックのビットプレーンデコード結果bを得る。これにより、差分符号化モードの場合には、ビットプレーンデコード結果bが中間データと予測値pとの排他的論理和演算の結果であり、条件反転符号化モードの場合には、ビットプレーンデコード結果bが中間データに対してInvert値に応じて条件反転処理されたものである。すなわち、ここでは、排他的論理和演算部725は、差分復元部とビット反転部を兼ねる。
【0182】
排他的論理和演算部725により得られたビットプレーンデコード結果bは、マクロブロックレイヤ復号部730に出力されるとともに、ラインバッファ724にも出力される。
【0183】
ラインバッファ724は、既にビットプレーンデコード結果bが得られたマクロブロックより後に処理されるマクロブロックの予測値pを計算するための参照データを必要な期間のみ記憶する。
【0184】
マクロブロックレイヤ復号部730は、ビットプレーンマクロブロックレイヤ復号部520から出力されてきたビットプレーンデコード結果bを用いてマクロブロックレイヤの復号をしてマクロブロックデコード結果mを得る。
【0185】
図24は、図21に示すVC−1復号装置700が行う処理の流れを示すフローチャートである。まず、ビットプレーンピクチャレイヤ復号部600によるピクチャレイヤでの処理が行われる(S1600〜S1603)。具体的には、まず、Invert値とIMODEが復号される(S1600)。IMODEがrawモードを示す場合(S1602:Yes)には、処理がマクロブロックレイヤの処理に進む。一方、IMODEがraw以外のモードを示す場合(S1602:No)には、その符号化方式に応じた復号が行われる(S1603)。この復号は、中間データを得るまでの処理であり、差分符号化モードの場合には残留値ビットプレーンが得られ、条件反転符号化モードの場合には条件反転ビットプレーンが得られる。これらの中間データは、記憶部710に記憶される(S1608)。
【0186】
ステップS1610からの処理は、マクロブロックレイヤで行われる。
まず、ステップS1610において、注目マクロブロックについて復号すべきビットプレーンが存在するか否かの確認がビットプレーンマクロブロックレイヤ復号部520により行われる。これはIMODEがrawモードを示すか否かの確認である。
【0187】
IMODEがrawモード以外を示す場合(S1610:Yes)場合には、Invert値または、ラインバッファ724に記憶された参照データに基づいて注目マクロブロックについての予測値pが算出される(S1612)。そして、セレクタ723により、IMODEが差分符号化を示す場合には予測値pが排他的論理和演算部725に出力され(S1614:Yes、S1616)、IMODEが条件反転符号化を示す場合にはInvert値が排他的論理和演算部725に出力される(S1614:No、S1618)。
【0188】
排他的論理和演算部725において、セレクタ723の出力と中間データの排他的論理和演算が行われ、注目マクロブロックのビットプレーンデコード結果bが得られる(S1620)。このビットプレーンデコード結果bは、ラインバッファ724とマクロブロックレイヤ復号部730に出力される(S1622)。なお、ラインバッファ724は、ビットプレーンデコード結果bを参照データとして必要な期間のみ記憶する。
【0189】
なお、注目マクロブロックについて復号すべきビットプレーンが複数存在する場合には、S1612〜S1622の処理は、それぞれのビットプレーンに対して実行される。
【0190】
ビットプレーンマクロブロックレイヤ復号部720からマクロブロックレイヤ復号部730に出力されたビットプレーンデコード結果bは、対応するマクロブロックの符号化要素の復号に用いられる(S1630)。
【0191】
なお、ステップS1610において、IMODEがrawモードを示す場合(S1610:No)には、マクロブロックレイヤ復号部730によりビットプレーン符号化されていない符号化要素の復号が行われる(S1630)。
【0192】
ステップS1610〜S1630までの処理は、1ピクチャのすべてのマクロブロックに対して行われた(S1632:Yes)ことをもって、このピクチャの処理が終了する。
【0193】
本実施の形態のVC−1復号装置700は、データ処理装置100、データ処理装置200、データ処理装置300の技術をVC−1方式のビットプレーンの復号に適用し、上記3つの技術の効果を得ることができる。VC−1復号装置700は、条件反転ビットプレーンの条件反転処理をマクロブロックレイヤで行うことによって、より装置の規模を小さくすることができる。
【0194】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、さまざまな変更、増減を加えてもよい。これらの変更、増減が加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【0195】
【図1】本発明の第1の復号技術を適用したデータ処理装置の構成を示すブロック図である。
【図2】図1に示すデータ処理装置におけるビットプレーンマクロブロックレイヤ復号部の構成を示すブロック図である。
【図3】図1に示すデータ処理装置の処理の流れを示すフローチャートである。
【図4】本発明の第1の復号技術を適用した他のデータ処理装置の構成を示すブロック図である。
【図5】本発明の第2の復号技術を適用したデータ処理装置の構成を示すブロック図である。
【図6】図5に示すデータ処理装置におけるビットプレーンピクチャレイヤ復号部の構成を示すブロック図である。
【図7】図5に示すデータ処理装置におけるビットプレーンマクロブロックレイヤ復号部の構成を示すブロック図である。
【図8】図5に示すデータ処理装置の処理の流れを示すフローチャートである。
【図9】図5に示すデータ処理装置に適用可能な他のビットプレーンピクチャレイヤ復号部の構成を示すブロック図である。
【図10】本発明の第3の復号技術を適用したデータ処理装置の構成を示すブロック図である。
【図11】図10に示すデータ処理装置におけるビットプレーンピクチャレイヤ復号部の構成を示すブロック図である。
【図12】図10に示すデータ処理装置におけるビットプレーンマクロブロックレイヤ復号部の構成を示すブロック図である。
【図13】図10に示すデータ処理装置の処理の流れを示すフローチャートである。
【図14】図10に示すデータ処理装置に適用可能な他のビットプレーンピクチャレイヤ復号部の構成を示すブロック図である。
【図15】本発明の第1の実施の形態にかかるVC−1復号装置の構成を示すブロック図である。
【図16】図15に示すVC−1復号装置におけるビットプレーンピクチャレイヤ復号部の構成を示すブロック図である。
【図17】図15に示すVC−1復号装置におけるビットプレーンマクロブロックレイヤ復号部の構成を示すブロック図である。
【図18】マクロブロックの走査順を示す図である。
【図19】予測値を計算する際に参照するデータの位置を説明するための図である。
【図20】図15に示すVC−1復号装置の処理の流れを示すフローチャートである。
【図21】本発明の第2の実施の形態にかかるVC−1復号装置の構成を示すブロック図である。
【図22】図21に示すVC−1復号装置におけるビットプレーンピクチャレイヤ復号部の構成を示すブロック図である。
【図23】図21に示すVC−1復号装置におけるビットプレーンマクロブロックレイヤ復号部の構成を示すブロック図である。
【図24】図21に示すVC−1復号装置の処理の流れを示すフローチャートである。
【図25】動画像符号化の一般的な階層構造を説明するための図である。
【図26】VC−1方式のビットストリームの構造を示す図である。
【図27】VC−1方式のビットストリームのピクチャレイヤの構造を示す図である。
【図28】ビットプレーンの例を示す図である。
【図29】VC−1方式のビットストリームにおけるピクチャヘッダの構造を示す図である。
【図30】VC−1方式の符号化ビットプレーンの構造を示す図である。
【図31】VC−1方式による符号化手法を説明するための図である。
【図32】ピクチャレイヤ以下の復号手順を示すフローチャートである。
【図33】ピクチャヘッダの復号手順を示すフローチャートである。
【図34】ビットプレーンの復号手順を示すフローチャートである。
【図35】ビットプレーンのデータビットの復号手順を示すフローチャートである。
【図36】従来技術による差分符号化ビットプレーンの復号手順を示すフローチャートである。
【図37】ビットプレーンを復号する際の問題点を説明するために用いられるデータ処理装置を示す図である。
【図38】図37に示すデータ処理装置におけるピクチャ一括ビットプレーン差分復元部を示す図である。
【図39】図37に示すデータ処理装置におけるマクロブロックレイヤ復号部の処理を示すフローチャートである。
【符号の説明】
【0196】
100 データ処理装置、 100a データ処理装置、 101 残留値ビットプレーン復号部、 101a ビットプレーンピクチャレイヤ復号部、 102 記憶部、 103 ビットプレーンマクロブロックレイヤ復号部、 105 マクロブロックレイヤ復号部、 106 予測値計算部、 107 差分復元部、 108 予測参照データ保存部、 109a 第1の残留値ビットプレーン復号部、 109b 第2の残留値ビットプレーン復号部、 200 データ処理装置、 201 ビットプレーンピクチャレイヤ復号部、 201a ビットプレーンピクチャレイヤ復号部、 202 ビットプレーン補助データ復号部、 202a ビットプレーン補助データ復号部、 203 残留値ビットプレーン復号部、 203a ビットプレーンデータビット復号部、 204 非差分符号化ビットプレーン復号部、205 選択部、 210 記憶部、 220 ビットプレーンマクロブロックレイヤ復号部、 221 予測値計算部、 222 差分復元部、 223 セレクタ、 224 予測参照データ保存部、 230 マクロブロックレイヤ復号部、 300 データ処理装置、 301 ビットプレーンピクチャレイヤ復号部、 301a ビットプレーンピクチャレイヤ復号部、 302 ビットプレーン補助データ復号部、 302a ビットプレーン補助データ復号部、 303 残留値ビットプレーン復号部、 303a 残留値ビットプレーン復号部、 304 非差分符号化ビットプレーン復号部、 304a 第1の非差分符号化ビットプレーン復号部、 305a 第2の非差分符号化ビットプレーン復号部、306 選択部、 310 記憶部、 320 ビットプレーンマクロブロックレイヤ復号部、 322 セレクタ、 323 予測参照データ保存部、 324 予測値計算部、 325 排他的論理和演算部、 330 マクロブロックレイヤ復号部、 400 ビットプレーンピクチャレイヤ復号部、 401 INVERT値復号部、 402 符号化モード復号部、 403 Norm−2/Diff−2復号部、 404 Norm−6/Diff−6復号部、 405 行スキップ復号部、 406 列スキップ復号部、 410 第一のセレクタ、 411 XOR、 413 第二のセレクタ、 500 VC−1復号装置、 510 記憶部、 520 ビットプレーンマクロブロックレイヤ復号部、 522 予測値計算部、 523 差分復元部、 524 ラインバッファ、 525 セレクタ、 530 マクロブロックレイヤ復号部、 600 ビットプレーンピクチャレイヤ復号部、 601 INVERT値復号部、 602 符号化モード復号部、 603 Norm−2/Diff−2復号部、 604 Norm−6/Diff−6復号部、 605 行スキップ復号部、 606 列スキップ復号部、 610 セレクタ、 700 VC−1復号装置、 710 記憶部、 720 ビットプレーンマクロブロックレイヤ復号部、 722 予測値計算部、 723 セレクタ、 724 ラインバッファ、 725 排他的論理和演算部、 730 マクロブロックレイヤ復号部。
【出願人】 【識別番号】302062931
【氏名又は名称】NECエレクトロニクス株式会社
【出願日】 平成18年8月18日(2006.8.18)
【代理人】 【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健


【公開番号】 特開2008−48240(P2008−48240A)
【公開日】 平成20年2月28日(2008.2.28)
【出願番号】 特願2006−222995(P2006−222995)