(57)【要約】【課題】  映像処理装置及びその方法を提供する。【解決手段】以前のドローコマンドと同一なドローコマンドが入力されるか否かを決定する段階と、以前のドローコマンドにより実行された以前のフレームの透明度についての情報を獲得する段階と、透明度についての情報に基づいて、現在のフレームに対する映像処理を実行する段階と、を含む映像処理方法である。【選択図】      図３
2015076102.tif 000002
【特許請求の範囲】
【請求項１】
以前のドローコマンドと同一なドローコマンドが入力されたか否かを決定する段階と、
前記以前のドローコマンドにより実行された以前のフレームの透明度についての情報を獲得する段階と、
前記透明度についての情報に基づいて、現在のフレームに対する映像処理を実行する段階と、を含む映像処理方法。
【請求項２】
前記決定する段階は、
前記以前のドローコマンドと、入力されたドローコマンドとにおいて、その全体、必須部分または要約情報を比較して、同一なドローコマンドであるか否かを決定する請求項１に記載の映像処理方法。
【請求項３】
前記決定する段階は、
前記以前のドローコマンドと、入力されたドローコマンドとが、少なくとも一つの同一なプリミティブを含むか否かを決定する請求項１に記載の映像処理方法。
【請求項４】
前記決定する段階は、
前記以前のドローコマンドと、入力されたドローコマンドとが、少なくとも一つの同一なオブジェクトを含むか否かを決定する請求項１に記載の映像処理方法。
【請求項５】
前記獲得する段階は、
前記以前のフレームに含まれたプリミティブまたはオブジェクトについての透明度を獲得する請求項１ないし４いずれか一項に記載の映像処理方法。
【請求項６】
前記獲得する段階は、
前記プリミティブまたはオブジェクトを構成するピクセルが、予め設定された割合よりも高い場合、前記プリミティブまたはオブジェクトを透明なものとして設定する段階を含む請求項１ないし４いずれか一項に記載の映像処理方法。
【請求項７】
前記映像処理を実行する段階は、
前記以前のフレームに含まれていた透明なプリミティブまたはオブジェクトは、前記現在のフレームでも透明なものとして設定し、映像処理を実行する請求項１ないし６いずれか一項に記載の映像処理方法。
【請求項８】
前記映像処理を実行する段階は、
前記透明度についての情報によって、透明なフラグメントが不透明なフラグメントよりも以前に位置する場合、不透明なフラグメントを優先的にシェーディングする請求項１ないし６いずれか一項に記載の映像処理方法。
【請求項９】
以前のドローコマンドと、現在のドローコマンドとが同一であるか否かを決定する段階と、
前記以前のドローコマンドと、前記現在のドローコマンドとが同一な場合、前記以前のドローコマンドによるレンダリング過程で獲得された深さ情報及び透明度情報を獲得する段階と、
前記深さ情報及び透明度情報に基づいて、現在のフレームについての隠蔽面を除去する段階と、を含む映像処理方法。
【請求項１０】
前記獲得する段階は、
前記レンダリング過程で、深さによってフラグメントの透明度を表す情報を獲得する請求項９に記載の映像処理方法。
【請求項１１】
前記隠蔽面を除去する段階は、
前記深さ情報及び前記透明度情報を、現在のフレームのフラグメントにも同様に適用して、透明なフラグメントが不透明なフラグメントよりも以前に位置する場合、シェーディングする順序を逆に実行する請求項９または１０に記載の映像処理方法。
【請求項１２】
以前のドローコマンドと同一なドローコマンドが入力されるか否かを決定する決定部と、
前記以前のドローコマンドにより実行された以前のフレームの透明度についての情報を獲得する獲得部と、
前記透明度についての情報に基づいて、現在のフレームに対する映像処理を実行する映像処理部と、を備える映像処理装置。
【請求項１３】
前記決定部は、前記以前のドローコマンドと、入力されたドローコマンドとにおいて、その全体、必須部分または要約情報を比較して、同一なドローコマンドであるか否かを決定する請求項１２に記載の映像処理装置。
【請求項１４】
前記決定部は、前記以前のドローコマンドと、入力されたドローコマンドとが、少なくとも一つの同一なプリミティブを含むか否かを決定する請求項１２に記載の映像処理装置。
【請求項１５】
前記決定部は、前記以前のドローコマンドと、入力されたドローコマンドとが、少なくとも一つの同一なオブジェクトを含むか否かを決定する請求項１２に記載の映像処理装置。
【請求項１６】
前記獲得部は、前記以前のフレームに含まれていたプリミティブまたはオブジェクトについての透明度如何を獲得する請求項１２ないし１５いずれか一項に記載の映像処理装置。
【請求項１７】
前記獲得部は、前記プリミティブまたはオブジェクトを構成するピクセルが、予め設定された割合よりも高い場合、前記プリミティブまたはオブジェクトを透明なものとして設定する請求項１２ないし１５いずれか一項に記載の映像処理装置。
【請求項１８】
前記映像処理部は、前記以前のフレームに含まれていた透明なプリミティブまたはオブジェクトは、前記現在のフレームでも透明なものとして設定し、映像処理を実行する請求項１２ないし１７いずれか一項に記載の映像処理装置。
【請求項１９】
前記映像処理部は、前記透明度についての情報によって、透明なフラグメントが不透明なフラグメントよりも以前に位置する場合、不透明なフラグメントを優先的にシェーディングする請求項１２ないし１７いずれか一項に記載の映像処理装置。
【請求項２０】
コンピュータに、請求項１ないし１１のうちいずれか一項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像処理装置及び方法に関する。
【背景技術】
【０００２】
３ＤグラフィックスＡＰＩ(Application  Program  Interface)標準には、ＯｐｅｎＧＬ、ＯｐｅｎＧＬ  ＥＳまたはＤｉｒｅｃｔ  ３などがある。ＡＰＩ標準は、各フレームに対するレンダリングを行い、映像を表示する方法を含む。各フレームに対するレンダリングを行う時、多くの演算が行われ、多くの電力が消耗する。したがって、レンダリングを行う時、演算量を減らし、メモリにアクセスする回数を減らす必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、透明なオブジェクトまたはプリミティブを含むフレームに対するレンダリングを行う時、演算量を減らすための映像処理装置及びその方法を提供することにある。
【０００４】
本発明の他の目的は、前記方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供することにある。本実施形態が解決しようとする課題は、前述したような課題に限定されず、以下の実施形態から他の課題が類推されもする。
【課題を解決するための手段】
【０００５】
前記目的を達成するために、一実施形態による映像処理方法は、以前のドローコマンドと同一なドローコマンドが入力されるか否かを決定する段階と、前記以前のドローコマンドにより実行された以前のフレームの透明度についての情報を獲得する段階と、前記透明度についての情報に基づいて、現在のフレームに対する映像処理を実行する段階と、を含む。
【０００６】
他の実施形態による映像処理方法は、以前のドローコマンドと、現在のドローコマンドとが同一であるか否かを決定する段階と、前記以前のドローコマンドと、前記現在のドローコマンドとが同一な場合、前記以前のドローコマンドによるレンダリング過程で獲得された深さ情報及び透明度情報を獲得する段階と、前記深さ情報及び透明度情報に基づいて、現在のフレームについての隠蔽面を除去する段階と、を含む。
【０００７】
さらに他の実施形態による映像処理装置は、以前のドローコマンドと同一なドローコマンドが入力されるか否かを決定する決定部と、前記以前のドローコマンドにより実行された以前のフレームの透明度についての情報を獲得する獲得部と、前記透明度についての情報に基づいて、現在のフレームに対する映像処理を実行する映像処理部と、を含む。
【発明の効果】
【０００８】
本発明によれば、以前のフレームから獲得されたオブジェクトまたはプリミティブについての透明度情報を、現在のフレームのオブジェクトまたはプリミティブに適用することによって、映像の処理時に必要な演算量を減らすことができる。
【０００９】
また、フレーム間の重なるオブジェクトの属性が変わらないという点を利用して、現在のフレームについての映像を処理するので、同一なオブジェクトに対する映像処理を効率的に実行することができる。
【００１０】
さらに、ドローコマンドの同一性を判断して、フレーム間の重なるオブジェクトが含まれるか否かを決定することができる。
【図面の簡単な説明】
【００１１】
【図１】三次元映像を処理する過程を説明するための図面である。
【図２】隠蔽面を除去する方法を説明するための図面である。
【図３】一実施形態による映像処理装置を説明するための図面である。
【図４】一実施形態による映像処理方法を説明するための図面である。
【図５】他の実施形態による映像処理装置を説明するための図面である。
【図６】さらに他の実施形態による映像処理装置を説明するための図面である。
【図７】さらに他の実施形態による映像処理装置を説明するための図面である。
【図８】他の実施形態による映像処理方法を説明するためのフローチャートである。
【図９】さらに他の実施形態による映像処理方法を説明するためのフローチャートである。
【図１０】さらに他の実施形態による、ドローコマンドの同一性による映像処理方法を説明するためのフローチャートである。
【図１１】さらに他の実施形態による、プリミティブの透明度による映像処理方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、実施形態を詳細に説明する。
【００１３】
図１は、三次元映像を処理する過程を説明するための図面である。図１を参照すれば、段階１１ないし段階１７を通じて、三次元映像を処理する過程を表す。
【００１４】
段階１１は、映像を表す頂点を生成する段階である。頂点は、映像に含まれたオブジェクトを表すために生成される。
【００１５】
段階１２は、生成された頂点をシェーディングする段階である。頂点シェーダは、段階１１で生成された頂点の色を指定して、頂点に対するシェーディングを行う。
【００１６】
段階１３は、プリミティブを生成する段階である。プリミティブは、点、線または頂点から形成される多角形を表す。一例として、プリミティブは、頂点を連結して形成された三角形を表すこともできる。
【００１７】
段階１４は、プリミティブをラスター化する段階である。プリミティブをラスター化することは、プリミティブを複数のフラグメントに分割することを表す。フラグメントは、プリミティブを構成する単位であって、映像処理を実行するための基本単位である。プリミティブは、頂点についての情報のみを含む。したがって、ラスター化する段階において、頂点間のフラグメントを生成する時に補間が行われる。
【００１８】
段階１５は、ピクセルをシェーディングする段階である。図１では、ピクセル単位でシェーディングが行われることを示しているが、フラグメント単位でシェーディングが行われてもよい。例えば、ピクセルまたはフラグメントをシェーディングすることは、ピクセルまたはフラグメントの色を指定する。
【００１９】
段階１６は、ピクセルまたはフラグメントをテクスチャリングする段階である。テクスチャリングは、ピクセルまたはフラグメントの色を指定する時、予め生成されたイメージを利用する方法である。例えば、シェーディングは、フラグメントにどの色を指定するのか計算を通じて行うが、テクスチャリングは、予め生成されたイメージと対応するフラグメントに、イメージの色と同一な色を指定する方法である。
【００２０】
段階１５または段階１６の場合、それぞれのピクセルまたはフラグメントをシェーディングまたはテクスチャリングするために、多くの演算が要求される。したがって、シェーディングまたはテクスチャリングする段階をより効率的に行って、演算量を減らす必要がある。シェーディング過程で演算量を減らす代表的な方法として、隠蔽面除去(Hidden  Surface  Removal:  HSR)がある。隠蔽面除去方法は、前方に位置したオブジェクトにより隠されたオブジェクトに対して、シェーディングを行わない方法である。隠蔽面除去方法については、図２を参照して、さらに詳細に説明する。
【００２１】
段階１７は、テスト及びミキシングを行う段階である。
【００２２】
段階１８は、フレームバッファに保存されたフレームを表示する段階である。段階１１ないし段階１７を通じて生成されたフレームは、フレームバッファに保存される。フレームバッファに保存されたフレームは、ディスプレイ装置を通じて表示される。
【００２３】
図２は、隠蔽面を除去する方法を説明するための図面である。隠蔽面除去方法は、シェーディング過程で演算量を減らす代表的な方法である。隠蔽面除去方法は、前方に位置したオブジェクトにより隠されたオブジェクトに対して、シェーディングを行わない方法である。三次元空間に複数のオブジェクトが存在する時、複数のオブジェクトは重畳される。例えば、図２において、三次元空間に複数のオブジェクト２０，３０，４０が存在する。焦点５０からオブジェクト２０，３０，４０を見れば、複数のオブジェクトは互いに重畳される。したがって、第２オブジェクト３０は、第１オブジェクト２０により一部の領域３５が隠される。また、第３オブジェクト４０は、第１及び第２オブジェクト２０，３０により一部の領域４５が隠される。したがって、前方に位置したオブジェクトにより隠される領域３５，４５は、フレームで表示されていないので、色を指定する必要がない。したがって、領域３５，４５に対するシェーディングを行わないことを、隠蔽面除去方法という。
【００２４】
図３は、一実施形態による映像処理装置を説明するための図面である。図３を参照すれば、映像処理装置１００は、決定部１１０、獲得部１２０及び映像処理部１３０を含む。映像処理装置１００は、フラグメントに対するシェーディングを行う。その時、映像処理装置１００は、以前のフレームの透明度情報を利用して、現在のフレームに対するシェーディングを行う。例えば、映像処理装置１００は、以前のフレームから獲得されたオブジェクトまたはプリミティブについての透明度情報を、現在のフレームのオブジェクトまたはプリミティブに適用することによって、映像の処理時に必要な演算量を減らすことができる。
【００２５】
映像処理装置１００は、フレーム間の重なるオブジェクトの属性が変わらないという点を利用して、現在のフレームについての映像を処理するので、同一なオブジェクトに対する映像処理を効率的に実行することができる。
【００２６】
映像処理装置１００は、以前のドローコマンドによるレンダリング過程で獲得された深さ情報及び透明度情報を利用して、隠蔽面を除去する。深さ情報は、深さによって変わるフラグメントの情報を表す。例えば、深さを表す変数をＺとする時、Ｚ＝１は、最初のフラグメントの深さを表し、Ｚ＝２は、二番目のフラグメントの深さを表す。透明度情報は、オブジェクトまたはプリミティブの透明、半透明または不透明などを表す情報である。透明度情報は、オブジェクト、プリミティブ、またはフラグメントの単位に区分して保存される。映像処理装置１００は、以前のドローコマンドによりレンダリングを行い、レンダリングを行う過程で、オブジェクト、プリミティブ、またはフラグメントの透明、半透明または不透明を決定する。映像処理装置１００は、決定された透明度情報を保存し、次のドローコマンドを実行する時、透明度情報を利用して、隠蔽面を除去する。例えば、映像処理装置１００は、不透明なオブジェクトの場合、不透明なオブジェクトに対するシェーディングのみを行う。しかし、映像処理装置１００は、透明なオブジェクトの場合、透明なオブジェクトの後方に位置したオブジェクトに対するシェーディングを共に行う。その時、透明なオブジェクトであるか否かは、以前に行われたレンダリング過程で獲得された透明度情報を利用して決定される。
【００２７】
映像処理装置１００は、少なくとも一つのプロセッサを含む。また、映像処理装置１００に含まれた決定部１１０、獲得部１２０及び映像処理部１３０は、プロセッサにより具現される。例えば、決定部１１０、獲得部１２０及び映像処理部１３０は、プロセッサの一部の領域に具現された論理回路またはプログラムである。または、決定部１１０、獲得部１２０及び映像処理部１３０は、それぞれ別途のプロセッサにより具現される。
【００２８】
決定部１１０は、以前のドローコマンドと同一なドローコマンドが入力されるか否かを決定する。決定部１１０は、ドローコマンドの同一性を判断して、フレーム間の重なるオブジェクトまたはプリミティブが含まれるか否かを決定する。
【００２９】
ドローコマンドは、オブジェクトまたはプリミティブについての情報を含む。言い換えれば、ドローコマンドは、いかなるオブジェクトまたはプリミティブに対して、レンダリングを行うのかを表す情報を含む。
【００３０】
例えば、決定部１１０は、以前のドローコマンドと、入力されたドローコマンドとの全体、必須部分または要約情報を比較して、同一なドローコマンドであるか否かを決定する。例えば、決定部１１０は、必須部分または一部が同一であれば、以前のドローコマンドと、入力されたドローコマンドとが同一であると決定する。
【００３１】
決定部１１０は、以前のドローコマンドと、入力されたドローコマンドとが、少なくとも一つの同一なオブジェクトを含むか否かを決定する。また、決定部１１０は、以前のドローコマンドと、入力されたドローコマンドとが、少なくとも一つの同一なプリミティブを含むか否かを決定する。
【００３２】
決定部１１０は、以前のドローコマンドと、現在のドローコマンドとの一部が同一である場合、一部に対してのみ、同一なものと決定する。例えば、決定部１１０は、以前のドローコマンドに含まれたオブジェクトと、現在のドローコマンドに含まれたオブジェクトとが同一なものと決定する。また、決定部１１０は、以前のドローコマンドに含まれたプリミティブと、現在のドローコマンドに含まれたプリミティブとが同一なものと決定する。
【００３３】
獲得部１２０は、以前のフレームの透明度についての情報を獲得する。以前のフレームは、以前のドローコマンドにより実行された映像である。獲得部１２０は、以前のフレームに含まれたプリミティブまたはオブジェクトについての透明度を獲得する。
【００３４】
獲得部１２０は、プリミティブまたはオブジェクトを構成するピクセルの透明度の割合が、予め設定された割合よりも高い場合、プリミティブまたはオブジェクトを透明なものとして設定する。また、獲得部１２０は、プリミティブまたはオブジェクトを構成するフラグメントの透明度の割合が、予め設定された割合よりも高い場合、プリミティブまたはオブジェクトを透明なものとして設定する。例えば、獲得部１２０は、プリミティブのフラグメントのうち、９０％以上のフラグメントが透明な場合、プリミティブを透明なものとして設定する。
【００３５】
獲得部１２０は、以前のドローコマンドと、現在のドローコマンドとが同一な場合、以前のドローコマンドによるレンダリング過程で獲得された深さ情報及び透明度情報を獲得する。言い換えれば、獲得部１２０は、以前のドローコマンドによるレンダリング過程で、深さによってフラグメントの透明度を表す情報を獲得する。
【００３６】
映像処理部１３０は、透明度についての情報に基づいて、現在のフレームに対する映像処理を実行する。映像処理部１３０は、以前のフレームに含まれた透明なプリミティブまたはオブジェクトは、現在のフレームでも透明なものとして設定し、映像処理を実行する。
【００３７】
したがって、映像処理装置１００は、どのオブジェクトが透明であるか予め設定したので、透明なオブジェクトに対して、深さ方向にシェーディングを行う過程を省略し、逆方向にシェーディングを行う。
【００３８】
映像処理部１３０は、深さ情報及び透明度情報を、現在のフレームのフラグメントにも同様に適用して、透明なフラグメントが、不透明なフラグメントよりも以前に位置する場合、シェーディングする順序を逆に行う。言い換えれば、映像処理部１３０は、不透明なフラグメントを先にシェーディングし、透明なフラグメントを後でシェーディングする。映像処理部１３０は、不透明なフラグメントを優先的にシェーディングすることによって、不要な演算を減らすことができる。映像処理部１３０が、透明なフラグメントを優先的にシェーディングすれば、以後に不透明なフラグメントをシェーディングし、再び透明なフラグメントをシェーディングする不要な演算が行われる。したがって、映像処理部１３０は、透明度についての情報によって、透明なフラグメントが、不透明なフラグメントよりも以前に位置する場合、不透明なフラグメントを優先的にシェーディングする。
【００３９】
映像処理部１３０は、深さ情報及び透明度情報に基づいて、現在のフレームについての隠蔽面を除去する。透明なフラグメントが、不透明なフラグメントよりも以前に位置する場合、映像処理部１３０は、不透明なフラグメントを優先的にシェーディングして、不透明なフラグメントの後方に位置した隠蔽面を除去する。映像処理部１３０は、不透明なフラグメントよりも深い位置のフラグメントはシェーディングしないことによって、隠蔽面を除去する。
【００４０】
図４は、一実施形態による映像処理方法を説明するための図面である。図４を参照すれば、透明なプリミティブ５１が、不透明なプリミティブ５２よりも以前に位置した場合、映像処理を実行する段階を示す。
【００４１】
透明なプリミティブ５１及び不透明なプリミティブ５２の透明度は、プリミティブ透明度バッファ１２５に保存されている。したがって、プリミティブ５１及びプリミティブ５２が透明であるか不透明であるかは、プリミティブ透明度バッファ１２５から読み取られる。
【００４２】
段階５３は、プリミティブ５１，５２に対するラスターを行う段階である。すなわち、段階５３において、プリミティブ５１，５２は、複数のフラグメントに分割される。
【００４３】
段階５４は、フラグメントを深さによって分類し、隠蔽面を除去する段階である。フラグメントが深さによって分類され、不透明なフラグメントよりもさらに深く位置したフラグメントは、隠蔽面として決定されて除去される。
【００４４】
段階５５は、深さによって分類されたフラグメントを表す。図４では、透明なフラグメントが、不透明なフラグメントよりも以前に位置した場合を示す。透明なフラグメントと、不透明なフラグメントは、共に段階５６へ伝送される。
【００４５】
段階５６は、フラグメントに対するシェーディング及びテクスチャリングを行う段階である。透明なフラグメントが、不透明なフラグメントよりも以前に位置した場合、透明なフラグメントと、不透明なフラグメントとが共に受信される。したがって、段階５６では、不透明なフラグメントに対するシェーディングを先に行う。段階５６では、不透明なフラグメントに対するシェーディングまたはテクスチャリングを行った後に、透明なフラグメントに対するシェーディングまたはテクスチャリングを行う。
【００４６】
段階５６が終了すれば、ドローコマンドＩＤ、プリミティブＩＤ、及び透明度情報が、プリミティブ透明度バッファ１２５に保存される。ドローコマンドＩＤは、ドローコマンドを識別するための固有の名称である。プリミティブＩＤは、プリミティブを識別するための固有の名称である。透明度情報は、プリミティブまたはオブジェクトの透明度を表す情報である。
【００４７】
図５は、他の実施形態による映像処理装置を説明するための図面である。図５は、図３に示した映像処理装置１００の他の例を示す図面である。したがって、以下省略した内容であるとしても、映像処理装置１００に関して説明した内容は、図５の実施形態による映像処理装置１００にも適用される。
【００４８】
図５を参照すれば、映像処理装置１００は、ドローコマンド履歴バッファ１１５、プリミティブ透明度バッファ１２５、及びフラグメントバッファ１３５をさらに含む。
【００４９】
ドローコマンド履歴バッファ１１５は、入力されたドローコマンドを保存する。ドローコマンド履歴バッファ１１５は、メモリの一部分である。
【００５０】
決定部１１０は、ドローコマンド履歴バッファ１１５に保存されたドローコマンドと、入力された現在のドローコマンドとを比較する。決定部１１０は、以前のドローコマンドを検索するために、ドローコマンド履歴バッファ１１５に接続する。ドローコマンド履歴バッファ１１５は、ドローコマンドが入力される度にアップデートされる。
【００５１】
同一なドローコマンドが入力された場合、決定部１１０は、獲得部１２０へ関連情報を伝送する。フレームは、ドローコマンドにより実行された映像を表す。したがって、決定部１１０は、現在のドローコマンドに含まれたオブジェクトまたはプリミティブと同一なオブジェクトまたはプリミティブが、以前のフレームに含まれたことを表す関連情報を、獲得部１２０へ伝送する。
【００５２】
プリミティブ透明度バッファ１２５は、プリミティブの透明度についての情報を保存する。言い換えれば、プリミティブ透明度バッファ１２５は、プリミティブが透明であるか不透明であるかを表す情報を保存する。プリミティブ透明度バッファ１２５は、メモリの一部分である。
【００５３】
獲得部１２０は、プリミティブ透明度バッファ１２５から、プリミティブの透明度についての情報を獲得する。獲得部１２０は、プリミティブ透明度バッファ１２５に保存されたデータを検索し、現在処理するプリミティブと同一なプリミティブを探す。同一なプリミティブが、プリミティブ透明度バッファ１２５に保存されている場合、獲得部１２０は、プリミティブ透明度バッファ１２５に保存された透明度についての情報を参照して、プリミティブが透明であるか不透明であるかを決定する。
【００５４】
獲得部１２０は、決定部１１０から入力された関連情報に基づいて、プリミティブ透明度バッファ１２５を検索する。言い換えれば、獲得部１２０は、以前にレンダリングが行われたオブジェクトまたはプリミティブを表す関連情報を受信し、プリミティブ透明度バッファ１２５を検索して、以前にレンダリングが行われたオブジェクトまたはプリミティブの透明度についての情報を獲得する。
【００５５】
獲得部１２０は、処理の対象であるオブジェクトまたはプリミティブの透明度についての情報を、映像処理部１３０に出力する。
【００５６】
フラグメントバッファ１３５は、深さによるフラグメントについての情報を保存する。例えば、フラグメントバッファ１３５は、任意の視点から見る時、深さが深くなるほど、いかなるフラグメントが存在するかについての情報を保存する。フラグメントバッファ１３５は、メモリの一部分である。
【００５７】
映像処理部１３０は、フラグメントバッファ１３５から情報を読み取り、映像処理を実行する。例えば、映像処理部１３０は、フラグメントバッファ１３５から読み取られた情報を利用して、隠蔽面を除去する。また、映像処理部１３０は、フラグメントバッファ１３５から読み取られた情報を利用して、シェーディングまたはテクスチャリングを行う。
【００５８】
映像処理部１３０は、獲得部１２０から、映像処理の対象であるプリミティブの透明度についての情報を受信する。映像処理部１３０は、プリミティブが透明な場合と、不透明な場合とを区分して、映像処理を実行する。例えば、プリミティブが透明な場合、映像処理部１３０は、深さ方向に不透明なプリミティブが存在するか否かを判断し、不透明なプリミティブに隠された部分は除去する。プリミティブが不透明な場合、映像処理部１３０は、不透明なプリミティブに隠された部分を除去する。
【００５９】
図６は、さらに他の実施形態による映像処理装置を説明するための図面である。図６は、図３に示した映像処理装置１００のさらに他の例を示す図面である。したがって、以下省略した内容であるとしても、映像処理装置１００に関して説明した内容は、図６の実施形態による映像処理装置１００にも適用される。
【００６０】
図６を参照すれば、映像処理装置１００は、プロセッサ１４０と、ディスプレイ部１５０とを含む。プロセッサ１４０は、以前のドローコマンドと同一なドローコマンドが入力されるか否かを決定し、以前のドローコマンドにより実行された以前のフレームの透明度についての情報を獲得し、透明度についての情報に基づいて、現在のフレームに対する映像処理を実行する。例えば、プロセッサ１４０が実行する映像処理は、幾何学処理及びレンダリングがある。
【００６１】
幾何学処理は、三次元座標系の物体を視点によって変換し、二次元座標系に投影処理する過程である。
【００６２】
幾何学処理は、頂点シェーディングを行う過程、すなわち、三次元座標系の物体の頂点を決定し、頂点の位置を決定する過程を含む。
【００６３】
幾何学処理は、プリミティブを生成する過程を含む。プリミティブは、頂点を連結して生成される。例えば、プリミティブは、三角形、四角形などの多角形である。
【００６４】
レンダリングは、二次元座標系の映像の色を決定して、フレームバッファに保存し、ディスプレイされる二次元映像を生成する過程である。また、レンダリングは、視点の変更によって変わる二次元映像を生成する過程であるといえる。したがって、レンダリングを通じて見えない隠蔽面は除去され、二次元映像を構成するピクセルまたはフラグメントの色が決定される。
【００６５】
図５の決定部１１０、獲得部１２０及び映像処理部１３０は、プロセッサ１４０の一部分である。
【００６６】
ディスプレイ部１５０は、プロセッサ１４０から受信された二次元映像をディスプレイする。ディスプレイ部１５０は、液晶表示装置（ＬＣＤ）、プラズマディスプレイパネル、有機電界発光表示装置などの形態に具現される。
【００６７】
図７は、さらに他の実施形態による映像処理装置を説明するための図面である。図７は、図６に示した映像処理装置１００の他の例を示す図面である。したがって、以下省略した内容であるとしても、映像処理装置１００に関して説明した内容は、図７の実施形態による映像処理装置１００にも適用される。
【００６８】
図７の映像処理装置１００は、メモリ１６０をさらに含む。メモリ１６０は、映像処理過程において利用される情報またはデータを保存する。
【００６９】
メモリ１６０は、ドローコマンドが入力される度に、ドローコマンドを保存する。メモリ１６０は、オブジェクトまたはプリミティブについての情報を保存する。例えば、メモリ１６０は、オブジェクトＩＤ、プリミティブＩＤ、及びプリミティブリストを保存する。また、メモリ１６０は、オブジェクトまたはプリミティブの透明度についての情報を保存する。この時、メモリ１６０には、オブジェクトまたはプリミティブのＩＤと共に、透明度についての情報が保存される。
【００７０】
図５のドローコマンド履歴バッファ１１５、プリミティブ透明度バッファ１２５、及びフラグメントバッファ１３５は、メモリ１６０に含まれ、メモリ１６０の一部領域である。
【００７１】
図８は、他の実施形態による映像処理方法を説明するための図面である。図８は、図３に示した映像処理装置１００により行われる段階を示す図面である。したがって、以下省略した内容であるとしても、映像処理装置１００に関して説明した内容は、図８の実施形態による映像処理方法にも適用される。
【００７２】
段階２１０において、映像処理装置１００は、以前のドローコマンドと同一なドローコマンドが入力されるか否かを決定する。以前のドローコマンドと同一なドローコマンドが入力されれば、段階２２０に進み、そうでなければ、段階２４０に進む。
【００７３】
映像処理装置１００は、同一なドローコマンドが入力されれば、ドローコマンドに含まれた複数のオブジェクトまたはプリミティブのうち、どのオブジェクトまたはプリミティブが同一であるかを決定する。
【００７４】
段階２２０において、映像処理装置１００は、以前のドローコマンドにより実行された以前のフレームの透明度についての情報を獲得する。以前のフレームの透明度についての情報は、以前のフレームに含まれたオブジェクトまたはプリミティブの透明度を表す情報である。映像処理装置１００は、どのオブジェクトまたはプリミティブが透明であるかを表す情報を獲得する。
【００７５】
段階２３０において、映像処理装置１００は、透明度についての情報に基づいて、現在のフレームに対する映像処理を実行する。例えば、映像処理装置１００は、透明度についての情報に基づいて、シェーディングを行う前に、どのオブジェクトが透明であるかを決定する。映像処理装置１００は、透明なオブジェクトの場合、透明なオブジェクトよりも深さ方向に後方に位置した不透明なオブジェクトに対して、優先的にシェーディングを行う。言い換えれば、映像処理装置１００は、深さ方向と逆方向にシェーディングを行う。
【００７６】
段階２４０において、映像処理装置１００は、現在のフレームに対する映像処理を実行する。同一なドローコマンドが入力されていないので、映像処理装置１００は、現在のフレームに含まれたオブジェクトまたはプリミティブの透明度を知ることができないので、深さ方向に順次にシェーディングを行う。
【００７７】
図８の段階２１０ないし段階２４０は、図３の映像処理装置、または図６及び図７のプロセッサ１４０により実行される。
【００７８】
図９は、さらに他の実施形態による映像処理方法を説明するための図面である。図９は、図３に示した映像処理装置１００により行われる段階を示す図面である。したがって、以下省略した内容であるとしても、映像処理装置１００に関して説明した内容は、図９の実施形態による映像処理方法にも適用される。
【００７９】
段階３１０において、映像処理装置１００は、以前のドローコマンドと、現在のドローコマンドとが同一であるか否かを決定する。同一であれば、段階３４０に進み、そうでなければ、段階３２０に進む。
【００８０】
段階３２０において、映像処理装置１００は、以前のドローコマンドによるレンダリング過程で獲得された深さ情報及び透明度情報を獲得する。レンダリング過程で獲得された深さ情報は、オブジェクトまたはプリミティブの深さを表す情報である。また、レンダリング過程で獲得された透明度情報は、オブジェクトまたはプリミティブが透明であるか否かを表す情報である。
【００８１】
映像処理装置１００は、レンダリングを行う間、オブジェクトの相対的な位置を決定する。したがって、映像処理装置１００は、どのオブジェクトが最も前方に位置したか、後方に位置したオブジェクトの一部分が、前方に位置したオブジェクトにより隠されるかを決定する。オブジェクトの相対的な位置を表す情報は、メモリに保存される。映像処理装置１００は、同一な過程を、オブジェクトの単位の代わりに、プリミティブの単位で行ってもよい。
【００８２】
段階３３０において、映像処理装置１００は、深さ情報及び透明度情報に基づいて、現在のフレームについての隠蔽面を除去する。映像処理装置１００は、獲得されたオブジェクトの相対的な位置によって、後方に位置したオブジェクトの隠蔽面を除去する。また、映像処理装置１００は、透明なオブジェクトが存在する場合、透明なオブジェクトの後方に位置したオブジェクトは、隠蔽面に該当しないので除去されない。したがって、透明なオブジェクトの後方に位置したオブジェクトが、不透明なオブジェクトである場合、映像処理装置１００は、不透明なオブジェクトの後方に位置したオブジェクトの隠蔽面を除去する。映像処理装置１００は、どのオブジェクトが透明であるかを予知しているので、深さ方向にシェーディングを行う過程を省略し、逆方向にシェーディングを行う。
【００８３】
映像処理装置１００は、同一な過程を、オブジェクトの単位の代わりに、プリミティブの単位で行ってもよい。
【００８４】
段階３４０において、映像処理装置１００は、現在のフレームについての隠蔽面を除去する。同一なドローコマンドが入力されていないので、映像処理装置１００は、現在のフレームに含まれたオブジェクトの透明度を知ることができないので、深さ方向に順次にシェーディングを行う。映像処理装置１００は、シェーディング結果に基づいて、透明なオブジェクトを確認する。映像処理装置１００は、確認された透明なオブジェクトに対しては、深さ方向と逆方向にシェーディングを行う。オブジェクトの透明度を予知していない場合、映像処理装置１００は、シェーディングを順方向に行った後、逆方向に再び行う。したがって、順方向にシェーディングを行う演算がさらに生じる。
【００８５】
図９の段階３１０ないし段階３４０は、図３の映像処理装置１００、または図６及び図７のプロセッサ１４０により実行される。
【００８６】
図１０は、さらに他の実施形態による、ドローコマンドの同一性による映像処理方法を説明するための図面である。映像処理装置１００は、ドローコマンドの同一性によって、入力されたドローコマンドを処理する。
【００８７】
段階４１０において、映像処理装置１００は、現在のフレームをレンダリングするためのドローコマンドを受信する。例えば、ドローコマンドは、どのオブジェクトをどの方向にレンダリングするのかについての情報を含む。
【００８８】
段階４２０において、映像処理装置１００は、ドローコマンド履歴バッファに、現在のドローコマンドと同一なドローコマンドが含まれているか否かを確認する。ドローコマンド履歴バッファは、以前のフレームについてのドローコマンドを保存している。したがって、映像処理装置１００は、ドロー履歴バッファに保存されたドローコマンドと、現在のドローコマンドとを比較する。同一なドローコマンドが含まれていれば、段階４３０に進み、そうでなければ、段階４４０に進む。
【００８９】
段階４３０において、映像処理装置１００は、以前のフレームに含まれたプリミティブのリストを保存するプリミティブ透明度バッファを利用して、プリミティブの透明度を決定する。以前のフレームに含まれたプリミティブは、以前のフレームに対するレンダリングの対象となったプリミティブを表す。プリミティブ透明度バッファは、以前のフレームに含まれたプリミティブの透明度についての情報を保存する。したがって、映像処理装置１００は、プリミティブ透明度バッファを利用して、同一なプリミティブの透明度を決定する。
【００９０】
段階４４０において、映像処理装置１００は、現在のドローコマンドの結合（binding）情報を、ドローコマンド履歴バッファに保存する。ドローコマンド履歴バッファは、入力されるドローコマンドを順次に保存する。
【００９１】
段階４５０において、映像処理装置１００は、各プリミティブについてのプリミティブリストと、プリミティブＩＤとを生成する。プリミティブリストは、一つのタイルに含まれるプリミティブを表す情報である。タイルは、フレームを分割した単位である。一つのタイルには、複数のプリミティブが含まれる。プリミティブＩＤは、それぞれのプリミティブを識別するための固有の名称である。
【００９２】
段階４６０において、映像処理装置１００は、現在のフレームについてのプリミティブリストを、シーンバッファに保存する。シーンバッファは、プリミティブリストを保存するメモリである。映像処理装置１００は、各タイルごとにいかなるプリミティブが含まれるかを表すプリミティブリストを、シーンバッファに保存する。
【００９３】
段階４７０において、映像処理装置１００は、現在のフレームについての追加のドローコマンドがあるか否かを決定する。追加のドローコマンドがあれば、段階４２０に進み、そうでなければ、段階４８０に進む。
【００９４】
段階４８０において、映像処理装置１００は、現在のフレームについての結果映像をレンダリングするために、選択的にシーンバッファを処理する。映像処理装置１００がシーンバッファを処理するとは、シーンバッファに保存されたプリミティブに対する映像処理を実行することを表す。
【００９５】
図１０の段階４１０ないし段階４８０は、図３の映像処理装置１００、または図６及び図７のプロセッサ１４０により実行される。また、図１０の段階４１０ないし段階４８０は、プリミティブの単位の代わりに、オブジェクトの単位で行われてもよい。
【００９６】
図１１は、さらに他の実施形態による、プリミティブの透明度による映像処理方法を説明するための図面である。映像処理装置１００は、プリミティブが透明であるか不透明であるかによって、隠蔽面を除去する方法を異にする。
【００９７】
段階５１０において、映像処理装置１００は、現在のフレームについてのプリミティブリストを受信する。プリミティブリストは、タイルごとに生成される。したがって、映像処理装置１００は、現在のフレームを、複数のタイルに分割し、各タイルに含まれるプリミティブを表すプリミティブリストを受信する。
【００９８】
段階５２０において、映像処理装置１００は、プリミティブが透明なものとして設定されているか否かを決定する。プリミティブが透明であれば、段階５３０に進み、そうでなければ、段階５４０に進む。
【００９９】
段階５３０において、映像処理装置１００は、プリミティブの透明度を利用して、隠蔽面を除去する。透明なプリミティブの後方に位置した不透明なプリミティブは、隠蔽面に該当しない。したがって、映像処理装置１００は、不透明なプリミティブにより隠された隠蔽面を除去する。
【０１００】
段階５４０において、映像処理装置１００は、隠蔽面を除去する。プリミティブが透明でないので、映像処理装置１００は、プリミティブにより隠された隠蔽面を除去する。
【０１０１】
段階５５０において、映像処理装置１００は、現在のフレームについての追加のプリミティブがあるか否かを決定する。追加のプリミティブがあれば、段階５５０に進み、そうでなければ、段階５６０に進む。
【０１０２】
段階５６０において、映像処理装置１００は、フラグメントシェーディングを行う。映像処理装置１００は、隠蔽面として除去されないプリミティブに対するシェーディングを、フラグメントの単位で行う。
【０１０３】
段階５７０において、映像処理装置１００は、透明なピクセルの割合に基づいて、プリミティブの透明度を決定する。プリミティブは、複数のピクセルを含む。プリミティブに含まれた複数のピクセルのうち、シェーディング結果として透明なピクセルであると決定されたピクセルの割合が、しきい値を超える場合、映像処理装置１００は、透明なピクセルを含むプリミティブを、透明なプリミティブとして決定する。例えば、いずれか一つのプリミティブが１００個のピクセルを含み、１００個のピクセルのうち９０個のピクセルが、透明なピクセルである場合、映像処理装置１００は、プリミティブが透明であると決定する。
【０１０４】
段階５８０において、映像処理装置１００は、プリミティブ透明度バッファに、プリミティブの透明度についての情報を保存する。映像処理装置１００は、段階５７０において透明であると決定されたプリミティブについての情報を、プリミティブ透明度バッファに保存する。プリミティブ透明度バッファに保存された情報は、以後に同一なプリミティブに対するレンダリングを行う時に利用される。
【０１０５】
図１１の段階５１０ないし段階５８０は、図３の映像処理装置、または図６及び図７のプロセッサ１４０により実行される。
一方、上述した方法は、コンピュータで実行可能なプログラムにより作成可能であり、コンピュータで読み取り可能な記録媒体を利用して、前記プログラムを動作させる汎用のデジタルコンピュータで具現される。また、上述の方法で使われたデータの構造は、コンピュータで読み取り可能な記録媒体に、色々な手段を通じて記録される。前記コンピュータで読み取り可能な記録媒体は、磁気記録媒体（例えば、ＲＯＭ(read-only  memory)、ＲＡＭ(random-access  memory)、ＵＳＢ(Universal  Serial  Bus)、フロッピー（登録商標）ディスク、ハードディスクなど）、光学的読み取り媒体（例えば、ＣＤ−ＲＯＭ、ＤＶＤなど）を含む。
【産業上の利用可能性】
【０１０６】
本発明は、例えば、映像処理関連の技術分野に適用可能である。
【符号の説明】
【０１０７】
１００    映像処理装置
１１０    決定部
１１５    ドローコマンド履歴バッファ
１２０    獲得部
１２５    プリミティブ透明度バッファ
１３０    映像処理部
１３５    フラグメントバッファ
１４０    プロセッサ
１５０    ディスプレイ部
１６０    メモリ
【図１】
2015076102.tif 000003
【図２】
2015076102.tif 000004
【図３】
2015076102.tif 000005
【図４】
2015076102.tif 000006
【図５】
2015076102.tif 000007
【図６】
2015076102.tif 000008
【図７】
2015076102.tif 000009
【図８】
2015076102.tif 000010
【図９】
2015076102.tif 000011
【図１０】
2015076102.tif 000012
【図１１】
2015076102.tif 000013