(57)【要約】【課題】ページ記述言語よりイメージデータを生成するためのレンダリングを、ハードによるレンダリング処理と共に、ソフトによるレンダリング処理を行い、早くレンダリング処理が終了したほうのレンダリング結果を使用することにより、高速な印刷を行うことを目的とする。【解決手段】Ｉ／Ｏ１１より入力されたページ記述言語を、ハードレンダラー２０ではハード的に解釈してイメージデータを作成し、ＭＡＩＮ−ＣＰＵ１ではソフト的に解釈してイメージデータを作成し、先にレンダリング処理が終了した方のイメージデータを印刷部Ｉ／Ｆ８に出力する。【選択図】　　　図２
2004066532.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語を入力する入力手段と、
前記入力手段により入力されたページ記述言語をハード的に解釈しイメージデータを作成するハードレンダリング手段と、
前記入力手段により入力されたページ記述言語をソフト的に解釈しイメージデータを作成するソフトウェアレンダリング手段と、
前記ハードレンダリング手段のレンダリング処理と前記ソフトウェアレンダリング手段のレンダリング処理において先にレンダリング処理が終了した方のイメージデータを画像形成部に出力する出力手段とを有することを特徴とする画像処理装置。
【請求項２】
前記入力手段は、入力されたページ記述言語を解釈し中間言語を作成する中間言語作成手段を有し、
前記ハードレンダリング手段は、前記中間言語作成手段により作成された中間言語をハード的に解釈してイメージデータを作成する手段であり、
前記ソフトウェアレンダリング手段は、前記中間言語作成手段により作成された中間言語をソフト的に解釈してイメージデータを作成する手段であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ハードレンダリング手段は、ハード的な制約で一度にレンダリングできない場合、途中までの中間言語を一度レンダリングしてイメージデータを作成し、作成された途中までのイメージデータを背景イメージとして中間言語に追加してレンダリングすることにより、１ページ分のイメージデータを作成するフォールバックを行うことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記中間言語作成手段は、前記ハードレンダリング手段用と前記ソフトウェアレンダリング手段用に２つの異なる中間言語を作成する手段であることを特徴とする請求項２又は請求項３に記載の画像処理装置。
【請求項５】
前記中間言語作成手段は、前記フォールバック用の中間言語を作成する手段であり、前記ソフトウェアレンダリング手段は、前記フォールバック用に作成された中間言語を、前記フォールバックすることなくレンダリングする手段であることを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記ソフトウェアレンダリング手段は、前記ハードレンダリング手段が前記フォールバックを行う場合に動作することを特徴とする請求項１〜５の何れか１項に記載の画像処理装置。
【請求項７】
前記ソフトウェアレンダリング手段或いは前記ハードレンダリング手段のどちらか一方の処理が終了したら他方の処理を停止する制御手段を有することを特徴とする請求項１〜６の何れか１項に記載の画像処理装置。
【請求項８】
ページ記述言語を入力する入力工程と、
前記入力工程で入力されたページ記述言語をハード的に解釈しイメージデータを作成するハードレンダリング工程と、
前記入力工程で入力されたページ記述言語をソフト的に解釈しイメージデータを作成するソフトウェアレンダリング工程と、
前記ハードレンダリング工程と前記ソフトウェアレンダリング工程において先に工程が終了した方のイメージデータを画像形成部に出力する出力工程とを有することを特徴とする画像処理方法。
【請求項９】
前記入力工程は、入力されたページ記述言語を解釈し中間言語を作成する中間言語作成工程を有し、
前記ハードレンダリング工程は、前記中間言語作成工程で作成された中間言語をハード的に解釈してイメージデータを作成する工程であり、
前記ソフトウェアレンダリング工程は、前記中間言語作成工程で作成された中間言語をソフト的に解釈してイメージデータを作成する工程であることを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記ハードレンダリング工程は、ハード的な制約で一度にレンダリングできない場合、途中までの中間言語を一度レンダリングしてイメージデータを作成し、作成された途中までのイメージデータを背景イメージとして中間言語に追加してレンダリングすることにより、１ページ分のイメージデータを作成するフォールバックを行うことを特徴とする請求項９に記載の画像処理方法。
【請求項１１】
前記中間言語作成工程は、前記ハードレンダリング手段用と前記ソフトウェアレンダリング手段用に２つの異なる中間言語を作成する工程であることを特徴とする請求項９又は請求項１０に記載の画像処理方法。
【請求項１２】
前記中間言語作成工程は、前記フォールバック用の中間言語を作成する工程であり、前記ソフトウェアレンダリング工程は、前記フォールバック用に作成された中間言語を、前記フォールバックすることなくレンダリングすることを特徴とする請求項１０に記載の画像処理方法。
【請求項１３】
前記ソフトウェアレンダリング工程は、前記ハードレンダリング工程で一度にレンダリングできない場合に動作することを特徴とする請求項８〜１２の何れか１項に記載の画像処理方法。
【請求項１４】
前記ソフトウェアレンダリング工程或いは前記ハードレンダリング工程のどちらか一方の工程が終了したら他方の工程を停止する制御工程を有することを特徴とする請求項８〜１３の何れか１項に記載の画像処理方法。
【請求項１５】
請求項８〜１４の何れか１項に記載の画像処理方法を実行するコンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、双方向性インターフェースを介してネットワーク上の複数のホストコンピュ−タ及び他のプリンタ等出力装置に接続されるプリンタ等の画像処理装置及びその方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体に関する。
【０００２】
【従来の技術】
近年、情報処理システムは一般化され広く使われるようになってきている。このような状況の中、前記情報処理システム上で作成される多くの電子ドキュメントがカラー化され、カラー印刷装置への出力要求は増大する傾向にあり、カラー印刷装置の高速化が望まれている。
【０００３】
従来、ページ記述言語（ＰＤＬ）を解釈しラスタイメージを作成するシステムでは、ＰＤＬを解釈した上で中間言語であるディスプレイリスト（ＤＬ）を作成し、このＤＬからラスタイメージ変換（レンダリング）を行うのが一般的である。この一連の処理の中で、レンダリング部分に関しては非常に処理が重いが比較的ハード化しやすいので、高速化のためにレンダリング用専用ハード（ハードレンダラー）としてシステムに実装されるのが一般的である。
【０００４】
しかしながら、このハードレンダラーはハードであるがために、ワーク用に使用される各種テーブルのサイズが限定されるために複雑なデータを処理できないといった制約がある。この制約を回避する為にフォールバックと呼ばれる処理が行われる。フォールバックは、ＤＬのサイズがハードレンダラーの、前記ワーク用に使用される各種テーブルが溢れてしまった場合、一度そこまでのＤＬをレンダリングしてラスタイメージとし、このラスタイメージを描画エリアのバックグラウンドイメージとして再びＤＬに追加することにより処理を続ける方法である。フォールバック時には各種ワークテーブルが一度クリアされるため、複雑なデータも処理することが可能となる。また、フォールバックは、サブクローズとも呼ばれる。
【０００５】
【発明が解決しようとする課題】
しかしながら、前記フォールバックが発生すると、ＤＬを一度レンダリングしなければならないために、ハードレンダリングを行う時間、レンダリングされたラスタイメージを格納するメインメモリに転送・格納する時間、ラスタイメージを圧縮する時間がかかってしまい、遅くなるという問題点があった。
【０００６】
本発明は、上記問題点を解決するためになされたものであり、ページ記述言語よりイメージデータを生成するためのレンダリングを、ハードによるレンダリング処理と共に、ソフトによるレンダリング処理を行い、早くレンダリング処理が終了したほうのレンダリング結果を使用することにより、高速な印刷を行うことができる画像処理装置及びその方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、本発明に係る画像処理装置は、ページ記述言語を入力する入力手段と、前記入力手段により入力されたページ記述言語をハード的に解釈しイメージデータを作成するハードレンダリング手段と、前記入力手段により入力されたページ記述言語をソフト的に解釈しイメージデータを作成するソフトウェアレンダリング手段と、前記ハードレンダリング手段のレンダリング処理と前記ソフトウェアレンダリング手段のレンダリング処理において先にレンダリング処理が終了した方のイメージデータを画像形成部に出力する出力手段とを有することを特徴とする。
【０００８】
上記目的を達成するため、本発明に係る画像処理方法は、ページ記述言語を入力する入力工程と、前記入力工程で入力されたページ記述言語をハード的に解釈しイメージデータを作成するハードレンダリング工程と、前記入力工程で入力されたページ記述言語をソフト的に解釈しイメージデータを作成するソフトウェアレンダリング工程と、前記ハードレンダリング工程と前記ソフトウェアレンダリング工程において先に工程が終了した方のイメージデータを画像形成部に出力する出力工程とを有することを特徴とする。
【０００９】
【発明の実施の形態】
〔第１実施例〕
本実施例の構成を説明する前に、本実施例を適用するに好適なレーザビームプリンタの構成について図１を参照しながら説明する。なお、本実施例を適用するプリンタは、レーザビームプリンタに限られるものではなく、他のプリント方式、例えばインクジェットプリンタでも良いことは言うまでもない。
【００１０】
図１は本発明を適用可能な出力装置の構成を示す断面図であり、例えばレーザビームプリンタ（ＬＢＰ）の場合を示す。
【００１１】
図１において、１０００はＬＢＰ本体であり、外部にネットワークや直接インターフェースで接続されているホストコンピュータ等の外部情報源から供給される印刷情報（文字コード等）やフォーム情報あるいはマクロ命令等を入力して記憶するとともに、それらの情報に従って対応する文字パターンやフォームパターン等を作成し、記録媒体である記録紙等に像を形成する。
【００１２】
１０１２は操作のためのスイッチおよびＬＥＤ表示器等が配されている操作部、１００１はＬＢＰ本体１０００全体の制御および外部ネットワーク等から供給される文字情報等を解析するプリンタ制御ユニットである。このプリンタ制御ユニット１００１は、主に文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ１００２に出力する。
【００１３】
レーザドライバ１００２は半導体レーザ１００３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ１００３から発射されるレーザ光１００４をオン・オフ切り換えする。レーザ光１００４は回転多面鏡１００５で左右方向に振らされて静電ドラム１００６上を走査露光する。これにより、静電ドラム１００６上には文字パターンの静電潜像が形成されることになる。
【００１４】
この潜像は、静電ドラム１００６周囲に配設された現像ユニット１００７により現像された後、記録紙に転写される。この記録紙にはカットシートを用い、カットシート記録紙はＬＢＰ１０００に装着した用紙カセット１００８に収納され、給紙ローラ１００９および搬送ローラ１０１０と搬送ローラ１０１１とにより、装置内に取り込まれて、静電ドラム１００６に供給される。
【００１５】
図２は、本発明の実施例を示すプリンタ制御システムの構成を示すブロック図である。図２のプリンタ制御ユニット１００１において、ＭＡＩＮ−ＣＰＵ１はプリンタのＣＰＵであり、ＲＯＭ４に記憶された制御プログラムや外部メモリ７に記憶された制御プログラムなどに基づいてシステムバス５に接続される各種のデバイスへのアクセスを総合的に制御し、印刷部インタフェース８を介して接続される印刷部（プリンタエンジン）９に出力情報として画像信号を出力する。
【００１６】
ＲＯＭ４には後述する図５、図６、図７及び図８　のフローチャートに示されるようなＭＡＩＮ−ＣＰＵ１の制御プログラムや等を記憶する。ＭＡＩＮ−ＣＰＵ１はＩ／Ｏ１１を介して外部ネットワーク３０００に接続されているホストコンピュータ等の外部装置と通信可能に構成されている。なお、ホストコンピュータと外部ネットワークを介して通信するとしているが、図示しない直接インターフェースを介してホストコンピュータと接続し、通信を行っても良いことはいうもでもない。
【００１７】
ＲＡＭ２は、ＭＡＩＮ−ＣＰＵ１の主メモリ・ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００１８】
画像出力バッファ３は、前記ＲＡＭ２上に用意されており、後述する２０のハードレンダラーで作成されるラスタイメージやＭＡＩＮ−ＣＰＵ１上で動作するソフトウェアレンダラーの作成するラスタイメージ、及びハードレンダラー２０でフォールバックを起こしたときに生成するフォールバック用ラスタイメージが記録される。メモリコントローラ（ＭＣ）６は、ハードディスク等の外部メモリ７へのアクセスを制御する。
【００１９】
ハードレンダラー２０は、内部にローカルメモリ２１、各種ワークテーブル２２を持ち、ローカルメモリ２１に転送されてきたディスプレイリスト（ＤＬ）またはＲＡＭ２上にあるＤＬをそのまま解釈し、前記各種ワークテーブルを使用しながら、ラスタイメージを作成する。前記各種ワークテーブル２２には、ＦＩＬＬテーブル、レベルテーブル、ワインディングテーブル、エッジテーブルがあり各テーブルには上限値が存在している。ハードレンダラー２０はこれらテーブルの上限値を超えるような複雑なデータを一回のレンダリングでは処理できない。
【００２０】
圧縮部２３は、ソフトウェアレンダラー及びハードウェアレンダラーの作成したラスタイメージを圧縮する。画像処理部２４は、階調補正等の所定の画像処理を実行する。
【００２１】
このように構成されたプリンタ制御システムにおいて、図３、図４及び図５〜図８のフローチャートに従って本発明の実施例を説明する。
【００２２】
図３は、ＭＡＩＮ−ＣＰＵ１が実行する、本発明にかかわるタスクの概念図である。プリンタ１０００が、外部ネットワーク３０００から印刷データ（ページ記述言語（ＰＤＬ）データ）を受け取ると、ＭＡＩＮ−ＣＰＵ１で実行されているＤＬ作成タスク３０１がＤＬを生成し、作成したＤＬをレンダラー管理タスク３０２へ通知する。レンダラー管理タスク３０２は、ＤＬ作成タスク３０１が生成したＤＬを、ソフトウェアレンダラータスク３０３、ハードウェアレンダラータスク３０４へそれぞれ登録・通知することによりどちらのレンダラーでレンダリングするのかをコントロールする。また、レンダラー管理タスク３０２は、ソフトウェアレンダラータスク３０３、ハードウェアレンダラータスク３０４のレンダリングの終了通知を受け取ることにより、どちらのレンダラーが先に終了し、先に終了したレンダラーのレンダリング結果を最終的なレンダリング結果とすると共に、まだ終了していないレンダラーに停止命令を発行することにより実行中のレンダリングを停止させる。ソフトウェアレンダラータスク３０３は、レンダラー管理タスクより登録・通知されたＤＬをＭＡＩＮ−ＣＰＵ１上で動作するソフトウェアレンダラーでレンダリングする。ハードレンダラータスク３０４は、レンダラー管理タスクより登録・通知されたＤＬをハードレンダラー２０でレンダリングする。
【００２３】
図４は、ＤＬの構造を表す図である。１つのＤＬは、ソフトウェア及びハードの各レンダラーが一回のレンダリングで使用する単位で作成される。すなわち、フォールバックの起きないページでは１つのみＤＬが作成され、フォールバックのＮ回起きるページではＮ＋１個のＤＬが生成される。
【００２４】
図４の４０１は、ＤＬの構造を示している。４０２は、フォールバックフラグであり、フォールバックの発生しているページのＤＬでは１、発生していないページのＤＬでは０となる。４０３は、最終ＤＬフラグであり、このＤＬでそのページが終了することを示している。つまり、フォールバックが起きないページのＤＬは常にこのフラグが１になり、フォールバックが起きるページのＤＬは最後のＤＬのみこのフラグが１になり、それまでのＤＬでは０となる。４０４は、フォールバックイメージへのポインタエリアであり、フォールバックの発生するページの２つ目以降のＤＬに存在し、レンダラー管理タスク３０２で、１つ前のＤＬをレンダリングしたときに生成されるフォールバックイメージへのポインタが格納される。４０５は、ＤＬ部品群であり、一回のレンダリング使用されるＤＬ部品が全て含まれる。ＤＬ部品は印刷データに含まれる一つの描画命令または複数の描画命令の組み合わせに対応する、ハードレンダラー２０用の中間言語であるディスプレイリスト（ＤＬ）の１つまたは複数のコマンド列である。
【００２５】
図４の４１０、４１１及び４１２は、フォールバックが起きたときに生成されるＤＬの一例である。この例は、１ページでフォールバックが２回起きた場合の例であり、３つのＤＬが生成され、３回のレンダリングが行われることになる。４１０は、１回目のフォールバックが起きたときに生成されるＤＬであり、フォールバック時のＤＬであるのでフォールバックフラグが１、最終のＤＬではないので最終ＤＬフラグが０、ページの最初のＤＬであるのでフォールバックイメージへのポインタエリアはなく、１〜Ｌ番目までのＤＬ部品で構成されている。４１１は、２回目のフォールバックが起きたときに生成されるＤＬであり、フォールバック時のＤＬであるのでフォールバックフラグが１、最終のＤＬではないので最終ＤＬフラグが０、１つ目のＤＬ（４１０）をレンダリング時に、このＤＬの背景イメージとなるフォールバックイメージが生成されるのでフォールバックイメージへのポインタエリアが存在し、Ｌ＋１〜Ｍ番目までのＤＬ部品で構成されている。４１２は、ページ最終のＤＬであり、フォールバック時のＤＬであるのでフォールバックフラグが１、最終のＤＬであるので最終ＤＬフラグが１、２つ目のＤＬ（４１１）をレンダリング時に、このＤＬの背景イメージとなるフォールバックイメージが生成されるのでフォールバックイメージへのポインタエリアが存在し、Ｍ＋１〜Ｎ番目までのＤＬ部品で構成されている。なお、本ＤＬのレンダリング結果がこのページの印刷出力の候補となる。
【００２６】
図４の４１３は、フォールバックが発生しないページで生成されるＤＬの例であり、フォールバックは起きていないのでフォールバックフラグが０、最終のＤＬであるので最終ＤＬフラグが１、背景イメージとなるフォールバックイメージは存在しないのでフォールバックイメージへのポインタエリアは存在せず、１〜Ｎ番目までのＤＬ部品で構成されている。なお、本ＤＬのレンダリング結果がこのページの印刷出力として使用される。なお、４１３は、前記４１０、４１１及び４１２のＤＬを生成するページをソフトレンダラーでレンダリングするためのＤＬの例でもあり、前記４１０、４１１及び４１２のＤＬに含まれる全ＤＬ部品が含まれている。
【００２７】
以下、図３における３０１から３０４の各タスクの動作を図５から図８のフローチャートに従って詳細に説明する。
【００２８】
図５は、ＤＬ作成タスク３０１の動作を示すフローチャートである。プリンタ１０００が外部ネットワーク３０００から印刷データを受信すると、ＤＬ生成タスク３０１が起動されスタートとする。ＤＬ生成タスクがスタートすると（ステップＳ５０１）、受信したＰＤＬデータの解釈し（ステップＳ５０２）ＤＬ部品を生成する（ステップＳ５０３）。ステップＳ５０３で１つのＤＬ部品を生成するとステップＳ５０４へ進む。
【００２９】
ステップＳ５０４では、ステップＳ５０３で生成したＤＬ部品をＤＬ部品管理テーブル１へ登録し、ステップＳ５０５へ進む。ステップＳ５０５では、ステップＳ５０３で生成したＤＬ部品をＤＬ部品管理テーブル２へ登録し、ステップＳ５０６へ進む。ＤＬ部品管理テーブル１及びＤＬ部品管理テーブル２は、ワークテーブル２２にあり、ＤＬ部品管理テーブル１は、フォールバック無しＤＬを発行するために用い、ＤＬ部品管理テーブル２は、フォールバック用ＤＬを発行するために用いる。
【００３０】
ステップＳ５０６では、ハードレンダラー２０に搭載されている各種ワークテーブル２３を現在ＤＬ部品管理テーブル２に登録されているＤＬ部品がどれだけ使用しているか、及び現在ＤＬ部品管理テーブル２に登録されているＤＬ部品のサイズをそれぞれ検査する。
【００３１】
ステップＳ５０６で、各ワークテーブルの上限又はＤＬ部品のサイズがハードレンダラー２０のローカルメモリ２１に達していたら、フォールバックが発生すると判断し、ステップＳ５０７へ進む。
【００３２】
ステップＳ５０７では、ＤＬ部品管理テーブル２に登録しているＤＬ部品をまとめフォールバック用のＤＬを生成しレンダラー管理タスク３０２のＤＬキューへ登録して、ステップＳ５０８へ進む。このとき、フォールバック発生フラグを検査し、フォールバック発生フラグが立っていなければ、図４の４１０の例のようなフォールバックフラグ＝１、最終ＤＬフラグ＝０、フォールバックイメージへのポインタエリア無しのＤＬを生成し、フォールバック発生フラグが立っていれば、図４の４１１の例のようなフォールバックフラグ＝１、最終ＤＬフラグ＝０、フォールバックイメージへのポインタエリア在りのＤＬを生成する。ステップＳ５０８では、ＤＬ部品管理テーブル２へ登録されているＤＬ部品をすべてクリアし、ステップＳ５０９へ進む。ステップＳ５０９では、フォールバック発生フラグをセットして、ステップＳ５０２へ戻る。
【００３３】
ステップＳ５０６でフォールバックが発生しないと判断されると、ステップＳ５１０へ進む。ステップＳ５１０では、１ページ分の印刷データを全て解釈したか否かを判断し、まだ処理していなければＳ５０２へ戻り、次の印刷データの解釈をはじめる。１ページ分の印刷データの解釈が終了していたならば、ステップＳ５１１へ進む。ステップＳ５１１では、フォールバック発生フラグを検査し、フォールバック発生フラグが立っていれば、ステップＳ５１２へ進み、フォールバック発生フラグが立っていなければステップＳ５１３へ進む。ステップＳ５１２では、ＤＬ部品管理テーブル２に登録しているＤＬ部品をまとめ、フォールバックフラグ＝１、最終ＤＬフラグ＝１　のフォールバック用最終ＤＬを生成しレンダラー管理タスク３０２のＤＬキューへ登録して、ステップＳ５１３へ進む。ステップＳ５１３では、ＤＬ部品管理テーブル１に登録しているＤＬ部品をまとめ、フォールバックフラグ＝０、最終ＤＬフラグ＝１のフォールバック無しＤＬを生成しレンダラー管理タスク３０２のＤＬキューへ登録して、ステップＳ５１４へ進む。
【００３４】
ステップＳ５１４では、ジョブが終了したか否か、すなわちプリンタ１０００に通知された全てのＰＤＬデータを解釈したか否かを判断し、ジョブ終了していればステップＳ５１５へ進み終了する。ジョブが終了していなければ、ＤＬ部品管理テーブル１及びＤＬ部品管理テーブル２に登録されているＤＬ部品を全てクリアし（ステップＳ５１６）、フォールバック生成フラグをクリア（ステップＳ５１７）した後、ステップＳ５０２へ戻り残りの印刷データの解釈を行う。
【００３５】
ＤＬ生成タスク３０１が上記のように動作することにより、フォールバックの起きるページではハードレンダラー用にフォールバック用のＤＬを生成するとともに、ソフトウェアレンダラー用にフォールバック無しのＤＬを生成する。
【００３６】
図６は、レンダラー管理タスク３０２の動作を示すフローチャートである。レンダラー管理タスクは開始すると（ステップＳ６０１）、ステップＳ６０２でＤＬキューを監視し、ＤＬ生成タスク３０１でＤＬが生成され、ＤＬキューに登録されるのを待つ。ＤＬキューにＤＬが登録されていれば、先頭のＤＬに対する処理を行うためステップＳ６０３へ進む。
【００３７】
ステップＳ６０３では、ＤＬのフォールバックフラグを検査してフォールバック用のＤＬか否かを判断し、フォールバック用のＤＬであれば、ステップＳ６０４へ進む。ステップＳ６０４では、フォールバック発生フラグをチェックすることにより、フォールバックが発生済みであるか否かを検査する。フォールバックが起きていれば、即ちフォールバック発生フラグが立っていれば、ステップＳ６０６へ進む。ステップＳ６０６では現在処理中のＤＬを、ハードレンダラータスク３０４のＤＬキューへ登録し、ステップＳ６０２へ戻る。ステップＳ６０４でフォールバック発生フラグがたっていなければ、ステップＳ６０７へ進む。ステップＳ６０７では、フォールバック発生フラグをセットし、ステップＳ６０６へ進む。
【００３８】
ステップＳ６０３でフォールバック用のＤＬではないと判断される場合ステップＳ６０８へ進む。ステップＳ６０８では、フォールバック発生フラグを検査することにより、フォールバックが発生済みであるか否かを検査する。
【００３９】
ステップＳ６０８でフォールバックが発生済みである場合、ステップＳ６０９へ進む。ステップＳ６０９では現在処理中のＤＬを、ソフトウェアレンダラータスク３０３のＤＬキューへ登録し、ステップＳ６１０へ進む。ステップＳ６１０では、ソフトウェアレンダラータスク３０３またはハードレンダラータスク３０４から、レンダリング終了通知が通知されるのを待つ。ソフトウェアレンダラータスク３０３またはハードレンダラータスク３０４のいずれか一方からレンダリング終了通知を受信するとステップＳ６１１へ進む。ステップＳ６１１では、前記ステップＳ６１０で受信したレンダリング終了通知が、どちらのタスクから通知されたものかを判断し、ソフトウェアレンダラー３０３から通知されたものであればステップＳ６１２へ進み、ハードレンダラー３０４から通知されたものであればステップＳ６１５へ進む。
【００４０】
ステップＳ６１２では、ハードレンダラータスク３０４へレンダリング停止命令を通知し、ステップＳ６１３へ進む。ステップＳ６１３では、ソフトウェアレンダラータスク３０３の生成したソフトウェアレンダラー出力バッファ中の、ラスタイメージを最終的なラスタイメージとして登録し、ステップＳ６１４へ進む。ステップＳ６１４では、フォールバック発生フラグをクリアしてステップＳ６０２へ戻り、次のＤＬがＤＬ生成タスク３０１で生成され、本レンダラー管理タスク３０２のＤＬキューへ登録されるのを待つ。
【００４１】
ステップＳ６１５では、ソフトウェアレンダラータスク３０３へレンダリング停止命令を通知し、ステップＳ６１６へ進む。ステップＳ６１６では、ハードレンダラータスク３０４の生成したハードレンダラー出力バッファ中のラスタイメージ、を最終的なラスタイメージとして登録し、ステップＳ６１４へ進む。
【００４２】
ステップＳ６０８でフォールバックが発生済みでないと判断されると、ステップＳ６１７へ進む。ステップＳ６１７では、現在処理中のＤＬを、ハードレンダラータスク３０４のＤＬキューへ登録し、ステップＳ６１８へ進む。ステップＳ６１８では、ハードレンダレンダラータスク３０４からレンダリング終了通知が通知されるのを待ち、レンダリング終了通知を受信すると、ステップＳ６１６へ進む。
【００４３】
レンダラー管理タスクが、上記のように動作することにより、フォールバックの起きないページのＤＬは常にハードレンダラータスク３０４でレンダリングされ、フォールバックの起きるページのＤＬは常にソフトウェアレンダラータスク３０３とハードレンダラーレンダラータスク３０４の両方でレンダリングされ、先に終わったほうの結果が最終のレンダリング結果として使用される。すなわち、フォールバックが発生しない場合は、ソフトレンダラータスク３０３へＤＬが送付されず、ハードレンダラータスク３０４のみ起動するので、無駄な処理を行わず、消費電力が削減できる。また、一方のレンダリングが終了したら、他方のレンダリングを停止するので、無駄な処理を行わず、消費電力が削減できる。
【００４４】
図７は、ソフトウェアレンダラータスク３０３の動作を示すフローチャートである。ソフトウェアレンダラータスク３０３は開始すると（ステップＳ７０１）、ステップＳ７０２で自タスクＤＬキューを監視し、レンダラー管理３０２から、自タスクのＤＬキューに登録されるのを待つ。自タスクのＤＬキューにＤＬが登録されていれば、先頭のＤＬに対する処理を行うためステップＳ７０３へ進む。
【００４５】
ステップＳ７０３では、ソフトウェアレンダラーの初期化を行い、レンダリングを開始する準備をし、ステップＳ７０４へ進む。ステップＳ７０４では現在処理中のＤＬを解釈し、３２スキャンライン分レンダリングして一時バッファに格納し、ステップＳ７０５へ進む。ここで３２スキャンライン分レンダリングしているとしているが、このスキャンライン数は一例であり、他のスキャンライン数でも良いことは言うまでもない。ステップＳ７０５では、レンダラー管理タスク３０２から停止命令を受信しているか否かを確認し、停止命令を受信していれば、レンダリング処理を中止して、Ｓ７０２へ戻り新たなＤＬの登録を待つ。停止命令を受信していなければ、ステップＳ７０６へ進む。
【００４６】
ステップＳ７０６では、前記一時バッファ中のラスタイメージを圧縮部２３で圧縮し、圧縮結果を画像出力バッファ３中のソフトレンダラー出力バッファに格納し、ステップＳ７０７へ進む。ステップＳ７０７では、全スキャンラインのレンダリングが終了したか否かを判断し、終了していなければＳ７０４へ戻り、次の３２スキャンラインのレンダリングを行う。レンダリングが終了していれば、ステップＳ７０８へ進む。ステップＳ７０８では、レンダラー管理タスク３０２へレンダリング終了通知を発行し、ステップＳ７０２へ戻る。
【００４７】
図８は、ハードレンダラータスク３０４の動作を示すフローチャートである。ハードレンダラータスク３０４は開始すると（ステップＳ８０１）、ステップＳ８０２で自タスクＤＬキューを監視し、レンダラー管理タスク３０２から、自タスクのＤＬキューに登録されるのを待つ。自タスクのＤＬキューにＤＬが登録されていれば、先頭のＤＬに対する処理を行うためステップＳ８０３へ進む。ステップＳ８０３では現在処理中のＤＬにフォールバックイメージへのポインタエリア４０４が存在するか検査し、存在すればステップＳ８０４へ進み、存在しなければステップＳ８０５へ進む。ステップＳ８０４では、前回のハードレンダラー３０４でレンダリングした結果が保存されているフォールバックバッファへのポインタを現在処理中のＤＬのフォールバックイメージへのポインタエリア４０４へセットしステップＳ８０５へ進む。
【００４８】
ステップＳ８０５では、処理中のＤＬをハードレンダラー２０のローカルメモリ２１へ転送し、ハードレンダラー２０の初期化を行ってレンダリングを開始する準備をし、ステップＳ８０６へ進む。ステップＳ８０６で、ハードレンダラー２０はローカルメモリ２１中のＤＬを解釈し、３２スキャンライン分レンダリングして一時バッファに格納し、ステップＳ８０７へ進む。ここで３２スキャンライン分レンダリングしているとしているが、このスキャンライン数は一例であり、他のスキャンライン数でも良いことは言うまでもない。
【００４９】
ステップＳ８０７では、レンダラー管理タスク３０２から停止命令を受信しているか否かを確認し、停止命令を受信していれば、レンダリング処理を中止して、ステップＳ８０８へ進む。ステップＳ８０８では、自タスクのＤＬキューを検査し、自タスクのＤＬキュー内に残っているＤＬを最初の最終ＤＬまで削除し、Ｓ８０２へ戻る。
【００５０】
ステップＳ８０７で、停止命令を受信していないと判断すると、ステップＳ８０９へ進む。ステップＳ８０９では、ローカルメモリ２１中のＤＬの、フォールバックフラグ４０２と最終ＤＬフラグを検査し、フォールバック用ＤＬでありかつ最終ＤＬではないことを確認する。この結果が偽であればステップＳ８１０へ進み、真であればＳ８１１へ進む。
【００５１】
ステップＳ８１０では、一時バッファ中のラスタイメージを圧縮部２３で圧縮し、圧縮結果を画像出力バッファ３中のフォールバックバッファに格納し、ステップＳ８１２へ進む。ステップＳ８１１では、一時バッファ中のラスタイメージを圧縮部２３で圧縮し、圧縮結果を画像出力バッファ３中のハードレンダラー出力バッファに格納し、ステップＳ８１２へ進む。
【００５２】
ステップＳ８１２では、全スキャンラインのレンダリングが終了したか否かを判断し、終了していなければＳ８０６へ戻り、次の３２スキャンラインのレンダリングを行う。レンダリングが終了していれば、ステップＳ８１３へ進む。ステップＳ８１３では、レンダラー管理タスク３０２へレンダリング終了通知を発行し、ステップＳ８０２へ戻る。
【００５３】
以上第１実施例によれば、フォールバックが発生したときに、ソフトウェアレンダラー用のＤＬとハードウェアレンダラー用のＤＬをそれぞれ作成し、両レンダラーで同時にレンダリングを行い、早く終了した方の結果を使用することができ、システムとして高速なレンダリングを行うことができる。また、第１実施例では、ソフトウェアレンダラー用のＤＬとハードウェアレンダラー用のＤＬをそれぞれ作成するので、それぞれの処理に適したＤＬを作成することができ、その後の処理が容易である。
【００５４】
図９は、動作例を示すタイムチャート図であり、ソフトウェアレンダラーの方が速い場合の例を示している。図９の９００は、ＤＬ生成タスク３０１での１ページのＤＬ生成に要した時間を示しており、９０１、９０２のタイミングでフォールバックが発生しフォールバック用のＤＬがハードレンダラータスク３０４のＤＬキューに登録されている。また、９０３のタイミングでハードレンダラー用のフォールバック用最終ＤＬとソフトウェアレンダラー用最終ＤＬが生成されている。
【００５５】
９０４は、９０１で発行されたフォールバック用のＤＬをハードレンダラータスク３０４でレンダリングするのに要した時間、９０５は、９０２で発行されたフォールバック用のＤＬをハードレンダラータスク３０４でレンダリングするのに要した時間、９０６は、９０３で発行されたフォールバック用の最終ＤＬをハードレンダラータスク３０４でレンダリングするのに要した時間、をそれぞれ示しおり、９０７は、９０４、９０５及び９０６の総計でハードレンダラータスク３０４が１ページのレンダリングに要した時間を示している。また、ハードレンダラー３０４のレンダリング開始時間は、９０１でフォールバック用のＤＬが生成されたタイミングとなる。
【００５６】
９０８は、９０３で発行されたソフトウェアレンダラー用の最終ＤＬをソフトウェアレンダラータスク３０３でレンダリングするのに要した時間を示しており、１ページのレンダリングに要する時間はこれだけであり、レンダリングの開始時間は９０３のタイミングとなる。図９に示すようにハードレンダラータスク３０４は、最終ＤＬのレンダリングは非常に早いが、フォールバック時のレンダリングはレンダリング結果の転送経路の違いにより非常に時間がかかる場合がある。一方、ソフトレンダラータスク３０３は最終ＤＬのレンダリングにかかる時間は、ハードレンダラーよりも遅いがフォールバックを起こすことがない。
【００５７】
このようなシステムで本実施例を実行した場合、図９に示すように、フォールバック用ＤＬの生成されるタイミングによってソフトレンダラータスク３０３のレンダリングの方が速く終了する場合がある。
【００５８】
〔第２実施例〕
第１実施例では、ＤＬ生成タスク３０１においてフォールバック発生時にソフトウェアレンダラータスク用にフォールバック無しのＤＬを生成しているが、本実施例ではソフトウェアレンダラータスク３０３において、ハードウェアレンダラータスク３０４と同一のＤＬを使用してレンダリングを行う。但し、ソフトウェアレンダラーはフォールバックによって分割されているＤＬを１つのＤＬとして扱い、フォールバックを発生しない。即ち、フォールバック用のＤＬでもレンダリングは一度しか行なわれない。
【００５９】
本実施例では、図２のシステム構成、図３のタスク構成は第１実施例と同一である。さらにハードレンダラータスク３０４の動作も第１実施例と同一である。以下、図１０、図１１、図１２のフローチャートを使用して第１実施例との違いである、ＤＬ生成タスク３０１、レンダラー管理タスク３０２、ソフトウェアレンダリングタスク３０３の動作を説明する。
【００６０】
図１０は、本実施例のＤＬ生成タスク３０１の動作を示すフローチャートである。
【００６１】
プリンタ１０００が外部ネットワーク３０００から印刷データを受信すると、ＤＬ生成タスク３０１が起動されスタートとする。ＤＬ生成タスクがスタートすると（ステップＳ１００１）、受信したデータの解釈し（ステップＳ１００２）、ＤＬ部品を生成する（ステップＳ１００３）。ステップＳ１００３で１つのＤＬ部品を生成するとステップＳ１００４へ進む。ステップＳ１００４では、ステップＳ１００３で生成したＤＬ部品をＤＬ部品管理テーブルへ登録し、ステップＳ１００５へ進む。ＤＬ部品管理テーブルは、ワークテーブル２２にある。
【００６２】
ステップＳ１００５では、ハードレンダラー２０に搭載されている、各種ワークテーブル２３を現在ＤＬ部品管理テーブルに登録されているＤＬ部品がどれだけ使用しているか、及び現在ＤＬ部品管理テーブルに登録されているＤＬ部品のサイズをそれぞれ検査し、各ワークテーブルの上限又はＤＬ部品のサイズがハードレンダラー２０のローカルメモリ２１に達していたら、フォールバックが発生すると判断し、ステップＳ１００６へ進む。
【００６３】
ステップＳ１００６では、ＤＬ部品管理テーブル２に登録しているＤＬ部品をまとめフォールバック用のＤＬを生成しレンダラー管理タスク３０２のＤＬキューへ登録して、ステップＳ１００７へ進む。このとき、フォールバック発生フラグを検査し、フォールバック発生フラグが立っていなければ、図４の４１０の例のようなフォールバックフラグ＝１、最終ＤＬフラグ＝０、フォールバックイメージへのポインタエリア無しのＤＬを生成し、フォールバック発生フラグが立っていれば、図４の４１１の例のようなフォールバックフラグ＝１、最終ＤＬフラグ＝０、フォールバックイメージへのポインタエリア在りのＤＬを生成する。ステップＳ１００７では、ＤＬ部品管理テーブルへ登録されているＤＬ部品をすべてクリアし、ステップＳ１００８へ進む。ステップＳ１００８では、フォールバック発生フラグをセットして、ステップＳ１００２へ戻る。
【００６４】
ステップＳ１００５でフォールバックが発生しないと判断されると、ステップＳ１００９へ進む。ステップＳ１００９では、１ページ分の印刷データを全て解釈したか否かを判断し、まだ処理していなければＳ１００２へ戻り、次の印刷データの解釈をはじめる。１ページ分の印刷データの解釈が終了したいたならば、ステップＳ１０１０へ進む。
【００６５】
ステップＳ１０１０では、フォールバック発生フラグを検査し、フォールバック発生フラグが立っていれば、ステップＳ１０１２へ進み、フォールバック発生フラグが立っていなければステップＳ１０１１へ進む。
【００６６】
ステップＳ１０１２では、ＤＬ部品管理テーブルに登録しているＤＬ部品をまとめ、フォールバックフラグ＝１、最終ＤＬフラグ＝１のフォールバック用最終ＤＬを生成しレンダラー管理タスク３０２のＤＬキューへ登録して、ステップＳ１０１３へ進む。
【００６７】
ステップＳ１０１１では、ＤＬ部品管理テーブルに登録しているＤＬ部品をまとめ、フォールバックフラグ＝０、最終ＤＬフラグ＝１のフォールバック無しＤＬを生成しレンダラー管理タスク３０２のＤＬキューへ登録して、ステップＳ１０１３へ進む。
【００６８】
ステップＳ１０１３では、ジョブが終了したか否か、すなわちプリンタ１０００に通知された全ての印刷データを解釈したか否かを判断し、ジョブ終了していればステップＳ１０１６へ進み終了する。ジョブが終了していなければ、ＤＬ部品管理テーブルに登録されているＤＬ部品を全てクリアし（ステップＳ１０１４）、フォールバック生成フラグをクリア（ステップＳ１０１５）した後、ステップＳ１００２へ戻り残りの印刷データの解釈を行う。
【００６９】
図１１は、本実施例のレンダラー管理タスク３０２の動作を示すフローチャートである。レンダラー管理タスクは開始すると（ステップＳ１１０１）、ステップＳ１１０２でＤＬキューを監視し、ＤＬ生成タスク３０１でＤＬが生成され、ＤＬキューに登録されるのを待つ。ＤＬキューにＤＬが登録されていれば、先頭のＤＬに対する処理を行うためステップ１１０３へ進む。
【００７０】
ステップＳ１１０３では、ＤＬのフォールバックフラグを検査してフォールバック用のＤＬか否かを判断し、フォールバック用のＤＬであれば、ステップ１１０４へ進む。ステップＳ１１０４では、フォールバック発生フラグをチェックすることにより、フォールバックが発生済みであるか否かを検査する。フォールバックが起きていれば、即ちフォールバック発生フラグが立っていれば、ステップＳ１１０７へ進みフォールバック発生フラグが立っていなければステップＳ１１０６へ進む。
【００７１】
ステップＳ１１０６では、フォールバック発生フラグをセットし、ステップＳ１１０７へ進む。ステップＳ１１０７では、現在処理中のＤＬを、ハードレンダラータスク３０４のＤＬキューへ登録し、ステップＳ１１０８へ進む。ステップＳ１１０８では、現在処理中のＤＬを、ハードレンダラータスク３０４のＤＬキューへ登録し、ステップＳ１１０９へ進む。
【００７２】
ステップＳ１１０９では、現在処理中のＤＬの最終ＤＬフラグ４０３を検査し、最終ＤＬであるか否かを判断し、最終ＤＬでなければステップＳ１１０２へ戻り、最終ＤＬであるならばステップＳ１１１０へ進む。ステップＳ１１１０では、ソフトウェアレンダラータスク３０３またはハードレンダラータスク３０４から、レンダリング終了通知が通知されるのを待つ。ソフトウェアレンダラータスク３０３またはハードレンダラータスク３０４のいずれか一方からンダリング終了通知を受信するとステップＳ１１１１へ進む。
【００７３】
ステップＳ１１１１では、前記ステップＳ１１１０で受信したレンダリング終了通知が、どちらのタスクから通知されたものかを判断し、ソフトウェアレンダラー３０３から通知されたものであればステップＳ１１１２へ進み、ハードレンダラー３０４から通知されたものであればステップＳ１１１４へ進む。ステップＳ１１１２では、ハードレンダラータスク３０４へレンダリング停止命令を通知し、ステップＳ１１１３へ進む。ステップＳ１１１３では、ソフトウェアレンダラータスク３０３の生成したソフトウェアレンダラー出力バッファ中の、ラスタイメージを最終的なラスタイメージとして登録し、ステップＳ１１１６へ進む。
【００７４】
ステップＳ１１１４では、ソフトウェアレンダラータスク３０３へレンダリング停止命令を通知し、ステップＳ１１１５へ進む。ステップＳ１１１５では、ハードレンダラータスク３０４の生成したハードレンダラー出力バッファ中のラスタイメージ、を最終的なラスタイメージとして登録し、ステップＳ１１１６へ進む。
【００７５】
ステップＳ１１１６では、フォールバック発生フラグをクリアしてステップＳ１１０２へ戻り、次のＤＬがＤＬ生成タスク３０１で生成され、本レンダラー管理タスク３０２のＤＬキューへ登録されるのを待つ。
【００７６】
ステップＳ１１０３で、フォールバック用のＤＬではないと判断される場合ステップＳ１１１７へ進む。ステップＳ１１１７では、現在処理中のＤＬを、ハードレンダラータスク３０４のＤＬキューへ登録し、ステップＳ１１１８へ進む。ステップＳ１１１８では、ハードレンダレンダラータスク３０４からレンダリング終了通知が通知されるのを待ち、レンダリング終了通知を受信すると、ステップＳ１１１５へ進む。
【００７７】
レンダラー管理タスクが、上記のように動作することにより、フォールバックの起きるページのＤＬは常にソフトウェアレンダラータスク３０３とハードレンダラーレンダラータスク３０４の両方でレンダリングされ、先に終わったほうの結果が最終のレンダリング結果として使用される。
【００７８】
図１２は、本実施例のソフトウェアレンダラータスク３０３の動作を示すフローチャートである。ソフトウェアレンダラータスク３０３は開始すると（ステップＳ１２０１）、ステップＳ１２０２で自タスクＤＬキューを監視し、レンダラー管理３０２から、自タスクのＤＬキューに最終ＤＬフラグ４０３がセットされているＤＬが登録されるのを待つ。自タスクのＤＬキューに最終ＤＬが登録されていれば、ＤＬキューに登録されているＤＬの処理を行うためにステップＳ１２０３へ進む。
【００７９】
ステップＳ１２０３では、ソフトウェアレンダラーの初期化を行い、レンダリングを開始する準備をし、ステップＳ１２０４へ進む。ステップＳ１２０４では現在処理中のＤＬを解釈し、３２スキャンライン分レンダリングして一時バッファに格納し、ステップＳ１２０５へ進む。ソフトウェアレンダラーはフォールバック用のＤＬを処理する場合、複数に分割されているフォールバック用ＤＬを１つのＤＬとして扱い、フォールバック用ＤＬの内部に登録されている、フォールバックイメージを背景イメージとして使用する命令を無視する。
【００８０】
ステップＳ１２０５では、レンダラー管理タスク３０２から停止命令を受信しているか否かを確認し、停止命令を受信していれば、レンダリング処理を中止して、ステップＳ１２０６へ進む。ステップＳ１２０６では、自タスクのＤＬキューを検査し、自タスクのＤＬキュー内に残っているＤＬを最初の最終ＤＬまで削除し、Ｓ１２０２へ戻る。
【００８１】
ステップＳ１２０５で、停止命令を受信していないと判断すると、ステップＳ１２０７へ進む。ステップＳ１２０７では、前記一時バッファ中のラスタイメージを圧縮部２３で圧縮し、圧縮結果を画像出力バッファ３中のソフトレンダラー出力バッファに格納し、ステップＳ１２０８へ進む。ステップＳ１２０８では、全スキャンラインのレンダリングが終了したか否かを判断し、終了していなければＳ１２０４へ戻り、次の３２スキャンラインのレンダリングを行う。レンダリングが終了していれば、ステップＳ１２０９へ進む。ステップＳ１２０９では、レンダラー管理タスク３０２へレンダリング終了通知を発行し、ステップＳ１２０２へ戻る。
【００８２】
以上第２実施例によれば、フォールバックが発生したときに、同一のＤＬを両レンダラーで同時にレンダリングを行い、早く終了した方の結果を使用することができ、システムとして高速なレンダリングを行うことができる。また、１種類のＤＬしか生成しないために、省メモリのシステムを構築することができる。
【００８３】
＜その他の実施形態＞
また、上記実施形態では、ネットワークを構成するハードウェア等が含まれるものの、各処理部は実際はソフトウェアで実現できるものである。即ち、本発明の目的は、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または、記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（または、ＣＰＵやＭＰＵ）が、記憶媒体に格納されたプログラムコードを読み出し、実行することによっても達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が、上述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体が本発明を構成することになる。
【００８４】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）等が、実際の処理の一部または全部を行い、その処理によって、上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００８５】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵ等が、実際の処理の一部または全部を行い、その処理によって、上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００８６】
【発明の効果】
以上述べたように本発明によれば、ページ記述言語よりイメージデータを生成するためのレンダリングを、ハードによるレンダリング処理と共に、ソフトによるレンダリング処理を行い、早くレンダリング処理が終了したほうのレンダリング結果を使用することにより、様々なページ記述言語を高速にレンダリング処理でき、前記ページ記述言語に対応するイメージを高速に印刷することを可能とする。
【図面の簡単な説明】
【図１】本発明を適用可能な実施例の出力装置の構成を示す断面図である。
【図２】本発明の実施例を示すプリンタ制御システムの構成を説明するブロック図である。
【図３】本発明の実施例で動作するタスクの概念図である。
【図４】本発明の実施例のディスプレイリスト（ＤＬ）の構造を表す図である。
【図５】第１実施例におけるＤＬ生成タスク３０１の動作を説明するフローチャートである。
【図６】第１実施例におけるレンダラー管理タスク３０２の動作を説明するフローチャートである。
【図７】第１実施例におけるソフトウェアレンダリングタスク３０３の動作を説明するフローチャートである。
【図８】本発明の実施例におけるハードレンダリングタスク３０４の動作を説明するフローチャートである。
【図９】第１実施例における動作例を示すタイムチャート図である。
【図１０】第２実施例におけるＤＬ生成タスク３０１の動作を説明するフローチャートである。
【図１１】第２実施例におけるレンダラー管理タスク３０２の動作を説明するフローチャートである。
【図１２】第２実施例におけるソフトウェアレンダリングタスク３０３の動作を説明するフローチャートである。
【図１】
2004066532.tif 000003
【図２】
2004066532.tif 000004
【図３】
2004066532.tif 000005
【図４】
2004066532.tif 000006
【図５】
2004066532.tif 000007
【図６】
2004066532.tif 000008
【図７】
2004066532.tif 000009
【図８】
2004066532.tif 000010
【図９】
2004066532.tif 000011
【図１０】
2004066532.tif 000012
【図１１】
2004066532.tif 000013
【図１２】
2004066532.tif 000014