TWI395155B - 用於處理射線之方法與系統以及包括相關聯資料之機器可存取媒體 - Google Patents
用於處理射線之方法與系統以及包括相關聯資料之機器可存取媒體 Download PDFInfo
- Publication number
- TWI395155B TWI395155B TW095146255A TW95146255A TWI395155B TW I395155 B TWI395155 B TW I395155B TW 095146255 A TW095146255 A TW 095146255A TW 95146255 A TW95146255 A TW 95146255A TW I395155 B TWI395155 B TW I395155B
- Authority
- TW
- Taiwan
- Prior art keywords
- cluster
- rays
- coherent
- sub
- clusters
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- 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
Description
本發明之實作大體上可係有關用於二元影像分類與分段之架構,並更尤其是有關在射線(ray)追蹤期間之對射線之分類。
一種二元分類作業可包含將給定物件劃分成兩個群集,一個擁有某些性質,而另一個則不。一些典型的應用可包括:決策下定、影像分段、資料壓縮、電腦顯現、醫療檢驗、以及品質控制。二元分類有很多途徑,包括,但不限制於決策樹、貝氏(Bayesian)網路、支援向量機器、以及神經網路。在一些應用中,係進行多次分類,有時百萬次,並且二元決策包括選擇下列兩個可能性中之一者:(1)群集中的所有物件均擁有某種性質、以及(2)族群中至少有二個物件具有不同的性質。在一些實作中,一個影像處理問題可能會需要判斷一群像素是否擁有某個性質。例如,一群像素是否具有相似色彩或是否屬於同一個物件。
一種用於解決全域照明問題的技術涉及追蹤射線(tracing rays),亦即,決定射線和給定幾何間的相交處。射線追蹤是一種用於模仿在多種媒體中的波傳遞之多種物理現象的習見方法。例如,其可用於計算如相片般真實的電腦圖形中之照明解析度,以供用於無線通訊中之複雜環境頻道模式化、於進階音訊應用中之音訊呈現等等。
於全域照明作業中,一個景像的三維描述(包括幾何物件、材料性質、光線等等)可被轉換成適於顯示在電腦監視器上或形成硬性複製品(列印或攝製)的一種二維表示型態。一起處理射線群集可以是很有利的,例如利用現代電腦的單指令多資料(SIMD)能力。依據給定光線群集之某種二元分類,可使用不同的處理方法。在一些實作中,二元分類可以是射線之射線追蹤束中的啟始步驟。為了達到許多全域照明應用所需的即時效能,分類步驟較佳係被極迅速地執行。
依據本發明之一實施例,係特地提出一種用於二元分類之方法,其包含有下列步驟:使用浮動值正負號以檢測不同的子群集;檢測群集中是否所有項目屬於相同子群集;分割原始子群集成為多個一致子群集;以及使用浮動值陣列以分類子群集。
併於本說明書中並構成本說明書之一部份的隨附圖式繪示與本發明之原理一致的一個或多個實作,並且連同詳細說明一起說明此等實作。該等圖式並不必然成比例,而其重點係在繪示本發明之原理。於此等圖式中:第1圖繪示從攝影機通過屏幕像素至一景象中之物件所追蹤的多個示範射線;第2圖繪示射線追蹤之一示範處理程序;第3圖繪示劃分非同調射線群集之一示範處理程序;
第4圖概念性地繪示在各個座標(x、y和z)上具有不同射線方向的4x4像素之示範群集;第5圖繪示使用串流化SIMD擴充(S.S.E.)指令來劃分非同調射線群集的示範處理程序;第6圖繪示檢測給定射線群集中之同調性的示範處理程序;第7圖繪示用於一S.S.E.實作中之進一步處理的劃分非同調射線群集之示範處理程序;第8圖繪示包括有影像分類與分段邏輯件的示範電腦系統。
下文中之詳細說明係參考隨附圖式。相同索引號碼可被用於不同圖式中,以識別相同或相似的元件。於下文之說明中係為說明目的而非限制目的而舉出特定細節,例如,特定構造、結構、介面、技術等等,以提供對所請求之發明之多種觀點的全面了解。然而,對熟習得益於本揭露內容之技術者而言,明顯可見,所請求之發明之多種觀點可係於脫出此等特定細節的其他範例中實例。於某些實例中,習知裝置、電路、及方法的說明被省略,以使本發明之說明不因非必要細節而混淆。
在一些實作中,且為易於本文中說明起見,係使用射線追蹤術語和範例來討論本發明的數個實施例。本發明之實施例並不受限於射線追蹤。任何特定的SIMD實作亦不為
唯一的可能性。熟於此技者可於不同SIMD結構上實施所說明之演算法。
當用於本文中時,射線投射,亦稱為射線追蹤,可解釋成是指用以判定從一個所選點沿著一個特定視線有什麼是可見的的技術。在一些組態中,射線可為起始於空間中之一點的具有無限長度的一條半直線,由從此點沿著一個方向向量行進的一個位置向量來描述。射線追蹤可用於電腦繪圖中,以藉由從由射線之位置向量所描述的一個有利位置沿著由射線之方向向量所描述的一條視線而引導一或多個射線,來判斷可視性。欲判斷沿著那條視線的最近的可見表面的位置,需要射線針對對照於此虛擬景象內的所有幾何之相交處被有效地被測試並保留最近的相交處。
第1圖繪示從一個攝影機102通過屏幕像素104到景象106中之物件而被追蹤的多個射線的一個實施例100。如圖所示,其示出按幾何圖形分開的九個4x4射線之群集108。雖然為易於繪示而繪示為以某種方式組配,第1圖中之實施例亦可以其他組態來實施。在一些實作中,視演算法之複雜度而定,次要射線(Secondary ray)可在主要眼睛射線(primary eye ray)打到景象中的一些物件之後被產生。次要射線可包括但不受限制於陰影射線(於此景象中在光線之方向中所射出的)、反射射線、被折射之射線還有一些其他類型的射線。在一些實作中,射線追蹤可被用來藉由從擊中點沿著計算軌道而產生的次要射線來計算具光學正確
性的陰影、反射、或折射。因而,典型景象的呈現可包括追蹤上百萬條射線,且可同時處理多個資料串流。為了運用這些能力,將射線群集一起處理可以是很有益的。例如串流化單指令/多資料(SIMD)擴充(S.S.E.)指令等的特定處理器指令可容許同時處理四個浮動數或整數。
第2圖繪示射線追蹤的一個範例處理程序200。雖然可為方便和簡明起見而參照第1圖中之實施例100來說明第2圖,仍應了解,亦可藉由其他硬體及/或軟體實作來執行處理程序200。
一開始可產生數個射線群集(射線投射)(動作202)。在一些實作中,通過相鄰像素的數個射線被群聚在一起,如第1圖所示。當射線大部分係一起通過一個景象時,遍歷演算法可更有效地被執行。然而,在一些相互作用之後,這些射線可能會失去同調性,尤其是在群集中之射線和不同物件相交時。
可針對各個射線判定一個起始點(眼睛位置)和方向(動作204)。在一些實作中,可將起始點表示成=(ox,oy,oz),並將方向表示成d=(dx,dy,dz)。一個眼睛射線可係發源自從攝影機之投影中心並通行經影像平面的一個像素。可使用數字下標來區別不同的座標(取代x,y,和z)。例如,射線方向可被表示成d=(d[0],d[1],d[2])。下標i會同時被用來指出群集中之不同射線(像是,對於4x4射線群集中的所有射線,i=1…16)。
可判定射線群集之同調性(動作206)。在一些實作中,
同調性可依據底下的方程式(1)來判定:(所有的dxi>0或所有的dxi<0)且(所有的dyi>0或所有的dyi<0)且(所有的dzi>0或所有的dzi<0)...方程式(1)其中i為1到N,其中N=封包中之射線數目
若所有射線被判定為在x、y和z各座標上皆係於相同方向(正的負其中之一)中行進(動作208),則可判定此群集同調的(動作210)。若並非所有射線在x、y和z各座標上皆在相同方向中行進(動作208),則此群集可被認為是非同調的(動作212)。在一些實作中,非同調射線群集可以不同於同調射線群集的方式被遍歷。同時,確切相等不可界定在方程式(1)中。例如,在當中有一些方向座標為零的群集可被作為非同調群集而處理。
在一些實作中,於全域照明作業中所產生的多數射線封包會是同調的。然而,當一個封包中有大量射線時,此封包中的一些射線可能會在不同方向中行進,即其為非同調的。如第1圖中所示,可採用將四個有四個像素之列集聚在一起的大小為十六的封包。為作例示之用,第3圖繪示使用這封包組態的劃分非同調射線群集的一個範例處理程序300。雖然可為便利和簡明起見而參照第1圖中之實施例100來說明第3圖,仍應了解,處理程序100亦可藉由其他硬體及/或軟體實作來執行。
首先,判定一個射線群集是否同調(動作302)。在一些實作中,這可係依據上文中之方程式(1)或其他的一些方式
來判定。
若判定此射線群集同調(動作302),則可將此射線群集作為一個整體來處理(動作304)。
若判定此群集非同調(動作302),則基於同調性質將此群集劃分為數個子群集(動作306)。由於此範例中的各個座標皆可產生二個分別的方向,所以可能會有八個不同的子群集。
針對各子群集(動作308),可獨立地執行射線追蹤演算法(動作310)。
其結果接著被合併(動作310)。此步驟包含從個別子群集複製交點資料到原始群集,這些交點資料可包括至交點之距離及各射線之相交物件的識別符。
熟於此技者會能識出,演算法300之實施例可係以任何高階語言來實施,且可係以支援在射線追蹤期間所處理的資料量之方式來實施。
第4圖概念性地繪示4X4像素402的一個示範群集400,其在各個座標(x,y和z)上具有不同射線方向。尤其是,繪示了針對一個4x4射線群集之方向正負號及其精簡S.S.E.配置404。區域406代表正的方向,區域408代表負的方向。
第5圖繪示將射線方向資料重整成為適於S.S.E.指令之格式的一個範例處理程序500。雖然可為便利和簡明起見而參照第4圖中之實施例400來說明第5圖,仍應了解,處理程序500亦可係利用其他硬體及/或軟體實作來執行。例如,
除了加速射線追蹤之外,需要處理大量資料的其他應用,例如影像分段和分類問題,亦可從中獲得助益。
可首先將資料以一種不適於S.S.E.實作的格式來儲存(動作502)。在一些實作中,可係以三個浮動數來表示各個原點和方向向量(各座標一個)。基於此,所有的向量都可以如下連續地被儲存(動作502):
於此實作中,此配置表示4個方向向量d1、d2、d3、和d4(4x4群集中的第一列)之儲存。然而,在一些實作中,此格式對於四向SIMD處理而言可能並不理想,因為各個S.S.E.數可能會含有不同向量的元素(第一個向量之(dx1,dy1,dz1,dx2),以此類推)。為了完全地利用一個S.S.E.單元的處理能力,資料可如下重新安排(程序504):
上面示出三個同質S.S.E.向量dir[0][0]、dir[0][1]、以及dir[0][2]。特別是,在dir[i][j]中,指標i代表一個列(從0到3),而指標j代表一個座標(x、y和z)。
在一個實作中,第4圖上之針對16個射線的資料404可連續地被儲存在記憶體中,因此,dir[0][2]後立刻接dir[1][0],並以此類推。各個dir[i][j]數可佔用16個位元組(4x32個位元),因此,可能會需要總共16x3x4=192個位元組以儲存整個4x4群集的方向向量。根據述於上文並繪示於第
3圖中的處理程序300,其首先判定封包中的所有射線是否同調。參看第4圖,這將對應至具有區域406或408的所有x、y和z扇區。
第6圖繪示使用S.S.E.指令的針對同調性而測試射線群集的一個範例處理程序600,並實施第2圖上之實施例206。雖然可為便利和簡明起見而參照第4圖中之實施例400而說明第6圖,仍應了解,處理程序600亦可利用其他硬體及/或軟體實作來執行。例如,可利用多種操作來實施此處理程序,包括但不受限於MOVMSKPS(產生四位元的正負號位元之遮罩)操作。為作例示,可使用S.S.E.固有指令,例如揭示於IA-32Intel®結構軟體開發者手冊,http://www.intel.com/design/Pentium4/manuals/25366513.pdf中之指令。
處理程序600檢查在一個給定封包中之所有射線的x、y和z方向。為求便利簡明說明,此係針對含有各有4個射線的4個列之封包來說明。應了解,處理程序600可針對較大或較小的射線群集實施。
首先,可計算一個四位元遮罩cm[0],其儲存第一列射線的x方向正負號(動作610)。這可以cm[0]=_mm_movemask_ps(dir[0][0])來達成;遮罩cm[0]可接著被測試,以檢測x方向之同調性(實施例612)。若所有的x方向都是正的(於此例中,cm[0]等於0)或負的(cm[0]是15),則控制權傳遞至動作620。否則,整個射線群集可作為一個非同調群集來處理(動作660,其對應
至第2圖之實施例212)。
相似地,y方向之遮罩可於動作620中以cm[1]=_mm_movemask_ps(dir[0][1])來計算,並且可於動作622中執行同調性測試。針對z方向,可於動作630中以cm[2]=_mm_movemask_ps(dir[0][2])來計算遮罩,並且可於動作632中執行同調性測試。
針對所有的其他列(例如,由dir[1]、dir[2]、及dir[3]所表示的列),方向遮罩可與先前已找出的第一列之遮罩cm[j]作比較。為了使整個群集同調,針對各個方向的這些遮罩必須是相同的。這可利用以下測試來完成(針對x方向):if(cm[0]!=_mm_movemask_ps(dir[1][0]))goto process_incoherent_group;//660
if(cm[0]!=_mm_movemask_ps(dir[2][0]))goto process_incoherent_group;//660
if(cm[0]!=_mm_movemask_ps(dir[3][0]))goto process_incoherent_group;//660
可針對y方向(使用cm[1])和z方向(使用cm[2])而進行類似測試。這些計算可於動作640中被完成。若發現群集是非同調的,則執行繼續至動作660,否則便於動作650中將群集作為同調者來處理。
第7圖繪示使用S.S.E.指令劃分非同調的射線群集的一個示範處理程序700,以供S.S.E.實作中之更進一步的處理。這對應於第6圖上之實施例660。雖然可為便利簡明說
明起見而參照第4圖之實施例400來說明第7圖,仍應了解,處理程序700亦可利用其他硬體及/或軟體實作來進行。為示範目的,此處理程序係針對一個射線封包中之各列來執行,例如繪示於第4圖中之4x4射線封包。
處理程序700可係以逐列處理準則來執行。各列可被分割成為數個同調的子群集。這可藉由產生一個遮罩(邏輯S.S.E.數值)來達到,此遮罩包含用於屬於目前子群集之射線的1以及用於其他射線的0。有可能此列中的全部4個射線都走向不同的方向,因此需要產生4個子群集。也有可能在某些列中的所有射線都會同調,因此可僅產生一個子群集。一種常見的情況是列中只有一個或兩個子族群。於下文中說明並繪示於第7圖中的處理程序可闡述此種常見情況。參看第4圖,列0和列1是同調的(列0都是正方向,且列1都是匹配方向),列2有兩個子群集,而列3含有三個子群集。
針對各列,於動作702中,判定出哪些射線是走向和此列中的第一個射線(其對應於指標0)相同的方向。這可藉由將針對各個座標x、y和z之個別遮罩與針對第一個射線的適當遮罩(藉由使用底下的推移操作器而獲得)作比較來達成。四個完全相同的數值被歸還,其可接著和完全遮罩作比較。這可藉由執行下面的6個操作來達成:m[0]=_mm_cmpge_ps(dir[i][0],_mm_setzero_ps());//x
m[1]=_mm_cmpge_ps(dir[i][1],_mm_setzero_ps());//y
m[2]=_mm_cmpge_ps(dir[i][2],_mm_setzero_ps());//z
m[0]=_mm_xor_ps(m[0],_mm_shuffle_ps(m[0],m[0],0)); m[1]=_mm_xor_ps(m[1],_mm_shuffle_ps(m[1],m[1],0)); m[2]=_mm_xor_ps(m[2],_mm_shuffle_ps(m[2],m[2],0));因此,針對匹配於第一個射線之方向的所有方向,邏輯變數中之適當項目(對於x方向是m[0],y方向是m[1],而z方向是m[2])將正好為零(含有所有的0)。
可於動作704中處理在動作702中被判定為走向和第一個射線相同之方向的所有射線。這可針對變量mact為1的所有射線來進行:mall=_mm_or_ps(_mm_or_ps(m[0],m[1]),m[2]);//1's if different from 1st
mact=_mm_andnot_ps(mall,sse_true);//sse_true contains all 1's
若此列中沒有任何非同調射線,如於動作706中所判定的,則可擷取下一列(動作720)。這可藉由以將_mm_movemask_ps(mall)與0比較來測試上文中所述之變量mall的正負號位元而判定。若其為真,則於給定列中沒有任何非同調射線。
否則,若於動作706中判定有非同調射線,則判定此行中是否正好有2個子群集,其僅在一個方向上不同(動作708)。這可藉由證實對於j=1、j=2、j=3僅有一個_mm_movemask_ps(m[j])數值非零來完成。
若於動作708中檢測到正好二個子群集,則於動作710中處理第二個子群集。例如,這可針對變量mall為1的所有
射線來完成。
否則(動作712),給定列中之所有可能的子群集皆可被辨識及處理。這可藉由使用數值m[0]、m[1]、和m[2]以構成各種遮罩並於處理給定列時使用這些遮罩來達成,但是只有在遮罩中有非零成分的時候。這些是7個遮罩數值,產生所有可能的子群集(除了於上文中所定義的一個之外):mact=_mm_and_ps(_mm_and_ps(m[0],m[1]),m[2]); mact=_mm_and_ps(_mm_andnot_ps(m[0],m[1]),m[2]); mact=_mm_and_ps(_mm_andnot_ps(m[1],m[0]),m[2]); mact=_mm_and_ps(_mm_andnot_ps(m[2],m[0]),m[1]); mact=_mm_andnot_ps(m[0],_mm_andnot_ps(m[2],m[1])); mact=_mm_andnot_ps(m[0],_mm_andnot_ps(m[1],m[2])); mact=_mm_andnot_ps(m[1],_mm_andnot_ps(m[2],m[0]));產生所有可能的子群集的其他邏輯表示亦可行。
在典型的實作中,處理程序700有效地處理最普遍的二種情況:
1)於一列中的所有4個射線皆同調(僅需處理一個子群集)。
2)僅有一個座標(x、y、或z)產生非同調數值。於此情況中會有兩個子群集要被處理,但是會避免於上段中藉由遮罩所定義的疲憊計算。
第8圖繪示一個示範電腦系統800,其包括影像分類與分段邏輯件802。影像分類與分段邏輯件802可為上文中所
提的處理程序之一。典型上,電腦系統800包含有一個處理器系統匯流排804,以供在處理器(CPU)820和晶片組806之間交流資訊。當述於本文中時,「晶片組」一詞可係以一種整體性描述耦接至CPU 820以進行所需系統功能的各種裝置之方式來使用。在一些實作中,CPU 820可為一個多核心晶片多處理器(CMP)。
典型上,晶片組806包含記憶體控制器808,其包含一個整合圖形控制器810。在一些實作中,圖形控制器810可被耦接至顯示器812。於其他實作中,圖形控制器810可被耦接至晶片組806並與記憶體控制器808分開,以使晶片組806包含與圖形控制器分開的一個記憶體控制器。此圖形控制器可以是離散組態的方式。典型上,記憶體控制器808可亦被耦接至主要記憶體814。在一些實作中,主要記憶體814可包括但不受限於隨機存取記憶體(RAM)、動態RAM(DRAM)、靜態RAM(SRAM)、同步DRAM(SDRAM)、雙資料率(DDR)SDRAM(DDR-SDRAM)、Rambus DRAM(RDRAM)或能夠支援高速資料緩衝的任何裝置。
如更進一步繪示的,晶片組806可包括一個輸入/輸出(I/0)控制器816。雖然係將晶片組806繪示為包括有分開的圖形控制器810和I/O控制器816,但於一實施例中,圖形控制器810可係整合在CPU 820內,以提供,例如,一個單晶片系統(SOC)。在一個不同的實施例中,圖形控制器810和I/O控制器816之功能被整合在晶片組806內。
於一實施例中,影像分類與分段邏輯件802可被實施在
電腦系統之內,其包括有整合在CPU內的一個記憶體控制器、整合在一個晶片組內的一個記憶體控制器和I/O控制器、以及一個系統單晶片。因此,熟於此技者可識得,第8圖係提供來例示一個實施例,並且不應以限制方式解釋。於一實施例中,圖形控制器810包括一個呈現引擎818,以呈現從影像分類與分段邏輯件802所接收到的資料以使此等資料能夠顯示。
前文中對一或多個實作之說明提供例示與說明,但不是有意要將本發明之範圍窮盡或限制於所揭示之刻板形式。有鑑於上文中之教示,數種修改體和變化體是有可能的,或者是可自實施本發明之各種實作之實施而獲得數種修改體和變化體。
雖然係將系統例示成包括有離散的構件,但這些構件亦可係以硬體、軟體/韌體、或其中的一些組合來實施。當以硬體實施時,系統的一些構件可被組合在某個晶片或裝置中。雖已討論數種示範實作,然而,本發明不應受限於明確提到的那些實作,反而是應涵括任何包括有多於一個的能夠處理、發送、輸出、或儲存資訊之處理器的裝置或介面。例如,可以可由處理器或區域系統之另一部份執行的軟體來實施處理程序。
例如,於第2、3、5、6和7圖中的至少一些動作可係由實施於機器可讀取媒體方式中之指令、或指令群來實施。除非有明確述明,否則沒有任何的於本申請案之詳細說明中之元件、行動或指令應被解釋成對本發明而言具關鍵性
或必要性。同時,當用於本文中時,冠詞“一個”係意欲要包括一個或多個項目。可對所請求之發明之上述已說明的實作做出變化和修改而實質上不脫離本發明之精神和原理。所有此些修改和變化係要包括於此,在本揭示內容之範疇內,並受下面申請專利範圍保障。
100‧‧‧實施例
102‧‧‧攝影機
104‧‧‧屏幕像素
106‧‧‧景象
108‧‧‧九個4x4射線之群集
200、300、500、600、700‧‧‧處理程序
202~212、302~310、502~504、610~660、702~720‧‧‧動作
400‧‧‧示範群集
402‧‧‧4x4像素
404‧‧‧精簡S.S.E.配置/資料
406、408‧‧‧區域
800‧‧‧電腦系統
802‧‧‧影像分類與分段邏輯件
808‧‧‧記憶體控制器
812‧‧‧顯示器
814‧‧‧記憶體
816‧‧‧I/O控制器
818‧‧‧呈現引擎
820‧‧‧處理器(CPU)
第1圖繪示從攝影機通過屏幕像素至一景象中之物件所追蹤的多個示範射線;第2圖繪示射線追蹤之一示範處理程序;第3圖繪示劃分非同調射線群集之一示範處理程序;第4圖概念性地繪示在各個座標(x、y和z)上具有不同射線方向的4x4像素之示範群集;第5圖繪示使用串流化SIMD擴充(S.S.E.)指令來劃分非同調射線群集的示範處理程序;第6圖繪示檢測給定射線群集中之同調性的示範處理程序;第7圖繪示用於一S.S.E.實作中之進一步處理的劃分非同調射線群集之示範處理程序;第8圖繪示包括有影像分類與分段邏輯件的示範電腦系統。
202、204、206、208、210、212‧‧‧動作
Claims (12)
- 一種用於處理射線之方法,其包含下列步驟:產生射線之一群集;為該群集中之各射線判定一起始點和一方向;若於射線之一群集中之所有射線在x、y、和z各座標上皆係於相同方向中行進,則判定射線之該群集同調;否則便判定射線之一群集非同調,且以不同於同調射線之該群集之方式遍歷非同調射線之該群集;以及電子式地處理該等同調和不同調射線,以在一個顯示器上描繪影像。
- 如申請專利範圍第1項之方法,其中判定射線之該群集之同調性之步驟進一步地包含:依據(所有dxi>0或所有dxi<0)且(所有dyi>0或所有dyi<0)且(所有dzi>0或所有dzi<0)來判定射線之該群集的同調性,其中i為1到N,其中N=一封包中之射線數目。
- 如申請專利範圍第1項之方法,其中否則便判定射線之一群集非同調且以不同於同調射線之該群集之方式遍歷非同調射線之該群集之步驟進一步地包含:否則若該群集中的一些方向座標為零,便判定射線之一群集非同調,且以不同於同調射線之該群集之方式遍歷非同調射線之該群集。
- 如申請專利範圍第1項之方法,其中判定射線之一群集非同調且以不同於同調射線之該群集之方式遍歷非同 調射線之該群集之步驟進一步地包含:基於該同調性質而將該群集劃分為數個子群集。
- 如申請專利範圍第1項之方法,其中判定射線之一群集非同調且以不同於同調射線之該群集之方式遍歷非同調射線之該群集之步驟進一步地包含:合併針對不同子群集之結果。
- 如申請專利範圍第1項之方法,其中將原始子群集分割成數個一致子群集之步驟進一步地包含:使用串流化單指令/多資料擴充(S.S.E.)指令來劃分非同調群集。
- 如申請專利範圍第1項之方法,其中為該群集中之各射線判定一起始點和一方向之步驟進一步地包含:將該等資料重整為供一S.S.E.實施所用之一格式,其中可針對每四個射線將各原點和方向向量以三個S.S.E.數來表示。
- 如申請專利範圍第1項之方法,其中使用S.S.E.指令而將原始子群集分割成數個一致子群集之步驟進一步地包含:以逐列方式處理群集;判定該列中有哪些項目屬於和該列中之第一項目相同的子群集;將屬於和該列中之第一項目相同的子群集的所有項目作為一個子群集來處理;檢測該列中是否有一、二或更多個子群集; 假如只有兩個子群集,則處理第二子群集;以及假如有多於兩個的子群集,則使用邏輯遮罩標出該群集中的所有可能的子群集。
- 如申請專利範圍第1項之方法,其中使用S.S.E.指令而將原始子群集分割成數個一致子群集之步驟進一步地包含:辨識最普遍的數個情況,並將演算法最佳化,以有效地處理它們。
- 如申請專利範圍第8項之方法,其中使用S.S.E.邏輯遮罩標出該群集中的所有可能的子群集來將原始子群集分割成數個一致子群集之步驟進一步地包含:使用S.S.E.數值陣列來找出所有可能的邏輯遮罩;以及在這些計算上僅使用S.S.E.運算。
- 一種包括有相關資料之電腦可存取媒體,其中該等資料被存取時致使一機器執行下列步驟:產生射線之一群集;為該群集中之各射線判定一起始點和一方向;若於射線之一群集中之所有射線對於x、y、和z各座標上皆係於相同方向(正或負其中之一)中行進,則判定射線之該群集同調;否則便判定射線之一群集非同調,且以不同於同調射線之該群集之方式遍歷非同調射線之該群集;以及電子式地處理該等同調和不同調射線,以在一個顯 示器上描繪影像。
- 一種用於處理射線之系統,其包含:一個圖形控制器,用以:產生射線之一群集、為該群集中之各射線判定一起始點和一方向、若於射線之一群集中之所有射線對於x、y、和z各座標上皆係於相同方向(正或負其中之一)中行進,則判定射線之該群集同調、否則便判定射線之一群集非同調,且以不同於同調射線之該群集之方式遍歷非同調射線之該群集、以及電子式地處理該等同調和不同調射線,以在一個顯示器上描繪影像。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/301,699 US20070132754A1 (en) | 2005-12-12 | 2005-12-12 | Method and apparatus for binary image classification and segmentation |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200745992A TW200745992A (en) | 2007-12-16 |
TWI395155B true TWI395155B (zh) | 2013-05-01 |
Family
ID=38138817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW095146255A TWI395155B (zh) | 2005-12-12 | 2006-12-11 | 用於處理射線之方法與系統以及包括相關聯資料之機器可存取媒體 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20070132754A1 (zh) |
EP (1) | EP1960969A2 (zh) |
JP (1) | JP4778561B2 (zh) |
KR (1) | KR100964408B1 (zh) |
CN (1) | CN101331523B (zh) |
TW (1) | TWI395155B (zh) |
WO (1) | WO2007070456A2 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7830379B2 (en) * | 2006-09-19 | 2010-11-09 | Caustic Graphics, Inc. | Architectures for parallelized intersection testing and shading for ray-tracing rendering |
US8674987B2 (en) * | 2006-09-19 | 2014-03-18 | Caustic Graphics, Inc. | Dynamic ray population control |
US8018457B2 (en) * | 2006-09-19 | 2011-09-13 | Caustic Graphics, Inc. | Ray tracing system architectures and methods |
US7969434B2 (en) | 2006-09-19 | 2011-06-28 | Caustic Graphics, Inc. | Method, apparatus, and computer readable medium for accelerating intersection testing in ray-tracing rendering |
US9665970B2 (en) | 2006-09-19 | 2017-05-30 | Imagination Technologies Limited | Variable-sized concurrent grouping for multiprocessing |
US9478062B2 (en) | 2006-09-19 | 2016-10-25 | Imagination Technologies Limited | Memory allocation in distributed memories for multiprocessing |
US8237711B2 (en) * | 2007-11-19 | 2012-08-07 | Caustic Graphics, Inc. | Tracing of shader-generated ray groups using coupled intersection testing |
US8390618B2 (en) * | 2008-03-03 | 2013-03-05 | Intel Corporation | Technique for improving ray tracing performance |
US8217935B2 (en) | 2008-03-31 | 2012-07-10 | Caustic Graphics, Inc. | Apparatus and method for ray tracing with block floating point data |
US8421801B2 (en) * | 2008-09-09 | 2013-04-16 | Caustic Graphics, Inc. | Ray tracing using ray-specific clipping |
US8482561B2 (en) * | 2008-09-22 | 2013-07-09 | Caustic Graphics, Inc. | Systems and methods for a ray tracing shader API |
US8379022B2 (en) | 2008-09-26 | 2013-02-19 | Nvidia Corporation | Fragment shader for a hybrid raytracing system and method of operation |
KR101610194B1 (ko) * | 2008-10-15 | 2016-04-07 | 삼성전자주식회사 | 영상처리를 위한 데이터 처리 장치 및 방법 |
CN102800050B (zh) * | 2011-05-25 | 2016-04-20 | 国基电子(上海)有限公司 | N维特征空间连通性计算方法 |
US10061618B2 (en) | 2011-06-16 | 2018-08-28 | Imagination Technologies Limited | Scheduling heterogenous computation on multithreaded processors |
GB2505818B (en) | 2011-06-16 | 2016-02-10 | Imagination Tech Ltd | Graphics processor with non-blocking concurrent architecture |
US9424685B2 (en) | 2012-07-31 | 2016-08-23 | Imagination Technologies Limited | Unified rasterization and ray tracing rendering environments |
GB2513698B (en) | 2013-03-15 | 2017-01-11 | Imagination Tech Ltd | Rendering with point sampling and pre-computed light transport information |
US8947447B1 (en) | 2014-02-13 | 2015-02-03 | Raycast Systems, Inc. | Computer hardware architecture and data structures for ray binning to support incoherent ray traversal |
US10019342B2 (en) * | 2015-12-24 | 2018-07-10 | Intel Corporation | Data flow programming of computing apparatus with vector estimation-based graph partitioning |
US9990691B2 (en) * | 2016-02-17 | 2018-06-05 | Intel Corporation | Ray compression for efficient processing of graphics data at computing devices |
US11276224B2 (en) * | 2020-04-17 | 2022-03-15 | Samsung Electronics Co., Ltd. | Method for ray intersection sorting |
US11295509B2 (en) * | 2020-06-29 | 2022-04-05 | Imagination Technologies Limited | Intersection testing in a ray tracing system using multiple ray bundle intersection tests |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6104540A (en) * | 1996-11-05 | 2000-08-15 | Olympus Optical Co., Ltd. | Decentered optical system |
US6092059A (en) * | 1996-12-27 | 2000-07-18 | Cognex Corporation | Automatic classifier for real time inspection and classification |
US6389377B1 (en) * | 1997-12-01 | 2002-05-14 | The Johns Hopkins University | Methods and apparatus for acoustic transient processing |
US6313841B1 (en) * | 1998-04-13 | 2001-11-06 | Terarecon, Inc. | Parallel volume rendering system with a resampling module for parallel and perspective projections |
US6502086B2 (en) * | 1999-01-04 | 2002-12-31 | International Business Machines Corporation | Mapping binary objects in extended relational database management systems with relational registry |
US6556200B1 (en) * | 1999-09-01 | 2003-04-29 | Mitsubishi Electric Research Laboratories, Inc. | Temporal and spatial coherent ray tracing for rendering scenes with sampled and geometry data |
JP2001092992A (ja) * | 1999-09-24 | 2001-04-06 | Ricoh Co Ltd | 3次元形状処理方法およびその方法を実行するためのプログラムを記録した記録媒体 |
JP4018300B2 (ja) * | 1999-09-27 | 2007-12-05 | ザイオソフト株式会社 | 画像処理装置 |
US20020190984A1 (en) * | 1999-10-01 | 2002-12-19 | Larry D. Seiler | Voxel and sample pruning in a parallel pipelined volume rendering system |
US6819793B1 (en) * | 2000-06-30 | 2004-11-16 | Intel Corporation | Color distribution for texture and image compression |
US6477221B1 (en) * | 2001-02-16 | 2002-11-05 | University Of Rochester | System and method for fast parallel cone-beam reconstruction using one or more microprocessors |
US7102636B2 (en) * | 2001-03-31 | 2006-09-05 | Intel Corporation | Spatial patches for graphics rendering |
US20030152897A1 (en) * | 2001-12-20 | 2003-08-14 | Bernhard Geiger | Automatic navigation for virtual endoscopy |
US20030206184A1 (en) * | 2002-05-06 | 2003-11-06 | Reshetov Alexander V. | Displaying content in different resolutions |
US7098907B2 (en) * | 2003-01-30 | 2006-08-29 | Frantic Films Corporation | Method for converting explicitly represented geometric surfaces into accurate level sets |
US20050143965A1 (en) * | 2003-03-14 | 2005-06-30 | Failla Gregory A. | Deterministic computation of radiation doses delivered to tissues and organs of a living organism |
EP1638459A2 (en) * | 2003-06-11 | 2006-03-29 | Case Western Reserve University | Computer-aided-design of skeletal implants |
US7349563B2 (en) * | 2003-06-25 | 2008-03-25 | Siemens Medical Solutions Usa, Inc. | System and method for polyp visualization |
US7372552B2 (en) * | 2003-12-22 | 2008-05-13 | American Gem Society | Methods, apparatus, and systems for evaluating gemstones |
US7739623B2 (en) * | 2004-04-15 | 2010-06-15 | Edda Technology, Inc. | Interactive 3D data editing via 2D graphical drawing tools |
US7990380B2 (en) * | 2004-09-30 | 2011-08-02 | Intel Corporation | Diffuse photon map decomposition for parallelization of global illumination algorithm |
US7627620B2 (en) * | 2004-12-16 | 2009-12-01 | Oracle International Corporation | Data-centric automatic data mining |
KR100655491B1 (ko) * | 2004-12-21 | 2006-12-11 | 한국전자통신연구원 | 음성인식 시스템에서의 2단계 발화 검증 방법 및 장치 |
US7969437B2 (en) * | 2004-12-28 | 2011-06-28 | Intel Corporation | Method and apparatus for triangle representation |
US7348975B2 (en) * | 2004-12-28 | 2008-03-25 | Intel Corporation | Applications of interval arithmetic for reduction of number of computations in ray tracing problems |
US7414624B2 (en) * | 2005-10-28 | 2008-08-19 | Intel Corporation | Apparatus and method for a frustum culling algorithm suitable for hardware implementation |
US8064694B2 (en) * | 2006-06-21 | 2011-11-22 | Hewlett-Packard Development Company, L.P. | Nonhuman animal integument pixel classification |
-
2005
- 2005-12-12 US US11/301,699 patent/US20070132754A1/en not_active Abandoned
-
2006
- 2006-12-06 KR KR1020087014176A patent/KR100964408B1/ko not_active IP Right Cessation
- 2006-12-06 WO PCT/US2006/047137 patent/WO2007070456A2/en active Application Filing
- 2006-12-06 EP EP06845162A patent/EP1960969A2/en not_active Withdrawn
- 2006-12-06 CN CN200680046816.1A patent/CN101331523B/zh not_active Expired - Fee Related
- 2006-12-06 JP JP2008539132A patent/JP4778561B2/ja not_active Expired - Fee Related
- 2006-12-11 TW TW095146255A patent/TWI395155B/zh not_active IP Right Cessation
Non-Patent Citations (4)
Title |
---|
"Efficient Ray Tracing of Volume Data",MARC LEVOY,ACM Transactions on Graphics, Vol. 9, No. 3, July 1990, Pages 245-261。 * |
"Fast Ray Tracing by Ray Classification ",James Arvo David Kirk,Computer Graphics, Volume 21, Number 4,SIGGRAPH '87, Anaheim, July 27-31, 1987。 * |
"Hybrid Scheduling for Parallel Rendering using Coherent Ray Tasks",Proceedings of the 1999 IEEE symposium on Parallel visualization and graphics,Pages: 21-28,Year of Publication: 1999。 * |
"Using SSE and SSE2: Misconceptions and Reality",March 2001。 * |
Also Published As
Publication number | Publication date |
---|---|
TW200745992A (en) | 2007-12-16 |
US20070132754A1 (en) | 2007-06-14 |
EP1960969A2 (en) | 2008-08-27 |
JP4778561B2 (ja) | 2011-09-21 |
WO2007070456A2 (en) | 2007-06-21 |
JP2009515261A (ja) | 2009-04-09 |
KR20080069681A (ko) | 2008-07-28 |
WO2007070456A3 (en) | 2007-11-01 |
CN101331523B (zh) | 2014-10-01 |
KR100964408B1 (ko) | 2010-06-15 |
CN101331523A (zh) | 2008-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI395155B (zh) | 用於處理射線之方法與系統以及包括相關聯資料之機器可存取媒體 | |
US11508076B2 (en) | Learning rigidity of dynamic scenes for three-dimensional scene flow estimation | |
US20200334502A1 (en) | Training a neural network to predict superpixels using segmentation-aware affinity loss | |
JP7421585B2 (ja) | 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット | |
US20200302677A1 (en) | Robust ray-triangle intersection | |
US11106261B2 (en) | Optimal operating point estimator for hardware operating under a shared power/thermal constraint | |
US7844106B2 (en) | Method and system for determining poses of objects from range images using adaptive sampling of pose spaces | |
US10614613B2 (en) | Reducing noise during rendering by performing parallel path space filtering utilizing hashing | |
US11790609B2 (en) | Reducing level of detail of a polygon mesh to decrease a complexity of rendered geometry within a scene | |
TW201447776A (zh) | 透過圖形處理單元執行物件偵測運算 | |
US11847733B2 (en) | Performance of ray-traced shadow creation within a scene | |
US20230089800A1 (en) | Performing testing utilizing staggered clocks | |
US10872394B2 (en) | Frequent pattern mining method and apparatus | |
WO2021262427A1 (en) | Early culling for ray tracing | |
WO2019204352A1 (en) | Improving realism of scenes involving water surfaces during rendering | |
CN113822975A (zh) | 用于对图像进行有效采样的技术 | |
US20170116774A1 (en) | Method and apparatus generating acceleration structure | |
Kim et al. | Optimizing seam carving on multi-GPU systems for real-time content-aware image resizing | |
US20220395748A1 (en) | Projective hash maps | |
US20240013033A1 (en) | Large scale mask optimization with convolutional fourier neural operator and litho-guided self learning | |
US20230394647A1 (en) | Determining contour edges for an image | |
US20240104790A1 (en) | Optimizing grid-based compute graphs | |
US20240104847A1 (en) | Techniques for parallel edge decimation of a mesh | |
US20230385232A1 (en) | Mapping logical and physical processors and logical and physical memory | |
US20240062534A1 (en) | Performing visual relational reasoning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |