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