(57)【特許請求の範囲】
【請求項１】
ホスト側から入力されたカラーページ記述情報に基づいて印刷記録を行うカラー印刷装置において、
前記カラーページ記述情報から所定の中間情報を作成する手段と、
前記ホスト側からのグラデーション情報を解析する手段と、
前記解析の結果が、二点間を結ぶ直線に垂直な方向へのグラデーション、一点を中心とし、その一点と他点を結ぶ線分と交差する同心円的なグラデーションの何れを示す場合も、座標、および、前記二点における前記解析の結果が示すカラー濃度情報を用いて内挿補間する同様の方法で、前記グラデーションをバックグランド情報として生成する生成手段と、
前記中間情報と前記バックグランド情報からレンダリング処理を行う処理手段とを備えることを特徴とするカラー印刷装置。
【請求項２】
前記グラデーション情報は、前記二種類のグラデーションのほか、三点を指定する三角形グラデーションを示す場合があり、前記生成手段は、前記方法により、前記三角形グラデーションを前記バックグラウンド情報として生成することを特徴とする請求項1に記載されたカラー印刷装置。
【請求項３】
前記グラデーション情報は、前記二点の間を等分する分割情報を含み、前記生成手段は、前記分割情報に基づき前記二点の間を等分して、分割した区間ごとに前記バックグラウンド情報を生成することを特徴とする請求項1に記載されたカラー印刷装置。
【請求項４】
さらに、前記レンダリング処理の前に、前記カラーページ記述情報に関してバンド・レンダリング処理が可能か否かを判定する判定手段を備え、
前記処理手段は、前記バンド・レンダリング処理が不可能と判定された場合、フルビットマップメモリを確保した後、対応する色階調でのレンダリング処理を行うデグレード処理を適用することを特徴とする請求項1に記載されたカラー印刷装置。
【請求項５】
前記デグレード処理は、印刷の解像度、階調の両方、あるいはいずれか一方を低下させることにより、グラデーションの色精度を再現する処理であることを特徴とする請求項4に記載されたカラー印刷装置。
【請求項６】
さらに、前記デグレード処理時に、ディザ処理による対応する色階調でのレンダリング処理を行うか、対応する色階調への単純カラーマッピングによるレンダリング処理を行うかを選択する選択手段を備えることを特徴とする請求項4に記載されたカラー印刷装置。
【請求項７】
ホスト側から入力されたカラーページ記述情報に基づいて印刷記録を行うカラー印刷方法において、
前記カラーページ記述情報から所定の中間情報を作成し、
前記ホスト側からのグラデーション情報を解析し、
前記解析の結果が、二点間を結ぶ直線に垂直な方向へのグラデーション、一点を中心とし、その一点と他点を結ぶ線分と交差する同心円的なグラデーションの何れを示す場合も、座標、および、前記二点における前記解析の結果が示すカラー濃度情報を用いて内挿補間する同様の方法で、前記グラデーションをバックグランド情報として生成し、
前記中間情報と前記バックグランド情報からレンダリング処理を行うことを特徴とするカラー印刷方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明はカラー印刷装置およびその方法に関し、例えば、カラーＤＴＰ分野等におけるカラー情報の処理に関する。
【０００２】
【従来の技術】
近年、高機能ワークステーションやパーソナルコンピュータの出現により、ユーザにとってフルカラーによる文字，図形，イメージデータのハンドリングが容易に行なえる環境が整った。その結果、カラー情報を用いた文書，ＯＨＰ，スライド，アート，デザイン等、広範な分野でカラー情報が利用されている。つまり、ホスト計算機側におけるカラー情報を用いたアプリケーションが、広範な分野に渡り利用されている。
【０００３】
【発明が解決しようとする課題】
しかしながら、ホスト側で作成したカラー情報を印刷装置にて記録する際には、ホスト側のＣＰＵパワーを利用し、ホスト側で文字，イメージ，図形を記録装置の解像度に合わせてイメージに展開した後、カラープリンタに送るというダムプリンタ、またはビデオプリンタと呼ばれる利用形態が一般的である。この方式は、プリンタ側の機構を簡単にし、ホスト側で多くの処理を実行する点に特徴があるが、カラー情報を取り扱う場合は、そのデータ量の多さから、通信に多くの時間がさかれることになり、スループットが非常に低下することがある。
【０００４】
一方、白黒プリンタにおいては、ページ記述言語（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ  、以後、単にＰＤＬと略す）方式、つまり、ホスト側から文字，図形，イメージを言語として送り、プリンタでＰＤＬ言語を解釈して、各種情報を記録装置の解像度に対応したラスタ・ページ・メモリ中にスキャン変換することにより、ページイメージを生成する方式が一般的である。また、最近では、この方式をカラープリンタにも適用したカラーＰＤＬプリンタが普及し始めている。
【０００５】
カラーＰＤＬプリンタにおいては製品が二極化され、インクジェットや熱転写型に代表される低価格カラープリンタにおいて、ページメモリは、白黒プリンタと同様にＹＭＣＫ４色それぞれに１ｂｉｔ分保有する。カラーイメージや色文字，色指定による塗りつぶしでは、基本的にディザ、あるいは、色精度を追求する際には誤差拡散法等により、疑似的に解像度を犠牲にして色階調を再現する場合が多い。
【０００６】
一方、カラーＬＢＰ等に代表される高価格カラープリンタは、１ピクセルにおいてＹＭＣＫ各色で複数の階調／濃度（例えば、各色２５６階調）を表現可能である。この印刷装置においては、上記の疑似階調処理を必要としないで、指定された色をそのまま記録装置内部で保持し、プリンタエンジンに送出するようになっている。
【０００７】
また、最近では、デザイン，グラフィック分野において色を精度良く表現する試みとして、グラデーション（指定された色間を徐々に補間してレンダリンクする）等を利用するアプリケーションが広がっている。イメージプリンタにおいては、ホスト側でレンダリングを行なうため容易に対処が可能であるが、ＰＤＬプリンタにおいては、代表的なＰＤＬ（例えば、Ｐｏｓｔ  Ｓｃｒｉｐｔ  ，ＰＣＬ，ＬＩＰＳ）がサポートしていない、ＣＰＵパワーが足りない等の理由により、グラデーション機能はＰＤＬネイティブなコマンドとして提供されていない。
【０００８】
そのため、ＰＤＬプリンタにおいても、イメージとして印刷するか、またはグラデーションにおける同じ色領域をポリゴンとして一定色で印刷している。その結果、ホストとプリンタ間での通信量が増大し、ＰＤＬプリンタの長所が発揮できないという問題がある。
【０００９】
本発明は、上述の問題を解決するためのもので、カラー印刷装置の内部でグラデーションを実現して、ホストとカラー印刷装置間における通信量を削減し、印刷のスループットを向上することを目的とする。
【００１０】
【課題を解決するための手段】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。本発明は、ホスト側から入力されたカラーページ記述情報に基づいて印刷記録を行うカラー印刷装置において、前記カラーページ記述情報から所定の中間情報を作成する手段と、前記ホスト側からのグラデーション情報を解析する手段と、前記解析の結果が、二点間を結ぶ直線に垂直な方向へのグラデーション、一点を中心とし、その一点と他点を結ぶ線分と交差する同心円的なグラデーションの何れを示す場合も、座標、および、前記二点における前記解析の結果が示すカラー濃度情報を用いて内挿補間する同様の方法で、前記グラデーションをバックグランド情報として生成する生成手段と、前記中間情報と前記バックグランド情報からレンダリング処理を行う処理手段とを備えることを特徴とする。
【００１１】
また、ホスト側から入力されたカラーページ記述情報に基づいて印刷記録を行うカラー印刷方法において、前記カラーページ記述情報から所定の中間情報を作成し、前記ホスト側からのグラデーション情報を解析し、前記解析の結果が、二点間を結ぶ直線に垂直な方向へのグラデーション、一点を中心とし、その一点と他点を結ぶ線分と交差する同心円的なグラデーションの何れを示す場合も、座標、および、前記二点における前記解析の結果が示すカラー濃度情報を用いて内挿補間する同様の方法で、前記グラデーションをバックグランド情報として生成し、前記中間情報と前記バックグランド情報からレンダリング処理を行うことを特徴とする。
【００１２】
【実施例】
以下、添付図面を参照して、本発明に係る好適な実施例を詳細に説明する。
【００１３】
図１は、本発明の実施例に係るカラー印刷装置（以下、装置という）の基本構成を示すブロック図である。以下、図１を参照して、本実施例に係る装置での処理の大まかな流れを説明する。
［全体構成の説明］
図１において、符号１は、カラーアプリケーションとしてカラー情報を作成し、対応するカラーデータをＰＤＬ形式に変換して、データを記録装置コントローラ１４に送出するワークステーションＷＳ（ホスト計算機）である。ここで、ホスト計算機１と記録装置１４間にＰＤＬデータが流れるが、通信形態はシリアル，ネットワーク，バス接続等、いずれの形態であっても構わないが、性能的には、高速通信路であることが望ましい。
【００１４】
記録装置コントローラ１４に送られたカラーＰＤＬデータは、入力バッファ２に格納され、プログラムＲＯＭ６内のＰＤＬコマンド解析プログラムによって、入力データがスキャンされる。符号３は、文字のビットパターンまたはアウトライン情報、及び文字ベースラインや文字メトリック情報を格納するフォントＲＯＭであり、文字の印字に際して利用される。また、パネルＩＯＰ４は、プリンタ本体に装着されるパネルにおけるスイッチ入力の検知やＬＣＤへの表示を司るＩ／Ｏプロセッサ及びファームウェアであり、ここでは、低価格のＣＰＵが利用される。
【００１５】
拡張Ｉ／Ｆ５は、プリンタの拡張モジュール（フォントＲＯＭ，プログラムＲＯＭ，ＲＡＭ，ハードディスク）とのインターフェース回路である。ＲＯＭ６には、本実施例に係る装置の制御ソフトウェアが格納され、ＣＰＵ１２が、本データを読み込んで所定の処理を実行する。また、管理用ＲＡＭ７はソフトウェアのための管理領域であり、入力されたＰＤＬを解析した中間データ形式（ページオブジェクト）に変換したデータや、グローバル情報等が格納される。
【００１６】
色変換ハードウェア８は、通常、ホスト計算機で利用されているモニタの表色系のＲＧＢ（加法混色）から、プリンタのインク処理で用いるＹＭＣＫ（減法混色）への変換を行なうハードウェアである。本処理は、色精度を追求する場合、非線形なログ変換、３×３のマトリックス演算等、演算パワーを要するものであり、ハード的には、テーブル・ルックアップ処理により高速化を図っている。
【００１７】
このパラメータは、最初はエンジンにとって最適なものに調節されているが、ホスト側から色変換方式を変更する要求があれば、テーブルの値を変更することにより、色変換アルゴリズムをユーザ定義のアルゴリズムに変えることが可能である。また、処理時間を犠牲にすれば、ＣＰＵ１２によってソフトウェアによる演算も可能である。
【００１８】
ハードレンダラ９は、カラーレンダリング処理をＡＳＩＣハードウェアで実行することにより、プリンタ１３（ＬＢＰ）のビデオ転送に同期して、実時間でレンダリング処理を行ない、少ないメモリ容量にてバンディング処理を実現する。また、ページバッファ１０は、ＰＤＬ言語によって展開されるイメージを格納する領域であり、上述のバンディング処理を行なうための最低２バンドのメモリ、つまり、
ページ幅＊２５６または５１２位のバンド高さ＊プレーン数として３（ＲＧＢ）または４（ＹＭＣＫ）＊ビット深さ＊２（バンド数分）
か、あるいは、バンディング処理ができない場合、ＬＢＰのようにエンジンに同期してイメージを転送する必要のある装置では、解像度かつ／または色階調を落したフルカラービットマップメモリを確保する必要がある。しかし、バブルジェット・プリンタ（以降、ＢＪと略す）のように、ヘッドの移動をコントローラ側が制御可能な装置の場合には、最低、上記バンドのメモリがあればよい。
【００１９】
ディザパターン１５は、バンディングにより、少ないメモリ容量で高速印字したり、デグレート処理（あるバンド中にリアルタイムでイメージ展開できない程、印字データが存在するか、または、ページオブジェクトが管理用ＲＡＭ７から溢れて、ページの途中で強制印字を行なう）において、少ないビット深さで色精度を再現するために利用する。換言すれば、ディザパターンは、基本的にオブジェクトの色深さに対してページ（バンド）メモリの深さが少ないときに使用する。
【００２０】
グラデーション処理１６は、本実施例に係る装置の中核をなすものであり、ホスト計算機１より送られてくるグラデーション情報を解析し、対応するバックグランド情報（後述する）を発生するソフトまたはハードウェアに相当する処理ブロックである。なお、この処理は非常にＣＰＵインテンシブな処理であるため、パフォーマンスを出すためにはハードウェアによる処理が望ましい。
【００２１】
プリンタインターフェース１１は、カラープリンタ１３（例えば、ＬＢＰ）との間で、ページバッファ１０の内容をプリンタ側の水平・垂直同期信号に同期して、ビデオ情報として転送したり、ＢＪにおけるヘッド制御及び複数ラインのヘッドサイズに合わせたビデオ情報の転送を行なう。このプリンタインターフェースでは、プリンタ１３との間に、さらに、プリンタへのコマンド送信やプリンタからのステータス受信を行なう。
【００２２】
また、ＣＰＵ１２は、記録装置コントローラ１４全体の処理を司る中央演算装置であり、プリンタ１３は、記録装置コントローラ１４から送出されるビデオ信号を印字するカラープリンタである。なお、このプリンタ１３は、電子写真によるカラーＬＢＰでもインクジェット方式でもよい。
【００２３】
次に、ホスト計算機１からプリンタ１３までの各種描画情報の流れについて説明する。  図２は、本実施例におけるホスト計算機からプリンタまでの各種描画情報の処理手順を示すフローチャートである。
【００２４】
［アルゴリズム］
図２のステップＳ１０１では、割り込み処理等により入力バッファ２にＰＤＬデータを取り込み、ステップＳ１０２では、入力されたＰＤＬコマンドを言語仕様に応じて解析する。この解析の結果、入力データが、例えば、文字，直線，イメージ描画等の描画コマンドである場合には、ステップＳ１０４において、ハードウェア（または、ソフトウェア）・レンダリング回路であるハードレンダラ９がサポートするページオブジェクト形式に変換し、それを管理用ＲＡＭ７に格納する。
【００２５】
［レンダリングモデル］
図３を参照して、本実施例におけるレンダリングモデルについて簡単に説明する。
【００２６】
このモデルは、各種描画データの幾何的な情報、すなわち、どの部分が描画対象かという、ＯＮ，ＯＦＦの１ｂｉｔで表現可能なマスク情報１５１、マスクをどのような色で塗るかというカラー多値のバックグランド情報１５２、及び、論理描画方式（ＳＥＴ，ＯＲ，ＸＯＲ，ＢＬＥＮＤ，ＡＤＤ等）の三要素により構成され、図５の（ｂ）にレンダリング結果が示される。
【００２７】
［グラデーション］
バックグランドとして、通常のＤＴＰ等で利用されるような多値カラーイメージ、繰り返しを含む多値カラーパターン、及び本実施例のグラデーションパターンを含む。グラデーションの例として、図４（ａ），（ｂ）に示すような、二点の幾何的な位置とその点におけるカラー濃度値から、バックグランドパターンとして濃度を以下のように内挿補間する。
【００２８】
・二点間（１６２，１６３）を結ぶ直線に垂直な方向への濃度の内挿補間（図４の（ｂ））
・一方を中心（１６０）とし、他方への点（１６１）に向かっての同心円的な濃度の内挿補間（図４の（ａ））
なお、三点を指定された場合、それらの三点間を線形に内挿補間する方法も考慮する必要がある。
【００２９】
このようなグラデーションによって作成された、図４（ｂ）のバックグランドは、マスク情報１５１により対応する部分のみが印字され、図５（ａ）に示すレンダリング結果を得る。
【００３０】
これらの情報は、ＰＤＬより、例えば、図６に示すようなスタック言語として、ホスト計算機１から記録装置コントローラ１４に送られる。図６において、記号‘％’以後は、対応するコマンドに対するコメントを示す。また、図示の例では、グレイデータとしているが、カラー情報への拡張はＲＧＢ成分を指定することで対応可能である。
【００３１】
また、任意形状でのクリップを行なう際には、形状データ（マスク情報）にクリップを施し、クリップ後、残った領域のみをマスクとする。その結果レンダリングされたイメージを図５の（ｂ）に示す。
【００３２】
［マスク］
本実施例においてサポートするマスク情報は、ランレングス（Ｘ方向の一つのスキャンライン）、エッジが交差しない凸多角形、ビットマップイメージ、ビットマップフォントからなる。これらの情報からわかるように、これらのマスク情報は高速なハードウェア・レンダリングに適した構造とし、例えば、図７に示す五角形は、図２のステップＳ１０４において、図８に示すような交差しない５個の三角形（ｔｒｉ１〜ｔｒｉ５）に分割する。なお、この例での塗りつぶしは、ｅｖｅｎ−ｏｄｄルールを適用する。
【００３３】
また、図９に示すラインの接続処理部においてはＤＤＡアルゴリズムを適用して、管理用ＲＡＭ７内の作業領域にラインの接続情報（ｒｏｕｎｄ，ｍｉｔｅｒ，ｔｒｉａｎｇｌｅ）を考慮して展開した後、最終的な外部形状を、Ｙスキャンライン毎にｍｉｎ  ｘ，ｍａｘ  ｘをペア情報としてランレングス方式で保持し、その後の高速なレンダリングに備える。
【００３４】
最終的に生成される各マスクオブジェクトは、フルページメモリよりも少ないメモリ容量でのレンダリング、すなわち、バンディングを行なうためページメモリを複数のバンド（高さが２のベキ乗が望ましく、ほぼ５１２ドットが最適である）に分割する。そして、各マスクオブジェクトをバンド毎にソーティングし、各バンド内で、図１０に示すリンクリストを構成する。
【００３５】
この際、バンドに跨るマスク情報（例えば、図８に示す多角形）に関しては、各バンドで多角形情報を共有化する。各バンドに分割したマスクに対して、図２のステップ１０５において、レンダリング時に必要となるデータのデコード時間とレンダリング時間を、各バンドにおいてページオブジェクトを作成する毎に加算する。そして、この情報をそれぞれバンドｉ毎に保持し、ｐｒｅｄ＿ｄｅｃｏｄｅ（ｉ），ｐｒｅｄ＿ｒｅｎｄｅｒ（ｉ）  とする。
【００３６】
デコード時間は、作成されたオブジェクトのほぼデータ量に比例する。しかし、バンド３における三角形１，４のデコード時間は、その前のバンド２の開始点からのバンド３における多角形の開始点のオフセットを求める時間が余分に必要となる。
【００３７】
また、レンダリング時間は、通常のバックグランドの際には、
バンド内のマスク面積×バックグランドの色深さ×色プレーン数×論理描画の種類による演算ファクタ
により決定する。
【００３８】
グラデーションによるバックグランドの際には、
バンド内のマスク面積×バックグランドの色深さ×色プレーン数×論理描画の種類による演算ファクタ＋グラデーション用バックグランド作成時間
により計算される。
【００３９】
ここで、グラデーション作成時には、通常のバックグランドに比べて大きなオーバーヘッドが必要となり、ソフトウェアによるレンダリングを実行する際には、デグレードの確率が増大することを意味している。
【００４０】
再び図２に戻り、ステップＳ１０３で、入力されたデータが描画コマンドではないと判断された場合には、ステップＳ１０６で、データが各種属性（バックグランド、論理描画）設定コマンドかどうかを判定する。ここでの判断がＹＥＳであれば、ステップＳ１０７において、対応する処理を実行する。なお、これらは、それぞれハード（または、ソフト）レンダラが読み込み可能なデータ形式（ページオブジェクト）に変換するものである。
【００４１】
Ｆｌｏｏｄ  Ｆｉｌｌ等の命令（点指定塗りつぶし）は、バンディングによるレンダリングを実行できないため、そのような情報を検知すると、フルペイントフラグ（Ｆｕｌｌ−ｐ−ｌａｇ）をセットする。結果として、ステップＳ１１２において、強制的に印刷の解像度かつ／または階調を落して、フルペイント（デグレート）モードでのレンダリングを行なう。
【００４２】
［バックグランド］
バックグランド情報は、マスクに対してどのようにカラー・濃淡をつけるかを示す。バックグランドの種類として、イメージとして繰り返しを行なわずにマスクに張り付けるバックグランド・パターン、パターンを縦・横方向に繰り返してマスクに張り付けるタイルパターン、及びグラデーションが指定可能である。本実施例においては、カラー印刷装置を想定しているため、イメージ，タイル，グラデーションはカラー情報として指定可能である。
【００４３】
ステップＳ１０８では、例えば、デバッグ処理等の目的で現在の状態のダンプ処理を行なう。また、ステップＳ１０９では、上記ステップにおけるインタプリタの処理が１ページ分のＰＤＬコマンド解析を終了したかどうかを判定し、それが終了していれば、後述するレンダラタスクに処理を移行する。しかし、ＰＤＬコマンド解析を終了していなければ、再度、ステップＳ１０２に戻り、そこで、次のコマンド解析を繰り返す。
【００４４】
ここまでは、基本的にＰＤＬからページオブジェクトへのデータ・ファイリング・タスクであり、これ以降の処理は、ページバッファ１０への描画を行なうレンダリング・タスクである。これらのタスクは、特にレンダリング・タスクにおいて、実時間処理が要求されるため、リアルタイムＯＳ上で別タスクとして実装され、かつ、レンダリング・タスクは、データ・ファイリング・タスクよりも優先度を高く設定されて動作する。
【００４５】
［バンド・レンダリング］
図２のステップＳ１１０において、ページオブジェクトをレンダリングする前処理として、バンド・レンダリング（バンディング）処理が可能かどうかを判定する。バンディング処理が不可能な場合としては、
・上述のＦｌｏｏｄ  Ｆｉｌｌ命令等がページ中に存在する
・大量のイメージ入力により管理用ＲＡＭ７の情報があふれた（メモリデグレード）
・カラープリンタが、電子写真ＬＢＰ，ＬＥＤプリンタのように、一度、給紙して記録を開始すると、バンディング処理は、プリンタ１３へのビデオ信号転送とバンドへのレンダリングを並行処理する必要があり、ステップＳ１０５で計算されたバンド毎のレンダリング時間ｐｒｄｅ＿ｄｅｃｏｄｅ（ｉ），ｐｒｄｅ＿ｒｅｎｄｅｒ（ｉ）  に関して、いずれかのバンドが所定の閾値を越える（タイムデグレード）
がある。
【００４６】
上記の条件に適合するとバンディングを実行できないため、解像度または／及び階調を落して、ページバッファ１０のメモリ中にフルペイントメモリを確保した後、レンダリングする。
【００４７】
一方、ＢＪプリンタ等のヘッドの移動をコントローラ側で制御できる形態をとる装置においては、レンダリング時間（上記３番目の条件であるタイムデグレード）ついては、上述の限りではなく、レンダリング・スピードが低下すると、ヘッドの移動を遅らせることにより、バンディング処理が可能である。
【００４８】
そこで、図１１を参照して、バンディング処理について説明する。
【００４９】
バンド・レンダリングは、ＰＤＬ解析タスクにより管理用ＲＡＭ７に作成されたページオブジェクト情報を、レンダリングタスク２０２によって起動されるハードまたはソフトレンダラ９が読み込み、マスクの情報からＹ座標におけるスキャンライン情報（ｘ  ｍｉｎ，ｘ  ｍａｘ）を抽出し、カレントのバックグランド情報、論理描画モードを参照して、対応するバックグランド情報をページバッファ（バンドバッファ）１０に書き込む。そして、すべてのマスクに対応すべくＹ情報を変化させて、レンダリングを実行する。
【００５０】
本実施例ではカラープリンタを想定しているため、ページバッファには四面、すなわちＹＭＣＫのプレーンが存在し、各色情報をプレーン毎にレンダリングする。
【００５１】
ここで、ハードレンダラでサポートできる論理描画としては、ソースパターンを‘Ｓ’、ディスティネーション・パターンを‘Ｄ’とすると、以下の３種類である。これらは、ＳとＤの間で両方の情報を入力し、両者間で演算してＤに設定するような演算パワーが必要な処理はサポートされない。これは、カラーの４つのプレーンを参照する必要があり、さらに、各プレーンが４から８ビットの際、データの演算量が非常に大きくなる点に起因する。
【００５２】
・上書き（Ｄ＝Ｓ）
・透過、Ｄに描画しない（Ｄ＝Ｄ  ｉｆ  Ｓ＝０，ｏｔｈｅｒｗｉｓｅ  Ｄ＝Ｓ）
・白（Ｄ＝０）
図２のステップＳ１０７において、バックグランド情報を解析してデータを管理用ＲＡＭ７に格納する際、ホストから送られてくるＲＧＢデータに対して、色変換ハードウェア８を用いて、それをＹＭＣＫカラーに変換し、バックグランド情報として保持しておく。なお、この色変換の際に、ハードウェアでなくソフトウェアで実現する形態も考えられるが、処理の高速化のためにはハードを用いるのが望ましい。
【００５３】
［グラデーションのバックグランド情報としての展開］
バックグランドとしてグラデーションが指定された際には、マスクに対応するバックグランド部分の濃度計算を近似的に実行する必要がある。図１２は、この濃度計算について説明するための模式図である。なお、ここでは、説明を単純化するために二点間の直線補間とする。
【００５４】
各種マスクのレンダリング時には、スキャンライン単位でページバッファにレンダリング結果を格納する。グラデーション情報も、レンダリングに同期してスキャンライン単位でバックグランド情報を生成する。
【００５５】
図１２において、二点Ｐ１（５０１），Ｐ２（５０２）のＸ，Ｙ座標をそれぞれＰ１（ｘ１，ｙ１），Ｐ２（ｘ２，ｙ２）、カラー濃度を、それぞれｄ１，ｄ２とする。この場合、内部的にＰＤＬを通じて指定される近似分割単位（ｄｉｖ）に応じて、Ｐ１，Ｐ２間をｄｉｖ等分する。これにより、Ｐ１からｔ番目の区間の濃度Ｄは、
Ｄ＝ｄ１＋（ｄ２−ｄ１）×ｔ／ｄｉｖ
となる。
【００５６】
この結果、図１２中において網点で塗られた部分が、一定の（カラー）濃度として表現される。そして、ｄｉｖ情報を大きくする、すなわち、細分区間を小さくすればする程、グラデーションは精細となるが、同時に計算時間も増大する。
【００５７】
スキャンライン毎にバックグランドを生成するアルゴリズムについて説明する。
【００５８】
点Ｐ１における等濃度ライン及び次の等濃度ラインと、スキャンラインｉとの交点のｘ座標をそれぞれｘｉ（０），ｘｉ（１）とする。これをベースに、Ｂｒｅｓｅｎｈａｍ  のＤＤＡアルゴリズムを適用すると、ラインｔの傾きから、次のｉ＋１スキャンラインと等濃度ラインの交差点（ｘｉ＋１（０），ｘｉ＋１（１）とする）が容易に計算される。
【００５９】
点Ｐ１と次のラインの位置をサブピクセルレベルで高精度に求めておくと、それ以後の等濃度とスキャンラインの交点は、この二点間の距離の加算として表現できる。それらの各二点間を等濃度で満たすことにより、最終的にバックグランド情報が生成される。このとき、座標値が有効印字領域を越える部分についてはクリップアウトされる。
【００６０】
等濃度で満たす際、前のスキャンラインとの差分情報、すなわち、ｙの１ライン増加によるδｘを利用することにより、バックグランドの生成を高速に行なうことが可能である。このバックグランド情報は、最悪の場合を想定して、１スキャンライン分用意する必要があるが、必ずしもすべての領域を利用するとは限らない。
【００６１】
本実施例では、濃度として１つのＤ（濃度情報）を用いて計算しているが、カラープリンタの場合には、ＹＭＣＫの４色について同様の処理を実行する必要がある。
【００６２】
次に、同心円のグラデーションの場合について説明する。
【００６３】
図１３は、同心円のグラデーションを原理的に示す図であり、図１４は、同心円のグラデーション・アルゴリズムを示すフローチャートである。
【００６４】
まず、図１４のステップ６００で、ＰＤＬにより指定された円の分割数から、各半径のステップ、及び等値で満たす濃度値を計算する。ここでは、ラインの場合と同様に、Ｂｒｅｓｅｎｈａｍ  のＤＤＡアルゴリズム（例えば、「コンピュータグラフィックスのための処理（ＰＲＯＣＥＤＵＲＡＬ  ＥＬＥＭＥＮＴＳ  ｆｏｒＣＯＭＰＵＴＥＲ  ＧＲＡＰＨＩＣＳ）」，デビッドロジャーズ（ＤＡＶＩＤ  Ｆ．ＲＯＧＥＲＳ）著、ＭｃＧｒａｗ−Ｈｉｌｌ社を参照）を利用して、Ｙスキャンラインを一つ更新する毎に、各同心円とスキャンラインの交差を大まかなチェックにより調べる（ステップ６０２）。
【００６５】
ここで、各同心円とスキャンラインとが交差すると判断されれば、Ｘ座標の変化を整数単位で計算可能であるから、複数の同心円に関してＤＤＡアルゴリズムを適用すると複数の交差点が計算される（ステップＳ６０３）。そして、交わった区間内を一定濃度で満たす（ステップ６０４）。
【００６６】
上記処理をマスクのＹ座標変化に従って、すべてのスキャンに対して適応し（ステップＳ６０５）、すべてのスキャンに対する処理が終了していない場合は（ステップＳ６０５でＮＯ）ステップＳ６０６で次のスキャンの初期化を行なうが、それが終了している場合には、本処理を終える。
【００６７】
図１５は、三角形のグラデーションの例を示す図である。ここでは、各辺とスキャンラインｉの交点をＱ１，Ｑ２とし（二つの辺としか交わらない）、点Ｑ１における濃度をＤ（Ｑ１）とすると、点Ｐ１における濃度Ｄ（Ｐ１）と点Ｐ２における濃度Ｄ（Ｐ２）を距離の比に応じて内分する。こうして、Ｄ（Ｑ１），Ｄ（Ｑ２）が求まると、その後は、上述のように、図１２に示した、二点間を一定数の等濃度により内挿補間する方法に帰着でき、上述したアルゴリズムを利用することが可能である。
【００６８】
［バンディングにおけるシッピング］
このようにして、ハードウェアは、マスク情報、バックグランド情報、論理描画の方法に従い、バンド番号ｉのページオブジェクトに対してレンダリングを行なうとともに、並行してプリンタ１３から送られてくる水平同期信号に合わせて、プリンタＩＦ１１を通じて既にレンダリング済みのバンド番号ｉ−１のバンド情報を、プリンタ１３にカラービデオ信号（ＹＭＣＫ）として送出する。
【００６９】
このバンディング処理は、グラデーションを処理するハードウェアが搭載されていないと、ＬＢＰのようなレンダリングを実時間で行なう必要のあるシステムには厳しい。ただし、ＢＪのような、レンダリングが遅くてもビデオデータのシッピングに余裕のある系では問題ない。
【００７０】
このバンディング処理時には、ページバッファ１０に、
２５６（Ｙサイズ）＊４（色）＊８（色深さ）＊２＊４８００（Ａ４，４００ＤＰＩの幅）／８≒１０ＭＢｙｔｅｓ
及び、グラデーション用の１ライン分の濃度情報を保持するワークメモリを持つことで実現できる。
【００７１】
また、バンディング時には、ページバッファ１０に各色８ｂｉｔを持つから、ホスト計算機１からのＰＤＬ情報は、一般的に１，２，４，８ｂｉｔである。このため、対応するＹＭＣＫ１，２，４，８ｂｉｔ情報をページオブジェクトとして格納し、レンダリング時にルックアップテーブルを介してのビット拡張処理となる。この処理は、後述するディザや誤差拡散手法に比べて演算コストは非常に小さい。
【００７２】
［デグレード・レンダリング］
バンドレンダリングが不可能なＰＤＬデータに関しては、デグレード処理を実行する。以下、本発明の中心となるカラー情報の流れ、及びデグレード処理手順について説明する。
【００７３】
図１６は、バンディングおよびデグレード処理に関するアーキテクチャ図であり、図１７は、デグレード処理の手順を示すフローチャートである。
【００７４】
［ページオブジェクトの解像度変換］
デグレート処理は、リアルタイムにレンダリングできないため、解像度かつ／または階調を落したフルビットマップ（ビット深さ１，２、または４ｂｉｔ）に対応するバッファ１０上へのレンダリングとなる。ハードレンダラー９は、処理の簡素化及び高速化を要求されるため、レンダリング時に、ランレングスや凸多角形情報のリアルタイム解像度変換は実行できない。そこで、以下に示す処理をレンダリング以前に実行しておく必要がある。
【００７５】
レンダリングの前処理として、例えば、６００ＤＰＩから３００ＤＰＩに解像度を落とす際、ランレングスは、２ライン分をまとめて１つのランレングスとし、凸多角形は頂点情報の再計算を実行する。これをページバッファ中のすべてのマスク情報に対して、インタプリタ・タスクにて実行する。ランレングスは、例えば、６００ＤＰＩにおける二つのラインｉ，ｉ＋１のＸ座標の開始・終了点をそれぞれｘｌ（ｉ），ｘｒ（ｉ），ｘｌ（ｉ＋１），ｘｒ（ｉ＋１）とすると、新規の３００ＤＰＩでの一つの開始，終了点のＸ座標は、以下のようになり、また、Ｙ座標はｉ／２となる。
【００７６】
ｎｅｗ＿ｘｌ（ｉ）＝ｍｉｎ（ｘｌ（ｉ），ｘｌ（ｉ＋１））／２
【００７７】
ｎｅｗ＿ｘｒ（ｉ）＝ｍａｘ（ｘｒ（ｉ），ｘｒ（ｉ＋１））／２
【００７８】
イメージに関しては、ページオブジェクトのイメージ情報自身は変化せず、ｘ，ｙ方向へのスケーリングファクタをそれぞれ１／２倍する。また、グラデーションが指定されている際には、色情報は補正せず、それぞれの参照位置情報（ｘ，ｙ）を１／２倍すればよい。
【００７９】
一方、ページバッファの階調を落としても、レンダラは、１，２，４，８ビットレンダリングをハードまたはソフトでサポートするため、バックグランド情報はマスクとは異なり、特にＣＰＵパワーの要求される処理は必要ではない。
【００８０】
［フルペイント・レンダリング］
図１７のフローチャートに、デグレート時のレンダリングに関するアルゴリズムを示す。同図のステップＳ５０１において、インタプリタ・タスクにより解像度変換されたマスク及びバックグランド情報を入力し、ステップＳ５０２で、入力されたオブジェクトが描画コマンドかどうかを判断する。そして、オブジェクトが描画コマンドでなければ、ステップＳ５０５において、バックグランド情報や（論理）描画モードを、カレント情報を保持するグローバル変数に代入する。
【００８１】
一方、ステップＳ５０２で、オブジェクトが描画コマンドであると判断された場合には、ステップＳ５０３において、マスク，バックグランド，論理描画，グラデーション情報を収集し、レンダリングを実行する（ステップＳ５０４）。
【００８２】
ここで、グラデーション（８ｂｉｔ出力）の基本アルゴリズムについては上述したが、デグレード時には、最悪、ページバッファは２または４ｂｉｔであるため、ＰＤＬよりバックグランドとして８ｂｉｔ相当のイメージが入力されると、２または４ｂｉｔへの変換のためのディザ、誤差拡散等の処理を実行する必要がある。そのため、グラデーションの出力結果がディザ処理への入力となり、階調変換される。
【００８３】
［ディザ処理］
図１８〜図２０を参照して、多値ディザ法の原理について説明する。なお、ページメモリの階調より入力データの色階調が高い場合に、本処理が必要となる。
【００８４】
ディザ処理を説明するために、まず、単純多値化の原理を、多値として８ｂｉｔ（２５６レベル）入力を２ｂｉｔ（４値）化するアルゴリズムを示す。
【００８５】
いま、注目画素の入力値が６４未満の場合に０（００）、６４以上で１２８未満の場合に８５（０１）、１２８以上で１９２未満の場合に１７０（１０）、そして、２５５以下の場合に２５５（１１）を出力する。
【００８６】
図１８は、上記のアルゴリズムを図示するものであり、入力が属しているＡＲＥＡ内部で、そのＡＲＥＡ内の閾値（ここでは、６４，１２８，１９２）を利用し、出力がＡＲＥＡの両端となるような２値化処理を行なう。図中の太い縦線が領域の区切りを示し、その下に、８ｂｉｔレベル及び２ｂｉｔレベル（図において、（  ）を付した値）の出力値を示す。また、細い縦線が、領域内での閾値８ｂｉｔレベルを示す。
【００８７】
図１９，図２０は、上記の２値化処理を多値ディザに応用する例を説明するための図である。
【００８８】
図１９に示す注目画素データと、注目画素に対応するディザマトリックス（図２０）の値から、その領域に適した閾値を計算し、注目画素のデータを、この閾値で２値化する。ここで、ディザマトリックスは４×４のパターンとして、ページバッファ上で同じパターンをＸ，Ｙ方向に繰り返す。ディザマトリックスの最大値は２５５／（ビットレベル−１）となる。なお、本実施例では、ビットレベルは４である。入力データは、拡大，縮小処理があると、既にページメモリの解像度に変換されている。
【００８９】
そこで、実際のディザ・アルゴリズムを説明する。
【００９０】
（１）入力データにおける注目画素を読み取り、それがどのＡＲＥＡに属するかを判断する。
【００９１】
→図１９において注目画素は１８０であるから、それは、ＡＲＥＡ２に属している。
【００９２】
（２）対応するディザマトリックス値を読み込み、このＡＲＥＡに合致する閾値に変更する。
【００９３】
0003554034.tif 000002
（３）注目画素データが閾値以上であれば、このＡＲＥＡの最大値を、また、閾値未満であれば、ＡＲＥＡの最小値を出力値とする。
【００９４】
→注目画素（１８０）＜閾値（２４４）なので、ＡＲＥＡ２の最小値（１７０＝１０（２ｂｉｔ））を出力する。
【００９５】
（４）次の画素を処理する。
【００９６】
この処理は、ハードウェア的には、ルックアップテーブルにより高速変換処理が可能である。このテーブルは、入力レベルが０から２５５の各々について、４×４のディザマトリックスの各位置においてディザ変換した２ｂｉｔ出力値を、あらかじめ格納しておくことにより実現できる。
【００９７】
この際のテーブルサイズは、各ＹＭＣＫ毎に２５６×４×４×２ｂｉｔ＝１０２４ｂｙｔｅ分必要であり、２ｂｉｔずつを、図２１に示すポインタにより示されるディザテーブル（図２２）よりアクセスする。
【００９８】
再び、図１７に戻り、そのステップＳ５０６において、１ページ分のマスクデータのレンダリング処理を終了したか否かを判断し、それを終了した場合、プリンタＩＦ１１を通じて、プリンタ１３に各ＹＭＣＫプレーン毎に、水平・垂直同期信号に合わせて送出する（ビデオ転送）（ステップＳ５０７）。
【００９９】
［カラー記録装置］
図２３は、本実施例に係るカラー印刷装置としてのカラーインクジェットプリンタ装置（ＩＪＲＡ）の概観図である。なお、図２３は、図１に示すプリンタ１３の概観を示す図でもある。
【０１００】
図２３において、キャリッジＨＣは、駆動モータ５０１３の正逆回転に連動して駆動力伝達ギヤ５０１１，５００９を介して回転するリードスクリュー５００５の螺旋溝５００４に対して係合し、ピン（不図示）を有して、矢印ａ，ｂ方向に往復移動される。このキャリッジＨＣには、インクジェットカートリッジＩＪＣが搭載されている。
【０１０１】
５００２は紙押え板であり、キャリッジの移動方向に沿って紙をプラテン５０００に対して押圧する。また、５００７，５００８はフォトカプラで、キャリッジのレバー５００６の、この領域での存在を確認して、モータ５０１３の回転方向切り換えを行なうためのホームポジション検知手段である。
【０１０２】
５０１６は、記録ヘッドの全面をキャップするキャップ部材で、５０１５は、このキャップ内を吸引する吸引手段であり、キャップ内開口５０２３を介して記録ヘッドの吸引回復を行なう。５０１７はクリーニングブレードで、吸引手段５０１５は、このブレードを前後方向に移動可能とする部材であり、本体支持板５０１８にこれらが支持されている。なお、ブレード５０１７は、図示の形態ではなく、周知のクリーニングブレードが適用できるのは言うまでもない。
【０１０３】
また、５０１２は、吸引回復の吸引を開始するためのレバーで、キャリッジと係合するカム５０２０の移動に伴って移動し、駆動モータ５０１３からの駆動力が、クラッチ切り換えの公知の伝達手段で移動制御される。
【０１０４】
これらのキャッピング，クリーニング，吸引回復は、キャリッジがホームポジション側の領域に来たときに、リードスクリュー５００５の作用によって、それらの対応位置で所望の処理が行なえるように構成されているが、これら以外のタイミングで作動するようにしてもよい。
【０１０５】
以上説明したように、本実施例によれば、カラー情報としてのグラデーション機能をＰＤＬとして指定し、グラデーションに必要なＰＤＬ情報のみをプリンタに送って、プリンタ内部でデグレーションを行なうことにより、ホストとプリンタとの間で大量のイメージデータを送出する必要がなくなり、レンダリングの高速化や印刷のスループットの向上が可能となる。
【０１０６】
また、ＰＤＬによるグラデーションにより、グラデーション情報としてイメージで送ることで、ホスト側のドライバで解像度補間を行なう必要がなくなる。
【０１０７】
さらに、デグレード時にグラデーションに対するディザ処理を適用が可能であるため、色深さ相応の出力が得られる。
【０１０８】
なお、上記実施例では、デグレード処理時にグラデーション処理結果に対してディザ処理を行なっているが、これに限定されず、例えば、バンディング処理と同様に入力されたデータをそのまま、あるいはビットを切り捨てることによりレンダリングすることも可能である。
【０１０９】
この結果、特にソフトウェア処理をする際には、グラデーションの印字品位は低下するが、ディザ処理よりも印字処理の高速化を図ることができ、ユーザにとっては、ドラフトモードとして位置付けることが可能となる。これは、図１６において、デグレード時には解像度変換４０６での処理は実行するが、ディザテーブル１５の参照は行なわない形態であり、グラデーションの出力がハードレンダラー９に渡される。
【０１１０】
また、上記実施例では、デグレード時の色精度を出すための疑似階調処理として、ディザ処理を例にとり説明したが、これに限定されず、例えば、誤差拡散方法や平均濃度保存法の処理も適用可能である。
【０１１１】
さらにまた、上記実施例では、デグレード時に階調が落ちるという前提のもとで説明を展開したが、ユーザが、ページメモリを拡張ＲＡＭとして増設が可能であり、２５６階調分のフルメモリが獲得可能であれば、デグレード時にはディザ処理による疑似階調変換処理は必要ではなくなる。
【０１１２】
本発明は、複数の機器から構成されるシステムに適用しても、１つの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適用できることは言うまでもない。
【０１１３】
【発明の効果】
以上説明したように、本発明によれば、カラー印刷装置の内部でグラデーションを実現して、ホストとカラー印刷装置間における通信量を削減し、印刷のスループットを向上することができる。
【０１１４】
さらに、複数形状のグラデーションを同様の処理によって作成することができる。
【０１１５】
【図面の簡単な説明】
【図１】本発明の実施例に係るカラー印刷装置の基本構成を示すブロック図である。
【図２】ホスト計算機からプリンタまでの各種描画情報の処理手順を示すフローチャートである。
【図３】実施例におけるレンダリングモデルを示す図である。
【図４】グラデーションの例を示す図である。
【図５】レンダリングの結果を示す図である。
【図６】グラデーションコマンドの例を示す図である。
【図７】マスク情報を示す図である。
【図８】マスク情報とバンドとの関係を示す図である。
【図９】ラインの接続処理部を説明するための図である。
【図１０】各バンド内でのリンクリストの構成を示す図である。
【図１１】バンディング処理について説明するための図である。
【図１２】グラデーションの原理を示す図である。
【図１３】同心円のグラデーションを原理的に示す図である。
【図１４】同心円のグラデーション・アルゴリズムを示すフローチャートである。
【図１５】三角形のグラデーションの例を示す図である。
【図１６】バンディング及びデグレード処理に関するアーキテクチャを示す図である。
【図１７】デグレード処理の手順を示すフローチャートである。
【図１８】多値ディザ処理を説明するための図である。
【図１９】２値化処理を多値ディザに応用する例を説明するための図である。
【図２０】２値化処理を多値ディザに応用する例を説明するための図である。
【図２１】ディザのポインタを示す図である。
【図２２】ポインタにより示されるディザテーブルを示す図である。
【図２３】カラー記録装置の外観構成図である。
【符号の説明】
１  ホスト計算機
２  データ入力用バッファ
３  フォントＲＯＭ
４  パネルＩ／Ｏプロセッサ
５  拡張Ｉ／Ｆ
６  プログラムＲＯＭ
７  管理用ＲＡＭ
８  色変換ハードウェア
９  ハードウェアレンダラ
１０  ページバッファ
１１  プリンタインタフェース
１２  ＣＰＵ
１３  プリンタ
１４  記録装置コントローラ
【図１】
0003554034.tif 000003
【図２】
0003554034.tif 000004
【図３】
0003554034.tif 000005
【図４】
0003554034.tif 000006
【図５】
0003554034.tif 000007
【図６】
0003554034.tif 000008
【図７】
0003554034.tif 000009
【図８】
0003554034.tif 000010
【図９】
0003554034.tif 000011
【図１０】
0003554034.tif 000012
【図１１】
0003554034.tif 000013
【図１２】
0003554034.tif 000014
【図１３】
0003554034.tif 000015
【図１４】
0003554034.tif 000016
【図１５】
0003554034.tif 000017
【図１６】
0003554034.tif 000018
【図１７】
0003554034.tif 000019
【図１８】
0003554034.tif 000020
【図１９】
0003554034.tif 000021
【図２０】
0003554034.tif 000022
【図２１】
0003554034.tif 000023
【図２２】
0003554034.tif 000024
【図２３】
0003554034.tif 000025