(57)【特許請求の範囲】
【請求項１】
グラデーション描画領域内における色の変化の度合いを取得する取得手段と、
前記取得手段で取得した色の変化の度合いに基づいて、前記グラデーション描画領域内の間引きレベルを決定する決定手段と、
前記グラデーション描画領域内の画素の色値を、前記間引きレベルによって決定される画素間隔で算出する算出手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記決定手段は、前記取得手段で取得された色の変化の度合いが小さいほど間引き量を多くするように間引きレベルを決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記取得手段は、前記グラデーション描画領域の幅と、グ該ラデーション描画領域内の色数に基づいて色の変化の度合いを取得することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記グラデーション描画領域の幅は、当該グラデーション描画領域を内包する最小の矩形領域の幅であることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
グラデーション描画領域内においてカラー出力される場合は、当該領域内の各色成分毎の輝度値の最大値と最小値との差のうち、最大の値を色数とすることを特徴とする請求項３に記載の画像処理装置。
【請求項６】
グラデーション描画領域が単色のグレースケールで出力される場合は、最高輝度レベルと最低輝度レベルの差を色数とすることを特徴とする請求項３に記載の画像処理装置。
【請求項７】
前記取得手段は、前記グラデーション描画領域のうちの最大の走査幅を有する部分について色変化の度合いを取得することを特徴とする請求項１に記載の画像処理装置。
【請求項８】
グラデーション描画領域内における色の変化の度合いを取得する取得工程と、
前記取得工程で取得した色の変化の度合いに基づいて、前記グラデーション描画領域内の間引きレベルを決定する決定工程と、
前記グラデーション描画領域内の画素の色値を、前記間引きレベルによって決定される画素間隔で算出する算出工程と
を備えることを特徴とする画像処理方法。
【請求項９】
前記決定工程は、前記取得工程で取得された色の変化の度合いが小さいほど間引き量を多くするように間引きレベルを決定することを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記取得工程は、前記グラデーション描画領域の幅と、グ該ラデーション描画領域内の色数に基づいて色の変化の度合いを取得することを特徴とする請求項８に記載の画像処理方法。
【請求項１１】
前記グラデーション描画領域の幅は、当該グラデーション描画領域を内包する最小の矩形領域の幅であることを特徴とする請求項１０に記載の画像処理方法。
【請求項１２】
グラデーション描画領域内においてカラー出力される場合は、当該領域内の各色成分毎の輝度値の最大値と最小値との差のうち、最大の値を色数とすることを特徴とする請求項１０に記載の画像処理方法。
【請求項１３】
グラデーション描画領域が単色のグレースケールで出力される場合は、最高輝度レベルと最低輝度レベルの差を色数とすることを特徴とする請求項１０に記載の画像処理方法。
【請求項１４】
前記取得工程は、前記グラデーション描画領域のうちの最大の走査幅を有する部分について色変化の度合いを取得することを特徴とする請求項８に記載の画像処理方法。
【請求項１５】
外部機器装置で作成されたページ記述言語データを受信する受信手段と、
受信したページ記述言語データを解析するデータ解析手段と、
解析したデータに対して展開処理を行う画像形成装置であって、
前記データ解析手段で解析されたデータがグラデーション描画を指示する場合に、請求項８乃至１４のいずれかに記載の画像処理方法を用いてグラデーション描画を行う描画手段と、
前記描画手段によって得られたグラデーション描画を、前記間引きレベルに基づいて拡大して出力する出力手段と
を備えることを特徴とする画像形成装置。
【請求項１６】
外部機器装置で作成されたページ記述言語データを受信する受信工程と、
受信したページ記述言語データを解析するデータ解析工程と、
解析したデータに対して展開処理を行う展開処理工程とを備える画像形成装方法であって、前記展開処理工程において、
前記データ解析工程で解析されたデータがグラデーション描画を指示する場合に、請求項８乃至１４のいずれかに記載の画像処理方法を用いてグラデーション描画を行う描画工程と、
前記描画工程によって得られたグラデーション描画を、前記間引きレベルに基づいて拡大して出力する出力工程と
を備えることを特徴とする画像形成方法。
【請求項１７】
アプリケーションによって作成されたプリントデータをページ記述言語に変換して出力する情報処理装置であって、
グラデーション描画領域について、請求項８乃至１４のいずれかに記載の画像処理方法を用いて取得される、当該グラデーション描画領域内の色値と間引きレベルを取得する処理手段と、
前記処理手段で取得された色値と間引きレベルを当該グラデーション描画のためのデータとして出力する出力手段と
を備えることを特徴とする情報処理装置。
【請求項１８】
アプリケーションによって作成されたプリントデータをページ記述言語に変換して出力する情報処理方法であって、
グラデーション描画領域について、請求項８乃至１４のいずれかに記載の画像処理方法を用いて取得される、当該グラデーション描画領域内の色値と間引きレベルを取得する処理工程と、
前記処理手段で取得された色値と間引きレベルを当該グラデーション描画のためのデータとして出力する出力工程と
を備えることを特徴とする情報処理方法。
【請求項１９】
請求項８乃至１４のいずれかに記載の画像処理方法をコンピュータによって実現するための制御プログラムを格納する記憶媒体。
【請求項２０】
請求項８乃至１４のいずれかに記載の画像処理方法をコンピュータによって実現するための制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像出力装置及び方法に関する。特に、ホストコンピュータ等の外部機器装置によって作成されたページ述言語（以後、ＰＤＬとする）データを受信し、ページ記述言語データを解析して、ラスタライズしたラスタデータをエンジンに出力する画像形成装置に好適な画像出力装置及び方法に関する。
【０００２】
【従来の技術】
近年、ホストコンピュータにおけるＤＴＰ（Desk Top Publishing）やプレゼンテーションソフトが高機能化し、容易に複雑な描画を表現することができるようになってきた。これらのアプリケーションソフトにより印刷を行う場合、複雑な描画データはプリンタドライバによって最適なＰＤＬデータに変換され、プリンタに送信される。プリンタが受信したＰＤＬデータは、プリンタコントローラにおいて解析処理を行い、コマンドに従って高速に展開処理し、プリンタエンジンのパフォーマンスを落とすことなく高速かつ高画質な出力を実現している。
【０００３】
【発明が解決しようとする課題】
しかしながら、ピクセル間で色を少しずつ変えて描画するグラデーション描画を行う場合、プリンタドライバでグラデーション描画コマンドのＰＤＬデータをプリンタに送信し、プリンタコントローラにおいて展開すると、
・グラデーション描画領域の全ての色を算出するのに非常に時間がかかる。
・グラデーション描画領域が大きいと非常に多くのメモリを必要とする。
といった課題がある。
【０００４】
また、ホストコンピュータのプリンタドライバにおいてグラデーション描画コマンドの展開処理を行う場合には、
・データ量の増加に伴ない、データ転送に時間がかかる。
といった問題がある。
【０００５】
結局、グラデーション描画においては、その展開処理をプリンタコントローラ側で行っても、ホストコンピュータ側で行っても、プリント処理のスループット、すなわちプリンタエンジンのパフォーマンスを低下させる要因となってしまう。
【０００６】
本発明は上記の課題に鑑みてなされたものであり、プリント処理のスループット、すなわちプリンタエンジンのパフォーマンスの低下を招くことなくグラデーション描画処理を遂行できる画像処理装置及び方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記の目的を達成するための本発明による画像処理装置は、
グラデーション描画領域内における色の変化の度合いを取得する取得手段と、前記取得手段で取得した色の変化の度合いに基づいて、前記グラデーション描画領域内の間引きレベルを決定する決定手段と、
前記グラデーション描画領域内の画素の色値を、前記間引きレベルによって決定される画素間隔で算出する算出手段とを備える。
【０００８】
また、上記の目的を達成するための本発明による画像処理方法は、
グラデーション描画領域内における色の変化の度合いを取得する取得工程と、前記取得工程で取得した色の変化の度合いに基づいて、前記グラデーション描画領域内の間引きレベルを決定する決定工程と、
前記グラデーション描画領域内の画素の色値を、前記間引きレベルによって決定される画素間隔で算出する算出工程とを備える。
【０００９】
また、本発明によれば、上記の画像処理方法を用いた画像形成装置及び方法、情報処理装置及び方法が提供される。
【００１０】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００１１】
＜第１実施形態＞
図１は第１の実施形態による画像形成システムの概略構成を示すブロック図である。
【００１２】
図１において１０１はホストコンピュータ等の外部機器、１０２は本実施形態によるグラデーション描画処理を行うレーザビームプリンタである。レーザビームプリンタ１０２において、１０５はプリンタエンジン部であり、イメージデータに基づいて周知の電子写真プロセスによって感光ドラム上に潜像を形成し、該潜像を現像し、これを用紙に転写して定着することにより画像記録を行う。また、１０３はコントローラ部であり、プリンタエンジン部１０５に接続され、ホストコンピュータ等の外部機器１０１から送られるコードデータ（ＥＳＣコード、各種ＰＤＬ等）を受け、このコードデータに基づいてドットデータからなるページ情報を生成し、プリンタエンジン部１０５に対して所定のインターフェース手段によってイメージデータを送信する。１０４はユーザ（操作者）とのインターフェースを行うパネル部であり、ユーザはパネル部１０４を操作することによって、プリンタ１０２に所定の動作を指示することができる。
【００１３】
図２は第１の実施形態によるレーザビームプリンタ１０２の機構模式図である。
【００１４】
図２において、２０１はプリンタ筐体、２０２は操作パネルである。操作パネル２０２には操作のためのスイッチ及びＬＥＤ表示器、ＬＣＤ表示器が配されている。これは図１において示したパネル部１０４の物理的側面である。２０３は制御ボード収納部であり、プリンタの印字プロセス制御を行うプリンタエンジン部１０５及び、プリンタ全体の制御とホストコンピュータからのデータを解析し、イメージデータに変換するプリンタコントローラ部１０３が収納される。
【００１５】
２１０は用紙を保持する用紙カセットであり、不図示の仕切り板によって電気的に用紙サイズを検知する機構を有する。２１１はカセット給紙クラッチであり、用紙カセット２１０上に裁置された用紙の最上位の用紙一枚のみを分離し、不図示の駆動手段によって分離した用紙を給紙ローラ２１２まで搬送させるカムである。カセット給紙クラッチ２１１は、給紙の度に間欠的に回転し、１回転に対応して１枚の用紙を給紙する。２１４はレジストシャッタであり、用紙を押圧して給紙を停止させる。給紙ローラ２１２は、用紙の先端部をレジストシャッタ２１４まで搬送する。２１９は手差し用トレイである。また、２１５は手差し給紙クラッチである。手差し給紙クラッチ２１５は用紙の先端をレジストシャッタ２１４まで搬送する。以上のような構成によって用紙カセット２１０及び手差し給紙用トレイ２１９から選択的に用紙を給紙することが可能となる。
【００１６】
プリンタエンジン部１０５は、プリンタコントローラ部１０３と所定の通信プロトコルによって通信を行い、プリンタコントローラ部１０３からの指示によって、カセット２１０、または手差し用トレイ２１９の中から採用する給紙手段を決定する。そして、印字開始指示によって上記の通り給紙を開始し用紙をレジストシャッタ２１４まで搬送する。
【００１７】
２０４はカートリッジであり、感光ドラム２０５及び、不図示のトナー保持部を有する。２０６はレーザドライバ、２０７は回転多面鏡、２０８は反射ミラー、２０９はビームディテクタである。レジストシャッタ２１４まで用紙が搬送されると、プリンタコントローラ部１０３から送られたイメージデータに応じてレーザドライバによってオンオフ駆動される不図示の半導体レーザから発射されるレーザビームは、回転多面鏡２０７により主走査方向に走査され反射ミラーを介して感光ドラム２０５上に導かれ結像し、主走査方向に走査して主走査ライン上に潜像を形成する。このレーザビームの発射に同期してレジストシャッタ２１４は上方に駆動し、用紙の搬送をレーザビームの走査に同期させる。レーザビームの走査開始位置に配置されたビームディテクタ２０９は、レーザビームを検出することによって主走査の画像書出しタイミングを決定するための同期信号を形成し、プリンタコントローラ部１０３に送る。
【００１８】
その後用紙は、搬送ローラ２１３によって搬送され、感光ドラムは不図示のモータによって回転駆動され、現像器２２０によってトナー像として顕像化された後、用紙上に転写される。トナー像が転写された用紙はその後、定着ローラ２１６によりトナー像が加熱定着され、搬送ローラ２１７を経て、排紙ローラ２１８によりプリンタ筐体の排紙トレイに排紙される。
【００１９】
図３は、第１の実施形態によるプリンタコントローラ部１０３の構成を示すブロック図である。
【００２０】
図３において、３０１はパネルインターフェイスであり、パネル部１０４とのデータ通信によって、操作者からの諸設定、指示をパネル部１０４から受けとる。３０２はホストインターフェイスであり、ホストコンピュータ等の外部機器１０１との信号の入出力部である。３０３はエンジンインターフェイスであり、エンジン部１０５との信号の入出力部として機能し、不図示の出力バッファレジスタからデータ信号送出を行なうとともにプリンタエンジン部１０５との通信制御を行なう。
【００２１】
３０４はＣＰＵであり、プリンタコントローラ部１０３全体の制御を司る。３０５は読み出し専用メモリ（ＲＯＭ）であり、ＣＰＵ３０４によって実行される、以下の３１０〜３１４に示される処理機能を実現するための制御コードを格納する。
【００２２】
３１０はデータ解析部であり、ホストインターフェース３０２において受信したデータを解析し、所定の処理に振り分ける。３１１は間引きレベル判定部であり、データ解析部３１０においてグラデーション描画であると判定されたときに、当該グラデーション描画の間引きレベルを決定する。３１２はエッジ位置算出部であり、グラデーション描画におけるスキャンライン毎のエッジの座標を計算する。３１３はグラデーションデータ作成部であり、エッジ位置算出部により算出されたエッジ間のピクセルそれぞれに対するデータを作成する。３１４は描画処理部であり、作成されたデータをラスタデータに展開する。データ解析部３１０、間引き判定部３１１、エッジ位置算出部３１２、グラデーション作成部３１３、描画処理部３１４は、それぞれＲＯＭ３０５に格納された制御プログラムであり、ＣＰＵ３０４がこれらの制御プログラムを実行することにより実現される機能である。
【００２３】
３０６はＲＡＭであり、ＣＰＵ３０４の使用する一時記憶用メモリであり、以下のメモリ領域を含む。３１５は受信バッファであり、ホストインターフェース３０２において受信したデータを一時的に格納しておく。３１６は頂点情報メモリであり、グラデーション描画において指定された座標と色情報を格納する。３１７はオブジェクトメモリであり、グラデーション作成部３１３において作成されたグラデーションイメージを含む、種々のオブジェクトイメージを格納する。３１８はラスタメモリであり、オブジェクトメモリ３１７に格納されたオブジェクトを描画処理部３１４によって所定の解像度、階調に展開したデータを格納する。
【００２４】
３０７はエンジンインターフェイスであり、不揮発性のメモリ手段であるＥＥＰＲＯＭで構成される。３０８はＤＭＡ制御部であり、ＣＰＵ３０４からの指示によりラスタメモリ内のビットマップデータを、エンジンインターフェイス３０３に転送する。
【００２５】
３０９は、アドレスバス及びデータバスを持つシステムバスである。上述したパネルインターフェイス３０１、ホストインターフェイス３０２、エンジンインターフェース３０３、ＣＰＵ３０９、ＲＯＭ３０５、ＲＡＭ３０６、ＥＥＰＲＯＭ３０７及びＤＭＡ制御部３０８は、各々システムバス３０９に接続され、システムバス３０９上にある全ての機能部にアクセス可能である。
【００２６】
なお、ＣＰＵ３０４を制御する制御コードは、不図示のシステムクロックによってタスクと称されるロードモジュール単位に時分割制御するＯＳと、機能単位に動作する複数のロードモジュール（タスク）によって構成されるものとする。
【００２７】
次に、ホスト側のシステムの説明を行う。図４は、第１の実施形態におけるホストコンピュータ等の外部機器１０１の概略構成を説明するブロック図である。図４において４０１はホストコンピュータであり、プリントデータ及び制御コードを含む印刷情報を印刷装置３００に出力する。ホストコンピュータ４０１は、入力デバイスであるところのキーボード４１１やポインティングデバイスであるところのマウス４１２と、表示デバイスであるディスプレイ４１０を合わせた一つのコンピュータ・システムとして構成されている。なお、本実施形態では、ホストコンピュータ４０１は、ＭＳ−ＤＯＳ（商標）、Ｗｉｎｄｏｗｓ（商標）などの基本ＯＳによって動作しているものとする。
【００２８】
ホストコンピュータ４０１について、本実施形態に関する機能的な部分に注目し、基本ＯＳ上での機能を大きく分類すると、アプリケーション４０２、画像情報処理手段であるところのグラフィックシステム４０３、データ格納部、印刷データ格納制御部および印刷装置との通信部を含むスプールシステム４０４、ユーザインターフェイスを実現するＵＩ処理部４０５に大別される。
【００２９】
アプリケーション４０２は、例えば、ワープロや表計算などの基本ソフトウェア上で動作する応用ソフトウェアを指すものである。グラフィックシステム４０３は、基本ＯＳの機能の一部であるGraphic Device Interface（以後、ＧＤＩと記す）４０６とそのＧＤＩから動的にリンクされるデバイスドライバであるところのプリンタドライバ４０７によって構成されている。ここでプリンタドライバ４０７はＧＤＩとしてコールされる描画命令を、ＰＤＬ言語に変換するのが大きな役割である。ＧＤＩ描画命令やドライバの設定により本実施形態に関連するグラデーション描画命令を受け取り、適切な処理を行う。
【００３０】
スプールシステム４０４は、グラフィックシステム４０３の後段に位置するプリンタ特有のシステムであり、グラフィックシステム４０３において作成されたＰＤＬデータを一時的に格納するスプーラ４０８と、スプーラ４０８に格納されたＰＤＬデータを読み出し、印刷装置であるレーザビームプリンタ１０２に送信するプリンタＩ／Ｆ４０９から構成されるものである。
【００３１】
基本ＯＳによって、上述したこれらの名称や機能的な枠組みは若干異なる場合があるが、本実施形態で言う各技術的手段が実現できるモジュールであればよく、それらの名称や枠組みは本実施形態において実質的なものではない。例えば、スプーラと呼ばれるものは、別のＯＳにおいてプリント・キューと呼ばれるモジュールに処理を組み込むことによっても実現可能である。
【００３２】
なお一般的に、これらの各機能モジュールを含むホストコンピュータ４０１は、図示しないが中央演算処理装置（ＣＰＵ）、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ハードディスクドライブ（ＨＤＤ）、各種入出力制御部（Ｉ／Ｏ）などのハードウェアのもとで、基本ソフトと呼ばれるソフトウェアがその制御を司り、その基本ソフトの元で、それぞれの応用ソフト、システムプロセスが機能モジュールとして動作するようになっている。
【００３３】
次に本実施形態のグラデーション描画の処理について説明する。
【００３４】
ユーザがアプリケーションなどを使って、プレゼンテーションデータやＤＴＰデータを作成し、そのデータを印刷する場合、プリンタドライバはＧＤＩとしてコールされる描画命令をＰＤＬデータに変換する。このとき、グラデーション指定した図形が含まれていると、グラデーション指定した図形に対してグラデーション描画命令が発行される。
【００３５】
発行されるグラデーション描画命令は３種類ある。すなわち、
（１）矩形の対角の２頂点の座標とそれぞれの頂点の色を指定し、一方の頂点の色からもう一方の頂点の色へ水平方向に変化させる水平グラデーション指定（図５）と、
（２）一方の頂点の色からもう一方の頂点の色へ垂直方向に変化させる垂直グラデーション指定（図６）と、
（３）三角形の３頂点の座標とそれぞれの頂点の色を指定し、３つの頂点内で色を変換させる三角グラデーション指定（図７）である。
【００３６】
グラデーション描画命令も他の描画命令と同様にＰＤＬデータに変換され、印刷装置（本実施形態ではレーザビームプリンタ１０２）に送信される。そして、プリンタコントローラにおいてこのグラデーション描画命令を受信すると、以下に示す式に従ってグラデーション描画を行う。
【００３７】
（１）水平グラデーション指定における矩形領域内の色の算出
水平グラデーション指定における矩形領域内の色は以下の式で算出される。矩形の頂点１の座標を(X1, Y1)、色を(R1, G1, B1)とし、頂点２の座標を(X2, Y2)、色を(R2, G2, B2)とし、矩形領域内のある点の座標の(X, Y)の色(R, G, B)は
R = (R2 * (X - X1) + R1 * (X2 - X)) / (X2 - X1)
G = (G2 * (X - X1) + G1 * (X2 - X)) / (X2 - X1)
B = (B2 * (X - X1) + B1 * (X2 - X)) / (X2 - X1)
となる。水平方向グラデーションはＹ座標には依存せず、同じＸ座標の領域は全て同じ色で描画することとなる。
【００３８】
（２）垂直グラデーション指定における矩形領域内の色の算出
垂直グラデーション指定における矩形領域内の色は以下の式で算出される。矩形の頂点１の座標を(X1, Y1)、色を(R1, G1, B1)とし、頂点２の座標を(X2, Y2)、色を(R2, G2, B2)とし、矩形領域内のある点の座標の(X, Y)の色(R, G, B)は
R = (R2 * (Y - Y1) + R1 * (Y2 - Y)) / (Y2 - Y1)
G = (G2 * (Y - Y1) + G1 * (Y2 - Y)) / (Y2 - Y1)
B = (B2 * (Y - Y1) + B1 * (Y2 - Y)) / (Y2 - Y1)
となる。垂直方向グラデーションはＸ座標には依存せず、同じＹ座標の領域は全て同じ色で描画することとなる。
【００３９】
（３）三角グラデーション指定における三角形領域内の色の算出
三角グラデーション指定における三角形領域内の色は以下の式で算出される。三角形の頂点１の座標を(X1, Y1)、色を(R1, G1, B1)とし、頂点２の座標を(X2, Y2)、色を(R2, G2, B2)とし、頂点３の座標を(X3, Y3)、色を(R3, G3, B3)とし、三角形領域内のある点の座標の(X, Y)の色(R, G, B)は
R = (R1 * S1 + R2 * S2 + R3 * S3) / (S1 + S2 + S3)
G = (G1 * S1 + G2 * S2 + G3 * S3) / (S1 + S2 + S3)
B = (B1 * S1 + B2 * S2 + B3 * S3) / (S1 + S2 + S3)
、ここで、
S1は頂点２、頂点３、領域内座標(X, Y)を３つの頂点とした三角形の面積
S2は頂点１、頂点３、領域内座標(X, Y)を３つの頂点とした三角形の面積
S3は頂点１、頂点２、領域内座標(X, Y)を３つの頂点とした三角形の面積
となる。
【００４０】
次に、本実施形態の印刷装置におけるグラデーション描画のフローチャートについて図８、図９、図１０を用いて説明する。
【００４１】
図８は印刷装置におけるデータ受信から出力までの処理を示したフローチャートである。ホストコンピュータ４０１のプリンタＩ／Ｆ４０９からＰＤＬデータが送信されると、印刷装置１０２はホストＩ／Ｆ３０２を介してＰＤＬデータを受信する（ステップＳ５０１）。受信されたＰＤＬデータは逐次受信バッファ３１５に格納される。印刷装置１０２のデータ解析部３１０は、受信バッファ３１５に格納されたデータを読み出し、コマンド解析を行う（ステップＳ５０２）。このコマンドの解析結果に応じて各種処理が実行されることになる。
【００４２】
このコマンド解析の結果により、当該コマンドがグラデーション描画であるかどうかが判定される（ステップＳ５０３）。グラデーション描画であった場合は、間引きレベル判定部３１１においてグラデーション描画における間引きレベルの算出を行う（ステップＳ５０４）。そして、算出された間引きレベルに基づいて拡大値を決定し、後のステップＳ５０６で作成される当該グラデーション描画領域のグラデーションイメージデータを、その拡大値で拡大して描画するよう描画処理部３１４に指定する（ステップＳ５０５）。更に、間引きレベルに従ってグラデーションイメージデータを作成し、オブジェクトメモリ３１７に格納する（ステップＳ５０６）。グラデーションイメージデータの作成が終了すると、残りのＰＤＬについて再びデータ解析を行う。
【００４３】
本実施形態では、間引きレベルの値から１を差し引いた数の画素が間引かれ、残った画素について上述したグラデーション描画における色値が算出される。たとえば、図１２には、頂点Ａ，Ｂ，Ｃを有する三角形のグラデーション描画領域が示されている。そして、当該描画領域中の一走査ライン（１１００画素）について詳細が示されている。図１２に示されるように、間引きレベルが４に指定されると（mabiki=4）、ステップＳ５０６では４−１＝３個の画素が間引かれて、４画素毎に（３画素おきに）グラデーション描画の色値が計算される。すなわち、図１２において、×印の画素についてはグラデーション描画の色地は算出されないことになる。この結果、グラデーション描画は、１／４に縮小されたものとなるので、ステップＳ５０５において間引きレベル４を拡大値として設定し、ラスタメモリへの展開描画時には、当該グラデーション画像を４倍するのである。
【００４４】
なお、ステップＳ５０４における間引きレベルの算出と、ステップＳ５０６におけるグラデーションイメージデータの作成については図９、図１０のフローチャートを参照して更に後述する。
【００４５】
一方、コマンド解析によりグラデーション描画以外の描画コマンドと判定された場合は、コマンドに対応した描画データを作成しオブジェクトメモリ３１７に格納する（ステップＳ５０３，Ｓ５０７、Ｓ５０８）。当該描画コマンドに関する描画を完了したならば、残りのＰＤＬについて再びデータ解析を行う。
【００４６】
更に、データ解析において当該コマンドがページ終了コマンドと判定した場合は、描画処理部３１４においてオブジェクトメモリ３１７に格納されている描画データをラスタメモリ３１８に所定の解像度、諧調で展開処理し、出力する（ステップＳ５０３，Ｓ５０７，Ｓ５０９）。
【００４７】
次に、ステップＳ５０４における間引きレベルの算出処理について説明する。図９は第１の実施形態による間引きレベル算出の詳細処理を示したフローチャートである。
【００４８】
まず、グラデーション描画命令により２点指定された矩形領域または、３点指定された三角形領域を含む矩形領域の幅Wdを算出する（ステップＳ６０１）。なお、以下の説明では、グラデーション描画領域として矩形領域或いは三角形領域を挙げて説明するが、他の多角形領域についても同様の手法で適用できることは、本実施形態の説明から当業者には明らかであろう。
【００４９】
次に、当該グラデーション描画領域における全体の色の変化量に対応する色数Cnumを算出する（ステップＳ６０２）。
【００５０】
ここで、幅Wdと色数Cnumの算出式は次のようになる。すなわち、グラデーション描画領域が２点指定の矩形領域の場合、当該矩形の頂点１の座標を(X1, Y1)、色を(R1, G1, B1)とし、頂点２の座標を(X2, Y2)、色を(R2, G2, B2)として、幅Wdは、
Wd = abs(X2 - X1) + 1
となり、色数Cnumは、
R = abs(R2 - R1) + 1
G = abs(G2 - G1) + 1
B = abs(B2 - B1) + 1
Cnum = max(R, G, B)
となる（ただし、absは絶対値を表す）。
【００５１】
また、グラデーション描画領域が３点指定の三角形であった場合は、当該三角形の頂点１の座標を(X1, Y1)、色を(R1, G1, B1)とし、頂点２の座標を(X2, Y2)、色を(R2, G2, B2)とし、頂点３の座標を(X3, Y3)、色を(R3, G3 B3)として、幅Wdは、
Wd = max(X1, X2, X3) - min(X1, X2, X3) + 1
となり、色数Cnumは
R = max(R1, R2, R3) - min(R1, R2, R3) + 1
G = max(G1, G2, G3) - min(G1, G2, G3) + 1
B = max(B1, B2, B3) - min(B1, B2, B3) + 1
Cnum = max(R, G, B)
となる。
【００５２】
結局、本実施形態では、グラデーション描画領域を囲む最小の矩形の幅がWdであり、当該グラデーション領域内における各色成分毎の輝度値の最大値と最小値との差のうち、最も大きい値を色数としている。なお、色数は、グレースケール（単色）の場合には、グレースケール値（輝度値）の最大値と最小値との差（「Cmax - Cmin」と表す）をとることになる。
【００５３】
次に、以上のようにして得られた幅Wdを色数Cnumで除することにより、当該グラデーション描画における、１つの色変化に対する画素数を求め、求められた画素数に応じて間引きレベルを決定する。これは、グラデーション描画領域において１つの色が維持される画素数に対応するので、この画素数が大きいほどグラデーション描画における色変化の度合いは小さく、従って間引きレベルを大きくすることができる。
【００５４】
本実施形態では、以上の算出式により算出したWd, CnumのWd/Cnumが１６以上（ステップＳ６０３）の場合は、間引きレベルmabiki = 8とし（ステップＳ６０４）、Wd/Cnumが８以上１６未満（ステップＳ６０５）の場合は、間引きレベルmabiki = 6とし（ステップＳ６０６）、Wd/Cnumが８未満の場合は、間引きレベルmabiki = 4とする（ステップＳ６０７）。
【００５５】
なお、上記実施形態では、Wd/Cnumを用いたが、Cnum/Wdを求めることにより、グラデーション描画領域における色変化の程度を求め、これに応じて間引きレベルを決定する（すなわち、色変化が大きい場合は、色変化への追従性を挙げるために間引きレベルを小さくする）ようにしてもよい。Wd/Cnumを用いても、Cnum/Wdを用いても技術的意図が同じであることは明らかである。
【００５６】
図１１は、間引きレベル算出のフローチャートに従って間引きレベルを算出したときの一例を示した図である。グラデーション描画領域である三角形Ａ，Ｂ，Ｃを囲む最小の矩形領域が点線で示されており、Wdはこの矩形領域の幅（Xmax - Xmin=1200）である。また、本図形が単色であるとすると、その色数はCnum = Cmax - Cmin = 255 - 102 = 153となる。従って、Wd/Cnumの値は約７となり、間引きレベル（mabiki）は４となる。
【００５７】
ステップＳ５０６におけるグラデーションのイメージデータ作成は、以上の方法により算出した間引きレベルに応じて行われる。図１０は図８のグラデーションイメージデータ作成（ステップＳ５０６）の詳細処理を示したフローチャートである。
【００５８】
まず、ステップＳ７０１からＳ７０６では、グラデーション描画領域に指定された多角形を形成する辺を、ラスター順次で描画する際の左側エッジを決定する辺と右側エッジを決定する辺とに分けるとともに、ラスター走査を行うＹ座標の範囲（Ymin、Ymax）を決定する。ステップＳ７０１からＳ７０６では、その一例として、グラデーション描画領域が三角形の場合を示している。もちろん他の多角形についても類似の処理を適用できることは明らかであろう。
【００５９】
まず、三角グラデーション指定の３点の最小Ｙ座標の頂点をＡとし、残りの２点のうち最小Ｘ座標の頂点をＢとし、残りの頂点をＣとする（ステップＳ７０１）。頂点ＢのＹ座標が頂点ＣのＹ座標より小さい場合（ステップＳ７０２）は、左エッジのスキャンする経路をＡ→Ｂ→Ｃ、右エッジのスキャンする経路をＡ→Ｃとし（ステップＳ７０３）、Ｙ座標の最大値Ymaxに頂点ＣのＹ座標を設定する（ステップＳ７０４）。一方、頂点ＢのＹ座標が頂点ＣのＹ座標以上の場合は、左エッジのスキャンする経路をＡ→Ｂ、右エッジのスキャンする経路をＡ→Ｃ→Ｂとし（ステップＳ７０５）、Ｙ座標の最大値Ymaxに頂点ＢのＹ座標を設定する（ステップＳ７０６）。
【００６０】
以上の処理内容を図１６を参照して更に説明する。図１６は、左右エッジに対応する辺と、描画走査範囲の決定方法を説明する図である。
【００６１】
図１６（ａ）は、三角形のグラデーション描画領域を示しており、上記ステップＳ７０１の処理によって頂点Ａ，Ｂ，Ｃが設定されている。そして、上記ステップＳ７０３とＳ７０５における左右エッジの決定は、Ｙ座標が最大値の頂点とＹ座標が最小値の頂点を結ぶ線分によって多角形を構成する辺を分けることにより、各走査における左側端部と右側端部を決定する辺に分類することと同義である。たとえば図１６の（ａ）では、三角形ＡＢＣの頂点Ａ（Ymin）と頂点Ｃ（Ymax）を結ぶ線分により、辺ＡＢ及び辺ＢＣの組と、辺ＡＣに分類され、辺ＡＢ及び辺ＢＣが各走査の左側端部を、辺ＡＣが各走査の右側端部を決定することになる。
【００６２】
なお、図１６の（ｂ）では、他の多角形として６角形の場合を示した。この場合も上記処理と同様の考え方で、Ｙ座標が最小の頂点ＡとＹ座標が最大の頂点Ｄを結ぶ線分によって辺を分ける。そして、辺ＡＢ，ＢＣ，ＣＤが各走査の左側エッジを決定する辺に設定され、辺ＡＦ，ＦＥ，ＥＤが各走査の右側エッジを決定する辺に設定される。もちろん、多角形をラスター順次で描画する場合における走査範囲（Ｙ座標範囲）は、全頂点のＹ座標のうちの最小値から最大値（すなわちYmin〜Ymax）である。
【００６３】
また、図１６（ｃ）のように、Ｙ軸に対して平行な辺（辺ＢＣ）が存在した場合は、その辺は実際に左右エッジを決める辺とはならず、処理上は左側エッジ、右側エッジのどちらの組に属してもかまわない。本実施形態では、ステップＳ７０２においてYb=Ycの場合にステップＳ７０３へ進むので、左側エッジを決定する辺として扱っている。
【００６４】
また、図１６（ｄ）に示されるように、グラデーション描画領域が矩形の場合は、辺ＡＢと辺ＣＤがＹ軸と平行になるので、左側エッジを決める辺として辺ＡＣが、右側エッジを決める辺として辺ＢＤが選択される。
【００６５】
以上のようにして、スキャンする経路が決まったら変数Ｙの初期値として頂点ＡのＹ座標（Ymin）を設定し（ステップＳ７０７）、ステップＳ７１４においてＹ＞YmaxとなるまでステップＳ７０８〜Ｓ７１３の処理（ラスター順次によるグラデーション描画領域の描画）を繰り返す。
【００６６】
ステップＳ７０８〜Ｓ７１３の処理について説明する。まず、Ｙ座標における左エッジのＸ座標Xleftと右エッジのＸ座標Xrightを算出する（ステップＳ７０８）。次に、算出したXleftを変数Xに設定し（ステップＳ７０９）、座標(X, Y)の色を三角グラデーション指定の色算出式によって算出する（ステップＳ７１０）。算出した色の値はオブジェクトメモリ３１８に格納される。座標(X, Y)の色算出後、Xに間引きレベルmabikiを足し（ステップＳ７１１）、XとXrightを比較し（ステップＳ７１２）、XがXrightよりも大きくなるまでステップＳ７１０〜Ｓ７１２の処理を繰り返し行う。Ｙ座標の１スキャンライン分のグラデーションイメージの作成が終了したら、Yをインクリメントし（ステップＳ７１３）、YとYmaxを比較して（ステップＳ７１４）、 YがYmaxより大きくなるまでステップＳ７０８〜Ｓ７１４の処理を繰り返し行う。
【００６７】
以上のように、ステップＳ７１１で色を算出するピクセルを一定値ずつ（間引きレベルの値ずつ）スキップすることで色値算出の計算量を低減して処理効率を向上させ、色データに使用するメモリ量の削減を行っている。
【００６８】
図１２は、グラデーションイメージ作成のフローチャートに従って、スキャンラインのデータを作成したときの一例を示したものである。図１２では間引きレベルが“４”であり、たとえば幅Wd=1100の部分のグラデーション描画がWd=275に縮小されていることがわかる。同様に、図１５では、間引きレベルが“６”であり、たとえば幅Wd=1100の部分のグラデーション描画がWd=184に縮小されていることがわかる。
【００６９】
以上説明したように、第１の実施形態によれば、グラデーション描画領域内における色の変化の度合いを考慮してグラデーション描画領域内の色値を算出するピクセルの間隔を決定し、決定されたピクセル間隔でグラデーション描画領域内の色を算出する。このような手法を用いることにより、画質の著しい低下を回避しつつ、グラデーション描画領域の色の算出時間を短縮し、また、メモリ使用量を削減することが可能となり、グラデーション描画処理によるパフォーマンス低下を回避することが可能となる。
【００７０】
＜第２実施形態＞
第１実施形態においては、グラデーション描画領域が三角形であった場合に、当該三角形グラデーション領域を含む矩形領域の幅と色数により間引きレベルを算出している。第２の実施形態では、三角形グラデーション領域について、間引きレベルの算出の精度を更に向上させ、適切な間引きレベルによりグラデーションイメージを作成する。
【００７１】
図１３は第２の実施形態による間引きレベル算出（ステップＳ５０４）の詳細処理を示したフローチャートである。
【００７２】
三角グラデーション指定の３点の最小Ｙ座標の頂点をＡとし、残りの２点のうち最小Ｘ座標の頂点をＢとし、残りの頂点をＣとする（ステップＳ１００１）。頂点ＢのＹ座標Ybが頂点ＣのＹ座標Yc以下の場合（ステップＳ１００２）は、Yに頂点ＢのＹ座標Yb（ステップＳ１００３）、Xleftに頂点ＢのＸ座標Xbを設定し（ステップＳ１００４）、さらにＹ座標がYbのときの右エッジの座標を頂点Ａと頂点Ｃを結ぶ線上で算出し、Xrightに設定する（ステップＳ１００５）。
【００７３】
一方、頂点ＢのＹ座標Ybが頂点ＣのＹ座標Ycより大きい場合は、Yに頂点ＣのＹ座標Yc（ステップＳ１００６）、Xrightに頂点ＣのＸ座標Xcを設定し（ステップＳ１００７）、さらにＹ座標がYｃのときの左エッジの座標を頂点Ａと頂点Ｂを結ぶ線上で算出し、Xleftに設定する（ステップＳ１００８）。
【００７４】
以上のようにしてXleft, Xright, Yを設定した後、左エッジの（Xleft, Y）における色Cleftと、右エッジの（Xright, Y）における色Crightを算出し（ステップＳ１００９、Ｓ１０１０）、XleftとXright間の幅Wdと色数Cnumを算出する（ステップＳ１０１１）。なお、幅Wdと色数Cnumの算出式は以下のとおりである。すなわち、Cleftを(Rleft, Gleft, Bleft)、Crightを(Rright, Gright, Bright)とすると、幅Wdは
Wd = Xright - Xleft + 1
となり、色数Cnumは
R = abs(Rleft - Rright) + 1
G = abs(Gleft - Gright) + 1
B = abs(Bleft - Bright) + 1
Cnum = max(R, G, B)
となる。なお、色数Cnumは、グレースケール（単色）の場合には、単にグレースケール値（輝度値）の差（Cleft - Cright + 1）をとることになる。
【００７５】
そして、以上の算出式により算出したWd, CnumのWd/Cnumが１６以上の場合は、間引きレベルmabiki = 8とし（ステップＳ１０１２、Ｓ１０１３）、Wd/Cnumが８以上１６未満の場合は、間引きレベルmabiki = 6とし（ステップＳ１０１２、Ｓ１０１４、Ｓ１０１５）、Wd/Cnumが８未満の場合は、間引きレベルmabiki = 4とする（ステップＳ１０１２、Ｓ１０１４、Ｓ１０１６）。以上の方法により算出した間引きレベルに応じて、第１実施形態で上述したごとくグラデーションイメージデータ作成を行う。
【００７６】
図１４は、第２の実施形態による間引きレベル算出のフローチャートに従って間引きレベルを算出したときの一例を説明する図である。Yb＜Ycであるので、頂点ＢのＸ座標がXleft（=100）に設定され、その点の色がCleft（=103）に設定される。また、Y=Ybのときの辺ＡＣ上の点のＸ座標がXriht（=1199）に設定され、その点の色がCright（=230）に設定される。そしてステップＳ１０１１からＳ１０１６の処理により、mabiki=6が得られる。
【００７７】
以上のように、第２実施形態では、グラデーション描画においてもっとも長い走査範囲を有する部分における色の変化に基づいて間引きレベルを決定するので、間引きレベルの設定制度がより精度が向上する。
【００７８】
なお、第２実施形態では、三角形のグラデーション描画領域について説明したが、描画領域が他の多角形であった場合でも、走査幅の最大位置を検出し、当該走査部分における色の変化の度合いを求めるようにすればよく、本実施形態の思想は一般的な多角形に適用可能である。
【００７９】
なお、上記第１及び第２実施形態における間引きレベル算出方式は、４，６，８の３種類の間引きレベルに分けているが、条件をより詳細にしてさらに多くのレベル分けして、より適切な間引きレベルを算出するようにしてもよい。
【００８０】
また、第１及び第２実施形態の間引きレベル算出方式は、サイズや色数だけで間引きレベルを算出しているが、出力解像度、出力階調などの画質に影響のある設定条件も考慮して、より適切な間引きレベルを算出するようにしてもよい。例えば、出力解像度が６００dpiのときには間引きレベルを実施形態の通り８，４，２にし、３００dpiのときは間引きレベルをそれぞれ４，２，１にする。解像度が低い場合にも同じように間引くと画像が劣化してしまう場合があるが、上記のようにすればこれを防止することができる。
【００８１】
更に、第１及び第２実施形態においては、間引きレベル算出とグラデーションイメージ描画を主走査方向に対してのみ適用しているが、同様な方式により副走査方向に対しても適用するようにしてもよい。この場合、ステップＳ７１３において変数Yの値を間引きレベルに応じて増加することになる。なお、間引きレベル算出とこれを用いたグラデーションイメージ描画の副走査方向への適用は、上述した実施形態から当業者には明らかであるので、これ以上の説明を省略するが、このような適用により、図６に示すような、垂直グラデーション描画についても、水平グラデーション描画と同様の効果をあげることができる。
【００８２】
更に、上記実施形態では、プリンタコントローラ側でグラデーション描画を実行するが、ホストコンピュータ側でグラデーション描画を行う場合にも本実施形態を適用できる。すなわち、ホストコンピュータ側で間引きレベルを算出して、グラデーション描画を行うことにより、間引きレベルで縮小されたグラデーション描画が得られるので、この縮小されたグラデーション描画と間引きレベルをプリンタコントローラに与えるようにする。プリンタコントローラ側では、送信されたグラデーション描画を間引きレベルに応じて拡大し、画像出力するようにする。このようにすれば、グラデーション描画については縮小画像が送信されるので、送信データ量が低減され、スループットの低下を防止できる。
【００８３】
以上説明したように、上記各実施形態によれば、グラデーション描画においては、グラデーション描画の領域と領域内の色数を考慮して算出するピクセルの間隔を決定し、グラデーション描画領域内を算出したピクセル間隔で色を算出することにより、画質の著しい低下を回避しつつ、グラデーション描画領域の色の算出時間を短縮し、また、メモリ使用量を削減することが可能となり、パフォーマンス低下を回避することができる。
【００８４】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００８５】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８６】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００８７】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８８】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８９】
【発明の効果】
以上説明したように、本発明によれば、プリント処理のスループット、すなわちプリンタエンジンのパフォーマンスの低下を招くことなくグラデーション描画処理を遂行することが可能となる。
【図面の簡単な説明】
【図１】第１の実施形態による画像形成システムの概略構成を示すブロック図である。
【図２】第１の実施形態によるレーザビームプリンタ１０２の機構模式図である。
【図３】第１の実施形態によるプリンタコントローラ部１０３の構成を示すブロック図である。
【図４】第１の実施形態におけるホストコンピュータ等の外部機器１０１の概略構成を説明するブロック図である。
【図５】水平グラデーション描画を説明する図である。
【図６】垂直グラデーション描画を説明する図である。
【図７】三角形グラデーション描画を説明する図である。
【図８】印刷装置におけるデータ受信から出力までの処理を示したフローチャートである。
【図９】第１の実施形態による間引きレベル算出の詳細処理を示したフローチャートである。
【図１０】図８のグラデーションイメージデータ作成（ステップＳ５０６）の詳細処理を示したフローチャートである。
【図１１】間引きレベル算出のフローチャートに従って間引きレベルを算出したときの一例を示した図である。
【図１２】グラデーションイメージ作成のフローチャートに従って、スキャンラインのデータを間引きレベル４で作成したときの一例を示した図である。
【図１３】第２の実施形態による間引きレベル算出（ステップＳ５０４）の詳細処理を示したフローチャートである。
【図１４】第２の実施形態による間引きレベル算出のフローチャートに従って間引きレベルを算出したときの一例を説明する図である。
【図１５】グラデーションイメージ作成のフローチャートに従って、スキャンラインのデータを間引きレベル６で作成したときの一例を示した図である。
【図１６】左右エッジに対応する辺と、描画走査範囲の決定方法を説明する図である。
【図１】
0003796409.tif 000002
【図２】
0003796409.tif 000003
【図３】
0003796409.tif 000004
【図４】
0003796409.tif 000005
【図５】
0003796409.tif 000006
【図６】
0003796409.tif 000007
【図７】
0003796409.tif 000008
【図８】
0003796409.tif 000009
【図９】
0003796409.tif 000010
【図１０】
0003796409.tif 000011
【図１１】
0003796409.tif 000012
【図１２】
0003796409.tif 000013
【図１３】
0003796409.tif 000014
【図１４】
0003796409.tif 000015
【図１５】
0003796409.tif 000016
【図１６】
0003796409.tif 000017