(57)【特許請求の範囲】
【請求項１】
第１のメモリと、前記第１のメモリより高速にアクセス可能な第２のメモリとを用いてオブジェクトをビットマップに展開する画像処理装置であって、
複数のオブジェクトの中から前記第２のメモリに展開すべきオブジェクトを抽出する抽出手段と、
前記抽出される複数のオブジェクトを結合した後のバウンディングボックスのサイズが前記第２のメモリのサイズより大きいかを判定する判定手段と、
前記判定手段によって前記バウンディングボックスのサイズが前記第２のメモリのサイズより小さいと判定された場合、前記第２のメモリの容量の範囲内で展開可能な前記抽出された複数のオブジェクトを１つのバウンディングボックスに結合する結合手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記結合手段は、前記結合後の１つのバウンディングボックスのサイズが前記第２のメモリのサイズより大きいと前記判定手段によって判定される場合、前記複数のオブジェクトを１つのバウンディングボックスに結合しないことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記判定手段は、前記結合後の１つのバウンディングボックスのサイズが前記第２のメモリのサイズより小さいと判定した場合、他のオブジェクトを前記結合後の１つのバウンディングボックスにさらに結合した後のバウンディングボックスのサイズが前記第２のメモリのサイズより大きいかを判定し、
前記結合手段は、他のオブジェクトを前記結合後の１つのオブジェクトにさらに結合した後のバウンディングボックスのサイズが前記第２のメモリのサイズより小さいと前記判定手段が判定した場合、前記他のオブジェクトを前記結合後の１つのバウンディングボックスにさらに結合することを特徴とする請求項１または２に記載の画像処装置。
【請求項４】
前記結合手段は、前記第２のメモリに展開されたビットマップを前記第１のメモリに転送する回数が減るように、前記複数のオブジェクトを結合することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記結合手段は、オブジェクト同士の距離が所定値以上である複数のオブジェクトを結合することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記結合手段は、オブジェクト同士の距離がより近い複数のオブジェクトを結合する第１の結合方法と、オブジェクト同士の距離が所定値以上である複数のオブジェクトを結合する第２の結合方法とのうち、結合の結果生成されるバウンディングボックスの数が少なくなる結合方法でオブジェクトを結合することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記結合手段は、前記第２のメモリを用いてまとめられたオブジェクトを展開するのに要する展開時間があらかじめ設定された目標時間よりも短いかどうかを判断する判断手段を備え、
前記結合手段は、前記判断手段により前記展開時間があらかじめ設定された目標時間よりも長いと判断したオブジェクト同士を１つのバウンディングボックスにまとめることを特徴とする請求項１記載の画像処理装置。
【請求項８】
前記結合手段により結合できないオブジェクトを前記第２のメモリに展開する展開時間が前記目標時間よりも長いかどうかを判別する判別手段を備え、
前記結合手段は、前記判別手段が前記第２のメモリに展開する展開時間が前記目標時間よりも長いと判別したオブジェクトを結合すべきオブジェクトに含めることを特徴とする請求項７記載の画像処理装置。
【請求項９】
前記第２のメモリに対してビットマップを展開する展開手段を備え、
さらに、前記展開手段は、前記第２のメモリと前記第１のメモリとの間でメモリアクセスを行う手段を備えることを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１０】
前記メモリアクセスを行う手段は、所定の処理を行いながら、前記第２のメモリと前記第１のメモリとの間でメモリアクセスを行うことを特徴とする請求項９記載の画像処理装置。
【請求項１１】
前記所定の処理は、前記第２のメモリに展開されるビットマップに対する画像処理、あるいは前記第２のメモリに展開されるビットマップに対する論理演算処理を含むことを特徴とする請求項１０記載の画像処理装置。
【請求項１２】
前記画像処理は、前記第２のメモリに展開されるビットマップを拡大する処理、前記第２のメモリに展開されるビットマップを回転する処理、前記第２のメモリに展開されるビットマップを半透明合成する処理を含むことを特徴とする請求項１１記載の画像処理装置。
【請求項１３】
前記第２のメモリは、前記第１のメモリの容量よりも低容量であることを特徴とする請求項１乃至１２の何れか１項に記載の画像処理装置。
【請求項１４】
第１のメモリと、前記第１のメモリより高速にアクセス可能な第２のメモリとを用いてオブジェクトをビットマップに展開する画像処理装置における画像処理方法であって、
複数のオブジェクトの中から前記第２のメモリに展開すべきオブジェクトを抽出する抽出ステップと、
前記抽出される複数のオブジェクトを結合した後のバウンディングボックスのサイズが前記第２のメモリのサイズより大きいかを判定する判定ステップと、
前記判定ステップによって前記バウンディングボックスのサイズが前記第２のメモリのサイズより小さいと判定された場合、前記第２のメモリの容量の範囲内で展開可能な前記抽出された複数のオブジェクトを１つのバウンディングボックスに結合する結合ステップと、
を備えることを特徴とする画像処理方法。
【請求項１５】
前記結合ステップは、前記結合後の１つのバウンディングボックスのサイズが前記第２のメモリのサイズより大きいと前記判定ステップによって判定される場合、前記複数のオブジェクトを１つのバウンディングボックスに結合しないことを特徴とする請求項１４に記載の画像処理方法。
【請求項１６】
前記判定ステップは、前記結合後の１つのバウンディングボックスのサイズが前記第２のメモリのサイズより小さいと判定した場合、他のオブジェクトを前記結合後の１つのバウンディングボックスにさらに結合した後のバウンディングボックスのサイズが前記第２のメモリのサイズより大きいかを判定し、
前記結合ステップは、他のオブジェクトを前記結合後の１つのオブジェクトにさらに結合した後のバウンディングボックスのサイズが前記第２のメモリのサイズより小さいと前記判定ステップが判定した場合、前記他のオブジェクトを前記結合後の１つのバウンディングボックスにさらに結合することを特徴とする請求項１４または１５に記載の画像処方法。
【請求項１７】
前記結合ステップは、前記第２のメモリに展開されたビットマップを前記第１のメモリに転送する回数が減るように、前記複数のオブジェクトを結合することを特徴とする請求項１４乃至１６の何れか１項に記載の画像処理方法。
【請求項１８】
前記結合ステップは、オブジェクト同士の距離が所定値以上である複数のオブジェクトを結合することを特徴とする請求項１７に記載の画像処理方法。
【請求項１９】
前記結合ステップは、オブジェクト同士の距離がより近い複数のオブジェクトを結合する第１の結合方法と、オブジェクト同士の距離が所定値以上である複数のオブジェクトを結合する第２の結合方法とのうち、結合の結果生成されるバウンディングボックスの数が少なくなる結合方法でオブジェクトを結合することを特徴とする請求項１８に記載の画像処理方法。
【請求項２０】
前記結合ステップは、前記第２のメモリを用いてまとめられたオブジェクトを展開するのに要する展開時間があらかじめ設定された目標時間よりも短いかどうかを判断する判断ステップを備え、
前記結合ステップは、前記判断ステップにより前記展開時間があらかじめ設定された目標時間よりも長いと判断したオブジェクト同士を１つのバウンディングボックスにまとめることを特徴とする請求項１４記載の画像処理方法。
【請求項２１】
前記結合ステップにより結合できないオブジェクトを前記第２のメモリに展開する展開時間が前記目標時間よりも長いかどうかを判別する判別ステップを備え、
前記結合ステップは、前記判別ステップが前記第２のメモリに展開する展開時間が前記目標時間よりも長いと判別したオブジェクトを結合すべきオブジェクトに含めることを特徴とする請求項２０記載の画像処理方法。
【請求項２２】
前記第２のメモリに対してビットマップを展開する展開ステップを備え、
さらに、前記展開ステップは、前記第２のメモリと前記第１のメモリとの間でメモリアクセスを行うステップを備えることを特徴とする請求項１４乃至２１の何れか１項に記載の画像処理方法。
【請求項２３】
前記メモリアクセスを行うステップは、所定の処理を行いながら、前記第２のメモリと前記第１のメモリとの間でメモリアクセスを行うことを特徴とする請求項２２記載の画像処理方法。
【請求項２４】
前記所定の処理は、前記第２のメモリに展開されるビットマップに対する画像処理、あるいは前記第２のメモリに展開されるビットマップに対する論理演算処理を含むことを特徴とする請求項２３記載の画像処理方法。
【請求項２５】
前記画像処理は、前記第２のメモリに展開されるビットマップを拡大する処理、前記第２のメモリに展開されるビットマップを回転する処理、前記第２のメモリに展開されるビットマップを半透明合成する処理を含むことを特徴とする請求項２４記載の画像処理方法。
【請求項２６】
前記第２のメモリは、前記第１のメモリの容量よりも低容量であることを特徴とする請求項１４乃至２５の何れか１項に記載の画像処理方法。
【請求項２７】
請求項１４乃至２６のいずれか１項に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクトをレンダリングする画像処理装置における画像処理に関するものである。
【背景技術】
【０００２】
近年、画像処理装置に備えられているＣＰＵの内部処理は大幅に向上しているが、メインメモリのアクセス速度は向上していない。
【０００３】
それを回避するためにＣＰＵに高速なキャッシュメモリを搭載しメインメモリのアクセス速度を隠蔽するのが一般的である。キャッシュメモリはメインメモリに比べて非常に小さな容量しか持たないため、ＬＯＦ（ＬｏｃａｌｉｔｙＯｆＲｅｆｅｒｅｎｃｅ）の原理、すなわちメモリアクセスの局所性というランタイムプログラムの特性に基づいて高速化される。
【０００４】
この特性は、現在実行中の命令とこれが使うデータに着目すると、直ぐつぎに実行する命令とデータは、現在のそれらが格納されている直ぐ近くのアドレスを持つメモリ領域に格納され、シーケンシャルアクセスしているという前提にたっている。
【０００５】
しかしながらプログラム（テキスト）に関しては局所性は高いが、データに関しては処理依存であり、直ぐ次のアドレスに次に処理すべきデータが存在していることを保証することは非常に難しい。
【０００６】
ＰＤＬデータのように１ページが複数のオブジェクトで構成されるデータのレンダリング処理も同様である。
【０００７】
各オブジェクトのレンダリング処理（書き出し）位置がオブジェクトごとに離れた座標上にあれば局所性は無くなり、ランダムアクセスになってしまう。
【０００８】
それらを回避するためにＣＰＵはキャッシュメモリの他に、高速にアクセス可能なメモリ（以下、ローカルメモリと記述）を装備し、ローカルメモリにそれぞれの処理に特化した形でデータを格納して処理する方法が一般的になっている。
【０００９】
ローカルメモリを装備した際のＰＤＬデータの高速なレンダリング処理方法として、ページをバンドに分割しローカルメモリに格納して処理する方法が下記特許文献１に開示されている。
【特許文献１】特開平１１−２２７３０１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記従来例ではバンドを入れるためには、ローカルメモリはある程度の容量が必要である。また、ローカルメモリは概して高価なため、低価格なシステムには適用できないといった課題があった。
【００１１】
また、比較的サイズが大きいオブジェクトでは、上記オブジェクトのレンダリング処理中は局所性が高くローカルメモリを用いる必要が無いオブジェクトが存在する。
【００１２】
従来例ではサイズが大きいオブジェクトもローカルメモリ上でレンダリング処理するため、メインメモリからローカルメモリに対して無駄な転送処理が発生してしまうという課題がある。
【００１３】
さらにローカルメモリとメインメモリ間の転送にＤＭＡ（ＤｅｒｅｃｔＭｅｍｏｒｙ  Ａｃｃｅｓｓ（メモリアクセス））回路は近年多機能になっており、その機能を用いることによってローカルメモリをより有効に利用できる点についても懸案されてなかった。
【００１４】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、第１のメモリと、第２のメモリとを用いて、オブジェクトをビットマップに展開する場合に、第２のメモリに適したオブジェクトを効率よく展開できる仕組みを提供することである。
【課題を解決するための手段】
【００１５】
上記目的を達成する本発明の画像処理装置は以下に示す構成を備える。
【００１６】
第１のメモリと、前記第１のメモリより高速にアクセス可能な第２のメモリとを用いてオブジェクトをビットマップに展開する画像処理装置であって、
複数のオブジェクトの中から前記第２のメモリに展開すべきオブジェクトを抽出する抽出手段と、前記抽出される複数のオブジェクトを結合した後のバウンディングボックスのサイズが前記第２のメモリのサイズより大きいかを判定する判定手段と、前記判定手段によって前記バウンディングボックスのサイズが前記第２のメモリのサイズより小さいと判定された場合、前記第２のメモリの容量の範囲内で展開可能な前記抽出された複数のオブジェクトを１つのバウンディングボックスに結合する結合手段と、を備えることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、第１のメモリと、第２のメモリとを用いて、オブジェクトをビットマップに展開する場合に、第２のメモリに適したオブジェクトを効率よく展開できる。
【発明を実施するための最良の形態】
【００１８】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００１９】
＜システム構成の説明＞
〔第１実施形態〕
図１は、本実施形態を示す画像処理装置におけるデータ処理例を示すブロック図である。本例は、外部装置から転送されるＰＤＬデータを解析して、レンダリングしたビットマップ形式の画像データを画像メモリ１１２に蓄積するデータ処理例である。なお、画像処理装置は、情報処理装置として構成されていてもよいし、画像形成装置内部の画像処理機能として構成されていてもよい。以下、第１のメモリとして機能するメインメモリと第２のメモリとして機能するローカルメモリとを備えて、オブジェクトからレンダリング処理を行う場合のオブジェクト処理について詳述する。ここで、オブジェクト処理には、例えばページ内に複数のオブジェクトデータが含まれている場合に、ＡＳＩＣ内に設けられるローカルメモリと、メインメモリとを用いてレンダリングする処理が含まれる。
【００２０】
また、本実施形態では、メインメモリと、ローカルメモリとの容量は、ローカルメモリの容量の方がメインメモリの容量よりも低容量の構成とする。さらに、本実施形態において、メインメモリとローカルメモリとのアクセス速度は、ローカルメモリの方がメインメモリよりも高速にアクセスされる構成である。
【００２１】
図１において、ＰＤＬデータのデコード処理部１０１は、ネットワークを介して外部装置から転送されるＰＤＬデータや、画像処理装置内に格納されたＰＤＬデータの内容を解釈し、その解釈結果を示す情報をディスプレイリスト生成処理部１０２に情報を渡す。ここで、ＰＤＬデータは、図示しないホストコンピュータのプリンタドライバから送信されるものとするが、ＰＤＬデータの取得方法は、これに限らず、ＰＤＬデータを記憶媒体から読み込む構成であってもよい。
【００２２】
ディスプレイリスト生成処理部１０２はデコード処理部１０１から渡されてきた情報に従って、ディスプレイリスト１１０を生成する。領域抽出処理１０３はディスプレイリスト１１０を参照し、ローカルメモリでレンダリング処理すべきオブジェクトを抽出し、領域抽出情報１１１を生成する。なお、本実施形態において、ローカルメモリは、後述するようにレンダリング用のＡＳＩＣ内に設けられている。
【００２３】
領域判断処理１０４は、領域抽出情報１１１を参照し、ローカルメモリを使ってレンダリング処理するオブジェクトか、ローカルメモリを使用しないでレンダリング処理するオブジェクトかを判断する。ここで、ローカルメモリを使用しないでレンダリング処理する場合は、メインメモリ上でレンダリングする。
【００２４】
領域判断処理１０４は、領域判断処理１０４の判断の結果からローカルメモリを用いないレンダリング１０５か、ローカルメモリを用いるレンダリング１０６のいずれかに指示を出し、該オブジェクトのレンダリング処理を実行させる。
【００２５】
ここで、ローカルメモリを用いないレンダリング１０５か、ローカルメモリを用いるレンダリング１０６は、領域判断処理１０４からの指示にしたがい、画像メモリ１１２へレンダリング処理を行い画像を形成する。
【００２６】
以上のように、ディスプレイリスト１１０を判断し、ローカルメモリを用いるべきオブジェクトと用いるべきオブジェクトを分けることにより、従来技術とは異なり小容量のローカルメモリを有効に利用できるようになる。
【００２７】
図２は、本実施形態を示す画像処理装置の構成を説明するブロック図である。なお、本実施形態では、メインメモリ２０６は、ＲＡＭで構成される。ここで、メインメモリ２０６には、ＰＤＬデータ２１０、ディスプレイリスト２１１、画像メモリ２１３が確保される。
【００２８】
また、ＰＤＬデータ２１０からディスプレイリスト２１１を生成する処理はローカルメモリを含まない汎用のＣＰＵ２０１を用いて実行する。なお、ＰＤＬデータ２１０からディスプレイリスト２１１を生成する処理は、図１に示すデコード処理部１０１、ディスプレイリスト生成処理部１０２による処理に対応する。
【００２９】
図２において、ＰＤＬデータのデコードプログラム２３０およびディスプレイリスト生成プログラム２３１はメインメモリ２０６内に配置される。
【００３０】
ここで、汎用のＣＰＵ２０１は、メインメモリ２０６にロードされるＰＤＬデータのデコードプログラム２３０およびディスプレイリスト生成プログラム２３１を読み込んで処理することによりＰＤＬデコード処理とディスプレイリスト生成処理が実行される。
【００３１】
また、ＣＰＵ２０１は、ディスプレイリスト２１１から領域抽出結果（バウンディングボックステーブル）２１２への変換もＣＰＵ２０１を用いて行う（図１の領域抽出処理１０３）。
【００３２】
領域抽出処理（バウンディングボックス作成）プログラム２３２は、メインメモリ２０６内に配置され、ＣＰＵ２０１が読み込んで処理することにより領域抽出結果２１２が作成される。領域抽出結果２１２としてバウンディングボックステーブルが生成される。
【００３３】
ディスプレイリスト２１１から画像メモリ２１３へのレンダリング処理は、レンダリング用のＡＳＩＣ２０５を用いて実行する。レンダリング用のＡＳＩＣ２０５内にはＣＰＵ２０２とローカルメモリ２０３、ローカルメモリ２０３とメインメモリ２０６間の転送を行うＤＭＡ回路２０４とを備える。ここで、ＤＭＡ回路２０４は、
レンダリング処理プログラム２３３は、メインメモリ２０６内に含まれ、ローカルメモリ２０３を用いるレンダリング処理プログラム２３４かメインメモリ２０６に直接レンダリングするレンダリング処理プログラム２３５を持つ。
【００３４】
レンダリング用のＡＳＩＣ２０５内のＣＰＵ２０２は、領域抽出結果（バウンディングボックステーブル）２１２に従って（図１の領域判断処理１０４）、ローカルメモリ２０３を用いて、レンダリング処理プログラム２３４を読み込んで各オブジェクトをレンダリング処理するか、レンダリング処理プログラム２３５を読み込んでメインメモリ２０６に直接レンダリング処理する。
【００３５】
これらの処理は、図１における領域判断処理１０４、ローカルメモリを用いないレンダリング１０５、ローカルメモリを用いたレンダリング１０６に対応する。
【００３６】
この際、ＡＳＩＣ２０５内のＣＰＵ２０２は、各オブジェクトをメインメモリ２０６に直接レンダリング処理するレンダリング処理プログラム２３５を実行する場合、メインメモリ２０６内の画像メモリ２１３へ直接レンダリング処理結果を書き出す処理を行う。
【００３７】
また、ＡＳＩＣ２０５内のＣＰＵ２０２は、ローカルメモリ２０３を用いてレンダリング処理プログラム２３４により各オブジェクトをレンダリングする場合、ローカルメモリ２０３へレンダリング処理結果を書き出し、その終了結果をＤＭＡ回路２０４へ通知する。
【００３８】
ＤＭＡ回路２０４は、ＡＳＩＣ２０５内のＣＰＵ２０２からのレンダリング終了通知を受けて、ローカルメモリ２０３のレンダリング処理結果をメインメモリ２０６内の画像メモリ２１３へ書き出す。
【００３９】
また、ＤＭＡ回路２０４は、転送に必要な情報を領域抽出結果（バウンディングボックステーブル）２１２から取り出す機能を備え、ＡＳＩＣ２０５内のＣＰＵ２０２からのレンダリング終了タイミング等の通知を受けてメインメモリ２０６とローカルメモリ２０３間のメモリの転送を行う。
【００４０】
ローカルメモリ２０３とメインメモリ２０６間の転送を行うＤＭＡ回路２０４は、ＣＰＵ２０２と並列動作可能なため、メインメモリ２０６とローカルメモリ２０３間の転送のオーバーヘッドを無くすことが出来る。ＤＭＡ回路２０４はＣＰＵで構成されても良い。
【００４１】
本実施形態において、ＤＭＡ回路２０４はハードウェアであることを意図しているのは、一般にＣＰＵよりハードウェアで構成した方が低価格で構成できるためである。
【００４２】
レンダリング用のＡＳＩＣ２０５によって画像メモリ２１３上に画像形成された結果は、ビデオＩ／Ｆ２２０を通じて表示装置２２１に送られ、ディスプレイ上に表示出力されるか、プリントエンジンにより実際の紙上に印刷出力される。
【００４３】
なお、図２において、全てのプログラムはメインメモリ２０６上に配置される。これはＣＰＵが高速に処理するためにはメインメモリ上に配置することが一般的になっているからであり、あまり速度が要求されない処理ではＲＯＭなどに配置されても良い。
【００４４】
また、より速度をもとめるなら、プログラムをローカルメモリ２０３上に配置するような構成も考えられる。
【００４５】
本実施形態の場合、ローカルメモリ２０３に余裕がれば、レンダリング処理プログラム２３３は、ローカルメモリ２０３上に配置されても良い。
【００４６】
以下、図３を用いて、ＤＭＡがＣＰＵと並列に動作することによりローカルメモリとメインメモリ間のオーバーヘッドをなくす動作について説明する。
【００４７】
図３は、本実施形態を示す画像処理装置におけるローカルメモリとメインメモリとのやり取りを説明する図である。なお、メインメモリ３０７は、図２に示すメインメモリ２０６に対応し、ローカルメモリ３０２は、図２に示すローカルメモリ２０３に対応する。
【００４８】
図３に示すように、本実施形態では、単純にはローカルメモリ３０２は３つの領域（１）〜（３）に分ける。
【００４９】
領域（１）はオブジェクトをレンダリング処理中の領域３０３であり、領域（２）はオブジェクトをレンダリング処理済みでローカルメモリ３０２からメインメモリ３０７への転送中の領域３０４であり、領域（３）は次にオブジェクトをレンダリング処理する領域でメインメモリ３０７からローカルメモリ３０２へ転送中の領域３０５である。
【００５０】
ＣＰＵ３０１が１つのオブジェクトをレンダリング処理中のローカルメモリ３０２へレンダリング処理しているのと並列して、マルチチャネルを持ったＤＭＡ３０６を用いて、メインメモリ３０７とローカルメモリ３０２間のメモリ転送を行う。
【００５１】
上記並列処理によりメインメモリ３０７とローカルメモリ３０２間の転送時間を隠蔽できる。
【００５２】
以下、図４を用いて、ローカルメモリ３０２を用いた方が効率が良いオブジェクトと、ローカルメモリ３０２を用いなくても良いオブジェクトの例について説明する。
【００５３】
図４は、本実施形態を示す画像処理装置におけるオブジェクト処理状態を説明する模式図である。
【００５４】
図４において、４０１、４０２、４０３はオブジェクトで、ローカルメモリ３０２を用いた方が効率が良いオブジェクトである。オブジェクト４０１、４０２、４０３は縦に線を引くオブジェクトで、縦方向にアドレスが移動すると、メモリアドレスが飛ぶことになりキャッシュ効率が低下してしまう。
【００５５】
そこで、レンダリング用のＡＳＩＣ内のＣＰＵ３０１は、メインメモリ３０７上の領域４０４、４０５、４０６を切り出し、ローカルメモリ３０２上に読み込む。
【００５６】
そして、レンダリング用のＡＳＩＣ内のＣＰＵ３０１は、読み込んだローカルメモリ３０２上にレンダリング処理を行い、レンダリング結果をレンダリング用のＡＳＩＣ内のローカルメモリ３０２からメインメモリ３０７に書き出すことにより、レンダリング処理を効率よく行うことが可能になる。
【００５７】
一方、図４に示すオブジェクト４１０に示すように、横幅が広いオブジェクトの場合は、連続的なメモリアドレスにレンダリング処理することになり、メモリアドレスが飛ぶことなくキャッシュ効率は高いという特性を示す。
【００５８】
よって、ローカルメモリ３０２を用いた方が良いオブジェクトはレンダリング範囲が小さいオブジェクトであり、ローカルメモリ３０２を用いなくても効率良いオブジェクトとはレンダリング範囲が狭いオブジェクトと定義できる。
【００５９】
以下、図５Ａ、図５Ｂを利用してローカルメモリを用いた方が良いオブジェクトを１つに纏めることによる、さらなる画像処理の高速化について説明する。
【００６０】
図５Ａは、本実施形態を示す画像処理装置における画像処理状態を説明する図である。以下、レンダリング結果５０７とバウンディングボックステーブル５０２と、ディスプレイリスト５０１との対応を説明する。
【００６１】
図５Ａに示すように、ディスプレイリスト５０１のようにローカルメモリを用いてレンダリング処理した方が良いオブジェクトが複数存在する。本実施形態では、ローカルメモリを用いてレンダリング処理した方が良いオブジェクトの例として、音符の例を示す。ここで、音符とは、縦棒が音の長さや音の高さ、及びその組み合わせで決定されるオブジェクトであり、上記レンダリング範囲が狭いオブジェクトに該当する。
【００６２】
また、図５Ａに示すディスプレイリスト５０１上のオブジェクトに対するレンダリング結果は、レンダリング結果５０７の様にある領域に固まってレンダリングされる。この場合には、１つ１つのオブジェクトごとに、図３に示すローカルメモリ３０２とメインメモリ３０７間の転送を行うのではなく、複数のオブジェクトをまとめた領域５０６をＤＭＡ転送回路にて転送してレンダリング処理した方が効率的に優れている。
【００６３】
このため、図１に示す領域抽出処理１０３では、図２のＣＰＵ２０１上で動作し、ディスプレイリスト５０１を検索し、複数のオブジェクトをまとめたバウンディングボックステーブル５０２を生成する。
【００６４】
バウンディング用のローカルメモリ３０２には、複数のオブジェクトを含む外接矩形の位置と幅高（バウンディングボックス）を規定する矩形情報５０３を記述し、さらにディスプレイリストの開始位置５０４、ディスプレイリストの終了位置５０５が記述される。
【００６５】
図１に示したローカルメモリを用いるレンダリング１０６は、図２に示したレンダリング用のＡＳＩＣ２０５内のＣＰＵ２０２上で動作する。ここで、ＣＰＵ２０２は、開始位置５０４に示されるオブジェクトのレンダリング処理を開始する際に、バウンディングボックステーブル５０２を図２のＤＭＡ回路２０４を用いてメインメモリ２０６からローカルメモリ２０３に転送する。
【００６６】
その後、ＣＰＵ２０２は、ローカルメモリ２０３を用いるレンダリング１０６は終了位置５０５に示されるオブジェクトまでローカルメモリ２０３上にレンダリング処理する。
【００６７】
上記のように複数のオブジェクトをレンダリング処理している間に、ローカルメモリとメインメモリ間の転送は実施しないことにより、転送時間が短縮されより効率の良いレンダリング処理が実現できる。
【００６８】
図５Ｂは、本実施形態を示す画像処理装置における第１のデータ処理手順の一例を示すフローチャートである。本例は、領域抽出処理が行うローカルメモリを用いて処理すべきオブジェクトの抽出処理と、オブジェクトを結合したバウンディングボックスの生成処理を含む基本の処理例である。なお、Ｓ５１０〜Ｓ５１６は各ステップを示す。また、各ステップは、図１の領域抽出処理１０３で行われる処理であり、図２のＣＰＵ２０１が図２の領域抽出処理プログラム２３２をＲＡＭにロードして実行することで実現される。
【００６９】
まず、Ｓ５１０で、ＣＰＵ２０１がディスプレイリスト５０１にオブジェクトが含まれているかどうかを判断する。ここで、ＣＰＵ２０１がディスプレイリスト５０１にオブジェクトが含まれていないと判断した場合は、Ｓ５１３へ進む。
【００７０】
一方、Ｓ５１０で、ＣＰＵ２０１がディスプレイリスト５０１にオブジェクトが含まれていると判断した場合は、Ｓ５１１へ進む。そして、Ｓ５１１で、全てのオブジェクトに対して、オブジェクトサイズとローカルメモリ２０３のサイズとを比較して、全てのオブジェクトがローカルメモリ２０３のサイズよりも大きいと判断した場合は、Ｓ５１０へ戻る。この場合は、オブジェクトサイズがローカルメモリサイズより大きい場合はローカルメモリを用いないでメインメモリに直接レンダリング処理するためリストには追加しない。
【００７１】
一方、Ｓ５１１で、全てのオブジェクトがローカルメモリ２０３のサイズよりも大きくないとＣＰＵ２０１が判断した場合は、Ｓ５１２へ進む。ここでは、オブジェクトサイズがローカルメモリサイズより小さいので、Ｓ５１２で、ローカルメモリ２０３を用いてレンダリング処理を行う処理内で一時的に用いるリストに追加する。
【００７２】
上記Ｓ５１０〜Ｓ５１２の処理が実行されることによって、ディスプレイリスト５０１に含まれるローカルメモリ２０３を用いてレンダリング処理すべきオブジェクトがＳ５１２で作成するリストに全て記憶される。なお、上記Ｓ５１０〜Ｓ５１２により、第２のメモリとして機能するローカルメモリ２０３の容量の範囲内で展開可能なオブジェクトを抽出することができる。
【００７３】
次に、Ｓ５１３以降において、ＣＰＵ２０１は、Ｓ５１２で作成したリスト内のオブジェクト全てに対して結合処理およびバウンディングボックス生成処理を行う。
【００７４】
まず、Ｓ５１３で、ＣＰＵ２０１は、Ｓ５１２で作成したリスト内にオブジェクトが記憶されているかどうかを判断する。ここで、上記リストにオブジェクトが記憶されていないとＣＰＵ２０１が判断した場合は、本処理を終了する。
【００７５】
一方、Ｓ５１３で、Ｓ５１２で作成したリスト内にオブジェクトが記憶されているとＣＰＵ２０１が判断した場合は、Ｓ５１４へ進む。
【００７６】
そして、Ｓ５１４で、ＣＰＵ２０１は、Ｓ５１２で作成したリスト内で結合可能なオブジェクトを検索し、結合可能なオブジェクトがあるか否かを判断する。ここで、結合可能なオブジェクトがないとＣＰＵ２０１が判断した場合は、Ｓ５１６へ進む。
【００７７】
一方、Ｓ５１４で結合可能なオブジェクトがあるとＣＰＵ２０１が判断した場合は、Ｓ５１５で、ＣＰＵ２０１は、結合後のバウンディングボックスサイズを計算する。そして、Ｓ５１５で、結合後のバウンディングボックスサイズとローカルメモリ２０３のサイズと比較して、バウンディングボックスサイズがローカルメモリ２０３のサイズより大きいかどうかをＣＰＵ２０１が判断する。ここで、バウンディングボックスサイズがローカルメモリ２０３のサイズより大きいとＣＰＵ２０１が判断した場合は、Ｓ５１６で、ＣＰＵ２０１は、その結合は行わずにバウンディングボックステーブルに登録して、Ｓ５１３へ戻る。
【００７８】
一方、Ｓ５１５で、バウンディングボックスサイズがローカルメモリ２０３のサイズより小さいとＣＰＵ２０１が判断した場合は、さらに結合できるオブジェクトが無いかどうかを判断するため、Ｓ５１３〜Ｓ５１５の処理を繰り返す。
【００７９】
なお、Ｓ５１４の処理において、結合可能なオブジェクトが無いとＣＰＵ２０１が判断した場合は、Ｓ５１６において、その時のバウンディングボックス（まったく結合できるオブジェクトが無い場合は１つのオブジェクト）をバウンディングボックステーブルに登録する。
【００８０】
以下、図６を用いて図５Ａ、図５Ｂで説明した複数のオブジェクトを含むバウンディングボックスの効率的な生成手段の一例について説明する。
【００８１】
図６は、本実施形態を示す画像処理装置におけるオブジェクト処理例を説明する図である。
【００８２】
図６において、６０１、６０２、６０３、６０４は、図２に示したローカルメモリ２０３で処理した方が効率が良いオブジェクトである。本例は、音符をオブジェクトとする例である。
【００８３】
６１０〜６１２はオブジェクトを距離が近いものを基準に複数又は単数のオブジェクトにまとめた（結合された）バウンディングボックスの結果であるが、バウンディングボックス６１０、６１１、６１２のように３つのバウンディングボックスが生成されてしまう。
【００８４】
これに対して、バウンディングボックス６２０、６２１の２つのバウンディングボックスにまとめた方がローカルメモリ２０３とメインメモリ２０６間の転送回数が少なく効率が良い。
【００８５】
図７は、本実施形態を示す画像処理装置における第２のデータ処理手順の一例を示すフローチャートである。本例は、図６に示すように、バウンディングボックス数を減らす処理の一例である。なお、Ｓ７０１〜Ｓ７０４は各ステップを示す。
【００８６】
ここで、各ステップは、図１に示した領域抽出処理１０３で行われる処理であり、図２に示したＣＰＵ２０１によって実行される。また、その処理プログラムは図２に示した領域抽出処理プログラム２３２に含まれる。
【００８７】
先ず、Ｓ７０１で、ＣＰＵ２０１は、ローカルメモリ２０３で処理した方が効率が良いオブジェクトをレンダリング位置、つまりオブジェクトの描画座標を基準としてソートする。次に、ＣＰＵ２０１は、第１の結合方法によりオブジェクトを結合する。ここで、第１の結合方法は、特に条件を指定せずレンダリング座標の順番にローカルメモリに収まる範囲（バンディングボックスサイズがローカルメモリより小さい）で結合処理を行う方法である。
【００８８】
次に、Ｓ７０３で、ＣＰＵ２０１は第２の結合方法によりオブジェクトを結合する。ここで、第２の結合方法は、ある距離以上（距離が所定値以上）のオブジェクト同士のみを結合処理する方法である。
【００８９】
そして、Ｓ７０４で、ＣＰＵ２０１は、ソートしたものを２つの違った条件でオブジェクト同士の結合を行い、バウンディングボックス数が少ない方を採用して、本処理を終了する。
【００９０】
以下、図８を用いて図５で説明した複数のオブジェクトを含むバウンディングボックスの効率的な生成手段について、図６に示した構成とは別の例について説明する。
【００９１】
図８は、本実施形態を示す画像処理装置における複数のオブジェクトを含むバウンディングボックスの生成処理を説明する図である。
【００９２】
図８において、８０１、８０２、８０３はローカルメモリで処理した方が良いオブジェクトである。
【００９３】
オブジェクト８０１は比較的レンダリング処理にかかる時間が短く、オブジェクト８０２、８０３はオブジェクト８０１に比べてレンダリング処理にかかる時間が長い。オブジェクト８０１からオブジェクト８０３をレンダリング処理の描画座標が近いものを基準にオブジェクトを結合した場合、オブジェクト８０４のバウンディングボックスのレンダリング処理にかかる時間は、オブジェクト８０５のバウンディングボックスのレンダリング処理にかかる時間に対して短くなる。
【００９４】
本実施形態の場合、レンダリング処理とＤＭＡ回路２０４によるローカルメモリ２０３とメインメモリ２０６の転送は並列化されることにより効率化される。
【００９５】
タイムチャート８１０の場合、レンダリング時間が短いバウンディングボックスがあると、ＤＭＡ転送がレンダリング時間に隠蔽されず待ち８０８が発生してしまうため効率が低い。
【００９６】
これに対してタイムチャート８１１の場合、オブジェクト８０６とオブジェクト８０７のバウンディングボックスのレンダリング時間を等しくし、かつ１つのバウンディングボックスのレンダリング時間をある程度長くする。その場合、待ち８０９が発生しなくなり効率が向上する。
【００９７】
本実施形態のようにローカルメモリ２０３とメインメモリ２０６間の転送を頻繁に行い、レンダリング処理とＤＭＡ処理を並列に処理する構成においては、１つのバウンディングボックスのレンダリング時間を平均化するとともに、レンダリング時間をある程度長くする必要がある。
【００９８】
また、１つのバウンディングボックスのレンダリング時間が小さいものに関しては、待ち時間が発生して非効率になってしまうため、メインメモリに直接レンダリング処理するように判断しても良い。
【００９９】
図８で説明したバウンディングボックスのレンダリング時間平均化する処理について、図９Ｂに示すオブジェクトに対するレンダリング処理について図９Ａを用いて処理フローの一例を説明する。
【０１００】
図９Ａは、本実施形態を示す画像処理装置における第３のデータ処理手順の一例を示すフローチャートである。本例は、図１の領域抽出処理１０３で行われる処理であり、図２のＣＰＵ２０１によって実行される。なお、Ｓ９１０〜Ｓ９１８は各ステップを示す。また、各ステップに示す処理プログラムは図２の領域抽出処理プログラム２３２に含まれる。
【０１０１】
図９Ｂに示すように、概念的にはレンダリング時間にばらつきがあるオブジェクト群９０１を、オブジェクト群９０２のようにレンダリング時間が短い順番にソートし、時間が短いオブジェクトから結合しバウンディングボックスにまとめていけば良い。
【０１０２】
まず、Ｓ９１０で、ＣＰＵ２０１はレンダリング時間が短い順番にオブジェクト群９０１をソートする。次に、Ｓ９１１で、ＣＰＵ２０１は、平均化したときのバウンディングボックス１つにレンダリングにかかる目標時間を設定する。ここで、目標時間を設定しておくのは、目標時間より小さすぎるバウンディングボックスは直接メインメモリにレンダリング処理するのと、逆に目標時間より結合したバウンディングボックスのレンダリング時間が１つだけ突出して大きくなると逆に効率が下がるためである。
【０１０３】
ここでいうオブジェクトは、ローカルメモリ２０３を用いてレンダリング処理した方が高速に処理できると判断されたオブジェクトだけで良い。
【０１０４】
次に、Ｓ９１２で、処理方法が確定していないオブジェクトがあるか否かをＣＰＵ２０１が判断する。ここで、処理方法が確定していないとは、全てのオブジェクトに対して、バウンディングボックス結合の判断が行われていない状態、ローカルメモリ２０３を用いてレンダリング処理するかローカルメモリ２０３を使わずに処理する等が決定されていない状態である。詳細には、Ｓ９１３〜Ｓ９１５の処理が完了している場合に、処理方法が確定していると判断する。
【０１０５】
Ｓ９１２で確定してないオブジェクトがあると判断した場合は、Ｓ９１３で、レンダリング時間が短いオブジェクトから結合処理を行うが、ローカルメモリ２０３の容量の制限から結合できない場合があるので、結合可能なオブジェクトの有無をＣＰＵ２０１が判断する。ここで、結合可能であるとＣＰＵ２０１が判断した場合はＳ９１４で、結合後のバンディングボックスのレンダリング時間をＣＰＵ２０１が算出する。
【０１０６】
そして、Ｓ９１５で、Ｓ９１４において算出したバウンディングボックスのレンダリング時間（展開時間）が、Ｓ９１１で設定した目標時間より短いかどうかをＣＰＵ２０１が判別する。ここで、バウンディングボックスのレンダリング時間が設定した目標時間より短いとＣＰＵ２０１が判断した場合は、Ｓ９１２へ戻り、更に結合できるオブジェクトが無いか判断する。
【０１０７】
一方、Ｓ９１５で、Ｓ９１４において算出したバウンディングボックスのレンダリング時間が、Ｓ９１１で設定した目標時間より長いとＣＰＵ２０１が判別した場合には、Ｓ９１６へ進む。そして、Ｓ９１６で、そのバンディングボックスを確定し、バウンディングボックステーブルを作成して、Ｓ９１２へ戻る。なお、Ｓ９１２で、オブジェクトがないと判断した場合は、本処理を終了する。
【０１０８】
一方、Ｓ９１３で結合可能なオブジェクトが無いとＣＰＵ２０１が判断した場合は、Ｓ９１７で、オブジェクトのレンダリング時間がＳ９１１において設定した目標時間よりも長いかどうかをＣＰＵ２０１が判別する。ここで、オブジェクトのレンダリング時間がＳ９１１において設定した目標時間よりも長いとＣＰＵ２０１が判別した場合は、Ｓ９１６へ進む。なお、Ｓ９１７で目標時間と比較するのはオブジェクト単体のレンダリング時間が目標時間より長い場合があるためである。ここで、長いとＣＰＵ２０１が判別した場合は、Ｓ９１６で、オブジェクト１つでバウンディングボックスとして確定する
一方、Ｓ９１７で設定した目標時間よりも短いとＣＰＵ２０１が判別した場合は、Ｓ９１８へ進む。ここでは、単体のオブジェクトまたは結合してはバウンディングボックスのレンダリングが目標時間に達していないので、ローカルメモリ２０３を使用せずにメインメモリ２０６に直接レンダリング処理を行うようにする。具体的には、ＣＰＵ２０１がオブジェクト、バウンディングボックスを破棄し、直接メインメモリ２０６に描画する。
【０１０９】
なお、Ｓ９１３からＳ９１７の処理に進む場合とは、オブジェクトと結合したがそのバウンディングボックスのレンダリング時間が目標時間に達しなかった場合か、まったく結合可能なオブジェクトがなかった単体のオブジェクトの場合である。
【０１１０】
また、図８、図９Ａ，図９Ｂで説明したバウンディングボックスのレンダリング時間の平均化処理において、オブジェクトのレンダリング座標がランダムで結合できない場合がある。その場合は図１０に示すようにローカルメモリ２０３より大きいバウンディングボックスを生成してから、縦に分割する手段もある。
【０１１１】
図１０は、本実施形態を示す画像処理装置におけるバウンディングボックス処理を説明する模式図である。
【０１１２】
図１０に示すように、オブジェクトＯＪ１〜ＯＪ７のレンダリング座標がランダムで結合できない場合は、ランダムなレンダリング位置に配置された複数のオブジェクト１００１を、１つの大きなバウンディングボックス１００２に結合する。
【０１１３】
そして、結合したバウンディングボックス１００２を縦方向で分割してローカルメモリ２０３のサイズに収まる複数のバウンディングボックス群１００３に分割する。なお、複数のバウンディングボックス群１００３は、バウンディングボックス１００３−１〜１００３−Ｎで構成される。またＮはバウンディングボックス１００２のサイズにより決定される。
【０１１４】
〔第２実施形態〕
本実施形態では、高機能なＤＭＡ回路を搭載した場合に、小容量なローカルメモリをさらに高速に利用する例について説明する。
【０１１５】
なお、以下、図１１、図１２、図１３に示す処理は、全て図２に示したレンダリング用のＡＳＩＣ２０５で実行される処理である。
【０１１６】
図１１〜図１３は、本実施形態を示す画像処理装置における描画処理を説明する模式図である。本例では、ＤＭＡ回路２０４に回転機能が搭載されている場合の描画例を示している。
【０１１７】
図１１において、（Ａ）は最終的にレンダリング処理したい結果を示しており、縦長の罫線をレンダリングする例であるが、（Ｂ）に示すようにのようなアドレス１１０１のジャンプが発生しやすくメモリアクセス効率が低い。
【０１１８】
特に従来例のようにバンドでローカルメモリ２０３を使用するような構成では、（Ｂ）に示すアドレスのジャンプは大きくなる。
【０１１９】
（Ｃ）はＤＭＡ回路２０４に回転機能が搭載されている場合の描画処理例を示している。
【０１２０】
このような回転機能が搭載されている場合、ＤＭＡ回路２０４は、縦長の罫線であっても、横長の状態でローカルメモリ１１０２内ではレンダリング処理を行い、ＤＭＡ回路２０４によってローカルメモリ２０３からメインメモリ２０６の転送時に回転することによってレンダリング処理をより高速にできる。
【０１２１】
図１２はＤＭＡ回路２０４に論理演算処理を搭載した例である。
【０１２２】
図１２において、１２１０は、図２に示したＤＭＡ回路２０４に単純な転送機能しか持たない例であるが、その場合、メインメモリ２０６上の領域１２０１（「Ａ」の文字の一部）をメインメモリ２０６からローカルメモリ２０３に転送する。これにより、ローカルメモリ２０３の内部は、状態１２０２になる。
【０１２３】
そして、ローカルメモリ２０３にＯＲ演算処理で「Ｂ」の文字をレンダリング処理し、ローカルメモリ２０３を状態１２０２から状態１２０３にし、ローカルメモリ２０３をメインメモリ２０６に書き戻す。
【０１２４】
以上のようにＤＭＡ回路に単純な機能しか持たない場合、メインメモリから読み込み用の転送と書き込み用の転送を行う必要がある。
【０１２５】
１２１１はＤＭＡ回路に論理演算機能を搭載した例である。
【０１２６】
ＤＭＡ回路２０４に論理演算処理機能を持つ場合、ローカルメモリ２０３に「Ｂ」の文字をレンダリング処理し、状態１２１１にする。そして、ＤＭＡ回路２０４はＯＲ処理をしながら、メインメモリ２０６に転送する。
【０１２７】
このように、ＤＭＡ回路２０４に論理演算機能を持つ場合は、メインメモリ２０６からローカルメモリ２０３への読み込みがなくなり、転送時間を省略することが出来るようになり、より効率的なローカルメモリ２０３の利用が出来るようになる。
【０１２８】
本処理は論理演算処理の様に、レンダリング先の下地を意識するようなレンダリング処理方法（例えばαブレンド（半透明合成））に一応に適用することができる。ここで、αブレンドとは、二つの画像を係数（アルファ値）を使って半透明合成することである。また、アルファ値は画像とは独立に指定することもあるが、画像の各画素にアルファ値の情報を持たせてそれを利用することによって画素ごとの半透明合成も行うことができる。
【０１２９】
図１３はＤＭＡ回路２０４に論理演算処理機能と拡大処理機能を搭載した例である。
【０１３０】
ローカルメモリ２０３には「Ａ」を拡大前の状態１３０２でレンダリング処理しておき、ＤＭＡ回路２０４を用いて論理演算処理と拡大処理を行いながらメインメモリ２０６に転送して、状態１３０１とする。
【０１３１】
一般的に記録媒体に最終的に画像形成する画像処理装置はホストコンピュータなどに比べて、内部で生成する画像データの解像度が高い。
【０１３２】
そのため、ホストコンピュータから送られてきたオブジェクトは拡大してレンダリング処理することが多い。
【０１３３】
ＤＭＡ回路２０４に拡大処理機能が搭載されていれば、メインメモリ２０６にレンダリング処理するサイズは、ローカルメモリ２０３に入らないようなオブジェクトであっても、ローカルメモリ２０３で処理することが出来るようになり効率的な処理ができる。
【０１３４】
以下、図１４に示すメモリマップを参照して本発明に係る画像処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０１３５】
図１４は、本発明に係る画像処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０１３６】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１３７】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１３８】
本実施形態における図５Ｂ、図７、図９Ａに示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１３９】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１４０】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１４１】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１４２】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１４３】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１４４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０１４５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１４６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４８】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【０１４９】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【０１５０】
【図１】本実施形態を示す画像処理装置におけるデータ処理例を示すブロック図である。
【図２】本実施形態を示す画像処理装置の構成を説明するブロック図である。
【図３】本実施形態を示す画像処理装置におけるローカルメモリとメインメモリとのやり取りを説明する図である。
【図４】本実施形態を示す画像処理装置におけるオブジェクト処理状態を説明する模式図である。
【図５Ａ】本実施形態を示す画像処理装置における画像処理状態を説明する図である。
【図５Ｂ】本実施形態を示す画像処理装置における第１のデータ処理手順の一例を示すフローチャートである。
【図６】本実施形態を示す画像処理装置におけるオブジェクト処理例を説明する図である。
【図７】本実施形態を示す画像処理装置における第２のデータ処理手順の一例を示すフローチャートである。
【図８】本実施形態を示す画像処理装置における複数のオブジェクトを含むバウンディングボックスの生成処理を説明する図である。
【図９Ａ】本実施形態を示す画像処理装置における第３のデータ処理手順の一例を示すフローチャートである。
【図９Ｂ】本実施形態を示す画像処理装置における複数のオブジェクトを結合する処理を説明する図である。
【図１０】本実施形態を示す画像処理装置におけるバウンディングボックス処理を説明する模式図である。
【図１１】本実施形態を示す画像処理装置における描画処理を説明する模式図である。
【図１２】本実施形態を示す画像処理装置における描画処理を説明する模式図である。
【図１３】本実施形態を示す画像処理装置における描画処理を説明する模式図である。
【図１４】本発明に係る画像処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【０１５１】
２０１、２０２  ＣＰＵ
２０６  メインメモリ
２０３  ローカルメモリ
２０４  ＤＭＡ回路
【図１】
0005279332.tif 000002
【図２】
0005279332.tif 000003
【図３】
0005279332.tif 000004
【図４】
0005279332.tif 000005
【図５Ａ】
0005279332.tif 000006
【図５Ｂ】
0005279332.tif 000007
【図６】
0005279332.tif 000008
【図７】
0005279332.tif 000009
【図８】
0005279332.tif 000010
【図９Ａ】
0005279332.tif 000011
【図９Ｂ】
0005279332.tif 000012
【図１０】
0005279332.tif 000013
【図１１】
0005279332.tif 000014
【図１２】
0005279332.tif 000015
【図１３】
0005279332.tif 000016
【図１４】
0005279332.tif 000017