(57)【特許請求の範囲】
【請求項１】
各画素位置に対し色データが定義されているラスタ画像から、同色の色データが閾値以上連続していない領域の各画素位置に対して色データが定義されているビットマップオブジェクトと、同色の色データが閾値以上連続している領域に対して色データが定義されているフラットフィルオブジェクトとを生成する生成手段と、
前記生成手段により生成されたビットマップオブジェクトと、オブジェクトに対して色データが定義されている単色のオブジェクトの２つのオブジェクトを合成する場合は、該２つのオブジェクトが重なる領域の前記ビットマップオブジェクトの色データと前記単色のオブジェクトの色データとの合成演算を画素位置毎に行い、合成演算された夫々の色データを該２つのオブジェクトが重なる領域における各画素位置に書き込み、
前記生成手段により生成されたフラットフィルオブジェクトと前記単色のオブジェクトの２つのオブジェクトを合成する場合は、該２つのオブジェクトの色データの合成演算を一度行い、合成演算された色データを該２つのオブジェクトが重なる領域における各画素位置に書き込む描画手段と、
前記生成手段により生成されたビットマップオブジェクトが描画される領域に係る透明度が所定値よりも大きい場合に、該ビットマップオブジェクトの解像度を下げる解像度変更手段と、を有し、
前記描画手段は、前記生成手段により生成されたビットマップオブジェクトと単色のオブジェクトの２つのオブジェクトを合成する場合は、前記解像度変更手段により解像度を変更された前記ビットマップオブジェクト、および前記単色のオブジェクトの２つのオブジェクトが重なる領域の前記ビットマップオブジェクトの色データと前記単色のオブジェクトの色データとの合成演算を画素位置毎に行い、合成演算された画素値を各画素位置に書き込み、
前記解像度変更手段は、前記解像度変更手段により変更された前記ビットマップオブジェクト、および前記単色のオブジェクトの合成結果のオブジェクトの解像度を上げることを特徴とする装置。
【請求項２】
前記生成手段により生成されたビットマップオブジェクトが描画される領域に係る透明度が所定値よりも大きい場合に、該ビットマップオブジェクトの色データを量子化する量子化手段を更に有し、
前記描画手段は、前記生成手段により生成されたビットマップオブジェクトと単色のオブジェクトの２つのオブジェクトとを合成する場合は、前記量子化手段により色データを量子化された前記ビットマップオブジェクト、および前記単色のオブジェクトの２つのオブジェクトが重なる領域の前記ビットマップオブジェクトの色データと前記単色のオブジェクトの色データとの合成演算を行い、合成演算された画素値を記憶し、
前記合成演算された画素値と同じ画素値になる画素に対しては、合成演算を行わず前記記憶した画素値を書き込むことを特徴とする請求項１に記載の装置。
【請求項３】
生成手段は、各画素位置に対し色データが定義されているラスタ画像から、同色の色データが閾値以上連続していない領域の各画素位置に対して色データが定義されているビットマップオブジェクトと、同色の色データが閾値以上連続している領域に対して色データが定義されているフラットフィルオブジェクトとを生成し、
描画手段は、前記生成手段により生成されたビットマップオブジェクトと、オブジェクトに対して色データが定義されている単色のオブジェクトの２つのオブジェクトを合成する場合は、該２つのオブジェクトが重なる領域の前記ビットマップオブジェクトの色データと前記単色のオブジェクトの色データとの合成演算を画素位置毎に行い、合成演算された夫々の色データを該２つのオブジェクトが重なる領域における各画素位置に書き込み、
前記生成手段により生成されたフラットフィルオブジェクトと前記単色のオブジェクトの２つのオブジェクトを合成する場合は、該２つのオブジェクトの色データの合成演算を一度行い、合成演算された色データを該２つのオブジェクトが重なる領域における各画素位置に書き込み解像度変更手段は、前記生成手段により生成されたビットマップオブジェクトが描画される領域に係る透明度が所定値よりも大きい場合に、該ビットマップオブジェクトの解像度を下げ、
前記描画手段は、前記生成手段により生成されたビットマップオブジェクトと単色のオブジェクトの２つのオブジェクトを合成する場合は、前記解像度変更手段により解像度を変更された前記ビットマップオブジェクト、および前記単色のオブジェクトの２つのオブジェクトが重なる領域の前記ビットマップオブジェクトの色データと前記単色のオブジェクトの色データとの合成演算を画素位置毎に行い、合成演算された画素値を各画素位置に書き込み、
前記解像度変更手段は、前記解像度変更手段により変更された前記ビットマップオブジェクト、および前記単色のオブジェクトの合成結果のオブジェクトの解像度を上げることを特徴とする描画方法。
【請求項４】
請求項３に記載の描画方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ラスタ画像を生成する装置、ラスタ画像生成方法、およびプログラムに関する。
【背景技術】
【０００２】
レンダリング処理における合成処理とは、前面画像と背面画像を合成して結果の画像を形成する処理である。合成処理の方法は、非特許文献１により開示されている。非特許文献１には、１２個の合成演算子を体系化し、透過合成処理に対応した合成処理の方法が開示されている。
【０００３】
また、アルファブレンド処理におけるＣＰＵの負荷を軽減して処理の高速化を図る技術として特許文献１がある。特許文献１には、各画像要素の画素値とアルファ値を夫々ラン形式で生成し、生成されたラン形式のデータを伸長し、画素値とアルファ値を１画素毎に合成演算を行う方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２２８１６８号公報
【非特許文献】
【０００５】
【非特許文献１】Ｔ．Ｐｏｒｔｅｒ  ａｎｄ  Ｔ．Ｄｕｆｆ：“Ｃｏｍｐｏｓｉｔｉｎｇ  Ｄｉｇｉｔａｌ  Ｉｍａｇｅｓ”，Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ，Ｖｏｌ．１８，Ｎｏ．３，ＡＣＭ  １９８４．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述の如く、従来技術は、ラスタ画像の合成処理を画素値とアルファ値の１画素毎に行っている。そのため、同一の画素値が連続しているラスタ画像データであっても、１画素毎に合成演算が行われる。これは、ラスタ画像の合成対象となるオブジェクトによっては、無駄な合成演算が行われることを意味する。
【０００７】
本発明は、上述の課題を解決するための装置、およびラスタ画像生成方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一実施形態に係る装置は、
各画素位置に対し色データが定義されているラスタ画像から、同色の色データが閾値以上連続していない領域の各画素位置に対して色データが定義されているビットマップオブジェクトと、同色の色データが閾値以上連続している領域に対して色データが定義されているフラットフィルオブジェクトとを生成する生成手段と、
前記生成手段により生成されたビットマップオブジェクトと、オブジェクトに対して色データが定義されている単色のオブジェクトの２つのオブジェクトを合成する場合は、該２つのオブジェクトが重なる領域の前記ビットマップオブジェクトの色データと前記単色のオブジェクトの色データとの合成演算を画素位置毎に行い、合成演算された夫々の色データを該２つのオブジェクトが重なる領域における各画素位置に書き込み、
前記生成手段により生成されたフラットフィルオブジェクトと前記単色のオブジェクトの２つのオブジェクトを合成する場合は、該２つのオブジェクトの色データの合成演算を一度行い、合成演算された色データを該２つのオブジェクトが重なる領域における各画素位置に書き込む描画手段と、
前記生成手段により生成されたビットマップオブジェクトが描画される領域に係る透明度が所定値よりも大きい場合に、該ビットマップオブジェクトの解像度を下げる解像度変更手段と、を有し、
前記描画手段は、前記生成手段により生成されたビットマップオブジェクトと単色のオブジェクトの２つのオブジェクトを合成する場合は、前記解像度変更手段により解像度を変更された前記ビットマップオブジェクト、および前記単色のオブジェクトの２つのオブジェクトが重なる領域の前記ビットマップオブジェクトの色データと前記単色のオブジェクトの色データとの合成演算を画素位置毎に行い、合成演算された画素値を各画素位置に書き込み、
前記解像度変更手段は、前記解像度変更手段により変更された前記ビットマップオブジェクト、および前記単色のオブジェクトの合成結果のオブジェクトの解像度を上げることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、同一の画素値が連続しているラスタ画像データに対し、合成演算の回数を削減してレンダリング速度の高速化を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】実施例１における従来の合成処理の例を示す図。
【図２】実施例１における画像処理装置１００の構成を示す図。
【図３】実施例１におけるラスタ画像処理部（ＲＩＰ）１０３によるラスタ画像生成処理のフローチャート。
【図４】実施例１におけるラスタ画像処理部（ＲＩＰ）１０３の各種機能を示す図。
【図５】実施例１における画像領域分離部９０６による像域分離処理のフローチャート。
【図６】実施例１におけるオブジェクトに対してスキャンライン（水平線）が交差している様子を示す図。
【図７】実施例１におけるジョブデータ生成部９０３により生成されたジョブデータの構造を示す図。
【図８】実施襟１における画像記憶部９０２による像域分離処理から画像圧縮するまでの処理のフローチャート。
【図９】実施例１における画像読込部９０４による画像解凍からジョブデータをマージするまでの処理を示すフローチャート。
【図１０】実施例１におけるマージ処理後のジョブデータの構造を示す図。
【図１１】実施例１におけるジョブデータマージ部９１２によるマージ処理により更新されたジョブデータの構造を示す図。
【図１２】実施例１におけるＳ２０３のレンダリング処理のフローチャート。
【図１３】実施例２におけるラスタ画像処理部（ＲＩＰ）１２００の構成を示す図。
【図１４】実施例２におけるＳ５０６．５による解像度変更処理を示すフローチャート。
【図１５】実施例３におけるラスタ画像処理部（ＲＩＰ）１５００の構成を示す図。
【図１６】実施例３におけるレンダリング部１５００による量子化処理を示す図。
【発明を実施するための形態】
【００１１】
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
【実施例１】
【００１２】
始めに、合成処理について説明する。図１は、合成処理の例を図示化したものである。図１（Ａ）は、単色の色データ同士を合成した場合の合成処理を示している。具体的には、例えば、単色の色データがオブジェクトに対して定義されているオブジェクト同士が挙げられる。また、図１（Ｂ）は、ラスタ画像データと単色の色データを合成した場合の合成処理を示している。図１（Ａ）は、互いに単色の色データであるので、合成演算は一回で済んでいる。なぜなら、２つの図形が重なる領域は、全て同じ色データとなるからである。しかし、図６（Ｂ）は、一方がラスタ画像データであるため、合成処理を行う場合には画素位置毎に合成演算を行う必要がある。なぜなら、ラスタ画像は単色の色データの画像とは異なり、ラスタ画像の全ての画素位置が同じ色データではない可能性があるからである。そのため、１画素毎に合成演算を行わなくてはならない。結果、ラスタ画像を合成しない場合と比較してレンダリング速度の低下が起こる。
【００１３】
そこで実施例１では、画像領域の広い範囲において単一色が続くラスタ画像と、単色の色データを合成する場合に、従来よりも合成演算回数を減らすことが可能になる方法を開示する。
【００１４】
ここで、実施例１において使われる用語について説明する。オブジェクトのタイプには、ラスタ画像、フラットグラフィックが存在する。ラスタ画像とは、例えば、ＢＭＰ、ＪＰＧ等の写真データを始めとする、ビットマップグラフィックスに分類されるオブジェクトのことを指す。実施例１におけるフラットグラフィックスとは、ベクタグラフィックスであって、オブジェクトに対して単一色の色データが定義されたオブジェクトのことを指す。実施例１では、このオブジェクトのことを単色のオブジェクトと呼ぶ。また、その他のオブジェクトのタイプも複数存在し、例えば、グラデーショングラフィックス、テキスト等が挙げられる。
【００１５】
また、後述する像域分離処理を実行することで、ラスタ画像は、フラットフィル部、ビットマップ部の２つの画像領域の内、少なくとも１つの画像領域に分離される。分離された夫々の画像領域は、別々のオブジェクトとして扱われる。即ち、オブジェクトであるラスタ画像は、複数のオブジェクトに分離されることになる。そのため、フラットフィル部をフラットフィルオブジェクト、ビットマップ部をビットマップオブジェクトとも呼ぶ。
【００１６】
以下、図２を参照して実施例１における画像処理装置の構成について詳細に説明する。図２は、実施例１における画像処理装置１００の構成を示す図である。
【００１７】
画像処理装置１００は、描画命令に基づき画像を形成、および出力する装置であり、入力部１０１、解釈部（インタプリタ）１０２、ラスタ画像処理部（ＲＩＰ）１０３、画像形成部１０４、出力部１０５から構成される。
【００１８】
入力部１０１は、画像処理装置１００に接続されている外部装置から描画命令を受け付ける箇所である。解釈部（インタプリタ）１０２は、入力部１０１で受け付けた描画命令を解釈する箇所である。実施例１における描画命令の形式は、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）である。  ラスタ画像処理部（ＲＩＰ）１０３は、解釈部（インタプリタ）１０２により解釈された描画命令を基にレンダリングを行い、ラスタ画像を生成する。画像形成部１０４はラスタ画像処理部（ＲＩＰ）１０３により生成されたラスタ画像に対し、ハーフトーン処理等の画像処理を施して出力画像を形成する。出力部１０５は、画像形成部１０４により形成された出力画像を出力する。なお、実施例１における画像処理装置は、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）であり、出力部１０５は、記録紙に印刷を行うことで出力画像を出力する。なお、解釈部（インタプリタ）１０２は、インタプリタを実現するプログラムをＣＰＵが実行することで実現される。また、ラスタ画像処理部（ＲＩＰ）１０３は、ラスタ画像処理部を実現するプログラムをＣＰＵが実行することで実現される。また、画像形成部１０４は、画像形成プログラムをＣＰＵが実行することで実現される。なお、夫々のプログラムはＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）にロードされ、ＣＰＵが実行することで実現される。また、ラスタ画像処理部（ＲＩＰ）１０３は、ＣＰＵではなくラスタ画像を生成するための専用のハードウェアで実現されても良い。例えば、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）にラスタ画像処理部の機能を実行させることが考えられる。
【００１９】
次に、ラスタ画像（ＲＩＰ）１０３によるラスタ画像の生成処理について詳細に説明する。図３は、ラスタ画像処理部（ＲＩＰ）１０３によるラスタ画像生成処理を示すフローチャートである。始めに、ラスタ画像処理部（ＲＩＰ）１０３は、図１の解釈部（インタプリタ）１０２で解釈した描画命令に基づき、オブジェクトを生成する（Ｓ２０１）。なお、上述の如く、オブジェクトの種類（塗りタイプ）は複数存在し、夫々のオブジェクトはいずれかのオブジェクトの種類（塗りタイプ）に分類される。
【００２０】
また、図３に示すように、複数のオブジェクトの描画領域が重なることもある。例えば、図３においては、ひし形２０が背面画像、丸２１が前面画像として重なっている。ひし形２０、および丸２１が透過合成として合成されていない場合、重なっている部分は丸２１の色データとして描画される。透過合成の場合は、ひし形２０、および丸２１の透過合成演算により算出された色データが描画される。
【００２１】
続いて、Ｓ２０１において生成されたオブジェクトの座標情報を基に、ラスタ画像処理部（ＲＩＰ）１０３は、夫々のオブジェクトのエッジを検出しジョブデータを生成する（Ｓ２０２）。最後に、Ｓ２０２において生成されたジョブデータを基に、ラスタ画像処理部（ＲＩＰ）１０３は、ラスタ画像をレンダリングする（Ｓ２０３）。なお、ジョブデータについては、後述する。
【００２２】
次に、ラスタ画像処理部（ＲＩＰ）１０３の内部構成について詳細に説明する。図４は、ラスタ画像処理部（ＲＩＰ）１０３の各種機能を示す図である。ラスタ画像処理部（ＲＩＰ）１０３は、描画描画オブジェクト生成部９０１、画像記憶部９０２、ジョブデータ生成部９０３、画像読込部９０４、レンダリング部９０５、画像記憶領域９０９から構成される。描画オブジェクト生成部９０１は、解釈部（インタプリタ）１０２により解釈された描画命令を受け付けて、オブジェクトを生成する箇所である。
【００２３】
次に画像記憶部９０２について説明する。画像記憶部９０２は、画像領域分離部９０６、圧縮方法選択部９０７、画像圧縮部９０８から構成される。画像領域分離部９０６は、ラスタ画像のオブジェクトを、フラットフィル部とビットマップ部とに像域分離する。なお、分離方法については後述する。
【００２４】
圧縮方法選択部９０７は、像域分離された各画像領域に対して、夫々の画像領域に適した圧縮方法を選択する。実施例１において、ビットマップ部はＪＰＥＧが圧縮方法として選択されるものとする。圧縮処理部９０８は、像域分離された各画像領域を、選択した圧縮方法に従って画像圧縮する。圧縮された各画像領域におけるラスタ画像データは、画像記憶領域９０９に記憶される。なお、フラットフィル部の圧縮方法については後述する。
【００２５】
次に、ジョブデータ生成部９０３を説明する。ジョブデータ生成部９０３は、エッジ検出部９１０、ジョブデータ構築部９１１から構成される。エッジ検出部９１０は、オブジェクトのエッジを検出する。ジョブデータ構築部９１１は、辺情報と、塗り合成ストアと、塗り情報とから構成されるジョブデータを生成する。なお、ジョブデータ生成部９０３による、ジョブデータ生成処理については後述する。
【００２６】
次に、画像読込部９０４を説明する。画像読込部９０４は、画像解凍部９１４、塗り情報変換部９１３、ジョブデータマージ部９１２から構成される。画像解凍部９１４は、画像記憶領域９０９に保存されているラスタ画像を解凍する。塗り情報変換部９１３は、画像解凍部９１４により解凍されたラスタ画像を、画像領域別に等価な塗り情報へ変換する。具体的には、フラットフィル部の塗り情報は、等価かつ単色の色データへ変換される。また、実施例１では、フラットグラフィックスと同様に、変換されたフラットフィル部を単色のオブジェクトとして扱う。さらに、ビットマップ部の塗り情報は、ビットマップ部の色データへと変換される。なお、ビットマップ部の色データは、分離されラスタ画像の一部であるので、各画素位置に対して色データが定義されている。よって、ビットマップ部の色データと言うと、分離されたラスタ画像（ビットマップ部）における各画素位置の色データと言える。
【００２７】
ジョブデータマージ部９１２は、塗り情報変換部９１３により変換されたラスタ画像の塗り情報を、ジョブデータ生成部９０３により生成されたジョブデータにマージする。これにより、ジョブデータの辺情報と、塗り合成ストアと、塗り情報とを更新する。なお、ジョブデータマージ処理については後述する。
【００２８】
レンダリング部９０５を説明する。レンダリング部９０５は、ジョブデータ評価部９１６、塗り描画部９１５から構成される。ジョブデータ評価部９１６は、それぞれの塗り合成レコードに保持された塗りノード群を、単一の塗りノードへとするために合成演算を行う。塗り描画部９１５は、塗り領域の各画素位置におけるラスタ画素値を、ジョブデータ評価部９１６により合成演算された値とし、対応するラスタ画像の記憶領域に書き込む。全ての塗り領域について本処理を行うことにより、ラスタ画像が生成される。
【００２９】
次に、画像領域分離部９０６による像域分離処理について詳細に説明する。像域分離処理は、ラスタ画像を１ライン毎に読み込むことから開始される。なお、画像領域分離部９０６は、ラスタ画像を画像処理装置１００の主走査方向に対し１ライン毎に読み込むものとする。図５は、像域分離処理を示すフローチャートである。
【００３０】
始めに、特定のスキャンラインを読み込み、スキャンラインのループを開始する（Ｓ１７０１）。Ｓ１７０１において、上端のスキャンラインを読み込み、読み込んだスキャンラインの左端のピクセルを読み込み、ピクセルのループを開始する（Ｓ１７０２）。Ｓ１７０２において、スキャンラインの左端のピクセルを読み込んだ場合、読み込んだピクセルが、左隣のランと同色か否かを判定する（Ｓ１７０３）。Ｓ１７０３において、左隣のランと同色と判定された場合、左隣のランに、読み込んだピクセルを加える（Ｓ１７０４）。Ｓ１７０３において、左隣のランと同色と判定されなかった場合（読み込んだピクセルがスキャンラインにおいて一番左だった場合も含む）、読み込んだピクセルを新しいランとする（Ｓ１７０５）。Ｓ１７０４、またはＳ１７０５の処理を終えた場合、読み込んだピクセルから次のピクセルへ移動する（Ｓ１７０６）。移動したピクセルの色データを読み込み、Ｓ１７０２から処理を開始する。Ｓ１７０６において、読み込んだスキャンライン上の全てのピクセルに対し、Ｓ１７０４、またはＳ１７０５の処理を施した場合、Ｓ１７０７へ処理を移す。
【００３１】
Ｓ１７０７において、読み込んだスキャンラインにおける左端のランを読み込み、ランのループを開始する（Ｓ１７０８）。Ｓ１７０８において、読み込んだランと同じ色のランが、一つ前のスキャンライン上に存在し、かつお互いが隣接しているか否かを判定する（Ｓ１７０８）。Ｓ１７０８において、隣接していると判定された場合、読み込んだランを一つ前のスキャンライン上のランに加え、像域を更新する（Ｓ１７０９）。Ｓ１７０８において、隣接していると判定されなかった場合、読み込んだランを新しい像域とする（Ｓ１７１０）。Ｓ１７０９、またはＳ１７１０の処理を終えた場合、読み込んだランから次のランへ移動する（Ｓ１７１１）。移動したランにおける色データを読み込み、Ｓ１７０７から処理を開始する。Ｓ１７１１において、読み込んだスキャンライン上の全てのランに対し、Ｓ１７１０、またはＳ１７１１の処理を施した場合、Ｓ１７１２へ処理を移す。
【００３２】
Ｓ１７１２へ処理を移した場合、読み込んだスキャンラインから次のスキャンラインへ移動する（Ｓ１７１２）。移動したラインにおけるスキャンラインを読み込み、Ｓ１７０１から処理を開始する。Ｓ１７１２において、ラスタ画像における全てのスキャンラインを読み込んだ場合、Ｓ１７１３へ処理を移す。Ｓ１７１３へ処理を移した場合、ラスタ画像の夫々の像域におけるピクセル数をカウントし、ピクセル数が閾値を越える（同一色が閾値以上連続している）像域をフラットフィル部、閾値を越えなかった（同一色が閾値以上連続していない）像域をビットマップ部とする。なお、フラットフィル部、ビットマップ部は、オブジェクトであるラスタ画像を分離したことで、夫々、別々のオブジェクトとして扱われる。以上、説明したように像域分離処理を行う。
【００３３】
次に、ジョブデータ生成部９０３によるジョブデータ生成処理について詳細に説明する。ジョブデータ生成処理は、エッジ検出処理でオブジェクトの輪郭点を抽出し、ジョブデータを生成する処理のことを指す。図６は、オブジェクトに対してスキャンライン（水平線）が交差している様子を示す図である。
【００３４】
図６では、図中の矢印で示すように（４ライン目）、４つの輪郭点が抽出されている。図６で示すように、スキャンラインとオブジェクトが交差する点（ピクセル）が、輪郭点とみなされる。なお、図６において、Ｐ３０１、Ｐ３０２、Ｐ３０３、Ｐ３０４が輪郭点として抽出されている。図６に示すように、Ｐ３０２、およびＰ３０３のように、オブジェクト同士が重なる領域についても新たな輪郭点が抽出されることになる。この輪郭点を抽出する処理を、描画範囲の各スキャンライン（図６においては、１ライン目から１０ライン目まで）に対して行うことで、オブジェクトによって区分けされる領域（塗り領域）を検出することが可能となる。
【００３５】
図６を基に塗り領域の具体例を述べると、左端からＰ３０１までが一つの塗り領域になり、第１の塗り領域となる。また、Ｐ３０１からＰ３０２までが一つの塗り領域になり、第２の塗り領域となる。また、Ｐ３０２からＰ３０３までが一つの塗り領域になり、第３の塗り領域となる。また、Ｐ３０３からＰ３０４までが一つの塗り領域となり、第４の塗り領域になる。また、Ｐ３０４から右端までが一つの塗り領域になり、第５の塗り領域となる。なお、第１の塗り領域と第５の塗り領域は同じ背景色が塗られるため、第５の塗り領域を第１の塗り領域としてみなす。各スキャンライン毎に塗り領域を確定していき、夫々のスキャンラインにおける同じ塗り領域同士を合わせて、塗り領域を更新していく。
【００３６】
図７は、ジョブデータ生成部９０３により生成されたジョブデータの構造を示している。ジョブデータは、辺情報と、塗り合成ストアと、塗り情報とから構成される。なお、図７の画像データは、前面画像であるフラットグラフィックのオブジェクトと、背面画像であるラスタ画像のオブジェクトが、透過で重なっている。
【００３７】
始めに、辺情報について詳細に説明する。ジョブデータにおける辺情報には、上述の塗り領域の情報が保持されている。具体的には、あるＹ座標における、夫々の塗り領域の開始位置と終了位置の情報が保持されている。具体的に図６を用いて述べると、４ライン目（Ｙ座標が４）における第１の塗り領域の開始位置は１、終了位置は２として保持されている。なお、第５の塗り領域の開始位置１０、終了位置１２も第１の塗り領域として保持されている。また、３ライン目の１から２までの領域、同じく３ライン目の１１から１２までの領域も第１の領域として保持される。これにより、夫々の塗り領域における全ての画素位置を特定することができる。また、辺情報における各塗り領域は、後述する塗り合成ストアのレコード（塗り合成レコード）を参照する。図７の例では、辺情報４０１の塗り領域は、フラットグラフィックタイプとラスタ画像タイプのオブジェクト要素が重なる塗り領域を表し、塗り合成レコード４０３を参照している。
【００３８】
次に、塗り合成ストアについて詳細に説明する。塗り合成ストアは、複数の塗り合成レコードから構成される。塗り合成レコードは、１、または複数の塗りノードで構成される。塗りレコードは、対応する塗り領域内に存在するオブジェクトの重なりの順序をスタックで保持している。例えば、図４における塗り合成レコード４０３を例に挙げると、グレーのグラフィックのオブジェクトの方が、ラスタ画像のオブジェクトよりも前面であるため、前面（左側）に保持されている。各塗りノードは、後述する塗り情報を参照している。
【００３９】
次に、塗り情報について詳細に説明する。塗り情報は、オブジェクトの塗り方法を表現する。即ち、塗り情報は、色データから構成されていると言える。オブジェクトタイプがフラットグラフィックスであれば、フラットグラフィックスの塗り情報は単色の色データであり、ラスタ画像であれば、ラスタ画像の塗り情報はラスタ画像の色データとなる。なお、ラスタ画像は各画素位置に対して色データが定義されているので、ラスタ画像の色データと言うと、各画素位置の色データのことを指す。図７の例では、塗りノード４０４はグレーの色データ４０６を参照し、塗りノード４０５はラスタ画像データ４０７を参照している。
【００４０】
次に、ジョブデータマージ処理について説明する。塗り合成レコードにラスタ画像の描画オブジェクトを含むとき、その塗り合成レコード、およびそれを参照する塗り領域がマージ処理の対象となる。なお、ここでは便宜上、ラスタ画像の描画オブジェクトをラスタ画像要素、それ以外の描画オブジェクトを非ラスタ画像要素とする。
【００４１】
第一ケースとして、塗り合成レコードにラスタ画像要素一つのみが存在していた場合について述べる。まず、画像領域分離における画像領域の境界を、描画領域内のピクセル位置にマップする。マップ処理は、例えば、アフィン変換によってスケーリングを行う。
【００４２】
次に、マップした境界で区分けされた領域を新しい塗り領域として新規の辺情報を作成する。塗り領域は以下のような塗り合成レコードを参照する。区分けした領域がフラットフィル部だったならば、変換した単色の色データを参照する塗りノード一つを保持する。区分けした領域がビットマップ部だったならば、領域のラスタ画像データを参照する塗りノード一つを保持する。最後に、区分けされた領域全てに対して新規の辺情報作成が完了したら、マージ前の該塗り合成レコードを塗り合成ストアから削除する。以上が、第一ケースのマージ処理である。
【００４３】
第二ケースとして、塗り合成レコードにラスタ画像要素一つと、非ラスタ画像要素一つ以上とが存在していた場合について述べる。新規の辺情報を作成する直前までは、第一ケースと同じ処理であるが、辺情報の作成方法、具体的には、塗り合成レコードの塗りノードの構成が異なる。第二ケースでは、第一ケースと同様のフラットフィル部及びビットマップ部に対応する塗りノード一つと、非ラスタ画像要素を表す塗りノード一つ以上とを塗り合成レコードに保持する。
【００４４】
非ラスタ画像要素を表す塗りノードとは、マージ前の塗り合成レコードが保持していた塗りノードのうち、ラスタ画像要素を除いた塗りノードである。このとき描画オブジェクト要素の重なり順序を維持するように塗り合成レコードを構成する。区分けされた領域全てに対して新規の辺情報作成が完了したら、マージ前の塗り合成レコードを塗り合成ストアから削除する。以上が、第二ケースのマージ処理である。
【００４５】
第三ケースとして、塗り合成レコードにラスタ画像要素二つ以上が存在していた場合について述べる。塗り合成レコードに非ラスタ画像要素が存在しなければ第一ケースの処理、
存在していれば第二ケースの処理を、ラスタ画像要素のいずれか一つに対して適用する。
【００４６】
適用後に、残りのラスタ画像要素に対しても同様に一つずつ前記処理を適用し、全てのラスタ画像要素に対して適用が完了すれば、第三ケースのマージ処理は終了である。
【００４７】
次に、画像記憶部９０２における像域分離処理から画像圧縮するまでの処理について詳細に説明する。図８は、画像記憶部９０２による像域分離処理から画像圧縮するまでの処理のフローチャートである。
【００４８】
始めに、描画範囲内から最初のオブジェクトを読み込み、オブジェクトのループを開始する（Ｓ１００１）。Ｓ１００１において、特定のオブジェクトを読み込んだ場合、
読み込んだオブジェクトがラスタ画像であるか否かを判定する（Ｓ１００２）。Ｓ１００２において、ラスタ画像でないと判定された場合は、次のオブジェクトを読み込む（Ｓ１０１２）。Ｓ１００２において、ラスタ画像であると判定された場合は、ラスタ画像を像域分離する（Ｓ１００３）。Ｓ１００３において、ラスタ画像を像域分離した場合、特定の画像領域を読み込み、画像領域のループを開始する（Ｓ１００４）。Ｓ１００４において、読み込んだ画像領域がフラットフィルであるか否かを判定する（Ｓ１００５）。Ｓ１００５において、フラットフィル部でないと判定された場合（実施例１においては、ビットマップ部を指す）、ビットマップ部を圧縮する（Ｓ１００９）。Ｓ１００５において、フラットフィル部であると判定された場合、色タイプを判定し圧縮する（Ｓ１００６）。
【００４９】
なお、実施例１において、色タイプはＦＯＲＥＧＲＯＵＮＤ、ＢＡＣＫＧＲＯＵＮＤ、ＦＬＡＴの３つ存在し、ＦＯＲＥＧＲＯＵＮＤはＲＧＢ値が（０、０、０）を、ＢＡＣＫＧＲＯＵＮＤはＲＧＢ値が（２５５、２５５、２５５）を意味する。この２つのタイプの内いずれかのタイプである場合、色タイプと色データが対応しているので、色データを保持する必要はない。一方、ＦＬＡＴは、上述の２色以外の色データを示しているので、色データを保持する必要がある。また、実施例１における色タイプの圧縮とは、ＦＯＲＥＧＲＵＯＵＮＤを００、ＢＡＣＫＧＲＯＵＮＤを０１、ＦＬＡＴを１０とする２ビットの符号割り当てのことである。
【００５０】
Ｓ１００６において、色タイプを判定した場合、色タイプがＦＬＡＴか否かを判定する（Ｓ１００７）。Ｓ１００７において、色タイプがＦＬＡＴではないと判定されなかった場合、特定の画像領域（フラットフィル部のラスタ画像）の色タイプはＦＬＡＴであるので、色データを圧縮する（Ｓ１００８）。
【００５１】
ここで、色タイプがＦＬＡＴであるラスタ画像の色データの圧縮処理について説明する。圧縮前のラスタ画像は、色データを画素位置毎に保持している。しかし、圧縮を行うことで１ピクセル分の色データを保持する形式へ変換される。即ち、圧縮を行ったラスタ画像は、画素位置毎に色データを保持するのではなく、１ピクセル分の色データを保持する形式へと変換される。
【００５２】
Ｓ１００７において、色タイプがＦＬＡＴではないと判定された場合、およびＳ１００８の処理が終了した場合、次の画像領域を読み込みＳ１００４から処理を開始する。全ての画像領域を読み込んだ場合、圧縮したデータを画像記憶領域に記憶する（Ｓ１０１１）。
【００５３】
Ｓ１０１１において、ラスタ画像を圧縮したデータを画像記憶領域に記憶した場合、次の描画オブジェクトを読み込む（Ｓ１０１２）。次の描画オブジェクトが存在する場合は、Ｓ１００１から処理を開始する。次の描画オブジェクトが存在しない場合は、処理を終了とする。
【００５４】
次に、画像読込部９０４における画像解凍からジョブデータのマージ処理までの処理について詳細に説明する。図９は、画像読込部９０４による画像解凍からジョブデータをマージするまでの処理を示すフローチャートである。
【００５５】
始めに、ジョブデータを基に最初のラスタ画像を特定し、特定したラスタ画像の参照情報を参照し、ループを開始する（Ｓ１１０１）。実施例１における参照情報は、ラスタ画像の圧縮データが存在する画像記憶領域９０９内のアドレスである。
【００５６】
参照情報を基にラスタ画像の圧縮データを画像記憶領域９０９から読み込む（Ｓ１１０２）。Ｓ１１０２において、圧縮データを読み込んだ場合、画像領域を特定し、ループを開始する（Ｓ１１０３）。Ｓ１１０３において、画像領域を特定した場合、その画像領域がフラットフィル部であるか否かを判定する（Ｓ１１０４）。
【００５７】
Ｓ１１０４において、フラットフィル部であると判定されなかった場合、即ち、特定した画像領域がビットマップ部であった場合、ビットマップ部の解凍を行う（Ｓ１１０９）。実施例１では、ＪＰＥＧ方式の解凍アルゴリズムで解凍することとする。Ｓ１１０９において、ビットマップ部の画像を解凍した場合、解凍したラスタ画像データを塗り情報とする（Ｓ１１１０）。即ち、ラスタ画像の画素位置毎に色データが定義されることになるので、合成の際は、画素位置毎に合成演算が行われることになる。
【００５８】
Ｓ１１０４において、フラットフィル部であると判定された場合、色タイプの解凍を行う（Ｓ１１０５）。具体的には、色タイプが００をＦＯＲＥＧＲＯＵＮＤ、色タイプが０１をＢＡＣＫＧＲＯＵＮＤ、色タイプが１１をＦＬＡＴとして解凍し読み込む。Ｓ１１０５において、色タイプの解凍を行い読み込んだ場合、読み込んだ色タイプがＦＬＡＴであるか否かを判定する（Ｓ１１０６）。Ｓ１１０６において、色タイプがＦＬＡＴであると判定されなかった場合、即ち、ＦＯＲＥＧＲＯＵＮＤ、またはＢＡＣＫＧＲＯＵＮＤと判定された場合、夫々のタイプが示す色データを特定した画像領域の塗り情報とする（Ｓ１１０８）。また、Ｓ１１０６において、色タイプがＦＬＡＴであると判定された場合、色データの解凍を行う（Ｓ１１０７）。なお、色データを解凍することで、色データが何色であるかを特定することができる。Ｓ１１０７において、色データを解凍した場合、特定した色データを特定した画像領域の塗り情報とする（Ｓ１１０８）。
【００５９】
Ｓ１１０８、またはＳ１１１０の処理を終えた場合、次の画像領域を特定しＳ１１０３から処理を開始する（Ｓ１１１１）。Ｓ１１１２において、全ラスタ画像データの全画像領域に対して塗り情報が決定された場合、ジョブデータ作成部９０３により作成されたジョブデータと全ラスタ画像データの全画像領域の塗り情報とをマージする（Ｓ１１１３）。以上説明したように、画像読込部９０４は画像解凍からジョブデータのマージ処理を行う。
【００６０】
次に、マージ処理によるジョブデータの更新について説明する。図１０は、ジョブデータマージ部９１２によるマージ処理により更新されたジョブデータの構造を示す図である。始めに、塗り情報の更新について説明する。画像領域分離部９０６、および塗り情報変換部９１３によって、塗り情報４０７は、塗り情報８１０、および塗り情報８１１に示すように分離・変換され、塗り情報が更新される。塗り情報８１０はフラットフィル部の色データであり、塗り情報８１１はビットマップ部の色データである。
【００６１】
上述のように、塗り情報が更新される塗りレコードを参照している辺情報はマージ処理の対象となる。
【００６２】
図１１は、実施例１における、フラットフィル部、および単色の色データの合成処理の一例を示している。ラスタ画像データの画像領域をフラットフィル部及びビットマップ部に分離することになるが、図１１は、２つのフラットフィル部の領域に分離される。この場合、単色の色データ同士の合成処理となるため、レンダリング処理における合成演算は塗り領域毎にそれぞれ１回ずつで済む。
【００６３】
次に、レンダリング部９０５によるレンダリング処理について詳細に説明する。図１２は、Ｓ２０３のレンダリング処理のフローチャートである。始めに、描画範囲内の辺情報から塗り領域を一つ特定し、Ｅｄｇｅに代入する（Ｓ５０１）。
【００６４】
Ｓ５０１において、塗り領域を特定した（Ｅｄｇｅに代入した）場合、塗り領域の参照する塗り合成レコードを読み込む（Ｓ５０２）。Ｓ５０２において、塗り合成レコードを読み込んだ場合、塗り合成レコードから最前面の塗りノードを取り出し、取り出した塗りノードをＲｅｓへ代入する（Ｓ５０３）。なお、塗り合成レコードから取り出した塗りノードは削除する。
【００６５】
Ｓ５０３において、取り出した塗りノードをＲｅｓとした場合、塗りレコードに取り出されていない塗りノードが残っているか否かを判定する（Ｓ５０４）。Ｓ５０４において、塗りレコードに取り出されていない塗りノードが残っていると判定された場合、Ｒｅｓの値を一時的にＳｒｃへ代入する（Ｓ５０５）。Ｓ５０５において、Ｓｒｃへ代入した場合、塗りレコードから塗りノードを取り出してＤｅｓｔへ代入する（Ｓ５０６）。Ｓ５０６において、Ｄｅｓｔへ代入した場合、ＳｒｃとＤｅｓｔに対して合成処理を行い、結果として生成された塗りノードを新しいＲｅｓとする（Ｓ５０７）。Ｓ５０７の処理の後は、Ｓ５０４に戻る。なお、このＳ５０７において、フラットフィル部と単色の色データを合成する場合は、合成演算を一度行うだけで済む。また、それ以外の場合、例えば、ビットマップ部と単色の色データを合成する場合は、画素位置毎に合成演算を行うことになる。
【００６６】
Ｓ５０４において、塗りレコードに取り出されていない塗りノードが残っていると判定されなかった場合、Ｓ５０８へ処理が移る。なお、塗りレコードが空になっていれば、最終的な合成結果の塗りノードはＲｅｓにおかれていることになる。続いて、塗り領域内から画素位置を一つ特定し、Ｐｏｓへ代入する（Ｓ５０８）。
【００６７】
Ｓ５０８において、画素位置を特定した（Ｐｏｓへ代入した）場合、特定した画素位置におけるラスタ画素値を合成結果Ｒｅｓから読み込みＶａｌへ代入する（Ｓ５０９）。Ｓ５０９において、合成結果ＲｅｓをＶａｌへ代入した場合、Ｐｏｓに対応するラスタ画像の画素値をＶａｌにするため、ラスタ画像の記憶領域にＶａｌの値を書き込む。次に、塗り領域内の別の画素位置を特定する（Ｓ５１１）。特定した後、Ｓ５０８から処理を再び開始する。塗り領域の全ての画素位置についてラスタ画素値の書き込みが終了したら、次の塗り領域の処理へ移る（Ｓ５１２）。描画範囲内の全ての塗り領域について処理を行うことより、描画範囲におけるレンダリング処理すなわちラスタ画像の生成が完了する。以上が、レンダリング処理の説明になる。
【００６８】
以上説明したように、実施例１ではラスタ画像をフラットフィル部とビットマップ部に分離し、フラットフィル部に対する合成演算の回数を削減している。これにより、レンダリング処理の高速化を図ることが可能となる。
【実施例２】
【００６９】
次に実施例２について説明する。実施例１はラスタ画像のフラットフィル部に対してレンダリング処理、具体的には、合成処理の高速化を目的としていた。実施例２は、フラットフィル部でない領域（実施例１におけるビットマップ部）に対しても、レンダリング処理の高速化を図るものである。
【００７０】
具体的には、ビットマップ部と単色の色データを合成する処理において、透明度が所定の条件を満たす場合に、ビットマップ部の解像度を下げる。透明度が高い透過処理では高解像度の色データが失われてしまうので、解像度を下げてもレンダリング後のビットマップ部に対するユーザの視覚的影響は少ない。そこで、実施例２では、予めビットマップ部の解像度を下げ、合成演算の対象となる画素数を削減し、レンダリング処理の高速化を図ることを目的とする。
【００７１】
始めに、実施例２におけるラスタ画像処理部（ＲＩＰ）１２００の構成について説明する。図１３は、実施例２におけるラスタ画像処理部（ＲＩＰ）１２００の構成を示す図である。実施例１と異なるのは、レンダリング部１２０５に、解像度変更判定部１２１７、および解像度変更部１２１８が追加されている点である。
【００７２】
解像度変更判定部１２１７は、塗り情報におけるラスタ画像（ビットマップ部）の解像度を変更すべきか否かを判定する。解像度変更部１２１８は、解像度変更判定部１２１７により解像度を変更すべきと判定された場合に、ラスタ画像（ビットマップ部）の解像度を変更する。
【００７３】
次に、解像度変更処理について説明する。実施例２では、図１２のフローチャートのＳ５０６とＳ５０７の間にＳ５０６．５というステップが加わる。Ｓ５０６．５は、ＳｒｃとＤｅｓｔの解像度を変更するステップである。
【００７４】
Ｓ５０６．５の処理について説明する。図１４は、Ｓ５０６．５による解像度変更処理を示している。図１４（Ａ）のステップＳ１４０１、およびＳ１４０２でＳｒｃとＤｅｓｔを別々に解像度変更する。解像度変更処理をさらに詳細に説明したフローチャートが図１４（Ｂ）である。
【００７５】
始めに、ＮｏｄｅにＳｒｃ、またはＤｅｓｔのいずれか１つの塗りノードを代入し、Ｎｏｄｅの参照する塗り情報をＦｉｌｌとおく（Ｓ１４０３）。Ｓ１４０３において、ＮｏｄｅにＦｉｌｌを代入した場合、Ｆｉｌｌがラスタ画像データであるか否かを判定する（Ｓ１４０４）。Ｓ１４０４において、ラスタ画像であると判定された場合、Ｆｉｌｌの重要度Ｕを計算する（Ｓ１４０５）。重要度とは、各ラスタ画像がレンダリング後のラスタ画像にどの程度影響を与えるかを表す数値である。計算方法は例えば次のようになる：
Ｕ＝Ｗ１（Ｆｉｌｌ）／Ｓ１（Ｆｉｌｌ）
Ｗ１は、ラスタ画像の透明度を重み掛けする関数であり、α値×定数で定義される。Ｓ１はラスタ画像データの画素数を求める関数である。以上により計算された重要度Ｕは、透明度の重みが画素数に比例するというモデルにおいて、ラスタ画像データにおける一画素あたりの透明度の重みを表す。
【００７６】
さらに、ステップＳ１４０６で解像度変更する重要度の閾値Ｖを計算する（Ｓ１４０６）。計算方法は例えば次のようになる：
Ｖ＝Ｗ２（Ｅｄｇｅ）／Ｓ２（Ｅｄｇｅ）
重要度の閾値Ｖは、Ｅｄｇｅの塗り領域で描画する一画素あたりの透明度の重みを表す。Ｗ２、およびＳ２は、それぞれＷ１及びＳ１と同様に定義される。ただし、塗り領域そのものに透明度が設定されていない実施形態のときには、Ｗ２は引数によらず定数で定義される。ステップＳ１４０７でＵがＶより大きい、即ち、ラスタ画像の透明度の重みが塗り領域で描画する透明度の重みより大きいならば、解像度の変更率Ｒを計算する（Ｓ１４０８）。Ｒは次の式で与えられる：
Ｒ＝√（Ｖ／Ｕ）
最後に解像度をＲ倍する（Ｓ１４０９）。以上が、解像度変更の処理の説明である。
【００７７】
以上のように、解像度を低解像度に変更し、ラスタ画像の色データを間引くことで、フラットフィル部でない領域に対してもレンダリング処理の高速化を図ることが出来る。なお、フラットフィル画像の透明度が所定値よりも高い場合に、ビットマップ部の解像度を変更して合成演算を行っても実現可能である。
【実施例３】
【００７８】
次に実施例３について説明する。実施例３は、実施例２と同様に、フラットフィル部でない領域（実施例１におけるビットマップ部）に対しても、レンダリング処理の高速化を図るものである。
【００７９】
具体的にはビットマップ部と単色の色データを合成する処理において、透明度に関する所定の条件を満たす場合に、ビットマップ部の色データを量子化する。透明度が高い透過処理では高精細な色データが失われてしまうので、ビットマップ部の色データを量子化しても視覚的影響は少ない。
【００８０】
ここで、実施例３におけるレンダリング処理の合成演算において、合成演算の結果の画素値をＲＡＭにキャッシュするものとする。既にキャッシュされている画素値と同じ画素値になるピクセルについては、合成演算をスキップすることでレンダリング処理の高速化を図ることが可能になる。
【００８１】
始めに、実施例３におけるラスタ画像処理部（ＲＩＰ）１５００の構成について説明する。図１５は、実施例３におけるラスタ画像処理部（ＲＩＰ）１５００を示す図である。実施例１と異なるのは、レンダリング部１５０５が色情報量子化判定部１５１７、および色情報量子化部１５１８を有しているということである。実施例３は、実施例２における解像度変更部１２１８、解像度変更判定部１２１７が、色情報量子化部１５１８、色情報量子化部１５１７に置き換わったものである。色データの量子化は、一例としてはＲＧＢ２４ビットカラーをＲＧＢ１６ビットカラーに量子化するということが挙げられる。このように、量子化によってビットマップ部の塗り情報である、ビットマップ部の色データは減る。
【００８２】
図１６（Ａ）に示すように、実施例３を適用する前は、ビットマップ部１６０１と単色の色データ１６０２の合成演算を画素位置毎に行う。その様子をさらに詳細に示したのが図１６（Ｂ）である。図１６（Ｂ）では、ビットマップ部１６０１に含まれる画素値の部分集合１６０３と、単色の色データ１６０２の画素値１６０４とを画素位置毎に合成演算を行っている。合成演算の結果が画素値１６０５である。なお、画素値１６０６と画素値１６０４の合成演算の結果が１６０８になる。また、画素値１６０７と画素値１６０９とを合成した結果が１６０９である。
【００８３】
次に、ビットマップ部の色データの色データを量子化し、合成演算処理を行う処理について説明する。始めに、ビットマップ部の色データを量子化する。これを示したのが図１６（Ｃ）である。図１６（Ｃ）では、ビットマップ部１６０１に含まれる画素値の部分集合１６１０は、ビットマップ部の色データが全て同じ画素値になっている。上述と同様に、画素値１６１３と画素値１６１１とを合成演算した結果が画素値１６１５になる。このとき、画素値１６１５を画素値変数１６１６にキャッシュしておく。なお、画素値変数１６１６はＲＡＭにより実現される。
【００８４】
次に、画素値１６１４と画素値１６１１とを合成演算する前に、この画素値の組み合わせが前回の合成演算と同じか否かを判定する。同じでなければ再び同様の合成演算を行い、結果の画素値を画素値変数１６１６に再度代入する。同じならば合成演算を行わずに、画素値変数１６１６に代入（キャッシュ）されている画素値を、結果として読み出す。読み出した画素値を合成演算の結果とする。例えば、画素値１６１３と画素値１６１１、画素値１６１４と画素値１６１１の組み合わせは同じなので、画素値変数１６１６にキャッシュされている画素値を読み出す。以上が、ビットマップ部の色データを量子化し、合成演算処理を行う処理の説明である。
【００８５】
なお、量子化を行うか否かを判断する処理は、図１４で示した処理と同じである。即ち、ビットマップ部の透明度が所定値を超えた場合に量子化を行う。変更点は、Ｓ１４０８とＳ１４０９の代わりに、量子化を行うステップが入るという点である。以上説明したように、実施例３ではフラットフィル部でない領域に対して、透明度に応じて色データの量子化、および合成演算結果のキャッシュを行うことによって、レンダリング処理の高速化を図ることが出来る。
【００８６】
〔その他の実施例〕
以下のような実施例も考えられる。画像領域分離において、使用色数が閾値以下になる領域も分離候補にして、該画像領域に好適な圧縮及び解凍を実施してもよい。合成演算をＳｒｃとＤｅｓｔだけでなく、３つ以上の塗りノードに対して行う処理方法でもよい。解像度変更若しくは色情報量子化の処理において、重要度の計算方法を色相毎に定義したり、重要度を用いずに透明度が閾値以上か否かを条件にしたりしてもよい。また、前記処理をＳｒｃとＤｅｓｔ別々に行う形態ではなく、両方に関する条件を判定してＳｒｃとＤｅｓｔのいずれか若しくは両方に対して行う形態にしてもよい。さらに、実施例１、２、３を組み合わせて用いる構成にしてもよい。
【符号の説明】
【００８７】
９０１  描画オブジェクト生成部
９０２  画像記憶部
９０３  ジョブデータ生成部
９０４  画像読込部
９０５  レンダリング部
９０６  画像領域分離部
９０７  圧縮方法選択部
９０８  画総圧縮部
９０９  画像記憶領域
９１０  エッジ検出部
９１１  ジョブデータ構築部
９１２  ジョブデータマージ部
９１３  塗り情報変換部
９１４  画像解凍部
９１５  塗り描画部
９１６  ジョブデータ評価部
１２１７  解像度変更判定部
１２１８  解像度変更部
１５１７  色情報量子化判定部
１５１８  色情報量子化部
【図１】
0005534867.tif 000002
【図２】
0005534867.tif 000003
【図３】
0005534867.tif 000004
【図４】
0005534867.tif 000005
【図５】
0005534867.tif 000006
【図６】
0005534867.tif 000007
【図７】
0005534867.tif 000008
【図８】
0005534867.tif 000009
【図９】
0005534867.tif 000010
【図１０】
0005534867.tif 000011
【図１１】
0005534867.tif 000012
【図１２】
0005534867.tif 000013
【図１３】
0005534867.tif 000014
【図１４】
0005534867.tif 000015
【図１５】
0005534867.tif 000016
【図１６】
0005534867.tif 000017