(57)【特許請求の範囲】
【請求項１】
ホストコンピュータまたはデバイス機器から、出力データを記述するページ記述言語のコマンドを受信して、該コマンドに応じた動作を実行する出力装置において、
前記ページ記述言語のコマンドを解析実行する解析手段と、
該解析手段により解析した前記コマンドが、図形を表現するためにコマンドに与える必要があるデータの指定数が少なくかつ該図形を表現するために実行するコマンド数が所定数より少ないコマンド、又は、図形を表現するためにコマンドに与える必要があるデータの指定数が所定数より少ないコマンド、又は、該図形を表現するために実行が必要なコマンド数が所定数より少ないコマンド、いずれのコマンドであるのかを評価する評価手段と、
該評価手段による評価結果に基づいて、図形を表現するためにコマンドに与えるデータの指定数が少なくかつ該図形を表現するために実行するコマンド数が少ないコマンド、又は、図形を表現するためにコマンドに与えるデータの指定数が少ないコマンド、又は、該図形を表現するために実行するコマンド数が少ないコマンドのいずれであるかの評価結果を出力する評価結果出力手段と、
を備えたことを特徴とする出力装置。
【請求項２】
請求項１に記載の出力装置において、前記評価結果出力手段により出力した評価結果をホストコンピュータまたはデバイス機器へ送信する送信手段をさらに備えたことを特徴とする出力装置。
【請求項３】
請求項１又は２に記載の出力装置において、前記評価結果出力手段により出力した評価結果をログ情報として印字する前記ページ記述言語のコマンドを作成するログ・コマンド作成手段をさらに備えたことを特徴とする出力装置。
【請求項４】
請求項１乃至３のいずれかに記載の出力装置において、
前記評価を行うか否かを示す評価モードを入力する手段と、
前記評価モードを記憶する評価モード記憶手段と、
前記評価モードに基づき前記評価を行うか否かを決定する手段と、
前記評価モード記憶手段に記憶した前記評価モードを変更する手段と
を備えたことを特徴とする出力装置。
【請求項５】
請求項１乃至４のいずれかに記載の出力装置において、前記評価手段は、１つ以上のコマンドを評価する場合に、
所定のランクに応じた各計数を決定する計数決定手段と、
前記１つ以上のコマンドについて、前記計数を加算する加算手段と、
前記１つ以上のコマンドの総数を数える計数手段と、
前記加算手段により加算した結果を前記計数手段により求めたコマンドの総数で除算する除算手段と
を備えたことを特徴とする出力装置。
【請求項６】
ホストコンピュータまたはデバイス機器から、出力データを記述するページ記述言語のコマンドを受信して、該コマンドに応じた動作を実行する出力方法において、
前記ページ記述言語のコマンドを解析実行する解析ステップと、
該解析ステップにより解析した前記コマンドが、図形を表現するためにコマンドに与える必要があるデータの指定数が少なくかつ該図形を表現するために実行するコマンド数が所定数より少ないコマンド、又は、図形を表現するためにコマンドに与える必要があるデータの指定数が所定数より少ないコマンド、又は、該図形を表現するために実行が必要なコマンド数が所定数より少ないコマンド、のいずれのコマンドであるかを評価する評価ステップと、
該評価ステップによる評価結果に基づいて、図形を表現するためにコマンドに与えるデータの指定数が少なくかつ該図形を表現するために実行するコマンド数が少ないコマンド、又は、図形を表現するためにコマンドに与えるデータの指定数が少ないコマンド、又は、該図形を表現するために実行するコマンド数が少ないコマンドのいずれであるかの評価結果を出力する評価結果出力ステップと、
を備えたことを特徴とする出力方法。
【請求項７】
請求項６に記載の出力方法において、前記評価結果出力ステップにより出力した評価結果をホストコンピュータまたはデバイス機器へ送信する送信ステップをさらに備えたことを特徴とする出力方法。
【請求項８】
請求項６又は７に記載の出力方法において、前記評価結果出力ステップにより出力した評価結果をログ情報として印字する前記ページ記述言語のコマンドを作成するログ・コマンド作成ステップをさらに備えたことを特徴とする出力方法。
【請求項９】
請求項６乃至８のいずれかに記載の出力方法において、
前記評価を行うか否かを示す評価モードを入力するステップと、
前記評価モードを記憶する評価モード記憶ステップと、
前記評価モードに基づき前記評価を行うか否かを決定するステップと、
前記評価モード記憶ステップに記憶した前記評価モードを変更するステップと
を備えたことを特徴とする出力方法。
【請求項１０】
請求項１乃至４のいずれかに記載の出力方法において、前記評価ステップは、１つ以上のコマンドを評価する場合に、
所定のランクに応じた各計数を決定する計数決定ステップと、
前記１つ以上のコマンドについて、前記計数を加算する加算ステップと、
前記１つ以上のコマンドの総数を数える計数ステップと、
前記加算ステップにより加算した結果を前記計数ステップにより求めたコマンドの総数で除算する除算ステップと
を備えたことを特徴とする出力方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストコンピュータまたはデバイス機器から送信される、出力データを記述するページ記述言語のコマンドにより出力を実行する出力装置に関し、特にページ記述言語を解析する出力装置および出力方法に関する。
【０００２】
【従来の技術】
従来の出力装置においては、ホストコンピュータまたは他のデバイスから送信される出力データを解析し出力する場合に、出力データのどの部分の処理に、たとえばどういうコマンドを処理するのに時間がかかっているかなどの情報は、経験的な情報に頼る場合が大きかった。このような経験的な情報を得るには、ある描画コマンドのみを送信する出力コマンドを作成し、その処理にどれだけの時間がかかるかを調べたり、開発段階でデバッガを使用し該当部分の処理時間を計測するなどしていた。さらに、同じ出力結果を得るための描画方法は一般的には複数あり、どの描画コマンドを使用するのが出力装置で出力コマンドを処理する効率上、最適であるかを知るためには、やはり上記方法などにより試行錯誤を繰り返さなければならなかった。
【０００３】
【発明が解決しようとする課題】
しかし、出力装置の仕様が変更したり、機種毎に処理速度が違う場合などは、速く処理できるコマンド、時間がかかってしまうコマンドなど元々処理速度が異なるコマンドの処理速度がさらに異なってしまうことになる。
【０００４】
さらに、複数の代替コマンドが存在する場合、印刷装置のコントローラ開発者だけでなく、ホストアプリケーション開発者、プリンタドライバ開発者達は、毎回どのようなコマンドを発行すれば出力装置が最も速い処理をすることができるか、あるいは最も少ないメモリで処理をすることができるかをコマンドに対応したデータを送信するなどして試行錯誤しなければならない。
【０００５】
このように試行錯誤しながら最適なコマンドは何かを探していくのでは、ホストアプリケーション開発者、プリタドライバ開発者等が一々プログラムを変更しなければならず、コンパイルだけでもかなりの時間がかかってしまうことになり、開発効率がとても悪くなってしまうという問題があった。
【０００６】
そこで、本発明の目的は、上記問題を解決するためになされたものであり、出力装置に送信されたページ記述言語のコマンドを解析し、コマンド相互の情報を参照して、同じ出力結果を得るのに現在のコマンドより効率の良いコマンドがないかどうか判断することにより、上述した試行錯誤に要する時間を減らしてホストアプリケーション、ドライバなどの開発効率を上げることを可能とする出力装置を提供することにある。
【０００７】
さらに、本発明の目的は、該ページ記述言語を使用するホストアプリケーション、プリンタドライバの開発を新たに始めるような場合など、該ページ記述言語のコマンド内容も全て詳細に把握しきれていないことが考えられる場合にも、より最適なコマンドの使用をホストアプリケーション、プリンタドライバの開発者に促すことを可能とする出力装置および出力方法を提供することにある。
【０００８】
【課題を解決するための手段】
請求項１の発明は、ホストコンピュータまたはデバイス機器から、出力データを記述するページ記述言語のコマンドを受信して、該コマンドに応じた動作を実行する出力装置において、前記ページ記述言語のコマンドを解析実行する解析手段と、該解析手段により解析した前記コマンドが、図形を表現するためにコマンドに与える必要があるデータの指定数が少なくかつ該図形を表現するために実行するコマンド数が所定数より少ないコマンド、又は、図形を表現するためにコマンドに与える必要があるデータの指定数が所定数より少ないコマンド、又は、該図形を表現するために実行が必要なコマンド数が所定数より少ないコマンド、のいずれのコマンドであるのかを評価する評価手段と、該評価手段による評価結果に基づいて、図形を表現するためにコマンドに与えるデータの指定数が少なくかつ該図形を表現するために実行するコマンド数が少ないコマンド、又は、図形を表現するためにコマンドに与えるデータの指定数が少ないコマンド、又は、該図形を表現するために実行するコマンド数が少ないコマンドのいずれであるかの評価結果を出力する評価結果出力手段と、を備えたことを特徴とする。
【０００９】
請求項１に記載の発明において、評価結果出力手段により出力した評価結果をホストコンピュータまたはデバイス機器へ送信する送信手段をさらに備えることができる。
【００１０】
請求項１又は２に記載の発明において、評価結果出力手段により出力した評価結果をログ情報として印字する前記ページ記述言語のコマンドを作成するログ・コマンド作成手段をさらに備えることができる。
【００１１】
請求項１乃至３のいずれかに記載の発明において、評価を行うか否かを示す評価モードを入力する手段と、評価モードを記憶する評価モード記憶手段と、前記評価モードに基づき前記評価を行うか否かを決定する手段と、評価モード記憶手段に記憶した前記評価モードを変更する手段とを備えることができる。
【００１２】
請求項１乃至４のいずれかに記載の発明において、評価手段は、１つ以上のコマンドを評価する場合に、所定のランクに応じた各計数を決定する計数決定手段と、前記１つ以上のコマンドについて、前記計数を加算する加算手段と、前記１つ以上のコマンドの総数を数える計数手段と、前記加算手段により加算した結果を前記計数手段により求めたコマンドの総数で除算する除算手段とを備えることができる。
【００１３】
ホストコンピュータまたはデバイス機器から、出力データを記述するページ記述言語のコマンドを受信して、該コマンドに応じた動作を実行する出力方法において、前記ページ記述言語のコマンドを解析実行する解析ステップと、該解析ステップにより解析した前記コマンドが、図形を表現するためにコマンドに与える必要があるデータの指定数が少なくかつ該図形を表現するために実行するコマンド数が所定数より少ないコマンド、又は、図形を表現するためにコマンドに与える必要があるデータの指定数が所定数より少ないコマンド、又は、該図形を表現するために実行が必要なコマンド数が所定数より少ないコマンド、のいずれのコマンドであるのかを評価する評価ステップと、該評価ステップによる評価結果に基づいて、図形を表現するためにコマンドに与えるデータの指定数が少なくかつ該図形を表現するために実行するコマンド数が少ないコマンド、又は、図形を表現するためにコマンドに与えるデータの指定数が少ないコマンド、又は、該図形を表現するために実行するコマンド数が少ないコマンドのいずれであるかの評価結果を出力する評価結果出力ステップと、を備えたことを特徴とする。
【００１４】
請求項６に記載の発明において、評価結果出力ステップにより出力した評価結果をホストコンピュータまたはデバイス機器へ送信する送信ステップをさらに備えることができる。
【００１５】
請求項６又は７に記載の発明において、評価結果出力ステップにより出力した評価結果をログ情報として印字する前記ページ記述言語のコマンドを作成するログ・コマンド作成ステップをさらに備えることができる。
【００１６】
請求項６乃至８のいずれかに記載の発明において、評価を行うか否かを示す評価モードを入力するステップと、評価モードを記憶する評価モード記憶ステップと、前記評価モードに基づき前記評価を行うか否かを決定するステップと、前記評価モード記憶ステップに記憶した前記評価モードを変更するステップとを備えることができる。
【００１７】
請求項１乃至４のいずれかに記載の発明において、評価ステップは、１つ以上のコマンドを評価する場合に、所定のランクに応じた各計数を決定する計数決定ステップと、前記１つ以上のコマンドについて、前記計数を加算する加算ステップと、前記１つ以上のコマンドの総数を数える計数ステップと、前記加算ステップにより加算した結果を前記計数ステップにより求めたコマンドの総数で除算する除算ステップとを備えることができる。
【００２７】
【発明の実施の形態】
（実施の形態１）
以下、図面を参照して本発明の実施の形態を詳細にする。
【００２８】
図１は、本発明の一実施の形態であるプリンタを含んだシステム構成である。
【００２９】
図１において、ホストコンピュータ等の外部機器１０１は、本発明を適用したレーザビームプリンタ１０２と通信を行う。プリンタコントローラ部１０３は、ホストコンピュータ等の外部機器１０１から送られるコードデータ（ＥＳＣ（Ｅｓｃａｐｅ）コード、各種ページ記述言語（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ：ＰＤＬ）等）を受け、このコードデータに基づいてドットデータからなるページ情報を生成し、接続された後述のプリンタエンジン部１０５に対して所定のインタフェースを介してイメージデータを送信する。パネル部１０４は、ユーザ（不図示）とのインタフェースを行い、ユーザは、パネル部１０４を操作することによって、レーザビームプリンタ１０２に所定の動作を指示することができる。プリンタエンジン部１０５は、プリンタコントローラ部１０３に接続し、イメージデータ（２値または多値データ）に基づいて、周知の電子写真プロセスによって感光ドラム上に潜像を形成し、用紙に転写して定着し印字を行う。
【００３０】
図２は、本発明の一実施の形態であるプリンタの機構を示す図である。
【００３１】
図２において、プリンタ筐体２０１上に、操作パネル２０２がある。操作パネル２０２は、操作のためのスイッチおよびＬＥＤ表示器、ＬＣＤ表器が表示されている。これは図１において示したパネル部１０４に相当する。制御ボード収納部２０３は、プリンタの印字プロセス制御を行うプリンタエンジン部１０５および、プリンタ全体の制御とホストコンピュータからのデータを解析しイメージデータに変換するプリンタコントローラ部１０３を収納している。用紙カセット２１０は用紙を保持し、不図示の仕切り板によって電気的に用紙サイズを検知する機構を有する。カセット給紙クラッチ２１１は、用紙カセット２１０上に載置された用紙の最上位の用紙一枚のみを分離し、不図示の駆動手段によって分離した用紙を給紙ローラ２１２まで搬送させるカムであり、給紙の度に間欠的に回転し、１回転に対応して１枚の用紙を給紙ローラ２１２まで給紙する。レジストシャッタ２１４は、用紙を押圧して給紙を停止させる。給紙ローラ２１２は、用紙の先端部をレジストシャッタ２１４まで搬送する。手差し用トレイ２１９は、手差し給紙クラッチ２１５へ給紙する。給紙クラッチ２１５は用紙の先端をレジストシャッタ２１４まで搬送する。以上のような構成によって用紙カセット２１０および手差しトレイ２１９から選択的に用紙を給紙することが可能となる。
【００３２】
プリンタエンジン部１０５は、プリンタコントローラ部１０３と所定の通信プロトコルによって通信を行い、プリンタコントローラ部１０３からの指示によって、カセット２１０、または手差し用トレイ２１９の中から給紙手段を決定し、印字開始指示によって上記のとおり給紙を開始し用紙をレジストシャッタ２１４まで搬送する。カートリッジ２０４は、感光ドラム２０５および、不図示のトナー保持部を有する。レーザドライバ２０６からレーザビームが、回転多面鏡２０７、反射ミラー２０８を介してビームディテクタ２０９に達する。レジストシャッタ２１４まで用紙が搬送されると、プリンタコントローラ部１０３から送られたイメージデータに応じてレーザドライバによってオンオフ駆動される不図示の半導体レーザから発射されるレーザビームは、回転多面鏡２０７により主走査方向に走査され反射ミラー２０８を介して感光ドラム２０５上に導かれ結像し、主走査方向に走査して主走査ライン上に潜像を形成する。このレーザビームの発射に同期してレジストシャッタ２１４を上方に駆動し、用紙の搬送をレーザビームの副走査に同期させる。レーザビームの走査開始時に配置されたビームディテクタ２０９は、レーザビームを検出することによって主走査の画像書き出しタイミングを決定するための同期信号を形成し、プリンタコントローラ部１０３に送る。その後用紙は、搬送ローラ２１３によって搬送され、感光ドラム２０５は不図示のモータによって回転駆動され、現像器２２０によってトナー像として顕像化された後、用紙上に転写される。トナー像が転写された用紙はその後、定着ローラ２１６によりトナー像が加熱定着され、搬送ローラ２１７を経て、排紙ローラ２１８によりプリンタ筐体２０１の排紙トレイに排紙される。
【００３３】
図３は、本実施の形態のプリンタコントローラ部１０３のブロック図である。
【００３４】
図３において、パネルインタフェース部３０１はパネル部１０４とのデータ通信を介して、操作者からの諸設定、指示をパネル部１０４から受け取る。ホストインタフェース部３０２は、ホストコンピュータ等の外部機器１０１との信号の入出力部であり、入出力バッファを持つ。エンジンインタフェース部３０６は、プリンタエンジン部１０５との信号の入出力部であり、不図示の出力バッファレジスタからデータ信号送出を行うとともにプリンタエンジン１０５との通信制御を行う。画像データ発生部３０３は、外部機器１０１より送られる制御コードデータに基づいて実際の印字のためのビットマップデータを発生する。画像メモリ３０５は、画像データ発生部３０３の発生に画像データを格納するメモリであり、ＣＰＵ３０９は、プリンタコントローラ部１０３全体の制御を司る処理装置であり、ＲＯＭ３０４は、ＣＰＵ３０９の制御コードを格納する読み取り専用メモリであり、ＲＡＭ３０７は、ＣＰＵ３０９の使用する一時記憶用メモリである。ＥＥＰＲＯＭ３１０は、消去可能な不揮発性のメモリである。本発明に係る、ページ記述言語の解析実行部、後述の中間情報作成部、より最適なコマンドに置き換え可能かどうかの判断部、コマンドの評価部、文字列作成部、およびホストコンピュータ等への文字列の送信部が相当するプログラムは、ＲＯＭ３０４またはＥＥＰＲＯＭ３１０に格納してある。したがって、ＲＯＭ３０４またはＥＥＰＲＯＭ３１０を別のＲＯＭまたはＥＥＰＲＯＭと取り替えることにより、別のページ記述言語のコマンドに対しても、本発明を適用できる。ＤＭＡ制御部３０８は、ＣＰＵ３０９からの指示により画像メモリ３０５内のビットマップデータを、エンジンインタフェース部３０６に転送する制御部である。システムバス３１１は、アドレスバスおよびデータバスを持つバスである。パネルインタフェース部３０１、ホストインタフェース部３０２、画像データ発生部３０３、ＲＯＭ３０４、画像メモリ３０５、エンジンインタフェース部３０６、ＲＡＭ３０７、ＤＭＡ制御部３０８、ＣＰＵ３０９およびＥＥＰＲＯＭ３１０は、各々システムバス３１１に接続され、システムバス３１１上にある全ての機能部にアクセス可能である。
【００３５】
ＣＰＵ３０９を制御する制御コードは、不図示のシステムクロックによってタスクと称されるロードモジュール単位に時分割制御するＯＳと、機能単位に動作する複数のロードモジュール（タスク）によって構成されており、ＲＯＭ３０４に格納されている。
【００３６】
図４，図５、および図１１は本実施の形態の内容を示すフローチャートである。
【００３７】
図１１において、コマンドの評価処理を行うモード（評価実行モード）と評価処理を行わないモード（評価非実行モード）との切り替え方法について説明する。ジョブの開始を認識すると（Ｓ１１００）、評価を行うか否かの値をＲＡＭ３０７等から取り出す（Ｓ１１１０）。この値は、パネル等から設定でき、変更も可能である。その結果、評価実行モードでない場合は、そのまま通常のコマンド解析実行の処理を行う（Ｓ１１４０）。評価実行モードである場合は、評価処理を実行する（Ｓ１１３０）。以下、この評価処理を、図４、図５を用いて説明する。
【００３８】
図４においてまず、プリンタがページ記述言語のコマンド１ページ分を受信し（Ｓ４１０）、そのページ記述言語に対応したページ記述言語解析手段を起動させ（Ｓ４１５）、１コマンドを取り出して（Ｓ４２０）、解析を開始する。図４，図５の説明では、１つのページ記述言語を用いた場合について説明しているが、本発明は、他の複数のページ記述言語、例えばページ記述言語を用いた場合についても適用できることは言うまでもない。入力コマンドが該ページ記述言語として正しいフォーマットであるかどうか判断し（Ｓ４２５）、正しいフォーマットであればそのコマンドを解析実行する（Ｓ４３０）。次に中間情報を参照し（Ｓ４３５）、関連コマンドがあるかどうかを判断する（Ｓ４４０）。
【００３９】
ここで言う中間言語とは、図９に示すように、今解析を行っている現コマンドとを組合せることにより、該ページ記述言語中のさらに最適なコマンドに置き換えることができるかどうかを判断するための情報である。たとえば、２点間を結ぶ線描画コマンドの組合せにより、円、多角形、折れ線、網かけなどさまざまな描画を実現できるが、それらを描画するには、線描画コマンドの組合せよりも最適なコマンド、例えば円描画コマンド等の上位コマンドが存在する。そこで、今解析している現コマンドがこれまで解析実行したコマンドと組合せることにより上位コマンドに置き換え可能なコマンドの場合は、各コマンドに指定されている座標などを含むコマンド情報、置き換えられる可能性のある上位コマンド情報、上位コマンドへ変換を実行できるかどうかなどを中間情報として保存しておく。そのコマンドに該当する他のコマンドがあった場合にはこの中間情報を更新して、上位コマンドに置き換え可能となる（中間情報の完成）まで、後の判断材料としていつまで参照できるようにしておく。コマンド同士が関連するかどうかは図８に示すように、例えば４つの直線の線描画コマンドの組合せで矩形を作る場合、それぞれの線描画コマンドの指定座標同士が重なるかどうか、線描画コマンドにより作られる多角形の内角が上位コマンドにより作られる多角形の内角（この場合９０度）となっているかなどをコマンド情報を元に判断する。
【００４０】
例えば、イメージ・データにより同じ矩形を描画する場合は、印刷装置内の処理は矩形命令による処理とほとんど差はない。しかし、イメージ・データの場合は、矩形の大きさによっては外部機器からのデータ量が大幅に増加し、データ通信に時間がかかり結果的に印字速度が遅くなる。従って、この場合も、矩形描画命令に置き換え可能であると判断する。このように、Ｓ４４０は、描画結果が同じ結果になる場合に、できる限り高効率のコマンドによる描画が可能か否かを判断するステップである。
【００４１】
Ｓ４４０において関連コマンドがあると判断された場合、つまり現コマンドをこれまで解析してきたコマンドとの組合せにより上位コマンドに置き換えられる可能性がある場合は、中間情報に今解析している現コマンド情報を追加して置き換え可能である旨の情報により更新する（Ｓ４０５）。この置き換えが、さらに上位のコマンドに置き換えることが可能かを調べるためにコマンド情報を参照する（Ｓ４８５）。Ｓ４４０において関連コマンドがないと判断した場合、つまりこれまで解析してきたコマンドと現コマンドとの組合せにより上位コマンドに置き換えられる可能性がないと判断した場合も同様に、コマンド情報を参照して（Ｓ４８５）、現コマンド自体の上位コマンドが存在するかどうかを判断する（Ｓ４９０）。例えば、現コマンドが矩形描画コマンド（ｘ１，ｙ１）（ｘ２，ｙ２）ならば、そのコマンド自体の上位コマンドとして多角形描画コマンド（ｘ１，ｙ１）（ｘ２，ｙ２）が存在する。存在していないと判断した場合はＳ４６５の１ページ終了の判断へとぶ。上位コマンドが存在すると判断した場合は上述の中間情報の更新（Ｓ４４５）のように中間情報をＳ４５０の完了の判断に進む。
【００４２】
中間情報が完了したかどうか、つまりさらに上位コマンドに置き換え可能か否かを判断する（Ｓ４５０）。通常は次々に新しく中間情報が追加、更新されていくので、まだ完了していない場合はそのままＳ４６５へ進む。１ページ分のコマンドの処理が終了したかどうか判断しながら（Ｓ４６５）、終了していない場合は１コマンド取り出し（Ｓ４２０）に戻り、以上の処理を１ページ終了まで繰り返していく。
【００４３】
コマンド解析を繰り返し、ある中間情報の完了したものつまり、置き換え可能情報を含むものが出来上がったと判断したら（Ｓ４５０）、各コマンドについてランクを決定する。ランクは、例えばＡを最適とし、次にＢ，Ｃ，…とする。図１０に示すランク情報を更新していき（Ｓ４５５）、完了した中間情報を消去する（Ｓ４６０）。
【００４４】
図１０に示すランク情報の詳細について、図８の矩形を描画する場合のランクづけの例により説明する。
【００４５】
コマンドの組合せなどにより様々な方法で同じ画像を作成することが可能であるため、コマンドの種類によって、その処理速度、メモリ使用量は大きく異なる。本実施の形態においては、外部機器から指定されたコマンド群の最適度を示す指標を４段階に分けて、例えば次のように定義する。
【００４６】
Ａランク：コマンド指定方法および処理速度ともに最適なコマンド。
【００４７】
Ｂランク：コマンド指定方法に無駄があるが、処理速度はそれほど落ちない、やや良いコマンド。
【００４８】
Ｃランク：処理速度がやや劣る悪いコマンド。
【００４９】
Ｄランク：指定方法に無駄があり、処理速度もかなり遅くなる最も悪いコマンド。
【００５０】
これらのランクづけは段階を増減することもできるし、また段階の数は同じでも更に各段階の中で細かく定義を行い、１０段階、２０段階と詳細に分けて評価を行うようにすることもできる。
【００５１】
図８の矩形の場合でランク付けの例を示すと、左上の座標と、右下の座標との２点を指定して矩形を描画する矩形描画命令による描画が、データ量が最も少なく内部処理も簡単であり、コマンド数も１コマンドと最も少ない指定による描画となるので、Ａランク（最適なコマンド）となる。
【００５２】
多角形描画命令による描画の場合、４点の座標を指定しなければならず、指定に無駄ができデータ量が若干多くなるが、処理時間は矩形命令と差がないので、Ｂランク（やや良いコマンド）となる。多角形描画命令による描画の場合においても、矩形の直線部分の座標を指定し、５点以上の無駄な座標を指定して矩形描画を行うような場合は、コマンド的にも描画可能であり、処理速度も矩形命令と差がないので、同様にＢランク（やや良いコマンド）となる。しかし、１０点、１００点と多くの座標点を指定を行って矩形描画を行うような場合は、処理速度に大きく影響するので、座標点の数によってＣランク（やや悪いコマンド）またはＤランク（最も悪いコマンド）となる。
【００５３】
直線描画命令による矩形描画の場合、矩形描画命令、多角形描画命令に比べて処理速度も遅くなるので、Ｃランク（やや悪いコマンド）となる。
【００５４】
イメージ・データによる矩形描画の場合は、その矩形の大きさによってランクが異なる。小さい矩形の場合は、データ量も少なく処理時間も矩形描画命令と差がないので、Ａランク（最適なコマンド）となるが、大きな矩形の場合はデータ量が増大し、通信に時間がかかるため、Ｃランク（やや悪いコマンド）またはＤランク（最も悪いコマンド）となる。但し、矩形などの場合は、解像度を落としてデータ量を少なくしても、画像の品質は変わらないので、少ないデータ量で矩形描画を行うようにすれば、Ｂランク（やや良いコマンド）となることもある。
【００５５】
このように、その他の描画命令に関しても同様にランクづけの定義を行うことができる。
【００５６】
この図５は図４の続きを説明する図である。図５において、中間情報の中に、１ページについて解析が終了してもなお上位コマンドに変換できる可能性のあるコマンド情報が残っている場合は、全てのコマンド処理を終了しても所望の最適なコマンドが見つからなかったということになる。この場合は、これ以上最適化できないという意味ですべてのコマンドをＡランクとする（Ｓ５０１）。このランク情報を元にそのページに対する評価結果の文字列を作成し（Ｓ５０２）、評価結果をホストへ送信する（Ｓ５０３）。送信し終わったらそのページのランク情報を消去し（Ｓ５０４）、ジョブが終了したかどうかを判断しながら（Ｓ５０５）、受信した全てのジョブが終了するまで処理を繰り返す。
【００５７】
Ｓ４２５において、入力コマンドがページ記述言語として正しいフォーマットでないと判断した場合、該コマンドを読み飛ばして、どのようなエラーであるかを示す情報である。エラーステータス情報を作成し（Ｓ４７５）、このエラーステータス情報をホストコンピュータまたはデバイス機器へ送信し（Ｓ４８０）、次のコマンドを取り出す（Ｓ４２０）。
【００５８】
（実施の形態２）
実施の形態１においては評価結果をホストコンピュータ等に対してステータスとして送信したが、図６，図７に示すようにログ情報としてジョブの最後に出力を行うようにしても良い。
【００５９】
エラー情報についても、本実施の形態２においてはエラーログ情報を作成し（Ｓ６７５）、該エラーログ情報をプリンタのメモリに格納する（Ｓ６８０）。
【００６０】
図７においては、実施の形態１のようにページ毎にユーザに通知するのではなく、評価ログ情報をメモリに保存していき（Ｓ７０２）、ジョブが全て終了してからログ情報を印刷し（Ｓ７０４）、ランク情報を消去し（Ｓ７０５）終了する。
【００６１】
（実施の形態３）
実施の形態１においては、それぞれのコマンドに対するランク（例えばＡ，Ｂ，Ｃ，Ｄなど）をホストへ送信してユーザに通知したが、これらのランクに適当な係数を乗じて採点を行っても良い。例えば、ランクＡ：係数１、ランクＢ：係数０．９、ランクＣ：係数０．６、ランクＤ：係数０．３のように各ランク毎に係数を対応させることができる。あるコマンドｉのランクをＲ（ｉ）、あるランクｒの係数をＣ（ｒ）、コマンドの総数をＫとすると、採点Ｓは次式で求めることができる。
【００６２】
【数１】
0003585206.tif 000002
【００６３】
上記の例では、０．３≦Ｃ（ｒ）≦１であったが、Ｃ（ｒ）の値の範囲はこれに限定されるものではなく、上下限は正負任意に設定することができる。またＣ（ｒ）＝０としてもよく、さらに、ｒ≠ｑについてＣ（ｒ）＝Ｃ（ｑ）としてもよい。
【００６４】
（実施の形態４）
実施の形態１においては、１段階上の上位コマンドへの変換のみの場合を説明したが、例えば、最終的に１つの矩形描画コマンドで描画し、中間的に四角形を４つの直線描画コマンドで描画し、さらにそれらの４本の直線が各々２本の直線からできているような場合、つまり複数段階の上位コマンドへの変換ができる場合は、最終評価結果からさらにランクを下げるように評価を行うような仕組みを設けても良い。
【００６５】
（実施の形態５）
前述したように、本発明は、ＥＥＰＲＯＭ３１０またはＲＯＭ３０４を取り換えることにより、別のページ記述言語のコマンドを最適化する場合にも適用できる。この場合、各種のページ記述言語を共通の中間言語に変換して、この中間言語を解析実行することもできる。
【００６６】
つまり、実施の形態１においては、ホストコンピュータから受信した、アプリケーションあるいはプリンタドライバが作成するページ記述言語についての評価を行ったが、プリンタコントローラ部１０３のＲＯＭ３０４またはＥＥＰＲＯＭ３１０に搭載されているページ記述言語を上述の中間言語におとした場合の各中間コマンドの集まりに対しても評価を同様にして行うこともできる。
【００６７】
上述の実施の形態においては、出力装置がプリンタである場合について説明してきたが、本発明はこれに限定されるものではなく、出力装置がプロッタまたはディスプレイである場合にも適用できることは言うまでもない。
【００６８】
（実施の形態６）
実施の形態１においては、描画完了までの処理速度についての評価を行ってきたが、例えばコストパフォーマンスを追求して、省メモリ化をはかるために、メモリ使用量についての評価を行うこともできる。
さらに、該データ詳述言語を使用するホストアプリケーション、プリンタドライバの開発を新たに始めるような場合など、該ページ記述言語のコマンド内容も全て把握しきれていないことが考えられる場合は、使用したコマンドの効率が最適なコマンドからどれ位離れているかの評価を行うことにより、より高効率の、最適なコマンドの使用をホストアプリケーション、プリンタドライバの開発者に促すことが可能である。
【００６９】
【発明の効果】
以上説明したように、本発明の出力装置によれば、出力装置に送信されたページ記述言語のコマンドを解析し、コマンド相互の情報を参照して、同じ出力結果を得るのに現在のコマンドより効率の良いコマンドがないかどうか判断し、最も効率の良い好適なコマンドから現在のコマンドがどれくらい離れているかの評価を行い、ユーザ、特にホストアプリケーション、プリンタドライバの開発者に通知することにより、プログラム開発に要する時間を少なくし、ホストアプリケーション、ドライバなどの開発効率を上げることが可能である。
【図面の簡単な説明】
【図１】本発明の一実施の形態であるプリンタを含むシステムの全体構成を示すブロック図である。
【図２】本発明の一実施の形態であるプリンタの機構を示す図である。
【図３】本発明の一実施の形態であるプリンタの内部のプリンタコントローラの構成を示すブロック図である。
【図４】本発明の一実施の形態である、受信コマンドを解析し評価する動作を示すフローチャートである。
【図５】本発明の一実施の形態である、受信コマンドに対する評価とホストコンピュータ等への通知の動作を示すフローチャートである。
【図６】本発明の一実施の形態である、受信コマンドを解析し評価する動作の示すフローチャートである。
【図７】本発明の一実施の形態である、受信コマンドに対する評価と通知動作を示すフローチャートである。
【図８】本発明の一実施の形態である、コマンド情報を示す図である。
【図９】本発明の一実施の形態である、中間情報を示す図である。
【図１０】本発明の一実施の形態である、ランク情報を示す図である。
【図１１】本発明の一実施の形態である、コマンドの評価処理を行うモード（評価実行モード）と評価処理を行わないモード（評価非実行モード）との切り替え方法の一例を示すフローチャートである。
【符号の説明】
１０１  外部機器
１０２  レーザビームプリンタ
１０３  プリンタコントローラ部
１０４  パネル部
１０５  プリンタエンジン部
２０１  プリンタ筐体
２０２  操作パネル
２０３  制御ボード収納部
２０４  カートリッジ
２０５  感光ドラム
２０６  レーザドライバ
２０７  回転多面鏡
２０８  反射ミラー
２０９  ビームディテクタ
２１０  用紙カセット
２１１  カセット給紙クラッチ
２１２  給紙ローラ
２１３，２１７  搬送ローラ
２１４  レジストシャッタ
２１５  給紙クラッチ
２１６  定着ローラ
２１８  排紙ローラ
２１９  手差し用トレイ
２２０  現像器
３０１  パネルインタフェース（Ｉ／Ｆ）部
３０２  ホストインタフェース（Ｉ／Ｆ）部
３０３  画像データ発生部
３０４  ＲＯＭ
３０５  画像メモリ
３０６  エンジンインタフェース（Ｉ／Ｆ）部
３０７  ＲＡＭ
３０８  ＤＭＡ制御部
３０９  ＣＰＵ
３１０  ＥＥＰＲＯＭ
３１１  システムバス
【図１】
0003585206.tif 000003
【図２】
0003585206.tif 000004
【図３】
0003585206.tif 000005
【図４】
0003585206.tif 000006
【図５】
0003585206.tif 000007
【図６】
0003585206.tif 000008
【図７】
0003585206.tif 000009
【図８】
0003585206.tif 000010
【図９】
0003585206.tif 000011
【図１０】
0003585206.tif 000012
【図１１】
0003585206.tif 000013