(57)【要約】【課題】分類された各グループ内（レイヤー内）で完結した処理を可能にすることを目的とする。【解決手段】複数のオブジェクトを読み込むオブジェクト読込部４１１と、複数のオブジェクトを複数のグループに分けるオブジェクト分類処理部４１２と、複数の各オブジェクトの種類に基づいて、複数のオブジェクトの中で互いに関連するオブジェクトがそれぞれ異なるグループに分けられているか否かを判定するオブジェクトグループ判定処理部４１５と、オブジェクトグループ判定処理部４１５により互いに関連するオブジェクトが異なるグループに分けられていると判定された場合、グループに属しているオブジェクトの種類に応じたオブジェクトを生成してグループに追加するグループ調整処理部１４１とを有する。【選択図】図４
2016206934.tif 000002
【特許請求の範囲】
【請求項１】
複数のオブジェクトを読み込む読込手段と、
前記複数のオブジェクトを複数のグループに分ける分割手段と、
前記複数の各オブジェクトの種類に基づいて、前記複数のオブジェクトの中で互いに関連するオブジェクトがそれぞれ異なるグループに分けられているか否かを判定する判定手段と、
前記判定手段により前記互いに関連するオブジェクトが前記異なるグループに分けられていると判定された場合、前記グループに属しているオブジェクトの種類に応じたオブジェクトを生成して前記グループに追加する制御手段と、
を有する画像処理装置。
【請求項２】
前記制御手段により前記オブジェクトが追加された前記グループごとに、前記グループに属する複数のオブジェクトをレンダリングして、前記グループごとに対応した画像を生成するレンダリング手段を更に有する請求項１に記載の画像処理装置。
【請求項３】
前記互いに関連するオブジェクトはクリップ命令に対応するクリッパーオブジェクトとクリップ処理されるクリップドオブジェクトであり、
前記制御手段は、前記判定手段により前記クリップドオブジェクトが前記クリッパーオブジェクトとは異なるグループに分けられていると判定された場合、前記クリップドオブジェクトが属するグループに対して、前記クリップ命令と前記クリッパーオブジェクトを追加する請求項１又は２に記載の画像処理装置。
【請求項４】
前記互いに関連するオブジェクトはラスターオペレーション処理に用いられる複数のオブジェクトであり、
前記制御手段は、前記判定手段により前記ラスターオペレーション処理に用いられる複数のオブジェクトが前記異なるグループに分けられていると判定された場合、前記ラスターオペレーション処理に用いられる複数のオブジェクトが一つのグループ内に属するように、描画に影響を与えないパディング用のオブジェクトを追加する請求項１又は２に記載の画像処理装置。
【請求項５】
前記互いに関連するオブジェクトはクリップ命令に対応するクリッパーオブジェクトとクリップ処理されるクリップドオブジェクトであり、
前記制御手段は、前記判定手段により前記クリップドオブジェクトが前記クリッパーオブジェクトとは異なるグループに分けられていると判定された場合、前記クリッパーオブジェクトと前記クリップドオブジェクトが一つのグループ内に属するように前記グループ内に、描画に影響を与えないパディング用のオブジェクトを追加する請求項１又は２に記載の画像処理装置。
【請求項６】
前記制御手段は、前記追加するパディング用のオブジェクトの数が閾値以上となる場合、前記クリップドオブジェクトが属するグループに対して、前記クリップ命令と前記クリッパーオブジェクトを追加する請求項５に記載の画像処理装置。
【請求項７】
画像処理装置が実行する画像処理方法であって、
複数のオブジェクトを読み込む読込ステップと、
前記複数のオブジェクトを複数のグループに分ける分割ステップと、
前記複数の各オブジェクトの種類に基づいて、前記複数のオブジェクトの中で互いに関連するオブジェクトがそれぞれ異なるグループに分けられているか否かを判定する判定ステップと、
前記判定ステップにより前記互いに関連するオブジェクトが前記異なるグループに分けられていると判定された場合、前記グループに属しているオブジェクトの種類に応じたオブジェクトを生成して前記グループに追加する制御ステップと
を含む画像処理方法。
【請求項８】
コンピュータを、請求項１乃至６の何れか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来のレンダリング処理には、画像データに含まれるオブジェクトをグループに分類し、それらグループごとにレンダリング処理するような高速化技術がある。例えば、特許文献１には、描画するオブジェクト数が多く複雑な画像データである場合、複数のオブジェクトを複数のグループに分類して、グループごとのレイヤーでレンダリング処理するレイヤー分割レンダリング処理を行うような技術が開示されている。レイヤー分割レンダリング処理では、レイヤーごとにレンダリング処理が行われることで、レンダリング処理によるＣＰＵキャッシュミスヒットを抑制し、処理時間を減らすことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２５９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、レンダリング処理に用いられる各オブジェクトは、互いに関連している（依存関係を持つ）場合がある。一例として、各オブジェクトに対し論理演算による切抜き処理であるクリップ（Ｃｌｉｐ）処理がなされるような場合、それらオブジェクトは、互いに関連している（依存関係を持つ）といえる。他にも、例えばラスターオペレーション（Ｒａｓｔｅｒ  ＯＰｅｒａｔｉｏｎ：ＲＯＰ）処理がなされる場合にも、オブジェクトは、互いに依存関係を持つといえる。このように互いに依存関係を持ったオブジェクトが、前述のレイヤー分割レンダリング処理において異なるレイヤーに分けられた場合、それぞれのレイヤーで処理を完結出来ずに、誤った描画結果の画像が出力されてしまうことがある。
【０００５】
そこで、本発明は、複数に分類された各グループ内（レイヤー内）で完結した処理を可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置は、複数のオブジェクトを読み込む読込手段と、前記複数のオブジェクトを複数のグループに分ける分割手段と、前記複数の各オブジェクトの種類に基づいて、前記複数のオブジェクトの中で互いに関連するオブジェクトがそれぞれ異なるグループに分けられているか否かを判定する判定手段と、前記判定手段により前記互いに関連するオブジェクトが前記異なるグループに分けられていると判定された場合、前記グループに属しているオブジェクトの種類に応じたオブジェクトを生成して前記グループに追加する制御手段とを有する。
【発明の効果】
【０００７】
本発明によれば、複数に分類された各グループ内（レイヤー内）で完結した処理が可能になる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態の画像処理システムの概略構成例を示す図である。
【図２】本実施形態の画像処理装置の概略構成例を示す図である。
【図３】レンダリング処理のフローチャートである。
【図４】ソフトウェアプログラムの実行によるモジュールの構成例を示す図である。
【図５】ＰＤＬコマンドによるＣｌｉｐ処理の基本説明に用いる図である。
【図６】第１の実施形態のディスプレイリスト生成処理のフローチャートである。
【図７】グループ分けされたＣｌｉｐ処理結果の一例を示す図である。
【図８】分割レンダリング処理のフローチャートである。
【図９】第２の実施形態のディスプレイリスト生成処理のフローチャートである。
【発明を実施するための形態】
【０００９】
＜第１の実施形態＞
＜システム構成＞
図１は、画像処理システムのシステム構成及び画像処理システムを構成する画像処理装置のハードウェア構成の一例を示す図である。図１に示す画像処理システムは、ホストコンピュータ（情報処理装置）１３０と２台の画像処理装置１００，１１０が、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１４０により接続されている。本実施形態の画像処理装置１００，１１０は、画像形成装置でもあるＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）である。ただし、画像処理装置１００，１１０は、ＭＦＰだけに限定されず、ＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）であってもよく、また、レーザビームプリンタでもインクジェットプリンタであってもよい。また、画像処理装置１００，１１０のＬＡＮ１４０への接続数は、本実施形態を限定するものではない。
【００１０】
また、本実施形態では、ホストコンピュータ１３０や画像処理装置１００，１１０は、ＬＡＮ１４０に接続されているが、本実施形態はこれに限定されない。例えば、ホストコンピュータ１３０や画像処理装置１００，１１０は、公衆回線に代表されるＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１５０などの任意のネットワークに接続されてもよい。また、それら装置は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などのシリアル伝送方式、セントロニクスやＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）などのパラレル伝送方式などで接続されていてもよい。
【００１１】
ホストコンピュータ１３０は、パーソナルコンピュータの機能を有している。ホストコンピュータ１３０は、ＬＡＮ１４０やＷＡＮ１５０を介してＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）やＳＭＢ（Ｓｅｒｖｅｒ  Ｍｅｓｓａｇｅ  Ｂｌｏｃｋ）プロトコルを用いたファイルの送受信、電子メールの送受信が可能である。また、ホストコンピュータ１３０は、ホストコンピュータ１３０の記憶部に格納されているプリンタドライバプログラムを、ホストコンピュータ１３０のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が実行する。これにより、ホストコンピュータ１３０は、画像処理装置１００，１１０に対して印刷を指示可能である。
【００１２】
本実施形態の画像処理装置１００と１１０は、プリンタ機能とスキャナ機能を有した画像形成装置である。画像処理装置１００は、制御部１０１、操作部１０２、スキャナ部１０３、プリンタ部１０４を有し、ＬＡＮ１４０及びＷＡＮ１５０と接続されている。画像処理装置１１０は、制御部１１１、操作部１１２、スキャナ部１１３、プリンタ部１１４を有し、ＬＡＮ１４０及びＷＡＮ１５０と接続している。これら画像処理装置１００と１１０は、その内部構成が同じであり、以下、説明を簡単にするために、画像処理装置１００を説明することで、画像処理装置１１０についての説明を割愛する。
【００１３】
制御部１０１は、コントローラユニットであり、各部と接続して、各部の動作を制御することで画像処理装置１００全体の動作制御を司る。また制御部１０１は、ＬＡＮ１４０やＷＡＮ１５０を介して、ホストコンピュータ１３０や不図示の装置との間で、画像データなどを送受信する。操作部１０２は、入力ボタンやタッチパネル付きディスプレイ等を有し、印刷設定の情報等の入力をユーザから受け付けるユーザインターフェース（ＵＩ）である。また、操作部１０２は、制御部１０１からの指示に基づき、タッチパネル付きディスプレイ上に画像を表示する。ユーザ指示によって入力された印刷設定の情報は、操作部１０２から制御部１０１へ送信される。スキャナ部１０３は、原稿を読み取り、その読み取り画像を、制御部１０１に入力する画像入力デバイスである。プリンタ部１０４は、制御部１０１が処理した画像データ（ビットマップデータ）を受信して、その画像データに基づいた印刷処理を実行する画像出力デバイスである。
【００１４】
＜画像処理装置の構成＞
図２は、本実施形態における画像処理装置１００の内部の詳細な一構成例を示す図である。ＣＰＵ２０５は、画像処理装置１００全体を制御するための中央処理装置である。なお、ＣＰＵ２０５は、複数のＣＰＵから構成されていてもよい。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０６は、ＣＰＵ２０５が動作するためのワークメモリであり、入力された画像データを一時記憶するための画像メモリでもある。ＲＡＭ２０６は、メインメモリとも呼ばれ、以下メインメモリと呼ぶ場合にはＲＡＭ２０６のことを指す。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０７は、ブートＲＯＭであり、システムのブートプログラムが格納されている。ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２０８は、各種処理のためのシステムソフトウェアプログラムや、入力された画像データ等を格納する。なお、本実施形態の画像処理装置１００において、ＣＰＵ２０５が後述する各処理において使用する各閾値やその他の各種設定値は、ＲＯＭ２０７やＨＤＤ２０８等に格納されている。
【００１５】
操作部Ｉ／Ｆ２０９は、操作部１０２と制御部（コントローラユニット）１０１とを接続するためのインタフェース部である。操作部Ｉ／Ｆ２０９は、操作部１０２のディスプレイへ操作画面の画像を表示するための画像データが制御部１０１から供給されたとき、その画像データを操作部１０２へ出力する。また、操作部Ｉ／Ｆ２０９は、操作部１０２を介してユーザから入力された印刷設定等の情報を、ＣＰＵ２０５に伝える役割をする。ネットワークＩ／Ｆ２１１は、例えばＬＡＮカード等で実現され、ＬＡＮ１４０に接続して外部の装置との間で情報の入出力を行う。モデム２１２は、ＷＡＮ１５０に接続し、外部の装置との間で情報の入出力を行う。以上の各ユニットがシステムバス２１３に接続されるように配置されている。
【００１６】
イメージバスＩ／Ｆ２１４は、システムバス２１３と、画像データを高速で転送する画像バス２１５とを接続するためのインタフェース部であり、データ構造を変換するバスブリッジである。画像バス２１５には、ラスタイメージプロセッサ（ＲＩＰ）２１６、デバイスＩ／Ｆ２１７、スキャナ画像処理部２１８、プリンタ画像処理部２１９、画像編集用画像処理部２２０、カラーマネージメントモジュール（ＣＭＭ）２３０が接続される。ラスタイメージプロセッサ（ＲＩＰ）２１６は、ページ記述言語コード（ＰＤＬデータ）やベクタデータをビットマップデータに展開する。
【００１７】
デバイスＩ／Ｆ２１７は、スキャナ部１０３とプリンタ部１０４を制御部１０１に接続し、画像データの同期系／非同期系の変換を行う。スキャナ画像処理部２１８は、スキャナ部１０３から入力した画像データに対して、補正、加工、編集等の各種処理を行う。プリンタ画像処理部２１９は、プリンタ部１０４で印刷する画像データに対して、プリンタ部１０４のプリンタエンジンに応じた補正、解像度変換等の処理を行う。画像編集用画像処理部２２０は、画像データの回転や、画像データの圧縮伸長処理等の各種画像処理を行う。
【００１８】
ＣＭＭ２３０は、画像データに対して、カラープロファイルやキャリブレーションデータに基づいた、色変換処理（色空間変換処理ともいう）を施す専用ハードウェアモジュールである。なお、カラープロファイルとは、機器に依存した色空間で表現したカラー画像データを機器に依存しない色空間（例えばＬａｂなど）に変換するための関数のような情報である。キャリブレーションデータとは、画像処理装置１００におけるスキャナ部１０３やプリンタ部１０４の色再現特性を修正するためのデータである。
【００１９】
ＣＰＵ２０５が、ＲＯＭ２０７又はＨＤＤ２０８に記憶されたプログラムに基づき処理を実行することにより、後述する画像処理装置のソフトウェアモジュール及び後述するフローチャートの処理が実現される。
【００２０】
＜本実施形態における用語の説明＞
以下、本実施形態における用語について説明する。「スキャンライン」は、画像形成処理において画像データが連続的にメモリ走査される主走査方向のラインであり、スキャンラインの高さは１ピクセルとなっている。また、本実施形態において、複数のスキャンラインを束ねたものを「バンド」と呼び、単一のスキャンラインにおいてエッジ間で囲まれる閉領域を「スパン」と呼ぶ。「フィル」は、スパンに対する塗り情報であり、ビットマップデータやシェーディングのように１ピクセルごとに異なる色値を持つフィルや、ベタ塗りのようにスパン中で色値の変化がないフィルが存在する。「エッジ」は、ページ内に描画するオブジェクトとオブジェクトの境目、又はオブジェクトと背景の境目を指す。すなわち、エッジは、画像オブジェクトのアウトラインである。
【００２１】
「レベル」は、ページ内に描画するオブジェクト同士の上下関係を示すものであり、各オブジェクトには必ずそれぞれ異なるレベル番号が割り振られている。本実施形態において、各レベル番号の割り振りは、オブジェクトの種類に応じて行われる。また、本実施形態において、「オブジェクトの種類」は、ＰＤＬデータ内のＤＬコマンドの種類に対応しており、一例として後述するクリッパー（Ｃｌｉｐｐｅｒ）コマンドや多角形描画コマンド等に対応した種類が挙げられる。
【００２２】
「グループ」は、各レベルを昇順に纏めたものである。例えば、レベル番号が「１〜３００１」まで存在し、一グループに１０００レベルが含まれる場合、各グループは、レベル番号が「１〜１０００」、「１００１〜２０００」、「２００１〜３０００」、「３００１」のようにそれぞれレベルを纏めたものとなる。「レイヤー」は、複数のレベルを昇順にグループ化した一つのグループのことであり、各レイヤーにはそれぞれ上下関係が設定されている。例えば、最背面（最下位面）のレイヤーはレベル番号「１〜１０００」のグループ、その一つ上位面のレイヤーはレベル番号「１００１〜２０００」のグループ、更にその一つ上位面のレイヤーはレベル番号「２００１〜３０００」のグループのようになされる。そして、最上位面のレイヤーは、レベル番号が「３００１」のグループとなされる。
【００２３】
＜画像形成処理＞
次に、図３を参照して、本実施形態の画像処理装置１００が実行する画像形成処理の基本的な流れを説明する。図３に示される処理フローは、制御部１０１によって実行される。より具体的には、制御部１０１のＣＰＵ２０５が、ＨＤＤ２０８に格納されているシステムソフトウェアプログラムをＲＡＭ２０６にロードし、実行することによって実現される。
【００２４】
図３のフローチャートにおいて、ＣＰＵ２０５は、ステップＳ３０１として、ＰＤＬデータを受信する。なお、本実施形態のＰＤＬデータは、複数のオブジェクトが含まれる画像データあるものとする。ステップＳ３０１の後、ＣＰＵ２０５は、処理をステップＳ３０２へ進める。
【００２５】
ステップＳ３０２では、ＣＰＵ２０５は、ステップＳ３０１で受信したＰＤＬデータからディスプレイリストを生成し、メインメモリ上のディスプレイリストの記憶領域（以下、ＤＬメモリとする。）に格納する。この際に、ＣＰＵ２０５は、１ページ分のディスプレイリストを生成すべく、１ページ分のＰＤＬデータを先頭から解釈して、解釈された描画命令（コマンド）に従ってディスプレイリストを順次生成する。また、ディスプレイリストを生成する際に、ＣＰＵ２０５は、ＤＬメモリに格納されるディスプレイリストの総サイズを逐次監視し、総サイズが所定の閾値（以下、ＤＬ総サイズ閾値とする。）を超えたか否かを判定する。ＣＰＵ２０５は、ディスプレイリストの総サイズがＤＬ総サイズ閾値を超えたと判定した場合、フォールバック処理を実行すると判定し、ディスプレイリストの生成を一時的に止めて、フォールバック判定フラグをＯＮ（オン）にする。一方、ＣＰＵ２０５は、ディスプレイリストの総サイズがＤＬ総サイズ閾値以下であると判定した場合、フォールバック処理を実行しないと判定し、１ページ分のディスプレイリストを生成し、フォールバック判定フラグをＯＦＦ（オフ）とする。このステップＳ３０２の後、ＣＰＵ２０５は、ステップＳ３０３へ処理を移行させる。なお、本実施形態におけるディスプレイリストの生成処理については、後に＜ディスプレイリストの生成処理方法について＞で詳細を説明する。また、フォールバック処理については、後に＜フォールバック処理＞で詳細を説明する。
【００２６】
ステップＳ３０３では、ＣＰＵ２０５は、フォールバック処理を実行するか否かをフォールバック判定フラグ（ＯＮ又はＯＦＦ）に従って判定する。ＣＰＵ２０５は、ステップＳ３０３でフォールバック判定フラグがＯＮであると判定した場合には、処理をステップＳ３０４へ進める。一方、ＣＰＵ２０５は、ステップＳ３０３でフォールバック判定フラグがＯＦＦであると判定した場合には、処理をステップＳ３０６へ進める。
【００２７】
ステップＳ３０４では、ＣＰＵ２０５は、ＤＬメモリに格納されているディスプレイリストに対して、レイヤー分割レンダリング処理を行い、ビットマップを生成する。レイヤー分割レンダリング処理の詳細については後述する。
【００２８】
ステップＳ３０５では、ＣＰＵ２０５は、後述するフォールバック処理を実行する。このステップＳ３０５で、ＣＰＵ２０５は、レイヤー分割レンダリング処理によって生成したビットマップを背景イメージに対して重ね合わせる、ページ重ね合わせ処理を行う。そして、ＣＰＵ２０５は、それら重ね合わせにより得られたビットマップに対して、圧縮を施してデータサイズを縮小する。また、ＣＰＵ２０５は、圧縮後のビットマップを背景イメージのディスプレイリストとしてＤＬメモリに格納する。なお、１回目のフォールバック処理では背景イメージはないため、重ね合わせ処理の結果はステップＳ３０４で生成されたビットマップとなる。ステップＳ３０５の後、ＣＰＵ２０５は、ステップＳ３０２へ処理を戻す。
【００２９】
ステップＳ３０６では、ＣＰＵ２０５は、ＤＬメモリに格納されているディスプレイリストに対して、後述するレイヤー分割レンダリング処理を行い、ビットマップを生成する。ステップＳ３０６の後、ＣＰＵ２０５は、処理をステップＳ３０７へ進める。
【００３０】
ステップＳ３０７では、ＣＰＵ２０５は、入力された全ページ分のＰＤＬデータのレンダリング処理が完了したか否かを判定する。ＣＰＵ２０５は、レンダリング処理が完了していないと判定した場合には、次ページのレンダリング処理を行うべくステップＳ３０２へ処理を移行させる。一方、ＣＰＵ２０５は、レンダリング処理が完了したと判定した場合には、図３のフローチャートの処理を終了させる。なお、図３のフローチャートの後段の処理として、レンダリングされたビットマップ画像は、画像処理が施された後、プリンタ部１０４に送信されて印刷される。
【００３１】
＜フォールバック処理＞
次に、フォールバック処理について説明する。例えば、ページ記述言語（ＰＤＬデータ）からディスプレイリストを生成する際、入力されたＰＤＬデータサイズが大き過ぎると、全てのディスプレイリストを格納するためのＤＬメモリの容量が不足する場合がある。このため、本実施形態では、フォールバック処理を行うことで、ＤＬメモリの容量不足が起きないようにする。
【００３２】
フォールバック処理では、ＣＰＵ２０５は、先ず、ＤＬメモリに収まるサイズのディスプレイリストを、複数のオブジェクトの一部に対応するＰＤＬデータから生成し、そのディスプレイリストに対してレンダリング処理を実行してビットマップを生成する。そして、ＣＰＵ２０５は、このビットマップを生成する際に用いたディスプレイリストを、ＤＬメモリから削除する。また、ＣＰＵ２０５は、生成したビットマップに対してＪＰＥＧ圧縮などの非可逆圧縮を施してデータサイズを小さくし、その圧縮後のビットマップを、背景イメージのディスプレイリストとして、再びＤＬメモリに格納する。そして、ＣＰＵ２０５は、ビットマップの圧縮により生じたＤＬメモリの空き容量に、残りのＰＤＬデータから生成されるディスプレイリストを格納する。
【００３３】
次に、ＣＰＵ２０５は、ＤＬメモリに格納された、既にレンダリングされた背景イメージとしてのビットマップに、ＰＤＬデータから新たに生成されたディスプレイリストをレンダリングすることで得られたビットマップを、重ね合わせる。ＣＰＵ２０５は、このビットマップの重ね合わせ処理により、最終的にプリンタ部１０４へ送るべきビットマップを生成する。
【００３４】
以上の処理がフォールバック処理である。このフォールバック処理を行うか否かは、制御部１０１が、ＤＬメモリに格納されているディスプレイリストの総量が所定の閾値（ＤＬ総サイズ閾値）を超えたかどうかにより決める。すなわち、本実施形態の場合、フォールバック処理は、ＰＤＬデータからディスプレイリストを生成する際に、ＤＬメモリに格納されるディスプレイリストの総サイズがＤＬ総サイズ閾値を超えた場合に実行される。
【００３５】
なお、図３のステップＳ３０５のフォールバック処理におけるビットマップの重ね合わせ処理の際の背景イメージは、既にレンダリング処理により生成された１ページ分の大きさのビットマップである。このときの背景イメージは圧縮されており、この背景イメージのディスプレイリストはＤＬメモリに格納されている。ＣＰＵ２０５は、レンダリング処理において背景イメージが存在している場合、この圧縮背景イメージを展開して、処理対象となっているディスプレイリストのレンダリング時に重ね合わせる処理を行う。すなわち、フォールバック処理では、圧縮された画像データを展開した画像データが重ね合わせに用いられる。
【００３６】
＜プログラムによるソフトウェアモジュール＞
図４は、本実施形態の画像処理装置の制御部１０１がシステムソフトウェアプログラムを実行することで形成される各ソフトウェアモジュール（以下、モジュールとする。）の一例を示す図である。より具体的には、制御部１０１のＣＰＵ２０５が、ＨＤＤ２０８に格納されているシステムソフトウェアプログラムをＲＡＭ２０６にロードし実行することで、形成されるモジュールである。
【００３７】
図４において、ＰＤＬデータ受信処理部４００は、図３のステップＳ３０１においてＰＤＬデータを受信するモジュールである。
【００３８】
ディスプレイリスト生成処理部４１０は、図３のステップＳ３０２において、ＰＤＬデータからディスプレイリストを生成するモジュールである。ディスプレイリスト生成処理部４１０は、生成したディスプレイリストを、メインメモリ上のディスプレイリストの記憶領域（ＤＬメモリ）に格納する。ディスプレイリスト生成処理部４１０は、オブジェクト読込処理部４１１、オブジェクト分類処理部４１２、オブジェクト種類判定処理部４１３、グループ調整処理部４１４、オブジェクトグループ判定処理部４１５の五つのモジュールを有する。
【００３９】
オブジェクト読込処理部４１１は、ＰＤＬデータから複数のオブジェクトを順次読み込む処理を行うモジュールである。オブジェクト分類処理部４１２は、オブジェクト読込処理部４１１が読み込んだ複数のオブジェクトを、複数のグループに分類する処理を行うモジュールである。複数のオブジェクトを複数のグループに分類する処理の詳細は後述する。
【００４０】
オブジェクト種類判定処理部４１３は、オブジェクト読込処理部４１１が読み込んだオブジェクトの種類を判定する処理を行うモジュールである。また、オブジェクト種類判定処理部４１３は、オブジェクト分類処理部４１２が複数のグループに分類した各オブジェクトについて、それらオブジェクトの中に互いに関連したオブジェクトが含まれているか否かを判定する。本実施形態では、互いに関連したオブジェクトの一例として、論理演算により画像を切り抜くようなクリップ処理（Ｃｌｉｐ処理）に関連したオブジェクトを挙げている。なお、Ｃｌｉｐ処理に関連したオブジェクトは、相互に依存した関係であるため、以下の説明では、それらを互いに依存関係にあるオブジェクトと表記する。
【００４１】
オブジェクトグループ判定処理部４１５は、オブジェクト種類判定処理部４１３により互いに依存関係にあると判定されたオブジェクトが、それぞれ異なるグループに分類されているか否かを判定する処理を行うモジュールである。より具体的には、オブジェクトグループ判定処理部４１５は、互いに依存関係にあるオブジェクトの種類が、後述するＣｌｉｐ処理に関連したオブジェクトである場合、それらオブジェクトが異なるグループに分類されているか否かを判定する。
【００４２】
グループ調整処理部４１４は、オブジェクト種類判定処理部４１３により判定されたオブジェクトの種類に応じて、それらオブジェクトが属するグループを調整する処理を行うモジュールである。より具体的には、オブジェクトグループ判定処理部４１５において、互いに依存関係にあるオブジェクトがそれぞれ異なるグループに分類されていると判定された場合に、それら依存関係にあるオブジェクトが属するグループを調整する。特に、オブジェクトグループ判定処理部４１５においてＣｌｉｐ処理に関連したオブジェクトが異なるグループに分類されていると判定された場合、グループ調整処理部４１４は、クリップ命令処理とクリップ命令追加処理によりグループを調整する。クリップ命令修正処理は、Ｃｌｉｐ処理に関連したオブジェクトがそれぞれ異なるグループに分類されている場合に、それらＣｌｉｐ処理に関連したオブジェクトが、Ｃｌｉｐ処理されるようにクリップ命令（Ｃｌｉｐコマンド）を修正する処理である。クリップ命令追加処理は、Ｃｌｉｐ処理に関連したオブジェクトが属する全てのグループに対し、クリップ命令修正処理により修正されたクリップ命令を追加する処理である。
【００４３】
分割レンダリング処理部４２０は、図３のステップＳ３０４において、ＤＬメモリに格納されているディスプレイリストに対してレイヤー分割レンダリング処理を行い、ビットマップを生成するモジュールである。分割レンダリング処理部４２０は、エッジ処理部４２１、レベル処理部４２２、フィル処理部４２３、コンポジット処理部４２４の４つのモジュールを有する。
【００４４】
エッジ処理部４２１は、エッジ処理を行うモジュールである。エッジ処理は、大きく分けて、エッジロード処理、エッジ削除処理、Ｘ座標算出処理、エッジソート処理、エッジトラッキング処理の五つの処理からなっている。エッジロード処理は、ＤＬメモリに格納されているディスプレイリストから、オブジェクトのアウトラインを示すエッジデータをメインメモリ上へロードする処理（エッジロード処理）である。Ｘ座標算出処理は、ロードされたエッジデータに対して、スキャンラインごとにエッジの傾きや塗りルールを元に、エッジの位置を示すＸ座標を算出する処理である。エッジソート処理は、ＡｃｔｉｖｅＥｄｇｅＬｉｓｔ（ＡＥＬ）と呼ばれるリンクリスト（エッジリスト）を参照して、処理中のスキャンラインに現われるエッジを、スキャンラインごとにエッジリストの先頭からエッジのＸ座標昇順でソートする処理である。エッジソート処理は、スキャンラインが変わってエッジのＸ座標の前後が逆転した場合、又は新たにエッジが出現／消滅した場合などに、エッジリストのリンク構造を更新する処理となっている。エッジトラッキング処理は、エッジソートが終わったエッジリストを、Ｘ座標昇順でのエッジデータ及びレベルデータとしてレベル処理部４２２に渡す処理である。エッジ削除処理は、最後に描画が終了したエッジを削除する処理である。
【００４５】
レベル処理部４２２は、レベル処理を行うモジュールである。レベル処理は、大別して、レベル追加処理、レベル削除処理、レベルソート処理の三つの処理からなっている。レベル追加処理は、エッジ処理部４２１から送られてきたエッジデータに含まれるエッジの向きやクリップ情報を元に、エッジが描画対象のエッジであるか否かを判定する処理である。エッジが描画対象だった場合、レベル処理部４２２は、ＡｃｔｉｖｅＬｅｖｅｌＬｉｓｔ（ＡＬＬ）と呼ばれるリンクリストに該当するエッジデータを追加する。レベル削除処理は、レベル追加処理と逆の処理であり、エッジの向きやクリップ情報を元にそれまで描画対象だったエッジが描画対象でなくなった場合、ＡＬＬから削除する処理である。レベルソート処理は、ＡＬＬをレベル番号昇順に常にソートする処理であり、レベルの追加や削除があった場合に、このソート処理が行われる。これらの処理を行ったレベルデータはスパン単位でフィル処理部４２３に渡される。
【００４６】
フィル処理部４２３は、フィル処理を行うモジュールである。フィル処理は、大別して、画像拡縮処理、画像回転処理、ピクセル生成処理の三つの処理からなっている。画像拡縮処理は、ディスプレイリストに含まれているビットマップ画像に拡大率が指定されていた場合、その指定に応じてフィルを生成する処理である。画像回転処理は、ディスプレイリストに含まれているビットマップ画像に回転情報が指定されていた場合、その指定に応じてフィルを生成する処理である。ピクセル生成処理は、ディスプレイリストに或る色値とそれらの変化情報が指定されていた場合、その指定に応じてフィルを生成する処理である。
【００４７】
コンポジット処理部４２４は、コンポジット処理を行うモジュールである。コンポジット処理は、レベル処理部４２２で確定したレベルの上下関係とフィル処理部４２３で生成したピクセルをもとに、ディスプレイリストに指定されている重ね合わせを行う処理である。
【００４８】
前述した分割レンダリング処理部４２０におけるエッジ処理部４２１、レベル処理部４２２、フィル処理部４２３、コンポジット処理部４２４の各処理は、スパンを単位としてパイプラインで並列に処理される。各スキャンラインのスパンは、エッジ処理、レベル処理、フィル処理、コンポジット処理の順でパイプライン処理される。
【００４９】
＜ディスプレイリストの生成処理方法について＞
次に、図３のステップＳ３０２のディスプレイリスト生成処理方法について説明する。ステップＳ３０２では、ＣＰＵ２０５は、ステップＳ３０４，Ｓ３０６のレイヤー分割レンダリング処理で実行可能なディスプレイリストを生成する。ここでは、ＣＰＵ２０５は、ステップＳ３０４，Ｓ３０６のレイヤー分割レンダリング処理において、例えば１０００レベルごとにレイヤーを分けるようなディスプレイリストを生成する場合について説明する。また、以下の説明では、ＰＤＬデータ内のＤＬコマンドに所定の領域を切り抜くクリップ処理（Ｃｌｉｐ処理）を含んでいる場合を説明する。
【００５０】
本実施形態において、ＣＰＵ２０５は、ステップＳ３０４，Ｓ３０６のレイヤー分割レンダリング処理では、レベル番号が「１〜１０００」までのオブジェクトを１レイヤー目としてビットマップページ画像を生成する。次に、ＣＰＵ２０５は、レベル番号が「１００１〜２０００」のオブジェクトを２レイヤー目としてビットマップページ画像を生成する。
【００５１】
ここで、Ｃｌｉｐ処理の概要について、図５を用いて説明する。図５の画像５００は、ＰＤＬデータ内の１４個のＰＤＬコマンドに基づくオブジェクト５０１〜５１４から構成されている。オブジェクト５０１は、Ｃｌｉｐ処理を指定するＣｌｉｐｐｅｒコマンドに対応したクリッパーオブジェクト（以下、Ｃｌｉｐｐｅｒオブジェクトとする。）である。すなわち、Ｃｌｉｐｐｅｒオブジェクト５０１は、例えば他の多角形オブジェクトをＣｌｉｐ処理（切り抜き処理）するために用いられるオブジェクトである。このＣｌｉｐｐｅｒオブジェクト５０１に対しては、コマンド種類としてＣｌｉｐｐｅｒコマンドが指定される。オブジェクト５０２〜５１４は、それぞれ多角形オブジェクトである。これらオブジェクト５０２〜５１４に対しては、コマンドの種類として多角形描画コマンドが指定される。これら１３個のオブジェクト５０２〜５１４のそれぞれは、Ｃｌｉｐ処理の対象であって、クリップドオブジェクト（Ｃｌｉｐｐｅｄオブジェクト）と呼ばれる。
【００５２】
また、Ｃｌｉｐｐｅｒコマンドは、そのＣｌｉｐｐｅｒコマンドによるＣｌｉｐ処理の対象であるＣｌｉｐｐｅｄオブジェクトの数を、コマンドの属性情報として有している。この属性情報によるＣｌｉｐｐｅｄオブジェクトの数は、Ｃｌｉｐ処理の範囲（以下、Ｃｌｉｐ範囲とする。）を示している。すなわち、属性情報によるＣｌｉｐｐｅｄオブジェクトの数だけ、Ｃｌｉｐｐｅｒオブジェクトに続くオブジェクトが、ＣｌｉｐｐｅｒコマンドによるＣｌｉｐ処理の対象となる。図５の例の場合、Ｃｌｉｐｐｅｒオブジェクト５０１に対応したＣｌｉｐｐｅｒコマンドは、Ｃｌｉｐｐｅｄオブジェクトの数が１３（Ｃｌｉｐ範囲が１３レベル）となされている。したがって、１３個のＣｌｉｐｐｅｄオブジェクトがＣｌｉｐ処理の対象になっている。
【００５３】
図５の例の場合、そのＣｌｉｐｐｅｒコマンドに対応したＣｌｉｐｐｅｒオブジェクト５０１は、Ｃｌｉｐｐｅｄオブジェクトを楕円形に切り抜くためのオブジェクトとなされている。このため、そのＣｌｉｐｐｅｒコマンドにより指定されるＣｌｉｐ範囲の各Ｃｌｉｐｐｅｄオブジェクト５０２〜５１４は、Ｃｌｉｐｐｅｒオブジェクト５０１により楕円形に切り抜かれる。
【００５４】
そして、図５の例において、Ｃｌｉｐｐｅｒオブジェクト５０１により楕円形に切り抜かれた各Ｃｌｉｐｐｅｄオブジェクト５０２〜５１４が合成されることにより、画像５００が描画される。すなわち、Ｃｌｉｐｐｅｄオブジェクト５０２〜５１４のそれぞれは、Ｃｌｉｐｐｅｒオブジェクト５０１を介して、互いに関連している。
【００５５】
次に、図６のフローチャートを参照しながら、図４のディスプレイリスト生成処理部４１０で行われるディスプレイリスト生成処理を説明する。図６のフローチャートに示すディスプレイリスト生成処理は、ＣＰＵ２０５がＨＤＤ２０８に格納されているディスプレイリスト生成処理のシステムソフトウェアプログラムをＲＡＭ２０６にロードし、実行することによって実現される。
【００５６】
ＣＰＵ２０５は、先ず、ステップＳ６０１として、レイヤー分割レンダリング処理におけるレイヤー分割のためのグループ分けの際のレベル数の閾値（以下、分割レベル数閾値とする。）を設定する。すなわち、ここで設定された閾値の数ごとにオブジェクトは異なるレイヤーに分類される。ステップＳ６０１の後、ＣＰＵ２０５は、処理をステップＳ６０２へ進める。なお、図４に示したモジュールでは、ディスプレイリスト生成処理部４１０が、ステップＳ６０１における分割レベル数閾値の設定を行う。
【００５７】
ステップＳ６０２では、ＣＰＵ２０５は、処理中のＰＤＬデータを解析し、ＰＤＬデータ内に含まれる未処理のオブジェクトの情報を読み込む。ステップＳ６０２の後、ＣＰＵ２０５は、処理をステップＳ６０３へ進める。なお、図４に示したモジュールでは、ディスプレイリスト生成処理部４１０のオブジェクト読込処理部４１１が、ステップＳ６０２におけるＰＤＬデータの解析と未処理のオブジェクト情報の読み込みの処理を行う。
【００５８】
ステップＳ６０３では、ＣＰＵ２０５は、ステップＳ６０２で読み込んだオブジェクトにレベル番号を付与するために、現在のレベル番号を算出する。レベル番号は「１」を開始番号とし、重複のない連番で各オブジェクトに付与される。ステップＳ６０３の後、ＣＰＵ２０５は、処理をステップＳ６０４へ進める。なお、図４のモジュールでは、ディスプレイリスト生成処理部４１０のオブジェクト分類処理部４１２が、ステップＳ６０３におけるオブジェクトへのレベル番号付与の処理を行う。
【００５９】
ステップＳ６０４では、ＣＰＵ２０５は、現在のレベル番号とレイヤー分割レンダリング処理の分割レベル数閾値とに基づいて、ステップＳ６０２で読み込んだオブジェクトが、レイヤーの先頭のオブジェクト（すなわちレイヤーの開始レベルのオブジェクト）であるか否かを判定する。ＣＰＵ２０５は、読み込んだオブジェクトがレイヤーの先頭のオブジェクトではないと判定した場合は、処理をステップＳ６１１へ進める。一方、ＣＰＵ２０５は、読み込んだオブジェクトがレイヤーの先頭のオブジェクトであると判定した場合には、処理をステップＳ６０５へ進める。なお、図４のモジュールでは、オブジェクト分類処理部４１２が、ステップＳ６０４におけるオブジェクトのレイヤー内位置判定の処理を行う。
【００６０】
ステップＳ６０５では、ＣＰＵ２０５は、各レイヤーの先頭となる現在のオブジェクトを処理する際に、考慮すべきＣｌｉｐｐｅｒオブジェクトがあるかを判定する。すなわち、ＣＰＵ２０５は、現在のオブジェクトまでの処理においてステップＳ６１８（後述）によってＤＬメモリに保持されているＣｌｉｐｐｅｒオブジェクトの総数を算出する。ステップＳ６０５の後、ＣＰＵ２０５は、処理をステップＳ６０６へ進める。なお、図４のモジュールでは、オブジェクトグループ判定処理部４１５が、ステップＳ６０５の処理を行う。
【００６１】
ステップＳ６０６では、ＣＰＵ２０５は、ＤＬメモリに保持しているＣｌｉｐｐｅｒオブジェクトの有無に基づいて、追加する必要があるＣｌｉｐｐｅｒオブジェクトの有無を判定する。つまり、ＣＰＵ２０５は、ステップＳ６０５で算出されたＣｌｉｐｐｅｒオブジェクトの総数が１以上である場合に、現在のレイヤーの先頭にＣｌｉｐｐｅｒオブジェクトを追加する必要があると判定する。言い換えれば、ＣＰＵ２０５は、レイヤー分割によって、ＰＤＬデータに含まれるＣｌｉｐｐｅｒオブジェクトと、そのＣｌｉｐｐｅｒオブジェクトに対応するＣｌｉｐｐｅｄオブジェクトが、それぞれ異なるグループ（レイヤー）に分類されたか否かを判定する。そして、ＣＰＵ２０５は、ＣｌｉｐｐｅｒオブジェクトとＣｌｉｐｐｅｄオブジェクトがそれぞれ異なるグループに分類されていると判定した場合、Ｃｌｉｐｐｅｒオブジェクトが存在していないグループに対して、Ｃｌｉｐｐｅｒオブジェクトの追加が必要であると判定する。ＣＰＵ２０５は、Ｃｌｉｐｐｅｒオブジェクトの追加が必要であると判定した場合には、処理をステップＳ６０７へ処理を進める。一方、ＣＰＵ２０５は、Ｃｌｉｐｐｅｒオブジェクトの追加が必要でないと判定した場合には、処理をステップＳ６１６へ進める。なお、図４のモジュールでは、オブジェクトグループ判定処理部４１５が、ステップＳ６０５におけるＣｌｉｐｐｅｒオブジェクトの追加判定の処理を行う。
【００６２】
ステップＳ６１６の処理に進んだ場合、ＣＰＵ２０５は、ステップＳ６０２で読み込んだオブジェクトがＣｌｉｐｐｅｒオブジェクトであるか否か判定する。ＣＰＵ２０５は、Ｃｌｉｐｐｅｒオブジェクトでないと判定した場合には、処理をステップＳ６２０へ進める。一方、ＣＰＵ２０５は、Ｃｌｉｐｐｅｒオブジェクトであると判定した場合には、処理をステップＳ６１７へ進める。なお、図４のモジュールでは、オブジェクト種類判定処理部４１３が、ステップＳ６１６における判定処理を行う。
【００６３】
ステップＳ６１７では、ＣＰＵ２０５は、ステップＳ６０３で算出した現在のレベル番号と読み込んだＣｌｉｐｐｅｒオブジェクトの属性情報が有するＣｌｉｐ範囲の和がステップＳ６０１で設定した分割レベル数を超えるか（跨ぐか）を判定する。すなわち、ここでは、Ｃｌｉｐｐｅｒオブジェクトと、そのＣｌｉｐｐｅｒオブジェクトに対応する１つ以上のＣｌｉｐｐｅｄオブジェクトが、それぞれ異なるグループ（レイヤー）に分類されるか否かが判定される。ＣＰＵ２０５は、Ｃｌｉｐｐｅｒオブジェクトと、その対応するＣｌｉｐｐｅｄオブジェクトのうちの少なくとも１つとが異なるグループ（レイヤー）に分類されないと判定した場合には、処理をステップＳ６２０へ進める。一方、ＣＰＵ２０５は、異なるグループ（レイヤー）に分類されると判定した場合には、処理をステップＳ６１８へ進める。
【００６４】
ステップＳ６１８では、ＣＰＵ２０５は、読み込んだＣｌｉｐｐｅｒオブジェクトを複製し、読み込んだＣｌｉｐｐｅｒオブジェクトの情報と複製したＣｌｉｐｐｅｒオブジェクトの情報をＤＬメモリに保持する。ステップＳ６１８の後、ＣＰＵ２０５は、処理をステップＳ６１９へ進める。
【００６５】
ステップＳ６１９では、ＣＰＵ２０５は、複製したＣｌｉｐｐｅｒオブジェクトのＣｌｉｐ範囲を修正する。より具体的には、ステップＳ６０１で設定した分割レベル数と、ステップＳ６０３で算出した現在のレベル番号を分割レベル数で除算した剰余の差を、読み込んだＣｌｉｐｐｅｒオブジェクトの属性情報が有するＣｌｉｐ範囲とする。複製したＣｌｉｐｐｅｒオブジェクト属性情報が有するＣｌｉｐ範囲は、修正後の読み込んだＣｌｉｐｐｅｒオブジェクトのＣｌｉｐ範囲との差を新たなＣｌｉｐ範囲とする。これにより、複製したＣｌｉｐｐｅｒオブジェクトは異なるグループ（レイヤー）の先頭に挿入可能な属性情報を持つ。ステップＳ６１９の後、ＣＰＵ２０５は、処理をステップＳ６２０へ進める。
【００６６】
ステップＳ６２０では、ＣＰＵ２０５は、読み込んだオブジェクトに対し、ステップＳ６０３で求めた現在のレベル番号を付与する。ステップＳ６２０の後、ＣＰＵ２０５は、処理をステップＳ６２１へ進める。
【００６７】
ステップＳ６２１では、ＣＰＵ２０５は、オブジェクトのＤＬコマンドを生成し、ＤＬメモリに格納する。ステップＳ６２１の後、ＣＰＵ２０５は、処理をステップＳ６２２へ進める。
【００６８】
ステップＳ６２２では、ＣＰＵ２０５は、ＤＬメモリの領域に格納されたＤＬコマンドの容量が所定の閾値を超えたか否か判定する。すなわちこのときのＣＰＵ２０５は、ＤＬメモリに格納されるＤＬコマンドの容量がフォールバック処理を必要とする容量に対応した所定の閾値（以下、フォールバック用閾値とする。）を超えたか否か判定する。ＣＰＵ２０５は、フォールバック用閾値を超えたと判定した場合には、処理をステップＳ６２３へ進める。一方、ＣＰＵ２０５は、フォールバック用閾値を越えていないと判定した場合には、処理をステップＳ６２４へ進める。
【００６９】
ステップＳ６２３では、ＣＰＵ２０５は、フォールバック判定フラグをＯＮにし、図６のディスプレイリスト生成処理を終了する。
【００７０】
ステップＳ６２４では、ＣＰＵ２０５は、ＰＤＬデータ内の全オブジェクトの読み込みとＤＬコマンドの生成処理が完了したか否か判定し、完了したと判定した場合には、図６のディスプレイリスト生成処理を終了する。一方、完了していないと判定した場合、ＣＰＵ２０５は、処理をステップＳ６０２へ戻す。
【００７１】
ステップＳ６０２の処理へ移行した後、ＣＰＵ２０５の処理が、ステップＳ６０３の処理を経てステップＳ６０４の処理へ進み、オブジェクトがレイヤーの先頭に位置していると判定し、さらにステップＳ６０５を経てステップＳ６０６に進んだとする。そして、ステップＳ６０６において、ＣＰＵ２０５が、互いに依存関係を持つＣｌｉｐｐｅｒオブジェクトとＣｌｉｐｐｅｄオブジェクトが異なるグループに分類されているため、Ｃｌｉｐｐｅｒオブジェクトの追加が必要であると判定したとする。このように、ステップＳ６０６で、Ｃｌｉｐｐｅｒオブジェクトの追加が必要であると判定すると、ＣＰＵ２０５は、処理をステップＳ６０７に進める。
【００７２】
ステップＳ６０７では、ＣＰＵ２０５は、追加するＣｌｉｐｐｅｒオブジェクトに対し、ステップＳ６０３で求めた現在のレベル番号を付与する。ステップＳ６０７の後、ＣＰＵ２０５は、処理をステップＳ６０８へ進める。なお、図４のモジュールでは、グループ調整処理部４１４が、クリップ命令追加処理の一部として、ステップＳ６０７の処理を行う。
【００７３】
ステップＳ６０８では、ＣＰＵ２０５は、現在のレベル番号とＣｌｉｐ範囲を再算出する。すなわち、この場合、グループの再分類が行われることになるため、そのグループ内のオブジェクトに対してレベル番号が付与し直される。したがって、ステップＳ６０８では、ＣＰＵ２０５は、追加するＣｌｉｐｐｅｒオブジェクトに対してレベル番号が付与されると、グループ内の他のＣｌｉｐｐｅｄオブジェクトに対しては、順次レベル番号が付与し直されることになる。このとき、追加されるＣｌｉｐｐｅｒオブジェクトのＣｌｉｐ範囲は、Ｃｌｉｐｐｅｒオブジェクトがレイヤーの先頭に追加されることを想定したＣｌｉｐ範囲となっている。また、追加されるＣｌｉｐｐｅｒオブジェクトの後にＣｌｉｐｐｅｒオブジェクトが追加されることは想定されていない。そのため、Ｃｌｉｐｐｅｒオブジェクトが追加される（Ｓ６０６からＳ６１０のフローを、追加するＣｌｉｐｐｅｒオブジェクトの数だけ繰り返し実行する）毎に、既に追加したＣｌｉｐｐｅｒオブジェクトのＣｌｉｐ範囲を１増やす。ステップＳ６０８の後、ＣＰＵ２０５は、処理をステップＳ６０９へ進める。なお、図４のモジュールでは、グループ調整処理部４１４が、クリップ命令追加処理の一部として、ステップＳ６０８のレベル番号の再算出と各オブジェクトへの再付与の処理を行う。
【００７４】
ステップＳ６０９では、ＣＰＵ２０５は、ステップＳ６０８でレベル番号が再算出されて付与されたオブジェクトのＤＬコマンドを生成する。ステップＳ６０９の後、ＣＰＵ２０５は、処理をステップＳ６１０へ進める。なお、図４のモジュールでは、グループ調整処理部４１４が、クリップ命令追加処理の一部として、ステップＳ６０９のＤＬコマンド生成処理を行う。
【００７５】
ステップＳ６１０では、ＣＰＵ２０５は、再分類されたグループ内のオブジェクトの各々に対し、レベル番号の付与とＤＬコマンドの生成が完了していないオブジェクトの有無を判定する。なお、図４のモジュールでは、グループ調整処理部４１４が、クリップ命令追加処理の一部として、ステップＳ６１０の判定処理を行う。
【００７６】
そして、ＣＰＵ２０５は、グループ内のオブジェクトの各々に対するレベル番号の再付与とＤＬコマンドの生成が完了するまで、ステップＳ６０７〜Ｓ６１０の処理を繰り返す。これにより、依存関係を持つＣｌｉｐｐｅｒオブジェクトとＣｌｉｐｐｅｄオブジェクトが異なるグループに分かれているような場合、グループごとにＣｌｉｐｐｅｒコマンドの追加とレベル番号の再付与及びＤＬコマンドの生成処理が行われることになる。ＣＰＵ２０５は、ステップＳ６１０でレベル番号を付与していないオブジェクトが無くなったと判定すると、処理をステップＳ６１２へ進める。
【００７７】
なお、ＣＰＵ２０５は、ステップＳ６０７〜Ｓ６１０でレイヤー先頭にＣｌｉｐｐｅｒオブジェクトを追加した場合、ステップＳ６０９とステップＳ６２１で生成したＤＬコマンドを含むＤＬメモリの容量から、ステップＳ６２２でのフォールバック判定を行う。
【００７８】
また、ＣＰＵ２０５は、ステップＳ６０４でオブジェクトがレイヤーの先頭でないと判定してステップＳ６１１へ処理を進めると、このステップＳ６１１において、ステップＳ６１８の処理によってＤＬメモリに保持されたＣｌｉｐｐｅｒオブジェクトがあるか否か判定する。より具体的には、ＣＰＵ２０５は、ステップＳ６１９で求めたオブジェクトの総数が「０」より多いか否か判定し、オブジェクトの総数が「０」より多く、保持しているオブジェクトがあると判定した場合には、処理をステップＳ６１２へ進める。一方、ＣＰＵ２０５は、ＤＬメモリに保持されているＣｌｉｐｐｅｒオブジェクトが無いと判定した場合には、処理をステップＳ６１６へ進める。なお、図４のモジュールでは、グループ調整処理部４１４が、クリップ命令修正の処理の一部として、ステップＳ６１１における判定処理を行う。
【００７９】
ステップＳ６１２では、ＣＰＵ２０５は、ステップＳ６１８の処理において保持されたＣｌｉｐｐｅｒオブジェクトの各々に対し、読み込んだオブジェクトを除いた残りのＣｌｉｐｐｅｄオブジェクトの数（Ｃｌｉｐ範囲）を算出する。より具体的にはステップＳ６０２で読み込んだオブジェクトは、保持されているＣｌｉｐｐｅｒオブジェクト各々のＣｌｉｐｐｅｄオブジェクトとなる。よって、保持されたＣｌｉｐｐｅｒオブジェクト各々に対し、Ｃｌｉｐ範囲から「１」を引く。ステップＳ６１２の後、ＣＰＵ２０５は、処理をステップＳ６１３へ進める。図４のディスプレイリスト生成処理部４１０では、グループ調整処理部４１４がクリップ命令修正処理の一部としてステップＳ６１２の処理を行う。
【００８０】
ステップＳ６１３では、ＣＰＵ２０５は、保持しているＣｌｉｐｐｅｒオブジェクトの各々に対し、ステップＳ６１２で算出したＣｌｉｐ範囲が「１」より小さくなったか否か判定する。言い換えると、ステップＳ６１２では、ＣＰＵ２０５は、Ｃｌｉｐ範囲が「０」となったか否か判定する。すなわち、Ｃｌｉｐ範囲が「１」より小さいＣｌｉｐｐｅｒオブジェクトは、以降のオブジェクトに対するＣｌｉｐ処理を行わない。ＣＰＵ２０５は、Ｃｌｉｐ範囲が「１」より小さくなったと判定した場合には、処理をステップＳ６１４へ進める。一方、Ｃｌｉｐ範囲が「１」より小さくなっていないと判定した場合、ＣＰＵ２０５は、処理をステップＳ６１６へ進める。なお、図４のモジュールでは、オブジェクトグループ判定処理部４１５が、ステップＳ６１３の処理を行う。
【００８１】
ステップＳ６１３において、Ｃｌｉｐ範囲が「１」より小さくなったと判定された場合、Ｃｌｉｐｐｅｒオブジェクトに対応するＣｌｉｐｐｅｄオブジェクトは、全て読み込みを完了していることになる。すなわち、このＣｌｉｐｐｅｒオブジェクトによるＣｌｉｐ処理は、以降のオブジェクトに対して行われない。このため、ステップＳ６１４では、ＣＰＵ２０５は、Ｃｌｉｐ範囲が「１」より小さくなったと判定した際のＣｌｉｐｐｅｒオブジェクトを破棄する。なお、図４のモジュールでは、グループ調整処理部４１４が、クリップ命令修正処理の一部としてステップＳ６１４の処理を行う。
【００８２】
ステップＳ６１５では、ＣＰＵ２０５は、ステップＳ６１４で破棄したＣｌｉｐｐｅｒオブジェクトを除いた残りのＣｌｉｐｐｅｒオブジェクトの総数を算出する。なお、図４のモジュールでは、グループ調整処理部４１４が、クリップ命令修正処理の一部としてステップＳ６１５の処理を行う。
【００８３】
すなわち、ステップＳ６１２〜Ｓ６１５の処理は、Ｃｌｉｐ範囲の中に存在するＣｌｉｐｐｅｄオブジェクトがＣｌｉｐ処理されるように、グループごとにクリップ命令を修正する処理となっている。ステップＳ６１５の後、ＣＰＵ２０５は、ステップＳ６１６へ処理を進める。以上が図４のディスプレイリスト生成処理部４１０で行われるディスプレイリスト生成処理である。
【００８４】
次に、図６のフローチャートのようにして生成されるディスプレイリストに基づいてレイヤー分割レンダリング処理がなされる場合の、オブジェクトとレイヤー内のオブジェクトのレベルについて、図７を用いて説明する。図７には、オブジェクトがグループごとに分類されてレイヤー分割がなされる際のレベル数の閾値（分割レベル数閾値）が１０レベルとなされている場合の例を示している。この場合のディスプレイリストは、１０レベルごとにグループが形成されてレイヤーが分けられたものとなる。図７の例は、前述の図５のように１４個の各オブジェクトが一つのグループとなされるべきであったものが、レイヤー分割レンダリング処理により１０レベルごとにグループが形成されてレイヤーが分けられた場合のディスプレイリストを示している。
【００８５】
図７の例の場合、ディスプレイリストの１レベル目にはＣｌｉｐｐｅｒオブジェクトを示すＤＬコマンド（Ｃｌｉｐｐｅｒコマンド）が生成されている。この１レベル目のＣｌｉｐｐｅｒコマンドは、グループを分ける際の分割レベル数閾値が１０レベルに指定され、したがって、１０レベル目までがＣｌｉｐ範囲となる。図７の例の場合、１レベル目がＣｌｉｐｐｅｒオブジェクト７１１となされているため、残りの２レベル目〜１０レベル目までの９レベル分がＣｌｉｐ範囲となる。したがって、Ｃｌｉｐｐｅｒオブジェクト７１１を用いたＣｌｉｐ処理の対象となるＣｌｉｐｐｅｄオブジェクトは、オブジェクト７１２〜７２０となる。これにより、図７の例の場合、１レベル目のＣｌｉｐｐｅｒオブジェクト７１１と２レベル目〜１０レベル目の各Ｃｌｉｐｐｅｄオブジェクト７１２〜７２０とからは、画像７１０が１レイヤー目の画像としてレンダリングされることになる。
【００８６】
また、図７の例では、ディスプレイリストの１１レベル目にはＣｌｉｐｐｅｒオブジェクトとＤＬコマンド（Ｃｌｉｐｐｅｒコマンド）が追加されている。この１１レベル目のＣｌｉｐｐｅｒコマンドには、グループを分ける際のレベル数として５レベルが指定され、したがって１５レベル目までがＣｌｉｐ範囲となる。ここでは、１１レベル目にＣｌｉｐｐｅｒオブジェクト７２１とＣｌｉｐｐｅｒコマンドが追加されているため、残りの１２レベル目〜１５レベル目までの４レベル分がＣｌｉｐ範囲となる。したがって、この場合のＣｌｉｐｐｅｒオブジェクト７２１を用いたＣｌｉｐ処理の対象となるＣｌｉｐｐｅｄオブジェクトは、オブジェクト７２２〜７２５となる。これにより、図７の例の場合、１１レベル目のＣｌｉｐｐｅｒオブジェクト７２１と１２レベル目〜１５レベル目の各Ｃｌｉｐｐｅｄオブジェクト７２２〜７２５とからは、画像７２０が２レイヤー目の画像として描画されることになる。
【００８７】
そして、この場合のディスプレイリストからは、１レイヤー目の画像７１０と２レイヤー目の画像７２０とが合成されることにより、画像７００が描画されることになる。
【００８８】
＜レイヤー分割レンダリング処理フロー＞
次に、図８に示すフローチャートを参照して、図３のステップＳ３０４，Ｓ３０６におけるレイヤー分割レンダリング処理を説明する。図８の処理フローは、制御部１０１によって実行される。より具体的には、制御部１０１のＣＰＵ２０５が、ＨＤＤ２０８に格納されている分割レンダリング処理部４２０のシステムソフトウェアプログラムをＲＡＭ２０６にロードし、実行することによって実現される。
【００８９】
図８のフローチャートにおいて、ＣＰＵ２０５は、ステップＳ８０１として、レンダリング処理を行う１ページ分のディスプレイリストを受信してメインメモリに格納する。ステップＳ８０１の後、ＣＰＵ２０５は、処理をステップＳ８０２へ進める。
【００９０】
ステップＳ８０２では、ＣＰＵ２０５は、図４のディスプレイリスト生成処理部４１０で説明したように、レイヤー分割レンダリング処理においてグループの分類に応じたレイヤー分割のための分割レベル数閾値を設定する。ステップＳ８０２の後、ＣＰＵ２０５は、処理をステップＳ８０３へ進める。
【００９１】
ステップＳ８０３では、ＣＰＵ２０５は、ディスプレイリストを解釈する。ステップＳ８０３の後、ＣＰＵ２０５は、処理をステップＳ８０４へ進める。
【００９２】
ステップＳ８０４では、ＣＰＵ２０５は、エッジデータをメインメモリにロードする。ステップＳ８０４の後、ＣＰＵ２０５は、処理をステップＳ８０５へ進める。なお、図４のモジュールでは、分割レンダリング処理部４２０のエッジ処理部４２１が、ステップＳ８０４のエッジロード処理を行う。
【００９３】
ステップＳ８０５では、ＣＰＵ２０５は、ディスプレイリスト内に含まれるエッジデータのうちの、処理対象のレイヤーに属するエッジデータを判定する。そして、ＣＰＵ２０５は、ロードしたエッジデータが処理対象のレイヤーに属していないと判定した場合、そのエッジデータを読み飛ばす。ステップＳ８０５の後、ＣＰＵ２０５は、処理をステップＳ８０６へ進める。なお、図４のモジュールでは、エッジ処理部４２１が、ステップＳ８０５の判定処理を行う。
【００９４】
ステップＳ８０６では、ＣＰＵ２０５は、エッジ処理を行う。すなわち、ＣＰＵ２０５は、ＤＬメモリ内のディスプレイリストに含まれるエッジデータのうち、図４のエッジ処理部４２１でのエッジソート処理においてキャッシュミスヒットが発生しない分だけのエッジデータに対して、スキャンレンダリング処理を行う。ステップＳ８０６の後、ＣＰＵ２０５は、処理をステップＳ８０７へ進める。
【００９５】
ステップＳ８０７では、ＣＰＵ２０５は、図４の分割レンダリング処理部４２０におけるレベル処理部４２２、フィル処理部４２３、コンポジット処理部４２４の各処理をパイプライン処理で行い、処理対象のレイヤーのビットマップページ画像を生成する。ステップＳ８０７の後、ＣＰＵ２０５は、処理をステップＳ８０８へ進める。
【００９６】
ステップＳ８０８では、ＣＰＵ２０５は、ステップＳ８０５〜Ｓ８１０で生成された、処理対象のレイヤーのビットマップページ画像を、既にレンダリングされている背景レイヤー（下位レイヤー）のビットマップページ画像に重ね合わせる処理を行う。ステップＳ８０８の後、ＣＰＵ２０５は、処理をステップＳ８０９へ進める。
【００９７】
ステップＳ８０９では、ＣＰＵ２０５は、処理対象のディスプレイリストに含まれる全てのレイヤーのレンダリング処理が完了したか否かを判定する。そして、ＣＰＵ２０５は、全てのレイヤーのレンダリング処理が完了したと判定した場合には図８のフローチャートの処理を終了させる。一方、ＣＰＵ２０５は、全てのレイヤーのレンダリング処理が完了していないと判定した場合には、処理対象のレイヤーを１つ上位のレイヤーとして、処理をステップＳ８０３へ戻す。以上が、レイヤー分割レンダリング処理についての説明である。
【００９８】
＜第１の実施形態の効果＞
本実施形態の画像処理装置によれば、前述の図７で説明したように、２レイヤー目の１１レベル目にＣｌｉｐｐｅｒオブジェクト７２１が追加され、１２レベル目以降のオブジェクト７２２〜７２５に対するＣｌｉｐ処理が有効になる。このため、１レイヤー目と２レイヤー目の重ね合わせ処理において、２レイヤー目に属するＣｌｉｐｐｅｄオブジェクト７２２〜７２５にＣｌｉｐ処理を行うことが可能になる。
【００９９】
このように、本実施形態の画像処理装置においては、レイヤー分割レンダリング処理が行われることで、異なるグループに分類されて各レイヤーに跨ったＣｌｉｐｐｅｄオブジェクトに対してＣｌｉｐ処理を有効にするディスプレイリストが生成される。すなわち、Ｃｌｉｐ処理のように複数のオブジェクトが依存関係を持つ場合、例えばフォールバック処理の前後でオブジェクトが属するグループが分かれてしまう場合であっても、グループ内で処理を完結させることができ、本来あるべき描画結果を得ることができる。
【０１００】
＜第２の実施形態＞
次に、第２の実施形態の画像処理装置について説明する。第２の実施形態の画像処理装置は、前述の図３の処理フローのステップＳ３０２におけるディスプレイリスト生成処理を除き、第１の実施形態との差異はない。
【０１０１】
ここでは、レイヤー分割レンダリング処理において、ラスター順に論理演算による描画が行われる処理の一例であるラスターオペレーション処理（Ｒａｓｔｅｒ  ＯＰｅｒａｔｉｏｎ：ＲＯＰ処理）されるオブジェクト（ＲＯＰオブジェクト）を扱う。すなわち、ＲＯＰ処理される各オブジェクトは、ラスター順に論理演算されるため互いに依存関係を持つオブジェクトであるといえる。
【０１０２】
第２の実施形態の場合、図４のオブジェクトグループ判定処理部４１５は、ラスターオペレーション処理（ＲＯＰ処理）に必要なオブジェクトが、異なるグループに分類されているか否か判定可能となされている。すなわち、オブジェクトグループ判定処理部４１５は、オブジェクト種類判定処理部４１３で判定したオブジェクトの種類がＲＯＰオブジェクトである場合、ＲＯＰオブジェクトが異なるグループに分類されているか否かを判定する。そして、オブジェクトグループ判定処理部４１５は、ＲＯＰオブジェクトが異なるグループに分類されていると判定した場合には、それをグループ調整処理部４１４へ知らせる。
【０１０３】
ＲＯＰオブジェクトが異なるグループに分類されている場合、グループ調整処理部４１４は、ＲＯＰオブジェクトが一つのグループ内に分類されるように、論理演算の結果に影響を与えないパディング用のオブジェクトを追加するパディング追加処理を行う。本実施形態の場合、パディング用のオブジェクトは、レンダリング処理の際の論理演算の結果に影響を与えない、つまり描画に影響を与えないオブジェクト（以下、パディングレベルオブジェクトとする。）である。この場合のパディング用のオブジェクトは、レイヤー分割の位置に対してＲＯＰオブジェクトの位置を調整するための情報となされている。
【０１０４】
また、グループ調整処理部４１４は、オブジェクトグループ判定処理部４１５が、クリップ処理されるオブジェクトが異なるグループに分類されていると判定した場合、パディングレベルオブジェクトの追加処理を行う。この場合のグループ調整処理部４１４は、Ｃｌｉｐオブジェクトが一つのグループ内に分類されるように、Ｃｌｉｐオブジェクトが属するグループにパディングレベルオブジェクトを追加する。
【０１０５】
以下、第２の実施形態において、制御部１０１が実行するステップＳ３０２でのディスプレイリスト生成処理を、図９を用いて説明する。図９に示される処理フローは、制御部１０１によって実行される。より具体的には、制御部１０１のＣＰＵ２０５が、ＨＤＤ２０８に格納されているディスプレイリスト生成処理のシステムソフトウェアプログラムをＲＡＭ２０６にロードし、実行することによって実現される。
【０１０６】
図９のフローチャートにおいて、ステップＳ９０１，Ｓ９０２，Ｓ９０３の処理は、図６のステップＳ６０１，Ｓ６０２，Ｓ６０３の処理と同じであるためその説明は省略する。図９のフローチャートの場合、ステップＳ９０３の後、ＣＰＵ２０５は、処理をステップＳ９０４へ進める。
【０１０７】
ステップＳ９０４では、ＣＰＵ２０５は、読み込んだオブジェクトがＲＯＰ処理レベルとなる属性情報を有しているか否か判定する。ＣＰＵ２０５は、ＲＯＰ処理レベルの属性情報を有していないと判定した場合には、処理をステップＳ９１０へ進める。一方、ＲＯＰ処理レベルの属性情報を有していると判定した場合、ＣＰＵ２０５は、処理をステップＳ９０５へ進める。なお、図４のモジュールでは、オブジェクト種類判定処理部４１３がステップＳ９０４の判定処理を行う。ステップＳ９１０〜Ｓ９１３の処理は、図６のステップＳ６２１〜Ｓ６２４の処理と同じであるためその説明は省略する。
【０１０８】
ステップＳ９０５では、ＣＰＵ２０５は、読み込んだオブジェクトに対してＲＯＰ処理による依存関係を持ったオブジェクトが、次のレイヤーに位置しているか否か判定する。すなわち、ＣＰＵ２０５は、レイヤー分割により、本来ならば同じレイヤーとしてＲＯＰ処理されるオブジェクトが次のレイヤーに位置することになったか否かを判定する。そして、ＣＰＵ２０５は、次のレイヤーに位置していないと判定した場合には、処理をステップＳ９１０へ進める。一方、ＣＰＵ２０５は、次のレイヤーに位置していると判定した場合には、処理をステップＳ９０６へ進める。なお、図４のモジュールでは、オブジェクトグループ判定処理部４１５がステップＳ９０５の判定処理を行う。
【０１０９】
ステップＳ９０６では、ＣＰＵ２０５は、現在のレベル番号が設定されているオブジェクトのレベル番号を、次のレイヤーの先頭のレベル番号に修正する。ステップＳ９０６の後、ＣＰＵ２０５は、処理をステップＳ９０７へ進める。なお、図４のモジュールでは、グループ調整処理部４１４がステップＳ９０６のレベル番号修正処理を行う。
【０１１０】
ステップＳ９０７では、ＣＰＵ２０５は、オブジェクトのレベル番号が現在のレベル番号か否か判定する。ＣＰＵ２０５は、現在のレベル番号であると判定した場合には、処理をステップＳ９１０へ進める。一方、ＣＰＵ２０５は、現在のレベル番号でないと判定した場合には、処理をステップＳ９０８へ進める。なお、図４のモジュールでは、グループ調整処理部４１４が、パディング追加処理の一部としてステップＳ９０７の処理を行う。
【０１１１】
ステップＳ９０８では、ＣＰＵ２０５は、パディングレベルオブジェクトに、現在のレベル番号を付与したＤＬコマンドを生成する。ステップＳ９０８の後、ＣＰＵ２０５は、処理をステップＳ９０９へ進める。なお、図４のモジュールでは、グループ調整処理部４１４が、パディング追加処理の一部としてステップＳ９０８の処理を行う。
【０１１２】
ステップＳ９０９では、ＣＰＵ２０５は、現在のレベル番号をインクリメントした後、処理をステップＳ９０７へ戻す。なお、図４のモジュールでは、グループ調整処理部４１４が、パディング追加処理の一部としてステップＳ９０９の処理を行う。
【０１１３】
言い換えると、ステップＳ９０７〜Ｓ９０９では、ＣＰＵ２０５は、オブジェクトのレベル番号の修正により、ＲＯＰ処理で描画処理するべきオブジェクトが存在しなくなったレベルに、パディングレベルオブジェクトを追加する処理を実行する。
【０１１４】
＜第２の実施形態の効果＞
第２の実施形態のディスプレイリスト生成処理は、異なるグループ（レイヤー）を跨いでしまう判定された、互いに依存関係にあるＲＯＰ処理オブジェクトが一つのグループ内に分類される。このため、本実施形態によれば、グループ内（レイヤー内）で処理が完結した、本来あるべき描画結果を出力しつつ、レイヤー分割レンダリング処理の実施が可能になる。
【０１１５】
また、第２の実施形態のようなパディングレベルオブジェクトの追加処理は、第１の実施形態のＣｌｉｐ処理に対しても適用可能である。すなわちこの場合、パディングレベルオブジェクトを追加することにより、Ｃｌｉｐｐｅｒオブジェクトのグループ（レイヤー）内での位置を調整して、ＣｌｉｐｐｅｄオブジェクトがＣｌｉｐ処理されるようにする。またこの場合、例えばＣＰＵ２０５は、レイヤー内におけるオブジェクトの位置から、追加が必要なパディングレベルオブジェクトの数を閾値（以下、パディング追加閾値とする。）として算出する。そして、追加が必要なパディングレベルオブジェクト数がそのパディング追加閾値以上となり、レイヤー内レベルの過半数がパディング情報になる場合、前述の第１の実施形態の処理へ切り替えるようにする。これにより、ディスプレイリスト生成処理は、追加が必要なパディングレベルオブジェクトの数がパディング追加閾値以下の場合には、オブジェクト情報を保持する必要が無くなる。
【０１１６】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１１７】
以上、上述した各実施形態によれば、複数に分類された各グループ内（レイヤー内）で完結した処理を行うことができる。
【０１１８】
以上、本発明の好ましい実施形態について詳述したが、本実施形態は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１１９】
４１０  ディスプレイリスト生成処理部、４１１  オブジェクト読込処理部、４１２  オブジェクト分類処理部、４１３  オブジェクト種類判定処理部、４１４  グループ調整処理部、４１５  オブジェクトグループ判定処理部、４２０  分割レンダリング処理部
【図１】
2016206934.tif 000003
【図２】
2016206934.tif 000004
【図３】
2016206934.tif 000005
【図４】
2016206934.tif 000006
【図５】
2016206934.tif 000007
【図６】
2016206934.tif 000008
【図７】
2016206934.tif 000009
【図８】
2016206934.tif 000010
【図９】
2016206934.tif 000011