(57)【特許請求の範囲】
【請求項１】
各ページ内に複数のオブジェクトを並列処理で描画する描画処理部と、
各ページ内における各オブジェクトの座標情報に基づいて、互いに重なり合う複数のオブジェクトを判定してそれらの重なり部分の座標情報を得る重なり判定部と、
重なり部分の座標情報に基づいて、前記描画処理部による並列処理における各オブジェクトの描画のタイミングを制御するタイミング制御部と、
互いに重なり合う複数のオブジェクトを並列処理で描画させるにあたり、前記タイミング制御部によって生成されたタイミング情報に基づいて、当該複数のオブジェクトの重なり部分において下層オブジェクトを描画させてから上層オブジェクトを重ね合わせて描画させる描画部と、
を有する、
ことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記重なり判定部は、複数のオブジェクトについての座標情報を比較することにより、互いに重なり合う複数のオブジェクトを判定してそれらの重なり部分における描画の終了座標を特定し、
前記タイミング制御部は、前記終了座標に基づいて上層オブジェクトの描画のタイミングを制御する、
ことを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置において、
前記タイミング制御部は、下層オブジェクトの描画が前記終了座標に達するまで前記重なり部分における上層オブジェクトの描画を停止させる、
ことを特徴とする画像処理装置。
【請求項４】
請求項２または３に記載の画像処理装置において、
前記重なり判定部は、複数のオブジェクトについての座標情報を比較することにより、前記重なり部分における描画の終了座標に加えて描画の開始座標を特定し、
前記タイミング制御部は、前記終了座標と開始座標に基づいて上層オブジェクトの描画のタイミングを制御する、
ことを特徴とする画像処理装置。
【請求項５】
各ページ内に複数のオブジェクトを並列処理で描画する描画処理部と、
各ページ内における各オブジェクトの座標情報に基づいて、互いに重なり合う複数のオブジェクトを判定してそれらの重なり部分の座標情報を得る重なり判定部と、
重なり部分の座標情報に基づいて、前記描画処理部による並列処理における各オブジェクトの描画のタイミングを制御するタイミング制御部と、
前記タイミング制御部によって生成されたタイミング情報に基づいて当該重なり部分において下層オブジェクトを描画させてから上層オブジェクトを重ね合わせて描画させる描画部と、
を有し、
前記重なり判定部は、複数のオブジェクトについての座標情報を比較することにより、互いに重なり合う複数のオブジェクトを判定してそれらの重なり部分における描画の終了座標と描画の開始座標を特定し、
前記タイミング制御部は、前記終了座標と開始座標に基づいて上層オブジェクトの描画のタイミングを制御するにあたり、上層オブジェクトの描画が前記開始座標に達する以前において下層オブジェクトを描画させつつ上層オブジェクトを描画させ、上層オブジェクトの描画が前記開始座標に達してから上層オブジェクトの描画を停止させつつ下層オブジェクトの描画を継続させ、下層オブジェクトの描画が前記終了座標に達してから上層オブジェクトの描画を前記開始座標から再開させる、
ことを特徴とする画像処理装置。
【請求項６】
各ページ内における複数のオブジェクトの並列処理による描画を制御するコンピュータに、
各ページ内における各オブジェクトの座標情報に基づいて、互いに重なり合う複数のオブジェクトを判定してそれらの重なり部分の座標情報を得る重なり判定機能と、
互いに重なり合う複数のオブジェクトを並列処理で描画させるにあたり、当該複数のオブジェクトの重なり部分の座標情報に基づいて、前記並列処理における各オブジェクトの描画のタイミングを制御することにより、当該重なり部分において下層オブジェクトを描画させてから上層オブジェクトを重ね合わせて描画させる描画機能と、
を実現させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置およびプログラムに関する。
【背景技術】
【０００２】
ＰＤＬ（Page Description Language：ページ記述言語）などで記述された例えば印刷データには、１枚のページに対応したページデータごとに、イメージや図形や文字などの各種のオブジェクトに対応した複数のオブジェクトデータが含まれている。さらに、印刷データには、それらオブジェクトのページ内における配置情報などを示したフレーム構造データが含まれている。そして、その印刷データが例えば印刷機能を備えたプリンタなどの画像処理装置に送られ、画像処理装置内において、複数のオブジェクトデータがフレーム構造データに基づいてページ内の適宜な位置に配置され、複数のオブジェクトを含んだ印刷用の画像データが形成される。
【０００３】
各ページ内に含まれる複数のオブジェクトの中には互いに重なり合うものもある。したがって、複数のオブジェクトを含んだ画像データを形成するにあたっては、互いに重なり合う複数のオブジェクトの重ね合わせの順序が考慮される。
【０００４】
特許文献１には、印刷データに含まれる複数のオブジェクトを各オブジェクトの特性に応じた複数の展開部においてビットマップデータに展開し、各展開部で展開されたビットマップデータをＲＡＭに格納し、そして、ページの構造を示すフレーム構造データに基づいて、ＲＡＭに格納された複数のオブジェクトに関する複数のビットマップデータを、配置や重なり判定を行いつつ合成することにより、印刷用の画像データを形成する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２２１６０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、互いに重なり合う複数のオブジェクトの並列処理による描画においてタイミング制御された並列処理を実現することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に係る発明は、各ページ内に複数のオブジェクトを並列処理で描画する描画処理部と、各ページ内における各オブジェクトの座標情報に基づいて、互いに重なり合う複数のオブジェクトを判定してそれらの重なり部分の座標情報を得る重なり判定部と、重なり部分の座標情報に基づいて、前記描画処理部による並列処理における各オブジェクトの描画のタイミングを制御するタイミング制御部と、前記タイミング制御部によって生成されたタイミング情報に基づいて当該重なり部分において下層オブジェクトを描画させてから上層オブジェクトを重ね合わせて描画させる描画部と、を有することを特徴とする画像処理装置である。
【０００８】
請求項２に係る発明は、請求項１の画像処理装置において、前記重なり判定部は、複数のオブジェクトについての座標情報を比較することにより、互いに重なり合う複数のオブジェクトを判定してそれらの重なり部分における描画の終了座標を特定し、前記タイミング制御部は、前記終了座標に基づいて上層オブジェクトの描画のタイミングを制御する、ことを特徴とする画像処理装置である。
【０００９】
請求項３に係る発明は、請求項２の画像処理装置において、前記タイミング制御部は、下層オブジェクトの描画が前記終了座標に達するまで前記重なり部分における上層オブジェクトの描画を停止させる、ことを特徴とする画像処理装置である。
【００１０】
請求項４に係る発明は、請求項２または３の画像処理装置において、前記重なり判定部は、複数のオブジェクトについての座標情報を比較することにより、前記重なり部分における描画の終了座標に加えて描画の開始座標を特定し、前記タイミング制御部は、前記終了座標と開始座標に基づいて上層オブジェクトの描画のタイミングを制御する、ことを特徴とする画像処理装置である。
【００１１】
請求項５に係る発明は、請求項４の画像処理装置において、前記タイミング制御部は、上層オブジェクトの描画が前記開始座標に達する以前において下層オブジェクトを描画させつつ上層オブジェクトを描画させ、上層オブジェクトの描画が前記開始座標に達してから上層オブジェクトの描画を停止させつつ下層オブジェクトの描画を継続させ、下層オブジェクトの描画が前記終了座標に達してから上層オブジェクトの描画を前記開始座標から再開させる、ことを特徴とする画像処理装置である。
【００１２】
請求項６に係る発明は、各ページ内における複数のオブジェクトの並列処理による描画を制御するコンピュータに、各ページ内における各オブジェクトの座標情報に基づいて、互いに重なり合う複数のオブジェクトを判定してそれらの重なり部分の座標情報を得る重なり判定機能と、重なり部分の座標情報に基づいて、前記並列処理における各オブジェクトの描画のタイミングを制御することにより、当該重なり部分において下層オブジェクトを描画させてから上層オブジェクトを重ね合わせて描画させる描画機能と、を実現させることを特徴とするプログラムである。
【発明の効果】
【００１３】
請求項１に係る発明によれば、互いに重なり合う複数のオブジェクトの並列処理による描画においてタイミング制御された並列処理が実現される。
【００１４】
請求項２に係る発明によれば、重なり部分の終了座標に基づいたタイミング制御が実現される。
【００１５】
請求項３に係る発明によれば、重なり部分において下層オブジェクトと上層オブジェクトが適切な順序で重ね合わせられる。
【００１６】
請求項４に係る発明によれば、重なり部分の開始座標と終了座標に基づいたタイミング制御が実現される。
【００１７】
請求項５に係る発明によれば、開始座標に達する以前において上層オブジェクトの描画を停止させる場合に比べて、効率的な並列処理が実現される。
【００１８】
請求項６に係る発明によれば、互いに重なり合う複数のオブジェクトの並列処理による描画においてタイミング制御された並列処理が実現される。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施において好適な画像処理装置を示す図である。
【図２】本実施形態における重ね合わせの具体例を示す図である。
【図３】中間言語データとそれに対応した画像の具体例を示す図である。
【図４】コマンド解釈部における処理を示すフローチャートである。
【図５】描画情報入出力部の構成と動作を説明するための図である。
【図６】並列描画制御部による処理を示すフローチャートである。
【図７】アドレス更新部の構成と動作を説明するための図である。
【図８】重なり判定部の構成と動作を説明するための図である。
【図９】重なり終了アドレスの具体例を示す図である。
【図１０】タイミング制御部による処理を示すフローチャートである。
【図１１】アドレス生成部Ａ，Ｂによる処理を示すフローチャートである。
【図１２】変形例における重なり判定部の構成と動作を説明するための図である。
【図１３】変形例のタイミング制御部における処理を示すフローチャートである。
【図１４】並列処理許可部における処理を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下に本発明の好適な実施形態を説明する。
【００２１】
図１は、本発明の実施において好適な画像処理装置を示す図である。図１の画像処理装置は、ページごとに複数のオブジェクトを含んだ画像に係るデータを処理して、そのページの画像を形成する。複数のオブジェクトは、並列処理により各ページ内の指定された位置に描画される。それら複数のオブジェクトの中には互いに重なり合うオブジェクトもあるため、並列処理による描画においては、オブジェクト同士の重ね合わせを考慮した制御が行われる。
【００２２】
図２は、本実施形態における重ね合わせの具体例を示す図である。図２には、互いに重なり合うオブジェクト１とオブジェクト２の画像データが、ページに対応した画像データを格納するメモリに書き込まれる様子が示されている。各オブジェクトの画像データは、Ｘ方向に沿ったラインごとに処理され、Ｙ方向に並ぶ複数のラインがライン番号の小さいものから順に（Ｙ方向の原点に近い方から順に）メモリに書き込まれていく。
【００２３】
具体例１においては、オブジェクト１とオブジェクト２が互いに重なる部分において、下層のオブジェクト１の書き込み（描画）が終了するまで、上層のオブジェクト２の書き込み（描画）を待たせて、重なる部分におけるオブジェクト１の書き込みが終了してからオブジェクト２の書き込みが開始される。
【００２４】
一方、具体例２においては、オブジェクト１と共にオブジェクト２の書き込み（描画）が開始され、上層のオブジェクト２の書き込みが重なる部分に達した時点で上層のオブジェクト２の書き込みを停止させ、重なる部分におけるオブジェクト１の書き込みが終了してからオブジェクト２の書き込みが再開される。
【００２５】
具体例１と具体例２では、オブジェクト１とオブジェクト２が互いに重なる部分において、下層のオブジェクト１の書き込みが終了してから、上層のオブジェクト２が上書きされるため、その重なる部分の全域に亘って２つのオブジェクトが適切な順序で重ね合わされて、ページの画像データが形成される。
【００２６】
図１に戻り、本実施形態において処理される画像に係るデータは、例えばコンピュータなどの外部の装置から提供されてもよいし、図示しない画像読み取り機能（スキャン機能）を備えてその機能を介して紙などの媒体から得るようにしてもよい。また、例えば図示しない印刷機能（プリント機能）を備えて処理後の画像を紙などに印刷してもよいし、処理後の画像に係るデータを外部の装置に提供するようにしてもよい。
【００２７】
図１の画像処理装置は、画像処理プロセッサ１００と、その画像処理プロセッサ１００にデータバス２００を介して接続される言語データ処理部１０とメモリコントローラ３０と、さらにメモリコントローラ３０によって制御されるメモリ２０を備えている。なお、図１に示す構成の一部を画像処理装置の外部に設けるようにしてもよい。
【００２８】
言語データ処理部１０は、本装置において処理される画像に係るデータを後段の処理に適した形式に変換する。言語データ処理部１０は、例えばＣＰＵ（中央処理装置）で構成され、ＣＰＵとこれを動作させるプログラムとの協働により、コンピュータなどから提供される例えばＰＤＬ（Page Description Language：ページ記述言語）データを、後段の処理に適した中間言語データに変換する。もちろん、画像読み取り機能を介して読み取られた画像に関する中間言語データが形成されてもよい。
【００２９】
図３は、中間言語データとそれに対応した画像の具体例を示す図である。中間言語データは、例えば複数のページに関するデータを含んでおり、さらに、ページごとに複数のオブジェクトに関するデータを含んでいる。図３（Ａ）には、オブジェクト１（ＩＤ＝１）とオブジェクト２（ＩＤ＝２）を含んだページに関する中間言語データの具体例が図示されている。
【００３０】
なお、複数のオブジェクトは、下層に配置されるものほど小さなオブジェクトＩＤとされる。例えば、図３に示す例において、オブジェクト１とオブジェクト２が互いに重なる場合には、オブジェクト１がオブジェクト２の下層に配置される。また、中間言語データ内には、ページごとに、そのページに含まれる複数のオブジェクトがオブジェクトＩＤの小さいものから順に記述される。例えば、図３に示すように、オブジェクト１の次にオブジェクト２が記述される。
【００３１】
図３（Ａ）に示す具体例において、各オブジェクトデータは、ページ内におけるそのオブジェクトの配置情報（Page offset）と、そのオブジェクトの大きさを示すサイズ情報と、そのオブジェクトの描画内容（例えばイメージや図形や文字など）を示す描画命令を含んでいる。そして、これらのデータに基づいて、ページ内に各オブジェクトが描画されて、図３（Ｂ）に例示する画像が形成される。
【００３２】
図１に戻り、言語データ処理部１０において形成された中間言語データは、データバス２００を介して、画像処理プロセッサ１００に送られる。画像処理プロセッサ１００は、例えばＤＲＰ（Dynamic Reconfigurable Processor：動的再構成可能プロセッサ）などにより実現され、言語データ処理部１０から得られる中間言語データに記述された複数のオブジェクトについての描画処理を実行する。なお、画像処理プロセッサ１００は、例えばＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）などにより実現されてもよいし、ＡＳＩＣ（Application Specific Integrated Circuit）で実現されてもよい。もちろん、他のハードウェアにより画像処理プロセッサ１００が実現されてもよい。次に、画像処理プロセッサ１００内の各部について詳述する。
【００３３】
言語データ処理部１０において形成された中間言語データは、画像処理プロセッサ１００内の入力バッファを経由してコマンド解釈部４０に送られる。コマンド解釈部４０は、中間言語データに含まれる各オブジェクトデータを解析して、オブジェクトごとにアドレス情報や描画情報などを算出し、これらの情報を後段の描画情報入出力部５０へ出力する。
【００３４】
図４は、コマンド解釈部４０における処理を示すフローチャートである。まず、中間言語データを一時的に格納する入力バッファから１オブジェクト分の中間言語データが読み取られて、そのオブジェクトの配置情報とサイズ情報が抽出され（Ｓ４０１）、その配置情報とサイズ情報に基づいて、そのオブジェクトをメモリ（ページに対応した画像が形成されるメモリ）に格納する際のアドレス情報が算出される（Ｓ４０２）。つまり、各オブジェクトのアドレス情報として、ページ内におけるＸ座標始点ＸＳとＸ座標終点ＸＥとＹ座標始点ＹＳとＹ座標終点ＹＥ（図３参照）が算出される。
【００３５】
そして、算出されたアドレス情報が描画情報入出力部５０（図１）のアドレス情報ポートに出力され（Ｓ４０３）、さらに、中間言語データから抽出される各オブジェクトの描画命令が描画情報入出力部５０の描画命令ポートに出力される（Ｓ４０４）。上述したＳ４０１からＳ４０４までの処理が、中間言語データに含まれる全てのオブジェクトに関する描画命令が出力されるまで繰り返される（Ｓ４０５）。
【００３６】
図５は、描画情報入出力部５０の構成と動作を説明するための図である。図１の描画情報入出力部５０は、コマンド解釈部４０から得られる描画命令とアドレス情報のそれぞれに対応したＦＩＦＯ（First-in First-out）メモリを備えている。つまり、図５に示す描画命令ＦＩＦＯとアドレスＦＩＦＯを備えている。
【００３７】
コマンド解釈部４０から描画情報入出力部５０の描画命令ポートに出力された描画命令は、描画命令ＦＩＦＯに入力される。描画命令は、オブジェクトＩＤの小さい順にオブジェクトごとに次々に入力される。つまり、図５に示すように、例えばオブジェクト１（ＩＤ＝１），オブジェクト２（ＩＤ＝２），・・・の順に入力される。
【００３８】
こうして入力された描画命令は、並列描画制御部６０（図１）からの要求に応じて、描画命令ＦＩＦＯから並列描画制御部６０へ出力される。並列描画制御部６０から得られる描画命令要求フラグが１の場合に、１オブジェクト分の描画命令が描画命令ＦＩＦＯから並列描画制御部６０へ出力される。描画命令は、オブジェクトＩＤの小さい順にオブジェクトごとに次々に出力される。つまり、図５に示す例においては、オブジェクト１，オブジェクト２，・・・の順に出力される。
【００３９】
なお、描画命令ＦＩＦＯにおける描画命令の入力動作と出力動作は、例えば互いに非同期で実行される。
【００４０】
一方、コマンド解釈部４０から描画情報入出力部５０のアドレス情報ポートに出力されたアドレス情報は、アドレス情報ＦＩＦＯに入力される。アドレス情報（ＸＳ，ＸＥ，ＹＳ，ＹＥ）も、オブジェクトＩＤの小さい順にオブジェクトごとに次々に入力される。つまり、図５に示すように、例えばオブジェクト１（ＩＤ＝１），オブジェクト２（ＩＤ＝２），・・・の順に入力される。
【００４１】
こうして入力されたアドレス情報は、並列描画制御部６０からの要求に応じて、アドレス情報ＦＩＦＯから並列描画制御部６０へ出力される。並列描画制御部６０から得られるアドレス情報要求フラグが１の場合に、１オブジェクト分のアドレス情報がアドレス情報ＦＩＦＯから並列描画制御部６０へ出力される。アドレス情報は、オブジェクトＩＤの小さい順にオブジェクトごとに次々に出力される。つまり、図５に示す例においては、オブジェクト１，オブジェクト２，・・・の順に出力される。
【００４２】
なお、アドレス情報ＦＩＦＯにおけるアドレス情報の入力動作と出力動作も、例えば互いに非同期で実行される。
【００４３】
図１に戻り、並列描画制御部６０は、描画情報入出力部５０からオブジェクトごとのアドレス情報と描画命令を取り込む。そして、並列描画制御部６０は、アドレス情報をアドレス更新部７０に送り、描画命令を描画出力ユニットＡまたは描画出力ユニットＢに送る。
【００４４】
図６は、並列描画制御部６０による処理を示すフローチャートである。まず、アドレス更新部７０が初期化される（Ｓ６０１）。つまり、アドレス更新部７０が備えるレジスタ（後述）内のデータが例えば全て０とされる。
【００４５】
次に、並列描画制御部６０は、アドレス情報要求フラグを１にして、描画情報入出力部５０から、オブジェクト１つ分のアドレス情報を取り込み、取り込み終了後にアドレス情報要求フラグを０にする（Ｓ６０２）。そして、並列描画制御部６０は、ＵＮＩＴＡ更新フラグを１にし、Ｓ６０２で取り込んだアドレス情報をアドレス更新部７０が備えるＵＮＩＴＡのレジスタにセットし、その後、ＵＮＩＴＡ更新フラグを０にする（Ｓ６０３）。
【００４６】
さらに、並列描画制御部６０は、アドレス情報要求フラグを１にし、描画情報入出力部５０から、オブジェクト１つ分のアドレス情報を取り込み、取り込み終了後にアドレス情報要求フラグを０にする（Ｓ６０４）。そして、並列描画制御部６０は、ＵＮＩＴＢ更新フラグを１にし、Ｓ６０４で取り込んだアドレス情報をアドレス更新部７０が備えるＵＮＩＴＢのレジスタにセットし、その後、ＵＮＩＴＢ更新フラグを０にする（Ｓ６０５）。
【００４７】
次に、並列描画制御部６０は、描画命令要求フラグを１にして、描画情報入出力部５０から、オブジェクト１つ分の描画命令を取り込み（Ｓ６０６）、その取り込んだ描画命令を描画出力ユニットＡが備える描画処理実行部Ａに出力し、その出力後に描画命令要求フラグを０にする（Ｓ６０７）。
【００４８】
さらに、並列描画制御部６０は、描画命令要求フラグを１にして、描画情報入出力部５０から、オブジェクト１つ分の描画命令を取り込み（Ｓ６０８）、その取り込んだ描画命令を描画出力ユニットＢが備える描画処理実行部Ｂに出力し、その出力後に描画命令要求フラグを０にする（Ｓ６０９）。
【００４９】
そして、並列描画制御部６０は、描画出力ユニットＡと描画出力ユニットＢの両ユニットから得られるＷｒｉｔｅ完了フラグ（書き込み完了フラグ）を確認し続け、いずれかのＷｒｉｔｅ完了フラグが１となると（Ｓ６１０）、アドレス情報要求フラグを１にして、描画情報入出力部５０からオブジェクト１つ分のアドレス情報を取り込み（Ｓ６１１）、その取り込んだアドレス情報を、アドレス更新部７０が備えるＵＮＩＴＡまたはＵＮＩＴＢのレジスタのうちの、Ｗｒｉｔｅ完了フラグを１としたユニットのレジスタにセット（更新）し、その後、アドレス情報要求フラグを０にする（Ｓ６１２）。
【００５０】
さらに、並列描画制御部６０は、描画命令要求フラグを１にして、描画情報入出力部５０から、オブジェクト１つ分の描画命令を取り込み（Ｓ６１３）、その取り込んだ描画命令を、Ｗｒｉｔｅ完了フラグを１とした上記ユニットが備える描画処理実行部に出力し、その出力後に描画命令要求フラグを０にする（Ｓ６１４）。
【００５１】
そして、オブジェクトごとに実行されるＳ６１０からＳ６１４までの処理が、すべてのオブジェクトについて終了するまで繰り返し実行される（Ｓ６１５）。
【００５２】
図７は、アドレス更新部７０の構成と動作を説明するための図である。ＵＮＩＴＡ更新フラグとＵＮＩＴＢ更新フラグは、並列描画制御部６０（図１）から出力される。アドレス更新部７０は、２つの描画出力ユニットに対応したアドレスレジスタ、つまり、ユニットＡのアドレスレジスタとユニットＢのアドレスレジスタを備えており、さらに、セレクタとオブジェクトカウンタと下側ユニット判断部を備えている。
【００５３】
オブジェクトカウンタは、初期値を０として、ＵＮＩＴＡ更新フラグとＵＮＩＴＢ更新フラグのいずれかが１となった場合に、１つだけカウントアップするカウンタである。ＵＮＩＴＡ更新フラグとＵＮＩＴＢ更新フラグは、オブジェクト１から順にオブジェクトごとの処理の度にいずれかが１となるため、オブジェクトカウンタにおけるカウント値がオブジェクトＩＤと等しくなり、そのオブジェクトＩＤがセレクタへ出力される。
【００５４】
セレクタは、ＵＮＩＴＡ更新フラグが１の場合に、並列描画制御部６０から得られるアドレス情報とその時のオブジェクトＩＤと更新フラグをユニットＡのアドレスレジスタに出力する。一方、ＵＮＩＴＢ更新フラグが１の場合に、セレクタは、並列描画制御部６０から得られるアドレス情報とその時のオブジェクトＩＤと更新フラグをユニットＢのアドレスレジスタに出力する。
【００５５】
こうして、各アドレスレジスタには、図７に示すように、各オブジェクトのアドレス情報（Ｘ座標始点ＸＳ，Ｘ座標終点ＸＥ，Ｙ座標始点ＹＳ，Ｙ座標終点ＹＥ：図３参照）とそのオブジェクトのオブジェクトＩＤがセットされる。
【００５６】
下側ユニット判断部は、２つのアドレスレジスタにセットされているオブジェクトＩＤを比較し、オブジェクトＩＤが小さい方を下側（下層）のオブジェクトと判断する。そして、ユニットＡが下層の場合にはＵｎｄｅｒフラグを０とし、ユニットＢが下層の場合にはＵｎｄｅｒフラグを１とする。
【００５７】
ユニットＡのアドレスレジスタにセットされたアドレス情報（ＵＮＩＴＡアドレス情報）と、ユニットＢのアドレスレジスタにセットされたアドレス情報（ＵＮＩＴＢアドレス情報）と、下側ユニット判断部から出力されるＵｎｄｅｒフラグは、図１の重なり判定部８０により参照される。
【００５８】
図１に戻り、重なり判定部８０は、各ページ内における各オブジェクトの座標情報に基づいて、互いに重なり合う複数のオブジェクトを判定し、さらに、それらの重なり部分の座標情報を得る。つまり、重なり判定部８０は、アドレス更新部７０から得られるＵＮＩＴＡアドレス情報とＵＮＩＴＢアドレス情報を利用して、描画出力ユニットＡと描画出力ユニットＢで処理される２つのオブジェクトが互いに重なるか否かを判定し、さらに、重なる場合における重なり部分の終了アドレスを算出する。
【００５９】
図８は、重なり判定部８０の構成と動作を説明するための図である。重なり判定部８０は、アドレス更新部７０から出力されるＵｎｄｅｒフラグに基づいて、描画出力ユニットＡと描画出力ユニットＢのどちらのオブジェクトが下側になるのかを判断する。Ｕｎｄｅｒフラグが０のときには、描画出力ユニットＡのオブジェクトが下側であり、描画出力ユニットＢのオブジェクトが上側であると判断される。
【００６０】
そして、Ｕｎｄｅｒフラグが０のときには、アドレス更新部７０から得られるＵＮＩＴＡアドレス情報（ＡＸＥ，ＡＹＥ，ＡＸＳ，ＡＹＳ）がＵｎｄｅｒ側の回路に接続され、ＵＮＩＴＡアドレス情報がＵｎｄｅｒアドレス情報（ＵｎｄｅｒＸＥ，ＵｎｄｅｒＹＥ，ＵｎｄｅｒＸＳ，ＵｎｄｅｒＹＳ）とされる。また、アドレス更新部７０から得られるＵＮＩＴＢアドレス情報（ＢＸＥ，ＢＹＥ，ＢＸＳ，ＢＹＳ）がＵｐ側の回路に接続され、ＵＮＩＴＢアドレス情報がＵｐアドレス情報（ＵｐＸＥ，ＵｐＹＥ，ＵｐＸＳ，ＵｐＹＳ）とされる。
【００６１】
一方、Ｕｎｄｅｒフラグが１のときには、描画出力ユニットＢのオブジェクトが下側であり、描画出力ユニットＡのオブジェクトが上側であると判断され、ＵＮＩＴＢアドレス情報がＵｎｄｅｒアドレス情報とされ、ＵＮＩＴＡアドレス情報がＵｐアドレス情報とされる。
【００６２】
こうして得られたＵｎｄｅｒアドレス情報とＵｐアドレス情報は、比較ａから比較ｄの回路において比較される。各回路において比較されるアドレス情報と比較によって得られる結果は次のとおりである。
【００６３】
比較ａの回路は、ＵｎｄｅｒＸＥ≧ＵｐＸＳ≧ＵｎｄｅｒＸＳのときＣＯＭＰａ＝１としてそれ以外のときＣＯＭＰａ＝０とする。
比較ｂの回路は、ＵｎｄｅｒＸＥ≧ＵｐＸＥ≧ＵｎｄｅｒＸＳのときＣＯＭＰｂ＝１としそれ以外のときＣＯＭＰｂ＝０とする。
比較ｃの回路は、ＵｎｄｅｒＹＥ≧ＵｐＹＳ≧ＵｎｄｅｒＹＳのときＣＯＭＰｃ＝１としそれ以外のときＣＯＭＰｃ＝０とする。
比較ｄの回路は、ＵｎｄｅｒＹＥ≧ＵｐＹＥ≧ＵｎｄｅｒＹＳのときＣＯＭＰｄ＝１としそれ以外のときＣＯＭＰｄ＝０とする。
【００６４】
そして、ＣＯＭＰａとＣＯＭＰｂがＯＲ回路（論理和回路）において演算され、これらの論理和の結果がＯＲｘとして出力される。また、ＣＯＭＰｃとＣＯＭＰｄもＯＲ回路（論理和回路）において演算され、これらの論理和の結果がＯＲｙとして出力される。さらに、ＯＲｘとＯＲｙがＡＮＤ回路（論理積回路）において演算され、これらの論理積の結果がＡＮＤａとして出力される。
【００６５】
上述した比較と論理演算を経て得られるＡＮＤａは、描画出力ユニットＡのオブジェクトと描画出力ユニットＢのオブジェクトが互いに重なる場合にＡＮＤａ＝１となり、互いに重ならない場合にＡＮＤａ＝０となる。
【００６６】
ＳＥＬ回路（Ａ）は、Ｕｎｄｅｒフラグの値に応じて、ＡＮＤａと０の２つの入力値のうちの一方を選択し、重なり判定フラグＡとして出力する。つまりＵｎｄｅｒフラグ＝０のときには重なり判定フラグＡ＝０とされ、Ｕｎｄｅｒフラグ＝１のときには重なり判定フラグＡ＝ＡＮＤａとされる。
【００６７】
また、ＳＥＬ回路（Ｂ）は、Ｕｎｄｅｒフラグの値に応じて、０とＡＮＤａの２つの入力値のうちの一方を選択し、重なり判定フラグＢとして出力する。つまりＵｎｄｅｒフラグ＝０のときには重なり判定フラグＡ＝ＡＮＤａとされ、Ｕｎｄｅｒフラグ＝１のときには重なり判定フラグＢ＝０とされる。
【００６８】
重なり終了アドレス判定部は、比較ｃの回路から出力されるＣＯＭＰｃと、比較ｄの回路から出力されるＣＯＭＰｄと、Ｕｎｄｅｒアドレス情報のＵｎｄｅｒＹＥと、Ｕｐアドレス情報のＵｐＹＥに基づいて、重なり終了アドレス値を出力する。重なり終了アドレス判定部は、ＣＯＭＰｄ＝１の場合に重なり終了アドレス＝ＵｐＹＥとし、それ以外の場合に重なり終了アドレス＝ＵｎｄｅｒＹＥとする。
【００６９】
図９は、重なり終了アドレスの具体例を示す図である。図９には、下側のオブジェクト１と上側のオブジェクト２の重ね合わせに関する４つの態様が示されている。ケース１に示す重ね合わせでは、オブジェクト２のＵｐＹＥがオブジェクト１の外側に存在するためＵｎｄｅｒＹＥ≧ＵｐＹＥ≧ＵｎｄｅｒＹＳを満たさず、ＣＯＭＰｄ＝０となる。この場合には、重なり終了アドレス＝ＵｎｄｅｒＹＥとなる。つまり、下側のオブジェクト１の最終ラインであるＵｎｄｅｒＹＥが、重なり部分の最終ラインとなる。
【００７０】
ケース２に示す重ね合わせの場合も、ケース１と同様であり、オブジェクト２のＵｐＹＥがオブジェクト１の外側に存在するため重なり終了アドレス＝ＵｎｄｅｒＹＥとなり、下側のオブジェクト１の最終ラインであるＵｎｄｅｒＹＥが、重なり部分の最終ラインとなる。
【００７１】
これらに対し、ケース３に示す重ね合わせでは、オブジェクト２のＵｐＹＥがオブジェクト１の上に存在するため、ＵｎｄｅｒＹＥ≧ＵｐＹＥ≧ＵｎｄｅｒＹＳの条件を満たしてＣＯＭＰｄ＝１となる。この場合には、重なり終了アドレス＝ＵｐＹＥとなる。つまり、上側のオブジェクト２の最終ラインであるＵｐＹＥが、重なり部分の最終ラインとなる。
【００７２】
ケース４に示す重ね合わせの場合も、ケース３と同様であり、オブジェクト２のＵｐＹＥがオブジェクト１の上に存在するため、重なり終了アドレス＝ＵｐＹＥとなり、上側のオブジェクト２の最終ラインであるＵｐＹＥが、重なり部分の最終ラインとなる。
【００７３】
図１に戻り、タイミング制御部９０は、重なり判定部８０から得られる重なり部分の座標情報に基づいて、描画処理における各オブジェクトの描画のタイミングを制御することにより、その重なり部分において下層オブジェクトを描画させてから上層オブジェクトを描画させる。つまり、タイミング制御部９０は、重なり判定部８０から得られる重なり終了アドレスなどを利用して、描画出力ユニットＡのアドレス生成部Ａと描画出力ユニットＢのアドレス生成部Ｂを制御する。
【００７４】
図１０は、タイミング制御部９０による処理を示すフローチャートである。まず、重なり判定部８０（図１）から、重なり判定フラグＡと重なり判定フラグＢとＣＯＭＰｄと重なり終了アドレス値が入力され、また、描画出力ユニットＡのアドレス生成部Ａからアドレス生成Ｙ値Ａが入力され、描画出力ユニットＢのアドレス生成部Ｂからアドレス生成Ｙ値Ｂが入力される（Ｓ１００１）。なお、アドレス生成Ｙ値Ａは、描画出力ユニットＡにより描画（メモリへの書き込み）されているオブジェクトのＹ座標値（ライン番号）であり、アドレス生成Ｙ値Ｂは、描画出力ユニットＢにより描画（メモリへの書き込み）されているオブジェクトのＹ座標値（ライン番号）である。
【００７５】
タイミング制御部９０は、重なり判定フラグＡと重なり判定フラグＢに基づいて判定を行い（Ｓ１００２）、重なり判定フラグＡと重なり判定フラグＢが共に０の場合には、描画出力ユニットＡのオブジェクトと描画出力ユニットＢのオブジェクトに重なりがないため（図８においてＡＮＤａ＝０）、Ｗｒｉｔｅ停止フラグＡを０とし、Ｗｒｉｔｅ停止フラグＢも０とする（Ｓ１００３）。Ｗｒｉｔｅ停止フラグＡは、描画出力ユニットＡのアドレス生成部Ａを制御するフラグであり、Ｗｒｉｔｅ停止フラグＢは、描画出力ユニットＢのアドレス生成部Ｂを制御するフラグである。
【００７６】
一方、重なり判定フラグＡと重なり判定フラグＢに基づいた判定（Ｓ１００２）において、重なり判定フラグＡと重なり判定フラグＢのいずれか一方が０でない場合には、Ｗｒｉｔｅ停止フラグＡ＝重なり判定フラグＡとし、Ｗｒｉｔｅ停止フラグＢ＝重なり判定フラグＢとする（Ｓ１００４）。これにより、上側のオブジェクトに関するＷｒｉｔｅ停止フラグが１となり、下側のオブジェクトに関するＷｒｉｔｅ停止フラグが０となる。
【００７７】
そして、ＣＯＭＰｄに基づいて判定を行い（Ｓ１００５）、ＣＯＭＰｄ＝０であれば、Ｓ１００４で設定されたＷｒｉｔｅ停止フラグＡとＷｒｉｔｅ停止フラグＢをそのまま維持する。この場合における重ね合わせの具体例は、図９のケース１とケース２であり、下側のオブジェクトの全てのＷｒｉｔｅ（メモリへの書き込み）が完了するまで、上側のオブジェクトのＷｒｉｔｅが停止される。
【００７８】
一方、図１０のＳ１００５の判定においてＣＯＭＰｄ＝０でなければ、重なり判定フラグＡに基づいた判定（Ｓ１００６）に進む。この場合における重ね合わせの具体例は、図９のケース３とケース４である。
【００７９】
図１０のＳ１００６の判定において、重なり判定フラグＡ＝０であれば、描画出力ユニットＡのオブジェクトが下側であるため、描画出力ユニットＡについてのアドレス生成Ｙ値Ａと重なり終了アドレス値が比較される（Ｓ１００７）。なお、重なり判定フラグＡ＝０であれば重なり判定フラグＢ＝１であり（Ｓ１００２の判定による）、Ｗｒｉｔｅ停止フラグＢが１に設定されており（Ｓ１００４の設定による）、描画出力ユニットＢによるオブジェクトの書き込みが停止されている。そして、描画出力ユニットＡによるオブジェクトの書き込みが進行して、アドレス生成Ｙ値Ａが重なり終了アドレス値以上になると、Ｗｒｉｔｅ停止フラグＢが０に設定され（Ｓ１００９）、描画出力ユニットＢによる上側のオブジェクトの書き込みが開始される。
【００８０】
一方、Ｓ１００６の判定において、重なり判定フラグＡ＝０でなければ、描画出力ユニットＢのオブジェクトが下側であるため、描画出力ユニットＢについてのアドレス生成Ｙ値Ｂと重なり終了アドレス値が比較される（Ｓ１００８）。なお、重なり判定フラグＡ＝０でなければ、つまり重なり判定フラグＡ＝１であれば、Ｗｒｉｔｅ停止フラグＡが１に設定されており（Ｓ１００４の設定による）、描画出力ユニットＡによるオブジェクトの書き込みが停止されている。そして、描画出力ユニットＢによるオブジェクトの書き込みが進行して、アドレス生成Ｙ値Ｂが重なり終了アドレス値以上になると、Ｗｒｉｔｅ停止フラグＡが０に設定され（Ｓ１００９）、描画出力ユニットＡによる上側のオブジェクトの書き込みが開始される。
【００８１】
図１に戻り、描画出力ユニットＡは、描画処理実行部Ａと出力バッファＡとアドレス生成部Ａとを備えている。描画処理実行部Ａは、並列描画制御部６０からオブジェクトごとに得られる描画命令（図６参照）に基づいてそのオブジェクトの画像データを形成する。描画処理実行部Ａは、並列描画制御部６０から得られる各オブジェクトの描画命令を例えばビットマップデータに展開する。
【００８２】
描画処理実行部Ａにおいて形成された各オブジェクトの画像データ（例えばビットマップデータ）は、出力バッファＡを介してデータバス２００へ出力される。そして、メモリコントローラ３０が、データバス２００を介して得られる各オブジェクトの画像データをメモリ２０に格納する。
【００８３】
メモリ２０は、複数のオブジェクトを含んだ各ページの画像データ（例えばビットマップデータ）を格納する記憶領域である。つまり、各ページの画像データを構成する複数の画素データの各々が、ページ内における座標値（Ｘ座標値，Ｙ座標値）に対応したアドレス（メモリ２０のアドレス）に格納（描画）される。
【００８４】
アドレス生成部Ａは、アドレス更新部７０が備えるユニットＡのアドレスレジスタ（図７参照）から得られる各オブジェクトのアドレス情報に基づいて、そのオブジェクトをメモリ２０内に格納（描画）する際のアドレスを生成する。つまり、アドレス生成部Ａは、描画処理実行部Ａにおいて形成される各オブジェクトの画像データに関するアドレスを生成する。
【００８５】
各オブジェクトの画像データは、例えば、Ｘ方向に沿ったラインごとに処理され、Ｙ方向に並ぶ複数のラインがライン番号の小さいものから順にメモリ２０に書き込まれていく（図２参照）。アドレス生成部Ａは、各オブジェクトの画像データを構成する複数のラインについて、例えば、開始ラインから最終ラインまでのアドレス（開始から最終までのＹ座標）と、各ラインの開始画素から最終画素までのアドレス（開始から最終までのＸ座標）を生成する。
【００８６】
アドレス生成部Ａは、タイミング制御部９０から出力されるＷｒｉｔｅ停止フラグＡ（図１０参照）に応じてアドレスを出力するタイミングを制御する。アドレス生成部Ａは、Ｗｒｉｔｅ停止フラグＡが０の場合にはアドレスの生成と出力を実行し、Ｗｒｉｔｅ停止フラグＡが１の場合にはアドレスの生成と出力を停止する。
【００８７】
描画処理実行部Ａから出力される各オブジェクトの画像データは、アドレス生成部Ａからアドレスが出力されている場合に、そのアドレスに応じてメモリ２０に格納され、アドレス生成部Ａがアドレスの出力を停止している場合には、メモリ２０への格納も停止される。
【００８８】
なお、描画出力ユニットＢも描画出力ユニットＡと同様な構成を備えて同様な動作を実行する。描画出力ユニットＢは、描画処理実行部Ｂと出力バッファＢとアドレス生成部Ｂと備えている。
【００８９】
描画処理実行部Ｂは、並列描画制御部６０から各オブジェクトごとに得られる描画命令（図６参照）に基づいてそのオブジェクトの画像データを形成する。描画処理実行部Ｂにおいて形成された各オブジェクトの画像データ（例えばビットマップデータ）は、出力バッファＢを介してデータバス２００へ出力され、メモリコントローラ３０が、データバス２００を介して得られる各オブジェクトの画像データをメモリ２０に格納する。
【００９０】
また、アドレス生成部Ｂは、アドレス更新部７０が備えるユニットＢのアドレスレジスタ（図７参照）から得られる各オブジェクトのアドレス情報に基づいて、そのオブジェクトをメモリ２０内に格納（描画）する際のアドレスを生成する。アドレス生成部Ｂは、各オブジェクトの画像データを構成する複数のラインについて、例えば、開始ラインから最終ラインまでのアドレス（開始から最終までのＹ座標）と、各ラインの開始画素から最終画素までのアドレス（開始から最終までのＸ座標）を生成する。
【００９１】
そして、アドレス生成部Ｂは、タイミング制御部９０から出力されるＷｒｉｔｅ停止フラグＢ（図１０参照）に応じてアドレスを出力するタイミングを制御する。つまり、アドレス生成部Ｂは、Ｗｒｉｔｅ停止フラグＡが０の場合にアドレスの生成と出力を実行し、Ｗｒｉｔｅ停止フラグＡが１の場合にはアドレスの生成と出力を停止する。こうして、描画処理実行部Ｂから出力される各オブジェクトの画像データは、アドレス生成部Ｂからアドレスが出力されている場合に、そのアドレスに応じてメモリ２０に格納され、アドレス生成部Ｂがアドレスの出力を停止している場合には、メモリ２０への格納も停止される。
【００９２】
描画出力ユニットＡによる描画（メモリ２０への格納）と描画出力ユニットＢによる描画（メモリ２０への格納）は、互いに並列処理される。その並列処理において、タイミング制御部９０から出力されるＷｒｉｔｅ停止フラグＡ，Ｂに応じて描画出力ユニットＡと描画出力ユニットＢのアドレス生成部が動作し、これにより描画のタイミング（メモリ２０への格納のタイミング）が制御される。
【００９３】
図１１は、アドレス生成部Ａ，Ｂによる処理を示すフローチャートである。アドレス生成部Ａとアドレス生成部Ｂ（図１）の各々は、図１１に示すフローチャートに従って動作する。まず、Ｗｒｉｔｅ完了フラグが１に設定される（Ｓ１１０１）。これにより、Ｗｒｉｔｅ完了フラグを１としたアドレス生成部Ａまたはアドレス生成部Ｂのレジスタ（図７参照）に対して、並列描画制御部６０が１つのオブジェクトに関するアドレス情報をセットする（Ｓ１１０２）。以下においては、アドレス生成部Ａに対してアドレス情報がセットされる場合について説明する。
【００９４】
アドレス生成部Ａに対応したレジスタに対して、１つのオブジェクトに関するアドレス情報のセットが完了すると（Ｓ１１０３）、アドレス生成部Ａは、Ｗｒｉｔｅ完了フラグを０に設定する（Ｓ１１０４）。
【００９５】
そして、アドレス生成部Ａは、タイミング制御部９０から出力されるＷｒｉｔｅ停止フラグＡが１であるか否かを確認し（Ｓ１１０５）、Ｗｒｉｔｅ停止フラグＡが１である場合には、アドレスの生成と出力を停止する。つまり、Ｗｒｉｔｅ停止フラグＡが１である場合には、描画出力ユニットＡと描画出力ユニットＢにより並列処理されている２つのオブジェクトに重なりがあり、描画出力ユニットＡのオブジェクトが上側（上層）であるため（図９，１０参照）、アドレス生成部Ａによるアドレスの生成と出力が停止され、描画出力ユニットＡのオブジェクトの描画（メモリ２０への格納）が一時的に停止される。
【００９６】
一方、Ｗｒｉｔｅ停止フラグＡが０である場合に、アドレス生成部Ａは、セットされたアドレス情報に基づいてアドレスを生成して出力する（Ｓ１１０６）。例えば、Ｓ１１０５においてＷｒｉｔｅ停止フラグＡが１であり、描画出力ユニットＡのオブジェクトの描画が停止されている期間に、描画出力ユニットＢによるオブジェクトの描画（メモリ２０への格納）が続けられて重なり部分における描画が終了すると、Ｗｒｉｔｅ停止フラグＡが０とされ（図１０参照）、Ｓ１１０６においてアドレス生成部Ａがアドレスの生成と出力を開始する。
【００９７】
なお、描画出力ユニットＡと描画出力ユニットＢにより並列処理されている２つのオブジェクトに重なりがない場合には、Ｗｒｉｔｅ停止フラグＡは０であり（図１０参照）、Ｓ１１０５において停止されることなく、Ｓ１１０６においてアドレス生成部Ａがアドレスの生成と出力を開始する。
【００９８】
そして、１つのオブジェクトに関するアドレスの生成と出力が最終アドレスに到達し（Ｓ１１０７）、そのオブジェクトに関する描画が終了すると、アドレス生成部Ａは、Ｗｒｉｔｅ完了フラグを１に設定する（Ｓ１１０８）。これにより、Ｓ１１０２以降において次のオブジェクトに関する処理が実行される。
【００９９】
アドレス生成部Ｂも、図１１のフローチャートに従って動作する。つまり、アドレス生成部ＢのＷｒｉｔｅ完了フラグが１に設定されると（Ｓ１１０１）、アドレス生成部Ｂのレジスタ（図７参照）に対して、並列描画制御部６０が１つのオブジェクトに関するアドレス情報をセットし（Ｓ１１０２）、１つのオブジェクトに関するアドレス情報のセットが完了すると（Ｓ１１０３）、アドレス生成部Ｂは、Ｗｒｉｔｅ完了フラグを０に設定する（Ｓ１１０４）。
【０１００】
さらに、アドレス生成部Ｂは、タイミング制御部９０から出力されるＷｒｉｔｅ停止フラグＢが１であるか否かを確認し（Ｓ１１０５）、Ｗｒｉｔｅ停止フラグＢが１である場合には、アドレスの生成と出力を停止する。この場合には、描画出力ユニットＡと描画出力ユニットＢにより並列処理されている２つのオブジェクトに重なりがあり、描画出力ユニットＢのオブジェクトが上側（上層）であるため（図９，１０参照）、アドレス生成部Ｂによるアドレスの生成と出力が停止され、描画出力ユニットＢのオブジェクトの描画（メモリ２０への格納）が一時的に停止される。一方、Ｗｒｉｔｅ停止フラグＢが０である場合に、アドレス生成部Ｂは、セットされたアドレス情報に基づいてアドレスを生成して出力する（Ｓ１１０６）。
【０１０１】
そして、１つのオブジェクトに関するアドレスの生成と出力が最終アドレスに到達し（Ｓ１１０７）、そのオブジェクトに関する描画が終了すると、アドレス生成部Ｂは、Ｗｒｉｔｅ完了フラグを１に設定し（Ｓ１１０８）、Ｓ１１０２以降において次のオブジェクトに関する処理が実行される。
【０１０２】
こうして、Ｗｒｉｔｅ完了フラグを１としたアドレス生成部Ａとアドレス生成部Ｂに対して、並列描画制御部６０が次々にオブジェクトに関するアドレス情報をセットすることにより、描画出力ユニットＡと描画出力ユニットＢが並列処理で描画を実行し、各ページに含まれる全てのオブジェクトの描画が実行される。その並列処理において、タイミング制御部９０から出力されるＷｒｉｔｅ停止フラグＡ，Ｂにより、描画のタイミングが適宜に制御され、これにより、例えば図２に示した具体例１の重ね合わせが実現され、互いに重なり合う複数のオブジェクトを適切な順序で重ね合わせつつ、各ページ内に複数のオブジェクトが並列処理で描画される。
【０１０３】
さらに、図１の画像処理装置において、重なり判定部８０内に並列処理終了アドレス判定部を設け、タイミング制御部９０内に並列処理許可部を設ける変形例により、例えば図２に示した具体例２の重ね合わせが実現される。そこで、その変形例について詳述する。
【０１０４】
変形例において、重なり判定部８０とタイミング制御部９０以外の構成と動作は、図１の画像処理装置と同じである。つまり、言語データ処理部１０において、例えば図３に示す中間言語データが形成され、さらに、コマンド解釈部４０、描画情報入出力部５０、並列描画制御部６０、アドレス更新部７０において、図４から図７を利用して詳述した処理が実行される。
【０１０５】
図１２は、変形例における重なり判定部８０の構成と動作を説明するための図である。図１２に示す変形例は、図８に示した重なり判定部８０に、並列処理終了アドレス判定部を追加したものである。追加された並列処理終了アドレス判定部以外の構成と動作については、図８の重なり判定部８０と図１２の変形例に相違はない。
【０１０６】
つまり、図１２に示す変形例においても、重なり判定部８０は、アドレス更新部７０から出力されるＵｎｄｅｒフラグに基づいて、描画出力ユニットＡと描画出力ユニットＢのどちらのオブジェクトが下側になるのかを判断し、比較ａから比較ｄの回路においてＵｎｄｅｒアドレス情報とＵｐアドレス情報を比較し、重なり判定フラグＡ，Ｂを出力する。また、重なり終了アドレス判定部から、重なり終了アドレスが出力される。
【０１０７】
図１２の変形例において追加された並列処理終了アドレス判定部は、比較ｃの回路から出力されるＣＯＭＰｃとＵｎｄｅｒアドレス情報のＵｎｄｅｒＹＳに基づいて、並列処理終了アドレス値を出力する。並列処理終了アドレス判定部は、ＣＯＭＰｃ＝０の場合に並列処理終了アドレス＝ＵｎｄｅｒＹＳとし、それ以外の場合に並列処理終了アドレス＝０とする。
【０１０８】
並列処理終了アドレスの具体例について、図９に示した重ね合わせに関する４つの態様で確認すると、ケース１に示す重ね合わせでは、ＣＯＭＰｃ＝１（≠０）であるため、並列処理終了アドレス＝０となる。ケース４に示す重ね合わせの場合も、ケース１と同様であり、ＣＯＭＰｃ＝１であるため、並列処理終了アドレス＝０となる。
【０１０９】
これらに対し、ケース２に示す重ね合わせでは、ＣＯＭＰｃ＝０であるため、並列処理終了アドレス＝ＵｎｄｅｒＹＳとなる。ケース３に示す重ね合わせの場合も、ケース２と同様であり、ＣＯＭＰｃ＝０であるため、並列処理終了アドレス＝ＵｎｄｅｒＹＳとなる。
【０１１０】
図１３は、変形例のタイミング制御部９０における処理を示すフローチャートである。図１３に示す変形例では、図１０に示したタイミング制御部９０に関するフローチャートに、Ｓ１３００の処理が追加され、さらに、Ｓ１００１の処理における入力値にＣＯＭＰｃと並列処理終了アドレス値が追加されている。これら追加された処理と入力値以外において、図１０のフローチャートと図１３のフローチャートに相違はない。
【０１１１】
つまり、図１３に示す変形例においても、まず、変形例の重なり判定部８０（図１２）から、重なり判定フラグＡと重なり判定フラグＢとＣＯＭＰｄと重なり終了アドレス値が入力され、また、描画出力ユニットＡのアドレス生成部Ａからアドレス生成Ｙ値Ａが入力され、描画出力ユニットＢのアドレス生成部Ｂからアドレス生成Ｙ値Ｂが入力される（Ｓ１００１）。さらに、図１３に示す変形例においては、変形例の重なり判定部８０から、ＣＯＭＰｃと並列処理終了アドレス値も入力される。
【０１１２】
また、変形例においても、タイミング制御部９０は、重なり判定フラグＡと重なり判定フラグＢに基づいて判定を行い（Ｓ１００２）、重なり判定フラグＡと重なり判定フラグＢが共に０の場合には、Ｗｒｉｔｅ停止フラグＡを０とし、Ｗｒｉｔｅ停止フラグＢも０とする（Ｓ１００３）。そして、重なり判定フラグＡと重なり判定フラグＢに基づいた判定（Ｓ１００２）において、重なり判定フラグＡと重なり判定フラグＢのいずれか一方が０でない場合に、図１３の変形例では、ＣＯＭＰｃに基づいた判定処理（Ｓ１３００）が実行される。
【０１１３】
ＣＯＭＰｃに基づいた判定処理（Ｓ１３００）において、ＣＯＭＰｃ＝１（≠０）の場合には、Ｓ１００４へ進み、図１０のフローチャートと同じ処理が実行される。なお、この場合における重ね合わせの具体例は、図９のケース１とケース４である。
【０１１４】
これに対し、図１３に示すＣＯＭＰｃに基づいた判定処理（Ｓ１３００）において、ＣＯＭＰｃ＝０の場合には、図１４に示すフローチャートの処理が実行される。なお、この場合における重ね合わせの具体例は、図９のケース２とケース３である。
【０１１５】
図１４は、並列処理許可部における処理を示すフローチャートである。変形例のタイミング制御部９０は、並列処理許可部を備えており、この並列処理許可部により図１４に示す処理が実行される。
【０１１６】
ＣＯＭＰｃ＝０と判定されると（図１３のＳ１３００）、並列処理許可部は、Ｗｒｉｔｅ停止フラグＡを０とし、Ｗｒｉｔｅ停止フラグＢも０とする（Ｓ１４０１）。これにより、描画出力ユニットＡによるオブジェクトの描画と描画出力ユニットＢによるオブジェクトの描画が両方とも許可される。
【０１１７】
次に、並列処理許可部は、重なり判定フラグＡに基づいた判定（Ｓ１４０２）を行い、重なり判定フラグＡ＝０であれば、描画出力ユニットＡのオブジェクトが下側で、描画出力ユニットＢのオブジェクトが上側の場合であり、上側である描画出力ユニットＢについてのアドレス生成Ｙ値Ｂと並列処理終了アドレス値が比較される（Ｓ１４０３）。そして描画出力ユニットＢによるオブジェクトの書き込みが進行して、アドレス生成Ｙ値Ｂが並列処理終了アドレス値以上になると、図１３のフローチャートへ戻り、Ｓ１００４以降の処理が実行される。
【０１１８】
一方、図１４の重なり判定フラグＡに基づいた判定（Ｓ１４０２）において、重なり判定フラグＡ＝０でなければ、描画出力ユニットＡのオブジェクトが上側で、描画出力ユニットＢのオブジェクトが下側の場合であり、上側である描画出力ユニットＡについてのアドレス生成Ｙ値Ａと並列処理終了アドレス値が比較される（Ｓ１４０４）。そして、描画出力ユニットＡによるオブジェクトの書き込みが進行して、アドレス生成Ｙ値Ａが並列処理終了アドレス値以上になると、図１３のフローチャートへ戻り、Ｓ１００４以降の処理が実行される。
【０１１９】
図１３のＳ１００４において、Ｗｒｉｔｅ停止フラグＡ＝重なり判定フラグＡとし、Ｗｒｉｔｅ停止フラグＢ＝重なり判定フラグＢとすると、上側のオブジェクトに関するＷｒｉｔｅ停止フラグが１となり、下側のオブジェクトに関するＷｒｉｔｅ停止フラグが０となる。つまり、図１４のＳ１４０１において描画出力ユニットＡによるオブジェクトの描画と描画出力ユニットＢによるオブジェクトの描画が両方とも許可されていた状態から、図１３のＳ１００４において上側のオブジェクトに関する描画が停止される。そして、図１３のＳ１００４以降は、図１０のフローチャートと同じ処理が実行される。
【０１２０】
このように、図１３のＳ１３００においてＣＯＭＰｃ＝０の場合には、例えば図９のケース２とケース３の重ね合わせにおいて、図１４に示す並列処理許可部による処理により上側のオブジェクト２と下側のオブジェクト１の両方の描画が許可され、アドレス生成Ｙ値の小さい方から順にオブジェクトの描画（メモリ２０への書き込み）が実行される。そして、上側のオブジェクト２のアドレス生成Ｙ値が並列処理終了アドレス値以上になると図１３のＳ１００４において上側のオブジェクト２の描画が停止される。
【０１２１】
つまり、図９のケース２とケース３の重ね合わせの場合において、下側のオブジェクト１の描画と共に上側のオブジェクト２の描画がＵｐＹＳから実行され、上側のオブジェクト２の描画がＵｎｄｅｒＹＳに達すると、上側のオブジェクト２の描画が停止される。なお、下側のオブジェクト１の描画は継続されており、下側のオブジェクト１の描画が重なり終了アドレス値以上になると、上側のオブジェクト２の描画がＵｎｄｅｒＹＳから再開される。
【０１２２】
上述した変形例により、例えば図２に示した具体例２の重ね合わせが実現される。つまり、互いに重なり合う複数のオブジェクトを適切な順序で重ね合わせつつ、各ページ内に複数のオブジェクトを並列処理で描画するにあたり、重ね合わせが開始されるアドレス以前において上層オブジェクトの描画を停止させる場合に比べて、効率的な並列処理が実現される。
【０１２３】
以上、本発明の実施において好適な画像処理装置を説明したが、例えば、図１に示した画像処理装置内や図１２から図１４を利用して説明した変形例の機能の少なくとも一部をコンピュータで実現してもよい。例えば、コマンド解釈部４０、描画情報入出力部５０、並列描画制御部６０、アドレス更新部７０、重なり判定部８０、タイミング制御部９０、描画出力ユニットＡ，Ｂの機能のうちの少なくとも一部をコンピュータに実現させるためのプログラムが利用され、そのプログラムが、コンピュータが読み取り可能な記憶媒体やネットワークなどを介してコンピュータに提供されてもよい。
【符号の説明】
【０１２４】
１０  言語データ処理部、２０  メモリ、３０  メモリコントローラ、４０  コマンド解釈部、５０  描画情報入出力部、６０  並列描画制御部、７０  アドレス更新部、８０  重なり判定部、９０  タイミング制御部、１００  画像処理プロセッサ。
【図１】
0005699778.tif 000002
【図２】
0005699778.tif 000003
【図３】
0005699778.tif 000004
【図４】
0005699778.tif 000005
【図５】
0005699778.tif 000006
【図６】
0005699778.tif 000007
【図７】
0005699778.tif 000008
【図８】
0005699778.tif 000009
【図９】
0005699778.tif 000010
【図１０】
0005699778.tif 000011
【図１１】
0005699778.tif 000012
【図１２】
0005699778.tif 000013
【図１３】
0005699778.tif 000014
【図１４】
0005699778.tif 000015