JP5655392B2 - 印刷画像処理装置及びプログラム - Google Patents

印刷画像処理装置及びプログラム Download PDF

Info

Publication number
JP5655392B2
JP5655392B2 JP2010142893A JP2010142893A JP5655392B2 JP 5655392 B2 JP5655392 B2 JP 5655392B2 JP 2010142893 A JP2010142893 A JP 2010142893A JP 2010142893 A JP2010142893 A JP 2010142893A JP 5655392 B2 JP5655392 B2 JP 5655392B2
Authority
JP
Japan
Prior art keywords
page
image processing
pages
time required
parallel
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.)
Active
Application number
JP2010142893A
Other languages
English (en)
Other versions
JP2012006202A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2010142893A priority Critical patent/JP5655392B2/ja
Priority to US12/912,278 priority patent/US8587793B2/en
Publication of JP2012006202A publication Critical patent/JP2012006202A/ja
Application granted granted Critical
Publication of JP5655392B2 publication Critical patent/JP5655392B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • 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/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format
    • 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/1279Controller construction, e.g. aspects of the interface hardware
    • 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/1282High volume printer device
    • 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/1801Input data handling means
    • G06K15/1822Analysing the received data before processing
    • G06K15/1823Analysing the received data before processing for evaluating the resources needed, e.g. rasterizing time, ink, paper stock
    • 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/1849Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives
    • 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/1849Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives
    • G06K15/1851Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives parted in a plurality of segments per page
    • 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

Description

本発明は、印刷画像処理装置及びプログラムに関する。
デジタル印刷装置は、ページ記述言語で記述された印刷データをページごとのビットマップ画像(ラスター画像とも呼ばれる)に変換し、それら各ページのビットマップ画像データをプリントエンジンに供給して用紙への印刷を行わせる。各ページのビットマップ画像の生成処理においては、途中段階の画像に対して、必要に応じて、色空間変換や回転、拡大・縮小、回転、ハーフトーン処理等の、ビットマップ画像処理が行われる。このような画像処理はソフトウエアでも実装可能であるが、処理速度の観点から専用のハードウエア画像処理回路として実装される場合が多い。
また、処理速度向上のために、画像処理回路を複数設け、それら複数の画像処理回路に並列処理を行わせるシステムも存在する。この種のシステムでの並列処理の方式としては、各画像処理回路に対してページ単位で処理を割り当てるページ並列方式がある。
特許文献1には、1ページを構成するバンドの中に展開処理時間が画像形成プロセスに間に合わないバンドがある場合でも連続画像形成を可能にするために、印刷データをCPUが解析して、バンド展開スケジュールをあらかじめ予測される展開処理時間に基づいて最適化する装置が開示されている。
特許文献2には、仕事量の予測可能な複数の単位ジョブを非対称な複数プロセッサに振分けるシステムが開示されている。このシステムでは、各単位ジョブを複数のプロセッサに割り当てる際の参照情報となる単位ジョブリストを作成し、そのリストより、各単位ジョブの実行順序とそれら単位ジョブ割り当て先プロセッサとを決定する単位ジョブスケジュールを作成している。
特許文献3には、印刷処理の高速化を図るためのハードウエア機能可変印刷装置が開示されている。この装置では、プリンタは、中間印刷データの処理に必要なモジュールを判定し、ハードウエア回路のハードウエア領域を複数に区分し、その判定結果に基づいて、区分領域ごとにモジュールの実行順序を規定した再構成スケジュールを作成する。そして、必要なリコンフィギュアラブルデータを記憶装置から読み出し、読み出したリコンフィギュアラブルデータおよび再構成スケジュールに基づいてハードウエア回路のハードウエア領域を再構成する。
特許文献4に記載された装置は、並列に展開処理が可能でそれぞれが動的に再構成可能なプロセッサからなる複数の展開手段を有し、オブジェクト記述言語で記述されたデータを受信して解析し、各描画オブジェクト毎に中間データに変換するステップと、展開処理を実行する前に、中間データに基づいて前記複数の展開処理における各々の処理時間を見積り、プロセッサの再構成のスケジューリングデータを生成するステップと、スケジューリングデータに基づいてプロセッサを再構成しながら、複数の展開手段によって中間データに基づいてビットマップデータに展開するステップとを有する。スケジューリングデータに基づく前記複数の展開手段の各々の処理時間を判定するステップと、複数の展開手段の処理時間が略同じとなるように、スケジューリングデータを修正するステップとを更に有する。
特開2000−168148号公報 特開2004−252900号公報 特開2005−202667号公報 特開2006−088433号公報
ところで、複数の画像処理回路にページ単位で処理を割り振って並列処理を行う方式(以下、ページ並列方式と呼ぶ)では、ページ順が前のページの処理負荷が後のページの処理負荷よりも大きい場合、それら両ページを並列処理すると後のページの処理結果の方が先に得られることとなる。ところが、印刷はページ順に行われるため、このような「追い越し」が生じると、先に処理が終了している後のページが、前のページの処理完了を待つこととなる。このような待機があまりに大きいと、処理の無駄が大きくなる。
これに対する対策として、ページごとに、そのページ内の複数のオブジェクトを複数の画像処理回路に振り分けて並列処理する「ページごとオブジェクト並列方式」が考えられる。ページごとオブジェクト並列方式では、ページ順に処理結果が得られ、またオブジェクト単位で並列処理するので文書の1ページ目の印刷が早くなる。しかし、オブジェクト数が画像処理回路の数より少ないページでは、使用されない画像処理回路が生じてしまうため、そのようなページが多いと、処理速度が得られなくなる。
本発明は、ページ並列方式又はページごとオブジェクト並列方式のどちらかを常に採用する装置よりも処理速度の早い印刷画像処理装置を提供することを目的とする。
請求項1に係る発明は、N個(Nは2以上の整数)の画像処理回路と、印刷対象文書のNページごとに、当該Nページについての画像処理を前記各画像処理回路に対してページ単位で割り当てて並列処理させるページ並列方式と、1ページごとにオブジェクト単位で割り当てて並列処理させるページごとオブジェクト並列方式と、とのそれぞれについて当該Nページの画像処理に要する所要時間を推定し、前記ページ並列方式と前記ページごとオブジェクト並列方式とのうち推定した所要時間が短い方の方式を当該Nページのための並列方式として選択する選択手段と、前記選択手段が選択した並列方式に従って、前記N個の画像処理回路に対して当該Nページについての画像処理の割り当てを行う割当手段と、を備え、前記選択手段は、ページごとに当該ページに含まれるオブジェクトの画像処理の推定所要時間を総和することで当該ページについての画像処理の推定所要時間を求め、前記Nページの各ページについての画像処理の推定所要時間のうちの最長のものを、前記ページ並列方式での前記Nページの画像処理に要する所要時間と推定し、前記画像処理回路ごとに当該画像処理回路に割り当てられたオブジェクトの画像処理の推定所要時間の和を保持し、ページ内のオブジェクトを画像処理回路に割り当てるごとに当該オブジェクトの画像処理の推定所要時間を当該画像処理装置に対応する前記和に対して加算し、ページ内のすべてのオブジェクトを割り当て終えたときの各画像処理回路についての前記和のうちの最大値を当該ページについての画像処理の推定所要時間とし、前記Nページの各ページについての画像処理の推定所要時間の総和を、前記ページごとオブジェクト並列方式での前記Nページの画像処理に要する所要時間と推定する、ことを特徴とする印刷画像処理装置である。
請求項2に係る発明は、前記選択手段は、当該割当手段の機能を記述したプログラムをコンピュータに実行させることにより実現されたものであり、前記選択手段は、前記N個の画像処理回路が前記Nページについて前記割当手段から割り当てられた画像処理を実行している間に、次のNページについての並列方式を選択する、ことを特徴とする請求項1に記載の印刷画像処理装置である。
請求項3に係る発明は、前記選択手段は、前記ページ並列方式において、前記Nページのうちページ順が後のページについての画像処理の所要時間が、ページ順が前のページについての画像処理の所要時間よりも閾値以上短い場合には、前記ページ並列方式の方が当該Nページの画像処理に要する所要時間が短くても、前記ページごとオブジェクト並列方式を、当該Nページについての並列方式として選択する、ことを特徴とする請求項1又は2に記載の印刷画像処理装置である。
請求項4に係る発明は、前記選択手段は、印刷対象文書のページのうち、前記画像処理回路の処理対象となるオブジェクトを1つも含まないページについては、前記Nページごとの単位には含めず、前記処理対象となるオブジェクトを1以上含んだ後続のページをその単位に含める、ことを特徴とする請求項1から3のいずれか1項に記載の印刷画像処理装置である。
請求項5に係る発明は、前記印刷対象文書の第1ページに含まれる各オブジェクトを前記各画像処理回路に割り当てて並列に処理させる第1ページ並列処理手段を更に備え、前記選択手段は、前記印刷対象文書の第2ページ以降についてNページごとに前記並列方式の選択を行う、ことを特徴とする請求項1から4のいずれか1項に記載の印刷画像処理装置である。
請求項6に係る発明は、N個(Nは2以上の整数)の画像処理回路に接続されたコンピュータを、印刷対象文書のNページごとに、当該Nページについての画像処理を前記各画像処理回路に対してページ単位で割り当てて並列処理させるページ並列方式と、1ページごとにオブジェクト単位で割り当てて並列処理させるページごとオブジェクト並列方式と、とのそれぞれについて当該Nページの画像処理に要する所要時間を推定し、前記ページ並列方式と前記ページごとオブジェクト並列方式とのうち推定した所要時間が短い方の方式を当該Nページのための並列方式として選択する選択手段、前記選択手段が選択した並列方式に従って、前記N個の画像処理回路に対して当該Nページについての画像処理の割り当てを行う割当手段、として機能させるためのプログラムであって、前記選択手段は、ページごとに当該ページに含まれるオブジェクトの画像処理の推定所要時間を総和することで当該ページについての画像処理の推定所要時間を求め、前記Nページの各ページについての画像処理の推定所要時間のうちの最長のものを、前記ページ並列方式での前記Nページの画像処理に要する所要時間と推定し、前記画像処理回路ごとに当該画像処理回路に割り当てられたオブジェクトの画像処理の推定所要時間の和を保持し、ページ内のオブジェクトを画像処理回路に割り当てるごとに当該オブジェクトの画像処理の推定所要時間を当該画像処理装置に対応する前記和に対して加算し、ページ内のすべてのオブジェクトを割り当て終えたときの各画像処理回路についての前記和のうちの最大値を当該ページについての画像処理の推定所要時間とし、前記Nページの各ページについての画像処理の推定所要時間の総和を、前記ページごとオブジェクト並列方式での前記Nページの画像処理に要する所要時間と推定する、ことを特徴とするプログラムである。
請求項1又は6に係る発明によれば、ページ並列方式又はページごとオブジェクト並列方式のどちらかを常に採用する装置よりも処理速度の早い印刷画像処理装置を提供することができる。
請求項2に係る発明によれば、印刷対象文書全体にわたってNページごとの単位に適用する並列方式を、画像処理回路による画像処理を開始する前にすべて決めてしまう方式と比べて、処理に要する時間を短縮できる。
請求項3に係る発明によれば、ページ順が後のページの画像処理の完了が前のページの画像処理の完了よりも大幅に早くなることでページ順の維持のための制御が複雑になること、を防ぐことができる。
請求項4に係る発明によれば、Nページの各ページがすべて画像処理回路の処理対象のオブジェクトを含み、ページ並列方式を選択した場合でも画像処理回路が遊休状態となることがない。
請求項5に係る発明によれば、印刷対象文書の印刷指示から、その文書の第1ページが印刷出力されるまでに時間を短くしつつも、印刷対象文書全体としての処理に要する所要時間を短くすることができる。
実施形態の印刷画像処理装置の構成例を示す図である。 印刷文書データ200の分析結果(オブジェクトテーブル)の一例を示す図である。 DRPステータスレジスタのデータ内容の一例を示す図である。 動的スケジューラの全体的な処理手順の一例を示すフローチャートである。 セクション分割処理の手順の一例を示すフローチャートである。 並列方式決定処理の手順の一例を示すフローチャートである。 セクション単位でのページ並列方式のセクションあたりの所要時間の算出手順の一例を示すフローチャートである。 ページごとオブジェクト並列方式のセクションあたりの所要時間の算出手順の一例を示すフローチャートである。 セクション単位でのページ並列方式によるページ群の処理の進行の仕方を説明するための図である。 ページごとオブジェクト並列方式によるページ群の処理の進行の仕方を説明するための図である。 有するオブジェクト数が異なる複数のページの例を示す図である。 図11に例示したページ群についての生成されるオブジェクトテーブルの例を示す図である。 図11に例示したページ群をセクション単位でのページ並列方式で処理した場合の処理の進行の仕方を説明するための図である。 図11に例示したページ群をページごとオブジェクト並列方式で処理した場合の処理の進行の仕方を説明するための図である。 図11に例示したページ群を実施形態の方式で処理した場合の処理の進行の仕方を説明するための図である。
図1を参照して、実施形態の印刷システムの装置構成の例を説明する。
図1に例示する印刷システムは、ホストCPU100,メモリ120,RIPアクセラレータ130及びプリントエンジン140を備える。
ホストCPU100は、ページ記述言語(PDL:Page Description Language)で記述された印刷文書データ200を処理して、各ページの画像データを生成する処理を行うCPU(中央演算装置)である。PDLは、印刷等の出力処理の対象となる各ページの画像を記述する言語又はフォーマットであり、例えば、PostScript(登録商標)やPDF( Portable Data Format: ISO 32000-1)などがその一例である。最終的に生成する各ページの画像データは、プリントエンジン140にて取扱可能な形式の画像データであり、典型的にはビットマップ画像データである。印刷文書データ200は、図示を省略したLAN(ローカルエリアネットワーク)などのデータ通信経路を介して、クライアントコンピュータからホストCPU100に送られる。また、ホストCPU100は、それら各ページの画像データの生成のための処理やこの処理のためのRIPアクセラレータ130の制御、及び生成した画像データをプリントエンジン140に供給して印刷させる印刷制御などを行う。ホストCPU100は、図示しない記憶装置(例えばROM(Read Only Memory)やEEPROM(Electronically Erasable Programmable ROM)、ハードディスクなど)に記憶された制御プログラムを実行することにより、これらの機能を実現する。なお、ホストCPU100が実現する機能の詳細については、後で更に詳しく説明する。
メモリ120は、ホストCPU100が処理を実行する際に用いる作業用の記憶領域を提供するハードウエアデバイスであり、例えばRAM(Random Access Memory)などから構成される。メモリ120は、例えば、ホストCPU100が生成する各ページの画像データや、各種制御のための制御情報を一時的に保持したりするために用いられる。
RIPアクセラレータ130は、ホストCPU100による印刷文書データ200からの画像データの生成処理のうちの、特定の画像処理を実行するためのハードウエア装置である。RIPアクセラレータ130が実行する「特定の画像処理」は、例えば、画像データの圧縮・伸張、画像の縮小・拡大、回転、色空間変換、ハーフトーン処理(或いは誤差拡散)などである。もちろん、これらのうちの1つに限られるものではなく、2以上をあらかじめ定めた順序で行う複合的な画像処理も含まれる。また、上に例示した以外の画像処理を行うものであってもよい。RIPアクセラレータ130が取り扱う画像データは、ビットマップ形式に限るものではなく、JPEG(Joint Photographic Experts Group)形式その他の形式(フォーマット)の場合もあり得る。このような特定の画像処理は、ハードウエア回路による処理の方がソフトウエア処理よりも高速であるので、ホストCPU100は、印刷文書データ200から各ページの画像データを生成する処理(RIP処理と呼ばれる。RIPはRaster Image Processingの略称)のうち、上述のような特定の画像処理については、RIPアクセラレータ130に処理を依頼する。
RIPアクセラレータ130は、N個(Nは2以上の整数)のDRP(Dynamically Reconfigurable Processor)132−1,132−2,・・・132−N(以下、区別する必要のない場合はDRP132と総称する)を備える。
DRP132は、内部の回路構成を動的に書き換え(例えば1クロックの間に書き換えるなど)可能なプロセッサである。DRP132としては、例えば、特開2009−3765号公報に紹介されているDAPDNA(Digital Application Processor / Distributed Network Architecture)アーキテクチャのプロセッサを用いてもよい(ただし、これに限られるわけではない)。このアーキテクチャのDRP132は、論理回路を構成するための複数の回路要素(PE:プロセッサエレメント)とそれらPE間の接続を構成するための配線リソースとを備え、それらPEの設定やPE間の接続構成を変えることにより、様々な構成の論理回路として動作することができる。また、DRP132は、複数のコンフィギュレーションメモリを備えている。1つのコンフィギュレーションメモリには、1つのコンフィギュレーションを定義するコンフィギュレーションデータが記憶される。ここでは、コンフィギュレーションという用語は、1つのDRP132上に同時に存在する論理回路のことを意味するものとして用いる。DRP132では、複数のコンフィギュレーションメモリのうちの1つが有効(アクティブ)とされると、そのメモリ内に保持されるデータに従ってPEの設定やPE間の配線の組み替えが行われ、これによりそのコンフィギュレーションの回路が構成される。1つの時点では1つのコンフィギュレーションメモリのみがアクティブであり、別のコンフィギュレーションメモリをアクティブにすることにより、DRP132のコンフィギュレーションが切り替えられる。例えば、順番に切り替えるべきコンフィギュレーションデータをそれぞれ別のコンフィギュレーションメモリにロードしておき、それらを順にアクティブにしていくことで、それら一連のコンフィギュレーションによるパイプライン処理を実現することができる。あるコンフィギュレーションメモリをアクティブにしている間に、別のコンフィギュレーションメモリにデータをロードすることで、ロードに要する時間が隠蔽される。
N個のDRP132は、同じ画像処理を行う。すなわち、これらN個のDRP132は、それぞれ同じ画像処理を並列的に実行し得る。なお、DRP132の数Nは、RIPアクセラレータ130が備えるDRP132のうち、「特定の画像処理」に対して割当可能なDRP132の総数である。すなわち、RIPアクセラレータ130がN+k(kは1以上の整数)個のDRP132を搭載していたとしても、そのうちのk個が「特定の画像処理」以外の処理のために予約されている場合、「特定の画像処理」に対して割当可能なDRP132の数はN個である。
例えば、印刷文書データ200中のJPEG圧縮された画像オブジェクトをJPEG伸張する処理、伸張結果のビットマップ画像を予め定められた画像サイズに縮小する処理、縮小結果の画像を色空間変換する処理、色空間変換結果の画像を誤差拡散により二値化する処理、二値化結果の画像を後の処理までの間の一時的保存のために可逆圧縮する処理、等といった一連の画像処理を、各DRP132がそれぞれ実行する。すなわち、各DRP132は、自身のコンフィギュレーションを、それら一連の画像処理を構成する各処理のためのコンフィギュレーションに順に切り替えながら、それら各処理を順に実行する。
ホストCPU100から依頼される個々の画像処理(例えばページ単位、或いはオブジェクト単位の画像処理)は、それらN個のDRP132のいずれかに割り振られる。N個のDRP132が、異なるページ又はオブジェクトの画像処理をそれぞれ実行することで、並列処理が実現される。RIPアクセラレータ130は、例えば、1枚又は複数枚のボード上に合計N個のDRPチップを搭載したものとして構成してもよく、この場合、各ボードがホストCPU100の搭載されたマザーボード上のスロットに接続されることで、図示のような装置構成が実現される。
プリントエンジン140は、ホストCPU100から供給される各ページの画像データを、紙などのシート状媒体に印刷する。
次に、ホストCPU100が実現する機能構成の一例を説明する。図1の例では、ホストCPU100は、機能モジュールとして、PDL解釈部102,メモリ・IO(入出力)制御部104,DRP制御部106,オブジェクト・ページ情報抽出部108,動的スケジューラ110及びDRPステータスレジスタ112を備える。PDL解釈部102は、PDLで記述された印刷文書データ200を解釈して画像をメモリ上に描画する処理を行う機能モジュールであり、インタプリタ又はデコンボーザなどとも呼ばれる。メモリ・IO制御部104は、メモリ120、及びプリントエンジン140等の周辺機器との間のデータの入出力を制御する機能モジュールである。DRP制御部106は、RIPアクセラレータ130を制御して画像処理を実行させる機能モジュールである。DRP制御部106は、動的スケジューラ110が決定した各DRP132への画像処理対象のページ又はオブジェクトの割当に従って、RIPアクセラレータ130内の各DRP132に対してページ又はオブジェクトの画像処理を依頼する。
オブジェクト・ページ情報抽出部108は、PDL解釈部102による印刷文書データ200の解釈により得られる各ページ及び各ページ内の各オブジェクトの情報を抽出して、オブジェクトテーブルを生成する。
このオブジェクトテーブルのデータ内容の一例を、図2に示す。図2の例では、オブジェクトテーブルには、ページごとに、そのページの番号、及びそのページ内のオブジェクトごとの情報を含む。図示例では、オブジェクトごとの情報には、当該オブジェクトのデータサイズ、DRP132で処理させる際に要する所要時間の推定値(「推定所要時間」)、及びデータサイズとあらかじめ定めた閾値との比較結果(「閾値サイズ比較」)が含まれる。DRP132上に構成される1つのコンフィギュレーションが1つのオブジェクトを処理するのに要する時間は、例えば、そのコンフィギュレーションにて1画素のデータを処理するのに要する時間(レイテンシ)に当該オブジェクトのデータサイズを乗算し、DRP132の動作クロックの周波数で除することにより計算される。
「データサイズ」は、例えば当該オブジェクトをビットマップに展開した時の画像のデータサイズを示す値である。印刷文書データ200内のオブジェクトについての記述には、当該オブジェクトのデータサイズの情報が含まれている(例えば画像オブジェクト(後述)の場合)ので、その情報をオブジェクトテーブルに登録すればよい。また、画像オブジェクト以外の種類のオブジェクトについては、PDLの解釈の際などに、ビットマップ画像に展開した時のデータサイズを求めるようにしてもよい。
「推定所要時間」は、「特定の画像処理」のための各コンフィギュレーションをDRP132に順にリコンフィギュレーション(再構成)し、当該オブジェクトをそれら各コンフィギュレーションで順に処理していくのに要する時間なので、当該オブジェクトについての個々のコンフィギュレーションの所要時間を総和することにより求められる。
なお、オブジェクトは、ページ内に配置されるひとかたまりの画像を表すデータのことであり、例えば画像オブジェクト(写真などの連続調画像を表すビットマップ画像や圧縮画像など)、グラフィックオブジェクト(ベクター表現される図形など)、フォントオブジェクト、背景オブジェクト(背景の画像パターンを表す)などがある。特に、画像オブジェクトは、他のオブジェクトと比べてデータ量が多い場合が多く、また伸張、ハーフトーン処理、再圧縮などといった多くの処理を必要とする場合も多いので、RIPの際の画像処理の負荷が大きい。そこで、本実施形態では、このような負荷の大きい画像処理を、RIPアクセラレータ130にハードウエア処理させることにしている。なお、ここでは、RIPアクセラレータ130に依頼する画像処理の対象となる種類のオブジェクトとして、画像オブジェクトを例示したが、他の種類のオブジェクトを対象に加えるようにしてももちろんよい。
図2に例示するオブジェクトテーブルには、RIPアクセラレータ130に依頼する画像処理の対象となる種類の各オブジェクトについての情報が登録される。言い換えれば、印刷文書データ200の各ページに含まれるオブジェクトであっても、RIPアクセラレータ130に依頼する対象でない種類のオブジェクトについては、オブジェクトテーブルには情報が登録されない。
オブジェクトテーブルの「閾値サイズ比較」欄は、当該オブジェクトのデータサイズがあらかじめ定めた閾値より大きければ「1」、小さければ「0」とする二値のフラグデータである。RIPアクセラレータ130に依頼する画像処理の対象となる種類のオブジェクトであっても、データサイズが小さい場合は、RIPアクセラレータ130への依頼等の処理オーバーヘッドを考慮すると、ホストCPU100がソフトウエア処理した方が早いので、閾値以下のオブジェクト(「閾値サイズ比較」=「0」)については、RIPアクセラレータ130には処理を依頼しない。
DRPステータスレジスタ112は、RIPアクセラレータ130内の各DRP132の現在のステータス(使用状態)を保持するレジスタである。図3に、DRPステータスレジスタ112が保持するデータの一例を示す。この例では、レジスタ112は、サーバ(RIPアクセラレータ130のこと)ごとに、そのサーバが搭載する各DRPの情報を保持している。個々のDRPについての情報には、当該DRPの識別番号(「DRP#」)、ステータス、及び当該DRPの優先度(「ジョブ優先度」)が含まれる。ステータスは、当該DRPが現在「使用中」(「Full」。ホストCPU100から依頼された画像処理又は他の処理を実行中であること)か、「空き」(「Ready」。ホストCPU100から依頼された処理を実行しておらず、依頼を受け付け可能な状態であること)かのいずれかの値を持つ。ホストCPU100は、「空き」のDRP132に対して処理を割り当てると、そのDRP132のステータスを「使用中」に変更し、そのDRP132からその処理の完了通知を受けると、ステータスを「空き」に戻す。「ジョブ優先度」は、ジョブ(画像処理のこと)の割当に対する当該DRPの優先順位を示す値である。動的スケジューラ110は、あるページ又はオブジェクトの画像処理を割り当てる場合、ジョブ優先度の値が最も小さいDRP132に割り当てる。動的スケジューラ110は、あるDRPに画像処理を割り当てると、そのDRPのステータスを「使用中」に変更すると共に、ジョブ優先度の値を最下位の値に変更し、他のDRPのジョブ優先度の値を1順位ずつ繰り上げる。
なお、図3は、DRP132を5つ備えるRIPアクセラレータ130についての例であるが、RIPアクセラレータ130が備えるDRP132の数はこれに限られるものではない。
動的スケジューラ110は、印刷文書データ200に含まれる、依頼対象の種類であり且つ位置レベル比較の値が「1」である各オブジェクトの画像処理を各DRP132に割り当てるスケジューリング処理を実行する。ここで、動的スケジューラ110は、オブジェクトの割当を、ページ単位(すなわち1ページ内にあるオブジェクト群をまとめて1つのDRP132に割当)及びオブジェクト単位(個々のオブジェクトごとに1つのDRP132に割当)で行う機能を備える。
また、動的スケジューラ110は、印刷文書データ200を、先頭ページから順に、「特定の画像処理」に割当可能なDRP132の個数Nと同じ数のページからなる「セクション」に分割する。そして、セクションごとに、DRP132群への画像処理の割当をページ単位とするかオブジェクト単位とするかを動的に切り替える。
セクションをページ単位で各DRP132に割り当てる場合、セクション内のページ数とDRP132の数とは同じNなので、1セクションの処理では、1つのDRP132に対して1ページが割り当てられる。すなわち、この場合、N個のDRP132がNページを並列処理することになる。この方式を、「ページ並列方式」と呼ぶ。セクションを単位としているので、Nページのうち最も処理に時間を要するページ(すなわちデータサイズが最大のページ)の処理を割り当てられたDRP132が処理を終えるまでは、他のDRP132には、仮に割り当てられたページの処理を終えていたとしても、次のページ又はオブジェクトの割当は行わない。
また、セクションをオブジェクト単位で各DRP132に割り当てる場合、本実施形態では、ページごとに、そのページ内の各オブジェクトを各DRP132に割り当てる。ここで、本実施形態では、1ページに含まれるオブジェクト(依頼対象の種類であり、且つデータサイズが閾値以上のもの。以下、特に断りのない限り、「オブジェクト」とはこのような条件を満たすオブジェクトのことを言うものとする)の数がN個未満であっても、空いたDRP132に対して別のページのオブジェクトを割り当てることはしない。すなわち、N個のDRP132が、異なるページ内のオブジェクトを処理することはない。N個のDRP132がセクション内の1ページの画像処理を終えるごとに、次のページの各オブジェクトが各DRP132に割り当てられる。1ページ内のオブジェクトの数がNより多い場合、最初のN個のオブジェクトがN個のDRP132に割り当てられた後、画像処理を終えたDRP132から順に、残りのオブジェクトを割り当てる。以上に説明した割当により、RIPアクセラレータ130上のDRP132は、最大N個が並列して動作することになる。このような並列方式を「ページごとオブジェクト並列方式」と呼ぶことにする。
動的スケジューラ110は、オブジェクト・ページ情報抽出部108が作成したオブジェクトテーブルを参照して、セクションごとに、印刷文書データ内のオブジェクト群のDRP132への割当方式を、ページ並列方式及びページごとオブジェクト並列方式の間で切り替える。
DRP制御部106は、この動的スケジューラ110がセクションごとに決定した並列方式に従い、ページ単位、又はページごとにオブジェクト単位で、各DRPに処理を割り当てていく。例えば、DRP132にページ単位で処理を割り当てる場合は、当該DRP132にページの識別情報(これは当該ページの画像データの格納アドレスを示す情報でもよい)を通知する。この通知を受けたDRP132は、そのページの識別情報を用いて例えばメモリ120内にある当該ページの各オブジェクトの画像データを取得し、それら各オブジェクトのデータに対して順に画像処理を行う。また、DRP132にオブジェクト単位で処理を割り当てる場合は、当該DRP132にオブジェクトの識別情報を通知する。この通知を受けたDRP132は、そのオブジェクトの識別情報を用いて例えばメモリ120内にある当該オブジェクトの画像データを取得し、画像処理を行う。以上は、DRP132が処理対象のオブジェクトの画像データを能動的に取得しに行く方式(プル方式)の場合の例であったが、この代わりに、DRP制御部106がDRP132に対して割り当てるページ又はオブジェクトの画像データを転送する方式(プッシュ方式)を用いてももちろんよい。
次に、図4を参照して、ホストCPU100(特に動的スケジューラ110及びDRP制御部106)が行う全体的な処理手順の例を説明する。
この手順では、動的スケジューラ110は、印刷文書データの先頭ページから順に、1セクション(Nページ)を分割して切り出し(S10)、その1セクションについての並列方式、すなわちページ並列方式とページごとオブジェクト並列方式とのうちのいずれを採用するか、を決定する(S12)。並列方式が決定されると、DRP制御部106がその並列方式に従って各DRP132にページ又はオブジェクトを割り当て、並列処理を行わせる(S14)。各DRP132は、割り当てられたページ内の各オブジェクト(ページ並列方式の場合)、又は割り当てられたオブジェクト(ページごとオブジェクト並列方式の場合)の画像データに対して「特定の画像処理」を実行し、その処理結果をホストCPU100に返す。ホストCPU100は、それら各DRP132による各オブジェクトの処理結果を、ソフトウエア処理により、対応するページの画像に組み込むことにより、各ページの画像データを生成する(S16)。生成されたページの画像データは、(必要ならばいったん記憶装置にバッファされた後)プリントエンジン140に供給される。
S14でのハードウエア(HW)処理と並行して、動的スケジューラ110は、印刷文書データの最後のページに達しているかを判定し(S18)、達していなければ、印刷文書データから次のセクションを切り出し(S10)、そのセクションに適用する並列方式を決定する(S12)。このように、この実施形態では、RIPアクセラレータ130が画像処理を行っている間、ホストCPU100もコンカレントに、次のセクションの準備などの処理を行っている。
セクション分割処理(S10)の詳細な手順の例を、図5に示す。この例では、まず動的スケジューラ110は、制御変数S_PAGEを0に初期化する(S20)。S_PAGEは、今回のセクションに組み入れられたページ数を表す。また、動的スケジューラ110は、RIPアクセラレータ130内のDRP132のうち、「特定の画像処理」のために使用可能なものの数を取得する(S22)。この数は、RIPアクセラレータ130内のDRP132の総数から、「特定の画像処理」以外の処理に予約されているものの数を減算したものである。この数(又は「特定の画像処理」以外の処理に予約されているものの数)は、図示しない不揮発性の記憶装置に設定情報としてあらかじめ設定されており、S22ではその設定を参照する。次に、PDL解釈部102が印刷文書データを1ページ分ずつ解釈するごとに(S24)、そのページ内の各オブジェクト(RIPアクセラレータ130に処理を依頼する種類のもの)の情報をオブジェクトテーブル(図2参照)に登録する(S26)。ここで、当該ページに、RIPアクセラレータ130に処理を依頼する種類かつデータサイズが閾値以上(すなわち「閾値サイズ比較」が「1」)のオブジェクトが1つもなければ(S28の判定結果がYes)、印刷文書データの最終ページまで達しているかどうかを判定し(S34)、最終ページまで達していなければ、動的スケジューラ110は、S24に戻り、次のページの処理を進める。
S28で、RIPアクセラレータ130に処理を依頼する種類かつデータサイズが閾値以上のオブジェクトが当該ページに1以上あると判定された場合は、制御変数S_PAGEに1を加え(S30)、1を加えた後のS_PAGEがS22で取得したDRPの使用可能数と等しくなったかどうかを判定する(S32)。この判定の結果がYesの場合、使用可能なDRP132の数Nと同数のページ(ただし、DRP132への依頼の対象となるオブジェクトを有するものに限る)がカウントされたことになり、それらNページを1セクションとして処理を終了する。S32の判定結果がNoの場合は、印刷文書データの最終ページまで達しているかどうかを判定し(S34)、最終ページまで達していなければ、動的スケジューラ110は、S24に戻り、次のページの処理を進める。S34で最終ページに達したと判定された場合、セクションに組み入れられページ数はN未満であるが、それらN未満のページを1セクションとし、処理を終了する。
次に、並列方式決定処理(S12)の全体的な処理手順の一例を、図6を参照して説明する。この手順では、動的スケジューラ110は、S10で求められたセクションについて、当該セクションをページ並列方式で各DRP132に並列処理させた場合に、当該セクションの画像処理の開始から全ページの画像処理が完了するまでに要する所要時間T1を推定する(S40)。また、S40では、当該セクション内でページ順が後のページの画像処理の完了が、前のページの画像処理の完了を追い越す(すなわち後のページが前のページよりも早く完了する)場合の追い越し時間の最大値Δtmaxを求める。例えば、当該セクション内の2ページ目以降のページごとに、当該ページよりもページ順が前の各ページがそれぞれ割当先のDRP132で画像処理されるのに要する推定所要時間から、当該ページの推定所要時間を減算し、その減算結果の最大値を当該ページの最大追い越し時間とする。そして、2〜Nページの各ページについての最大追い越し時間の中の最大値を、Δtmaxとする。Δtmaxが負の値であれば、当該ページについては、ページ順が後のページの処理完了が前のページの処理完了を追い越すことはない。なお、このS40の処理の詳細な例は、後で図7を参照して説明する。
また、動的スケジューラ110は、当該セクションをページごとオブジェクト並列方式で各DRP132に並列処理させた場合に、当該セクションの画像処理の開始から全ページの画像処理が完了するまでに要する所要時間T2を推定する(S42)。このS42の処理の詳細な例は、後で図8を参照して説明する。
なお、S40とS42の処理はいずれを先に実行してもよい。
次に、動的スケジューラ110は、S40で求められた最大追い越し時間Δtmaxが、あらかじめ定められた正の閾値Th_overpass以上であるかどうかを判定する(S44)。閾値Th_overpassは、セクション内でのページの追い越しの許容量を示す。セクション内の後のページの画像処理が前のページよりも、この閾値以上早く完了する場合、ページ順に印刷するためには、後のページを大きく待たせる必要があり、円滑な処理の妨げとなる。そこで、本実施形態では、S44でΔtmaxがTh_overpass以上であると判定された場合には、セクションの処理に要する所要時間T1、T2の大小関係によらず、強制的にページごとオブジェクト並列方式を採用する(S46)。これにより、ページ並列方式を用いた場合の過大な追い越しが防止される。
S44でΔtmaxがTh_overpass未満であると判定された場合には、動的スケジューラ110は、各並列方式でセクションの処理に要する所要時間T1とT2とを比較し(S48)、所要時間が短い方の並列方式を採用する。すなわち、T1がT2以上であれば、T2に対応するページごとオブジェクト並列方式を採用し(S46)、そうでなければT1に対応するページ並列方式を採用する(S50)。
次に、S40の詳細な処理手順の例を、図7を参照して説明する。この例では、まず制御変数nを1に、T1を0に、それぞれ初期化する(S60)。nはセクション内のページ番号を示す。次に、当該セクションのnページ目に含まれる全オブジェクトの画像処理に要する推定所要時間を合計する(S62)。各ページ内の各オブジェクトの画像処理に要する推定所要時間は、図2に例示したオブジェクトテーブルから求めることができるので、S62では、それら各オブジェクトの推定所要時間を合計すればよい。そして、その合計値T_tmpがT1より大きければ(S64の判定結果がYes)、変数T1にT_tmpの値を代入する(S66)。合計値T_tmpがT1以下であれば(S64の判定結果がNo)、S66はスキップする。次に、S_PAGEからnを減算(S68)した結果であるS_Pが0に達したかどうか(すなわちセクションの全ページ数S_PAGE分の検査を終えたか否か)を判定し(S70)、達していなければ、nを1だけ増やし(S72)、次のページについてS62以下の処理を繰り返す。ページ並列方式の場合、N個のDRP132にそれぞれ1ページずつ割り当てるので、当該セクション全体の処理に要する所要時間は、当該セクションの中でデータサイズが最大のページの推定所要時間に等しい。S62からS72のループをセクションの全ページについて繰り返すことで、変数T1には、そのセクション内で最も処理に長い時間を要するページの推定所要時間が代入されていることになり、これが当該セクションについての推定所要時間となる。
S70でS_Pが0に達したと判定した場合、当該セクションの全てのページが調べ終わったことになる。この場合、動的スケジューラ110は、これまでのループで求めた当該セクション内の各ページの推定所要時間から、最大追い越し時間Δtmaxを計算し(S74)、この最大追い越し時間Δtmaxと当該セクションの推定所要時間T1の値を出力する(S76)。
次に、S42の詳細な処理手順の例を、図8を参照して説明する。この例では、動的スケジューラ110は、まず制御変数nを1に、mを1に、T2を0に、それぞれ初期化する(S80)。nはセクション内のページ番号を、mは1ページ内のオブジェクトの番号を、それぞれ示す。また、図示は省略したが、S80では、ページごと最大処理時間T_2_nを0に初期化する。ページごと最大処理時間T_2_nは、n番目のページ内のオブジェクト群をN個のDRP132で並列処理した場合に、もっとも長く処理を行うDRP132の処理時間を表す変数である。次に、各DRPカウンタDRP_Num_tを0に初期化する(S82)。
各DRPカウンタDRP_Num_tは、RIPアクセラレータ130内のN個のDRP132のうちのNum番目のもの(DRP_Num)について割り当てられる0個以上のオブジェクトの推定所要時間の合計を保持するための変数である。次に動的スケジューラ110は、DRPカウンタDRP_num_tの値が最小であるDRP132(このDRPがDRP_numであるとする)を、第nページの第m番目のオブジェクトの割当対象に選択する(S84)。そして、第nページの第m番目のオブジェクトの推定所要時間Tn_mをオブジェクトテーブル(図2参照)から読み出し(S86)、このTn_mをS84で選択したDRP132(DRP_num)の合計処理時間DRP_num_tに加算する(S88)。そして、この加算後のDRP_num_tがT_2_nより大きくなった場合(S90の判定結果がYes)、DRP_num_tの値をT_2_nに代入する(S92)。すなわち、S88の加算により、DRP_numの合計処理時間がN個のDRP132の中で最長になったので、T_2_nの値をこの最長の処理時間に置き換えるのである。一方、加算後のDRP_num_tがT_2_n以下の場合(S90の判定結果がNo)、S92はスキップする。そして、オブジェクトテーブルにある第nページの最後のオブジェクトまで処理が完了したかどうかを判定し(S94)、完了していなければ、オブジェクト番号mを1つ増やし(S96)、次のページを対象としてS84以下の処理を繰り返す。
S94で、第nページの最後のオブジェクトまで処理が完了したと判定した場合、その時点でのT_2_nの値を、当該セクションの第nページの並列処理に要する時間として保持する(S98)。そして、当該セクションの全ページについての処理が完了したかどうかを判定し(S100)、まだ未処理のページがあれば、ページ番号nを1増やして(S102)、次のページについて、S82以下の処理を繰り返す。そして、S100でセクションの全ページの処理が完了したと判定すると、動的スケジューラ110は、保持している各ページの処理時間T_2_nを、全ページにわたって総和し、この総和をT2として出力する(S104)。
以上、動的スケジューラ110を含むホストCPU100の処理手順の例を、図4〜図8のフローチャートを参照して説明したが、それらフローチャートに示した手順はあくまで一例に過ぎない。同様の処理結果が得られる手順であれば、別の手順を用いてももちろんよい。
次に、図9及び図10を参照して、ページ並列方式及びページごとオブジェクト並列方式による画像処理の進行の仕方を説明する。図9及び図10は、いずれも横方向が時間の流れを示し、時間は左から右に流れるとする。また、これらはいずれもDRPが4つ並列処理を行う場合の例を示す。
図9は、ページ並列方式での画像処理の進行の様子を示す。まず、左から右へと時間の流れに沿って順に説明していくと、印刷文書データのRIP処理を開始すると、まずホストCPU100(動的スケジューラ110)は、ソフトウエア(SW)処理により、セクション分割A(図4のS10、図5参照)の処理にてPDL解釈、オブジェクトテーブルの作成、第1セクションの切り出しを行う。この例では、DRPが4個なので、第1〜4ページが1セクションとして切り出される。そして、分割したセクションについて並列方式決定処理B(図4のS12、図6参照)を行う。この例では、並列方式がページ並列と決定されたとする。この結果を受けて、DRP制御部106は、4つのDRP1〜4に対し、この順に、第1〜4ページの画像処理を割り当てる。DRP1〜4は、割り当てられたページを並列処理する。このDRP1〜4によるハードウエア(HW)での画像処理と並行して、ホストCPU100は、セクション分割Aを進めて第2セクションを切り出し、この第2セクションについて並列方式の判定Bを行う。
印刷文書データ内の全セクションの並列方式をすべて決定した後で、DRP1〜4による並列処理を開始する方式も考えられるが、この方式では、全セクションの並列方式が決定されるまで、画像処理及び印刷は開始されない。これに対し、本実施形態では、図9に例示したように1セクションずつ並列方式を決定しているので、全セクションの並列方式の決定を待たなくても、第1セクションの並列方式が決定されれば、画像処理が開始される。また、本実施形態では、第2セクション以降の並列方式は、直前のセクションについてDRPが画像処理を行っている間に決定されるので、並列方式の決定のための処理に要する時間が実質的に隠蔽される。
図9の例では、ページ内のオブジェクト群のデータサイズが、1,4,3,2ページの順に少ないので、DRPによる画像処理はその順番で完了する。この例では、第3頁の処理完了は第2頁の処理完了を追い越し、第4ページの処理完了は第2及び第3ページの処理完了を追い越す。特に第2ページに対する第4ページの追い越し時間が当該セクションでの最大追い越し量Δtmaxとなる。この例では、このΔtmaxは、追い越し許容量である閾値以下であるとする。ホストCPU100は、各DRPでの画像処理が完了した順番に、それら画像処理の結果のデータを用いて各ページの画像を生成し、いったんバッファに蓄積し、ページ順にプリントエンジン140に供給する。
図10は、ページごとオブジェクト並列方式での画像処理の進行の様子を示す。この例では、印刷文書データのRIP処理を開始すると、まずホストCPU100(動的スケジューラ110)は、ソフトウエア(SW)処理により、セクション分割Aにより第1セクションの切り出しを行い、この例では、DRPの個数に対応した第1〜4ページが1セクションとして切り出される。そして、分割したセクションについての並列方式決定処理Bにより、この例ではページごとオブジェクト並列方式が採用される。これに応じて、DRP制御部106は、まず4つのDRP1〜4に対し、第1ページの各オブジェクトを順に割り当てていく。図では、横長の矩形ボックスが1つのオブジェクトを示しており、図示例では第1ページは5個のオブジェクトから構成されている。これら5個のオブジェクトが先頭から順にまずDRP1〜4に1つずつ割り当てられ、DRP1〜4はそれら割り当てられたオブジェクトを並列処理する。1つ目のオブジェクトの画像処理を最も早く終えたDRP4に対し、更に残りの1個のオブジェクトが割り当てられる。図示例では、第1ページの処理に要した時間は、DRP2が最もサイズの大きいオブジェクトを処理するのに要した時間に等しい。
DRPによる第1ページの画像処理が完了すると、ホストCPU100は、その処理結果を用いて第1ページの画像データを構成し、プリントエンジン140に供給する。このホストCPU100によるソフトウエア処理でのページ画像の構成と並行して、DRP制御部106は第2ページの各オブジェクトをDRP1〜4に割り当てて並列処理させる。DRPによる第2ページの画像処理が完了すると、ホストCPU100は、その処理結果を用いて第2ページの画像データを構成し、プリントエンジン140に供給する。このような処理が、更に、第1セクションの第3及び4ページについても行われる。
このDRP1〜4によるハードウエア(HW)での画像処理と並行して、ホストCPU100は、第2セクションのためのセクション分割Aと並列方式判定Bを行う。DRPによる画像処理は、ソフトウエアによる処理よりは高速であるが、処理する画像データの量が極めて多いため、セクション分割A及び並列方式判定Bのソフトウエア処理よりもはるかに長い時間がかかる。このため、セクション分割Aと並列方式判定Bは、その長いハードウエアでの画像処理の間の、ごく一部の期間に行えばよい。図10の例では、第2ページと第3ページのページ画像構成処理同士の間で、セクション分割Aと並列方式判定Bが行われているが、これは一例に過ぎない。
以上のようにして、第1セクションの第4ページまでの画像処理が完了すると、DRP制御部106は、第2セクションについての並列方式の判定結果に従い、第2セクションの割当を行う。
次に、印刷文書データの具体例を挙げて、セクションに対する並列方式がどのように判定されるのかを説明する。この例では、印刷文書データが、図11に示すような8ページから構成されているものとする。ページ1〜8の各ページ内の番号付きの矩形ボックスが、当該ページ内のオブジェクトを示す。例えば、ページ1は4つ、ページ2は1つのオブジェクトを有している。ページ7,8はオブジェクトを1つも持たない(例えば、画像処理の必要がないテキストのみのページ)。図12は、この印刷文書データについてのオブジェクトテーブルのデータ内容を示す。この例では、全ページの全オブジェクトが、「閾値サイズ比較」(図2参照)が「1」、すなわちDRPによる画像処理の対象、である(ただし、ページ7,8はオブジェクトを含まない)。
このような印刷文書データを、4個のDRP1〜4で並列処理することを考える。この場合、常にページ並列方式を採用したとすると、図13Aに示すように、まずページ1〜4のセクションについては、オブジェクトのデータサイズの合計が最大であるページ1(データサイズ合計470Kbyte)の処理所要時間(470K相当)を要する。次のページ5〜6(ページ7,8はオブジェクトがないので対象外)からなるセクションについては、DRPによる画像処理に、データサイズ合計が最大のページ5の所要時間(590K相当)を要する。したがって、ページ1〜8全体では、画像処理に、470K+590K=1060K相当の時間を要する。
また、常にページごとオブジェクト並列方式を採用したとすると、図13Bに示すように、まずページ1については、最大サイズのオブジェクト(300Kbyte)に相当する処理時間を要する。ページ2には、オブジェクトが1つしかないので、全体としてそのオブジェクトのサイズ(70Kbyte)に応じた処理時間を要する。なお、ページ2の処理の間は、そのオブジェクトを処理しているDRP1以外の各DRP2〜4は遊休状態である。同様の遊休状態は、ページ3,4,6でも生じる。8ページ全体での画像処理の所要時間は、各ページについての所要時間の合計であり、この例では1110K相当の時間となる。
以上に例示した常に同一の並列方式を用いる場合と比べて、セクションごとに適応的に並列方式を選択する本実施形態の制御では、画像処理の流れは図13Cに示すようになる。この例では、ページ1〜4からなる第1セクションに対してはページ並列方式が選択され、ページ5〜6からなる第2セクションに対してはページごとオブジェクト並列方式が選択される。この場合、第1セクションの所要時間は470K相当、第2セクションの所要時間は240K相当なので、8ページ全体についての所要時間は710K相当となる。仮に1Kbyte当たりのDRPの処理所要時間が1msであるとすると、この実施形態の適応選択方式は、常にページ並列方式を採用する場合よりも350ms、常にページごとオブジェクト並列方式を採用する場合よりも400ms、所要時間が短い。
以上に説明したように、この実施形態では、印刷文書データを、DRPの個数と同じページ数ずつ1つのセクションとし、このセクションごとに並列方式を選択する。ここで、DRPに画像処理を依頼する対象となるオブジェクトを1つも持たないページがある場合、そのページはセクションに入れず、その後に続くそのような対象のオブジェクトを含むページをセクションに入れる。したがって、セクション内の全てのページが、対象のオブジェクトを持つこととなる。セクションの並列方式としてページ並列が選択された場合は、各DRPは必ず1ページの画像処理を担当するので、完全に遊休状態となるDRPは存在しない。また、ページごとオブジェクト並列方式が選択されるのは、ページ並列方式よりもセクション全体での画像処理の所要時間が短い場合なので、この場合、ページごとでは仮に遊休状態となるDRPが存在したとしても、セクション全体では、ページ並列方式よりも処理が高速となる。
なお、FPOT(First Print of Time:印刷開始指示から1ページ目が出力されるまでの時間)を短くするために、1ページ目については必ずオブジェクト並列方式を採用し、2ページ目以降について、上記実施形態に示したセクションごとの適応的選択を行うようにしてもよい。また、1ページ目を必ずオブジェクト並列方式とするのではなく、1ページ目が1つしかオブジェクトを含まない場合には1ページ目から上記実施形態の適応的選択を行い、1ページ目が複数のオブジェクト(DRPへの依頼対象のものに限る)を有する場合には、1ページ目をオブジェクト並列方式とし、2ページ目以降に本実施形態の方式を用いてもよい。
また、印刷文書データの総ページ数がDRPの個数よりも少ない場合は、自動的にオブジェクト並列方式を選択するようにしてもよい。
以上の例では、ホストCPU100から依頼される特定の画像処理を担当するハードウエア画像処理回路としてDRP132を例示したが、これは一例に過ぎない。DRP132の代わりに、特定の画像処理を構成する各処理のためのハードウエア論理回路を集積した集積回路(ASIC(特定用途向けIC)やLSI(Large Scale Integration)など)をN個並列に設けてもよい。
100 ホストCPU、102 PDL解釈部、104 メモリ・IO制御部、106 DRP制御部、108 オブジェクト・ページ情報抽出部、110 動的スケジューラ、112 DRPステータスレジスタ、120 メモリ、130 RIPアクセラレータ、132−1〜132−N DRP、140 プリントエンジン。

Claims (6)

  1. N個(Nは2以上の整数)の画像処理回路と、
    印刷対象文書のNページごとに、当該Nページについての画像処理を前記各画像処理回路に対してページ単位で割り当てて並列処理させるページ並列方式と、1ページごとにオブジェクト単位で割り当てて並列処理させるページごとオブジェクト並列方式と、とのそれぞれについて当該Nページの画像処理に要する所要時間を推定し、前記ページ並列方式と前記ページごとオブジェクト並列方式とのうち推定した所要時間が短い方の方式を当該Nページのための並列方式として選択する選択手段と、
    前記選択手段が選択した並列方式に従って、前記N個の画像処理回路に対して当該Nページについての画像処理の割り当てを行う割当手段と、
    を備え
    前記選択手段は、
    ページごとに当該ページに含まれるオブジェクトの画像処理の推定所要時間を総和することで当該ページについての画像処理の推定所要時間を求め、前記Nページの各ページについての画像処理の推定所要時間のうちの最長のものを、前記ページ並列方式での前記Nページの画像処理に要する所要時間と推定し、
    前記画像処理回路ごとに当該画像処理回路に割り当てられたオブジェクトの画像処理の推定所要時間の和を保持し、ページ内のオブジェクトを画像処理回路に割り当てるごとに当該オブジェクトの画像処理の推定所要時間を当該画像処理装置に対応する前記和に対して加算し、ページ内のすべてのオブジェクトを割り当て終えたときの各画像処理回路についての前記和のうちの最大値を当該ページについての画像処理の推定所要時間とし、前記Nページの各ページについての画像処理の推定所要時間の総和を、前記ページごとオブジェクト並列方式での前記Nページの画像処理に要する所要時間と推定する、
    ことを特徴とする印刷画像処理装置。
  2. 前記選択手段は、当該割当手段の機能を記述したプログラムをコンピュータに実行させることにより実現されたものであり、
    前記選択手段は、前記N個の画像処理回路が前記Nページについて前記割当手段から割り当てられた画像処理を実行している間に、次のNページについての並列方式を選択する、
    ことを特徴とする請求項1に記載の印刷画像処理装置。
  3. 前記選択手段は、前記ページ並列方式において、前記Nページのうちページ順が後のページについての画像処理の所要時間が、ページ順が前のページについての画像処理の所要時間よりも閾値以上短い場合には、前記ページ並列方式の方が当該Nページの画像処理に要する所要時間が短くても、前記ページごとオブジェクト並列方式を、当該Nページについての並列方式として選択する、ことを特徴とする請求項1又は2に記載の印刷画像処理装置。
  4. 前記選択手段は、印刷対象文書のページのうち、前記画像処理回路の処理対象となるオブジェクトを1つも含まないページについては、前記Nページごとの単位には含めず、前記処理対象となるオブジェクトを1以上含んだ後続のページをその単位に含める、ことを特徴とする請求項1から3のいずれか1項に記載の印刷画像処理装置。
  5. 前記印刷対象文書の第1ページに含まれる各オブジェクトを前記各画像処理回路に割り当てて並列に処理させる第1ページ並列処理手段を更に備え、
    前記選択手段は、前記印刷対象文書の第2ページ以降についてNページごとに前記並列方式の選択を行う、
    ことを特徴とする請求項1から4のいずれか1項に記載の印刷画像処理装置。
  6. N個(Nは2以上の整数)の画像処理回路に接続されたコンピュータを、
    印刷対象文書のNページごとに、当該Nページについての画像処理を前記各画像処理回路に対してページ単位で割り当てて並列処理させるページ並列方式と、1ページごとにオブジェクト単位で割り当てて並列処理させるページごとオブジェクト並列方式と、とのそれぞれについて当該Nページの画像処理に要する所要時間を推定し、前記ページ並列方式と前記ページごとオブジェクト並列方式とのうち推定した所要時間が短い方の方式を当該Nページのための並列方式として選択する選択手段、
    前記選択手段が選択した並列方式に従って、前記N個の画像処理回路に対して当該Nページについての画像処理の割り当てを行う割当手段、
    として機能させるためのプログラムであって、
    前記選択手段は、
    ページごとに当該ページに含まれるオブジェクトの画像処理の推定所要時間を総和することで当該ページについての画像処理の推定所要時間を求め、前記Nページの各ページについての画像処理の推定所要時間のうちの最長のものを、前記ページ並列方式での前記Nページの画像処理に要する所要時間と推定し、
    前記画像処理回路ごとに当該画像処理回路に割り当てられたオブジェクトの画像処理の推定所要時間の和を保持し、ページ内のオブジェクトを画像処理回路に割り当てるごとに当該オブジェクトの画像処理の推定所要時間を当該画像処理装置に対応する前記和に対して加算し、ページ内のすべてのオブジェクトを割り当て終えたときの各画像処理回路についての前記和のうちの最大値を当該ページについての画像処理の推定所要時間とし、前記Nページの各ページについての画像処理の推定所要時間の総和を、前記ページごとオブジェクト並列方式での前記Nページの画像処理に要する所要時間と推定する、
    ことを特徴とするプログラム
JP2010142893A 2010-06-23 2010-06-23 印刷画像処理装置及びプログラム Active JP5655392B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010142893A JP5655392B2 (ja) 2010-06-23 2010-06-23 印刷画像処理装置及びプログラム
US12/912,278 US8587793B2 (en) 2010-06-23 2010-10-26 Print image processing apparatus and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010142893A JP5655392B2 (ja) 2010-06-23 2010-06-23 印刷画像処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2012006202A JP2012006202A (ja) 2012-01-12
JP5655392B2 true JP5655392B2 (ja) 2015-01-21

Family

ID=45352291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010142893A Active JP5655392B2 (ja) 2010-06-23 2010-06-23 印刷画像処理装置及びプログラム

Country Status (2)

Country Link
US (1) US8587793B2 (ja)
JP (1) JP5655392B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012171239A (ja) * 2011-02-22 2012-09-10 Canon Inc 画像形成装置、画像形成装置の制御方法、プログラム
JP5895428B2 (ja) * 2011-09-30 2016-03-30 セイコーエプソン株式会社 印刷装置およびその制御方法
JP5141995B1 (ja) * 2012-02-01 2013-02-13 富士ゼロックス株式会社 印刷制御装置、画像形成システムおよびプログラム
JP5051327B1 (ja) * 2012-03-22 2012-10-17 富士ゼロックス株式会社 画像処理装置及びプログラム
US9313162B2 (en) 2012-12-13 2016-04-12 Microsoft Technology Licensing, Llc Task completion in email using third party app
US10528385B2 (en) 2012-12-13 2020-01-07 Microsoft Technology Licensing, Llc Task completion through inter-application communication
US20140173602A1 (en) * 2012-12-14 2014-06-19 Microsoft Corporation Matching Opportunity to Context
JP6272061B2 (ja) * 2014-01-31 2018-01-31 キヤノン株式会社 画像形成装置、その制御方法、及びプログラム
US20180129994A1 (en) 2016-11-06 2018-05-10 Microsoft Technology Licensing, Llc Efficiency enhancements in task management applications

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10177462A (ja) * 1996-12-17 1998-06-30 Hitachi Koki Co Ltd ページプリンタ制御装置
JPH10240459A (ja) * 1997-02-26 1998-09-11 Fuji Xerox Co Ltd 印刷制御装置
JP4174140B2 (ja) 1998-09-21 2008-10-29 キヤノン株式会社 画像形成装置、画像形成方法及び記憶媒体
US7072052B1 (en) * 2000-07-21 2006-07-04 Canon Kabushiki Kaisha Efficient rasterization system and method
JP2003084933A (ja) * 2001-09-14 2003-03-20 Fuji Xerox Co Ltd 画像処理装置およびプログラム
JP4090908B2 (ja) 2003-02-21 2008-05-28 シャープ株式会社 画像処理装置および画像形成装置
US7861156B2 (en) * 2003-05-29 2010-12-28 Electronics For Imaging, Inc. Methods and apparatus for parallel processing page description language data
JP2005202667A (ja) 2004-01-15 2005-07-28 Seiko Epson Corp ハードウェア機能可変印刷装置およびハードウェア機能変更プログラム、並びにハードウェア機能変更方法
JP4405884B2 (ja) 2004-09-22 2010-01-27 キヤノン株式会社 描画処理回路、及び画像出力制御装置
JP4738948B2 (ja) * 2005-09-13 2011-08-03 キヤノン株式会社 情報処理装置、画像処理方法、及びコンピュータプログラム
JP5071707B2 (ja) 2007-06-22 2012-11-14 富士ゼロックス株式会社 データ処理装置およびその制御方法
US8130400B2 (en) * 2008-03-20 2012-03-06 Eastman Kodak Company Multiple processor print driver
JP4458176B2 (ja) * 2008-03-25 2010-04-28 富士ゼロックス株式会社 印刷制御装置、印刷装置およびプログラム

Also Published As

Publication number Publication date
US8587793B2 (en) 2013-11-19
JP2012006202A (ja) 2012-01-12
US20110317205A1 (en) 2011-12-29

Similar Documents

Publication Publication Date Title
JP5655392B2 (ja) 印刷画像処理装置及びプログラム
JP5051327B1 (ja) 画像処理装置及びプログラム
US8625133B2 (en) Print data processing apparatus, print data processing method, and storage medium
JP5354458B2 (ja) 画像処理装置、画像出力制御システム、画像形成システムおよびプログラム
JP5594470B2 (ja) 印刷制御装置、印刷システムおよびプログラム
US9672063B2 (en) Scheduling, interpreting and rasterising tasks in a multi-threaded raster image processor
JP5482238B2 (ja) 画像処理装置、画像形成装置、画像処理方法、画像形成方法及びプログラム
JP5268427B2 (ja) 画像形成装置及び画像形成システム
US8928914B2 (en) Image processing apparatus, information processing method, and storage medium
US9286012B2 (en) System and method for efficiently imposing a print job in a print production workflow
US8614822B2 (en) Print data processing apparatus, print data processing method, and storage medium
JP3871011B2 (ja) 情報処理装置および情報処理方法
JP5424778B2 (ja) 印刷データ処理装置、印刷データ処理方法、プログラム
JP6372315B2 (ja) 画像処理装置及び並列処理制御プログラム並びに並列処理制御方法
JP5936363B2 (ja) 画像処理装置及び画像処理方法
JP2010282152A (ja) 画像形成装置
JP2011143576A (ja) 印刷データ生成装置、画像形成装置及びプログラム
JP3787907B2 (ja) 電子印刷装置
JP6128104B2 (ja) 画像処理装置、その制御方法、およびプログラム
JP3864535B2 (ja) 印刷処理装置および印刷処理方法
US11205242B2 (en) Memory error recovery for complex page RIP
JPH10305623A (ja) 印刷データ処理装置および印刷データ処理方法
JP4343976B2 (ja) 画像形成装置
JP2006092125A (ja) 画像処理装置、画像処理方法、プログラムおよび記憶媒体
JP2004252929A (ja) 印刷処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140527

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140722

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: 20141028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141110

R150 Certificate of patent or registration of utility model

Ref document number: 5655392

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350