(57)【要約】【課題】  PDFをページ並列処理する場合、ページ単位で処理を行っているため、ページ間共通のリソースを使用する際には、ページ毎に仮想メモリにリソースを展開することが必要だが、オーバーヘッドとなって各ページ毎の処理時間が増加する。【解決手段】  仮想メモリに展開されたリソースを、各ＣＰＵコア割り振り予定ページで使わない場合に削除する。ジョブ時間に影響を与えないように、ＣＰＵコアへのページ割り振り方法を効率的に切り替えて処理を行う。【選択図】  図３
2015020404.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵコアを用いて画像形成に関わる処理を並列して実行可能な画像形成装置（２００）において、ＰＤＦデータをページ毎に中間データに生成する処理を行うデータ生成手段（２０３）と、ＰＤＦデータ内のページ間の共通リソースを保持できるデータ保持手段（７０１、７０２）と、前記データ保持手段で保持した共通リソースを削除できるデータ削除手段（Ｓ６０７）と、複数のＣＰＵコアに対し、処理を行うページの割り振り方法を切り替えられる制御手段（Ｓ６０１、Ｓ６０２、Ｓ６０３）を持つことを特徴とする画像形成装置。
【請求項２】
前記切り替えられるページの割り振り方法の少なくとも一つはページバランシング割り振り方式である（Ｓ３０３）ことを特徴とし、切り替えられるページの割り振り方法の少なくとも一つは固定ページ割り振り方式である（Ｓ３０４）ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
ＰＤＦデータのページ数を閾値とし、ＰＤＦデータのページ数が閾値以上であるかを判定し（Ｓ３０２）、閾値以上であれば固定ページ割り振り方式でページ割り振りを行い（Ｓ３０４）、閾値未満であればページバランシング割り振り方式でページ割り振りを行う（Ｓ３０３）ことを特徴とする請求項１に記載の画像形成装置。
【請求項４】
ＰＤＦデータのページ数の先頭から一定割合数以上のページは前記ページバランシング割り振り方式でページ割り振りする（Ｓ６０１、Ｓ６０２）ことを特徴とする請求項１に記載の画像形成装置。
【請求項５】
固定ページ割り振り方式において、ＰＤＦデータの処理開始時に各ＣＰＵコアに割り振るページを決定できる決定手段（Ｓ４０１）と、ページで使用するリソースを解析する解析手段（Ｓ４０２）と、リソースが最後に使われるページを解析する解析手段（Ｓ４０４）を持つことを特徴とする。ページ処理終了時に各ＣＰＵコアへの割り振り予定ページで使用しないかを判断し（Ｓ６０６）、リソースを仮想メモリから削除する削除手段（Ｓ６０７）を持つことを特徴とする請求項３に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、その制御方法及びプログラムに関するものである。
【背景技術】
【０００２】
複写機、レーザプリンタ等の画像形成装置は、ホストコンピュータからのプリントデータを受け取り、そのデータの解釈及び画像処理を行い、印字するための画像データを生成するコントローラを備える。ホストコンピュータのアプリケーションとプリンタドライバはページ記述言語（ＰＤＬ）により記述されたプリントデータを生成し、ネットワーク等の通信媒体を介してコントローラにデータ送信する。ＰＤＬとしては、アドビシステムズ社が開発したPostScript、PDF、ヒューレットパッカード社が開発したPCL、マイクロソフト社が開発したXPSなどが知られている。
【０００３】
近年、ＣＰＵクロックの向上が頭打ちとなり、複数のコアを単一パッケージに格納したマルチコア化が進んでいる。マルチコア化したＣＰＵの性能をフルに引き出すためには、ＰＤＬ処理の並列化が必要であり、幾つかの方法が考案されている。例えば、複数ジョブを複数のコアで同時並行してＰＤＬ処理するジョブ並列処理方式がある。また、単一ジョブ内の複数ページを複数のコアで同時並行してＰＤＬ処理するページ並列処理方式がある。ページ並列処理方法を用いて、全体的な処理時間の向上、生産性の向上を目指す方法も提案されている。
【０００４】
特許文献１では、ページ処理をDL生成処理とバンド描画処理に分け、複数ページを複数コアを使ってDL生成処理を行い、生成されたDLから、ページ番号の小さいページのバンド描画処理を複数コアに割り当てて処理をする方法が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１６７８５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
PDFデータの処理方法として、PDFデータからPostScriptデータへの変換処理を行いながら、生成されたPostScriptデータの処理を行う方法がある。PDFデータ内のページ間で共通に使われるリソースは、PDFデータからPostScripデータへ変換する際にPostScriptデータに埋め込まれる。PostScriptデータの処理を行う際に、リソースが仮想メモリに展開されて使用され、該当ページ以降でも仮想メモリから使用することが可能である。
【０００７】
複数コアを用いてPDFデータをページ並列処理する場合、1ページ毎にPostScriptデータへ変換する処理とページ処理が行われ、ページ処理が終了すると次のページ処理が割り振られる。PDFデータ内で共通に使うリソースが1ページ毎に生成されたPostScripデータに埋め込まれるため、各ページで使用するリソースは各々のページで生成されるPostScriptデータに埋め込まれる。PostScriptデータの処理を行う際に、リソースが仮想メモリに展開されて使用され、該当ページ処理が終了すると、仮想メモリ内から削除される。
【０００８】
他のページで同じリソースを使用する際には、仮想メモリに再展開する必要がある。ページ毎にリソースをPostScriptデータに埋め込む処理と、仮想メモリに展開する処理がオーバーヘッドとなり、各ページの処理時間が増加する。
【課題を解決するための手段】
【０００９】
複数のＣＰＵコアを用いて画像形成に関わる処理を並列して実行可能な画像形成装置（２００）において、以下の手段を持つことを特徴とする画像形成装置。
【００１０】
ＰＤＦデータをページ毎に中間データに生成する処理を行うデータ生成手段（２０３）。
【００１１】
ＰＤＦデータ内のページ間の共通リソースを保持できるデータ保持手段（７０１、７０２）。
【００１２】
前記データ保持手段で保持した共通リソースを削除できるデータ削除手段（Ｓ６０７）。
【００１３】
複数のＣＰＵコアに対し、処理を行うページの割り振り方法を切り替えられる制御手段（Ｓ６０１、Ｓ６０２、Ｓ６０３）。
【発明の効果】
【００１４】
本発明では、複数のＣＰＵコアを用いた際のＰＤＦデータ処理において、ページ間共通のリソースを仮想メモリに展開する処理の削減と、仮想メモリ内全クリアする処理の削減と、ページ処理を複数ＣＰＵコアにバランスよく割り当てる方法を提案する。本発明により、複数のＣＰＵコアを用いた際のＰＤＦデータ処理において、前記オーバーヘッドを発生させづらくし、両方のＣＰＵコアにバランス良くページ処理を割り振ることにより、各ページ処理時間の増加を防ぐことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態を説明するハードウェアブロック図
【図２（Ａ）】本発明の一実施形態を説明するソフトウェアブロック図
【図２（Ｂ）】PDFインタプリタの詳細を説明するソフトウェアブロック図
【図３】PDFジョブ開始から終了までの処理を示したフローチャート。
【図４】各ページ毎のリソース使用状況解析の処理を示したフローチャート。
【図５】図４の処理結果を可視化した図。
【図６】各ページ毎のページ割り振り処理、ページ処理を示したフローチャート。
【図７（Ａ）】本発明実施時のCPUコアへのページ割り当て、仮想メモリ使用状況の例
【図７（Ｂ）】図７（A）の説明例で使用したPDFデータの例
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１７】
［実施例］
図１は本実施形態の画像形成装置の構成を説明するハードウェアブロック図である。なお、本実施形態では画像形成装置単体の構成を用いて説明するが、ネットワークを介して接続させるホストコンピュータ上に多くの処理を分離実行させる構成も可能である。
【００１８】
図1において、200はコントローラユニットで画像信号やデバイス情報の入出力を制御する。CPU1はROM3あるいはHDD4に記憶されたプログラムをRAM2に読み出し、実行する。さらに、システムバス5に接続される各デバイスをCPU1が統括的に制御する。CPU1は内部に二つのコアを有するデュアルコアプロセッサであり、二つの制御プログラムを同時並列に実行可能である。RAM2は、CPU1の主メモリ、ワークエリアとして機能する。ROM3には電源ON時に実行されるブートプログラムが格納され、HDD4にはオペレーティングシステムと本装置の制御プログラム本体が格納される。
【００１９】
また、HDD4は画像データやプリントデータ等の大容量データを一時的あるいは長期的に保持する目的でも使用される。Network6はローカルエリアネットワーク13に接続し、印刷データやデバイス情報の入出力を担う。操作部I/F7は操作部14とのインターフェース部で、操作部14に表示する画像データを操作部14に対して出力する。また、操作部14から本装置の使用者が入力した情報を、CPU1に伝える役割をする。操作部14は、出力器として液晶パネルと音源を備え、入力器としてタッチパネルとハードキーを備えるものである。
【００２０】
コントローラユニット200はデバイスI/F8を介して、プリンタエンジン15に接続される。デバイスI/F8はCPU1の指示に基づき、画像信号の送出、デバイス動作指示、デバイス情報の受信を行う。プリンタエンジン15はコントローラユニット200からの画像信号を媒体上に出力する出力機であり、電子写真方式、インクジェット方式の何れでも構わない。Raster Image Processor(RIP)9はディスプレイリスト（以後、DLと略記する）をラスタイメージに展開する専用ハードウェアである。RIP9はCPU1によりRAM2上に生成されたDLを高速かつ、CPU1の実行と並列に、処理するものである。
【００２１】
プリンタ画像処理部10は、プリント出力画像データに対して、画像補正、ハーフトーニング等を行う。画像回転部12は画像データの回転を行う。画像圧伸部11は、多値画像データはJPEG、2値画像データはJBIG、MMR、MHの圧縮伸張処理を行う。
【００２２】
図２（A）は本画像形成装置のソフトウェアモジュール構成図である。図２に記載した各ソフトウェアモジュールは、プログラムとしてHDD４に格納され、RAM2にロードされCPU1により実行されるものである。より具体的には、各ソフトウェアモジュールはCPU1上で動作するOS（オペレーティングシステム）によりRAM2にロードされ、スレッド単位で実行権を付与され、実行されるものである。データ受信部201はホストから送信されたプリントデータを受信し、受信したデータはジョブ制御部202を介してジョブデータ管理部208で保持される。ジョブ制御部202はデータ受信から印刷までのジョブ制御の全般を司る。
【００２３】
PDFインタプリタ203はPDFデータを解釈して、中間データであるDLを生成する。生成されたDLはジョブ制御部202を介してジョブデータ管理部208で保持される。レンダラ204はDLからビットマップイメージを生成するモジュールであり、多くの処理は専用ハードウェアRIP9により実行される。生成されたビットマップイメージはジョブ制御部202を介してジョブデータ管理部208で保持される。データ送信部205はデバイスI/F8を介してプリンタエンジンへの印刷指示とビットマップイメージの送出を行う。ユーザインターフェース206は操作部I/F7を介して、操作部14を制御するモジュールである。
【００２４】
主に操作部14の液晶パネルに表示するデータを生成し、タッチパネルからの入力に従い液晶パネルの表示を更新する。また、タッチパネルからの入力が何らかのジョブ実行指示であった場合は、ジョブ制御部202に指示を伝達する。ジョブデータ管理部208はプリントデータ、DL、ビットマップイメージのそれぞれを一時的もしくは長期的に保持管理するデータベースである。
【００２５】
図２（B）は図２（A）のPDFインタプリタ203をより詳細に記したソフトウェアモジュール構成図である。PDFパーサ209はPDFファイルの解釈を行い、PS変換処理部210にPDFファイルをPostScriptファイルに変換する処理を指示する。変換されたPostScriptデータをPSパーサ212がPostScriptデータの解釈を行い、描画命令を抽出して、DL生成部210にDLの生成を依頼する。DL生成部213はPSパーサ212からのDL生成依頼を受けて、DLを生成する。
【００２６】
図3は本実施例の処理となるフローチャートである。PDFジョブが開始された際、PDFインタプリタはPDFパーサでPDFデータの解釈を行う（Ｓ３０１）。PDFデータのページ総数を取得し、予め決めていた閾値と比較する（Ｓ３０２）。前記閾値は複数のCPUコアにページを割り当てる方法を判断するためである。PDFデータのページ数が閾値未満であれば、複数のCPUコアに対して未処理ページを割り当て、ページ処理が終了した時点で未処理のページを次々と割り振る方法（ページバランシング割り振り方式）でページ割り振りを行うことを決定する（Ｓ３０３）。PDFデータのページ数が閾値以上であれば、PDFジョブ開始時に予め各CPUコアに割り振るページを決めておき、その通りに割り振る方式（固定ページ割り振り方式）でページ割り振りを行うことを決定する（Ｓ３０４）。
【００２７】
固定ページ割り振り方式は、例えば奇数ページをCPUコア１、偶数ページをCPUコア２に割り振る、奇遇ページ割り振り方法でも構わない。また、乱数を発生させ、ランダムに割り振りページを決める方法でも構わない。PDFジョブの開始時に、各CPUコアに対して割り振るページが決まっていることが重要である。固定ページ割り振り方式を行う場合、PDFパーサ209でPDFデータの解釈を行い、PDFデータ内のページ毎のリソース使用状況を解析する（Ｓ３０５）。また固定ページ割り振り方法を使用する場合、ドキュメントの最終ページあたりで片側のCPUコアに処理が重いページが偏ってしまう場合があり、ジョブ全体の処理時間に影響を及ぼしてしまう可能性がある。
【００２８】
回避するために、固定ページ割り振り方式を使用する場合でも、先頭から一定割合のページのみを固定ページ割り振り方式を使用し、残りのページはページバランシング割り振り方式を使用する。ドキュメントの最終ページあたりでも、二つのCPUコアを均等に使えるようにする効果がある。このために固定ページ割り振り方式の場合、固定ページ割り振り範囲を決定させる（Ｓ３０６）。前記のページ割り当て方式の決定を行い、各ページ毎にページ割り当て方式に従ってCPUコアにページを割り振り、ページ処理を全ページ分に対して行う（S３０７、S３０８）。
【００２９】
図4は前記記載のリソース使用状況解析処理（S３０５）の詳細フローチャートである。リソース使用解析処理は、PDFジョブ開始時に、各ページでどのリソースを使用するかの解析処理であり、各CPUコア毎に行う。前記解析により、各リソースが各CPUコア毎について使用される最終ページを決定することができるため、仮想メモリから削除するタイミングを判断することができる。
【００３０】
図4のフローチャートでの処理においては、各CPUコアで固定割り振り予定ページの一覧を作成する（S４０１）。固定ページ割り振り方法を奇偶割り振り方法（奇数ページをCPUコア１に、偶数ページをCPUコア２に割り振る）を使用することで本実施例を説明するが、固定ページ割り振り方法は他の方法を採用しても構わない。各ページ毎に使用するリソースを解析する（S４０２、S４０３）。リソース使用状況の解析結果から、リソース毎に使用最終ページをマーキングする（S４０４、S４０５）。
【００３１】
図５は本実施例の例において、図４の処理を行った結果の解析結果を可視化したものであり。固定ページ割り振り方法を奇偶割り振り方法にした時の、CPUコア１の解析結果である。リソース１、リソース２、リソース３の使用するページに○、使用最終ページを“Last”という文字でマーキングしている。
【００３２】
図６はＳ３０７を詳細化したフローチャートである。各ＣＰＵコアに対し、各ページ毎の割り振りと処理内容を示したものである。
【００３３】
該当ページがＳ３０６で決定した固定ページ割り振り方式の範囲かどうかを判定する（Ｓ６０１）。固定ページ割り振り方式の範囲ではない場合、ページバランシング割り振り方式で、次に処理待ちになっているページを割り振り（Ｓ６０２）、ページ処理を行う（Ｓ６０４）。ページバランシング割り振り方式が使用される条件は、Ｓ３０３で決定されたPDFデータのページが閾値以下の場合の全ページ、もしくはＳ３０６で決定された固定ページ割り振り方式を行う範囲以外のページである。
【００３４】
該当ページが固定ページ割り振り方式の範囲である場合、各CPUコアに割り振り予定のページを割り振り（Ｓ６０３）、ページ処理を行う（Ｓ６０４）。ページ処理終了後、固定ページ割り振り方式で割り振ったページかを判定する（Ｓ６０５）。固定ページ割り振り方式で割り振ったページの場合、該当ページで使用したリソースが同ＣＰＵコアに割り振り予定のページで使わないか（リソース使用最終ページか）を判定（Ｓ６０６）し、使わないのであれば、仮想メモリからリソースを削除する（Ｓ６０７）。
【００３５】
図７（A）は本実施例のCPUコアへのページ割り振り結果と仮想メモリの使用状況である。10ページのPDFデータにて、1ページから６ページまでを固定ページ割り振り（奇遇割り振り）方式、７ページから10ページまでをページバランシング割り振り方式で割り振った時を例としている。仮想メモリ内へのリソース展開回数が少なくなりオーバーヘッドが軽減されている。また最終ページあたりにて片側のCPUコアに重い処理が偏らないようになっている。図７（B）は図７（A）の説明例に使用するPDFデータ内のページ毎のリソース使用状況である。
【符号の説明】
【００３６】
201  データ受信部
202  ジョブ制御部
203  PDFインタプリタ
204  レンダラ
205  プリントドライバ
206  ユーザインターフェース
208  ジョブデータ管理部
209  PDFパーサ
210  PS変換処理部
211  切り換え部
212  PSパーサ
211  切り換え部
213  DL生成部
701  CPUコア１仮想メモリ
702  CPUコア２仮想メモリ
【図１】
2015020404.tif 000003
【図２（Ａ）】
2015020404.tif 000004
【図２（Ｂ）】
2015020404.tif 000005
【図３】
2015020404.tif 000006
【図４】
2015020404.tif 000007
【図５】
2015020404.tif 000008
【図６】
2015020404.tif 000009
【図７（Ａ）】
2015020404.tif 000010
【図７（Ｂ）】
2015020404.tif 000011