(57)【要約】【課題】複数の演算手段を有する画像形成装置において、画像形成出力を実行するための画像処理を適切に並列化し、処理効率を向上すること。【解決手段】複数の演算手段によって画像処理を実行可能な画像形成装置１であって、ページ記述言語に基づいてディスプレイリストを生成し、中間データ記憶部２２５に記憶させるＤＬ処理部２２２と、記憶されたディスプレイリストに基づいてオブジェクトを描画するための描画情報を生成する描画処理部２２６とを含み、ＤＬ生成部２２が、ディスプレイリストが中間データ記憶部２２５に記憶される際に、描画処理の進度を確認し、進度が低い場合、ディスプレイリストのオブジェクトの情報形式を変換するＤＬ形式変換部を更に含むことを特徴とする。【選択図】図５
2011053944.tif 000002
【特許請求の範囲】
【請求項１】
画像形成出力を実行するための画像処理を複数の演算手段によって実行可能な画像形成装置であって、
ページ記述言語に基づいて得られた描画命令を取得する描画命令取得部と、
出力すべき画像に含まれる図形を記述する図形情報を前記描画命令に基づいて取得する図形情報取得部と、
前記取得された図形情報を記憶媒体に記憶させる図形情報記憶処理部と、
前記記憶された図形情報に基づいて前記図形を描画するための描画情報を生成する描画処理部と、
前記図形情報が前記記憶媒体に記憶される際に、前記描画情報を生成する描画処理の進度を確認する描画処理進度確認部と、
前記進度が低いことが確認された場合、前記図形情報の情報形式を変換して前記描画処理部において実行される処理量を軽減する情報変換部とを含むことを特徴とする画像形成装置。
【請求項２】
前記図形情報取得部、描画処理進度確認部、図形情報記憶処理部及び情報変換部と、前記描画処理部とが異なる演算手段によって実現されることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記記憶媒体に記憶された前記図形情報に基づいて前記描画情報を生成する処理の処理量を算出する処理量算出部を更に含み、
前記描画処理進度確認部は、前記算出された処理量に基づいて前記描画処理の進度を確認することを特徴とする請求項１または２に記載の画像形成装置。
【請求項４】
前記描画処理進度確認部は、前記算出された処理量に基づいて前記描画処理の残量を算出し、前記算出した残量に基づいて前記描画処理の進度を確認することを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記描画処理進度確認部は、前記算出した残量が所定の閾値よりも多い場合に、前記進度が低いことを確認することを特徴とする請求項４に記載の画像形成装置。
【請求項６】
前記処理量算出部は、前記複数の演算手段の演算能力に応じて前記描画処理の処理量を算出することを特徴とする請求項２乃至５いずれかに記載の画像形成装置。
【請求項７】
前記処理量算出部は、前記描画命令の内容に応じて変動する変動要素と、前記画像形成装置を構成するハードウェアの性能によって決定される固定要素とに基づいて処理量を算出することを特徴とする、請求項６に記載の画像形成装置。
【請求項８】
前記処理量算出部は、前記描画命令に含まれる複数種類の処理毎に、前記複数種類の処理夫々の内容に応じて前記変動要素全体への寄与率が異なるように前記変動要素を算出することを特徴とする、請求項７に記載の画像形成装置。
【請求項９】
前記描画処理進度確認部は、前記記憶媒体に記憶されている前記図形情報に基づいて前記描画処理の進度を確認することを特徴とする請求項１または２に記載の画像形成装置。
【請求項１０】
前記情報変換部は、前記図形情報の情報形式がベクターデータである場合に、スキャンライン変換の一部または全部を実行することを特徴とする請求項１乃至９いずれかに記載の画像形成装置。
【請求項１１】
前記情報変換部は、前記図形情報の情報形式がイメージデータである場合に、カラーマッチング、ＣＭＹＫ変換、総量規制の一部または全部を実行することを特徴とする請求項１乃至１０いずれかに記載の画像形成装置。
【請求項１２】
画像形成出力を実行するための画像処理を複数の演算手段によって実行する画像形成方法であって、
描画命令取得部が、ページ記述言語に基づいて得られた描画命令を取得し、
図形情報取得部が、出力すべき画像に含まれる図形を記述する図形情報を前記描画命令に基づいて取得し、
図形情報記憶処理部が、前記取得された図形情報を記憶媒体に記憶させ、
描画処理部が、前記記憶された図形情報に基づいて前記図形を描画するための描画情報を生成し、
描画処理進度確認部が、前記図形情報が前記記憶媒体に記憶される際に、前記描画情報を生成する描画処理の進度を確認し、
情報変換部が、前記進度が低いことが確認された場合、前記図形情報の情報形式を変換して前記描画処理部において実行される処理量を軽減することを特徴とする画像形成方法。
【請求項１３】
画像形成出力を実行するための画像処理を複数の演算手段によって実行可能な画像形成装置を制御する制御プログラムであって、
ページ記述言語に基づいて得られた描画命令を取得するステップと、
出力すべき画像に含まれる図形を記述する図形情報を前記描画命令に基づいて取得するステップと、
前記取得された図形情報を記憶媒体に記憶させるステップと、
前記記憶された図形情報に基づいて前記図形を描画するための描画情報を生成するステップと、
前記図形情報が前記記憶媒体に記憶される際に、前記描画情報を生成する描画処理の進度を確認するステップと、
前記進度が低いことが確認された場合、前記図形情報の情報形式を変換して前記描画処理部において実行される処理量を軽減するステップとを前記画像形成装置に実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、制御方法及び制御プログラムに関し、特に、画像形成出力を実行するための描画情報の生成処理を複数の演算手段によって実行可能な場合の画像処理に関する。
【背景技術】
【０００２】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリ及び書類の電子化に用いるスキャナ等の画像処理装置は欠かせない機器となっている。このような画像処理装置は、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な複合機として構成されることが多い。
【０００３】
このような画像処理装置のうち、電子化された情報の出力に用いるプリンタにおいては、入力された画像情報に基づいてプリントエンジンが画像形成出力を実行するための描画情報を生成する画像処理が行われる。この画像処理は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の演算手段がソフトウェアに従って動作することにより実行される。
【０００４】
近年の情報処理機器の発展により複数の演算手段が含まれるマルチコアＣＰＵ等の演算手段が普及している。マルチコアＣＰＵにおいては、複数のコアが夫々独立して動作するため、処理を並列化することにより、処理時間を短縮することが可能になる。従って、上記の画像処理もマルチコアＣＰＵに対応させることにより、処理を効率化することが望まれている。マルチコアＣＰＵの性能を効率的に発揮させるためには、処理を夫々のコアに適切に配分することにより、片方のコアの動作中において片方のコアに待機、即ち、待ちが発生しないようにする必要がある。
【０００５】
画像形成装置におけるマルチコア環境を活用するための方法として、上述した画像処理を２つのステージに分割し、２つのステージを夫々別々のＣＰＵで実行する方法が提案されている（例えば、特許文献１参照）。特許文献１に開示された技術においては、第１のコアによる処理結果を、描画オブジェクトキューを用いて受け渡すことにより、パイプライン並列実行を可能としている。そして、２つのステージ間で負荷分散をはかるために、描画オブジェクトキュー内の描画オブジェクトの待機数により、どちらのステージで色変換処理を実行するかを決定している。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、上述した画像処理は、主として、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）解析処理とレンダリング処理とに分けられる。ＰＤＬ解析処理とは、ページ記述言語によって構成されたＰＤＬ情報を解析し、後段のモジュールによって処理可能なデータ形式に変換する処理である。他方、レンダリング処理とは、ＰＤＬ解析によって変換された情報に基づき、プリントエンジンが画像形成出力を実行するための描画情報を生成する処理である。
【０００７】
マルチコアＣＰＵに対応した負荷分散態様として、上記ＰＤＬ解析処理とレンダリング処理とを夫々別々のＣＰＵコアによって実行する態様が考えられる。しかしながら、ＰＤＬ解析処理及びレンダリング処理の処理量はデータによって様々であり、この態様によっては、必ずしも効率的な並列化が実現できない。
【０００８】
また、特許文献１に開示された方法の場合、描画オブジェクトキューを設けるためにメモリ領域を確保する必要があり、処理に用いることができるメモリ量が制限される。また、色変換処理のみを目的としているため、色処理の少ないモノクロページの描画においては効果が薄い。更には、キューが発生している時点で、既に処理を待っているデータが存在しており、処理の並列化が好適になされていない。
【０００９】
これに対して、ＰＤＬ解析処理において、ページに含まれる情報量に基づいて描画処理の処理量を判断し、その判断結果に応じて描画処理の一部をＰＤＬ解析処理において実行することにより、ＰＤＬ解析処理とレンダリング処理とのバランスを均一にすることが考えられる。しかしながら、画像形成出力のページ毎に上記判断を行う場合、ＰＤＬ解析側が処理を終了するまでレンダラ側が処理を開始することができず、レンダラ側が待機状態となる可能性がある。レンダラ側が待機状態とならないように、ページ毎の調整をすることも可能であるが、処理が複雑化してしまう。
【００１０】
ＰＤＬ解析処理からレンダリング処理への情報の受け渡しは、画像形成出力のページ毎に行われており、ＰＤＬ解析処理とレンダリング処理とのバランスを均一化したとしても、最初の１ページについては、ＰＤＬ解析処理が完了するまでレンダラ側は待機状態となり、最後の１ページについては、ＰＤＬ解析処理が完了してレンダラ側が処理を開始した後は、ＰＤＬ解析側が待機状態となる。即ち、複数のコアの何れかが待機状態となる期間が長く、処理の並列化が好適になされていない。
【００１１】
本発明は、上記実情を考慮してなされたものであり、複数の演算手段を有する画像形成装置において、画像形成出力を実行するための画像処理を適切に並列化し、処理効率を向上することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明の一態様は、画像形成出力を実行するための画像処理を複数の演算手段によって実行可能な画像形成装置であって、ページ記述言語に基づいて得られた描画命令を取得する描画命令取得部と、出力すべき画像に含まれる図形を記述する図形情報を前記描画命令に基づいて取得する図形情報取得部と、前記取得された図形情報を記憶媒体に記憶させる図形情報記憶処理部と、前記記憶された図形情報に基づいて前記図形を描画するための描画情報を生成する描画処理部と、前記図形情報が前記記憶媒体に記憶される際に、前記描画情報を生成する描画処理の進度を確認する描画処理進度確認部と、前記進度が低いことが確認された場合、前記図形情報の情報形式を変換して前記描画処理部において実行される処理量を軽減する情報変換部とを含むことを特徴とする。
【００１３】
ここで、前記図形情報取得部、描画処理進度確認部、図形情報記憶処理部及び情報変換部と、前記描画処理部とが異なる演算手段によって実現されることが好ましい。
【００１４】
また、前記記憶媒体に記憶された前記図形情報に基づいて前記描画情報を生成する処理の処理量を算出する処理量算出部を更に含み、前記描画処理進度確認部は、前記算出された処理量に基づいて前記描画処理の進度を確認することが好ましい。
【００１５】
また、前記描画処理進度確認部は、前記算出された処理量に基づいて前記描画処理の残量を算出し、前記算出した残量に基づいて前記描画処理の進度を確認することが好ましい。
【００１６】
また、前記描画処理進度確認部は、前記算出した残量が所定の閾値よりも多い場合に、前記進度が低いことを確認するができる。
【００１７】
また、前記処理量算出部は、前記複数の演算手段の演算能力に応じて前記描画処理の処理量を算出することが好ましい。
【００１８】
また、前記処理量算出部は、前記描画命令の内容に応じて変動する変動要素と、前記画像形成装置を構成するハードウェアの性能によって決定される固定要素とに基づいて処理量を算出することが好ましい。
【００１９】
また、前記処理量算出部は、前記描画命令に含まれる複数種類の処理毎に、前記複数種類の処理夫々の内容に応じて前記変動要素全体への寄与率が異なるように前記変動要素を算出することが好ましい。
【００２０】
また、前記描画処理進度確認部は、前記記憶媒体に記憶されている前記図形情報に基づいて前記描画処理の進度を確認することが好ましい。
【００２１】
前記情報変換部は、前記図形情報の情報形式がベクターデータである場合に、スキャンライン変換の一部または全部を実行することができる。
【００２２】
また、前記情報変換部は、前記図形情報の情報形式がイメージデータである場合に、カラーマッチング、ＣＭＹＫ変換、総量規制の一部または全部を実行することができる。
【００２３】
他方、本発明の他の態様は、画像形成出力を実行するための画像処理を複数の演算手段によって実行する画像形成方法であって、描画命令取得部が、ページ記述言語に基づいて得られた描画命令を取得し、図形情報取得部が、出力すべき画像に含まれる図形を記述する図形情報を前記描画命令に基づいて取得し、図形情報記憶処理部が、前記取得された図形情報を記憶媒体に記憶させ、描画処理部が、前記記憶された図形情報に基づいて前記図形を描画するための描画情報を生成し、描画処理進度確認部が、前記図形情報が前記記憶媒体に記憶される際に、前記描画情報を生成する描画処理の進度を確認し、情報変換部が、前記進度が低いことが確認された場合、前記図形情報の情報形式を変換して前記描画処理部において実行される処理量を軽減することを特徴とする。
【００２４】
また、本発明の他の態様は、画像形成出力を実行するための画像処理を複数の演算手段によって実行可能な画像形成装置を制御する制御プログラムであって、ページ記述言語に基づいて得られた描画命令を取得するステップと、出力すべき画像に含まれる図形を記述する図形情報を前記描画命令に基づいて取得するステップと、前記取得された図形情報を記憶媒体に記憶させるステップと、前記記憶された図形情報に基づいて前記図形を描画するための描画情報を生成するステップと、前記図形情報が前記記憶媒体に記憶される際に、前記描画情報を生成する描画処理の進度を確認するステップと、前記進度が低いことが確認された場合、前記図形情報の情報形式を変換して前記描画処理部において実行される処理量を軽減するステップとを前記画像形成装置に実行させることを特徴とする。
【発明の効果】
【００２５】
本発明によれば、複数の演算手段を有する画像形成装置において、画像形成出力を実行するための画像処理を適切に並列化し、処理効率を向上することが可能となる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施形態に係る画像形成装置のハードウェア構成を示すブロック図である。
【図２】本発明の実施形態に係る画像形成装置の機能構成を示す図である。
【図３】本発明の実施形態に係る画像処理部に含まれる機能を示す図である。
【図４】本発明の実施形態に係る印刷情報の情報形式とその情報形式に応じて実行される処理とを示す図である。例を示す図である。
【図５】本発明の実施形態に係る描画コアモジュールに含まれる機能を示す図である。
【図６】本発明の実施形態に係る処理対象の画像の例を示す図である。
【図７】本発明の実施形態に係るＰＤＬアプリケーションの動作を示すフローチャートである。
【図８】本発明の実施形態に係る並列処理と従来技術に係る並列処理とを比較して示す図である。
【図９】本発明の実施形態に係るスキャンライン変換処理を示す図である。
【図１０】本発明の実施形態に係るイメージ描画処理を示す図である。
【発明を実施するための形態】
【００２７】
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、プリンタ、スキャナ、複写機等の機能を含む複合機（ＭＦＰ：Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）としての画像形成装置を例として説明する。
【００２８】
図１は、本実施形態に係る画像形成装置１のハードウェア構成を示すブロック図である。図１に示すように、本実施形態に係る画像形成装置１は、一般的なサーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理端末と同様の構成に加えて、画像形成を実行するエンジンを有する。即ち、本実施形態に係る画像形成装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０、エンジン４０、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）５０及びＩ／Ｆ６０がバス９０を介して接続されている。また、Ｉ／Ｆ６０にはＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）７０及び操作部８０が接続されている。
【００２９】
ＣＰＵ１０は演算手段であり、画像形成装置１全体の動作を制御する。また、本実施形態に係るＣＰＵ１０は、クアッドコアＣＰＵであり、第１コア１１、第２コア１２、第３コア１３及び第４コア１４を含む。第１コア１１、第２コア１２、第３コア１３及び第４コア１４が夫々独立して動作することにより、並列処理が可能となり、処理時間を短縮することが可能となる。ＲＡＭ２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０が情報を処理する際の作業領域として用いられる。ＲＯＭ３０は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。エンジン４０は、画像形成装置１において実際に画像形成を実行する機構である。
【００３０】
ＨＤＤ５０は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム等が格納されている。Ｉ／Ｆ６０は、バス９０と各種のハードウェアやネットワーク等を接続し制御する。ＬＣＤ７０は、ユーザが画像形成装置１の状態を確認するための視覚的ユーザインタフェースである。操作部８０は、キーボードやマウス等、ユーザが画像形成装置１に情報を入力するためのユーザインタフェースである。
【００３１】
このようなハードウェア構成において、ＲＯＭ３０やＨＤＤ５０若しくは図示しない光学ディスク等の記録媒体に格納されたプログラムがＲＡＭ２０に読み出され、ＣＰＵ１０の制御に従って動作することにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る画像形成装置１の機能を実現する機能ブロックが構成される。
【００３２】
次に、図２を参照して、本実施形態に係る画像形成装置１の機能構成について説明する。図２は、本実施形態に係る画像形成装置１の機能構成を示すブロック図である。図２に示すように、本実施形態に係る画像形成装置１は、コントローラ１００、ＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｎｔ  Ｆｅｅｄｅｒ：原稿自動搬送装置）１１０、スキャナユニット１２０、排紙トレイ１３０、ディスプレイパネル１４０、給紙テーブル１５０、プリントエンジン１６０、排紙トレイ１７０及びネットワークＩ／Ｆ１８０を有する。
【００３３】
また、コントローラ１００は、主制御部１０１、エンジン制御部１０２、入出力制御部１０３、画像処理部１０４及び操作表示制御部１０５を有する。図２に示すように、本実施形態に係る画像形成装置１は、スキャナユニット１２０、プリントエンジン１６０を有する複合機として構成されている。尚、図２においては、電気的接続を実線の矢印で示しており、用紙の流れを破線の矢印で示している。
【００３４】
ディスプレイパネル１４０は、画像形成装置１の状態を視覚的に表示する出力インタフェースであると共に、タッチパネルとしてユーザが画像形成装置１を直接操作し若しくは画像形成装置１に対して情報を入力する際の入力インタフェース（操作部）でもある。ネットワークＩ／Ｆ１８０は、画像形成装置１がネットワークを介して他の機器と通信するためのインタフェースであり、Ｅｔｈｅｒｎｅｔ（登録商標）やＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースが用いられる。
【００３５】
コントローラ１００は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ＲＯＭ３０や不揮発性メモリ並びにＨＤＤ５０や光学ディスク等の不揮発性記録媒体に格納されたファームウェア等の制御プログラムが、ＲＡＭ２０等の揮発性メモリ（以下、メモリ）にロードされ、ＣＰＵ１０の制御に従って構成されるソフトウェア制御部と集積回路などのハードウェアとによってコントローラ１００が構成される。コントローラ１００は、画像形成装置１全体を制御する制御部として機能する。
【００３６】
主制御部１０１は、コントローラ１００に含まれる各部を制御する役割を担い、コントローラ１００の各部に命令を与える。エンジン制御部１０２は、プリントエンジン１６０やスキャナユニット１２０等を制御若しくは駆動する駆動手段としての役割を担う。入出力制御部１０３は、ネットワークＩ／Ｆ１８０を介して入力される信号や命令を主制御部１０１に入力する。また、主制御部１０１は、入出力制御部１０３を制御し、ネットワークＩ／Ｆ１８０を介して他の機器にアクセスする。
【００３７】
画像処理部１０４は、主制御部１０１の制御に従い、入力された印刷ジョブに含まれる印刷情報に基づいて描画情報を生成する。この描画情報とは、画像形成部であるプリントエンジン１６０が画像形成動作において形成すべき画像を描画するための情報である。また、印刷ジョブに含まれる印刷情報とは、ＰＣ等の情報処理装置にインストールされたプリンタドライバによって画像形成装置１が認識可能な形式に変換された情報であり、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）によって記述された情報である。換言すると、上記印刷情報とは、画像形成装置１に画像形成出力を開始させる実行命令である。尚、本実施形態においては、ページ記述言語としてＰＤＬを用いる場合を例とするが、他の言語であっても良い。
【００３８】
本実施形態においては、画像処理部１０４による上記描画情報の生成処理を、マルチコアのＣＰＵ１０の第１コア１１、第２コア１２、第３コア１３及び第４コア１４に好適に割り振ることが要旨となる。画像処理部１０４の機能については、後に詳述する。操作表示制御部１０５は、ディスプレイパネル１４０に情報表示を行い若しくはディスプレイパネル１４０を介して入力された情報を主制御部１０１に通知する。
【００３９】
画像形成装置１がプリンタとして動作する場合は、まず、入出力制御部１０３がネットワークＩ／Ｆ１８０を介して印刷ジョブを受信する。入出力制御部１０３は、受信した印刷ジョブを主制御部１０１に転送する。主制御部１０１は、印刷ジョブを受信すると、画像処理部１０４を制御して、印刷ジョブに含まれる印刷情報に基づいて描画情報を生成させる。
【００４０】
画像処理部１０４によって描画情報が生成されると、エンジン制御部１０２は、生成された描画情報に基づき、給紙テーブル１５０から搬送される用紙に対して画像形成を実行する。即ち、プリントエンジン１６０が画像形成部として機能する。プリントエンジン１６０の具体的態様としては、インクジェット方式による画像形成機構や電子写真方式による画像形成機構等を用いることが可能である。プリントエンジン１６０によって画像形成が施された文書は排紙トレイ１７０に排紙される。
【００４１】
画像形成装置１がスキャナとして動作する場合は、ユーザによるディスプレイパネル１４０の操作若しくはネットワークＩ／Ｆ１８０を介して外部のクライアント用の情報処理端末等から入力されるスキャン実行指示に応じて、操作表示制御部１０５若しくは入出力制御部１０３が主制御部１０１にスキャン実行信号を転送する。主制御部１０１は、受信したスキャン実行信号に基づき、エンジン制御部１０２を制御する。
【００４２】
エンジン制御部１０２は、ＡＤＦ１１０を駆動し、ＡＤＦ１１０にセットされた撮像対象原稿をスキャナユニット１２０に搬送する。また、エンジン制御部１０２は、スキャナユニット１２０を駆動し、ＡＤＦ１１０から搬送される原稿を撮像する。また、ＡＤＦ１１０に原稿がセットされておらず、スキャナユニット１２０に直接原稿がセットされた場合、スキャナユニット１２０は、エンジン制御部１０２の制御に従い、セットされた原稿を撮像する。即ち、スキャナユニット１２０が撮像部として動作する。
【００４３】
撮像動作においては、スキャナユニット１２０に含まれるＣＣＤ等の撮像素子が原稿を光学的に走査し、光学情報に基づいて生成された撮像情報が生成される。エンジン制御部１０２は、スキャナユニット１２０が生成した撮像情報を画像処理部１０４に転送する。画像処理部１０４は、主制御部１０１の制御に従い、エンジン制御部１０２から受信した撮像情報に基づき画像情報を生成する。画像処理部１０４が生成した画像情報はＨＤＤ４０等の画像形成装置１に装着された記憶媒体に保存される。即ち、スキャナユニット１２０、エンジン制御部１０２及び画像処理部１０４が連動して、原稿読み取り部として機能する。
【００４４】
画像処理部１１０４によって生成された画像情報は、ユーザの指示に応じてそのままＨＤＤ４０等に格納され若しくは入出力制御部１０３及びネットワークＩ／Ｆ１８０を介して外部の装置に送信される。即ち、スキャナユニット１２０及びエンジン制御部１０２が画像入力部として機能する。
【００４５】
また、画像形成装置１が複写機として動作する場合は、エンジン制御部１０２がスキャナユニット１２０から受信した撮像情報若しくは画像処理部１０４が生成した画像情報に基づき、画像処理部１０４が描画情報を生成する。その描画情報に基づいてプリンタ動作の場合と同様に、エンジン制御部１０２がプリントエンジン１６０を駆動する。
【００４６】
このような画像形成装置１において、本実施形態に係る要旨は、画像処理部１０４が描画情報を生成する際の処理の分割及び並列処理にある。以下、本実施形態に係る画像処理部１０４の機能及び動作について説明する。図３は、本実施形態に係る画像処理部１０４に含まれる機能を示すブロック図である。図３に示すように、本実施形態に係る画像処理部１０４は、ＰＤＬ解析部２１０及び描画コアモジュール２２０によって構成されるＰＤＬアプリケーション２００を含む。
【００４７】
ＰＤＬ解析部２１０は、ＰＤＬで記述された印刷情報を取得し、描画コアモジュール２２０が処理可能な形式に変換する。この変換された形式の情報が、ＰＤＬアプリケーション２００において描画命令として処理される。即ち、ＰＤＬ解析部２１０が、ページ情報取得部及びページ情報解析部として機能する。ここで、ＰＤＬで記述された印刷情報に含まれる情報の情報形式と、夫々の情報形式に応じて実行される処理を図４に示す。
【００４８】
図４に示すように、ベクターデータであれば、スキャンライン変換処理を経て画像のビットマップ化が行われる。テキストデータであれば、テキストのアウトライン化及びアウトラインのスキャンライン変換を経て、画像のビットマップ化が行われる。また、圧縮画像データであれば、圧縮形式に応じた展開処理を経て、イメージデータとしての処理が行われる。また、動画データであれば、動画を構成するフレームの抽出処理を経て、イメージデータとしての処理が行われる。尚、動画が圧縮されている場合、圧縮静止画像データと同様に画像の展開処理が行われる。そして、イメージデータであれば、カラーマッチング、ＣＭＹＫ（Ｃｙａｎ、Ｍａｇｅｎｔａ、Ｙｅｌｌｏｗ、Ｋｅｙ）変換及び総量規制の処理が実行される。
【００４９】
描画コアモジュール２２０は、ＰＤＬ解析部２１０によって変換された描画命令に基づき、プリントエンジン１６０が画像形成出力を実行するための描画情報を生成する。図３に示す画像処理部１０４の機能のうち、ＰＤＬ解析部２１０は、第１コア１１のみによって処理される。他方、描画コアモジュール２２０は、第１コア１１、第２コア１２、第３コア１３及び第４コア１４によって分散処理される。即ち、描画コアモジュール２２０の機能が本実施形態に係る要旨の１つとなる。
【００５０】
図５を参照して、描画コアモジュール２２０の機能について説明する。図５は、描画コアモジュール２２０に含まれる機能を示すブロック図である。図５に示すように、本実施形態に係る描画コアモジュール２２０は、描画コアモジュールＩ／Ｆ２２１、ＤＬ（Ｄｉｓｐｌａｙ  Ｌｉｓｔ：ディスプレイリスト）処理部２２２、負荷指数算出部２２３、ＤＬ形式変換部２２４、中間データ記憶部２２５及び複数の描画処理部２２６を含む。図４に含まれる各構成のうち、描画コアモジュールＩ／Ｆ２２１、ＤＬ処理部２２２、負荷指数算出部２２３及びＤＬ形式変換部２２４が、第１コア１１によって制御され、複数の描画処理部２２６が第２コア１２、第３コア１３、第４コア１４のいずれかによって制御される。これら第１コア１１、第２コア１２、第３コア１３及び第４コア１４によって制御される夫々の機能ブロックは、ソフトウェア・プログラムとして実現される描画コアモジュール２２０を構成するモジュールである。
【００５１】
描画コアモジュールＩ／Ｆ２２１は、ＰＤＬ解析部２１０によって変換された描画命令を取得する。即ち、描画コアモジュールＩ／Ｆ２２１が描画命令取得部として機能する。ＤＬ処理部２２２は、描画コアモジュールＩ／Ｆ２２１が取得した描画命令に基づいてディスプレイリストを生成し、中間データ記憶部２２５に記憶させる。このディスプレイリストとは、画像形成出力すべき画像に含まれる図形が記述された図形情報である。即ち、ＤＬ処理部２２２が図形情報取得部、図形情報記憶処理部として機能すると共に、中間データ記憶部２２５が図形情報記憶部として機能する。
【００５２】
また、ＤＬ処理部２２２は、描画コアモジュールＩ／Ｆ２２１が取得した描画命令の情報を、上述した図形の情報毎に負荷指数算出部２２３に転送し、負荷指数算出部２２３に負荷指数の算出処理を実行させる。更に、ＤＬ処理部２２２は、負荷指数算出部２２３による負荷指数の算出結果に基づき、複数の描画処理部２２６における描画処理の処理状態を判断し、その判断結果に基づいてＤＬ形式変換部２２４に上記図形の情報の情報形式を変換させる。即ち、ＤＬ処理部２２２が描画処理進度確認部として機能し、ＤＬ形式変換部２２４が連動して、情報変換部として機能する。
【００５３】
負荷指数算出部２２３は、ＤＬ処理部２２２から入力された情報、即ちＰＤＬ形式から変換された印刷情報に基づき、入力された図形について描画情報を生成する際の負荷指数を算出する。この負荷指数とは、描画情報の生成処理についての処理量を示す数値であり、処理すべき情報の量、即ち処理量にＣＰＵ１０やＲＡＭ２０等のハードウェアの処理能力も加味された数値である。即ち、負荷指数算出部２２３が、処理量算出部として機能する。本実施形態に係る負荷指数の算出態様について、以下に説明する。
【００５４】
本実施形態においては、描画情報生成処理の負荷指数を算出する際のパラメータの例として、ベクターデータにおけるベジエ曲線の制御点数、イメージデータのデータサイズ、描画領域のサイズ、描画処理手段の性能を用いる。ベジエ曲線においては、制御点間を分割して線分（パス）を生成するため、制御点数が多い程分割処理が多く発生する。従って、処理量はベジエ曲線の制御点数に比例する。また、テキストデータやベクターデータは、描画領域によっても処理量が異なる。
【００５５】
また、イメージ描画の場合、入力データはＲＧＢ（Ｒｅｄ  Ｇｒｅｅｎ  Ｂｌｕｅ）の２４ｂｉｔやＩｎｄｅｘデータによって表現されており、そのデータの各ピクセルに対してカラーマッチング処理や回転処理等の処理がされる。即ち、データサイズが大きい程、上記処理が多く発生する。従って、処理量は、入力イメージのデータサイズに比例する。
【００５６】
また、入力データの画像サイズが小さい場合であっても、その画像を用いて描画する領域が大きければ、演算に要するコストもメモリアクセスも増加する。これは、描画先のピクセル毎に演算及び書き込みをする必要がある事に起因する。従って、処理量は、描画領域のサイズに比例する。
【００５７】
また、ホモジニアス型のマルチコアＣＰＵを用いた場合、互いに性能は同じであるが、ヘテロジニアス型のマルチコアＣＰＵの場合は、各コアによって性能が異なるため、どちらのコアで処理をするかによって重みが異なる。また、スキャンライン変換に特化したコアやハードウェアアクセラレータを使用した場合も同様である。ここで、スキャンライン変換とは、上述したベクターデータにおけるベジエ曲線をラスタデータ、即ちビットマップに変換する処理である。
【００５８】
これらのパラメータに基づき、負荷指数算出部２２３は以下の式（１）を用いて負荷指数Ｗを算出する。尚、式（１）において、“Ｂ”は、ベジエ曲線の制御点数、“Ｄ”は、入力データサイズ、“Ｓ”は、描画領域のサイズであり、これらが負荷指数Ｗの変動要素である。また、“Ｐ”は、描画処理手段の性能であり、これが、負荷指数Ｗの固定要素である。本実施形態に係る“Ｐ”は第１コア１１、第２コア１２、第３コア１３及び第４コア夫々の性能に応じた係数であり、負の値となる場合もあり得る。また、“ａ”〜“ｂ”は、夫々の重み係数である。この重み係数により、上記“Ｂ”、“Ｄ”、“Ｓ”等の夫々の項目毎に負荷指数Ｗの値への寄与率が異なる。
2011053944.tif 000003
【００５９】
負荷指数算出部２２３は、上述したように算出した負荷指数を記憶する。負荷指数算出部２２３に記憶された負荷指数は、ＤＬ処理部２２２によって参照され、上述したようにＤＬ変換部２２４による情報形式の変換の実行要否の判断材料とされる。これについては、後に詳述する。
【００６０】
ＤＬ形式変換部２２４による情報形式の変換処理としては、ベクターデータのスキャンライン変換処理や、イメージデータのカラーマッチング処理や回転処理、テキストデータのアウトライン化及びスキャンライン変換等、図４において説明した処理、即ち、描画情報の生成処理の一部が含まれる。
【００６１】
中間データ記憶部２２５は、第１コア１１によって制御されるモジュールから、第２コア１２によって制御されるモジュールへ処理途中のデータを受け渡すための記憶媒体である。本実施形態においては、上述したように、ＤＬ処理部２２２による負荷指数に基づいた描画書部２２６の処理状況の判断に応じて、ＤＬ形式変換部２２４によっても描画情報の生成処理の一部が実行される。従って、中間データ記憶部２２５には、中間データ処理部２２２によってＰＤＬ形式から変換され、ディスプレイリストとして構成された情報が記憶される他、ＤＬ形式変換部２２４によって変換された情報が記憶される。
【００６２】
複数の描画処理部２２６は、中間データ記憶部２２５に記憶された情報に基づき、エンジン制御部１０２に描画データを入力するための描画情報を生成する。複数の描画処理部２２６による処理態様としては、ＰＤＬ解析部２１０によって解析され、ＤＬ処理部２２２によってディスプレイリストとして構成された情報から描画情報を生成する処理の他、ＤＬ形式変換部２２４によってスキャンライン変換やカラーマッチング等の処理が施された処理途中の情報から描画情報を生成する処理等が含まれる。複数の描画処理部２２６は、生成した描画情報をページメモリに出力する。
【００６３】
上述したように、複数の描画処理部２２６は、夫々第２コア１２、第３コア１３、第４コア１４のいずれかによって制御される。即ち、描画処理部２２６は、第１コア１１が中間データ記憶部２２５に中間データを記憶させ、次のページのＰＤＬ解析処理を実行する期間において並行して動作可能である。これにより、第１コア１１と第２コア１２〜第４コア１４とに処理を分散し、並列処理によって処理時間を短縮することができる。
【００６４】
次に、本実施形態に係るＰＤＬアプリケーション２００の動作について、図を参照して説明する。本実施形態においては、画像形成出力すべき画像（以降、出力画像とする）として、図６に示すような画像を例として説明する。図６に示すように、本実施形態に係る出力画像は、画像を構成するオブジェクトとして、イメージＡ、テキストＢ、ベクターＣの３つの図形を含む。また、図６に示すように、本実施形態に係るＰＤＬアプリケーション２００は、１つのページを“バンド０”、“バンド１”、“バンド２”の３つの領域に分割し、夫々の領域毎に描画情報を生成する。また、本実施形態に係るＰＤＬアプリケーション２００は、複数の描画処理部２２６を夫々制御する第２コア１２〜第４コア１４が、夫々のバンドの描画情報を生成することにより処理を並列化する。
【００６５】
図７は、本実施形態に係るＰＤＬアプリケーション２００の動作を示すフローチャートである。また、図８は、本実施形態に係るＰＤＬアプリケーション２００におけるディスプレイリストの生成処理（Ｐｅｒｓ）と、描画処理（Ｒｅｎｄｅｒ）との並列動作と、従来の並列動作とを模式的に示す図である。図８においては、３ページ分の印刷情報が入力された場合を例としている。
【００６６】
画像処理部１０４がＰＤＬ形式の印刷情報を取得すると、ＰＤＬアプリケーション２００が動作を開始する。まず、第１コア１１がＰＤＬ解析部２１０を制御し、入力されたＰＤＬデータを解析して描画コアモジュール２２０が処理可能なデータ形式に変換させる（Ｓ７０１）。ＰＤＬ解析部２１０によって変換された情報（以降、描画命令とする）は、描画モジュールＩ／Ｆ２２１を介してＤＬ処理部２２２に入力される。
【００６７】
次に、ＤＬ処理部２２２は、描画コアモジュールＩ／Ｆ２２１から取得した描画命令において、出力すべき画像に含まれるオブジェクトを１つ選択する（Ｓ７０２）。この図形とは、図６に示すイメージＡ、テキストＢ、ベクターＣのいずれかである。ここでは、イメージＡが選択されたものとして説明する。そして、ＤＬ処理部２２２は、Ｓ７０２において選択したオブジェクトを負荷指数算出部２２３に入力する。これにより、第１コア１１が負荷指数算出部２２３を制御し、負荷指数算出部２２３が負荷指数の算出処理を実行する（Ｓ７０３）。本実施形態に係るＳ７０３の処理は、上述した式（１）に従って実行される。Ｓ７０３の処理によって負荷指数が算出されると、負荷指数算出部２２３は算出した負荷指数を記憶する。
【００６８】
次に、ＤＬ処理部２２２は、前サイクルにおいて負荷指数算出部２２３が算出して記憶した負荷指数（以降、前サイクル負荷指数とする）を参照して描画処理部２２６における描画処理の処理状況を確認し（Ｓ７０４）、その結果に基づいて負荷分散処理を実行する（Ｓ７０５）。
【００６９】
ここで、１つ目のオブジェクトについての処理の場合、第１のサイクルであるため、前サイクル負荷指数は無く、描画処理部２２６は未だ描画処理を開始していない。この場合、ＤＬ処理部２２２は、描画処理部２２６は待機状態であり、処理能力に十分な余裕があると判断する。この場合、Ｓ７０５において、ＤＬ処理部２２２は、ＤＬ形式変換部２２４には処理を割り当てず、複数の描画処理部２２６夫々において描画処理を実行させることを決定する。即ち、Ｓ７０５の処理結果によっては、ＤＬ形式変換部２２４による情報形式の変換処理（Ｓ７０６）は、実際には処理が実行されない空の処理となる。
【００７０】
Ｓ７０６までの処理が完了すると、ＤＬ処理部２２２は、Ｓ７０２において選択したオブジェクトについて、ディスプレイリストとして構成した描画命令の情報を中間データ記憶部２２５に記憶させる（Ｓ７０７）。この第１のサイクルにおけるＳ７０７の処理のタイミングが、図８に示すｔ１のタイミングである。このＳ７０７の処理が完了することにより、第２コア１２〜第４コア１４のいずれかによって制御される描画処理部２２６が描画情報を生成する描画処理を実行する（Ｓ７１０）。
【００７１】
上述したように、上述したＳ７０２においてイメージＡが選択されており、イメージＡはバンド０及びバンド１に存在するため、図８に示すように、まずはバンド０及びバンド１に対応している第２コア１２及び第３コア１３の描画処理部２２６が描画処理を開始する。他方、第１コア１１においては、Ｓ７０７の処理が完了すると、Ｓ７０１の処理によって取得された描画命令に含まれる全てのオブジェクトについて処理が完了したか否か判断する（Ｓ７０８）。ここでは処理が完了していないので（Ｓ７０８／ＮＯ）、Ｓ７０２からの処理を繰り返す。
【００７２】
次に、Ｓ７０２に戻った第２のサイクルにおいて、ベクターＣが選択されたものとして説明する（Ｓ７０２）。対象のオブジェクトとしてベクターＣが選択されると、上記と同様にベクターＣについての負荷指数の算出処理が実行され（Ｓ７０３）、負荷指数が記憶される。そして、上記と同様にレンダラとしての描画処理部２２６の処理状況が確認される（Ｓ７０４）。
【００７３】
ここでは、前サイクル負荷指数としてイメージＡの負荷指数が記憶されているため、その情報に基づいて描画処理部２２６の処理状況が判断される。この処理状況の判断処理は、例えば、前サイクルのＳ７０７において中間データ記憶部２２５に中間データが記憶されてからの経過時間に基づいて前サイクル負荷指数を減算し、残りの負荷指数を算出することによって、描画処理部２２６が処理すべき処理のうち待機状態となっている処理量（以降、待機処理量とする）を算出する。
【００７４】
レンダラの処理状況が算出されると、ＤＬ処理部２２２は、負荷分散処理を実行する（Ｓ７０５）。ここでは、Ｓ７０４において算出された待機処理量に基づいてＤＬ形式変換２２４への処理の割り当てが決定される。例えば、現サイクルのＳ７０３において算出された負荷指数（以降、現サイクル負荷指数とする）と、上記算出された待機処理量とを比較し、現サイクル負荷指数が待機処理量に比べて大幅に小さければ、ＤＬ形式変換部２２４には処理を割り当てない。上位の判断基準としては、例えば、現サイクル負荷指数が待機処理量の５０％以下や、３０％以下、更には１０％以下等である。
【００７５】
Ｓ７０５における他の判断方法としては、上記算出された待機処理量について閾値を設けておき、算出された待機処理量がその閾値よりも大きければＤＬ形式変換部２２４に処理を割り当てる方法がある。また、上記閾値を段階的に設けておき、待機処理量が上記段階的に設けられた閾値においてより上位、即ち値の大きい閾値を上回るほど、ＤＬ形式変換部２２４に多くの処理を割り当てることもできる。
【００７６】
Ｓ７０５の処理が完了すると、ＤＬ形式変換部２２４は、Ｓ７０５の処理により割り当てられた分の処理を実行する。そして、ＤＬ処理部２２２が中間データ記憶部２２５に中間データを保存する（Ｓ７０７）このようにしてベクターＣについて中間データ保存部２２５に中間データが記憶されることにより、ベクターＣはバンド１、バンド２に存在しているため、図８のタイミングｔ２に示すように、バンド２に対応している第４コア１４が処理を開始する。尚、ベクターＣはバンド１にも存在しているが、バンド１に対応している第３コア１３は、既に処理を介しているため、現在実行している処理が完了し次第、ベクターＣの描画処理を開始する。
【００７７】
このようにＳ７０７の処理が完了すると、ＤＬ処理部２２２は、再度前オブジェクトについての処理が完了したか否かを判断し、前オブジェクトについて処理が完了するまでＳ７０２からの処理を繰り返す（Ｓ７０８／ＮＯ）。そして、前オブジェクトについて処理が完了すると（Ｓ７０８／ＹＥＳ）、次に、ＰＤＬアプリケーション２００は入力されたＰＤＬデータに含まれる全てのページについて処理が完了しているかを判断し（Ｓ７０９）、完了していなければ（Ｓ７０９／ＮＯ）、他のページについてＰＤＬ解析以降の処理を実行するべくＳ７０１からの処理を繰り返す。Ｓ７０９において“ＮＯ”となったタイミングが、図８に示すタイミングｔ３及びｔ４、即ち、処理ページの切り替わりタイミングである。そして、全てのページについて処理が完了すると（Ｓ７０９／ＹＥＳ）、そのまま処理を終了する。
【００７８】
他方、第２コア１２〜第４コア１４においては、ＤＬ処理部２２２によって中間データ記憶部２２５に記憶された中間データに基づき、夫々の描画処理部２２６が、描画情報の生成処理を実行する（Ｓ７１０）。そして、一のオブジェクトについての描画処理が完了すると、描画処理部２２６は、一のページに含まれる全てのオブジェクトについての描画処理が完了したかを判断し（Ｓ７１１）、完了していなければ（Ｓ７１１／ＮＯ）、Ｓ７１０の処理を繰り返す。
【００７９】
一のページに含まれる全てのオブジェクトについての描画処理が完了していれば（Ｓ７１１／ＹＥＳ）、描画処理部２２６は、ページメモリに描画情報を出力し（Ｓ７１２）、全てのページについて処理が完了したか否か判断する（Ｓ７１３）。全てのページについて描画処理が完了していなければ（Ｓ７１３／ＮＯ）、描画処理部２２６は、Ｓ７１０からの処理を繰り返し、全てのページについて描画処理が完了したら（Ｓ７１３／ＹＥＳ）、そのまま処理を終了する。このような処理により、本実施形態に係るＰＤＬアプリケーション２００の動作が完了する。
【００８０】
このような処理の結果、図７に示す従来技術の期間Ｔ１やＴ２のように、描画処理部２２６において待機時間が発生しないように並列処理が効率的に実行され、図８の期間Ｔ３として示すように、３ページ目の描画処理が完了するまでの時間を従来技術よりも短縮させることができる。
【００８１】
また、従来技術においては、ページ単位で処理を区切っているため、描画処理部２２６が１ページ目の描画処理を開始するタイミングは、１ページ目のディスプレイリストが完全に生成されたタイミング、即ち、図８に示すタイミングｔ３であった。これに対して、本実施形態に係るＰＤＬアプリケーション２００は、ディスプレイリストの生成処理及び描画処理をオブジェクト毎に区切って並列化するため、１ページ目に含まれるオブジェクトのうち、最初の１つ目のオブジェクトのディスプレイリストが生成されたタイミング、即ち図８に示すタイミングｔ１から、描画処理部２２６が描画処理を開始することができる。これにより、処理の並列化が更に促進され、処理効率を向上することができる。
【００８２】
また、本実施形態に係るＰＤＬアプリケーションにおいては、ＤＬ処理部２２２がディスプレイリストを生成して中間データ記憶部２２５に記憶させる際、レンダラとして動作している複数の描画処理部２２６の処理状況を確認し、描画処理部２２６による処理を待っているディスプレイリスト、即ち中間データ記憶部２２５に未処理の状態で残っているディスプレイリストが多い場合は、負荷分散を実行してＤＬ形式変換部２２４に情報形式の変換を実行させることにより、描画処理部２２６の負荷を軽減する。
【００８３】
これにより、ＤＬ処理部２２２がディスプレイリストを生成して中間データ記憶部２２５に記憶させるスピードに描画処理部２２６の処理スピードが追いつかなくなり、ＤＬ処理部２２２側に待機時間が発生することを防ぐことができる。
【００８４】
以上説明したように、本実施形態に係る画像形成装置１においては、複数の演算手段を有する画像形成装置において、画像形成出力を実行するための画像処理を適切に並列化し、処理効率を向上することが可能となる。
【００８５】
尚、上記実施形態においては、図１に示すように、クアッドコアのＣＰＵ１０を用いる場合を例として説明したが、特にこれに限定されるものではなく、トリプルコア、デュアルコア若しくは５個以上のコアを有するＣＰＵに適用しても良い。
【００８６】
また、上記実施形態においては、図５に示すように、第１コア１１による制御によって描画情報の生成を行う中間データ処理部２２２と、第２コア１２〜第４コア１４による制御によって描画情報の生成を行う描画処理部２２６とを別々のブロックとして示した。しかしながら、描画情報の生成処理のうち、スキャンライン変換や、カラーマッチング等の途中の処理については、第１コア１１〜第４コア１４のいずれが実行しようとも同一の処理であり、中間データ処理部２２２及び描画処理部２２６を実現するためのソフトウェァ・プログラムは同一のものとすることができる。更には、ソフトウェア・プログラムに含まれるモジュールとしては、単一のモジュールが含まれるのみで、第１コア１１、第２コア１２のいずれが制御するかによって、中間データ処理部２２２若しくは描画処理部２２６として機能するように構成することも可能である。この場合においても、第１コア１１及び第２コア１２夫々によって制御されることによって並行して機能が実現されるため、画像形成装置１内部には、第１の描画情報生成部と第２の描画情報生成部とが構成されることとなる。
【００８７】
また、上記実施形態においては、図７のＳ７０４において、ＤＬ処理部２２２が負荷指数算出部２２３に記憶されている前サイクル負荷指数を参照して描画処理部２２６の待機処理量を算出し、Ｓ７０５においてその待機処理量に基づいて負荷分散の態様を決定する例を説明した。この他、ＤＬ処理部２２２は、中間データ記憶部２２５に未処理として残っている情報量を参照するようにしても良い。これによっても、待機処理量を判断することができ、上記と同様の効果を得ることができる。
【００８８】
尚、中間データ記憶部２２５に未処理として残っている情報量を参照する方法は、描画処理部２２６の処理の仕様によって異なる。例えば、処理が完了したオブジェクトのデータが即座に中間データ記憶部２２５から削除されるような仕様であれば、ＤＬ処理部２２２は、中間データ記憶部２２５に記憶されているオブジェクトのデータの容量に基づいて待機処理量を判断することができる。他方、処理が完了してから中間データ記憶部２２５から削除されるまでに時間的に差がある場合、上記方法では待機処理量を正確に判断することができない。この場合、描画処理部２２６が夫々のオブジェクトについて描画処理を実行する度に、実行した処理を示すフラグを中間データ記憶部に書き込むことにより、ＤＬ処理部２２２は、上記フラグを参照して待機処理量を判断することができる。
【００８９】
尚、図８の例においては、第２コア１２〜第４コア１４の処理時間が同等である理想的な場合を例として説明しているが、第２コア１２〜第４コア１４の処理時間の間に若干の差が生じる場合もあり得る。これは、各コアが夫々のバンド毎に割り当てられており、夫々のバンドに含まれるオブジェクトが異なるためである。この場合、ＤＬ処理部２２２が描画処理部２２６の処理状況を判断する際は、第２コア１２〜第４コア１４の中で一番進捗の悪いコア、一番進捗の良いコア、または各コアの平均の進捗を参照して待機処理量を判断することができる。
【００９０】
また、本実施形態に係る描画コアモジュール２２０においては、夫々の描画処理部２２６が、中間データ記憶部２２５に記憶されているデータを共有することができる。これにより、同一のオブジェクトについての描画処理を複数のコアで分割することが可能となる。例えば、上述したように、第４コア１４がベクターＣについての描画処理を先に開始した場合、第３コア１３は、第４コア１４によって処理されたベクターＣについてのデータを利用してベクターＣのうちバンド１に含まれる部分の描画情報を生成することができる。その結果、上述したように、各バンドに含まれるオブジェクトが異なるために、各コアの処理時間に生じる差異を低減することができる。そのような例について、図９（ａ）〜（ｅ）及び図１０（ａ）〜（ｄ）を参照して説明する。
【００９１】
図９（ａ）〜（ｅ）は、描画処理部２２６による描画処理の例として、図６に示すベクターＣのスキャンライン変換処理の各段階を示す図である。ベクターデータのベジエ曲線は、端点及び制御点の座標データによって構成されている。図９（ａ）は、ベジエ曲線を構成する点として端点Ｐ０、Ｐ３及び制御点Ｐ１、Ｐ２を有する場合のプロット例である。
【００９２】
図９（ｂ）は、図９（ａ）に示すような端点及び制御点について曲線のパスを描画した図である。端点及び制御点から曲線のパスを描画する方法は公知の方法であり詳細な説明を省略するが、隣接する２点を結ぶ線分を任意の割合で分割して点を描画し、その点を結ぶ線分を更に同様の割合で分割する点を求めることによってパス上の１点が求められる。そして、上記任意の割合を変化させて同様の処理を繰り返すことにより曲線のパスを示す点が描画される。図９（ｂ）に示すように曲線のパスを描画する処理がスキャンライン変換の第１段階であるパス作成処理である。
【００９３】
パス作成処理が完了すると、次に、図９（ｃ）に示すように、ベクターデータのパスからビットのパスへの変換処理が実行される。図９（ｃ）に示す処理がスキャンライン変換の第２段階であるビットパス変換処理である。
【００９４】
ビットパス変換処理が完了すると、次に、図９（ｄ）に示すように、パスで囲まれる画素の塗りつぶし処理が実行される。ここでは、元のベクターデータのＦＩＬＬ設定に基づき、塗りつぶしの要否が判断され、塗りつぶしを行う設定になっていれば、図９（ｄ）に示すようにパス内部が塗りつぶされた画像が生成される。図９（ｄ）に示す処理が、スキャンライン変換の第３段階であるＦＩＬＬ処理である。
【００９５】
ＦＩＬＬ処理が完了すると、図９（ｅ）に示すように、設定されているクリップに基づいて画像の切り出し処理が実行される。上述したように、各バンドのクリップの情報は、バンド管理データ内に含まれる。従って、各描画部は、描画処理において、バンド管理データに含まれるクリップ情報を参照して図９（ｅ）に示すように、オブジェクトの切り出しを行う。
【００９６】
上記実施形態の場合、まずバンド２に対応した第４コア１４によって制御される描画処理部２２６がベクターＣの描画処理を実行する。従って第４コア１４によって制御された描画処理部２２６は、図９（ａ）〜（ｅ）の処理を実行し、図９（ｅ）の処理においてバンド２に対応する部分を切り出す。また、第４コア１４によって制御された描画処理部２２６は、図９（ｄ）の段階まで処理された情報を描画キャッシュとして中間データ記憶部２２５に記憶させる。
【００９７】
これにより、バンド１に対応する第３コア１３によって制御された描画処理部２２６がベクターＣの描画処理を実行する場合は、中間データ記憶部２２５に記憶された描画キャッシュを用いることにより、図９（ａ）〜（ｄ）までの処理を省略し、図９（ｅ）の切り出し処理のみを実行することにより、ベクターＣの描画処理を完了することができる。尚、第３コア１３がベクターＣの描画処理として図９（ｅ）の切り出し処理を実行する場合は、バンド１に対応する部分を切り出す。
【００９８】
図１０（ａ）〜（ｄ）は、描画処理部２２６による描画処理の例として、図６に示すイメージＡの描画処理の各段階を示す図である。イメージデータは、一般的に図１０（ａ）に示すようにＲＧＢ形式のデータとして構成されている。図１０（ｂ）は、図１０（ａ）に示すＲＧＢ形式のデータに対してカラーマッチング処理を施した状態を示す図である。
【００９９】
カラーマッチング処理が完了すると、次に、図１０（ｃ）に示すように、ＲＧＢ形式からＣＭＹＫ形式への変換処理が実行される。ＣＭＹＫへの変換処理により、ＲＧＢ形式のイメージデータは、ＣＭＹＫ夫々のカラーデータに変換される。ＣＭＹＫ変換処理が完了すると、次に、図９（ｄ）に示すように、ＣＭＹＫ各値の総量規制処理が実行される。これにより、イメージデータの描画処理が完了する。
【０１００】
このようなイメージデータの処理を分散する場合、例えば、第２コア１２がカラーマッチング処理、第３コア１３がＣＭＹＫ変換処理、第４コア１４が総量規制処理というように処理を割り振ることができる。また、ＲＧＢデータは、ベクターデータとは異なり、部分毎に分割可能なデータであるため、各コアが夫々の部分毎にカラーマッチング、ＣＭＹＫ変換、総量規制の処理を行うようにしても良い。
【符号の説明】
【０１０１】
１  画像形成装置、
１０  ＣＰＵ、
１１  第１コア、
１２  第２コア、
２０  ＲＡＭ、
３０  ＲＯＭ、
４０  エンジン、
５０  ＨＤＤ、
６０  Ｉ／Ｆ、
７０  ＬＣＤ、
８０  操作部、
９０  バス、
１００  コントローラ、
１１１  主制御部、
１１２  エンジン制御部、
１１３  入出力制御部、
１１４  画像処理部、
１１５  操作表示制御部、
１１０  ＡＤＦ、
１２０  スキャナユニット、
１３０  排紙トレイ、
１４０  ディスプレイパネル、
１５０  給紙テーブル、
１６０  プリントエンジン、
１７０  排紙トレイ、
１８０  ネットワークＩ／Ｆ、
２００  ＰＤＬアプリケーション、
２１０  ＰＤＬ解析部、
２２０  描画コアモジュール、
２２１  描画コアモジュールＩ／Ｆ、
２２２  ＤＬ処理部、
２２３  負荷指数算出部、
２２４  ＤＬ形式変換部、
２２５  中間データ記憶部、
２２６  描画処理部、
【先行技術文献】
【特許文献】
【０１０２】
【特許文献１】特開２００７−７３００５号公報
【図１】
2011053944.tif 000004
【図２】
2011053944.tif 000005
【図３】
2011053944.tif 000006
【図４】
2011053944.tif 000007
【図５】
2011053944.tif 000008
【図６】
2011053944.tif 000009
【図７】
2011053944.tif 000010
【図８】
2011053944.tif 000011
【図９】
2011053944.tif 000012
【図１０】
2011053944.tif 000013