(57)【要約】【課題】  本発明はインデックスカラーイメージで表現する必要が無いような画像を、より高速に描画可能なフォーマットに変換する方法を提案する。【解決手段】  カラールックアップテーブルを含むインデックスカラーイメージを受信し、カラールックアップテーブルに定義された色値の組み合わせが所定の組み合わせである場合に、インデックスカラーイメージを、カラールックアップテーブルを含まないフォーマットのデータに変換する【選択図】  図２
2014110602.tif 000002
【特許請求の範囲】
【請求項１】
インデックスカラーイメージに基づくイメージを描画する画像処理装置であって、
カラールックアップテーブルを含む前記インデックスカラーイメージを受信する受信手段と、
前記カラールックアップテーブルに定義された色値の組み合わせが所定の組み合わせである場合に、前記インデックスカラーイメージを、前記カラールックアップテーブルを含まないフォーマットのデータに変換する変換手段と、
を有する画像処理装置。
【請求項２】
前記変換手段は、前記カラールックアップテーブルに定義された色値の組み合わせが、前記インデックスカラーイメージに含まれるソースイメージおよびハーフトーン処理に影響を受けない色値で構成される組み合わせである場合、前記インデックスカラーイメージを、前記カラールックアップテーブルを含まないフォーマットであって、所定の色値を塗りつぶし色として含むフォーマットのデータに変換することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記変換手段は、前記カラールックアップテーブルに定義された色値の組み合わせが最小色値で構成される場合、前記インデックスカラーイメージを、前記カラールックアップテーブルを含まないフォーマットであって、前記最小色値を塗りつぶし色として含むフォーマットのデータに変換することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記変換手段は、前記カラールックアップテーブルに定義された色値の組み合わせが最大色値で構成される場合、前記インデックスカラーイメージを、前記カラールックアップテーブルを含まないフォーマットであって、前記最大色値を塗りつぶし色として含むフォーマットのデータに変換することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記変換されたデータに含まれる前記塗りつぶし色の色値を用いて、描画処理を行う描画手段をさらに有することを特徴とする請求項２乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記変換手段は、前記カラールックアップテーブルに定義された色値の組み合わせが、描画されるイメージを前記インデックスカラーイメージに含まれるソースイメージと等価とするものであるか、あるいは、描画されるイメージを前記インデックスカラーイメージに含まれるソースイメージを反転したイメージと等価とするものである場合、前記インデックスカラーイメージを、前記カラールックアップテーブルを含まないフォーマットであって、前記ソースイメージおよび前記ソースイメージに対するＲＯＰを含むフォーマットのデータに変換することを特徴とする請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記変換手段は、前記カラールックアップテーブルに定義された色値の組み合わせが最小色値と最大色値とで構成される場合、前記インデックスカラーイメージを、前記カラールックアップテーブルを含まないフォーマットであって、前記ソースイメージおよび前記ソースイメージに対するＲＯＰを含むフォーマットのデータに変換することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記変換手段は、前記カラールックアップテーブルに定義された色値の組み合わせにおいて前記ソースイメージのオフピクセルに対応する色値が最小色値であって前記ソースイメージのオンピクセルに対応する色値が最大色値である場合、前記インデックスカラーイメージを、前記カラールックアップテーブルを含まないフォーマットであって、前記ソースイメージおよび前記ソースイメージを上書きするＲＯＰを含むフォーマットのデータに変換することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記変換手段は、前記カラールックアップテーブルに定義された色値の組み合わせにおいて前記ソースイメージのオフピクセルに対応する色値が最大色値であって前記ソースイメージのオンピクセルに対応する色値が最小色値である場合、前記インデックスカラーイメージを、前記カラールックアップテーブルを含まないフォーマットであって、前記ソースイメージおよび前記ソースイメージを反転して上書きするＲＯＰを含むフォーマットのデータに変換することを特徴とする請求項７または８に記載の画像処理装置。
【請求項１０】
前記変換されたデータに含まれるソースイメージに対して前記変換されたデータに含まれるＲＯＰの処理を行うことで描画処理を行う描画手段をさらに有することを特徴とする請求項７乃至９の何れか１項に記載の画像処理装置。
【請求項１１】
前記変換手段は、前記カラールックアップテーブルに定義された色値の組み合わせに中間色の色値を含む場合、前記インデックスカラーイメージを、前記カラールックアップテーブルを含まないフォーマットであって、ディザマトリクスを用いて前記中間色の色値をハーフトーン処理することで得られるハーフトーンパターンと、前記インデックスカラーイメージに含まれるソースイメージとを含むフォーマットのデータに変換することを特徴とする請求項１乃至１０の何れか１項に記載の画像処理装置。
【請求項１２】
前記変換されたデータに含まれる前記ソースイメージに対して前記変換されたデータに含まれる前記ハーフトーンパターンを処理することで、描画処理を行う描画手段をさらに有することを特徴とする請求項１乃至１１の何れか１項に記載の画像処理装置。
【請求項１３】
前記インデックスカラーイメージに含まれるソースイメージは、１ピクセルあたり１ビットであり、
前記カラールックアップテーブルは２つの色値を定義することを特徴とする請求項１乃至１２の何れか１項に記載の画像処理装置。
【請求項１４】
前記描画手段は、複数の前記描画対象のピクセルを１回の処理で描画することを特徴とする請求項１乃至１３の何れか１項に記載の画像処理装置。
【請求項１５】
前記変換手段によって変換されたデータに基づいて描画されたイメージをシート上に印刷する印刷手段をさらに有する請求項１乃至１４の何れか１項に記載の画像処理装置。
【請求項１６】
インデックスカラーイメージに基づくイメージを描画する画像処理方法であって、
カラールックアップテーブルを含む前記インデックスカラーイメージを受信する受信工程と、
前記カラールックアップテーブルに定義された色値の組み合わせが所定の組み合わせである場合に、前記インデックスカラーイメージを、前記カラールックアップテーブルを含まないフォーマットのデータに変換する変換工程と、
を有する画像処理方法。
【請求項１７】
前記変換工程は、前記カラールックアップテーブルに定義された色値の組み合わせが、前記インデックスカラーイメージに含まれるソースイメージおよびハーフトーン処理に影響を受けない色値で構成される組み合わせである場合、前記インデックスカラーイメージを、前記カラールックアップテーブルを含まないフォーマットであって、所定の色値を塗りつぶし色として含むフォーマットのデータに変換することを特徴とする請求項１６に記載の画像処理方法。
【請求項１８】
前記変換工程は、前記カラールックアップテーブルに定義された色値の組み合わせが、描画されるイメージを前記インデックスカラーイメージに含まれるソースイメージと等価とするものであるか、あるいは、描画されるイメージを前記インデックスカラーイメージに含まれるソースイメージを反転したイメージと等価とするものである場合、前記インデックスカラーイメージを、前記カラールックアップテーブルを含まないフォーマットであって、前記ソースイメージおよび前記ソースイメージに対するＲＯＰを含むフォーマットのデータに変換することを特徴とする請求項１６または１７に記載の画像処理方法。
【請求項１９】
前記変換工程は、前記カラールックアップテーブルに定義された色値の組み合わせに中間色の色値を含むフォーマットの場合、前記インデックスカラーイメージを、前記カラールックアップテーブルを含まないフォーマットであって、ディザマトリクスを用いて前記中間色の色値をハーフトーン処理することで得られるハーフトーンパターンと、前記インデックスカラーイメージに含まれるソースイメージとを含むフォーマットのデータに変換することを特徴とする請求項１６乃至１８の何れか１項に記載の画像処理方法。
【請求項２０】
請求項１乃至１５の何れか１項に記載の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はインデックスカラーイメージを処理する画像処理技術に関わるものである。
【背景技術】
【０００２】
インデックスカラーイメージはピクセル毎に色値を直接指定して画像を表現するのではなく、カラールックアップテーブルに定義された色値を指定して画像を表現するフォーマットのビットマップ画像である。インデックカラーイメージにおけるイメージデータの実体（ソースイメージ）は、各ピクセルが色値では無くカラールックアップテーブルに定義された色値を指定する参照番号となる。画像に含まれる色数が少ない場合、インデックスカラーイメージを利用すると解像度を維持しながらデータ量を削減できる。近年のカラー化、高解像度化に伴いインデックスカラーイメージが多用されるようになってきている。特許文献１には、インデックスカラーイメージを高速に描画する方法として、複数のインデックスカラーイメージ間でカラールックアップテーブルを共有する方法を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２５５７２
【発明の概要】
【発明が解決しようとする課題】
【０００４】
インデックスカラーイメージが多用されるようになった結果、インデックスカラーイメージで表現しなくても良いような画像に対してもインデックスカラーイメージで表現される場合が増加している。例えばカラールックアップテーブルに定義された色値が全て同じ色であるような簡易な画像である。本発明はインデックスカラーイメージで表現する必要が無いような画像を、より高速に描画可能なフォーマットに変換する方法を提案する。
【課題を解決するための手段】
【０００５】
本発明の画像処理装置は、（請求項１）を特徴とする。
【発明の効果】
【０００６】
本発明は、インデックスカラーイメージをフォーマット変換するため、インデックスカラーイメージで表現する必要が無いような簡易な画像を高速に描画可能にする。
【図面の簡単な説明】
【０００７】
【図１】画像処理装置のハード構成図
【図２】画像処理装置のソフトウェアモジュール構成およびデータ構成図
【図３】第１のインデックスカラーイメージの一例
【図４】第１のインデックスカラーイメージのフォーマット変換例
【図５】第１のインデックスカラーイメージの描画処理の様子
【図６】第１のインデックスカラーイメージのフォーマット変換後の描画処理の様子
【図７】第２のインデックスカラーイメージの一例
【図８】第２のインデックスカラーイメージのフォーマット変換例
【図９】第２のインデックスカラーイメージの描画処理の様子
【図１０】第２のインデックスカラーイメージのフォーマット変換後の描画処理の様子
【図１１】第１の実施例のインデックスカラーイメージのフォーマット変換処理のフローチャート
【図１２】第３のインデックスカラーイメージの一例
【図１３】第３のインデックスカラーイメージの描画結果の一例
【図１４】第３のインデックスカラーイメージのフォーマット変換例
【図１５】第３のインデックスカラーイメージのフォーマット変換後の描画処理の様子
【図１６】第２の実施例のインデックスカラーイメージのフォーマット変換処理のフローチャート
【発明を実施するための形態】
【０００８】
（第１の実施例）
以下、本発明を実施するための形態について図面を用いて説明する。
【０００９】
図１は本実施例における画像処理装置１００のハード構成を示す図である。画像処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１０４、エンジン制御部１０５、不図示のエンジン部を有する。なお本実施例の画像処理装置１００は、レーザビームプリンタ、インクジェットプリンタ、ＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）などである。
【００１０】
ＣＰＵ１０１は、ＲＯＭ１０２に格納された制御プログラムや後述のフローチャートの処理を実行するための画像処理プログラムを読み出して画像処理装置１００の制御を行う。ＲＯＭ１０２は、制御プログラムや画像処理プログラムなどの情報を格納する。ＲＡＭ１０３はＣＰＵ１０１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ネットワークインターフェース１０４は外部装置などと通信を行うために用いられる。エンジン制御部１０５は、ネットワークインターフェース１０４を介して外部装置などから入力されたＰＤＬデータ等に基づき形成された画像を、実際のシート（例えば用紙）上に不図示のエンジン部によって印刷させる処理を実行する。不図示のエンジン部は、画像を用紙上に印刷して、印刷物として出力する。
【００１１】
本発明はＰＤＬデータの他に各種ドキュメントフォーマットにも適用可能だが、以後ＰＤＬデータを例に説明する。これらは内部バス１０６によって互いに接続されている。このＰＤＬデータは、外部装置（例えばＰＣ：Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）のアプリケーションソフトウェアによって作成される。
【００１２】
インデックスカラーイメージに基づくイメージを描画する画像処理装置であって、
カラールックアップテーブルを含む前記インデックスカラーイメージを受信する受信手段と、
前記カラールックアップテーブルに定義された色値の組み合わせが所定の組み合わせである場合に、前記インデックスカラーイメージを、前記カラールックアップテーブルを含まないフォーマットのデータに変換する変換手段と、
を有する画像処理装置  図２は本実施例におけるソフトウェアモジュール構成およびデータ構成を示している。このソフトウェアモジュール構成は、ＣＰＵ１０１が図１の各ユニットと協調して、ＲＯＭ１０２に格納されている画像処理プログラムを実行することによって実現されている。
【００１３】
ＰＤＬデータ２０１は、ネットワークインターフェース１０４を介して受信され、画像処理装置のＲＡＭ１０３に格納される。
【００１４】
ＰＤＬ処理部２０２は、ＰＤＬデータ２０１をＲＡＭ１０３から読み出し、中間データ２０４を生成しＲＡＭ１０３に格納する。またＰＤＬ処理部２０２は、ＰＤＬデータ２０１から読みだしたデータがインデックスカラーイメージであった場合、インデックスカラーイメージ最適化部２０３を通して中間データ２０４を生成する。
【００１５】
インデックスカラーイメージ最適化部２０３は、描画処理を高速で行えるようにインデックスカラーイメージをインデックスカラーフォーマットでない他のフォーマットへフォーマット変換して、中間データ２０４を生成する。生成された中間データ２０４はＲＡＭ１０３に格納される。
【００１６】
描画処理部２０５は、ＲＡＭ１０３に格納された中間データ２０４に基づいてフレームバッファ２０６上の描画対象のピクセルを描画する。描画処理部２０５はフレームバッファ２０６にイメージを描画する際に、画像処理装置の階調表現能力に応じたハーフトーン処理を行う。本実施例では画像処理装置は１ｂｉｔ／ｐｉｘｅｌの階調表現能力のみ持つものとし、描画処理部２０５は８ｂｉｔ／ｐｉｘｅｌの色値のデータに対してハーフトーン処理を行い、１ｂｉｔ／ｐｉｘｅｌのデータを生成する。
【００１７】
フレームバッファ２０６は、描画処理部２０５による描画結果を保存する、ＲＡＭ１０３内に確保されているメモリ領域であり、保存された描画結果はエンジン制御部１０５に送られ印刷処理される。
【００１８】
＜第１の例＞
図３から図６を用いてインデックスカラーイメージから他のフォーマットへフォーマット変換を行った方が高速に描画できる第１の例について説明する。
【００１９】
図３はＰＤＬデータ２０１の一例を表している。ＰＤＬデータ２０１に含まれるページ３０１のデータは、背景の画像３０２、文字列３０３、３０４、２値画像３０５から構成される。文字列３０３、３０４、２値画像３０５が、背景の画像３０２の上に描かれることになる。
【００２０】
ここで背景の画像３０２は、白や黒の単色で塗りつぶすような画像であって、この画像３０２に、インデックスカラーイメージが用いられる場合がある。例えばカラールックアップテーブルで定義された色値が白を示す０のみのインデックスカラーイメージが用いられる場合である。背景を白や黒で塗り潰すデータは、各ページ共通で利用するテンプレートデータとなっているケースも多い。背景を白や黒で塗り潰す処理は毎ページ行われるため、全面が白や黒の単色で塗りつぶされるインデックスカラーイメージを最適化すると、描画処理が大幅に高速化する。
【００２１】
なおこのインデックスカラーイメージは、データテーブル３０３、ソースイメージ３０４、カラールックアップテーブル３０５で構成される。データテーブル３０３は、画像の形成される位置（描画開始位置）を示す情報（Ｓｔａｒｔｉｎｇ  Ｐｏｓｉｔｉｏｎ（Ｘ、Ｙ））、画像全体のサイズ（描画サイズ）を示す情報（Ｄｅｓｔｉｎａｔｉｏｎ  Ｓｉｚｅ（Ｄｘ、Ｄｙ））、ソースイメージ３０４のサイズ（ソースイメージサイズ）を示す情報（Ｓｒｃ  Ｓｉｚｅ（Ｄｘ、Ｄｙ））を含む。
【００２２】
図３のインデックスカラーイメージは、画像の形成される位置が座標（７７１、２１９）であり、画像全体のサイズが幅７０００、高さ４０００であり、ソースイメージ３０４のサイズが幅１、高さ４０００であることを示す。また、本実施例のソースイメージ３０４は、ピクセルごとに“０”か“１”のカラールックアップテーブル３０５への参照番号が記載された、１ｂｉｔ／ｐｉｘｅｌのビットマップイメージである。
【００２３】
なお、ソースイメージが１ｂｉｔ／ｐｉｘｅｌのビットマップイメージである場合、ピクセルの値が“０”であるピクセルをオフビットのピクセル（オフピクセル）と呼び、ピクセルの値が“１”であるピクセルをオンビットのピクセル（オンピクセル）と呼ぶ。オフビットのピクセルはカラールックアップテーブルの参照番号“０”の色値に対応し、オンビットのピクセルは参照番号“１”の色値に対応する。
【００２４】
本実施例のカラールックアップテーブルは、２色の定義を持つ。カラールックアップテーブルが２色の定義を持つ場合、１つめの色を示す参照番号は“０”で、２つ目の色を示す参照番号は“１”である。例えば図３の上下に示される２つのカラールックアップテーブル３０５のいずれかがある。上のカラールックアップテーブルは、参照番号“０”に対応する色値がＧｒａｙ＝（０）で参照番号“１”に対応する色値もＧｒａｙ＝（０）のカラールックアップテーブルである。また下のカラールックアップテーブルは、参照番号“０”に対応する色値がＧｒａｙ＝（２５５）で参照番号“１”に対応する色値もＧｒａｙ＝（２５５）のカラールックアップテーブルである。なお本実施例では、Ｇｒａｙ（０）およびＧｒａｙ（２５５）は、グレースケールでの色値が最小値（０）の最小色値および最大値（２５５）の最大色値である。
【００２５】
なお本実施例ではオフピクセル、オンピクセルをピクセルの値が“０”、“１”のピクセルとする。しかし、カラールックアップテーブルが２色の定義を持つ場合に、最も小さい参照番号に対応する色値になるピクセルをオフピクセルとし、他の色値になるピクセルをオンピクセルとしても良い。
【００２６】
インデックスカラーイメージの描画において、ＰＤＬデータ２０１はＰＤＬ処理部２０２によって読み込まれ、例えば図４のデータテーブル４０１、ルックアップテーブル４０２、ソースイメージ４０３を含む中間データ２０４を生成する。後述するインデックスカラーイメージから他のフォーマットへのフォーマット変換が行われない場合、データテーブル３０３、ソースイメージ３０４、カラールックアップテーブル３０５で示すＰＤＬデータ２０１とデータテーブル４０１、ソースイメージ４０３、ルックアップテーブル４０２で示す中間データ２０４は等価である。
【００２７】
図４上図で示される中間データ２０４について説明する。図４上部の中間データ２０４に含まれるデータテーブル４０１は、イメージの描画開始位置、イメージの描画サイズ、イメージを描画するために用いられるソースイメージのサイズ、イメージに施されるラスタ演算（Ｒａｓｔｅｒ  Ｏｐｅｒａｔｉｏｎ：ＲＯＰ）の種類、ハーフトーン処理を行うかどうかを示す情報を含む。ルックアップテーブル４０２は、参照番号に対応する色値を定義するものであって、ここでは参照番号“０”および“１”に対応する色値をともに最小色値“０”であると定義しているか、あるいは、参照番号“０”および“１”に対応する色値をともに最大色値“１”であると定義している。ソースイメージ４０３は、イメージを描画するために用いられるビットマップであって、上述の通り、ピクセルごとに“０”か“１”のカラールックアップテーブル３０５への参照番号が記載された、１ｂｉｔ／ｐｉｘｅｌのビットマップイメージである。なおソースイメージ４０３のサイズは、データテーブル４０１のソースイメージサイズに記載されたサイズとなる。
【００２８】
本実施例の場合、図３で示したＰＤＬデータ２０１は、インデックスカラーイメージ最適化部２０３によって、カラールックアップテーブルを用いない他のフォーマットへフォーマット変換されて、図４下図のデータテーブル４０４、塗りつぶし色情報４０５を含む中間データ２０４が生成される。
【００２９】
図４下図に示される、インデックスカラーイメージ最適化部２０３によって行われるインデックスカラーイメージのフォーマット変換の結果生成される中間データについて説明する。データテーブル４０４は、イメージの描画開始位置、イメージの描画サイズ、塗りつぶしイメージを描画するために用いられる元イメージのサイズ、イメージに施されるＲＯＰの種類、ハーフトーン処理を行うかどうかを示す情報を含む。塗りつぶし色４０５は、本実施例では、最小色値である“０”、あるいは、最大色値である“２５５”となる。具体的には、塗りつぶし色が“０”となるのは、カラールックアップテーブル４０２が参照番号“０”および“１”に対応する色値をともに最小色値“０”であると定義していた場合である。また塗りつぶし色が“２５５”となるのは、カラールックアップテーブル４０２が参照番号“０”および“１”に対応する色値をともに最小色値“２５５”であると定義していた場合である。
【００３０】
図３で示すＰＤＬデータ２０１のカラールックアップテーブル３０５は定義された２色が同じ色値のため、インデックスカラーイメージの描画結果はソースイメージ３０４内に記載された参照番号の違いには依存しない。そのためインデックスカラーイメージ最適化部２０３は、図４の下図に示すように、データテーブル４０４、塗りつぶし色情報４０５を含み、ソースイメージを除去した中間データ２０４を生成する。
【００３１】
すなわち、インデックスカラーイメージ最適化部２０３は、インデックスカラーイメージを、描画結果が等価で、カラールックアップテーブルおよびソースイメージのないフォーマットのイメージに変換して中間データを生成する。このフォーマット変換により、図５を用いて後述するように、フレームバッファにピクセルを書き出すたびに、ソースイメージピクセルを参照し、参照したピクセルの参照番号の示す色値をカラールックアップテーブルから都度取得することを行わないようにできる。つまり描画処理の高速化ができる。
【００３２】
またインデックスカラーイメージ最適化部２０３は、カラールックアップテーブル３０５に含まれる値が最小色値０か最大色値２５５の場合に、描画対象のピクセルごとのハーフトーン処理を不要にするような中間データを生成する。
【００３３】
カラールックアップテーブル３０５に含まれる値が最小色値０か最大色値２５５の場合、インデックスカラーイメージ最適化部２０３は１ｂｉｔ／ｐｉｘｅｌにするハーフトーン処理した結果が全てのピクセルで０または１となることが事前にわかる。そのためインデックスカラーイメージ最適化部２０３は、ハーフトーン処理が不要であるという情報を含む中間データを生成し、描画処理部２０５におけるハーフトーン処理を省略させる。
【００３４】
＜フォーマット変換を伴わないインデックスカラーイメージの描画＞
図５は第１の例のインデックスカラーイメージをフォーマット変換せずに描画処理部２０５の処理の流れを図示したものである。
【００３５】
インデックスカラーイメージをフォーマット変換せずに描画する場合、描画処理部２０５は、ソースイメージ５０１から１ｂｉｔ／ｐｉｘｅｌの参照番号を取得し、カラールックアップテーブル５０２で８ｂｉｔ／ｐｉｘｅｌの色値に変換する。
【００３６】
そして描画処理部２０５はこの８ｂｉｔ／ｐｉｘｅｌの色値をハーフトーン処理５０３することでフレームバッファ５０４に書き出すピクセル値を決定する。
【００３７】
そして描画処理部２０５は、この決定したピクセル値をフレームバッファ５０４に書き込むことで、インデックスカラーイメージを描画する。
【００３８】
描画処理部２０５は、この処理（１．ソースイメージから参照番号を取得し、２．カラールックアップテーブルを参照して参照番号を色値に変換し、３．色値にハーフトーン処理してピクセル値を決定する）を、フレームバッファの描画対象のピクセルごとに繰り返す。その結果、カラールックアップテーブルで定義された色値の組み合わせが単色（例えば白あるいは黒）の塗りつぶしを示すような簡易な画像であっても、図５に説明される処理フローが適用されるため、描画に時間がかかる。
【００３９】
＜フォーマット変換を伴うインデックスカラーイメージの描画＞
それに対して図６は、第１の例の、図４のインデックスカラーイメージを他のフォーマットに変換してから、描画処理部２０５が描画を行う場合の、本実施例における処理の流れを図示したものである。
【００４０】
図４のインデックスカラーイメージのカラールックアップテーブルで定義される色値の組み合わせを判定することで、インデックスカラーイメージのフレームバッファ上の描画結果が全てのピクセルで“０”または“１”のピクセル値になることがわかる。このため、インデックスカラーイメージ最適化部２０３は、インデックスカラーイメージをフォーマット変換して、ソースイメージ、カラールックアップテーブルを含まないが、データテーブル４０４、塗りつぶし色情報４０５を含む中間データ２０４（図４下図）を生成する。なおこの中間データ２０４のデータテーブル４０４には、描画処理部２０５においてハーフトーン処理が不要であることを示す情報も含まれている。
【００４１】
描画処理部２０５は、この中間データ２０４を解析し、描画される画像の塗りつぶし色の色値およびハーフトーン処理の有無を判定する。ここでは、塗りつぶし色の色値が最小色値０または最大色値２５５であり、かつ、ハーフトーン処理が不要であることを示す情報があるか、を判定する。
【００４２】
そして描画処理部２０５は、塗りつぶし色の色値が最小色値０または最大色値２５５であり、かつ、ハーフトーン処理が不要であることを示す情報があると判定した場合、次の処理を行う。例えば、描画処理部２０５は、図６に示すように一続きの連続する３２ｐｉｘｅｌ分の、フレームバッファの最小のピクセル値“０”または最大のピクセル値“１”のデータ６０１を作成する。そして描画処理部２０５は、このデータ６０１を用いて、複数ピクセル分のピクセル値をまとめてフレームバッファ６０４に書き出す。
【００４３】
つまり描画処理部２０５は、中間データを解析して、塗りつぶし色の色値が最小色値０または最大色値２５５であり、かつ、ハーフトーン処理が不要であることを示す情報があると判定すると、塗りつぶし色の色値に従って、複数ピクセル分のピクセル値を決定する。そして、描画処理部２０５は、この複数ピクセル分のピクセル値をまとめてフレームバッファに書き出す。この場合、描画処理部２０５は、カラールックアップテーブルを参照せずにフレームバッファに書き出すピクセル値を決定している。
【００４４】
一方で、描画処理部２０５は、塗りつぶし色の色値が最小色値０または最大色値２５５であり、かつ、ハーフトーン処理が不要であることを示す情報があると、判定しない場合、図５に示した処理を行う。すなわち、描画処理部２０５は、描画対象のピクセルごとに、ソースイメージおよびカラールックアップテーブルを参照して色値を取得し、取得した色値にハーフトーン処理を行って得られたピクセル値をフレームバッファに書き出す。
【００４５】
このように本実施例における第１の例の場合、インデックスカラーイメージ最適化部２０３は、インデックスカラーイメージを、ソースイメージおよびカラールックアップテーブルの参照とハーフトーン処理とを省略可能とするイメージにフォーマット変換する。そしてインデックスカラーイメージ最適化部２０３は、変換後のイメージの中間データを生成する。これにより、描画処理部２０５は、ソースイメージとカラールックアップテーブルの参照やハーフトーン処理を省略し、複数ピクセル分（例えば３２ｐｉｘｅｌ）のピクセル値を１回の処理でフレームバッファへ書き出すことができる。その結果、図５の処理フローに対して描画処理にかかる時間が大幅に短くなる。
【００４６】
＜第２の例＞
図７から図１０を用いてインデックスカラーイメージから他のフォーマットへフォーマット変換を行った方が高速に描画できる第２の例について説明する。
【００４７】
図７はＰＤＬデータ２０１の一例を示している。一般にＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）上のディスプレイでは輝度、印刷を行う画像処理装置では濃度で画像を扱う。そのためＰＣ上では輝度に変換するカラールックアップテーブル７０１、印刷装置では濃度に変換するカラールックアップテーブル７０２と使い分けることにより簡単に変換することができる。輝度と濃度の単純変換のように、カラールックアップテーブルに定義される色値が最小色値“０”と最大色値“２５５”で構成される場合は、ソースイメージを反転するか、反転しないかを制御することになる。
【００４８】
ソースイメージを反転するか、反転しないかの制御は、カラールックアップテーブルを用いずとも、描画処理部２０５が描画するときのＲＯＰ処理を切り替えることによってもできる。そのため図７に示すような色値の組み合わせが最小色値“０”と最大色値“２５５”で構成されたカラールックアップテーブルをもつインデックスカラーイメージが入力された場合、インデックスカラーイメージ最適化部２０３は、次の処理を行う。つまりインデックスカラーイメージ最適化部２０３は、入力されたインデックスカラーイメージを、図８下図の中間データに変換する。
【００４９】
ここでインデックスカラーイメージ最適化部２０３は、データテーブル８０１およびソースイメージ８０２を含むが、カラールックアップテーブルを含まない中間データを生成する。中間データはカラールックアップテーブルを含まないため、カラールックアップテーブルを参照して色値を取得することでソースイメージ８０２を反転することはできない。その代わりに、インデックスカラーイメージ最適化部２０３は、データテーブル８０１に含まれるＲＯＰを反転処理を行うＲＯＰに変換することで、ソースイメージ８０２を反転して描画することを可能にする。
【００５０】
フレームバッファ２０６に濃度の画像を描画する際に、カラールックアップテーブルの参照番号“０”に対応する色値が最小色値“０”で、参照番号“１”に対応する色値が最大色値“２５５”である場合、インデックスカラーイメージ最適化部２０３は、ＲＯＰにＣＯＰＹＰＥＮを指定する。すなわち、インデックスカラーイメージ最適化部２０３は、カラールックアップテーブルに定義された色値の組み合わせにおいてソースイメージのオフピクセルに対応する色値が最小色値であってオンピクセルに対応する色値が最大色値である場合、ソースイメージを反転せずにそのまま書き出すＲＯＰを指定した中間データを生成する。
【００５１】
またカラールックアップテーブルの参照番号“０”に対応する色値が最大色値“２５５”で、参照番号“１”に対応する色値が最小色値“０”である場合、インデックスカラーイメージ最適化部２０３は、ＲＯＰにＮＯＴＣＯＰＹＰＥＮを指定する。すなわち、インデックスカラーイメージ最適化部２０３は、カラールックアップテーブルに定義された色値の組み合わせにおいてソースイメージのオフピクセルに対応する色値が最大色値であって前記オンピクセルに対応する色値が最小色値である場合、ソースイメージを反転して書き出すＲＯＰを指定した中間データを生成する。
【００５２】
上記の色値の組み合わせの判定を言い換えると、インデックスカラーイメージ最適化部２０３は、色値の組み合わせが、フレームバッファに書き出されるイメージがソースイメージと等価となるものであるかを判定している。また、インデックスカラーイメージ最適化部２０３は、フレームバッファに書き出されるイメージがソースイメージを反転したイメージと等価となるものであるかを判定している。
【００５３】
色値の組み合わせが、書き出されるイメージがソースイメージと等価となるものである場合、ピクセルごとにカラールックアップテーブルを参照することなく、ソースイメージのピクセル値で描画対象のピクセルを描画する。また、色値の組み合わせが、書き出されるイメージがソースイメージを反転したイメージと等価となるものである場合、ピクセルごとにカラールックアップテーブルを参照することなく、ソースイメージを反転したイメージのピクセル値で描画対象のピクセルを描画する。
【００５４】
＜フォーマット変換を伴わないインデックスカラーイメージの描画＞
図９に説明される処理フローは、第２の例のインデックスカラーイメージをフォーマット変換せずに描画処理部２０５の処理の流れを図示したものである。図９の処理フローにおいては、ソースイメージ９０１から１ｂｉｔ／ｐｉｘｅｌの参照番号を取得し、カラールックアップテーブル９０２を参照して参照番号を８ｂｉｔ／ｐｉｘｅｌの色値に変換する。そして描画処理部２０５は上記８ｂｉｔ／ｐｉｘｅｌの色値をハーフトーン処理９０３することでピクセル値を決定し、決定したピクセル値をフレームバッファ９０４に書き込む。
【００５５】
描画処理部２０５はこの処理（１．ソースイメージから参照番号を取得し、２．カラールックアップテーブルを参照して参照番号を色値に変換し、３．色値にハーフトーン処理してピクセル値を決定する）をフレームバッファ上の描画対象のピクセルごとに繰り返すことになるため、図９の処理フローにおいては描画に時間がかかる。
【００５６】
＜フォーマット変換を伴うインデックスカラーイメージの描画＞
図９の処理フローに対して図１０は、第２の例のインデックスカラーイメージを他のフォーマットに変換してから描画処理部２０５を行う場合の、本実施例の処理の流れを図示したものである。
【００５７】
図８のインデックスカラーイメージのカラールックアップテーブルで定義される色値の組み合わせを判定することで、図８のインデックスカラーイメージの描画結果がソースイメージをそのまま描画したものとなるか、反転して描画したものとなるかが分かる。
【００５８】
このため、インデックスカラーイメージ最適化部２０３は、ソースイメージを含むが、カラールックアップテーブルを含まない、図８の下図のようなデータテーブル８０１およびソースイメージ８０２を含む中間データを生成する。この中間データのデータテーブル８０１には、描画処理部２０５においてハーフトーン処理を行わないことを示す情報も含まれている。
【００５９】
また、この中間データに含まれるＲＯＰには、ソースイメージをそのまま描画する場合、ソースイメージを反転せずに上書き描画するＣＯＰＹＰＥＮが指定される。一方、ソースイメージを反転して描画する場合、ソースイメージを反転して上書き描画するＮＯＴＣＯＰＹＰＥＮがＲＯＰに指定される。
【００６０】
なお、インデックスカラーイメージ最適化部２０３の行う中間データの生成方法は、上述したとおりである。
【００６１】
描画処理部２０５は、生成された中間データを解析し、ＲＯＰが、ソースイメージの上書き（ＣＯＰＹＰＥＮ）か、ソースイメージの反転上書き（ＮＯＴＣＯＰＹＰＥＮ）であるかを判定する。
【００６２】
描画処理部２０５は、ソースイメージ１００１から一続きの連続する３２ｐｉｘｅｌ分のデータ１００２を取得し、ＲＯＰがＣＯＰＹＰＥＮの場合は反転せずにフレームバッファ１００４に書き出す。また、描画処理部２０５は、ＲＯＰがＮＯＴＣＯＰＹＰＥＮの場合はソースイメージ１００１から取得した３２ｐｉｘｅｌ分のデータ１００２を反転したデータ１００３を作成し、反転したデータ１００３をフレームバッファ１００４に書き出す。
【００６３】
このように本実施例における第２の例の場合、インデックスカラーイメージ最適化部２０３は、インデックスカラーイメージを変換して、カラールックアップテーブルの参照やハーフトーン処理を省略可能とする中間データを生成する。またインデックスカラーイメージ最適化部２０３は、カラールックアップテーブルに定義された色値の組み合わせに従ってＲＯＰを反転したものに変換する。そしてインデックスカラーイメージ最適化部２０３は、変換後のイメージの中間データを生成する。これにより、描画処理部２０５は、カラールックアップテーブルの参照やハーフトーン処理を省略し、複数ピクセル分（例えば３２ｐｉｘｅｌ）をソースイメージから取得して、１回の処理でフレームバッファへ書き出すことができる。
【００６４】
つまり本実施例における第２の例では、フレームバッファに書き出すピクセル値を、ピクセルごとにカラールックアップテーブルを参照することなしに、ソースイメージのピクセル値あるいは反転されたソースイメージのピクセル値とする。その結果、図５の処理フローに対して描画処理にかかる時間が大幅に短くなる。
【００６５】
＜インデックスカラーイメージのフォーマット変換の処理フロー＞
インデックスカラーイメージ最適化部２０３が上記第１および第２の例に示すフォーマット変換を行う処理の流れを、図１１を用いて説明する。なおインデックスカラーイメージ最適化部２０３の行う処理のプログラムはＲＯＭ１０２に格納されており、ＲＡＭ１０３に展開されＣＰＵ１０１によって実行される。また、ＰＤＬデータ２０１、中間データ２０４、フレームバッファ２０６は全てＲＡＭ１０３に置かれる。
【００６６】
インデックスカラーイメージ最適化部２０３は、インデックスカラーイメージのカラールックアップテーブルに定義される色値の組み合わせを参照する（Ｓ１１０１）。
【００６７】
そしてインデックスカラーイメージ最適化部２０３は、色値の組み合わせが最小色値“０”と最大色値“２５５”以外の色値（中間色の色値“１”〜“２５４”）を含むか判定する（Ｓ１１０２）。
【００６８】
カラールックアップテーブルに含まれる色値の組み合わせに中間色の色値が含まれる場合、処理はＳ１１０３へ進み、インデックスカラーイメージ最適化部２０３は、フォーマット変換を行わない。そのためインデックスカラーイメージ最適化部２０３は、インデックスカラーイメージの描画開始位置、描画サイズ等の情報の中間データを生成し（Ｓ１１０３）、カラールックアップテーブルの中間データを生成する（Ｓ１１０４）。またインデックスカラーイメージ最適化部２０３は、ソースイメージの中間データ２０４を生成する（Ｓ１１０５）。
【００６９】
ステップＳ１１０３〜Ｓ１１０５によって生成された中間データに基づく描画は、前述したように、描画対象のピクセルごとに色値をカラールックアップテーブルから取得してハーフトーン処理を行い、それによって得られるピクセル値をフレームバッファに描画する。
【００７０】
Ｓ１１０２において色値の組み合わせに中間色の色値が含まれないと判定された場合、インデックスカラーイメージ最適化部２０３は、色値の組み合わせが最小色値のみあるいは最大色値のみで構成されるか判定する（Ｓ１１０６）。
【００７１】
色値の組み合わせが、最小色値のみで構成される（第１の組み合わせ）か、あるいは最大色値のみで構成される（第２の組み合わせ）場合、フレームバッファに描画されるイメージ全面は、ソースイメージのオンピクセルおよびオフピクセルの位置、ならびにハーフトーン処理の影響を受けず、最小あるいは最大のピクセル値の１色となる。そのため、インデックスカラーイメージ最適化部２０３は、描画開始位置、描画サイズ等の情報の中間データを生成し（Ｓ１１０７）、最小色値あるいは最大色値の塗りつぶし色の中間データを生成する（Ｓ１１０８）。
【００７２】
つまり、Ｓ１１０６において色値の組み合わせが最小色値のみで構成される（第１の組み合わせ）、あるいは最大色値のみで構成される（第２の組み合わせ）と判定された場合、インデックスカラーイメージ最適化部２０３は、インデックスカラーイメージを変換して、カラールックアップテーブルおよびソースイメージを含まない中間データに生成する。
【００７３】
Ｓ１１０６において色値の組み合わせが最小色値のみで構成される、あるいは最大色値のみで構成される、と判定されない場合は、色値の組み合わせが最小色値と最大色値とで構成される（第３の組み合わせ）場合である。この場合、インデックスカラーイメージ最適化部２０３は、描画開始位置、描画サイズ等の情報の中間データを生成する（Ｓ１１０９）。
【００７４】
そしてインデックスカラーイメージ最適化部２０３は、カラールックアップテーブルを参照し、オフピクセルに対応する色値が最大色値であってオンピクセルに対応する色値が最小色値であるかを判定する（Ｓ１１１０）。すなわち、インデックスカラーイメージ最適化部２０３は、カラールックアップテーブルに定義された色値の組み合わせが、インデックスカラーイメージ（ソースイメージ）の白黒（ビット）を反転させるものであるかどうかを判定する。言い換えると、インデックスカラーイメージ最適化部２０３は、色値の組み合わせが、書き出されるイメージがソースイメージと等価となるものであるか、書き出されるイメージがソースイメージを反転したイメージと等価となるものであるかを判定する。
【００７５】
カラールックアップテーブルがソースイメージを反転させるものであると判定された場合、インデックスカラーイメージ最適化部２０３は、Ｓ１１０９で生成した中間データのデータテーブルに含まれるＲＯＰを反転（ＮＯＴ）する（Ｓ１１１１）。これによりソースイメージは反転されて書き出されることになる。インデックスカラーイメージ最適化部２０３は、カラールックアップテーブルを生成せずにソースイメージのみ中間データを生成する（Ｓ１１１２）。
【００７６】
つまり、Ｓ１１０６において色値の組み合わせが最小色値および最大色値で構成される（第３の組み合わせ）と判定された場合、インデックスカラーイメージ最適化部２０３は、インデックスカラーイメージを変換して、カラールックアップテーブルを含まない中間データを生成する。
【００７７】
なお、本実施例においてカラールックアップテーブルは２色の定義を持つ例で説明してきたが、２５６色を持つようなカラールックアップテーブルにも本発明を適用しても良い。第１の例であれば２５６色の全てが“０”または“２５５”であれば同様に処理可能であるし、第２の例であれば１から２５５番目までの色値が“０”で、２５６番目の色値が“２５５”といった場合に適用すれば良い。
【００７８】
（第２の実施例）
＜第３の例＞
本実施例は、第１の実施例の処理に加えて、以下で説明するインデックスカラーイメージが入力された場合の処理について、第３の例を用いて説明する。
【００７９】
図１２から図１５を用いてインデックスカラーイメージから他のフォーマットへフォーマット変換を行った方が高速に描画できる第３の例について説明する。図７はＰＤＬデータ２０１の一例を示している。ソースイメージ１２０１のオンビット（値が“１であるピクセル）にカラールックアップテーブル１２０２で特定の色値（本例では１２８）の色を付け１２０２の画像を形成する。この使用方法はインデックスカラーイメージ本来の使用方法であるが、このような例においてもインデックスカラーイメージより簡易な描画方法に変換することが可能である。
【００８０】
図１３は図１２のインデックスカラーがディザマトリクス法によりハーフトーン処理を含む描画された画像の詳細を示している。ディザマトリクス法では特定のサイズ（例えば１６ｐｉｘｅｌ×１６ｐｉｘｅｌ）のディザマトリクスを用いる。そのためディザマトリクス法によって特定の１色をハーフトーン処理した場合、１３０１、１３０２のようにディザマトリクスのサイズ単位に同一の画像が生成される。すなわちディザマトリクスを用いて特定の１色をハーフトーン処理した結果の、ディザマトリクスのサイズをもった同一パターンの複数のピクセル値を有するタイル（ハーフトーンパターン）１３０１、１３０２が、ソースイメージの参照番号が“１”である領域において並べられる。
【００８１】
そこで、インデックスカラーイメージ最適化部２０３は、ディザマトリクスを用いて、特定の１色（例えばカラールックアップテーブル１２０２の参照番号“１”に対応する中間色の色値）をハーフトーン処理することで、図１４のタイル１４０１を生成する。このタイル１４０１はディザマトリクスのサイズ（例えば１６ｐｉｘｅｌ×１６ｐｉｘｅｌ）をもった複数のピクセル値を有するタイルである。そしてインデックスカラーイメージ最適化部２０３は、このタイル１４０１の中間データ２０４を生成する。
【００８２】
そして描画処理部２０５は、フレームバッファへの描画の際に、タイル１４０１を繰り返し並べて使用することにより描画処理にかかる時間が短くすることが出来る。
【００８３】
図１４の下図に示される中間データ２０４が生成された場合、描画処理部２０５は、図１５に示す処理を行う。
【００８４】
描画処理部２０５は、ソースイメージ１５０１とタイル１５０３から１６ｐｉｘｅｌ分（１６ｐｉｘｅｌ×１ｐｉｘｅｌ）の画像１５０２、１５０４を取り出す。なお、ソースイメージ１５０１およびタイル１５０３から取り出される画像１５０２および画像１５０４は、フレームバッファの描画位置に応じてずれた位置の画像がそれぞれ取り出される。
【００８５】
そして描画処理部２０５は、画像１５０２と画像１５０４とのＡＮＤ処理１５０５を行い、その処理結果をフレームバッファ１５０６に書き出す。このＡＮＤ処理によって、ソースイメージ１５０１の描画領域（ソースイメージ１５０１中の黒塗りつぶし領域）のピクセル値をタイル１５０３のピクセル値で、フレームバッファ１５０６に書き出すことになり、インデックスカラーイメージの描画が行われる。
【００８６】
以上のように、ハーフトーン処理済みのタイル１５０３のピクセル値をまとめてフレームバッファ１５０６に書き出すことができるため、カラールックアップテーブルから色値を取得してハーフトーン処理を行う一連の処理をピクセルごとに行わずにすむ。その結果描画処理にかかる時間が短くなる。
【００８７】
インデックスカラーイメージ最適化部２０３が第３の例に示すフォーマット変換を行う処理の流れを、図１６を用いて説明する。なおインデックスカラーイメージ最適化部２０３の行う処理のプログラムはＲＯＭ１０２に格納されており、ＲＡＭ１０３に展開されＣＰＵ１０１によって実行される。また、ＰＤＬデータ２０１、中間データ２０４、フレームバッファ２０６は全てＲＡＭ１０３に置かれる。
【００８８】
図１６に示されるフローチャートの処理において、図１１のフローチャートのステップ番号と同一の番号が振られている処理（Ｓ１１０１〜Ｓ１１１２）は、図１１のフローチャートの処理（Ｓ１１０１〜Ｓ１１１２）と同様の処理である。以降では、その差分である処理（Ｓ１６０１〜Ｓ１６０４）について説明する。
【００８９】
第１の例および第２の例に該当しないインデックスカラーイメージ（Ｓ１１０２でＮＯ）に対して、インデックスカラーイメージ最適化部２０３は、カラールックアップテーブルで定義される色値の組み合わせが最小色値“０”と中間色の色値（１〜２５４）で構成されるか判定する（Ｓ１６０１）。
【００９０】
カラールックアップテーブルで定義される色値の組み合わせが最小色値“０”と中間色の色値（１〜２５４）で構成される場合、インデックスカラーイメージ最適化部２０３は、インデックスカラーイメージの描画開始位置、サイズ等の情報の中間データを生成する（Ｓ１６０２）。
【００９１】
そしてインデックスカラーイメージ最適化部２０３は、上述の方法を用いて、タイルの中間データを生成する（Ｓ１６０３）。
【００９２】
またインデックスカラーイメージ最適化部２０３は、ソースイメージの中間データを生成する（Ｓ１６０３）。
【００９３】
Ｓ１６０２で生成されるタイルは図１４に示したように、ディザマトリクスのサイズと同じで、かつタイルに含まれる全てのピクセルはカラールックアップテーブルの２番目に定義された色をハーフトーン処理した結果である。
【００９４】
このように、カラールックアップテーブルで定義される色値の組み合わせが最小色値“０”と中間色の色値（１〜２５４）で構成される（第４の組み合わせ）場合、インデックスカラーイメージは、中間色の色値を予めハーフトーン処理したタイルの中間データに変換される。なお、この変換された中間データはカラールックアップテーブルを含まない。
【００９５】
一方、Ｓ１６０１においてカラールックアップテーブルに定義される色値の組み合わせが最小色値“０”と中間色の色値“１〜２５４”で構成されない場合、第１の実施例で説明したように、図１１のフローチャートの処理（Ｓ１１０３〜Ｓ１１０５）が実行される。
【００９６】
第３の例においてカラールックアップテーブルに含まれる色値が“０”と任意の中間色（１〜２５４）であった場合を説明したが、２つの色値が同一の中間色の色値である場合にも適用できる。この場合のＳ１６０１の処理は、カラールックアップテーブルに含まれる色値が同一の中間色の色値であるか、を判定する処理であれば良い。すなわち、カラールックアップテーブルに含まれる色値が同一の中間色の色値（例えば１２８）であった場合に、処理をＳ１６０２〜Ｓ１６０４に進める。この場合も、Ｓ１６０３においてソースイメージの参照番号“１”に対応する色値をハーフトーン処理することでピクセル値のタイルを生成するようにする。
【００９７】
また、第３の例においてカラールックアップテーブルに含まれる色値が“０”と任意の中間色（１〜２５４）であった場合を説明したが、２つの色値が中間色（１〜２５４）であった場合にも適用できる。この場合、Ｓ１６０１の判定処理は不要となり、常にＳ１６０２〜Ｓ１６０４の処理が行われ、Ｓ１６０３においてインデックスカラーイメージ最適化部２０３は、参照番号“０”および“１”それぞれに対応する２つの中間値の色値のタイルをそれぞれ生成する。そしてインデックスカラーイメージ最適化部２０３は、生成した２つのタイルの中間データを生成する。そして描画処理部２０５は、描画の際に、ソースイメージのオンビット（値が“１”すなわち参照番号が“１”）の部分に対して、図１５で示した処理フローと同様に、画像１５０２と参照番号“１”に対応するタイル１５０３から取り出した画像１５０４とのＡＮＤ処理１５０５の処理結果１を取得する。またソースイメージのオフビット（値が“０”すなわち参照番号が“０”）の部分に対しては、描画処理部２０５は、図１５のソースイメージから取りだした画像１５０２を反転処理（ＮＯＴ処理）した画像と、参照番号“０”に対応するタイルから取り出した画像とのＡＮＤ処理の処理結果２を取得する。そして描画処理部２０５は、処理結果１と処理結果２とのＯＲ処理を行った処理結果をフレームバッファ１５０６に書き出すようにすれば良い。
【００９８】
以上のように、カラールックアップテーブルで定義された色値の組み合わせが中間色の色値で構成された場合でも、ハーフトーン処理済みのタイルのピクセル値をまとめてフレームバッファ１５０６に書き出すことができるため、カラールックアップテーブルから色値を取得してハーフトーン処理を行う一連の処理をピクセルごとに行わずにすむ。その結果描画処理にかかる時間が短くなる。
【００９９】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014110602.tif 000003
【図２】
2014110602.tif 000004
【図３】
2014110602.tif 000005
【図４】
2014110602.tif 000006
【図５】
2014110602.tif 000007
【図６】
2014110602.tif 000008
【図７】
2014110602.tif 000009
【図８】
2014110602.tif 000010
【図９】
2014110602.tif 000011
【図１０】
2014110602.tif 000012
【図１１】
2014110602.tif 000013
【図１２】
2014110602.tif 000014
【図１３】
2014110602.tif 000015
【図１４】
2014110602.tif 000016
【図１５】
2014110602.tif 000017
【図１６】
2014110602.tif 000018