(57)【要約】【課題】画像形成に係るレンダリング処理において行われる分散処理の効率をより向上させる。【解決手段】本発明によれば、先ず画像形成に係る処理の負荷を推定する。さらにこの推定に基づき、複数の処理ユニットが実行するプログラムを再ロードする。その上で、複数の処理装置が各々画像形成にかかる処理に必要なデータを受け取り、レンダリング処理や画像処理を開始する。【選択図】  図６
2010162745.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理ユニットと、該処理ユニットを制御する制御部とを有する画像形成装置であって、
ブロック化された画像形成処理の対象となる対象データの、属性毎のブロック数および属性毎の処理負荷を示す指標値に基づいて、前記対象データに含まれる属性毎の処理負荷の重み付け係数を求める手段と、
前記重み付け係数の比率で、属性毎のブロックを処理する処理ユニットの数を前記複数の処理ユニットのうちから決定し、属性毎に処理ユニットを割り当てる手段と、
前記処理ユニットそれぞれの持つローカルメモリに、各処理ユニットに割り当てた属性に応じた処理プログラムをロードするロード手段と、
前記対象データをブロックごとに、該ブロックの属性に対応して割り当てられた処理ユニットにより、前記処理プログラムを実行して処理するよう制御する手段と、
前記処理ユニットにより処理されたブロックの処理済みデータを結合する手段と
を備えることを特徴とする画像形成装置。
【請求項２】
前記ロード手段は、各処理ユニットに割り当てた属性に加えて、前記対象データを記述したページ記述言語の種類に応じた処理プログラムをロードすることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記属性には、テキストとグラフィックとテキスト及びグラフィックの混合が含まれることを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
前記処理プログラムは、対象データをレンダリングするレンダラモジュールまたは対象データを画像処理する画像処理モジュール、またはレンダラモジュールと画像処理モジュールとを含むことを特徴とする請求項１乃至３のいずれか１項に記載の画像形成装置。
【請求項５】
結合された前記処理済みデータに基づいて、印刷媒体に画像を形成する画像形成手段を更に備えることを特徴とする請求項１乃至４のいずれか１項に記載の画像形成装置。
【請求項６】
複数の処理ユニットと、該処理ユニットを制御する制御部とを有する画像形成装置の制御方法であって、
前記画像形成装置の重み付け手段が、ブロック化された画像形成処理の対象となる対象データの、属性毎のブロック数および属性毎の処理負荷を示す指標値に基づいて、前記対象データに含まれる属性毎の処理負荷の重み付け係数を求める工程と、
前記画像形成装置の割り当て手段が、前記重み付け係数の比率で、属性毎のブロックを処理する処理ユニットの数を前記複数の処理ユニットのうちから決定し、属性毎に処理ユニットを割り当てる工程と、
前記画像形成装置のロード手段が、前記処理ユニットそれぞれの持つローカルメモリに、各処理ユニットに割り当てた属性に応じた処理プログラムをロードするロード工程と、
前記画像形成装置の制御手段が、前記対象データをブロックごとに、該ブロックの属性に対応して割り当てられた処理ユニットにより、前記処理プログラムを実行して処理するよう制御する工程と、
前記画像形成装置の結合手段が、前記処理ユニットにより処理されたブロックの処理済みデータを結合する工程と
を有することを特徴とする画像形成装置の制御方法。
【請求項７】
請求項１乃至５のいずれか一項に記載の画像形成装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置及びその制御方法に関し、特に、画像形成のための画像処理ならびにレンダリングに関する。
【背景技術】
【０００２】
従来の画像形成装置において、レンダリングや画像処理（両者をまとめて画像処理と呼ぶ）を短時間で行うために、ＣＰＵやＡＳＩＣ等専用のハードウエア（描画処理部と呼ぶ）を用意し、ホストコンピュータから受信したＰＤＬデータを描画処理部により処理するものがあった（図２参照）。
【０００３】
さらに、描画処理部を複数用意して、画像処理を並列に実行するものも提案されている。その際には、スキャンラインごとの処理負荷の推定値を得て、その推定値に基づいて複数の描画処理部へ画像処理が割り当てられる（たとえば特許文献１等参照）。これによって各描画処理部による処理負荷をならしている。
【０００４】
この場合の処理の分散を効率的に行うために、処理の種類毎に処理負荷を推定できる情報を用意し、この情報に基づき複数ある処理装置への処理の割り当て方法を決定する提案もされている。この処理によって、複数ある処理装置の処理時間をおおむね平準化することが出来る（たとえば特許文献２等参照）。
【０００５】
処理されるデータに基づいて処理を分散しても、描画処理部の性能差により生じる処理時間のばらつきは生じ得る。このような課題に対して、処理装置の処理方法を切り替えるという手法がある（例えば特許文献３等参照）。すなわち、命令をロードして実行可能な処理を切り替えられる処理装置を描画処理部に用い、ロードする命令を切り替え、データに適切な処理装置を実現する。ロードする命令はデータの特性に関連付けて決定される。
【特許文献１】特開平１０−３０７９２４号公報
【特許文献２】特開２００７−８１７９５号公報
【特許文献３】特開平１１−１６５４３４号広報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、処理可能な命令を切り替え可能な処理装置を用いることで、画像形成に係る処理の高速化が実現される。しかし、処理装置が処理可能な命令を切り替える遅延時間が生じるという課題があった。この処理装置の切り替えは、データが分割されているためにデータに合わせて複数回発生する可能性があり、その遅延時間はさらに拡大して、結局並列化によってもたらされる高速化の効果を損ね、処理速度の低下を招くおそれがあった。
【０００７】
本発明は、上記の従来例に鑑みてなされたもので、上述した課題を解決することを目的とする。即ち、処理装置における処理可能な命令の切り替えの回数を減少させることで高速化を実現する画像形成装置及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明は以下の構成を備える。
【０００９】
複数の処理ユニットと、該処理ユニットを制御する制御部とを有する画像形成装置であって、
ブロック化された画像形成処理対象となる対象データの、属性毎のブロック数および属性毎の処理負荷を示す指標値に基づいて、前記対象データに含まれる属性毎の処理負荷の重み付け係数を求める手段と、
前記重み付け係数の比率で、属性毎のブロックを処理する処理ユニットの数を前記複数の処理ユニットのうちから決定し、属性毎に処理ユニットを割り当てる手段と、
前記処理ユニットそれぞれの持つローカルメモリに、各処理ユニットに割り当てた属性に応じた処理プログラムをロードするロード手段と、
前記対象データをブロック単位で読み、該ブロックの属性に対応して割り当てられた処理ユニットにより、前記処理プログラムを実行して処理するよう制御する手段と、
前記処理ユニットにより処理されたブロックの処理済みデータを結合する手段とを備える。
【発明の効果】
【００１０】
本発明によれば、複数の処理ユニットを用いて分散処理を行う際の処理を高速化する効果がある。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の発明を実施するための最良の形態について図面を用いて説明する。
【００１２】
［画像形成処理］
図１は本発明の一実施形態に係る画像形成装置１２と画像形成装置に接続された情報処理装置１１の構成を示すブロック図である。図１において、情報処理装置１１は、パーソナルコンピュータなどの情報処理装置である。情報処理装置１１は同装置上でＰＤＬ（ページ記述言語）データ１００を生成することが出来る。さらに情報処理装置１１はネットワークやＵＳＢに代表されるインターフェースを経由してＰＤＬデータ１００を含むデータを情報処理装置１１の外部の装置、たとえば画像形成装置１２に転送することが出来る。
【００１３】
ＰＤＬデータ１００は、図４に示すように、描画データと印刷制御データを含むことが出来る。描画データは、画像形成装置１２が解釈し、可視的な描画を行うことが出来るデータである。また印刷制御データは、ＰＤＬデータ１００をどのような方法で画像形成すればよいかを含む情報である。例えば印刷制御データは、紙のサイズや、紙の種類を指定する情報を示すことが出来る。また、印刷制御データ１００−２が持つことが出来る情報は、製本処理の方法などを含む、画像形成を行った後の加工処理のための情報を示すことが出来る。
【００１４】
次に、画像形成装置１２について説明する。画像形成装置１２はプリンタや複合機などであり、ＰＤＬデータ１００に代表されるデータをもとに、紙に代表されるシート媒体に可視像を形成することが出来る。次に、画像形成装置１２がシート媒体に可視像を形成するための、画像形成に係る処理を説明する。図３は画像形成装置１２が行う画像形成に係る処理のフロー図である。
【００１５】
図３において、まず、ｓ１０でネットワーク部１２−１が情報処理装置１１からＰＤＬデータを受信する。ネットワーク部１２−１はＩＥＥＥ８０２．３に代表されるプロトコルで他装置と通信を行うことで、ＰＤＬデータを含むデータを得ることが出来る。また、このｓ１０の処理では、ＵＳＢ部１２−２を用いて他装置と通信を行い、ＰＤＬデータを含むデータを得てもよい。このほかにも画像形成装置１２をＩＥＥＥ１３９４ａやＲＳ−２３２Ｃ乃至ＩＥＥＥ１２８４に準拠したインターフェースを介して他装置と接続することで、ＰＤＬデータ含むデータを得ても本発明は実施可能である。
【００１６】
画像形成装置１２が情報処理装置１１に代表される他装置から得たＰＤＬデータは、次に画像形成装置１２内の画像形成処理部１２−３が受け取る（ｓ１２）。次に画像形成処理部１２−３は、ｓ１４で得たＰＤＬデータをもとに印刷データを生成する。ｓ１４の詳細は図７を参照して後で説明する。次にｓ１６で、印刷エンジン１２−４がこの印刷データ１０２を得る。印刷データ１０２は、図５が示すように、ラスタイメージデータ１０２−１と、印刷エンジン制御データ１０２−２を持つ。印刷エンジンは得た印刷データ１０２をもとに画像形成を行い、紙などに代表される印刷媒体上に可視像を形成する（ｓ１８）。ラスタイメージデータ１０２−１は、複数のブロック（あるいはタイル）１０２−１−１に分割されてブロック化され、各ブロック毎に処理された後で再結合されてラスタイメージデータ１０２−１が再生される。印刷エンジン１２−４による画像形成に用いられるデータは、この再生されたラスタイメージデータ１０２−１である。
【００１７】
［画像形成処理部による処理］
ここまでで画像形成装置１２が行う画像形成について説明した。次にその画像形成の中でも、画像形成処理部１２−３内で行われる図３のＳ１４で示した処理についてより詳細に説明する。
【００１８】
図６は画像形成装置１２が持つ画像形成処理部１２−３の構成を図示している。画像形成処理部１２−３は、ＣＰＵに代表される汎用プロセッサ１２−３−１を持つ。この汎用プロセッサ１２−３−１は、例えば処理ユニットやバス、Ｉ／Ｏコントローラ等、画像形成処理部１２−３内の他の構成部分を制御する制御部として機能することが出来る。以下、その画像形成処理部１２−３内のほかの装置について述べる。
【００１９】
複数の処理ユニット１（１２−３−２）、処理ユニット２（１２−３−３）、処理ユニット３（１２−３−４）及び処理ユニット４（１２−３−５）はそれぞれ、汎用プロセッサ１２−３−１から制御可能な処理ユニットである。なおこれら処理ユニットを、以下、まとめて「処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）」と略称する。処理ユニットは汎用プロセッサの制御のもとで、ＰＤＬデータ１００の処理や、後述する中間データ１０１を生成するレンダリング処理及び生成したラスタイメージデータ１０２−１の画像処理を行うことが出来る。
【００２０】
さらに、各処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）、それぞれローカルメモリ１（１２−３−２−１）、ローカルメモリ２（１２−３−３−２）、ローカルメモリ３（１２−３−３−３）及びローカルメモリ４（１２−３−３−４）（以下まとめて「ローカルメモリ（１２−３−２−１、１２−３−３−２、１２−３−３−３、１２−３−３−４）」と称する）を持つ。これらのローカルメモリ（１２−３−２−１、１２−３−３−２、１２−３−３−３、１２−３−３−４）は少なくとも、それぞれの処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）が処理可能な処理形態を決定するための命令群を保存することが出来る。例えば各ローカルメモリには複数の命令群が格納されている。汎用プロセッサ１２−３−１はそれぞれの処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）を制御し、これらローカルメモリ（１２−３−２−１、１２−３−３−２、１２−３−３−３、１２−３−３−４）に保存される命令群を選択することが出来る。これによって、汎用プロセッサ１２−３−１は、それぞれの処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）が可能な処理を決定することが出来る。たとえば、ひとつの命令群は、テキストの展開に最適なプログラムコード列であり、また他の命令群はグラフィックデータの展開に最適なプログラムコード列である。プログラムをこれら処理別に分けることで、汎用プログラムを用いた場合の冗長処理（たとえばオブジェクトの種類の判定など）が不要となり、コードを最適化（あるいは効率化）することができる。このように相異なる複数のプログラムコード列を選択的にロード可能であれば、データ種類毎に最も効率よく処理可能なプログラムコード列を実行してデータを処理することが可能となる。
【００２１】
メモリコントローラ１２−３−５はメインメモリ１２−３−６及びＲＯＭ１２−３−９へのインターフェースである。即ち、メモリコントローラ１２−３−５は、メインメモリ１２−３−６へのデータの読み込み及び書き込みを可能ならしめる。また、メモリコントローラ１２−３−５はＲＯＭ１２−３−９へのデータの読み込みを可能ならしめる。
【００２２】
ＩＯコントローラ１２−３−８は画像形成処理部１２−３外の構成部分とのインターフェースである。即ち、ＩＯコントローラ１２−３−８は、画像形成処理部１２−３外の装置とのデータの交換を可能ならしめる。
【００２３】
ローカルバス１２−３−７は、汎用プロセッサ１２−３−１と、各処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）と、メモリコントローラ１２−３−５と、ＩＯコントローラ１２−３−８とを接続する。即ち、ローカルバス１２−３−７はこれら接続した装置間でデータの交換を可能ならしめる。
【００２４】
以上説明した構成で画像形成処理装置１２−３はＰＤＬデータを元に印刷データを生成する。次に中間データ１０１の構成を図８で、印刷データ生成に係る処理ステップ（図３のｓ１４）を図７を用いながら説明する。
【００２５】
＜中間データ＞
図８は中間データ１０１を説明した図である。中間データ１０１は複数の分割された中間データ１０１−１に分割される。また、中間データ１０１は印刷制御中間データ１０１−２を持つ。分割された中間データ１０１−１はさらに、グラフィックデータ１０１−１−１、テキストデータ１０１−１−２及び領域情報１０１−１−３を持つ。
【００２６】
ここで中間データ１０１は、例えば図９のような構造を持つ。分割された中間データ１０１−１は、中間データ１０１を空間的に分割した各ブロックのデータを持つ。もちろん、中間データ１０１の分割の仕方は図９に例示された分割方法に限らず、本発明を実施できる。しかしながら、負荷分散のための負荷の予測等のためには、各ブロックは同一のサイズであることが望ましい。
【００２７】
さらにその分割された中間データ１０１−１はそれぞれ、グラフィックデータ１０１−１−１とテキストデータ１０１−１−２とを持つことが出来る。グラフィックデータとは、本実施形態ではラスタイメージとベクタイメージとを含むデータをさす。また、本実施形態ではテキストデータとは、描画すべき文字データをさす。たとえば文字コードとサイズや書体等の就職情報とを含む。
【００２８】
領域情報１０１−１−３は、分割された中間データ１０１−１それぞれの領域情報を持つ。図１０は図９の中間データ１０１が持つ領域情報を例示した図である。本実施例では領域情報１０１−１−３は４種類の情報を持つことが出来る。即ち、領域情報１０１−１−０はその領域に描画すべきデータがないことを示している。領域情報１０１−３−１はその領域がグラフィックデータを描画すべきであることを示す。領域情報１０１−３−２はその領域がテキストを描画すべきであることを示す。領域情報１０３−３−３はその領域がテキストとグラフィックを描画すべきであることを示す。
【００２９】
印刷制御中間データ１０１−２は、印刷制御データ１００−２をもとに生成されるデータである。この印刷制御データ１００−２は少なくとも、画像形成すべき媒体の大きさや（例えば用紙サイズと呼ばれるもの）、製本処理の方法を示す情報などを持つことが出来る。
【００３０】
以上、汎用プロセッサ１２−３−１によって生成される中間データ１０１を説明した。次に印刷データ生成処理を図７を参照して説明する。
【００３１】
＜印刷データ生成処理＞
図７において、画像生成処理部１２−３の汎用プロセッサ１２−３−１はＰＤＬデータ１００の解釈処理を行い、中間データ１０１を生成する（ｓ１４−０）。このＰＤＬデータ１００は複数の種類がある。例えばアドビシステムズ社のＰＤＦやポストスクリプト（登録商標）、キヤノン株式会社のＬＩＰＳなどが知られている。汎用プロセッサ１２−３−１は、これら異なるデータフォーマットが存在するＰＤＬデータ１００から、共通のデータ形式である中間データ１０１を生成する。ただし、汎用プロセッサ１２−３−１は異なる全てのデータフォーマットに対応する必要はなく、少なくともいずれか一つに対応しているだけであっても良い。本例ではこの中間データがブロック化された処理対象のデータすなわち対象データである。しかし、ＰＤＬデータを処理対象と呼ぶこともできる。
【００３２】
次に汎用プロセッサ１２−３−１は、処理ユニットへ命令（プログラムモジュール）をロードする（ｓ１４−２）。この処理ｓ１４−２を図１１を用いながら説明する。汎用プロセッサ１２−３−１は生成された中間データを解析する。少なくともその解析をもとに処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）のローカルメモリ（１２−３−２−１、１２−３−３−２、１２−３−３−３、１２−３−３−４）へそれぞれ転送する命令群を決定する。この汎用プロセッサ１２−３−１が行う解析と命令のロード（ｓ１４−２）はより詳細には下記のように行われる。
【００３３】
先ず汎用プロセッサ１２−３−１は、ｓ１４−２−０で、少なくとも中間データに含まれる属性情報１０１−１−３が示す情報を分析する。より詳細には、汎用プロセッサ１２−３−１は、中間データ１０１が持つ各分割された中間データ１０１−１に対応した領域情報１０１−１−３から、"Ｎｏｎｅ"１０１−１−３−０，"Ｔｅｘｔ"１０１−１−３−２，"Ｇｒａｐｈｉｃ"１０１−１−３−１，"Ｔｅｘｔ＋Ｇｒａｐｈｉｃ"１０１−１−３−３の属性それぞれに分類される中間データ１０１−１（すなわちブロック或いはタイル）がいくつあるかを数える。以下、この属性を示す分割された中間データ１０１−１の数を、その属性のタイル数という。
【００３４】
次に汎用プロセッサ１２−３−１はｓ１４−２−２で、少なくともｓ１４−２−０で得られた情報をもとに。各属性に対応する重み付けパラメータを計算する。より詳細には、各重み付けパラメータは、少なくとも各属性のタイル数と、あらかじめ用意された各属性の処理負荷パラメータとを乗算して得られる。このあらかじめ用意された各属性の処理負荷パラメータは、印刷データ１０２を得るために、属性ごとに、分割された中間データ１０１−１を処理するのに必要な処理負荷の比率を示す。本実施形態では。例えば図１６のような値が与えられる。即ち、"Ｔｅｘｔ"１０１−１−３−２の属性を持つ分割された中間データ１０１−１は、"Ｇｒａｐｈｉｃ"１０１−１−３−１の属性を持つ分割された中間データ１０１−１に対して、５／３（おおよそ１．７倍）の処理時間がかかることを示す。図１６では、データ無し（ＮＯＮＥ）を基準として示されている。本実施形態では、このこのあらかじめ用意された各属性の処理負荷パラメータはＲＯＭ１２−３−９に保存されている。汎用プロセッサ１２−３−１はメモリコントローラ１２−３−５を介してＲＯＭ１２−３−９に保存された各属性の処理負荷パラメータを得ることが出来る。
【００３５】
また本実施形態では、少なくともｓ１４−２−０で得られた中間データをもとに、属性に対応する重み付けパラメータを計算を下記のような計算式で行う。
ｗｃ（ｎｏｎｅ）＝Ｔｉｌｅ（ｎｏｎｅ）×ＰＬ（ｎｏｎｅ）
ｗｃ（ｉｍａｇｅ）＝Ｔｉｌｅ（ｉｍａｇｅ）×ＰＬ（ｉｍａｇｅ）
ｗｃ（ｔｅｘｔ）＝Ｔｉｌｅ（ｔｅｘｔ）×ＰＬ（ｔｅｘｔ）
ｗｃ（ｉｍａｇｅ＋ｔｅｘｔ）＝Ｔｉｌｅ（ｉｍａｇｅ＋ｔｅｘｔ）×ＰＬ（ｉｍａｇｅ＋ｔｅｘｔ）  ...  （数式１）
ここで、ｗｃ（ａｔｔｒ）は各属性（ａｔｔｒ）の重み付けパラメータを、Ｔｉｌｅ（ａｔｔｒ）は各属性（ａｔｔｒ）のタイル数（ブロック数）を、ＰＬ（ａｔｔｒ）は各属性（ａｔｔｒ）の処理負荷パラメータを示す。タイル数はデータ量の指標値として利用されている。タイル数は処理単位毎であってよく、たとえばバンディングを行っている場合には、バンド内で数えられる。このほかページを単位として数えても良いし、ジョブを単位として数えても良い。処理負荷パラメータはたとえば実験的に予め測定するなどして決定しておくことができる。
【００３６】
計算結果であるｗｃ（ａｔｔｒ）は、中間データ１０１を処理し印刷データ１０２を得るのに必要とする属性毎の処理の重みを示す。すなわち、ある印刷単位（ジョブやページ或いはバンドなど）を処理する場合の、属性毎の処理負荷の指標値である。例えばある属性のｗｃ（ａｔｔｒ）が他の属性のｗｃ（ａｔｔｒ）より大きいということは以下のことを意味する。即ち、中間データ１０１から印刷データ１０２を得るために、前者の属性のｗｃ（ａｔｔｒ）を示す分割された中間データ１０１−１の処理の総時間が、後者の属性を示す中間データ１０１−１の処理の総時間より大きい。
【００３７】
次に、この計算結果から汎用プロセッサ１２−３−１はｓ１４−２−４でそれぞれの処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）へロードすべき命令を決定する。
【００３８】
このｓ１４−２−４では、汎用プロセッサ１２−３−１は、数式１でえられたｗｃ（ａｔｔｒ）の値にもとづき、ＲＯＭ１２−３−９乃至１２−３−６に保存された命令を選択する。図１２はＲＯＭ１２−３−９乃至メインメモリ１２−３−６に保存された命令を図解している。
【００３９】
命令群１０００は、ｓ１４−４で処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすることのできる命令群である。以下に、その命令群に含まれる命令の種類について説明する。
【００４０】
＜提供し得るプログラムモジュール＞
基本プログラム用命令群１０００−１は、主にローカルメモリ（１２−３−２−１、１２−３−３−２、１２−３−３−３、１２−３−３−４）のメモリ管理や以下に示される他命令群の管理を行う。
【００４１】
レンダラ命令群１０００−２は、レンダリング処理プログラムである。ここで言うレンダリング処理は、中間データ１０１中の分割された中間データ１０１−１すなわちタイルをレンダリング処理し、ラスタイメージデータを生成する処理である。レンダラ命令群１０００−２はさらに、ＰＤＬ−Ａ用レンダラモジュール１０００−２−０、ＰＤＬ−Ｂ用レンダラモジュール１０００−２−１及び共通レンダラモジュール１０００−２−３を持つ。それぞれのレンダラモジュールは、互いに異なるＰＤＬに基づいて生成された中間データを解釈してレンダリングするために適したプログラムモジュールである。
【００４２】
画像処理命令群１０００−３は、レンダリング処理で得られたラスタイメージデータに画像処理をするためのプログラムである。画像処理命令群１０００−３には、文字画像処理モジュール１０００−３−０、グラフィック画像処理モジュール１０００−３−１、共通画像処理モジュール１０００−３−２が含まれる。
【００４３】
ＣＭＳ（カラーマネジメントシステム）命令群１０００−４は、色調整を行うためのプログラムである。ＣＭＳ命令群１０００−４はさらに、ＰＤＬ−Ａ用ＣＭＳモジュール１０００−４−０、ＰＤＬ−Ｂ用ＣＭＳモジュール１０００−４−１、共通ＣＭＳモジュール１０００−４−２を持つ。
【００４４】
次にこれら、命令群すなわちプログラムが、ＰＤＬ−Ａ用とＰＤＬ−Ｂ用や文字画像処理とグラフィック処理といったように複数種類用意されている理由について述べる。上述したように、ＰＤＬデータ１００は複数の種類のデータフォーマットが存在する。繰り返しになるが、ＰＤＬには、例えばアドビ社のＰＤＦやポストスクリプト（登録商標）、さらにはＬＩＰＳなども存在する。汎用プロセッサ１２−３−１は、これら複数種類あるＰＤＬデータ１００を単一のデータフォーマットである中間データ１０１に変換する。しかし、中間データ１０１のデータフォーマットは統一されているものの、ＰＤＬデータ１００の種類に依存してその中間データ１０１が持つデータの傾向は異なり得る。
【００４５】
例えば、アドビＰＤＦは、そのＰＤＬデータ１００に透過情報を持つことが出来る。このため、ＰＤＦで記述したＰＤＬデータ１００から生成された中間データ１０１は透過情報を含むか、それに依存した情報を持つ。一方でポストスクリプト（登録商標）やＬＩＰＳはそのＰＤＬデータ１００に透過情報を持つことが出来ない。このため、ポストスクリプト（登録商標）やＬＩＰＳのＰＤＬデータから生成された中間データ１０１は透過情報及び、それに依存した情報を持つことはない。
【００４６】
このようにＰＤＬデータ１００の種類の違いから中間データ１０１で記述されうる情報が異なるため、中間データ１０１からラスタイメージデータを生成する際に必要となる処理も異なる。即ち、例えばアドビＰＤＦで記述したＰＤＬデータから生成された中間データ１０１は透過情報乃至それに依存した情報を処理してラスタイメージデータを生成する必要がある。しかしながら、例えばポストスクリプト（登録商標）やＬＩＰＳで記述したＰＤＬデータから生成された中間データ１０１は、透過情報乃至それに依存した情報を処理してラスタイメージデータを生成する必要がない。
【００４７】
本実施形態ではこれらの必要な処理の違いを考慮し、ＲＯＭ１２−３−９乃至メインメモリ１２−３−６に複数種類の命令（プログラムモジュール）が記録されている。例えば、ＰＤＬ−Ａ用レンダラモジュールは、ポストスクリプト（登録商標）用であり、透過情報を処理するための機能と、また、ラスタデータをＣＭＹＫ表色系で出力する機能とを有する。一方、ＰＤＬ−Ｂ用レンダラモジュールは、他のＰＤＬ用であり、透過情報を処理するための機能は持たず、また、ラスタデータをＲＧＢ表色系で出力する機能を有する。もちろんこれは一例に過ぎない。
【００４８】
次に、画像処理命令群１０００−３に含まれる文字画像処理モジュール１０００−３−０とグラフィック画像処理モジュール１０００−３−１を説明する。文字画像処理モジュール１０００−３−０は、文字部分のエッジ強調など、文字に特有な画像処理を行うことが出来る。対してグラフィック画像処理モジュール１０００−３−１は、エッジ強調処理など文字に特有な処理機能を持たない代わりに、写真の赤目補正や肌色補正処理などの処理機能を持つ。
【００４９】
上述したように、中間データ１０１が持つ分割された中間データ１０１−１は属性情報１０１−１−３を持つことが出来る。この属性情報１０１−１−３はその分割された中間データ１０１−１が持つ描画データの特性を示している。然るに、この属性情報１０１−１−３から、汎用プロセッサ１２−３−１或いは処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）は、ある分割された中間データ１０１−１が文字画像処理モジュール１０００−３−０が持つ処理を必要としているのか、或いはグラフィック画像処理モジュール１０００−３−１が持つ処理を必要としているのかを判断することが出来る。
【００５０】
本実施形態では、属性毎に必要な処理の違いを考慮し、ＲＯＭ１２−３−９乃至メインメモリ１２−３−６に複数種類の命令が記録されている。
【００５１】
次に、ＣＭＳ命令群１０００−４に含まれるＰＤＬ−Ａ用ＣＭＳモジュールとＰＤＬ−Ｂ用ＣＭＳモジュール１０００−４−１を説明する。上述したように、ＰＤＬデータ１００の種類は複数ある。このためＰＤＬデータ１００の種類に依存して、必要とされる色調整に係る処理も異なる。例えばポストスクリプト（登録商標）は、その言語仕様のため、レンダリング処理をＣＭＹＫ色空間で行う必要がある。このため本実施形態において汎用プロセッサ１２−３−１及び処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）は、画像形成処理装置１２−３に入力されたＰＤＬデータがポストスクリプト（登録商標）である場合には、そのＰＤＬデータ１００、及び中間データ１０１の処理をＣＭＹＫ色空間内で処理を行う。
【００５２】
これに対して、ＬＩＰＳなどのＰＤＬデータ１００はＣＭＹＫ色空間ではなくＲＧＢ色空間で色調整が施されてもよい。ところでＣＭＹＫ色空間に対してＲＧＢ色空間は、色を表現するために必要な情報量が少ない。このためＲＧＢ色空間で色調整を行うと、ＣＭＹＫ色空間で色調整処理を行うよりも、処理の高速化及び必要とされるメモリ量の削減が可能である。このため、汎用プロセッサ１２−３−１及び処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）は、ＲＧＢ色空間で処理可能なＬＩＰＳ等のＰＤＬデータ１００から生成された中間データ１０１をＲＧＢ色空間で処理した方が望ましい。処理速度の向上と処理に必要とされるメモリ量の削減が見込めるからである。
【００５３】
本実施形態では、これらの必要な処理の違いを考慮し、ＲＯＭ１２−３−９乃至メインメモリ１２−３−６に複数種類の命令群すなわち複数種類のプログラムモジュールが記録されている。例えばＰＤＬ−Ａ用ＣＭＳモジュールは、ポストスクリプト（登録商標）用であり、ＣＭＹＫ表色系を処理する。また、透過情報について処理する機能を持っていていも良い。また例えばＰＤＬ−Ｂ用ＣＭＳモジュールは、その他のＰＤＬ用であり、ＲＧＢ表色系を処理する。また、透過情報について処理する機能は不要である。
【００５４】
以上、重み付けパラメータの計算結果から汎用プロセッサ１２−３−１がｓ１４−２−４で決定すべき命令群（プログラムモジュール）について説明した。
【００５５】
＜プログラムモジュールの選択処理＞
次に、このｓ１４−２−４で汎用プロセッサ１２−３−１が処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべき命令を選択する処理を説明する。図１３はその処理ｓ１４−２−４をより詳細を図解している。
【００５６】
汎用プロセッサ１２−３−１は先ず、ｓ１４−２−４−０で各属性に対応するプログラムモジュールの数を決定する。この処理は、複数ある処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべきプログラムモジュールの種類の数を決定する。
【００５７】
本実施形態では処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードされる命令群（プログラムモジュール）は少なくとも属性情報１０１−１−３に関連付けられている。即ち、汎用プロセッサ１２−３−１は少なくとも処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべき命令（プログラムモジュール）として、少なくとも以下のものを選択できる。
１．属性情報１０１−１−３が"Ｔｅｘｔ"１０１−１−３−２を示す分割された中間データ１０１−１に関連付けられたプログラムモジュール
２．属性情報１０１−１−３が"Ｇｒａｐｈｉｃ"１０１−１−３−１を示す分割された中間データ１０１−１に関連付けられたプログラムモジュール
３．属性情報１０１−１−３が"Ｔｅｘｔ＋Ｇｒａｐｈｉｃ"１０１−１−３−３を示す分割された中間データ１０１−１に関連付けられたプログラムモジュール。
【００５８】
汎用プロセッサ１２−３−１は少なくとも数式１で与えられる重み付けパラメータから、これらの命令（プログラムモジュール）をそれぞれいくつ処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべきかを決定する。
【００５９】
例えば、
ｗｃ（ｔｅｘｔ）＝３０．０
ｗｃ（ｇｒａｐｈｉｃ）＝４２．０
ｗｃ（ｔｅｘｔ＋ｇｒａｐｈｉｃ）＝１０２．０
という計算結果が得られたとする。
【００６０】
ここで本実施形態では、図６に示したように処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）は４つある。このことから、汎用プロセッサ１２−３−１は重み付け係数ｗｃ（ａｔｔｒ）を、それぞれの比が示す値の合計値が４になるように正規化する。すなわち重み付け係数は、その合計値が、レンダリング等の処理が分散される処理ユニットの数と等しくなるように正規化される。画像形成処理部１２−３の汎用プロセッサ１２−３−１はこの正規化を行って上記重み付け係数をおおむね以下のような値に変換する。ここで「ｎｏｒｍａｌ」は正規化済みの値であることを示す。
ｎｏｒｍａｌ（ｗｃ（ｔｅｘｔ））＝０．６９
ｎｏｒｍａｌ（ｗｃ（ｇｒａｐｈｉｃ））＝０．９７
ｎｏｒｍａｌ（ｗｃ（ｔｅｘｔ＋ｇｒａｐｈｉｃ））＝２．３５。
【００６１】
これらの重み付け係数値は、属性情報に関連付けられた処理の負荷の比を示す。因って、得られた重み付け係数値にもとづき、汎用プロセッサ１２−３−１は属性情報に関連付けられた命令群（プログラムモジュール）を、それぞれいくつ処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべきかを判断できる。各処理ユニットは１個未満に分割することが出来ないので、汎用プロセッサ１２−３−１は以下のように処理を行う。
１．重み付け係数が１未満の場合には、１に切り上げる。すなわち、該当する属性の中間データのタイルを処理するために、１つの処理ユニットを割り当てる。
２．割り当て済みの処理ユニットの数を、重み付け係数の合計値（すなわち全処理ユニット数）から差し引く。
３．差し引かれた値を、残りの属性に対応する重み付け係数値の比で分割する。もちろん整数となるように分割される。
４．以上の手順でもしも処理ユニット数の合計値に過不足があった場合には、たとえば最も多くの処理ユニットが割り当てられている属性について、その処理ユニット数で調整するなどすればよい。こうして、おおむね各属性の重み付け係数の比率で、各属性に割り当てる処理ユニットの数を決定することができる。このとき数だけでなく、各属性に割り当てる処理ユニットを決定しても良い。
【００６２】
本実施形態では具体例として以下のようになる。
１．汎用プロセッサ１２−３−１は、属性情報１０１−１−３が"Ｔｅｘｔ"１０１−１−３−２を示す分割された中間データ１０１−１に関連付けられた命令を処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）に１つロードすることを決定する。これは重み付け係数が１未満であるためである。
２．汎用プロセッサ１２−３−１は、属性情報１０１−１−３が"Ｇｒａｐｈｉｃ"１０１−１−３−１を示す分割された中間データ１０１−１に関連付けられた命令を処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）に１つロードすることを決定する。これは重み付け係数が１未満であるためである。
３．汎用プロセッサ１２−３−１は、属性情報１０１−１−３が"Ｔｅｘｔ＋Ｇｒａｐｈｉｃ"１０１−１−３−３を示す分割された中間データ１０１−１に関連付けられた命令を処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）に２つロードすることを決定する。これは残された処理ユニットを全て割り当てられるためである。
【００６３】
以上、汎用プロセッサ１２−３−１は属性情報１０１−１−３に関連付けられた命令群を、それぞれいくつ処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべきかを判断した。次に、汎用プロセッサ１２−３−１はｓ１４−２−４−２で上記それぞれの命令群を生成するために、命令の選択処理を行う。尚、この命令の選択処理は、汎用プロセッサ１２−３−１によってまずそれぞれの処理ユニットに属性を対応付けておく。そして、属性情報１０１−１−３が示す属性ごとに図１４の処理が行われる。図１４の処理の結果、属性に対応してプログラムモジュールが選択される。選択されたプログラムモジュールは、当該属性に対して割り当てられた処理ユニットのローカルメモリにロードされる。一属性に対して複数の処理ユニットが割り当てられている場合には、該当する処理ユニット全てに共通のプログラムモジュールがロードされる。
【００６４】
さて、図１４はその命令選択処理ｓ１４−２−４−２をより詳細に説明する図である。以下、図１４を用いながら命令選択処理ｓ１４−２−４−２のより詳細な説明を行う。
【００６５】
汎用プロセッサ１２−３−１は、先ずｓ１４−２−４−２−０で中間データ１０１の生成に使われたＰＤＬデータ１００がＲＯＰや透過処理といった処理を記述可能な種類かを判断する。汎用プロセッサ１２−３−１は、中間データ１０１が若しＲＯＰや透過処理といった処理を記述可能な種類のＰＤＬデータ１００から生成されていれば、ｓ１４−２−４−２−２に進む。汎用プロセッサ１２−３−１は、中間データ１０１が若しＲＯＰや透過処理といった処理を記述可能な種類のＰＤＬデータ１００から生成されていなければ、ｓ１４−２−４−２−４に進む。
【００６６】
汎用プロセッサ１２−３−１はｓ１４−２−４−２−２では、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべき命令として上述したＰＤＬ−Ａ用レンダラモジュール１０００−２−０を選択する。汎用プロセッサ１２−３−１は、一方でｓ１４−２−４−２−４では、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべき命令として上述したＰＤＬ−Ｂ用レンダラモジュール１０００−２−１を選択する。
【００６７】
次に汎用プロセッサ１２−３−１はｓ１４−２−４−２−６で、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべき命令として上述した共通レンダラモジュール１０００−２−３を選択する。
【００６８】
以上の処理で、汎用プロセッサ１２−３−１によるレンダラ命令群１０００−２中の命令の選択が完了する。
【００６９】
次に汎用プロセッサ１２−３−１はｓ１４−２−４−２−８で、処理の対象となっている属性情報１００−１−３が示す属性が"Ｔｅｘｔ"かを調べる。汎用プロセッサ１２−３−１は、若し属性が"Ｔｅｘｔ"であればｓ１４−２−４−２−１０に進む。一方、汎用プロセッサ１２−３−１は、若し属性が"Ｔｅｘｔ"でなければｓ１４−２−４−２−１２に進む。汎用プロセッサ１２−３−１は、ｓ１４−２−４−２−１０では、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべき命令として上述した文字画像処理モジュール１０００−３−０を選択する。
【００７０】
また、汎用プロセッサ１２−３−１はｓ１４−２−４−２−１２では、処理の対象となっている属性情報１００−１−３が示す属性が"Ｇｒａｐｈｉｃ"かを調べる。汎用プロセッサ１２−３−１は、若し属性が"Ｇｒａｐｈｉｃ"であればｓ１４−２−４−２−１４に進む。一方、汎用プロセッサ１２−３−１は、若し属性が"Ｇｒａｐｈｉｃ"でなければｓ１４−２−４−２−１６に進む。汎用プロセッサ１２−３−１は、ｓ１４−２−４−２−１４では、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべき命令として上述したグラフィック画像処理モジュール１０００−３−１を選択する。
【００７１】
また、汎用プロセッサ１２−３−１はｓ１４−２−４−２−１６では、処理の対象となっている属性情報１００−１−３が示す属性が"Ｔｅｘｔ＋Ｇｒａｐｈｉｃ"かを調べる。汎用プロセッサ１２−３−１は、若し属性が"Ｔｅｘｔ＋Ｇｒａｐｈｉｃ"であればｓ１４−２−４−２−１８に進む。一方、汎用プロセッサ１２−３−１は、若し属性が"Ｔｅｘｔ＋Ｇｒａｐｈｉｃ"でなければｓ１４−２−４−２−２２に進む。汎用プロセッサ１２−３−１は、ｓ１４−２−４−２−１８では、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべき命令として上述した文字画像処理モジュール１０００−３−０を選択する。さらに、汎用プロセッサ１２−３−１は、ｓ１４−２−４−２−２０では、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべき命令として上述したグラフィック画像処理モジュール１０００−３−１を選択する。
【００７２】
上記処理を行った上で、汎用プロセッサ１２−３−１はｓ１４−２−４−２−２２で、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべき命令として上述した共通画像処理モジュール１０００−３−２を選択する。
【００７３】
以上の処理で、汎用プロセッサ１２−３−１による画像処理命令群１０００−３中の命令の選択が完了する。
【００７４】
次に汎用プロセッサ１２−３−１はｓ１４−２−４−２−２４で、中間データ１０１の生成に使われたＰＤＬデータ１００がＣＭＹＫ色空間で処理が必要な種類のＰＤＬデータ１００かを調べる。若しＣＭＹＫ色空間で処理が必要な種類のＰＤＬデータ１００であれば、汎用プロセッサ１２−３−１はｓ１４−２−４−２−２６にすすむ。一方、汎用プロセッサ１２−３−１は、若しＣＭＹＫ色空間で処理が必要な種類のＰＤＬデータ１００でなければｓ１４−２−４−２−２８に進む。汎用プロセッサ１２−３−１は、ｓ１４−２−４−２−２６では、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべき命令として上述したＰＤＬ−Ａ用ＣＭＳモジュール１０００−４−０を選択する。また、汎用プロセッサ１２−３−１は、ｓ１４−２−４−２−２８では、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべき命令として上述したＰＤＬ−Ｂ用ＣＭＳモジュール１０００−４−１を選択する。
【００７５】
上記処理を行った上で、汎用プロセッサ１２−３−１はｓ１４−２−４−２−３０で、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードすべき命令として上述した共通ＣＭＳモジュール１０００−４−２を選択する。
【００７６】
以上、この命令の選択処理ｓ１４−２−４−２は、汎用プロセッサ１２−３−１を用いて、属性情報１０１−１−３が示す属性の数だけ行う。汎用プロセッサ１２−３−１はこの繰り返し処理によって、属性情報１０１−１−３が示す属性に関連付けられた命令群を生成する。
【００７７】
もちろんこのような処理を行わずに、予めＰＤＬの種類と属性とプログラムモジュールの識別子とを関連づけたテーブルをＲＯＭ等に用意しておき、ＰＤＬの種類と属性とに関連づけられたプログラムモジュールを選択するようにしても良い。その場合の関連づけは、図１４にしめした要領で行われる。テーブル化した方が、プログラムモジュールの選択を依り迅速に行うことができる。
【００７８】
＜プログラムモジュールのロード＞
以上ｓ１４−２−４を詳細に説明したので、以下に図１１に示されているｓ１４−２−６を説明する。汎用プロセッサ１２−３−１はｓ１４−２−８で、ｓ１４−２−６で選択された命令群を、それぞれ処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）へロードする。このロード処理ｓ１４−２−８によって、各処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）がもつローカルメモリ（１２−３−２−１、１２−３−３−２、１２−３−３−３、１２−３−３−４）に命令群（プログラム）がロードされる。このローカルメモリ（１２−３−２−１、１２−３−３−２、１２−３−３−３、１２−３−３−４）に命令群がロードされることによって、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）は中間データ１０１を処理して印刷データ１０２を生成する処理ｓ１４−４を可能となる。
【００７９】
以上、図１１に示された処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）へ命令をロードする処理ｓ１４−２を説明した。
【００８０】
＜印刷データ生成処理＞
次に、図１５を用いて、中間データ１０１を処理し印刷データ１０２を生成する処理ｓ１４−４を説明する。
【００８１】
先ず、汎用プロセッサ１２−３−１は、ｓ１４−４−０で未処理の分割された中間データ１０１−１があるかを調べる。此処で言う未処理の分割された中間データとは、未だ印刷データ１０２を生成するための処理が終わっていない中間データ１０１の部分を意味する。
【００８２】
若し未処理の分割された中間データ１０１−１があれば、汎用プロセッサ１２−３−１はｓ１４−４−２に進む。一方、未処理の分割された中間データ１０１−１がなければ、汎用プロセッサ１２−３−１はｓ１４−４の処理を終了する。
【００８３】
次に、汎用プロセッサ１２−３−１はｓ１４−４−２で次の未処理の分割された中間データ１０１−１を読み込む。この処理によって、汎用プロセッサ１２−３−１は、未処理の分割された中間データ１０１−１中の属性情報１０１−１−３が示す属性を調べることが出来る。
【００８４】
次に、汎用プロセッサ１２−３−１はｓ１４−４−４で処理をしていない処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）の中から、未処理の分割された中間データ１０１−１が示す属性情報１０１−１−３に対応する処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）があるかを調べる。もし処理をしていない処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）の中から、処理対象である未処理の分割された中間データ１０１−１が示す属性情報１０１−１−３に対応する処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）があれば、汎用プロセッサ１２−３−１はｓ１４−４−６に進む。また、この判断によって、処理をしていない処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）がないか、処理をしていない処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）のうち未処理の分割された中間データ１０１−１が示す属性情報１０１−１−３に対応する処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）が無かった場合には、汎用プロセッサ１２−３−１はｓ１４−４−８に進む。
【００８５】
次に汎用プロセッサ１２−３−１はｓ１４−４−８で次の未処理の分割された中間データ１０１−１を探す処理を行う。この処理によって、もしｓ１４−４−０で処理の分割された中間データ１０１−１が見つかれば、次のｓ１４−４−２で示された処理で汎用プロセッサ１２−３−１はｓ１４−４−８で見つかられた未処理の分割された中間データ１０１−１に注目して処理を行う。
【００８６】
なおｓ１４−４−８では、すべての処理ユニットがビジーである場合には、いずれかの処理ユニットにおける処理が終了するまで待つことが望ましい。すべての処理ユニットがビジーであると新たな未処理の分割された中間データを見付けても処理できないためである。その場合、いずれかの処理ユニットにおける処理が終了したなら、改めてｓ１４−４−８から処理を再開する。
【００８７】
一方ｓ１４−４−６で汎用プロセッサ１２−３−１は、ｓ１４−４−４で見つけた処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）に対して、上記未処理の分割された中間データ１０１−１を通知する。すなわち処理対象のデータをブロック谷で通知する。通知されるのは、処理対象を特定するための情報であり、たとえばそのアドレス及びサイズである。また中間データそのものであっても良い。これによって、対象となった処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）は、分割された中間データ１０１−１をもとに、分割されたラスタイメージデータ１０２−１−１を生成する。
【００８８】
次に、上記ｓ１４−４−６を受けて行われる処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）が行う処理について以下に説明する。
【００８９】
先ず処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）はｓ１４−４−１０で、汎用プロセッサ１２−３−１によって示された未処理の分割された中間データ１０１−１を読み込む。本実施形態では、この分割された中間データ１０１−１はメインメモリ１２−３−６に保存されている。この処理ｓ１４−４−１０によって処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）はローカルメモリ（１２−３−２−１、１２−３−３−２、１２−３−３−３、１２−３−３−４）に未処理の分割された中間データ１０１−１をロードすることが出来る。
【００９０】
次に処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）はｓ１４−４−１２で分割された中間データを処理して、分割されたラスタイメージデータ１０２−１−１を生成する。この処理ｓ１４−４−１２は処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）が、汎用プロセッサ１２−３−１がｓ１４−２−４−２で生成した命令群を使って実行する。また、本実施形態では、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）は分割されたラスタイメージデータ１０２−１−１をローカルメモリ（１２−３−２−１、１２−３−３−２、１２−３−３−３、１２−３−３−４）上に保存する。
【００９１】
次に処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）はｓ１４−４−１４で、ローカルメモリ（１２−３−２−１、１２−３−３−２、１２−３−３−３、  １２−３−３−４）に生成された上記分割されたラスタイメージデータ１０２−１−１をメインメモリ１２−３−６に転送する。
【００９２】
次に処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）はｓ１４−４−１６で、転送した上記分割されたラスタイメージデータ１０２−１−１のメインメモリ１２−３−６上の位置を汎用プロセッサ１２−３−１に通知する。
【００９３】
以上のｓ１４−４−１０からｓ１４−４−１６までの処理によって、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）は未処理の分割された中間データ１０１−１から分割されたラスタイメージデータ１０２−１−１をメインメモリ上に生成することが出来る。メインメモリには、分割された処理済みのラスタイメージデータが分割前のように統合あるいは結合されて格納される。
【００９４】
即ち、汎用プロセッサ１２−３−１と処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）は図１４に示したように、以下のように処理する。未処理の分割された中間データ１０１−１がある限り以下の処理を繰り返す。
１．汎用プロセッサ１２−３−１は、処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）に対して分割されたラスタイメージデータ１０２−１の生成処理（ｓ１４−４−１０からｓ１４−４−１６まで）を指示する。
２．処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）は、印刷エンジン１２−４が画像形成ｓ１８に必要なラスタイメージデータ１０２−１を生成する。
【００９５】
次に、ｓ１４−４−１８で汎用プロセッサ１２−３−１は、印刷制御中間データ１０１−２をもとに印刷エンジン制御データ１０２−２を生成する。
【００９６】
以上、汎用プロセッサ１２−３−１及び処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）は、ｓ１４の処理によって、中間データ１０１を元に印刷エンジン１２−４が画像形成のために使う印刷データ１０２を生成する。この処理ｓ１４は、印刷エンジンがｓ１６で印刷データ１０２を得ることを可能ならしめる。
【００９７】
以上説明してきたように、本実施例では、二つ以上の処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）を持つ画像生成処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）１２−３が以下の処理を行う。
１．画像形成処理装置１２−３が、分割されたベクタデータを含むデータを持つ中間データ１０１を得る。
２．汎用プロセッサ１２−３−１が、この中間データ１０１中の属性情報１０１−１−３と、処理負荷パラメータ（図１６参照）から処理負荷パラメータ（数式１参照）を算出する。
３．汎用プロセッサ１２−３−１が、上記処理負荷パラメータとＰＤＬの種類の情報をもとに、上記処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）が処理可能な処理の構成を決定するプログラムモジュールを決定する。
４．汎用プロセッサ１２−３−１が、決定されたプログラムモジュールを処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）にロードする。こうすることで処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）が処理可能な構成を変更する。
５．処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）が上記分割されたベクタデータを含むデータ１０１−１を元にラスタイメージデータ１０２−１を持つ印刷データ１０２を生成する。
【００９８】
＜本実施形態の効果＞
以上の処理によって、処理の切り替えが複数回起こり、複数命令の切り替えることを回避可能たらしめる。即ち、分割されたベクタデータを含むデータのレンダリング処理及び画像処理において以下のような効果がある。すなわち、画像形成処理装置１２−３は、あらかじめ処理負荷に応じて処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）が可能な処理の構成を決定した上でレンダリング処理及び画像処理を開始できる。そのため、同処理中に処理ユニット（１２−３−２、１２−３−３、１２−３−４、１２−３−５）構成を変更することなしに高速に処理可能である。
【００９９】
なお、本実施形態では属性をテキスト、グラフィックス、テキストとグラフィックスの混合と分類したが、他の分類でも良い。たとえば、塗り潰し処理、ラスタイメージ処理、その混合などと分類することもできる。
【０１００】
なお本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラム自体が前述した実施形態の機能を実現することになり、そのプログラム自体およびプログラムを記憶した記憶媒体は本発明を構成することになる。
【０１０１】
また、本発明には、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１０２】
【図１】本発明の実施例における画像形成装置及び情報処理装置の構成図である。
【図２】従来の画像形成装置及び情報処理装置の構成図である。
【図３】本発明の実施例の処理フローを示す図である。
【図４】ＰＤＬデータを示す図である。
【図５】印刷データを示す図である。
【図６】本発明の実施例における画像形成処理装置の構成を示す図である。
【図７】本発明の実施例における画像形成処理を示す図である。
【図８】中間データを示す図である。
【図９】本発明の実施例における中間データ例を示す図である。
【図１０】本発明の実施例における中間データと属性情報例を示す図である。
【図１１】画像処理装置の画像形成に係る処理を示す図である。
【図１２】処理装置にかかる命令を示す図である。
【図１３】処理装置への命令ロード処理を示す図である。
【図１４】本発明の実施例における命令群の選択処理を示す図である。
【図１５】本発明の実施例における印刷データ生成処理を示す図である。
【図１６】本発明の実施例における重み付けパラメータのテーブルを示す図である。
【図１】
2010162745.tif 000003
【図２】
2010162745.tif 000004
【図３】
2010162745.tif 000005
【図４】
2010162745.tif 000006
【図５】
2010162745.tif 000007
【図６】
2010162745.tif 000008
【図７】
2010162745.tif 000009
【図８】
2010162745.tif 000010
【図９】
2010162745.tif 000011
【図１０】
2010162745.tif 000012
【図１１】
2010162745.tif 000013
【図１２】
2010162745.tif 000014
【図１３】
2010162745.tif 000015
【図１４】
2010162745.tif 000016
【図１５】
2010162745.tif 000017
【図１６】
2010162745.tif 000018