(57)【特許請求の範囲】
【請求項１】
画像処理部と、
前記画像処理部が生成する画像を矩形領域単位で独立に圧縮して圧縮データを生成し第１メモリに格納する画像データ圧縮部と、
前記矩形領域単位の圧縮データのサイズと前記圧縮データの第１メモリにおける格納アドレスとを記録した管理データに基づいて、前記第１メモリからの前記圧縮データの読み出しを制御するアドレス管理部と、
前記第１メモリから読み出した前記圧縮データを格納する第２メモリと、
前記第２メモリから読み出された前記圧縮データを展開し、前記画像処理部に展開後の画像を供給する画像データ展開部と、
前記第２メモリに対する前記圧縮データの書き込み及び読み出しを前記管理データに基づいて制御するとともに、前記第２メモリ内に前記圧縮データとして格納されている画面領域が前記書き込みにより変化するのに伴い、前記格納されている画面領域の境界を示すデータを前記管理データに基づいて更新するメモリ制御部と、
を含むことを特徴とする画像処理装置。
【請求項２】
前記メモリ制御部により制御される前記第２メモリ内において、前記矩形領域単位の圧縮データが、画面内の前記矩形領域の並び順に対応したアドレス位置に配置され、前記アドレス位置は前記第２メモリの最終アドレスの次は先頭アドレスに戻って次の前記矩形領域の並び順に対応して定まるデータ配置が用いられ、書き込みにより前記第２メモリにおいて既存の前記圧縮データが上書きされる場合、書き込みのアドレスと前記管理データに含まれる前記矩形領域単位の圧縮データのサイズとに基づいて、前記格納されている画面領域の削除部分を算出することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記メモリ制御部は、画面左端から画面右端まで横方向に一列に並ぶ複数の前記矩形領域を矩形領域ラインとし、画面内において縦方向に連続する複数の矩形領域ラインについて、矩形領域ラインの先頭部分を並行して前記第１メモリから読み出し、前記データ配置により規定される各矩形領域ラインの先頭アドレスから並行して前記先頭部分を前記第２メモリへ書き込むことを特徴とすることを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記画像処理部により要求される画面領域が前記格納されている画面領域に含まれるか否かの判定をするヒット又はミス判定部を更に含み、前記要求される画面領域が前記格納されている画面領域に含まれる場合には、前記メモリ制御部が前記格納されている画面領域を前記第２メモリから読み出し、前記画像データ展開部が前記第２メモリから読み出された画面領域を展開し、前記要求される画面領域が前記格納されている画面領域に含まれない場合には、前記アドレス管理部が前記管理データに基づいて前記第１メモリから前記要求される画面領域を含む画面領域を読み出し、前記画像データ展開部が前記第１メモリから読み出された画面領域を展開することを特徴とする請求項１乃至３何れか一項記載の画像処理装置。
【請求項５】
前記ヒット又はミス判定部は、前記判定において、前記格納されている画面領域のうちで画面左端と画面右端との両方に接する第１の矩形領域と、前記第１の矩形領域の上方に隣接する画面右端に接する第２の矩形領域と、前記第１の矩形領域の下方に隣接する画面左端に接する第３の矩形領域とのみからなる領域に、前記要求される画面領域が含まれるか否かを判定することを特徴とする請求項４記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、一般に画像処理装置に関し、詳しくはメモリから読み出した画像を用いて画像処理を行なう画像処理装置に関する。
【背景技術】
【０００２】
ハイビジョン放送や大容量光ディスクなどの普及により、画像処理ＬＳＩにおいては、扱う画像の大画面化が進み、機能が益々高度になってきている。大画面化及び高機能化が進むにつれて、画像処理ＬＳＩが使用するメモリ容量およびメモリバス帯域は、増加の一途を辿っている。
【０００３】
画像処理ＬＳＩでは、外部メモリに置かれる画像データに対して、膨大なメモリアクセスが発生する。これにより、ＬＳＩと外部メモリとの間のバス帯域の圧迫が問題となる。ＭＰＥＧやＨ．２６４のデコーダ／エンコーダにおいては、同じ参照画領域を複数回読み出す場合があり、これが外部メモリとの間の転送量増大の一因になっている。同じ領域を外部メモリから複数回読み出すことを避ける方法として、一度外部メモリから読み出したデータをプリフェッチメモリに格納しておき、その後はプリフェッチメモリから当該データを繰り返し読み出すという方法が提案されている（特許文献１）。従来手法では、比較的広い範囲の画像データをプリフェッチメモリに格納しておく必要があるため、プリフェッチとして大きなサイズのメモリが必要であった。
【０００４】
一方、ブロック単位で画像データを圧縮し、外部メモリから任意の順で読み出す方式が提案されている（特許文献２）。この方式では、参照画領域が必要になる度に、その領域の圧縮データを外部メモリから読み出して展開し、画像処理部へ供給する。
【０００５】
上記プリフェッチメモリ方式と圧縮データ方式とを単純に組み合わせれば、外部メモリから圧縮データを読み出して展開し、プリフェッチメモリに格納する構成が得られる。この構成により、バス使用帯域削減の効果が得られるが、プリフェッチメモリの容量を削減する効果は得られない。プリフェッチメモリの容量を削減するためには、圧縮データをそのままプリフェッチメモリに格納すればよいが、ブロック毎に圧縮データのサイズが異なるためにプリフェッチメモリの読み書きを従来のような方式で管理することができなくなってしまう。即ち、プリフェッチメモリ方式と圧縮データ方式とを単純に組み合わせることでは、プリフェッチメモリの容量を削減することはできない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−６１１５１号公報
【特許文献２】特開２００６−３１３９８４号公報
【特許文献３】特開２００４−３１８９４０号公報
【特許文献４】特開２００３−２１６４８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以上を鑑みると、画像データを圧縮することによりプリフェッチメモリの容量を削減した画像処理装置が望まれる。
【課題を解決するための手段】
【０００８】
画像処理装置は、画像処理部と、前記画像処理部が生成する画像を矩形領域単位で独立に圧縮して圧縮データを生成し第１メモリに格納する画像データ圧縮部と、前記矩形領域単位の圧縮データのサイズと前記圧縮データの第１メモリにおける格納アドレスとを記録した管理データに基づいて、前記第１メモリからの前記圧縮データの読み出しを制御するアドレス管理部と、前記第１メモリから読み出した前記圧縮データを格納する第２メモリと、前記第２メモリから読み出された前記圧縮データを展開し、前記画像処理部に展開後の画像を供給する画像データ展開部と、前記第２メモリに対する前記圧縮データの書き込み及び読み出しを前記管理データに基づいて制御するとともに、前記第２メモリ内に前記圧縮データとして格納されている画面領域が前記書き込みにより変化するのに伴い、前記格納されている画面領域の境界を示すデータを前記管理データに基づいて更新するメモリ制御部とを含むことを特徴とする。
【発明の効果】
【０００９】
本願開示の少なくとも１つの実施例によれば、画像データを圧縮して第１メモリに格納し、圧縮データを第１メモリから読み出して圧縮状態のまま第２メモリに格納することで、プリフェッチメモリである第２メモリの容量を削減することができる。また第１メモリの読み書きに用いる管理データを利用して、第２メモリの読み書き及び第２メモリに格納されている画面領域の境界を示すデータの管理を行なうことで、プリフェッチメモリ内の圧縮データの管理が可能となる。
【図面の簡単な説明】
【００１０】
【図１】画像処理装置の構成及び動作の一例を示す図である。
【図２】ＳＤＲＡＭにおいてマクロブロック単位の圧縮データが格納されたデータ配置の一例を示す図である。
【図３】アドレス管理テーブルの一例を示す図である。
【図４】ＳＤＲＡＭへの圧縮データの書き込み処理の流れを示すフローチャ―トである。
【図５】圧縮プリフェッチメモリに格納される画面領域を模式的に示す図である。
【図６】圧縮プリフェッチメモリに格納されている画面領域に対応するＳＤＲＡＭ内のデータ領域を示す図である。
【図７】圧縮プリフェッチメモリに格納される圧縮データを示す図である。
【図８】図１のプリフェッチ処理部により実行されるプリフェッチ動作を示すフローチャートである。
【図９】画像処理部により要求される参照画像を提供する処理を示すフローチャートである。
【図１０】展開バッファメモリから切り出される要求画面領域を示す図である。
【図１１】プリフェッチによる格納画面領域の変化の一例を示す図である。
【図１２】圧縮プリフェッチメモリの内部のメモリマップを示す図である。
【図１３】画面領域の更新に用いられる管理データの一例を示す図である。
【図１４】図１３の管理データの各列のデータの意味を示した表である。
【図１５】ヒット又はミス判定における領域判定を説明するための図である。
【発明を実施するための形態】
【００１１】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１２】
図１は、画像処理装置の構成及び動作の一例を示す図である。図１には画像処理装置１０とＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）１１とを含むシステムが示される。なお図１において、各ボックスで示される各機能ブロックと他の機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。ハードウェアの場合、各機能ブロックは、他のブロックと物理的にある程度分離された１つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の１つの機能を示したものであってもよい。ソフトウェアの場合、各機能ブロックは、他のブロックと論理的にある程度分離された１つのソフトウェアモジュールであってもよいし、或いは他のブロックと論理的に一体となったソフトモジュール中の１つの機能を示したものであってもよい。
【００１３】
画像処理装置１０は、画像処理部１２、プリフェッチ処理部１３、及びメモリコントローラ１４を含む。画像処理部１２は、ＳＤＲＡＭ１１からメモリコントローラ１４を介して読み出した画像データを処理する。この画像処理において、画像処理部１２は、プリフェッチ処理部１３に格納されるプリフェッチ画像を参照画像として利用する。画像処理は例えば動画像符号化処理であり、参照画像に対して、カレントブロックの動きベクトル算出が行なわれる。或いは画像処理は例えば動画像復号化処理であり、参照画像とデコードされた差分画像とに基づいて原画像を再構成する。
【００１４】
画像処理部１２は、動きベクトル検出部２０、インター予測部２１、イントラ予測部２２、選択部２３、予測誤差演算部２４、変換及び量子化部（Ｔ／Ｑ）２５、符号化部２６、逆変換及び逆量子化部（ＩＴ／ＩＱ）２７、加算部２８、及びフィルタ部２９を含む。画像処理部１２は更に、全体制御部３０及び画像転送インターフェース３１を含む。全体制御部３０が画像処理部１２の各部を制御して、所望の符号化処理を実行する。
【００１５】
ＳＤＲＡＭ１１には、ビデオカメラ等の外部動画像源から順次供給される動画像データのうちの最新の数フレーム分の画像が格納されている。これら複数の画像のうちの１つが符号化対象画像であり、他の１つ又は２つの画像が予測符号化用の参照画像用として用いられる。符号化対象画像は複数のマクロブロックに分割されており、そのうちの１つが符号化対象である着目マクロブロックである。符号化対象画像は、画像転送インターフェース３１によりメモリコントローラ１４を介してＳＤＲＡＭ１１から読み出される。
【００１６】
動きベクトル検出部２０及びインター予測部２１は、参照画像と符号化対象画像の着目マクロブロックとから画面間予測画像を生成する。イントラ予測部２２は、着目マクロブロックが属する符号化対象画像内の画像データ、即ち着目マクロブロックが属する画面と同一画面の画像データから画面内予測画像を生成する。選択部２３は、各マクロブロックの予測画像の生成方式として、画面内予測方式（イントラ予測方式）と画面間予測方式（インター予測方式）との切り替えを行なう。なお上記参照画像は、ＳＤＲＡＭ１１から予め読み出されてプリフェッチ処理部１３のプリフェッチメモリに格納されている画像であってよい。このプリフェッチ処理部１３の処理については後程説明する。
【００１７】
動きベクトル検出部２０の処理は、具体的には、複数の動きベクトルに対して着目マクロブロックと参照画像中の対応位置の画像ブロックの間の誤差（例えば画素毎の差分の絶対値和）を求め、この誤差の大きさを参考にして最適な動きベクトルを検出する。予測画像が着目マクロブロックと最も類似した画像となるように動きベクトルを選択すれば、誤差画像の情報量が最も小さくなり、最終的に符号化後のビットストリームの情報量が最も小さくなる。インター予測部２１は、検出した最適な動きベクトルに対応する参照画像中の位置の画像ブロックを抽出し、予測画像として出力する。
【００１８】
選択部２３が選択した予測画像は、予測誤差演算部２４に供給される。予測誤差演算部２４は、予測画像と着目ブロックとの差分を計算することにより予測画像と着目ブロックとから誤差画像を求め、求めた誤差画像を変換及び量子化部２５に供給する。変換及び量子化部２５は、誤差画像に対して直交変換を行ない、更に、直交変換後の誤差画像即ち変換係数に対して量子化処理を実行し、量子化された変換係数を求める。この量子化後変換係数は、符号化部２６と逆変換及び逆量子化部２７とに供給される。符号化部２６は、量子化後変換係数をエントロピー符号化し、情報量圧縮された画像情報であるビットストリームを生成する。なお動きベクトル検出部２０が検出した動きベクトルは、量子化後変換係数とともにエントロピー符号化され、ビットストリーム中に動きベクトルに関する情報が含まれることになる。
【００１９】
逆変換及び逆量子化部２７は、量子化後変換係数に対して逆量子化を実行して変換係数を復元し、更に、変換係数に対して逆直交変換を実行して誤差画像を復元する。加算部２８は、復元された誤差画像と予測誤差演算部２４で用いた予測画像とから、再構成画像を生成する。フィルタ部２９は、直交変換・量子化処理と逆量子化・逆直交変換処理とにより再構成画像に生じたブロック歪みを減少させるデブロッキングフィルタ処理を行い、処理後の画像であるローカルデコード画像を画像転送インターフェース３１に供給する。
【００２０】
プリフェッチ処理部１３は、画像データ圧縮部４０、ヒット又はミス判定部４１、プリフェッチ領域管理・リクエスト発行部４２、調停部４３、アドレス管理部４４、及びアクセス調停部４５を含む。プリフェッチ処理部１３は更に、プリフェッチメモリ制御部４６、圧縮プリフェッチメモリ４７、振り分け部４８、調停部４９、画像データ展開部５０、展開バッファメモリ５１を含む。
【００２１】
画像データ圧縮部４０は、画像処理部１２のフィルタ部２９から画像転送インターフェース３１を介してローカルデコード画像及びその書き込み要求ＷｒｉｔｅＲｅｑを受け取ると、ローカルデコード画像を矩形領域単位で独立に圧縮して圧縮データを生成する。ここで言う矩形領域単位とは、例えばマクロブロック単位であってよい。画像データ圧縮部４０は、矩形領域単位の圧縮データを、書き込みデータＷｒｉｔｅＤａｔａとしてメモリコントローラ１４を介してＳＤＲＡＭ１１に格納する。また画像データ圧縮部４０は、矩形領域単位の圧縮データのサイズと圧縮データのＳＤＲＡＭ１１への格納アドレスとを記録した管理データを生成し、アドレス管理テーブル１５としてＳＤＲＡＭ１１に格納する。なおアクセス調停部４５が、画像データ圧縮部４０と後述するアドレス管理部４４との間で、ＳＤＲＡＭ１１に対するアクセス要求の調停を行なう。
【００２２】
ヒット又はミス判定部４１は、画像処理部１２の動きベクトル検出部２０又はインター予測部２１から画像転送インターフェース３１を介して参照画像の読み出し要求ＲｅａｄＲｅｑを受け取る。この参照画像の読み出し要求ＲｅａｄＲｅｑには、要求される参照画像の画面領域を示す画面内座標データが含まれる。ヒット又はミス判定部４１は、この参照画像として要求される画面領域が、圧縮プリフェッチメモリ４７に格納されている画面領域に含まれるか否かの判定を行なう。参照画像として要求される画面領域が圧縮プリフェッチメモリ４７に格納されている画面領域に含まれる場合、即ちヒット判定の場合、ヒット又はミス判定部４１は読み出し要求をプリフェッチメモリ制御部４６に発行する。参照画像として要求される画面領域が圧縮プリフェッチメモリ４７に格納されている画面領域に含まれない場合、即ちミス判定の場合、ヒット又はミス判定部４１は読み出し要求を調停部４３に発行する。
【００２３】
プリフェッチ領域管理・リクエスト発行部４２は、画像処理部１２において着目マクロブロックが順次符号化処理されるのに同期して、全体制御部３０から各着目マクロブロックの処理開始又は終了を示す同期制御信号を受け取る。同期制御信号を数えることにより、所定数個の着目マクロブロックの符号化処理が終了する毎に、プリフェッチ領域管理・リクエスト発行部４２は、プリフェッチ要求を調停部４３に発行する。ヒット又はミス判定部４１が発行する読み出し要求及びプリフェッチ領域管理・リクエスト発行部４２が発行するプリフェッチ要求は、調停部４３により調停されて、アドレス管理部４４に供給される。
【００２４】
アドレス管理部４４は、読み出し要求又はプリフェッチ要求に応答して、メモリコントローラ１４を介してＳＤＲＡＭ１１に読み出し要求及び読み出しアドレスを供給し、ＳＤＲＡＭ１１から画像を読み出す。この際、アドレス管理部４４は、アドレス管理テーブル１５を参照し、矩形領域単位の圧縮データのサイズと圧縮データのＳＤＲＡＭ１１における格納アドレスとを記録した管理データに基づいて、ＳＤＲＡＭ１１からの圧縮データの読み出しを制御する。プリフェッチ領域管理・リクエスト発行部４２からのプリフェッチ要求に応じて読み出された画像の圧縮データは、振り分け部４８により圧縮プリフェッチメモリ４７に振り分けられ、圧縮プリフェッチメモリ４７に格納される。ヒット又はミス判定部４１からの読み出し要求に応じて読み出された画像の圧縮データは、振り分け部４８により振り分けられ、調停部４９を介して画像データ展開部５０に供給される。
【００２５】
プリフェッチメモリ制御部４６は、圧縮プリフェッチメモリ４７に対する圧縮データの書き込み及び読み出しを、上記の管理データに基づいて制御する。また更にプリフェッチメモリ制御部４６は、圧縮プリフェッチメモリ４７内に圧縮データとして格納されている画面領域が書き込みにより変化するのに伴い、格納されている画面領域の境界を示すデータを上記管理データに基づいて更新する。これらのプリフェッチメモリ制御部４６によるメモリ制御動作については後程詳細に説明する。
【００２６】
画像データ展開部５０は、ヒット又はミス判定部４１のヒット判定時に圧縮プリフェッチメモリ４７から読み出された圧縮データ、又は、ヒット又はミス判定部４１のミス判定時にＳＤＲＡＭ１１から読み出された圧縮データを調停部４９を介して受け取る。画像データ展開部５０は、圧縮プリフェッチメモリ４７から読み出された圧縮データ又はＳＤＲＡＭ１１から読み出された圧縮データを展開し、展開バッファメモリ５１に展開後の画像を格納する。展開バッファメモリ５１に格納された展開後の画像のうち、画像処理部１２により要求される矩形領域部分を切り出して、切り出した部分の画像が画像処理部１２に供給される。
【００２７】
図２は、ＳＤＲＡＭ１１においてマクロブロック単位の圧縮データが格納されたデータ配置（メモリマップ）の一例を示す図である。この例において、図２（ｂ）に示すように、画面６０（動画像の各フレーム）の画面左端から画面右端まで横方向に一列に並ぶ複数のマクロブロック（矩形領域）をマクロブロックライン（矩形領域ライン）とする。各マクロブロックは１６画素×１６画素の大きさであり、０，１，２で示す順番に並べられている。画面６０の上端から下端まで、マクロブロックラインＭＢＬｉｎｅ０からＭＢＬｉｎｅＮ−１までのＮ個のマクロブロックラインが並んでいる。図２（ａ）に示すように、ＳＤＲＡＭ１１において、画面６０におけるマクロブロックラインの並び順と同じ並び順で、マクロブロックラインのデータが格納されている。
【００２８】
図２（ａ）に示す例では、図示の都合上、マクロブロックラインＭＢＬｉｎｅ０からＭＢＬｉｎｅ５までの６個のマクロブロックラインのデータのみが示されている。各マクロブロックラインのデータは、マクロブロックＭＢ０からＭＢＭ−１までのＭ個のマクロブロックの圧縮データが、画面６０におけるマクロブロックの並び順と同じ並び順で格納されている。図２（ａ）の例では、そのようなマクロブロックの圧縮データの並びがマクロブロックラインＭＢＬｉｎｅ０に対してのみ示されている。ここで図２（ａ）にＳＤＲＡＭ１１のメモリマップとして示す枠の縦方向はアドレス位置であり、横幅はＳＤＲＡＭ１１の１ワードに相当する。ＳＤＲＡＭの１ワードが例えば６４ビット幅であるとして、マクロブロックの圧縮データが８ビット単位のデータであるとすると、図２（ａ）に示すように隙間無くマクロブロックの圧縮データを並べることで効率的なデータ読み書きを実現できる。
【００２９】
図１に示す画像処理装置１０の画像データ圧縮部４０は、マクロブロック単位でデータを受け取り、マクロブロック単位でデータを圧縮して、複数個のマクロブロックの圧縮データを繋げて連続するようにＳＤＲＡＭ１１に書き込む。一度の書き込み動作により書き込むマクロブロックの個数は、１マクロブロックライン分であってよい。但し、圧縮データの量が大きくなる場合には、画像データ圧縮部４０に用意したレジスタに１マクロブロックライン分の圧縮データが収まりきらない場合もある。そのような場合には、所定長（上記のレジスタの容量）の圧縮データが蓄積されると、１マクロブロックラインの途中でデータ書き込みを実行してよい。前述のように、画像データ圧縮部４０は、各マクロブロックライン先頭の書き込みアドレス（図２（ａ）に示すＡＤ０乃至ＡＤＲ５等）と、マクロブロック単位の圧縮データのサイズとをアドレス管理テーブル１５として記録する。
【００３０】
図３は、アドレス管理テーブル１５の一例を示す図である。図３に示すように、Ｎ個のマクロブロックラインのそれぞれの先頭アドレスＡＤＲ０乃至ＡＤＲＮ−１が格納されている。また各マクロブロックライン内の全てのマクロブロックのサイズが格納されている。図３に示す表記において、Ｓｉｚｅ（ｘ，ｙ）は、ｙ番目のマクロブロックラインのｘ番目のマクロブロックの圧縮データのサイズを示す。
【００３１】
上記のように圧縮単位をマクロブロック単位としていることにより、マクロブロック単位でのランダムアクセスが可能となる。但し、ＳＤＲＡＭの１ワード単位での読み書きしかできないので、例えば図２（ａ）の例において、マクロブロックＭＢ２を読み出したい場合は、マクロブロックＭＢ１の途中からマクロブロックＭＢ３の途中までをＳＤＲＡＭ１１から読み出すことになる。
【００３２】
また、マクロブロック単位ではなく、複数個のマクロブロックの圧縮データを繋げた所定長の単位毎にＳＤＲＡＭ１１にデータを書き込むので、図２（ａ）に示すように、ＳＤＲＡＭ１１には隙間無くマクロブロックの圧縮データが並べられる。従って、順次走査順で読み出す通常のプリフェッチ動作時は無駄読みが少ない。またヒット又はミス判定部４１のミス判定時等に、ＳＤＲＡＭ１１へのランダムアクセスが必要な場合には、アドレス管理テーブル１５に記録したマクロブロック単位のサイズ及びマクロブロックライン先頭のアドレスから、アクセス先アドレスを計算できる。
【００３３】
図４は、ＳＤＲＡＭ１１への圧縮データの書き込み処理の流れを示すフローチャ―トである。図１に示す画像データ圧縮部４０がこの処理を実行する。
【００３４】
ステップＳ１で、画像データ圧縮部４０が画像処理部１２からのマクロブロック書き込み要求を受信する。ステップＳ２で、画像データ圧縮部４０は、書き込み対象のマクロブロックがマクロブロックラインの先頭であるか否かを判定する。先頭である場合には、ステップＳ３で、マクロブロックラインの先頭アドレスをアドレス管理テーブル１５に記録する。
【００３５】
ステップＳ４で、画像データ圧縮部４０は、画像処理部１２からマクロブロックデータ（ローカルデコード画像データ）を受信する。ステップＳ５で、画像データ圧縮部４０は、受信したマクロブロックデータを独立に圧縮する。即ち、受信したマクロブロックデータに対して、他のマクロブロックデータの情報を用いることなく、単独に圧縮処理が行なわれる。ステップＳ６で、画像データ圧縮部４０は、圧縮処理により得られた圧縮データのサイズをアドレス管理テーブル１５に記録する。
【００３６】
ステップＳ７で、画像データ圧縮部４０は、１ブロックラインに対する全てのマクロブロックの圧縮処理が完了したか否かを判定する。完了していない場合には、ステップＳ８で、圧縮データの累積サイズが所定の閾値以上であるか否かを判定する。例えば、前述の画像データ圧縮部４０内部のレジスタ容量から、マージン分を引いた値以上であるか否かを判定する。閾値以上であれば、ステップＳ９で、画像データ圧縮部４０は、蓄積されている全ての圧縮データをＳＤＲＡＭ１１に書き込む。ステップＳ８での判定によりまだ閾値以上ではないとの判定結果が得られた場合、及び、ステップＳ９での書き込み処理の終了後、ステップＳ１に戻り、次のマクロブロックに対する同様の処理を実行する。
【００３７】
１ブロックラインに対する全てのマクロブロックの圧縮処理が完了したとステップＳ７で判定された場合、ステップＳ１０で、画像データ圧縮部４０は１ブロックライン分の圧縮データをＳＤＲＡＭ１１に書き込む。ステップＳ１１で、画像データ圧縮部４０は、アドレス管理テーブル１５をＳＤＲＡＭ１１に書き込む。
【００３８】
図５は、圧縮プリフェッチメモリ４７に格納される画面領域を模式的に示す図である。図５（ａ）に示す状態では、マクロブロック座標（２，１）を始点ＭＢ＿Ｓとしマクロブロック座標（１，４）を終点ＭＢ＿Ｅとして、始点から終点まで画面上の走査順に並ぶ全てのマクロブロックの圧縮データが圧縮プリフェッチメモリ４７に格納されている。ここでマクロブロック座標（ｘ，ｙ）は、画面上端からｙ番目のマクロブロックラインにおける左からｘ番目のマクロブロックの位置を示す。
【００３９】
図５（ａ）に示す状態において、図１に示すプリフェッチ領域管理・リクエスト発行部４２が画像処理部１２の全体制御部３０から同期制御信号を受け取ると、新たなマクロブロックがプリフェッチされ、圧縮プリフェッチメモリ４７のデータが更新される。図５に示す例では、図５（ａ）に示す状態から図５（ｂ）に示す状態に、圧縮プリフェッチメモリ４７に格納される画面領域が変化する。図５（ｂ）に示す状態では、マクロブロック座標（５，１）を始点ＭＢ＿Ｓとしマクロブロック座標（５，４）を終点ＭＢ＿Ｅとして、始点から終点まで走査順に並ぶ全てのマクロブロックの圧縮データが圧縮プリフェッチメモリ４７に格納されている。終点側（下側）では４つのマクロブロックが追加されているが、始点側（上側）では３つのマクロブロックが削除されただけとなっている。これは、圧縮プリフェッチメモリ４７に格納されているのは各マクロブロックの圧縮データであるために、各マクロブロックのデータサイズが一定ではないからである。即ち、既に圧縮プリフェッチメモリ４７の全領域に圧縮データが格納されている状態で、更に追加の４つのマクロブロックが書き込まれると、この例では、始点側の３つのマクロブロックが上書きにより削除されることになる。
【００４０】
アドレス管理テーブル１５のサイズデータにより、追加された４つのマクロブロックの圧縮データのサイズが分かり、また始点側の各マクロブロックの圧縮データのサイズも分かるので、始点側で幾つのマクロブロックが消滅するかを計算することができる。プリフェッチメモリ制御部４６が、この計算を行なうことにより、圧縮プリフェッチメモリ４７内に圧縮データとして格納されている画面領域が書き込みにより変化するのに伴い、格納されている画面領域の境界を示すデータを更新する。画面領域の境界を示すデータとしては、画面領域が連続するマクロブロックにより構成される単純な例においては、始点ＭＢ＿Ｓのマクロブロック座標と、終点ＭＢ＿Ｅのマクロブロック座標とを用いればよい。
【００４１】
図６は、圧縮プリフェッチメモリ４７に格納されている画面領域に対応するＳＤＲＡＭ１１内のデータ領域を示す図である。図６の右側には、マクロブロックライン単位で示したＳＤＲＡＭ１１のメモリマップが示され、図６の左側には、同じＳＤＲＡＭ１１のメモリマップをマクロブロック単位で示してある。各メモリマップにおいて、マクロブロック及びマクロブロックラインの図示の長さは、圧縮データの大きさに対応している。バー６１は、図５（ａ）の状態において圧縮プリフェッチメモリ４７に格納されている圧縮データと同一の圧縮データが、ＳＤＲＡＭ１１に格納されている位置を示す。バー６２は、図５（ｂ）の状態において圧縮プリフェッチメモリ４７に格納されている圧縮データと同一の圧縮データが、ＳＤＲＡＭ１１に格納されている位置を示す。
【００４２】
マクロブロックＭＢ（２，４）乃至ＭＢ（５，４）を追加することにより、マクロブロックＭＢ（２，１）及びＭＢ（３，１）とマクロブロックＭＢ（４，１）の一部とが上書きにより消失する。書き込み前のバー６１の長さと、書き込み更新後のバー６２の長さとは等しい。マクロブロックＭＢ（４，１）の上書きされていない部分は残されているが、マクロブロックの圧縮データとしては使用不可であるので、図５（ｂ）に示すように、マクロブロックＭＢ（４，１）は全体が消失したものとして扱われる。
【００４３】
図７は、圧縮プリフェッチメモリ４７に格納される圧縮データを示す図である。図７（ａ）には、図５（ａ）に示す状態において圧縮プリフェッチメモリ４７に格納されている、複数のマクロブロックラインＭＢＬｉｎｅ１乃至ＭＢＬｉｎｅ４が示されている。この状態においては、図５（ａ）或いは図６の右側に示すように、圧縮プリフェッチメモリ４７には、マクロブロックラインＭＢＬｉｎｅ１の途中からマクロブロックラインＭＢＬｉｎｅ４の途中までが格納されている。各マクロブロックライン内においては、１ライン分の複数のマクロブロックが、画面内の並び順に並べられている。圧縮プリフェッチメモリ４７の先頭アドレス位置を開始点として、画面内で先頭のマクロブロックラインＭＢＬｉｎｅ０から順番にマクロブロックラインが配置され、最終アドレスの次は先頭アドレスに戻って、更に順番にマクロブロックラインが配置される。図７（ａ）においては、マクロブロックラインＭＢＬｉｎｅ３の途中で最終アドレスから先頭アドレスに戻って、マクロブロックラインＭＢＬｉｎｅ４の途中まで書き込まれている。ＷＰ（Ａ）は図７（ａ）の状態での書き込みポインタの位置であり、この位置から追加の圧縮データが書き込まれることになる。
【００４４】
図７（ｂ）には、書き込み後の図５（ｂ）に示す状態において、圧縮プリフェッチメモリ４７に格納されている複数のマクロブロックラインＭＢＬｉｎｅ１乃至ＭＢＬｉｎｅ４が示されている。図７（ａ）及び（ｂ）から分かるように、マクロブロックラインＭＢＬｉｎｅ４の圧縮データが追加されることにより、マクロブロックラインＭＢＬｉｎｅ４のデータ量が増え、その分だけマクロブロックラインＭＢＬｉｎｅ１の圧縮データが上書きされ消滅している。ＷＰ（Ｂ）は、書き込み後の図７（ｂ）の状態での書き込みポインタの位置である。
【００４５】
このように、プリフェッチメモリ制御部４６により制御される圧縮プリフェッチメモリ４７内において、矩形領域単位として例えばマクロブロック単位の圧縮データが、画面内のマクロブロックの並び順に対応したアドレス位置に配置される。このアドレス位置は、プリフェッチメモリ制御部４６の最終アドレスの次は先頭アドレスに戻って、次のマクロブロックの並び順に対応して定まっている。書き込みにより圧縮プリフェッチメモリ４７において既存の圧縮データが上書きされる場合、書き込みのアドレスとアドレス管理テーブル１５の管理データに含まれるマクロブロック単位の圧縮データのサイズとに基づいて、画面領域の削除部分を算出できる。
【００４６】
ＳＤＲＡＭ１１への書き込み時にマクロブロック毎のサイズが確定している。従って、圧縮プリフェッチメモリ４７の先頭アドレス位置が例えばマクロブロックラインＭＢＬｉｎｅ０の左端のマクロブロックの書き込みアドレスとなるように規定すれば、各マクロブロックの圧縮プリフェッチメモリ４７内でのアドレスは一意に確定する。言い換えると、アドレス管理テーブル１５のマクロブロック単位のサイズ情報から、圧縮プリフェッチメモリ４７内の各マクロブロックのアドレスを決定することができる。
【００４７】
図８は、図１のプリフェッチ処理部１３により実行されるプリフェッチ動作を示すフローチャートである。ステップＳ１において、プリフェッチ処理部１３のプリフェッチ領域管理・リクエスト発行部４２が、画像処理部１２の全体制御部３０からピクチャ処理開始信号を受信する。このピクチャ処理開始信号は、新たなピクチャ（フレーム）の符号化処理の開始を示す信号である。ピクチャ処理開始信号の受信に応答して、ステップＳ２で、プリフェッチ処理部１３のアドレス管理部４４が、ＳＤＲＡＭ１１からプリフェッチの対象となるピクチャのアドレス管理テーブル１５を読み出す。
【００４８】
ステップＳ３で、プリフェッチ領域管理・リクエスト発行部４２は、全体制御部３０から各マクロブロックの処理に同期した同期制御信号を受信する。ステップＳ４で、プリフェッチ領域管理・リクエスト発行部４２は、1つの同期制御信号を受信する度にカウント値ＭＢＣＮＴ（初期値は０）を１増加する。ステップＳ５で、プリフェッチ領域管理・リクエスト発行部４２は、カウント値ＭＢＣＮＴが規定回数より大きくなったか否かを判定する。カウント値ＭＢＣＮＴが規定回数より大きくない場合、ステップＳ３に戻り、以降の処理を繰り返す。カウント値ＭＢＣＮＴが規定回数より大きくなると、ステップＳ６で、カウントＭＢＣＮＴを初期値０に設定する。
【００４９】
ステップＳ７で、プリフェッチ領域管理・リクエスト発行部４２は、追加プリフェッチ領域読み出し要求（プリフェッチ要求）を発行する。このプリフェッチ要求に応答して、ステップＳ８で、アドレス管理部４４がアドレス管理テーブル１５に基づいて、追加領域に対応するデータサイズを算出する。即ち、これからプリフェッチする画像圧縮データのサイズの総計を算出する。ステップＳ９で、アドレス管理部４４は、アドレス管理テーブル１５を用いてＳＤＲＡＭ１１から追加領域の圧縮データを読み出す。
【００５０】
ステップＳ１０で、プリフェッチメモリ制御部４６は、圧縮プリフェッチメモリ４７に十分な未使用領域があるか否かを判定する。十分な未使用領域がない場合、ステップＳ１１で、プリフェッチメモリ制御部４６は、追加領域の書き込みに伴い必要となる圧縮プリフェッチメモリ４７内の削除すべき領域を、アドレス管理テーブル１５に基づいて算出する。
【００５１】
ステップＳ１２で、アドレス管理部４４が指定したＳＤＲＡＭ１１の読み出しアドレスから圧縮データを読み出し、プリフェッチメモリ制御部４６が指定する圧縮プリフェッチメモリ４７のアドレスに当該圧縮データを格納する。ステップＳ１３で、プリフェッチメモリ制御部４６は、領域追加及びそれに伴う領域削除に応じて、圧縮プリフェッチメモリ４７に格納されている画面領域の境界を示すデータ（プリフェッチ領域情報）を更新する。ステップＳ１４で、プリフェッチメモリ制御部４６は、プリフェッチ対象ピクチャの最後までプリフェッチが完了したか否かを判定する。最後までプリフェッチが完了していない場合には、ステップＳ３に戻り、以降の処理を繰り返す。
【００５２】
図９は、画像処理部１２により要求される参照画像を提供する処理を示すフローチャートである。ステップＳ１で、ヒット又はミス判定部４１が、画像処理部１２から参照画像の読み出し要求を受け取る。この読み出し要求は、読み出し対象となる画面矩形領域を示す座標データを含む。ステップＳ２で、ヒット又はミス判定部４１が、画像処理部１２により要求される画面領域が圧縮プリフェッチメモリ４７に格納されている画面領域に含まれるか否かの判定をする。
【００５３】
要求画面領域が格納画面領域に含まれるとステップＳ２で判定された場合には、ステップＳ３で、プリフェッチメモリ制御部４６が、アドレス管理テーブル１５の管理データに基づいて、圧縮プリフェッチメモリ４７内の要求画面領域の格納アドレスを算出する。次にステップＳ４で、圧縮プリフェッチメモリ４７が、アドレス管理テーブル１５の管理データに基づいて、要求画面領域を含む画面領域の圧縮データを圧縮プリフェッチメモリ４７から読み出す。このとき、ＳＤＲＡＭ１１と同様に圧縮プリフェッチメモリ４７においても例えば６４ビットが１ワードを構成する場合、１ワード単位の読み出しとなるので、読み出し圧縮データの開始点及び終了点は必ずしもマクロブロックの境界に一致しない。
【００５４】
要求画面領域が格納画面領域に含まれないとステップＳ２で判定された場合には、ステップＳ５で、アドレス管理部４４が、アドレス管理テーブル１５の管理データに基づいて、ＳＤＲＡＭ１１内の要求画面領域の格納アドレスを算出する。ステップＳ６で、アドレス管理部４４が、アドレス管理テーブル１５の管理データに基づいて、要求画面領域を含む画面領域の圧縮データをＳＤＲＡＭ１１から読み出す。このとき、ＳＤＲＡＭ１１において例えば６４ビットが１ワードを構成する場合、１ワード単位の読み出しとなるので、読み出し圧縮データの開始点及び終了点は必ずしもマクロブロックの境界に一致しない。
【００５５】
ステップＳ４又はステップＳ６の次にステップＳ７で、画像データ展開部５０は、圧縮プリフェッチメモリ４７又はＳＤＲＡＭ１１から読み出された圧縮データを展開する。この際、読み出し圧縮データの開始点及び終了点がマクロブロックの境界に一致しない場合のマクロブロックの断片部分については破棄し、完全にデータが揃っている各マクロブロックの圧縮データの展開処理が実行される。展開された画像データは、展開バッファメモリ５１に格納される。ステップＳ８で、展開バッファメモリ５１に格納された画像データから要求画面領域のみが切り出される。ステップＳ９で、切り出された要求画面領域の画像データが展開バッファメモリ５１から画像処理部１２に転送される。
【００５６】
ＭＰＥＧやＨ．２６４の符号化器や復号化器のような画像処理ＬＳＩにおいては、処理データの画面局所性が高く、ミスヒットする確率が低い。従って、上記説明した制御動作により、外部メモリと画像処理ＬＳＩとの間のデータ転送量を最小限に抑えることが可能となる。
【００５７】
図１０は、展開バッファメモリ５１から切り出される要求画面領域を示す図である。図１０において、展開バッファメモリ５１には、対象ピクチャの画面全体７０のうち、展開画面領域７２として示す部分の画像データが展開されて格納されている。このうち、画像処理部１２が要求する画面領域は、例えば要求画面領域７１として示すように、必ずしもマクロブロックの境界に一致しない境界を有する。この要求画面領域７１の画像データが、展開画面領域７２から切り出されて、画像処理部１２に参照画像として提供される。
【００５８】
図１１（ａ）乃至（ｃ）は、プリフェッチによる格納画面領域の変化の一例を示す図である。図１２（ａ）乃至（ｃ）は、それぞれ図１１の（ａ）乃至（ｃ）に対応した圧縮プリフェッチメモリ４７の内部のメモリマップを示す図である。図１３（ａ）乃至（ｃ）は、図１１（ａ）乃至（ｃ）に示す格納画面領域の更新に用いられる管理データの一例を示す図である。
【００５９】
図１１（ａ）には、画面８０において、マクロブロックラインＭＢＬｉｎｅ０の左端のマクロブロック８１からプリフェッチしていき、マクロブロックラインＭＢＬｉｎｅ５のマクロブロック８２までをプリフェッチした状態を示す。この状態において、図１２（ａ）に示すように、圧縮プリフェッチメモリ４７は、空き領域がなくなりちょうどＦｕｌｌ状態となっている。各マクロブロックラインの圧縮プリフェッチメモリ４７内での先頭アドレスは、アドレス管理テーブル１５の管理データから、以下に示すように一意に算出することができる。まずアドレス管理テーブル１５に記録されているｎ番目のマクロブロックラインの先頭アドレスをＡＤＲ［ｎ］とし、圧縮プリフェッチメモリ４７の容量をＰＦＭ＿ＳＩＺＥとする。このとき、圧縮プリフェッチメモリ４７内でのマクロブロックラインの先頭アドレスＭＢＬ＿ＳＡＤＲ［ｎ］（図１２（ａ）参照）は、以下の式により求められる。
【００６０】
ＭＢＬ＿ＳＡＤＲ［ｎ］＝ＡＤＲ［ｎ］％ＰＦＭ＿ＳＩＺＥ                （１）
ここで、％は剰余計算である。
【００６１】
図１３（ａ）には、図１１（ａ）及び図１２（ａ）の状態における管理データの一例を示す。図１４は、図１３の管理データの各列のデータの意味を示した表である。図１３の例では、同時に追加可能なマクロブロックライン数は最大で４個であり、これに対応して管理データにはＮｏ．０〜Ｎｏ．４の４つの欄が設けられている。１マクロブロックラインずつ追加していく場合は、Ｎｏ．０の管理データのみを使用する。使用している管理データのＶａｌｉｄＦｌａｇは１に設定される。
【００６２】
図１３（ａ）に管理データとして記録されている追加マクロブロックライン先頭アドレスＳＡＤＲ＿Ａ［０］と追加マクロブロックライン現在アドレスＣＡＤＲ＿Ａ［０］とが、図１２（ａ）に示されている。ここで括弧［］内の数字０は、Ｎｏ．０の管理データであることを示す。追加マクロブロックライン現在アドレスについては、アドレス管理テーブル１５に記録されている各マクロブロックのサイズを累積していくことにより算出できる。即ち、
CADR_A[0]=MBL_SADR[5] + MB_size(0,5) + MB_size(1,5) + ・・ + MB_size(11,5)
となる。また図１３（ａ）において、追加するマクロブロックラインの先頭の画面内位置を示す先頭マクロブロック位置ｐｆｐｏｓ２＿ｂｅｇは、座標（０，５）となっている。更に、追加するマクロブロックラインの現在のマクロブロックの画面内位置を示す追加現在マクロブロック位置ｐｆｐｏｓ２＿ｃｕｒは、座標（１２，５）となっている。これらの座標は図１１（ａ）に示す状態に一致している。
【００６３】
図１１（ｂ）には、図１１（ａ）の状態からマクロブロックラインＭＢＬｉｎｅ５の最後の４個のマクロブロックを追加して、マクロブロックラインＭＢＬｉｎｅ５の書き込みを終了した状態を示す。この例では、１回のプリフェッチ動作でマクロブロック４個ずつ追加するように制御が行なわれる。図１２（ａ）の状態で圧縮プリフェッチメモリ４７が既にＦｕｌｌであったので、図１２（ｂ）に示すようにマクロブロックラインＭＢＬｉｎｅ５の残りの部分を書き込むと、先頭のマクロブロックラインＭＢＬｉｎｅ０の先頭部分のデータが上書きにより消滅する。図１１（ｂ）に示すように、上書きにより消滅したマクロブロックの個数は３個である。このとき、図１３（ｂ）に示すように、追加マクロブロックラインにより上書きされる領域の先頭マクロブロックの画面内座標である上書き先頭マクロブロック位置ｐｆｐｏｓ０＿ｂｅｇは、（０，０）である。また追加マクロブロックラインにより上書きされる領域の現在マクロブロックの画面内座標である上書き現在マクロブロック位置ｐｆｐｏｓ０＿ｃｕｒは、（３，０）である。
【００６４】
より詳しく説明すると、上記の４個のマクロブロック追加の分のデータサイズＡｄｄｅｄ＿ｓｉｚｅは、アドレス管理テーブル１５に記録される各マクロブロックのサイズより、
Added_size=MB_size(12,5) + MB_size(13,5) + MB_size(14,5) + MB_size(15,5)
と算出される。従って、現在アドレスは、
CADR_B[0]= (CADR_A[0] + Added_size)%PFM_SIZE
となる。上書きが発生する場合は、上書き先頭マクロブロック位置ｐｆｐｏｓ０＿ｂｅｇ［０］及び上書き現在マクロブロック位置ｐｆｐｏｓ０＿ｃｕｒ［０］の算出が必要となる。マクロブロックラインＭＢＬｉｎｅ０が書き込まれている圧縮プリフェッチメモリ４７の先頭アドレスＭＢＬ＿ＳＡＤＲ［０］から上書きが開始されるので、ｐｆｐｏｓ０＿ｂｅｇ［０］＝(０，０)となる。また、Ａｄｄｅｄ＿ｓｉｚｅ分のデータにより上書きされるマクロブロック数は、上書き先頭マクロブロック位置のマクロブロックから順に各マクロブロックのサイズＭＢ＿ｓｉｚｅを累積していき、Ａｄｄｅｄ＿ｓｉｚｅ以上となる数を求めればよい。図１１（ｂ）や図１３（ｂ）に示す例では、
MB_size(0,0) + MB_size(1,0) + MB_size(2,0)  >= Added_size 
となり、３個のマクロブロックが上書きにより消滅することになる。上書き現在マクロブロック位置ｐｆｐｏｓ０＿ｃｕｒ［０］は座標（３，０）となる。
【００６５】
図１１（ｃ）には、図１１（ｂ）の状態から、画面内において縦方向に連続する複数のマクロブロックラインＭＢＬｉｎｅ６及びＭＢＬｉｎｅ７について、マクロブロックラインの先頭部分を並行して圧縮プリフェッチメモリ４７に書き込んだ状態を示す。この例では、各マクロブロックラインについて４個のマクロブロックが書き込まれている。このとき図１２（ｃ）に示す圧縮プリフェッチメモリ４７において、これらマクロブロックラインＭＢＬｉｎｅ６及びＭＢＬｉｎｅ７の先頭部分が書き込まれるアドレスは、アドレス管理テーブル１５の管理データから一意に計算できる。即ち、マクロブロックラインＭＢＬｉｎｅ６及びＭＢＬｉｎｅ７の先頭部分が書き込まれるアドレスは、前述の計算式（１）により、ＭＢＬ＿ＳＡＤＲ［６］及びＭＢＬ＿ＳＡＤＲ［７］として求められる。このようにしてＳＤＲＡＭ１１から並行して読み出した複数のマクロブロックラインの先頭部分を、圧縮プリフェッチメモリ４７内の所定のデータ配置により規定される各マクロブロックラインの先頭アドレスから並行して圧縮プリフェッチメモリ４７へ書き込む。なおここで「並行して」とは、並列同時に２つのデータの書き込みを実行するという意味ではなく、１ラインの先頭部分を書き込んで、その後、当該ラインの残りの部分を書き込むことなく、次の１ラインの先頭部分を書き込む、という意味である。複数マクロブロックラインを並行して追加していくことにより、プリフェッチ領域を画面の下方向へ早く移動させることができるようになる。即ち、複数マクロブロックラインの並行追加の制御により、縦パンのあるシーケンスにも追従することが可能となる。
【００６６】
図１１（ｃ）に示されるように、上書きされる領域の先頭マクロブロックの画面内座標である上書き先頭マクロブロック位置ｐｆｐｏｓ０＿ｂｅｇ［０］は、座標（３，０）である。この座標値は、図１３（ｃ）において、Ｎｏ．０の管理データの上書き先頭マクロブロック位置ｐｆｐｏｓ０＿ｂｅｇ［０］として示されている。また、当該上書き領域に対応する現在マクロブロックの画面内座標である上書き現在マクロブロック位置ｐｆｐｏｓ０＿ｃｕｒ［０］は、図１１（ｃ）及び図１３（ｃ）に示されるように座標（６，０）である。この上書き領域は、マクロブロックラインＭＢＬｉｎｅ６の先頭部分の書き込みに伴う上書きにより消去される領域である。
【００６７】
次のマクロブロックラインＭＢＬｉｎｅ７の先頭部分の書き込みに伴う上書きにより消去される領域については、図１１（ｃ）に示されるように、上書き先頭マクロブロック位置ｐｆｐｏｓ０＿ｂｅｇ［１］の座標は（１１，１）である。この座標値は、図１３（ｃ）において、Ｎｏ．１の管理データの上書き先頭マクロブロック位置ｐｆｐｏｓ０＿ｂｅｇ［１］として示されている。また、当該上書き領域に対応する現在マクロブロックの画面内座標である上書き現在マクロブロック位置ｐｆｐｏｓ０＿ｃｕｒ［１］は、図１１（ｃ）及び図１３（ｃ）に示されるように座標（２，２）である。
【００６８】
上記の上書き先頭マクロブロック位置ｐｆｐｏｓ０＿ｂｅｇは、以下のようにして求められる。まず、追加マクロブロックラインの圧縮プリフェッチメモリ４７内の先頭アドレスと、上書きされるマクロブロックラインの圧縮プリフェッチメモリ４７内の先頭アドレスとの差分を求める。例えばマクロブロックラインＭＢＬｉｎｅ６の場合、マクロブロックラインＭＢＬｉｎｅ０を上書きすることになるので、その差分は、
Diff_size = MBL_SADR[6] - MBL_SADR[0]
となる。次に、その差分サイズにどれだけのマクロブロック数が含まれているかを算出する。これは、上書きされるマクロブロックラインの先頭マクロブロックから各マクロブロックのサイズを順に累積していき、累積サイズがＤｉｆｆ＿ｓｉｚｅをちょうど超えたときのマクロブロック数となる。この例では、ＭＢ（０，０）乃至ＭＢ（２，０）の３個のマクロブロックによりＤｉｆｆ＿ｓｉｚｅを越えるので、ｐｆｐｏｓ０＿ｂｅｇ［０］＝（３，０）となる。同様の方法で、マクロブロックラインＭＢＬｉｎｅ７の上書き位置についても計算することができる。マクロブロックラインＭＢＬｉｎｅ７の場合はマクロブロックラインＭＢＬｉｎｅ１を上書きすることになり、Ｄｉｆｆ＿ｓｉｚｅは以下の値となる。
【００６９】
Diff_size=MBL_SADR[7] - MBL_SADR[1]
で、この例では、マクロブロックラインＭＢＬｉｎｅ１の先頭マクロブロックから各マクロブロックのサイズを累積していくと、マクロブロックＭＢ（０，１）乃至ＭＢ（１０，１）で累積値がＤｉｆｆ＿ｓｉｚｅを越える。従って、ｐｆｐｏｓ０＿ｂｅｇ［１］＝(１１，１)となる。
【００７０】
マクロブロックラインＭＢＬｉｎｅ６及びマクロブロックラインＭＢＬｉｎｅ７による追加のデータサイズは、アドレス管理テーブル１５に記録されている各マクロブロックのサイズに基づいて、それぞれ以下の式で求められる。
【００７１】
Added_size[0]=MB_size(0,6) + MB_size(1,6) + MB_size(2,6) + MB_size(3,6)
Added_size[1]=MB_size(0,7) + MB_size(1,7) + MB_size(2,7) + MB_size(3,7)
である。上書きされるマクロブロック数は、前述の場合と同様に求めることができ、この例では、マクロブロックＭＢ（３，０）乃至ＭＢ（５，０）のマクロブロックサイズの合計値が、ちょうどＡｄｄｅｄ＿ｓｉｚｅ［０］を超えている。またマクロブロックＭＢ（１１，１）乃至ＭＢ（１，２）のマクロブロックサイズの合計値が、ちょうどＡｄｄｅｄ＿ｓｉｚｅ［１］を超えている。
【００７２】
上記のようにして、圧縮プリフェッチメモリ４７への書き込み及び上書き消去を制御することにより、連続したマクロブロックの書き込みの場合のみでなく、不連続なマクロブロックの書き込みの場合についても適切なデータ管理が可能となる。即ち、圧縮プリフェッチメモリ４７内において、マクロブロック単位の圧縮データが、画面内のマクロブロックの並び順に対応したアドレス位置に配置される。またそのアドレス位置は、圧縮プリフェッチメモリ４７の最終アドレスの次は先頭アドレスに戻って、次のマクロブロックの並び順に対応して定まる。このようなデータ配置を用いることで、画面上の走査順とは異なる順番で圧縮データを圧縮プリフェッチメモリ４７に書き込んでいった場合であっても、圧縮プリフェッチメモリ４７内の圧縮データは常に画面上の並び順通りに連続して格納されることになる。
【００７３】
図１５は、ヒット又はミス判定における領域判定を説明するための図である。前述のようにマクロブロックを不連続に書き込む場合、圧縮プリフェッチメモリ４７に格納される画面領域が例えば図１１（ｃ）に示すように、所々でデータが消滅して不連続となる虫食い状態となってしまう。このような場合、ヒット又はミスの判定において、圧縮プリフェッチメモリ４７に格納される画面領域の境界を正確に反映させようとすると、判定の計算が複雑になってしまう。そこで格納される画面領域の境界を簡略化して、ヒット又はミスの判定を効率的に行なうことが考えられる。
【００７４】
図１５に示す例では、画面９０において、圧縮プリフェッチメモリ４７に格納されている画面領域のうちで画面左端と画面右端との両方に接する第１の矩形領域９１を規定する。更に、第１の矩形領域９１の上方に隣接する画面右端に接する第２の矩形領域９２と、第１の矩形領域９１の下方に隣接する画面左端に接する第３の矩形領域９３とを規定する。そして第１の矩形領域９１、第２の矩形領域９２、及び第３の矩形領域９３のみからなる領域に、画像処理部１２から要求される画面領域が含まれるか否かを判定する。このように圧縮プリフェッチメモリ４７の格納画面領域の境界を単純化してヒット・ミス判定計算に用いることで、判定を効率的に行なうことが可能となる。
【００７５】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【００７６】
１０  画像処理装置
１１  ＳＤＲＡＭ
１２  画像処理部
１３  プリフェッチ処理部
１４  メモリコントローラ
２０  動きベクトル検出部
２１  インター予測部
２２  イントラ予測部
２３  選択部
２４  予測誤差演算部
２５  変換及び量子化部
２６  符号化部
２７  逆変換及び逆量子化部
２８  加算部
２９  フィルタ部
３０  全体制御部
３１  画像転送インターフェース
４０  画像データ圧縮部
４１  ヒット又はミス判定部
４２  プリフェッチ領域管理・リクエスト発行部
４３  調停部
４４  アドレス管理部
４５  アクセス調停部
４６  プリフェッチメモリ制御部
４７  圧縮プリフェッチメモリ
４８  振り分け部
４９  調停部
５０  画像データ展開部
５１  展開バッファメモリ
【図１】
0005573516.tif 000002
【図２】
0005573516.tif 000003
【図３】
0005573516.tif 000004
【図４】
0005573516.tif 000005
【図５】
0005573516.tif 000006
【図６】
0005573516.tif 000007
【図７】
0005573516.tif 000008
【図８】
0005573516.tif 000009
【図９】
0005573516.tif 000010
【図１０】
0005573516.tif 000011
【図１１】
0005573516.tif 000012
【図１２】
0005573516.tif 000013
【図１３】
0005573516.tif 000014
【図１４】
0005573516.tif 000015
【図１５】
0005573516.tif 000016