(57)【特許請求の範囲】
【請求項１】
第１のプロセッサと、
第２のプロセッサと、
画像データに画像の重なりがあるか否かを判別する判別手段と、
前記判別手段により重なりがあると判別された場合、前記第１のプロセッサにピクセルの生成処理を実行させ、前記第２のプロセッサに生成されたピクセルの合成処理を実行させ、
前記判別手段により重なりがないと判別された場合、前記第２のプロセッサにピクセルの生成処理を実行させる実行手段と、
生成処理または合成処理されたピクセルを印刷する印刷手段と
を有することを特徴とする印刷装置。
【請求項２】
前記実行手段は、
前記判別手段により重なりがあると判別された場合、前記第１のプロセッサにレイヤ情報生成処理とピクセルの生成処理を実行させ、前記第２のプロセッサに生成されたピクセルの合成処理を実行させ、
前記判別手段により重なりがないと判別された場合、前記第１のプロセッサにレイヤ情報生成処理を実行させ、前記第２のプロセッサにピクセルの生成処理を実行させることを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記第１のプロセッサが、前記判別手段および前記実行手段を含むことを特徴とする請求項１に記載の印刷装置。
【請求項４】
前記第１のプロセッサと前記第２のプロセッサは、キュー方式のインターフェースで接続され、
前記第１のプロセッサは、第１のレイヤのピクセルの生成、当該生成された第１のレイヤのピクセルの出力、第２のレイヤのピクセルの生成、当該生成された第２のレイヤのピクセルの出力、を繰り返して実行することを特徴とする請求項１記載の印刷装置。
【請求項５】
第１のプロセッサと、第２のプロセッサと、を有する画像処理装置における画像処理方法であって、
画像データに画像の重なりがあるか否かを判別する判別工程と、
前記判別工程により重なりがあると判別された場合、前記第１のプロセッサにピクセルの生成処理を実行させ、前記第２のプロセッサに生成されたピクセルの合成処理を実行させ、
前記判別工程により重なりがないと判別された場合、前記第２のプロセッサにピクセルの生成処理を実行させる実行工程と
を有することを特徴とする画像処理方法。
【請求項６】
前記実行工程において、
前記判別工程により重なりがあると判別された場合、前記第１のプロセッサにレイヤ情報生成処理とピクセルの生成処理を実行させ、前記第２のプロセッサに生成されたピクセルの合成処理を実行させ、
前記判別工程により重なりがないと判別された場合、前記第１のプロセッサにレイヤ情報生成処理を実行させ、前記第２のプロセッサにピクセルの生成処理を実行させることを特徴とする請求項５に記載の画像処理方法。
【請求項７】
前記第１のプロセッサが、前記判別工程および前記実行工程を実行することを特徴とする請求項５に記載の画像処理方法。
【請求項８】
前記第１のプロセッサと前記第２のプロセッサは、キュー方式のインターフェースで接続され、
前記第１のプロセッサは、第１のレイヤのピクセルの生成、当該生成された第１のレイヤのピクセルの出力、第２のレイヤのピクセルの生成、当該生成された第２のレイヤのピクセルの出力、を繰り返して実行することを特徴とする請求項５に記載の画像処理方法。
【請求項９】
第１のプロセッサと、第２のプロセッサと、を有するコンピュータに実行させるプログラムであって、
画像データに画像の重なりがあるか否かを判別する判別工程と、
前記判別工程により重なりがあると判別された場合、前記第１のプロセッサにピクセルの生成処理を実行させ、前記第２のプロセッサに生成されたピクセルの合成処理を実行させ、
前記判別工程により重なりがないと判別された場合、前記第２のプロセッサにピクセルの生成処理を実行させる実行工程と
をコンピュータに実行させるプログラム。
【請求項１０】
前記実行工程において、
前記判別工程により重なりがあると判別された場合、前記第１のプロセッサにレイヤ情報生成処理とピクセルの生成処理を実行させ、前記第２のプロセッサに生成されたピクセルの合成処理を実行させ、
前記判別工程より重なりがないと判別された場合、前記第１のプロセッサにレイヤ情報生成処理を実行させ、前記第２のプロセッサにピクセルの生成処理を実行させることを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記第１のプロセッサが、前記判別工程および前記実行工程を実行することを特徴とする請求項９に記載のプログラム。
【請求項１２】
前記第１のプロセッサと前記第２のプロセッサは、キュー方式のインターフェースで接続され、
前記第１のプロセッサは、第１のレイヤのピクセルの生成、当該生成された第１のレイヤのピクセルの出力、第２のレイヤのピクセルの生成、当該生成された第２のレイヤのピクセルの出力、を繰り返して実行することを特徴とする請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理方法及び画像処理装置とその制御方法に関する。特に、複数のプロセッサ構成における、データ傾向に応じて最適な処理分散を実現する画像処理方法及び画像処理装置とその制御方法に関連するものである。
【背景技術】
【０００２】
近年、プリンタの高画質化に伴い、複雑な重ねあわせ処理や透過処理を持った画像が普及してきている。特に、Adobe社が提唱するPDFやマイクロソフト社が提唱するXPS等では、オブジェクト同士の複雑な透過処理を実現しており、複雑な演算処理などを必要とする。一方、上述した複雑な演算は行わない従来の簡易なデータも根強く使用されており、様々な傾向のデータが使用されるようになってきている。
【０００３】
また近年、画像形成処理の高速化を実現するため、様々なリソースの並列化技術が提案されてきている。特にプロセッサを複数保持することにより、処理の並列化を実現し高速化を実現する技術が提案されてきている。
【０００４】
特許文献１では、複数のプロセッサの処理状況に応じてRIP（画像展開）処理/UCR（下色除去）処理/圧縮処理の処理分担を動的に切り替える技術が提案されている。
【特許文献１】特開2004-326307公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記の従来技術ではRIP処理の細かい処理分担を実現することが出来ず、データの傾向に応じたプロセッサ負荷の平滑化を実現することが出来ない。特に近年、前述したように複雑な透過処理を要求するデータや、簡易なデータなど様々な傾向のデータが普及してきているため、データの傾向に最適なRIP処理自体の処理分担を実現することが求められるようになってきている。
【０００６】
本発明は、前述した問題点を解決し、複数のプロセッサに対して適切な負荷分散を実現することによって、入力される画像データの傾向に依存せず高速に画像処理可能な画像処理方法及び画像処理装置とその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決する本発明の画像処理装置は、以下に示す構成を備える。
【０００８】
第１のプロセッサと、
第２のプロセッサと、
画像データに画像の重なりがあるか否かを判別する判別手段と、
前記判別手段により重なりがあると判別された場合、前記第１のプロセッサにピクセルの生成処理を実行させ、前記第２のプロセッサに生成されたピクセルの合成処理を実行させ、
前記判別手段により重なりがないと判別された場合、前記第２のプロセッサにピクセルの生成処理を実行させる実行手段と、
生成処理または合成処理されたピクセルを印刷する印刷手段と
を有する。
【発明の効果】
【００１２】
以上説明したように、本発明によって、入力される画像データの傾向に対応して、複数のプロセッサの適切な負荷分担を実現することが可能となる。特に、複雑な重ねあわせ処理や透過処理が存在するデータや、そうでないデータであってもデータを解析し、それぞれにあった処理分担を実現することにより、入力される画像データの傾向に依存せず高速に処理を実現することが可能となる。
【００１３】
また処理分担を行うことによるオーバヘッドにおいても、複数のプロセッサの通信方法や使用するリソースの切り替えも適切に選択することにより、処理の軽減が可能となり、高速化が可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明をその好適な実施形態を、添付図面に従って詳細に説明する。なお、以下の実施形態では、本発明をプリンタ制御システムに適用した場合の例を示す。しかしながら、本発明の技術思想は、プリンタ制御システムに限定されず、他のシステムにおける複数のプロセッサによる並列処理の高速化のも適用が可能である。例えば、本発明に適用されるソフトウェアは、プリンタ制御システムに限ったものではなく、ワープロ（ワードプロセッサ）系ソフトウェア、表計算系ソフトウェア、作図系ソフトウェア等に幅広く応用可能である。これらも本発明に含まれる。
【００１５】
＜本実施形態のプリンタ制御システムの構成例＞
図１は、本実施形態に係るプリンタ制御システムの構成例の概略を示す図である。ここでは、本実施形態を適用する画像処理装置であるプリンタとして、レーザービームプリンタの例を説明する。しかしながら、本実施形態を適用するプリンタは、レーザービームプリンタに限られるものではなく、インクジェットプリンタや他のプリント方式のプリンタでも良いことは言うまでもない。
【００１６】
図１において、データ処理装置１０１は、例えば、パソコン等のコンピュータであり、画像処理装置用の制御コードの供給源、あるいはプリンタの制御装置として機能する。
【００１７】
レーザービームプリンタ１０２は、本実施形態の画像処理装置であり、プリンタコントローラ１０３、プリンタエンジン１０５、及びパネル部１０４を有する。
【００１８】
プリンタコントローラ１０３は、データ処理装置１０１から供給される画像処理装置用の制御コード（例えば、ＥＳＣコード、ページ記述言語、バンド記述言語等）中の画像情報に基づいて、ページ毎にラスタデータを生成し、プリンタエンジン１０５に送出する。
【００１９】
プリンタエンジン１０５は、プリンタコントローラ１０３から供給されるラスタデータに基づいて、感光ドラム上に潜像を形成し、その潜像を記録媒体上に転写・定着（電子写真方式）することにより画像を記録する。
【００２０】
パネル部１０４は、ユーザインタフェースとして使用される。ユーザは、パネル部１０４を操作することにより、所望の動作を指示することができる。また、パネル部１０４には、レーザービームプリンタ１０２の処理内容や、ユーザへの警告内容を表示する。
【００２１】
＜レーザビームプリンタの構成例＞
（プリンタエンジンの構成例）
図２は、タンデム方式のカラーレーザビームプリンタ１０２のプリンタエンジン１０５の構成例を説明する断面図である。
【００２２】
図２において、２０１はプリンタ筐体である。２０２は、ユーザが各種指示を与えるためのスイッチ、メッセージやプリンタの設定内容等を表示するためのＬＥＤ表示器やＬＣＤ表示器等が配された操作パネルであり、図１に示すパネル部１０４の一態様である。２０３はボード収容部であり、ビデオコントローラ１０３及びプリンタエンジン１０５の電子回路部分を構成するボードを収容する。
【００２３】
２２０は、用紙（記録媒体）Ｓを保持する用紙カセットであり、不図示の仕切り板によって電気的に用紙サイズを検知する機構を有する。２２１は、カセットクラッチであり、用紙カセット２２０上に載置された用紙Ｓの最上位の一枚を取り出して、取り出した用紙Ｓを不図示の駆動手段から伝達される駆動力によって給紙ローラ２２２まで搬送するカムを有する。このカムは、給紙の度に間欠的に回転し、１回転に対応して１枚の用紙Ｓを給紙する。２２３は用紙検知センサで、それぞれ用紙カセット２２０に保持されている用紙Ｓの量を検知する。給紙ローラ２２２は、用紙Ｓの先端部をレジストシャッタ２２４まで搬送するローラである。２２４は、レジストシャッタであり、用紙Ｓを押圧することにより給紙を停止することができる。
【００２４】
２３０は、手差しトレイであり、２３１は、手差し給紙クラッチである。手差し給紙クラッチ２３１は、用紙Ｓの先端を手差し給紙ローラ２３２まで搬送するために使用され、手差し給紙ローラ２３２は、用紙Ｓの先端をレジストシャッタ２２４まで搬送するために使用される。画像記録に供する用紙Ｓは、用紙カセット２２０及び手差しトレイ２３０のいずれかの給紙手段を選択して給紙される。
【００２５】
図１のプリンタエンジン１０５は、ビデオコントローラ１０３と所定の通信プロトコルにしたがって通信を行い、ビデオコントローラ部１０３からの指示にしたがって用紙カセット２２０手差しトレイ２３０の中からいずれかの給紙手段を選択する。さらに、印刷の開始指示に応じて該当する給紙部よりレジストシャッタ２２４まで用紙Ｓを搬送する。なお、プリンタエンジン１０５は、給紙部、潜像の形成、転写、定着等の電子写真プロセスに関する機構、排紙部及びそれらの制御部を含む。
【００２６】
２０４ａ、２０４ｂ、２０４ｃ、２０４ｄは、感光ドラム２０５ａ、２０５ｂ、２０５ｃ、２０５ｄやトナー保持部等を有する画像記録部であり、電子写真プロセスにより、用紙Ｓ上にトナー像を形成する。一方、２０６ａ、２０６ｂ、２０６ｃ、２０６ｄは、レーザスキャナ部であり、画像記録部にレーザビームによる画像情報を供給する。画像記録部２０４ａ、２０４ｂ、２０４ｃ、２０４ｄには、用紙Ｓを搬送する用紙搬送ベルト２５０が複数の回転ローラ２５１〜２５４によって用紙搬送方向（図の下から上方向）に扁平に張設される。その最上流部においては、バイアスを印加した吸着ローラ２２５によって、用紙を用紙搬送ベルト２５０に静電吸着させる。また、このベルト搬送面に対向して４個の感光ドラム２０５ａ、２０５ｂ、２０５ｃ、２０５ｄが直線状に配設されており、画像形成手段を構成している。画像記録部２０４ａ、２０４ｂ、２０４ｃ、２０４ｄのそれぞれには、感光ドラムの周辺近傍を順次取り囲んで、帯電器、現像器が配置されている。
【００２７】
レーザスキャナ部２０６ａ、２０６ｂ、２０６ｃ、２０６ｄに関して説明する。２０７ａ、２０７ｂ、２０７ｃ、２０７ｄは、レーザユニットであり、プリンタコントローラ１０３から送出される画像信号（／ＶＩＤＥＯ信号）に応じて、内蔵の半導体レーザを駆動し、レーザビームを発射する。レーザユニット２０７ａ、２０７ｂ、２０７ｃ、２０７ｄから発せられたレーザビームは、ポリゴンミラー２０８ａ、２０８ｂ、２０８ｃ、２０８ｄにより走査され、感光ドラム２０５ａ、２０５ｂ、２０５ｃ、２０５ｄ上に潜像を形成する。
【００２８】
２６０は、定着器で、画像記録部２０４ａ、２０４ｂ、２０４ｃ、２０４ｄにより用紙Ｓに形成されたトナー画像を記録紙Ｓに熱定着させる。２６１は、搬送ローラで、用紙Ｓを排紙搬送する。２６２は、排紙センサで、用紙Ｓの排紙状態を検知する。２６３は、排紙ローラ兼両面印刷用搬送路を切り替えるローラで、用紙Ｓを排紙方向へ搬送し、用紙Ｓの搬送指示が排紙の場合はそのまま排紙トレイ２６４に排紙する。搬送指示が両面搬送の場合は、用紙Ｓの後端が排紙センサ２６２を通過した直後に回転方向を逆向きに変え、スイッチバックすることにより用紙Ｓを両面印刷用搬送路２７０へ搬送する。２６５は排紙積載量検知センサで、排紙トレイ２６４上に積載された用紙Ｓの積載量を検知する。
【００２９】
２７０は、両面印刷用搬送路である。排紙ローラ兼両面印刷用搬送路切り替えローラ２６３により両面印刷用に搬送された用紙Ｓは、両面搬送ローラ２７１〜２７４によって再びレジストシャッタ２２４まで搬送される。そして画像記録部２０４ａ、２０４ｂ、２０４ｃ、２０４ｄへの搬送指示を待つ。
【００３０】
なお、レーザビームプリンタ１０２には、さらにオプションカセットや封筒フィーダ等のオプションユニットを装備することができる。
【００３１】
（プリンタコントローラの構成例）
図３は、本実施形態のプリンタコントローラ１０３の構成例を説明するブロック図である。
【００３２】
図３において、３０１は、パネル部１０４とのデータ通信を行うパネルインタフェース部である。３０２は、ネットワークを介してホストコンピュータ等のデータ処理装置１０１と双方向に通信接続するためのホストインタフェース部である。ＲＯＭ３０３の内部には、ＣＰＵ３０５が実行すべきプログラムが記憶されている。３０４は、プリンタエンジン１０５と通信接続するためのエンジンインタフェース部である。
【００３３】
ＣＰＵ３０５は、パネルインタフェース部３０１を介して、ユーザがパネル部１０４において設定・指示した内容を確認することができる。また、エンジンインタフェース部３０４を介して、プリンタエンジン１０５の状態を認識することができる。また、ＣＰＵ３０５は、ＲＯＭ３０３に保持された制御プログラムコードに基づいて、ＣＰＵバス３２０に接続されたデバイスを制御するＣＰＵである。画像メモリ３０６は、画像形成処理部３０７が生成したラスタデータを一時的に保持するための、ＲＡＭやディスクなどからなるメモリである。
【００３４】
画像形成処理部３０７は、画像形成処理のためのデータをＣＰＵ３０５から受け取り、本発明における画像形成処理を行い、画像メモリ３０７へ画像を格納する処理を行う。本実施形態の好適な構成例として、画像形成処理部３０７は、後述するピクセル生成処理（図１０のＳ１００３、図１１のＳ１１０３及びＳ１１０５）及び重ねあわせ処理（図１５のＳ１５０４、図１６のＳ１６０４及びＳ１６０６）を実現するハードウェアを有する。また、後述する他の処理部は、プログラムとしてＲＯＭ３０３に保持し、実行時にメモリにロードして処理を行う構成をとる。
【００３５】
画像制御情報メモリ３０８は、データ処理装置１０１から受信した画像制御コマンドや画像形成処理部３０８へのデータ、あるいはデータ処理装置１０１に送信するステータス情報などを記憶するための、ＲＡＭやディスクなどからなるメモリである。
【００３６】
３２０は、アドレス、データ、コントロールバスを含むＣＰＵバスである。
【００３７】
＜本実施形態の画像形成処理部の構成例＞
図４Ａは、本実施形態の画像形成処理部３０７の全体構成例を示す図である。
【００３８】
本実施形態の画像形成処理部３０７は、複数のプロセッサ（第１第１プロセッサ４００と第２第２プロセッサ４０１が直列に接続する構成をとる。
【００３９】
直列に接続された構成において、前段に接続された第１プロセッサ４００は、第１レンダリング処理制御部４１０、第１イメージピクセル生成部４１３、第１通信部４１６を有する。
【００４０】
第１レンダリング処理制御部４１０は、外部から第１レンダリング情報４２０を入力とし動作を行うものであり、第１レンダリング情報４２を解析し、第２プロセッサ４０１を制御するための情報である第２レンダリング情報４２１を生成する。また、データの解析結果を元に、必要に応じて第１イメージピクセル生成部４１３に対してイメージピクセルの生成処理を指示し、第１イメージピクセル情報４２２を生成する。
【００４１】
第１イメージピクセル生成部４１３は、第１レンダリング処理制御部４１０の指示に応じて、第１イメージピクセル情報４２２を生成する。
【００４２】
第１通信部４１６は、第１レンダリング処理制御部４１０が生成した第２レンダリング情報４２１と、必要に応じて第１イメージピクセル生成部４１３が生成する第１イメージピクセル情報４２２を第２プロセッサ４０１に対して転送処理を行う。また、第１イメージピクセル情報４２２を転送する際、第１イメージピクセル生成部４１３の生成する第１イメージピクセル情報４２２に応じて、転送方法に切り替える処理を行う。後述するが、ピクセル毎に転送する方法とレイヤ（重ね合わせられた各オブジェクトを本例ではレイヤと呼ぶ）ごとに転送する方法との切り替えである。さらに、第１通信部４１６は、第２レンダリング情報４２を元に、生成された第１イメージピクセル情報の転送先を通信メモリ４２３と共有メモリ４２４を切り替える処理を行う。
【００４３】
次に、後段に接続される第２プロセッサ４０１について説明する。
【００４４】
第２プロセッサ４０１は、第２レンダリング処理制御部４１１、第２イメージピクセル生成部４１４、重ねあわせ処理部４１５、第２通信部４１７、第３通信部４１８を有する。
【００４５】
第２レンダリング処理制御部４１１は、第２通信部４１７が取得する第２レンダリング情報４２１の解析処理を行う。そして指定される情報に応じて、第２イメージピクセル生成部４１４に指示を行い、第２イメージピクセル情報４２６を生成させる。さらに、重ね合わせ処理部４１５に指示を行い、重ねあわせ処理を行った結果を示す、重ね合わせピクセル情報４２７の生成を行う。
【００４６】
第２イメージピクセル生成部４１４は、第２レンダリング処理制御部４１１の指示に応じて、第２イメージピクセル情報４２６を生成する。
【００４７】
重ね合わせ処理手段４１５は、第２レンダリング処理制御部４１１の指示に応じて、重ねあわせ処理を行い、重ね合わせピクセル情報４２７の生成を行う。
【００４８】
第２通信部４１７は、第１通信部４１６によって転送される第２レンダリング情報４２１を通信メモリ４２３から取得する。そして取得した第２レンダリング制御情報４２１を解析し、必要に応じて第１イメージピクセル情報４２２を通信メモリ４２３、もしくは共有メモリ４２４の指定される方から取得する。
【００４９】
第３通信部４１８は、第２レンダリング情報４２１の情報を元に、第２イメージピクセル情報４２６、もしくは重ね合わせピクセル情報４２７を取得し、図３の画像メモリ３０６に出力する。
【００５０】
（第１プロセッサの構成例）
図４Ｂは、後述のフローチャートを実行する第１プロセッサ４００のハードウエア構成例を示すブロック図である。
【００５１】
図４Ｂで、４００１は第１プロセッサ４００の動作を制御すると共に、第１レンダリング処理制御部４１０を実現するＣＰＵである。４００２は、ＣＰＵ４００１の動作に必要なプログラム及びデータを記憶するＲＡＭである。
【００５２】
ＲＡＭ４００２には、以下の情報を記憶する領域が確保される。４２０は、第１レンダリング情報を記憶する領域である。４２１は、第２レンダリング情報を記憶する領域である。４０２１は、現在処理中のレイヤレベルを示す変数"Level"を記憶する領域である。４０２２は、第１レンダリング情報を解析して第１プロセッサ４００と第２プロセッサ４０１への負荷分担を制御するために使用する重ね合わせ複雑度を記憶する領域である。４０２３は、通信メモリ４２３と共有メモリ４２４とのいずれを使って第１イメージピクセル情報４２２を転送するかを決定するための、ピクセル長のしきい値を記憶する領域である。４０２４は、ピクセル長のしきい値４０２３とレンダリングするピクセル長とから、生成されたピクセル情報を通信メモリ４２３に出力するか／共有メモリ４２４に出力するかを記憶する領域である。
【００５３】
４０２５は、現在処理をしているレイヤのピクセル長を示す値"Length"を記憶する領域である。４０２６は、現在処理を行っているビクセル数を示す変数"count"を記憶する領域である。４０２７は、第１イメージピクセル生成部４１３で生成されたピクセル値を記憶する領域である。４０２８は、第２レンダリング情報４２１のレイヤ種別情報を生成するための記憶領域である。
【００５４】
４０２９は、ＣＰＵ４００１が実行するプログラムを図３のＲＯＭ３０３からロードするプログラムロード領域である。
【００５５】
４００３は、ＣＰＵバス３２０を介して、図３のＣＰＵ３０５の指示で送られてくる第１レンダリング情報４２０（本例では、図３の画像制御情報メモリ３０８に準備されている）を受け取るための、ＣＰＵバス接続部である。
【００５６】
以下、本例ではハードウエア構成の、第１イメージピクセル生成部４１３と第１通信部４１６が接続されている。
【００５７】
（第２プロセッサの構成例）
図４Ｃは、後述のフローチャートを実行する第２プロセッサ４００のハードウエア構成例を示すブロック図である。
【００５８】
図４Ｃで、４０１１は第２プロセッサ４０１の動作を制御すると共に、第２レンダリング処理制御部４１１を実現するＣＰＵである。４０１２は、ＣＰＵ４０１１の動作に必要なプログラム及びデータを記憶するＲＡＭである。
【００５９】
ＲＡＭ４０１２には、以下の情報を記憶する領域が確保される。４２１は、第２レンダリング情報を記憶する領域である。４０３１は、現在処理中のレイヤレベルを示す変数"Level"を記憶する領域である。４０３２は、現在処理をしているレイヤのピクセル長を示す値"Length"を記憶する領域である。４０３３は、現在処理を行っているビクセル数を示す変数"count"を記憶する領域である。
【００６０】
４０３４は、本例で並列レイヤ生成処理の場合の前のレイヤのピクセル情報(Source 1)を記憶する領域である。４０３５は、本例で並列レイヤ生成処理の場合の後のレイヤのピクセル情報(Source 2)を記憶する領域である。４０３６は、既にピクセル生成処理あるいは重ね合わせ処理を実行した結果のピクセル情報で、現在のレイヤレベルで更に重ね合わせがされる元のピクセルあるいはレイヤ情報(Destination)を記憶する領域である。４０３７は、現在の重ね合わせ処理を実行した結果のピクセルあるいはレイヤ情報(Result)を記憶する領域である。
【００６１】
４０３８は、ＣＰＵ４０１１が実行するプログラムを図３のＲＯＭ３０３からロードするプログラムロード領域である。
【００６２】
以下、本例ではハードウエア構成の、第２イメージピクセル生成部４１４、重ね合わせ処理部４１５、第２通信部４１７、第３通信部４１８が接続されている。
【００６３】
（描画領域の例）
図４Ｄは、本実施形態の画像形成処理部が処理する描画領域の一例を示す図である。
【００６４】
４３０は、画像形成処理を行うページ領域を示す。４３１、４３２はページ領域４３０に含まれる描画オブジェクトを示す。４３３は、本実施形態の画像形成処理部が処理するページ領域を主走査方向にライン単位に分割したスキャンライン部を示す。４３４，４３５，４３６は、本実施形態の画像形成処理部が処理するページ領域をエッジ間の領域に分割した閉領域を示す。本実施形態の画像形成処理部は、前述したスキャンライン部やエッジ間の閉領域ごとに描画処理を行う。従って、後述する第１レンダリング情報、第２レンダリング情報は、前述したスキャンライン部、もしくはエッジ間に分割された閉領域の情報を示す。
【００６５】
（第１レンダリング情報の構成例）
図５は、前述した第１レンダリング情報４２０の一構成例を示すデータフォーマットの図である。
【００６６】
第１レンダリング情報４２０は、レンダリング制御情報５００と複数のレイヤ情報５０１，５０２，...，５０３から構成される情報であり、同じオブジェクトの重なり状態を示すライン領域が定義されている。従って、複数の第１レンダリング情報４２０によって、ラインさらにページの画像が生成される。
【００６７】
レンダリング制御情報５００は、レイヤ数情報５０４とピクセル長情報５０５を保持する。
【００６８】
レイヤ数情報５０４は、レンダリング制御情報５００の後に続くレイヤ情報５０１，５０２，...，５０３の数を示す情報である。第１レンダリング処理制御部４１０は、このレイヤ数情報５０４を元に、レイヤ情報５０１，５０２，...，５０３を必要な数だけ読み込み、各レイヤに対する処理を行う。
ピクセル長情報５０５は、各レイヤにおいて生成するピクセル長を示す情報である。第１レンダリング処理制御部４１０は、このピクセル長情報５０５と各レイヤ情報５０１，５０２，...，５０３を第１イメージピクセル生成部４１３に渡し、ピクセルの生成処理を行う指示を行う。
【００６９】
レイヤ１情報５０１、レイヤ２情報５０２、...、レイヤＮ情報５０３は、描画を行う各レイヤの描画処理を行うための詳細情報を示す。レイヤ１情報５０１、レイヤ２情報５０２、レイヤＮ情報５０３はそれぞれ、重ね合わせ種別情報５０６、５０７、５０８を保持する。また、必要に応じて描画方法詳細情報５０９、５１０、５１１を保持する。ここでいう描画方法詳細情報は、代表的なものでは拡縮情報や色変換情報等を示すが、この他の情報を保持しても構わない。
【００７０】
重ね合わせ種別情報５０６、５０７、５０８は、各レイヤのピクセルをどのように重ね合わせるかを示す、重ね合わせ処理の方法を示す情報である。本値は例えば、GDIの重ね合わせ処理、あるいはPDFの重ね合わせ処理などを示す。
【００７１】
（第２レンダリング情報の構成例）
図６は、第１プロセッサ４００の第１レンダリング処理制御部４１０が生成し、第２プロセッサ４０１の第２レンダリング処理制御部４１１が使用する第２レンダリング情報４２１のフォーマットを示す。
【００７２】
レイヤ種別情報７０１、７０２、７０３以外は、全て図５で説明したもののままの情報を生成する。
【００７３】
レイヤ種別情報７０１、７０２、７０３は、第１イメージピクセル生成部４１３が第１レンダリング処理制御部４１０からピクセルの生成処理を指示され、イ第１メージピクセル情報４２２を生成したか、否かを示す情報である。本例では、第１レンダリング処理制御部４１０が並列レイヤ生成処理を指示した場合に"Parallel"が記憶される。また、単一のレイヤ生成処理を指示した場合に"conplete"が記憶される。一方、第１プロセッサ４００ではレイヤ生成処理をせずに第２プロセッサでのレイヤ生成処理を指示した場合に"not complete"が記憶される。
【００７４】
＜本実施形態の画像形成処理部の動作例＞
（第１レンダリング処理部の動作手順例）
図７は  第１レンダリング処理制御部４１０を実現するＣＰＵ４０１１の動作手順例を示すフローチャートである。
【００７５】
まず、第１レンダリング処理制御部４１０のＣＰＵ４００１は、ステップＳ６０１でレンダリング制御処理に必要な各パラメータの初期化処理を行う。ここで行う処理では、第１レンダリング情報４２０から、レンダリング制御情報５００の取得処理を行う。さらに、取得したレンダリング制御情報５００からレイヤ数情報５０４の取得処理を行う。また、処理したレイヤ数を示す情報（ここでは変数"Level"とする）を０で初期化する。
【００７６】
次に、ステップＳ６０２に進み、ＣＰＵ４００１は、取得したレイヤ数情報５０４が１以下の値であるか否か（すなわち重ね合わせの有無）の判断処理を行う。１以下であった場合は重ね合わせは無いので、ステップＳ６１１に進み、それ以外であった場合は重ね合わせがあるので、ステップＳ６０３に進む。
【００７７】
ステップＳ６０３では、ＣＰＵ４００１は、第１レンダリング情報４２０に含まれる全てのレイヤ情報の取得処理を行い、レイヤ情報の中から重ね合わせ種別情報の抽出を行う。そして、抽出した重ね合わせ種別情報を基に重ね合わせ処理の複雑度の判断処理を行う。判断の結果、重ね合わせ処理が"簡易"と判断された場合はステップＳ６１１に進み、"複雑"と判断した場合はステップＳ６０４に進む。
【００７８】
重ね合わせ処理の複雑度の判断処理としては、予め重ねあわせ処理の各種別に対して重ね合わせ処理が"簡易"か"複雑"であるかを決めておく。そして、その情報を基に判断処理を行うものとする。実際には、GDI等の簡易的な重ねあわせ処理だけの場合であれば、"簡易"と判断するようにあらかじめ決めておく。また、PDFなどの複雑な重ねあわせ処理であれば、"複雑"と判断を行うように決めておく。さらに、透過値の処理が必要無い場合、”簡易”と判断し、透過値の処理が必要な場合、”複雑”と判断する。また、重ね合わせるオブジェクトがあらかじめ決める閾値以下だった場合、”簡易”と判断し、重ね合わせるオブジェクトがあらかじめ決める閾値以上だった場合、”複雑”と判断する。
【００７９】
ステップＳ６０４では、ＣＰＵ４００１は、ピクセル長情報５０５を判断し、予め決めておくピクセル長のしきい値より長いか否かを判断する。予め決めておくしきい値以下の場合はステップＳ６０６に進み、しきい値を越える場合はステップＳ６０５に進む。ステップＳ６０５では、ＣＰＵ４００１は、後述するピクセルの生成処理で生成したピクセルの出力先を共有メモリ４２４に設定する。一方、ステップＳ６０６では、ＣＰＵ４００１は、後述するピクセルの生成処理で生成したピクセルの出力先を通信メモリ４２３に設定する。しきい値としては、例えばメモリ展開が負荷とならない程度の１００ピクセルを使用するが、特に限定されるものでは無い。
【００８０】
ステップＳ６０７では、ＣＰＵ４００１は、処理を行っていないレイヤ数（すなわち、レイヤ数−Levelに相当する）が２レイヤ以上存在するか否かを判断する。２レイヤ以上存在した場合はステップＳ６０８へ進み、２レイヤ以上存在しなかった場合はステップＳ６１０へ進む。ステップＳ６０８では、ピクセル長情報５０５を判断し、ピクセル長のしきい値より以下か否かを判断する。しきい値としては、例えばメモリ展開が負荷とならない程度の１００ピクセルを使用するが、特に限定されるものでは無い。
【００８１】
ここでの判断は以下の理由による。ピクセル長がしきい値以下の場合、ステップＳ６０９で行う並列レイヤ生成処理では、従来の問題であったピクセルの管理処理で費やす処理が小さくなるのでその効果が無くなることが考えられる。そこで、ステップＳ６０８で並列レイヤ生成処理の効果を判断するために、ピクセル長の判断を行う。しきい値以下の場合はステップＳ６１０に進み、しきい値を越える場合はステップＳ６０９に進む。
【００８２】
ステップＳ６０９では、ＣＰＵ４００１は、イメージピクセルを２レイヤ分並列に生成処理を行う。本並列レイヤ生成処理は、ステップＳ６０１で取得したレイヤ情報から処理の対象となる２レイヤ分(Level, Level+1)のレイヤ情報を取得する。例えば、ここではレイヤ１情報５０１及びレイヤ２情報５０２を取得したとする。その際、それぞれの描画方法詳細情報５０９、５１０を基にイメージピクセルの生成処理を並列に行う。ここでいうピクセルの生成処理は、例えば、描画方法詳細情報５０９、５１０に含まれる拡縮情報や色変換情報を基に、ピクセル長情報５０５が示す数のピクセルを２レイヤ分、ピクセル毎に並列で生成する処理を行う。詳細は図８Ａ及び図１１を参照して後述する。
【００８３】
ステップＳ６１０では、ＣＰＵ４００１は、１レイヤ分のイメージピクセルの生成処理を行う。本レイヤ生成処理は、ステップＳ６０１で取得したレイヤ情報から処理の対象となる１レイヤ分(Level)のレイヤ情報を取得する。例えば、ここでレイヤ１情報５０１を取得したとする。その際、描画方法詳細情報５０９を基イメージピクセルの生成処理を行う。ここでいうピクセルの生成処理は、例えば、描画方法詳細情報５０９に含まれる拡縮情報や色変換情報を基に、ピクセル長情報５０５が示す数のピクセルの生成を行う。詳細は図８Ｂ及び図１０を参照して後述する。
【００８４】
ステップＳ６１１では、ＣＰＵ４００１は、イメージピクセルの生成処理を第１プロセッサ４００では行わずに、後段に位置する第２プロセッサ４０１に指示する。詳細は図８Ｃを参照して後述する。
【００８５】
ステップＳ６１２では、ＣＰＵ４００１は、並列レイヤ生成処理Ｓ６０９によって２レイヤの処理が終了したので、レイヤ数をLeven+2にカウントアップする。一方、ステップＳ６１２では、ＣＰＵ４００１は、レイヤ生成処理Ｓ６１０によって１レイヤの処理が終了したので、レイヤ数をLeven+1にカウントアップする。
【００８６】
ステップＳ６１４では、ＣＰＵ４００１は、処理したレイヤ数(Level)とレイヤ数情報５０４を比較し、レイヤ数がレイヤ数情報５０４より小さければ処理を続行し、レイヤ数がレイヤ数情報５０４以上であれば処理を完了する。
【００８７】
（並列レイヤ生成処理Ｓ６０９）
図８Ａは、図７の並列レイヤ生成処理Ｓ６０９を詳細を示したフローチャートである。
【００８８】
ステップＳ８０１では、ＣＰＵ４００１は、並列レイヤ生成処理を行う２つのレイヤ(Level, Level+1)のレイヤ種別情報を生成し、並列レイヤ生成処理を行ったことを示す種別（ここでは"Parallel"という値で識別）をセットする。
【００８９】
次に、ステップＳ８０２では、ＣＰＵ４００１は、実際に２レイヤ分のイメージピクセルを並列に生成処理を行う。詳細は図１１を参照に後述する。
【００９０】
（レイヤ生成処理Ｓ６１０）
図８Ｂは、図７のレイヤ生成処理Ｓ６１０を詳細を示したフローチャートである。
【００９１】
ステップＳ８０３では、ＣＰＵ４００１は、レイヤ生成処理を行う１つのレイヤ(Level)のレイヤ種別情報を生成し、レイヤ生成処理を行ったことを示す種別（ここでは"complete"という値で識別）をセットする。
【００９２】
次に、ステップＳ８０４では、ＣＰＵ４００１は、実際にイメージピクセルを１レイヤ分生成する処理を行う。詳細は図１０を参照して後述する。
【００９３】
（レイヤ分散処理Ｓ６１１）
図８Ｃは、図７のレイヤ分散処理Ｓ６１１を詳細を示したフローチャートである。
【００９４】
ステップＳ８０５では、ＣＰＵ４００１は、レイヤ数情報５０４の取得処理を行い、処理したレイヤ数を示す情報（ここでは変数"Level"とする）を０で初期化する。
【００９５】
ステップＳ８０６では、ＣＰＵ４００１は、レイヤ種別情報を生成し、後段に位置する第２プロセッサ４０１にイメージピクセル生成処理を分散させる旨を示す種別（ここでは"not complete"という値で識別）をセットする。
【００９６】
ステップＳ８０７では、ＣＰＵ４００１は、処理したレイヤ数をLevel+1だけカウントアップする。そして、ステップＳ８０８で、ＣＰＵ４００１は、処理したレイヤ数とレイヤ数情報５０４を比較し、処理の完了を判断する。
【００９７】
なお、本実施形態のレイヤ分散処理Ｓ６１１は、レイヤ数が１の場合のみとしている。しかし、かかる第２プロセッサ４０１へのレイヤ生成処理の分散は複数のレイヤについて行ってもよく、その数は第２プロセッサ４０１が実行する重ね合わせ処理の負荷に対応して変化させてもよい。また、レイヤ０として背景を組み込んで、レイヤ分散処理Ｓ６１１でレイヤ０と１のレイヤ生成処理を第２プロセッサ４０１に分散させてもよい。
【００９８】
（レイヤ情報生成処理Ｓ８０１，Ｓ８０３，Ｓ８０６）
図９は、図８Ａ乃至８Ｃで示したレイヤ情報生成処理（Ｓ８０１、Ｓ８０３、Ｓ８０６）の詳細を示すフローチャートである。
【００９９】
ステップＳ９０１では、ＣＰＵ４００１は、レイヤ種別情報の領域４０２７を確保する処理である。次に、ステップＳ９０２では、ＣＰＵ４００１は、ステップＳ９０１で確保したレイヤ種別情報に、図８Ａ乃至８Ｃに対応した各種別情報(Parallel, Complete, not complete)を格納する。ステップＳ９０３では、ＣＰＵ４００１は、ステップＳ９０２で準備された図８Ａ乃至８Ｃに対応した各種別情報(Parallel, Complete, not complete)を、第２レンダリング情報４２１のレイヤ情報に付加する。
【０１００】
（レイヤピクセル生成処理Ｓ８０４，Ｓ１４０５，Ｓ１４１０）
図１０は、図８Ｂで示したレイヤピクセル生成処理（Ｓ８０４）の詳細を示すフローチャートである。なお、図１０のレイヤピクセル生成処理と同様の手順が、第２プロセッサ４０１で実行されるレイヤピクセル生成処理（Ｓ１４０５，Ｓ１４１０）においても、ＣＰＵ４０１１により実行される。
【０１０１】
ステップＳ１００１では、ＣＰＵ４００１は、レイヤピクセル生成処理に必要な各パラメータの初期化処理を行う。例えば、処理したピクセル数を示す情報（ここでは変数"count"とする）を０で初期化する。さらに、図５で説明したピクセル長情報５０５の取得処理を行う。ステップＳ１００２では、ＣＰＵ４００１は、描画方法詳細情報の取得処理を行う。ここで取得する描画方法詳細情報は、Level番目のレイヤの描画方法詳細情報を取得するものとする。
【０１０２】
次に、ステップＳ１００３では、ＣＰＵ４００１は、第１イメージピクセル生成部４１３にLevel番目のレイヤのピクセル生成処理を指示する。ここで生成するピクセルは、count番目のピクセルの生成処理を行うものである。また、ここでいうピクセルの生成処理は、例えば、ステップＳ１００２で取得した描画方法詳細情報に含まれる拡縮情報や色変換情報を元に、count番目のピクセルの生成を行うものである。なお、第２プロセッサ４０１におけるステップＳ１４０５，Ｓ１４１０においては、第２イメージピクセル生成部４１４に指示を行う。
【０１０３】
ステップＳ１００４では、ＣＰＵ４００１は、ステップＳ１００３で生成したピクセルを第２プロセッサ４０１に通信する。通信に用いるピクセルの出力先は、ピクセル長情報５０５を基に図７のステップＳ６０４〜Ｓ６０６で設定された出力先４０２４に基づき切り替える処理を行う。すなわち、ピクセル長情報５０５がしきい値以下の場合は出力先に通信メモリ４２３を用いる。一方、しきい値を越える場合は出力先に共有メモリ４２４を用いて通信を行う。
【０１０４】
ステップＳ１００５では、ＣＰＵ４００１は、生成したピクセル数をcount+1だけインクリメントする処理である。本処理を行うことにより、生成したピクセル数の管理を行う。そして、ステップＳ１００６では、処理したピクセル数(count)とピクセル長情報(Length)を比較し、処理の完了を判断する。ピクセル数(count)がピクセル長情報(Length)未満で処理が完了していない場合はステップＳ１００３に戻り、ピクセル数(count)がピクセル長情報(Length)以上で処理が完了している場合は本処理を完了させる。
【０１０５】
（並列レイヤピクセル生成処理Ｓ８０２）
図１１は、図７で示した並列レイヤピクセル生成処理（Ｓ８０２）の詳細を示すフローチャートである。
【０１０６】
ステップＳ１１０１では、ＣＰＵ４００１は、並列レイヤ生成処理に必要な各パラメータの初期化処理を行う。例えば処理したピクセル数を示す情報（ここでは変数"count"とする）を０で初期化する。さらに、図５で説明したピクセル長情報５０５の取得処理を行う。ステップＳ１１０２では、ＣＰＵ４００１は、描画方法詳細情報の取得処理を行う。ここで取得する描画方法詳細情報は、Level番目とLevel+1番目のレイヤの描画方法詳細情報を取得するものとする。
【０１０７】
ステップＳ１１０３では、ＣＰＵ４００１は、第１イメージピクセル生成部４１３にLevel番目のレイヤのピクセル生成処理を指示する。ここで生成するピクセルは、count番目のピクセルの生成処理を行うものである。また、ここでいうピクセルの生成処理は、例えば、ステップＳ１１０２で取得した描画方法詳細情報に含まれる拡縮情報や色変換情報を元に、count番目のピクセルの生成を行うものである。ステップＳ１１０４では、ＣＰＵ４００１は、ステップＳ１１０３で生成したピクセルを第２プロセッサ４０１に通信する。通信に用いるピクセルの出力先は、ピクセル長情報５０５を基に既に設定された出力先に切り替える処理を行う。すなわち、ピクセル長情報５０しきい値以下の場合は通信メモリ４２３を用いて通信する。一方、しきい値を越える場合は共有メモリ４２４を用いて通信を行う。
【０１０８】
ステップＳ１１０５では、ＣＰＵ４００１は、第１イメージピクセル生成部４１３にLevel+1番目のレイヤのピクセル生成処理を指示する。ここで生成するピクセルはcount+1番目のピクセルの生成処理を行うものである。また、ここでいうピクセルの生成処理は、例えば、ステップＳ１１０２で取得した描画方法詳細情報に含まれる拡縮情報や色変換情報を元に、count+1番目のピクセルの生成を行うものである。ステップＳ１１０６では、ＣＰＵ４００１は、ステップＳ１１０５で生成したピクセルを第２プロセッサ４０１に通信する。通信に用いるピクセルの出力先は、ピクセル長情報５０５を基に既に設定された出力先に切り替える処理を行う。すなわち、ピクセル長情報５０５がしきい値以下の場合は通信メモリ４２３を用いて通信する。一方、しきい値を越える場合は共有メモリ４２４を用いて通信を行う。
【０１０９】
ステップＳ１１０７では、ＣＰＵ４００１は、生成したピクセル数をcount+1だけインクリメントする処理である。本処理を行うことにより、生成したピクセル数の管理を行う。そして、ステップＳ１１０８では、ＣＰＵ４００１は、処理したピクセル数(count)とピクセル長情報(Length)を比較し、処理の完了を判断する処理を示す。ピクセル数(count)がピクセル長情報(Length)未満で処理が完了していない場合はステップＳ１１０３に戻り、ピクセル数(count)がピクセル長情報(Length)以上で処理が完了している場合は本処理を完了させる。
【０１１０】
＜本実施形態における並列レイヤ生成処理の具体例＞
次に、図１２及び図１３Ａ乃至１３Ｃを用いて、本実施形態の特徴である並列レイヤ生成処理Ｓ６０９を行うことによる画像処理方法、特に通信方法におけるメリットを説明する。一例として、例えば１つの画像領域のレイヤ１のピクセルを示すRun Length１、レイヤ２のピクセルを示すRun Length２のピクセル生成処理を説明する。
【０１１１】
（レイヤ単位のビクセル生成）
まず、レイヤ単位でRun Lengthのピクセル生成を行い、各レイヤのピクセルを生成した都度、通信メモリ４２３へ出力を行う処理（図７のＳ６１０を繰り返す処理に相当）を行う場合を想定する。この時、通信メモリ４２３への格納状況は図１２の通信状況１が示すようになる。通信状況１はピクセル順に出力している例である。
【０１１２】
また、第１プロセッサ４００の処理時間１３００は、図１３Ａに示すように、Run Length１の生成処理時間を示すピクセル生成処理時間１３０４と、Run Length２の生成処理時間を示すピクセル生成処理時間１３０５との和になる。そして、この場合は、第２プロセッサ４０１がRun Length１のピクセルと、Run Length２のピクセルとの重ねあわせ処理を行う際、必要の無いピクセルの取得処理も必要となってしまう。さらに、取得したピクセルの管理処理を、メモリを用いて行う必要性も出てくる。例えば、ピクセル"1","6"の重ね合わせ処理を行う際、第２プロセッサ４０１はピクセル"6"を取得する前に、第１プロセッサ４００からピクセル"1"〜"5"までのデータの取得処理を行い、さらにメモリへの管理を行う必要がある。従って、第２プロセッサ４０１の処理時間１３０１としては、基本的には、重ねあわせ処理時間１３０７とメモリ読み出し処理時間１３０８が必要となるが、別途、メモリ書き出し時間１３０６を含んだ管理処理が必要となってしまう。
【０１１３】
（ピクセル単位の２レイヤのピクセル生成）
一方、図１１のステップＳ１１０３〜Ｓ１１０６で示す処理のように、Run Length１のピクセルと、Run Length２のピクセルを交互に通信メモリ４２３へ出力することで、図１２の通信状況２の状態になる。
【０１１４】
すると、第２プロセッサ４０１は、ピクセル"1","6"のみの取得が行え、無駄な取得処理や管理処理（メモリ書き出し時間１３０６）を省略することが可能となる。また、高速にアクセス可能なキュー方式のメモリから直接データの取得が行えることにより、メモリのレイテンシーによるパフォーマンス劣化を防ぐことも可能となる。その結果、第２プロセッサ処理時間１３０３は、重ね合わせ処理時間１３１０とメモリ読み出し処理時間１３１１のみとになる。
【０１１５】
これにより、図１３Ｂに示すように、レイヤ単位の場合のメモリアクセス時間１３１２が、ピクセル単位ではメモリアクセス時間１３１３となり、第２プロセッサ処理時間１３０１を、第２プロセッサ処理時間１３０３に効率化することが可能となる。
【０１１６】
（３レイヤ以上の重ね合わせ処理例）
上記図１３Ａ及び図１３Ｂでは、２レイヤの重ね合わせの場合の効率化を示した。図１３Ｃには、３レイヤ以上の場合にも同様に効率化が図れることを示す。
【０１１７】
図１３Ｃで、"D"は以下に図１５及び図１６でも使用するDestination"（今迄の重ね合わせの結果の格納場所）を示す。"R"は同様に"Result"（重ね合わせ処理の結果の格納場所）を示す。
【０１１８】
この場合の、第２プロセッサ処理時間は、既に終了した重ね合わせの結果の読出し時間１３１６と、重ね合わせ処理時間１３１５と、重ね合わせ処理結果の書き出し／読み出し処理時間１３１７との合計のみとなる。
【０１１９】
従って、図１３Ｃの場合も、図１３Ａと同様に、レイヤ単位の処理と比較すると無駄な取得処理や管理処理（メモリ書き出し時間１３０６）を省略することが可能となる。
【０１２０】
（第２レンダリング処理部の動作手順例）
図１４は、第２レンダリング処理制御部４１１が行うレンダリング制御処理の処理手順を示すフローチャートである。
【０１２１】
まず、第２レンダリング処理制御部４１１のＣＰＵ４０１１は、ステップＳ１４０１でレンダリング制御処理に必要な各パラメータの初期化処理を行う。ここで行う処理は、通信メモリ４２３から図６に示す第２レンダリング情報４２１を取得し、第２レンダリング情報４２１からレンダリング制御情報５００の取得処理を行う。さらに、取得したレンダリング制御情報５００からレイヤ数情報５０４の取得処理を行う。また、処理したレイヤ数を示す情報（ここでは変数"Level"とする）を０で初期化する。
【０１２２】
次に、ステップＳ１４０２に進み、ＣＰＵ４０１１は、取得したレイヤ数情報５０４が１以下の値であるか否か（重ね合わせが有るか否か）の判断処理を行う。１以下であった場合は重ね合わせが無くステップＳ１４１０に進み、それ以外であった場合は重ね合わせが有りステップＳ１４０３に進む。
【０１２３】
ステップＳ１４０３では、ＣＰＵ４０１１は、Level番目のレイヤ情報の取得処理を行い、レイヤ情報の中からレイヤ種別情報の抽出を行う。ステップＳ１４０４では、ＣＰＵ４０１１は、ステップＳ１４０３で取得したレイヤ種別情報の値の判別処理を行う。レイヤ種別情報に"parallel"が指定されている場合は、ステップＳ１４０６に進む。レイヤ種別情報に"complete"が指定されている場合は、ステップＳ１４０７に進む。レイヤ種別情報に"not Composite"が指定されている場合は、ステップＳ１４０５に進む。
【０１２４】
ステップＳ１４０５及びＳ１４１０は、１レイヤ分のイメージピクセルの生成処理を示し、ＣＰＵ４０１１は、図１０で示したレイヤピクセル生成処理と同様の処理を、第２イメージピクセル生成部４１４を使って行う。
【０１２５】
ステップＳ１４０６では、ＣＰＵ４０１１は、第１プロセッサ４００の並列レイヤ生成処理Ｓ６０９で出力されるレイヤごとに交互に出力されたピクセルの重ねあわせ処理を行う。詳細は図１６を参照して後述する。
【０１２６】
ステップＳ１４０７では、ＣＰＵ４０１１は、第１プロセッサ４００のレイヤ生成処理Ｓ６１０で出力されるピクセルの重ねあわせ処理を行う。詳細は図１５を参照して後述する。
【０１２７】
ステップＳ１４０８では、ＣＰＵ４０１１は、並列重ね合わせ処理Ｓ１４０６によって２レイヤの処理が終了したので、レイヤ数をLeven+2にカウントアップする。一方、ステップＳ１４０９では、ＣＰＵ４０１１は、重ね合わせ処理Ｓ１４０７によって１レイヤの処理が終了したので、レイヤ数をLeven+1にカウントアップする。
【０１２８】
ステップＳ１４１１では、ＣＰＵ４０１１は、処理したレイヤ数(Level)とレイヤ数情報５０４を比較し、レイヤ数がレイヤ数情報５０４より小さければ処理を続行し、レイヤ数がレイヤ数情報５０４以上であれば処理を完了する。
【０１２９】
（重ね合わせ処理Ｓ１４０７）
図１５は、図１４で示した重ねあわせ処理（Ｓ１４０７）の詳細を示すフローチャートである。
【０１３０】
ステップＳ１５０１では、ＣＰＵ４０１１は、重ねあわせ処理に必要な各パラメータの初期化処理を行う。例えば、処理したピクセル数を示す情報（ここでは変数"count"とする）を０で初期化する。さらに、図６で説明したピクセル長情報５０５の取得処理を行う。
【０１３１】
ステップＳ１５０２では、ＣＰＵ４０１１は、ＲＡＭ４０１２の領域４０３３から、Destinationになるピクセルを取得する。このDestinationピクセルは、例えば、初期の場合は完全に下地の色を示す白色のベタ塗りか、もしくは前回重ねあわせ処理を行った結果のピクセルなどを示す。
【０１３２】
ステップＳ１５０３では、ＣＰＵ４０１１は、Sourceになるピクセルを取得する。Sourceピクセルは、第１プロセッサ４００が図１０で説明したレイヤピクセル生成処理Ｓ８０４によって、通信メモリ４２３、もしくは共有メモリ４２４に出力したものである。従って、ＣＰＵ４０１１は、ピクセル長情報５０５の値がしきい値以下であった場合は通信メモリ４２３から取得し、しきい値を越える場合は共有メモリ４２４から取得を行う。
【０１３３】
ステップＳ１５０４では、ＣＰＵ４０１１は、ステップＳ１５０２とＳ１５０３で取得したDestinationピクセルとSourceピクセルとの重ねあわせ処理を、重ね合わせ処理部４１５に指示する。ここでは重ねあわせ種別情報に対応した、重ねあわせ処理を行うものとする。重ね合わせた結果は、Resultに格納される。
【０１３４】
ステップＳ１５０５では、ＣＰＵ４０１１は、生成したピクセル数をcount+1だけインクリメントする処理である。本処理を行うことにより、生成したピクセル数の管理を行う。そして、ステップＳ１５０６では、ＣＰＵ４０１１は、処理したピクセル数(count)とピクセル長情報(Length)を比較し、処理の完了を判断する処理を示す。ピクセル数(count)がピクセル長情報(Length)未満で完了していない場合は、ステップＳ１５０２に戻り、ピクセル数(count)がピクセル長情報(Length)以上で完了している場合、本処理を完了させる。
【０１３５】
（並列重ね合わせ処理Ｓ１４０６）
図１６は、図１４で示した並列重ねあわせ処理（Ｓ１４０６）の詳細を示すフローチャートである。
【０１３６】
ステップＳ１６０１では、ＣＰＵ４０１１は、並列重ねあわせ処理に必要な各パラメータの初期化処理を行う。例えば、処理したピクセル数を示す情報（ここでは変数"count"とする）を０で初期化する。さらに、図６で説明したピクセル長情報（５０５）の取得処理を行う。
【０１３７】
ステップＳ１６０２では、ＣＰＵ４０１１は、ＲＡＭ４０１２の領域４０３６から、Destinationになるピクセルを取得する。このDestinationピクセルは、例えば完全に下地の色を示す白のベタ塗りか、もしくは前回重ねあわせ処理を行った結果のピクセルなどがある。
【０１３８】
ステップＳ１６０３では、ＣＰＵ４０１１は、Source 1になるピクセルを取得する。Source 1ピクセルは、第１プロセッサ４００が図１１で説明した並列レイヤピクセル生成処理Ｓ８０２によって、通信メモリ４２３もしくは共有メモリ４２４に出力したものである。ここで、ＣＰＵ４０１１は、ピクセル長情報５０５の値がしきい値以下であった場合は、通信メモリ４２３から取得し、しきい値を越える場合は、共有メモリ４２４から取得を行う。例えば、図１２の通信状況２におけるレイヤ１のピクセル"1"や"2"などである。
【０１３９】
ステップＳ１６０４では、ＣＰＵ４０１１は、ステップＳ１６０２とＳ１６０３で取得したDestinationピクセルとSource 1ピクセルの重ねあわせ処理を、重ね合わせ処理部４１５に指示する。ここでは該重ねあわせ種別情報に対応した、重ねあわせ処理を行うものとする。重ね合わせの結果は、Resultに格納される。
【０１４０】
ステップＳ１６０５では、ＣＰＵ４０１１は、Source 2になるピクセルの取得処理を示す。Source 2ピクセルは、第１プロセッサ４００が図１１で説明した並列レイヤピクセル生成処理Ｓ８０２によって、通信メモリ４２３もしくは共有メモリ４２４に出力したものである。ここで、ＣＰＵ４０１１は、ピクセル長情報５０５の値がしきい値以下であった場合は、通信メモリ４２３から取得し、しきい値を越える場合は、共有メモリ４２４から取得を行う。例えば、図１２の通信状況２におけるレイヤ２のピクセル"6"や"7"などである。
【０１４１】
ステップＳ１６０４では、ＣＰＵ４０１１は、ステップＳ１６０４とＳ１６０５で取得したResultピクセルとSource 2ピクセルの重ねあわせ処理を、重ね合わせ処理部４１５に指示する。ここでは重ねあわせ種別情報に対応した、重ねあわせ処理を行うものとする。
【０１４２】
ステップＳ１６０６では、生成したピクセル数をcount+1だけインクリメントする処理である。本処理を行うことにより、生成したピクセル数の管理を行う。そして、ステップＳ１６０７では、処理したピクセル数(count)とピクセル長情報(Length)を比較し、処理の完了を判断する処理を示す。ピクセル数(count)がピクセル長情報(Length)未満で完了していない場合は、ステップＳ１６０２に戻り、ピクセル数(count)がピクセル長情報(Length)以上で完了している場合、本処理を完了させる。
【０１４３】
＜他の実施形態＞
なお、本実施形態の最初にも指摘したが、本発明の技術思想は、プリンタ制御システムに限定されず、他のシステムにおける複数のプロセッサによる並列処理の高速化のも適用が可能である。例えば、本発明に適用されるソフトウェアは、プリンタ制御システムに限ったものではなく、ワープロ（ワードプロセッサ）系ソフトウェア、表計算系ソフトウェア、作図系ソフトウェア等に幅広く応用可能である。これらも本発明に含まれる。
【０１４４】
また、本発明の目的は、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給してもよい。その場合、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
【０１４５】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１４６】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷを用いることができる。また、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【０１４７】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される。しかし、それ以外にも、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１４８】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１４９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現される。これ以外にも、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も、本発明に含まれることは言うまでもない。
【０１５０】
この場合、上記プログラムは、該プログラムを記憶した記憶媒体から直接、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続された他のコンピュータやデータベース等からダウンロードすることにより供給される。
【０１５１】
上記実施の形態では、画像形成装置の印刷方式を電子写真方式とした場合を例に挙げたが、本発明は、電子写真方式に限定されるものではなく、インクジェット方式、熱転写方式、感熱方式、静電方式、放電破壊方式など各種印刷方式に適用することができる。
【０１５２】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【図面の簡単な説明】
【０１５３】
【図１】本実施形態のプリンタ制御システムの構成例の概略を示す図である。
【図２】図１における画像処理装置であるレーザビームプリンタの一構成例を示す断面図である。
【図３】図１のプリンタコントローラの構成例を示すブロック図である。
【図４Ａ】図３の画像形成処理部の構成例の概略を示すブロック図である。
【図４Ｂ】図４の第１プロセッサの構成例を示すブロック図である。
【図４Ｃ】図４の第２プロセッサの構成例を示すブロック図である。
【図４Ｄ】本実施形態の画像形成処理部が処理する描画領域の一例を示す図である。
【図５】本実施形態の第１レンダリング情報のデータフォーマット例を示す図である。
【図６】本実施形態の第２レンダリング情報のデータフォーマット例を示す図である。
【図７】図４Ｂの第１プロセッサで第１レンダリング制御処理部を実現する処理手順を示すフローチャートである。
【図８Ａ】図７の並列レイヤ生成処理Ｓ６０９の処理手順例を示すフローチャートである。
【図８Ｂ】図７のレイヤ生成処理Ｓ６１９の処理手順例を示すフローチャートである。
【図８Ｃ】図７のレイヤ分散処理Ｓ６１１の処理手順例を示すフローチャートである。
【図９】図８Ａ乃至図８Ｃのレイヤ情報生成処理Ｓ８０１，Ｓ８０３，Ｓ８０６の処理手順例を示すフローチャートである。
【図１０】図８Ｂ及び図１４のレイヤピクセル生成処理Ｓ６０４，Ｓ１４０５，Ｓ１４１０の処理手順例を示すフローチャートである。
【図１１】図８Ａの並列レイヤピクセル生成処理Ｓ８０２の処理手順例を示すフローチャートである。
【図１２】本実施形態の画像形成処理部での第１及び第２プロセッサ間の通信方法のメリットを説明する図である。
【図１３Ａ】本実施形態の画像形成処理部の第２プロセッサでの処理時間のメリットを説明するタイミングチャートである。
【図１３Ｂ】本実施形態の画像形成処理部の第２プロセッサでの処理時間のメリットを説明するタイミングチャートである。
【図１３Ｃ】本実施形態の画像形成処理部の第２プロセッサでの３レイヤ以上の重ね合わせ処理の場合の処理時間を示すタイミングチャートである。
【図１４】図４Ｃの第２プロセッサで第２レンダリング制御処理部を実現する処理手順を示すフローチャートである。
【図１５】図１４の重ね合わせ処理Ｓ１４０７の処理手順例を示すフローチャートである。
【図１６】図１４の並列重ね合わせ処理Ｓ１４０６の処理手順例を示すフローチャートである。
【図１】
0005173578.tif 000002
【図２】
0005173578.tif 000003
【図３】
0005173578.tif 000004
【図４Ａ】
0005173578.tif 000005
【図４Ｂ】
0005173578.tif 000006
【図４Ｃ】
0005173578.tif 000007
【図４Ｄ】
0005173578.tif 000008
【図５】
0005173578.tif 000009
【図６】
0005173578.tif 000010
【図７】
0005173578.tif 000011
【図８Ａ】
0005173578.tif 000012
【図８Ｂ】
0005173578.tif 000013
【図８Ｃ】
0005173578.tif 000014
【図９】
0005173578.tif 000015
【図１０】
0005173578.tif 000016
【図１１】
0005173578.tif 000017
【図１２】
0005173578.tif 000018
【図１３Ａ】
0005173578.tif 000019
【図１３Ｂ】
0005173578.tif 000020
【図１３Ｃ】
0005173578.tif 000021
【図１４】
0005173578.tif 000022
【図１５】
0005173578.tif 000023
【図１６】
0005173578.tif 000024