(57)【要約】【課題】  ソフトウェアとハードウェアとの高度な連携を図りつつ、低コストかつ低消費電力で効率的に動画像の符号化あるいは復号化処理を行うこと。【解決手段】  本発明に係る動画像処理装置においては、動画像の符号化あるいは復号化処理全般を管理するプロセッサに対し、演算量の多い処理である動き検出および動き補償処理を行うコプロセッサを付加した構成とする。また、そのような構成とすることに伴い、動画像の符号化あるいは復号化処理をフレーム単位でなく、マクロブロック単位で行うこととする。さらに、動画像の符号化あるいは復号化処理を行う際に、２次元アクセスメモリを用いるものとする。このような構成により、ソフトウェアとハードウェアとの高度な連携を図りつつ、低コストかつ低消費電力で効率的に動画像の符号化あるいは復号化処理を行うことが可能となる。【選択図】  図３
2005244845.tif 000002
【特許請求の範囲】
【請求項１】
動画像データの符号化処理を行うプロセッサと、該プロセッサにおける処理を補助するためのコプロセッサとを含む動画像処理装置であって、
前記コプロセッサは、符号化処理対象である前記動画像データに対し、動き検出処理と予測画像および差分画像の生成処理とをマクロブロック単位で行い、各マクロブロックの処理が終了する毎に、該マクロブロックの差分画像を出力し、
前記プロセッサは、前記コプロセッサから各マクロブロックの差分画像が出力される毎に、該マクロブロックの差分画像に対して引き続く符号化処理を行うことを特徴とする動画像処理装置。
【請求項２】
前記動画像データを複数フレーム分記憶可能なフレームメモリと、該フレームメモリより高速にアクセスが可能なローカルメモリとを含み、
前記コプロセッサは、前記フレームメモリに記憶されたフレームのデータを読み込んで前記動き検出処理と予測画像および差分画像の生成処理とを行い、各マクロブロックについて該差分画像を生成する毎に、生成した差分画像を前記ローカルメモリに出力し、
前記プロセッサは、前記ローカルメモリに記憶された差分画像に対し、引き続く符号化処理を行うことを特徴とする請求項１記載の動画像処理装置。
【請求項３】
前記コプロセッサは、各マクロブロックについて前記予測画像を生成する毎に、生成した予測画像を前記ローカルメモリに出力し、
前記プロセッサは、前記ローカルメモリに記憶された予測画像と、前記差分画像を符号化処理した上で復号化処理して得られる復号後の差分画像とに基づいて動き補償処理を行い、該動き補償処理結果である再構成画像を前記ローカルメモリに記憶させることを特徴とする請求項２記載の動画像処理装置。
【請求項４】
前記コプロセッサは、前記ローカルメモリに記憶された前記再構成画像を前記フレームメモリにＤＭＡ転送する再構成画像転送手段をさらに含むことを特徴とする請求項２または３記載の動画像処理装置。
【請求項５】
前記コプロセッサは、前記フレームメモリにおける参照先の先頭アドレス、フレームのサイズが指定されることにより、各マクロブロックが順次処理されることに対応して、前記フレームメモリにおける参照先のアドレスを自動的に生成することを特徴とする請求項２から４のいずれか１項に記載の動画像処理装置。
【請求項６】
前記ローカルメモリは、２次元アクセスメモリによって構成されていることを特徴とする請求項２から５のいずれか１項に記載の動画像処理装置。
【請求項７】
前記コプロセッサは、前記予測画像あるいは差分画像のマクロブロックを前記ローカルメモリに記憶させる際に、該ローカルメモリのサイズに応じて、マクロブロックに含まれるブロックを縦一列あるいは横一列に並べて記憶させることを特徴とする請求項６記載の動画像処理装置。
【請求項８】
前記コプロセッサは、符号化処理において動き補償処理された結果である再構成画像に含まれるデータを記憶する再構成画像バッファを含み、前記マクロブロックについて前記動き検出処理を行う際に、前記再構成画像に含まれる所定データを該再構成画像バッファに読み込み、その再構成画像バッファに読み込まれている所定データを用いて、該マクロブロックについて前記予測画像を生成することを特徴とする請求項１から７のいずれか１項に記載の動画像処理装置。
【請求項９】
前記コプロセッサは、符号化対象である動画像データに含まれるデータを記憶する符号化対象画像バッファを含み、前記マクロブロックについて前記動き検出処理を行う際に、前記符号化対象である動画像データに含まれる所定データを該符号化対象画像バッファに読み込み、その符号化対象画像バッファに読み込まれているデータを用いて、該マクロブロックについての前記差分画像を生成することを特徴とする請求項１から８のいずれか１項に記載の動画像処理装置。
【請求項１０】
前記コプロセッサは、符号化処理対象であるマクロブロックについて、前記動き検出処理の結果と該マクロブロックに含まれる画素データとに基づいて、フレーム間符号化処理あるいはフレーム内符号化処理のいずれによって該マクロブロックが効率的に符号化されるか判定し、その判定結果に応じた符号化処理に基づく前記予測画像および差分画像の生成を行うことを特徴とする請求項１から９のいずれか１項に記載の動画像処理装置。
【請求項１１】
前記コプロセッサは、符号化対象であるマクロブロックについて、フレーム内符号化処理による方が効率的に符号化されると判定した場合に、該マクロブロックの符号化処理において用いる予測画像をオールゼロに更新することを特徴とする請求項１０記載の動画像処理装置。
【請求項１２】
前記コプロセッサは、前記動き検出処理において、マクロブロックに含まれる各ブロックそれぞれに関する動きベクトルを検出し、検出した動きベクトルの近似の程度に応じて、各ブロックそれぞれに個別の動きベクトルを設定するか、あるいは、マクロブロック全体に１つの動きベクトルを設定するかを判定し、その判定結果に応じて前記予測画像および差分画像の生成を行うことを特徴とする請求項１から１１のいずれか１項に記載の動画像処理装置。
【請求項１３】
前記コプロセッサは、前記動き検出処理において、検出された動きベクトルが参照先のフレームにおけるフレーム境界を超えた領域を指定している場合、該フレーム境界を超えた領域の画素データを補間して、前記予測画像および差分画像の生成を行うことを特徴とする請求項１から１２のいずれか１項に記載の動画像処理装置。
【請求項１４】
前記コプロセッサは、マクロブロックについての動きベクトルが与えられた場合に、参照先のフレームにおいて該動きベクトルによって指定されているマクロブロックを取得し、
前記プロセッサが該取得されたマクロブロックを用いて動き補償処理を行うことにより、動画像の復号化処理を実行可能であることを特徴とする請求項１から１３のいずれか１項に記載の動画像処理装置。
【請求項１５】
前記プロセッサは、符号化処理対象であるフレームと、符号化処理において動き補償処理された結果である参照先のフレームの再構成画像と、該再構成画像に対応した、符号化処理対象である動画像データに含まれる参照先のフレームと、符号化処理対象であるフレームについて生成される再構成画像を前記フレームメモリに記憶させて、マクロブロックを単位とする符号化処理を行うと共に、符号化処理対象であるフレームについて生成される再構成画像のマクロブロックを、前記符号化処理対象であるフレーム、前記参照先のフレームの再構成画像あるいは前記参照先のフレームにおけるマクロブロックの記憶領域のうち、保持が不要となった記憶領域に上書きすることを特徴とする請求項２記載の動画像処理装置。
【請求項１６】
動画像データの復号化処理を行うプロセッサと、該プロセッサにおける処理を補助するためのコプロセッサとを含む動画像処理装置であって、
前記コプロセッサは、復号化処理対象である動画像データの動きベクトルが与えられた場合に、復号処理によって得られる参照先のフレームから該動きベクトルが指定するマクロブロックを取得して予測画像を生成する処理をマクロブロック単位で行い、各マクロブロックの処理が終了する毎に、該マクロブロックの予測画像を出力し、
前記プロセッサは、前記コプロセッサから各マクロブロックの予測画像が出力される毎に、該マクロブロックの予測画像に対して動き補償処理を行うことを特徴とする動画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像を符号化あるいは復号化処理する動画像処理装置に関する。
【背景技術】
【０００２】
近年、ネットワークを介した動画像の配信や地上デジタル放送あるいは動画像をデジタルデータとして蓄積する場合等において、動画像の符号化／復号化技術が用いられるようになっている。
このような動画像の符号化／復号化処理を行う場合、ソフトウェアによって処理を行うことが可能であるが、処理の高速化等を図るため、処理の一部はハードウェアによって処理されている。動画像の符号化／復号化処理においては、負荷の高い演算が多いことから、処理の一部をハードウェア化することにより符号化／復号化処理を円滑に行うことが可能である。
【０００３】
動画像の符号化処理の一部をハードウェアによって行う技術として、特開２００１−２３６４９６号公報に記載された技術が知られている。
本号公報に記載された技術においては、プロセッサコアに対し、演算（特に動き検出処理）を効率的に行う画像処理周辺装置を付加した構成としている。この画像処理周辺回路により、演算量の多い画像処理を効率的に実行することが可能となり、処理能力を向上させることができる。
【特許文献１】特開２００１−２３６４９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のようにハードウェアによって処理の一部を行う場合、ソフトウェアとハードウェアとの連携が必要となるところ、ハードウェア化が容易な処理のみがハードウェアによって行われていた。
一方、二次元アクセスメモリを使用している場合等を始め、ソフトウェアにおけるデータのインターフェースとハードウェアにおけるデータのインターフェースとの整合をとりつつ、処理の一部をハードウェア化することは困難であった。
【０００５】
なお、特開２００１−２３６４９６号公報に記載された技術は、動き検出処理に適する構成としているものの、予測画像や差分画像の生成、それらの画像をプロセッサのローカルメモリに転送する機能等について言及されておらず、この点において、動画像の符号化／復号化処理性能を十分に改善できるものではなかった。
このように、ソフトウェアとハードウェアとの高度な連携を図ることが行われていなかったため、低コストかつ低消費電力で効率的に動画像の符号化／復号化処理を行うことが困難であった。
【０００６】
本発明の課題は、ソフトウェアとハードウェアとの高度な連携を図りつつ、低コストかつ低消費電力で効率的に動画像の符号化あるいは復号化処理を行うことである。
【課題を解決するための手段】
【０００７】
以上の課題を解決するため、本発明は、
動画像データの符号化処理を行うプロセッサと、該プロセッサにおける処理を補助するためのコプロセッサとを含む動画像処理装置であって、前記コプロセッサ（例えば、図１の動き検出／動き補償処理部８０）は、符号化処理対象である前記動画像データに対し、動き検出処理と予測画像および差分画像の生成処理とをマクロブロック単位で行い、各マクロブロックの処理が終了する毎に、該マクロブロックの差分画像を出力し、前記プロセッサ（例えば、図１のプロセッサコア１０）は、前記コプロセッサから各マクロブロックの差分画像が出力される毎に、該マクロブロックの差分画像に対して引き続く符号化処理（例えば、ＤＣＴ変換から可変長符号化および逆ＤＣＴ変換、動き補償処理等）を行うことを特徴としている。
【０００８】
これにより、マクロブロックを単位としてプロセッサとコプロセッサとがそれぞれに割り当てられた処理を行うことから、両者をより効率的に並列動作させることができ、ソフトウェアとハードウェアとの高度な連携を図りつつ、低コストかつ低消費電力で効率的に動画像の符号化処理を行うことが可能となる。
また、前記動画像データを複数フレーム分記憶可能なフレームメモリ（例えば、図１のフレームメモリ１１０）と、該フレームメモリより高速にアクセスが可能なローカルメモリ（例えば、図１のローカルメモリ４０）とを含み、前記コプロセッサは、前記フレームメモリに記憶されたフレームのデータを読み込んで前記動き検出処理と予測画像および差分画像の生成処理とを行い、各マクロブロックについて該差分画像を生成する毎に、生成した差分画像を前記ローカルメモリに出力し、前記プロセッサは、前記ローカルメモリに記憶された差分画像に対し、引き続く符号化処理を行うことを特徴としている。
【０００９】
これにより、フレームメモリあるいはローカルメモリを介して、プロセッサとコプロセッサとがデータ（差分画像のマクロブロック）の送受を行うことができるため、互いにデータを送受するタイミングを合わせる必要がなくなり、より効率的に符号化処理を行うことが可能となる。
また、前記コプロセッサは、各マクロブロックについて前記予測画像を生成する毎に、生成した予測画像を前記ローカルメモリに出力し、前記プロセッサは、前記ローカルメモリに記憶された予測画像と、前記差分画像を符号化処理した上で復号化処理して得られる復号後の差分画像とに基づいて動き補償処理を行い、該動き補償処理結果である再構成画像を前記ローカルメモリに記憶させることを特徴としている。
【００１０】
これにより、フレームメモリあるいはローカルメモリを介して、プロセッサとコプロセッサとがデータ（予測画像のマクロブロック）の送受を行うことができるため、互いにデータを送受するタイミングを合わせる必要がなくなり、より効率的に符号化処理を行うことが可能となる。
また、前記コプロセッサは、前記ローカルメモリに記憶された前記再構成画像を前記フレームメモリにＤＭＡ転送する再構成画像転送手段（例えば、図３の再構成画像転送部２１４）をさらに含むことを特徴としている。
【００１１】
これにより、ローカルメモリからフレームメモリに再構成画像を高速に転送できると共に、それに伴って発生するプロセッサの負荷を軽減することができる。
また、前記コプロセッサは、前記フレームメモリにおける参照先の先頭アドレス、フレームのサイズが指定されることにより、各マクロブロックが順次処理されることに対応して、前記フレームメモリにおける参照先のアドレスを自動的に生成することを特徴としている。
【００１２】
これにより、マクロブロック単位でプロセッサコアが処理を行う場合にも、各マクロブロックをフレームメモリに記憶したり、フレームメモリから読み出したりする際のアドレスの算出を一度の命令によって行うことができ、アドレスの算出を容易に行うことが可能となる。
また、前記ローカルメモリは、２次元アクセスメモリによって構成されていることを特徴としている。
【００１３】
これにより、ローカルメモリにマクロブロックを記憶する際に、柔軟なアドレスの割り当てを行うことが可能となる。
また、前記コプロセッサは、前記予測画像あるいは差分画像のマクロブロックを前記ローカルメモリに記憶させる際に、該ローカルメモリのサイズに応じて、マクロブロックに含まれるブロックを縦一列あるいは横一列に並べて記憶させることを特徴としている。
【００１４】
これにより、ローカルメモリのサイズが小さい場合にも、記憶領域が断片化することを防ぐことができ、マクロブロックを効率的に記憶することが可能となる。
また、前記コプロセッサは、符号化処理において動き補償処理された結果である再構成画像に含まれるデータを記憶する再構成画像バッファ（例えば、図３の再構成画像バッファ２０３）を含み、前記マクロブロックについて前記動き検出処理を行う際に、前記再構成画像に含まれる所定データ（例えば、再構成画像の参照領域について、画像の輝度成分であるＹ成分のみ等）を該再構成画像バッファに読み込み、その再構成画像バッファに読み込まれている所定データを用いて、該マクロブロックについて前記予測画像を生成することを特徴としている。
【００１５】
これにより、フレームメモリからデータを読み込む回数を軽減することができ、高速かつ低消費電力で処理を行うことが可能となる。
また、前記コプロセッサは、符号化対象である動画像データに含まれるデータを記憶する符号化対象画像バッファ（例えば、図３の符号化対象オリジナル画像バッファ２０８）を含み、前記マクロブロックについて前記動き検出処理を行う際に、前記符号化対象である動画像データに含まれる所定データ（例えば、符号化対象のマクロブロックのＹ成分等）を該符号化対象画像バッファに読み込み、その符号化対象画像バッファに読み込まれているデータを用いて、該マクロブロックについての前記差分画像を生成することを特徴としている。
【００１６】
これにより、フレームメモリからデータを読み込む回数を軽減することができ、高速かつ低消費電力で処理を行うことが可能となる。
また、前記コプロセッサは、符号化処理対象であるマクロブロックについて、前記動き検出処理の結果（例えば、動き検出において取得される差分絶対値和）と該マクロブロックに含まれる画素データとに基づいて、フレーム間符号化処理あるいはフレーム内符号化処理のいずれによって該マクロブロックが効率的に符号化されるか判定し、その判定結果に応じた符号化処理に基づく前記予測画像および差分画像の生成を行うことを特徴としている。
【００１７】
これにより、コプロセッサにおいてマクロブロック毎に、より効率的な符号化方式を選択することが可能となる。
前記コプロセッサは、符号化対象であるマクロブロックについて、フレーム内符号化処理による方が効率的に符号化されると判定した場合に、該マクロブロックの符号化処理において用いる予測画像（例えば、ローカルメモリ４０における予測画像の記憶領域）をオールゼロに更新することを特徴としている。
【００１８】
これにより、特別な構成を付加することなく、より適切な符号化方式を選択して処理することが可能となる。
また、前記コプロセッサは、前記動き検出処理において、マクロブロックに含まれる各ブロックそれぞれに関する動きベクトルを検出し、検出した動きベクトルの近似の程度に応じて、各ブロックそれぞれに個別の動きベクトルを設定するか、あるいは、マクロブロック全体に１つの動きベクトルを設定するか（即ち、４ＭＶモードの設定内容）を判定し、その判定結果に応じて前記予測画像および差分画像の生成を行うことを特徴としている。
【００１９】
これにより、各マクロブロックに対し、効率的かつ適切な動きベクトルを設定することができる。
また、前記コプロセッサは、前記動き検出処理において、検出された動きベクトルが参照先のフレームにおけるフレーム境界を超えた領域を指定している場合、該フレーム境界を超えた領域の画素データを補間して、前記予測画像および差分画像の生成を行うことを特徴としている。
【００２０】
これにより、非制限動きベクトル（フレーム境界を超えた指定を認める動きベクトル）を符号化処理に用いることが可能となる。
また、前記コプロセッサは、マクロブロックについての動きベクトルが与えられた場合に、参照先のフレームにおいて該動きベクトルによって指定されているマクロブロックを取得し、前記プロセッサが該取得されたマクロブロックを用いて動き補償処理を行うことにより、動画像の復号化処理を実行可能であることを特徴としている。
【００２１】
これにより、動画像処理装置に備えられている復号化機能を有効に活用することができると共に、その際、上述の効果を活用して処理を行うことが可能となる。
また、前記プロセッサは、符号化処理対象であるフレームと、符号化処理において動き補償処理された結果である参照先のフレームの再構成画像と、該再構成画像に対応した、符号化処理対象である動画像データに含まれる参照先のフレームと、符号化処理対象であるフレームについて生成される再構成画像を前記フレームメモリに記憶させて、マクロブロックを単位とする符号化処理を行うと共に、符号化処理対象であるフレームについて生成される再構成画像のマクロブロックを、前記符号化処理対象であるフレーム、前記参照先のフレームの再構成画像あるいは前記参照先のフレームにおけるマクロブロックの記憶領域のうち、保持が不要となった記憶領域に上書きすることを特徴としている。
【００２２】
これにより、フレームメモリを効率的に使用でき、フレームメモリに要求される容量を低減することが可能となる。
また、本発明は、
動画像データの復号化処理を行うプロセッサと、該プロセッサにおける処理を補助するためのコプロセッサとを含む動画像処理装置であって、前記コプロセッサは、復号化処理対象である動画像データの動きベクトルが与えられた場合に、復号処理によって得られる参照先のフレームから該動きベクトルが指定するマクロブロックを取得して予測画像を生成する処理をマクロブロック単位で行い、各マクロブロックの処理が終了する毎に、該マクロブロックの予測画像を出力し、前記プロセッサは、前記コプロセッサから各マクロブロックの予測画像が出力される毎に、該マクロブロックの予測画像に対して動き補償処理を行うことを特徴としている。
【００２３】
このように、本発明によれば、ソフトウェアとハードウェアとの高度な連携を図りつつ、低コストかつ低消費電力で効率的に動画像の符号化あるいは復号化処理を行うことがかのうとなる。
【発明を実施するための最良の形態】
【００２４】
以下、図を参照して本発明に係る動画像処理装置の実施の形態を説明する。
本発明に係る動画像処理装置においては、動画像の符号化あるいは復号化処理全般を管理するプロセッサに対し、演算量の多い処理である動き検出および動き補償処理を行うコプロセッサを付加した構成とする。また、そのような構成とすることに伴い、動画像の符号化あるいは復号化処理をフレーム単位でなく、マクロブロック単位で行うこととする。さらに、動画像の符号化あるいは復号化処理を行う際に、２次元アクセスメモリ（メモリに対し、２次元のデータイメージが想定され、そのデータに対して縦横方向のアクセスが可能とされているメモリ）を用いるものとする。
【００２５】
このような構成により、本発明に係る動画像処理装置においては、ソフトウェアとハードウェアとの高度な連携を図りつつ、低コストかつ低消費電力で効率的に動画像の符号化あるいは復号化処理を行うことを可能としている。
なお、動画像の符号化処理は動画像の復号化処理を包含することから、以下の説明においては、動画像の符号化処理を行う場合を主として説明する。
【００２６】
まず、構成を説明する。
図１は、本発明に係る動画像処理装置１の機能構成を示すブロック図である。
図１において、動画像処理装置１は、プロセッサコア１０と、命令メモリ２０と、命令キャッシュ３０と、ローカルメモリ４０と、データキャッシュ５０と、内部バス調停部６０と、ＤＭＡ制御部７０と、動き検出／動き補償処理部８０と、コプロセッサ９０と、外部メモリインターフェース（以下、「外部メモリＩ／Ｆ」という。）１００と、フレームメモリ１１０とを含んで構成される。
【００２７】
プロセッサコア１０は、動画像処理装置１全体を制御するものであり、命令メモリの所定アドレスに記憶された命令コードを、命令キャッシュ３０を介して取得しつつ、動画像の符号化処理全般を管理する。具体的には、動き検出／動き補償処理部８０の各部やＤＭＡ制御部７０に指示信号（起動制御信号あるいはモード設定信号等）を出力したり、ＤＣＴ（Discrete Cosine Transform）や量子化といった、動き検出に続く符号化処理を行ったりする。また、プロセッサコア１０は、動画像の符号化処理全体を管理する際に、符号化関数実行処理プログラム（図６参照）を実行する。
【００２８】
ここで、起動制御信号とは、動き検出／動き補償処理部８０の各部を所定タイミングで起動させる指示信号であり、モード設定信号とは、フレーム毎に、動きベクトル検出処理における探索範囲（探索の中心となるマクロブロックの周囲８画素あるいは１６画素のいずれまで探索範囲とするか）、４ＭＶモード（４つの動きベクトルによる符号化を行うか）、非制限動きベクトル（動きベクトルの参照先としてフレーム境界を超えた範囲を許容するか）、丸め制御、フレームの圧縮タイプ（Ｐ，Ｂ，Ｉ）、圧縮モード（ＭＰＥＧ１，２，４）等、プロセッサコア１０が動き検出／動き補償処理部８０に対する種々の指定を行う指示信号である。
【００２９】
命令メモリ２０は、プロセッサコア１０に対して入力される種々の命令コードを記憶しており、プロセッサコア１０からの読み出しに応じて、指定されたアドレスの命令コードを命令キャッシュ３０に出力する。
命令キャッシュ３０は、命令メモリ２０から入力された命令コードを一時的に記憶し、所定タイミングでプロセッサコア１０に出力する。
【００３０】
ローカルメモリ４０は、符号化処理において生成される各種データを記憶する２次元アクセスメモリであり、例えば、符号化処理において生成される予測画像や差分画像を、６ブロックからなるマクロブロック単位で記憶する。
２次元アクセスメモリとは、特開２００２−２２２１１７号公報に記載された方式のメモリであり、例えば、「１バイト（８ビット）の記憶が可能な最小単位の仮想の記憶素子２が、縦方向と横方向にそれぞれ４個ずつ合計１６個配置された仮想最小２次元メモリ空間１」（同公報の図１参照）が想定され、この仮想最小２次元メモリ空間１は、「物理的には、４つの物理的なメモリ４Ａ〜４Ｃに予め分割されてマッピングされている。すなわち、１つの仮想最小２次元メモリ空間１は、４つの物理的なメモリ４Ａ〜４Ｃの同一のアドレスから始まる４バイトの連続領域に対応している。」（同公報の図２参照）。そして、このような仮想最小２次元メモリ空間１において、同公報の図４に示すようなアクセスが可能とされている。
【００３１】
このように、ローカルメモリ４０を２次元アクセスメモリとすることにより、ローカルメモリ４０において縦方向および横方向にアクセスすることが容易となることから、本発明においては、ローカルメモリ４０に以下のような形態でマクロブロックを記憶する。
図２は、ローカルメモリ４０においてマクロブロックが記憶される形態を示す図である。
【００３２】
図２において、ローカルメモリ４０には、マクロブロックを構成する６つのブロック（Ｙ成分が４ブロックおよびＣｂ，Ｃｒ成分が１ブロックずつ）が、縦方向あるいは横方向に一列に並べて記憶される。さらに、各ブロックについては、ブロックを構成する８画素が、フレームにおける８×８の配列を保持した状態で記憶されている。
このように、マクロブロックを構成する６つのブロックを縦あるいは横方向に一列に並べて記憶することにより、データが断片化することを防止できるため、ローカルメモリ４０を効率的に使用できる。さらに、ローカルメモリ４０のサイズに合わせて、効率的にローカルメモリ４０を使用することも可能となる。例えば、ローカルメモリ４０の横幅が小さい場合には、縦方向に一列に６つのブロックを記憶することにより、ローカルメモリ４０に効率的にマクロブロックを記憶することができる。なお、図２の説明では、Ｙ、Ｃｂ、Ｃｒのデータを４：２：０で保持することを想定し、1マクロブロックが６個のブロックで構成されている例を説明した。Ｙ、Ｃｂ、Ｃｒのデータ構成を４：２：２または４：４：４としても同様に扱うことができる。
【００３３】
図１に戻り、データキャッシュ５０は、プロセッサコア１０と内部バス調停部６０との間で入出力されるデータを一時的に保持し、所定タイミングで出力する。
内部バス調停部６０は、動画像処理装置１内部におけるバスの調停を行うものであり、各部からバスを介してデータが出力される場合に、各部間の出力タイミングを調整する。
ＤＭＡ（Direct Memory Access）制御部７０は、プロセッサコア１０を介さずに各部間においてデータを入出力する際の制御を行うものであり、例えば、動き検出／動き補償処理部８０とローカルメモリ４０とにおいてデータを入出力する場合に、プロセッサコア１０に代わって通信を制御し、データの入出力が終了した場合には、終了をプロセッサコア１０に通知する。
【００３４】
動き検出／動き補償処理部８０は、動き検出処理および動き補償処理を行うコプロセッサとして機能する。
図３は、動き検出／動き補償処理部８０の内部構成を示すブロック図である。
図３において、動き検出／動き補償処理部８０は、外部メモリインターフェース（Ｉ／Ｆ）２０１と、補間処理部２０２，２０５と、再構成画像バッファ２０３と、半画素生成部２０４と、間引き処理部２０６，２０９と、検索対象オリジナル画像バッファ２０７と、符号化対象オリジナル画像バッファ２０８と、動き検出制御部２１０と、差分絶対値和処理部２１１と、予測画像生成部２１２と、差分画像生成部２１３と、再構成画像転送部２１４と、周辺画素生成部２１５と、ホストインターフェース（Ｉ／Ｆ）２１６と、ローカルメモリインターフェース（Ｉ／Ｆ）２１７と、ローカルメモリアドレス生成部２１８と、マクロブロック（ＭＢ）管理部２１９と、フレームメモリアドレス生成部２２０とを含んで構成される。
【００３５】
外部メモリＩ／Ｆ２０１は、動き検出／動き補償処理部８０が外部メモリであるフレームメモリ１１０とデータを送受信するための入出力インターフェースである。
補間処理部２０２には、外部メモリＩ／Ｆ２０１を介して、フレームメモリ１１０から再構成画像（復号されたフレーム）における所定マクロブロックのＹ，Ｃｂ，Ｃｒ成分が入力される。具体的には、補間処理部２０２には、動き検出が行われる場合には、再構成画像のＹ成分が入力され、この場合、補間処理部２０２は、入力されたＹ成分を再構成画像バッファ２０３にそのまま出力する。一方、動き検出に続く符号化処理（予測画像の生成等）が行われる場合には、補間処理部２０２には、再構成画像のＹ，Ｃｂ，Ｃｒ成分が入力され、この場合、補間処理部２０２は、Ｃｂ，Ｃｒ成分を補間処理し、再構成画像バッファ２０３に出力する。
【００３６】
再構成画像バッファ２０３は、周辺画素生成部２１５の指示に基づいて、補間処理部２０２から入力された１６×１６画素の再構成画像（マクロブロック）に対し、縦横８画素分（周囲４画素分）を補間し、２４×２４画素のデータ（以下、「再構成マクロブロック」という。）としたものを記憶する。
半画素生成部２０４は、再構成画像バッファ２０３に記憶された再構成マクロブロックから半画素精度のデータを生成する。なお、半画素生成部２０４は、動きベクトルの参照先が半画素精度で示されている場合等、必要な場合にのみ処理を行い、それ以外の場合には、再構成マクロブロックのデータをそのまま通過させる。
【００３７】
補間処理部２０５は、半画素生成部２０４によって生成された半画素精度のデータを用いて、再構成マクロブロックを補間し、半画素精度の再構成マクロブロックを生成する。なお、補間処理部２０５は、半画素生成部２０４と同様に、必要な場合にのみ処理を行い、それ以外の場合には、再構成マクロブロックのデータをそのまま通過させる。
間引き処理部２０６は、外部メモリＩ／Ｆ２０１を介して入力された検索対象オリジナル画像（参照フレーム）における所定の複数マクロブロック（１回の探索領域）のＹ成分を間引きし、４８×４８画素の小画像ブロックを生成する。なお、間引き処理部２０６による間引き処理は、次に説明する検索対象オリジナル画像バッファ２０７のサイズを縮小する目的や、動き検出処理における処理負荷の軽減等を目的とするものであるため、これらの条件が許容される場合には行わないこととしても良い。
【００３８】
検索対象オリジナル画像バッファ２０７は、間引き処理部２０６によって生成された４８×４８画素の小画像ブロックを記憶する。なお、間引き処理部２０６による処理が行われない場合には、検索対象オリジナル画像バッファ２０７には、検索対象オリジナル画像のＹ成分がそのまま記憶される。
符号化対象オリジナル画像バッファ２０８には、外部メモリＩ／Ｆ２０１を介してフレームメモリ１１０から入力された、符号化対象オリジナル画像（符号化対象フレーム）における所定マクロブロックのＹ，Ｃｂ，Ｃｒ成分を記憶する。具体的には、符号化対象オリジナル画像バッファ２０８には、動き検出が行われる場合には、符号化対象オリジナル画像のＹ成分が入力される。一方、動き検出に続く符号化処理（差分画像の生成等）が行われる場合には、符号化対象オリジナル画像バッファ２０８には、符号化対象オリジナル画像のＹ，Ｃｂ，Ｃｒ成分が入力される。
【００３９】
間引き処理部２０９は、符号化対象オリジナル画像バッファ２０８に記憶された符号化対象オリジナル画像のマクロブロックを、必要な場合に間引く処理を行う。具体的には、間引き処理部２０９は、動き検出が行われる場合には、符号化対象オリジナル画像のマクロブロックを間引いた後、差分絶対値和処理部２１１に出力し、動き検出に続く符号化処理（差分画像の生成等）が行われる場合には、間引きを行うことなく、符号化対象オリジナル画像のマクロブロックをそのまま差分画像生成部２１３に出力する。
【００４０】
動き検出制御部２１０は、プロセッサコア１０からの指示に従って、各マクロブロックの処理について、動き検出／動き補償処理部８０の各部を管理する。例えば、動き検出制御部２１０は、１つのマクロブロックを処理する際に、差分絶対値和処理部２１１、予測画像生成部２１２および差分画像生成部２１３における処理の開始あるいは停止を指示したり、１つのマクロブロックについての処理が終了したことをＭＢ管理部２１９に通知したり、差分絶対値和処理部２１１による処理結果をホストインターフェース２１６に出力したりする。
【００４１】
さらに、動き検出制御部２１０は、差分絶対値和処理部２１１によって検出された動きベクトルに基づいて、各マクロブロックについて、ブロック毎に４つの動きベクトルを設定して符号化する場合とマクロブロック全体に１つの動きベクトルを設定して符号化する場合とのいずれが適しているかを判定する。
図４は、マクロブロックに対して４つの動きベクトルが設定された状態および１つの動きベクトルが設定された状態を示す図である。
【００４２】
動き検出制御部２１０は、各ブロックの動きベクトルが近似している場合には、１つのマクロブロックが適すると判定し、各ブロックの動きベクトルが近似していない場合には、ブロック毎に４つの動きベクトルが適すると判定する。
差分絶対値和処理部２１１は、動き検出制御部２１０からの指示に従って、動きベクトルの検出を行う。具体的には、差分絶対値和処理部２１１は、検索対象オリジナル画像バッファ２０７に記憶されている小画像ブロックに含まれる画像（Ｙ成分）と、間引き処理部２０９から入力された符号化対象であるマクロブロックとの差分絶対値和を算出し、おおよその動きベクトル（以下、「広域動きベクトル」という。）を取得する。すると、広域動きベクトルが取得されることに対応して再構成画像バッファ２０３に記憶される再構成マクロブロックを対象として、差分絶対値和処理部２１１は、差分絶対値和がより小さいマクロブロックを探索することにより、さらに正確な動きベクトルを検出し、正式な動きベクトルとする。
【００４３】
このような処理を行う際に、差分絶対値和処理部２１１は、マクロブロックを構成する４ブロックそれぞれのＹ成分についての差分絶対値和、１ブロックずつのＣｂ，Ｃｒ成分それぞれについての差分絶対値和、マクロブロックを構成する４ブロックそれぞれについての動きベクトルを算出し、これらのデータを出力結果として動き検出制御部２１０に出力する。
【００４４】
予測画像生成部２１２は、動き検出制御部２１０からの指示に従って、補間処理部２０５から入力される再構成マクロブロックと、動き検出制御部２１０から入力される動きベクトルとに基づいて予測画像（動きベクトルの参照先を用いて構成される画像）を生成し、ローカルメモリインターフェース２１７を介してローカルメモリ４０の所定領域（以下、「予測画像メモリ領域」という。）に格納する。なお、予測画像生成部２１２は、符号化処理対象のマクロブロックがフレーム間符号化される場合に上述の処理を行い、符号化対象のマクロブロックがフレーム内符号化される場合には、予測画像メモリ領域を“０”クリア（リセット）する。
【００４５】
差分画像生成部２１３は、動き検出制御部２１０からの指示に従って、ローカルメモリ４０の予測画像メモリ領域から読み出した予測画像と、間引き処理部２０９から入力された符号化対象であるマクロブロックとの差分をとることにより差分画像を生成し、ローカルメモリ４０の所定領域（以下、「差分画像メモリ領域」という。）に格納する。なお、符号化処理対象であるマクロブロックがフレーム内符号化されるものである場合には、予測画像は“０”クリアされたものとなるため、差分画像生成部２１３は、符号化対象であるマクロブロックを、そのまま差分画像とする。
【００４６】
再構成画像転送部２１４は、動き検出制御部２１０からの指示に従って、プロセッサコア１０による復号化処理結果である再構成画像をローカルメモリ４０から読み出し、外部メモリＩ／Ｆ２０１を介して、フレームメモリ１１０に出力する。即ち、再構成画像転送部２１４は、一種のＤＭＡＣ（Direct Memory Access Controller）として機能する。
周辺画素生成部２１５は、再構成画像バッファ２０３および検索対象オリジナル画像バッファ２０７に対し、それぞれに入力された画像の周囲を所定画素分、境界の画素で補間する旨の指示を行う。
【００４７】
ホストＩ／Ｆ２１６は、プロセッサコア１０と動き検出／動き補償処理部８０との入出力インターフェースの機能を有し、プロセッサコア１０から入力された起動制御信号やモード設定信号を動き検出制御部２１０およびＭＢ管理部２１９に出力したり、動き検出制御部２１０から入力された演算結果（動きベクトル等）を一時的に記憶し、プロセッサコア１０からの読み出し要求に応じて、プロセッサコア１０に出力したりする。
【００４８】
ローカルメモリＩ／Ｆ２１７は、動き検出／動き補償処理部８０がローカルメモリ４０とデータを送受信するための入出力インターフェースである。
ローカルメモリアドレス生成部２１８は、ローカルメモリ４０における種々のアドレスを設定する。具体的には、ローカルメモリアドレス生成部２１８は、ローカルメモリ４０における、差分画像用ブロック（差分画像生成部２１３において生成された差分画像の記憶領域）の先頭アドレス、予測画像用ブロック（予測画像生成部２１２において生成された予測画像の記憶領域）の先頭アドレスおよび復号再構成画像（プロセッサコア１０によって復号処理された再構成画像）の記憶領域の先頭アドレスを設定する。また、ローカルメモリアドレス生成部２１８は、ローカルメモリ４０（２次元アクセスメモリ）の幅および高さを設定する。そして、ローカルメモリアドレス生成部２１８は、ＭＢ管理部２１９からローカルメモリ４０に対するアクセスが指示されると、その指示に従って、マクロブロック等を記憶したり読み出したりするための、ローカルメモリ４０におけるアドレスを生成し、ローカルメモリＩ／Ｆ２１７に出力する。
【００４９】
ＭＢ管理部２１９は、動き検出制御部２１０が行う制御に対して、より上位の制御を行うものであり、マクロブロックを単位とする各種制御を行う。具体的には、ＭＢ管理部２１９は、ホストＩ／Ｆ２１６を介して入力されるプロセッサコア１０からの指示や、動き検出制御部２１０から入力される動き検出処理結果に基づいて、ローカルメモリアドレス生成部２１８に対し、ローカルメモリ４０にアクセスするためのアドレスの生成を指示したり、フレームメモリアドレス生成部２２０に対し、フレームメモリ１１０にアクセスするためのアドレスの生成を指示したりする。
【００５０】
フレームメモリアドレス生成部２２０は、フレームメモリ１１０における種々のアドレスを設定する。具体的には、フレームメモリアドレス生成部２２０は、フレームメモリ１１０における、検索対象オリジナル画像に関するＹ成分の記憶領域の先頭アドレス、参照用の再構成画像に関するＹ，Ｃｂ，Ｃｒ成分それぞれの記憶領域の先頭アドレス、符号化対象オリジナル画像に関するＹ，Ｃｂ，Ｃｒ成分それぞれの記憶領域の先頭アドレス、出力用再構成画像（動き検出／動き補償処理部８０に出力される再構成画像）に関するＹ，Ｃｂ，Ｃｒ成分それぞれの記憶領域の先頭アドレスを設定する。また、フレームメモリアドレス生成部２２０は、フレームメモリ１１０に記憶されるフレームの幅および高さを設定する。そして、フレームメモリアドレス生成部２２０は、ＭＢ管理部２１９からフレームメモリ１１０に対するアクセスが指示されると、その指示に従って、フレームメモリ１１０に記憶されたフレームのデータを記憶したり読み出したりするための、フレームメモリ１１０におけるアドレスを生成し、外部メモリＩ／Ｆ２０１に出力する。
【００５１】
図１に戻り、コプロセッサ９０は、動き検出処理および動き補償処理以外の処理を行うコプロセッサであり、例えば、浮動小数点演算等を行う。
外部メモリＩ／Ｆ１００は、動画像処理装置１が外部メモリであるフレームメモリ１１０とデータを送受信するための入出力インターフェースである。
フレームメモリ１１０は、動画像処理装置１が各種処理を行う際に生成される画像データ等を記憶するメモリであり、検索対象オリジナル画像に関するＹ成分の記憶領域、参照用の再構成画像に関するＹ，Ｃｂ，Ｃｒ成分それぞれの記憶領域、符号化対象オリジナル画像に関するＹ，Ｃｂ，Ｃｒ成分それぞれの記憶領域、出力用再構成画像に関するＹ，Ｃｂ，Ｃｒ成分それぞれの記憶領域を有している。これらの記憶領域のアドレスとその幅および高さは、フレームメモリアドレス生成部２２０によって設定される。
【００５２】
図５は、フレームメモリ１１０の記憶内容を示す概略的な模式図であり、図５（ａ）は、現在のフレームの動き検出処理時の状態、図５（ｂ）は、局部復号処理時（再構成画像生成時）の状態、図５（ｃ）は、次のフレームの動き検出処理時の状態を示している。
図５（ａ）〜（ｃ）において、検索対象オリジナル画像および符号化対象オリジナル画像は同サイズの記憶領域であり、検索対象の再構成画像の記憶領域は、さらにマクロブロックの２列（１６画素）分が加えて確保されている。これは、動画像処理装置１の符号化処理方法に基づくものである。即ち、動画像処理装置１がマクロブロック単位で符号化処理を行う方式であるため、そのマクロブロックが符号化処理を終えた後も、そのフレーム（再構成画像）を直ちには更新できないものである。一方、探索の中心となるマクロブロックの周囲最大１６画素までが探索範囲とされることから、マクロブロックの２列分を１フレームに加えて確保する。なお、探索範囲を１６画素以上、例えば２４画素まで対応する場合には、マクロブロックの３列分を１フレームに加えて確保する必要がある。
【００５３】
これにより、フレームメモリ１１０の必要な記憶容量の増大を抑えつつ、マクロブロック単位で本発明に係る符号化処理を行うことが可能となる。
なお、参照される再構成画像の記憶領域と、次に参照される再構成画像を記憶していく領域とを個別に確保する場合には、記憶容量がやや増大するものの、上述のような不都合は生じないことから、それぞれの記憶領域は、１フレーム分とすれば良い。
【００５４】
次に、動作を説明する。
初めに、動画像処理装置１全体に関する動作を説明する。
図６は、プロセッサコア１０が実行する符号化関数実行処理（符号化関数実行処理プログラムに基づく処理）を示すフローチャートである。図６に示す処理は、動画像処理装置１において動画像の符号化が行われる際に常時実行される処理であり、１フレームについての符号化を行う処理である。動画像処理装置１が動画像の符号化を行う場合、図６に示す符号化関数実行処理が適宜繰り返される。なお、図６において、ステップＳ３，６ａ，８，１２は、コプロセッサ８０が実行する処理であり、その他は、プロセッサコア１０が実行する処理である。
【００５５】
図６において、符号化関数実行処理が開始されると、そのフレームに関するモード設定を行い（ステップＳ１）、動き検出／動き補償処理部８０に対し、１フレームの符号化処理のスタートコマンド（最初のマクロブロックのスタートコマンドを含む）を発行する（ステップＳ２）。
すると、動き検出／動き補償処理部８０が初期化（各種パラメータが設定）されると共に、１マクロブロックの動き検出処理、予測画像の生成および差分画像の生成処理を実行し（ステップＳ３）、プロセッサコア１０は、１マクロブロックの動き検出処理が終了したか否かの判定を行う（ステップＳ４）。
【００５６】
ステップＳ４において、１マクロブロックの動き検出処理が終了していないと判定した場合、プロセッサコア１０は、ステップＳ４の処理を繰り返し、１マクロブロックの動き検出処理が終了したと判定した場合、引き続く１マクロブロックの動き検出処理のスタートコマンドを発行する（ステップＳ５）。
続いて、動き検出／動き補償処理部８０が引き続く１マクロブロックの動き検出処理、予測画像の生成および差分画像の生成処理を実行すると共に（ステップＳ６ａ）、これと並行して、プロセッサコア１０は、ＤＣＴ変換から可変長符号化および逆ＤＣＴ変換、さらに動き補償処理までの符号化処理を実行する（ステップＳ６ｂ）。
【００５７】
次に、プロセッサコア１０は、動き検出／動き補償処理部８０に対し、ステップＳ６ｂにおいて生成された再構成画像をローカルメモリ４０からフレームメモリ１１０に転送させるコマンド（以下、「再構成画像転送コマンド」という。）を発行する（ステップＳ７）。
すると、動き検出／動き補償処理部８０の再構成画像転送部２１４が、ステップＳ６ｂにおいて生成された再構成画像をローカルメモリ４０からフレームメモリ１１０に転送し（ステップＳ８）、プロセッサコア１０は、１フレームの符号化処理が終了したか否かの判定を行う（ステップＳ９）。
【００５８】
ステップＳ９において、１フレームの符号化処理が終了していないと判定した場合、プロセッサコア１０は、ステップＳ４の処理に移行し、一方、１フレームの符号化処理が終了したと判定した場合、プロセッサコア１０は、動き検出／動き補償処理部８０において最後に処理されたマクロブロックに対し、ＤＣＴ変換から可変長符号化および逆ＤＣＴ変換、さらに動き補償処理までの符号化処理を実行する（ステップＳ１０）。
【００５９】
そして、プロセッサコア１０は、動き検出／動き補償処理部８０に対し、ステップＳ１０において生成された再構成画像についての再構成画像転送コマンドを発行する（ステップＳ１１）。
すると、動き検出／動き補償処理部８０の再構成画像転送部２１４が、ステップＳ１０において生成された再構成画像をローカルメモリ４０からフレームメモリ１１０に転送し（ステップＳ１２）、プロセッサコア１０は、符号化関数実行処理を終了する。
【００６０】
続いて、動き検出／動き補償処理部８０の検索対象オリジナル画像バッファ２０７における状態遷移について説明する。
動画像処理装置１において符号化処理が行われる場合、探索の中心となるマクロブロックを中心として、周囲８画素分（１マクロブロック分）の領域が検索対象オリジナル画像バッファ２０７に順次読み込まれる。
【００６１】
図７は、検索対象オリジナル画像バッファ２０７に検索対象となる画像データが順次読み込まれる場合の状態遷移を示す図である。
図７において、１フレームの始めのマクロブロック（左上）が探索の中心として記憶される場合、検索対象オリジナル画像バッファ２０７には、その左上のマクロブロックの周囲、即ち、右隣、右下および下に位置するマクロブロックが読み込まれる（図７（ａ）参照）。なお、フレームの境界を超えた領域のデータについては、後述するように、周辺画素生成部２１５によって補間される。
【００６２】
そして、探索の中心が次のマクロブロックに移行すると、検索対象オリジナル画像バッファ２０７には、図７（ａ）において読み込まれていたマクロブロックの右隣の２つのマクロブロックのみが新たに読み込まれ、図７（ａ）における探索領域と重複するマクロブロックについては、そのまま読み込まれていたものが使用される（図７（ｂ）参照）。
その後、探索の中心が次のマクロブロックに移行する毎に、同様に、右隣の２つのマクロブロックのみが新たに読み込まれながら、フレームの最上行で最右端に位置するマクロブロックに探索の中心が到達する（図７（ｃ）参照）。このとき、右隣から新たに読み込むマクロブロックが存在しないため、マクロブロックの読み込みは行われず、それに代えて、上述のように周辺画素の補間が行われる。
【００６３】
続いて、探索の中心は、フレームの第２行に移行する。このとき、検索対象オリジナル画像バッファ２０７には、図７（ｃ）における探索領域と重複するマクロブロックが存在しないため、全てのマクロブロックが新たに読み込まれる（図７（ｄ）参照）。
そして、探索の中心が次のマクロブロックに移行すると、検索対象オリジナル画像バッファ２０７には、図７（ｄ）において読み込まれていたマクロブロックの右隣の３つのマクロブロックのみが新たに読み込まれ、図７（ｄ）における探索領域と重複するマクロブロックについては、そのまま読み込まれていたものが使用される（図７（ｅ）参照）。
【００６４】
その後、探索の中心が次のマクロブロックに移行する毎に、同様に、右隣の３つのマクロブロックのみが新たに読み込まれながら、フレームの第２行で最右端に位置するマクロブロックに探索の中心が到達する（図７（ｆ）参照）。このとき、右隣から新たに読み込むマクロブロックが存在しないため、マクロブロックの読み込みは行われず、それに代えて、上述のように周辺画素の補間が行われる。
【００６５】
この後、フレームにおける各行において同様の処理が行われ、フレームにおける最下行においても同様の処理が行われる。なお、フレームにおける最下行の場合には、探索の中心となるマクロブロックの下側は、フレームの境界を超えるため、上述のように周辺画素の補間が行われる。
検索対象オリジナル画像バッファ２０７に読み込まれるマクロブロックが、このように遷移していくことにより、既に読み込まれているマクロブロックを重複して読み込むことなく、効率的に処理を行うことが可能となる。
【００６６】
続いて、周辺画素生成部２１５がフレームの境界を超えた探索範囲を補間する処理について説明する。
上述のように、フレームの境界に位置するマクロブロックが探索の中心とされる場合、探索領域の一部は、読み込むマクロブロックが存在しない状態となる。
図８は、探索領域がフレームの境界を超える態様を示す模式図である。
【００６７】
図８（ａ）〜（ｉ）に示すように探索領域がフレーム境界を超えた場合、周辺画素生成部２１５は、フレーム境界に位置するマクロブロックを用いて、フレーム境界を超えた領域の画像データ（周辺画素）を生成する。
図９は、図８（ａ）の態様で探索領域がフレーム境界を超えた場合に行われる周辺画素の補間の一例を示す図である。なお、図９において、同一模様の周辺画素は、同一の画素（フレーム境界に位置する画素）で補間されていることを示している。
【００６８】
図９においては、フレーム境界に位置するマクロブロックがそのままフレーム外に拡張され、フレームの左上に位置するマクロブロックが、フレームの左上方の領域に拡張されている。
このように周辺画素の補間を行うことにより、非制限動きベクトル（フレーム境界を超えた指定を認める動きベクトル）を符号化処理に用いることが可能となる。また、本発明に係る動画像処理装置１のように、マクロブロック単位で画像データを動き検出／動き補償処理部８０に読み込み、符号化処理を行う場合にも、読み込まれたマクロブロックのみを用いて周辺画素を補間することができるため、効率的に処理を行うことが可能となる。
【００６９】
以上のように、本実施の形態に係る動画像処理装置１は、動画像の符号化処理における負荷の比重が高い動き検出処理を、コプロセッサとされた動き検出／動き補償処理部８０において処理する。また、このとき、動き検出／動き補償処理部８０は、動き検出処理をマクロブロック単位で行う。
そのため、プロセッサコア１０がソフトウェアによって行う符号化処理と、動き検出／動き補償処理部８０がハードウェアによって行う符号化処理とにおいて、データのインターフェースを整合性の高いものとすることができ、また、各マクロブロックの動き検出が終了する毎にプロセッサコア１０が引き続く符号化処理を順次実行できる。
【００７０】
したがって、プロセッサコア１０と、コプロセッサである動き検出／動き補償処理部８０をより効果的に並列動作させることが可能となり、動画像の符号化処理を効率的に行うことが可能となる。
また、動き検出／動き補償処理部８０がマクロブロック単位で画像データを読み込み、動き検出処理を行うため、動き検出／動き補償処理部８０において必要となるバッファのサイズを低減することができ、低コストかつ低消費電力で符号化処理を行うことが可能となる。
【００７１】
さらに、プロセッサコア１０によって再構成されたローカルメモリ４０内の再構成画像を、動き検出／動き補償処理部８０の再構成画像転送部２１４がＤＭＡによってフレームメモリ１１０に転送し、符号化処理に使用する。
したがって、プロセッサコア１０の処理負荷を軽減することができることから、プロセッサコア１０の動作周波数を低下させることが可能となるため、さらに低消費電力化を測ることが可能となる。また、動画像処理装置１を携帯電話等のモバイル機器に組み込んだ場合には、処理負荷が軽減されることにより創出されたプロセッサコア１０の処理能力を他のアプリケーションの処理に振り分けることため、モバイル機器であっても、より高機能なアプリケーションを動作させることが可能となる。さらに、プロセッサコア１０に要求される処理能力が低減されることから、プロセッサコア１０として、安価なプロセッサを使用することが可能となり、コストの削減を図ることができる。
【００７２】
なお、本実施の形態における動画像処理装置１は、動画像の復号化処理を行う機能を備えていることから、上述の符号化処理における利点を活用して、動画像の復号化処理を行うことが可能である。
即ち、動画像処理装置１に対し、復号化対象となる動画像データを与えることにより、プロセッサコア１０が可変長復号処理を施して、動きベクトルが取得される。この動きベクトルを、所定のレジスタ（動きベクトル用レジスタ）に格納する。
【００７３】
すると、動き検出／動き補償処理部８０の予測画像生成部２１２が、その動きベクトルに基づいて、マクロブロック（Ｙ，Ｃｂ，Ｃｒ成分）をローカルメモリ４０に転送する。
そして、プロセッサコア１０は、復号化対象となる動画像に対し、可変長復号処理、逆スキャン処理（逆ジグザグスキャン等）、逆ＡＣ／ＤＣ予測処理、逆量子化処理、逆ＤＣＴ処理を実行し、その結果を再構成画像としてローカルメモリ４０に記憶する。
【００７４】
すると、動き検出／動き補償処理部８０の再構成画像転送部２１４が、ローカルメモリ４０からフレームメモリ１１０に再構成画像をＤＭＡ転送する。
このような処理をマクロブロック毎に繰り返すことにより、動画像の復号化処理を行うことができる。
【図面の簡単な説明】
【００７５】
【図１】本発明に係る動画像処理装置１の機能構成を示すブロック図である。
【図２】ローカルメモリ４０においてマクロブロックが記憶される形態を示す図である。
【図３】動き検出／動き補償処理部８０の内部構成を示すブロック図である。
【図４】マクロブロックに対して４つの動きベクトルが設定された状態および１つの動きベクトルが設定された状態を示す図である。
【図５】フレームメモリ１１０の記憶内容を示す概略的な模式図である。
【図６】プロセッサコア１０が実行する符号化関数実行処理を示すフローチャートである。
【図７】検索対象オリジナル画像バッファ２０７に検索対象となる画像データが順次読み込まれる場合の状態遷移を示す図である。
【図８】探索領域がフレームの境界を超える態様を示す模式図である。
【図９】図８（ａ）の態様で探索領域がフレーム境界を超えた場合に行われる周辺画素の補間の一例を示す図である。
【符号の説明】
【００７６】
１  動画像処理装置、１０  プロセッサコア、２０  命令メモリ、３０  命令キャッシュ、４０  ローカルメモリ、５０  データキャッシュ、６０  内部バス調停部、７０  ＤＭＡ制御部、８０  動き検出／動き補償処理部、９０  コプロセッサ、１００，２０１  外部メモリＩ／Ｆ、１１０  フレームメモリ、２０２  ，２０５  補間処理部、２０３  再構成画像バッファ、２０４  半画素生成部、２０６，２０９  間引き処理部、２０７  検索対象オリジナル画像バッファ、２０８  符号化対象オリジナル画像バッファ、２１０  動き検出制御部、２１１  差分絶対値和処理部、２１２  予測画像生成部、２１３  差分画像生成部、２１４  再構成画像転送部、２１５  周辺画素生成部、２１６  ホストＩ／Ｆ、２１７  ローカルメモリＩ／Ｆ、２１８  ローカルメモリアドレス生成部、２１９  ＭＢ管理部、２２０  フレームメモリアドレス生成部
【図１】
2005244845.tif 000003
【図２】
2005244845.tif 000004
【図３】
2005244845.tif 000005
【図４】
2005244845.tif 000006
【図５】
2005244845.tif 000007
【図６】
2005244845.tif 000008
【図７】
2005244845.tif 000009
【図８】
2005244845.tif 000010
【図９】
2005244845.tif 000011