JP2011097198A - メモリアクセス制御装置 - Google Patents
メモリアクセス制御装置 Download PDFInfo
- Publication number
- JP2011097198A JP2011097198A JP2009247124A JP2009247124A JP2011097198A JP 2011097198 A JP2011097198 A JP 2011097198A JP 2009247124 A JP2009247124 A JP 2009247124A JP 2009247124 A JP2009247124 A JP 2009247124A JP 2011097198 A JP2011097198 A JP 2011097198A
- Authority
- JP
- Japan
- Prior art keywords
- image data
- cache
- area
- data
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】 動画デコーダに出力する画像データの生成に必要な画像データがキャッシュメモリにおいて追い出し対象となるのを回避し、外部メモリから動画デコーダ等へのキャッシュ制御による画像データの転送を効率的に実行する。
【解決手段】 データ要求処理部121は、動画デコーダ25に供給する画像データを生成するのに必要な画像データを1マクロブロック単位でキャッシュエリアCA(k)(k=0〜N−1)に記憶させるキャッシュ制御を行う。その際、キャッシュエリアCA(k)(k=0〜N−1)の各々についてアクセス予定カウンタACC(k)(k=0〜N−1)によりアクセス予定回数をカウントし、キャッシュエリアの画像データの追い出しが必要な場合に、アクセス予定回数が「1」以上であるキャッシュエリアを追い出し対象から除外する。
【選択図】図4
【解決手段】 データ要求処理部121は、動画デコーダ25に供給する画像データを生成するのに必要な画像データを1マクロブロック単位でキャッシュエリアCA(k)(k=0〜N−1)に記憶させるキャッシュ制御を行う。その際、キャッシュエリアCA(k)(k=0〜N−1)の各々についてアクセス予定カウンタACC(k)(k=0〜N−1)によりアクセス予定回数をカウントし、キャッシュエリアの画像データの追い出しが必要な場合に、アクセス予定回数が「1」以上であるキャッシュエリアを追い出し対象から除外する。
【選択図】図4
Description
この発明は、外部メモリを利用して動画の圧縮符号化データの復号化を行う動画デコーダ等に好適なメモリアクセス制御装置に関する。
MPEG(Moving Picture Expert Group)などの動画圧縮データの復号化を行う動画デコーダでは、復号結果である画像データをフレームメモリに格納し、このフレームメモリへのアクセスを行いつつ復号化処理を実行する。この復号化処理において、Pフレーム(予測フレーム)の符号化データのようにフレーム間予測符号化処理により符号化された符号化データが処理対象となる場合、そのPフレームの符号化において参照された先行フレーム(以下、参照フレームという)内の画像データが復号化処理に必要になる。この場合、Pフレームの符号化データの復号化処理は、所定画素サイズのマクロブロック単位で実行され、1個のマクロブロックの復号化を行うために、そのマクロブロックの符号化に使用された画像データを包含する参照フレーム内の画像データが必要になる。そして、Pフレームの復号化処理全体を通してみると、参照フレーム内の同じ画像データが復号化処理に複数回使用されることとなる。従って、仮に復号化処理に使用する参照フレームの画像データをフレームメモリから毎回読み出したとすると、同じ画像データをフレームメモリから複数回読み出すこととなり、単位時間内にフレームメモリから読み出す画像データの量が大きくなる。ここで、フレームメモリは、一般的に大容量であり、読み出し速度が遅い。従って、単位時間内にフレームメモリから読み出す画像データの量が大きくなると、最悪の場合、必要な画像データの全てを読み出すことができなくなる。また、動画デコーダが他のモジュールと外部メモリを共有し、この外部メモリの一部のエリアをフレームメモリとして使用するようなシステムでは、動画デコーダによって単位時間内に外部メモリから読み出される画像データの量が大きくなると、他のモジュールによる外部メモリからのデータ読み出し速度が低下し、システムの性能を低下させるという問題が生じる。このような問題を回避するため、動画デコーダにキャッシュメモリを設け、復号化処理のために外部メモリから読み出した画像データをキャッシュメモリに記憶させ、キャッシュメモリに記憶された画像データと同一の画像データが復号化処理に必要になった場合に、その画像データの外部メモリからの読み出しを回避する技術が各種提案されている(例えば特許文献1、2参照)。
ところで、動画デコーダが必要とする画像データをキャッシュ制御により外部メモリから動画デコーダに効率的に転送するためには、動画デコーダが必要とする画像データのうちキャッシュメモリに記憶されていない画像データを外部メモリから読み出してキャッシュメモリに格納する第1の処理と、動画デコーダが必要とする画像データをキャッシュメモリから読み出して動画デコーダに供給する第2の処理とを非同期化し、前者の外部メモリからの読み出しを極力連続的に行わせた方が効率的である。一方、キャッシュメモリでは、第1の処理において、キャッシュメモリが外部メモリから転送された画像データで一杯になると、いわゆる追い出し制御を行い、既に画像データが転送されたキャッシュメモリのエリアを新たな画像データの転送先にする必要がある。しかしながら、上記第1の処理および第2の処理を非同期に進めると、第2の処理が必要とし、かつ、第2の処理が終了していない画像データがキャッシュメモリに記憶されているときに、その画像データが追い出し対象となる可能性がある。このような画像データが追い出し対象とされ、外部メモリから読み出された別の画像データが上書きされた場合、第2の処理を実行するために、追い出し対象になった画像データを再び外部メモリからキャッシュメモリに転送することが必要になる。このため、外部メモリとキャッシュメモリとの間のデータ転送量の増加を招き、外部メモリに対する他のモジュールからのアクセスを阻害し、システムの効率を低下させる。
この発明は、以上説明した事情に鑑みてなされたものであり、上記第1および第2の処理を互いに非同期に実行し、その際に上記第2の処理が必要とする画像データが追い出し対象となるのを回避して、外部メモリから動画デコーダ等の画像処理部へ画像データを効率的に供給することができるメモリアクセス制御装置を提供することを目的とする。
この発明は、1フレーム分の画像データを記憶する外部メモリから前記1フレームを区分したマクロブロック単位で画像データを読み出して、画像処理部から要求された画像データを構成し、前記画像処理部に供給するメモリアクセス制御装置であって、各々1マクロブロック分の画像データを記憶可能な複数のキャッシュエリアを有するキャッシュメモリと、前記複数のキャッシュエリアに各々対応付けられた複数のテーブルエリアを有し、各テーブルエリアに、対応するキャッシュエリアへのアクセス予定の回数をカウントするアクセス予定カウンタと、対応するキャッシュエリアに格納される1マクロブロック分の画像データのフレーム内アドレスとを格納するキャッシュテーブルと、要求対象である画像データのフレーム内の占有領域の指定を含むデータ要求を前記画像処理部から順次受け取り、受け取ったデータ要求により要求された画像データを得るのに必要な1または複数マクロブロックの画像データを各々取得対象画像データとし、前記取得対象画像データを前記キャッシュメモリから取得して、前記データ要求により要求された画像データを生成して前記画像処理部に出力するデータ要求処理部とを具備し、前記データ要求処理部は、前記取得対象画像データの各々について、
(1)当該取得対象画像データが前記キャッシュメモリに格納されておらず、当該取得対象画像データの前記キャッシュメモリへの転送を指令する読み出し要求を出力する場合に、前記キャッシュテーブルにおいてアクセス予定カウンタの値が「0」であるテーブルエリアの中の1つのテーブルエリアを更新対象テーブルエリアとして選択し、前記更新対象テーブルエリアに対応付けられたキャッシュエリアを当該取得対象画像データの転送先とし、当該取得対象画像データの前記外部メモリから当該キャッシュエリアへの転送を指令する読み出し要求を出力し、当該取得対象画像データのフレーム内アドレスを前記更新対象テーブルエリアに格納するとともに、前記更新対象テーブルエリアのアクセス予定カウンタを「1」だけ増加させ、
(2)当該取得対象画像データが前記キャッシュメモリに記憶されており、当該取得対象画像データについての読み出し要求を出力しない場合、または当該取得対象画像データについて読み出し要求が出力されている場合、前記キャッシュテーブルの各テーブルアリアのうち当該取得対象画像データのフレーム内アドレスを格納しているテーブルエリアのアクセス予定カウンタを「1」だけ増加させ、
前記データ要求処理部は、前記データ要求により要求された画像データを得るための1つのマクロブロックの画像データを前記キャッシュメモリの1つのキャッシュエリアから読み出し、前記データ要求により要求された画像データの生成に使用したとき、当該キャッシュエリアに対応付けられたテーブルエリアのアクセス予定カウンタを「1」だけ減少させることを特徴とするメモリアクセス制御装置を提供する。
(1)当該取得対象画像データが前記キャッシュメモリに格納されておらず、当該取得対象画像データの前記キャッシュメモリへの転送を指令する読み出し要求を出力する場合に、前記キャッシュテーブルにおいてアクセス予定カウンタの値が「0」であるテーブルエリアの中の1つのテーブルエリアを更新対象テーブルエリアとして選択し、前記更新対象テーブルエリアに対応付けられたキャッシュエリアを当該取得対象画像データの転送先とし、当該取得対象画像データの前記外部メモリから当該キャッシュエリアへの転送を指令する読み出し要求を出力し、当該取得対象画像データのフレーム内アドレスを前記更新対象テーブルエリアに格納するとともに、前記更新対象テーブルエリアのアクセス予定カウンタを「1」だけ増加させ、
(2)当該取得対象画像データが前記キャッシュメモリに記憶されており、当該取得対象画像データについての読み出し要求を出力しない場合、または当該取得対象画像データについて読み出し要求が出力されている場合、前記キャッシュテーブルの各テーブルアリアのうち当該取得対象画像データのフレーム内アドレスを格納しているテーブルエリアのアクセス予定カウンタを「1」だけ増加させ、
前記データ要求処理部は、前記データ要求により要求された画像データを得るための1つのマクロブロックの画像データを前記キャッシュメモリの1つのキャッシュエリアから読み出し、前記データ要求により要求された画像データの生成に使用したとき、当該キャッシュエリアに対応付けられたテーブルエリアのアクセス予定カウンタを「1」だけ減少させることを特徴とするメモリアクセス制御装置を提供する。
かかる発明によれば、あるテーブルエリアに対応したキャッシュエリアへのアクセス予定回数を示すアクセス予定カウンタの値が「1」以上である場合に、そのテーブルエリアは更新対象テーブルエリアとならず、そのテーブルエリアに対応したキャッシュエリアの画像データは追い出し対象とならない。従って、キャッシュメモリにおいて、画像処理部へ出力する画像データの生成に必要な画像データが追い出し対象となるのを回避して、読み出し要求の発生回数を減らすことができる。
以下、図面を参照し、この発明の実施の形態を説明する。
図1は、この発明の一実施形態であるメモリアクセス制御装置10を含む動画デコードモジュール100の構成を示すブロック図である。この動画デコードモジュール100は、図示しないホストCPUからのコマンドをバス101Aを介して受け取り、このコマンドに従って、バス101Bに接続されたROM(図示略)から動画の圧縮符号化画像データおよび圧縮符号化アルファデータを読み出して復号化を行い、その結果得られる動画の画像データおよびアルファデータをバス101Cに接続されたSDRAM(Synchronous Dynamic Random Access Memory)等による外部メモリモジュール102に格納する。バス101Cには、動画デコードモジュール100に加えて、描画モジュール等の他のモジュールが接続されている。動画デコードモジュール100は、この他のモジュールと、外部メモリモジュールを共有している。
図1は、この発明の一実施形態であるメモリアクセス制御装置10を含む動画デコードモジュール100の構成を示すブロック図である。この動画デコードモジュール100は、図示しないホストCPUからのコマンドをバス101Aを介して受け取り、このコマンドに従って、バス101Bに接続されたROM(図示略)から動画の圧縮符号化画像データおよび圧縮符号化アルファデータを読み出して復号化を行い、その結果得られる動画の画像データおよびアルファデータをバス101Cに接続されたSDRAM(Synchronous Dynamic Random Access Memory)等による外部メモリモジュール102に格納する。バス101Cには、動画デコードモジュール100に加えて、描画モジュール等の他のモジュールが接続されている。動画デコードモジュール100は、この他のモジュールと、外部メモリモジュールを共有している。
動画デコードモジュール100において、バスI/F(インタフェース)21A、21Bおよび21Cは、各々バス101A、101Bおよび101Cを介したデータの授受の仲介をするインタフェースである。ホストI/F22は、バス101Aに接続された装置が出力するコマンドをバスI/F21Aを介して受信して内蔵のコマンドバッファ22Aに格納し、このコマンドを動画デコードモジュール100内の関係する各部に供給するインタフェースである。レジスタ群23は、動画デコードモジュール100内の各部の制御のための制御情報あるいは各部間で授受されるデータを記憶するためのレジスタの集合体である。ROM I/F24は、各々FIFO(First-In First-Out;先入れ先出し)バッファであるバッファ24Aおよび24Bを内蔵している。このROM I/F24は、バス101Bに接続されたROM(図示略)から読み出される動画の圧縮符号化画像データをバスI/F21Bを介して受け取ってバッファ24Aに蓄積し、蓄積した圧縮符号化画像データを古いものから順に動画デコーダ25に供給する。また、ROM I/F24は、バス101Bに接続されたROM(図示略)から読み出される動画の圧縮符号化アルファデータをバスI/F21Bを介して受け取ってバッファ24Bに蓄積し、蓄積した圧縮符号化アルファデータを古いものから順にアルファデータデコーダ26に供給する。
動画デコーダ25は、ホストI/F22を介して与えられる復号化処理の実行コマンドに従い、動画の圧縮符号化画像データの復号化処理を実行する装置である。ここで、復号化対象である圧縮符号化画像データのROM内の格納開始アドレス等の制御情報は、復号化処理に先立ち、ホストI/F22を介してレジスタ群23の中の所定のレジスタに格納されるようになっている。動画デコーダ25は、復号化処理の実行コマンドを受け取ったとき、このレジスタ内の制御情報を参照し、復号化対象である圧縮符号化画像データをROM(図示略)から読み出して復号化処理を実行する。
本実施形態において、動画デコーダ25の復号化対象である圧縮符号化画像データは、次のような圧縮符号化処理により得られたデータである。まず、動画を構成する各フレームの中からフレーム内符号化の対象であるIフレーム(独立フレーム)が選ばれ、それ以外のフレームはフレーム間予測符号化の対象であるPフレーム(予測フレーム)とされる。Iフレームの画像データは、16×16画素のマクロブロックに区切られ、マクロブロック毎に所定の圧縮符号化アルゴリズムに従って圧縮符号化画像データに変換される。Pフレームの画像データも、Iフレームと同様、16×16画素のマクロブロックに区切られる。そして、Pフレームについては、動き補償を伴うフレーム間予測符号化処理により圧縮符号化画像データが生成される。さらに詳述すると、Pフレームの圧縮符号化処理では、図2に例示するように、符号化対象のPフレームに先行するPフレームまたはIフレームを参照フレームとし、符号化対象のPフレームのマクロブロック毎に、参照フレームの画像データの中から当該マクロブロックの画像に最も近似した画像を示す16×16画素の領域を求めて参照領域とし、符号化対象のマクロブロックMBxの画像データと参照領域MBx’の画像データとの差分を圧縮符号化する。多くの場合、図2に例示するように、参照領域MBx’は参照フレームの中の4個のマクロブロックMBa、MBb、MBc、MBdに跨っているが、稀に3個以下のマクロブロックに跨る場合もある。動画デコーダ25は、このような圧縮符号化処理により得られたIフレームおよびPフレームの圧縮符号化画像データを受け取ってその復号化を行う。
アルファデータデコーダ26は、ホストI/F22を介して与えられる復号化処理の実行コマンドに従い、動画の圧縮符号化アルファデータの復号化処理を実行する装置である。ここで、復号化対象である圧縮符号化アルファデータのROM内の格納開始アドレス等の制御情報は、復号化処理に先立ち、ホストI/F22を介してレジスタ群23の中の所定のレジスタに格納されるようになっている。アルファデータデコーダ26は、復号化処理の実行コマンドを受け取ったとき、このレジスタ内の制御情報を参照し、復号化対象である圧縮符号化アルファデータをROM(図示略)から読み出して復号化処理を実行する。
外部メモリI/F27は、動画デコーダ25およびアルファデータデコーダ26の各々と外部メモリモジュール102との間のデータの授受を仲介するインタフェースである。本実施形態において、外部メモリモジュール102の一部の記憶領域は、動画デコーダ25の復号結果である画像データを記憶するフレームバッファとして使用される。ここで、外部メモリI/F27は、外部メモリモジュール102と後述するキャッシュメモリ11との間のDMA(Direct Memory Access;直接メモリアクセス)転送を実現するDMAC(DMAコントローラ)を内蔵している。
ここで、動画デコーダ25により実行される復号化処理のうち外部メモリモジュール102を使用して実行されるPフレームの復号化処理について説明する。Pフレームの復号化処理は、Iフレームと同様、16×16画素のマクロブロック単位で行われるが、参照フレームにおける参照領域の画像データを参照することにより実行される。
動画デコードモジュール100には、Pフレームの復号化処理を実行する動画デコーダ25に参照領域の画像データを供給するための手段として、キャッシュメモリ11と、キャッシュ制御部12とからなるメモリアクセス制御装置10が設けられている。
動画デコーダ25は、Pフレームにおける1マクロブロック分の圧縮符号化データの復号化を行う際、その復号化に必要な参照フレームの参照領域のアドレス指定を伴ったデータ要求をキャッシュ制御部12に送る。本実施形態において、フレームを構成する各画素は、その画素が水平方向に何番目の画素であるかを示す画素アドレスXと垂直方向において何番目の画素であるかを示す画素アドレスYにより特定される。そして、動画デコーダ25は、参照領域を指定するために使用するアドレスとして、この画素アドレスX、Yよりも分解能の粗いブロックアドレスを用いる。具体的には、本実施形態において動画デコーダ25は、参照領域を指定するためのアドレスとして、画素アドレスXの最下位2ビットを間引いたブロックアドレスXBと、画素アドレスYの最下位1ビットを間引いたブロックアドレスYBを用いる。このブロックアドレスXBおよびYBは、図3に示すように、フレームを構成する各画素を水平方向4画素、垂直方向2画素からなるブロックに区切った場合の各ブロックの水平方向における位置および垂直方向における位置を示すアドレスとなる。本実施形態において、動画デコーダ25は、Pフレームの復号化処理において、参照領域の画像データを取得するため、その参照領域の左上頂点のブロックアドレスXBおよびYBと、その参照領域の水平方向のブロック数と、その参照領域の垂直方向のブロック数とを含んだデータ要求をキャッシュ制御部12に対して出力する。
図4はこのようなデータ要求に応じて参照領域の画像データを生成して動画デコーダ25に供給するキャッシュ制御部12の構成を示すブロック図である。なお、図4では、キャッシュ制御部12の機能の理解を容易にするため、キャッシュメモリ11も併せて図示されている。
本実施形態において、キャッシュメモリ11は、各々1マクロブロック分の画像データを記憶可能なN個(Nは例えば256)のキャッシュエリアCA(k)(k=0〜N−1)を有している。これらの各キャッシュエリアCA(k)(k=0〜N−1)には、外部メモリモジュール102のフレームバッファ領域から読み出される1マクロブロック分の画像データが格納されるようになっている。
キャッシュ制御部12のデータ要求処理部121は、動画デコーダ25からデータ要求が与えられる毎に出力タスクを生成する。この出力タスクは、データ要求により指定された参照領域を包含する1〜4個のマクロブロックの画像データをキャッシュメモリ11から取得し、取得した画像データから参照領域の画像データを生成して動画デコーダ25に出力するタスクである。参照領域を包含する1〜4個のマクロブロックの画像データがキャッシュメモリ11に記憶されていない場合、この出力タスクの実行は待たされることとなる。また、先行する出力タスクが参照領域の画像データを動画デコーダ25に出力している期間も、後続の出力タスクの実行は待たされることとなる。
一方、データ要求処理部121は、出力タスクを生成する際、その出力タスクが参照領域の画像データを生成するのに必要とする画像データ、すなわち、参照領域を包含する1〜4個のマクロブロックの画像データを取得対象画像データとする。そして、取得対象画像データの中にキャッシュメモリ11に格納されていないものがあれば、その取得対象画像データについての読み出し要求を外部メモリモジュール102に送り、その取得対象画像データを外部メモリモジュール102からキャッシュメモリ11のキャッシュエリアCA(k)(k=0〜N−1)の中に1つに転送させる。このようにして、キャッシュメモリ11の記憶内容に出力タスクが必要とする取得対象画像データが欠けている場合に、それを補充するキャッシュ制御が行われ、出力タスクの実行が可能となるのである。
本実施形態では、このようなデータ要求処理部121によるキャッシュ制御を円滑に進めるため、キャッシュテーブル122がキャッシュ制御部12に設けられている。このキャッシュテーブル122は、キャッシュメモリ11の各キャッシュエリアCA(k)(k=0〜N−1)に対応付けられたN個のテーブルエリアTA(k)(k=0〜N−1)を有している。ここで、1つのテーブルエリアTA(k)には、アクセス予定カウンタACC(k)、有効性フラグVALID(k)、フレーム内アドレスXB(k)およびYB(k)が格納されるようになっている。ここで、フレーム内アドレスXB(k)およびYB(k)は、キャッシュエリアCA(k)に現に格納されているマクロブロックの画像データまたは外部メモリモジュール102から読み出してキャッシュエリアCA(k)に格納すべきマクロブロックの画像データの左上頂点のブロックアドレスXBおよびYBである。また、有効性フラグVALID(k)は、キャッシュエリアCA(k)に記憶されている画像データが有効であるか否かを示すフラグであり、有効である場合はVALID(k)=“1”、無効である場合はVALID(k)=“0”とされる。アクセス予定カウンタACC(k)は、フレーム内アドレスXB(k)およびYB(k)により指定された取得対象画像データを必要としている出力タスクの数、すなわち、キャッシュエリアCA(k)へのアクセスの予定回数をカウントするカウンタである。
データ要求処理部121は、上述した出力タスクを発生すると、発生した各出力タスクにおいてこのキャッシュテーブル122の内容に基づいてキャッシュメモリ11の記憶内容を監視し、当該出力タスクが参照領域の画像データを生成するのに必要な取得対象画像データがキャッシュメモリ11に格納されている場合にはキャッシュメモリ11からその取得対象画像データを取得し、キャッシュメモリ11に格納されていない場合には格納されるのを待ってキャッシュメモリ11からその取得対象画像データを取得し、参照領域の画像データの生成に使用する。
次に、データ要求処理部121がキャッシュテーブル122を利用して行うキャッシュ制御の詳細を説明する。まず、データ要求処理部121は、動画デコーダ25の復号化対象フレームが切り換わる毎に、キャッシュテーブル122の内容を初期化する。具体的には、全てのアクセス予定カウンタACC(k)(k=0〜N−1)を「0」とし、全ての有効性フラグVALID(k)(k=0〜N−1)を無効を示す“0”とし、全てのフレーム内アドレスXB(k)(k=0〜N−1)およびYB(k)(k=0〜N−1)を「0」とする。そして、データ要求処理部121は、動画デコーダ25からデータ要求が与えられる都度、そのデータ要求により指定された参照領域を包含する1〜4個のマクロブロックの画像データを取得対象画像データとし、出力タスクを発生する。その一方において、データ要求処理部121は、取得対象画像データの各々について次の処理を実行する。
<処理1>当該取得対象画像データについて読み出し要求の出力が必要である場合に、テーブルエリアTA(k)(k=0〜N−1)における更新対象テーブルエリアの選択、更新対象テーブルエリアの更新および読み出し要求の出力を行う。さらに詳述すると、次の通りである。
まず、当該取得対象画像データがキャッシュメモリ11に記憶されておらず、かつ、当該取得対象画像データに対する読み出し要求が未だ出力されていないか否かを判断する。具体的には次の2つの条件の両方を満たすか否かを判断する。
条件a1−1.当該取得対象画像データが属するマクロブロックの左上頂点のブロックアドレスXB、YBをフレーム内アドレスXB(k)、YB(k)として格納し、かつ、有効性フラグVALID(k)=“1”を格納するテーブルエリアTA(k)がない。
条件a1−2.当該取得対象画像データが属するマクロブロックの左上頂点のブロックアドレスXB、YBをフレーム内アドレスXB(k)、YB(k)として格納し、かつ、内容が「1」以上であるアクセス予定カウンタACC(k)を格納するテーブルエリアTA(k)がない。
条件a1−1.当該取得対象画像データが属するマクロブロックの左上頂点のブロックアドレスXB、YBをフレーム内アドレスXB(k)、YB(k)として格納し、かつ、有効性フラグVALID(k)=“1”を格納するテーブルエリアTA(k)がない。
条件a1−2.当該取得対象画像データが属するマクロブロックの左上頂点のブロックアドレスXB、YBをフレーム内アドレスXB(k)、YB(k)として格納し、かつ、内容が「1」以上であるアクセス予定カウンタACC(k)を格納するテーブルエリアTA(k)がない。
条件a1−1およびa1−2の両方を満たす場合、テーブルエリアTA(k)(k=0〜N−1)の中から更新対象テーブルエリアを選択する。具体的には、アクセス予定カウンタACC(k)の内容が「0」であるテーブルエリアTA(k)が見つかるまでインデックスkをインクリメントし、該当するテーブルエリアTA(k)が見つかったとき、それを更新対象テーブルエリアとする。この更新対象テーブルエリアに対応したキャッシュエリアの画像データが追い出し対象となる。なお、インデックスkがN−1に到達した後は、再びkを0とする。すなわち、テーブルエリアTA(k)(k=0〜N−1)を順次かつ巡回的に更新対象テーブルエリアとして選択する。
次に、更新対象テーブルエリアTA(k)に対し、当該取得対象画像データの左上頂点のブロックアドレスXBおよびYBをフレーム内アドレスXB(k)およびYB(k)としてテーブルエリアTA(k)に格納するとともに、無効を示す有効性フラグVALID(k)=“0”を格納し、アクセス予定カウンタACC(k)の内容を「1」だけ増加させる。
次に、当該取得対象画像データのフレーム内アドレスXB(k)およびYB(k)を含むとともに、更新対象テーブルエリアTA(k)に対応付けられたキャッシュエリアCA(k)を当該取得対象画像データの転送先として指定する読み出し要求を生成し、外部メモリI/F27およびバスI/F21Cを介して外部メモリモジュール102に送る。
<処理2>当該取得対象画像データがキャッシュメモリ11に格納されていないが外部メモリモジュール102に対して当該取得対象画像データについての読み出し要求を出力済みである場合、当該当該取得対象画像データに対応したアクセス予定カウンタACC(k)を「1」だけ増加させる。より具体的には、テーブルエリアTA(k)(k=0〜N−1)の中に、アクセス予定カウンタACC(k)の値が「1」以上であり、かつ、有効性フラグVALID(k)が無効を示す“0”であり、当該取得対象画像データのフレーム内アドレスXB(k)およびYB(k)を記憶しているテーブルアリアTA(k)がある場合、当該テーブルアリアTA(k)におけるアクセス予定カウンタACC(k)を「1」だけ増加させる。
<処理3>当該取得対象画像データがキャッシュメモリ11に格納されている場合、当該当該取得対象画像データに対応したアクセス予定カウンタACC(k)を「1」だけ増加させる。より具体的には、テーブルエリアTA(k)(k=0〜N−1)の中に、有効性フラグVALID(k)が有効を示す“1”であり、当該取得対象画像データのフレーム内アドレスXB(k)およびYB(k)を記憶しているテーブルアリアTA(k)がある場合、当該テーブルアリアTA(k)におけるアクセス予定カウンタACC(k)を「1」だけ増加させる。
さらにデータ要求処理部121は、次の各処理を行う。
<処理4>出力済みの読み出し要求に応じて、あるマクロブロックの画像データが外部メモリモジュール102から読み出され、読み出し要求において指定されたキャッシュエリアCA(k)に格納された場合、そのキャッシュエリアCA(k)に対応付けられたテーブルエリアTA(k)の有効性フラグVALID(k)を有効を示す“1”にする。
<処理4>出力済みの読み出し要求に応じて、あるマクロブロックの画像データが外部メモリモジュール102から読み出され、読み出し要求において指定されたキャッシュエリアCA(k)に格納された場合、そのキャッシュエリアCA(k)に対応付けられたテーブルエリアTA(k)の有効性フラグVALID(k)を有効を示す“1”にする。
<処理5>ある出力タスクが、ある取得対象画像データをキャッシュエリアCA(k)(k=0〜N−1)の中の1つのキャッシュエリア(例えばキャッシュエリアCA(k1)とする)から読み出し、参照領域の画像データの生成に使用し、その使用を終えたとき、キャッシュエリアCA(k1)に対応したテーブルエリアTA(k1)のアクセス予定カウンタACC(k1)を「1」だけ減少させる。
以上がデータ要求処理部121の処理内容の詳細である。
以上がデータ要求処理部121の処理内容の詳細である。
本実施形態によれば、あるテーブルエリアTA(k)に対応したキャッシュエリアCA(k)内の画像データを取得対象画像データとする出力タスクが存続しており、キャッシュエリアCA(k)へのアクセス予定回数を示すアクセス予定カウンタACC(k)の値が「1」以上である場合に、そのテーブルエリアTA(k)は更新対象テーブルエリアとならず、テーブルエリアTA(k)に対応したキャッシュエリアCA(k)の画像データは追い出し対象とならない。従って、キャッシュメモリにおいて、存続する出力タスクが必要とする画像データが追い出し対象となるのを回避して、読み出し要求の発生回数を減らし、他のモジュールから外部メモリモジュール102へのアクセスが阻害されるのを防止し、システム効率を高めることができる。また、本実施形態によれば、取得対象画像データのフレーム内アドレスXB(k)、YB(k)と有効を示す有効性フラグVALID(k)がキャッシュテーブル122に格納されている場合に、その取得対象画像データについての読み出し要求は出力されない。従って、重複した読み出し要求の発生を回避し、効率的な画像データの供給を実現することができる。また、本実施形態によれば、ある取得対象画像データについて無効を示す有効性フラグVALID(k)がキャッシュテーブル122のあるテーブルエリアTA(k)に格納されている場合であっても、同テーブルエリアTA(k)のアクセス予定カウンタACC(k)が「1」以上である場合、すなわち、同取得対象画像データが外部メモリモジュール102から読み出し中である場合にも読み出し要求は出力されない。従って、重複した読み出し要求をさらに徹底して回避することができる。
また、本実施形態によれば、マクロブロック単位で外部メモリモジュール102内の画像データをキャッシュメモリ11に転送するので、動画デコーダ25がデータ要求を出力したとき、そのデータ要求により要求された画像データを得るための取得対象画像データがキャッシュメモリ11内に格納されている確率(すなわち、キャッシュヒット率)を高め、外部メモリモジュール102およびキャッシュメモリ11間のデータ転送の回数を減らし、システムの効率を高めることができる。
<他の実施形態>
以上、この発明の一実施形態を説明したが、この発明には、他にも各種の実施形態が考えられる。例えば次の通りである。
以上、この発明の一実施形態を説明したが、この発明には、他にも各種の実施形態が考えられる。例えば次の通りである。
(1)上記実施形態において、メモリアクセス制御装置10を、動画デコーダ25に画像データを提供する手段として用いた。しかし、動画デコーダ以外の他の種類の画像処理部、例えば動画エンコーダに画像データを供給するための手段として、メモリアクセス制御装置10を使用してもよい。
(2)複数の取得対象画像データについて上記処理1を実行した結果、複数のマクロブロックの画像データの読み出しが必要になり、しかも、この読み出しの必要な複数のマクロブロックの画像データが外部メモリモジュール102内の連続したアドレスのエリアに格納されており、連続読み出しが可能であるような場合が起こり得る。そのような場合、連続読み出しが可能な複数のマクロブロックの画像データの外部メモリモジュール102からキャッシュメモリ11へのDMA転送を外部メモリI/F27に指示するようにデータ要求処理部121を構成してもよい。例えば動画デコーダ25が図2に示すマクロブロックMBxの圧縮符号化画像データの復号化を行う際、取得対象画像データであるマクロブロックMBa、MBb、MBc、MBdのうちマクロブロックMBcおよびMBdの画像データがキャッシュメモリ11に格納されておらず、外部メモリモジュール102から読み出す必要が生じたとする。その際、データ要求処理部121は、マクロブロックMBcの画像データとマクロブロックMBdの画像データが外部メモリモジュール102内の連続したアドレスのエリアに格納されている場合には、マクロッブロックMBcおよびMBdの画像データについてのDMA転送を外部メモリI/F27に指示するのである。このようにすることで、読み出し要求およびDMA転送の発生回数をさらに減らし、システムの効率を高めることができる。
100……動画デコードモジュール、101A,101B,101C……バス、21A,21B,21C……バスI/F、22……ホストI/F、24……ROM I/F、23……レジスタ群、25……動画デコーダ、26……アルファデータデコーダ、27……外部メモリI/F、102……外部メモリモジュール、10……メモリアクセス制御装置、11……キャッシュメモリ、12……キャッシュ制御部、121……データ要求処理部、122……キャッシュテーブル。
Claims (2)
- 1フレーム分の画像データを記憶する外部メモリから前記1フレームを区分したマクロブロック単位で画像データを読み出して、画像処理部から要求された画像データを構成し、前記画像処理部に供給するメモリアクセス制御装置であって、
各々1マクロブロック分の画像データを記憶可能な複数のキャッシュエリアを有するキャッシュメモリと、
前記複数のキャッシュエリアに各々対応付けられた複数のテーブルエリアを有し、各テーブルエリアに、対応するキャッシュエリアへのアクセス予定の回数をカウントするアクセス予定カウンタと、対応するキャッシュエリアに格納される1マクロブロック分の画像データのフレーム内アドレスとを格納するキャッシュテーブルと、
要求対象である画像データのフレーム内の占有領域の指定を含むデータ要求を前記画像処理部から順次受け取り、受け取ったデータ要求により要求された画像データを得るのに必要な1または複数マクロブロックの画像データを各々取得対象画像データとし、前記取得対象画像データを前記キャッシュメモリから取得して、前記データ要求により要求された画像データを生成して前記画像処理部に出力するデータ要求処理部とを具備し、
前記データ要求処理部は、前記取得対象画像データの各々について、
(1)当該取得対象画像データが前記キャッシュメモリに格納されておらず、当該取得対象画像データの前記キャッシュメモリへの転送を指令する読み出し要求を出力する場合に、前記キャッシュテーブルにおいてアクセス予定カウンタの値が「0」であるテーブルエリアの中の1つのテーブルエリアを更新対象テーブルエリアとして選択し、前記更新対象テーブルエリアに対応付けられたキャッシュエリアを当該取得対象画像データの転送先とし、当該取得対象画像データの前記外部メモリから当該キャッシュエリアへの転送を指令する読み出し要求を出力し、当該取得対象画像データのフレーム内アドレスを前記更新対象テーブルエリアに格納するとともに、前記更新対象テーブルエリアのアクセス予定カウンタを「1」だけ増加させ、
(2)当該取得対象画像データが前記キャッシュメモリに記憶されており、当該取得対象画像データについての読み出し要求を出力しない場合、または当該取得対象画像データについて読み出し要求が出力されている場合、前記キャッシュテーブルの各テーブルアリアのうち当該取得対象画像データのフレーム内アドレスを格納しているテーブルエリアのアクセス予定カウンタを「1」だけ増加させ、
前記データ要求処理部は、前記データ要求により要求された画像データを得るための1つのマクロブロックの画像データを前記キャッシュメモリの1つのキャッシュエリアから読み出し、前記データ要求により要求された画像データの生成に使用したとき、当該キャッシュエリアに対応付けられたテーブルエリアのアクセス予定カウンタを「1」だけ減少させることを特徴とするメモリアクセス制御装置。 - 1フレーム分の画像データを記憶する外部メモリから前記1フレームを区分したマクロブロック単位で画像データを読み出して、画像処理部から要求された画像データを構成し、前記画像処理部に供給するメモリアクセス制御装置であって、
各々1マクロブロック分の画像データを記憶可能な複数のキャッシュエリアを有するキャッシュメモリと、
前記複数のキャッシュエリアに各々対応付けられた複数のテーブルエリアを有し、各テーブルエリアに、対応するキャッシュエリアへのアクセス予定の回数をカウントするアクセス予定カウンタと、対応するキャッシュエリア内の画像データの有効性を示す有効性フラグと、対応するキャッシュエリアに格納される1マクロブロック分の画像データのフレーム内アドレスとを格納するキャッシュテーブルと、
要求対象である画像データのフレーム内の占有領域の指定を含むデータ要求を前記画像処理部から順次受け取り、受け取ったデータ要求により要求された画像データを得るのに必要な1または複数マクロブロックの画像データを各々取得対象画像データとし、前記取得対象画像データを前記キャッシュメモリから取得して、前記データ要求により要求された画像データを生成して前記画像処理部に出力するデータ要求処理部とを具備し、
前記データ要求処理部は、前記取得対象画像データの各々について、
(1)前記キャッシュテーブルに当該取得対象画像データのフレーム内アドレスと有効を示す有効性フラグを格納するテーブルエリアがなく、かつ、当該取得対象画像データのフレーム内アドレスと値が「1」以上のアクセス予定カウンタを格納するテーブルエリアがない場合、前記キャッシュテーブルにおいてアクセス予定カウンタの値が「0」であるテーブルエリアの中の1つのテーブルエリアを更新対象テーブルエリアとして選択し、当該取得対象画像データのフレーム内アドレスを前記更新対象テーブルエリアに格納するとともに、前記更新対象テーブルエリアのアクセス予定カウンタを「1」だけ増加させ、前記外部メモリから前記更新対象テーブルエリアに対応したキャッシュエリアへの当該取得対象画像データの転送を指令する読み出し要求を出力し、
(2)前記キャッシュテーブルの各テーブルアリアのうちアクセス予定カウンタの値が「1」以上であるテーブルエリアまたは有効を示す有効性フラグを格納しているテーブルエリアの中に、当該取得対象画像データのフレーム内アドレスを格納しているものがある場合、当該テーブルエリアにおけるアクセス予定カウンタを「1」だけ増加させ、
前記データ要求処理部は、前記データ要求により要求された画像データを得るための1つのマクロブロックの画像データを前記キャッシュメモリの1つのキャッシュエリアから読み出し、前記データ要求により要求された画像データの生成に使用したとき、当該キャッシュエリアに対応付けられたテーブルエリアのアクセス予定カウンタを「1」だけ減少させることを特徴とするメモリアクセス制御装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009247124A JP2011097198A (ja) | 2009-10-27 | 2009-10-27 | メモリアクセス制御装置 |
CN2010105261457A CN102055976A (zh) | 2009-10-27 | 2010-10-27 | 存储器存取控制设备及其方法 |
US12/912,921 US20110099340A1 (en) | 2009-10-27 | 2010-10-27 | Memory access control device and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009247124A JP2011097198A (ja) | 2009-10-27 | 2009-10-27 | メモリアクセス制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011097198A true JP2011097198A (ja) | 2011-05-12 |
Family
ID=43899357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009247124A Withdrawn JP2011097198A (ja) | 2009-10-27 | 2009-10-27 | メモリアクセス制御装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110099340A1 (ja) |
JP (1) | JP2011097198A (ja) |
CN (1) | CN102055976A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7406206B2 (ja) | 2020-04-28 | 2023-12-27 | 日本電信電話株式会社 | 参照画像キャッシュ、削除先決定方法及びコンピュータプログラム |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011097197A (ja) * | 2009-10-27 | 2011-05-12 | Yamaha Corp | メモリアクセス制御装置 |
CN102291584B (zh) * | 2011-09-01 | 2013-04-17 | 西安电子科技大学 | 帧内图像亮度块预测装置及方法 |
CN111666036B (zh) * | 2019-03-05 | 2022-04-22 | 华为技术有限公司 | 一种迁移数据的方法、装置及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6490652B1 (en) * | 1999-02-03 | 2002-12-03 | Ati Technologies Inc. | Method and apparatus for decoupled retrieval of cache miss data |
JP4180547B2 (ja) * | 2004-07-27 | 2008-11-12 | 富士通株式会社 | 動画像データ復号装置、および復号プログラム |
JP4535047B2 (ja) * | 2006-09-06 | 2010-09-01 | ソニー株式会社 | 画像データ処理方法、画像データ処理方法のプログラム、画像データ処理方法のプログラムを記録した記録媒体及び画像データ処理装置 |
JP4687729B2 (ja) * | 2008-03-04 | 2011-05-25 | 日本電気株式会社 | キャッシュメモリ及びベクトル処理装置並びにベクトルデータ整列方法 |
JP2011097197A (ja) * | 2009-10-27 | 2011-05-12 | Yamaha Corp | メモリアクセス制御装置 |
-
2009
- 2009-10-27 JP JP2009247124A patent/JP2011097198A/ja not_active Withdrawn
-
2010
- 2010-10-27 CN CN2010105261457A patent/CN102055976A/zh active Pending
- 2010-10-27 US US12/912,921 patent/US20110099340A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7406206B2 (ja) | 2020-04-28 | 2023-12-27 | 日本電信電話株式会社 | 参照画像キャッシュ、削除先決定方法及びコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20110099340A1 (en) | 2011-04-28 |
CN102055976A (zh) | 2011-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10057590B2 (en) | Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding | |
US20140205012A1 (en) | Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding | |
US20080285652A1 (en) | Apparatus and methods for optimization of image and motion picture memory access | |
US9762919B2 (en) | Chroma cache architecture in block processing pipelines | |
US8184689B2 (en) | Method video encoding and decoding preserving cache localities | |
US20050190976A1 (en) | Moving image encoding apparatus and moving image processing apparatus | |
JP5309700B2 (ja) | 動画像復号装置および符号化装置 | |
KR100596982B1 (ko) | 이중 계층 버스 구조, 이중 계층 버스 구조를 가진 시스템온 칩 시스템 및 시스템 온 칩 시스템의 버스 액세스 방법 | |
JP2011097198A (ja) | メモリアクセス制御装置 | |
JP3716441B2 (ja) | 画像デコーダ | |
JP2011097197A (ja) | メモリアクセス制御装置 | |
JP2014027462A (ja) | 画像符号化装置、画像符号化システム、画像符号化方法及びプログラム、画像復号装置、画像復号システム、画像復号方法及びプログラム | |
US10313683B2 (en) | Video encoder with context switching | |
JP3544524B2 (ja) | 画像処理装置 | |
US9363523B2 (en) | Method and apparatus for multi-core video decoder | |
JP4383367B2 (ja) | 動きベクトル検出装置 | |
JP2009130599A (ja) | 動画像復号装置 | |
JP2009152710A (ja) | 画像処理装置及び画像処理方法 | |
JP2009272948A (ja) | 動画像復号化装置及び動画像復号化方法 | |
JP5206070B2 (ja) | 復号装置および復号方法 | |
JP4461303B2 (ja) | 動画復号化装置および動画復号化方法 | |
JP2006115168A (ja) | 画像復号装置および画像表示装置 | |
JP2010041115A (ja) | 画像処理装置および画像処理方法 | |
JP5768631B2 (ja) | 動画像処理装置および動画像処理システム | |
JP2009100206A (ja) | 画像符号化データ復号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20130108 |