(57)【要約】      （修正有）【課題】ハードウェアによるデータ変換処理の弱点をソフトウェアによるデータ変換処理への切り替えによって克服する。【解決手段】第１のデータから第２のデータを生成するデータ生成手段と前記データ生成手段により生成される第２のデータから第３のデータへのデータ変換処理をソフトウェアにより実行する第１のデータ変換手段と前記データ生成手段により生成される第２のデータから第３のデータへのデータ変換処理をハードウェアにより実行する第２のデータ変換手段とがあり、第２のデータから第３のデータ変換処理をフォールバック回数に基づき、前記第１のデータ変換手段により実行させるか第２のデータ変換手段により実行させるかを切り替える。【選択図】図２
2005149316.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータから第２のデータを生成するデータ生成手段と、
前記データ生成手段により生成される第２のデータから第３のデータへのデータ変換処理を、ソフトウェアにより実行する第１のデータ変換手段と、
前記データ生成手段により生成される第２のデータから第３のデータへのデータ変換処理を、ハードウェアにより実行する第２のデータ変換手段と、
第２のデータから第３のデータへのデータ変換処理を、前記第１のデータ変換手段により実行させるか、前記第２のデータ変換手段により実行させるかをフォールバック回数に基づき切り替える制御手段とを有することを特徴とする情報処理装置。
【請求項２】
前記第１のデータを解析することにより、前記第１のデータから生成される第２のデータ全てを第３のデータに変換する場合に必要となる前記第２のデータ変換処理によるデータ変換処理回数の予測値を算出する予測値算出手段と、
前記第２のデータ変換手段による現時点までのデータ変換処理の実行回数を計測する計測手段とを更に有し、
前記制御手段は、前記データ変換処理の予測値から前記データ変換処理の実行回数を減算した値が所定の値以下であれば、第２のデータに対するデータ変換処理を前記第２のデータ変換手段に実行させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１のデータとともに、前記第１のデータから生成される第２のデータ全てを第３のデータに変換する場合に必要となる前記第２のデータ変換手段によるデータ変換処理回数の予測値を示す予測値データを受信するデータ受信手段と、
前記第２のデータ変換手段による現時点までのデータ変換処理の実行回数を計測する計測手段とを更に有し、
前記制御手段は、前記データ変換手段の予測値から前記データ変換処理の実行回数を減算した値が所定の値以下であれば、第２のデータに対するデータ変換処理を前記第２のデータ変換処理に実行させることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記制御手段は、前記データ変換処理の予測値から前記データ変換処理の実行回数を減算した値が前記所定の値より大きければ、第２のデータに対するデータ変換処理を前記第１のデータ変換手段に実行させることを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記制御手段は、前記データ生成手段により現在までに生成された第２のデータのサイズが前記第２のデータ変換手段による一回のデータ変換処理により変換可能なサイズであれば、前記第２のデータに対するデータ変換処理を第２のデータ変換手段に実行させることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記制御手段は、前記データ生成手段により現在までに生成された第２のデータのサイズが前記第２のデータ変換手段による一回のデータ変換処理により変換可能なサイズを超過し、且つ、前記第２のデータのサイズが所定の値を超過した場合、前記第２のデータに対するデータ変換処理を前記第２のデータ変換手段に実行させることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記制御手段は、前記データ生成手段により現在までに生成された第２のデータのサイズが前記第２のデータ変換手段による一回のデータ変換処理により変換可能なサイズを超過し、且つ、前記第２のデータ変換手段が前記第２のデータを第３のデータに変換する際に使用する階層テーブル又は色テーブルのサイズが所定の値を超過し、且つ、前記第２のデータのサイズが所定の値よりも小さい場合、前記第２のデータに対するデータ変換処理を前記第１のデータ変換手段に実行させることを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記制御手段は、前記データ生成手段により現在までに生成された第２のデータのサイズが前記第２のデータ変換手段による一回のデータ変換処理により変換可能なサイズを超過し、且つ、前記第２のデータ変換手段が前記第２のデータを第３のデータに変換する際に使用する階層テーブル又は色テーブルのサイズが所定の値を超過し、且つ、前記第２のデータのサイズが所定の値以上である場合、前記第２のデータに対するデータ変換処理を前記第２のデータ変換手段に実行させることを特徴とする請求項１に記載の情報処理装置。
【請求項９】
情報処理装置による情報処理方法であって、
第１のデータから第２のデータを生成するデータ生成ステップと、
前記データ生成ステップにより生成される第２のデータから第３のデータへのデータ変換処理を、ソフトウェアにより実行させるか、ハードウェアにより実行させるかをフォールバック回数に基づき切り替える制御ステップとを含むことを特徴とする情報処理方法。
【請求項１０】
請求項９に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１２】
ラスタイメージへの変換処理を、ソフトウェアにより実行する第１のデータ変換手段と、
ラスタイメージへの変換処理を、ハードウェアにより実行する第２のデータ変換手段と、
ラスタイメージへの変換処理を、前記第１のデータ変換手段により実行させるか、前記第２のデータ変換手段により実行させるかをフォールバックの回数に基づき切り替える制御手段とを有することを特徴とする印刷装置。
【請求項１３】
ラスタイメージへの変換処理を、ソフトウェアにより実行する第１のデータ変換手段と、
ラスタイメージへの変換処理を、ハードウェアにより実行する第２のデータ変換手段と、
ラスタイメージへの変換処理を、前記第１のデータ変換手段により実行させるか、前記第２のデータ変換手段により実行させるかをフォールバック処理の時間と前記第１のデータ変換手段の処理時間と前記第２のデータ変換手段の処理時間とに基づき切り替える制御手段とを有することを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば受信データから生成される中間言語をラスタイメージに変換する情報処理装置、情報処理方法、プログラム、記録媒体及び印刷装置に関するものである。
【背景技術】
【０００２】
近年、情報処理システムは一般化され広く使われるようになってきている。このような状況の中、前記情報処理システム上で作成される多くの電子ドキュメントが作成され、カラー印刷装置への出力要求は増大する傾向にあり、高速かつ安価なカラー印刷装置が望まれている。
【０００３】
従来、ホストコンピュータやプリントサーバから送信されてきたページ記述言語（ＰＤＬ）を解釈しラスタイメージを作成する印刷システムでは、ＰＤＬを解釈した上で中間言語であるディスプレイリスト（ＤＬ）を作成し、このＤＬからラスタイメージ変換（レンダリング）を行うのが一般的である。この一連の処理の中でレンダリング処理は、非常に時間のかかる処理ではあるが、比較的ハード化しやすいため、専用チップ（ハードレンダラ）として実装し高速化を行なうことができる。しかしながら、このハードレンダラはハードであるので、
１．あらかじめ定められた限定されたメモリ空間しかアクセスできない
２．レンダリングする領域（通常は１ページ）のＤＬをすべてこの限定された領域に収めなければならない
３．各種ワーク用テーブルに上限が存在する
といった制約がある。
【０００４】
この制約を回避する為にフォールバックと呼ばれる処理が行われる。フォールバックは、ＤＬのサイズがある一定のサイズを超えた場合や、そのＤＬを処理するためのワーク領域が一定のサイズを超えるとわかった場合に、一度そこまでに生成されたＤＬをレンダリングしてラスタイメージとし、そこまで作成したＤＬを一度クリアする。このラスタイメージを描画エリアの背景イメージ（フォールバック画像）として再びＤＬの一部に追加する。通常、この背景イメージは圧縮されるため、追加されるＤＬのサイズは元のＤＬサイズよりも小さくなる。そこで、この空いた領域に残りのＤＬを作成していくことにより限定されたメモリ空間で大きなサイズのＤＬを処理できる。また、フォールバック時のレンダリング終了時にレンダラのワーク領域もクリアされるため、このワーク領域のサイズ制限も回避することができ、複雑なＰＤＬデータも処理可能となる。
【０００５】
【特許文献１】特開２００２−１２０４１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述のようにフォールバックにより複雑なＰＤＬデータもハードウェアレンダラで処理可能となる。しかしながら、フォールバックが発生した場合、フォールバック用ＤＬの作成やフォールバック画像格納領域の確保等、オーバヘッドが存在するため、数十回もフォールバックを起こさなければならない複雑なデータを処理する場合、このオーバヘッドが非常に大きくなってしまい、ハードウェアレンダラの高速性を生かせないという問題点がある。
【０００７】
一方、ソフトウェアレンダラではメモリの許す限り、前記のようなＤＬのサイズ制限、レンダリングのための各種ワーク用テーブルの上限は存在せずフォールバックを行なうこと無しに複雑なＰＤＬデータのレンダリングを行なうことが可能である。
【０００８】
そこで、本発明の目的は、ハードウェアによるデータ変換処理の弱点をソフトウェアによるデータ変換処理への切り替えによって克服することにある。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、第１のデータから第２のデータを生成するデータ生成手段と、前記データ生成手段により生成される第２のデータから第３のデータへのデータ変換処理を、ソフトウェアにより実行する第１のデータ変換手段と、前記データ生成手段により生成される第２のデータから第３のデータへのデータ変換処理を、ハードウェアにより実行する第２のデータ変換手段と、第２のデータから第３のデータへのデータ変換処理を、前記第１のデータ変換手段により実行させるか、前記第２のデータ変換手段により実行させるかをフォールバック回数に基づき切り替える制御手段とを有することを特徴とする。
【００１０】
本発明の情報処理方法は、情報処理装置による情報処理方法であって、第１のデータから第２のデータを生成するデータ生成ステップと、前記データ生成ステップにより生成される第２のデータから第３のデータへのデータ変換処理を、ソフトウェアにより実行させるか、ハードウェアにより実行させるかをフォールバック回数に基づき切り替える制御ステップとを含むことを特徴とする。
【００１１】
前記情報処理方法をコンピュータに実行させることを特徴とする。本発明のコンピュータ読み取り可能な記録媒体は、前記プログラムを記録したことを特徴とする。
【００１２】
本発明の印刷装置は、ラスタイメージへの変換処理を、ソフトウェアにより実行する第１のデータ変換手段と、ラスタイメージへの変換処理を、ハードウェアにより実行する第２のデータ変換手段と、ラスタイメージへの変換処理を、前記第１のデータ変換手段により実行させるか、前記第２のデータ変換手段により実行させるかをフォールバックの回数に基づき切り替える制御手段とを有することを特徴とする。
【００１３】
本発明の印刷装置の他の態様は、ラスタイメージへの変換処理を、ソフトウェアにより実行する第１のデータ変換手段と、ラスタイメージへの変換処理を、ハードウェアにより実行する第２のデータ変換手段と、ラスタイメージへの変換処理を、前記第１のデータ変換手段により実行させるか、前記第２のデータ変換手段により実行させるかをフォールバック処理の時間と前記第１のデータ変換手段の処理時間と前記第２のデータ変換手段の処理時間とに基づき切り替える制御手段とを有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ソフトウェアによるデータ変換処理を行う第１のデータ変換手段と、ハードウェアによるデータ変換処理を行う第２のデータ変換手段とを切り替えてデータ変換処理を行うことができるので、ハードウェアによるデータ変換処理の弱点をソフトウェアによるデータ変換処理への切り替えによって克服することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１６】
本発明の実施形態の説明を行う前に、適用するに好適なレーザビームプリンタおよびインクジェットプリンタの構成について、図１を参照しながら説明する。なお、本発明の実施形態に適用可能なプリンタは、レーザビームプリンタおよびインクジェットプリンタに限られるものではなく、他のプリント方式のプリンタでも良いことは言うまでもない。
【００１７】
図１は、本発明の一実施形態に係る出力装置の構成を示す断面図であり、例えばレーザビームプリンタ（ＬＢＰ）の場合を示す。
図１において、１０００はＬＢＰ本体であり、外部にネットワークや直接インタフェースで接続されているホストコンピュータ等の外部情報源から供給される印刷情報（文字コード等）やフォーム情報あるいはマクロ命令等を入力して記憶するとともに、それらの情報に従って対応する文字パターンやフォームパターン等を作成し、記録媒体である記録紙等に像を形成する。１０１２は操作のためのスイッチおよびＬＥＤ表示器等が配されている操作パネル、１００１はＬＢＰ本体１０００全体の制御および外部ネットワーク等から供給される文字情報等を解析するプリンタ制御ユニットである。このプリンタ制御ユニット１００１は、主に文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ１００２に出力する。
【００１８】
レーザドライバ１００２は半導体レ−ザ１００３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ１００３から発射されるレーザ光１００４のオン・オフを切り換える。レーザ光１００４は回転多面鏡１００５で左右方向に振らされて静電ドラム１００６上を走査露光する。これにより、静電ドラム１００６上には文字パターンの静電潜像が形成されることになる。この潜像は、静電ドラム１００６周囲に配設された現像ユニット１００７により現像された後、記録紙に転写される。この記録紙にはカットシートを用い、カットシート記録紙はＬＢＰ１０００に装着した用紙カセット１００８に収納され、給紙ローラ１００９および搬送ローラ１０１０と搬送ローラ１０１１とにより装置内に取り込まれて、静電ドラム１００６に供給される。
【００１９】
図２は、プリンタ（ＬＢＰ）１０００内部に構成されるプリンタ制御システムの構成を示すブロック図である。
図２のプリンタ制御ユニット１００１において、MAIN-CPU１はプリンタ１０００のCPUであり、ＲＯＭ４に記憶された制御プログラムや外部メモリ７に記憶された制御プログラムなどに基づいてシステムバス５に接続される各種のデバイスへのアクセスを総合的に制御し、印刷部インタフェース８を介して接続される印刷部(プリンタエンジン)９に出力情報として画像信号を出力する。
【００２０】
ＲＯＭ４には、図３、図４のフローチャートに示されるようなMAIN-CPU１の制御プログラムや、プリンタ１０００の制御に必要なデータを記憶する。MAIN-CPU１はＩ／Ｏ１１を介して外部ネットワーク３０００に接続されているホストコンピュータ等の外部装置と通信可能に構成されている。なお、ホストコンピュータと外部ネットワークを介して通信するとしているが、図示しない直接インタフェースを介してホストコンピュータと接続し、通信を行っても良いことは言うまでもでもない。
【００２１】
２はMAIN-CPU１の主メモリ・ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。３は前記ＲＡＭ2上に用意される画像出力バッファであり、フォールバックバッファや画像スプールとして後述する２０のハードレンダラやMAIN-CPU１上で実行されるソフトレンダラで作成されるラスタイメージ及び属性ビットが記録される。
【００２２】
６はメモリコントローラ（MC）であり、ハードディスク等の外部メモリ７へのアクセスを制御する。２０はハードレンダラであり、内部にローカルメモリ２１及びワークテーブル３０を持っている。ハードレンダラ２０は、ローカルメモリ２１に転送されてきたディスプレイリスト（ＤＬ）を解釈し、ラスタイメージ及びラスタイメージの各ピクセル毎に対応する属性ビットを作成（レンダリング）する。このレンダリングの過程でワークテーブル３０内にある各種テーブルを使用する。ワークテーブル３０内には階層テーブルと色テーブルがそれぞれ４０９６エントリー分含まれており、それぞれのエントリー数を超えるディスプレイリストはハードレンダラ２０ではレンダリングできない。
【００２３】
ハードレンダラ２０やソフトレンダラのレンダリングで生成される各属性ビットは、１bitのカラービット、１bitの細線ビット及び２bitのオブジェクト種ビットの３つのビットフィールド計４bitで構成されている。カラービットは対応するピクセルがカラーオブジェクトを構成するピクセルであるか、白黒オブジェクトを構成するピクセルであるかを表し、このビットが"０"であるときにはカラーオブジェクトを構成するピクセルであり、"１"である時には白黒オブジェクトを構成するピクセルであることを示す。
【００２４】
細線ビットは対応するピクセルが細線を構成するピクセルであるか否かを表し、このビットが"１"であるときには細線を構成するピクセルであることを示す。オブジェクト種ビットは対応するピクセルがどのような種類の描画オブジェクトを構成しているかを表し、"０１"のときには文字オブジェクトを構成するピクセルであり、"１０"のときにはグラフィックスオブジェクトを構成するピクセルであり、"１１"のときにはイメージオブジェクトを構成するピクセルであり、"００"のときには、そのピクセルはどのようなオブジェクトを構成されていないことを示す。
【００２５】
非可逆圧縮部２２は前記ラスタイメージに非可逆圧縮を施し、ＲＡＭ２上の画像出力バッファ３へ記憶する。可逆圧縮部２３は前記属性ビットに可逆圧縮を施し、画像出力バッファ３へ記憶する。画像処理部２４は、ハードレンダラ３０やソフトレンダラによって生成された属性ビットに基づいて、ラスタデータに文字用の画像処理、イメージ用の画像処理、グラフィック用の画像処理、カラー用の画像処理、白黒用の画像処理、細線用の画像処理のいずれかまたは組み合わせて施す。
【００２６】
＜第１の実施形態＞
このように構成されたプリンタ制御システムにおいて、図３及び図４のフローチャートを参照しながら、本発明の第１の実施形態における動作を説明する。
【００２７】
プリンタ１０００は、外部ネットワーク３０００からＰＤＬデータを受信すると、受信したＰＤＬデータを解釈してディスプレイリスト（ＤＬ）を作成し、作成したＤＬをレンダリングして印刷するまでを行なうＰＤＬプリントタスクと、受信したＰＤＬデータのパースのみを行い各ページのフォールバック回数を予測する、フォールバック回数予測タスクの２つのタスクを生成／開始する。ＰＤＬプリントタスクと、フォールバック回数予測タスクはそれぞれが並列動作する。
【００２８】
はじめに、フォールバック回数予測タスクの動作を図３のフローチャートに従って説明する。フォールバック回数予測タスクは、ＤＬの生成処理を行なうことなく、受信データの簡単な構文解析（パース）のみを行なうことによって、ＤＬを生成した場合に使用するであろう、階層テーブル、色テーブルをカウントし各ページのフォールバック回数を予測する。実際のＤＬ生成処理を行なわないために、正確なフォールバック回数を計測することはできないが高速な処理を行なうことができ、通常のＰＤＬデータであれば、ＰＤＬプリントタスクで処理している各ページで実際のフォールバックが起こるまでには、本タスクの処理は終了する。
【００２９】
プリンタ１０００は、外部ネットワーク３０００からＰＤＬデータを受信し、フォールバック予測タスクの実行を開始すると、ステップ３０２で本タスク上で使用する、受信したＰＤＬデータ中のページ数をカウントしている「ページカウンタＮ」を１に、受信したＰＤＬデータから作成したＤＬをレンダリング時に使用すると予測される階層テーブル数をカウントする「階層テーブル予測カウンタ」を０に、同様に受信したＰＤＬデータから作成したＤＬをレンダリング時に使用すると予測されると色テーブル数をカウントする「色テーブル予測カウンタ」を０にそれぞれ初期化し、ステップ３０３へ進む。
【００３０】
ステップ３０３では、受信データを読み込み、パースを行い、読み込んだデータにどのようなＰＤＬコマンドが含まれているのかを判定してステップ３０４へ進む。
【００３１】
ステップ３０４では、前記ステップ３０３で判定したＰＤＬコマンドを実行した場合に生成されるＤＬがどれだけの階層テーブル及び色テーブルを消費するかを予測して、階層テーブル予測カウンタ及び色テーブル予測カウンタの値を消費すると予測した分インクリメントした後、ステップ３０５へ進む。
【００３２】
ここでは、一例としてPostScriptデータを受信した場合のステップ３０４の動作を簡単に説明する。ステップ３０３でパースしたPostScriptコマンドが、fill、stroke、image、show等の描画系コマンドであった場合には、基本的に階層テーブルを１つ消化する。但し、色やワインディングルール等の描画属性が同一であり、実際に描画される領域が重ならない状態で同一の描画コマンドが連続する場合には、階層テーブルを消費しない。clip等のクリップ系のコマンドの場合にも階層テーブルを１つ消化する。さらに、shfillコマンドの場合には、印刷タスクでのＰＤＬ処理の中で複数の描画命令に変換されるため、複数の階層テーブルを消費するが、この変換処理には時間がかかるため、ここではその近似値として、描画する領域の面積から生成される描画命令の個数を予測した値を使用する。色テーブルについては、描画系コマンドであった場合にその時点までに使用したこと無い色であれば１つ消費する。但し、imageの場合には８消費する。
【００３３】
ステップ３０５では、階層テーブル予測カウンタ及び色テーブル予測カウンタのどちらか一方でも４０９６以上である場合は、フォールバックが発生すると判断してステップ３０６へ進む。
【００３４】
ステップ３０６ではＮページ目の予想フォールバック回数を格納する、予想フォールバック回数［Ｎ］の値を１つインクリメントしステップ３０７へ進む。ステップ３０７では、階層テーブル予測カウンタ及び色テーブル予測カウンタの値を０にクリアしてステップ３０３へ戻り処理を続ける。ステップ３０５でフォールバックが起こらないと判断した場合は、ステップ３０８進む。
【００３５】
ステップ３０８ではステップ３０３で判定したコマンドがページ終了コマンドであれば、ステップ３０９へ進み、まだページが続いているのであればステップ３０３へ戻って処理を続ける。
【００３６】
ステップ３０９では、受信データの全データの処理が終了したか否かを判定し終了していれば、本フォールバック回数予測タスクの処理を終了し（ステップ３１１）、終了していなければステップ３１０へ進む。ステップ３１０では、ページカウンタＮを１インクリメントしてステップ３０７へ進む。
【００３７】
続いて、受信したＰＤＬデータを解釈してＤＬを作成し、作成したＤＬをレンダリングして印刷するまでを行なうＰＤＬプリントタスクの動作を図４のフローチャートに従って説明する。
【００３８】
本タスクでは、ＰＤＬデータを解釈してＤＬを作成し、作成したＤＬをレンダリングしてラスタイメージとし、生成されたラスタイメージをプリンタエンジン９で印刷出力するまでを行なう。また、このＤＬを作成して、レンダリングを行なう過程では、高速であるが各ワークテーブル３０やローカルメモリ２１のサイズの制限により、複雑なデータを処理するためには複数回のフォールバック処理を行なわなければならないハードレンダラ２０を使用するか、MAIN-CPU１上のプロセスとして動作し、低速ではあるが複雑なデータもフォールバック処理無しで処理するソフトレンダラを使用するかを、前記フォールバック回数予測タスクで計測しているフォールバック予測回数を基に切り替え、最も高速に最終的な印刷出力を得られるように動作する。
【００３９】
プリンタ１０００は、外部ネットワーク３０００からＰＤＬデータを受信し、ＰＤＬプリントタスクの実行を開始すると（ステップ４０１）、ステップ４０２で現在処理中のページを示す「カレントページＭ」を１に、受信したＰＤＬデータから作成したＤＬをレンダリング時に使用する階層テーブル数をカウントする「階層テーブルカウンタ」を０に、同様に受信したＰＤＬデータから作成したＤＬをレンダリング時に使用する色テーブル数をカウントする「色テーブルカウンタ」を０に、カレントページのフォールバック回数をカウントするカウンタFBNUMを０にそれぞれ設定し、ステップ４０３へ進む。
【００４０】
ステップ４０３では受信データを読み込み解析を行いながらＤＬをＲＡＭ２上へ生成し、ステップ４０４へ進む。またステップ４０３ではさらに生成したＤＬが消費する階層テーブルと色テーブル数を、それぞれ階層テーブルカウンタ及び色テーブルカウンタにインクリメントする。ステップ４０４の動作を説明する前にステップ４０４で使用する変数FBTHの説明をする。FBTHの値は、ハードレンダラ２０を使用したフォールバック処理を行なうときのオーバヘッド(OV)と、ハードレンダラ２０で１ページをレンダリングするのにかかる時間(HT)及びソフトレンダラで１ページをレンダリングするのにかかる時間(ST)で決定され、
FBTH＝(int)(ST-HT)/OV
で求められる。
【００４１】
つまり、このFBTHよりも多くフォールバック処理を繰り返さなければならない場合、フォールバック処理にかかるオーバヘッドが、ハードレンダラの速度とソフトレンダラの速度の差よりも大きくなるため、ソフトレンダラを使用してフォールバック無しでレンダリングした方が最終的な印刷出力を得るために要する時間が短くなる。そこでステップ４０４では、ハードレンダラ２０を使用した場合にカレントページの最終レンダリング結果を得るために必要であろう予測フォールバック回数から、実際に既に実行したフォールバック回数FBNUMを引いた値が、FBTHよりも小さければ、カレントページの残りの処理はソフトレンダラを使用したほうが高速であると判断し、ステップ４１４へ進む。
【００４２】
また、FBTHよりも大きい場合はフォールバックしながらハードレンダラ２０を使用してレンダリングした方が高速であると判断し、ステップ４０５へ進む。ここで、並列して動作しているフォールバック回数予測タスクでの、カレントページＭに対する計測が終わっていない可能性を考慮し、予想フォールバック回数［Ｍ］とFBTHの差分を取っている。
【００４３】
ステップ４０５では、階層テーブルカウンタと色テーブルカウンタの値及び生成されているＤＬのサイズを参照し、フォールバックの必要性を判断している。階層テーブルカウンタ、色テーブルカウンタのどちらか一方が４０９６を越えているか、または、ここまでに作成したＤＬのサイズがローカルメモリ２１のサイズを超えると、フォールバックを発生させる必要があると判断しステップ４０６へ進み、フォールバックを発生する必要が無い場合はステップ４０８へ進む。
【００４４】
ステップ４０６では、ハードウェアレンダラを使用したフォールバック処理を行い、ステップ４０７へ進む。具体的には、ここまで生成したＤＬを一度クローズし、クローズしたＤＬをハードレンダラ２０のローカルメモリ２１へ転送した後、ＲＡＭ２上から削除する。また、ＲＡＭ２上の画像バッファ３に、本フォールバック処理で生成される、圧縮画像と圧縮属性ビットを格納するフォールバックバッファの領域を確保しておく。ハードレンダラ２０はローカルメモリ２１へ転送されたＤＬを解釈してレンダリングを行い、ラスタイメージとラスタイメージの各ピクセルに対する属性ビットを生成する。生成されたラスタイメージは前記非可逆圧縮部２２へ転送され非可逆圧縮を施した後、前記フォールバックバッファへ格納され、属性ビットは前記可逆圧縮部２３へ転送され可逆圧縮を施した後、前記フォールバックバッファへ格納される。すべてのレンダリング結果がフォールバックバッファへ格納された後、フォールバック中の圧縮画像と圧縮属性ビットをＤＬへ登録し、フォールバック処理が終了する。
【００４５】
ステップ４０７では、カレントページのフォールバック回数をカウントしているFBNUMを１インクリメントし、階層テーブルカウンタ及び色テーブルカウンタを０クリアした後、ステップ４０３へ戻り、データの解釈／ＤＬ生成を続ける。
【００４６】
ステップ４０８では、ステップ４０３で入力データを解釈した結果により、カレントページのデータをすべて処理したか否かを判断する。カレントページのデータがまだ残っていれば、ステップ４０３へ戻り、データの解釈／ＤＬの生成を続ける。カレントページの処理がすべて終了したならば、ステップ４０９へ進む。
【００４７】
ステップ４０９では、生成されたＤＬをハードレンダラ２０でレンダリングする。このレンダリングでの過程でもステップ４０６のフォールバック処理と同様に、現在までのＤＬをクローズして、クローズしたＤＬをハードレンダラ２０のローカルメモリ２１へ転送する。また、ＲＡＭ２上の画像出力バッファ３にレンダリング結果を格納する画像スプール領域を確保する。ハードレンダラ２０はローカルメモリ２１へ転送されたＤＬを解釈してレンダリングを行い、ラスタイメージとラスタイメージの各ピクセルに対する属性ビットを生成する。生成されたラスタイメージは前記非可逆圧縮部２２へ転送され非可逆圧縮を施した後、前記画像スプールに格納され、属性ビットは前記可逆圧縮部２３へ転送され可逆圧縮を施した後、前記画像スプールへ格納される。レンダリング処理が終了後ステップ４１０へ進む。
【００４８】
ステップ４１０では、画像スプールに格納されている圧縮画像と圧縮された属性ビットを画像処理部２４へ転送し、圧縮画像をラスタイメージへ解凍しながら対応する属性ビットに従って適切な画像処理を施し、ステップ４１１へ進む。
【００４９】
ステップ４１１では、ステップ４１０で画像処理を施されたラスタイメージを印刷部９へ転送し紙上へ印刷を行い、ステップ４１２へ進む。ステップ４１２では、受信したＰＤＬをすべて処理したか否かを判断し、すべて処理していれば本ＰＤＬプリントタスクを終了し（ステップ４１３）、まだ処理すべきデータが残っていれば、ステップ４１５へ進む。
【００５０】
ステップ４１５では、カレントページＭを１インクリメントした後、ステップ４０３に戻り、残りのＰＤＬデータの解釈／ＤＬ生成を続ける。ステップ４１４では、ステップ４０３で入力データを解釈した結果により、カレントページのデータをすべて処理したか否かを判断する。カレントページのデータがまだ残っていれば、ステップ４０３へ戻り、データの解釈／ＤＬの生成を続ける。カレントページの処理がすべて終了したならば、ステップ４１５へ進む。
【００５１】
ステップ４１５では、生成されたＤＬをMAIN-CPU1上のプロセスとして動作するソフトレンダラを使用してレンダリングする。現在までのＤＬをクローズし、ＲＡＭ２上の画像出力バッファ３にレンダリング結果を格納する画像スプール領域を確保した後、ソフトレンダラのプロセスを起動する。ソフトレンダラはＲＡＭ２上のＤＬをそのまま解釈して、レンダリングを行い、ラスタイメージとラスタイメージの各ピクセル対する属性ビットを生成する。生成されたラスタイメージは前記非可逆圧縮部２２へ転送され非可逆圧縮を施した後、前記画像スプール格納され、属性ビットは前記可逆圧縮部２３へ転送され可逆圧縮を施した後、前記画像スプールへ格納される。レンダリング処理が終了後、レンダリングの終了したＤＬを削除し、ステップ４１０へ進む。
【００５２】
以上、本発明の第１の実施形態によれば、ステップ４０４でハードレンダラ２０を使用してフォールバックしながら処理をした方が高速であると判断した場合には、ステップ４０６、ステップ４０９で、ハードウェアレンダラ２０を使用してフォールバックを行ないながら最終的なラスタイメージを作成し、ソフトレンダラを使用したほうが高速であると判断した時点からは、ステップ４１５で、フォールバックすることなく1ページ分のＤＬを作成しソフトレンダラを使用して1回のレンダリングで最終的なラスタイメージを作成することにより、最も高速にＰＤＬデータの印刷出力を得ることができる。
【００５３】
＜第２の実施形態＞
第１の実施形態においては、フォールバック回数予測タスクにおいて受信データをパースし各ページの予測回数を計測しているとしているが、この処理を予めホストコンピュータ上で行い、その結果をＰＤＬデータに含めてプリンタ１０００へ通知するようにしても、同様の効果を得られることはいうまでもない。
【００５４】
この場合、プリンタ１０００はＰＤＬデータを受信すると、ＰＤＬデータの解析に先立って、受信データに含まれる各ページの予測フォールバック回数を検索し予測フォールバック回数［Ｘ］へ設定する。
【００５５】
＜第３の実施形態＞
次に、本発明の第３の実施形態について説明する、本実施形態に適用するプリンタ構成、プリンタ制御システム構成は図１及び図２に示される構成と同一のものであるため、説明は割愛し、図５のフローチャートを用いて本実施形態の動作を説明する。
【００５６】
プリンタ１０００は、外部ネットワーク３０００からＰＤＬデータを受信すると、ＰＤＬプリントタスクを起動する。このＰＤＬプリントタスクの動作を図５のフローチャートに従って説明する。本タスクでは、ＰＤＬデータを解釈してＤＬを作成し、作成したＤＬをレンダリングしてラスタイメージとし、生成されたラスタイメージをプリンタエンジン９で印刷出力するまでを行なう。また、このＤＬを作成して、レンダリングを行なう過程では、高速であるが各ワークテーブル３０やローカルメモリ２１のサイズの制限により、複雑なデータを処理するためには複数回のフォールバック処理を行なわなければならないハードレンダラ２０を使用するか、MAIN-CPU１上のプロセスとして動作し、低速ではあるが複雑なデータもフォールバック処理無しで処理するソフトレンダラを使用するかを、メモリの使用状況を基に判断により切り替え、最も高速に最終的な印刷出力を得られるように動作する。
【００５７】
プリンタ１０００は、外部ネットワーク３０００からＰＤＬデータを受信し、ＰＤＬプリントタスクの実行を開始すると（ステップ５０１）、ステップ５０２で、受信したＰＤＬデータから作成したＤＬをレンダリング時に使用する階層テーブル数をカウントする「階層テーブルカウンタ」を０に、同様に受信したＰＤＬデータから作成したＤＬをレンダリング時に使用する色テーブル数をカウントする「色テーブルカウンタ」を０に、それぞれ設定しステップ５０３へ進む。
【００５８】
ステップ５０３では受信データを読み込み解析を行いながらＤＬをＲＡＭ２上へ生成し、ステップ５０４へ進む。またステップ５０３ではさらに生成したＤＬが消費する階層テーブルと色テーブル数を、それぞれ階層テーブルカウンタ及び色テーブルカウンタにインクリメントする。
【００５９】
ステップ５０４では、階層テーブルカウンタと色テーブルカウンタの値及び生成されているＤＬのサイズを参照しフォールバックの必要性を判断している。階層テーブルカウンタ、色テーブルカウンタのどちらか一方が４０９６を越えているか、または、ここまでに作成したＤＬのサイズがローカルメモリ２１のサイズを超えると、フォールバックを発生させる必要があると判断しステップ５１１へ進み、フォールバックを発生する必要が無い場合はステップ５０５へ進む。
【００６０】
ステップ５０５では、ステップ５０３で入力データを解釈した結果により、カレントページのデータをすべて処理したか否かを判断する。カレントページのデータがまだ残っていれば、ステップ５０３へ戻り、データの解釈／ＤＬの生成を続ける。カレントページの処理がすべて終了したならば、ステップ５０６へ進む。
【００６１】
ステップ５０６では、生成されたＤＬをハードレンダラ２０でレンダリングする。現在までのＤＬをクローズして、クローズしたＤＬをハードレンダラ２０のローカルメモリ２１へ転送する。また、ＲＡＭ２上の画像出力バッファ３にレンダリング結果を格納する画像スプール領域を確保する。ハードレンダラ２０はローカルメモリ２１へ転送されたＤＬを解釈してレンダリングを行い、ラスタイメージとラスタイメージの各ピクセルに対する属性ビットを生成する。生成されたラスタイメージは前記非可逆圧縮部２２へ転送され非可逆圧縮を施した後、前記画像スプール格納され、属性ビットは前記可逆圧縮部２３へ転送され可逆圧縮を施した後、前記画像スプールへ格納される。レンダリング処理が終了後ステップ５０７へ進む。
【００６２】
ステップ５０７では画像スプールに格納されている圧縮画像と圧縮された属性ビットを画像処理部２４へ転送し、圧縮画像をラスタイメージへ解凍しながら対応する属性ビットに従って適切な画像処理を施し、ステップ５０８へ進む。
【００６３】
ステップ５０８では、ステップ５０７で画像処理を施されたラスタイメージを印刷部９へ転送し紙上へ印刷を行い、ステップ５０９へ進む。ステップ５０９では、受信したＰＤＬをすべて処理したか否かを判断し、すべて処理していれば本ＰＤＬプリントタスクを終了し（ステップ５１０）、まだ処理すべきデータが残っていれば、ステップ５０２へ戻り、各ワークテーブルをクリアした後、入力データの解釈及びＤＬの生成処理を続ける。
【００６４】
ステップ５０４で、フォールバックの必要ありとして進んだステップ５１１では、ステップ５０４でフォールバックの必要ありとした要因を調べ、生成したＤＬのサイズがローカルメモリ２１のサイズを超えていた場合はステップ５１３へ進み、フォールバック要因が階層テーブル又は色テーブルのサイズが４０９６を超えている場合にはステップ５１２へ進む。
【００６５】
ステップ５１２の動作を説明する前にステップ５１２で使用する変数MEMTHの説明をする。MEMTHの値は、ハードレンダラ２０を使用したフォールバック処理を行なうときのオーバヘッド(OV)と、ハードレンダラ２０で１ページをレンダリングするのにかかる時間(HT)及びソフトレンダラで１ページをレンダリングするのにかかる時間(ST)で決定され、
MEMTH＝(int)(ST-HT)/OV
で求められる。つまり、このMEMTHよりも多くフォールバック処理を繰り返さなければならない場合、フォールバック処理にかかるオーバヘッドが、ハードレンダラの速度とソフトレンダラの速度の差よりも大きくなるため、１回はソフトレンダラを使用してフォールバック無しでレンダリングした方が最終的な印刷出力を得るために要する時間が短くなる。
【００６６】
そこでステップ５１２では、ローカルメモリ２１の容量をLOMEMとして、現在までに生成されているＤＬのサイズが、LOMEM÷MEMTHよりも小さい場合は、細かいオブジェクトが非常に多くＰＤＬデータに含まれているため、ハードレンダラ２０でフォールバック処理を繰り返しながら処理を続けると、階層テーブル又は色テーブルの制限によりMEMTH回以上のフォールバックが起きる可能性が高く、ソフトレンダラを使用して処理すれば、MEMTH回以上のハードウェアでのフォールバックを削減することができ、高速であると判断しステップ５１４へ進む。一方でＤＬのサイズが、LOMEM÷MEMTH以上である場合、ソフトレンダラを使用して処理してもＲＡＭ２上に格納できるメモリ制限によりフォールバックを発生させなければならなくなり、ソフトウェアレンダラでのフォールバック処理１回でMEMTH回以下のハードレンダラ２０でのフォールバック処理しか削減できないため、ハードレンダラ２０で処理したほうが高速であると判断し、ステップ５１３へ進む。
【００６７】
ステップ５１３では、ハードウェアレンダラ２０を使用したフォールバック処理を行なう。具体的には、ここまで生成したＤＬを一度クローズし、クローズしたＤＬをハードレンダラ２０のローカルメモリ２１へ転送した後、ＲＡＭ２上から削除する。また、ＲＡＭ２上の画像出力バッファ３に、本フォールバック処理で生成される、圧縮画像と圧縮属性ビットを格納するフォールバックバッファの領域を確保しておく。
【００６８】
ハードレンダラ２０はローカルメモリ２１へ転送されたＤＬを解釈してレンダリングを行い、ラスタイメージとラスタイメージの各ピクセル対する属性ビットを生成する。生成されたラスタイメージは前記非可逆圧縮部２２へ転送され非可逆圧縮を施した後、前記フォールバックバッファへ格納され、属性ビットは前記可逆圧縮部２３へ転送され可逆圧縮を施した後、前記フォールバックバッファへ格納される。すべてのレンダリング結果がフォールバックバッファへ格納された後、フォールバック中の圧縮画像と圧縮属性ビットをＤＬへ登録し、フォールバック処理が終了する。フォールバック処理終了後、ステップ５０２へ戻り、各ワークテーブルの初期化を行なった後、入力データの処理及びＤＬ生成を続ける。
【００６９】
ステップ５１２で、ソフトレンダラを使用して処理を続けたほうが高速であると判断され、進んだステップ５１４では、受信データを読み込み解析を行いながらＤＬをＲＡＭ２上へ生成し、ステップ５１５へ進む。
【００７０】
ステップ５１５では、ここまで作成したＤＬのサイズを参照しフォールバックの必要性を判断する。作成したＤＬのサイズがＲＡＭ２上にＤＬを格納できるメモリ容量を超えている場合は、フォールバックの必要ありと判断しステップ５１８へ進み、超えていない場合はフォールバックの必要無しと判断してステップ５１６へ進む。
【００７１】
ステップ５１８では、MAIN-CPU１上のプロセスとして動作するソフトレンダラを使用したフォールバック処理を行なう。現在までのＤＬをクローズし、ＲＡＭ２上の画像出力バッファ３にレンダリング結果を格納するフォールバックバッファを確保した後、ソフトレンダラのプロセスを起動する。ソフトレンダラはＲＡＭ２上のＤＬをそのまま解釈して、レンダリングを行い、ラスタイメージとラスタイメージの各ピクセル対する属性ビットを生成する。
【００７２】
生成されたラスタイメージは前記非可逆圧縮部２２へ転送され非可逆圧縮を施した後、前記画像スプール格納され、属性ビットは前記可逆圧縮部２３へ転送され可逆圧縮を施した後、前記フォールバックバッファへ格納される。すべてのレンダリング結果がフォールバックバッファへ格納された後、フォールバック中の圧縮画像と圧縮属性ビットをＤＬへ登録し、レンダリングしたＲＡＭ２上のＤＬを削除して、フォールバック処理が終了する。フォールバック処理終了後、ステップ５０２へ戻り、各ワークテーブルの初期化を行なった後、入力データの処理及びＤＬ生成を続ける。
【００７３】
ステップ５１６では、ステップ５１４で入力データを解釈した結果により、カレントページのデータをすべて処理したか否かを判断する。カレントページのデータがまだ残っていれば、ステップ５１４へ戻り、入力データの解釈及びＤＬの生成を続ける。カレントページの処理がすべて終了したならば、ステップ５１７へ進む。
【００７４】
ステップ５１５では、生成されたＤＬをMAIN-CPU1上のプロセスとして動作するソフトレンダラを使用してレンダリングする。現在までのＤＬをクローズし、ＲＡＭ２上の画像出力バッファ３にレンダリング結果を格納する画像スプール領域を確保した後、ソフトレンダラのプロセスを起動する。ソフトレンダラはＲＡＭ２上のＤＬをそのまま解釈して、レンダリングを行い、ラスタイメージとラスタイメージの各ピクセルに対する属性ビットを生成する。生成されたラスタイメージは前記非可逆圧縮部２２へ転送され非可逆圧縮を施した後、前記画像スプール格納され、属性ビットは前記可逆圧縮部２３へ転送され可逆圧縮を施した後、前記画像スプールへ格納される。レンダリング処理が終了後、レンダリングの終了したＤＬを削除し、ステップ５０７へ進む。
【００７５】
以上、本発明の第３の実施形態によれば、ステップ５１２でそこまでに生成されたＤＬのサイズから、ハードレンダラ２０を使用してフォールバックしながら処理をした場合に必要なフォールバックの回数を予測し、ハードレンダラ２０でのフォールバック時のオーバヘッドを考慮して、ソフトウェアレンダラで処理を行なった方が高速であると判断される場合は、ソフトウェアレンダラを使用して処理することにより、最適な処理が行なわれ、結果として高速にＰＤＬデータの印刷出力を得ることができる。
【００７６】
以上述べたように、上記実施形態によれば、印刷装置に入力されるＰＤＬデータの内容により、ハードウェアレンダラとソフトウェアレンダラを使い分けることにより、ハードウェアレンダラの弱点を克服し、ハードウェアレンダラのみでは遅くなってしまうデータをより高速に印刷することができる。
【００７７】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００７８】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７９】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００８０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ(基本システム或いはオペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８１】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００８２】
【図１】本発明の一実施形態に係る出力装置（プリンタ）の構成を示す断面図である。
【図２】プリンタ内部に構成されるプリンタ制御システムの構成を示すブロック図である。
【図３】本発明の第１の実施形態に係るプリンタの動作を示すフローチャートである。
【図４】本発明の第１の実施形態に係るプリンタの動作を示すフローチャートである。
【図５】本発明の第３の実施形態に係るプリンタの動作を示すフローチャートである。
【符号の説明】
【００８３】
１  MAIN-CPU
２  ＲＡＭ
３  画像出力バッファ
４  ＲＯＭ
５  システムバス
６  ＭＣ
７  外部メモリ
８  印刷部Ｉ／Ｆ
９  印刷部（プリンタエンジン）
１０１２  操作部
１１  Ｉ／Ｏ
２０  ハードレンダラ
２１  ローカルメモリ
２２  非可逆圧縮部
２３  可逆圧縮部
２４  画像処理部
３０  ワークテーブル
１０００  プリンタ
１００１  プリンタ制御ユニット
３０００  外部ネットワーク
【図１】
2005149316.tif 000003
【図２】
2005149316.tif 000004
【図３】
2005149316.tif 000005
【図４】
2005149316.tif 000006
【図５】
2005149316.tif 000007