(57)【要約】【課題】ＭＰＥＧ処理において、ＤＲＡＭに対するアクセス処理を高速に行うことを課題とする。【解決手段】２次元画像をラスタ順に入力し、この画像データをバンク０とバンク１を切り替えながら１６ビットＳＤＲＡＭに格納する。具体的には、８ピクセル単位でバンク０とバンク１を切り替えながら格納する。この際、２次元画像の列方向のデータが同じバンクに格納されるようにする。３２ビットＳＤＲＡＭの場合には、１６ピクセル単位でバンク０とバンク１を切り替えながら格納する。この際、２次元画像の列方向のデータについてバンク０とバンク１が交互となるように格納する。【選択図】図２
2011055553.tif 000002
【特許請求の範囲】
【請求項１】
第１バンクおよび第２バンクを備えるＤＲＡＭにアクセスする方法であって、
ＭＰＥＧの処理対象である２次元画像をラスタ順で入力する第１工程と、
前記２次元画像の行方向のデータについては１６ピクセルごとに前記第１バンクおよび前記第２バンクを交互に切り替えながら前記ＤＲＡＭに格納し、前記２次元画像の列方向のデータについては１行ごとに前記第１バンクおよび前記第２バンクが交互となるように前記ＤＲＡＭに格納する第２工程と、
前記第２工程によって格納された画像データに対して前記第１バンクと前記第２バンクを交互に切り替えながら１６ピクセル単位でアクセスすることにより、縦１６ピクセル×横１６ピクセルのＭＰＥＧ処理用のマクロブロックにアクセスする第３工程と、
を備えることを特徴とするＤＲＡＭアクセス方法。
【請求項２】
請求項１に記載のＤＲＡＭアクセス方法であって、
前記第３工程は、
前記第１バンクに格納されたマクロブロックにおける第ｍ行目（ｍは０以上１４以下の整数）の１６ピクセルの画像データにアクセスした後、次に、前記第２バンクに格納されたマクロブロックにおける第ｍ＋１行目の１６ピクセルの画像データにアクセスする工程、
を含むことを特徴とするＤＲＡＭアクセス方法。
【請求項３】
請求項１または請求項２に記載のＤＲＡＭアクセス方法であって、
前記第３工程は、２次元画像上において隣り合うマクロブロックに対して連続してアクセスする際には、隣り合うマクロブロックについて、列方向のアクセス順序を逆方向とすることを特徴とするＤＲＡＭアクセス方法。
【請求項４】
請求項２に記載のＤＲＡＭアクセス方法であって、
前記第３工程は、
請求項２に記載の工程によりマクロブロックに対してアクセスした後、そのマクロブロックに隣り合うマクロブロックに対して連続してアクセスする際には、前記第１バンクに格納されたマクロブロックにおける第ｋ行目（ｋは１以上１５以下の整数）の１６ピクセルの画像データにアクセスした後、次に、前記第２バンクに格納されたマクロブロックにおける第ｋ−１行目の１６ピクセルの画像データにアクセスする工程、
を含むことを特徴とするＤＲＡＭアクセス方法。
【請求項５】
請求項１ないし請求項４のいずれかに記載のＤＲＡＭアクセス方法であって、
前記ＤＲＡＭは１アドレスに３２ビットのデータを格納可能としており、前記２次元画像の各ピクセルは８ビットの情報を備えることにより、前記ＤＲＡＭの前記第１および第２バンクに対しては、それぞれ同一行の連続する４つのアドレスに対して１６ピクセルの画像データが格納されることを特徴とするＤＲＡＭアクセス方法。
【請求項６】
請求項１ないし請求項４のいずれかに記載のＤＲＡＭアクセス方法であって、
前記ＤＲＡＭは１アドレスに１６ビットのデータを格納可能としており、前記２次元画像の各ピクセルは８ビットの情報を備えることにより、前記ＤＲＡＭの前記第１および第２バンクに対しては、それぞれ同一行の連続する８つのアドレスに対して１６ピクセルの画像データが格納されることを特徴とするＤＲＡＭアクセス方法。
【請求項７】
請求項５または請求項６に記載のＤＲＡＭアクセス方法であって、
前記ＤＲＡＭに対してラスタ順で連続する１６ピクセルの画像データが、バースト転送されることを特徴とするＤＲＡＭアクセス方法。
【請求項８】
請求項５に記載のＤＲＡＭアクセス方法であって、
前記ＤＲＡＭに格納される画像データが、Ｙ（輝度）データの場合には、前記ＤＲＡＭの１つのアドレスに対して４ピクセル分のＹデータが格納されることを特徴とするＤＲＡＭアクセス方法。
【請求項９】
請求項５または請求項８に記載のＤＲＡＭアクセス方法であって、
前記ＤＲＡＭに格納される画像データが、Ｕ,Ｖ（色差）データの場合には、前記ＤＲＡＭの１つのアドレスに対してＵデータとＶデータの組が２組格納されることを特徴とするＤＲＡＭアクセス方法。
【請求項１０】
請求項６に記載のＤＲＡＭアクセス方法であって、
前記ＤＲＡＭに格納される画像データが、Ｙ（輝度）データの場合には、前記ＤＲＡＭの１つのアドレスに対して２ピクセル分のＹデータが格納されることを特徴とするＤＲＡＭアクセス方法。
【請求項１１】
請求項６または請求項１０に記載のＤＲＡＭアクセス方法であって、
前記ＤＲＡＭに格納される画像データが、Ｕ,Ｖ（色差）データの場合には、前記ＤＲＡＭの１つのアドレスに対して１組のＵデータとＶデータとが格納されることを特徴とするＤＲＡＭアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＰＥＧ処理におけるＤＲＡＭアクセス方法に関する。
【背景技術】
【０００２】
ＭＰＥＧ（Moving Picture Expert Group）による圧縮技術においては、２次元画像の中の、縦１６ピクセル×横１６ピクセルからなるマクロブロック単位に処理が行われる。したがって、メモリに格納された画像データに対しては、このマクロブロック単位の画像データに対して高速に処理できることが望ましい。
【０００３】
しかし、ＣＣＤ等の画像入力装置からラスタ順で転送された画像データは、一般には、２次元画像イメージでメモリに格納される。つまり、マクロブロック単位の画像は、そのまま２次元画像イメージとして、メモリ内の複数行の記憶領域に格納されることになる。このため、マクロブロック単位の画像データを読み出すためには、複数行の記憶領域にアクセスする必要がある。
【０００４】
ここで、メモリとしてＳＲＡＭ（Static Random Access Memory）を使用した場合には、複数行の記憶領域に対しても高速にアクセス可能であるが、ＳＲＡＭはコストが高いという問題がある。そこで、コストの面から、ＤＲＡＭ（Dynamic Random Access Memory）が採用されることとなるが、行アドレスを切り替えて、ＤＲＡＭの複数行の記憶領域にアクセスする処理は、処理速度が遅いという問題がある。
【０００５】
そこで、マクロブロック単位の画像データに対して高速にアクセスするための技術が下記特許文献１において開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−１６２１３１号公報
【特許文献２】特開２００３−１８６７４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献１では、ラスタ順で入力される画像データをメモリに格納する際に、あらかじめ画像データを並べ替え、マクロブロック単位の画像データが、メモリの同一行に格納されるようにしたものである。
【０００８】
しかしながら、上記特許文献１に開示された方法では、メモリに対する書き込み制御が複雑になるという問題がある。また、上記特許文献２では、メモリの２つのバンクに交互にアクセスし、ＤＲＡＭへのプリチャージによるオーバヘッドを隠蔽する技術が開示されているが、マクロブロック単位の画像データに対するアクセスを考慮したものではなく、マクロブロック単位での画像アクセスを高速化させることはできない。
【０００９】
そこで、本発明は前記問題点に鑑み、ＤＲＡＭに格納されたマクロブロックの画像データに対して高速にアクセスする効率的な方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、請求項１記載の発明は、第１バンクおよび第２バンクを備えるＤＲＡＭにアクセスする方法であって、ＭＰＥＧの処理対象である２次元画像をラスタ順で入力する第１工程と、前記２次元画像の行方向のデータについては１６ピクセルごとに前記第１バンクおよび前記第２バンクを交互に切り替えながら前記ＤＲＡＭに格納し、前記２次元画像の列方向のデータについては１行ごとに前記第１バンクおよび前記第２バンクが交互となるように前記ＤＲＡＭに格納する第２工程と、前記第２工程によって格納された画像データに対して前記第１バンクと前記第２バンクを交互に切り替えながら１６ピクセル単位でアクセスすることにより、縦１６ピクセル×横１６ピクセルのＭＰＥＧ処理用のマクロブロックにアクセスする第３工程と、を備えることを特徴とする。
【００１１】
請求項２記載の発明は、請求項１に記載のＤＲＡＭアクセス方法であって、前記第３工程は、前記第１バンクに格納されたマクロブロックにおける第ｍ行目（ｍは０以上１４以下の整数）の１６ピクセルの画像データにアクセスした後、次に、前記第２バンクに格納されたマクロブロックにおける第ｍ＋１行目の１６ピクセルの画像データにアクセスする工程、を含むことを特徴とする。
【００１２】
請求項３記載の発明は、請求項１または請求項２に記載のＤＲＡＭアクセス方法であって、前記第３工程は、２次元画像上において隣り合うマクロブロックに対して連続してアクセスする際には、隣り合うマクロブロックについて、列方向のアクセス順序を逆方向とすることを特徴とする。
【００１３】
請求項４記載の発明は、請求項２に記載のＤＲＡＭアクセス方法であって、前記第３工程は、請求項２に記載の工程によりマクロブロックに対してアクセスした後、そのマクロブロックに隣り合うマクロブロックに対して連続してアクセスする際には、前記第１バンクに格納されたマクロブロックにおける第ｋ行目（ｋは１以上１５以下の整数）の１６ピクセルの画像データにアクセスした後、次に、前記第２バンクに格納されたマクロブロックにおける第ｋ−１行目の１６ピクセルの画像データにアクセスする工程、を含むことを特徴とする。
【００１４】
請求項５記載の発明は、請求項１ないし請求項４のいずれかに記載のＤＲＡＭアクセス方法であって、前記ＤＲＡＭは１アドレスに３２ビットのデータを格納可能としており、前記２次元画像の各ピクセルは８ビットの情報を備えることにより、前記ＤＲＡＭの前記第１および第２バンクに対しては、それぞれ同一行の連続する４つのアドレスに対して１６ピクセルの画像データが格納されることを特徴とする。
【００１５】
請求項６記載の発明は、請求項１ないし請求項４のいずれかに記載のＤＲＡＭアクセス方法であって、前記ＤＲＡＭは１アドレスに１６ビットのデータを格納可能としており、前記２次元画像の各ピクセルは８ビットの情報を備えることにより、前記ＤＲＡＭの前記第１および第２バンクに対しては、それぞれ同一行の連続する８つのアドレスに対して１６ピクセルの画像データが格納されることを特徴とする。
【００１６】
請求項７記載の発明は、請求項５または請求項６に記載のＤＲＡＭアクセス方法であって、前記ＤＲＡＭに対してラスタ順で連続する１６ピクセルの画像データが、バースト転送されることを特徴とする。
【００１７】
請求項８記載の発明は、請求項５に記載のＤＲＡＭアクセス方法であって、前記ＤＲＡＭに格納される画像データが、Ｙ（輝度）データの場合には、前記ＤＲＡＭの１つのアドレスに対して４ピクセル分のＹデータが格納されることを特徴とする。
【００１８】
請求項９記載の発明は、請求項５または請求項８に記載のＤＲＡＭアクセス方法であって、前記ＤＲＡＭに格納される画像データが、Ｕ,Ｖ（色差）データの場合には、前記ＤＲＡＭの１つのアドレスに対してＵデータとＶデータの組が２組格納されることを特徴とする。
【００１９】
請求項１０記載の発明は、請求項６に記載のＤＲＡＭアクセス方法であって、前記ＤＲＡＭに格納される画像データが、Ｙ（輝度）データの場合には、前記ＤＲＡＭの１つのアドレスに対して２ピクセル分のＹデータが格納されることを特徴とする。
【００２０】
請求項１１記載の発明は、請求項６または請求項１０に記載のＤＲＡＭアクセス方法であって、前記ＤＲＡＭに格納される画像データが、Ｕ,Ｖ（色差）データの場合には、前記ＤＲＡＭの１つのアドレスに対して１組のＵデータとＶデータとが格納されることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、ラスタ順の２次元画像データを、第１バンクと第２バンクを切り替えながらＤＲＡＭに格納するので、格納されている画像データについて異なる行の画像データに連続的にアクセスが必要となる場合でも、一方のバンクにアクセスしている間に他方のバンクの行アドレスを変更することが可能となり、アクセス効率が向上する。
【００２２】
また、ＭＰＥＧ処理におけるマクロブロック単位で画像データにアクセスする場合には、第１バンクと第２バンクを切り替えつつ効率的にＤＲＡＭにアクセスすることができるので、ＭＰＥＧ処理の高速化を図ることが可能である。
【図面の簡単な説明】
【００２３】
【図１】実施の形態に係る画像処理装置の全体概略図である。
【図２】第１の実施の形態における２次元画像データのＤＲＡＭに対する格納イメージを示す図である。
【図３】第１の実施の形態におけるＳＤＲＡＭに対する書き込みタイミング図である。
【図４】バンク０に対する書き込み順を示す図である。
【図５】バンク１に対する書き込み順を示す図である。
【図６】バンク０に格納される画像データのピクセル番号を示す図である。
【図７】バンク１に格納される画像データのピクセル番号を示す図である。
【図８】第１の実施の形態におけるマクロブロック単位でのアクセスタイミングを示す図である。
【図９】バンク０に対するアクセス順を示す図である。
【図１０】バンク１に対するアクセス順を示す図である。
【図１１】バンク０およびバンク１を使用したマクロブロック単位でのアクセスイメージを示す図である。
【図１２】１アドレスに対する書き込み方法を具体的に示すタイミング図である。
【図１３】ＹＵＶ４：２：０フォーマットを示す図である。
【図１４】第２および第３の実施の形態における２次元画像データのＤＲＡＭに対する格納イメージを示す図である。
【図１５】第２の実施の形態におけるＳＤＲＡＭに対する書き込みタイミング図である。
【図１６】バンク０に対する書き込み順を示す図である。
【図１７】バンク１に対する書き込み順を示す図である。
【図１８】バンク０に格納される画像データのピクセル番号を示す図である。
【図１９】バンク１に格納される画像データのピクセル番号を示す図である。
【図２０】第２の実施の形態におけるマクロブロック単位でのアクセスタイミングを示す図である。
【図２１】バンク０に対するアクセス順を示す図である。
【図２２】バンク１に対するアクセス順を示す図である。
【図２３】隣り合うマクロブロックにアクセスする際のバンク０に対するアクセス順を示す図である。
【図２４】隣り合うマクロブロックにアクセスする際のバンク１に対するアクセス順を示す図である。
【図２５】１アドレスに対する書き込み方法を具体的に示すタイミング図である。
【図２６】第３の実施の形態におけるＳＤＲＡＭに対する書き込みタイミング図である。
【図２７】バンク０に対する書き込み順を示す図である。
【図２８】バンク１に対する書き込み順を示す図である。
【図２９】バンク０に格納される画像データのピクセル番号を示す図である。
【図３０】バンク１に格納される画像データのピクセル番号を示す図である。
【図３１】第３の実施の形態におけるマクロブロック単位でのアクセスタイミングを示す図である。
【図３２】バンク０に対するアクセス順を示す図である。
【図３３】バンク１に対するアクセス順を示す図である。
【図３４】隣り合うマクロブロックにアクセスする際のバンク０に対するアクセス順を示す図である。
【図３５】隣り合うマクロブロックにアクセスする際のバンク１に対するアクセス順を示す図である。
【図３６】１アドレスに対する書き込み方法を具体的に示すタイミング図である。
【発明を実施するための形態】
【００２４】
｛第１の実施の形態｝
以下、図面を参照しつつ本発明の第１の実施の形態について説明する。図１は、画像処理装置の全体概略図である。画像処理装置は、例えば、ＣＣＤ等のイメージセンサからなる入力部１、入力部１が出力した画像データを格納するＳＤＲＡＭ（Synchronous DRAM）４、ＳＤＲＡＭ４に格納された画像データに対してＭＰＥＧ規格に基づく圧縮処理を行うＭＰＥＧ処理部２、入力部１が出力した画像データをＳＤＲＡＭ４に格納する際、およびＭＰＥＧ処理部２がＳＤＲＡＭ４に格納されている画像データにアクセスする際に、ＳＤＲＡＭ４に対するアクセス制御を行うメモリ制御部３とを備えている。
【００２５】
ここで、入力部１が出力する画像データは、ラスタ順で出力される。この明細書において、ラスタ順とは、２次元画像が１次元の画像データとして連続的に出力される手順であり、詳しくは、２次元画像の左上左端のピクセルを先頭に最上位行の画像データが順次転送され、右端のピクセルまで転送した後は、次の行の画像データを左端から右端まで順次転送し、次々に、各行の画像データを１次元の画像データとして転送する手順を示す。また、ラスタ順には、プログレッシブ転送のみならず、インタレース転送も含まれる。インタフレース転送の場合には、奇数行の画像データに対する１フィールド分の画像データの転送と、偶数行の画像データに対する１フィールド分の画像データの転送とが交互に行われることになる。
【００２６】
また、第１の実施の形態におけるＳＤＲＡＭ４は、１アドレスのメモリ領域に対して２バイト（１６ビット）のデータを格納可能としている。つまり、第１の実施の形態におけるＳＤＲＡＭ４は、１６ビットＳＤＲＡＭである。また、ＳＤＲＡＭ４は、連続する４つのアドレスに対して連続的にデータアクセスを行うバースト転送処理を可能としている。つまり、ＳＤＲＡＭ４は、６４ビット（４アドレス×１６ビット）のデータをバースト転送可能としている。
【００２７】
図２は、２次元画像データのピクセル構成を示す図である。ここでは、２次元画像は、横３２０ピクセル、つまり、１行（水平１ライン）の画像データが３２０ピクセルである場合を例に説明する。また、この明細書においては、図に示すように、２次元画像の水平方向を行方向と、２次元画像の垂直方向を列方向と対応させて適宜説明する。
【００２８】
図２においては、２次元の画像データをブロックに区分して表示している。ここで、列方向の１区分は画像の１行（水平１ライン）に対応している。また、行方向の１区分は、８ピクセル分の画像データに対応している。つまり、１ブロックは８ピクセル分の画像データの集合である。そして、各ブロック内に表示されている０〜７pix、８〜１５pix等の表示は、最上位行の左端のピクセルを０番目の画像として、全ピクセルに対してラスタ順に付与されたピクセル番号である。したがって、画像データが横３２０ピクセル×縦１００ピクセルであれば、ラスタ順に０から３１９９９までの番号が各ピクセルに付与されることになる。
【００２９】
最上位行（０行目）の左端のブロックは、２次元画像の０行目の０番目から７番目までのピクセルに対応し、その右横のブロックは、２次元画像の０行目の８番目から１５番目までのピクセルに対応している。そして、最上位行（０行目）の右端のブロックは、０行目の３１２番目から３１９番目までのピクセルに対応し、次の行（１行目）の左端のブロックは、３２０番目から３２７番目までのピクセル（これは、２次元画像における１行目の０番目から７番目までのピクセルに対応している。）に対応している。
【００３０】
このようにして、２次元画像をラスタ順に８ピクセルごとにブロック化している。さらに、図に示すように、列方向のブロックがグループ化され、これらグループは、ＳＤＲＡＭ４のバンク０とバンク１に交互に格納されるのである。具体的には、図において網掛けされていないブロックのグループはＳＤＲＡＭ４のバンク０に格納され、網掛けされているブロックのグループはＳＤＲＡＭ４のバンク１に格納されるのである。図中、Ａ0,0、Ｂ0,0等の表示については、後で説明するが、この２次元画像データがＳＤＲＡＭ４に格納される際に、格納されるメモリ領域（バンク０およびバンク１におけるメモリ領域）のブロック名を示している。
【００３１】
図３は、メモリ制御部３によって、入力部１より出力されたラスタ順の画像データが、ＳＤＲＡＭ４に書き込まれる際のタイミング図である。また、図４は、ＳＤＲＡＭ４のバンク０に対する書き込み順序を示す図であり、図５は、ＳＤＲＡＭ４のバンク１に対する書き込み順序を示す図である。また、図６は、バンク０の各メモリ領域に格納される画像データのピクセル番号（この番号は、前述したように、２次元画像の最上位行（０行目）の左端（０列目）のピクセルを０番目の画像として、全ピクセルに対してラスタ順で付与された番号である。）を示す図であり、図７は、バンク１の各メモリ領域に格納される画像データのピクセル番号を示す図である。
【００３２】
ここで、図４および図５において、メモリ領域ａ0,0、ｂ0,0等の添え字は、１番目の添え字がメモリ領域の行番号を示し、２番目の添え字がメモリ領域の列番号を示している。したがって、メモリ領域ａ1,4は、バンク０の１行４列目のメモリ領域を示している。また、図４および図５におけるブロック領域Ａ0,0、Ｂ0,0等は、４つのメモリ領域からなるブロックを示している。ブロック領域の添え字は、そのブロック領域に含まれている先頭（左端）のメモリ領域の行番号および列番号に対応している。
【００３３】
図３において、まず、バンクアドレスに「０」が設定され、行アドレスおよび列アドレスにいずれも「０」が設定され、０番目から７番目までの８ピクセル分の画像データが、バースト転送される。つまり、１ピクセルの画像データが８ビットであるので、８ピクセル分の画像データ（８ピクセル×８ビット）をバースト転送するのである。この８ピクセル分の画像データは、図４に示すバンク０のブロック領域Ａ0,0に格納される。ブロック領域Ａ0,0は、メモリ領域ａ0,0、ａ0,1、ａ0,2、ａ0,3からなる領域である。なお、図３において、Bank ADDRESSがバンクアドレス信号を示し、ADDRESSが行および列アドレス信号を示している。また、Bank0およびBank1は、それぞれバンク０およびバンク１に対するデータのアクセスタイミングと、転送されるデータの内容を示している。データの内容（0,1等の数字）は、前述したピクセル番号を示している。
【００３４】
一方、図３に示すように、０番目から７番目までの８ピクセル分の画像データが、ブロック領域Ａ0,0に書き込まれているタイミングで、バンクアドレスが「１」に設定される。そして、ブロック領域Ａ0,0への書き込み終了後、８番目から１５番目までの８ピクセル分の画像データがバースト転送される。この８ピクセル分の画像データは、図５に示す、バンク１のブロック領域Ｂ0,0に格納される。ブロック領域Ｂ0,0は、メモリ領域ｂ0,0、ｂ0,1、ｂ0,2、ｂ0,3からなる領域である。
【００３５】
さらに、８番目から１５番目までの８ピクセル分の画像データがブロック領域Ｂ0,0に書き込まれているタイミングで、バンクアドレスが「０」に設定される。そして、ブロック領域Ｂ0,0への書き込み終了後、１６番目から２３番目までの８ピクセル分の画像データがバースト転送される。この８ピクセル分の画像データは、列アドレスに「４」が設定されることにより、図４に示すバンク０のブロック領域Ａ0,4に格納される。ブロック領域Ａ0,4は、メモリ領域ａ0,4、ａ0,5、ａ0,6、ａ0,7からなる領域である。
【００３６】
そして、ブロック領域Ａ0,4に書き込みが行われているタイミングで、バンクアドレスが「１」に設定される。そして、ブロック領域Ａ0,4への書き込み終了後、２４番目から３１番目までの８ピクセル分の画像データがバースト転送される。この８ピクセル分の画像データは、列アドレスに「４」が設定されることにより、図５に示すバンク１のブロック領域Ｂ0,4に格納される。ブロック領域Ｂ0,4は、メモリ領域ｂ0,4、ｂ0,5、ｂ0,6、ｂ0,7からなる領域である。
【００３７】
以上の処理により、図６および図７に示すように、バンク０のブロック領域Ａ0,0、Ａ0,4およびバンク１のブロック領域Ｂ0,0、Ｂ0,4に０番目から３１番目までの３２ピクセル分の画像データが格納される。この後は、同様に、バンク０とバンク１を切り替えながら、８ピクセル単位で画像データをバースト転送し、順次ＳＤＲＡＭ４に画像データを格納するのである。図４および図５における矢印は、それぞれバンク０およびバンク１への格納順序を示している。上述した手順により、２次元画像の０行目の画像データが矢印の方向に格納された後、１行目の画像データが同様に矢印の方向に格納され、順次、各行の画像データが格納される。ＳＤＲＡＭ４に対する書き込み手順を、ブロック領域を用いて表現すると、ブロック領域Ａ0,0→Ｂ0,0→Ａ0,4→Ｂ0,4→Ａ0,8→Ｂ0,8→Ａ0,12→・・・の順で、２次元画像データを順次格納することになる。
【００３８】
このように、ＭＰＥＧ処理の対象となる２次元画像データをバンク０とバンク１とを切り替えながら、２次元画像イメージでＳＤＲＡＭ４に格納する。そして、図２にも示したように、２次元画像における列方向については、画像データが全て同じバンクに格納されるようにするのである。このため、２次元画像のマクロブロックに注目した場合、マクロブロック内の画像データは、ＳＤＲＡＭ４の複数の行にまたがって格納されることとなるが、アクセスする行を切り替える場合にも、空き時間は発生しない。このアクセス手順については、後で具体的に説明するが、バンク１のデータにアクセスしているタイミングで、バンク０についてアクセスする行を切り替え、バンク０のデータにアクセスしているタイミングで、バンク１についてアクセスする行を切り替えることが可能となるからである。
【００３９】
なお、この実施の形態では、図６および図７で示したように、２次元画像データの水平１ライン分の画像データは、ＳＤＲＡＭ４のバンク０の同一行およびバンク１の同一行のメモリ領域に格納し、２次元画像データの水平ラインが次の水平ラインに移動すると、格納先のバンク０とバンク１のメモリ領域も行を変更するようにしている。このような格納方法は、メモリ領域の有効利用という点ではデメリットがあるが、回路構成をシンプルにすることができるという点でメリットがある。したがって、メモリ領域に余裕がある場合には有効な方法である。
【００４０】
ただし、上記格納方法は一例であり、これに限定されることはない。つまり、ラスタ順で入力する２次元画像の１行目の画像データを、ＳＤＲＡＭ４の１行目（バンク０あるいはバンク１）に格納した後、２ライン目の画像データを続けて、ＳＤＲＡＭ４の１行目に格納するような方法をとってもよい。同様に、ＳＤＲＡＭ４の各行において、画像データの水平ラインに対応して格納する行を変更させることはなく、順次、画像データを詰めて格納するのである。そして、この場合にも、一度に転送される８ピクセル分の画像データ（つまり、１バースト転送分の画像データ）はＳＤＲＡＭ４のいずれかのバンクの同一行に格納されるようにしておけばよい。これにより、バンク０およびバンク１の一方のデータにアクセスしているタイミングで、他方のバンクの行アドレスを変更するようにすれば、処理速度を高速にすることが可能である。あるいは逆に、２次元画像の水平１ラインのデータサイズがＳＤＲＡＭ４の１行に格納可能なサイズ（バンク０とバンク１の１行に格納可能なサイズの和）より大きくてもよい。この場合にも、８ピクセル単位で画像データをいずれかのバンクの同一行に格納するようにし、２次元画像の水平１ラインの途中で各バンクの行アドレスを変更するようにしても問題はない。つまり、本発明は、本質的には、マクロブロックを構成する１行の画像データのうち、その半分の８ピクセル分の画像データが全て一方のバンクの同一行に格納され、これに続く残り半分の８ピクセル分の画像データが全て他方のバンクの同一行に格納され、さらに、列方向のデータは全て同じバンクに格納されることである。このような格納方法をとれば、後述するように、マクロブロック単位での画像データに対するアクセスにおいて、いずれかのバンクの行アドレスを変更する必要が生じた場合でも、その直前に必ず他方のバンクに対するアクセス処理が介入するので、その間に行アドレスを変更することで、空き時間の発生を無くすことができるのである。
【００４１】
次に、ＭＰＥＧ処理部２がＭＰＥＧ圧縮処理を行うために、ＳＤＲＡＭ４に格納された画像データにマクロブロック単位でアクセスする処理について説明する。なお、このアクセス処理には、ＭＰＥＧ処理部２がＭＰＥＧ圧縮処理を行う対象であるマクロブロック単位の画像データを読み出す処理と、マクロブロック単位の画像データを書き込む処理がある。
【００４２】
図８は、メモリ制御部３によって、ＳＤＲＡＭ４に格納された画像データにアクセスする処理のタイミング図である。また、図９は、ＳＤＲＡＭ４のバンク０に対するアクセス順序を示す図であり、図１０は、ＳＤＲＡＭ４のバンク１に対するアクセス順序を示す図である。なお、図８ないし図１０は、マクロブロック単位での画像データの読み出し処理と書き込み処理に共通の特徴を示す図である。また、図９および図１０における各メモリ領域ａ0,0、ｂ0,0等は、図４および図５における各メモリ領域ａ0,0、ｂ0,0等に対応しており、上述した書き込み処理により、図６および図７で示したような配列で２次元画像データが格納されているものとする。
【００４３】
まず、マクロブロック単位での画像データの読み出し処理について説明する。図８において、まず、バンクアドレスに「０」が設定され、行アドレスおよび列アドレスにいずれも「０」が設定され、０番目から７番目までの８ピクセル分の画像データが、バースト転送される。具体的には、図９で示すバンク０のブロック領域Ａ0,0に格納されている８ピクセル分の画像データが読み出される。なお、図８におけるBank ADDRESSがバンクアドレス信号を示し、ADDRESSが行および列アドレス信号を示している。また、Bank0およびBank1は、それぞれバンク０およびバンク１に対するデータのアクセスタイミングと、転送されるデータの内容を示している。データの内容（0,1等の数字）は、前述したピクセル番号を示している。
【００４４】
一方、図８に示すように、ブロック領域Ａ0,0の画像データに対する読み出し処理が行われているタイミングで、バンクアドレスが「１」に設定され、ブロック領域Ａ0,0からの読み込み処理終了後、８番目から１５番目までの８ピクセル分の画像データがバースト転送される。具体的には、図１０で示すバンク１のブロック領域Ｂ0,0に格納されている８ピクセル分の画像データが読み出される。
【００４５】
さらに、図８に示すように、ブロック領域Ｂ0,0の画像データの読み出し処理が行われているタイミングで、バンクアドレスが「０」に設定されるとともに行アドレスに「１」が設定され、ブロック領域Ｂ0,0からの読み込み処理終了後、３２０番目から３２７番目までの８ピクセル分の画像データがバースト転送される。具体的には、図９で示すバンク０のブロック領域Ａ1,0に格納されている８ピクセル分の画像データが読み出される。ブロック領域Ａ1,0は、メモリ領域ａ1,0、ａ1,1、ａ1,2、ａ1,3からなる領域である。ここで、バンク０については、ブロック領域Ａ0,0に対するアクセス処理の後、ブロック領域Ａ1,0に対するアクセス処理が行われるため、アクセスする行アドレスを切り替える必要があるが、バンク１のブロック領域Ｂ0,0に対するデータ転送が行われているタイミングで、この行アドレスの切り替えが行われるので、空き時間が発生することなく、効率的にデータの読み出し処理が実行されるのである。
【００４６】
そして、ブロック領域Ａ1,0の画像データの読み出し処理が行われているタイミングで、バンクアドレスが「１」に設定されるとともに行アドレスに「１」が設定され、ブロック領域Ａ1,0からの読み込み処理終了後、３２８番目から３３５番目までの８ピクセル分の画像データがバースト転送される。具体的には、図１０で示すバンク１のブロック領域Ｂ1,0に格納されている８ピクセル分の画像データが読み出される。ブロック領域Ｂ1,0は、メモリ領域ｂ1,0、ｂ1,1、ｂ1,2、ｂ1,3からなる領域である。同様に、バンク１については、ブロック領域Ｂ0,0に対するアクセス処理の後、ブロック領域Ｂ1,0に対するアクセス処理が行われるため、アクセスする行アドレスを切り替える必要があるが、バンク０のブロック領域Ａ1,0に対するデータ転送が行われているタイミングで、この行アドレスの切り替えが行われるので、空き時間が発生することなく、効率的にデータの読み出し処理が実行されるのである。
【００４７】
以上の処理により、図６および図７に示したバンク０のブロック領域Ａ0,0、Ａ1,0およびバンク１のブロック領域Ｂ0,0、Ｂ1,0に格納されている０番目から１５番目までの１６ピクセル分の画像データおよび３２０番目から３３５番目までの１６ピクセル分の画像データが読み出される。この画像データは、図２の画像イメージに対応させると、行方向が１６ピクセルであって、列方向については同じ列の２行分の画像データである。つまり、この後、同様に、バンク０とバンク１を切り替えながら、８ピクセル単位で画像データをバースト転送し、順次、行方向が１６ピクセルで、同じ列の画像データを読み出すことにより、２次元的なブロックの画像データを連続的に読み出すことが可能となるのである。そして、このような処理を１６行分実行することにより、縦１６ピクセル×横１６ピクセルのマクロブロックに対応する画像データを連続的に読み出すことが可能となるのである。
【００４８】
図１１は、マクロブロックの読み出す順序を示す図である。図８〜図１０を用いた説明では、ブロック領域Ａ0,0→Ｂ0,0→Ａ1,0→Ｂ1,0の画像データを読み出すところまでを説明した。この後、バンク０とバンク１を交互に切り替えつつ、同列のブロック領域の画像データを順次読み出し、１６行目となるブロック領域Ａ15,0、Ｂ15,0を読み出した時点で、縦１６ピクセル×横１６ピクセルのマクロブロックに対応する画像データを読み出すことが可能となるのである。
【００４９】
また、上述したように、図２に示すようなバンク０とバンク１に対する格納ルールが満たされていれば、２次元画像の異なる水平ラインの画像データが、ＳＤＲＡＭ４の同一の行に格納されていてもよい。たとえば、２次元画像データの１ライン目と２ライン目の画像データが、ともにＳＤＲＡＭ４の１行目のメモリ領域に格納されてもよいことを説明した。この場合にも、マクロブロック単位でのデータの読み出し処理は、高速に行うことが可能である。つまり、８ピクセル単位で、バンクを切り替えながら、画像データが格納されていることにより、一方のバンクから画像データを読み出している間に、他方のバンクの行を切り替えることが可能となるからである。これにより、ＳＤＲＡＭ４に対するアクセス行を変更する際にも、空き時間を発生させることなく、読み出し処理を行うことが可能である。また、図２に示すようなバンク０とバンク１に対する格納ルールが満たされていれば、２次元画像データの水平１ラインがＳＤＲＡＭ４の複数の行にまたがって格納されていてもよい。あるいは、２次元画像の各水平ラインの列方向の順序と、ＳＤＲＡＭ４に格納される列方向の順序が異なっていてもよいし、とびとびの行に格納されるようになっていてもよい。
【００５０】
このように、マクロブロック単位で画像データを高速に読み出すことが可能であるが、ＭＰＥＧ処理部２により、マクロブロック単位で画像データを書き込む処理も同様である。この書き込み処理も、図８で示したタイミング図、図９、図１０、図１１で示したアクセス順序で行えばよい。つまり、ブロック領域Ａ0,0→Ｂ0,0→Ａ1,0→Ｂ1,0→Ａ2,0・・・の順で画像データを書き込むようにすればよい。これにより、マクロブロック単位での画像データの読み込みおよび書き込み両方の処理を高速に行うことが可能である。
【００５１】
以上説明したように、本実施の形態によれば、ＭＰＥＧ処理に必要なマクロブロック単位の画像データに連続的にアクセスする場合にも、バンク０とバンク１を切り替えることにより、アクセス空き時間を発生させることなく、効率的にＳＤＲＡＭ４にアクセスすることが可能である。つまり、一方のバンクにおいて画像データにアクセスしている間に、他方のバンクの行アドレスを変更することができるので、行アドレス変更に伴う空き時間を発生させることがない。しかも、入力部１から入力した画像データのＳＤＲＡＭ４に対する書き込み処理においては、ラスタ順で入力する画像データを、そのままの順序で格納するので、書き込み処理時における制御が複雑になることはない。
【００５２】
次に、図１２を参照して、データの種別に応じた各メモリ領域への画像データの格納方法について説明する。ＭＰＥＧ処理においては、輝度データ（Ｙデータ）と色差データ（Ｕ,Ｖデータ）からなるＹＵＶ色空間の画像データを扱う。ここで、図１３に示すように、Ｙデータは、２次元画像データの全ての画素が保持している情報である。これに対して、Ｕ，Ｖデータは、Ｙデータよりも数が少ない。ＹＵＶ４：２：０フォーマットにおいては、図に示すように、ＵデータおよびＶデータの数は、行方向に１／２間引かれるとともに、列方向にも１／２間引かれている。
【００５３】
上述したＳＤＲＡＭ４に対するアクセス処理では、画像データの種類が輝度データであるか、あるいは色差データであるかということは特に考慮せず説明した。ここでは、輝度データと色差データの場合、それぞれについてメモリ領域への格納方法を説明する。なお、画像データは、ＹＵＶ４：２：０フォーマットの場合を説明する。
【００５４】
図１２で示したタイミング図の中で、前半の２つのバースト転送処理は、輝度データに対する処理である。後半の２つのバースト転送処理は、色差データに対する処理である。まず、輝度データの場合には、２つのＹデータを１つのメモリ領域に格納する。つまり、１画素のＹデータは８ビットであり、この実施の形態におけるＳＤＲＡＭ４の１アドレスに対応するメモリ領域は１６ビットのデータを格納可能としているので、２ピクセル分のＹデータを１アドレスのメモリ領域に格納するのである。このとき、ＳＤＲＡＭ４にアクセスする１６ビットのデータ線のうち、上位８ビットを一方のＹデータ転送用に使用し、下位８ビットを他方のＹデータ転送用の使用する。このようにして、バンク０には、４つのアドレスに対応した４つのメモリ領域に８ピクセル分のＹデータが格納される。続いて、バンク１において、４つのアドレスに対応した４つのメモリ領域に８ピクセル分のＹデータが格納されるのである。
【００５５】
次に、色差データの格納方法について説明する。図１３において、太線枠で示した２ピクセル×２ピクセルの領域の中には、４つのＹデータに対して、ＵデータとＶデータが１つづつ存在する。そこで、この２つのＵデータとＶデータをパッキングして１つのメモリ領域に格納する。
【００５６】
図１２に示すように、２つのＵデータとＶデータをパッキングして１つのメモリ領域に格納することとすれば、このようなＵデータとＶデータの組が４つ分、つまり、８ピクセル分バースト転送行うことが可能である。つまり、ＵデータおよびＶデータは、いずれも１画素８ビットのデータであり、この実施の形態におけるＳＤＲＡＭ４の１アドレスに対応するメモリ領域は１６ビットのデータを格納可能としているので、ＵデータとＶデータからなる２ピクセル分のデータを１アドレスのメモリ領域に格納するのである。このとき、ＳＤＲＡＭ４にアクセスする１６ビットのデータ線のうち、上位８ビットを例えばＵデータ転送用に使用し、下位８ビットをＶデータ転送用の使用する。このようにして、バンク０には、４つのアドレスに対応した４つのメモリ領域に８ピクセル分の色差データが格納される。続いて、バンク１において、４つのアドレスに対応した４つのメモリ領域に８ピクセル分の色差データが格納されるのである。
【００５７】
このように、ＵデータとＶデータをパッキングして、１つのメモリ領域に格納することにより、輝度データについてＳＤＲＡＭ４にアクセスする場合と、色差データについてＳＤＲＡＭ４にアクセスする場合とで、同じ転送手順を実行することが可能となるのである。
【００５８】
具体的には、まず、輝度データについてマクロブロック単位のデータアクセスを行い、次に、同じマクロブロック領域内の色差データについてマクロブロック単位のデータアクセスを行うことになるが（図１２は、輝度データについてのデータアクセス処理と色差データに対するデータアクセス処理がちょうど入れ替わるタイミングを示している。）、輝度データに対するデータアクセスと色差データに対するデータアクセスを同じ手順とすることができるのである。
【００５９】
ただし、ＹＵＶ４：２：０フォーマットの場合には、ＵデータとＶデータの数が行方向（縦方向）にも１／２に間引かれているので、１つのマクロブロックに対する処理は、輝度データに対する処理の半分の処理でよい。図１１を用いて説明すれば、輝度データに対する処理は、１６行分の処理が必要であったが、色差データの場合には、８行分の処理でよい。
【００６０】
以上、第１の実施の形態においては、ＳＤＲＡＭが１アドレスに１６ビットのデータを格納可能である場合を例に説明した。しかし、本発明は、１アドレスに８ビットのデータを格納可能なＤＲＡＭにも適用させることが可能である。この場合には、８ビットのデータを格納可能なＤＲＡＭを２個利用して、上述した実施の形態と同様の処理を行うようにすればよい。つまり、８ピクセル分の画像データを２個のＤＲＡＭのそれぞれ４つのアドレスに格納する処理を１単位の処理とすればよい。そして、それぞれのＤＲＡＭに対してバンク０とバンク１とを交互に切り替えながら上記と同様の処理を行うようにすればよい。
【００６１】
｛第２の実施の形態｝
次に、本発明の第２の実施の形態について説明する。第２の実施の形態における画像処理装置も、図１で説明した画像処理装置と同様である。ただし、第２の実施の形態におけるＳＤＲＡＭ４は、１アドレスのメモリ領域に対して４バイト（３２ビット）のデータを格納可能としている。つまり、第２の実施の形態におけるＳＤＲＡＭ４は、３２ビットＳＤＲＡＭである。また、ＳＤＲＡＭ４は、連続する４つのアドレスに対して連続的にデータアクセスを行うバースト転送処理を可能としている。つまり、ＳＤＲＡＭ４は、１２８ビット（４アドレス×３２ビット）のデータをバースト転送可能としている。
【００６２】
図１４は、２次元画像データのピクセル構成を示す図である。ここでも、２次元画像は、横３２０ピクセル、つまり、１行（水平１ライン）の画像データが３２０ピクセルである場合を例に説明する。
【００６３】
図１４においては、２次元の画像データをブロックに区分して表示している。この図の表記ルールは、図２で説明したものと同様である。ただし、図２と比較すると１ブロックのピクセル数が異なる。最上位行（０行目）の左端のブロックは、２次元画像の０行目の０番目から１５番目までのピクセルに対応し、その右横のブロックは、２次元画像の０行目の１６番目から３１番目までのピクセルに対応している。そして、最上位行（０行目）の右端のブロックは、０行目の３０４番目から３１９番目までのピクセルに対応し、次の行（１行目）の左端のブロックは、３２０番目から３３５番目までのピクセル（これは、２次元画像における１行目の０番目から１５番目までのピクセルに対応している。）に対応している。
【００６４】
このようにして、２次元画像をラスタ順に１６ピクセルごとにブロック化している。さらに、この実施の形態においては、図に示すように、これら各ブロックが千鳥状にバンク０とバンク１に割り当てられてＳＤＲＡＭ４に格納される。言い換えると、２次元画像の行方向においても列方向においてもバンク０とバンク１が交互になるように割り当てられる。具体的には、図において網掛けされていないブロックはＳＤＲＡＭ４のバンク０に格納され、網掛けされているブロックはＳＤＲＡＭ４のバンク１に格納されるのである。図中、Ｃ0,0、Ｄ0,0等の表示については、第１の実施の形態で説明したものと同様である。つまり、この２次元画像データがＳＤＲＡＭ４に格納される際に、格納されるメモリ領域（バンク０およびバンク１におけるメモリ領域）のブロック名を示している。
【００６５】
図１５は、メモリ制御部３によって、入力部１より出力されたラスタ順の画像データが、ＳＤＲＡＭ４に書き込まれる際のタイミング図である。また、図１６は、ＳＤＲＡＭ４のバンク０に対する書き込み順序を示す図であり、図１７は、ＳＤＲＡＭ４のバンク１に対する書き込み順序を示す図である。また、図１８は、バンク０の各メモリ領域に格納される画像データのピクセル番号（この番号は、前述したように、２次元画像の最上位行（０行目）の左端（０列目）のピクセルを０番目の画像として、全ピクセルに対してラスタ順で付与された番号である。）を示す図であり、図１９は、バンク１の各メモリ領域に格納される画像データのピクセル番号を示す図である。
【００６６】
ここで、図１６および図１７において、メモリ領域ｃ0,0、ｄ0,0等の添え字は、１番目の添え字がメモリ領域の行番号を示し、２番目の添え字がメモリ領域の列番号を示している。これらの表記ルールも第１の実施の形態と同様である。また、図１６および図１７におけるブロック領域Ｃ0,0、Ｄ0,0等は、４つのメモリ領域からなるブロックを示している。ブロック領域の添え字は、そのブロック領域に含まれている先頭（左端）のメモリ領域の行番号および列番号に対応している。
【００６７】
図１５において、まず、バンクアドレスに「０」が設定され、行アドレスおよび列アドレスにいずれも「０」が設定され、０番目から１５番目までの１６ピクセル分の画像データが、バースト転送される。つまり、１ピクセルの画像データが８ビットであるので、１６ピクセル分の画像データ（１６ピクセル×８ビット）をバースト転送するのである。この１６ピクセル分の画像データは、図１６に示すバンク０のブロック領域Ｃ0,0に格納される。ブロック領域Ｃ0,0は、メモリ領域ｃ0,0、ｃ0,1、ｃ0,2、ｃ0,3からなる領域である。なお、図１５の表記ルールも図３等と同様である。
【００６８】
一方、図１５に示すように、０番目から１５番目までの１６ピクセル分の画像データが、ブロック領域Ｃ0,0に書き込まれているタイミングで、バンクアドレスが「１」に設定される。そして、ブロック領域Ｃ0,0への書き込み終了後、１６番目から３１番目までの１６ピクセル分の画像データがバースト転送される。この１６ピクセル分の画像データは、図１７に示すバンク１のブロック領域Ｄ0,0に格納される。ブロック領域Ｄ0,0は、メモリ領域ｄ0,0、ｄ0,1、ｄ0,2、ｄ0,3からなる領域である。
【００６９】
さらに、１６番目から３１番目までの１６ピクセル分の画像データがブロック領域Ｄ0,0に書き込まれているタイミングで、バンクアドレスが「０」に設定される。そして、ブロック領域Ｄ0,0への書き込み終了後、３２番目から４７番目までの１６ピクセル分の画像データがバースト転送される。この１６ピクセル分の画像データは、列アドレスに「４」が設定されることにより、図１６に示すバンク０のブロック領域Ｃ0,4に格納される。ブロック領域Ｃ0,4は、メモリ領域ｃ0,4、ｃ0,5、ｃ0,6、ｃ0,7からなる領域である。
【００７０】
そして、ブロック領域Ｃ0,4に書き込みが行われているタイミングで、バンクアドレスが「１」に設定される。そして、ブロック領域Ｃ0,4への書き込み終了後、４８番目から６３番目までの１６ピクセル分の画像データがバースト転送される。この１６ピクセル分の画像データは、列アドレスに「４」が設定されることにより、図１７に示すバンク１のブロック領域Ｄ0,4に格納される。ブロック領域Ｄ0,4は、メモリ領域ｄ0,4、ｄ0,5、ｄ0,6、ｄ0,7からなる領域である。
【００７１】
以上の処理により、図１８および図１９に示すように、バンク０のブロック領域Ｃ0,0、Ｃ0,4およびバンク１のブロック領域Ｄ0,0、Ｄ0,4に０番目から６３番目までの６４ピクセル分の画像データが格納される。この後は、同様に、バンク０とバンク１を切り替えながら、１６ピクセル単位で画像データをバースト転送し、順次ＳＤＲＡＭ４に画像データを格納するのである。図１６および図１７における矢印は、それぞれバンク０およびバンク１への格納順序を示している。上述した手順により、２次元画像の０行目の画像データが矢印の方向に格納された後、１行目の画像データが同様に矢印の方向に格納され、順次、各行の画像データが格納される。また、ＳＤＲＡＭ４に対する書き込み手順をブロック領域を用いて表現すると、ブロック領域Ｃ0,0→Ｄ0,0→Ｃ0,4→Ｄ0,4→Ｃ0,8→Ｄ0,8→Ｃ0,12→・・・の順で、２次元画像データを順次格納することになる。
【００７２】
このように、２次元画像の行方向については、１６ピクセルごとにバンク０とバンク１が交互になるようＳＤＲＡＭ４に対してデータが格納される。そして、図１４でも示したように、列方向については、１行ごとにバンク０とバンク１が交互になるようにＳＤＲＡＭ４に格納するのである。
【００７３】
この実施の形態の例では、２次元画像の行方向のピクセル数は３２０である。したがって、１６ピクセルごとにバンク０とバンク１を切り替えて０行目のデータを格納した後、１行目のデータを格納する場合には、１行目の先頭のブロックは再びバンク０に格納される順番となる。このため、１行目の先頭のブロック、つまり３２０番目から３３５番目までの画像データは、一旦バッファに格納し、次のブロック、つまり３３６番目から３５１番目までの画像データを先にバンク０に格納するようにする。次に、バッファされていた３２０番目から３３５番目までの画像データをバンク１に格納するのである。これにより、列方向については１行ごとにバンク０とバンク１が交互に切り替えられて画像データが格納されることになる。バッファされていた３２０番目から３３５番目までの画像データをバンク１に格納した後は、３５２番目から３６７番目までの画像データをバンク１に格納するようにしても、行アドレスの切り替えが発生しないのでアクセス速度が遅くなることはない。その後は、行方向に再び１６ピクセルごとにバンク０とバンク１を切り替えながら画像データを格納すれば、列方向についても１行ごとにバンク０とバンク１が交互に切り替えられて画像データが格納されることになる。
【００７４】
一方、行方向のピクセル数が１６ピクセルの奇数倍である場合には、ラスタ順でバンク０とバンク１を切り替えていくことにより、列方向についても１行ごとにバンク０とバンク１に対して交互に格納されるので、上記のようにバッファを利用する必要はない。
【００７５】
このように、ＭＰＥＧ処理の対象となる２次元画像データをバンク０とバンク１とを切り替えながら、２次元画像イメージでＳＤＲＡＭ４に格納する。そして、画像の列方向については１行ごとにバンク０とバンク１が交互になるようにＳＤＲＡＭ４に格納する。このため、マクロブロックに注目した場合、ＳＤＲＡＭ４の複数の行に画像データがまたがって格納されることとなるが、アクセスする行を切り替える場合にも、空き時間が発生することはない。このアクセス手順については、後で具体的に説明するが、バンク１のデータにアクセスしているタイミングで、バンク０についてアクセスする行を切り替え、バンク０のデータにアクセスしているタイミングで、バンク１についてアクセスする行を切り替えることが可能となるからである。
【００７６】
なお、図１８および図１９で示したように、２次元画像データの水平１ライン分の画像データは、ＳＤＲＡＭ４のバンク０の同一行およびバンク１の同一行のメモリ領域に格納し、２次元画像データのラインが次のラインに移動すると、格納先のバンク０とバンク１のメモリ領域も行を変更するようにしている。このような格納方法は、メモリ領域の有効利用という点ではデメリットがあるが、回路構成をシンプルにすることができるという点でメリットがある。したがって、メモリ領域に余裕がある場合には有効な方法である。
【００７７】
ただし、上記格納方法は一例であり、これに限定されることはない。つまり、ラスタ順で入力する２次元画像データの１ライン目の画像データを、ＳＤＲＡＭ４の１行目（バンク０あるいはバンク１）に格納した後、２ライン目の画像データを続けて、ＳＤＲＡＭ４の１行目に格納するような方法をとってもよい。同様に、ＳＤＲＡＭ４の各行において、画像データの水平ラインに対応して格納する行を変更させることはなく、順次、画像データを詰めて格納するのである。そして、この場合にも、一度に転送される１６ピクセル分の画像データ（つまり、１バースト転送分の画像データ）はＳＤＲＡＭ４の同一行に格納されるようにしておけばよい。これにより、バンク０およびバンク１の一方のデータにアクセスしているタイミングで、他方のバンクの行アドレスを変更するようにすれば、処理速度を高速にすることが可能である。あるいは逆に、２次元画像の水平１ラインのデータサイズがＳＤＲＡＭ４の１行に格納可能なサイズ（バンク０とバンク１の１行に格納可能なサイズの和）より大きくてもよい。この場合にも、１６ピクセル単位で画像データをいずれかのバンクの同一行に格納するようにし、２次元画像の水平１ラインの途中で各バンクの行アドレスを変更するようにしても問題はない。つまり、本発明は、本質的には、マクロブロックを構成する１行の１６ピクセル分の画像データが全て一方のバンクの同一行に格納され、マクロブロックを構成する次の行の１６ピクセル分の画像データが全て他方のバンクの同一行に格納されることである。このような格納方法をとれば、マクロブロック単位での画像データに対するアクセスにおいて、いずれかのバンクの行アドレスを変更する必要が生じた場合でも、その直前に必ず他方のバンクに対するアクセス処理が介入するので、その間に行アドレスを変更することで、空き時間の発生を無くすことができるのである。
【００７８】
次に、ＭＰＥＧ処理部２がＭＰＥＧ圧縮処理を行うために、ＳＤＲＡＭ４に格納された画像データにマクロブロック単位でアクセスする処理について説明する。なお、このアクセス処理には、ＭＰＥＧ処理部２がＭＰＥＧ圧縮処理を行う対象であるマクロブロック単位の画像データを読み出す処理と、マクロブロック単位の画像データを書き込む処理がある。
【００７９】
図２０は、メモリ制御部３によって、ＳＤＲＡＭ４に格納された画像データにアクセスする処理のタイミング図である。また、図２１は、ＳＤＲＡＭ４のバンク０に対するアクセス順序を示す図であり、図２２は、ＳＤＲＡＭ４のバンク１に対するアクセス順序を示す図である。さらに、図２１および図２２で示した方法によりマクロブロックにアクセスした後、続けて隣り合うマクロブロックをアクセスする方法を示したのが図２３および図２４である。図２３は、ＳＤＲＡＭ４のバンク０に対するアクセス順序を示す図であり、図２４は、ＳＤＲＡＭ４のバンク１に対するアクセス順序を示す図である。なお、図２０ないし図２４は、マクロブロック単位での画像データの読み出し処理と書き込み処理に共通の特徴を示す図である。また、図２１ないし図２４における各ブロック領域Ｃ0,0、Ｄ0,0等は、図１６および図１７における各ブロック領域Ｃ0,0、Ｄ0,0等に対応しており、上述した書き込み処理により、図１８および図１９で示したような配列で２次元画像データが格納されているものとする。
【００８０】
まず、マクロブロック単位での画像データの読み出し処理について説明する。図２０において、まず、バンクアドレスに「０」が設定され、行アドレスおよび列アドレスにいずれも「０」が設定され、０番目から１５番目までの１６ピクセル分の画像データが、バースト転送される。具体的には、図２１で示すバンク０のブロック領域Ｃ0,0に格納されている１６ピクセル分の画像データが読み出される。なお、図２０における表記ルールは、図３等と同様である。
【００８１】
一方、図２０に示すように、ブロック領域Ｃ0,0の画像データに対する読み出し処理が行われているタイミングで、バンクアドレスが「１」に設定されるとともに行アドレスが「１」に設定され、ブロック領域Ｃ0,0からの読み込み処理終了後、３２０番目から３３５番目までの１６ピクセル分の画像データがバースト転送される。具体的には、図２２で示すバンク１のブロック領域Ｄ1,0に格納されている１６ピクセル分の画像データが読み出される。
【００８２】
さらに、図２０に示すように、ブロック領域Ｄ1,0の画像データの読み出し処理が行われているタイミングで、バンクアドレスが「０」に設定されるとともに行アドレスが「２」に設定され、ブロック領域Ｄ1,0からの読み込み処理終了後、６４０番目から６５５番目までの１６ピクセル分の画像データがバースト転送される。具体的には、図２１で示すバンク０のブロック領域Ｃ2,0に格納されている１６ピクセル分の画像データが読み出される。ブロック領域Ｃ2,0は、メモリ領域ｃ2,0、ｃ2,1、ｃ2,2、ｃ2,3からなる領域である。ここで、バンク０については、ブロック領域Ｃ0,0に対するアクセス処理の後、ブロック領域Ｃ2,0に対するアクセス処理が行われるため、アクセスする行アドレスを切り替える必要があるが、バンク１のブロック領域Ｄ1,0に対するデータ転送が行われているタイミングで、この行アドレスの切り替えが行われるので、空き時間が発生することなく、効率的にデータの読み出し処理が実行されるのである。
【００８３】
そして、ブロック領域Ｃ2,0の画像データの読み出し処理が行われているタイミングで、バンクアドレスが「１」に設定されるとともに行アドレスが「３」に設定され、ブロック領域Ｃ2,0からの読み込み処理終了後、９６０番目から９７５番目までの１６ピクセル分の画像データがバースト転送される。具体的には、図２２で示すバンク１のブロック領域Ｄ3,0に格納されている１６ピクセル分の画像データが読み出される。ブロック領域Ｄ3,0は、メモリ領域ｄ3,0、ｄ3,1、ｄ3,2、ｄ3,3からなる領域である。同様に、バンク１については、ブロック領域Ｄ1,0に対するアクセス処理の後、ブロック領域Ｄ3,0に対するアクセス処理が行われるため、アクセスする行アドレスを切り替える必要があるが、バンク０のブロック領域Ｃ2,0に対するデータ転送が行われているタイミングで、この行アドレスの切り替えが行われるので、空き時間が発生することなく、効率的にデータの読み出し処理が実行されるのである。
【００８４】
以上の処理により、図１８および図１９に示したバンク０のブロック領域Ｃ0,0、Ｃ2,0およびバンク１のブロック領域Ｄ1,0、Ｄ3,0に格納されている０番目から１５番目までの１６ピクセル分の画像データおよび３２０番目から３３５番目までの１６ピクセル分の画像データおよび６４０番目から６５５番目までの１６ピクセル分の画像データおよび９６０番目から９７５番目までの１６ピクセル分の画像データが読み出される。この画像データは、図１４の画像イメージに対応させると、行方向が１６ピクセルであって、列方向が同じ列の４行分の画像データである。つまり、この後、同様に、バンク０とバンク１を切り替えながら、１６ピクセル単位で画像データをバースト転送し、順次、行方向が１６ピクセルで、同じ列の画像データを読み出すことにより、２次元的なブロックの画像データを連続的に読み出すことが可能となるのである。そして、このような処理を１６行分実行することにより、縦１６ピクセル×横１６ピクセルのマクロブロックに対応する画像データを連続的に読み出すことが可能となるのである。
【００８５】
図２０〜図２２を用いた説明では、ブロック領域Ｃ0,0→Ｄ1,0→Ｃ2,0→Ｄ3,0の画像データを読み出すところまでを説明した。この後、バンク０とバンク１を交互に切り替えつつ、同様に同列のブロック領域の画像データを順次読み出する。つまり、Ｃ0,0→Ｄ1,0→Ｃ2,0→Ｄ3,0→Ｃ4,0→Ｄ5,0→Ｃ6,0→Ｄ7,0→Ｃ8,0→Ｄ9,0→Ｃ10,0→Ｄ11,0→Ｃ12,0→Ｄ13,0→Ｃ14,0→Ｄ15,0の順でブロック領域を読み出すことにより、縦１６ピクセル×横１６ピクセルのマクロブロックに対応する画像データを読み出すことが可能となるのである。
【００８６】
また、上述したように、図１４に示すようなバンク０とバンク１に対する格納ルールが満たされていれば、２次元画像の異なる水平ラインの画像データが、ＳＤＲＡＭ４の同一の行に格納されていてもよい。たとえば、２次元画像データの１ライン目と２ライン目の画像データが、ともにＳＤＲＡＭ４の１行目のメモリ領域に格納されてもよいことを説明した。この場合にも、マクロブロック単位でのデータの読み出し処理は、高速に行うことが可能である。つまり、１６ピクセル単位で、バンクを切り替えながら、画像データが格納されていることにより、一方のバンクから画像データを読み出している間に、他方のバンクの行を切り替えることが可能となるからである。これにより、ＳＤＲＡＭ４に対するアクセス行を変更する際にも、空き時間を発生させることなく、読み出し処理を行うことが可能である。また、図１４に示すようなバンク０とバンク１に対する格納ルールが満たされていれば、２次元画像データの水平１ラインがＳＤＲＡＭ４の複数の行にまたがって格納されていてもよい。あるいは、２次元画像の各水平ラインの列方向の順序と、ＳＤＲＡＭ４に格納される列方向の順序が異なっていてもよいし、とびとびの行に格納されるようになっていてもよい。
【００８７】
このように、マクロブロック単位で画像データを高速に読み出すことが可能であるが、ＭＰＥＧ処理部２により、マクロブロック単位で画像データを書き込む処理も同様である。この書き込み処理も、図２０で示したタイミング図、図２１、図２２で示したアクセス順序で行えばよい。つまり、ブロック領域Ｃ0,0→Ｄ1,0→Ｃ2,0→Ｄ3,0→Ｃ4,0・・・の順で画像データを書き込むようにすればよい。これにより、マクロブロック単位での画像データの読み込みおよび書き込み両方の処理を高速に行うことが可能である。
【００８８】
以上説明した方法により、縦１６ピクセル×横１６ピクセルのマクロブロックに対するアクセスを行った後、さらに、隣り合うマクロブロックにアクセスする方法を説明する。図１４の画像イメージを用いて説明すると、０番目から１５番目までのピクセルデータを含むマクロブロックにアクセスした後に、続けて１６番目から３１番目までのピクセルデータを含むマクロブロックにアクセスするような処理である。
【００８９】
ここで、上述したように、０番目から１５番目までのピクセルデータを含むマクロブロックに対するアクセスにおいて、最後にアクセスするブロック領域はバンク１のブロック領域Ｄ15,0であった。このため、続けて１６番目から３１番目までのピクセルデータを含むマクロブロックにアクセスする場合、最初の１６番目から３１番目のピクセルデータもバンク１に格納されているため、バンク１に連続してアクセスする必要がある。そして、ブロック領域Ｄ15,0とブロック領域Ｄ0,0とがＳＤＲＡＭ４の異なる行である場合（この実施の形態では、異なる行に格納されている。）には、行アドレスを切り替える処理が発生し、処理速度が低下する。
【００９０】
そこで、本実施の形態においては、続けて隣り合うマクロブロックにアクセスする場合には、そのアクセス方向を列方向について逆にするようにする。つまり、図２３および図２４に示すように、このマクロブロックに対しては、図２１および図２２で示した方法に比べて列方向のアクセス順序を逆転させるのである。
【００９１】
具体的には、まず、ブロック領域Ｃ15,0に対するアクセスを行い、次に、ブロック領域Ｄ14,0にアクセスする。そして、バンク０とバンク１を切り替えながら同様のアクセスを行う。つまり、Ｃ15,0→Ｄ14,0→Ｃ13,0→Ｄ12,0→Ｃ11,0→Ｄ10,0→Ｃ9,0→Ｄ8,0→Ｃ7,0→Ｄ6,0→Ｃ5,0→Ｄ4,0→Ｃ3,0→Ｄ2,0→Ｃ1,0→Ｄ0,0の順でブロック領域を読み出すことにより、縦１６ピクセル×横１６ピクセルのマクロブロックに対応する画像データを読み出すことが可能となるのである。これにより、隣り合うマクロブロックについて連続してアクセスする場合でも、処理の全般にわたって常にバンク０とバンク１に対するアクセスが交互になるので、一方のバンクに対するアクセスを行っている間に、他方のバンクの行アドレスを切り替える処理を行うことが可能である。
【００９２】
次に、図２５を参照して、データの種別に応じた各メモリ領域への画像データの格納方法について説明する。ここでも、図１３で示したように、画像データは、ＹＵＶ４：２：０フォーマットの場合を説明する。
【００９３】
図２５で示したタイミング図の中で、前半の２つのバースト転送処理は、輝度データに対する処理である。後半の２つのバースト転送処理は、色差データに対する処理である。まず、輝度データの場合には、４つのＹデータを１つのメモリ領域に格納する。つまり、１画素のＹデータは８ビットであり、本実施の形態におけるＳＤＲＡＭ４の１アドレスに対応するメモリ領域は３２ビットのデータを格納可能としているので、４ピクセル分のＹデータを１アドレスのメモリ領域に格納するのである。このとき、ＳＤＲＡＭ４にアクセスする３２ビットのデータ線を４等分して、それぞれ４ピクセル分のＹデータ転送用に使用する。このようにして、バンク０には、４つのアドレスに対応した４つのメモリ領域に１６ピクセル分のＹデータが格納される。続いて、バンク１において、４つのアドレスに対応した４つのメモリ領域に１６ピクセル分のＹデータが格納されるのである。
【００９４】
次に、色差データの格納方法について説明する。この実施の形態では、ＵデータとＶデータの組を２組パッキングして１つのメモリ領域に格納する。つまり、ＵデータおよびＶデータは、いずれも１画素８ビットのデータであり、本実施の形態におけるＳＤＲＡＭ４の１アドレスに対応するメモリ領域は３２ビットのデータを格納可能としているので、ＵデータとＶデータからなる４ピクセル分のデータを１アドレスのメモリ領域に格納するのである。このとき、ＳＤＲＡＭ４にアクセスする３２ビットのデータ線を４等分して、それぞれ４ピクセル分のＵデータとＶデータに割り当てる。このようにして、バンク０には、４つのアドレスに対応した４つのメモリ領域に１６ピクセル分の色差データが格納される。続いて、バンク１において、４つのアドレスに対応した４つのメモリ領域に１６ピクセル分の色差データが格納されるのである。
【００９５】
このように、ＵデータとＶデータをパッキングして、１つのメモリ領域に格納することにより、輝度データについてＳＤＲＡＭ４にアクセスする場合と、色差データについてＳＤＲＡＭ４にアクセスする場合とで、同じ転送手順を実行することが可能となるのである。
【００９６】
具体的には、まず、輝度データについてマクロブロック単位のデータアクセスを行い、次に、同じマクロブロック領域内の色差データについてマクロブロック単位のデータアクセスを行うことになるが（図２５は、輝度データについてのデータアクセス処理と色差データに対するデータアクセス処理がちょうど入れ替わるタイミングを示している。）、輝度データに対するデータアクセスと色差データに対するデータアクセスを同じ手順とすることができるのである。ただし、ＹＵＶ４：２：０フォーマットの場合には、ＵデータとＶデータの数が行方向（縦方向）にも１／２に間引かれているので、１つのマクロブロックに対する処理は、輝度データに対する処理の半分の処理でよい。
【００９７】
｛第３の実施の形態｝
次に、本発明の第３の実施の形態について説明する。第３の実施の形態における画像処理装置も、図１で説明した画像処理装置と同様である。第３の実施の形態におけるＳＤＲＡＭ４は、１アドレスのメモリ領域に対して２バイト（１６ビット）のデータを格納可能としているが、第１の実施の形態とは異なり、ＳＤＲＡＭ４は、連続する８つのアドレスに対して連続的にデータアクセスを行うバースト転送処理を可能としている。つまり、ＳＤＲＡＭ４は、１２８ビット（８アドレス×１６ビット）のデータをバースト転送可能とした、１６ビットＤＤＲ(double data rate)ＳＤＲＡＭである。
【００９８】
この実施の形態においても、２次元画像をラスタ順に１６ピクセルごとにブロック化し、図１４で示したように、これら各ブロックが千鳥状にバンク０とバンク１に割り当てられて、ＳＤＲＡＭ４に格納されることになる。
【００９９】
図２６は、メモリ制御部３によって、入力部１より出力されたラスタ順の画像データが、ＳＤＲＡＭ４に書き込まれる際のタイミング図である。また、図２７は、ＳＤＲＡＭ４のバンク０に対する書き込み順序を示す図であり、図２８は、ＳＤＲＡＭ４のバンク１に対する書き込み順序を示す図である。また、図２９は、バンク０の各メモリ領域に格納される画像データのピクセル番号を示す図であり、図３０は、バンク１の各メモリ領域に格納される画像データのピクセル番号を示す図である。
【０１００】
ここで、図２７および図２８において、メモリ領域ｅ0,0、ｆ0,0等の添え字は、１番目の添え字がメモリ領域の行番号を示し、２番目の添え字がメモリ領域の列番号を示している。これらの表記ルールも第１の実施の形態と同様である。また、図２７および図２８におけるブロック領域Ｅ0,0、Ｆ0,0等は、８つのメモリ領域からなるブロックを示している。ブロック領域の添え字は、そのブロック領域に含まれている先頭（左端）のメモリ領域の行番号および列番号に対応している。
【０１０１】
図２６において、まず、バンクアドレスに「０」が設定され、行アドレスおよび列アドレスにいずれも「０」が設定され、０番目から１５番目までの１６ピクセル分の画像データが、バースト転送される。つまり、１ピクセルの画像データが８ビットであるので、１６ピクセル分の画像データ（１６ピクセル×８ビット）をバースト転送するのである。この１６ピクセル分の画像データは、図２７に示すバンク０のブロック領域Ｅ0,0に格納される。ブロック領域Ｅ0,0は、メモリ領域ｅ0,0、ｅ0,1、ｅ0,2、ｅ0,3、ｅ0,4、ｅ0,5、ｅ0,6、ｅ0,7からなる領域である。なお、図２６の表記ルールも図３等と同様である。
【０１０２】
一方、図２６に示すように、０番目から１５番目までの１６ピクセル分の画像データが、ブロック領域Ｅ0,0に書き込まれているタイミングで、バンクアドレスが「１」に設定される。そして、ブロック領域Ｅ0,0への書き込み終了後、１６番目から３１番目までの１６ピクセル分の画像データがバースト転送される。この１６ピクセル分の画像データは、図２８に示す、バンク１のブロック領域Ｆ0,0に格納される。ブロック領域Ｆ0,0は、メモリ領域ｆ0,0、ｆ0,1、ｆ0,2、ｆ0,3、ｆ0,4、ｆ0,5、ｆ0,6、ｆ0,7からなる領域である。
【０１０３】
さらに、１６番目から３１番目までの１６ピクセル分の画像データがブロック領域Ｆ0,0に書き込まれているタイミングで、バンクアドレスが「０」に設定される。そして、ブロック領域Ｆ0,0への書き込み終了後、３２番目から４７番目までの１６ピクセル分の画像データがバースト転送される。この１６ピクセル分の画像データは、列アドレスに「８」が設定されることにより、図２７に示すバンク０のブロック領域Ｅ0,8に格納される。ブロック領域Ｅ0,8は、メモリ領域ｅ0,8、ｅ0,9、ｅ0,10、ｅ0,11、ｅ0,12、ｅ0,13、ｅ0,14、ｅ0,15からなる領域である。
【０１０４】
そして、ブロック領域Ｅ0,8に書き込みが行われているタイミングで、バンクアドレスが「１」に設定される。そして、ブロック領域Ｅ0,8への書き込み終了後、４８番目から６３番目までの１６ピクセル分の画像データがバースト転送される。この１６ピクセル分の画像データは、列アドレスに「８」が設定されることにより、図２８に示すバンク１のブロック領域Ｆ0,8に格納される。ブロック領域Ｆ0,8は、メモリ領域ｆ0,8、ｆ0,9、ｆ0,10、ｆ0,11、ｆ0,12、ｆ0,13、ｆ0,14、ｆ0,15からなる領域である。
【０１０５】
以上の処理により、図２９および図３０に示すように、バンク０のブロック領域Ｅ0,0、Ｅ0,8およびバンク１のブロック領域Ｆ0,0、Ｆ0,8に０番目から６３番目までの６４ピクセル分の画像データが格納される。この後は、同様に、バンク０とバンク１を切り替えながら、１６ピクセル単位で画像データをバースト転送し、順次ＳＤＲＡＭ４に画像データを格納するのである。図２７および図２８における矢印は、それぞれバンク０およびバンク１への格納順序を示している。上述した手順により、２次元画像の０行目の画像データが矢印の方向に格納された後、１行目の画像データが同様に矢印の方向に格納され、順次、各行の画像データが格納される。また、ＳＤＲＡＭ４に対する書き込み手順を、ブロック領域を用いて表現すると、ブロック領域Ｅ0,0→Ｆ0,0→Ｅ0,8→Ｆ0,8→Ｅ0,16→Ｆ0,16→Ｃ0,24→・・・の順で、２次元画像データを順次格納することになる。
【０１０６】
このように、２次元画像の行方向については、１６ピクセルごとにバンク０とバンク１が交互になるようＳＤＲＡＭ４に対してデータが格納される。そして、図１４でも示したように、列方向については、１行ごとにバンク０とバンク１が交互になるようにＳＤＲＡＭ４に格納するのである。
【０１０７】
そして、第２の実施の形態で説明したように、行方向のピクセル数が１６ピクセルの偶数倍である場合には、バッファを利用することにより、列方向については２次元画像が１行ごとにバンク０とバンク１に対して交互に格納されるようにする。また、行方向のピクセル数が１６ピクセルの奇数倍である場合には、バッファを利用する必要はない。
【０１０８】
このように、ＭＰＥＧ処理の対象となる２次元画像データをバンク０とバンク１とを切り替えながら、２次元画像イメージでＳＤＲＡＭ４に格納する。そして、画像の列方向についてはバンク０とバンク１が交互になるようにＳＤＲＡＭ４に格納する。このため、マクロブロックに注目した場合、ＳＤＲＡＭ４の複数の行に画像データがまたがって格納されることとなるが、アクセスする行を切り替える場合にも、空き時間が発生することはない。このアクセス処理については、後で具体的に説明するが、バンク１のデータにアクセスしているタイミングで、バンク０についてアクセスする行を切り替え、バンク０のデータにアクセスしているタイミングで、バンク１についてアクセスする行を切り替えることが可能となるからである。
【０１０９】
また、第１あるいは第２の実施の形態で説明したように、ラスタ順で入力する２次元画像データの１ライン目の画像データを、ＳＤＲＡＭ４の１行目（バンク０あるいはバンク１）に格納した後、２ライン目の画像データを続けて、ＳＤＲＡＭ４の１行目に格納するような方法をとってもよい。同様に、ＳＤＲＡＭ４の各行において、画像データのラインに対応して格納する行を変更させることはなく、順次、画像データを詰めて格納するようにしてもよい。あるいは逆に、２次元画像の水平１ラインのデータサイズがＳＤＲＡＭ４の１行に格納可能なサイズ（バンク０とバンク１の１行に格納可能なサイズの和）より大きくてもよい。この場合にも、１６ピクセル単位で画像データをいずれかのバンクの同一行に格納するようにし、２次元画像の水平１ラインの途中で各バンクの行アドレスを変更するようにしても問題はない。つまり、本発明は、本質的には、マクロブロックを構成する１行の１６ピクセル分の画像データが全て一方のバンクの同一行に格納され、マクロブロックを構成する次の行の１６ピクセル分の画像データが全て他方のバンクの同一行に格納されることである。
【０１１０】
次に、ＭＰＥＧ処理部２がＭＰＥＧ圧縮処理を行うために、ＳＤＲＡＭ４に格納された画像データにマクロブロック単位でアクセスする処理について説明する。なお、このアクセス処理には、ＭＰＥＧ処理部２がＭＰＥＧ圧縮処理を行う対象であるマクロブロック単位の画像データを読み出す処理と、マクロブロック単位の画像データを書き込む処理がある。
【０１１１】
図３１は、メモリ制御部３によって、ＳＤＲＡＭ４に格納された画像データにアクセスする処理のタイミング図である。また、図３２は、ＳＤＲＡＭ４のバンク０に対するアクセス順序を示す図であり、図３３は、ＳＤＲＡＭ４のバンク１に対するアクセス順序を示す図である。さらに、図３２および図３３で示した方法によりマクロブロックにアクセスした後、続けて隣り合うマクロブロックをアクセスする方法を示したのが図３４および図３５である。図３４は、ＳＤＲＡＭ４のバンク０に対するアクセス順序を示す図であり、図３５は、ＳＤＲＡＭ４のバンク１に対するアクセス順序を示す図である。なお、図３１ないし図３５は、マクロブロック単位での画像データの読み出し処理と書き込み処理に共通の特徴を示す図である。また、図３２ないし図３５における各ブロック領域Ｅ0,0、Ｆ0,0等は、図２７および図２８における各ブロック領域Ｅ0,0、Ｆ0,0等に対応しており、上述した書き込み処理により、図２９および図３０で示したような配列で２次元画像データが格納されているものとする。
【０１１２】
まず、マクロブロック単位での画像データの読み出し処理について説明する。図３１において、まず、バンクアドレスに「０」が設定され、行アドレスおよび列アドレスにいずれも「０」が設定され、０番目から１５番目までの１６ピクセル分の画像データが、バースト転送される。具体的には、図３２で示すバンク０のブロック領域Ｅ0,0に格納されている１６ピクセル分の画像データが読み出される。なお、図３１における表記ルールは、図３等と同様である。
【０１１３】
一方、図３１に示すように、ブロック領域Ｅ0,0の画像データに対する読み出し処理が行われているタイミングで、バンクアドレスが「１」に設定されるとともに行アドレスに「１」が設定され、ブロック領域Ｅ0,0からの読み込み処理終了後、３２０番目から３３５番目までの１６ピクセル分の画像データがバースト転送される。具体的には、図３３で示すバンク１のブロック領域Ｆ1,0に格納されている１６ピクセル分の画像データが読み出される。
【０１１４】
さらに、図３１に示すように、ブロック領域Ｆ1,0の画像データの読み出し処理が行われているタイミングで、バンクアドレスが「０」に設定されるとともに行アドレスに「２」が設定され、ブロック領域Ｆ1,0からの読み込み処理終了後、６４０番目から６５５番目までの１６ピクセル分の画像データがバースト転送される。具体的には、図３３で示すバンク０のブロック領域Ｅ2,0に格納されている１６ピクセル分の画像データが読み出される。ブロック領域Ｅ2,0は、メモリ領域ｅ2,0、ｅ2,1、ｅ2,2、ｅ2,3、ｅ2,4、ｅ2,5、ｅ2,6、ｅ2,7からなる領域である。ここで、バンク０については、ブロック領域Ｅ0,0に対するアクセス処理の後、ブロック領域Ｅ2,0に対するアクセス処理が行われるため、アクセスする行アドレスを切り替える必要があるが、バンク１のブロック領域Ｆ1,0に対するデータ転送が行われているタイミングで、この行アドレスの切り替えが行われるので、空き時間が発生することなく、効率的にデータの読み出し処理が実行されるのである。
【０１１５】
そして、ブロック領域Ｅ2,0の画像データの読み出し処理が行われているタイミングで、バンクアドレスが「１」に設定されるとともに行アドレスに「３」が設定され、ブロック領域Ｅ2,0からの読み込み処理終了後、９６０番目から９７５番目までの１６ピクセル分の画像データがバースト転送される。具体的には、図３３で示すバンク１のブロック領域Ｆ3,0に格納されている１６ピクセル分の画像データが読み出される。ブロック領域Ｆ3,0は、メモリ領域ｆ3,0、ｆ3,1、ｆ3,2、ｆ3,3、ｆ3,4、ｆ3,5、ｆ3,6、ｆ3,7からなる領域である。同様に、バンク１については、ブロック領域Ｆ1,0に対するアクセス処理の後、ブロック領域Ｆ3,0に対するアクセス処理が行われるため、アクセスする行アドレスを切り替える必要があるが、バンク０のブロック領域Ｅ2,0に対するデータ転送が行われているタイミングで、この行アドレスの切り替えが行われるので、空き時間が発生することなく、効率的にデータの読み出し処理が実行されるのである。
【０１１６】
以上の処理により、図２９および図３０に示したバンク０のブロック領域Ｅ0,0、Ｅ2,0およびバンク１のブロック領域Ｆ1,0、Ｆ3,0に格納されている０番目から１５番目までの１６ピクセル分の画像データおよび３２０番目から３３５番目までの１６ピクセル分の画像データおよび６４０番目から６５５番目までの１６ピクセル分の画像データおよび９６０番目から９７５番目までの１６ピクセル分の画像データが読み出される。この画像データは、図１４の画像イメージに対応させると、行方向が１６ピクセルであって、列方向が同じ列の４行分の画像データである。つまり、この後、同様に、バンク０とバンク１を切り替えながら、１６ピクセル単位で画像データをバースト転送し、順次、行方向が１６ピクセルで、同じ列の画像データを読み出すことにより、２次元的なブロックの画像データを連続的に読み出すことが可能となるのである。そして、このような処理を１６行分実行することにより、縦１６ピクセル×横１６ピクセルのマクロブロックに対応する画像データを連続的に読み出すことが可能となるのである。
【０１１７】
図３１〜図３３を用いた説明では、ブロック領域Ｅ0,0→Ｆ1,0→Ｅ2,0→Ｆ3,0の画像データを読み出すところまでを説明した。この後、バンク０とバンク１を交互に切り替えつつ、同様に同列のブロック領域の画像データを順次読み出する。つまり、Ｅ0,0→Ｆ1,0→Ｅ2,0→Ｆ3,0→Ｅ4,0→Ｆ5,0→Ｅ6,0→Ｆ7,0→Ｅ8,0→Ｆ9,0→Ｅ10,0→Ｆ11,0→Ｅ12,0→Ｆ13,0→Ｅ14,0→Ｆ15,0の順でブロック領域を読み出すことにより、縦１６ピクセル×横１６ピクセルのマクロブロックに対応する画像データを読み出すことが可能となるのである。
【０１１８】
また、上述したように、図１４に示すようなバンク０とバンク１に対する格納ルールが満たされていれば、２次元画像の複数の水平ラインのデータが、ＳＤＲＡＭ４の同一の行に格納されていてもよいし、２次元画像データの水平１ラインがＳＤＲＡＭ４の複数の行にまたがって格納されていてもよい。あるいは、２次元画像の各水平ラインの列方向の順序と、ＳＤＲＡＭ４に格納される列方向の順序が異なっていてもよいし、とびとびの行に格納されるようになっていてもよい。
【０１１９】
このように、マクロブロック単位で画像データを高速に読み出すことが可能であるが、ＭＰＥＧ処理部２により、マクロブロック単位で画像データを書き込む処理も同様である。この書き込み処理も、図３１で示したタイミング図、図３２、図３３で示したアクセス順序で行えばよい。つまり、ブロック領域Ｅ0,0→Ｆ1,0→Ｅ2,0→Ｆ3,0→Ｅ4,0・・・の順で画像データを書き込むようにすればよい。これにより、マクロブロック単位での画像データの読み込みおよび書き込み両方の処理を高速に行うことが可能である。
【０１２０】
以上説明した方法により、縦１６ピクセル×横１６ピクセルのマクロブロックに対するアクセスを行った後、さらに、隣り合うマクロブロックにアクセスする方法は、第２の実施の形態と同様である。続けて隣り合うマクロブロックにアクセスする場合には、そのアクセス方向を列方向について逆にするようにする。つまり、図３４および図３５に示すように、このマクロブロックに対しては、図３２および図３３で示した方法に比べて列方向のアクセスを逆転させるのである。
【０１２１】
まず、ブロック領域Ｅ15,0に対するアクセスを行い、次に、ブロック領域Ｆ14,0にアクセスする。そして、バンク０とバンク１を切り替えながら同様のアクセスを行う。つまり、Ｅ15,0→Ｆ14,0→Ｅ13,0→Ｆ12,0→Ｅ11,0→Ｆ10,0→Ｅ9,0→Ｆ8,0→Ｅ7,0→Ｆ6,0→Ｅ5,0→Ｆ4,0→Ｅ3,0→Ｆ2,0→Ｅ1,0→Ｆ0,0の順でブロック領域を読み出すことにより、縦１６ピクセル×横１６ピクセルのマクロブロックに対応する画像データを読み出すことが可能となるのである。これにより隣り合うマクロブロックに対して連続的にアクセスする場合でも、処理の全般にわたって常にバンク０とバンク１に対するアクセスが交互になるので、一方のバンクに対するアクセスを行っている間に、他方のバンクの行を切り替える処理を行うことが可能である。
【０１２２】
次に、図３６を参照して、データの種別に応じた各メモリ領域への画像データの格納方法について説明する。ここでも、図１３で示したように、画像データは、ＹＵＶ４：２：０フォーマットの場合を説明する。
【０１２３】
図３６で示したタイミング図の中で、前半の２つのバースト転送処理は、輝度データに対する処理である。後半の２つのバースト転送処理は、色差データに対する処理である。まず、輝度データの場合には、２つのＹデータを１つのメモリ領域に格納する。つまり、１画素のＹデータは８ビットであり、本実施の形態におけるＳＤＲＡＭ４の１アドレスに対応するメモリ領域は１６ビットのデータを格納可能としているので、２ピクセル分のＹデータを１アドレスのメモリ領域に格納するのである。このとき、ＳＤＲＡＭ４にアクセスする１６ビットのデータ線のうち上位８ビットと下位８ビットを、それぞれ２ピクセル分のＹデータ転送用に使用する。このようにして、バンク０には、８つのアドレスに対応した８つのメモリ領域に１６ピクセル分のＹデータが格納される。続いて、バンク１において、８つのアドレスに対応した８つのメモリ領域に１６ピクセル分のＹデータが格納されるのである。
【０１２４】
次に、色差データの格納方法について説明する。この実施の形態では、１組のＵデータとＶデータをパッキングして１つのメモリ領域に格納する。つまり、ＵデータおよびＶデータは、いずれも１画素８ビットのデータであり、本実施の形態におけるＳＤＲＡＭ４の１アドレスに対応するメモリ領域は１６ビットのデータを格納可能としているので、ＵデータとＶデータからなる２ピクセル分のデータを１アドレスのメモリ領域に格納するのである。このとき、ＳＤＲＡＭ４にアクセスする１６ビットのデータ線のうち、たとえば上位８ビットをＵデータ転送用に割り当て、下位８ビットをＶデータ転送用に割り当てる。このようにして、バンク０には、８つのアドレスに対応した８つのメモリ領域に１６ピクセル分の色差データが格納される。続いて、バンク１において、８つのアドレスに対応した８つのメモリ領域に１６ピクセル分の色差データが格納されるのである。
【０１２５】
このように、ＵデータとＶデータをパッキングして、１つのメモリ領域に格納することにより、輝度データについてＳＤＲＡＭ４にアクセスする場合と、色差データについてＳＤＲＡＭ４にアクセスする場合とで、同じ転送手順を実行することが可能となるのである。
【０１２６】
具体的には、まず、輝度データについてマクロブロック単位のデータアクセスを行い、次に、同じマクロブロック領域内の色差データについてマクロブロック単位のデータアクセスを行うことになるが（図３６は、輝度データについてのデータアクセス処理と色差データに対するデータアクセス処理がちょうど入れ替わるタイミングを示している。）、輝度データに対するデータアクセスと色差データに対するデータアクセスを同じ手順とすることができるのである。ただし、ＹＵＶ４：２：０フォーマットの場合には、ＵデータとＶデータの数が行方向（縦方向）にも１／２に間引かれているので、１つのマクロブロックに対する処理は、輝度データに対する処理の半分の処理でよい。
【０１２７】
以上の本発明の３つの実施の形態について説明した。そして、上記各実施の形態においては、メモリとしてＳＤＲＡＭを例に説明したが、本発明は、ＳＤＲＡＭのみならず、一般的にＤＲＡＭに対して適用可能である。
【符号の説明】
【０１２８】
３    メモリ制御部
４    ＳＤＲＡＭ
【図１】
2011055553.tif 000003
【図２】
2011055553.tif 000004
【図３】
2011055553.tif 000005
【図４】
2011055553.tif 000006
【図５】
2011055553.tif 000007
【図６】
2011055553.tif 000008
【図７】
2011055553.tif 000009
【図８】
2011055553.tif 000010
【図９】
2011055553.tif 000011
【図１０】
2011055553.tif 000012
【図１１】
2011055553.tif 000013
【図１２】
2011055553.tif 000014
【図１３】
2011055553.tif 000015
【図１４】
2011055553.tif 000016
【図１５】
2011055553.tif 000017
【図１６】
2011055553.tif 000018
【図１７】
2011055553.tif 000019
【図１８】
2011055553.tif 000020
【図１９】
2011055553.tif 000021
【図２０】
2011055553.tif 000022
【図２１】
2011055553.tif 000023
【図２２】
2011055553.tif 000024
【図２３】
2011055553.tif 000025
【図２４】
2011055553.tif 000026
【図２５】
2011055553.tif 000027
【図２６】
2011055553.tif 000028
【図２７】
2011055553.tif 000029
【図２８】
2011055553.tif 000030
【図２９】
2011055553.tif 000031
【図３０】
2011055553.tif 000032
【図３１】
2011055553.tif 000033
【図３２】
2011055553.tif 000034
【図３３】
2011055553.tif 000035
【図３４】
2011055553.tif 000036
【図３５】
2011055553.tif 000037
【図３６】
2011055553.tif 000038