(57)【要約】      （修正有）【課題】保持される文書画像データに対する各ページ間のレンダリング処理で発生する空白時間を短縮して、ジョブ全体の印刷処理時間を改善する。【解決手段】文書画像データを解析して中間データを生成するための中間データ生成時間と、生成される中間データをレンダリングするためのレンダリング時間とを加算して印刷時間を予測し（Ｓ７０１）、予測した各ページの印刷時間から各ページに対して搬送される用紙に対して画像を形成しなければならないタイミングに間に合うかどうか判断する（Ｓ７０２）。画像形成タイミングに間に合わないと判断した場合、中間データ生成時間とレンダリング時間とを比較して空白時間が存在するかどうか判別し（Ｓ７０４）、空白時間が存在すると判別した場合、文書画像データ中の特定のオブジェクトに対する処理をレンダリング時に処理するか、中間データ生成時に処理するかを決定するための最適化レベルを変更する（Ｓ７０５）。【選択図】図７
2012236344.tif 000002
【特許請求の範囲】
【請求項１】
複数ページからなる文書画像データを解析して生成する画像を搬送する用紙に画像形成する印刷装置であって、
各ページの文書画像データを解析して中間データを生成するための中間データ生成時間と、生成される中間データをレンダリングするためのレンダリング時間とを加算して各ページの印刷時間を予測する予測手段と、
前記予測手段が予測した各ページの印刷時間から各ページに対して搬送される用紙に対して画像を形成しなければならないタイミングに間に合うかどうか判断する判断手段と、
前記画像を形成しなければならないタイミングに合わないと判断した場合、前記中間データ生成時間と前記レンダリング時間とを比較して各ページ間でレンダリングを休止すべき空白時間が存在するかどうかを判別する判別手段と、
前記判別手段により前記空白時間が存在すると判別された場合、前記文書画像データ中の特定のオブジェクトに対する処理をレンダリング時に処理するか、中間データ生成時に処理するかを決定するための最適化レベルを変更する変更手段と、
を備えることを特徴とする印刷装置。
【請求項２】
前記最適化のレベルは、前記文書画像データに含まれるイメージデータ、グラフィックスデータ、グラデーションデータが所定値以上含まれるかどうかにより決定することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記変更手段が変更する最適化のレベルに応じて、前記文書画像データ中の特定のオブジェクトに対する処理をレンダリング時に処理するか、中間データ生成時に処理するかを制御する制御手段と、
を備えることを特徴とする請求項１記載の印刷装置。
【請求項４】
前記判別手段により前記空白時間が存在しないと判別された場合、前記文書画像データに含まれるオブジェクトの一部をビットマップイメージへ変換する変換手段を備えることを特徴とする請求項１記載の印刷装置。
【請求項５】
複数ページからなる文書画像データを解析して生成する画像を搬送する用紙に画像形成する印刷装置におけるデータ処理方法であって、
各ページの文書画像データを解析して中間データを生成するための中間データ生成時間と、生成される中間データをレンダリングするためのレンダリング時間とを加算して各ページの印刷時間を予測する予測工程と、
前記予測工程が予測した各ページの印刷時間から各ページに対して搬送される用紙に対して画像を形成しなければならないタイミングに間に合うかどうか判断する判断工程と、
前記画像を形成しなければならないタイミングに合わないと判断した場合、前記中間データ生成時間と前記レンダリング時間とを比較して各ページ間でレンダリングを休止すべき空白時間が存在するかどうかを判別する判別工程と、
前記判別工程により前記空白時間が存在すると判別された場合、前記文書画像データ中の特定のオブジェクトに対する処理をレンダリング時に処理するか、中間データ生成時に処理するかを決定するための最適化レベルを変更する変更工程と、
を備えることを特徴とするデータ処理方法。
【請求項６】
請求項５に記載のデータ処理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部から受信して保持される文書画像データを処理する印刷装置、印刷装置のデータ処理方法及びプログラムに関するものである。
【背景技術】
【０００２】
印刷装置は、印刷する前のデータを文書画像データとして一時的にメモリ上に保持する。この状態のとき、文書画像データは印刷ジョブの情報から生成される。そのフォーマットは、PDF（Portable Document Format）データの仕様をもとに国際標準化したものである。印刷装置はこの文書画像データから中間データを生成、レンダリング処理がされて画像を出力する。また、メモリで保持されている文書画像データの詳細やページ数などから、中間データ生成時間とレンダリング時間を予測することができる。
【０００３】
あらかじめメモリ内に格納されている文書画像データから印刷用の中間データを生成するときに、ジョブによっては印刷時間がエンジン速度に間に合わないといった問題がある。ここで、印刷時間は、中間データ生成時間とレンダリング時間とを加算した値とする。解決策として、各ページでエンジン速度に間に合わないときは、中間データを変更してレンダリング時間を調整するといった方法がある。
【０００４】
下記特許文献１では、印刷データの中間データ生成時間とレンダリング時間とを計測して、過去の印刷時間がかかるデータと傾向が似ているときは、その中間データを変更してレンダリング時間を向上するといった方法がある。こちらの方法では過去のデータをもとに印刷方法を変更するため、扱ったことのないデータでは傾向を理解していないため対策ができない。
【０００５】
また、印刷装置において、上記文書画像データを用いると、オブジェクトの項目ごとにデータを管理できる。つまり、文書画像データから従来の中間データの上位のデータとして使用が可能になる。このように文書画像データを用いることで、従来から印刷の処理時間がかかるデータでも変更が可能となる。
【０００６】
ここで、文書画像データには最適化する方法がいくつか存在する。この最適化方法は、レベルごとに中間データの内容を変更することで、レンダリング時間の変更が可能である。この最適化レベルを用いて、過去に処理したことがない複数ページのジョブのレンダリング時間を改善できる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０９−２１８８６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記のように文書画像データを処理することで、レンダリング時間が速くなっても、中間データ生成時間とレンダリング時間との差分から空白時間が発生する。このような空白時間が発生した場合、印刷装置で搬送される用紙に画像形成するタイミングに間に合うよう調整されないと、中間データ生成時かレンダリング時かに待ち処理が発生して印刷時間が遅くなるという課題がある。
【０００９】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、保持される文書画像データに対する各ページ間のレンダリング処理で発生する空白時間を短縮して、ジョブ全体の印刷処理時間を改善できる仕組みを提供することである。
【課題を解決するための手段】
【００１０】
上記目的を達成する本発明のデータ処理装置は以下に示す構成を備える。
複数ページからなる文書画像データを解析して生成する画像を搬送する用紙に画像形成する印刷装置であって、各ページの文書画像データを解析して中間データを生成するための中間データ生成時間と、生成される中間データをレンダリングするためのレンダリング時間とを加算して各ページの印刷時間を予測する予測手段と、前記予測手段が予測した各ページの印刷時間から各ページに対して搬送される用紙に対して画像を形成しなければならないタイミングに間に合うかどうか判断する判断手段と、前記画像を形成しなければならないタイミングに合わないと判断した場合、前記中間データ生成時間と前記レンダリング時間とを比較して各ページ間でレンダリングを休止すべき空白時間が存在するかどうかを判別する判別手段と、前記判別手段により前記空白時間が存在すると判別された場合、前記文書画像データ中の特定のオブジェクトに対する処理をレンダリング時に処理するか、中間データ生成時に処理するかを決定するための最適化レベルを変更する変更手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、保持される文書画像データに対する各ページ間のレンダリング処理で発生する空白時間を短縮して、ジョブ全体の印刷処理時間を改善できる。
【図面の簡単な説明】
【００１２】
【図１】印刷装置の構成を示すブロック図である。
【図２】プリンタコントローラ部の構成を示すブロック図である。
【図３】印刷装置の動作を制御するソフトウエアの構成を示すブロック図である。
【図４】データ描画部のスキャンラインレンダラの構成を示すブロック図である。
【図５】外部機器のデータ処理の流れを説明する図である。
【図６】文書画像データの内部データ構造を説明する図である。
【図７】印刷装置のデータ処理方法を説明するフローチャートである。
【図８】印刷装置にける文書画像データ処理時間を説明するチャートである。
【図９】印刷装置のデータ処理方法を説明するフローチャートである。
【図１０】印刷装置のデータ処理方法を説明するフローチャートである。
【図１１】印刷装置のデータ処理方法を説明するフローチャートである。
【発明を実施するための形態】
【００１３】
次に本発明を実施するための最良の形態について図面を参照して説明する。
＜システム構成の説明＞
〔第１実施形態〕
【００１４】
図１は、本発明の実施形態を示す印刷装置の構成を示すブロック図である。本例は、外部機器１０１とプリンタ１０２がネットワーク等の双方向通信インタフェースを介して通信可能な印刷システム例である。本実施形態の印刷装置は、記憶装置を備え外部機器１０１から受信した文書画像データを保持して、当該保持された文書画像データに対して描画処理を行う。
【００１５】
図１において、印刷装置は、プリンタコントローラ部１０３と、プリンタエンジン部１０５と、操作パネル部１０４とを備える。プリンタコントローラ部１０３は、ホストコンピュータ（以下、ホスト）などの外部機器１０１からコードデータ（各種ページ記述言語（以下、ＰＤＬ））が入力される。プリンタコントローラ部１０３のＣＰＵは、そのコードデータを解析することによってイメージデータ（ページ情報）を生成する。この生成されたイメージデータはインタフェースを介してプリンタエンジン部１０５に送信する。
【００１６】
プリンタエンジン部１０５は、電子写真プロセスにより、プリンタコントローラ部１０３によって生成されたイメージデータが示す画像を用紙上に形成する。プリンタエンジン部１０５には、各機構と、その各機構による各印字プロセス処理（例えば、給紙処理など）に関する制御を行うエンジン制御部とが含まれている。操作パネル部１０４は、ユーザとのインタフェースを司り、プリンタ１０２に対する所望の動作を指示するための入力操作を行うための操作部を構成する。
次に、プリンタコントローラ部１０３の構成について図２を参照しながら説明する。
【００１７】
図２は、図１に示したプリンタコントローラ部１０３の構成を示すブロック図である。
図２において、２０２はＣＰＵで、プリンタコントローラ部１０３全体を制御する。２０３はホストインタフェース（ホストＩ／Ｆ）で、プリンタコントローラ部１０３と外部機器１０１との間の通信制御を行う。
【００１８】
２０６はラスタイメージプロセッサ（ＲＩＰ）で、外部機器１０１から受信するＰＤＬデータなどをＲＡＭ２０４を用いてビットマップデータに展開する。ホストＩ／Ｆ２０３を介して外部機器１０１から入力されたコードデータから、ＣＰＵ２０２はＲＯＭ２０５に格納されている制御コードに従い、ＲＩＰ２０６からプリンタエンジン部１０５が処理可能なビットマップデータの作成を行う。
【００１９】
このようにして作成されたビットマップデータは、エンジンＩ／Ｆ部２０７を介してビデオ信号としてプリンタエンジン部１０５に転送される。エンジンＩ／Ｆ部２０７は、プリンタエンジン部１０５とでやり取りされる信号の入出力部を構成するとともに、プリンタエンジン部１０５との間の通信制御を行う。
【００２０】
操作パネル部１０４（図１に示す）から操作入力によって出されたモード設定に関する指示などは、操作パネルＩ／Ｆ部２０１を介して入力され、操作パネルＩ／Ｆ部２０１は操作パネル部１０４とＣＰＵ２０２の間のインタフェースを構成する。
【００２１】
ＣＰＵ２０２は、操作パネル部１０４から指示されたモードに応じて上述の各ブロックに対する制御を行い、この制御はＲＯＭ２０５に格納されている制御コードに基づき実行される。上述のＣＰＵ２０２を含む各ブロックは、システムバス２０８にＣＰＵ２０２がアクセス可能なように接続されている。ＨＤＤ２０９はハードディスクドライブであり、各種処理のためのシステムソフトウェア及び入力された画像データ等を格納する。
図３は、図１に示した印刷装置の動作を制御するコントローラソフトウェアの構成を示すブロック図である。
【００２２】
図３において、プリンタインタフェース３０１は、外部との入出力のための手段である。プロトコル制御部３０２は、ネットワークプロトコルを解析・送信することによって外部との通信を行う手段である。
【００２３】
文書画像データ解析部３０３は、ＰＤＬ等の文書画像データを解析して、印刷時間（中間データ生成時間＋レンダリング時間）を予測する。また、文書画像データ解析部３０３は、時間予測をした結果から文書画像データの最適化を決定する。最適化された文書画像データは、より処理しやすい形式の中間記述データ（中間データ４０１）に変換される。
【００２４】
文書画像データ解析部３０３において生成された中間コードは、データ描画部３０４に渡されて処理される。データ描画部３０４は、上記中間コードをビットマップデータに展開するものであり、展開されたビットマップデータはページメモリ３０５に逐次描画されて行く。
ページメモリ３０５は、レンダラが展開するビットマップデータを一次的に保持する揮発性のメモリである。
【００２５】
パネル入出力制御部３０６は、操作パネル部１０４からの入出力を制御するものである。パネル入出力制御部３０６は、ページメモリ３０５にプレビュー用に生成されたビットマップデータを操作パネル部１０４にプレビュー画像を表示する。パネル入出力制御部３０６は、プレビュー画像が更新されるたびに、ページメモリ３０５に展開されるビットマップデータを操作パネル部１０４に逐次表示される。
ドキュメント記憶部３０７は、入力文書の一塊（ジョブ）単位に文書画像データを記憶する手段であり、ハードディスク等の二次記憶装置によって実現される。
スキャン制御部３０８は、図示しないスキャナから入力した画像データに対して、補正、加工、編集などの各種処理を行う。
【００２６】
印刷制御部３０９は、ページメモリ３０５の内容をビデオ信号に変換処理し、プリンタエンジン部３１０へ画像転送を行う。プリンタエンジン部３１０は受け取ったビデオ信号を記録紙に永久可視画像形成するための印刷機構部である。
【００２７】
図４は、図３に示したデータ描画部３０４でのスキャンラインレンダラ４０２の構成を示すブロック図である。
図４において、中間データ４０１は、文書画像データを文書画像データ解析部３０３で変換した中間コードである。スキャンラインレンダラ４０２では、中間データ４０１を入力データとして、輪郭書き出し処理部４０３、重なり整列処理部４０４、色塗り処理部４０５、色合成処理部４０６を経てビットマップデータ４０７を生成する。ビットマップデータ４０７は、図３に示したページメモリ３０５へ保持される。
【００２８】
輪郭書き出し処理部４０３は、中間データ４０１に含まれる描画オブジェクトから輪郭情報を取得する処理である。輪郭情報は、描画オブジェクトの輪郭の開始点位置、及び輪郭幅の２つの情報を指している。輪郭書き出し処理部４０３で取得された輪郭の情報が画像データの１スキャンライン分揃ったら、輪郭座標の情報を次の重なり整列処理部４０４に送る。
【００２９】
重なり整列処理部４０４は、輪郭座標の情報と描画オブジェクト同士の重なりの上下関係を元に紙面に対して描画オブジェクトが正しい順番で並ぶように整列処理する。整列済みの輪郭情報は、画像データの１スキャンライン分揃ったあと、色塗り処理部４０５へ送られる。
【００３０】
色塗り処理部４０５は、整列済みの輪郭情報に対して、輪郭で区切られる１つ１つの区間に対して色情報を付加する。本実施形態で使用するグラデーションパターンは、色塗り処理部４０５で生成される。色塗り処理部４０５で生成された色情報が付加された整列済みの輪郭情報は、１スキャンライン分揃ったら、色合成処理部４０６へ送られる。
【００３１】
色合成処理部４０６は、色情報が付加された整列済みの輪郭情報を元に輪郭で区切られた領域かつ、その区切られた領域のうち他の輪郭で区切られた領域と重なっている部分同士に対して中間データ４０１に従った重なりルールを適用する。重なりルールとは、ROP(Raster OPerator)とアルファブレンドがある。
【００３２】
ここで、ROPとは、領域同士が重なっている部分に、全面側と背面側の色値を表現するbit同士で行われる論理演算である。重なりルールとしてROPが指定された場合、全面側と背面側の領域を表現する色値の間で論理演算が行われた結果が出力される。アルファブレンドとは、輪郭で区切られた領域同士で重なっている部分に対して、両者のうち全面側及び背面側の色を混ぜて出力するときの双方の割合比を指定する。
色合成処理部４０６では、重なりルールを運用し、重なっている領域の全面と背面の領域からどのような色を出力するかを決定する。色合成処理部４０６で生成されたデータは、画像データの１ピクセルごとの色情報としてビットマップデータ４０７が出力される。
【００３３】
図５は、図１に示した外部機器１０１のデータ処理の流れを説明する図である。本例は、外部機器１０１で動作する電子画像データ生成を行うプログラムの構成とデータ生成の手順例である。
以下、図５を用いて、ホストコンピュータなどの外部機器１０１で動作する、文書画像データ生成を行うプログラムの構成とデータ生成の手順を説明する。
【００３４】
まず、外部機器１０１の基本的な内部構成を説明する。外部機器１０１は、ハードウェアとしてＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ、キーボードやマウスなどの入力デバイス、ディスプレイなどの出力デバイス、ネットワークＩ／Ｆ、これらを制御するチップセットなどからなる。さらにこれらは内部データバスによって相互に接続されている。こられのハードウェアを制御するソフトとしてＢＩＯＳとオペレーティングシステム（ＯＳ）が動作している。
【００３５】
アプリケーションデータ５０１は、ＲＡＭもしくはＨＤＤ内に記憶されており、アプリケーション５０２によって読み込まれ、必要に応じて編集される。アプリケーション５０２はワードプロセッサ、表計算、図形処理、写真画像処理などを行うソフトウエア（プログラム）である。
【００３６】
グラフィックスエンジン５０３は、アプリケーション５０２の処理結果をディスプレイ出力や印刷出力するための描画変換処理を行う。プリンタドライバ５０４は、グラフィックスエンジン５０３から描画データを受け取り、印刷装置が解釈可能なページ記述言語(PDL)データに変換を行う。ここでＰＤＬには、ＬＩＰＳ ＬＸ（商標）や ＵＦＲ （商標）などの言語が使われる。ファイルスプーラ５０５は、プリンタドライバ５０４によって随時変換され出力されるＰＤＬデータを一時的に溜め込み、ＰＤＬデータファイル５０６として保存する。ここまでの処理は、本発明以前の一般的なＰＤＬデータ生成手順である。
【００３７】
ＰＤＬデータファイル５０７は、ＰＤＬデータファイル５０６と同じものである。ＰＤＬ解釈部５０８は、ＰＤＬデータファイル５０６を解釈し、さらに描画オブジェクト生成部５０９にて、印刷に適した複数の描画オブジェクトを印刷に適した順に生成する。ここで描画オブジェクトは、ページ毎にまとめられ、また１ページから始まり最終ページまで、ページの順番に並べられる。また、１ページに含まれる描画オブジェクトは、描画の重なりを考慮し並べられる。重なりによって覆い隠される描画オブジェクトが先に並べられ、重なりによって前出のオブジェクトを覆い隠す描画オブジェクトほど後に並べられる。
【００３８】
文書画像データ生成部５１０は、描画オブジェクト生成部５０９から描画オブジェクトを順に受け取り、定められた文書画像データフォーマットに変換する。ファイルスプーラ５１１は、文書画像データ生成部５１０によって随時変換され出力される文書画像データを一時的に溜め込み、文書画像データ５１２として保存する。さらに必要に応じてホストＩ／Ｆ  ５１３を経由して、ネットワークに接続されるほかの機器に転送される。
【００３９】
以下、図６を用いて文書画像データの内部データ構造について説明する。なお、断りがない限り、本発明で扱う文書画像データファイルはISO32000-1で定められている電子文書ファイルフォーマットと同様の文法を適用する。
【００４０】
図６は、本実施形態を示す印刷装置で処理する文書画像データの内部データ構造を説明する図である。なお、本実施形態で、描画オブジェクトには、イメージ、グラフィックス、グラデーション等の属性の異なるオブジェクトが含まれる。
【００４１】
文書画像データ６００は、内部的に以下の６０１から６１６のセクションに分けられる。ヘッダ６０１は、文書画像データファイルのフォーマットバージョンを示す。シリアライズパラメータ６０２には、本データファイルがファイル先頭から順次処理可能なフォーマットであることを示す辞書オブジェクトであり、典型的には以下のように記述される。
43 0 obj
＜＜ ／Serialized 1.0      %  シリアル化フォーマットバージョン  ＞＞
endobj
【００４２】
６０３は文書カタログである。６０４は文書レベルオブジェクトで、文書画像データファイル内では共通に使用されるリソースオブジェクトが含まれるセクションである。リソースオブジェクトにはＩＣＣプロファイル辞書やＦｏｎｔ辞書などが指定される。
【００４３】
ページオブジェクト６０５は、文書画像データファイルの先頭のページのみに関するページオブジェクトとして定義される。６０６はオブジェクトが配置されるセクションであり、ページオブジェクト６０５によって定義された先頭ページに関するオブジェクトを含む。
【００４４】
６０７は先頭ページの相互参照表であり、ページオブジェクト６０６内の全てのオブジェクトの位置をファイル先頭からのバイトオフセットで示す。６０８は先頭ページのトレーラで、先頭ページの相互参照表６０７の位置を示すバイトオフセット情報や文書カタログ６０３のアドレス情報が配置されている。先頭ページのトレーラ６０８までの情報で、１ページ目の描画処理を行うためのすべての情報が揃っている。
【００４５】
６０９以降は、２ページ目以降の描画処理を行うために必要な部分である。基本的にはページ単位で、ページオブジェクト、ページ内描画に関するオブジェクト、相互参照表、トレーラの順に並んでおり、最終ページまでこれを繰り返す。
【００４６】
なお、２ページ目以降の記述方法に関しては、ＩＳＯ３２０００−１で定められている増分更新の文法を適用している。つまり、６０１から６０８までの先頭ページに関するセクションを「当初の電子文書ファイル」とする。
【００４７】
６０９以降のセクションでは、ページが増えるごとに「更新ボディ」、「更新された相互参照表」、「更新トレーラ」を追加し、これを最後ページまで繰り返す。以上の説明からわかるように、文書画像データはシリアライズパラメータ６０２以外の部分に関しては、ＩＳＯ３２０００−１に準拠している。６１０はオブジェクトが配置されるセクションであり、ページオブジェクト６０９によって定義された先頭ページに関するオブジェクトを含む。６１１は２ページの相互参照表である。６１２は２ページのトレーラである。６１４はオブジェクトが配置されるセクションであり、ページオブジェクト６１３によって定義された先頭ページに関するオブジェクトを含む。６１５は最終ページの相互参照表である。６１６は最終ページのトレーラである。
【００４８】
なお、ＩＳＯ３２０００−１に準拠した電子文書ファイル処理プログラムが、本発明の文書画像データ６００を処理することも可能である。その場合は、辞書オブジェクトとして解釈できないシリアライズパラメータ６０２は無視されるので、ＩＳＯ３２０００−１に準拠した電子文書として正常に解釈され、描画処理される。
本実施例では、ＣＰＵ２０２が文書画像データ解析部３０３として文書画像データ５１２の最適化レベルを変更する例を説明する。
【００４９】
図７は、本実施形態を示す印刷装置のデータ処理方法を説明するフローチャートである。本実施形態は、文書画像データ５１２がユーザの操作により外部機器１０１からネットワークを経てプリンタ１０２のドキュメント記憶部３０７に格納されている状態とする。以下、本実施形態ではユーザから文書画像データ５１２の印刷要求がある前に、文書画像データに対する最適化レベルをＣＰＵ２０２が変更する処理を説明する。なお、各ステップは、ＣＰＵ２０２がＨＤＤ２０９、ＲＯＭ２０５に記憶される制御プログラムをＲＡＭ２０４にロードして実行することで実現される。
【００５０】
ＣＰＵ２０２は、最初に最適化レベルを決定するため、中間データ生成時間とレンダリング時間とを加算することで印刷時間を予測する（Ｓ７０１）。
具体的には、ＣＰＵ２０２は、印刷データの属性、プリンタ１０２の種類、ＣＰＵ２０２の性能を用いて、各条件の組み合わせと印刷時間との関係を保持するテーブルを参照して印刷時間を予測する。
ここで、印刷データの属性には、イメージデータ、グラフィックスデータ、フォントデータなどが含まれる。また、ジョブ時間とオブジェクトごとの印刷時間を示すテーブルは、プリンタ１０２のドキュメント記憶部３０７に保持している。
【００５１】
ここで、保持しているテーブルの値は、固定値である必要はなく、学習によって値が変更されてより精度の高い予測を行うことが可能である。
また、印刷データの属性に関しては、文書画像データ５１２のページオブジェクト６０６で洗い出されている。また、ＣＰＵ２０２の性能やプリンタ１０２の種類については固定である。さらに、中間データ生成時間とレンダリング時間の算出に使用するテーブルの要素は異なる。レンダリング時間を予測するための要素としては、プリンタ１０２で使用するレンダラの種類、ＣＰＵ２０２の性能、描画データ量がある。
【００５２】
本実施形態では、プリンタ１０２が使用しているのはスキャンラインレンダラ４０２としているが、ペインターズモデルなどその他のレンダラでもよい。スキャンラインレンダラ４０２の場合、描画データ量としてページ内の描画オブジェクトの輪郭数や重なり数などのパラメータをもとにジョブ時間を予測するテーブルを作成する。
ここで、印刷時間を予測するプログラムに関しては、プリンタ１０２のＨＤＤ２０９またはＲＡＭ２０４に格納する。プリンタ１０２ごとにＣＰＵ２０２やレンダラの種類が変わるのに対して、文書画像データ５１２を用いた時間予測では、全機種共通の描画オブジェクトの情報を使用することが可能である。
【００５３】
次に、ＣＰＵ２０２は、Ｓ７０１で予測した印刷時間が予測した各ページの印刷時間から各ページに対して搬送される用紙に対して画像を形成しなければならないタイミングに間に合うかどうか判断する（Ｓ７０２）。ここで、比較する時間は、ジョブ単位での印刷時間とし、比較した結果、搬送される用紙に対して画像を形成しなければならないタイミングに間に合うとＣＰＵ２０２が判断した場合は、文書画像データ５１２の最適化レベルを変更せずにそのまま印刷を開始して（７０７）、本処理を終了する。
【００５４】
一方、Ｓ７０２で、印刷時間がエンジン速度に間に合わないとＣＰＵ２０２が判断した場合は、中間データ生成時間とレンダリング時間の空白時間８０５を算出する（Ｓ７０３）。ここで、空白時間８０５について、図８を参照して説明する。
図８に示すように、印刷時間の予測において、印刷装置側で印刷用のデータとして変更される中間データ生成時間８０１と、描画の際にかかる処理をレンダリング時間８０２とし、ページ毎に算出する。この２つの処理時間が印刷装置のエンジン速度に間に合わないとき、双方の処理時間に空白時間８０５が生じる。
【００５５】
図９は、本実施形態を示す印刷装置のデータ処理方法を説明するフローチャートである。本例は、図８に示す空白時間８０５を算出する処理、より具体的には、Ｓ７０３に示すページ毎の空白時間の算出処理の詳細手順である。なお、各ステップは、ＣＰＵ２０２がＨＤＤ２０９、ＲＯＭ２０５に記憶される制御プログラムをＲＡＭ２０４にロードして実行することで実現される。ここで、図９で使用する文書画像データ５１２は複数ページで構成されているとする。
ＣＰＵ２０２は、最初に空白時間が最も大きいページを示す変数empty_page、空白時間を算出するページをカウントするためのカウンタＮを初期化（変数empty_page（＝０）、カウンタＮ（＝１））する（Ｓ９０１）。次に、ＣＰＵ２０２は、Ｎ＋１ページの中間データ生成時間の総和と、レンダリング時間の総和を算出するための変数iを「１」とする（Ｓ９０２）。
【００５６】
そして、ＣＰＵ２０２は、Ｓ９０６で、変数iがＮページ目までカウントされたと判断されるまで（９０６）、Ｓ９０２〜Ｓ９０６を繰り返す。具体的には、Ｓ９０３で、ＣＰＵ２０２は、ｉページ目のレンダリング時間を算出してレンダリング処理時間として加算し、Ｓ９０４で、ＣＰＵ２０２は、ｉ＋１ページ目の中間データ生成時間を算出して中間データ生成時間として加算する。そして、ＣＰＵ２０２は、変数ｉを「１」インクリメントして、Ｓ９０６で、ＣＰＵ２０２は、変数ｉがＮよりも小さいかどうかを判断する。ここで、変数ｉがＮよりも小さいと判断した場合は、Ｓ９０２へ戻り、同様の処理を繰り返す。
一方、Ｓ９０６で、ＣＰＵ２０２が変数ｉがＮ以上であると判断した場合は、Ｓ９０７へ進む。
そして、ＣＰＵ２０２は、中間データ生成時間とレンダリング時間との差分から空白時間を算出する（Ｓ９０７）。そして、ＣＰＵ２０２は、Ｎページ目の空白時間８０５が前回のページのときと比較して大きいかどうかを判断する（９０８）。ここで、空白時間が前回よりも大きいとＣＰＵ２０２が判断した場合は、ＣＰＵ２０２は、変数empty_pageの値を更新して（Ｓ９０９）、Ｓ９１０へ進む。これは、最も空白時間の値が大きかったページを算出するためである。なお、空白時間とは、中間データ生成時間とレンダリング時間とを比較して各ページ間でレンダリングを休止すべき空白時間を意味する。
【００５７】
一方、Ｓ９０８で、空白時間８０５が前回よりも小さいとＣＰＵ２０２が判断した場合は、次のページの空白時間を算出するため、ＣＰＵ２０２は、カウンタＮの値を「１」インクリメントして更新する（Ｓ９１０）。
そして、ＣＰＵ２０２は、最終ページまで空白時間の算出が終了しているかどうかをカウンタＮが最終ページ以上であるかどうかから判断する（９１１）。ここで、最終ページまで空白時間の算出が終了していないと判断した場合は、Ｓ９０２へ戻る。
一方、Ｓ９１１で、最終ページまで空白時間の算出が終了していると判断した場合は、本処理を終了する。
これにより、各ページでの空白時間を算出したとき、双方の処理時間に差が生じたとき（空白時間８０５）の差が最も大きいページＸを抽出することができる。
【００５８】
ここで、図７の説明に戻り、ＣＰＵ２０２は、上記の方法で空白時間８０５が存在するかどうかの判別をする（７０４）。ここで、ＣＰＵ２０２は、空白時間８０５が存在するかどうかは、図９で使用した変数empty_pageの値が「０」であるか否かで判別する。ここで、変数empty_pageが「０」以上でないとＣＰＵ２０２が判別した場合、空白時間８０５が常に「０」であったことを示し、Ｓ７０６へ進む。
一方、Ｓ７０４で、空白時間が存在するとＣＰＵ２０２が判別した場合、抽出したページＸの描画オブジェクトなどの特徴から、文書画像データに対して空白時間を小さくする最適化レベルを選択する（７０５）。
【００５９】
最適化レベルは、従来では１パターンの描画方法のみにしか対応しなかった文書画像データ５１２が、データの傾向により描画方法の最適化をすることで描画内容の変更と処理時間の向上を目的としている。最適化するレベルは各レベルで処理する内容が異なるが、詳細は後述する。
【００６０】
図１０は、本実施形態を示す印刷装置のデータ処理方法を説明するフローチャートである。本例は、図７に示すＳ７０５の最適化レベル変更処理の詳細手順である。なお、各ステップは、ＣＰＵ２０２がＨＤＤ２０９、ＲＯＭ２０５に記憶される制御プログラムをＲＡＭ２０４にロードして実行することで実現される。以下、文書画像データに含まれるオブジェクト属性毎のデータ量を判別して空白時間を短縮するように文書画像データに対して処理すべき最適化のレベルを変更する処理を説明する。
【００６１】
まず、ＣＰＵ２０２は、ページＸのページオブジェクト６１４から、オブジェクトの特徴とその内容を変更するためにイメージデータの数１００１が所定値以上含まれるかどうかを判断する（Ｓ１００１）。ここで、イメージデータの数１００１が所定値以上含まれるとＣＰＵ２０２が判断した場合は、Ｓ１００５へ進み、文書画像データに対する最適化レベルを最適化レベル１に変更して、本処理を終了する。これにより、選択された最適化レベルによって中間データ生成時間とレンダリング時間との処理時間の負荷が変更される。
ここで、最適化レベル１に変更されたた場合、ＣＰＵ２０２は、イメージ画像の描画方法を変更する。例えば文書画像データ５１２のビットマップイメージが回転処理や、拡大縮小処理をするときに中間データの生成時に行うか、もしくはレンダリング中に行うかを選択する。
【００６２】
図１１は、本実施形態を示す印刷装置のデータ処理方法を説明するフローチャートである。本例は、図１０に示すＳ１００５の最適化レベル１の変更処理の詳細手順である。なお、各ステップは、ＣＰＵ２０２がＨＤＤ２０９、ＲＯＭ２０５に記憶される制御プログラムをＲＡＭ２０４にロードして実行することで実現される。以下、文書画像データ中の特定のオブジェクトに対する処理をレンダリング時に処理するか、中間データ生成時に処理するかを決定する処理を説明する。本実施形態では、中間データ生成時に実行可能な特定の画像処理をレンダリング時に実行するように制御する例を説明する。ここで、特定の画像処理とは、拡大縮小処理と、回転処理とを含む例を示す。
ＣＰＵ２０２は、最初に対象の文書画像データでは、ページ内に回転イメージが含まれるかどうかを判断する（Ｓ１１０１）。ここで、回転イメージを含むとＣＰＵ２０２が判断した場合は、Ｓ１１０２へ進む。
そして、Ｓ１１０２で、ＣＰＵ２０２は、中間データ生成時間とレンダリング時間との処理時間の比較をしてレンダリング時間の方が短いかどうかを判断する（Ｓ１１０２）。ここで、中間データ生成時間がレンダリング時間よりも処理時間が長いと判断した場合、ＣＰＵ２０２は、レンダリング中に回転イメージを生成するよう変更して（Ｓ１１０４）、Ｓ１１０５へ進む。
【００６３】
一方、Ｓ１１０２で、中間データ生成時間とレンダリング時間との処理時間の比較をしてレンダリング時間の方が長いとＣＰＵ２０２が判断した場合は、Ｓ１１０３へ進む。そして、ＣＰＵ２０２は、中間データを生成するときに回転処理をするように変更する（Ｓ１１０３）。
これにより、中間データ生成時間とレンダリング時間の処理時間のトレードオフが変更されて、２つの処理時間の総和を変更することができる。
次に、ＣＰＵ２０２は、イメージの拡大縮小処理があるかどうかを判断する（Ｓ１１０５）。ここで、イメージの拡大縮小処理があるとＣＰＵ２０２が判断した場合は、中間データ生成時間とレンダリング時間との時間を比較してレンダリング時間の方が短いかどうかを判断する（Ｓ１１０６）。ここで、中間データ生成時間がレンダリング時間よりも処理時間が長いと判断した場合、ＣＰＵ２０２は、レンダリング中に拡大縮小イメージを生成するよう変更して（Ｓ１１０８）、処理を終了する。
【００６４】
一方、Ｓ１１０６で中間データ生成時間がレンダリング時間よりも処理時間が短いと判断した場合、ＣＰＵ２０２は、中間データ生成中に拡大縮小イメージを生成するよう変更して（Ｓ１１０７）、処理を終了する。
一方、Ｓ１１０５で、イメージの拡大縮小処理がないとＣＰＵ２０２が判断した場合は、本処理を終了する。
ここで、図１０に示したＳ１００２以降の処理について説明する。
【００６５】
Ｓ１００１で、イメージデータの数１００１が一定値以上でないとＣＰＵ２０２が判断した場合は、ＣＰＵ２０２は、ページＸにグラフィックスデータが一定値以上存在するかどうかを判断する（Ｓ１００２）。
ここで、ページＸにグラフィックスデータが一定値以上存在するとＣＰＵ２０２が判断した場合は、文書画像データ５１２に対する最適化レベルを最適化レベル２へ変更して（Ｓ１００６）、本処理を終了する。
最適化レベル２では、大量のグラフィックスデータに対してオブジェクトを描画する順序を入れ替える。これは、同一色のオブジェクトかつ同じ位置に上書きするオブジェクトが複数存在する場合、描画するオブジェクトの順番を入れ替えることで、重複するオブジェクトを削減する。これにより、中間データ生成時に同じオブジェクトの描画を複数作成するといった手間を省くことができる。
【００６６】
一方、Ｓ１００２で、ページＸにグラフィックスデータが一定値以上存在しないとＣＰＵ２０２が判断した場合は、Ｓ１００３で、ＣＰＵ２０２は、ページＸにグラデーションデータが一定値以上存在するかどうかを判断する。ここで、ページＸにグラデーションデータが一定値以上存在するとＣＰＵ２０２が判断した場合は、Ｓ１００７へ進む。そして、ＣＰＵ２０２は、文書画像データ５１２に対する最適化レベルを最適化レベル３へ変更して（Ｓ１００７）、本処理を終了する。
最適化レベル３については、グラデーションデータの描画方法を複数のイメージ描画で構成するか、１つのグラデーション描画に置き変えるかを選択する。複数のイメージで構成されるグラデーション描画は、処理の負荷を中間データ生成時か、もしくはレンダリング中かで変更する。最適化レベルの変更により、空白時間が発生しないための条件として、中間データ生成時間とレンダリング時間との差が縮まるように修正する効果ある。
【００６７】
上記実施形態では、文書画像データ５１２の印刷時間が改善されるように、空白時間８０５が最も大きいページを検出する方法を説明したが、最適化レベルを変更するのはジョブ単位だけでなくページ単位で行ってもよい。
また、各最適化レベルを反映させたときの文書画像データ５１２の印刷時間を予測して、それぞれのジョブの印刷時間を比較したときに最も時間が速い最適化レベルを選択する方法でもよい。
このように、最適化レベルを変更する方法としては本実施形態のようにページ毎の空白時間を求める方法にこだわらずに印刷時間の短縮を目指す方法として、文書画像データ５１２の最適化レベルを変更できればよい。
【００６８】
これにより、ＣＰＵ２０２は、文書画像データ５１２から印刷時間を予測した結果から最適化レベルを決定する。そして、ＣＰＵ２０２は、文書画像データ５１２の最適化レベルに合わせて、ページオブジェクトの描画方法を変更するよう文書画像データ５１２の構成を作り直す処理を実行する。
【００６９】
一方、Ｓ１００３で、抽出したページＸにグラデーションデータが一定値以上存在しないと判断した場合は、Ｓ１００４へ進み、ＣＰＵ２０２は、ページオブジェクトの一部をビットマップイメージへ変換する処理を実行して、本処理を終了する。
以下、印刷予測時間がプリンタ１０２のエンジン速度に間に合わないかつ空白時間がないとき（７０６）と、空白時間８０５が存在するが最適化レベル１から最適化レベル３までに該当しない場合の、Ｓ１００４の詳細処理について説明する。
【００７０】
このパターンは、文書画像データ５１２を最適化する際に予想されるパターンのうち、できるだけ実行させたくないパターンである。この場合、文書画像データ５１２内の複数のページオブジェクト６０６をあらかじめビットマップイメージに変換しておく。以下、本パターンの処理を図３に従い説明する。
本パターンにおいて、印刷時間がエンジン速度に間に合うようにするためには、あらかじめ、印刷すべきデータを先行して描画しておく必要がある。そこで、文書画像データ解析部３０３は、ページオブジェクト６０６から複数のオブジェクトをデータ描画部３０４に送信する。
そして、データ描画部３０４で作成したビットマップイメージは、ドキュメント記憶部３０７に保管される。ここで、先行してビットマップデータを生成するときに、ドキュメント記憶部３０７の記憶容量を超える領域を生成しないように注意する。文書描画データが先行してレンダリング結果を保持しておくことで、エンジン速度に間に合う中間データ生成とレンダリングを実現することができる。
【００７１】
最後に、一般的な文書をもとに本実施形態での効果について図８を用いて説明する。
図８に示す例では、印刷データが合計３ページのデータを想定しており、ＣＰＵ２０２が印刷時間を予測する処理（Ｓ７０１）で、図８に示すように中間データ生成時間とレンダリング時間を取得する。そして、ＣＰＵ２０２は、２ページ目のレンダリング時間を加算したレンダリング時間８０４と、２ページ目から３ページ目までの中間データ生成時間８０３の空白時間８０５を算出する（Ｓ７０３）。
ここで、ＣＰＵ２０２は、すべてのページの空白時間８０５を算出して、最も差が大きかったページが２ページ目のレンダリング時間であると判断する（Ｓ９０７）。次に、ＣＰＵ２０２は、空白時間８０５が存在したため、文書画像データ５１２の最適化レベルを設定する処理へ移行する（Ｓ７０５）。
【００７２】
最適化レベルの検証の際に、ＣＰＵ２０２は、２ページ目の文書画像データ５１２にイメージデータが閾値以上も存在するかどうかを判断する（Ｓ１００１）。ここで、文書画像データの各ページでは、最適化レベル１（図１１）の最適化により、ＣＰＵ２０２は、中間データ生成時間８０１とレンダリング時間８０２の比較から、イメージの生成方法を変更する。この場合、ＣＰＵ２０２は、中間データ生成時間８０３がレンダリング時間８０４よりも遅いため、レンダリングでのイメージ処理を負荷分散する（Ｓ１１０４，Ｓ１１０８）。
これにより、ＣＰＵ２０２が最適化後の印刷時間を再度予測（Ｓ７０１）した結果、前回予測した時の空白時間８０５が無くなり印刷時間を削減（時間８０６）することができる。
以上の印刷時間の修正により、空白時間を埋める最適化レベルを文書画像データ５１２に反映することで、印刷時間を従来よりも高速にすることができる。
【００７３】
本発明の各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア（プログラム）をパソコン（コンピュータ）等の処理装置（ＣＰＵ、プロセッサ）にて実行することでも実現できる。
【００７４】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【符号の説明】
【００７５】
１０１  外部機器
１０２  プリンタ
【図１】
2012236344.tif 000003
【図２】
2012236344.tif 000004
【図３】
2012236344.tif 000005
【図４】
2012236344.tif 000006
【図５】
2012236344.tif 000007
【図６】
2012236344.tif 000008
【図７】
2012236344.tif 000009
【図８】
2012236344.tif 000010
【図９】
2012236344.tif 000011
【図１０】
2012236344.tif 000012
【図１１】
2012236344.tif 000013