(57)【要約】【課題】  点順次形式の画像データに対応したカラー処理を基本とする画像処理装置において、単色処理のときに画像処理の性能を分散並列化して高速化すること。【解決手段】  制御装置は、複数の色成分を点順次形式でそれぞれ格納することができる複数のフィールドを含む画像処理コマンドを受け付けて、その画像処理コマンドに含まれる画素値を用いて画像処理を実行する処理装置に、単色画像データの画像処理を実行させる。制御装置は、単色画像データから、色成分の数に応じた数の複数の部分画像を抽出し、複数の部分画像のそれぞれから単色画素値を取得し、画像処理コマンドの複数のフィールドのそれぞれへ格納する。生成された画像処理コマンドは処理装置へ入力され、画像処理コマンドに含まれる画素値を用いた画像処理が実行される。【選択図】  図１０
2015115837.tif 000002
【特許請求の範囲】
【請求項１】
複数の色成分を点順次形式でそれぞれ格納することができる複数のフィールドを含む画像処理コマンドを受け付けて、当該画像処理コマンドに含まれる画素値を用いて画像処理を実行する処理装置に、単色画像データの画像処理を実行させるための制御を行う制御装置であって、
単色画像データから、前記色成分の数に応じた数の複数の部分画像を抽出する抽出手段と、
前記複数の部分画像のそれぞれから単色画素値を取得して前記複数のフィールドのそれぞれへ格納して画像処理コマンドを生成する生成手段と、
生成された前記画像処理コマンドを前記処理装置へ入力し、当該画像処理コマンドに含まれる画素値を用いた画像処理を実行させる入力手段と、
を有することを特徴とする制御装置。
【請求項２】
前記処理装置から、前記複数の部分画像のそれぞれに対応する、前記画像処理の後の単色画素値を含むデータを受け付けて当該画像処理の後の単色画素値を集約し、前記画像処理を施された後の単色画像データを生成する集約手段をさらに有する、
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記画像処理の前の単色画素値と、前記画像処理の後の単色画素値との少なくともいずれかを一時的に記憶する記憶手段をさらに有する、
ことを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記画像処理の後の単色画素値を一時的に記憶する記憶手段をさらに有し、
前記集約手段は、前記複数の部分画像のそれぞれに対応する前記画像処理の後の単色画素値を、前記記憶手段に一時的に記憶して集約し、前記画像処理を施した後の１つの単色画像データを生成し、
生成された前記１つの単色画像データがＲＡＭに書き込まれる、
ことを特徴とする請求項２に記載の制御装置。
【請求項５】
前記記憶手段は、１つの前記単色画像データについての前記画像処理の前の単色画素値をＲＡＭから読み出して記憶し、
前記抽出手段は、前記記憶手段に記憶された１つの前記単色画像データから、前記複数の部分画像を抽出する、
ことを特徴とする請求項３に記載の制御装置。
【請求項６】
前記抽出手段は、画像の領域における少なくとも１つの辺の長さが等しい前記複数の部分画像を抽出し、
前記記憶手段は、当該複数の部分画像を含む１つの前記単色画像データをＲＡＭから読み出して記憶する、
ことを特徴とする請求項５に記載の制御装置。
【請求項７】
前記記憶手段は、前記複数の部分画像のそれぞれについての前記画像処理の後の単色画素値を記憶し、
当該複数の部分画像のそれぞれについての前記画像処理の後の単色画素値が、それぞれＲＡＭに書き込まれ、当該ＲＡＭにおいて当該複数の部分画像についての前記画像処理の後の単色画素値が集約されて、前記画像処理を施された後の１つの前記単色画像データが生成される、
ことを特徴とする請求項３に記載の制御装置。
【請求項８】
前記抽出手段は、ＲＡＭに格納された１つの前記単色画像データから前記複数の部分画像をそれぞれ読み出して抽出し、
読み出された前記複数の部分画像は、前記記憶手段に記憶される、
ことを特徴とする請求項３に記載の制御装置。
【請求項９】
前記抽出手段は、前記単色画像データを分割することにより、前記複数の部分画像を抽出する、
ことを特徴とする請求項１から８のいずれか１項に記載の制御装置。
【請求項１０】
前記抽出手段は、前記単色画像データを前記色成分の数より多くの画像に分割して、分割により得られた画像から、前記複数の部分画像を選択して抽出する、
ことを特徴とする請求項１から８のいずれか１項に記載の制御装置。
【請求項１１】
前記抽出手段は、前記単色画像データを、バンド領域を単位として分割して、前記複数の部分画像を抽出する、
ことを特徴とする請求項９または１０に記載の制御装置。
【請求項１２】
前記複数の部分画像は、互いに重なる領域を有する、
ことを特徴とする請求項１から１１のいずれか１項に記載の制御装置。
【請求項１３】
前記重なる領域は、前記画像処理で処理の対象となる画素の領域に応じて定められる、
ことを特徴とする請求項１２に記載の制御装置。
【請求項１４】
前記生成手段は、前記複数の部分画像のそれぞれから、当該部分画像のうちの対応する位置の前記単色画素値を取得して、前記画像処理コマンドを生成する、
ことを特徴とする請求項１から１３のいずれか１項に記載の制御装置。
【請求項１５】
前記画像処理は、フィルタ処理を含む、
ことを特徴とする請求項１から１４のいずれか１項に記載の制御装置。
【請求項１６】
前記画像処理は、解像度変換を含む、
ことを特徴とする請求項１から１５のいずれか１項に記載の制御装置。
【請求項１７】
前記複数の部分画像は、前記解像度変換の初期位相に応じて定まる互いに重なる領域を有する、
ことを特徴とする請求項１６に記載の制御装置。
【請求項１８】
前記解像度変換における初期位相を前記複数の部分画像のそれぞれに対して設定する設定手段をさらに有する、
ことを特徴とする請求項１６に記載の制御装置。
【請求項１９】
前記複数の色成分はＲＧＢであり、前記色成分の数は３である、
ことを特徴とする請求項１から１８のいずれか１項に記載の制御装置。
【請求項２０】
前記複数の色成分はＣＭＹＫであり、前記色成分の数は４である、
ことを特徴とする請求項１から１８のいずれか１項に記載の制御装置。
【請求項２１】
請求項１から２０のいずれか１項に記載の制御装置と、前記処理装置とを含むことを特徴とする画像処理装置。
【請求項２２】
複数の色成分を点順次形式でそれぞれ格納することができる複数のフィールドを含む画像処理コマンドを受け付けて、当該画像処理コマンドに含まれる画素値を用いて画像処理を実行する処理装置に、単色画像データの画像処理を実行させるための制御を行う制御装置の制御方法であって、
抽出手段が、単色画像データから、前記色成分の数に応じた数の複数の部分画像を抽出する抽出工程と、
生成手段が、前記複数の部分画像のそれぞれから単色画素値を取得して前記複数のフィールドのそれぞれへ格納して画像処理コマンドを生成する生成工程と、
入力手段が、生成された前記画像処理コマンドを前記処理装置へ入力し、当該画像処理コマンドに含まれる画素値を用いた画像処理を実行させる入力工程と、
を有することを特徴とする制御方法。
【請求項２３】
複数の色成分を点順次形式でそれぞれ格納することができる複数のフィールドを含む画像処理コマンドを受け付けて、当該画像処理コマンドに含まれる画素値を用いて画像処理を実行する処理装置に、単色画像データの画像処理を実行させるための制御を行う制御装置に備えられたコンピュータに、
単色画像データから、前記色成分の数に応じた数の複数の部分画像を抽出する抽出工程と、
前記複数の部分画像のそれぞれから単色画素値を取得して前記複数のフィールドのそれぞれへ格納して画像処理コマンドを生成する生成工程と、
生成された前記画像処理コマンドを前記処理装置へ入力し、当該画像処理コマンドに含まれる画素値を用いた画像処理を実行させる入力工程と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御装置、画像処理装置、制御方法、およびプログラムに関する。
【背景技術】
【０００２】
画像を形成して出力する際に、空間フィルタ処理などの局所（近傍）画像処理が適用される場合がある。この局所画像処理は、処理対象となる画素（以下、処理画素と略称する）を含む空間フィルタ領域に含まれる画素を用いて、何らかの演算を行なう画像処理のことである。局所（近傍）画像処理により、例えば、エッジ強調及びぼかし、入力した画像の拡大又は縮小により所望の大きさの画像に変換する解像度変換などを行うことができる。なお、以下の説明では、このような局所（近傍）画像処理のことを、「フィルタ処理」と呼ぶ。
【０００３】
画像処理装置は、入力された画像に対して上述のようなフィルタ処理を施す機能のためのフィルタ回路を備える。一般的に、スキャナ等の読取り機器、プリンタ等の印刷機器やディスプレイ等の表示機器の多くは、カラー画像／カラー原稿（例えばＲＧＢカラー画像、ＣＭＹＫカラー画像などの複数色を有する画像）に対応可能である。このため、このような機器の多くに搭載される画像処理装置は、カラー処理を基本として装置が構成されることが多い。画像処理装置は、例えば、ＲＧＢカラー画像に対しては３色を、ＣＭＹＫカラー画像に対しては４色を、処理するフィルタ回路を備える。一般的なフィルタ回路は、その回路を１つの処理のみでなく他の処理にも使用できるように、例えば、フィルタ処理で使用するフィルタ係数はレジスタ設定などで任意に設定変更できるように設計されることが多い。そのため、各色に対応するフィルタ回路は同一回路でありうる。画像処理装置は、例えば、ＲＧＢカラー画像に対しては３基、ＣＭＹＫカラー画像に対しては４基のように、対応する色の数分だけフィルタ回路を並列に備えることができる。また、機器が、複数の色のそれぞれに対応する複数の画像処理装置を有しうる。例えば、画像処理装置が１色分のフィルタ回路を備えるのみである場合であっても、対応する色の数分だけ画像処理装置を有することにより、機器全体ではカラー処理に対応することができる。このようにカラー処理を基本とする処理装置において、色数に応じた並列化の処理単位（粒度）は、小さくは回路レベルから、大きくは処理装置等のシステムレベルに至るまで多岐に渡る。
【０００４】
このようなカラー処理を基本とした処理装置に、モノクロ（単色）画像が入力される場合、上述のように並列化された処理単位（粒度）を効率的に利用することが考えられる。処理単位を効率的に利用することにより、画像処理装置が、カラー画像の処理速度に比べて単色画像の処理速度を向上できる。
【０００５】
例えば、特許文献１に記載の技術は、画像処理装置が複数の画像処理プロセッサを有し、まず入力原稿が単色原稿であるかカラー原稿であるかを判定する。そして、単色原稿に対しては、入力画像データを分割して複数の画像処理プロセッサに割り振ることで分散並列処理が行われる。また、特許文献１には、モノクロ（単色）画像が複数のページにわたる場合、そのページ毎の処理を複数の画像処理プロセッサが実行することにより、分散並列処理による高速化を達成することについても記載されている。
【０００６】
また、特許文献２には、画像処理装置が複数の縮小回路を有し、入力原稿が複数ページのモノクロ原稿であれば、その複数ページの原稿を複数の縮小回路にそれぞれ割り振ることで、分散並列処理により原稿縮小処理を高速化することが記載されている。なお、特許文献２においても、一部のページを分割して、それぞれ複数の縮小回路に割り振ることにより、分散並列処理を行うことが記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−１４８９９６号公報
【特許文献２】特開２００９−１４１４３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
カラー画像／カラー原稿のデータ格納形式の一つに点順次形式があり、スキャナ、プリンタ、ディスプレイ等の組込み機器に広く採用されている。点順次形式では、１画素を構成する複数の色成分が１つのデータ単位にパッキングされて取り扱われる。このため、点順次形式のデータ格納方式には、１回のデータアクセスによって、１画素を構成する複数の色成分を一度に読み出せるという利点がある。点順次形式のデータ格納方式が採用されている場合、画像処理装置は、１回に読み出せる複数の色成分をもつ１画素を１つの処理単位（粒度）として、画像処理を実行する。点順次形式に対応した画像処理装置は、特に難しい制御をする必要はなく、例えば１画素単位で同期しながらパイプライン動作するような、一般的な画像処理回路を備えることにより実現できる。
【０００９】
しかし、特許文献１及び特許文献２には、このような点順次形式の画像データに対応したカラー処理を基本とする画像処理装置における、モノクロ（単色）処理のときに画像処理の性能を分散並列化して高速化する手法については記載されていない。
【００１０】
本発明は、このような事情に鑑みてなされたもので、点順次形式の画像データに対応したカラー処理を実行可能な画像処理装置において、単色処理のときに画像処理の性能を分散並列化して高速化する技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明による制御装置は、複数の色成分を点順次形式でそれぞれ格納することができる複数のフィールドを含む画像処理コマンドを受け付けて、当該画像処理コマンドに含まれる画素値を用いて画像処理を実行する処理装置に、単色画像データの画像処理を実行させるための制御を行う制御装置であって、単色画像データから、前記色成分の数に応じた数の複数の部分画像を抽出する抽出手段と、前記複数の部分画像のそれぞれから単色画素値を取得して前記複数のフィールドのそれぞれへ格納して画像処理コマンドを生成する生成手段と、生成された前記画像処理コマンドを前記処理装置へ入力し、当該画像処理コマンドに含まれる画素値を用いた画像処理を実行させる入力手段と、を有する。
【発明の効果】
【００１２】
本発明によれば、点順次形式の画像データに対応したカラー処理を基本とする画像処理装置において、単色処理のときに画像処理の性能を分散並列化して高速化することができる。
【図面の簡単な説明】
【００１３】
【図１】画像処理装置の構成例を示すブロック図。
【図２】画像処理部の構成例を示すブロック図。
【図３】バンド処理の対象となるバンド領域の例を示す図。
【図４】バンド処理の対象となるバンド領域の例を示す図。
【図５】バンド処理の対象となるバンド領域の例を示す図。
【図６】画像データの格納例とデータ構造の一例を説明する図。
【図７】画像データの格納例とデータ構造の別の例を説明する図。
【図８】画像データの入出力の動作の一例を示す図。
【図９】画像処理コマンドの構成例を示す図。
【図１０】単色画像の分割とコマンド生成の一例を説明する図。
【図１１】単色画像の分割とコマンド生成の別の例を説明する図。
【図１２】単色画像の分割とコマンド生成のさらに別の例を説明する図。
【図１３】画像処理回路の動作の一例を説明するブロック図。
【図１４】単色画像の処理の流れを示すフローチャート。
【図１５】部分画像の抽出処理の流れを示すフローチャート。
【図１６】部分画像の抽出処理の流れを示すフローチャート。
【図１７】解像度変換回路の動作の一例を説明するブロック図。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。以下の説明では、まず、以下で説明する各実施形態に係る画像処理装置の構成及びカラー画像に対する処理などを説明し、その後に、実施形態ごとのモノクロ画像（単色画像）に対する処理について説明する。
【００１５】
（画像処理装置の構成）
図１は、以下で説明する各実施形態で用いられる画像処理装置の構成例を示すブロック図である。画像処理装置は、例えば、ＣＰＵ回路部１００、画像読み取り部１２０、画像処理部１５０を有する。
【００１６】
画像読み取り部１２０は、例えば、レンズ１２４、ＣＣＤセンサ１２６、及びアナログ信号処理部１２７を有する。画像読み取り部１２０では、レンズ１２４を介してＣＣＤセンサ１２６に原稿１１０の画像情報が結像され、ＣＣＤセンサ１２６によりその画像情報がＲ（Ｒｅｄ）、Ｇ（Ｇｒｅｅｎ）、Ｂ（Ｂｌｕｅ）のアナログ電気信号に変換される。アナログ電気信号に変換された画像情報は、アナログ信号処理部１２７に入力され、Ｒ、Ｇ、Ｂの色成分毎に補正等が行われた後にアナログ／デジタル変換（Ａ／Ｄ変換）される。こうして、デジタル化されたフルカラーのデジタル画像信号（画素値）が生成される。生成されたデジタル画像信号は、映像入力部１３０へ入力され、その後、ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）１９２へ入力される。
【００１７】
ＤＭＡＣ１９２は、ＣＰＵ１０２により予め動作が設定されており、共有バス１９０を介して、入力されたデジタル画像信号をＣＰＵ回路部１００のメモリ（ＲＡＭ１０６）に記憶させる。なお、以下では、複数の画素についてのデジタル画像信号を、１枚の画像や一部の画像領域を形成するように集約したデータを、画像データと呼ぶ。ここでは、デジタル画像信号は画像データの形式でＲＡＭ１０６に記憶されるものとする。画像処理を行う場合、ＣＰＵ１０２は、ＤＭＡＣ１９４を起動してＲＡＭ１０６に記憶された画像データを読み出させ、処理の対象となる画素に対応するデジタル画像信号を画像処理部１５０に入力させる。
【００１８】
画像処理部１５０は、データの処理を行う処理装置であり、例えば、入力されたデジタル画像信号に対して、例えば、スキャナなどのセンサ・デバイスの読み取り素子の個体差の補正と入力ガンマ補正などの色補正とを行い、画像データを生成する。そして、ＤＭＡＣ１９６は、これらの処理が施された画像データをＲＡＭ１０６に格納する。なお、ＤＭＡＣ１９６の制御については、例えばＣＰＵ１０２が予めＤＭＡＣ１９６の動作を設定し、また、ＣＰＵ１０２がＤＭＡＣ１９６を起動するようにする。ＤＭＡＣ１９６の動作は、例えば処理後の画像データをＲＡＭ１０６へ書き込むように設定しておく。
【００１９】
これにより、画像処理部１５０は、例えば、入力色補正処理、空間フィルタ処理、色空間変換、濃度補正処理、及び中間調処理などの、画像の印刷のための画像処理を、入力されたデジタル画像信号に対して実行する。そして、画像処理部１５０は、印刷可能な画像データを生成し、その画像データを、ＤＭＡＣ１９６を通じてＲＡＭ１０６に格納する。
【００２０】
ＤＭＡＣ１９８は、ＲＡＭ１０６に格納された画像処理済みの画像データを読み出して画像印刷部１７０へ出力する。画像印刷部１７０は例えばプリンタである。ＤＭＡＣ１９８の設定は例えばＣＰＵ１０２が行う。画像印刷部１７０は、例えば、インクジェットヘッドやサーマルヘッド等を使用した印刷出力部（不図示）を有する。そして、入力された画像データのデジタル画像信号に基づいて紙上に画像を記録する。なお、上述の説明では、画像印刷部１７０を用いる例を説明したがこれに限られない。例えば、映像入力部１３０や映像表示部１６０等を用いてもよく、この場合、入力された映像に対して所定の画像（映像）処理が施され、処理後の映像がディスプレイなどの表示装置（不図示）に表示される。
【００２１】
ＣＰＵ回路部１００は、演算制御用のＣＰＵ１０２、固定データやプログラムを格納するＲＯＭ１０４、データの一時保存やプログラムのロードに使用されるＲＡＭ１０６、及び外部記憶装置１０８等を備える。ＣＰＵ回路部１００は、画像読み取り部１２０、画像処理部１５０、及び画像印刷部１７０等を制御し、画像処理装置のシーケンスを統括的に制御する。外部記憶装置１０８は、画像処理装置が使用するパラメータやプログラムや補正データを記憶するディスク等の記憶媒体であり、ＲＡＭ１０６のデータやプログラム等は、外部記憶装置１０８からロードされてもよい。
【００２２】
（画像処理部の構成）
続いて、画像データに対する画像処理を実行する画像処理部１５０について、図２を用いて説明する。なお、画像処理部１５０の処理の実行に先立って、ＣＰＵ１０２によりＤＭＡＣ１９４が起動され、ＤＭＡＣ１９４がＲＡＭ１０６から画像データが読み出される。画像データのデータ構造については後述する。
【００２３】
読み出された画像データは、入力ポート１５１を介して、画像処理部１５０の画像入出力部１５２へ入力される。画像入出力部１５２に含まれる画像入力部１５２１は、画像データを取得すると、取得した画像データを、中間バッファ制御部１５２２に含まれる中間バッファの記憶領域に記憶させる。そして、画像入力部１５２１は、中間バッファに一時的に記憶された画像データを読み出しながら、後述する点順次形式の画素値のデータを含む画像処理コマンドを生成し、入力画像処理コマンド１５５として画像処理実行部１５３へ入力する。
【００２４】
画像処理実行部１５３は、入力された画像処理コマンド１５５に対して所定の画像処理を実行して、画像処理後の画素値のデータを含む画像処理コマンド１５６を画像入出力部１５２へ出力する。画像処理実行部１５３の詳細については後述する。このとき、入力画像処理コマンド１５５および出力画像処理コマンド１５６は、予め定められた点順次形式の複数の色成分に対応する画素値のデータを含む画像処理コマンドである。そして、画像処理実行部１５３は、例えば、このコマンド単位で同期しながら動作するパイプライン回路でありうる。
【００２５】
ここで、画像データは複数の点順次形式の画素値を含んで構成される。画像入出力部１５２は、複数の画素値から、複数の画像処理コマンドを生成して画像処理実行部１５３に入力する。また、画像入出力部１５２は、画像処理実行部１５３から出力された、画像処理が実行された後の画素値を含む複数の画像処理コマンド１５６を受け取り、１つの画像処理コマンド１５６から点順次形式の画素値を抜き出す。そして、画像入出力部１５２は、抜き出した画素値を中間バッファ制御部１５２２内の中間バッファに一時的に格納する。画像入出力部１５２は、このような記憶処理を繰り返し、複数の画像処理コマンド１５６から複数の画素値を抽出して、複数の画素値を集約して画像データを形成する。そして、画像入出力部１５２は、形成された画像データを中間バッファから読み出し、画像処理後の出力画像データとして、出力ポート１５４を介してＤＭＡＣ１９６へ送出する。ＤＭＡＣ１９６は上述の通り、ＣＰＵ１０２により既に起動されており、受け取った出力画像データをＲＡＭ１０６へ書き出す。
【００２６】
すなわち、画像処理部１５０では、画像入出力部１５２を介してＤＭＡＣ１９４から画像データを取得し、画像処理実行部１５３で画像に対する画像処理を実行し、データ処理後の画像データを、画像入出力部１５２を介してＤＭＡＣ１９６へ出力する。このようにして、画像処理部１５０は、画像処理装置内に含まれる画像データに画像処理を施し、処理後の画像データを画像処理装置へ戻すこととなる。
【００２７】
（領域分割手法の一例としてのバンド処理）
次に、以下で説明する各実施形態において用いられうる、画像データの領域分割について説明する。本実施形態では、領域分割手法の１つであるバンド処理を用いるものとする。以下、バンド処理について、図３〜図５を用いて説明する。バンド処理では、例えば、図３に示されるように、１枚の画像データ３００が帯状のバンド領域３０１〜３０４に分割され、このバンド領域毎に逐次的に各種の画像処理が実行される。なお、バンド領域は、画像データを主走査方向または副走査方向のいずれかにおいて分割したものであり、バンド領域と画像データとは、主走査方向または副走査方向のいずれかにおいて長さが一致する。例えば、図３では、画像データは副走査方向において分割され、画像データとバンド領域とでは、主走査方向について同一の長さを有し、副走査方向において異なる長さを有する。以下では、この分割された細長い領域をバンド領域と呼び、バンド領域に含まれるデータが展開される記憶領域をバンドメモリと呼び、画像データを分割する処理をバンド分割と呼ぶ。バンドメモリは、ＲＡＭ１０６内に記憶領域として確保されてもよく、また、システム上の適当な記憶装置内の領域として確保されてもよい。なお、ここでは、説明を簡潔にするためにバンドメモリがＲＡＭ１０６内に確保される場合の例について説明する。
【００２８】
また、以下では、図３の（ｅ）に示すように、画像データの座標系（主走査方向−副走査方向）を、長さ方向、高さ方向という新たな座標系（バンド領域座標系）によって定義し、バンド領域を長さ×高さで表現する。バンド領域の長さ、すなわちバンド領域の長さ方向の一辺の大きさは、画像データの主走査方向の長さ、または副走査方向の長さの何れかの値とする。また、バンド領域の高さ、すなわちバンド領域の高さ方向の一辺の大きさは任意の値となる。例えば、図３では、長さ方向は主走査方向であり、高さ方向は副走査方向である。これに対し、図５のように、例えば画像データを主走査方向において分割した場合、図５の（ｓ）に示すように、長さ方向が副走査方向となり高さ方向が主走査方向となる。図５のようなバンド分割は、例えば画像データの主走査方向の大きさが副走査方向の大きさより大きい場合に行われるようにしてもよい。
【００２９】
バンド処理では、まず、図３における第１のバンド領域３０１が、ＲＡＭ１０６上のバンドメモリに展開されて、画像処理が施される。次に、第２のバンド領域３０２が、第１のバンド領域３０１が展開されたＲＡＭ１０６上のバンドメモリに上書き展開され、画像処理が施される。さらにその後、第３のバンド領域３０３が、第２のバンド領域３０２が展開されたＲＡＭ１０６上のバンドメモリに上書き展開され、画像処理が施される。最後に、第４のバンド領域３０４が、第３のバンド領域３０３が展開されたＲＡＭ１０６上のバンドメモリに上書き展開され、画像処理が施される。図３から明らかなように、バンド領域３０１〜３０４の長さは同じであるが、高さは同じでなくてもよい。したがって、メインメモリに確保される記憶領域であるバンドメモリの高さは、高さ方向の一辺の大きさが最も大きいバンド領域（図３の場合、第１のバンド領域３０１〜第３のバンド領域３０３）によって決定されてもよい。
【００３０】
なお、バンド処理では、各バンド領域間で隙間なく空間フィルタ処理などの局所（近傍）画像処理を行なうため、図４に示すように、各バンド領域が、それぞれ隣接する領域との境界で一部分が互いに重なり合うように構成されてもよい。この場合、例えば、各領域の高さの方向に１画素ずつ画素を走査することとして、局所（近傍）画像処理に必要な処理画素を保持する遅延メモリの容量が、各領域の高さで規定される。これにより、局所（近傍）画像処理で必要となる遅延メモリの省メモリ化を実現できる。
【００３１】
（カラー画像データのデータ構造）
次に、点順次形式のカラー画像データのデータ構造の一例について説明する。例えば、カラー画像の１画素が、Ｒ（Ｒｅｄ）、Ｇ（Ｇｒｅｅｎ）、Ｂ（Ｂｌｕｅ）で構成されるＲＧＢカラー画像データの場合、点順次形式では各色を１つの画像データにパッキングして、１つのデータ単位として取り扱う。同様に、カラー画像の１画素が、Ｃ（Ｃｙａｎ）、Ｍ（Ｍａｇｅｎｔａ）、Ｙ（Ｙｅｌｌｏｗ）、Ｋ（Ｂｌａｃｋ）で構成されるＣＭＹＫカラー画像データの場合も、点順次形式では、各色を１つの画像データにパッキングして、１つのデータ単位として取り扱う。
【００３２】
ここでは、上述のように、これらの点順次形式の画像データはＲＡＭ１０６に一時的に格納される。一般的に、ＲＡＭ１０６は安価なＤＲＡＭで構成されることが多い。このとき、上述のようにＤＭＡＣを介して画像データを読み書きする場合、ＤＲＡＭが性能を落とさずに読み書きできる単位で画像データが取り扱われるようにすることができる。この場合のＲＡＭ１０６の画像データの格納方法と、画像データのデータ構造との一例について、図６を用いて説明する。図６は、ＲＡＭ１０６（ＤＲＡＭ）上にデータが格納された状態を示している。図６の例では、あるデータ領域（ＩＭＧ＿ＡＲＥＡ＿ＳＴＲ＿ＡＤＤＲからＩＭＧ＿ＡＲＥＡ＿ＥＮＤ＿ＡＤＤＲまでの領域）が確保され、ここに画像処理に必要な種々の画像データが格納される。
【００３３】
図６は、点順次形式の画像データの構造のＲＡＭ１０６への格納例であり、ＲＡＭ１０６（ＤＲＡＭ）のデータ領域に、Ｓ１＿ＩＭＧ４２５とＳ２＿ＩＭＧ４２６の２種の画像データが格納された例を示している。例では、ＤＲＡＭの性能を落とさずに画像データを読み書きできるように、格納される画像データの容量の最小単位は、図６の４０８に示すように、３２ｂｉｔ×８ｗｏｒｄの３２Ｂｙｔｅとしている。すなわち、Ｓ１＿ＩＭＧ４２５とＳ２＿ＩＭＧ４２６の画像データの格納容量は３２Ｂｙｔｅの整数倍となる。なお、画像処理装置上でのＲＡＭ１０６の構成方法や、ＲＡＭ１０６を実現する記憶装置（ＤＲＡＭ等）の種類、そして実行する画像処理の種類等により、画像データの読み書きの単位は必ずしも３２Ｂｙｔｅでなくてもよい。なお、読み書きの単位が変更される場合、画像データを記憶する後述の中間バッファの容量の算出方法が変更される。
【００３４】
次に、画像データのデータ構造を詳しく説明する。画像データ４４０は点順次形式で、第１色Ｒ（Ｒｅｄ）、第２色Ｇ（Ｇｒｅｅｎ）、第３色Ｂ（Ｂｌｕｅ）の色成分を備える画素値を有する。画像データ４４０に含まれる１つの領域４４２は３２Ｂｙｔｅ単位のデータであり、１つの領域４４２の中には、複数個（８つ）の画素値がパッキングされている（４４４）。そして、これらの８つの画素値のそれぞれには、それぞれ１０ｂｉｔのＲ、Ｇ、Ｂの値が点順次形式でパッキングされる（４４６）。なお、この例では、残りの２ｂｉｔは、ＤＲＡＭへのアクセスを簡単にするための無効データであり、データを格納しないものとする。
【００３５】
さらに別のデータ構造を持つ画像データについて説明する。例えば、画像データ４９０は点順次形式で、第１色Ｃ（Ｃｙａｎ）、第２色Ｍ（Ｍａｇｅｎｔａ）、第３色Ｙ（Ｙｅｌｌｏｗ）、第４色Ｋ（Ｂｌａｃｋ）の色成分を備える画素値を有する。画像データ４９０に含まれる１つの領域４９２は３２Ｂｙｔｅ単位のデータであり、１つの領域４９２の中には、複数個（８つ）の画素値がパッキングされている（４９４）。そして、これらの８つの画素値のそれぞれには、それぞれ８ｂｉｔのＣ、Ｍ、Ｙ、Ｋの値が点順次形式でパッキングされる（４４７）。
【００３６】
なお、上述の例の１つの領域（４４２、４９２）は、８画素分の情報を含み、３２Ｂｙｔｅ単位のデータとして構成される。このとき、各領域は、領域４４２のように縦１画素、横８画素を単位とする領域として定められてもよく、領域４９４のように縦２画素、横４画素を単位とする領域として定められてもよい。この場合、画像データ（４４０、４９０）が縦Ｍ個、横Ｎ個の領域により構成される場合、画像データ４４０は８Ｍ×Ｎ画素のサイズとなり、画像データ４９０は４Ｍ×２Ｎ画素のサイズとなる。
【００３７】
（画像データの入出力方法）
図８は、本実施形態の画像処理方法を用いた場合の、ＲＡＭ１０６から画像入出力部１５２への、または画像入出力部１５２からＲＡＭ１０６への、画像データの入出力方法についての説明図である。画像処理装置は、図８の（ａ）及び（ｂ）のように、１つの画像データ３００からバンド領域３０１を抜き出し、入力画像データとしてＲＡＭ１０６に格納する。そして、このバンド領域の入力画像データは、先に図６を用いて説明したように、ＲＡＭ１０６で取り扱いやすくなるように３２Ｂｙｔｅを単位とした点順次形式のデータ構造を有する。そのため、バンド領域の入力画像データは図８の（ｃ）の２１０に示すようなデータ構造となる。
【００３８】
図８の（ｄ）において、ＤＭＡＣ１９４は、図１の共有バス１９０を介して、このバンド領域の入力画像データ２１０をＲＡＭ１０６から読み出し、画像処理部１５０へ入力する。入力画像データ２１０は、先のデータ構造にしたがって、３２Ｂｙｔｅ×Ｂｄｈ＿ｉｎの処理単位で、領域（１）２１１から領域（Ｍ）２１９までのＭ個の小さい画素領域（小領域）に分けられる。そして、ＤＭＡＣ１９４は、このＭ個の小領域（処理単位）の入力画像データを、小領域（１）２１１から小領域（Ｍ）２１９まで１つずつ読み出し、画像処理部１５０に入力する。画像処理部１５０は、この小領域（処理単位）の入力画像データを受け取り、この単位で画像処理を実行する。
【００３９】
ＤＭＡＣ１９４は、例えば、ＣＰＵ１０２から入力された「読み出し先の先頭アドレス」、「連続読み出し量（３２Ｂｙｔｅ単位のデータを連続何回読み出すか）」、「インクリメント・アドレス」および「繰り返し回数」に基づいて動作する。
【００４０】
例えば、図６の点順次形式のＲＧＢの画像データでは以下の通りとなる。
【００４１】
・「先頭アドレス」：Ｓ１＿ＩＭＧ＿ＳＴＲ＿ＡＤＤＲ
・「連続読み出し量」：１回（３２Ｂｙｔｅ）
・「インクリメント・アドレス」：１ラインのデータ量＝３２Ｂｙｔｅ×Ｍ
・「繰り返し数」：バンド領域の高さ＝Ｂｄｈ＿ｉｎ回
このようにすることにより、先頭アドレスＳ１＿ＩＭＧ＿ＳＴＲ＿ＡＤＤＲから、まず３２Ｂｙｔｅのデータが読み出される。そして、次のデータを取得するため、アドレスを３２Ｂｙｔｅ×Ｍだけ増加させることで、小領域（２）〜（Ｍ）の１行目のデータの読み出しが飛ばされて、小領域（１）２１１の第２行目の３２Ｂｙｔｅのデータを読み出すこととなる。そして、繰返し数Ｂｄｈ＿ｉｎ回、すなわち、小領域（１）２１１のＢｄｈ＿ｉｎ行分のデータを読み出すことにより、小領域（１）２１１の全てのデータを読み出すことができる。小領域（２）〜小領域（Ｍ）の入力画像データの読み出しでは、順次「先頭アドレス」を順次３２ＢｙｔｅずつずらしてＤＭＡＣ１９４を動作させる。このように画像処理装置は、ある小領域の画像データをＲＡＭ１０６からＤＭＡ転送で読み出す。
【００４２】
画像入出力部１５２の画像入力部１５２１は、ＤＭＡＣ１９４から、入力画像データを受け取る。そして画像入力部１５２１は、そのデータを中間バッファ制御部１５２２へ転送して、中間バッファ制御部１５２２は、受け取った入力画像データを、内包する中間バッファ（記憶装置）の入力領域２３４に一時的に格納する。通常、入力領域２３４の容量は、１回のＤＭＡ転送の単位である小領域（処理単位）の画像データを格納できる容量となる。なお、ＤＭＡＣ１９４は、ＤＭＡ転送や１つのバンド領域の入力画像データの転送が完了すると、そのことを割り込み信号２２２を用いてＣＰＵ１０２へ通知してもよい。
【００４３】
その後、画像入力部１５２１は、中間バッファ制御部１５２２を介して、一時的に記憶された小領域の入力画像データを読み出す。そして画像入力部１５２１は、点順次形式にパッキングされた１画素の色成分を含む画素値を抜き出し、後述する画像処理コマンドを順次生成して、画像処理実行部１５３へ入力する。そして画像処理実行部１５３は入力された画像処理コマンドに含まれる画素値のデータを用いて画像処理を施し、処理後の画像処理コマンドを生成する。なお、画像処理実行部１５３の詳細については後述する。
【００４４】
次に画像出力部１５２３は、処理後の画像処理コマンドから点順次形式の画素値（ＲＧＢ、ＣＭＹＫ）を抜き出し、中間バッファ制御部１５２２へ転送し、外部記憶装置１０８に出力する画像データとして蓄える。このとき、出力画像データのデータ構造は上述の図６の点順次形式のままであるが、出力画像データの形状は、図８の（ｆ）の２５０のように、入力時から形状が変わっていてもよい。画像処理実行部１５３では、入力画素領域のサイズと出力画素領域のサイズが異なる様々な画像処理が実行される。そのため、入力画像データ２１０と出力画像データ２５０の画素数は異なり、出力画像データ２５０の出力バンド領域の高さは、Ｂｄｈ＿ｏｕｔとなる。また出力画像データ２５０のバンド領域の長さは、８×Ｎとなる。すなわち、入力画像データ２１０と出力画像データ２５０では、バンド領域の高さが異なるため小領域（処理単位）の容量が異なる。そして、バンド領域の長さも異なるため小領域（処理単位）の数もＭ個からＮ個に変化する。しかしながら、入力と出力ではデータ構造が同一であるため、中間バッファ２３２の出力領域２３６の容量は入力領域２３４の容量と同じ考え方で設定できる。
【００４５】
画像出力部１５２３は、例えば、Ｂｄｈ＿ｏｕｔ個の画素が４列分入力され、小領域（１）２５１の出力画像データが中間バッファ２３２の出力領域２３６に揃った時点で、画像処理実行部１５３からの処理後の画像処理コマンド１５６の受け取りを停止する。そして、出力領域２３６の出力画像データを順次読み出し、ＤＭＡＣ１９６へ送出する。そしてＤＭＡＣ１９６は、ＣＰＵ１０２からの指示信号（図８の（ｄ）の２２５）に従って、処理後の画像データをＲＡＭ１０６へ書き込む。そして、同様の動作が、小領域（２）から小領域（Ｎ）まで順次繰り返し実行されることにより、図８の（ｇ）記載の出力バンド領域の出力画像データが、すべてＲＡＭ１０６へ書き戻される。
【００４６】
（画像処理コマンドの構成）
図９の５００に示すように、画像処理コマンドは、「ヘッダ」と「データ」とを含んで構成され、「データ」には点順次形式の画素値が格納される。本実施形態に係る画像処理装置は、このコマンドを利用することで、点順次形式の画像データを１画素単位で同期しながら、画像処理実行部１５３の画像処理回路（１）１５３１〜画像処理回路（Ｐ）１５３７をパイプライン的に動作させ、画像処理を行う。
【００４７】
また図９の（ａ）に示すように、画像処理コマンドは複数の点順次形式に対応可能である。例えば、図９の（ａ）の例では、「ヘッダ」の「ｏｐ  ｃｏｄｅ」を切り替えることで、Ｒ（Ｒｅｄ）、Ｇ（Ｇｒｅｅｎ）、Ｂ（Ｂｌｕｅ）形式や、Ｃ（Ｃｙａｎ）、Ｍ（Ｍａｇｅｎｔａ）、Ｙ（Ｙｅｌｌｏｗ）、Ｋ（Ｂｌａｃｋ）形式に対応することができる。
【００４８】
（画像処理実行部の処理）
次に、画像処理部１５０の画像処理実行部１５３について、図２を用いて説明する。画像処理実行部１５３は、画像処理回路（１）１５３１から画像処理回路（Ｐ）１５３７の、Ｐ個の画像処理回路と、インターコネクト１５３０とで構成される。Ｐ個の画像処理回路のそれぞれとインターコネクト１５３０とは、入力ポート１５３２、１５３５、並びに１５３８、および出力ポート１５３３、１５３６、並びに１５３９等のポートを介して互いに接続される。
【００４９】
画像処理回路は、例えば、入力色補正処理、色空間変換、濃度補正処理、中間調処理、空間フィルタ処理、解像度変換、トリミング処理、端部拡張処理、ＩＰ変換、クロマ・アップサンプリングの１つ以上を含む処理を行う。これらの画像処理回路は、パイプライン回路等のハードウェアで実現されてもよいし、プロセッサとプログラム（ソフトウェア）等で実現されてもよい。そして、例えば、入力ポート１５３２、１５３５、１５３８等から入力画像処理コマンド１５５を受け取り、処理を施した後に、出力ポート１５３３、１５３６、１５３９から処理後の出力画像処理コマンド１５６を出力する。
【００５０】
また、インターコネクト１５３０はクロスバーやリングバス等の接続機能で実現されており、入力ポートと出力ポートの接続先を任意に切り替えることができる。したがって、ＣＰＵ１０２がこれらポートの接続先の指定を設定することで、インターコネクト１５３０は、例えばＰ個の画像処理回路の実行順序を変更し、または一部の処理をバイパスすることができる。このように、画像処理実行部１５３は、アプリケーションに応じて、各種の処理を取捨選択して組み合わせることにより、所望の画像処理を実現することができる。
【００５１】
画像処理実行部１５３は、複数個の画像処理コマンドを受け取り、それらの画像処理コマンドの各々から１画素の色成分を含む画素値を抽出する。そして、画像処理実行部１５３は、抽出した１画素の画素値を用いて画像処理を施し、処理後の１画素の画素値を生成する。このとき、画像処理実行部１５３の画像処理回路（１）１５３１〜画像処理回路（Ｐ）１５３７は、１画素単位で同期しながらパイプライン的に画像処理を行う。
【００５２】
以上のように、画像入出力部１５２から、小領域ごとに画像処理実行部１５３へと画像処理コマンドが入力される。そして、画像処理実行部１５３は、１つ以上の画素を含む画素領域を用いたフィルタ処理のような画像処理を施すことができる。このとき、例えば、フィルタ処理の入力となる画素領域をバンド領域の高さ方向（紙面の副走査方向）にスライドさせながら処理が進められ、高さ方向に１列分の画素値が出力されると、次の列の画素を出力するための処理が実行される。具体的には、画素領域に含まれる複数の画素値に対してそれぞれ所定の重み係数が乗算され、それらの値が全て加算されることにより、１つの出力画素が算出される。処理後の画像処理コマンドは、１画素ずつ画像入出力部１５２の画像出力部１５２３へ出力される。以上のようにして、本実施形態の画像処理装置は、点順次形式のカラー画像データに対して、フィルタ処理を含む画像処理を適用することができる。
【００５３】
続いて、上述の点順次形式の画像処理装置を利用することを前提として、モノクロ（単色）画像データを高速に画像処理する場合について説明する。
【００５４】
（単色画像データのデータ構造）
まず、図７を用いて単色画像データのデータ構造の一例について説明する。図７の例では、ＲＡＭ１０６（ＤＲＡＭ）のデータ領域のＳ０＿ＩＭＧ４２０に単色画像データが格納されている。なお、単色画像データにおいても、カラー画像データと同様にＤＲＡＭの性能を落とさずに画像データを読み書きできるように、各々格納される画像データの容量の最小単位は、３２Ｂｙｔｅ（３２ｂｉｔ×８ｗｏｒｄ）単位とすることができる。なお、Ｓ０＿ＩＭＧ４２０の単色画像データの格納容量は、３２Ｂｙｔｅの整数倍となる。
【００５５】
次に、単色画像データのデータ構造について説明する。画像データ４１０は、上述のＳ０＿ＩＭＧ４２０の領域に含まれる画素のそれぞれを、輝度値（Ｉｎｔｅｎｓｉｔｙ）又はグレースケール（Ｇｌａｙｓｃａｌｅ）などで表現したデータとして格納される。画像データ４１０に含まれる領域４１２は、３２Ｂｙｔｅ単位のデータであり、その中には、３２個の８ｂｉｔ長のデータがパッキングされる（４１４）。そして、１つの単色画素値が、１つの８ｂｉｔ長のデータで表現される（４１６）。なお、以下では、このような８ｂｉｔ長のデータを記号「Ｉ」により表す。図７の画像データ４１０は、このような３２個の画素のデータが含まれる領域をＭ×Ｎ個含むため、３２Ｍ×Ｎ画素の大きさの単色画像データを表すこととなる。なお、図７では、領域４１２は、横方向に３２個の画素を含むが、これ以外にも、縦方向に１６個かつ横方向に２個など、全体で３２個の画素を含む領域でありうる。領域４１２が縦方向に１６個かつ横方向に２個の画素を含む場合、画像データ４１０は、１６Ｍ×２Ｎ画素の大きさの単色画像データを表すこととなる。
【００５６】
ここで、上述のように、カラー画像処理のハードウェア・リソースを用いて単色画像データの画像処理の高速化技術はいくつか存在する。ここで、点順次形式の画像処理装置を用いる場合、上述の画像処理コマンドの複数の色（Ｒ、Ｇ、Ｂ、または、Ｃ、Ｍ、Ｙ、Ｋ）を示す各フィールドに単色画素データを格納することにより、１つの画像処理コマンドに複数の単色画素データを含めることができる。しかしながら、画像処理でフィルタ処理を適用する場合、これらの画像処理は、処理対象となる着目画素の周辺画素を含む画素領域のすべての画素値（処理画素）を用いて画像処理を行うこととなる。この場合、複数の色成分ごとにフィルタ回路が用意されている場合であっても、１つの着目画素に関する処理に対応するフィルタ回路には処理画素の全てが入力されうるが、他の画素に関する処理に対応するフィルタ回路には処理画素の一部が入力されない。したがって、複数のフィルタ回路のうち１つしか使用することができないこととなるという問題があった。
【００５７】
これに対して、画像処理コマンドの複数の色を示す各フィールドに対して、単色画素データを点順次形式で格納するのではなく、処理対象の画像データを分割して、分割後の各領域から１画素ずつ抽出して格納する。これにより、画像処理コマンドに格納される複数の単色画像の画素が、互いに隣接画素（周辺画素）の関係になくなり、複数のフィルタ回路を有効活用できるようになる。以下、いくつかの具体的な実施形態について説明する。
【００５８】
＜＜実施形態１＞＞
以下では、ＲＧＢ画像データに対する画像処理コマンドのように、色数が３つ（すなわち、画素データを格納するフィールドが３つ）のコマンドを一例に説明する。本実施形態では、図１０に示すように、紙面の１つのバンド領域３０１から、点順次形式のカラー画像の読み出しと同様、単色画像データの小領域を１回のＤＭＡ転送を用いて中間バッファに一時記憶する。
【００５９】
その後、ＤＭＡ転送された小領域は、さらに分割される。このとき、複数のフィルタ回路の各々においてフィルタ処理の処理画素全てが入力されるように、フィルタ処理に必要な画素領域を考慮して、重複領域を設定し、重複領域を考慮して３つの部分画像に分割する。ここで、本実施形態では、フィルタ処理は３画素×３画素の画素領域を用いるものとする。この場合、分割された領域の高さ方向における最上段の１ラインと、最下段の１ラインとの処理においても、その前のラインまたは次のラインの画素値が使用される。したがって、図１０に示すように、重複領域はバンドの高さ方向に２ラインとなる。
【００６０】
なお、ここでは、ＤＭＡ転送された小領域を３つの部分画像に分割すると説明したが、３つより多くの部分画像に分割して、その中から３つの部分画像を抽出するようにしてもよい。なお、分割により得られる部分画像の数は２つであってもよい。すなわち、フィルタ回路を有効活用できるだけの部分画像を作ることができればよく、例えば、３つに分割することにより、フィルタ回路に対して、フィルタ処理の処理画素の全てを入力することができなくなる場合は、分割数を減らしてもよい。さらに、フィルタ回路に対して、フィルタ処理の処理画素の全てを入力することができるならば、３つより多くの部分画像に分割してもよい。なお、フィルタ回路の数など、画像処理装置における並列処理可能な色及び画素の数などの並列処理能力に応じて、分割数と抽出される部分画像の数とが決定されうる。
【００６１】
その後、分割された部分画像の各々から単色画素が１つずつ取得され、画像処理コマンド１５５のフィールドＩ＜０＞〜Ｉ＜２＞にパッキングされる。具体的には、まず、図１０の例では、ライン（Ａ−０）とライン（Ａ−８）とライン（Ａ−１６）からモノクロの１画素が抽出されて、画像処理コマンド１５５のフィールドＩ＜０＞〜Ｉ＜２＞に格納される。なお、各ラインにおける抽出する画素の位置を揃えておくことにより、部分画像から画像処理コマンドを生成するときの制御を容易にすることができる。すなわち、例えば、上記の３ラインに対して、初期的に、図７の４１４の画素番号“０”で示される画素に対応する画素が抽出されるようにする。また各部分画像のライン数が同じになるように中間バッファに一時記憶するバンドの高さを設定しておくと、画像処理コマンドを生成するときの制御を容易にすることができる。
【００６２】
なお、ＣＭＹＫ画像に対しては、４つの部分画像を抽出して、それぞれの部分画像から画素値を抽出することにより４つの単色画素値を取得し、４色成分のコマンド５２０や５２２に変換することができる。なお、この場合も、小領域を４つより多くの部分画像に分割して、そのうち４つの部分画像を抽出するようにしてもよいし、部分画像の数を３つ以下としてもよい。
【００６３】
その後、複数の単色画素値を含む画像処理コマンドを、画像処理回路（１）〜（Ｐ）に入力して、図１３のように並列的に画像処理が実行されることにより、処理後の画像処理コマンド１５６が得られる。このとき単色画素（Ｉ＜０＞、Ｉ＜１＞、Ｉ＜２＞）は隣接画素ではないため、各々のフィルタ回路は、フィルタ処理の処理画素の画素値の全てをフィルタ回路内の遅延メモリ（不図示）に蓄えることができ、フィルタ処理を実行できる。処理後の画像処理コマンドでは、フィルタ処理により周辺画素が削除されるため、ライン（Ａ−０）とライン（Ａ−２５）に対応する単色画素は出力されない。なお、ライン（Ａ−０）とライン（Ａ−２５）については、その前のラインまたはその後のラインの画素値としてダミーの画素値を用いてフィルタ処理を実行して、そのフィルタ処理の結果が出力されるようにしてもよい。このようにして、画像処理装置は、処理後の画像処理コマンド１５６から、複数の処理後の単色画素（Ｉ＜０＞、Ｉ＜１＞、Ｉ＜２＞）を得ることができる。
【００６４】
ライン（Ａ−０）とライン（Ａ−８）とライン（Ａ−１６）の処理が終了した後は、それぞれの部分画像から次の１ラインをそれぞれ抜き出して、上述の処理が繰り返される。これにより、各部分画像に対する処理が並行して実行される。そして、各部分画像に対する処理が終了した時点で、それぞれの部分画像に対応する部分画像が得られる。なお、処理後の画像処理コマンドから処理後の単色画素が中間バッファに一時記憶される過程で、この複数の部分画像は、１つの単色画像データに集約される。最後に、処理後のバンド領域に対応したＲＡＭ１０６の格納領域の各々に、処理後の単色画素値がＤＭＡ転送されることにより、処理後の単色画像データが書き出される。
【００６５】
（画像処理の流れ）
一連の画像処理の流れについて、図１４を用いてまとめる。まず、画像処理装置は、対応できる色成分の数（色数）又は使用するコマンドに対応する色数を設定する。例えば、図９の（ａ）のコマンド５４０を使用する場合は、色数は“３”となり、コマンド５９０を使用する場合は、色数は“４”に設定される（Ｓ８００）。また、例えば、ＲＧＢとＣＭＹＫの両方に対応できる場合、４色のカラー処理に対応できるため、色数は“４”に設定されてもよい。
【００６６】
次に、中間バッファに一時記憶された単色画像データを設定した色数に応じて分割して、部分画像を抽出する（Ｓ８０２）。例えば、画像処理装置は、設定された色数が“３”の場合は単色画像データから３つの部分画像を抽出し、設定された色数が“４”の場合は単色画像データから４つの部分画像を抽出する。
【００６７】
そして、部分領域の各々から単色の画素値を１画素ずつ取得する（Ｓ８０４）。そして画像処理装置は、図９の（ａ）のような画像処理コマンドにおけるカラー画像の各色成分のデータが格納されるフィールドに、単色画素値のデータを格納する（Ｓ８０６）。これにより、画像処理装置は、設定した色数が“３”の場合は、図９の（ｂ）のコマンド５１０のような画像処理コマンドを生成し、設定した色数が“４”の場合は、図９の（ｂ）のコマンド５２０のような画像処理コマンドを生成する。
【００６８】
画像処理装置は、上述のように、画像処理実行部１５３を用いてこれらのコマンドを介して画像処理を実行する（Ｓ８０８）。そして、画像処理実行部１５３から出力される処理後の画像処理コマンドに含まれる複数の単色画素値を取り出す（Ｓ８１０）。そして画像処理装置は、取り出した単色画素を、中間バッファの各部分画像の格納領域に書き込んで、一時的に記憶する（Ｓ８１２）。最後に、画像処理装置は、中間バッファに一時的に記憶された部分画像をＲＡＭ１０６へ書き込むことで１枚の単色画像データに集約する（Ｓ８１４）。
【００６９】
（部分画像の抽出処理の流れ）
続いて、図１５のフローチャートを用いて、本実施形態の部分画像の抽出処理の流れについて説明する。本処理では、まず、画像処理ステップと同様に、画像処理装置は、対応できる色成分の数（色数）又は使用するコマンドに対応する色数を設定する（Ｓ８２０）。このとき、設定した色数をＣとする。
【００７０】
次に、画像処理装置は、画像処理実行部１５３で実行される全フィルタ処理の重複領域の画素数の合計（累計）Ｆを設定する（Ｓ８２２）。例えば、フィルタ処理のタップ数が“５ｘ３”の場合、Ｆは２画素となる。また、例えば、タップ数“５ｘ３”のフィルタが４回実行される場合は、Ｆは８（＝２ｘ４）画素となる。またタップ数“５ｘ７”のフィルタがさらに１回実行されるなら、重複領域は６画素追加されて、Ｆは１４画素となる。本実施形態ではバンドの高さ方向に重複領域が加算される。フィルタ処理の重複領域は中心１画素を除いた処理画素のことを意味するのでバンドの高さ方向のタップ数から１画素を減算した画素数が重複領域の画素数となる。そして実行されるフィルタ処理に応じて各々の重複領域の画素数を累計することにより、Ｆを算出することができる。
【００７１】
次に、フィルタ処理後の重複領域の画素が削除されて出力される部分画像の出力量ＬＯが設定される（Ｓ８２４）。本実施形態では、バンドの高さ方向に分割して部分画像を抽出するため、出力量ＬＯは部分画像の高さ方向の画素数となる。そして、これら設定に基づいて、処理後の部分画像を集約したときの画像データの出力量ＤＭＡＯを算出する（Ｓ８２６）。出力量ＤＭＡＯは、出力量ＬＯと色数Ｃを乗算した値となる。本実施形態では、算出した出力量ＤＭＡＯは上述の出力バンドの高さＢｄｈ＿ｏｕｔと同一となる。上述の中間バッファの出力画像領域の大きさは出力量ＤＭＡＯに転送単位である３２Ｂｙｔｅを乗算した容量となる。
【００７２】
最後に、上述の設定値と算出値とを用いて、画像処理の入力量ＤＭＡＩを算出する（Ｓ８２８）。重複領域は、２つの部分画像の間に存在するのみであるため、色数から１を減算した数（Ｃ−１）と重複領域の合計Ｆを乗算した値を出力量ＤＭＡＯに加算した値が、入力量ＤＭＡＩとして算出される。本実施形態では、出力量ＤＭＡＯと同様に、算出した入力量ＤＭＡＩは上述の入力バンドの高さＢｄｈ＿ｉｎと同一となる。上述の中間バッファの入力画像領域の大きさは入力量ＤＭＡＩに転送単位である３２Ｂｙｔｅを乗算した容量となる。
【００７３】
このようにして、色数に応じて抽出される部分画像の大きさや中間バッファの容量を算出することができる。
【００７４】
以上のように、本実施形態によれば、単色画像データを中間バッファに読み込み、中間バッファに蓄積された単色画像データから、カラー画像に対する点順次形式の画像処理コマンドの色成分の数に応じた数の部分画像を抽出する。そして、各々の部分画像から単色画素を取得し、カラー画像に対する１つの画像処理コマンドの各色成分のデータが格納されるフィールドに、その複数の単色画素のデータを格納する。そして、この画像処理コマンドに対して画像処理を施すことにより、１回の処理で、画像処理装置が対応可能な色数に応じた単色画素を、並列（同時）処理することができ、処理を高速化することができる。なお、この高速化は、画像処理装置に含まれる画像入出力部の改良で実現できる。このため、画像処理装置の大半を占める画像処理実行部のカラー画像処理回路（ハードウェア・リソース）をそのまま利用することが可能となる。すなわち、単色画像データの処理のために画像処理実行部の回路規模を大きく増加させる必要はない。また、フィルタ処理のような、複数の処理画素を必要とする局所（近傍）画像処理においても、単色画像データの処理の高速化が可能となる。
【００７５】
＜＜実施形態２＞＞
実施形態１では、単色画像データをバンド領域の一部である小領域ごとに中間バッファに読み込み、中間バッファに一時的に記憶された単色画像データを、画像処理コマンドで処理可能な色数に応じて分割して、画像処理コマンドに変換した。本実施形態では、図１１に示すように、紙面の１バンド領域（６６０）を、重複する小バンド領域（６６１、６６２、６６３）に分割して取り扱う。以下では、画像処理コマンド１５５及び１５６のように３色対応のコマンドを例に説明する。
【００７６】
本実施形態では、紙面の１バンド領域（６６０）を、コマンドの色数に合わせて小バンド領域６６１〜６６３の３つに分割して考える。そして、分割した小バンド領域の小領域（処理単位）ごとに、ＲＡＭ１０６から、３回に分けて単色画像を読み出す。そのため、上述の説明と異なり、１つの小領域に対して、異なる「先頭アドレス」でＤＭＡ転送を３回実行することになる。
【００７７】
そして、読み出された３つの小領域の単色画像データは、すべて、一旦、中間バッファ２３２へ格納される。そして、３つの小領域の所定の画素番号（座標）から３つの単色画素（Ｉ＜０＞、Ｉ＜１＞、Ｉ＜２＞）が読み出され、カラー画像に対する点順次形式の画像処理コマンドの画素データ（Ｒ、Ｇ、Ｂ）に対応するフィールドにそれぞれ格納される。そして、この画像処理コマンドに含まれる各画素値をそれぞれ用いた画像処理が画像処理実行部１５３において実行され、処理後の画像処理コマンドから、処理後の複数の単色画素が得られる。最後に、処理後の小バンド領域（６７１、６７２、６７３）に対応した、ＲＡＭ１０６の格納領域の各々に、処理後の単色画素が３回に分けてＤＭＡ転送され、処理後の単色画像データが書き出されて、３つの部分画像が１つの単色画像データに集約される。
【００７８】
図１２に示すように、本実施形態では、ＲＡＭ１０６上の単色画像データが部分画像に分けられて、複数回のＤＭＡ転送により中間バッファに読み込まれるため、中間バッファには、重複したラインの単色画像データが重複して読み出される。中間バッファの容量は増加することになるが、ＤＭＡＣ１９４及び１９６の設定を変更するだけで対応できるため、従来の画像入出力部１５２からの変更を最小限に留めることができる。
【００７９】
以上のように、本実施形態では、単色画像データを、画像処理装置が対応可能な色数に応じて、重複領域を含む複数バンド領域に分割する。そして複数のバンド領域が複数回のＤＭＡ転送で読み書きされる。このとき、画像処理装置として、点順次形式の画像データに対応した従来の画像処理装置そのものを用いることができる。本実施形態では、単色画像データを処理するときに、画像処理装置を制御するドライバ／ファームウェアのようなソフトウェアを変更することにより実現することができる。そしてソフトウェアにおいて、上記のバンド領域の分割のし方が決定（バンドの高さの値を算出）され、ＤＭＡ転送の制御（転送回数、転送開始アドレス、転送量）が変更される。
【００８０】
（画像処理の流れ）
本実施形態の画像処理の流れについては、上述の図１４の処理の流れと同様である。このため、説明を省略する。
【００８１】
（部分画像の抽出処理の流れ）
本実施形態の部分画像の抽出処理の流れについて図１６のフローチャートを用いて説明する。画像処理装置は、色数Ｃと、画像処理実行部１５３で実行される全フィルタ処理の重複領域の合計（累計）Ｆとを、実施形態１と同様の手法で設定する（Ｓ８４０、Ｓ８４２）。次に、フィルタ処理後の重複領域の画素が削除されて出力される部分画像である出力のバンドの高さＢｄｈ＿ｏｕｔと入力のバンドの高さＢｄｈ＿ｉｎとを設定する（Ｓ８４４、Ｓ８４６）。入力のバンドの高さＢｄｈ＿ｉｎは、出力のバンドの高さＢｄｈ＿ｏｕｔと重複領域の合計（累計）Ｆとを加算した値となる。
【００８２】
そして、これらの設定と算出値とに基づいて、出力する部分画像を集約したときの出力量ＤＭＡＯを算出する（Ｓ８４８）。出力量ＤＭＡＯは出力バンドの高さＢｄｈ＿ｏｕｔと色数Ｃとを乗算した値となる。本実施形態では、算出した出力量ＤＭＡＯは出力バンドの高さＢｄｈ＿ｏｕｔと異なる。上述の中間バッファの出力画像領域の大きさは出力量ＤＭＡＯに転送単位である３２Ｂｙｔｅを乗算した容量となる。最後に上記の設定値と算出値を用いて画像処理の入力量ＤＭＡＩを算出する（Ｓ８５０）。本実施形態では、重複領域は色数に応じて、その都度、ＲＡＭ１０６から読み出されるので、入力量ＤＭＡＩは、色数と入力バンドの高さＢｄｈ＿ｉｎとを乗算した値となる。本実施形態では、算出した入力量ＤＭＡＩは、上述の入力バンドの高さＢｄｈ＿ｉｎと異なる。上述の中間バッファの入力画像領域の大きさは入力量ＤＭＡＩに転送単位である３２Ｂｙｔｅを乗算した容量となる。
【００８３】
このようにして、本実施形態における、色数に応じて分割、抽出される部分画像の大きさや中間バッファの容量を算出することができる。
【００８４】
以上のように、本実施形態によれば、画像処理装置として、点順次形式の画像データに対応した従来の画像処理装置そのものを用いることができる。そのため、単色画像データの処理のために画像処理装置を改良する必要はなく、回路規模も大きくならない。このように、本実施形態によれば、単色画像データを処理するときの画像処理装置を制御するドライバ／ファームウェアを変更するだけで、単色画像データの処理を高速化することができる。
【００８５】
＜＜実施形態３＞＞
本実施形態では、入力した画像を拡大、または縮小して所望の大きさの画像に変換する解像度変換が行われる場合の処理について説明する。一般的に、カラー画像の処理に対応可能な画像処理装置では、色成分ごとの解像度変換用のフィルタ回路を備える。解像度変換では、拡大／縮小の度合いによって、処理後の画像にモアレ等の画質劣化が生じる場合がある。そこで、これらの画質劣化を軽減するために、画像処理装置は解像度変換のフィルタの初期位相を変更する場合がある。一般的にカラー画像の処理に対応可能な画像処理装置では、複数の色成分を含む１画素単位で解像度変換を行うため、この初期位相を変更するレジスタは、色成分全てに共通である。
【００８６】
しかしながら、本実施形態では、単色画像データから複数の部分画像を抽出して、その部分画像から画素を取得して点順次形式の画像処理コマンドを生成する。このため、本実施形態においては、初期位相の設定レジスタを、図１７のように色成分ごとに備えるようにする。そして、ページ先頭の初期位相の設定から、各部分画像の初期位相を算出して、画像処理の実行前に色成分ごとの初期位相の設定レジスタに予め設定しておく。
【００８７】
拡大／縮小の度合いやページ先頭の初期位相の設定によっては、部分画像の大きさ（バンドの高さ等）は、上述の実施形態のように同一の値に揃えられない場合が存在する。このような場合は、部分画像のうち、最も小さい部分画像に合わせて、残りの部分画像の大きさを減算して大きさを揃えることができる。そのとき各部分画像の初期位相は、減算する前と変わるので再計算することになる。また逆に、最も大きな部分画像に合わせて、小さな部分画像の処理の領域を拡張する方法で、部分画像を揃えることも可能である。このとき拡張した処理の領域に含まれる画素は、複数回、画像処理されることになるが、画像処理結果は同じになるため、ＲＡＭ１０６にそのまま書き出しても何ら問題はない。また拡張した処理の領域に含まれる画素は、中間バッファからＲＡＭ１０６に書き出すときのＤＭＡ設定において書き出さないように設定されてもよい。
【００８８】
以上のように本実施形態を用いれば、画像処理装置の解像度変換（拡大／縮小）回路を一部修正することにより、分割画像の初期位相が変わるようなフィルタ処理においても、単色画像データの処理を高速化することができる。
【００８９】
なお、上述の実施形態では、カラー画像に対する画像処理コマンドが、１画素単位で各色のデータを格納するコマンド形式である場合について説明した。しかしながら、例えば、点順次形式のＲＧＢ画像データを２画素単位で格納するコマンド形式が用いられる場合など、他の点順次形式のコマンドが用いられる場合にも上述の各実施形態を適用することができる。例えば、点順次形式のＲＧＢ画像データを２画素単位で格納するコマンド形式が用いられる場合、単色画像データから抽出した６つの部分画像の各々から単色画素を取得して、６つの単色画素値を含むコマンドを生成することで、上述の各方式を適用可能である。
【００９０】
また、上述の実施形態では、画像データの読み書きの単位を３２Ｂｙｔｅとして説明した。しかしながら、画像処理装置上でのＲＡＭ１０６の構成のし方や、ＲＡＭ１０６を実現する記憶装置（ＤＲＡＭ等）の種類、そして実行する画像処理の種類等により、画像データの読み書きの単位は必ずしも３２Ｂｙｔｅでなくてもよい。なお、読み書きの単位が変わった場合、画像データを記憶する中間バッファの容量が変わるだけで、単色画像を含む画像処理コマンドの生成手法は変化しない。
【００９１】
また、画像データの３２Ｂｙｔｅ単位のデータ構造が、図６の４９４のように４×２画素を示すような場合においても、上述の各実施形態を容易に適用することができる。上述の実施形態では、入力バンドの高さＢｄｈ＿ｉｎや出力バンドの高さＢｄｈ＿ｏｕｔで中間バッファの容量を割り当てた。一方で、４×２画素のデータ構造を用いる場合には、入力バンドの高さＢｄｈ＿ｉｎや出力バンドの高さＢｄｈ＿ｏｕｔを２で除算した値を基準に中間バッファの容量を割り当ててもよい。
【００９２】
また、上述の実施形態では、主にバンド処理について説明した。しかしながら、別の領域分割手法であるブロック（タイル）処理についても、上述の各実施形態の手法を適用することができる。ブロック（タイル）処理では、主走査方向と副走査方向に沿って画像データを２次元で領域分割する。例えば、上述の実施形態で説明した小領域（処理単位）が、この２次元で領域分割された画素領域と対応する。小領域（１）から小領域（Ｍ）まで順次読み出す手法はブロック（タイル）処理そのものである。ブロック（タイル）処理とバンド処理の主な違いは、画像データから画素を生成するときの画素の走査方向の違いにすぎない。ブロック（タイル）処理では、画像処理実行部に入力する画素の走査を主走査方向に沿って行う。一方、本発明のバンド処理では、画像処理実行部に入力する画素の走査をバンドの高さ（副走査方向）に沿って行う。しかしながら、いずれの場合も、複数の単色画像を含むように画像処理コマンドが生成される点は変わらない。
【００９３】
また、ＲＡＭ１０６の記憶容量に余裕があり、局所（近傍）画像処理での遅延メモリを省容量化する必要がない場合は、バンド処理を行わず、１ページ分の画像データ３００をＲＡＭ１０６に格納するようにして、１ページの単位で画像処理が行われてもよい。そのときバンドの高さではなく副走査方向の画像データの大きさで中間バッファの入力領域と出力領域の容量を割り当てることができる。
【００９４】
＜＜その他の実施形態＞＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015115837.tif 000003
【図２】
2015115837.tif 000004
【図３】
2015115837.tif 000005
【図４】
2015115837.tif 000006
【図５】
2015115837.tif 000007
【図６】
2015115837.tif 000008
【図７】
2015115837.tif 000009
【図８】
2015115837.tif 000010
【図９】
2015115837.tif 000011
【図１０】
2015115837.tif 000012
【図１１】
2015115837.tif 000013
【図１２】
2015115837.tif 000014
【図１３】
2015115837.tif 000015
【図１４】
2015115837.tif 000016
【図１５】
2015115837.tif 000017
【図１６】
2015115837.tif 000018
【図１７】
2015115837.tif 000019