JP2008299438A - メモリ制御装置 - Google Patents
メモリ制御装置 Download PDFInfo
- Publication number
- JP2008299438A JP2008299438A JP2007142477A JP2007142477A JP2008299438A JP 2008299438 A JP2008299438 A JP 2008299438A JP 2007142477 A JP2007142477 A JP 2007142477A JP 2007142477 A JP2007142477 A JP 2007142477A JP 2008299438 A JP2008299438 A JP 2008299438A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- address
- image data
- image
- pixel
- 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.)
- Pending
Links
Images
Landscapes
- Image Input (AREA)
- Memory System (AREA)
Abstract
【課題】 DRAM等を利用して動画の圧縮符号化データの復号化処理を行う場合に、プリチャージサイクルの発生頻度を抑える。
【解決手段】 ライトアクセス制御部52およびリードアクセス制御部54は、アドレス変換処理を行う機能を有する。アドレス変換処理では、アクセス要求により指定された画像データの論理アドレスを画像メモリ11における当該画像データの記憶エリアを特定するメモリアドレスに変換する際、画面を所定の画素サイズの複数のブロックに分割した各ブロックについて、同一ブロック内の各画素の画像データの各論理アドレスを、ロウアドレスが同一であり、かつ、カラムアドレスが異なった複数のメモリアドレスに各々変換する変換ルールに従い、論理アドレスのメモリアドレスへの変換を行う。
【選択図】図1
【解決手段】 ライトアクセス制御部52およびリードアクセス制御部54は、アドレス変換処理を行う機能を有する。アドレス変換処理では、アクセス要求により指定された画像データの論理アドレスを画像メモリ11における当該画像データの記憶エリアを特定するメモリアドレスに変換する際、画面を所定の画素サイズの複数のブロックに分割した各ブロックについて、同一ブロック内の各画素の画像データの各論理アドレスを、ロウアドレスが同一であり、かつ、カラムアドレスが異なった複数のメモリアドレスに各々変換する変換ルールに従い、論理アドレスのメモリアドレスへの変換を行う。
【選択図】図1
Description
この発明は、メモリへのデータの書き込みまたはメモリからのデータの読み出しの制御を行うメモリ制御装置に係り、特にメモリを利用して動画の圧縮符号化データの復号化を行うデコーダ等に好適なメモリ制御装置に関する。
MPEG(Moving Picture Expert Group)などの動画圧縮データの復号化を行うデコーダは、復号結果である画像データを画像メモリに格納し、この画像メモリへのアクセスを行いつつ復号化処理を実行する。そして、DRAM(Dynamic Random Access Memory)は、安価で大容量のものを容易に構成することができるため、この復号化処理のための画像メモリとして用いられることが多い。この画像メモリを利用した復号化処理において、デコーダは、画面を分割したブロックなどの連続領域単位で、復号化された画像データの画像メモリへの書き込みや画像メモリ内の画像データの参照を連続的に行う。従って、復号化処理の効率を高めるためには、特に連続領域内の画像データについての連続的なアクセスを高速化することが望まれる。
特開2003−186740号公報
ところで、動画を再生する装置の中には、復号化により得られた画像データを画像メモリからフレームメモリに転送し、表示装置の垂直走査期間内に、このフレームメモリに記憶された一画面分の各画素の画像データをラスタスキャン順に読み出して表示装置に表示させる構成のものが多い。ここで、ラスタスキャン順とは、画面において、水平走査線上に並んだ画素の左端から右端に向けての水平走査と、走査対象である水平走査線を画面上方から画面下方に1本ずつシフトさせる垂直走査とを交互に繰り返した場合における画面内の各画素の走査順序をいう(以下、この明細書において同じ)。この種の動画再生装置では、ラスタスキャンに合わせた画像データの読み出し処理を容易に行うため、画像データをフレームメモリに記憶させる際のメモリアドレスとして、画面内の各画素にラスタスキャン順に割り当てられた論理アドレスを使用するものが一般的である。そして、この種の動画再生装置では、画像メモリからフレームメモリへの画像データの転送を容易にするため、画像メモリに画像データを記憶させる際にも、メモリアドレスとして、論理アドレスを用いるのが一般的である。しかし、動画の圧縮符号化データの復号化処理では、画面を分割したブロック単位で画像メモリへ画像データを連続的に書き込む処理や、あるサイズの矩形領域単位で画像メモリから画像データを連続的に読み出す処理が頻繁に発生する。これらの連続的な画像メモリへのアクセスにおいて、メモリアドレスとして論理アドレスを用いると、アクセスに用いる一連のメモリアドレスにおいてロウアドレスの変化する箇所が多数発生し、これによりプリチャージサイクルが発生し、画像データの効率的な書き込みや読み出しが妨げられるという問題があった。
この発明は、以上説明した事情に鑑みてなされたものであり、DRAM等のメモリを利用して動画の圧縮符号化データの復号化処理を行う場合にプリチャージサイクルの発生頻度を抑えて、効率的にメモリへのアクセスを行うことを可能にするメモリ制御装置を提供することを目的としている。
この発明は、メモリにおける画像データの書き込みまたは読み出しの制御を行うメモリ制御装置において、メモリに対する画像データの書き込みまたは前記メモリからの画像データの読み出しを要求する情報であって、書き込み対象または読み出し対象である画像データの論理アドレスを含むアクセス要求を受信するアクセス要求受信手段と、前記アクセス要求により指定された画像データの論理アドレスを前記メモリにおける当該画像データの記憶エリアを特定するメモリアドレスに変換して前記メモリに供給する手段であって、画面を所定の画素サイズの複数のブロックに分割した各ブロックについて、同一ブロック内の各画素の画像データの各論理アドレスを、ロウアドレスが同一であり、かつ、カラムアドレスが異なった複数のメモリアドレスに各々変換する変換ルールに従い、前記論理アドレスのメモリアドレスへの変換を行うアドレス変換手段とを具備することを特徴とするメモリ制御装置を提供する。
かかる発明によれば、同一ブロック内の複数の画素の画像データをメモリに書き込む場合またはメモリから読み出す場合に、プリチャージサイクルを発生させることなく、複数の画素の画像データの連続書き込みまたは連続読み出しを行うことができる。
なお、DRAMのプリチャージサイクルの発生への対策を図った技術的手段としては、いわゆるバンクインタリーブ技術により、プリチャージサイクルを隠蔽し、見掛け上の画像メモリのアクセス時間の短縮化を図る技術がある(例えば特許文献1参照)。
しかし、本発明は、このようなバンクインタリーブ技術によりプリチャージサイクルの隠蔽を図るものではなく、連続アクセスの途中において論理アドレスをプリチャージサイクルを発生させない一連のメモリアドレスに変換することにより、ブロック内の画像データへの連続アクセスの効率化を図るものであり、この点において特許文献1に開示の技術とは根本的に異なる。
かかる発明によれば、同一ブロック内の複数の画素の画像データをメモリに書き込む場合またはメモリから読み出す場合に、プリチャージサイクルを発生させることなく、複数の画素の画像データの連続書き込みまたは連続読み出しを行うことができる。
なお、DRAMのプリチャージサイクルの発生への対策を図った技術的手段としては、いわゆるバンクインタリーブ技術により、プリチャージサイクルを隠蔽し、見掛け上の画像メモリのアクセス時間の短縮化を図る技術がある(例えば特許文献1参照)。
しかし、本発明は、このようなバンクインタリーブ技術によりプリチャージサイクルの隠蔽を図るものではなく、連続アクセスの途中において論理アドレスをプリチャージサイクルを発生させない一連のメモリアドレスに変換することにより、ブロック内の画像データへの連続アクセスの効率化を図るものであり、この点において特許文献1に開示の技術とは根本的に異なる。
以下、図面を参照し、この発明の実施の形態を説明する。
図1はこの発明の一実施形態であるメモリ制御装置5を備えた画像処理装置の構成を示すブロック図である。この画像処理装置は、例えばパチンコなどのゲーム機における画像処理を行う装置である。図示のように、画像処理装置は、ホストCPU1と、圧縮動画ROM2と、復号化部3と、描画部4と、メモリ制御装置5と、フレームメモリ6と、DMAC(Direct Memory Access Controller)7と、これらを相互に接続するバス8とを有している。また、画像処理装置は、メモリ制御装置5を介してバス8に接続された画像メモリ11と、液晶表示パネルなどにより構成された表示部12と、所定時間長のフレーム周期毎にフレームメモリ6に記憶された画像データを表示部12に表示させる表示制御部13とを有する。
図1はこの発明の一実施形態であるメモリ制御装置5を備えた画像処理装置の構成を示すブロック図である。この画像処理装置は、例えばパチンコなどのゲーム機における画像処理を行う装置である。図示のように、画像処理装置は、ホストCPU1と、圧縮動画ROM2と、復号化部3と、描画部4と、メモリ制御装置5と、フレームメモリ6と、DMAC(Direct Memory Access Controller)7と、これらを相互に接続するバス8とを有している。また、画像処理装置は、メモリ制御装置5を介してバス8に接続された画像メモリ11と、液晶表示パネルなどにより構成された表示部12と、所定時間長のフレーム周期毎にフレームメモリ6に記憶された画像データを表示部12に表示させる表示制御部13とを有する。
ホストCPU1は、この画像処理装置全体の制御中枢であり、ゲームの進行過程において発生する各種のイベントに応じて、各種の動画や静止画の画像データを発生させ、表示部12に表示させるための制御を行う。
圧縮動画ROM2には、各種のイベンドに応じて再生する各種の動画シーンの圧縮符号化データが記憶されている。これらの圧縮符号化データは、動画シーンを構成する一連のフレームの画像データに対し、動き補償を伴った圧縮符号化処理を施すことにより得られたデータである。以下、この圧縮符号化処理の概略を説明する。なお、符号化対象である1つの画像フレームは、Y、U、Vの3つのプレーンからなり、圧縮符号化処理は、これらの3つのプレーンを対象として行われる。しかし、いずれのプレーンについても、符号化処理の内容に本質的な違いはないので、以下では、Yプレーンに関する処理のみについて述べる。後述する復号化処理に関しても同様である。この明細書では、Yプレーンの画像データの処理のみについて説明し、U、Vの各プレーンについては説明を省略する。
まず、圧縮符号化処理では、1つの動画シーンを構成する複数の画像フレームの中からフレーム内符号化処理の対象となる1または複数のキーフレームが選択され、キーフレーム以外の画像フレームは、フレーム間符号化処理の対象であるインターフレームとされる。
フレーム内符号化処理では、キーフレームが16×16画素の矩形のブロックに分割され、ブロック単位で、ブロック内の16×16画素の画像データにDCT(Discrete Cosine Transform;離散コサイン変換)等の直交変換が施され、周波数領域の表現形式で画像を表現した圧縮符号化データ(以下、便宜上、キーフレームデータという。)とされる。
一方、フレーム間符号化処理では、インターフレームが16×16画素の矩形のブロックに分割され、ブロック単位で、動き予測およびフレーム間差分符号化処理が行われる。さらに詳述すると、動き予測では、圧縮符号化対象のインターフレームの直前のフレーム(キーフレームまたはインターフレーム)が参照フレームとされ、圧縮符号化対象のインターフレームを構成する16×16画素のブロック毎に、当該ブロックに最も類似した画像を持った16×16画素の矩形領域(以下、便宜上、参照ブロックという)が求められ、画面内における当該ブロックと参照ブロックとの間の相対的な移動ベクトルである動きベクトルが求められる。
また、フレーム間差分符号化処理では、圧縮符号化対象のインターフレームを構成するブロック毎に、当該ブロックとその参照ブロックとの差分画像が求められ、この差分画像に対して、DCT等の直交変換が施され、周波数領域の表現形式で差分画像を表現した圧縮符号化データとされる。そして、各ブロックについて得られた動きベクトルと周波数表現の圧縮符号化データとによりインターフレームの圧縮符号化データ(以下、便宜上、インターフレームデータという。)が構成される。
圧縮動画ROM2に記憶された圧縮符号化データは、以上のようにして得られたキーフレームデータとインターフレームデータとからなる時系列データである。
復号化部3は、ホストCPU1からの指示に従い、圧縮動画ROM2から動画の圧縮符号化データを読み出し、その復号化を行う装置である。画像メモリ11は、復号結果である画像データを記憶するためのメモリであり、メモリ制御装置5を介してバス8に接続されている。
本実施形態における画像メモリ11は、SDRAM(Synchronous Dynamic Random
Access Memory)であり、いわゆるページモードでのブロック転送が可能な構成となっている。すなわち、本実施形態では、ロウアドレスが同一であり、かつ、カラムアドレスが異なっている複数のメモリアドレスを対象として画像メモリ11に対するデータ書き込みや画像メモリ11からのデータ読み出しを行う場合には、ロウアドレスを画像メモリ11の内部のラッチに保持させて、カラムアドレスのみを切り換え、プリチャージサイクルを発生させることなく、一連のデータの連続書き込みや連続読み出しを行うことが可能である。
Access Memory)であり、いわゆるページモードでのブロック転送が可能な構成となっている。すなわち、本実施形態では、ロウアドレスが同一であり、かつ、カラムアドレスが異なっている複数のメモリアドレスを対象として画像メモリ11に対するデータ書き込みや画像メモリ11からのデータ読み出しを行う場合には、ロウアドレスを画像メモリ11の内部のラッチに保持させて、カラムアドレスのみを切り換え、プリチャージサイクルを発生させることなく、一連のデータの連続書き込みや連続読み出しを行うことが可能である。
復号化部3は、ブロック単位で、動画の圧縮符号化データの復号化を行い、復号化により得られた画像データをメモリ制御装置5を介して画像メモリ11に格納する。また、復号化部3は、インターフレームデータの復号化処理を行う場合には、復号化対象フレームの直前のフレームを参照フレームとし、画像メモリ11に記憶された参照フレームの画像データを参照する。
さらに詳述すると、復号化対象フレームのあるブロックの復号化を行う場合、その復号化対象ブロックに対応付けられた動きベクトルを用いて、その復号化対象ブロックが圧縮符号化された際に用いられた参照フレーム内の参照ブロックを求め、この参照ブロックを上下左右方向に各1画素ずつ拡張した18×18画素の参照矩形領域を求める。そして、参照フレームにおける参照矩形領域内の画素の画像データを画像メモリ11からメモリ制御装置5を介して読み出し、復号化処理に用いるのである。
ここで、16×16画素の参照ブロックではなく、それより大きい18×18画素の参照矩形領域の画像データを参照するのは、本実施形態における復号化部3は、復号化処理の際に、18×18画素の参照矩形領域の画像データにフィルタ処理を施して、ブロック境界付近における画質の改善された16×16画素の参照ブロックの画像データを生成し、これを用いて復号化対象ブロックの画像データを生成するからである。
以上説明した復号化処理の実行過程における復号化部3および画像メモリ11間の画像データの転送は、バス8を介したDMA(Direct Memory Access)転送により行われる。DMAC7は、その際のDMA転送の制御を行う。
描画部4は、ホストCPU1から与えられる指示に従い、画像メモリ11内の復号化済みの画像データ(動画)をメモリ制御装置5を介して読み出し、この画像データをフレームメモリ6内の表示対象の画像データに反映させる描画処理を行う。この描画処理は、画像メモリ11から読み出した画像データ(動画)の拡大、縮小、回転等の処理や、この処理を経た画像データ(動画)と背景画像とのブレンディングなどの処理を含む。
メモリ制御装置5は、バス8に出力された画像データを画像メモリ11に書き込む際の書き込み制御および画像メモリ11から画像データを読み出してバス8に出力する際の読み出し制御を行う装置である。本実施形態の特徴は、このメモリ制御装置5の構成および機能にある。
図2に示すように、本実施形態におけるメモリ制御装置5は、アクセス要求受信部51と、ライトアクセス制御部52と、ライトバッファ53と、リードアクセス制御部54と、リードバッファ55とを有する。
上述した通り、復号化部3が画像メモリ11を利用して復号化処理を行う過程において、DMAC7は、復号化部3および画像メモリ11間の画像データのDMA転送の制御を行う。その際に、DMAC7は、画像メモリ11に対する画像データの書き込みまたは画像メモリ11からの画像データの読み出しを要求するアクセス要求をアクセス要求受信部51に与える。このアクセス要求は、DMA転送の対象である画像データの帰属先であるフレームおよびそのフレーム内における画像データの所在位置を示す情報を含む。アクセス要求受信部51は、画像データの書き込みを要求するアクセス要求を受信した場合には、そのアクセス要求をライトアクセス制御部52へ、画像データの読み出しを要求するアクセス要求を受信した場合には、そのアクセス要求をリードアクセス制御部54へ供給する。
ライトアクセス制御部52は、アクセス要求受信部51を介して与えられるアクセス要求(画像データの書き込み要求)に従って、バス8に出力された画像データをライトバッファ53に一旦書き込み、このライトバッファ53に記憶された画像データを画像メモリ11に書き込む制御を行う。また、リードアクセス制御部54は、アクセス要求受信部51を介して与えられるアクセス要求(画像データの読み出し要求)に従って、画像メモリ11から画像データを読み出してリードバッファ55に一旦書き込み、このリードバッファ55に記憶された画像データをバス8に出力させる制御を行う。
本実施形態において、復号化部3や描画部4等のバス8に接続された各装置は、画像データを特定するアドレスとして、論理アドレスADRSを使用する。この論理アドレスADRSは、次式に示すように、画面アドレスBASEと、画面内画素アドレスADRS0との和により与えられる。
ADRS=BASE+ADRS0 ……(1)
ADRS=BASE+ADRS0 ……(1)
ここで、画面アドレスBASEは、画面を特定するアドレスであり、より具体的には、図3(a)に示すように、その画面の最も左上に位置する画素の論理アドレスを示している。また、画面内画素アドレスADRS0は、1つの画面内において通用する各画素の相対的な論理アドレスである。図3(a)に示すように、ある画素の画面内画素アドレスADRS0は、その画面の最も左上の画素からラスタスキャン順に画素を数えていった場合において、画面の最も左上の画素から何画素だけ後にその画素があるかを示す。
そして、復号化部3や描画部4等のバス8に接続された各装置は、画像データをバス8を介して他の装置(例えばフレームメモリ6)に転送するときには、その画像データを特定する論理アドレスADRSをバス8に出力し、他の装置からバス8を介して画像データを受け取るときには、その画像データを特定する論理アドレスADRSをバス8に出力する。
一方、本実施形において、画面を構成する各画素の画像データを記憶させる画像メモリ11内の各記憶エリアのメモリアドレスadrs(ロウアドレス+カラムアドレス)は、次のように決定されている。すなわち、本実施形態では、画面を16×16画素の複数のブロックに分割した各ブロックについて、1ブロック分の全画素の画像データの画像メモリ11への連続的な書き込みまたは1ブロック分の全画素の画像データの画像メモリ11からの連続的な読み出しを行う場合に、プリチャージサイクルを発生させることなく連続書き込みまたは連続読み出しを行うことができるように、画面内の各画素の画像データを記憶する画像メモリ11内の記憶エリアのメモリアドレスadrsが決定されている。より具体的には、本実施形態では、図3(b)に示すように、1つのブロック内の各画素の画像データは、画像メモリ11内の記憶エリアのうち、ロウアドレスが同一であり、かつ、カラムアドレスが連続した16×16個のメモリアドレスadrsに対応した各記憶エリアに記憶される。
このように本実施形態では、同じ画素の画像データを特定するアドレスであっても、バス8に接続された装置間でその画像データを特定するのに用いる論理アドレスADRSと、その画像データを記憶する画像メモリ11の記憶エリアのメモリアドレスadrsとでは、一般的に値が異なる。そこで、本実施形態では、画像データの書き込みまたは読み出しが行われる際に、その対象である画像データの論理アドレスADRSをメモリアドレスadrsに変換して画像メモリ11に供給するアドレス変換処理を実行する機能がライトアクセス制御部52およびリードアクセス制御部54に設けられている。
このライトアクセス制御部52およびリードアクセス制御部54におけるアドレス変換処理では、画面を16×16画素の複数のブロックに分割した各ブロックについて、同一ブロック内の各画素の画像データの各論理アドレスADRSを、プリチャージサイクルを発生させることなく画像メモリ11への連続アクセスを行うことが可能な複数のメモリアドレスadrsに各々変換する変換ルールに従い、論理アドレスADRSのメモリアドレスadrsへの変換を行う。より具体的には、この変換ルールでは、同一ブロック内の各画素の論理アドレスADRSをロウアドレスが同一であり、カラムアドレスが連続した複数のメモリアドレスadrsに各々変換する。従って、同一ブロック内の複数画素を対象として画像データの画像メモリ11への書き込みまたは画像メモリ11からの画像データの読み出しの際には、ライトアクセス制御部52またはリードアクセス制御部54が実行するアドレス変換処理により、それらの画素の論理アドレスADRSがプリチャージサイクルを発生させない複数のメモリアドレスadrsに変換されて画像メモリ11に供給される。従って、効率的な画像メモリ11のアクセスが実現される。
また、本実施形態において、リードアクセス制御部54には、アドレス変換処理を実行する機能の他に、アクセス順序制御処理を実行する機能が設けられている。以下、このアクセス順序制御処理の概略について説明する。
まず、復号化部3がインターフレームデータの復号化処理を行う場合には、画像メモリ11に記憶された参照フレームの画像データのうち、18×18画素の参照矩形領域の画像データを読み出す。ここで、復号対象フレームと参照フレームとの間には一般的に動きがあり、参照フレーム内の参照矩形領域は、復号対象フレームにおける16×16画素の復号対象ブロックの移動前の画像の領域である。また、参照矩形領域のサイズは18×18画素であり、ブロックのサイズよりも大きい。このため、参照矩形領域は、画面を16×16画素のブロックに区切るブロック境界を跨ぐこととなる。
このように参照矩形領域がブロック境界を跨いでいる状態において、参照矩形領域内の各画素をラスタスキャン順に選択して、その画素の論理アドレスADRSをメモリアドレスadrsに変換して画像メモリ11に供給したとすると、アドレス変換の対象である画素がブロック境界を跨ぐ度に、変換後のメモリアドレスadrsのロウアドレスが変化し、プリチャージサイルスが発生する。そこで、本実施形態において、リードアクセス制御部54は、アドレス変換処理とともにアクセス順序制御処理を実行する。このアクセス順序制御処理は、複数のブロックに跨る参照矩形領域内の画像データを対象とした画像メモリ11へのアクセス要求が発生した場合、当該参照矩形領域内の画素を同一のブロックに属する画素のグループに分割し、各グループを順次選択して、グループ内の画素の画像データの論理アドレスADRSをアドレス変換処理に引き渡す処理である。ここで、アドレス変換処理は、アクセス順序制御処理から引き渡された同一グループに属する各画素の論理アドレスADRSを、プリチャージサイクルを発生させないメモリアドレスadrsに各々変換する。従って、参照矩形領域内の各画素をラスタスキャン順に選択してアドレス変換を行う場合に比べて、プリチャージサイクルの発生頻度を減らすことができる。
次に、図4(a)、(b)および(c)は、ライトアクセス制御部52およびリードアクセス制御部54が行うアドレス変換処理の内容を示す図である。また、図5は、復号化部3がインターフレームデータの復号化処理を行っている場合における復号化部3および画像メモリ11間の画像データの転送態様を例示する図である。以下、これらの図を参照し、本実施形態の動作を説明する。
ホストCPU1は、動画の圧縮符号化データの復号化処理を復号化部3に実行させる際、その圧縮符号化データの圧縮動画ROM2における記憶エリアを復号化部3に通知する。また、その際にホストCPU1は、復号化処理により得られた画像データを取り扱う復号化部3やメモリ制御装置5等の各装置に対し、現在の復号化対象フレーム、現在の復号化対象フレームの復号化処理において参照する参照フレーム、参照フレームとしての役割を終え、描画部4によってフレームメモリ6に転送されるのを待つ描画待ちフレーム等の各フレームについて、各々を特定する論理アドレスADRSの初期値である画面アドレスBASEを通知する。また、ホストCPU1は、復号化対象フレーム、参照フレーム、描画待ちフレーム等の各フレームについて、画像メモリ11内においてそのフレームの画像データを記憶するのに用いる一連の記憶エリアのうち先頭の記憶エリアのメモリアドレスである格納開始アドレスbaseをメモリ制御装置5に通知する。さらにホストCPU1は、各フレームの水平方向の画面サイズを画素数により表した値Strideをメモリ制御装置5に通知する。
復号化部3は、16×16画素のブロック単位で、キーフレームデータまたはインターフレームデータの復号化処理を行い、16×16画素の画像データを生成する。そして、1ブロック分の画像データが得られる都度、DMAC7に画像メモリ11へのDMA転送指令を送る。このDMA転送指令は、転送対象である画像データの論理アドレスADRS、具体的には復号化対象フレームの画面アドレスBASEと、転送対象である1ブロック分の画像データのうち代表的なもの(例えばブロックの最も左上の画素)の画面内画素アドレスADRS0を含むとともに、転送対象である画像データのブロックサイズ(この例の場合、16画素)を含む。
DMAC7は、DMA転送指令を受け取ると、そのDMA転送指令をアクセス要求としてメモリ制御装置5のアクセス要求受信部51に与える。メモリ制御装置5のライトアクセス制御部52は、アクセス要求受信部51が受信したアクセス要求に含まれる情報に基づき、転送対象である1ブロック分の画素の画像データの論理アドレスADRSを全て求め、それらの各論理アドレスADRSをメモリアドレスadrsに変換するアドレス変換処理を実行する。一方、DMAC7は、メモリ制御装置5を介した復号化部3から画像メモリ11への画像データのDMA転送を開始させる。このDMA転送は、画像データの画像メモリ11への書き込みに歩調を合わせて、1画素ずつ行われる。さらに詳述すると、ライトアクセス制御部52は、ライトバッファ53に空きが発生する度に、DMAC7にデータ要求を送る。DMAC7は、このデータ要求に応じて、1画素分の画像データを復号化部3からバス8に出力させる。ライトアクセス制御部52は、この画像データをライトバッファ53に書き込む。そして、ライトバッファ53から画像データを取り出して画像メモリ11に与えるとともに、この画像データのアドレス変換後のメモリアドレスadrsを画像メモリ11に与え、画像データを画像メモリ11に書き込む。このようにしてライトバッファ53に空きが生じると、ライトアクセス制御部52は、上述のようにデータ要求をDMAC7に送るのである(以上、図5参照)。
ライトアクセス制御部52が実行するアドレス変換処理の内容は次の通りである。まず、アドレス変換処理では、論理アドレスADRSにおける画面内画素アドレスADRS0と、水平方向の画面サイズStrideを用いて、次式の演算を行い、画面内ブロックアドレスYを求める。
Y=Int[ADRS0/(Stride・16)]・16 ……(2)
Y=Int[ADRS0/(Stride・16)]・16 ……(2)
上記式(2)において、Int[]は、[]内の数値の整数部を選択する演算子である。そして、Int[ADRS0/(Stride・16)]は、画面内において、16×16画素のブロックを水平方向に並べたストライドが、画面内画素アドレスADRS0により指定される画素の上方に何本あるかを示している。従って、画面内ブロックアドレスYは、図4(a)に示すように、画面内画素アドレスADRS0により指定される画素の上方にある0、1または複数本のストライドの垂直方向の画素数を示す値となる。そして、この画面内ブロックアドレスYは、図4(c)に示すように、画面を16×16画素のブロックに区切った場合において、画面内画素アドレスADRS0により指定される画素が属するブロックの上端の画素の垂直方向の位置を画素数により表した値となる。
次にアドレス変換処理では、次式に従い、値ADRS1を求める。
ADRS1=ADRS0−Y・Stride ……(3)
ADRS1=ADRS0−Y・Stride ……(3)
上記式(3)において、Y・Strideは、画面内画素アドレスADRS0により指定される画素の上方にある0、1または複数本のストライドの全画素数を示す。従って、値ADRS1は、図4(a)に示すように、この0、1または複数本のストライドの直下の水平走査線上における最も左端の画素から画面内画素アドレスADRS0により指定される画素までの画素数を示す値となる。
次にアドレス変換処理では、次式に従い、ブロック内画素アドレスyを求める。
y=Int[ADRS1/Stride] ……(4)
このブロック内画素アドレスyは、図4(a)に示すように、画面内画素アドレスADRS0により指定される画素の上方にある0、1または複数本のストライドの直下の水平走査線から画面内画素アドレスADRS0により指定される画素が属する水平走査線の直前の水平走査線までの各水平走査線の本数を示す値となる。そして、このブロック内画素アドレスyは、図4(c)に示すように、画面を16×16画素のブロックに区切った場合において、画面内画素アドレスADRS0により指定される画素のブロック内における垂直方向の位置を画素数により表した値となる。
y=Int[ADRS1/Stride] ……(4)
このブロック内画素アドレスyは、図4(a)に示すように、画面内画素アドレスADRS0により指定される画素の上方にある0、1または複数本のストライドの直下の水平走査線から画面内画素アドレスADRS0により指定される画素が属する水平走査線の直前の水平走査線までの各水平走査線の本数を示す値となる。そして、このブロック内画素アドレスyは、図4(c)に示すように、画面を16×16画素のブロックに区切った場合において、画面内画素アドレスADRS0により指定される画素のブロック内における垂直方向の位置を画素数により表した値となる。
次にアドレス変換処理では、次式に従い、値ADRS2を求める。
ADRS2=ADRS1−y・Stride ……(5)
ADRS2=ADRS1−y・Stride ……(5)
上記式(5)において、y・Strideは、0、1または複数本のストライドの直下の水平走査線から画面内画素アドレスADRS0により指定される画素が属する水平走査線の直前の水平走査線までの各水平走査線上にある画素の総数である。従って、上記式(5)における値ADRS2は、画面内画素アドレスADRS0により指定される画素が、その画素が属する水平走査線上において、左端から何画素目にあるかを示す値となる。
次にアドレス変換処理では、次式に従い、画面内ブロックアドレスXを求める。
X=Int[ADRS2/16]・16 ……(6)
X=Int[ADRS2/16]・16 ……(6)
上記式(6)において、Int[ADRS2/16]は、画面内において、画面内画素アドレスADRS0により指定される画素の左側に16×16画素のブロックが何個並んでいるかを示す値となる。従って、上記式(6)における画面内ブロックアドレスXは、図4(c)に示すように、画面を16×16画素のブロックに区切った場合において、画面内画素アドレスADRS0により指定される画素が属するブロックの左端の画素の水平方向の位置を画素数により表した値となる。
次にアドレス変換処理では、次式に従い、値xを求める。
x=ADRS2−X ……(7)
x=ADRS2−X ……(7)
上記式(7)において、既に述べたように、値ADRS2は、画面内画素アドレスADRS0により指定される画素が、その画素が属する水平走査線上において、左端から何画素目にあるかを示している。従って、上記式(7)における値xは、図4(c)に示すように、画面を16×16画素のブロックに区切った場合において、画面内画素アドレスADRS0により指定される画素がブロック内における水平方向の位置を画素数により表した値となる。
そして、アドレス変換処理では、以上のようにして算出された値Y、X、yおよびxを用いて、次式(8)の演算を行い、画面内相対メモリアドレスadrs0を求める。この画面内相対メモリアドレスadrs0は、画面内の画素のメモリアドレスadrsを、その画面の格納開始アドレスbaseを基準とする相対アドレスとして表したものである。そして、アドレス変換処理では、この画面内相対メモリアドレスadrs0とホストCPU1から通知された格納開始アドレスbaseとを用いて、次式(9)の演算を行い、論理アドレスADRS=BASE+ADRS0により指定された画像データを記憶する画像メモリ11内の記憶エリアのメモリアドレスadrsを算出する。
adrs0=Y・Stride+X・16+y・16+x ……(8)
adrs=base+adrs0 ……(9)
adrs0=Y・Stride+X・16+y・16+x ……(8)
adrs=base+adrs0 ……(9)
本実施形態におけるアドレス変換処理では、上記式(8)および(9)におけるbase+Y・Stride+X・16をメモリアドレスのロウアドレスとし、y・16+xをメモリアドレスのカラムアドレスとする。そして、アドレス変換処理では、処理により得られたカラムアドレスは全て画像メモリ11に出力するが、ロウアドレスについては、前回得られたロウアドレスと異なるロウアドレスが得られた場合に限って画像メモリ11に出力する。
ここで、ロウアドレスを決定するYおよびXは、図4(c)に示すように、論理アドレスADRS=BASE+ADRS0により指定される画素が属するブロックの画面内における垂直方向の位置および水平方向の位置を各々画素数により表した値となる。従って、同一ブロック内の画素であれば、それらの画素の論理アドレスADRSから算出されるロウアドレスbase+Y・Stride+X・16は同一の値となる。一方、yおよびxは、ブロック内の画素の垂直方向の位置および水平方向の位置を各々画素数により表した値であるから、同一ブロック内においてラスタスキャン順に並んだ各画素の論理アドレスADRSから算出されるカラムアドレスy・16+xは連続した値となる。
本実施形態において、復号化部3から画像メモリ11への画像データのDMA転送がブロック単位で行われる際、ライトアクセス制御部52は、以上説明したアドレス変換処理をそのブロック内の画素の論理アドレスに施し、ロウアドレスが同一であり、カラムアドレスが連続した複数のメモリアドレスadrsを発生する。そして、発生した一連のメモリアドレスadrsを画像メモリ11に順次供給するとともに、これに同期させて、ブロック内の各画素の画像データをライトバッファ53を介して画像メモリ11に順次供給する(図5参照)。従って、プリチャージサイクルを発生させることなく、1ブロック分の画素の画像データを画像メモリ11に書き込むことができる。
次に、復号化部3がインターフレームデータの復号化処理を実行する過程において、画像メモリ11に記憶された参照フレームの画像データのうち参照矩形領域の画像データを参照する場合における画像データの転送動作について説明する。
まず、復号化部3は、参照矩形領域の画像データを画像メモリ11から復号化部3にDMA転送させるためのDMA転送指令をDMAC7に送る。このDMA転送指令は、転送対象である画像データの論理アドレスADRS、具体的には参照フレームの画面アドレスBASEと、転送対象である参照矩形領域内の画像データのうち代表的なもの(例えば参照矩形領域の最も左上の画素)の画面内画素アドレスADRS0を含むとともに、転送対象である画像データのブロックサイズ(この例の場合、18画素)を含む。
DMAC7は、DMA転送指令を受け取ると、そのDMA転送指令をアクセス要求としてメモリ制御装置5のアクセス要求受信部51に与える。そして、DMAC7は、以下説明するリードアクセス制御部54の処理により、参照矩形領域内の全ての画素の画像データが画像メモリ11から読み出されてリードバッファ55内に蓄積されるのを待つ。
まず、リードアクセス制御部54は、アクセス順序制御処理を実行する。このアクセス順序制御処理では、アクセス要求受信部51が受信したアクセス要求に含まれる情報に基づき、転送対象である画像データが属する参照矩形領域を求め、この参照矩形領域内の画素を同一のブロックに属する画素のグループに分割する。図5に示す例では、参照矩形領域が4つのグループS1、S2、S3およびS4に分割されている。そして、アクセス順序制御処理では、各グループS1、S2、S3およびS4を順次選択する。そして、1つのグループを選択すると、そのグループ内の各画素の論理アドレスADRSを求め、それらの論理アドレスADRSをラスタスキャン順(すなわち、論理アドレス順)にアドレス変換処理に引き渡す。
アドレス変換処理では、アクセス順序制御処理から引き渡された論理アドレスADRSのメモリアドレスadrsへの変換およびメモリアドレスadrsの画像メモリ11を行い、画像メモリ11から画像データを読み出してリードバッファ55内に蓄積させる。この場合のアドレス変換処理の内容は、既に図4を参照して説明した通りである。
図5には、グループS1、S2、S3、S4の順に、グループの選択、選択したグループ内の画素についての論理アドレスからメモリアドレスへのアドレス変換およびメモリアドレスを用いた画像データの読み出しが行われ、各グループに対応した画像データがリードバッファ55内に蓄積される様子が例示されている。
このようにして参照矩形領域内の全画素の画像データがリードバッファ55内に蓄積されると、リードアクセス制御部54は、蓄積完了の報告をDMAC7に送る。これによりDMAC7は、リードバッファ55内の参照矩形領域内の画素の画像データを例えば論理アドレス順(参照矩形領域内におけるラスタスキャン順)に復号化部3にDMA転送する。この参照矩形領域内の画素の画像データを受け取った復号化部3は、これを用いてインターフレームデータの復号化処理に実行するのである。
以上の処理において、グループS1、S2、S3、S4の各々に着目すると、1つのグループ内の各画素は、同一のブロック内に属するので、同グループに属する各画素の論理アドレスADRSはプリチャージサイクルを発生させないメモリアドレスadrsに各々変換される。従って、参照矩形領域内の各画素をラスタスキャン順に選択してアドレス変換を行う場合に比べて、プリチャージサイクルの発生頻度を減らすことができる。
以上説明した例では、参照矩形領域は、4つのグループに分割されたが、本実施形態において参照矩形領域は、18×18画素のサイズを有するため、図6に例示するように、最大9個のグループSA1、SA2、SA3、SA4、SA5、SA6、SA7、SA8およびSA9に分割される可能性がある。図6において、“A5BF”等の16進データは、参照矩形領域内の18×18の各画素の論理アドレスADRSのうちの画面内画素アドレスADRS0を示している。図6に示すように、同一水平走査線上に並んだ連続した画素の画面内画素アドレスADRS0は、連続した値となっているが、水平走査線が異なる画素間では、画面内画素アドレスADRS0は不連続になっている。
図6に示す例において、アクセス順序制御処理では、まず、グループSA1を選択し、同グループに属する1個の画素の論理アドレスADRSをアドレス変換処理に引き渡す。次にグループSA2を選択し、水平方向に並んだ16個の画素の論理アドレスADRSをアドレス変換処理に引き渡す。次にグループSA3を選択し、同グループに属する1個の画素の論理アドレスADRSをアドレス変換処理に引き渡す。次にグループSA4を選択し、垂直方向に並んだ16個の画素の論理アドレスADRSをアドレス変換処理に引き渡す。次にグループSA5を選択し、同グループ内の16×16個の画素をラスタスキャン順に選択し、選択した論理アドレスADRSをアドレス変換処理に引き渡す。次にグループSA6を選択し、垂直方向に並んだ16個の画素の論理アドレスADRSをアドレス変換処理に引き渡す。次にグループSA7を選択し、同グループに属する1個の画素の論理アドレスADRSをアドレス変換処理に引き渡す。次にグループSA8を選択し、水平方向に並んだ16個の画素の論理アドレスADRSをアドレス変換処理に引き渡す。次にグループSA9を選択し、同グループに属する1個の画素の論理アドレスADRSをアドレス変換処理に引き渡す。
アドレス変換処理では、このようにしてアクセス順序制御処理から引き渡される論理アドレスADRSをメモリアドレスadrsに変換する。図7には、このアドレス変換処理における変換前の論理アドレスADRSにおける画面内画素アドレスADRS0と、変換後のメモリアドレスadrsにおける画面内相対メモリアドレスadrs0とが、変換順に示されている。この図7に示す例において、画面内相対メモリアドレスadrs0は、4バイトのアドレスであり、上位2バイトがロウアドレスの下位バイト、下位2バイトがカラムアドレスとなっている。図7に示すように、各グループの変換後のメモリアドレスadrsは、同一グループ内では、同一ロウアドレスを有し、かつ、カラムアドレスは連続したアドレスとなる。従って、同一グループについては、ロウアドレスが変化しないので、プリチャージサイクルを発生させることなく、各画素の画像データを連続的に画像メモリ11から読み出すことができる。
以上、この発明の一実施形態について説明したが、この発明にはこれ以外にも他の実施形態が考えられる。例えば次の通りである。
(1)上記実施形態では、画像メモリ11としてSDRAMを用いたが、画像メモリ11はSDRAM以外のDRAMであってもよい。
(2)上記実施形態では、16×16画素のブロック単位で、画像メモリ11に対する連続アクセスを行ったが、複数ブロックからなるマクロブロック単位で、画像メモリ11に対する連続アクセスを行ってもよい。その場合に、マクロブロック単位で、同一マクロブロック内の画素の画像データの論理アドレスADRSが同じロウアドレスのメモリアドレスadrsに変換されるようにアドレス変換処理を行ってもよい。
(1)上記実施形態では、画像メモリ11としてSDRAMを用いたが、画像メモリ11はSDRAM以外のDRAMであってもよい。
(2)上記実施形態では、16×16画素のブロック単位で、画像メモリ11に対する連続アクセスを行ったが、複数ブロックからなるマクロブロック単位で、画像メモリ11に対する連続アクセスを行ってもよい。その場合に、マクロブロック単位で、同一マクロブロック内の画素の画像データの論理アドレスADRSが同じロウアドレスのメモリアドレスadrsに変換されるようにアドレス変換処理を行ってもよい。
5……メモリ制御装置、11……画像メモリ、7……DMAC、51……アクセス要求受信部、52……ライトアクセス制御部、53……ライトバッファ、54……リードアクセス制御部、55……リードバッファ。
Claims (2)
- メモリにおける画像データの書き込みまたは読み出しの制御を行うメモリ制御装置において、
メモリに対する画像データの書き込みまたは前記メモリからの画像データの読み出しを要求する情報であって、書き込み対象または読み出し対象である画像データの論理アドレスを含むアクセス要求を受信するアクセス要求受信手段と、
前記アクセス要求により指定された画像データの論理アドレスを前記メモリにおける当該画像データの記憶エリアを特定するメモリアドレスに変換して前記メモリに供給する手段であって、画面を所定の画素サイズの複数のブロックに分割した各ブロックについて、同一ブロック内の各画素の画像データの各論理アドレスを、ロウアドレスが同一であり、かつ、カラムアドレスが異なった複数のメモリアドレスに各々変換する変換ルールに従い、前記論理アドレスのメモリアドレスへの変換を行うアドレス変換手段と
を具備することを特徴とするメモリ制御装置。 - 前記アクセス要求受信手段が前記複数のブロックにおける2以上のブロックに跨る領域内の画像データの論理アドレスを指定するアクセス要求を受け取った場合、当該領域内の画素を同一のブロックに属する画素のグループに分割し、各グループを順次選択して、グループ内の画素の画像データの論理アドレスのメモリアドレスへの変換およびメモリアドレスの前記メモリへの供給を前記アドレス変換手段に行わせるアクセス順序制御手段を具備することを特徴とする請求項1に記載のメモリ制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007142477A JP2008299438A (ja) | 2007-05-29 | 2007-05-29 | メモリ制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007142477A JP2008299438A (ja) | 2007-05-29 | 2007-05-29 | メモリ制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008299438A true JP2008299438A (ja) | 2008-12-11 |
Family
ID=40172937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007142477A Pending JP2008299438A (ja) | 2007-05-29 | 2007-05-29 | メモリ制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008299438A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019114015A (ja) * | 2017-12-22 | 2019-07-11 | ルネサスエレクトロニクス株式会社 | 半導体装置、及びバスジェネレータ |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000231513A (ja) * | 1998-12-30 | 2000-08-22 | Silicon Automation Systems Pvt Ltd | N次元矩形データアレイの任意の所与次元におけるパラレルデータアクセスのためのメモリアーキテクチャ |
JP2003186740A (ja) * | 2001-12-19 | 2003-07-04 | Matsushita Electric Ind Co Ltd | メモリ制御装置、及びメモリ制御方法 |
JP2004518343A (ja) * | 2001-01-12 | 2004-06-17 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | メモリアドレス変換のための装置及び方法並びにそのような装置を含む画像処理装置 |
-
2007
- 2007-05-29 JP JP2007142477A patent/JP2008299438A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000231513A (ja) * | 1998-12-30 | 2000-08-22 | Silicon Automation Systems Pvt Ltd | N次元矩形データアレイの任意の所与次元におけるパラレルデータアクセスのためのメモリアーキテクチャ |
JP2004518343A (ja) * | 2001-01-12 | 2004-06-17 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | メモリアドレス変換のための装置及び方法並びにそのような装置を含む画像処理装置 |
JP2003186740A (ja) * | 2001-12-19 | 2003-07-04 | Matsushita Electric Ind Co Ltd | メモリ制御装置、及びメモリ制御方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019114015A (ja) * | 2017-12-22 | 2019-07-11 | ルネサスエレクトロニクス株式会社 | 半導体装置、及びバスジェネレータ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050190976A1 (en) | Moving image encoding apparatus and moving image processing apparatus | |
US8890881B2 (en) | Mapping method and video system for mapping pixel data included in the same pixel group to the same bank of memory | |
JP3492761B2 (ja) | 画像生成方法及び装置 | |
KR100363504B1 (ko) | 영상처리장치 | |
JP5969914B2 (ja) | 動画像圧縮伸張装置 | |
KR20110074884A (ko) | 화상처리장치 및 화상처리방법 | |
JP5826730B2 (ja) | 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造 | |
JPH10191236A (ja) | 画像処理装置及び画像データメモリ配置方法 | |
TW289894B (ja) | ||
JPH11298916A (ja) | 画像処理装置 | |
JP2007293533A (ja) | プロセッサシステム及びデータ転送方法 | |
JP2008271292A (ja) | 動き補償装置 | |
TW525391B (en) | Method and apparatus for performing motion compensation in a texture mapping engine | |
JP2008299438A (ja) | メモリ制御装置 | |
US20120026179A1 (en) | Image processing division | |
JPH1155676A (ja) | 同期型メモリを用いた動画像データ符号化装置 | |
US7817153B2 (en) | Graphic rendering apparatus which parallel-processes pixels at a time | |
JP2009130599A (ja) | 動画像復号装置 | |
JP4419608B2 (ja) | 動画像符号化装置 | |
JP3735325B2 (ja) | 画像生成装置 | |
JP2004328178A (ja) | 画像処理装置 | |
JP3405079B2 (ja) | メモリ割り付け方法 | |
JP4983160B2 (ja) | 動画像処理装置 | |
JP2008278442A (ja) | 画像処理装置 | |
JPH09312857A (ja) | 情報処理方法及び情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080916 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110726 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110920 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111011 |