(57)【特許請求の範囲】
【請求項１】
複数の演算部を有し、ページ記述言語形式のデータを解析してバンド単位の中間言語形式のデータを生成する解析処理、前記解析処理により生成された中間言語形式のデータに基づいて画像形成のための描画用のデータを生成する描画処理、を前記複数の演算部に割り当てて実行する制御部と記憶部とを備えた画像処理装置において、
前記複数の演算部のうち少なくともいずれか一つの第１の演算部は、前記解析処理及び前記描画処理が実行可能であり、前記解析処理が前記描画処理よりも処理実行の優先順位が高く設定されており、
前記第１の演算部は、
前記解析処理の実行中に、前記記憶部における、前記解析処理が実行される際に使用される解析用展開領域内に空き領域が無くなった場合、前記解析処理を停止し、第１のページについて、前記複数の演算部のうちの前記第１の演算部以外の第２の演算部とともに前記描画処理を実行し、
前記第１のページについての前記描画処理が終了したことに応じて、前記描画処理を停止し、前記解析処理を実行すること、
を特徴とする画像処理装置。
【請求項２】
前記第１の演算部は、
第２のページに関する前記解析処理の実行中に、前記記憶部における前記解析用展開領域内に空き領域が無くなった場合、前記第２のページに関する前記解析処理を中断して、前記第２の演算部が前記描画処理を実行中の前記第１のページについて、前記第２の演算部とともに前記描画処理を実行し、
前記第１のページについての前記描画処理が終了したことに応じて、前記第２のページに関する前記解析処理を再開すること、
を特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１の演算部は、更に、最終ページの前記解析処理が終了したことに応じて、前記第２の演算部とともに前記描画処理を実行すること、
を特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
複数の演算部を有し、ページ記述言語形式のデータを解析してバンド単位の中間言語形式のデータを生成する解析処理、前記解析処理により生成された中間言語形式のデータに基づいて画像形成のための描画用のデータを生成する描画処理、を前記複数の演算部に割り当てて実行する制御部と記憶部とを備えた画像処理装置による画像処理方法において、
前記画像処理装置の複数の演算部のうち少なくともいずれか一つの第１の演算部は、前記解析処理及び前記描画処理が実行可能であり、前記解析処理が前記描画処理よりも処理実行の優先順位が高く設定されており、
前記第１の演算部において、
前記解析処理の実行中に、前記記憶部における、前記解析処理が実行される際に使用される解析用展開領域内に空き領域が無くなった場合、前記解析処理を停止し、第１のページについて、前記複数の演算部のうちの前記第１の演算部以外の第２の演算部とともに前記描画処理を実行する工程と、
前記第１のページについての前記描画処理が終了したことに応じて、前記描画処理を停止し、前記解析処理を実行する工程と、
を含むこと、
を特徴とする画像処理方法。
【請求項５】
前記第１の演算部において、
第２のページに関する前記解析処理の実行中に、前記記憶部における前記解析用展開領域内に空き領域が無くなった場合、前記第２のページに関する前記解析処理を中断して、前記第２の演算部が前記描画処理を実行中の前記第１のページについて、前記第２の演算部とともに前記描画処理を実行する工程と、
前記第１のページについての前記描画処理が終了したことに応じて、前記第２のページに関する前記解析処理を再開する工程と、
を含むこと、
を特徴とする請求項４に記載の画像処理方法。
【請求項６】
前記第１の演算部において、更に、最終ページの前記解析処理が終了したことに応じて、前記第２の演算部とともに前記描画処理を実行する工程を含むこと、
を特徴とする請求項４又は５に記載の画像処理方法。
【請求項７】
複数の演算部と記憶部とを備えたコンピュータに、
ページ記述言語形式のデータを解析してバンド単位の中間言語形式のデータを生成する解析処理と、前記解析処理により生成された中間言語形式のデータに基づいて画像形成のための描画データを生成する描画処理と、を前記複数の演算部に割り当てて実行させるためのプログラムにおいて、
前記複数の演算部のうち少なくともいずれか一つの第１の演算部は、前記解析処理及び前記描画処理が実行可能であり、前記解析処理が前記描画処理よりも処理実行の優先順位が高く設定されており、
前記第１の演算部に対して、
前記解析処理の実行中に、前記記憶部における、前記解析処理が実行される際に使用される解析用展開領域内に空き領域が無くなった場合、前記解析処理を停止させ、第１のページについて、前記複数の演算部のうちの前記第１の演算部以外の第２の演算部とともに前記描画処理を実行させ、
前記第１のページについての前記描画処理が終了したことに応じて、前記描画処理を停止させ、前記解析処理を実行させるためのプログラム。
【請求項８】
前記第１の演算部に対して、
第２のページに関する前記解析処理の実行中に、前記記憶部における前記解析用展開領域内に空き領域が無くなった場合、前記第２のページに関する前記解析処理を中断させて、前記第２の演算部が前記描画処理を実行中の前記第１のページについて、前記第２の演算部とともに前記描画処理を実行させ、
前記第１のページについての前記描画処理が終了したことに応じて、前記第２のページに関する前記解析処理を再開させること、
を特徴とする請求項７に記載のプログラム。
【請求項９】
前記第１の演算部に対して、更に、最終ページの前記解析処理が終了したことに応じて、前記第２の演算部とともに前記描画処理を実行させること、
を特徴とする請求項７又は８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、プロセッサコア等の演算部（以下、コアと称す）が一つのパッケージ内に複数集積されて構成され、各コアに処理を分散させて並列処理を行うことにより、処理性能を向上させたマルチコアプロセッサが開発されている。
【０００３】
特に、ＭＦＰ（Multi Function Printer）やプリンタ等の画像形成装置において、このマルチコアプロセッサを用いて各処理を各コアに割り当てて並列処理を実行することにより、プリント処理の高速化を図ることが提案されている。
【０００４】
例えば、画像データを印刷する処理を複数のプロセスに分割し、当該複数のプロセスの少なくとも１つのプロセスをそれぞれ分担して処理する複数のプロセッサを備え、各プロセッサが処理するプロセスの処理状況に基づいて、各プロセッサへの処理割り当てを制御し、各プロセッサの処理負荷に応じて各プロセッサの処理分担を変更する画像形成装置が開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−３２６３０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、引用文献１の従来技術では、用紙に画像を形成するためのプリントデータを生成する際に実行される各処理で使用されるメモリ領域の空き待ち等の各処理を継続できない事象（イベント）が発生した場合には、当該事象が発生した処理を実行するコアは当該事象が解消するまで待機状態となり、処理効率が低下するという問題がある。
【０００７】
本発明の課題は、上記問題に鑑みて、複数の演算部から構成される制御部を用いて複数の処理を実行する画像処理装置において、演算部の処理待機時間を削減し、処理効率の向上を図ることである。
【課題を解決するための手段】
【０００８】
請求項１に記載の発明は、複数の演算部を有し、ページ記述言語形式のデータを解析してバンド単位の中間言語形式のデータを生成する解析処理、前記解析処理により生成された中間言語形式のデータに基づいて画像形成のための描画用のデータを生成する描画処理、を前記複数の演算部に割り当てて実行する制御部と記憶部とを備えた画像処理装置において、前記複数の演算部のうち少なくともいずれか一つの第１の演算部は、前記解析処理及び前記描画処理が実行可能であり、前記解析処理が前記描画処理よりも処理実行の優先順位が高く設定されており、前記第１の演算部は、前記解析処理の実行中に、前記記憶部における、前記解析処理が実行される際に使用される解析用展開領域内に空き領域が無くなった場合、前記解析処理を停止し、第１のページについて、前記複数の演算部のうちの前記第１の演算部以外の第２の演算部とともに前記描画処理を実行し、前記第１のページについての前記描画処理が終了したことに応じて、前記描画処理を停止し、前記解析処理を実行すること、を特徴とする画像処理装置である。
【０００９】
請求項２に記載の発明は、請求項１に記載の画像処理装置において、前記第１の演算部は、第２のページに関する前記解析処理の実行中に、前記記憶部における前記解析用展開領域内に空き領域が無くなった場合、前記第２のページに関する前記解析処理を中断して、前記第２の演算部が前記描画処理を実行中の前記第１のページについて、前記第２の演算部とともに前記描画処理を実行し、前記第１のページについての前記描画処理が終了したことに応じて、前記第２のページに関する前記解析処理を再開すること、を特徴とする。
【００１０】
請求項３に記載の発明は、請求項１又は２に記載の画像処理装置において、前記第１の演算部は、更に、最終ページの前記解析処理が終了したことに応じて、前記第２の演算部とともに前記描画処理を実行すること、を特徴とする。
【００１１】
請求項４に記載の発明は、複数の演算部を有し、ページ記述言語形式のデータを解析してバンド単位の中間言語形式のデータを生成する解析処理、前記解析処理により生成された中間言語形式のデータに基づいて画像形成のための描画用のデータを生成する描画処理、を前記複数の演算部に割り当てて実行する制御部と記憶部とを備えた画像処理装置による画像処理方法において、前記画像処理装置の複数の演算部のうち少なくともいずれか一つの第１の演算部は、前記解析処理及び前記描画処理が実行可能であり、前記解析処理が前記描画処理よりも処理実行の優先順位が高く設定されており、前記第１の演算部において、前記解析処理の実行中に、前記記憶部における、前記解析処理が実行される際に使用される解析用展開領域内に空き領域が無くなった場合、前記解析処理を停止し、第１のページについて、前記複数の演算部のうちの前記第１の演算部以外の第２の演算部とともに前記描画処理を実行する工程と、前記第１のページについての前記描画処理が終了したことに応じて、前記描画処理を停止し、前記解析処理を実行する工程と、を含むこと、を特徴とする画像処理方法である。
【００１２】
請求項５に記載の発明は、請求項４に記載の画像処理方法において、前記第１の演算部において、第２のページに関する前記解析処理の実行中に、前記記憶部における前記解析用展開領域内に空き領域が無くなった場合、前記第２のページに関する前記解析処理を中断して、前記第２の演算部が前記描画処理を実行中の前記第１のページについて、前記第２の演算部とともに前記描画処理を実行する工程と、前記第１のページについての前記描画処理が終了したことに応じて、前記第２のページに関する前記解析処理を再開する工程と、を含むこと、を特徴とする。
【００１３】
請求項６に記載の発明は、請求項４又は５に記載の画像処理方法において、前記第１の演算部において、更に、最終ページの前記解析処理が終了したことに応じて、前記第２の演算部とともに前記描画処理を実行する工程を含むこと、を特徴とする。
【００１４】
請求項７に記載の発明は、複数の演算部と記憶部とを備えたコンピュータに、ページ記述言語形式のデータを解析してバンド単位の中間言語形式のデータを生成する解析処理と、前記解析処理により生成された中間言語形式のデータに基づいて画像形成のための描画データを生成する描画処理と、を前記複数の演算部に割り当てて実行させるためのプログラムにおいて、前記複数の演算部のうち少なくともいずれか一つの第１の演算部は、前記解析処理及び前記描画処理が実行可能であり、前記解析処理が前記描画処理よりも処理実行の優先順位が高く設定されており、前記第１の演算部に対して、前記解析処理の実行中に、前記記憶部における、前記解析処理が実行される際に使用される解析用展開領域内に空き領域が無くなった場合、前記解析処理を停止させ、第１のページについて、前記複数の演算部のうちの前記第１の演算部以外の第２の演算部とともに前記描画処理を実行させ、前記第１のページについての前記描画処理が終了したことに応じて、前記描画処理を停止させ、前記解析処理を実行させるためのプログラムである。
請求項８に記載の発明は、請求項７に記載のプログラムにおいて、前記第１の演算部に対して、第２のページに関する前記解析処理の実行中に、前記記憶部における前記解析用展開領域内に空き領域が無くなった場合、前記第２のページに関する前記解析処理を中断させて、前記第２の演算部が前記描画処理を実行中の前記第１のページについて、前記第２の演算部とともに前記描画処理を実行させ、前記第１のページについての前記描画処理が終了したことに応じて、前記第２のページに関する前記解析処理を再開させること、を特徴とする。
請求項９に記載の発明は、請求項７又は８に記載のプログラムにおいて、前記第１の演算部に対して、更に、最終ページの前記解析処理が終了したことに応じて、前記第２の演算部とともに前記描画処理を実行させること、を特徴とする。
【発明の効果】
【００１５】
本発明によれば、解析処理の実行中に、解析用展開領域内に空き領域が無くなった場合、描画処理を実行することができ、解析用展開領域内に空き領域が無いという事象が解消するまで第１の演算部が待機する処理待機時間を削減でき、処理効率の向上を図ることができる。
【図面の簡単な説明】
【００２０】
【図１】画像形成装置の主要構成図である。
【図２】画像形成装置の制御ブロック図である。
【図３】実施の形態１における画像処理装置の機能構成図である。
【図４】実施の形態１における解析イベントテーブルの例を示す図である。
【図５】実施の形態１における描画イベントテーブルの例を示す図である。
【図６】実施の形態１における第１コアで実行される動作のフローチャートである。
【図７】ステップＳ５で実行される第１コアにより機能する第１描画部の動作のフローチャートである。
【図８】実施の形態１における第２コアで実行される動作のフローチャートを示す。
【図９】図９（Ａ）は従来の動作例を示す図、図９（Ｂ）は実施の形態１の動作例を示す図である。
【図１０】実施の形態２における画像処理装置の機能構成図である。
【図１１】実施の形態２における解析イベントテーブルの例を示す図である。
【図１２】実施の形態２における描画イベントテーブルの例を示す図である。
【図１３】実施の形態２における第１コアで実行される動作のフローチャートである。
【図１４】実施の形態２における第２コアで実行される動作のフローチャートである。
【図１５】ステップＳ５６で実行される第２コアにより機能する第２解析部の動作のフローチャートである。
【図１６】図１６（Ａ）は従来の動作例を示す図、図１６（Ｂ）は実施の形態２の動作例を示す図である。
【発明を実施するための形態】
【００２１】
〔実施の形態１〕
以下、図を参照して本発明の実施の形態１を詳細に説明する。
まず、構成を説明する。
図１に、画像形成装置１の主要構成図を示す。
図１に示すように、画像形成装置１は、エンジン１０と、画像処理装置４０Ａと、を備えている。
【００２２】
エンジン１０は、画像処理装置４０Ａから出力されるプリントデータに基づいて、用紙等の印刷媒体に画像形成を行う装置である。
本実施の形態１におけるエンジン１０は、イエロー（Ｙ），マゼンダ（Ｍ），シアン（Ｃ），ブラック（Ｋ）の４色それぞれを個別の静電ドラムで転写する構成（タンデム方式）である。
【００２３】
図１に示すように、エンジン１０は、用紙カセット１１、給紙ローラ１２、搬送ローラ１３、搬送ベルト１４、静電ドラム１５Ｙ、１５Ｍ、１５Ｃ、１５Ｋ、プリントユニット１６Ｙ、１６Ｍ、１６Ｃ、１６Ｋ、レーザユニット１７Ｙ、１７Ｍ、１７Ｃ、１７Ｋ、転写ローラ１８Ｙ、１８Ｍ、１８Ｃ、１８Ｋ、定着器１９、排紙ローラ２０等を備える。
【００２４】
用紙カセット１１には、用紙等の印刷媒体が格納されている。用紙カセット１１に格納されている用紙は、給紙ローラ１２によって一枚ずつ引き出され、引き出された用紙は、搬送ローラ１３によって搬送ベルト１４へ搬送される。
搬送ベルト１４へ搬送された用紙は、静電ドラム１５Ｙ，１５Ｍ，１５Ｃ，１５Ｋ上に形成された各色のトナー画像が転写される。
【００２５】
イエロー（Ｙ）のトナー画像が用紙に転写される処理について説明する。
静電ドラム１５Ｙは、円筒状の部材であり、帯電ユニット（図示略）によりその円筒の外周面が帯電している。帯電された静電ドラム１５Ｙの外周面に、用紙に形成するイエローの画像に応じたプリントデータに基づくレーザがレーザユニット１７Ｙによって照射され、静電ドラム１５Ｙの外周面に静電潜像が形成される。
【００２６】
プリントユニット１６Ｙは、イエロー（Ｙ）のトナーを収めるトナーカートリッジと、トナーカートリッジ内のトナーを静電画像に付着させる現像ユニットとを有する。
静電ドラム１５Ｙの外周面に形成された静電潜像がイエロー（Ｙ）のトナーがプリントユニット１６Ｙにより付着されることにより現像され、イエロー（Ｙ）のトナー画像が静電ドラム１５Ｙの外周面に形成される。
【００２７】
搬送ベルト１４を挟んで静電ドラム１５Ｙと対向する位置には転写ローラ１８Ｙが設けられている。静電ドラム１５Ｙの外周面に形成されたトナー画像は、搬送ベルト１４と静電ドラム１５Ｙとによって用紙が挟まれるタイミングで、転写ローラ１８Ｙによる逆帯電により用紙に転写される。
【００２８】
前述の静電ドラム１５Ｙによるイエロー（Ｙ）のトナー画像の転写と同様の仕組みにより、静電ドラム１５Ｍはプリントユニット１６Ｍのトナーカートリッジ内に収められたマゼンダ（Ｍ）のトナー画像を転写し、静電ドラム１５Ｃはプリントユニット１６Ｃのトナーカートリッジ内に収められたシアン（Ｃ）のトナー画像を転写し、静電ドラム１５Ｋはプリントユニット１６Ｋのトナーカートリッジ内に収められたブラック（Ｋ）のトナー画像を転写する。
【００２９】
４色のトナー画像が重ねて転写された用紙は、定着器１９へ搬送される。
定着器１９は、用紙に紙面に転写されたトナー画像を定着させる。
トナー画像が定着された用紙は、排紙ローラ２０により搬送されて排紙トレイ（不図示）上に排出される。
以上、用紙に対するプリント処理の工程を説明したが、用紙以外の印刷媒体についても同様の仕組みによるプリント処理が行われる。
【００３０】
図２に、画像形成装置１の制御ブロック図を示す。
図２に示すように、画像処理装置４０Ａは、制御部４１、ＲＡＭ（Random Access Memory）４２、ＲＯＭ（Read Only Memory）４３、ＨＤＤ（Hard Disk Drive）４４、通信装置４５等を備え、各部はバス４６によって接続されている。
【００３１】
制御部４１は、プロセッサコア等の演算部（以下、コアと称す）を複数備えて構成されたマルチコアプロセッサを用いて構成される。本実施の形態１では、制御部４１は、２つのコア（第１コア４１ａ、第２コア４１ｂ）を備えて構成されている。
なお、制御部４１は、コアに替えてＣＰＵ（Central Processing Unit）を集合させ、マルチコアプロセッサと同等の機能を発揮するように構成されてもよい。
【００３２】
制御部４１は、ＲＯＭ４３内に格納されている各種処理プログラムやデータをＲＡＭ４２に展開し、当該プログラムに基づいて画像形成装置１の各部の動作を集中制御する。例えば、通信装置４５と接続された外部装置８０から入力される指示信号に従って各種モードに対する処理のプログラムを読み出して、各種処理等の制御を行う。
【００３３】
ＲＡＭ４２は、制御部４１が実行する各種プログラムやデータ等が一時的に展開され、各種プログラムで処理されたデータ等を一時的に記憶する領域を有する。特に、本実施の形態１のＲＡＭ４２は、後述する解析処理及び描画処理が実行される際に使用されるデータ展開領域４２ａを有する記憶部として機能する。データ展開領域４２ａには、解析処理を実行する際に使用される解析用展開領域と、描画処理を実行する際に使用される描画用展開領域とが含まれている。
【００３４】
ＲＯＭ４３は、制御部４１により実行される各種処理のプログラムやデータ等を記憶する。例えば、解析処理プログラム５１、描画処理プログラム５２、印刷制御プログラム５３、印刷プログラム５４、解析イベントテーブル５５、描画イベントテーブル５６等を記憶する不揮発性メモリである。ＲＯＭ４３に替えて、例えば、磁気的、光学的記憶媒体又は半導体メモリ等の読み出し可能な不揮発性の記憶媒体を用いてもよい。また、このＲＯＭ４３は、制御基板等に固定的に設けられるもの、若しくは着脱自在に装着するものであっても良い。
【００３５】
ＨＤＤ４４は、オペレーションプログラムや各種のアプリケーションプログラム及びジョブデータ等の各種データを所定のアドレスと対応付けて記憶する。
なお、ＨＤＤ４４に替えて、ＣＦ（Compact Flash）等を用いてもよく、読み書き可能な不揮発性の記憶媒体を用いてもよい。
【００３６】
通信装置４５は、画像処理装置４０Ａと外部装置８０とを相互通信可能に接続する。通信装置４５として、例えば無線ＬＡＮ（Local Area Network）やBluetooth、インターネット接続その他の方式による外部のネットワークとの接続を可能にする各種の装置が挙げられ、通信装置４５はこれら複数の方式による通信機能を有している。通信装置４５と相互通信可能に接続される外部装置８０として、例えばＰＣや携帯電話、外部のネットワークを介して接続されたワークステーション等が挙げられる。
【００３７】
バス４６は、画像処理装置４０Ａの各部及びエンジン１０を相互に接続する。
【００３８】
次に、本実施の形態１における画像処理装置４０Ａの機能について説明する。
図３に、画像処理装置４０Ａの機能構成図を示す。
図３に示すように、画像処理装置４０Ａは、第１解析部６１ａ、第１描画部６２ａ、第２描画部６２ｂ、印刷制御部６３、印刷部６４として機能する。
なお、太実線矢印は、データの流れを示すものであり、太破線矢印は、第１解析部６１ａが一時的に停止する場合に追加されるデータの流れを示すものである。
【００３９】
画像処理装置４０Ａの各機能は、制御部４１を構成する各コアが、割り当てられた処理に対応するプログラムをＲＯＭ４３から読み込んで実行することにより実現される。
【００４０】
第１コア４１ａには、解析処理及び描画処理が予め実行可能に割り当てられている。第１コア４１ａは、解析処理プログラム５１を読み込んで実行することにより第１解析部６１ａ、描画処理プログラム５２を読み込んで実行することより第１描画部６２ａとして機能する。第１コア４１ａに割り当てられた解析処理と描画処理とは、解析処理が描画処理よりも処理実行の優先順位が高く設定されている。
【００４１】
第２コア４１ｂには、描画処理が予め割り当てられている。第２コア４１ｂは、描画処理プログラム５２を読み込んで実行することより第２描画部６２ｂとして機能する。
また、印刷制御部６３、印刷部６４は、第１コア４１ａ、第２コア４１ｂ又はその他のコアにより、印刷制御プログラム５３、印刷プログラム５４が実行されることによって機能する。
【００４２】
以下、各部の機能について説明する。
第１解析部６１ａは、解析イベントテーブル５５を参照しながら、外部装置８０から入力されたデータに基づき、当該データ解釈して当該データの形式とビットマップ形式のデータ（以下、ビットマップデータと称す。）との間の中間言語形式のデータ（以下、中間データと称す。）をバンド単位で生成し、生成した中間データをＲＡＭ４２のデータ展開領域の解析用展開領域に格納する。
【００４３】
外部装置８０から入力されるデータとしては、ポストスクリプト（登録商標）やＰＣＬ等のページ記述言語形式の画像データ（以下、ＰＤＬデータと称す。）や、ＰＤＦ（Portable Document Format）やＸＰＳ（XML Paper Specification）等の記述言語形式の画像データであり、以下、これらのデータを総称してページ記述言語データと称す。
【００４４】
中間データは、ページ記述言語データに含まれるオブジェクト（テキストデータ、グラフィックスデータ、イメージデータ等）の特徴に応じて生成されるデータ（Display ListやPostScript等）である。例えば、テキストデータやグラフィックスデータの中間データとしてはベクタ形式のデータ、イメージデータの中間データとしてはイメージ形式のデータ、を挙げることができる。
【００４５】
図４に、実施の形態１における解析イベントテーブル５５の例を示す。
解析イベントテーブル５５は、解析処理を実行する解析処理プログラムに対して設けられている。解析イベントテーブル５５には、解析処理の実行中に発生し得る事象（イベント）と、当該イベントに対して実行する処理の指示情報（アクション）と、アクションが実行された後に発生する事象（次イベント）とが対応つけられたレコードが、イベント毎に設定されている。本実施の形態１の解析イベントテーブルには、解析処理が一時的に停止するイベントと、解析処理よりも優先順位が低く解析処理とは異なる処理である描画処理の実行を要求するアクションとが対応つけられたレコードが事象情報として含まれている。
【００４６】
解析処理が一時的に停止するイベントとしては、「空き領域待ち」、「ジョブ終了検知」等である。
【００４７】
「空き領域待ち」のイベントは、例えば、ＲＡＭ４２内のデータ展開領域内のうち解析処理で生成される中間データを格納する領域（解析用展開領域）において、中間データを格納する領域が無い状態が発生したことにより生ずるイベントであり、解析処理を実行するための解析用展開領域内に空き領域が無い状態が発生したことを示す。この「空き領域待ち」が含まれるレコードのアクションは、描画処理の要求の通知を出力する「描画要求通知」であり、次イベントは、１ページ分の描画処理の完了を待機する「１ページ描画完了待ち」である。
【００４８】
「ジョブ終了検知」のイベントは、例えば、外部装置から入力されたプリントジョブに含まれるジョブ終了コマンドを解析した場合等のジョブが解析処理を終了したことが検知されたときに発生するイベントであり、解析処理の処理対象となるページ記述言語データが無い状態が発生したことを示す。この「ジョブ終了検知」が含まれるレコードのアクション及び次イベントは、「空き領域待ち」が含まれるレコードのアクション及び次イベントと同様である。
【００４９】
第１描画部６２ａは、第１解析部６１ａからの要求に応じて、描画イベントテーブル５６を参照しながら、第１解析部６１ａにより生成され解析用展開領域に格納されている中間データからビットマップデータを生成し、ＲＡＭ４２のデータ展開領域の描画用展開領域に格納する。
【００５０】
図５に、実施の形態１における描画イベントテーブル５６の例を示す。
描画イベントテーブルは、描画処理を実行する描画処理プログラムに対して設けられている。描画イベントテーブル５６には、描画処理の実行中に発生し得る事象（イベント）と、当該イベントに対して実行する処理の指示情報（アクション）と、アクションが実行された後に発生する事象（次イベント）とが対応つけられたレコードが、イベント毎に設定されている。
【００５１】
第２描画部６２ｂは、第１解析部６１ａにより生成され解析用展開領域に格納されている中間データからビットマップデータを生成し、印刷制御部６３へ出力する。
【００５２】
印刷制御部６３は、第１描画部６２ａ、第２描画部６２ｂにより生成され描画用展開領域に格納されているビットマップデータを読み出し、読み出したビットマップデータに対して印刷媒体に印刷する際のレイアウト等の各種処理を行い、処理後のデータを印刷部６４へ出力し、出力したデータに対するビットマップデータを描画用展開領域から解放する通知（描画用展開領域の解放通知）を出力する。印刷制御部６３が行う処理として、例えば片面／両面印刷の選択に応じた制御や、ページ割付を伴う印刷の制御等が挙げられる。
【００５３】
印刷部６４は、印刷制御部６３から入力された処理後のデータに基づきプリントデータを生成し、エンジン１０へ出力する。エンジン１０は、印刷部６４から入力されたプリントデータに基づいてプリント処理を行う。
【００５４】
次に、本実施の形態１の動作を説明する。
図６に、本実施の形態１における第１コア４１ａで実行される動作のフローチャートを示す。
【００５５】
外部装置８０から通信装置４５を介して１又は複数ページのページ記述言語データを含むプリントジョブが受信されると（ステップＳ１）、第１コア４１ａは、第１解析部６１ａを機能させ、１ページ分のページ記述言語データに対して解析処理の実行を開始する（ステップＳ２）。
【００５６】
第１解析部６１ａを機能させている第１コア４１ａは、第１解析部６１ａにおける解析処理の実行中に「空き領域待ち」のイベントが発生したか否かを判別する（ステップＳ３）。「空き領域待ち」のイベントが発生していない場合（ステップＳ３；ＮＯ）、第１コア４１ａは、ステップＳ６の処理に進む。
【００５７】
「空き領域待ち」のイベントが発生した場合（ステップＳ３；ＹＥＳ）、第１コア４１ａは、解析イベントテーブル５５を参照して「空き領域待ち」のイベントに対応するレコードを選択し（ステップＳ４）、選択したレコードのアクション（描画要求通知）を実行し、第１描画部６２ａを機能させ、描画処理を行う（ステップＳ５）。
【００５８】
ステップＳ３；ＮＯ後又はステップＳ５後、第１コア４１ａは、第１解析部６１ａによる解析処理の継続に戻り（ステップＳ６）、１ページ分の解析処理が終了したか否かを判別する（ステップＳ７）。１ページ分の解析処理が終了していない場合（ステップＳ７；ＮＯ）、第１コア４１ａは、ステップＳ３の処理に戻る。
【００５９】
１ページ分の解析処理が終了した場合（ステップＳ７；ＹＥＳ）、第１コア４１ａは、第２コア４１ｂに対して描画要求通知を出力し（ステップＳ８）、「ジョブ終了検知」のイベントが発生したか否か、即ち、プリントジョブに含まれる全ページの解析処理が終了したか否かを判別する（ステップＳ９）。
【００６０】
「ジョブ終了検知」のイベントが発生していない場合（ステップＳ９；ＮＯ）、第１コア４１ａは、ステップＳ２の処理に戻る。「ジョブ終了検知」のイベントが発生した場合（ステップＳ９；ＹＥＳ）、第１コア４１ａは、解析イベントテーブル５５を参照して「ジョブ終了検知」のイベントに対応するレコードを選択し（ステップＳ１０）、選択したレコードのアクション（描画要求通知）を実行し、第１描画部６２ａを機能させ、描画処理を行い（ステップＳ１１）、本処理を終了する。
【００６１】
図７に、ステップＳ５で実行される第１コア４１ａにより機能する第１描画部６２ａの動作のフローチャートを示す。
【００６２】
第１コア４１ａは、第１解析部６１ａから描画要求通知が出力された場合、第１描画部６２ａを機能させ、解析用展開領域内に中間データがあるか否かを判別する（ステップＳ２１）。ＲＡＭ４２の解析用展開領域内に中間データがない場合（ステップＳ２１；ＮＯ）、第１コア４１ａは、本処理を終了する。
【００６３】
ＲＡＭ４２の解析用展開領域内に中間データがある場合（ステップＳ２１；ＹＥＳ）、第１コア４１ａは、解析用展開領域に格納されている中間データから１バンド分のビットマップデータを生成し（ステップＳ２２）、本処理を終了する。
【００６４】
なお、ステップＳ１１で実行される第１コア４１ａにより機能する第１描画部６２ａの動作のフローチャートは、ステップＳ２２後にステップＳ２１に戻る処理を除いて図７に示すフローチャートと同様であるため、図示及び説明は省略する。即ち、ステップＳ１１で実行される第１コア４１ａにより機能する第１描画部６２ａの動作フローは、解析用展開領域に格納されている中間データが無くなるまで、バンド単位でビットマップデータを生成するものである。
【００６５】
図８に、本実施の形態１における第２コア４１ｂで実行される動作のフローチャートを示す。
描画要求通知を受信すると（ステップＳ３１）、第２コア４１ｂは、第２描画部６２ｂを機能させ、解析用展開領域内に中間データがあるか否かを判別する（ステップＳ３２）。
【００６６】
解析用展開領域内に中間データがある場合（ステップＳ３２；ＹＥＳ）、第２コア４１ｂは、解析用展開領域に格納されている中間データに対して描画処理を実行して１バンド分のビットマップデータを生成し（ステップＳ３３）、ステップＳ３２の処理に戻る。解析用展開領域内に中間データがない場合（ステップＳ３２；ＮＯ）、第２コア４１ｂは、本処理を終了する。
【００６７】
図９（Ａ）に従来の動作例、図９（Ｂ）に本実施の形態１の動作例を示す。
なお、図９（Ａ）に示す従来の動作例では、予め、第１コアに解析処理、第２コアに描画処理、が割り当てられているものとする。
【００６８】
図９（Ａ）に示すように、従来では、第１コアにより２ページ目の解析処理が実行されている途中で、解析用展開領域の空き待ちのイベントが発生した場合、解析用展開領域内に空きが発生するまで（ここでは、１ページ目の描画処理が完了するまで）一時的に解析処理が停止する。また、最終ページの解析処理が終了すると、第１コアはアイドル状態となり、第２コアのみで描画処理が実行される。
従って、従来では、第１コアが動作しない無駄な時間が発生し、プリントデータが生成される一連の処理効率が低下するという問題が発生する。
【００６９】
図９（Ｂ）に示すように、本実施の形態１では、第１コアにより２ページ目の解析処理が実行されている途中で、解析用展開領域の空き待ちのイベントが発生した場合には、描画要求通知が出力される。第１コアは、描画要求通知が出力されると、第１描画部６２ａを機能させ、解析用展開領域内に空きが発生するまで（ここでは、１ページ目の描画処理が完了するまで）、現在描画処理中のページ（１ページ目）の描画処理を実行する。第１コアは、１ページ分の描画処理が完了して解析用展開領域の空き待ちのイベントが解消すると、第１解析部での解析処理を再開する。そのため、１ページ目の描画処理が第１コアと第２コアとにより実行されるため、１ページ目の描画処理に要する時間が短縮されると共に、第１コアが動作しない無駄な時間を解消することができる。
また、第１コアは、最終ページ目の解析処理を終了すると、最終ページ目の描画処理を実行する。そのため、最終ページ目の描画処理が第１コアと第２コアとにより実行され、最終ページ目の描画処理に要する時間が短縮されると共に、第１コアが動作しない無駄な時間を解消することができる。
従って、本実施の形態１では、第１コアが処理を行わない無駄な時間を削減でき、従来よりもプリントデータが生成される一連の処理効率を向上できる。
【００７０】
〔実施の形態２〕
以下、図を参照して本発明の実施の形態２を詳細に説明する。
まず、構成を説明する。
本実施の形態２における画像形成装置の主要構成及び画像形成装置１の制御ブロック図は、実施の形態１における画像形成装置１が備える画像処理装置４０Ａに替えて画像処理装置４０Ｂを備え、解析イベントテーブル５５及び描画イベントテーブル５６に替えて解析イベントテーブル５７及び描画イベントテーブル５８を備えることを除いて、図１に示す画像形成装置の主要構成及び図２に示す画像形成装置１の制御ブロック図と同様であるため、図示及び説明は省略する。
【００７１】
次に、本実施の形態２における画像処理装置４０Ｂの機能について説明する。
図１０に、画像処理装置４０Ｂの機能構成図を示す。
図１０に示すように、画像処理装置４０Ｂは、第１解析部６５ａ、第２解析部６５ｂ、第２描画部６６ｂ、印刷制御部６３、印刷部６４として機能する。
なお、実施の形態１と同様の部には同一符号を付し、説明は省略する。
また、太実線矢印は、データの流れを示すものであり、太破線矢印は、第２描画部６６ｂが一時的に停止する場合に追加されるデータの流れを示すものである。
【００７２】
画像処理装置４０Ｂの各機能は、制御部４１を構成する各コアが、割り当てられた処理に対応するプログラムをＲＯＭ４３から読み込んで実行することにより実現される。
【００７３】
第１コア４１ａには、解析処理が予め割り当てられている。第１コア４１ａは、解析処理プログラム５１を読み込んで実行することより第１解析部６５ａとして機能する。
【００７４】
第２コア４１ｂには、解析処理及び描画処理が予め実行可能に割り当てられている。第２コア４１ｂは、解析処理プログラム５１を読み込んで実行することにより第２解析部６５ｂ、描画処理プログラム５２を読み込んで実行することより第２描画部６６ｂとして機能する。第２コア４１ｂに割り当てられた解析処理と描画処理とは、描画処理が解析処理よりも処理実行の優先順位が高く設定されている。
【００７５】
以下、各部の機能について説明する。
第１解析部６５ａは、外部装置８０から入力されたデータに基づき、当該データ解釈して当該データの形式とビットマップ形式のデータ（以下、ビットマップデータと称す。）との間の中間言語形式のデータ（以下、中間データと称す。）をバンド単位で生成し、生成した中間データをＲＡＭ４２のデータ展開領域の解析用展開領域に格納する。
外部装置８０から入力されるデータ及び中間データは、実施の形態１と同様であるため、説明は省略する。
【００７６】
第２解析部６５ｂは、第２描画部６６ｂからの要求に応じて、解析イベントテーブル５７を参照しながら、外部装置８０から入力されたデータに基づき、当該データ解釈して中間データをバンド単位で生成し、生成した中間データをＲＡＭ４２のデータ展開領域の解析用展開領域に格納する。
【００７７】
図１１に、実施の形態２における解析イベントテーブル５７の例を示す。
解析イベントテーブル５７は、解析処理を実行する解析処理プログラムに対して設けられている。解析イベントテーブル５７には、解析処理の実行中に発生し得る事象（イベント）と、当該イベントに対して実行する処理の指示情報（アクション）と、アクションが実行された後に発生する事象（次イベント）とが対応つけられたレコードが、イベント毎に設定されている。
【００７８】
第２描画部６６ｂは、描画イベントテーブル５８を参照しながら、第１解析部６５ａ又は第２解析部６５ｂにより生成され解析用展開領域に格納されている中間データからビットマップデータを生成し、当該ビットマップデータをＲＡＭ４２のデータ展開領域の描画用展開領域に格納する。
【００７９】
図１２に、実施の形態２における描画イベントテーブル５８の例を示す。
描画イベントテーブル５８は、描画処理を実行する描画処理プログラムに対して設けられている。描画イベントテーブル５８には、描画処理の実行中に発生し得る事象（イベント）と、当該イベントに対して実行する処理の指示情報（アクション）と、アクションが実行された後に発生する事象（次イベント）とが対応つけられたレコードが、イベント毎に設定されている。本実施の形態２の描画イベントテーブルには、描画処理が一時的に停止するイベントと、描画処理よりも優先順位が低く描画処理とは異なる処理である解析処理の実行を要求するアクションとが対応つけられたレコードが事象情報として含まれている。
【００８０】
描画処理が一時的に停止するイベントとしては、「空き領域待ち」等である。
「空き領域待ち」のイベントとは、例えば、用紙無しやトナー無し等により印刷制御部や印刷部での処理が一時的に停止し、ＲＡＭ４２内のデータ展開領域のうちビットマップデータを格納する領域（描画用展開領域）において、格納されているビットマップデータが解放されないことにより、描画用展開領域内でビットマップデータを格納する領域が無い状態が発生したことにより生ずるイベントであり、描画処理を実行するための描画用展開領域内に空き領域が無い状態が発生したことを示す。
この「空き領域待ち」が含まれるレコードのアクションは、解析処理の要求の通知を出力する「解析要求通知」であり、次イベントは、印刷制御部から出力される描画用展開領域に格納されているビットマップデータを解放したこと示す解放通知を待機する「描画用メモリ解放通知待ち」である。
【００８１】
次に、本実施の形態２の動作を説明する。
図１３に、本実施の形態２における第１コア４１ａで実行される動作のフローチャートを示す。
【００８２】
外部装置８０から通信装置４５を介して１又は複数ページのページ記述言語データを含むプリントジョブが受信されると（ステップＳ４１）、第１コア４１ａは、第１解析部６５ａを機能させ、１ページ分のページ記述言語データに対する解析処理の実行を開始する（ステップＳ４２）。
【００８３】
第１コア４１ａは、１ページ分の解析処理が終了したか否かを判別する（ステップＳ４３）。１ページ分の解析処理が終了していない場合（ステップＳ４３；ＮＯ）、第１コア４１ａは、ステップＳ４３の処理に戻る。
【００８４】
１ページ分の解析処理が終了した場合（ステップＳ４３；ＹＥＳ）、第１コア４１ａは、第２コア４１ｂに対して描画要求通知を出力し（ステップＳ４４）、第１解析部６１ａによる解析処理の継続に戻り（ステップＳ４５）、全ページの解析処理が終了したか否かを判別する（ステップＳ４６）。ステップＳ４６の判別では、プリントジョブに含まれるジョブ終了コマンドの解析を行ったか否か等を判別することにより、全ページの解析処理が終了したか否かが判別される。
【００８５】
全ページの解析処理が終了していない場合（ステップＳ４６；ＮＯ）、第１コア４１ａは、ステップＳ４２の処理に戻る。全ページの解析処理が終了した場合（ステップＳ４６；ＹＥＳ）、第１コア４１ａは、本処理を終了する。
【００８６】
図１４に、本実施の形態２における第２コア４１ｂで実行される動作フローを示す。
描画要求通知を受信すると（ステップＳ５１）、第２コア４１ｂは、第２描画部６６ｂを機能させ、解析用展開領域内に中間データがあるか否かを判別する（ステップＳ５２）。
【００８７】
ＲＡＭ４２の解析用展開領域内に中間データがない場合（ステップＳ５２；ＮＯ）、第２コア４１ｂは、本処理を終了する。
【００８８】
ＲＡＭ４２の解析用展開領域内に中間データがある場合（ステップＳ５２；ＹＥＳ）、第２コア４１ｂは、解析用展開領域に格納されている中間データを読み出し、読み出した中間データに対して描画処理の実行を開始する（ステップＳ５３）。
【００８９】
第２描画部６６ｂを機能させている第２コア４１ｂは、第２描画部６６ｂにおける描画処理の実行中に「空き領域待ち」のイベントが発生したか否かを判別する（ステップＳ５４）。「空き領域待ち」のイベントが発生していない場合（ステップＳ５４；ＮＯ）、第２コア４１ｂは、ステップＳ５７の処理に進む。
【００９０】
「空き領域待ち」のイベントが発生した場合（ステップＳ５４；ＹＥＳ）、第２コア４１ｂは、描画イベントテーブル５８を参照して「空き領域待ち」のイベントに対応するレコードを選択し（ステップＳ５５）、選択したレコードのアクション（解析要求通知）を実行し、第２解析部６５ｂを機能させ、解析処理を実行する（ステップＳ５６）。
【００９１】
ステップＳ５４；ＮＯ後又はステップＳ５６後、第２コア４１ｂは、第２描画部６６ｂによる描画処理の継続に戻り（ステップＳ５７）、ステップＳ５４の処理に戻る。
【００９２】
図１５に、ステップＳ５６で実行される第２コア４１ｂにより機能する第２解析部６５ｂの動作のフローチャートを示す。
【００９３】
第２コア４１ｂは、第２描画部６６ｂから解析要求通知が出力された場合、第２解析部６５ｂを機能させ、解析処理中のページ記述言語データのうち未解析処理の部分のデータ（未解析データ）を外部装置８０から受信し（ステップＳ６１）、受信した未解析データに対する解析処理の実行を開始する（ステップＳ６２）。
【００９４】
第２コア４１ｂは、受信した未解析データの解析処理が終了したか否かを判別する（ステップＳ６３）。未解析データの解析処理が終了していない場合（ステップＳ６３；ＮＯ）、第２コア４１ｂは、ステップＳ６２の処理に戻る。未解析データの解析処理が終了した場合（ステップＳ６３；ＹＥＳ）、第２コア４１ｂは、本処理を終了する。
【００９５】
図１６（Ａ）に従来の動作例、図１６（Ｂ）に本実施の形態２の動作例を示す。
なお、図１６（Ａ）に示す従来の動作例では、予め。第１コアに解析処理、第２コアに描画処理、が割り当てられているもとする。
【００９６】
図１６（Ａ）に示すように、従来では、第２コアにより２ページ目の描画処理が実行されている途中で、用紙無しやトナー無し等のエラーが発生して印刷制御部及び印刷部での処理が中断されると、描画用展開領域に格納されているビットマップデータが解放されず、描画用展開領域の空き待ちのイベントが発生する。描画用メモリの空き待ちのイベントが発生してから描画用メモリの空きが発生するまでの期間は、第２コアは一時的に描画処理を停止して待機状態となっているのに対し、第１コアは単独で解析処理を行っている。
従って、従来では、第２コアが動作しない無駄な時間が発生し、プリントデータが生成される一連の処理効率が低下するという問題が発生する。
【００９７】
図１６（Ｂ）に示すように、本実施の形態２では、第２コアにより２ページ目の描画処理が実行されている途中で、描画用展開領域の空き待ちのイベントが発生した場合には、解析要求通知が出力される。第２コアは、解析要求通知が出力されると、第２解析部６５ｂを機能させ、描画用展開領域の空き待ちのイベントが解消するまで、現在解析処理中のページ（３ページ目）の解析処理を実行する。第２コアは、描画用メモリ解放通知が印刷制御部から出力され、描画用展開領域の空き待ちのイベントが解消すると、第２描画部での描画処理を再開する。そのため、３ページ目の解析処理が第１コアと第２コアとにより実行されるため、３ページ目の解析処理に要する時間が短縮されると共に、第２コアが動作しない無駄な時間を解消することができる。
【００９８】
以上のように、本実施の形態１、２によれば、第１コア又は第２コアは、実行中の処理が一時的に停止する事象（イベント）が発生した場合、他の処理を実行することができるため、処理が一時的に停止するイベントが解消するまで待機する処理待機時間を削減でき、処理効率の向上を図ることができる。
【００９９】
また、解析処理又は描画処理のうち優先順位が高い方の処理の実行中に、当該実行中の処理が一時的に停止するイベントが発生した場合、他方の処理を実行することができ、最優先順位の処理が一時的に停止するイベントが解消するまで待機する処理待機時間を削減できる。
【０１００】
また、実行中の処理において一時的に停止するイベントが発生した場合、実行中の処理に対応するイベントテーブル（解析イベントテーブル又は描画イベントテーブル）を参照して、当該イベントに対するアクションを実行することにより、他の処理を実行することができる。
【０１０１】
更に、実行中の処理に使用されるＲＡＭ４２のデータ展開領域内の領域（解析用展開領域又は描画用展開領域）に空き領域が無い場合、他方の処理を実行することができるため、空き領域待ちによる第１コア又は第２コアが待機する処理待機時間を削減できる。
【０１０２】
更に、実行中の処理の処理対象となるデータがない場合、他の処理を実行することができるため、データ待ちにより待機する処理待機時間を削減できる。
【０１０３】
以上の説明では、本発明に係るプログラムのコンピュータ読み取り可能な媒体として
ＲＯＭ４３を使用した例を開示したが、この例に限定されない。
その他のコンピュータ読み取り可能な媒体として、フラッシュメモリ等の不揮発性メモリ、ＣＤ-ＲＯＭ等の可搬型記録媒体を適用することが可能である。
また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も本発明に適用される。
【０１０４】
また、本発明は、上記実施の形態１及び２の内容に限定されるものではなく、実施例１及び実施例２を組み合わせた内容であってもよく、本発明の主旨を逸脱しない範囲で適宜変更可能である。
【符号の説明】
【０１０５】
１  画像形成装置
１０  エンジン
１１  用紙カセット
１２  給紙ローラ
１３  搬送ローラ
１４  搬送ベルト
１５Ｙ、１５Ｍ、１５Ｃ、１５Ｋ  静電ドラム
１６Ｙ、１６Ｍ、１６Ｃ、１６Ｋ  プリントユニット
１７Ｙ、１７Ｍ、１７Ｃ、１７Ｋ  レーザユニット
１８Ｙ、１８Ｍ、１８Ｃ、１８Ｋ  転写ローラ
１９  定着器
２０  排紙ローラ
４０Ａ、４０Ｂ  画像処理装置
４１  制御部
４１ａ  第１コア
４１ｂ  第２コア
４２  ＲＡＭ
４２ａ  データ展開領域
４３  ＲＯＭ
４４  ＨＤＤ
４５  通信装置
４６  バス
５１  解析処理プログラム
５２  描画処理プログラム
５３  印刷制御プログラム
５４  印刷プログラム
５５、５７  解析イベントテーブル
５６、５８  描画イベントテーブル
６１ａ、６５ａ  第１解析部
６５ｂ  第２解析部
６２ａ  第１描画部
６２ｂ、６６ｂ  第２描画部
６３  印刷制御部
６４  印刷部
８０  外部装置
【図１】
0005392153.tif 000002
【図２】
0005392153.tif 000003
【図３】
0005392153.tif 000004
【図４】
0005392153.tif 000005
【図５】
0005392153.tif 000006
【図６】
0005392153.tif 000007
【図７】
0005392153.tif 000008
【図８】
0005392153.tif 000009
【図９】
0005392153.tif 000010
【図１０】
0005392153.tif 000011
【図１１】
0005392153.tif 000012
【図１２】
0005392153.tif 000013
【図１３】
0005392153.tif 000014
【図１４】
0005392153.tif 000015
【図１５】
0005392153.tif 000016
【図１６】
0005392153.tif 000017