(57)【要約】【課題】入力画像データの画像の品質を維持しつつ、メモリ上への画像の描画を高速にする画像処理装置及び画像処理方法を提供すること。【解決手段】入力画像データに含まれる色値の情報を生成する色情報生成手段と、前記色値のうち第１の所定数の色値にハッシュ値による第１の識別情報が対応づけられたＩｎｄｅｘテーブルを生成するＩｎｄｅｘテーブル生成手段と、前記入力画像データに含まれる色値毎に前記ハッシュ値による第２の識別情報を生成し、前記第２の識別情報と、前記色値と同一の値を有する前記Ｉｎｄｅｘテーブルに含まれる色値に対応付けられる前記第１の識別情報と、が異なる場合に、前記色値による描画を行い、前記第２の識別情報と前記第１の識別情報と、が同一の場合に、前記第１の識別情報による描画を行う、描画手段と、前記識別情報により描画された画像を、該識別情報に対応する色値に変換する変換手段と、を有する画像処理装置。【選択図】図３
2010220118.tif 000002
【特許請求の範囲】
【請求項１】
入力画像データに含まれる色値の情報を生成する色情報生成手段と、
前記色値のうち第１の所定数の色値にハッシュ値による第１の識別情報が対応づけられたＩｎｄｅｘテーブルを生成するＩｎｄｅｘテーブル生成手段と、
前記入力画像データに含まれる色値毎に前記ハッシュ値による第２の識別情報を生成し、前記第２の識別情報と、前記色値と同一の値を有する前記Ｉｎｄｅｘテーブルに含まれる色値に対応付けられる前記第１の識別情報と、が異なる場合に、前記色値による描画を行い、前記第２の識別情報と前記第１の識別情報と、が同一の場合に、前記第１の識別情報による描画を行う、描画手段と、
前記識別情報により描画された画像を、該識別情報に対応する色値に変換する変換手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記Ｉｎｄｅｘテーブル生成手段は、さらに、前記入力画像データによる画像に含まれる画素毎に、前記識別情報による描画と前記色値による描画との何れの描画を行うかを識別するヘッダ情報を生成し、
前記描画手段は、前記識別情報による描画により、前記ヘッダ情報と前記識別情報とを含む第１のフォーマットの画素データを生成し、前記色値による描画により、前記ヘッダ情報と前記色値とを含む第２のフォーマットの画素データを生成し、
前記第１のフォーマットと前記第２のフォーマットとの２つの画素フォーマットを含む画像データを、一の領域に格納する記憶手段を有することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記変換手段は、前記記憶手段に格納された画像データの画素毎に、前記第１のフォーマット及び前記第２のフォーマットの何れのフォーマットであるかの情報を、前記画素データ毎に含まれるヘッダ情報から取得し、前記第１のフォーマットの画素データを、前記Ｉｎｄｅｘテーブルに基づく色値に変換することを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記Ｉｎｄｅｘテーブル生成手段は、前記入力画像データに含まれるオブジェクト毎に、該オブジェクトに含まれる色値の数が、第１の所定数より少ない場合に、前記Ｉｎｄｅｘテーブルを生成することを特徴とする請求項１ないし３何れか一項に記載の画像処理装置。
【請求項５】
前記Ｉｎｄｅｘテーブルは、前記入力画像データに含まれる色値のうち、描画面積が大きい側から第１の所定数の色値にハッシュ値による第１の識別情報が対応づけられることを特徴とする請求項１記載の画像処理装置。
【請求項６】
前記Ｉｎｄｅｘテーブル生成手段は、さらに、前記第１の所定数より少ない第２の所定数の色値に対し、前記第１の識別情報よりデータ量の少ない第３の識別情報が対応づけ、
前記描画手段は、前記第３の識別情報が対応づけられる色値を有する画素を、前記第３の識別情報により描画することを特徴とする請求項１記載の画像処理装置。
【請求項７】
前記記憶手段は、さらに、前記Ｉｎｄｅｘテーブルを保持する領域を有することを特徴とする請求項２記載の画像処理装置。
【請求項８】
入力画像データに含まれる色値の情報を生成する色情報生成ステップと、
前記色値のうち第１の所定数の色値にハッシュ値による第１の識別情報が対応づけられたＩｎｄｅｘテーブルを生成するＩｎｄｅｘテーブル生成ステップと、
前記入力画像データに含まれる色値毎に前記ハッシュ値による第２の識別情報を生成し、前記第２の識別情報と、前記色値と同一の値を有する前記Ｉｎｄｅｘテーブルに含まれる色値に対応付けられる前記第１の識別情報と、が異なる場合に、前記色値による描画を行い、前記第２の識別情報と前記第１の識別情報と、が同一の場合に、前記第１の識別情報による描画を行う、描画ステップと、
前記識別情報により描画された画像を、該識別情報に対応する色値に変換する変換ステップと、
を有することを特徴とする画像処理方法。
【請求項９】
前記Ｉｎｄｅｘテーブル生成ステップにおいて、さらに、前記入力画像データによる画像に含まれる画素毎に、前記識別情報による描画と前記色値による描画との何れの描画を行うかを識別するヘッダ情報を生成し、
前記描画ステップにおいて、前記識別情報による描画により、前記ヘッダ情報と前記識別情報とを含む第１のフォーマットの画素データを生成し、前記色値による描画により、前記ヘッダ情報と前記色値とを含む第２のフォーマットの画素データを生成し、
前記第１のフォーマットと前記第２のフォーマットとの２つの画素フォーマットを含む画像データを、記憶手段における一の領域に格納する格納ステップを有することを特徴とする請求項８記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
従来から、ＰＤＬを解析して描画する画像形成装置において、プリンタエンジンが出力する画像形式にするため、カラー画像を、少ない色値の数により表現される画像に変換する画像処理の技術がある。このような画像処理は、ＰＤＬを解析して得られる描画コマンドにより、ＲＧＢ値の画像をメモリ上に展開した後、色変換、階調処理等を行い、プリンタエンジンに対して出力する。
【０００３】
ところで、メモリ上に画像を描画する際に、背景をクリアする処理、論理演算処理、半透明処理等は、ＲＧＢ値による処理になるため、描画に時間がかかる。そこで、特開平６−１３９３６４号公報（特許文献１）では、入力画像データをカラーパレットに展開し、カラーパレットによる描画を行うことが開示されている。また、特開平１１−７８１２６号公報（特許文献２）では、カラーパレット数を超える場合に、減色を行うことが開示されている。
【０００４】
またさらに、特開２００７−２１６６７５号公報（特許文献３）には、カラーパレットのパレット数を表すビット数を、画像データ毎に変更することが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献２に記載の発明では、カラーパレット数にあわせて画像データの色数を減らすため、高画質が求められる画像の出力には対応できない。また、特許文献３に記載の発明では、入力画像データの色値の数が増加すると、カラーパレットの色数が増加するため、描画処理の速度が低下する。
【０００６】
本発明は、上記の点に鑑みて、これらの問題を解消するために発明されたものであり、入力画像データの画像の品質を維持しつつ、メモリ上への画像の描画を高速にする画像処理装置及び画像処理方法を提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の画像処理装置は次の如き構成を採用した。
【０００８】
本発明の画像処理装置は、入力画像データに含まれる色値の情報を生成する色情報生成手段と、前記色値のうち第１の所定数の色値にハッシュ値による第１の識別情報が対応づけられたＩｎｄｅｘテーブルを生成するＩｎｄｅｘテーブル生成手段と、前記入力画像データに含まれる色値毎に前記ハッシュ値による第２の識別情報を生成し、前記第２の識別情報と、前記色値と同一の値を有する前記Ｉｎｄｅｘテーブルに含まれる色値に対応付けられる前記第１の識別情報と、が異なる場合に、前記色値による描画を行い、前記第２の識別情報と前記第１の識別情報と、が同一の場合に、前記第１の識別情報による描画を行う、描画手段と、前記識別情報により描画された画像を、該識別情報に対応する色値に変換する変換手段と、を有する構成とすることができる。
【０００９】
これにより、入力画像データの画像の品質を維持しつつ、メモリ上への画像の描画を高速にする画像処理装置を提供することができる。
【００１０】
また、上記目的を達成するために、本発明の画像処理方法は、入力画像データに含まれ
る色値の情報を生成する色情報生成ステップと、前記色値のうち第１の所定数の色値にハッシュ値による第１の識別情報が対応づけられたＩｎｄｅｘテーブルを生成するＩｎｄｅｘテーブル生成ステップと、前記入力画像データに含まれる色値毎に前記ハッシュ値による第２の識別情報を生成し、前記第２の識別情報と、前記色値と同一の値を有する前記Ｉｎｄｅｘテーブルに含まれる色値に対応付けられる前記第１の識別情報と、が異なる場合に、前記色値による描画を行い、前記第２の識別情報と前記第１の識別情報と、が同一の場合に、前記第１の識別情報による描画を行う、描画ステップと、前記識別情報により描画された画像を、該識別情報に対応する色値に変換する変換ステップと、を有する構成とすることができる。
【００１１】
これにより、入力画像データの画像の品質を維持しつつ、メモリ上への画像の描画を高速にする画像処理方法を提供することができる。
【発明の効果】
【００１２】
本発明の画像処理装置及び画像処理方法によれば、入力画像データの画像の品質を維持しつつ、メモリ上への画像の描画を高速にする画像処理装置及び画像処理方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本実施の形態に係る画像処理装置を実装する画像形成装置の機構部の構成例を示す図である。
【図２】図２は、カラープリンタ１０００における制御部の装置構成を示すブロック図である。
【図３】図３は、制御部１００の機能構成の例を示す図である。
【図４】図４は、メインメモリ１３０上に設けられる各領域を説明する図である。
【図５】図５は、画像フォーマットを説明する図である。
【図６】図６は、本実施の形態により処理される画像の例を示す図である。
【図７】図７は、画像ｂが格納されたメインメモリ１３０の各プレーンを示す図である。
【図８】図８は、本実施形態の画像処理方法の全体を説明するフロー図である。
【図９】図９は、色テーブルを生成する処理を説明する図である。
【図１０】図１０は、色テーブルの例を示す図である。
【図１１】図１１は、Ｉｎｄｅｘテーブルを生成する処理を説明する図である。
【図１２】図１２は、Ｉｎｄｅｘ番号を求める処理を示すフロー図である。
【図１３】図１３は、Ｉｎｄｅｘ番号が付加された色テーブルを示す図である。
【図１４】図１４は、中間Ｉｎｄｅｘテーブルの例を示す図である。
【図１５】図１５は、Ｉｎｄｅｘテーブルの例を示す図である。
【図１６】図１６は、小Ｉｎｄｅｘテーブルの例を示す図である。
【図１７】図１７は、描画処理を説明するフロー図である。
【図１８】図１８は、グラフィックス描画処理を説明するフロー図である。
【図１９】図１９は、写真画像をカラー値により描画する処理を示すフロー図である。
【図２０】図２０は、制御部２００のハードウェア構成を示す図である。
【図２１】図２１は、Ｉｎｄｅｘテーブル生成部２１５のハードウェア構成を示す図である。
【図２２】図２２は、ソート処理部３３０におけるソート処理を示すフロー図である。
【図２３】図２３は、画像処理部２１７のハードウェア構成の例を示す図である。
【図２４】図２４は、Ｉｎｄｅｘテーブル変換処理を説明するフロー図である。
【図２５】図２５は、描画処理の一例を示す図である。
【図２６】図２６は、ＰＤＬから取得される描画コマンドの例を示す図である。
【図２７】図２７は、カラープリンタ１０００に設けられる制御部５００の構成を示す図である。
【図２８】図２８は、本発明の実施の形態に係る画像処理装置を実現するコンピュータの構成を説明する図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態を図面に基づき説明する。
【００１５】
〔本実施の形態〕
図１は、本実施の形態に係る画像処理装置を実装する画像形成装置の機構部の構成例を示す図である。図１では、画像形成装置としてカラープリンタ１０００を示す。カラープリンタ１０００は、４色（Ｙ、Ｍ、Ｃ、Ｋ）の画像をそれぞれ独立の作像系で形成し、この４色の画像を合成する４ドラムタンデムエンジンタイプの画像形成装置である。
【００１６】
カラープリンタ１０００は、各部の動作を制御する制御部１００を有する。本実施の形態に係る画像処理方法は、制御部１００により実行される。
【００１７】
（カラープリンタ１０００における制御部のブロック）
図２は、カラープリンタ１０００における制御部の装置構成を示すブロック図である。図２の制御部１００は、プリンタＡＳＩＣ１１０、プリンタエンジン１２０、メインメモリ１３０、及び、ＣＰＵ１９０を有し、ネットワークを介してパーソナルコンピュータ（以下、「ＰＣ」という。）９００に接続されている。
【００１８】
ＣＰＵ１９０は、カラープリンタ１０００の全体の制御を行う。プリンタエンジン１２０は、画像を媒体上に形成して出力する。メインメモリ１３０は、ＣＰＵ１９０が出力する描画コマンド、ＣＰＵ１９０が実行するプログラム、及び、画像データのうちバンド毎の画像データであるバンドデータ、ページ毎の圧縮データ等の各種データ等を格納する。
ＣＰＵ１９０は、さらに、コンピュータプログラムを実行することにより、本実施形態に係る画像処理装置の各部の機能を実現する。
【００１９】
プリンタＡＳＩＣ１１０は、入力される画像データに対して所定の処理を行い、プリンタエンジン１２０に対して出力する。プリンタＡＳＩＣ１１０は、例えば、ＣＰＵ  インタフェース（以下、「Ｉ／Ｆ」という。）１１２、メインメモリアービタ１１３、メインメモリコントローラ１１４、ＤＭＡ部１１６、エンジンコントローラ１１８、及び、通信処理部１１９を有する。
【００２０】
ＣＰＵ  Ｉ／Ｆ１１２は、メインメモリアービタ１１３を介してメインメモリコントローラ１１４に接続され、ＣＰＵ１９０とメインメモリコントローラ１１４との間のインタフェース処理を行う。メインメモリアービタ１１３は、通信処理部１１９、及び、ＣＰＵ１９０からの、メインメモリ１３０へのアクセス順等を管理する。メインメモリコントローラ１１４は、メインメモリ１３０へのデータの書き込み及び読み出しを制御する。
【００２１】
ＤＭＡ部１１６は、プリンタエンジン１２０へのＤＭＡ転送を行う。エンジンコントローラ１１８は、プリンタエンジン１２０を制御する。
【００２２】
通信処理部１１９は、通信コントローラであり、ネットワークを介して接続されたＰＣ９００から画像データを受信する。画像データは、例えば、ＰＤＬ（ｐａｇｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ）の形式を有する。通信処理部１１９は、受信した画像データを、メインメモリ１３０に対して出力する。
【００２３】
（制御部１００の機能構成の例）
図３は、制御部１００の機能構成の例を示す図である。図３の制御部１００では、入力された画像データが解析され、画像処理された後、プリンタエンジン１２０に対して出力される。図３の制御部１００は、ＰＤＬ記憶部１、ＰＤＬ解析部２、色テーブル記憶部３、Ｉｎｄｅｘテーブル生成部４、Ｉｎｄｅｘテーブル記憶部５、描画処理部２１、Ｉｎｄｘ＆ＲＧＢＡ画像記憶部８、画像処理部２２、階調処理後画像記憶部１３、ＤＭＡ処理部１４を有し、プリンタエンジン１２０に接続される。
【００２４】
ＰＤＬ記憶部１は、通信処理部１１９から送信されたＰＤＬを記憶する。ＰＤＬ解析部２は、ＰＤＬ記憶部１に格納されたＰＤＬを解析し、グラフィックスコマンドと写真画像コマンドとを取得する。グラフィックスコマンドの場合は、色テーブルを生成した後、色テーブル記憶部３に出力する。ＰＤＬ解析部２は、Ｉｎｄｅｘによる描画コマンドを、描画処理部２１に出力する。写真画像コマンドの場合は、カラー情報と描画コマンドとを、描画処理部２１に出力する。
【００２５】
色テーブル記憶部３は、色テーブルを記憶する。Ｉｎｄｅｘテーブル生成部４は、色テーブル記憶部３が記憶する色テーブルから、Ｉｎｄｅｘテーブルを生成する。生成されたＩｎｄｅｘテーブルは、Ｉｎｄｅｘテーブル記憶部５に記憶される。Ｉｎｄｅｘテーブル記憶部５は、Ｉｎｄｅｘテーブルを記憶する。
【００２６】
描画処理部２１は、ＲＧＢＡ描画部７、及び、Ｉｎｄｅｘ描画部６を有する。ＲＧＢＡ描画部７は、ＰＤＬ解析部２からカラー情報とカラー画像の描画コマンドとを入力される。ＲＧＢＡ描画部７は、ＲＧＢＡフォーマットの画像の描画を行う。
【００２７】
Ｉｎｄｅｘ描画部６は、ＰＤＬ解析部２から入力されるＩｎｄｅｘによる描画コマンドとＩｎｄｅｘテーブルとに基づいて、Ｉｎｄｅｘ値による描画を行う。Ｉｎｄｅｘ値による描画は、カラー画像の描画に比して、コンポーネントの数が少ないため、描画プレーン数が少ない。そこで、例えば、グラフィック画像等、少数の色により表現される画像を、Ｉｎｄｅｘ値により描画することにより、描画処理を高速にすることができる。
【００２８】
Ｉｎｄｅｘ＆ＲＧＢＡ画像記憶部８は、ＲＧＢＡ描画部７及びＩｎｄｅｘ描画部６により描画される画像を格納する。
【００２９】
画像処理部２２は、Ｉｎｄｅｘテーブル変換部９、色変換部１０、ＵＣＲ部１１、及び、階調処理部１２を有する。Ｉｎｄｅｘテーブル変換部９は、Ｉｎｄｅｘ＆ＲＧＢＡ画像記憶部８に格納されている画像のうち、Ｉｎｄｅｘ値により描画されている画像を、Ｉｎｄｅｘ値からカラー値に変換する。これにより、ＲＧＢ値により描画された画像となる。Ｉｎｄｅｘテーブル変換部９は、Ｉｎｄｅｘテーブル記憶部５から、Ｉｎｄｅｘテーブルを取得する。
【００３０】
色変換部１０は、ＲＧＢ値で表されるカラー画像を、ＣＭＹ値で表されるカラー画像に変換する。ＵＣＲ部１１は、ＣＭＹ値で表されるカラー画像に対し、下色除去を行い、ＣＭＹＫ値で表されるカラー画像を生成する。階調処理部１２は、ＣＭＹＫ値で表されるカラー画像に対し、階調処理を行う。これにより、例えばディザ等の面積階調により表現される画像となる。
【００３１】
階調処理後画像記憶部１３は、画像処理部２２により処理された画像が格納される。階調処理後画像記憶部１３に格納される画像データは、面積階調等の処理が行われ、プリンタにより出力されるための画像データである。
【００３２】
ＤＭＡ処理部１４は、プリンタエンジン１２０に対し、ＤＭＡ転送により画像データを出力する。プリンタエンジン１２０は、入力される画像データを媒体に形成して出力する。
【００３３】
図３中、ＰＤＬ解析部２、描画処理部２１の各部、画像処理部２２の各部は、例えば、ＣＰＵ１９０がコンピュータプログラムを実行することにより実現される。
【００３４】
また、図３中、ＰＤＬ記憶部１、色テーブル記憶部３、Ｉｎｄｅｘテーブル記憶部５、Ｉｎｄｅｘ＆ＲＧＢＡ画像記憶部８、及び、階調処理後画像記憶部１３は、例えば、メインメモリ１３０上に設けられる。
【００３５】
図４は、メインメモリ１３０上に設けられる各領域を説明する図である。図４では、メインメモリ１３０上に、プログラム領域、ＰＤＬ領域、色テーブル領域、Ｉｎｄｅｘテーブル領域、Ｉｎｄｅｘ＆ＲＧＢＡ領域、階調処理後画像領域、及び、その他の情報を格納する領域が設けられている。プログラム領域は、ＣＰＵ１９０が実行するプログラムを格納する領域である。ＰＤＬ領域は、ＰＤＬ記憶部１に対応する。色テーブル領域は、色テーブル記憶部３に対応する。Ｉｎｄｅｘテーブル領域は、Ｉｎｄｅｘテーブル記憶部５に対応する。Ｉｎｄｅｘ＆ＲＧＢＡ領域は、Ｉｎｄｅｘ＆ＲＧＢＡ画像記憶部８に対応する。階調処理後画像領域は、階調処理後画像記憶部１３に対応する。
【００３６】
Ｉｎｄｅｘ＆ＲＧＢＡ領域は、プレーン０領域、プレーン１領域、プレーン２領域、及び、プレーン３領域を有する。プレーン０領域からプレーン３領域は、それぞれ、一の色コンポーネント毎の画像データを格納する。例えば、プレーン１領域にＲ値、プレーン２領域にＧ値、プレーン３領域にＢ値を格納し、さらに、プレーン０領域に属性値を格納するとよい。プレーン０領域には、また、Ｉｎｄｅｘ値により描画される画像が格納されるとよい。また、Ｉｎｄｅｘ値が２毎のプレーンにまたがるビット数を有する場合には、例えば、プレーン０領域とプレーン１領域とにＩｎｄｅｘ値が格納されるとよい。これにより、４毎のプレーンで、Ｉｎｄｅｘ値により描画された画像と、ＲＧＢＡ値により描画された画像との両方を格納することができる。
【００３７】
図５は、画像フォーマットを説明する図である。図５では、カラー画像のフォーマットと、Ｉｎｄｅｘ値によるフォーマットとの両方を示す。カラー画像のフォーマットは、ヘッダと属性値（以下、「Ａ」ともいう。）とからなる８ビット、Ｒ値、Ｇ値、及び、Ｂ値のそれぞれ８ビットの計３２ビットを有する。これらの画像データは、８ビット毎に、それぞれ、プレーン０領域からプレーン３領域に格納される。
【００３８】
Ｉｎｄｅｘ値によるフォーマットは、Ｉｎｄｅｘフォーマット１及びＩｎｄｅｘフォーマット２の２つのフォーマットがある。Ｉｎｄｅｘフォーマット１は、１ビットのヘッダと７ビットの小Ｉｎｄｅｘテーブル値とからなる８ビットのフォーマットである。Ｉｎｄｅｘフォーマット１の画像データは、プレーン０領域に格納される。
【００３９】
Ｉｎｄｅｘフォーマット２は、２ビットのヘッダと、１４ビットのＩｎｄｅｘテーブル値とからなる１６ビットのフォーマットである。Ｉｎｄｅｘフォーマット２は、プレーン０領域及びプレーン１領域に格納される。
【００４０】
図６は、本実施の形態により処理される画像の例を示す図である。図６は、画像ａ及び画像ｂを示す。画像ａは、本実施の形態により処理される画像の例を示す図である。画像ａは、写真画像部分と、グラフィックス画像部分とを有する。画像ｂは、メインメモリ１３０上に描画された例を示す図である。画像ｂは、グラフィックス画像部分が、Ｉｎｄｅｘ値により描画され、写真画像部分が、カラー画像フォーマットにより描画されている。
【００４１】
図７は、図６の画像ｂが格納されたメインメモリ１３０の各プレーンを示す図である。図７では、プレーン０領域が、Ｉｎｄｅｘフォーマット１により描画された領域、カラー画像フォーマットのうちＡ値により描画された領域、及び、Ｉｎｄｅｘフォーマット２の上位８ビットにより描画された領域を有する。
【００４２】
プレーン１領域は、カラー画像フォーマットのうちＲ値により描画された領域と、Ｉｎｄｅｘフォーマット２の下位８ビットにより描画された領域を有する。プレーン２領域は、カラー画像フォーマットのうちＧ値により描画された領域を有し、プレーン３領域は、カラー画像フォーマットのうちＢ値により描画された領域を有する。
【００４３】
図７に示すように、プレーン１領域からプレーン３領域には、Ｉｎｄｅｘフォーマット１により描画されることがない。また、プレーン２領域及びプレーン３領域には、Ｉｎｄｅｘフォーマット２により描画されることがない。これにより、描画を高速にすることができる。
【００４４】
図８は、本実施形態の画像処理方法の全体を説明するフロー図である。図８のステップＳ１０１では、ＰＤＬ記憶部１がＰＤＬを読み込み、ＰＤＬ解析部２が、ＰＤＬを解析する。ステップＳ１０２では、Ｉｎｄｅｘテーブル生成部４が、Ｉｎｄｅｘテーブルを生成する。ステップＳ１０３では、描画処理部２１がメインメモリ１３０上に画像を描画する。
【００４５】
ステップＳ１０４では、Ｉｎｄｅｘテーブル記憶部５に格納されているＩｎｄｅｘテーブルを、画像処理部２２が有するバッファに格納する。
【００４６】
ステップＳ１０５では、画像処理部２２が、Ｉｎｄｅｘ値をＲＧＢ値に変換した後、色変換、ＵＣＲ処理、階調処理等を行い、印刷用のＣＭＹＫによる階調画像データを生成する。
【００４７】
ステップＳ１０６では、ＤＭＡ処理部１４が、画像データをプリンタエンジン１２０にＤＭＡ転送し、プリンタエンジン１２０が印刷処理を行う。
【００４８】
図９は、色テーブルを生成する処理を説明する図である。図９の処理は、ＰＤＬ解析部２によりおこなわれる。図９のステップＳ２０１では、ＰＤＬを解析し、描画コマンドを生成する。ステップＳ２０１に続いてステップＳ２０２に進み、生成した描画コマンドがグラフィックス描画コマンドか否かを判断する。グラフィックス描画コマンドの場合は、ステップＳ２０３に進み、グラフィックス描画コマンドではない場合には、ＲＧＢＡ描画処理に進むため、このフローによる処理は行われず、ステップＳ２０６に進む。
【００４９】
ステップＳ２０２に続くステップＳ２０３では、ステップＳ２０１で生成された描画コマンドが四角形描画コマンドか否かを判断する。四角形描画コマンドの場合には、ステップＳ２０４に進み、そうではない場合には、ステップＳ２０５に進む。
【００５０】
ステップＳ２０３に続くステップＳ２０４では、描画する四角形の、Ｘ幅とＹ幅とを乗算し、描画面積を求める。さらに、求めた描画面積を色テーブルに登録する。色テーブルには、ＲＧＢＡ値と面積情報とが対応づけられる。一方、ステップＳ２０３に続くステップＳ２０５では、Ｘ幅を描画面積とし、色テーブルにＲＧＢＡ値と面積情報とを対応づけて登録する。
【００５１】
なお、異なる描画コマンドで同一のＲＧＢＡ値がある場合には、それぞれの描画コマンド毎に、ＲＧＢＡ値と面積情報を対応づけてもよく、また、同一のＲＧＢＡ値毎に、描画面積を加算した合計の面積の面積情報を対応づけてもよい。
【００５２】
ステップＳ２０４又はステップＳ２０５に続いてステップＳ２０６に進み、ＰＤＬに含まれている全ての描画コマンドが処理されたか否かの判断がなされる。全ての描画コマンドが終了している場合には、処理を終了する。処理されていない描画コマンドを含む場合には、ステップＳ２０１に戻り処理を繰り返す。
【００５３】
図１０は、色テーブルの例を示す図である。図１０では、入力された順の「入力番号」毎に、面積情報とカラー値とが対応づけられている。なお、カラー値の情報を「色情報」又は「カラー情報」ともいう。
【００５４】
図１１は、Ｉｎｄｅｘテーブルを生成する処理を説明する図である。図１１の処理は、Ｉｎｄｅｘテーブル生成部４により行われる。ステップＳ３０１では、Ｉｎｄｅｘテーブル生成部４が、ＰＤＬ解析部が生成した色テーブルから、ＲＧＢＡ値によるカラー値と面積情報との組み合わせの１つのレコードを取得する。ステップＳ３０２では、カラー値の数を計算する。カラー値の数は、次式により求められる。
（カラー値の数）＝Ｒ×２＾２４＋Ｇ×２＾１６＋Ｂ×２＾８＋Ａ
【００５５】
ステップＳ３０３では、Ｉｎｄｅｘ番号を計算により求める。Ｉｎｄｅｘ番号は、次式により求められる。
Ｉｎｄｅｘ番号＝カラー値の数  （ＭＯＤ）  インデックステーブル数
【００５６】
より詳細には、図１２のフローに示す処理により求めることができる。図１２のステップＳ４０１では、カラー値の数に、インデックステーブル数の逆数を乗じた数、を求め、これを切り捨てにより整数化した数を、ＷＯＲＫデータとする。
【００５７】
ステップＳ４０２では、カラー値の数からＷＯＲＫデータにインデックステーブル数を乗じた数を減じた数を、Ｉｎｄｅｘ番号とする。
【００５８】
図１１に戻り、ステップＳ３０４では、ステップＳ３０１で取得した色テーブルの情報に、ステップＳ３０３で求めたＩｎｄｅｘ番号を付加し、色テーブルを更新する。図１３は、Ｉｎｄｅｘ番号が付加された色テーブルを示す図である。図１３では、図１０の色テーブルに対し、Ｉｎｄｅｘ番号が付加されている。
【００５９】
ステップＳ３０５では、現在作成途中のＩｎｄｅｘテーブル（以下、「中間Ｉｎｄｅｘテーブル」という。）に含まれるレコードのうち、ステップＳ３０３で生成されたＩｎｄｅｘ番号のレコードを参照する。そして、参照したレコードのカラー値が、ステップＳ３０４でＩｎｄｅｘ番号を生成したカラー値と同一か否かを判定する。同一の場合には、ステップＳ３０６に進み、同一ではない場合には、ステップＳ３０７に進む。
【００６０】
図１４は、中間Ｉｎｄｅｘテーブルの例を示す図である。図１４では、Ｉｎｄｅｘ番号に、カラー値と面積の合計の情報とが対応づけられている。
【００６１】
なお、ＰＤＬに含まれるカラー情報のうち最初に処理されるカラー情報の場合は、中間Ｉｎｄｅｘテーブルは存在しなくてもよい。中間Ｉｎｄｅｘテーブルが存在しない場合は、ステップＳ３０６に進む。
【００６２】
ステップＳ３０６では、中間Ｉｎｄｅｘテーブルの該当するＩｎｄｅｘ番号の面積の合計に、ステップＳ３０１で取得したレコードに含まれている面積を加算し、面積の合計の情報を更新する。
【００６３】
ステップＳ３０７では、中間Ｉｎｄｅｘテーブルの該当するＩｎｄｅｘ番号のカラー値の項目に、ステップＳ３０１で取得したレコードに含まれているカラー値をセットし、さらに、対応する面積の合計の情報に、ステップＳ３０１で取得したレコードに含まれている面積の情報をセットする。
【００６４】
ステップＳ３０６又はステップＳ３０７に続いてステップＳ３０８に進み、色テーブルに含まれる全てのカラー値について、処理が終了したか否かの判断がなされる。処理が終了している場合は、ステップＳ３０９に進み、処理が終了していないレコードがある場合には、ステップＳ３０１に戻って処理を繰り返す。
【００６５】
ステップＳ３０８に続くステップＳ３０９では、中間Ｉｎｄｅｘテーブルに含まれるカラー値のレコードを、Ｉｎｄｅｘテーブルにコピーする。さらに、中間Ｉｎｄｅｘテーブルの各レコードに含まれている面積の合計の情報により、レコードのソート処理を行い、面積の大きい側から順に、小Ｉｎｄｅｘ値を付与する。小Ｉｎｄｅｘ値は、０から１２７までの数値である。付与した小Ｉｎｄｅｘ値を、Ｉｎｄｅｘテーブルの対応するレコード毎に小Ｉｎｄｅｘ値としてセットする。
【００６６】
ステップＳ３０９では、さらに、小Ｉｎｄｅｘ値が付与されたレコードからなる小Ｉｎｄｅｘテーブルを生成し、処理されたレコードのカラー値をセットする。
【００６７】
また、ここまでに小Ｉｎｄｅｘ値が付与されなかったＩｎｄｅｘテーブルの各レコードにおいて、小Ｉｎｄｅｘ値を１２８にセットする。
【００６８】
図１５は、Ｉｎｄｅｘテーブルの例を示す図である。Ｉｎｄｅｘテーブルは、Ｉｎｄｅｘ番号に、カラー値と小Ｉｎｄｅｘ番号とが対応づけられている。図１６は、小Ｉｎｄｅｘテーブルの例を示す図である。小Ｉｎｄｅｘテーブルは、０から１２７までのＩｎｄｅｘ番号に、カラー値が対応づけられている。
【００６９】
図１７は、描画処理部２１における描画処理を説明するフロー図である。図１７の描画処理は、ＲＧＢＡ描画部７及びＩｎｄｅｘ描画部６により実現される。
【００７０】
ステップＳ５０１では、色テーブルの番号をカウントするカウンタＩの値を初期化し、Ｉ＝０とする。ステップＳ５０２では、ＰＤＬ解析部２により解析された描画コマンドを読み込む。ステップＳ５０３では、読み込んだ描画コマンドが、グラフィックス描画コマンドか否かの判断がなされる。グラフィックス描画コマンドの場合は、ステップＳ５０４に進み、グラフィックス描画コマンドではない場合は、ステップＳ５０５に進む。
【００７１】
ステップＳ５０４では、Ｉｎｄｅｘ描画部６によるグラフィクス描画処理が行われる。一方、ステップＳ５０５では、ＲＧＢＡ描画部７による写真描画処理が行われる。なお、写真描画処理とは、ＲＧＢ値による描画処理である。ステップＳ５０４に続いてステップＳ５０６に進み、カウンタＩの値を１加算する。
【００７２】
ステップＳ５０５又はステップＳ５０６に続くステップＳ５０７では、ＰＤＬ解析部により解析されて得られた全ての描画コマンドに対する処理が終了したか否かの判断がなされる。全ての処理が終了している場合には、処理を終了し、処理されていない描画コマンドがある場合には、ステップＳ５０２に戻って処理を繰り返す。
【００７３】
図１８は、ステップＳ５０４におけるグラフィックス描画処理を説明するフロー図である。グラフィックス描画処理は、Ｉｎｄｅｘ描画部６により実行される。図１８のステップＳ６０１では、色テーブルのレコードのうち、Ｉ番目のレコードのＩｎｄｅｘ番号を取得する。
【００７４】
ステップＳ６０１に続いてステップＳ６０２に進み、ＩｎｄｅｘテーブルにおけるステップＳ６０１で取得されたＩｎｄｅｘ番号のカラー値が、描画コマンドのカラー値か否かを判断する。描画コマンドのカラー値と同じ場合には、ステップＳ６０３に進み、描画コマンドのカラー値と異なる場合には、ステップＳ６０７に進む。
【００７５】
なお、描画コマンドのカラー値と異なる場合とは、図１１で求めたカラー値の数、すなわちハッシュ関数によるハッシュ値が、衝突している。そこで、Ｉｎｄｅｘフォーマットによる描画ではなく、カラー値による描画を行う。
【００７６】
ステップＳ６０２に続くステップＳ６０３では、ステップＳ６０１で取得されたＩｎｄｅｘ番号のレコードが、小Ｉｎｄｅｘ値を含むか否かの判断を行う。なお、小Ｉｎｄｅｘ値を含むとは、そのレコードの小Ｉｎｄｅｘ値が、０から１２７のうちの何れか一の値を有することである。小Ｉｎｄｅｘ値を含む場合には、ステップＳ６０４に進み、小Ｉｎｄｅｘ値を含まない場合には、ステップＳ６０５に進む。
【００７７】
ステップＳ６０４では、Ｉｎｄｅｘテーブル１の値により、プレーン０領域に対する描画を行う。一方、ステップＳ６０５では、Ｉｎｄｅｘテーブル２の上位８ビットの値で、プレーン０領域の描画を行う。ステップＳ６０５に続いてステップＳ６０６に進み、Ｉｎｄｅｘテーブル２の下位８ビットの値で、プレーン１領域の描画を行う。
【００７８】
またステップＳ６０２に続くステップＳ６０７では、ＲＧＢＡのＡ値によりプレーン０領域を描画する。ステップＳ６０８では、ＲＧＢＡのＲ値によりプレーン１領域を描画する。ステップＳ６０９では、ＲＧＢＡのＧ値によりプレーン２領域を描画する。ステップＳ６１０では、ＲＧＢＡのＢ値によりプレーン３領域を描画する。
【００７９】
図１９は、写真画像をカラー値により描画する処理を示すフロー図である。図１９の処理は、ＲＧＢＡ描画部７により実行される。図１９のステップＳ７０１では、ＲＧＢＡ描画部７が、写真画像のソース画像を取得する。ステップＳ７０１に続くステップＳ７０２からステップＳ７０５の処理は、図１８のステップＳ６０７からステップＳ６１０の処理と同一であるので、ここでは説明を省略する。
【００８０】
図２０は、制御部２００のハードウェア構成を示す図である。制御部２００は、制御部１００に代えて、カラープリンタ１０００内に設けられ、同一の機能を実現する。
制御部２００は、プリンタＡＳＩＣ２１０、プリンタエンジン１２０、メインメモリ１３０、及び、ＣＰＵ２９０を有し、ネットワークを介してパーソナルコンピュータ（以下、「ＰＣ」という。）９００に接続されている。
【００８１】
プリンタＡＳＩＣ２１０は、例えば、ＣＰＵ  インタフェース（以下、「Ｉ／Ｆ」という。）２１２、メインメモリアービタ２１３、メインメモリコントローラ２１４、画像処理部２１７、Ｉｎｄｅｘテーブル生成部２１５、ＤＭＡ部２１６、エンジンコントローラ２１８、及び、通信処理部２１９を有する。
【００８２】
制御部２００において、制御部１００と機能が異なる各部は、画像処理部２１７、Ｉｎｄｅｘテーブル生成部２１５、及び、ＣＰＵ２９０である。その他の各部は、制御部１００が有する同名の各部と同一の機能及び構成を有するので、ここでは説明を省略する。
【００８３】
画像処理部２１７は、プリンタＡＳＩＣ２１０内に設けられ、画像処理部２２の機能を実現する専用のハードウェアである。Ｉｎｄｅｘテーブル生成部２１５は、プリンタＡＳＩＣ内に設けられ、Ｉｎｄｅｘテーブル生成部４の機能を実現する専用のハードウェアである。ＣＰＵ２９０は、コンピュータプログラムを実行することにより、描画処理部２１、及び、ＤＭＡ処理部１４の機能を実現する。
【００８４】
図２１は、Ｉｎｄｅｘテーブル生成部２１５のハードウェア構成を示す図である。Ｉｎｄｅｘテーブル生成部２１５は、バスアービタＩ／Ｆ３９０、色テーブル読込部３１０、色テーブルアドレス生成部３１２、Ｉｎｄｅｘ番号演算部３１１、中間Ｉｎｄｅｘテーブル制御部３２０、中間Ｉｎｄｅｘテーブル記憶部３２１、ソート処理部３３０、Ｉｎｄｅｘテーブル記憶部３３１、小Ｉｎｄｅｘテーブル記憶部３３２、Ｉｎｄｅｘ番号バッファー部３６１、Ｉｎｄｅｘ番号アドレス生成部３６２、Ｉｎｄｅｘ番号書込部３６０、Ｉｎｄｅｘテーブル書込部３５０、Ｉｎｄｅｘテーブルバッファー部３５１、及び、Ｉｎｄｅｘテーブルアドレス生成部３５２を有する。
【００８５】
バスアービタＩ／Ｆ３９０は、Ｉｎｄｅｘテーブル生成部２１５に対するメインメモリ１３０からのデータの入力、及び、Ｉｎｄｅｘテーブル生成部２１５からメインメモリ１３０へのデータの出力を調停する。
【００８６】
色テーブル読込部３１０は、図１１のステップＳ３０１の処理を実行する。色テーブルアドレス生成部３１２は、色テーブル読込部３１０がカラー値等を読み込む際の、メインメモリ上のアドレスを生成する。
【００８７】
Ｉｎｄｅｘ番号演算部３１１は、図１１のステップＳ３０２及びステップＳ３０３の処理を実行する。
【００８８】
中間Ｉｎｄｅｘテーブル制御部３２０は、図１１のステップＳ３０６及びステップＳ３０７の処理を実行する。中間Ｉｎｄｅｘテーブル記憶部３２１は、中間Ｉｎｄｅｘテーブルを記憶する。ソート処理部３３０は、図１１のステップＳ３０９の処理のうち、面積によるソート処理を行う。Ｉｎｄｅｘテーブル記憶部３３１は、Ｉｎｄｅｘテーブルを記憶する。小Ｉｎｄｅｘテーブル記憶部３３２は、小Ｉｎｄｅｘテーブルを記憶する。
【００８９】
Ｉｎｄｅｘ番号バッファー部３６１は、生成されたＩｎｄｅｘ番号を保持する。Ｉｎｄｅｘ番号書込部３６０は、Ｉｎｄｅｘ番号バッファー部３６１に保持されるＩｎｄｅｘ番号を、メインメモリ１３０上の領域に格納させる。Ｉｎｄｅｘ番号アドレス生成部３６２は、Ｉｎｄｅｘ番号をメインメモリ１３０上に格納する際のメインメモリ１３０上のアドレスを生成する。
【００９０】
Ｉｎｄｅｘテーブルバッファー部３５１は、生成されたＩｎｄｅｘテーブルを保持する。Ｉｎｄｅｘテーブル書込部３５０は、Ｉｎｄｅｘテーブルをメインメモリ１３０上の領域に格納させる。Ｉｎｄｅｘテーブルアドレス生成部３５２は、Ｉｎｄｅｘテーブルをメインメモリ１３０上に格納する際の、メインメモリ１３０におけるアドレスを生成する。
【００９１】
図２２は、ソート処理部３３０におけるソート処理を示すフロー図である。図２２のステップＳ８０１では、小Ｉｎｄｅｘ値を示すカウンタＪを０に初期化する。ステップＳ８０２では、面積の最大値をＭＡＸを０に初期化する。ステップＳ８０２では、さらに、Ｉｎｄｅｘ番号のカウンタＩを０に初期化する。
【００９２】
ステップＳ８０３では、中間ＩｎｄｅｘテーブルにおけるＩ番のＩｎｄｅｘ番号の面積値を読み込む。ステップＳ８０４では、最大面積値を表す変数（ＭＡＸ面積値）が、ステップＳ８０３で読み込んだ中間Ｉｎｄｅｘ番号の面積値より小さいか否かの判断がなされる。小さい場合には、ステップＳ８０６に進み、そうではない場合には、ステップＳ８０５に進む。
【００９３】
ステップＳ８０５では、最大面積値を有するＩｎｄｅｘ番号を表す変数（ＭＡＸ＿Ｉ番号）を、Ｉとする。ステップＳ８０５では、さらに、（ＭＡＸ面積値）の値に、ステップＳ８０３で読み込んだ中間Ｉｎｄｅｘ番号の面積値を代入する。
【００９４】
ステップＳ８０４又はステップＳ８０５に続くステップＳ８０６では、カウンタＩの値に１加算する。
【００９５】
ステップＳ８０７では、カウンタＩの値が、Ｉｎｄｅｘテーブルのレコード数に等しいか否かの判断がなされる。等しい場合、すなわち、全てのＩｎｄｅｘテーブルのレコードについて、ステップＳ８０３からステップＳ８０６の処理が行われた場合には、ステップＳ８０８に進む。等しくない場合には、ステップＳ８０３に戻って処理を繰り返す。
【００９６】
ステップＳ８０８では、中間Ｉｎｄｅｘテーブルにおける（ＭＡＸ＿Ｉ番号）に対応する面積値を、０とする。さらに、小ＩｎｄｅｘテーブルにおけるＪ番目のレコードに、中間Ｉｎｄｅｘテーブルの（ＭＡＸ＿Ｉ番号）のカラー値を入れる。ステップＳ８０８では、さらに、中間Ｉｎｄｅｘテーブルの（ＭＡＸ＿Ｉ番号）の小Ｉｎｄｅｘ値を、Ｊとする。
【００９７】
ステップＳ８０９では、カウンタＪの値に１加算する。
【００９８】
ステップＳ８１０では、カウンタＪの値が１２８か否かを判断する。Ｊの値が１２８、すなわち、全ての小Ｉｎｄｅｘ値に対応するカラー値が設定された場合には、処理を終了する。設定されていない小Ｉｎｄｅｘ値がある場合には、ステップＳ８０２に戻って処理を繰り返す。
【００９９】
図２３は、画像処理部２１７のハードウェア構成の例を示す図である。画像処理部２１７は、バスアービタＩ／Ｆ４９０、パラメータ読込部４１０、アドレス生成部４１２、ＤＭＡパラメータ記憶部４９１、画像読込部４２９、Ｉｎｄｅｘテーブル変換部４２０、色変換部４４０、階調処理部４５０、画像バッファー部４８１、アドレス生成部４８２、及び、画像書込部４８０を有する。
【０１００】
画像処理部２１７は、さらに、各種のパラメータを記憶する記憶部として、Ｉｎｄｅｘテーブル１記憶部４３１、Ｉｎｄｅｘテーブル２記憶部４３２、格子点データ記憶部４４１、ガンマーテーブル記憶部４４２、ハーフトーンパラメータ記憶部４５１、及び、しきい値マトリックス記憶部４５２を有する。
【０１０１】
パラメータ読込部４１０は、メインメモリ１３０から、画像処理に係るパラメータを取得する。取得されるパラメータは、それぞれ、上記の記憶部に格納される。パラメータ読込部４１０は、メインメモリ１３０からのデータの転送を、ＤＭＡにより実現する。
【０１０２】
アドレス生成部４１２は、パラメータ読込部４１０が読み込むパラメータの、メインメモリ１３０上のアドレスを生成する。ＤＭＡパラメータ記憶部４９１は、パラメータ読込部４１０がＤＭＡ転送を行う際の、ＤＭＡ転送に係るパラメータを保持する。これにより、画像処理後の画像をメインメモリ１３０に格納する際に、このパラメータを用いてＤＭＡ転送を行うことができる。
【０１０３】
画像読込部４２９は、メインメモリ１３０上のＩｎｄｅｘ＆ＲＧＢＡ画像記憶部８に格納されている画像データを読み込み、Ｉｎｄｅｘテーブル変換部４２０に出力する。
【０１０４】
Ｉｎｄｅｘテーブル変換部４２０は、Ｉｎｄｅｘ値により描画される画像を、ＲＧＢ値により描画される画像に変換する。Ｉｎｄｅｘテーブル変換部４２０は、Ｉｎｄｅｘ値変換部４２１、プレーン０バッファー部４２３、プレーン１バッファー部４２４、プレーン２バッファー部４２５、プレーン３バッファー部４２６、及び、アドレス生成部４２２を有する。
【０１０５】
アドレス生成部４２２は、画像読込部４２９が画像データを読み込む際の、メインメモリ１３０上のアドレスを生成する。プレーン０バッファー部４２３からプレーン３バッファー部４２６は、それぞれ、メインメモリ１３０上の、プレーン０領域からプレーン３領域に格納されている、各プレーンの画像データを格納するバッファーである。
【０１０６】
Ｉｎｄｅｘ値変換部４２１は、Ｉｎｄｅｘフォーマットにより表される画像データを、ＲＧＢ値により表される画像データに変換する。Ｉｎｄｅｘ値変換部４２１は、プレーン０バッファー部４２３に格納されている画像データのうち、上位１ビット又は２ビットのヘッダ部分を読み込むことにより、Ｉｎｄｅｘフォーマットにより表される画素のデータを取得する。
【０１０７】
より詳細には、図５のＩｎｄｅｘフォーマット１の場合には、上位１ビットの値が「１」であり、図５のＩｎｄｅｘフォーマット２の場合には、上位２ビットの値が「０１」である。したがって、これらの値により、プレーン０バッファー部４２３とプレーン１バッファー部４２４に格納されているデータを取得する。Ｉｎｄｅｘ値変換部４２１は、さらに、Ｉｎｄｅｘテーブル１記憶部４３１に格納される小Ｉｎｄｅｘテーブル、又は、Ｉｎｄｅｘテーブル２記憶部４３２に格納されるＩｎｄｅｘテーブルにより、取得した画像データを、ＲＧＢ値に変換し、色変換部４４０に出力する。
【０１０８】
色変換部４４０は、ＲＧＢ値により表される画像データを、ＣＭＹ値により表される画像データに変換する。色変換部４４０は、さらに、ＣＭＹ値により表される画像データを、下色除去により、ＣＭＹＫ値により表される画像データに変換する。色変換部４４０は、これらの処理に、格子点データ記憶部４４１に格納される格子点データ、及び、ガンマーテーブル記憶部４４２に格納されるガンマーテーブルを用いる。
【０１０９】
階調処理部４５０は、ＣＭＹＫ値で表される画像データを、面積階調により表される画像データに変換する。階調処理部４５０は、これらの処理に、ハーフトーンパラメータ記憶部４５１に格納されるハーフトーンパラメータ、及び、しきい値マトリックス記憶部４５２に格納されるしきい値マトリックスを用いる。
【０１１０】
画像バッファー部４８１は、階調処理部４５０により処理された画像データが格納される。画像バッファー部４８１は、メインメモリ１３０に対するアクセスの単位より大きい容量を有するとよい。メインメモリ１３０に対するアクセスの単位とは、例えば、メインメモリ１３０のバーストレングスである。画像書込部４８０は、ＤＭＡ転送により、画像バッファー部４８１に保持される画像データをメインメモリ１３０に格納させる。アドレス生成部４８２は、画像書込部４８０が、画像データをメインメモリ１３０に格納させる際の、メインメモリ１３０上のアドレスを生成する。
【０１１１】
バスアービタ−Ｉ／Ｆ４９０は、画像処理部２１７とメインメモリ１３０とのデータの入出力を調停する。
【０１１２】
図２４は、Ｉｎｄｅｘ値変換部４２１におけるＩｎｄｅｘテーブル変換処理を説明するフロー図である。図２４のステップＳ９０１では、プレーン０バッファー部４２３からプレーン３バッファー部４２６に格納されている同一の一の画素のデータを読み込む。
【０１１３】
ステップＳ９０２では、プレーン０の上位１ビットの値が、”１”であるか否かを判断する。”１”である場合には、Ｉｎｄｅｘテーブル１のヘッダと判断し、ステップＳ９０４に進む。”１”ではない場合には、ステップＳ９０３に進む。
【０１１４】
ステップＳ９０３では、プレーン０の上位２ビットの値が、”０１”であるか否かを判断する。”０１”である場合には、Ｉｎｄｅｘテーブル２のヘッダと判断し、ステップＳ９０５に進む。”０１”ではない場合には、ステップＳ９０６に進む。
【０１１５】
ステップＳ９０４では、プレーン０の値により、Ｉｎｄｅｘテーブル１記憶部４３１に格納されている小Ｉｎｄｅｘテーブルにアクセスし、ＲＧＢ値を求める。
【０１１６】
ステップＳ９０５では、プレーン０とプレーン１の値により、Ｉｎｄｅｘテーブル２記憶部４３２に格納されているＩｎｄｅｘテーブルにアクセスし、ＲＧＢ値を求める。
【０１１７】
ステップＳ９０６では、プレーン１の値をＲ値、プレーン２の値をＧ値、プレーン３の値をＢ値として、ＲＧＢ値を決定する。
【０１１８】
ステップＳ９０７では、画像読込部４２９が読み込む全ての画素に対する処理が終了したか否かの判断がなされる。全ての画素の処理が終了している場合には処理を終了し、終了していない場合には、ステップＳ９０１に戻って処理を繰り返す。
【０１１９】
図２５は、描画処理の一例を示す図である。図２５では、左に示す画像の描画を、領域Ｒ１、領域Ｒ２、及び、写真領域の３つの領域毎に描画を行う。領域Ｒ１は、文字領域である。また、領域Ｒ２は、グラフィックス領域である。これらの領域は、写真画像より色数が少ないため、Ｉｎｄｅｘ値による描画を行うことにより、描画処理を高速に実現することができる。
【０１２０】
図２６は、ＰＤＬから取得される描画コマンドの例を示す図である。図２６において、（ａ）はパラメータ設定コマンド、（ｂ）及び（ｃ）はグラフィックス描画コマンド、（ｄ）は写真画像描画コマンド、（ｅ）は終了コマンドである。
【０１２１】
本実施の形態では、（ｂ）及び（ｃ）のグラフィックス描画コマンドの描画を、Ｉｎｄｅｘ値による描画により実現する。なお、（ｂ）は、四角形を描画するコマンドであり、（ｃ）は、水平ラインを描画するコマンドである。そこで、描画コマンド毎に描画する面積は、（ｂ）の場合は、Ｘ幅とＹ幅との乗算となり、（ｃ）の場合は、Ｘ幅となる。
【０１２２】
図２７は、カラープリンタ１０００に設けられる制御部５００の構成を示す図である。制御部５００は、制御部１００又は制御部２００に代えてカラープリンタ１０００に設けられるとよい。
【０１２３】
制御部５００において制御部２００と異なる構成は、ＣＰＵ  Ｉ／Ｆ５１２及びＣＰＵ５９２であり、その他の各部は、制御部２００と同一である。そこで、ここではＣＰＵ  Ｉ／Ｆ５１２及びＣＰＵ５９２について説明し、その他の各部については説明を省略する。
【０１２４】
ＣＰＵ５９１及びＣＰＵ５９２は、それぞれ、Ｉｎｄｅｘテーブル生成部４、描画処理部２１、及び、画像処理部２２のうち、何れか一以上の機能を実現する。特に、Ｉｎｄｅｘ生成部４の処理を、他の処理と分けることにより、本実施形態の画像処理方法をパイプライン処理により効率的に実現することができる。
【０１２５】
（コンピュータ等による実現  ＭＦＰ）
図２８は、本発明の実施の形態に係る画像処理装置を実現するコンピュータの構成を説明する図である。図２８のコンピュータは、主処理部９０、入力装置９１、表示装置９２、スキャナ９３、プロッタ９４、ＮＩＣ９６、ドライブ装置９８、ハードディスク装置（以下、「ＨＤＤ」という。）９９、入力Ｉ／Ｆ９１９、表示Ｉ／Ｆ９２９、スキャナＩ／Ｆ９３９、プロッタＩ／Ｆ９４９、ドライブＩ／Ｆ９８９、及び、ＨＤＤ  Ｉ／Ｆ９９９を有する。
【０１２６】
主処理部９０は、コンピュータプログラムを実行して各機能を実現する。主処理部９０は、例えば、ＣＰＵ９０１、ＲＯＭ９０８、及び、ＲＡＭ９０９を有する。ＣＰＵ９０１は、コンピュータプログラムを実行することにより、コンピュータが有する各デバイス等の制御を行う。ＲＯＭ９０８は、例えば、コンピュータプログラムやパラメータ等が格納され、ＣＰＵ９０１にそれらが供せられる。ＲＡＭ９０９は、例えば、ＣＰＵ９０１がコンピュータプログラムを実行する際のワークメモリとして供せられる。
【０１２７】
入力装置９１は、例えば、キーボードやマウス等の入力デバイスとして構成され、コンピュータに対する指示等が入力される。表示装置９２は、コンピュータの状態等が表示される。スキャナ９３は、画像を光学的に読み取って、画像データを生成する。プロッタ９４は、媒体上に画像を形成して出力する。
【０１２８】
ＮＩＣ９６は、コンピュータと外部とをネットワークを介して接続する際のインタフェースの機能を実現し、その制御を行う。ドライブ装置９８は、記録媒体が挿入され、その記録媒体に記録された情報を読み出し、またその記録媒体に情報を記録する。ＨＤＤ９９は、大容量のデータを格納する記憶手段である。
【０１２９】
入力Ｉ／Ｆ９１９は、表示Ｉ／Ｆ９２９、スキャナＩ／Ｆ９３９、プロッタＩ／Ｆ９４９、ドライブＩ／Ｆ９８９、及び、ＨＤＤ  Ｉ／Ｆ９９９は、それぞれ、入力装置９１、表示装置９２、スキャナ９３、プロッタ９４、ドライブ装置９８、及び、ＨＤＤ９９がバスを介して主処理部９０と接続される際のインタフェースである。
【０１３０】
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨をそこなわない範囲で変更することが可能である。
【産業上の利用可能性】
【０１３１】
以上のように、本発明にかかる画像処理装置は、グラフィックス画像を含む画像の高速処理に有用であり、特に、印刷処理に適している。
【符号の説明】
【０１３２】
１     ＰＤＬ記憶部
２     ＰＤＬ解析部
３     色テーブル記憶部
４     Ｉｎｄｅｘテーブル生成部
５     Ｉｎｄｅｘテーブル記憶部
６     Ｉｎｄｅｘ描画部
７     ＲＧＢＡ描画部
８     Ｉｎｄｅｘ＆ＲＧＢＡ画像記憶部
９     Ｉｎｄｅｘテーブル変換部
１０   色変換部
１１   ＵＣＲ部
１２   階調処理部
１３   階調処理後画像記憶部
１４   ＤＭＡ処理部
２１   描画処理部
２２   画像処理部
９０   主処理部
９１   入力装置
９２   表示装置
９３   スキャナ
９４   プロッタ
９８   ドライブ装置
１００ 制御部
１１３ メインメモリアービタ
１１４ メインメモリコントローラ
１１６ ＤＭＡ部
１１８ エンジンコントローラ
１１９ 通信処理部
１２０ プリンタエンジン
１３０ メインメモリ
２００ 制御部
２１５ Ｉｎｄｅｘテーブル生成部
２１７ 画像処理部
３１０ 色テーブル読込部
３１１ Ｉｎｄｅｘ番号演算部
３１２ 色テーブルアドレス生成部
３２０ 中間Ｉｎｄｅｘテーブル制御部
３２１ 中間Ｉｎｄｅｘテーブル記憶部
３３０ ソート処理部
３３１ Ｉｎｄｅｘテーブル記憶部
３３２ 小Ｉｎｄｅｘテーブル記憶部
３５０ Ｉｎｄｅｘテーブル書込部
３５１ Ｉｎｄｅｘテーブルバッファー部
３５２ Ｉｎｄｅｘテーブルアドレス生成部
３６０ Ｉｎｄｅｘ番号書込部
３６１ Ｉｎｄｅｘ番号バッファー部
３６２ Ｉｎｄｅｘ番号アドレス生成部
４１０ パラメータ読込部
４１２ アドレス生成部
４２０ Ｉｎｄｅｘテーブル変換部
４２１ Ｉｎｄｅｘ値変換部
４２２ アドレス生成部
４２３ プレーン０バッファー部
４２４ プレーン１バッファー部
４２５ プレーン２バッファー部
４２６ プレーン３バッファー部
４２９ 画像読込部
４３１ Ｉｎｄｅｘテーブル１記憶部
４３２ Ｉｎｄｅｘテーブル２記憶部
４４０ 色変換部
４４１ 格子点データ記憶部
４４２ ガンマーテーブル記憶部
４５０ 階調処理部
４５１ ハーフトーンパラメータ記憶部
４５２ しきい値マトリックス記憶部
４８０ 画像書込部
４８１ 画像バッファー部
４８２ アドレス生成部
４９１ ＤＭＡパラメータ記憶部
５００ 制御部
１０００      カラープリンタ
【先行技術文献】
【特許文献】
【０１３３】
【特許文献１】特開平６−１３９３６４号公報
【特許文献２】特開平１１−７８１２６号公報
【特許文献３】特開２００７−２１６６７５号公報
【図１】
2010220118.tif 000003
【図２】
2010220118.tif 000004
【図３】
2010220118.tif 000005
【図４】
2010220118.tif 000006
【図５】
2010220118.tif 000007
【図６】
2010220118.tif 000008
【図７】
2010220118.tif 000009
【図８】
2010220118.tif 000010
【図９】
2010220118.tif 000011
【図１０】
2010220118.tif 000012
【図１１】
2010220118.tif 000013
【図１２】
2010220118.tif 000014
【図１３】
2010220118.tif 000015
【図１４】
2010220118.tif 000016
【図１５】
2010220118.tif 000017
【図１６】
2010220118.tif 000018
【図１７】
2010220118.tif 000019
【図１８】
2010220118.tif 000020
【図１９】
2010220118.tif 000021
【図２０】
2010220118.tif 000022
【図２１】
2010220118.tif 000023
【図２２】
2010220118.tif 000024
【図２３】
2010220118.tif 000025
【図２４】
2010220118.tif 000026
【図２５】
2010220118.tif 000027
【図２６】
2010220118.tif 000028
【図２７】
2010220118.tif 000029
【図２８】
2010220118.tif 000030