(57)【要約】【課題】画像データのハーフトーン化処理を行う際に、複数の画素の並列処理による処理の高速化を簡易な構成により実現する画像処理装置、画像処理方法、及び、コンピュータプログラムを提供すること。【解決手段】多値画像データのラスタ順に隣接する複数個の画素の画素値が同一であるか否かを判断する判断手段と、複数個の画素の画素値を色空間変換する色空間変換手段と、色空間変換手段により色空間変換された画素毎に、該画素の多値画像データにおける位置に対応する閾値との比較により、ハーフトーン画像を生成するハーフトーン生成手段と、を有し、複数個の画素の画素値が同一である場合に、色空間変換手段は、複数の画素のうちの一の画素の画素値の色空間変換を行い、ハーフトーン生成手段は、色空間変換手段により色空間変換された一の画素の画素値を、複数の画素の多値画像データにおける位置に対応するそれぞれの閾値と比較する画像処理装置。【選択図】図５
2010074445.tif 000002
【特許請求の範囲】
【請求項１】
多値画像データの画素毎に所定の閾値との比較によりハーフトーン画像を生成するハーフトーン生成装置であって、
前記多値画像データのラスタ順に隣接する複数個の画素の画素値が同一であるか否かを判断する判断手段と、
前記複数個の画素の画素値を色空間変換する色空間変換手段と、
前記色空間変換手段により色空間変換された画素毎に、該画素の前記多値画像データにおける位置に対応する閾値との比較により、ハーフトーン画像を生成するハーフトーン生成手段と、
を有し、
前記複数個の画素の画素値が同一である場合に、前記色空間変換手段は、前記複数の画素のうちの一の画素の画素値の色空間変換を行い、
前記ハーフトーン生成手段は、前記色空間変換手段により色空間変換された一の画素の画素値を、前記複数の画素の前記多値画像データにおける位置に対応するそれぞれの閾値と比較する画像処理装置。
【請求項２】
前記多値画像データにおける水平方向の位置に対応する閾値からなる閾値テーブルを保持し、前記水平方向の位置毎に対応づけて設けられる、異なる複数の閾値テーブル保持手段を有し、
前記ハーフトーン生成手段は、前記異なる複数の閾値テーブル保持手段から、並列に閾値を取得する請求項１記載の画像処理装置。
【請求項３】
前記複数個の画素のうち、一部の画素の画素値が同一である場合に、前記色空間変換手段は、前記一部の画素のうちの一の画素の画素値の色空間変換を行い、
前記ハーフトーン生成手段は、前記色空間変換手段により色空間変換された一の画素の画素値と、前記一部の画素の前記多値画像データにおける位置に対応するそれぞれの閾値と比較する請求項１又は２記載の画像処理装置。
【請求項４】
多値画像データの画素毎に所定の閾値との比較によりハーフトーン画像を生成するハーフトーン生成方法であって、
前記多値画像データのラスタ順に隣接する複数個の画素の画素値が同一であるか否かを判断する判断ステップと、
前記複数個の画素の画素値を色空間変換する色空間変換ステップと、
前記色空間変換手段により色空間変換された画素毎に、該画素の前記多値画像データにおける位置に対応する閾値との比較により、ハーフトーン画像を生成するハーフトーン生成ステップと、
を有し、
前記複数個の画素の画素値が同一である場合に、前記色空間変換ステップにおいて、前記複数の画素のうちの一の画素の画素値の色空間変換を行い、
前記ハーフトーン生成ステップにおいて、前記色空間変換ステップにおいて色空間変換された一の画素の画素値を、前記複数の画素の前記多値画像データにおける位置に対応するそれぞれの閾値と比較する画像処理方法。
【請求項５】
前記ハーフトーン生成ステップにおいて、前記多値画像データにおける水平方向の位置に対応する閾値からなる閾値テーブルを保持し、前記水平方向の位置毎に対応づけて設けられる、異なる複数の閾値テーブル保持手段から、並列に閾値を取得する請求項４記載の画像処理方法。
【請求項６】
前記複数個の画素のうち、一部の画素の画素値が同一である場合に、前記色空間変換ステップにおいて、前記一部の画素のうちの一の画素の画素値の色空間変換を行い、
前記ハーフトーン生成ステップにおいて、前記色空間変換手段により色空間変換された一の画素の画素値と、前記一部の画素の前記多値画像データにおける位置に対応するそれぞれの閾値と比較する請求項４又は５記載の画像処理方法。
【請求項７】
請求項４ないし６何れか一項に記載の画像処理方法をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及び、コンピュータプログラムに関する。
【背景技術】
【０００２】
従来から、カラープリンタでは、ＰＤＬを解析し、多値のバンド画像を描画し、つぎに生成された多値バンドを色変換し、階調処理を行い、符号化し、１ページ分の符号を貯めた後に復号し印字する。このような処理は、高速化の要求と、半導体技術の発展から、ＣＰＵで行われた処理の一部をハードウェアで行うことが可能となってきた。
【０００３】
例えば、特開２００１−１８４５５号公報（特許文献１）に記載の階調イメージの処理装置では、生成された多値のバンド画像に対する、色変換処理を含むプレーン分割処理と、ハーフトーン処理とをハードウェアにより実現している。また、特開２００４−２８２２３９号公報（特許文献２）に記載の画像処理装置では、写真画像の描画部分をハードウェア化し、写真画像のソース画像の変倍処理とハーフトーン処理とを水平ライン毎にパイプライン処理することにより、高速化を実現している。
【０００４】
また、特開２００４−２４２２１３号公報（特許文献３）に記載の画像処理装置等では、生成された多値のバンド画像を色変換処理装置で色変換し、その後、ハーフトーン処理装置で、ハーフトーン処理をパイプライン処理することにより、高速化を実現している。
【０００５】
また、近年の半導体プロセスの発達により、メインメモリのＤＲＡＭが高速化され、ＣＰＵとメモリコントローラ間の転送レートも高速化されている。そのため設計に多くのノウハウと多くのコストを必要とし始めた。また、近年製品化されたメモリコントローラを内蔵した汎用ＣＰＵをプリンタコントローラに使用する場合、汎用ＣＰＵの標準バスに画像処理ＡＳＩＣを接続することが考えられる。
【０００６】
また、特開２００８−２３９５９号公報（特許文献４）には、色変換処理と階調処理とをハードウェアで実現し、メインメモリのＲＧＢバンドデータをバスを介して読み込む構成が開示されている。特許文献４に開示の画像処理装置等では、パイプライン処理により画像処理されたＲＧＢバンドデータを、再度メインメモリへ転送する。
ところで、プリンタ出力される画像データは、下地の色が白色であり、グラフィックス画像等においても、同色が連続する箇所が多くある。
【０００７】
【特許文献１】特開２００１−１８４５５号公報
【特許文献２】特開２００４−２８２２３９号公報
【特許文献３】特開２００４−２４２２１３号公報
【特許文献４】特開２００８−２３９５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献４では、１画素毎に処理を行うために、パイプライン処理を行う際にも、１クロックにつき１画素しか処理することができない。そこで、高解像度画像をプリントする要求に対応するためには、クロックの周波数を高くしていくことになる。さらに、半導体プロセス技術においては、微細化が進むとトランジスタゲート間の間隔が狭くなるために、貫通電流が大きくなる。特に、高い周波数のクロックを使用すると貫通電流による発熱が問題になる。また、高い周波数のクロックを使用することは、消費電力が高くなることから望ましくない。
【０００９】
そこで、複数のロジック回路により並列処理させることにより、処理の高速化は実現することができるが、階調処理用のメモリの容量が大きくなり、半導体のＬＳＩサイズが大きくなり、コストが高くなる。より詳細には、例えば、カラープリンタにおける色変換処理装置では、１７＊１７＊１７（４，９１３）ワードのＬＵＴ（Ｌｏｏｋ  ＵＰ  Ｔａｂｌｅ）を持つ。
【００１０】
また、例えば、カラープリンタにおける階調処理装置では、３２＊３２のデイザサイズの閾値テーブルをＣＭＹＫのコンポーネントのそれぞれに１枚ずつ計４枚必要である。また、さらに、階調処理のＢＩＴ数が４値の際に３枚持つ構成とすると、３２＊３２＊４＊３＝１２，２８８バイトの階調処理用メモリが必要となる。これらの画像処理装置と複数のメモリとをＡＳＩＣに搭載することはＡＳＩＣのサイズを大きくする為にコストＵＰとなる。
【００１１】
本発明は、上記に鑑みてなされたものであって、画像データのハーフトーン化処理を行う際に、複数の画素の並列処理による処理の高速化を簡易な構成により実現する画像処理装置、画像処理方法、及び、コンピュータプログラムを提供することを目的としている。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明の画像処理装置は次の如き構成を採用した。
【００１３】
本発明の画像処理装置は、多値画像データの画素毎に所定の閾値との比較によりハーフトーン画像を生成するハーフトーン生成装置であって、前記多値画像データのラスタ順に隣接する複数個の画素の画素値が同一であるか否かを判断する判断手段と、前記複数個の画素の画素値を色空間変換する色空間変換手段と、前記色空間変換手段により色空間変換された画素毎に、該画素の前記多値画像データにおける位置に対応する閾値との比較により、ハーフトーン画像を生成するハーフトーン生成手段と、を有し、前記複数個の画素の画素値が同一である場合に、前記色空間変換手段は、前記複数の画素のうちの一の画素の画素値の色空間変換を行い、前記ハーフトーン生成手段は、前記色空間変換手段により色空間変換された一の画素の画素値を、前記複数の画素の前記多値画像データにおける位置に対応するそれぞれの閾値と比較する構成とすることができる。
【００１４】
これにより、画像データのハーフトーン化処理を行う際に、複数の画素の並列処理による処理の高速化を簡易な構成により実現する画像処理装置を提供することができる。
【００１５】
なお、上記課題を解決するため、本発明は、上記画像処理装置における画像処理方法、又は、その画像処理方法をコンピュータに実現させるためのコンピュータプログラムとしてもよい。
【発明の効果】
【００１６】
本発明の画像処理装置、画像処理方法、及び、コンピュータプログラムによれば、画像データのハーフトーン化処理を行う際に、複数の画素の並列処理による処理の高速化を簡易な構成により実現する画像処理装置、画像処理方法、及び、コンピュータプログラムを提供することが可能になる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面に基づき説明する。なお、以下の実施の形態において「閾値」を「しきい値」ともいう。
【００１８】
〔本発明の実施の形態〕
（多色画像形成装置の機構部の構成の例）
図１は、本発明の実施の形態に係る画像処理装置を実装する多色画像形成装置の機構部の構成例を示す図である。図１では、多色画像形成装置としてカラープリンタ１を示す。カラープリンタ１は、４色（Ｙ、Ｍ、Ｃ、Ｋ）の画像をそれぞれ独立の作像系で形成し、この４色の画像を合成する４ドラムタンデムエンジンタイプの多色画像形成装置である。
【００１９】
（カラープリンタ１の電装・制御部のハードウェア構成）
図２は、カラープリンタ１の電装・制御部のハードウェア構成の例を示す図である。図２の電装・制御部は、プリンタコントローラボード１０が、ネットワークを介してパーソナルコンピュータ（以下、「ＰＣ」という。）９０に対して接続され、また、プリンタエンジン７００と接続される。
【００２０】
プリンタコントローラボード１０は、メモリコントローラ内蔵ＣＰＵ４０、画像処理ＡＳＩＣ５０、及び、パネル制御ＡＳＩＣ８０を有し、これらがバスを介して接続されている。メモリコントローラ内蔵ＣＰＵ４０は、さらに、メインメモリ６０及びＲＯＭ７０と接続されている。
【００２１】
メモリコントローラ内蔵ＣＰＵ４０は、ＣＰＵ４１、ＣＰＵ  インタフェース（以下、「ＣＰＵ  Ｉ／Ｆ」という。）４２、メモリアービタ４３、通信コントローラ４４、描画部４５、メモリコントローラ４６、及び、バスコントローラ４９を有する。
【００２２】
ＣＰＵ４１は、カラープリンタ１の装置全体の制御を行う。ＣＰＵ４１は、また、ＰＣ９０から伝送されるＰＤＬ（ｐａｇｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ）を解析し、描画部４５に対する描画コマンドの出力、及び、画像処理ＡＳＩＣ５０に対するパラメータの生成等を行う。ＣＰＵ  Ｉ／Ｆ４２は、ＣＰＵ４１のインタフェースであり、メモリアービタ４３を介してメインメモリ６０及び他のコントローラ等に接続されている。
【００２３】
メモリアービタ４３は、メモリコントローラ内蔵ＣＰＵ４０が有する各コントローラの、メインメモリ６０に対するアクセスの調停を行う。メモリコントローラ４６は、メインメモリ６０の制御を行う。メモリコントローラ４６は、メモリアービタ４３を介して各コントローラと接続される。
【００２４】
バスコントローラ４９は、バスに対してデータを入出力する各コントローラ及びバスの間の調停を行う。通信コントローラ４４は、ネットワークに接続され、ネットワークを介して接続されたＰＣ９０等から送信される各データやコマンド等を受信する。通信コントローラ４４は、また、メモリアービタ４３を介して接続される各コントローラに対して受信したデータ等を出力し、各コントローラから入力されるデータ等を、ＰＣ９０等に対して送信する。
【００２５】
描画部４５は、入力されたＰＤＬが解析され生成された描画コマンドにより、画像データの描画を行う。描画部４５は、描画される画像データを、メインメモリ６０に格納させる。
【００２６】
ＲＯＭ７０は、ＣＰＵ４１が実行するコンピュータプログラムや、文字のフォント情報等を格納する。メインメモリ６０は、画像データ、画像データが圧縮された符号データ、及び、ＣＰＵ４１が実行するコンピュータプログラム等が格納される。メインメモリ６０が格納する画像データは、ＰＣ９０から入力される画像データ、及び、プリンタエンジン７００から出力される画像の画像データの他に、これらの画像データに対して所定の画像処理が行われたものでもよい。
【００２７】
画像処理ＡＳＩＣ５０は、画像処理部５００、バスインタフェース（以下、「バスＩ／Ｆ」という。）５８、及び、エンジンコントローラ５９を有する。画像処理部５００は、ＣＰＵ４１により生成された画像処理のパラメータが入力され、そのパラメータに従う画像処理を行う。画像処理部５００は、画像処理する画像データを、メインメモリ６０から読み込み、また、画像処理された画像データを、メインメモリ６０の所定の領域に格納させる。
【００２８】
バスＩ／Ｆ５８は、画像処理ＡＳＩＣ５０がバスに接続される際のインタフェースである。エンジンコントローラ５９は、プリンタエンジン７００の制御を行う。
【００２９】
パネル制御ＡＳＩＣ８０は、パネル８１に接続され、ＣＰＵ４１からの制御コマンド等に従い、パネル８１の制御を行う。パネル制御ＡＳＩＣ８０は、パネルコントローラ８９及びバスＩ／Ｆ８８を有する。パネルコントローラ８９は、パネル８１に表示するデータの制御、及び、パネル８１から入力される情報の取得等を行う。バスＩ／Ｆ８８は、バスに接続され、メモリコントローラ内蔵ＣＰＵ４０からのデータの入出力を行う。
パネル８１は、カラープリンタ１の状態の表示を行い、また、カラープリンタ１に対する操作者による指示を受け付ける。
【００３０】
プリンタエンジン７００は、エンジンコントローラ５９の制御により、画像を媒体上に形成する。ＰＣ９０は、カラープリンタ１に出力させる画像のＰＤＬを作成し、ネットワークを介してＰＤＬをカラープリンタ１に対して出力する。
【００３１】
（カラープリンタ１における処理の概略のフロー図）
図３は、カラープリンタ１における処理の概略を示すフロー図である。図３では、入力された画像データが解析され、画像処理された後、プリンタエンジン７００に対して出力される。図３における処理は、ＰＤＬ記憶ステップＳ２０１、ＰＤＬ解析ステップＳ２０２、描画処理ステップＳ２０３、ＲＧＢＡバンド画像記憶ステップＳ２０４、画像処理ステップＳ２５０、及び、階調処理後ページ画像記憶ステップＳ２０６を有し、上記の順に各ステップの処理が実行される。
【００３２】
ＰＤＬ記憶ステップＳ２０１では、メインメモリ６０が、ＰＣ９０から入力されるＰＤＬデータを格納する。ＰＤＬ解析ステップＳ２０２では、ＣＰＵ４１が、コンピュータプログラムを実行することにより、メインメモリ６０に格納されているＰＤＬデータを解析する。
【００３３】
描画処理ステップＳ２０３では、ＣＰＵ４１が、メインメモリ６０に格納されているＰＤＬデータを解析して生成した描画コマンドにより、ＲＧＢ色空間で表される画像データを描画し、メインメモリ６０に転送する。ここで生成される画像データは、カラープリンタ１が画像を処理する単位の一である「バンド」単位のバンドデータである。ＲＧＢバンド画像記憶ステップＳ２０４では、メインメモリ６０にバンドデータが格納される。
【００３４】
画像処理ステップＳ２５０は、画像読み込み処理ステップＳ２５１、色変換処理ステップＳ２５２、及び、階調処理ステップＳ２５３を有する。画像読み込み処理ステップＳ２５１では、ＲＧＢバンド画像記憶ステップＳ２０４において処理されたＲＧＢデータが読み込まれる。画像読み込み処理ステップＳ２５１は、ＲＧＢデータのうち、ラスタ順に連続する複数の画素が並列に読み込まれるとよい。
【００３５】
色変換処理ステップＳ２５２では、ステップＳ２５１で読み込まれたＲＧＢデータに対し、色空間変換処理が行われ、ＣＭＹＫデータが生成される。ステップＳ２５１で読み込まれた複数の画素の画素値が全て同一の場合には、一の画素に対する色空間変換が行われる。
【００３６】
階調処理ステップＳ２５３では、ステップＳ２５２において色空間変換が行われたＣＭＹＫデータに対し、ハーフトーン処理が行われる。ステップＳ２５１で読み込まれた複数の画素値が全て同一の場合は、ハーフトーン処理は、ステップＳ２５２で色空間変換が行われた画素の画素値を用いて行われる。
【００３７】
階調処理後ページ画像記憶ステップＳ２０６では、メインメモリ６０に、ステップＳ２５３のハーフトーン処理により得られた画像データが格納される。ステップＳ２０６の処理の後、プリンタエンジン７００が、メインメモリ６０に格納された画像データを印刷して出力する。
【００３８】
（メインメモリ６０の記憶領域）
図４は、メインメモリ６０の記憶領域を説明する図である。メインメモリ６０は、ＰＤＬ格納メモリ領域、プログラム領域、ＲＧＢバンド画像格納領域、画像処理部パラメータ領域、階調処理後ページメモリ格納領域、及び、その他の領域を有する。
【００３９】
ＰＤＬ格納メモリ領域は、ＰＣ９０から入力されたＰＤＬデータを格納する。プログラム領域は、ＣＰＵ４１が実行するコンピュータプログラムを格納する。ＲＧＢバンド画像格納領域は、描画部４５により描画された画像のＲＧＢデータを、バンド単位に格納する。
【００４０】
画像処理部パラメータ領域は、格子点データ格納領域、ガンマデータ格納領域、及び、閾値データ格納領域を有する。格子点データ格納領域、及び、ガンマデータ格納領域は、色変換処理ステップＳ２５２において色空間変換を行う際のパラメータを格納する。
【００４１】
閾値データ格納領域は、階調処理ステップＳ２５３において、ハーフトーン生成処理を行う際の閾値テーブルを格納する。閾値データ格納領域に格納される閾値テーブルは、ハーフトーン処理を行う画像データを構成する色コンポーネント毎に設けられてよい。
【００４２】
階調処理後ページメモリ格納領域は、Ｃ版ページメモリ格納領域、Ｍ版ページメモリ格納領域、Ｙ版ページメモリ格納領域、及び、Ｋ版ページメモリ格納領域を有する。階調処理後ページメモリ格納領域が有す各格納領域は、階調処理された後の色コンポーネント毎に設けられるとよく、ＣＭＹＫ色空間の他に、例えば、ＲＧＢ色空間の色コンポーネント毎に対応して設けられてもよい。
【００４３】
（画像処理部５００のハードウェア構成）
図５は、画像処理部５００のハードウェア構成を説明する図である。図５の画像処理部５００は、画像読み込み部５１０、色変換処理部５２０、階調処理部５３０、パラメータアドレス生成部５４１、画像処理パラメータ読み込み部５４２、ＤＭＡパラメータ記憶部５４３、格子点データ記憶部５５１、ガンマテーブル記憶部５５２、ハーフトーンパラメータ記憶部５６１、奇数閾値マトリックス記憶部５６２、偶数閾値マトリックス記憶部５６３、画像処理後画像アドレス生成部５８１、画像処理後画像書き込み部５８２、画像処理後画像バッファ部５８３、及び、バスアービタインタフェース（以下、「バスアービタＩ／Ｆ」という。）５９０を有する。
【００４４】
バスアービタ−Ｉ／Ｆ５９０は、画像読み込み部５１０、画像処理パラメータ読み込み部５４２、及び、画像処理後画像書き込み部５８２のそれぞれが、バスＩ／Ｆ５８を介してバスに対してデータを入出力する際の調停を行う。
【００４５】
パラメータアドレス生成部５４１は、メインメモリ６０上の画像処理部パラメータ領域に格納されているパラメータのアドレスを生成する。画像処理パラメータ読み込み部５４２は、パラメータアドレス生成部５４１により生成されたアドレスにより、メインメモリ６０に格納されている画像処理パラメータを読み出す。
【００４６】
ＤＭＡパラメータ記憶部５４３は、画像処理パラメータ読み込み部５４２が画像処理パラメータを読み込む際に用いたアドレス等のパラメータを、画像処理パラメータ読み込み部５４２から受信して格納する。ＤＭＡパラメータ記憶部５４３が格納するパラメータは、バンドの幅である多値ＲＧＢバンド幅、バンドの高さである多値ＲＧＢバンド高さ、バンドデータのメインメモリ６０上の開始アドレスであるＲＧＢバンドスタートアドレス、階調処理された後のバンドの幅と高さである階調処理後ＣＭＹＫバンド幅及び階調処理後ＣＭＹＫバンド高さ、並びに、Ｃ、Ｍ、Ｙ、Ｋそれぞれの色コンポーネントのバンドデータをメインメモリ６０上に格納する際のスタートアドレス等である。
【００４７】
画像読み込み部５１０は、バンド画像アドレス生成部５１１、ワード単位のＲＧＢバンド画像読み込み部５１２、ＲＧＢデータ切り出し部５１３、及び、同一色判定部５１４を有する。
【００４８】
バンド画像アドレス生成部５１１は、メインメモリ６０からバンドデータを読み出す際のアドレスを生成する。バンド画像アドレス生成部５１１は、メインメモリ６０における画像データの水平ライン毎のアドレスにより、バンドデータを読み込むアドレスを生成する。
【００４９】
ワード単位のＲＧＢバンド画像読み込み部５１２は、メインメモリ６０上のＲＧＢバンド画像格納領域から、複数の画素の画素データを読み込む。ワード単位のＲＧＢバンド画像読み込み部５１２は、バンド画像アドレス生成部５１１により生成された水平ライン毎のアドレスと、メインメモリのワード単位のアドレスとにより、例えば、隣接する２画素分の画素データを同時に読み込む。より詳細には、水平ライン内のアドレスが奇数の画素と、偶数の画素とを、一の要求により読み込む。ＲＧＢＡ色空間による画素データの場合、２画素分の画素データは、６４ｂｉｔとなる。
【００５０】
ＲＧＢデータ切り出し部５１３は、ワード単位のＲＧＢバンド画像読み出し部５１２により読み出された画素データを、画素毎のデータに切り分ける。ＲＧＢデータ切り出し部５１３は、読み出された画素データが２画素、６４ｂｉｔの場合には、３２ｂｉｔの２つの画素データに分ける。
【００５１】
同一色判定部５１４は、ＲＧＢデータ切り出し部５１３により切り出された２つの画素データの画素値が、同一であるか否かの判定を行う。同一色判定部５１４は、入力された画素データを出力し、さらに、入力された２つの画素データの画素値が同一であるか否かのフラグである同一色フラグを出力する。同一色フラグの値は、例えば、２つの画素データの画素値が同一である場合には、「１」であり、「ＯＮ」となる。
【００５２】
色変換処理部５２０は、同一色判定部５１４から入力される２つの画素データの画素値に対し、色空間変換処理を行う。色変換処理部５２０は、入力される画素データを、ＲＧＢＡ色空間からＣＭＹＫ色空間に変換する。色変換処理部５２０は、入力される同一色フラグに基づいて、２つの画素の画素値が同一の場合には、一の画素の画素値に対する色空間変換を行う。色変換処理部５２０は、変換処理されたＣＭＹＫデータと、同一色フラグとを階調処理部５３０に対して出力する。
【００５３】
色変換処理部５２０は、色空間変換の他に、下色除去、色補正等の処理を行う。色変換処理部５２０は、処理に用いるパラメータを格子点データ記憶部５５１及びガンマテーブル記憶部５５２から取得する。
【００５４】
格子点データ記憶部５５１は、画像処理パラメータ読み込み部５４２から入力される格子点データを記憶する。ガンマテーブル記憶部５５２は、画像処理パラメータ読み込み部５４２から入力されるガンマ補正用のパラメータを含むガンマテーブルを記憶する。
【００５５】
階調処理部５３０は、色変換処理部５２０から入力されるＣＭＹＫデータの色コンポーネント毎に、ハーフトーン処理を行う。階調処理部５３０は、ハーフトーン処理に必要なパラメータをハーフトーンパラメータ記憶部５６１から読み出す。階調処理部５３０は、さらに、入力されるＣＭＹＫデータの奇数画素と偶数画素とのそれぞれに対し、奇数閾値マトリックスに含まれる値と偶数閾値マトリックスに含まれる値とによる比較により、ハーフトーン処理を行う。階調処理部５３０は、ハーフトーン処理後の画素データを、メインメモリのワード単位に出力する。
【００５６】
ハーフトーンパラメータ記憶部５６１は、メインメモリ６０から読み出された階調処理部５３０がハーフトーン処理する際のパラメータを記憶する。奇数閾値マトリックス記憶部５６２及び偶数閾値マトリックス記憶部５６３は、それぞれ、画素データの水平ラインの位置に基づいて、奇数画素と偶数画素とに対応するハーフトーン処理のための閾値マトリックスを記憶する。
【００５７】
画像処理後画像バッファ部５８３は、階調処理部５３０によりハーフトーン化された画素のデータを保持する。画像処理後画像バッファ部５８３は、メインメモリ６０に書き込み処理を行う際の、バーストレングスに対応する数のハーフトーン化された画素のデータを保持する。
【００５８】
画像処理後画像書き込み部５８２は、画像処理後画像バッファ部５８３に格納されているハーフトーン化された画素のデータを、バスを介してメインメモリ６０に対して出力する。画像処理後画像書き込み部５８２は、メインメモリ６０のワード単位で、画素データを出力する。
【００５９】
画像処理後画像アドレス生成部５８１は、画像処理後画像書き込み部５８２が画素データをメインメモリ６０に格納させる際の、アドレスを生成する。画像処理後画像アドレス生成部５８１は、ＤＭＡパラメータ記憶部５４３に格納されているパラメータに基づいて、メインメモリ６０上のアドレスを生成する。より詳細には、画像処理パラメータ読み込み部５４２が画素データを読み込む際と同様に、画像データの水平ラインのアドレスを生成する。
【００６０】
（画像処理部５００の処理の例）
図６は、画像処理部５００の処理の例を示すフロー図である。図６では、２画素の画素データに対し、色変換処理と階調処理とが行われる。図６のステップＳ１０１では、ワード単位のＲＧＢバンド画像読み込み部５１２が、ＲＧＢ色空間によるバンドデータのうち６４ビットの２画素分の画素データを読み込む。
【００６１】
ステップＳ１０１に続いてステップＳ１０２に進み、ＲＧＢデータ切り出し部５１３が、ステップＳ１０１で読み込まれた２画素分の画素データを、１画素毎に切り分ける。ステップＳ１０２に続いてステップＳ１０３に進み、同一色判定部５１４が、ステップＳ１０２で切り分けられた２画素の画素値が、同一であるか否かの判断を行う。同一である場合には、ステップＳ１０４に進み、同一ではない場合には、ステップＳ１０７に進む。
【００６２】
ステップＳ１０３に続くステップＳ１０４では、色変換処理部５２０が、ステップＳ１０２で切り分けられた２画素のうち、例えば、画像データ中の水平ラインのアドレスが偶数である画素に対し、色変換処理を行い、ＲＧＢ色空間からＣＭＹＫ色空間による画素データに変換する。
【００６３】
ステップＳ１０４に続いてステップＳ１０５に進み、階調処理部５３０が、ステップＳ１０４で色変換処理された画素に対し、偶数位置の画素に対する閾値マトリックスにより、ハーフトーン処理を行う。これにより、偶数位置の階調変換後の画素が生成される。生成された画素は、画像処理後画像バッファ部５８３に格納される。
【００６４】
ステップＳ１０５に続いてステップＳ１０６に進み、階調処理部５３０が、ステップＳ１０４で色変換処理された画素に対し、奇数位置の画素に対する閾値マトリックスにより、ハーフトーン処理を行う。これにより、奇数位置の階調変換後の画素が生成される。生成された画素は、画像処理後画像バッファ部５８３に格納される。なお、ステップＳ１０５とステップＳ１０６とは、同時に実行されるとよい。
【００６５】
一方、ステップＳ１０３に続くステップＳ１０７では、色変換処理部５２０が、ステップＳ１０２で切り分けられた画素のうち、画像データの偶数位置のアドレスの画素に対する色変換処理を行い、ＲＧＢ色空間からＣＭＹＫ色空間による画素データに変換する。
【００６６】
ステップＳ１０７に続いてステップＳ１０８に進み、階調処理部５３０が、ステップＳ１０７で色変換処理された画素に対し、画像データの偶数位置のアドレスの画素に対する閾値マトリックスにより、ハーフトーン処理を行う。これにより、偶数位置の階調変換後の画素が生成される。生成された画素は、画像処理後画像バッファ部５８３に格納される。
【００６７】
ステップＳ１０８に続いてステップＳ１０９に進み、色変換処理部５２０が、ステップＳ１０２で切り分けられた画素のうち、画像データの奇数位置のアドレスの画素に対する色変換処理を行い、ＲＧＢ色空間からＣＭＹＫ色空間による画素データに変換する。
【００６８】
ステップＳ１０９に続いてステップＳ１１０に進み、階調処理部５３０が、ステップＳ１０９で色変換処理された画素に対し、画像データの奇数位置のアドレスの画素に対する閾値マトリックスにより、ハーフトーン処理を行う。これにより、奇数位置の階調変換後の画素が生成される。生成された画素は、画像処理後画像バッファ部５８３に格納される。
【００６９】
ステップＳ１０６又はステップＳ１１０に続いてステップＳ１１１に進み、画像処理後画像バッファ部５８３に格納されている階調変換処理後の画素データを、画像処理後画像書き込み部５８２が、メインメモリ６０に書き込む。
【００７０】
ステップＳ１１１に続いてステップＳ１１２に進み、１バンド分の画素に対する処理が終了したか否かの判断がなされる。終了している場合には、処理を終了する。一方、終了していない場合には、ステップＳ１０１に戻って、画像データにおける次のアドレス位置の画素の画素データを読み込み、処理が繰り返される。
【００７１】
以上の処理により、画像データの偶数位置の画素と奇数位置の画素とをメインメモリ６０から同時に読み込み、その２つの画素の画素値が同一であるか否かの判断に基づいて、処理を行うことにより、処理を高速に行うことができる。より詳細には、画素値が同一である場合には、偶数位置の画素の階調変換と奇数位置の画素の階調変換とを同時に行うことにより、並列処理が可能となる。
【００７２】
（階調処理部５３０のハードウェア構成）
図７は、階調処理部５３０のハードウェア構成を説明する図である。階調処理部５３０は、奇数閾値マトリックス記憶部５６２及び偶数閾値マトリックス記憶部５６３に接続される。階調処理部５３０は、閾値マトリックスアドレス生成部５３１、ＣＭＹＫ画像データ比較器５３２及び５３３、固定長データ生成部５３４を有する。なお、図７中、「ＣＭＹＫ画像データ比較器」を「ＣＭＹＫ比較」と表記する。
【００７３】
閾値マトリックスアドレス生成部５３１は、奇数閾値マトリックス記憶部５６２及び偶数閾値マトリックス記憶部５６３に格納されている閾値テーブルのうち、処理する画素に対応する閾値のアドレスを生成する。
【００７４】
ＣＭＹＫ画像データ比較器５３２は、奇数閾値マトリックス記憶部５６２から取得した奇数位置の画素に対する閾値と、入力されたＣＭＹＫ色空間による奇数位置の画素の画素値との比較を行い、比較結果を出力する。これにより、ハーフトーンに対応する画素の値が得られる。
【００７５】
同様に、ＣＭＹＫ画像データ比較器５３３は、偶数閾値マトリックス記憶部５６３から取得した偶数位置の画素に対する閾値と、入力されたＣＭＹＫ色空間による偶数位置の画素の画素値との比較を行い、比較結果を出力する。これにより、ハーフトーンに対応する画素の画素値が得られる。
【００７６】
なお、奇数位置の画素の画素値と偶数位置の画素の画素値とが一致する場合には、何れか一の画素の画素値のみを比較に用いるとよい。図７では、偶数画素の画素値を用いる例について示す。
固定長データ生成部５３４は、ＣＭＹＫ画像データ比較器５３２及びＣＭＹＫ画像データ比較器５３３から出力される画素データを、３２ｂｉｔの固定長に変換する。
【００７７】
（バンドデータと１ワード分のデータの例）
図８及び図９は、画像データの構成例を示す図である。図８は、バンドデータの構成例を示す図であって、バンドの幅方向に６７７４個の画素が並び、バンドの高さ方向に２５６個のラインが並んでいる。図８では、幅方向のアドレスが奇数の画素が「奇数画素」であり、幅方向のアドレスが偶数の画素が「偶数画素」である。
【００７８】
図９は、メインメモリ６０の１ワード分のデータの例を示す図である。図９では、２画素分、すなわち、６４ｂｉｔのデータの例が示されている。１ワード分のデータは、偶数画素と奇数画素との組である。そこで、ワード単位のＲＧＢバンド画像読み込み部５１２は、１ワード分のデータを読み込むことにより、２画素分の画素データを一のアクセスにより読み込むことができる。
【００７９】
（閾値マトリックスの例）
図１０は、閾値マトリックスの例を説明する図である。図１０（ａ）は、バンドデータの画素を説明する図である。図中、ラインのアドレスが「０」、水平ライン方向のアドレスが「１」の画素を「０−１」と表記する。
【００８０】
図１０（ｂ）は、縦横４画素分に対応する閾値マトリックスを説明する図である。縦横４画素分の閾値マトリックスを「４＊４マトリックス」と表記する。図１０（ｃ）は、図１０（ｂ）の閾値マトリックスに対応する、奇数画素の閾値テーブルと偶数画素の閾値テーブルとを示す図である。
【００８１】
図１０（ｃ）の偶数画素の閾値マトリックスは、図１０（ｂ）のマトリックスの要素のうち、水平方向のアドレスが偶数の画素に対応する閾値が含まれている。また、図１０（ｃ）の奇数画素の閾値マトリックスは、図１０（ｂ）のマトリックスの要素のうち、水平方向のアドレスが奇数の画素に対応する閾値が含まれている。
【００８２】
（階調処理の例）
図１１は、階調処理部５３０による階調処理を説明するフロー図である。図１１では、入力された画像データに対し、例えば、図１０（ｃ）の閾値マトリックスが適用される処理が行われる。
【００８３】
図１１のステップＳ２０１では、閾値マトリックスに対応する縦方向のアドレスが計算される。より詳細には、図１０に示す４＊４マトリックスが用いられる場合には、縦方向のアドレスは、０ないし３の何れか一の整数となる。ここでは、閾値マトリックスに対応する縦方向のアドレスを、Ｙディザアドレス、横方向のアドレスを、Ｘディザアドレスという。
【００８４】
そこで、Ｙディザアドレスは、処理している水平ラインのアドレス、すなわち、画像データ中のＹ座標を、Ｙ方向のディザサイズで除した剰余となる。なお、ディザサイズとは、閾値マトリックスのサイズである。ステップＳ２０１に続いてステップＳ２０２に進み、Ｘディザアドレスを値０に初期化する。Ｘディザアドレスは、閾値マトリックスの横方向のアドレスに対応する。
【００８５】
ステップＳ２０２に続いてステップＳ２０３に進み、色変換処理部５２０から、ＣＭＹＫデータと、同一色であるか否かを示す同一色フラグを受信する。ステップＳ２０３に続いてステップＳ２０４に進み、閾値マトリックスアドレス生成部５３１が、閾値マトリックスのアドレスを生成する。ここでは、次式（１）により、アドレスが計算される。
閾値マトリックスのアドレス＝（Ｙディザアドレス）＊（Ｘ方向のディザサイズ）＋（Ｘディザアドレス）・・・（１）
【００８６】
ステップＳ２０４に続いてステップＳ２０５に進み、ステップＳ２０４で生成された閾値マトリックスのアドレスに基づいて、奇数閾値マトリックス記憶部５６２及び偶数閾値マトリックス記憶部５６３から奇数閾値データと偶数閾値データとが読み込まれる。
【００８７】
ステップＳ２０５に続いてステップＳ２０６に進み、ＣＭＹＫ画像データ比較器５３２が、入力された偶数画素のＣＭＹＫデータと、奇数閾値データとの比較を行い、奇数ＣＭＹＫ比較結果を生成する。さらに、ＣＭＹＫ画像データ比較器５３３が、入力された偶数画素のＣＭＹＫデータと、偶数閾値データとの比較を行い、偶数ＣＭＹＫ比較結果を生成する。
【００８８】
ステップＳ２０６に続いてステップＳ２０７に進み、同一色フラグの値が１、すなわち、ＯＮか否かの判断がなされる。同一フラグがＯＮの場合は、ステップＳ２１０に進み、ＯＮではない場合には、ステップＳ２０８に進む。ステップＳ２０７に続くステップＳ２０８では、ＣＭＹＫ画像データ比較器５３２が、新たなＣＭＹＫデータを受け取る。このＣＭＹＫデータは、奇数画素の画素データである。
【００８９】
ステップＳ２０８に続いてステップＳ２０９に進み、ＣＭＹＫ画像データ比較器５３２が、奇数画素の画素データであるＣＭＹＫデータと、奇数閾値データとを比較し、奇数ＣＭＹＫ比較結果を生成する。
【００９０】
ステップＳ２０６又はステップＳ２０９に続くステップＳ２１０では、固定長データ生成部５３４が、ステップＳ２０６で生成された偶数ＣＭＹＫ比較結果、及び、ステップＳ２０６又はステップＳ２０９で生成された奇数ＣＭＹＫ比較結果を固定長データに追加させる。
【００９１】
ステップＳ２１０に続いてステップＳ２１１に進み、固定長データ生成部５３４が、ステップＳ２１０でＣＭＹＫ比較結果が追加された固定長データが、所定の固定長であるか否かを判断する。所定の固定長である場合には、ステップＳ２１２に進み、そうではない場合には、ステップＳ２１３に進む。
【００９２】
ステップＳ２１１に続くステップＳ２１２では、固定長データ生成部５３４が、固定長のデータを出力する。固定長のデータのビット長は、例えば、３２ビットである。
【００９３】
ステップＳ２１１又はステップＳ２１２に続くステップＳ２１３では、Ｘディザアドレスの値を１インクリメントする。ステップＳ２１３に続いてステップＳ２１４に進み、Ｘディザアドレスが、Ｘ方向のディザサイズより小さいか否かの判断がなされる。小さい場合には、ステップＳ２１６に進み、そうではない場合には、ステップＳ２１５に進む。
【００９４】
ステップＳ２１４に続くステップＳ２１５では、Ｘディザアドレスの値を０に設定する。ステップＳ２１４又はステップＳ２１５に続くステップＳ２１６では、水平ライン分の処理が終了したか否かの判断がなされる。終了している場合には、ステップＳ２１７に進み、終了していない場合には、ステップＳ２０３に戻って処理を繰り返す。
【００９５】
ステップＳ２１６に続くステップＳ２１７では、１バンド分のバンドデータの処理が終了したか否かの判断がなされる。終了している場合には、処理を終了する。終了していない場合には、ステップＳ２０１に戻って処理を繰り返す。
【００９６】
（画像処理部５００ａのハードウェア構成）
図１２は、画像処理部のハードウェア構成の例であって、図５とは異なる構成の例である。図１２中、図５と同一の機能及び構成を有する各部は、図５と同一の符号を付し、ここでは説明を省略する。
【００９７】
図１２の画像処理部５００ａは、メインメモリ６０から、４画素分、すなわち１２８ｂｉｔの画素データを、一のアクセスにより読み込んで、色変換及び階調処理を行う。画像処理部５００ａは、画像読み込み部５１０ａ、色変換処理部５２０ａ、階調処理部５３０ａ、パラメータアドレス生成部５４１、画像処理パラメータ読み込み部５４２、ＤＭＡパラメータ記憶部５４３、格子点データ記憶部５５１、ガンマテーブル記憶部５５２、ハーフトーンパラメータ記憶部５６１、００閾値マトリックス記憶部５６４、０１閾値マトリックス記憶部５６５、１０閾値マトリックス記憶部５６６、１１閾値マトリックス記憶部５６７、画像処理後画像アドレス生成部５８１、画像処理後画像書き込み部５８２、画像処理後画像バッファ部５８３、及び、バスアービタインタフェース（以下、「バスアービタＩ／Ｆ」という。）５９０を有する。
【００９８】
画像読み込み部５１０ａは、バンド画像アドレス生成部５１１、ワード単位のＲＧＢバンド画像読み込み部５１２ａ、ＲＧＢデータ切り出し部５１３ａ、及び、同一色判定部５１４ａを有する。
【００９９】
ワード単位のＲＧＢバンド画像読み込み部５１２ａは、メインメモリ６０上のＲＧＢバンド画像格納領域から、複数の画素の画素データを読み込む。ワード単位のＲＧＢバンド画像読み込み部５１２ａは、隣接する４画素分の画素データを、一のアクセスにより読み込む。一のアクセスにより読み込まれる４画素分の画素データのデータ長は、１２８ｂｉｔである。
【０１００】
ＲＧＢデータ切り出し部５１３ａは、ワード単位のＲＧＢバンド画像読み出し部５１２により読み出された画素データを、画素毎のデータに切り分ける。ＲＧＢデータ切り出し部５１３ａは、読み出された画素データが４画素、１２８ｂｉｔの場合には、３２ｂｉｔの４つの画素データに分ける。４つの画素データは、例えば、００画素、０１画素、１０画素、及び、１１画素である。
【０１０１】
同一色判定部５１４ａは、ＲＧＢデータ切り出し部５１３ａにより切り出された４つの画素データの画素値が、同一であるか否かの判定を行う。同一色判定部５１４ａは、入力された画素データを出力し、さらに、入力された４つの画素データの画素値が同一であるか否かのフラグである同一色フラグを出力する。なお、同一であるかの否かの判断は、全ての画素の画素値が同一である場合の他に、例えば、前から３つ、又は、前から２つの画素の画素値が同一であるか否かの判断がなされてもよい。
【０１０２】
階調処理部５３０ａは、色変換処理部５２０ａから入力されるＣＭＹＫデータの色コンポーネント毎に、ハーフトーン処理を行う。階調処理部５３０ａは、ハーフトーン処理に必要なパラメータをハーフトーンパラメータ記憶部５６１から読み出す。階調処理部５３０ａは、さらに、入力されるＣＭＹＫデータの４つの画素データのそれぞれに対応する、００閾値マトリックス、０１閾値マトリックス、１０閾値マトリックス、及び、１１閾値マトリックスに基づく比較により、ハーフトーン処理を行う。階調処理部５３０ａは、ハーフトーン処理後の画素データを、メインメモリのワード単位に出力する。
【０１０３】
００閾値マトリックス記憶部５６４、０１閾値マトリックス記憶部５６５、１０閾値マトリックス記憶部５６６、及び、１１閾値マトリックス記憶部５６７は、それぞれ、画素データの水平ラインの位置に基づいて、００画素、０１画素、１０画素、及び、１１画素に対応するハーフトーン処理のための閾値マトリックスを記憶する。
【０１０４】
図１２に示す画像処理部５００ａの構成により、画像データのラスタ順に隣接する４画素分の画素データの画素値が全て又は一部が同一である場合には、同一である画素の色変換処理を１の画素の色変換処理で代表させることにより、処理ステップを減じることができ、処理を高速に行うことができる。さらに、階調処理部５３０ａにおける処理を並列に行うことができ、処理を高速に行うことができる。
【０１０５】
（４画素の階調処理を並列に行う処理の例）
図１３−１及び図１３−２は、階調処理部５３０ａによる階調処理を説明するフロー図である。図１３−１のステップＳ３０１では、ワード単位のＲＧＢバンド画像読み込み部５１２ａが、メインメモリ６０から１２８ｂｉｔの４画素分のＲＧＢデータを読み込む。ステップＳ３０１に続いてステップＳ３０２に進み、ＲＧＢデータ切り出し部５１３ａが、ステップＳ３０１で読み出された１２８ｂｉｔのデータを、１画素毎の画素データに切り分ける。切り分けられた画素データを、それぞれ、００画素、０１画素、１０画素、及び、１１画素とする。
【０１０６】
ステップＳ３０２に続いてステップＳ３０３に進み、同一色判定部５１４ａが、４つの画素の画素値が全て同一であるか否かを判断する。４画素全て同一である場合には、ステップＳ３０４に進み、そうではない場合には、ステップＳ３１０に進む。ステップＳ３０３に続くステップＳ３０４では、同一色判定部５１４ａが、同一色フラグの値を４に設定する。ステップＳ３０４に続いてステップＳ３０５に進む。
【０１０７】
一方、ステップＳ３０３に続くステップＳ３１０では、同一色判定部５１４ａが、ステップＳ３０２で切り分けられた４画素の画素データのうち、画像データのラスタ順において、前から３画素の画素値が同一であるか否かの判断を行う。同一である場合には、ステップＳ３１１に進み、そうではない場合には、ステップＳ３１８に進む。ステップＳ３１０に続くステップＳ３１１では、同一色判定部５１４ａが、同意何時色フラグの値を３に設定する。ステップＳ３１１に続いてステップＳ３１２に進む。
【０１０８】
さらに、ステップＳ３１０に続くステップＳ３１８では、同一色判定部５１４ａが、ステップＳ３０１で切り分けられた４画素の画素データのうち、画像データのラスタ順において、前から２画素の画素値が同一であるか否かの判断を行う。同一である場合には、ステップＳ３１９に進み、そうではない場合には、ステップＳ３２７に進む。ステップＳ３１８に続くステップＳ３１９では、同一色判定部５１４ａが、同一色フラグの値を２に設定する。ステップＳ３１９に続いてステップＳ３２０に進む。
【０１０９】
さらに、ステップＳ３１８に続くステップＳ３２７では、同一色判定部５１４ａが、同一色フラグの値を１に設定する。ステップＳ３２７に続いてステップＳ３２８に進む。以上の処理により、画像読み込み部５１０ａによる画素データの読み込み、画素毎のデータへの切り分け、及び、同一色フラグの値の設定が行われる。
【０１１０】
ステップＳ３０４に続くステップＳ３０５では、色変換処理部５２０ａが、００画素に対する色変換処理を行い、ＲＧＢデータをＣＭＹＫデータに変換する。ステップＳ３０５に続くステップＳ３０６ないしステップＳ３０９は、処理の順を問わず、並列に行われるとよい。
【０１１１】
ステップＳ３０６では、階調処理部５３０ａが、ステップＳ３０５で色変換された００画素に対し、００画素の閾値マトリックスによる階調処理を行う。これにより、００画素の階調処理後の画素が生成される。
【０１１２】
ステップＳ３０７では、階調処理部５３０ａが、ステップＳ３０５で色変換された００画素に対し、０１画素の閾値マトリックスによる階調処理を行う。これにより、０１画素の階調処理後の画素が生成される。
【０１１３】
ステップＳ３０８では、階調処理部５３０ａが、ステップＳ３０５で色変換された００画素に対し、１０画素の閾値マトリックスによる階調処理を行う。これにより、１０画素の階調処理後の画素が生成される。
【０１１４】
ステップＳ３０９では、階調処理部５３０ａが、ステップＳ３０５で色変換された００画素に対し、１１画素の閾値マトリックスによる階調処理を行う。これにより、１１画素の階調処理後の画素が生成される。ステップＳ３０６ないしステップＳ３０９の処理が全て終了した後、ステップＳ３３６に進む。
【０１１５】
一方、ステップＳ３１１に続くステップＳ３１２では、色変換処理部５２０ａが、００画素に対する色変換処理を行い、ＲＧＢデータをＣＭＹＫデータに変換する。ステップＳ３１２に続くステップＳ３１２ないしステップＳ３１５は、処理の順を問わず、並列に行われるとよい。
【０１１６】
ステップＳ３１３では、階調処理部５３０ａが、ステップＳ３１２で色変換された００画素に対し、００画素の閾値マトリックスによる階調処理を行う。これにより、００画素の階調処理後の画素が生成される。
【０１１７】
ステップＳ３１４では、階調処理部５３０ａが、ステップＳ３１２で色変換された００画素に対し、０１画素の閾値マトリックスによる階調処理を行う。これにより、０１画素の階調処理後の画素が生成される。
【０１１８】
ステップＳ３１５では、階調処理部５３０ａが、ステップＳ３１２で色変換された００画素に対し、１０画素の閾値マトリックスによる階調処理を行う。これにより、１０画素の階調処理後の画素が生成される。
【０１１９】
ステップＳ３１３ないしステップＳ３１５の処理が全て終了した後、ステップＳ３１６に進む。ステップＳ３１６では、色変換処理部５２０ａが、１１画素に対する色変換処理を行い、ＲＧＢデータをＣＭＹＫデータに変換する。
【０１２０】
ステップＳ３１６に続いてステップＳ３１７に進み、階調処理部５３０ａが、ステップＳ３１６で色変換された１１画素に対し、１１画素の閾値マトリックスによる階調処理を行う。これにより、１１画素の階調処理後の画素が生成される。
【０１２１】
また、ステップＳ３１９に続くステップＳ３２０では、色変換処理部５２０ａが、００画素に対する色変換処理を行い、ＲＧＢデータをＣＭＹＫデータに変換する。ステップＳ３２０に続くステップＳ３２１及びステップＳ３２２は、処理の順を問わず、並列に行われるとよい。
【０１２２】
ステップＳ３２１では、階調処理部５３０ａが、ステップＳ３２０で色変換された００画素に対し、００画素の閾値マトリックスによる階調処理を行う。これにより、００画素の階調処理後の画素が生成される。
【０１２３】
ステップＳ３２２では、階調処理部５３０ａが、ステップＳ３２０で色変換された００画素に対し、０１画素の閾値マトリックスによる階調処理を行う。これにより、０１画素の階調処理後の画素が生成される。
【０１２４】
ステップＳ３２２に続いてステップＳ３２３ないしステップＳ３２６の処理に進む。ステップＳ３２３ないしステップＳ３２６の処理は、１０画素及び１１画素に対する処理であり、画素毎に対応する処理が行われる。なお、１０画素に係る処理と１１画素に係る処理とは、その処理順は問われない。
【０１２５】
ステップＳ３２３では、色変換処理部５２０ａが、１０画素に対する色変換処理を行い、ＲＧＢデータをＣＭＹＫデータに変換する。ステップＳ３２３に続くステップＳ３２４では、階調処理部５３０ａが、ステップＳ３２３で色変換された１０画素に対し、１０画素の閾値マトリックスによる階調処理を行う。これにより、１０画素の階調処理後の画素が生成される。
【０１２６】
ステップＳ３２５では、色変換処理部５２０ａが、１１画素に対する色変換処理を行い、ＲＧＢデータをＣＭＹＫデータに変換する。ステップＳ３２５に続くステップＳ３２６では、階調処理部５３０ａが、ステップＳ３２５で色変換された１１画素に対し、１１画素の閾値マトリックスによる階調処理を行う。これにより、１１画素の階調処理後の画素が生成される。ステップＳ３２１ないしステップＳ３２６の処理が終了した後、ステップＳ３３６に進む。
【０１２７】
また、ステップＳ３２７に続くステップＳ３２８ないしステップＳ３３５は、００画素、０１画素、１０画素、及び、１１画素の４つの画素のそれぞれに対し、色変換処理と階調処理とが行われる。これらの処理は、画素毎に独立であってよく、画素間の処理順は問われない。
【０１２８】
ステップＳ３２８では、色変換処理部５２０ａが、００画素に対する色変換処理を行い、ＲＧＢデータをＣＭＹＫデータに変換する。ステップＳ３２８に続くステップＳ３２９では、階調処理部５３０ａが、ステップＳ３２９で色変換された００画素に対し、００画素の閾値マトリックスによる階調処理を行う。これにより、００画素の階調処理後の画素が生成される。
【０１２９】
ステップＳ３３０では、色変換処理部５２０ａが、０１画素に対する色変換処理を行い、ＲＧＢデータをＣＭＹＫデータに変換する。ステップＳ３３０に続くステップＳ３３１では、階調処理部５３０ａが、ステップＳ３３０で色変換された０１画素に対し、０１画素の閾値マトリックスによる階調処理を行う。これにより、０１画素の階調処理後の画素が生成される。
【０１３０】
ステップＳ３３２では、色変換処理部５２０ａが、１０画素に対する色変換処理を行い、ＲＧＢデータをＣＭＹＫデータに変換する。ステップＳ３３２に続くステップＳ３３３では、階調処理部５３０ａが、ステップＳ３３２で色変換された１０画素に対し、１０画素の閾値マトリックスによる階調処理を行う。これにより、１０画素の階調処理後の画素が生成される。
【０１３１】
ステップＳ３３４では、色変換処理部５２０ａが、１１画素に対する色変換処理を行い、ＲＧＢデータをＣＭＹＫデータに変換する。ステップＳ３３４に続くステップＳ３３５では、階調処理部５３０ａが、ステップＳ３３４で色変換された１１画素に対し、１１画素の閾値マトリックスによる階調処理を行う。これにより、１１画素の階調処理後の画素が生成される。ステップＳ３２８ないしＳ３３５の処理が全て終了した後、ステップＳ３３６に進む。
【０１３２】
ステップＳ３３６では、画像処理後画像書き込み部５８２が、００画素、０１画素、１０画素、及び、１１画素の４つの画素の階調処理後の画像データを、メインメモリ６０のワード単位である１２８ｂｉｔ毎に格納させる処理を行う。
【０１３３】
ステップＳ３３６に続いてステップＳ３３７に進み、１バンド分のバンドデータに対する処理が全て終了したか否かの判断がなされる。１バンド分の処理が終了している場合には、処理を終了し、１バンド分の処理が終了していない場合には、ステップＳ３０１に戻って処理を繰り返す。
【０１３４】
（バンドデータと１２８ビットの１ワード分のデータの例）
図１４及び図１５は、画像データの構成例を示す図である。図１４は、バンドデータの構成例を示す図であって、図８とは異なり、４画素毎に画素の種類が繰り返される。図１４では、バンドの幅方向に６７７４個の画素が並び、バンドの高さ方向に２５６個のラインが並んでいる。図１４では、幅方向に、００画素、０１画素、１０画素、及び、１１画素が繰り返される。
【０１３５】
図１５は、メインメモリ６０の１ワード分のデータの例を示す図であって、１ワードが１２８ｂｉｔの場合の例を示す図である。図１５では、４画素分の１２８ｂｉｔのデータの例が示されている。１ワード分のデータは、４画素分のデータからなる。そこで、ワード単位のＲＧＢバンド画像読み込み部５１２ａは、１ワード分のデータを読み込むことにより、４画素分の画素データを一のアクセスにより読み込むことができる。
【０１３６】
（閾値マトリックスの例）
図１６は、閾値マトリックスの例を説明する図であって、４画素毎に閾値テーブルを異ならせる場合の例である。図１６（ａ）は、バンドデータの画素を説明する図である。図中、ラインのアドレスが「０」、水平ライン方向のアドレスが「１」の画素を「０−１」と表記する。
【０１３７】
図１６（ｂ）は、縦横４画素分に対応する閾値マトリックスを説明する図である。縦横４画素分の閾値マトリックスを「４＊４マトリックス」と表記する。図１６（ｃ）は、図１６（ｂ）の閾値マトリックスに対応する、００画素、０１画素、１０画素、及び、１１画素の閾値テーブルを示す図である。
【０１３８】
図１６（ｃ）の００画素の閾値マトリックスは、図１０（ｂ）のマトリックスの要素のうち、水平方向のアドレスが４の倍数の画素に対応する閾値が含まれている。また、図１６（ｃ）の０１画素の閾値マトリックスは、図１６（ｂ）のマトリックスの要素のうち、水平方向のアドレスが４で除した際の剰余が１である画素に対応する閾値が含まれている。
【０１３９】
（コンピュータ等による実現）
図１７は、本発明の実施の形態に係る画像処理装置を実現するコンピュータの構成を説明する図である。図１７のコンピュータは、主処理部４００、入力装置４１０、表示装置４２０、スキャナ４３０、プロッタ４４０、ＮＩＣ４６０、ドライブ装置４８０、ハードディスク装置４９０、入力Ｉ／Ｆ４１９、表示Ｉ／Ｆ４２９、スキャナＩ／Ｆ４３９、プロッタＩ／Ｆ４４９、ドライブＩ／Ｆ４８９、及び、ＨＤＤＩ／Ｆ４９９を有する。
【０１４０】
主処理部４００は、コンピュータプログラムを実行して各機能を実現する。主処理部４００は、例えば、ＣＰＵ４０１、ＲＯＭ４０８、及び、ＲＡＭ４０９を有する。ＣＰＵ４０１は、コンピュータプログラムを実行することにより、コンピュータが有する各デバイス等の制御を行う。ＲＯＭ４０８は、例えば、コンピュータプログラムやパラメータ等が格納され、ＣＰＵ４０１にそれらが供せられる。ＲＡＭ４０９は、例えば、ＣＰＵ４０１がコンピュータプログラムを実行する際のワークメモリとして供せられる。
【０１４１】
入力装置４１０は、例えば、キーボードやマウス等の入力デバイスとして構成され、コンピュータに対する指示等が入力される。表示装置４２０は、コンピュータの状態等が表示される。スキャナ４３０は、画像を光学的に読み取って、画像データを生成する。プロッタ４４０は、媒体上に画像を形成して出力する。
【０１４２】
ＮＩＣ４６０は、コンピュータと外部とをネットワークを介して接続する際のインタフェースの機能を実現し、その制御を行う。ドライブ装置４８０は、記録媒体が挿入され、その記録媒体に記録された情報を読み出し、またその記録媒体に情報を記録する。ＨＤＤ４９０は、大容量のデータを格納する記憶手段である。
【０１４３】
入力Ｉ／Ｆ４１９は、表示Ｉ／Ｆ４２９、スキャナＩ／Ｆ４３９、プロッタＩ／Ｆ４４９、ドライブＩ／Ｆ４８９、及び、ＨＤＤ−Ｉ／Ｆ４９９は、それぞれ、入力装置４１０、表示装置４２０、スキャナ４３０、プロッタ４４０、ドライブ装置４８０、及び、ＨＤＤ４９０がバスを介して主処理部４００と接続される際のインタフェースである。
【０１４４】
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨をそこなわない範囲で変更することが可能である。
【０１４５】
本実施の形態による画像処理装置では、複数画素をメモリから同時に読み込み、同一色であるか判断し、同一色であれば、色変換処理を一の画素に対して行なう。さらに、階調処理の際に、複数画素を並列に階調処理を行うことにより、高速化することができる。なお、同一色ではない場合は、画素毎にシリアルに処理を行う。
【０１４６】
また、階調処理の閾値テーブルを複数画素のそれぞれに対応させて分割し、その分割された閾値テーブルをメモリに格納させ、並列にアクセスさせることにより、例えば、偶数用階調処理装置と奇数用階調処理装置とへ並列に閾値を読み込ませることができ、高速に階調処理を行うことができる。この際に、閾値テーブルのメモリは、分割しない場合に比して、増加することがない。
【０１４７】
また、複数の画素のうち、並列処理する画素が全て同じ色の場合のみではなく、先頭から何画素分が同じであれば、同一色の画素に対して並列処理することを特徴とする。
【図面の簡単な説明】
【０１４８】
【図１】本発明の実施の形態に係る画像処理装置を実装する多色画像形成装置の機構部の構成例を示す図である。
【図２】カラープリンタ１の電装・制御部のハードウェア構成の例を示す図である。
【図３】カラープリンタ１における処理の概略を示すフロー図である。
【図４】メインメモリ６０の記憶領域を説明する図である。
【図５】画像処理部５００のハードウェア構成を説明する図である。
【図６】画像処理部５００の処理の例を示すフロー図である。
【図７】階調処理部５３０のハードウェア構成を説明する図である。
【図８】バンドデータの構成例を示す図（その１）である。
【図９】１ワード分のデータの例を示す図（その１）である。
【図１０】閾値マトリックスの例を説明する図（その１）である。
【図１１】階調処理部５３０による階調処理を説明するフロー図である。
【図１２】画像処理部５００ａのハードウェア構成を説明する図である。
【図１３−１】階調処理部５３０ａによる階調処理を説明するフロー図（その１）である。
【図１３−２】階調処理部５３０ａによる階調処理を説明するフロー図（その２）である。
【図１４】バンドデータの構成例を示す図（その２）である。
【図１５】１ワード分のデータの例を示す図（その２）である。
【図１６】閾値マトリックスの例を説明する図（その２）である。
【図１７】コンピュータにより画像処理装置を実現する際の構成の例を示す図である。
【符号の説明】
【０１４９】
１     カラープリンタ
１０   プリンタコントローラボード
４０   メモリコントローラ内蔵ＣＰＵ
４３   メモリアービタ
４４   通信コントローラ
４５   描画部
４６   メモリコントローラ
４９   バスコントローラ
５０   画像処理ＡＳＩＣ
５８   バスＩ／Ｆ
５９   エンジンコントローラ
６０   メインメモリ
８０   パネル制御ＡＳＩＣ
８１   パネル
８８   バスＩ／Ｆ
８９   パネルコントローラ
４００ 主処理部
４１０ 入力装置
４１９ 入力Ｉ／Ｆ
４２０ 表示装置
４２９ 表示Ｉ／Ｆ
４３０ スキャナ
４３９ スキャナＩ／Ｆ
４４０ プロッタ
４４９ プロッタＩ／Ｆ
４８０ ドライブ装置
４８９ ドライブＩ／Ｆ
４９０ ハードディスク装置
５００、５００ａ     画像処理部
５１０、５１０ａ     画像読み込み部
５１１ バンド画像アドレス生成部
５１２、５１２ａ     ワード単位のＲＧＢバンド画像読み込み部
５１３、５１３ａ     ＲＧＢデータ切り出し部
５１４、５１４ａ     同一色判定部
５２０、５２０ａ     色変換処理部
５３０、５３０ａ     階調処理部
５３１ 閾値マトリックスアドレス生成部
５３２ ＣＭＹＫ画像データ比較器
５３３ ＣＭＹＫ画像データ比較器
５３４ 固定長データ生成部
５４１ パラメータアドレス生成部
５４２ 画像処理パラメータ読み込み部
５４３ ＤＭＡパラメータ記憶部
５５１ 格子点データ記憶部
５５２ ガンマテーブル記憶部
５６１ ハーフトーンパラメータ記憶部
５６２ 奇数閾値マトリックス記憶部
５６３ 偶数閾値マトリックス記憶部
５６４ ００閾値マトリックス記憶部
５６５ ０１閾値マトリックス記憶部
５６６ １０閾値マトリックス記憶部
５６７ １１閾値マトリックス記憶部
５８１ 画像処理後画像アドレス生成部
５８２ 画像処理後画像書き込み部
５８３ 画像処理後画像バッファ部
５９０ バスアービタＩ／Ｆ
７００ プリンタエンジン
【図１】
2010074445.tif 000003
【図２】
2010074445.tif 000004
【図３】
2010074445.tif 000005
【図４】
2010074445.tif 000006
【図５】
2010074445.tif 000007
【図６】
2010074445.tif 000008
【図７】
2010074445.tif 000009
【図８】
2010074445.tif 000010
【図９】
2010074445.tif 000011
【図１０】
2010074445.tif 000012
【図１１】
2010074445.tif 000013
【図１２】
2010074445.tif 000014
【図１３−１】
2010074445.tif 000015
【図１３−２】
2010074445.tif 000016
【図１４】
2010074445.tif 000017
【図１５】
2010074445.tif 000018
【図１６】
2010074445.tif 000019
【図１７】
2010074445.tif 000020