(57)【要約】  ルックアップテーブル１０は、ブロックの画素アドレスの水平成分をセルの水平成分の画素数で除算した結果を出力する。ルックアップテーブル１２は、ブロックの画素アドレスの垂直成分をセルの垂直成分の画素数で除算した結果を出力する。ルックアップテーブル１４は、ブロックの画素アドレスの水平成分をセルの水平成分の画素数で除算した際の剰余を出力する。ルックアップテーブル１６は、ブロックの画素アドレスの垂直成分をセルの垂直成分の画素数で除算した際の剰余を出力する。ルックアップテーブル１０，１２の出力値を、メモリにバーストアクセスするためのセルのアドレスとして用いる。ルックアップテーブル１４，１６の出力値を、セル内の画素アドレスとして用いる。
2012120674.tif 000002
【特許請求の範囲】
【請求項１】
画像フレームが格納されたメモリに対する１バーストアクセスで得られるｂｉｔ数を１画素あたりのｂｉｔ数で切り捨て除算することで１バーストアクセスあたりの画素数を求め、この画素数以下の画素数を持つ矩形領域をセルとして前記画像フレーム内に配置し、前記セルを用いて前記メモリにアクセスして、前記画像フレームの一部のブロックのデータを読み出すメモリアクセス装置であって、
前記ブロックの画素アドレスの水平成分を前記セルの水平成分の画素数で除算した結果を出力する第１のルックアップテーブルと、
前記ブロックの画素アドレスの垂直成分を前記セルの垂直成分の画素数で除算した結果を出力する第２のルックアップテーブルと、
前記ブロックの画素アドレスの水平成分を前記セルの水平成分の画素数で除算した際の剰余を出力する第３のルックアップテーブルと、
前記ブロックの画素アドレスの垂直成分を前記セルの垂直成分の画素数で除算した際の剰余を出力する第４のルックアップテーブルとを備え、
前記第１のルックアップテーブルの出力値と前記第２のルックアップテーブルの出力値を、前記メモリにバーストアクセスするための前記セルのアドレスとし、
前記第３のルックアップテーブルの出力値と前記第４のルックアップテーブルの出力値を、前記セル内の画素アドレスとして用いることを特徴とするメモリアクセス装置。
【請求項２】
アクセスする水平方向又は垂直方向の画素座標が非整数画素精度である場合は、前記ブロックの始点座標及び終点座標で表される矩形領域に対し、前記非整数画素精度の方向の所定画素数に見合ったアクセスと補間処理を行うことを特徴とする請求項１記載のメモリアクセス装置。
【請求項３】
画像処理された画像フレームを前記メモリにバーストアクセスで保存するＷｒｉｔｅ動作において、画像処理された前記画像フレームの整数個のセルと整数個のブロックが一致する矩形領域を定め、この矩形領域を一括して前記メモリにＷｒｉｔｅすることを特徴とする請求項１又は２に記載のメモリアクセス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１画素あたりのｂｉｔ数が２のべき乗でない場合でもメモリの使用効率とアクセス効率を上げることができるメモリアクセス装置に関する。
【背景技術】
【０００２】
画像処理装置内にメモリアクセス装置が設けられている。画像処理装置が画像処理する際に、メモリアクセス装置は、画像フレームが格納されたＳＤＲＡＭ(Synchronous Dynamic Random Access Memory)からデータを読み出す。画像処理装置においてＳＤＲＡＭの画像データにアクセスする場合、一般的には矩形領域にアクセスする。矩形領域は、始点座標と終点座標によって設定されるか、又は、始点座標と矩形領域の水平方向と垂直方向のサイズ（画素数）によって設定される。【０００３】
メモリアクセス装置によるＳＤＲＡＭへの従来のアクセス方法について以下に説明する。従来は８ｂｉｔ／画素の画像処理が主流であった。この画像処理時に、ＳＤＲＡＭへのバーストアクセスが８ｗｏｒｄ／バーストであって、１６ｂｉｔ／ｗｏｒｄのＳＤＲＡＭを２個用いる場合、１バーストアクセスあたりの画素数は、下記の計算により３２画素である。
１６ｂｉｔ／ｗｏｒｄ×８ｗｏｒｄ／バースト×２個＝２５６ｂｉｔ／バースト
２５６ｂｉｔ／バースト÷８ｂｉｔ／画素＝３２画素／バースト
この１バーストでアクセスする矩形領域をセルとする。ここではセルは３２画素を持つ矩形領域である。３２画素のセルの一例として、８×４画素（水平８画素×垂直４画素）のセルがある。【０００４】
８×４画素のセルを用いた場合、一般的なＨＤ（High Definition）画像の１９２０×ｌ０８０画素の画像フレーム内に、水平に２４０個、垂直に２７０個のセルが配置される。【０００５】
ＨＤ画像の画素アドレスをＰｉｘ（ｘ，ｙ）とした場合、ｘは０〜１９１９、ｙは０〜１０７９の範囲となり、それぞれ１１ｂｉｔで表わすことができる。また、ＨＤ画像に配置されたセルのアドレスをＣｅｌｌ（ｘ，ｙ）とした場合、ｘは０〜２３９、ｙは０〜２６９の範囲となり、ｘは８ｂｉｔ、ｙは９ｂｉｔで表わすことができる。図２３は、８ｂｉｔ／画素の場合の背景技術におけるＨＤ画像内の画素アドレスとセルアドレスを示す図である。【０００６】
各セル内の画素のアドレスＰｉｘＣ（ｘ，ｙ）は、ｘ＝０〜７、ｙ＝０〜３となり、ｘは３ｂｉｔ、ｙは２ｂｉｔで表わすことができる。図２４は、８ｂｉｔ／画素の場合の背景技術における各セル内の画素アドレスを示す図である。【０００７】
Ｐｉｘ（ｘ，ｙ）のｘ，ｙを２進法表記し、ＬＳＢ（Least Significant Bit）からＭＳＢ（Most Significant Bit）の順に表わすと以下のようになる。
ｘ＝（Ｘ０，Ｘ１，…，Ｘ１０）
ｙ＝（Ｙ０，Ｙ１，…，Ｙ１０）
Ｃｅｌｌ（ｘ，ｙ）のｘ，ｙを同様に表わすと以下のようになる。
ｘ＝（ＸＣ０，ＸＣ１，…，ＸＣ７）
ｙ＝（ＹＣ０，ＹＣ１，…，ＹＣ８）
ＰｉｘＣ（ｘ，ｙ）のｘ，ｙを同様に表わすと以下のようになる。
ｘ＝（ＸＰ０，ＸＰ１，ＸＰ２）
ｙ＝（ＹＰ０，ＹＰ１）【０００８】
Ｐｉｘ（ｘ，ｙ）のｘ，ｙをＣｅｌｌ（ｘ，ｙ）とＰｉｘＣ（ｘ，ｙ）を用いて表わすと以下のようになる。
ｘ＝（Ｘ０，Ｘ１，…，Ｘ１０）
＝（ＸＰ０，ＸＰ１，ＸＰ２，ＸＣ０，ＸＣ１，…，ＸＣ７）
ｙ＝（Ｙ０，Ｙ１，…，Ｙ１０）
＝（ＹＰ０，ＹＰ１，ＹＣ０，ＹＣ１，…，ＹＣ８）【０００９】
例えば、Ｐｉｘ（１５，９）のｘ，ｙを２進法表記し、ＬＳＢからＭＳＢの順に表わすと以下のようになる。
ｘ＝（１，１，１，１，０，０，０，０，０，０，０）
ｙ＝（１，０，０，１，０，０，０，０，０，０，０）
これを上記の数式に当てはめると以下のようになる。
（ＸＰ０，ＸＰ１，ＸＰ２）＝（１，１，１）
（ＸＣＯ，ＸＣ１，…，ＸＣ７）＝（１，０，０，０，０，０，０，０）
（ＹＰ０，ＹＰ１）＝（１，０）
（ＹＣ０，ＹＣ１，…，ＹＣ８）＝（０，１，０，０，０，０，０，０，０）
よって、Ｃｅｌｌ（ｘ，ｙ）とＰｉｘＣ（ｘ，ｙ）は以下のようになる。
Ｃｅｌｌ（ｘ，ｙ）＝Ｃｅｌｌ（１，２）
ＰｉｘＣ（ｘ，ｙ）＝ＰｉｘＣ（７，１）【００１０】
このように１セル内の水平画素数と垂直画素数が２のべき乗個であるため、８ｂｉｔ／画素の画像処理の場合は、画素アドレスＰｉｘ（ｘ，ｙ）の上位ｂｉｔ（ＭＳＢから順に取り出した一部のｂｉｔ）のみでＳＤＲＡＭのセルアドレスＣｅｌｌ（ｘ，ｙ）を得ることができる。従って、ＳＤＲＡＭのアクセス制御を簡単に行うことができる。【００１１】
ところで、隣り合うセルのＢａｎｋアドレスが同じ場合、連続バーストアクセス中にＲｏｗアドレスの変化があると、一旦アクセスを停止してＲｏｗアドレスを切替えなければならない。このため、連続バーストアクセスができず、Ｒｏｗアドレス切替に追加の時間が必要となる。一方、隣り合うセルのＢａｎｋアドレスが異なる場合、１つのＢａｎｋのセルにアクセスするのと並行して次のＢａｎｋのＲｏｗアドレスのセットアップを行うことができるため、連続バーストアクセスが可能である。従って、ＳＤＲＡＭで矩形領域を連続バーストアクセスするには、水平方向と垂直方向の両方向とも隣り合うセルを異なるＢａｎｋにすることが必要である。【００１２】
１６ｂｉｔ幅、１ＧｂｉｔのＤＤＲ３（Double-Data-Rate3）タイプのＳＤＲＡＭの場合、ＣｏｌｕｍｎアドレスＣＡ、ＲｏｗアドレスＲＡ、及びＢａｎｋアドレスＢＡは以下のようになる。
ＣＡ＝（ＣＡ０，ＣＡ１，…，ＣＡ９）
ＲＡ＝（ＲＡ０，ＲＡ１，…，ＲＡ１２）
ＢＡ＝（ＢＡ０，ＢＡ１，ＢＡ２）【００１３】
このうち、Ｃｏｌｕｍｎアドレスの下位３ｂｉｔのＣＡ０〜ＣＡ２はバーストアクセスの８ｗｏｒｄの識別アドレスであるため、バーストアクセスにおいては無意味（０００に設定する）であり、アドレス割り当てしない。そこで、ＣＡ０〜ＣＡ２を除く２３ｂｉｔを図２５に示すようにセルアドレスに割り当てることで、連続バーストアクセスを行うことができる。図２５は、８ｂｉｔ／画素の場合の背景技術におけるセルアドレスに対するＳＤＲＡＭのアドレスの割り当てを示す図である。【００１４】
図２５において、セルのＸＣアドレス下位２ｂｉｔにＢａｎｋアドレスを２ｂｉｔ割り当て、セルのＹＣアドレスの下位１ｂｉｔにＢａｎｋアドレスを１ｂｉｔ割り当てている。この割り当てでは、矩形領域の連続バーストアクセスにおいて、最初に水平方向にセルを連続バーストアクセスし、続いて垂直方向にセルの位置を変えてセルを連続アクセスする。もし最初に垂直方向にセルの連続バーストアクセスをする場合、ＸＣのＬＳＢにＢａｎｋアドレスを１ｂｉｔ割り当て、ＹＣの下位２ｂｉｔにＢａｎｋアドレスを２ｂｉｔ割り当てる。【００１５】
Ｐｉｘ（ｘ，ｙ）のｘ，ｙをセル内画素アドレス、Ｂａｎｋアドレス、Ｃｏｌｕｍｎアドレス、Ｒｏｗアドレスを用いて表わすと、以下のようになる。
ｘ＝（Ｘ０，Ｘ１，…，Ｘ１０）
＝（ＸＰ０，ＸＰ１，ＸＰ２，ＸＣ０，ＸＣ１，…，ＸＣ７）
＝（ＸＰ０，ＸＰ１，ＸＰ２，ＢＡ０，ＢＡ１，ＣＡ３，ＣＡ４，…，ＣＡ８）
ｙ＝（Ｙ０，Ｙ１，…，Ｙ１０）
＝（ＹＰ０，ＹＰ１，ＹＣ０，ＹＣ１，…，ＹＣ８）
＝（ＹＰ０，ＹＰ１，ＢＡ２，ＲＡ０，ＲＡ１，…，ＲＡ７）【００１６】
上記アクセス方法を用いることで、画像フレームの一部の１６×１６画素又は８×８画素の矩形領域（ブロック）を画像処理するためにそのデータをメモリから読み出す際に、どのセルにアクセスすれば良いかを画素アドレスの上位ｂｉｔから簡単に求めることができる。また、セルアドレスを用いて、Ｂａｎｋアドレス、Ｃｏｌｕｍｎアドレス、Ｒｏｗアドレスのアドレス割り当てを行うことで、連続バーストアクセスが可能になる。【００１７】
近年、従来の８ｂｉｔ／画素の画像処理よりも高品質な１０ｂｉｔ／画素の画像処理のニーズが高まっている。さらには、１２ｂｉｔ／画素の画像処理も検討されている。例えば１０ｂｉｔ／画素のデータを８ｂｉｔ／画素に圧縮してメモリに保存し、画像処理時に１０ｂｉｔ／画素に伸張する技術が提案されている（例えば、特許文献１参照）。この技術を用いることで、１０ｂｉｔ／画素など、１画素あたりのｂｉｔ数が２のべき乗でない画素データに対しても、８ｂｉｔ／画素の画像処理と同じ装置を用いることができる。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】日本特開２０１０−１８３４０１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
しかし、特許文献１のように１０ｂｉｔ／画素のデータを８ｂｉｔ／画素に圧縮して画像処理を行うと、画像が劣化する。画像劣化を防ぐためには、１０ｂｉｔ／画素のままでメモリアクセスを行う必要がある。このとき、セル内の水平画素数と垂直画素数を２のべき乗個にすることで、８ｂｉｔ／画素と同様に、簡単にアクセス制御を行うことができる。【００２０】
しかし、１０ｂｉｔ／画素の画像処理の場合に、１セル内の水平画素数と垂直画素数を２のべき乗個にすると、ＳＤＲＡＭの使用効率とアクセス効率が悪くなる。以下でその理由を説明する。【００２１】
バーストアクセスが８ｗｏｒｄ／バーストであって、１６ｂｉｔ／ｗｏｒｄのＳＤＲＡＭを２個用いる場合、１バーストでアクセスするデータは、下記の計算により２５６ｂｉｔである。
１６ｂｉｔ／ｗｏｒｄ×８ｗｏｒｄ／バースト×２個＝２５６ｂｉｔ／バースト【００２２】
この１回のバーストでアクセスした２５６ｂｉｔのうち、１６０ｂｉｔのみを使用すると、１０ｂｉｔ／画素が１６個含まれることになり、１６画素のセルになる。従って、１セル内の水平画素数と垂直画素数を２のべき乗個にすることができる（水平４画素×垂直４画素）。一般的なＨＤ画像の画像フレームを４×４画素のセルで構成した場合、水平に４８０個、垂直に２７０個のセルが配置される。【００２３】
ＨＤ画像の画素アドレスをＰｉｘ（ｘ，ｙ）とした場合、ｘは０〜１９１９、ｙは０〜１０７９の範囲となり、それぞれ１１ｂｉｔで表わすことができる。また、ＨＤ画像に配置されたセルのアドレスをＣｅｌｌ（ｘ，ｙ）とした場合、ｘは０〜４７９、ｙは０〜２６９の範囲となり、それぞれ９ｂｉｔで表わすことができる。図２６は、１０ｂｉｔ／画素の場合の背景技術におけるにおけるＨＤ画像内の画素アドレスとセルアドレスを示す図である。【００２４】
各セル内の画素のアドレスＰｉｘＣ（ｘ，ｙ）は、ｘ＝０〜３、ｙ＝０〜３となり、それぞれ２ｂｉｔで表わすことができる。図２７は、１０ｂｉｔ／画素の場合の背景技術におけるにおける各セル内の画素アドレスを示す図である。【００２５】
Ｐｉｘ（ｘ，ｙ）のｘ，ｙを２進法表記し、ＬＳＢからＭＳＢの順に表わすと以下のようになる。
ｘ＝（Ｘ０，Ｘ１，…，Ｘ１０）
ｙ＝（Ｙ０，Ｙ１，…，Ｙ１０）
Ｃｅｌｌ（ｘ，ｙ）のｘ，ｙを同様に表わすと以下のようになる。
ｘ＝（ＸＣ０，ＸＣ１，…，ＸＣ８）
ｙ＝（ＹＣ０，ＹＣ１，…，ＹＣ８）
ＰｉｘＣ（ｘ，ｙ）のｘ，ｙを同様に表わすと以下のようになる。
ｘ＝（ＸＰ０，ＸＰ１）
ｙ＝（ＹＰ０，ＹＰ１）【００２６】
Ｐｉｘ（ｘ，ｙ）のｘ，ｙをセルアドレスＣｅｌｌ（ｘ，ｙ）とセル内画素アドレスＰｉｘＣ（ｘ，ｙ）を用いて表わすと以下のようになる。
ｘ＝（Ｘ０，Ｘ１，…，Ｘ１０）
＝（ＸＰ０，ＸＰ１，ＸＣ０，ＸＣ１，…，ＸＣ８）
ｙ＝（Ｙ０，Ｙ１，…，Ｙ１０）
＝（ＹＰ０，ＹＰ１，ＹＣ０，ＹＣ１，…，ＹＣ８）【００２７】
例えば、Ｐｉｘ（１５，９）のｘ，ｙを２進法表記し、ＬＳＢからＭＳＢの順に表わすと以下のようになる。
ｘ＝（１，１，１，１，０，０，０，０，０，０，０）
ｙ＝（１，０，０，１，０，０，０，０，０，０，０）
これを上記の数式に当てはめると以下のようになる。
（ＸＰ０，ＸＰ１）＝（１，１）
（ＸＣＯ，ＸＣ１，…，ＸＣ８）＝（１，１，０，０，０，０，０，０，０）
（ＹＰ０，ＹＰ１）＝（１，０）
（ＹＣ０，ＹＣ１，…，ＹＣ８）＝（０，１，０，０，０，０，０，０，０）
よって、Ｃｅｌｌ（ｘ，ｙ）とＰｉｘＣ（ｘ，ｙ）は以下のようになる。
Ｃｅｌｌ（ｘ，ｙ）＝Ｃｅｌｌ（３，２）
ＰｉｘＣ（ｘ，ｙ）＝ＰｉｘＣ（３，１）【００２８】
このように、１０ｂｉｔ／画素の場合でも、１セル内の水平画素数と垂直画素数を２のべき乗個にすることで、画素アドレスの上位ｂｉｔのみでＳＤＲＡＭのセルアドレスを得ることができる。従って、ＳＤＲＡＭのアクセス制御を簡単に行うことができる。【００２９】
また、図２８は、１０ｂｉｔ／画素の場合の背景技術におけるにおけるセルアドレスに対するＳＤＲＡＭのアドレスの割り当てを示す図である。セルアドレスを図２８に示すようにＢａｎｋアドレス、Ｃｏｌｕｍｎアドレス、Ｒｏｗアドレスに割り当てることで、連続バーストアクセスを行うことができる。即ち、Ｐｉｘ（ｘ，ｙ）のｘ，ｙをセル内画素アドレス、Ｂａｎｋアドレス、Ｃｏｌｕｍｎアドレス、Ｒｏｗアドレスを用いて表わすと、以下のようになる。
ｘ＝（Ｘ０，Ｘ１，…，Ｘ１０）
＝（ＸＰ０，ＸＰ１，ＸＣ０，ＸＣ１，…，ＸＣ８）
＝（ＸＰ０，ＸＰ１，ＢＡ０，ＢＡ１，ＣＡ３，ＣＡ４，…，ＣＡ９）
ｙ＝（Ｙ０，Ｙ１，…，Ｙ１０）
＝（ＹＰ０，ＹＰ１，ＹＣ０，ＹＣ１，…，ＹＣ８）
＝（ＹＰ０，ＹＰ１，ＢＡ２，ＲＡ０，ＲＡ１，…，ＲＡ７）【００３０】
以上より、８ｂｉｔ／画素と同様に、画像フレームの一部の１６×１６画素又は８×８画素の矩形領域（ブロック）を画像処理するためにそのデータをメモリから読み出す際に、どのセルにアクセスすれば良いかを簡単に求めることができる。また、セルアドレスを用いて、Ｂａｎｋアドレス、Ｃｏｌｕｍｎアドレス、Ｒｏｗアドレスのアドレス割り当てを行うことで、連続バーストアクセスが可能になる。【００３１】
ここで、８ｂｉｔ／画素の場合、１回のバーストでアクセスした２５６ｂｉｔ全てを使用している。これに対し、１０ｂｉｔ／画素の場合、１回のバーストでアクセスした２５６ｂｉｔのうち、１６０ｂｉｔのみを使用し、使用しない９６ｂｉｔについては廃棄することとなる。このときのＳＤＲＡＭ使用効率は、８ｂｉｔ／画素の場合は２５６／２５６＝１００％であるのに対して、１０ｂｉｔ／画素の場合は１６０／２５６＝６２．５％となる。【００３２】
同様にアクセス効率も悪化する。１ｗｏｒｄが１６ｂｉｔなので、８ｂｉｔ／画素の場合、２５６ｂｉｔに対して２５６÷１６＝１６ｗｏｒｄとなる。通常、高速にデータをやり取りするためには８ｗｏｒｄの倍数単位である必要があるため、８ｂｉｔ／画素の場合は高速アクセスを実現できる。これに対し、１０ｂｉｔ／画素の場合、使用する１６０ｂｉｔに必要なｗｏｒｄ数は１６０÷１６＝１０ｗｏｒｄとなる。従って、１０ｗｏｒｄのアクセスのために、８の倍数単位である１６ｗｏｒｄのアクセスが必要となる。このときのアクセス効率は、８ｂｉｔ／画素の場合は１６ｗｏｒｄ／１６ｗｏｒｄ＝１００％であるのに対して、１０ｂｉｔ／画素の場合は１０ｗｏｒｄ／１６ｗｏｒｄ＝６２．５％となる。【００３３】
また、ＨＤ画像１画像フレーム分のセル個数は、８ｂｉｔ／画素の場合は２４０×２７０＝６４，８００個であるのに対して、１０ｂｉｔ／画素の場合では４８０×２７０＝１２９，６００個となる。従って、１０ｂｉｔ／画素の場合はＳＤＲＡＭへのアクセス回数が２倍に増加する。【００３４】
以上説明したように、１０ｂｉｔ／画素の場合など、１画素あたりのｂｉｔ数が２のべき乗でない場合に、背景技術ではメモリの使用効率とアクセス効率が低いという問題があった。【００３５】
本発明は、上述のような課題を解決するためになされたもので、その目的は、１画素あたりのｂｉｔ数が２のべき乗でない場合でもメモリの使用効率とアクセス効率を上げることができるメモリアクセス装置を得るものである。
【課題を解決するための手段】
【００３６】
本発明に係るメモリアクセス装置は、画像フレームが格納されたメモリに対する１バーストアクセスで得られるｂｉｔ数を１画素あたりのｂｉｔ数で切り捨て除算することで１バーストアクセスあたりの画素数を求め、この画素数以下の画素数を持つ矩形領域をセルとして前記画像フレーム内に配置し、前記セルを用いて前記メモリにアクセスして、前記画像フレームの一部のブロックのデータを読み出すメモリアクセス装置であって、前記ブロックの画素アドレスの水平成分を前記セルの水平成分の画素数で除算した結果を出力する第１のルックアップテーブルと、前記ブロックの画素アドレスの垂直成分を前記セルの垂直成分の画素数で除算した結果を出力する第２のルックアップテーブルと、前記ブロックの画素アドレスの水平成分を前記セルの水平成分の画素数で除算した際の剰余を出力する第３のルックアップテーブルと、前記ブロックの画素アドレスの垂直成分を前記セルの垂直成分の画素数で除算した際の剰余を出力する第４のルックアップテーブルとを備え、前記第１のルックアップテーブルの出力値と前記第２のルックアップテーブルの出力値を、前記メモリにバーストアクセスするための前記セルのアドレスとし、前記第３のルックアップテーブルの出力値と前記第４のルックアップテーブルの出力値を、前記セル内の画素アドレスとして用いることを特徴とする。
【発明の効果】
【００３７】
本発明により、１画素あたりのｂｉｔ数が２のべき乗でない場合でもメモリの使用効率とアクセス効率を上げることができる。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施例におけるＨＤ画像内の画素アドレスとセルアドレスを示す図である。
【図２】本発明の実施例における各セル内の画素アドレスを示す図である。
【図３】本発明の実施例におけるセルアドレスに対するＳＤＲＡＭのアドレスの割り当てを示す図である。
【図４】本発明の実施例に係るメモリアクセス装置を示す図である。
【図５】本発明の実施例に係るメモリアクセス装置によるＳＤＲＡＭからのＲｅａｄ動作を説明するための図である。
【図６】アクセスするブロックの一例を示す図である。
【図７】ＳＤＲＡＭからＲｅａｄアクセスした複数個のセルからなる矩形領域の一例を示す図である。
【図８】ブロックを画像処理する際のアクセス方法を説明するための図である。
【図９】ブロックを画像処理する際のアクセス方法を説明するための図である。
【図１０】本発明の実施例に係るメモリアクセス装置の変形例を示す図である。
【図１１】整数画素精度の画像処理装置を示す図である。
【図１２】非整数画素精度の補間処理装置を含む画像処理装置を示す図である。
【図１３】非整数画素精度の画像アクセスを説明するための図である。
【図１４】補間処理装置を示す図である。
【図１５】補間処理装置を示す図である。
【図１６】図１４の装置の補間処理を説明するための図である。
【図１７】ｘとｙが非整数座標の例を示す図である。
【図１８】ｘが非整数座標でｙが整数座標の例を示す図である。
【図１９】ｘとｙが整数座標の例を示す図である。
【図２０】ＨＤ画像を示す図である。
【図２１】ＳＤＲＡＭへのＷｒｉｔｅ動作をＲｅａｄ動作の逆動作として行う場合を説明するための図である。
【図２２】方法（２）による装置を示す図である。
【図２３】８ｂｉｔ／画素の場合の背景技術におけるＨＤ画像内の画素アドレスとセルアドレスを示す図である。
【図２４】８ｂｉｔ／画素の場合の背景技術における各セル内の画素アドレスを示す図である。
【図２５】８ｂｉｔ／画素の場合の背景技術におけるセルアドレスに対するＳＤＲＡＭのアドレスの割り当てを示す図である。
【図２６】１０ｂｉｔ／画素の場合の背景技術におけるにおけるＨＤ画像内の画素アドレスとセルアドレスを示す図である。
【図２７】１０ｂｉｔ／画素の場合の背景技術におけるにおける各セル内の画素アドレスを示す図である。
【図２８】１０ｂｉｔ／画素の場合の背景技術におけるにおけるセルアドレスに対するＳＤＲＡＭのアドレスの割り当てを示す図である。
【符号の説明】
【００３９】
１０  ルックアップテーブル（第１のルックアップテーブル）
１２  ルックアップテーブル（第２のルックアップテーブル）
１４  ルックアップテーブル（第３のルックアップテーブル）
１６  ルックアップテーブル（第４のルックアップテーブル）
【発明を実施するための最良の形態】
【００４０】
本発明の実施例に係るメモリアクセス装置では、１回のバーストでアクセスする画像データに対し、２のべき乗個のセル内画素数にこだわらずに、最大のアクセスを行う。一例として、１０ｂｉｔ／画素の場合、２５６ｂｉｔ／バースト÷１０ｂｉｔ／画素＝２５画素／バーストである。従って、１バーストアクセスあたりの画素数は２５画素である。この２５画素を持つ矩形領域をセルとする。２５画素のセルの一例として、５×５画素（水平５画素×垂直５画素）のセルがある。一般的なＨＤ画像の画像フレーム内に、水平に３８４個、垂直に２１６個のセルが配置される。メモリアクセス装置は、このセルを用いてＳＤＲＡＭにアクセスしてデータを読み出す。【００４１】
ＨＤ画像の画素アドレスＰｉｘ（ｘ，ｙ）のｘ，ｙは、ｘ＝０〜１９１９、ｙ＝０〜１０７９の範囲となり、それぞれ１１ｂｉｔで表わすことができる。また、ＨＤ画像に配置されたセルのアドレスＣｅｌｌ（ｘ，ｙ）のｘ，ｙは、ｘ＝０〜３８３、ｙ＝０〜２１５の範囲となり、ｘは９ｂｉｔ、ｙは８ｂｉｔで表わすことができる。図１は、本発明の実施例におけるＨＤ画像内の画素アドレスとセルアドレスを示す図である。【００４２】
各セル内の画素のアドレスＰｉｘＣ（ｘ，ｙ）のｘ，ｙは、ｘ＝０〜４、ｙ＝０〜４となり、それぞれ３ｂｉｔで表わすことができる。図２は、本発明の実施例における各セル内の画素アドレスを示す図である。【００４３】
Ｐｉｘ（ｘ，ｙ）のｘ，ｙを２進法表記し、ＬＳＢからＭＳＢの順に表わすと以下のようになる。
ｘ＝（Ｘ０，Ｘ１，…，Ｘ１０）
ｙ＝（Ｙ０，Ｙ１，…，Ｙ１０）
Ｃｅｌｌ（ｘ，ｙ）のｘ，ｙを同様に表わすと以下のようになる。
ｘ＝（ＸＣ０，ＸＣ１，…，ＸＣ８）
ｙ＝（ＹＣ０，ＹＣ１，…，ＹＣ７）
ＰｉｘＣ（ｘ，ｙ）のｘ，ｙを同様に表わすと以下のようになる。
ｘ＝（ＸＰ０，ＸＰ１，ＸＰ２）
ｙ＝（ＹＰ０，ＹＰ１，ＹＰ２）【００４４】
ＳＤＲＡＭのアクセスのためには、画素アドレスＰｉｘ（ｘ，ｙ）のｘ，ｙを、２進法表記したセルアドレスとセル内画素アドレスに変換する必要がある。しかし、１セル内の水平画素数と垂直画素数が２のべき乗個ではないため、画素アドレスの上位ビットから簡単に求めることができない。そのため、Ｃｅｌｌ（ｘ，ｙ）のｘ，ｙを以下の式で算出する。
ｘ＝（ＸＣ０，ＸＣ１，…，ＸＣ８）
＝（Ｘ０，Ｘ１，…，Ｘ１０）／５
ｙ＝（ＹＣ０，ＹＣ１，…，ＹＣ７）
＝（Ｙ０，Ｙ１，…，Ｙ１０）／５
ここで、「／」は除算して端数切捨てを意味する。本実施例では５で除算した結果を端数切捨てした数値である。ＨＤ画像ではＰｉｘ（ｘ，ｙ）はｘ＝０〜１９１９、ｙ＝０〜１０７９なので、Ｃｅｌｌ（ｘ，ｙ）はｘ＝０〜３８３、ｙ＝０〜２１５となり、ｘは９ビット、ｙは８ビットとなる。【００４５】
このＣｅｌｌ（ｘ，ｙ）のｘ，ｙを以下のように２進法表記する。
ｘ＝（Ｘ０，Ｘ１，…，Ｘ１０）／５
＝（ＸＤ０，ＸＤ１，…，ＸＤ８）
ｙ＝（Ｙ０，Ｙ１，…，Ｙ１０）／５
＝（ＹＤ０，ＹＤ１，…，ＹＤ７）
ＰｉｘＣ（ｘ，ｙ）のｘ，ｙを同様に表わすと以下のようになる。
ｘ＝（ＸＰ０，ＸＰ１，ＸＰ２）
＝Ｍｏｄｕｌｏ｛（Ｘ０，Ｘ１，…，Ｘ１０），５｝
ｙ＝（ＹＰ０，ＹＰ１，ＹＰ２）
＝Ｍｏｄｕｌｏ｛（Ｙ０，Ｙ１，…，Ｙ１０），５｝
ここで、「Ｍｏｄｕｌｏ」は除算結果の剰余を意味する。本実施例では、５で除算した際の剰余である。５で除算した剰余は０〜４となるため、３ビット表現となる。【００４６】
このＰｉｘＣ（ｘ，ｙ）のｘ，ｙを以下のように２進法表記する。これが画素単位アクセスに用いられる。
ｘ＝Ｍｏｄｕｌｏ｛（Ｘ０，Ｘ１，…，Ｘ１０），５｝
＝（ＸＭ０，ＸＭ１，ＸＭ２）
ｙ＝Ｍｏｄｕｌｏ｛（Ｙ０，Ｙ１，…，Ｙ１０），５｝
＝（ＹＭ０，ＹＭ１，ＹＭ２）【００４７】
以上より、画素アドレスＰｉｘ（ｘ，ｙ）のｘ，ｙをセルアドレス、セル内画素アドレスを用いて表すと以下のようになる。
ｘ＝（Ｘ０，Ｘ１，…，Ｘ１０）
＝［Ｍｏｄｕｌｏ｛（Ｘ０，Ｘ１，…，Ｘ１０），５｝，（Ｘ０，Ｘ１，…，Ｘ１０）／５］
＝（ＸＭ０，ＸＭ１，ＸＭ２, ＸＤ０，ＸＤ１，…，ＸＤ８）
ｙ＝（Ｙ０，Ｙ１，…，Ｙ１０）
＝［Ｍｏｄｕｌｏ｛（Ｙ０，Ｙ１，…，Ｙ１０），５｝，（Ｙ０，Ｙ１，…，Ｙ１０）／５］
＝（ＹＭ０，ＹＭ１，ＹＭ２，ＹＤ０，ＹＤ１，…，ＹＤ７）【００４８】
図３は、本発明の実施例におけるセルアドレスに対するＳＤＲＡＭのアドレスの割り当てを示す図である。図３に示すように（ＸＤ０，ＸＤ１，…，ＸＤ８）と（ＹＤ０，ＹＤ１，…，ＹＤ７）をＢａｎｋアドレス、Ｃｏｌｕｍｎアドレス、Ｒｏｗアドレスに割り当てることで連続バーストアクセスを行うことができる。【００４９】
図４は、本発明の実施例に係るメモリアクセス装置を示す図である。このメモリアクセス装置は、ルックアップテーブル１０，１２，１４，１６、アドレス配置変換回路１８を有する。メモリアクセス装置は、画像処理装置内に設けられている。画像処理装置が画像フレームの一部のブロックを画像処理する際に、メモリアクセス装置は上記アクセス方法を用いてブロックのデータをＳＤＲＡＭから読み出す。【００５０】
具体的には、１バーストアクセスするセルアドレスをルックアップテーブル１０，１２で求め、ＳＤＲＡＭにバーストアクセスする。ＳＤＲＡＭバーストアクセスメモリはＳＤＲＡＭのセル１個に対応したバーストアクセス１回分を一時保存し、隣接するセルメモリに転送する。バーストアクセスしたセル内の画素アドレスはルックアップテーブル１４，１６で求め、セルアドレスとセル内画素アドレスによって画像処理を行う画素アドレスを特定し、セルメモリから目的のブロック領域の画素データを画像処理装置に転送する。【００５１】
ルックアップテーブル１０は、ブロックの画素アドレスの水平成分（Ｘ０〜Ｘ１０）をセルの水平成分の画素数（５）で除算した結果（ＸＤ０〜ＸＤ８）を出力する。ルックアップテーブル１２は、ブロックの画素アドレスの垂直成分（Ｙ０〜Ｙ１０）をセルの垂直成分の画素数（５）で除算した結果（ＹＤ０〜ＹＤ７）を出力する。アドレス配置変換回路１８は、ルックアップテーブル１０，１２の出力値をＢａｎｋアドレス、Ｃｏｌｕｍｎアドレス、Ｒｏｗアドレスに割り当てる。【００５２】
ルックアップテーブル１４は、ブロックの画素アドレスの水平成分（Ｘ０〜Ｘ１０）をセルの水平成分の画素数（５）で除算した際の剰余（ＸＭ０〜ＸＭ２）を出力する。ルックアップテーブル１６は、ブロックの画素アドレスの垂直成分（Ｙ０〜Ｙ１０）をセルの垂直成分の画素数（５）で除算した際の剰余（ＹＭ０〜ＹＭ２）を出力する。ルックアップテーブル１４，１６の出力値をセル内の画素アドレスとする。【００５３】
メモリアクセス装置は、ルックアップテーブル１０，１２の出力値をセルのアドレスとし、このセルのアドレスをアドレス配置変換回路１８によってＳＤＲＡＭのバーストアクセスのアドレスに割り当てることで、ＳＤＲＡＭにアクセスする。さらに、ルックアップテーブル１４，１６の出力値をバーストアクセスしたセル内の画素アドレスとして用いることで、セル内の画素アクセスを行う。【００５４】
図５は、本発明の実施例に係るメモリアクセス装置によるＳＤＲＡＭからのＲｅａｄ動作を説明するための図である。ここでは一例として８×８画素のブロックの矩形領域にアクセスする。矩形領域の左上画素座標をＰｉｘ（ｘ，ｙ）とすると、右下画素座標はＰｉｘ（ｘ＋７，ｙ＋７）となる。従って、Ｐｉｘ（ｘ，ｙ）を左上始点座標とし、Ｐｉｘ（ｘ＋７，ｙ＋７）を右下終点座標とする領域の画素をＳＤＲＡＭからＲｅａｄする。【００５５】
ここで始点座標Ｐｉｘ（ｘ，ｙ）のセルアドレスはＣｅｌｌ（ｘ／５，ｙ／５）、セル内画素アドレスはＰｉｘＣ（Ｍｏｄｕｌｏ（ｘ，５），Ｍｏｄｕｌｏ（ｙ，５））となる。終点座標Ｐｉｘ（ｘ＋７，ｙ＋７）のセルアドレスはＣｅｌｌ（（ｘ＋７）／５，（ｙ＋７）／５）、セル内画素アドレスはＰｉｘＣ（Ｍｏｄｕｌｏ（ｘ＋７，５），Ｍｏｄｕｌｏ（ｙ＋７），５））となる。【００５６】
従って、アクセスするブロック（８×８画素矩形領域）は、始点座標Ｐｉｘ（ｘ，ｙ）がセルアドレスＣｅｌｌ（ｘ／５，ｙ／５）のセル内画素アドレスＰｉｘＣ（Ｍｏｄｕｌｏ（ｘ，５），Ｍｏｄｕｌｏ（ｙ，５））で、終点座標がセルアドレスＣｅｌｌ（（ｘ＋７）／５，（ｙ＋７）／５）のセル内画素アドレスＰｉｘＣ（Ｍｏｄｕｌｏ（ｘ＋７，５），Ｍｏｄｕｌｏ（ｙ＋７，５））の領域となる。ＳＤＲＡＭのバーストアクセスをＣｅｌｌ（ｘ／５，ｙ／５）からＣｅｌｌ（（ｘ＋７）／５，（ｙ＋７）／５）の範囲で行う。そして、実際にアクセスする画素領域はＣｅｌｌ（ｘ／５，ｙ／５）のＰｉｘＣ（Ｍｏｄｕｌｏ（ｘ，５），Ｍｏｄｕｌｏ（ｙ，５））からＣｅｌｌ（（ｘ＋７）／５，（ｙ＋７）／５）のＰｉｘＣ（Ｍｏｄｕｌｏ（ｘ＋７，５），Ｍｏｄｕｌｏ（ｙ＋７，５））の画素領域となる。【００５７】
これらのアクセスにおいて、セルアドレスはルックアップテーブル１０，１２により得られ、セル内画素アドレスはルックアップテーブル１４，１６により得られる。即ち、メモリアクセス装置は、除算ルックアップテーブル１０，１２で始点座標に対応したセルアドレスと終点座標に対応したセルアドレスを求め、始点セルから終点セルまでの各セルを順にアクセスする。【００５８】
図６は、アクセスするブロックの一例を示す図である。始点座標が（２８，５２）で終点座標が（３５，５９）の場合、始点セルアドレスが、（５，１０）で終点セルアドレスが（７，１１）となる。そして、（５，１０）、（６，１０）、（７，１０）、（５，１１）、（６，１１）、（７，１１）、と順に各セルにアクセスして行く。または、（５，１０）、（５，１１）、（６，１０）、（６，１１）、（７，１０）、（７，１１）と順に各セルにアクセスして行く。【００５９】
バーストアクセスされたセルアドレスＣｅｌｌ（ｘ，ｙ）のセル内画素データ（バーストアクセスされた２５画素分の画素データ）は、バーストアクセス１回分の画像データを格納するＳＤＲＡＭバーストアクセスメモリを経由してセルメモリに転送される。その後、セルメモリ内のセル内画素アドレスＰｉｘＣ（ｘ，ｙ）と組み合わすことで、画像処理を行う画素アドレスＰｉｘ（ｘ，ｙ）の画素が特定される。この画素アドレスＰｉｘ（ｘ，ｙ）の画素データがデータ処埋部のブロックメモリに転送される。【００６０】
図７は、ＳＤＲＡＭからＲｅａｄアクセスした複数個のセルからなる矩形領域の一例を示す図である。ここでは矩形領域は４×３セルである。この矩形領域の画像データから、画像処理装置で処理するのに必要な領域を切り出して利用する。矩形領域の画像データは、一旦メモリアクセス装置内に備えられたセルメモリにセル単位で順次保存される。例えば、図７に示すように、アクセスしたセルの順に、始点と終点のセルアドレスの算出で判明しているｘ方向のセル個数とｙ方向のセル個数が矩形に並んで保存される。このセルメモリのアクセスには、アクセス順に並んだセル番号と、各セル内の画素アドレスを用いる。図７のセル番号（０，０）から（２，３）は、画素アドレスから算出したセルアドレスではなく、セルメモリ内で便宜的に付与されたアドレスである。【００６１】
このセルメモリは、始点座標から終点座標までの必要な矩形領域（図７で破線で示す領域）より一般的には大きい領域となっている。このセルメモリへの保存はセル単位で順次行え、読み出しは通常の２進アドレスで行える。このようなセルメモリは、セルの形状が定められていれば、保存時にカウンタや加算器でメモリアドレス発生するなどの公知技術で実現可能である。【００６２】
前述したＭｏｄｕｌｏ演算用ルックアップテーブル１４，１６で求めた始点アドレス（セル内画素アドレス）が、図７のセルメモリの画素アドレスになる。図７のセル（０，０）は最初にＳＤＲＡＭからＲｅａｄアクセスした始点座標を含む。これは、セルメモリのアドレス（０，０）にセル内画素アドレス（０，０）が保存されるからである。このようにセルメモリに保存された画像データ（４×３セル）から所定のサイズ（ＸＳ，ＹＳ）の領域を読み出す。ＸＳとＹＳは、画像の始点座標と終点座標から算出できる。このような所定の矩形領域の読み出しは、算出したＸＳとＹＳの値をレジスタにセットするなどの公知技術で実現可能である。【００６３】
画像処理装置内のブロックメモリは、メモリアクセス装置から転送されてきた所定ブロックの画素データを画像処理するためのメモリである。本実施形態では、８×８画素データを格納する。【００６４】
本実施例により、画素アドレスＰｉｘ（ｘ，ｙ）からセルアドレスＣｅｌｌ（ｘ，ｙ）とセル内画素アドレスＰｉｘＣ（ｘ，ｙ）を求めることができる。このため、ブロックのデータをメモリから読み出す際に、どのセルにアクセスすればよいかを簡単に求めることができる。なお、Ｗｒｉｔｅ動作は異なる動作となるため、後述する。【００６５】
さらに、ＳＤＲＡＭにアクセスした２５６ｂｉｔのうち、２５０ｂｉｔを使用しているため、ＳＤＲＡＭ使用効率は２５０／２５６＝９７．７％となる。同様にアクセス効率の面でも、使用する２５０ｂｉｔに必要なｗｏｒｄ数は１５．６２５ｗｏｒｄとなり、アクセス効率は１５．６２５ｗｏｒｄ／１６ｗｏｒｄ＝９７．７％となる。よって、本実施例により、１画素あたりのｂｉｔ数が２のべき乗でない場合でも、セル内の水平画素数と垂直画素数を２のべき乗個にする背景技術に比べて、メモリの使用効率とアクセス効率を上げることができる。【００６６】
なお、本実施例ではセルを５×５画素としていたため、５の除算テーブル、５のＭｏｄｕｌｏ演算テーブルを用いているが、メモリの規模によって数値は変化させればよい。例えばＤＤＲ３−ＳＤＲＡＭを１個のみ使用した場合は、１バーストでアクセスする画素が１２８ｂｉｔとなるため、１セルは１２８÷１０＝１２画素となる。この場合、１２画素を３×４画素とし、３の除算テーブル、３のＭｏｄｕｌｏ演算テーブル、４の除算テーブル、４のＭｏｄｕｌｏ演算テーブルを用いればよい。このとき、垂直方向の４は２のべき乗であるため、背景技術のようにｂｉｔ配置変換を行ってもよい。具体的には、ｙ／４はｙを２ｂｉｔシフトして得られ、Ｍｏｄｕｌｏ（ｙ，４）はｙの下位２ｂｉｔを取り出せばよい。【００６７】
また、セル内画素数を最大限利用する必要はなく、本実施例において５×５ではなく、５×４（効率は７８％）や６×４（効率は９４％）といった領域としてもよい。即ち、セルアクセスの２５６ビットをどのように画素データに設定するか、画像処理装置の都合に合わせたセル形状を設定することで、応用目的の他の条件なども含めた最適な設定が可能である。【００６８】
本実施例により、ブロックを画像処理する際に、どの範囲のセルにアクセスすればよいかを求めることもできる。図８及び図９は、ブロックを画像処理する際のアクセス方法を説明するための図である。図中で、実線はセル、破線はブロックを表わしている。【００６９】
図８の方法では、ブロックの始点（左上の画素アドレスＰｉｘ（ｘａ，ｙａ））、終点（右下の画素アドレスＰｉｘ（ｘｂ，ｙｂ））、セルの水平画素数ｍ、垂直画素数ｎを用いる。始点のセルアドレスはＣｅｌｌ（ｘａ／ｍ，ｙａ／ｎ）、終点のセルアドレスはＣｅｌｌ（ｘｂ／ｍ，ｙｂ／ｎ）となり、この範囲に該当するセル（図中の太枠で表わしたセル）のＳＤＲＡＭのアドレスにバーストアクセスする。【００７０】
図９の方法では、ブロックの始点Ｐｉｘ（ｘａ，ｙａ）、ブロックの水平画素数ＸＳ、垂直画素数ＹＳ、セルの水平画素数ｍ、垂直画素数ｎを用いる。始点のセルアドレスはＣｅｌｌ（ｘａ／ｍ，ｙａ／ｎ）、終点のセルアドレスはＣｅｌｌ（ｘａ＋ＸＳ−１）／ｍ，（ｙａ＋ＹＳ−１）／ｎ）となり、この範囲に該当するセル（図中の太枠で表示したセル）のＳＤＲＡＭのアドレスにバーストアクセスする。【００７１】
図１０は、本発明の実施例に係るメモリアクセス装置の変形例を示す図である。この装置は、整数座標と非整数座標の切替制御を設けている。そして、水平方向又は垂直方向の画素が非整数画素精度である場合は、ブロックの始点座標及び終点座標で表わされる矩形領域に対し、非整数画素精度の方向の所定画素数に見合った補間処理を行う。例えばＭＰＥＧ画像符号化などに用いられる１／２画素精度や１／４画素精度の場合、小数部分を含むブロックの始点座標（ｘａｓ，ｙａｓ）及び終点座標（ｘｂｓ，ｙｂｓ）の各少数部分を切り捨てたブロックの始点座標（ｘａ，ｙａ）及び終点座標（ｘｂ，ｙｂ）に対して、周辺各方向３画素ずつ用いた補間処理により、非整数座標の周辺を含めた領域アクセスを行う。従って、始点座標（ｘａ−２，ｙａ−２）、終点座標（ｘｂ＋３，ｙｂ＋３）の範囲に該当するセルのＳＤＲＡＭのアドレスにバーストアクセスすればよい。【００７２】
図１１は、整数画素精度の画像処理装置を示す図である。図１２は、非整数画素精度の補間処理装置を含む画像処理装置を示す図である。整数画素精度の場合、メモリアクセス装置から画像データがそのまま画像処理装置のブロックメモリに転送される。これに対して、非整数画素精度の場合、画像データが補間処理装置で補間処理されてから画像処埋装置のブロックメモリに転送される。【００７３】
図１３は、非整数画素精度の画像アクセスを説明するための図である。例えば８×８のブロック画像アクセスにおいて、非整数位置の周辺水平方向左右と垂直方向上下の各３画素を含めて、１３×１３の矩形領域にアクセスする。次に、この矩形領域を補間処理して非整数画素精度アクセスした８×８ブロック画像を生成する。次に、このブロック画像をブロック画像処理する。【００７４】
図１４及び図１５は補間処理装置を示す図である。補間処理は、一般的にはＦＩＲ（Finite Impulse Response）フィルタの原理を用いて行われる。ＭＰＥＧ画像符号化国際標準規格において補間処理も定められている。ＭＰＥＧ−２ビデオ符号化規格では、非整数画素精度は１／２画素精度で、補間処理は左右や上下の周辺１画素を用いた線形補間処理（Bilinear補間と呼ばれる簡易なＦＩＲフィルタである）が定められている。ＭＰＥＧ−４  ＡＶＣ（Ｈ．２６４）符号化規格では、輝度は左右や上下の周辺３画素を用いた６−ＴＡＰ（ＦＩＲ処理では６次フィルタと呼ぶ）ＦＩＲフィルタと２−ＴＡＰ線形補間処理の組合せ処理が定められている。図１４の装置は、水平方向と垂直方向で共通の６−ＴＡＰ  ＦＩＲフィルタによる１／２画素位置の補間処理を行う。図１５の装置は、２−ＴＡＰ線形補間による１／４画素位置の補間処理を行う。【００７５】
なお、図１１、図１２、図１４及び図１５では、説明の煩雑さを避けるために、１次元の水平方向のみ又は垂直方向のみを説明している。実際には２次元の処理が必要で、水平方向と垂直方向の双方が非整数画素アドレス値の場合は水平方向と垂直方向の両方向に補間処理を行う。【００７６】
図１４の装置では、６−ＴＡＰ  ＦＩＲ処理で０．５画素端数位置の画素Ｐｉｘ（ｎ＋０．５）を算出する。このときに必要な画素は、Ｐｉｘ（ｎ−２）からＰｉｘ（ｎ＋３）である。図１６は、図１４の装置の補間処理を説明するための図である。８×８画素の左上の画素（図１６中の黒丸）を算出する場合、１３×１３画素の水平方向６画素及び垂直方向６画素の計３６画素（図１６中の黒塗りの四角）を用いる。【００７７】
図１５の装置では、０．２５画素端数位置の画素Ｐｉｘ（ｎ＋０．２５）を算出する。このときに必要な画素は、Ｐｉｘ（ｎ）とＰｉｘ（ｎ＋１）である。【００７８】
２次元矩形領域の始点Ｐｉｘ（ｘａ，ｙａ）から終点Ｐｉｘ（ｘｂ，ｙｂ）について６−ＴＡＰＦＩＲ補間処理に必要な画素を説明する。画素座標ｘａ、ｙａ、ｘｂ、ｙｂが整数か非整数かによって周辺各方向３画素の必要性が定まり、アクセスすべき画素データの領域が定まる。例えば目的とする画素ブロックが８×８の整数画素数ブロックとすると、ｘａが整数ならｘｂも整数であり、ｘａが非整数ならｘｂもｘａと同じ小数部を持つ非整数である。同様に、ｙａが整数ならｙｂも整数であり、ｙａが非整数ならｙｂもｙａと同じ小数部を持つ非整数である。ただし、ｘａ、ｘｂ、ｙａ、ｙｂは０以上の値で、負数ではない。【００７９】
アクセスする画像デ−タの座標が整数画素座標なら、周辺画素のアクセスは不要であり、アクセス量を少なくすることができる。必要最小限の画像データにアクセスして効率を良くするには、整数画素座標の場合は周辺３画素にアクセスしないようにする。例えば始点Ｐｉｘ（ｘａ，ｙａ）から終点Ｐｉｘ（ｘｂ，ｙｂ）の画像アクセスにおいて、非整数座標の画素値を６−ＴＡＰＦＩＲ補間処理で求める場合、ｘ座標とｙ座標とも非整数の場合に必要な領域は、始点Ｐｉｘ（ｘａ−２，ｙａ−２）から終点Ｐｉｘ（ｘｂ＋３，ｙｂ＋３）となる。ｘａが非整数でｙａが整数の場合には、ｘに対しては左右周辺３画素のアクセスを行ない、１３画素のアクセスを行う。ただし、ｙに対しては上下周辺３画素のアクセスを行なわず、８画素のアクセスを行う。即ち、非整数画素がｘ座標だけの場合は、アクセスする領域の始点座標を（ｘａ−２，ｙａ）、終点座標を（ｘｂ＋３，ｙｂ）とすることで、アクセスするセル個数を最小限にすることができる。同様に、非整数画素がｙ座標だけの場合は、アクセスする領域の始点座標を（ｘａ，ｙａ−２）、終点座標を（ｘｂ，ｙｂ＋３）とすることで、アクセスするセル個数を最小限にすることができる。【００８０】
また、非整数画素座標の場合の始点座標と終点座標の修正とＭｏｄｕｌｏ演算に対して、ｘ方向とｙ方向の各ルックアップテーブルにおいて、整数座標と非整数座標の切替制御を設けてもよい。図１０の装置はこのような切替制御を備えている。メモリアクセス装置は、除算ルックアップテーブルで始点座標に対応したセルアドレスと終点座標に対応したセルアドレスを求め、始点セルから終点セルまでの各セルを順にアクセスする。【００８１】
図１７は、ｘとｙが非整数座標の例を示す図である。セルサイズが５×５画素、ブロックサイズが８×８、始点座標が（２７．５，５２．５）、終点座標が（３４．５，５９．５）である。この場合、始点のアクセスすべきセルアドレスは（（２７．５−２）／５，（５２．５−２）／５）＝（２５．５／５，５０．５／５）＝（５，１０）である。終点のアクセスすべきセルアドレスは（（３４．５＋３）／５，（５９．５＋３）／５）＝（３７．５１５，６２．５／５）＝（７，１２）である。即ち、始点セルアドレスが（５，１０）、終点セルアドレスが（７，１２）であるため、（５，１０）、（６，１０）、（７，１０）、（５，１１）、（６，１１）、（７，１１）、（５，１２）、（６，１２）、（７，１２）の計９個のセルにアクセスする。この時のアクセスは、（５，１０）、（６，１０）、（７，１０）、（５，１１）、（６，１１）、（７，１１）、（５，１２）、（６，１２）、（７，１２）の順でも良いし、（５，１０）、（５，１１）、（５，１２）、（６，１０）、（６，１１）、（６，１２）、（７，１０）、（７，１１）、（７，１２）の順でも良い。【００８２】
また、Ｍｏｄｕｌｏ演算のルックアップテーブル１４，１６は、これらの値に応じた非整数座標に対応して修正したセルアドレスに対応して、修正始点画素と修正終点画素を含むセルに対してＭｏｄｕｌｏ演算を行う。この例では、修正始点座標の整数部（２５，５０）に対するＭｏｄｕｌｏ演算の結果として（０，０）を出力し、修正終点座標整数部（３７，６２）に対するＭｏｄｕｌｏ演算の結果として（２，２）を出力する。【００８３】
そして、ｘ座標とｙ座標それぞれに関して、非整数座標の小数部が０の場合は００を、０．２５の場合は０１を、０．５の場合は１０を、０．７５の場合は１１を補間装置に制御信号として入力する。補正装置は、これらの値に応じたセルからの画素アクセスと補間処理を行う。【００８４】
図１８は、ｘが非整数座標でｙが整数座標の例を示す図である。セルサイズが５×５画素、始点座標が（２７．５，５２）、終点座標が（３４．５，５９）である。この場合、始点のアクセスすべきセルアドレスは（（２７．５−２）／５，５２／５）＝（２５．５／５，５２／５）＝（５，１０）である。終点のアクセスすべきセルアドレスは（（３４．５＋３）／５，５９／５）＝（３７．５／５，５９／５）＝（７，１１）である。即ち、（５，１０）から（７，１１）の計６個のセルにアクセスする。この時、５の除算ルックアップテーブル１０，１２は、始点座標整数部（２７，５２）と終点座標整数部（３４，５９）の入力に対し、非整数制御信号により、始点は（２５，５０）に対する除算結果の（５，１０）を出力し、終点は（３７，５９）に対する除算結果の（７，１１）を出力する。始点セルアドレスが（５，１０）、終点セルアドレスが（７，１１）であるため、（５，１０）、（６，１０）、（７，１０）、（５，１１）、（６，１１）、（７、１１）の計６個のセルにアクセスする。ｘとｙが非整数座標の場合に比べて、ｘが整数座標でｙが非整数座標の場合では、９個のセルアクセスから６個のセルアクセスに減少する。【００８５】
ｘとｙが整数座標の場合は更にセルアクセスが減少する。図１９は、ｘとｙが整数座標の例を示す図である。始点が（２７，５２）、終点が（３４，５９）である。この場合、始点セルアドレスは（５，１０）、終点のセルアドレスは（６，１１）となり、（５，１０）、（５，１１）、（６，１０）、（６，１１）の４個のセルのアクセスで済む。【００８６】
本実施例では、周辺３画素に対して補間処理を行なっているが、これは国際標準Ｈ．２６４の輝度成分が非整数画素の場合の補間処理である。始点Ｐｉｘ（ｘａ，ｙａ）から終点Ｐｉｘ（ｘｂ，ｙｂ）の画像アクセスにおいて、非整数座標の画素値を２−ＴＡＰ  ＦＩＲ補間処理で求める場合、ｘ座標とｙ座標とも非整数の場合に必要な領域は、始点Ｐｉｘ（ｘａ，ｙａ）から終点Ｐｉｘ（ｘｂ＋１，ｙｂ＋１）となる。【００８７】
色差成分が非整数画素である場合は、周辺１画素によって補間処理を行なえばよい。同様に、ＭＰＥＧ−２の場合も、周辺１画素によって補間処理を行なえばよい。この場合は、ブロックの始点座標（ｘａ，ｙａ）及び終点座標（ｘｂ，ｙｂ）で表わされる矩形領域に対して、周辺各方向１画素ずつ用いた補間処理により、非整数座標の周辺を含めた領域アクセスを行う。従って、始点座標（ｘａ，ｙａ）、終点座標（ｘｂ＋１，ｙｂ＋１）の範囲に該当するセルのＳＤＲＡＭのアドレスにバーストアクセスすればよい。【００８８】
周辺各方向１画素を用いて補間処理を行う場合は、セルサイズが５×５画素でブロックサイズが８×８、画素始点座標が（２７．５，５２．５）、終点座標が（３４．５，５９．５）とすると、始点のアクセスすべきセルアドレスは（２７．５／５，５２．５／５）＝（２５／５，５０／５）＝（５，１０）である。終点のアクセスすべきセルアドレスは（（３４．５＋１）／５，（５９．５＋１）／５）＝（３５．５／５，６０．５／５）＝（７，１２）である。即ち、セルアドレスが（５，１０）から（７，１２）の計９個のセルにアクセスする。【００８９】
また、Ｍｏｄｕｌｏ演算のルックアップテーブル１４，１６は、これらの値に応じた非整数座標に対応して修正したセルアドレスに対応して、修正始点画素と修正終点画素を含むセルに対してＭｏｄｕｌｏ演算を行う。この例では、修正始点座標整数部（２７，５２）に対するＭｏｄｕｌｏ演算の結果として（２，２）を出力し、修正終点座標整数部（３５，６０）に対するＭｏｄｕｌｏ演算の結果として（０，０）を出力する。【００９０】
なお、非整数画素がｘａだけの場合は、アクセスする領域の始点座標を（ｘａ，ｙａ）、終点座標を（ｘｂ＋１，ｙｂ）とすれば、アクセスするセル個数を最小限にすることができる。また、非整数画素がｙａだけの場合は、アクセスする領域の始点座標を（ｘａ，ｙａ）、終点座標を（ｘｂ，ｙｂ＋１）とすれば．アクセスするセル個数を最小限にすることができる。また．非整数画素座標の場合の始点座標と終点座標の修正とＭｏｄｕｌｏ演算に対して、ｘ方向とｙ方向の各ルックアップテーブルに整数座標と非整数座標の切替制御を設けてもよい。このように、周辺画素への補間処理は、所定の画素に対して行なえばよい。【００９１】
以上、画像処理におけるＳＤＲＡＭのＲｅａｄ（ＳＤＲＡＭの画像データを画像処理装置へ転送）動作について説明した。一方、画像処理をした後にＳＤＲＡＭにＷｒｉｔｅ（画像処理装置で処理した画像データをＳＤＲＡＭへ転送）動作する場合は、異なる動作となる。前述のＭＰＥＧ画像符号化や他の一般的な画像処理において、画像メモリは左上端画素座標を（０，０）として、右下端画素座標が最大画素座標となる。例えばＨＤ（High Definition）画像において、フレームは画像１枚を意味し、そのサイズは１９２０×１０８０である。図２０は、ＨＤ画像を示す図である。この画像は、８×８ブロックが２４０×１３５個配置されたものとして扱う。または、サイズを便宜上１９２０×１０８８として、１６×１６ブロックが１２０×６８個配置されたものとし、画像表示は１９２０×１０８０を切り出して行う。そして、当然のことであるが、画素座標は整数値で表現される。【００９２】
図２１は、ＳＤＲＡＭへのＷｒｉｔｅ動作をＲｅａｄ動作の逆動作として行う場合を説明するための図である。一般的に、画像処理は、左上瑞ブロックから右下端ブロックに向かって行われる。従って、処理した画像ブロックをＳＤＲＡＭにＷｒｉｔｅするとき、Ｒｅａｄ動作の逆動作として行うと、図２１に示すように、処理対象ブロックに属さない画素（ブロックの外側画素）までＷｒｉｔｅ動作してしまう。図２１の５×５セル（２）の画素をＳＤＲＡＭにＷｒｉｔｅする際、網掛けしたセル内画素は、画像処理を行う８×８ブロックに属さないことになる。ブロックに属さない画素を書き換える動作は、既に処理された画像データなら、処理内容と異なる画像データになってしまう。また、これから処理しようとする画像データなら、意図しない画像データに書換えられてしまう。【００９３】
このようなＷｒｉｔｅ動作における不都合を解決する方法として次の２つがある。
（１）ＳＤＲＡＭアクセスのためのブロックメモリより大きいサイズの内部メモリを設ける。そして、処理前のアクセス時に、ＳＤＲＡＭにＲｅａｄアクセスした画像データにおいて、処理対象外の画素データをメモリに保持しておき、Ｗｒｉｔｅ動作において、処理対象の画素データだけ書き換えて、Ｒｅａｄアクセスとは逆動作で同じサイズのＷｒｉｔｅ動作を行う。
（２）上記のようにブロックはＳＤＲＡＭで左上瑞から整列されているので、整数個のセルと整数個のブロックが一致する矩形領域を定め、この矩形領域を一括してＳＤＲＡＭにＷｒｉｔｅする。例えば、前述の例ではセルサイズは５×５であり、ブロックサイズは８×８であるから、４０×４０の領域にはセルが８×８個で一致し、ブロックは５×５個で一致する。【００９４】
方法（１）はＷｒｉｔｅ動作において、ブロックサイズより多い領域のＷｒｉｔｅ動作となり、Ｗｒｉｔｅアクセス効率が低下する。一方、方法（２）では、４０×４０という大きな内部メモリが必要となるが、Ｗｒｉｔｅ動作の効率が高い。【００９５】
ＳＤＲＡＭにＷｒｉｔｅする任意のブロックの始点座標を含むセルから終点座標を含むセルの領域にＷｒｉｔｅすると、１つのブロックだけの場合、Ｗｒｉｔｅすべきブロックは８×８の矩形領域だが、Ｗｒｉｔｅ動作は５×５のセルの矩形領域が複数からなる矩形領域となる。このため、一般にはＷｒｉｔｅすべき領域より大きい領域をＷｒｉｔｅすることになり、Ｗｒｉｔｅすべきでない領域まで意図しないデータをＷｒｉｔｅしてしまうことになる。【００９６】
同時に、意図しない領域へのＷｒｉｔｅ動作はＷｒｉｔｅ動作の効率を低下させる。この問題を避けるため、Ｗｒｉｔｅすべきブロックが整列しているとの条件を設定する。例えばＷｒｉｔｅすべきブロックが左上瑞から順に整列していると設定する。セルサイズが５×５画素、ブロックサイズが８×８の場合、５と８の最小公倍数４０を用いて、４０×４０画素領域を一括Ｗｒｉｔｅする。これにより、５×５個のブロックが８×８個のセルと一致し、意図しない画素データのＷｒｉｔｅを避けることができる。【００９７】
図２２は、方法（２）による装置を示す図である。画像処理装置からの画素アドレスは、前述のＲｅａｄ動作では始点座標Ｐｉｘ（ｘａ，ｙａ）と終点座標Ｐｉｘ（ｘｂ，ｙｂ）であったが、この方法では始点座標は常に８の倍数の整数値であり、終点座標は常に始点座標に３９を加算した値である。例えば、始点座標がＰｉｘ（４０，８０）なら終点座標はＰｉｘ（７９，１１９）となる。図２２の４０×４０画像メモリは、図４のセルメモリを用いることで実現できる。即ち、セルメモリのサイズを４０×４０画像（８×８セル）のメモリとし、デ−タ転送方向をＲｅａｄ動作から変えることで、Ｗｒｉｔｅ動作を行うことができる。【００９８】
なお、本実施例では、メモリアクセス装置がバーストアクセスを行うメモリはＳＤＲＡＭであるが、ＳＤＲＡＭに限らず他のメモリでもよい。
【図１】
2012120674.tif 000003
【図２】
2012120674.tif 000004
【図３】
2012120674.tif 000005
【図４】
2012120674.tif 000006
【図５】
2012120674.tif 000007
【図６】
2012120674.tif 000008
【図７】
2012120674.tif 000009
【図８】
2012120674.tif 000010
【図９】
2012120674.tif 000011
【図１０】
2012120674.tif 000012
【図１１】
2012120674.tif 000013
【図１２】
2012120674.tif 000014
【図１３】
2012120674.tif 000015
【図１４】
2012120674.tif 000016
【図１５】
2012120674.tif 000017
【図１６】
2012120674.tif 000018
【図１７】
2012120674.tif 000019
【図１８】
2012120674.tif 000020
【図１９】
2012120674.tif 000021
【図２０】
2012120674.tif 000022
【図２１】
2012120674.tif 000023
【図２２】
2012120674.tif 000024
【図２３】
2012120674.tif 000025
【図２４】
2012120674.tif 000026
【図２５】
2012120674.tif 000027
【図２６】
2012120674.tif 000028
【図２７】
2012120674.tif 000029
【図２８】
2012120674.tif 000030
【国際調査報告】
2012120674.tif 000031
2012120674.tif 000032