TW201439976A - 取樣階層式深度地圖的系統、方法,及電腦程式產品 - Google Patents
取樣階層式深度地圖的系統、方法,及電腦程式產品 Download PDFInfo
- Publication number
- TW201439976A TW201439976A TW102140652A TW102140652A TW201439976A TW 201439976 A TW201439976 A TW 201439976A TW 102140652 A TW102140652 A TW 102140652A TW 102140652 A TW102140652 A TW 102140652A TW 201439976 A TW201439976 A TW 201439976A
- Authority
- TW
- Taiwan
- Prior art keywords
- depth map
- hierarchical depth
- pixel
- value
- level
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000005070 sampling Methods 0.000 title claims abstract description 11
- 238000004590 computer program Methods 0.000 title abstract description 5
- 239000000872 buffer Substances 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 26
- 230000002457 bidirectional effect Effects 0.000 claims description 9
- 230000007717 exclusion Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 7
- 238000004422 calculation algorithm Methods 0.000 description 26
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 235000012431 wafers Nutrition 0.000 description 3
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000009966 trimming Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/55—Radiosity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2215/00—Indexing scheme for image rendering
- G06T2215/12—Shadow map, environment map
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
提供用以取樣階層式深度地圖的系統、程序,及電腦程式產品。用以取樣階層式深度地圖的一方法包含步驟:產生一階層式深度地圖以及從基於樣本畫素與目標畫素間之差異之階層式深度地圖的一目標階層讀取關聯於樣本畫素的一數值。階層式深度地圖包含至少兩個階層。
Description
本發明係有關電腦繪圖,特別是有關利用深度緩衝器的演算法。
深度緩衝器儲存複數個數值,其指示在三維場景中物件之表面的深度。深度緩衝器係用於許多種類的電腦圖形顯像應用程式。深度數值可用以判定一物件相對一特定的視角是否被其他物件遮蓋。一般來說,深度緩衝器包含關聯於在一數位影像中對應的複數個畫素之複數個數值。深度緩衝器中的每一數值可表示最接近物件在對應於特定畫素之視角的深度。
某些演算法(如螢幕空間環境光遮蔽演算法)係取樣深度緩衝器內複數個不同的數值以計算每一畫素的環境光遮蔽(AO)數值。因為對深度緩衝器大量的零散讀取,這些技術的淨效能將受到影響,其使得快取效率降低。因此,有需要解決解決這個問題及/或現有技術相關的其他問題。
提供用以取樣階層式深度地圖的系統、方法,及電腦程式產品。用以取樣階層式深度地圖的一方法包含步驟:產生一階層式深度地圖以及從基於樣本畫素與目標畫素間之差異之階層式深度地圖的一目標階層讀取關聯於樣本畫素的一數值。階層式深度地圖包含至少兩個階層。
100‧‧‧方法
200‧‧‧方法
300‧‧‧階層式深度地圖
310‧‧‧基準階層
315(0)‧‧‧第一深度數值
315(1)‧‧‧第二深度數值
315(2)‧‧‧第三深度數值
315(3)‧‧‧第四深度數值
320‧‧‧第一階層
325(0)‧‧‧第一深度數值
325(1)‧‧‧第二深度數值
325(2)‧‧‧第三深度數值
325(3)‧‧‧第四深度數值
330‧‧‧第二階層
335(0)‧‧‧第一深度數值
400‧‧‧數位影像
410(0)‧‧‧第一圓圈
410(1)‧‧‧第二圓圈
410(2)‧‧‧第三圓圈
420‧‧‧目標畫素
430‧‧‧樣本畫素
430(0)‧‧‧樣本畫素
500‧‧‧平行處理單元
502‧‧‧系統匯流排
504‧‧‧記憶體
505‧‧‧輸入/輸入單元
510‧‧‧主機介面單元
515‧‧‧網格管理單元
520‧‧‧工作分配單元
550‧‧‧串流多處理器
560‧‧‧交叉開關
565‧‧‧L2快取
580‧‧‧記憶體介面
605‧‧‧指令快取
610‧‧‧排程器單元
615‧‧‧分派單元
620‧‧‧暫存器檔案
650‧‧‧處理核心
651‧‧‧雙倍準度單元
652‧‧‧特殊功能單元
653‧‧‧載入/儲存單元
670‧‧‧共享記憶體/L1快取
680‧‧‧互聯網路
690(0)~690(J)‧‧‧紋理單元
700‧‧‧系統
701‧‧‧中央處理器
702‧‧‧通訊匯流排
704‧‧‧主記憶體
706‧‧‧圖形處理器
708‧‧‧顯示器
710‧‧‧次要儲存器
712‧‧‧輸入裝置
圖1根據一具體實施例描述用以取樣階層式深度地圖之方法的流程圖;圖2根據一具體實施例描述用以執行針對可縮放環境光遮蔽之演算法的方法流程圖;圖3根據一具體實施例描述一階層式深度地圖;圖4根據一具體實施例描述在可縮放環境光遮蔽演算法中針對一目標畫素的複數個樣本畫素;圖5根據一具體實施例描述一平行處理單元;圖6根據一具體實施例描述圖5之串流多處理器;以及圖7描述各種前述具體實施例之各種架構及/或功能可實施於其中的一範例系統。
許多不同類型的顯像演算法利用深度緩衝器(即Z緩衝器)於一或多個計算中作為演算法的一部份。舉例來說,環境光遮蔽(AO)演算法產生光影效應以近似光線在真實世界中發射的方式。AO演算法判定表面上
一特定點由鄰近幾何所遮蔽的量。若鄰近幾何遮蔽該點,則該點可顯像為包含一陰影(如以較低強度呈現)。然而,若鄰近幾何沒有遮蔽該點,則該點可顯像為不具陰影(如以較高強度呈現)。熟此技藝者將理解到,無法使用傳統的GPUs即時地以全高畫素解析度施行在模型空間中所計算的環境光遮蔽(即藉由取樣每一物件以判定物件是否將點遮蔽)同時維持互動訊框速率。因此,產生足夠近似完整AO演算法的一技術為螢幕空間環境光遮蔽(SSAO)。
在SSAO演算法中,首先將模型格柵化以產生深度緩衝器,
其將每一畫素位置(或者若深度緩衝器以子畫素解析度實施則為樣本位置)關聯至最接近針對畫素之視角的幾何深度。一旦產生深度緩衝器,可藉由取樣複數個鄰近畫素以判定一畫素是否可能被鄰近幾何所遮蔽而計算該畫素的近似環境光遮蔽。在某些SSAO演算法中,每一畫素的深度及表面法線可用以判定近似遮蔽。傳統的SSAO演算法因為深度緩衝器中取樣點的分散而效能不佳,其造成低快取效率並產生大量長潛時的記憶體存取請求。
本文揭露了用以編碼深度緩衝器的範例技術,其改善了取
樣深度緩衝器中大量分散項目之演算法的效能,藉此改善快取效率並降低用以取樣鄰近項目之長潛時記憶體存取請求的數量。
圖1根據一具體實施例描述用以取樣階層式深度地圖之方
法100的流程圖。在步驟102中,產生一階層式深度地圖。在一具體實施例中,階層式深度地圖為具有兩或更多階層的數值陣列,其中第一階層係基於深度緩衝器中的複數個數值而填入且第二階層係以來自第一階層的一子集填入。在步驟104中,從階層式深度地圖的目標階層讀取關聯於樣本畫素的一數值。在一具體實施例中,目標階層係基於樣本畫素與目標畫素的一
距離。應注意,雖然本文中提出各種關於階層式深度地圖的選擇性特徵,但這些特徵僅用於描述目的而提出且不應以任何方式解釋為限制。
圖2根據一具體實施例描述用以執行針對可縮放環境光遮
蔽(SAO)之演算法的方法200的流程圖。應特別注意到,以下資訊僅為了描述目的而提出,且不應以任何方式解釋為限制,因為其他演算法可使用階層式深度地圖來補充及/或替代圖2之流程圖所述的SAO演算法。
在步驟202,藉由在圖形處理單元(GPU)中執行高準度Z-pass
而產生深度緩衝器。在一具體實施例中,高準度Z-pass係實施為經由GPU的僅深度前置處理。一組模型資料(即圖形基元,如三角形、四邊形、或三角條紋)係傳送至GPU。模型資料在深度上進行轉換及網格化以對每一斷片產生一z座標(即關聯於一給定表面物件之一畫素的部份)。Z座標係對關聯於該畫素位置的所有其他z座標進行測試以判定對一特定視角的最接近物件,且若z座標為最接近物件,則z座標儲存於深度緩衝器中對應該畫素位置之一項目。一旦所有模型資料都已網格化,所產生的深度緩衝器表示從視角到在網格化影像中每一畫素位置之最接近表面的射線長度。
為了增加SAO演算法中結果的正確性,應注意以可能的最
高準度填充深度緩衝器。在一具體實施例中,深度緩衝器的準度可藉由實施以下的最佳化而增加。在將模型視圖投射矩陣投至單一準度以供在GPU上之頂點著色器中執行轉換前,可在主機處理器以雙準度計算模型視圖投射矩陣。針對模型視圖投射矩陣,在負無限大(-∞)的深度可選擇一遠修剪平面,其可降低當計算矩陣乘積時所執行之浮點操作的數目。此外,當在GPU中計算轉換,可藉由對以行為主(column-major)的矩陣(如模型視圖投射矩
陣)左乘向量而節省半個位元的準確度。將理解到,上述最佳化僅為用以改善演算法準確度的建議,且不應以任何方式解釋為限制。
在步驟204,基於深度緩衝器而產生階層式深度地圖。在一
具體實施例中,深度緩衝器係用以填入階層式深度地圖的一基準階層。一般來說,由GPUs所產生的深度緩衝器儲存深度數值為零與一之間的浮點值。階層式深度地圖的基準階層將深度緩衝器中的深度數值轉換為相機空間數值,其指示在近修剪平面(z n )的位置與遠修剪平面(z f )的位置之間的一z數值。階層式深度地圖的相繼較高階層係藉由從階層式深度地圖之下一最低階層選擇數值的一子集而填入。階層式深度地圖包含至少兩個階層,對應數位影像完整解析度的基準階層、以及對應小於基準階層之解析度(如基準階層解析度的一半)的第一階層。階層式深度地圖的較高階層(即階層1、階層2等)係確保空間分佈樣本以高快取效率讀取(亦即,當從更遠離目標畫素位置取樣畫素時,由GPU平行處理的鄰近畫素一般將從階層式深度地圖讀取相同的樣本)。因為階層式深度地圖之每一階層的小區域係維持於快取中,較少的讀取請求將被傳送到記憶體(即DRAM),造成高頻寬及低潛時。
在步驟206,針對執行SAO演算法之數位影像的每一目標畫
素,選擇複數個樣本畫素。在一具體實施例中,針對每一目標畫素,複數個樣本畫素係分佈在環繞點C的半球上,其中點C係集中於與從在關聯於目標畫素之一方向中的視角投射之射線相交之平面上之一點。在一具體實施例中,點C從數值z C 重建,z C 係在關聯於由一x座標(x')及一y座標(y')所給定之目標畫素的一索引從階層式深度地圖的基準階層讀取。點C的x座標及y座標係由以下方程式給定:
在方程式1及2中,w及h表示數位影像的寬度及高度,且P
為模型視圖投射矩陣。方程式1及2反轉在畫素(x',y')的投射矩陣以找出相機空間位置點C。方程式3基於z的螢幕空間梯度而給定在點C的估計表面法線,其給定半球的方位。半球的世界空間半徑r對應由以下方程式所給定的螢幕空間半徑r':
在方程式3,S'為在等於負一公尺之z的一公尺半徑物件的畫
素尺寸。在一具體實施例中,複數個樣本畫素係放置在目標畫素周圍的螺旋圖案中。每一樣本畫素(s i )係放置於由方程式7所給定之距離目標畫素不同的距離(h i ),顯示如下。每一個樣本畫素的位置可由以下方程式給定:
h i =r'α i ;θ i=2πα i τ+φ (方程式7)
在方程式7,常數τ為螺旋的圈數,且角偏移φ為由方程式9
所給定的旋轉角。在其他具體實施例中,複數個樣本畫素可隨機分佈於半球的表面上。然而,應注意到,如果多數的樣本僅位於半球的一部份,隨機分佈有可能扭曲結果。
在步驟208,針對關聯於目標畫素的每一樣本畫素,藉由對
階層式深度地圖進行雙向過濾而產生一過濾數值。每一樣本畫素係關聯於階層式深度地圖的一特定階層(m i )。樣本畫素的樣本數值係藉由在階層式深度地圖的特定階層中選擇關聯於樣本畫素之位置的一數值而給定,如方程式所給定:
在方程式10,關聯於樣本畫素(s i )的階層(m i )係限制為大於或
等於零且小於或等於階層式深度地圖中最高階層的一數值。常數q'為螢幕空間半徑增量,其表示與在樣本畫素所引用之階層式深度地圖之階層改變到階層式深度地圖之一不同階層之目標畫素的距離。在一具體實施例中,h i '與q'的比例係四捨五入到下一個最高的整數。q'的最佳數值可取決於實施SAO演算法的架構。由某些實驗架構所計算之在正確環境光遮蔽地圖中所產生的q'的範例數值係在8到32之間。
每一樣本畫素s i 係藉由將方程式1及2應用於z i (即z C =z i )而重
建。在一具體實施例中,可對所產生的樣本畫素進行雙向2x2過濾,將四個加權數值平均以降低一連續表面上的變異(即過濾器核心產生具有由所產生樣本畫素與鄰近畫素間的深度差異所調節之高斯加權的過濾數值)。
在步驟210,藉由使用具有數個接頭的雙向過濾器過濾步驟
208所產生的原始樣本地圖而產生針對數位影像之每一畫素的環境光遮蔽地圖。雙向過濾器確保最終數值在整個表面為平滑而沒有對深度不連續性進行過濾。在一具體實施例中,使用雙通道雙向一維過濾器(一個水平通道
以及一個垂直通道),其在每一通道具有七個接頭,其對每一目標畫素基於196樣本數值而產生一最終AO數值(基於步驟208中所施加的2x2雙向過濾器及步驟210中所施加之雙通道雙向一維過濾器中的7x7接頭)。每一接頭可藉由以三畫素在每一方向中增量畫素位置而展開。在其他具體實施例中,可在雙通道雙向一維過濾器中實施不同數量的接頭或接頭之間的距離。
現在將提出有關可用以根據使用者需求而實施或不實施前
述架構之各種選擇性結構及特徵之更多說明性的資訊。應特別注意到,以下資訊僅為了描述目的而提出且不應以任何方式解釋為限制。任何以下的特徵可選擇性地排除或不排除其他所述特徵。
圖3根據一具體實施例描述一階層式深度地圖300。如圖3所
示,階層式深度地圖300的基準階層310(Z0)包含複數個深度數值,其係關聯於數位影像中對應的複數個畫素。如在此技藝中所習知,表示一組幾何資料之二維(2D)視圖的數位影像可從一模型呈現。針對模型中每一3D物件,物件(即例如為三角形或三角條紋的基元)係投射在2D視圖平面上並判定一覆蓋遮罩,其定義3D物件的投射與2D視圖平面的交點。針對每一覆蓋的畫素,判定在對應畫素之一點的3D物件的表面深度並與每一個先前顯像之3D物件的深度(如儲存於深度緩衝器中)比較。若3D物件的表面深度比儲存於深度緩衝器中的深度更接近視圖平面,則更新深度緩衝器並根據物件的頂點屬性(如顏色屬性、紋理座標等)來顯像畫素。
階層式深度地圖300的基準階層310係從關聯於一數位影像
的深度緩衝器填入。換言之,在基準階層310中的每一深度數值係對應至針對數位影像之其中一畫素而儲存在深度緩衝器中z數值。舉例來說,基準階
層310中位於項目Z0(0,0)的第一深度數值係對應位於數位影像之左上角的數位影像的第一畫素。在某些具體實施例中,每一深度數值係對應數位影像之一畫素的一部份,例如實施多重取樣反鋸齒(MSAA)於圖形管線中的具體實施例。
階層式深度地圖300包含額外的階層(如Z1、Z2等),其包含
來自階層式深度地圖300之基準階層310之數值的一子集。每一個額外階層的解析度可小於階層內下一個較低的階層。舉例來說,在一具體實施例中,階層式深度地圖300之第一階層320的解析度為階層式深度地圖300之基準階層310的解析度的一半(垂直及水平兩者)。在其他具體實施例中,階層式深度地圖300之每一個相繼階層的解析度可降低不同的量,例如階層式深度地圖300的每一相繼階層係降低四分之一的解析度。
如圖3所示,階層式深度地圖300包含解析度為階層式深度
地圖300之基準階層310一半的第一階層320(Z1)。儲存於第一階層320(Z1)的每一深度數值係對應至儲存於階層式深度地圖300之基準階層310中的單一深度數值。不同於mip-map(其中在較低解析度mip-maps中的數值係計算為取樣自較高解析度mip-map之多個數值的平均),在階層式深度地圖300之一特定階層中的每一數值係選自階層中先前階層之每一N數值的其中一者(如每4個數值中的一個)。
在一具體實施例中,選自階層式深度地圖300之下一個較低
階層的數值係基於旋轉網格圖案而選擇。根據這樣一個旋轉網格圖案而決定數值之選擇的方程式係由方程式12所描述:
換言之,儲存於具有x'座標及y'座標之階層式深度地圖300
之m+1階層中的深度數值係選自階層式深度地圖300的m階層,其(1)具有第一座標,其計算為x'座標的兩倍加上y'座標與一的按位元AND與一的互斥按位元OR;以及(2)具有第二座標,其計算為y'座標的兩倍加上x'座標與一的按位元AND與一的互斥按位元OR。前述的旋轉網格圖案針對在階層式深度地圖300之一特定階層中的每十六個深度數值選擇四個深度數值,以產生在階層式深度地圖300之下一相繼階層中的四個對應數值。其他具體實施例可基於不同類型的映射而選擇深度數值,例如選擇在每一2x2畫素陣列中之左上數值的映射或對每六十四個深度數值選擇四個深度數值的映射(在解析度為四分之一的情況中)。可預期有其他類型的映射在本發明的範疇內。
圖3顯示方程式12所描述之旋轉網格圖案的映射。如圖3所
示,在階層式深度地圖300之第一階層320中的第一深度數值325(0)係對應在階層式深度地圖300之基準階層310中對應的第一深度數值315(0)。根據方程式12,第一深度數值325(0)係關聯於項目Z1(0,0)的座標(如0,0),其對應在階層式深度地圖300之基準階層310中的項目Z0(1,1)。類似地,在階層式深度地圖300之第一階層320中的第二深度數值325(1)係對應在階層式深度地圖300之基準階層310中的第二對應深度數值315(1),在階層式深度地圖300之第一階層320中的第三深度數值325(2)係對應在階層式深度地圖300之基準階層310中的第三對應深度數值315(2),且在階層式深度地圖300之第一階層320中的第四深度數值325(3)係對應在階層式深度地圖300之基準階層310中的第四對應深度數值315(3)。第二深度數值325(1)係關聯於項目Z1(1,0)的座標(如1,0),其對應在階層式深度地圖300之基準階層310中的項目Z0(3,0)。第三
深度數值325(2)係關聯於項目Z1(0,1)的座標(如0,1),其對應在階層式深度地圖300之基準階層310中的項目Z0(0,3)。第四深度數值325(3)係關聯於項目Z1(1,1)的座標(如1,1),其對應在階層式深度地圖300之基準階層310中的項目Z0(2,2)。
階層式深度地圖300也包含第二階層330(Z2),其為階層式深
度地圖300之第一階層320之解析度的一半。換言之,第二階層330的解析度為階層式深度地圖300之基準階層310的四分之一。儲存於第二階層330之項目中的深度數值係對應儲存於階層式深度地圖300之第一階層320之項目中的深度數值,其係根據與用以將儲存於第一階層320之項目中的深度數值映射至儲存於階層式深度地圖300之基準階層310之項目中的深度數值相同的映射。舉例來說,儲存於階層式深度地圖300之第二階層330之項目Z2(0,0)中的第一深度數值335(0)係對應儲存於階層式深度地圖300之第一階層320之項目Z1(1,1)中的第四深度數值325(3)。儲存於階層式深度地圖300之第二階層330之項目Z2(0,0)中的第一深度數值335(0)也對應儲存於階層式深度地圖300之基準階層310之項目Z0(2,2)中的第四深度數值315(3)。在一具體實施例中,可平行地產生階層式深度地圖300的不同階層。
雖未顯示,但在階層式深度地圖300中可包含額外的階層,最多到僅含有單一深度數值儲存於項目ZK(0,0)中的最終階層(即第K階層)。特定的實施可省略階層式深度地圖300之任何數量的階層,只要階層式深度地圖300在基準階層310之外包含至少一額外的階層。
圖4根據一具體實施例描述在SAO演算法中針對一目標畫素420的複數個樣本畫素430。SAO演算法描述用以從階層式深度地圖300取
樣數值的一技術以產生環境光遮蔽地圖,如前文在2的流程圖所述。為了計算數位影像中之目標畫素420的環境光遮蔽數值,SAO演算法取樣在深度緩衝器中複數個點,以判定鄰近的幾何是否有可能遮蔽對應目標畫素之一物件表面上的一點。為了計算目標畫素420的環境光遮蔽數值,程序(即一或多個執行緒)取樣階層式深度地圖300中的複數個位置,其係對應鄰近數位影像400中之目標畫素420的複數個樣本畫素430。
在一具體實施例中,當從階層式深度地圖300讀取一樣本,
執行緒判定應從階層式深度地圖300的哪一階層m i 讀取樣本,例如藉由應用方程式10至樣本畫素430的位置。圓圈410表示對應階層式深度地圖300之不同階層的部份螢幕空間。舉例來說,第一圓圈410(0)表示一(即20)乘以q i 且具有四個畫素的半徑。第二圓圈410(1)表示二(即21)乘以q i 且具有八個畫素的半徑。第三圓圈410(2)表示四(即22)乘以q i 且具有十六個畫素的半徑。如前述,螢幕空間半徑增量q i 一般在8到32之間以獲得好的結果。然而,為了描述目的,圖4係顯示四個畫素的螢幕空間半徑增量。
讀取位於第一圓圈410(0)內部之每一樣本畫素430的深度數
值係藉由從階層式深度地圖300的基準階層310讀取一數值而實行。讀取位於第一圓圈410(0)及第二圓圈410(1)之間之每一樣本畫素430的深度數值係藉由從階層式深度地圖300的第一階層320讀取一深度數值而實行。讀取位於第二圓圈410(1)及第三圓圈410(2)之間之每一樣本畫素430的深度數值係藉由從階層式深度地圖300的第二階層320讀取一深度數值而實行,以此類推。
舉例來說,如圖4所示,目標畫素420相對數位影像400之左
上角畫素(即x座標為0且y座標為0的畫素)可為x座標24及y座標8。圖4中的每一陰影畫素係表示用以計算環境光遮蔽數值的樣本畫素430。樣本畫素430(0)位於x座標30及y座標7(相對數位影像400的左上角畫素)。為了判定階層式深度地圖300的哪一階層讀取關聯於樣本畫素430(0)的深度數值,計算樣本畫素430(0)到目標畫素420的距離。如圖4所示,樣本畫素430(0)的距離h i 約為5個畫素,而樣本畫素430(0)的數值zi係從階層式深度地圖300的第一階層320讀取。
圖5根據一具體實施例描述一平行處理單元(PPU)500。雖然
在本文中所描述的平行處理器為PPU 500的範例,但應特別注意到,此類處理器僅為了描述目的而提出,可使用任何處理器來補充及/或替代之。在一具體實施例中,PPU 500係組態以在二或多個串流多處理器(SMs)550中同時地執行複數個執行緒。執行緒(即執行的線程)為在一特定SM 550內執行之一組指令的實例化。每一SM 550(將在下文中結合圖6作更詳細的描述)可包含但不限於一或多個處理核心、一或多個載入/儲存單元(LSUs)、階層一(L1)快取、共享記憶體等等。
在一具體實施例中,PPU 500包含輸入/輸入(I/O)單元505,
其組態以經由系統匯流排502從中央處理單元(CPU)(圖未示)傳送及接收通訊(即命令、資料等)。I/O單元505可實施快速周邊組件互連(PCIe)介面以經由PCIe匯流排通訊。在其他具體實施例中,I/O單元505可實施其他種類的習知匯流排介面。
PPU 500也包含主機介面單元510,其解碼命令並依照命令可能的指定將命令傳送到網格管理單元或PPU 500的其他單元(如記憶體介
面580)。主機介面單元510係組態以路由PPU 500之各個邏輯單元之間的通訊。
在一具體實施例中,編碼為命令流的程式係由CPU寫入一
緩衝器。緩衝器為記憶體(如記憶體504或系統記憶體)中的一區域,其可由CPU及PPU 500兩者存取(即讀取/寫入)。CPU將命令流寫入緩衝器,並接著傳送指向命令流之開始的一指標到PPU 500。主機介面單元510提供對一或多個命令流的指標給網格管理單元(GMU)515。GMU 515選擇一或多個命令流並組態以將所選的命令流組織為待處理網格的一集中池。待處理網格的集中池可包含尚未被選擇供執行的新網格以及已經部份執行且已暫停的網格。
耦合於GMU 515及SMs 550之間的工作分配單元520係管理有效網格的一集中池,其選擇及分派有效網格供由SMs 550執行。當一待處理網格有資格執行時(即沒有未解決的資料相依性),待處理網格係由GMU 515轉移至有效網格集中池。當有效網格的執行由一相依性阻擋時,有效網格係轉移至待處理集中池。當網格的執行完成,網格將由工作分配單元520從有效網格集中池移除。除了從主機介面單元510及工作分配單元520接收網格,GMU 515也接收在網格的執行過程中由SMs 550所動態產生的網格。這些動態產生的網格係加入在待處理網格集中池中的其他待處理網格。
在一具體實施例中,CPU執行實施一應用程式介面(API)的一驅動器核心,其致能在CPU上執行的一或多個應用程式排程操作以供於PPU 500上執行。應用程式可包含使驅動器核心產生一或多個網格供執行的指令(即API呼叫)。在一具體實施例中,PPU 500實施一SIMD(單一指令多資
料)架構,其中在一網格中的每一執行緒區塊(即執行包)係由在執行緒區塊中的不同執行緒同時在一不同的資料組上執行。驅動器核心定義由k個相關執行緒所組成之執行緒區塊,使得在相同執行緒區塊中的執行緒可經由共享記憶體交換資料。在一具體實施例中,一執行緒區塊包含32個相關執行緒,且一網格為執行相同資料流之一或多個執行緒區塊的一陣列,且不同的執行緒區塊可經由通用記憶體交換資料。
在一具體實施例中,PPU 500包含X個SMs 550(X)。舉例來
說,PPU 100可包含15個不同的SMs 550。每一SM 550為多執行緒且組態以同時地執行來自一特定執行緒區塊的複數個執行緒(如32個執行緒)。SMs 550的每一者係經由交叉開關560(或其他類型的互連網路)連接至階層二(L2)快取565。L2快取565連接至一或多個記憶體介面580。記憶體介面580實施16、32、64、128位元的資料匯流排(或類似者)供高速資料轉移。在一具體實施例中,PPU 500包含U個記憶體介面580(U),其中每一記憶體介面580(U)係連接至一對應的記憶體裝置504(U)。舉例來說,PPU 500可連接高達6個記憶體裝置504,例如第五代圖形雙倍資料率同步動態隨機存取記憶體(GDDR5 SDRAM)。
在一具體實施例中,PPU 500實施一多階層記憶體架構。記
憶體504係設置於晶片外耦合至PPU 500的SDRAM中。來自記憶體504的資料可被提取並儲存於L2快取565中,其係設置於晶片上且在各個SMs 550之間共享。在一具體實施例中,SMs 550的每一者也實施一L1快取。L1快取為專屬於特定SM 550的私用記憶體。L1快取的每一者係耦合至共享L2快取565。來自L2快取565的資料可被提取並儲存於每一L1快取中,供在SMs 550
之功能性單元中處理。
在一具體實施例中,PPU 500包含一圖形處理單元(GPU)。
PPU 500係組態以接收指定著色器程式用以處理圖形資料的命令。圖形資料可定義為一組基元,如點、線、三角形、四邊形、三角條紋等。一般來說,基元包含指定基元的頂點數目(如在模型空間座標系統)以及關聯於基元頂點的屬性之資料。PPU 500可組態以處理圖形基元以產生訊框緩衝器(即針對顯示器之每一畫素的畫素資料)。驅動器核心實施圖形處理管線,例如由OpenGL API所定義的圖形處理管線。
應用程式寫入針對一場景的模型資料(即頂點及屬性的彙
集)至記憶體。模型資料定義在顯示器上可見的每一個物件。接著,應用程式做出API呼叫至驅動器核心,其請求呈現及顯示模型資料。驅動器核心讀取模型資料並寫入命令至緩衝器以執行一或多個操作來處理模型資料。命令可編碼不同的著色器程式,其包含一或多個頂點著色器、外殼著色器、幾何著色器、畫素著色器等。舉例來說,GMU 515可組態一或多個SMs 550以執行一頂點著色器程式,其處理由模型資料所定義的一些頂點。在一具體實施例中,GMU 515可組態不同的SMs 550以同時地執行不同的著色器程式。舉例來說,SMs 550的第一子集可組態以執行頂點著色器程式,而SMs 550的第二子集可組態以執行畫素著色器程式。SMs 550的第一子集處理頂點資料以產生處理過的頂點資料,並將處理過的頂點資料寫入至L2快取565及/或記憶體504。在處理過的頂點資料柵格化(即從三維資料轉換為在螢幕空間中的二維資料)以產生斷片資料後,SMs 550的第二子集執行一畫素著色器以產生處理過的斷片資料,其接著與其他處理過的斷片資料混合並寫
入至記憶體504的訊框緩衝器中。頂點著色器程式及畫素著色器程式可同時地執行,以管線化的方式處理來自相同場景的不同資料,直到場景的所有模型資料已提供給訊框緩衝器。接著,訊框緩衝器的內容係傳送至顯示控制器供顯示於顯示裝置上。
PPU 500可包含於一桌上型電腦、膝上型電腦、平板電腦、
智慧型手機(如無線手持裝置)、個人數位助理(PDA)、數位相機、手持電子裝置等。在一具體實施例中,PPU 500係包含於單一半導體基板上。在另一具體實施例中,PPU 500係與一或多個其他邏輯單元(如精簡指令集電腦(RISC)CPU、記憶體管理單元(MMU)、數位到類比轉換器(DAC)等)一起包含在一系統單晶片(SoC)中。
在一具體實施例中,PPU 500可包含於一顯示卡上,其包含
一或多記憶體裝置504(如GDDR5 SDRAM)。顯示卡可組態以與在桌上型電腦主機板(其包含例如北橋晶片組及南僑晶片組)上的PCIe插槽相接。在另一具體實施例中,PPU 500可為包含於主機板之晶片組(如北橋)中的整合圖形處理單元(iGPU)。
圖6根據一具體實施例描述圖5之串流多處理器550。如圖6
所示,SM 550包含指令快取605、一或多個排程器單元610、暫存器檔案620、一或多個處理核心650、一或多個雙倍準度單元(DPUs)651、一或多個特殊功能單元(SFUs)652、一或多個載入/儲存單元(LSUs)653、互聯網路680、共享記憶體/L1快取670、及一或多個紋理單元690。
如前述,工作分配單元520係分派有效網格供在PPU 500之一或多個SMs 550上執行。排程器單元610從工作分配單元520接收網格並管
理對每一有效網格之一或多個執行序區塊的指令排程。排程器單元610排程執行緒以供在平行執行緒的群組中執行,其中每一群組稱作一執行包(warp)。在一具體實施例中,每一執行包具有32個執行緒。排程器單元610可管理複數個不同的執行緒區塊,其在每一時脈循環過程中分配執行緒區塊到執行包供執行並接著排程來自複數個不同執行包的指令於各個功能性單元(即核心650、DPUs 651、SFUs 652、及LSUs 653)上。
在一具體實施例中,每一排程器單元610包含一或多個指令
分派單元615。每一分派單元615係組態以傳送指令到一或多個功能性單元。在圖6所示的具體實施例中,排程器單元610包含兩個分派單元615,其在每一時脈循環過程中致能來自相同執行包的兩個不同指令被分派。在其他具體實施中,每一排程器單元610可包含單一分派單元615或額外的分派單元615。
每一SM 650包含一暫存器檔案620,其對SM 650的功能性
單元提供一組暫存器。在一具體實施例中,暫存器檔案620係在每一功能性單元之間劃分,使得每一功能性單元被分配暫存器檔案620的專屬部份。在另一具體實施例中,暫存器檔案620係於由SM 550所執行的不同執行包之間劃分。暫存器檔案620提供暫時儲存給連接至功能性單元之資料路徑的運算元。
每一SM 550包含L個處理核心650。在一具體實施例中,SM
550包含大量的(如192等)不同處理核心650。每一核心650為全管線式單準度處理單元,其包含浮點算術邏輯單元及整數算術邏輯單元。在一具體實施例中,浮點算術邏輯單元執行浮點算術的IEEE 754-2008標準。每一SM 550
也包含執行雙準度浮點算術的M個DPUs 651、執行特定功能(如複製矩形、畫素混合操作及類似者)的N個SFUs 652、以及執行共享記憶體/L1快取670與暫存器檔案620間之載入及儲存操作的P個LSUs 653。在一具體實施例中,SM 550包含64個DPUs 651、32個SFUs 652、及32個LSUs 653。
每一SM 550包含互連網路680,其連接每一功能性單元到暫
存器檔案620及共享記憶體/L1快取670。在一具體實施例中,互連網路680為一交叉開關,其可組態以連接任何功能性單元到暫存器檔案620中的任何暫存器或共享記憶體/L1快取670中的記憶體位置。
在一具體實施例中,SM 550係實施於GPU內。在此一具體
實施例中,SM 550包含J個紋理單元690。紋理單元690係組態以從記憶體504載入紋理地圖(即紋素(texels)的二維陣列)並取樣紋理地圖以產生取樣紋理數值供用於著色器程式。紋理單元690執行紋理操作,例如使用mip-maps(即具有不同詳細程度的紋理映射)的反雜訊操作。在一具體實施例中,SM 550包含16個紋理單元690。
上述的PPU 500可組態以執行比傳統CPUs快很多的高度平
行計算。平行計算在圖形處理、資料壓縮、生物統計、串流處理演算法、及類似者中具有優勢。
舉例來說,記憶體104中的應用程式可組態以使用PPU 500
產生階層式深度地圖300。在一具體實施例中,應用程式經由驅動器核心傳送命令到PPU 500,以使PPU 500產生用於三維場景的深度緩衝器。應用程式接著可讀取深度緩衝器(從記憶體104或藉由經驅動器核心詢問PPU 500),以產生階層式深度地圖300。在一具體實施例中,階層式深度地圖300
可編碼為紋理地圖,且SAO演算法的步驟可藉由施行在PPU 500上所執行的畫素著色器而針對數位影像的不同目標畫素平行地執行。畫素著色器的執行緒可對應至數位影像的一特定目標畫素,且環境光遮蔽地圖可由PPU 500產生。
圖7描述前述各種具體實施例之各種架構及/或功能可實施
於其中的範例性系統700。如所示,系統700係提供為包含至少一中央處理器701,其連接至通訊匯流排702。通訊匯流排702可使用任何適合的協定來實施,如PCI(週邊組件互連)、PCI-Express、AGP(加速圖形連接埠)、超傳送標準(HyperTransport)、或其他任何匯流排或點對點通訊協定。系統700也包含主記憶體704。控制邏輯(軟體)及資料係儲存於主記憶體704中,其可採用隨機存取記憶體(RAM)的形式。
系統700也包含輸入裝置712、圖形處理器706、及顯示器
708(即傳統的CRT(陰極射線管)、LCD(液晶顯示器)、LED(發光二極體)、電漿顯示器或類似者)。使用者輸入可從輸入裝置712接收,其例如為鍵盤、滑鼠、觸控板、麥克風及類似者。在一具體實施例中,圖形處理器706可包含複數個著色器(shader)模組、柵格化(rasterization)模組等。前述模組之每一者甚至皆可放置於單一半導體平台上,以形成圖形處理單元(GPU)。
在本發明所說明的內容中,單一半導體平台可指稱單獨的
個體半導體型積體電路或晶片。應注意,術語單一半導體平台亦可指稱有經增加之模擬晶片上操作的連接性的多晶片模組,且藉由利用傳統的中央處理單元(CPU)和匯流排實作而做出重大的改良。當然,各種模組亦可依使用者所需而分開放置或以半導體平台之各種組合放置。
系統700也可包含次要儲存器710。次要儲存器710包括例如
硬式磁碟機及/或可移除式儲存驅動,其代表軟式磁碟機、磁帶機、光碟機、數位光碟(DVD)機、紀錄裝置、通用序列匯流排(USB)快閃記憶體。可移除式儲存驅動以習知的方式讀取及/或寫入可移除式儲存單元。
電腦程式或電腦控制邏輯演算法可儲存於主記憶體704及/
或次要儲存器710中。當執行這樣的電腦程式時,將致能系統700執行各種功能。記憶體704、儲存器710及/或任何其他儲存器皆為電腦可讀取媒體之可能範例。
在一具體實施例中,各種先前圖式之架構及/或功能可實施
於中央處理器701、圖形處理器706、能勝任中央處理器701和圖形處理器706兩者之至少一部分能力的積體電路(未顯示)、晶片組(即設計以工作並銷售為用以執行相關功能之一單元的一積體電路群組等)、及/或與此有關的任何其他積體電路之背景中。
再者,各種先前圖式之架構和/或功能可實施於通用電腦系
統、電路板系統、專用於娛樂用途的遊戲機系統、特定應用系統、及/或任何其他所需系統之背景中。舉例來說,系統700可具有桌上型電腦、膝上型電腦、伺服器、工作站、遊戲主機、嵌入式系統、及/或任何其他類型之邏輯的形式。此外,系統700可具有各種其他裝置之形式,其包括但不限於個人數位助理(PDA)裝置、行動電話裝置、電視等。
此外,雖未顯示,系統700可為了通信目地而耦合至網路(如
電信網路、區域網路(LAN)、無線網路、廣域網路(WAN)(如網際網路)、點對點網路、電纜網路等)。
雖然上述已說明各種具體實施例,但應理解其僅藉由範例而非限制進行描述。因此,較佳具體實施例之廣度與範疇不應被任何上述例示性具體實施例限制,而應僅根據以下的申請專利範圍和其均等物所定義。
100‧‧‧方法
Claims (20)
- 一種方法,包含:產生一階層式深度地圖,其中該階層式深度地圖包含至少兩個階層;以及從基於一樣本畫素與一目標畫素間之一差異的該階層式深度地圖的一目標階層讀取關聯於該樣本畫素的一數值。
- 如申請專利範圍第1項所述之方法,該階層式深度地圖包含:在一第一解析度的一基準階層;以及在一第二解析度的一第一階層,其中該第二解析度小於該第一解析度。
- 如申請專利範圍第2項所述之方法,其中該第二解析度為該第一解析度的一半。
- 如申請專利範圍第2項所述之方法,該階層式深度地圖更包含在一第三解析度的一第二階層,其中該第三解析度小於該第二解析度。
- 如申請專利範圍第2項所述之方法,其中該基準階層儲存複數個數值,每一數值係關聯於一數位影像的一不同畫素,且其中該第一階層儲存選自該基準階層之數值的一子集。
- 如申請專利範圍第5項所述之方法,其中該數值子集係基於一旋轉網格圖案而選擇。
- 如申請專利範圍第6項所述之方法,其中該旋轉網格圖案係由一函數所決定,該函數將在該階層式深度地圖之一特定階層的一數值映射至在該階層式深度地圖之下一較低階層的一所選數值,其中該數值係關聯於一第一座標及一第二座標且該所選數值係關聯於一第三座標及一第四座標,該第三座標等於該第一座標的兩倍與該第二座標與一的按位元AND與一的互斥按位元OR之總和,該第四座標等於該第二座標的兩倍與該第一座標與一的按位元AND與一的互斥按位元OR之總和。
- 如申請專利範圍第1項所述之方法,其中該階層式深度地圖的該目標階層係藉由將該取樣畫素的一螢幕空間位置與一目標畫素的一螢幕空間位置之間的一距離對一螢幕空間半徑增量數值的一比例取以2為底的對數而計算。
- 如申請專利範圍第8項所述之方法,其中該螢幕空間半徑增量數值係基於以下至少一者而判定:一數位影像的一解析度、組態以平行地存取該階層式深度地圖之一圖形處理單元的核心數目、及組態以暫時地儲存部份之該階層式深度地圖之一快取的一尺寸。
- 如申請專利範圍第1項所述之方法,其中產生該階層式深度地圖包含: 呈現複數個三維物件於一圖形處理器中以產生一深度緩衝器;基於在該深度緩衝器中的數值而填充該階層式深度地圖的一基準階層;以及藉由從該階層式深度地圖的該基準階層選擇一數值子集而產生該階層式深度地圖的一第一階層。
- 如申請專利範圍第1項所述之方法,更包含:選擇關聯於該目標畫素的複數個樣本畫素;針對該複數個樣本畫素的每一特定樣本畫素:判定針對該特定樣本畫素之該階層式深度地圖的一對應階層,以及從該階層式深度地圖之該目標階層讀取針對該特定樣本畫素的一樣本數值。
- 如申請專利範圍第11項所述之方法,更包含將一雙向濾波器應用至對應一2x2目標畫素陣列的一2x2樣本數值陣列,以產生一過濾的樣本數值。
- 如申請專利範圍第12項所述之方法,更包含藉由將具有數個接頭的一雙通道雙向濾波器應用至從該階層式深度地圖讀取之過濾樣本數值的一地圖而產生一環境光遮蔽地圖。
- 如申請專利範圍第13項所述之方法,其中在該雙通道雙向濾波器之每一通道中的接頭數量等於7。
- 一種儲存指令之非暫態電腦可讀儲存媒體,當該指令由一處理器所執行時將使得該處理器執行以下步驟:產生一階層式深度地圖,其中該階層式深度地圖包含至少兩個階層;以及從基於一樣本畫素與一目標畫素間之一差異的該階層式深度地圖的一目標階層讀取關聯於該樣本畫素的一數值。
- 如申請專利範圍第15項所述之非暫態電腦可讀儲存媒體,該階層式深度地圖包含:在一第一解析度的一基準階層;以及在一第二解析度的一第一階層,其中該第二解析度小於該第一解析度。
- 如申請專利範圍第16項所述之非暫態電腦可讀儲存媒體,其中該基準階層儲存複數個數值,每一數值係關聯於一數位影像的一不同畫素,且其中該第一階層儲存選自該基準階層之數值的一子集。
- 一種系統,包含:一處理器,組態以:產生一階層式深度地圖,其中該階層式深度地圖包含至少兩個階層;以及 從基於一樣本畫素與一目標畫素間之一差異的該階層式深度地圖的一目標階層讀取關聯於該樣本畫素的一數值。
- 如申請專利範圍第18項所述之系統,其中該處理器包含具有複數個處理核心的一圖形處理單元。
- 如申請專利範圍第19項所述之系統,其中二或更多個該處理核心係組態以平行地從該階層式深度地圖讀取數值。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/685,599 US9111393B2 (en) | 2012-11-26 | 2012-11-26 | System, method, and computer program product for sampling a hierarchical depth map |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201439976A true TW201439976A (zh) | 2014-10-16 |
TWI514315B TWI514315B (zh) | 2015-12-21 |
Family
ID=50772878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102140652A TWI514315B (zh) | 2012-11-26 | 2013-11-08 | 取樣階層式深度地圖的系統、方法,及電腦程式產品 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9111393B2 (zh) |
CN (1) | CN103838548A (zh) |
DE (1) | DE102013222685B4 (zh) |
TW (1) | TWI514315B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI605416B (zh) * | 2016-10-25 | 2017-11-11 | 晨星半導體股份有限公司 | 影像處理裝置、影像處理方法及其非暫態電腦可讀取儲存媒體 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102223064B1 (ko) * | 2014-03-18 | 2021-03-04 | 삼성전자주식회사 | 영상 처리 장치 및 방법 |
JP6478492B2 (ja) * | 2014-06-27 | 2019-03-06 | キヤノン株式会社 | 画像処理装置およびその方法 |
CN104517313B (zh) * | 2014-10-10 | 2017-12-05 | 无锡梵天信息技术股份有限公司 | 基于屏幕空间的环境光遮蔽的方法 |
US9704056B2 (en) * | 2015-04-02 | 2017-07-11 | Qualcomm Incorporated | Computing hierarchical computations for computer vision calculations |
US10372968B2 (en) * | 2016-01-22 | 2019-08-06 | Qualcomm Incorporated | Object-focused active three-dimensional reconstruction |
US10353931B2 (en) * | 2016-12-30 | 2019-07-16 | DeepMap Inc. | High definition map and route storage management system for autonomous vehicles |
US10726514B2 (en) * | 2017-04-28 | 2020-07-28 | Intel Corporation | Compute optimizations for low precision machine learning operations |
CN107730578B (zh) * | 2017-10-18 | 2021-07-23 | 阿里巴巴(中国)有限公司 | 光环境遮蔽图的渲染方法、生成效果图的方法和设备 |
CN108182656B (zh) * | 2017-12-28 | 2021-04-30 | 深圳市创梦天地科技有限公司 | 一种图像处理方法及终端 |
US11995854B2 (en) * | 2018-12-19 | 2024-05-28 | Nvidia Corporation | Mesh reconstruction using data-driven priors |
CN115375820B (zh) * | 2022-10-24 | 2023-03-24 | 腾讯科技(深圳)有限公司 | 顶点环境光遮蔽值的确定方法、应用方法、装置及设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6518966B1 (en) * | 1998-03-11 | 2003-02-11 | Matsushita Institute Industrial Co., Ltd. | Method and device for collision detection and recording medium recorded with collision detection method |
CA2525977C (en) * | 2003-05-30 | 2012-06-26 | Karl Johann Schmidt | Rendering of soft shadows using depth maps |
US7333119B1 (en) * | 2004-11-02 | 2008-02-19 | Nvidia Corporation | System and method for virtual coverage anti-aliasing |
US8130227B2 (en) * | 2006-05-12 | 2012-03-06 | Nvidia Corporation | Distributed antialiasing in a multiprocessor graphics system |
US7969438B2 (en) * | 2007-01-23 | 2011-06-28 | Pacific Data Images Llc | Soft shadows for cinematic lighting for computer graphics |
US8390621B2 (en) * | 2007-01-24 | 2013-03-05 | Take Two Interactive Software, Inc. | System and method for calculating multi-resolution dynamic ambient occlusion |
US7948500B2 (en) * | 2007-06-07 | 2011-05-24 | Nvidia Corporation | Extrapolation of nonresident mipmap data using resident mipmap data |
US7940268B2 (en) * | 2007-06-29 | 2011-05-10 | Microsoft Corporation | Real-time rendering of light-scattering media |
US7940269B2 (en) * | 2007-06-29 | 2011-05-10 | Microsoft Corporation | Real-time rendering of light-scattering media |
EP2194504A1 (en) * | 2008-12-02 | 2010-06-09 | Koninklijke Philips Electronics N.V. | Generation of a depth map |
US9177381B2 (en) * | 2010-12-22 | 2015-11-03 | Nani Holdings IP, LLC | Depth estimate determination, systems and methods |
-
2012
- 2012-11-26 US US13/685,599 patent/US9111393B2/en active Active
-
2013
- 2013-11-07 DE DE102013222685.3A patent/DE102013222685B4/de active Active
- 2013-11-08 TW TW102140652A patent/TWI514315B/zh active
- 2013-11-25 CN CN201310606910.XA patent/CN103838548A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI605416B (zh) * | 2016-10-25 | 2017-11-11 | 晨星半導體股份有限公司 | 影像處理裝置、影像處理方法及其非暫態電腦可讀取儲存媒體 |
Also Published As
Publication number | Publication date |
---|---|
DE102013222685A1 (de) | 2014-06-12 |
TWI514315B (zh) | 2015-12-21 |
DE102013222685B4 (de) | 2024-03-21 |
US20140146045A1 (en) | 2014-05-29 |
CN103838548A (zh) | 2014-06-04 |
US9111393B2 (en) | 2015-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI514315B (zh) | 取樣階層式深度地圖的系統、方法,及電腦程式產品 | |
US10229529B2 (en) | System, method and computer program product for implementing anti-aliasing operations using a programmable sample pattern table | |
US9747661B2 (en) | Consistent vertex snapping for variable resolution rendering | |
US9547931B2 (en) | System, method, and computer program product for pre-filtered anti-aliasing with deferred shading | |
US9754407B2 (en) | System, method, and computer program product for shading using a dynamic object-space grid | |
US9747718B2 (en) | System, method, and computer program product for performing object-space shading | |
US9633469B2 (en) | Conservative rasterization of primitives using an error term | |
US9355483B2 (en) | Variable fragment shading with surface recasting | |
US9224235B2 (en) | System, method, and computer program product for compression of a bounding volume hierarchy | |
US9245363B2 (en) | System, method, and computer program product implementing an algorithm for performing thin voxelization of a three-dimensional model | |
US9230363B2 (en) | System, method, and computer program product for using compression with programmable sample locations | |
TWI552113B (zh) | 舖磚延遲著色的系統、方法,及電腦程式產品 | |
US9230362B2 (en) | System, method, and computer program product for using compression with programmable sample locations | |
US9659399B2 (en) | System, method, and computer program product for passing attribute structures between shader stages in a graphics pipeline | |
US20150179142A1 (en) | System, method, and computer program product for reduced-rate calculation of low-frequency pixel shader intermediate values | |
US9905037B2 (en) | System, method, and computer program product for rejecting small primitives | |
US10861230B2 (en) | System-generated stable barycentric coordinates and direct plane equation access | |
US11315310B2 (en) | Reservoir-based spatiotemporal importance resampling utilizing a global illumination data structure | |
US20150084952A1 (en) | System, method, and computer program product for rendering a screen-aligned rectangle primitive | |
US20150054845A1 (en) | Bit-count texture format |