【課題】サンプリング基盤のレンダリングを行うグラフィックプロセッサにおいて、フラグメントシェーディング処理の演算量を低減させると共に、その正確度を向上できる動作方法を提供する。
【解決手段】第1パターンを有する第1サンプル候補マップを利用し、第1フレームの一部フラグメントをシェーディング処理することにより、中間レンダリングを行う段階と、第2パターンを有する第1サンプル候補マップを利用し、第2フレームの一部フラグメントをシェーディング処理することにより、中間レンダリングを行う段階と、第1フレームのシェーディング処理結果と、第2フレームのシェーディング処理結果との比較に基づいて、第2フレームの他の一部フラグメントを追加してサンプリングする段階と、追加してサンプリングされたフラグメントをシェーディング処理することにより、最終レンダリングを行う段階と、を具備することを特徴とする。
前記第2フレームに対する中間レンダリング及び最終レンダリング段階において、シェーディング処理されていない残りフラグメントに対する補間を行う段階、をさらに具備することを特徴とする請求項1に記載のグラフィックプロセッサの動作方法。
前記第1フレームにおいて、前記第1パターンを有する第1サンプル候補マップによってサンプリングされるフラグメントと、前記第2フレームにおいて、前記第2パターンを有する第1サンプル候補マップによってサンプリングされるフラグメントとの位置は、相異なる、ことを特徴とする請求項1に記載のグラフィックプロセッサの動作方法。
第1サンプル候補マップのサンプリング情報により、現在フレームの複数のフラグメントのうち一部のフラグメントに対するシェーディングを行う中間レンダリング処理器と、
以前フレームでのシェーディング処理結果と、前記現在フレームのシェーディング処理結果との比較に基づいて、前記第1サンプル候補マップのサンプリング情報を変更することにより、変更されたサンプル候補マップを生成するサンプル候補マップ変形回路と、
前記中間レンダリング処理器によってシェーディング処理されていない前記現在フレームのフラグメントのうち、前記変更されたサンプル候補マップによって追加してサンプリングされる一部のフラグメントに対するシェーディングを行う最終レンダリング処理器と、を具備することを特徴とするグラフィックプロセッサ。
前記中間レンダリング処理器及び前記最終レンダリング処理器によってシェーディング処理されていないフラグメントに対するホールフィリングを遂行する補間処理器をさらに具備する、ことを特徴とする請求項9に記載のグラフィックプロセッサ。
受信されるパターン情報により、前記第1サンプル候補マップを生成するサンプル候補マップ生成器をさらに具備する、ことを特徴とする請求項9に記載のグラフィックプロセッサ。
前記サンプル候補マップは、オッド(ODD)フレームに対するレンダリング処理時、第1パターンを有し、イーブン(EVEN)フレームに対するレンダリング処理時、前記第1パターンとは異なる第2パターンを有し、
前記以前フレームは、前記オッドフレームに該当し、前記現在フレームは、前記イーブンフレームに該当する、ことを特徴とする請求項11に記載のグラフィックプロセッサ。
フレーム順序により、前記第1パターン又は前記第2パターンを有するパターン情報を、前記サンプル候補マップ生成器に提供するサンプルパターン生成器をさらに具備する、ことを特徴とする請求項12に記載のグラフィックプロセッサ。
前記以前フレームでのシェーディング処理結果によるフラグメント値を受信し、前記第2パターンを有するパターン情報が、前記サンプル候補マップ生成器に提供されるとき、前記サンプルパターン生成器から前記第1パターンを有するパターン情報を受信し、前記以前フレームの前記第1パターンに対応するフラグメントの値を、前記サンプル候補マップ変形回路に提供するピクセル抽出器をさらに具備する、ことを特徴とする請求項13に記載のグラフィックプロセッサ。
前記現在フレームの同一フラグメントに対するシェーディング処理によって算出された値と、補間処理によって算出された値とを比較することにより、補間正確度判断を行う補間正確度判断回路をさらに具備し、
前記サンプル候補マップ生成器は、前記補間正確度判断結果により、前記サンプル候補マップのサンプリングの比率を調節する、ことを特徴とする請求項11に記載のグラフィックプロセッサ。
前記サンプル候補マップ生成器は、ホストからの命令に応答し、前記第1サンプル候補マップのサンプリングの比率を調節する、ことを特徴とする請求項11に記載のグラフィックプロセッサ。
レンダリング処理される所定フレームに対して、複数のフラグメントのうち一部のフラグメントを選択するための第1サンプル候補マップを受信し、少なくとも2つのフレームのシェーディング処理結果の比較に基づいて、前記第1サンプル候補マップのサンプリング情報を変更することにより、第2サンプル候補マップを生成するサンプル候補マップ変形回路と、
前記第1サンプル候補マップによってサンプリングされたフラグメントに対するシェーディング処理を介して、中間レンダリング処理を行い、前記第2サンプル候補マップにより、追加してサンプリングされたフラグメントに対するシェーディング処理を介して最終レンダリングを行うフラグメント処理器と、を具備することを特徴とするグラフィックプロセッサ。
前記フラグメント処理器は、前記中間レンダリングを行う中間レンダリング処理器、及び前記最終レンダリングを行う最終レンダリング処理器を具備する、ことを特徴とする請求項18に記載のグラフィックプロセッサ。
【発明を実施するための形態】
【0009】
以下、添付した図面を参照し、本発明の実施形態について詳細に説明する。
図1は、本発明の例示的な実施形態によるレンダリングシステムを示すブロック図である。レンダリングシステム10は、グラフィックプロセッサ100及びメモリ101を含み得、グラフィックプロセッサ100として、グラフィックプロセッシングユニット(GPU:graphic processing unit)が例示される。説明の便宜上、以下の実施形態において、GPUは、グラフィックプロセッサと称されるが、本発明のグラフィックプロセッサは、他の多様なプロセッサによっても具現され得る。
【0010】
グラフィックプロセッサ100は、レンダリングシステム10内において、グラフィック演算を行い、それを介してレンダリングを処理できる。一例として、グラフィックプロセッサ100は、三次元のオブジェクト(object)データを受信し、それに対するレンダリング処理結果として、二次元のレンダリングイメージを出力できる。
【0011】
グラフィックプロセッサ100は、タイル基盤レンダリング(tile−based rendering)を行うように構成され、そのために、グラフィックスパイプライン(graphics pipeline)を含み得、該グラフィックスパイプラインにより、グラフィックデータが並列処理される。各々のグラフィックスパイプラインは、グラフィック演算のための多様な構成を含み得、一例として、該グラフィックスパイプラインは、ハードウェアで構成されるか、又は、ソフトウェアで構成される。又は、該グラフィックスパイプラインは、ハードウェア及びソフトウェアの組み合わせによっても構成される。
【0012】
図1には、図示されていないが、レンダリングシステム10は、システム全般の動作を制御するCPU(central processing unit)と、構成要素間の通信のために、PCIバス、PCI Expressバスなど多様なバス(bus)をさらに含み得る。また、レンダリングシステム10は例えば、デスクトップコンピュータ、ノート型パソコン、スマートフォン、PDA(personal digital assistant)、携帯型メディアプレーヤ、ビデオゲーム用コンソール、テレビセットトップボックス、タブレットデバイス、電子書籍リーダ、ウェアラブルデバイス上で具現できるが、それらに限定されず、多様な電子システムが該当する。
【0013】
グラフィックプロセッサ100は、OpenGL(Open Graphic(s) Library)、DirectX、CUDA(Computer Unified Device Architecture)などの多様なAPI(application programming interface)標準に基づくレンダリング関連情報を受信でき、グラフィック演算として、シェーディング(shading)処理、テクスチャリング(texturing)処理のような多様な演算を実行できる。また、メモリ101は、グラフィックプロセッサ100と同一半導体チップに集積されるか又は、或いは互いに異なる半導体チップに具現され、DRAM(dynamic random access memory)、SRAM(static random access memory)などのRAM(random access memory)装置により具現されるか、或いは、マスクROM(read−only memory)、EEPROM(electrically erasable programmable read−only memory)、フラッシュメモリ(flash memory)などのROM装置により具現される。メモリ101は、グラフィックプロセッサ100によって処理されるべきグラフィックデータを格納するか、又は、グラフィックプロセッサ100によって処理されたグラフィックデータ(例えば、フレームデータ)を格納することができる。
【0014】
一動作例として、グラフィックプロセッサ100は、バーテックス(vertex、頂点)を入力され、入力されたバーテックスに対する演算処理を介して、プリミティブ(primitive、基本図形)を生成できる。また、グラフィックプロセッサ100は、プリミティブを利用し、フラグメント(fragment)の集合(set)を生成できる。該フラグメントは、プリミティブの内部を構成する三次元の点(dot)を表示できる。また、グラフィックプロセッサ100は、フラグメントの値を算出するためのフラグメントシェーディングを実行できる。
【0015】
フラグメントシェーディング処理は、その複雑度が高くなることにより、全体グラフィック演算量の多くの部分を占める。該フラグメントシェーディングの複雑度を低減させるために、複数のフラグメントのうち一部のみをサンプリングしてシェーディング処理を行い、残りのフラグメントについては、類推動作又は補間動作を介して、値(例えば、フラグメント値)を算出する方式が適用される。該類推動作又は該補間動作の場合、シェーディング処理に比べ、各々プロセッサ集約的であるので、全体的な処理量が低減される。以下の実施形態において、シェーディング処理されるフラグメントは、サンプリングされたフラグメントと称され、一方、類推動作又は補間動作を介してその値が算出されるフラグメントは、サンプリングされていないフラグメントか、或いは類推されたフラグメントとも称される。ここで、サンプリングの比率(sampling rate)が低い場合には、実際シェーディング処理が必要になるフラグメントの値が補間を介して決まり、その場合、補間処理によって算出されたフラグメント値が、実際の値と差が大きくなるので、画質低下が発生してしまう。
【0016】
一方、プリミティブを構成するフラグメントは、グラフィック演算処理の基本単位に該当し、一実施形態において、前記フラグメントは、ピクセルに該当する。本発明の実施形態において、フラグメント及びピクセルという用語は混用されても使用される。例えば、フラグメントシェーディングは、ピクセルシェーディングとも称され、フラグメントに係るサンプリングは、ピクセルサンプリングとも称されるのである。
【0017】
本発明の例示的な実施形態によって、グラフィックプロセッサ100は、サンプル候補マップ(SCM:sample candidate map)変形回路(又は、SCM変形装置110)及びフラグメント処理器120を含み得る。例えば、1つのプリミティブ単位を例として挙げれば、プリミティブ内には、複数のフラグメントが含まれ、グラフィックプロセッサ100は、前記複数のフラグメントのうち一部のフラグメントのみをサンプリングし、それに対して選択的にシェーディングを実行できる。一例として、グラフィックプロセッサ100内において、一部のフラグメントをサンプリングするためのサンプリング情報を含むサンプル候補マップ(例えば、第1サンプル候補マップSCM_1)が生成され、第1サンプル候補マップSCM_1を利用したシェーディング処理を介して、前記一部のフラグメントのシェーディング処理結果(例えば、フラグメント値)が算出される。サンプル候補マップを介してサンプリングされるフラグメントに指定されていないフラグメントは、サンプリングされたフラグメント間の補間を介して得られる値を有し得る。
【0018】
本発明の概念によれば、不正確な補間に起因するイメージ劣化の発生を低減するために、サンプル候補マップは動的にも変更される。一例として、サンプル候補マップの位置に隣接した位置のフラグメントが、所定臨界値以上に異なる値を有するとき、不正確な補間が発生する可能性が存在する。このとき、サンプリングされたフラグメントは、異なる客体のフラグメントであるか、或いは異なるカラー(又は、他のカラー)を有する同一客体のテクスチャの他部分のフラグメントである。そのような状況においてサンプリングされたフラグメント間の補間動作は、不正確な値を算出してしまう。
【0019】
そのために、本発明のSCM変形装置110は、前述のような不正確状況が発生する状況を検出し、サンプル候補マップを修正することにより、前記不正確な補間が発生しうる位置にサンプリングされるフラグメントを追加できる。また、SCM変形装置110は、現在フレームの第2サンプル位置に隣接した第1サンプル位置でのサンプリングされたフラグメントの値を単純比較する以外にも、現在フレームの第1位置でサンプリングされたフラグメントのフラグメント値を、現在フレームの第1位置と第2位置との間の位置にマッピングされた以前フレームのサンプリングされたフラグメント値を比較することにより、前述の状況を検出できる。そのような観点で、後述されるように、サンプル候補マップを変更するためのさらなるサンプル位置を選択する動作を介して、さらに正確なエッジ検出結果が生じる。
【0020】
SCM変形装置110は、第1サンプル候補マップSCM_1を受信し、前記第1サンプル候補マップSCM_1のサンプリング情報を変形する(revise)ことにより、第2サンプル候補マップSCM_2を生成できる。一具現例として、第1サンプル候補マップSCM_1は、プリミティブ内の複数のフラグメントのうち、シェーディング処理が行われるフラグメント(例えば、第1フラグメント)の位置を示すサンプリング情報を含み得る。また、第2サンプル候補マップSCM_2は、前記第1フラグメントを除いた残りフラグメントのうち、追加してシェーディング処理が行われるフラグメント(例えば、第2フラグメント)の位置を示すサンプリング情報を含み得る。一例として、第2サンプル候補マップSCM_2は、プリミティブ内の複数のフラグメントのうち、第1フラグメント及び第2フラグメントの位置を示す情報を含み得る。変形可能な例として、第2サンプル候補マップSCM_2は、プリミティブ内の複数のフラグメントのうち、第2フラグメントの位置のみを示す情報を含む形態にも具現される。
【0021】
グラフィックプロセッサ100は、シェーディング処理を含むレンダリングを実行でき、本発明の実施形態において、複数のフラグメントに対して、2回以上のシェーディング処理が順次に行われるので、前記第1サンプル候補マップSCM_1を利用したシェーディング処理は、中間(intermediate)レンダリング処理と称され、前記第2サンプル候補マップSCM_2を利用したシェーディング処理は、最終(final)レンダリング処理とも称される。以下の実施形態としては、シェーディング処理とレンダリング処理との用語が混用される場合があり、一例として、中間レンダリング処理は、中間シェーディング処理とも称され、最終レンダリング処理は、最終シェーディング処理とも称され得る。一方、グラフィックプロセッサ100は、第1サンプル候補マップSCM_1を生成する第1SCM生成装置(図示せず)を含み得、前記SCM変形装置110は、第2サンプル候補マップSCM_2を生成する側面において、第2SCM生成装置と指称され得る。
【0022】
一実施形態によって、SCM変形装置110は、多様な情報に基づいて、変形動作を遂行できる。例えば、SCM変形装置110は、現在フレームにおいて、シェーディング処理を介して算出されたフラグメント値Frag_Cと、以前フレームにおいて、シェーディング処理を介して算出されたフラグメント値Frag_Pとを受信し、それらを利用した演算を介して変形動作を遂行できる。一例として、フラグメント値Frag_Cとフラグメント値Frag_Pは、エッジ、又はそれと類似のものなどが互いに近接するが、隣接していないサンプリング位置の間に存在するか否かということを判断するために比較され、それにより、さらなるサンプリングが追加される必要がある。フラグメント値Frag_Pは、以前フレームからのフラグメント値であり、現在フレームのサンプリングされていないフラグメントのためにも再使用される。一例として、以前フレーム及び現在フレームで各々レンダリングされる客体のフレーム間の動きが最小である場合(即ち、フレームの間に、実質的に静的な場面が存在する場合)、同一位置のフラグメントのピクセルは、2つのフレームにおいて、同一フラグメント値Frag_Pを有し得る。さらに複雑なケースにおいて、もし客体のフレーム間での動きの量が重要である場合、モーションベクトルを利用し、第1位置でのフラグメント値Frag_Pは、現在フレームの第2位置にマッピングされ、その場合、以前フレームで判断された第1位置でのフラグメント値Frag_Pは、現在フレームの第2位置でも再使用される。
【0023】
一実施形態によって、第1サンプル候補マップSCM_1のサンプリング情報は、多様なパターンを有し得る。例えば、現在フレームでの中間レンダリング処理に利用された第1サンプル候補マップSCM_1のパターン(第1パターン)と、以前フレームでの中間レンダリング処理に利用された第1サンプル候補マップSCM_1のパターン(第2パターン)は、相異なり得る。一例として、前記パターンでの差は、その後に論議される視覚的な人工物を減らすためのディザリング技術に起因する。一方、変形動作に利用されるフラグメント値Frag_C,Frag_Pは、中間レンダリング処理によって算出された値でもあり、それにより、変形動作に利用される現在フレームでのフラグメント位置と、以前フレームでのフラグメント位置は、相異なり得る。
【0024】
第1サンプル候補マップSCM_1のサンプリングの比率が低いことにより、概略的な(粗い、coarse)パターンを有する場合、中間レンダリング処理を介してその値が算出されるフラグメントの間隔が大きくなる。このとき、中間レンダリング処理が行われていないフラグメントに対する補間処理が行われる前、最終レンダリング処理が必要になるフラグメントをさらに選択するために、前述のサンプル候補マップ変形動作が遂行され、本発明の実施形態によれば、最終レンダリング処理が必要になるフラグメントの選択正確度を向上させるために、少なくとも2つのフレームのフラグメント値が利用される。
【0025】
即ち、何れか1つのフレームにおいて、第1サンプル候補マップSCM_1が概略的なパターンを有したにしても、本発明の例示的な実施形態によれば、現在フレームのフラグメント値と、以前フレームでのフラグメント値とを利用し、サンプル候補マップ変形動作が遂行され、それにより、相対的に短い間隔を有する位置のフラグメント値に基づいて、変形動作が遂行される。即ち、実質的に細密な(fine)パターンによるフラグメント値を利用し、サンプル候補マップ変形動作が遂行されるので、エッジのような実際シェーディング処理が必要とされるフラグメントの選択正確度を向上できる。
【0026】
前述のような動作により、第2サンプル候補マップSCM_2が生成されれば、処理対象のグラフィックデータDataと、第2サンプル候補マップSCM_2とがフラグメント処理器120にも提供される。フラグメント処理器120は、第2サンプル候補マップSCM_2を介してサンプリングされるフラグメントに対するシェーディング処理を行い、それによるフラグメント値を算出することができる。前述のような過程を介し、現在フレームに係わるフレームデータData_Frameが生成され、フレームデータData_Frameは、メモリ101にも保存される。
【0027】
図2は、
図1の実施形態によるサンプル候補マップ変形動作の概念を示す図面である。
図2を参照すれば、第1サンプル候補マップSCM_1は、所定パターンを有するサンプリング情報を含み得る。例えば、
図2においては、複数のフラグメントに対して、水平方向に、4個のフラグメントごとに、1つのフラグメントがサンプリングされ、また垂直方向には、2行(row)ごとに1行に対してサンプリングが適用され、何れか1行でのサンプリング位置と、次の行でのサンプリング位置は、互いに離隔される形態を有する例が図示される。また、
図2の第1サンプル候補マップSCM_1は、4*4サイズごとに、2つのフラグメントをサンプリングするパターンを有するとも説明される。また、
図2は、第1サンプル候補マップSCM_1の少なくとも一部は、タイルのような現在フレームのピクセルT_Cの配置に相関するようにも適用されるということを示す。また、第2サンプル候補マップSCM_2の少なくとも一部も、ピクセルT_Cの配置に相関するようにも適用される。それにより、第1サンプル候補マップSCM_1において、陰影が存在する四角形、存在しない四角形各々は、ピクセルT_Cの各ピクセルをオーバレイ(overlay)するとも仮定される。
【0028】
SCM変形装置110は、第1サンプル候補マップSCM_1のサンプリング情報を変形することにより、第2サンプル候補マップSCM_2を生成できる。また、前述の例により、SCM変形装置110は、現在フレームにおいて、シェーディング処理を介して算出されたフラグメントの値Frag_Cと、以前フレームでシェーディング処理を介して算出されたフラグメントの値Frag_Pとを受信できる。
【0029】
SCM変形装置110は、フラグメントの値Frag_C,Frag_Pを利用した演算を行い、それに基づいて、残りフラグメントに対するシェーディング処理必要性を判断できる。一例として、水平方向に、第1位置P0のフラグメント、第2位置P1のフラグメント、及び第3位置P2のフラグメントを参照して説明すれば、次の通りである。
【0030】
現在フレームに対して、第1サンプル候補マップSCM_1を利用したフラグメントシェーディング処理を介して、第1位置P0及び第2位置P1のフラグメントのフラグメント値Frag_Cが算出され、SCM変形装置110にも提供される。また、以前のフレームにおいては、他の位置のフラグメントに対してシェーディング処理が行われ、一例として、以前フレームの第3位置P2のフラグメント値Frag_Pが、サンプル候補マップ変形装置110にも提供される。一実施形態により、第1サンプル候補マップSCM_1を介してサンプリングされるフラグメントの位置は、フレームごとに変動され、それにより、以前フレームにおいて、中間レンダリング処理されたフラグメントの位置と、現在フレームにおいて、中間レンダリング処理されたフラグメントの位置は、相異なり得る。また、フレーム間において、客体の動きが重要であるとしても、以前フレームについて算出されたフラグメント値は、現在フレームの対応する位置にマッピングされ、以前フレームのフラグメント値は、相変らずサンプル候補マップ変形に有用に利用される。
【0031】
SCM変形装置110は、第1位置P0乃至第3位置P2のフラグメントの値を利用し、サンプル候補マップ変形動作を遂行できる。例えば、第1位置P0のフラグメント値Frag_Cと、第3位置P2のフラグメント値Frag_Pとを利用して演算でき、また、第2位置P1のフラグメント値Frag_Cと、第3位置P2のフラグメント値Frag_Pとを利用して演算できる。また、演算結果により、第1位置P0と第2位置P1との間のフラグメントがサンプリングされるように、サンプル候補マップが変形され得る。
【0032】
一例として、第1位置P0のフラグメント値Frag_Cと、第3位置P2のフラグメント値Frag_Pとを比較した結果、及び/又は第2位置P1のフラグメント値Frag_Cと、第3位置P2のフラグメント値Frag_Pとを比較した結果に基づいて、サンプル候補マップが変形され得る。もしフラグメント値Frag_C,Frag_Pの差が大きい場合(又は、既設定値を超える場合)は、映像の変化が大きいか、或いはエッジが存在する場合を示し、その場合、第1位置P0と第2位置P1との間に該当する領域Reg_1内のフラグメントがサンプリングされるように、サンプル候補マップが変形され得る。一方、フラグメント値Frag_C,Frag_Pの差が既設定値以内に該当する場合には、映像の変化が小さい場合を示し、前記領域Reg_1内のフラグメントは、サンプリングされない。即ち、現在フレーム及び以前フレームのフラグメント値Frag_C,Frag_Pに基づいて、領域Reg_1内のフラグメントがシェーディング処理によってその値が算出されるか、或いは補間処理によってその値が算出され得る。
【0033】
一方、
図2において、現在フレームの第4位置P3と第5位置P4とのフラグメント値Frag_Cと、以前フレームの第6位置P5のフラグメント値Frag_Pとを利用し、領域Reg_2内のフラグメントを追加してサンプリングするか否かが判断される。それと類似した方式により、
図2の全体フラグメントに対する追加サンプリング如何が判断される。
【0034】
前述の実施形態で追加してサンプリングされるフラグメントは、多様な基準によっても選択される。一例として、フラグメント値Frag_C,Frag_Pを利用したエッジ検出アルゴリズムが遂行され、エッジ検出結果により、サンプル候補マップが変形され得る。
【0035】
一方、
図2に図示された例においては、第1位置P0と第2位置P1との間のフラグメントのサンプリング情報が共に変形される場合が例示されたが、本発明の実施形態は、それに限られない。例えば、フラグメント値Frag_C,Frag_Pに基づいて、第1位置P0と第3位置P2との間のフラグメントのサンプリング情報と、第2位置P1と第3位置P2との間のフラグメントのサンプリング情報とが別個に変更され得る。
【0036】
図3は、グラフィックプロセッサにおいて、三次元グラフィックスを処理する過程を示す図面である。
図3を参照すれば、三次元グラフィックスを処理する過程は、大きく見て、幾何変換処理過程、ラスタ化(rasterization)過程、及びピクセルシェーディング処理過程を含み得る。
【0037】
システム内でアプリケーションは、レンダリングするデータと共に、レンダリング方法を記述した一連の命令を、デバイスドライバを介して、グラフィックプロセッサに提供できる。該グラフィックプロセッサは、命令を受信して解釈し、固定されたハードウェア又はプログラマブルハードウェアを介して、実際にレンダリングを実行できる。該レンダリング過程は、多様な処理段階を含み得る。
【0038】
まず、段階S11は、バーテックス(vertices)を生成する段階を示す。該バーテックスは、三次元グラフィックスに含まれたオブジェクト(object、以下、「客体」ともいう)を表示するためにも生成される。また、段階S12は、生成されたバーテックスをシェーディング(shading)する段階を示し、前述の段階S11で生成されたバーテックスの位置を指定することにより、バーテックスに対するシェーディングが行われる。また、段階S13は、プリミティブを生成する段階を示し、該プリミティブは、少なくとも1つのバーテックスを利用して形成される点、線、多角形(polygon)などを意味する。一例として、該プリミティブは、バーテックスを連結して形成された三角形で表示できる。
【0039】
一方、段階S14は、前述のところで生成されたプリミティブに対するラスタ化を行う段階を示し、該プリミティブのラスタ化は、プリミティブをフラグメント(fragments)に分割することを意味する。該フラグメントは、プリミティブに対してグラフィック処理を行うための基本単位でもある。該プリミティブは、バーテックスに係わる情報のみを含むので、ラスタ化段階において、バーテックスとバーテックスとの間のフラグメントを生成することにより、三次元グラフィックスに対するグラフィックを遂行する。
【0040】
一方、段階S15は、フラグメントをシェーディングする段階を示す(pixel shader)。該プリミティブを構成するフラグメントは、タイルを構成するピクセルに該当する。当該分野において、フラグメント及びピクセルという用語は、場合によっては混用され、それにより、フラグメントシェーディングは、ピクセルシェーディングとも称される。一例として、プリミティブを構成するグラフィック処理の基本単位をフラグメントと定義し、その後、ピクセルシェーディングからのグラフィック処理の基本単位をピクセルと定義できる。該ピクセルシェーディングにおいては、ピクセルの色を決定できる。
【0041】
一方、段階S16は、ピクセルの色を決定するためのテクスチャリング(texturing)段階を示す。該テクスチャリングは、事前に準備されたイメージであるテクスチャを利用し、ピクセルの色を決定する過程である。実世界の多様な色相と、パターンの様子とを表現するために、各々のピクセルの色相を計算して決定することは、グラフィック処理に必要なデータ演算量と、グラフィック処理時間とを増大させるので、事前に準備されたテクスチャを利用し、ピクセルの色相を決定できる。例えば、オブジェクトの表面色相を、テクスチャという別途の二次元映像に保存し、オブジェクトの画面上の位置及び大きさなどにより、保存されたテクスチャを拡大及び縮小したり、多様な解像度を有するテクスチャを利用したりしてピクセル値を混合することにより、ピクセルの色相を決定できる。
【0042】
一方、段階S17は、テスト及びミキシング(testing and mixing)段階を示す。タイル内の同じ位置に対応するピクセルに対し、深さテストのような過程を経て、最終的に表示されるピクセル値を決定し、1つのタイルに該当するピクセル値を決定できる。そのような過程を経て生成された複数個のタイルをミキシングし、1つのフレームに該当する三次元グラフィックスを生成できる。段階S18は、段階S11乃至段階S17を介して生成されたフレームをフレームバッファ(frame buffer)に保存し、該フレームバッファに保存されたフレームを、ディスプレイ装置を介して表示する段階を示す。
【0043】
本発明の実施形態によるサンプル候補マップ変形動作は、
図3のグラフィックス処理過程内で遂行される。一実施形態により、ラスタ化段階(S14)でシェーディング処理が行われるフラグメントを選択するために、サンプル候補マップ生成及び変形動作を遂行できる。例えば、ラスタ化段階(S14)において、フレームごとに可変されるパターンにより、第1サンプル候補マップSCM_1が生成され、前述の実施形態により、現在フレームのフラグメント値と、以前フレームのフラグメント値とを利用し、サンプル候補マップ変形動作が遂行され、第2サンプル候補マップSCM_2によってサンプリングされるフラグメントが、シェーディングを行う装置(ハードウェア又はプロセッシングコア)にも提供される。
【0044】
図4は、本発明の例示的な実施形態によるグラフィックプロセッサの一具現例を示すブロック図である。
一例として、
図4のグラフィックプロセッサ200は、GPUに該当する。
図4を参照すれば、グラフィックプロセッサ200は、ラスタライザ(rasterizor)210、シェーダコア(shader−core)220、テクスチャ処理装置(texture processing unit)230、ピクセル処理装置(pixel processing unit)240及びタイルバッファ(tile buffer)250を含んでもよい。グラフィックプロセッサ200は、バス(bus)を介して、外部のメモリ201とデータを送受信できる。それ以外にも、グラフィックプロセッサ200は、三次元グラフィックスを処理するための他の多様な構成要素をさらに含み得るが、
図4では、それらに係わる具体的な図示は、省略される。
【0045】
一例として、グラフィックプロセッサ200は、タイルに基づいたレンダリング(TBR:tile based rendering)方式を使用できる。グラフィックプロセッサ200は、1つのフレームに該当する三次元グラフィックスを生成するために、一定サイズに分割された複数個のタイルを、ラスタライザ210、シェーダコア220、ピクセル処理装置240を通過させ、処理結果を、タイルバッファ250に保存できる。グラフィックプロセッサ200は、フレームを構成する全てのタイルに対して、ラスタライザ210、シェーダコア220及びピクセル処理装置240で構成されるパイプラインを複数個利用し、並列処理できる。グラフィックプロセッサ200は、1つのフレームに該当する複数個のタイルが処理されれば、タイルバッファ250に保存された処理結果を、メモリ201のフレームバッファ(図示せず)に伝送できる。
【0046】
ラスタライザ210は、前述の幾何変換過程を介して生成されたプリミティブに対し、ラスタ化を実行できる。また、シェーダコア220は、ラスタライザ210から、ラスタ化されたプリミティブを伝達され、タイルを構成するピクセル(又は、フラグメント)に対して、前述のピクセルシェーディング(又は、フラグメントシェーディング)を実行できる。また、シェーダコア220は、ピクセルシェーディング過程において、立体的であって臨場感ある三次元グラフィックスを生成するために、テクスチャを利用して生成されたピクセル値を使用できる。
【0047】
一方、シェーダコア220は、前述のようなピクセルシェーディング処理と共に、バーテックスシェーディング処理をさらに実行できる。一例として、シェーダコア220がバーテックスシェーディングを行う場合、オブジェクトを示すプリミティブを生成し、ラスタライザ210に伝達できる。
【0048】
また、シェーダコア220は、ピクセルに対応するピクセル値伝達をテクスチャ処理装置230に要請でき、テクスチャ処理装置230は、事前に準備されたテクスチャを処理して生成されたピクセル値を伝達できる。該テクスチャは、テクスチャ処理装置230の内部又は外部の所定空間、又はグラフィックプロセッサ200外部のメモリ201に保存され得る。テクスチャ処理装置230は、シェーダコア220で要請したピクセル値生成に利用されるテクスチャが、テクスチャ処理装置230内部の所定空間にない場合、テクスチャ処理装置230外部の空間、又はメモリ201からテクスチャを持ってきて使用できる。
【0049】
ピクセル処理装置240は、1つのタイル内の同じ位置に対応するピクセルに対して、深さテストなどの過程を経て、最終的に表示されるピクセル値を決定し、1つのタイルに該当する全てのピクセル値を決定できる。タイルバッファ250は、ピクセル処理装置240から伝達された1つのタイルに該当する全てのピクセル値を保存できる。1つのフレームを構成する全てのタイルに対するグラフィック処理過程が完了すれば、タイルバッファ250に保存された処理結果が、メモリ201のフレームバッファに伝達される。
【0050】
前述の実施形態でのSCM変形装置211は、ラスタライザ210に含まれる構成であり得る。一例として、ラスタライザ210は、所定パターン情報を受信し、第1サンプル候補マップを生成し、また、前述の実施形態による変形動作を介して、第2サンプル候補マップを生成できる。また、ラスタライザ210は、メモリ201に保存された以前フレームのフラグメント値Frag_Pを受信し、それに基づいて、変形動作を遂行できる。ラスタライザ210は、複数のフラグメントのうちサンプリングされたフラグメントを、選択的にシェーダコア220に提供できる。一実施形態により、ラスタライザ210は、複数のハードウェア(例えば、プロセッシングコア)を含み得、第1サンプル候補マップ及び第2サンプル候補マップの生成動作は、同一ハードウェアによって遂行されるか、或いは互いに異なるハードウェアによって遂行される。
【0051】
一方、シェーダコア220は、前述の実施形態での中間レンダリング処理及び最終レンダリングを実行できる。一実施形態により、シェーダコア220は、複数のハードウェア(例えば、プロセッシングコア)を含み得、中間レンダリング処理及び最終レンダリング処理は、同一ハードウェアによって実行されるか、或いは互いに異なるハードウェアによって実行される。
【0052】
以下では、本発明の実施形態によるサンプリング及びシェーディング処理の具体的な例について説明する。
【0053】
図5(A)、
図5(B)、及び
図19は、プリミティブ内のフラグメントに対するシェーディング処理の一例を示す図面である。
図5(A)、
図5(B)、及び
図19においては、候補マップ変形動作が遂行されていない例が図示される。
【0054】
図5(A)は、何れか1つのプリミティブの一部フラグメントとして、4*4サイズのフラグメントが例示され、プリミティブのフラグメントに対して、所定サンプリングの比率によってサンプリングが行われる。一例として、
図5(A)は、相対的に細密なパターンによってサンプリングが行われる例を示し、水平方向及び垂直方向に、2つのフラグメントごとに1つのフラグメントがサンプリングされる例が図示される。細密なパターンを有する第1サンプリング候補マップにより、P0位置乃至P3位置のフラグメントがサンプリングされ、サンプリングされたフラグメントに対するシェーディング処理が行われる。
図5(B)は、
図5(A)に図示されたサンプリングに基づいてシェーディング処理が行われるとき、8*8サイズのフラグメントのうちシェーディング処理が行われたフラグメントの位置を示す。
【0055】
図19を参照すれば、シェーディング処理が行われていないフラグメントについては、補間動作を介してその値が算出され得る。例えば、1つの位置でのフラグメントは、それに隣接した1以上のフラグメントの値を利用した補間動作を介して、その値が算出され得る。即ち、シェーディング処理が行われていないフラグメントは、それに隣接したフラグメント値を参照し、類似の値で満たされ、前述のような補間処理は、ホールフィリング(hole filling)とも称される。一例として、
図19においては、サンプリングされていないフラグメントの行及び列の座標を有するフラグメントの値は、平均4個のサンプリングされたフラグメントの値の平均に基づく例が図示される。
【0056】
図6は、
図5(A)、
図5(B)、及び
図19の実施形態に、サンプル候補マップ変形動作が適用された例を示す図面である。
図6においては、以前フレームのレンダリング結果を利用せずに、現在フレームのデータのみを利用し、サンプル候補マップを変形する例を示す。
【0057】
図6を参照すれば、第1サンプリング候補マップにより、所定比率でもって、フラグメントをサンプリングでき、サンプリングされたフラグメントに対する中間シェーディング処理を介して、その値が算出され得る。また、サンプリングされていない残りのフラグメントに対して、サンプリング候補マップ変形動作を介して、追加してサンプリングが行われるフラグメントが選択される。
【0058】
現在フレームの中間レンダリング処理を介して算出されたフラグメントの値を利用し、サンプリング候補マップ変形動作が遂行され、一例として、第1位置P0のフラグメント値と、第2位置P1のフラグメント値との差を基にして、第5位置P4のフラグメントを、追加してサンプリングするか否かが判断される。前記差値が所定臨界値を超えて、前記位置間の客体エッジなどの存在を示す場合には、第5位置P4のフラグメントを追加してサンプリングするように判断されるが、前記差値が所定臨界値以下である場合には、第5位置P4のフラグメントは、サンプリングされない。
【0059】
それと同様に、第3位置P2のフラグメント値と、第4位置P3のフラグメント値との差を基にして、第6位置P5のフラグメントを追加してサンプリングするか否かが判断される。
図6においては、前述のような方式により、4*4サイズのフラグメントにおいて、2行目及び4行目のフラグメントが、何れもサンプリングされる場合が例示され、シェーディング処理されていない残りフラグメントは、ホールフィリング処理を介して、その値が算出され得る。
【0060】
図5(A)、
図5(B)、及び
図19に図示された実施形態によれば、フラグメント値の変化がないか、或いは漸進的である場合には、補間処理によって算出された値が、実際値と同一であるか、又は類似している。しかし、フラグメント値の変化が大きい場合には、補間処理を介して得られた結果の有効性が保証され難い。一方、
図6に図示された実施形態においては、中間レンダリング処理後、すぐホールフィリングを行わず、サンプリングされていないフラグメントに対する補間処理の実行が適切であるか否かを、サンプル候補マップ変形過程を介し、もう一度判断できるので、
図5(A)、
図5(B)、及び
図19に比べ、レンダリング処理の品質がさらに向上する。
【0061】
一方、
図7(A)及び
図7(B)は、少なくとも2つのフレームのデータを利用し、サンプル候補マップ変形を行う例を示す。
図7(A)及び
図7(B)には、2つのフレームのデータを利用する際に、フレームがオッドフレームFrame_OddとイーブンフレームFrame_Evenとに分類され、各々のフレームでの第1サンプル候補マップSCM_1のパターンが図示される。本実施形態は、時間的に連続するフレーム間の反復シーケンスでディザリングされるサンプル候補マップパターンを提供する例を示し、後述する
図17(A)のような実施形態においては、3個又はそれ以上のフレームにディザリングパターンが拡張される。3個又はそれ以上のフレームのデータを、候補マップ変形に利用する場合には、3個以上のフレームの第1サンプル候補マップSCM_1のパターンが異なり得る。サンプル候補マップディザリング技術は、視覚的な人工物を低減でき、特に、フレーム間の客体の動きが遅いか、或いは最小であるとき、特に低減される。
【0062】
図7(A)を参照すれば、前述の
図6の実施形態に比べ、第1候補マップSCM_1のサンプリングの比率がさらに低い。一例として、
図7(A)の例においては、4*4サイズのフラグメントごとに、2つのフラグメントだけがサンプリングされる。オッドフレームFrame_ODDのレンダリング処理時、第1候補マップSCM_1のサンプリング情報は第1パターンを有し、4*4サイズのフラグメントのうち、2行目及び3列目に位置するフラグメントと、4行目及び1列目に位置するフラグメントとがサンプリングされる。一方、イーブンフレームFrame_Evenのレンダリング処理時、第1候補マップSCM_1のサンプリング情報は第2パターンを有し、4*4サイズのフラグメントのうち2行目及び1列目に位置するフラグメントと、4行目及び3列目に位置するフラグメントとがサンプリングされる。しかし、それらは、1つの実施形態に過ぎず、前記オッドフレームFrame_ODD及びイーブンフレームFrame_Evenの第1サンプル候補マップSCM_1は、他の多様な方式により、そのパターンが設定され得る。その際、
図7(A)におけるように、オッドフレームFrame_ODD及びイーブンフレームFrame_Evenの相互補完が可能になるように、オッドフレームFrame_ODDでの第1サンプル候補マップSCM_1と、イーブンフレームFrame_Evenでの第1サンプル候補マップSCM_1とが設定される。
【0063】
現在フレームがイーブンフレームFrame_Evenに該当する場合を仮定し、本発明の動作例について説明すれば、次の通りである。まず、イーブンフレームFrame_Evenの処理時、第2パターンを有する第1サンプル候補マップSCM_1によって中間レンダリング処理が行われ、それにより、第2パターンに対応する位置のフラグメントの値が算出され得る。また、既算出フラグメントの値を利用し、第1サンプル候補マップSCM_1の変形において、以前のオッドフレームFrame_ODDでの第1パターンに対応する位置のフラグメントの値と、現在のイーブンフレームFrame_Evenの中間レンダリング処理を介して算出された第2パターンに対応する位置のフラグメントとの値が利用される。
【0064】
サンプル候補マップ変形に利用されるオッドフレームFrame_ODDのフラグメント値Pvと、イーブンフレームFrame_Evenのフラグメント値Pvとを結合した例は、
図7(B)に図示された通りである。即ち、1つのフレームについては、そのサンプリングの比率が低いことにより、フラグメント値Pv間の間隔が相対的に長いとしても、本発明の例示的な実施形態により、2つのフレームのフラグメント値Pvが利用される場合には、フラグメント値Pv間の間隔が短いという効果を呈示できる。それにより、実際シェーディング処理が必要なフラグメントがさらに正確に判断され、追加してサンプリングされるフラグメントに対して、最終レンダリング処理が行われる。
【0065】
一方、
図7(B)に図示された例において、現在フレームがイーブンフレームであるとき、一例として、以前フレームのフラグメント値(一例として、オッドフレームのフラグメント値F_OPV)が、現在フレームのレンダリングで対応する位置でのフラグメントのために利用され得る。しかし、もしレンダリングされる以前フレームと現在フレームとの間に客体の動きが存在する場合、以前フレームのフラグメントを現在フレームにマッピングするのに、前記動きが考慮され得る。該動きを考慮しない場合でも、場面変更や迅速な動きにより、以前フレームのイメージが、現在フレームのイメージと特に異なる場合には、以前フレームのフラグメントは、現在フレームのフラグメントと大きく異なり、それは、サンプル候補マップの変形を保証することになる。
【0066】
図8は、本発明の例示的な実施形態による、第1サンプル候補マップSCM_1及びそれを変形した第2サンプル候補マップSCM_2を示す図面である。
図8では、
図7(A)及び
図7(B)の実施形態により、イーブンフレームFrame_Evenでのサンプル候補マップの変形例が図示される。
【0067】
図8を参照すれば、グラフィックプロセッサは、フラグメントに対する中間レンダリング処理のために、第1パターンを有する第1サンプル候補マップSCM_1を生成でき、一例として、サンプリングが行われるフラグメントに対応するパターンは、「1」の値を有し、サンプリングが行われていないフラグメントに対応するパターンは、「0」の値を有し得る。
【0068】
その後、第1サンプル候補マップSCM_1の再評価により、第2サンプル候補マップSCM_2が生成される。一例として、現在フレームにおいて、第1位置P0及び第2位置P1のフラグメント値と、その間の少なくとも1つの以前フレームでのフラグメント値とを利用し、第1位置P0と第2位置P1との間の領域Reg_1のフラグメントのサンプリング必要性如何が判断される。
図8においては、第1位置P0と第2位置P1との間の領域Reg_1のフラグメントに対応するパターンが変更され、追加してサンプリングされる例が図示される。また、
図8においては、第3位置P2と第4位置P3との間の領域Reg_2のフラグメントは、サンプリングされていない一方、第4位置P3と第5位置P4との間の領域Reg_3のフラグメントは、追加してサンプリングされる例が図示される。
【0069】
図7(A)、
図7(B)、及び
図8に図示された実施形態によれば、前述の
図6の例に比べ、サンプリング比率が低いけれども、少なくとも2つのフレームのフラグメント値を利用してサンプル候補マップが変形されるので、実際シェーディング処理が必要とされるフラグメントの判断正確度の低下を防止できる。即ち、
図7(A)、
図7(B)、及び
図8に図示された実施形態によれば、中間レンダリング処理が行われるフラグメント数を低減するので、処理速度を向上でき、また、レンダリング品質の低下を最小化できる。
【0070】
また、本発明の実施形態によれば、前述の
図5(A)、
図5(B)、
図19、乃至
図8の実施形態による動作が選択的に遂行される。一例として、グラフィックプロセッサは、ホストからの制御、又は自主的な制御を介して、第1サンプル候補マップのサンプリングの比率を調節でき、それを介して、シェーディング処理されるフラグメントの量を調節できる。例えば、レンダリング処理される複数のフレームのうち一部は、
図5(A)、
図5(B)、及び
図19の例によって処理され、他の一部は、
図6の例によって処理され、他の一部は、
図7(A)、
図7(B)、及び
図8の例によって処理され得る。例えば、サンプリングモードにおいて、第1サンプル候補マップのサンプリングの比率が、所定基準値より高いときには、前記
図6の実施形態が適用され、所定基準値より低いときには、前記
図7(A)、
図7(B)、及び
図8の実施形態が適用される。
【0071】
又は、グラフィックプロセッサは、ホストからの制御、又は自主的な制御を介して、サンプリングモードのオン・オフを設定でき、サンプリングモードがオフになる場合には、フレーム(又は、プリミティブ)内の全てのフラグメントがシェーディング処理される。
【0072】
図9及び
図10は、本発明の例示的な実施形態によるグラフィックプロセッサの動作方法を示すフローチャートである。
図9を参照すれば、第1サンプル候補マップ(SCM)により、何れか1つのフレームの複数のフラグメントのうち一部をシェーディングすることにより、中間レンダリング処理が行われる(S21)。その後、追加してシェーディングが行われるフラグメントを選択するために、以前フレームのレンダリング結果(例えば、中間レンダリング結果)と、現在フレームのレンダリング結果とを比較演算できる(S22)。また、この比較演算結果により、1以上のフラグメントを含む領域別に、追加サンプリングが必要であるか否かが判断される(S23)。
【0073】
判断結果、第1サンプル候補マップ(SCM)において、追加サンプリングが必要なフラグメントに対応するパターンは、その値が変更される(S24)。一方、第1サンプル候補マップ(SCM)において、追加サンプリングが必要ではないフラグメントに対応するパターンは、その値が維持される(S25)。また、前述のような過程を介して生成された第2サンプル候補マップ(SCM)により、さらなるフラグメントがシェーディングされることにより、最終レンダリング処理が行われる(S26)。
【0074】
一方、
図10を参照すれば、グラフィックプロセッサに入力されるフレームにより、互いに異なるパターンを有する第1サンプル候補マップ(SCM)が生成され、第1フレームが受信されることにより、第1パターンを有する第1サンプル候補マップ(SCM)が生成される(S31)。また、第1パターンを有する第1サンプル候補マップ(SCM)を利用し、一部のフラグメントに対して中間レンダリング処理が行われ(S32)、最終シェーディング及び補間動作を介して、前記第1フレームに対して、最終レンダリング処理が行われる(S33)。
【0075】
また、第2フレームが受信されることにより、第2パターンを有する第1サンプル候補マップ(SCM)が生成される(S34)。また、第2フレームに対して、第2パターンを有する第1サンプル候補マップ(SCM)を利用し、一部のフラグメントに対して中間レンダリング処理が行われ(S35)、第1フレームの中間レンダリング結果と、第2フレームの中間レンダリング結果とが比較される(S36)。また、比較結果に基づいて、第1サンプル候補マップ(SCM)のサンプリング情報を変更することにより、第2サンプル候補マップ(SCM)が生成され(S37)、第2フレームに対して、第2サンプル候補マップ(SCM)を利用した最終レンダリング処理が行われる(S38)。
【0076】
図11は、本発明の例示的な実施形態によるグラフィックプロセッサの一具現例を示すブロック図である。
図11には、説明の便宜上、サンプル候補マップの生成及び変更を行う構成、及びレンダリングを処理する構成のみが図示されるが、グラフィックプロセッシングのための他の多様な構成が、グラフィックプロセッサにさらに具備され得る。
【0077】
図11を参照すれば、グラフィックプロセッサ300は、サンプル候補マップ生成器310、中間レンダリング処理器320、サンプル候補マップ変形装置330及び最終レンダリング処理器340を含み得る。一実施形態により、
図11に図示された構成要素は、プロセッシングコアなどのハードウェアを含み得、
図11には、中間レンダリング処理器320と最終レンダリング処理器340とが別個のハードウェアによる場合を図示しているが、中間レンダリング処理と最終レンダリング処理とが同一ハードウェアによって行われる場合もある。
【0078】
SCM生成器310は、パターン情報Info_patを受信し、それを利用し、第1サンプル候補マップSCM_1を生成できる。パターン情報Info_patは、複数のフラグメントのうち、中間レンダリング処理が行われるフラグメントの位置を示す情報を含み得る。パターン情報Info_patは、ホストからグラフィックプロセッサ300にも提供される。又は、グラフィックプロセッサ300は、複数のパターン情報をその内部に保存でき、ホストからの命令により、グラフィックプロセッサ300内部において、パターン情報Info_patが生成される。又は、変形可能な実施形態として、グラフィックプロセッサ300は、現在レンダリングが行われるフレームの順序を判断し、フレームにより、互いに異なるパターンを有するパターン情報Info_patを生成できる。
【0079】
中間レンダリング処理器320は、複数のフラグメントのデータDataと、第1サンプル候補マップSCM_1とを受信し、第1サンプル候補マップSCM_1の第1パターンに対応するフラグメントに対して、選択的にシェーディングを実行できる。中間レンダリング処理器320のシェーディング処理結果Data_Iは、SCM変形装置330に提供され、中間レンダリング処理器320からのシェーディング処理結果Data_Iは、第1パターンに対応する位置のフラグメント値を含み得る。
【0080】
SCM変形装置330は、以前フレームのフラグメント値Frag_Pをさらに受信でき、前記フラグメント値Frag_Pは、以前フレームでの第2パターンを有する第1サンプル候補マップSCM_1を利用した中間レンダリング処理結果を含み得る。SCM変形装置330は、中間レンダリング処理器320からの処理結果と、以前フレームのフラグメント値Frag_Pとを利用した演算を介して、第1サンプル候補マップSCM_1を変更することにより、第2サンプル候補マップSCM_2を生成できる。最終レンダリング処理器340は、中間レンダリング処理器320のシェーディング処理結果Data_Iと、第2サンプル候補マップSCM_2とを受信し、中間レンダリング処理が行われていないフラグメントのうち一部をシェーディング処理することにより、最終レンダリング結果Data_Fを生成できる。
【0081】
前述のラスタライザが、シェーディング処理が行われるフラグメントを選択的にサンプリングする場合、
図11に図示された実施形態において、SCM生成器310及びSCM変形装置330は、ラスタライザに含まれる構成でもある。又は、中間レンダリング処理器320及び最終レンダリング処理器340各々は、その内部にラスタライジング機能を遂行する構成を含むようにも定義される。
【0082】
図12は、本発明の実施形態が適用されたグラフィックプロセッサの全般的な動作手続きを示す図面である。
図12を参照すれば、グラフィックプロセッサは、アプリケーションを介して、ホストからレンダリングデータ(又は、グラフィックデータ)Dataと、命令(command)とを受信でき、レンダリングデータDataは、プリミティブ情報、テクスチャ情報などを含み得る。グラフィックプロセッサは、プリレンダリング(pre−rendering)過程(S41)を介して、前記データDataと命令とをレンダリングが可能な形態に加工できる。該グラフィックプロセッサにより、前記プリレンダリング過程の省略が可能であり、タイル基盤のレンダリングが行われる場合には、タイリング処理がプリレンダリング過程でも行われる。
【0083】
その後、プリレンダリング過程での結果を基に、デプス(depth、深さ)を計算する過程(S42)が遂行され、計算結果により、デプスデータ(depth data)が生成される。前記デプス計算過程も、アプリケーションやグラフィックプロセッサによっても省略が可能であり、一実施形態により、デプスデータは、前述の実施形態での第1サンプル候補マップ(SCM、Sample_Candidate_Map)生成にも利用される。
【0084】
所定パターンを有するサンプリング情報がグラフィックプロセッサ内部で生成されるか、或いはホストから伝送され、SCM生成器にも提供される。一具現例として、サンプルパターン生成器(SPG)がグラフィックプロセッサ内に具備され、サンプルパターン生成器(SPG)は、複数のパターン情報を含み得る。以前の実施形態において説明された例を参照すれば、サンプルパターン生成器(SPG)は、フレームの順序に合わせて、第1パターンを有するパターン情報、及び第2パターンを有するパターン情報を交互にSCM生成器に提供できる。また、サンプルパターン生成器(SPG)は、フレームの順序に合わせて、第1パターン及び第2パターンを有するパターン情報のうち何れか一つをSCM生成器に提供して、他の一つをピクセル抽出器(PE)に提供できる。
【0085】
また、SCM生成器は、受信されたサンプルパターンにより、フラグメントがサンプリングされるように、第1サンプル候補マップ(第1SCM)を生成でき(S43)、生成された第1サンプル候補マップを、中間レンダリング処理器に提供できる。一実施形態により、SCM生成器は、デプスデータをさらに利用し、第1サンプル候補マップを生成できる。例えば、デプス差が大きいフラグメントは、最終レンダリング過程において、その値が互いに異なるか、或いはその値の差が大きい確率が高いので、該SCM生成器は、デプスデータを基にして、サンプリング情報を調節できる。例えば、何れか1つのプリミティブに含まれる複数のフラグメントのデプスの差が大きい場合には、前記複数のフラグメントが何れもシェーディング処理されるように、第1サンプル候補マップが生成される。又は、何れか1つのプリミティブに含まれる複数のフラグメントが複数の領域に分類され、各々の領域内でのデプス差に基づいて、当該領域に含まれるフラグメントが何れもシェーディング処理されるように、第1サンプル候補マップが生成される。
【0086】
前述のような過程を介して生成されたプリレンダリング結果、デプスデータ及び第1サンプル候補マップを利用し、中間レンダリング処理(intermediate rendering pass)が行われる(S44)。第1サンプル候補マップにより、複数のフラグメントは、シェーディング処理によってその値が算出される一方、残りのフラグメントは、シェーディング処理が行われていないホール(hole)に該当する。
【0087】
一方、本発明の実施形態により、第1サンプル候補マップを変形(改訂)することにより、第2サンプル候補マップ(第2SCM)が生成され(S45)、一例として、該SCM変形器は、現在フレームの中間レンダリング処理結果を受信すると共に、以前フレームから抽出されたフラグメント値をさらに受信できる。
図12に図示されたピクセル抽出器(PE)は、以前フレームのフラグメント値と、パターン情報とを受信し、パターン情報に対応するフラグメントの値を抽出し、それを該SCM変形器に提供できる。該SCM変形器は、前述の実施形態により、以前フレーム及び現在フレームのフラグメント値を利用した演算を介して、第2サンプル候補マップを生成できる。
【0088】
最終レンダリング処理器は、中間レンダリングデータ、デプスデータ及び第2サンプル候補マップを利用し、最終レンダリング処理(final rendering pass)を行う(S46)。最終レンダリング処理を介して、フラグメントに対する追加シェーディングを実行できる。該最終レンダリング処理によって生成されたデータは、依然としてホール(hole)を含んでおり、ホールフィリング処理を経て、最終イメージが生成される(S47)。
【0089】
一実施形態により、以前フレームから抽出されたフラグメント値は、前記サンプル候補マップ変形過程で利用され、前記ホールフィリング処理のための補間動作は、現在フレームでシェーディング処理されたフラグメント値を利用して遂行される。また、前述のような手続きによって生成された現在フレームの最終イメージデータは、次のフレームのレンダリング処理過程において、サンプル候補マップ変形過程にも利用される。他の実施形態において、その後のフレームに対する処理が現在フレームに先立って行われ、その後のフレームで計算されたフラグメント値が、前記実施形態と同一目的で、以前フレーム処理のためにも利用される(例えば、逆方向フレーム処理)。
【0090】
図13は、本発明の変形可能な実施形態によるレンダリングシステムを示すブロック図である。
図13を参照すれば、レンダリングシステム400は、ホスト410及びグラフィックプロセッサ420を含み得る。ホスト410は、アプリケーション411及びデバイスドライバ412を含み得る。また、グラフィックプロセッサ420は、サンプル候補マップ(SCM)変形装置421、フラグメント処理器422及び補間正確度判断装置(補間正確度判断回路)423を含み得る。
【0091】
アプリケーションとして、アプリケーション411は、命令CMD及びグラフィックデータDATAを、デバイスドライバ412を介してグラフィックプロセッサ420に提供できる。また、アプリケーション411又はデバイスドライバ412は、グラフィックプロセッサ420でのレンダリング処理に係わるサンプリングモードを制御でき、一例として、サンプリング制御信号Ctrl_C/Fをグラフィックプロセッサ420に提供できる。また、グラフィックプロセッサ420の補間正確度判断装置423は、補間処理によって生成されたフラグメント値の正確度を判断し、判断情報Info_Aをホスト410に提供できる。
【0092】
サンプリング制御信号Ctrl_C/Fがサンプリングオフモードを示す場合、グラフィックプロセッサ420は、前述の実施形態でのサンプリング動作遂行なしに、全体フラグメントに対するシェーディングを実行できる。一方、サンプリング制御信号Ctrl_C/Fがサンプリングオンモードを示す場合、グラフィックプロセッサ420は、前述の実施形態により、所定パターンを有するサンプル候補マップを生成し、サンプル候補マップを変形し、中間レンダリング処理及び最終レンダリングを実行できる。
【0093】
補間正確度判断装置423は、所定周期により、補間正確度を判断できる。一例として、各々のフレーム別、又は複数のフレームごとに補間正確度を判断できる。該補間正確度は、多様な方式によって判断され、一例として、同一位置のフラグメントに対して、補間によって生成されたフラグメント値Frag_Iと、実際シェーディング処理によって生成されたフラグメント値Frag_Rとを比較することによって判断される。もし補間によるフラグメント値Frag_Iと、シェーディング処理によるフラグメント値Frag_Rとの差が大きい場合には、シェーディング処理が行われる必要があるフラグメントが、補間によってその値が算出された場合を示し、それは、レンダリング処理特性が低いことを呈示できる。
【0094】
判断情報Info_Aは、多様な情報を含み得る。一例として、補間正確度判断装置423が、フラグメント値Frag_R,Frag_Iを利用した比較処理を行い、それに基づいて補間正確度を計算し、判断情報Info_Aを生成できる。又は、変形可能な実施形態として、判断情報Info_Aは、フラグメント値Frag_R,Frag_Iを利用した演算結果のみを含み得、ホスト410が、判断情報Info_Aを利用して補間正確度を判断できる。ホスト410は、判断情報Info_Aに基づいて、サンプリング制御信号Ctrl_C/Fを生成できる。
【0095】
図14は、本発明の変形可能な実施形態によるグラフィックプロセッサを示すブロック図である。
図14においては、グラフィックプロセッサ500で内部的に、補間正確度を判断し、それに基づいて、第1サンプル候補マップのサンプリングの比率を調節する例が図示される。
【0096】
図14を参照すれば、グラフィックプロセッサ500は、サンプルパターン生成器510、サンプル候補マップ(SCM)生成器520、サンプル候補マップ(SCM)変形装置530、フラグメント処理器540及び補間正確度判断装置550を含み得る。サンプルパターン生成器510は、所定パターンを有するパターン情報を生成し、それをSCM生成器520に提供し、SCM生成器520は、該パターン情報に基づいて、第1サンプル候補マップを生成できる。また、グラフィックプロセッサ500は、ホストから、命令CMD及びグラフィックデータDATAと共に、サンプリングモードのオン・オフを制御するためのサンプリング制御信号Ctrl_C/Fを受信できる。
【0097】
サンプルパターン生成器510は、フレーム別に、互いに異なるパターンを有するパターン情報を生成でき、一実施形態により、補間正確度判断装置550からの判断情報Info_Aに基づいて、サンプリングの比率が調節されたパターン情報を生成できる。例えば、補間正確度が相対的に高い場合(又は、所定の設定値より高い場合)、フレーム別に類似度が高いと判断され、それにより、サンプルパターン生成器510は、サンプリング比率が低下したパターン情報を生成できる。一方、補間正確度が相対的に低い場合には、サンプルパターン生成器510は、サンプリングの比率が上昇したパターン情報を生成できる。
【0098】
一実施形態により、サンプリングの比率が低い場合には、サンプル候補マップ変形動作が、複数のフレームのフラグメント値を利用して遂行される。一方、サンプリングの比率が高い場合には、サンプル候補マップ変形動作遂行なしに、補間を介してホールフィリング処理が行われるか、或いは現在フレームのフラグメント値を利用したサンプル候補マップ変形動作を介して、最終レンダリング処理が行われる。
【0099】
図15は、本発明の他の変形可能な実施形態によるレンダリングシステムを示すブロック図である。
図15を参照すれば、レンダリングシステム600は、ホスト610及びグラフィックプロセッサ620を含み、ホスト610は、アプリケーション611、デバイスドライバ612、類似度判断器613及び周波数特性判断器614を含み得る。また、グラフィックプロセッサ620は、サンプル候補マップ(SCM)変形装置621及びフラグメント処理器622を含み得る。
【0100】
一実施形態により、ホスト610は、出力されるフレームの特性を自主的に判断し、それに基づいて、グラフィックプロセッサ620のサンプリング動作を制御できる。一例として、類似度判断器613は、グラフィック処理される複数のフレームに対して、その類似度を判断でき、ホスト610は、類似度判断に基づいて、サンプリング制御信号Ctrl_C/Fを、グラフィックプロセッサ620に提供できる。サンプリング制御信号Ctrl_C/Fは、サンプリングモードのオン又はオフを制御でき、一実施形態により、サンプリング制御信号Ctrl_C/Fは、サンプリングの比率を調節するための情報をさらに含み得る。一例として、複数のフレームについて、その類似度程度が既設定であり、ホスト610内部に保存され、類似度判断器613は、既設定情報を基にして、現在レンダリング処理されるフレームが、以前フレームよりも類似度が高いが否かを判断できる。一例として、臨界値の基準は、フレームシーケンスのフレーム間の動きベクトルに基づき、一例として、動きが少なければ、類似度が高いと判断されるが、動きが大きければ、類似度が低いと判断される。
【0101】
一方、周波数特性判断器614は、フレームの特性を判断できる。一例として、周波数特性判断器614は、レンダリング処理されたフレームに対し、自主的にその特性(例えば、エッジが分布する程度)を判断できる。もしレンダリング進められるフレームにエッジが多く存在する場合には、それ以後にも、エッジが多く存在する確率が高く、その場合、ホスト610は、サンプリング制御信号Ctrl_C/Fを、グラフィックプロセッサ620に提供することにより、サンプリングモードをオフにするか、或いはサンプリングの比率を上昇できる。
【0102】
図16は、サンプリングモードの可変動作の一例を示す図面である。
図16を参照すれば、グラフィックプロセッサは、多様なサンプリングモードで動作でき、複数のフレームに対するレンダリング遂行において、サンプリングモードが可変される。前述の実施形態のように、サンプリングモードの変更は、ホストによって制御されるか、或いはグラフィックプロセッサによって自主的に遂行される。又は、変形可能な例として、サンプリングモードのオン・オフは、ホストによって制御される一方、サンプリングモードにおいて、サンプリングの比率は、グラフィックプロセッサによって自主的に調節される方式が適用され得る。
【0103】
フレームの内容が大きく変動するか、又はフレーム内に複数のエッジが存在する場合、或いは補間処理されたフラグメント値と、実際シェーディング処理されたフラグメント値とが差が大きい場合には、グラフィックプロセッサが、サンプリングオフモード(又は、フルサンプリングモード)で動作できる。このとき、全体フラグメントに対するシェーディング処理が行われる。
【0104】
その後、フレームの類似度が上昇するなどの多様な基準により、サンプリングモードがオンになり、該グラフィックプロセッサは、まず、細密なサンプリングモードで動作できる。一実施形態により、サンプリングの比率が高い第1サンプル候補マップを介して、一部のフラグメントを中間シェーディング処理し、残りフラグメントに対して、前述の実施形態によるサンプル候補マップ変形動作が遂行される。また、細密なサンプリングモードにおいては、サンプル候補マップ変形動作が、現在レンダリング処理されるフレームのフラグメント値を利用して遂行される。
【0105】
また、サンプリングモードが、概略的な(粗い)サンプリングモードに変更され、このとき、サンプリング比率が低い第1サンプル候補マップを介して、一部のフラグメントを中間シェーディング処理し、残りフラグメントに対して、前述の実施形態によるサンプル候補マップ変形動作が遂行される。また、前述の実施形態により、概略的なサンプリングモードにおいては、サンプル候補マップ変形動作が、現在フレーム及び以前フレームのシェーディング処理によるフラグメント値を利用して遂行される。
【0106】
図17(A)及び
図17(B)は、サンプル候補マップ変形動作が、3個以上のフレームのデータを利用して遂行される例を示す図面である。
図17(A)及び
図17(B)としては、4個のフレームのデータが利用される例が図示されたが、本発明の実施形態では、他の多様な個数のフレームが利用され得る。
【0107】
図17(A)を参照すれば、4*4サイズのフラグメントごとに、1個のフラグメントがサンプリングされ、シェーディング処理される。また、4個の連続されるフレームに係わる第1サンプル候補マップは、そのパターンが互いに異なり得る。一例として、第1フレームFrame1乃至第4フレームFrame4の第1サンプル候補マップSCM_1は、そのパターンが互いに重ならないように設定され得る。
【0108】
一方、
図17(B)を参照すれば、サンプル候補マップ変形装置は、現在フレームとして、第4フレームFrame4の第1サンプル候補マップSCM_1を受信し、第4フレームFrame4の中間レンダリング処理されたフラグメント値Frag_F4を受信できる。また、サンプル候補マップ変形装置は、以前のフレームとして、第1フレームFrame1乃至第3フレームFrame3のフラグメント値Frag_F1〜Frag_F3を利用できる。一実施形態により、第1フレームFrame1乃至第3フレームFrame3のフラグメント値Frag_F1〜Frag_F3は、グラフィックプロセッサ外部のメモリに保存され、フラグメント値Frag_F1〜Frag_F3は、外部のメモリから読み取られ、サンプル候補マップ変形装置にも提供される。
【0109】
図18は、本発明の例示的な実施形態によるメモリ装置を含むモバイル装置の一具現例を示すブロック図である。
モバイル装置700は、レンダリングシステムに該当し、アプリケーションプロセッサ(application processor)710とメモリ装置720とを含み得る。アプリケーションプロセッサ710は、システム・オン・チップ(SoC:system on chip)によっても具現され得る。システム・オン・チップ(SoC)は、所定標準バス規格を有するプロトコルが適用されたシステムバス(図示せず)を含み得、前記システムバスに連結される各種IP(intellectual property)装置を含み得る。IP装置の一例として、
図18には、アプリケーションプロセッサ710が、中央処理装置(CPU)711、グラフィックプロセッサ(GPU)712、モデムプロセッサ713及びメモリコントロールユニット714を含む例が図示される。また、アプリケーションプロセッサ710が、モデム通信機能を遂行することにより、アプリケーションプロセッサ710は、ModAPとも称される。
【0110】
システムバスの標準規格として、ARM(Advanced RISC Machine)社のAMBA(Advanced Microcontroller Bus Architecture)プロトコルが適用される。AMBAプロトコルのバスタイプには、AHB(Advanced High−Performance Bus)、APB(Advanced Peripheral Bus)、AXI(Advanced eXtensible Interface)、AXI4、ACE(AXI Coherency Extensions)などが含まれる。それら以外にも、ソニック社(SONICs Inc.)のuNetwork、IBM社のCoreConnect、OCP−IPのオープンコアプロトコル(Open Core Protocol)などの、他のタイプのプロトコルが適用され得る。
【0111】
グラフィックプロセッサ712は、前述の実施形態で説明されたレンダリングを実行できる。それにより、グラフィックプロセッサ712は、サンプル候補マップ変形装置を含み得る。1以上のフレームデータData_Frameは、メモリコントロールユニット714を介して、メモリ装置720にも保存される。また、該サンプル候補マップ変形装置は、現在フレームのデータと、メモリ装置720から読み取られた以前フレームのデータとを利用し、前述の実施形態での変形動作を遂行できる。
【0112】
前述の多様な装置は、ハードウェア回路として集積回路の一部を形成できる。一例として、該サンプル候補マップ変形装置は、集積回路の少なくとも1つの処理素子によっても具現される。一例として、サンプル候補マップ変形装置110,330或いは421、補間正確度判断装置423は、各々サンプル候補マップ変形回路、補間正確度判断回路とも称される。また、前述のプロセッサ、生成器、駆動器は、各々プロセッサ回路、生成器回路、駆動器回路とも称される。
【0113】
以上のように、図面及び明細書でもって例示的な実施形態が開示された。本明細書において、特定用語を使用して実施形態について説明したが、それらは、単に本開示の技術的思想について説明する目的で使用されており、意味限定、及び/又は、特許請求の範囲に記載された本開示の範囲を制限するために使用されていない。従って、本技術分野の当業者であるならば、それらから多様な変形、及び均等な他の実施形態が可能であるという点を理解するであろう。従って、本開示の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決められる。