(57)【要約】【課題】αブレンドによるレイヤ合成処理をより高速に行うことができる画像処理装置、画像処理方法、画像処理プログラム、およびそのプログラムを記録した記録媒体を提供すること。【解決手段】合成対象とするレイヤ画像の画素に順次注目し、注目を受けた注目画素についての演算入力条件と同一の演算入力条件が登録メモリ２４０に登録されているか否かを判断する演算入力条件判断部２３７と、同一の演算入力条件が登録されていないと判断された注目画素について、演算入力条件からαブレンドを演算し、αブレンドの演算結果をページメモリ２３６に反映する第１αブレンド処理部２３８と、同一の演算入力条件が登録されていると判断された注目画素について、同一の演算入力条件に対応するαブレンドの演算結果を登録メモリ２４０から読み出し、ページメモリ２３６に反映する第２αブレンド処理部２３９とを備える。【選択図】図３
2009005215.tif 000002
【特許請求の範囲】
【請求項１】
各々が多数の画素により表される複数のレイヤ画像を画像メモリ上に順次重ね合わせて、前記複数のレイヤ画像が合成された合成画像を生成する画像処理装置であって、
αブレンドを演算するための演算入力条件、およびαブレンドの演算結果を対応付けて記憶する登録メモリと、
重ね合わせの対象とする前記レイヤ画像の画素に順次注目し、
前記登録メモリを参照して、注目を受けた注目画素についての演算入力条件と同一の演算入力条件が登録されているか否かを判断する判断手段と、
前記同一の演算入力条件が登録されていないと判断された注目画素について、前記注目画素についての演算入力条件からαブレンドを演算し、αブレンドの演算結果を前記画像メモリに反映する第１のαブレンド手段と、
前記同一の演算入力条件が登録されていると判断された注目画素について、前記同一の演算入力条件に対応するαブレンドの演算結果を前記登録メモリから読み出し、前記画像メモリに反映する第２のαブレンド手段とを備えることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記第１のαブレンド手段は、αブレンドを演算した後、演算したαブレンドについての前記演算入力条件および前記演算結果を前記登録メモリに登録することを特徴とする画像処理装置。
【請求項３】
請求項１または２に記載の画像処理装置において、
前記判断手段は、前記登録された演算入力条件のうち前記注目画素に隣り合う画素に対応する演算入力条件を参照して、前記注目画素におけるαブレンドの演算入力条件と同一の演算入力条件が登録されているか否かを判断することを特徴とする画像処理装置。
【請求項４】
請求項１ないし３のいずれか一項に記載の画像処理装置において、
所定の言語により複数のレイヤを記述した入力データの入力を受ける入力手段と、
前記入力データを解釈して、前記複数のレイヤの各々についての描画命令を取得する描画命令取得手段と、
前記取得した描画命令に基づいて描画することにより、各々が多数の画素により表される前記複数のレイヤ画像を生成するレイヤ画像生成手段とをさらに備えることを特徴とする画像処理装置。
【請求項５】
各々が多数の画素により表される複数のレイヤ画像を画像メモリ上に順次重ね合わせて、前記複数のレイヤ画像が合成された合成画像を生成する画像処理方法であって、
重ね合わせの対象とする前記レイヤ画像の画素に順次注目し、
αブレンドを演算するための演算入力条件、およびαブレンドの演算結果を対応付けて記憶する登録メモリを参照して、注目を受けた注目画素についての演算入力条件と同一の演算入力条件が登録されているか否かを判断するステップと、
前記同一の演算入力条件が登録されていないと判断された注目画素について、前記注目画素についての演算入力条件からαブレンドを演算し、αブレンドの演算結果を前記画像メモリに反映するステップと、
前記同一の演算入力条件が登録されていると判断された注目画素について、前記同一の演算入力条件に対応するαブレンドの演算結果を前記登録メモリから読み出し、前記画像メモリに反映するステップとを備えることを特徴とする画像処理方法。
【請求項６】
各々が多数の画素により表される複数のレイヤ画像を画像メモリ上に順次重ね合わせて、前記複数のレイヤ画像が合成された合成画像を生成するための画像処理プログラムであって、
コンピュータを、
重ね合わせの対象とする前記レイヤ画像の画素に順次注目し、
αブレンドを演算するための演算入力条件、およびαブレンドの演算結果を対応付けて記憶する登録メモリを参照して、注目を受けた注目画素についての演算入力条件と同一の演算入力条件が登録されているか否かを判断する判断手段、
前記同一の演算入力条件が登録されていないと判断された注目画素について、前記注目画素についての演算入力条件からαブレンドを演算し、αブレンドの演算結果を前記画像メモリに反映する第１のαブレンド手段、
前記同一の演算入力条件が登録されていると判断された注目画素について、前記同一の演算入力条件に対応するαブレンドの演算結果を前記登録メモリから読み出し、前記画像メモリに反映する第２のαブレンド手段、として機能させることを特徴とする画像処理プログラム。
【請求項７】
請求項６に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
複数のレイヤ画像を合成する画像処理装置、画像処理方法、画像処理プログラム、およびそのプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
近年発売されたオペレーションシステム「Windows Vista（登録商標）」においては、ＸＭＬ（Extensible Markup Language）ベースの言語で記述されるＸＰＳドキュメントの形式で、ドキュメントの生成、共有、印刷、アーカイブなどの処理を行うようになっている（非特許文献１参照）。例えば、印刷を行う場合、プリンタドライバには、印刷の対象とする内容をＸＭＬで記述したＸＰＳドキュメントが出力される。プリンタドライバは、ＸＰＳドキュメントに記述されたＸＭＬのコードを解釈して、描画などの画像処理を行うことにより印刷画像を生成し、印刷画像に基づいて印刷を制御する。
【０００３】
ここで、ＸＰＳドキュメントでは、複数のレイヤを上層から下層に重ね合わせるようにして画像を表現するレイヤ機能がサポートされている。複数のレイヤを合成する際、プリンタドライバは、各レイヤをビットマップ形式のレイヤ画像に展開してから複数のレイヤ画像をαブレンドを用いて重ね合わせるようにして、印刷画像を合成する（例えば、特許文献１参照）。レイヤの合成にαブレンドを用いることにより、合成される画像に半透過などの効果を与え、表現豊かな画像を印刷することが可能になる。
【０００４】
【特許文献１】特開２００７−０６７８６５号公報
【非特許文献１】“ＸＰＳ仕様書（XPS Paper Specification）”、マイクロソフト社、［online］、インターネット<URL:http://www.microsoft.com/japan/whdc/xps/xpsspec.mspx>
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ビットマップ形式のレイヤ画像をαブレンドを用いて合成する場合、レイヤ画像を構成する各画素に対してαブレンドの演算を行うことになるので、演算量が膨大になり、レイヤ合成に要する処理時間が長くなってしまうという課題があった。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも１つを解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
【０００７】
［適用例１］各々が多数の画素により表される複数のレイヤ画像を画像メモリ上に順次重ね合わせて、前記複数のレイヤ画像が合成された合成画像を生成する画像処理装置であって、αブレンドを演算するための演算入力条件、およびαブレンドの演算結果を対応付けて記憶する登録メモリと、重ね合わせの対象とする前記レイヤ画像の画素に順次注目し、前記登録メモリを参照して、注目を受けた注目画素についての演算入力条件と同一の演算入力条件が登録されているか否かを判断する判断手段と、前記同一の演算入力条件が登録されていないと判断された注目画素について、前記注目画素についての演算入力条件からαブレンドを演算し、αブレンドの演算結果を前記画像メモリに反映する第１のαブレンド手段と、前記同一の演算入力条件が登録されていると判断された注目画素について、前記同一の演算入力条件に対応するαブレンドの演算結果を前記登録メモリから読み出し、前記画像メモリに反映する第２のαブレンド手段とを備えることを特徴とする画像処理装置。
【０００８】
この構成によれば、レイヤ画像を構成する画素のうち、同一の演算入力条件が登録されている画素については、登録された演算結果を画像メモリに反映させるようにして、αブレンドを演算することなくレイヤ画像が合成されるので、αブレンドに要する演算量が低減する。したがって、複数のレイヤ画像を合成して合成画像を生成する処理を高速に行うことができるようになる。
【０００９】
［適用例２］上記画像処理装置において、前記第１のαブレンド手段は、αブレンドを演算した後、演算したαブレンドについての前記演算入力条件および前記演算結果を前記登録メモリに登録することを特徴とする画像処理装置。
【００１０】
この構成によれば、同一の演算入力条件が登録されていない画素についてαブレンドが演算され、演算したαブレンドの演算入力条件および演算結果が登録メモリに新たに登録されるので、以降の処理において、αブレンドを演算することなく登録メモリから演算結果が読み出される確率が高まる。したがって、処理のさらなる高速化を図ることができる。
【００１１】
［適用例３］上記画像処理装置において、前記判断手段は、前記登録された演算入力条件のうち前記注目画素に隣り合う画素に対応する演算入力条件を参照して、前記注目画素におけるαブレンドの演算入力条件と同一の演算入力条件が登録されているか否かを判断することを特徴とする画像処理装置。
【００１２】
この構成によれば、注目画素に隣り合う画素に対応する演算入力条件を参照して判断を行うことにより、登録された演算入力条件のうち参照する条件数が限られるので、判断に要する処理量が低減する。したがって、処理のさらなる高速化を図ることができる。また、注目画素に対して、隣り合う画素は他の画素に比べて演算入力条件が同一である可能性が高いので、注目画素に隣り合う画素に対応する演算入力条件を参照したことにより、注目画素と同一の演算入力条件を効率良く判断することができる。
【００１３】
［適用例４］上記画像処理装置において、所定の言語により複数のレイヤを記述した入力データの入力を受ける入力手段と、前記入力データを解釈して、前記複数のレイヤの各々についての描画命令を取得する描画命令取得手段と、前記取得した描画命令に基づいて描画することにより、各々が多数の画素により表される前記複数のレイヤ画像を生成するレイヤ画像生成手段とをさらに備えることを特徴とする画像処理装置。
【００１４】
この構成によれば、入力データに記述された複数のレイヤから合成画像を生成する処理を高速に行うことができる。
【００１５】
［適用例５］各々が多数の画素により表される複数のレイヤ画像を画像メモリ上に順次重ね合わせて、前記複数のレイヤ画像が合成された合成画像を生成する画像処理方法であって、重ね合わせの対象とする前記レイヤ画像の画素に順次注目し、αブレンドを演算するための演算入力条件、およびαブレンドの演算結果を対応付けて記憶する登録メモリを参照して、注目を受けた注目画素についての演算入力条件と同一の演算入力条件が登録されているか否かを判断するステップと、前記同一の演算入力条件が登録されていないと判断された注目画素について、前記注目画素についての演算入力条件からαブレンドを演算し、αブレンドの演算結果を前記画像メモリに反映するステップと、前記同一の演算入力条件が登録されていると判断された注目画素について、前記同一の演算入力条件に対応するαブレンドの演算結果を前記登録メモリから読み出し、前記画像メモリに反映するステップとを備えることを特徴とする画像処理方法。
【００１６】
［適用例６］各々が多数の画素により表される複数のレイヤ画像を画像メモリ上に順次重ね合わせて、前記複数のレイヤ画像が合成された合成画像を生成するための画像処理プログラムであって、コンピュータを、重ね合わせの対象とする前記レイヤ画像の画素に順次注目し、αブレンドを演算するための演算入力条件、およびαブレンドの演算結果を対応付けて記憶する登録メモリを参照して、注目を受けた注目画素についての演算入力条件と同一の演算入力条件が登録されているか否かを判断する判断手段、前記同一の演算入力条件が登録されていないと判断された注目画素について、前記注目画素についての演算入力条件からαブレンドを演算し、αブレンドの演算結果を前記画像メモリに反映する第１のαブレンド手段、前記同一の演算入力条件が登録されていると判断された注目画素について、前記同一の演算入力条件に対応するαブレンドの演算結果を前記登録メモリから読み出し、前記画像メモリに反映する第２のαブレンド手段、として機能させることを特徴とする画像処理プログラム。
【００１７】
［適用例７］上記画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明を実施するための最良の形態】
【００１８】
（第１の実施例）
以下、本発明の実施の形態に係る第１の実施例について図面を参照して説明する。
【００１９】
図１は、第１の実施例に係る印刷システムの構成を示した図である。図１に示すように、印刷システム１は、ホストコンピュータ（画像処理装置）２およびプリンタ３を備えている。
【００２０】
ホストコンピュータ２は、例えば、汎用のパーソナルコンピュータである。ホストコンピュータ２は、図１に示すように、ＣＰＵ２０と、ＲＯＭ２１と、ＲＡＭ２２と、ハードディスク（以下、「ＨＤ」という）２３と、ＣＤ−ＲＯＭドライブ２４と、通信インターフェイス（以下、「通信Ｉ／Ｆ」という）２５とを備えている。通信Ｉ／Ｆ２５はケーブルを介してプリンタ３と相互にデータ通信可能に接続されている。
【００２１】
ＣＰＵ２０は、ホストコンピュータ２の主制御装置であり、ホストコンピュータ２の各構成の制御を司る。ＲＯＭ２１はホストコンピュータ２の各構成を制御するためのプログラムなどが記録された不揮発性のメモリである。ＲＡＭ２２はワーキングメモリなどとして用いられる汎用のメモリであり、ＲＡＭ２２のメモリ領域には、後述するレイヤ画像メモリ、中間コードメモリ、ページメモリおよび登録メモリが確保される。
【００２２】
ＨＤ２３は、アプリケーションプログラムやドライバプログラム（画像処理プログラム）などを予め記録している。このドライバプログラムは、ＣＤ−ＲＯＭ４などの記録媒体に記録された形態で供給され、ＣＤ−ＲＯＭドライブ２４がＣＤ−ＲＯＭ４からプログラムを読み出し、読み出したプログラムをＣＰＵ２０がＨＤ２３に記録したものである。なお、ドライバプログラムを記録した記録媒体の例としては、ＣＤ−ＲＯＭに限られることなく、フレキシブルディスクや、ＤＶＤ−ＲＯＭなどの光ディスク、ＭＯなどの光磁気ディスク、メモリカードなど、コンピュータ読み取り可能な種々の媒体が挙げられる。もっとも、電気通信回線を介して外部のサーバからドライバプログラムをダウンロードして、ＨＤ２３に記録するようにしてもよい。
【００２３】
図２は、ホストコンピュータの機能構成を示したブロック図である。図２に示すように、ホストコンピュータ２は、アプリケーション１００とプリンタドライバ２００とを有する。
【００２４】
アプリケーション１００は、プリンタ３に対する印刷要求元であり、例えば、文書作成ソフトウェアや表計算ソフトウェアである。アプリケーション１００は、オペレーションシステムの下で、印刷内容をＸＭＬで記述したＸＭＬドキュメント（入力データ）をプリンタドライバ２００に受け渡す。ＸＭＬドキュメントの具体例としては、ＸＰＳドキュメントなどが挙げられる。
【００２５】
プリンタドライバ２００は、アプリケーション１００からＸＭＬドキュメントを受け取ると、ＸＭＬドキュメントをプリンタ３が処理可能なフォーマットの印刷データに変換し、プリンタ３に出力する。これらの処理を行うため、プリンタドライバ２００は、ドライバ内部の処理を制御する制御部２１０と、ＸＭＬドキュメントをパースするＸＭＬパース部（描画命令取得手段）２２０と、パースして得られた描画命令に基づいてレンダリングを行うレンダリング部２３０とを有している。なお、これらの構成を有するプリンタドライバ２００は、オペレーションシステムの下で、ＣＰＵ２０がＨＤ２３に記録されたドライバプログラムを読み出して実行することにより機能している。
【００２６】
制御部２１０は、アプリケーション１００からＸＭＬドキュメントの入力を受けるドキュメント入力部（入力手段）２１１と、プリンタドライバ２００内のデータ制御を行うデータ制御部２１２と、印刷データをプリンタ３に出力する印刷データ出力部２１３とを有している。データ制御部２１２は、入力されたＸＭＬドキュメントをＸＭＬパース部２２０に受け渡すことによりＸＭＬパース部２２０にパースさせ、パースにより得られた描画命令をレンダリング部２３０に受け渡すことによりレンダリング部２３０にレンダリングを行わせる。印刷データ出力部２１３は、レンダリングにより生成された画像を、印刷データとしてプリンタ３に出力する。これによりプリンタドライバ２００は、印刷データに従う印刷をプリンタ３に行わせるようにして、印刷を制御する。
【００２７】
ここで、レンダリング部２３０は、データ制御部２１２から受け取るパース後の描画命令に基づくレンダリングを行うことより、ＸＭＬドキュメントに記述された複数のレイヤの画像（以下、「レイヤ画像」という）を合成して、合成画像を生成する処理を行う。そのため、レンダリング部２３０は、レイヤ画像展開部（レイヤ画像生成手段）２３１と、レイヤ画像メモリ２３２と、中間コード登録部２３３と、中間コードメモリ２３４と、レイヤ画像合成部２３５と、ページメモリ（画像メモリ）２３６とを有する。
【００２８】
レイヤ画像展開部２３１は、データ制御部２１２から受け取る描画命令に基づいて、図形、テキスト、イメージなどのオブジェクトを描画することにより、レイヤ画像メモリ２３２にビットマップ形式のレイヤ画像を展開する。中間コード登録部２３３は、レイヤ画像メモリ２３２に展開されたレイヤ画像を、ドライバにとって処理し易い形式で表す中間コードに変換し、中間コードメモリ２３４に登録する。具合的には、中間コードは、レイヤ画像を所定の高さの領域（バンド）ごとに表すバンド画像の画像データや、バンド画像の各画素についてのα値を示す情報などを含んでいる。
【００２９】
レイヤ画像合成部２３５は、登録された中間コードに基づいてバンド画像をレイアウトしてページメモリ２３６に書き込む処理をバンドごとに順次行って、ページメモリ２３６にレイヤ画像を書き込む。そして、レイヤ画像展開部２３１、中間コード登録部２３３、レイヤ画像合成部２３５が複数のレイヤ画像を順次処理することにより、ページメモリ２３６に複数のレイヤ画像が次々に書き込まれるようにして、ページメモリ２３６のメモリ領域上に複数のレイヤ画像を合成する。
【００３０】
ここで、ページメモリ２３６にレイヤ画像を書き込む際、レイヤ画像合成部２３５は、レイヤ画像を構成する画素ごとに画素値およびα値を用いてαブレンドによる合成処理を行う。そのため、図３に示すように、レイヤ画像合成部２３５は、演算入力条件判断部（判断手段）２３７と、第１αブレンド処理部（第１のαブレンド手段）２３８と、第２αブレンド処理部（第２のαブレンド手段）２３９と、登録メモリ２４０とを有している。なお、以下では、αブレンド演算の入力値である画素値およびα値を「演算入力条件」と呼ぶことにする。
【００３１】
第１αブレンド処理部２３８は、αブレンドの対象とする画素の演算入力条件に基づいてαブレンドを演算して、対象画素に対応するページメモリ２３６の該当アドレスにαブレンドの演算結果を書き込むとともに、演算を行った演算入力条件と演算結果とを対応付けて登録メモリ２４０に登録する処理を行う。一方、第２αブレンド処理部２３９は、αブレンドの対象とする画素の演算入力条件と同一の演算入力条件に対応する演算結果を登録メモリ２４０から読み出し、読み出した演算結果をページメモリ２３６の該当アドレスに書き込む処理を行う。
【００３２】
演算入力条件判断部２３７は、αブレンドの対象とする画素についての演算入力条件を中間コードから取得し、取得した演算入力条件が登録メモリ２４０に登録されているか否かを判断する処理を行う。登録されていないと判断した場合、演算入力条件の情報を第１αブレンド処理部２３８に受け渡し、当該画素については第１αブレンド処理部２３８に処理を行わせる。一方、登録されていると判断した場合、演算入力条件の情報を第２αブレンド処理部２３９に受け渡して、当該画素については第２αブレンド処理部２３９に処理を行わせる。すなわち、登録していないと判断された演算入力条件の画素については、αブレンドが演算されるとともにαブレンドの演算結果が登録メモリ２４０に登録される。登録していると判断された演算入力条件の画素は、登録メモリ２４０に登録されたαブレンドの演算結果を用いて、αブレンドの演算を行うことなくαブレンドの処理が行われる。
【００３３】
次に、プリンタドライバが行う処理の流れについて、図４のフローチャートに従って説明する。なお、図４の処理は、ＣＰＵ２０が、ＨＤ２３に記録されたドライバプログラムを実行することにより行われるものである。
【００３４】
処理を開始して、ドキュメント入力部２１１が、アプリケーション１００からＸＭＬドキュメントの入力を受けると（ステップＳ１００）、ＸＭＬパース部２２０は、入力されたＸＭＬドキュメントをパースして１レイヤ分の描画命令を取得する（ステップＳ１１０）。次に、レイヤ画像展開部２３１は、取得した描画命令に基づいて描画することにより、レイヤ画像メモリ２３２にレイヤ画像を展開する（ステップＳ１２０）。中間コード登録部２３３は、レイヤ画像メモリ２３２から展開されたレイヤ画像を読み出して、レイヤ画像からバンドごとに中間コードを生成し、中間コードメモリ２３４に登録する（ステップＳ１３０）。
【００３５】
次に、レイヤ画像合成部２３５は、登録された中間コードを中間コードメモリ２３４から読み出して、中間コードに基づいてレイヤ合成処理を行う（ステップＳ１４０）。以下、レイヤ合成処理の処理の流れを示した図５のフローチャートに従って、レイヤ合成処理について説明する。
【００３６】
レイヤ合成処理を開始すると、まず、レイヤ画像合成部２３５は、ページメモリ２３６に展開されたレイヤ画像があるか否かを判断する（ステップＳ２００）。ページメモリ２３６に展開されたレイヤ画像がなければ（ステップＳ２００：Ｎｏ）、中間コードに登録されたレイヤ画像をページメモリ２３６に展開する（ステップＳ２１０）。
【００３７】
以上の処理について、処理の具体例を示した図６を用いて説明する。まず、図６（ａ）に示すように、レイヤ画像展開部２３１は、ＸＭＬドキュメントに記述された複数のレイヤのうち最初のレイヤ画像Ｌ１をレイヤ画像メモリ２３２に展開する。ここで、展開されたレイヤ画像Ｌ１のオブジェクトＯＢ１部分には、ＸＭＬドキュメントにおいてオブジェクトごとに指定された色およびα値に基づき画素値およびα値が画素ごとに設定される。
【００３８】
実際には、レイヤ画像の各画素は画素値として赤緑青各色の値をもつが、説明の便宜上、オブジェクトＯＢ１の画素値を１つの値（以下、「カラー値Ｃ」という）で表すものとする。図６の例では、オブジェクトＯＢ１のカラー値Ｃおよびα値は、各画素について（Ｃ，α）＝（５０，０．４）である。そして、中間コード登録部２３３は、レイヤ画像Ｌ１をバンドごとに表す中間コードＭ１を中間コードメモリ２３４に登録する。このとき、ページメモリ２３６はレイヤ画像が未展開であるため、αブレンドを施すことなく、登録された中間コードＭ１に基づいてレイヤ画像Ｌ１がそのままページメモリ２３６に展開される。
【００３９】
こうして、最初のレイヤ画像Ｌ１が展開されると、図４の処理に戻って、レイヤ画像合成部２３５は、ＸＭＬドキュメントに記述された全レイヤについて処理を終了したか否かを判断する（ステップＳ１５０）。全レイヤについて処理を終了していなければ（ステップＳ１５０：Ｎｏ）、ステップＳ１１０に戻って、ＸＭＬドキュメントをさらにパースして記述された順番が次のレイヤについての描画命令を取得して、次のレイヤについてステップＳ１１０〜Ｓ１４０の処理を繰り返す。
【００４０】
２番目のレイヤを合成するときの処理例を図６（ｂ）に示す。図６（ｂ）に示したように、レイヤ画像展開部２３１は、ＸＭＬドキュメントに記述された複数のレイヤのうち２番目のレイヤ画像Ｌ２をレイヤ画像メモリ２３２に展開する。このレイヤ画像Ｌ２におけるオブジェクトＯＢ２のカラー値Ｃおよびα値は、各画素について（Ｃ，α）＝（１００，０．５）である。そして、中間コード登録部２３３は、レイヤ画像Ｌ２をバンドごとに表す中間コードＭ２を中間コードメモリ２３４に登録する。ここで、２番目のレイヤを合成するとき、ページメモリ２３６には既にレイヤ画像Ｌ１が展開されているため、ステップＳ２００においてページメモリ２３６に展開されたレイヤ画像があると判断され（ステップＳ２００：Ｙｅｓ）、ステップＳ２２０に進む。
【００４１】
ステップＳ２２０以降では、新たに重ね合わせの対象とするレイヤ画像とページメモリ２３６に展開された画像とでオブジェクトが重なり合う領域にαブレンドを施す処理を行う。図６（ｂ）の例では、ページメモリ２３６に展開された画像のオブジェクトＯＢ１部分と新たに重ね合わせようとするレイヤ画像Ｌ２におけるオブジェクトＯＢ２部分との重なり領域ＫＡについてαブレンドを求める。なお、重なり領域ＫＡを除く領域については、重ね合わせようとするレイヤ画像の画素値およびα値をページメモリ２３６にそのまま書き込めばよいので、説明を省略することとし、オブジェクト間に重なりが生じる重なり領域に対する処理について、以下に説明する。
【００４２】
ページメモリ２３６に既に展開されたレイヤ画像がある場合（ステップＳ２００：Ｙｅｓ）、演算入力条件判断部２３７は、中間コードに登録されたレイヤ画像において、重なり領域内の画素に注目し（ステップＳ２２０）、注目画素の演算入力条件と同一の演算入力条件が登録メモリ２４０に登録されているかを判断する（ステップＳ２３０）。
【００４３】
注目画素の演算入力条件と同一の演算入力条件が登録されていなければ（ステップＳ２３０：Ｎｏ）、第１αブレンド処理部２３８が、注目画素の演算入力条件からαブレンドを演算し（ステップＳ２６０）、演算結果の画素値およびα値をページメモリ２３６の該当アドレスに書き込む（ステップＳ２７０）。そして、演算を行った演算入力条件およびその演算結果を対応付けたテーブルを登録メモリ２４０に登録する（ステップＳ２８０）。
【００４４】
図６の重なり領域ＫＡに対するαブレンド演算について、図７を用いて説明する。なお、図７において、「Ｓ」は新たに重ね合わせるようにして書き込みの対象とする画像（書き込み対象画像）、「Ｄ」はページメモリ２３６に書き込まれている画像（元画像）、「Ｒ」は書き込み対象画像Ｓを書き込んだ後の元画像（書き込み後画像）を意味しており、重なり領域ＫＡ内の各画素の位置をｘ（横）方向に「ｍ，ｍ＋１，…」、ｙ（縦）方向に「ｎ，ｎ＋１，…」で表している。したがって、元画像Ｄの各画素の演算入力条件は、図６に示したオブジェクトＯＢ１に対応して（Ｃ，α）＝（５０，０．４）であり、書き込み対象画像Ｓの各画素の演算入力条件は、オブジェクトＯＢ２に対応して（Ｃ，α）＝（１００，０．５）である。このとき、次式（１）、（２）に従ってαブレンドを演算することができる。なお、下付きのＳは書き込み対象画像、下付きのＤは元画像、下付きのＲは書き込み後画像の値であることを示している。
ＣR＝（１−αS）×ＣD＋ＣS…（１）
αR＝（１−αS）×αD＋αS…（２）
【００４５】
図７において、重なり領域ＫＡ内で最初に注目される画素が位置（ｍ，ｎ）の画素とすると、注目画素については、ＣR＝（１−０．５）×５０＋１００＝１２５、αR＝（１−０．５）×０．４＋０．５＝０．７が求められる。求めたカラー値およびα値は、書き込み後画像Ｒにおける位置（ｍ，ｎ）の画素に対応するページメモリ２３６の該当アドレスに書き込まれる（図７（ａ）参照）。また、このとき求めた演算結果（ＣR，αR）は、演算入力条件に対応付けて登録メモリ２４０に登録される。演算入力条件の登録内容としては、ソースＳのカラー値およびα値、並びに元画像Ｄのカラー値およびα値がある。図７（ａ）において画素（ｍ，ｎ）についてαブレンドを演算した後には、図８の登録テーブルＴＬに示すように、演算入力条件（ＣD，αD，ＣS，αS）＝（５０，０．４，１００，０．５）と、αブレンドの演算結果（ＣR，αR）（１２５，０．７）とが対応付けて登録メモリ２４０に登録される。
【００４６】
こうして、ステップＳ２８０において演算入力条件および演算結果を登録メモリ２４０に登録すると、ステップＳ２９０に進んで、重なり領域の全画素について処理を行ったか否かを判断する。全画素について処理を行っていなければ（ステップＳ２９０：Ｎｏ）、重なり領域内における次の画素に注目してから（ステップＳ３００）、ステップＳ２３０に戻る。
【００４７】
注目画素の演算入力条件と同一の演算入力条件が登録されていれば（ステップＳ２３０：Ｙｅｓ）、注目画素に対応する演算結果、すなわち注目画素の演算入力条件と同一の演算入力条件に対応する演算結果を登録メモリ２４０に登録された登録テーブルＴＬから読み出し（ステップＳ２４０）、演算結果の画素値およびα値をページメモリの該当アドレスに書き込む（ステップＳ２５０）。演算結果を書き込むと、ステップＳ２９０に進んで、再び重なり領域の全画素について処理を終了したかを判断する。
【００４８】
なお、ステップＳ２３０の判断は、注目画素に対して隣り合う画素についての演算入力条件のうちに、注目画素の演算入力条件と同一の条件があるか否かを判断することにより行う。例えば、ステップＳ３００において注目画素をラスタ方向にスキャン、すなわち１ラインごとに左から右へと主走査するとともに、上から下へとラインを副走査する場合、注目画素に対して１つ左および１つ上に隣り合う画素についての演算入力条件と照合することにより、登録されているかを判断する。注目画素に隣り合う画素は、注目画素と同じ演算入力条件である可能性が高いので、注目画素に隣り合う画素の演算入力条件と照合することにより、注目画素と同一の演算入力条件を効率良く探索することができる。
【００４９】
図７の例を用いて説明すると、位置（ｍ，ｎ）の画素に対する演算入力条件および演算結果が登録された後、ラスタ方向に注目画素をスキャンすると、位置（ｍ＋１，ｎ）の画素が次に注目される（図７（ｂ））。ここで、位置（ｍ＋１，ｎ）の注目画素に対して１つ左（ｍ，ｎ）の画素についての演算入力条件を登録メモリ２４０に参照すると、（ＣD，αD，ＣS，αS）＝（５０，０．４，１００，０．５）であり、既に登録されている。また、注目画素に対して１つ上（ｍ，ｎ−１）の画素については登録メモリ２４０を参照しても演算入力条件は登録されていない。そこで、位置（ｍ＋１，ｎ）の注目画素の演算入力条件と位置（ｍ，ｎ）の画素の演算入力条件とを比較する。図７の例では、注目画素の演算入力条件と位置（ｍ，ｎ）の画素の演算入力条件とが同一となるので、位置（ｍ，ｎ）の画素についての演算結果（ＣR，αR）＝（１２５，０．７）が登録メモリ２４０から読み出され、αブレンドの演算を行うことなく、読み出した演算結果がページメモリ２３６の該当アドレスに書き込まれる。
【００５０】
このように、重なり領域の各画素について順次注目するようにして、演算入力条件が登録されていない注目画素については、ステップＳ２６０〜Ｓ２８０においてαブレンドを演算するとともに演算結果を登録メモリ２４０に登録する。演算入力条件が登録されている注目画素については、登録された演算結果を登録メモリ２４０から読み出すことにより、αブレンドを施す。こうして、重なり領域の全画素についてαブレンドの演算結果がページメモリ２３６に書き込まれると（ステップＳ２９０：Ｙｅｓ）、図４の処理に戻って、ステップＳ１５０に進む。ステップＳ１５０において、ＸＭＬドキュメントに記述された全レイヤについて処理を終了したと判断されると（ステップＳ１５０：Ｙｅｓ）、ステップＳ１６０に進んで、印刷データ出力部２１３は、ページメモリ２３６に形成された合成画像を読み出し、合成画像を所定の高さを有するバンドごとに印刷データとしてプリンタ３に出力する。これにより、プリンタドライバ２００はプリンタ３に合成画像を印刷させる。
【００５１】
以上に説明した印刷システム１によれば、以下の効果を得ることができる。
【００５２】
（１）登録メモリ２４０に登録された演算入力条件と同一の演算入力条件となる注目画素については、登録メモリ２４０から読み出した演算結果を用いることにより、式（１）、（２）に示したαブレンド演算を行うことなく演算結果を取得し、ページメモリ２３６の該当アドレスに書き込むので、αブレンドに要する演算量が低減する。したがって、αブレンドによるレイヤ合成処理をより高速に行うことができる。
【００５３】
（２）登録されていない演算入力条件の注目画素に対しては、αブレンドを演算するとともに、演算結果を登録メモリ２４０に新たに登録するようにしたので、以降の処理において注目画素と同一の演算入力条件が登録メモリ２４０に登録されている確率が高まる。これにより、以降の処理において、登録メモリ２４０から演算結果が読み出される確率が高まるので、αブレンドに要する演算量がさらに低減し、処理のさらなる高速化を図ることができる。
【００５４】
（３）注目画素に隣り合う画素は他の画素に比べて注目画素と演算入力条件が同一となる可能性が高いので、ステップＳ２３０の判断において注目画素に隣り合う画素に対応する演算入力条件を参照したことにより、効率良く判断することができる。また、照合する対象の条件数が少なくなるので、判断に要する処理量が低減する。したがって、レイヤ合成処理をさらに高速に処理することができる。
【００５５】
（第２の実施例）
次に、第２の実施例について説明する。上記第１の実施例では、ホストコンピュータに備わるプリンタドライバ２００がレイヤ合成を行って印刷データを生成する、いわゆるドライバページの態様をなしていたが、第２の実施例では、システムのプリンタ側でパースおよびレンダリングが行われる。なお、以下では、第１の実施例と同様の構成については同じ符号を付与し、詳細な説明を省略するものとする。
【００５６】
図９は、第２の実施例に係る印刷システムの構成を示したブロック図である。図９に示すように、印刷システム６は、ホストコンピュータ７と、プリンタ（画像処理装置）８とを備えている。ホストコンピュータ７は、アプリケーション１００と、プリンタドライバ３００とを備えている。プリンタドライバ３００は、アプリケーション１００から入力されたＸＭＬドキュメントを印刷データとしてプリンタ８に出力する処理を行う。
【００５７】
プリンタ８は、コントローラ８０と、印刷エンジン８１とを備えている。コントローラ８０は、制御部２１０、ＸＭＬパース部２２０、レンダリング部２３０を有しており、プリンタドライバ３００から受け取った印刷データ（入力データ）に対して、第１の実施例と同様にパースおよびレンダリングを行う。コントローラ８０は、レンダリングにより生成された合成画像を、印刷エンジン８１が処理可能な形式のデータに変換して、印刷エンジン８１に出力する。これにより合成画像が印刷される。
【００５８】
第２の実施例によれば、プリンタ側でパースおよびレンダリングを行うシステムにおいても、第１の実施例と同様の効果を得ることができる。
【００５９】
本画像処理装置は、第１の実施例および第２の実施例に限られることなく、以下に説明する変形例とすることもできる。
【００６０】
（変形例１）上記第１，２の実施例では、第１αブレンド処理部２３８がαブレンドを演算するとともに、演算入力条件および演算の結果を登録メモリ２４０に登録するようにして新たなパターンを登録するようにしたが、登録メモリ２４０に演算入力条件および演算結果を予め登録しておくようにしてもよい。例えば、レイヤ合成処理の開始に先行して、ＸＭＬドキュメントで記述されたオブジェクトに指定された色およびα値から、オブジェクトの色およびα値を組合わせた各演算入力条件に対する演算結果を演算して、演算入力条件および演算結果を登録メモリ２４０に登録しておく。レイヤ合成処理では、予め登録されたを演算入力条件および演算結果を用いて処理することにより、処理を高速化できる。
【００６１】
（変形例２）上記第１，２の実施例では、ＸＭＬにより複数のレイヤが記述されたＸＭＬドキュメントを処理する場合について説明したが、ＨＴＭＬ（HyperText Markup Language）やＸＨＴＭＬ（EXtensible HyperText Markup Language）で記述されたデータに対して処理するようにしてもよい。また、ＧＤＩ（Graphical Device Interface）などの言語で記述されたデータに対して処理するようにしてもよい。
【００６２】
（変形例３）上記第１，２の実施例では、プリンタを例にして説明したが、プリンタに限られることなく、複写機やファックスであってもよい。また、αブレンドを用いてレイヤを合成する処理であれば、上記した機器に限られることなく様々な機器に適用することができる。
【図面の簡単な説明】
【００６３】
【図１】第１の実施例に係る印刷システムの構成を示したブロック図。
【図２】ホストコンピュータの機能的構成を示したブロック図。
【図３】レイヤ合成部の構成を示したブロック図。
【図４】プリンタドライバが行う処理の流れを示したフローチャート。
【図５】レイヤ合成処理の流れを示したフローチャート。
【図６】レイヤ合成の処理例を示した説明図であり、（ａ）は１つ目のレイヤの展開を説明する図であり、（ｂ）は２つ目のレイヤの展開を説明する図。
【図７】αブレンドの説明図であり、（ａ）は最初の注目画素（ｍ，ｎ）についてのαブレンド、（ｂ）は２つ目の注目画素（ｍ＋１，ｎ）についてのαブレンドを説明する図。
【図８】登録テーブルの一例を示した図。
【図９】第２の実施例に係る印刷システムの構成を示したブロック図。
【符号の説明】
【００６４】
１…印刷システム、２…画像処理装置としてのホストコンピュータ、３…プリンタ、４…記録媒体としてのＣＤ−ＲＯＭ、２０…ＣＰＵ、２１…ＲＯＭ、２２…ＲＡＭ、２３…ＨＤ、２４…ＣＤ−ＲＯＭドライブ、２５…通信インターフェイス、１００…アプリケーション、２００…プリンタドライバ、２１０…制御部、２１１…入力手段としてのドキュメント入力部、２１２…データ制御部、２１３…印刷データ出力部、２２０…描画命令取得手段としてのＸＭＬパース部、２３０…レンダリング部、２３１…レイヤ画像生成手段としてのレイヤ画像展開部、２３２…レイヤ画像メモリ、２３３…中間コード登録部、２３４…中間コードメモリ、２３５…レイヤ画像合成部、２３６…画像メモリとしてのページメモリ、２３７…判断手段としての演算入力条件判断部、２３８…第１のαブレンド手段としての第１αブレンド処理部、２３９…第２のαブレンド手段としての第２αブレンド処理部、２４０…登録メモリ、ＴＬ…登録テーブル。
【図１】
2009005215.tif 000003
【図２】
2009005215.tif 000004
【図３】
2009005215.tif 000005
【図４】
2009005215.tif 000006
【図５】
2009005215.tif 000007
【図６】
2009005215.tif 000008
【図７】
2009005215.tif 000009
【図８】
2009005215.tif 000010
【図９】
2009005215.tif 000011