(57)【要約】【課題】  プリンタドライバとデバイスとで同一種類の最適化処理を行える画像処理システムにおいて、２重に最適化処理を実施してしまうといった冗長性を取り除き、かつ煩雑な前準備を行うことなく、システム全体の処理性能を向上することを目的とする。【解決手段】  描画命令に対して少なくとも１種類以上の最適化処理を行う第１の最適化手段と、前記最適化処理の実施の有無を最適化処理の種類別に最適化情報として出力する手段を備えた印刷データ生成装置と、前記印刷データを解析して描画オブジェクトを生成する解析部と、前記描画オブジェクトに対して前記第１の最適化手段と同一種類の最適化処理を少なくとも１種類以上実施可能な第２の最適化手段とを備えた前記画像生成装置から成る画像処理システムであって、前記第２の最適化手段は、前記最適化情報が最適化未実施であることを示す種類の最適化処理のみを行う。【選択図】  図１１
2012221195.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からの印刷指示に応じた印刷データを生成する印刷データ生成装置（２０７）と、前記印刷データ生成装置から受信した印刷データに従って画像形成を行う画像生成装置（１０２）とから成る画像処理システムであって、
前記印刷データ生成装置は、前記印刷指示として受け取る描画命令に対して少なくとも１種類以上の最適化処理を行う第１の最適化手段（３０３）と、
前記最適化処理の実施の有無を、最適化処理の種類別に最適化情報（９０１、９０２、９０３）として出力する手段（３０６）を備え、
前記画像生成装置は、前記印刷データを解析して描画オブジェクトを生成する解析部（４０２）と、
前記解析部から受け取った描画オブジェクトに対して、前記第１の最適化手段と同一種類の最適化処理を少なくとも１種類以上実施可能な第２の最適化手段（４０３）とを備え、
前記第２の最適化手段は、前記最適化情報が最適化未実施であることを示す種類の最適化処理を行うことを特徴とする画像処理システム。
【請求項２】
前記第１および第２の最適化処理手段は、前記描画命令の冗長性または描画結果に影響しない不要な描画命令の除去を行う処理であることを特徴とする請求項１に記載の画像処理システム。
【請求項３】
前記最適化情報は、ページ記述言語（ＰＤＬ）の描画命令として印刷ジョブ単位に受け取るヒント情報（１００２）であることを特徴とする請求項１に記載の画像処理システム。
【請求項４】
印刷データ生成装置は、ホストコンピュータ上で動作しＰＤＬによって記述された印刷データを出力するプリンタドライバであることを特徴とする請求項１に記載の画像処理システム。
【請求項５】
前記画像生成装置は、前記第１の最適化手段を備えた少なくとも１つ以上のプリンタドライバと、前記第１の最適化手段を備えていない少なくとも１つ以上のプリンタドライバとが混在した環境において前記印刷データを受け取ることを特徴とする請求項１に記載の画像処理システム。
【請求項６】
前記第１の最適化手段は、印刷データ内の１ページ目に対しては最適化処理を行わず、２ページ目以降のページに対してのみ最適化処理を行い、前記最適化情報はページ単位に受け取るヒント情報（１３０１、１３０３）であることを特徴とする請求項１に記載の画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションなどの上位装置から受け取った印刷指示に基づいて印刷データを生成する印刷データ生成装置と、前記印刷データに基づいて画像形成を行う画像処理装置とから成る画像処理システムに関する。
【背景技術】
【０００２】
近年、ホストコンピュータ（以下、ＰＣと記す）上で動作するプリンタドライバとプリンタデバイス間とで、描画処理モジュールを共通化した構成とすることで、描画結果の統一性や開発効率の向上を目指した画像処理システムが考えられている。このような画像処理システムでは、所定の描画処理機能をプリンタドライバとプリンタデバイスのどちらでも処理可能であるため、上位装置から指示される描画命令の解析処理にかかる負荷を双方で分散することができる。
【０００３】
ここで、前記所定の描画処理機能としては、描画命令の冗長度あるいは複雑度を軽減して、システム全体の処理速度を向上するための最適化処理が挙げられる。前記最適化処理の例としては、前記描画命令に微細領域に分割された複数のイメージ描画命令が含まれている場合に、前記複数のイメージデータを一つのイメージに結合して、描画命令の発行回数を削減する処理などがある。
【０００４】
また、プリンタドライバとプリンタデバイス間で負荷分散を行う従来技術としては、所定のベンチマークデータを用いた印刷ジョブの実行結果に基づいて、ホスト・デバイスのどちらで処理を行うべきかを動的に決定する方法が提案されている（特許文献１）。
【０００５】
一方、複数のＰＣとネットワーク共有されたプリンタデバイスに出力する環境においては、描画処理モジュールをデバイスと共通化した前記プリンタドライバの他、機種共通で処理可能なＰＤＬ描画命令のみを発行する汎用プリンタドライバからの出力も受け付ける。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１４０５７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところが、描画処理性能に関わるＣＰＵやメモリおよびハードディスク等のハード資源は、プリンタデバイスに比べＰＣがより高性能かつ潤沢である場合が多いため、プリンタドライバにて常に最適化処理を行ったほうがシステム全体としての処理効率は良くなる。
【０００８】
一方、前記汎用プリンタドライバでは、アプリケーションからの描画指示に対して最適化処理を実施することなく印刷命令を生成するため、プリンタデバイスは受け取る印刷ジョブによって前記最適化処理を実施するか否かを切り替える必要があった。
【０００９】
また、従来技術のように動的に処理負荷の分散を決定するためには、ベンチマークデータを用いたテスト計測に基づいて決定する必要があったため、煩雑な前準備が必要であった。
【００１０】
さらに、従来は一つの印刷ジョブ内で負荷分散方式を切り替える点は考慮していなかったため、例えば複数ページを含む印刷ジョブのデータ入力を速める等、きめ細かく処理負荷を分散することはできていなかった。
【課題を解決するための手段】
【００１１】
前記課題を解決するために、本発明に示す画像処理システムでは下記の手段を備える。すなわち、
外部装置からの印刷指示に応じた印刷データを生成する印刷データ生成装置（２０７）と、前記印刷データ生成装置から受信した印刷データに従って画像形成を行う画像生成装置（１０２）とから成る画像処理システムであって、前記印刷データ生成装置は、前記印刷指示として受け取る描画命令に対して少なくとも１種類以上の最適化処理を行う第１の最適化手段（３０３）と、前記最適化処理の実施の有無を、最適化処理の種類別に最適化情報（９０１、９０２、９０３）として出力する手段（３０６）を備え、前記画像生成装置は、前記印刷データを解析して描画オブジェクトを生成する解析部（４０２）と、前記解析部から受け取った描画オブジェクトに対して、前記第１の最適化手段と同一種類の最適化処理を少なくとも１種類以上実施可能な第２の最適化手段（４０３）とを備え、前記第２の最適化手段は、前記最適化情報が最適化未実施であることを示す種類の最適化処理を行うよう構成されている。
【発明の効果】
【００１２】
プリンタドライバとプリンタデバイス間とで描画処理モジュールを共通化した構成を備える画像処理システムにおいて、描画命令の最適化処理を重複して無駄に実施してしまうことがなくなるため、システム全体の処理速度を上げることができる。
【００１３】
また、プリンタドライバ・プリンタデバイスのどちらで最適化処理を行うかを、静的な条件に基づいて決定するため、ベンチマークデータを用いた煩雑な計測を行う必要もなくなり、より実用的な描画処理システムを提供することができる。
【００１４】
さらに、印刷ジョブ毎にデバイス側での最適化処理の実施判断を指定するため、該当機種専用のプリンタドライバと汎用プリンタドライバとが混在するような環境を考慮した最適な負荷分散が可能となる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施例における画像処理システムの構成を説明するブロック図である。
【図２】第１の実施例におけるホストコンピュータ上で動作するソフトウェア構成を示すブロック図である。
【図３】第１の実施例のプリンタドライバ２０７における描画処理モジュールの構成を示したブロック図である。
【図４】第１の実施例のプリンタデバイス１０２における描画処理モジュールの構成を示したブロック図である。
【図５】プリンタドライバ２０７が実行するＰＤＬデータ生成手順を示すフローチャートである。
【図６】描画命令最適化部３０３がイメージ描画命令に対して実行する最適化手順を示すフローチャートである。
【図７】描画命令最適化部３０３が文字描画命令に対して実行する最適化手順を示すフローチャートである。
【図８】描画命令最適化部３０３がクリップ命令に対して実行する最適化手順を示すフローチャートである。
【図９】プリンタドライバ２０７が生成する、最適化実施結果を通知するヒント命令の例である。
【図１０】プリンタドライバ２０７が生成する、ヒント命令を含む印刷データの構成例である。
【図１１】プリンタデバイス１０２が実行するＰＤＬデータの解析手順を示すフローチャートである。
【図１２】描画オブジェクト最適化部４０３が文字描画命令に対して実行する最適化手順を示すフローチャートである。
【図１３】第３の実施例における、ヒント命令を含む印刷データの構成例である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１７】
＜第１の実施例＞
図１は本発明の実施形態の画像処理システムの構成を説明するブロック図である。
【００１８】
同図において、１０１はホストコンピュータ（以下、ＰＣ）であって、プログラムＲＯＭ１０９ａあるいはＨＤＤ（１１３）に記憶された各種プログラムをＣＰＵ１０８が実行することによって、システムバス１０７に接続された各デバイスを総括的に制御する。
【００１９】
また、前記各種プログラムには、オペレーティングシステム（以下、ＯＳ）の他、ワードプロセッサ等のアプリケーション、前記アプリケーションからの印刷指示を受けプリンタデバイス１０２が解釈可能なＰＤＬデータを生成するプリンタドライバ２０７等を含む。
【００２０】
１１１はＲＡＭであり、ＣＰＵ１０９の主メモリ、およびワークエリア等として機能する。１１２は外部記憶装置コントローラであり、ＨＤＤ１１３とのアクセスを制御する。
【００２１】
１１１はプリンタＩ／Ｆ部であり、ネットワーク等の通信経路を介してプリンタ１０２へのＰＤＬデータ送信等の通信制御を行う。
【００２２】
また、ＣＰＵ１０８によって実行されるプリンタドライバ２０７のプログラムは、不図示のディスプレイに表示されたＧＵＩ経由でユーザから指定された印刷設定内容を受け取り、前記印刷設定内容に応じた描画処理を行う。
【００２３】
プリンタデバイス１０２において、１２１はプリンタＣＰＵであり、プリンタ制御部１０３内のシステムバス１２０に接続される各デバイスを総括的に制御する。また、プリンタＣＰＵ１２１は、ＲＯＭ１１２２のプログラム用ＲＯＭ１２２ａに基づいて、印刷部Ｉ／Ｆ１２５に接続された印刷部（プリンタエンジン）１０５へ画像情報に応じたビデオ信号を出力する。なお、ＲＯＭ１２２は、プリンタＣＰＵ１２１が実行する制御プログラムを記憶したプログラム用ＲＯＭ１２２ａの他、不図示のフォントデータ等から構成される。さらに前記制御プログラムには、ホストＩ／Ｆ部１２４を介してＰＣ１０１から受信した印刷データ（ＰＤＬデータ）を解釈し、印刷部１０５へ出力可能なビットマップデータに変換する画像形成プログラムを含む。
【００２４】
続いて、ＲＡＭ１２３は、受信したＰＤＬデータを一時的に保持する受信バッファ１２３ａ、ＰＤＬを解析して生成した描画オブジェクトを格納する描画オブジェクトメモリ１２３ｂ、ページ画像を格納するページスプールメモリ１２３ｃ等に割り当てられる。
【００２５】
また、１０４は操作部であり、プリンタデバイス１０２に対する各種操作を実現するための操作パネルやスイッチ、ＬＥＤ表示器等が構成されている。
【００２６】
図２は、ＰＣ１０１上で動作する印刷処理に係るソフトウェアのプログラム構成を示すブロック図である。
【００２７】
ここで、前記ソフトウェア群は、前記ＯＳが外部記憶装置１１９にファイルとして格納されたプログラムコードをＲＡＭ１１１上にロードし、ＣＰＵ１０９によって実行されることで、本発明の機能を実現する。
【００２８】
本実施例における前記ソフトウェア群は、大別するとアプリケーション２０２、ＯＳ（２０３）、およびプリンタドライバ２０７から構成されている。さらにＯＳ（２０３）のプリント処理を司るモジュールは、グラフィックエンジン２０４、プリントプロセッサ２０６、およびシステムスプーラ２０８にて構成されている。
【００２９】
前記アプリケーション２０２がプリンタ１０２に対して描画指示を行う際は、前記グラフィックエンジン２０４のサービス関数群であるＧＤＩ（Ｇｒａｐｈｉｃ Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）を呼び出すことで、描画命令を発行する。そして、前記グラフィックエンジン２０４は、ＧＤＩ経由で受け取った前記印刷指示を元に中間コード形式のスプールファイル（ＥＭＦ：Ｅｎｈａｎｃｅｄ  Ｍｅｔａ  Ｆｉｌｅ）を生成し、ＨＤＤ上の記憶領域にファイルとして一時的にスプールする構成を有する。
【００３０】
続いて、プリントプロセッサ２０６は、前記スプールファイル２０５として一時保存された印刷データを読み出し、前記描画指示に対応するＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）関数に変換し、プリンタドライバ２０７へ描画指示を行う。ここで、プリントプロセッサ２０６は、予めプリンタドライバ２０７から宣言された処理能力に応じて、前記ＧＤＩ関数による描画指示をプリンタドライバ２０７が受け取り可能なＤＤＩ関数に変換する処理を行う。
【００３１】
一方、プリンタドライバ２０７は、前記ＤＤＩ関数による描画指示に基づいてプリンタ１０２が処理可能なＰＤＬコマンドを生成する。そして、前記ＰＤＬコマンドはシステムスプーラ２０８からネットワーク等のインタフェースを経由して、プリンタ１０２に印刷ジョブとして出力される。
【００３２】
図３は、本実施例のプリンタドライバ２０７における描画処理モジュールの構成を示したブロック図である。同図の３０１は、前記プリントプロセッサ２０６からＤＤＩ関数による描画命令を受け取る描画命令入力部、３０２は前記描画命令を解析して中間形式の描画命令に変換する描画命令解析部である。
【００３３】
３０３は、前記中間形式の描画命令を受け取ってＰＤＬデータに変換する描画命令最適化部であって、ＰＤＬデータ変換時に不要な描画命令の削除あるいは結合などの最適化処理を行う。具体的には、前記中間形式の描画命令を描画命令格納部３０４に一時的に格納し、格納した前記描画命令の前後の連続性や描画位置の関連性（重なり状況）を解析することで、接合状況や重複度を判定し、不要箇所の除去・ビットマップ展開などを行う。なお、描画命令格納部３０４は、描画命令最適化部３０３がＯＳ（２０３）に獲得要求を行って得られたＲＡＭ１１１から割り当てられる。
【００３４】
続いて３０５は、前記描画命令格納部３０４に格納された描画命令を順次読み出しビットマップに展開するレンダラであって、描画命令最適化部３０３の判定結果によって必要に応じて呼び出される。
【００３５】
最後に、ＰＤＬコマンド出力部３０６は、最適化済みの前記ＰＤＬコマンドをシステムスプーラ１０８に対して出力する。
【００３６】
続いて、図４のブロック図を用いて、プリンタ制御部１０３における描画処理モジュールの構成を説明する。なお、これらの描画処理モジュールは、プリンタＣＰＵ１２１が実行する制御プログラムとしてプログラムＲＯＭ１１０ａに格納されている。
【００３７】
同図において、印刷データ受信部４０１はホストＩ／Ｆ部（１２４）経由で受信したＰＤＬデータを順次受信バッファ１２３ａに格納し、ＰＤＬインタプリタ４０２に解析処理の開始通知を行う。
【００３８】
ＰＤＬインタプリタ４０２は、受信バッファ１２３ａに格納された前記ＰＤＬデータを順次読み出し、解析した結果から中間形式の描画命令を生成し、描画オブジェクト最適化部４０３に通知する。描画オブジェクト最適化部４０３は、プリンタドライバに含まれる描画命令最適化部３０２と同様、入力された描画命令の最適化処理を行い、その結果を描画オブジェクトとして描画オブジェクトメモリ１２３ｂに順次格納する。すなわち、前記描画命令を最適化ワークメモリ１２３ｄに一時的に格納し、前記描画命令の前後の連続性や描画位置の関連性（重なり状況）を解析することで、接合状況や重複度を判定し、不要箇所の除去を行う。なお、本実施例では、プリンタ制御部には最適化に特化したレンダラは持たない構成としている。
【００３９】
ページ画像生成部（レンダラ）４０５は、前記描画オブジェクトメモリ１２３ｂに１ページ分の描画オブジェクトが格納される度に起動され、前記描画オブジェクトを元に生成したページ画像を所定のフォーマットにてページスプールメモリ１２３ｃに格納する。
最後に、前記ページ画像は印刷部Ｉ／Ｆ（１２７）によってエンジン１０５に同期して読み出される。
【００４０】
続く図５、６、７、８のフローチャートを用いて、プリンタドライバ２０７が実行するＰＤＬデータ生成手順について説明する。ここで、それぞれの図に示した処理ステップは、図３に示したプリンタドライバ２０７を構成する各描画処理モジュールのプログラムがＣＰＵ１０９に読み出されることによって実行される。
【００４１】
図５は、前記プリントプロセッサ２０６からＤＤＩ関数による描画命令を１つ受け取った際のプリンタドライバ２０７の処理手順を示している。
【００４２】
まず、描画命令入力部３０１は、プリントプロセッサ２０６から１処理単位の描画命令を受け取り、描画命令解析部３０２が命令種別を確認する（ステップＳ５０１）。前記描画命令がジョブ開始命令であった場合（Ｓ５０２）、描画命令最適化部３０３は、最適化処理実施済みである旨を示すヒント情報を生成する（Ｓ５０３）。そしてＰＤＬコマンド出力部３０６によって、「ジョブ開始命令」と合わせて「ジョブヒント命令」が出力される。（前記「ジョブヒント命令」の詳細は図９を用いて後述する。）。
【００４３】
一方、Ｓ５０２において前記描画命令がジョブ開始命令でなかった場合、続くステップにおいて各種描画命令に応じたＰＤＬデータを生成する。ここで、本実施例における描画命令最適化部３０３は、描画命令がイメージまたは文字を描画する命令の場合は、描画命令格納部３０４に順次スプールし、命令種別が切り替わる度にスプール済みの前記描画命令に対して最適化処理を実施する構成とした。（Ｓ５０５、Ｓ５０８、Ｓ５１１、Ｓ５１４の詳細は後述する。）
まず、Ｓ５０４において、描画命令解析部３０２はイメージ描画命令であるかを調べ、イメージ描画命令である場合は、描画命令最適化部３０３に対してスプール済みの文字描画命令の最適化処理の実施を指示する（Ｓ５０５、詳細は図７を用いて後述する）。その後、描画命令最適化部３０３は、前記イメージ描画命令が単色のイメージデータであるか否かを調べ（Ｓ５０６）、単色である場合は前記単色のブラシで描画する矩形描画命令に置換する（Ｓ５０７）。この時、前記矩形情報の印字位置情報は、前記イメージデータのパラメータとして指定される印字位置と幅・高さ情報とから算出する。このようにピクセル画素単位に情報を持つイメージデータを、矩形四隅の座標情報と色情報とに置き変えることによって、ＰＤＬデータの大幅な削減が可能となり、最適化されたデータ形式となる。続いて、描画命令最適化部３０３は、スプール済みのイメージデータが存在するかを調べ、存在する場合は最適化処理を行う（Ｓ５０８、詳細は図６にて後述する）。最後に、ＰＤＬコマンド出力部３０６は、前記最適化済みのイメージデータに相当するＰＤＬデータと、Ｓ５０７にて生成した矩形描画命令に相当するＰＤＬデータを出力し（Ｓ５０９）、１命令分の処理を終える。
【００４４】
一方、Ｓ５０６にて前記イメージ描画命令が単色イメージでないと判定された場合、描画命令最適化部３０３は前記イメージデータが所定サイズ（例えば、１０×１０画素）以下であるかを調べ（Ｓ５１０）、所定サイズ以下であればスプールを行う（Ｓ５１１）。一方、所定サイズを超えるイメージデータであった場合、最適化処理は行わず、ＰＤＬコマンド出力部３０６が通常のイメージ描画を示すＰＤＬコマンドを出力する。
【００４５】
Ｓ５０４に戻り、描画命令がイメージ描画命令でなかった場合、描画命令解析部３０２は描画命令最適化部３０３に対して、スプール済みのイメージ描画命令の最適化処理を指示する（Ｓ５１２）。ここでの処理はＳ５０８と同様である。
【００４６】
続いて、描画命令解析部３０２は描画命令が文字印字命令であるかを調べ（Ｓ５１３）、文字であった場合は、描画命令最適化部３０３は最適化処理を行うために文字描画命令をスプールし（Ｓ５１４）、１命令の処理を終了する。
【００４７】
一方、Ｓ５１３で描画命令が文字印字命令でなかった場合、描画命令最適化部３０３は、図形描画命令について最適化処理を行い相当するＰＤＬデータを生成する。すなわち、まずスプール済みの文字印字命令に対して最適化処理を行い、相当するＰＤＬデータを生成する（Ｓ５１５）。続いて、前記図形描画命令に対してクリッピングを行う指定が付加されているかを調べ（Ｓ５１６）、なければ前記図形描画命令に対応するＰＤＬデータを出力する。Ｓ５１６にてクリップ指定がなされている場合は、描画命令最適化部３０３はクリップ指定がなされた前記図形描画命令の最適化処理を行う（Ｓ５１７、図８にて後述する）。
【００４８】
プリンタドライバ２０７は、プリントプロセッサ２０６からの描画命令がなくなるまで、上記フローチャートに示した処理を繰り返し、少なくとも１ページ分のＰＤＬデータを生成する。
【００４９】
図６、図７、図８はそれぞれ、描画命令最適化部３０３がスプール済みの描画命令に対する最適化処理の詳細を示したフローチャートであって、図６はイメージについて、図７は文字、図８はクリップ指定がある図形描画命令に対する処理を示している。
【００５０】
図６において、まずスプール済みのイメージ描画命令が２つ以上存在するか否かを調べ（Ｓ６０１）、存在する場合は描画命令のパラメータで指定された描画位置や描画論理を元に複数のイメージデータが結合可能か否かを調べる（Ｓ６０２）。ここで結合できないと判定された場合は、各イメージデータに対してＰＤＬコマンドを生成する（Ｓ６０４）。
【００５１】
一方、複数のイメージデータが結合可能であると判断された場合、Ｓ６０３にて前記イメージデータを結合する。この処理をスプール済みイメージがなくなるまで繰り返し、最後に結合済みのイメージデータに対応するＰＤＬコマンドを生成して（Ｓ６０５）最適化処理を終える。
【００５２】
図７に示した文字描画命令に対する最適化処理おいては、同じ位置に重ねて印字している同一フォント種別の文字を検出して重なった描画命令を除去する処理、および同色で重ならずに印字している文字列を検出して一つのイメージデータに変換している。
【００５３】
まずスプール済みの文字描画命令が２つ以上存在するか否かを調べ（Ｓ７０１）、存在する場合は描画命令のパラメータで指定された描画位置や文字コードから重なり状況を判定し（Ｓ７０２）、同一箇所に重なる場合には下の文字描画命令を除去する（Ｓ７０３）。
【００５４】
一方、Ｓ７０２にて文字種が異なるか、あるいは完全に重ならないと判定された場合、それぞれの文字の色指定と重なり状況を判定する（Ｓ７０４）。ここで同色かつ重なりなしと判定された場合、レンダラ３０５は前記文字描画命令を元に２値のイメージデータを生成する（Ｓ７０５）。さらに、Ｓ７０４にて同色でなく、あるいは文字の一部が重なると判定された文字印字命令に対しては、通常の文字印字命令に相当するＰＤＬデータを生成する（Ｓ７０６）。
【００５５】
以上の処理をスプール済み文字印字命令がなくなるまで行い、最後にＳ７０５にて生成したイメージデータに相当するＰＤＬデータを生成する（Ｓ７０７）。
【００５６】
図８では、矩形状のクリップ指定がなされた図形描画命令に対する最適化処理の手順を説明している。
【００５７】
本実施例では、描画すべき図形がクリップ領域に包含されていれば前記クリップ指示を除去し（Ｓ８０２〜Ｓ８０５）、クリップ領域外に完全にはみ出していれば該図形描画を除去（Ｓ８０７、Ｓ８１０）といった既知の最適化処理を行う。さらに、該描画命令が矩形描画命令であって、かつ一部分がクリップ指定領域と交差する場合は、クリップ済みの矩形描画命令を生成する例も示している（Ｓ８０７〜Ｓ８０９）。
【００５８】
図９は、前記Ｓ５０３において生成されたヒント情報を元に出力された「ジョブヒント命令」の具体例を示している。
【００５９】
同図において、９０１はコマンド種別を示す１バイトのコマンドＩＤであって、ここでは０ｘ０８が「ジョブヒント命令」に割り当てられているものとする。続く９０２は、本命令に付加されるパラメータのタイプを指定する１バイトのパラメータＩＤであり、予め０ｘｆ４が「Ｈｉｎｔ  Ｃｏｄｅ」に割り当てられている。９０３は前記「Ｈｉｎt  Ｃｏｄｅ」のデータ部であり、本実施例では３２ｂｉｔのビット列として構成する。ここで、前記「Ｈｉｎt  Ｃｏｄｅ」は、ＬＳＢ側のビットから順にｂｉｔ０、ｂｉｔ１〜ｂｉｔ３１と割り当て、各ビットがそれぞれ所定の最適化処理の実施済み状況を示している。
【００６０】
例えば、ｂｉｔ０が１（ＯＮ）である場合、該ＰＤＬジョブに含まれるイメージ描画命令に対しては結合処理（最適化処理）が実施済みであることを示しており、０（ＯＦＦ）である場合は結合処理が未実施であることを示している。
【００６１】
以下同様に、本実施例における最適化処理のビット割り当て例を示すが、最適化処理の具体例については、プリンタドライバ側の処理と符合さえしていれば下記に限らない。
【００６２】
ｂｉｔ０：微細なイメージ描画命令を１つのイメージに結合済みなら１
ｂｉｔ１：単色のイメージ描画命令を矩形描画命令に変換済みなら１
ｂｉｔ２：図形に対するクリップ最適化処理を実施済みなら１
ｂｉｔ３：重なった文字印字命令を除去済みなら１
ｂｉｔ４：同色の重ならない文字印字をイメージに変換済みなら１
ｂｉｔ５〜ｂｉｔ３１：未使用（予約領域）
上記例の場合、全ての最適化処理が実施済みである場合はｂｉｔ０〜ｂｉｔ４が全てＯＮとなるため、「Ｈｉｎt  Ｃｏｄｅ」は０ｘ１ｆとなる。
【００６３】
図１０は、前記「ジョブヒント命令」を含むＰＤＬデータ構成例を示している。
【００６４】
本実施例の画像処理システムでは、アプリケーションからの１回の印刷指示に対して、「Ｂｅｇｉｎ  Ｊｏｂ」命令（１００１）から「Ｅｎｄ  Ｊｏｂ」命令（１００６）で囲まれたひと固まりのＰＤＬデータが該当し、１つの印刷ジョブとして扱う。ここで、本実施例においては、前記「ジョブヒント命令」（１００２）は「Ｂｅｇｉｎ  Ｊｏｂ」命令（１００１）の直後に発行されている構成とし、１つの印刷ジョブに対する指定とみなす。
【００６５】
前記「ジョブヒント命令」（１００２）に続く、「Ｂｅｇｉｎ  Ｐａｇｅ」命令（１００３）から「Ｅｎｄ  Ｐａｇｅ」命令（１００５）で囲まれた描画命令群（１００４）が１ページ目に相当する。
【００６６】
なお、本実施例においては、前記「ジョブヒント命令」が発行されていない場合、前記「Ｈｉｎt  Ｃｏｄｅ」は初期値として全て０（ＯＦＦ）が指定されたものとして扱う。
【００６７】
上記に示した「ジョブヒント命令」を含む印刷ジョブを受信したプリンタデバイスは、前記「Ｈｉｎt  Ｃｏｄｅ」のビット内容に応じて最適化処理を実施すべきか否かを判断し、描画オブジェクト最適化部４０３の制御を行う。
【００６８】
以下、図１１、１２のフローチャートを用いて、前記印刷ジョブを受信した際にプリンタ制御部１０３が行う最適化処理の手順について説明する。
【００６９】
ここで、図１１、１２に示した各ステップは、印刷データ受信部４０１、ＰＤＬインタプリタ４０２、描画オブジェクト最適化部４０３、描画オブジェクト生成部４０４を構成するプログラムがＣＰＵ１２１にて実行されることで実現される。
【００７０】
なお、両図に示した最適化処理の全体フローは、図５に示したプリンタドライバ２０７による最適化処理フローと同様で良いため、詳細の説明は省略する。
【００７１】
プリンタドライバの処理と異なるステップとして、まずＰＤＬインタプリタ４０２は、「ジョブヒント命令」を解釈した際に（Ｓ１１０２）、パラメータの「Ｈｉｎｔ  Ｃｏｄｅ」（９０３）をワークメモリに保持しておく（Ｓ１１０３）。また、描画オブジェクト最適化部４０３は、各描画命令を処理する度に、前記「Ｈｉｎｔ  Ｃｏｄｅ」に従って最適化処理の要否を判定するステップが加わる（Ｓ１１０６、Ｓ１１１１、Ｓ１１１５、Ｓ１１１９、Ｓ１２０２、Ｓ１２０５）。
【００７２】
以上に示したように、プリンタドライバにて実施した最適化処理状況をヒント情報として受け取り、前記ヒント情報に従ってデバイス側で最適化処理の実施要否を判断することで、重複する冗長な処理を減らすことが可能となる。
【００７３】
＜第２の実施例＞
第１の実施例においては、プリンタドライバ２０７とプリンタデバイス１０２が１対１である場合について説明したが、例えば、複数のＰＣで１台のプリンタデバイスを共有する環境に対しても本発明は適用可能である。すなわち、プリンタデバイスと処理モジュールを共通化したプリンタドライバからは最適化済みである旨を前記ヒント情報として通知する一方、前記最適化処理を行わない汎用プリンタドライバからは最適化未実施である旨を通知する構成とする。こうすることで、異なるプリンタドライバが混在する環境においても、重複する冗長な処理を減らすことが可能となる。
【００７４】
＜第３の実施例＞
本発明は、１つの印刷ジョブの中で、ページ単位でヒント情報を切り替える形態としても適用可能である。
【００７５】
例えば、印刷ジョブ中の１ページ目については、プリンタドライバ側での最適化処理を行わず印刷ジョブの投入を少しでも早め、プリンタエンジンの起動タイミングを早めることで、システム全体の処理速度を向上することができる。
【００７６】
そのため、前記「Ｈｉｎｔ  Ｃｏｄｅ」はジョブ単位ではなくページ単位に指定できる「ページヒント命令」として通知するものとし、プリンタデバイスはページ毎に前記「Ｈｉｎｔ  Ｃｏｄｅ」を更新する。
【００７７】
図１３は、本実施例における印刷ジョブのコマンド構成例を示した図であって、各ページの「Ｂｅｇｉｎ  Ｐａｇｅ」命令の直後に「Ｓｅｔ  Ｐａｇｅ  Ｈｉｎｔ」命令が発行されている例を示している。
【００７８】
そして、１ページ目に対しては最適化未実施を示す「Ｈｉｎt  Ｃｏｄｅ」＝０ｘ００を指定する一方、２ページ目以降に対しては最適化実施済みを示す０ｘ１ｆを指定している。
【符号の説明】
【００７９】
１０３  プリンタ制御部（コントローラ）
２０７  プリンタドライバ
３０３  描画命令最適化部
３０４  描画命令格納部
４０３  描画オブジェクト最適化部
９０１〜９０３  ジョブヒント命令（１００２）
【図１】
2012221195.tif 000003
【図２】
2012221195.tif 000004
【図３】
2012221195.tif 000005
【図４】
2012221195.tif 000006
【図５】
2012221195.tif 000007
【図６】
2012221195.tif 000008
【図７】
2012221195.tif 000009
【図８】
2012221195.tif 000010
【図９】
2012221195.tif 000011
【図１０】
2012221195.tif 000012
【図１１】
2012221195.tif 000013
【図１２】
2012221195.tif 000014
【図１３】
2012221195.tif 000015