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