(57)【要約】【課題】  イントラブロックの復号終了を待たずに、画像変換と動き補償を開始し、効率のよい並列復号処理を実現すること。【解決手段】  他フレームの再構築済画像データに依存するインターブロックと、自フレーム内の再構築済画像データに依存するイントラブロックとを含む可変長復号済みデータを保持する。保持された前記可変長復号済みデータの各ブロックが、前記インターブロックか、イントラブロックかを判定する。インターブロックとイントラブロックとのそれぞれについて、どの画像ブロックの再構築が行なわれたか管理する。保持された可変長復号済みデータをブロック毎に変換して残差データを生成する。可変長復号済みデータがインターブロックの場合に残差データから動き補償を行い、画像ブロックを再構築する。可変長復号済みデータがイントラブロックの場合に残差データを保持する。処理中のイントラブロックが参照すべき参照ブロックが再構築済みの場合に、残差データと参照ブロックとから画像ブロックを再構築する。【選択図】  図１
2010041115.tif 000002
【特許請求の範囲】
【請求項１】
他フレームの再構築済画像データに依存するインターブロックと、自フレーム内の再構築済画像データに依存するイントラブロックと、を含む可変長復号済みデータを保持する保持手段と、
前記保持手段にて保持された前記可変長復号済みデータの各ブロックが、前記インターブロックか、前記イントラブロックかを判定する判定手段と、
インターブロックとイントラブロックとのそれぞれについて、どの画像ブロックの再構築が行なわれたか管理するブロック管理手段と、
前記保持手段にて保持された前記可変長復号済みデータをブロック毎に変換して残差データを生成する画像変換手段と、
前記可変長復号済みデータがインターブロックの場合に前記残差データから動き補償を行い、画像ブロックを再構築して、前記ブロック管理手段へ再構築終了を通知する動き補償手段と、
前記可変長復号済みデータがイントラブロックの場合に前記残差データを保持する残差データ保持手段と、
処理中のイントラブロックが参照すべき参照ブロックが再構築済みかを前記ブロック管理手段に問い合わせ、前記参照ブロックが再構築済みの場合に、前記残差データと前記参照ブロックとから画像ブロックを再構築して、前記ブロック管理手段へ再構築終了を通知するイントラ予測手段と、
再構築された画像ブロックを保持する画像保持手段と、
を含むことを特徴とする画像処理装置。
【請求項２】
前記画像変換手段は、２つ以上の可変長復号済みデータを入力し、それらを並列に処理することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ブロック管理手段は、再構築済みイントラブロック番号と再構築済みインターブロック番号を保持し、動き補償手段から再構築終了の通知をうけた段階で再構築済みインターブロック番号を更新し、イントラ予測手段からの再構築終了の通知をうけた段階で再構築済みイントラブロック番号を更新することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記ブロック管理手段は、参照ブロックが構築済みかどうかの問い合わせに対して、問い合わせられた参照ブロックの番号が、再構築済みイントラブロック番号と等しいか大きい場合、または、再構築済みインターブロック番号と等しいか大きい場合に、参照可能であることを返答することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記イントラ予測手段は、前記画像変換手段とは非同期に画像ブロックを再構築することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記可変長復号済みデータは、ＩＴＵ−ＴのＨ．２６４規格に準じて符号化された画像データを復号したデータであることを特徴とする請求項１に記載の画像処理装置。
【請求項７】
可変長復号済みデータに対し、ブロック毎に画像変換処理を加え、残差データを生成する画像変換ステップと、
前記可変長復号済みデータに含まれる複数ブロックのうち、画像変換処理が加えられた処理対象ブロックについて、他フレームの再構築済画像データに依存するインターブロックか、自フレーム内の再構築済画像データに依存するイントラブロックかを判定する判定ステップと、
前記処理対象ブロックがインターブロックである場合に、前記処理対象ブロックの残差データを利用して動き補償を行い画像ブロックを再構築する動き補償ステップと、
前記処理対象ブロックがイントラブロックである場合に、前記処理対象ブロックの残差データを残差データバッファへ一時的に記憶させる一時記憶ステップと、
前記残差データバッファの残差データを利用してイントラ予測を行い画像ブロックを再構築するイントラ予測ステップと、
を含むことを特徴とする画像処理方法。
【請求項８】
前記動き補償ステップを実行した後、復号済みのインターブロックの番号を更新する更新ステップを更に含むことを特徴とする請求項７に記載の画像処理方法。
【請求項９】
前記イントラ予測ステップは、
前記イントラブロックが参照すべき参照ブロックが再構築済みであるかを判断する判断ステップと、
前記参照ブロックが再構築済みである場合には、画像ブロックを再構築し、参照ブロックが再構築済みでない場合には、スレッドを待機させる待機ステップと、
を含むことを特徴とする請求項７に記載の画像処理方法。
【請求項１０】
再構築されたイントラブロック及びインターブロックの番号を管理する管理ステップを更に含むことを特徴とする請求項９に記載の画像処理方法。
【請求項１１】
前記判断ステップは、参照ブロックの番号が前記管理ステップで管理された番号と等しいか大きい場合に参照可能であると判断することを特徴とする請求項１０に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
動画像の復号処理に関する画像処理装置および画像処理方法に関するものである。
【背景技術】
【０００２】
従来から、動画通信を行なう際には、動画データを符号化して複数ブロックからなる符号化データを生成し、符号化データを送信し、受信側端末で符号化データに対して復号処理を行なって、動画を再構築している。ブロックとしては、他フレームの再構築画像を参照して動き補償処理を行なう必要のあるインターブロックと、他フレームの再構築画像を参照せず自フレームの再構築済画像データを参照して予測画像ブロックを再構築する必要のあるイントラブロックとがある。
【０００３】
一般的な動画の復号処理に用いられる技術として、可変長復号方式（ＶＬＤ：Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）、ｉＤＣＴ（逆離散コサイン変換）、逆量子化、イントラ予測処理、動き補償処理が挙げられる。これらのうち、ＶＬＤ、ｉＤＣＴ、逆量子化は、再構築された画像に依存せず、動き補償処理も、すでに、画像の再構築が完了している他フレームの画像を参照するため、同一フレーム内の再構築された画像を参照しない。ＭＰＥＧ−２などの旧来の符号化方式のイントラ予測処理も、同一フレーム内の再構築された画像を参照しない。このため、旧来の符号化方式形式では、全ての処理を独立して行うことが可能であり、特許文献１のように比較的容易に復号処理を並列に実行することが可能であった。
【０００４】
高速な処理を実現するだけでなく、同一の演算性能を保ったまま、消費電力を削減するには、上記のように演算回路の並列処理を行なうことが非常に重要である。消費電力は動作周波数×電圧の２乗に比例するため、例えば、動作周波数を半分、電圧を７０％にできた場合、２つの演算回路の消費電力は、同一の演算性能を持つ一つの演算回路の約５０％にすることができる。
【０００５】
【特許文献１】特開２００２−３２５２５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、Ｈ．２６４などの符号化方式は、復号処理により再構築された同一フレーム内の画像ブロックを参照してイントラ予測処理を行うことにより符号化効率をあげている。これによれば、参照ブロックの再構築が終了しないと現ブロックの復号処理が開始できない。そのため、例えば、連続する２つのイントラブロックのうち、第２ブロックが第１ブロックを再構築して生成した画像ブロックを参照する場合、これら２つのブロックを同時に復号することは難しかった。例えば、図６のようなブロックの並びの場合、並列処理を実行しようとすると、従来は、図７のように、ブロックＣとブロックＤのイントラ予測処理を待って、ブロックＥとブロックＦの画像変換処理を行う必要があった。
【０００７】
本発明は、上記従来技術の課題を解決するためになされたもので、その目的とするところは、先のイントラブロックの復号終了を待たずに、次のブロックの画像変換を開始させ、効率のよい並列復号処理を行なうことにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明に係る装置は、
他フレームの再構築済画像データに依存するインターブロックと、自フレーム内の再構築済画像データに依存するイントラブロックと、を含む可変長復号済みデータを保持する保持手段と、
前記保持手段にて保持された前記可変長復号済みデータの各ブロックが、前記インターブロックか、前記イントラブロックかを判定する判定手段と、
インターブロックとイントラブロックとのそれぞれについて、どの画像ブロックの再構築が行なわれたか管理するブロック管理手段と、
前記保持手段にて保持された前記可変長復号済みデータをブロック毎に変換して残差データを生成する画像変換手段と、
前記可変長復号済みデータがインターブロックの場合に前記残差データから動き補償を行い、画像ブロックを再構築して、前記ブロック管理手段へ再構築終了を通知する動き補償手段と、
前記可変長復号済みデータがイントラブロックの場合に前記残差データを保持する残差データ保持手段と、
処理中のイントラブロックが参照すべき参照ブロックが再構築済みかを前記ブロック管理手段に問い合わせ、前記参照ブロックが再構築済みの場合に、前記残差データと前記参照ブロックとから画像ブロックを再構築して、前記ブロック管理手段へ再構築終了を通知するイントラ予測手段と、
再構築された画像ブロックを保持する画像保持手段と、
を含むことを特徴とする。
【０００９】
上記目的を達成するため、本発明に係る方法は、
可変長復号済みデータに対し、ブロック毎に画像変換処理を加え、残差データを生成する画像変換ステップと、
前記可変長復号済みデータに含まれる複数ブロックのうち、画像変換処理が加えられた処理対象ブロックについて、他フレームの再構築済画像データに依存するインターブロックか、自フレーム内の再構築済画像データに依存するイントラブロックかを判定する判定ステップと、
前記処理対象ブロックがインターブロックである場合に、前記処理対象ブロックの残差データを利用して動き補償を行い画像ブロックを再構築する動き補償ステップと、
前記処理対象ブロックがイントラブロックである場合に、前記処理対象ブロックの残差データを残差データバッファへ一時的に記憶させる一時記憶ステップと、
前記残差データバッファの残差データを利用してイントラ予測を行い画像ブロックを再構築するイントラ予測ステップと、
を含むことを特徴とする。
【発明の効果】
【００１０】
イントラブロックの復号終了を待たずに、画像変換と動き補償を開始できるため、処理待ちが発生しにくく、効率のよい並列復号処理が可能となった。
【発明を実施するための最良の形態】
【００１１】
以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１２】
＜第１実施形態＞
本発明の画像処理装置の第１実施形態について、図面を参照しながら説明する。図１は、第１実施形態に係る画像処理装置を示すブロック図である。
【００１３】
本実施形態に係る画像処理装置は、ＩＴＵ−ＴのＨ．２６４規格などの符号化方式で符号化された符号化データを復号するための装置である。しかし、本発明はこの規格に限定されるものではなく、他の符号化方法を採用するシステムにも適用できる。
【００１４】
イントラインター判定回路１０１と、ｉＤＣＴと逆量子化を行う画像変換回路１０２、１０３と、イントラブロックの残差データを保持する残差データバッファ１０４と、イントラ予測回路１０５とを含む。本装置は、更にＶＬＤ済み復号データを保持するＶＬＤデータバッファ１０６と、動き補償回路１０７、１０８と、構築済みのイントラブロック番号とインターブロック番号を記憶するブロック管理回路１０９と、を含む。更に本装置は、再構築された画像ブロックを保持する画像保持手段として機能する画像メモリ１１０を含む。
【００１５】
まず、ＶＬＤデータバッファ１０６は、可変長復号済データ（ＶＬＤデータ）の処理対象ブロックを受け取り、ブロック毎に一時的に記憶する。
【００１６】
画像変換回路１０２は、ＶＬＤデータバッファ１０６に記憶されたＶＬＤ済みデータをブロック毎に逆ＤＣＴと逆量子化によって復号して残差データを生成する。画像変換回路１０３は、画像変換回路１０２と同様に、ＶＬＤデータバッファ１０６のＶＬＤ済みデータを処理し、残差データを生成する。
【００１７】
イントラインター判定回路１０１は、ＶＬＤデータバッファ１０６に記憶されたＶＬＤ済みデータの識別フラグをチェックする。そして、識別フラグがインターブロックを示すものである場合には、残差データを画像変換回路１０２から動き補償回路１０７へ出力させ、画像変換回路１０３から動き補償回路１０８へ出力させる。一方、識別フラグがイントラブロックを示すものである場合には、残差データを残差データバッファ１０４へ一時記憶させる。つまり、残差データバッファ１０４は残差データ保持手段として機能する。
【００１８】
動き補償回路１０７は、画像メモリ１１０上に再構築された画像のピクセルを残差データから参照して動き補償を行い、生成した画像ブロックを画像メモリ１１０に書き出し、ブロック管理回路１０９に再構築終了を通知する。ブロック管理回路１０９は、この通知に対し再構築済みインターブロック番号を更新する。一方、動き補償回路１０８は、画像変換回路１０３から受け取った残差データに対し、動き補償回路１０７と同様に動作する。
【００１９】
イントラ予測回路１０５は、残差データバッファ１０４が残差データを受け取った時点、あるいは、動き補償回路１０７、１０８の動き補償処理が終了した時点で、イントラブロックの残差データが残差データバッファ１０４に保持されているかを判定する。保持されている場合には、そのイントラブロックが参照すべき自フレーム内の参照ブロックが参照可能であるかをブロック管理回路１０９に問い合わせ、保持されていない場合は、待機する。ここで、ＩＴＵ−ＴのＨ．２６４に準ずる場合、イントラ予測時の参照ブロックは、上や左などに隣接するブロックである。
【００２０】
インターブロックが続く場合イントラブロックの残差データが存在しないことになる。イントラブロックの残差データがあるときのみ回路を動作させるためにデータの存在をチェックしている。
すなわち、ブロック管理回路１０９は、イントラ予測回路１０５からの問い合わせに対して、参照ブロックが再構築済みである場合に参照可能であることを返答する。
【００２１】
イントラ予測回路１０５は、ブロック管理回路１０９に問い合わせた結果、参照ブロックが参照可能な場合には、画像メモリ上に再構築された画像のピクセルを参照してイントラ予測画像ブロックを生成し、参照ブロックが参照不可能である場合には待機する。参照ブロックが参照可能な場合、イントラ予測回路１０５が生成したイントラ予測画像ブロックを画像メモリ１１０の該当ブロックの位置に書き出す。そして、ブロック管理回路１０９の再構築済みイントラブロック番号を更新し、残差データバッファ１０４の残差データを削除する。
【００２２】
以上の一連の処理がブロック単位で行われる。
【００２３】
このような回路構成をとることにより、画像ブロックを、必ずしも、ブロック番号順に再構築する必要がなくなる。例えば、図６のようなブロック列の場合に、ブロックＣ、Ｄの画像変換結果を残差データバッファに一時的に記憶させる。これにより、図８のように、ブロックＣ、Ｄのイントラ予測処理を待たずに、先行して、非同期に、ブロックＥとブロックＦの処理を開始することができ、画像変換回路の待ち時間が少ない、効率的な復号処理が可能となる。
【００２４】
なお、本実施の形態では、画像変換回路、動き補償回路を２つとしているがこれは２つに限定されるものではなく、３つ以上でもよい。また、残差データバッファ、ＶＬＤバッファ、画像メモリを独立した回路としているが、データを一つ以上のメモリ回路で共有してもよい。
本実施例では、画像変換の方法として、直交変換・量子化処理を行っているがそれに限定されるものではなく、ＰＣＭ（pulse code modulation）変換や、複数の変換方式を動的に切り替える構成もとりうる。
【００２５】
（第２実施形態）
第１実施形態では、イントラ予測回路を高い動作周波数で駆動させないとバッファ不足が発生しやすくなり、その場合、他の回路を待機させる必要があった。第２実施形態では、消費電力削減効果を得るために最低限の電圧・動作周波数でイントラ予測回路を動作させる。
【００２６】
図２は、第２実施形態としての画像処理装置のブロック図である。電圧・動作周波数制御回路２０１を組み込んだ点が第１実施形態と異なる。ここでは、残差データバッファには、６ブロックの残差データを保持できるものとして説明する。他の構成及びその動作については、第１実施形態と同様であるため、同じ構成については同じ符号を付してその説明を省略する。
【００２７】
動作周波数制御回路２０１は、残差データバッファ１０４に保持されている残差データの量を監視する。そして、入力されている残差データが３ブロック以上の場合には、イントラ予測回路１０５に与える電圧を１．５倍と動作周波数を２倍に向上させ、残差データが２ブロック未満になった時点で、通常の電圧と動作周波数に戻す。
【００２８】
イントラ予測回路は、画像変換回路の出力結果を直接イントラ予測回路と動き補償回路に出力していたため、全ての回路を同期させる必要があり、イントラ予測回路の動作周波数のみを動的に向上させることは難しかった。しかし、本実施の形態では、残差データバッファを用いブロックの復号状況の管理をイントラブロックとインターブロックとで独立して行っているため、他の回路と独立してイントラ予測回路を駆動させることが可能となっている。
【００２９】
残りバッファ数と処理速度の例を図９を用いて説明する。バッファに残差データが３以上になったとき、動作周波数が２倍、つまり、単位時間当たりのブロック数の減少が２倍になる。
【００３０】
このように第２実施形態でのイントラ予測回路は、通常時は、最低限の動作周波数と電圧駆動させ、つまり、最低限の消費電力で駆動することが可能である。そして、符号化データのイントラブロックの頻度が多い場合にのみ電力を消費するため、バッファ不足を発生しにくいにもかかわらず、平均して消費電力を低く抑えることができる。
【００３１】
なお、残差データバッファが一時記憶できる残差データは、６ブロックに限るものではない。動作電圧と動作周波数を切り替えるブロック数は、３に限るものではない。向上させる動作電圧と動作周波数は、それぞれ、１．５倍、２倍に限るものではない。
【００３２】
（第３実施形態）
本発明の第３実施形態として、画像処理方法をソフト的に実行させるためのプログラム及びシステムについて、図３〜図５及び図１０を参照しながら説明する。
【００３３】
図１０は、本実施形態を実現するシステムの概要を示す図である。本システムは、ＣＰＵ９０１〜９０３と、ＨＤＤ９０４と、ＲＡＭ９０５とを含む。そして、ＨＤＤ９０４に記録されたプログラムファイルをＲＡＭ９０５に読み出し、ＣＰＵ９０１、ＣＰＵ９０２、ＣＰＵ９０３がその読出されたプログラムファイルを実行することにより、画像復号処理を実行し、復号画像をメモリに書き出す。
【００３４】
図３〜図５は、本実施形態としてのプログラムのアルゴリズムを示すフローチャートである。なお、図３で示される処理は、２つのスレッド１、２として動作する。
【００３５】
図３のフローチャートにおいて、Ｓ３０１では、外部からスレッド開始の指示があるまで待機し、指示があった段階でＳ３０２を実行する。Ｓ３０２では、ＶＬＤ済みブロックデータから、ｉＤＣＴと逆量子化を行い、残差データを生成する。Ｓ３０３では、ＶＬＤ済みデータの識別フラグがイントラブロックかインターブロックかを判定し、識別フラグがイントラブロックを示すものである場合には、Ｓ３０７を実行し、インターブロックを示すものである場合には、Ｓ３０４を実行する。Ｓ３０４では、残差データを利用して動き補償を実行して再構築画像データを生成し画像メモリの該当ブロック位置に書き出す。Ｓ３０５では、復号済みインターブロック番号を現インターブロック番号として更新する。Ｓ３０６では、イントラ予測スレッドを開始させる。Ｓ３０７は、残差データバッファが一杯であるかを判定し、一杯である場合はＳ３０８を実行し、一杯でない場合には、Ｓ３０９を実行する。Ｓ３０８では、イントラ予測スレッドが残差データをバッファに空きを作るまで、待ち状態を維持する。Ｓ３０９で、残差データバッファに残差データを一時的に記憶させたあと、Ｓ３０６を実行する。
【００３６】
Ｓ３０６で開始されるイントラ予測処理について、図４のフローチャートに従って説明する。イントラ予測処理が開始されると、Ｓ４０１では、残差データが残差データバッファに保持されているかを確認し、保持されている場合には、Ｓ４０２を実行し、保持されていない場合には、Ｓ４０７を実行する。Ｓ４０２では、イントラ予測の参照ブロックのブロック番号が、再構築済みイントラブロック番号と等しいか大きい、または、再構築済みインターブロック番号と等しいか大きい場合に参照可能であると判断する。参照可能でない場合には、Ｓ４０７を実行し、参照可能である場合には、Ｓ４０３を実行する。Ｓ４０３では、残差データからイントラ予測画像を生成し該当メモリ位置にイントラ予測画像を出力する。Ｓ４０４では、残差データバッファから処理済の残差データを削除する。Ｓ４０６では、復号済みイントラブロック番号を現イントラブロック番号として更新する。Ｓ４０７は、外部からのスレッド再開の指示があるまで待機する。
【００３７】
図３を用いて説明した画像復号処理の２つのスレッドの起動制御について図５のフローチャートに従って説明する。まず、Ｓ５０１において、復号済みＶＬＤデータ入力されると、スレッド１の処理状態を確認し、処理中である場合は、Ｓ５０２の処理に進む。スレッド１が処理中でない場合には、Ｓ５０５に進み、スレッド１を起動する。Ｓ５０２では、スレッド２の処理状態を確認し、処理中でない場合は、Ｓ５０６に進み、スレッド２を起動する。スレッド１及びスレッド２が処理中であれば、Ｓ５０４に進み、スレッド１およびスレッド２のいずれかの処理が完了するまで待機する。どちらかの処理が完了するとＳ５０２に戻る。
【００３８】
上記のフローにより、画像変換ステップと動き補償ステップを並列して実行可能となり、イントラ予測ブロックが連続しても処理待ちが発生せずに、複数のＣＰＵが搭載されたコンピュータでこのプログラムを実行する場合、高速化が可能である。
【００３９】
なお、図１０におけるＣＰＵの数は、３に限定されるものではない。また、本実施の形態では、図３に示す処理のスレッドの数を２としているがこれに限定するものでない。
【図面の簡単な説明】
【００４０】
【図１】第１実施形態としての回路構成を示す図である。
【図２】第２実施形態としての回路構成を示す図である。
【図３】第３実施形態を説明する復号処理手順を示すフローチャートである。
【図４】第３実施形態を説明するイントラ予測スレッドの処理手順を示すフローチャートである。
【図５】第３実施形態を説明する復号処理の起動手順を示すフローチャートである。
【図６】ブロックの並びの例を示す図である。
【図７】従来方式でのタイムチャートを示す図である。
【図８】第１実施形態でのタイムチャートである。
【図９】第２実施形態で説明されるバッファ数変動の例を示す図である。
【図１０】第３実施形態を実行するシステム構成を示す図である。
【図１】
2010041115.tif 000003
【図２】
2010041115.tif 000004
【図３】
2010041115.tif 000005
【図４】
2010041115.tif 000006
【図５】
2010041115.tif 000007
【図６】
2010041115.tif 000008
【図７】
2010041115.tif 000009
【図８】
2010041115.tif 000010
【図９】
2010041115.tif 000011
【図１０】
2010041115.tif 000012