(57)【要約】【課題】ＭＢループ処理内においてデブロッキング処理を行うことができ、また、データのロードとストアの回数を削減でき、ひいては全体処理の高速化を実現可能な画像処理装置およびその方法、並びにプログラムを提供する。【解決手段】ノイズ低減のためのデブロッキングフィルタをもつようなたとえばビデオ・コーデックの信号処理において、ＭＢ単位において予測処理とデブロッキング処理を完了させ、イントラ予測用にはデブロッキング処理前の画素データが必要となるため、演算装置１７０において新たに隣接上ＭＢの最下端のデータと隣接左ＭＢの最右端のデータを保持するように構成されている。【選択図】図１
2009049460.tif 000002
【特許請求の範囲】
【請求項１】
ブロック単位で直交変換を施して量子化された画像圧縮情報を逆量子化し、逆直交変換を施して復号する画像処理装置であって、
逆量子化された係数データに対して逆直交変換処理を施す逆直交変換部と、
供給された量子化データによりインタ（inter）マクロブロック(ＭＢ)かイントラ（intra）ＭＢかを判別し、インタＭＢの場合には所定の動き補償（ＭＣ）を行い、イントラＭＢの場合にはイントラ予測を行う動き補償予測部と、
上記動き補償予測部の処理結果に対してデブロッキング処理を行うデブロッキング処理部と、
フレームバッファと、
上記逆直交変換部の処理および上記動き補償予測部の処理に応じた演算処理を行い、復号されたＭＢデータを生成可能で、上記デブロッキング処理部の処理に応じたフィルタリング処理を行い、デブロッキング処理後のＭＢデータを上記フレームバッファにストアする演算装置と、を有し、
上記演算装置は、
上記逆直交変換部の処理および上記ＭＣ処理とデブロッキング処理を後続ＭＢの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のＭＢ内の新たな隣接上ＭＢの最下端のデータと隣接左ＭＢの最右端のデータを保持する
画像処理装置。
【請求項２】
上記演算装置は、
記憶装置に、デブロッキング前の復号後のＭＢ内の下端１ライン分の画素データと右端１列分の画素データを保持する
請求項１記載の画像処理装置。
【請求項３】
上記動き補償予測部は、
上記ＭＣ処理を行う場合、予測した動き情報に基づき上記フレームバッファに保持されている参照画像から予測ＭＢを上記演算装置の記憶装置にロードさせ、
上記演算装置は、
所定精度の画素データの計算を行い、動き補償後のＭＢデータを復号し、続いて先の逆直交変換処理結果と当該動き補償後のＭＢデータとを加算して復号されたＭＢデータを生成し、復号されたＭＢデータに対しては後続のＭＢがイントラ予測であった場合に備え、上記記憶装置に、デブロッキング前の復号後のＭＢ内の下端１ライン分の画素データと右端１列分の画素データを保持する
請求項２記載の画像処理装置。
【請求項４】
上記動き補償予測部は、
上記イントラＭＢの場合、イントラ予測の種別を判断し、上記演算装置に予測モード情報を供給し、
上記演算装置は、
上記予測モードに基づき、上記記憶装置の保持データを用いてイントラ予測後のＭＢデータを復号し、続いて先の逆直交変換処理結果と当該動き補償後のＭＢデータとを加算して復号されたＭＢデータを生成し、上記記憶装置に、デブロッキング前の復号後のＭＢ内の下端１ライン分の画素データと右端１列分の画素データを保持する
請求項２記載の画像処理装置。
【請求項５】
上記動き補償予測部は、
上記イントラＭＢの場合、イントラ予測の種別を判断し、上記演算装置に予測モード情報を供給し、
上記演算装置は、
上記予測モードに基づき、上記記憶装置の保持データを用いてイントラ予測後のＭＢデータを復号し、続いて先の逆直交変換処理結果と当該動き補償後のＭＢデータとを加算して復号されたＭＢデータを生成し、上記記憶装置に、デブロッキング前の復号後のＭＢ内の下端１ライン分の画素データと右端１列分の画素データを保持する
請求項３記載の画像処理装置。
【請求項６】
上記デブロッキング処理部は、
デブロッキングのモード計算を行って係数値を上記演算装置に供給し、周辺画素データを上記フレームバッファから上記記憶装置にロードさせ、
上記演算装置は、
供給された上記係数値を参照して上記フィルタリング処理を行い、当該処理後のＭＢデータを上記フレームバッファにストアする
請求項２記載の画像処理装置。
【請求項７】
上記デブロッキング処理部は、
デブロッキングのモード計算を行って係数値を上記演算装置に供給し、周辺画素データを上記フレームバッファから上記記憶装置にロードさせ、
上記演算装置は、
供給された上記係数値を参照して上記フィルタリング処理を行い、当該処理後のＭＢデータを上記フレームバッファにストアする
請求項４記載の画像処理装置。
【請求項８】
上記デブロッキング処理部は、
デブロッキングのモード計算を行って係数値を上記演算装置に供給し、周辺画素データを上記フレームバッファから上記記憶装置にロードさせ、
上記演算装置は、
供給された上記係数値を参照して上記フィルタリング処理を行い、当該処理後のＭＢデータを上記フレームバッファにストアする
請求項５記載の画像処理装置。
【請求項９】
上記各処理が並列化され、パイプライン化されている
請求項８記載の画像処理装置。
【請求項１０】
ブロック単位で直交変換を施して量子化された画像圧縮情報を逆量子化し、逆直交変換を施して復号する画像処理方法であって、
逆量子化された係数データに対して逆直交変換処理を施す逆直交変換ステップと、
供給された量子化データによりインタ（inter）マクロブロック(ＭＢ)かイントラ（intra）ＭＢかを判別し、インタＭＢの場合には所定の動き補償（ＭＣ）を行い、イントラＭＢの場合にはイントラ予測を行う動き補償予測ステップと、
上記動き補償予測ステップの処理結果に対してデブロッキング処理を行うデブロッキングステップと、
上記逆直交変換ステップの処理および上記動き補償予測ステップの処理に応じた演算処理を行い、復号されたＭＢデータを生成し、上記デブロッキングステップの処理に応じたフィルタリング処理を行い、デブロッキング処理後のＭＢデータをフレームバッファにストアする演算ステップと、を有し、
上記演算ステップにおいて、
上記逆直交変換ステップの処理および上記ＭＣ処理とデブロッキング処理を後続ＭＢの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のＭＢ内の新たな隣接上ＭＢの最下端のデータと隣接左ＭＢの最右端のデータを保持する
画像処理方法。
【請求項１１】
ブロック単位で直交変換を施して量子化された画像圧縮情報を逆量子化し、逆直交変換を施して復号する画像処理であって、
逆量子化された係数データに対して逆直交変換処理を施す逆直交変換処理と、
供給された量子化データによりインタ（inter）マクロブロック(ＭＢ)かイントラ（intra）ＭＢかを判別し、インタＭＢの場合には所定の動き補償（ＭＣ）を行い、イントラＭＢの場合にはイントラ予測を行う動き補償予測処理と、
上記動き補償予測ステップの処理結果に対してデブロッキング処理を行うデブロッキング処理と、
上記逆直交変換ステップの処理および上記動き補償予測ステップの処理に応じた演算処理を行い、復号されたＭＢデータを生成し、上記デブロッキングステップの処理に応じたフィルタリング処理を行い、デブロッキング処理後のＭＢデータをフレームバッファにストアする演算処理と、を有し、
上記演算処理において、
上記逆直交変換処理および上記ＭＣ処理とデブロッキング処理を後続ＭＢの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のＭＢ内の新たな隣接上ＭＢの最下端のデータと隣接左ＭＢの最右端のデータを保持する
画像処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル画像を処理する画像処理装置およびその方法、並びにプログラムに関するものである。
【背景技術】
【０００２】
近年、画像情報をデジタル化して取り扱い、その際、効率の高い情報の伝達および蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換（Discrete Cosine Transform：ＤＣＴ）等の直交変換と動き補償とにより圧縮するＭＥＰＧ（Moving Picture Experts Group）などの方式に準拠した装置が普及している。
【０００３】
そのＭＰＥＧにおいても、より高い解像度やより滑らかな画像表示を行うために高速なコーデック処理要求が高まってきおり、主にＡＳＩＣ等の専用回路を用いて高速化を図る手法がとられてきた。
しかし、画像伸張・圧縮手法に関しては多種多彩になってきており、専用回路での実現では、これらに柔軟に対応することが困難である。
【０００４】
その解決策として、処理装置であるＣＰＵと再構成可能（リコンフィギュアブル）な演算装置を使用し、この再構成可能（リコンフィギュアブル）な演算装置の処理とＣＰＵ処理を並列化することにより高速化を図る手法が提案されている。
【０００５】
通常のH..264/AVC復号処理においては、１スライス（ピクチャ）内での各マクロブロック（ＭＢ）の逆量子化（ＩＱ）、逆直交変換（ＩＤＣＴ）と予測処理（イントラ（intra）、インタ(inter）)を終了し、同一スライス内に含まれる全ＭＢデータを復号した後、ノイズ低減のためのデブロッキング処理を行う。
【０００６】
そして、再構成可能な演算装置は、内部に演算内容を定義した命令セット記憶レジスタ、演算器の集まりと演算に必要な係数を記憶するバッファ、処理データのＲＡＭ等のローカルな記憶装置（バッファ）を有する。
再構成可能な演算装置を用いた復号処理においては、ＣＰＵ側で所定の処理を行っている間、演算装置では、ローカルな記憶装置へのデータのロード(LOAD)し、フレームバッファにストア（STORE）を行ったり、演算器で演算処理を行わせたりすることで、処理の効率化を図っている。
【０００７】
再構成可能な演算装置においては、ソフトウェア処理でサイクル数が大きくなりリアルタイム性を保証できるように、イントラ予測処理や動き補償に関するデータ処理を行う。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、通常、復号処理においては、イントラ予測処理はデブロッキング処理前のデータを用いて予測を行うため、同一スライスに含まれるＭＢ復号処理が終了するまでデブロッキング処理が行えない。
したがって、予測処理前後とデブロッキング処理前後に入力データのロードと処理結果のストアが発生し、結果的に処理時間が通常よりも多くかかる。
【０００９】
より具体的には、通常の復号手順のままでは、イントラ予測時もしくは動き補償時のデータを記憶装置（バッファ）にロードした後、再びフレームバッファにストアする。
その後再びでブロッキング処理時に同様に、データのロードとストア処理が発生するため、結果として処理サイクルが増える。
【００１０】
本発明は、ＭＢループ処理内においてデブロッキング処理を行うことができ、また、データのロードとストアの回数を削減でき、ひいては全体処理の高速化を実現可能な画像処理装置およびその方法、並びにプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の観点は、入力画像信号をブロック化し、当該ブロック単位で直交変換を施して量子化された画像圧縮情報を逆量子化し、逆直交変換を施して復号する画像処理装置であって、逆量子化された係数データに対して逆直交変換処理を施す逆直交変換部と、供給された量子化データによりインタ（inter）マクロブロック(ＭＢ)かイントラ（intra）ＭＢかを判別し、インタＭＢの場合には所定の動き補償（ＭＣ）を行い、イントラＭＢの場合にはイントラ予測を行う動き補償予測部と、上記動き補償予測部の処理結果に対してデブロッキング処理を行うデブロッキング処理部と、フレームバッファと、上記逆直交変換部の処理および上記動き補償予測部の処理に応じた演算処理を行い、復号されたＭＢデータを生成可能で、上記デブロッキング処理部の処理に応じたフィルタリング処理を行い、デブロッキング処理後のＭＢデータを上記フレームバッファにストアする演算装置と、を有し、上記演算装置は、上記逆直交変換部の処理および上記ＭＣ処理とデブロッキング処理を後続ＭＢの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のＭＢ内の新たな隣接上ＭＢの最下端のデータと隣接左ＭＢの最右端のデータを保持する。
【００１２】
好適には、上記演算装置は、記憶装置に、デブロッキング前の復号後のＭＢ内の下端１ライン分の画素データと右端１列分の画素データを保持する。
【００１３】
好適には、上記動き補償予測部は、上記ＭＣ処理を行う場合、予測した動き情報に基づき上記フレームバッファに保持されている参照画像から予測ＭＢを上記演算装置の記憶装置にロードさせ、上記演算装置は、所定精度の画素データの計算を行い、動き補償後のＭＢデータを復号し、続いて先の逆直交変換処理結果と当該動き補償後のＭＢデータとを加算して復号されたＭＢデータを生成し、復号されたＭＢデータに対しては後続のＭＢがイントラ予測であった場合に備え、上記記憶装置に、デブロッキング前の復号後のＭＢ内の下端１ライン分の画素データと右端１列分の画素データを保持する。
【００１４】
好適には、上記動き補償予測部は、上記イントラＭＢの場合、イントラ予測の種別を判断し、上記演算装置に予測モード情報を供給し、上記演算装置は、上記予測モードに基づき、上記記憶装置の保持データを用いてイントラ予測後のＭＢデータを復号し、続いて先の逆直交変換処理結果と当該動き補償後のＭＢデータとを加算して復号されたＭＢデータを生成し、上記記憶装置に、デブロッキング前の復号後のＭＢ内の下端１ライン分の画素データと右端１列分の画素データを保持する。
【００１５】
好適には、上記デブロッキング処理部は、デブロッキングのモード計算を行って係数値を上記演算装置に供給し、周辺画素データを上記フレームバッファから上記記憶装置にロードさせ、上記演算装置は、供給された上記係数値を参照して上記フィルタリング処理を行い、当該処理後のＭＢデータを上記フレームバッファにストアする。
【００１６】
好適には、上記各処理が並列化され、パイプライン化されている。
【００１７】
本発明の第２の観点は、入力画像信号をブロック化し、当該ブロック単位で直交変換を施して量子化された画像圧縮情報を逆量子化し、逆直交変換を施して復号する画像処理方法であって、逆量子化された係数データに対して逆直交変換処理を施す逆直交変換ステップと、供給された量子化データによりインタ（inter）マクロブロック(ＭＢ)かイントラ（intra）ＭＢかを判別し、インタＭＢの場合には所定の動き補償（ＭＣ）を行い、イントラＭＢの場合にはイントラ予測を行う動き補償予測ステップと、上記動き補償予測ステップの処理結果に対してデブロッキング処理を行うデブロッキングステップと、上記逆直交変換ステップの処理および上記動き補償予測ステップの処理に応じた演算処理を行い、復号されたＭＢデータを生成し、上記デブロッキングステップの処理に応じたフィルタリング処理を行い、デブロッキング処理後のＭＢデータをフレームバッファにストアする演算ステップと、を有し、上記演算ステップにおいて、上記逆直交変換ステップの処理および上記ＭＣ処理とデブロッキング処理を後続ＭＢの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のＭＢ内の新たな隣接上ＭＢの最下端のデータと隣接左ＭＢの最右端のデータを保持する。
【００１８】
本発明の第３の観点は、入力画像信号をブロック化し、当該ブロック単位で直交変換を施して量子化された画像圧縮情報を逆量子化し、逆直交変換を施して復号する画像処理であって、逆量子化された係数データに対して逆直交変換処理を施す逆直交変換処理と、供給された量子化データによりインタ（inter）マクロブロック(ＭＢ)かイントラ（intra）ＭＢかを判別し、インタＭＢの場合には所定の動き補償（ＭＣ）を行い、イントラＭＢの場合にはイントラ予測を行う動き補償予測処理と、上記動き補償予測ステップの処理結果に対してデブロッキング処理を行うデブロッキング処理と、上記逆直交変換ステップの処理および上記動き補償予測ステップの処理に応じた演算処理を行い、復号されたＭＢデータを生成し、上記デブロッキングステップの処理に応じたフィルタリング処理を行い、デブロッキング処理後のＭＢデータをフレームバッファにストアする演算処理と、を有し、上記演算処理において、上記逆直交変換処理および上記ＭＣ処理とデブロッキング処理を後続ＭＢの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のＭＢ内の新たな隣接上ＭＢの最下端のデータと隣接左ＭＢの最右端のデータを保持する画像処理をコンピュータに実行させるプログラムである。
【００１９】
本発明によれば、演算装置において、逆直交変換部の処理および動き補償予測部の処理に応じた演算処理が行われ、復号されたＭＢデータが生成される。また、デブロッキング処理部の処理に応じたフィルタリング処理が行われ、デブロッキング処理後のＭＢデータがフレームバッファにストアされる。
そして演算装置においては、逆直交変換部の処理およびＭＣ処理とデブロッキング処理を後続ＭＢの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のＭＢ内の新たな隣接上ＭＢの最下端のデータと隣接左ＭＢの最右端のデータが保持される。
【発明の効果】
【００２０】
本発明によれば、ＭＢループ処理内においてデブロッキング処理を行うことができ、また、データのロードとストアの回数を削減でき、ひいては全体処理の高速化を実現可能である。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面に関連付けて説明する。
【００２２】
図１は、本発明の実施形態に係る画像処理装置の構成を示すブロック図である。
【００２３】
本画像処理装置１００は、図１に示すように、可変長復号化部（ＶＬＤ）１１０、逆量子化部（ＩＱ）１２０、逆直交変換部としてのＩＤＣＴ変換部（逆離散コサイン変換部）１３０、動き補償予測部１４０、デブロッキング処理部１５０、フレームバッファ１６０、およびたとえばソフトウェア的(ＳＷ的)に再構成可能（リコンフィギュアブル）な演算装置１７０を有する。
【００２４】
本実施形態に係る画像処理装置１００においては、ノイズ低減のためのデブロッキングフィルタをもつようなビデオ・コーデックの信号処理において、ＭＢ単位において予測処理とデブロッキング処理を完了させる。そして、イントラ予測用にはデブロッキング処理前の画素データが必要となるため、演算装置１７０において新たに隣接上ＭＢの最下端のデータと隣接左ＭＢの最右端のデータを保持するように構成されている。
より具体的には、画像処理装置１００においては、ＩＤＣＴ、ＭＣ処理とデブロッキング処理を後続ＭＢの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のＭＢ内の下端１ライン１５画素(x,y)=(0,15)..(15,15)と右端１列１５画素(x,y)= (15,0)..(15,15)を保持する記憶装置（ラインバッファ、カラムバッファ）をもつことによりＭＢループ処理内においてデブロッキング処理を行うことができるように構成されている。
また、この条件において、ＭＢ単位で復号に必要な各処理が完結するため、処理が並列化かつパイプライン化されている。
【００２５】
すなわち、本実施形態の画像処理装置１００は、ＡＶＣ復号のための処理アルゴリズムに基づき、ＭＢループ内にてＩＤＣＴ+ＭＣ（イントラＭＢの場合はイントラ予測)を行った後、継続してデブロッキングの処理を行う。
これを実現するために、本実施形態のリコンフィギュアブル（再構成可能）な演算装置１７０は、演算構成を定義するための命令構成レジスタ１７１、演算に必要な係数用のバッファ１７２、演算器１７３、画像データを保持するためのＭＢバッファ１７４、および処理アルゴリズムを実現するためのラインバッファおよびカラムバッファ１７５により構成されている。ＭＢバッファ１７４とラインバッファおよびカラムバッファ１７５とによりデータメモリ（記憶装置）１７６が構成されている。
【００２６】
ＭＢは、復号処理の１単位であり、たとえば１６×１６のデータサイズを有する。ＭＢは、たとえば４つの輝度ブロック(Y0,Y1,Y2,Y3)と２つの色差ブロック(Cb,Cr)とマクロブロックヘッダから形成される。
マクロブロックヘッダにはCBP(Coded Block Pattern)と呼ばれる可変長符号ＶＬＣがあり、これはＭＢに含まれるブロックのうち特定のブロックに有効なデータの存在の有無を示す情報である。
【００２７】
可変長復号化部１１０は、図示しない符号化装置によって符号化されたデータを受けて可変長復号化処理を行い、処理の結果得られた量子化データを逆量子化部１２０に出力する。
【００２８】
逆量子化部１２０は、可変長復号化部１１０による量子化データをマクロブロック（ＭＢ）ごとに、たとえば１６画素×１６ライン（あるいは８画素×８ライン、４画素×４ライン）のブロック単位で逆量子化し、得られたＤＣＴ（Discrete Cosine Transform：離散コサイン変換）係数データをＩＤＣＴ変換部１３０に出力する。
【００２９】
ＩＤＣＴ変換部１３０は、逆量子化部１２０により供給されるＤＣＴ係数データに対してＩＤＣＴ処理を行い、得られた画素データを動き補償予測部１４０に出力する。
ＩＤＣＴ変換部１３０は、再構成可能な演算装置１７０に対して所定の演算を行うように演算器構成を定義した命令セットを命令構成レジスタ１７１に設定し、かつ係数データ（coef）を係数バッファ１７２にロードする。
【００３０】
動き補償予測部１４０は、可変長復号化部１１０により供給された量子化データによりインタ（inter）ＭＢかイントラ（intra）ＭＢかを判別し、インタＭＢの場合には動き補償部１４１で所定の動き補償（ＭＣ）を行い、イントラＭＢの場合にはイントラ予測部１４２でイントラ予測を行う。
【００３１】
動き補償部１４１は、再構成可能な演算装置１７０に対して所定の演算を行うように演算構成を定義した命令セットを命令構成レジスタ１７１に設定する。
イントラ予測部１４２は、図２(Ａ）〜（Ｄ）または図３(Ａ）〜（Ｉ）に示されるような、イントラ予測の種別を判断し、再構成可能な演算装置１７０の命令構成レジスタ１７１に予測モードのみを設定する。
【００３２】
図２（Ａ）〜（Ｄ)は、１６×１６イントラ予測の場合で、ハッチングを施した各ブロックが隣接ＭＢの画素データである。
図２(Ａ）は垂直（Ｖｅｒｔｉｃａｌ）スキャン、図２（Ｂ）は水平（Ｈｏｒｉｚｏｎｔａｌ）スキャン、図２(Ｃ)はＤＣ、図２（Ｄ）はプレーン（Ｐｌａｎｅ）スキャンをそれぞれ示している。
【００３３】
図３(Ａ)〜(Ｉ)は、４×４イントラ予測の場合で、ハッチングを施した各ブロックが隣接ＭＢの画素データである。
図３(Ａ）は垂直（Ｖｅｒｔｉｃａｌ）スキャン、図３（Ｂ）は水平（Ｈｏｒｉｚｏｎｔａｌ）スキャン、図３（Ｃ)はＤＣ、図３（Ｄ）は斜め左下(Ｄｉａｇｏｎａｌ  ｄｏｗｎ−ｌｅｆｔ)スキャン、図３(Ｅ)は斜め右下(Ｄｉａｇｏｎａｌ  ｄｏｗｎ−ｒｉｇｈｔ)、図３(Ｆ)は垂直右（Ｖｒｅｔｉｃａｌ−ｒｉｇｈｔ）スキャン、図３（Ｇ）は水平下（Ｈｏｒｉｚｏｎｔａｌ−ｄｏｗｎ）、図３（Ｈ）は垂直左（Ｖｅｒｔｉｃａｌ−ｌｅｆｔ）スキャン、図３（Ｉ）は水平上（Ｈｏｒｉｚｏｎｔａｌ−ｕｐ）スキャンをそれぞれ示している。
【００３４】
デブロッキング処理部１５０は、ノイズ低減のためのデブロッキング処理を行う。このデブロッキング処理においては、デブロッキングのモード計算が行われ、α、β、Bs、Tc値が係数バッファ１７２にロードされ、周辺画素データはフレームバッファ１６０からロードされる。
【００３５】
演算装置１７０は、ＩＤＣＴ変換部１３０により、所定の演算を行うように演算器構成を定義した命令セットが命令構成レジスタ１７１に設定され、かつ係数データ（coef）が係数バッファ１７２にロードされると、命令構成レジスタ１７１の内容に基づきＩＤＣＴ処理を行い、結果をＭＢバッファ１７６に格納する。
【００３６】
演算装置１７０は、インタＭＢの場合、動き補償部１４１により、所定の演算を行うように演算構成を定義した命令セットが命令構成レジスタ１７１に設定され、予測した動きベクトルに基づきフレームバッファ１６０に保持されている参照画像から予測ＭＢをＭＢバッファ１７６にロードされると、命令内容に基づき最小１／４画素精度の画素データの計算を行い、動き補償後のＭＢデータを復号する。
続いて演算装置１７０は、先のＩＤＣＴ結果とＭＣデータを加算してこの処理ＭＢの復号されたＭＢデータを生成する。
演算装置１７０は、復号されたＭＢデータに対しては後続のＭＢがイントラ予測であった場合に備え、Ｍｂデータの（x,y）=（0,15）..（15,15)をラインバッファにおよび(x,y)=(15,0)..(15,15)をカラムバッファにコピーする。
【００３７】
演算装置１７０は、イントラＭＢの場合、イントラ予測部１４２で種別が判断され、命令構成レジスタ１７１に予測モードが設定されると(この場合、参照画像からのデータロードは行わない)、予測モードに基づき該当する予測画素をラインバッファおよびカラムバッファ（Line Buffer/Column buffer）１７５を用いて、イントラ予測後のＭＢデータを復号する。
演算装置１７０は、イントラ予測後はインタＭＢのときと同様に既にＩＤＣＴ後のデータと加算を行い、この処理ＭＢの復号されたＭＢデータを生成する。
演算装置１７０は、復号後は同じくラインバッファおよびカラムバッファ（Line Buffer/Column Buffer）１７５に対して所定の画素データをコピーしておく。
【００３８】
また、演算装置１７０は、デブロッキング処理に移行すると、復号後のＭＢデータが既にＭＢバッファ１７６に保持されたままであるため、デブロッキングのモード計算を行い、α、β、Bs、Tc値が係数バッファ１７２にロードされ、周辺画素データがフレームバッファ１６０からロードされると、入力された係数値を参照し垂直エッジのフィルタリング、水平エッジのフィルタリング処理を行う。
演算装置１７０は、デブロッキング処理が終了した後、最終的なＭＢデータをＭＢバッファ１７６からフレームバッファ１６０に対してストア処理を行う。
【００３９】
以下、図４〜図６に関連付けて、本実施形態に係る演算装置１７０におけるラインバッファおよびカラムバッファ１７５について説明をする。
【００４０】
ラインバッファはいわゆる横方向(水平方向)のバッファで、復号ピクチャの横１ライン分+１画素の画素数サイズを保持できるだけの容量を必要とする。
１画素はイントラ予測のタイプによっては隣接左上ＭＢの画素を参照する可能性があるため、これに対応するためである。なお、ラインバッファを１ライン分にしてカラムバッファを１画素多く１７画素分にしてもよい。実装の容易性に応じて適宜変更が可能である。
カラムバッファは縦方向（垂直方向）のバッファで１６画素数分のサイズを保持できるだけの容量を必要とする。
【００４１】
図４は、ＭＢ(Xi,Yj)をデコードするとき、ラインバッファとカラムバッファのデータの中身がどの位置の画素が保持されているかを示す図である。
このＭＢの予測画像生成後はデブロッキング処理前にラインバッファにおけるＭＢ内の縦方向１６ライン目の１６画素をラインバッファに格納し、右方向縦１６画素をカラムバッファに格納する。
【００４２】
図５は、図４の右隣に位置する次のＭＢをデコードするときのラインバッファとカラムバッファのデータの中身を示す図である。
ラインバッファには直前のＭＢの最下端１６画素データとカラムバッファには右端の縦１６画素に更新されている。このＭＢがイントラ予測の場合にはその予測タイプに応じてラインバッファ、カラムバッファの画素を用いて予測画像を生成する。予測画像生成後の動作は図４の説明と同様である。
【００４３】
最後に図６も同様に図１のＭＢの１ＭＢライン下に位置するＭＢをデコードする際の各データの中身を示している。
【００４４】
図７は、本発明の実施形態に係るＡＶＣ復号のための処理アルゴリズムの全体を表すフローチャートである。図７においては、ＭＢループ内にてＩＤＣＴ+ＭＣ（イントラＭＢの場合はイントラ予測)を行った後、継続してデブロッキングの処理を行う処理アルゴリズムを表す。
以下、本実施形態に係る画像処理装置における復号処理手順を図７に関連付けて説明する。
【００４５】
ＡＶＣのデコードにおいてはＮＡＬユニット単位での復号処理となる。入力されたＮＡＬユニットはＮヘッダ処理を行った後、可変長復号化部１１０において、可変長復号化処理が行われ、処理の結果得られた量子化データが逆量子化部１２０に出力される（ＳＴ１，ＳＴ２）。
逆量子化部１２０においては、可変長復号化部１１０による量子化データがマクロブロック（ＭＢ）ごとに、たとえば１６画素×１６ラインのブロック単位で逆量子化され、得られたＤＣＴ係数データがＩＤＣＴ変換部１３０に出力される（ＳＴ３）。
【００４６】
ＩＤＣＴ変換部１３０においては、逆量子化部１２０により供給されるＤＣＴ係数データに対してＩＤＣＴ処理が行われ、得られた画素データが動き補償予測部１４０に出力される（ＳＴ４）。
ＩＤＣＴ変換部１３０は、再構成可能な演算装置１７０に対して所定の演算を行うように演算器構成を定義した命令セットを命令構成レジスタ１７１に設定し、かつ係数データ（coef）を係数バッファ１７２にロードする。
演算装置１７０においては、命令構成レジスタ１７１の内容に基づきＩＤＣＴ処理が行われ、結果がＭＢバッファ１７６に格納される。
【００４７】
動き補償予測部１４０においては、可変長復号化部１１０により供給された量子化データによりイントラ（intra）ＭＢかインタ（inter）ＭＢかが判別される（ＳＴ５）。
ステップＳＴ５の判別の結果、インタＭＢの場合、動き補償部１４１で所定の動き補償（ＭＣ）が行われる（ＳＴ６）。
そして、動き補償部１４１により、再構成可能な演算装置１７０において、所定の演算を行うように演算構成を定義した命令セットが命令構成レジスタ１７１に設定され、予測した動きベクトルに基づきフレームバッファ１６０に保持されている参照画像から予測ＭＢをＭＢバッファ１７６にロードされる。
演算装置１７０においては、演算器１７３で命令内容に基づき最小１／４画素精度の画素データの計算が行われ、動き補償後のＭＢデータが復号される。
続いて演算装置１７０では、先のＩＤＣＴ結果とＭＣデータが加算されてこの処理ＭＢの復号されたＭＢデータが生成される。
演算装置１７０においては、復号されたＭＢデータに対しては後続のＭＢがイントラ予測であった場合に備え、Ｍｂデータの（x,y）=（0,15）..（15,15)がラインバッファにおよび(x,y)=(15,0)..(15,15)をカラムバッファにコピーされる（ＳＴ９）。
【００４８】
ステップＳＴ５の判別の結果、イントラＭＢの場合、イントラ予測部１４２でイントラ予測が行われる（ＳＴ７）。イントラ予測部１４２でイントラ予測の種別が判断され、命令構成レジスタ１７１に予測モードが設定されると(この場合、参照画像からのデータロードは行わない)、予測モードに基づき該当する予測画素をラインバッファおよびカラムバッファ（Line Buffer/Column buffer）１７５を用いて、イントラ予測後のＭＢデータが復号される。
演算装置１７０においては、イントラ予測後はインタＭＢのときと同様に既にＩＤＣＴ後のデータと加算が行われ、この処理ＭＢの復号されたＭＢデータが生成される（ＳＴ８）。
演算装置１７０においては、復号後は同じくラインバッファおよびカラムバッファ（Line Buffer/Column Buffer）１７５に対して所定の画素データがコピーされる（ＳＴ９）。
【００４９】
また、デブロッキング処理に移行すると、デブロッキング処理部１５０において、復号後のＭＢデータが既にＭＢバッファ１７６に保持されたままであるため、デブロッキングのモード計算が行われ、α、β、Bs、Tc値が係数バッファ１７２にロードされ、周辺画素データがフレームバッファ１６０からロードされると、演算装置１７０においては、入力された係数値を参照し垂直エッジのフィルタリング、水平エッジのフィルタリング処理が行われる（ＳＴ１０）。
演算装置１７０においては、デブロッキング処理が終了した後、最終的なＭＢデータのＭＢバッファ１７６からフレームバッファ１６０に対してのストア処理が行われる（ＳＴ１１）。
次のＭＢ処理についてはステップＳＴ１に戻り同様の処理を行い、スライス（ピクチャ）全体の復号が行われる。
【００５０】
以上説明したように、本実施形態によれば、ノイズ低減のためのデブロッキングフィルタをもつようなたとえばビデオ・コーデックの信号処理において、ＭＢ単位において予測処理とデブロッキング処理を完了させ、イントラ予測用にはデブロッキング処理前の画素データが必要となるため、演算装置１７０において新たに隣接上ＭＢの最下端のデータと隣接左ＭＢの最右端のデータを保持するように構成されている。
より具体的には、画像処理装置１００においては、ＩＤＣＴ、ＭＣ処理とデブロッキング処理を後続ＭＢの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のＭＢ内の下端１ライン１５画素(x,y)=(0,15)..(15,15)と右端１列１５画素(x,y)= (15,0)..(15,15)を保持する記憶装置（ラインバッファ、カラムバッファ）をもつことによりＭＢループ処理内においてデブロッキング処理を行うことができるように構成されている。したがって、以下の効果を得ることができる。
【００５１】
上記処理アルゴリズムと必要なラインバッファ、カラムバッファを併せ持つことにより、ＭＢループ処理内においてデブロッキング処理を行うことができ、またデータのロードとストアは予測処理前とデブロッキング処理後の１回ずつで済み、全体としては処理の高速化が実現可能となる。
ラインバッファおよびカラムバッファを搭載し本アルゴリズムを適用することで処理単位をＭＢで完結できるため、ＣＰＵを増やすことでＭＢ単位での並列処理を可能とし、全体としての復号処理時間を短縮することが容易となる。
【００５２】
図８は、本実施形態に係る複数のＣＰＵによる復号処理のパイプライン化例を示す図である。
【００５３】
図８の例は、実際にＣＰＵを２つ使用し各処理をパイプライン動作させる場合の実施例である。
この図において、あるＭＢｎの逆量子化（ＩＱ）からイントラ・インタ（INTRA/INTER）予測処理までをＣＰＵ１にて処理し、次のＭＢのＩＱ処理に進む。
ＣＰＵ２側では以降の処理すなわちＩＤＣＴ＋予測処理、ラインバッファおよびカラムバッファコピー、デブロッキング処理までを担当しフレームバッファに結果を格納する。  終了時点で既にＣＰＵ１側では次のＭＢｎ+1について再びＩＤＣＴ+予測処理を行う。
【００５４】
なお、上述した実施形態において、ソフトウェア的に再構成可能な演算装置を用いＩＤＣＴ、イントラ予測、動き補償、デブロッキングの演算を処理しているが、これらの処理が専用ハードウェア処理に置き換えた場合も実現が可能である。
【００５５】
また、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、ＣＰＵ等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施形態に係る画像処理装置の構成を示すブロック図である。
【図２】H,264/AVCによる16x16イントラ予測の種類を示す図である。
【図３】H,264/AVCによる4x4イントラ予測の種類を示す図である。
【図４】ＭＢ(Xi,Yj)をデコードするとき、ラインバッファとカラムバッファのデータの中身がどの位置の画素が保持されているかを示す図である。
【図５】図４の右隣に位置する次のＭＢをデコードするときのラインバッファとカラムバッファのデータの中身を示す図である。
【図６】図１のＭＢの１ＭＢライン下に位置するＭＢをデコードする際の各データの中身を示す図である。
【図７】本発明の実施形態に係るＡＶＣ復号のための処理アルゴリズムの全体を表すフローチャートである。
【図８】本実施形態に係る複数のＣＰＵによる復号処理のパイプライン化例を示す図である。
【符号の説明】
【００５７】
１００・・・画像処理装置、１１０・・・変長復号化部、１２０・・・逆量子化部、１３０・・・ＩＤＣＴ変換部、１４０・・・動き補償予測部、１４１・・・動き補償部、１４２・・・動き予測部、１５０・・・デブロッキング処理部、１６０・・・フレームバッファ、１７０・・・演算装置、１７１・・・命令構成レジスタ、１７２・・・係数用バッファ、１７３・・・演算器、１７４・・・ＭＢバッファ、１７５・・・ラインバッファおよびカラムバッファ。
【図１】
2009049460.tif 000003
【図２】
2009049460.tif 000004
【図３】
2009049460.tif 000005
【図４】
2009049460.tif 000006
【図５】
2009049460.tif 000007
【図６】
2009049460.tif 000008
【図７】
2009049460.tif 000009
【図８】
2009049460.tif 000010