説明

画像処理装置、プログラム及び画像処理方法

【課題】メモリを有効活用して解析処理を複数のコアで並行させる。
【解決手段】PDL形式のデータを解析してDLデータ61を生成する解析処理、解析処理により生成されたDLデータ61に基づいて印字データ62を生成するラスタライズ処理又は解析処理及びラスタライズ処理を並行して行う複数のコアA、コアBを有するCPU21と、DLデータ61及び印字データ62を記憶するRAM22と、を備える画像処理装置1であって、コアA、コアBのうち一方は、情報管理テーブルからDL合計サイズ及び処理済みDL合計サイズを取得し、DL合計サイズ及び処理済みDL合計サイズから算出されたDL使用領域サイズ及び所定の設定値に基づいて、自コアが行う解析処理を中断してラスタライズ処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、プログラム及び画像処理方法に関する。
【背景技術】
【0002】
近年、プロセッサコア等の演算部(以下、コアと称す)が一つのパッケージ内に複数集積されて構成され、各コアに処理を分散させて並列処理を行うことにより、処理性能を向上させたマルチコアプロセッサが開発されている。
【0003】
特に、MFP(Multi Function Printer)やプリンタ等の画像形成装置において、このマルチコアプロセッサを用いて各処理を各コアに割り当てて並列処理を実行することにより、プリント処理の高速化を図ることが提案されている。
例えば、中間言語データに基づいて描画用のデータを生成する描画処理(ラスタライズ処理)を、複数のコアによって並列処理する画像形成装置が開示されている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−87137号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の画像形成装置は、中間言語データを生成する解析処理を一つのコアで行っている。このため、中間言語データの生成を完了するまで他のコアが処理待ち状態となり、複数のコアを有効活用することができない場合がある。
【0006】
そこで、解析処理を複数のコアで並行させることが考えられる。解析処理は、ページ記述言語(以下、PDL:Page Description Language)形式のデータを、ページ単位で解析して中間言語データを生成する処理である。
【0007】
複数のコアによって解析処理を行った場合、コア数に応じたページ分の中間言語データが生成されるため、中間言語データを記憶するために必要なメモリ容量が大きくなることが想定される。
しかし、大容量メモリの採用やメモリの増設は、画像形成装置のコスト増をもたらす。
メモリ容量を補うため、メモリに比して記憶容量に対するコストが安価な記憶装置(例えばハードディスクドライブ等)を用い、生成された中間言語データを当該記憶装置に退避する方法も考えられる。しかし、退避処理は画像形成に関係しない割り込み処理であり、画像形成装置の処理速度低下を招く。加えて、このような記憶装置は書き込み/読み出し速度がメモリに比して非常に遅いため、データの書き込み/読み出しに多大な時間を要することにより、画像形成装置のさらなる処理速度低下を招く。
よって、画像形成装置のコスト増や処理速度低下を生じさせずに解析処理を複数のコアで並行させるためには、メモリを有効活用する仕組みが要求されるものと想定される。
【0008】
本発明は、メモリを有効活用して解析処理を複数のコアで並行させることを目的とする。
【課題を解決するための手段】
【0009】
請求項1に記載の発明による画像処理装置は、ページ記述言語形式のデータを解析して中間言語データを生成する解析処理、前記解析処理により生成された中間言語データに基づいて描画用のデータを生成する描画処理又は前記解析処理及び前記描画処理を並行して行う複数の制御部と、前記中間言語データ及び描画用のデータを記憶する記憶部と、を備える画像処理装置であって、
前記複数の制御部の少なくともいずれか一つは、前記記憶部の空き容量に関する情報を取得し、前記記憶部の空き容量に関する情報及び所定の設定値に基づいて、前記複数の制御部のいずれか一つが行う前記解析処理を中断させて前記描画処理を行わせることを特徴とする。
【0010】
請求項2に記載の発明は、請求項1に記載の画像処理装置であって、前記ページ記述言語形式のデータは、複数のページを有し、
前記複数の制御部はそれぞれ、異なるページの前記解析処理を行い、
前記複数の制御部の少なくともいずれか一つは、前記複数の制御部がそれぞれ行う解析処理のページ番号を前記複数の制御部のそれぞれについて取得し、前記記憶部の空き容量に関する情報及び所定の設定値に基づいて、前記ページ番号のうち最も先頭のページ番号以外に対応するページの解析処理を行っている制御部が行う前記解析処理を中断させて前記描画処理を行わせることを特徴とする。
【0011】
請求項3に記載の発明は、請求項1又は2に記載の画像処理装置であって、前記記憶部の空き容量に関する情報は、前記中間言語データを記憶するために使用されている前記記憶部の記憶容量に関する情報を含み、前記所定の設定値は、前記中間言語データを記憶するために割り当て可能な前記記憶部の記憶容量における閾値を示すことを特徴とする。
【0012】
請求項4に記載の発明は、請求項3に記載の画像処理装置であって、前記記憶部の空き容量に関する情報は、前記解析処理によって生成された全ての前記中間言語データのデータ容量の合計値と、前記描画処理を施された後に削除された全ての前記中間言語データのデータ容量の合計値と、を含み、前記複数の制御部の少なくともいずれか一つは、前記解析処理によって生成された全ての前記中間言語データのデータ容量の合計値と、前記描画処理を施された後に削除された全ての前記中間言語データのデータ容量の合計値と、に基づいて、前記中間言語データを記憶するために使用されている前記記憶部の記憶容量を算出し、算出された前記中間言語データを記憶するために使用されている前記記憶部の記憶容量と前記所定の設定値とを比較することを特徴とする。
【0013】
請求項5に記載の発明によるプログラムは、複数の演算部を有するコンピュータを、
前記複数の演算部が、ページ記述言語形式のデータを解析して中間言語データを生成する解析処理、前記解析処理により生成された中間言語データに基づいて描画用のデータを生成する描画処理又は前記解析処理及び前記描画処理を並行して行う手段、前記中間言語データ及び描画用のデータを記憶する手段、として機能させ、さらに、前記複数の演算部の少なくともいずれか一つを、記憶部の空き容量に関する情報を取得し、前記記憶部の空き容量に関する情報及び所定の設定値に基づいて、前記複数の演算部のいずれか一つが行う前記解析処理を中断させて前記描画処理を行わせる手段、として機能させることを特徴とする。
【0014】
請求項6に記載の発明は、請求項5に記載のプログラムであって、前記ページ記述言語形式のデータは、複数のページを有し、前記複数の演算部はそれぞれ、異なるページの前記解析処理を行い、前記複数の演算部の少なくともいずれか一つを、前記複数の演算部がそれぞれ行う解析処理のページ番号を前記複数の演算部のそれぞれについて取得し、前記記憶部の空き容量に関する情報及び所定の設定値に基づいて、前記ページ番号のうち最も先頭のページ番号以外に対応するページの解析処理を行っている演算部が行う前記解析処理を中断させて前記描画処理を行わせる手段、として機能させることを特徴とする。
【0015】
請求項7に記載の発明は、請求項5又は6に記載のプログラムであって、前記記憶部の空き容量に関する情報は、前記中間言語データを記憶するために使用されている前記記憶部の記憶容量に関する情報を含み、前記所定の設定値は、前記中間言語データを記憶するために割り当て可能な前記記憶部の記憶容量における閾値を示すことを特徴とする。
【0016】
請求項8に記載の発明は、請求項7に記載のプログラムであって、前記記憶部の空き容量に関する情報は、前記解析処理によって生成された全ての前記中間言語データのデータ容量の合計値と、前記描画処理を施された後に削除された全ての前記中間言語データのデータ容量の合計値と、を含み、前記複数の演算部の少なくともいずれか一つを、前記解析処理によって生成された全ての前記中間言語データのデータ容量の合計値と、前記描画処理を施された後に削除された全ての前記中間言語データのデータ容量の合計値と、に基づいて、前記中間言語データを記憶するために使用されている前記記憶部の記憶容量を算出し、算出された前記中間言語データを記憶するために使用されている前記記憶部の記憶容量と前記所定の設定値とを比較する手段、として機能させることを特徴とする。
【0017】
請求項9に記載の発明による画像処理方法は、複数の制御部が、ページ記述言語形式のデータを解析して中間言語データを生成する解析処理、前記解析処理により生成された中間言語データに基づいて描画用のデータを生成する描画処理又は前記解析処理及び前記描画処理を並行して行う工程と、記憶部が前記中間言語データ及び描画用のデータを記憶する工程と、を有する画像処理方法であって、前記複数の制御部の少なくともいずれか一つが、前記記憶部の空き容量に関する情報を取得し、前記記憶部の空き容量に関する情報及び所定の設定値に基づいて、前記複数の制御部のいずれか一つが行う前記解析処理を中断させて前記描画処理を行わせる工程を有することを特徴とする。
【0018】
請求項10に記載の発明は、請求項9に記載の画像処理方法であって、前記ページ記述言語形式のデータは、複数のページを有し、前記複数の制御部はそれぞれ、異なるページの前記解析処理を行い、前記複数の制御部の少なくともいずれか一つが、前記複数の制御部がそれぞれ行う解析処理のページ番号を前記複数の制御部のそれぞれについて取得し、前記記憶部の空き容量に関する情報及び所定の設定値に基づいて、前記ページ番号のうち最も先頭のページ番号以外に対応するページの解析処理を行っている制御部が行う前記解析処理を中断させて前記描画処理を行わせることを特徴とする。
【0019】
請求項11に記載の発明は、請求項9又は10に記載の画像処理方法であって、前記記憶部の空き容量に関する情報は、前記中間言語データを記憶するために使用されている前記記憶部の記憶容量に関する情報を含み、前記所定の設定値は、前記中間言語データを記憶するために割り当て可能な前記記憶部の記憶容量における閾値を示すことを特徴とする。
【0020】
請求項12に記載の発明は、請求項11に記載の画像処理方法であって、前記記憶部の空き容量に関する情報は、前記解析処理によって生成された全ての前記中間言語データのデータ容量の合計値と、前記描画処理を施された後に削除された全ての前記中間言語データのデータ容量の合計値と、を含み、
前記複数の制御部の少なくともいずれか一つが、前記解析処理によって生成された全ての前記中間言語データのデータ容量の合計値と、前記描画処理を施された後に削除された全ての前記中間言語データのデータ容量の合計値と、に基づいて、前記中間言語データを記憶するために使用されている前記記憶部の記憶容量を算出し、算出された前記中間言語データを記憶するために使用されている前記記憶部の記憶容量と前記所定の設定値とを比較することを特徴とする。
【発明の効果】
【0021】
本発明によれば、メモリを有効活用して解析処理を複数のコアで並行させることができる。
【図面の簡単な説明】
【0022】
【図1】本発明による画像処理装置を有する画像形成装置を含むネットワーク構成図である。
【図2】コンピュータの主要構成を示すブロック図である。
【図3】画像形成装置の主要構成を示すブロック図である。
【図4】画像形成装置による画像処理の工程及び機能の一例を示す機能ブロック図である。
【図5】情報管理テーブルの一例を示す図である。
【図6】解析処理の中断を生じる経過の一例を示す図である。図6(A)は、コアAが1ページ目の解析処理を開始し、コアBが2ページ目の解析処理を開始する例を示す図である。図6(B)は、コアBが解析処理を中断して1ページ目のDLデータ61に基づくラスタライズ処理を行う例を示す図である。図6(C)は、コアAが1ページ目のDLデータ61に基づくラスタライズ処理をコアBと並行して実行する例を示す図である。
【図7】情報管理テーブルに基づく解析処理の中断判定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0023】
以下、図を参照して本発明の実施の形態の例を詳細に説明する。
図1は、本発明による画像処理装置を有する画像形成装置1を含むネットワーク構成図である。
【0024】
画像形成装置1、1、1は、回線3を介してコンピュータ2、2と通信可能に接続されている。
回線3は、画像形成装置1、1、1及びコンピュータ2、2によるネットワークを構成する。回線3は、コンピュータ2、2及び画像形成装置1、1、1を通信可能に接続するものであればその形態を問わない。例えば、回線3は、イーサネット(登録商標)、同軸ケーブル、光ファイバー等の有線接続回線や、無線通信を実現するための各種規格等、そのいずれか又は複数の組み合わせによってよい。また、回線3は、LAN(Local Area Network)、インターネット、その他のネットワーク規模を問わない。
【0025】
図2は、コンピュータ2の主要構成を示すブロック図である。
コンピュータ2、2はそれぞれ、CPU11、RAM12、ROM13、ストレージデバイス14、入力インタフェース(I/F)15、出力I/F16及び通信装置17を備え、これらの各構成はバス20により接続される。
【0026】
CPU11は、ROM13内に記憶されたプログラムと協働し、RAM12に展開されたプログラムやデータ等に従ってコンピュータ2の動作制御を行う。
RAM12は、CPU11の処理によって展開されたデータや、当該処理によって一時的に生じたデータ等を格納する。
ROM13は、CPU11によって読み出されるプログラムやデータ等を記憶する。
【0027】
ストレージデバイス14は、CPU11によって読み出されるプログラムやデータ等を記憶する。ストレージデバイス14は、プログラムやデータ等を書き換え可能な記憶装置である。ストレージデバイス14は、例えばフラッシュメモリやハードディスクドライブ、その他の書き換え可能な記憶装置又はそれらの記憶装置の組合せ等によって構成される。
【0028】
入力I/F15は、外部入力装置18による入力を受け付けるインタフェースである。外部入力装置18は、例えばキーボードやマウス等であり、ユーザの手動操作により入力指示が行われる。
【0029】
出力I/F16は、外部出力装置19に対する出力を行うインタフェースである。外部出力装置19は、例えばCRTや液晶ディスプレイ等の表示装置等であり、CPU11の処理結果に基づいた出力画面を表示する。
【0030】
通信装置17は、コンピュータ2を外部の通信回線(例えば回線3)と接続し、外部の機器との通信を可能とする。通信装置17は、例えばNIC(Network Interface Card)等であり、通信回線の種類に応じた接続を可能とする装置を用いることができる。
【0031】
図3は、画像形成装置1の主要構成を示すブロック図である。図1に示す画像形成装置1、1、1は全て同じ構成によるので、以下一つの画像形成装置1について説明する。
画像形成装置1は、CPU21、RAM22、ROM23、ストレージデバイス24、入力I/F25、画像印刷部26、通信装置27を備え、これらの各構成はバス30により接続される。
【0032】
CPU21は、ROM23内に記憶されたプログラムと協働し、RAM22に展開されたプログラムやデータ等に従って画像形成装置1の動作制御を行う。CPU21は、複数の演算部(コア)を有する。本実施形態のCPU21は、二つのコア(コアA、コアB)を有する。
RAM22は、CPU21の処理によって展開されたデータや、当該処理によって一時的に生じたデータ等を格納する記憶部として機能する。
ROM23は、CPU21によって読み出されるプログラムやデータ等を記憶する。
【0033】
ストレージデバイス24は、CPU21によって読み出されるプログラムやデータ等を記憶する。ストレージデバイス24は、プログラムやデータ等を書き換え可能な記憶装置である。ストレージデバイス24は、例えばフラッシュメモリやハードディスクドライブ、その他の書き換え可能な記憶装置又はそれらの記憶装置の組合せ等によって構成される。
【0034】
入力I/F25は、外部入力装置29等の入力装置による入力を受け付けるインタフェースである。外部入力装置29は、例えばタッチパネルディスプレイを有する入力パネル等であり、ユーザの手動操作により入力指示が行われる。
【0035】
画像印刷部26は、後述する印字データ62に基づいて画像形成(印刷)を行う。
画像印刷部26に採用可能な印刷方式として、例えば電子写真方式やインクジェット方式、熱転写方式、オフセット等が挙げられる。本実施形態では、画像印刷部26は、電子写真方式による画像形成を行うための構成を有する。
【0036】
通信装置27は、画像形成装置1を外部の通信回線(例えば回線3)と接続し、外部の機器との通信を可能とする。通信装置27は、例えばNIC(Network Interface Card)等であり、通信回線の種類に応じた接続を可能とする装置を用いることができる。
【0037】
次に、画像形成装置1による画像処理について説明する。
図4は、画像形成装置1による画像処理の工程及び機能の一例を示す機能ブロック図である。CPU21は、ROM23内に記憶されたプログラムと協働し、解析処理部52や描画処理部53として機能する。
まず、コンピュータ2からプリントジョブが送信される(図4の31)。プリントジョブは、PDL形式のデータを含む。複数のページに渡る印刷を行うためのプリントジョブのPDL形式のデータは、ページ単位に区切ることができる。
プリントジョブはネットワーク50を介して転送され、画像形成装置1のネットワーク受信処理部51によって受信される(図4の32)。ネットワーク50は、回線3によるコンピュータ2と画像形成装置1との通信接続により構築される。ネットワーク受信処理部51は、画像形成装置1の通信装置27による機能である。
【0038】
ネットワーク受信処理部51によって受信されたプリントジョブは、解析処理部52に対して入力され(図4の33)、解析処理部52によって解析処理を施される。解析処理部52は、PDL形式のデータに基づいて中間言語データを生成する。本実施形態の解析処理部52は、中間言語データとしてディスプレイリスト(以下、DL:Display List)データ61を生成する。
解析処理部52は、生成したDLデータ61をRAM22へ格納する(図4の34)。
【0039】
RAM22に1ページ分の印刷内容に対応した分のDLデータ61が格納されると、解析処理部52による処理から描画処理部53による処理へと移行する(図4の35)。なお、1ページ分の印刷内容とは、例えば所定サイズ(例えばA4サイズ等)の用紙1ページ分の印刷内容等を指す。
【0040】
描画処理部53は、中間言語データに基づいて描画用のデータを生成する描画処理(ラスタライズ処理)を行う(図4の36)。本実施形態の描画処理部53は、DLデータ61に基づき、描画用のデータとして印字データ62を生成する。
印字データ62は、それ以上の加工や処理を要することなく画像印刷部26による印刷出力を可能とする印刷用のビットマップデータ、或いはこのビットマップデータを圧縮した圧縮ビットマップデータである。印字データ62は、1ページを所定のバンド数に分割したバンド単位で生成される。1ページ分の印字データ62の生成完了後、当該ページに対応するDLデータ61は削除される。
描画処理部53は、生成した印字データ62をRAM22へ格納する(図4の37)。
【0041】
RAM22に格納された印字データ62は、画像印刷部26へ入力され(図4の38)、印刷出力される(図4の39)。印字データ62の印刷出力が終了すると、印刷出力された内容に対応する印字データ62がRAM22から削除される。
【0042】
プリントジョブによる印刷内容が複数ページにわたる場合、ページ数に応じて解析処理以降の処理が繰り返される。
このように、画像形成装置1のCPU21、RAM22及びROM23は、協働により、画像処理装置として機能する。
CPU21が有する複数のコアのそれぞれは、解析処理部52又は描画処理部53として機能することができる。つまり、複数のコアのそれぞれが行う解析処理同士、ラスタライズ処理同士又は解析処理とラスタライズ処理とを並行させることができる。
【0043】
次に、解析処理に伴うRAM22の記憶容量の管理について説明する。
CPU21は、情報管理テーブルを生成する。情報管理テーブルは、各コアが解析処理部52として機能するにあたり各コアが解析処理を行うページのページ番号と、RAM22の空き容量に関する情報とを管理するためのテーブルデータである。
【0044】
図5は、情報管理テーブルの一例を示す図である。
情報管理テーブルは、処理ページ番号、DL合計サイズ及び処理済みDL合計サイズのレコードを有する。
処理ページ番号は、各コアに割り当てているページ番号を示す。図5に示す例では、コアAが1ページ目の解析処理を割り当てられ、コアBが2ページ目の解析処理を割り当てられている。
DL合計サイズ及び処理済みDL合計サイズは、DLデータ61を記憶するために使用されているRAM22の記憶容量に関する情報を含む。DL合計サイズは、現在処理中のプリントジョブに基づいて生成された全てのDLデータ61のデータ容量の合計値である。処理済みDL合計サイズは、ラスタライズ処理を完了した全てのDLデータ61のデータ容量の合計値を示す。処理済みDL合計サイズは、削除されたDLデータ61のデータ容量の合計値を示す。
図5に示す例では、メガバイト(MB)単位でDL合計サイズ及び処理済DL合計サイズを管理しているが、単位は適宜変更することができる。
【0045】
CPU21の各コアはそれぞれ、解析処理部52として機能させるにあたり、異なるページの解析処理を行う。そして、各コアはそれぞれ、解析処理を行うページのページ番号を処理ページ番号に設定する。
各コアの解析処理に伴い、各コアが行う解析処理によって生成された全てのDLデータ61のデータ容量の合計値が、DL合計サイズに設定される。
また、各コアのラスタライズ処理に伴い、ラスタライズ処理を完了した全てのDLデータ61のデータ容量の合計値が、処理済みDL合計サイズに設定される。
【0046】
各コアはそれぞれ、DL合計サイズの値と処理済みDL合計サイズの値との差分を、DLデータ61を記憶するために使用されているRAM22の記憶容量(以下「DL使用領域サイズ」と記載)として算出する。
そして、各コアはそれぞれ、算出されたDL使用領域サイズと、所定の設定値とを比較する。
【0047】
所定の設定値は、DLデータ61を記憶するために割り当て可能なRAM22の記憶容量における閾値を示す値である。
所定の設定値には、任意の値を用いることができるが、RAM22の記憶容量以下であって、CPU21が行う他の処理に支障をきたさないDLデータ61の記憶容量の最大値(最大容量)に基づいて決定されることが望ましい。例えば、本実施形態では、DLデータ61を記憶するために割り当て可能なRAM22の最大容量として50[MB]が設定され、所定の設定値として30[MB]が設定されている。
DL使用領域サイズは、DLデータ61を記憶するために使用されているRAM22の記憶容量を示す値であるので、DL使用領域サイズの値の大小はRAM22の空き容量の大小と対応する。よって、DL使用領域サイズ算出の基となるDL合計サイズ及び処理済みDL合計サイズは、RAM22の空き容量に関する情報である。
【0048】
各コアはそれぞれ、DL使用領域サイズと所定の設定値との比較結果に基づいて、各コア自身(以下「自コア」と記載)が実行する解析処理を中断させてラスタライズ処理を実行させるための処理を行う。本実施形態では、DL使用領域サイズが所定の設定値以上となった場合に、処理ページ番号に設定されたページ番号のうち最も先頭のページ番号以外に対応するページの解析処理を行っているコアが、自コアの実行する解析処理を中断してラスタライズ処理を実行する。本実施形態では、解析処理を中断したコアは、RAM22に記憶されているDLデータ61のうち、最も先頭のページ番号に対応するDLデータ61の解析処理を行う。
【0049】
図6は、解析処理の中断を生じる経過の一例を示す図である。図6(A)は、コアAが1ページ目の解析処理を開始し、コアBが2ページ目の解析処理を開始する例を示す図である。図6(B)は、コアBが解析処理を中断して1ページ目のDLデータ61に基づくラスタライズ処理を行う例を示す図である。図6(C)は、コアAが1ページ目のDLデータ61に基づくラスタライズ処理をコアBと並行して実行する例を示す図である。
例えば、図6(A)に示すように、コアAが1ページ目の解析処理を開始し、コアBが2ページ目の解析処理を開始する場合について例示する。この場合、コアが二つであり、コアAは1ページ目、コアBは2ページ目の解析処理を行っているので、最も先頭のページ番号以外に対応するページの解析処理を行っているコアはコアBとなる。情報管理テーブルにおいて、コアAの処理ページ番号には1が、コアBの処理ページ番号には2が設定される。開始時点でのDL合計サイズ及び処理済みDL合計サイズは共に0[MB]である。
【0050】
各コアが並行して行う解析処理によって各ページのDLデータ61が生成され、RAM22に記憶される。DLデータ61はページ単位のデータとして生成されるが、生成途中のDLデータはリアルタイムにRAM22に記憶される。各コアによって生成されてRAM22に記憶されたDLデータ61のデータ容量は、情報管理テーブルのDL合計サイズに反映される。この時点では、処理済みDL合計サイズが0[MB]なので、DL使用領域サイズはDL合計サイズに等しい。
【0051】
DL使用領域サイズが所定の設定値(例えば30[MB])以上になると、図6(B)に示すように、コアBは、解析処理を中断して、既にRAM22に記憶されている1ページ目のDLデータ61に基づくラスタライズ処理を実行する。
また、既にRAM22に記憶されている1ページ目のDLデータ61に基づくラスタライズ処理の完了後、コアBは、当該ラスタライズ処理の実行前に行っていた解析処理を再開する。
【0052】
その後、コアAによる1ページ目の解析処理が完了すると、図6(C)に示すように、コアAは、当該1ページ目のDLデータ61に基づくラスタライズ処理を行う。このとき、コアBは、コアAと並行してラスタライズ処理を実行する。
【0053】
その後、1ページ目のラスタライズ処理が完了すると、1ページ目のDLデータ61が削除され、削除された1ページ目のDLデータ61のデータ容量が処理済みDL合計サイズに反映される。これによってDL使用領域サイズが所定の設定値を下回った場合、コアBは、行っていた2ページ目の解析処理を再開する。コアAは、3ページ目の解析処理を開始し、情報管理テーブルにおけるコアAの処理ページ番号を3とする。
以後、全てのページの印刷が完了するまで上記と同様の判定及び処理が繰り返される。
【0054】
図7のフローチャートを用いて、情報管理テーブルに基づく解析処理の中断判定処理の流れを示す。
中断判定処理は、解析処理中、CPU21の各コアのそれぞれによって行われる。
各コアはそれぞれ、解析処理に伴い、情報管理テーブルの各レコードを更新する(ステップS1)。各コアはそれぞれ、情報管理テーブルから全てのコアの処理ページ番号を取得する(ステップS2)。各コアはそれぞれ、ステップS2で取得した処理ページ番号のうち、自コアの処理ページ番号が最も先頭のページ番号以外であるか否かを判定する(ステップS3)。
【0055】
ステップS3の判定において、自コアの処理ページ番号が最も先頭のページ番号以外である場合(ステップS3:YES)、そのコアは、情報管理テーブルからDL合計サイズ及び処理済みDL合計サイズを取得する(ステップS4)。そのコアは、ステップS4で取得したDL合計サイズ及び処理済みDL合計サイズからDL使用領域サイズを算出する(ステップS5)。そして、そのコアは、ステップS5で算出したDL使用領域サイズが所定の設定値以上であるか否か判定する(ステップS6)。DL使用領域サイズが所定の設定値以上である場合(ステップS6:YES)、そのコアは、自コアの解析処理を中断し、RAM22に記憶されているDLデータ61のうち最も先頭のページ番号に対応するDLデータ61のラスタライズ処理へ移行し(ステップS7)、中断判定処理を終了する。
【0056】
ステップS3の判定において、自コアの処理ページ番号が最も先頭のページ番号である場合(ステップS3:NO)及びステップS6の判定において、DL使用領域サイズが所定の設定値以上でない場合(ステップS6)、中断判定処理を終了する。
【0057】
以上、本実施形態によれば、CPU21の各コアはそれぞれ、RAM22の空き容量に関する情報としてDL合計サイズ及び処理済みDL合計サイズを取得してDL使用領域サイズを算出し、DL使用領域サイズ及び所定の設定値に基づいて、コアの一つが解析処理を中断してラスタライズ処理を実行する。
これによって、各コアが並列して行う解析処理により生成されるDLデータ61のデータ容量は、コアの一つが解析処理を中断することにより、時間当たりのデータ量増加の度合いが低減される。よって、各コアが並列して行う解析処理により生成されるDLデータ61によってRAM22の空き容量が逼迫する可能性が大幅に低減される。
さらに、解析処理を中断したコアはラスタライズ処理を行う。これによって、既にRAM22に記憶されているDLデータ61に対するラスタライズ処理の完了を早めることができる。ラスタライズ処理を完了したDLデータ61は削除されるので、ラスタライズ処理の完了を早めることは、RAM22の空き領域を大きくすることに繋がる。
このように、コアの一つが解析処理を中断し、ラスタライズ処理を行うことにより、DLデータ61の生成に伴うRAM22の空き領域の減少スピードを緩和し、かつ、DLデータ61の削除を促進することができる。
このため、RAM22が大容量でなくとも、退避処理を生じさせずに、複数のコアが並行して解析処理を開始することができる。つまり、メモリを有効活用して解析処理を複数のコアで並行させることができる。
【0058】
さらに、CPU21の各コアはそれぞれ、全てのコアの処理ページ番号を取得し、最も先頭のページ番号以外に対応するページの解析処理を行っているコアが解析処理を中断してラスタライズ処理を実行する。
これによって、最も先頭のページ番号以外に対応するページの解析処理を行っているコアの解析処理が中断される。一方で、最も先頭のページ番号に対応するページの解析処理を行っているコアの解析処理は継続される。このように、各コアが自律して解析処理の中断の是非を判定することができる。
【0059】
さらに、所定の設定値は、DLデータ61を記憶するために割り当て可能なRAM22の記憶容量における閾値を示す。これによって、解析処理を中断させる基準値となるRAM22の記憶容量を予め定めることができる。
そして、情報管理テーブルには、DL使用領域サイズを算出することができるDL合計サイズ及び処理済みDL合計サイズが設定されている。これによって、残存するDLデータ61の記憶容量と所定の設定値とに基づいて、DLデータ61を生成する解析処理を中断するか否かの判定を行うことができる。
【0060】
さらに、最も先頭のページ番号以外に対応するページの解析処理を行っているコアが、DL合計サイズの値と処理済みDL合計サイズの値との差分をDL使用領域サイズとして算出し、算出されたDL使用領域サイズと所定の設定値とを比較する。
これによって、残存するDLデータ61の記憶容量と所定の設定値とに基づいて、DLデータ61を生成する解析処理を中断するか否かの判定を行うことができる。
また、DL使用領域サイズを算出するのは最も先頭のページ番号以外に対応するページの解析処理を行っているコアのみであるので、他のコアに割り込み処理を生じさせず、その処理能力を解析処理により多く割り振ることができる。
【0061】
なお、本発明の実施の形態は、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0062】
以下、本実施形態の変形例の一例を示す。
例えば、コアの数は二つに限らず、三つ以上でもよい。情報管理テーブルでは、コアの数に応じた処理ページ番号の管理がなされる。例えば、三つのコアを有するCPUの場合、DL使用領域サイズが所定の設定値以上になると、当該三つのコアにより解析処理を施されているページのページ番号のうち最も先頭のページ番号以外に対応するページの解析処理を行っている二つのコアが解析処理を中断してラスタライズ処理を行う。
また、一つのCPUが複数のコアを有する構成に限らず、複数のCPUを有する画像処理装置に本発明を適用することもできる。複数のCPUの一部又は全部が複数のコアを有していてもよい。
【0063】
最も先頭のページ番号以外に対応するページの解析処理を行っているコアの判別を、複数のコアのうち一部のコア、例えば特定の一つのコアに行わせるようにしてもよい。さらに、一部のコアに、RAM22の空き容量に関する情報及び所定の設定値に基づく解析処理の中断判定や、解析処理を行っている自コア又は他のコアの解析処理を中断させてラスタライズ処理を実行させる制御をさせるようにしてもよい。
【0064】
RAM22の空き容量に関する情報は、DL合計サイズ及び処理済みDL合計サイズに限らない。例えば、RAM22の空き容量そのものを示す情報でもよいし、DLデータ61に割り当て可能なRAM22の記憶容量に対する空き容量を示す情報でもよい。所定の設定値は、RAM22の空き容量に関する情報に応じたものを適宜設定することができる。
これらの変形例は、組み合わせて用いることができる。
【0065】
以上の説明では、本発明に係るプログラムのコンピュータ読み取り可能な媒体としてROMを使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、フラッシュメモリ等の不揮発性メモリ、CD−ROM等の可搬型記録媒体を適用することが可能である。
また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も本発明に適用される。
【符号の説明】
【0066】
1 画像形成装置
2 コンピュータ
3 回線
21 CPU
22 RAM
23 ROM
24 ストレージデバイス
25 入力I/F
26 画像印刷部
27 通信装置
29 外部入力装置
50 ネットワーク
51 ネットワーク受信処理部
52 解析処理部
53 描画処理部
61 DLデータ
62 印字データ

【特許請求の範囲】
【請求項1】
ページ記述言語形式のデータを解析して中間言語データを生成する解析処理、前記解析処理により生成された中間言語データに基づいて描画用のデータを生成する描画処理又は前記解析処理及び前記描画処理を並行して行う複数の制御部と、前記中間言語データ及び描画用のデータを記憶する記憶部と、を備える画像処理装置であって、
前記複数の制御部の少なくともいずれか一つは、前記記憶部の空き容量に関する情報を取得し、前記記憶部の空き容量に関する情報及び所定の設定値に基づいて、前記複数の制御部のいずれか一つが行う前記解析処理を中断させて前記描画処理を行わせることを特徴とする画像処理装置。
【請求項2】
前記ページ記述言語形式のデータは、複数のページを有し、
前記複数の制御部はそれぞれ、異なるページの前記解析処理を行い、
前記複数の制御部の少なくともいずれか一つは、前記複数の制御部がそれぞれ行う解析処理のページ番号を前記複数の制御部のそれぞれについて取得し、前記記憶部の空き容量に関する情報及び所定の設定値に基づいて、前記ページ番号のうち最も先頭のページ番号以外に対応するページの解析処理を行っている制御部が行う前記解析処理を中断させて前記描画処理を行わせることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記記憶部の空き容量に関する情報は、前記中間言語データを記憶するために使用されている前記記憶部の記憶容量に関する情報を含み、前記所定の設定値は、前記中間言語データを記憶するために割り当て可能な前記記憶部の記憶容量における閾値を示すことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記記憶部の空き容量に関する情報は、前記解析処理によって生成された全ての前記中間言語データのデータ容量の合計値と、前記描画処理を施された後に削除された全ての前記中間言語データのデータ容量の合計値と、を含み、
前記複数の制御部の少なくともいずれか一つは、前記解析処理によって生成された全ての前記中間言語データのデータ容量の合計値と、前記描画処理を施された後に削除された全ての前記中間言語データのデータ容量の合計値と、に基づいて、前記中間言語データを記憶するために使用されている前記記憶部の記憶容量を算出し、算出された前記中間言語データを記憶するために使用されている前記記憶部の記憶容量と前記所定の設定値とを比較することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
複数の演算部を有するコンピュータを、
前記複数の演算部が、ページ記述言語形式のデータを解析して中間言語データを生成する解析処理、前記解析処理により生成された中間言語データに基づいて描画用のデータを生成する描画処理又は前記解析処理及び前記描画処理を並行して行う手段、
前記中間言語データ及び描画用のデータを記憶する手段、
として機能させ、さらに、
前記複数の演算部の少なくともいずれか一つを、記憶部の空き容量に関する情報を取得し、前記記憶部の空き容量に関する情報及び所定の設定値に基づいて、前記複数の演算部のいずれか一つが行う前記解析処理を中断させて前記描画処理を行わせる手段、
として機能させることを特徴とするプログラム。
【請求項6】
前記ページ記述言語形式のデータは、複数のページを有し、
前記複数の演算部はそれぞれ、異なるページの前記解析処理を行い、
前記複数の演算部の少なくともいずれか一つを、前記複数の演算部がそれぞれ行う解析処理のページ番号を前記複数の演算部のそれぞれについて取得し、前記記憶部の空き容量に関する情報及び所定の設定値に基づいて、前記ページ番号のうち最も先頭のページ番号以外に対応するページの解析処理を行っている演算部が行う前記解析処理を中断させて前記描画処理を行わせる手段、として機能させることを特徴とする請求項5に記載のプログラム。
【請求項7】
前記記憶部の空き容量に関する情報は、前記中間言語データを記憶するために使用されている前記記憶部の記憶容量に関する情報を含み、前記所定の設定値は、前記中間言語データを記憶するために割り当て可能な前記記憶部の記憶容量における閾値を示すことを特徴とする請求項5又は6に記載のプログラム。
【請求項8】
前記記憶部の空き容量に関する情報は、前記解析処理によって生成された全ての前記中間言語データのデータ容量の合計値と、前記描画処理を施された後に削除された全ての前記中間言語データのデータ容量の合計値と、を含み、
前記複数の演算部の少なくともいずれか一つを、前記解析処理によって生成された全ての前記中間言語データのデータ容量の合計値と、前記描画処理を施された後に削除された全ての前記中間言語データのデータ容量の合計値と、に基づいて、前記中間言語データを記憶するために使用されている前記記憶部の記憶容量を算出し、算出された前記中間言語データを記憶するために使用されている前記記憶部の記憶容量と前記所定の設定値とを比較する手段、として機能させることを特徴とする請求項7に記載のプログラム。
【請求項9】
複数の制御部が、ページ記述言語形式のデータを解析して中間言語データを生成する解析処理、前記解析処理により生成された中間言語データに基づいて描画用のデータを生成する描画処理又は前記解析処理及び前記描画処理を並行して行う工程と、記憶部が前記中間言語データ及び描画用のデータを記憶する工程と、を有する画像処理方法であって、
前記複数の制御部の少なくともいずれか一つが、前記記憶部の空き容量に関する情報を取得し、前記記憶部の空き容量に関する情報及び所定の設定値に基づいて、前記複数の制御部のいずれか一つが行う前記解析処理を中断させて前記描画処理を行わせる工程を有することを特徴とする画像処理方法。
【請求項10】
前記ページ記述言語形式のデータは、複数のページを有し、
前記複数の制御部はそれぞれ、異なるページの前記解析処理を行い、
前記複数の制御部の少なくともいずれか一つが、前記複数の制御部がそれぞれ行う解析処理のページ番号を前記複数の制御部のそれぞれについて取得し、前記記憶部の空き容量に関する情報及び所定の設定値に基づいて、前記ページ番号のうち最も先頭のページ番号以外に対応するページの解析処理を行っている制御部が行う前記解析処理を中断させて前記描画処理を行わせることを特徴とする請求項9に記載の画像処理方法。
【請求項11】
前記記憶部の空き容量に関する情報は、前記中間言語データを記憶するために使用されている前記記憶部の記憶容量に関する情報を含み、前記所定の設定値は、前記中間言語データを記憶するために割り当て可能な前記記憶部の記憶容量における閾値を示すことを特徴とする請求項9又は10に記載の画像処理方法。
【請求項12】
前記記憶部の空き容量に関する情報は、前記解析処理によって生成された全ての前記中間言語データのデータ容量の合計値と、前記描画処理を施された後に削除された全ての前記中間言語データのデータ容量の合計値と、を含み、
前記複数の制御部の少なくともいずれか一つが、前記解析処理によって生成された全ての前記中間言語データのデータ容量の合計値と、前記描画処理を施された後に削除された全ての前記中間言語データのデータ容量の合計値と、に基づいて、前記中間言語データを記憶するために使用されている前記記憶部の記憶容量を算出し、算出された前記中間言語データを記憶するために使用されている前記記憶部の記憶容量と前記所定の設定値とを比較することを特徴とする請求項11に記載の画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate