JP2005236946A - Dramアクセス方法 - Google Patents

Dramアクセス方法 Download PDF

Info

Publication number
JP2005236946A
JP2005236946A JP2004226872A JP2004226872A JP2005236946A JP 2005236946 A JP2005236946 A JP 2005236946A JP 2004226872 A JP2004226872 A JP 2004226872A JP 2004226872 A JP2004226872 A JP 2004226872A JP 2005236946 A JP2005236946 A JP 2005236946A
Authority
JP
Japan
Prior art keywords
bank
image data
stored
data
dram
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
Application number
JP2004226872A
Other languages
English (en)
Inventor
Akira Okamoto
彰 岡本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MegaChips Corp
Original Assignee
MegaChips LSI Solutions Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by MegaChips LSI Solutions Inc filed Critical MegaChips LSI Solutions Inc
Priority to JP2004226872A priority Critical patent/JP2005236946A/ja
Publication of JP2005236946A publication Critical patent/JP2005236946A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Color Television Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】MPEG処理において、DRAMに対するアクセス処理を高速に行うことを課題とする。
【解決手段】2次元画像をラスタ順に入力し、この画像データをバンク0とバンク1を切り替えながら16ビットSDRAMに格納する。具体的には、8ピクセル単位でバンク0とバンク1を切り替えながら格納する。この際、2次元画像の列方向のデータが同じバンクに格納されるようにする。32ビットSDRAMの場合には、16ピクセル単位でバンク0とバンク1を切り替えながら格納する。この際、2次元画像の列方向のデータについてバンク0とバンク1が交互となるように格納する。
【選択図】図2

Description

本発明は、MPEG処理におけるDRAMアクセス方法に関する。
MPEG(Moving Picture Expert Group)による圧縮技術においては、2次元画像の中の、縦16ピクセル×横16ピクセルからなるマクロブロック単位に処理が行われる。したがって、メモリに格納された画像データに対しては、このマクロブロック単位の画像データに対して高速に処理できることが望ましい。
しかし、CCD等の画像入力装置からラスタ順で転送された画像データは、一般には、2次元画像イメージでメモリに格納される。つまり、マクロブロック単位の画像は、そのまま2次元画像イメージとして、メモリ内の複数行の記憶領域に格納されることになる。このため、マクロブロック単位の画像データを読み出すためには、複数行の記憶領域にアクセスする必要がある。
ここで、メモリとしてSRAM(Static Random Access Memory)を使用した場合には、複数行の記憶領域に対しても高速にアクセス可能であるが、SRAMはコストが高いという問題がある。そこで、コストの面から、DRAM(Dynamic Random Access Memory)が採用されることとなるが、行アドレスを切り替えて、DRAMの複数行の記憶領域にアクセスする処理は、処理速度が遅いという問題がある。
そこで、マクロブロック単位の画像データに対して高速にアクセスするための技術が下記特許文献1において開示されている。
特開平10−162131号公報 特開2003−186740号公報
上記特許文献1では、ラスタ順で入力される画像データをメモリに格納する際に、あらかじめ画像データを並べ替え、マクロブロック単位の画像データが、メモリの同一行に格納されるようにしたものである。
しかしながら、上記特許文献1に開示された方法では、メモリに対する書き込み制御が複雑になるという問題がある。また、上記特許文献2では、メモリの2つのバンクに交互にアクセスし、DRAMへのプリチャージによるオーバヘッドを隠蔽する技術が開示されているが、マクロブロック単位の画像データに対するアクセスを考慮したものではなく、マクロブロック単位での画像アクセスを高速化させることはできない。
そこで、本発明は前記問題点に鑑み、DRAMに格納されたマクロブロックの画像データに対して高速にアクセスする効率的な方法を提供することを目的とする。
上記課題を解決するため、請求項1記載の発明は、第1バンクおよび第2バンクを備えるDRAMにアクセスする方法であって、MPEGの処理対象である2次元画像をラスタ順で入力する第1工程と、前記2次元画像の行方向のデータについては8ピクセルごとに前記第1バンクおよび前記第2バンクを交互に切り替えながら前記DRAMに格納し、前記2次元画像の列方向のデータについては前記DRAMの同一バンクに格納する第2工程と、を備えることを特徴とする。
請求項2記載の発明は、請求項1に記載のDRAMアクセス方法であって、さらに、前記第2工程によって格納された画像データに対して前記第1バンクと前記第2バンクを交互に切り替えながら8ピクセル単位でアクセスすることにより、縦16ピクセル×横16ピクセルのMPEG処理用のマクロブロックにアクセスする第3工程、を備えることを特徴とする。
請求項3記載の発明は、請求項2に記載のDRAMアクセス方法であって、前記第3工程は、前記第1バンクに格納されたマクロブロックにおける第m行目(mは0以上14以下の整数)の8ピクセルの画像データにアクセスした後、前記第2バンクに格納されたラスタ順で次の8ピクセルの画像データにアクセスし、次に、前記第1バンクに格納されたマクロブロックにおける第m+1行目の8ピクセルの画像データにアクセスした後、前記第2バンクに格納されたラスタ順で次の8ピクセルの画像データにアクセスする工程、を含むことを特徴とする。
請求項4記載の発明は、請求項1に記載のDRAMアクセス方法であって、前記第2工程は、前記2次元画像の第n行目(nは0以上の整数)の画像データを、前記第1バンクおよび前記第2バンクの第n行目の記憶領域に格納し、第n+1行目の画像データを、前記第1バンクおよび前記第2バンクの第n+1行目の記憶領域に格納する工程、を含むことを特徴とする。
請求項5記載の発明は、請求項4に記載のDRAMアクセス方法であって、前記第3工程は、前記第1バンクの第n行目に格納されたマクロブロックにおける第m行目(mは0以上14以下の整数)の8ピクセルの画像データにアクセスした後、前記第2バンクの第n行目に格納されたラスタ順で次の8ピクセルの画像データにアクセスし、次に、前記第1バンクの第n+1行目に格納されたマクロブロックにおける第m+1行目の8ピクセルの画像データにアクセスした後、前記第2バンクの第n+1行目に格納されたラスタ順で次の8ピクセルの画像データにアクセスする工程、を含むことを特徴とする。
請求項6記載の発明は、請求項1ないし請求項5のいずれかに記載のDRAMアクセス方法であって、前記DRAMは1アドレスに16ビットのデータを格納可能としており、前記2次元画像の各ピクセルは8ビットの情報を備えることにより、前記DRAMの前記第1および第2バンクに対しては、それぞれ同一行の連続する4つのアドレスに対して8ピクセルの画像データが格納されることを特徴とする。
請求項7記載の発明は、請求項6に記載のDRAMアクセス方法であって、前記DRAMに対してラスタ順で連続する8ピクセルの画像データが、バースト転送されることを特徴とする。
請求項8記載の発明は、請求項6または請求項7に記載のDRAMアクセス方法であって、前記DRAMに格納される画像データが、Y(輝度)データの場合には、前記DRAMの1つのアドレスに対して2ピクセル分のYデータが格納されることを特徴とする。
請求項9記載の発明は、請求項6ないし請求項8のいずれかに記載のDRAMアクセス方法であって、前記DRAMに格納される画像データが、U,Y(色差)データの場合には、前記DRAMの1つのアドレスに対して1組のUデータとVデータが格納されることを特徴とする。
請求項10記載の発明は、第1バンクおよび第2バンクを備えるDRAMにアクセスする方法であって、MPEGの処理対象である2次元画像をラスタ順で入力する第1工程と、前記2次元画像の行方向のデータについては16ピクセルごとに前記第1バンクおよび前記第2バンクを交互に切り替えながら前記DRAMに格納し、前記2次元画像の列方向のデータについては1行ごとに前記第1バンクおよび前記第2バンクが交互となるように前記DRAMに格納する第2工程と、を備えることを特徴とする。
請求項11記載の発明は、請求項10に記載のDRAMアクセス方法であって、さらに、前記第2工程によって格納された画像データに対して前記第1バンクと前記第2バンクを交互に切り替えながら16ピクセル単位でアクセスすることにより、縦16ピクセル×横16ピクセルのMPEG処理用のマクロブロックにアクセスする第3工程、を備えることを特徴とする。
請求項12記載の発明は、請求項11に記載のDRAMアクセス方法であって、前記第3工程は、前記第1バンクに格納されたマクロブロックにおける第m行目(mは0以上14以下の整数)の16ピクセルの画像データにアクセスした後、次に、前記第2バンクに格納されたマクロブロックにおける第m+1行目の16ピクセルの画像データにアクセスする工程、を含むことを特徴とする。
請求項13記載の発明は、請求項11または請求項12に記載のDRAMアクセス方法であって、前記第3工程は、2次元画像上において隣り合うマクロブロックに対して連続してアクセスする際には、隣り合うマクロブロックについて、列方向のアクセス順序を逆方向とすることを特徴とする。
請求項14記載の発明は、請求項12に記載のDRAMアクセス方法であって、前記第3工程は、請求項2に記載の工程によりマクロブロックに対してアクセスした後、そのマクロブロックに隣り合うマクロブロックに対して連続してアクセスする際には、前記第1バンクに格納されたマクロブロックにおける第k行目(kは1以上15以下の整数)の16ピクセルの画像データにアクセスした後、次に、前記第2バンクに格納されたマクロブロックにおける第k−1行目の16ピクセルの画像データにアクセスする工程、を含むことを特徴とする。
請求項15記載の発明は、請求項10ないし請求項14のいずれかに記載のDRAMアクセス方法であって、前記DRAMは1アドレスに32ビットのデータを格納可能としており、前記2次元画像の各ピクセルは8ビットの情報を備えることにより、前記DRAMの前記第1および第2バンクに対しては、それぞれ同一行の連続する4つのアドレスに対して16ピクセルの画像データが格納されることを特徴とする。
請求項16記載の発明は、請求項10ないし請求項14のいずれかに記載のDRAMアクセス方法であって、前記DRAMは1アドレスに16ビットのデータを格納可能としており、前記2次元画像の各ピクセルは8ビットの情報を備えることにより、前記DRAMの前記第1および第2バンクに対しては、それぞれ同一行の連続する8つのアドレスに対して16ピクセルの画像データが格納されることを特徴とする。
請求項17記載の発明は、請求項15または請求項16に記載のDRAMアクセス方法であって、前記DRAMに対してラスタ順で連続する16ピクセルの画像データが、バースト転送されることを特徴とする。
請求項18記載の発明は、請求項15に記載のDRAMアクセス方法であって、前記DRAMに格納される画像データが、Y(輝度)データの場合には、前記DRAMの1つのアドレスに対して4ピクセル分のYデータが格納されることを特徴とする。
請求項19記載の発明は、請求項15または請求項18に記載のDRAMアクセス方法であって、前記DRAMに格納される画像データが、U,Y(色差)データの場合には、前記DRAMの1つのアドレスに対してUデータとVデータの組が2組格納されることを特徴とする。
請求項20記載の発明は、請求項16に記載のDRAMアクセス方法であって、前記DRAMに格納される画像データが、Y(輝度)データの場合には、前記DRAMの1つのアドレスに対して2ピクセル分のYデータが格納されることを特徴とする。
請求項21記載の発明は、請求項16または請求項20に記載のDRAMアクセス方法であって、前記DRAMに格納される画像データが、U,Y(色差)データの場合には、前記DRAMの1つのアドレスに対して1組のUデータとVデータとが格納されることを特徴とする。
本発明によれば、ラスタ順の2次元画像データを、第1バンクと第2バンクを切り替えながらDRAMに格納するので、格納されている画像データについて異なる行の画像データに連続的にアクセスが必要となる場合でも、一方のバンクにアクセスしている間に他方のバンクの行アドレスを変更することが可能となり、アクセス効率が向上する。
また、MPEG処理におけるマクロブロック単位で画像データにアクセスする場合には、第1バンクと第2バンクを切り替えつつ効率的にDRAMにアクセスすることができるので、MPEG処理の高速化を図ることが可能である。
{第1の実施の形態}
以下、図面を参照しつつ本発明の第1の実施の形態について説明する。図1は、画像処理装置の全体概略図である。画像処理装置は、例えば、CCD等のイメージセンサからなる入力部1、入力部1が出力した画像データを格納するSDRAM(Synchronous DRAM)4、SDRAM4に格納された画像データに対してMPEG規格に基づく圧縮処理を行うMPEG処理部2、入力部1が出力した画像データをSDRAM4に格納する際、およびMPEG処理部2がSDRAM4に格納されている画像データにアクセスする際に、SDRAM4に対するアクセス制御を行うメモリ制御部3とを備えている。
ここで、入力部1が出力する画像データは、ラスタ順で出力される。この明細書において、ラスタ順とは、2次元画像が1次元の画像データとして連続的に出力される手順であり、詳しくは、2次元画像の左上左端のピクセルを先頭に最上位行の画像データが順次転送され、右端のピクセルまで転送した後は、次の行の画像データを左端から右端まで順次転送し、次々に、各行の画像データを1次元の画像データとして転送する手順を示す。また、ラスタ順には、プログレッシブ転送のみならず、インタレース転送も含まれる。インタフレース転送の場合には、奇数行の画像データに対する1フィールド分の画像データの転送と、偶数行の画像データに対する1フィールド分の画像データの転送とが交互に行われることになる。
また、第1の実施の形態におけるSDRAM4は、1アドレスのメモリ領域に対して2バイト(16ビット)のデータを格納可能としている。つまり、第1の実施の形態におけるSDRAM4は、16ビットSDRAMである。また、SDRAM4は、連続する4つのアドレスに対して連続的にデータアクセスを行うバースト転送処理を可能としている。つまり、SDRAM4は、64ビット(4アドレス×16ビット)のデータをバースト転送可能としている。
図2は、2次元画像データのピクセル構成を示す図である。ここでは、2次元画像は、横320ピクセル、つまり、1行(水平1ライン)の画像データが320ピクセルである場合を例に説明する。また、この明細書においては、図に示すように、2次元画像の水平方向を行方向と、2次元画像の垂直方向を列方向と対応させて適宜説明する。
図2においては、2次元の画像データをブロックに区分して表示している。ここで、列方向の1区分は画像の1行(水平1ライン)に対応している。また、行方向の1区分は、8ピクセル分の画像データに対応している。つまり、1ブロックは8ピクセル分の画像データの集合である。そして、各ブロック内に表示されている0〜7pix、8〜15pix等の表示は、最上位行の左端のピクセルを0番目の画像として、全ピクセルに対してラスタ順に付与されたピクセル番号である。したがって、画像データが横320ピクセル×縦100ピクセルであれば、ラスタ順に0から31999までの番号が各ピクセルに付与されることになる。
最上位行(0行目)の左端のブロックは、2次元画像の0行目の0番目から7番目までのピクセルに対応し、その右横のブロックは、2次元画像の0行目の8番目から15番目までのピクセルに対応している。そして、最上位行(0行目)の右端のブロックは、0行目の312番目から319番目までのピクセルに対応し、次の行(1行目)の左端のブロックは、320番目から327番目までのピクセル(これは、2次元画像における1行目の0番目から7番目までのピクセルに対応している。)に対応している。
このようにして、2次元画像をラスタ順に8ピクセルごとにブロック化している。さらに、図に示すように、列方向のブロックがグループ化され、これらグループは、SDRAM4のバンク0とバンク1に交互に格納されるのである。具体的には、図において網掛けされていないブロックのグループはSDRAM4のバンク0に格納され、網掛けされているブロックのグループはSDRAM4のバンク1に格納されるのである。図中、A0,0、B0,0等の表示については、後で説明するが、この2次元画像データがSDRAM4に格納される際に、格納されるメモリ領域(バンク0およびバンク1におけるメモリ領域)のブロック名を示している。
図3は、メモリ制御部3によって、入力部1より出力されたラスタ順の画像データが、SDRAM4に書き込まれる際のタイミング図である。また、図4は、SDRAM4のバンク0に対する書き込み順序を示す図であり、図5は、SDRAM4のバンク1に対する書き込み順序を示す図である。また、図6は、バンク0の各メモリ領域に格納される画像データのピクセル番号(この番号は、前述したように、2次元画像の最上位行(0行目)の左端(0列目)のピクセルを0番目の画像として、全ピクセルに対してラスタ順で付与された番号である。)を示す図であり、図7は、バンク1の各メモリ領域に格納される画像データのピクセル番号を示す図である。
ここで、図4および図5において、メモリ領域a0,0、b0,0等の添え字は、1番目の添え字がメモリ領域の行番号を示し、2番目の添え字がメモリ領域の列番号を示している。したがって、メモリ領域a1,4は、バンク0の1行4列目のメモリ領域を示している。また、図4および図5におけるブロック領域A0,0、B0,0等は、4つのメモリ領域からなるブロックを示している。ブロック領域の添え字は、そのブロック領域に含まれている先頭(左端)のメモリ領域の行番号および列番号に対応している。
図3において、まず、バンクアドレスに「0」が設定され、行アドレスおよび列アドレスにいずれも「0」が設定され、0番目から7番目までの8ピクセル分の画像データが、バースト転送される。つまり、1ピクセルの画像データが8ビットであるので、8ピクセル分の画像データ(8ピクセル×8ビット)をバースト転送するのである。この8ピクセル分の画像データは、図4に示すバンク0のブロック領域A0,0に格納される。ブロック領域A0,0は、メモリ領域a0,0、a0,1、a0,2、a0,3からなる領域である。なお、図3において、Bank ADDRESSがバンクアドレス信号を示し、ADDRESSが行および列アドレス信号を示している。また、Bank0およびBank1は、それぞれバンク0およびバンク1に対するデータのアクセスタイミングと、転送されるデータの内容を示している。データの内容(0,1等の数字)は、前述したピクセル番号を示している。
一方、図3に示すように、0番目から7番目までの8ピクセル分の画像データが、ブロック領域A0,0に書き込まれているタイミングで、バンクアドレスが「1」に設定される。そして、ブロック領域A0,0への書き込み終了後、8番目から15番目までの8ピクセル分の画像データがバースト転送される。この8ピクセル分の画像データは、図5に示す、バンク1のブロック領域B0,0に格納される。ブロック領域B0,0は、メモリ領域b0,0、b0,1、b0,2、b0,3からなる領域である。
さらに、8番目から15番目までの8ピクセル分の画像データがブロック領域B0,0に書き込まれているタイミングで、バンクアドレスが「0」に設定される。そして、ブロック領域B0,0への書き込み終了後、16番目から23番目までの8ピクセル分の画像データがバースト転送される。この8ピクセル分の画像データは、列アドレスに「4」が設定されることにより、図4に示すバンク0のブロック領域A0,4に格納される。ブロック領域A0,4は、メモリ領域a0,4、a0,5、a0,6、a0,7からなる領域である。
そして、ブロック領域A0,4に書き込みが行われているタイミングで、バンクアドレスが「1」に設定される。そして、ブロック領域A0,4への書き込み終了後、24番目から31番目までの8ピクセル分の画像データがバースト転送される。この8ピクセル分の画像データは、列アドレスに「4」が設定されることにより、図5に示すバンク1のブロック領域B0,4に格納される。ブロック領域B0,4は、メモリ領域b0,4、b0,5、b0,6、b0,7からなる領域である。
以上の処理により、図6および図7に示すように、バンク0のブロック領域A0,0、A0,4およびバンク1のブロック領域B0,0、B0,4に0番目から31番目までの32ピクセル分の画像データが格納される。この後は、同様に、バンク0とバンク1を切り替えながら、8ピクセル単位で画像データをバースト転送し、順次SDRAM4に画像データを格納するのである。図4および図5における矢印は、それぞれバンク0およびバンク1への格納順序を示している。上述した手順により、2次元画像の0行目の画像データが矢印の方向に格納された後、1行目の画像データが同様に矢印の方向に格納され、順次、各行の画像データが格納される。SDRAM4に対する書き込み手順を、ブロック領域を用いて表現すると、ブロック領域A0,0→B0,0→A0,4→B0,4→A0,8→B0,8→A0,12→・・・の順で、2次元画像データを順次格納することになる。
このように、MPEG処理の対象となる2次元画像データをバンク0とバンク1とを切り替えながら、2次元画像イメージでSDRAM4に格納する。そして、図2にも示したように、2次元画像における列方向については、画像データが全て同じバンクに格納されるようにするのである。このため、2次元画像のマクロブロックに注目した場合、マクロブロック内の画像データは、SDRAM4の複数の行にまたがって格納されることとなるが、アクセスする行を切り替える場合にも、空き時間は発生しない。このアクセス手順については、後で具体的に説明するが、バンク1のデータにアクセスしているタイミングで、バンク0についてアクセスする行を切り替え、バンク0のデータにアクセスしているタイミングで、バンク1についてアクセスする行を切り替えることが可能となるからである。
なお、この実施の形態では、図6および図7で示したように、2次元画像データの水平1ライン分の画像データは、SDRAM4のバンク0の同一行およびバンク1の同一行のメモリ領域に格納し、2次元画像データの水平ラインが次の水平ラインに移動すると、格納先のバンク0とバンク1のメモリ領域も行を変更するようにしている。このような格納方法は、メモリ領域の有効利用という点ではデメリットがあるが、回路構成をシンプルにすることができるという点でメリットがある。したがって、メモリ領域に余裕がある場合には有効な方法である。
ただし、上記格納方法は一例であり、これに限定されることはない。つまり、ラスタ順で入力する2次元画像の1行目の画像データを、SDRAM4の1行目(バンク0あるいはバンク1)に格納した後、2ライン目の画像データを続けて、SDRAM4の1行目に格納するような方法をとってもよい。同様に、SDRAM4の各行において、画像データの水平ラインに対応して格納する行を変更させることはなく、順次、画像データを詰めて格納するのである。そして、この場合にも、一度に転送される8ピクセル分の画像データ(つまり、1バースト転送分の画像データ)はSDRAM4のいずれかのバンクの同一行に格納されるようにしておけばよい。これにより、バンク0およびバンク1の一方のデータにアクセスしているタイミングで、他方のバンクの行アドレスを変更するようにすれば、処理速度を高速にすることが可能である。あるいは逆に、2次元画像の水平1ラインのデータサイズがSDRAM4の1行に格納可能なサイズ(バンク0とバンク1の1行に格納可能なサイズの和)より大きくてもよい。この場合にも、8ピクセル単位で画像データをいずれかのバンクの同一行に格納するようにし、2次元画像の水平1ラインの途中で各バンクの行アドレスを変更するようにしても問題はない。つまり、本発明は、本質的には、マクロブロックを構成する1行の画像データのうち、その半分の8ピクセル分の画像データが全て一方のバンクの同一行に格納され、これに続く残り半分の8ピクセル分の画像データが全て他方のバンクの同一行に格納され、さらに、列方向のデータは全て同じバンクに格納されることである。このような格納方法をとれば、後述するように、マクロブロック単位での画像データに対するアクセスにおいて、いずれかのバンクの行アドレスを変更する必要が生じた場合でも、その直前に必ず他方のバンクに対するアクセス処理が介入するので、その間に行アドレスを変更することで、空き時間の発生を無くすことができるのである。
次に、MPEG処理部2がMPEG圧縮処理を行うために、SDRAM4に格納された画像データにマクロブロック単位でアクセスする処理について説明する。なお、このアクセス処理には、MPEG処理部2がMPEG圧縮処理を行う対象であるマクロブロック単位の画像データを読み出す処理と、マクロブロック単位の画像データを書き込む処理がある。
図8は、メモリ制御部3によって、SDRAM4に格納された画像データにアクセスする処理のタイミング図である。また、図9は、SDRAM4のバンク0に対するアクセス順序を示す図であり、図10は、SDRAM4のバンク1に対するアクセス順序を示す図である。なお、図8ないし図10は、マクロブロック単位での画像データの読み出し処理と書き込み処理に共通の特徴を示す図である。また、図9および図10における各メモリ領域a0,0、b0,0等は、図4および図5における各メモリ領域a0,0、b0,0等に対応しており、上述した書き込み処理により、図6および図7で示したような配列で2次元画像データが格納されているものとする。
まず、マクロブロック単位での画像データの読み出し処理について説明する。図8において、まず、バンクアドレスに「0」が設定され、行アドレスおよび列アドレスにいずれも「0」が設定され、0番目から7番目までの8ピクセル分の画像データが、バースト転送される。具体的には、図9で示すバンク0のブロック領域A0,0に格納されている8ピクセル分の画像データが読み出される。なお、図8におけるBank ADDRESSがバンクアドレス信号を示し、ADDRESSが行および列アドレス信号を示している。また、Bank0およびBank1は、それぞれバンク0およびバンク1に対するデータのアクセスタイミングと、転送されるデータの内容を示している。データの内容(0,1等の数字)は、前述したピクセル番号を示している。
一方、図8に示すように、ブロック領域A0,0の画像データに対する読み出し処理が行われているタイミングで、バンクアドレスが「1」に設定され、ブロック領域A0,0からの読み込み処理終了後、8番目から15番目までの8ピクセル分の画像データがバースト転送される。具体的には、図10で示すバンク1のブロック領域B0,0に格納されている8ピクセル分の画像データが読み出される。
さらに、図8に示すように、ブロック領域B0,0の画像データの読み出し処理が行われているタイミングで、バンクアドレスが「0」に設定されるとともに行アドレスに「1」が設定され、ブロック領域B0,0からの読み込み処理終了後、320番目から327番目までの8ピクセル分の画像データがバースト転送される。具体的には、図9で示すバンク0のブロック領域A1,0に格納されている8ピクセル分の画像データが読み出される。ブロック領域A1,0は、メモリ領域a1,0、a1,1、a1,2、a1,3からなる領域である。ここで、バンク0については、ブロック領域A0,0に対するアクセス処理の後、ブロック領域A1,0に対するアクセス処理が行われるため、アクセスする行アドレスを切り替える必要があるが、バンク1のブロック領域B0,0に対するデータ転送が行われているタイミングで、この行アドレスの切り替えが行われるので、空き時間が発生することなく、効率的にデータの読み出し処理が実行されるのである。
そして、ブロック領域A1,0の画像データの読み出し処理が行われているタイミングで、バンクアドレスが「1」に設定されるとともに行アドレスに「1」が設定され、ブロック領域A1,0からの読み込み処理終了後、328番目から335番目までの8ピクセル分の画像データがバースト転送される。具体的には、図10で示すバンク1のブロック領域B1,0に格納されている8ピクセル分の画像データが読み出される。ブロック領域B1,0は、メモリ領域b1,0、b1,1、b1,2、b1,3からなる領域である。同様に、バンク1については、ブロック領域B0,0に対するアクセス処理の後、ブロック領域B1,0に対するアクセス処理が行われるため、アクセスする行アドレスを切り替える必要があるが、バンク0のブロック領域A1,0に対するデータ転送が行われているタイミングで、この行アドレスの切り替えが行われるので、空き時間が発生することなく、効率的にデータの読み出し処理が実行されるのである。
以上の処理により、図6および図7に示したバンク0のブロック領域A0,0、A1,0およびバンク1のブロック領域B0,0、B1,0に格納されている0番目から15番目までの16ピクセル分の画像データおよび320番目から335番目までの16ピクセル分の画像データが読み出される。この画像データは、図2の画像イメージに対応させると、行方向が16ピクセルであって、列方向については同じ列の2行分の画像データである。つまり、この後、同様に、バンク0とバンク1を切り替えながら、8ピクセル単位で画像データをバースト転送し、順次、行方向が16ピクセルで、同じ列の画像データを読み出すことにより、2次元的なブロックの画像データを連続的に読み出すことが可能となるのである。そして、このような処理を16行分実行することにより、縦16ピクセル×横16ピクセルのマクロブロックに対応する画像データを連続的に読み出すことが可能となるのである。
図11は、マクロブロックの読み出す順序を示す図である。図8〜図10を用いた説明では、ブロック領域A0,0→B0,0→A1,0→B1,0の画像データを読み出すところまでを説明した。この後、バンク0とバンク1を交互に切り替えつつ、同列のブロック領域の画像データを順次読み出し、16行目となるブロック領域A15,0、B15,0を読み出した時点で、縦16ピクセル×横16ピクセルのマクロブロックに対応する画像データを読み出すことが可能となるのである。
また、上述したように、図2に示すようなバンク0とバンク1に対する格納ルールが満たされていれば、2次元画像の異なる水平ラインの画像データが、SDRAM4の同一の行に格納されていてもよい。たとえば、2次元画像データの1ライン目と2ライン目の画像データが、ともにSDRAM4の1行目のメモリ領域に格納されてもよいことを説明した。この場合にも、マクロブロック単位でのデータの読み出し処理は、高速に行うことが可能である。つまり、8ピクセル単位で、バンクを切り替えながら、画像データが格納されていることにより、一方のバンクから画像データを読み出している間に、他方のバンクの行を切り替えることが可能となるからである。これにより、SDRAM4に対するアクセス行を変更する際にも、空き時間を発生させることなく、読み出し処理を行うことが可能である。また、図2に示すようなバンク0とバンク1に対する格納ルールが満たされていれば、2次元画像データの水平1ラインがSDRAM4の複数の行にまたがって格納されていてもよい。あるいは、2次元画像の各水平ラインの列方向の順序と、SDRAM4に格納される列方向の順序が異なっていてもよいし、とびとびの行に格納されるようになっていてもよい。
このように、マクロブロック単位で画像データを高速に読み出すことが可能であるが、MPEG処理部2により、マクロブロック単位で画像データを書き込む処理も同様である。この書き込み処理も、図8で示したタイミング図、図9、図10、図11で示したアクセス順序で行えばよい。つまり、ブロック領域A0,0→B0,0→A1,0→B1,0→A2,0・・・の順で画像データを書き込むようにすればよい。これにより、マクロブロック単位での画像データの読み込みおよび書き込み両方の処理を高速に行うことが可能である。
以上説明したように、本実施の形態によれば、MPEG処理に必要なマクロブロック単位の画像データに連続的にアクセスする場合にも、バンク0とバンク1を切り替えることにより、アクセス空き時間を発生させることなく、効率的にSDRAM4にアクセスすることが可能である。つまり、一方のバンクにおいて画像データにアクセスしている間に、他方のバンクの行アドレスを変更することができるので、行アドレス変更に伴う空き時間を発生させることがない。しかも、入力部1から入力した画像データのSDRAM4に対する書き込み処理においては、ラスタ順で入力する画像データを、そのままの順序で格納するので、書き込み処理時における制御が複雑になることはない。
次に、図12を参照して、データの種別に応じた各メモリ領域への画像データの格納方法について説明する。MPEG処理においては、輝度データ(Yデータ)と色差データ(U,Vデータ)からなるYUV色空間の画像データを扱う。ここで、図13に示すように、Yデータは、2次元画像データの全ての画素が保持している情報である。これに対して、U,Vデータは、Yデータよりも数が少ない。YUV4:2:0フォーマットにおいては、図に示すように、UデータおよびVデータの数は、行方向に1/2間引かれるとともに、列方向にも1/2間引かれている。
上述したSDRAM4に対するアクセス処理では、画像データの種類が輝度データであるか、あるいは色差データであるかということは特に考慮せず説明した。ここでは、輝度データと色差データの場合、それぞれについてメモリ領域への格納方法を説明する。なお、画像データは、YUV4:2:0フォーマットの場合を説明する。
図12で示したタイミング図の中で、前半の2つのバースト転送処理は、輝度データに対する処理である。後半の2つのバースト転送処理は、色差データに対する処理である。まず、輝度データの場合には、2つのYデータを1つのメモリ領域に格納する。つまり、1画素のYデータは8ビットであり、この実施の形態におけるSDRAM4の1アドレスに対応するメモリ領域は16ビットのデータを格納可能としているので、2ピクセル分のYデータを1アドレスのメモリ領域に格納するのである。このとき、SDRAM4にアクセスする16ビットのデータ線のうち、上位8ビットを一方のYデータ転送用に使用し、下位8ビットを他方のYデータ転送用の使用する。このようにして、バンク0には、4つのアドレスに対応した4つのメモリ領域に8ピクセル分のYデータが格納される。続いて、バンク1において、4つのアドレスに対応した4つのメモリ領域に8ピクセル分のYデータが格納されるのである。
次に、色差データの格納方法について説明する。図13において、太線枠で示した2ピクセル×2ピクセルの領域の中には、4つのYデータに対して、UデータとVデータが1つづつ存在する。そこで、この2つのUデータとVデータをパッキングして1つのメモリ領域に格納する。
図12に示すように、2つのUデータとVデータをパッキングして1つのメモリ領域に格納することとすれば、このようなUデータとVデータの組が4つ分、つまり、8ピクセル分バースト転送行うことが可能である。つまり、UデータおよびVデータは、いずれも1画素8ビットのデータであり、この実施の形態におけるSDRAM4の1アドレスに対応するメモリ領域は16ビットのデータを格納可能としているので、UデータとVデータからなる2ピクセル分のデータを1アドレスのメモリ領域に格納するのである。このとき、SDRAM4にアクセスする16ビットのデータ線のうち、上位8ビットを例えばUデータ転送用に使用し、下位8ビットをVデータ転送用の使用する。このようにして、バンク0には、4つのアドレスに対応した4つのメモリ領域に8ピクセル分の色差データが格納される。続いて、バンク1において、4つのアドレスに対応した4つのメモリ領域に8ピクセル分の色差データが格納されるのである。
このように、UデータとVデータをパッキングして、1つのメモリ領域に格納することにより、輝度データについてSDRAM4にアクセスする場合と、色差データについてSDRAM4にアクセスする場合とで、同じ転送手順を実行することが可能となるのである。
具体的には、まず、輝度データについてマクロブロック単位のデータアクセスを行い、次に、同じマクロブロック領域内の色差データについてマクロブロック単位のデータアクセスを行うことになるが(図12は、輝度データについてのデータアクセス処理と色差データに対するデータアクセス処理がちょうど入れ替わるタイミングを示している。)、輝度データに対するデータアクセスと色差データに対するデータアクセスを同じ手順とすることができるのである。
ただし、YUV4:2:0フォーマットの場合には、UデータとVデータの数が行方向(縦方向)にも1/2に間引かれているので、1つのマクロブロックに対する処理は、輝度データに対する処理の半分の処理でよい。図11を用いて説明すれば、輝度データに対する処理は、16行分の処理が必要であったが、色差データの場合には、8行分の処理でよい。
以上、第1の実施の形態においては、SDRAMが1アドレスに16ビットのデータを格納可能である場合を例に説明した。しかし、本発明は、1アドレスに8ビットのデータを格納可能なDRAMにも適用させることが可能である。この場合には、8ビットのデータを格納可能なDRAMを2個利用して、上述した実施の形態と同様の処理を行うようにすればよい。つまり、8ピクセル分の画像データを2個のDRAMのそれぞれ4つのアドレスに格納する処理を1単位の処理とすればよい。そして、それぞれのDRAMに対してバンク0とバンク1とを交互に切り替えながら上記と同様の処理を行うようにすればよい。
{第2の実施の形態}
次に、本発明の第2の実施の形態について説明する。第2の実施の形態における画像処理装置も、図1で説明した画像処理装置と同様である。ただし、第2の実施の形態におけるSDRAM4は、1アドレスのメモリ領域に対して4バイト(32ビット)のデータを格納可能としている。つまり、第2の実施の形態におけるSDRAM4は、32ビットSDRAMである。また、SDRAM4は、連続する4つのアドレスに対して連続的にデータアクセスを行うバースト転送処理を可能としている。つまり、SDRAM4は、128ビット(4アドレス×32ビット)のデータをバースト転送可能としている。
図14は、2次元画像データのピクセル構成を示す図である。ここでも、2次元画像は、横320ピクセル、つまり、1行(水平1ライン)の画像データが320ピクセルである場合を例に説明する。
図14においては、2次元の画像データをブロックに区分して表示している。この図の表記ルールは、図2で説明したものと同様である。ただし、図2と比較すると1ブロックのピクセル数が異なる。最上位行(0行目)の左端のブロックは、2次元画像の0行目の0番目から15番目までのピクセルに対応し、その右横のブロックは、2次元画像の0行目の16番目から31番目までのピクセルに対応している。そして、最上位行(0行目)の右端のブロックは、0行目の304番目から319番目までのピクセルに対応し、次の行(1行目)の左端のブロックは、320番目から335番目までのピクセル(これは、2次元画像における1行目の0番目から15番目までのピクセルに対応している。)に対応している。
このようにして、2次元画像をラスタ順に16ピクセルごとにブロック化している。さらに、この実施の形態においては、図に示すように、これら各ブロックが千鳥状にバンク0とバンク1に割り当てられてSDRAM4に格納される。言い換えると、2次元画像の行方向においても列方向においてもバンク0とバンク1が交互になるように割り当てられる。具体的には、図において網掛けされていないブロックはSDRAM4のバンク0に格納され、網掛けされているブロックはSDRAM4のバンク1に格納されるのである。図中、C0,0、D0,0等の表示については、第1の実施の形態で説明したものと同様である。つまり、この2次元画像データがSDRAM4に格納される際に、格納されるメモリ領域(バンク0およびバンク1におけるメモリ領域)のブロック名を示している。
図15は、メモリ制御部3によって、入力部1より出力されたラスタ順の画像データが、SDRAM4に書き込まれる際のタイミング図である。また、図16は、SDRAM4のバンク0に対する書き込み順序を示す図であり、図17は、SDRAM4のバンク1に対する書き込み順序を示す図である。また、図18は、バンク0の各メモリ領域に格納される画像データのピクセル番号(この番号は、前述したように、2次元画像の最上位行(0行目)の左端(0列目)のピクセルを0番目の画像として、全ピクセルに対してラスタ順で付与された番号である。)を示す図であり、図19は、バンク1の各メモリ領域に格納される画像データのピクセル番号を示す図である。
ここで、図16および図17において、メモリ領域c0,0、d0,0等の添え字は、1番目の添え字がメモリ領域の行番号を示し、2番目の添え字がメモリ領域の列番号を示している。これらの表記ルールも第1の実施の形態と同様である。また、図16および図17におけるブロック領域C0,0、D0,0等は、4つのメモリ領域からなるブロックを示している。ブロック領域の添え字は、そのブロック領域に含まれている先頭(左端)のメモリ領域の行番号および列番号に対応している。
図15において、まず、バンクアドレスに「0」が設定され、行アドレスおよび列アドレスにいずれも「0」が設定され、0番目から15番目までの16ピクセル分の画像データが、バースト転送される。つまり、1ピクセルの画像データが8ビットであるので、16ピクセル分の画像データ(16ピクセル×8ビット)をバースト転送するのである。この16ピクセル分の画像データは、図16に示すバンク0のブロック領域C0,0に格納される。ブロック領域C0,0は、メモリ領域c0,0、c0,1、c0,2、c0,3からなる領域である。なお、図15の表記ルールも図3等と同様である。
一方、図15に示すように、0番目から15番目までの16ピクセル分の画像データが、ブロック領域C0,0に書き込まれているタイミングで、バンクアドレスが「1」に設定される。そして、ブロック領域C0,0への書き込み終了後、16番目から31番目までの16ピクセル分の画像データがバースト転送される。この16ピクセル分の画像データは、図17に示すバンク1のブロック領域D0,0に格納される。ブロック領域D0,0は、メモリ領域d0,0、d0,1、d0,2、d0,3からなる領域である。
さらに、16番目から31番目までの16ピクセル分の画像データがブロック領域D0,0に書き込まれているタイミングで、バンクアドレスが「0」に設定される。そして、ブロック領域D0,0への書き込み終了後、32番目から47番目までの16ピクセル分の画像データがバースト転送される。この16ピクセル分の画像データは、列アドレスに「4」が設定されることにより、図16に示すバンク0のブロック領域C0,4に格納される。ブロック領域C0,4は、メモリ領域c0,4、c0,5、c0,6、c0,7からなる領域である。
そして、ブロック領域C0,4に書き込みが行われているタイミングで、バンクアドレスが「1」に設定される。そして、ブロック領域C0,4への書き込み終了後、48番目から63番目までの16ピクセル分の画像データがバースト転送される。この16ピクセル分の画像データは、列アドレスに「4」が設定されることにより、図17に示すバンク1のブロック領域D0,4に格納される。ブロック領域D0,4は、メモリ領域d0,4、d0,5、d0,6、d0,7からなる領域である。
以上の処理により、図18および図19に示すように、バンク0のブロック領域C0,0、C0,4およびバンク1のブロック領域D0,0、D0,4に0番目から63番目までの64ピクセル分の画像データが格納される。この後は、同様に、バンク0とバンク1を切り替えながら、16ピクセル単位で画像データをバースト転送し、順次SDRAM4に画像データを格納するのである。図16および図17における矢印は、それぞれバンク0およびバンク1への格納順序を示している。上述した手順により、2次元画像の0行目の画像データが矢印の方向に格納された後、1行目の画像データが同様に矢印の方向に格納され、順次、各行の画像データが格納される。また、SDRAM4に対する書き込み手順をブロック領域を用いて表現すると、ブロック領域C0,0→D0,0→C0,4→D0,4→C0,8→D0,8→C0,12→・・・の順で、2次元画像データを順次格納することになる。
このように、2次元画像の行方向については、16ピクセルごとにバンク0とバンク1が交互になるようSDRAM4に対してデータが格納される。そして、図14でも示したように、列方向については、1行ごとにバンク0とバンク1が交互になるようにSDRAM4に格納するのである。
この実施の形態の例では、2次元画像の行方向のピクセル数は320である。したがって、16ピクセルごとにバンク0とバンク1を切り替えて0行目のデータを格納した後、1行目のデータを格納する場合には、1行目の先頭のブロックは再びバンク0に格納される順番となる。このため、1行目の先頭のブロック、つまり320番目から335番目までの画像データは、一旦バッファに格納し、次のブロック、つまり336番目から351番目までの画像データを先にバンク0に格納するようにする。次に、バッファされていた320番目から335番目までの画像データをバンク1に格納するのである。これにより、列方向については1行ごとにバンク0とバンク1が交互に切り替えられて画像データが格納されることになる。バッファされていた320番目から335番目までの画像データをバンク1に格納した後は、352番目から367番目までの画像データをバンク1に格納するようにしても、行アドレスの切り替えが発生しないのでアクセス速度が遅くなることはない。その後は、行方向に再び16ピクセルごとにバンク0とバンク1を切り替えながら画像データを格納すれば、列方向についても1行ごとにバンク0とバンク1が交互に切り替えられて画像データが格納されることになる。
一方、行方向のピクセル数が16ピクセルの奇数倍である場合には、ラスタ順でバンク0とバンク1を切り替えていくことにより、列方向についても1行ごとにバンク0とバンク1に対して交互に格納されるので、上記のようにバッファを利用する必要はない。
このように、MPEG処理の対象となる2次元画像データをバンク0とバンク1とを切り替えながら、2次元画像イメージでSDRAM4に格納する。そして、画像の列方向については1行ごとにバンク0とバンク1が交互になるようにSDRAM4に格納する。このため、マクロブロックに注目した場合、SDRAM4の複数の行に画像データがまたがって格納されることとなるが、アクセスする行を切り替える場合にも、空き時間が発生することはない。このアクセス手順については、後で具体的に説明するが、バンク1のデータにアクセスしているタイミングで、バンク0についてアクセスする行を切り替え、バンク0のデータにアクセスしているタイミングで、バンク1についてアクセスする行を切り替えることが可能となるからである。
なお、図18および図19で示したように、2次元画像データの水平1ライン分の画像データは、SDRAM4のバンク0の同一行およびバンク1の同一行のメモリ領域に格納し、2次元画像データのラインが次のラインに移動すると、格納先のバンク0とバンク1のメモリ領域も行を変更するようにしている。このような格納方法は、メモリ領域の有効利用という点ではデメリットがあるが、回路構成をシンプルにすることができるという点でメリットがある。したがって、メモリ領域に余裕がある場合には有効な方法である。
ただし、上記格納方法は一例であり、これに限定されることはない。つまり、ラスタ順で入力する2次元画像データの1ライン目の画像データを、SDRAM4の1行目(バンク0あるいはバンク1)に格納した後、2ライン目の画像データを続けて、SDRAM4の1行目に格納するような方法をとってもよい。同様に、SDRAM4の各行において、画像データの水平ラインに対応して格納する行を変更させることはなく、順次、画像データを詰めて格納するのである。そして、この場合にも、一度に転送される16ピクセル分の画像データ(つまり、1バースト転送分の画像データ)はSDRAM4の同一行に格納されるようにしておけばよい。これにより、バンク0およびバンク1の一方のデータにアクセスしているタイミングで、他方のバンクの行アドレスを変更するようにすれば、処理速度を高速にすることが可能である。あるいは逆に、2次元画像の水平1ラインのデータサイズがSDRAM4の1行に格納可能なサイズ(バンク0とバンク1の1行に格納可能なサイズの和)より大きくてもよい。この場合にも、16ピクセル単位で画像データをいずれかのバンクの同一行に格納するようにし、2次元画像の水平1ラインの途中で各バンクの行アドレスを変更するようにしても問題はない。つまり、本発明は、本質的には、マクロブロックを構成する1行の16ピクセル分の画像データが全て一方のバンクの同一行に格納され、マクロブロックを構成する次の行の16ピクセル分の画像データが全て他方のバンクの同一行に格納されることである。このような格納方法をとれば、マクロブロック単位での画像データに対するアクセスにおいて、いずれかのバンクの行アドレスを変更する必要が生じた場合でも、その直前に必ず他方のバンクに対するアクセス処理が介入するので、その間に行アドレスを変更することで、空き時間の発生を無くすことができるのである。
次に、MPEG処理部2がMPEG圧縮処理を行うために、SDRAM4に格納された画像データにマクロブロック単位でアクセスする処理について説明する。なお、このアクセス処理には、MPEG処理部2がMPEG圧縮処理を行う対象であるマクロブロック単位の画像データを読み出す処理と、マクロブロック単位の画像データを書き込む処理がある。
図20は、メモリ制御部3によって、SDRAM4に格納された画像データにアクセスする処理のタイミング図である。また、図21は、SDRAM4のバンク0に対するアクセス順序を示す図であり、図22は、SDRAM4のバンク1に対するアクセス順序を示す図である。さらに、図21および図22で示した方法によりマクロブロックにアクセスした後、続けて隣り合うマクロブロックをアクセスする方法を示したのが図23および図24である。図23は、SDRAM4のバンク0に対するアクセス順序を示す図であり、図24は、SDRAM4のバンク1に対するアクセス順序を示す図である。なお、図20ないし図24は、マクロブロック単位での画像データの読み出し処理と書き込み処理に共通の特徴を示す図である。また、図21ないし図24における各ブロック領域C0,0、D0,0等は、図16および図17における各ブロック領域C0,0、D0,0等に対応しており、上述した書き込み処理により、図18および図19で示したような配列で2次元画像データが格納されているものとする。
まず、マクロブロック単位での画像データの読み出し処理について説明する。図20において、まず、バンクアドレスに「0」が設定され、行アドレスおよび列アドレスにいずれも「0」が設定され、0番目から15番目までの16ピクセル分の画像データが、バースト転送される。具体的には、図21で示すバンク0のブロック領域C0,0に格納されている16ピクセル分の画像データが読み出される。なお、図20における表記ルールは、図3等と同様である。
一方、図20に示すように、ブロック領域C0,0の画像データに対する読み出し処理が行われているタイミングで、バンクアドレスが「1」に設定されるとともに行アドレスが「1」に設定され、ブロック領域C0,0からの読み込み処理終了後、320番目から335番目までの16ピクセル分の画像データがバースト転送される。具体的には、図22で示すバンク1のブロック領域D1,0に格納されている16ピクセル分の画像データが読み出される。
さらに、図20に示すように、ブロック領域D1,0の画像データの読み出し処理が行われているタイミングで、バンクアドレスが「0」に設定されるとともに行アドレスが「2」に設定され、ブロック領域D1,0からの読み込み処理終了後、640番目から655番目までの16ピクセル分の画像データがバースト転送される。具体的には、図21で示すバンク0のブロック領域C2,0に格納されている16ピクセル分の画像データが読み出される。ブロック領域C2,0は、メモリ領域c2,0、c2,1、c2,2、c2,3からなる領域である。ここで、バンク0については、ブロック領域C0,0に対するアクセス処理の後、ブロック領域C2,0に対するアクセス処理が行われるため、アクセスする行アドレスを切り替える必要があるが、バンク1のブロック領域D1,0に対するデータ転送が行われているタイミングで、この行アドレスの切り替えが行われるので、空き時間が発生することなく、効率的にデータの読み出し処理が実行されるのである。
そして、ブロック領域C2,0の画像データの読み出し処理が行われているタイミングで、バンクアドレスが「1」に設定されるとともに行アドレスが「3」に設定され、ブロック領域C2,0からの読み込み処理終了後、960番目から975番目までの16ピクセル分の画像データがバースト転送される。具体的には、図22で示すバンク1のブロック領域D3,0に格納されている16ピクセル分の画像データが読み出される。ブロック領域D3,0は、メモリ領域d3,0、d3,1、d3,2、d3,3からなる領域である。同様に、バンク1については、ブロック領域D1,0に対するアクセス処理の後、ブロック領域D3,0に対するアクセス処理が行われるため、アクセスする行アドレスを切り替える必要があるが、バンク0のブロック領域C2,0に対するデータ転送が行われているタイミングで、この行アドレスの切り替えが行われるので、空き時間が発生することなく、効率的にデータの読み出し処理が実行されるのである。
以上の処理により、図18および図19に示したバンク0のブロック領域C0,0、C2,0およびバンク1のブロック領域D1,0、D3,0に格納されている0番目から15番目までの16ピクセル分の画像データおよび320番目から335番目までの16ピクセル分の画像データおよび640番目から655番目までの16ピクセル分の画像データおよび960番目から975番目までの16ピクセル分の画像データが読み出される。この画像データは、図14の画像イメージに対応させると、行方向が16ピクセルであって、列方向が同じ列の4行分の画像データである。つまり、この後、同様に、バンク0とバンク1を切り替えながら、16ピクセル単位で画像データをバースト転送し、順次、行方向が16ピクセルで、同じ列の画像データを読み出すことにより、2次元的なブロックの画像データを連続的に読み出すことが可能となるのである。そして、このような処理を16行分実行することにより、縦16ピクセル×横16ピクセルのマクロブロックに対応する画像データを連続的に読み出すことが可能となるのである。
図20〜図22を用いた説明では、ブロック領域C0,0→D1,0→C2,0→D3,0の画像データを読み出すところまでを説明した。この後、バンク0とバンク1を交互に切り替えつつ、同様に同列のブロック領域の画像データを順次読み出する。つまり、C0,0→D1,0→C2,0→D3,0→C4,0→D5,0→C6,0→D7,0→C8,0→D9,0→C10,0→D11,0→C12,0→D13,0→C14,0→D15,0の順でブロック領域を読み出すことにより、縦16ピクセル×横16ピクセルのマクロブロックに対応する画像データを読み出すことが可能となるのである。
また、上述したように、図14に示すようなバンク0とバンク1に対する格納ルールが満たされていれば、2次元画像の異なる水平ラインの画像データが、SDRAM4の同一の行に格納されていてもよい。たとえば、2次元画像データの1ライン目と2ライン目の画像データが、ともにSDRAM4の1行目のメモリ領域に格納されてもよいことを説明した。この場合にも、マクロブロック単位でのデータの読み出し処理は、高速に行うことが可能である。つまり、16ピクセル単位で、バンクを切り替えながら、画像データが格納されていることにより、一方のバンクから画像データを読み出している間に、他方のバンクの行を切り替えることが可能となるからである。これにより、SDRAM4に対するアクセス行を変更する際にも、空き時間を発生させることなく、読み出し処理を行うことが可能である。また、図14に示すようなバンク0とバンク1に対する格納ルールが満たされていれば、2次元画像データの水平1ラインがSDRAM4の複数の行にまたがって格納されていてもよい。あるいは、2次元画像の各水平ラインの列方向の順序と、SDRAM4に格納される列方向の順序が異なっていてもよいし、とびとびの行に格納されるようになっていてもよい。
このように、マクロブロック単位で画像データを高速に読み出すことが可能であるが、MPEG処理部2により、マクロブロック単位で画像データを書き込む処理も同様である。この書き込み処理も、図20で示したタイミング図、図21、図22で示したアクセス順序で行えばよい。つまり、ブロック領域C0,0→D1,0→C2,0→D3,0→C4,0・・・の順で画像データを書き込むようにすればよい。これにより、マクロブロック単位での画像データの読み込みおよび書き込み両方の処理を高速に行うことが可能である。
以上説明した方法により、縦16ピクセル×横16ピクセルのマクロブロックに対するアクセスを行った後、さらに、隣り合うマクロブロックにアクセスする方法を説明する。図14の画像イメージを用いて説明すると、0番目から15番目までのピクセルデータを含むマクロブロックにアクセスした後に、続けて16番目から31番目までのピクセルデータを含むマクロブロックにアクセスするような処理である。
ここで、上述したように、0番目から15番目までのピクセルデータを含むマクロブロックに対するアクセスにおいて、最後にアクセスするブロック領域はバンク1のブロック領域D15,0であった。このため、続けて16番目から31番目までのピクセルデータを含むマクロブロックにアクセスする場合、最初の16番目から31番目のピクセルデータもバンク1に格納されているため、バンク1に連続してアクセスする必要がある。そして、ブロック領域D15,0とブロック領域D0,0とがSDRAM4の異なる行である場合(この実施の形態では、異なる行に格納されている。)には、行アドレスを切り替える処理が発生し、処理速度が低下する。
そこで、本実施の形態においては、続けて隣り合うマクロブロックにアクセスする場合には、そのアクセス方向を列方向について逆にするようにする。つまり、図23および図24に示すように、このマクロブロックに対しては、図21および図22で示した方法に比べて列方向のアクセス順序を逆転させるのである。
具体的には、まず、ブロック領域C15,0に対するアクセスを行い、次に、ブロック領域D14,0にアクセスする。そして、バンク0とバンク1を切り替えながら同様のアクセスを行う。つまり、C15,0→D14,0→C13,0→D12,0→C11,0→D10,0→C9,0→D8,0→C7,0→D6,0→C5,0→D4,0→C3,0→D2,0→C1,0→D0,0の順でブロック領域を読み出すことにより、縦16ピクセル×横16ピクセルのマクロブロックに対応する画像データを読み出すことが可能となるのである。これにより、隣り合うマクロブロックについて連続してアクセスする場合でも、処理の全般にわたって常にバンク0とバンク1に対するアクセスが交互になるので、一方のバンクに対するアクセスを行っている間に、他方のバンクの行アドレスを切り替える処理を行うことが可能である。
次に、図25を参照して、データの種別に応じた各メモリ領域への画像データの格納方法について説明する。ここでも、図13で示したように、画像データは、YUV4:2:0フォーマットの場合を説明する。
図25で示したタイミング図の中で、前半の2つのバースト転送処理は、輝度データに対する処理である。後半の2つのバースト転送処理は、色差データに対する処理である。まず、輝度データの場合には、4つのYデータを1つのメモリ領域に格納する。つまり、1画素のYデータは8ビットであり、本実施の形態におけるSDRAM4の1アドレスに対応するメモリ領域は32ビットのデータを格納可能としているので、4ピクセル分のYデータを1アドレスのメモリ領域に格納するのである。このとき、SDRAM4にアクセスする32ビットのデータ線を4等分して、それぞれ4ピクセル分のYデータ転送用に使用する。このようにして、バンク0には、4つのアドレスに対応した4つのメモリ領域に16ピクセル分のYデータが格納される。続いて、バンク1において、4つのアドレスに対応した4つのメモリ領域に16ピクセル分のYデータが格納されるのである。
次に、色差データの格納方法について説明する。この実施の形態では、UデータとVデータの組を2組パッキングして1つのメモリ領域に格納する。つまり、UデータおよびVデータは、いずれも1画素8ビットのデータであり、本実施の形態におけるSDRAM4の1アドレスに対応するメモリ領域は32ビットのデータを格納可能としているので、UデータとVデータからなる4ピクセル分のデータを1アドレスのメモリ領域に格納するのである。このとき、SDRAM4にアクセスする32ビットのデータ線を4等分して、それぞれ4ピクセル分のUデータとVデータに割り当てる。このようにして、バンク0には、4つのアドレスに対応した4つのメモリ領域に16ピクセル分の色差データが格納される。続いて、バンク1において、4つのアドレスに対応した4つのメモリ領域に16ピクセル分の色差データが格納されるのである。
このように、UデータとVデータをパッキングして、1つのメモリ領域に格納することにより、輝度データについてSDRAM4にアクセスする場合と、色差データについてSDRAM4にアクセスする場合とで、同じ転送手順を実行することが可能となるのである。
具体的には、まず、輝度データについてマクロブロック単位のデータアクセスを行い、次に、同じマクロブロック領域内の色差データについてマクロブロック単位のデータアクセスを行うことになるが(図25は、輝度データについてのデータアクセス処理と色差データに対するデータアクセス処理がちょうど入れ替わるタイミングを示している。)、輝度データに対するデータアクセスと色差データに対するデータアクセスを同じ手順とすることができるのである。ただし、YUV4:2:0フォーマットの場合には、UデータとVデータの数が行方向(縦方向)にも1/2に間引かれているので、1つのマクロブロックに対する処理は、輝度データに対する処理の半分の処理でよい。
{第3の実施の形態}
次に、本発明の第3の実施の形態について説明する。第3の実施の形態における画像処理装置も、図1で説明した画像処理装置と同様である。第3の実施の形態におけるSDRAM4は、1アドレスのメモリ領域に対して2バイト(16ビット)のデータを格納可能としているが、第1の実施の形態とは異なり、SDRAM4は、連続する8つのアドレスに対して連続的にデータアクセスを行うバースト転送処理を可能としている。つまり、SDRAM4は、128ビット(8アドレス×16ビット)のデータをバースト転送可能とした、16ビットDDR(double data rate)SDRAMである。
この実施の形態においても、2次元画像をラスタ順に16ピクセルごとにブロック化し、図14で示したように、これら各ブロックが千鳥状にバンク0とバンク1に割り当てられて、SDRAM4に格納されることになる。
図26は、メモリ制御部3によって、入力部1より出力されたラスタ順の画像データが、SDRAM4に書き込まれる際のタイミング図である。また、図27は、SDRAM4のバンク0に対する書き込み順序を示す図であり、図28は、SDRAM4のバンク1に対する書き込み順序を示す図である。また、図29は、バンク0の各メモリ領域に格納される画像データのピクセル番号を示す図であり、図30は、バンク1の各メモリ領域に格納される画像データのピクセル番号を示す図である。
ここで、図27および図28において、メモリ領域e0,0、f0,0等の添え字は、1番目の添え字がメモリ領域の行番号を示し、2番目の添え字がメモリ領域の列番号を示している。これらの表記ルールも第1の実施の形態と同様である。また、図27および図28におけるブロック領域E0,0、F0,0等は、8つのメモリ領域からなるブロックを示している。ブロック領域の添え字は、そのブロック領域に含まれている先頭(左端)のメモリ領域の行番号および列番号に対応している。
図26において、まず、バンクアドレスに「0」が設定され、行アドレスおよび列アドレスにいずれも「0」が設定され、0番目から15番目までの16ピクセル分の画像データが、バースト転送される。つまり、1ピクセルの画像データが8ビットであるので、16ピクセル分の画像データ(16ピクセル×8ビット)をバースト転送するのである。この16ピクセル分の画像データは、図27に示すバンク0のブロック領域E0,0に格納される。ブロック領域E0,0は、メモリ領域e0,0、e0,1、e0,2、e0,3、e0,4、e0,5、e0,6、e0,7からなる領域である。なお、図26の表記ルールも図3等と同様である。
一方、図26に示すように、0番目から15番目までの16ピクセル分の画像データが、ブロック領域E0,0に書き込まれているタイミングで、バンクアドレスが「1」に設定される。そして、ブロック領域E0,0への書き込み終了後、16番目から31番目までの16ピクセル分の画像データがバースト転送される。この16ピクセル分の画像データは、図28に示す、バンク1のブロック領域F0,0に格納される。ブロック領域F0,0は、メモリ領域f0,0、f0,1、f0,2、f0,3、f0,4、f0,5、f0,6、f0,7からなる領域である。
さらに、16番目から31番目までの16ピクセル分の画像データがブロック領域F0,0に書き込まれているタイミングで、バンクアドレスが「0」に設定される。そして、ブロック領域F0,0への書き込み終了後、32番目から47番目までの16ピクセル分の画像データがバースト転送される。この16ピクセル分の画像データは、列アドレスに「8」が設定されることにより、図27に示すバンク0のブロック領域E0,8に格納される。ブロック領域E0,8は、メモリ領域e0,8、e0,9、e0,10、e0,11、e0,12、e0,13、e0,14、e0,15からなる領域である。
そして、ブロック領域E0,8に書き込みが行われているタイミングで、バンクアドレスが「1」に設定される。そして、ブロック領域E0,8への書き込み終了後、48番目から63番目までの16ピクセル分の画像データがバースト転送される。この16ピクセル分の画像データは、列アドレスに「8」が設定されることにより、図28に示すバンク1のブロック領域F0,8に格納される。ブロック領域F0,8は、メモリ領域f0,8、f0,9、f0,10、f0,11、f0,12、f0,13、f0,14、f0,15からなる領域である。
以上の処理により、図29および図30に示すように、バンク0のブロック領域E0,0、E0,8およびバンク1のブロック領域F0,0、F0,8に0番目から63番目までの64ピクセル分の画像データが格納される。この後は、同様に、バンク0とバンク1を切り替えながら、16ピクセル単位で画像データをバースト転送し、順次SDRAM4に画像データを格納するのである。図27および図28における矢印は、それぞれバンク0およびバンク1への格納順序を示している。上述した手順により、2次元画像の0行目の画像データが矢印の方向に格納された後、1行目の画像データが同様に矢印の方向に格納され、順次、各行の画像データが格納される。また、SDRAM4に対する書き込み手順を、ブロック領域を用いて表現すると、ブロック領域E0,0→F0,0→E0,8→F0,8→E0,16→F0,16→C0,24→・・・の順で、2次元画像データを順次格納することになる。
このように、2次元画像の行方向については、16ピクセルごとにバンク0とバンク1が交互になるようSDRAM4に対してデータが格納される。そして、図14でも示したように、列方向については、1行ごとにバンク0とバンク1が交互になるようにSDRAM4に格納するのである。
そして、第2の実施の形態で説明したように、行方向のピクセル数が16ピクセルの偶数倍である場合には、バッファを利用することにより、列方向については2次元画像が1行ごとにバンク0とバンク1に対して交互に格納されるようにする。また、行方向のピクセル数が16ピクセルの奇数倍である場合には、バッファを利用する必要はない。
このように、MPEG処理の対象となる2次元画像データをバンク0とバンク1とを切り替えながら、2次元画像イメージでSDRAM4に格納する。そして、画像の列方向についてはバンク0とバンク1が交互になるようにSDRAM4に格納する。このため、マクロブロックに注目した場合、SDRAM4の複数の行に画像データがまたがって格納されることとなるが、アクセスする行を切り替える場合にも、空き時間が発生することはない。このアクセス処理については、後で具体的に説明するが、バンク1のデータにアクセスしているタイミングで、バンク0についてアクセスする行を切り替え、バンク0のデータにアクセスしているタイミングで、バンク1についてアクセスする行を切り替えることが可能となるからである。
また、第1あるいは第2の実施の形態で説明したように、ラスタ順で入力する2次元画像データの1ライン目の画像データを、SDRAM4の1行目(バンク0あるいはバンク1)に格納した後、2ライン目の画像データを続けて、SDRAM4の1行目に格納するような方法をとってもよい。同様に、SDRAM4の各行において、画像データのラインに対応して格納する行を変更させることはなく、順次、画像データを詰めて格納するようにしてもよい。あるいは逆に、2次元画像の水平1ラインのデータサイズがSDRAM4の1行に格納可能なサイズ(バンク0とバンク1の1行に格納可能なサイズの和)より大きくてもよい。この場合にも、16ピクセル単位で画像データをいずれかのバンクの同一行に格納するようにし、2次元画像の水平1ラインの途中で各バンクの行アドレスを変更するようにしても問題はない。つまり、本発明は、本質的には、マクロブロックを構成する1行の16ピクセル分の画像データが全て一方のバンクの同一行に格納され、マクロブロックを構成する次の行の16ピクセル分の画像データが全て他方のバンクの同一行に格納されることである。
次に、MPEG処理部2がMPEG圧縮処理を行うために、SDRAM4に格納された画像データにマクロブロック単位でアクセスする処理について説明する。なお、このアクセス処理には、MPEG処理部2がMPEG圧縮処理を行う対象であるマクロブロック単位の画像データを読み出す処理と、マクロブロック単位の画像データを書き込む処理がある。
図31は、メモリ制御部3によって、SDRAM4に格納された画像データにアクセスする処理のタイミング図である。また、図32は、SDRAM4のバンク0に対するアクセス順序を示す図であり、図33は、SDRAM4のバンク1に対するアクセス順序を示す図である。さらに、図32および図33で示した方法によりマクロブロックにアクセスした後、続けて隣り合うマクロブロックをアクセスする方法を示したのが図34および図35である。図34は、SDRAM4のバンク0に対するアクセス順序を示す図であり、図35は、SDRAM4のバンク1に対するアクセス順序を示す図である。なお、図31ないし図35は、マクロブロック単位での画像データの読み出し処理と書き込み処理に共通の特徴を示す図である。また、図32ないし図35における各ブロック領域E0,0、F0,0等は、図27および図28における各ブロック領域E0,0、F0,0等に対応しており、上述した書き込み処理により、図29および図30で示したような配列で2次元画像データが格納されているものとする。
まず、マクロブロック単位での画像データの読み出し処理について説明する。図31において、まず、バンクアドレスに「0」が設定され、行アドレスおよび列アドレスにいずれも「0」が設定され、0番目から15番目までの16ピクセル分の画像データが、バースト転送される。具体的には、図32で示すバンク0のブロック領域E0,0に格納されている16ピクセル分の画像データが読み出される。なお、図31における表記ルールは、図3等と同様である。
一方、図31に示すように、ブロック領域E0,0の画像データに対する読み出し処理が行われているタイミングで、バンクアドレスが「1」に設定されるとともに行アドレスに「1」が設定され、ブロック領域E0,0からの読み込み処理終了後、320番目から335番目までの16ピクセル分の画像データがバースト転送される。具体的には、図33で示すバンク1のブロック領域F1,0に格納されている16ピクセル分の画像データが読み出される。
さらに、図31に示すように、ブロック領域F1,0の画像データの読み出し処理が行われているタイミングで、バンクアドレスが「0」に設定されるとともに行アドレスに「2」が設定され、ブロック領域F1,0からの読み込み処理終了後、640番目から655番目までの16ピクセル分の画像データがバースト転送される。具体的には、図33で示すバンク0のブロック領域E2,0に格納されている16ピクセル分の画像データが読み出される。ブロック領域E2,0は、メモリ領域e2,0、e2,1、e2,2、e2,3、e2,4、e2,5、e2,6、e2,7からなる領域である。ここで、バンク0については、ブロック領域E0,0に対するアクセス処理の後、ブロック領域E2,0に対するアクセス処理が行われるため、アクセスする行アドレスを切り替える必要があるが、バンク1のブロック領域F1,0に対するデータ転送が行われているタイミングで、この行アドレスの切り替えが行われるので、空き時間が発生することなく、効率的にデータの読み出し処理が実行されるのである。
そして、ブロック領域E2,0の画像データの読み出し処理が行われているタイミングで、バンクアドレスが「1」に設定されるとともに行アドレスに「3」が設定され、ブロック領域E2,0からの読み込み処理終了後、960番目から975番目までの16ピクセル分の画像データがバースト転送される。具体的には、図33で示すバンク1のブロック領域F3,0に格納されている16ピクセル分の画像データが読み出される。ブロック領域F3,0は、メモリ領域f3,0、f3,1、f3,2、f3,3、f3,4、f3,5、f3,6、f3,7からなる領域である。同様に、バンク1については、ブロック領域F1,0に対するアクセス処理の後、ブロック領域F3,0に対するアクセス処理が行われるため、アクセスする行アドレスを切り替える必要があるが、バンク0のブロック領域E2,0に対するデータ転送が行われているタイミングで、この行アドレスの切り替えが行われるので、空き時間が発生することなく、効率的にデータの読み出し処理が実行されるのである。
以上の処理により、図29および図30に示したバンク0のブロック領域E0,0、E2,0およびバンク1のブロック領域F1,0、F3,0に格納されている0番目から15番目までの16ピクセル分の画像データおよび320番目から335番目までの16ピクセル分の画像データおよび640番目から655番目までの16ピクセル分の画像データおよび960番目から975番目までの16ピクセル分の画像データが読み出される。この画像データは、図14の画像イメージに対応させると、行方向が16ピクセルであって、列方向が同じ列の4行分の画像データである。つまり、この後、同様に、バンク0とバンク1を切り替えながら、16ピクセル単位で画像データをバースト転送し、順次、行方向が16ピクセルで、同じ列の画像データを読み出すことにより、2次元的なブロックの画像データを連続的に読み出すことが可能となるのである。そして、このような処理を16行分実行することにより、縦16ピクセル×横16ピクセルのマクロブロックに対応する画像データを連続的に読み出すことが可能となるのである。
図31〜図33を用いた説明では、ブロック領域E0,0→F1,0→E2,0→F3,0の画像データを読み出すところまでを説明した。この後、バンク0とバンク1を交互に切り替えつつ、同様に同列のブロック領域の画像データを順次読み出する。つまり、E0,0→F1,0→E2,0→F3,0→E4,0→F5,0→E6,0→F7,0→E8,0→F9,0→E10,0→F11,0→E12,0→F13,0→E14,0→F15,0の順でブロック領域を読み出すことにより、縦16ピクセル×横16ピクセルのマクロブロックに対応する画像データを読み出すことが可能となるのである。
また、上述したように、図14に示すようなバンク0とバンク1に対する格納ルールが満たされていれば、2次元画像の複数の水平ラインのデータが、SDRAM4の同一の行に格納されていてもよいし、2次元画像データの水平1ラインがSDRAM4の複数の行にまたがって格納されていてもよい。あるいは、2次元画像の各水平ラインの列方向の順序と、SDRAM4に格納される列方向の順序が異なっていてもよいし、とびとびの行に格納されるようになっていてもよい。
このように、マクロブロック単位で画像データを高速に読み出すことが可能であるが、MPEG処理部2により、マクロブロック単位で画像データを書き込む処理も同様である。この書き込み処理も、図31で示したタイミング図、図32、図33で示したアクセス順序で行えばよい。つまり、ブロック領域E0,0→F1,0→E2,0→F3,0→E4,0・・・の順で画像データを書き込むようにすればよい。これにより、マクロブロック単位での画像データの読み込みおよび書き込み両方の処理を高速に行うことが可能である。
以上説明した方法により、縦16ピクセル×横16ピクセルのマクロブロックに対するアクセスを行った後、さらに、隣り合うマクロブロックにアクセスする方法は、第2の実施の形態と同様である。続けて隣り合うマクロブロックにアクセスする場合には、そのアクセス方向を列方向について逆にするようにする。つまり、図34および図35に示すように、このマクロブロックに対しては、図32および図33で示した方法に比べて列方向のアクセスを逆転させるのである。
まず、ブロック領域E15,0に対するアクセスを行い、次に、ブロック領域F14,0にアクセスする。そして、バンク0とバンク1を切り替えながら同様のアクセスを行う。つまり、E15,0→F14,0→E13,0→F12,0→E11,0→F10,0→E9,0→F8,0→E7,0→F6,0→E5,0→F4,0→E3,0→F2,0→E1,0→F0,0の順でブロック領域を読み出すことにより、縦16ピクセル×横16ピクセルのマクロブロックに対応する画像データを読み出すことが可能となるのである。これにより隣り合うマクロブロックに対して連続的にアクセスする場合でも、処理の全般にわたって常にバンク0とバンク1に対するアクセスが交互になるので、一方のバンクに対するアクセスを行っている間に、他方のバンクの行を切り替える処理を行うことが可能である。
次に、図36を参照して、データの種別に応じた各メモリ領域への画像データの格納方法について説明する。ここでも、図13で示したように、画像データは、YUV4:2:0フォーマットの場合を説明する。
図36で示したタイミング図の中で、前半の2つのバースト転送処理は、輝度データに対する処理である。後半の2つのバースト転送処理は、色差データに対する処理である。まず、輝度データの場合には、2つのYデータを1つのメモリ領域に格納する。つまり、1画素のYデータは8ビットであり、本実施の形態におけるSDRAM4の1アドレスに対応するメモリ領域は16ビットのデータを格納可能としているので、2ピクセル分のYデータを1アドレスのメモリ領域に格納するのである。このとき、SDRAM4にアクセスする16ビットのデータ線のうち上位8ビットと下位8ビットを、それぞれ2ピクセル分のYデータ転送用に使用する。このようにして、バンク0には、8つのアドレスに対応した8つのメモリ領域に16ピクセル分のYデータが格納される。続いて、バンク1において、8つのアドレスに対応した8つのメモリ領域に16ピクセル分のYデータが格納されるのである。
次に、色差データの格納方法について説明する。この実施の形態では、1組のUデータとVデータをパッキングして1つのメモリ領域に格納する。つまり、UデータおよびVデータは、いずれも1画素8ビットのデータであり、本実施の形態におけるSDRAM4の1アドレスに対応するメモリ領域は16ビットのデータを格納可能としているので、UデータとVデータからなる2ピクセル分のデータを1アドレスのメモリ領域に格納するのである。このとき、SDRAM4にアクセスする16ビットのデータ線のうち、たとえば上位8ビットをUデータ転送用に割り当て、下位8ビットをVデータ転送用に割り当てる。このようにして、バンク0には、8つのアドレスに対応した8つのメモリ領域に16ピクセル分の色差データが格納される。続いて、バンク1において、8つのアドレスに対応した8つのメモリ領域に16ピクセル分の色差データが格納されるのである。
このように、UデータとVデータをパッキングして、1つのメモリ領域に格納することにより、輝度データについてSDRAM4にアクセスする場合と、色差データについてSDRAM4にアクセスする場合とで、同じ転送手順を実行することが可能となるのである。
具体的には、まず、輝度データについてマクロブロック単位のデータアクセスを行い、次に、同じマクロブロック領域内の色差データについてマクロブロック単位のデータアクセスを行うことになるが(図36は、輝度データについてのデータアクセス処理と色差データに対するデータアクセス処理がちょうど入れ替わるタイミングを示している。)、輝度データに対するデータアクセスと色差データに対するデータアクセスを同じ手順とすることができるのである。ただし、YUV4:2:0フォーマットの場合には、UデータとVデータの数が行方向(縦方向)にも1/2に間引かれているので、1つのマクロブロックに対する処理は、輝度データに対する処理の半分の処理でよい。
以上の本発明の3つの実施の形態について説明した。そして、上記各実施の形態においては、メモリとしてSDRAMを例に説明したが、本発明は、SDRAMのみならず、一般的にDRAMに対して適用可能である。
実施の形態に係る画像処理装置の全体概略図である。 第1の実施の形態における2次元画像データのDRAMに対する格納イメージを示す図である。 第1の実施の形態におけるSDRAMに対する書き込みタイミング図である。 バンク0に対する書き込み順を示す図である。 バンク1に対する書き込み順を示す図である。 バンク0に格納される画像データのピクセル番号を示す図である。 バンク1に格納される画像データのピクセル番号を示す図である。 第1の実施の形態におけるマクロブロック単位でのアクセスタイミングを示す図である。 バンク0に対するアクセス順を示す図である。 バンク1に対するアクセス順を示す図である。 バンク0およびバンク1を使用したマクロブロック単位でのアクセスイメージを示す図である。 1アドレスに対する書き込み方法を具体的に示すタイミング図である。 YUV4:2:0フォーマットを示す図である。 第2および第3の実施の形態における2次元画像データのDRAMに対する格納イメージを示す図である。 第2の実施の形態におけるSDRAMに対する書き込みタイミング図である。 バンク0に対する書き込み順を示す図である。 バンク1に対する書き込み順を示す図である。 バンク0に格納される画像データのピクセル番号を示す図である。 バンク1に格納される画像データのピクセル番号を示す図である。 第2の実施の形態におけるマクロブロック単位でのアクセスタイミングを示す図である。 バンク0に対するアクセス順を示す図である。 バンク1に対するアクセス順を示す図である。 隣り合うマクロブロックにアクセスする際のバンク0に対するアクセス順を示す図である。 隣り合うマクロブロックにアクセスする際のバンク1に対するアクセス順を示す図である。 1アドレスに対する書き込み方法を具体的に示すタイミング図である。 第3の実施の形態におけるSDRAMに対する書き込みタイミング図である。 バンク0に対する書き込み順を示す図である。 バンク1に対する書き込み順を示す図である。 バンク0に格納される画像データのピクセル番号を示す図である。 バンク1に格納される画像データのピクセル番号を示す図である。 第3の実施の形態におけるマクロブロック単位でのアクセスタイミングを示す図である。 バンク0に対するアクセス順を示す図である。 バンク1に対するアクセス順を示す図である。 隣り合うマクロブロックにアクセスする際のバンク0に対するアクセス順を示す図である。 隣り合うマクロブロックにアクセスする際のバンク1に対するアクセス順を示す図である。 1アドレスに対する書き込み方法を具体的に示すタイミング図である。
符号の説明
3 メモリ制御部
4 SDRAM

Claims (21)

  1. 第1バンクおよび第2バンクを備えるDRAMにアクセスする方法であって、
    MPEGの処理対象である2次元画像をラスタ順で入力する第1工程と、
    前記2次元画像の行方向のデータについては8ピクセルごとに前記第1バンクおよび前記第2バンクを交互に切り替えながら前記DRAMに格納し、前記2次元画像の列方向のデータについては前記DRAMの同一バンクに格納する第2工程と、
    を備えることを特徴とするDRAMアクセス方法。
  2. 請求項1に記載のDRAMアクセス方法であって、さらに、
    前記第2工程によって格納された画像データに対して前記第1バンクと前記第2バンクを交互に切り替えながら8ピクセル単位でアクセスすることにより、縦16ピクセル×横16ピクセルのMPEG処理用のマクロブロックにアクセスする第3工程、
    を備えることを特徴とするDRAMアクセス方法。
  3. 請求項2に記載のDRAMアクセス方法であって、
    前記第3工程は、
    前記第1バンクに格納されたマクロブロックにおける第m行目(mは0以上14以下の整数)の8ピクセルの画像データにアクセスした後、前記第2バンクに格納されたラスタ順で次の8ピクセルの画像データにアクセスし、次に、前記第1バンクに格納されたマクロブロックにおける第m+1行目の8ピクセルの画像データにアクセスした後、前記第2バンクに格納されたラスタ順で次の8ピクセルの画像データにアクセスする工程、
    を含むことを特徴とするDRAMアクセス方法。
  4. 請求項1に記載のDRAMアクセス方法であって、
    前記第2工程は、
    前記2次元画像の第n行目(nは0以上の整数)の画像データを、前記第1バンクおよび前記第2バンクの第n行目の記憶領域に格納し、第n+1行目の画像データを、前記第1バンクおよび前記第2バンクの第n+1行目の記憶領域に格納する工程、
    を含むことを特徴とするDRAMアクセス方法。
  5. 請求項4に記載のDRAMアクセス方法であって、
    前記第3工程は、
    前記第1バンクの第n行目に格納されたマクロブロックにおける第m行目(mは0以上14以下の整数)の8ピクセルの画像データにアクセスした後、前記第2バンクの第n行目に格納されたラスタ順で次の8ピクセルの画像データにアクセスし、次に、前記第1バンクの第n+1行目に格納されたマクロブロックにおける第m+1行目の8ピクセルの画像データにアクセスした後、前記第2バンクの第n+1行目に格納されたラスタ順で次の8ピクセルの画像データにアクセスする工程、
    を含むことを特徴とするDRAMアクセス方法。
  6. 請求項1ないし請求項5のいずれかに記載のDRAMアクセス方法であって、
    前記DRAMは1アドレスに16ビットのデータを格納可能としており、前記2次元画像の各ピクセルは8ビットの情報を備えることにより、前記DRAMの前記第1および第2バンクに対しては、それぞれ同一行の連続する4つのアドレスに対して8ピクセルの画像データが格納されることを特徴とするDRAMアクセス方法。
  7. 請求項6に記載のDRAMアクセス方法であって、
    前記DRAMに対してラスタ順で連続する8ピクセルの画像データが、バースト転送されることを特徴とするDRAMアクセス方法。
  8. 請求項6または請求項7に記載のDRAMアクセス方法であって、
    前記DRAMに格納される画像データが、Y(輝度)データの場合には、前記DRAMの1つのアドレスに対して2ピクセル分のYデータが格納されることを特徴とするDRAMアクセス方法。
  9. 請求項6ないし請求項8のいずれかに記載のDRAMアクセス方法であって、
    前記DRAMに格納される画像データが、U,Y(色差)データの場合には、前記DRAMの1つのアドレスに対して1組のUデータとVデータが格納されることを特徴とするDRAMアクセス方法。
  10. 第1バンクおよび第2バンクを備えるDRAMにアクセスする方法であって、
    MPEGの処理対象である2次元画像をラスタ順で入力する第1工程と、
    前記2次元画像の行方向のデータについては16ピクセルごとに前記第1バンクおよび前記第2バンクを交互に切り替えながら前記DRAMに格納し、前記2次元画像の列方向のデータについては1行ごとに前記第1バンクおよび前記第2バンクが交互となるように前記DRAMに格納する第2工程と、
    を備えることを特徴とするDRAMアクセス方法。
  11. 請求項10に記載のDRAMアクセス方法であって、さらに、
    前記第2工程によって格納された画像データに対して前記第1バンクと前記第2バンクを交互に切り替えながら16ピクセル単位でアクセスすることにより、縦16ピクセル×横16ピクセルのMPEG処理用のマクロブロックにアクセスする第3工程、
    を備えることを特徴とするDRAMアクセス方法。
  12. 請求項11に記載のDRAMアクセス方法であって、
    前記第3工程は、
    前記第1バンクに格納されたマクロブロックにおける第m行目(mは0以上14以下の整数)の16ピクセルの画像データにアクセスした後、次に、前記第2バンクに格納されたマクロブロックにおける第m+1行目の16ピクセルの画像データにアクセスする工程、
    を含むことを特徴とするDRAMアクセス方法。
  13. 請求項11または請求項12に記載のDRAMアクセス方法であって、
    前記第3工程は、2次元画像上において隣り合うマクロブロックに対して連続してアクセスする際には、隣り合うマクロブロックについて、列方向のアクセス順序を逆方向とすることを特徴とするDRAMアクセス方法。
  14. 請求項12に記載のDRAMアクセス方法であって、
    前記第3工程は、
    請求項2に記載の工程によりマクロブロックに対してアクセスした後、そのマクロブロックに隣り合うマクロブロックに対して連続してアクセスする際には、前記第1バンクに格納されたマクロブロックにおける第k行目(kは1以上15以下の整数)の16ピクセルの画像データにアクセスした後、次に、前記第2バンクに格納されたマクロブロックにおける第k−1行目の16ピクセルの画像データにアクセスする工程、
    を含むことを特徴とするDRAMアクセス方法。
  15. 請求項10ないし請求項14のいずれかに記載のDRAMアクセス方法であって、
    前記DRAMは1アドレスに32ビットのデータを格納可能としており、前記2次元画像の各ピクセルは8ビットの情報を備えることにより、前記DRAMの前記第1および第2バンクに対しては、それぞれ同一行の連続する4つのアドレスに対して16ピクセルの画像データが格納されることを特徴とするDRAMアクセス方法。
  16. 請求項10ないし請求項14のいずれかに記載のDRAMアクセス方法であって、
    前記DRAMは1アドレスに16ビットのデータを格納可能としており、前記2次元画像の各ピクセルは8ビットの情報を備えることにより、前記DRAMの前記第1および第2バンクに対しては、それぞれ同一行の連続する8つのアドレスに対して16ピクセルの画像データが格納されることを特徴とするDRAMアクセス方法。
  17. 請求項15または請求項16に記載のDRAMアクセス方法であって、
    前記DRAMに対してラスタ順で連続する16ピクセルの画像データが、バースト転送されることを特徴とするDRAMアクセス方法。
  18. 請求項15に記載のDRAMアクセス方法であって、
    前記DRAMに格納される画像データが、Y(輝度)データの場合には、前記DRAMの1つのアドレスに対して4ピクセル分のYデータが格納されることを特徴とするDRAMアクセス方法。
  19. 請求項15または請求項18に記載のDRAMアクセス方法であって、
    前記DRAMに格納される画像データが、U,Y(色差)データの場合には、前記DRAMの1つのアドレスに対してUデータとVデータの組が2組格納されることを特徴とするDRAMアクセス方法。
  20. 請求項16に記載のDRAMアクセス方法であって、
    前記DRAMに格納される画像データが、Y(輝度)データの場合には、前記DRAMの1つのアドレスに対して2ピクセル分のYデータが格納されることを特徴とするDRAMアクセス方法。
  21. 請求項16または請求項20に記載のDRAMアクセス方法であって、
    前記DRAMに格納される画像データが、U,Y(色差)データの場合には、前記DRAMの1つのアドレスに対して1組のUデータとVデータとが格納されることを特徴とするDRAMアクセス方法。
JP2004226872A 2004-01-20 2004-08-03 Dramアクセス方法 Pending JP2005236946A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004226872A JP2005236946A (ja) 2004-01-20 2004-08-03 Dramアクセス方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004011750 2004-01-20
JP2004226872A JP2005236946A (ja) 2004-01-20 2004-08-03 Dramアクセス方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010276844A Division JP4997418B2 (ja) 2004-01-20 2010-12-13 Dramアクセス方法

Publications (1)

Publication Number Publication Date
JP2005236946A true JP2005236946A (ja) 2005-09-02

Family

ID=35019402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004226872A Pending JP2005236946A (ja) 2004-01-20 2004-08-03 Dramアクセス方法

Country Status (1)

Country Link
JP (1) JP2005236946A (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08186826A (ja) * 1994-12-28 1996-07-16 Graphics Commun Lab:Kk 画像復号処理方法およびそれに用いる記憶装置並びに画像復号装置
JPH08307875A (ja) * 1995-05-02 1996-11-22 Matsushita Electric Ind Co Ltd 画像メモリ装置および動きベクトル検出回路
JPH10162131A (ja) * 1996-11-28 1998-06-19 Matsushita Electric Ind Co Ltd 画像処理装置
JPH10191236A (ja) * 1996-12-25 1998-07-21 Nec Corp 画像処理装置及び画像データメモリ配置方法
JPH10304354A (ja) * 1997-04-28 1998-11-13 Toshiba Corp 動画像復号方法及び動画像復号装置
JPH11317962A (ja) * 1998-05-07 1999-11-16 Hitachi Ltd データ格納方法およびデータ転送回路
JP2000172560A (ja) * 1998-12-03 2000-06-23 Matsushita Electric Ind Co Ltd メモリ制御装置
JP2003186740A (ja) * 2001-12-19 2003-07-04 Matsushita Electric Ind Co Ltd メモリ制御装置、及びメモリ制御方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08186826A (ja) * 1994-12-28 1996-07-16 Graphics Commun Lab:Kk 画像復号処理方法およびそれに用いる記憶装置並びに画像復号装置
JPH08307875A (ja) * 1995-05-02 1996-11-22 Matsushita Electric Ind Co Ltd 画像メモリ装置および動きベクトル検出回路
JPH10162131A (ja) * 1996-11-28 1998-06-19 Matsushita Electric Ind Co Ltd 画像処理装置
JPH10191236A (ja) * 1996-12-25 1998-07-21 Nec Corp 画像処理装置及び画像データメモリ配置方法
JPH10304354A (ja) * 1997-04-28 1998-11-13 Toshiba Corp 動画像復号方法及び動画像復号装置
JPH11317962A (ja) * 1998-05-07 1999-11-16 Hitachi Ltd データ格納方法およびデータ転送回路
JP2000172560A (ja) * 1998-12-03 2000-06-23 Matsushita Electric Ind Co Ltd メモリ制御装置
JP2003186740A (ja) * 2001-12-19 2003-07-04 Matsushita Electric Ind Co Ltd メモリ制御装置、及びメモリ制御方法

Similar Documents

Publication Publication Date Title
US6496192B1 (en) Modular architecture for image transposition memory using synchronous DRAM
KR100817057B1 (ko) 동일한 픽셀 데이터 그룹에 포함되는 픽셀 데이터들을메모리의 동일한 뱅크 어드레스로 매핑하는 매핑 방법 및비디오 시스템
JPH10191236A (ja) 画像処理装置及び画像データメモリ配置方法
JP4971442B2 (ja) ピクセルデータ変換のための画像処理装置及び方法
JPH08278779A (ja) グラフィックス用フレームメモリ装置
US7979622B2 (en) Memory access method
US8345167B2 (en) Methods of storing and accessing pictures
US8269786B2 (en) Method for reading and writing image data in memory
US7061496B2 (en) Image data processing system and image data reading and writing method
JP2011053671A (ja) 半導体集積回路
US20080044107A1 (en) Storage device for storing image data and method of storing image data
US20050088539A1 (en) Image processing apparatus and image processing method
US20090189919A1 (en) Image scaling method
JP4997418B2 (ja) Dramアクセス方法
JP2007189687A (ja) 画面のラインをピクセル単位で交互に保存するビデオデコーディング装置、ビデオデコーディング方法及び基準画面の保存方法
JP2005236946A (ja) Dramアクセス方法
WO2013099518A1 (ja) 画像処理装置及びメモリアクセス制御方法
JP3288327B2 (ja) 映像メモリ回路
JPH10262220A (ja) 半導体集積回路
JPH11306343A (ja) 2次元データ回転処理装置
US20120218279A1 (en) Image processing apparatus and memory access method thereof
JP2008146235A (ja) 画像処理装置
US20050021902A1 (en) System, method, and apparatus for efficiently storing macroblocks
JP4821410B2 (ja) メモリ制御方法、メモリ制御装置、画像処理装置およびプログラム
JP3405079B2 (ja) メモリ割り付け方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070726

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20070726

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101102

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110308