(57)【特許請求の範囲】
【請求項１】
主走査方向にｍ個、副走査方向にｎ個のブロック領域が並ぶｍ×ｎ個の前記ブロック領域と、前記ブロック領域よりも画素数が主走査方向で多いバンド領域が副走査方向に並ぶ複数の前記バンド領域と、を用いて画像データを処理する画像処理装置であって、
メインメモリーと、
前記メインメモリーに格納する画像データについて、複数の前記バンド領域のそれぞれに対応する複数のバンド領域データに分けて処理をする処理部であって、前記バンド領域データを複数の分割データに分割して前記メインメモリーにアドレスを異ならせて格納する処理を、複数の前記バンド領域データのそれぞれについて実行する分割処理部と、
複数の前記バンド領域のそれぞれに割り当てられた複数のバンドディスクリプターを処理する処理部であって、前記メインメモリーに前記画像データが格納される際に、前記バンド領域データに対応する前記バンド領域に割り当てられた前記バンドディスクリプターに対して、複数の前記分割データのそれぞれの先頭画素のデータの前記メインメモリー上のアドレス及び複数の前記分割データのそれぞれの画素数を示す分割データ情報を加えて前記メインメモリーに格納する処理を、複数の前記バンドディスクリプターのそれぞれにおいて実行するバンドディスクリプター処理部と、を備え、
複数の前記バンドディスクリプターは、順番付けられており、前記メインメモリーに格納された複数の前記バンドディスクリプターのそれぞれは、次の順番のバンドディスクリプターの前記メインメモリー上のアドレスの情報を含み、
前記ブロック領域の先頭画素を含む前記バンド領域に割り当てられた前記バンドディスクリプターの前記メインメモリー上のアドレスを、バンドディスクリプター関係付けアドレスとし、
さらに、
前記ブロック領域の先頭画素の主走査方向の座標値及び前記ブロック領域の主走査方向の画素数が共通する前記ブロック領域に対して設けられ、主走査方向において共通する前記座標値及び前記画素数の情報を含むｍ個の主走査方向ディスクリプターと、前記ブロック領域の先頭画素の副走査方向の座標値及び前記ブロック領域の副走査方向の画素数が共通する前記ブロック領域に対して設けられ、副走査方向において共通する前記座標値及び前記画素数、並びに、前記バンドディスクリプター関係付けアドレスの情報を含むｎ個の副走査方向ディスクリプターと、について、前記メインメモリーに前記画像データが格納される際に、予め定められた記憶領域に格納する主・副走査方向ディスクリプター処理部と、
前記記憶領域に格納されたｍ個の前記主走査方向ディスクリプターと、ｎ個の前記副走査方向ディスクリプターと、を組み合わせて、ｍ×ｎ個の前記ブロック領域の任意のブロック領域に割り当てられたブロックディスクリプターを生成するブロックディスクリプター生成部と、を備える画像処理装置。
【請求項２】
前記分割処理部、前記バンドディスクリプター処理部、前記ブロックディスクリプター生成部、並びに、ｍ個の前記主走査方向ディスクリプター及びｎ個の前記副走査方向ディスクリプターが格納されているＳＲＡＭを含むＡＳＩＣと、
前記ＡＳＩＣと前記メインメモリーとを接続するバスと、を備え、
前記記憶領域は、前記ＳＲＡＭであり、
前記ブロックディスクリプター生成部は、前記ＳＲＡＭに格納されているｍ個の前記主走査方向ディスクリプターのそれぞれのアドレスとｎ個の前記副走査方向ディスクリプターのそれぞれのアドレスを保持し、前記ＳＲＡＭから前記主走査方向ディスクリプターと前記副走査方向ディスクリプターとを読み出して、ｍ×ｎ個の前記ブロック領域の任意のブロック領域に割り当てられた前記ブロックディスクリプターを生成する請求項１に記載の画像処理装置。
【請求項３】
前記ブロックディスクリプター生成部によって生成された各ブロックディスクリプターを構成する前記主走査方向ディスクリプター及び前記副走査方向ディスクリプターに含まれる前記画素数及び前記座標値が、割り当てられた前記ブロック領域についての主走査方向及び副走査方向の画素数並びに先頭画素の座標の情報であるブロック領域情報となり、
前記メインメモリーに格納されている前記画像データを基にして形成される画像について、Ｎ番目(Ｎは正の整数)画素が位置する主走査方向及び副走査方向の座標を、前記画像の主走査方向の画素数を基にして演算する座標演算部と、
前記座標演算部で演算された前記Ｎ番目画素の座標、及び、前記ブロックディスクリプター生成部によって生成された各ブロックディスクリプターに含まれる前記ブロック領域情報を基にして、ｍ×ｎ個の前記ブロック領域のうち前記Ｎ番目画素が属する前記ブロック領域を特定するブロック領域特定部と、
前記ブロック領域特定部で特定された前記ブロック領域に割り当てられた前記ブロックディスクリプターについて、当該ブロックディスクリプターに含まれる前記バンドディスクリプター関係付けアドレスに格納されている前記バンドディスクリプターを前記メインメモリーから読み出すバンドディスクリプター読出部と、を備える請求項１又は２に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクリプターを用いた画像データの処理に関する。
【背景技術】
【０００２】
画像データ(例えば、原稿をスキャナーで読み取ることによって得られた画像データ)をメインメモリーに格納する時、画像データが大きければ、連続するアドレスの記憶領域を必ずしも確保できない。そこで、画像データを複数に分けて、アドレスが不連続な記憶領域に格納することにより、メモリー空間を効率的に利用している。この場合、アドレスが不連続な記憶領域に格納されたデータをつなげて元の画像データに戻すことができるように、ディスクリプターが用いられる(例えば、特許文献１参照)。
【０００３】
メモリー空間を効率的に利用するために、一つの画像データに対してディスクリプターが大量(例えば数千)に割り当てられる。目的となるディスクリプターへのアクセス時間を短くできれば、画像データを効率的に処理(例えばメインメモリーに格納された各画素のデータへのアクセス時間の短縮)することができる。
【０００４】
そこで、次の技術が提案されている(例えば、特許文献２参照)。複数のブロックディスクリプターが、主走査方向及び副走査方向に並ぶ複数のブロック領域のそれぞれに割り当てられている。複数のバンドディスクリプターが、副走査方向に並ぶ複数のバンド領域にそれぞれ割り当てられている。ブロックディスクリプターとバンドディスクリプターとを組み合わせることにより、目的となるバンドディスクリプターへのアクセス時間を短くすることを可能にしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２５０９９６号公報(段落００２３〜段落００２６、図２、図３)
【特許文献２】特開２０１１−２４８４４７号公報(要約)
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数のブロックディスクリプターは、それぞれ、割り当てられたブロック領域の先頭画素について、主走査方向及び副走査方向の座標値、並びに、割り当てられたブロック領域について、主走査方向及び副走査方向の画素数の情報を含む。これらの情報は、ブロックディスクリプターどうしにおいて重複しており、冗長になっていた。
【０００７】
本発明は、ブロックディスクリプターとバンドディスクリプターとを用いて画像データを処理する場合に、ディスクリプターのサイズを小さくできる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成する本発明に係る画像処理装置は、主走査方向にｍ個、副走査方向にｎ個のブロック領域が並ぶｍ×ｎ個の前記ブロック領域と、前記ブロック領域よりも画素数が主走査方向で多いバンド領域が副走査方向に並ぶ複数の前記バンド領域と、を用いて画像データを処理する画像処理装置であって、メインメモリーと、前記メインメモリーに格納する画像データについて、複数の前記バンド領域のそれぞれに対応する複数のバンド領域データに分けて処理をする処理部であって、前記バンド領域データを複数の分割データに分割して前記メインメモリーにアドレスを異ならせて格納する処理を、複数の前記バンド領域データのそれぞれについて実行する分割処理部と、複数の前記バンド領域のそれぞれに割り当てられた複数のバンドディスクリプターを処理する処理部であって、前記メインメモリーに前記画像データが格納される際に、前記バンド領域データに対応する前記バンド領域に割り当てられた前記バンドディスクリプターに対して、複数の前記分割データのそれぞれの先頭画素のデータの前記メインメモリー上のアドレス及び複数の前記分割データのそれぞれの画素数を示す分割データ情報を加えて前記メインメモリーに格納する処理を、複数の前記バンドディスクリプターのそれぞれにおいて実行するバンドディスクリプター処理部と、を備え、複数の前記バンドディスクリプターは、順番付けられており、前記メインメモリーに格納された複数の前記バンドディスクリプターのそれぞれは、次の順番のバンドディスクリプターの前記メインメモリー上のアドレスの情報を含み、前記ブロック領域の先頭画素を含む前記バンド領域に割り当てられた前記バンドディスクリプターの前記メインメモリー上のアドレスを、バンドディスクリプター関係付けアドレスとし、さらに、前記ブロック領域の先頭画素の主走査方向の座標値及び前記ブロック領域の主走査方向の画素数が共通する前記ブロック領域に対して設けられ、主走査方向において共通する前記座標値及び前記画素数の情報を含むｍ個の主走査方向ディスクリプターと、前記ブロック領域の先頭画素の副走査方向の座標値及び前記ブロック領域の副走査方向の画素数が共通する前記ブロック領域に対して設けられ、副走査方向において共通する前記座標値及び前記画素数、並びに、前記バンドディスクリプター関係付けアドレスの情報を含むｎ個の副走査方向ディスクリプターと、について、前記メインメモリーに前記画像データが格納される際に、予め定められた記憶領域に格納する主・副走査方向ディスクリプター処理部と、前記記憶領域に格納されたｍ個の前記主走査方向ディスクリプターと、ｎ個の前記副走査方向ディスクリプターと、を組み合わせて、ｍ×ｎ個の前記ブロック領域の任意のブロック領域に割り当てられたブロックディスクリプターを生成するブロックディスクリプター生成部と、を備える。
【０００９】
本発明に係る画像処理装置では、ｍ個の主走査方向ディスクリプターとｎ個の副走査方向ディスクリプターとを組み合わせて、ｍ×ｎ個のブロック領域の任意のブロック領域に割り当てられたブロックディスクリプターを生成する。従って、ｍ×ｎ個のブロックディスクリプターを予め用意する必要がないので、ディスクリプターのサイズ(データの量)を小さくすることができる。
【００１０】
ブロックディスクリプターを構成する副走査方向ディスクリプターは、バンドディスクリプター関係付けアドレスの情報を含む。したがって、ブロック領域の先頭の画素を含むバンド領域に割り当てられたバンドディスクリプターのアドレスを、そのブロック領域に割り当てられたブロックディスクリプターから知ることができる。
【００１１】
メインメモリーに格納されている複数のバンドディスクリプターのそれぞれは、次の順番のバンドディスクリプターのメインメモリー上のアドレスの情報を含むので、ブロックディスクリプターを利用しなくても目的となるバンドディスクリプターへアクセスできる。しかし、この場合は１番目のバンドディスクリプターから順番にバンドディスクリプターを検索しなければならない。本発明によればブロックディスクリプターを利用することにより、途中のバンドディスクリプターから検索を開始して目的となるバンドディスクリプターへアクセスすることができる。したがって、バンドディスクリプターへのアクセス時間を短くすることが可能となる。
【００１２】
上記構成において、前記分割処理部、前記バンドディスクリプター処理部、前記ブロックディスクリプター生成部、並びに、ｍ個の前記主走査方向ディスクリプター及びｎ個の前記副走査方向ディスクリプターが格納されているＳＲＡＭを含むＡＳＩＣと、前記ＡＳＩＣと前記メインメモリーとを接続するバスと、を備え、前記記憶領域は、前記ＳＲＡＭであり、前記ブロックディスクリプター生成部は、前記ＳＲＡＭに格納されているｍ個の前記主走査方向ディスクリプターのそれぞれのアドレスとｎ個の前記副走査方向ディスクリプターのそれぞれのアドレスを保持し、前記ＳＲＡＭから前記主走査方向ディスクリプターと前記副走査方向ディスクリプターとを読み出して、ｍ×ｎ個の前記ブロック領域の任意のブロック領域に割り当てられた前記ブロックディスクリプターを生成する。
【００１３】
ｍ個の主走査方向ディスクリプター及びｎ個の副走査方向ディスクリプターの全部のサイズは、ｍ×ｎ個のブロックディスクリプターの全部のサイズよりも、かなり小さいので、メインメモリーでなく、ＡＳＩＣのＳＲＡＭに格納することができる。これにより、ｍ個の主走査方向ディスクリプターのそれぞれに、次に読み出す順番の主走査方向ディスクリプターのメインメモリー上のアドレスの情報を含める必要がなくなる。同様に、ｎ個の副走査方向ディスクリプターのそれぞれに、次に読み出す順番の副走査方向ディスクリプターのメインメモリー上のアドレスの情報を含める必要がなくなる。従って、ｍ個の主走査方向ディスクリプター及びｎ個の副走査方向ディスクリプターの全部のサイズをさらに小さくすることができる。
【００１４】
上記構成において、前記ブロックディスクリプター生成部によって生成された各ブロックディスクリプターを構成する前記主走査方向ディスクリプター及び前記副走査方向ディスクリプターに含まれる前記画素数及び前記座標値が、割り当てられた前記ブロック領域についての主走査方向及び副走査方向の画素数並びに先頭画素の座標の情報であるブロック領域情報となり、前記メインメモリーに格納されている前記画像データを基にして形成される画像について、Ｎ番目(Ｎは正の整数)画素が位置する主走査方向及び副走査方向の座標を、前記画像の主走査方向の画素数を基にして演算する座標演算部と、前記座標演算部で演算された前記Ｎ番目画素の座標、及び、前記ブロックディスクリプター生成部によって生成された各ブロックディスクリプターに含まれる前記ブロック領域情報を基にして、ｍ×ｎ個の前記ブロック領域のうち前記Ｎ番目画素が属する前記ブロック領域を特定するブロック領域特定部と、前記ブロック領域特定部で特定された前記ブロック領域に割り当てられた前記ブロックディスクリプターについて、当該ブロックディスクリプターに含まれる前記バンドディスクリプター関係付けアドレスに格納されている前記バンドディスクリプターを前記メインメモリーから読み出すバンドディスクリプター読出部と、を備える。
【００１５】
この構成によれば、メインメモリーに格納されているＮ番目画素のデータにバンドディスクリプターを利用してアクセスする場合に、Ｎ番目画素が属するブロック領域の先頭の画素を含むバンド領域に割り当てられたバンドディスクリプターから開始できる。
【００１６】
ここでＮ番目画素とは、画像において主走査方向に並ぶ画素を行とした場合、１行目の先頭の画素から１行目の最後の画素までを数え、次に２行目の先頭の画素から２行目の最後の画素までを数え、３行目以降も同様にして数えた順番である。
【発明の効果】
【００１７】
本発明によれば、ブロックディスクリプターとバンドディスクリプターとを用いて画像データを処理する場合に、ディスクリプターのサイズを小さくできる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態に係る画像処理装置のハードウェア構成を示すブロック図である。
【図２】本実施形態で用いられるブロック領域とバンド領域の概念図である。
【図３】図２に示す複数のバンド領域のそれぞれに割り当てられた複数のバンドディスクリプターを示す図である。
【図４】４個(ｍ個)の主走査方向ディスクリプターを示す図である。
【図５】４個(ｎ個)の副走査方向ディスクリプターを示す図である。
【図６】メインメモリーに格納する画像データのうち、バンド領域ＢＡ２２に対応する画像データであるバンド領域データＭ２２を示す図である。
【図７】本実施形態に係る画像処理装置を用いて画像データをメインメモリーへ格納する処理を説明するフローチャートである。
【図８】本実施形態に係る画像処理装置を用いて、メインメモリーに格納されている画像データに含まれるＮ番目画素のデータへのアクセスについて説明するフローチャートである。
【図９】本実施形態の変形例に係る画像処理装置のハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、図面に基づいて本発明の実施形態を詳細に説明する。図１は、本発明の一実施形態に係る画像処理装置１のハードウェア構成を示すブロック図である。画像処理装置１は、複合機、コピー機等に適用されるものであり、ＣＰＵ(Central Processing Unit)３、メインメモリー７、読み取り専用メモリー９及びＡＳＩＣ(Application Specific Integrated Circuit)１１を備えており、これらはバス１３により接続されている。また、画像処理装置１は、ラインセンサー５を備えており、専用バス１４によりＡＳＩＣ１１に接続されている。
【００２０】
ＣＰＵ３は、画像処理装置１を動作させるために必要な制御を、画像処理装置１を構成する上記ハードウェアに対して実行する。ラインセンサー５は、画像処理装置１のスキャナーを構成する要素であり、原稿の画像を読み取り、画像データを出力する。ラインセンサー５は、例えば、ＣＣＤ(Charge Coupled Device)センサーにより実現される。
【００２１】
メインメモリー７は、ＲＡＭ(Random Access Memory)であり、ソフトウェアの実行時に発生するデータの一時的な記憶及びアプリケーションソフトの記憶等に利用される。メインメモリー７は、例えば、ＤＲＡＭ(Dynamic Random Access Memory)によって実現される。
【００２２】
読み取り専用メモリー９は、ＲＯＭ(Read Only Memory)であり、画像処理装置１の動作の制御に必要なソフトウェア等を記憶している。読み取り専用メモリー９は、フラッシュメモリー等により実現される。
【００２３】
ＡＳＩＣ１１は、画像処理専用であり、画像データの各種処理(フィルター等)に用いられる。図１では、本実施形態に関係する機能ブロックが示されている。ＡＳＩＣ１１は、分割処理部２１、バンドディスクリプター処理部２３、主・副走査方向ディスクリプター処理部２５及び画素データアクセス部２７を備える。これらを理解する前提として、バンド領域、ブロック領域、バンドディスクリプター、主走査方向ディスクリプター、及び、副走査方向ディスクリプターについて説明する。
【００２４】
図２は、本実施形態で用いられるブロック領域とバンド領域の概念図である。複数、例えば、１６個のブロック領域ＢＬ１〜ＢＬ１６が主走査方向Ｄ１及び副走査方向Ｄ２に並べて配置されている。複数のブロック領域を区別する必要がある場合は、ブロック領域ＢＬ１〜ＢＬ１６と記載し、区別する必要がない場合は、ブロック領域ＢＬと記載する。主走査方向Ｄ１に４つのブロック領域ＢＬが並べられており、副走査方向Ｄ２に４つのブロック領域ＢＬが並べられている。各ブロック領域ＢＬの主走査方向Ｄ１の画素数は、同じであり、また、各ブロック領域ＢＬの副走査方向Ｄ２の画素数も同じである。したがって各ブロック領域ＢＬの画素数(サイズ)は、同じである。なお、本実施形態において、主走査方向Ｄ１をｘ方向、副走査方向Ｄ２をｙ方向と言い換えることもできる。
【００２５】
以上のように、主走査方向にｍ個、副走査方向にｎ個のブロック領域ＢＬが並ぶｍ×ｎ個のブロック領域ＢＬが設けられている。ｍ及びｎは、２以上の整数である。ｍとｎとが等しくてもよいし、異なっていてもよい。
【００２６】
複数のバンド領域ＢＡが、副走査方向Ｄ２に沿って並べて配置されている。複数のバンド領域を区別する必要がある場合は、バンド領域ＢＡ１，ＢＡ２，・・・と記載し、区別する必要がない場合は、バンド領域ＢＡと記載する。
【００２７】
バンド領域ＢＡは、主走査方向Ｄ１に延びる帯状の領域であり、ブロック領域ＢＬよりも主走査方向Ｄ１の画素数が多い。ラインセンサー５から出力された画像データのうち、予め定められた数の走査ライン(例えば、６４本の走査ライン)のスキャンで得られた画像データが、一つのバンド領域ＢＡに相当する。したがって、バンド領域ＢＡの主走査方向Ｄ１の画素数は、画像データの主走査方向Ｄ１の画素数と同じであり、バンド領域ＢＡの副走査方向Ｄ２の画素数は、予め定められた走査ラインの数(例えば６４本)と同じとなる。
【００２８】
なお、バンド領域ＢＡは、主走査方向Ｄ１に延びる帯状の領域であり、ブロック領域ＢＬよりも主走査方向Ｄ１の画素数が多くかつ副走査方向Ｄ２の画素数が少なくてもよい。
【００２９】
画像処理装置１は、ｍ×ｎ個のブロック領域ＢＬと、複数のバンド領域ＢＡとを用いて画像データを処理する。
【００３０】
図３は、図２に示す複数のバンド領域ＢＡのそれぞれに割り当てられた複数のバンドディスクリプターを示す図である。複数のバンドディスクリプターを区別する必要がある場合は、バンドディスクリプターＢＡＤ１，ＢＡＤ２，・・・と記載し、区別する必要がない場合は、バンドディスクリプターＢＡＤと記載する。
【００３１】
複数のバンドディスクリプターＢＡＤは、複数のバンド領域ＢＡが副走査方向Ｄ２に並ぶ順番に従って順番が決められている。例えば、１番目のバンドディスクリプターＢＡＤ１は、バンド領域ＢＡ１に割り当てられたバンドディスクリプターであり、２番目のバンドディスクリプターＢＡＤ２は、バンド領域ＢＡ２に割り当てられたバンドディスクリプターであり、また、２２番目のバンドディスクリプターＢＡＤ２２は、バンド領域ＢＡ２２に割り当てられたバンドディスクリプターである。
【００３２】
画像データをメインメモリー７に格納する際に、複数のバンドディスクリプターＢＡＤは、メインメモリー７に格納される。複数のバンドディスクリプターＢＡＤのそれぞれについて、メインメモリー７上のアドレスが予め決められている。例えば、バンド領域ＢＡ１に割り当てられたバンドディスクリプターＢＡＤ１は、メインメモリー７上のアドレスＡｄｄ５１が予め割り当てられている。
【００３３】
各バンドディスクリプターＢＡＤは、次の順番のバンドディスクリプターＢＡＤのメインメモリー７上のアドレスの情報、並びに、分割データ情報(複数の分割データのそれぞれの先頭画素のデータのメインメモリー７上のアドレスの情報及び複数の分割データのそれぞれの画素数の情報)を有する。分割データ情報については後で説明する。
【００３４】
図４は、主走査方向ディスクリプターＭＳＤを示す図である。４個の主走査方向ディスクリプターＭＳＤを区別する必要がある場合は、主走査方向ディスクリプターＭＳＤ１〜ＭＳＤ４と記載し、区別する必要がない場合は、主走査方向ディスクリプターＭＳＤと記載する。図５は、副走査方向ディスクリプターＶＳＤを示す図である。４個の副走査方向ディスクリプターＶＳＤを区別する必要がある場合は、副走査方向ディスクリプターＶＳＤ１〜ＶＳＤ４と記載し、区別する必要がない場合は、副走査方向ディスクリプターＶＳＤと記載する。
【００３５】
４個の主走査方向ディスクリプターＭＳＤと４個の副走査方向ディスクリプターＶＳＤとを組み合わせることにより、１６個のブロック領域ＢＬに割り当てられるブロックディスクリプターが生成される。例えば、主走査方向ディスクリプターＭＳＤ１と副走査方向ディスクリプターＶＳＤ１との組み合わせが、ブロック領域ＢＬ１に割り当てられるブロックディスクリプターとなる。主走査方向ディスクリプターＭＳＤ１と副走査方向ディスクリプターＶＳＤ２との組み合わせが、ブロック領域ＢＬ５に割り当てられるブロックディスクリプターとなる。主走査方向ディスクリプターＭＳＤ４と副走査方向ディスクリプターＶＳＤ４との組み合わせが、ブロック領域ＢＬ１６に割り当てられるブロックディスクリプターとなる。
【００３６】
主走査方向ディスクリプターＭＳＤについて詳細に説明する。主走査方向ディスクリプターＭＳＤは、ブロック領域ＢＬの先頭画素の主走査方向Ｄ１の座標値及びブロック領域ＢＬの主走査方向Ｄ１の画素数が共通するブロック領域ＢＬに対して設けられ、主走査方向Ｄ１において共通する上記座標値及び上記画素数の情報を含む。先頭画素の主走査方向Ｄ１の座標値とは、図２に示すブロック領域ＢＬ５で説明すると、ブロック領域ＢＬ５の先頭画素Ｐの座標のうち、主走査方向Ｄ１の値を指している。
【００３７】
図２を参照して、ブロック領域ＢＬ１，ＢＬ５，ＢＬ９，ＢＬ１３は、先頭画素の主走査方向Ｄ１の座標値及び主走査方向Ｄ１の画素数が共通している。従って、ブロック領域ＢＬ１，ＢＬ５，ＢＬ９，ＢＬ１３に対して、主走査方向ディスクリプターＭＳＤ１が設けられている。
【００３８】
ブロック領域ＢＬ２，ＢＬ６，ＢＬ１０，ＢＬ１４は、先頭画素の主走査方向Ｄ１の座標値及び主走査方向Ｄ１の画素数が共通している。従って、ブロック領域ＢＬ２，ＢＬ６，ＢＬ１０，ＢＬ１４に対して、主走査方向ディスクリプターＭＳＤ２が設けられている。
【００３９】
同様に、ブロック領域ＢＬ３，ＢＬ７，ＢＬ１１，ＢＬ１５に対して、主走査方向ディスクリプターＭＳＤ３が設けられており、ブロック領域ＢＬ４，ＢＬ８，ＢＬ１２，ＢＬ１６に対して、主走査方向ディスクリプターＭＳＤ４が設けられている。
【００４０】
本実施形態では、主走査方向Ｄ１に４個のブロック領域ＢＬが並んでいるので、主走査方向ディスクリプターＭＳＤの数は、４個である。従って、主走査方向Ｄ１にｍ個のブロック領域ＢＬが並んでいれば、主走査方向ディスクリプターＭＳＤの数は、ｍ個である。
【００４１】
画像データがメインメモリー７に格納される際に、ｍ個の主走査方向ディスクリプターＭＳＤが生成されて、メインメモリー７に格納される。ｍ個の主走査方向ディスクリプターＭＳＤのそれぞれについて、メインメモリー７上のアドレスが予め割り当てられている。例えば、主走査方向ディスクリプターＭＳＤ１は、メインメモリー７上のアドレスＡｄｄｘ３１が予め割り当てられている。
【００４２】
ｍ個の主走査方向ディスクリプターＭＳＤのそれぞれは、次の順番の主走査方向ディスクリプターＭＳＤのメインメモリー７上のアドレスの情報、先頭画素の主走査方向Ｄ１の座標値、及び、主走査方向Ｄ１の画素数を含む。それらの情報について、主走査方向ディスクリプターＭＳＤ１を例に説明する。次の順番の主走査方向ディスクリプターＭＳＤのメインメモリー７上のアドレスとは、主走査方向ディスクリプターＭＳＤ２のメインメモリー７上のアドレスＡｄｄｘ３２である。
【００４３】
先頭画素の主走査方向Ｄ１の座標値は、ブロック領域ＢＬ１の先頭画素の主走査方向Ｄ１の座標値である。主走査方向Ｄ１の画素数は、ブロック領域ＢＬ１の主走査方向Ｄ１の画素数である。本実施形態において、ブロック領域ＢＬ１〜ＢＬ１６の主走査方向Ｄ１の画素数は、同じである。しかしながら、主走査方向Ｄ１において、ブロック領域ＢＬ１(ブロック領域ＢＬ５，ＢＬ９，ＢＬ１３)の画素数、ブロック領域ＢＬ２(ブロック領域ＢＬ６，ＢＬ１０，ＢＬ１４)の画素数、ブロック領域ＢＬ３(ブロック領域ＢＬ７，ＢＬ１１，ＢＬ１５)の画素数、ブロック領域ＢＬ４(ブロック領域ＢＬ８，ＢＬ１２，ＢＬ１６)の画素数が異なっていてもよい。
【００４４】
副走査方向ディスクリプターＶＳＤについて詳細に説明する。副走査方向ディスクリプターＶＳＤは、ブロック領域ＢＬの先頭画素の副走査方向Ｄ２の座標値及びブロック領域ＢＬの副走査方向Ｄ２の画素数が共通するブロック領域ＢＬに対して設けられ、副走査方向Ｄ２において共通する上記座標値及び上記画素数の情報を含む。先頭画素の副走査方向Ｄ２の座標値とは、図２に示すブロック領域ＢＬ５で説明すると、ブロック領域ＢＬ５の先頭画素Ｐの座標のうち、副走査方向Ｄ２の値を指している。
【００４５】
図２を参照して、ブロック領域ＢＬ１，ＢＬ２，ＢＬ３，ＢＬ４は、先頭画素の副走査方向Ｄ２の座標値及び副走査方向Ｄ２の画素数が共通している。従って、ブロック領域ＢＬ１，ＢＬ２，ＢＬ３，ＢＬ４に対して、副走査方向ディスクリプターＶＳＤ１が設けられている。
【００４６】
ブロック領域ＢＬ５，ＢＬ６，ＢＬ７，ＢＬ８は、先頭画素の副走査方向Ｄ２の座標値及び副走査方向Ｄ２の画素数が共通している。従って、ブロック領域ＢＬ５，ＢＬ６，ＢＬ７，ＢＬ８に対して、副走査方向ディスクリプターＶＳＤ２が設けられている。
【００４７】
同様に、ブロック領域ＢＬ９，ＢＬ１０，ＢＬ１１，ＢＬ１２に対して、副走査方向ディスクリプターＶＳＤ３が設けられており、ブロック領域ＢＬ１３，ＢＬ１４，ＢＬ１５，ＢＬ１６に対して、副走査方向ディスクリプターＶＳＤ４が設けられている。
【００４８】
本実施形態では、副走査方向Ｄ２に４個のブロック領域ＢＬが並んでいるので、副走査方向ディスクリプターＶＳＤの数は、４個である。従って、副走査方向Ｄ２にｎ個のブロック領域ＢＬが並んでいれば、副走査方向ディスクリプターＶＳＤの数は、ｎ個である。
【００４９】
画像データがメインメモリー７に格納される際に、ｎ個の副走査方向ディスクリプターＶＳＤが生成されて、メインメモリー７に格納される。ｎ個の副走査方向ディスクリプターＶＳＤのそれぞれについて、メインメモリー７上のアドレスが予め割り当てられている。例えば、副走査方向ディスクリプターＶＳＤ１は、メインメモリー７上のアドレスＡｄｄｙ３１が予め割り当てられている。
【００５０】
ｎ個の副走査方向ディスクリプターＶＳＤのそれぞれは、次の順番の副走査方向ディスクリプターＶＳＤのメインメモリー７上のアドレスの情報、先頭画素の副走査方向Ｄ２の座標値、副走査方向Ｄ２の画素数、及び、バンドディスクリプター関係付けアドレスの情報を含む。それらの情報について、副走査方向ディスクリプターＶＳＤ１を例に説明する。次の順番の副走査方向ディスクリプターＶＳＤのメインメモリー７上のアドレスとは、副走査方向ディスクリプターＶＳＤ２のメインメモリー７上のアドレスＡｄｄｙ３２である。
【００５１】
先頭画素の副走査方向Ｄ２の座標値は、ブロック領域ＢＬ１の先頭画素の副走査方向Ｄ２の座標値である。副走査方向Ｄ２の画素数は、ブロック領域ＢＬ１の副走査方向Ｄ２の画素数である。本実施形態において、ブロック領域ＢＬ１〜ＢＬ１６の副走査方向Ｄ２の画素数は、同じである。しかしながら、副走査方向Ｄ２において、ブロック領域ＢＬ１(ブロック領域ＢＬ２，ＢＬ３，ＢＬ４)の画素数、ブロック領域ＢＬ５(ブロック領域ＢＬ６，ＢＬ７，ＢＬ８)の画素数、ブロック領域ＢＬ９(ブロック領域ＢＬ１０，ＢＬ１１，ＢＬ１２)の画素数、ブロック領域ＢＬ１３(ブロック領域ＢＬ１４，ＢＬ１５，ＢＬ１６)の画素数が異なっていてもよい。
【００５２】
バンドディスクリプター関係付けアドレスの情報とは、ブロック領域ＢＬの先頭画素を含むバンド領域ＢＡに割り当てられたバンドディスクリプターＢＡＤのメインメモリー７上のアドレスの情報である。具体的に説明すると、図２に示すように、ブロック領域ＢＬ５の先頭画素Ｐはバンド領域ＢＡ２２に位置するので、バンド領域ＢＡ２２に割り当てられたバンドディスクリプターＢＡＤ２２(図３)のメインメモリー７上のアドレスＡｄｄ７２を意味する。以上がブロック領域ＢＬ、バンド領域ＢＡ、バンドディスクリプターＢＡＤ、主走査方向ディスクリプターＭＳＤ及び副走査方向ディスクリプターＶＳＤの説明である。
【００５３】
図１に示すＡＳＩＣ１１に含まれる分割処理部２１は、メインメモリー７に格納する画像データについて、図２に示す複数のバンド領域ＢＡのそれぞれに対応する複数のバンド領域データに分けて処理をする処理部である。分割処理部２１は、バンド領域データを複数の分割データに分割してメインメモリー７にアドレスを異ならせて格納する処理を、複数のバンド領域データのそれぞれについて実行する。
【００５４】
分割処理部２１での処理について、バンド領域ＢＡ２２を例にして説明する。図６は、メインメモリー７に格納する画像データのうち、バンド領域ＢＡ２２に対応する画像データであるバンド領域データＭ２２を示す図である。バンド領域データは、バンド領域ＢＡに対応しており、例えば、バンド領域データＭ１(不図示)は、バンド領域ＢＡ１に対応し、バンド領域データＭ２(不図示)は、バンド領域ＢＡ２に対応する。複数のバンド領域データを区別する必要がある場合は、バンド領域データＭ１，Ｍ２，・・・と記載し、区別する必要がない場合は、バンド領域データＭと記載する。
【００５５】
分割処理部２１は、バンド領域データＭ２２を複数の分割データ、例えば、５つの分割データｍ１〜ｍ５に分割してメインメモリー７にアドレスを異ならせて格納する。このように画像データを細かく分割して、メインメモリー７の空いているアドレスに格納することにより、メインメモリー７のメモリー空間を有効利用することができる。
【００５６】
バンドディスクリプター処理部２３は、図２に示す複数のバンド領域ＢＡのそれぞれに割り当てられた複数のバンドディスクリプターＢＡＤを処理する。具体的には、バンドディスクリプター処理部２３は、メインメモリー７に画像データが格納される際に、バンド領域データＭに対応するバンド領域ＢＡに割り当てられたバンドディスクリプターＢＡＤに対して、分割データ情報を加えてメインメモリー７に格納する処理を、複数のバンドディスクリプターＢＡＤのそれぞれにおいて実行する。
【００５７】
このように、バンドディスクリプター処理部２３は、メインメモリー７に画像データが格納される際に、分割データ情報が含まれないバンドディスクリプターＢＡＤを生成し、これに分割データ情報を加えてメインメモリー７に格納する処理をする。
【００５８】
分割データ情報とは、複数の分割データのそれぞれの先頭画素のデータのメインメモリー７上のアドレス及び複数の分割データのそれぞれの画素数を示す情報である。これを図６に示すバンド領域データＭ２２を例に説明する。分割データｍ１〜ｍ５の先頭画素をそれぞれ、先頭画素ｐ１〜ｐ５とする。ここで、分割データｍ１の先頭画素ｐ１は、図２に示すブロック領域ＢＬ５の先頭の画素Ｐと一致し、図示しないがバンド領域ＢＡ２２の先頭画素と一致する。
【００５９】
バンド領域データＭ２２の分割データ情報は、分割データｍ１の先頭画素ｐ１のデータが格納されているメインメモリー７上のアドレス及び分割データｍ１に対応する領域の画素数(例えば１００００)、分割データｍ２の先頭画素ｐ２のデータが格納されているメインメモリー７上のアドレス及び分割データｍ２に対応する領域の画素数(例えば２００００)、・・・、分割データｍ５の先頭画素ｐ５のデータが格納されているメインメモリー７上のアドレス及び分割データｍ５に対応する領域の画素数により構成される。
【００６０】
図３に示すように、各バンドディスクリプターＢＡＤは、次の順番のバンドディスクリプターのメインメモリー７上のアドレスの情報及び分割データ情報を有する。したがって、バンドディスクリプターＢＡＤ１を読み出して、バンドディスクリプターＢＡＤ１に含まれる分割データ情報を基にして、複数の分割データをつなげてバンド領域データＭ１とし、次にバンドディスクリプターＢＡＤ２を読み出して、バンドディスクリプターＢＡＤ２に含まれる分割データ情報を基にして、複数の分割データをつなげてバンド領域データＭ２とし、残りのバンドディスクリプターＢＡＤについても同じ処理を繰り返すことにより、メインメモリー７に格納される前の画像データに戻すことができる。
【００６１】
図１に示す主・副走査方向ディスクリプター処理部２５は、メインメモリー７に画像データが格納される際に、図４に示す４個(ｍ個)の主走査方向ディスクリプターＭＳＤ、及び、図５に示す４個(ｎ個)の副走査方向ディスクリプターＶＳＤを生成し、メインメモリー７(記憶領域の一例)に格納する。
【００６２】
図１に示す画素データアクセス部２７は、分割データに分割されてメインメモリー７に格納されている画像データについて、画像を構成する各画素のデータである画素データへのアクセス処理をする。画素データアクセス部２７は、主・副走査方向ディスクリプター読出部２９、ブロックディスクリプター生成部３１、座標演算部３３、ブロック領域特定部３５、バンドディスクリプター読出部３７、バンド領域特定部４１、画素数演算部４３、分割データ特定部４５及びアドレス特定部４７を備える。
【００６３】
主・副走査方向ディスクリプター読出部２９は、メインメモリー７に格納されている主走査方向ディスクリプターＭＳＤ及び副走査方向ディスクリプターＶＳＤを読み出す。
【００６４】
ブロックディスクリプター生成部３１は、４個（ｍ個)の主走査方向ディスクリプターＭＳＤと４個(ｎ個)の副走査方向ディスクリプターＶＳＤとを組み合わせて、１６個(ｍ×ｎ個)のブロック領域ＢＬの任意のブロック領域ＢＬに割り当てられたブロックディスクリプターを生成する。
【００６５】
例えば、ブロック領域ＢＬ１に割り当てられるブロックディスクリプターを生成する場合、ブロックディスクリプター生成部３１は、主・副走査方向ディスクリプター読出部２９に対して、主走査方向ディスクリプターＭＳＤ１と副走査方向ディスクリプターＶＳＤ１とを、メインメモリー７から読み出す処理をさせる。主走査方向ディスクリプターＭＳＤ１と副走査方向ディスクリプターＶＳＤ１との組み合わせが、ブロック領域ＢＬ１に割り当てられたブロックディスクリプターである。また、例えば、ブロック領域ＢＬ５に割り当てられるブロックディスクリプターを生成する場合、ブロックディスクリプター生成部３１は、主・副走査方向ディスクリプター読出部２９に対して、主走査方向ディスクリプターＭＳＤ１と副走査方向ディスクリプターＶＳＤ２とを、メインメモリー７から読み出す処理をさせる。主走査方向ディスクリプターＭＳＤ１と副走査方向ディスクリプターＶＳＤ２との組み合わせが、ブロック領域ＢＬ５に割り当てられたブロックディスクリプターである。
【００６６】
各ブロックディスクリプターは、割り当てられたブロック領域ＢＬについてのブロック領域情報を含む。ブロック領域情報とは、ブロック領域ＢＬについて、主走査方向及び副走査方向の画素数、並びに、先頭画素の座標の情報である。例えば、ブロック領域ＢＬ５の場合、上述したように、主走査方向ディスクリプターＭＳＤ１と副走査方向ディスクリプターＶＳＤ２との組み合わせが、ブロックディスクリプターとなる。ブロック領域ＢＬ１の先頭画素の主走査方向の座標値、ブロック領域ＢＬ１の主走査方向の画素数、ブロック領域ＢＬ５の先頭画素の副走査方向の座標値、及び、ブロック領域ＢＬ５の副走査方向の画素数がブロック領域情報となる。
【００６７】
座標演算部３３は、アクセス対象となる画素データに対応する画素について、主走査方向Ｄ１及び副走査方向Ｄ２の座標を演算する。すなわち、座標演算部３３は、メインメモリー７に格納されている画像データを基にして形成される画像について、Ｎ番目(Ｎは正の整数)画素が位置する主走査方向Ｄ１及び副走査方向Ｄ２の座標を、その画像の主走査方向Ｄ１の画素数を基にして演算する。
【００６８】
ブロック領域特定部３５は、Ｎ番目画素が属するブロック領域ＢＬを特定する。詳細に説明すると、ブロック領域特定部３５は、座標演算部３３で演算されたＮ番目画素の座標、及び、ブロックディスクリプター生成部３１によって生成されたブロックディスクリプターに含まれるブロック領域情報を基にして、ｍ×ｎ個のブロック領域ＢＬのうちＮ番目画素が属するブロック領域ＢＬを特定する。
【００６９】
バンドディスクリプター読出部３７は、ブロック領域特定部３５で特定されたブロック領域ＢＬに割り当てられたブロックディスクリプターについて、そのブロックディスクリプターに含まれるバンドディスクリプター関係づけアドレスに格納されているバンドディスクリプターＢＡＤをメインメモリー７から読み出す。
【００７０】
バンド領域特定部４１は、複数のバンド領域ＢＡのうちＮ番目画素が属するバンド領域ＢＡ、及び、そのバンド領域ＢＡにおけるＮ番目画素の副走査方向Ｄ２上の位置を特定する。
【００７１】
画素数演算部４３は、バンド領域特定部４１で特定されたＮ番目画素が属するバンド領域ＢＡの先頭の画素からＮ番目画素までの画素数を演算する。
【００７２】
分割データ特定部４５は、バンドディスクリプター読出部３７によって読み出されたバンドディスクリプターＢＡＤに含まれる分割データ情報において、複数の分割データのうちＮ番目画素のデータが属する分割データを特定する。
【００７３】
アドレス特定部４７は、分割データ特定部４５で特定された分割データの先頭画素のデータのメインメモリー７上のアドレスからＮ番目画素のデータのメインメモリー７上のアドレスを特定する。
【００７４】
次に、本実施形態に係る画像処理装置１を用いて画像データをメインメモリー７へ格納する処理について説明する。図７は、この処理を説明するフローチャートである。図１に示すラインセンサー５によって主走査方向Ｄ１に原稿を走査して、１走査ラインずつ原稿を読み取ることにより、ラインセンサー５から原稿の画像データが出力される(ステップＳ１)。
【００７５】
主・副走査方向ディスクリプター処理部２５は、図４に示す４個の主走査方向ディスクリプターＭＳＤ及び図５に示す４個の副走査方向ディスクリプターＶＳＤを生成し、メインメモリー７上の予め割り当てられたアドレスに格納する(ステップＳ３)。
【００７６】
ステップＳ１において、ラインセンサー５から出力された画像データのうち、予め定められた数の走査ライン(例えば６４本の走査ライン)のスキャンで得られた画像データが、バンド領域データＭに相当する。ラインセンサー５から出力された画像データは、分割処理部２１へ送られる。バンド領域データＭ１(バンド領域ＢＡ１に対応)が分割処理部２１のバッファに蓄積されると、分割処理部２１は、バンド領域データＭ１を複数の分割データに分割してメインメモリー７にアドレスを異ならせて格納する処理をする(ステップＳ５)。
【００７７】
バンドディスクリプター処理部２３は、分割データ情報が含まれないバンドディスクリプターＢＡＤ１を生成し、これに、バンド領域データＭ１を構成する複数の分割データに関する分割データ情報を付加して、メインメモリー７に格納する(ステップＳ７)。
【００７８】
分割処理部２１は、分割処理部２１のバッファに次のバンド領域データＭ(ここではバンド領域データＭ２)が蓄積されているか判断する(ステップＳ９)。分割処理部２１によって次のバンド領域データＭが蓄積していると判断されれば(ステップＳ９でＹｅｓ)、ステップＳ５へ戻る。これに対して、分割処理部２１によって次のバンド領域データＭが蓄積していないと判断されれば(ステップＳ９でＮｏ)、すなわち最後のバンド領域データＭについてステップＳ５，Ｓ７の処理がされれば、画像データをメインメモリー７へ格納する処理が終了する。
【００７９】
以上説明したように、本実施形態に係る画像処理装置１よれば、画像データを分割データに分割してメインメモリー７に格納する際に、４個(ｍ個）の主走査方向ディスクリプターＭＳＤ、４個(ｎ個)の副走査方向ディスクリプターＶＳＤ、及び、複数のバンドディスクリプターＢＡＤをメインメモリー７に格納している。図５に示すように、ブロックディスクリプターを構成する副走査方向ディスクリプターＶＳＤは、バンドディスクリプター関係付けアドレスの情報を含む。したがって、ブロック領域ＢＬの先頭の画素を含むバンド領域ＢＡに割り当てられたバンドディスクリプターＢＡＤのアドレスを、そのブロック領域ＢＬに割り当てられたブロックディスクリプターから知ることができる。
【００８０】
メインメモリー７に格納されている複数のバンドディスクリプターＢＡＤのそれぞれは、次の順番のバンドディスクリプターＢＡＤのメインメモリー７上のアドレスの情報を含むので、ブロックディスクリプターを利用しなくても目的となるバンドディスクリプターＢＡＤへアクセスできる。しかし、この場合は１番目のバンドディスクリプターＢＡＤから順番にバンドディスクリプターＢＡＤを検索しなければならない。本実施形態によれば、ブロックディスクリプターを利用することにより、途中のバンドディスクリプターＢＡＤから検索を開始して目的となるバンドディスクリプターＢＡＤへアクセスすることができる。したがって、バンドディスクリプターＢＡＤへのアクセス時間を短くすることが可能となる。
【００８１】
次に、メインメモリー７に格納されている画像データに含まれるＮ番目(Ｎは正の整数)画素のデータへのアクセスについて説明する。図８は、このアクセスを説明するフローチャートである。ここでは、Ｎ番目画素を７０万番目画素、画像データの主走査方向Ｄ１の画素数(言い換えればバンド領域ＢＡの主走査方向Ｄ１の画素数)を５００、バンド領域データＭに相当する走査ラインの数を６４本とする。
【００８２】
座標演算部３３は、メインメモリー７に格納されている画像データによって形成される画像について、７０万番目画素が位置する主走査方向Ｄ１及び副走査方向Ｄ２の座標を、画像データの主走査方向Ｄ１の画素数(５００)を基にして演算する(ステップＳ２１)。
【００８３】
７０００００÷５００＝１４００
１４００は、主走査方向Ｄ１の座標(ｘ座標)が０、副走査方向Ｄ２の座標(ｙ座標)が１４００を意味している。したがって、図２に示すように、７０万番目画素Ｑが位置する座標は(０、１４００)である。
【００８４】
ブロック領域特定部３５は、画素Ｑが、いずれのブロック領域ＢＬに属するかについて、ブロック領域ＢＬ１から順番に判定する(ステップＳ２３)。ブロックディスクリプター生成部３１は、主・副走査方向ディスクリプター読出部２９に対して、主走査方向ディスクリプターＭＳＤ１と副走査方向ディスクリプターＶＳＤ１とを、メインメモリー７から読み出す処理をさせる。主走査方向ディスクリプターＭＳＤ１と副走査方向ディスクリプターＶＳＤ１との組み合わせが、ブロック領域ＢＬ１に割り当てられたブロックディスクリプターである。
【００８５】
このブロックディスクリプターによれば、図４及び図５に示すように、ブロック領域ＢＬ１について、先頭画素の主走査方向の座標値「０」、先頭画素の副走査方向の座標値「０」、主走査方向の画素数「１２５」、副走査方向の画素数「１３４４」である。従って、ブロック領域ＢＬ１は、主走査方向の座標値が「０」から「１２４」まで、副走査方向の座標値が「０」から「１３４３」までの領域である。よって、ブロック領域特定部３５は、画素Ｑ(０、１４００)が、ブロック領域ＢＬ１に属しないと判定する。
【００８６】
ブロック領域特定部３５は、ブロック領域ＢＬ１以降のブロック領域ＢＬについても、同様にして、画素Ｑがブロック領域ＢＬに属するか否かを判定する。本実施形態では、画素Ｑがブロック領域ＢＬ５に属することが判定される。詳しく説明する。ブロックディスクリプター生成部３１は、主・副走査方向ディスクリプター読出部２９に対して、主走査方向ディスクリプターＭＳＤ１と副走査方向ディスクリプターＶＳＤ２とを、メインメモリー７から読み出す処理をさせる。主走査方向ディスクリプターＭＳＤ１と副走査方向ディスクリプターＶＳＤ２との組み合わせが、ブロック領域ＢＬ５に割り当てられたブロックディスクリプターである。
【００８７】
このブロックディスクリプターによれば、ブロック領域ＢＬ５について、先頭画素の主走査方向の座標値「０」、先頭画素の副走査方向の座標値「１３４４」、主走査方向の画素数「１２５」、副走査方向の画素数「１３４４」である。従って、ブロック領域ＢＬ５は、主走査方向の座標値が「０」から「１２４」まで、副走査方向の座標値が「１３４４」から「２６８７」までの領域である。よって、ブロック領域特定部３５は、画素Ｑ(０、１４００)がブロック領域ＢＬ５に属すると判定する。
【００８８】
次に、バンドディスクリプター読出部３７は、ステップＳ２３で特定されたブロック領域ＢＬ５に割り当てられたブロックディスクリプターについて、このブロックディスクリプターを構成する副走査方向ディスクリプターＶＳＤ２に含まれるバンドディスクリプター関係づけアドレスＡｄｄ７２に格納されているバンドディスクリプターＢＡＤ２２をメインメモリー７から読み出す(ステップＳ２５)。
【００８９】
次に、バンド領域特定部４１は、複数のバンド領域ＢＡのうち７０万番目画素Ｑが属するバンド領域ＢＡ、及び、そのバンド領域ＢＡにおける７０万番目画素Ｑの副走査方向Ｄ２上の位置を特定する(ステップＳ２７)。７０万番目画素Ｑの副走査方向Ｄ２上の位置とは、そのバンド領域ＢＡにおいて７０万番目画素Ｑが位置する行を意味する。ステップＳ２７の特定は、バンド領域ＢＡの副走査方向Ｄ２の画素数６４、及び、ステップＳ２１で演算された７０万番目画素Ｑの副走査方向Ｄ２の座標１４００を基にして実行される。
【００９０】
１４００÷６４＝２１．８７５
２１．８７５は、２１個のバンド領域ＢＡ＋０．８７５個のバンド領域ＢＡを意味する。したがって、７０万番目画素Ｑは、２２番目のバンド領域ＢＡであるバンド領域ＢＡ２２に属している。バンド領域ＢＡ２２における７０万番目画素の副走査方向Ｄ２の位置は、バンド領域ＢＡ２２の５６(＝６４×０．８７５)行目となる。
【００９１】
次に、画素数演算部４３は、ステップＳ２７で特定された７０万番目画素Ｑが属するバンド領域ＢＡ２２の先頭の画素(すなわち分割データｍ１の先頭画素ｐ１)から７０万番目画素Ｑまでの画素数を演算する(ステップＳ２９)。この演算は、ステップＳ２１で演算された７０万番目画素Ｑの主走査方向Ｄ１の座標０、ステップＳ２７で特定された副走査方向Ｄ２の位置(５６行目)、及び、画像データの主走査方向Ｄ１の画素数(言い換えればバンド領域ＢＡの主走査方向Ｄ１の画素数)５００を基にして実行される。
【００９２】
０＋５００×５６＝２８０００
２８０００がステップＳ２９で演算された画素数である。
【００９３】
次に、ステップＳ２５で読み出された図３に示すバンドディスクリプターＢＡＤ２２に含まれる分割データ情報を利用して、分割データ特定部４５は、複数の分割データｍ１〜ｍ５のうち７０万番目画素データＱが属する分割データを特定する(ステップＳ３１)。その特定は、バンドディスクリプターＢＡＤ２２の分割データ情報に含まれる複数の分割データｍ１〜ｍ５のそれぞれの画素数(図６)、及び、ステップ３１で演算された画素数２８０００を基にして実行される。
【００９４】
１００００(分割データｍ１の画素数)＜２８０００
７０万番目画素Ｑのデータは、分割データｍ１に属さない。
【００９５】
１００００＋２００００(分割データｍ２の画素数)＞２８０００
したがって、７０万番目画素Ｑのデータは、図６に示すように分割データｍ２に属する。
【００９６】
次に、アドレス特定部４７は、分割データｍ２の先頭画素ｐ２のデータのメインメモリー７上のアドレスから７０万番目画素Ｑのデータのメインメモリー７上のアドレスを特定する(ステップＳ３３)。この特定は、ステップＳ２９で演算された画素数２８０００を基にして実行される。
【００９７】
ここでは、先頭画素ｐ２のデータのメインメモリー７上のアドレスから１８０００(＝２８０００−１００００)番目の画素のデータのメインメモリー７上のアドレスが、７０万番目画素Ｑのデータのアドレスである。
【００９８】
以上説明したように、本実施形態によれば、メインメモリー７に格納されているＮ番目画素のデータに対してバンドディスクリプターＢＡＤを利用してアクセスする場合に、ブロックディスクリプターを利用することによって、Ｎ番目画素が属するブロック領域ＢＬの先頭の画素を含むバンド領域ＢＡに割り当てられたバンドディスクリプターＢＡＤから開始できる。一方、もしブロックディスクリプターを利用しなければ、１番目のバンドディスクリプターＢＡＤから順番にＮ番目画素のデータに対応するバンドディスクリプターＢＡＤを検索してＮ番目画素のデータへアクセスしなければならない。バンドディスクリプターＢＡＤの数は、例えば数千なので、ブロックディスクリプターの数(例えば１０から数十)よりも相当多い。したがって、本実施形態によれば、ブロックディスクリプターを用いない場合よりも、Ｎ番目画素のデータへのアクセス時間を短くすることができる。
【００９９】
本実施形態の変形例を説明する。図９は、本実施形態の変形例に係る画像処理装置２のハードウェア構成を示すブロック図である。変形例に係る画像処理装置２を構成する要素のうち、図１に示す本実施形態に係る画像処理装置１を構成する要素と同じ要素については、同一符号を付している。
【０１００】
図１に示す本実施形態に係る画像処理装置１では、ｍ個の主走査方向ディスクリプターＭＳＤ及びｎ個の副走査方向ディスクリプターＶＳＤを、メインメモリー７に格納している。これに対して、変形例に係る画像処理装置２では、ｍ個の主走査方向ディスクリプターＭＳＤ及びｎ個の副走査方向ディスクリプターＶＳＤを、ＡＳＩＣ１１に備えられるＳＲＡＭ５１に格納している。
【０１０１】
ＳＲＡＭ５１は、例えば、ラインセンサー５から出力された画像データが一時的に格納される。
【０１０２】
ブロックディスクリプター生成部３１は、ＳＲＡＭ５１に格納されているｍ個の主走査方向ディスクリプターＭＳＤのそれぞれのアドレスとｎ個の副走査方向ディスクリプターＶＳＤのそれぞれのアドレスを保持している。ブロックディスクリプター生成部３１は、ＳＲＡＭ５１から主走査方向ディスクリプターＭＳＤと副走査方向ディスクリプターＶＳＤとを読み出して、ｍ×ｎ個のブロック領域ＢＬの任意のブロック領域ＢＬに割り当てられたブロックディスクリプターを生成する。
【０１０３】
ｍ個の主走査方向ディスクリプターＭＳＤ及びｎ個の副走査方向ディスクリプターＶＳＤの全部のサイズは、ｍ×ｎ個のブロックディスクリプターの全部のサイズよりも、かなり小さいので、メインメモリー７でなく、ＡＳＩＣ１１のＳＲＡＭ５１に格納することができる。これにより、ｍ個の主走査方向ディスクリプターＭＳＤのそれぞれに、次に読み出す順番の主走査方向ディスクリプターＭＳＤのメインメモリー７上のアドレスの情報を含める必要がなくなる。同様に、ｎ個の副走査方向ディスクリプターＶＳＤのそれぞれに、次に読み出す順番の副走査方向ディスクリプターＶＳＤのメインメモリー７上のアドレスの情報を含める必要がなくなる。従って、ｍ個の主走査方向ディスクリプターＭＳＤ及びｎ個の副走査方向ディスクリプターＶＳＤの全部のサイズをさらに小さくすることができる。
【符号の説明】
【０１０４】
１，２  画像処理装置
７  メインメモリー(記憶領域の一例)
５１  ＳＲＡＭ(記憶領域の一例)
ＢＬ，ＢＬ１〜ＢＬ１６  ブロック領域
ＢＡ，ＢＡ１，ＢＡ２，ＢＡ２１，ＢＡ２２  バンド領域
ＭＳＤ，ＭＳＤ１〜ＭＳＤ４  主走査方向ディスクリプター
ＶＳＤ，ＶＳＤ１〜ＶＳＤ４  副走査方向ディスクリプター
ＢＡＤ，ＢＡＤ１〜ＢＡＤ３，ＢＡＤ２１〜ＢＡＤ２３  バンドディスクリプター
Ｐ  ブロック領域ＢＬ５の先頭の画素
Ｍ２２  バンド領域データ
ｍ１〜ｍ５  分割データ
Ｑ  ７０万番目画素
【図１】
0006002649.tif 000002
【図２】
0006002649.tif 000003
【図３】
0006002649.tif 000004
【図４】
0006002649.tif 000005
【図５】
0006002649.tif 000006
【図６】
0006002649.tif 000007
【図７】
0006002649.tif 000008
【図８】
0006002649.tif 000009
【図９】
0006002649.tif 000010