(57)【要約】【課題】複数の演算手段を有する画像形成装置において、画像形成出力を実行するための画像処理の処理効率を向上すること。【解決手段】ディスプレイリストが記憶されることに応じて、描画処理部２２４が、バンドメモリ２０２の割り当てを受けてレンダリングを開始し、バンドメモリ２０２が、描画処理部２２４によってレンダリングされた描画情報をページメモリ２０３に入力し、記憶されていた全てのディスプレイリストについてレンダリングが完了した描画処理部２２４が、バンドメモリ２０２の割り当てを解除可能であることを通知し、バンドメモリ２０２の割り当てを要求している他の描画処理部２２４にバンドメモリ２０２を割り当てることを特徴とする。【選択図】図５
2011083918.tif 000002
【特許請求の範囲】
【請求項１】
画像形成出力を実行するためのレンダリングを複数の処理手段によって実行可能な画像形成装置であって、
描画すべき図形毎に情報がまとめられたディスプレイリストを前記画像形成出力の実行命令である印刷ジョブに基づいて生成するパーサと、
前記生成されたディスプレイリストに基づいてレンダリングを実行する複数のレンダラと、
前記複数のレンダラの夫々に対応して設けられ、前記生成されたディスプレイリストを中間データとして記憶する複数の中間データ記憶部と、
前記レンダリングによって生成された描画情報を画像形成出力のページ毎に記憶するページメモリに入力するために保持するメモリバッファと、
前記メモリバッファを前記複数のレンダラのいずれかに割り当てるメモリバッファ管理部とを含み、
前記メモリバッファは、前記複数のレンダラのいずれかに割り当てられることにより、割り当てられた対象のレンダラによって生成された描画情報を保持して前記ページメモリに入力し、
前記レンダラは、前記中間データ記憶部に前記ディスプレイリストが記憶されることに応じて前記メモリバッファ管理部に前記メモリバッファの割り当てを要求し、前記メモリバッファが割り当てられている場合に前記レンダリングを実行し、前記中間データ記憶部に記憶されていた全てのディスプレイリストに基づくレンダリングが完了した場合、前記メモリバッファの割り当てを解除可能であることを前記メモリバッファ管理部に通知し、
前記メモリバッファ管理部は、前記メモリバッファの割り当てを解除可能であることを通知したレンダラに割り当てられている前記メモリバッファを、前記メモリバッファの割り当てを要求している他のレンダラに割り当てることを特徴とする画像形成装置。
【請求項２】
前記複数のレンダラは、画像形成出力のページの領域を複数に分割した夫々の分割領域のいずれかに関連付けられており、関連付けられた分割領域に表示される図形の前記ディスプレイリストに基づいてレンダリングを実行し、
前記メモリバッファ管理部は、夫々の前記分割領域の優先度に従って、前記メモリバッファの割り当てを要求している他のレンダラに前記メモリバッファを割り当てることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記レンダラに対する前記メモリバッファの割り当てを管理する割り当て管理情報を管理する割り当て管理情報管理部を更に有し、
前記割り当て管理情報は、前記メモリバッファが割り当てられているレンダラを示す割り当て情報、前記メモリバッファの割り当てを要求しているレンダラを示す待機情報、前記メモリバッファの割り当てを解除可能であるレンダラを示す解除可能情報及び前記メモリバッファの割り当てが解除されたレンダラを示す解除情報を含むことを特徴とする請求項１に記載の画像形成装置。
【請求項４】
前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求して前記メモリバッファの割り当てを受けるレンダラを示す情報を、前記割り当て情報として前記割り当て管理情報に登録することを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求して前記メモリバッファの割り当てを受けるために待機するレンダラを示す情報を、前記待機情報として前記割り当て管理情報に登録することを特徴とする請求項３または４に記載の画像形成装置。
【請求項６】
前記複数のレンダラは、画像形成出力のページの領域を複数に分割した夫々の分割領域のいずれかに関連付けられており、関連付けられた前記分割領域に表示される図形の前記ディスプレイリストに基づいてレンダリングを実行し、
前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求して前記メモリバッファの割り当てを受けるために待機するレンダラが複数ある場合、夫々の前記レンダラが対応している分割領域の優先度に従って、前記待機情報に登録される夫々のレンダラを示す情報を並び替え、
前記メモリバッファ管理部は、前記待機情報に登録されている前記レンダラを示す情報の並び順に従って前記メモリバッファの割り当てを要求している他のレンダラに前記メモリバッファを割り当てることを特徴とする請求項５に記載の画像形成装置。
【請求項７】
前記割り当て管理情報管理部は、前記メモリバッファの割り当てを解除可能であることを通知したレンダラを示す情報を、前記解除可能情報として前記割り当て管理情報に登録することを特徴とする請求項３乃至６いずれかに記載の画像形成装置。
【請求項８】
前記割り当て管理情報管理部は、前記他のレンダラに割り当てられることにより前記メモリバッファの割り当てが解除されたレンダラを示す情報を、前記解除情報として前記割り当て管理情報に登録することを特徴とする請求項３乃至７いずれかに記載の画像形成装置。
【請求項９】
前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求したレンダラを示す情報が前記解除可能情報として前記割り当て管理情報に登録されている場合、前記レンダラを示す情報を前記割り当て情報として前記割り当て管理情報に登録することを特徴とする請求項３乃至８いずれかに記載の画像形成装置。
【請求項１０】
前記メモリバッファは、前記他のレンダラに割り当てが変更された場合、変更前の前記レンダラによって生成されて保持している描画情報を圧縮し、新たに割り当てられたレンダラによって生成される描画情報を保持することを特徴とする請求項１乃至９いずれかに記載の画像形成装置。
【請求項１１】
画像形成出力を実行するためのレンダリングを複数の処理手段によって実行可能な画像形成装置の制御方法であって、
前記画像形成装置は、
描画すべき図形毎に情報がまとめられたディスプレイリストを前記画像形成出力の実行命令である印刷ジョブに基づいて生成するパーサと、
前記生成されたディスプレイリストに基づいてレンダリングを実行する複数のレンダラと、
前記複数のレンダラの夫々に対応して設けられ、前記生成されたディスプレイリストを記憶する複数の中間データ記憶部と、
前記レンダリングによって生成された描画情報を画像形成出力のページ毎に記憶するページメモリに入力するために保持するメモリバッファと、
前記メモリバッファを前記複数の描画情報生成部のいずれかに割り当てるメモリバッファ管理部とを含み、
前記レンダラが、前記中間データ記憶部に前記ディスプレイリストが記憶されることに応じて前記メモリバッファ管理部に前記メモリバッファの割り当てを要求し、前記メモリバッファが割り当てられている場合にレンダリングを実行し、前記中間データ記憶部に記憶されていた全てのディスプレイリストに基づいてレンダリングが完了した場合、前記メモリバッファの割り当てを解除可能であることを前記メモリバッファ管理部に通知し、
前記メモリバッファが、前記複数のレンダラのいずれかに割り当てられることにより、割り当てられた対象の前記レンダラによって生成された描画情報を保持して前記ページメモリに入力し、
前記メモリバッファ管理部が、前記メモリバッファの割り当てを解除可能であることを通知したレンダラに割り当てられている前記メモリバッファを、前記メモリバッファの割り当てを要求している他のレンダラに割り当てることを特徴とする画像形成装置の制御方法。
【請求項１２】
画像形成出力を実行するためのレンダリングを複数の処理手段によって実行可能な画像形成装置の制御プログラムであって、
前記画像形成装置は、
描画すべき図形毎に情報がまとめられたディスプレイリストを前記画像形成出力の実行命令である印刷ジョブに基づいて生成するパーサと、
前記生成されたディスプレイリストに基づいてレンダリングを実行する複数のレンダラと、
前記複数のレンダラの夫々に対応して設けられ、前記生成されたディスプレイリストを記憶する複数の中間データ記憶部と、
前記生成された描画情報を画像形成出力のページ毎に記憶するページメモリに入力するために保持するメモリバッファと、
前記メモリバッファを前記複数のレンダラのいずれかに割り当てるメモリバッファ管理部とを含み、
前記中間データ記憶部に前記ディスプレイリストが記憶されることに応じて、その中間データ記憶部に対応する前記レンダラに前記メモリバッファを割り当てることを要求するステップと、
前記メモリバッファが割り当てられた前記レンダラに前記レンダリングを実行させるステップと、
前記レンダラが対応する前記中間データ記憶部に記憶されていた全てのディスプレイリストに基づく前記レンダリングが完了した場合、前記レンダラと前記メモリバッファとの割り当てを解除可能であることを通知するステップと、
前記複数のレンダラのいずれかに割り当てられている前記メモリバッファに、割り当てられた対象の前記レンダラによって生成された描画情報を保持して前記ページメモリに入力させるステップと、
前記メモリバッファとの割り当てを解除可能であることを通知したレンダラに割り当てられている前記メモリバッファを、前記メモリバッファの割り当てを要求している他のレンダラに割り当てるステップとを前記画像形成装置に実行させることを特徴とする画像形成装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像形成装置の制御方法及び制御プログラムに関し、特に、複数の演算手段によって画像処理を実行することが可能な画像形成装置に関する。
【背景技術】
【０００２】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリ及び書類の電子化に用いるスキャナ等の画像処理装置は欠かせない機器となっている。このような画像処理装置は、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な複合機として構成されることが多い。
【０００３】
このような画像処理装置のうち、電子化された情報の出力に用いるプリンタにおいては、入力された画像情報に基づいてプリントエンジンが画像形成出力を実行するための描画情報を生成する画像処理が行われる。この画像処理は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の演算手段がソフトウェアに従って動作することにより実行される。
【０００４】
近年の情報処理機器の発展により複数の演算手段が含まれるマルチコアＣＰＵ等の演算機器が普及している。マルチコアＣＰＵにおいては、複数のコアが夫々独立して動作するため、処理を並列化することにより、処理時間を短縮することが可能になる。従って、上記の画像処理もマルチコアＣＰＵに対応させることにより、処理を効率化することが望まれている。マルチコアＣＰＵの性能を効率的に発揮させるためには、処理を夫々のコアに適切に配分することにより、片方のコアの動作中において片方のコアに待機、即ち、待ちが発生しないようにする必要がある。
【０００５】
画像処理を複数のレンダラで実行可能な画像形成装置において、各カラープレーンにおける各バンドのレンダリング開始タイミングをスケジューリングすることにより、高速なバンディング処理、即ち、描画情報の生成及び出力を実現する方法が提案されている（例えば、特許文献１参照）。特許文献１に開示された技術においては、各カラープレーンの各バンドのレンダリングに要する時間及びビデオ信号の出力開始タイミングに基づいてレンダリング開始タイミングを算出し、そのタイミングが早いバンドから順にレンダラを割り当てることにより、高速なバンディング処理を実現する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
印刷ジョブとして画像形成装置に入力される情報は、一般的にＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）と呼ばれる形式の情報である。これに対して、特許文献１に開示されているように、各バンドのレンダリングに要する時間及びビデオ信号の出力開始タイミングに基づいて各バンドのレンダリング開始タイミングを算出するためには、ＰＤＬ形式の情報を各レンダラが処理可能な形式である中間データに変換するパーシング処理が必要である。従って、特許文献１に係る技術を採用する場合、１ページ毎にパーシング処理が完了するまで、レンダリングを開始することができない。
【０００７】
上記中間データは、一般的にディスプレイリストと呼ばれており、ページに含まれる図形等の要素毎に生成される。従って、レンダリング処理を効率的に実行するためには、パーシング処理とレンダリング処理とがＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ，  Ｆｉｒｓｔ  Ｏｕｔ）で結合され、１コマンド、即ち、１つのディスプレイリスト毎にパーシング処理及びレンダリング処理が実行されることが好ましい。
【０００８】
ここで、一般的な画像形成装置における画像処理の構成として、レンダラによって生成された描画情報は、メモリバッファを介してページメモリに入力される構成が採用されている。複数のレンダラが並行して動作する構成においては、レンダラの数と同数のメモリバッファが設けられている場合と、レンダラの数よりも少ない数のメモリバッファが設けられている場合とがある。後者の場合、夫々のレンダラは完全に並列で動作することはできず、メモリバッファが割り当てられているレンダラのみが動作可能な状態、即ちディスプレイリストに基づいて描画情報を生成し、出力可能な状態となる。
【０００９】
更に、従来のレンダラ及びメモリバッファの割り当て機能においては、何れか一つのレンダラにメモリバッファが割り当てられて、そのレンダラが描画情報の生成を開始すると、１ページの終わりを示すディスプレイリストがそのレンダラに入力されるまで、メモリバッファの割り当てが解除されない。従って、メモリバッファが割り当てられているレンダラが描画すべきディスプレイリストが生成されず、他のレンダラが描画すべきディスプレイリストが生成されている期間は、メモリバッファが割り当てられているにも関わらずそのレンダラが動作していない遊休期間となってしまい、非効率な処理となってしまう。
【００１０】
本発明は、上記実情を考慮してなされたものであり、複数の演算手段を有する画像形成装置において、画像形成出力を実行するための画像処理の処理効率を向上することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の一態様は、画像形成出力を実行するためのレンダリングを複数の処理手段によって実行可能な画像形成装置であって、描画すべき図形毎に情報がまとめられたディスプレイリストを前記画像形成出力の実行命令である印刷ジョブに基づいて生成するパーサと、前記生成されたディスプレイリストに基づいてレンダリングを実行する複数のレンダラと、前記複数のレンダラの夫々に対応して設けられ、前記生成されたディスプレイリストを中間データとして記憶する複数の中間データ記憶部と、前記レンダリングによって生成された描画情報を画像形成出力のページ毎に記憶するページメモリに入力するために保持するメモリバッファと、前記メモリバッファを前記複数のレンダラのいずれかに割り当てるメモリバッファ管理部とを含み、前記メモリバッファは、前記複数のレンダラのいずれかに割り当てられることにより、割り当てられた対象のレンダラによって生成された描画情報を保持して前記ページメモリに入力し、前記レンダラは、前記中間データ記憶部に前記ディスプレイリストが記憶されることに応じて前記メモリバッファ管理部に前記メモリバッファの割り当てを要求し、前記メモリバッファが割り当てられている場合に前記レンダリングを実行し、前記中間データ記憶部に記憶されていた全てのディスプレイリストに基づくレンダリングが完了した場合、前記メモリバッファの割り当てを解除可能であることを前記メモリバッファ管理部に通知し、前記メモリバッファ管理部は、前記メモリバッファの割り当てを解除可能であることを通知したレンダラに割り当てられている前記メモリバッファを、前記メモリバッファの割り当てを要求している他のレンダラに割り当てることを特徴とする。
【００１２】
ここで、前記複数のレンダラは、画像形成出力のページの領域を複数に分割した夫々の分割領域のいずれかに関連付けられており、関連付けられた分割領域に表示される図形の前記ディスプレイリストに基づいてレンダリングを実行し、前記メモリバッファ管理部は、夫々の前記分割領域の優先度に従って、前記メモリバッファの割り当てを要求している他のレンダラに前記メモリバッファを割り当てることが好ましい。
【００１３】
また、前記レンダラに対する前記メモリバッファの割り当てを管理する割り当て管理情報を管理する割り当て管理情報管理部を更に有し、前記割り当て管理情報は、前記メモリバッファが割り当てられているレンダラを示す割り当て情報、前記メモリバッファの割り当てを要求しているレンダラを示す待機情報、前記メモリバッファの割り当てを解除可能であるレンダラを示す解除可能情報及び前記メモリバッファの割り当てが解除されたレンダラを示す解除情報を含むことが好ましい。
【００１４】
また、前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求して前記メモリバッファの割り当てを受けるレンダラを示す情報を、前記割り当て情報として前記割り当て管理情報に登録することが好ましい。
【００１５】
また、前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求して前記メモリバッファの割り当てを受けるために待機するレンダラを示す情報を、前記待機情報として前記割り当て管理情報に登録することが好ましい。
【００１６】
また、前記複数のレンダラは、画像形成出力のページの領域を複数に分割した夫々の分割領域のいずれかに関連付けられており、関連付けられた前記分割領域に表示される図形の前記ディスプレイリストに基づいてレンダリングを実行し、前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求して前記メモリバッファの割り当てを受けるために待機するレンダラが複数ある場合、夫々の前記レンダラが対応している分割領域の優先度に従って、前記待機情報に登録される夫々のレンダラを示す情報を並び替え、前記メモリバッファ管理部は、前記待機情報に登録されている前記レンダラを示す情報の並び順に従って前記メモリバッファの割り当てを要求している他のレンダラに前記メモリバッファを割り当てることが好ましい。
【００１７】
また、前記割り当て管理情報管理部は、前記メモリバッファの割り当てを解除可能であることを通知したレンダラを示す情報を、前記解除可能情報として前記割り当て管理情報に登録することが好ましい。
【００１８】
また、前記割り当て管理情報管理部は、前記他のレンダラに割り当てられることにより前記メモリバッファの割り当てが解除されたレンダラを示す情報を、前記解除情報として前記割り当て管理情報に登録することが好ましい。
【００１９】
また、前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求したレンダラを示す情報が前記解除可能情報として前記割り当て管理情報に登録されている場合、前記レンダラを示す情報を前記割り当て情報として前記割り当て管理情報に登録することが好ましい。
【００２０】
また、前記メモリバッファは、前記他のレンダラに割り当てが変更された場合、変更前の前記レンダラによって生成されて保持している描画情報を圧縮し、新たに割り当てられたレンダラによって生成される描画情報を保持することが好ましい。
【００２１】
また、本発明の他の態様は、画像形成出力を実行するためのレンダリングを複数の処理手段によって実行可能な画像形成装置の制御方法であって、前記画像形成装置は、描画すべき図形毎に情報がまとめられたディスプレイリストを前記画像形成出力の実行命令である印刷ジョブに基づいて生成するパーサと、前記生成されたディスプレイリストに基づいてレンダリングを実行する複数のレンダラと、前記複数のレンダラの夫々に対応して設けられ、前記生成されたディスプレイリストを記憶する複数の中間データ記憶部と、前記レンダリングによって生成された描画情報を画像形成出力のページ毎に記憶するページメモリに入力するために保持するメモリバッファと、前記メモリバッファを前記複数の描画情報生成部のいずれかに割り当てるメモリバッファ管理部とを含み、前記レンダラが、前記中間データ記憶部に前記ディスプレイリストが記憶されることに応じて前記メモリバッファ管理部に前記メモリバッファの割り当てを要求し、前記メモリバッファが割り当てられている場合にレンダリングを実行し、前記中間データ記憶部に記憶されていた全てのディスプレイリストに基づいてレンダリングが完了した場合、前記メモリバッファの割り当てを解除可能であることを前記メモリバッファ管理部に通知し、前記メモリバッファが、前記複数のレンダラのいずれかに割り当てられることにより、割り当てられた対象の前記レンダラによって生成された描画情報を保持して前記ページメモリに入力し、前記メモリバッファ管理部が、前記メモリバッファの割り当てを解除可能であることを通知したレンダラに割り当てられている前記メモリバッファを、前記メモリバッファの割り当てを要求している他のレンダラに割り当てることを特徴とする。
【００２２】
また、本発明の更に他の態様は、画像形成出力を実行するためのレンダリングを複数の処理手段によって実行可能な画像形成装置の制御プログラムであって、前記画像形成装置は、描画すべき図形毎に情報がまとめられたディスプレイリストを前記画像形成出力の実行命令である印刷ジョブに基づいて生成するパーサと、前記生成されたディスプレイリストに基づいてレンダリングを実行する複数のレンダラと、前記複数のレンダラの夫々に対応して設けられ、前記生成されたディスプレイリストを記憶する複数の中間データ記憶部と、前記生成された描画情報を画像形成出力のページ毎に記憶するページメモリに入力するために保持するメモリバッファと、前記メモリバッファを前記複数のレンダラのいずれかに割り当てるメモリバッファ管理部とを含み、前記中間データ記憶部に前記ディスプレイリストが記憶されることに応じて、その中間データ記憶部に対応する前記レンダラに前記メモリバッファを割り当てることを要求するステップと、前記メモリバッファが割り当てられた前記レンダラに前記レンダリングを実行させるステップと、前記レンダラが対応する前記中間データ記憶部に記憶されていた全てのディスプレイリストに基づく前記レンダリングが完了した場合、前記レンダラと前記メモリバッファとの割り当てを解除可能であることを通知するステップと、前記複数のレンダラのいずれかに割り当てられている前記メモリバッファに、割り当てられた対象の前記レンダラによって生成された描画情報を保持して前記ページメモリに入力させるステップと、前記メモリバッファとの割り当てを解除可能であることを通知したレンダラに割り当てられている前記メモリバッファを、前記メモリバッファの割り当てを要求している他のレンダラに割り当てるステップとを前記画像形成装置に実行させることを特徴とする。
【発明の効果】
【００２３】
本発明によれば、複数の演算手段を有する画像形成装置において、画像形成出力を実行するための画像処理の処理効率を向上することが可能となる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態に係る画像形成装置のハードウェア構成を示すブロック図である。
【図２】本発明の実施形態に係る画像形成装置の機能構成を示す図である。
【図３】本発明の実施形態に係る画像処理部に含まれる機能を示す図である。
【図４】本発明の実施形態に係るページに含まれる各バンドの優先度を示す図である。
【図５】本発明の実施形態に係る描画コアモジュールの機能構成を示す図である。
【図６】本発明の比較例に係るパーシングと描画処理とのタイミングを示す図である。
【図７】本発明の実施形態に係るバンドメモリ管理情報の例を示す図である。
【図８】本発明の実施形態に係る画像処理部の動作を示すフローチャートである。
【図９】本発明の実施形態に係るバンドメモリ割り当て動作を示すフローチャートである。
【図１０】本発明の実施形態に係るバンド解放動作を示すフローチャートである。
【図１１】本発明の実施形態及び比較例に係るパーシング及び描画処理のタイミングを示す図である。
【図１２】本発明の実施形態に係るバンドメモリ管理情報の状態を示す図である。
【発明を実施するための形態】
【００２５】
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、プリンタ、スキャナ、複写機等の機能を含む複合機（ＭＦＰ：Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）としての画像形成装置を例として説明する。
【００２６】
図１は、本実施形態に係る画像形成装置１のハードウェア構成を示すブロック図である。図１に示すように、本実施形態に係る画像形成装置１は、一般的なサーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理端末と同様の構成に加えて、画像形成を実行するエンジンを有する。即ち、本実施形態に係る画像形成装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０、エンジン４０、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）５０及びＩ／Ｆ６０がバス９０を介して接続されている。また、Ｉ／Ｆ６０にはＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）７０及び操作部８０が接続されている。
【００２７】
ＣＰＵ１０は演算手段であり、画像形成装置１全体の動作を制御する。また、本実施形態に係るＣＰＵ１０は、マルチコアＣＰＵであり、互いに独立して動作可能な複数の演算手段、即ちコアを含む。ＲＡＭ２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０が情報を処理する際の作業領域として用いられる。ＲＯＭ３０は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。エンジン４０は、画像形成装置１において実際に画像形成を実行する機構である。
【００２８】
ＨＤＤ５０は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム等が格納されている。Ｉ／Ｆ６０は、バス９０と各種のハードウェアやネットワーク等を接続し制御する。ＬＣＤ７０は、ユーザが画像形成装置１の状態を確認するための視覚的ユーザインタフェースである。操作部８０は、キーボードやマウス等、ユーザが画像形成装置１に情報を入力するためのユーザインタフェースである。
【００２９】
このようなハードウェア構成において、ＲＯＭ３０やＨＤＤ５０若しくは図示しない光学ディスク等の記録媒体に格納されたプログラムがＲＡＭ２０に読み出され、ＣＰＵ１０の制御に従って動作することにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る画像形成装置１の機能を実現する機能ブロックが構成される。
【００３０】
次に、図２を参照して、本実施形態に係る画像形成装置１の機能構成について説明する。図２は、本実施形態に係る画像形成装置１の機能構成を示すブロック図である。図２に示すように、本実施形態に係る画像形成装置１は、コントローラ１００、ＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｎｔ  Ｆｅｅｄｅｒ：原稿自動搬送装置）１１０、スキャナユニット１２０、排紙トレイ１３０、ディスプレイパネル１４０、給紙テーブル１５０、プリントエンジン１６０、排紙トレイ１７０及びネットワークＩ／Ｆ１８０を有する。
【００３１】
また、コントローラ１００は、主制御部１０１、エンジン制御部１０２、入出力制御部１０３、画像処理部１０４及び操作表示制御部１０５を有する。図２に示すように、本実施形態に係る画像形成装置１は、スキャナユニット１２０、プリントエンジン１６０を有する複合機として構成されている。尚、図２においては、電気的接続を実線の矢印で示しており、用紙の流れを破線の矢印で示している。
【００３２】
ディスプレイパネル１４０は、画像形成装置１の状態を視覚的に表示する出力インタフェースであると共に、タッチパネルとしてユーザが画像形成装置１を直接操作し若しくは画像形成装置１に対して情報を入力する際の入力インタフェース（操作部）でもある。ネットワークＩ／Ｆ１８０は、画像形成装置１がネットワークを介して他の機器と通信するためのインタフェースであり、Ｅｔｈｅｒｎｅｔ（登録商標）やＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースが用いられる。
【００３３】
コントローラ１００は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ＲＯＭ３０や不揮発性メモリ並びにＨＤＤ５０や光学ディスク等の不揮発性記録媒体に格納されたファームウェア等の制御プログラムが、ＲＡＭ２０等の揮発性メモリ（以下、メモリ）にロードされ、ＣＰＵ１０の制御に従って構成されるソフトウェア制御部と集積回路などのハードウェアとによってコントローラ１００が構成される。コントローラ１００は、画像形成装置１全体を制御する制御部として機能する。
【００３４】
主制御部１０１は、コントローラ１００に含まれる各部を制御する役割を担い、コントローラ１００の各部に命令を与える。エンジン制御部１０２は、プリントエンジン１６０やスキャナユニット１２０等を制御若しくは駆動する駆動手段としての役割を担う。入出力制御部１０３は、ネットワークＩ／Ｆ１８０を介して入力される信号や命令を主制御部１０１に入力する。また、主制御部１０１は、入出力制御部１０３を制御し、ネットワークＩ／Ｆ１８０を介して他の機器にアクセスする。
【００３５】
画像処理部１０４は、主制御部１０１の制御に従い、入力された印刷ジョブに含まれる印刷情報に基づいて描画情報を生成する。この描画情報とは、画像形成部であるプリントエンジン１６０が画像形成動作において形成すべき画像を描画するための情報である。また、印刷ジョブに含まれる印刷情報とは、ＰＣ等の情報処理装置にインストールされたプリンタドライバによって画像形成装置１が認識可能な形式に変換された情報であり、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）によって記述された情報である。換言すると、上記印刷情報とは、画像形成出力すべきページの情報が記述されたページ情報である。尚、本実施形態においては、ページ記述言語としてＰＤＬを用いる場合を例とするが、他の言語であっても良い。
【００３６】
操作表示制御部１０５は、ディスプレイパネル１４０に情報表示を行い若しくはディスプレイパネル１４０を介して入力された情報を主制御部１０１に通知する。画像形成装置１がプリンタとして動作する場合は、まず、入出力制御部１０３がネットワークＩ／Ｆ１８０を介して印刷ジョブを受信する。入出力制御部１０３は、受信した印刷ジョブを主制御部１０１に転送する。主制御部１０１は、印刷ジョブを受信すると、画像処理部１０４を制御して、印刷ジョブに含まれる印刷情報に基づいて描画情報を生成させる。
【００３７】
画像処理部１０４によって描画情報が生成されると、エンジン制御部１０２は、生成された描画情報に基づき、給紙テーブル１５０から搬送される用紙に対して画像形成を実行する。即ち、プリントエンジン１６０が画像形成部として機能する。プリントエンジン１６０の具体的態様としては、インクジェット方式による画像形成機構や電子写真方式による画像形成機構等を用いることが可能である。プリントエンジン１６０によって画像形成が施された文書は排紙トレイ１７０に排紙される。
【００３８】
画像形成装置１がスキャナとして動作する場合は、ユーザによるディスプレイパネル１４０の操作若しくはネットワークＩ／Ｆ１８０を介して外部のクライアント用の情報処理端末等から入力されるスキャン実行指示に応じて、操作表示制御部１０５若しくは入出力制御部１０３が主制御部１０１にスキャン実行信号を転送する。主制御部１０１は、受信したスキャン実行信号に基づき、エンジン制御部１０２を制御する。
【００３９】
エンジン制御部１０２は、ＡＤＦ１１０を駆動し、ＡＤＦ１１０にセットされた撮像対象原稿をスキャナユニット１２０に搬送する。また、エンジン制御部１０２は、スキャナユニット１２０を駆動し、ＡＤＦ１１０から搬送される原稿を撮像する。また、ＡＤＦ１１０に原稿がセットされておらず、スキャナユニット１２０に直接原稿がセットされた場合、スキャナユニット１２０は、エンジン制御部１０２の制御に従い、セットされた原稿を撮像する。即ち、スキャナユニット１２０が撮像部として動作する。
【００４０】
撮像動作においては、スキャナユニット１２０に含まれるＣＣＤ等の撮像素子が原稿を光学的に走査し、光学情報に基づいて生成された撮像情報が生成される。エンジン制御部１０２は、スキャナユニット１２０が生成した撮像情報を画像処理部１０４に転送する。画像処理部１０４は、主制御部１０１の制御に従い、エンジン制御部１０２から受信した撮像情報に基づき画像情報を生成する。画像処理部１０４が生成した画像情報はＨＤＤ４０等の画像形成装置１に装着された記憶媒体に保存される。即ち、スキャナユニット１２０、エンジン制御部１０２及び画像処理部１０４が連動して、原稿読み取り部として機能する。
【００４１】
画像処理部１０４によって生成された画像情報は、ユーザの指示に応じてそのままＨＤＤ４０等に格納され若しくは入出力制御部１０３及びネットワークＩ／Ｆ１８０を介して外部の装置に送信される。即ち、スキャナユニット１２０及びエンジン制御部１０２が画像入力部として機能する。
【００４２】
また、画像形成装置１が複写機として動作する場合は、エンジン制御部１０２がスキャナユニット１２０から受信した撮像情報若しくは画像処理部１０４が生成した画像情報に基づき、画像処理部１０４が描画情報を生成する。その描画情報に基づいてプリンタ動作の場合と同様に、エンジン制御部１０２がプリントエンジン１６０を駆動する。
【００４３】
このような画像形成装置１において、本実施形態に係る要旨は、画像処理部１０４における描画処理の効率化にある。以下、本実施形態に係る画像処理部１０４の機能及び動作について説明する。図３は、本実施形態に係る画像処理部１０４に含まれる機能を示すブロック図である。図３に示すように、本実施形態に係る画像処理部１０４は、ＰＤＬ解析部２１０及び描画コアモジュール２２０によって構成されるＰＤＬアプリケーション２００、バンドメモリ管理部２０１、バンドメモリ２０２及びページメモリ２０３を含む。
【００４４】
ＰＤＬ解析部２１０は、ＰＤＬで記述された印刷情報を取得し、描画コアモジュール２２０が処理可能な形式、即ち、ディスプレイリストに変換するパーシングを行うパーサである。ディスプレイリストとは、画像形成出力において出力すべき画像に含まれる図形の情報が、夫々の図形毎にまとめられた図形情報である。即ち、ＰＤＬ解析部２１０は、図形情報生成部として機能する。
【００４５】
描画コアモジュール２２０は、ＰＤＬ解析部２１０によって生成されたディスプレイリストに基づき、プリントエンジン１６０が画像形成出力を実行するための描画情報を生成する。図３に示す画像処理部１０４の機能のうち、描画コアモジュール２２０が、ＣＰＵ１０に含まれる複数のコアによって分散処理されることにより、描画コアモジュール２２０中に複数のレンダラが構成される。即ち、描画コアモジュール２２０の機能が本実施形態に係る要旨の１つとなる。
【００４６】
複数のコアによって夫々制御される複数のレンダラは、１ページの全領域が複数に分割された夫々の領域の何れかに関連付けられており、夫々の領域の画像を描画するための描画情報を生成する。分割された夫々の領域は“バンド”と呼ばれるものであり、本実施形態においては、図４に示すように、副走査方向に５段に分割された夫々の分割領域が各バンドとなる。
【００４７】
バンドメモリ２０２は、図４に示すような夫々のバンドについてレンダラが生成した描画情報を、ページメモリ２０３に入力する際のメモリバッファとして機能する。換言すると、バンドメモリ２０２は、描画情報をページメモリ２０３に入力するために保持する描画情報保持部として機能する。本実施形態において、バンドメモリ２０２は、複数のレンダラのいずれか１つに割り当てられる分の容量のみ確保されている。従って、バンドメモリ管理部２０１は、バンドメモリ２０２と各レンダラとの割り当て関係を管理し、レンダラの動作状況に応じて、レンダラとバンドメモリ２０２との割り当てを切り換えるメモリバッファ管理部として機能する。そして、バンドメモリ管理部２０１は、レンダラによって生成された描画情報をバンドメモリ２０２に転送する。即ち、バンドメモリ管理部２０１は、描画情報保持制御部として機能する。ページメモリ２０３は、各カラープレーンに対応して複数設けられており、プリントエンジン１６０が出力するページ毎の描画情報を、出力する色毎に記憶する。
【００４８】
尚、図４において各バンド＃０〜＃４の横に示す数字は、バンドメモリ２０２の割り当て優先度を示す値である。本実施形態においては、ページの中央において最も描画すべき画像が多く、両端において描画すべき画像が少ないという趣旨に基づき、中央のバンド＃２が最も高い優先度に設定され、両端のバンド＃０、＃４が最も低い優先度に設定されている。この優先度については、後に詳述する。
【００４９】
次に、図５を参照して、描画コアモジュール２２０の機能について説明する。図５は、描画コアモジュール２２０に含まれる機能を示すブロック図である。図５に示すように、本実施形態に係る描画コアモジュール２２０は、描画コアモジュールＩ／Ｆ２２１、ＤＬ（Ｄｉｓｐｌａｙ  Ｌｉｓｔ：ディスプレイリスト）処理部２２２、複数の中間データ記憶部２２３及び複数の描画処理部２２４を含む。複数の描画処理部２２４は、上述したレンダラに相当する構成、即ち描画情報を生成するレンダリングを行う描画処理部であり、夫々ＣＰＵ１０に含まれる異なるコアによって制御されることにより、並列して動作可能である。
【００５０】
描画コアモジュールＩ／Ｆ２２１は、ＰＤＬ解析部２１０によって生成されたディスプレイリストを取得する。ＤＬ処理部２２２は、描画コアモジュールＩ／Ｆ２２１が取得したディスプレイリストを、中間データとして中間データ記憶部２２３に記憶させる。また、ＤＬ処理部２２２は、描画コアモジュールＩ／Ｆ２２１に入力されたディスプレイリストを中間データ記憶部２２３に記憶させる処理において、１ページ分のディスプレイリストが完了する度にその旨を示す情報（以降、ページ終了情報とする）を中間データ記憶部２２３に記憶させる。このページ終了情報は、他のディスプレイリストと同様のフォーマットにおいて、１ページ分のディスプレイリストが終了したことを示す情報が含まれる情報である。
【００５１】
中間データ記憶部２２３は、ＣＰＵ１０に含まれる夫々のコアによって制御される複数の描画処理部２２４にデータを受け渡すための記憶媒体である。即ち、中間データ記憶部２２３は、図形情報であるディスプレイリストを記憶する図形情報記憶部として機能する。ＰＤＬ解析部２１０によって生成されたディスプレイリストは、中間データ記憶部２２３に記憶されることにより、レンダラである描画処理部２２４によって描画情報に変換される。
【００５２】
複数の描画処理部２２４は、中間データ記憶部２２３に記憶されたディスプレイリストに基づき、エンジン制御部１０２に描画データを入力するための描画情報を生成する。複数の描画処理部２２４は、バンドメモリ管理部２０１にバンドメモリ２０２の割り当てを要求し、バンドメモリ管理部２０１からバンドメモリ２０２が割り当てられた場合に、中間データ記憶部２２３からディスプレイリストを読み出して描画処理を行う。
【００５３】
また、描画処理部２２４は、バンドメモリ２０２の割り当てを受けて描画処理を実行するために中間データ記憶部２２３からディスプレイリストを読み出した結果、読み出した情報が上述したページ終了情報であった場合は、割り当てられているバンドメモリ２０２を解放する。これにより、バンドメモリ管理部２０１は、他の描画処理部２２４にバンドメモリ２０２を割り当てることが可能となる。本実施形態に係る要旨は、バンドメモリ管理部２０１がバンドメモリ２０２の割り当てを変更するタイミングが上記ページ終了情報だけでなく、各描画処理部２２４が１ページの描画情報を生成している途中においても、バンドメモリ２０２の割り当てが変更されることにある。
【００５４】
図５に示すように、中間データ記憶部２２３と描画処理部２２４とは１対１で対応している。上述したように、レンダラである各描画処理部２２４は、図４に示す各バンドのいずれかに対応している。従って、中間データ記憶部２２３も、図４に示す各バンドの何れかに対応している。そして、ＤＬ処理部２２２は、ディスプレイリストを中間データ記憶部２２３に記憶させる際、そのディスプレイリストがバンド＃０〜バンド＃４のいずれのバンドに対応するかを判断して、そのディスプレイリストを記憶させる中間データ記憶部２２３を決定する。
【００５５】
換言すると、ＤＬ処理部２２２は、描画コアモジュールＩ／Ｆ２２１が取得したディスプレイリストが、ページのどの領域に含まれる図形等の画像のディスプレイリストであるかに基づき、ディスプレイリストを記憶させる中間データ記憶部２２３を決定する。尚、複数のバンドにまたがる画像のディスプレイリストである場合、ＤＬ処理部２２２は、その画像がまたがっているバンドに対応している全ての中間データ記憶部２２３にディスプレイリストを記憶させる。
【００５６】
ここで、描画コアモジュール２２０が従来の一般的な動作を行う場合、即ち、バンドメモリ２０２の割り当てを変更するタイミングが、上記ページ終了情報だけである場合の、ディスプレイリストの生成、即ちパーシング開始と各描画処理部２２４による描画処理のタイミングについて説明する。図６は、従来の一般的な動作を行う場合における、パーシング開始と各描画処理部２２４による描画処理とのタイミングを示す図である。
【００５７】
図６の例においては、先ずバンド＃０に対応する中間データ記憶部２２３にディスプレイリストが入力され、これにより、バンド＃０に対応する描画処理部２２４が描画処理を開始している。その後タイミングｔ１において、バンド＃０に対応するディスプレイリストの描画処理は完了している。しかしながら、他のバンドに対応するディスプレイリストの生成が引き続き行われているため、上述したページ終了情報が入力されず、バンドメモリ２０２とバンド＃０に対応している描画処理部２２４との割り当てが解除されない。上述したように、本実施形態において、バンドメモリ２０２は複数の描画処理部２２４のいずれか１つに割り当てられる分の容量のみ確保されているため、タイミングｔ１以降の期間Ｔ１は、いずれの描画処理部２２４も描画処理を実行していない遊休期間となる。
【００５８】
本実施形態においては、上記遊休期間による非効率的な動作を解消するため、より動的に描画処理部２２４とバンドメモリ２０２との割り当て関係を制御する。以下、本実施形態に係る画像処理部１０４の動作について説明する。図７は、本実施形態において、各描画処理部２２４とバンドメモリ２０２との割り当て関係を管理するためのバンドメモリ管理情報を示す図である。本実施形態に係るバンドメモリ管理情報は、バンドメモリ管理部２０１に記憶されており、各描画処理部２２４は、バンドメモリ管理部にアクセスすることによって、図７に示すバンドメモリ管理情報を参照し、若しくはバンドメモリ管理部２０１に情報の書き換えを実行させる。即ち、本実施形態においては、バンドメモリ管理部２０１が、管理情報管理部としても機能する。
【００５９】
図７に示すように、本実施形態に係るバンドメモリ管理情報は、“ａｌｌｏｃａｔｅｄ”、“ｗａｉｔｅｒ”、“ｒｅｌｅａｓａｂｌｅ”、“ｒｅｌｅａｓｅｄ”の４つの変数を含む。“ａｌｌｏｃａｔｅｄ”は、バンドメモリが割り当てられているバンド、即ち、現在描画処理が実行されているバンドを示す変数である。換言すると、“ａｌｌｏｃａｔｅｄ”は、バンドメモリ２０２が割り当てられている描画処理部２２４を示す割り当て情報である。
【００６０】
“ｗａｉｔｅｒ”は、バンドメモリの割り当てを待っているバンド、即ち、中間データ記憶部２２３にディスプレイリストが記憶されて処理を待っているバンドを示す変数である。換言すると、“ｗａｉｔｅｒ”は、バンドメモリ２０２の割り当てを要求している描画処理部２２４を示す待機情報である。
【００６１】
“ｒｅｌｅａｓａｂｌｅ”は、バンドメモリが割り当てられているが、中間データ記憶部２２３に記憶されていたディスプレイリストについて、全て描画処理が完了しており、バンドメモリを開放することが可能なバンドを示す変数である。換言すると、“ｒｅｌｅａｓａｂｌｅ”は、バンドメモリ２０２の割り当てを解除可能である描画処理部２２４を示す解除可能情報である。
【００６２】
“ｒｅｌｅａｓｅｄ”は、バンドメモリを解放し、バンドメモリの割り当てを待ってもいないバンドを示す変数である。換言すると、“ｒｅｌｅａｓｅｄ”は、バンドメモリ２０２の割り当てが解除された描画処理部２２４を示す解除情報である。
【００６３】
次に、本実施形態に係る画像処理部１０４の動作について説明する。図８は、本実施形態における各描画処理部２２４の動作を示すフローチャートである。尚、描画処理部２２４は、対応する中間データ記憶部２２３にディスプレイリストが記憶されることにより、図８に示す動作を開始する。
【００６４】
図８に示すように、描画処理部２２４は、中間データ記憶部２２３にディスプレイリストが記憶されると（Ｓ８０１）、バンドメモリ２０２が割り当てられているか否か判断する（Ｓ８０２）。Ｓ８０２の判断は、中間データ記憶部２２３にディスプレイリストが記憶されているため、そのディスプレイリストについての描画処理のために実行される。Ｓ８０２の判断の結果、バンドメモリ２０２が割り当てられていなければ（Ｓ８０２／Ｎｏ）、描画処理部２２４は、バンドメモリ２０２の割り当て処理（Ｓ８０９）を実行する。Ｓ８０９の処理の詳細については、後述する。
【００６５】
Ｓ８０２の判断の結果、バンドメモリ２０２が割り当てられている場合（Ｓ８０２／Ｙｅｓ）、若しくはＳ８０９の処理が完了した場合、描画処理部２２４は、中間データ記憶部２２３からディスプレイリストを読み出す（Ｓ８０３）。Ｓ８０３によりディスプレイリストを読み出した結果、読み出したディスプレイリストが、上述したページ終了情報であった場合（Ｓ８０４）、描画処理部２２４は、割り当てられているバンドを解放するバンド解放処理を実行し（Ｓ８０５）、処理を終了する。Ｓ８０５のバンド解放処理については後に詳述する。
【００６６】
他方、読み出したディスプレイリストが、ページ終了情報ではなく、描画情報を生成すべき通常のディスプレイリストであった場合（Ｓ８０４／Ｎｏ）、描画処理部２２４は、描画処理を実行して（Ｓ８１０）バンドメモリ２０２を介してページメモリ２０３に描画情報を入力し、Ｓ８０１からの処理を繰り返す。
【００６７】
中間データ記憶部２２３にディスプレイリストが記憶されていない場合（Ｓ８０１／Ｎｏ）、描画処理部２２４は、バンドメモリが割り当てられているか否か判断する（Ｓ８０６）。Ｓ８０６の判断は、中間データ記憶部２２３にディスプレイリストが記憶されておらず、実行すべき描画処理が存在しないため、バンドメモリが割り当てられている場合はそのバンドメモリ２０２を開放する必要があるために実行される。換言すると、描画処理部２２４は、中間データ記憶部２２３に記憶されていたディスプレイリストの全てについて描画処理が完了した場合、バンドメモリ２０２の割り当てを解除可能であると判断する。
【００６８】
Ｓ８０６の判断の結果、バンドメモリ２０２が割り当てられている場合（Ｓ８０６／Ｙｅｓ）、即ち、図７に示す変数“ａｌｌｏｃａｔｅｄ”に、自己が対応するバンドの番号が登録されている場合、描画処理部２２４は、対象のバンドの番号を“ａｌｌｏｃａｔｅｄ”から“ｒｅｌｅａｓａｂｌｅ”に書き換える（Ｓ８０７）。Ｓ８０７の処理は、換言すると、描画処理部２２４が、バンドメモリ管理部２０１に対して、バンドメモリ２０２の割り当てを解除可能であることを通知する処理である。そして、更にバンドメモリ管理情報を参照し、“ｗａｉｔｅｒ”に登録されているバンドがあれば、そのバンドに対応する描画処理部２２４に対して、バンドを解放したことを通知し（Ｓ８０８）、Ｓ８０１からの処理を繰り返す。
【００６９】
他方、Ｓ８０６の判断の結果、バンドメモリが割り当てられていなければ（Ｓ８０６／Ｎｏ）、描画処理部２２４は、Ｓ８０１からの処理を繰り返す。これにより、描画処理部２２４は、ページ終了情報が入力されるまで、図８に示す処理を繰り返すこととなる。このように、本実施形態においては、中間データ記憶部２２３にディスプレイリストが記憶されることにより、動作を開始した描画処理部２２４が、中間データ記憶部２２３に処理すべきディスプレイリストが無くなった場合に、バンドメモリ２０２を開放することにより、バンドメモリ２０２の割り当てが最適化され、効率的な処理が実現される。
【００７０】
次に、Ｓ８０９のバンドメモリ割り当て処理について、図９を参照して説明する。図９は、本実施形態に係るバンドメモリ割り当て処理の動作を示すフローチャートである。図９に示すバンドメモリ割り当て処理は、各描画処理部２２４が、バンドメモリ管理部２０１に対してバンドメモリ２０２の割り当てを要求する処理である。バンドメモリ割り当て処理において、描画処理部２２４は、まずバンドメモリ管理部２０１にアクセスしてバンドメモリ管理情報を参照し、対象バンド、即ち、自己が対応しているバンドが“ｒｅｌｅａｓａｂｌｅ”に登録されているか否かを判断する（Ｓ９０１）。
【００７１】
Ｓ９０１の判断の結果、対象バンドが“ｒｅｌｅａｓａｂｌｅ”に登録されている場合（Ｓ９０１／Ｙｅｓ）、描画処理部２２４は、対象バンドを“ｒｅｌｅａｓａｂｌｅ”から“ａｌｌｏｃａｔｅｄ”に移動する（Ｓ９０２）。この場合、バンドメモリ２０２は既に自身に割り当てられているため、描画処理部２２４はそのまま処理を終了する。他方、対象バンドが“ｒｅｌｅａｓａｂｌｅ”に登録されていない場合（Ｓ９０１／Ｎｏ）、描画処理部２２４は、何れの描画処理部２２４にも割り当てられていない空きのバンドメモリ２０２が有るか否かを、バンドメモリ管理部２０１に問い合わせる（Ｓ９０３）。
【００７２】
Ｓ９０３の結果、空きのバンドメモリ２０２がある場合（Ｓ９０３／Ｙｅｓ）、描画処理部２２４は、バンドメモリ管理情報にアクセスして、対象バンドを“ａｌｌｏｃａｔｅｄ”に登録し（Ｓ９０４）、バンドメモリ管理部２０１からバンドメモリ２０２の割り当てを受けて（Ｓ９０５）、処理を終了する。他方、空きのバンドメモリ２０２がない場合（Ｓ９０３／Ｎｏ）、描画処理部２２４は、バンドメモリ管理情報にアクセスして、対象バンドを“ｗａｉｔｅｒ”に登録する（Ｓ９０６）。これにより、描画処理部２２４は、バンド割り当て待ち状態となる。
【００７３】
ここで、Ｓ９０６の処理において、複数のバンドが“ｗａｉｔｅｒ”に登録されることとなる場合、その順番は先着順ではなく、図４において説明したバンド毎の優先度順にソートされる。例えば、既にバンド＃１が“ｗａｉｔｅｒ”に登録されている場合において、新たにバンド＃２が“ｗａｉｔｅｒ”に登録される場合、バンド＃２が、次にバンドメモリ２０２の割り当てを受ける先頭のバンドとして“ｗａｉｔｅｒ”に登録される。このソートは、バンドメモリ管理情報に情報を登録する描画処理部２２４が実行しても良いし、バンドメモリ管理部２０１が実行しても良い。
【００７４】
Ｓ９０５の処理が終了すると、描画処理部２２４は、バンドメモリ管理情報にアクセスし、“ｒｅｌｅａｓａｂｌｅ”に登録されているバンドが有るか否か、即ち、バンドメモリ２０２を解放可能なバンドが有るか否か確認する（Ｓ９０７）。Ｓ９０６の判断の結果、“ｒｅｌｅａｓａｂｌｅ”に登録されているバンドが無ければ、描画処理部２２４は、他の描画処理部２２２４からのバンド解放通知が入力されるまで待機する（Ｓ９０７／Ｎｏ）。
【００７５】
Ｓ９０６の判断の結果、“ｒｅｌｅａｓａｂｌｅ”に登録されているバンドが有る場合（Ｓ９０７／Ｙｅｓ）、若しくは、他の描画処理部２２４からのバンド解放通知の入力待ちとなった場合において、バンド解放通知が入力された場合（Ｓ９０８／Ｙｅｓ）、描画処理部２２４は、バンドメモリ管理部２０１に、“ｒｅｌｅａｓａｂｌｅ”の先頭に登録されているバンドを解放し、そのバンドを“ｒｅｌｅａｓｅｄ”に登録するように要求する（Ｓ９０９）。
【００７６】
Ｓ９０９の処理により、“ｒｅｌｅａｓａｂｌｅ”に登録されていたバンドに対応する描画処理部２２４に割り当てられていたバンドメモリ２０２が解放される。ここで、バンドが“ｒｅｌｅａｓａｂｌｅ”に登録されている状態では、バンドメモリ２０２に未だそのバンドの描画情報が保持されている。これに対して、登録が“ｒｅｌｅａｓａｂｌｅ”から“ｒｅｌｅａｓｅｄ”に変更されると、バンドメモリ２０２に保持されていた描画情報が圧縮される。
【００７７】
ここで、“ｒｅｌｅａｓａｂｌｅ”及び“ｒｅｌｅａｓｅｄ”の処理について説明する。図８のＳ８０７において説明したように、描画処理部２２４は、中間データ記憶部２２３にディスプレイリストが無くなった場合であっても、割り当てられているバンドメモリ２０２を即座に解放せず、バンドメモリを解放可能であることを示す“ｒｅｌｅａｓａｂｌｅ”の状態で待機する。
【００７８】
このような処理は、下記のような理由に基づいて実行される。即ち、中間データ記憶部２２３に記憶されているディスプレイリストが一度無くなった場合であっても、他の描画処理部２２４にバンドメモリが割り当てられる前に、再度中間データ記憶部２２３にディスプレイリストが記憶される可能性がある。即ち、同一の中間データ記憶部２２３に対して、所定の間を空けて連続してディスプレイリストが記憶される場合がある。そのような場合は、バンドメモリ２０２を割り当て直すことなく、割り当て状態を維持したまま待機するべきである。これを実現するため、本実施形態においては、“ｒｅｌｅａｓｅｄ”の前段階として“ｒｅｌｅａｓａｂｌｅ”という状態が設けられている。
【００７９】
また、上述したように、バンドメモリ２０２は、描画処理部２２４から入力された描画情報を保持しているが、全ての描画処理部２２４から入力された描画情報を保持するほどの容量は確保されていないため、割り当てられている描画処理部２２４以外の他の描画処理部２２４から入力された描画情報は圧縮して保持する必要がある。上述したように、同一の中間データ記憶部２２３に対して、所定の間を空けて連続してディスプレイリストが記憶される場合、この圧縮処理も行わずに待機することが好ましい。このため、本実施形態においては、“ｒｅｌｅａｓａｂｌｅ”から“ｒｅｌｅａｓｅｄ”に登録が変更された際に、バンドメモリ２０２に保持されている描画情報が圧縮される。
【００８０】
Ｓ９０９の処理が終了すると、描画処理部２２４は、対象バンドが“ｗａｉｔｅｒ”の先頭に登録されているか否か、即ち、次にバンドメモリ２０２の割り当てを受けるバンドであるか否か確認する（Ｓ９１０）。Ｓ９１０の結果、対象バンドが先頭でなければ（Ｓ９１０／Ｎｏ）、描画処理部２２４は、Ｓ９０８からの処理を繰り返す。他方、対象バンドが先頭であった場合（Ｓ９１０／Ｙｅｓ）、描画処理部２２４は、バンドメモリ管理情報にアクセスし、対象バンドを“ｗａｉｔｅｒ”から削除する。そして、描画処理部２２４は、対象バンドを“ａｌｌｏｃａｔｅｄ”に登録し（Ｓ９０４）、バンドメモリ管理部２０１からバンドメモリ２０２の割り当てを受けて（Ｓ９０５）、処理を終了する。
【００８１】
このような処理により、バンド毎の優先度に従ったバンドメモリ２０２の割り当て処理が完了する。尚、図９の処理は、複数の描画処理部２２４が個別に実行する処理であるが、異なる描画処理部２２４において処理が競合した場合、例えば、Ｓ９０１、Ｓ９０４の処理が異なる描画処理部間において競合した場合、図４において説明した優先度に従い、優先度の高いバンドに対応している描画処理部２２４が優先される。
【００８２】
次に、Ｓ８０５のバンド解放処理について、図１０を参照して説明する。図１０は、本実施形態に係るバンド解放処理の動作を示すフローチャートである。バンド解放処理において、描画処理部２２４は、まずバンドメモリ管理部２０１にアクセスして、“ｗａｉｔｅｒ”、“ｒｅｌｅａｓｅｄ”から対象バンドを削除する（Ｓ１００１）。
【００８３】
次に、描画処理部２２４は、対象バンドが“ａｌｌｏｃａｔｅｄ”に含まれるか否か判断し（Ｓ１００２）、対象バンドが“ａｌｌｏｃａｔｅｄ”に含まれる場合（Ｓ１００２／Ｙｅｓ）、対象バンドを“ａｌｌｏｃａｔｅｄ”から削除する（Ｓ１００３）。そして、描画処理部２２４は、自己に割り当てられているバンドメモリの解放をバンドメモリ管理部２０１に要求すると共に、“ｗａｉｔｅｒ”に登録されている描画処理部２２４に、バンドメモリ２０２の解放を通知する（Ｓ１００４）。
【００８４】
Ｓ１００４の処理が完了した後、若しくは、対象バンドが“ａｌｌｏｃａｔｅｄ”に含まれていない場合（Ｓ１００２／ＮＯ）、次に、描画処理部２２４は、対象バンドが“ｒｅｌｅａｓａｂｌｅ”に含まれるか否か判断し（Ｓ１００２）、対象バンドが“ｒｅｌｅａｓａｂｌｅ”に含まれる場合（Ｓ１００５／Ｙｅｓ）、対象バンドを“ｒｅｌｅａｓａｂｌｅ”から削除する（Ｓ１００３）。そして、描画処理部２２４は、自己に割り当てられているバンドメモリの解放をバンドメモリ管理部２０１に要求すると共に、“ｗａｉｔｅｒ”に登録されている描画処理部２２４に、バンドメモリ２０２の解放を通知する（Ｓ１００７）。
【００８５】
Ｓ１００７の処理が完了し、若しくは、若しくは、対象バンドが“ｒｅｌｅａｓａｂｌｅ”に含まれていない場合（Ｓ１００２／ＮＯ）、描画処理部２２４は処理を終了する。このような処理により、本実施形態に係るバンドメモリ２０２の解放処理が完了する。
【００８６】
次に、本実施形態に係る画像処理部１０４の動作による効果について、図１１（ａ）、（ｂ）、（ｃ）を参照して説明する。図１１は、バンド＃０〜バンド＃４の夫々に対応する中間データ記憶部２２３にディスプレイリストが入力されるタイミングを示す図である。また、図１１（ｂ）は、図１１（ａ）のタイミングに応じて、バンド＃０〜バンド＃４の夫々に対応する描画処理部２２４が描画処理を実行するタイミングを示す図である。また、図１１（ｃ）は、図１１（ａ）のタイミングに応じて、図６において説明した従来技術の場合における描画処理のタイミングを示す図である。尚、図１１（ｂ）、（ｃ）においては、各バンドに対応する描画処理部２２４の処理の開始を白丸で示し、処理の完了、即ち、バンドの開放を黒丸で示している。
【００８７】
図１１（ａ）に示すように、先ずバンド＃０の（１）のディスプレイリストが生成され、これによりバンド＃０に対応する描画処理部２２４にバンドメモリ２０２が割り当てられて図１１（ｂ）に示すように、バンド＃０の描画処理が開始される。この際、バンドメモリ管理情報は、図１２（ａ）の状態である。図１１（ａ）、（ｂ）に示すように、次のディスプレイリスト（２）〜（３）が生成される前に、バンド＃０の描画処理が完了する。これにより、バンドメモリ管理情報は、図１２（ｂ）に示す状態になる。
【００８８】
次に、図１１（ａ）に示すように、バンド＃１、＃２、＃４のディスプレイリスト（２）〜（４）が生成されると、優先度の順に先ずバンド＃２の描画処理が開始される。これにより、バンドメモリ管理情報は、図１２（ｃ）に示す状態となる。続いてバンド＃１の描画処理が開始される。
【００８９】
バンド＃１の描画処理が完了するまでに、新たにバンド＃３のディスプレイリスト（５）が生成される。先に生成されたのはディスプレイリスト（４）であるが、優先度に従ってバンドメモリ管理情報は図１２（ｄ）に示す状態となるため、ディスプレイリスト（５）の描画処理が先に開始され、その後、ディスプレイリスト（４）の描画処理が実行される。
【００９０】
バンド＃４におけるディスプレイリスト（４）の描画処理が完了するタイミングにおいては、全ディスプレイリストのパーシングが完了しており、中間データ記憶部２２３にページ終了情報が記憶されている。従って、ディスプレイリスト（４）の描画処理が完了すると、バンド＃４に対応する描画処理部２２４は処理を終了する。
【００９１】
ディスプレイリスト（４）の描画処理が完了したタイミングにおいては、バンド＃１にディスプレイリスト（６）が生成されており、バンド＃２にディスプレイリスト（７）が生成されている。ここでは、優先度に従ってディスプレイリスト（７）の描画処理が先に実行され、それが完了するとページ終了情報に従って、バンド＃２に対応する描画処理部２２４が処理を終了する。
【００９２】
ディスプレイリスト（７）の描画処理が完了した後、バンド＃１のディスプレイリスト（６）及びバンド＃０、＃３のページ終了情報が、夫々優先度に従って処理されることにより、図１１（ｂ）に示すように、１ページ分の印刷が完了し、全ての描画処理部２２４が処理を終了する。
【００９３】
これに対して、図１１（ｃ）に示す従来技術に係る処理の場合、バンド＃０の（１）のディスプレイリストが生成され、これによりバンド＃０に対応する描画処理部２２４にバンドメモリ２０２が割り当てられてバンド＃０の描画処理が開始された後、ディスプレイリスト（１）の描画処理が完了しても、パーシングが終了してページ終了情報が生成されるまでバンドメモリ２０２の割り当てが変更されないため、図１１（ｃ）に示す期間Ｔの間、何れの描画処理部２２４も描画処理を実行しない遊休期間となる。
【００９４】
その後、全てのディスプレイリストが生成され、各バンドに対してページ終了情報が生成された後に、バンドメモリの割り当てが変更され、バンド＃１〜バンド＃４の順番に描画処理が実行される。その結果、従来技術に係る処理の場合、図１１（ｂ）に示す本実施形態に係る処理の場合よりも、遅いタイミングにおいて、１ページの印刷が終了する。
【００９５】
このように、本実施形態に係る画像形成装置１においては、レンダラからページメモリに描画情報を入力する際のバッファとなるバンドメモリ２０２の数が並行して動作可能なレンダラである描画処理２２４の数よりも少ない場合において、各描画処理部２２４が、中間データ記憶部２２３にディスプレイリストが記憶されていない場合に、自己に割り当てられているバンドメモリ２０２を解放可能な状態とし、それを他の描画処理部２２４に通知する。これにより、ディスプレイリストの描画処理を待っている他の描画処理部２２４、即ち、“ｗａｉｔｅｒ”に登録されている描画処理部２２４は、解放されたバンドメモリ２０２の割り当てを受けて描画処理を開始することができる。
【００９６】
従って、ディスプレイリストの生成状況に応じてバンドメモリ２０２の割り当てが変更され、図６若しくは図１１（ｃ）において説明したような遊休期間が生じることなく、効率的な処理が実行される。以上説明したように、本実施形態に係る技術を適用することにより、複数の演算手段を有する画像形成装置において、画像形成出力を実行するための画像処理の処理効率を向上することができる。
【００９７】
尚、本実施形態においては、複数の描画処理部２２４が全てソフトウェァモジュールによって構成される、即ち、ＣＰＵ１０に含まれるいずれかのコアによって実現される場合を例として説明した。この他、描画処理部２２４として、ソフトウェアモジュールによって構成されるものと、ハードウェアによって構成されるものとが混在していても良い。ハードウェアによって構成される描画処理部であっても、ページメモリ２０３への描画情報の入力に際してバンドメモリ２０２の割り当てを要する場合は、上記実施形態を適用することにより、上記と同様の効果を得ることができる。
【００９８】
また、上記実施形態においては、バンドメモリ２０２の容量として、１つの描画処理部２２４に割り当てられる分のみの容量が確保される場合を例としている。しかしながら、上記実施形態は、バンドメモリ２０２の割り当て可能数が、描画処理部２２４の数よりも少ない場合に効果がある。従って、バンドメモリ２０２の割り当て可能数は１つに限らず、描画処理部２２４の数よりも少ない数であればいくつでも良い
【符号の説明】
【００９９】
１  画像形成装置、
１０  ＣＰＵ、
２０  ＲＡＭ、
３０  ＲＯＭ、
４０  エンジン、
５０  ＨＤＤ、
６０  Ｉ／Ｆ、
７０  ＬＣＤ、
８０  操作部、
９０  バス、
１００  コントローラ、
１０１  主制御部、
１０２  エンジン制御部、
１０３  入出力制御部、
１０４  画像処理部、
１０５  操作表示制御部、
１１０  ＡＤＦ、
１２０  スキャナユニット、
１３０  排紙トレイ、
１４０  ディスプレイパネル、
１５０  給紙テーブル、
１６０  プリントエンジン、
１７０  排紙トレイ、
１８０  ネットワークＩ／Ｆ、
２００  ＰＤＬアプリケーション、
２０１  バンドメモリ管理部、
２０２  バンドメモリ、
２０３  ページメモリ、
２１０  ＰＤＬ解析部、
２２０  描画コアモジュール、
２２１  描画コアモジュールＩ／Ｆ、
２２２  ＤＬ処理部、
２２３  中間データ記憶部、
２２４  描画処理部
【先行技術文献】
【特許文献】
【０１００】
【特許文献１】特開２００１−４５３０４号公報
【図１】
2011083918.tif 000003
【図２】
2011083918.tif 000004
【図３】
2011083918.tif 000005
【図４】
2011083918.tif 000006
【図５】
2011083918.tif 000007
【図６】
2011083918.tif 000008
【図７】
2011083918.tif 000009
【図８】
2011083918.tif 000010
【図９】
2011083918.tif 000011
【図１０】
2011083918.tif 000012
【図１１】
2011083918.tif 000013
【図１２】
2011083918.tif 000014