(57)【要約】【課題】複数のブロックに分割されて記憶部に分散配置された画像データに、ウィンドウ領域単位でアクセスすることができる画像データアクセス方法を提供する。【解決手段】記憶部に記憶された画像データに、ｍ個×ｎ列の複数のウィンドウ領域のうち、当該画像データの先頭位置のウィンドウ領域、及びアドレスが不連続となる位置のウィンドウ領域について、ラインデータ毎の先頭画素の物理アドレスを示す情報であるｎ個の先頭位置情報を含むウィンドウ領域情報を生成、記憶し、ｎ個の先頭位置情報で示されるアドレスを指定して、記憶部のｎ列のラインデータにおける各先頭画素にアクセスし、ｎ個の先頭位置情報で示されるアドレスに、１〜（ｍ−１）の数値をそれぞれ加算して得られたアドレスによりｎ列のラインデータにおける各先頭画素に続く（ｍ−１）個の画素にアクセスするようにした。【選択図】図４
2008217515.tif 000002
【特許請求の範囲】
【請求項１】
情報を記憶する記憶部の複数の記憶領域に分割されて記憶されると共に、当該記憶領域毎に、主走査方向の画素の並び順に前記記憶部に記憶され、次いで副走査方向の画素の並び順に前記記憶部に記憶された画像データにアクセスするための画像データアクセス方法であって、
ウィンドウ領域情報生成手段が、前記記憶部に記憶された画像データに、主走査方向に並ぶ予め設定されたｍ個（ｍは任意の整数）の画素からなるラインデータが副走査方向に予め設定されたｎ列（ｎは任意の整数）配列された複数のウィンドウ領域を設定し、当該ウィンドウ領域のうち、当該画像データの先頭位置のウィンドウ領域、及び前記ｎ列のラインデータのうち少なくとも一つのアドレスが不連続となる位置を先頭アドレスとするウィンドウ領域について、当該ウィンドウ領域のラインデータ毎の先頭画素の物理アドレスを示す情報であるｎ個の先頭位置情報を含むウィンドウ領域情報を生成するウィンドウ領域情報生成工程、
領域情報記憶手段が、前記ウィンドウ領域情報生成手段により生成されたウィンドウ領域情報を記憶する領域情報記憶工程、
第１アクセス手段が、前記領域情報記憶手段により記憶された各ウィンドウ領域情報における前記ｎ個の先頭位置情報で示されるアドレスを指定して、前記記憶部に記憶されている前記ｎ列のラインデータにおける各先頭画素にアクセスする第１アクセス工程、
主走査方向アドレス生成手段が、前記領域情報記憶手段により記憶された各ウィンドウ領域情報における前記ｎ個の先頭位置情報で示されるアドレスに、１〜（ｍ−１）の数値をそれぞれ加算することにより、前記ｎ列のラインデータにおける各先頭画素に続く（ｍ−１）個の画素を示すアドレスを生成する主走査方向アドレス生成工程、
第２アクセス手段が、前記主走査方向アドレス生成手段により生成されたアドレスを用いて、前記ｎ列のラインデータにおける各先頭画素に続く（ｍ−１）個の画素にアクセスする第２アクセス工程
を含むことを特徴とする画像データアクセス方法。
【請求項２】
前記ウィンドウ領域情報生成工程において、前記ウィンドウ領域情報生成手段は、前記ウィンドウ領域情報における最初のラインデータの先頭位置情報として、前記記憶部の物理アドレスを設定し、前記ウィンドウ領域情報における二番目以降のラインデータの先頭位置情報として、当該ラインデータの一つ前のラインデータにおける先頭位置情報で示されるアドレスとの差分であるオフセット値を設定すること
を特徴とする請求項１記載の画像データアクセス方法。
【請求項３】
前記ウィンドウ領域情報生成工程において、前記ウィンドウ領域情報生成手段は、前記画像データの最初のウィンドウ領域情報における最初のラインデータの先頭位置情報として、前記記憶部の物理アドレスを設定し、当該画像データにおける二番目以降のウィンドウ領域情報における最初のラインデータの先頭位置情報として、当該ウィンドウ領域情報の一つ前のウィンドウ領域情報における最初のラインデータの先頭位置情報で示されるアドレスとの差分であるオフセット値を設定すること
を特徴とする請求項１記載の画像データアクセス方法。
【請求項４】
前記ウィンドウ領域情報生成手段は、前記ウィンドウ領域情報生成工程において、前記複数のウィンドウ領域を、予め設定された領域間差分アドレスずつ間隔を空けて設定し、前記ウィンドウ領域情報に含まれる前記ｎ列のラインデータのアドレスが、当該ウィンドウ領域情報で示されるウィンドウ領域を先頭にして主走査方向に連続している区間内に存在するウィンドウ領域の数を示す領域連続情報を、さらに当該ウィンドウ領域情報に付加し、
前記第２アクセス工程の後、連続ウィンドウ領域アドレス生成手段が、当該第２アクセス工程によるアクセスが行われたウィンドウ領域のアドレスに前記領域間差分アドレスを順次加算して、前記領域連続情報に基づき前記先頭のウィンドウ領域に続いて前記連続している区間内のウィンドウ領域のアドレスを算出する連続領域アドレス生成工程と、
第３アクセス手段が、前記連続ウィンドウ領域アドレス生成手段によって生成されたアドレスを用いて、前記ウィンドウ領域情報で示されるウィンドウ領域を先頭にして主走査方向に連続している区間内のウィンドウ領域にアクセスする第３アクセス工程と
をさらに含むことを特徴とする請求項１〜３のいずれか１項に記載の画像データアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶部の不連続なアドレスに記憶された画像データにアクセスするための画像データアクセス方法に関する。
【背景技術】
【０００２】
二次元画像を表す画像データに画像処理を施す場合、二次元の広がりを持つ一定の領域、いわゆるウィンドウ領域単位で画像データを取得して、二次元フィルタ処理を施す技術が知られている。また、このような画像データは、各画素を示す画素データを、走査線方向に一次元に並べてメモリに記憶されている。図１０は、メモリに記憶された画像データ１０１と、ウィンドウ領域１０２との関係を説明するための説明図である。図１０において、ラインデータ１０３，１０４，１０５は、それぞれ画像データ１０１における１ライン分の画像データを示しており、ラインデータ１０３，１０４，１０５の矢印は、各ラインデータの主走査方向を示すと共に、当該ラインデータがメモリに記憶される際のアドレス順を示している。図１０に示すように、画像データ１０１を構成するラインデータ１０３，１０４，１０５の各画素は、走査線方向に一次元に並べてメモリに記憶されている。
【０００３】
そして、ウィンドウ領域１０２は、二次元の広がりを持っているため、ウィンドウ領域１０２内に複数のラインデータ１０３，１０４，１０５の一部が含まれる。そうすると、ウィンドウ領域１０２の画像データは連続したアドレスにならないため、二次元フィルタ回路にウィンドウ領域１０２の高さＨ分のラインバッファを備え、メモリをアドレス順にアクセスしてウィンドウ領域１０２の高さＨ分の画像、すなわちラインデータ１０３，１０４，１０５をすべてラインバッファに読み込んだ後に、ラインバッファに対してフィルタ処理を行うことで、二次元フィルタ処理を施す技術が知られている。
【０００４】
しかしながら、ウィンドウ領域１０２の高さＨ分の画像をラインバッファに読み込んで処理を行う場合、ラインバッファのサイズが増大するという不都合がある。そこで、ラインデータ１０３，１０４，１０５がメモリの連続アドレスに記憶されていることに基づいて、ウィンドウ領域１０２における２ライン目以降の画素のアドレスを計算で求めることにより、ウィンドウ領域１０２分のバッファのみを備えて、二次元フィルタ処理に必要なウィンドウ領域１０２の画像データのみを読み込むようにする技術が知られている。
【０００５】
ところで、メモリの利用効率向上を図るためには、画像データやアプリケーションプログラム、その他の作業領域等のために動的にメモリ領域を割り当てることが望ましい。しかし、動的にメモリ領域の割り当てを行うと、必ずしも連続したメモリ領域が割り当てられるとは限らない。
【０００６】
図１１は、画像データ１０１に動的にメモリ領域を割り当てた場合のメモリマップ１０７を示す説明図である。図１１に示すように、画像データ１０１に動的にメモリ領域を割り当てた場合には、例えば画像データ１０１が四つのブロックＡ，Ｂ，Ｃ，Ｄのように分割し、ブロックＡ，Ｂ，Ｃ，Ｄをメモリの不連続なアドレスに記憶させる場合がある。このように、画像データ１０１を複数のブロックに分割してメモリに分散記憶させる場合、各ブロック間のつながりを示すディスクリプタを、各ブロックに設けるようになっている。
【０００７】
例えばブロックＡのディスクリプタ１０８には、ブロックＡの次につながるブロックＢの先頭アドレスがリンクアドレスとして記憶されており、ブロックＢのディスクリプタ１０９には、ブロックＢの次につながるブロックＣの先頭アドレスがリンクアドレスとして記憶されており、ブロックＣのディスクリプタ１１０には、ブロックＣの次につながるブロックＤの先頭アドレスがリンクアドレスとして記憶されている。このようなディスクリプタを用いることで、画像データ１０１をメモリに分散配置することが可能になっている（例えば、特許文献１参照。）。
【０００８】
このように、ディスクリプタを用いて画像データ１０１をメモリに分散配置可能にすると、大容量のデータをメモリに記憶させる際にも、空いている領域にブロック分割して記憶させることができるので、空き領域を作るためにメモリガーページを行う必要がなく、メモリアクセスのオーバーヘッドを低減することができるという利点もある。
【特許文献１】特開２００５−２５０９９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述のように、ウィンドウ領域１０２の画像データを順次読み込んで、ウィンドウ領域１０２毎に二次元フィルタ処理を施す場合、ディスクリプタを用いて画像データ１０１が複数のブロックに分割されてメモリに分散配置されていると、ウィンドウ領域１０２が複数のブロックにまたがった場合にメモリアクセスが困難になるという、不都合があった。
【００１０】
図１２は、ディスクリプタを用いて複数のブロックに分割されてメモリに分散配置された画像データ１０１に、ウィンドウ領域１０２単位でアクセスしようとした場合の動作を説明するための説明図である。図１２に示す画像データ１０１は、ブロックＡ，Ｂ，Ｃに分割されており、ウィンドウ領域１０２では、１ライン目と２ライン目がブロックＡ、３ライン目がブロックＢになっている。そして、ブロックＡのディスクリプタ１０８には、ブロックＢの先頭アドレスがリンクアドレスとして記憶されている。
【００１１】
そうすると、まず、ウィンドウ領域１０２の画像データを読み出す際は、ブロックＡにアクセスして１ライン目を読み出した後、計算により求めた２ライン目のアドレスによって、２ライン目の読み出しを行う。次に、３ライン目はブロックＢであるから、ディスクリプタ１０８を参照してブロックＢの先頭アドレスを取得することで、３ライン目が読み出され、ウィンドウ領域１０２の画像データがすべて読み出される。
【００１２】
そして、ウィンドウ領域の位置を移動して次のウィンドウ領域１１２の読み出しを行なうのであるが、このとき、再びブロックＡに戻って１ライン目と２ライン目とを読み出す必要がある。ところが、ウィンドウ領域１０２の最後にアクセスしたブロックＢのディスクリプタ１０９には、ブロックＣの先頭アドレスがリンクアドレスとして記憶されており、ブロックＡへのリンクアドレスは記憶されていない。そのため、ブロックＡに戻って１ライン目と２ライン目とを読み出すことができず、ウィンドウ領域１１２にアクセスすることができなくなってしまう。
【００１３】
本発明は、このような問題に鑑みて為された発明であり、複数のブロックに分割されて記憶部に分散配置された画像データに、ウィンドウ領域単位でアクセスすることができる画像データアクセス方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明に係る画像データアクセス方法は、情報を記憶する記憶部の複数の記憶領域に分割されて記憶されると共に、当該記憶領域毎に、主走査方向の画素の並び順に前記記憶部に記憶され、次いで副走査方向の画素の並び順に前記記憶部に記憶された画像データにアクセスするための画像データアクセス方法であって、ウィンドウ領域情報生成手段が、前記記憶部に記憶された画像データに、主走査方向に並ぶ予め設定されたｍ個（ｍは任意の整数）の画素からなるラインデータが副走査方向に予め設定されたｎ列（ｎは任意の整数）配列された複数のウィンドウ領域を設定し、当該ウィンドウ領域のうち、当該画像データの先頭位置のウィンドウ領域、及び前記ｎ列のラインデータのうち少なくとも一つのアドレスが不連続となる位置を先頭アドレスとするウィンドウ領域について、当該ウィンドウ領域のラインデータ毎の先頭画素の物理アドレスを示す情報であるｎ個の先頭位置情報を含むウィンドウ領域情報を生成するウィンドウ領域情報生成工程、領域情報記憶手段が、前記ウィンドウ領域情報生成手段により生成されたウィンドウ領域情報を記憶する領域情報記憶工程、第１アクセス手段が、前記領域情報記憶手段により記憶された各ウィンドウ領域情報における前記ｎ個の先頭位置情報で示されるアドレスを指定して、前記記憶部に記憶されている前記ｎ列のラインデータにおける各先頭画素にアクセスする第１アクセス工程、主走査方向アドレス生成手段が、前記領域情報記憶手段により記憶された各ウィンドウ領域情報における前記ｎ個の先頭位置情報で示されるアドレスに、それぞれ１〜（ｍ−１）までの数値を順次加算することにより、前記ｎ列のラインデータにおける各先頭画素に続く（ｍ−１）個の画素を示すアドレスを生成する主走査方向アドレス生成工程、第２アクセス手段が、前記主走査方向アドレス生成手段により生成されたアドレスを用いて、前記ｎ列のラインデータにおける各先頭画素に続く（ｍ−１）個の画素にアクセスする第２アクセス工程を含む。
【００１５】
この構成によれば、画像データが、情報を記憶する記憶部の複数の記憶領域に分割されて記憶されると共に、当該記憶領域毎に、主走査方向の画素の並び順に前記記憶部に記憶され、次いで副走査方向の画素の並び順に前記記憶部に記憶されている場合に、当該記憶部に記憶された画像データに、主走査方向に並ぶ予め設定されたｍ個（ｍは任意の整数）の画素からなるラインデータが副走査方向に予め設定されたｎ列（ｎは任意の整数）配列された複数のウィンドウ領域が設定される。また、当該ウィンドウ領域のうち、当該画像データの先頭位置のウィンドウ領域、及び前記ｎ列のラインデータのうち少なくとも一つのアドレスが不連続となる位置を先頭アドレスとするウィンドウ領域について、当該ウィンドウ領域のラインデータ毎の先頭画素の物理アドレスを示す情報であるｎ個の先頭位置情報を含むウィンドウ領域情報が、生成される。そして、このように生成されたウィンドウ領域情報が、領域情報記憶手段によって記憶される。さらに、第１アクセス手段によって、領域情報記憶手段により記憶された各ウィンドウ領域情報におけるｎ個の先頭位置情報で示されるアドレスが指定されて、記憶部に記憶されているｎ列のラインデータにおける各先頭画素へのアクセスが行われる。また、各ウィンドウ領域情報におけるｎ個の先頭位置情報で示されるアドレスに、１〜（ｍ−１）の数値をそれぞれ加算することにより、ｎ列のラインデータにおける各先頭画素に続く（ｍ−１）個の画素を示すアドレスが生成される。そして、このようにして生成されたアドレスを用いて、ｎ列のラインデータにおける各先頭画素に続く（ｍ−１）個の画素へのアクセスが行われる。この場合、画像データの先頭位置のウィンドウ領域、及び前記ｎ列のラインデータのうち少なくとも一つのアドレスが不連続となる位置を先頭アドレスとするウィンドウ領域について、画像データのウィンドウ領域におけるラインデータ毎の先頭画素の物理アドレスを示す情報であるｎ個の先頭位置情報が生成され、各ラインデータ毎の先頭位置情報に基づいて各ラインデータへのアクセスが行われるので、複数のブロックに分割されて記憶部に分散配置された画像データに、ウィンドウ領域単位でアクセスすることができる。
【００１６】
また、前記ウィンドウ領域情報生成工程において、前記ウィンドウ領域情報生成手段は、前記ウィンドウ領域情報における最初のラインデータの先頭位置情報として、前記記憶部の物理アドレスを設定し、前記ウィンドウ領域情報における二番目以降のラインデータの先頭位置情報として、当該ラインデータの一つ前のラインデータにおける先頭位置情報で示されるアドレスとの差分であるオフセット値を設定することが好ましい。
【００１７】
この構成によれば、ウィンドウ領域情報における最初のラインデータの先頭位置情報として、記憶部の物理アドレスが設定され、当該ウィンドウ領域情報における二番目以降のラインデータの先頭位置情報として、当該ラインデータの一つ前のラインデータにおける先頭位置情報で示されるアドレスとの差分であるオフセット値が設定されるので、すべてのラインデータの先頭位置情報として、記憶部の物理アドレスを設定する場合よりもウィンドウ領域情報のデータ量を低減することができる。
【００１８】
また、前記ウィンドウ領域情報生成工程において、前記ウィンドウ領域情報生成手段は、前記画像データの最初のウィンドウ領域情報における最初のラインデータの先頭位置情報として、前記記憶部の物理アドレスを設定し、当該画像データにおける二番目以降のウィンドウ領域情報における最初のラインデータの先頭位置情報として、当該ウィンドウ領域情報の一つ前のウィンドウ領域情報における最初のラインデータの先頭位置情報で示されるアドレスとの差分であるオフセット値を設定することが好ましい。
【００１９】
この構成によれば、画像データの最初のウィンドウ領域情報における最初のラインデータの先頭位置情報として、記憶部の物理アドレスが設定され、当該画像データにおける二番目以降のウィンドウ領域情報における最初のラインデータの先頭位置情報として、当該ウィンドウ領域情報の一つ前のウィンドウ領域情報における最初のラインデータの先頭位置情報で示されるアドレスとの差分であるオフセット値が設定されるので、すべてのウィンドウ領域情報における最初のラインデータの先頭位置情報として、記憶部の物理アドレスを設定する場合よりもウィンドウ領域情報のデータ量を低減することができる。
【００２０】
また、前記ウィンドウ領域情報生成手段は、前記ウィンドウ領域情報生成工程において、前記複数のウィンドウ領域を、予め設定された領域間差分アドレスずつ間隔を空けて設定し、前記ウィンドウ領域情報に含まれる前記ｎ列のラインデータのアドレスが、当該ウィンドウ領域情報で示されるウィンドウ領域を先頭にして主走査方向に連続している区間内に存在するウィンドウ領域の数を示す領域連続情報を、さらに当該ウィンドウ領域情報に付加し、前記第２アクセス工程の後、連続ウィンドウ領域アドレス生成手段が、当該第２アクセス工程によるアクセスが行われたウィンドウ領域のアドレスに前記領域間差分アドレスを順次加算して、前記領域連続情報に基づき前記先頭のウィンドウ領域に続いて前記連続している区間内のウィンドウ領域のアドレスを算出する連続領域アドレス生成工程と、第３アクセス手段が、前記連続ウィンドウ領域アドレス生成手段によって生成されたアドレスを用いて、前記ウィンドウ領域情報で示されるウィンドウ領域を先頭にして主走査方向に連続している区間内のウィンドウ領域にアクセスする第３アクセス工程とをさらに含むことが好ましい。
【００２１】
この構成によれば、複数のウィンドウ領域が、予め設定された領域間差分アドレスずつ間隔を空けて設定され、ウィンドウ領域情報に含まれるｎ列のラインデータのアドレスが、当該ウィンドウ領域情報で示されるウィンドウ領域を先頭にして主走査方向に連続している区間内に存在するウィンドウ領域の数を示す領域連続情報が、さらに当該ウィンドウ領域情報に付加され、前記第２アクセス工程の後、当該第２アクセス工程によるアクセスが行われたウィンドウ領域のアドレスに前記領域間差分アドレスが順次加算される。そして、領域連続情報に基づき先頭のウィンドウ領域に続いて連続している区間内のウィンドウ領域のアドレスが算出され、このようにして生成されたアドレスを用いて、ウィンドウ領域情報で示されるウィンドウ領域を先頭にして主走査方向に連続している区間内のウィンドウ領域にアクセスされる。この場合、ウィンドウ領域情報に基づいて、当該ウィンドウ領域情報で示されるウィンドウ領域を先頭にして主走査方向に連続している区間内に存在しているウィンドウ領域のアドレスを算出してアクセスすることができるので、アドレスが連続しているウィンドウ領域についてウィンドウ領域情報を生成して記憶しておく必要がなく、すべての画像データを表すためのウィンドウ領域情報のデータ容量を低減することができる。
【発明の効果】
【００２２】
この発明によれば、画像データの先頭位置のウィンドウ領域、及び前記ｎ列のラインデータのうち少なくとも一つのアドレスが不連続となる位置を先頭アドレスとするウィンドウ領域について、画像データのウィンドウ領域におけるラインデータ毎の先頭画素の物理アドレスを示す情報であるｎ個の先頭位置情報が生成され、各ラインデータ毎の先頭位置情報に基づいて各ラインデータへのアクセスが行われるので、複数のブロックに分割されて記憶部に分散配置された画像データに、ウィンドウ領域単位でアクセスすることができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明に係るアクセス方法を図面に基づいて説明する。なお、各図において同一の符号を付した構成は、同一の構成であることを示し、その説明を省略する。図１は、本発明の一実施形態に係る画像データアクセス方法を用いた画像処理装置の構成の一例を示すブロック図である。図１に示す画像処理装置１は、画像処理ＩＣ（Integrated Circuit）２と、制御部３と、メモリ４とが例えばバス接続されて構成されている。
【００２４】
メモリ４は、例えばＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）等の半導体記憶素子である。メモリ４には、画像データ４１が例えばブロックＡ，Ｂ，Ｃの３つの記憶領域に分割されて記憶されている。そして、ブロックＡ，Ｂ，Ｃには、例えば図１０に示すラインデータ１０３，１０４，１０５と同様に、それぞれメモリ４の小さいアドレスから大きいアドレスへ向かって、画像データが主走査方向の画素の並び順に記憶され、次いで副走査方向の画素の並び順に記憶されている。メモリ４は、記憶部及び領域情報記憶手段の一例に相当している。
【００２５】
画像処理ＩＣ２は、二次元フィルタ２０１と、メモリＩ／Ｆ回路２０２とを備えている。そして、二次元フィルタ２０１は、メモリＩ／Ｆ回路２０２を介してメモリ４にアクセス可能にされている。
【００２６】
二次元フィルタ２０１は、メモリ４に記憶されている画像データ４１に画像処理の一例である二次元フィルタ処理を施す画像処理回路である。二次元フィルタ２０１は、主走査方向に並ぶ予め設定されたｍ個（ｍは任意の整数）の画素からなるラインデータが副走査方向に予め設定されたｎ列（ｎは任意の整数）配列された領域であるウィンドウ領域毎に、二次元フィルタ処理を行う。
【００２７】
メモリＩ／Ｆ回路２０２は、二次元フィルタ２０１からの要求に応じてメモリ４にアクセスするインターフェイス回路で、ウィンドウ領域毎に画像データ４１を読み出して、メモリ４へ出力したり、メモリ４から出力されたウィンドウ領域単位のデータをメモリ４へ記憶させたりする。メモリＩ／Ｆ回路２０２は、第１アクセス手段、主走査方向アドレス生成手段、第２アクセス手段、連続ウィンドウ領域アドレス生成手段、及び第３アクセス手段の一例に相当している。
【００２８】
制御部３は、例えば所定の演算処理を実行するＣＰＵ（Central Processing Unit）と、所定の制御プログラムが記憶されたＲＯＭ（Read Only Memory）と、データを一時的に記憶するＲＡＭ（Random Access Memory）と、これらの周辺回路等とを備えて構成され、例えばＲＯＭに記憶された制御プログラムを実行することにより、ウィンドウ領域情報生成部３１（ウィンドウ領域情報生成手段）として機能する。
【００２９】
次に、上述のように構成された画像処理装置１の動作について説明する。まず、メモリ４に記憶されているブロックＡ，Ｂ，Ｃに基づき、ウィンドウ領域情報生成部３１によって、ウィンドウ領域情報５が生成される。図２は、ウィンドウ領域情報生成部３１によるウィンドウ領域情報生成工程の一例を示すフローチャートである。まず、ウィンドウ領域情報生成部３１によって、画像データ４１の先頭（０番目）のウィンドウ領域を示すウィンドウ領域情報における（ＴＯＰ，ＯＦＴ1_0，・・・，ＯＦＴ(ｎ-1)_0）が生成される（ステップＳ１）。
【００３０】
図３は、ウィンドウ領域を説明するための説明図である。図３に示すウィンドウ領域１０は、一升が一画素を示している。そして、主走査方向に並ぶ予め設定されたｍ個（ｍは任意の整数）の画素からなるラインデータが副走査方向に予め設定されたｎ列（ｎは任意の整数）配列されて、ウィンドウ領域１０が構成されている。
【００３１】
図３において、Ｍは画像メモリの走査線幅（単位は画素数）を示しており、ウィンドウ領域１０における先頭画素のアドレス（０×Ｍ＋０＝０）を基準とする各画素の相対的なアドレスは、例えば一列目のラインデータにおけるｍ個目の画素が０×Ｍ＋（ｍ−１）、例えばｎ列目のラインデータにおける１個目の画素が（ｎ−１）×Ｍ＋０、例えばｎ列目のラインデータにおけるｍ個目の画素が（ｎ−１）×Ｍ＋（ｍ−１）で与えられる。ここで、画像データ４１は、メモリ４に例えばブロックＡ，Ｂ，Ｃとして分割配置される際に、各ブロックの先頭アドレスは、ウィンドウ領域１０における主走査方向のデータ幅の倍数となるようにされている。例えば、ウィンドウ領域１０における主走査方向のデータ幅が、３２バイトである場合、ブロックＡ，Ｂ，Ｃの先頭アドレスは、３２バイトや、６４バイト単位で設定されるため、画像データ４１がメモリ４に分割配置された場合であっても、ウィンドウ領域１０内における各ラインデータは、主走査方向の途中で分断されることがないようにされている。
【００３２】
しかしながら、ウィンドウ領域１０内における各ラインデータは、副走査方向の途中で分断される場合がある。そこで、ウィンドウ領域１０における各ラインデータの先頭アドレスを、ウィンドウ領域情報としてメモリ４に記憶させておくことで、副走査方向の途中で分断されたウィンドウ領域を表すようになっている。
【００３３】
図４は、画像データ４１における先頭のウィンドウ領域を示すウィンドウ領域情報（ＴＯＰ，ＯＦＴ1_0，・・・，ＯＦＴ(ｎ-1)_0）を説明するための説明図である。図４に示すウィンドウ領域１０は、一升が一画素を示している。そして、主走査方向に並ぶ予め設定されたｍ個（ｍは任意の整数）の画素からなるラインデータが副走査方向に予め設定されたｎ列（ｎは任意の整数）配列されて、ウィンドウ領域１０が構成されている。
【００３４】
そして、ウィンドウ領域情報生成部３１によって、「ＴＯＰ」として、画像データの先頭画素の物理アドレスが設定される。この場合、「ＴＯＰ」は、当該ウィンドウ領域における１ライン目（最初）のラインデータの先頭画素の物理アドレスを示している。また、ウィンドウ領域情報生成部３１によって、ＯＦＴ1_0，・・・，ＯＦＴ(ｎ-1)_0として、２〜ｎ列目のラインデータにおける先頭画素の物理アドレスを示す情報、具体的には、各ラインデータより一つ前のラインデータにおける先頭画素のアドレスとの差分であるオフセット値がそれぞれ設定されている。なお、ウィンドウ領域情報生成部３１は、ＯＦＴ1_0，・・・，ＯＦＴ(ｎ-1)_0として、２〜ｎ列目のラインデータにおける先頭画素の物理アドレスをそのまま設定するようにしてもよいが、オフセット値を用いることで、ウィンドウ領域情報のデータ量を低減することができる。
【００３５】
このようにして得られたウィンドウ領域情報（ＴＯＰ，ＯＦＴ1_0，・・・，ＯＦＴ(ｎ-1)_0）によって、ウィンドウ領域１０における各ラインデータの先頭画素のアドレスが得られる。そして、各ラインデータの先頭画素に続く（ｍ−１）個の画素のアドレスは、ＴＯＰ，ＯＦＴ1_0，・・・，ＯＦＴ(ｎ-1)_0で示されるアドレスに、１〜（ｍ−１）の数値をそれぞれ加算することで得られるようになっている。
【００３６】
次に、ウィンドウ領域情報生成部３１によって、画像データ４１の先頭（０番目）のウィンドウ領域を示すウィンドウ領域情報における領域連続情報Ｎ0が生成される（ステップＳ２）。
【００３７】
図５は、ブロックＡ，Ｂ，Ｃに分割された画像データ４１と、ウィンドウ領域１１〜２６との関係を説明するための説明図である。図５において、細線の一升は、ウィンドウ領域１１〜２６における１列分のラインデータを示している。図５では、ウィンドウ領域１１〜２６が３ラインで構成され、ｎ＝３の例を示している。また、ウィンドウ領域１１〜２６は、予め設定された領域間差分アドレスｇずつ間隔を空けて設定されている。図５では、領域間差分アドレスｇは、ウィンドウ領域における主走査方向のデータ幅と等しい値に設定されている例を示しているが、例えば領域間差分アドレスｇを、ウィンドウ領域における主走査方向のデータ幅より小さい値に設定することにより、隣接するウィンドウ領域が互いに一部重なりあうようにしてもよい。
【００３８】
図５において、まず、ウィンドウ領域１１〜１６は、いずれも１列目のラインデータがブロックＡ、２列目のラインデータがブロックＢ、３列目のラインデータがブロックＣに記憶されており、ウィンドウ領域１１〜１６の区間では、１，２，３列目のラインデータは、主走査方向に連続している。そして、ウィンドウ領域１７では、２列目のラインデータはブロックＢに記憶されているため、ウィンドウ領域１６からウィンドウ領域１７へ移行すると、２列目のラインデータは主走査方向に不連続となる。
【００３９】
そこで、ウィンドウ領域情報生成部３１は、ウィンドウ領域１１を先頭にして各ラインデータにおけるアドレスが、主走査方向に連続している区間内に存在するウィンドウ領域の数を示す領域連続情報Ｎ0を取得する（ステップＳ２）。具体的には、ウィンドウ領域情報生成部３１は、ウィンドウ領域１１を先頭にして各ラインデータのうちいずれかが不連続になるアドレスを探索する。そうすると、図５に示す画像データ４１では、２列目のラインデータがウィンドウ領域１７の先頭で不連続になっている。この場合、例えば、ウィンドウ領域情報生成部３１は、ウィンドウ領域１１からウィンドウ領域１７に達するまでの間に存在するウィンドウ領域の数を計数することにより、ウィンドウ領域１１を先頭にして主走査方向に連続している区間内に存在するウィンドウ領域の数を示す領域連続情報Ｎ0を取得する。
【００４０】
そして、ウィンドウ領域情報生成部３１は、領域連続情報Ｎ0を（ＴＯＰ，ＯＦＴ1_0，・・・，ＯＦＴ(ｎ-1)_0）に付加することで、画像データ４１における先頭（０番目）のウィンドウ領域情報（ＴＯＰ，ＯＦＴ1_0，・・・，ＯＦＴ(ｎ-1)_0），Ｎ0）を生成し、メモリ４に記憶する（ステップＳ３）。
【００４１】
次に、ウィンドウ領域情報生成部３１によって、ウィンドウ領域情報の番号を示す変数ｉに「１」が代入され（ステップＳ４）、画像データ４１におけるｎ列のラインデータのうち少なくとも一つのアドレスが不連続となる位置を先頭アドレスとするウィンドウ領域に対応して、当該ウィンドウ領域のラインデータ毎の先頭画素の物理アドレスを示す情報であるｎ個の先頭位置情報が、ウィンドウ領域情報（ＯＦＴ0_i，ＯＦＴ1_i，・・・，ＯＦＴ(ｎ-1)_i）として生成される（ステップＳ５）。
【００４２】
図６は、画像データ４１におけるｎ列のラインデータのうち少なくとも一つのアドレスが不連続となる位置を先頭アドレスとするウィンドウ領域３０について、生成されるウィンドウ領域情報（ＯＦＴ0_ｉ，ＯＦＴ1_ｉ，・・・，ＯＦＴ(ｎ-1)_ｉ）を説明するための説明図である。図６に示すウィンドウ領域３０は、一升が一画素を示している。そして、主走査方向に並ぶ予め設定されたｍ個（ｍは任意の整数）の画素からなるラインデータが副走査方向に予め設定されたｎ列（ｎは任意の整数）配列されて、ウィンドウ領域３０が構成されている。
【００４３】
そして、ウィンドウ領域情報生成部３１によって、「ＯＦＴ0_ｉ」として、ウィンドウ領域３０における先頭画素、すなわちウィンドウ領域３０における１ライン目（最初）のラインデータの先頭画素の物理アドレスを示す情報である先頭位置情報が設定される。この場合、「ＯＦＴ0_ｉ」は、例えば一つ前のウィンドウ領域情報における「ＴＯＰ」又は「ＯＦＴ0_（ｉ−１）」で示されるアドレスからの差分であるオフセット値が設定されている。
【００４４】
さらに、ウィンドウ領域情報生成部３１によって、ＯＦＴ1_ｉ，・・・，ＯＦＴ(ｎ-1)_ｉとして、２〜ｎ列目のラインデータにおける先頭画素の物理アドレスを示す情報、具体的には、各ラインデータより一つ前のラインデータにおける先頭画素のアドレスとの差分であるオフセット値がそれぞれ設定されている。なお、ウィンドウ領域情報生成部３１は、ＯＦＴ0_ｉ，・・・，ＯＦＴ(ｎ-1)_ｉとして、１〜ｎ列目のラインデータにおける先頭画素の物理アドレスをそのまま設定するようにしてもよいが、オフセット値を用いることで、ウィンドウ領域情報のデータ量を低減することができる。
【００４５】
このようにして得られたウィンドウ領域情報（ＯＦＴ0_ｉ，ＯＦＴ1_ｉ，ＯＦＴ2_ｉ，・・・，ＯＦＴ(ｎ-1)_ｉ）によって、ウィンドウ領域３０における各ラインデータの先頭画素のアドレスが得られる。そして、各ラインデータの先頭画素に続く（ｍ−１）個の画素のアドレスは、ＯＦＴ0_ｉ，ＯＦＴ1_ｉ，・・・，ＯＦＴ(ｎ-1)_ｉで示されるアドレスに、１〜（ｍ−１）の数値をそれぞれ加算することで得られるようになっている。
【００４６】
次に、ウィンドウ領域情報生成部３１によって、画像データ４１におけるｉ番目にアドレスが不連続となっているウィンドウ領域を示すウィンドウ領域情報の領域連続情報Ｎｉが生成される（ステップＳ６）。
【００４７】
具体的には、ウィンドウ領域情報生成部３１は、アドレスが不連続となっているｉ番目、例えば１番目のウィンドウ領域１７を先頭にして各ラインデータにおけるアドレスが、主走査方向に連続している区間内に存在するウィンドウ領域の数を示す領域連続情報Ｎｉを取得する（ステップＳ６）。ウィンドウ領域情報生成部３１は、ウィンドウ領域１７を先頭にして各ラインデータのうちいずれかが不連続になるアドレスを探索する。そうすると、図５に示す画像データ４１では、１列目と３列目のラインデータがウィンドウ領域１９の先頭で不連続になっている。この場合、例えば、ウィンドウ領域情報生成部３１は、ウィンドウ領域１７からウィンドウ領域１９に達するまでの間に存在するウィンドウ領域の数を計数することにより、ウィンドウ領域１７を先頭にして主走査方向に連続している区間内に存在するウィンドウ領域の数「２」を示す領域連続情報Ｎｉを取得する。
【００４８】
そして、ウィンドウ領域情報生成部３１は、領域連続情報Ｎｉを（ＯＦＴ0_ｉ，ＯＦＴ1_ｉ，ＯＦＴ2_ｉ，・・・，ＯＦＴ(ｎ-1)_ｉ）に付加することで、画像データ４１におけるｉ番目にアドレスが不連続となっているウィンドウ領域を示すウィンドウ領域情報（ＯＦＴ0_ｉ，ＯＦＴ1_ｉ，ＯＦＴ2_ｉ，・・・，ＯＦＴ(ｎ-1)_ｉ，Ｎｉ）を生成し、メモリ４に記憶する（ステップＳ７）。
【００４９】
なお、ウィンドウ領域情報には、必ずしも領域連続情報Ｎ0やＮｉを含んでいる必要はない。例えば、画像データ４１を複数のブロックに分割してメモリ４に記憶させる際に、各ブロックの先頭アドレスを、画像データ４１における主走査方向のデータ幅の倍数となるように配置すれば、主走査方向のラインデータが途中で複数のブロックに分断されることがなくなり、必ず主走査方向の一列分ウィンドウ領域が連続するので、領域連続情報を個々に取得する必要がなく、予め固定値を、すべてのウィンドウ領域情報に共通する領域連続情報として用いるようにしてもよい。
【００５０】
次に、ウィンドウ領域情報生成部３１によって、画像データ４１におけるアドレスが不連続になっている領域すべてについて、ウィンドウ領域情報（ＯＦＴ0_ｉ，ＯＦＴ1_ｉ，ＯＦＴ2_ｉ，・・・，ＯＦＴ(ｎ-1)_ｉ，Ｎｉ）が生成されたか否かが確認され（ステップＳ８）、画像データ４１におけるアドレスが不連続になっている領域すべてについてウィンドウ領域情報が生成されていれば、ウィンドウ領域情報の生成処理を終了する（ステップＳ８でＹＥＳ）一方、画像データ４１におけるアドレスが不連続になっている領域すべてについてウィンドウ領域情報が生成されていなければ（ステップＳ８でＮＯ）、変数ｉに１を加算して（ステップＳ９）再びステップＳ５〜Ｓ８を繰り返すことで、画像データ４１におけるアドレスが不連続になっている領域すべてについてウィンドウ領域情報が生成され、メモリ４に記憶される。
【００５１】
次に、ステップＳ１〜Ｓ９の処理により、メモリ４に記憶されたウィンドウ領域情報に基づいて、ブロックＡ，Ｂ，Ｃに分割された画像データ４１にアクセスする方法について説明する。図７、図８、図９は、分割してメモリ４に記憶された画像データ４１にアクセスする方法の一例を示すフローチャートである。なお、以下のフローチャートにおいて、同様の処理には同様のステップ番号を付与してその説明を省略する。
【００５２】
まず、二次元フィルタ２０１からの要求に応じて、メモリＩ／Ｆ回路２０２によって、ライン数を示す変数ｊと、連続領域数を計数するための変数ｋに、１が代入される（ステップＳ２０）。次に、二次元フィルタ２０１からの要求に応じて、メモリＩ／Ｆ回路２０２によって、メモリ４から、ウィンドウ領域情報（ＴＯＰ，ＯＦＴ１_0，・・・，ＯＦＴ（ｎ-１）_0，Ｎ0）が読み出され（ステップＳ２１）、次いでアドレス「ＴＯＰ」の先頭画素がアクセスされる（ステップＳ２２）。なお、メモリＩ／Ｆ回路２０２は、二次元フィルタ２０１からの要求に応じてメモリ４に対し、読み出しアクセスを行う場合には、読み出したデータを二次元フィルタ２０１へ出力し、書き込みアクセスを行う場合には、二次元フィルタ２０１から出力されたデータをメモリ４に記憶させることとする。
【００５３】
次に、メモリＩ／Ｆ回路２０２によって、アドレス「ＴＯＰ」に、アドレスを１ずつ加算して、（ｍ−１）になるまで得られたアドレスで、先頭画素に続く（ｍ−１）個の画素にアクセスされる（ステップＳ２３）。これにより、ウィンドウ領域における１ライン目のラインデータへのアクセスが終了する。
【００５４】
次に、１ライン前の先頭画素のアドレスに、ＯＦＴｊ_0を加算してｊラインの先頭画素のアドレスが生成され（ステップＳ２５）、当該ｊラインの先頭画素がアクセスされる（ステップＳ２６）。
【００５５】
次に、メモリＩ／Ｆ回路２０２によって、ｊラインの先頭画素のアドレスに、アドレスを１ずつ加算して、（ｍ−１）になるまで得られたアドレスで、先頭画素に続く（ｍ−１）個の画素にアクセスされる（ステップＳ２７）。そして、メモリＩ／Ｆ回路２０２は、ｊ≧ｎ−１であれば（ステップＳ２８でＹＥＳ）、当該ウィンドウ領域におけるすべてのラインデータへのアクセスが終了しているから次のウィンドウ領域へ移行するべくステップＳ２９へ移行し、ｊ≧ｎ−１でなければ（ステップＳ２８でＮＯ）、当該ウィンドウ領域における次の列のラインデータへのアクセスを行うべく変数ｊに１を加算して（ステップＳ３０）、再びステップＳ２５〜Ｓ２８を繰り返す。
【００５６】
次に、ステップＳ２９において、メモリＩ／Ｆ回路２０２によって、連続領域数を計数するべく変数ｋに１加算され（ステップＳ２９）、ｋとＮ0とが比較されて（ステップＳ３１）ｋがＮ0以上であれば（ステップＳ３１でＹＥＳ）、次のウィンドウ領域情報を読み出すべくステップＳ４０へ移行する一方、ｋがＮ0に満たなければ（ステップＳ３１でＮＯ）次のウィンドウ領域のアドレスを算出するべくステップＳ３２へ移行する。
【００５７】
次に、ステップＳ３２において、メモリＩ／Ｆ回路２０２によって、変数ｊに０が代入され、ウィンドウ領域情報（ＴＯＰ，ＯＦＴ１_0，・・・，ＯＦＴ（ｎ-１）_0，Ｎ0）における「ＴＯＰ」に領域間差分アドレスｇが加算され、ＯＦＴ１_0，・・・，ＯＦＴ（ｎ-１）_0にそれぞれ領域間差分アドレスｇが加算される（ステップＳ３３）。
【００５８】
そして、再びステップＳ２１〜Ｓ３１が繰り返されることで、アドレスが連続するウィンドウ領域１１〜１６へのアクセスが終了する。
【００５９】
次に、アドレスが連続する区間のウィンドウ領域へのアクセスが終了した場合には、ステップＳ３１からステップＳ４０へ移行して、メモリＩ／Ｆ回路２０２によって、ウィンドウ領域情報の番号を表す変数ｉに「１」が代入され（ステップＳ４０）、次にライン数を表す変数ｊ、及び連続領域数を計数するための変数ｋに「１」が代入される（ステップＳ４１）。次に、二次元フィルタ２０１からの要求に応じて、メモリＩ／Ｆ回路２０２によって、メモリ４から、ウィンドウ領域情報（ＯＦＴ0_ｉ，ＯＦＴ１_ｉ，・・・，ＯＦＴ（ｎ-１）_ｉ，Ｎｉ）が読み出される（ステップＳ４２）。
【００６０】
次いで、一つ前のウィンドウ領域情報における先頭画素のアドレスに、ＯＦＴ0_ｉを加算してｉ番目のウィンドウ領域情報で示されるウィンドウ領域の先頭画素のアドレスであるＴＯＰ（ｉ）が算出される（ステップＳ４３）。この場合、ＯＦＴ0_ｉの代わりにＴＯＰ（ｉ）をウィンドウ領域情報としてメモリ４に記憶させておくようにしてもよいが、ＯＦＴ0_ｉを用いることで、ウィンドウ領域情報のデータ量を低減することができる。
【００６１】
以下、ステップＳ４４，Ｓ４５，Ｓ４６，Ｓ４７の処理は、ステップＳ２２，Ｓ２３，Ｓ３１，Ｓ３３において、「ＴＯＰ」の代わりに「ＴＯＰ（ｉ）」を用い、ウィンドウ領域情報（ＴＯＰ，ＯＦＴ１_0，・・・，ＯＦＴ（ｎ-１）_0，Ｎ0）の代わりに（ＯＦＴ0_ｉ，ＯＦＴ１_ｉ，・・・，ＯＦＴ（ｎ-１）_ｉ，Ｎｉ）を用い、領域連続情報Ｎ0の代わりに領域連続情報Ｎｉを用いる点を除き同様であるのでその説明を省略する。
【００６２】
そして、ステップＳ４６で、ｋとＮｉとが比較されて、ｋがＮｉ以上であれば（ステップＳ４６でＹＥＳ）、全画像データへのアクセスが終了したか否かが確認され（ステップＳ４８）、全画像データへのアクセスが終了していれば（ステップＳ４８でＹＥＳ）処理を終了する一方、全画像データへのアクセスが終了していなければ、次のウィンドウ領域情報を読み出すべく変数ｉに１を加算して（ステップＳ４９）、再びステップＳ４１〜Ｓ４８の処理を繰り返す。
【００６３】
以上、ステップＳ１〜Ｓ４９の処理により、複数のブロックに分割されて記憶部に分散配置された画像データに、ウィンドウ領域単位でアクセスすることができる。以上の処理において、ステップＳ２２，Ｓ２６，Ｓ４４が、第１アクセス工程の一例に相当し、Ｓ２７及びＳ４５が、主走査方向アドレス生成手段及び第２アクセス手段の一例に相当し、ステップＳ３３及びＳ４７が、連続ウィンドウ領域アドレス生成工程の一例に相当し、ステップＳ３３及びＳ４７で得られたアドレスに元づきステップＳ２１〜Ｓ３１、及びステップＳ４２〜４６を再び繰り返す処理が、第３アクセス工程の一例に相当している。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施形態に係る画像データアクセス方法を用いた画像処理装置の構成の一例を示すブロック図である。
【図２】図１に示すウィンドウ領域情報生成部によるウィンドウ領域情報生成工程の一例を示すフローチャートである。
【図３】ウィンドウ領域を説明するための説明図である。
【図４】画像データにおける先頭のウィンドウ領域を示すウィンドウ領域情報（ＴＯＰ，ＯＦＴ1_0，・・・，ＯＦＴ(ｎ-1)_0）を説明するための説明図である。
【図５】ブロックＡ，Ｂ，Ｃに分割された画像データと、ウィンドウ領域との関係を説明するための説明図である。
【図６】画像データにおけるｎ列のラインデータのうち少なくとも一つのアドレスが不連続となる位置を先頭アドレスとするウィンドウ領域について、生成されるウィンドウ領域情報（ＯＦＴ1_ｉ，ＯＦＴ1_ｉ，・・・，ＯＦＴ(ｎ-1)_ｉ）を説明するための説明図である。
【図７】図１に示すメモリＩ／Ｆ回路の動作の一例を示すフローチャートである。
【図８】図１に示すメモリＩ／Ｆ回路の動作の一例を示すフローチャートである。
【図９】図１に示すメモリＩ／Ｆ回路の動作の一例を示すフローチャートである。
【図１０】背景技術に係るメモリに記憶された画像データと、ウィンドウ領域との関係を説明するための説明図である。
【図１１】背景技術に係る画像データに、動的にメモリ領域を割り当てた場合のメモリマップを示す説明図である。
【図１２】背景技術に係るディスクリプタを用いて複数のブロックに分割されてメモリに分散配置された画像データに、ウィンドウ領域単位でアクセスしようとした場合の動作を説明するための説明図である。
【符号の説明】
【００６５】
１  画像処理装置
２  画像処理ＩＣ
３  制御部
４  メモリ
５  ウィンドウ領域情報
１０〜２６，３０  ウィンドウ領域
２０１  二次元フィルタ
２０２  メモリＩ／Ｆ回路
３１  ウィンドウ領域情報生成部
４１  画像データ
【図１】
2008217515.tif 000003
【図２】
2008217515.tif 000004
【図３】
2008217515.tif 000005
【図４】
2008217515.tif 000006
【図５】
2008217515.tif 000007
【図６】
2008217515.tif 000008
【図７】
2008217515.tif 000009
【図８】
2008217515.tif 000010
【図９】
2008217515.tif 000011
【図１０】
2008217515.tif 000012
【図１１】
2008217515.tif 000013
【図１２】
2008217515.tif 000014