(57)【特許請求の範囲】
【請求項１】
第１の繰り返しパターンによる塗りつぶし描画の指示を含む画像データの描画命令を受け取って、前記第１の繰り返しパターンを当該第１の繰り返しパターンよりも圧縮率の高い第２の繰り返しパターンに変更するパターン変更手段と、
前記パターン変更手段で変更した前記第２の繰り返しパターンにしたがって画像データの塗りつぶし描画処理を行う塗りつぶし描画手段と、
前記塗りつぶし描画手段で塗りつぶし描画処理した画像データを圧縮処理する圧縮手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記パターン変更手段による繰り返しパターンの変更に先立って、前記第１の繰り返しパターンを変更せずに処理した場合の圧縮率の良否を予測し、この予測結果から繰り返しパターンを変更するか否かを判断する判断手段を備え、
前記パターン変更部は、前記判断手段で前記繰り返しパターンを変更すると判断した場合のみ前記繰り返しパターンの変更を行う
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記パターン変更手段は、前記第１の繰り返しパターンを構成する画素ブロック内で所定の条件で抽出した複数の画素の値を強制的に一致させる強制一致処理により、前記繰り返しパターンの変更を行う
ことを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記描画命令で指示された塗りつぶし描画の描画面積を算出する第１の算出手段を備え、
前記判断手段は、前記第１の算出手段で算出した描画面積が規定の面積条件を満たすか否かによって前記繰り返しパターンの変更可否を判断する
ことを特徴とする請求項２記載の画像処理装置。
【請求項５】
前記第１の繰り返しパターンを適用して画像データを圧縮したときの圧縮前のデータ量と圧縮後のデータ量との比率により、前記第１の繰り返しパターンを構成する１画素ブロックあたりの圧縮率を算出する第２の算出手段を備え、
前記判断手段は、前記第２の算出手段で算出した圧縮率が規定の圧縮率条件を満たすか否かによって前記繰り返しパターンの変更可否を判断する
ことを特徴とする請求項２又は４記載の画像処理装置。
【請求項６】
前記パターン変更手段は、前記第１の繰り返しパターンを構成する画素ブロック内で互いに隣り合う２つの画素の値を比較し、この比較結果において前記２つの画素の値が予め設定された閾値以下のときに、当該２つの画素の値を平均化した平均値をもって前記強制一致処理を行う
ことを特徴とする請求項３記載の画像処理装置。
【請求項７】
第１の繰り返しパターンによる塗りつぶし描画の指示を含む画像データの描画命令を受け取って、前記第１の繰り返しパターンを当該第１の繰り返しパターンよりも圧縮率の高い第２の繰り返しパターンに変更するパターン変更工程と、
前記パターン変更工程で変更した前記第２の繰り返しパターンにしたがって画像データの塗りつぶし描画処理を行う塗りつぶし描画工程と、
前記塗りつぶし描画工程で塗りつぶし描画処理した画像データを圧縮処理する圧縮行程と
を含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、繰り返しパターンによる図形や文字などの塗りつぶし描画処理を行う画像処理装置及び画像処理方法に関する。
【０００２】
【従来の技術】
従来、オペレーティングシステム上で起動して図形処理などを行うアプリケーションプログラムにおいては、ある領域を囲む円，多角形等の図形や文字などの塗りつぶしに、パターンと呼ばれる繰り返し描画単位によって模様形式を選択する機能がある。このパターンの一形式として、ドットで構成されたビットマップ形式のデータを用いることができる。
【０００３】
また従来では、画像データを圧縮してデータ量を減らすことにより、ハードディスク等のメモリ容量を節減する技術が広く知られている。その一つとして、例えば、特開平９−２２４２５３号公報においては、処理画像の注目画素に対して当該注目画素に隣り合う比較画素（以下、隣接画素という）との関連性に着目することにより、圧縮率の高い圧縮処理（符号化）を行う技術が提案されている。
【０００４】
【発明が解決しようとする課題】
しかしながら上記特開平９−２２４２５３号公報に記載の技術では、特定の繰返しパターンにより図形の塗りつぶしを行った後に上記圧縮処理を行った場合、画像の圧縮率が極端に低下するケースがあり得る。具体的には、繰り返しパターンで塗りつぶし描画を行ったときに、互いに隣り合う位置関係にある画素の値が一致しないケースや一致する画素の数（組）が少ないケースがこれに該当する。
【０００５】
これを解決する一つの案として、例えば特開２０００−２２２１５２号公報には、繰り返しパターンを変倍する描画処理を施すことにより、結果として塗りつぶし後の画像の圧縮率を高める技術が提案されている。ところが、繰り返しパターンを変倍（拡大）したときに得られる圧縮率の改善効果はそれほど顕著なものでななく、また繰り返しパターンを拡大することで画像品質が低下することも懸念される。
【０００６】
本発明は、上記課題を解決するためになされたもので、その目的とするところは、繰り返しパターンによる塗りつぶし描画が指示された画像データを、画像品質の低下を極力抑えつつ、高い圧縮率で圧縮処理することが可能な画像処理装置及び画像処理方法を提供することにある。
【０００７】
【課題を解決するための手段】
本発明に係る画像処理装置は、第１の繰り返しパターンによる塗りつぶし描画の指示を含む画像データの描画命令を受け取って、第１の繰り返しパターンを当該第１の繰り返しパターンよりも圧縮率の高い第２の繰り返しパターンに変更するパターン変更手段と、このパターン変更手段で変更した第２の繰り返しパターンにしたがって画像データの塗りつぶし描画処理を行う塗りつぶし描画手段と、この塗りつぶし描画手段で塗りつぶし描画処理した画像データを圧縮処理する圧縮手段とを備えた構成を採用している。
【０００８】
上記構成からなる画像処理装置においては、塗りつぶし描画処理を行うのに先立って、塗りつぶし描画に適用される繰り返しパターンをパターン変更手段によって第１の繰り返しパターンからそれよりも圧縮率の高い第２の繰り返しパターンに変更し、この変更後の第２の繰り返しパターンにしたがって塗りつぶし描画手段により塗りつぶし描画処理を行った後、その描画処理した画像データを圧縮手段で圧縮処理することにより、高い圧縮率をもって画像データを圧縮することが可能となる。
【０００９】
また、パターン変更手段による繰り返しパターンの変更に先立って、第１の繰り返しパターンを第２の繰り返しパターンに変更した場合の圧縮効果を予測し、この予測結果から繰り返しパターンを変更するか否かを判断する判断手段を備え、この判断手段で繰り返しパターンを変更すると判断した場合のみパターン変更手段で繰り返しパターンの変更を行うことにより、十分な圧縮効果（圧縮率の向上）が得られる場合のみパターン変更部を有効に機能させることができる。これにより、パターン変更によるトータル的な処理効率の低下や繰り返しパターンの変更による無用な画像品質の低下を回避することが可能となる。
【００１０】
また、パターン変更手段において、第１の繰り返しパターンを構成する画素ブロック内で所定の条件で抽出した複数の画素の値を強制的に一致させる強制一致処理により、繰り返しパターンの変更を行うことにより、繰り返しパターンの視覚特性を良好に維持しつつパターン変更を行えるため、画像品質の低下を最小限に抑えることが可能となる。
【００１１】
本発明に係る画像処理方法は、第１の繰り返しパターンによる塗りつぶし描画の指示を含む画像データの描画命令を受け取って、第１の繰り返しパターンを当該第１の繰り返しパターンよりも圧縮率の高い第２の繰り返しパターンに変更するパターン変更工程と、このパターン変更工程で変更した第２の繰り返しパターンにしたがって画像データの塗りつぶし描画処理を行う塗りつぶし描画工程と、この塗りつぶし描画工程で塗りつぶし描画処理した画像データを圧縮処理する圧縮行程とを含むものである。
【００１２】
上記の各工程を含む画像処理方法においては、塗りつぶし描画処理を行うのに先立って、塗りつぶし描画に適用される繰り返しパターンを第１の繰り返しパターンからそれよりも圧縮率の高い第２の繰り返しパターンに変更し、この変更後の第２の繰り返しパターンにしたがって塗りつぶし描画処理を行った後、その描画処理した画像データを圧縮処理することにより、高い圧縮率をもって画像データを圧縮することが可能となる。
【００１３】
【発明の実施の形態】
以下、本発明に係る画像処理装置の構成を、例えば、プリンタドライバを備えたホストコンピュータに適用した場合の具体的な実施の形態について図面を参照しつつ詳細に説明する。
【００１４】
図１は本発明の実施形態に係るホストコンピュータの基本的な構成例を示す画素ブロック図である。図１において、ホストコンピュータ１は、アプリケーションプログラム２、オペレーティングシステム３、プリンタドライバ４及びホストインターフェース５を備えて構成されている。また、ホストコンピュータ１には、通信ケーブルや通信ネットワーク等の伝送路を介してプリンタ（印刷装置）６が接続されている。
【００１５】
アプリケーションプログラム２は、自身で生成又は取得した図形など画像データの描画をオペレーティングシステム３に命令する機能をもつ。オペレーティングシステム３は、アプリケーションプログラム３から受けた描画命令をプリンタドライバ４に送る機能をもつ。プリンタドライバ４は、オペレーティングシステム４から受け取った描画命令(DDI;Device Driver Interface)をプリンタ２で解釈可能な描画命令(PDL;Page Description Language)に変換し、この変換した描画命令の伝送をホストインターフェース５に依頼する機能をもつ。ホストインターフェース５は、プリンタドライバ４からの依頼にしたがって描画命令(PDL)を伝走路を通してプリンタ６に送信する機能をもつ。プリンタ６は、ホストコンピュータ１から伝走路を介して受信した描画命令(PDL)を解釈し、この描画命令(PDL)にしたがって印刷用紙に可視画像を印刷出力する機能をもつ。
【００１６】
図２はプリンタドライバ４の機能構成を示す画素ブロック図である。図示のようにプリンタドライバ４は、判断部７と、演算部８と、パターン変更部９と、メモリ１０と、塗りつぶし描画部１１と、ページバッファ１２と、圧縮部１３とを備えた構成となっている。
【００１７】
プリンタドライバ４にはオペレーティングシステム３から描画命令１４が入力される一方、この描画命令に基づく画像処理によってプリンタドライバ４から圧縮画像データ１５が生成される。本実施形態においては、第１の繰り返しパターンによる塗りつぶし描画の指示を含む画像データの描画命令１４がプリンタドライバ４に入力されるものとする。第１の繰り返しパターンとは、アプリケーションプログラム２などで作成された画像内で図形や文字などの塗りつぶしに使用されたオリジナルの繰り返しパターン（以下、オリジナルパターンとも記す）をいう。
【００１８】
パターン変更部９は、オペレーティングシステム３から入力される描画命令１４を受け取って、上述した第１の繰り返しパターンを当該第１の繰り返しパターンよりも圧縮率の高い第２の繰り返しパターンに変更するものである。具体的なパターン変更処理の詳細については後段で説明する。判断部７は、パターン変更部９による繰り返しパターンの変更に先立って、第１の繰り返しパターンを第２の繰り返しパターンに変更した場合の圧縮効果を予測し、この予測結果から繰り返しパターンを変更するか否かを判断するものである。この判断部７では、後述するように塗りつぶり描画を行う描画面積や圧縮率の算出結果から、パターン変更によって得られる圧縮効果の大きさを予測する。
【００１９】
演算部８は、描画命令１４で指示された塗りつぶし描画の描画面積を算出する第１の演算機能と、第１の繰り返しパターンを適用して画像データを圧縮したときの圧縮前のデータ量と圧縮後のデータ量との比率により、第１の繰り返しパターンを構成する１画素ブロックあたりの圧縮率を算出する第２の演算機能とを備えるものである。この演算部８で算出される描画面積や圧縮率は判断部７に与えられ、判断部７で繰り返しパターンの変更可否を判断する際に用いられる。
【００２０】
メモリ１０は、プリンタドライバ４内での処理に際してデータの一時的な記憶場所として用いられるもので、上述したパターン変更部９で変更された繰り返しパターン、即ち第２の繰り返しパターンの情報もこのメモリ１０に記憶される。
【００２１】
塗りつぶし描画部１１は、描画命令１４で指示された第１の繰り返しパターン又はパターン変更部９で変更された第２の繰り返しパターンにしたがって画像データの塗りつぶし描画処理を行うものである。この塗りつぶし描画部１１において、パターン変更部９で変更された第２の繰り返しパターンによる塗りつぶし描画処理を行う場合は、メモリ１０に記憶された繰り返しパターンの情報（変更後のパターン情報）が用いられる。ページバッファ１２は、塗りつぶし描画部１１で塗りつぶし描画処理される１ページ分の画像データを蓄積するものである。圧縮部１３は、ページバッファ１２に蓄積された画像データを圧縮処理するものである。
【００２２】
図３はプリンタドライバ４によって実行される処理手順を示すフローチャートである。先ず、オペレーティングシステム(OS)３から送られた描画命令１４を判断部７で受け取る（ステップＳ１）。次に、判断部７で受け取った描画命令にしたがって演算部８が塗りつぶし描画の描画面積を算出し、その算出結果を判断部７に通知する（ステップＳ２）。このとき、演算部８では、描画命令１４で指示された塗りつぶし描画の指示にしたがって１ページ分の画像データを描画したときに、塗りつぶし描画が行われる描画面積が１ページ内でどの程度の割合（面積比）になるかを算出する。
【００２３】
次いで、判断部７では、演算部７からの算出結果にしたがって塗りつぶし描画の描画面積が予め設定された規定の面積条件（図例では描画面積が１ページの１０％以上）を満たすか否かを判断する（ステップＳ３）。
【００２４】
ここで、規定の面積条件を満たしていないと判断した場合は、パターン変更による圧縮効果が小さいとの判断予測から、後述するステップＳ７に移行する。ちなみに、１ページ内での塗りつぶし描画面積が狭い場合は、パターン変更部９で繰り返しパターンを変更しても、十分な圧縮効果が期待できない。そうした場合は、パターン変更無しで塗りつぶし描画を行って圧縮処理した方が効率的に処理することができ、しかもパターン変更による無用な画像品質の低下も回避することができるため、より好ましいものとなる。
【００２５】
これに対して、規定の面積条件を満たしていると判断部７が判断した場合は、演算部８で第１の繰り返しパターンを用いた圧縮率の算出処理（詳細は後述）を行い、その算出結果を判断部７に通知する（ステップＳ４）。次に、判断部７では、演算部７からの算出結果にしたがって圧縮率が予め設定された規定の圧縮条件（図例では１画素ブロックあたりの圧縮率が８以下）を満たすか否かを判断する（ステップＳ５）。
【００２６】
ここで、規定の圧縮率条件を満たしていないと判断した場合は、パターン変更による圧縮効果が小さいとの判断予測から、後述するステップＳ７に移行する。ちなみに、１画素ブロックあたりの圧縮率が高い場合は、パターン変更部９で繰り返しパターンを変更しても、十分な圧縮効果が期待できない。そうした場合は、パターン変更無しで塗りつぶし描画を行って圧縮処理した方が効率的に処理することができ、しかもパターン変更による無用な画像品質の低下も回避することができるため、より好ましいものとなる。
【００２７】
これに対して、規定の圧縮率条件を満たしていると判断部７が判断した場合は、パターン変更部９で繰り返しパターンの変更処理（詳細は後述）を行う（ステップＳ６）。このとき、パターン変更部９で変更された繰り返しパターン（第２の繰り返しパターン）はメモリ１０に記憶される。次いで、塗りつぶし描画部１１がページバッファ１２に対して１ページ分の画像データの塗りつぶし描画処理を行う（ステップＳ７）。その後、圧縮部１３は、ページバッファ１２に蓄積された画像データに圧縮処理を行う（ステップＳ８）。これにより、プリンタドライバ４内で圧縮画像データ１５が生成されるため、この圧縮画像データをプリンタドライバ４がホストインターフェース５に出力する（ステップＳ９）。以上で描画命令１４に対するプリンタドライバ４内での処理が終了となる。
【００２８】
図４は圧縮率算出処理の処理手順を示すフローチャートである。ここでは、描画命令１４で塗りつぶし描画に指示された第１の繰り返しパターンが、例えば図５に示すように４つ（２×２）の画素からなる画素ブロックで構成され、この画素ブロック内で左上の画素の値が１２８（灰色）、右上の画素の値が０（白）、左下の画素の値が０（白）、右下の画素の値が２５５（黒）となっているものとする。
【００２９】
そうした場合、先ず、図６に示すように、一時メモリに６つ（３×２）の画素ブロックＢ１〜Ｂ６に区分した第１の繰り返しパターンを互いに隣接させて展開する（ステップＳ１１）。この場合、一つの画素ブロックが一つの繰り返し描画単位（第１の繰り返しパターン）となるため、各々の画素ブロックＢ１〜Ｂ６においては、上述したように４つの画素の値（画素値）とその配置関係が全ての共通のものとなる。また、各々の画素ブロックＢ１〜Ｂ６においては、左上の画素ブロックＢ１内で左上に配置された画素の位置を座標原点（０，０）として各々の画素位置を特定している。
【００３０】
こうした画素ブロックの展開を終えたら、中央下に位置する画素ブロックＢ５に対して圧縮処理を行った場合のデータ量を求める（ステップＳ１２）。この場合は、画素ブロックＢ５内の４つの画素(2,2)(3,2)(2,3)(3,3)を順次注目画素として、この注目画素に隣り合う周囲８方向（左、左上、上、右上、右、右下、下、左下）の隣接画素との画素値を順に比較し、この比較結果に基づいて圧縮処理を行う場合を想定している。
【００３１】
具体的には、図６に示す画素ブロックＢ５において、最初に注目画素となる左上の画素(2,2)は、その周囲に画素値の等しい隣接画素が存在しないため、圧縮前のデータ（画素値；１２８）がそのまま圧縮後のデータとして採用される。これに対して、次に注目画素となる右上の画素(3,2)は、その左上に画素値の等しい隣接画素(2,1)が存在するため、圧縮前のデータ（画素値；０）が圧縮後には「左上と同じ画素値」という簡易（抽象的）なデータに変換される。同様に、次に注目画素となる左下の画素(2,3)は、その左上に画素値の等しい隣接画素(1,2)が存在するため、圧縮前のデータ（画素値；０）が圧縮後は簡易なデータに変換される。最後に注目画素となる右下の画素(3,3)は、その周囲に画素値の等しい隣接画素が存在しないため、圧縮前のデータ（画素値；２５５）がそのまま圧縮後のデータとして採用される。これにより、圧縮処理を行った場合のデータ量を、画素値としてのデータ個数として捉えると、圧縮前のデータ量が４個で、圧縮後のデータ量が２個となる。
【００３２】
こうして圧縮前後のデータ量を求めたら、圧縮前のデータ量を圧縮後のデータ量で除算する、いわゆる比率計算により、１画素ブロックあたりの圧縮率を算出する。上記図６及び図７に示した例では、圧縮前のデータ量が４個で圧縮後のデータ量が２個となるため、圧縮前のデータ量を圧縮後のデータ量で除算した値は「２」となる。したがって、１画素ブロックあたりの圧縮率は「２」と求まる。なお、ここでは説明の便宜上、４つ（２×２）の画素からなる画素ブロック（繰り返しパターン）を例示しているため、計算上、圧縮率の算出結果が「８」を超えることはないが、実際の処理では数千個（例えば、６４×６４）の画素によって一つの繰り返しパターンが構成されるため、圧縮率の算出結果が「８」を超えることは頻繁にあり得る。
【００３３】
図８は繰り返しパターン変更処理の処理手順を示すフローチャートである。先ず、一時メモリに第１の繰り返しパターンを構成する画素ブロックを展開する（ステップＳ２１）。この場合、第１の繰り返しパターン（オリジナルパターン）は、図９（Ａ）に示すように、４つ（２×２）の画素からなる画素ブロックで構成され、この画素ブロック内で左上の画素の値が１２８（灰色）、右上の画素の値が０（白）、左下の画素の値が０（白）、右下の画素の値が２５５（黒）となっているものとする。
【００３４】
次に、上述のように展開した画素ブロック（第１の繰り返しパターン）のなかで、左上の座標位置に配置された画素を注目画素に設定する（ステップＳ２２）。図９（Ａ）に示す画素ブロックでいえば、画素値が１２８（灰）の画素が最初に注目画素に設定される。次いで、現在設定されている注目画素の画素値とこの注目画素に隣り合う隣接画素の画素値を順に比較しつつ、注目画素の画素値と強制一致可能な画素値をもつ隣接画素が存在するか否かを判断する（ステップＳ２３）。
【００３５】
ここで、強制一致可能かどうかの判断手法としては、例えば、注目画素の画素値をαとし、この注目画素と比較される隣接画素の画素値をβとしたときに、それらの差分（α−β）の絶対値と予め設定された閾値とを比較し、この比較結果において差分の絶対値が閾値以下であるときは強制一致可能とし、差分の絶対値が閾値を超えるときは強制一致不可とするなどの判断手法を採用することができる。また、かかる判断手法を採用した場合の閾値の設定に関しては、予め実験的に閾値を種々変化させて実際に塗りつぶし描画処理を行ったときの画像と元々のオリジナルの画像とを視覚的に比較し、この比較結果において良好な視覚特性を維持できる条件で適宜設定することが望ましい。
【００３６】
続いて、上記ステップＳ２３において、注目画素の画素値と強制一致可能な画素値をもつ隣接画素が存在しないと判断した場合は、変更後のパターン情報として、注目画素と同じ座標位置にオリジナルパターンと同じ値を代入する（ステップＳ２４）。例えば、図９（Ａ）に示す画素ブロックにおいて、右上の画素を注目画素とし、この注目画素に強制一致可能な隣接画素が存在しなかった場合は、変更後のパターン情報として、右上の座標位置に対応する画素の値にオリジナルパターンと同じ画素値０（白）を代入することになる。
【００３７】
これに対して、注目画素の画素値と強制一致可能な画素値をもつ隣接画素が存在すると判断した場合は、注目画素の画素値とこれに強制一致可能な隣接画素の画素値を平均化して、その平均値を求める（ステップＳ２５）。ここでの平均化は、注目画素の画素値とこれに強制一致可能と判断した隣接画素の画素値とを加算し、この加算値を「２」で除算することにより行われる。続いて、変更後のパターン情報として、先のステップＳ２３で強制一致可能と判断した注目画素の座標位置と隣接画素の座標位置に、先のステップＳ２４で求めた平均値をそれぞれ代入する（ステップＳ２６）。これにより、オリジナルの繰り返しパターンにおいて、強制一致可能と判断した２つの画素の値が強制的に同じ値となるように変換される。
【００３８】
具体的には、例えば、図９（Ａ）に示す繰り返しパターンにおいて、左上の画素を注目画素とし、この注目画素と強制一致可能な隣接画素が右下の画素であったとすると、注目画素の画素値が１２８で、これに強制一致可能な隣接画素の画素値が２５５となるため、その平均化によって得られる平均値は１９２となる。このため、変更後のパターン情報としては、図９（Ｂ）に示すように、強制一致可能と判断した左上の座標位置の画素値と右下の座標位置の画素値が共に１９２に変換される。
【００３９】
その後、注目画素の位置を次の位置にずらして設定した後（ステップＳ２７）、繰り返しパターン内の全ての画素について処理が終了したか否かを判断する（ステップＳ２８）。そして、未処理の画素が残っている場合は上記ステップＳ２３に戻って上記同様の処理を行い、全ての画素について処理が終了したら、一連のパターン変更処理を終了する。
【００４０】
ちなみに、注目画素の位置をどのような順序でずらしていくかの順序立てに関しては、繰り返しパターンを構成する画素ブロック内で左上の座標位置を起点に右方向（行方向）に一つずつ注目画素の位置をずらしていき、最初の行の右端までずらし終えたら、次の行（又は一つ飛ばして次の行）の左端から再び右方向に一つずつ注目画素の位置をずらすといった順序を採用すればよい。
【００４１】
また、ステップＳ２６でのデータ変換により、一度データ変換が行われた画素に関しては、その後の処理で注目画素に設定したり、注目画素と比較される隣接画素に設定したりしないものとする。この理由は、一度データ変換を行った画素を、その後の処理で注目画素又は隣接画素に設定すると、同じ画素の値を複数回にわたってデータ変換する場合が想定され、そうした場合にオリジナルパターンでの画素値とかけ離れた画素値にデータ変換されてしまって、オリジナルパターンとの視覚特性を良好に維持できなく恐れがあるためである。ただし、オリジナルパターンでの画素値を考慮しつつ、データ変換を行う場合（例えば、オリジナルパターンでの画素値とデータ変換後の画素値との間に一定の取り決めを設定した場合など）においては、この限りではない。
【００４２】
以上のパターン変更処理により変更された繰り返しパターンは、第２の繰り返しパターンとしてメモリ１０に記憶される。これにより、塗りつぶし描画部１１で第２の繰り返しパターンにしたがって画像データの塗りつぶし描画処理を行った場合は、図１０に示すように、左上の画素の値が１９２（灰）、右上の画素の値が０（白）、左下の画素の値が白（０）、右下の画素の値が１９２（灰）の配列で構成された２×２の画素ブロックからなる繰り返しパターンが適用され、この繰り返しパターンによって円図形の塗りつぶし描画が行われる。
【００４３】
その結果、圧縮部１３での圧縮処理において、図１１に示すように、６つの画素ブロックＢ１１〜Ｂ１６のうち、一つ（中央下）の画素ブロックＢ１５に対して、隣接画素との関連性に着目した圧縮処理を行った場合、即ち、画素ブロックＢ１５内の４つの画素(2,2)(3,2)(2,3)(3,3)を順次注目画素として、この注目画素に隣り合う周囲８方向の隣接画素との画素値を順に比較し、この比較結果に基づいて圧縮処理を行った場合は、圧縮前と圧縮後で図１２に示すようにデータ変換される。
【００４４】
先ず、最初に注目画素となる左上の画素(2,2)は、その左上に画素値の等しい隣接画素(1,1)が存在するため、圧縮前のデータ（画素値；１９２）が圧縮後は「左上と同じ画素値」という簡易（抽象的）なデータに変換される。また、次に注目画素となる右上の画素(3,2)は、その左上に画素値の等しい隣接画素(2,1)が存在するため、圧縮前のデータ（画素値；０）が圧縮後には「左上と同じ画素値」という簡易なデータに変換される。また、次に注目画素となる左下の画素(2,3)は、その左上に画素値の等しい隣接画素(1,2)が存在するため、圧縮前のデータ（画素値；０）が圧縮後は「左上と同じ画素値」という簡易なデータに変換される。最後に注目画素となる右下の画素(3,3)は、その左上に画素値の等しい画素(2,2)が存在するため、圧縮前のデータ（画素値；１９２）が圧縮後は「左上と同じ画素値」という簡易なデータに変換される。
【００４５】
これにより、繰り返しパターンを構成する画素ブロック内の全ての画素の値（データ）がいずれも簡易なデータに変換される。即ち、上記図１１に示す第２の繰り返しパターンで図形等の塗りつぶし描画処理を行った画像データを圧縮処理した場合、繰り返しパターンにおける各画素の値を８ビットのデジタル信号で表すものとすると、圧縮前のデータ量は８ビットのデジタル信号が４つ必要になるが、圧縮後のデータ量としてはそれよりも格段に簡略化された少ないデータ量で同じ繰り返しパターンを表すことができる。そのため、画像品質を良好に維持しつつ、きわめて高い圧縮率をもって画像データを圧縮することが可能となる。
【００４６】
【発明の効果】
以上説明したように本発明によれば、図形や文字などの塗りつぶしに使用するの繰り返しパターンを、視覚特性を維持しながら圧縮率の高いパターンに変更することにより、画像品質の低下を最小限に抑えつつ、簡易な方法で画像データの圧縮率を向上させることが可能となる。
【図面の簡単な説明】
【図１】  本発明の実施形態に係るホストコンピュータの基本的な構成例を示すブロック図である。
【図２】  プリンタドライバの機能構成を示すブロック図である。
【図３】  プリンタドライバによって実行される処理手順を示すフローチャートである。
【図４】  圧縮率算出処理の処理手順を示すフローチャートである。
【図５】  描画命令で塗りつぶし描画に指示された第１の繰り返しパターンの一例を示す図である。
【図６】  圧縮率の算出処理に際してメモリに展開された画素ブロックの配置例を示す図である。
【図７】  圧縮率の算出処理に際して圧縮前のデータ量と圧縮後のデータ量を比較した図である。
【図８】  繰り返しパターン変更処理の処理手順を示すフローチャートである。
【図９】  繰り返しパターン変更処理によるパターン変更例を示す図である。
【図１０】  変更後の繰り返しパターンによって塗りつぶし描画を行った場合の画像を示す図である。
【図１１】  変更後の繰り返しパターンで描画処理した画像データを圧縮部で圧縮処理する際の圧縮方式を説明するための図である。
【図１２】  圧縮部で画像データを圧縮処理した場合の圧縮前のデータ量と圧縮後のデータ量を比較する図である。
【符号の説明】
１…ホストコンピュータ、２…アプリケーションプログラム、３…オペレーティングシステム、４…プリンタドライバ、５…ホストインターフェース、６…プリンタ、７…判断部、８…演算部、９…パターン変更部、１０…メモリ、１１…塗りつぶし描画部、１２…ページバッファ、１３…圧縮部
【図１】
0003960086.tif 000002
【図２】
0003960086.tif 000003
【図３】
0003960086.tif 000004
【図４】
0003960086.tif 000005
【図５】
0003960086.tif 000006
【図６】
0003960086.tif 000007
【図７】
0003960086.tif 000008
【図８】
0003960086.tif 000009
【図９】
0003960086.tif 000010
【図１０】
0003960086.tif 000011
【図１１】
0003960086.tif 000012
【図１２】
0003960086.tif 000013