(57)【要約】【課題】ページ記述言語で指定されるコマンドの内容に応じてコマンドを適応的に処理しラスタ画像の生成を高速化するラスタ画像生成装置を提供する。【解決手段】本発明によるラスタ画像生成装置は、出力データ中に塗りつぶしパターンを指定する命令が含まれている場合に、そのパターンが同一色であるとみなす事ができることに対応する所定の条件を満たすか否かを判定する判定手段と、出力データに基づいてラスタ画像を生成する際に、判定手段による判定結果に基づいて、塗りつぶし対象の描画データに対する塗りつぶし処理のアルゴリズムを切り替えて実行するラスタ画像生成手段とを有する。指定パターンが同一色として構成されている場合、塗りつぶし処理のアルゴリズムとして、より効率的なアルゴリズムに切り替えることができる。【選択図】    図３
2005022092.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語による出力データをラスタ画像に展開する装置であって、
前記出力データ中に塗りつぶしパターンを指定する命令が含まれている場合に、前記パターンが同一色であるとみなす事ができることに対応する所定の条件を満たすか否かを判定する判定手段と、
前記出力データに基づいてラスタ画像を生成する際に、前記判定手段による判定結果に基づいて、塗りつぶし対象の描画データに対する塗りつぶし処理のアルゴリズムを切り替えて実行するラスタ画像生成手段と、
を備えることを特徴とするラスタ画像生成装置。
【請求項２】
前記ラスタ画像生成手段は、前記判定手段により前記パターンが同一色であるとみなす事ができると判定された場合、前記塗りつぶし処理のアルゴリズムとして、前記塗りつぶし対象の描画データを、同一色であるとみなされた前記パターンの色で塗りつぶす処理を採用すること、を特徴とする請求項１に記載のラスタ画像生成装置。
【請求項３】
前記ラスタ画像生成手段は、前記判定手段により前記パターンが同一色であるとみなす事ができないと判定された場合、前記塗りつぶし処理のアルゴリズムとして、前記塗りつぶし対象の描画データを前記パターンにより塗りつぶす処理を採用すること、を特徴とする請求項１または請求項２に記載のラスタ画像生成装置。
【請求項４】
前記所定の条件は、前記パターン内の画素が完全に一色で構成されていることであること、を特徴とする請求項１から請求項３のいずれかに記載のラスタ画像生成装置。
【請求項５】
前記所定の条件は、前記パターンを構成する画素の所定の色空間内における各色成分を表す数値のばらつきが所定幅以内に収まっていることであること、を特徴とする請求項１から請求項３のいずれかに記載のラスタ画像生成装置。
【請求項６】
前記判定手段は、前記出力データに対する指定画質に応じて前記所定の条件の内容を切り替えて適用すること、を特徴とする請求項１から請求項３のいずれかに記載のラスタ画像生成装置。
【請求項７】
前記所定の条件は、
条件（１）  前記パターン内の画素が完全に一色で構成されていること
条件（２）  前記パターンを構成する画素のＲＧＢ各成分の階調の画素間のばらつきが所定幅以内に収まっていること
の２つの条件を含むこと、を特徴とする請求項６に記載のラスタ画像生成装置。
【請求項８】
前記判定手段は、前記指定画質が低画質である場合に前記所定の条件として前記条件（２）を用いること、を特徴とする請求項７に記載のラスタ画像生成装置。
【請求項９】
前記判定手段は、前記指定画質が標準以上の画質である場合に前記所定の条件として前記条件（１）を用いること、を特徴とする請求項７または請求項８に記載のラスタ画像生成装置。
【請求項１０】
前記判定手段における判定は、前記パターン内の先頭座標の画素の値を判定基準とし、前記パターン内の画素の値を前記先頭座標の次の座標の画素から順に最終座標の画素まで該判定基準と比較していくことを含むこと、を特徴とする請求項１から請求項９のいずれかに記載のラスタ画像生成装置。
【請求項１１】
前記判定手段における判定は、前記パターン内の先頭座標の画素の値を判定基準とし、前記パターン内の中央の座標の画素の値または前記パターン内の最後の座標の画素の値と、前記判定基準とを最初に比較することを含むこと、を特徴とする請求項１から請求項１０のいずれかに記載のラスタ画像生成装置。
【請求項１２】
前記判定手段は、前記比較の結果、前記所定の条件を満たすことにならない画素が見つかった時点で、前記比較を停止し前記所定の条件は満たされないと判定すること、を特徴とする請求項１０または請求項１１に記載のラスタ画像生成装置。
【請求項１３】
外部装置からページ記述言語による出力データを受信するための入出力インタフェースを更に備えること、を特徴とする請求項１から請求項１２のいずれかに記載のラスタ画像生成装置。
【請求項１４】
請求項１から請求項１３のいずれかに記載のラスタ画像生成装置と、
前記ラスタ画像生成装置によって生成されたラスタ画像に基づいて印字を行う印字制御手段と、
を備えることを特徴とする印字装置。
【請求項１５】
請求項１から請求項１３のいずれかに記載のラスタ画像生成装置の各手段の機能を実現させるためのコンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムを記録したコンピュータに読み取り可能な記憶媒体。
【請求項１７】
ページ記述言語として表された出力データ中に塗りつぶしパターンを指定する命令が含まれている場合に、前記パターンが同一色であるとみなす事ができることに対応する所定の条件を満たすか否かを判定する機能と、
前記出力データに基づいてラスタ画像を生成する際に、前記判定による判定結果に基づいて、塗りつぶし対象の描画データに対する塗りつぶし処理のアルゴリズムを切り替えて実行する機能と、
をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はページ記述言語に基づいてラスタ画像を生成するラスタ画像生成装置に関し、さらに詳細にはこのような装置におけるラスタ画像生成の高速化に関する。
【０００２】
【従来の技術】
特定の出力装置の解像度によらず出力用のページを記述することのできる言語としてページ記述言語が広く用いられている。ページ記述言語は、各文書ページ上のテキスト、グラフィックス、スキャン画像など、各要素の性質を全て記述するコマンド列から構成される。ページ記述言語に対応した印字装置を用いることによって、このようなページ記述言語としての印字データにしたがった印字を行うことができる。
【０００３】
例えば下記特許文献１には、このような印字装置が記載されている。特許文献１では、ホストコンピュータがページ記述言語を印字装置に転送すると、印字装置がページ記述言語を解釈してラスタ画像に展開する。
【０００４】
一方、ページプリンタ等のページ記述言語対応の印字装置においては、図形や文字を描画する際に、塗りつぶし色や塗りつぶしパターンを指定することができる。例えば、図７に示すように、アルファベット「Ａ」を描画する前にダイヤのパターンを塗りつぶしパターンに指定しておくことによって、ダイヤ型のパターンで塗りつぶされた「Ａ」を描画することができる。このような方法によって、文字や図形に様々な模様を付すことが可能である（例えば、特許文献２参照）。
【０００５】
【特許文献１】
特許第３１５９８３７号公報
【特許文献２】
特開平９−２５４４４５号公報
【０００６】
【発明が解決しようとする課題】
上記のようにページ記述言語では、パターンによる塗りつぶしの為のパターンデータを指定するパターン指定コマンドと、色による塗りつぶしのための色指定コマンドとを備えることがある。色指定コマンドは、文字などの描画データを同一色に塗りつぶす為に用いられる。例えば、アルファベット「Ａ」に対して色指定を行うことによって、図５に示すように、色指定コマンドで指定した色で描画データ「Ａ」の描画データ領域１０１を塗りつぶすことができる。
【０００７】
通常、パターンデータは、１ピクセルを１ドットで表しており、印字装置においてパターンデータをラスタ画像に展開する際には、パターンデータの各ピクセルについてＯＮ／ＯＦＦの確認が行われる。一方、色指定による塗りつぶしを行う際には、このようなＯＮ／ＯＦＦの確認が必要でないことが理解される。色指定の場合には、処理対象の画素が描画データ領域１０１（図５参照）であるか否かを確認し、描画データ領域１０１内の画素について色指定コマンドで指定された色を入れれば良いからである。
【０００８】
このように、パターン指定コマンドは、ユーザにとって利用価値のある機能を提供する一方で、このコマンドを処理するためには、ビットのＯＮ／ＯＦＦ確認などの処理を伴い、印字装置側にとっては不可の増大を招く結果となる。このことが、印字処理の高速化という面で問題となっていた。
【０００９】
本発明は、以上のようは事情に鑑みてなされたものである。すなわち、本発明は、ページ記述言語で指定されるコマンドの内容に応じてコマンドを適応的に処理することにより、ラスタ画像の生成を高速化することのできるラスタ画像生成装置、印字装置およびコンピュータプログラムを提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を解決する為に、本発明による、ページ記述言語による出力データをラスタ画像に展開するラスタ画像生成装置は、出力データ中に塗りつぶしパターンを指定する命令が含まれている場合に、そのパターンが同一色であるとみなす事ができることに対応する所定の条件を満たすか否かを判定する判定手段と、出力データに基づいてラスタ画像を生成する際に、判定手段による判定結果に基づいて、塗りつぶし対象の描画データに対する塗りつぶし処理のアルゴリズムを切り替えて実行するラスタ画像生成手段とを有する。塗りつぶしパターンとして指定されるパターンは、同一色として構成されている場合がある。上記構成のラスタ画像生成装置によればこのような場合に、塗りつぶし処理のアルゴリズムを、より効率的なアルゴリズムに切り替えることが可能になる。
【００１１】
ラスタ画像生成手段は、判定手段によりパターンが同一色であるとみなす事ができると判定された場合、塗りつぶし処理のアルゴリズムとして、塗りつぶし対象の描画データを、同一色であるとみなされたパターンの色で塗りつぶす処理を採用する構成であっても良い（請求項２）。指定されたパターンが同一色とみなされた場合、より高速に処理できる色による塗りつぶし処理が採用される。
【００１２】
ラスタ画像生成手段は、判定手段によりパターンが同一色であるとみなす事ができないと判定された場合、塗りつぶし処理のアルゴリズムとして、塗りつぶし対象の描画データをパターンにより塗りつぶす処理を採用する構成であっても良い（請求項３）。指定されたパターンが同一色でないと判定される場合には、通常の、パターンによる塗りつぶし処理が採用される。
【００１３】
所定の条件は、パターン内の画素が完全に一色で構成されていること、であっても良い（請求項４）。この場合、パターンが完全に一色である場合に、パターンが同一色であるとみなされる。
【００１４】
或いは、所定の条件は、パターンを構成する画素の所定の色空間内における各色成分を表す数値のばらつきが所定幅以内に収まっていることであること、であっても良い（請求項５）。このような条件を用いることで、所定の色空間内における各色成分を表す数値のばらつきが所定幅以内に収まっているような場合には、色の相違が許容され、同一色であるとみなされる。したがって、判定手段が同一色であるとみなす指定パターンが増加することになる。
【００１５】
判定手段は、出力データに対する指定画質に応じて所定の条件の内容を切り替えて適用する構成であって良い（請求項６）。この場合、指定画質に応じて塗りつぶし処理のアルゴリズムが切り替えられることになる。
【００１６】
この場合の、記所定の条件は、
条件（１）  パターン内の画素が完全に一色で構成されていること
条件（２）  パターンを構成する画素のＲＧＢ各成分の階調の画素間のばらつきが所定幅以内に収まっていること
の２つの条件を含む構成であっても良い（請求項７）。
【００１７】
また、この場合に判定手段は、指定画質が低画質である場合に所定の条件として条件（２）を用いる構成であっても良い（請求項８）。指定画質が低画質である場合には、条件（２）を採用することで、判定手段により同一色であるとみなされる指定パターンを増加させ、ラスタ画像生成をさらに高速化する。
【００１８】
なお、判定手段は、指定画質が標準以上の画質である場合に所定の条件として条件（２）を用いる構成であっても良い（請求項９）。
【００１９】
判定手段における判定は、パターン内の先頭座標の画素の値を判定基準とし、パターン内の画素の値を、先頭座標の次の座標の画素から順に最終座標の画素まで判定基準と比較していくことを含む構成であっても良い（請求項１０）。
【００２０】
また、判定手段における判定は、パターン内の先頭座標の画素の値を判定基準とし、パターン内の中央の座標の画素の値、または、パターン内の最後の座標の画素の値と、判定基準とを最初に比較することを含む構成であっても良い（請求項１１）。通常、画像は、１つの画素の周囲は同一色である傾向を持つので、このような比較の処理を行うことによって、パターンが非同一色であることを比較的早く検出できる。
【００２１】
なお、判定手段は、比較の結果、所定の条件を満たすことにならない画素が見つかった時点で、比較を停止し、所定の条件は満たされないと判定する構成であっても良い（請求項１２）。所定の条件を満たすことにならない画素が見つかった場合、比較の処理は迅速に終了する。
【００２２】
上記ラスタ画像生成装置は、外部装置からページ記述言語による出力データを受信するための入出力インタフェースを更に備える構成であっても良い（請求項１３）。
【００２３】
上記ラスタ画像生成装置と、ラスタ画像生成装置によって生成されたラスタ画像に基づいて印字を行う印字制御手段とを備える印字装置を構成することができる（請求項１４）。
【００２４】
なお、上記ラスタ画像生成装置の各手段が実現する機能は、コンピュータプログラムとして構成することができる（請求項１５）。
【００２５】
上記本発明の目的を達成するために、ページ記述言語として表された出力データ中に塗りつぶしパターンを指定する命令が含まれている場合に、パターンが同一色であるとみなす事ができることに対応する所定の条件を満たすか否かを判定する機能と、出力データに基づいてラスタ画像を生成する際に、判定による判定結果に基づいて、塗りつぶし対象の描画データに対する塗りつぶし処理のアルゴリズムを切り替えて実行する機能と、をコンピュータに実現させるためのプログラムが提供される。塗りつぶしパターンとして指定されるパターンは、同一色として構成されている場合がある。上記構成のコンピュータプログラムによればこのような場合に、塗りつぶし処理のアルゴリズムを、より効率的なアルゴリズムに切り替えることが可能になる。
【００２６】
【発明の実施の形態】
図１は、本発明の実施形態としての印字装置１００と、印字装置１００に接続されたパーソナルコンピュータ（ＰＣ）５０のハードウェア構成を表すブロック図である。また、図２は、図１の構成を持つＰＣ５０、および印字装置１００が実現する機能を表す機能ブロック図である。
【００２７】
図１のブロック図について説明する。ＰＣ５０は、パーソナルコンピュータとして一般的な構成を有する。すわわち、ＰＣ５０は、ＣＰＵ２１に対して、バス１９を介して、ＲＯＭ２２、ＲＡＭ２３、記憶デバイスとしてのＨＤＤ２４、キーボード等からなる操作部２５、表示部２６、および入出力インタフェース２７が接続されている。ＨＤＤ２４には、オペレーティングシステム、各種アプリケーションプログラム等の様々なソフトウェアが格納されている。
【００２８】
印字装置１００は、印字装置の制御を司るＣＰＵ１２１に対して、バス１１９を介して、ＲＯＭ１２２，ＲＡＭ１２３、操作部１２４、表示部１２５、および印字部１２０が接続されている。ＲＯＭ１２２には、ＣＰＵ１２１が後述するラスタ画像展開処理等を実行するための制御プログラムが格納されている。印字装置１００のＣＰＵ１２１は、入出力インタフェース１２６を介してＰＣ５０側と通信可能に構成されている。ＣＰＵ１２１は、印字装置１００に関する情報をＰＣ５０側に提供したり、ＰＣ５０側からプリンタ言語による印字データを受け取ったりすることができる。
【００２９】
次に図２を参照して、ＰＣ５０および印字装置１００の機能について説明する。ＰＣ５０上で動作する文書作成ソフトウェア等のアプリケーションプログラム５１により、印字すべきデータが生成される。プリンタ言語作成部５２は、アプリケーション５１からデータを受け取り、受け取ったデータをプリンタ言語（すなわち、ページ記述言語）に変換する機能を持つ。プリンタ言語作成部５２の機能は、いわゆる、プリンタドライバ、またはプリントプロセッサと呼ばれるソフトウェアにより実現される。プリンタ言語作成部５２によって作成されたデータが、ネットワーク或いは専用のケーブルを介してＰＣ５０に接続された印字装置１００に転送される。
【００３０】
印字装置１００において、プリンタ言語処理部１１０は、プリンタ言語として作成されたデータをＰＣ５０から受け取りラスタデータに変換するラスタ画像生成装置としての機能を果たす。そして、印字部１２０がラスタデータに基づいて印字を行う。なお、プリンタ言語処理部１１０により生成されたラスタデータは印字部１２０内のプリントメモリに格納され、印字部１２０内のプリントエンジンはプリントメモリ内のデータに基づいて印字を実行する。
【００３１】
図３は、ＣＰＵ１２１による制御の下で実行されるプリンタ言語処理（すなわち、プリンタ言語処理部１１０の機能）を表すフローチャートである。図３のプリンタ言語処理により、ＰＣ５０側から入力されたプリンタ言語としてのデータに基づいてラスタ画像が生成される。なお、ＰＣ５０側からの印字用のデータは、ＲＡＭ１２４内の入力バッファに一旦格納されるものとし、図２のプリンタ言語処理は、入力バッファに格納されたデータを先頭から順に処理の対象とする。始めに実行されるステップＳ１１の判定は、処理の対象となる入力データが入力バッファ中に存在するか否かを判定することに対応する。
【００３２】
すなわち、ステップＳ１１では、入力データが入力バッファに入力されていない場合には、入力があるまで待つ（Ｓ１１：ＮＯのループ）。データが入力バッファに入力されると（Ｓ１２：ＹＥＳ）、処理はステップＳ１２に進む。ステップＳ１２では、対象のデータが改ページコマンドであるか否かを判定する。改ページコマンドでない場合には（Ｓ１２：ＮＯ）、処理はステップＳ１４に進む。なお、ステップＳ１２において入力データが改ページコマンドであると判定された場合（Ｓ１２：ＹＥＳ）、ＲＡＭ１２３内の出力用バッファに蓄えていたデータを印字部１２０を介して印刷する（Ｓ１３）。
【００３３】
ステップＳ１４では、対象の入力データが色指定コマンドであるか否かを判定する（Ｓ１４）。色指定コマンドではない場合には（Ｓ１４：ＮＯ）、処理はステップＳ１５に進み、対象のデータがパターン指定コマンドであるか否かを判定する。
【００３４】
パターン指定コマンドであると判定される場合に実行される一連の判定処理であるＳ２１〜Ｓ２６について説明する。ステップＳ２１では、パターンが同一色であるか否かを同一色フラグが付いているか否かにより判定する。パターンに同一色フラグが付いていない場合（Ｓ２１：ＮＯ）、次にステップＳ２２において、パターンが同一色であるか否かを検出するための検出処理を行う。なお、ここでいう「パターンが同一色であるか否か」とは、パターンによる描画データの塗りつぶしが、色指定コマンドで描画データを塗りつぶす場合と同じ処理として扱うことができるか否かを判定することに相当する。ステップＳ２２における検出処理の詳細については後述する。
【００３５】
なお、パターン指定コマンドでは、パターンを識別するための識別番号が指定される。パターンのデータは、ＰＣ５０側から印字装置１００側に予めダウンロードされる。各パターンは識別番号により識別可能な状態で印字装置１００のＲＡＭ１２３中に格納されている。また、ＲＡＭ１２３内には、各パターンの識別番号と同一色フラグのＯＮ／ＯＦＦと対応付けるテーブル（下記表１参照）が作成される。下記表１のテーブルを利用することによって、ステップＳ２１での判定が行われる。また、表１のテーブルには、パターンデータが同一色の場合にその色を表すデータがさらに関連付けられる。
【００３６】
【表１】
2005022092.tif 000003
【００３７】
ステップＳ２３では、ステップＳ２２における検出処理の結果を判定する。すなわち、パターンが同一色である場合（Ｓ２３：ＹＥＳ）、対象のパターンに対して同一色であることを表す同一色フラグを付ける（同一色フラグをＯＮにする）（Ｓ２４）。次にステップＳ２５では、塗りつぶしをどのように行うかの指定（塗りつぶし指定）に色、つまり指定色で塗りつぶしを行うべきことを設定する。
【００３８】
一方、ステップＳ２３においてパターンが同一色でないと判定される場合には（Ｓ２３：ＮＯ）、塗りつぶし指定にパターンを設定する（つまり、パターン指定コマンドに対する通常の処理である、パターンによる塗りつぶしを行うべきことを設定する）。なお、ステップＳ１４において、対象のデータが色指定コマンドであると判定される場合には（Ｓ１４：ＹＥＳ）、色指定に対する通常の処理を行う為に、ステップＳ２５において塗りつぶし指定として色を設定する。
【００３９】
ステップＳ２５、Ｓ２６の後、処理はステップＳ１１に戻る。色指定コマンドまたはパターン指定コマンドの次には、通常は、それらの塗りつぶし色、パターンを反映すべき描画データが存在する。したがって、通常は、ステップＳ２５、２６からステップＳ１１に処理が戻ると、処理はステップＳ１６まで進む。次に、ステップＳ１６からの処理について説明する。
【００４０】
ステップＳ１６では、対象のデータが描画データであるか否かを判定する。描画データであると判定された場合には（Ｓ１６：ＹＥＳ）、次に、塗りつぶし指定がパターンであるか否かが判定される（Ｓ１７）。すなわち、ステップＳ２５、Ｓ２６で設定されている塗りつぶし指定が、パターンとなっているのか、それとも色となっているのかが判定される。
【００４１】
塗りつぶし指定がパターンである場合には（Ｓ１７：ＹＥＳ）、次に、指定パターンで描画データを塗りつぶす処理が実行される（Ｓ１８）。ステップＳ１８での処理の詳細については、後述する。
【００４２】
一方、ステップＳ１７の判定において塗りつぶし指定がパターンではないと、すなわち色であると判定されると（Ｓ１７：ＮＯ）、次に、指定色で描画データを塗りつぶす処理が実行される（Ｓ１９）。なお、Ｓ２３においてパターンが同一色と判定されることでこのステップＳ１９の色による塗りつぶし処理が行われる場合には、上記表１のテーブルに保存されている色データが、塗りつぶしの為の指定色として用いられる。
【００４３】
以上説明したように、図２のプリンタ言語処理によれば、パターン指定コマンドのパターンが、同一色であると判定される場合には、そのパターンに関しては、指定色での塗りつぶし処理（Ｓ１９）が適用される。指定色での塗りつぶし処理（Ｓ１９）の方が、指定パターンによる塗りつぶし処理（Ｓ１８）よりも負荷が少なく、高速に塗りつぶし処理できる。したがって、パターン指定コマンドのときに一律に指定パターンによる塗りつぶし処理（Ｓ１８）を行うことに比較すれば、処理を高速化することができる。
【００４４】
次に、色指定による塗りつぶし処理（Ｓ１９）について、図４および図５を参照して説明する。
【００４５】
図４は、色指定による塗りつぶし処理（Ｓ１９）の詳細を表すフローチャートである。なお、色指定による塗りつぶし処理とは、図５に示すように、描画データ１００が例えば文字「Ａ」である場合に、文字Ａの描画データ領域１０１を指定色１０２で塗りつぶし、符号１０３で示すような結果を得るための処理である。なお、塗りつぶし前の描画データ１００の画素座標をＳ（ｘ，ｙ）で表し、塗りつぶし後のデータの画素座標をＤ（ｘ、ｙ）で表す。図５に示すように、座標Ｓ（ｘ，ｙ）、Ｄ（ｘ、ｙ）は、それぞれ、左上が（０，０）、右下が（Ｎ，Ｍ）である。
【００４６】
図４の色指定による塗りつぶし処理は、描画データの画素Ｓ（ｘ，ｙ）を先頭から順に調べ、描画データ領域内の画素Ｄ（ｘ、ｙ）に対して指定色を代入する処理である。はじめに、ステップＳ５１では、変数ｙを０に初期化する。次に、ステップＳ５２では、変数ｘを０に初期化する。
【００４７】
次に、ステップＳ５３では、Ｓ（ｘ，ｙ）が描画データ領域１０１内であるかどうかを調べる。ステップＳ５３での判定の結果、Ｓ（ｘ，ｙ）が描画データ領域の内側である場合には（Ｓ５３：ＹＥＳ）、Ｄ（ｘ，ｙ）に指定色を入れる。Ｓ（ｘ，ｙ）が描画データ領域の外側である場合には（Ｓ５３：ＮＯ）、Ｄ（ｘ，ｙ）に無色を入れる。例えば図５の描画データ１００の画素Ｓ（０，０）は、描画データ領域１０１の外側であると判定され、Ｄ（ｘ、ｙ）には無色が入れられることになる。
【００４８】
次にステップＳ５６では、描画データの横方向の次の座標の画素について処理を行う為にｘに１を加える。ステップＳ５７では、ｘ座標について描画データの右端部まで処理が終了したかどうかを調べる。すなわち、ｘ＝Ｎになっているかを調べる。描画データの右端部まで処理が終わっておらず、ｘ＝Ｎでないと判定される場合には（Ｓ５７：ＮＯ）、次の画素についてＳ５３からの処理が行われる。
【００４９】
描画データの右端まで処理が終了しており、ｘ＝Ｎであると判定される場合には（Ｓ５７：ＹＥＳ）、描画データの縦方向の次の行の画素について処理を行う為にｙ座標に１を加える（Ｓ５８）。次に、ステップＳ５９では、ｙ座標が最終行まで達しているかどうかを調べる。すなわち、ｙ＝Ｍであるかどうかを調べる。ｙ＝Ｍである場合は（Ｓ５９：ＹＥＳ）、全ての描画データの画素について処理が終了していることになるので、図４の色指定による塗りつぶし処理は終了する。ｙ＝Ｍでないと判定された場合には（Ｓ５９：ＮＯ）、ｙ方向の次の行についてステップＳ５２からの処理が行われる。
【００５０】
次に、指定パターンでの塗りつぶし処理（Ｓ１８）について、図６および図７を参照して説明する。
図６は、指定パターンによる塗りつぶし処理（Ｓ１８）を表すフローチャートである。なお、指定パターンによる塗りつぶし処理とは、図７に示すように、描画データ１１０が例えば文字「Ａ」である場合に、文字Ａの描画データ領域１１１をパターン１１５で塗りつぶし、符号１１７で示すような結果を得るための処理である。なお、塗りつぶし前の描画データの画素座標をＳ（ｘ，ｙ）で表し、パターンの座標をＰ（ｐｘ、ｐｙ）で表し、また、塗りつぶし後のデータの画素座標をＤ（ｘ、ｙ）で表す。図７において、座標Ｓ（ｘ，ｙ）、Ｄ（ｘ、ｙ）は、それぞれ、左上が（０，０）、右下が（Ｎ，Ｍ）である。座標Ｐ（ｐｘ、ｐｙ）は、左上が（０，０）、右下が（ｎ，ｍ）である。
【００５１】
始めにステップＳ７１では、縦方向の座標ｙ，ｐｙをそれぞれ０に初期化する。次にステップＳ７２では、横方向の座標ｘ，ｐｘをそれぞれ０に初期化する。
【００５２】
次に、ステップＳ７３では、Ｓ（ｘ，ｙ）が描画データ領域１１１内であるかどうかを調べる。その結果、Ｓ（ｘ，ｙ）が描画データ領域の内側であると判定される場合には（Ｓ７３：ＹＥＳ）、Ｄ（ｘ，ｙ）に、パターン１１５内の画素データＰ（ｐｘ、ｐｙ）の値を入れる。Ｓ（ｘ，ｙ）が描画データ領域の外側である場合には（Ｓ７３：ＮＯ）、Ｄ（ｘ，ｙ）に無色を入れる。
【００５３】
次にステップＳ７６では、パターン１１５における処理の対象の画素のｐｘ座標に１を加える。ステップＳ７７では、パターンの処理対象の画素の横方向の座標が右端部まで達しているかどうかについて調べる。すなわち、ｐｘ＝ｎであるかどうかを調べる。その結果、ｐｘ＝ｎであれば（Ｓ７７：ＹＥＳ）、パターンのｐｘ座標を０に初期化する。ｐｘがｎにまで達していない場合には（Ｓ７７：ＮＯ）、スペップＳ７８をスキップする。
【００５４】
次に、ステップＳ７９では、次の座標について処理を行う為にｘに１を加える。ステップＳ８０では、ｘ座標について描画データの右端部まで処理が終了したかどうかを調べる。すなわち、ｘ＝Ｎになっているかを調べる。描画データの右端部まで処理が終わっておらず、ｘ＝Ｎでないと判定される場合には（Ｓ８０：ＮＯ）、次の画素についてＳ７３からの処理が行われる。上記ステップＳ７３〜Ｓ８０に至る一連の処理によって、描画データ領域内の１つの行について、パターンの１つの行方向のデータによる塗りつぶしが繰り返し行われることになる。
【００５５】
一方、ステップＳ８０においてｘ＝Ｎと判定されるのは、描画データの一つの行について処理が終了したことに対応する。この場合（Ｓ８０：ＹＥＳ）、処理はステップＳ８１に進み、パターンの縦方向の座標ｐｙに１を加える。次に，ステップＳ８２では、パターンの縦方向について最下部まで処理が終了しているかどうかを調べる。すなわち、ｐｙ＝ｍであるかどうかを調べる。その結果、ｐｙ＝ｍであると判定される場合には（Ｓ８２：ＹＥＳ）、ｐｙを０に初期化する（Ｓ８３）。ｐｙ＝ｍでない場合には（Ｓ８２：ＮＯ）、ステップＳ８３をスキップする。
【００５６】
次にステップＳ８４では描画データの次の行の画素について処理を行う為にｙ座標に１を加える。そして、ステップＳ８５では、ｙ座標が最終行まで達しているかどうかを調べる。すなわち、ｙ＝Ｍであるかどうかを調べる。ｙ＝Ｍである場合は（Ｓ８５：ＹＥＳ）、全ての描画データについて処理が終了していることになるので、処理は終了する。ｙ＝Ｍではないと判定される場合には（Ｓ８５：ＮＯ）、ｙ方向の次の行についてステップＳ７２からの処理が行われる。
【００５７】
ステップＳ７２からＳ８５の一連の処理を繰り返すことによって、図７の例で示すように、描画データ領域１１１内はパターン１１５によって塗りつぶされ、符合１１７で示すような塗りつぶし結果のデータが得られる。
【００５８】
次に、図３のステップＳ２２における、パターンが同一色であるか否かを検出するための検出処理について説明する。図８は、検出処理（Ｓ２２）の一例としての動作を表すフローチャートである。図８の例では、パターンの先頭座標の画素の値を判定基準にして、先頭の次の画素から最後の画素まで順番に、判定基準と同一色であるか否かを調べる。
【００５９】
すなわち、始めにステップＳ１０１において、パターンの先頭座標の画素のデータ（値）を読み出す。それからステップＳ１０２において、次の座標の画素が、判定基準（先頭座標の画素の値）と同じ値であるかどうかを調べる。ここで、同じ値でないと判定されると（Ｓ１０２：ＮＯ）、パターンは同一色ではないことになるので、ステップＳ１０５において非同一色であることを記憶しておく。
【００６０】
一方、ステップＳ１０２において、同じ値であると判定される場合には（Ｓ１０２：ＹＥＳ）、処理はステップＳ１０３に進み、対象の座標がパターンの最後まで達しているかどうかを確認する。その結果、パターンの最後ではない場合には（Ｓ１０３：ＮＯ）、処理はステップＳ１２に戻り、さらに次の座標の画素について、判定基準と同一であるか否かが調べられる。
【００６１】
一方、ステップＳ１０３においてパターンの最後に達していると判定されるのは、パターンが全て同一色である場合に対応する。したがって、この場合（Ｓ１０３：ＹＥＳ）、ステップＳ１０４において、パターンが同一色であることを記憶する。
【００６２】
ステップＳ１０４またはＳ１０５の後、処理は図３のプリンタ言語処理に戻る。図３のプリンタ言語処理のステップＳ２３での判定では、ステップＳ１０４またはＳ１０５で記憶した判定結果が用いられる。
【００６３】
なお、パターンが同一色であるか否かを検出するための検出処理は、図８のように先頭座標から順に判定基準と比較していく構成以外にも、座標を飛び飛びに調べていく構成など、様々な例があり得る。図９に、検出処理の別の例としての動作を表すフローチャートを示す。図９の例では、パターンの先頭の画素と真ん中の画素とが同一であるか否か（Ｓ１３２）について、および、パターンの先頭の画素と最後の画素とが同一であるか否か（Ｓ１３３）について先に調べ、その後、上記図８と同じ処理、つまり先頭の画素から順番に判定基準と比較していく処理を行う。なお、図９において、図８と同一の処理ステップについて同一のステップ番号を付した。
【００６４】
図９の処理では始めに先頭の画素のデータが読み出され（Ｓ１３１）、ステップＳ１３２において、パターンデータの先頭の画素と真ん中の画素とが同一であるか否かを調べる（Ｓ１３２）。ここで、同一ではないと判定される場合には（Ｓ１３２：ＮＯ）、処理はステップＳ１３４に進み、パターンが非同一色であることが記憶される。
【００６５】
先頭の画素と真ん中の画素が同一である場合（Ｓ１３２：ＹＥＳ）、次にステップＳ１３３において、パターンの先頭の画素と最後の画素とが同一であるか否かが調べられる。ここで、同一ではないと判定される場合には（Ｓ１３３：ＮＯ）、処理はステップＳ１３４に進み、パターンが非同一色であることが記憶される。ステップＳ１３３において同一色であると判定された場合には（Ｓ１３３：ＹＥＳ）、処理はステップＳ１０１（図８）に進み、以後、図８と同じ処理が行われる。
【００６６】
図９の処理では、始めに先頭と真ん中の画素、および、先頭と最後の画素を調べている。通常、画像は、１つの画素の周囲は同一色である傾向を持つので、図９のような処理を採用することによって、パターンが非同一色であることを比較的早く検出できる場合がある。その他、パターンが非同一色であることを比較的早く検出する方法として、１ライン毎に調査する方法、或いは、始めに１ライン置きに調査してから残りのラインを調査する方法等も有効である。
【００６７】
上記図８、図９は、パターンの色が完全に一致している場合に同一色であるとみなす場合の例であった。しかしながら、パターンの個々の画素間の相違が所定の範囲内にある場合に、同一色であるとみなして、指定色による塗りつぶし処理の対処としても良い。図１０は、このような検出処理の動作の例である。
【００６８】
図１０に示す検出処理は、パターンを構成する全画素のＲＧＢ各成分の階調のばらつきが所定幅以内に収まっている場合に、同一色であるとみなす処理である。なお、各画素は、それぞれ０〜２５５の数値で表されるＲ，Ｇ，Ｂの３つの色成分データで表されているものとする。始めにステップＳ２０１において、パターンの先頭の画素のデータＲ，Ｇ，Ｂを読み込む。ここで読み込まれた各色成分のデータＲ，Ｇ，Ｂを、各色成分の最大値を表す変数Ｒｍａｘ，Ｇｍａｘ，Ｂｍａｘにそれぞれ代入しておく。さらに、各色成分のデータＲ，Ｇ，Ｂを、色成分の最小値を表す変数Ｒｍｉｎ，Ｇｍｉｎ，Ｂｍｉｎにそれぞれ代入しておく。
【００６９】
ステップＳ２０３では、次の画素のＲ，Ｇ，Ｂのデータを読み込む。ステップＳ２０３で読み込んだＲ成分データが、Ｒｍａｘより大きい場合（Ｓ２０４：ＹＥＳ）、ＲｍａｘにステップＳ２０３で読み込んだＲ成分データを代入する。ステップＳ２０４で、Ｒ成分データがＲｍａｘ以下であると判定されると（Ｓ２０４：ＮＯ）、ステップＳ２０５をスキップする。
【００７０】
次にステップＳ２０６では、Ｓ２０３で読み込んだＲ成分データが、Ｒｍｉｎよりも小さいかどうかを判定する。Ｒ成分データが、Ｒｍｉｎよりも小さい場合（Ｓ２０６：ＹＥＳ）、ＲｍｉｎにステップＳ２０３で読み込んだＲ成分データを代入する。ステップＳ２０６で、Ｒ成分データがＲｍｉｎ以上であると判定されると（Ｓ２０６：ＮＯ）、ステップＳ２０７をスキップする。
【００７１】
以上の処理により、ステップＳ２０３で読み込んだ画素のＲ成分データに関して、Ｒｍａｘ、Ｒｍｉｎが更新された。次にステップＳ２０８では、ＲｍａｘとＲｍｉｎとの差を調べる。この差が、２ｎ以内であれば（Ｓ２０８：ＮＯ）、処理はステップＳ２０９に進む。一方、ステップＳ２０８において、ＲｍａｘとＲｍｉｎとの差が、２ｎより大きいと判定される場合には（Ｓ２０８：ＹＥＳ）、パターンは非同一色であるとみなされる。すなわち、ステップＳ２２１において、パターンが非同一色であることが記憶される。ステップＳ２２１の後、処理は図２のプリンタ言語処理に戻る。
【００７２】
次にステップＳ２０９では、ステップＳ２０３で読み込んだＧ成分データが、Ｇｍａｘより大きい場合（Ｓ２０９：ＹＥＳ）、ＧｍａｘにステップＳ２０３で読み込んだＧ成分データを代入する。ステップＳ２０９で、Ｇ成分データがＧｍａｘ以下であると判定された場合には（Ｓ２０９：ＮＯ）、ステップＳ２１０をスキップする。
【００７３】
次にステップＳ２１１では、Ｓ２０３で読み込んだＧ成分データが、Ｇｍｉｎよりも小さいかどうかを判定する。Ｇ成分データがＧｍｉｎよりも小さい場合（Ｓ２１１：ＹＥＳ）、ＧｍｉｎにステップＳ２０３で読み込んだＧ成分データを代入する。ステップＳ２１１においてＧ成分データがＧｍｉｎ以上であると判定されると（Ｓ２１１：ＮＯ）、ステップＳ２１２をスキップする。
【００７４】
以上の処理により、ステップＳ２０３で読み込んだ画素のＧ成分データに関して、Ｇｍａｘ、Ｇｍｉｎが更新された。次にステップＳ２１３では、ＧｍａｘとＧｍｉｎとの差が調べられる。この差が、２ｎ以内であれば（Ｓ２１３：ＮＯ）、処理はステップＳ２１４に進む。一方、ステップＳ２１３において、ＲｍａｘとＲｍｉｎとの差が、２ｎより大きいと判定される場合には（Ｓ２１３：ＹＥＳ）、パターンは非同一色であるとみなされる。すなわち、ステップＳ２２１において、パターンデータが非同一色であることが記憶される。
【００７５】
次にステップＳ２１４では、ステップＳ２０３で読み込んだＢ成分データが、Ｂｍａｘより大きい場合（Ｓ２１４：ＹＥＳ）、ＢｍａｘにステップＳ２０３で読み込んだＢ成分データが代入される。ステップＳ２１４で、Ｂ成分データがＢｍａｘ以下であると判定された場合には（Ｓ２１４：ＮＯ）、ステップＳ２１５をスキップする。
【００７６】
次にステップＳ２１６では、Ｓ２０３で読み込んだＢ成分データが、Ｂｍｉｎよりも小さいかどうかを判定する。Ｂ成分データがＢｍｉｎよりも小さい場合（Ｓ２１６：ＹＥＳ）、ＢｍｉｎにステップＳ２０３で読み込んだＢ成分データを代入する。ステップＳ２１６においてＢ成分データがＢｍｉｎ以上であると判定されると（Ｓ２１６：ＮＯ）、ステップＳ２１７をスキップする。
【００７７】
以上の処理により、ステップＳ２０３で読み込んだ画素のＢ成分データに関して、Ｂｍａｘ、Ｂｍｉｎが更新された。次にステップＳ２１８では、ＢｍａｘとＢｍｉｎとの差が調べられる。この差が、２ｎ以内であれば（Ｓ２１８：ＮＯ）、処理はステップＳ２１９に進む。一方、ステップＳ２１８において、ＢｍａｘとＢｍｉｎとの差が、２ｎより大きいと判定される場合には（Ｓ２１８：ＹＥＳ）、パターンは非同一色であるとみなされる。すなわち、処理はステップＳ２２１に進み、パターンが非同一色であることが記憶される。
【００７８】
ステップＳ２１９では、処理の対象の画素がパターンの最後に達しているか否かが調べられる。パターンの最後に達していない場合には（Ｓ２１９：ＮＯ）、処理はステップＳ２０３に戻り、さらに次の画素が、ステップＳ２０４〜Ｓ２１８に至る一連の検査の対象とされる。
【００７９】
ステップＳ２１９において、パターンの最後に達していると判定される場合には（Ｓ２１９：ＹＥＳ）、パターンの全ての画素について、各色成分のデータの最大値と最小値との差が２ｎ以内であることになる。したがって、この場合、処理はステップＳ２２０に進み、パターンが同一色であることが記憶される。なお、以上で説明した検出処理（図１０）において、ＲＧＢ各成分の画素の値のばらつきが±２の範囲内であるときに同一色とみなすようにする為には、ｎ＝２（つまり、２ｎ＝４）とすれば良い。
【００８０】
以上のような図１０に示す検査処理を経ることによって、図３のプリンタ言語処理におけるステップＳ２３での判定では、パターンを構成する画素のＲＧＢ各成分の階調の画素間のばらつきが２ｎ以内である場合には、同一色であると判定されることになる。その結果、パターンを構成する画素のＲＧＢ各成分の階調の画素間のばらつきが２ｎ以内であれば、そのようなパターンについては、指定色による塗りつぶし処理（図３）が適用される。
【００８１】
以上のように図１０の処理は、指定色による塗りつぶし処理の対象とすべきパターンを、各画素が完全に同一である場合から、各画素の相違が±ｎ以内である場合にまで拡張している。したがって、図３の場合よりもさらに、プリンタ言語処理の処理速度を高めることが可能である。
【００８２】
なお、図１０の検査処理は、パターンの先頭からの順に処理を行う場合の例である。図１０の検査処理を変形することによって、パターンの先頭の画素と真ん中の画素との相違、および、パターンの先頭の画素と最後の画素との相違を最初に調べるようにしても良い。
【００８３】
以上説明した本発明については、様々な変形例があり得る。例えば、上記実施形態は、プリンタ言語処理（図３）を行うプリンタ言語処理部１１０は印字装置側にある場合の構成であった（図２参照）。しかしながら、図３のプリンタ言語処理相当の処理をＰＣ等の外部装置側で実行し、印字装置に対してはラスタデータが提供されるような構成も有り得る。
【００８４】
図２のステップＳ２２における同一色であるか否かの検出処理は、ＰＣ５０側から指定される解像度に応じて、異なる検出処理のアルゴリズムが用いられるようになっていても良い。例えば、ＰＣ５０側からの解像度の指定が低解像度である場合に、上記図１０で示したような±ｎの範囲での同一性の検出が行われ、解像度が標準である場合には上記図８で示したような画素データの完全な一致が検出されるよう構成されていても良い。
【００８５】
また、上記実施形態は、プリンタ言語としての印字データを処理して印字を行う印字装置に関するものであった。しかしながら、パターンの内容を分析して、所定の条件が満たされれば指定色による塗りつぶし処理を行うようにしてラスタデータの生成を高速化するという本発明の構成は、プリンタ言語に基づいてディスプレイ等に表示する為の画像を生成する処理においても同様に適用することが可能である。
【００８６】
【発明の効果】
以上説明したように本発明によれば、パターンの内容に応じて、所定の条件が満たされる場合に、指定色による塗りつぶし処理の対象とすることで、ページ記述言語に基づくラスタ画像の生成の処理を高速化することができる。
【図面の簡単な説明】
【図１】本発明の実施形態としての印字装置と、印字装置に接続されたパーソナルコンピュータのハードウェア構成を表すブロック図である。
【図２】図１の構成を持つＰＣおよび印字装置が実現する機能を表す機能ブロック図である。
【図３】プリンタ言語処理の全体の動作を表すフローチャートである。
【図４】色による塗りつぶし処理の詳細の動作を表すフローチャートである。
【図５】色による塗りつぶし処理の例として、文字Ａを色で塗りつぶす動作を模式的に表す図である。
【図６】パターンによる塗りつぶし処理の詳細を表すフローチャートである。
【図７】パターンによる塗りつぶし処理の例として、文字Ａをパターンで塗りつぶす動作を模式的に表す図である。
【図８】図３のフローチャートにおける検出処理として、画素の値の完全に同一のときに同一色とみなす処理を表すフローチャートである。
【図９】図３のフローチャートにおける検出処理として、図８とは別の例を表すフローチャートである。
【図１０】図３のフローチャートにおける検出処理として、画素値の相違が±ｎの範囲内のときに同一色とみなす処理を表すフローチャートである。
【符号の説明】
２１  ＣＰＵ
２２  ＲＯＭ
２３  ＲＡＭ
２４  ＨＤＤ
２５  操作部
２６  表示部
２７  入出力インタフェース
５０  ＰＣ
５１  アプリケーション
５２  プリンタ言語作成部
１００  印字装置
１１０  プリンタ言語処理部
１２０  印字部
１２１  ＣＰＵ
１２２  ＲＯＭ
１２３  ＲＡＭ
１２４  操作部
１２５  表示部
【図１】
2005022092.tif 000004
【図２】
2005022092.tif 000005
【図３】
2005022092.tif 000006
【図４】
2005022092.tif 000007
【図５】
2005022092.tif 000008
【図６】
2005022092.tif 000009
【図７】
2005022092.tif 000010
【図８】
2005022092.tif 000011
【図９】
2005022092.tif 000012
【図１０】
2005022092.tif 000013