(57)【要約】【課題】  画像データの読み出し要求を重複して発生することなく、外部メモリから動画デコーダへ画像データを効率的に供給する。【解決手段】  データ要求処理部１２１は、データ要求が要求する画像データを得るのに必要な取得対象画像データのフレーム内アドレスと有効を示す有効性フラグを格納しているテーブルアリアがキャッシュテーブル１２２にない場合に、テーブルエリアの１つを更新対象テーブルエリアＴＡ（ｋ）として選択し、当該取得対象画像データのフレーム内アドレスＸＢ（ｋ）、ＹＢ（ｋ）と無効を示す有効性フラグＶＡＬＩＤ（ｋ）を更新対象テーブルエリアＴＡ（ｋ）に格納するとともに、当該取得対象画像データの外部メモリモジュール１０２からキャッシュメモリへ１１の転送を指令する読み出し要求を出力する。取得対象画像データが読み出されてキャッシュエリアＣＡ（ｋ）に格納された場合、有効性フラグＶＡＬＩＤ（ｋ）は有効とされる。【選択図】図４
2011097197.tif 000002
【特許請求の範囲】
【請求項１】
１フレーム分の画像データを記憶する外部メモリから前記１フレームを区分したマクロブロック単位で画像データを読み出して、画像処理部から要求された画像データを構成し、画像処理部に供給するメモリアクセス制御装置であって、
各々１マクロブロック分の画像データを記憶可能な複数のキャッシュエリアを有するキャッシュメモリと、
前記複数のキャッシュエリアに各々対応付けられた複数のテーブルエリアを有し、各テーブルエリアに、対応するキャッシュエリア内の画像データの有効性を示す有効性フラグと、対応するキャッシュエリアに格納されるマクロブロックの画像データのフレーム内アドレスとを格納するキャッシュテーブルと、
要求対象である画像データのフレーム内の占有領域の指定を含むデータ要求を前記画像処理部から順次受け取り、受け取ったデータ要求により要求された画像データを得るのに必要な１または複数マクロブロックの画像データを各々取得対象画像データとし、前記取得対象画像データを前記キャッシュメモリから取得して、前記データ要求により要求された画像データを生成して前記画像処理部に出力するデータ要求処理部とを具備し、
前記データ要求処理部は、
（１）前記取得対象画像データの各々について、当該取得対象画像データのフレーム内アドレスと有効を示す有効性フラグとを格納しているテーブルアリアがない場合に、前記キャッシュテーブルにおける１つのテーブルエリアを更新対象テーブルエリアとして選択し、当該取得対象画像データのフレーム内アドレスと無効を示す有効性フラグを前記更新対象テーブルエリアに格納するとともに、当該取得対象画像データの前記外部メモリから前記キャッシュメモリへの転送を指令する読み出し要求を出力し、
（２）あるマクロブロックの画像データが前記外部メモリから読み出されて前記キャッシュメモリに格納された場合に、当該マクロブロックの画像データのフレーム内アドレスを格納するテーブルエリアの有効性フラグを有効を示す値とし、
（３）有効を示す有効性フラグと、前記データ要求により要求された画像データの生成に必要な取得対象画像データのフレーム内アドレスとを格納したテーブルエリアに対応付けられたキャッシュエリアから当該取得対象画像データを取得して前記データ要求により要求された画像データの生成に使用することを特徴とするメモリアクセス制御装置。
【請求項２】
１フレーム分の画像データを記憶する外部メモリから前記１フレームを区分したマクロブロック単位で画像データを読み出して、画像処理部から要求された画像データを構成し、画像処理部に供給するメモリアクセス制御装置であって、
各々１マクロブロック分の画像データを記憶可能な複数のキャッシュエリアを有するキャッシュメモリと、
前記複数のキャッシュエリアに各々対応付けられた複数のテーブルエリアを有し、各テーブルエリアに、対応するキャッシュエリアへのアクセス予定回数をカウントするアクセス予定カウンタと、対応するキャッシュエリア内の画像データの有効性を示す有効性フラグと、対応するキャッシュエリアに格納される１マクロブロック分の画像データのフレーム内アドレスとを格納するキャッシュテーブルと、
要求対象である画像データのフレーム内の占有領域の指定を含むデータ要求を前記画像処理部から順次受け取り、受け取ったデータ要求により要求された画像データを得るのに必要な１または複数マクロブロックの画像データを各々取得対象画像データとし、前記取得対象画像データを前記キャッシュメモリから取得して、前記データ要求により要求された画像データを生成して前記画像処理部に出力するデータ要求処理部とを具備し、
前記データ要求処理部は、
（１）前記取得対象画像データの各々について、当該取得対象画像データのフレーム内アドレスと有効を示す有効性フラグとを格納しているテーブルアリアがなく、かつ、当該取得対象画像データのフレーム内アドレスと値が「１」以上であるアクセス予定カウンタとを格納しているテーブルエリアがない場合に、前記キャッシュテーブルの中の１つのテーブルエリアを更新対象テーブルエリアとして選択し、当該取得対象画像データのフレーム内アドレスと無効を示す有効性フラグを前記更新対象テーブルエリアに格納するとともに、前記更新対象テーブルエリアのアクセス予定カウンタを「１」だけ増加させ、当該取得対象画像データの前記外部メモリから前記キャッシュメモリへの転送を指令する読み出し要求を出力し、
（２）あるマクロブロックの画像データが前記外部メモリから読み出されて前記キャッシュメモリに格納された場合に、当該マクロブロックの画像データのフレーム内アドレスを格納するテーブルエリアの有効性フラグを有効を示す値とし、
（３）有効を示す有効性フラグと、前記データ要求により要求された画像データの生成に必要な取得対象画像データのフレーム内アドレスとを格納したテーブルエリアに対応付けられたキャッシュエリアから当該取得対象画像データを取得して前記データ要求により要求された画像データの生成に使用し、当該テーブルッリアのアクセス予定カウンタを「１」だけ減少させることを特徴とするメモリアクセス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、外部メモリを利用して動画の圧縮符号化データの復号化を行う動画デコーダ等に好適なメモリアクセス制御装置に関する。
【背景技術】
【０００２】
ＭＰＥＧ（Moving Picture Expert Group）などの動画圧縮データの復号化を行う動画デコーダでは、復号結果である画像データをフレームメモリに格納し、このフレームメモリへのアクセスを行いつつ復号化処理を実行する。この復号化処理において、Ｐフレーム（予測フレーム）の符号化データのようにフレーム間予測符号化処理により符号化された符号化データが処理対象となる場合、そのＰフレームの符号化において参照された先行フレーム（以下、参照フレームという）内の画像データが復号化処理に必要になる。この場合、Ｐフレームの符号化データの復号化処理は、所定画素サイズのマクロブロック単位で実行され、１個のマクロブロックの復号化を行うために、そのマクロブロックの符号化に使用された画像データを包含する参照フレーム内の画像データが必要になる。そして、Ｐフレームの復号化処理全体を通してみると、参照フレーム内の同じ画像データが復号化処理に複数回使用されることとなる。従って、仮に復号化処理に使用する参照フレームの画像データをフレームメモリから毎回読み出したとすると、同じ画像データをフレームメモリから複数回読み出すこととなり、単位時間内にフレームメモリから読み出す画像データの量が大きくなる。ここで、フレームメモリは、一般的に大容量であり、読み出し速度が遅い。従って、単位時間内にフレームメモリから読み出す画像データの量が大きくなると、最悪の場合、必要な画像データの全てを読み出すことができなくなる。また、動画デコーダが他のモジュールと外部メモリを共有し、この外部メモリの一部のエリアをフレームメモリとして使用するようなシステムでは、動画デコーダによって単位時間内に外部メモリから読み出される画像データの量が大きくなると、他のモジュールによる外部メモリからのデータ読み出し速度が低下し、システムの性能を低下させるという問題が生じる。このような問題を回避するため、動画デコーダにキャッシュメモリを設け、復号化処理のために外部メモリから読み出した画像データをキャッシュメモリに記憶させ、キャッシュメモリに記憶された画像データと同一の画像データが復号化処理に必要になった場合に、その画像データの外部メモリからの読み出しを回避する技術が各種提案されている（例えば特許文献１、２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−４１８９８号公報
【特許文献２】特開２００８−６６９１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、動画デコーダが必要とする画像データをキャッシュ制御により外部メモリから動画デコーダに効率的に転送するためには、動画デコーダが必要とする画像データのうちキャッシュメモリに記憶されていない画像データを外部メモリから読み出してキャッシュメモリに格納する第１の処理と、動画デコーダが必要とする画像データをキャッシュメモリから読み出して動画デコーダに供給する第２の処理とを非同期化し、前者の外部メモリからの読み出しを極力連続的に行わせた方が効率的である。しかし、動画デコーダからの要求に従って外部メモリに読み出し要求を送り、その対象物である画像データがキャッシュメモリに記憶されるまでには一定の時間が掛かる。その一方、動画デコーダがＰフレームの複数のマクロブロックの復号化処理を実行する際、複数のマクロブロック間で重複した内容の画像データを参照する必要が生じる場合がある。このため、上記第１の処理と第２の処理を非同期化すると、同じ画像データの読み出し要求が重複して発生されるおそれがある。このような重複した読み出し要求の発生は、外部メモリとキャッシュメモリとの間のデータ経路の帯域を無駄に消費し、外部メモリに対する他のモジュールからのアクセスを阻害し、システムの効率を低下させる。
【０００５】
この発明は、以上説明した事情に鑑みてなされたものであり、画像データの読み出し要求を重複して発生することなく、上記第１および第２の処理を互いに非同期に実行し、外部メモリから動画デコーダ等の画像処理部へ画像データを効率的に供給することができるメモリアクセス制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明は、１フレーム分の画像データを記憶する外部メモリから前記１フレームを区分したマクロブロック単位で画像データを読み出して、画像処理部から要求された画像データを構成し、画像処理部に供給するメモリアクセス制御装置であって、各々１マクロブロック分の画像データを記憶可能な複数のキャッシュエリアを有するキャッシュメモリと、前記複数のキャッシュエリアに各々対応付けられた複数のテーブルエリアを有し、各テーブルエリアに、対応するキャッシュエリア内の画像データの有効性を示す有効性フラグと、対応するキャッシュエリアに格納されるマクロブロックの画像データのフレーム内アドレスとを格納するキャッシュテーブルと、要求対象である画像データのフレーム内の占有領域の指定を含むデータ要求を前記画像処理部から順次受け取り、受け取ったデータ要求により要求された画像データを得るのに必要な１または複数マクロブロックの画像データを各々取得対象画像データとし、前記取得対象画像データを前記キャッシュメモリから取得して、前記データ要求により要求された画像データを生成して前記画像処理部に出力するデータ要求処理部とを具備し、前記データ要求処理部は、
（１）前記取得対象画像データの各々について、当該取得対象画像データのフレーム内アドレスと有効を示す有効性フラグとを格納しているテーブルアリアがない場合に、前記キャッシュテーブルにおける１つのテーブルエリアを更新対象テーブルエリアとして選択し、当該取得対象画像データのフレーム内アドレスと無効を示す有効性フラグを前記更新対象テーブルエリアに格納するとともに、当該取得対象画像データの前記外部メモリから前記キャッシュメモリへの転送を指令する読み出し要求を出力し、
（２）あるマクロブロックの画像データが前記外部メモリから読み出されて前記キャッシュメモリに格納された場合に、当該マクロブロックの画像データのフレーム内アドレスを格納するテーブルエリアの有効性フラグを有効を示す値とし、
（３）有効を示す有効性フラグと、前記データ要求により要求された画像データの生成に必要な取得対象画像データのフレーム内アドレスとを格納したテーブルエリアに対応付けられたキャッシュエリアから当該取得対象画像データを取得して前記データ要求により要求された画像データの生成に使用することを特徴とするメモリアクセス制御装置を提供する。
【０００７】
かかる発明によれば、取得対象画像データのフレーム内アドレスと有効を示す有効性フラグがキャッシュテーブルに格納されている場合に、その取得対象画像データについての読み出し要求は出力されない。従って、重複した読み出し要求の発生を回避し、効率的な画像データの供給を実現することができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の一実施形態によるメモリアクセス制御装置１０を含む動画デコードモジュール１００の構成を示すブロック図である。
【図２】同動画デコードモジュール１００の動画デコーダ２５の復号化対象である圧縮符号化データを得るための圧縮符号化処理のうちＰフレームの圧縮符号化処理を説明する図である。
【図３】同実施形態における画像データの指定方法を説明する図である図である。
【図４】同メモリアクセス制御装置１０の構成を示すブロック図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照し、この発明の実施の形態を説明する。
図１は、この発明の一実施形態であるメモリアクセス制御装置１０を含む動画デコードモジュール１００の構成を示すブロック図である。この動画デコードモジュール１００は、図示しないホストＣＰＵからのコマンドをバス１０１Ａを介して受け取り、このコマンドに従って、バス１０１Ｂに接続されたＲＯＭ（図示略）から動画の圧縮符号化画像データおよび圧縮符号化アルファデータを読み出して復号化を行い、その結果得られる動画の画像データおよびアルファデータをバス１０１Ｃに接続されたＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等による外部メモリモジュール１０２に格納する。バス１０１Ｃには、動画デコードモジュール１００に加えて、描画モジュール等の他のモジュールが接続されている。動画デコードモジュール１００は、この他のモジュールと、外部メモリモジュールを共有している。
【００１０】
動画デコードモジュール１００において、バスＩ／Ｆ（インタフェース）２１Ａ、２１Ｂおよび２１Ｃは、各々バス１０１Ａ、１０１Ｂおよび１０１Ｃを介したデータの授受の仲介をするインタフェースである。ホストＩ／Ｆ２２は、バス１０１Ａに接続された装置が出力するコマンドをバスＩ／Ｆ２１Ａを介して受信して内蔵のコマンドバッファ２２Ａに格納し、このコマンドを動画デコードモジュール１００内の関係する各部に供給するインタフェースである。レジスタ群２３は、動画デコードモジュール１００内の各部の制御のための制御情報あるいは各部間で授受されるデータを記憶するためのレジスタの集合体である。ＲＯＭ  Ｉ／Ｆ２４は、各々ＦＩＦＯ（First-In First-Out；先入れ先出し）バッファであるバッファ２４Ａおよび２４Ｂを内蔵している。このＲＯＭ  Ｉ／Ｆ２４は、バス１０１Ｂに接続されたＲＯＭ（図示略）から読み出される動画の圧縮符号化画像データをバスＩ／Ｆ２１Ｂを介して受け取ってバッファ２４Ａに蓄積し、蓄積した圧縮符号化画像データを古いものから順に動画デコーダ２５に供給する。また、ＲＯＭ  Ｉ／Ｆ２４は、バス１０１Ｂに接続されたＲＯＭ（図示略）から読み出される動画の圧縮符号化アルファデータをバスＩ／Ｆ２１Ｂを介して受け取ってバッファ２４Ｂに蓄積し、蓄積した圧縮符号化アルファデータを古いものから順にアルファデータデコーダ２６に供給する。
【００１１】
動画デコーダ２５は、ホストＩ／Ｆ２２を介して与えられる復号化処理の実行コマンドに従い、動画の圧縮符号化画像データの復号化処理を実行する装置である。ここで、復号化対象である圧縮符号化画像データのＲＯＭ内の格納開始アドレス等の制御情報は、復号化処理に先立ち、ホストＩ／Ｆ２２を介してレジスタ群２３の中の所定のレジスタに格納されるようになっている。動画デコーダ２５は、復号化処理の実行コマンドを受け取ったとき、このレジスタ内の制御情報を参照し、復号化対象である圧縮符号化画像データをＲＯＭ（図示略）から読み出して復号化処理を実行する。
【００１２】
本実施形態において、動画デコーダ２５の復号化対象である圧縮符号化画像データは、次のような圧縮符号化処理により得られたデータである。まず、動画を構成する各フレームの中からフレーム内符号化の対象であるＩフレーム（独立フレーム）が選ばれ、それ以外のフレームはフレーム間予測符号化の対象であるＰフレーム（予測フレーム）とされる。Ｉフレームの画像データは、１６×１６画素のマクロブロックに区切られ、マクロブロック毎に所定の圧縮符号化アルゴリズムに従って圧縮符号化画像データに変換される。Ｐフレームの画像データも、Ｉフレームと同様、１６×１６画素のマクロブロックに区切られる。そして、Ｐフレームについては、動き補償を伴うフレーム間予測符号化処理により圧縮符号化画像データが生成される。さらに詳述すると、Ｐフレームの圧縮符号化処理では、図２に例示するように、符号化対象のＰフレームに先行するＰフレームまたはＩフレームを参照フレームとし、符号化対象のＰフレームのマクロブロック毎に、参照フレームの画像データの中から当該マクロブロックの画像に最も近似した画像を示す１６×１６画素の領域を求めて参照領域とし、符号化対象のマクロブロックＭＢｘの画像データと参照領域ＭＢｘ’の画像データとの差分を圧縮符号化する。多くの場合、図２に例示するように、参照領域ＭＢｘ’は参照フレームの中の４個のマクロブロックＭＢａ、ＭＢｂ、ＭＢｃ、ＭＢｄに跨っているが、稀に３個以下のマクロブロックに跨る場合もある。動画デコーダ２５は、このような圧縮符号化処理により得られたＩフレームおよびＰフレームの圧縮符号化画像データを受け取ってその復号化を行う。
【００１３】
アルファデータデコーダ２６は、ホストＩ／Ｆ２２を介して与えられる復号化処理の実行コマンドに従い、動画の圧縮符号化アルファデータの復号化処理を実行する装置である。ここで、復号化対象である圧縮符号化アルファデータのＲＯＭ内の格納開始アドレス等の制御情報は、復号化処理に先立ち、ホストＩ／Ｆ２２を介してレジスタ群２３の中の所定のレジスタに格納されるようになっている。アルファデータデコーダ２６は、復号化処理の実行コマンドを受け取ったとき、このレジスタ内の制御情報を参照し、復号化対象である圧縮符号化アルファデータをＲＯＭ（図示略）から読み出して復号化処理を実行する。
【００１４】
外部メモリＩ／Ｆ２７は、動画デコーダ２５およびアルファデータデコーダ２６の各々と外部メモリモジュール１０２との間のデータの授受を仲介するインタフェースである。本実施形態において、外部メモリモジュール１０２の一部の記憶領域は、動画デコーダ２５の復号結果である画像データを記憶するフレームバッファとして使用される。ここで、外部メモリＩ／Ｆ２７は、外部メモリモジュール１０２と後述するキャッシュメモリ１１との間のＤＭＡ（Direct Memory Access；直接メモリアクセス）転送を実現するＤＭＡＣ（ＤＭＡコントローラ）を内蔵している。
【００１５】
ここで、動画デコーダ２５により実行される復号化処理のうち外部メモリモジュール１０２を使用して実行されるＰフレームの復号化処理について説明する。Ｐフレームの復号化処理は、Ｉフレームと同様、１６×１６画素のマクロブロック単位で行われるが、参照フレームにおける参照領域の画像データを参照することにより実行される。
【００１６】
動画デコードモジュール１００には、Ｐフレームの復号化処理を実行する動画デコーダ２５に参照領域の画像データを供給するための手段として、キャッシュメモリ１１と、キャッシュ制御部１２とからなるメモリアクセス制御装置１０が設けられている。
【００１７】
動画デコーダ２５は、Ｐフレームにおける１マクロブロック分の圧縮符号化データの復号化を行う際、その復号化に必要な参照フレームの参照領域のアドレス指定を伴ったデータ要求をキャッシュ制御部１２に送る。本実施形態において、フレームを構成する各画素は、その画素が水平方向に何番目の画素であるかを示す画素アドレスＸと垂直方向において何番目の画素であるかを示す画素アドレスＹにより特定される。そして、動画デコーダ２５は、参照領域を指定するために使用するアドレスとして、この画素アドレスＸ、Ｙよりも分解能の粗いブロックアドレスを用いる。具体的には、本実施形態において動画デコーダ２５は、参照領域を指定するためのアドレスとして、画素アドレスＸの最下位２ビットを間引いたブロックアドレスＸＢと、画素アドレスＹの最下位１ビットを間引いたブロックアドレスＹＢを用いる。このブロックアドレスＸＢおよびＹＢは、図３に示すように、フレームを構成する各画素を水平方向４画素、垂直方向２画素からなるブロックに区切った場合の各ブロックの水平方向における位置および垂直方向における位置を示すアドレスとなる。本実施形態において、動画デコーダ２５は、Ｐフレームの復号化処理において、参照領域の画像データを取得するため、その参照領域の左上頂点のブロックアドレスＸＢおよびＹＢと、その参照領域の水平方向のブロック数と、その参照領域の垂直方向のブロック数とを含んだデータ要求をキャッシュ制御部１２に対して出力する。
【００１８】
図４はこのようなデータ要求に応じて参照領域の画像データを生成して動画デコーダ２５に供給するキャッシュ制御部１２の構成を示すブロック図である。なお、図４では、キャッシュ制御部１２の機能の理解を容易にするため、キャッシュメモリ１１も併せて図示されている。
【００１９】
本実施形態において、キャッシュメモリ１１は、各々１マクロブロック分の画像データを記憶可能なＮ個（Ｎは例えば２５６）のキャッシュエリアＣＡ（ｋ）（ｋ＝０〜Ｎ−１）を有している。これらの各キャッシュエリアＣＡ（ｋ）（ｋ＝０〜Ｎ−１）には、外部メモリモジュール１０２のフレームバッファ領域から読み出される１マクロブロック分の画像データが格納されるようになっている。
【００２０】
キャッシュ制御部１２のデータ要求処理部１２１は、動画デコーダ２５からデータ要求が与えられる毎に出力タスクを生成する。この出力タスクは、データ要求により指定された参照領域を包含する１〜４個のマクロブロックの画像データをキャッシュメモリ１１から取得し、取得した画像データから参照領域の画像データを生成して動画デコーダ２５に出力するタスクである。参照領域を包含する１〜４個のマクロブロックの画像データがキャッシュメモリ１１に記憶されていない場合、この出力タスクの実行は待たされることとなる。また、先行する出力タスクが参照領域の画像データを動画デコーダ２５に出力している期間も、後続の出力タスクの実行は待たされることとなる。
【００２１】
一方、データ要求処理部１２１は、出力タスクを生成する際、その出力タスクが参照領域の画像データを生成するのに必要とする画像データ、すなわち、参照領域を包含する１〜４個のマクロブロックの画像データを取得対象画像データとする。そして、取得対象画像データの中にキャッシュメモリ１１に格納されていないものがあれば、その取得対象画像データについての読み出し要求を外部メモリモジュール１０２に送り、その取得対象画像データを外部メモリモジュール１０２からキャッシュメモリ１１のキャッシュエリアＣＡ（ｋ）（ｋ＝０〜Ｎ−１）の中に１つに転送させる。このようにして、キャッシュメモリ１１の記憶内容に出力タスクが必要とする取得対象画像データが欠けている場合に、それを補充するキャッシュ制御が行われ、出力タスクの実行が可能となるのである。
【００２２】
本実施形態では、このようなデータ要求処理部１２１によるキャッシュ制御を円滑に進めるため、キャッシュテーブル１２２がキャッシュ制御部１２に設けられている。このキャッシュテーブル１２２は、キャッシュメモリ１１の各キャッシュエリアＣＡ（ｋ）（ｋ＝０〜Ｎ−１）に対応付けられたＮ個のテーブルエリアＴＡ（ｋ）（ｋ＝０〜Ｎ−１）を有している。ここで、１つのテーブルエリアＴＡ（ｋ）には、アクセス予定カウンタＡＣＣ（ｋ）、有効性フラグＶＡＬＩＤ（ｋ）、フレーム内アドレスＸＢ（ｋ）およびＹＢ（ｋ）が格納されるようになっている。ここで、フレーム内アドレスＸＢ（ｋ）およびＹＢ（ｋ）は、キャッシュエリアＣＡ（ｋ）に現に格納されているマクロブロックの画像データまたは外部メモリモジュール１０２から読み出してキャッシュエリアＣＡ（ｋ）に格納すべきマクロブロックの画像データの左上頂点のブロックアドレスＸＢおよびＹＢである。また、有効性フラグＶＡＬＩＤ（ｋ）は、キャッシュエリアＣＡ（ｋ）に記憶されている画像データが有効であるか否かを示すフラグであり、有効である場合はＶＡＬＩＤ（ｋ）＝“１”、無効である場合はＶＡＬＩＤ（ｋ）＝“０”とされる。アクセス予定カウンタＡＣＣ（ｋ）は、フレーム内アドレスＸＢ（ｋ）およびＹＢ（ｋ）により指定された取得対象画像データを必要としている出力タスクの数、すなわち、キャッシュエリアＣＡ（ｋ）へのアクセスの予定回数をカウントするカウンタである。
【００２３】
データ要求処理部１２１は、上述した出力タスクを発生すると、発生した各出力タスクにおいてこのキャッシュテーブル１２２の内容に基づいてキャッシュメモリ１１の記憶内容を監視し、当該出力タスクが参照領域の画像データを生成するのに必要な取得対象画像データがキャッシュメモリ１１に格納されている場合にはキャッシュメモリ１１からその取得対象画像データを取得し、キャッシュメモリ１１に格納されていない場合には格納されるのを待ってキャッシュメモリ１１からその取得対象画像データを取得し、参照領域の画像データの生成に使用する。
【００２４】
次に、データ要求処理部１２１がキャッシュテーブル１２２を利用して行うキャッシュ制御の詳細を説明する。まず、データ要求処理部１２１は、動画デコーダ２５の復号化対象フレームが切り換わる毎に、キャッシュテーブル１２２の内容を初期化する。具体的には、全てのアクセス予定カウンタＡＣＣ（ｋ）（ｋ＝０〜Ｎ−１）を「０」とし、全ての有効性フラグＶＡＬＩＤ（ｋ）（ｋ＝０〜Ｎ−１）を無効を示す“０”とし、全てのフレーム内アドレスＸＢ（ｋ）（ｋ＝０〜Ｎ−１）およびＹＢ（ｋ）（ｋ＝０〜Ｎ−１）を「０」とする。そして、データ要求処理部１２１は、動画デコーダ２５からデータ要求が与えられる都度、そのデータ要求により指定された参照領域を包含する１〜４個のマクロブロックの画像データを取得対象画像データとし、出力タスクを発生する。その一方において、データ要求処理部１２１は、取得対象画像データの各々について次の処理を実行する。
【００２５】
＜処理１＞当該取得対象画像データについて読み出し要求の出力が必要である場合に、テーブルエリアＴＡ（ｋ）（ｋ＝０〜Ｎ−１）における更新対象テーブルエリアの選択、更新対象テーブルエリアの更新および読み出し要求の出力を行う。さらに詳述すると、次の通りである。
【００２６】
まず、当該取得対象画像データがキャッシュメモリ１１に記憶されておらず、かつ、当該取得対象画像データに対する読み出し要求が未だ出力されていないか否かを判断する。具体的には次の２つの条件の両方を満たすか否かを判断する。
条件ａ１−１．当該取得対象画像データが属するマクロブロックの左上頂点のブロックアドレスＸＢ、ＹＢをフレーム内アドレスＸＢ（ｋ）、ＹＢ（ｋ）として格納し、かつ、有効性フラグＶＡＬＩＤ（ｋ）＝“１”を格納するテーブルエリアＴＡ（ｋ）がない。
条件ａ１−２．当該取得対象画像データが属するマクロブロックの左上頂点のブロックアドレスＸＢ、ＹＢをフレーム内アドレスＸＢ（ｋ）、ＹＢ（ｋ）として格納し、かつ、内容が「１」以上であるアクセス予定カウンタＡＣＣ（ｋ）を格納するテーブルエリアＴＡ（ｋ）がない。
【００２７】
条件ａ１−１およびａ１−２の両方を満たす場合、テーブルエリアＴＡ（ｋ）（ｋ＝０〜Ｎ−１）の中から更新対象テーブルエリアを選択する。具体的には、アクセス予定カウンタＡＣＣ（ｋ）の内容が「０」であるテーブルエリアＴＡ（ｋ）が見つかるまでインデックスｋをインクリメントし、該当するテーブルエリアＴＡ（ｋ）が見つかったとき、それを更新対象テーブルエリアとする。この更新対象テーブルエリアに対応したキャッシュエリアの画像データが追い出し対象となる。なお、インデックスｋがＮ−１に到達した後は、再びｋを０とする。すなわち、テーブルエリアＴＡ（ｋ）（ｋ＝０〜Ｎ−１）を順次かつ巡回的に更新対象テーブルエリアとして選択する。
【００２８】
次に、更新対象テーブルエリアＴＡ（ｋ）に対し、当該取得対象画像データの左上頂点のブロックアドレスＸＢおよびＹＢをフレーム内アドレスＸＢ（ｋ）およびＹＢ（ｋ）としてテーブルエリアＴＡ（ｋ）に格納するとともに、無効を示す有効性フラグＶＡＬＩＤ（ｋ）＝“０”を格納し、アクセス予定カウンタＡＣＣ（ｋ）の内容を「１」だけ増加させる。
【００２９】
次に、当該取得対象画像データのフレーム内アドレスＸＢ（ｋ）およびＹＢ（ｋ）を含むとともに、更新対象テーブルエリアＴＡ（ｋ）に対応付けられたキャッシュエリアＣＡ（ｋ）を当該取得対象画像データの転送先として指定する読み出し要求を生成し、外部メモリＩ／Ｆ２７およびバスＩ／Ｆ２１Ｃを介して外部メモリモジュール１０２に送る。
【００３０】
＜処理２＞当該取得対象画像データがキャッシュメモリ１１に格納されていないが外部メモリモジュール１０２に対して当該取得対象画像データについての読み出し要求を出力済みである場合、当該当該取得対象画像データに対応したアクセス予定カウンタＡＣＣ（ｋ）を「１」だけ増加させる。より具体的には、テーブルエリアＴＡ（ｋ）（ｋ＝０〜Ｎ−１）の中に、アクセス予定カウンタＡＣＣ（ｋ）の値が「１」以上であり、かつ、有効性フラグＶＡＬＩＤ（ｋ）が無効を示す“０”であり、当該取得対象画像データのフレーム内アドレスＸＢ（ｋ）およびＹＢ（ｋ）を記憶しているテーブルアリアＴＡ（ｋ）がある場合、当該テーブルアリアＴＡ（ｋ）におけるアクセス予定カウンタＡＣＣ（ｋ）を「１」だけ増加させる。
【００３１】
＜処理３＞当該取得対象画像データがキャッシュメモリ１１に格納されている場合、当該当該取得対象画像データに対応したアクセス予定カウンタＡＣＣ（ｋ）を「１」だけ増加させる。より具体的には、テーブルエリアＴＡ（ｋ）（ｋ＝０〜Ｎ−１）の中に、有効性フラグＶＡＬＩＤ（ｋ）が有効を示す“１”であり、当該取得対象画像データのフレーム内アドレスＸＢ（ｋ）およびＹＢ（ｋ）を記憶しているテーブルアリアＴＡ（ｋ）がある場合、当該テーブルアリアＴＡ（ｋ）におけるアクセス予定カウンタＡＣＣ（ｋ）を「１」だけ増加させる。
【００３２】
さらにデータ要求処理部１２１は、次の各処理を行う。
＜処理４＞出力済みの読み出し要求に応じて、あるマクロブロックの画像データが外部メモリモジュール１０２から読み出され、読み出し要求において指定されたキャッシュエリアＣＡ（ｋ）に格納された場合、そのキャッシュエリアＣＡ（ｋ）に対応付けられたテーブルエリアＴＡ（ｋ）の有効性フラグＶＡＬＩＤ（ｋ）を有効を示す“１”にする。
【００３３】
＜処理５＞ある出力タスクが、ある取得対象画像データをキャッシュエリアＣＡ（ｋ）（ｋ＝０〜Ｎ−１）の中の１つのキャッシュエリア（例えばキャッシュエリアＣＡ（ｋ１）とする）から読み出し、参照領域の画像データの生成に使用し、その使用を終えたとき、キャッシュエリアＣＡ（ｋ１）に対応したテーブルエリアＴＡ（ｋ１）のアクセス予定カウンタＡＣＣ（ｋ１）を「１」だけ減少させる。
以上がデータ要求処理部１２１の処理内容の詳細である。
【００３４】
本実施形態によれば、取得対象画像データのフレーム内アドレスＸＢ（ｋ）、ＹＢ（ｋ）と有効を示す有効性フラグＶＡＬＩＤ（ｋ）がキャッシュテーブル１２２に格納されている場合に、その取得対象画像データについての読み出し要求は出力されない。従って、重複した読み出し要求の発生を回避し、効率的な画像データの供給を実現することができる。また、本実施形態によれば、ある取得対象画像データについて無効を示す有効性フラグＶＡＬＩＤ（ｋ）がキャッシュテーブル１２２のあるテーブルエリアＴＡ（ｋ）に格納されている場合であっても、同テーブルエリアＴＡ（ｋ）のアクセス予定カウンタＡＣＣ（ｋ）が「１」以上である場合、すなわち、同取得対象画像データが外部メモリモジュール１０２から読み出し中である場合にも読み出し要求は出力されない。従って、重複した読み出し要求をさらに徹底して回避することができる。また、本実施形態によれば、あるテーブルエリアＴＡ（ｋ）に対応したキャッシュエリアＣＡ（ｋ）内の画像データを取得対象画像データとする出力タスクが存続しており、キャッシュエリアＣＡ（ｋ）へのアクセス予定回数を示すアクセス予定カウンタＡＣＣ（ｋ）の値が「１」以上である場合に、そのテーブルエリアＴＡ（ｋ）は更新対象エリアとならず、テーブルエリアＴＡ（ｋ）に対応したキャッシュエリアＣＡ（ｋ）の画像データは追い出し対象とならない。従って、キャッシュメモリにおいて、存続する出力タスクが必要とする画像データが追い出し対象となるのを回避して、読み出し要求の発生回数を減らし、他のモジュールから外部メモリモジュール１０２へのアクセスが阻害されるのを防止し、システム効率を高めることができる。
【００３５】
また、本実施形態によれば、マクロブロック単位で外部メモリモジュール１０２内の画像データをキャッシュメモリ１１に転送するので、動画デコーダ２５がデータ要求を出力したとき、そのデータ要求により要求された画像データを得るための取得対象画像データがキャッシュメモリ１１内に格納されている確率（すなわち、キャッシュヒット率）を高め、外部メモリモジュール１０２およびキャッシュメモリ１１間のデータ転送の回数を減らし、システムの効率を高めることができる。
【００３６】
＜他の実施形態＞
以上、この発明の一実施形態を説明したが、この発明には、他にも各種の実施形態が考えられる。例えば次の通りである。
【００３７】
（１）上記実施形態において、メモリアクセス制御装置１０を、動画デコーダ２５に画像データを提供する手段として用いた。しかし、動画デコーダ以外の他の種類の画像処理部、例えば動画エンコーダに画像データを供給するための手段として、メモリアクセス制御装置１０を使用してもよい。
【００３８】
（２）複数の取得対象画像データについて上記処理１を実行した結果、複数のマクロブロックの画像データの読み出しが必要になり、しかも、この読み出しの必要な複数のマクロブロックの画像データが外部メモリモジュール１０２内の連続したアドレスのエリアに格納されており、連続読み出しが可能であるような場合が起こり得る。そのような場合、連続読み出しが可能な複数のマクロブロックの画像データの外部メモリモジュール１０２からキャッシュメモリ１１へのＤＭＡ転送を外部メモリＩ／Ｆ２７に指示するようにデータ要求処理部１２１を構成してもよい。例えば動画デコーダ２５が図２に示すマクロブロックＭＢｘの圧縮符号化画像データの復号化を行う際、取得対象画像データであるマクロブロックＭＢａ、ＭＢｂ、ＭＢｃ、ＭＢｄのうちマクロブロックＭＢｃおよびＭＢｄの画像データがキャッシュメモリ１１に格納されておらず、外部メモリモジュール１０２から読み出す必要が生じたとする。その際、データ要求処理部１２１は、マクロブロックＭＢｃの画像データとマクロブロックＭＢｄの画像データが外部メモリモジュール１０２内の連続したアドレスのエリアに格納されている場合には、マクロッブロックＭＢｃおよびＭＢｄの画像データについてのＤＭＡ転送を外部メモリＩ／Ｆ２７に指示するのである。このようにすることで、読み出し要求およびＤＭＡ転送の発生回数をさらに減らし、システムの効率を高めることができる。
【符号の説明】
【００３９】
１００……動画デコードモジュール、１０１Ａ，１０１Ｂ，１０１Ｃ……バス、２１Ａ，２１Ｂ，２１Ｃ……バスＩ／Ｆ、２２……ホストＩ／Ｆ、２４……ＲＯＭ  Ｉ／Ｆ、２３……レジスタ群、２５……動画デコーダ、２６……アルファデータデコーダ、２７……外部メモリＩ／Ｆ、１０２……外部メモリモジュール、１０……メモリアクセス制御装置、１１……キャッシュメモリ、１２……キャッシュ制御部、１２１……データ要求処理部、１２２……キャッシュテーブル。
【図１】
2011097197.tif 000003
【図２】
2011097197.tif 000004
【図３】
2011097197.tif 000005
【図４】
2011097197.tif 000006