JP5430319B2 - 印刷データ処理装置、印刷データ処理方法、プログラム - Google Patents

印刷データ処理装置、印刷データ処理方法、プログラム Download PDF

Info

Publication number
JP5430319B2
JP5430319B2 JP2009219222A JP2009219222A JP5430319B2 JP 5430319 B2 JP5430319 B2 JP 5430319B2 JP 2009219222 A JP2009219222 A JP 2009219222A JP 2009219222 A JP2009219222 A JP 2009219222A JP 5430319 B2 JP5430319 B2 JP 5430319B2
Authority
JP
Japan
Prior art keywords
print data
processor
page
program
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.)
Expired - Fee Related
Application number
JP2009219222A
Other languages
English (en)
Other versions
JP2011067980A (ja
Inventor
修司 小澤
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 JP2009219222A priority Critical patent/JP5430319B2/ja
Priority to US12/887,033 priority patent/US8368937B2/en
Publication of JP2011067980A publication Critical patent/JP2011067980A/ja
Application granted granted Critical
Publication of JP5430319B2 publication Critical patent/JP5430319B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1215Improving printing performance achieving increased printing speed, i.e. reducing the time between printing start and printing end
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/124Parallel printing or parallel ripping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Record Information Processing For Printing (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Image Processing (AREA)

Description

本発明はマルチプロセッサを搭載した印刷データ処理装置におけるプリンティング処理に関連するものである。
消費電力や動作温度を抑えるためにプロセッサの動作クロックを上昇させるよりも、低クロックのマルチプロセッサを用いて並列化し処理速度を上げる方法が取られる。近年では、画像形成装置(例えば、複写機やプリンタ等)にマルチプロセッサを搭載し、コピー及びプリント等のプリンティング処理をよりストレス無く処理させるようになってきている。
特許文献1には、プリンティング処理が可能な画像形成装置において、マルチプロセッサを用いて印刷データを並列処理することによりプリンティングの処理を高速化する方法が開示されている。
特開2007−152623
しかしながら、マルチプロセッサを用いた画像形成装置において、プリンティング処理の高速化を行うとプリンティング処理がマルチプロセッサを占有してしまう可能性がある。
画像形成装置のマルチプロセッサを占有したプリンティング処理は、次のような状況を誘発することがある。その状況とは、例えば、プリンティング中の画像形成装置のユーザインターフェース動作が不安定になってユーザからのプリンティングのキャンセル指示を受け付けることができない、または、キャンセル制御が遅くなると言った状況である。
そこで、本発明ではマルチプロセッサを搭載した画像形成装置において、マルチプロセッサを用いてプリンティング処理の並列処理を行わせつつ、プリンティングとは異なる処理も実行させることを目的とする。
本発明の一実施形態に係る装置は、印刷データを読み込み、読み込んだ印刷データに対して印刷データ処理を実行する第1のプロセッサと、印刷データを読み込み、読み込んだ印刷データに対して印刷データ処理を実行する第2のプロセッサとを有し、印刷データ処理を実行している前記第2のプロセッサは、所定量の印刷データを印刷データ処理するとウェイトが入り印刷データ処理とは異なる処理の実行が可能になり、印刷データ処理とは異なる処理の指示があった場合、印刷データ処理とは異なる処理を実行し、ウェイトが解除されると印刷データ処理を実行し、前記第1のプロセッサは印刷データ処理のみ実行し、かつ、前記第1のプロセッサは印刷データの中で印刷データ処理が行われていない最も早いページである先頭ページの印刷データを読み込み、読み込んだ先頭ページの印刷データに対して印刷データ処理を実行し、前記第2のプロセッサは先頭ページの次のページである2ページ目の印刷データを読み込み、読み込んだ2ページ目の印刷データに対して印刷データ処理を実行することを特徴とする。
ユーザインターフェースや画像処理等の処理の阻害を軽減させつつ、プリンティング処理をより高速に行うことができる。
ページを並列処理する画像形成装置の全体フロー図。 ページを並列処理する画像形成装置のハード構成図。 マルチプロセッサによるPDL処理プログラムのウェイト決定の一例を示す図。 PDL処理プログラムがプロセッサ間で移動する様子を現す図。 プログラムが動作するためのリソース関係図。 シングルプロセッサによるPDL処理プログラムのウェイト決定の一例を示す図。 画像形成装置のUI画面図。 ウェイトコントロールプログラムのフローチャート。 オブジェクトを並列処理する画像形成装置の全体フロー図 オブジェクト並列時の各プロセッサのタイムチャート。 夫々のウェイトが入ったプロセッサの処理状況図。
以下、本発明を実施するための最良の形態について図面を用いて説明する。
図1および図2は印刷データ処理装置である画像形成装置において行われるプリンティング処理全体の流れを説明する。なお、プリンティング処理とは、受信したPDLや汎用文書(例えば、PDF)を基に画像形成を行い印刷または一時保存する一連の処理のことである。しかし、プリンティング処理に一部の処理が存在しなくとも良い。例えば、受信したPDLや汎用文書を基に画像形成を行うまでの過程もプリンティング処理と呼べるが、本発明においては、印刷データ処理と呼称する。
図1に示すアプリケーションプログラム以外のプログラムは、全て図2のROM206に格納されており、画像形成装置が起動するときにRAM207上に展開され、プロセッサ1(203)またはプロセッサ2(204)によって実行される。また、プロセッサ1およびプロセッサ2以外の第3のプロセッサに実行させても良い。入力インターフェースプログラム101は、外部メモリ(USBメモリ等)やホストPCからネットワークを通じてPDLデータや電子文書(以下、印刷データと呼称する。)が送信されてきた場合、印刷データを印刷データスプール110(RAM207またはHDD208内の領域)に格納する。
印刷データの送信は、外部インターフェースハード201によって検知され、外部インターフェースプログラム101へ通知される。また、入力インターフェースプログラム101は、UIハード202によってHDD208に保存された印刷データの印刷を指示された場合、それらの印刷データを印刷データスプール110に格納する。1つの印刷データには複数のページが含まれている。なお、UIはUser Interfaceの略語である。
入力インターフェースプログラム101を実行したプロセッサは、上記格納処理とともにウェイトコントロールプログラム104に印刷データが送られてきたことを通知する。ウェイトコントロールプログラム104を実行したプロセッサは、入力インターフェースプログラム101から印刷データが送られてきたことを確認する。ウェイトコントロールプログラム104を実行したプロセッサは、UIプログラム102、アプリケーションプログラム103、画像スプール108、PDL処理部105の状態を判断する。
ウェイトコントロールプログラム104を実行したプロセッサは、上述の判断の結果に応じて、UIプログラム102、アプリケーションプログラム103等の動作を妨げないようにする。具体的には、PDL処理部105に含まれる各プログラムを最適な状態でマルチプロセッサ(203および204)上で起動させる。なお、プロセッサ203を第1のプロセッサ、プロセッサ204を第2のプロセッサとする。
本発明において、画像形成装置はプロセッサ1(203)とプロセッサ2(204)との2つのプロセッサを搭載するH/W構成を持つ。そのため、ウェイトコントロールプログラム104は、PDLデータ入力プログラム106およびPDL処理プログラム(印刷データ処理プログラム)107をそれぞれ2つ同時に起動させることができる。
UIハード202は、操作パネルと操作画面とで構成され、ユーザは操作画面を見ながら操作パネルを用いて所定の入力を行う。UIハード202からのユーザの入力はUIプログラム102に伝えられ、操作内容の解釈および解釈結果から求められる必要な処理が実行される。
アプリケーションプログラム103は、画像形成装置に最初から搭載されているプログラムにユーザが独自のプログラムを追加するものである。例えば、高画質化のために色変換プログラムやトラッピングプログラムなどを追加出来る。アプリケーションプログラム103は、ユーザが作成し、ネットワークや外部メモリ等から画像形成装置のHDD206に保存する。HDD206に保存されたアプリケーションプログラム103は、HDD206に保存された直後や次の起動時にRAM207に展開され実行される。
PDLデータ入力プログラム106を実行したプロセッサは、印刷データスプール110から印刷データを読み込みPDL処理プログラム107を実行するプロセッサに渡す。PDLデータ入力プログラム106は、一回の読み込みできるデータ量の上限を持っており、1ページのPDLデータを読み込むためには複数回の読み込みを必要とする。PDLデータ入力プログラム106の一回の読み込みの開始時または終了時にウェイトを入れることによりPDL処理プログラム107の処理速度を調整する。ウェイトの長さはウェイト時間と一回に読み込めるデータ量の上限によって調整できる。
ウェイト時間が長く一回に読み込めるデータ量の上限が低ければ、プロセッサは頻繁にPDL処理プログラム107が停止する。そのため、UIプログラム102やアプリケーションプログラム103は動作し易くなるが、PDL処理プログラム107の動作は低速になる。逆にウェイト無しや、ウェイトが短く一回に読み込めるデータ量の上限が高ければ、プロセッサはPDL処理プログラム107を頻繁に動作する。そのため、UIプログラム102やアプリケーションプログラム103は動作し難く、PDL処理プログラム107の動作は高速になる。
PDL処理プログラム107は、印刷データから1ページ分を解釈し、画像イメージを形成し、画像イメージを画像スプール108(RAM207またはHDD208の領域)に格納する。画像スプール108に格納された画像イメージは、プリンタエンジン111(209)に送られ印刷される。セキュアプリント等が指定されている場合、印刷データ処理され画像形成された画像データは、画像スプール108から即時にプリンタエンジン111(209)に送られない。画像データは、UIプログラム102からの指示を受けてから印刷される。
図3から図6を用いてウェイトコントロールプログラム104が、PDLデータ入力プログラム106とPDL処理プログラム107をどのように起動するかについて説明する。起動は、UIプログラム102、アプリケーションプログラム103、画像スプール108、PDL処理部105の状態を基にしている。
本発明において、ウェイトコントロールプログラム104、外部インターフェースプログラム101、プリンタインターフェースプログラム109は、その他のプログラムに対して処理が軽微であるとし、プロセッサ2(204)で実行されているものとする。なお、プロセッサ2(204)以外のプロセッサに実行させても良いが、プロセッサ1に実行させた場合、プロセッサ1のPDL処理が低速になる。図3は、PDLデータ入力プログラム106とPDL処理プログラム107をマルチプロセッサで(203、204)実際にページ並列で動作させる方法について示している。
ここで、PDLデータ入力プログラム106を実行したプロセッサがどのように動作するかについて説明する。始めに、PDLデータ入力プログラムについて説明する。PDLデータ入力プログラムには幾つかの種類があり、例えば、図1に示すPDLデータ入力プログラム106には、ウェイトなし、ウェイト小、ウェイト大という3種類のPDLデータ入力プログラムが存在する。この3種類のPDLデータ入力プログラムをプロセッサが実行すれば、プロセッサがPDL処理とは異なる処理を実行可能になる時間と、プロセッサが一回に読み込む印刷データ量とを調整することができる。これについて詳細に説明する。
始めに、プロセッサがPDL処理を実行しない時間について説明する。プロセッサが実行しているPDL処理プログラムを停止させる方法としてウェイトを入れるという方法がある。ウェイトが入ったプロセッサは、PDL処理から開放されるのでPDL処理とは異なる処理にリソースを割り当てることができる。そして、PDL処理から開放される時間、すなわち、ウェイト時間を延ばせばその分だけPDL処理とは異なる処理を実行可能になる時間が長くなる。図1に示す3種類のPDLデータ入力プログラムは、このPDL処理とは異なる処理を実行可能になる時間が夫々異なるのである。具体的に、ウェイトなしは、プロセッサにウェイトが入らないのでPDL処理以外の処理を実行しない。よって、ウェイトなしは、PDL処理から開放されるまで印刷データ処理とは異なる処理を実行できない。また、ウェイト小は、ウェイト大と比較してPDL処理から開放されている時間は少ない。よって、ウェイト小は、ウェイト大と比較してPDL処理とは異なる処理が実行可能になる時間が少ない。以上から、PDL処理とは異なる処理を実行可能な時間を不等式で表すと、ウェイト大>ウェイト小>ウェイトなしという関係が成り立つ。
次に、プロセッサが一回で印刷データ処理する印刷データ量について説明する。図1に示す3種類のPDLデータ入力プログラムは、一回で印刷データ処理する印刷データ量が夫々異なる。ウェイト小は、ウェイトなしと比較して一回で印刷データ処理する印刷データ量が少ない。また、ウェイト大は、ウェイト小と比較して一回で印刷データ処理する印刷データ量が少ない。夫々のウェイトが入ったプロセッサが一回で印刷データ処理する印刷データ量の関係を不等式で表すと、ウェイトなし>ウェイト小>ウェイト大という関係が成り立つ。
次に、夫々のウェイトが入ったプロセッサの動作について図11を参照しながら説明する。図11は、図1に示す3種類のPDLデータ入力プログラムを実行したプロセッサが、印刷データ処理と、印刷データ処理とは異なる処理との両方の処理をどのように実行したかを示す一例である。なお、図11は、1msecで1MbyteのPDLデータ量が処理されているとする。
図11のウェイトなしのPDLデータ入力プログラムを実行したプロセッサは、200[msec]かけて200Mbyteの印刷データ量を印刷データ処理しており、印刷データ処理とは異なる処理を行っていない。図11のウェイト小のPDLデータ入力プログラムを実行したプロセッサは、一回の印刷データ処理で30Mbyteの印刷データ量を印刷データ処理している。よって、ウェイト小のPDLデータ入力プログラムを実行したプロセッサは、200[msec]の内の120[msec]をかけて合計120Mbyteの印刷データ量を印刷データ処理している。また、ウェイト小のPDLデータ入力プログラムを実行したプロセッサは、残りの80[msec]で印刷データ処理とは異なる処理をしている。図11のウェイト大のPDLデータ入力プログラムを実行したプロセッサは、一回の印刷データ処理で10Mbyteの印刷データ量を印刷データ処理している。よって、ウェイト大のPDLデータ入力プログラムを実行したプロセッサは、200[msec]の内の40[msec]をかけて合計40Mbyteの印刷データ量を印刷データ処理している。また、ウェイト大のPDLデータ入力プログラムを実行したプロセッサは、残りの160[msec]で印刷データ処理とは異なる処理を実行している。
このように、ウェイトを入れることでプロセッサが一回にPDL処理する印刷データ量を調整する。印刷データ量を調整することで、プロセッサが印刷データ処理とは異なる処理を実行可能にする時間を増減させることができる。また、プロセッサが印刷データ処理を終えた後、次に印刷データ処理を行うタイミングを調整することで、印刷データ処理とは異なる処理が実行可能になる時間を増減させることができる。
なお、印刷データ処理を終え、印刷データ処理とは異なる処理を実行可能になるタイミングを第1のタイミング、第1のタイミングの後のウェイトが解除されてPDL処理を実行するタイミングを第2のタイミングと呼称する。例えば、図11のウェイト小の第1のタイミングは30Mbyteの印刷データ量をPDL処理し終えたタイミングのことであり、ウェイト小の第2のタイミングは第1のタイミングの後から20[msec]経ったタイミングのことを指す。
図3(a)は、UIプログラム300がUIハード202からの指示待ち状態で、アプリケーションプログラムは動作していない状態を想定している。この場合、ウェイトコントロールプログラム307は、先頭のページ(印刷データに含まれる画像データ生成済みで無いページ中でページ番号が最も早いページ)をPDL処理プログラム1(303)に担当させて動作させる。なぜなら、先頭ページの印刷データ処理は高速に処理しないとプリンタインターフェース109の処理が滞ってしまい印刷を停止させてしまうからである。そのため、ウェイトコントロールプログラム307は、PDL処理プログラム1(303)を高速に動作させる必要があるので、PDLデータ入力プログラム(ウェイトなし)301と組み合わせて、プロセッサ1(305)で動作させる。
2ページ目は先頭ページの処理の間にある程度の処理が進んでいれば良いため、高速に画像データの生成をする必要はない。ウェイトコントロールプログラム307は、PDL処理プログラム2(304)に2ページ目を担当させて、UIプログラム300が即座に動作開始できるようにする。そのために、PDLデータ入力プログラム(ウェイト小)301と組み合わせてプロセッサ2(306)で動作させる。ウェイトコントロールプログラム307は、UIプログラム300をUIハード202からの指示のみを待つ状態でプロセッサ2(306)上で動作させる。
このように、UIプログラム300が何時でも動作できるようにするのには理由がある。それは、ユーザの中には次の様な状況で不満を感じたり、不安を抱くユーザもいるからである。ユーザがUIハード202を操作した際、UIプログラム300が即座に動作せずにUIハード202の操作画面がフリーズしてしまった。ユーザは早く次の仕事を画像形成装置に実行させたいのに、操作画面はフリーズしており操作できない。この状況に対してユーザは不満を感じるであろう。また、フリーズ時間が長期化し、画像形成装置が故障したとユーザが勘違いしてしまった。ユーザはこの状況に不安を抱くであろう。このような問題を解決するためにも、UIプログラムを実行可能な状態にすることは重要なのである。特に、この状況が顕著に現れるのは、タスク優先順を持たない単純なタイムスレッドで処理するオペレーティングシステムを用いてる画像形成装置である。
図3(b)は、UIハード202をユーザが実際に操作中でUIプログラム312が動作しており、アプリケーションプログラムは動作していない状態を想定している。ウェイトコントロールプログラム317は先頭のページ(印刷データに含まれるページで画像データ生成済みで無いページ中でページ番号が最も早いページ)をPDL処理プログラム1(313)で動作させる。
ウェイトコントロールプログラム317は、PDL処理プログラム1(313)を高速に動作させる必要があるので、PDLデータ入力プログラム(ウェイトなし)310と組わせて、プロセッサ1(315)で動作させる。ユーザがUIハード202を操作中なので、UIプログラム312は頻繁に動作することになるため、2ページ目のPDL処理プログラムはウェイトを多くしてUIプログラム312は高速に処理できるようにする必要がある。ウェイトコントロールプログラム317は、PDL処理プログラム2(314)をPDLデータ入力プログラム(ウェイト大)311と組わせてプロセッサ2(316)で動作させる。
図3(c)は、UIハード202をユーザが実際に操作中でUIプログラム322が動作しており、アプリケーションプログラム323も動作している状態を想定している。アプリケーションプログラム323は、上述したように画像データの色変換やトラッピング等の画像処理を行うためUIプログラム322よりも処理が遅い。そのため、UIプログラム322よりも多くのプロセッサ処理時間を割り当てる必要がある。
ウェイトコントロールプログラム328は、先頭のページをPDL処理プログラム1(324)で動作させる。ウェイトコントロールプログラム328は、PDL処理プログラム1(324)を高速に動作させる必要がある。しかし、UIプログラム322を高速に動作させたいので、PDLデータ入力プログラム(ウェイト小)320と組わせてプロセッサ1(326)で動作させる。ウェイトコントロールプログラム328は、PDL処理プログラム2(325)をPDLデータ入力プログラム(ウェイト大)321と組わせてプロセッサ2(327)で動作させる。
以上のように、ウェイトコントロール104が画像形成装置内で動作しているプログラムの状態に応じてPDL処理プログラム107の動作速度をコントロールして動作させる。これにより、マルチプロセッサ(203、204)によるPDL処理プログラム107をより高速に動作させることと、UIプログラム102やアプリケーションプログラム103の動作を阻害しないように動作させることが出来る。
図3を用いた説明において、先頭ページを処理しているPDL処理プログラム107が終了した場合、2ページ目を処理しているPDL処理プログラム107は先頭ページとなる。2ページ目から先頭ページになったページを処理しているPDL処理プログラム107は高速に処理するようにしたい。そのため図4で示すようにプロセッサ1で先頭ページを処理しているPDL処理プログラム401の処理が終了したときに、プロセッサ2で2ページ目を処理しているPDL処理プログラム402をプロセッサ1で処理するように変更する。また、画像データの生成が済んでないページの中で先頭のページ403をプロセッサ2で処理するように変更する。この時にプロセッサ間でプログラムの動作を受け渡す必要がある。
図5(a)のようにPDL処理プログラム107を動作させるために必要なスタックやワークメモリ等のリソースを各プロセッサに依存して割り当てておくとプロセッサ間の移動が出来ない。本発明を適用するには図5(b)のようにPDL処理プログラム107ごとに動作させるために必要なスタックやワークメモリ等のリソースを管理しておく必要がある。
なお、先頭ページの印刷データ処理を終えた第1のプロセッサに、2ページ目の印刷データの印刷データ処理を実行させることも考えられる。例えば、第1のプロセッサが1ページ目を印刷データ処理し終え、第2のプロセッサが2ページ目を印刷データ処理しているとする。この場合、実施例1では2ページ目を第1のプロセッサに処理させたが、2ページ目の処理を第2のプロセッサに実行させて、第1のプロセッサは3ページ目を処理させることになる。しかし、先頭ページとなった2ページ目を処理している第2のプロセッサは、印刷データ処理とは異なる処理も実行しているので、全体のプリンティング処理は遅くなる。しかし、この効果を望まないのであればこのような構成にしても良い。
図6は、PDLデータ入力プログラム106とPDL処理プログラム107を例外としてマルチプロセッサで(203、204)ページ並列で動作させない場合について示している。図6(a)は、複数のUIプログラム602やアプリケーションプログラム603が動作している状態を示している。この状態において、1つのプロセッサだけでは、印刷データ処理とは異なる処理に対して十分な速度を確保した処理ができないとする。この場合は、先頭ページのみをPDL処理プログラム601で処理するようにしても良い。なお、十分な速度を確保できるかできないを判断する方法としては、1つのプロセッサで印刷データ処理とは異なる処理を実行した場合のプロセッサのリソース状況を確認すれば良い。例えば、半分以上使用しているのであれば、UI画面を表示できないかもしれないと判断し、シングルプロセッサでPDL処理を行うという方法が考えられる。
図6(b)のように画像スプールに画像データが複数ページ分格納してある場合、その後の画像データが高速に作られる必要が無いので、先頭ページのみをPDL処理プログラム320で処理するようにしても良い。
図7をウェイトコントロールプログラム104の動作設定を行うUI画面について説明する。UI画面はUIハード202上の画面である。701示す動的設定の場合には、図3から図6を用いて説明してきたように、ウェイトコントロールプログラム104が画像形成装置内のプログラムの動作状況を判断し、PDL処理プログラム107の動作速度を動的に設定する。702はウェイトコントロールモジュール104の動的な設定によらず、ユーザが固定の動作速度を設定したいときに用いる。これはプリンティングを多く使うユーザは、プリンティング処理を常に高速に行いたいし、コピーを多く使うユーザはUI操作を快適に行いたいという要望があることが想定されるためである。
本発明では先頭ページを高速に行い、2ページ目以降を低速で行うことによりPDL処理プログラムを高速に動作させながら、その他のプログラムの動作を阻害しないことを特徴としている。そのため703に示すようにNページ目以降の速度を設定するようなUI画面が好適である。また、705のようなツールバーによる設定ならば、ツールバーの最小に近い指定がされた場合はページ並列処理せずにPDLプログラムは1つのプロセッサで動作する。
さらにツールバーの中間が指定された場合、PDLプログラムは、先頭ページをプロセッサ1でウェイト無しで処理、プロセッサ2で2ページ目をウェイト大で処理する。さらにツールバーの最大に近い設定がされた場合、PDLプログラムは先頭ページをプロセッサ1でウェイト無しで処理、プロセッサ2で2ページ目をウェイト小で処理するというような設定を行う。
図8を用いてウェイトコントロールプログラム104の詳細な処理の流れについて説明する。図8のフローチャートに記載された処理は全てウェイトコントロールプログラム104の処理であり、画像形成装置の起動時にROM206からRAM207に展開されプロセッサ2(204)で実行される。所定のイベントがウェイトコントロールプログラム104に送られてくるまで待つ(S801)。所定のイベントとは、外部インターフェースプログラム101から新たな印刷データが送られてきた場合、PDL処理プログラム107の1ページの処理が終了した場合、UI操作がされた場合、アプリケーションプログラムが新たに起動した場合等である。
ウェイトコントロールモジュール104は、いずれかのPDL処理プログラム107のページ処理の終了であるかを判断する(S802)。いずれかのPDL処理プログラム107のページ処理の終了である場合、ウェイトコントロールモジュール104は終了したページが先頭のページであるか判断する(S803)。先頭ページであった場合、ウェイトコントロールモジュール104は、動作中のPDL処理プログラム107を先頭ページの処理に設定し(S804)、画像データ生成が終わって無い印刷データに含まれるページを2ページ目に設定する(S806)。PDL処理プログラム107のページ処理の終了が先頭ページで無い場合は、画像データ生成が終わって無い印刷データに含まれるページを2ページ目に設定することのみを行う(S806)。
次にユーザがUI画面を利用して設定した値を取得し、ウェイトコントロールモジュール104がユーザの設定した固定値でウェイトを決めるべきか、画像形成装置内のプログラムの動作状態等から動的に決定するかを判断する(S806)。UI画面でユーザが設定した値はRAM207に保存されているものとし、ウェイトコントロールプログラム104はRAM207 から値を取り出すことにより設定を取得する。固定であった場合、ウェイトコントロールモジュール104は、ユーザ指定に応じた各PDL処理プログラム107のウェイトを設定する(S807)。動的であった場合は、S807 からS813に示すフローのように画像形成装置内のプログラムの動作状態等から、ウェイトコントロールプログラムが動的に各PDL処理プログラム107のウェイトを決定する。
画像スプール108にページ単位の画像データが複数ページ以上保存されている、または、印刷データに含まれているページが1ページで合った場合(S807)は次のような動作を行う。ウェイトコントロールプログラム104は、ページ並列処理を行わずに1つのプロセッサでウェイト無しに設定する(S808)。UIプログラム102がUIハード202からの入力待ちで、アプリケーションプログラム103が動作して無い場合(S809)、ウェイトコントロールプログラム104は先頭ページをウェイト無し、2ページをウェイト小で動作するように設定する(S810)。UIプログラム102のみ動作している時は(S811)、ウェイトコントロールプログラム104は先頭ページをウェイト無し、2ページ目をウェイト大で動作するように設定する(S812)。
UIプログラム102とアプリケーションプログラム103が動作している場合、ウェイトコントロールプログラム104は、先頭ページをウェイト小、2ページ目をウェイト大で動作するように設定する(S813)。ここまでの処理でPDL処理プログラム107のウェイトが決定している。よって、ウェイトコントロールモジュールは、各PDL処理プログラム107の一時停止(S814)し、必要があればプログラムのプロセッサ間移動を行い(S815)、各プログラムを再起動する(S816)。
実施例1では印刷データに含まれる複数のページを、マルチプロセッサ上でページ並列で処理する方法を説明した。実施例2では、ページ内に含まれる複数のオブジェクトをマルチプロセッサで並列に処理するオブジェクト並列への本発明の適用方法について説明する。ここでオブジェクトとは、文字やグラフィックスやイメージデータのことである。
オブジェクトを並列処理する場合、図9に示すPDL処理プログラム901は、オブジェクト抽出プログラム902と画像データ生成プログラム903で構成される。オブジェクト抽出プログラム902と画像データ生成プログラム903はROM1001上に格納されており、起動時にRAM1006に展開され、各プロセッサ(1002、1003、1004、1005)で実行される。プロセッサ1(1002)で動作するオブジェクト抽出プログラム902は、印刷データのページ内に含まれるオブジェクト(904,905,906)を抽出しRAM(1010)に格納する。
抽出されたオブジェクトは、並列に処理しても画像データの間違いが発生しないように、904、905、906のオブジェクト群に分割する。画像データの間違いが発生するのはオブジェクトの重なりに依存する、そのためオブジェクト抽出プログラム902はオブジェクトを画像形成座標のY軸かZ軸にソートしてから分割する。夫々のオブジェクト群は、プロセッサ2(1003)、プロセッサ3(1004)、プロセッサ4(1005)で印刷データ処理される。夫々のオブジェクト群は、画像データ生成プログラム903によって画像形成され画像スプールに画像データとして格納され、プリンタインターフェースを通して印刷される。
ウェイトコントロールプログラム904は、オブジェクト群に分割するときにオブジェクト数に差をつけて画像データ生成プログラム903の処理をプロセッサに実行させる。オブジェクト数が少なく割り当てられた画像データ生成プログラム903は印刷データ処理が減るため、他の画像データ生成プログラム903よりも早く処理を終了しウェイト状態になる。このウェイト状態になることによりUIプログラムやアプリケーションプログラムが動作可能となる。ウェイトコントロールプログラム904は実施例1と同じように画像形成装置内のプログラムの動作状態等から、オブジェクト群に分割するときのオブジェクト数を調整することにより各画像データ生成プログラムのウェイトをコントロールする。
以上の処理によりオブジェクト並列処理時にも本実施例を適用できる。図11のように1101のプロセッサ1でオブジェクト抽出プログラム902を動作させ、1102、1103、1104で画像データ生成プログラム903を動作させる。また1104ではUIプログラムやアプリケーションプログラムを動作させたい場合は、画像データ生成プログラム903をウェイトを入れて動作させるため少ないオブジェクト数を処理させる。
図10に示すタイムチャートで見ると、1106と1107の区間は画像データ生成処理903が動作していないためUIプログラムはアプリケーションプログラムが動作可能となる。1108のページ処理全体に対してオブジェクト抽出を複数回に分けて実行するのは1106と1107のようにウェイトを頻繁に入れないと、UIプログラムが即時に動作できなくなってしまうためである。
実施例1でも記載したようにユーザがUIハードを操作してから、UIプログラムが反応するまでに時間がかかるとユーザが快適に利用できなくなってしまうため、オブジェクト抽出を複数回に分けてウェイトを頻繁に入れるようにする。そのことから1105の区間はすでにプロセッサ3の画像データ生成プログラム903は動作可能だが、プロセッサ2やプロセッサ3の画像データ生成プログラム903の動作完了まで待つようにする方が良い。
本発明の各実施例では、ウェイト小のPDLデータ入力プログラムにおける1回で処理される印刷データ量が、ウェイト大のPDLデータ入力プログラムにおける1回で処理される印刷データ量よりも多かった。また、ウェイト小のPDLデータ入力プログラムにおけるPDL処理から開放されている時間が、ウェイト大のPDLデータ入力プログラムにおけるPDL処理から開放されている時間よりも少なかった。すなわち、本発明において、ウェイト小は印刷データ処理とは異なる処理にかける様に、どちらの条件もウェイト大と比較して印刷データ処理の時間を省く構成になっていた。しかし、どちらか片方の条件だけが成立していても良い。但し、全ての処理が終了した後、ウェイト小のPDLデータ入力プログラムを実行したプロセッサの方が、ウェイト大のPDLデータ入力プログラムを実行したプロセッサよりもPDL処理に多く時間を費やしていなくてはいけない。
また、本発明の各実施例では、PDLデータ入力プログラム106とPDL処理プログラム107を別々のプログラムとしたが、PDLデータ入力プログラム106を予め含むPDL処理プログラム107を持つような構成でも良い。
また、本発明の各実施例では、画像形成装置のCPUの個数を2個としたが、本発明はCPU個数が1つ以上であれば適用可能である。また、コアプロセッサを複数搭載するCPUであっても良い。その場合、各コアプロセッサが1スレッドを処理する。なお、コアプロセッサとは、プロセッサの中にある命令発行器や演算器などを組み合わせて動作する集合体のことである。
102 UIプログラム
103 アプリケーションプログラム
106 入力プログラム
107 PDL処理プログラム
203 プロセッサ1
204 プロセッサ2
206 ROM

Claims (9)

  1. 印刷データを読み込み、読み込んだ印刷データに対して印刷データ処理を実行する第1のプロセッサと、
    印刷データを読み込み、読み込んだ印刷データに対して印刷データ処理を実行する第2のプロセッサとを有し、
    印刷データ処理を実行している前記第2のプロセッサは、所定量の印刷データを印刷データ処理するとウェイトが入り印刷データ処理とは異なる処理の実行が可能になり、印刷データ処理とは異なる処理の指示があった場合、印刷データ処理とは異なる処理を実行し
    ウェイトが解除されると印刷データ処理を実行し、
    前記第1のプロセッサは印刷データ処理のみ実行し、かつ、前記第1のプロセッサは印刷データの中で印刷データ処理が行われていない最も早いページである先頭ページの印刷データを読み込み、読み込んだ先頭ページの印刷データに対して印刷データ処理を実行し、前記第2のプロセッサは先頭ページの次のページである2ページ目の印刷データを読み込み、読み込んだ2ページ目の印刷データに対して印刷データ処理を実行することを特徴とする印刷データ処理装置。
  2. ウェイトが入るタイミングは、印刷データの所定量によって決まることを特徴とする請求項1に記載の印刷データ処理装置。
  3. ウェイトが解除されるタイミングは、ウェイトが入っていた時間によって決まることを特徴とする請求項1または2に記載の印刷データ処理装置。
  4. 印刷データの1ページ分に含まれる複数のオブジェクトを印刷データ処理するために、前記第1のプロセッサおよび前記第2のプロセッサの両方のプロセッサは、夫々が印刷データ処理するべき担当のオブジェクトの印刷データ処理を実行することを特徴とする請求項1乃至3のいずれか1項に記載の印刷データ処理装置。
  5. 印刷データ処理され生成されたページ単位の画像データがスプールに複数ページ以上保存されている場合、前記第1のプロセッサは印刷データを読み込み、読み込んだ印刷データに対して印刷データ処理を実行し、前記第2のプロセッサを、印刷データとは異なる処理を実行可能にしておくことを特徴とする請求項1乃至4のいずれか1項に記載の印刷データ処理装置。
  6. 前記印刷データ処理とは異なる処理とは、ユーザインターフェースを表示させるための処理、または、印刷データを基に生成された画像データに対して行う画像処理であることを特徴とする請求項1乃至5のいずれか1項に記載の印刷データ処理装置。
  7. 前記第2のプロセッサは、1回で印刷データ処理する印刷データ量と、ウェイトが解除され印刷データ処理を実行する時間とを調整するためのプログラムを実行することを特徴とする請求項1乃至6のいずれか1項に記載の印刷データ処理装置。
  8. 第1のプロセッサは、印刷データを読み込み、読み込んだ印刷データに対して印刷データ処理を実行し、
    第2のプロセッサは、印刷データを読み込み、読み込んだ印刷データに対して印刷データ処理を実行し、
    印刷データ処理を実行している前記第2のプロセッサは、所定量の印刷データを印刷データ処理するとウェイトが入り印刷データ処理とは異なる処理の実行が可能になり、印刷データ処理とは異なる処理の指示があった場合には、印刷データ処理とは異なる処理を実行し、ウェイトが解除されると印刷データ処理を実行し、
    前記第1のプロセッサは印刷データ処理のみ実行し、かつ、前記第1のプロセッサは印刷データの中で印刷データ処理が行われていない最も早いページである先頭ページの印刷データを読み込み、読み込んだ先頭ページの印刷データに対して印刷データ処理を実行し、前記第2のプロセッサは先頭ページの次のページである2ページ目の印刷データを読み込み、読み込んだ2ページ目の印刷データに対して印刷データ処理を実行することを特徴とする印刷データ処理方法。
  9. 第1のプロセッサに、印刷データを読み込ませ、読み込ませた印刷データに対して印刷データ処理を実行させ、
    第2のプロセッサに、印刷データを読み込ませ、読み込ませた印刷データに対して印刷データ処理を実行させ、
    印刷データ処理を実行している前記第2のプロセッサが、印刷データ処理を終えるとウェイトが入り印刷データ処理とは異なる処理の実行が可能になり、ウェイトが解除された前記第2のプロセッサに印刷データ処理を実行させ、
    前記第1のプロセッサに印刷データ処理のみ実行させ、かつ、前記第1のプロセッサに印刷データの中で印刷データ処理が行われていない最も早いページである先頭ページの印刷データを読み込ませ、読み込んだ先頭ページの印刷データに対して印刷データ処理を実行させ、前記第2のプロセッサに先頭ページの次のページである2ページ目の印刷データを読み込ませ、読み込んだ2ページ目の印刷データに対して印刷データ処理を実行させることを特徴とする印刷データ処理プログラム。
JP2009219222A 2009-09-24 2009-09-24 印刷データ処理装置、印刷データ処理方法、プログラム Expired - Fee Related JP5430319B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009219222A JP5430319B2 (ja) 2009-09-24 2009-09-24 印刷データ処理装置、印刷データ処理方法、プログラム
US12/887,033 US8368937B2 (en) 2009-09-24 2010-09-21 Print data processing apparatus, print data processing method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009219222A JP5430319B2 (ja) 2009-09-24 2009-09-24 印刷データ処理装置、印刷データ処理方法、プログラム

Publications (2)

Publication Number Publication Date
JP2011067980A JP2011067980A (ja) 2011-04-07
JP5430319B2 true JP5430319B2 (ja) 2014-02-26

Family

ID=43756402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009219222A Expired - Fee Related JP5430319B2 (ja) 2009-09-24 2009-09-24 印刷データ処理装置、印刷データ処理方法、プログラム

Country Status (2)

Country Link
US (1) US8368937B2 (ja)
JP (1) JP5430319B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013125455A (ja) * 2011-12-15 2013-06-24 Ricoh Co Ltd 画像形成装置
JP6136020B2 (ja) * 2014-09-18 2017-05-31 コニカミノルタ株式会社 画像形成装置及び並列処理の制御方法並びに制御プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04257915A (ja) * 1991-02-12 1992-09-14 Fuji Xerox Co Ltd 情報処理装置
JP2000132529A (ja) * 1998-10-23 2000-05-12 Sony Corp 並列処理装置、並列処理方法および記録媒体
JP3376345B2 (ja) * 2000-07-31 2003-02-10 キヤノン株式会社 画像処理装置及び画像処理方法
JP4254032B2 (ja) * 2000-09-07 2009-04-15 コニカミノルタビジネステクノロジーズ株式会社 データ処理装置およびデータ処理方法、ならびに印刷装置および印刷方法
JP2004326307A (ja) * 2003-04-23 2004-11-18 Kyocera Mita Corp 画像形成装置
US7308565B2 (en) * 2005-06-15 2007-12-11 Seiko Epson Corporation Saving/restoring task state data from/to device controller host interface upon command from host processor to handle task interruptions
JP4425837B2 (ja) * 2005-08-26 2010-03-03 京セラミタ株式会社 画像形成装置
JP2007152623A (ja) 2005-12-01 2007-06-21 Canon Inc 描画制御装置、描画制御方法、記憶媒体およびプログラム
JP4942179B2 (ja) * 2006-12-11 2012-05-30 キヤノン株式会社 印刷制御装置及びその制御方法及びデバイスドライバ

Also Published As

Publication number Publication date
US20110069349A1 (en) 2011-03-24
US8368937B2 (en) 2013-02-05
JP2011067980A (ja) 2011-04-07

Similar Documents

Publication Publication Date Title
JP5333259B2 (ja) 画像形成装置、プログラム及び画像形成方法
US8867081B2 (en) Printing method and apparatus for dividing each of the two or more print jobs into a plurality of sub-print jobs
US8446605B2 (en) Division of rendering block in image forming apparatus
US8625133B2 (en) Print data processing apparatus, print data processing method, and storage medium
US8649032B2 (en) Image processing apparatus, image processing method, and storage medium
US8755060B2 (en) Print control apparatus, image forming system, and non-transitory computer readable medium
US8503019B2 (en) Print document conversion apparatus and computer readable medium
JP2011098500A (ja) 画像形成装置、および画像形成装置制御方法、およびプログラム。
US8537396B2 (en) Print document conversion apparatus, print document conversion method, and computer readable medium
JP2013001059A (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
US10534986B2 (en) Printing apparatus having interpreters interpreting print data, printing method, and storage medium
JP5430319B2 (ja) 印刷データ処理装置、印刷データ処理方法、プログラム
US20180321886A1 (en) Image processing apparatus capable of obtaining prediction value of time relating to printing, image processing method, and storage medium
JP6465384B2 (ja) 画像形成装置及び並列処理制御プログラム並びに並列処理制御方法
US8085424B2 (en) Multiple-port print device
JP6996189B2 (ja) プリントコントローラー、画像形成システム及び画像形成装置
US8526052B2 (en) Print data processing apparatus, control method for print data processing apparatus, and storage medium
JP2017050767A (ja) 画像形成装置、同装置におけるタスク制御方法及びタスク制御プログラム
JP6128104B2 (ja) 画像処理装置、その制御方法、およびプログラム
JP2015020404A (ja) 画像形成装置
JP2012008838A (ja) 印刷文書変換装置およびプログラム
US8629997B2 (en) Print control apparatus and image forming system for rendering image data
JP2016203513A (ja) 印刷装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120924

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131017

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131203

LAPS Cancellation because of no payment of annual fees