(57)【要約】【課題】複数の演算部を用いてラスタライズ処理を実行する際のメモリ使用量の増大を抑えること。【解決手段】ページ記述言語データに基づいてバンド単位で生成された中間データをラスタライズ処理する場合に使用されるワーク領域を有するＲＡＭ１１と、複数のコアを有し、中間データに対して行うラスタライズ処理を複数のコアを用いて実行する制御部１０と、を備えた画像処理装置であって、制御部１０は、コアの数に基づいて各中間データを構成するバンドを複数に分割して複数の分割領域を生成し、コア毎にラスタライズ処理を行う分割領域を割り当てる画像処理装置。【選択図】図５
2011158951.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語形式のデータに基づいてバンド単位で生成された中間言語形式のデータをラスタライズ処理する場合に使用される領域を有する記憶部と、複数の演算部を有し、前記中間言語形式のデータに対して行うラスタライズ処理を前記複数の演算部を用いて実行する制御部と、を備えた画像処理装置であって、
前記制御部は、
前記演算部の数に基づいて各中間言語形式のデータを構成するバンドを複数に分割して複数の分割領域を生成し、前記演算部毎にラスタライズ処理を行う分割領域を割り当てること、
を特徴とする画像処理装置。
【請求項２】
前記制御部は、
前記複数の演算部のうち、前記ラスタライズ処理を実行可能な前記演算部の数を取得し、当該取得した演算部の数に応じて前記バンド毎に複数に分割して複数の分割領域を生成すること、
を特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記バンドは、予め設定された複数のラインから構成されており、
前記制御部は、
前記バンドを構成するライン数と前記演算部の数との除算値に基づいて前記分割領域を構成するライン数を決定すること、
を特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記制御部は、
前記演算部それぞれに対して、前記バンド毎に当該バンドを構成する複数の分割領域のうちいずれか一つの分割領域を設定し、前記演算部毎にラスタライズ処理を行う分割領域として当該設定した分割領域を割り当てること、
を特徴とする請求項１から３のいずれか一項に記載の画像処理装置。
【請求項５】
前記制御部は、
１ページ分の中間言語形式のデータを構成する複数の分割領域それぞれに対して優先順位を設定し、前記演算部毎にラスタライズ処理を行う分割領域として、ラスタライズ処理されていない最も優先順位の高い分割領域を割り当てること、
を特徴とする請求項１から３のいずれか一項に記載の画像形成装置。
【請求項６】
ページ記述言語に基づいてバンド単位で生成された中間言語形式のデータに対して行うラスタライズ処理を複数の演算部を用いて実行するコンピュータを、
前記演算部の数に基づいて各中間言語形式のデータを構成するバンドを複数に分割して複数の分割領域を生成し、前記演算部毎にラスタライズ処理を行う分割領域を割り当てる制御手段、
として機能させるプログラム。
【請求項７】
ページ記述言語に基づいてバンド単位で生成された中間言語形式のデータに対して行うラスタライズ処理を複数の演算部を用いて実行する画像処理方法であって、
前記演算部の数に基づいて各中間言語形式のデータを構成するバンドを複数に分割して複数の分割領域を生成し、前記演算部毎にラスタライズ処理を行う分割領域を割り当てる制御工程を含むこと、
を特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、プログラム及び画像処理方法に関する。
【背景技術】
【０００２】
近年、プロセッサコア等の演算部（以下、コアと称す）が一つのパッケージ内に複数集積されて構成され、各コアに処理を分散させて並列処理を行うことにより、処理性能を向上させたマルチコアプロセッサが開発されている。
【０００３】
プリンタ、コピー機、ファクシミリ装置又はこれらの複合機等の画像形成装置においては、このマルチコアプロセッサを用いて並列処理を実行することにより、プリント処理の高速化を図ることが提案されている。
【０００４】
このようなマルチコアプロセッサを用いた画像形成装置において、プリント処理を実行する際には、１ページのイメージデータを複数のバンドに分割し、各バンドそれぞれに各コアを割り当てて並列に圧縮処理や伸長処理を行う技術がある。
【０００５】
また、ビットマップ化されたイメージを構成する少なくとも一つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、当該部分領域のそれぞれに複数のプロセッサのうち少なくとも一つを割り当てて、並列に圧縮・伸長処理を行う技術が開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１０８１１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
更に、ビットマップデータの生成処理の効率化を図るために、ページ記述言語（ＰＤＬ：page description language）形式のデータを複数のバンドに分割された中間言語（ＤＬ：Display List）形式のデータに変換し、当該ＤＬデータの各バンドそれぞれを各コアに割り当てて並列にラスタライズ処理を行うことが考えられている。
【０００８】
しかしながら、上述のようなラスタライズ処理を行う際には、バンドを構成するライン数に応じた容量のワーク領域がバンド毎に必要となる。そのため、各バンドそれぞれを各コアに割り当てて同時にラスタライズ処理を実行させると、同時に処理が実行されているバンド数分のワーク領域が必要となる。従って、コア数の増加に伴ってワーク領域が増大し、ワーク領域として使用するメモリ容量が増大するという問題が生じる。
【０００９】
本発明の課題は、上記問題に鑑みて、複数の演算部を用いてラスタライズ処理を実行する際のメモリ使用量の増大を抑えることである。
【課題を解決するための手段】
【００１０】
請求項１に記載の発明は、ページ記述言語形式のデータに基づいてバンド単位で生成された中間言語形式のデータをラスタライズ処理する場合に使用される領域を有する記憶部と、複数の演算部を有し、前記中間言語形式のデータに対して行うラスタライズ処理を前記複数の演算部を用いて実行する制御部と、を備えた画像処理装置であって、前記制御部は、前記演算部の数に基づいて各中間言語形式のデータを構成するバンドを複数に分割して複数の分割領域を生成し、前記演算部毎にラスタライズ処理を行う分割領域を割り当てること、を特徴とする画像処理装置である。
【００１１】
請求項２に記載の発明は、請求項１に記載の画像処理装置において、前記制御部は、前記複数の演算部のうち、前記ラスタライズ処理を実行可能な前記演算部の数を取得し、当該取得した演算部の数に応じて前記バンド毎に複数に分割して複数の分割領域を生成すること、を特徴とする。
【００１２】
請求項３に記載の発明は、請求項１又は２に記載の画像処理装置において、前記バンドは、予め設定された複数のラインから構成されており、前記制御部は、前記バンドを構成するライン数と前記演算部の数との除算値に基づいて前記分割領域を構成するライン数を決定すること、を特徴とする。
【００１３】
請求項４に記載の発明は、請求項１から３のいずれか一項に記載の画像処理装置において、前記制御部は、前記演算部それぞれに対して、前記バンド毎に当該バンドを構成する複数の分割領域のうちいずれか一つの分割領域を設定し、前記演算部毎にラスタライズ処理を行う分割領域として当該設定した分割領域を割り当てること、を特徴とする。
【００１４】
請求項５に記載の発明は、請求項１から３のいずれか一項に記載の画像形成装置において、前記制御部は、１ページ分の中間言語形式のデータを構成する複数の分割領域それぞれに対して優先順位を設定し、前記演算部毎にラスタライズ処理を行う分割領域として、ラスタライズ処理されていない最も優先順位の高い分割領域を割り当てること、を特徴とする。
【００１５】
請求項６に記載の発明は、ページ記述言語に基づいてバンド単位で生成された中間言語形式のデータに対して行うラスタライズ処理を複数の演算部を用いて実行するコンピュータを、前記演算部の数に基づいて各中間言語形式のデータを構成するバンドを複数に分割して複数の分割領域を生成し、前記演算部毎にラスタライズ処理を行う分割領域を割り当てる制御手段、として機能させるプログラムである。
【００１６】
請求項７に記載の発明は、ページ記述言語に基づいてバンド単位で生成された中間言語形式のデータに対して行うラスタライズ処理を複数の演算部を用いて実行する画像処理方法であって、前記演算部の数に基づいて各中間言語形式のデータを構成するバンドを複数に分割して複数の分割領域を生成し、前記演算部毎にラスタライズ処理を行う分割領域を割り当てる制御工程を含むこと、を特徴とする画像処理方法である。
【発明の効果】
【００１７】
請求項１、６、７に記載の発明によれば、制御部を構成する演算部の数に基づいて各中間言語形式のデータを構成するバンドを複数に分割して複数の分割領域を生成でき、演算部毎にラスタライズ処理を行う分割領域を割り当てることができる。そのため、１つの演算部が１度にラスタライズ処理を行う中間言語形式のデータのサイズが小さくなり、１つの演算部がラスタライズ処理を行う場合に使用される記憶部の領域を小さくできるため、複数の演算部を用いてラスタライズ処理を実行する際のメモリ使用量の増大を抑えることができる。
【００１８】
請求項２に記載の発明によれば、請求項１と同様の効果を得られるのは勿論のこと、ラスタライズ処理の実行可能な演算部の数に応じて１つのバンドを複数に分割して複数の分割領域を生成することができる。
【００１９】
請求項３に記載の発明によれば、請求項１又は２と同様の効果を得られるのは勿論のこと、バンドを構成するライン数と演算部の数との除算値に基づいて分割領域を構成するライン数を決定することができる。
【００２０】
請求項４に記載の発明によれば、請求項１から３のいずれか一項と同様の効果を得られるのは勿論のこと、演算部毎にラスタライズ処理を行う分割領域として、バンド毎に当該バンドを構成する複数の分割領域のうちいずれか一つの設定された分割領域を割り当てることができるため、１つのバンドのラスタライズ処理を複数の演算部で分担して実行することができ、各演算部がラスタライズ処理を行う場合に使用するメモリ使用量を低減できるとともに、１つのバンドのラスタライズ処理に要する時間の短縮を図ることができる。
【００２１】
請求項５に記載の発明によれば、請求項１から３のいずれか一項と同様の効果を得られるのは勿論のこと、演算部毎にラスタライズ処理を行う分割領域として、ラスタライズ処理されていない最も優先順位の高い分割領域を割り当てることができるため、1ページ分の中間言語形式のデータを構成する複数の分割領域のラスタライズ処理を、複数の演算部で分担して実行することができ、各演算部がラスタライズ処理を行う場合に使用するメモリ使用量を低減できるとともに、１ページのラスタライズ処理に要する時間の短縮を図ることができる。
【図面の簡単な説明】
【００２２】
【図１】画像処理装置の制御ブロック図である。
【図２】起動処理のフローチャートである。
【図３】初期化処理のフローチャートである。
【図４】受信したジョブデータに基づいてビットマップデータを生成する処理のフローチャートである。
【図５】ラスマスターのフローチャートである。
【図６】１ページ分の中間データを構成する各バンドを複数の分割領域に分けたイメージ図である。
【図７】固定配分処理のイメージ図である。
【図８】順次配分処理のイメージ図である。
【図９】透過処理機能を有するページ記述言語形式のデータの透過処理のイメージ図である。
【図１０】１バンド分のデータの透過処理のイメージ図である。
【発明を実施するための形態】
【００２３】
以下、図を参照して本発明の実施の形態を詳細に説明する。
まず、構成を説明する。
図１に、本実施の形態における画像処理装置１の制御ブロック図を示す。
図１に示すように、画像処理装置１は、制御部１０、ＲＡＭ（Random Access Memory）１１、ＲＯＭ（Read Only Memory）１２、ＨＤＤ（Hard Disk Drive）１３、操作部１４、表示部１５、画像読取部１６、プリント部１７、通信部１８等を備え、各部はバス１９等により接続されて構成されている。
【００２４】
本実施の形態における画像処理装置１は、読取対象原稿（以下、原稿と称す）から画像を読み取り、読み取った画像を処理対象紙としての枚葉紙等の記録媒体（以下、用紙と称す）に画像形成するコピー機能や、パーソナルコンピュータ等の外部装置からジョブデータを受信し、受信したジョブデータに基づいて用紙上に画像を形成して出力するプリンタ機能等を備えた画像形成装置としての機能も有する。
【００２５】
制御部１０は、プロセッサコア等の演算部（以下、コアと称す）を複数備えて構成されたマルチコアプロセッサを用いて構成される。なお、制御部１０は、コアに替えてＣＰＵを集合させ、マルチコアプロセッサと同等の機能を発揮するように構成されてもよい。
【００２６】
制御部１０は、ＲＯＭ１２内に格納されている各種処理プログラムやデータをＲＡＭ１１やＨＤＤ１３に展開し、当該プログラムに基づいて画像処理装置１の各部の動作を集中制御する。例えば、操作部１４や通信部１８と接続された外部装置から入力される指示信号に従って、コピーモード、プリントモード、スキャナモードを切り替え、各モードに対する処理プログラムを読み出して、複写、印刷、画像データの読取等の制御を行う。
【００２７】
また、制御部１０は、ＲＡＭ１１、ＲＯＭ１２又はＨＤＤ１３との協働により、ポストスクリプト（登録商標）やＰＣＬ等のページ記述言語形式の画像データ（以下、ＰＤＬデータと称す。）や、ＰＤＦ（Portable Document Format）やＸＰＬ（XML Paper Specification）等の記述言語形式の画像データ（以下、ＰＤＬデータ及びＰＤＦ，ＸＰＬ等の画像データを総称してページ記述言語データと称す。）に基づいて、形式の異なる複数のデータの生成及び保存を行う。
【００２８】
詳しくは、制御部１０は、まず、ページ記述言語データを解釈して当該ページ記述言語データとビットマップ形式のデータ（以下、ビットマップデータと称す。）との間の中間言語形式のデータ（以下、中間データと称す。）をバンド単位で生成してＲＡＭ１１内に保存させ、また、中間データに基づいてビットマップデータを生成してＲＡＭ１１に保存させる。
【００２９】
中間データは、ページ記述言語データに含まれるオブジェクト（テキストデータ、グラフィックスデータ、イメージデータ等）の特徴に応じて生成されるデータである。例えば、テキストデータやグラフィックスデータの中間データとしてはベクタ形式のデータ、イメージデータの中間データとしてはイメージ形式のデータ、を挙げることができる。
【００３０】
ＲＡＭ１１は、画像形成に係るデータ等、各種プログラムで処理されたデータ等を一時的に記憶する。ＲＡＭ１１に替えて、例えば、ＨＤＤ(Hard Disk Drive)、ＭＲＡＭ（Magnetic Random Access Memory）又はフラッシュメモリなどの読み書き可能な揮発性又は不揮発性記憶媒体を用いてもよい。
【００３１】
また、本実施の形態のＲＡＭ１１は、バンド単位で生成された中間データに対してラスタライズ処理をしてビットマップデータを生成する場合に使用されるラスタライズ領域を複数含んだワーク領域を有する記憶部として機能する。
なお、ＲＡＭ１１は、制御基板等に固定的に設けられるもの、若しくは着脱自在に装着するものであっても良い。
【００３２】
ＲＯＭ１２は、画像形成に係る各種処理プログラム、画像形成に係るデータ等、各種プログラムで処理されたデータ等を記憶する。また、ＲＯＭ１２は、制御部１０及びＲＡＭ１１との協働により本実施の形態の各処理を実現させるためのプログラムやデータを記憶している。ＲＯＭ１２に替えて、例えば、磁気的、光学的記憶媒体又は半導体メモリ等の読み出し可能な不揮発性の記憶媒体を用いてもよい。また、このＲＯＭ１２は、制御基板等に固定的に設けられるもの、若しくは着脱自在に装着するものであっても良い。
【００３３】
例えば、ＲＯＭ１２には、通信部１８を介して入力されるジョブデータを受信して、ＲＡＭ１１内に記憶させる機能を実現させるためのプログラムやデータが記憶されている。また、ＲＯＭ１２には、ＲＡＭ１１内に記憶されているジョブデータを読み出し、読み出されたジョブデータの電子データとビットマップデータとの間の形式の中間データをバンド単位で生成してＲＡＭ１１内に保存させる機能を実現させるためのプログラムやデータが記憶されている。
【００３４】
更に、ＲＯＭ１２には、制御部１０に搭載されている全てのコア数の情報と、バンド単位で生成される中間データのライン数（バンドライン数）が予め記憶されている。
また、ＲＯＭ１２には、制御部１０が備えるコアの数に基づいて、各バンドの中間データを複数に分割して複数の分割領域を生成し、コア毎にラスタライズ処理を行う分割領域を割り当てるラスタライズマスター処理（以下、ラスマスターと称す）を実行するためのプログラムやデータが記憶されている。
また、ＲＯＭ１２には、割り当てられた中間データに基づいて、ビットマップデータを生成して保存させるラスタライズスレーブ処理（以下、ラススレーブと称す）を実行するためのプログラムやデータが記憶されている。
【００３５】
更に、ＲＯＭ１２には、生成された１ページ分のビットマップデータをプリント部１７に出力して用紙上に画像を形成させ、また、出力されたビットマップデータをＲＡＭ１１から消去（解放）する機能を実現させるためのプログラムやデータが記憶されている。
なお、本実施の形態では、ビットマップデータの出力先をプリント部１７として説明するが、これに限らず、例えば、出力先を表示部１５としてビットマップデータに基づく画像を表示部に表示させてもよい。
【００３６】
ＨＤＤ１３は、オペレーションプログラムや各種のアプリケーションプログラム及びジョブデータ等の各種データを所定のアドレスと対応付けて記憶する。
なお、ＨＤＤ１３に替えて、ＣＦ（Compact Flash）等を用いてもよく、読み書き可能な不揮発性の記憶媒体であればよい。
【００３７】
操作部１４は、赤外線式や静電式のタッチパネル及びハードキーから構成される。タッチパネルは、ＬＣＤ（Liquid Crystal Display）等から構成される表示部１５に重畳して設けられる。表示部１５には、画像処理装置１の各種操作画面や各種操作案内が表示される。
【００３８】
画像読取部１６は、自動原稿送り部と読取部とを備えて構成されている。
自動原稿送り部は、ＡＤＦ（Auto Document Feeder）と称されるものであり、原稿トレイに積載される原稿を読取部の読取箇所に一枚ずつ搬送する。
読取部は、光源、レンズ、コンタクトガラス、イメージセンサ等が設けられたスキャナを備えて構成され、原稿に照射した光の反射光を結像して光電変換することにより原稿の画像を読み取り、プリント部１７に出力する。ここで、画像とは、図形や写真等のイメージデータに限らず、文字や記号等のテキストデータ等も含む意である。
【００３９】
プリント部１７は、電子写真プロセス等により各種の画像形成を行う公知の画像形成機構から構成されるものであり、各色（例えば、イエロー（Ｙ）、マゼンダ（Ｍ）、シアン（Ｃ）、ブラック（Ｋ））毎のビットマップデータに基づく画像を用紙等に形成して出力する。
【００４０】
通信部１８は、画像処理装置１を外部の通信回線と接続させて、外部装置との通信を可能とする。通信部１８は、例えばＮＩＣ（Network Interface Card）等であり、通信回線の種類に応じた接続を可能とする装置を用いることができる。
【００４１】
次に、本実施の形態の動作を説明する。
図２に、本実施の形態における起動処理のフローチャートを示す。
図２に示す起動処理は、制御部１０を構成する複数のコアのうちいずれか一つと画像処理装置内の各部との協働により実行されるものとする。
【００４２】
まず、画像処理装置１に電源が供給されると、画像処理装置内の各部が起動され（ステップＳ１）、初期化処理が実行される（ステップＳ２）。初期化処理後、画像処理装置１は、ジョブデータの受信待機状態となり（ステップＳ３）、起動処理が終了される。
【００４３】
図３に、ステップＳ２で実行される初期化処理のフローチャートを示す。
ラスマスターを実行するためのプログラムがＲＡＭ１１に展開され、ラスマスターが起動する（ステップＳ１１）。起動したラスマスターは処理開始のタイミングまで待機状態となる。また、制御部１０に搭載されている全てのコア数の情報がＲＯＭ１２から取得される（ステップＳ１２）。
【００４４】
ステップＳ１２で取得されたコア数がＲＡＭ１１に展開されて起動しているラススレーブ数より多いか否かが判別される（ステップＳ１３）。
【００４５】
コア数がラススレーブ数よりも多い場合（ステップＳ１３；ＹＥＳ）、ラススレーブを実行するためのプログラムがＲＡＭ１１に展開され、ラススレーブが１つ起動し（ステップＳ１４）、ステップＳ１３の処理に進む。起動したラススレーブは、処理開始のタイミングまで待機状態となる。
【００４６】
コア数がラススレーブ数以下の場合（ステップＳ１３；ＮＯ）、初期化処理が終了される。
【００４７】
即ち、ステップＳ２で実行される初期化処理では、制御部１０が備えるコア数に応じた数のラススレーブを実行するタスクが立ち、当該タスクが実行待ち状態となる。例えば、制御部１０が４つのコアを備えている場合には、ラススレーブを実行するタスクが４つ立つこととなる。
【００４８】
図４に、受信したジョブデータに基づいてビットマップデータを生成する処理のフローチャートを示す。図４に示す処理は、制御部１０を構成する複数のコアのうちいずれか一つと画像処理装置内の各部との協働により実行されるものとする。
【００４９】
まず、制御部１０に搭載されている複数のコアのうち、ラスタライズ処理を実行するために利用可能なコア数が取得される（ステップＳ２１）。
【００５０】
ステップＳ２１では、制御部１０を構成する複数の各コアの稼動状況を管理するタスクから利用可能なコア数が取得されたり、ＲＡＭ１１内の予め設定された領域に制御部１０を構成する複数の各コアの利用状況を示すデータが保存及び更新されるテーブルを設け、当該テーブルを参照することにより利用可能なコア数が取得されたりする。
【００５１】
また、１つのバンドを構成するラインの数（バンドライン数）がＲＯＭ１２から取得される（ステップＳ２２）。
バンドは、複数のラインによって構成されている。バンドライン数は、画像処理装置毎に個別予め設定されており、ＲＯＭ１２に予め記憶されている。ラインとは、画像を構成する画素を所定の一方向（例えば画像の主走査方向）に並べた画素の集合であり、所定の一方向と直交する他方向（例えば画像の副走査方向）にラインを並べて組み合わせることで画像が構成される。
【００５２】
利用可能コア数とバンドライン数とが取得されると、利用可能コア数に応じて複数に分割されることにより生成される各分割領域を構成するライン数が決定される（ステップＳ２３、Ｓ２４）。
【００５３】
まず、ステップＳ２３では、バンドライン数が利用可能コア数で除算され、除算値が算出される。ステップＳ２３で算出される除算値は、整数の商と剰余（余り）とを含む。
【００５４】
そして、ステップS２４では、各分割領域を構成する仮のライン数が商の値に設定される。このとき、余りがある場合には、当該余りが示すライン数が、いずれかの分割領域に均等に配分される。
【００５５】
例えば、バンドライン数が２５６、利用可能コア数が３である場合、ステップＳ２３で算出される除算値は、商が８５、余りが１となる。この場合、１つのバンドを利用可能コア数である３つの分割領域に分割しているため、この３つの分割領域のうちいずれか一つの分割領域に余り１のラインが配分される。従って、複数の分割領域は、８５ラインから成る２つの分割領域と、８６ラインからなる１つの分割領域とになる。
【００５６】
バンドを構成する複数の分割領域それぞれのライン数が決定されると、解析処理が実行され（ステップＳ２５）、１ページ分の中間データがバンド単位で生成される。１ページ分の中間データが生成されると、待機状態であったラスマスターによる処理が開始され（ステップＳ２６）、各分割領域の中間データをラスタライズするラススレーブを実行するコアが割り当てられる。利用可能な各コアが、割り当てられた分割領域の中間データをラスタライズ領域にラスタライズすることで、１ページ分のビットマップデータが生成される。
【００５７】
１ページ分のビットマップデータが生成されると、ジョブデータを構成する全ページのビットマップデータの生成が完了したか否かが判別される（ステップＳ２７）。
全ページのビットマップデータの生成が完了していない場合（ステップＳ２７；ＮＯ）、ステップＳ２５の処理に戻り、全ページのビットマップデータの生成が完了した場合（ステップＳ２７；ＹＥＳ）、受信したジョブデータに基づくビットマップデータを生成する一連の処理が終了される。
【００５８】
図５に、ステップＳ２６で実行されるラスマスターのフローチャートを示す。
まず、利用可能コアそれぞれに対して、初期化処理で起動させた複数のラススレーブのうちいずれか一つが割り当てられる（ステップＳ３１）。また、各バンドが、ステップS２３、２４において決定されたライン数に応じて、複数の分割領域に分けられる。
【００５９】
ステップＳ３１では、例えば、初期化処理で起動させたラススレーブが４つ（第１〜４ラススレーブ）であり、利用可能コア数が３つのコア（第１〜３コア）である場合には、第１コアに対して第１ラススレーブ、第２コアに対して第２ラススレーブ、第３コアに対して第３ラススレーブが割り当てられる。
【００６０】
次に、ＲＡＭ１１に空きラスタライズ領域があるか否かが判別される（ステップＳ３２）。
【００６１】
ラスタライズ領域は、中間データがビットマップデータに展開される際に使用される。１バンド分のビットマップデータが生成された場合には、当該ビットマップデータが圧縮されてＲＡＭ１１の他の領域に保存される（バンド転送）。従って、ステップＳ３１では、中間データからビットマップデータの生成がなされている領域でも、バンド転送している領域でもない領域を、空きラスタライズ領域として判別している。ステップＳ３２の判別処理は、定期的又はバンド転送が完了した際に実行されてもよい。
【００６２】
空きラスタライズ領域がない場合（ステップＳ３２；ＮＯ）、ステップＳ３２の処理に戻る。空きラスタライズ領域がある場合（ステップＳ３２；ＹＥＳ）、処理の開始待ちのラススレーブがあるか否か、即ち、ラススレーブが待機状態であるコアが判別される（ステップＳ３３）。ステップＳ３３の判別処理は、定期的又はいずれかのコアによるラススレーブが終了した際に実行されてもよい。
【００６３】
待機状態のラススレーブがない場合、即ち、利用可能なコア全てがラススレーブを実行又はバンド転送をしている場合（ステップＳ３３；ＮＯ）、ステップＳ３３の処理に戻る。待機状態のラススレーブがある場合（ステップＳ３３；ＹＥＳ）、待機状態のラススレーブで実行するための割り当て可能な分割領域があるか否かが判別される（ステップＳ３４）。
【００６４】
割り当て可能な分割領域がある場合（ステップＳ３４；ＹＥＳ）、当該割り当て可能な分割領域が、待機状態のラススレーブを実行するコアに割り当てられる（ステプＳ３５）。
【００６５】
割り当て可能な分割領域がない場合（ステップＳ３４；ＮＯ）、又はステップＳ３５後、１ページ分の中間データを構成する各バンドの分割領域全てが、ラススレーブを実行する複数のコアのうちいずれか一つのコアに割り当てられたか否かが判別される（ステップＳ３６）。
【００６６】
１ページ分の中間データを構成する各バンドの分割領域全てが、ラススレーブを実行する複数のコアのうちいずれか一つのコアに割り当てられていない場合（ステップＳ３６；ＮＯ）、ステップＳ３２の処理に戻る。１ページ分の中間データを構成する各バンドの分割領域全てが、ラススレーブを実行する複数のコアのうちいずれか一つのコアに割り当てられた場合（ステップＳ３６；ＹＥＳ）、ラスマスターが終了される。
【００６７】
次に、図６〜８を参照しながら、ラスマスターでの分割領域の割り当てについて説明する。
【００６８】
図６に、１ページ分の中間データを構成する各バンドを複数の分割領域に分けたイメージ図を示す。図６では、利用可能コア数が３であり、１つのバンドを３つの分割領域に分けた場合のイメージ図である。
【００６９】
図６に示すように、１ページ分の中間データは、第１バンドＢ１〜第ｎバンドＢｎにより構成されている。第１バンドＢ１は、第１分割領域Ｂ１１、第２分割領域Ｂ１２、第３分割領域Ｂ１３の３つの分割領域に分けられている。第１バンドＢ１と同様に、第２バンドＢ２〜第ｎバンドＢｎも、それぞれ３つの分割領域に分けられている。
【００７０】
図７、図８に、図６のバンドの分割例におけるラスマスターでの分割領域の割り当て処理のイメージ図を示す。なお、ラスマスターでの分割領域の割り当て処理は、図７又は図８に示す処理のいずれか一方に予め設定されている。
【００７１】
図７、図８では、利用可能な３つのコア（第１〜３コア）それぞれにおいて実行されるラススレーブとして、ステップＳ３１において第１コアに第１ラススレーブ、第２コアに第２ラススレーブ、第３コアに第３ラススレーブが割り当てられているものとする。
なお、ＲＡＭ１１内には、ラスタライズ領域としてバンド単位で使用できる３つのラスタライズ領域（第１〜３ラスタライズ領域）が存在するものとする。
【００７２】
図７に示すラスマスターでの分割領域の割り当て処理は、１つのバンドのラスタライズ処理が、利用可能なコアそれぞれに配分されて実行されるものである。図７に示すようなラスマスターにおける分割領域の割り当て処理を固定配分処理と称す。
【００７３】
まず、図７に示す固定配分処理では、図５のステップＳ３１において、利用可能コアそれぞれに対するラススレーブの割り当てが成されると、各ラススレーブを実行する各コアに対して、各バンドを構成する３つの分割領域のうちいずれか一つの分割領域が設定される。
【００７４】
例えば、第１ラススレーブを実行する第１コアに対して、各バンドを構成する３つの分割領域のうち第１分割領域が設定される。第２ラススレーブを実行する第２コアに対しては第２分割領域が設定され、第３ラススレーブを実行する第３コアに対しては第３分割領域が設定される。
【００７５】
ステップＳ３１の処理後、図７に示すように、まず、時刻ｔ０のとき、全てのラスタライズ領域が空いており、かつ、全てのコアが実行するラススレーブが待機状態となっているため、第１コアが実行する第１ラススレーブに第１バンドの第１分割領域Ｂ１１、第２コアが実行する第２ラススレーブに第１バンドの第２分割領域Ｂ１２、第３コアが実行する第３ラススレーブに第１バンドの第３分割領域Ｂ１３がそれぞれ割り当てられる（第１割当〜第３割当）。
【００７６】
時刻ｔ１のとき、第１〜３コアは、割り当てられた分割領域のラスタライズを第１ラスタライズ領域を用いて開始する。
【００７７】
時刻ｔ２のとき、第１コアにおいて第１バンドの第１分割領域Ｂ１１のラスタライズが終了すると、第１ラススレーブが待機状態となる。また、第２、３ラスタライズ領域が空いている状態である。この待機状態となった第１ラススレーブに対して割り当て可能な分割領域があるかが判別される。第１ラススレーブに対して割り当てられる分割領域としては、各バンドの第１分割領域が設定されているため、未ラスタライズの第１分割領域があるか否かが判別される。未ラスタライズの第１分割領域として、第２バンドの第１分割領域Ｂ２１が、第１コアが実行する第１ラススレーブに割り当てられる（第４割当）。
【００７８】
また、第３コアにおいても第１コアと同様に、第１バンドの第３分割領域Ｂ１３のラスタライズが終了すると、第３ラススレーブが待機状態となる。第３ラススレーブに対して割り当てられる分割領域としては、各バンドの第３分割領域が設定されているため、未ラスタライズの第３分割領域があるか否かが判別される。未ラスタライズの第３分割領域として、第２バンドの第３分割領域Ｂ２３が、第３コアが実行する第３ラススレーブに割り当てられる（第５割当）。
【００７９】
時刻ｔ３のとき、第１、３コアは、割り当てられた分割領域のラスタライズを、第１ラスタライズ領域とは異なる第２ラスタライズ領域を用いて開始する。
【００８０】
時刻ｔ４のとき、第１コアにおいて第２バンドの第１分割領域Ｂ２１のラスタライズが終了すると、第１ラススレーブが待機状態となる。また、第３ラスタライズ領域が空いている状態である。第４割当の場合と同様に、第１コアが実行する第１ラススレーブに第３バンドの第１分割領域Ｂ３１が割り当てられる（第６割当）。
そして時刻ｔ５のとき、第１コアは割り当てられた第３バンドの第１分割領域Ｂ３１のラスタライズを、第３ラスタライズ領域を用いて開始する。
【００８１】
時刻ｔ６のとき、第２コアにおいて第１バンドの第２分割領域Ｂ１２のラスタライズが終了すると、第１バンドを構成する全ての分割領域のラスタライズが完了するため、第１ラスタライズ領域で１バンド分のビットマップデータが生成される。この生成された１バンド分のビットマップデータは、圧縮された後にＲＡＭ１１内の他の領域に転送され、保存される（バンド転送）。
【００８２】
バンド転送が完了すると、第１ラスタライズ領域が空き領域となり、また、第２ラススレーブが待機状態となる。この待機状態となった第２ラススレーブに対して割り当て可能な分割領域があるかが判別される。第２ラススレーブに対して割り当てられる分割領域としては、各バンドの第２分割領域が設定されているため、未ラスタライズの第２分割領域があるか否かが判別される。未ラスタライズの第２分割領域として、第２バンドの第２分割領域Ｂ２２が、第２コアが実行する第２ラススレーブに割り当てられる（第７割当）。
【００８３】
時刻ｔ７のとき、第２コアは、割り当てられた分割領域が第２バンドの分割領域であることから、第２バンドに対するラスタライズが実行されている第２ラスタライズ領域で、割り当てられた分割領域のラスタライズを開始する。
【００８４】
以降、各ラススレーブを実行する各コアに対して、各バンドを構成する３つの分割領域のうち設定された分割領域が順次設定され、分割領域単位でラスタライズが実行される。
【００８５】
次に、図８に示すラスマスターでの分割領域の割り当て処理は、１ページ分のラスタライズ処理が、待機状態のラススレーブを実行するコアに、１ページを構成する各バンドの分割領域を優先順位に応じて順次割り当てて実行されるものである。図８に示すようなラスマスターにおける分割領域の割り当て処理を順次配分処理と称す。
【００８６】
まず、図８に示す順次配分処理では、図５のステップＳ３１において、利用可能コアそれぞれに対するラススレーブの割り当てが成されると、１ページ分の中間データを構成する複数の分割領域それぞれに対して、ラスタライズを実行する優先順位が設定される。
【００８７】
例えば、図６に示す第１バンドの第１分割領域Ｂ１１を第１位、第１バンドの第２分割領域Ｂ１２を第２位、第１バンドの第３分割領域Ｂ１３を第３位、第２バンドの第１分割領域Ｂ２１を第４位、・・・、というように、ページの先頭アドレスから順番に優先順位が設定される場合を用いて、以下説明する。なお、優先順位の設定は、これに限らない。
【００８８】
ステップＳ３１の処理後、図８に示すように、まず、時刻ｔ１０のとき、全てのラスタライズ領域が空いており、かつ、全てのコアが実行するラススレーブが待機状態となっているため、第１コアが実行する第１ラススレーブに第１バンドの第１分割領域Ｂ１１、第２コアが実行する第２ラススレーブに第１バンドの第２分割領域Ｂ１２、第３コアが実行する第３ラススレーブに第１バンドの第３分割領域Ｂ１３がそれぞれ割り当てられる（第１割当〜第３割当）。
【００８９】
時刻ｔ１１のとき、第１〜３コアは、割り当てられた分割領域のラスタライズを第１ラスタライズ領域を用いて開始する。
【００９０】
時刻ｔ１２のとき、第１コアにおいて第１バンドの第１分割領域Ｂ１１のラスタライズが終了すると、第１ラススレーブが待機状態となる。また、第２、３ラスタライズ領域が空いている状態である。この待機状態となった第１ラススレーブに対して割り当て可能な分割領域があるかが判別される。第１ラススレーブに対して割り当てられる分割領域としては、ラスタライズされていない分割領域のうち最も優先順位の高い分割領域となる。未ラスタライズの分割領域のうち最も優先順位の高い分割領域として第２バンドの第１分割領域Ｂ２１が、第１コアが実行する第１ラススレーブに割り当てられる（第４割当）。
【００９１】
また、第３コアにおいても第１コアと同様に、第１バンドの第３分割領域Ｂ１３のラスタライズが終了すると、第３ラススレーブが待機状態となる。第３ラススレーブに対して割り当てられる分割領域としては、未ラスタライズの分割領域のうち最も優先順位の高い分割領域としての第２バンドの第２分割領域Ｂ２２となり、当該第２バンドの第２分割領域Ｂ２２が、第３コアが実行する第３ラススレーブに割り当てられる（第５割当）。
【００９２】
時刻ｔ１３のとき、第１、３コアは、割り当てられた分割領域のラスタライズを、第１ラスタライズ領域とは異なる第２ラスタライズ領域を用いて開始する。
【００９３】
時刻ｔ１４のとき、第１コアにおいて第２バンドの第１分割領域Ｂ２１のラスタライズが終了すると、第１ラススレーブが待機状態となる。また、第３ラスタライズ領域が空いている状態である。第４割当の場合と同様に、未ラスタライズの分割領域のうち最も優先順位の高い分割領域としての第２バンドの第３分割領域Ｂ２３が、第１コアが実行する第１ラススレーブに割り当てられる（第６割当）。
そして時刻ｔ１５のとき、第１コアは、割り当てられた分割領域が第２バンドの分割領域であることから、第２バンドに対するラスタライズが実行されている第２ラスタライズ領域で、割り当てられた第２バンドの第３分割領域Ｂ２３のラスタライズを開始する。
【００９４】
時刻ｔ１６のとき、第２コアにおいて第１バンドの第２分割領域Ｂ１２のラスタライズが終了すると、第１バンドを構成する全ての分割領域のラスタライズが完了するため、第１ラスタライズ領域で１バンド分のビットマップデータが生成される。この生成された１バンド分のビットマップデータは、圧縮された後にＲＡＭ１１内の他の領域に転送され、保存される（バンド転送）。
【００９５】
バンド転送が完了すると、第１ラスタライズ領域が空き領域となり、また、第２ラススレーブが待機状態となる。この待機状態となった第２ラススレーブに対して割り当てられる分割領域としては、未ラスタライズの分割領域のうち最も優先順位の高い分割領域としての第３バンドの第１分割領域Ｂ３１となり、当該第３バンドの第１分割領域Ｂ３１が、第２コアが実行する第２ラススレーブに割り当てられる（第７割当）。
【００９６】
以降、各ラススレーブを実行する各コアに対して、優先順位に応じて分割領域が順次設定され、分割領域単位でラスタライズが実行される。
【００９７】
各バンドを構成する各分割領域に含まれるオブジェクトの種類や量によって、１つの分割領域のラスタライズに要する時間が変化する。そのため、図７及び図８に示す例では、第１バンドのバンド転送が開始されるまでに要する時間は、固定配分処理と順次配分処理とでは同一となるが、第２バンドのバンド転送が開始されるまでに要する時間は、順次配分処理よりも固定配分処理の方が短くなり、第３バンドのバンド転送が開始されるまでに要する時間は、固定配分処理よりも順次配分処理の方が短くなる。
【００９８】
次に、本実施の形態を適用した場合の効果について説明する。
複数のコアを用いて並列にラスタライズを行う場合、従来では、バンド単位でラスタライズが実行されている。このような従来技術では、ＸＰＳやＰＤＦ等の透過処理機能を有するページ記述言語形式のデータをラスタライズする場合には、レイヤー数に比例して、ＲＡＭ１１内に必要とされるワーク領域が増大する。
【００９９】
図９に、透過処理機能を有するページ記述言語形式のデータの透過処理のイメージ図を示す。
図９では、四角形のカラーのグラフィックスデータＤが属するレイヤーＬ１と、「ＡＢＣＤＥ」と描かれたカラーのテキストデータＴが属するレイヤーＬ２とが含まれているページの例を示している。また、図９では、四角形のグラフィックスデータＤを背景として、当該四角形のグラフィックスデータに透過率４０％でテキストデータＴを重ね合わせた画像が形成される場合の例を示している。
【０１００】
図９に示すようなページに対してラスタライズ処理を実行する場合、四角形のグラフィックオブジェクトデータが属するレイヤーＬ１をバンド単位でラスタライズするためのワーク領域と、テキストオブジェクトデータが属するレイヤーＬ２をバンド単位でラスタライズするためのワーク領域と、が必要となる。
【０１０１】
例えば、図９に示す各バンドそれぞれが、バンドライン数が２５６、バンド幅が１０２４で構成されている場合、カラー（ＣＭＹＫ）の１バンドをラスタライズするために必要なワーク領域のサイズは、１画素に対して８［ｂｉｔ］必要とすると、１［ＭＢｙｔｅ］（＝２５６×１０２４×８×４（ＣＭＹＫ）＝８３８８６０８［ｂｉｔ］＝１［ＭＢｙｔｅ］）となる。
そして、１バンドＢａが２つのレイヤーのバンドＢａ１、Ｂａ２から構成されている場合には、１バンドのビットマップデータを生成するために、２［ＭＢｙｔｅ］（＝１［ＭＢｙｔｅ］×２）のワーク領域が必要となる。
更に、バンドＢａのラスタライズを第１コア、バンドＢｂのラスタライズを第２コア、バンドＢｃのラスタライズを第３コア、という様に各バンドに対して各コアがそれぞれ並列にラスタライズ処理を実行する場合には、６［ＭＢｙｔｅ］（＝２［ＭＢｙｔｅ］×３）のワーク領域が必要となる。
【０１０２】
従って、従来技術を採用した図９に示すように、例えば、３つのコアを用いてラスタライズをバンド単位で並列に行う場合には、ＲＡＭ１１内に６［ＭＢｙｔｅ］以上のワーク領域を常に確保しなくてはならない。
【０１０３】
一方、本実施の形態では、１つのバンドを利用可能コア数で複数の分割領域に分け、各分割領域を各利用可能コアで並列にラスタライズ処理を行うものである。
【０１０４】
図１０に、本実施の形態を適用した場合における図９に示す１バンド分のデータの透過処理のイメージ図を示す。図１０に示すように、本実施の形態では、１つのバンドを利用可能コア数（例えば、３）で分けられた複数（例えば、３つ）の分割領域毎に各利用可能コアでラスタライズ処理が行われる。
【０１０５】
例えば、図１０に示す１つのバンドが、バンドライン数が２５６、バンド幅が１０２４で構成されている場合であって、ライン数が８５、８５、８６の３つの分割領域に分けられている場合には、カラー（ＣＭＹＫ）の１つの分割領域（ライン数８５）をラスタライズするために必要なワーク領域のサイズは、１画素に対して８［ｂｉｔ］必要とすると、約０．３３［ＭＢｙｔｅ］（＝８５×１０２４×８×４（ＣＭＹＫ）＝２７８５２８０［ｂｉｔ］≒０．３３［ＭＢｙｔｅ］）となる。
そして、１つの分割領域Ｂａ３１が２つのレイヤーＢａ１１、Ｂａ２１から構成されている場合には、１つの分割領域のビットマップデータを生成するために、約０．６７［ＭＢｙｔｅ］（＝０．３３［ＭＢｙｔｅ］×２）のワーク域が必要となる。
更に、分割領域Ｂａ３１のラスタライズを第１コア、分割領域Ｂａ３２のラスタライズを第２コア、分割領域Ｂａ３３のラスタライズを第３コア、という様に各分割領域に対して各コアがそれぞれ並列にラスタライズを実行する場合には、約２［ＭＢｙｔｅ］（＝０．６７［ＭＢｙｔｅ］×３）のワーク領域が必要となる。
【０１０６】
従って、図１０に示すように、例えば、３のコアを用いてラスタライズを分割領域単位で並列に行う場合には、ＲＡＭ１１内に約２［ＭＢｙｔｅ］以上のワーク領域を確保すればよいこととなる。
即ち、本実施の形態を採用した図１０の場合では、図９に示す従来の場合と比べて、ＲＡＭ１１内に確保しなくてはならないワーク領域のサイズが大幅に減少することになる。
【０１０７】
以上のように、本実施の形態によれば、制御部１０を構成するコアの数に基づいて各中間データを構成するバンドを複数に分割して複数の分割領域を生成でき、コア毎にラスタライズ処理を行う分割領域を割り当てることができる。そのため、１つのコアが１度にラスタライズ処理を行う中間データのサイズが小さくなり、１つのコアがラスタライズ処理を行う場合に使用されるＲＡＭ１１内のワーク領域を小さくできるため、複数のコアを用いてラスタライズ処理を実行する際のメモリ使用量の増大を抑えることができる。
【０１０８】
特に、ラスタライズ処理の実行可能なコアの数に応じて１つのバンドを複数に分割して複数の分割領域を生成することができるため、制御部１０内のコアの稼働状況に応じて、分割領域を生成することができる。
【０１０９】
また、バンドライン数と利用可能コア数との除算値に基づいて分割領域を構成するライン数、即ち、分割領域のサイズを決定することができる。
【０１１０】
更に、コア毎にラスタライズ処理を行う分割領域として、バンド毎に当該バンドを構成する複数の分割領域のうちいずれか一つの設定された分割領域を割り当てることができる。そのため、１つのバンドのラスタライズ処理を複数のコアで分担して実行することができ、各コアがラスタライズ処理を行う場合に使用するメモリ使用量を低減できるとともに、１つのバンドのラスタライズ処理に要する時間の短縮を図ることができる。
【０１１１】
また、コア毎にラスタライズ処理を行う分割領域として、ラスタライズ処理されていない最も優先順位の高い分割領域を割り当てることができる。そのため、1ページ分の中間データを構成する複数の分割領域のラスタライズ処理を、複数のコアで分担して実行することができ、各コアがラスタライズ処理を行う場合に使用するメモリ使用量を低減できるとともに、１ページのラスタライズ処理に要する時間の短縮を図ることができる。
【０１１２】
以上の説明では、本発明に係るプログラムのコンピュータ読み取り可能な媒体として、ＲＯＭ１２を使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、フラッシュメモリ等の不揮発性メモリ、ＣＤ-ＲＯＭ等の可搬型記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も本発明に適用される。
【０１１３】
また、本発明は、上記実施の形態の内容に限定されるものではなく、本発明の主旨を逸脱しない範囲で適宜変更可能である。
【符号の説明】
【０１１４】
１  画像処理装置
１０  制御部
１０ａ  コア
１１  ＲＡＭ
１２  ＲＯＭ
１３  ＨＤＤ
１４  操作部
１５  表示部
１６  画像読取部
１７  プリント部
１８  通信部
１９  バス
【図１】
2011158951.tif 000003
【図２】
2011158951.tif 000004
【図３】
2011158951.tif 000005
【図４】
2011158951.tif 000006
【図５】
2011158951.tif 000007
【図６】
2011158951.tif 000008
【図７】
2011158951.tif 000009
【図８】
2011158951.tif 000010
【図９】
2011158951.tif 000011
【図１０】
2011158951.tif 000012