TW202334896A - 使用可壓縮性預測的葉節點壓縮 - Google Patents

使用可壓縮性預測的葉節點壓縮 Download PDF

Info

Publication number
TW202334896A
TW202334896A TW112101032A TW112101032A TW202334896A TW 202334896 A TW202334896 A TW 202334896A TW 112101032 A TW112101032 A TW 112101032A TW 112101032 A TW112101032 A TW 112101032A TW 202334896 A TW202334896 A TW 202334896A
Authority
TW
Taiwan
Prior art keywords
nodes
leaf
node
leaf node
compressibility
Prior art date
Application number
TW112101032A
Other languages
English (en)
Inventor
艾迪穆隆 瑞麥許巴布
斯里哈里巴布 阿拉
大衛柯克 麥卡利斯特
Original Assignee
美商高通公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商高通公司 filed Critical 美商高通公司
Publication of TW202334896A publication Critical patent/TW202334896A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Abstract

本文呈現的態樣涉及用於圖形處理的方法和設備,包括裝置,例如GPU或CPU。該裝置可將場景中的多個圖元之每一者圖元分配到多個邊界框中的一個邊界框中,該多個邊界框之每一者邊界框與包括內部節點和葉節點的多個節點相對應。該裝置亦可辨識該多個節點之每一者節點是該內部節點中的一個內部節點還是該葉節點中的一個葉節點。另外,若該節點是該葉節點中的一個葉節點,則該裝置可估計該多個節點之每一者節點的可壓縮性,該節點的該可壓縮性與該節點是否是可壓縮的相對應。若該多個節點之每一者節點被估計為可壓縮的,則該裝置亦可對與該節點相對應的資料進行壓縮。

Description

使用可壓縮性預測的葉節點壓縮
本專利申請案主張於2022年2月4日提出申請的、標題為「LEAF NODE COMPRESSION WITH COMPRESSIBILITY PREDICTION」的美國專利申請案第17/650,071號的權益,以引用方式將上述美國專利申請案的完整內容明確地併入本文。
概括而言,本案內容涉及處理系統,並且更具體而言,本案內容涉及用於圖形處理的一或多個技術。
計算設備經常執行圖形及/或顯示處理(例如,利用圖形處理單元(GPU)、中央處理單元(CPU)、顯示處理器等)來渲染和顯示視覺內容。此種計算設備可包括例如電腦工作站、諸如智慧手機的行動電話、嵌入式系統、個人電腦、平板電腦和視訊遊戲控制台。GPU被配置為執行包括一或多個處理階段的圖形處理管線,該等處理階段一起操作以執行圖形處理命令並輸出訊框。中央處理單元(CPU)可經由向GPU發出一或多個圖形處理命令來控制GPU的操作。現代CPU通常能夠並存執行多個應用,多個應用之每一者應用皆可能需要在執行期間使用GPU。顯示處理器被配置為:將從CPU接收的數位資訊轉換成類比值並且可向顯示面板發出命令以用於顯示視覺內容。提供內容以供在顯示器上進行視覺呈現的設備可使用GPU及/或顯示處理器。
設備的GPU可被配置為在圖形處理管線中執行該等程序。此外,顯示處理器或顯示處理單元(DPU)可被配置為執行顯示處理的程序。然而,隨著無線通訊和更小的手持設備的出現,對改進的圖形或顯示處理的需求已經發展得越來越大。
下文提供了對一或多個態樣的簡化的概括以提供對該等態樣的基本理解。本發明內容不是對所有預期態樣的詳盡概述,並且既不意欲標識所有態樣的關鍵或重要元素亦不意欲描述任何或全部態樣的範圍。其唯一目的是用簡化的形式呈現一或多個態樣的一些構思,作為稍後提供的更詳細說明的前序。
在本案內容的態樣中,提供了方法、電腦可讀取媒體和裝置。裝置可是圖形處理單元(GPU)、GPU或者任何可執行圖形處理的裝置。該裝置可將場景中的多個圖元之每一者圖元分配到多個邊界框中的一個邊界框中,該多個圖元之每一者圖元包括一或多個頂點,該多個邊界框之每一者邊界框與包括一或多個內部節點和一或多個葉節點的多個節點相對應。該裝置亦可辨識該多個節點之每一者節點是該一或多個內部節點中的一個內部節點還是該一或多個葉節點中的一個葉節點。另外,若該節點是該一或多個葉節點中的一個葉節點,則該裝置可估計該多個節點之每一者節點的可壓縮性,該節點的該可壓縮性與該節點是否是可壓縮的相對應。若該多個節點之每一者節點被估計為可壓縮的,則該裝置亦可對與該節點相對應的資料進行壓縮。該裝置亦可在對與該多個葉節點之每一者節點相對應的資料進行壓縮時調整以下各項中的至少一個:該多個圖元的位置或者該多個圖元的頂點順序。另外,該裝置可在儲存與該多個節點之每一者節點相對應的資料之前對與該節點相對應的資料進行編碼,使得與該節點相對應的資料以經編碼的格式儲存。該裝置亦可在對與該多個節點之每一者節點相對應的資料進行壓縮時儲存與該節點相對應的資料。
在附圖和下文的描述中闡述了本案內容的一或多個實例的細節。本案內容的其他特徵、目標和優點根據描述、圖及根據請求項將是顯而易見的。
圖形處理的某些態樣可利用不同類型的渲染技術,例如光線追蹤。光線追蹤是一種渲染技術,其經由追蹤圖像平面中像元的光的路徑並模擬其與場景中的物件相遇的效果來產生圖像。如此,光線追蹤可產生逼真的照明效果。光線追蹤有很多好處,包括:提供更逼真的效果(例如反射)、改善全域照明、改善光澤效果、改善景深等。光線追蹤亦可有助於產生不同類型的改善的陰影,例如硬陰影及/或軟陰影。光線追蹤的一些效果可包括間接照明和用於圖示焦散的能力(即光線從表面反射或折射時出現的光和顏色的圖案)。因此,光線追蹤可引起產生照片般逼真的圖像。光線追蹤可由圖形處理或資料處理中的多個不同處理器使用,不同處理器例如圖形處理單元(GPU)或中央處理單元(CPU)。光線追蹤利用(幾何)圖元(例如點、線或多邊形,例如三角形或四邊形)來表示複雜物件。在本案內容中,三角形被呈現為圖元的實例。然而,所揭示的技術同樣適用於包括任何其他形狀的其他幾何圖元。三角形圖元可包括三個頂點,並且三個頂點之每一者頂點皆可包括3D坐標,例如,表示為三個浮點值的有序集合。為了提高光線追蹤效能,圖元資料,例如幾何資料,例如(幾何)圖元的頂點坐標值、全域或局部辨識符或索引等,可儲存在某些節點中。例如,圖元資料可直接儲存在固定大小的塊中的葉節點中,該等固定大小的塊在大小上等於例如GPU中的快取記憶體行。如此,GPU能夠獲取快取記憶體行並對其進行高效地存取。對於特定類型的GPU,一定數量的圖元/三角形可儲存在特定大小的葉節點中。一個挑戰可能是將一定數量的圖元/三角形的一定數量的資料裝入較小大小的記憶體中。在光線追蹤的某些情況下,在嘗試不同的資料組合(三角形及/或頂點)時,可能會發現可壓縮到指定(目標)大小的特定組合。然而,當資料不能被壓縮到指定的大小時,可嘗試每一種組合以決定資料不是可壓縮的。該程序消耗了很多循環,該等循環耗盡了所有的組合,並且可能導致沒有有用的輸出。在某些情況下,少於一半的三角形節點可是可壓縮的。與單獨處理壓縮的節點相比,使該數量的節點(例如,50%的節點)減少可能會花費大量時間。此外,可能無法即時執行壓縮以在分配的光線追蹤訊框時間內嘗試所有排列。本案內容的態樣可在不損害光線追蹤效能的情況下減少用於光線追蹤程序的壓縮時間的量。例如,本案內容的態樣可減少壓縮時間的量,同時保持在葉節點中打包/儲存期望量的圖元/三角形,使得光線追蹤效能不被損害。為此,本案內容的態樣可在壓縮階段之前引入預測功能。根據本文呈現的態樣的預測功能可預測葉節點可壓縮性以便過濾掉大部分不可壓縮的節點。本文呈現的態樣亦可在不去除任何可壓縮節點的情況下預測葉節點可壓縮性。此外,根據本文呈現的態樣的預測功能可能不會返回關於節點壓縮的任何不準確(例如,誤否認)。
參考附圖在下文中對系統、裝置、電腦程式產品及方法的各個態樣進行了更加全面的描述。然而,本案內容可經由多種不同的形式來實現,而不應當解釋為受限於本案內容通篇提供的任何特定結構或功能。相反,提供該等態樣以使得本案內容將是透徹和完整的,並且將向本領域技藝人士全面地傳達本案內容的範圍。基於本文中的教導,本領域技藝人士應當意識到的是,本案內容的範圍意欲涵蓋本文中揭示的系統、裝置、電腦程式產品及方法的任意態樣,不管該等態樣是獨立地實現的還是與本案內容的其他態樣結合地實現的。例如,使用本文中闡述的任何數量的態樣,可實現裝置或可實施方法。此外,本案內容的範圍意欲涵蓋使用除了本文提供的揭示內容的各個態樣以外或者不同於本文提供的揭示內容的各個態樣的其他結構、功能,或結構與功能所實施的此種裝置或方法。本文揭示的任何態樣皆可經由請求項中的一或多個要素來體現。
儘管本文中描述了各個態樣,但是該等態樣的多種變化和排列皆落入本案內容的範圍之內。儘管提到了本案內容的態樣的一些潛在益處和優點,但是本案內容的範圍並不意欲局限於特定的益處、使用或目標。相反,本案內容的態樣意欲廣泛地應用於不同的無線技術、系統配置、網路和傳輸協定,對其中的一些經由實例的方式在圖中及在下文的描述中進行了說明。具體實施方式和附圖僅是對本案內容的說明而非限制性的,本案內容的範圍是經由所附專利申請範圍來定義的。
參考各種裝置和方法呈現了數個態樣。該等裝置和方法由各個區塊、部件、電路、程序、演算法等(統稱為「元素」)在下文的具體實施方式中進行了描述,並在附圖中來示出。該等元素可使用電子硬體、電腦軟體或其任意組合來實現。至於該等元素是實現為硬體還是軟體取決於對整個系統所施加的特定的應用和設計約束。
舉例而言,元素或者元素的任何部分或者元素的任何組合可實現為包括一或多個處理器的「處理系統」(亦可被稱為處理單元)。處理器的實例包括:微處理器、微控制器、圖形處理單元(GPU)、中央處理單元(CPU)、通用GPU(GPGPU)、中央處理單元(CPU)、應用處理器、數位信號處理器(DSP)、精簡指令集運算(RISC)處理器、片上系統(SoC)、基頻處理器、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、可程式設計邏輯裝置(PLD)、狀態機、閘控邏輯、個別硬體電路、及被配置為執行本揭示案全文中描述的各種功能的其他合適的硬體。處理系統中的一或多個處理器可執行軟體。無論是被稱為軟體、韌體、中介軟體、微代碼、硬體描述語言或其他名稱,軟體應可被廣義地解釋為意指指令、指令集、代碼、程式碼片段、程式碼、程式、副程式、軟體部件、應用程式、軟體應用程式、套裝軟體、常式、子常式、對象、可執行檔、執行執行緒、程序、功能等。術語應用可指軟體。如本文所述,一或多個技術可指示被配置為執行一或多個功能的應用,即軟體。在此種實例中,應用可儲存在記憶體上,例如處理器的片上記憶體、系統記憶體或任何其他記憶體。本文描述的硬體,例如處理器,可被配置為執行應用。例如,應用可被描述為包括代碼,當由硬體執行時,該代碼使硬體執行本文描述的一或多個技術。作為實例,硬體可存取來自記憶體的代碼,並執行從記憶體存取的代碼以執行本文描述的一或多個技術。在一些實例中,部件在本案內容中被標識。在此種實例中,部件可是硬體、軟體或者其組合。部件可是單獨的部件或單個部件的子部件。
相應地,在本文描述的一或多個實例,可用硬體、軟體或其任意組合來實現所描述的功能。若用軟體實現,則功能可儲存在電腦可讀取媒體上或者編碼成電腦可讀取媒體上的一或多個指令或代碼。電腦可讀取媒體包括電腦儲存媒體。儲存媒體可是可由電腦存取的任何可用媒體。經由舉例而非限制的方式,此種電腦可讀取媒體可包括隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電子可抹除可程式設計ROM(EEPROM)、光碟儲存器、磁碟儲存器、其他磁儲存裝置、上述類型的電腦可讀取媒體的組合,或者可用於儲存可由電腦存取的具有指令或資料結構形式的電腦可執行代碼的任何其他媒體。
概括而言,本案內容描述了用於在單個設備或多個設備中具有圖形處理管線、改進圖形內容的渲染及/或減少處理單元(即被配置為執行本文描述的一或多個技術的任何處理單元,例如GPU)的負載的技術。例如,本案內容描述了用於在使用圖形處理的任何設備中進行圖形處理的技術。本揭示案全文中描述了其他示例益處。
如本文中所使用的,術語「內容」的實例可指示「圖形內容」、「圖像」,反之亦然。無論術語是用作形容詞、名詞還是其他詞性,皆是如此。在一些實例中,如本文中所使用的,術語「圖形內容」可指示由圖形處理管線的一或多個程序產生的內容。在一些實例中,如本文中所使用的,術語「圖形內容」可指示由被配置為執行圖形處理的處理單元產生的內容。在一些實例中,如本文中所使用的,術語「圖形內容」可指示由圖形處理單元產生的內容。
在一些實例中,如本文中所使用的,術語「顯示內容」可指示由被配置為執行顯示處理的處理單元產生的內容。在一些實例中,如本文中所使用的,術語「顯示內容」可指示由顯示處理單元產生的內容。圖形內容可被處理為成為顯示內容。例如,圖形處理單元可將圖形內容(例如訊框)輸出到緩衝器(其可被稱為訊框緩衝器)。顯示處理單元可從緩衝器中讀取圖形內容,例如一或多個訊框,並且對其執行一或多個顯示處理技術以產生顯示內容。例如,顯示處理單元可被配置為對一或多個經渲染的層執行合成以產生訊框。作為另一實例,顯示處理單元可被配置為:將兩個或兩個以上層組成、混合或以其他方式結合在一起成為單個訊框。顯示處理單元可被配置為對訊框執行縮放,例如放大或縮小。在一些實例中,訊框可指層。在其他實例中,訊框可指已經被混合在一起以形成成框的兩個或兩個以上層,亦即訊框包括兩個或兩個以上層,並且包括兩個或兩個以上層的訊框隨後可被混合。
圖1是示出被配置為實現本案內容的一或多個技術的示例內容產生系統100的方塊圖。內容產生系統100包括設備104。設備104可包括用於執行本文描述的各種功能的一或多個部件或電路。在一些實例中,設備104的一或多個部件可是SOC的部件。設備104可包括被配置為執行本案內容的一或多個技術的一或多個部件。在圖示實例中,設備104可包括處理單元120、內容編碼器/解碼器122和系統記憶體124。在一些態樣,設備104可包括多個可選部件,例如通訊介面126、收發機132、接收器128、發射器130、顯示處理器127及一或多個顯示器131。對顯示器131的提及可指示一或多個顯示器131。例如,顯示器131可包括單個顯示器或多個顯示器。顯示器131可包括第一顯示器和第二顯示器。第一顯示器可是左眼顯示器並且第二顯示器可是右眼顯示器。在一些實例中,第一顯示器和第二顯示器可接收不同的訊框以在其上呈現。在其他實例中,第一顯示器和第二顯示器可接收相同的訊框以在其上呈現。在另外的實例中,圖形處理的結果可不顯示在設備上,例如,第一和第二顯示器可能不接收任何訊框以在其上呈現。替代地,訊框或圖形處理結果可被傳輸到另一設備。在一些態樣,此可被稱為拆分渲染。
處理單元120可包括內部記憶體121。處理單元120可被配置為執行圖形處理,例如在圖形處理管線107中。內容編碼器/解碼器122可包括內部記憶體123。在一些實例中,設備104可包括顯示處理器,例如顯示處理器127,用於對由處理單元120產生的一或多個訊框在被一或多個顯示器131呈現之前,執行一或多個顯示處理技術。顯示處理器127可被配置為執行顯示處理。例如,顯示處理器127可被配置為:對由處理單元120產生的一或多個訊框執行一或多個顯示處理技術。一或多個顯示器131可被配置為:顯示或以其他方式呈現由顯示處理器127處理的訊框。在一些實例中,一或多個顯示器131可包括以下各項中的一或多項:液晶顯示器(LCD)、等離子顯示器、有機發光二極體(OLED)顯示器、投影顯示裝置、增強現實顯示裝置、虛擬實境顯示裝置、頭戴式顯示器,或者任何其他類型的顯示裝置。
處理單元120和內容編碼器/解碼器122外部的記憶體,例如系統記憶體124,可是處理單元120和內容編碼器/解碼器122可存取的。例如,處理單元120和內容編碼器/解碼器122可被配置為讀取及/或寫入外部記憶體,例如系統記憶體124。處理單元120和內容編碼器/解碼器122可經由匯流排通訊地耦合至系統記憶體124。在一些實例中,處理單元120和內容編碼器/解碼器122可經由匯流排或不同的連接彼此通訊耦合。
內容編碼器/解碼器122可被配置為:從任何源(例如系統記憶體124及/或通訊介面126)接收圖形內容。系統記憶體124可被配置為:儲存接收到的編碼或解碼的圖形內容。內容編碼器/解碼器122可被配置為:例如從系統記憶體124及/或通訊介面126以編碼的像元資料的形式接收編碼或解碼的圖形內容。內容編碼器/解碼器122可被配置為編碼或解碼任何圖形內容。
內部記憶體121或系統記憶體124可包括一或多個揮發性或非揮發性記憶體或儲存裝置。在一些實例中,內部記憶體121或系統記憶體124可包括RAM、SRAM、DRAM、可抹除可程式設計ROM(EPROM)、電子可抹除可程式設計ROM(EEPROM)、快閃記憶體、磁資料媒體或光學儲存媒體,或者任何其他類型的記憶體。
根據一些實例,內部記憶體121或系統記憶體124可是非暫時性儲存媒體。術語「非暫時性」可指示儲存媒體不體現在載波或傳播的信號中。然而,術語「非暫時性」不應被解釋為意味著內部記憶體121或系統記憶體124是不可移動的或其內容是靜態的。作為一個實例,系統記憶體124可被從設備104移除並且移動到另一設備。作為另一實例,系統記憶體124可能不能從設備104移除。
處理單元120可是中央處理單元(CPU)、圖形處理單元(GPU)、通用GPU(GPGPU),或者是可被配置為執行圖形處理的任何其他處理單元。在一些實例中,處理單元120可整合到設備104的主機板中。在一些實例中,處理單元120可存在於安裝在設備104的主機板中的埠中的圖形卡上,或者可以其他方式併入在被配置為與設備104交互動操作的周邊設備中。處理單元120可包括一或多個處理器,例如一或多個微處理器、GPU、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、算數邏輯單位(ALU)、數位信號處理器(DSP)、離散邏輯、軟體、硬體、韌體、其他等效的整合或離散邏輯電路系統,或者上述各者的任何組合。若該等技術部分地以軟體實現,則處理單元120可將用於軟體的指令儲存在合適的、非暫時性電腦可讀取儲存媒體(例如,內部記憶體121)中,並可使用一或多個處理器以硬體方式執行指令以執行本案內容的技術。前述任何一種,包括硬體、軟體、硬體和軟體的組合等,皆可被認為是一或多個處理器。
內容編碼器/解碼器122可是被配置為執行內容解碼的任何處理單元。在一些實例中,內容編碼器/解碼器122可整合到設備104的主機板中。內容編碼器/解碼器122可包括一或多個處理器,例如一或多個微處理器、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、算數邏輯單位(ALU)、數位信號處理器(DSP)、視訊處理器、離散邏輯、軟體、硬體、韌體、其他等效的整合或離散邏輯電路,或者上述各者的任何組合。若該等技術部分地以軟體實現,則內容編碼器/解碼器122可將用於軟體的指令儲存在合適的、非暫時性電腦可讀取儲存媒體(例如,內部記憶體123)中,並可使用一或多個處理器以硬體方式執行指令以執行本案內容的技術。前述任何一種,包括硬體、軟體、硬體和軟體的組合等,皆可被認為是一或多個處理器。
在一些態樣,內容產生系統100可包括通訊介面126。通訊介面126可包括接收器128和發射器130。發射器128可被配置為執行本文針對設備104描述的任何接收功能。另外,接收器128可被配置為:從另一個設備接收資訊,例如眼睛或頭部位置資訊、渲染命令或位置資訊。發射器130可被配置為執行本文針對設備104描述的任何發送功能。例如,發射器130可被配置為向另一設備發送資訊,該資訊可包括針對內容的請求。接收器128和發射器130可組合成收發機132。在此種實例中,收發機132可被配置為執行本文針對設備104描述的任何接收功能及/或發送功能。
再次參考圖1,在某些態樣,處理單元120可包括決定部件198,其被配置為:將場景中的多個圖元之每一者圖元分配到多個邊界框中的一個邊界框中,多個圖元之每一者圖元包括一或多個頂點(例如,三個頂點),多個邊界框之每一者邊界框與包括一或多個內部節點和一或多個葉節點的多個節點相對應。決定部件198亦可被配置為:辨識多個節點之每一者節點是一或多個內部節點中的一個內部節點還是一或多個葉節點中的一個葉節點。若節點是一或多個葉節點中的一個葉節點,則決定部件198亦可被配置為:估計多個節點之每一者節點的可壓縮性,節點的可壓縮性與節點是否是可壓縮的相對應。若多個節點之每一者節點被估計為可壓縮的,則決定部件198亦可被配置為:對與該節點相對應的資料進行壓縮。決定部件198亦可被配置為:在對與多個節點之每一者節點相對應的資料進行壓縮時調整以下各項中的至少一個:多個圖元的位置或者多個圖元的頂點順序。決定部件198亦可被配置為:在儲存與多個節點之每一者節點相對應的資料之前對與該節點相對應的資料進行編碼,使得與該節點相對應的資料以經編碼的格式儲存。決定部件198亦可被配置為:在壓縮與多個節點之每一者節點相對應的資料時儲存與該節點相對應的資料。儘管下文的描述可集中在顯示處理上,但是本文描述的概念可適用於其他類似的處理技術。
如本文所述,設備(例如設備104)可指被配置為執行本文所述的一或多個技術的任何設備、裝置或系統。例如,設備可是伺服器、基地台、使用者設備、使用者客戶端設備、網站、存取點、電腦(例如個人電腦、桌上型電腦、膝上型電腦、平板電腦、電腦工作站,或大型電腦)、最終產品、裝置、電話、智慧手機、伺服器、視訊遊戲平臺或控制台、手持設備(例如,可攜式視訊遊戲裝置或個人數位助理(PDA))、可穿戴計算設備(例如智慧手錶、增強現實設備或虛擬實境設備)、不可穿戴設備、顯示器或顯示裝置、電視機、電視機上盒、中間網路設備、數位媒體播放機、視訊串流設備、內容資料串流設備、車載電腦、任何行動設備、被配置為產生圖形內容的任何設備,或者被配置為執行本文描述的一或多個技術的任何設備。本文的程序可被描述為由特定部件(例如,GPU)執行,但是,在另外的實施例中,可使用其他部件(例如,CPU)來執行,此與所揭示的實施例一致。
GPU可處理GPU管線中多種類型的資料或資料封包。例如,在一些態樣,GPU可處理兩種類型的資料或資料封包,例如上下文暫存器封包和繪圖調用資料。上下文暫存器封包可是一組全域狀態資訊,例如,關於全域暫存器、著色程式或常數資料的資訊,其可調節圖形上下文將如何被處理。例如,上下文暫存器封包可包括關於顏色格式的資訊。在上下文暫存器封包的某些態樣,可有一個位元,該位元指示哪個工作負載屬於上下文暫存器。此外,可有多個功能或程式同時及/或並行執行。例如,功能或程式可描述某種操作,例如顏色模式或顏色格式。因此,上下文暫存器可定義GPU的多個狀態。
上下文狀態可用於決定單個處理單元如何正常工作,例如頂點獲取器、頂點著色器(VS)、著色器處理器或幾何處理器,及/或處理單元以何種模式正常工作。為此,GPU可使用上下文暫存器和程式設計資料。在一些態樣,GPU可基於模式或狀態的上下文暫存器定義來在管線中產生工作負載,例如頂點或像元工作負載。某些處理單元,例如頂點獲取器,可使用該等狀態來決定某些功能,例如,如何組裝頂點。由於該等模式或狀態可能發生變化,因此GPU可能需要更改相應的上下文。此外,與模式或狀態相對應的工作負載可跟隨變化的模式或狀態。
圖2圖示根據本案內容的一或多個技術的示例GPU 200。如圖2所示,GPU 200包括命令處理器(CP)210、繪圖調用封包212、頂點提取器220、VS 222、頂點快取記憶體(VPC)224、三角形設置引擎226、光柵化器228、Z程序引擎(ZPE)230、像元內插器(PI)232、片段著色器(FS)234、渲染後端(RB)236、二級(L2)快取記憶體(UCHE)238及系統記憶體240。儘管圖2圖示GPU 200包括處理單元220-238,但GPU 200可包括多個附加處理單元。此外,處理單元220-238僅僅是實例,並且根據本案內容,GPU可使用處理單元的任何組合或順序。GPU 200亦包括命令緩衝器250、上下文暫存器封包260和上下文狀態261。
如圖2所示,GPU可利用CP,例如CP 210,或硬體加速器來將命令緩衝器解析為上下文暫存器封包,例如上下文暫存器封包260,及/或繪製調用資料封包,例如繪製調用封包212。CP 210隨後可經由單獨的路徑將上下文暫存器封包260或繪圖調用封包212發送到GPU中的處理單元或塊。此外,命令緩衝器250可交替上下文暫存器和繪圖調用的不同狀態。例如,可用以下方式來構造命令緩衝器:上下文N的上下文暫存器、上下文N的繪製調用、上下文N+1的上下文暫存器及上下文N+1的繪製調用。
GPU可用各種不同的方式來渲染圖像。在某些實例中,GPU可使用渲染及/或鋪磚渲染來渲染圖像。在鋪磚渲染GPU中,圖像可被劃分或分割成不同的部分或磚。在分割圖像之後,可單獨渲染每個部分或磚。鋪磚渲染GPU可將電腦圖形圖像劃分為網格格式,以便單獨渲染網格的每個部分,即磚。在一些態樣,在分倉遍數期間,圖像可被分成不同的倉或磚。在一些態樣,在分倉遍數期間,可構造可見性流,其中可辨識可見圖元或繪製調用。與鋪磚渲染相反,直接渲染不會將訊框劃分為更小的倉或鋪磚。而是,在直接渲染中,整個訊框被一次性渲染。此外,某些類型的GPU可允許鋪磚渲染和直接渲染二者。
圖形處理的某些態樣可利用不同類型的渲染技術,例如光線追蹤。光線追蹤是一種渲染技術,其經由追蹤圖像平面中像元的光的路徑並模擬其與場景中的物件相遇的效果來產生圖像。如此,光線追蹤可產生逼真的照明效果。光線追蹤有很多好處,包括:提供更逼真的效果(例如反射)、改善全域照明、改善光澤效果、改善景深等。光線追蹤亦可有助於產生不同類型的改善陰影,例如硬陰影及/或軟陰影。光線追蹤的一些效果可包括間接照明和用於圖示焦散的能力(即光線從表面反射或折射時出現的光和顏色的圖案)。因此,光線追蹤可引起產生照片般逼真的圖像。光線追蹤可由圖形處理或資料處理中的多個不同處理器使用,多個不同處理器例如圖形處理單元(GPU)或中央處理單元(CPU)。
圖3圖示包括光線追蹤程序的一個實例的圖300。如圖3所示,圖300包括相機310、包括像元322的圖像平面320、場景物件330、光源340、觀察光線350和陰影光線352。圖3圖示觀察光線350從相機310被追蹤並穿過圖像平面320。在通過圖像平面320之後,觀察光線350被追蹤到場景對象330。至少一些觀察光線350被追蹤離開場景物件330,並作為陰影光線352被追蹤朝向光源340。因此,陰影光線352和觀察光線350可追蹤從光源340到相機310的光。圖3圖示了光線追蹤可如何經由追蹤圖像平面中的像元(例如,圖像平面320中的像元322)的光(例如,來自光源340)的路徑來產生圖像。
光線追蹤不同於圖形處理中使用的許多其他渲染技術,例如光柵化。在光柵化程序中,對於場景中每個圖元之每一者像元,若該像元的一部分被圖元覆蓋,則可對該像元進行著色。相反,在光線追蹤的程序中,對於與場景中的圖元相對應的每個像元,皆會產生光線。若產生的光線被決定為擊中或撞擊某個圖元,則對該像元進行著色。在圖形處理的一些實例中,光線追蹤演算法可與光柵化一起執行,例如經由混合光線追蹤/光柵化模型。
圖4A和圖4B分別圖示包括光柵化的示例程序和光線追蹤的示例程序的圖400和圖450。如圖4A所示,圖400包括場景物件410和像元420。圖4A圖示了此種程序:對於包括場景物件410的場景之每一者像元420,光柵化決定若像元的至少一部分被圖元覆蓋則該像元被著色。如圖4B所示,圖450包括場景物件460、像元470、光源480、陰影光線482和主光線484。圖4B圖示了此種程序:光線追蹤決定產生的光線(例如,陰影光線482)若將經由主光線484擊中或撞擊場景物件460中與像元470中的一個相對應的某個圖元,則該像元被著色。
如本文所指示的,可經由決定光線是否將擊中/撞擊場景中的任何圖元來執行光線追蹤的程序。例如,光線追蹤演算法可執行簡單的查詢操作:給定光線是否會擊中/撞擊場景中的任何圖元?光線追蹤的程序是計算密集型的,因為可針對大量圖元/三角形追蹤大量光線,此可利用大量光線-三角形相交測試。例如,在一個光線追蹤程序中,可針對大約一百萬個圖元/三角形追蹤大約一百萬條光線,此可利用大約一萬億次光線-三角形相交測試。在光線追蹤程序的一些態樣,給定光線的原點可用O(N)來表示。此外,可存在針對光線計算的多個值,例如撞擊場景中圖元的最短時間(t min)、撞擊場景中圖元的最長時間(t max)及撞擊場景中的圖元的所計算的距離。
圖5圖示包括涉及三角形作為圖元的光線追蹤程序的一個實例的圖500。如圖5所示,圖500包括光線的原點(O(N)510)、撞擊場景中圖元的最短時間(t min520)、撞擊場景中圖元的最長時間(t max522)、撞擊場景中圖元的所計算的距離(距離530),及場景中的圖元數量(圖元540、圖元541和圖元542)。圖5圖示光線追蹤技術可利用多個值來決定光線是否將擊中圖元。例如,為了決定光線是否將撞擊圖元,光線追蹤技術可利用光線的原點O(N)510)、撞擊圖元的最短時間(t min520)、撞擊圖元的最大時間(t max522)、撞擊圖元的所計算的距離(距離 530)及圖元的數量(圖元540、圖元541和圖元542)。
光線追蹤可利用各種資料結構來加速計算程序,例如邊界體積層級(BVH)。在邊界體積層級中,圖元保存在葉節點中。此外,內部或內節點可包含邊界框/體積,例如軸對準邊界框(AABB),其由三個維度之每一者維度中的包圍某些葉節點幾何形狀的一對邊界平面定義。每個AABB可包括一或多個(幾何)圖元,其中每個AABB內的圖元數量可不同。用於光線追蹤的資料結構亦可使用內部節點的光線-方塊相交及/或葉節點的光線-三角形測試。該等類型的資料結構可降低光線追蹤程序的計算複雜度(N),例如,將計算複雜度(N)降低log(N)。
圖6A和圖6B分別圖示圖600和圖650,包括在光線追蹤中使用的示例資料結構技術。如圖6A所示,圖600包括多個節點(節點N 611-N 617)和多個圖元(圖元O 621-O 628)。圖6A圖示了節點N 611-N 617和圖元O 621-O 628的光線-方塊相交。如圖6B所示,圖650包括多個節點(節點N 661-N 667)和多個圖元(圖元O 671-O 678)。圖6B圖示了節點N 661-N 667和圖元O 671-O 678的光線-三角形測試。圖6A和圖6B中的兩種資料結構技術,例如光線-方塊相交和光線-三角形測試,意欲降低光線追蹤中的計算複雜度。
如本文所指示的,在光線追蹤程序期間存在多個不同階段。例如,光線追蹤的階段可包括:邊界體積層級構造和細化、光線產生、邊界體積層級遍歷、光線-三角形相交、及光線-方塊相交。邊界體積層級構造期間亦可有不同的步驟,包括將三角形劃分為多個組,在每個組周圍形成邊界框,並遞迴地劃分每個組。此外,在邊界體積層級構造期間可有多種劃分方式,此可產生一定數量的可能解決方案,例如2 n log n 種解決方案。因此,該等改進的解決方案可能會產生提升的光線追蹤效能。
光線追蹤的態樣亦可利用多種邊界體積層級演算法,例如拆分邊界體積層級(SBVH)和線性邊界體積層級(LBVH)。在某些實例中,與LBVH相比,SBVH可能會導致更慢的構建時間和更好的品質。同樣,與SBVH相比,LBVH可能會導致更快的構建時間和更差的品質。此外,光線追蹤的某些態樣可利用邊界體積層級細化。在邊界體積層級細化中,給定二叉BVH,其中每片蔓葉線有一個三角形,光線追蹤技術可置換樹形拓撲。邊界體積層次細化可使用不同的演算法,例如,小樹重構BVH(TRBVH)和並行重新插入BVH(PRBVH)。光線追蹤的一些態樣亦可利用BVH加寬,此可將二叉樹(例如,BVH)轉換為寬BVH(例如,8分支寬的BVH)。在一些BVH加寬的實例中,內部節點可包括最多八個AABB,而葉節點可包括最多四個圖元或三角形。
圖7A和圖7B分別圖示包括二叉邊界體積層級和寬邊界體積層級的圖700和圖750。如圖7A所示,圖700包括二叉邊界體積層級710,其包括圖元711、圖元712、圖元713和圖元714。圖7A圖示了二叉邊界體積層級710包括三個級別,其中圖元711-714在層級的第三級別中。如圖7B所示,圖750包括寬邊界體積層級760,其包括圖元761、圖元762、圖元763和圖元764。圖7B圖示了寬邊界體積層級760包括兩個級別,其中圖元761-764在層級的第二級別中。如圖7A和圖7B所示,二叉邊界體積層級710可經歷邊界體積層級加寬的程序,此導致寬邊界體積層級760。
光線追蹤的某些態樣可利用邊界體積層級壓縮。例如,光線追蹤技術可壓縮寬節點以適應固定大小(例如,64位元組)。BVH壓縮可包括內部節點壓縮,其壓縮一定量的AABB(例如,八個AABB)及/或第一子索引。BVH壓縮亦可包括葉節點壓縮,其壓縮一定數量的圖元/三角形(例如,最多四個圖元/三角形)和相應的索引。此外,光線追蹤技術可利用邊界體積層級遍歷,例如寬BVH的廣度優先搜尋遍歷及/或深度優先搜尋遍歷。光線追蹤產生的某些態樣可利用在執行中產生光線的操作。例如,可產生多種不同類型的光線,例如主光線、陰影光線及/或次級光線。
此外,在硬體或軟體(例如 GPU/CPU硬體或軟體)中可使用許多不同的光線追蹤階段。例如,在某些階段(例如,BVH構造階段和BVH節點壓縮階段),驅動器可在CPU或GPU上構造BVH。在BVH遍歷階段,BVH遍歷可能發生在GPU處的著色器中。此外,某些階段(例如,BVH節點解壓縮階段、光線邊界框相交階段和光線三角形相交階段)可在GPU硬體中實現。
圖8圖示包括用於光線追蹤的調用流程的一個實例的圖800。如圖8所示,圖800包括用於光線追蹤程序的壓縮節點調用流程的多個步驟(例如,步驟810、812、830、832、840、850、860、862和864)。在步驟810處,光線追蹤程序可壓縮至少一個節點。在步驟812處,節點的壓縮可包括至少一個內部節點的壓縮。若步驟810處的節點壓縮成功,則在步驟830處,光線追蹤程序可壓縮至少一個葉節點。若步驟830處的葉節點壓縮不成功(亦即,無法預測可壓縮性或壓縮後的大小大於目標大小),則在步驟832處,光線追蹤程序可將葉節點轉換為內部節點,例如,經由對葉節點進行細分。在步驟840處,光線追蹤程序可排列或重新佈置至少一個葉圖元/三角形(例如,圖元的佈局被重新佈置)和一或多個頂點(例如,頂點的順序可被重新佈置)。若步驟840處的排列不成功(例如,不能重新排列圖元或頂點),則光線追蹤程序可重複步驟830。在步驟850處,光線追蹤程序可打包或儲存至少一個葉節點。若步驟850處的打包不成功(例如,沒有足夠的大小來儲存節點),則光線追蹤程序可重複步驟840。若步驟850處的打包成功,則光線追蹤程序可執行步驟860、862和864。在步驟860處,光線追蹤程序可打包或儲存一或多個葉節點圖元坐標值,例如三角形坐標值。在步驟862處,光線追蹤程序可打包或儲存一或多個葉節點圖元索引。在步驟864處,光線追蹤程序可打包或儲存一或多個葉節點頂點排列。在一些實例中,在圖8的壓縮節點調用流程中執行的步驟可能無法在不損害光線追蹤效能的情況下充分減少壓縮時間。
為了提高光線追蹤效能,圖元資料(亦即,圖元的幾何資料,例如圖元頂點的坐標值及/或一或多個圖元索引等)可儲存在某些節點中。例如,圖元資料可直接儲存在固定大小的塊中的葉節點中,該等塊的大小等於快取記憶體行。如此,GPU能夠獲取快取記憶體行並對其進行高效地存取。對於特定類型的GPU,一定數量的圖元/三角形(例如,最多4個圖元/三角形)可儲存在特定大小(例如,64個位元組)的葉節點中。一個挑戰可能是將一定數量的圖元/三角形的一定數量的資料(例如,144位元組 = 4個三角形 * 3個頂點 * 3個元件 * 每個元件4個位元組)放入較小大小的記憶體(例如,小於64位元組的記憶體)。
一些類型的壓縮演算法可壓縮節點的資料,該節點包括一或多個圖元,例如三角形。在一些態樣,壓縮演算法可辨識節點錨點,例如圖元及/或頂點以決定錨點位置。除了儲存節點錨點之外,節點中包括的一或多個頂點位置可被儲存為偏移。換言之,壓縮演算法可儲存節點錨點和差以壓縮資料。當如此做時,可嘗試關於所涉及的圖元及/或頂點的多個排列以決定其中資料可適合指定大小(亦被稱為目標大小)的組合。例如,若葉節點的四個圖元/三角形以任意順序放置並且頂點以任意順序放置,則此可能導致6144種可能性(即(4!)*(4)^4 = 6144種可能性)。在光線追蹤的某些實例中,在嘗試不同的組合時,可能會發現可壓縮的特定組合(亦即,壓縮以適合目標大小,例如上述64位元組)。然而,當資料不能被壓縮到指定的大小時,可嘗試每一種組合以決定資料是不可壓縮的。該程序消耗了很多循環,這耗盡了所有的組合,並且可能導致沒有有用的輸出。在某些實例中,少於一半的節點可是可壓縮的。與單獨處理壓縮節點相比,使該數量的節點(例如,50%的節點)失敗可能會花費大量時間。此外,可能無法即時執行壓縮以在分配的光線追蹤訊框時間內嘗試所有排列。例如,具有252,000個圖元的模型在單一執行緒上可能需要大約16秒。因此,需要顯著減少壓縮時間(例如,將時間減少到毫秒級)。一種解決方案是在葉節點中打包更少的圖元/三角形,由於組合更少,因此壓縮時間要少得多。然而,光線追蹤效能可能會因在葉節點中打包較少的圖元/三角形而受到影響。基於上文,在不影響效能的情況下減少用於光線追蹤程序的壓縮時間量可是有益的。
本案內容的態樣可在不損害光線追蹤效能的情況下減少用於光線追蹤程序的壓縮時間量。例如,本案內容的態樣可減少壓縮時間量,同時保持在葉節點中打包/儲存期望量的圖元/三角形,使得光線追蹤效能不被損害。為此,本案內容的態樣可在壓縮階段之前引入預測功能。根據本文呈現的態樣的預測功能可預測葉節點可壓縮性以便過濾掉大部分不可壓縮節點。本文呈現的態樣亦可在不去除任何可壓縮節點的情況下預測葉節點可壓縮性。此外,根據本文呈現的態樣的預測功能可能不會返回關於節點的可壓縮性的任何不準確(例如,誤否認)。
圖9圖示包括根據本案內容的各態樣的用於光線追蹤程序的調用流程的一個實例的圖900。如圖9所示,圖900包括用於光線追蹤程序的壓縮節點調用流程的多個步驟(例如,步驟910、912、920、922、930、940、950、960、962和964)。在圖9中的步驟910中,光線追蹤程序可壓縮至少一個節點(亦即,壓縮一或多個圖元的資料,例如包括在相應節點中的三角形)。在步驟912處,節點的壓縮可包括至少一個內部節點的壓縮。在步驟920處,光線追蹤程序可預測至少一個葉節點的可壓縮性(亦即,預測/估計節點是否是可壓縮的,即節點中包括的一或多個圖元的資料是否可被壓縮到等於或低於目標大小的大小)。若在步驟920處的可壓縮性預測不成功(亦即,無法預測可壓縮性或壓縮後的大小大於目標大小),則在步驟922處,光線追蹤程序可將葉節點轉換為內部節點。若步驟920處的可壓縮性預測成功(亦即,導致葉節點是可壓縮的預測),則在步驟930處,光線追蹤程序可壓縮至少一個葉節點。若步驟930處的壓縮不成功,則光線追蹤程序可在步驟922處執行葉節點到內部節點的轉換。在圖9中的步驟940處,光線追蹤程序可置換或重新佈置至少一個圖元和一或多個頂點。若步驟940處的排列不成功(即無法重新排列圖元或頂點),則光線追蹤程序可重複步驟930。在步驟950處,光線追蹤程序可打包或儲存至少一個葉節點。若步驟950處的打包不成功,則光線追蹤程序可重複步驟940。若步驟950處的打包成功(亦即,沒有足夠的儲存空間用於葉節點),則光線追蹤程序可執行步驟960、962和964。在步驟960處,光線追蹤程序可打包或儲存一或多個葉節點圖元/三角形坐標值。在步驟962處,光線追蹤程序可打包或儲存一或多個葉節點圖元索引。在步驟964處,光線追蹤程序可打包或儲存一或多個葉節點頂點排列。如本文所指示的,在圖9的壓縮節點調用流程中執行的步驟可在不損害光線追蹤效能的情況下充分減少壓縮時間。
圖9圖示了根據本案內容的各態樣的壓縮節點調用流程,其包括預測光線追蹤中的葉節點的可壓縮性的預測功能。圖9中的預測功能可決定節點可壓縮性,而無需基於壓縮演算法的已辨識因素嘗試執行每個節點組合(亦即,在節點內圖元及/或其頂點的排列或佈置)。與嘗試所有可能的節點排列相比,該預測功能可能花費恆定且可忽略的時間量。在一些實例中,在執行圖9中的預測功能之後,大部分不可壓縮節點可被丟棄而不嘗試任何組合。另外,在執行圖9中的預測功能之後,可將預測為可壓縮的任何節點傳遞到實際壓縮階段。
圖10圖示包括根據本案內容的各態樣的用於光線追蹤程序的壓縮節點調用流程的示例步驟的圖1000。如圖10所示,圖1000包括用於光線追蹤程序的壓縮節點調用流程的多個步驟(例如,步驟1010、1012、1014、1016、1018和1020)。在步驟1010處,光線追蹤程序可預測至少一個葉節點的可壓縮性(亦即,預測/估計節點是否是可壓縮的)。為了預測節點的可壓縮性,光線追蹤程序可執行步驟1012、1014、1016、1018和1020中的一或多個。在步驟1012處,為了預測節點的可壓縮性,光線追蹤程序可獲得節點的多個唯一坐標。例如,節點的坐標可指節點中圖元/三角形的頂點坐標。此外,唯一坐標的數量可指具有唯一值的坐標的數量。在步驟1014處,為了預測節點的可壓縮性,光線追蹤程式可對節點的多個唯一坐標(例如,節點的每個軸的唯一坐標)進行排序。在步驟1016處,為了預測節點的可壓縮性,光線追蹤程序可計算大小以打包或儲存節點的唯一坐標。例如,可基於唯一坐標的量來決定唯一坐標的儲存大小。在步驟1018處,為了預測節點的可壓縮性,光線追蹤程序可調整或樞軸化每個圖元/三角形並計算圖元辨識符(ID)位元組的數量。例如,可基於圖元的位置來調整圖元,並且可基於圖元的大小或標識來計算圖元ID位元組的數量。在步驟1020處,為了預測節點的可壓縮性,光線追蹤程序可將所計算的資料(例如,節點坐標的大小,例如坐標長度)儲存在葉節點資訊中。
圖10圖示葉節點可壓縮性預測功能的一些細節,其可類似於圖9中的葉節點可壓縮性預測功能。例如,在圖10中的步驟1010處預測至少一個葉節點的可壓縮性可與圖9中的步驟920相對應。另外,圖10中的預測功能可利用多個因素來預測或估計葉節點可壓縮性。例如,圖10中的預測功能可利用唯一坐標值、相鄰坐標值之間的最小差(例如,相鄰坐標值之間相對於特定坐標軸的最小差),及可在常數時間內決定的其他因素。在一些實例中,光線追蹤程序可決定唯一坐標的兩倍數量與圖元ID位元組的最小數量的加和大於唯一坐標的計算的長度。此外,光線追蹤程序可決定每個坐標軸中的最小坐標長度和最小圖元ID長度的加和。光線追蹤程序亦可決定圖元ID或圖元ID長度在某個臨限值(例如,24位元的臨限值)之外。此外,光線追蹤程序可決定多個相鄰坐標值在特定臨限值(例如,24位元的臨限值)之外,例如經由計算相鄰坐標值之間之差。
圖11圖示包括根據本案內容的各態樣的用於光線追蹤程序的壓縮節點調用流程的示例步驟的圖1100。如圖11所示,圖1100包括用於光線追蹤程序的壓縮節點調用流程的多個步驟(例如,步驟1110、1120、1130、1140、1150、1160、1170和1180)。在步驟1110處,光線追蹤程序可決定節點(例如,葉節點)中的圖元的數量是否大於一。若決定節點中圖元的數量大於在步驟1110處節點中圖元的數量,則光線追蹤程序可進行到步驟1120。在步驟1120處,光線追蹤程序可決定節點的多個唯一坐標(例如,節點的每個軸中的坐標值)與節點的每個坐標的最小大小的乘積是否大於節點的最大坐標大小(例如,用於儲存節點的快取記憶體或快取記憶體線的可用大小)。在一些實例中,節點的每個坐標的最小大小和節點的最大坐標大小可基於節點坐標儲存計算來決定。若節點的唯一坐標的數量與節點的每個坐標的最小大小的乘積大於節點的最大坐標大小,則光線追蹤程序可進行到步驟1130; 否則,光線追蹤程式可跳過步驟1170處的壓縮和回退(亦即,該程式估計節點不可壓縮)。在步驟1130處,光線追蹤程序可決定用於儲存經排序的唯一坐標(例如,每個方向上的坐標值)的最小大小是否大於節點的最大坐標大小。若是,則光線追蹤程序可進行至步驟1140;否則,光線追蹤程序可跳過步驟1170處的壓縮和回退。在步驟1140處,光線追蹤程序可決定至少兩個經排序的唯一坐標之間的大小差是否大於節點的最大坐標差大小(例如,節點的最小坐標大小和最大坐標大小之間之差)。若是,則光線追蹤程序可進行至步驟1150;否則,光線追蹤程序可跳過步驟1170處的壓縮和回退。在步驟1150處,光線追蹤程序可決定節點的坐標的最小空間/儲存大小和節點的圖元辨識符(ID)的最小空間/大小的加和是否大於節點的最大坐標大小。若是,則光線追蹤程序可進行至步驟1160;否則,光線追蹤程序可跳過步驟1170處的壓縮和回退。在步驟1160處,光線追蹤程序可經由偵測在壓縮了唯一坐標值的每個軸之後該等唯一坐標的剩餘坐標空間的可用大小(例如,用於儲存坐標的剩餘儲存空間)來執行空壓縮執行(亦即,初始壓縮)。若剩餘坐標空間的可用大小足以用於經壓縮的唯一坐標,則光線追蹤程序可在步驟1180處進行壓縮節點;否則,光線追蹤程序可跳過步驟1170處的壓縮和回退。在某些實例中,若剩餘坐標空間的可用大小大於大小臨限值,則節點可被壓縮,並且若剩餘坐標空間的可用大小小於或等於大小臨限值,則節點可不被壓縮。要注意的是,上文參考圖11描述的每個步驟可以任何順序或序列及並行地執行。
圖11圖示葉節點可壓縮性預測功能的一些細節,例如圖9和圖10中的葉節點可壓縮性預測功能。例如,圖11中的壓縮節點調用流程可與在圖9中的步驟920處預測至少一個葉節點的可壓縮性相對應。此外,圖11中的壓縮節點調用流程可與在圖10中的步驟1010處預測至少一個葉節點的可壓縮性相對應。如本文所指示的,圖11中的預測功能可在不嘗試節點可壓縮性的每一種可能組合的情況下決定節點可壓縮性。與嘗試所有可能的節點壓縮反覆運算相比,在圖11的壓縮節點調用流程中執行的步驟可能花費恆定且可忽略的時間量。
在一些態樣,決定不可壓縮節點的可壓縮性可能比決定可壓縮節點的可壓縮性消耗更多時間。本案內容的態樣可在固定時間內過濾掉大部分不可壓縮的節點,而無需嘗試所有可能的排列,這可有助於在適合光線追蹤的時間段(例如,幾毫秒)內壓縮節點。在一些實例中,在本案內容的各態樣中使用的預測功能可過濾掉一定數量的不可壓縮節點(例如,超過95%的不可壓縮節點)。另外,在本案內容的各態樣中使用的預測功能可將執行壓縮所需的時間量減少一定量(例如,將時間量減少超過95%)。此外,將本案內容的預測功能應用於CPU或GPU內的某些部件(例如,GPU著色器)可減少節點壓縮時間(例如,將壓縮時間減少到幾毫秒)。
本案內容的態樣可包括許多益處或優點。例如,本案內容的態樣可在不損害光線追蹤效能的情況下減少用於光線追蹤程序的壓縮時間量。例如,本案內容的態樣可減少壓縮時間的量,同時保持打包在葉節點中期望數量的圖元/三角形,使得光線追蹤效能不以任何方式被損害。本文提出的態樣的預測功能可預測葉節點的可壓縮性以便過濾掉大部分不可壓縮的節點,使得預測功能可不需要處理該等不可壓縮的節點,從而節省時間和處理能力。另外,根據本文呈現的態樣的預測功能可返回節點的可壓縮性的準確結果,例如經由不返回關於節點可壓縮性的任何不準確(例如,誤否認)。
圖12是根據本案內容的一或多個技術的圖形處理的通訊流程圖1200。如圖12所示,圖1200包括根據本案的一或多個技術的GPU(或其他圖形處理器)的部件(例如,GPU部件1202、GPU部件1204和記憶體1206)之間的示例通訊。
在1210處,GPU部件1202可將場景中的多個圖元之每一者圖元(例如,圖元1212)分配到多個邊界框中的一個邊界框中,多個圖元之每一者圖元包括一或多個頂點,多個邊界框之每一者邊界框與包括一或多個內部節點和一或多個葉節點的多個節點相對應。多個節點可與二叉樹邊界體積層級(BVH)相關聯,使得一或多個葉節點是一或多個內部節點中的至少一個內部節點的子節點。多個邊界框可是多個軸對準邊界框(AABB)。
在1220處,GPU部件1202可辨識多個節點之每一者節點是一或多個內部節點中的一個內部節點還是一或多個葉節點中的一個葉節點。
在1230處,GPU部件1202可估計一或多個葉節點之每一者葉節點的可壓縮性,每個葉節點的可壓縮性與葉節點是否是可壓縮的相對應。
在一些態樣,GPU部件1202可辨識節點的多個唯一坐標的數量。例如,估計一或多個葉節點之每一者葉節點的可壓縮性可包括辨識葉節點的多個唯一坐標的數量。此外,GPU部件1202可對葉節點的多個唯一坐標進行排序。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括對葉節點的多個唯一坐標進行排序。在一些實例中,節點的可壓縮性可同與節點相關聯的資料是否是可壓縮的以適合目標儲存大小(亦即,剩餘儲存大小)或目標快取記憶體大小(亦即,剩餘快取記憶體大小)相對應。此外,GPU部件1202可計算葉節點的多個唯一坐標的大小以用於儲存。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦包括:計算葉節點的多個唯一坐標的大小以用於儲存。GPU部件1202亦可基於所計算的大小來儲存多個唯一坐標,其中多個唯一坐標被儲存為葉節點資訊。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括基於計算的大小來儲存多個唯一坐標,其中多個唯一坐標被儲存為葉節點資訊。GPU部件1202亦可調整與葉節點相關聯的圖元的數量;並計算葉節點的圖元辨識符(ID)位元組的數量。例如,估計一或多個葉節點之每一者葉節點的可壓縮性可包括:調整與葉節點相關聯的圖元的數量;並且計算葉節點的圖元辨識符(ID)位元組的數量。
在一些實例中,若與一或多個葉節點之每一者葉節點相關聯的圖元數量大於1,則可估計該葉節點的可壓縮性。GPU部件1202可辨識葉節點的多個唯一坐標的數量與葉節點的每個坐標的最小大小的乘積是否大於葉節點的最大坐標大小。例如,估計一或多個葉節點之每一者葉節點的可壓縮性可包括:辨識葉節點的多個唯一坐標的數量與葉節點的每個坐標的最小大小的乘積是否大於葉節點的最大坐標大小。GPU部件1202亦可辨識用於儲存多個唯一坐標的最小大小是否大於葉節點的最大坐標大小。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括:辨識用於儲存多個唯一坐標的最小大小是否大於葉節點的最大坐標大小。GPU部件1202亦可辨識多個唯一坐標中的至少兩個唯一坐標之間的大小差是否大於葉節點的最大坐標差大小。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括:辨識多個唯一坐標中的至少兩個唯一坐標之間的大小差是否大於葉節點的最大坐標差大小。GPU部件1202亦可辨識葉節點的每個坐標的最小大小和葉節點的圖元辨識符(ID)的最小大小的加和是否大於葉節點的最大坐標大小。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括:辨識葉節點的每個坐標的最小大小和葉節點的圖元辨識符(ID)的最小大小的加和是否大於葉節點的最大坐標大小。GPU部件1202亦可偵測葉節點中多個唯一坐標的剩餘坐標空間的可用大小以用於多個唯一坐標的壓縮。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括:偵測葉節點中多個唯一坐標的剩餘坐標空間的可用大小以用於多個唯一坐標的壓縮。在一些實例中,若剩餘坐標空間的可用大小大於大小臨限值,則可對與一或多個葉節點之每一者葉節點相對應的資料進行壓縮。此外,若剩餘坐標空間的可用大小小於或等於大小臨限值,則可不壓縮與一或多個葉節點之每一者葉節點相對應的資料。
在1240處,若一或多個葉節點之每一者葉節點被估計為不可壓縮的,則GPU部件1202可避免壓縮與該葉節點相對應的資料。在1250處,若一或多個葉節點之每一者葉節點被估計為可壓縮的,則GPU部件1202可壓縮與該葉節點相對應的資料。與一或多個葉節點之每一者葉節點相對應的資料的壓縮可與光線追蹤程序相關聯。在一些實例中,估計一或多個葉節點之每一者葉節點的可壓縮性可辨識用於與一或多個葉節點之每一者葉節點相對應的資料的儲存的配置。在一些態樣,可基於用於經壓縮的資料的可用儲存大小來決定用於與一或多個葉節點之每一者葉節點相對應的資料的儲存的配置。此外,若一或多個葉節點之每一者葉節點被估計為不可壓縮的,則可不壓縮與該節點相對應的資料。
在1260處,GPU部件1202可在對與一或多個葉節點之每一者節點相對應的資料進行壓縮時調整以下各項中的至少一個:多個圖元的位置或者多個圖元的頂點順序。
在1270處,GPU部件1202可在儲存與一或多個葉節點中的被估計為可壓縮的每個葉節點相對應的資料之前對與該葉節點相對應的資料進行編碼,使得與該葉節點相對應的資料以經編碼的格式儲存。
在1280處,GPU部件1202可儲存與一或多個葉節點中的被估計為可壓縮的每個葉節點相對應的資料(例如,將資料1282儲存在記憶體1206中)。與一或多個葉節點之每一者葉節點相對應的資料可包括以下各項中的至少一項:葉節點的一或多個圖元坐標、葉節點的一或多個圖元辨識符(ID),或者葉節點的至少一個頂點排列。
圖13是根據本案內容的一或多個技術的圖形處理的示例方法的流程圖1300。該方法可由GPU執行,例如用於圖形處理的裝置、圖形處理器、CPU、無線通訊設備及/或結合圖1-圖12的示例使用的可執行圖形處理的任何裝置。本文描述的方法可提供許多益處,例如提高資源利用率及/或功率節省。
在1302處,GPU可將場景中的多個圖元之每一者圖元分配到多個邊界框中的一個邊界框中,多個圖元之每一者圖元包括一或多個頂點,多個邊界框之每一者邊界框與包括一或多個內部節點和一或多個葉節點的多個節點相對應,如結合圖1-圖12中的示例所描述的。例如,如在圖12的1210中所描述的,GPU部件1202可將場景中的多個圖元之每一者圖元分配到多個邊界框中的一個邊界框中,多個圖元之每一者圖元包括一或多個頂點,多個邊界框之每一者邊界框與包括一或多個內部節點和一或多個葉節點的多個節點相對應。另外,步驟1302可由圖1中的處理單元120執行。多個節點可與二叉樹邊界體積層級(BVH)相關聯,使得一或多個葉節點是一或多個內部節點中的至少一個內部節點的子節點。多個邊界框可是多個軸對準邊界框(AABB)。
在1304處,GPU可辨識多個節點之每一者節點是一或多個內部節點中的一個內部節點還是一或多個葉節點中的一個葉節點,如結合圖1-圖12中的示例所描述的。例如,如在圖12的1220中所描述的,GPU部件1202可辨識多個節點之每一者節點是一或多個內部節點中的一個內部節點還是一或多個葉節點中的一個葉節點。另外,步驟1304可由圖1中的處理單元120執行。
在1306處,GPU可估計一或多個葉節點之每一者葉節點的可壓縮性,每個葉節點的可壓縮性與葉節點是否是可壓縮的相對應,如結合圖1-圖12中的示例所描述的。例如,如在圖12的1230中所描述的,若多個節點之每一者節點是一或多個葉節點中的一個葉節點,則GPU部件1202可估計該節點的可壓縮性,節點的可壓縮性與節點是否是可壓縮的相對應。另外,步驟1306可由圖1中的處理單元120執行。
在一些態樣,GPU可辨識節點的多個唯一坐標的數量。例如,估計一或多個葉節點之每一者葉節點的可壓縮性可包括辨識葉節點的多個唯一坐標的數量。而且,GPU亦可對葉節點的多個唯一坐標進行排序。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括對葉節點的多個唯一坐標進行排序。此外,GPU可計算葉節點的多個唯一坐標的大小以用於儲存。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦包括:計算葉節點的多個唯一坐標的大小以用於儲存。GPU亦可基於所計算的大小來儲存多個唯一坐標,其中多個唯一坐標被儲存為葉節點資訊。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括基於計算的大小來儲存多個唯一坐標,其中多個唯一坐標被儲存為葉節點資訊。GPU亦可調整與葉節點相關聯的圖元的數量;並計算葉節點的圖元辨識符(ID)位元組的數量。例如,估計一或多個葉節點之每一者葉節點的可壓縮性可包括:調整與葉節點相關聯的圖元的數量;並且計算葉節點的圖元辨識符(ID)位元組的數量。
在一些實例中,若與一或多個葉節點之每一者葉節點相關聯的圖元數量大於1,則可估計該葉節點的可壓縮性。GPU可辨識葉節點的多個唯一坐標的數量與葉節點的每個坐標的最小大小的乘積是否大於葉節點的最大坐標大小。例如,估計一或多個葉節點之每一者葉節點的可壓縮性可包括:辨識葉節點的多個唯一坐標的數量與葉節點的每個坐標的最小大小的乘積是否大於葉節點的最大坐標大小。GPU亦可辨識用於儲存多個唯一坐標的最小大小是否大於葉節點的最大坐標大小。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括:辨識用於儲存多個唯一坐標的最小大小是否大於葉節點的最大坐標大小。GPU亦可辨識多個唯一坐標中的至少兩個唯一坐標之間的大小差是否大於葉節點的最大坐標差大小。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括:辨識多個唯一坐標中的至少兩個唯一坐標之間的大小差是否大於葉節點的最大坐標差大小。GPU亦可辨識葉節點的每個坐標的最小大小和葉節點的圖元辨識符(ID)的最小大小的加和是否大於葉節點的最大坐標大小。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括:辨識葉節點的每個坐標的最小大小和葉節點的圖元辨識符(ID)的最小大小的加和是否大於葉節點的最大坐標大小。GPU亦可偵測葉節點中多個唯一坐標的剩餘坐標空間的可用大小以用於多個唯一坐標的壓縮。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括:偵測葉節點中多個唯一坐標的剩餘坐標空間的可用大小以用於多個唯一坐標的壓縮。在一些實例中,若剩餘坐標空間的可用大小大於大小臨限值,則可對與一或多個葉節點之每一者葉節點相對應的資料進行壓縮。此外,若剩餘坐標空間的可用大小小於或等於大小臨限值,則可不壓縮與一或多個葉節點之每一者葉節點相對應的資料。
在1308處,若一或多個葉節點之每一者葉節點被估計為不可壓縮的,則GPU可避免壓縮與該葉節點相對應的資料,如結合圖1-圖12中的示例所描述的。例如,如在圖12的1240中所描述的,若一或多個葉節點之每一者葉節點被估計為不可壓縮的,則GPU部件1202可避免壓縮與該葉節點相對應的資料。另外,步驟1308可由圖1中的處理單元120執行。與一或多個葉節點之每一者葉節點相對應的資料的壓縮可與光線追蹤程序相關聯。在一些實例中,估計一或多個葉節點之每一者葉節點的可壓縮性可辨識用於與一或多個葉節點之每一者葉節點相對應的資料的儲存的配置。此外,若多個葉節點之每一者葉節點被估計為不可壓縮的,則可不壓縮與該節點相對應的資料。
圖14是根據本案內容的一或多個技術的圖形處理的示例方法的流程圖1400。該方法可由GPU執行,例如用於圖形處理的裝置、圖形處理器、CPU、無線通訊設備及/或結合圖1-圖12的示例使用的可執行圖形處理的任何裝置。本文描述的方法可提供許多益處,例如提高資源利用率及/或功率節省。
在1402處,GPU可將場景中的多個圖元之每一者圖元分配到多個邊界框中的一個邊界框中,多個圖元之每一者圖元包括一或多個頂點,多個邊界框之每一者邊界框與包括一或多個內部節點和一或多個葉節點的多個節點相對應,如結合圖1-圖12中的示例所描述的。例如,如在圖12的1210中所描述的,GPU部件1202可將場景中的多個圖元之每一者圖元分配到多個邊界框中的一個邊界框中,多個圖元之每一者圖元包括一或多個頂點,多個邊界框之每一者邊界框與包括一或多個內部節點和一或多個葉節點的多個節點相對應。另外,步驟1402可由圖1中的處理單元120執行。多個節點可與二叉樹邊界體積層級(BVH)相關聯,使得一或多個葉節點是一或多個內部節點中的至少一個內部節點的子節點。多個邊界框可是多個軸對準邊界框(AABB)。
在1404處,GPU可辨識多個節點之每一者節點是一或多個內部節點中的一個內部節點還是一或多個葉節點中的一個葉節點,如結合圖1-圖12中的示例所描述的。例如,如在圖12的1220中所描述的,GPU部件1202可辨識多個節點之每一者節點是一或多個內部節點中的一個內部節點還是一或多個葉節點中的一個葉節點。另外,步驟1404可由圖1中的處理單元120執行。
在1406處,GPU可估計一或多個葉節點之每一者葉節點的可壓縮性,每個葉節點的可壓縮性與葉節點是否是可壓縮的相對應,如結合圖1-圖12中的示例所描述的。例如,如在圖12的1230中所描述的,GPU部件1202可估計一或多個葉節點之每一者葉節點的可壓縮性,每個葉節點的可壓縮性與葉節點是否是可壓縮的相對應。另外,步驟1406可由圖1中的處理單元120執行。
在一些態樣,GPU可辨識節點的多個唯一坐標的數量。例如,估計一或多個葉節點之每一者葉節點的可壓縮性可包括辨識葉節點的多個唯一坐標的數量。而且,GPU亦可對葉節點的多個唯一坐標進行排序。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括對葉節點的多個唯一坐標進行排序。此外,GPU可計算葉節點的多個唯一坐標的大小以用於儲存。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦包括:計算葉節點的多個唯一坐標的大小以用於儲存。GPU亦可基於所計算的大小來儲存多個唯一坐標,其中多個唯一坐標被儲存為葉節點資訊。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括基於計算的大小來儲存多個唯一坐標,其中多個唯一坐標被儲存為葉節點資訊。GPU亦可調整與葉節點相關聯的圖元的數量;並計算葉節點的圖元辨識符(ID)位元組的數量。例如,估計一或多個葉節點之每一者葉節點的可壓縮性可包括:調整與葉節點相關聯的圖元的數量;及計算葉節點的圖元辨識符(ID)位元組的數量。
在一些實例中,若與一或多個葉節點之每一者葉節點相關聯的圖元數量大於1,則可估計該葉節點的可壓縮性。GPU可辨識葉節點的多個唯一坐標的數量與葉節點的每個坐標的最小大小的乘積是否大於葉節點的最大坐標大小。例如,估計一或多個葉節點之每一者葉節點的可壓縮性可包括:辨識葉節點的多個唯一坐標的數量與葉節點的每個坐標的最小大小的乘積是否大於葉節點的最大坐標大小。GPU亦可辨識用於儲存多個唯一坐標的最小大小是否大於葉節點的最大坐標大小。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括:辨識用於儲存多個唯一坐標的最小大小是否大於葉節點的最大坐標大小。GPU亦可辨識多個唯一坐標中的至少兩個唯一坐標之間的大小差是否大於葉節點的最大坐標差大小。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括:辨識多個唯一坐標中的至少兩個唯一坐標之間的大小差是否大於葉節點的最大坐標差大小。GPU亦可辨識葉節點的每個坐標的最小大小和葉節點的圖元辨識符(ID)的最小大小的加和是否大於葉節點的最大坐標大小。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括:辨識葉節點的每個坐標的最小大小和葉節點的圖元辨識符(ID)的最小大小的加和是否大於葉節點的最大坐標大小。GPU亦可偵測葉節點中多個唯一坐標的剩餘坐標空間的可用大小以用於多個唯一坐標的壓縮。例如,估計一或多個葉節點之每一者葉節點的可壓縮性亦可包括:偵測葉節點中多個唯一坐標的剩餘坐標空間的可用大小以用於多個唯一坐標的壓縮。在一些實例中,若剩餘坐標空間的可用大小大於大小臨限值,則可對與一或多個葉節點之每一者葉節點相對應的資料進行壓縮。此外,若剩餘坐標空間的可用大小小於或等於大小臨限值,則可不壓縮與一或多個葉節點之每一者葉節點相對應的資料。
在1408處,若一或多個葉節點之每一者葉節點被估計為不可壓縮的,則GPU可避免壓縮與該葉節點相對應的資料,如結合圖1-圖12中的示例所描述的。例如,如在圖12的1240中所描述的,若一或多個葉節點之每一者葉節點被估計為不可壓縮的,則GPU部件1202可避免壓縮與該葉節點相對應的資料。另外,步驟1408可由圖1中的處理單元120執行。在1410處,若一或多個葉節點之每一者葉節點被估計為可壓縮的,則GPU可壓縮與該葉節點相對應的資料,如結合圖1-圖12中的示例所描述的。例如,如在圖12的1250中所描述的,若一或多個葉節點之每一者葉節點被估計為可壓縮的,則GPU部件1202可壓縮與該葉節點相對應的資料。另外,步驟1410可由圖1中的處理單元120執行。與一或多個葉節點之每一者葉節點相對應的資料的壓縮可與光線追蹤程序相關聯。在一些實例中,估計一或多個葉節點之每一者葉節點的可壓縮性可辨識用於與一或多個葉節點之每一者葉節點相對應的資料的儲存的配置。在一些態樣,可基於用於經壓縮資料的可用儲存大小來決定用於與一或多個葉節點之每一者葉節點相對應的資料的儲存的配置。此外,若一或多個葉節點之每一者葉節點被估計為不可壓縮的,則可不壓縮與該節點相對應的資料。
在1412處,GPU可在對與一或多個葉節點之每一者節點相對應的資料進行壓縮時調整以下各項中的至少一個:多個圖元的位置或者多個圖元的頂點順序,如結合圖1-圖12中的示例所描述的。例如,如在圖12的1260中所描述的,GPU部件1202可在對與一或多個葉節點之每一者節點相對應的資料進行壓縮時調整以下各項中的至少一個:多個圖元的位置或者多個圖元的頂點順序。另外,步驟1412可由圖1中的處理單元120執行。
在1414處,GPU可在儲存與一或多個葉節點中的被估計為可壓縮的每個葉節點相對應的資料之前對與該葉節點相對應的資料進行編碼,使得與該葉節點相對應的資料以經編碼的格式儲存,如結合圖1-圖12中的示例所描述的。例如,如在圖12的1270中所描述的,GPU部件1202可在儲存與被估計為可壓縮的每個葉節點相對應的資料之前對與該葉節點相對應的資料進行編碼,使得與該葉節點相對應的資料以經編碼的格式儲存。另外,步驟1414可由圖1中的處理單元120執行。
在1416處,GPU可儲存與一或多個葉節點中被估計為可壓縮的每個葉節點相對應的資料,如結合圖1-圖12中的示例所描述的。例如,如在圖12的1280中所描述的,GPU部件1202可儲存與一或多個葉節點中被估計為可壓縮的每個葉節點相對應的資料。另外,步驟1416可由圖1中的處理單元120執行。與一或多個葉節點之每一者葉節點相對應的資料可包括以下各項中的至少一項:葉節點的一或多個圖元坐標、葉節點的一或多個圖元辨識符(ID),或者葉節點的至少一個頂點排列。
在配置中,提供了一種用於圖形處理的方法或裝置。該裝置可是GPU、圖形處理器或者可執行圖形處理的一些其他處理器。在各態樣,裝置可是設備104內的處理單元120,或者可是設備104內的一些其他硬體,或者是另一設備。裝置(例如處理單元120)可包括用於將場景中的多個圖元之每一者圖元分配到多個邊界框中的一個邊界框中的手段,多個圖元之每一者圖元包括一或多個頂點,多個邊界框之每一者邊界框與包括一或多個內部節點和一或多個葉節點的多個節點相對應。裝置(例如處理單元120)亦可包括用於辨識多個節點之每一者節點是一或多個內部節點中的一個內部節點還是一或多個葉節點中的一個葉節點的手段。裝置(例如處理單元120)亦可包括用於估計一或多個葉節點之每一者葉節點的可壓縮性的手段,每個葉節點的可壓縮性與葉節點是否是可壓縮的相對應。裝置(例如處理單元120)亦可包括用於在一或多個葉節點之每一者葉節點被估計為不可壓縮的的情況下避免壓縮與該葉節點相對應的資料的手段。裝置(例如處理單元120)亦可包括用於在一或多個葉節點之每一者葉節點被估計為可壓縮的情況下壓縮與該葉節點相對應的資料的手段。裝置(例如處理單元120)亦可包括用於儲存與一或多個葉節點中被估計為可壓縮的每個葉節點相對應的資料的手段。裝置(例如處理單元120)亦可包括用於在儲存與一或多個葉節點中的被估計為可壓縮的每個葉節點相對應的資料之前對與該葉節點相對應的資料進行編碼,使得與該葉節點相對應的資料以經編碼的格式儲存的手段。裝置(例如處理單元120)亦可包括用於在對與一或多個葉節點之每一者節點相對應的資料進行壓縮時調整以下各項中的至少一個:多個圖元的位置或者多個圖元的頂點順序的手段。
可實施本文描述的發明主題以實現一或多個益處或優點。例如,所描述的圖形處理技術可由GPU、圖形處理器或者可執行圖形處理以實施本文所描述的節點壓縮技術的一些其他處理器使用。與其他圖形處理技術相比,這亦可以低成本實現。此外,本文的圖形處理技術可改進或加速資料處理或執行。此外,本文的圖形處理技術可提高資源或資料利用率及/或資源效率。另外,本案內容的態樣可利用節點壓縮技術以提高記憶體頻寬效率及/或提高GPU處的處理速度。
應當理解的是,所揭示的程序/流程圖中的方塊的特定順序或層級是示例方法的說明。應當理解的是,基於設計偏好,可重新排列該等程序/流程圖中的方塊的特定順序或層級。此外,可將一些方塊組合或者將其省略。所附的方法請求項以示例性次序呈現了各個方塊的元素,而並不意味著受限於所呈現的特定順序或層級。
以上描述被提供用於使得本領域任何技藝人士可實施本文所描述的各個態樣。該等態樣的各種修改對於本領域技藝人士是顯而易見的,並且本文限定的一般性原理可應用於其他態樣。因此,請求項不意欲受限於本文示出的態樣,而是根據與請求項語言相一致的整個保護範圍,其中除非特別說明,否則對以單數形式的元素的引用並不意欲指「一個並且僅一個」,而是表示「一或多個」。本文中使用的「示例性的」一詞意指「用作示例、實例或說明」。在本文中被描述為「示例性的」的任何態樣不一定被解釋為比其他態樣優選的或者更有優勢的。
除非另有明確聲明,否則術語「一些」是指一或多個;並且在上下文中沒有另外指明的情況下,術語「或」可被解釋為「及/或」。諸如「A、B或C中的至少一個」、「A、B或C中的一或多個」、「A、B和C中的至少一個」、「A、B和C中的一或多個」及「A、B、C或其任意組合」的組合包括A、B及/或C的任意組合,並且可包括多個A、多個B或者多個C。具體而言,諸如「A、B或C中的至少一個」、「A、B或C中的一或多個」、「A、B和C中的至少一個」、「A、B和C中的一或多個」及「A、B、C或其任意組合」的組合可是僅有A、僅有B、僅有C、A和B、A和C、B和C,或者A和B和C,其中任何此種組合可包含A、B或C中的一或多個成員或者一些成員。對本領域一般技藝人士而言已知或者將要獲知的與貫穿本案內容所描述的各種態樣的元素等效的所有結構和功能在此皆經由引用的方式明確併入本文,並且意欲被申請專利範圍所包括。此外,無論該揭示內容是否在請求項中被明確地記載,本文所揭示的內容皆不意欲奉獻給公眾。詞語「模組」、「機制」、「元素」、「設備」等等可不是詞語「手段」的替代。因此,除非使用短語「用於……的手段」來明確地記載該元素,否則不得將該元素解釋為手段加功能。
在一或多個實例中,可用硬體、軟體、韌體,或其任意組合來實現本文描述的功能。例如,儘管在貫穿本案內容使用了術語「處理單元」,但是此類處理單元可用硬體、軟體、韌體或者其任何組合來實現。若本文所述的任何功能、處理單元、技術或其他模組以軟體實現,則本文所述的功能、處理單元、技術或其他模組可作為電腦可讀取媒體上的一或多個指令或代碼儲存或傳輸。
根據本案內容,在上下文中沒有另外指明的情況下,術語「或」可被解釋為「及/或」。此外,儘管諸如「一或多個」或「至少一個」等的短語可能已用於本文揭示的某些特徵而不是其他特徵,但未針對其使用此類語言的特徵在上下文中沒有另外指示的情況下可被解釋為具有此種暗示含義。
在一或多個實例中,可用硬體、軟體、韌體,或其任意組合來實現本文描述的功能。例如,儘管在貫穿本案內容使用了術語「處理單元」,但是此類處理單元可用硬體、軟體、韌體或者其任何組合來實現。若本文所述的任何功能、處理單元、技術或其他模組以軟體實現,則本文所述的功能、處理單元、技術或其他模組可作為電腦可讀取媒體上的一或多個指令或代碼儲存或傳輸。電腦可讀取媒體可包括電腦資料儲存媒體或通訊媒體,其包括促進電腦程式從一個地點向另一個地點的傳輸的任何媒體。以此種方式,電腦可讀取媒體通常可與以下各項相對應:(1)可是非暫時性的有形電腦可讀取儲存媒體或者(2)通訊媒體(諸如信號或載波)。資料儲存媒體可是可由一或多個電腦或一或多個處理器存取以便檢索用於本案內容中描述的技術的實現的指令、代碼及/或資料結構的任何可用媒體。作為示例而非限制,此類電腦可讀取媒體可包括RAM、ROM、EEPROM、CD-ROM或其他光碟儲存、磁碟儲存或其他磁性儲存裝置。如本文中所使用的,磁碟(disk)和光碟(disc)包括壓縮光碟(CD)、雷射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中磁碟通常磁性地再現資料,而光碟則用雷射來光學地再現資料。上述各項的組合亦應該包括在電腦可讀取媒體的範圍之內。電腦程式產品可包括電腦可讀取媒體。
代碼可由一或多個處理器執行,一或多個處理器例如一或多個數位信號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、算數邏輯單位(ALU)、現場可程式設計邏輯陣列(FPGA)或其他等效整合或離散邏輯電路。因此,如本文中所使用的,術語「處理器」可指示前述結構或適於本文中所描述的技術的實現的任何其他結構中的任何一個。此外,該等技術可在一或多個電路或邏輯單元中完全實現。
本案內容的技術可在多種設備或裝置中實現,該等設備或裝置包括無線手持設備、積體電路(IC)或一組IC,例如,晶片組。本案內容中描述了各種部件、模組或單元以強調被配置為執行所揭示技術的設備的功能態樣,但不一定需要由不同的硬體單元來實現。而是,如前述,各個單元可組合在任何硬體單元中,或者由可交互動操作的硬體單元的集合來提供,其包括如前述的一或多個處理器結合合適的軟體及/或韌體。因此,如本文中所使用的,術語「處理器」可指示前述結構或適於本文中所描述的技術的實現的任何其他結構中的任何一個。此外,該等技術可在一或多個電路或邏輯單元中完全實現。
以下態樣僅是說明性的並且可與本文描述的其他態樣或教導結合,而不受限制。
態樣1是一種用於圖形處理的裝置,包括:至少一個處理器,其耦合至記憶體並且被配置為:將場景中的多個圖元之每一者圖元分配到多個邊界框中的一個邊界框邊界框中,該多個圖元之每一者圖元包括一或多個頂點,該多個邊界框之每一者邊界框與包括一或多個內部節點和一或多個葉節點的多個節點相對應;辨識該多個節點之每一者節點是該一或多個內部節點中的一個內部節點還是該一或多個葉節點中的一個葉節點;估計該一或多個葉節點之每一者葉節點的可壓縮性,該每個葉節點的可壓縮性與該葉節點是否是可壓縮的相對應;及若該一或多個葉節點之每一者葉節點被估計為不可壓縮的,則避免壓縮與該葉節點相對應的資料。
態樣2是根據態樣1之裝置,其中該至少一個處理器亦被配置為:若該一或多個葉節點之每一者葉節點被估計為可壓縮的,則壓縮與該葉節點相對應的資料;及儲存與該一或多個葉節點中的被估計為可壓縮的每個葉節點相對應的資料。
態樣3是根據態樣1和態樣2中任意態樣所述的裝置,其中與該一或多個葉之每一者葉節點相對應的資料可包括以下各項中的至少一項:該葉節點的一或多個圖元坐標、該葉節點的一或多個圖元辨識符(ID),或者該葉節點的至少一個頂點排列。
態樣4是根據態樣1至態樣3中任意態樣所述的裝置,其中該至少一個處理器亦被配置為:在儲存與該一或多個葉節點中的被估計為可壓縮的每個葉節點相對應的資料之前對與該葉節點相對應的資料進行編碼,使得與該葉節點相對應的資料以經編碼的格式儲存。
態樣5是根據態樣1至態樣4中任意態樣所述的裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器被配置為:辨識該葉節點的多個唯一坐標的數量。
態樣6是根據態樣1至態樣5中任意態樣所述的裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器亦被配置為:對該葉節點的該多個唯一坐標進行排序。
態樣7是根據態樣1至態樣6中任意態樣所述的裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器亦被配置為:計算該葉節點的該多個唯一坐標的大小以用於儲存。
態樣8是根據態樣1至態樣7中任意態樣所述的裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器亦被配置為:基於計算的大小來儲存該多個唯一坐標,其中該多個唯一坐標被儲存為葉節點資訊。
態樣9是根據態樣1至態樣8中任意態樣所述的裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器被配置為:調整與該葉節點相關聯的圖元的數量;及計算該葉節點的圖元辨識符(ID)位元組的數量。
態樣10是根據態樣1至態樣9中任意態樣所述的裝置,其中若與該葉節點相關聯的圖元的數量大於1,估計該一或多個葉節點之每一者葉節點的該可壓縮性。
態樣11是根據態樣1至態樣10中任意態樣所述的裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器被配置為:辨識該葉節點的多個唯一坐標的數量與該葉節點的每個坐標的最小大小的乘積是否大於該葉節點的最大坐標大小。
態樣12是根據態樣1至態樣11中任意態樣所述的裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器亦被配置為:辨識用於儲存該多個唯一坐標的最小大小是否大於該葉節點的該最大坐標大小。
態樣13是根據態樣1至態樣12中任意態樣所述的裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器亦被配置為:辨識該多個唯一坐標中的至少兩個唯一坐標之間的大小差是否大於該葉節點的最大坐標差大小。
態樣14是根據態樣1至態樣13中任意態樣所述的裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器亦被配置為:辨識該葉節點的每個坐標的該最小大小和該葉節點的圖元辨識符(ID)的最小大小的加和是否大於該葉節點的該最大坐標大小。
態樣15是根據態樣1至態樣14中任意態樣所述的裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器亦被配置為:偵測該葉節點中該多個唯一坐標的剩餘坐標空間的可用大小以用於對該多個唯一坐標的壓縮。
態樣16是根據態樣1至態樣15中任意態樣所述的裝置,其中若該剩餘坐標空間的該可用大小大於大小臨限值,則對與該一或多個葉節點之每一者葉節點相對應的資料進行壓縮;或者其中若該剩餘坐標空間的該可用大小小於或等於該大小臨限值,則不壓縮與該一或多個葉節點之每一者葉節點相對應的資料。
態樣17是根據態樣1至態樣16中任意態樣所述的裝置,其中該至少一個處理器亦被配置為:在對與該一或多個葉節點之每一者節點相對應的資料進行壓縮時調整以下各項中的至少一個:該多個圖元的位置或者該多個圖元的頂點順序。
態樣18是根據態樣1至態樣17中任意態樣所述的裝置,其中估計該一或多個葉節點之每一者葉節點的可壓縮性辨識用於與該一或多個葉節點之每一者葉節點相對應的資料的儲存的配置;並且其中若該多個葉節點之每一者葉節點被估計為不可壓縮的,則不壓縮與該節點相對應的資料。
態樣19是根據態樣1至態樣18中任意態樣所述的裝置,其中該多個節點與二叉樹邊界體積層級(BVH)相關聯,使得該一或多個葉節點是該一或多個內部節點中的至少一個內部節點的子節點。
態樣20是根據態樣1至態樣19中任意態樣所述的裝置,其中該多個邊界框可是多個軸對準邊界框(AABB)。
態樣21是根據態樣1至態樣20中任意態樣所述的裝置,其中對與該一或多個葉節點之每一者葉節點相對應的資料的該壓縮可與光線追蹤程序相關聯。
態樣22是根據態樣1至態樣21中任意態樣所述的裝置,其中該裝置是無線通訊設備,其亦包括耦合至該至少一個處理器的天線或收發機中的至少一個。
態樣23是用於實現態樣1至態樣22中的任意態樣的圖形處理的方法。
態樣24是一種包括用於實現態樣1至態樣22中的任意態樣的手段的用於圖形處理的裝置。
態樣25是一種非暫時性電腦可讀取媒體,其儲存有電腦可執行代碼,該代碼在由至少一個處理器執行時使該至少一個處理器實現態樣1至態樣22中的任意態樣。
100:內容產生系統 104:設備 107:圖形處理管線 120:處理單元 121:內部記憶體 122:內容編碼器/解碼器 123:內部記憶體 124:系統記憶體 126:通訊介面 127:顯示處理器 128:接收器 130:發射器 131:顯示器 132:收發機 198:決定部件 200:GPU 210:命令處理器 212:繪圖調用封包 220:頂點提取器 222:VS 224:頂點快取記憶體 226:三角形設置引擎 228:光柵化器 230:Z程序引擎 232:像元內插器 234:片段著色器 236:渲染後端 238:二級(L2)快取記憶體 240:系統記憶體 250:命令緩衝器 260:上下文暫存器封包 261:上下文狀態 300:圖 310:相機 320:圖像平面 322:像元 330:場景物件 340:光源 350:觀察光線 352:陰影光線 400:圖 410:場景物件 420:像元 450:圖 460:場景物件 470:像元 480:光源 482:陰影光線 484:主光線 500:圖 510:光線的原點 520:最短時間 522:最長時間 530:距離 540:圖元 541:圖元 542:圖元 600:圖 650:圖 700:圖 710:二叉邊界體積層級 711:圖元 712:圖元 713:圖元 714:圖元 750:圖 760:寬邊界體積層級 761:圖元 762:圖元 763:圖元 764:圖元 800:圖 810:步驟 812:步驟 830:步驟 832:步驟 840:步驟 850:步驟 860:步驟 862:步驟 864:步驟 900:圖 910:步驟 912:步驟 920:步驟 922:步驟 930:步驟 940:步驟 950:步驟 960:步驟 962:步驟 964:步驟 1000:圖 1010:步驟 1012:步驟 1014:步驟 1016:步驟 1018:步驟 1020:步驟 1100:圖 1110:步驟 1120:步驟 1130:步驟 1140:步驟 1150:步驟 1160:步驟 1170:步驟 1180:步驟 1200:通訊流程圖 1202:GPU部件 1204:GPU部件 1206:記憶體 1210:步驟 1212:圖元 1220:步驟 1230:步驟 1240:步驟 1250:步驟 1260:步驟 1270:步驟 1280:步驟 1282:資料 1300:流程圖 1302:步驟 1304:步驟 1306:步驟 1308:步驟 1400:流程圖 1402:步驟 1404:步驟 1406:步驟 1408:步驟 1410:步驟 1412:步驟 1414:步驟 1416:步驟 N 611:節點 N 612:節點 N 613:節點 N 614:節點 N 615:節點 N 616:節點 N 617:節點 N 661:節點 N 662:節點 N 663:節點 N 664:節點 N 665:節點 N 666:節點 N 667:節點 O 621:圖元 O 622:圖元 O 623:圖元 O 624:圖元 O 625:圖元 O 626:圖元 O 627:圖元 O 628:圖元 O 671:圖元 O 672:圖元 O 673:圖元 O 674:圖元 O 675:圖元 O 676:圖元 O 677:圖元 O 678:圖元
圖1是示出示例內容產生系統的方塊圖。
圖2是示例圖形處理單元(GPU)。
圖3是示出示例光線追蹤程序的圖。
圖4A是示出示例光柵化程序的圖。
圖4B是示出示例光線追蹤程序的圖。
圖5是示出示例光線追蹤程序的圖。
圖6A是示出示例資料結構的圖。
圖6B是示出示例資料結構的圖。
圖7A是示出示例邊界體積層級的圖。
圖7B是示出示例邊界體積層級的圖。
圖8是示出示例光線追蹤調用流程的圖。
圖9是示出示例光線追蹤調用流程的圖。
圖10是示出示例光線追蹤調用流程的圖。
圖11是示出示例光線追蹤調用流程的圖。
圖12是示出GPU部件之間的示例通訊的通訊流程圖。
圖13是圖形處理的示例方法的流程圖。
圖14是圖形處理的示例方法的流程圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
1200:通訊流程圖
1202:GPU部件
1204:GPU部件
1206:記憶體
1210:步驟
1212:圖元
1220:步驟
1230:步驟
1240:步驟
1250:步驟
1260:步驟
1270:步驟
1280:步驟
1282:資料

Claims (30)

  1. 一種用於圖形處理的裝置,包括: 一記憶體;及 至少一個處理器,其耦合至該記憶體並且被配置為: 將一場景中的多個圖元之每一者圖元分配到多個邊界框中的一個邊界框中,該多個圖元之每一者圖元包括一或多個頂點,該多個邊界框之每一者邊界框與包括一或多個內部節點和一或多個葉節點的多個節點相對應; 辨識該多個節點之每一者節點是該一或多個內部節點中的一個內部節點還是該一或多個葉節點中的一個葉節點; 估計該一或多個葉節點之每一者葉節點的一可壓縮性,該每個葉節點的該可壓縮性與該葉節點是否是可壓縮的相對應;及 若該一或多個葉節點之每一者葉節點被估計為不可壓縮的,則避免壓縮與該葉節點相對應的資料。
  2. 根據請求項1之裝置,其中該至少一個處理器亦被配置為: 若該一或多個葉節點之每一者葉節點被估計為可壓縮的,則壓縮與該葉節點相對應的資料;及 儲存與該一或多個葉節點中的被估計為可壓縮的每個葉節點相對應的資料。
  3. 根據請求項2之裝置,其中與該一或多個葉節點之每一者葉節點相對應的資料可包括以下各項中的至少一項:該葉節點的一或多個圖元坐標、該葉節點的一或多個圖元辨識符(ID),或者該葉節點的至少一個頂點排列。
  4. 根據請求項2之裝置,其中該至少一個處理器亦被配置為: 在儲存與該一或多個葉節點中的被估計為可壓縮的每個葉節點相對應的該資料之前對與該葉節點相對應的該資料進行編碼,使得與該葉節點相對應的該資料以經編碼的一格式儲存。
  5. 根據請求項1之裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器被配置為:辨識該葉節點的多個唯一坐標的一數量。
  6. 根據請求項5之裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器亦被配置為:對該葉節點的該多個唯一坐標進行排序。
  7. 根據請求項5之裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器亦被配置為:計算該葉節點的該多個唯一坐標的大小以用於儲存。
  8. 根據請求項7之裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器亦被配置為:基於所計算的大小來儲存該多個唯一坐標,其中該多個唯一坐標被儲存為葉節點資訊。
  9. 根據請求項1之裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器被配置為: 調整與該葉節點相關聯的圖元的一數量;及 計算該葉節點的圖元辨識符(ID)位元組的一數量。
  10. 根據請求項1之裝置,其中若與該葉節點相關聯的圖元的一數量大於1,則估計該一或多個葉節點之每一者葉節點的該可壓縮性。
  11. 根據請求項10之裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器被配置為:辨識該葉節點的多個唯一坐標的一數量與該葉節點的每個坐標的一最小大小的一乘積是否大於該葉節點的一最大坐標大小。
  12. 根據請求項11之裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器亦被配置為:辨識用於儲存該多個唯一坐標的一最小大小是否大於該葉節點的該最大坐標大小。
  13. 根據請求項12之裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器亦被配置為:辨識該多個唯一坐標中的至少兩個唯一坐標之間的一大小差是否大於該葉節點的一最大坐標差大小。
  14. 根據請求項13之裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器亦被配置為:辨識該葉節點的每個坐標的該最小大小和該葉節點的圖元辨識符(ID)的一最小大小的一加和是否大於該葉節點的該最大坐標大小。
  15. 根據請求項14之裝置,其中為了估計該一或多個葉節點之每一者葉節點的該可壓縮性,該至少一個處理器亦被配置為:偵測該葉節點中該多個唯一坐標的剩餘坐標空間的一可用大小以用於對該多個唯一坐標的一壓縮。
  16. 根據請求項15之裝置,其中若該剩餘坐標空間的該可用大小大於一大小臨限值,則對與該一或多個葉節點之每一者葉節點相對應的該資料進行壓縮;或者若該剩餘坐標空間的該可用大小小於或等於一大小臨限值,則不壓縮與該一或多個葉節點之每一者葉節點相對應的該資料。
  17. 根據請求項1之裝置,其中該至少一個處理器亦被配置為: 在對與該一或多個葉節點之每一者節點相對應的該資料進行壓縮時調整以下各項中的至少一個:該多個圖元的一位置或者該多個圖元的一頂點順序。
  18. 根據請求項1之裝置,其中估計該一或多個葉節點之每一者葉節點的一可壓縮性辨識用於與該一或多個葉節點之每一者葉節點相對應的該資料的一儲存配置。
  19. 根據請求項1之裝置,其中該多個節點與一二叉樹邊界體積層級(BVH)相關聯,使得該一或多個葉節點是該一或多個內部節點中的至少一個內部節點的子節點。
  20. 根據請求項1之裝置,其中該多個邊界框是多個軸對準邊界框(AABB),並且其中對與該一或多個葉節點之每一者葉節點相對應的該資料的該壓縮與光線追蹤程序相關聯。
  21. 根據請求項1之裝置,其中該裝置是一無線通訊設備,亦包括以下各項中的至少一個:耦合至該至少一個處理器的一天線或一收發機。
  22. 一種圖形處理的方法,包括以下步驟: 將一場景中的多個圖元之每一者圖元分配到多個邊界框中的一個邊界框中,該多個圖元之每一者圖元包括一或多個頂點,該多個邊界框之每一者邊界框與包括一或多個內部節點和一或多個葉節點的多個節點相對應; 辨識該多個節點之每一者節點是該一或多個內部節點中的一個內部節點還是該一或多個葉節點中的一個葉節點; 估計該一或多個葉節點之每一者葉節點的一可壓縮性,該每個葉節點的該可壓縮性與該葉節點是否是可壓縮的相對應;及 若該一或多個葉節點之每一者葉節點被估計為不可壓縮的,則避免壓縮與該葉節點相對應的資料。
  23. 根據請求項22之方法,亦包括: 若該一或多個葉節點之每一者葉節點被估計為可壓縮的,則壓縮與該葉節點相對應的該資料;及 儲存與該一或多個葉節點中的被估計為可壓縮的每個葉節點相對應的該資料,其中與該一或多個葉節點之每一者葉節點相對應的該資料可包括以下各項中的至少一項:該葉節點的一或多個圖元坐標、該葉節點的一或多個圖元辨識符(ID),或者該葉節點的至少一個頂點排列。
  24. 根據請求項23之方法,亦包括: 在儲存與該一或多個葉節點中的被估計為可壓縮的每個葉節點相對應的該資料之前對與該葉節點相對應的該資料進行編碼,使得與該葉節點相對應的該資料以經編碼的一格式儲存。
  25. 根據請求項22之方法,其中估計該一或多個葉節點之每一者葉節點的該可壓縮性包括:辨識該葉節點的多個唯一坐標的一數量。
  26. 根據請求項25之方法,其中估計該一或多個葉節點之每一者葉節點的該可壓縮性亦包括:對該葉節點的該多個唯一坐標進行排序。
  27. 根據請求項25之方法,其中估計該一或多個葉節點之每一者葉節點的該可壓縮性亦包括: 計算該葉節點的該多個唯一坐標的一大小用於儲存;及 基於所計算的該大小來儲存該多個唯一坐標,其中該多個唯一坐標被儲存為葉節點資訊。
  28. 根據請求項22之方法,其中估計該一或多個葉節點之每一者葉節點的該可壓縮性包括: 調整與該葉節點相關聯的圖元的一數量;及 計算該葉節點的圖元辨識符(ID)位元組的一數量。
  29. 一種用於圖形處理的裝置,包括: 用於將一場景中的多個圖元之每一者圖元分配到多個邊界框中的一個邊界框中的手段,該多個圖元之每一者圖元包括一或多個頂點,該多個邊界框之每一者邊界框與包括一或多個內部節點和一或多個葉節點的多個節點相對應; 用於辨識該多個節點之每一者節點是該一或多個內部節點中的一個內部節點還是該一或多個葉節點中的一個葉節點的手段; 用於估計該一或多個葉節點之每一者葉節點的一可壓縮性的手段,該每個葉節點的該可壓縮性與該葉節點是否是可壓縮的相對應;及 用於若該一或多個葉節點之每一者葉節點被估計為不可壓縮的,則避免壓縮與該葉節點相對應的該資料的手段。
  30. 一種儲存用於圖形處理的電腦可執行代碼的非暫時性電腦可讀取媒體,該代碼在由一處理器執行時,使該處理器用於: 將一場景中的多個圖元之每一者圖元分配到多個邊界框中的一個邊界框中,該多個圖元之每一者圖元包括一或多個頂點,該多個邊界框之每一者邊界框與包括一或多個內部節點和一或多個葉節點的多個節點相對應; 辨識該多個節點之每一者節點是該一或多個內部節點中的一個內部節點還是該一或多個葉節點中的一個葉節點; 估計該一或多個葉節點之每一者葉節點的一可壓縮性,該每個葉節點的該可壓縮性與該葉節點是否是可壓縮的相對應;及 若該一或多個葉節點之每一者葉節點被估計為不可壓縮的,則避免壓縮與該葉節點相對應的該資料。
TW112101032A 2022-02-04 2023-01-10 使用可壓縮性預測的葉節點壓縮 TW202334896A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/650,071 2022-02-04
US17/650,071 US20230252685A1 (en) 2022-02-04 2022-02-04 Leaf node compression with compressibility prediction

Publications (1)

Publication Number Publication Date
TW202334896A true TW202334896A (zh) 2023-09-01

Family

ID=85410466

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112101032A TW202334896A (zh) 2022-02-04 2023-01-10 使用可壓縮性預測的葉節點壓縮

Country Status (3)

Country Link
US (1) US20230252685A1 (zh)
TW (1) TW202334896A (zh)
WO (1) WO2023150013A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10235338B2 (en) * 2014-09-04 2019-03-19 Nvidia Corporation Short stack traversal of tree data structures
US9928640B2 (en) * 2015-12-18 2018-03-27 Intel Corporation Decompression and traversal of a bounding volume hierarchy
US20170236335A1 (en) * 2016-02-11 2017-08-17 Hue As System and method for manipulating acceleration structures
US10984049B2 (en) * 2017-06-27 2021-04-20 Nvidia Corporation Performing traversal stack compression
US20220051467A1 (en) * 2020-08-17 2022-02-17 Intel Corpoation Apparatus and method for efficient graphics processing including ray tracing

Also Published As

Publication number Publication date
US20230252685A1 (en) 2023-08-10
WO2023150013A1 (en) 2023-08-10

Similar Documents

Publication Publication Date Title
US10297003B2 (en) Efficient saving and restoring of context information for context switches
US11373268B2 (en) Apparatus and method for graphics processing unit hybrid rendering
US11593990B1 (en) Storage of levels for bottom level bounding volume hierarchy
TW202213031A (zh) 經壓縮的幾何形狀渲染與資料串流
TW202141417A (zh) 用於高效多視圖光柵化的方法和裝置
US20230147244A1 (en) Methods and apparatus for occlusion handling techniques
TW202334896A (zh) 使用可壓縮性預測的葉節點壓縮
KR20230168281A (ko) 포비티드 렌더링에서의 콘텐츠 시프팅
US11080928B2 (en) Methods and apparatus for visibility stream management
TW202137141A (zh) 用於邊緣壓縮抗混疊的方法和裝置
US11978151B2 (en) Multi-level bounding volume hierarchy coalescing
US11763523B2 (en) Compressed THIT stack for hardware-accelerated GPU ray tracing
US20230252725A1 (en) Bounding volume hierarchy leaf node compression
US20230252726A1 (en) Compressed traversal stack for gpu ray tracing
US11893654B2 (en) Optimization of depth and shadow pass rendering in tile based architectures
US11373267B2 (en) Methods and apparatus for reducing the transfer of rendering information
WO2024055221A1 (en) Fast msaa techniques for graphics processing
KR20230149319A (ko) 프리미티브들의 배치들의 지오메트리 프로세싱을 위한 스케일러블 프리미티브 레이트 아키텍처
KR20240026992A (ko) Gpu 스코핑에서의 성능 오버헤드 최적화
TW202228082A (zh) 物件空間渲染中的佈告板層