JP2012171239A - 画像形成装置、画像形成装置の制御方法、プログラム - Google Patents

画像形成装置、画像形成装置の制御方法、プログラム Download PDF

Info

Publication number
JP2012171239A
JP2012171239A JP2011036058A JP2011036058A JP2012171239A JP 2012171239 A JP2012171239 A JP 2012171239A JP 2011036058 A JP2011036058 A JP 2011036058A JP 2011036058 A JP2011036058 A JP 2011036058A JP 2012171239 A JP2012171239 A JP 2012171239A
Authority
JP
Japan
Prior art keywords
page
parallel processing
print data
display list
processing
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.)
Withdrawn
Application number
JP2011036058A
Other languages
English (en)
Inventor
Hiroshi Matsuda
弘志 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2011036058A priority Critical patent/JP2012171239A/ja
Priority to US13/370,566 priority patent/US8792122B2/en
Publication of JP2012171239A publication Critical patent/JP2012171239A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1857Generation of the printable image characterized by its workflow involving parallel processing in the same printing apparatus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1867Post-processing of the composed and rasterized print image
    • G06K15/1886Storage of the print image data or of parts thereof
    • G06K15/1888Storage of image elements as generic data

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Record Information Processing For Printing (AREA)
  • Facsimiles In General (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

【課題】 マルチコアCPUを用いた並列処理において、ページ並列処理、オブジェクト並列処理の2つの方式それぞれのメリットを活かすことでVDPのRIP処理速度をより高める。
【解決手段】 プリンタ100は、再利用される描画オブジェクトからディスプレイリストを生成して、生成されたディスプレイリストをキャッシュするキャッシュ制御部210と、キャッシュヒット率を取得し、印刷データの先頭ページから順番に前記オブジェクト並列処理により処理し、取得されたキャッシュヒット率が所定のしきい値以上になったページ以降のページをページ並列処理手段により処理するPPMLインタプリタ209とを有する。
【選択図】 図6

Description

本発明は、画像形成装置、その制御方法及びプログラムに関するものである。
デジタル印刷の進展と共に、その特色を活かした形態としてのバリアブルデータ印刷(Variable Data Print、以後、VDPと略す)が注目されて久しい。印刷物の一部を可変データとして部毎に変更するなどの印刷形態は、電子写真などのデジタルプリンタの特性を最大限に発揮するものである。初期のVDPでは各社各様のVDP言語が使われていたが、現在では標準言語としてのPPMLが規定され、広く利用されている。PPMLでは、ページを描画する要素として、繰り返し参照されるリユーサブルオブジェクトと、一度限り参照されるローカルオブジェクトの二つがある。リユーサブルオブジェクトはページ内、ページ間、あるいはジョブ間で、単一の描画オブジェクトを複数箇所に配置する場合に用いられる。通常、ローカルオブジェクトやリユーサブルオブジェクト等の描画オブジェクトはソース描画データとしてPostScript(登録商標。以後、PSと略記する)やPDFにより記述される。これらのソース描画データはRIP処理を経てラスタイメージ化された後にページ上に配置される。PPMLのリユーサブルオブジェクトのように再利用されることが明確な場合は、ソース描画データからRIP処理した結果のラスタイメージをキャッシュする。その結果、非常に高速な描画処理が可能となる。但し、ラスタイメージは高解像度かつ高階調のカラーデータの場合、非常に大きなサイズとなる。その為、大容量のメモリが必要となる。そこでラスタイメージに変換する手前のディスプレイリスト(中間データ)をソース描画データから生成し、これをキャッシュするという方法もある。ディスプレイリストをレンダリングするための時間は残るが、キャッシュに必要なメモリ容量を大幅に削減することが可能で、メモリ容量と性能のバランスを考慮した折衷案といえる。
一方、近年、VDPのRIP処理を行うCPUは、クロック性能の向上が頭打ちとなり、複数のコアを単一パッケージに格納したマルチコア化が進んでいる。マルチコア化したCPUの性能をフルに引き出すためには、RIP処理の並列化が必須となり、VDPを含むPDLデータの並列処理方法として幾つかの方法が考案されている。例えば、複数ジョブを複数のコアで同時並行してRIP処理するジョブ並列処理方式がある。ジョブ並列処理方式では大量のジョブを処理する場合には、全体の生産性を向上することができる。しかしながら、その中の単一ジョブだけをみると、RIP処理時間はシングルコアで実行した場合と変わらない。ターンアラウンドタイムの短縮が要求されるVDPジョブには適した方式とは言えない。また、別の方法として、単一ジョブ内の複数ページを複数のコアで同時並行してRIP処理するページ並列処理方式がある。ページ並列処理方式では単一ジョブに対しても高速化が見込める。しかし、ページ間の依存関係の無いページ独立なPDL言語(VDP言語)である必要がある。また、ジョブ中の単一ページだけをみると、RIP処理時間はシングルコアで実行した場合と変わらない。複雑な描画がされたページのRIP処理は時間がかかることが多く、ページ並列処理方式でもボトルネックとなる可能性が残る。さらに別の方法として、単一ページ内の複数描画オブジェクトを複数のコアで同時並行してRIP処理するオブジェクト並列処理方式がある。オブジェクト並列処理方式は単一ページのRIP処理時間を短縮することも可能であるが、オブジェクトの分割と収集にかかる計算コストが高いことが知られている。並列処理の効率を考えた場合には、ジョブ並列処理方式、もしくはページ並列処理方式の方が望ましい。また、VDPに特化した並列処理方式として、ジョブをVDPで定義されたレコード毎に分割して、レコード毎に複数のコアで同時並行してRIP処理するレコード並列処理方式がある(例えば、特許文献1参照)。VDPの目的として、One to Oneマーケティングを実現するためのパーソナライズされた印刷物の製造がある。一般に、この一人分のVDPデータをレコードと呼ぶ。
特開2009−172913号公報
VDPにおいてもマルチコアCPUによる並列処理を用いた高速化が期待されるが、VDPの場合には固有の課題がある。ページ並列処理方式では、ある一つのリユーサブルオブジェクトを同時並行でRIP処理する複数のページで同時に参照していると効率が低下する。単一のリユーサブルオブジェクトを複数のコアで重複してRIP処理するか、片方のコアのRIP処理が完了するのを待つ必要があるためである。重複してRIP処理すると、VDPの大きなメリットであるリユーサブルオブジェクトのキャッシュ処理の効用が失われる。かといって、待ち合わせ処理を行うと待ちによるCPU時間の無駄が発生する。一般に、リユーサブルオブジェクトのRIP処理はジョブの先頭付近で多く発生し、ジョブの進展と共にキャッシュ処理による高速化が可能となる。従って、VDPにおけるページ並列処理方式はジョブの先頭が苦手で、ジョブの後半が得意と言える。
対して、オブジェクト並列処理はローカルオブジェクトとリユーサブルオブジェクトが明確に定義されるPPMLなどのVDP言語とは比較的相性の良い方法とも言える。オブジェクトの分割と収集の計算コストを比較的少なく抑えることが可能なためである。また、オブジェクトの再利用はジョブ間やレコード間、ページ間で行われることが多く、ページ内で再利用されるケースは比較的少ない。しかし、オブジェクトの分割がVDPデータを生成するVDPアプリケーションに依存してしまい、少ないオブジェクト数でページを構成するVDPデータでは効果が期待できない。また、ジョブの進展と共にキャッシュされたリユーサブルオブジェクトの再利用が増えるため、並列処理の対象となるオブジェクト数が減ってしまう。即ち、VDPにおけるオブジェクト並列処理方式はジョブの先頭が得意で、どちらかというとジョブの後半が苦手な方式と言える。
このように、VDPにおけるRIPの並列処理方式にはVDP固有の事情があり、どの処理方式を選択するにせよ、それぞれ一長一短がある。
本発明は、マルチコアCPUを用いた並列処理において、ページ並列処理、オブジェクト並列処理の2つの方式それぞれのメリットを活かすことでVDPのRIP処理速度をより高めることが可能な画像形成装置を提供することを目的とする。
上記課題を鑑み、本発明の画像形成装置は、ジョブ内で再利用される描画オブジェクトを含む印刷データの画像データを生成する画像形成装置であって、前記再利用される描画オブジェクトからディスプレイリストを生成して、生成されたディスプレイリストをキャッシュするキャッシュ手段と、前記印刷データの各ページを描画オブジェクト単位で分割して並列にRIP処理を行うオブジェクト並列処理手段と、前記印刷データをページ単位で分割して並列にRIP処理を行うページ並列処理手段と、前記印刷データにおいて、ページ内に含まれる前記再利用される描画オブジェクトのうち、前記キャッシュ手段によりディスプレイリストとしてキャッシュされた描画オブジェクトの割合を示すキャッシュヒット率を取得する取得手段と、前記印刷データの先頭ページから順番に前記オブジェクト並列処理手段により処理し、前記取得手段により取得されたキャッシュヒット率が所定のしきい値以上になったページ以降のページをページ並列処理手段により処理する処理制御手段とを有することを特徴とする。
本発明によれば、マルチコアCPUを用いた並列処理において、ページ並列処理、オブジェクト並列処理の2つの方式それぞれのメリットを活かすことでVDPのRIP処理速度をより高めることが可能となる。
本発明の一実施形態を説明するハードウェアブロック図 (A)本発明の一実施形態を説明するソフトウェアブロック図、(B)PDLインタプリタの詳細を説明するソフトウェアブロック図 PPMLにおけるオブジェクト並列処理のフローチャート PPMLにおけるページ並列処理のフローチャート ページ並列処理時のディスプレイリスト生成処理のフローチャート PPMLにおけるハイブリッド並列処理のフローチャート
以下、本発明を実施するための最良の形態について図面を用いて説明する。
図1は、本発明の実施形態に適用される画像形成装置であるプリンタ100の構成を説明するハードウェアブロック図である。なお、本実施形態では画像形成装置単体の構成を用いて説明するが、ネットワークを介して接続させるホストコンピュータ上に多くの処理を分離実行させる構成も可能である。
コントローラユニット200は、画像信号やデバイス情報の入出力を制御する。CPU1は、ROM3あるいはHDD4に記憶されたプログラムをRAM2に読み出し、実行する。さらに、CPU1は、システムバス5に接続される各デバイスを統括的に制御する。CPU1は、内部に二つのコアを有するデュアルコアプロセッサであり、2つの制御プログラムを同時並列に実行可能である。
RAM2は、CPU1の主メモリ、ワークエリアとして機能する。ROM3には、電源ON時に実行されるブートプログラムが格納され、HDD4には、オペレーティングシステムと本装置の制御プログラム本体が格納される。また、HDD4は、画像データやプリントデータ等の大容量データを一時的あるいは長期的に保持する目的でも使用される。Network6は、ローカルエリアネットワーク13に接続し、印刷データやデバイス情報の入出力を担う。
操作部I/F7は、操作部14とのインターフェース部で、操作部14に表示する画像データを操作部14に対して出力する。また、操作部I/F7は、操作部14から本装置の使用者が入力した情報を、CPU1に伝える役割をする。操作部14は、出力器として液晶パネルと音源を備え、入力器としてタッチパネルとハードキーを備えるものである。コントローラユニット200は、デバイスI/F8を介して、プリンタエンジン15に接続される。デバイスI/F8は、CPU1の指示に基づき、画像信号の送出、デバイス動作指示、デバイス情報の受信を行う。プリンタエンジン15は、コントローラユニット200からの画像信号を媒体上に出力する出力機であり、電子写真方式、インクジェット方式の何れでも構わない。
Raster Image Processor(RIP)9は、ディスプレイリストをラスタイメージに展開する専用ハードウェアである。RIP9は、CPU1によりRAM2上に生成されたディスプレイリストを高速かつ、CPU1の実行と並列に、処理するものである。プリンタ画像処理部10は、プリント出力画像データに対して、画像補正、ハーフトーニング等を行う。画像回転部12は、画像データの回転を行う。画像圧伸部11は、多値画像データはJPEG、2値画像データはJBIG、MMR、MHの圧縮伸張処理を行う。
図2(A)は、本画像処理装置のソフトウェアモジュール構成図である。図2(A)に記載した各ソフトウェアモジュールは、プログラムとしてHDD4に格納され、RAM2にロードされCPU1により実行されるものである。より具体的には、各ソフトウェアモジュールはCPU1上で動作するOS(オペレーティングシステム)によりRAM2にロードされ、スレッド単位で実行権を付与され、実行されるものである。
データ受信部201は、ホストから送信されたプリントデータを受信し、受信したデータはジョブ制御部202を介してジョブデータ管理部208で保持される。ジョブ制御部202は、データ受信から印刷までのジョブ制御の全般を司る。PDLインタプリタ203は、プリントデータを解釈して、中間データであるディスプレイリストを生成する。生成されたディスプレイリストは、ジョブ制御部202を介してジョブデータ管理部208で保持される。レンダラ204は、ディスプレイリストからビットマップイメージを生成するモジュールであり、多くの処理は専用ハードウェアRIP9により実行される。
生成されたビットマップイメージは、ジョブ制御部202を介してジョブデータ管理部208で保持される。プリンタドライバ205は、デバイスI/F8を介してプリンタエンジンへの印刷指示とビットマップイメージの送出を行う。ユーザインターフェース206は、操作部I/F7を介して、操作部14を制御するモジュールである。主に操作部14の液晶パネルに表示するデータを生成し、タッチパネルからの入力に従い液晶パネルの表示を更新する。また、タッチパネルからの入力が何らかのジョブ実行指示であった場合は、ジョブ制御部202に指示を伝達する。ジョブデータ管理部208は、プリントデータ、ディスプレイリスト、ビットマップイメージのそれぞれを一時的もしくは長期的に保持管理するデータベースである。
図2(B)は、図2(A)のPDLインタプリタ203をより詳細に記したソフトウェアモジュール構成図である。PPMLインタプリタ209は、PPMLデータを解釈し、ディスプレイリストの生成を行う。PDFインタプリタ211は、PDFデータの解釈を行い、ディスプレイリストの生成を行う。PSインタプリタ212は、PSデータの解釈を行い、ディスプレイリストを生成する。キャッシュ制御部210は、描画オブジェクトをディスプレイリストの形式でキャッシュする。
PPMLインタプリタ209は、PPMLのコンテンツとして、PSもしくはPDFデータが指定されている場合は、ジョブ制御部202を介して、PDFインタプリタ211、もしくはPSインタプリタ212を起動する。PPMLインタプリタ209は、PPMLデータで描画オブジェクトの再利用が指示された場合は、キャッシュ制御部210と連動して描画オブジェクトの再利用を行う。
図3は、オブジェクト単位でのRIP処理である、オブジェクト並列処理を行う場合の1ページ分のPPMLデータをRIP処理する制御フローをあらわしたフローチャートである。なお、本説明では図2(A)および図2(B)の各ソフトウェアモジュールによって実行されるように記述する。また、本フローチャートは、HDD4に記憶された図2(A)および図2(B)の各ソフトウェアモジュール内の各プログラムがRAM2に読み出され、CPU1により実行されることにより実現される。
本フローチャートではスレッドA1、スレッドA2、スレッドCの三つのスレッドが並列に実行される。各スレッドはOSにより時分割され、CPU1内の二つのコアに順番に割り振られる。時分割の単位は十分に小さいため、三つのスレッドは並列動作すると見なすことができる。しかしながら、ある一時点に着目すると同時に実行されるスレッドは二つである。オペレーティングシステムによるマルチスレッディング処理は一般に広く知られる技術であるため、詳細は省略する。スレッドCがPPML処理のメインスレッドであり、スレッドA1、スレッドA2はスレッドCにより実行時に動的生成されるものである。
スレッドCでは最初にステップS1101において、PPMLインタプリタ209は、その時点でディスプレイリスト生成中の描画オブジェクトがあるか否か判定する。ページ処理開始当初はディスプレイリスト生成中の描画オブジェクトは存在しないため、Noとなる。Noの場合はステップS1102に進み、PPMLインタプリタ209はページ内の全描画オブジェクトのディスプレイリスト生成依頼が完了しているか判定する。後述するように、描画オブジェクトのディスプレイリスト生成処理は別スレッドに依頼して行う。
ページ処理開始当初は全描画オブジェクトのディスプレイリスト生成依頼は完了していないためNoとなる。Noの場合はステップS1103へ進み、PPMLインタプリタ209はPPMLデータを解釈して、描画オブジェクトを取りだす。ここで、描画オブジェクトはPPMLデータで定義されたローカルオブジェクトもしくはリユーサブルオブジェクトのいずれかを指すものである。
次にステップS1104へ進み、PPMLインタプリタ209は、描画オブジェクトがリユーサブルオブジェクトかつキャッシュ内に格納済みか判定する。Noの場合は、ステップS1105へ進み、PPMLインタプリタ209は描画オブジェクトに対応するPDLデータのディスプレイリスト生成依頼をジョブ制御部202に通知する。ここでジョブ制御部202は新たなスレッドAを生成し、当該PDLインタプリタにディスプレイリスト生成を実行させる。なお、図3ではスレッドA1、スレッドA2と二つのスレッドを図示しているが、スレッドは描画オブジェクトの数分だけ動的生成される。ただし、後述するように同時に実行されるスレッドは二つに限定するように制御されるため、便宜的にスレッドA1、スレッドA2と表記する。
ステップS1105の処理を完了すると、ステップS1101に戻る。ステップS1104でYesの場合は、ステップS1111に進み、PPMLインタプリタ209はキャッシュ制御部210を介してキャッシュされたディスプレイリストを取りだす。なお、ディスプレイリストのキャッシュはジョブ間、ページ間で破棄されないため、ページ処理開始直後でもキャッシュにヒットする可能性がある。次にステップS1102へ進み、PPMLインタプリタ209は描画オブジェクトのページ内でのレイアウトを考慮して、ディスプレイリストをページ用ディスプレイリストに合成する。次にステップS1113へ進み、PPMLインタプリタ209は1ページ分のディスプレイリスト生成が完了したか判定する。ここでNoの場合は、ステップS1101に戻り、処理を繰り返す。
ステップS1101でYesの場合は、ステップS1106へ進む。ステップS1101で、PPMLインタプリタ209はディスプレイリスト生成が完了していても、ステップS1112の処理が完了していない場合も含めて生成中と判定する。ステップS1106で、PPMLインタプリタ209はディスプレイリストの生成が完了した描画オブジェクトがあるか判定する。スレッドA1、スレッドA2のディスプレイリスト生成処理は非同期に並列実行されるため、どちらのケースも想定される。Noの場合はステップS1107へ進み、その時点でディスプレイリスト生成中の描画オブジェクトが二つか判定する。
ステップS1107でNoの場合はステップS1102へ進み、Yesの場合はステップS1108へ進む。ステップS1108では、PPMLインタプリタ209は、いずれかの描画オブジェクトのディスプレイリスト生成が完了するまで待つ。ここでは、スレッドA1もしくはA2との同期制御が行われ、スレッドA1もしくはA2の処理が完了すると次のステップS1109に進む。なお、ステップS1107で描画オブジェクト数の判定値を2としているのは、CPUコアが二つであることに対応している。さらに多数のCPUコアを有する実施形態では判定値をその数に合わせて変更すれば良い。
ステップS1106でYesの場合は、ステップS1109へ進む。ステップS1109で、PPMLインタプリタ209は当該描画オブジェクトがリユーサブルオブジェクトか否か判定する。Yesの場合はS1110へ進みPPMLインタプリタ209はキャッシュ制御部210を介して、生成してディスプレイリストをキャッシュに格納する。次にステップS1112へ進む。また、ステップS1109でNoの場合もステップS1112へ進む。
ステップS1102でYesの場合は、ステップS1108へ進む。この制御フローは、全ての描画オブジェクトのディスプレイリスト生成依頼が完了し、スレッドA1もしくはA2での処理待ちの状態になった際に発生する。最後にステップS1113でYesの場合はステップS1114へ進み、PPMLインタプリタ209はレンダリングを行い、そしてビットマップを生成する。
スレッドA1、スレッドA2のステップS1201において、PSインタプリタ212もしくはPDFインタプリタ211は当該描画オブジェクトに対応するPDLデータを解釈する。そして、PSインタプリタ212もしくはPDFインタプリタ211は当該描画オブジェクトに対応するディスプレイリストを生成する。これにより、描画オブジェクト単位で、RIP処理が行われることとなる。PSインタプリタ212もしくはPDFインタプリタ211はリエントラントな構成となっており、同時に二つのPSデータもしくは二つのPDFデータを処理することが可能である。スレッドA1、スレッドA2の処理時間は解釈するPDLデータの量と複雑度に大きく依存するため、終了タイミングは事前に予測できない。
図4は、ページ単位でのRIP処理である、ページ並列処理を行う場合のPPMLデータをRIP処理する制御フローをあらわしたフローチャートである。なお、本説明では図2(A)および図2(B)の各ソフトウェアモジュールによって実行されるように記述する。また、本フローチャートはHDD4に記憶された図2(A)および図2(B)の各ソフトウェアモジュール内の各プログラムがRAM2に読み出され、CPU1により実行されることにより実現される。
本フローチャートではスレッドB1、スレッドB2、スレッドCの三つのスレッドが並列に実行される。各スレッドはOSにより時分割され、CPU1内の二つのコアに順番に割り振られる。時分割の単位は十分に小さいため、三つのスレッドは並列動作すると見なすことができる。しかしながら、ある一時点に着目すると同時に実行されるスレッドは二つである。オペレーティングシステムによるマルチスレッディング処理は一般に広く知られる技術であるため、詳細は省略する。スレッドCがPPML処理のメインスレッドであり、スレッドB1、スレッドB2はスレッドCにより実行時に動的生成されるものである。
スレッドCでは最初にステップS1301において、PPMLインタプリタ209はディスプレイリストの生成が完了したページがあるか判定する。図4のフローを開始した当初はディスプレイリストの生成は完了していないので、Noとなる。Noの場合はステップS1302へ進み、PPMLインタプリタ209は全ページのディスプレイリスト生成依頼が完了したか判定する。後述するように、各ページのディスプレイリスト生成処理は別スレッドに依頼して行う。
図4のフローを開始した当初は全ページのディスプレイリスト生成依頼は完了していないためNoとなる。Noの場合はステップS1303へ進み、PPMLインタプリタ209はPPMLデータを解釈して、次のページを取りだす。そして、ステップS1304へ進み、その時点でディスプレイリスト生成依頼中のページは二つか否か判定する。Noの場合はステップS1306へ進み、PPMLインタプリタ209はページに対応するPPMLデータのディスプレイリスト生成依頼をジョブ制御部202に通知する。ここでジョブ制御部202は新たなスレッドBを生成し、PPMLインタプリタ209にディスプレイリスト生成を実行させる。
ステップS1304でYesの場合は、ステップS1305へ進み、PPMLインタプリタ209はいずれかのページのディスプレイリスト生成処理が完了するまで待つ。なお、図4ではスレッドB1、スレッドB2と二つのスレッドを図示しているが、スレッドはページの数分だけ動的生成される。ただし、ステップS1304、ステップS1305の制御により同時に実行されるスレッドは二つに限定されるため、便宜的にスレッドB1、スレッドB2と表記する。
ステップS1305では、スレッドB1もしくはB2との同期制御が行われ、スレッドB1もしくはB2の処理が完了すると次のステップS1306に進む。なお、ステップS1304でページ数の判定値を2としているのは、CPUコアが二つであることに対応している。さらに多数のCPUコアを有する実施形態では判定値をその数に合わせて変更すれば良い。ステップS1306の処理が終了すると、ステップS1301へ戻り、処理を繰り返す。
ステップS1301でYesの場合はステップS1308へ進み、PPMLインタプリタ209はレンダリングを行い、そしてビットマップを生成する。次にステップS1309へ進み、PPMLインタプリタ209は全ページのレンダリングが完了したか判定する。Yesの場合は、図4のフローを終了する。Noの場合は、ステップS1301へ戻り、処理を繰り返す。ステップS1302でYesの場合はステップS1307へ進み、PPMLインタプリタ209はいずれかのページのディスプレイリスト生成が完了するまで待つ。この制御フローは、全てのページのディスプレイリスト生成依頼が完了し、スレッドB1もしくはB2での処理待ちの状態になった際に発生する。
スレッドB1、スレッドB2のステップS1401において、PPMLインタプリタ209は当該描画オブジェクトに対応するPDLデータを解釈し、ディスプレイリストを生成する。PPMLインタプリタ209のディスプレイリスト生成処理はリエントラントな構成となっており、同時に二つのPPMLデータを処理することが可能である。スレッドA1、スレッドA2の処理時間は解釈するPDLデータ(PPMLとPSもしくはPDF)の量と複雑度に大きく依存するため、終了タイミングは事前に予測できない。
図5はページ並列処理時の各ページのディスプレイリスト生成処理を示したもので、図4のステップS1401を詳細化したものである。なお、本説明では図2(A)および図2(B)の各ソフトウェアモジュールによって実行されるように記述する。また、本フローチャートはHDD4に記憶された図2(A)および図2(B)の各ソフトウェアモジュール内の各プログラムがRAM2に読み出され、CPU1により実行されることにより実現される。
最初にステップS1501でPPMLインタプリタ209はPPMLデータを解釈して、描画オブジェクトを取りだす。ここで、描画オブジェクトはPPMLデータで定義されたローカルオブジェクトもしくはリユーサブルオブジェクトのいずれかを指すものである。次に、ステップS1502に進み、PPMLインタプリタ209は描画オブジェクトがリユーサブルオブジェクトか否か判定する。
Noの場合はステップS1503へ進み、PPMLインタプリタ209は描画オブジェクトに対応するPDLデータのディスプレイリスト生成処理をジョブ制御部202に依頼する。ジョブ制御部202は、PDL種に応じて、PSインタプリタ212もしくはPDFインタプリタ211にディスプレイリスト生成処理を実行させる。PSインタプリタ212もしくはPDFインタプリタ211は当該描画オブジェクトに対応するPDLデータを解釈する。そして、PSインタプリタ212もしくはPDFインタプリタ211は当該描画オブジェクトに対応するディスプレイリストを生成する。
ステップS1502でYesの場合はステップS1504へ進み、当該描画オブジェクトのディスプレイリストがキャッシュ内に格納済みか否か判定する。Yesの場合はステップS1507へ進み、PPMLインタプリタ209はキャッシュ制御部210を介してキャッシュから当該描画オブジェクトのディスプレイリストを取りだす。ステップS1504でNoの場合は、ステップS1505へ進む。
ステップS1505で、PPMLインタプリタ209、ジョブ制御部202、PSインタプリタ212、PDFインタプリタ211は連携して、当該描画オブジェクトに対応するディスプレイリストを生成する。ステップS1505の処理は、ステップS1503と同様である。次にステップS1506へ進み、PPMLインタプリタ209はキャッシュ制御部210を介して当該描画オブジェクトのディスプレイリストをキャッシュに格納する。
ステップS1503、ステップS1506、ステップS1507の処理が終了すると、いずれもステップS1508へ進む。ステップS1508で、PPMLインタプリタ209は描画オブジェクトのページ内でのレイアウトを考慮して、ディスプレイリストをページ用ディスプレイリストに合成する。次にステップS1509へ進み、PPMLインタプリタ209は1ページ分の処理が完了したか判定する。Yesの場合は、図5のフローを終了する。Noの場合は、ステップS1501へ戻り、処理を繰り返す。
図6はPPML処理における、オブジェクト並列処理とページ並列処理を組み合わせたハイブリッド並列処理を示すフローチャートである。なお、本説明では図2(A)および(B)の各ソフトウェアモジュールによって実行されるように記述する。また、本フローチャートはHDD4に記憶された図2(A)および(B)の各ソフトウェアモジュール内の各プログラムがRAM2に読み出され、CPU1により実行されることにより実現される。
ステップS1601で、PPMLインタプリタ209はPPMLデータを解釈して次のページを取りだす。次に、ステップS1602へ進み、PPMLインタプリタ209は当該ページをオブジェクト並列処理でRIPする。ステップS1602の詳細は図3で示したフローチャートが該当する。
次にステップS1603へ進み、PPMLインタプリタ209は当該ページに含まれるリユーサブルオブジェクトのキャッシュヒット率を計数し取得する。なお、キャッシュヒット率とは、ページで使用されるリユーザブルオブジェクトのうち、すでにディスプレイリストが生成され、キャッシュされているリユーザブルオブジェクトの割合を示す。例えば、ページに10個のリユーザブルオブジェクトが含まれており、該ページのRIP時にすでに6個のリユーザブルオブジェクトがキャッシュされていた場合には、キャッシュヒット率は0.6(60%)となる。
次に、ステップS1604へ進み、PPMLインタプリタ209は当該ページの描画オブジェクト数を計数して、以下の式によりオブジェクト分割度数を算出する。
R1=S/Ss
(R1:オブジェクト分割度数、S:当該ページの描画オブジェクト数、Ss:基準値Ss)
ここで、描画オブジェクト数は当該ページで定義されたローカルオブジェクト数とリユーサブルオブジェクト数の総和となる。即ち、オブジェクト分割度数はページおけるオブジェクト数が多いか少ないかを示す度数となる。PPMLデータ上で定義される描画オブジェクトをどの程度分割するかは、PPMLデータを生成するVDPアプリケーションに大きく依存する。
次に、ステップS1605へ進み、PPMLインタプリタ209はページ並列移行しきい値を以下の式により調整する。
T=Square(R1)×Ts
(T:ページ並列移行しきい値、R1:オブジェクト分割度数、Ts:ページ並列移行しきい値の基準値、Square():平方根を求める関数)
この式により、ページ並列移行しきい値は描画オブジェクト数が多いデータではその値が大きくなるように調整される。描画オブジェクト数が少ないデータではその値が小さくなるように調整される。
次にステップS1606へ進み、PPMLインタプリタ209は当該ページのキャッシュヒット率がページ並列移行しきい値以上か否か判定する。Noの場合、即ちキャッシュヒット率がページ並列移行しきい値未満の場合はステップS1607へ進み、PPMLインタプリタ209は未処理のページが残っているか判定する。Noの場合は、図6のフローを終了する。Yesの場合はステップS1601へ戻り、オブジェクト並列処理を繰り返す。即ち、S1605におけるしきい値調整により、描画オブジェクト数が多いデータではオブジェクト並列処理を繰り返す可能性が高まる。逆に描画オブジェクト数が少ないデータではオブジェクト並列処理は早めに断念する可能性が高まる。これは、ページあたりの描画オブジェクト数が多いデータほどオブジェクト並列処理に向いており、オブジェクト並列処理のメリットを享受することが可能なためである。
ステップS1606でYesの場合はステップS1608へ進み、PPMLインタプリタ209はまだ未処理のページが残っているか否か判定する。Noの場合は、図6のフローを終了する。Yesの場合は、ステップS1609へ進み、PPMLインタプリタ209は次のページ以降をページ並列処理でRIPする。ステップS1609の詳細は図4で示したフローチャートが該当する。
以上の通り、本実施形態におけるハイブリッド並列処理では、先頭ページからリユーサブルオブジェクトのキャッシュヒット率が低いうちは、オブジェクト並列処理を実行し、ヒット率が高くなるとページ並列処理に移行するよう処理制御する。即ち、オブジェクト並列処理とページ並列処理の長所を併せ持つ、効率的な並列処理が可能となり、VDPジョブのRIP性能をより高めることが可能となる。
以上、本発明の実施例について具体例を挙げて説明したが、本発明は上記の実施例に限定されるものではない。また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
201 データ受信部
202 ジョブ制御部
203 PDLインタプリタ
204 レンダラ
205 プリンタドライバ
206 ユーザインターフェース
207 ジョブデータ管理部
209 PPMLインタプリタ
210 キャッシュ制御部
211 PDFインタプリタ
212 PSインタプリタ

Claims (7)

  1. ジョブ内で再利用される描画オブジェクトを含む印刷データの画像データを生成する画像形成装置であって、
    前記再利用される描画オブジェクトからディスプレイリストを生成して、生成されたディスプレイリストをキャッシュするキャッシュ手段と、
    前記印刷データの各ページを描画オブジェクト単位で分割して並列にRIP処理を行うオブジェクト並列処理手段と、
    前記印刷データをページ単位で分割して並列にRIP処理を行うページ並列処理手段と、
    前記印刷データにおいて、ページ内に含まれる前記再利用される描画オブジェクトのうち、前記キャッシュ手段によりディスプレイリストとしてキャッシュされた描画オブジェクトの割合を示すキャッシュヒット率を取得する取得手段と、
    前記印刷データの先頭ページから順番に前記オブジェクト並列処理手段により処理し、前記取得手段により取得されたキャッシュヒット率が所定のしきい値以上になったページ以降のページをページ並列処理手段により処理する処理制御手段とを有することを特徴とする画像形成装置。
  2. 前記オブジェクト並列処理手段は、前記オブジェクト並列処理におるオブジェクトの分割を前記印刷データで指定されるオブジェクト単位で行うことを特徴とする請求項1に記載の画像形成装置。
  3. 前記印刷データはPPMLデータであることを特徴とする請求項2に記載の画像形成装置。
  4. 前記印刷データにおける1ページあたりのオブジェクト数により、前記ページ並列処理を開始する基準となるしきい値を調整する調整手段を有することを特徴とする請求項1乃至3いずれか1項に記載の画像形成装置。
  5. 前記調整手段は、前記オブジェクト数が多いほど、前記ページ並列処理を開始する基準となるしきい値を大きくし、前記オブジェクト数が少ないほど、前記ページ並列処理を開始する基準となるしきい値を小さくするように調整することを特徴とする請求項4に記載の画像形成装置。
  6. ジョブ内で再利用される描画オブジェクトを含む印刷データの画像データを生成する画像形成装置の制御方法であって、
    前記再利用される描画オブジェクトからディスプレイリストを生成して、生成されたディスプレイリストをキャッシュするキャッシュ工程と、
    前記印刷データの各ページを描画オブジェクト単位で分割して並列にRIP処理を行うオブジェクト並列処理工程と、
    前記印刷データをページ単位で分割して並列にRIP処理を行うページ並列処理工程と、
    前記印刷データにおいて、ページ内に含まれる前記再利用される描画オブジェクトのうち、前記キャッシュ工程でディスプレイリストとしてキャッシュされた描画オブジェクトの割合を示すキャッシュヒット率を取得する取得工程と、
    前記印刷データの先頭ページから順番に前記オブジェクト並列処理工程により処理し、前記取得工程で取得されたキャッシュヒット率が所定のしきい値以上になったページ以降のページをページ並列処理工程により処理することを特徴とする画像形成装置の制御方法。
  7. 請求項6に記載の画像形成装置の制御方法に含まれる各工程をコンピュータに実行させるためのプログラム。
JP2011036058A 2011-02-22 2011-02-22 画像形成装置、画像形成装置の制御方法、プログラム Withdrawn JP2012171239A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011036058A JP2012171239A (ja) 2011-02-22 2011-02-22 画像形成装置、画像形成装置の制御方法、プログラム
US13/370,566 US8792122B2 (en) 2011-02-22 2012-02-10 Image forming apparatus, method for controlling image forming apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011036058A JP2012171239A (ja) 2011-02-22 2011-02-22 画像形成装置、画像形成装置の制御方法、プログラム

Publications (1)

Publication Number Publication Date
JP2012171239A true JP2012171239A (ja) 2012-09-10

Family

ID=46652489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011036058A Withdrawn JP2012171239A (ja) 2011-02-22 2011-02-22 画像形成装置、画像形成装置の制御方法、プログラム

Country Status (2)

Country Link
US (1) US8792122B2 (ja)
JP (1) JP2012171239A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013075487A (ja) * 2011-09-30 2013-04-25 Seiko Epson Corp 印刷装置およびその制御方法
JP2016007848A (ja) * 2014-06-26 2016-01-18 キヤノン株式会社 制御装置、処理方法及ぶプログラム
JP7380335B2 (ja) 2020-03-03 2023-11-15 京セラドキュメントソリューションズ株式会社 画像処理装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885997B (zh) * 2012-12-24 2018-10-02 腾讯科技(深圳)有限公司 动态页面信息展示方法和动态页面信息展示系统
DE102015105818B4 (de) * 2015-04-16 2017-11-02 Océ Printing Systems GmbH & Co. KG Verfahren zum visuellen Überprüfen eines in einer Druckdatensprache vorliegenden Druckdatenstroms
JP6996884B2 (ja) * 2017-07-06 2022-01-17 株式会社東芝 画像処理装置、画像処理方法及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6441919B1 (en) * 1998-09-02 2002-08-27 Adobe Systems Incorporated Integrated rendering and compositing in variable printing
JP5003510B2 (ja) 2008-01-25 2012-08-15 富士ゼロックス株式会社 画像処理装置、印刷システム、およびプログラム
JP5132347B2 (ja) * 2008-02-13 2013-01-30 キヤノン株式会社 画像処理システム
JP4753105B2 (ja) * 2009-03-19 2011-08-24 富士ゼロックス株式会社 描画処理装置、画像出力装置、プログラム
JP5655392B2 (ja) * 2010-06-23 2015-01-21 富士ゼロックス株式会社 印刷画像処理装置及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013075487A (ja) * 2011-09-30 2013-04-25 Seiko Epson Corp 印刷装置およびその制御方法
JP2016007848A (ja) * 2014-06-26 2016-01-18 キヤノン株式会社 制御装置、処理方法及ぶプログラム
JP7380335B2 (ja) 2020-03-03 2023-11-15 京セラドキュメントソリューションズ株式会社 画像処理装置

Also Published As

Publication number Publication date
US20120212782A1 (en) 2012-08-23
US8792122B2 (en) 2014-07-29

Similar Documents

Publication Publication Date Title
JP2012171239A (ja) 画像形成装置、画像形成装置の制御方法、プログラム
JP5654806B2 (ja) サーバシステムとプリント装置及びそれらを有するネットワーク印刷システムとそれらにおける方法
US8861014B2 (en) Systems and methods for optimized printer throughput in a multi-core environment
US8953214B2 (en) Print control method, information processing apparatus, and recording medium
WO2011048771A1 (en) Image processing apparatus, image processing method, and program
US8649032B2 (en) Image processing apparatus, image processing method, and storage medium
US8194280B2 (en) Direct printing of a desired or multiple appearances of object in a document file
JP2012240344A (ja) 印刷データ処理装置、印刷データ処理方法及びプログラム
JP2012148429A (ja) 印刷データ処理装置、キャッシュ処理方法及びプログラム
US9886778B2 (en) Information processing apparatus, information processing method, and program
JP6748445B2 (ja) 画像形成装置、画像形成装置の制御方法、および、プログラム
JP2019025801A (ja) 印刷システム、印刷装置とその制御方法、及びプログラム
US8743404B2 (en) Image forming apparatus, information processing method, and storage medium
CN102681800B (zh) 图像处理装置及信息处理方法
JP2013001059A (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
JP2013222265A (ja) 情報処理装置、プログラム、およびプログラムが記録された記録媒体
JP2013119242A (ja) 画像形成装置、画像形成方法、およびプログラム
JP6471660B2 (ja) 情報処理装置及びプログラム
JP2018144372A (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
JP5299469B2 (ja) 画像表示装置及び画像表示システム並びに画像表示制御プログラム
JP6185745B2 (ja) 印刷制御装置、印刷制御方法、およびプログラム
JP2011113231A (ja) 画像形成装置
JP2016095570A (ja) 情報処理装置、当該情報処理装置を備える画像形成装置、情報処理方法、および、当該情報処理方法をコンピュータに実現させるためのプログラム
JP5759511B2 (ja) 描画命令を処理する装置、方法及びプログラム
JP2004272485A (ja) 画像形成システム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140513