(57)【要約】【課題】回路の大規模化を防止又は抑制しつつ、不連続なアドレスに記憶された画像を短時間で読み出すことができる画像処理装置を提供する。【解決手段】ＣＰＵは、不連続な記憶領域に格納された画像に対し、ＤＭＡコントローラにより画像処理を実施する場合のメモリからの読出し順を設定し、ディスクリプタ情報生成部は、この読み出し順において当該記憶領域に続く次の記憶領域についてのディスクリプタ情報が格納されているアドレスを示すディスクリプタアドレス情報と当該記憶領域のアドレス情報とを含むディスクリプタ情報を生成し、テーブル作成部は、ディスクリプタアドレス情報を用い、前記ブロック毎で且つバンド毎に、当該バンドに属する画像を記憶した記憶領域のうち、主走査方向において最も先頭側の画像を記憶した記憶領域と該領域のアドレス情報及びディスクリプタアドレス情報との対応関係を示すテーブルを作成する。【選択図】図５
2010140188.tif 000002
【特許請求の範囲】
【請求項１】
２次元画像を複数の記憶領域に分割して記憶する第１メモリと、
前記各記憶領域に対応し、それぞれ対応する記憶領域のアドレス情報を示す複数のディスクリプタ情報を記憶する第２メモリと、
前記２次元画像を副走査方向に予め定められた長さで区分してなるバンドごとに取得し、その２次元画像を格納すべき前記第１メモリ上の記憶領域及び前記ディスクリプタ情報を格納すべき前記第２メモリ上の記憶領域をそれぞれ設定し、その設定した記憶領域に前記２次元画像及び前記ディスクリプタ情報を格納する記憶制御部と、
前記第１メモリに記憶された２次元画像を複数に分割してなるブロックごとに、前記第１メモリから画像を読み出して予め定められた画像処理を行う処理部と
を備える画像処理装置であって、
前記記憶制御部により前記２次元画像が前記第１メモリ上の不連続な複数の記憶領域に分けて格納されたとき、前記各記憶領域に格納された画像に対し、前記処理部により画像処理を実施する場合における前記第１メモリからの読出し順を設定し、この読み出し順において当該各記憶領域にそれぞれ続く次の記憶領域についてのディスクリプタ情報が格納されている前記第２メモリ上のアドレスを示すディスクリプタアドレス情報と当該各記憶領域のアドレス情報とを前記各ディスクリプタ情報として生成し、該各ディスクリプタ情報を前記記憶制御部に出力するディスクリプタ情報生成部と、
前記第２メモリに記憶されたディスクリプタアドレス情報を用い、前記ブロック毎で且つバンド毎に、当該バンドに属する画像を記憶した記憶領域のうち、主走査方向において最も先頭側の画像を記憶した記憶領域を特定記憶領域として検出し、その特定記憶領域と該特定記憶領域のアドレス情報及びディスクリプタアドレス情報との対応関係を示すテーブルを作成するテーブル作成部と
を備え、
前記処理部は、ブロックごとに、前記テーブル作成部により作成されたテーブルに基づき、当該ブロックに属する画像を前記第１メモリから読み出し、この読み出した画像に対して前記予め定められた画像処理を行う画像処理装置。
【請求項２】
前記テーブルは、前記アドレス情報及びディスクリプタアドレス情報に加え、当該記憶領域に格納される画像のうち現時点で前記処理部による画像処理が未完了の画素数を示す残サイズ情報を項目として含み、
前記テーブル作成部は、前記残サイズ情報の項目に設定する初期値として、前記特定記憶領域の画素数を設定し、
前記処理部は、当該ブロックについてのテーブルにおいてそれぞれ設定された各バンドについての前記残サイズ情報の初期値が、当該ブロックの画素数である転送サイズ以上であるか否かをバンド毎に判断し、前記初期値が前記転送サイズ以上であるバンドについては、前記特定記憶領域のうち前記初期値に相当する領域の画像を、当該ブロックに含まれる処理対象として前記第１メモリから読み出す処理を実施し、前記初期値が前記転送サイズより小さいバンドについては、前記特定記憶領域についてのディスクリプタ情報に含まれるディスクリプタアドレス情報に基づき次の画像読出対象である記憶領域を検出し、その記憶領域から、前記特定記憶領域に格納されている画像の画素数分だけ前記初期値から減算した減算結果に相当する画素数分の画像を抽出し、この抽出した画像と前記特定記憶領域に格納されている画像とを当該ブロックに含まれる処理対象として前記第１のメモリから読み出す請求項１に記載の画像処理装置。
【請求項３】
前記記憶制御部は、前記各バンドの画像を主走査方向に分割して前記第１メモリに格納するものであり、
前記残サイズ情報は、当該記憶領域に格納される画像のうち現時点で前記処理部による画像処理が未完了の前記主走査方向における画素数を示すものであり、
前記テーブル作成部は、前記残サイズ情報の項目に設定する初期値として、前記特定記憶領域の前記主走査方向における画素数を設定し、
前記処理部は、当該ブロックについてのテーブルにおいてそれぞれ設定された各バンドについての前記残サイズ情報の初期値が、当該ブロックの前記主走査方向における画素数である転送サイズ以上であるか否かをバンド毎に判断し、前記初期値が前記転送サイズ以上であるバンドについては、前記特定記憶領域のうち前記主走査方向に前記初期値分の長さを有する領域の画像を、当該ブロックに含まれる処理対象として前記第１メモリから読み出す処理を実施し、前記初期値が前記転送サイズより小さいバンドについては、前記特定記憶領域についてのディスクリプタ情報に含まれるディスクリプタアドレス情報に基づき次の画像読出対象である記憶領域を検出し、その記憶領域から、前記特定記憶領域に格納されている画像の前記主走査方向における画素数分だけ前記初期値から減算した減算結果に相当する画素数分の画像を抽出し、この抽出した画像と前記特定記憶領域に格納されている画像とを当該ブロックに含まれる処理対象として前記第１のメモリから読み出す請求項２に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリの不連続なアドレスに記憶された画像データに対して画像処理を行う画像処理装置に関する。
【背景技術】
【０００２】
画像を表す画像データの処理を行う複合機やスキャナ等の画像処理装置においては、原稿読み取り部に載置された原稿の向きが縦置きの場合と横置きの場合とに応じて、原稿から読み取った画像データを９０度回転させる画像処理を行うものが知られている。また、例えば画像データをＪＰＥＧ（Joint Photographic Experts Group）等の画像フォーマットに変換する画像処理装置や、画像の一部を切り取ったり貼り付けたりする画像編集機能を備えた画像処理装置も知られている。このような画像処理装置は、画像の回転やフォーマット変換等の画像処理を行う際に、予め処理対象の画像データをメモリ上に展開する。
【０００３】
この場合、画像データは、画像を構成する各画素を表す画素データの集合であり、各画素データがメモリ上のアドレス空間に順に、例えばＣＲＴ（Cathode Ray Tube）に画像を表示する場合における走査線の方向であるスキャンライン方向の順にメモリ上のアドレス空間に記憶されることによって画像が表されている。すなわち、画像データを構成する各画素が記憶されているメモリのアドレスは、各画素の画像における位置を表すパラメータとして用いられている。
【０００４】
そして、メモリ上の画像データにアクセスし、例えば行列演算や三角関数演算等の数値演算を施したり、画像データをメモリ上の他のアドレスにコピーしたりすることによって画像処理が実行される。特に、画像を回転させる場合のように画像を変化させる画像処理、すなわち画像における各画素の位置関係を変化させる画像処理においては、メモリ上に配置されている画像データにおける各画素のアドレスをパラメータとして例えば行列演算を施すことにより、画像処理後における各画素の新たなメモリ上のアドレスを算出し、そのアドレスに各画素データをコピーすることにより、画像処理が施された新たな画像データが生成されるようになっている。なお、この種の画像処理に関連する技術文献としては、例えば特許文献１，２がある。
【０００５】
ところで、上述のような画像処理装置において、メモリの利用効率向上を図るためには、オペレーティングシステムを用いて、アプリケーションプログラムや画像データのために動的にメモリ領域を割り当てることが望ましい。しかし、オペレーティングシステムを用いてメモリ領域の割り当てを行うと、必ずしも連続したメモリ領域が割り当てられるとは限らない。図１０は、オペレーティングシステムを用いて画像データ２０１にメモリ領域を割り当てた場合のメモリマップ２０２の例を示す図である。図１０における画像データ２０１において、矢印はスキャンライン方向を示している。また、メモリマップ２０２に示すように、メモリ上にはオペレーティングシステムや、アプリケーションプログラムが使用する領域が既に割り当てられている。
【０００６】
この状態で、画像データ２０１をメモリに記憶させるために、オペレーティングシステムは、画像データ２０１のデータ量に相当するメモリ領域をメモリマップ２０２上に割り当てる。この場合、画像データ２０１のデータ量に相当するアドレスが連続した空き領域がメモリ上にないと、オペレーティングシステムは、例えば図１０に示すように、画像データ２０１のために、メモリ上のアドレスが不連続な複数の領域２０３，２０４，２０５，２０６を割り当てる。そして、画像データ２０１は、複数の領域２０３，２０４，２０５，２０６に分割して記憶される。特に、画像データの場合にはデータ量が大きくなる傾向があるため、オペレーティングシステムによってアドレスが不連続な複数の領域に分割して記憶されることが通例である。
【０００７】
しかし、画像データ２０１が複数の領域に分割されて記憶されると、各画素の画像における位置と、各画素が記憶されているアドレスとの間の線形性が失われてしまうため、例えば画像を回転させる場合、メモリに記憶された画像データ２０１の各画素のアドレスをパラメータとして行列演算を施したとしても、画像処理後における各画素の新たなメモリ上のアドレスは得られない。従って、行列演算等の数値演算を用いて画像データ２０１における各画素の位置関係を変化させるような画像処理を行うことができないという不都合があった。
【０００８】
下記特許文献３には、この問題に対処すべく、画像が記憶された複数の記憶領域の各々について、当該記憶領域のメモリ上における先頭ドレスとその記憶領域に格納される画素数と次の記憶領域についてのディスクリプタ情報が記憶されている次ディスクリプタアドレスとを対応させたディスクリプタ情報を生成するとともに、各記憶領域についてのディスクリプタ情報に含まれる画素数を加算して得られる値を、各記憶領域の各先頭アドレスにおける各スタート画素についての１次元座標として設定し、各記憶領域について求めた、当該記憶領域のスタート画素の１次元座標と当該記憶領域の先頭ドレスとの差分であるオフセット値をテーブル化し、目的画素が入力されると、該目的画素の１次元座標と前記テーブルから導出されるオフセット値の加算値を、前記メモリにおける当該目的画素にアクセスするためのアドレスとして算出する技術が開示されている。
【特許文献１】特開２００７−０９８１７８号公報
【特許文献２】特許第２６３３５１７号公報
【特許文献３】特開２００５−２５０９９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、前記特許文献３の技術においては、一連の処理に多大な時間を要し、またその処理時間を事前に特定し難い。前記テーブルのサイズを大きくすれば、高い処理スピードを確保することはできるが、回路の大規模化を招来することとなる為、高い処理スピードが要求される場合に採用することは困難であった。
【００１０】
本発明は、このような問題に鑑みて為された発明であり、回路の大規模化を防止又は抑制しつつ、不連続なアドレスに記憶された画像を短時間で読み出すことができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
請求項１に記載の発明は、２次元画像を複数の記憶領域に分割して記憶する第１メモリと、前記各記憶領域に対応し、それぞれ対応する記憶領域のアドレス情報を示す複数のディスクリプタ情報を記憶する第２メモリと、前記２次元画像を副走査方向に予め定められた長さで区分してなるバンドごとに取得し、その２次元画像を格納すべき前記第１メモリ上の記憶領域及び前記ディスクリプタ情報を格納すべき前記第２メモリ上の記憶領域をそれぞれ設定し、その設定した記憶領域に前記２次元画像及び前記ディスクリプタ情報を格納する記憶制御部と、前記第１メモリに記憶された２次元画像を複数に分割してなるブロックごとに、前記第１メモリから画像を読み出して予め定められた画像処理を行う処理部とを備える画像処理装置であって、前記記憶制御部により前記２次元画像が前記第１メモリ上の不連続な複数の記憶領域に分けて格納されたとき、前記各記憶領域に格納された画像に対し、前記処理部により画像処理を実施する場合における前記第１メモリからの読出し順を設定し、この読み出し順において当該各記憶領域にそれぞれ続く次の記憶領域についてのディスクリプタ情報が格納されている前記第２メモリ上のアドレスを示すディスクリプタアドレス情報と当該各記憶領域のアドレス情報とを前記各ディスクリプタ情報として生成し、該各ディスクリプタ情報を前記記憶制御部に出力するディスクリプタ情報生成部と、前記第２メモリに記憶されたディスクリプタアドレス情報を用い、前記ブロック毎で且つバンド毎に、当該バンドに属する画像を記憶した記憶領域のうち、主走査方向において最も先頭側の画像を記憶した記憶領域を特定記憶領域として検出し、その特定記憶領域と該特定記憶領域のアドレス情報及びディスクリプタアドレス情報との対応関係を示すテーブルを作成するテーブル作成部とを備え、前記処理部は、ブロックごとに、前記テーブル作成部により作成されたテーブルに基づき、当該ブロックに属する画像を前記第１メモリから読み出し、この読み出した画像に対して前記予め定められた画像処理を行うものである。
【００１２】
この発明によれば、前記記憶制御部により前記２次元画像が前記第１メモリ上の不連続な複数の記憶領域に分けて格納されると、ディスクリプタ情報生成部により、前記各記憶領域に格納された画像に対し、前記処理部により画像処理を実施する場合における前記第１メモリからの読出し順が設定され、この読み出し順において当該各記憶領域にそれぞれ続く次の記憶領域についてのディスクリプタ情報が格納されている前記第２メモリ上のアドレスを示すディスクリプタアドレス情報と当該各記憶領域のアドレス情報とが前記ディスクリプタ情報として生成され、該ディスクリプタ情報が前記記憶制御部に出力される。
【００１３】
次に、テーブル作成部により、前記第２メモリに記憶されたディスクリプタアドレス情報を用い、前記ブロック毎で且つバンド毎に、当該バンドに属する画像を記憶した記憶領域のうち、主走査方向において最も先頭側の画像を記憶した記憶領域が特定記憶領域として検出され、その特定記憶領域と該特定記憶領域のアドレス情報及びディスクリプタアドレス情報との対応関係を示すテーブルが作成される。
【００１４】
そして、前記処理部により、ブロックごとに、前記テーブル作成部で作成されたテーブルに基づき、当該ブロックに属する画像が前記第１メモリから読み出され、この読み出された画像に対して前記予め定められた画像処理が行われる。
【００１５】
このように、本発明によれば、各記憶領域のうち各バンドにおいて主走査方向に最も先頭側の画像を記憶した記憶領域についてのみ、アドレス情報及びディスクリプタアドレス情報に係るテーブルを作成し、このテーブルを用いて画像処理を実施する対象の画像を読み出すようにしたので、回路の大規模化を防止又は抑制しつつ、不連続なアドレスに記憶された画像を短時間で読み出すことができる。
【００１６】
請求項２に記載の発明は、請求項１に記載の画像形成装置において、前記テーブルは、前記アドレス情報及びディスクリプタアドレス情報に加え、当該記憶領域に格納される画像のうち現時点で前記処理部による画像処理が未完了の画素数を示す残サイズ情報を項目として含み、前記テーブル作成部は、前記残サイズ情報の項目に設定する初期値として、前記特定記憶領域の画素数を設定し、前記処理部は、当該ブロックについてのテーブルにおいてそれぞれ設定された各バンドについての前記残サイズ情報の初期値が、当該ブロックの画素数である転送サイズ以上であるか否かをバンド毎に判断し、前記初期値が前記転送サイズ以上であるバンドについては、前記特定記憶領域のうち前記初期値に相当する領域の画像を、当該ブロックに含まれる処理対象として前記第１メモリから読み出す処理を実施し、前記初期値が前記転送サイズより小さいバンドについては、前記特定記憶領域についてのディスクリプタ情報に含まれるディスクリプタアドレス情報に基づき次の画像読出対象である記憶領域を検出し、その記憶領域から、前記特定記憶領域に格納されている画像の画素数分だけ前記初期値から減算した減算結果に相当する画素数分の画像を抽出し、この抽出した画像と前記特定記憶領域に格納されている画像とを当該ブロックに含まれる処理対象として前記第１のメモリから読み出すものである。
【００１７】
この発明によれば、前記特定記憶領域の画素数（初期値）が前記転送サイズ以上であるバンド、すなわち、当該バンドにおける前記特定記憶領域全体又はその一部が当該ブロックに含めるべき画像となるときには、前記特定記憶領域のうち前記初期値に相当する領域の画像を、当該ブロックに含まれる処理対象として前記第１メモリから読み出すようにするとよい。
【００１８】
一方、前記初期値が前記転送サイズより小さいバンド、すなわち、当該バンドにおける前記特定記憶領域全体がブロックの一部として含まれる場合は、前記特定記憶領域についてのディスクリプタ情報に含まれるディスクリプタアドレス情報に基づき次の画像読出対象である記憶領域を検出し、その記憶領域から、前記特定記憶領域に格納されている画像の画素数分だけ前記初期値から減算した減算結果に相当する画素数分の画像を抽出し、この抽出した画像と前記特定記憶領域に格納されている画像とを当該ブロックに含まれる処理対象として前記第１のメモリから読み出すようにするとよい。
【００１９】
このような処理により、前記２次元画像が第１メモリ上の不連続な複数の記憶領域に分けて格納された場合であっても、前記処理部による画像処理の各ブロックに含めるべき画像を設定することができる。
【００２０】
また、請求項３に記載の発明のように、前記記憶制御部が、前記各バンドの画像を主走査方向に分割して前記第１メモリに格納する場合には、前記残サイズ情報を、当該記憶領域に格納される画像のうち現時点で前記処理部による画像処理が未完了の前記主走査方向における画素数を示すものとし、前記テーブル作成部は、前記残サイズ情報の項目に設定する初期値として、前記特定記憶領域の前記主走査方向における画素数を設定し、前記処理部は、当該ブロックについてのテーブルにおいてそれぞれ設定された各バンドについての前記残サイズ情報の初期値が、当該ブロックの前記主走査方向における画素数である転送サイズ以上であるか否かをバンド毎に判断し、前記初期値が前記転送サイズ以上であるバンドについては、前記特定記憶領域のうち前記主走査方向に前記初期値分の長さを有する領域の画像を、当該ブロックに含まれる処理対象として前記第１メモリから読み出す処理を実施し、前記初期値が前記転送サイズより小さいバンドについては、前記特定記憶領域についてのディスクリプタ情報に含まれるディスクリプタアドレス情報に基づき次の画像読出対象である記憶領域を検出し、その記憶領域から、前記特定記憶領域に格納されている画像の前記主走査方向における画素数分だけ前記初期値から減算した減算結果に相当する画素数分の画像を抽出し、この抽出した画像と前記特定記憶領域に格納されている画像とを当該ブロックに含まれる処理対象として前記第１のメモリから読み出すようにするとよい。
【発明の効果】
【００２１】
本発明によれば、回路の大規模化を防止又は抑制しつつ、不連続なアドレスに記憶された画像を短時間で読み出すことができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明に係る画像処理装置の実施形態について図面を用いながら説明する。なお、各図において同一の符号を付した構成は、同一の構成であることを示し、その説明を省略する。
【００２３】
図１は、本発明に係る画像処理の一実施形態の構成例を示す図である。図１に示す画像処理装置１は、例えば画像形成装置やファクシミリ等の原稿読み取りに用いられるスキャナ装置であり、装置全体の動作を制御するＣＰＵ（Central Processing Unit）２と、オペレーティングシステムや画像処理用プログラム等のアプリケーションプログラムを記憶したＲＯＭ（Read Only Memory）３と、例えば原稿から画像読み取って画像データを取得するスキャナ４と、オペレーティングシステムやアプリケーションプログラム等のプログラムを実行するための一時記憶領域やスキャナ４によって取得された画像データを記憶する画像記憶領域等として用いられるメモリ５（前記第１メモリ及び第２メモリに相当）と、メモリ５に記憶されている画像データにアクセスして所定の画像処理を実行するＡＳＩＣ（Application Specific Integrated Circuit）６とを備える。
【００２４】
ＣＰＵ２は、ＲＯＭ３に記憶されたオペレーティングシステムを実行することにより、メモリ５における記憶領域を、アプリケーションプログラムや画像データに割り当てる前記記憶制御部として機能したり、画像処理用プログラムを実行することにより、オペレーティングシステムによって割り当てられた記憶領域の配置に基づいて、各記憶領域のメモリ５上における先頭アドレス及びその記憶領域に格納される画素数を含むディスクリプタ情報を生成するディスクリプタ情報生成部として機能したりする。
【００２５】
図２は、ＣＰＵ２がオペレーティングシステムを実行することによりメモリ５上に割り当てられたメモリマップ５０の一例を説明するための図である。図２に示すメモリマップ５０においては、オペレーティングシステムが使用する記憶領域５２と、アプリケーションプログラムが使用する記憶領域５３，５５と、スキャナ４に割り当てられた領域５４と、例えばスキャナ４によって取得された画像データ５１に割り当てられた記憶領域５７，５８，５９，６０と、この記憶領域５７，５８，５９，６０の各先頭アドレスとその記憶領域に格納される画素数とを含むディスクリプタ情報５６とが不連続なアドレスに配置されている。
【００２６】
例えば、記憶領域５７，５８，５９，６０の各先頭アドレスは、それぞれアドレスＡｄｄ１、アドレスＡｄｄ２、アドレスＡｄｄ３、アドレスＡｄｄ４になっている。また、ディスクリプタ情報５６の先頭アドレスは、アドレスＡｄｄ５になっている。
【００２７】
図３は、ディスクリプタ情報５６の一例を示す図である。図３に示すディスクリプタ情報５６は、記憶領域５７，５８，５９，６０の記憶領域毎に、それぞれ各記憶領域の先頭アドレス（転送元の先頭アドレス）を示す転送元先頭アドレス情報と、その記憶領域に格納される画素数（転送対象のデータの画素数）を示す残サイズ情報と、後述する次ディスクリプタアドレス情報と、転送先のアドレスを示すアドレス情報とが対応付けられている。
【００２８】
ＣＰＵ２は、前記ＤＭＡコントローラ８により画像処理を実施する場合におけるメモリ５からの読出し順を設定する。前記次ディスクリプタアドレスとは、この読み出し順において当該記憶領域に続く次の記憶領域についてのディスクリプタ情報が格納されているメモリ５上のアドレスであるディスクリプタアドレスをいう。
【００２９】
図１に戻り、ＡＳＩＣ６は、動作指示受付部７と、ＤＭＡコントローラ８（前記処理部に相当）と、テーブル作成部９と、テーブル記憶部１０とを備えている。
【００３０】
動作指示受付部７は、ＣＰＵ２からの動作指示を受け付けるためのものである。動作指示受付部７は、例えば、ＤＭＡコントローラ８に動作指示を与えるためのＤＭＡ制御レジスタ８１、画像処理の対象となる画像データの範囲を設定する処理範囲設定レジスタ８２、画像処理をブロック単位で実行する場合に、ブロックの境界を設定する境界値設定レジスタ８３及びＤＭＡコントローラ８に画像処理動作を開始させたり停止させたりするための動作制御フラグ８４等を備えている。
【００３１】
テーブル作成部９は、ＤＭＡコントローラ８による画像処理動作を行う前に、各画像データ５１に割り当てられた記憶領域（例えば記憶領域５７，５８，５９，６０）についてのディスクリプタ情報を用いて、以下に説明するテーブルを作成するものである。
【００３２】
本実施形態では、メモリ５は、１頁分の画像（２次元画像）をその副走査方向に複数に分けてスキャナ４から取得し、取得した順に記憶していく。この分割されてなる各分割領域をバンドといい、このバンドに属する画像をバンド画像という。図４は、１頁の画像が前記副走査方向に５つのバンドＢ０〜Ｂ４に分割されている例を示しており、本実施形態では、メモリ５は、バンドＢ０，バンドＢ１，バンドＢ２，バンドＢ３，バンドＢ４の順に画像をスキャナ４から取得するものとする。
【００３３】
また、前記画像処理を実施する単位であるブロックは、不連続な記憶領域に格納された画像が混在する態様の領域を有する。例えば図４に示すように、各バンドＢ０〜Ｂ４を主走査方向に３等分した場合に形成される各格子の領域に対し、最上列のバンドＢ０から最下列のバンドＢ４に向かう方向で、且つ、各バンドにおいて左側から右側に向かう方向に、降順で番号「画像領域１」〜「画像領域１５」を付するものとすると、各画像領域１〜１５に属する各画像がメモリ５の異なる記憶領域に格納されており、ブロックＷ１には、不連続な記憶領域に格納された「画像領域１」，「画像領域４」，「画像領域７」，「画像領域１０」及び「画像領域１３」の画像が含まれ、ブロックＷ２には、不連続な記憶領域に格納された「画像領域２」，「画像領域５」，「画像領域８」，「画像領域１１」及び「画像領域１４」の画像が含まれ、ブロックＷ３には、不連続な記憶領域に格納された「画像領域３」，「画像領域６」，「画像領域９」，「画像領域１２」及び「画像領域１５」の画像が含まれる。
【００３４】
そして、各画像領域１〜１５に属する各画像が、メモリ５の異なる記憶領域に格納される。ただし、ここでは理解の容易化のために、各記憶領域に格納される画像間の境界と、ブロック間の境界とを一致させたが、必ずしもそれらの境界が一致する必要はなく、例えば画像領域２が図４に示す画像領域１の一部を含むような形態であってもよい。
【００３５】
このように、不連続な記憶領域に格納された画像が混在するブロックごとに、前記画像処理を実施するようにした場合に、次のような問題が考えられる。
【００３６】
すなわち、図４において、例えばブロックＷ１に含まれる画像に対して画像処理を行う場合に、「画像領域１」，「画像領域４」，「画像領域７」，「画像領域１０」の各画像を不連続な各記憶領域からそれぞれ読み出す必要がある。ここで、各記憶領域についてのディスクリプタ情報に、次の記憶領域のディスクリプタアドレスを示す情報（ディスクリプタアドレス情報）が含まれている。そのため、例えば「画像領域４」を記憶する記憶領域ついては、「画像領域１」〜「画像領域４」の画像をそれぞれ記憶している各記憶領域についてのディスクリプタ情報を、それらのディスクリプタ情報に含まれるディスクリプタアドレス情報を基に順に辿らなければ判明しない。同様に、「画像領域７」を記憶する記憶領域ついては、「画像領域１」〜「画像領域７」の画像をそれぞれ記憶している各記憶領域についてのディスクリプタ情報を、それらのディスクリプタ情報に含まれるディスクリプタアドレス情報を基に順に辿らなければ判明しない。「画像領域１０」を記憶する記憶領域及び「画像領域１３」を記憶する記憶領域についても同様である。
【００３７】
このように、各記憶領域から画像を読み出そうとする度に、その読み出す対象の画像の記憶領域を検出するべく、ディスクリプタアドレス情報を基に読み出し順が先頭側に設定された記憶領域からディスクリプタ情報を辿っていく処理を行うのは、メモリ５へのアクセス回数が増大するとともに、画像処理が完了するまでに多大な時間を要する。
【００３８】
そこで、本実施形態では、ＤＭＡコントローラ８による画像処理動作を行う前に、一度、「画像領域１」〜「画像領域１５」の各画像を記憶する各記憶領域についてのディスクリプタ情報を、ディスクリプタアドレス情報を基に順に辿っていきながら、当該ブロックに属する画像をバンドごとに検出するとともに、バンドごとに、当該バンドに属する画像の中で主走査方向に最も先頭側に位置する画像（読み出し順が最も先頭側に設定された画像）を記憶している記憶領域を特定記憶領域として検出し、その記憶領域についての転送元先頭アドレス情報、残サイズ情報及び次ディスクリプタアドレス情報を示すテーブルを、前記画像処理動作を行うときにメモリ５から画像を読み出すのに用いるテーブルとして作成するようにしている。
【００３９】
例えば、今、図５に示すように、或る１頁分の画像が、主走査方向に９０００個の画素を有するとともに、前記副走査方向に５つのバンドＢ０〜Ｂ４に分割されているものとする。そして、図６に示すように、バンド画像Ｂ０のうち主走査方向に５０００個の画素を有する領域の画像Ｄ０は、アドレスＡｄｒ＝Ｘ０を先頭アドレスとする記憶領域Ｍ０に記憶され、次の２０００個の画素を有する領域の画像Ｄ１は、アドレスＡｄｒ＝Ｘ１を先頭アドレスとする記憶領域Ｍ１に記憶され、残り２０００個の画素を有する領域及びバンド画像Ｂ２のうち２０００個の画素を有する領域の画像Ｄ２が、アドレスＡｄｒ＝Ｘ２を先頭アドレスとする記憶領域Ｍ２に記憶され、バンド画像Ｂ２のうち残り７０００個の画素を有する領域の画像Ｄ３は、アドレスＡｄｒ＝Ｘ３を先頭アドレスとする記憶領域Ｍ３に記憶され、バンド画像Ｂ２の全体及びバンド画像Ｂ３の１０００個の画素を有する領域の画像Ｄ４が、アドレスＡｄｒ＝Ｘ４を先頭アドレスとする記憶領域Ｍ４に記憶されているものとする。
【００４０】
また、図７に示すように、前記記憶領域Ｍ０，Ｍ１，・・・ごとに、ディスクリプタ情報Ｄｅｓｃ０，Ｄｅｓｃ１，・・・がメモリ５に格納されているものとする。すなわち、記憶領域Ｍ０についてのディスクリプタ情報Ｄｅｓｃ０は、アドレスＡｄｒ＝Ｙ０を先頭とする記憶領域Ｍ１０に記憶され、記憶領域Ｍ１についてのディスクリプタ情報Ｄｅｓｃ１は、アドレスＡｄｒ＝Ｙ１を先頭とする記憶領域Ｍ１１に記憶され、記憶領域Ｍ２についてのディスクリプタ情報Ｄｅｓｃ２は、アドレスＡｄｒ＝Ｙ２を先頭とする記憶領域Ｍ１２に記憶され、記憶領域Ｍ３についてのディスクリプタ情報Ｄｅｓｃ３は、アドレスＡｄｒ＝Ｙ３を先頭とする記憶領域Ｍ１３に記憶され、記憶領域Ｍ４についてのディスクリプタ情報Ｄｅｓｃ４は、アドレスＡｄｒ＝Ｙ４を先頭とする記憶領域Ｍ１４に記憶されているものとする。
【００４１】
そして、ＤＭＡコントローラ８は、前記画像を主走査方向に３分割したブロックＷ１，Ｗ２，Ｗ３ごとに画像処理を行うものとする。また、本実施形態では、図５に示す２次元画像のうち、左側の領域の画像ほど、又、上側の領域の画像ほど画像の読み出し順が先頭側に設定されるものとする。
【００４２】
このとき、テーブル作成部９は、ブロックＷ１，Ｗ２，Ｗ３ごとにテーブルを作成する。テーブル作成部９は、ブロックＷ１についてのテーブルを作成する場合、各バンドＢ０〜Ｂ４において、当該ブロックＷ１に含まれる画像のうち主走査方向に最も先頭側に位置する画像（読み出し順が最も先頭側に設定された画像）を記憶する記憶領域を特定記憶領域としてそれぞれ抽出する。例えば、テーブル作成部９は、バンドＢ０においては、画像Ｄ０が格納された記憶領域Ｍ０を特定記憶領域として抽出し、バンドＢ１においては、画像Ｄ１が格納された記憶領域Ｍ２を特定記憶領域として抽出し、バンドＢ２，Ｂ３においては、画像Ｄ４が格納された記憶領域Ｍ４を特定記憶領域として抽出する。
【００４３】
そして、テーブル作成部９は、まず、バンドＢ０についての特定記憶領域として抽出した前記記憶領域Ｍ０についてのディスクリプタ情報Ｄｅｓｃ０をメモリ４の記憶領域Ｍ１０から読み出し、図８に示すように、この読み出したディスクリプタ情報Ｄｅｓｃ０に含まれる転送元先頭アドレス情報「Ｘ０」、残サイズ情報「５０００」及び次ディスクリプタアドレス情報「Ｙ１」をテーブルのフィールドにそれぞれ設定する。なお、残サイズ情報のフィールドには、特定記憶領域に格納されている分の画像における主走査方向の画素数が初期値として格納される。したがって、前記バンドＢ０については記憶領域Ｍ０に格納されている分の画像の主走査方向における画素数「５０００」が前記残サイズ情報の初期値として格納される。
【００４４】
次に、テーブル作成部９は、バンドＢ１についての特定記憶領域として抽出した前記記憶領域Ｍ２についてのディスクリプタ情報Ｄｅｓｃ２をメモリ４の記憶領域Ｍ１２から読み出す。なお、ディスクリプタ情報Ｄｅｓｃ２がメモリ４の記憶領域Ｍ１２に格納されているという情報はディスクリプタ情報Ｄｅｓｃ１が保持しており、ディスクリプタ情報Ｄｅｓｃ１がメモリ４の記憶領域Ｍ１１に格納されているという情報は、ディスクリプタ情報Ｄｅｓｃ０が保持しているため、各記憶領域についてのディスクリプタ情報を、ディスクリプタアドレス情報Ｄｅｓｃ０，Ｄｅｓｃ１，Ｄｅｓｃ２をこの順番に辿っていくことで、ディスクリプタ情報Ｄｅｓｃ２の格納場所を検出することができる。このようにして、ディスクリプタ情報Ｄｅｓｃ２の格納場所（記憶領域）を検出すると、そのディスクリプタ情報Ｄｅｓｃ２に含まれる転送元先頭アドレス情報「Ｘ２」、残サイズ情報「２０００」及び次ディスクリプタアドレス情報「Ｙ３」をテーブルの各フィールドにそれぞれ設定する。
【００４５】
なお、このバンドＢ１については記憶領域Ｍ２に格納されている分の画素数「４０００」のうち、当該バンドＢ１以降のバンドに属する分の画素数「２０００」が残サイズ情報として格納される。記憶領域Ｍ２に格納されている画像のうち一部の画像（画素数「２０００」個分の画像）がバンドＢ０に含まれ、残りの画像（画素数「２０００」個分の画像）がバンドＢ１に含まれることは、バンドＢ０に含まれる画像Ｄ０，Ｄ１を記憶する記憶領域Ｍ０，Ｍ１についてのディスクリプタ情報Ｄｅｓｃ０，Ｄｅｓｃ１に含まれる残サイズ情報「５０００」及び「２０００」の和「７０００」が画像全体の主走査方向における画素数「９０００」より２０００個だけ少なく、前記残サイズ情報の和「７０００」に、次の記憶領域Ｍ２に格納された画像の主走査方向における画素数「４０００」を加算した加算結果「１１０００」が、画像全体の主走査方向における画素数「９０００」より２０００個だけ多いことにより判別できる。
【００４６】
次に、テーブル作成部９は、同様にして、バンドＢ２についての特定記憶領域として抽出した前記記憶領域Ｍ４についてのディスクリプタ情報Ｄｅｓｃ４をメモリ４の記憶領域１４から読み出す。この読み出したディスクリプタ情報Ｄｅｓｃ４に含まれる転送元先頭アドレス情報「Ｘ４」、残サイズ情報「１００００」及び次ディスクリプタアドレス情報「Ｙ５」をテーブルのフィールドにそれぞれ設定する。なお、前記と同様、前記バンドＢ２については記憶領域Ｍ４に格納されている分の画素数のうち、当該バンドＢ２以降のバンドに属する分の画素数「１００００」が残サイズ情報として格納される。
【００４７】
次に、テーブル作成部９は、バンドＢ３については、特定記憶領域がバンドＢ２についての特定記憶領域と同一であり、該特定記憶領域である前記記憶領域Ｍ４についてのディスクリプタ情報Ｄｅｓｃ４に含まれる転送元先頭アドレス情報「Ｘ４」及び次ディスクリプタアドレス情報「Ｙ４」をテーブルのフィールドにそれぞれ設定する。また、前記バンドＢ４については記憶領域Ｍ４に格納されている画素数のうち、当該バンドＢ３以降のバンドに属する分の画素数「１０００」が残サイズ情報として格納される。
【００４８】
テーブル作成部９は、このようにしてブロックＷ１についてのテーブルを作成する。また、テーブル作成部９は、他のブロックＷ２，Ｗ３についてのテーブルも同様にして作成する。テーブル記憶部１０は、テーブル作成部９により作成された各テーブルを記憶する。
【００４９】
ＤＭＡコントローラ８は、ブロックＷ１，Ｗ２，Ｗ３ごとに、テーブル記憶部１０により記憶されたテーブルを用いてメモリ４から処理対象の画像を読み出し、読み出した画像に対して画像処理（回転処理）を実施するものである。図９は、ＤＭＡコントローラ８による画像の読出処理を示すフローチャートである。
【００５０】
ＤＭＡコントローラ８は、まずブロックＷ１に着目し、該ブロックＷ１の各バンドＢ０〜Ｂ４について図９に示す処理を行う。ＤＭＡコントローラ８は、着目しているバンドについての残サイズ情報が示す画素数が転送サイズより大きいか否か、すなわち、着目しているバンドについての特定記憶領域における主走査方向の画素数が前記転送サイズより大きいか否かを判断する（ステップ♯１）。前記転送サイズとは、ブロックＷ１，Ｗ２，Ｗ３の主走査方向における長さに相当する画素数をいう。
【００５１】
ＤＭＡコントローラ８は、着目しているバンドについての特定記憶領域における主走査方向の画素数が前記転送サイズよりも大きい場合は（ステップ♯１でＹＥＳ）、当該バンドのうち、前記特定記憶領域についてのディスクリプタ情報に含まれる転送先先頭アドレス情報が示すアドレスを先頭とする前記転送サイズ分の画像を読み出すとともに、前記画素数から転送サイズを減算した結果である減算値を算出し、テーブル作成部９は、テーブルにおけるバンドについての残サイズ情報のフィールド値を前記減算値に更新する（ステップ♯２）。
【００５２】
例えば図５〜図８に示すように、バンドＢ０に着目すると、このバンドＢ０においては、残サイズ情報が示す画素数が「５０００」となっており、この画素数は転送サイズ「３０００」より大きいから、ＤＭＡコントローラ８は、テーブルでバンドＢ０に対して設定されている転送元先頭アドレスＡｄｒ＝Ｘ０を先頭アドレスとする記憶領域Ｍ０の中から、画素３０００個分の画像をアドレス値の小さいものから読み出すとともに、前記画素数「５０００」から転送サイズ「３０００」を減算した結果である減算値「２０００」を算出し、前記バンドＢ０についての残サイズ情報のフィールド値を前記減算値「２０００」に更新する。
【００５３】
一方、ＤＭＡコントローラ８は、着目しているバンドについての特定記憶領域における主走査方向の画素数が前記転送サイズより小さい場合、すなわち、着目しているバンドの領域において、着目しているブロックに含めるべき画像が現時点で不足している場合は（ステップ♯１でＮＯ）、まず、着目しているバンドの特定記憶領域についてのディスクリプタ情報に含まれる転送元先頭アドレス情報が示すアドレスからその転送サイズ分だけ画像を読み出す（ステップ♯３）。
【００５４】
例えば図５〜図８に示すように、バンドＢ１においては、残サイズ情報が示す画素数「２０００」は転送サイズ「３０００」より小さい（不足分は１０００個）から、ＤＭＡコントローラ８は、バンドＢ１についてのディスクリプタ情報に含まれる転送元先頭アドレス情報Ａｄｒ＝Ｘ２を先頭アドレスとする記憶領域Ｍ２の中から画素２０００個分の画像を読み出す。なお、この記憶領域Ｍ２には、図５、図６に示すように、バンドＢ０に属する画素２０００個分の画像も含めて計４０００個の画素の画像が格納されており、ここで読み出すべき画素２０００個分の画像は、後半の２０００個の画素の画像である。なお、各バンドやディスクリプタ情報は例えばＣＰＵ２によって生成され、このＣＰＵ２によって、各バンドのアドレスやディスクリプタ情報が指定されるようになっており、バンドの切れ目はＣＰＵ２によって把握されている。
【００５５】
また、ＤＭＡコントローラ８は、ステップ♯３で読み出した画像の次に読み出し順が設定された画像を記憶している記憶領域を、ステップ♯３で読み出した画像を記憶している記憶領域についてのディスクリプタ情報に含まれるディスクリプタアドレス情報に基づいて検出し、該記憶領域を検出すると、テーブル作成部９は、その検出した記憶領域についてのディスクリプタ情報をメモリ５から読み出し、このディスクリプタ情報を用いて、着目しているバンドについての設定情報（転送元先頭アドレス情報、残サイズ情報及び次ディスクリプタアドレス情報）を更新する（ステップ♯４）。そして、ＤＭＡコントローラ８は、更新後のフィールド値に基づき、不足分の画像を読み出し、その読み出した分だけ当該バンドについての現在の残サイズ情報が示す画素数から減算した減算結果をテーブルに反映する（ステップ♯５）。
【００５６】
例えば、前述したように、バンドＢ１において記憶領域Ｍ２の中から「２０００」個の画素の画像を抽出した場合において、図５、図６に示すように、読み出し順が該記憶領域Ｍ２の次に設定されている記憶領域が、画素「７０００」個の画像を記憶する記憶領域Ｍ３であるものとすると、テーブル作成部９は、前記テーブルのうちバンドＢ１についての転送元先頭アドレス情報、残サイズ情報及び次ディスクリプタアドレス情報を前記記憶領域Ｍ３についてのディスクリプタ情報に基づき更新する。つまり、ＤＭＡコントローラ８は、転送元先頭アドレス情報を「Ｘ３」に、残サイズ情報を「７０００」に、次ディスクリプタアドレス情報を「Ｙ４」にそれぞれ更新する。
【００５７】
そして、ＤＭＡコントローラ８は、着目しているブロックＷ１に含めるべきバンドＢ１の領域における画像として現時点で不足している画素１０００個分の画像を前記記憶領域Ｍ３から読み出し、その読み出した分だけバンドＢ１についての現在の残サイズ情報が示す画素数「７０００」から減算した減算結果「６０００」をテーブルに反映する。これにより、着目しているブロックＷ１に含めるべきバンドＢ１の領域における画像がメモリ５から読み出されることとなる。
【００５８】
ＤＭＡコントローラ８は、このような処理を全てのバンドＢ０〜Ｂ４について実施することにより、ブロックＷ１に含まれる画像をメモリ４から読み出す。また、ＤＭＡコントローラは、ブロックＷ２，Ｗ３についても同様の読出処理を行う。
【００５９】
以上のように、２次元画像がメモリ４の不連続な記憶領域に分散して格納された場合に、各記憶領域のうち、各バンドにおいて主走査方向に最も先頭側に位置する画像を記憶した記憶領域についてのみ、アドレス情報及びディスクリプタアドレス情報に係るテーブルを作成し、このテーブルを用いて画像処理を実施する対象の画像を読み出すようにしたので、画像を読み出す対象の記憶領域を変える度に各記憶領域についてのディスクリプタ情報を辿ることなく、画像処理を実施する対象の画像を読み出すことができ、回路の大規模化を防止又は抑制しつつ、不連続なアドレスに記憶された画像を短時間で読み出すことができる。
【図面の簡単な説明】
【００６０】
【図１】本発明の一実施形態に係る画像処理装置の構成の一例を示す図である。
【図２】メモリ上に割り当てられたメモリマップの一例を説明するための図である。
【図３】ディスクリプタ情報の一例を示す図である。
【図４】バンド及びブロックを説明するための図である。
【図５】２次元画像が複数の記憶領域に分けて記憶された状態の一例を示す図である。
【図６】図５に対応する、画像についてのメモリマップの一例を説明するための図である。
【図７】図５に対応する、ディスクリプタ情報についてのメモリマップの一例を説明するための図である。
【図８】テーブルの一例を示す図である。
【図９】ＤＭＡコントローラによる画像の読出処理を示すフローチャートである。
【図１０】背景技術による画像データにメモリ領域を割り当てた場合のメモリマップの例を示す図である。
【符号の説明】
【００６１】
１    画像処理装置
２    ＣＰＵ
３    ＲＯＭ
４    スキャナ
５    メモリ
６    ＡＳＩＣ
７    動作指示受付部
８    ＤＭＡコントローラ
９    テーブル作成部
１０  テーブル記憶部
【図１】
2010140188.tif 000003
【図２】
2010140188.tif 000004
【図３】
2010140188.tif 000005
【図４】
2010140188.tif 000006
【図５】
2010140188.tif 000007
【図６】
2010140188.tif 000008
【図７】
2010140188.tif 000009
【図８】
2010140188.tif 000010
【図９】
2010140188.tif 000011
【図１０】
2010140188.tif 000012