(57)【要約】【課題】画像データを記憶するキャッシュメモリ装置において、キャッシュヒット率を向上させたキャッシュメモリ装置及びキャッシュメモリ装置の制御方法を提供する。【解決手段】キャッシュメモリ装置１１ｂは、フレームの画像データを所定のサイズ毎に１キャッシュブロックとして、記憶するメモリ部２２と、画像データのメモリアドレスを、フレームの水平方向において、所定のサイズ単位で互いに異なる複数のインデックスが割り当てられるように変換して、アドレスデータを生成するアドレス変換部２５とを有し、アドレス変換部２５において変換されて生成されたアドレスデータに基づいて、タグ、インデックス及びブロック内アドレスを指定することにより、画像データが出力データとしてメモリ部２２から出力される。【選択図】図４
2010146205.tif 000002
【特許請求の範囲】
【請求項１】
フレームの画像データを所定のサイズ毎に１キャッシュブロックとして、記憶するメモリ部と、
前記画像データのメモリアドレスを、前記フレームの水平方向において、前記所定のサイズ単位で互いに異なる複数のインデックスが割り当てられるように変換して、アドレスデータを生成するアドレス変換部と、
を有し、
前記アドレス変換部において変換されて生成された前記アドレスデータに基づいて、タグ、インデックス及びブロック内アドレスを指定することにより、前記画像データが出力データとして前記メモリ部から出力されることを特徴とするキャッシュメモリ装置。
【請求項２】
前記複数のインデックスに対応した複数のタグを記憶するタグテーブルと、
選択されたインデックスに対応する前記タグテーブル中のタグと、前記アドレスデータのタグとを比較し、一致すると一致信号を出力するタグ比較器と、
前記一致信号が出力されると、前記選択されたインデックスに対応するキャッシュブロック中の、前記ブロック内アドレスによって指定された画像データを選択して前記出力データとして出力するデータセレクタとを有することを特徴とする請求項１に記載のキャッシュメモリ装置。
【請求項３】
前記アドレス変換部は、トップフィールドとボトムフィールドに分離して前記メモリ部に記憶させることを特徴とする請求項１に記載のキャッシュメモリ装置。
【請求項４】
所定の処理単位の画素領域の変更に応じて前記メモリ部のウエイ数を変更するウエイ切替え部を具備することを特徴とする請求項１に記載のキャッシュメモリ装置。
【請求項５】
フレームの画像データを所定のサイズ毎に１キャッシュブロックとして、記憶するメモリ部と、前記画像データのメモリアドレスを、前記フレームの水平方向において、前記所定のサイズ単位で互いに異なる複数のインデックスが割り当てられるように変換して、アドレスデータを生成するアドレス変換部と、を有し、前記アドレス変換部において変換されて生成された前記アドレスデータに基づいて、タグ、インデックス及びブロック内アドレスを指定することにより、前記画像データが出力データとして前記メモリ部から出力されるキャッシュメモリ装置と、
前記フレームの前記画像データを記憶可能な主メモリと、
前記キャッシュメモリ装置を介して前記主メモリから前記画像データを読み出して画像処理を行う画像処理部と、
を有することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリ装置及び画像処理装置に関し、特に、フレームの画像データを記憶するキャッシュメモリ装置及び画像処理装置に関する。
【背景技術】
【０００２】
従来より、地上波デジタル放送、BSデジタル放送、CSデジタル放送等を受信するテレビ受信機、ビデオ再生を行うビデオデコーダ等において、画像データに対して復号化処理等の画像処理が行われている。
【０００３】
例えば、MPEG-4AVC/H.264等の符号化処理された動画像データは、復号化されてフレームデータとしてフレームメモリに保持される。そのフレームメモリに保持したフレームデータの中の所定の領域の矩形画像を参照画像として、続くフレームの画像データの復号化処理において利用される。
【０００４】
CPU等が、SDRAM等のフレームメモリから必要な画像部分を含む参照画像を直接読み込む場合、必要な画像データ以外のデータも読み込まれる。そのような参照画像の読み込み時の無駄部分を含むデータのうち、必要な画像データ以外のデータは、破棄され、たとえ直後に続く他の参照画像の読み込みにおいて、その破棄されたデータが必要であったとしても、SDRAMから再度読み込みが行われていた。
【０００５】
また、通常のキャッシュメモリを、画像データの参照画像の読み出しにそのまま利用したのでは、画像処理においては、キャッシュヒット率が低くなってしまうため、画像処理における画像データの読み出しにキャッシュメモリを用いた場合に、キャッシュヒット率を高くするための提案がなされている（例えば、特許文献１参照）。
【０００６】
その提案に係る画像データ処理装置では、キャッシュメモリの小容量化とキャッシュヒット率の向上のために、水平方向と垂直方向にそれぞれ複数の読み出し単位の領域が設定されている。
【０００７】
通常の各種画像処理では、フレームの左上側の領域から右方向に順次処理が行われ、右端において処理が終了すると、左側の直下の領域から右方向に、処理を順次行う場合が多い。
【０００８】
しかし、このような処理が行われる場合に、上記提案に開示されたインデックスを割り当る方法を用いても、処理対象の画素のある領域の上側領域の画像データは参照しようとしても、他の画像データで既に置き換えられて、キャッシュメモリには存在しない場合が少なくなかった。逆に言えば、提案に係るキャッシュメモリは、フレームの左上側の領域から右方向に順次処理が行われ、右端において処理が終了すると、左側の直下の領域から右方向に処理が順次行われる場合を考慮して、構成されていない。
【特許文献１】特開2008-66913号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、本発明は、画像データを記憶するキャッシュメモリ装置において、キャッシュヒット率を向上させたキャッシュメモリ装置及び画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様によれば、フレームの画像データを所定のサイズ毎に１キャッシュブロックとして、記憶するメモリ部と、前記画像データのメモリアドレスを、前記フレームの水平方向において、前記所定のサイズ単位で互いに異なる複数のインデックスが割り当てられるように変換して、アドレスデータを生成するアドレス変換部と、を有し、前記アドレス変換部において変換されて生成された前記アドレスデータに基づいて、タグ、インデックス及びブロック内アドレスを指定することにより、前記画像データが出力データとして前記メモリ部から出力されるキャッシュメモリ装置を提供することができる。
【発明の効果】
【００１１】
本発明によれば、画像データを記憶するキャッシュメモリ装置において、キャッシュヒット率を向上させたキャッシュメモリ装置及び画像処理装置を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施の形態を説明する。  
（第１の実施の形態）
（構成）
まず、図１に基づき、本実施の形態に係わる画像処理装置の構成を説明する。図１は、本実施の形態に係わる画像処理装置の構成を示す構成図である。
【００１３】
テレビ受像機、ビデオデコーダ等の映像処理装置１は、画像処理部としての中央処理装置（CPU）１１と、複数のフレームデータを記憶可能な主メモリであるSDRAM１２と、画像データを受信するためのインターフェース（以下、I/Fと略す）１３を含み、互いにバス１４を介して接続されている。CPU１１は、CPUコア１１ａと、キャッシュメモリ１１ｂを有している。
【００１４】
なお、キャッシュメモリ１１ｂは、画像処理用のキャッシュメモリであり、図１では、CPU１１に内蔵されているが、点線で示すように、CPU１１に内蔵されずに、バス１４に接続されるようにしてもよい。
【００１５】
さらになお、ここでは、画像処理部として、CPU１１が用いられているが、専用のデコーダ回路等の他の回路装置を用いてもよい。
【００１６】
I/F１３は、アンテナあるいはネットワークを介して地上波デジタル放送、BS放送等の放送信号を受信する受信部であり、受信した符号化された画像データは、CPU１１の制御の下で、バス１４を介してSDRAM１２に格納される。なお、I/F１３は、DVD等の記録媒体に、あるいはハードディスク装置等に、記録された画像データを受信する受信部であってもよい。
【００１７】
CPU１１は、MPEG-4AVC/H.264等の所定の方式に沿った復号化処理を行う。すなわち、I/F１３から受信した画像データは、一旦SDRAM１２に記憶され、CPU１１は、SDRAM１２に記憶された画像データに対して復号化処理を行い、フレームデータを生成する。復号化処理では、SDRAM１２に記憶された画像データから、必要に応じて既に生成されたフレームデータを参照して、フレームデータが生成され、SDRAM１２に記憶される。復号化処理では、各方式に従って、SDRAM１２から、例えば前後のフレームの中の所定のサイズの矩形領域の参照画像が読み出され、その参照画像を用いて復号化処理が行われる。従って、SDRAM１２には、復号化される前のデータと復号化されたデータが記憶される。
【００１８】
復号化処理時、CPU１１は、参照画像の画像データの読み出しのために、キャッシュメモリ１１ｂを利用する。CPU１１のCPUコア１１ａが、まずキャッシュメモリ１１ｂにアクセスすることにより、メモリバンド幅の削減と参照画像の読み出し処理の高速化が図られている。例えば、CPUコア１１ａは、３２ビットのメモリアドレスを指定することにより、SDRAM１２へのデータアクセスを行う。そのときに、キャッシュメモリ１１ｂにおいてそのメモリアドレスのデータがあれば、そのデータはキャッシュメモリ１１ｂから読み出される。キャッシュメモリ１１ｂの構成については、後述する。
【００１９】
次に、SDRAM１２に記憶される画像データの処理されるデータの構造について説明する。
【００２０】
SDRAM１２には、符号化された複数のフレームデータが記憶され、キャッシュメモリ１１ａには、各フレームについて所定のサイズで分割された画像データが、各キャッシュライン、すなわち各キャッシュブロックに記憶される。所定のサイズの画像データが、１キャッシュブロックのデータに対応する。
【００２１】
図２と図３は、１つのフレームデータにおける画像データの読み出し単位の例を説明するための図である。  
１つのフレーム２０は、それぞれが所定のサイズの画像データからなる複数の矩形領域に分割される。各矩形領域が、１つの読み出し単位である。フレーム２０は、２次元マトリックス状の複数の画素、ここでは例えば１９２０×１０８０の画素からなるフレームである。フレーム２０は、すなわち横１９２０画素で縦１０８０画素からなるフレームである。SDRAM１２には、複数のフレームのデータが記憶される。CPU１１は、このような１９２０×１０８０の画素の画像データの復号化処理できる能力を有する。
【００２２】
フレーム２０は、図２と図３に示すように、それぞれが読み出し単位の画像領域である、マトリックス状の複数の矩形領域RUに分けられる。複数の矩形領域RUのそれぞれは、Ｍ×Ｎ（Ｍ、Ｎそれぞれ整数で、Ｍ＞Ｎ）の画素、ここでは例えば１６×８の画素サイズ、すなわち横１６画素で縦８画素からなる１２８画素のサイズを有する。１画素のデータは、１バイトデータである。
【００２３】
１９２０×１０８０の画素からなる１フレームは、それぞれが１６×８の画素サイズを有する、マトリックス状の複数の矩形領域RUによって分割されるので、図２と図３に示すように、フレーム２０は、横方向に１２０個、縦方向に１３５個の矩形領域RUに分割される。
【００２４】
後述するように、キャッシュメモリ１１ｂ内のキャッシュデータ記憶部（以下、メモリ部という）は、インデックスにより、ラインすなわちキャッシュブロックが特定できるようになっている。
【００２５】
さらに、後述するように、フレームの横方向に並んだ複数の（ここでは１２０個の）矩形領域RUのそれぞれに対して、インデックスが割り当てられる。図２では、０から１１９のインデックス番号が割り当てられた１２０個の矩形領域RUが、１ブロック行を構成している。すなわち、各矩形領域RUに対して、インデックスが割り当てられる。１つのフレームは、それぞれにおいて複数の矩形領域RUが並んだ複数の行から構成される。以下、各行を、ブロック行ともいう。各行における複数の矩形領域間で、インデックスは、重複しない、言い換えると、インデックスは、フレームの横方向においては、ユニークに付される。
【００２６】
そして、所定のサイズの矩形領域RUの単位の画像データが、１つのキャッシュブロックデータとして、キャッシュメモリ１１ｂに記憶される。そして、キャッシュメモリ１１ｂには、フレームにおける複数の矩形領域RUの画像データが記憶されている。言い換えれば、メモリ部は、フレームの画像データを所定サイズ毎に１キャッシュブロックとして、記憶し、１キャッシュブロックには、１つの矩形領域RUの画像データ（１２８画素のデータ）が記憶される。
【００２７】
復号化処理においては、一般に、２次元のフレームデータを、横方向にスキャンしながら、処理が行われていく場合が多い。図２の場合、フレームデータの左上の領域から右方向の領域へ向かって順番に復号化処理等の画像処理が行われていき、右端の領域の画像処理が終了すると、次は、直下の左側の領域から再び右方向の領域へ向かって順番に画像処理を行うという場合が多い。そこで、各フレームにおいて、所定のサイズの画像データを、そのキャッシュブロック単位とし、上述したような、画像データとキャッシュブロックとの対応付け、及びインデックスの割り当てを行うことにより、キャッシュヒット率の向上が図られている。
【００２８】
図２は、フレームの水平方向（横方向）に並んだ複数の矩形領域RUに対して、インデックスすなわちインデックス番号は、０から１１９の範囲で割り当てられていることを示している。具体的には、１３５行のそれぞれ（すなわち各ブロック行）において、複数の矩形領域RUに対して、インデックスすなわちインデックス番号は、お互いに異なるように割り当てられている。そして、１２０個のキャッシュブロックが並んだ各ブロック行において、１２０個のインデックス番号が用いられている。
【００２９】
図３は、フレームの水平方向（横方向）に並んだ複数の矩形領域RUに対して、インデックスすなわちインデックス番号は、０から１１９と、１２８から２４７の範囲で割り当てられていることを示している。具体的には、１３５行の２行毎（すなわち各２ブロック行）において、複数の矩形領域RUに対して、インデックスすなわちインデックス番号は、お互いに異なるように割り当てられている。すなわち、２４０個のキャッシュブロックが並んだ各２ブロック行において、２４０個のインデックス番号が用いられている。
【００３０】
図２と図３のいずれの場合においても、各矩形領域RUは、ブロック行（Ｍ×Ｎ画素を１ブロックとし、２次元フレーム画素の横方向に並んだ複数ブロック）内では、お互いに異なる、すなわちユニークな、インデックスを有している。あるいは各矩形領域RUは、複数ブロック行（図３の場合は、２ブロック行）内において、ユニークなインデックスを有している。
【００３１】
また、図２は、フレームの縦方向では、キャッシュブロックのインデックスが同じ例であり、図３は、フレームの縦方向では、連続する２以上のブロック行単位で、インデックスが同じになる例である。但し、図２と図３のいずれの場合も、フレームにおける同じ垂直位置に並んだ複数の矩形領域RU間では、インデックスは、互いに異なるように割り当てられる。
【００３２】
図４は、キャッシュメモリの構成の例を示す構成図である。  
キャッシュメモリ１１ｂは、タグテーブル２１と、メモリ部２２と、タグ比較器２３と、データセレクタ２４と、アドレス変換部（以下、単に変換部ともいう）２５とを有して構成されている。CPUコア１１ａからのメモリアドレスデータ３１は、変換部２５において、アドレスデータ３２に変換される。アドレス変換については後述する。
【００３３】
なお、キャッシュメモリ１１ｂ及びCPUコア１１ａは、例えば、システムLSIとして、１チップ上に形成される。
【００３４】
タグテーブル２１は、各インデックス番号に対応する各タグデータを記憶するテーブルである。ここでは、インデックス番号は、０からｎである。
【００３５】
メモリ部２２は、各インデックス番号に対応する各キャッシュブロックデータを記憶する記憶部である。上述したように、メモリ部２２は、フレームの画像データを、所定のサイズ毎に１キャッシュブロックとして、記憶する。
【００３６】
タグ比較部としてのタグ比較器２３は、CPUコア１１ａからのメモリアドレスデータ３１を変換した後のアドレスデータ３２におけるタグデータと、タグテーブル２１内のタグデータを比較し、一致するものがあると、ヒット通知としての一致信号を出力する回路である。
【００３７】
データ選択部としてのデータセレクタ２４は、アドレスデータ３２におけるブロック内アドレスデータに基づいて、選択されたキャッシュブロック内の対応するデータを選択して出力する回路である。図４に示すように、データセレクタ２４は、タグ比較器２３からの一致信号が入力されると、選択されたインデックスに対応するキャッシュブロック中の、ブロック内アドレスによって指定された画像データを選択して出力データとして出力する。
【００３８】
変換部２５は、CPUコア１１ａからのメモリアドレスデータ３１に対して、後述するような内部データの入れ替えを行う所定のアドレス変換処理を施して、キャッシュメモリ１１ｂにおけるキャッシュ内アドレスデータ３２に変換する回路である。具体的には、変換部２５は、画像データのメモリアドレスデータ３１を、フレームの水平方向において、所定のサイズ単位で複数のインデックスが割り当てられるように変換してアドレスデータ３２を生成する。
【００３９】
CPUコア１１ａは、キャッシュメモリ１１ｂに、読み出すべきデータのメモリアドレスデータ３１を、すなわちSDRAM１２のアドレスを、出力する。メモリアドレスデータ３１は、例えば３２ビットデータである。
【００４０】
変換部２５では、入力されたすなわち指定されたメモリアドレスデータ３１に対して上述したアドレス変換処理が行われ、その変換処理後のデータに基づいて、タグ、インデックス及びブロック内アドレスを指定することによって、メモリ部２２から画像データが出力データとしてCPUコア１１ａに出力される。
【００４１】
なお、ブロック内アドレスは、Ｍ×Ｎビットの矩形領域RU内の画素を指定するためのアドレスであるので、Ｍ＞Ｎとなるように、各キャッシュブロックは構成される。そして、アドレスデータ３２のインデックス３２ｂは、フレームの水平位置を示すデータと、フレームの垂直位置を示すデータの少なくとも一部を含む。
【００４２】
図５は、変換部２５における変換処理の内容を説明するための図である。  
上述したように、変換部２５は、メモリアドレスデータ３１を、アドレスデータ３２に変換する。メモリアドレスデータ３１は、３２ビットのアドレスデータであり、キャッシュメモリ１１ｂ内におけるアドレスデータ３２も、３２ビットのアドレスデータである。アドレスデータ３２は、タグ３２ａ、インデックス３２ｂ、及びブロック内アドレス３２ｃからなる。
【００４３】
メモリアドレスデータ３１と変換後のアドレスデータ３２の対応関係は、次のようになる。メモリアドレスデータ３１内の上位側の所定のビット部Aは、そのままアドレスデータ３２のタグ３２ａの上位側のビット部A1に対応する。メモリアドレスデータ３１内の下位側の所定のビット部Eは、そのままアドレスデータ３２のブロック内アドレス３２ｃの下位側のビット部E1に対応する。
【００４４】
メモリアドレスデータ３１内のビット部Aの下位側の隣のビット部Bは、アドレスデータ３２のインデックス３２ｂの下位側のビット部Hに対応し、フレームの矩形領域RUのマトリックスにおける水平位置を示すビット部Hに対応する。  
メモリアドレスデータ３１内のビット部Eの上位側の隣のビット部Dは、アドレスデータ３２のビット部Hの隣の上位側のビット部に対応し、フレームの矩形領域RUのマトリックスにおける垂直位置を示すビット部Vに対応する。
【００４５】
メモリアドレスデータ３１内のビット部Bとビット部Dの間のビット部Cは、二つのビット部C1とC2に分けられ、ビット部C1は、ブロック内アドレス３２ｃのタグ３２ａのビット部A1とビット部Vの間のビット部に対応し、ビット部C2は、ブロック内アドレス３２ｃのビット部E1とビット部Hの間のビット部に対応する。
【００４６】
変換部２５は、キャッシュメモリ１１ｂにデータを書き込む時と、キャッシュメモリ１１ｂからデータを読み出す時に、上述したような対応付けの変換処理を行う。
【００４７】
（動作）
本実施の形態におけるデータの読み出し時における、キャッシュメモリ１１ｂの動作について説明する。  
CPUコア１１ａからメモリアドレス３１が入力されると、変換部２５において図５に示すような変換処理が行われ、変換後のアドレスデータ３２が生成される。  
キャッシュメモリ１１ｂのタグ比較器２３は、アドレスデータ３２中のインデックス３２ｂで指定されたタグテーブル２１に記憶されたタグデータと、タグ３２ａのタグデータとを比較し、２つのデータが一致すれば、ヒットしたことを示す一致信号をデータセレクタ２４に出力する。
【００４８】
タグ比較器２３は、２つのデータが一致しなければ、キャッシュミスとなる。キャッシュミスの場合、リフィル処理が実行される。
【００４９】
メモリ部２２には、アドレスデータ３２のインデックス３２ｂが供給され、供給されたインデックスで指定されたメモリ部２２に記憶されたキャッシュブロックが選択されて、データセレクタ２４に出力される。データセレクタ２４は、タグ比較器２３から一致信号が入力されると、キャッシュブロック中の、アドレスデータ３２のブロック内アドレス３２ｃで指定されたデータを選択して、CPUコア１１ａへ出力する。
【００５０】
すなわち、図２あるいは図３に示すように、各フレームは、それぞれが各ブロック行内ではユニークなインデックス番号が割り当てられた矩形領域RUの単位で、キャッシュメモリ１１ｂに記憶される。そして、インデックス番号は、各フレームの水平方向において重複しないように、すなわちユニークに割り当てられているので、一旦そのインデックスのキャッシュブロックが読み出されてキャッシュメモリ１１ｂに記憶されれば、各フレームが参照画像として読み出されるときに、キャッシュミスの発生確率は、低くなる。
【００５１】
以上のように、本実施の形態によれば、２次元フレームにおいて、M×N画素の画像データを１キャッシュブロックとして、水平方向に並んだ複数のブロック間では、インデックスはユニークに付されている。よって、フレームの水平方向の全てのデータをキャッシュメモリ内にキャッシュできるので、画像処理がラスタスキャン順に行われることが多いビデオデコーダ等の画像処理装置においては、復号化処理において、キャッシュヒット率は、向上する。
【００５２】
（第２の実施の形態）
上述した第１の実施の形態に係る映像処理装置はノンインターレース画像を処理する装置であったが、本発明の第２の実施の形態に係る映像処理装置は、インターレース画像を処理する装置の例である。本実施の形態に係る映像処理装置のキャッシュメモリ装置は、インターレース画像のトップフィールドとボトムフィールドのデータが、各キャッシュブロック内で混在しないように、メモリ部にデータが記憶されるように構成されている。このような構成により、キャッシュミスの発生頻度が低減される。
【００５３】
映像処理装置の構成は、図１及び図４に示す装置と同様であるので、同じ構成要素については、同じ符号を用いて説明は省略する。  
（構成）
インターレース画像の場合、各種画像処理の中には、トップフィールドのデータのみしか使わない等の処理もあるため、キャッシュブロックにおいて、トップフィールドとボトムフィールドのデータが混在すると、キャッシュミスの発生頻度が高くなる。そこで、本実施の形態では、キャッシュメモリの各キャッシュブロック内には、トップフィールドとボトムフィールドのいずれかしか存在しないように、データが記憶される。
【００５４】
すなわち、SDRAM１２内には、トップフィールドとボトムフィールドは、種々の配置形式で記憶されるが、キャッシュメモリ１１ｂ内では、キャッシュブロック毎に、SDRAM１２内に記憶されたフレームのデータのトップフィールドとボトムフィールドのいずれかしか存在しないように、データが記憶される。
【００５５】
図６と図７は、SDRAM１２内におけるトップフィールドとボトムフィールドのデータの配置の例を示す図である。図６と図７において、実線がトップフィールドの画素データを示し、破線がボトムフィールドの画素データを示す。
【００５６】
図６の場合、SDRAM１２内には、フレームの表示画像と同じパターンで画像データが記憶されている。図７の場合、SDRAM１２内には、フレームの表示画像の各画素の位置とは異なる形式で画像データが記憶されている。図７は、所定の単位U毎に、トップフィールドとボトムフィールドが混在して記憶されていることを示している。
【００５７】
図６の場合、例えば、フレームの１行は、すなわち１９２０画素のデータのそれぞれは、１１ビットで表現され、その表現されたデータに、さらに各行がトップフィールドかボトムフィールドかを示す１ビットが付加されて、画像データとして表現される。
【００５８】
本実施の形態のキャッシュメモリ１１ｂには、アドレス変換部２５によって、フレーム毎に、図６と図７の各画素データに対して後述するようなアドレス変換処理が行われて、その変換された形式の画像データが記憶される。キャッシュメモリ１１ｂのメモリ部２２にデータを記憶する場合と、メモリ部２２からデータを読み出す場合に、変換部２５によって、メモリアドレスデータ３１がアドレスデータ３２Aに変換されて、メモリ部２２へのアクセスが行われる。そして、各キャッシュブロック内では、トップフィールドとボトムフィールドのいずれかのデータしか存在しない。
【００５９】
図８は、本実施の形態の変換部２５における変換処理の内容を説明するための図である。  
変換部２５は、メモリアドレスデータ３１を、アドレスデータ３２Aに変換する。ここでも、第１の実施の形態と同様に、メモリアドレスデータ３１は、３２ビットのアドレスデータであり、キャッシュメモリ１１ｂ内におけるアドレスデータ３２Aも、３２ビットのアドレスデータである。アドレスデータ３２Aは、タグ３２ａ、インデックス３２ｂ、及びブロック内アドレス３２ｃからなる。
【００６０】
本実施の形態の場合、メモリアドレスデータ３１と変換後のアドレスデータ３２Aの対応関係は、次のようになる。変換部２５は、メモリアドレスデータ３１の３２ビットデータ中の下位側のトップフィールドとボトムフィールドの区別を示すトップボトム識別データとして、１ビットあるいは２以上ビットからなるビット部T/Bを、変換後のアドレスデータ３２Aのタグ３２ａ中の所定の位置に移動させて含ませるようにアドレス変換処理を行う。フィールド極性を示すデータであるビット部T/Bは、図８の場合、ブロック内アドレス３２ｃに対応する部分、すなわちメモリアドレスデータ３１のデータ部３１ｃ、に存在する。すなわち、ビット部T/Bはインデックス３２ｂよりも上位側に移動するように変換処理が行われることによって、キャッシュブロック内では、トップフィールドとボトムフィールドのいずれかのデータしか存在しない。
【００６１】
図８に示すように、アドレスデータ３２Aは、ビット部T/Bがタグ３２ａ内の所定のビット位置に移動したデータである。タグ３２ａのビット部T/Bよりも上位側のビット部は、メモリアドレスデータ３１の上位側ビットと同じであり、タグ２３ａのビット部T/Bよりも下位側のビット部は、T/B部を除いたメモリアドレスデータ３１の下位側ビットと同じである。
【００６２】
さらに、インデックス番号は、第１の実施の形態と同様に、図２あるいは図３に示すように、各フレームの各ブロック行内では、トップフィールド及びボトムフィールドのそれぞれにおいてユニークに割り当てられる。すなわち、インデックス番号は、各フレームのトップフィールド及びボトムフィールドのそれぞれにおいて、横方向において重複しないように、すなわちユニークに割り当てられている。
【００６３】
また、図９は、SDRAM１２内におけるトップフィールドとボトムフィールドのデータの配置のさらなる他の例を示す図である。図９において、実線がトップフィールドの画素データを示し、破線がボトムフィールドの画素データを示す。
【００６４】
図９の場合、SDRAM１２内には、フレームの表示画像とは異なる形式で、トップフィールドとボトムフィールドが混在して記憶されていることを示している。
【００６５】
図９の配置の場合、ビット部T/Bは、変換後のアドレスデータ３２Ｂのインデックスに対応する部分、すなわちメモリアドレスデータ３１のデータ部３１ｂに存在する。このような場合、特定のインデックスには、トップフィールドのみが、あるいはボトムフィールドのみが割り当てられてしまう状態が発生し得る。ある画像処理においてトップフィールドのみが使用される処理の場合に、例えば半分のインデックスしか使用されない状態でキャッシュメモリが使用される状態になってしまう場合があり、その場合は、事実上キャッシュ容量が半分なったのと同じことになってしまうという問題がある。そこで、ビット部T/Bは、変換後のアドレスデータ３２Ｂのインデックスに対応するメモリアドレスデータ３１のデータ部３１ｂに存在する場合、変換部２５は、図１０に示すようなアドレス変換を行うことにより、このような問題は発生しない。
【００６６】
図１０は、図９のようなSDRAM１２内におけるトップフィールドとボトムフィールドのデータの配置の場合における変換部２５における変換処理の内容を説明するための図である。  
変換部２５は、メモリアドレスデータ３１を、アドレスデータ３２Ｂに変換する。ここでも、第１の実施の形態と同様に、メモリアドレスデータ３１は、３２ビットのアドレスデータであり、キャッシュメモリ１１ｂ内におけるアドレスデータ３２Ｂも、３２ビットのアドレスデータである。アドレスデータ３２Ｂは、タグ３２ａＢ、インデックス３２ｂＢ、及びブロック内アドレス３２ｃＢからなる。
【００６７】
本実施の形態の場合、メモリアドレスデータ３１と変換後のアドレスデータ３２Ｂの対応関係は、次のようになる。変換部２５は、データ部３１ｂに存在する１ビットあるいは２以上ビットからなるビット部T/Bを、アドレスデータ３２Ｂのタグ３２ａＢ中の所定の位置に移動させる変換処理を行う。ビット部T/Bは、インデックス３２ｂＢに対応するメモリアドレスデータ３１のデータ部３１ｂに存在する。すなわち、フィールド極性を示すデータであるビット部T/Bをインデックス３２ｂＢよりも上位側に移動するように変換処理が行われることによっても、キャッシュブロック内では、トップフィールドとボトムフィールドのいずれかのデータしか存在せず、かつキャッシュ容量が事実上一部しか使われるということもなくなる。言い換えると、各インデックスに対応するキャッシュブロックは、トップフィールドとボトムフィールドのいずれかのデータだけを含み、例えばトップフィールドしか使用しないような処理の場合であっても、使用可能なインデックスが全て使用可能となる。
【００６８】
図１０に示すように、アドレスデータ３２Ｂは、ビット部T/Bがタグ３２ａＢ内の所定のビット位置に移動したデータである。タグ３２ａＢのビット部T/Bよりも上位側のビット部は、メモリアドレスデータ３１の上位側ビットと同じであり、タグ３２ａＢのビット部T/Bよりも下位側のビット部は、T/B部を除いたメモリアドレスデータ３１の下位側ビットと同じである。
【００６９】
図１０の場合、キャッシュメモリ１１ｂは、トップフィールドのデータ領域用とボトムフィールドのデータ領域用というような分離した領域の管理を行うのではなく、２つのフィールドデータの区別なく、両方のフィールドに対して各キャッシュブロックを割り当てている。
【００７０】
なお、上述したように、ビット部T/Bは、２以上のビットで表現されることもあるため、変換後のアドレスデータ３２のインデックスとブロック内アドレスの両方に対応する部分、すなわちメモリアドレスデータ３１のデータ部３１ｂと３１ｃの両方に存在する場合もある。
【００７１】
そのような場合は、図１１に示すように、アドレス変換を行ってもよい。図１１は、変換部２５における変換処理の内容の他の例を説明するための図である。  
図１１に示すように、変換部２５は、メモリアドレスデータ３１のデータ部３１ｂと３１ｃに存在する２つのビット部T/Bを結合して、変換後のアドレスデータ３２Cのタグ３２ａC中の所定の位置に移動させる変換処理を行う。
【００７２】
（動作）
本実施の形態におけるデータの読み出し時における、キャッシュメモリ１１ｂの動作は、第１の実施の形態のキャッシュメモリ１１ｂと同様であり、異なるのは、変換部２５における変換処理の内容が、図８、図１０あるいは図１１に示すような変換処理である点だけである。
【００７３】
以上したように、フィールド構造のインターレース画像の場合、トップフィールドとボトムフィールドに対する復号化処理は別々に実行されるため、キャッシュブロック内に二つのフィールドデータが混在していると、どちらか片方のフィールドデータだけが必要な場合でも、キャッシュ内には両方のフィールドデータが読み込まれることになり、キャッシュ効率を低下させてしまう。
【００７４】
上述した本実施の形態に係るキャッシュメモリ装置１１ｂによれば、各キャッシュブロック内には、トップフィールドとボトムフィールドのいずれか一方だけが記憶されているので、キャッシュ効率は低下しない。
【００７５】
また、それぞれのキャッシュブロックに、トップあるいはボトムのフィールドの片方にしか使用されないような割り当て方をした場合に、一方だけのフィールドデータが必要であっても、もう一方のフィールドデータに割り当てられたキャッシュブロックは、全く使われないことになってしまい、キャッシュの効率を低下させてしまう。そこで、図１０で説明したようなインデックスの割り当て方法を採用することにより、キャッシュ効率の低下を防ぐことが出来る。
【００７６】
従って、本実施の形態によれば、フレームがインターレース形式の場合であっても、画像処理がラスタスキャン順に行われることが多いビデオデコーダ等の画像処理装置においては、復号化処理において、画像データについてのキャッシュヒット率は、向上する。
【００７７】
（第３の実施の形態）
（構成）
次に、本発明の第３の実施の形態について説明する。  
復号化処理の中には、復号化処理時に処理内容に応じて、参照される画像の領域が変更される処理がある。そのような処理として、例えば、MPEG-4AVC/H.264におけるMBAFF処理（Macro Block Adaptive Frame/Field）のような適応型動き予測制御を含むような処理がある。
【００７８】
図１２は、本実施の形態における、１つのフレームデータにおける画像データの読み出し単位を説明するための図である。  
図１２では、１つのフレーム２０は、それぞれが１６×１６の画素からなる複数の領域に分割される。通常の画像処理時は、この分割された領域を、一つの処理単位（すなわちマクロブロック単位）として、画像データが読み出されて各種処理が行われる。
【００７９】
しかし、特定の処理時は、例えば上述したようなMBAFF処理時は、処理単位が１６×３２の画素からなる処理単位で、画像処理が行われる場合がある。図１２の場合、ある画像処理では、１６×１６画素の処理単位で、上述した第１の実施の形態あるいは第２の実施の形態で説明したようなキャッシュメモリ１１ｂのアドレス変換が行われるが、MBAFF処理のような処理単位の画素領域が変更されるような処理時は、１６×３２画素の処理単位PUで、画像処理が行われる。
【００８０】
そのような場合に、さらにキャッシュヒット率を向上させるために、本実施の形態では、画像処理の内容に応じて、具体的には、処理単位の画素領域の変更に応じて、キャッシュメモリにおけるウエイ数が変更される。これは、処理単位が処理単位PUになった場合には、キャッシュメモリ１１ｂ内では、処理単位PUに対応するように、インデックス数を増加させるために、ウエイ数が少なくされる。
【００８１】
その結果、図１２の場合、１ウエイが２ブロック行に対応していた状態から、１ウエイが４ブロック行に対応する状態に変更される。具体的には、インデックス番号として、０から１１９，１２８から２４７，２５６から３７５，３８４から５０３が割り当てられて、キャッシュメモリのウエイ数は半分になるが、インデックス番号の数は２倍となる。すなわち、画像処理が、MBAFFの処理モードのような処理単位が大きくなると、ウエイ数を減少しかつインデックス数を増加するように、キャッシュメモリ１１ｂの構成が変更される。
【００８２】
図１３は、本実施の形態に係るキャッシュメモリの構成を示す構成図である。例えば、画像処理部としてのCPUコアとキャッシュメモリ装置であるキャッシュメモリ１１ｂAを具備した画像処理装置において、キャッシュメモリ１１ｂAは、CPUにおける処理単位の粒度に応じて、ウエイ数を変化させることが出来るセットアソシアティブ方式のキャッシュメモリ装置である。
【００８３】
図１３に示すキャッシュメモリ１１ｂAは、図４のキャッシュメモリ１１ｂの構成に加えて、ウエイ切替器４１と、３つのセレクタ回路４２，４３，４４を含んでいる。
【００８４】
変換部２５は、上述した第１あるいは第２の実施の形態で説明したアドレス変換処理を行う。アドレス変換されたアドレスデータは、後述するように、ウエイ数の変更に伴うインデックス数に応じて、２つのデータD1,D2としてレジスタに保持される。
【００８５】
処理単位の領域がフレームの縦方向に広がるような、上述したMBAFF処理が実行されると、CPUコア１１ａから所定の制御信号CSが、ウエイ数を変更するためのウエイ切替器４１に供給される。所定の制御信号CSが入力されると、ウエイ切替器４１は、セレクタ４２，４３，４４のそれぞれに、変更後のウエイ数信号WNを出力する。制御信号CSは、処理単位の画素領域の変更を示す信号である。
【００８６】
セレクタ４２は、ウエイ数信号WNに応じて、複数のアドレスデータ（ここでは、２つのアドレスデータ）の中から選択した一方のアドレスデータのブロック内アドレス（BA）を、データセレクタ２４Aに出力する。図１３の場合、アドレスデータ３２D1は、ウエイ数４に対応し、アドレスデータ３２D2は、ウエイ数２に対応する。アドレスデータ３２D2は、インデックス数がアドレスデータ３２D1よりも増加されたインデックスを含むアドレスデータである。
【００８７】
セレクタ４３は、ウエイ数信号WNに応じて、複数のアドレスデータ（ここでは、２つのアドレスデータ）の中から選択した一方のアドレスデータのインデックス番号を、タグテーブル２１Aとメモリ部２２Aに出力する。
【００８８】
セレクタ４４は、ウエイ数信号WNに応じて、複数のアドレスデータ（ここでは、２つのアドレスデータ）の中から選択した一方のアドレスデータのタグを、タグ比較部２３Aに出力する。
【００８９】
以上のように、ウエイ切替器４１は、CPUコア１１ａからの所定の制御信号CSを入力して、ウエイ数信号WNを各セレクタ（SEL）に出力する。所定の制御信号CSは、処理の変更コマンドあるいは処理状態の変更を示すデータであり、本実施の形態では、制御信号CSは、通常の画像処理状態からMBAFF処理のような処理状態に変更されたことあるいはそのMBAFF処理状態を示すデータである。
【００９０】
ウエイ数の変更及びインデックス番号の変更は、キャッシュメモリ１１ｂA内の複数の記憶領域に対する割り当て変更により行われる。
【００９１】
（動作）
図１３のキャッシュメモリ１１ｂAの動作について説明する。  
図１に示す映像処理装置１が動作しているときに、画像処理が、例えば、MBAFF処理のような処理単位が変更される処理に変更されると、CPUコア１１ａは、キャッシュメモリ１１ｂAに制御信号CSを出力する。例えば、制御信号CSを受信するまでは、キャッシュメモリ１１ｂAは、４ウエイ動作していたとする。
【００９２】
キャッシュメモリ１１ｂAは、制御信号CSを受信すると、ウエイ切替器４１が、各セレクタ４２，４３，４４に、ウエイ数を２に変更するように、ウエイ数信号WN（＝２）を出力する。
【００９３】
そして、セレクタ４２は、２つのアドレスデータ３２D1、３２D2のうち、ウエイ数２に対応するアドレスデータ３２D2のブロック内アドレス（BA）を選択して、データセレクタ２４Aに出力する。
【００９４】
セレクタ４３は、ウエイ数２に対応するアドレスデータ３２D2のインデックス番号を選択して、タグテーブル２１Aとメモリ部２２Aに出力する。
【００９５】
セレクタ４４は、ウエイ数２に対応するアドレスデータ３２D2のタグを選択して、タグ比較部２３Aに出力する。
【００９６】
その結果、メモリ部２２Aは、インデックス数が増加されたインデックスを含むアドレスデータ３２D2に基づいて、インデックスとブロック内アドレス（BA）が指定されて出力データを出力するので、インデックス数は、図１２で説明したように増加され、キャッシュヒット率が向上する。
【００９７】
その後、画像処理が、MBAFF処理の前に実行していた処理あるいは別の処理に移行すると、制御信号CSは、MBAFF処理でなくなったことを示す信号となる。その結果、キャッシュメモリ１１ｂAは、ウエイ数を２から４に戻し、かつインデックス数を元の１から１１９，１２８から２４７の数に戻す。各セレクタは、アドレスデータ３２D1を選択して、それぞれ、アドレスデータ３２D1のブロック内アドレス（BA）、インデックス及びタグを出力する。
【００９８】
上述したように、本実施の形態では、MBAFF処理の場合に、ウエイ数を２分の１にして、インデックス数を２倍にする、あるいは、１６＊１６の２ブロック行で１ウエイを割り当てるようにした。
【００９９】
よって、ウエイ数の切替に応じて、タグテーブル２１Aとメモリ部２２Aのそれぞれのウエイ数が変更され、結果として、タグテーブル２１Aとメモリ部２２Aのそれぞれのインデックス数が増加する。よって、処理単位の画素領域がフレームの垂直（縦）方向において増加するような処理になっても、キャッシュヒット率の向上を図ることができる。
【０１００】
一般にキャッシュメモリにおいて、ウエイ数を増加させることによって、キャッシュヒット率は増加するが、上述したような画像処理の処理単位が大きくなるような場合は、ウエイ数を減少してインデックス数を増加することによって、キャッシュヒット率の増加を図っている。
【０１０１】
以上のように、本実施の形態によれば、２つのキャッシュメモリにおいて、キャッシュ容量とキャッシュブロックのバイト数とが同一の場合、ウエイ数が少なければ、キャッシュブロックのインデックス数が多くなり、ウエイ数が多ければインデックス数は少なくなる。そのため、画像処理に関して言えば、ウエイ数が少なければ画像の広範囲に渡って一意的にインデックスを割り当てることが可能となり、ウエイ数が多ければ、その逆になる。画像データへのアクセス粒度が高い場合には、ウエイ数を減らして画像の広い範囲のデータをキャッシュ内に留め、アクセス粒度が低い場合には、ウエイ数を増加させて画像の狭い範囲のデータを柔軟に入れ替えることにより、キャッシュメモリを効率的に利用して、キャッシュヒット率の向上を図っている。
【０１０２】
特に、MPEG-4 AVC/H.264のMBAFF処理を使用して符号化されたデータは、垂直方向の２マクロブロックが同時に使用されて処理され、MBAFF処理が使用されない場合に比べて、復号化を行う画像の処理単位の画素領域が大きくすなわち広くなる。そのため、参照画像へのアクセスの粒度なども大きくなる。このため、MBAFF処理を使用したストリームデータの場合には、通常ストリームデータの場合よりもウエイ数を小さくすることにより、キャッシュメモリの利用効率が向上する場合がある。
【０１０３】
以上説明のように、上述した各実施の形態によれば、画像データを記憶するキャッシュメモリ装置において、キャッシュヒット率を向上させることができる。  
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【０１０４】
【図１】本発明の第１の実施の形態に係わる画像処理装置の構成を示す構成図である。
【図２】本発明の第１の実施の形態に係わる、１つのフレームデータにおける画像データの読み出し単位の例を説明するための図である。
【図３】本発明の第１の実施の形態に係わる、１つのフレームデータにおける画像データの読み出し単位の他の例を説明するための図である。
【図４】本発明の第１の実施の形態に係わるキャッシュメモリの構成の例を示す構成図である。
【図５】本発明の第１の実施の形態に係わる変換部における変換処理の内容を説明するための図である。
【図６】本発明の第２の実施の形態に係わる、SDRAM内におけるトップフィールドとボトムフィールドのデータの配置の例を示す図である。
【図７】本発明の第２の実施の形態に係わる、SDRAM内におけるトップフィールドとボトムフィールドのデータの配置の他の例を示す図である。
【図８】本発明の第２の実施の形態に係わる変換部における変換処理の内容を説明するための図である。
【図９】本発明の第２の実施の形態に係わる、SDRAM内におけるトップフィールドとボトムフィールドのデータの配置のさらなる他の例を示す図である。
【図１０】図９のようなSDRAM内におけるトップフィールドとボトムフィールドのデータの配置の場合における変換部における変換処理の内容を説明するための図である。
【図１１】本発明の第２の実施の形態に係わる変換部における変換処理の内容の他の例を説明するための図である。
【図１２】本発明の第３の実施の形態に係る、１つのフレームデータにおける画像データの読み出し単位を説明するための図である。
【図１３】本発明の第３の実施の形態に係るキャッシュメモリの構成を示す構成図である。
【符号の説明】
【０１０５】
１  映像処理装置、１１  CPU、１１ａ  CPUコア、１１ｂ、１１ｂA  キャッシュメモリ、１２  SDRAM、１３  インターフェース、１４  バス、２０  フレーム、２１、２１A  タグテーブル、２２，２２A  メモリ部、２３，２３A  タグ比較部、２４，２４A  データセレクタ、２５  変換部、３１  メモリアドレスデータ、３２、３２A、３２B、３２C、３２D1、３２D2  アドレスデータ、４１  ウエイ切替器、４２，４３，４４  セレクタ
【図１】
2010146205.tif 000003
【図２】
2010146205.tif 000004
【図３】
2010146205.tif 000005
【図４】
2010146205.tif 000006
【図５】
2010146205.tif 000007
【図６】
2010146205.tif 000008
【図７】
2010146205.tif 000009
【図８】
2010146205.tif 000010
【図９】
2010146205.tif 000011
【図１０】
2010146205.tif 000012
【図１１】
2010146205.tif 000013
【図１２】
2010146205.tif 000014
【図１３】
2010146205.tif 000015