JP2017024321A - 画像処理装置、画像形成装置及び画像処理時間予測方法及びプログラム - Google Patents
画像処理装置、画像形成装置及び画像処理時間予測方法及びプログラム Download PDFInfo
- Publication number
- JP2017024321A JP2017024321A JP2015146538A JP2015146538A JP2017024321A JP 2017024321 A JP2017024321 A JP 2017024321A JP 2015146538 A JP2015146538 A JP 2015146538A JP 2015146538 A JP2015146538 A JP 2015146538A JP 2017024321 A JP2017024321 A JP 2017024321A
- Authority
- JP
- Japan
- Prior art keywords
- prediction
- data
- pdl data
- block
- rendering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Record Information Processing For Printing (AREA)
Abstract
【課題】PDLデータのブロック分割レンダリングに要する時間を正確に予測する。
【解決手段】入力PDLデータに対するブロック分割レンダリングによって複数のブロックに分割したビットマップデータを生成するレンダリング手段を有する画像形成装置のための画像処理装置であって、前記レンダリング手段におけるビットマップデータの生成に要する時間を予測する予測手段と、前記予測のための補正情報を前記入力PDLデータに付加した予測用PDLデータを生成する予測用PDLデータ生成手段と、を備え、前記予測手段は、前記予測用PDLデータから生成した中間データに含まれる補正情報に基づいて、前記予測を行なうことを特徴とする。
【選択図】図13
【解決手段】入力PDLデータに対するブロック分割レンダリングによって複数のブロックに分割したビットマップデータを生成するレンダリング手段を有する画像形成装置のための画像処理装置であって、前記レンダリング手段におけるビットマップデータの生成に要する時間を予測する予測手段と、前記予測のための補正情報を前記入力PDLデータに付加した予測用PDLデータを生成する予測用PDLデータ生成手段と、を備え、前記予測手段は、前記予測用PDLデータから生成した中間データに含まれる補正情報に基づいて、前記予測を行なうことを特徴とする。
【選択図】図13
Description
本発明は、画像処理に要する時間の予測技術に関する。
従来、ユーザに対して、印刷処理に要する時間を通知する機能を備えた画像形成装置が実現されている。例えば特許文献1では、複数のオブジェクトを含むPDL(Page Description Language)データを受信し、PDLデータに含まれる描画オブジェクトの個数やサイズから印刷処理に要する時間を予測する技術(以下、所要時間予測技術)が提案されている。
一方で、レンダリング処理に必要なメモリ容量を削減する技術として、例えばブロック分割レンダリングが提案されている(特許文献2)。これは、PDLデータから生成した中間データに対しレンダリング処理を行う過程で、中間データに含まれるベクタデータを複数のブロック(小領域)に分割したビットマップデータを生成し、ブロック毎に画像を圧縮するものである。これによりレンダリング処理において使用するメモリ容量の削減を可能にしている。
特許文献2で示されるブロック分割レンダリングの方法では、PDLデータから生成した中間データをもとに、レンダリング処理中に分割処理を行うことになる。このようなブロック分割レンダリングに、特許文献1に示される所要時間予測技術を適用すると、分割前のPDLデータを予測に用いるため、レンダリング処理に要する時間を正確に予測することが困難であった。これは、複数のブロックに跨るオブジェクトの場合、各ブロックにおいて、当該オブジェクトの一部のみに対応するビットマップデータの生成を行なうことになるが、このようなブロック単位の処理時間までは考慮されないためである。
本発明に係る画像処理装置は、入力PDLデータに対するブロック分割レンダリングによって複数のブロックに分割したビットマップデータを生成するレンダリング手段を有する画像形成装置のための画像処理装置であって、前記レンダリング手段におけるビットマップデータの生成に要する時間を予測する予測手段と、前記予測のための補正情報を前記入力PDLデータに付加した予測用PDLデータを生成する予測用PDLデータ生成手段と、を備え、前記予測手段は、前記予測用PDLデータから生成した中間データに含まれる補正情報に基づいて、前記予測を行なうことを特徴とする。
本発明によれば、PDLデータのブロック分割レンダリングに要する時間を正確に予測することができる。
以下、添付の図面を参照して、本発明を実施する形態について説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
[実施例1]
図1は、本実施例に係る画像処理システムの構成例を示すブロック図である。画像処理システム100は、印刷データ(PDLデータ)を生成する情報処理装置としてのホストコンピュータ110と、入力PDLデータを画像処理して印刷出力する画像形成装置としてのプリンタ120で構成され、相互にLAN130を介して接続されている。プリンタ120は、コピーやFAXといった複数の機能を備えたMFP(Multi Function Peripheral)であってもよいし、印刷機能のみを備えたSFP(Single Function Printer)であってもよい。また、画像形成に用いる方式としては、例えば電子写真方式やインクジェット方式が考えられるが、これらに限定されるものではない。さらに、ホストコンピュータ(以下、ホストPC)110とプリンタ120はLAN130で接続されているが、接続方法はこれに限定されるものではない。例えば公衆回線に代表されるWANなどの任意のネットワーク、USBなどのシリアル伝送方式、セントロニクスやSCSIなどのパラレル伝送方式なども適用可能である。
図1は、本実施例に係る画像処理システムの構成例を示すブロック図である。画像処理システム100は、印刷データ(PDLデータ)を生成する情報処理装置としてのホストコンピュータ110と、入力PDLデータを画像処理して印刷出力する画像形成装置としてのプリンタ120で構成され、相互にLAN130を介して接続されている。プリンタ120は、コピーやFAXといった複数の機能を備えたMFP(Multi Function Peripheral)であってもよいし、印刷機能のみを備えたSFP(Single Function Printer)であってもよい。また、画像形成に用いる方式としては、例えば電子写真方式やインクジェット方式が考えられるが、これらに限定されるものではない。さらに、ホストコンピュータ(以下、ホストPC)110とプリンタ120はLAN130で接続されているが、接続方法はこれに限定されるものではない。例えば公衆回線に代表されるWANなどの任意のネットワーク、USBなどのシリアル伝送方式、セントロニクスやSCSIなどのパラレル伝送方式なども適用可能である。
ホストPC110は、LAN130を介してFTPやSMBといったプロトコルを用いてファイルを送受信したり、電子メールを送受信したりすることができる。さらには、ホストPC110には、印刷対象となる文書等を作成するためのアプリケーションプログラムや印刷ジョブを作成するためのプリンタドライバを、HDD等の記憶部(不図示)に格納している。なお、プリンタドライバで作成される印刷ジョブには、印刷設定とユーザにより作成された印刷データ(PDLデータ)が含まれる。そして、印刷設定には、ユーザID、用紙サイズ、カラー/モノクロ印刷、両面印刷、出力部数等の情報が含まれる。
プリンタ120は、制御部121、操作部122、印刷部123で構成される。制御部121は、操作部122及び印刷部123と接続され、これら各部の動作を制御することでプリンタ120全体の動作制御を司る。また制御部121は、LAN130を介して、ホストPC110を含む外部装置と、画像データなどを送受信する。操作部122は、入力ボタン、タッチパネル兼ディスプレイを有し、例えば留め置かれた印刷ジョブを出力する際の上記印刷設定に対する変更等の入力操作をユーザから受け付ける。また、操作部122は、制御部121からの指示に基づき、ディスプレイ上への画像の表示も行う。ユーザの入力操作に係る情報は、制御部121へ送られる。印刷部123は、制御部121が処理した画像データ(ビットマップデータ)を受け取って、画像データに基づいた印刷処理を実行する。
図2は、プリンタ120の制御部121の内部構成を示すブロック図である。CPU201は、プリンタ120全体を制御するための中央処理装置である。なお、CPU201は複数のCPUから構成されていてもよい。RAM202は、CPU201が動作するためのワークメモリであり、入力された画像データを一時記憶するための画像メモリでもある。RAM202はメインメモリとも呼ばれる。ROM203はブートROMであり、システムのブートプログラムが格納されている。HDD204は、各種処理のためのシステムソフトウェアプログラム及び入力された画像データ等を格納する。
操作部I/F205は、操作部122と制御部121とを接続するためのインタフェースであり、操作部122に各種入力操作用UI画面を表示するための画像データを出力する。また、操作部I/F205は、操作部122に表示されたUI画面を介してユーザが入力した各種情報をCPU201に伝える役割を担う。
ネットワークI/F206は、LANカード等で実現され、LAN130に接続して外部装置との間で情報の入出力を行う。
画像バスI/F207は、システムバス208と画像データを高速で転送する画像バス209とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。画像バス209上には、ラスタイメージプロセッサ(RIP)210、デバイスI/F211、印刷画像処理部212、画像編集用画像処理部213、カラーマネージメントモジュール(CMM)214が接続される。RIP210は、ページ記述言語コード(PDLデータ)や後述するベクトルデータをビットマップデータに展開する。デバイスI/F211は、印刷部123と制御部121との間のインタフェースであり、画像データの同期系/非同期系の変換を行う。
印刷画像処理部212は、印刷部123で印刷する画像データに対して、印刷部123のプリンタエンジンに応じた濃度補正や解像度変換といった画像処理を行う。編集用画像処理部213は、画像データに対し、回転や圧縮/伸長といった各種画像処理を行う。CMM214は、画像データに対して、カラープロファイルやキャリブレーションデータに基づいた、色変換処理(色空間変換処理ともいう)を施す専用ハードウェアモジュールである。カラープロファイルとは、デバイス依存色空間で表現したカラー画像データをデバイス非依存色空間(例えばLabなど)に変換するための関数のような情報である。キャリブレーションデータとは、印刷部123の色再現特性を修正するためのデータである。
<用語の定義>
ここで、本明細書における用語の定義について説明する。
エッジとは、オブジェクトのアウトラインであり、ページ内に描画するオブジェクトとオブジェクト、またはオブジェクトと背景の境目を指す。
ここで、本明細書における用語の定義について説明する。
エッジとは、オブジェクトのアウトラインであり、ページ内に描画するオブジェクトとオブジェクト、またはオブジェクトと背景の境目を指す。
スキャンラインとは、画像形成処理において画像データが連続的にメモリ走査される主走査方向のラインであり、スキャンラインの高さは1ピクセルとなっている。また複数のスキャンラインを束ねたものをバンドと呼ぶ。
スパンとは、単一のスキャンラインにおけるエッジ間で囲まれる閉領域を指す。すなわち、1つのスキャンラインをオブジェクトのエッジで区切った場合の、エッジを端点として持つライン中の閉領域を意味する。
レベルとは、ページ内に描画するオブジェクト同士の上下関係を示すもので、各オブジェクトには必ずそれぞれ異なるレベル番号が割り振られる。
フィルとはスパンに対する塗り情報を指す。ビットマップデータやシェーディングのように1ピクセル毎に異なる色値を持つフィルや、ベタ塗りのようにスパン中で色値の変化がないフィルが存在する。
<印刷処理の流れ>
続いて、プリンタ120における印刷処理について説明する。本実施例では、ホストPC110から受信した印刷ジョブを一旦留め置いて、その後、留め置かれた印刷ジョブの出力指示をユーザから受けて印刷するまでの一連の流れを説明するものとする。そして、図3は、留め置かれた印刷ジョブのうちユーザが指定した任意の印刷ジョブを出力する際の処理の流れを示すフローチャートである。この一連の処理は、ROM203又はHDD204に保存されたプログラムをRAM202に展開し、これをCPU201が実行することによって実現される。
続いて、プリンタ120における印刷処理について説明する。本実施例では、ホストPC110から受信した印刷ジョブを一旦留め置いて、その後、留め置かれた印刷ジョブの出力指示をユーザから受けて印刷するまでの一連の流れを説明するものとする。そして、図3は、留め置かれた印刷ジョブのうちユーザが指定した任意の印刷ジョブを出力する際の処理の流れを示すフローチャートである。この一連の処理は、ROM203又はHDD204に保存されたプログラムをRAM202に展開し、これをCPU201が実行することによって実現される。
ステップ301において、CPU201は、操作部122から通知されるユーザログインを検知する。
ステップ302において、CPU201は、ログインしたユーザによって留め置かれた印刷ジョブを、全ての留め置かれている印刷ジョブ(留め置きジョブ)の中から探索し、操作部122のディスプレイ上に一覧表示する。図4は、ログインユーザに係る留め置きジョブの一覧表示画面の一例を示す図である。一覧表示画面400には、ログインユーザのユーザIDを示す表示欄401、当該ログインユーザの留め置きジョブの内容と各印刷ジョブの出力に要する時間(印刷所要時間)を示す表示欄402が存在する。この表示欄402に表示される印刷所要時間は、印刷用紙の給紙から排紙までに要すると見込まれる時間に、ブロック分割レンダリング処理に要すると見込まれる時間を加えた時間である。なお、後述のステップ307における所定の画像処理に要する時間は、印刷用紙の給紙から排紙までに要する時間に含まれる。本実施例では、この表示欄402に表示される印刷所要時間が、ブロック分割レンダリングを考慮した精度の高い予測時間となる。そして、ユーザは印刷を希望する印刷ジョブのチェックボックス403にチェックを入れて選択し、印刷開始ボタン404を押下することで、選択した印刷ジョブの印刷処理が開始される。
ステップ303において、CPU201は、印刷開始ボタン404の押下が検知されたかどうかを判定する。一覧から任意の印刷ジョブが選択され、印刷開始が指示されていた場合、ステップ304に進む。この際、CPU201は、選択された印刷ジョブに含まれるPDLデータをHDD204からRAM202にロードする。一方、印刷開始ボタン404の押下が検知できなければ、監視を続行する。
ステップ304において、CPU201は、ロードされたPDLデータについて、PDLの種別やレンダリングするためのデータ解像度、描画コマンドを解釈する。図5は、PDLデータの一例を示す図であり、ページ開始(レイアウト)コマンド501と2種類の四角形の描画コマンド502及び503とで構成されている。図5(a)は、印刷対象となる、解像度(Resolution)が600dpiの画像を示している。いま、用紙サイズ(Media)がA4(210mm×297mm)、ページ方向(Orientation)が長辺が垂直になるPortraitに指定されており、この場合、生成するビットマップデータの幅と高さ(Area Size)は、「4960pixel×7040pixel」となる。
ステップ305において、CPU201は、ステップ304で解釈した結果に基づいてレンダリング用中間データであるディスプレイリスト(DL)を生成する。図6は、図5のPDLデータに対応するディスプレイリストを示している。図6に示すように、ディスプレイリストには、3種類のオブジェクトそれぞれについて、オブジェクトのパス点列(図形の頂点)の情報を元に導出された、オブジェクトを構成する線分の開始座標、終了座標、傾きの情報が、エッジデータとして格納されている。生成されたディスプレイリストは、RAM202に格納される。すなわち、図6のような矩形状のオブジェクト1、2、3のそれぞれからは、3個のエッジが生成されるので、RAM202に格納されるディスプレイリストには、9個(3個×3)のエッジが含まれることになる。
ステップ306において、CPU201は、生成したディスプレイリストのレンダリング処理をRIP210に要求する。この要求を受けてRIP210はレンダリング処理を実行し、ビットマップデータを生成する。前述のとおり本実施例では、ブロック分割によるレンダリング処理が実行される。このブロック分割レンダリングの詳細は後述する。
ステップ307において、CPU201は、レンダリング結果であるビットマップデータについての所定の画像処理を、印刷画像処理部212、編集用画像処理部213及びCMM214に要求する。この要求を受けて、印刷画像処理部212、編集用画像処理部213及びCMM214では、用紙の搬送方向に合わせた回転や、色変換処理、濃度補正処理などがビットマップデータに対して施される。
ステップ308において、CPU201は、画像処理が施されたビットマップデータの印刷処理を印刷部123に要求する。要求を受けて印刷部123は、印刷処理を実行して、印刷後の用紙を出力する。
以上が、プリンタ120における留め置き印刷処理の内容である。
続いて、上述のステップ306におけるブロック分割レンダリング処理について説明する。このブロック分割レンダリング処理は、処理対象となるスキャンライン毎に順次レンダリングするための情報をディスプレイリストから読み取り、例えば、1240pixel×1240pixelといったサイズのブロック単位の画像データに出力していく処理である。RIP210によるブロック分割レンダリングは、CPU201が、ROM203やHDD204に保存されている所定のプログラムをRAM202に展開して実行することによって実現される。以下、図7に示すブロック分割レンダリング処理の流れを示すフローチャートに従って説明する。
ステップ701において、RIP210は、ディスプレイリストを受信する。具体的には、CPU201によってRAM202上にブロック分割レンダリングの対象となるディスプレイリストが展開される。
ステップ702において、RIP210は、ディスプレイリストをスキャンライン毎に解析し、順次レンダリングするためのエッジデータを抽出する。例えば、前述の図6に示すディスプレイリストにおける1000ライン目のスキャンラインを解析する場合、オブジェクトを構成する直線情報に基づいて、該直線とスキャンラインとの交点をオブジェクト毎に算出する。
ステップ703において、RIP210は、注目スキャンラインから抽出したエッジデータについてソート処理を行う。図8は、上記1000ライン目のスキャンラインから抽出したエッジデータに対してソート処理を行なった結果を示す図であり、図6における3種類のオブジェクト1〜3におけるエッジデータについてのソート処理結果が示されている。オブジェクト1〜3のエッジデータを順にロードし、エッジのX座標に基づいて挿入位置を決定してソートすることで、図8に示すようなリスト形式のソート後エッジデータが得られる。
ステップ704において、RIP210は、ソート後エッジデータから注目スキャンラインにおけるスパン情報を生成し、スパン内に存在するオブジェクトをレベル順にソートして描画に必要なオブジェクトのレベル情報を生成する。図9は、図5のPDLデータに対応するページ900内のバンド901について得られるスパン情報を説明する図である。図9(a)に示すように、所定のバンド高さを持つバンド901は、オブジェクトの位置に従って縦方向(副走査方向)に3つの領域に分けられ、その上で、スパン1〜スパン7の7つのスパンに分割される。より詳細には、領域1は、領域1の高さに相当するライン数分のスパン1で構成される。領域2は、領域2の高さに相当するライン数分のスパン2とスパン3で構成される。領域3は、領域3の高さに相当するライン数分のスパン4、スパン5、スパン6及びスパン7で構成される。図9(b)は、スパン1〜スパン7の各スパンにおいて、何をどのように描画するのかを規定したスパン情報を示している。ここで、スパン5のスパン情報における“ROP2”は、バイナリラスターオペレーションの意味である。そして、レベル番号1〜3に内容の異なる塗り情報フィル1〜3がそれぞれ対応付けられている。この場合において、領域3に属する上記1000ライン目については、スパン4〜7の4つのスパン情報が生成されることになる。
そして、このようなスパン情報に基づき、描画に必要なオブジェクトのレベル情報が併せて生成される。図10は、上記1000ライン目について含まれる4つのスパンのうち、スパン5について生成されるレベル情報の生成過程を説明する図である。図10では、スパン5内に存在する3種類のオブジェクト1〜3をレベル順にソートした結果が示されている。すなわち、「レベル番号3・フィル3のオブジェクト3」、「レベル番号1・フィル1のオブジェクト1」、「レベル番号2・フィル2のオブジェクト2」の順にロードした場合のソート処理結果が示されている。図10に示されるように、各オブジェクトがロードされると、レベル番号に従って連結リスト内にレベル順に並ぶようにソートされる。そして、スパン内に存在するすべてのオブジェクトがロードされると、実際に描画されるオブジェクトのレベル情報が選択されて出力する。例えば、図10に示すスパン5の場合、ロード対象のオブジェクトに合成処理や透過処理の指定がなされていない限り、最前面に位置するオブジェクト以外は陰面消去する必要がある。そのため、図10の例では、最終的に描画される、レベル番号3のオブジェクト3のレベル情報のみが出力されることになる。このようにして、注目スキャンラインについてのスパン情報と、当該スパン情報に対応するレベル情報が出力される。
ステップ705において、RIP210は、ステップ704で生成された注目スキャンラインについてのスパン情報とレベル情報を、ワークバッファに格納する。
ステップ706において、RIP210は、ワークバッファに格納されたスキャンライン毎のスパン情報とレベル情報が、所定のブロック高さのスキャンライン分だけ格納されたかを判定する。まだ所定のブロック高さ(例えば1240pixels)分のスキャンラインのスパン情報とレベル情報が格納されていない場合は、ステップ702に戻って次のスキャンラインを注目スキャンラインとして処理を続行する。一方、所定のブロック高さ分のスキャンラインのスパン情報とレベル情報が格納されていれば、ステップ707に進む。
ステップ707において、RIP210は、ワークバッファに格納された所定のブロック高さ分のスパン情報とレベル情報に基づいて、所定の座標を跨ぐスパンを分割して、全てのスパンが所定のブロック内に収まるようにする(ブロック分割)。図11は、図9(a)のバンド901内の領域1〜3に含まれる7つのスパン(スパン1〜7)を、ブロック分割した結果を示す図である。図11(a)に示すように、図9(a)におけるバンド901内の計3つの領域1〜3においてスパン1〜7は、所定のブロック幅で分割された結果、計12個の領域4〜15において14個のスパン1〜14に細分化される。詳細には、ブロック1は、領域4の高さのライン数分のスパン1、領域5の高さのライン数分のスパン5、領域6の高さのライン数分のスパン9及び10で構成される。ブロック2は、領域7の高さのライン数分のスパン2、領域8の高さのライン数分のスパン6、領域9の高さのライン数分のスパン11で構成される。ブロック3は、領域10の高さのライン数分のスパン3、領域11の高さのライン数分のスパン4、領域12の高さのライン数分のスパン12及び13で構成される。ブロック4は、領域13の高さのライン数分のスパン4、領域14の高さのライン数分のスパン8、領域15の高さのライン数分のスパン14で構成される。このように、ブロック分割の前後で、スパンの数は変化する(増える)。
ステップ708において、RIP210は、分割されたブロックのうち、注目するブロック内の注目するスパンについて、フィル処理とコンポジット処理を行う。例えば、図11(a)のバンド901に対応するブロック高さに相当するスキャンライン分のスパン情報とレベル情報がワークバッファに格納されている場合、最初にブロック1が注目ブロックに決定され、スパン1を注目スパンとしてそのスパン情報とレベル情報に基づいて、フィル処理とコンポジット処理がなされる。
ステップ709において、RIP210は、注目ブロック内のすべてのスパンについてフィル処理とコンポジット処理が終了したかどうかを判定する。判定の結果、注目ブロック内に未処理のスパンがあれば、ステップ708に戻る。例えば、スパン1についての処理が終わった段階であれば、次のスパン5が注目スパンとなって処理が続行される。一方、注目ブロック内に未処理のスパンがなければ、ステップ710に進む。
ステップ710において、RIP210は、ワークバッファに格納された全てのスキャンライン分のスパン(ブロック分割後の全てのスパン)に対し、フィル処理とコンポジット処理が完了したかどうかを判定する。未処理のスパンがある(すなわち、未処理のブロックがある)場合は、ステップ708に戻って次のブロックを注目ブロックに決定し、処理を続行する。例えば、ブロック1についての処理が終わった段階であれば、次のブロック2が注目ブロックとなって処理が続行され、ブロック4についての処理が終了するまで繰り返される。
ステップ711において、RIP210は、受信したディスプレイリストについての全てのスキャンラインについて、レンダリング処理が完了したか否かを判定する。未処理のスキャンラインがあれば、ステップ702に戻って次の注目スキャンラインを決定し処理を続行する。一方、全てのスキャンラインについてレンダリング処理が完了していれば、本処理を終了する。
以上が、RIP210によるブロック分割レンダリング処理の内容である。上述のとおりブロック分割によってスパン数が増加するため、増加したスパン数分のフィル・コンポジット処理が新たに発生することになる。しかし、ホストコンピュータ110から送られてくるPDLデータは、RIP210で実行されるブロック分割レンダリングを考慮した構成にはなっていない。PDLデータ内にブロック分割処理の発生とその位置を示す情報を持たせることができれば、ブロック分割レンダリングに要する時間を正確に予測することを可能となる。
本実施例では、補正情報としてのクリップコマンドをブロック分割処理が発生する位置に付加したPDLデータを生成し、これを用いて正確な処理時間を予測することとしている。ここで、クリップコマンドとは、該コマンドが指定する位置に存在する描画オブジェクトを、クリップコマンドが指定する形状(例えば矩形)にくり抜くことを指示する描画コマンドである。図12は、クリップコマンドの一例を示す図である。図12では、描画オブジェクト1200が、クリップコマンド1201が指定する形状にくり抜かれた結果、画像1202が形成されている。
このようなクリップ処理をRIP210で実行した場合には、スパン情報をクリップコマンドが指定する位置座標(エッジ)で分割し、分割後の位置座標が示す閉領域の外に存在するスパン情報を削除することで、クリップコマンドが指定する形状にくり抜かれる。したがって、RIP210で実際に実行されるブロック分割と同等の処理を、クリップコマンドに基づくクリップ処理で再現することができる。
続いて、本実施例の特徴である、精度の高い印刷所要時間を算出する処理について説明する。図13は、印刷所要時間算出処理の流れを示すフローチャートである。この一連の処理も、ROM203又はHDD204に保存されたプログラムをRAM202に展開し、これをCPU201が実行することによって実現される。
PC110から留め置き印刷の対象となる印刷ジョブを受信すると、ステップ1301において、CPU201は、受信した印刷ジョブ内のPDLデータから1ページ分のPDLデータを取り出す。
ステップ1302において、CPU201は、取り出した1ページ分のPDLデータから、該ページ分のレンダリング処理に要する時間を予測するためのPDLデータ(以下、予測用PDLデータ)を生成する。この予測用PDLデータは、ブロック分割時の各ブロックに対応するクリップコマンドが追加されたPDLデータである。予測用PDLデータの生成処理については図16を用いて後述する。
ステップ1303において、CPU201は、生成した予測用PDLデータからディスプレイリストを生成し、当該ディスプレイリストに基づいて、レンダリング処理に要すると見込まれる時間を予測する。具体的には、生成したディスプレイリストに含まれるエッジ数、全エッジを加算したエッジ高、スパン数及びRIP210が1つのピクセルデータの生成に掛かる処理時間を基に、ブロック分割レンダリング処理の予測時間(以下、レンダリング予測時間)を算出する。レンダリング予測時間の算出が終わると、生成したディスプレイリストはRAM202やHDD204に格納することなく破棄される。
図15は、図14の予測用PDLデータをもとに生成したディスプレイリストを示している。図6で示す3種類のオブジェクトに加え、挿入された24個のクリップコマンドに対応する矩形オブジェクトを構成する直線の開始座標、終了座標、傾きの情報が、エッジデータとして格納されている。このように、図14に示す予測用PDLデータをもとに生成したディスプレイリストは、元のディスプレイリスト(図6を参照)が3個の描画コマンドを有していたのに対し、27個の描画コマンドを有することになる。そして、元のディスプレイリストでは9個(1つのオブジェクト当たり3個×3)であった全エッジ数は、図15のディスプレイリストでは81個(3個×27)に増える。これにより全てのエッジの高さを加算した全エッジ高は、元のディスプレイリストにおける20680(7040*2+1000*2+2300*2)から、矩形オブジェクト分の56320(1240*2*20+840*2*4)だけ増えて77000になる。さらに図示していないが、ブロック分割によって、ページ内の全スパン数も11から48に増えることになる。例えば、図15において1行目の4つのブロックについては、ブロック分割後は、図11(a)、(b)で示したようにスパン数は14であるが、ブロック分割を考慮しないとスパン数は7と計上される。スパン内のフィル(塗り情報)は変化しないため、RIP210が生成するピクセルデータ(例えばCMYKの場合、1ピクセルデータは32ビット)数は、全エッジを加算したエッジ高とスパン数から算出できる。そして、算出したピクセルデータ数にRIP210が1つのピクセルデータの生成にかかる処理時間を乗算することで、レンダリング予測時間を算出できる。
ステップ1304において、CPU201は、受信した印刷ジョブに含まれる全ページ分のPDLデータに対してレンダリング予測時間の算出が完了したかどうかを判定する。レンダリング予測時間を未算出のページがある場合はステップ1301に戻って、次のページを対象に処理を続行する。一方、受信した印刷ジョブに含まれる全ページ分のPDLデータに対してレンダリング予測時間の算出が完了していれば、ステップ1305に進む。
ステップ1305において、CPU201は、全ページ分のPDLデータについて算出されたレンダリング予測時間に、印刷用紙の給紙から排紙までの時間を加算した値を、印刷所要時間として留め置きされた印刷ジョブと関連付けてRAM202やHDD204に保存する。
このように、プリンタ120は、PC110から印刷ジョブを受信する度に、受信した印刷ジョブについて印刷所要時間を算出した上で、装置内に印刷ジョブを留め置く。そして、留め置きされた印刷ジョブについてユーザから印刷指示を受けるときに、印刷ジョブと関連付けて保存された値が、印刷設定情報とともに当該印刷ジョブの出力に要する所要時間として表示される(前述の図4を参照)。
次に、上述のステップ1302に係る予測用PDLデータの生成処理について詳しく説明する。図16は、予測用PDLデータ生成処理の詳細を示すフローチャートである。
ステップ1601において、CPU201は、ブロック分割レンダリング処理において用いるブロックのサイズ(高さと幅)の情報を取得する。このブロックサイズの情報は、ROM203やHDD204にてあらかじめ保存される。前述の図14のようにブロック分割する場合は、ブロックサイズ情報として幅・高さ共に1240pixelが取得されることとなる。なお、ページ終端に位置するブロックのサイズは、ページサイズを超えないよう、他のブロックとは異なるサイズとなる場合がある。例えば、図14の例では、y軸方向ページ終端に位置するブロックの高さは840pixcelとなっている。
ステップ1602において、CPU201は、処理対象ページのPDLデータについて、データ解像度、用紙サイズ及びページ方向の情報を取得する。図5に示したPDLデータの場合、「解像度:600dpi」、「用紙サイズ:A4」、「ページ方向:Portrait」が取得されることになる。PDLデータに解像度及び用紙サイズの情報が含まれていない場合は、予め設定した既定値を取得するなどすればよい。
ステップ1603において、CPU201は、ステップ602で取得したデータ解像度、用紙サイズ及びページ方向の情報から、生成するビットマップデータの幅と高さを決定する。前述のとおり、用紙サイズ(Media)がA4、ページ方向(Orientation)がPortraitなので、生成するビットマップデータの幅と高さ(Area Size)は4960pixel×7040pixelとなる。このとき、ビットマップデータの高さを示す値がページ高さ方向の終端位置を特定するY座標(以下、ページ終端Y座標)として、幅を示す値がページ幅方向の終端位置を特定するX座標(以下、ページ終端X座標)として得られることになる。
ステップ1604において、CPU201は、ステップ1601で取得したブロックサイズに応じて、処理対象ページのPDLデータについて、処理対象とする注目ブロックの高さ方向における開始位置と終了位置を特定する位置座標(以下、それぞれ「開始Y座標」、「終了Y座標」と呼ぶ。)を導出する。例えば図14で示される1行目のブロックであれば、開始Y座標は1pixel、終了Y座標は、1240pixelとなる。また、2行目以降のブロックについての開始Y座標および終了Y座標のそれぞれは、現在の開始Y座標および終了Y座標のそれぞれにブロック高さを加えることで求まる。例えば図14で示される2行目のブロックであれば、開始Y座標は1241pixel、終了Y座標は、2480pixelとなる。
ステップ1605において、CPU201は、ステップ1604で求めた開始Y座標が、ステップ1603で得られたページ終端Y座標を超えているかどうかを判定する。注目ブロックの開始Y座標が、ページ終端Y座標を超えている場合は、ステップ1609に進む。一方、注目ブロックの開始Y座標が、ページ終端Y座標を超えていない場合は、ステップ1606に進む。
ステップ1606において、CPU201は、ステップ1601で取得したブロックサイズに応じて、処理対象ページのPDLデータについて、注目ブロックの幅方向における開始位置と終了位置を特定する位置座標(以下、それぞれ「開始X座標」、「終了X座標」と呼ぶ。)を導出する。例えば図14で示される1列目のブロックであれば、開始X座標は1pixel、終了X座標は、1240pixelとなる。また、2列目以降のブロックについての開始X座標および終了X座標のそれぞれは、現在の開始X座標および終了X座標のそれぞれにブロック幅を加えることで求まる。例えば図14で示される2列目のブロックであれば、開始X座標は1241pixel、終了X座標は、2480pixelとなる。
ステップ1607において、CPU201は、ステップ1606で求めた開始X座標がステップ1604で得られたページ終端X座標を超えているかどうかを判定する。注目ブロックの開始-X座標がページ終端X座標を超えている場合はステップ1604に戻り、次の注目ブロックの開始Y座標と終了Y座標を決定して処理を続行する。一方、注目ブロックの開始X座標が、ページ終端X座標を超えていない場合は、ステップ1608に進む。
ステップ1608において、CPU201は、ステップ1604で求めた注目ブロックの開始座標から終了座標までに内接するような矩形オブジェクトのクリップコマンドを生成する。この矩形オブジェクトのクリップコマンドは、注目ブロックに含まれる1つ以上のオブジェクトの、注目ブロック内の部分をくり抜く(抜き出す)ためのコマンドである。そしてCPU201は、生成された矩形オブジェクトのクリップコマンドを、RAM202に展開する。そして、処理はステップ1606に戻り、CPU201は、同じY座標上で次の注目ブロック(右隣のブロック)を決定して処理を続行する。クリップコマンドをRAM202に展開するこの処理は、補正情報を含むPDLデータを生成する処理中の一処理であり、後述のステップ1609の処理を経て得られる、RAM202上の最終的なコマンド群が予測用のPDLデータとなる。
ステップ1609において、CPU201は、処理対象ページのPDLデータに当初から含まれるオブジェクト(当初オブジェクト)の描画コマンドを、上述の矩形オブジェクトのクリップコマンドに続くようにRAM202に展開する。すなわち、CPU201は、処理対象ページのPDLデータ中の各コマンドを前述のステップS1608で得られたクリップコマンドの後ろにコピーする。矩形オブジェクトのクリップコマンドを先に展開するのは、これを当初オブジェクトの後にすると、ブロック内に描画される当初オブジェクトをクリップできないためである。このようにステップ1609を完了することで、入力された処理対象ページのPDLデータ(入力PDLデータ)に補正情報としてのクリップコマンドが付加された予測用のPDLデータがRAM202上に生成される。
図14は、このようにして生成された予測用PDLデータの一例を示す図であり、元となった処理対象ページのPDLデータ(図5のPDLデータ)に、計24個のクリップコマンドが追加された予測用PDLデータとなっている。24個のクリップコマンドの内訳は、1240pixel×1240pixelの矩形オブジェクトでクリップするためのクリップコマンド1401が20個、1240pixel×840pixelの矩形オブジェクトでクリップするためのクリップコマンド1402が4個である。
なお、本実施例では、予測用PDLデータの生成の際に挿入する矩形オブジェクトの座標を導出しているが、用紙サイズ、解像度及びページ方向の組み合わせに応じた挿入する矩形オブジェクトのクリップコマンドを予め求めておいてもよい。そして、この情報をHDD204に保持しておいて、取得するような構成でもよい。
また、本実施例では、ブロック分割レンダリング時のブロックに対応する矩形オブジェクトのクリップコマンドを追加することで、予測用PDLデータを生成しているがこれに限定されない。分割時の各ブロックにおいて描画されることになるオブジェクトの該当部分を特定可能な補正情報が付加されたPDLデータであればよく、クリップコマンドの追加は必須ではない。
最後に、本実施例の予測用PDLデータを用いた予測時間の精度について説明する。
例えば、図9(a)における領域1は、図11(a)における領域4、領域7、領域10、領域13に分割される。スパン内のフィル(塗り情報)は変化しないため、図9(a)の領域1で生成するピクセルデータは、4960pixcel分同色のランレングス符号化データとなる。これに対し、図11(a)の場合は、1240pixcel毎のランレングス符号化データとなる。1色分のランレングス符号化データ(繰り返し情報)に64ビット(8Byte)必要とすると、図9(a)の例ではブロック分割の有無で生成するランレングス符号化データは88Byteから384Byteに増加する。画像バス209の転送速度を250Byte/μsecとするとピクセルデータの出力に0.352μsec要したデータが、1.536μsec要するようになる。
本実施例を適用し、予測用PDLデータにクリップコマンドを挿入することで、分割されるスパン情報が分かるようになり、従来の予測処理時に発生する差分(1.536μsec−0.352μsec)1.184μsecの差分を解消できることになる。
以上のとおり本実施例によれば、ブロック分割レンダリングの処理負荷を加味した予測用PDLデータを生成する。このとき生成する予測用PDLデータは、描画コマンドを分割することがないため、入力されたPDLデータに含まれる描画オブジェクトの傾向に依らず、予測用PDLデータを生成できる。
これにより、ブロック分割レンダリング処理に要する時間を予測する際のメモリ使用量の増加を抑制しつつ、ブロック分割処理を加味したレンダリング予測時間を算出することができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
Claims (10)
- 入力PDLデータに対するブロック分割レンダリングによって複数のブロックに分割したビットマップデータを生成するレンダリング手段を有する画像形成装置のための画像処理装置であって、
前記レンダリング手段におけるビットマップデータの生成に要する時間を予測する予測手段と、
前記予測のための補正情報を前記入力PDLデータに付加した予測用PDLデータを生成する予測用PDLデータ生成手段と、
を備え、
前記予測手段は、前記予測用PDLデータから生成した中間データに含まれる補正情報に基づいて、前記予測を行なう
ことを特徴とする画像処理装置。 - 前記予測用PDLデータ生成手段は、各ブロックに対応する描画コマンドを前記補正情報として前記入力PDLデータに加えることで、前記予測用PDLデータを生成することを特徴とする請求項1に記載の画像処理装置。
- 前記予測用PDLデータ生成手段は、前記ブロック毎の位置座標を、処理対象ページの用紙サイズ、データ解像度及びページ方向に基づいて導出し、導出した位置座標から各ブロックに対応する描画コマンドを生成して、前記予測用PDLデータを生成することを特徴とする請求項2に記載の画像処理装置。
- 前記予測用PDLデータ生成手段は、用紙サイズ、データ解像度及びページ方向の組み合わせに応じ、予め求めておいた各ブロックに対応する描画コマンドを用いて、前記予測用PDLデータを生成することを特徴とする請求項2に記載の画像処理装置。
- 前記各ブロックに対応する描画コマンドは、前記各ブロックに内接する矩形オブジェクトのクリップコマンドであることを特徴とする請求項2乃至4のいずれか1項に記載の画像処理装置。
- 前記クリップコマンドは、前記入力PDLデータに当初から含まれるオブジェクトの描画コマンドよりも前に付加されることを特徴とする請求項5に記載の画像処理装置。
- 前記予測手段は、前記予測用PDLデータから中間データを生成し、該中間データに含まれる全エッジを加算したエッジ高とスパン数から前記レンダリング手段が生成するピクセルデータ数に、1つのピクセルデータの生成に掛かる処理時間を乗算することにより、前記レンダリング手段におけるビットマップデータの生成に要する時間を予測し、
前記エッジは、オブジェクトのアウトラインであり、
前記スパンは、単一のスキャンラインにおける前記エッジ間で囲まれる閉領域である
ことを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。 - 入力PDLデータに対するブロック分割レンダリングによって複数のブロックに分割したビットマップデータを生成するレンダリング手段を有する画像形成装置であって、請求項1〜7のいずれか1項に記載の画像処理装置を備え、
前記予測手段で予測された時間に、印刷用紙の給紙から排紙に要する時間を加算した値を、印刷所要時間として表示する表示手段をさらに備えたことを特徴とする画像形成装置。 - 入力PDLデータに対するブロック分割レンダリングによって複数のブロックに分割したビットマップデータを生成するレンダリング手段を有する画像形成装置における、当該ビットマップデータの生成に要する時間を予測する方法であって、
前記予測のための補正情報を前記入力PDLデータに付加した予測用PDLデータを生成するステップと、
前記予測用PDLデータから生成した中間データに含まれる補正情報に基づいて、前記ビットマップデータの生成に要する時間を予測するステップと
を含むことを特徴とする方法。 - コンピュータを、請求項1乃至7のいずれか1項に記載の画像処理装置として機能させるためのプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015146538A JP2017024321A (ja) | 2015-07-24 | 2015-07-24 | 画像処理装置、画像形成装置及び画像処理時間予測方法及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015146538A JP2017024321A (ja) | 2015-07-24 | 2015-07-24 | 画像処理装置、画像形成装置及び画像処理時間予測方法及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2017024321A true JP2017024321A (ja) | 2017-02-02 |
Family
ID=57944956
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2015146538A Pending JP2017024321A (ja) | 2015-07-24 | 2015-07-24 | 画像処理装置、画像形成装置及び画像処理時間予測方法及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2017024321A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2019010817A (ja) * | 2017-06-30 | 2019-01-24 | キヤノン株式会社 | 画像処理装置、画像処理方法及びプログラム |
| US10423374B2 (en) | 2017-03-07 | 2019-09-24 | Canon Kabushiki Kaisha | Image forming apparatus and method for controlling image forming apparatus for reducing print processing time |
| US10534567B2 (en) | 2017-03-07 | 2020-01-14 | Canon Kabushiki Kaisha | Image forming apparatus and method for controlling image forming apparatus |
| US11321025B2 (en) | 2018-12-18 | 2022-05-03 | Canon Kabushiki Kaisha | Image forming apparatus, method of controlling the same, and storage medium |
-
2015
- 2015-07-24 JP JP2015146538A patent/JP2017024321A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10423374B2 (en) | 2017-03-07 | 2019-09-24 | Canon Kabushiki Kaisha | Image forming apparatus and method for controlling image forming apparatus for reducing print processing time |
| US10534567B2 (en) | 2017-03-07 | 2020-01-14 | Canon Kabushiki Kaisha | Image forming apparatus and method for controlling image forming apparatus |
| JP2019010817A (ja) * | 2017-06-30 | 2019-01-24 | キヤノン株式会社 | 画像処理装置、画像処理方法及びプログラム |
| US11321025B2 (en) | 2018-12-18 | 2022-05-03 | Canon Kabushiki Kaisha | Image forming apparatus, method of controlling the same, and storage medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4436851B2 (ja) | プリンタドライバ・プログラムおよび画像形成装置 | |
| US7864199B2 (en) | Image processing apparatus and control method thereof | |
| JP6029344B2 (ja) | 画像処理装置、画像処理方法、プログラム | |
| JP4458176B2 (ja) | 印刷制御装置、印刷装置およびプログラム | |
| US10185901B2 (en) | Image processing apparatus and non-transitory computer readable medium with variable image density | |
| US8705132B2 (en) | Printing apparatus, data processing method for printing apparatus and storage medium | |
| US10929727B2 (en) | Image processing apparatus with color replacement with achromatic colors, and image processing method and storage medium thereof | |
| JP2017024321A (ja) | 画像処理装置、画像形成装置及び画像処理時間予測方法及びプログラム | |
| JP2020032730A (ja) | 画像形成装置、画像形成装置の制御方法及びプログラム | |
| JP5842590B2 (ja) | 画像処理装置、及び画像処理装置の制御プログラム | |
| KR101945581B1 (ko) | 화상 처리 장치, 화상 처리 방법, 및 저장 매체 | |
| US20150227824A1 (en) | Image processing apparatus and non-transitory computer readable medium | |
| JP6643056B2 (ja) | 画像処理装置、画像処理方法、データ生成方法及びプログラム | |
| US20140157115A1 (en) | Image processing apparatus capable of displaying preview image, method of displaying preview image, and storage medium | |
| JP5020998B2 (ja) | 画像処理装置、及び画像処理方法 | |
| JP6904717B2 (ja) | 画像処理装置、その制御方法、およびプログラム | |
| CN107203354B (zh) | 图像处理设备及其控制方法 | |
| US8705051B2 (en) | Image forming apparatus, method and medium for detecting blank pages | |
| US11438483B2 (en) | Color to gray data conversion determined between assigning gray values based on number of colors and combining color components at predetermined ratio | |
| JP2019093559A (ja) | 画像形成装置及びその制御方法、並びにプログラム | |
| JP2018182464A (ja) | 画像処理装置及びプログラム | |
| JP2016206934A (ja) | 画像処理装置、画像処理方法及びプログラム | |
| JP6106962B2 (ja) | 情報処理装置、プログラム、および記録媒体 | |
| JP2023077248A (ja) | 画像形成装置とその制御方法、並びにプログラム | |
| JP2003118176A (ja) | ラスタライズ処理装置、ラスタライズ処理方法、および記録媒体並びにプログラム |