説明

画像形成装置、画像形成装置の制御方法及び制御プログラム

【課題】複数の演算手段を有する画像形成装置において、画像形成出力を実行するための画像処理の処理効率を向上すること。
【解決手段】ディスプレイリストが記憶されることに応じて、描画処理部224が、バンドメモリ202の割り当てを受けてレンダリングを開始し、バンドメモリ202が、描画処理部224によってレンダリングされた描画情報をページメモリ203に入力し、記憶されていた全てのディスプレイリストについてレンダリングが完了した描画処理部224が、バンドメモリ202の割り当てを解除可能であることを通知し、バンドメモリ202の割り当てを要求している他の描画処理部224にバンドメモリ202を割り当てることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置、画像形成装置の制御方法及び制御プログラムに関し、特に、複数の演算手段によって画像処理を実行することが可能な画像形成装置に関する。
【背景技術】
【0002】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリ及び書類の電子化に用いるスキャナ等の画像処理装置は欠かせない機器となっている。このような画像処理装置は、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な複合機として構成されることが多い。
【0003】
このような画像処理装置のうち、電子化された情報の出力に用いるプリンタにおいては、入力された画像情報に基づいてプリントエンジンが画像形成出力を実行するための描画情報を生成する画像処理が行われる。この画像処理は、CPU(Central Processing Unit)等の演算手段がソフトウェアに従って動作することにより実行される。
【0004】
近年の情報処理機器の発展により複数の演算手段が含まれるマルチコアCPU等の演算機器が普及している。マルチコアCPUにおいては、複数のコアが夫々独立して動作するため、処理を並列化することにより、処理時間を短縮することが可能になる。従って、上記の画像処理もマルチコアCPUに対応させることにより、処理を効率化することが望まれている。マルチコアCPUの性能を効率的に発揮させるためには、処理を夫々のコアに適切に配分することにより、片方のコアの動作中において片方のコアに待機、即ち、待ちが発生しないようにする必要がある。
【0005】
画像処理を複数のレンダラで実行可能な画像形成装置において、各カラープレーンにおける各バンドのレンダリング開始タイミングをスケジューリングすることにより、高速なバンディング処理、即ち、描画情報の生成及び出力を実現する方法が提案されている(例えば、特許文献1参照)。特許文献1に開示された技術においては、各カラープレーンの各バンドのレンダリングに要する時間及びビデオ信号の出力開始タイミングに基づいてレンダリング開始タイミングを算出し、そのタイミングが早いバンドから順にレンダラを割り当てることにより、高速なバンディング処理を実現する。
【発明の概要】
【発明が解決しようとする課題】
【0006】
印刷ジョブとして画像形成装置に入力される情報は、一般的にPDL(Page Description Language)と呼ばれる形式の情報である。これに対して、特許文献1に開示されているように、各バンドのレンダリングに要する時間及びビデオ信号の出力開始タイミングに基づいて各バンドのレンダリング開始タイミングを算出するためには、PDL形式の情報を各レンダラが処理可能な形式である中間データに変換するパーシング処理が必要である。従って、特許文献1に係る技術を採用する場合、1ページ毎にパーシング処理が完了するまで、レンダリングを開始することができない。
【0007】
上記中間データは、一般的にディスプレイリストと呼ばれており、ページに含まれる図形等の要素毎に生成される。従って、レンダリング処理を効率的に実行するためには、パーシング処理とレンダリング処理とがFIFO(First In, First Out)で結合され、1コマンド、即ち、1つのディスプレイリスト毎にパーシング処理及びレンダリング処理が実行されることが好ましい。
【0008】
ここで、一般的な画像形成装置における画像処理の構成として、レンダラによって生成された描画情報は、メモリバッファを介してページメモリに入力される構成が採用されている。複数のレンダラが並行して動作する構成においては、レンダラの数と同数のメモリバッファが設けられている場合と、レンダラの数よりも少ない数のメモリバッファが設けられている場合とがある。後者の場合、夫々のレンダラは完全に並列で動作することはできず、メモリバッファが割り当てられているレンダラのみが動作可能な状態、即ちディスプレイリストに基づいて描画情報を生成し、出力可能な状態となる。
【0009】
更に、従来のレンダラ及びメモリバッファの割り当て機能においては、何れか一つのレンダラにメモリバッファが割り当てられて、そのレンダラが描画情報の生成を開始すると、1ページの終わりを示すディスプレイリストがそのレンダラに入力されるまで、メモリバッファの割り当てが解除されない。従って、メモリバッファが割り当てられているレンダラが描画すべきディスプレイリストが生成されず、他のレンダラが描画すべきディスプレイリストが生成されている期間は、メモリバッファが割り当てられているにも関わらずそのレンダラが動作していない遊休期間となってしまい、非効率な処理となってしまう。
【0010】
本発明は、上記実情を考慮してなされたものであり、複数の演算手段を有する画像形成装置において、画像形成出力を実行するための画像処理の処理効率を向上することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するために、本発明の一態様は、画像形成出力を実行するためのレンダリングを複数の処理手段によって実行可能な画像形成装置であって、描画すべき図形毎に情報がまとめられたディスプレイリストを前記画像形成出力の実行命令である印刷ジョブに基づいて生成するパーサと、前記生成されたディスプレイリストに基づいてレンダリングを実行する複数のレンダラと、前記複数のレンダラの夫々に対応して設けられ、前記生成されたディスプレイリストを中間データとして記憶する複数の中間データ記憶部と、前記レンダリングによって生成された描画情報を画像形成出力のページ毎に記憶するページメモリに入力するために保持するメモリバッファと、前記メモリバッファを前記複数のレンダラのいずれかに割り当てるメモリバッファ管理部とを含み、前記メモリバッファは、前記複数のレンダラのいずれかに割り当てられることにより、割り当てられた対象のレンダラによって生成された描画情報を保持して前記ページメモリに入力し、前記レンダラは、前記中間データ記憶部に前記ディスプレイリストが記憶されることに応じて前記メモリバッファ管理部に前記メモリバッファの割り当てを要求し、前記メモリバッファが割り当てられている場合に前記レンダリングを実行し、前記中間データ記憶部に記憶されていた全てのディスプレイリストに基づくレンダリングが完了した場合、前記メモリバッファの割り当てを解除可能であることを前記メモリバッファ管理部に通知し、前記メモリバッファ管理部は、前記メモリバッファの割り当てを解除可能であることを通知したレンダラに割り当てられている前記メモリバッファを、前記メモリバッファの割り当てを要求している他のレンダラに割り当てることを特徴とする。
【0012】
ここで、前記複数のレンダラは、画像形成出力のページの領域を複数に分割した夫々の分割領域のいずれかに関連付けられており、関連付けられた分割領域に表示される図形の前記ディスプレイリストに基づいてレンダリングを実行し、前記メモリバッファ管理部は、夫々の前記分割領域の優先度に従って、前記メモリバッファの割り当てを要求している他のレンダラに前記メモリバッファを割り当てることが好ましい。
【0013】
また、前記レンダラに対する前記メモリバッファの割り当てを管理する割り当て管理情報を管理する割り当て管理情報管理部を更に有し、前記割り当て管理情報は、前記メモリバッファが割り当てられているレンダラを示す割り当て情報、前記メモリバッファの割り当てを要求しているレンダラを示す待機情報、前記メモリバッファの割り当てを解除可能であるレンダラを示す解除可能情報及び前記メモリバッファの割り当てが解除されたレンダラを示す解除情報を含むことが好ましい。
【0014】
また、前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求して前記メモリバッファの割り当てを受けるレンダラを示す情報を、前記割り当て情報として前記割り当て管理情報に登録することが好ましい。
【0015】
また、前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求して前記メモリバッファの割り当てを受けるために待機するレンダラを示す情報を、前記待機情報として前記割り当て管理情報に登録することが好ましい。
【0016】
また、前記複数のレンダラは、画像形成出力のページの領域を複数に分割した夫々の分割領域のいずれかに関連付けられており、関連付けられた前記分割領域に表示される図形の前記ディスプレイリストに基づいてレンダリングを実行し、前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求して前記メモリバッファの割り当てを受けるために待機するレンダラが複数ある場合、夫々の前記レンダラが対応している分割領域の優先度に従って、前記待機情報に登録される夫々のレンダラを示す情報を並び替え、前記メモリバッファ管理部は、前記待機情報に登録されている前記レンダラを示す情報の並び順に従って前記メモリバッファの割り当てを要求している他のレンダラに前記メモリバッファを割り当てることが好ましい。
【0017】
また、前記割り当て管理情報管理部は、前記メモリバッファの割り当てを解除可能であることを通知したレンダラを示す情報を、前記解除可能情報として前記割り当て管理情報に登録することが好ましい。
【0018】
また、前記割り当て管理情報管理部は、前記他のレンダラに割り当てられることにより前記メモリバッファの割り当てが解除されたレンダラを示す情報を、前記解除情報として前記割り当て管理情報に登録することが好ましい。
【0019】
また、前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求したレンダラを示す情報が前記解除可能情報として前記割り当て管理情報に登録されている場合、前記レンダラを示す情報を前記割り当て情報として前記割り当て管理情報に登録することが好ましい。
【0020】
また、前記メモリバッファは、前記他のレンダラに割り当てが変更された場合、変更前の前記レンダラによって生成されて保持している描画情報を圧縮し、新たに割り当てられたレンダラによって生成される描画情報を保持することが好ましい。
【0021】
また、本発明の他の態様は、画像形成出力を実行するためのレンダリングを複数の処理手段によって実行可能な画像形成装置の制御方法であって、前記画像形成装置は、描画すべき図形毎に情報がまとめられたディスプレイリストを前記画像形成出力の実行命令である印刷ジョブに基づいて生成するパーサと、前記生成されたディスプレイリストに基づいてレンダリングを実行する複数のレンダラと、前記複数のレンダラの夫々に対応して設けられ、前記生成されたディスプレイリストを記憶する複数の中間データ記憶部と、前記レンダリングによって生成された描画情報を画像形成出力のページ毎に記憶するページメモリに入力するために保持するメモリバッファと、前記メモリバッファを前記複数の描画情報生成部のいずれかに割り当てるメモリバッファ管理部とを含み、前記レンダラが、前記中間データ記憶部に前記ディスプレイリストが記憶されることに応じて前記メモリバッファ管理部に前記メモリバッファの割り当てを要求し、前記メモリバッファが割り当てられている場合にレンダリングを実行し、前記中間データ記憶部に記憶されていた全てのディスプレイリストに基づいてレンダリングが完了した場合、前記メモリバッファの割り当てを解除可能であることを前記メモリバッファ管理部に通知し、前記メモリバッファが、前記複数のレンダラのいずれかに割り当てられることにより、割り当てられた対象の前記レンダラによって生成された描画情報を保持して前記ページメモリに入力し、前記メモリバッファ管理部が、前記メモリバッファの割り当てを解除可能であることを通知したレンダラに割り当てられている前記メモリバッファを、前記メモリバッファの割り当てを要求している他のレンダラに割り当てることを特徴とする。
【0022】
また、本発明の更に他の態様は、画像形成出力を実行するためのレンダリングを複数の処理手段によって実行可能な画像形成装置の制御プログラムであって、前記画像形成装置は、描画すべき図形毎に情報がまとめられたディスプレイリストを前記画像形成出力の実行命令である印刷ジョブに基づいて生成するパーサと、前記生成されたディスプレイリストに基づいてレンダリングを実行する複数のレンダラと、前記複数のレンダラの夫々に対応して設けられ、前記生成されたディスプレイリストを記憶する複数の中間データ記憶部と、前記生成された描画情報を画像形成出力のページ毎に記憶するページメモリに入力するために保持するメモリバッファと、前記メモリバッファを前記複数のレンダラのいずれかに割り当てるメモリバッファ管理部とを含み、前記中間データ記憶部に前記ディスプレイリストが記憶されることに応じて、その中間データ記憶部に対応する前記レンダラに前記メモリバッファを割り当てることを要求するステップと、前記メモリバッファが割り当てられた前記レンダラに前記レンダリングを実行させるステップと、前記レンダラが対応する前記中間データ記憶部に記憶されていた全てのディスプレイリストに基づく前記レンダリングが完了した場合、前記レンダラと前記メモリバッファとの割り当てを解除可能であることを通知するステップと、前記複数のレンダラのいずれかに割り当てられている前記メモリバッファに、割り当てられた対象の前記レンダラによって生成された描画情報を保持して前記ページメモリに入力させるステップと、前記メモリバッファとの割り当てを解除可能であることを通知したレンダラに割り当てられている前記メモリバッファを、前記メモリバッファの割り当てを要求している他のレンダラに割り当てるステップとを前記画像形成装置に実行させることを特徴とする。
【発明の効果】
【0023】
本発明によれば、複数の演算手段を有する画像形成装置において、画像形成出力を実行するための画像処理の処理効率を向上することが可能となる。
【図面の簡単な説明】
【0024】
【図1】本発明の実施形態に係る画像形成装置のハードウェア構成を示すブロック図である。
【図2】本発明の実施形態に係る画像形成装置の機能構成を示す図である。
【図3】本発明の実施形態に係る画像処理部に含まれる機能を示す図である。
【図4】本発明の実施形態に係るページに含まれる各バンドの優先度を示す図である。
【図5】本発明の実施形態に係る描画コアモジュールの機能構成を示す図である。
【図6】本発明の比較例に係るパーシングと描画処理とのタイミングを示す図である。
【図7】本発明の実施形態に係るバンドメモリ管理情報の例を示す図である。
【図8】本発明の実施形態に係る画像処理部の動作を示すフローチャートである。
【図9】本発明の実施形態に係るバンドメモリ割り当て動作を示すフローチャートである。
【図10】本発明の実施形態に係るバンド解放動作を示すフローチャートである。
【図11】本発明の実施形態及び比較例に係るパーシング及び描画処理のタイミングを示す図である。
【図12】本発明の実施形態に係るバンドメモリ管理情報の状態を示す図である。
【発明を実施するための形態】
【0025】
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、プリンタ、スキャナ、複写機等の機能を含む複合機(MFP:Multi Function Peripheral)としての画像形成装置を例として説明する。
【0026】
図1は、本実施形態に係る画像形成装置1のハードウェア構成を示すブロック図である。図1に示すように、本実施形態に係る画像形成装置1は、一般的なサーバやPC(Personal Computer)等の情報処理端末と同様の構成に加えて、画像形成を実行するエンジンを有する。即ち、本実施形態に係る画像形成装置1は、CPU(Central Processing Unit)10、RAM(Random Access Memory)20、ROM(Read Only Memory)30、エンジン40、HDD(Hard Disk Drive)50及びI/F60がバス90を介して接続されている。また、I/F60にはLCD(Liquid Crystal Display)70及び操作部80が接続されている。
【0027】
CPU10は演算手段であり、画像形成装置1全体の動作を制御する。また、本実施形態に係るCPU10は、マルチコアCPUであり、互いに独立して動作可能な複数の演算手段、即ちコアを含む。RAM20は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、CPU10が情報を処理する際の作業領域として用いられる。ROM30は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。エンジン40は、画像形成装置1において実際に画像形成を実行する機構である。
【0028】
HDD50は、情報の読み書きが可能な不揮発性の記憶媒体であり、OS(Operating System)や各種の制御プログラム、アプリケーション・プログラム等が格納されている。I/F60は、バス90と各種のハードウェアやネットワーク等を接続し制御する。LCD70は、ユーザが画像形成装置1の状態を確認するための視覚的ユーザインタフェースである。操作部80は、キーボードやマウス等、ユーザが画像形成装置1に情報を入力するためのユーザインタフェースである。
【0029】
このようなハードウェア構成において、ROM30やHDD50若しくは図示しない光学ディスク等の記録媒体に格納されたプログラムがRAM20に読み出され、CPU10の制御に従って動作することにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る画像形成装置1の機能を実現する機能ブロックが構成される。
【0030】
次に、図2を参照して、本実施形態に係る画像形成装置1の機能構成について説明する。図2は、本実施形態に係る画像形成装置1の機能構成を示すブロック図である。図2に示すように、本実施形態に係る画像形成装置1は、コントローラ100、ADF(Auto Documennt Feeder:原稿自動搬送装置)110、スキャナユニット120、排紙トレイ130、ディスプレイパネル140、給紙テーブル150、プリントエンジン160、排紙トレイ170及びネットワークI/F180を有する。
【0031】
また、コントローラ100は、主制御部101、エンジン制御部102、入出力制御部103、画像処理部104及び操作表示制御部105を有する。図2に示すように、本実施形態に係る画像形成装置1は、スキャナユニット120、プリントエンジン160を有する複合機として構成されている。尚、図2においては、電気的接続を実線の矢印で示しており、用紙の流れを破線の矢印で示している。
【0032】
ディスプレイパネル140は、画像形成装置1の状態を視覚的に表示する出力インタフェースであると共に、タッチパネルとしてユーザが画像形成装置1を直接操作し若しくは画像形成装置1に対して情報を入力する際の入力インタフェース(操作部)でもある。ネットワークI/F180は、画像形成装置1がネットワークを介して他の機器と通信するためのインタフェースであり、Ethernet(登録商標)やUSB(Universal Serial Bus)インタフェースが用いられる。
【0033】
コントローラ100は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ROM30や不揮発性メモリ並びにHDD50や光学ディスク等の不揮発性記録媒体に格納されたファームウェア等の制御プログラムが、RAM20等の揮発性メモリ(以下、メモリ)にロードされ、CPU10の制御に従って構成されるソフトウェア制御部と集積回路などのハードウェアとによってコントローラ100が構成される。コントローラ100は、画像形成装置1全体を制御する制御部として機能する。
【0034】
主制御部101は、コントローラ100に含まれる各部を制御する役割を担い、コントローラ100の各部に命令を与える。エンジン制御部102は、プリントエンジン160やスキャナユニット120等を制御若しくは駆動する駆動手段としての役割を担う。入出力制御部103は、ネットワークI/F180を介して入力される信号や命令を主制御部101に入力する。また、主制御部101は、入出力制御部103を制御し、ネットワークI/F180を介して他の機器にアクセスする。
【0035】
画像処理部104は、主制御部101の制御に従い、入力された印刷ジョブに含まれる印刷情報に基づいて描画情報を生成する。この描画情報とは、画像形成部であるプリントエンジン160が画像形成動作において形成すべき画像を描画するための情報である。また、印刷ジョブに含まれる印刷情報とは、PC等の情報処理装置にインストールされたプリンタドライバによって画像形成装置1が認識可能な形式に変換された情報であり、PDL(Page Description Language)によって記述された情報である。換言すると、上記印刷情報とは、画像形成出力すべきページの情報が記述されたページ情報である。尚、本実施形態においては、ページ記述言語としてPDLを用いる場合を例とするが、他の言語であっても良い。
【0036】
操作表示制御部105は、ディスプレイパネル140に情報表示を行い若しくはディスプレイパネル140を介して入力された情報を主制御部101に通知する。画像形成装置1がプリンタとして動作する場合は、まず、入出力制御部103がネットワークI/F180を介して印刷ジョブを受信する。入出力制御部103は、受信した印刷ジョブを主制御部101に転送する。主制御部101は、印刷ジョブを受信すると、画像処理部104を制御して、印刷ジョブに含まれる印刷情報に基づいて描画情報を生成させる。
【0037】
画像処理部104によって描画情報が生成されると、エンジン制御部102は、生成された描画情報に基づき、給紙テーブル150から搬送される用紙に対して画像形成を実行する。即ち、プリントエンジン160が画像形成部として機能する。プリントエンジン160の具体的態様としては、インクジェット方式による画像形成機構や電子写真方式による画像形成機構等を用いることが可能である。プリントエンジン160によって画像形成が施された文書は排紙トレイ170に排紙される。
【0038】
画像形成装置1がスキャナとして動作する場合は、ユーザによるディスプレイパネル140の操作若しくはネットワークI/F180を介して外部のクライアント用の情報処理端末等から入力されるスキャン実行指示に応じて、操作表示制御部105若しくは入出力制御部103が主制御部101にスキャン実行信号を転送する。主制御部101は、受信したスキャン実行信号に基づき、エンジン制御部102を制御する。
【0039】
エンジン制御部102は、ADF110を駆動し、ADF110にセットされた撮像対象原稿をスキャナユニット120に搬送する。また、エンジン制御部102は、スキャナユニット120を駆動し、ADF110から搬送される原稿を撮像する。また、ADF110に原稿がセットされておらず、スキャナユニット120に直接原稿がセットされた場合、スキャナユニット120は、エンジン制御部102の制御に従い、セットされた原稿を撮像する。即ち、スキャナユニット120が撮像部として動作する。
【0040】
撮像動作においては、スキャナユニット120に含まれるCCD等の撮像素子が原稿を光学的に走査し、光学情報に基づいて生成された撮像情報が生成される。エンジン制御部102は、スキャナユニット120が生成した撮像情報を画像処理部104に転送する。画像処理部104は、主制御部101の制御に従い、エンジン制御部102から受信した撮像情報に基づき画像情報を生成する。画像処理部104が生成した画像情報はHDD40等の画像形成装置1に装着された記憶媒体に保存される。即ち、スキャナユニット120、エンジン制御部102及び画像処理部104が連動して、原稿読み取り部として機能する。
【0041】
画像処理部104によって生成された画像情報は、ユーザの指示に応じてそのままHDD40等に格納され若しくは入出力制御部103及びネットワークI/F180を介して外部の装置に送信される。即ち、スキャナユニット120及びエンジン制御部102が画像入力部として機能する。
【0042】
また、画像形成装置1が複写機として動作する場合は、エンジン制御部102がスキャナユニット120から受信した撮像情報若しくは画像処理部104が生成した画像情報に基づき、画像処理部104が描画情報を生成する。その描画情報に基づいてプリンタ動作の場合と同様に、エンジン制御部102がプリントエンジン160を駆動する。
【0043】
このような画像形成装置1において、本実施形態に係る要旨は、画像処理部104における描画処理の効率化にある。以下、本実施形態に係る画像処理部104の機能及び動作について説明する。図3は、本実施形態に係る画像処理部104に含まれる機能を示すブロック図である。図3に示すように、本実施形態に係る画像処理部104は、PDL解析部210及び描画コアモジュール220によって構成されるPDLアプリケーション200、バンドメモリ管理部201、バンドメモリ202及びページメモリ203を含む。
【0044】
PDL解析部210は、PDLで記述された印刷情報を取得し、描画コアモジュール220が処理可能な形式、即ち、ディスプレイリストに変換するパーシングを行うパーサである。ディスプレイリストとは、画像形成出力において出力すべき画像に含まれる図形の情報が、夫々の図形毎にまとめられた図形情報である。即ち、PDL解析部210は、図形情報生成部として機能する。
【0045】
描画コアモジュール220は、PDL解析部210によって生成されたディスプレイリストに基づき、プリントエンジン160が画像形成出力を実行するための描画情報を生成する。図3に示す画像処理部104の機能のうち、描画コアモジュール220が、CPU10に含まれる複数のコアによって分散処理されることにより、描画コアモジュール220中に複数のレンダラが構成される。即ち、描画コアモジュール220の機能が本実施形態に係る要旨の1つとなる。
【0046】
複数のコアによって夫々制御される複数のレンダラは、1ページの全領域が複数に分割された夫々の領域の何れかに関連付けられており、夫々の領域の画像を描画するための描画情報を生成する。分割された夫々の領域は“バンド”と呼ばれるものであり、本実施形態においては、図4に示すように、副走査方向に5段に分割された夫々の分割領域が各バンドとなる。
【0047】
バンドメモリ202は、図4に示すような夫々のバンドについてレンダラが生成した描画情報を、ページメモリ203に入力する際のメモリバッファとして機能する。換言すると、バンドメモリ202は、描画情報をページメモリ203に入力するために保持する描画情報保持部として機能する。本実施形態において、バンドメモリ202は、複数のレンダラのいずれか1つに割り当てられる分の容量のみ確保されている。従って、バンドメモリ管理部201は、バンドメモリ202と各レンダラとの割り当て関係を管理し、レンダラの動作状況に応じて、レンダラとバンドメモリ202との割り当てを切り換えるメモリバッファ管理部として機能する。そして、バンドメモリ管理部201は、レンダラによって生成された描画情報をバンドメモリ202に転送する。即ち、バンドメモリ管理部201は、描画情報保持制御部として機能する。ページメモリ203は、各カラープレーンに対応して複数設けられており、プリントエンジン160が出力するページ毎の描画情報を、出力する色毎に記憶する。
【0048】
尚、図4において各バンド#0〜#4の横に示す数字は、バンドメモリ202の割り当て優先度を示す値である。本実施形態においては、ページの中央において最も描画すべき画像が多く、両端において描画すべき画像が少ないという趣旨に基づき、中央のバンド#2が最も高い優先度に設定され、両端のバンド#0、#4が最も低い優先度に設定されている。この優先度については、後に詳述する。
【0049】
次に、図5を参照して、描画コアモジュール220の機能について説明する。図5は、描画コアモジュール220に含まれる機能を示すブロック図である。図5に示すように、本実施形態に係る描画コアモジュール220は、描画コアモジュールI/F221、DL(Display List:ディスプレイリスト)処理部222、複数の中間データ記憶部223及び複数の描画処理部224を含む。複数の描画処理部224は、上述したレンダラに相当する構成、即ち描画情報を生成するレンダリングを行う描画処理部であり、夫々CPU10に含まれる異なるコアによって制御されることにより、並列して動作可能である。
【0050】
描画コアモジュールI/F221は、PDL解析部210によって生成されたディスプレイリストを取得する。DL処理部222は、描画コアモジュールI/F221が取得したディスプレイリストを、中間データとして中間データ記憶部223に記憶させる。また、DL処理部222は、描画コアモジュールI/F221に入力されたディスプレイリストを中間データ記憶部223に記憶させる処理において、1ページ分のディスプレイリストが完了する度にその旨を示す情報(以降、ページ終了情報とする)を中間データ記憶部223に記憶させる。このページ終了情報は、他のディスプレイリストと同様のフォーマットにおいて、1ページ分のディスプレイリストが終了したことを示す情報が含まれる情報である。
【0051】
中間データ記憶部223は、CPU10に含まれる夫々のコアによって制御される複数の描画処理部224にデータを受け渡すための記憶媒体である。即ち、中間データ記憶部223は、図形情報であるディスプレイリストを記憶する図形情報記憶部として機能する。PDL解析部210によって生成されたディスプレイリストは、中間データ記憶部223に記憶されることにより、レンダラである描画処理部224によって描画情報に変換される。
【0052】
複数の描画処理部224は、中間データ記憶部223に記憶されたディスプレイリストに基づき、エンジン制御部102に描画データを入力するための描画情報を生成する。複数の描画処理部224は、バンドメモリ管理部201にバンドメモリ202の割り当てを要求し、バンドメモリ管理部201からバンドメモリ202が割り当てられた場合に、中間データ記憶部223からディスプレイリストを読み出して描画処理を行う。
【0053】
また、描画処理部224は、バンドメモリ202の割り当てを受けて描画処理を実行するために中間データ記憶部223からディスプレイリストを読み出した結果、読み出した情報が上述したページ終了情報であった場合は、割り当てられているバンドメモリ202を解放する。これにより、バンドメモリ管理部201は、他の描画処理部224にバンドメモリ202を割り当てることが可能となる。本実施形態に係る要旨は、バンドメモリ管理部201がバンドメモリ202の割り当てを変更するタイミングが上記ページ終了情報だけでなく、各描画処理部224が1ページの描画情報を生成している途中においても、バンドメモリ202の割り当てが変更されることにある。
【0054】
図5に示すように、中間データ記憶部223と描画処理部224とは1対1で対応している。上述したように、レンダラである各描画処理部224は、図4に示す各バンドのいずれかに対応している。従って、中間データ記憶部223も、図4に示す各バンドの何れかに対応している。そして、DL処理部222は、ディスプレイリストを中間データ記憶部223に記憶させる際、そのディスプレイリストがバンド#0〜バンド#4のいずれのバンドに対応するかを判断して、そのディスプレイリストを記憶させる中間データ記憶部223を決定する。
【0055】
換言すると、DL処理部222は、描画コアモジュールI/F221が取得したディスプレイリストが、ページのどの領域に含まれる図形等の画像のディスプレイリストであるかに基づき、ディスプレイリストを記憶させる中間データ記憶部223を決定する。尚、複数のバンドにまたがる画像のディスプレイリストである場合、DL処理部222は、その画像がまたがっているバンドに対応している全ての中間データ記憶部223にディスプレイリストを記憶させる。
【0056】
ここで、描画コアモジュール220が従来の一般的な動作を行う場合、即ち、バンドメモリ202の割り当てを変更するタイミングが、上記ページ終了情報だけである場合の、ディスプレイリストの生成、即ちパーシング開始と各描画処理部224による描画処理のタイミングについて説明する。図6は、従来の一般的な動作を行う場合における、パーシング開始と各描画処理部224による描画処理とのタイミングを示す図である。
【0057】
図6の例においては、先ずバンド#0に対応する中間データ記憶部223にディスプレイリストが入力され、これにより、バンド#0に対応する描画処理部224が描画処理を開始している。その後タイミングtにおいて、バンド#0に対応するディスプレイリストの描画処理は完了している。しかしながら、他のバンドに対応するディスプレイリストの生成が引き続き行われているため、上述したページ終了情報が入力されず、バンドメモリ202とバンド#0に対応している描画処理部224との割り当てが解除されない。上述したように、本実施形態において、バンドメモリ202は複数の描画処理部224のいずれか1つに割り当てられる分の容量のみ確保されているため、タイミングt以降の期間Tは、いずれの描画処理部224も描画処理を実行していない遊休期間となる。
【0058】
本実施形態においては、上記遊休期間による非効率的な動作を解消するため、より動的に描画処理部224とバンドメモリ202との割り当て関係を制御する。以下、本実施形態に係る画像処理部104の動作について説明する。図7は、本実施形態において、各描画処理部224とバンドメモリ202との割り当て関係を管理するためのバンドメモリ管理情報を示す図である。本実施形態に係るバンドメモリ管理情報は、バンドメモリ管理部201に記憶されており、各描画処理部224は、バンドメモリ管理部にアクセスすることによって、図7に示すバンドメモリ管理情報を参照し、若しくはバンドメモリ管理部201に情報の書き換えを実行させる。即ち、本実施形態においては、バンドメモリ管理部201が、管理情報管理部としても機能する。
【0059】
図7に示すように、本実施形態に係るバンドメモリ管理情報は、“allocated”、“waiter”、“releasable”、“released”の4つの変数を含む。“allocated”は、バンドメモリが割り当てられているバンド、即ち、現在描画処理が実行されているバンドを示す変数である。換言すると、“allocated”は、バンドメモリ202が割り当てられている描画処理部224を示す割り当て情報である。
【0060】
“waiter”は、バンドメモリの割り当てを待っているバンド、即ち、中間データ記憶部223にディスプレイリストが記憶されて処理を待っているバンドを示す変数である。換言すると、“waiter”は、バンドメモリ202の割り当てを要求している描画処理部224を示す待機情報である。
【0061】
“releasable”は、バンドメモリが割り当てられているが、中間データ記憶部223に記憶されていたディスプレイリストについて、全て描画処理が完了しており、バンドメモリを開放することが可能なバンドを示す変数である。換言すると、“releasable”は、バンドメモリ202の割り当てを解除可能である描画処理部224を示す解除可能情報である。
【0062】
“released”は、バンドメモリを解放し、バンドメモリの割り当てを待ってもいないバンドを示す変数である。換言すると、“released”は、バンドメモリ202の割り当てが解除された描画処理部224を示す解除情報である。
【0063】
次に、本実施形態に係る画像処理部104の動作について説明する。図8は、本実施形態における各描画処理部224の動作を示すフローチャートである。尚、描画処理部224は、対応する中間データ記憶部223にディスプレイリストが記憶されることにより、図8に示す動作を開始する。
【0064】
図8に示すように、描画処理部224は、中間データ記憶部223にディスプレイリストが記憶されると(S801)、バンドメモリ202が割り当てられているか否か判断する(S802)。S802の判断は、中間データ記憶部223にディスプレイリストが記憶されているため、そのディスプレイリストについての描画処理のために実行される。S802の判断の結果、バンドメモリ202が割り当てられていなければ(S802/No)、描画処理部224は、バンドメモリ202の割り当て処理(S809)を実行する。S809の処理の詳細については、後述する。
【0065】
S802の判断の結果、バンドメモリ202が割り当てられている場合(S802/Yes)、若しくはS809の処理が完了した場合、描画処理部224は、中間データ記憶部223からディスプレイリストを読み出す(S803)。S803によりディスプレイリストを読み出した結果、読み出したディスプレイリストが、上述したページ終了情報であった場合(S804)、描画処理部224は、割り当てられているバンドを解放するバンド解放処理を実行し(S805)、処理を終了する。S805のバンド解放処理については後に詳述する。
【0066】
他方、読み出したディスプレイリストが、ページ終了情報ではなく、描画情報を生成すべき通常のディスプレイリストであった場合(S804/No)、描画処理部224は、描画処理を実行して(S810)バンドメモリ202を介してページメモリ203に描画情報を入力し、S801からの処理を繰り返す。
【0067】
中間データ記憶部223にディスプレイリストが記憶されていない場合(S801/No)、描画処理部224は、バンドメモリが割り当てられているか否か判断する(S806)。S806の判断は、中間データ記憶部223にディスプレイリストが記憶されておらず、実行すべき描画処理が存在しないため、バンドメモリが割り当てられている場合はそのバンドメモリ202を開放する必要があるために実行される。換言すると、描画処理部224は、中間データ記憶部223に記憶されていたディスプレイリストの全てについて描画処理が完了した場合、バンドメモリ202の割り当てを解除可能であると判断する。
【0068】
S806の判断の結果、バンドメモリ202が割り当てられている場合(S806/Yes)、即ち、図7に示す変数“allocated”に、自己が対応するバンドの番号が登録されている場合、描画処理部224は、対象のバンドの番号を“allocated”から“releasable”に書き換える(S807)。S807の処理は、換言すると、描画処理部224が、バンドメモリ管理部201に対して、バンドメモリ202の割り当てを解除可能であることを通知する処理である。そして、更にバンドメモリ管理情報を参照し、“waiter”に登録されているバンドがあれば、そのバンドに対応する描画処理部224に対して、バンドを解放したことを通知し(S808)、S801からの処理を繰り返す。
【0069】
他方、S806の判断の結果、バンドメモリが割り当てられていなければ(S806/No)、描画処理部224は、S801からの処理を繰り返す。これにより、描画処理部224は、ページ終了情報が入力されるまで、図8に示す処理を繰り返すこととなる。このように、本実施形態においては、中間データ記憶部223にディスプレイリストが記憶されることにより、動作を開始した描画処理部224が、中間データ記憶部223に処理すべきディスプレイリストが無くなった場合に、バンドメモリ202を開放することにより、バンドメモリ202の割り当てが最適化され、効率的な処理が実現される。
【0070】
次に、S809のバンドメモリ割り当て処理について、図9を参照して説明する。図9は、本実施形態に係るバンドメモリ割り当て処理の動作を示すフローチャートである。図9に示すバンドメモリ割り当て処理は、各描画処理部224が、バンドメモリ管理部201に対してバンドメモリ202の割り当てを要求する処理である。バンドメモリ割り当て処理において、描画処理部224は、まずバンドメモリ管理部201にアクセスしてバンドメモリ管理情報を参照し、対象バンド、即ち、自己が対応しているバンドが“releasable”に登録されているか否かを判断する(S901)。
【0071】
S901の判断の結果、対象バンドが“releasable”に登録されている場合(S901/Yes)、描画処理部224は、対象バンドを“releasable”から“allocated”に移動する(S902)。この場合、バンドメモリ202は既に自身に割り当てられているため、描画処理部224はそのまま処理を終了する。他方、対象バンドが“releasable”に登録されていない場合(S901/No)、描画処理部224は、何れの描画処理部224にも割り当てられていない空きのバンドメモリ202が有るか否かを、バンドメモリ管理部201に問い合わせる(S903)。
【0072】
S903の結果、空きのバンドメモリ202がある場合(S903/Yes)、描画処理部224は、バンドメモリ管理情報にアクセスして、対象バンドを“allocated”に登録し(S904)、バンドメモリ管理部201からバンドメモリ202の割り当てを受けて(S905)、処理を終了する。他方、空きのバンドメモリ202がない場合(S903/No)、描画処理部224は、バンドメモリ管理情報にアクセスして、対象バンドを“waiter”に登録する(S906)。これにより、描画処理部224は、バンド割り当て待ち状態となる。
【0073】
ここで、S906の処理において、複数のバンドが“waiter”に登録されることとなる場合、その順番は先着順ではなく、図4において説明したバンド毎の優先度順にソートされる。例えば、既にバンド#1が“waiter”に登録されている場合において、新たにバンド#2が“waiter”に登録される場合、バンド#2が、次にバンドメモリ202の割り当てを受ける先頭のバンドとして“waiter”に登録される。このソートは、バンドメモリ管理情報に情報を登録する描画処理部224が実行しても良いし、バンドメモリ管理部201が実行しても良い。
【0074】
S905の処理が終了すると、描画処理部224は、バンドメモリ管理情報にアクセスし、“releasable”に登録されているバンドが有るか否か、即ち、バンドメモリ202を解放可能なバンドが有るか否か確認する(S907)。S906の判断の結果、“releasable”に登録されているバンドが無ければ、描画処理部224は、他の描画処理部2224からのバンド解放通知が入力されるまで待機する(S907/No)。
【0075】
S906の判断の結果、“releasable”に登録されているバンドが有る場合(S907/Yes)、若しくは、他の描画処理部224からのバンド解放通知の入力待ちとなった場合において、バンド解放通知が入力された場合(S908/Yes)、描画処理部224は、バンドメモリ管理部201に、“releasable”の先頭に登録されているバンドを解放し、そのバンドを“released”に登録するように要求する(S909)。
【0076】
S909の処理により、“releasable”に登録されていたバンドに対応する描画処理部224に割り当てられていたバンドメモリ202が解放される。ここで、バンドが“releasable”に登録されている状態では、バンドメモリ202に未だそのバンドの描画情報が保持されている。これに対して、登録が“releasable”から“released”に変更されると、バンドメモリ202に保持されていた描画情報が圧縮される。
【0077】
ここで、“releasable”及び“released”の処理について説明する。図8のS807において説明したように、描画処理部224は、中間データ記憶部223にディスプレイリストが無くなった場合であっても、割り当てられているバンドメモリ202を即座に解放せず、バンドメモリを解放可能であることを示す“releasable”の状態で待機する。
【0078】
このような処理は、下記のような理由に基づいて実行される。即ち、中間データ記憶部223に記憶されているディスプレイリストが一度無くなった場合であっても、他の描画処理部224にバンドメモリが割り当てられる前に、再度中間データ記憶部223にディスプレイリストが記憶される可能性がある。即ち、同一の中間データ記憶部223に対して、所定の間を空けて連続してディスプレイリストが記憶される場合がある。そのような場合は、バンドメモリ202を割り当て直すことなく、割り当て状態を維持したまま待機するべきである。これを実現するため、本実施形態においては、“released”の前段階として“releasable”という状態が設けられている。
【0079】
また、上述したように、バンドメモリ202は、描画処理部224から入力された描画情報を保持しているが、全ての描画処理部224から入力された描画情報を保持するほどの容量は確保されていないため、割り当てられている描画処理部224以外の他の描画処理部224から入力された描画情報は圧縮して保持する必要がある。上述したように、同一の中間データ記憶部223に対して、所定の間を空けて連続してディスプレイリストが記憶される場合、この圧縮処理も行わずに待機することが好ましい。このため、本実施形態においては、“releasable”から“released”に登録が変更された際に、バンドメモリ202に保持されている描画情報が圧縮される。
【0080】
S909の処理が終了すると、描画処理部224は、対象バンドが“waiter”の先頭に登録されているか否か、即ち、次にバンドメモリ202の割り当てを受けるバンドであるか否か確認する(S910)。S910の結果、対象バンドが先頭でなければ(S910/No)、描画処理部224は、S908からの処理を繰り返す。他方、対象バンドが先頭であった場合(S910/Yes)、描画処理部224は、バンドメモリ管理情報にアクセスし、対象バンドを“waiter”から削除する。そして、描画処理部224は、対象バンドを“allocated”に登録し(S904)、バンドメモリ管理部201からバンドメモリ202の割り当てを受けて(S905)、処理を終了する。
【0081】
このような処理により、バンド毎の優先度に従ったバンドメモリ202の割り当て処理が完了する。尚、図9の処理は、複数の描画処理部224が個別に実行する処理であるが、異なる描画処理部224において処理が競合した場合、例えば、S901、S904の処理が異なる描画処理部間において競合した場合、図4において説明した優先度に従い、優先度の高いバンドに対応している描画処理部224が優先される。
【0082】
次に、S805のバンド解放処理について、図10を参照して説明する。図10は、本実施形態に係るバンド解放処理の動作を示すフローチャートである。バンド解放処理において、描画処理部224は、まずバンドメモリ管理部201にアクセスして、“waiter”、“released”から対象バンドを削除する(S1001)。
【0083】
次に、描画処理部224は、対象バンドが“allocated”に含まれるか否か判断し(S1002)、対象バンドが“allocated”に含まれる場合(S1002/Yes)、対象バンドを“allocated”から削除する(S1003)。そして、描画処理部224は、自己に割り当てられているバンドメモリの解放をバンドメモリ管理部201に要求すると共に、“waiter”に登録されている描画処理部224に、バンドメモリ202の解放を通知する(S1004)。
【0084】
S1004の処理が完了した後、若しくは、対象バンドが“allocated”に含まれていない場合(S1002/NO)、次に、描画処理部224は、対象バンドが“releasable”に含まれるか否か判断し(S1002)、対象バンドが“releasable”に含まれる場合(S1005/Yes)、対象バンドを“releasable”から削除する(S1003)。そして、描画処理部224は、自己に割り当てられているバンドメモリの解放をバンドメモリ管理部201に要求すると共に、“waiter”に登録されている描画処理部224に、バンドメモリ202の解放を通知する(S1007)。
【0085】
S1007の処理が完了し、若しくは、若しくは、対象バンドが“releasable”に含まれていない場合(S1002/NO)、描画処理部224は処理を終了する。このような処理により、本実施形態に係るバンドメモリ202の解放処理が完了する。
【0086】
次に、本実施形態に係る画像処理部104の動作による効果について、図11(a)、(b)、(c)を参照して説明する。図11は、バンド#0〜バンド#4の夫々に対応する中間データ記憶部223にディスプレイリストが入力されるタイミングを示す図である。また、図11(b)は、図11(a)のタイミングに応じて、バンド#0〜バンド#4の夫々に対応する描画処理部224が描画処理を実行するタイミングを示す図である。また、図11(c)は、図11(a)のタイミングに応じて、図6において説明した従来技術の場合における描画処理のタイミングを示す図である。尚、図11(b)、(c)においては、各バンドに対応する描画処理部224の処理の開始を白丸で示し、処理の完了、即ち、バンドの開放を黒丸で示している。
【0087】
図11(a)に示すように、先ずバンド#0の(1)のディスプレイリストが生成され、これによりバンド#0に対応する描画処理部224にバンドメモリ202が割り当てられて図11(b)に示すように、バンド#0の描画処理が開始される。この際、バンドメモリ管理情報は、図12(a)の状態である。図11(a)、(b)に示すように、次のディスプレイリスト(2)〜(3)が生成される前に、バンド#0の描画処理が完了する。これにより、バンドメモリ管理情報は、図12(b)に示す状態になる。
【0088】
次に、図11(a)に示すように、バンド#1、#2、#4のディスプレイリスト(2)〜(4)が生成されると、優先度の順に先ずバンド#2の描画処理が開始される。これにより、バンドメモリ管理情報は、図12(c)に示す状態となる。続いてバンド#1の描画処理が開始される。
【0089】
バンド#1の描画処理が完了するまでに、新たにバンド#3のディスプレイリスト(5)が生成される。先に生成されたのはディスプレイリスト(4)であるが、優先度に従ってバンドメモリ管理情報は図12(d)に示す状態となるため、ディスプレイリスト(5)の描画処理が先に開始され、その後、ディスプレイリスト(4)の描画処理が実行される。
【0090】
バンド#4におけるディスプレイリスト(4)の描画処理が完了するタイミングにおいては、全ディスプレイリストのパーシングが完了しており、中間データ記憶部223にページ終了情報が記憶されている。従って、ディスプレイリスト(4)の描画処理が完了すると、バンド#4に対応する描画処理部224は処理を終了する。
【0091】
ディスプレイリスト(4)の描画処理が完了したタイミングにおいては、バンド#1にディスプレイリスト(6)が生成されており、バンド#2にディスプレイリスト(7)が生成されている。ここでは、優先度に従ってディスプレイリスト(7)の描画処理が先に実行され、それが完了するとページ終了情報に従って、バンド#2に対応する描画処理部224が処理を終了する。
【0092】
ディスプレイリスト(7)の描画処理が完了した後、バンド#1のディスプレイリスト(6)及びバンド#0、#3のページ終了情報が、夫々優先度に従って処理されることにより、図11(b)に示すように、1ページ分の印刷が完了し、全ての描画処理部224が処理を終了する。
【0093】
これに対して、図11(c)に示す従来技術に係る処理の場合、バンド#0の(1)のディスプレイリストが生成され、これによりバンド#0に対応する描画処理部224にバンドメモリ202が割り当てられてバンド#0の描画処理が開始された後、ディスプレイリスト(1)の描画処理が完了しても、パーシングが終了してページ終了情報が生成されるまでバンドメモリ202の割り当てが変更されないため、図11(c)に示す期間Tの間、何れの描画処理部224も描画処理を実行しない遊休期間となる。
【0094】
その後、全てのディスプレイリストが生成され、各バンドに対してページ終了情報が生成された後に、バンドメモリの割り当てが変更され、バンド#1〜バンド#4の順番に描画処理が実行される。その結果、従来技術に係る処理の場合、図11(b)に示す本実施形態に係る処理の場合よりも、遅いタイミングにおいて、1ページの印刷が終了する。
【0095】
このように、本実施形態に係る画像形成装置1においては、レンダラからページメモリに描画情報を入力する際のバッファとなるバンドメモリ202の数が並行して動作可能なレンダラである描画処理224の数よりも少ない場合において、各描画処理部224が、中間データ記憶部223にディスプレイリストが記憶されていない場合に、自己に割り当てられているバンドメモリ202を解放可能な状態とし、それを他の描画処理部224に通知する。これにより、ディスプレイリストの描画処理を待っている他の描画処理部224、即ち、“waiter”に登録されている描画処理部224は、解放されたバンドメモリ202の割り当てを受けて描画処理を開始することができる。
【0096】
従って、ディスプレイリストの生成状況に応じてバンドメモリ202の割り当てが変更され、図6若しくは図11(c)において説明したような遊休期間が生じることなく、効率的な処理が実行される。以上説明したように、本実施形態に係る技術を適用することにより、複数の演算手段を有する画像形成装置において、画像形成出力を実行するための画像処理の処理効率を向上することができる。
【0097】
尚、本実施形態においては、複数の描画処理部224が全てソフトウェァモジュールによって構成される、即ち、CPU10に含まれるいずれかのコアによって実現される場合を例として説明した。この他、描画処理部224として、ソフトウェアモジュールによって構成されるものと、ハードウェアによって構成されるものとが混在していても良い。ハードウェアによって構成される描画処理部であっても、ページメモリ203への描画情報の入力に際してバンドメモリ202の割り当てを要する場合は、上記実施形態を適用することにより、上記と同様の効果を得ることができる。
【0098】
また、上記実施形態においては、バンドメモリ202の容量として、1つの描画処理部224に割り当てられる分のみの容量が確保される場合を例としている。しかしながら、上記実施形態は、バンドメモリ202の割り当て可能数が、描画処理部224の数よりも少ない場合に効果がある。従って、バンドメモリ202の割り当て可能数は1つに限らず、描画処理部224の数よりも少ない数であればいくつでも良い
【符号の説明】
【0099】
1 画像形成装置、
10 CPU、
20 RAM、
30 ROM、
40 エンジン、
50 HDD、
60 I/F、
70 LCD、
80 操作部、
90 バス、
100 コントローラ、
101 主制御部、
102 エンジン制御部、
103 入出力制御部、
104 画像処理部、
105 操作表示制御部、
110 ADF、
120 スキャナユニット、
130 排紙トレイ、
140 ディスプレイパネル、
150 給紙テーブル、
160 プリントエンジン、
170 排紙トレイ、
180 ネットワークI/F、
200 PDLアプリケーション、
201 バンドメモリ管理部、
202 バンドメモリ、
203 ページメモリ、
210 PDL解析部、
220 描画コアモジュール、
221 描画コアモジュールI/F、
222 DL処理部、
223 中間データ記憶部、
224 描画処理部
【先行技術文献】
【特許文献】
【0100】
【特許文献1】特開2001−45304号公報

【特許請求の範囲】
【請求項1】
画像形成出力を実行するためのレンダリングを複数の処理手段によって実行可能な画像形成装置であって、
描画すべき図形毎に情報がまとめられたディスプレイリストを前記画像形成出力の実行命令である印刷ジョブに基づいて生成するパーサと、
前記生成されたディスプレイリストに基づいてレンダリングを実行する複数のレンダラと、
前記複数のレンダラの夫々に対応して設けられ、前記生成されたディスプレイリストを中間データとして記憶する複数の中間データ記憶部と、
前記レンダリングによって生成された描画情報を画像形成出力のページ毎に記憶するページメモリに入力するために保持するメモリバッファと、
前記メモリバッファを前記複数のレンダラのいずれかに割り当てるメモリバッファ管理部とを含み、
前記メモリバッファは、前記複数のレンダラのいずれかに割り当てられることにより、割り当てられた対象のレンダラによって生成された描画情報を保持して前記ページメモリに入力し、
前記レンダラは、前記中間データ記憶部に前記ディスプレイリストが記憶されることに応じて前記メモリバッファ管理部に前記メモリバッファの割り当てを要求し、前記メモリバッファが割り当てられている場合に前記レンダリングを実行し、前記中間データ記憶部に記憶されていた全てのディスプレイリストに基づくレンダリングが完了した場合、前記メモリバッファの割り当てを解除可能であることを前記メモリバッファ管理部に通知し、
前記メモリバッファ管理部は、前記メモリバッファの割り当てを解除可能であることを通知したレンダラに割り当てられている前記メモリバッファを、前記メモリバッファの割り当てを要求している他のレンダラに割り当てることを特徴とする画像形成装置。
【請求項2】
前記複数のレンダラは、画像形成出力のページの領域を複数に分割した夫々の分割領域のいずれかに関連付けられており、関連付けられた分割領域に表示される図形の前記ディスプレイリストに基づいてレンダリングを実行し、
前記メモリバッファ管理部は、夫々の前記分割領域の優先度に従って、前記メモリバッファの割り当てを要求している他のレンダラに前記メモリバッファを割り当てることを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記レンダラに対する前記メモリバッファの割り当てを管理する割り当て管理情報を管理する割り当て管理情報管理部を更に有し、
前記割り当て管理情報は、前記メモリバッファが割り当てられているレンダラを示す割り当て情報、前記メモリバッファの割り当てを要求しているレンダラを示す待機情報、前記メモリバッファの割り当てを解除可能であるレンダラを示す解除可能情報及び前記メモリバッファの割り当てが解除されたレンダラを示す解除情報を含むことを特徴とする請求項1に記載の画像形成装置。
【請求項4】
前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求して前記メモリバッファの割り当てを受けるレンダラを示す情報を、前記割り当て情報として前記割り当て管理情報に登録することを特徴とする請求項3に記載の画像形成装置。
【請求項5】
前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求して前記メモリバッファの割り当てを受けるために待機するレンダラを示す情報を、前記待機情報として前記割り当て管理情報に登録することを特徴とする請求項3または4に記載の画像形成装置。
【請求項6】
前記複数のレンダラは、画像形成出力のページの領域を複数に分割した夫々の分割領域のいずれかに関連付けられており、関連付けられた前記分割領域に表示される図形の前記ディスプレイリストに基づいてレンダリングを実行し、
前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求して前記メモリバッファの割り当てを受けるために待機するレンダラが複数ある場合、夫々の前記レンダラが対応している分割領域の優先度に従って、前記待機情報に登録される夫々のレンダラを示す情報を並び替え、
前記メモリバッファ管理部は、前記待機情報に登録されている前記レンダラを示す情報の並び順に従って前記メモリバッファの割り当てを要求している他のレンダラに前記メモリバッファを割り当てることを特徴とする請求項5に記載の画像形成装置。
【請求項7】
前記割り当て管理情報管理部は、前記メモリバッファの割り当てを解除可能であることを通知したレンダラを示す情報を、前記解除可能情報として前記割り当て管理情報に登録することを特徴とする請求項3乃至6いずれかに記載の画像形成装置。
【請求項8】
前記割り当て管理情報管理部は、前記他のレンダラに割り当てられることにより前記メモリバッファの割り当てが解除されたレンダラを示す情報を、前記解除情報として前記割り当て管理情報に登録することを特徴とする請求項3乃至7いずれかに記載の画像形成装置。
【請求項9】
前記割り当て管理情報管理部は、前記メモリバッファの割り当てを要求したレンダラを示す情報が前記解除可能情報として前記割り当て管理情報に登録されている場合、前記レンダラを示す情報を前記割り当て情報として前記割り当て管理情報に登録することを特徴とする請求項3乃至8いずれかに記載の画像形成装置。
【請求項10】
前記メモリバッファは、前記他のレンダラに割り当てが変更された場合、変更前の前記レンダラによって生成されて保持している描画情報を圧縮し、新たに割り当てられたレンダラによって生成される描画情報を保持することを特徴とする請求項1乃至9いずれかに記載の画像形成装置。
【請求項11】
画像形成出力を実行するためのレンダリングを複数の処理手段によって実行可能な画像形成装置の制御方法であって、
前記画像形成装置は、
描画すべき図形毎に情報がまとめられたディスプレイリストを前記画像形成出力の実行命令である印刷ジョブに基づいて生成するパーサと、
前記生成されたディスプレイリストに基づいてレンダリングを実行する複数のレンダラと、
前記複数のレンダラの夫々に対応して設けられ、前記生成されたディスプレイリストを記憶する複数の中間データ記憶部と、
前記レンダリングによって生成された描画情報を画像形成出力のページ毎に記憶するページメモリに入力するために保持するメモリバッファと、
前記メモリバッファを前記複数の描画情報生成部のいずれかに割り当てるメモリバッファ管理部とを含み、
前記レンダラが、前記中間データ記憶部に前記ディスプレイリストが記憶されることに応じて前記メモリバッファ管理部に前記メモリバッファの割り当てを要求し、前記メモリバッファが割り当てられている場合にレンダリングを実行し、前記中間データ記憶部に記憶されていた全てのディスプレイリストに基づいてレンダリングが完了した場合、前記メモリバッファの割り当てを解除可能であることを前記メモリバッファ管理部に通知し、
前記メモリバッファが、前記複数のレンダラのいずれかに割り当てられることにより、割り当てられた対象の前記レンダラによって生成された描画情報を保持して前記ページメモリに入力し、
前記メモリバッファ管理部が、前記メモリバッファの割り当てを解除可能であることを通知したレンダラに割り当てられている前記メモリバッファを、前記メモリバッファの割り当てを要求している他のレンダラに割り当てることを特徴とする画像形成装置の制御方法。
【請求項12】
画像形成出力を実行するためのレンダリングを複数の処理手段によって実行可能な画像形成装置の制御プログラムであって、
前記画像形成装置は、
描画すべき図形毎に情報がまとめられたディスプレイリストを前記画像形成出力の実行命令である印刷ジョブに基づいて生成するパーサと、
前記生成されたディスプレイリストに基づいてレンダリングを実行する複数のレンダラと、
前記複数のレンダラの夫々に対応して設けられ、前記生成されたディスプレイリストを記憶する複数の中間データ記憶部と、
前記生成された描画情報を画像形成出力のページ毎に記憶するページメモリに入力するために保持するメモリバッファと、
前記メモリバッファを前記複数のレンダラのいずれかに割り当てるメモリバッファ管理部とを含み、
前記中間データ記憶部に前記ディスプレイリストが記憶されることに応じて、その中間データ記憶部に対応する前記レンダラに前記メモリバッファを割り当てることを要求するステップと、
前記メモリバッファが割り当てられた前記レンダラに前記レンダリングを実行させるステップと、
前記レンダラが対応する前記中間データ記憶部に記憶されていた全てのディスプレイリストに基づく前記レンダリングが完了した場合、前記レンダラと前記メモリバッファとの割り当てを解除可能であることを通知するステップと、
前記複数のレンダラのいずれかに割り当てられている前記メモリバッファに、割り当てられた対象の前記レンダラによって生成された描画情報を保持して前記ページメモリに入力させるステップと、
前記メモリバッファとの割り当てを解除可能であることを通知したレンダラに割り当てられている前記メモリバッファを、前記メモリバッファの割り当てを要求している他のレンダラに割り当てるステップとを前記画像形成装置に実行させることを特徴とする画像形成装置の制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2011−83918(P2011−83918A)
【公開日】平成23年4月28日(2011.4.28)
【国際特許分類】
【出願番号】特願2009−236571(P2009−236571)
【出願日】平成21年10月13日(2009.10.13)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】