(57)【要約】【課題】本発明は、マルチコアＣＰＵを搭載して複数のＰＤＬ解析モジュールを効率的に並列動作させる画像処理装置、画像処理方法、画像処理プログラム及び記録媒体に関する。【解決手段】レーザプリンタ１は、ホストコンピュータから複数の出力先のうち少なくとも１つを指定する出力先情報の付加されたＰＤＬデータのジョブを順次受け取ると、ジョブ管理モジュール１００が、該ジョブの発生順と該ジョブのジョブ種別に基づいて、該ジョブのＰＤＬデータを解析して他の形式のデータを生成する同時並行処理可能な複数のＰＤＬ解析モジュール１０１の割り付けと、該ＰＤＬ解析モジュール１０１でのＰＤＬ解析処理を実行するＣＰＵが有する複数のコアの該ＰＤＬ解析処理に対する配分を制御する。【選択図】          図３
2011046034.tif 000002
【特許請求の範囲】
【請求項１】
複数の出力先のうち少なくとも１つを指定する出力先情報の付加されたＰＤＬデータを該出力先に応じた種別のジョブとして順次取得するジョブ取得手段と、
前記ジョブの前記ＰＤＬデータを解析して他の形式のデータを生成するＰＤＬ解析を同時に並行処理可能な複数のＰＤＬ解析手段と、
複数の実行コアを有し該実行コアによって前記ＰＤＬ解析手段のＰＤＬ解析を実行する実行手段と、
前記ジョブの発生順と該ジョブのジョブ種別に基づいて、該ジョブのＰＤＬデータのＰＤＬ解析を実行する前記ＰＤＬ解析手段の割り付けと該ＰＤＬ解析手段に対する前記実行手段が有する複数の前記実行コアの配分を制御するジョブ実行制御手段と、
を備えていることを特徴とする画像処理装置。
【請求項２】
前記ジョブ実行制御手段は、同時並行処理対象となる複数のジョブのジョブ種別が全て異なると、前記ＰＤＬ解析手段を複数起動して、前記実行手段の複数の実行コアを複数の該ＰＤＬ解析手段に等分に配分して前記ＰＤＬ解析処理を同時並行処理させることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記画像処理装置は、前記ＰＤＬの種類毎に該ＰＤＬによる前記実行手段の複数の実行コアに対する活用率を記憶する実行コア活用率記憶手段を備え、
前記ジョブ実行制御手段は、２つの前記ＰＤＬ解析手段を同時に起動して２つのジョブのＰＤＬ解析を並行処理させる場合、２つの該ジョブのＰＤＬの実行コア活用率を前記実行コア活用率記憶手段から取得して、実行コア活用率が低い方のＰＤＬデータのＰＤＬ解析に１つの実行コアを配分し、実行コア活用率が高い方のＰＤＬデータのＰＤＬ解析に残り全ての実行コアを配分することを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記ジョブ実行制御手段は、同時並行処理対象となる複数のジョブのジョブ種別が全て同じであると、前記ＰＤＬ解析手段を１つのみ起動して、前記実行手段の全ての実行コアを該ＰＤＬ解析手段によるＰＤＬ解析に割り当てることを特徴とする請求項１から請求項３のいずれかに記載の画像処理装置。
【請求項５】
前記画像処理装置は、優先処理すべきジョブ種別が適宜設定される優先ジョブ種別設定手段を備え、
前記ジョブ実行制御手段は、同時並行処理対象となる複数ジョブのうち先頭ジョブのジョブ種別が前記優先ジョブ種別設定手段で設定されている優先ジョブ種別であると、前記ＰＤＬ解析手段を１つのみ起動して、前記実行手段の全ての実行コアを該ＰＤＬ解析手段によるＰＤＬ解析に割り当てることを特徴とする請求項１から請求項３のいずれかに記載の画像処理装置。
【請求項６】
前記ジョブ実行制御手段は、同時並行処理対象となる複数のジョブのうち他の全てのジョブの出力先と同じ出力先をその出力先として有するジョブが存在すると、前記ＰＤＬ解析手段を１つのみ起動して、前記実行手段の全ての実行コアを該ＰＤＬ解析手段によるＰＤＬ解析に割り当てることを特徴とする請求項１から請求項５のいずれかに記載の画像処理装置。
【請求項７】
前記ジョブ実行制御手段は、２つの前記ＰＤＬ解析手段を同時起動して２つのジョブのＰＤＬ解析処理を並行処理させる場合、それぞれの実行コア活用率の比率に応じて前記実行手段の複数の実行コアを配分してＰＤＬ解析を実行させることを請求項３記載の画像処理装置。
【請求項８】
複数の出力先のうち少なくとも１つを指定する出力先情報の付加されたＰＤＬで記述されたＰＤＬデータを順次受け取って該出力先に応じた種別のジョブを生成するジョブ取得処理ステップと、
前記ジョブの前記ＰＤＬデータを解析して他の形式のデータを生成するＰＤＬ解析を同時に並行処理可能な複数のＰＤＬ解析処理ステップと、
複数の実行コアを有し該実行コアによって前記ＰＤＬ解析処理ステップのＰＤＬ解析を実行する実行処理ステップと、
前記ジョブの発生順と該ジョブのジョブ種別に基づいて、該ジョブのＰＤＬデータのＰＤＬ解析を実行する前記ＰＤＬ解析処理ステップの割り付けと該ＰＤＬ解析処理ステップに対する前記実行処理ステップが有する複数の前記実行コアの配分を制御するジョブ実行制御処理ステップと、
を有していることを特徴とする画像処理方法。
【請求項９】
コンピュータに、
複数の出力先のうち少なくとも１つを指定する出力先情報の付加されたＰＤＬで記述されたＰＤＬデータを順次受け取って該出力先に応じた種別のジョブを生成するジョブ取得処理と、
前記ジョブの前記ＰＤＬデータを解析して他の形式のデータを生成するＰＤＬ解析を同時に並行処理可能な複数のＰＤＬ解析処理と、
複数の実行コアを有し該実行コアによって前記ＰＤＬ解析処理のＰＤＬ解析を実行する実行処理と、
前記ジョブの発生順と該ジョブのジョブ種別に基づいて、該ジョブのＰＤＬデータのＰＤＬ解析を実行する前記ＰＤＬ解析処理の割り付けと該ＰＤＬ解析処理に対する前記実行処理が有する複数の前記実行コアの配分を制御するジョブ実行制御処理と、
を実行させることを特徴とする画像処理プログラム。
【請求項１０】
請求項９記載の画像処理プログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、画像処理プログラム及び記録媒体に関し、詳細には、マルチコアＣＰＵを搭載して複数のＰＤＬ解析モジュールを並列動作可能な画像処理装置、画像処理方法、画像処理プログラム及び記録媒体に関する。
【背景技術】
【０００２】
近年、複合装置、複写装置、プリンタ装置等の組み込み機器である画像処理装置においても、マルチコアのＣＰＵ（Central Processing Unit ）が搭載されるようになり、処理速度の高速化が図られている。
【０００３】
また、画像処理装置においては、オンデマンド化に伴って、ネットワーク接続されたコンピュータ等のホスト装置から印刷データを送信する場合、アプリケーション（ワープロソフトや表計算ソフト等）から印刷を指示すると、プリンタドライバによってＰＤＬ（Page Description Language：ページ記述言語）というプリンタ装置等の画像処理装置が解釈できる言語で印刷データと制御コマンド等からなる印刷要求が生成され、この印刷要求に基づいて画像処理装置で印刷を行うようになってきている。
【０００４】
ＰＤＬは、主に、印刷のためのページ記述に関する情報や描画に関する情報を記述するための言語であり、様々な種類がある。したがって、現在のプリンタ装置等の画像処理装置は、各種のＰＤＬに対応するため、それぞれのＰＤＬに対応した解釈機構（インタプリタ）と、各インタプリタを呼び出すための機構を備えているものが多い。
【０００５】
一方、近年のホストコンピュータの処理能力向上に伴い、複雑なグラフィックスやイメージ処理を伴う印刷ジョブが増加してきている。このような印刷ジョブを高速に処理するため、印刷装置等の画像処理装置に搭載されるＣＰＵ（Central Processing Unit ）も高性能化してきており、マルチコアのＣＰＵが搭載されるようになってきている。
【０００６】
このようなマルチコアのＣＰＵを搭載する情報処理装置においては、マルチコアのＣＰＵを有効に利用する技術が要望されており、このようなマルチコアのＣＰＵを有効に活用するソフトウェア技術として、マルチタスクがある。
【０００７】
そして、従来、１つのジョブ内に複数種のＰＤＬが含まれている場合のマルチコアのＣＰＵを用いたマルチタスク技術について提案されている（特許文献１参照）。すなわち、この従来技術は、印刷装置のハードウェア（ＣＰＵ、メモリ）の性能を元に、複数種のＰＤＬを含む印刷ジョブを処理するのに必要な時間を予測し、該予測結果に基づいて、ＰＤＬの変換・合成処理を最も早く処理できる組み合わせを選択する技術である。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記公報記載の従来技術にあっては、１つのジョブ内に複数種のＰＤＬが含まれている場合の処理技術であり、ＰＤＬデータの複数のジョブを処理する場合については、考慮されておらず、マルチコアＣＰＵを搭載する画像処理装置の出現している今日、順次発生する複数のジョブに対してマルチコアＣＰＵを有効活用する技術が要望されている。特に、マルチコアＣＰＵを搭載し多数のＰＤＬ解析モジュールが多重起動／並列動作可能な場合における複数のジョブを効率的に処理する技術が要望されている。
【０００９】
そこで、本発明は、種別の異なる複数のジョブに対するＰＤＬ解析処理における複数の実行コアの利用効率をジョブ種別に好適な状態で向上させてジョブの処理効率を向上させる画像処理装置、画像処理方法、画像処理プログラム及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【００１０】
本発明は、上記目的を達成するために、複数の出力先のうち少なくとも１つを指定する出力先情報の付加されたＰＤＬデータのジョブを該出力先に応じた種別のジョブとして順次取得して、該ジョブの発生順と該ジョブのジョブ種別に基づいて、該ジョブのＰＤＬデータを解析して他の形式のデータを生成するとともに同時並行処理可能な複数のＰＤＬ解析処理の割り付けと、該ＰＤＬ解析処理を実行する複数の実行コアの該ＰＤＬ解析処理に対する配分を制御することを特徴としている。
【００１１】
また、本発明は、同時並行処理対象となる複数のジョブのジョブ種別が全て異なると、ＰＤＬ解析処理を複数起動して、複数の実行コアを複数の該ＰＤＬ解析処理に等分に配分してＰＤＬ解析を同時並行処理することを特徴としてもよい。
【００１２】
さらに、本発明は、前記ＰＤＬの種類毎に該ＰＤＬによる複数の実行コアに対する活用率を記憶し、２つのＰＤＬ解析処理を同時に起動して２つのジョブのＰＤＬ解析を並行処理する場合、２つの該ジョブのＰＤＬに対する実行コア活用率を取得して、実行コア活用率が低い方のＰＤＬデータのＰＤＬ解析に１つの実行コアを配分し、実行コア活用率が高い方のＰＤＬデータのＰＤＬ解析に残り全ての実行コアを配分することを特徴としてもよい。
【００１３】
また、本発明は、同時並行処理対象となる複数のジョブのジョブ種別が全て同じであると、ＰＤＬ解析処理を１つのみ起動して、全ての実行コアを該ＰＤＬ解析処理によるＰＤＬ解析に割り当てることを特徴としてもよい。
【発明の効果】
【００１４】
本発明によれば、複数のＰＤＬにおける複数の実行コアの利用効率を向上させてジョブの処理効率を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施例を適用したレーザプリンタのブロック構成図。
【図２】レーザプリンタの接続されるネットワークシステムの一例を示す図。
【図３】レーザプリンタの機能ブロック構成図。
【図４】通常印刷ジョブと蓄積ジョブの処理流れを示す図。
【図５】ジョブ種類が同じ場合におけるＰＤＬ非二重起動時と二重起動時の処理時間の比較を示す図。
【図６】ジョブ種類が異なる場合におけるＰＤＬ非二重起動時と二重起動時の処理時間の比較を示す図。
【図７】ジョブ順序とジョブパターンの組み合わせを示す図。
【図８】ジョブ種別のみに基づいてコアの配分を制御する場合のデータ処理制御処理を示すフローチャート。
【図９】ＰＤＬ毎のマルチコア活用率テーブルの一例を示す図。
【図１０】ジョブ種別とコア活用率に基づいてコアの配分を制御する場合のデータ処理制御処理を示すフローチャート。
【図１１】ジョブ種別内容に基づいてコア配分を制御する場合のデータ処理制御処理を示すフローチャート。
【図１２】蓄積同時印刷ジョブの処理流れを示す図。
【図１３】蓄積同時印刷ジョブが含まれているか否かによるコア配分制御を伴うデータ処理制御処理を示すフローチャート。
【図１４】ジョブ種別とマルチコア活用率でコアの配分を制御する場合のデータ処理制御処理を示すフローチャート。
【発明を実施するための形態】
【００１６】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例１】
【００１７】
図１〜図１４は、本発明の画像処理装置、画像処理方法、画像処理プログラム及び記録媒体の第１実施例を示す図であり、図１は、本発明の画像処理装置、画像処理方法、画像処理プログラム及び記録媒体の第１実施例を適用したレーザプリンタ１のブロック構成図である。
【００１８】
図１において、レーザプリンタ１は、コントローラ１０、オペレーションパネル１１及びプリンタエンジン１２等を備えており、パーソナルコンピュータ等のホストコンピュータＰｃが接続されている。このレーザプリンタ１は、例えば、カラープリンタ装置、カラー複写装置、カラー複合装置等の画像処理装置が用いられる。
【００１９】
オペレーションパネル１１は、レーザプリンタ１のモード（手動両面印刷モード、片面印刷モード、プリンタモード、複写モード等）やフォント等の設定操作等の各種操作を行うための各種操作キーを備えるとともに、レーザプリンタ１の状態を表示するディスプレイ（例えば、液晶ディスプレイ）等を備えている。特に、オペレーションパネル１１は、後述するマルチコアによるＰＤＬ処理での処理方法の設定操作、特に、優先ジョブ種別の設定操作等に使用され、優先ジョブ種別設定手段として機能する。
【００２０】
プリンタエンジン１２は、図示しないが、所定の印刷方式（画像形成方式）、例えば、インク噴射方式、電子写真方式等で用紙（印刷部材）に画像形成する。プリンタエンジン１２は、電子写真方式の場合、該電子写真方式で用紙に画像を印刷出力するのに必要な部品、例えば、複数枚の用紙を載置して１枚ずつ画像形成ユニットに送り出す給紙部（送り出し手段）、画像形成ユニットで画像形成された用紙が順次排出されて対置される排紙部（排出載置手段）等を備え、該画像形成ユニットは、感光体、光書き込み部、現像部、帯電部及びクリーニング部等を備えている。プリンタエンジン１２の画像形成ユニットは、コントローラ１０から送られてくる描画データ及び制御信号により光書き込み部を動作させて感光体上に静電潜像を形成し、現像部によりトナーを感光体上に供給して現像してトナー画像を形成する。プリンタエンジン１２は、給紙部から用紙を感光体と転写部との間に給紙して、感光体上のトナー画像を用紙に転写させ、トナー画像の転写された用紙を定着部に搬送して、定着部で加熱・加圧して用紙上のトナー画像を定着させることで、画像を印刷して、排紙部に排出する。
【００２１】
コントローラ１０は、そのときに設定されている制御モード及びホストコンピュータＰｃからの制御コードに従って、ホストコンピュータＰｃからの印刷データを、ビデオデータに変換してプリンタエンジン１２へ出力する制御機構の総称であり、ホストＩ／Ｆ２１、プログラムＲＯＭ（Read Only Memory）２２、フォントＲＯＭ２３、パネルＩ／Ｆ２４、ＣＰＵ（Central Processing Unit ）２５、ＲＡＭ（Random Access Memory）２６、ＮＶＲＡＭ（Non-Volatile Random Access Memory）２７、エンジンＩ／Ｆ２８及びオプションＲＡＭ２９等を備えていて、上記各部は、バス３０により接続されている。
【００２２】
ホストＩ／Ｆ２１には、図２に示すように、ＬＡＮ（Local Area Network）等のネットワークＮＷを介して複数のホストコンピュータＰｃが接続されており、ホストＩ／Ｆ２１は、ホストコンピュータＰｃから送信されてくる制御信号及びデータ（印刷データ等）を受け取るとともに、レーザプリンタ１からホストコンピュータＰｃに送信するステータス信号等の送り出しを行うインターフェイスである。
【００２３】
なお、ホストコンピュータＰｃは、通常のハードウェア及びソフトウェア構成のパーソナルコンピュータであり、レーザプリンタ１に、任意のＰＤＬで生成された印刷データ及び制御信号（印刷制御データ）等を送信する。
【００２４】
プログラムＲＯＭ２２は、コントローラ１０内でのデータの処理や管理及び周辺モジュールを制御するためのプログラム、具体的には、レーザプリンタ１としての基本処理プログラム及び後述するＣＰＵ２５のマルチコアを複数のＰＤＬで効率利用してジョブ処理を効率的に行う画像処理方法を実行する画像処理プログラム等の各種プログラムを格納しているとともに、これらの各プログラムを実行するのに必要な各種データを格納している。
【００２５】
フォントＲＯＭ２３は、レーザプリンタ１で印刷に使用する各種フォントが予め格納されており、ＣＰＵ２５により読み出されて、印刷処理に供される。
【００２６】
パネルＩ／Ｆ２４には、上記オペレーションパネル１１が接続されており、パネルＩ／Ｆ２４は、コントローラ１０とオペレーションパネル１１との間の信号の授受を行う。
【００２７】
ＣＰＵ２５は、プログラムＲＯＭ２２に格納されているプログラムに基づいて、ＲＡＭ２６をワークメモリとして利用しつつ、レーザプリンタ１の各部を制御して、印刷処理を行うとともに、後述するマルチコアを複数のＰＤＬで効率的に利用して画像処理を実行する。すなわち、ＣＰＵ２５は、複数のコア（実行コア）を内蔵するマルチコアＣＰＵ（実行手段）であり、複数のコアをそれぞれ独立して動作させて、あるいは、複数のコアを連係させて動作させて、ジョブの実行処理、特に、ＰＤＬデータの変換処理を行う。
【００２８】
ＲＡＭ２６は、ＣＰＵ２５のワークメモリとして利用されるとともに、ホストコンピュータＰｃからの印刷データをページ単位に管理して一時記憶するバッファ及びバッファに記憶されたデータを実際の印刷パターンに変換した描画データが展開されるビットマップメモリ等として利用される。ＲＡＭ２６は、この印刷データまたは印刷データから変換された描画データ、あるいは、中間データを、複数ページ分蓄積する容量を有している。
【００２９】
ＮＶＲＡＭ２７は、レーザプリンタ１の電源が切られているときにも記憶内容を保持するメモリであり、レーザプリンタ１の電源がオフの際にも保持する必要のあるデータ、特に、システム設定値、印刷枚数カウント値、印刷設定等の各種設定情報及び特に、後述するマルチコアを複数のＰＤＬで効率利用する画像処理で使用する各種データや設定情報等をＣＰＵ２５の制御下で格納される。
【００３０】
エンジンＩ／Ｆ２８には、プリンタエンジン１２が接続されており、コントローラ１０からプリンタエンジン１２への制御信号や描画データ及びレーザプリンタ１からコントローラ１０へのステータス信号の授受を行う。
【００３１】
オプションＲＡＭ２９は、いわゆる着脱可能な補助メモリであり、ＲＡＭ２６の容量が不足した際等に補助として使用されるものである。
【００３２】
そして、レーザプリンタ１は、ＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory ）、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＣＤ−ＲＷ（Compact Disc Rewritable ）、ＤＶＤ（Digital Video Disk）、ＳＤ（Secure Digital）カード、ＭＯ（Magneto-Optical Disc）等のコンピュータが読み取り可能な記録媒体に記録されている本発明の画像処理方法を実行する画像処理プログラムを読み込んでプログラムＲＯＭ２２等に導入することで、後述するマルチコアを複数のＰＤＬで効率利用する画像処理方法を実行する画像処理装置としてのレーザプリンタ１として構築されている。この画像処理プログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【００３３】
レーザプリンタ１は、上記画像処理プログラムが導入されて実行されることで、図３に示す機能部が構築され、ジョブ管理モジュール１００、２つのＰＤＬ解析モジュール１０１、ネットワーク管理モジュール１０２、メモリ管理モジュール１０３、印刷管理モジュール１０４、システム管理モジュール１０５及びパネル管理モジュール１０６等が構築される。
【００３４】
ＰＤＬ解析モジュール（ＰＤＬ解析手段）１０１は、レーザプリンタ１が受信したデータのうちＰＤＬデータを解析して印刷画像等の所定の形式のデータを生成するモジュールである。レーザプリンタ１は、ジョブ管理モジュール１００の仲介によりネットワーク管理モジュール１０２からＰＤＬデータを受け取り、ジョブ管理モジュール１００の仲介によりメモリ管理モジュール１０３によって確保されたメモリであるＲＡＭ２６上に最終画像データを生成する処理を主として実行する。また、ＰＤＬ解析モジュール１０１は、最終画像データ生成の際に必要な機器構成情報、例えば、給紙トレイや排紙トレイの構成、給紙トレイ内の用紙サイズ等の情報を、ジョブ管理モジュール１００の仲介によりシステム管理モジュール１０５から取得する。本実施例のレーザプリンタ１は、上記ＰＤＬ解析モジュール１０１が、２つ以上搭載されており、それぞれ独自に上記ＰＤＬ解析処理を実行する。
【００３５】
ジョブ管理モジュール（ジョブ取得手段、ジョブ実行制御手段）１００は、ＰＤＬ処理全般に関わる制御を行うモジュールであり、主にＰＤＬ解析モジュール１０１がその処理を実行する上で必要とする処理を仲介して他のモジュール１０２〜１０６（特に、上述のように、ネットワーク管理モジュール１０２、メモリ管理モジュール１０３及びシステム管理モジュール１０５）に対して要求を行う。すなわち、ジョブ管理モジュール１００は、ネットワーク管理モジュール１０２が受け取ったＰＤＬデータをＰＤＬ解析モジュール１０１へ受け渡す仲介処理、ＰＤＬ解析モジュール１０１がシステム管理モジュール１０５が管理する機器情報を取得する仲介処理、ＰＤＬ解析モジュール１０１がメモリ管理モジュール１０３から必要なメモリを確保する仲介処理、ＰＤＬ解析モジュール１０１が作成した最終データの印刷要求の印刷管理モジュール１０４に対する発行処理等を行う。
【００３６】
ネットワーク管理モジュール１０２は、ネットワークコントローラの管理及びネットワークコントローラから得られる受信データの処理を制御するモジュールである。ネットワーク管理モジュール１０２は、ホストコンピュータＰｃからのデータ受信の際に欠かせない（ｆｔｐ（File Transfer Protocol）やｌｐｒ（line printer daemon protocol）等の通信プロトコルを制御して、ネットワークコントローラからデータを受信し、他のモジュールへ受信データを受け渡す。
【００３７】
メモリ管理モジュール１０３は、ＲＡＭ２６及び図示しない外部記憶装置（ハードディスク等）を管理するモジュールであり、他モジュールの要求に基づいてメモリ及び外部記憶装置の割り当て・解放を行う。
【００３８】
印刷管理モジュール１０４は、ＰＤＬ解析モジュール１０１が生成した最終データである印刷画像の印刷処理に関する制御を行うモジュールである。印刷管理モジュール１０４は、メモリ管理モジュール１０３が管理するメモリ／外部記憶装置内に格納された印刷画像を、プリンタエンジン１２に印刷させるのに必要な各種処理、例えば、給排紙命令の発行、後処理実行命令の発行、印刷に関わるエラー状態の検知と他のモジュールへの通知等を行う。
【００３９】
システム管理モジュール１０５は、レーザプリンタ１の機器構成情報や機器状態情報等の機器関連情報を管理・制御するモジュールである。ここで、機器構成情報とは、プリンタエンジン１２の給紙トレイや排紙トレイの着脱の情報及び給紙トレイ内の用紙構成等の情報であり、機器状態情報とは、印刷中であるか待機中であるか等の状態情報、ジャムや用紙切れ等のエラー発生中であるか否か等の情報である。システム管理モジュール１０５は、このような機器関連情報を他のモジュールへ通知したり、ユーザによる機器設定（設定により動作を変化させるカスタマイズ可能項目）の管理を行う。
【００４０】
パネル管理モジュール１０６は、オペレーションパネル１１の表示及びユーザによるオペレーションパネル１１の操作の有無等に関する管理を行うモジュールであり、他のモジュールからの要求に基づく、レーザプリンタ１の状態の表示、システム管理モジュール１０５が管理する機器設定の変更を行うメニュー画面の表示、ユーザに適切な処置を促すエラー画面の表示等を行う。また、パネル管理モジュール１０６は、メニュー画面やエラー画面等で機能ボタンを該画面に表示したときには、押下された機能ボタンを認識して他のモジュールへ通知する。
【００４１】
上記ネットワーク管理モジュール１０２、メモリ管理モジュール１０３、印刷管理モジュール１０４、システム管理モジュール１０５及びパネル管理モジュール１０６は、全体として、各種サービスを提供するサービス提供モジュール群１０７を構成しており、サービス提供モジュール群１０７を構成するモジュール１０２〜１０６は、互いに通信をし合ってレーザプリンタ１の基本動作を分担・協力して上位層からの要求に対応する。
【００４２】
そして、レーザプリンタ１は、ホストコンピュータＰｃから要求されるジョブに対する処理としては、プリンタエンジン１２での印刷を要求する通常印刷ジョブ、ハードディスク等の蓄積メモリへの蓄積を要求する蓄積ジョブ、通常印刷と蓄積メモリへの蓄積を要求する蓄積同時印刷ジョブ、ネットワーク上の他の装置等へデータを転送する転送ジョブ等の複数種類のジョブを処理する。
【００４３】
次に、本実施例の作用を説明する。本実施例のレーザプリンタ１は、コントローラ１０のＣＰＵ２５が、複数のコアを有するマルチコアＣＰＵであり、ＰＤＬ解析を行う機能モジュールとして、同時起動・並列動作可能な２つのＰＤＬ解析モジュール１０１を搭載していて、ホストコンピュータＰｃからの複数の印刷ジョブをＣＰＵ２５の複数のコアと２つのＰＤＬ解析モジュール１０１を効率的に利用して、効率的なジョブの処理を行う。
【００４４】
すなわち、レーザプリンタ１は、ホストコンピュータＰｃからの印刷ジョブが発生すると、ジョブ管理モジュール１００が保持するジョブキューに該印刷ジョブを入れ、ジョブ管理モジュール１００は、キューに入れたジョブを先頭から順番に、ＰＤＬ解析モジュール１０１に処理させる。
【００４５】
レーザプリンタ１は、２つのジョブ（印刷ジョブ）が存在する場合、２つのＰＤＬ解析モジュール１０１を二重起動して並列処理するのが常に最適とは限らない。すなわち、レーザプリンタ１のジョブの種類には、上述のように、通常印刷ジョブ、蓄積ジョブ、蓄積同時印刷ジョブ等の複数の種類があり、通常印刷ジョブと蓄積ジョブの処理の流れは、図４のように示される。すなわち、レーザプリンタ１は、通常印刷ジョブを、図４（ａ）に示すように、ＰＤＬ解析モジュール１０１でＰＤＬ解析処理を実行して、処理後の最終データである描画データを、プリンタエンジン１２で印刷処理する。また、レーザプリンタ１は、蓄積ジョブを、ＰＤＬ解析モジュール１０１でＰＤＬ解析処理を実行して、処理後の最終データをハードディスク（ＨＤＤ）に書き込む書き込み処理を実行する。
【００４６】
そして、レーザプリンタ１は、ジョブ種別が同じときには、例えば、図５に示すように、ジョブ種別が通常印刷ジョブであるときには、図５（ａ）に示すＰＤＬ解析モジュール１０１を二重起動しない場合（ＣＰＵ２５のコアを１００％使用する場合）の方が、図５（ｂ）に示す２つのＰＤＬ解析モジュール１０１を二重起動する場合（ＣＰＵ２５のコアを５０％ずつ使用する場合）よりも、全体の処理時間を短くすることができる。すなわち、図５に示すように、例えば、ジョブ種別が通常印刷ジョブであるとき、双方のジョブが出力処理として、同じプリンタエンジン１２を使用するため、２ジョブ目のＰＤＬ処理が終了した時点で１ジョブ目の印刷処理が終了していないときには、プリンタ待ちが発生する。いま、図５（ａ）に示すように、ＰＤＬ解析モジュール１０１を二重起動せずに、１つのＰＤＬ解析モジュール１０１に、ＣＰＵ２５の複数のコアを１００％割り当てる場合、レーザプリンタ１は、１つのＰＤＬ解析モジュール１０１が、先頭のジョブから順番にＰＤＬ解析処理を行うので、１ジョブ目のＰＤＬ解析が完了するまで、２ジョブ目のＰＤＬ解析処理の開始を待ち、１ジョブ目のＰＤＬ解析が終了すると、２ジョブ目のＰＤＬ解析を開始する。レーザプリンタ１は、２ジョブ目のＰＤＬ解析が終了しても、１ジョブ目の印刷処理が終了するまで２ジョブ目の印刷処理の開始を待ち、１ジョブ目の印刷処理が終了すると、２ジョブ目の印刷処理を開始する。
【００４７】
また、図５（ｂ）に示すように、２つのＰＤＬ解析モジュール１０１を二重起動するときには、レーザプリンタ１は、２ジョブ目のＰＤＬ解析モジュール１０１が起動する時点から１ジョブ目に割り当てられるＣＰＵ２５のコアの使用率が５０％に減少し、１ジョブ目のＰＤＬ解析処理が、ＰＤＬ非二重起動時よりも長引いて、１ジョブ目のＰＤＬ解析処理の終了が、ＰＤＬ非二重起動時よりも遅くなる。そして、２ジョブ目は、ＣＰＵ２５の５０％のコアを与えられて、１ジョブ目のＰＤＬ処理が終了するのを待つことなく、１ジョブ目と並行処理を行うため、２ジョブ目のＰＤＬ処理は、図５（ａ）のＰＤＬ非二重起動時よりも早く終了する。ところが、２ジョブ目のＰＤＬ処理が早く終了しても、１ジョブ目の印刷処理が終了するまで、２ジョブ目の印刷処理を開始することができず、プリンタ待ちが発生し、１ジョブ目の印刷処理の終了が遅くなる分、ＰＤＬ非二重起動時よりも、２ジョブ目の印刷終了時間が遅くなる。すなわち、ジョブ種別が同じ場合には、ＰＤＬを複数重複起動させて処理せずに、１つのＰＤＬ解析モジュール１０１にＣＰＵ２５のマルチコアを１００％割り当てて先頭ジョブから順番に処理する方が、全体の処理時間が短くなる。
【００４８】
次に、レーザプリンタ１は、ジョブ種別が異なるときには、例えば、図６に示すように、ジョブ種別が通常印刷ジョブと蓄積ジョブ（ＨＤＤ書き込み）であるときには、図６（ａ）に示すＰＤＬ解析モジュール１０１を二重起動しないＰＤＬ非二重起動時の場合（ＣＰＵ２５のコアを１００％使用する場合）よりも、図６（ｂ）に示す２つのＰＤＬ解析モジュール１０１を二重起動する場合（ＣＰＵ２５のコアを５０％ずつ使用する場合）の方が、処理時間を短くすることができる。すなわち、図６に示すように、例えば、ジョブ種別が通常印刷ジョブと蓄積ジョブであるとき、出力先が異なるため、出力先処理待ちである２ジョブ目のＰＤＬ処理が終了した時点で１ジョブ目の印刷処理の終了を待つことなく、２ジョブ目の出力処理であるＨＤＤ書き込み処理を行う。いま、図６（ａ）に示すように、ＰＤＬ解析モジュール１０１を二重起動せずに、１つのＰＤＬ解析モジュール１０１に、ＣＰＵ２５の複数のコアを１００％割り当てる場合、１つのＰＤＬ解析モジュール１０１は、先頭のジョブから順番にＰＤＬ解析処理を行うので、１ジョブ目のＰＤＬ解析が完了するまで、２ジョブ目のＰＤＬ解析処理の開始を待ち、１ジョブ目のＰＤＬ解析が終了すると、２ジョブ目のＰＤＬ解析を開始して、２ジョブ目のＰＤＬ解析が終了すると、１ジョブ目の印刷処理が終了するのを待つことなく、２ジョブ目のＨＤＤ書き込み処理を開始する。
【００４９】
また、図６（ｂ）に示すように、２つのＰＤＬ解析モジュール１０１を二重起動するときには、２ジョブ目のＰＤＬ解析モジュール１０１が起動する時点から１ジョブ目に割り当てられるＣＰＵ２５のコアは、使用率が５０％に減少し、１ジョブ目のＰＤＬ解析処理が、ＰＤＬ非二重起動時よりも長引いて、１ジョブ目のＰＤＬ解析処理の終了が、ＰＤＬ非二重起動時よりも遅くなる。そして、レーザプリンタ１は、２ジョブ目については、ＣＰＵ２５の５０％のコアを与えて、１ジョブ目のＰＤＬ解析処理が終了するのを待つことなく、１ジョブ目と並行処理を行うため、２ジョブ目のＰＤＬ解析処理は、図６（ａ）のＰＤＬ非二重起動時よりも早く終了する。そして、レーザプリンタ１は、２ジョブ目のＰＤＬ解析処理が早く終了すると、１ジョブ目の印刷処理が終了するまで待つことなく、２ジョブ目のＨＤＤ書き込み処理を開始し、ＰＤＬ非二重起動時よりも、２ジョブ目のＰＤＬ解析処理が早く終了した分、２ジョブ目のＨＤＤ書き込み処理終了時間が早くなる。すなわち、ジョブ種別が異なる場合には、ＰＤＬ解析モジュール１０１を複数重複起動させて先頭ジョブから複数のジョブを並列処理する方が、全体の処理時間が短くなる。
【００５０】
なお、一般的に、マルチコアＣＰＵにおいては、１つのプロセスに割り当てるコアを増やしても与えられたコアを１００％フルに活用することはできないので、複数のプロセスにコアを配分する方がコアの活用率は高くなる。
【００５１】
また、レーザプリンタ１は、後述するように、出力先が異なるとき、すなわち、ジョブ種別が異なるときには、処理の高速化を図るのに、どのジョブの処理を重視するかによって、ＰＤＬ二重起動とＰＤＬ非二重起動のいずれを採用するかを決定する。
【００５２】
すなわち、図５及び図６に示したように、レーザプリンタ１は、ＰＤＬ非二重起動のときには、ＰＤＬ二重起動のときよりも１ジョブ目の終了は早いが、２ジョブ目の終了は遅くなり、かつ、ＣＰＵ２５のコアの活用率も低い。一方、ＰＤＬ二重起動のときには、ＰＤＬ非二重起動のときよりも１ジョブ目の終了は遅くなるが、２ジョブ目を早く終了することができ、さらに、ＣＰＵ２５のマルチコアの活用率も高くなる。
【００５３】
すなわち、複数のジョブを処理する場合、ＣＰＵ２５の複数のコアを効率的に活用するためには、ジョブ種別に応じて、また、優先させるジョブ種別に応じて、ＰＤＬ解析モジュール１０１へのＣＰＵ２５のコアの配分を決定することが重要となる。
【００５４】
以下、複数のジョブが存在するときに、ジョブ種別に従ってＰＤＬ解析モジュール１０１にＣＰＵ２５の複数のコアを効率的に配分する配分方法について説明する。なお、以下の説明では、ＣＰＵ２５が２つのコアを有し、２つのＰＤＬ解析モジュール１０１を同時起動・並列動作可能であるものとする。また、ＰＤＬ解析モジュール１０１は、割り当てられたＣＰＵ２５のコアを効率的に使うものとし、コアの数に比例して処理速度が向上するものとする。さらに、同時に処理できるジョブは２つまでであるので、３つ以上のジョブが存在する場合、３番目以降のジョブは先行ジョブのＰＤＬ解析処理が終了するまで待つものとする。
【００５５】
まず、ジョブの種類が、図７に示すように、通常印刷ジョブと蓄積ジョブの２つで、ジョブの順番と組み合わせがあり、２つのＰＤＬ解析モジュール１０１へのコアの配分を、ジョブ種別とジョブの順番に従って決定する場合について、説明する。
【００５６】
レーザプリンタ１は、ネットワーク管理モジュール１０２を介してホストコンピュータＰｃから２つのジョブを順次受け取ると、ジョブ管理モジュール１００が、１ジョブ目と２ジョブ目のジョブ種別を判別し（ステップＳ１０１）、１ジョブ目と２ジョブ目の種別（出力先）が、図７のジョブパターンＡとジョブパターンＤのように同じジョブ種別であるかチェックする（ステップＳ１０２）。
【００５７】
ステップＳ１０２で、１ジョブ目と２ジョブ目のジョブ種別が同じ（出力先が同じ）ときには、２ジョブ目のＰＤＬ解析処理が早く終了しても、出力先が同じで競合するため、１ジョブ目の出力処理が終了するまで、２ジョブ目の出力処理を待つ必要がある。そこで、ジョブ管理モジュール１００は、図５（ａ）に示したように、ＰＤＬ非二重起動による処理を行う。すなわち、ジョブ管理モジュール１００は、ステップＳ１０２で、１ジョブ目と２ジョブ目のジョブ種別が同じときには、１ジョブ目のＰＤＬ解析処理が終了するまで、ＰＤＬ解析モジュール１０１を二重起動せず（すなわち、２ジョブ目に対してＰＤＬ解析モジュール１０１を起動せず）に、１つのＰＤＬ解析モジュール１０１のみを起動させて、１ジョブ目にＣＰＵ２５の複数のコアを１００％割り当てて、ＰＤＬ解析処理を行う。そして、ジョブ管理モジュール１００は、１ジョブ目のＰＤＬ解析が完了するまで、２ジョブ目のＰＤＬ解析処理の開始を待ち、１ジョブ目のＰＤＬ解析が終了すると、１ジョブ目の出力処理（例えば、印刷処理）を開始するとともに、２ジョブ目のＰＤＬ解析を開始して、２ジョブ目のＰＤＬ解析が終了しても、１ジョブ目の出力処理（印刷処理等）が終了するまで２ジョブ目の印刷処理の開始を待った後に、２ジョブ目の印刷処理を開始する（ステップＳ１０３）。
【００５８】
そして、ステップＳ１０２で、ジョブ管理モジュール１００は、図７のジョブパターンＢとジョブパターンＣのように、１ジョブ目と２ジョブ目のジョブ種別が異なるときには、２ジョブ目のＰＤＬ解析処理が早く終了した場合、１ジョブ目と２ジョブ目の出力先が異なるため、１ジョブ目の出力処理（印刷処理等）が終了するまで、２ジョブ目の出力処理を待つ必要がなく、直ぐに出力処理を開始することができる。そこで、ジョブ管理モジュール１００は、図６（ｂ）に示したように、ＰＤＬ二重起動による処理を行う。すなわち、ジョブ管理モジュール１００は、ステップＳ１０２で、１ジョブ目と２ジョブ目のジョブ種別が異なるときには、図６（ｂ）に示したように、入ってきたジョブの順番に、ＰＤＬ解析モジュール１０１を順次起動して二重起動してＰＤＬ解析処理を行わせるが、このとき、２ジョブ目のＰＤＬ解析モジュール１０１が起動する時点から１ジョブ目に割り当てられるＣＰＵ２５のコアの使用率を５０％に減少させ、２ジョブ目にも、ＣＰＵ２５の５０％のコアを割り当てて、ＰＤＬ解析処理を行う。この場合、レーザプリンタ１は、１ジョブ目と並行処理を行うため、２ジョブ目のＰＤＬ解析処理は、上述のように、図６（ａ）のＰＤＬ非二重起動時よりも早く終了し、２ジョブ目のＰＤＬ解析処理が早く終了すると、１ジョブ目の印刷処理等の出力処理が終了するまで待つことなく、２ジョブ目のＨＤＤ書き込み処理等の１ジョブ目とは異なる出力処理を開始し、ＰＤＬ非二重起動時よりも、２ジョブ目の非理解析処理が早く終了した分、２ジョブ目の出力処理が早く終了して、全体の処理時間が短くなる。
【００５９】
このように、本実施例のレーザプリンタ１は、ホストコンピュータＰｃから複数の出力先のうち少なくとも１つを指定する出力先情報の付加されたＰＤＬデータのジョブを該出力先に応じた種別のジョブとして順次取得して、ジョブ管理モジュール１００が、該ジョブの発生順と該ジョブのジョブ種別に基づいて、該ジョブのＰＤＬデータを解析して他の形式のデータを生成するとともに同時に並行処理可能な複数のＰＤＬ解析モジュール１０１の割り付けと、該ＰＤＬ解析モジュール１０１でのＰＤＬ解析処理を実行するＣＰＵ２５が有する複数のコアの該ＰＤＬ解析処理に対する配分を制御している。
【００６０】
したがって、ジョブの発生順と通常印刷ジョブや蓄積ジョブ等のジョブの種別に応じて、適切にＰＤＬ解析モジュール１０１の多重機能の要否とコアの配分を制御して、種別の異なる複数のジョブに対するＰＤＬ解析処理における複数の実行コアの利用効率をジョブ種別に好適な状態で向上させることができ、ジョブの処理効率を向上させることができる。
【００６１】
また、本実施例のレーザプリンタ１は、ジョブ管理モジュール１００が、同時並行処理対象となる複数のジョブのジョブ種別が全て異なると、ＰＤＬ解析モジュール１０１を複数起動して、ＣＰＵ２５の複数の実行コアを複数のＰＤＬ解析モジュール１０１に等分に配分してＰＤＬ解析処理を同時並行処理させている。
【００６２】
したがって、印刷処理、ＨＤＤ書き込み処理等の出力処理で先のジョブが終了するのを待つ必要がない場合に、複数のＰＤＬ解析モジュール１０１を同時並列処理させて、ＰＤＬ解析処理が終了したジョブから出力処理を順次実行させることができ、複数のＰＤＬ解析における複数のコアの利用効率を向上させてジョブの処理効率を向上させることができる。
【００６３】
さらに、本実施例のレーザプリンタ１は、ジョブ管理モジュール１００が、同時並行処理対象となる複数のジョブのジョブ種別が全て同じであると、ＰＤＬ解析モジュール１０１を１つのみ起動して、ＣＰＵ２５の全てのコアを１つのＰＤＬ解析モジュール１０１によるＰＤＬ解析に割り当てている。
【００６４】
したがって、印刷処理、ＨＤＤ書き込み処理等の出力処理で先のジョブが終了するのを待つ必要がある場合には、ＰＤＬ解析モジュール１０１を同時並列処理させず、１つのＰＤＬ解析モジュール１０１にＣＰＵ２５の全てのコアで出力処理まで集中して順次処理させることができ、複数のＰＤＬ解析における複数のコアの利用効率を向上させてジョブの処理効率を向上させることができる。
【００６５】
また、本実施例のレーザプリンタ１は、ＰＤＬの種類によってＣＰＵ２５のコアの使用率を変化させてＰＤＬ解析を行わせる。すなわち、ＣＰＵ２５のコアが３つ以上である場合、複数のコアを如何に効率的に活用できるかは、ＰＤＬ内部の処理、すなわち、ＰＤＬの種類（ＲＰＣＳ、ＰＣＬ等）によって、異なる。例えば、マルチコア活用率５０％のＰＤＬと３０％のＰＤＬにコアを配分する場合、活用率が低い（３０％）のＰＤＬには、１個だけコアを割り当て、活用率が高い（５０％）のＰＤＬには残り全てのコアを割り当てた方が、マルチコア全体の活用率がより一層高くなる配分となる。
【００６６】
そこで、レーザプリンタ１は、ＣＰＵ２５が３つ以上のコアを有している場合、１ジョブ目と２ジョブ目のジョブ種別が異なるときには、それぞれに５０％ずつのコアを割り当てるのではなく、各ジョブのＰＤＬのマルチコア活用率を参照して、各ジョブのＰＤＬのマルチコア活用率に従ってコアの配分を決定する。
【００６７】
そこで、ジョブ管理モジュール１００は、図９に示すような各ＰＤＬのマルチコア活用率の登録されているマルチコア活用率テーブルを予めＮＶＲＡＭ（実行コア活用率記憶手段）２７等に保管しており、このマルチコア活用率テーブルを参照して、ジョブの種別が異なるときに、ＰＤＬ解析モジュール１０１へのコアの配分を行う。
【００６８】
すなわち、ジョブ管理モジュール１００は、図１０に示すように、ネットワーク管理モジュール１０２を介してホストコンピュータＰｃから２つのジョブを順次受け取ると、１ジョブ目と２ジョブ目のジョブ種別を判別し（ステップＳ２０１）、１ジョブ目と２ジョブ目の種別（出力先）が、同じジョブ種別であるかチェックする（ステップＳ２０２）。
【００６９】
ステップＳ２０２で、１ジョブ目と２ジョブ目のジョブ種別が同じ（出力先が同じ）ときには、ジョブ管理モジュール１００は、上述のように、１ジョブ目のＰＤＬ解析処理が終了するまで、ＰＤＬ解析モジュール１０１を二重起動せずに、１つのＰＤＬ解析モジュール１０１のみを起動させて、１ジョブ目にＣＰＵ２５の複数のコアを１００％割り当てて、ＰＤＬ解析処理を行う。そして、ジョブ管理モジュール１００は、１ジョブ目のＰＤＬ解析が完了するまで、２ジョブ目のＰＤＬ解析処理の開始を待ち、１ジョブ目のＰＤＬ解析が終了すると、１ジョブ目の出力処理（例えば、印刷処理）を開始するとともに、２ジョブ目のＰＤＬ解析を開始して、２ジョブ目のＰＤＬ解析が終了しても、１ジョブ目の出力処理（印刷処理等）が終了するまで２ジョブ目の印刷処理の開始を待った後に、２ジョブ目の出力処理（印刷処理等）を開始する（ステップＳ２０３）。
【００７０】
ステップＳ２０２で、１ジョブ目と２ジョブ目のジョブ種別が異なるときには、２ジョブ目のＰＤＬ解析処理が早く終了しても、１ジョブ目と２ジョブ目の出力先が異なるため、ジョブ管理モジュール１００は、１ジョブ目の出力処理（印刷処理等）が終了するまで、２ジョブ目の出力処理を待つ必要はないが、ジョブのＰＤＬのマルチコア活用率に応じたコアの配分率でコアを配分することで処理効率を向上させる。
【００７１】
そこで、ジョブ管理モジュール１００は、ステップＳ２０２で、１ジョブ目と２ジョブ目のジョブ種別が異なるときには、１ジョブ目と２ジョブ目のＰＤＬマルチコア活用率をマルチコア活用率テーブルから取得して比較し（ステップＳ２０４）、マルチコア活用率が同じか否かチェックする（ステップＳ２０５）。
【００７２】
ステップＳ２０５で、マルチコア活用率が異なるときには、ジョブ管理モジュール１００は、マルチコア活用率の低いＰＤＬのジョブに１個のコアを配分し、残り全てのコアをマルチコア活用率の高いＰＤＬのジョブに配分するように設定して、ＰＤＬ解析モジュール１０１を二重起動させてＰＤＬ解析処理を行わせる（ステップＳ２０６）。
【００７３】
ステップＳ２０５で、マルチコア活用率が同じときには、ジョブ管理モジュール１００は、各ジョブに５０％ずつのコアを割り当てて、ＰＤＬ解析モジュール１０１を二重起動させ、ＰＤＬ解析処理を行わせる（ステップＳ２０７）。
【００７４】
このように、ＰＤＬの種類毎に該ＰＤＬによるＣＰＵ２５の複数のコアに対する活用率の登録されているマルチコア活用率テーブルを記憶し、ジョブ管理モジュール１００が、２つのＰＤＬ解析モジュール１０１を同時に起動して２つのジョブのＰＤＬ解析を並行処理させる場合、２つの該ジョブのＰＤＬに対するマルチコア活用率をマルチコア活用率テーブルから取得して、実行コア活用率が低い方のＰＤＬデータのＰＤＬ解析に１つのコアを配分し、マルチコア活用率が高い方のＰＤＬデータのＰＤＬ解析に残り全てのコアを配分している。
【００７５】
したがって、マルチコアをより一層効率的に活用してＰＤＬ解析することができ、処理速度をより一層向上させることができる。
【００７６】
次に、本実施例のレーザプリンタ１は、ジョブ種類毎にユーザの優先度の設定を可能とし、該優先度の設定に応じてＰＤＬ非二重起動とＰＤＬ二重起動を選択処理する。
【００７７】
すなわち、ユーザのレーザプリンタ１の利用形態やそのときの処理を優先したいジョブ等のようなユーザの意図に応じて処理を優先させたいジョブ種別が異なるため、ユーザによるホストコンピュータＰｃでの設定やオペレーションパネル１１での設定等に応じてＰＤＬ非二重起動とＰＤＬ二重起動を選択処理する。例えば、１ジョブ目と２ジョブ目でジョブ種類が異なっていて、１ジョブ目が通常印刷ジョブで、２ジョブ目が蓄積ジョブである場合、図６に示したように、１ジョブ目の通常印刷ジョブは、ＰＤＬ二重起動で処理を行うと、２ジョブ目の処理によってＣＰＵ２５のコアが使用されて、１ジョブ目のＰＤＬ解析処理の速度が低下し、通常印刷ジョブの全体の処理時間がＰＤＬ非二重起動で処理する場合よりも遅くなる。この場合、通常印刷ジョブを優先したいときには、ＰＤＬ非二重起動で処理する方が、通常印刷ジョブの処理時間を短くすることができる。
【００７８】
そこで、レーザプリンタ１は、図１１に示すように、ジョブ種別が異なるか否かだけでなく、ジョブ種別の内容を判別して、ＰＤＬ解析におけるコア配分を制御する。なお、いま、通常印刷ジョブを優先させて処理するように、設定されているものとする。
【００７９】
すなわち、ジョブ管理モジュール１００は、図１１に示すように、ネットワーク管理モジュール１０２を介してホストコンピュータＰｃから２つのジョブを順次受け取ると、１ジョブ目と２ジョブ目のジョブ種別を判別し（ステップＳ３０１）、１ジョブ目と２ジョブ目の種別（出力先）が、同じジョブ種別であるかチェックする（ステップＳ３０２）。
【００８０】
ステップＳ３０２で、１ジョブ目と２ジョブ目のジョブ種別が同じ（出力先が同じ）ときには、ジョブ管理モジュール１００は、上述のように、１ジョブ目のＰＤＬ解析処理が終了するまで、ＰＤＬ解析モジュール１０１を二重起動せずに、１つのＰＤＬ解析モジュール１０１のみを起動させて、１ジョブ目にＣＰＵ２５の複数のコアを１００％割り当てて、ＰＤＬ解析処理を行う。そして、ジョブ管理モジュール１００は、１ジョブ目のＰＤＬ解析が完了するまで、２ジョブ目のＰＤＬ解析処理の開始を待ち、１ジョブ目のＰＤＬ解析が終了すると、１ジョブ目の出力処理（例えば、印刷処理）を開始するとともに、２ジョブ目のＰＤＬ解析を開始して、２ジョブ目のＰＤＬ解析が終了しても、１ジョブ目の出力処理（印刷処理等）が終了するまで２ジョブ目の印刷処理の開始を待った後に、２ジョブ目の出力処理（印刷処理等）を開始する（ステップＳ３０３）。
【００８１】
ステップＳ３０２で、１ジョブ目と２ジョブ目のジョブ種別が異なるときには、ジョブ管理モジュール１００は、１ジョブ目が通常印刷ジョブであるかチェックし（ステップＳ３０４）、いま、通常印刷ジョブを優先させて処理する設定となっているので、通常印刷ジョブであると、ステップＳ３０３に移行して、ＰＤＬ非二重起動として、１ジョブ目から順次ＰＤＬ解析処理を行って通常印刷ジョブを優先させて処理する（ステップＳ３０３）。
【００８２】
ステップＳ２０２で、１ジョブ目が通常印刷ジョブでないときには、ジョブ管理モジュール１００は、各ジョブに５０％ずつのコアを割り当てて、ＰＤＬ解析モジュール１０１を二重起動させ、ＰＤＬ解析処理を行わせる（ステップＳ３０５）。
【００８３】
なお、図１１の説明では、通常印刷ジョブを優先させて処理する場合について説明したが、蓄積ジョブを優先させる設定がホストコンピュータＰｃやオペレーションパネル１１で行われていると、ジョブ管理モジュール１００は、ステップＳ３０４で、１ジョブ目が蓄積ジョブであるかチェックして、蓄積ジョブであると、ＰＤＬ非二重起動によって１００％のコア配分によって蓄積ジョブである１ジョブ目のＰＤＬ解析を行うＰＤＬ解析処理を行う。
【００８４】
また、ジョブの種別によって優先順位を設けずに、ジョブの処理を行わせたい場合には、優先順位付け無しの設定をホストコンピュータＰｃやオペレーションパネル１１で行うと、ジョブ管理モジュール１００は、図８に示したようにデータ処理制御処理を行う。
【００８５】
このように、レーザプリンタ１は、ホストコンピュータＰｃやオペレーションパネル１１から優先処理すべきジョブ種別が適宜設定されると、ジョブ管理モジュール１００が、同時並行処理対象となる複数ジョブのうち先頭ジョブのジョブ種別がホストコンピュータＰｃやオペレーションパネル１１によって設定されている優先ジョブ種別であると、ＰＤＬ解析モジュール１０１を１つのみ起動して、ＣＰＵ２４の全てのコアを該ＰＤＬ解析モジュール１０１によるＰＤＬ解析に割り当てている。
【００８６】
したがって、ユーザの意図する優先順位でジョブを処理させることができ、利用性を向上させることができる。
【００８７】
また、本実施例のレーザプリンタ１は、ジョブとして、蓄積同時印刷ジョブを実行する場合がある。この蓄積同時印刷ジョブは、図１２に示すように、ＰＤＬ解析モジュール１０１でＰＤＬ解析処理を行うと、プリントエンジン２０７で印刷処理を行うと同時に、ＨＤＤへのＰＤＬ解析処理後のデータの書き込み処理を実行する。すなわち、出力処理時に、プリントエンジン２０７とＨＤＤの両方を使用することとなり、他の通常印刷ジョブ及び蓄積ジョブの双方と出力処理が競合することになる。
【００８８】
すなわち、１ジョブ目が蓄積同時印刷ジョブであると、蓄積同時印刷ジョブの印刷処理が終了しないと、２ジョブ目はＰＤＬ解析処理が完了しても印刷処理あるいはＨＤＤ書き込み処理を開始することができない。また、２ジョブ目が蓄積同時印刷ジョブであると、１ジョブ目の出力処理が完了するまで、蓄積同時印刷ジョブの出力処理を開始することができない。例えば、１ジョブ目が通常印刷ジョブで、２ジョブ目が蓄積同時印刷ジョブの場合、蓄積同時印刷ジョブのＰＤＬ処理終了後に、ＨＤＤ書き込み処理はすぐに開始することはできるが、印刷処理は、１ジョブ目の印刷処理が終了するまで開始することができない。したがって、蓄積同時印刷ジョブが含まれているときには、出力処理での競合を速やかに処理するために、ＰＤＬ解析モジュール１０１を二重起動させずに、ＰＤＬ非二重起動によって処理する方が、全体の処理時間を短くすることができる。
【００８９】
そこで、本実施例のレーザプリンタ１は、図１３に示すように、ジョブ種別に蓄積同時印刷ジョブが含まれているか否かを判別して、ＰＤＬ解析におけるコア配分を制御する。
【００９０】
すなわち、ジョブ管理モジュール１００は、図１３に示すように、ネットワーク管理モジュール１０２を介してホストコンピュータＰｃから２つのジョブを順次受け取ると、１ジョブ目と２ジョブ目のジョブ種別を判別し（ステップＳ４０１）、１ジョブ目と２ジョブ目のいずれかに蓄積同時印刷ジョブが含まれているかチェックする（ステップＳ４０２）。
【００９１】
ステップＳ４０２で、蓄積同時印刷ジョブが含まれているときには、ジョブ管理モジュール１００は、上述のように、１ジョブ目のＰＤＬ解析処理が終了するまで、ＰＤＬ解析モジュール１０１を二重起動せずに、１つのＰＤＬ解析モジュール１０１のみを起動させて、１ジョブ目にＣＰＵ２５の複数のコアを１００％割り当てて、ＰＤＬ解析処理を行う。そして、ＰＤＬ解析モジュール１０１は、１ジョブ目のＰＤＬ解析が完了するまで、２ジョブ目のＰＤＬ解析処理の開始を待ち、１ジョブ目のＰＤＬ解析が終了すると、１ジョブ目の出力処理（例えば、印刷処理、ＨＤＤ書き込み処理またはその双方）を開始するとともに、２ジョブ目のＰＤＬ解析を開始して、２ジョブ目のＰＤＬ解析が終了しても、１ジョブ目の出力処理（印刷処理等）が終了するまで２ジョブ目の出力処理に印刷処理が含まれているときには、その印刷処理の開始を待った後に、２ジョブ目の出力処理（印刷処理等）を開始する（ステップＳ４０３）。
【００９２】
ステップＳ４０２で、１ジョブ目と２ジョブ目に蓄積同時印刷ジョブが含まれていないときには、ジョブ管理モジュール１００は、上記図８、図１０または図１１で示したデータ処理制御処理を実行する（ステップＳ４０４）。
【００９３】
このように、本実施例のレーザプリンタ１は、同時並行処理対象となる複数のジョブのうち他の全てのジョブの出力先と同じ出力先をその出力先として有するジョブ、例えば、上記蓄積同時印刷ジョブが存在すると、ジョブ管理モジュール１００が、ＰＤＬ解析モジュール１０１を１つのみ起動して、ＣＰＵ２５の全てのコアを該ＰＤＬ解析モジュール１０１によるＰＤＬ解析に割り当てている。
【００９４】
したがって、蓄積同時印刷ジョブ等の同時並行処理対象となる複数のジョブのうち他の全てのジョブの出力先と同じ出力先をその出力先として有するジョブが含まれているときには、出力処理での競合を速やかに処理するために、ＰＤＬ解析モジュール１０１を二重起動させずに、ＰＤＬ非二重起動によって処理して、全体の処理時間を短くすることができる。
【００９５】
さらに、本実施例のレーザプリンタ１は、ＣＰＵ２５のコアが３つ以上あり、ＰＤＬ二重起動で処理する場合、ＣＰＵ２５の３つ以上のコアの配分を、図１４に示すように、ジョブのＰＤＬのマルチコア活用率に基づいて行ってもよい。
【００９６】
すなわち、ジョブ管理モジュール１００は、ネットワーク管理モジュール１０２を介してホストコンピュータＰｃから２つのジョブを順次受け取ると、１ジョブ目と２ジョブ目のジョブ種別を判別し（ステップＳ５０１）、１ジョブ目と２ジョブ目の種別（出力先）が、同じジョブ種別であるかチェックする（ステップＳ５０２）。
【００９７】
ステップＳ５０２で、１ジョブ目と２ジョブ目のジョブ種別が同じ（出力先が同じ）ときには、ジョブ管理モジュール１００は、上述のように、１ジョブ目のＰＤＬ解析処理が終了するまで、ＰＤＬ解析モジュール１０１を二重起動せずに、１つのＰＤＬ解析モジュール１０１のみを起動させて、１ジョブ目にＣＰＵ２５の複数のコアを１００％割り当てて、ＰＤＬ解析処理を行う。そして、ジョブ管理モジュール１００は、１ジョブ目のＰＤＬ解析が完了するまで、２ジョブ目のＰＤＬ解析処理の開始を待ち、１ジョブ目のＰＤＬ解析が終了すると、１ジョブ目の出力処理（例えば、印刷処理）を開始するとともに、２ジョブ目のＰＤＬ解析を開始して、２ジョブ目のＰＤＬ解析が終了しても、１ジョブ目の出力処理（印刷処理等）が終了するまで２ジョブ目の印刷処理の開始を待っった後に、２ジョブ目の出力処理（印刷処理等）を開始する（ステップＳ５０３）。
【００９８】
ステップＳ５０２で、１ジョブ目と２ジョブ目のジョブ種別が異なるときには、２ジョブ目のＰＤＬ解析処理が早く終了しても、１ジョブ目と２ジョブ目の出力先が異なるため、ジョブ管理モジュール１００は、１ジョブ目の出力処理（印刷処理等）が終了するまで、２ジョブ目の出力処理を待つ必要はないが、ジョブのＰＤＬのマルチコア活用率に応じたコアの配分率でコアを配分することで処理効率を向上させる。
【００９９】
そこで、ジョブ管理モジュール１００は、ステップＳ５０２で、１ジョブ目と２ジョブ目のジョブ種別が異なるときには、１ジョブ目と２ジョブ目のＰＤＬマルチコア活用率をマルチコア活用率テーブルから取得し、１ジョブ目と２ジョブ目のＰＤＬのマルチコア活用率の比に応じてＣＰＵ２５のコアを配分して、ＰＤＬ解析モジュール１０１を二重起動させてＰＤＬ解析処理を行わせる（ステップＳ５０４）。例えば、１ジョブ目のＰＤＬのマルチコア活用率が５０％、２ジョブ目のＰＤＬのマルチコア活用率が３０％の場合、５：３の比率でＣＰＵ２５の複数のコアを配分する。
【０１００】
このようにすると、複数のコアをＰＤＬのコア活用率に基づいて効率的に処理することができ、より一層処理効率を向上させることができる。
【０１０１】
なお、上記説明においては、ジョブの種別として、通常印刷出力、蓄積出力、蓄積同時印刷出力の各ジョブを取り上げて説明したが、ジョブ種別としては、上記に限るものではなく、例えば、入力されるデータをＰＤＬ処理して、外部装置の蓄積装置に蓄積出力する外部蓄積出力ジョブ、外部のコンピュータ等の装置に転送する転送出力ジョブ等が存在する場合にも、同様に適用することができる。
【０１０２】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１０３】
本発明は、マルチコアＣＰＵを搭載して複数のＰＤＬ解析モジュールを並列動作可能なプリンタ装置、複合装置等の画像処理装置、画像処理方法、画像処理プログラム及び記録媒体に利用することができる。
【符号の説明】
【０１０４】
１  レーザプリンタ
１０  コントローラ
１１  オペレーションパネル
１２  プリンタエンジン
２１  ホストＩ／Ｆ
２２  プログラムＲＯＭ
２３  フォントＲＯＭ
２４  パネルＩ／Ｆ
２５  ＣＰＵ
２６  ＲＡＭ
２７  ＮＶＲＡＭ
２８  エンジンＩ／Ｆ
２９  オプションＲＡＭ
３０  バス
ＮＷ  ネットワーク
Ｐｃ  ホストコンピュータ
１００  ジョブ管理モジュール
１０１  ＰＤＬ解析モジュール
１０２  ネットワーク管理モジュール
１０３  メモリ管理モジュール
１０４  印刷管理モジュール
１０５  システム管理モジュール
１０６  パネル管理モジュール
【先行技術文献】
【特許文献】
【０１０５】
【特許文献１】特開２００８−１４９５４３号公報
【図１】
2011046034.tif 000003
【図２】
2011046034.tif 000004
【図３】
2011046034.tif 000005
【図４】
2011046034.tif 000006
【図５】
2011046034.tif 000007
【図６】
2011046034.tif 000008
【図７】
2011046034.tif 000009
【図８】
2011046034.tif 000010
【図９】
2011046034.tif 000011
【図１０】
2011046034.tif 000012
【図１１】
2011046034.tif 000013
【図１２】
2011046034.tif 000014
【図１３】
2011046034.tif 000015
【図１４】
2011046034.tif 000016