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