(57)【要約】【課題】  テクスチャ処理方法及びその装置を提供する。【解決手段】  テクスチャ処理装置は、グラフィックのＬＯＤ（level  of  detail）値によって決定される第１ミップマップと第２ミップマップとが、テクスチャフィルタリングに関与する程度を示すＬＯＤ加重値に基づいて、第１ミップマップに係わる演算を行う第１演算器と、第２ミップマップに係わる演算を行う第２演算器と、を決定する制御部；及び第１演算器と第２演算器とを利用して、テクスチャフィルタリングを行うテクスチャフィルタ；を含み、ここにおいて、第１演算器によって行われる演算の精度は、第２演算器によって行われる演算の精度と異なる。【選択図】      図９
2018073388.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックのＬＯＤ値によって決定される第１ミップマップと第２ミップマップとが、テクスチャフィルタリングに関与する程度を示すＬＯＤ加重値に基づいて、前記第１ミップマップに係わる演算を行う第１演算器と、前記第２ミップマップに係わる演算を行う第２演算器と、を決定する制御部と、
前記第１演算器及び前記第２演算器を利用して、テクスチャフィルタリングを行うテクスチャフィルタと、を含み、
前記第１演算器によって行われる演算の精度は、前記第２演算器によって行われる演算の精度と異なるテクスチャ処理装置。
【請求項２】
前記ＬＯＤ加重値により、前記第１ミップマップに係わる演算に利用される加重値と、前記第２ミップマップに係わる演算に利用される加重値とが変わることを特徴とする請求項１に記載のテクスチャ処理装置。
【請求項３】
前記制御部は、
前記ＬＯＤ加重値の範囲を複数の区間に分割し、前記ＬＯＤ加重値が属する区間によって、前記第１演算器及び前記第２演算器を決定することを特徴とする請求項１又は２に記載のテクスチャ処理装置。
【請求項４】
前記テクスチャフィルタは、複数の精度を有する複数の演算器を含み、
前記制御部は、
前記テクスチャフィルタに含まれる前記複数の演算器の前記複数の精度による組み合わせ数に基づいて、前記ＬＯＤ加重値の範囲を分割することを特徴とする請求項３に記載のテクスチャ処理装置。
【請求項５】
前記ＬＯＤ加重値の属する区間が、前記ＬＯＤ加重値の最大値または最小値を含む区間であるならば、前記第１演算器及び前記第２演算器のうちいずれか一つは、前記第１ミップマップと前記第２ミップマップとのうち、前記テクスチャフィルタリングに関与する程度が小さいミップマップに含まれたテクセル値を出力することを特徴とする請求項３に記載のテクスチャ処理装置。
【請求項６】
前記制御部は、
前記第１ミップマップが、前記第２ミップマップより前記テクスチャフィルタリングに関与する程度が大きい場合、演算の精度が高い演算器を前記第１演算器と決定することを特徴とする請求項１に記載のテクスチャ処理装置。
【請求項７】
前記制御部は、
前記第１ミップマップが、前記第２ミップマップより前記テクスチャフィルタリングに関与する程度が大きい場合、前記第２演算器の演算の精度よりさらに高い演算の精度を有する演算器を、前記第１演算器と決定することを特徴とする請求項１に記載のテクスチャ処理装置。
【請求項８】
前記第１ミップマップと前記第２ミップマップとが前記テクスチャフィルタリングに関与する程度の差が増大するほど、前記第１演算器の演算の精度と、前記第２演算器の演算の精度との差が増大することを特徴とする請求項１ないし７のうち何れか一項に記載のテクスチャ処理装置。
【請求項９】
前記制御部は、前記ＬＯＤ加重値に基づいて、前記第１ミップマップに係わる演算の精度と、前記第２ミップマップに係わる演算の精度とを決定し、
前記テクスチャフィルタは、前記決定された演算の精度に基づいて、前記第１演算器の演算の精度と、前記第２演算器の演算の精度とを変更することを特徴とする請求項１ないし８のうち何れか一項に記載のテクスチャ処理装置。
【請求項１０】
前記第１演算器と前記第２演算器との面積は、演算の精度に比例することを特徴とする請求項１に記載のテクスチャ処理装置。
【請求項１１】
グラフィックのＬＯＤ    値によって決定される第１ミップマップと第２ミップマップとが、テクスチャフィルタリングに関与する程度を示すＬＯＤ加重値に基づいて、前記第１ミップマップに係わる演算を行う第１演算器と、前記第２ミップマップに係わる演算を行う第２演算器と、を決定する段階と、
前記第１演算器及び前記第２演算器を利用して、テクスチャフィルタリングを行う段階と、を含み、
前記第１演算器によって行われる演算の精度は、前記第２演算器によって行われる演算の精度と異なるテクスチャ処理方法。
【請求項１２】
前記ＬＯＤ加重値により、前記第１ミップマップに係わる演算に利用される加重値と、前記第２ミップマップに係わる演算に利用される加重値とが変わることを特徴とする請求項１１に記載のテクスチャ処理方法。
【請求項１３】
前記第１演算器及び前記第２演算器を決定する段階は、
前記ＬＯＤ加重値の範囲を複数の区間に分割する段階と、
前記ＬＯＤ加重値が属する区間によって、前記第１演算器及び前記第２演算器を決定する段階と、を含むことを特徴とする請求項１１又は１２に記載のテクスチャ処理方法。
【請求項１４】
前記ＬＯＤ加重値の範囲を複数の区間に分割する段階は、
テクスチャフィルタに含まれる演算器の演算の精度による組み合わせ数に基づいて、前記ＬＯＤ加重値の範囲を分割する段階であることを特徴とする請求項１３に記載のテクスチャ処理方法。
【請求項１５】
前記テクスチャフィルタリングを行う段階は、
前記ＬＯＤ加重値が属する区間が、前記ＬＯＤ加重値の最大値または最小値を含む区間であるならば、
前記第１演算器及び前記第２演算器のうちいずれか一つにより、前記第１ミップマップと前記第２ミップマップとのうち、前記テクスチャフィルタリングに関与する程度が小さいミップマップに含まれたテクセル値を出力する段階と、を含むことを特徴とする請求項１３に記載のテクスチャ処理方法。
【請求項１６】
制御部と、
複数の異なる精度を有する複数の演算器を含むテクスチャフィルタ回路と、を含み、
前記制御部は、
イメージのＬＯＤ値を決定し、前記ＬＯＤ値に基づいてＬＯＤ加重値を決定し、前記ＬＯＤ加重値に基づいて、第１精度を有する第１演算器と、第２精度を有する第２演算器とを選択し、第１ミップマップで第１演算を行うように、前記第１演算器を制御し、第２ミップマップで第２演算を行うように、前記第２演算器を制御し、前記第１演算器及び前記第２演算器は、前記複数の演算器に含まれた演算器であり、前記第１精度と前記第２精度とが互いに異なるテクスチャ処理装置。
【請求項１７】
前記テクスチャフィルタ回路は、前記第１ミップマップ及び前記第２ミップマップに対して、テクスチャフィルタリング動作を遂行するように構成され、
前記第１演算及び前記第２演算は、テクスチャフィルタリング動作に含まれた演算であることを特徴とする請求項１６に記載のテクスチャ処理装置。
【請求項１８】
前記テクスチャフィルタリング動作は、二重線形フィルタリング演算であることを特徴とする請求項１７に記載のテクスチャ処理装置。
【請求項１９】
前記制御部は、前記第１ミップマップと前記第２ミップマップとが、前記テクスチャフィルタリング動作に関与する程度を示すＬＯＤ加重値を決定するように構成されたことを特徴とする請求項１８に記載のテクスチャ処理装置。
【請求項２０】
前記制御部は、前記第１ミップマップと前記第２ミップマップとが、前記テクスチャフィルタリング動作に関与する程度を示すＬＯＤ加重値を決定するように構成されたことを特徴とする請求項１７に記載のテクスチャ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テクスチャ処理方法及びその装置に関する。
【背景技術】
【０００２】
三次元グラフィックシステムにおいて、さらに臨場感ある映像を得るための方法の一環として、テクスチャリング技術またはテクスチャマッピング（texture  mapping）技術が活用されている。テクスチャリングまたはテクスチャマッピングとは、テクスチャ処理装置が三次元客体（object）の表面に質感を与えるために、二次元イメージを三次元物体表面に被せることを意味する。ここで、テクスチャ（texture）は、客体に被せられるイメージを意味する。テクスチャマッピング分野において、基本テクスチャと、それを縮小させたテクスチャとからなるビットマップイメージの集合をミップマップ（mipmap）という。
【０００３】
一方、テクスチャ処理装置に保存されるミップマップの数は、制限的であるために、テクスチャ処理装置は、ミップマップを利用した補間（interpolation）作業を介して、客体の表面をさらに精巧に表現する、テクスチャフィルタリング（texture  filtering）を行うことができる。
【０００４】
このとき、該テクスチャ処理装置は、複数のミップマップを利用して、テクスチャフィルタリングを行うことができる。このとき使用されるミップマップの数が多くなれば、客体の表面をさらに精巧に表現することができるが、多様なミップマップを処理するためのテクスチャ処理装置の面積、演算量及び電力消費量が増大してしまう。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、第１ミップマップ及び第２ミップマップがテクスチャフィルタリングに関与する程度により、第１ミップマップに係わる演算の精度と、第２ミップマップに係わる演算の精度と、を異ならせてテクスチャフィルタリングを行う、テクスチャ処理方法及びその装置を提供することである。本実施形態がなす技術的課題は、前述のような技術的課題に限定されるものではなく、以下の実施形態から、他の技術的課題が類推されるのである。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、テクスチャ処理装置は、グラフィックのＬＯＤ（level  of  detail）値によって決定される第１ミップマップ及び第２ミップマップが、テクスチャフィルタリングに関与する程度を示すＬＯＤ加重値に基づいて、前記第１ミップマップに係わる演算を行う第１演算器と、前記第２ミップマップに係わる演算を行う第２演算器と、を決定する制御部；及び前記第１演算器及び前記第２演算器を利用して、テクスチャフィルタリングを行うテクスチャフィルタ；を含み、このとき、前記第１演算器によって行われる演算の精度（precision）は、前記第２演算器によって行われる演算の精度と異なる。
【０００７】
本発明の他の側面によれば、テクスチャ処理方法は、グラフィックのＬＯＤ値によって決定される第１ミップマップ及び第２ミップマップが、テクスチャフィルタリングに関与する程度を示すＬＯＤ加重値に基づいて、前記第１ミップマップに係わる演算を行う第１演算器と、前記第２ミップマップに係わる演算を行う第２演算器と、を決定する段階と、前記第１演算器及び前記第２演算器を利用して、テクスチャフィルタリングを行う段階と、を含み、このとき、前記第１演算器によって行われる演算の精度は、前記第２演算器によって行われる演算の精度と異なる。
【０００８】
さらに他の側面によれば、前記方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供する。
【発明の効果】
【０００９】
前述のところによれば、三次元グラフィック品質を維持しながら、テクスチャ処理装置の面積を減少させることができ、テクスチャ処理装置の演算量及び電力消費量を減少させることができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態によるグラフィック処理装置を示した図面である。
【図２】グラフィック処理装置が三次元グラフィックスを処理する過程について説明する図面である。
【図３】テクスチャマッピングについて説明するための図面である。
【図４】ミップマップについて説明するための図面である。
【図５Ａ】一実施形態による、１つのミップマップを利用するテクスチャフィルタリング方式について説明するための図面である。
【図５Ｂ】一実施形態による、２つのミップマップを利用するテクスチャフィルタリング方式について説明するための図面である。
【図６】テクスチャフィルタリング方式によって必要な演算量について説明するための図面である。
【図７】一実施形態による、ＬＯＤ加重値に基づいて、第１演算器及び第２演算器を決定する方法について説明するための図面である。
【図８】他の一実施形態による、ＬＯＤ加重値に基づいて、第１演算器及び第２演算器を決定する方法について説明するための図面である。
【図９】一実施形態による、テクスチャ処理装置の構成を示したブロック図である。
【図１０】一実施形態による、グラフィック処理装置の構成を示したブロック図である。
【図１１】さらに他の一実施形態による、ＬＯＤ加重値に基づいて、第１演算器及び第２演算器を決定する方法について説明するための図面である。
【図１２Ａ】一実施形態により、ＬＯＤ加重値が、ＬＯＤ加重値の最大値または最小値が含まれた区間に属するとき、第１演算器及び第２演算器を決定する方法について説明するための図面である。
【図１２Ｂ】一実施形態により、ＬＯＤ加重値が、ＬＯＤ加重値の最大値または最小値が含まれた区間に属するとき、第１演算器及び第２演算器を決定する方法について説明するための図面である。
【図１３】一実施形態による、テクスチャフィルタリングの演算量変化について説明するための図面である。
【図１４】一実施形態により、テクスチャ処理方法を図示したフローチャートである。
【図１５】一実施形態により、テクスチャ処理方法を図示した詳細フローチャートである。
【発明を実施するための形態】
【００１１】
本実施形態で使用される用語は、本実施形態での機能を考慮しながら、可能な限り現在汎用される一般的な用語を選択したが、それは、当技術分野の当業者の意図、判例、あるいは新たな技術の出現などによっても異なる。また、特定の場合、任意に選定された用語もあり、その場合、当該実施形態の説明部分において、詳細にその意味を記載する。従って、本実施形態で使用される用語は、単なる用語の名称ではない、その用語が有する意味と、本実施形態の全般にわたる内容とを基に定義されなければならない。
【００１２】
該実施形態に係わる説明において、ある部分が他の部分と連結されているとするとき、それは、直接的に連結されている場合だけではなく、その中間に、他の構成要素を挟んで電気的に連結されている場合も含む。また、ある部分がある構成要素を含むとするとき、それは、特別に反対となる記載がない限り、他の構成要素を除くものではなく、他の構成要素をさらに含んでもよいということを意味する。また、該実施形態に記載された「…部」、「…モジュール」の用語は、少なくとも１つの機能や動作を処理する単位を意味し、それは、ハードウェアまたはソフトウェアによって具現されるか、あるいはハードウェアとソフトウェアとの結合によっても具現される。
【００１３】
本実施形態で使用される「構成される」または「含む」というような用語は、明細書上に記載されたさまざまな構成要素、またはさまざまな段階を必ずしもいずれも含むと解釈されるものではなく、そのうちの一部構成要素または一部段階は、含まれなくともよく、またはさらなる構成要素またはさらなる段階をさらに含んでもよいと解釈されなければならない。
【００１４】
下記実施形態に係わる説明は、権利範囲を制限すると解釈されるものではなく、当該技術分野の当業者が容易に類推することができるところは、該実施形態の権利範囲に属するものであると解釈されなければならないのである。以下、添付された図面を参考しながら、ただ例示のための実施形態について詳細に説明する。
【００１５】
図１は、一実施形態によるグラフィック処理装置を示した図面である。図１に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、関連技術分野で当業者であるならば、理解することができるであろう。
【００１６】
図１を参照すれば、グラフィック処理装置１００は、ラスタライザ（rasterizor）１１０、シェーダコア（shader-core）１２０、テクスチャ処理装置（texture  processing  unit）１３０、ピクセル処理装置（pixel  processing  unit）１４０、タイルバッファ（tile  buffer）１５０などを含んでもよい。グラフィック処理装置１００は、バス（bus）１７０を介して、外部のメモリ（memory）１６０とデータを送受信することができる。
【００１７】
図１に図示されたグラフィック処理装置１００は、三次元グラフィックスを処理する装置であり、タイルに基づいたレンダリング（ＴＢＲ：tile-based  rendering）方式を使用することができる。言い替えれば、グラフィック処理装置１００は、１つのフレームに該当する三次元グラフィックスを生成するために、一定サイズに分割された複数個のタイルを、ラスタライザ１１０、シェーダコア１２０、ピクセル処理装置１４０を通過させ、処理結果をタイルバッファ１５０に保存することができる。グラフィック処理装置１００は、フレームを構成する全てのタイルに対して、ラスタライザ１１０、シェーダコア１２０及びピクセル処理装置１４０で構成されるチャネルを複数個利用して、並列処理することができる。グラフィック処理装置１００は、１つのフレームに該当する複数個のタイルが処理されれば、タイルバッファ１５０に保存された処理結果を、メモリ１６０のフレームバッファ（図示せず）に伝送することができる。
【００１８】
ラスタライザ１１０は、幾何変換過程を経て、バーテックスシェーダ（vertex  shader）から生成されたプリミティブ（primitive）に対して、ラスタ化（rasterization）を行うことができる。
【００１９】
シェーダコア１２０は、ラスタライザ１１０からラスタ化されたプリミティブを伝達され、ピクセルシェーディングを行うことができる。シェーダコア１２０は、ラスタ化を経て生成されたプリミティブのフラグメントを含むタイルに対して、タイルを構成する全てのピクセルの色相を決定するピクセルシェーディングを行うことができる。シェーダコア１２０は、ピクセルシェーディング過程において、立体的であって臨場感ある三次元グラフィックスを生成するために、テクスチャを利用して生成されたピクセル値を使用することができる。
【００２０】
シェーダコア１２０は、ピクセルシェーダ（pixel  shader）を含んでもよい。また、シェーダコア１２０は、バーテックスシェーダをさらに含んだ形態でもあり、バーテックスシェーダとピクセルシェーダとが統合された形態の統合シェーダでもある。シェーダコア１２０がバーテックスシェーダの機能を遂行することができる場合、オブジェクトを示すプリミティブを生成し、ラスタライザ１１０に伝達することができる。
【００２１】
シェーダコア１２０が、所望するピクセルに対応するピクセル値の伝達をテクスチャ処理装置１３０に要請すれば、テクスチャ処理装置１３０は、あらかじめ準備したテクスチャを処理して生成されたピクセル値を伝達する。テクスチャは、テクスチャ処理装置１３０の内部または外部の所定空間、またはグラフィック処理装置１００外部のメモリ１６０に保存されている。テクスチャ処理装置１３０は、シェーダコア１２０で要請したピクセル値生成に利用されるテクスチャが、テクスチャ処理装置１３０内部の所定空間にない場合、テクスチャ処理装置１３０外部の空間、またはメモリ１６０から、テクスチャを持ってきて使用することができる。
【００２２】
ピクセル処理装置１４０は、１つのタイル内のような位置に対応するピクセルに対して、深さテストのような過程を経て、最終的に表示されるピクセル値を決定し、１つのタイルに該当する全ピクセル値を決定することができる。
【００２３】
タイルバッファ１５０は、ピクセル処理装置１４０から伝達された１つのタイルに該当する全ピクセル値を保存することができる。１つのフレームを構成する全タイルに対するグラフィック処理過程が完了すれば、タイルバッファ１５０に保存された処理結果が、メモリ１６０のフレームバッファに伝達される。
【００２４】
図２は、グラフィック処理装置が三次元グラフィックスを処理する過程について説明する図面である。
【００２５】
三次元グラフィックスを処理する過程は、大きく見て、幾何変換、ラスタ化、ピクセルシェーディングの３段階に分けることができ、以下、図２を参照し、さらに細部的な過程について説明する。具体的には、図２は、段階１１ないし段階１８を介して、三次元グラフィックスを処理する過程を示す。
【００２６】
段階１１は、バーテックス（vertices）を生成する段階である。該バーテックスは、三次元グラフィックスに含まれた客体（object）を示すために生成される。
【００２７】
段階１２は、生成されたバーテックスをシェーディング（shading）する段階である。バーテックスシェーダ（vertex  shader）は、段階１１で生成されたバーテックスの位置を指定することにより、バーテックスに対するシェーディングを行うことができる。
【００２８】
段階１３は、プリミティブ（primitive）を生成（generationg）する段階である。該プリミティブは、１以上のバーテックスを利用して形成される点、線、多角形（polygon）などを意味する。例えば、該プリミティブは、３個のバーテックスが連結された三角形でもある。
【００２９】
段階１４は、プリミティブをラスタ化（rasterization）する段階である。プリミティブのラスタ化は、プリミティブをフラグメント（fragments）に分割することを意味する。フラグメントは、プリミティブに対するグラフィック処理を行うための基本単位でもある。該プリミティブは、バーテックス（vertex）に係わる情報のみを含むので、ラスタライジングを介して、バーテックスとバーテックスとの間にフラグメントが生成されることにより、三次元グラフィック処理が行われる。
【００３０】
段階１５は、ピクセルをシェーディングする段階である。ラスタ化によって生成された、プリミティブを構成するフラグメントは、ピクセルにもなる。当該分野において、フラグメント及びピクセルという用語は、場合によっては混用されて使用される。例えば、ピクセルシェーダ（pixel  shader）は、フラグメントシェーダとも呼称される。一般的には、プリミティブを構成するグラフィック処理の基本単位をフラグメントと呼び、その後、ピクセルシェーディングからグラフィック処理を行う基本単位をピクセルと称する。ピクセルシェーディングによって、ピクセルの値、属性など（例えば、ピクセルの色）が決定される。
【００３１】
段階１６は、ピクセルの色を決定するためのテクスチャリング（texturing）段階である。該テクスチャリングは、あらかじめ準備されたイメージであるテクスチャを利用して、ピクセルの色を決定する過程である。このとき、多様な色相とパターンとの様子を表現するために、それぞれのピクセルの色相を計算して決定することは、グラフィック処理に必要なデータ演算量と、グラフィック処理時間とを増大させるので、グラフィック処理装置は、あらかじめ準備されたテクスチャを利用して、ピクセルの色相を決定することができる。
【００３２】
段階１７は、テスト及びミキシング（testing  and  mixing）段階である。深さテスト（depth  test、カーリング（curling）、クリッピング（clipping）などを介して、最終的に表示されるピクセル値が決定される。
【００３３】
段階１８は、段階１１ないし段階１７を介して生成されたフレームをフレームバッファ（frame  buffer）に保存し、フレームバッファに保存されたフレームを、ディスプレイ装置を介して表示する段階である。
【００３４】
図２で説明された三次元グラフィックスを処理する過程は、概括的なものであり、さらに細部的な過程については、当該技術分野の当業者に自明である。
【００３５】
図３は、テクスチャマッピングについて説明するための図面である。図３を参照すれば、ラスタライジングによって、スクリーン空間上のピクセル３０１が生成された場合、テクスチャ処理装置は、ピクセル３０１にマッピングされるテクスチャ３０２を決定することができる。このとき、テクスチャ３０２は、三次元客体表面の色相、質感及びパターンなどに係わる情報を有するイメージと定義され、テクスチャ空間上のテクセル（texel）単位で構成される。
【００３６】
一方、客体の大きさは、スクリーン空間上で連続的に変わるために、全てのピクセル３０１に対応するテクスチャ３０２をあらかじめ準備し難い。従って、テクスチャ処理装置は、１つのテクスチャ、または複数のテクスチャを利用した補間（interpolation）作業を介して、ピクセル３０１の値を推定するテクスチャフィルタリングを行うことができる。以下、図面では、テクスチャフィルタリングを行うときに利用されるミップマップについて説明する。
【００３７】
図４は、ミップマップについて説明するための図面である。
【００３８】
該テクスチャ処理装置は、スクリーン空間上で変化する客体の大きさに適応的に対応するように、あらかじめ準備されたテクスチャを利用することができる。このとき、基本テクスチャと、それを縮小させたテクスチャとからなるビットマップイメージの集合をミップマップ（mipmap）という。
【００３９】
このとき、他レベルのミップマップは、解像度が異なる。図４を参照すれば、レベル０ミップマップ４１０は、テクスチャのうち解像度が最も高いテクスチャであり、基本テクスチャを意味する。レベル０ミップマップ４１０を表現するために、８×８テクセルが必要である。また、基本テクスチャの大きさより１／４縮小されたミップマップは、レベル１ミップマップである。レベル１ミップマップ４１１を表現するために、４×４テクセルが必要である。また、基本テクスチャの大きさより１／１６縮小されたミップマップは、レベル２ミップマップ４１２でもある。レベル２ミップマップ４１２を表現するために、２×２テクセルが必要である。
【００４０】
一方、視点（view  point）とピクセル間距離とが変わることにより、ピクセルにマッピングされるテクスチャが異なる。例えば、道路のタイルをスクリーン空間に表示するとき、視点で近いタイルに対応するピクセルにマッピングされるテクスチャは、解像度が高いレベル０ミップマップ４１０でもある。また、視点から遠く離れた道路のタイルに対応するピクセルにマッピングされるテクスチャは、解像度が低いレベル２ミップマップ４１２でもある。すなわち、複数のミップマップを利用する場合、遠い距離にある客体は、低い解像度で表現されるために、グラフィック処理装置は、三次元グラフィックを自然に表現することができる。併せて、異なるテクスチャがマッピングされたピクセルの境界面でテクスチャフィルタリングが行われれば、三次元グラフィックの品質が向上する。
【００４１】
このとき、スクリーン空間上のピクセルにマッピングさせるテクスチャは、グラフィックのＬＯＤ（level  of  detail）に基づいて決定される。ここで、該ＬＯＤは、三次元グラフィックイメージを表現する精度（precision）を段階化したものを意味する。テクスチャ処理装置は、ピクセル情報を受信した後、グラフィックのＬＯＤ値を決定し、決定されたＬＯＤ値によってテクスチャフィルタリングを行うとき、必要なミップマップを決定することができる。例えば、テクスチャ処理装置は、２×２ピクセルで構成されたクワッド（quad）単位で、グラフィックのＬＯＤ値を計算することができるが、ＬＯＤ値を計算するとき、必要なピクセルの数は、それに制限されなるものではない。
【００４２】
一方、テクスチャ処理装置は、１つのミップマップ、または複数のミップマップを利用して、テクスチャフィルタリングを行うことができる。例えば、テクスチャ処理装置は、ポイントフィルタリング（point  filtering）、二重線形フィルタリング（bilinear  filtering）及び三重線形フィルタリング（trilinear  filtering）を行うことができるが、テクスチャ処理装置が行うことができるテクスチャフィルタリング種類は、それらに制限されなるものではない。具体的なテクスチャフィルタリング方式については、以下、図５Ａ及び図５Ｂを参照して説明する。
【００４３】
図５Ａは、一実施形態による、１つのミップマップを利用するテクスチャフィルタリング方式について説明するための図面である。
【００４４】
テクスチャ処理装置は、１つのミップマップを利用して、ポイントフィルタリング及び二重線形フィルタリングを行うことができる。このうち、ポイントフィルタリングは、テクスチャ座標上ピクセルと最も近いテクセル値を結果値として出力することができる。すなわち、ポイントフィルタリングを行うとき、必要なテクセル値は、１である。
【００４５】
図５Ａを参照すれば、ピクセルＰの周辺に位置した第１テクセルＴ１ないし第４テクセルＴ４のうち第１テクセルＴ１がピクセルＰと最も近いために、ピクセルＰのポイントフィルタリング結果は、第１テクセルＴ１になる。
【００４６】
一方、二重線形フィルタリングは、テクスチャ座標上、ピクセルと近い４個のテクセル値と、２つの加重値とを利用して、ピクセル値を計算するテクスチャフィルタリング方式である。すなわち、二重線形フィルタリングは、必要なテクセルの数が４個である。
【００４７】
図５Ａを参照すれば、加重値Ｕ、加重値Ｖ、第１テクセルＴ１ないし第４テクセルＴ４値を利用して、ピクセルＰ値を計算することができる。このとき、二重線形フィルタリングＢｉＬＥＲＰは、数式（１）を介して計算される。
【００４８】
【数１】
2018073388.tif 000003
数式（１）において、Ｗｕ、Ｗｖは、それぞれ加重値Ｕ、加重値Ｖであり、それぞれ０と１との間の値でもある。Ｔ１ないしＴ４は、それぞれＴ１値ないしＴ４値である。また、関数ＬＥＲＰは、線形補間（linear  interpolation）であり、数式（２）によって定義される。
【００４９】
【数２】
2018073388.tif 000004
数式（２）を参照すれば、線形補間は、２つの座標値の直線距離により、２つの座標値間の任意の座標を線形的に計算する方法である。すなわち、二重線形フィルタリングは、１ミップマップに含まれた２つのテクセル対に対して線形補間を行い、線形補間の結果に基づいて、さらに線形補間を行うテクスチャフィルタリング方式である。
【００５０】
図５Ｂは、一実施形態による、２つのミップマップを利用するテクスチャフィルタリング方式について説明するための図面である。
【００５１】
テクスチャ処理装置は、２つのミップマップを利用して、三重線形フィルタリングを行うことができる。三重線形フィルタリング２つのミップマップにおいて、それぞれ二重線形フィルタリングを行った結果と、ＬＯＤ加重値とを利用して、ピクセル値を計算するテクスチャフィルタリング方式である。すなわち、三重線形フィルタリングを行うとき、必要なテクセルの数は８個である。ここで、ＬＯＤ加重値は、グラフィックＬＯＤ値により、決定された２つのミップマップが、テクスチャフィルタリングに関与する程度を意味する値でもある。
【００５２】
図５Ｂを参照すれば、第１ミップマップ５１０と第２ミップマップ５２０との間にピクセルＰが位置するとき、テクスチャ処理装置は、数式（３）に基づいて、三重線形フィルタリングＴｒｉＬＥＲＰを行うことができる。
【００５３】
【数３】
2018073388.tif 000005
ＢｉＬＥＲＰ１とＢｉＬＥＲＰ２は、それぞれ第１ミップマップ５１０及び第２ミップマップ５２０に対する二重線形フィルタリング結果であり、ＷＬＯＤは、ＬＯＤ加重値を意味する。このとき、ＬＯＤ加重値は、０から１までの値を有することができる。
【００５４】
図５Ｂを参照すれば、第１ミップマップ５１０がテクスチャフィルタリングに関与する程度が、第２ミップマップ５２０がテクスチャフィルタリングに関与する程度よりさらに大きければ、ピクセルＰは、０．５より大きいＬＯＤ加重値を有することができる。
【００５５】
以下、図面では、説明の便宜のために、第２ミップマップ５２０がテクスチャフィルタリングに関与する程度が増大すれば、ＬＯＤ加重値はますます低下し、第１ミップマップ５１０がテクスチャフィルタリングに関与する程度が増大すれば、ＬＯＤ加重値は、ますます増大すると仮定したが、本実施形態は、それに制限されなるものではない。
【００５６】
一方、以下、図面では、説明の便宜のために、三重線形フィルタリングを前提に記述されるが、それに制限されなるものではない。
【００５７】
図６は、テクスチャフィルタリング方式によって必要な演算量について説明するための図面である。図６を参照すれば、ポイントフィルタリングの場合、テクスチャ座標上のピクセルと最も近い１つのテクセル値を出力するために、線形補間を行わない。
【００５８】
一方、二重線形フィルタリングの場合、１ミップマップに対する二重線形補間を行う。このとき、数式（１）を参照すれば、該二重線形補間は、３回線形補間を含む。従って、テクスチャ処理装置は、線形補間を３回行い、二重線形フィルタリングの結果値を獲得することができる。
【００５９】
数式（３）を参照すれば、三重線形フィルタリングの場合、２つのミップマップに対する二重線形補間を含み、二重線形補間結果に基づいた線形補間を含む。従って、テクスチャ処理装置は、線形補間を７回行い、三重線形フィルタリングの結果値を獲得することができる。
【００６０】
すなわち、テクスチャ処理装置の三重線形フィルタリングの演算量が減少すれば、他のテクスチャフィルタリングの演算量が減少するときより、全体フィルタリング演算量がさらに大幅に減少する。
【００６１】
図７は、一実施形態による、ＬＯＤ加重値に基づいて、第１演算器及び第２演算器を決定する方法について説明するための図面である。
【００６２】
テクスチャ処理装置は、ＬＯＤ加重値に基づいて、第１ミップマップ５１０に係わる演算を行う第１演算器と、第２ミップマップ５２０に係わる演算を行う第２演算器と、を決定し、第１演算器と第２演算器とを利用して、テクスチャフィルタリングを行うことができる。具体的には、テクスチャ処理装置は、第１ミップマップ５１０と第２ミップマップ５２０とがテクスチャフィルタリングに関与する程度により、演算精度が異なる演算器のうち第１演算器及び第２演算器を決定することにより、三重線形フィルタリングの演算量を減少させることができる。
【００６３】
ここで、該精度は、所定変数を表現するために必要なビット数で示すことができる。例えば、OpenＧＬにおいて色相値は、ＲＧＢＡ形式に保存され、色相値の各構成要素（Red、Green、Blue、Alpha）は、それぞれ８ビット整数型（integer  type）で表現される。かような場合、テクセルの精度は８ビットでもある。
【００６４】
一方、第１演算器と第２演算器は、複数の線形補間を行うために乗算器を含んでもよい。数式（１）及び数式（２）を参照すれば、該乗算器は、テクセル値と加重値Ｕ，Ｖとを入力され、乗算演算を行うことができる。このとき、乗算器の入力変数の精度により、演算器の面積と、演算器が行う演算量とが異なる。例えば、入力変数の精度がそれぞれ８ビットである乗算器の面積は、入力変数の精度が、それぞれ４ビットである乗算器の面積より４倍大きく、行う演算量が４倍多い。併せて、演算器が遂行する演算量が増加すれれば、演算器の電力消費量も増加する。
【００６５】
一方、演算器によって行われる演算の精度は、演算に利用される加重値のビット数で示すことができる。例えば、ミップマップに係わる演算に利用される加重値Ｕ及び加重値Ｖの精度が４ビットであるならば、演算の精度は、４ビットと表現することができる。言い替えれば、演算の精度が４ビットであるということは、演算器の乗算器に入力される加重値の精度が４ビットであるということを意味する。
【００６６】
図５Ｂを参照すれば、第１ミップマップ５１０がテクスチャフィルタリングに関与する程度が、第２ミップマップ５２０がテクスチャフィルタリングに関与する程度より大きければ、ＬＯＤ加重値が０．５より大きい。かような場合、図７のテクスチャ処理装置は、ＬＯＤ加重値が増加すれば、第２演算器の演算の精度よりさらに高い演算の精度を有する演算器を第１演算器と決定することができる。
【００６７】
また、テクスチャ処理装置は、第１ミップマップ５１０がテクスチャフィルタリングに関与する程度が増加するほど、演算の精度が高い演算器を第１演算器と決定することができる。
【００６８】
また、第１ミップマップ５１０と第２ミップマップ５２０とがテクスチャフィルタリングに関与する程度の差が増加するほど、第１演算器の演算の精度と、第２演算器の演算の精度との差が増加する。
【００６９】
一方、複数のミップマップを利用するテクスチャフィルタリング方式には、三重線形フィルタリングだけではなく、非等方性フィルタリング（anisotropic  filtering）が含まれてもよい。以下、図面では、説明の便宜のために、三重線形フィルタリングを前提として記述されたが、三重線形フィルタリング以外に、複数のミップマップを利用して、テクスチャフィルタリングを行う方法にも適用されるということは、関連技術分野で当業者であるならば、理解することができるであろう。
【００７０】
図８は、他の一実施形態による、ＬＯＤ加重値に基づいて、第１演算器及び第２演算器を決定する方法について説明するための図面である。
【００７１】
テクスチャ処理装置は、ＬＯＤ加重値の範囲を複数の区間に分割し、ＬＯＤ加重値が属する区間によって、第１演算器と第２演算器とを決定することができる。また、テクスチャ処理装置は、演算の精度が異なる演算器を含んでもよい。
【００７２】
図８を参照すれば、テクスチャ処理装置は、演算の精度がそれぞれ８ビットと４ビットとである、２個の演算器を利用して、テクスチャフィルタリングを行うことができる。具体的には、テクスチャ処理装置は、ＬＯＤ加重値が０．５より大きい場合、演算の精度が８ビットである演算器を第１演算器と決定し、演算の精度が４ビットである演算器を第２演算器と決定することができる。言い替えれば、ＬＯＤ加重値が０．５より大きい場合、第１ミップマップ５１０に係わる演算に利用される加重値Ｕ及び加重値Ｖの精度は、８ビットであり、第２ミップマップ５２０に係わる演算に利用される加重値Ｕ及び加重値Ｖの精度は、４ビットでもある。
【００７３】
反対に、ＬＯＤ加重値が０．５より小さい場合、テクスチャ処理装置は、演算の精度が８ビットである演算器を第２演算器と決定し、演算の精度が４ビットである演算器を第１演算器と決定することができる。
【００７４】
図９は、一実施形態による、テクスチャ処理装置の構成を示したブロック図である。図９を参照すれば、テクスチャ処理装置９００は、制御部９１０及びテクスチャフィルタ９２０を含んでもよい。図９に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、関連技術分野で当業者であるならば、理解することができるであろう。少なくとも一実施形態によれば、制御部９１０及びテクスチャフィルタ９２０は、それぞれの回路でもあり、コントローラ回路９１０及びテクスチャフィルタ回路９２０とも称される。
【００７５】
制御部９１０は、外部からテクスチャを受信し、テクスチャ処理装置９００を制御するために必要な演算を行うことができる。制御部９１０は、テクスチャフィルタ９２０を制御し、テクスチャ処理装置９００の全般的な制御を担当することができる。
【００７６】
また、制御部９１０は、グラフィックのＬＯＤ値によって決定される第１ミップマップ５１０と、第２ミップマップ５２０とがテクスチャフィルタリングに関与する程度を示すＬＯＤ加重値に基づいて、第１ミップマップ５１０に係わる演算を行う第１演算器と、第２ミップマップ５２０に係わる演算を行う第２演算器と、を決定することができる。このとき、第１演算器によって行われる演算の精度は、第２演算器によって行われる演算の精度と異なる。
【００７７】
例えば、本開示の少なくとも一実施形態によれば、制御部９１０は、イメージのピクセル情報を受信し、イメージのＬＯＤ値を決定し、第１ミップマップ５１０が関与する程度を示すＬＯＤ加重値を決定することができ、決定されたＬＯＤ加重値に基づいて、第２ミップマップ５２０を決定することができる。
【００７８】
また、本開示の少なくとも一実施形態によれば、テクスチャフィルタ回路９２０は、複数の異なる精度をそれぞれ有する複数の演算器を含んでもよい。また、制御部９１０は、イメージのＬＯＤ値を決定し、ＬＯＤ値に基づいてＬＯＤ加重値を決定し、第１精度を有する第１演算器、及び第２精度を有する第２演算器を選択するように構成される。制御部９１０は、第１ミップマップに対する第１計算を行うように第１演算器を制御し、第２ミップマップに対して第２計算を行うように第２演算器を制御する。制御部９１０によって選択された第１演算器及び第２演算器は、テクスチャフィルタ回路９２０に含まれた複数の演算器のうち選択された演算器でもあり、選択された第１演算器及び第２演算器の第１精度及び第２精度は、互いに異なる。
【００７９】
また、ＬＯＤ加重値により、第１ミップマップ５１０に係わる演算に利用される加重値と、第２ミップマップ５２０に係わる演算に利用される加重値とが変わる。
【００８０】
また、制御部９１０は、ＬＯＤ加重値の範囲を複数の区間に分割し、ＬＯＤ加重値が属する区間によって、第１演算器と第２演算器とを決定することができる。
【００８１】
また、制御部９１０は、テクスチャフィルタ９２０に含まれる演算器の演算精度による組み合わせ数に基づいて、ＬＯＤ加重値の範囲を分割することができる。
【００８２】
また、制御部９１０は、第１ミップマップ５１０がテクスチャフィルタリングに関与する程度が増大するほど、演算の精度が高い演算器を第１演算器と決定することができる。
【００８３】
また、制御部９１０は、第１ミップマップ５１０が第２ミップマップ５２０よりテクスチャフィルタリングに関与する程度が増大すれば、第２演算器の演算の精度よりさらに高い演算の精度を有する演算器を第１演算器と決定することができる。
【００８４】
一方、第１ミップマップ５１０と第２ミップマップ５２０とがテクスチャフィルタリングに関与する程度の差が増大するほど、第１演算器の演算の精度と、第２演算器の演算の精度との差が増大する。
【００８５】
一方、第１演算器と第２演算器との面積は、演算の精度に比例する。
【００８６】
また、テクスチャフィルタ９２０は、第１演算器及び第２演算器を利用して、テクスチャフィルタリングを行うことができる。
【００８７】
また、ＬＯＤ加重値が属する区間が、ＬＯＤ加重値の最大値または最小値を含む区間であるならば、第１演算器及び第２演算器のうちいずれか一つは、第１ミップマップ５１０と第２ミップマップ５２０とのうち、テクスチャフィルタリングに関与する程度が小さいミップマップに含まれたテクセル値を出力することができる。
【００８８】
また、制御部９１０は、ＬＯＤ加重値に基づいて、第１ミップマップ５１０に係わる演算の精度と、第２ミップマップ５２０に係わる演算の精度と、を決定することができ、テクスチャフィルタ９２０は、決定された演算の精度に基づいて、第１演算器の演算の精度と、第２演算器の演算の精度とを変更することができる。本開示の少なくとも一実施形態によれば、テクスチャフィルタ９２０は、少なくとも一部が互いに異なる精度を有する複数の演算器（例えば、演算器回路）を含み、制御部９１０は、ＬＯＤ加重値に基づいて、複数の演算器のうち一演算器を選択することができる。
【００８９】
図１０は、一実施形態による、グラフィック処理装置の構成を示したブロック図である。図１０を参照すれば、テクスチャ処理装置１０１０は、制御部１０１１、テクスチャフィルタ１０１２及びテクスチャキャッシュ１０１３を含んでもよい。テクスチャ処理装置１０１０は、シェーダコア１０２０から要請されたテクスチャを処理し、シェーダコア１０２０に伝送することができる。テクスチャ処理装置１０１０は、シェーダコア１０２０が処理するピクセルに対応するテクスチャ座標を含むテクスチャ要請を受信することができる。例えば、ピクセルは、クワッド単位でテクスチャ要請に含まれる。一方、テクスチャ処理装置１０１０は、テクスチャキャッシュ１０１３に保存されていないテクスチャを、メモリ１０３０から持ってくることができる。
【００９０】
本開示の一実施形態によれば、テクスチャ処理装置１０１０は、図９のテクスチャ処理装置９００の一実施形態でもある。制御部１０１１及びテクスチャフィルタ１０１２は、図９の制御部９１０及びテクスチャフィルタ９２０と対応するので、詳細な説明は省略する。
【００９１】
テクスチャキャッシュ１０１３は、テクスチャを保存することができる。テクスチャキャッシュ１０１３は、テクスチャ処理装置１０１０とメモリ１０３０とのデータ伝送によるグラフィック処理遅延時間を最小化させるために、メモリ１０３０から受信した一部テクスチャを保存することができる。
【００９２】
テクスチャキャッシュ１０１３は、テクスチャ処理装置１０１０と別途のモジュールでもっても存在することもできる。例えば、テクスチャキャッシュ１０１３を別途のモジュールで具現し、テクスチャ処理装置１０１０とメモリ１０３０との間に位置させることもできる。
【００９３】
図１１は、他の一実施形態による、ＬＯＤ加重値に基づいて、第１演算器及び第２演算器を決定する方法について説明するための図面である。
【００９４】
テクスチャ処理装置９００に含まれた演算器の数が増加すれば、テクスチャ処理装置９００は、ＬＯＤ加重値によって、第１演算器及び第２演算器をさらに精巧に選択することができるが、テクスチャ処理装置９００の面積が増大する。
【００９５】
図１１を参照すれば、テクスチャ処理装置９００は、演算の精度がそれぞれ９ビットないし１ビットである９個の演算器を利用して、テクスチャフィルタリングを行うことができる。例えば、ＬＯＤ加重値が０．１５である場合、テクスチャ処理装置９００は、演算の精度が２ビットである演算器を、第１演算器と決定し、演算の精度が８ビットである演算器を、第２演算器と決定することができる。また、ＬＯＤ加重値が０．９５である場合、テクスチャ処理装置９００は、演算の精度が９ビットである演算器を、第１演算器と決定し、演算の精度が１ビットである演算器を、第２演算器と決定することができる。
【００９６】
図１１によるテクスチャ処理装置９００は、図８によるテクスチャ処理装置９００に比べ、さらに多くの演算器を含むために、ＬＯＤ加重値によって、第１演算器及び第２演算器をさらに精巧に決定することができる。しかし、図８によるテクスチャ処理装置９００に比べ、テクスチャ処理装置９００の面積が増大する。
【００９７】
図１２Ａ及び図１２Ｂは、一実施形態による、ＬＯＤ加重値が、ＬＯＤ加重値の最大値または最小値が含まれた区間に属するとき、第１演算器及び第２演算器を決定する方法について説明するための図面である。
【００９８】
テクスチャ処理装置９００は、ＬＯＤ加重値により、テクスチャフィルタリング方式を変更することができる。具体的には、ＬＯＤ加重値が属する区間がＬＯＤ加重値の最大値または最小値を含む区間であるならば、第１演算器と第２演算器とのうちいずれか一つは、ポイントフィルタリングを行うことができる。言い替えれば、第１演算器と第２演算器とのうちいずれか一つは、第１ミップマップ５１０と第２ミップマップ５２０とのうち、テクスチャフィルタリングに関与する程度が小さいミップマップに含まれたテクセル値を出力することができる。
【００９９】
図１２Ａを参照すれば、テクスチャ処理装置９００は、演算の精度がそれぞれ８ビット、４ビット及び０ビットである３個の演算器を含んでもよい。このとき、ＬＯＤ加重値が０．１より小さい場合、テクスチャ処理装置９００は、演算の精度が０ビットである演算器を第１演算器と決定することができる。演算の精度が０ビットであることは、二重線形フィルタリングを行うとき、利用される加重値Ｕ，Ｖの精度が０ビットであることを意味する。言い替えれば、演算の精度が０ビットである演算器は、二重線形フィルタリングの代わりに、ポイントフィルタリングを行う演算器を意味する。
【０１００】
従って、テクスチャ処理装置９００は、ＬＯＤ加重値が０．１より小さい場合、第１ミップマップ５１０については、ポイントフィルタリングを行い、第２ミップマップ５２０については、演算の精度が８ビットである第２演算器を利用して、二重線形フィルタリングを行うことができる。また、ＬＯＤ加重値が０．９より大きい場合、テクスチャ処理装置９００は、第２ミップマップ５２０については、ポイントフィルタリングを行い、第１ミップマップ５１０については、演算の精度が８ビットである第１演算器を利用して、二重線形フィルタリングを行うことができる。
【０１０１】
一方、テクスチャ処理装置９００は、ポイントフィルタリングを行う演算器を別途に追加せず、演算の精度が４ビットである演算器を利用して、ポイントフィルタリングを行うことができる。
【０１０２】
図１２Ａによるテクスチャ処理装置９００は、１ミップマップに対して、二重線形フィルタリングの代わりに、ポイントフィルタリングを行うために、図８によるテクスチャ処理装置９００に比べ、演算量が減少する。また、テクスチャ処理装置９００が、演算の精度が４ビットである演算器を利用して、ポイントフィルタリングを行うならば、図８によるテクスチャ処理装置９００と面積は同一であるが、演算量が減少する。
【０１０３】
一方、図１２Ｂによるテクスチャ処理装置９００は、図１２Ａによるテクスチャ処理装置９００のように、ＬＯＤ加重値によって、ミップマップに対する演算を変更しながら、第１演算器及び第２演算器をさらに精巧に選択することができる。
【０１０４】
図１２Ｂを参照すれば、テクスチャ処理装置９００は、演算の精度がそれぞれ８ビット、６ビット、４ビット、２ビット及び０ビットである５個の演算器を利用して、テクスチャフィルタリングを行うことができる。例えば、ＬＯＤ加重値が０．２５である場合、テクスチャ処理装置９００は、演算の精度が４ビットである演算器を第１演算器と決定し、演算の精度が８ビットである演算器を第２演算器と決定することができる。また、ＬＯＤ加重値が０．９５である場合、テクスチャ処理装置９００は、演算の精度が８ビットである演算器を第１演算器と決定し、演算の精度が０ビットである演算器を第２演算器と決定することができる。かような場合、テクスチャ処理装置９００は、第２ミップマップに対して、二重線形フィルタリングの代わりに、ポイントフィルタリングを行うことができる。一方、テクスチャ処理装置９００は、ポイントフィルタリングを行う演算器を別途に追加せず、他の演算器を利用して、ポイントフィルタリングを行うことができる。
【０１０５】
図１２Ｂによるテクスチャ処理装置９００は、図１２Ａによるテクスチャ処理装置９００に比べ、演算の精度が異なる２つの演算器をさらに含むために、ＬＯＤ加重値によって第１演算器及び第２演算器をさらに精巧に選択することができる。しかし、図１２Ａによるテクスチャ処理装置９００に比べ、テクスチャ処理装置９００の面積が増大する。
【０１０６】
一方、図１２Ａ及び図１２Ｂでは、第１ミップマップに対して、ポイントフィルタリングを行うと決定する第１臨界値を０．１と仮定し、第２ミップマップに対してポイントフィルタリングを行うと決定する第２臨界値を０．９と仮定したが、それは、説明の便宜のためのものであり、第１臨界値及び第２臨界値は、それらに制限されなるものではない。
【０１０７】
図１３は、一実施形態による、テクスチャフィルタリングの演算量変化について説明するための図面である。図１３は、演算の精度が８ビットである２つの演算器を利用した三重線形フィルタリングの最終演算量が１００％であるとき、演算器構成が変わることにより、最終演算量が減少する比率を図示したものである。一方、OpenＧＬのＲＧＢＡ形式による場合、各構成要素（Red、Green、Blue、Alpha）は、それぞれ８ビット整数型で表現される。従って、演算量比較のために、テクスチャフィルタリングに利用されるテクセルの精度は、８ビットであり、２つの演算器のうち一つは、演算の精度が８ビットであるということが前提となる。
【０１０８】
図１３を参照すれば、演算器構成の「ａ×ｂ」において、ａとｂは、それぞれテクセルの精度と、演算の精度とを意味する。また、「Ａ＋Ｂ」において、ＡとＢは、それぞれ演算器精度を意味する。言い替えれば、図１３は、２つの演算器を利用するテクスチャ処理装置であることが前提となっているので、「ａ×ｂ＋ｃ×ｄ」で表示される。例えば、演算器構成が「８×８＋８×６」である場合、各演算器の演算の精度は、それぞれ８ビット、６ビットである。
【０１０９】
一方、演算器構成が「８×８及び８×４」であるならば、ＬＯＤ加重値によって、第１演算器及び第２演算器を異ならせてテクスチャフィルタリングを行う最終演算量が７８．５％でもある。従って、演算の精度がいずれも８ビットである２つの演算器を利用するときより、２１．５％演算量が減少する。
【０１１０】
また、演算器構成が「８×８及び８×０」であるならば、ＬＯＤ加重値によって、第１演算器及び第２演算器を異ならせてテクスチャフィルタリングを行う最終演算量が５７．１％でもある。本開示の少なくとも一実施形態によれば、最終演算量は、テクスチャ処理動作（例えば、テクスチャフィルタリング動作）を完了するために、テクスチャ処理装置９００によって行われる総計算量を示す。
【０１１１】
図１３を参照すれば、テクスチャ処理装置９００に含まれた１つの演算器によって行われる演算の精度が低下すれば、最終演算量が減少する。また、最終演算量が減少すれば、電力消費量も減少する。併せて、演算器面積は、演算の精度に比例するので、テクスチャ処理装置９００は、演算の精度によって、面積が小さい演算器を含んでもよい。
【０１１２】
また、テクスチャ処理装置９００は、演算の精度が同一である２つの演算器の一部のみを使用する方式で、既存ハードウェアを利用して具現されもする。
【０１１３】
一方、最終演算量が減少すれば、テクスチャフィルタリングの正確度が低下する。すなわち、演算器構成に含まれる演算器の演算の精度が低下すれば、誤謬回数が増加する。図１３を参照すれば、誤謬最大値は、OpenＧＬ  ＥＳ  ３．２適合性テストを行ったとき、変数の最小値または最大値を外れる誤謬回数を意味する。一方、ＲＧＢＡ形式の各構成要素が８ビットである場合、誤謬回数が８回以下であるとい、OpenＧＬ  ＥＳ  ３．２適合性テストを通過することができる。
【０１１４】
従って、最終演算量の比率と誤謬最大値とを考慮すれば、演算の精度が４ビットである演算器を含む演算器構成１３１０が、OpenＧＬ  ＥＳ  ３．２適合性テスト基準を満足しながら、演算量が最小である演算器構成であると判断される。一方、テクスチャ処理装置９００の演算器構成は、要求される品質に基づいて決定される。例えば、テクスチャ処理装置９００には、最終演算量をさらに減らすことができる演算器構成が適用され、誤謬回数をさらに減らすことができる演算器構成が適用されもする。
【０１１５】
図１４は、一実施形態によるテクスチャ処理方法を図示したフローチャートである。
【０１１６】
段階１４１０において、制御部９１０は、グラフィックのＬＯＤ値によって決定される第１ミップマップ５１０と第２ミップマップ５２０とがテクスチャフィルタリングに関与する程度を示すＬＯＤ加重値に基づいて、第１ミップマップ５１０に係わる演算を行う第１演算器と、第２ミップマップ５２０に係わる演算を行う第２演算器と、を決定することができる。このとき、第１演算器によって行われる演算の精度は、第２演算器によって行われる演算の精度と異なる。
【０１１７】
また、ＬＯＤ加重値により、第１ミップマップ５１０に係わる演算に利用される加重値と、第２ミップマップ５２０に係わる演算に利用される加重値とが変わる。
【０１１８】
また、制御部９１０は、ＬＯＤ加重値の範囲を複数の区間に分割し、ＬＯＤ加重値が属する区間によって、第１演算器と第２演算器とを決定することができる。
【０１１９】
また、制御部９１０は、テクスチャフィルタ９２０に含まれる演算器の演算精度による組み合わせ数に基づいて、ＬＯＤ加重値の範囲を分割することができる。
【０１２０】
また、制御部９１０は、第１ミップマップ５１０がテクスチャフィルタリングに関与する程度が増大するほど、演算の精度が高い演算器を第１演算器と決定することができる。
【０１２１】
また、制御部９１０は、第１ミップマップ５１０が第２ミップマップ５２０よりテクスチャフィルタリングに関与する程度が増大すれば、第２演算器の演算の精度よりさらに高い演算の精度を有する演算器を第１演算器と決定することができる。
【０１２２】
一方、第１ミップマップ５１０と第２ミップマップ５２０とがテクスチャフィルタリングに関与する程度の差が増大するほど、第１演算器の演算の精度と、第２演算器の演算の精度との差が増大する。
【０１２３】
段階１４２０において、テクスチャフィルタ９２０は、第１演算器と前記第２演算器とを利用して、テクスチャフィルタリングを行うことができる。
【０１２４】
また、ＬＯＤ加重値が属する区間が、ＬＯＤ加重値の最大値または最小値を含む区間であるならば、第１演算器と第２演算器とのうちいずれか一つは、第１ミップマップ５１０と第２ミップマップ５２０とのうち、テクスチャフィルタリングに関与する程度が小さいミップマップに含まれたテクセル値を出力することができる。
【０１２５】
また、制御部９１０は、ＬＯＤ加重値に基づいて、第１ミップマップ５１０に係わる演算の精度と、第２ミップマップ５２０に係わる演算の精度と、を決定することができ、テクスチャフィルタ９２０は、決定された演算の精度に基づいて、第１演算器の演算の精度と、第２演算器の演算の精度とを変更することができる。
【０１２６】
図１５は、一実施形態によるテクスチャ処理方法を図示した詳細フローチャートである。図１５は、図１２によるテクスチャ処理装置９００がテクスチャを処理する方法について詳細に説明するための図面であり、テクスチャ処理装置９００の演算器構成によって、テクスチャフィルタリングを行う方法が変わるということは、当該技術分野の通常の技術者であるならば、理解することができるであろう。
【０１２７】
段階１５１０において、制御部９１０は、クワッド情報を受信することができる。このとき、クワッドは、テクスチャをマッピングさせるピクセルの単位であり、２×２ピクセルの集合で示すことができる。また、該クワッド情報は、テクスチャ要請に含まれ、シェーダコア１０２０からも受信される。
【０１２８】
段階１５２０において、制御部９１０は、クワッド情報に基づいて、ＬＯＤ加重値を計算し、テクスチャフィルタリングに利用される第１ミップマップ５１０及び第２ミップマップ５２０を決定することができる。
【０１２９】
段階１５３０において、制御部９１０は、ＬＯＤ加重値が０．１より小さいか否かということを判断することができる。もしＬＯＤ加重値が０．１より小さければ、段階１５４０が遂行され、そうではなければ、段階１５５０が遂行される。
【０１３０】
段階１５４０において、テクスチャ処理装置９００は、演算の精度が８ビットである演算器でもって、第２ミップマップ５２０に対して二重線形フィルタリングを行い、第１ミップマップ５１０に対して、ポイントフィルタリングを行うことができる。すなわち、ＬＯＤ加重値が０．１より小さければ、テクスチャ処理装置９００は、演算量を減らすために、テクスチャフィルタリングに関与する程度が相対的に大きい第２ミップマップ５２０に対してのみ二重線形フィルタリングを行い、第１ミップマップ５１０については、ポイントフィルタリングを行うことができる。
【０１３１】
段階１５５０において、制御部９１０は、ＬＯＤ加重値が０．９より大きいか否かということを判断することができる。もしＬＯＤ加重値が０．９より大きければ、段階１５６０が遂行され、そうではなければ、段階１５７０が遂行される。
【０１３２】
段階１５６０において、テクスチャ処理装置９００は、演算の精度が８ビットである演算器でもって、第１ミップマップ５１０に対して二重線形フィルタリングを行い、第２ミップマップ５２０に対してポイントフィルタリングを行うことができる。すなわち、ＬＯＤ加重値が０．９より大きければ、テクスチャ処理装置９００は、演算量を減らすために、テクスチャフィルタリングに関与する程度が相対的に大きい第１ミップマップ５１０に対してのみ二重線形フィルタリングを行い、第２ミップマップ５２０については、ポイントフィルタリングを行うことができる。
【０１３３】
段階１５７０において、制御部９１０は、ＬＯＤ加重値によって、第１演算器及び第２演算器を決定することができる。第１演算器は、第１ミップマップ５１０に係わる演算を行う演算器を意味し、第２演算器は、第２ミップマップ５２０に係わる演算を行う演算器を意味する。このとき、第１演算器によって行われる演算の精度と、第２演算器によって行われる演算の精度とが異なる。また、第１ミップマップ５１０に係わる演算に利用される加重値の精度と、第２ミップマップ５２０に係わる演算に利用される加重値の精度とが異なる。各加重値の精度が異なれば、加重値を表現するビット数が異なるために、加重値が変わる。
【０１３４】
例えば、ＬＯＤ加重値が０．５より大きい場合、演算の精度が８ビットである演算器が第１演算器と決定され、演算の精度が４ビットである演算器が第２演算器と決定される。
【０１３５】
段階１５８０において、テクスチャフィルタ９２０は、第１演算器及び第２演算器を利用して、第１ミップマップ５１０と第２ミップマップ５２０とに対する二重線形フィルタリングを行うことができる。
【０１３６】
段階１５９０において、テクスチャフィルタ９２０は、第１ミップマップ５１０と第２ミップマップ５２０とに対するフィルタリング結果と、ＬＯＤ加重値とを利用して、三重線形フィルタリングを行うことができる。
【０１３７】
本実施形態は、コンピュータによって実行されるプログラムモジュールのようなコンピュータによって実行可能な命令語を含む記録媒体の形態でも具現される。コンピュータ可読媒体は、コンピュータによってアクセスされる任意の可用媒体でもあり、揮発性媒体及び不揮発性媒体、分離型媒体及び非分離型媒体をいずれも含む。また、コンピュータ可読媒体は、コンピュータ記録媒体及び通信媒体をいずれも含んでもよい。該コンピュータ記録媒体は、コンピュータ可読命令語、データ構造、プログラムモジュール、またはその他データのような情報保存のための任意の方法または技術によって具現された揮発性及び不揮発性、分離型及び非分離型の媒体をいずれも含む。該通信媒体は、典型的には、コンピュータ可読命令語、データ構造、プログラムモジュール、またはその他伝送メカニズムを含み、任意の情報伝達媒体を含む。
【０１３８】
本実施形態の範囲は、前述の説明よりは、特許請求の範囲によって示され、特許請求の範囲の意味、範囲及びその均等概念から導き出される全ての変更、または変形された形態が含まれると解釈されなければならない。
【産業上の利用可能性】
【０１３９】
本発明のテクスチャ処理方法及びその装置は、例えば、グラフィック関連の技術分野に効果的に適用可能である。
【符号の説明】
【０１４０】
１００      グラフィック処理装置
１１０      ラスタライザ
１２０，１０２０  シェーダコア
１３０，９００，１０１０  テクスチャ処理装置
１４０      ピクセル処理装置
１５０      タイルバッファ
１６０，１０３０  メモリ
１７０      バッファ
３０１      ピクセル
３０２      テクスチャ
４１０      レベル０ミップマップ
４１１      レベル１ミップマップ
４１２      レベル２ミップマップ
５１０      第１ミップマップ
５２０      第２ミップマップ
９１０，１０１１  制御部
９２０，１０１２  テクスチャフィルタ
１０１３    テクスチャキャッシュ
【図１】
2018073388.tif 000006
【図２】
2018073388.tif 000007
【図３】
2018073388.tif 000008
【図４】
2018073388.tif 000009
【図５Ａ】
2018073388.tif 000010
【図５Ｂ】
2018073388.tif 000011
【図６】
2018073388.tif 000012
【図７】
2018073388.tif 000013
【図８】
2018073388.tif 000014
【図９】
2018073388.tif 000015
【図１０】
2018073388.tif 000016
【図１１】
2018073388.tif 000017
【図１２Ａ】
2018073388.tif 000018
【図１２Ｂ】
2018073388.tif 000019
【図１３】
2018073388.tif 000020
【図１４】
2018073388.tif 000021
【図１５】
2018073388.tif 000022