画像生成装置
【課題】優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能とし、また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示可能とする画像生成装置を提供する。
【解決手段】画像データを構成する画素毎に、該画素の透過度情報を保持する画像データを格納する複数の画像データ格納手段と、画像データ格納手段に格納される一の前記画像データと画像データ格納手段に格納される他の前記画像データとを画素毎に合成する画像合成手段と、画像合成手段により合成される画素について、一の画像データに関する透過度情報と他の画像データに関する透過度情報とが所定の関係にあるか否かを判定する透過度情報判定手段とを有する画像生成装置であって、画像合成手段は、透過度情報判定手段により所定の関係にあると判定された場合に、所定の規則に従って画素を合成する。
【解決手段】画像データを構成する画素毎に、該画素の透過度情報を保持する画像データを格納する複数の画像データ格納手段と、画像データ格納手段に格納される一の前記画像データと画像データ格納手段に格納される他の前記画像データとを画素毎に合成する画像合成手段と、画像合成手段により合成される画素について、一の画像データに関する透過度情報と他の画像データに関する透過度情報とが所定の関係にあるか否かを判定する透過度情報判定手段とを有する画像生成装置であって、画像合成手段は、透過度情報判定手段により所定の関係にあると判定された場合に、所定の規則に従って画素を合成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画素毎に設定される透過度情報に基づいて画像の重ね合わせを行う技術に関する。
【背景技術】
【0002】
従来、複数レイヤに描画された画像を重畳して1つの表示画像を生成するにあたり、画像単位で各画像の表示優先度を設定し、当該優先度の高いものを表示させる技術について公開されている(特許文献1)。また、複数フレームを重畳して画像を形成するにあたり、優先表示データを設定する技術についても公開されている(特許文献2)。他方、描画優先度順にフレームバッファをソートしておき、各フレームバッファの透明度(α値)を考慮しながら、表示用重畳画像を生成する技術についても公開されている(特許文献3)。
【特許文献1】特開平9−288477号公報
【特許文献2】特開平7−73287号公報
【特許文献3】特開2005−77522号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、特許文献1、2においては、優先設定されている画素は最優先に描画されるため、如何なる場合でも描画されてしまい、既存α値の他に、優先度設定のための制御パラメータ(制御フラグ)を別途設ける必要があるという問題点があった。
また、特許文献3においては、予め表示優先度順にフレームバッファをソートする必要が生じ、当該ソートがされていない場合には、上層の半透明領域を通して下層の画像を表示させる際、中層に不透明度の高い画像があると、中層が下層の画像の透過表示を遮ってしまうという問題点があった。
【0004】
そこで、本発明では、上記問題点に鑑み、優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能とし、また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示可能とする画像生成装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明に係る画像生成装置では、画像データを構成する画素毎に、該画素の透過度情報を保持する画像データを格納する複数の画像データ格納手段と、画像データ格納手段に格納される一の前記画像データと画像データ格納手段に格納される他の前記画像データとを画素毎に合成する画像合成手段と、画像合成手段により合成される画素について、一の画像データに関する透過度情報と他の画像データに関する透過度情報とが所定の関係にあるか否かを判定する透過度情報判定手段とを有する画像生成装置であって、画像合成手段は、透過度情報判定手段により所定の関係にあると判定された場合に、所定の規則に従って画素を合成することを特徴とする。
【0006】
また、本発明に係る画像生成装置の一形態では、透過度情報は、正又は負の符号を有する数値情報であり、透過度情報判定手段は、一の画像データに関する透過度情報の符号と他の画像データに関する透過度情報の符号とが同一か否かを判定することを特徴とする。
【0007】
また、本発明に係る画像生成装置の一形態では、透過度情報は、当該透過度情報を識別するためのチャンネル情報を有する情報であり、透過度情報判定手段は、一の画像データに関する透過度情報のチャンネル情報と他の画像データに関する透過度情報のチャンネル情報とが等しいか否かを判定することを特徴とする。
【0008】
従って、本発明では、優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能とし、また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示可能とする画像生成装置を提供することができる。
【発明の効果】
【0009】
本発明では、優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能とし、また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示可能とする画像生成装置を提供することができる。
【発明を実施するための最良の形態】
【0010】
図面を参照しながら、本発明を実施するための最良の形態について説明する。
【0011】
(本実施の形態に係る画像生成装置の動作原理)
図1〜図6を用いて、本実施の形態に係る画像生成装置の動作原理について説明する。図1は、本実施の形態に係る画像生成装置100の概要を説明するための図である。
【0012】
画像生成装置100における画像生成に関する処理は、図1に示すようにレンダリング処理とレイヤ合成処理の2つの処理工程を有する。
【0013】
図1で示すようにレンダリング処理は、独立した各レイヤ(後述する画像データ格納手段110)に対して描画物をレンダリングしていく処理である。
【0014】
一方、レイヤ合成処理は、レンダリング処理によって複数のレイヤに保持されている画像データを合成先レイヤに合成していく処理である。
【0015】
そして、合成先レイヤに合成された画像データは表示装置260へと転送され、該画像データは表示装置260に出力される。
【0016】
本発明では、上記のレンダリング処理とレイヤ合成処理において、画像データの各画素が有する透過度情報(以下、α値という)に負の数の領域を定義することで、描画に関する処理の拡張を行うものである。
【0017】
ここで、上記で述べたレンダリング処理について説明する。
各レイヤに描画される描画物に関するα値は、色を表す情報とは独立して、画素毎にα値を有する。また、各レイヤに描画される描画物は、例えば、α値に8ビットが割り当てられている場合、画素毎に図2で示すように正又は負の符号を表すために1ビットを使用し、残りの7ビットでα値の絶対値の大きさを設定する形態とする。
【0018】
また、レンダリング処理では、描画物を描画するためのレイヤを用意し、当該レイヤ上に描画物を書き込んでいく。各レイヤへ描画物の書き込みを行う場合には、書き込みを行う各画素について、描画物のα値と各レイヤのα値とを比較し、その比較した結果に基づく所定の規則に従って描画物の書き込みを行う。
【0019】
ここで図3を用いて、上記所定の規則を説明する。図3では、縦に描画物のα値を示し、横に書き込みを行うレイヤ(対象レイヤ)のα値を示している。例えば、対象レイヤのα値が正数であり、かつ、描画物のα値が正数であった場合には、図3の「△」印で示される規則に従って、描画物の書き込みを行う。また、対象レイヤのα値が負数であり、かつ、描画物のα値が正数であった場合には、図3の「○」印で示される規則に従って、描画物の書き込みを行う。
【0020】
図3における「○」印で示される規則では、描画物の画素データを対象レイヤに書き込む。図3における「×」印で示される規則では、対象レイヤの画素データは変更しない。
【0021】
そして、図3における「△」印で示される規則では、以下に示す式に基づく値を対象レイヤに書き込む。例えば、画素データがRGBA表色系で表されるものとして、対象レイヤの画素データを(dR、dG、dB、dα)、描画物の画素データを(sR、sG、sB、sα)、対象レイヤに書き戻す画素データを(dR’、dG’、dB’、dα’)とする。ただし、上記の画素データは他の表色系で表されるものとしても良い。画素データにおけるRGB値は各々0.0〜1.0の範囲で指定され、α値は−1.0〜1.0の範囲で指定される形態としても良い。
dR’=dR+(sR−dR)×sα
dG’=dG+(sG−dG)×sα
dB’=dB+(sB−dB)×sα
dα’=larger(sα、dα)…(sα、dαの大きい方をdα’へ代入)
上記で説明したレンダリング処理により、各レイヤには描画物の画像データが保持されることとなる。そして、以下で説明するレイヤ合成処理により、複数のレイヤに保持された画像データが合成され、1つの画像データが生成される。
【0022】
ここで図4は、本実施の形態に係る画像生成装置100の動作原理を説明する図である。
画像生成装置100は、各々独立した画像データ格納手段110を複数有し、また、画像合成手段120、透過度情報判定手段130、表示装置260を有する。また、画像データ格納手段110は、上記レンダリング処理の説明における各レイヤと対応している。
【0023】
画像データ格納手段110は、上記のレンダリング処理によって描画された画像データ112を保持する。
【0024】
また、画像データ112は、例えば、RGBA表色系で表され、画素毎に透過度情報(α値)114を有する。例えば、α値114は、α値114を表すために8ビットが割り当てられている場合、図2に示すように正又は負の符号を表すために1ビットを使用し、残りの7ビットでα値の絶対値の大きさが設定される形態としても良い。このように、α値114は正又は負の符号を有する数値情報である。
【0025】
また、α値114の他の形態では、例えば、α値114に8ビットが割り当てられている場合、図5で示すように正又は負の符号を表すために1ビットを使用し、α値114を識別するためのチャンネル情報を表すために2ビットを使用し、残りの5ビットでα値の絶対値の大きさが設定される形態としても良い。
【0026】
透過度情報判定手段130は、画像合成手段120により合成しようとする2つの画像データの画素について、当該画素のα値114が所定の関係にあるか否かを判定する。
透過度情報判定手段130の一形態では、判定対象である2つの画素のα値114に係る符号が同一であるか否かを判定し、さらに、当該符号が正数であるか、負数であるかについても判定する。
【0027】
また、透過度情報判定手段130の他形態では、判定対象である2つの画素のチャンネル情報が等しいか否かを判定する。
【0028】
さらに、透過度情報判定手段130の他形態では、上記符号の判定を行うと共に、判定対象である2つの画素のチャンネル情報が等しいか否かを判定する。
【0029】
画像合成手段120は、一の画像データ格納手段110に格納される画像データ112と、他の画像データ格納手段110に格納される画像データ112とを画素毎に合成する。また、画像合成手段120は、上層の画像データ112から下層の画像データ112の順序で合成を行っていくものとする。
【0030】
さらに、画像合成手段120は、合成しようとする2つの画像データに関する画素のα値114について、透過度情報判定手段130により所定の関係にあると判定された場合に、所定の規則に従って2つの画素データを合成する。
【0031】
また、画像合成手段120の一形態では、合成しようとする2つの画像データ112に関する画素について、透過度情報判定手段130によりα値114の符号が同一であると判定された場合に、所定の規則に従って2つの画素を合成する。
【0032】
従来、α値114については、正の数の範囲でのみ処理が行われていたところ、本発明においてはα値114の範囲を負の数まで拡張して処理を行うこととする。こうすることによって、優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能とし、また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示可能となる。
【0033】
さらに、画像合成手段120の他形態では、合成しようとする2つの画像データ112に関する画素データについて、透過度情報判定手段130によりα値114のチャンネル情報が等しいと判定された場合に、所定の規則に従って2つの画素データを合成する。
【0034】
また、画像合成手段120の他形態では、両画素の符号が同一であるという要件を満たしたことに加え、合成しようとする2つの画像データに関する画素について、透過度情報判定手段130によりα値114のチャンネル情報が等しいと判定された場合に、所定の規則に従って2つの画素を合成する。
【0035】
ここで、α値114のチャンネル情報を画像合成手段120による画像合成処理に反映させる場合には、幾つかのバリエーションを考えることができる。その一つは、α値114の符号の正負に関わらず、透過度情報判定手段130によりα値114の符号及びチャンネル情報の同一性が確認された場合に、画像合成手段130による画像データ112の合成処理を行う仕様とすることである。
【0036】
もう一つは、α値114の符号が負であり、かつ、透過度情報判定手段130によりα値114の符号及びチャンネル情報の同一性が確認された場合に、画像合成手段130による画像データ112の合成処理を行う仕様とすることである。こうすることにより、α値114を正数として設計された既存リソースにも対応した処理が可能となる。
【0037】
上記のように、本発明においてはα値114に負の数の概念を導入すると共に、チャンネル情報を導入して画像データ112の合成処理を行う。こうすることによって、複数の画像データ112を合成したものを表示するに際して、透過対象の個別選択が可能となり、透過領域の重なりを考慮することなく、意図する画像データの合成が可能となる。
【0038】
ここで図6を用いて、上記の所定の規則について説明する。図6では、縦に合成対象となる画像データ112のα値114を示し、横に合成先となる画像データ112のα値114を示している。例えば、合成対象となる画像データ112のα値114が正数であり、かつ、合成先の画像データ112のα値114が正数であった場合には、「△」印で示される規則に従って、画像データ112の合成を行う。また、合成対象となる画像データ112のα値114が負数であり、かつ、合成先の画像データ112のα値114が負数であった場合には、「▲」印で示される規則に従って、画像データ112の合成を行う。
【0039】
図6における「○」印で示される規則では、合成対象となる画像データ112の画素データ値を合成先の画像データ112に書き込む。図6における「×」印で示される規則では、合成先の画像データ112は変更しない。図6における「×※」印で示される規則では、原則として合成先の画像データ112は変更しないが、処理順序が最終となるレイヤに対する合成処理時のみ、合成対象となる画像データ112を合成先の画像データ112に書き込む。
【0040】
そして、図6における「△」印で示される規則では、以下に示す式に基づく値を合成先の画像データ112に書き込む。ここで、合成先となる画像データ112の画素データを(ddR、ddG、ddB、ddα)、合成対象となる画像データ112の画素データを(ssR、ssG、ssB、ssα)、合成先となる画像データ112に書き戻す画素データを(ddR’、ddG’、ddB’、ddα’)とする。例えば、RGB値は各々0.0〜1.0の範囲で指定され、α値114は−1.0〜1.0の範囲で指定されるとしても良い。
ddR’=(ddR×ddα+ssR×ssα)/(ddα+ssα)
ddG’=(ddG×ddα+ssG×ssα)/(ddα+ssα)
ddB’=(ddB×ddα+ssB×ssα)/(ddα+ssα)
ddα’=larger(ssα、ddα)…(ssα、ddαの大きい方をddα’へ代入)
また、図6における「▲」印で示される規則では、以下に示す式に基づく値を合成先の画像データ112に書き込む。
ddR’=(ddR×ddα+ssR×ssα)/(ddα+ssα)
ddG’=(ddG×ddα+ssG×ssα)/(ddα+ssα)
ddB’=(ddB×ddα+ssB×ssα)/(ddα+ssα)
ddα’=larger(|ssα|、|ddα|)…(ssα、ddαの各絶対値の大きい方をddα’へ代入)
図6における「▲」印で示される規則では、書き戻すα値114は絶対値化され、正のα値114として書き戻される。これにより、負のα値114を持つ画素どうしの合成は1回までという制限を付すこととなる。これは、意図しない領域が合成されることを防止する効果を有する。
【0041】
画像合成手段120は、合成先である画像データ格納手段110の全ての画素に関して、初期化を行う。ここで初期化とは、画素データを(R、G、B、0)とすることである。ただしR、G、Bは各々、初期色を表す値である。
【0042】
画像合成手段120は、画像データ格納手段110に保持される画像データ112のα値114を正規化する。ここで正規化とは、α値114を表示装置260が規定する数値幅に調整する処理と、画像データ112を構成する全ての画素についてα値114を絶対値化する処理とをいう。
【0043】
画像合成手段120は、画像データ格納手段110に保持される画像データ112を表示装置260に転送する。
【0044】
以下で、画像生成装置100の処理の流れを説明する。
【0045】
上記説明のレンダリング処理によって描画された画像データ112が画像データ格納手段110に保持されている。
【0046】
画像合成手段120が、合成先の画像データ格納手段110を初期化する。続けて、画像合成手段120が、初期化した合成先である画像データ格納手段110の各画素と、合成対象である画像データ格納手段110に保持される画像データ112の各画素とを、合成する。
【0047】
そこで、透過度情報判定手段130が、画像合成手段120により合成される画素について、α値114の符号が同一であるか否かを判定する。そして、透過度情報判定手段130により2つの画像データ112に関するα値114が同一符号であると判定された場合に、画像合成手段120が、図6で示す「△」印または「▲」印の規則に従って、当該画素の合成を行う。そして、画像合成手段120は、上記合成を全ての画素について行う。
【0048】
上記に示した画像合成手段120と透過度情報判定手段130による画像データ112の合成処理を全ての画像データ格納手段110に対して行う。
【0049】
そして、全ての画像データ格納手段110に対して、上記の合成処理が終了すると、画像合成手段120が、合成先の画像データ格納手段110に保持される画像データ112に対して正規化処理を行う。
【0050】
さらに、画像合成手段120が、正規化処理を行った画像データ112を表示装置260に転送する。
【0051】
上記のような処理を行うことで、優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能とし、また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示可能とする画像生成装置を提供することができる。
【0052】
(本実施の形態に係る画像生成装置のハードウェア構成)
図7を用いて、本実施の形態に係る画像生成装置のハードウェア構成を説明する。図7は、本実施の形態に係る画像生成装置100のハードウェア構成の一例を示す図である。
【0053】
新規信号生成装置100は、CPU(Central Processing Unit)210、ROM(Read−Only Memory)220、RAM(Ramdom Access Memory)230、HDD(Hard Disk Drive)240、外部装置I/F(InterFace)250、表示装置260を有する。
【0054】
CPU210は、ROM220に記憶されたプログラムを実行する装置で、RAM230に展開(ロード)されたデータを、プログラムの命令に従って演算処理し、画像生成装置100の全体を制御する。
【0055】
ROM220は、CPU210が実行するプログラムやデータを記憶している。
【0056】
RAM230は、CPU210でROM220に記憶されたプログラムを実行する際に、実行するプログラムやデータが展開(ロード)され、演算の間、演算データを一時的に保持する。
【0057】
HDD240は、基本ソフトウェアであるOS(Operating System)、本実施の形態に関係するアプリケーションプログラムや機能拡張用のプラグインなどを、関連するデータとともに記憶する装置である。
【0058】
外部装置I/F250は、画像生成装置100と接続される他の装置とデータの送受信を行うためのインタフェースである。
【0059】
表示装置260は、ハードキーによるキースイッチとLCD(Liquid Crystal Display)とから構成され、画像生成装置100が有する機能をユーザが利用する際や、各種設定を行う際などのユーザインタフェースとして機能する装置である。本実施の形態において、画像合成手段120により合成された画像データ112は表示装置260に表示される。
【0060】
また、本実施の形態に係る画像生成装置100が有する各手段は、CPU210が、ROM220又はHDD240に記憶された各手段に対応するプログラムを実行することにより実現される。また、画像生成装置100が有する各手段は、ハードウェアによって実現される形態としても良い。
【0061】
(レンダリング処理について)
図8、図9を用いて、本実施の形態に係るレンダリング処理について説明する。図8は、本実施の形態に係るレンダリング処理及びレイヤ合成処理の概要を説明する図である。図9は、本実施の形態に係るレンダリング処理の例を示すフローチャートである。
【0062】
ここでは、上層レイヤ、中層レイヤ、下層レイヤの各レイヤへ図8に示すような描画物をレンダリングする処理について説明する。また、以下では上層レイヤに係る処理を対象として説明するが、中層レイヤ及び下層レイヤに対しても、上層レイヤに係る処理と同じ処理が平行して行われる。
【0063】
また、上位レイヤ、中層レイヤ、下層レイヤの各レイヤは、画像データ格納手段110に対応している。
【0064】
S10で画像生成装置100は、上層レイヤに対するレンダリング処理を開始する。
【0065】
S12で画像生成装置100は、上層レイヤの全ての画素に関して、α値114を0.0に設定する(初期化する)。
【0066】
S14で画像生成装置100は、上層レイヤに描画する描画物を奥に表示するものから手前に表示する順序にソートする。
【0067】
S16で画像生成装置100は、奥に表示する描画物から手前に表示する描画物へと順に、上層レイヤへ描画を行う。ここで、上層レイヤへの描画処理は、上層レイヤ(対象レイヤ)のα値114と描画物のα値114との関係を画素毎に比較して、図3に示す規則に従って画素毎に描画を行う。1つの描画物の全ての画素に対して上記の描画処理が終了すれば、次の描画物に対して同様の描画処理が施される。
【0068】
S18で画像生成装置100は、最も手前に描画する描画物の全ての画素に対して上記の描画処理が終了すればレンダリング処理を終了する。
【0069】
上記の処理によって、上層レイヤには図8に示すような画像データ112が保持される。上層レイヤに描画された画像データ112上には、α値114を−0.01とした領域Aが、下層レイヤの描画物を透過させるための透過窓として設定されている。
【0070】
(レイヤ合成処理について)
図8、図10を用いて、本実施の形態に係るレイヤ合成処理について説明する。図10は、本実施の形態に係るレイヤ合成処理の例を示すフローチャートである。
【0071】
ここでは、図8に示す上層レイヤに描画された画像データ112と、中層レイヤに描画された画像データ112と、下層レイヤに描画された画像データ112とを合成して、1つの画像データ112を合成先レイヤに生成する処理について説明する。画像合成手段120による画像の合成は、上層レイヤ、中層レイヤ、下層レイヤの順に行われる。
【0072】
また、上位レイヤ、中層レイヤ、下層レイヤの各レイヤは、画像データ格納手段110に対応している。
【0073】
S20で画像生成装置100は、レイヤ合成処理を開始する。
S22で画像合成手段120が、図8に示す合成先レイヤの全ての画素についてα値114を0.0にする(初期化する)。
【0074】
S24で画像合成手段120が、上層レイヤに保持される画像データ112を合成先レイヤへ、図6に示す規則に従って合成する。
【0075】
画像合成手段120による当該処理の結果、合成レイヤへ上層レイヤの画像データ112がデットコピーされる。
【0076】
S26で次の合成対象が中層レイヤである場合(S26でNoの場合)、S24で画像合成手段120が、中層レイヤに保持される画像データ112と合成先レイヤに保持される画像データ112(上層レイヤに保持される画像データ112のデットコピー)とを、図6に示す規則に従って合成する。
【0077】
例えば、領域Aに属する画素を図6に示す規則に従って合成すると、合成先レイヤのα値114が負数で、合成対象である中層レイヤのα値114が正数であるため、画像合成手段120は、画素データの合成を行わず、合成レイヤの画素データは変更無く保持される。
【0078】
一方、領域A以外の画素については、合成先レイヤの画像データ112と中層レイヤの画像データ112とは、図6に示した規則に従って合成される。
【0079】
S26で次の合成対象が最下層である下層レイヤである場合(S26でYesの場合)、S28で画像合成手段120が、下層レイヤに保持される画像データ112と合成先レイヤに保持される画像データ112とを、図6に示す規則に従って合成する。
【0080】
図8で示すように、中層レイヤに不透明度の高い画像データ112が存在しても、上層レイヤに設けた領域A(透過窓)に下層レイヤの画像データ112を透過させることができる。
【0081】
S30で画像合成手段120が、合成レイヤに保持する画像データ112のα値114を絶対値に変換して、表示装置260が規定する数値幅に調整する。
【0082】
S32で画像合成手段120が、合成レイヤに保持する画像データ112を表示装置260に転送し、表示装置260が、当該画像データ112を表示する。
【0083】
(画素毎の合成処理(1)について)
図8、図11を用いて、本実施の形態に係る画素毎の合成処理(1)について説明する。図11は、本実施の形態に係る画素毎の合成処理(1)の例を示すフローチャートである。
【0084】
ここでは、S24またはS28での処理について詳細な説明を行う。また、画像合成手段120による画像の合成は、上層レイヤ、中層レイヤ、下層レイヤの順に行われ、下記では、合成先レイヤの画像データ112と中層レイヤの画像データ112とを合成する処理について説明する。
【0085】
また、α値114は、図2で示されるように8ビットの情報であり、そのうち1ビットが正負の符号を表すために割り当てられ、残りの7ビットがα値の絶対値の大きさを表すために割り当てられているものとする。
【0086】
また、上位レイヤ、中層レイヤ、下層レイヤの各レイヤは、画像データ格納手段110に対応している。
【0087】
ここで、合成先となる画像データ112の画素データを(ddR、ddG、ddB、ddα)、合成対象となる画像データ112の画素データを(ssR、ssG、ssB、ssα)、合成先となる画像データ112に書き戻す画素データを(ddR’、ddG’、ddB’、ddα’)とする。また、各画素データはRGBA表色系で表されるものとし、RGB値は各々0.0〜1.0の範囲で指定され、α値は−1.0〜1.0の範囲で指定されるものとする。
【0088】
S40で画像生成装置100は、画素毎の合成処理を開始する。
S42で透過度情報判定手段130が、当該合成処理に係る位置について、合成先レイヤの画素に係るα値114と中層レイヤの画素に係るα値114の符号が同一か否かの判定を行い、同一であると判定した場合(S42でYesの場合)、S44の処理に移行する。
【0089】
S42で透過同情報判定手段130が、当該符号は同一でないと判定した場合(S42でNoの場合)、S50で画像合成手段120が、図6に示す規則に従い、合成先レイヤの画素に中層レイヤの画素データを書き込むか、合成先レイヤの画素データを変更しないとする処理を行う。
【0090】
S44で透過度情報判定手段130が、当該画素の符号は正であると判定した場合(S44でYesの場合)、S46で画像合成手段120が、下記の規則に従って、両画素データの合成を行う。
ddR’=(ddR×ddα+ssR×ssα)/(ddα+ssα)
ddG’=(ddG×ddα+ssG×ssα)/(ddα+ssα)
ddB’=(ddB×ddα+ssB×ssα)/(ddα+ssα)
ddα’=larger(ssα、ddα)…(ssα、ddαの大きい方をddα’へ代入)
S44で透過度情報判定手段130が、当該画素の符号は負であると判定した場合(S44でNoの場合)、S46で画像合成手段120が、下記の規則に従って、両画素値の合成を行う。
ddR’=(ddR×ddα+ssR×ssα)/(ddα+ssα)
ddG’=(ddG×ddα+ssG×ssα)/(ddα+ssα)
ddB’=(ddB×ddα+ssB×ssα)/(ddα+ssα)
ddα’=larger(|ssα|、|ddα|)…(ssαの絶対値、ddαの絶対値の大きい方をddα’へ代入)
S52で画像合成手段120による画素毎の合成処理が全て終了していれば(S52でYesの場合)、S54で画像生成装置100は画素毎の合成処理(1)を終了する。
【0091】
S52で画像合成手段120による画素毎の合成処理が全て終了していなければ(S52でNoの場合)、S42で透過度情報判定手段130が、当該合成処理が終わっていない位置について、合成先レイヤの画素に係るα値114と中層レイヤの画素に係るα値114の符号が同一か否かの判定を行う。
【0092】
従来、透過度情報であるα値は正数として処理が行われていたが、これを負数にまで拡張することで、優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能となった。また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示することが可能となった。
【0093】
(画素毎の合成処理(2)について)
図8、図12を用いて、本実施の形態に係る画素毎の合成処理(2)について説明する。図12は、本実施の形態に係る画素毎の合成処理(2)の例を示すフローチャートである。
【0094】
ここでは、図4で示すようにα値114がチャンネル情報を有する場合について説明する。上記で説明した画素毎の合成処理(1)に加えて、負数のα値114を有する画素のどうしであっても、両画素のチャンネル情報が等しくなければ画素の合成は行われないとする処理について説明する。
【0095】
また、α値114は、図5で示されるように8ビットの情報であり、そのうち1ビットが正負の符号を表すために割り当てられ、2ビットがチャンネル情報を表すために割り当てられ、残りの5ビットがα値の絶対値の大きさを表すために割り当てられているものとする。
【0096】
また、上位レイヤ、中層レイヤ、下層レイヤの各レイヤは、画像データ格納手段110に対応している。
【0097】
ここで、合成先となる画像データ112の画素データを(ddR、ddG、ddB、ddα)、合成対象となる画像データ112の画素データを(ssR、ssG、ssB、ssα)、合成先となる画像データ112に書き戻す画素データを(ddR’、ddG’、ddB’、ddα’)とする。また、画素データはRGBA表色系で表されるものとし、RGB値は各々0.0〜1.0の範囲で指定され、α値は−1.0〜1.0の範囲で指定されるものとする。
【0098】
S60で画像生成装置100は、画素の合成処理を開始する。
S62で透過度情報判定手段130が、当該合成処理に係る位置について、合成先レイヤの画素に係るα値114と中層レイヤの画素に係るα値114の符号が同一か否かの判定を行い、同一であると判定した場合(S62でYesの場合)、S64の処理に移行する。
【0099】
S62で透過同情報判定手段130が、当該符号は同一でないと判定した場合(S62でNoの場合)、S74で画像合成手段120が、図6に示す規則に従い、合成先レイヤの画素に中層レイヤの画素データを書き込むか、合成先レイヤの画素データを変更しないとする処理を行う。
【0100】
S64で透過度情報判定手段130が、当該画素の符号は正であると判定した場合(S64でYesの場合)、S66で画像合成手段120が、下記の規則に従って、両画素データの合成を行う。
ddR’=(ddR×ddα+ssR×ssα)/(ddα+ssα)
ddG’=(ddG×ddα+ssG×ssα)/(ddα+ssα)
ddB’=(ddB×ddα+ssB×ssα)/(ddα+ssα)
ddα’=larger(ssα、ddα)…(ssα、ddαの大きい方をddα’へ代入)
S64で透過度情報判定手段130が、当該画素の符号は負であると判定した場合(S64でNoの場合)、S68の処理に移行する。
【0101】
S68で透過度情報判定手段130が、両画素のチャンネル情報は等しいと判定した場合(S68でYesの場合)、S70で画像合成手段120が、下記の規則に従って、両画素データの合成を行う。
ddR’=(ddR×ddα+ssR×ssα)/(ddα+ssα)
ddG’=(ddG×ddα+ssG×ssα)/(ddα+ssα)
ddB’=(ddB×ddα+ssB×ssα)/(ddα+ssα)
ddα’=larger(|ssα|、|ddα|)…(ssαの絶対値、ddαの絶対値の大きい方をddα’へ代入)
S68で透過度情報判定手段130が、両画素のチャンネル情報は異なると判定した場合(S68でNoの場合)、S72で画像合成手段120が、合成先レイヤの画素データを変更しないとする処理を行う。
【0102】
S76で画像合成手段120による画素毎の合成処理が全て終了していれば(S76でYesの場合)、S78で画像生成装置100は画素毎の合成処理(1)を終了する。
【0103】
S76で画像合成手段120による画素毎の合成処理が全て終了していなければ(S76でNoの場合)、S62で透過度情報判定手段130が、当該合成処理が終わっていない位置について、合成先レイヤの画素に係るα値114と中層レイヤの画素に係るα値114の符号が同一か否かの判定を行う。
【0104】
一律に負のα値を有する画素どうしをレイヤ合成処理で合成することは、下層の合成されるべき領域の描画に対して、ある程度の領域制御が必要となる。これを解決するために、負の領域にα値をさらに機能拡張して、チャンネル情報を付加した。
【0105】
これにより、描画に際して、透過対象の個別選択が可能となり、透過領域の重なりを考慮することなく、意図する合成が可能となる。
【0106】
(総括)
上記のような処理を行うことで、本発明では、優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能とし、また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示可能とする画像生成装置を提供することができる。
【0107】
以上、本発明の実施の形態について詳述したが、本発明は係る特定の実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲において、種々の変形・変更が可能である。
【図面の簡単な説明】
【0108】
【図1】本実施の形態に係る画像生成装置の処理の概要を説明するための図である。
【図2】本実施の形態に係る拡張した透過度情報の設定方法を説明するための図である。
【図3】本実施の形態に係るレンダリング処理時に画素を合成する規則について説明するための図である。
【図4】本実施の形態に係る画像生成装置の動作原理を説明するための図である。
【図5】本実施の形態に係る拡張した透過度情報の設定方法を説明するための図である。
【図6】本実施の形態に係るレイヤ合成処理時に画素を合成する規則について説明するための図である。
【図7】本実施の形態に係る画像生成装置のハードウェア構成の一例を示す図である。
【図8】本実施の形態に係るレンダリング処理及びレイヤ合成処理の概要を説明する図である。
【図9】本実施の形態に係るレンダリング処理例を示すフローチャートである。
【図10】本実施の形態に係るレイヤ合成処理例を示すフローチャートである。
【図11】本実施の形態に係る画素毎の合成処理例(1)を示すフローチャートである。
【図12】本実施の形態に係る画素毎の合成処理例(2)を示すフローチャートである。
【符号の説明】
【0109】
100 画像生成装置
110 画像データ格納手段
112 画像データ
114 透過度情報(α値)
120 画像合成手段
130 透過度情報判定手段
210 CPU
220 ROM
230 RAM
240 HDD
250 外部装置I/F
260 表示装置
【技術分野】
【0001】
本発明は、画素毎に設定される透過度情報に基づいて画像の重ね合わせを行う技術に関する。
【背景技術】
【0002】
従来、複数レイヤに描画された画像を重畳して1つの表示画像を生成するにあたり、画像単位で各画像の表示優先度を設定し、当該優先度の高いものを表示させる技術について公開されている(特許文献1)。また、複数フレームを重畳して画像を形成するにあたり、優先表示データを設定する技術についても公開されている(特許文献2)。他方、描画優先度順にフレームバッファをソートしておき、各フレームバッファの透明度(α値)を考慮しながら、表示用重畳画像を生成する技術についても公開されている(特許文献3)。
【特許文献1】特開平9−288477号公報
【特許文献2】特開平7−73287号公報
【特許文献3】特開2005−77522号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、特許文献1、2においては、優先設定されている画素は最優先に描画されるため、如何なる場合でも描画されてしまい、既存α値の他に、優先度設定のための制御パラメータ(制御フラグ)を別途設ける必要があるという問題点があった。
また、特許文献3においては、予め表示優先度順にフレームバッファをソートする必要が生じ、当該ソートがされていない場合には、上層の半透明領域を通して下層の画像を表示させる際、中層に不透明度の高い画像があると、中層が下層の画像の透過表示を遮ってしまうという問題点があった。
【0004】
そこで、本発明では、上記問題点に鑑み、優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能とし、また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示可能とする画像生成装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明に係る画像生成装置では、画像データを構成する画素毎に、該画素の透過度情報を保持する画像データを格納する複数の画像データ格納手段と、画像データ格納手段に格納される一の前記画像データと画像データ格納手段に格納される他の前記画像データとを画素毎に合成する画像合成手段と、画像合成手段により合成される画素について、一の画像データに関する透過度情報と他の画像データに関する透過度情報とが所定の関係にあるか否かを判定する透過度情報判定手段とを有する画像生成装置であって、画像合成手段は、透過度情報判定手段により所定の関係にあると判定された場合に、所定の規則に従って画素を合成することを特徴とする。
【0006】
また、本発明に係る画像生成装置の一形態では、透過度情報は、正又は負の符号を有する数値情報であり、透過度情報判定手段は、一の画像データに関する透過度情報の符号と他の画像データに関する透過度情報の符号とが同一か否かを判定することを特徴とする。
【0007】
また、本発明に係る画像生成装置の一形態では、透過度情報は、当該透過度情報を識別するためのチャンネル情報を有する情報であり、透過度情報判定手段は、一の画像データに関する透過度情報のチャンネル情報と他の画像データに関する透過度情報のチャンネル情報とが等しいか否かを判定することを特徴とする。
【0008】
従って、本発明では、優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能とし、また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示可能とする画像生成装置を提供することができる。
【発明の効果】
【0009】
本発明では、優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能とし、また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示可能とする画像生成装置を提供することができる。
【発明を実施するための最良の形態】
【0010】
図面を参照しながら、本発明を実施するための最良の形態について説明する。
【0011】
(本実施の形態に係る画像生成装置の動作原理)
図1〜図6を用いて、本実施の形態に係る画像生成装置の動作原理について説明する。図1は、本実施の形態に係る画像生成装置100の概要を説明するための図である。
【0012】
画像生成装置100における画像生成に関する処理は、図1に示すようにレンダリング処理とレイヤ合成処理の2つの処理工程を有する。
【0013】
図1で示すようにレンダリング処理は、独立した各レイヤ(後述する画像データ格納手段110)に対して描画物をレンダリングしていく処理である。
【0014】
一方、レイヤ合成処理は、レンダリング処理によって複数のレイヤに保持されている画像データを合成先レイヤに合成していく処理である。
【0015】
そして、合成先レイヤに合成された画像データは表示装置260へと転送され、該画像データは表示装置260に出力される。
【0016】
本発明では、上記のレンダリング処理とレイヤ合成処理において、画像データの各画素が有する透過度情報(以下、α値という)に負の数の領域を定義することで、描画に関する処理の拡張を行うものである。
【0017】
ここで、上記で述べたレンダリング処理について説明する。
各レイヤに描画される描画物に関するα値は、色を表す情報とは独立して、画素毎にα値を有する。また、各レイヤに描画される描画物は、例えば、α値に8ビットが割り当てられている場合、画素毎に図2で示すように正又は負の符号を表すために1ビットを使用し、残りの7ビットでα値の絶対値の大きさを設定する形態とする。
【0018】
また、レンダリング処理では、描画物を描画するためのレイヤを用意し、当該レイヤ上に描画物を書き込んでいく。各レイヤへ描画物の書き込みを行う場合には、書き込みを行う各画素について、描画物のα値と各レイヤのα値とを比較し、その比較した結果に基づく所定の規則に従って描画物の書き込みを行う。
【0019】
ここで図3を用いて、上記所定の規則を説明する。図3では、縦に描画物のα値を示し、横に書き込みを行うレイヤ(対象レイヤ)のα値を示している。例えば、対象レイヤのα値が正数であり、かつ、描画物のα値が正数であった場合には、図3の「△」印で示される規則に従って、描画物の書き込みを行う。また、対象レイヤのα値が負数であり、かつ、描画物のα値が正数であった場合には、図3の「○」印で示される規則に従って、描画物の書き込みを行う。
【0020】
図3における「○」印で示される規則では、描画物の画素データを対象レイヤに書き込む。図3における「×」印で示される規則では、対象レイヤの画素データは変更しない。
【0021】
そして、図3における「△」印で示される規則では、以下に示す式に基づく値を対象レイヤに書き込む。例えば、画素データがRGBA表色系で表されるものとして、対象レイヤの画素データを(dR、dG、dB、dα)、描画物の画素データを(sR、sG、sB、sα)、対象レイヤに書き戻す画素データを(dR’、dG’、dB’、dα’)とする。ただし、上記の画素データは他の表色系で表されるものとしても良い。画素データにおけるRGB値は各々0.0〜1.0の範囲で指定され、α値は−1.0〜1.0の範囲で指定される形態としても良い。
dR’=dR+(sR−dR)×sα
dG’=dG+(sG−dG)×sα
dB’=dB+(sB−dB)×sα
dα’=larger(sα、dα)…(sα、dαの大きい方をdα’へ代入)
上記で説明したレンダリング処理により、各レイヤには描画物の画像データが保持されることとなる。そして、以下で説明するレイヤ合成処理により、複数のレイヤに保持された画像データが合成され、1つの画像データが生成される。
【0022】
ここで図4は、本実施の形態に係る画像生成装置100の動作原理を説明する図である。
画像生成装置100は、各々独立した画像データ格納手段110を複数有し、また、画像合成手段120、透過度情報判定手段130、表示装置260を有する。また、画像データ格納手段110は、上記レンダリング処理の説明における各レイヤと対応している。
【0023】
画像データ格納手段110は、上記のレンダリング処理によって描画された画像データ112を保持する。
【0024】
また、画像データ112は、例えば、RGBA表色系で表され、画素毎に透過度情報(α値)114を有する。例えば、α値114は、α値114を表すために8ビットが割り当てられている場合、図2に示すように正又は負の符号を表すために1ビットを使用し、残りの7ビットでα値の絶対値の大きさが設定される形態としても良い。このように、α値114は正又は負の符号を有する数値情報である。
【0025】
また、α値114の他の形態では、例えば、α値114に8ビットが割り当てられている場合、図5で示すように正又は負の符号を表すために1ビットを使用し、α値114を識別するためのチャンネル情報を表すために2ビットを使用し、残りの5ビットでα値の絶対値の大きさが設定される形態としても良い。
【0026】
透過度情報判定手段130は、画像合成手段120により合成しようとする2つの画像データの画素について、当該画素のα値114が所定の関係にあるか否かを判定する。
透過度情報判定手段130の一形態では、判定対象である2つの画素のα値114に係る符号が同一であるか否かを判定し、さらに、当該符号が正数であるか、負数であるかについても判定する。
【0027】
また、透過度情報判定手段130の他形態では、判定対象である2つの画素のチャンネル情報が等しいか否かを判定する。
【0028】
さらに、透過度情報判定手段130の他形態では、上記符号の判定を行うと共に、判定対象である2つの画素のチャンネル情報が等しいか否かを判定する。
【0029】
画像合成手段120は、一の画像データ格納手段110に格納される画像データ112と、他の画像データ格納手段110に格納される画像データ112とを画素毎に合成する。また、画像合成手段120は、上層の画像データ112から下層の画像データ112の順序で合成を行っていくものとする。
【0030】
さらに、画像合成手段120は、合成しようとする2つの画像データに関する画素のα値114について、透過度情報判定手段130により所定の関係にあると判定された場合に、所定の規則に従って2つの画素データを合成する。
【0031】
また、画像合成手段120の一形態では、合成しようとする2つの画像データ112に関する画素について、透過度情報判定手段130によりα値114の符号が同一であると判定された場合に、所定の規則に従って2つの画素を合成する。
【0032】
従来、α値114については、正の数の範囲でのみ処理が行われていたところ、本発明においてはα値114の範囲を負の数まで拡張して処理を行うこととする。こうすることによって、優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能とし、また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示可能となる。
【0033】
さらに、画像合成手段120の他形態では、合成しようとする2つの画像データ112に関する画素データについて、透過度情報判定手段130によりα値114のチャンネル情報が等しいと判定された場合に、所定の規則に従って2つの画素データを合成する。
【0034】
また、画像合成手段120の他形態では、両画素の符号が同一であるという要件を満たしたことに加え、合成しようとする2つの画像データに関する画素について、透過度情報判定手段130によりα値114のチャンネル情報が等しいと判定された場合に、所定の規則に従って2つの画素を合成する。
【0035】
ここで、α値114のチャンネル情報を画像合成手段120による画像合成処理に反映させる場合には、幾つかのバリエーションを考えることができる。その一つは、α値114の符号の正負に関わらず、透過度情報判定手段130によりα値114の符号及びチャンネル情報の同一性が確認された場合に、画像合成手段130による画像データ112の合成処理を行う仕様とすることである。
【0036】
もう一つは、α値114の符号が負であり、かつ、透過度情報判定手段130によりα値114の符号及びチャンネル情報の同一性が確認された場合に、画像合成手段130による画像データ112の合成処理を行う仕様とすることである。こうすることにより、α値114を正数として設計された既存リソースにも対応した処理が可能となる。
【0037】
上記のように、本発明においてはα値114に負の数の概念を導入すると共に、チャンネル情報を導入して画像データ112の合成処理を行う。こうすることによって、複数の画像データ112を合成したものを表示するに際して、透過対象の個別選択が可能となり、透過領域の重なりを考慮することなく、意図する画像データの合成が可能となる。
【0038】
ここで図6を用いて、上記の所定の規則について説明する。図6では、縦に合成対象となる画像データ112のα値114を示し、横に合成先となる画像データ112のα値114を示している。例えば、合成対象となる画像データ112のα値114が正数であり、かつ、合成先の画像データ112のα値114が正数であった場合には、「△」印で示される規則に従って、画像データ112の合成を行う。また、合成対象となる画像データ112のα値114が負数であり、かつ、合成先の画像データ112のα値114が負数であった場合には、「▲」印で示される規則に従って、画像データ112の合成を行う。
【0039】
図6における「○」印で示される規則では、合成対象となる画像データ112の画素データ値を合成先の画像データ112に書き込む。図6における「×」印で示される規則では、合成先の画像データ112は変更しない。図6における「×※」印で示される規則では、原則として合成先の画像データ112は変更しないが、処理順序が最終となるレイヤに対する合成処理時のみ、合成対象となる画像データ112を合成先の画像データ112に書き込む。
【0040】
そして、図6における「△」印で示される規則では、以下に示す式に基づく値を合成先の画像データ112に書き込む。ここで、合成先となる画像データ112の画素データを(ddR、ddG、ddB、ddα)、合成対象となる画像データ112の画素データを(ssR、ssG、ssB、ssα)、合成先となる画像データ112に書き戻す画素データを(ddR’、ddG’、ddB’、ddα’)とする。例えば、RGB値は各々0.0〜1.0の範囲で指定され、α値114は−1.0〜1.0の範囲で指定されるとしても良い。
ddR’=(ddR×ddα+ssR×ssα)/(ddα+ssα)
ddG’=(ddG×ddα+ssG×ssα)/(ddα+ssα)
ddB’=(ddB×ddα+ssB×ssα)/(ddα+ssα)
ddα’=larger(ssα、ddα)…(ssα、ddαの大きい方をddα’へ代入)
また、図6における「▲」印で示される規則では、以下に示す式に基づく値を合成先の画像データ112に書き込む。
ddR’=(ddR×ddα+ssR×ssα)/(ddα+ssα)
ddG’=(ddG×ddα+ssG×ssα)/(ddα+ssα)
ddB’=(ddB×ddα+ssB×ssα)/(ddα+ssα)
ddα’=larger(|ssα|、|ddα|)…(ssα、ddαの各絶対値の大きい方をddα’へ代入)
図6における「▲」印で示される規則では、書き戻すα値114は絶対値化され、正のα値114として書き戻される。これにより、負のα値114を持つ画素どうしの合成は1回までという制限を付すこととなる。これは、意図しない領域が合成されることを防止する効果を有する。
【0041】
画像合成手段120は、合成先である画像データ格納手段110の全ての画素に関して、初期化を行う。ここで初期化とは、画素データを(R、G、B、0)とすることである。ただしR、G、Bは各々、初期色を表す値である。
【0042】
画像合成手段120は、画像データ格納手段110に保持される画像データ112のα値114を正規化する。ここで正規化とは、α値114を表示装置260が規定する数値幅に調整する処理と、画像データ112を構成する全ての画素についてα値114を絶対値化する処理とをいう。
【0043】
画像合成手段120は、画像データ格納手段110に保持される画像データ112を表示装置260に転送する。
【0044】
以下で、画像生成装置100の処理の流れを説明する。
【0045】
上記説明のレンダリング処理によって描画された画像データ112が画像データ格納手段110に保持されている。
【0046】
画像合成手段120が、合成先の画像データ格納手段110を初期化する。続けて、画像合成手段120が、初期化した合成先である画像データ格納手段110の各画素と、合成対象である画像データ格納手段110に保持される画像データ112の各画素とを、合成する。
【0047】
そこで、透過度情報判定手段130が、画像合成手段120により合成される画素について、α値114の符号が同一であるか否かを判定する。そして、透過度情報判定手段130により2つの画像データ112に関するα値114が同一符号であると判定された場合に、画像合成手段120が、図6で示す「△」印または「▲」印の規則に従って、当該画素の合成を行う。そして、画像合成手段120は、上記合成を全ての画素について行う。
【0048】
上記に示した画像合成手段120と透過度情報判定手段130による画像データ112の合成処理を全ての画像データ格納手段110に対して行う。
【0049】
そして、全ての画像データ格納手段110に対して、上記の合成処理が終了すると、画像合成手段120が、合成先の画像データ格納手段110に保持される画像データ112に対して正規化処理を行う。
【0050】
さらに、画像合成手段120が、正規化処理を行った画像データ112を表示装置260に転送する。
【0051】
上記のような処理を行うことで、優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能とし、また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示可能とする画像生成装置を提供することができる。
【0052】
(本実施の形態に係る画像生成装置のハードウェア構成)
図7を用いて、本実施の形態に係る画像生成装置のハードウェア構成を説明する。図7は、本実施の形態に係る画像生成装置100のハードウェア構成の一例を示す図である。
【0053】
新規信号生成装置100は、CPU(Central Processing Unit)210、ROM(Read−Only Memory)220、RAM(Ramdom Access Memory)230、HDD(Hard Disk Drive)240、外部装置I/F(InterFace)250、表示装置260を有する。
【0054】
CPU210は、ROM220に記憶されたプログラムを実行する装置で、RAM230に展開(ロード)されたデータを、プログラムの命令に従って演算処理し、画像生成装置100の全体を制御する。
【0055】
ROM220は、CPU210が実行するプログラムやデータを記憶している。
【0056】
RAM230は、CPU210でROM220に記憶されたプログラムを実行する際に、実行するプログラムやデータが展開(ロード)され、演算の間、演算データを一時的に保持する。
【0057】
HDD240は、基本ソフトウェアであるOS(Operating System)、本実施の形態に関係するアプリケーションプログラムや機能拡張用のプラグインなどを、関連するデータとともに記憶する装置である。
【0058】
外部装置I/F250は、画像生成装置100と接続される他の装置とデータの送受信を行うためのインタフェースである。
【0059】
表示装置260は、ハードキーによるキースイッチとLCD(Liquid Crystal Display)とから構成され、画像生成装置100が有する機能をユーザが利用する際や、各種設定を行う際などのユーザインタフェースとして機能する装置である。本実施の形態において、画像合成手段120により合成された画像データ112は表示装置260に表示される。
【0060】
また、本実施の形態に係る画像生成装置100が有する各手段は、CPU210が、ROM220又はHDD240に記憶された各手段に対応するプログラムを実行することにより実現される。また、画像生成装置100が有する各手段は、ハードウェアによって実現される形態としても良い。
【0061】
(レンダリング処理について)
図8、図9を用いて、本実施の形態に係るレンダリング処理について説明する。図8は、本実施の形態に係るレンダリング処理及びレイヤ合成処理の概要を説明する図である。図9は、本実施の形態に係るレンダリング処理の例を示すフローチャートである。
【0062】
ここでは、上層レイヤ、中層レイヤ、下層レイヤの各レイヤへ図8に示すような描画物をレンダリングする処理について説明する。また、以下では上層レイヤに係る処理を対象として説明するが、中層レイヤ及び下層レイヤに対しても、上層レイヤに係る処理と同じ処理が平行して行われる。
【0063】
また、上位レイヤ、中層レイヤ、下層レイヤの各レイヤは、画像データ格納手段110に対応している。
【0064】
S10で画像生成装置100は、上層レイヤに対するレンダリング処理を開始する。
【0065】
S12で画像生成装置100は、上層レイヤの全ての画素に関して、α値114を0.0に設定する(初期化する)。
【0066】
S14で画像生成装置100は、上層レイヤに描画する描画物を奥に表示するものから手前に表示する順序にソートする。
【0067】
S16で画像生成装置100は、奥に表示する描画物から手前に表示する描画物へと順に、上層レイヤへ描画を行う。ここで、上層レイヤへの描画処理は、上層レイヤ(対象レイヤ)のα値114と描画物のα値114との関係を画素毎に比較して、図3に示す規則に従って画素毎に描画を行う。1つの描画物の全ての画素に対して上記の描画処理が終了すれば、次の描画物に対して同様の描画処理が施される。
【0068】
S18で画像生成装置100は、最も手前に描画する描画物の全ての画素に対して上記の描画処理が終了すればレンダリング処理を終了する。
【0069】
上記の処理によって、上層レイヤには図8に示すような画像データ112が保持される。上層レイヤに描画された画像データ112上には、α値114を−0.01とした領域Aが、下層レイヤの描画物を透過させるための透過窓として設定されている。
【0070】
(レイヤ合成処理について)
図8、図10を用いて、本実施の形態に係るレイヤ合成処理について説明する。図10は、本実施の形態に係るレイヤ合成処理の例を示すフローチャートである。
【0071】
ここでは、図8に示す上層レイヤに描画された画像データ112と、中層レイヤに描画された画像データ112と、下層レイヤに描画された画像データ112とを合成して、1つの画像データ112を合成先レイヤに生成する処理について説明する。画像合成手段120による画像の合成は、上層レイヤ、中層レイヤ、下層レイヤの順に行われる。
【0072】
また、上位レイヤ、中層レイヤ、下層レイヤの各レイヤは、画像データ格納手段110に対応している。
【0073】
S20で画像生成装置100は、レイヤ合成処理を開始する。
S22で画像合成手段120が、図8に示す合成先レイヤの全ての画素についてα値114を0.0にする(初期化する)。
【0074】
S24で画像合成手段120が、上層レイヤに保持される画像データ112を合成先レイヤへ、図6に示す規則に従って合成する。
【0075】
画像合成手段120による当該処理の結果、合成レイヤへ上層レイヤの画像データ112がデットコピーされる。
【0076】
S26で次の合成対象が中層レイヤである場合(S26でNoの場合)、S24で画像合成手段120が、中層レイヤに保持される画像データ112と合成先レイヤに保持される画像データ112(上層レイヤに保持される画像データ112のデットコピー)とを、図6に示す規則に従って合成する。
【0077】
例えば、領域Aに属する画素を図6に示す規則に従って合成すると、合成先レイヤのα値114が負数で、合成対象である中層レイヤのα値114が正数であるため、画像合成手段120は、画素データの合成を行わず、合成レイヤの画素データは変更無く保持される。
【0078】
一方、領域A以外の画素については、合成先レイヤの画像データ112と中層レイヤの画像データ112とは、図6に示した規則に従って合成される。
【0079】
S26で次の合成対象が最下層である下層レイヤである場合(S26でYesの場合)、S28で画像合成手段120が、下層レイヤに保持される画像データ112と合成先レイヤに保持される画像データ112とを、図6に示す規則に従って合成する。
【0080】
図8で示すように、中層レイヤに不透明度の高い画像データ112が存在しても、上層レイヤに設けた領域A(透過窓)に下層レイヤの画像データ112を透過させることができる。
【0081】
S30で画像合成手段120が、合成レイヤに保持する画像データ112のα値114を絶対値に変換して、表示装置260が規定する数値幅に調整する。
【0082】
S32で画像合成手段120が、合成レイヤに保持する画像データ112を表示装置260に転送し、表示装置260が、当該画像データ112を表示する。
【0083】
(画素毎の合成処理(1)について)
図8、図11を用いて、本実施の形態に係る画素毎の合成処理(1)について説明する。図11は、本実施の形態に係る画素毎の合成処理(1)の例を示すフローチャートである。
【0084】
ここでは、S24またはS28での処理について詳細な説明を行う。また、画像合成手段120による画像の合成は、上層レイヤ、中層レイヤ、下層レイヤの順に行われ、下記では、合成先レイヤの画像データ112と中層レイヤの画像データ112とを合成する処理について説明する。
【0085】
また、α値114は、図2で示されるように8ビットの情報であり、そのうち1ビットが正負の符号を表すために割り当てられ、残りの7ビットがα値の絶対値の大きさを表すために割り当てられているものとする。
【0086】
また、上位レイヤ、中層レイヤ、下層レイヤの各レイヤは、画像データ格納手段110に対応している。
【0087】
ここで、合成先となる画像データ112の画素データを(ddR、ddG、ddB、ddα)、合成対象となる画像データ112の画素データを(ssR、ssG、ssB、ssα)、合成先となる画像データ112に書き戻す画素データを(ddR’、ddG’、ddB’、ddα’)とする。また、各画素データはRGBA表色系で表されるものとし、RGB値は各々0.0〜1.0の範囲で指定され、α値は−1.0〜1.0の範囲で指定されるものとする。
【0088】
S40で画像生成装置100は、画素毎の合成処理を開始する。
S42で透過度情報判定手段130が、当該合成処理に係る位置について、合成先レイヤの画素に係るα値114と中層レイヤの画素に係るα値114の符号が同一か否かの判定を行い、同一であると判定した場合(S42でYesの場合)、S44の処理に移行する。
【0089】
S42で透過同情報判定手段130が、当該符号は同一でないと判定した場合(S42でNoの場合)、S50で画像合成手段120が、図6に示す規則に従い、合成先レイヤの画素に中層レイヤの画素データを書き込むか、合成先レイヤの画素データを変更しないとする処理を行う。
【0090】
S44で透過度情報判定手段130が、当該画素の符号は正であると判定した場合(S44でYesの場合)、S46で画像合成手段120が、下記の規則に従って、両画素データの合成を行う。
ddR’=(ddR×ddα+ssR×ssα)/(ddα+ssα)
ddG’=(ddG×ddα+ssG×ssα)/(ddα+ssα)
ddB’=(ddB×ddα+ssB×ssα)/(ddα+ssα)
ddα’=larger(ssα、ddα)…(ssα、ddαの大きい方をddα’へ代入)
S44で透過度情報判定手段130が、当該画素の符号は負であると判定した場合(S44でNoの場合)、S46で画像合成手段120が、下記の規則に従って、両画素値の合成を行う。
ddR’=(ddR×ddα+ssR×ssα)/(ddα+ssα)
ddG’=(ddG×ddα+ssG×ssα)/(ddα+ssα)
ddB’=(ddB×ddα+ssB×ssα)/(ddα+ssα)
ddα’=larger(|ssα|、|ddα|)…(ssαの絶対値、ddαの絶対値の大きい方をddα’へ代入)
S52で画像合成手段120による画素毎の合成処理が全て終了していれば(S52でYesの場合)、S54で画像生成装置100は画素毎の合成処理(1)を終了する。
【0091】
S52で画像合成手段120による画素毎の合成処理が全て終了していなければ(S52でNoの場合)、S42で透過度情報判定手段130が、当該合成処理が終わっていない位置について、合成先レイヤの画素に係るα値114と中層レイヤの画素に係るα値114の符号が同一か否かの判定を行う。
【0092】
従来、透過度情報であるα値は正数として処理が行われていたが、これを負数にまで拡張することで、優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能となった。また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示することが可能となった。
【0093】
(画素毎の合成処理(2)について)
図8、図12を用いて、本実施の形態に係る画素毎の合成処理(2)について説明する。図12は、本実施の形態に係る画素毎の合成処理(2)の例を示すフローチャートである。
【0094】
ここでは、図4で示すようにα値114がチャンネル情報を有する場合について説明する。上記で説明した画素毎の合成処理(1)に加えて、負数のα値114を有する画素のどうしであっても、両画素のチャンネル情報が等しくなければ画素の合成は行われないとする処理について説明する。
【0095】
また、α値114は、図5で示されるように8ビットの情報であり、そのうち1ビットが正負の符号を表すために割り当てられ、2ビットがチャンネル情報を表すために割り当てられ、残りの5ビットがα値の絶対値の大きさを表すために割り当てられているものとする。
【0096】
また、上位レイヤ、中層レイヤ、下層レイヤの各レイヤは、画像データ格納手段110に対応している。
【0097】
ここで、合成先となる画像データ112の画素データを(ddR、ddG、ddB、ddα)、合成対象となる画像データ112の画素データを(ssR、ssG、ssB、ssα)、合成先となる画像データ112に書き戻す画素データを(ddR’、ddG’、ddB’、ddα’)とする。また、画素データはRGBA表色系で表されるものとし、RGB値は各々0.0〜1.0の範囲で指定され、α値は−1.0〜1.0の範囲で指定されるものとする。
【0098】
S60で画像生成装置100は、画素の合成処理を開始する。
S62で透過度情報判定手段130が、当該合成処理に係る位置について、合成先レイヤの画素に係るα値114と中層レイヤの画素に係るα値114の符号が同一か否かの判定を行い、同一であると判定した場合(S62でYesの場合)、S64の処理に移行する。
【0099】
S62で透過同情報判定手段130が、当該符号は同一でないと判定した場合(S62でNoの場合)、S74で画像合成手段120が、図6に示す規則に従い、合成先レイヤの画素に中層レイヤの画素データを書き込むか、合成先レイヤの画素データを変更しないとする処理を行う。
【0100】
S64で透過度情報判定手段130が、当該画素の符号は正であると判定した場合(S64でYesの場合)、S66で画像合成手段120が、下記の規則に従って、両画素データの合成を行う。
ddR’=(ddR×ddα+ssR×ssα)/(ddα+ssα)
ddG’=(ddG×ddα+ssG×ssα)/(ddα+ssα)
ddB’=(ddB×ddα+ssB×ssα)/(ddα+ssα)
ddα’=larger(ssα、ddα)…(ssα、ddαの大きい方をddα’へ代入)
S64で透過度情報判定手段130が、当該画素の符号は負であると判定した場合(S64でNoの場合)、S68の処理に移行する。
【0101】
S68で透過度情報判定手段130が、両画素のチャンネル情報は等しいと判定した場合(S68でYesの場合)、S70で画像合成手段120が、下記の規則に従って、両画素データの合成を行う。
ddR’=(ddR×ddα+ssR×ssα)/(ddα+ssα)
ddG’=(ddG×ddα+ssG×ssα)/(ddα+ssα)
ddB’=(ddB×ddα+ssB×ssα)/(ddα+ssα)
ddα’=larger(|ssα|、|ddα|)…(ssαの絶対値、ddαの絶対値の大きい方をddα’へ代入)
S68で透過度情報判定手段130が、両画素のチャンネル情報は異なると判定した場合(S68でNoの場合)、S72で画像合成手段120が、合成先レイヤの画素データを変更しないとする処理を行う。
【0102】
S76で画像合成手段120による画素毎の合成処理が全て終了していれば(S76でYesの場合)、S78で画像生成装置100は画素毎の合成処理(1)を終了する。
【0103】
S76で画像合成手段120による画素毎の合成処理が全て終了していなければ(S76でNoの場合)、S62で透過度情報判定手段130が、当該合成処理が終わっていない位置について、合成先レイヤの画素に係るα値114と中層レイヤの画素に係るα値114の符号が同一か否かの判定を行う。
【0104】
一律に負のα値を有する画素どうしをレイヤ合成処理で合成することは、下層の合成されるべき領域の描画に対して、ある程度の領域制御が必要となる。これを解決するために、負の領域にα値をさらに機能拡張して、チャンネル情報を付加した。
【0105】
これにより、描画に際して、透過対象の個別選択が可能となり、透過領域の重なりを考慮することなく、意図する合成が可能となる。
【0106】
(総括)
上記のような処理を行うことで、本発明では、優先度パラメータを設けることなく、任意の下位層にある特定画素を表示することを可能とし、また、中間層に低い透過度情報を有する画像が存在しても該画像に阻害されることなく、下層の画像を表示可能とする画像生成装置を提供することができる。
【0107】
以上、本発明の実施の形態について詳述したが、本発明は係る特定の実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲において、種々の変形・変更が可能である。
【図面の簡単な説明】
【0108】
【図1】本実施の形態に係る画像生成装置の処理の概要を説明するための図である。
【図2】本実施の形態に係る拡張した透過度情報の設定方法を説明するための図である。
【図3】本実施の形態に係るレンダリング処理時に画素を合成する規則について説明するための図である。
【図4】本実施の形態に係る画像生成装置の動作原理を説明するための図である。
【図5】本実施の形態に係る拡張した透過度情報の設定方法を説明するための図である。
【図6】本実施の形態に係るレイヤ合成処理時に画素を合成する規則について説明するための図である。
【図7】本実施の形態に係る画像生成装置のハードウェア構成の一例を示す図である。
【図8】本実施の形態に係るレンダリング処理及びレイヤ合成処理の概要を説明する図である。
【図9】本実施の形態に係るレンダリング処理例を示すフローチャートである。
【図10】本実施の形態に係るレイヤ合成処理例を示すフローチャートである。
【図11】本実施の形態に係る画素毎の合成処理例(1)を示すフローチャートである。
【図12】本実施の形態に係る画素毎の合成処理例(2)を示すフローチャートである。
【符号の説明】
【0109】
100 画像生成装置
110 画像データ格納手段
112 画像データ
114 透過度情報(α値)
120 画像合成手段
130 透過度情報判定手段
210 CPU
220 ROM
230 RAM
240 HDD
250 外部装置I/F
260 表示装置
【特許請求の範囲】
【請求項1】
画像データを構成する画素毎に、該画素の透過度情報を保持する画像データを格納する複数の画像データ格納手段と、
前記画像データ格納手段に格納される一の前記画像データと前記画像データ格納手段に格納される他の前記画像データとを画素毎に合成する画像合成手段と、
前記画像合成手段により合成される前記画素について、前記一の画像データに関する前記透過度情報と前記他の画像データに関する前記透過度情報とが所定の関係にあるか否かを判定する透過度情報判定手段と、を有する画像生成装置であって、
前記画像合成手段は、前記透過度情報判定手段により前記所定の関係にあると判定された場合に、所定の規則に従って前記画素を合成することを特徴とする画像生成装置。
【請求項2】
前記透過度情報は、正又は負の符号を有する数値情報であり、
前記透過度情報判定手段は、前記一の画像データに関する前記透過度情報の前記符号と前記他の画像データに関する前記透過度情報の前記符号とが同一か否かを判定することを特徴とする請求項1に記載の画像生成装置。
【請求項3】
前記透過度情報は、当該透過度情報を識別するためのチャンネル情報を有する情報であり、
前記透過度情報判定手段は、前記一の画像データに関する前記透過度情報の前記チャンネル情報と前記他の画像データに関する前記透過度情報の前記チャンネル情報とが等しいか否かを判定することを特徴とする請求項1又は2に記載の画像生成装置。
【請求項1】
画像データを構成する画素毎に、該画素の透過度情報を保持する画像データを格納する複数の画像データ格納手段と、
前記画像データ格納手段に格納される一の前記画像データと前記画像データ格納手段に格納される他の前記画像データとを画素毎に合成する画像合成手段と、
前記画像合成手段により合成される前記画素について、前記一の画像データに関する前記透過度情報と前記他の画像データに関する前記透過度情報とが所定の関係にあるか否かを判定する透過度情報判定手段と、を有する画像生成装置であって、
前記画像合成手段は、前記透過度情報判定手段により前記所定の関係にあると判定された場合に、所定の規則に従って前記画素を合成することを特徴とする画像生成装置。
【請求項2】
前記透過度情報は、正又は負の符号を有する数値情報であり、
前記透過度情報判定手段は、前記一の画像データに関する前記透過度情報の前記符号と前記他の画像データに関する前記透過度情報の前記符号とが同一か否かを判定することを特徴とする請求項1に記載の画像生成装置。
【請求項3】
前記透過度情報は、当該透過度情報を識別するためのチャンネル情報を有する情報であり、
前記透過度情報判定手段は、前記一の画像データに関する前記透過度情報の前記チャンネル情報と前記他の画像データに関する前記透過度情報の前記チャンネル情報とが等しいか否かを判定することを特徴とする請求項1又は2に記載の画像生成装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2009−282716(P2009−282716A)
【公開日】平成21年12月3日(2009.12.3)
【国際特許分類】
【出願番号】特願2008−133585(P2008−133585)
【出願日】平成20年5月21日(2008.5.21)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
【公開日】平成21年12月3日(2009.12.3)
【国際特許分類】
【出願日】平成20年5月21日(2008.5.21)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
[ Back to top ]