TW202213031A - 經壓縮的幾何形狀渲染與資料串流 - Google Patents
經壓縮的幾何形狀渲染與資料串流 Download PDFInfo
- Publication number
- TW202213031A TW202213031A TW110129774A TW110129774A TW202213031A TW 202213031 A TW202213031 A TW 202213031A TW 110129774 A TW110129774 A TW 110129774A TW 110129774 A TW110129774 A TW 110129774A TW 202213031 A TW202213031 A TW 202213031A
- Authority
- TW
- Taiwan
- Prior art keywords
- groups
- primitive
- compressed
- group
- primitives
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Abstract
本案涉及用於圖形處理的方法和裝置。該裝置可以辨識與至少一個訊框相關聯的至少一個網格。該裝置亦可以將該至少一個網格劃分為複數個圖元群組,該複數個圖元群組中的每一者包括至少一個圖元和複數個頂點。該裝置亦可以將複數個圖元群組壓縮為複數個經壓縮圖元群組,該複數個經壓縮圖元群組與隨機存取相關聯。另外,該裝置可以解壓縮該複數個經壓縮圖元群組,該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組並行地解壓縮。
Description
本專利申請案主張於2020年8月18日提出申請的、題為「METHODS AND APPARATUS FOR COMPRESSED GEOMETRY RENDERING AND STREAMING」的美國臨時申請案第63/067,129號,以及於2021年8月11日提出申請的、題為「COMPRESSED GEOMETRY RENDERING AND STREAMING」的美國專利申案第17/400,065號的權益,這兩個申請案經由引用明確地將其全部合併於本案。
本案通常係關於處理系統,並且更具體地係關於一或多個用於圖形處理的技術。
計算設備通常利用圖形處理單元(GPU)來加速對用於顯示的圖形資料的渲染。此類計算設備可以包括,例如電腦工作站、諸如所謂的智慧手機的行動電話、嵌入式系統、個人電腦、平板電腦和視訊遊戲控制台。GPU執行圖形處理管線,這種管線包括一起操作以執行圖形處理命令並輸出訊框的一或多個處理階段。中央處理單元(CPU)可以經由向GPU發出一或多個圖形處理命令來控制GPU的操作。現如今的CPU通常能夠併發地執行多個應用,每個應用在執行期間可能需要利用該GPU。提供用於在顯示器上視覺化呈現的內容的設備一般包括GPU。
通常,設備的GPU被配置為執行圖形處理管線中的處理。然而,隨著無線通訊和更小型的手持設備的出現,對改進的圖形處理的需求越來越大。
以下提供一或多個態樣的簡化概要,以便提供對這些態樣的基本理解。本概要不是對所有設想的態樣的廣泛概述,其目的既不是辨識所有態樣的關鍵元素,亦不是描述任何或所有態樣的範疇。其唯一目的是以簡化的形式提供一或多個態樣的一些概念,作為後面提供的更詳細描述的序言。
在本案的一個態樣中,提供了一種方法、電腦可讀取媒體和裝置。該裝置可以是伺服器、客戶端設備、中央處理單元(CPU)、圖形處理單元(GPU)或可以執行圖形處理的任何裝置。該裝置可以辨識與至少一個訊框相關聯的至少一個網格。該裝置亦可以將該至少一個網格劃分為複數個圖元群組,該複數個圖元群組中的每一者包括至少一個圖元(primitive)和複數個頂點(vertexs)。該裝置亦可以將複數個圖元群組壓縮為複數個經壓縮圖元群組,該複數個經壓縮圖元群組與隨機存取相關聯。替代地,該裝置可以將該複數個經壓縮圖元群組儲存在緩衝器或記憶體中。該裝置亦可以發送該複數個經壓縮圖元群組。該裝置亦可以解壓縮該複數個經壓縮圖元群組,該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組並行地解壓縮。此外,該裝置在解壓縮該複數個經壓縮圖元群組後即可渲染與該複數個經壓縮圖元群組相對應的至少一個影像。
在附圖和下文的描述中闡述本案的一或多個實例的細節。從該描述和附圖以及請求項,本發明的其他特徵、目的和優勢將顯而易見。
一些類型的圖形處理單元(GPU)可能具有受限的記憶體,使得幾何建模可以變得更加詳細。例如,記憶體頻寬(BW)可能在一些類型的GPU中是限制因素。記憶體存取的局部性對於高效能而言可能是重要的,因為可能沒有理由期望快取記憶體一致性佈局立即可用。另外,在行動設備在記憶體大小和頻寬態樣可能比GPU有更多的限制。一些行動設備可以利用幾何壓縮來將很大的網格儲存在記憶體中。在行動設備上,記憶體存取可能消耗大量的功率。在網路上資料串流幾何形狀可以利用將幾何資料分區為封包,這可能造成計算管理負擔。網格著色器是接近快取記憶體一致性幾何形狀渲染的一種方法。例如,基於矩陣的網格佈局最佳化可以是一種改進的幾何形狀渲染方法。本案的多個態樣可以建立具有強局部一致性的獨立小網格。本案的多個態樣亦可以利用經壓縮小網格。另外,本案的多個態樣可以直接從網格著色器中的經壓縮表示來進行渲染。
以下參照附圖更全面地描述系統、裝置、電腦程式產品和方法的各個態樣。然而,本案可以以很多不同的形式體現,並且不應被解釋為限於貫穿本案提出的任何特定結構或功能。相反,提供這些態樣使得本案將是徹底和完整的,並且將向本發明所屬領域中具有通常知識者充分傳達本案的範疇。基於本文的教學,本發明所屬領域中具有通常知識者應當瞭解,本案的範疇意欲覆蓋本文揭示的系統、裝置、電腦程式產品和方法的任何態樣,無論是獨立於本案的其他態樣實現還是與本案的其他態樣結合實現的。例如,可以使用本文所述的任何數量的態樣來實現裝置或實踐方法。另外,本案的範疇意欲覆蓋這樣一種裝置或方法,該裝置或方法是使用除本文所述揭示內容的各個態樣之外的其他結構、功能或結構和功能實踐的。本文揭示的任何態樣可以由請求項的一或多個元素來體現。
儘管本文描述了各個態樣,但這些態樣的很多變化和排列落入本案的範疇內。儘管提到了本案的一些態樣的一些潛在益處和優勢,但本案的範疇並不意在局限於特定的益處、用途或目標。相反,本案的多個態樣意欲廣泛地適用於不同的無線技術、系統組態、網路和傳輸協定,其中一些以實例的方式在附圖和下文的描述中示出。詳細描述和附圖僅僅是對本案的說明而不是限制,本案的範疇由所附的請求項及其均等物定義。
參考各種裝置和方法提出了幾個態樣。這些裝置和方法在下文的詳細描述中描述,並在附圖中經由各種塊、部件、電路、程序、演算法等(統稱為「元件」)示出。這些元件可以使用電子硬體、電腦軟體或其任何組合來實現。這些元素是作為硬體還是軟體來實現,取決於特定應用和對整個系統施加的設計約束。
舉例而言,元件或元件的任何部分或元件的任何組合可以被實現為包括一或多個處理器(亦可以被稱為處理單元)的「處理系統」。處理器的實例包括微處理器、微控制器、圖形處理單元(GPS)、通用GPU(GPGPU)、中央處理單元(CPU)、應用處理器、數位訊號處理器(DSP)、精簡指令集計算(RISC)處理器、片上系統(SOC)、基頻處理器、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、可程式設計邏輯裝置(PLD)、狀態機、選通邏輯、個別硬體電路以及被配置為執行本案中所描述的各種功能的其他合適硬體。處理系統中的一或多個處理器可以執行軟體。軟體可以被廣義地解釋為意味著指令、指令集、代碼、程式碼片段、程式碼、程式、副程式、軟體部件、應用、軟體應用、套裝軟體、常式、子常式、物件、可執行程式、執行執行緒、程序、功能等,無論被稱為軟體、韌體、中介軟體、微碼、硬體描述語言或其他。術語應用可以指軟體。如本文所述,一或多個技術可以指被配置為執行一或多個功能的應用,即軟體。在此類實例中,應用可以儲存在記憶體上,例如處理器的片上記憶體、系統記憶體或任何其他記憶體。本文描述的硬體(諸如處理器)可以被配置為執行應用。例如,應用可以被描述為包括當由硬體執行時使該硬體執行本文所述的一或多個技術的代碼。作為實例,硬體可以從記憶體存取代碼並執行從記憶體存取的代碼以執行本文描述的一或多個技術。在一些實例中,在本案中辨識多個部件。在此類實例中,部件可以是硬體、軟體或其組合。部件可以是單獨的部件或單個部件的子部件。
因此,在本文描述的一或多個實例中,所描述的功能可以以硬體、軟體或其任何組合來實現。若在軟體中實現,則功能可以儲存在電腦可讀取媒體上或作為電腦可讀取媒體上的一或多個指令或代碼被編碼在電腦可讀取媒體上。電腦可讀取媒體包括電腦儲存媒體。儲存媒體可以是電腦可以存取的任何可用媒體。作為實例而非限制,此類電腦可讀取媒體可以包括隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電子可抹除可程式設計ROM(EEPROM)、光碟記憶體、磁碟記憶體、其他磁存放裝置、上述類型的電腦可讀取媒體的組合,或可用於以可由電腦存取的指令或資料結構的形式儲存電腦可執行代碼的任何其他媒體。
一般而言,本案描述了用於在單個設備或多個設備中具有圖形處理管線、改進圖形內容的渲染及/或減少處理單元(亦即,被配置為執行本文所述的一或多個技術的任何處理單元,諸如GPU)的負載的技術。例如,本案描述了在利用圖形處理的任何設備中用於圖形處理的技術。貫穿本案描述了其他實例益處。
如本文所用,術語「內容」的實例可以指「圖形內容」、「3D圖形設計的產品」、它們的再現,即「影像」,反之亦然。無論這些術語是作為形容詞、名詞還是其他詞類使用,這都是正確的。在一些實例中,如本文所使用的,術語「圖形內容」可以指由圖形處理管線的一或多個處理所產生的內容。在一些實例中,如本文所使用的,術語「圖形內容」可以指由配置為執行圖形處理的處理單元所產生的內容。在一些實例中,如本文所使用的,術語「圖形內容」可以指由圖形處理單元所產生的內容。
在一些實例中,如本文所使用的,術語「顯示內容」可以指由配置為執行顯示處理的處理單元所產生的內容。在一些實例中,如本文所使用的,術語「顯示內容」可以指由顯示處理單元所產生的內容。圖形內容可以被處理以成為顯示內容。例如,圖形處理單元可以將諸如訊框的圖形內容輸出到緩衝器(其可以被稱為訊框緩衝器)。顯示處理單元可以從該緩衝器讀取圖形內容,諸如一或多個訊框,並在其上執行一或多個顯示處理技術以產生顯示內容。例如,顯示處理單元可被配置為在一或多個渲染的層上執行合成以產生訊框。作為另一實例,顯示處理單元可被配置為將兩個或兩個以上層合成、混合或以其他方式組合為單個訊框。顯示處理單元可被配置為在訊框上執行縮放,例如,向上縮放或向下縮放。在一些實例中,訊框可以指的是層。在其他實例中,訊框可以指已經混合在一起以形分框的兩個或更多層,亦即,該訊框包括兩個或更多層,並且包括兩個或更多層的該訊框隨後可以被混合。
圖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的多個狀態。
上下文狀態可以被用於決定個體處理單元(例如,頂點提取器(VFD)、頂點著色器(VS)、著色器處理器或幾何形狀處理器)如何運作及/或處理單元以何種模式運作。為了做到這一點,GPU可以使用上下文暫存器和程式設計資料。在一些態樣中,GPU可以基於模式或狀態的上下文暫存器定義在管線中產生工作負載,例如頂點或圖元工作負載。一些處理單元(例如VFD)可以使用這些狀態來決定某些功能,例如,如何組裝頂點。由於這些模式或狀態可能改變,GPU可能需要改變相應的上下文。另外,對應於模式或狀態的工作負載可以跟隨改變的模式或狀態。
GPU可以以各種不同的方式渲染影像。在一些情況下,GPU可以使用渲染或平鋪渲染來對影像進行渲染。在平鋪渲染GPU中,影像可以被劃分或分隔為不同的部分或圖塊。在對影像分區之後,每個部分或圖塊可以被單獨渲染。平鋪渲染GPU可以將電腦圖形影像劃分為網格格式,使得網格的每個部分(即圖塊)被單獨地渲染。在一些態樣中,在分箱傳遞(binning pass)期間,影像可以被劃分為不同的二進位數字或圖塊中。此外,在分箱傳遞中,不同的圖元可以在特定的箱中被著色(例如,使用繪製調用)。在一些態樣中,在分箱傳遞期間,可以構造可見性流,其中可以辨識可見的圖元或繪製調用。
在渲染的一些態樣中,可以有多個處理階段或傳遞。例如,渲染可以在兩個傳遞中執行,例如,可見性傳遞和渲染傳遞。在可見性傳遞期間,GPU可以輸入渲染工作負載,記錄圖元或三角形的位置,隨後決定哪些基元或三角形落入訊框的哪個部分。在可見性傳遞的一些態樣中,GPU亦可以辨識或標記可見性串流之每一者圖元或三角形的可見性。在渲染傳遞期間,GPU可以輸入可見性流並一次處理訊框的一個部分。在一些態樣中,可以分析可見性串流以決定哪些圖元是可見的或不可見的。因此,可見的圖元可以得以處理。經由這樣做,GPU可以減少處理或渲染不可見的圖元的不必要工作負載。
在一些態樣中,可以在多個位置及/或多個設備上執行渲染,例如,以便在不同設備之間劃分渲染工作負載。例如,渲染可以在伺服器與客戶端設備之間被拆分,這可以被稱為「拆分渲染」。在一些實例中,拆分渲染可以是用於將內容帶到使用者設備或頭戴式顯示器(HMD)的方法,其中圖形處理的一部分可以在設備或HMD之外被執行,例如在伺服器處執行。
可以針對若干不同類型的應用(例如,虛擬實境(VR)應用、增強現實(AR)應用及/或擴展現實(XR)應用)執行拆分渲染。在VR應用中,在使用者設備處顯示的內容可以對應於人造或動畫的內容,例如,在伺服器或客戶端設備處渲染的內容。在AR或XR內容中,在使用者設備處顯示的內容的一部分可以對應於真實世界的內容,例如,真實世界中的物件,並且內容的一部分可以是人造或動畫的內容。另外,該人造或動畫的內容和真實世界的內容可以顯示在光學透視設備或視訊透視設備中,使得使用者可以同時觀看真實世界的物件和人造或動畫的內容。在一些態樣中,人造或動畫的內容可以被稱為增強內容,反之亦然。
拆分XR或AR系統亦可能在將渲染的內容交付到客戶端顯示器時引入延遲。在一些態樣中,與客戶端渲染相比,在伺服器上發生渲染時,這種延遲可能更高,但它亦可能支援更複雜的XR或AR應用。另外,在計算相機姿態的時間與內容顯現在客戶端顯示器上的時間之間可能存在不可忽略的延遲。例如,在拆分XR或AR系統中可能存在一定量的延遲。
一些類型的圖形處理單元(GPU)可能具有受限的記憶體,使得幾何模型可以無法更加詳細。例如,記憶體頻寬(BW)可能在一些類型的GPU中是限制因素,使得GPU的效能受到記憶體頻寬量的限制。另外,記憶體存取的局部性對於GPU處的高效能而言可能是重要的。例如,可能沒有理由期望快取記憶體一致性佈局立即可用,因此為了不損害渲染速度,若可能不依賴快取記憶體一致性佈局,則可能需要對本機存放區器存取的改進。
另外,行動設備在記憶體大小和頻寬態樣可能比GPU有更多的限制。例如,一些行動設備可以利用幾何壓縮將很大的網格儲存在記憶體中。在一些類型的行動設備上,記憶體存取可能消耗大量的功率。此外,在網路上資料串流幾何形狀可以利用將幾何資料分區為封包,這可能造成計算管理負擔。
網格著色器是解決快取記憶體一致性幾何形狀渲染的一種方法。對於GPU來說,建立具有較強局部一致性的獨立小網格可能是有益的。此外,允許經壓縮小網格對GPU來說可能是有益的。對於GPU來說,直接從網格著色器中的經壓縮表示來進行渲染亦可能是有益的。
本案的多個態樣可以建立/產生具有強局部一致性的獨立小網格。例如,根據本案的多個態樣的GPU可以建立具有強局部一致性的獨立小網格。本案的多個態樣亦可以建立/產生經壓縮小網格或利用經壓縮小網格。例如,根據本案各態樣的GPU可以建立或利用經壓縮小網格。本案的多個態樣亦可以直接從網格著色器中的經壓縮表示來渲染。例如,根據本案的多個態樣的GPU可以直接從網格著色器中的經壓縮表示來渲染。
對於本案的多個態樣的上述方法有許多益處或優勢。例如,本案的多個態樣可以包括記憶體節省,諸如經由以壓縮形式在記憶體中儲存很大的網格。本案的多個態樣亦可以包括記憶體頻寬節省,這在行動設備上可能特別重要。本案的多個態樣亦可以允許隱式的、即時的(on-the-fly)詳細級別(LOD)幾何形狀產生。在一些實例中,本案的多個態樣可以利用經由無連接使用者資料包通訊協定(UDP)的即時幾何形狀資料串流。
本案的多個態樣可以利用若干不同的編碼方法。例如,本案的多個態樣可以最佳化網格局部性。在本案的一些態樣中,一些類型的圖元可以常駐在某種類型的記憶體或緩衝器中,例如,空間上緊密的圖元可以緊密地常駐在記憶體或緩衝器中。
本案的多個態樣可以利用反向Cuthill-McKee方法,該方法可以利用連線性和程度重排序。本案的多個態樣亦可以利用嵌套分離或圖形分區。此外,本案的多個態樣可以利用全域(例如,網格)和局部(例如,小網格)最佳化。本案的多個態樣亦可以考慮頂點局部性方法,以及最佳化三角形局部性。
圖2圖示根據本案的一或多個技術的實例編碼方法的示意圖200。圖2中的圖200包括影像網格210,影像網格210包括複數個小網格和邊界框220。邊界框220包括x軸(例如,17位元)、y軸(例如,5位元)和z軸(例如3位元)。如圖2所示,本案的多個態樣可以產生小網格,其可以穿過最佳化的網格面。另外,本案的多個態樣可以聚集圖元/三角形,直到達到最大數量或者邊界框(BB)的任何邊超過閾值。例如,可以聚集影像網格210的圖元/三角形,直到達到最大數量或者邊界框220的任何邊超過閾值。並且,圖2圖示本案的多個態樣可以將邊界框變換為包括所包含頂點的單位立方體。
另外,本案的多個態樣可以利用頂點編碼,諸如從單位立方體中的位置進行頂點編碼。在一些態樣中,頂點編碼可以是均勻量化,例如,浮點到固定點。例如,每個維度x、y、z可以使用個別的數量的位元,其精度可以與邊界框維度成正比。這可能類似於其他頂點屬性,諸如法線和紋理。在一些實例中,本案的多個態樣可以利用每個小網格的輸出,其可以是具有廣義的條帶及/或量化頂點的仿射邊界框變換。
本案的多個態樣亦可以利用二次傳遞(two pass)編碼。在兩傳遞編碼中,經編碼小網格尺寸可以是快取記憶體行尺寸的倍數。在一些態樣中,兩傳遞編碼可以利用第一次傳遞來收集統計資訊。本案的多個態樣亦可以利用第二次傳遞來對每個小網格的圖元/三角形的數量進行最終選擇。在第二次傳遞中,本案的多個態樣可以經由允許頂點的更高位元率來修正頂點量化偽影,諸如小網格邊界處的間隙。此外,在第二次傳遞中,本案的各態樣可將此與用於即時的LOD幾何形狀產生的後解碼量化相結合。
在一些態樣中,任務著色器可以為每個小網格產生一個網格著色器(MS)。任務著色器亦可以對離散LOD進行決定,例如,每個LOD一個小網格集合。任務著色器亦可以執行截頭錐體剔除(frustum culling)。並且,MS可以將經壓縮小網格資料讀取到GPU快取記憶體中。在一個態樣,在解碼的第一步驟中,一個MS執行緒可以將一個頂點解碼到共用記憶體中。在該第一步驟中,本案的多個態樣可以獲取定點頂點座標,以及用邊界框矩陣對其進行變換。在解碼的第二步驟中,一個MS執行緒可以消耗一個三元組的條帶索引。在一些態樣中,該三元組可能是重疊的。並且,退化的三元組(例如,雙頂點或重置標誌)可以被丟棄。此外,太多的退化三角形可能對應於較低的產出及/或沒有額外的延遲。
圖3圖示根據本案的一或多個技術的實例網格變換的示意圖300。圖3中的示意圖300顯示量化之前和量化之後的單個小網格。例如,小網格310是在量化之前,小網格320是在量化之後。小網格310和小網格320兩者皆包括多個頂點,例如,頂點0、1、2和3。如圖3所示,本案的多個態樣可以即時產生視圖相關的LOD幾何形狀。對於MS之每一者已解碼小網格,本案的多個態樣可以將小網格三角形變換到世界空間。例如,圖3中的量化將小網格310變換為小網格320。本案的多個態樣可以基於對數相機距離或世界空間或物件空間對準的規則網格來量化世界空間頂點。若三角形是退化的,則本案的多個態樣可以丟棄它們,使得它們可以不離開該MS。
圖4圖示根據本案的一或多個技術的實例網格變換的示意圖400。圖4中的示意圖400顯示切換LOD之前和之後的小網格。例如,小網格410是在切換LOD之前,小網格420是在切換LOD之後。小網格411和小網格412是相鄰的,並且可以具有公共邊界。兩側的邊界三角形413可以被群組為該網格中的單獨部分。這可以解耦對小網格411和小網格412的LOD的選擇。在右側,小網格421使用粗LOD,小網格422使用細LOD。邊界三角形423亦被簡化(存在更少的三角形),但是小網格422的三角形計數可以保持不變(小網格422的邊界頂點被移動)。
在一些態樣中,幾何LOD即時產生在客戶端-伺服器環境中可能是有用的,例如,向量資料串流。客戶端設備上的即時LOD幾何形狀產生可以用於動態減少光柵化器負載。若客戶端設備已經具有詳細的LOD產生,則伺服器可以計算粗LOD並對幾何形狀進行著色。並且,伺服器可以發送粗著色及/或可以不發送幾何形狀。客戶端設備亦可以即時計算粗LOD產生以應用著色。
本案的多個態樣亦可以利用使用者資料包通訊協定(UDP)來對幾何形狀進行高效資料串流。在一些情況下,UDP可能是不需連線的,並包括最小的協定管理負擔。在用於對幾何形狀的高效資料串流的UDP中,可能沒有內置的糾錯或重傳機制。使用UDP進行幾何形狀的高效資料串流亦可能是一種有效的定製解決方案,其具有簡單的確認(ACK)或否定ACK(NACK)方案來提示重傳。UDP亦可以使用靜態LOD產生來發送回退幾何形狀。
在一些態樣中,小網格可以是自包含的,使得一個小網格可以被打包為單個UDP封包中。小網格亦可以被獨立地解壓縮和渲染。丟失的封包可能導致物件中的小的、暫態的孔洞及/或在重傳到達時消失。此外,可能不需要等待重傳,因為渲染可以伴隨著暫時和輕微的保真度損失而繼續。
本案的多個態樣可以包括用於即時渲染和幾何形狀的資料串流的系統,其可以經由利用小網格中的幾何局部性將網格拆分為快取記憶體一致性小網格並將其變換為經壓縮表示。本案的多個態樣亦可以包括一種系統,該系統經由UDP封包在網路上傳遞自包含的、經壓縮小網格。另外,本案的多個態樣可以包括對網格著色器中的經壓縮小網格進行解碼的系統。本案的多個態樣亦可以包括一種系統,該系統支援使用後解碼量化的即時的、視圖相關的LOD產生。
圖5是根據本案的一或多個技術的圖形處理的通訊流程圖500。如圖5所示,根據本案的一或多個技術,示意圖500包括GPU部件502(例如,伺服器或客戶端設備)、GPU部件504(例如,伺服器或客戶端設備)和緩衝器/記憶體506之間的實例通訊。
在510處,GPU部件502可以辨識與至少一個訊框相關聯的至少一個網格,例如網格512。例如,GPU部件502可以從GPU部件504接收與至少一個訊框相關聯的至少一個網格,例如網格512。
在520處,GPU部件502可以將該至少一個網格劃分為複數個圖元群組,該複數個圖元群組中的每一者包括至少一個圖元和複數個頂點。該複數個圖元群組中的每一者可對應於一小網格。在一些實例中,該複數個圖元群組中的第一圖元群組可以連接到該複數個圖元群組中的第二圖元群組或者與其相鄰,其中該第一圖元群組的至少一個頂點可以對應於該第二圖元群組的至少一個頂點。並且,該第一圖元群組的至少一個頂點或該第二圖元群組的至少一個頂點可以儲存在該第一圖元群組或該第二圖元群組中。
在530處,GPU部件502可以將複數個圖元群組壓縮為複數個經壓縮圖元群組,該複數個經壓縮圖元群組與隨機存取相關聯。
在540處,GPU部件502可以將複數個經壓縮圖元群組(例如,經壓縮圖元542)儲存在緩衝器或記憶體中(例如,緩衝器/記憶體506)。
在550處,GPU部件502可以發送該複數個經壓縮圖元群組。例如,GPU部件502可以向GPU部件504或緩衝器/記憶體506發送經壓縮圖元542。在一些態樣中,複數個經壓縮圖元群組可以經由一或多個資料封包而被發送。該一或多個資料封包可以是一或多個獨立資料封包或一或多個使用者資料包通訊協定(UDP)封包。
在560處,GPU部件502可以解壓縮該複數個經壓縮圖元群組,該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組並行地解壓縮。
在一些態樣中,該複數個經壓縮圖元群組可以由網格著色器或放大著色器中的至少一個進行解壓縮。該複數個經壓縮圖元群組中的至少一個第一群組可與該複數個經壓縮圖元群組中的至少一個第二群組由網格著色器或放大著色器並行地解壓縮。該至少一個第一群組中的至少一個頂點可以與該至少一個第一群組中的至少一個其他頂點並行地解壓縮。該至少一個第一群組中的至少一個圖元可以與該至少一個第一群組中的至少一個其他圖元並行地解壓縮。該至少一個第二群組中的至少一個頂點可以與該至少一個第二群組中的至少一個其他頂點並行地解壓縮。該至少一個第二群組中的至少一個圖元可以與該至少一個第二群組中的至少一個其他圖元並行地解壓縮。
在570處,GPU部件502可以在解壓縮該複數個經壓縮圖元群組後即渲染與該複數個經壓縮圖元群組相對應的至少一個影像。在一些態樣中,該複數個經壓縮圖元群組中的一或多個經壓縮圖元群組可以在該複數個經壓縮圖元群組中的一或多個其他經壓縮圖元群組之前被解壓縮和渲染。
圖6圖示根據本案的一或多個技術的實例方法的實例流程圖600。該方法可以由諸如伺服器、客戶端設備、GPU、CPU的裝置,或者用於圖形處理的裝置執行。
在602處,裝置可以辨識與至少一個訊框相關聯的至少一個網格,如結合圖2至圖5中的實例所述。例如,GPU部件502可以辨識與至少一個訊框相關聯的至少一個網格,如圖5的510中所述。此外,圖1中的處理單元120可以執行步驟602。
在604處,該裝置可以將該至少一個網格劃分為複數個圖元群組,該複數個圖元群組中的每一者包括至少一個圖元和複數個頂點,如結合圖2至圖5中的實例所述。例如,GPU部件502可以將該至少一個網格劃分為複數個圖元群組,該複數個圖元群組中的每一者包括至少一個圖元和複數個頂點,如圖5的502中所述。此外,圖1中的處理單元120可以執行步驟604。該複數個圖元群組中的每一者可對應於一小網格。在一些實例中,該複數個圖元群組中的第一圖元群組可以連接到該複數個圖元群組中的第二圖元群組或者與其相鄰,其中該第一圖元群組的至少一個頂點可以對應於該第二圖元群組的至少一個頂點。並且,該第一圖元群組的至少一個頂點或該第二圖元群組的至少一個頂點可以儲存在該第一圖元群組或該第二圖元群組中。
在606處,該裝置可以將複數個圖元群組壓縮為複數個經壓縮圖元群組,該複數個經壓縮圖元群組與隨機存取相關聯,如結合圖2至圖5中的實例所述。例如,GPU部件502可以將複數個圖元群組壓縮為複數個經壓縮圖元群組,該複數個經壓縮圖元群組與隨機存取相關聯,如圖5的530中所述。此外,圖1中的處理單元120可以執行步驟606。
在612處,該裝置可以解壓縮該複數個經壓縮圖元群組,該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組並行地解壓縮,如結合圖2至圖5中的實例所述。例如,GPU部件502可以解壓縮該複數個經壓縮圖元群組,該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組並行地解壓縮,如圖5的560中所述。此外,圖1中的處理單元120可以執行步驟612。
在一些態樣中,該複數個經壓縮圖元群組可以由網格著色器或放大著色器中的至少一個進行解壓縮。該複數個經壓縮圖元群組中的至少一個第一群組可與該複數個經壓縮圖元群組中的至少一個第二群組由網格著色器或放大著色器並行地解壓縮。該至少一個第一群組中的至少一個頂點可以與該至少一個第一群組中的至少一個其他頂點並行地解壓縮。該至少一個第一群組中的至少一個圖元可以與該至少一個第一群組中的至少一個其他圖元並行地解壓縮。該至少一個第二群組中的至少一個頂點可以與該至少一個第二群組中的至少一個其他頂點並行地解壓縮。該至少一個第二群組中的至少一個圖元可以與該至少一個第二群組中的至少一個其他圖元並行地解壓縮。
圖7圖示根據本案的一或多個技術的實例方法的實例流程圖700。該方法可以由諸如伺服器、客戶端設備、GPU、CPU的裝置,或者用於圖形處理的裝置執行。
在702處,裝置可以辨識與至少一個訊框相關聯的至少一個網格,如結合圖2至圖5中的實例所述。例如,GPU部件502可以辨識與至少一個訊框相關聯的至少一個網格,如圖5的510中所述。此外,圖1中的處理單元120可以執行步驟702。
在704處,該裝置可以將該至少一個網格劃分為複數個圖元群組,該複數個圖元群組中的每一者包括至少一個圖元和複數個頂點,如結合圖2至圖5中的實例所述。例如,GPU部件502可以將該至少一個網格劃分為複數個圖元群組,該複數個圖元群組中的每一者包括至少一個圖元和複數個頂點,如圖5的502中所述。此外,圖1中的處理單元120可以執行步驟704。該複數個圖元群組中的每一者可對應於一小網格。在一些實例中,該複數個圖元群組中的第一圖元群組可以連接到該複數個圖元群組中的第二圖元群組或者與其相鄰,其中該第一圖元群組的至少一個頂點可以對應於該第二圖元群組的至少一個頂點。並且,該第一圖元群組的至少一個頂點或該第二圖元群組的至少一個頂點可以儲存在該第一圖元群組或該第二圖元群組中。
在706處,該裝置可以將多個圖元群組壓縮為多個經壓縮圖元群組,該多個經壓縮圖元群組與隨機存取相關聯,如結合圖2至圖5中的實例所述。例如,GPU部件502可以將多個圖元群組壓縮為多個經壓縮圖元群組,該多個經壓縮圖元群組與隨機存取相關聯,如圖5的530中所述。此外,圖1中的處理單元120可以執行步驟706。
在708處,該裝置可以將該複數個經壓縮圖元群組儲存在緩衝器或記憶體中,如結合圖2至圖5中的實例所述。例如,GPU部件502可將複數個經壓縮圖元群組儲存在緩衝器或記憶體中,如圖5的540中所述。此外,圖1中的處理單元120可以執行步驟708。
在710處,該裝置可以發送該複數個經壓縮圖元群組,如結合圖2至圖5中的實例所述。例如,GPU部件502可以發送該複數個經壓縮圖元群組,如圖5的550中該。此外,圖1中的處理單元120可以執行步驟710。在一些態樣中,複數個經壓縮圖元群組可以經由一或多個資料封包而被發送。該一或多個資料封包可以是一或多個獨立資料封包或一或多個使用者資料包通訊協定(UDP)封包。
在712處,該裝置可以解壓縮該複數個經壓縮圖元群組,該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組並行地解壓縮,如結合圖2中的實例所述。例如,GPU部件702可以解壓縮該複數個經壓縮圖元群組,該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組並行地解壓縮,如圖7的760中所述。此外,圖1中的處理單元120可以執行步驟912。
在一些態樣中,該複數個經壓縮圖元群組可以由網格著色器或放大著色器中的至少一個進行解壓縮。該複數個經壓縮圖元群組中的至少一個第一群組可與該複數個經壓縮圖元群組中的至少一個第二群組由網格著色器或放大著色器並行地解壓縮。該至少一個第一群組中的至少一個頂點可以與該至少一個第一群組中的至少一個其他頂點並行地解壓縮。該至少一個第一群組中的至少一個圖元可以與該至少一個第一群組中的至少一個其他圖元並行地解壓縮。該至少一個第二群組中的至少一個頂點可以與該至少一個第二群組中的至少一個其他頂點並行地解壓縮。該至少一個第二群組中的至少一個圖元可以與該至少一個第二群組中的至少一個其他圖元並行地解壓縮。
在714處,該裝置可以在解壓縮該複數個經壓縮圖元群組後即渲染與該複數個經壓縮圖元群組相對應的至少一個影像,如結合圖2至圖7中的實例所述。例如,GPU部件702可以在解壓縮該複數個經壓縮圖元群組後即渲染與該複數個經壓縮圖元群組相對應的至少一個影像,如圖7的770中所述。此外,圖1中的處理單元120可以執行步驟714。在一些態樣中,該複數個經壓縮圖元群組中的一或多個經壓縮圖元群組可以在該複數個經壓縮圖元群組中的一或多個其他經壓縮圖元群組之前被解壓縮和渲染。
在一個配置中,提供了一種用於圖形處理的方法或裝置。該裝置可以是伺服器、客戶端設備、CPU、GPU或可以執行圖形處理的一些其他處理器。在一個態樣,該裝置可以是設備104內的處理單元120,或者可以是設備104或另一設備內的某個其他硬體。該裝置(例如,處理單元120)可以包括:用於辨識與至少一個訊框相關聯的至少一個網格的部件;用於將該至少一個網格劃分為複數個圖元群組的部件,該複數個圖元群組中的每一者包括至少一個圖元和複數個頂點;用於將該複數個圖元群組壓縮為複數個經壓縮圖元群組的部件,該複數個經壓縮圖元群組與隨機存取相關聯;用於對該複數經壓縮圖元群組進行解壓縮的部件,該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組並行地解壓縮;用於在解壓縮該複數個經壓縮圖元群組後即渲染與該複數個經壓縮圖元群組相對應的至少一個影像的部件;用於將該複數個經壓縮圖元群組儲存在緩衝器或記憶體中的部件;及用於發送該複數個經壓縮圖元群組的部件。
本文描述的主題可以被實現以實現一或多個益處或優點。例如,所描述的圖形處理技術可由伺服器、客戶端設備、GPU、CPU或可以執行圖形處理以實現本文所描述的拆分渲染技術的某個其他處理器使用。與其他圖形處理技術相比,這亦可以以低成本實現。此外,本文的圖形處理技術可以改進或加快資料處理或執行。此外,本文的圖形處理技術可以提高資源或資料利用率及/或資源效率。另外,本案的多個態樣可以包括可以利用經壓縮幾何形狀渲染和資料串流來減少所使用的頻寬量、降低功率消耗及/或提高處理速度的拆分渲染程序。
根據本案,術語「或」在上下文沒有另外指示的情況下可以被解釋為「及/或」。另外,儘管諸如「一或多個」或「至少一個」等短語可能已經用於本文揭示的一些特徵而不是其他特徵,但是未使用這種語言的特徵在上下文沒有另外指示的情況下可以被解釋為具有這種隱含的含義。
在一或多個實例中,本文所描述的功能可以以硬體、軟體、韌體或其任何組合來實現。例如,儘管術語「處理單元」貫穿本案被使用,但此類處理單元可以以硬體、軟體、韌體或其任何組合來實現。若在軟體中實現了本文描述的任何功能、處理單元、技術或其他模組,則本文描述的功能、處理單元、技術或其他模組可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或者在電腦可讀取媒體上發送。電腦可讀取媒體可以包括電腦資料儲存媒體或通訊媒體,通訊媒體包括促進電腦程式從一個地方轉移到另一個地方的任何媒體。以這種方式,電腦可讀取媒體一般可以對應於(1)有形的電腦可讀取儲存媒體,其是非暫時性的,或者(2)諸如信號或載波的通訊媒體。資料儲存媒體可以是可由一或多個電腦或一或多個處理器存取以取回指令、代碼及/或資料結構以實現本案中描述的技術的任何可用媒體。作為實例而非限制,這種電腦可讀取媒體可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟儲存、磁碟儲存或其他磁存放裝置。如本文所使用,磁碟和光碟包括壓縮磁碟(CD)、雷射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中磁碟通常以磁性方式再現資料,而光碟用鐳射以光學方式再現資料。上述的組合亦應該包括在電腦可讀取媒體的範疇內。電腦程式產品可以包括電腦可讀取媒體。
代碼可以由一或多個處理器執行,諸如一或多個數位訊號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、算數邏輯單位(ALU)、現場可程式設計邏輯陣列(FPGA)或其他等效的整合或個別邏輯電路。因此,本文使用的術語「處理器」可以指任何前述結構或適合於實現本文描述的技術的任何其他結構。並且,該等技術可以在一或多個電路或邏輯元件中完全實現。
本案的技術可以在包括無線手機、積體電路(IC)或IC集合(例如晶片組)的多種設備或裝置中實現。在本案中描述了各種部件、模組或單元,以強調被配置為執行所揭示的技術的設備的功能態樣,但不一定需要由不同的硬體單元實現。相反,如前述,各種單元可以組合在任何硬體單元中,或者由包括如前述的一或多個處理器的交互動操作硬體單元集合結合適用的軟體及/或韌體提供。
已經描述了各種實例。這些和其他實例都處於請求項的範疇內。
以下態樣僅是說明性的,並且可以與本文描述的其他態樣或觀點相結合,但非限制性的。
態樣1是一種用於圖形處理的裝置,該裝置包括耦合到記憶體的至少一個處理器,並且該處理器被配置為:辨識與至少一個訊框相關聯的至少一個網格;將該至少一個網格劃分為複數個圖元群組,該複數個圖元群組中的每一者包括至少一個圖元和複數個頂點;將該複數個圖元群組壓縮為複數個經壓縮圖元群組,該複數個經壓縮圖元群組與隨機存取相關聯;及對該複數個經壓縮圖元群組進行解壓縮,該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組並行地解壓縮。
態樣2是態樣1的裝置,其中該這絲毫一個處理器進一步被配置為:在解壓縮該複數個經壓縮圖元群組後即渲染與該複數個經壓縮圖元群組相對應的至少一個影像。
態樣3是態樣1和態樣2的任一項的裝置,其中該複數個經壓縮圖元群組中的一或多個經壓縮圖元群組在該複數個經壓縮圖元群組中的一或多個其他經壓縮圖元群組之前被解壓縮和渲染。
態樣4是態樣1至態樣3的任一項的裝置,其中該複數個經壓縮圖元群組由網格著色器或放大著色器中的至少一個進行解壓縮。
態樣5是態樣1至態樣4的任一項的裝置,其中該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組由網格著色器或放大著色器並行地解壓縮。
態樣6是態樣1至態樣5的任一項的裝置,其中該至少一個第一群組中的至少一個頂點與該至少一個第一群組中的至少一個其他頂點並行地解壓縮;或者其中該至少一個第一群組中的至少一個圖元與該至少一個第一群組中的至少一個其他圖元並行地解壓縮。
態樣7是態樣1至態樣6的任一項的裝置,其中該至少一個第二群組中的至少一個頂點與該至少一個第二群組中的至少一個其他頂點並行地解壓縮;或者其中該至少一個第二群組中的至少一個圖元與該至少一個第二群組中的至少一個其他圖元並行地解壓縮。
態樣8是態樣1至態樣7的任一項的裝置,其中該複數個圖元群組中的每一者對應於一小網格。
態樣9是態樣1至態樣8的任一項的裝置,其中該複數個圖元群組中的第一圖元群組連接到該複數個圖元群組中的第二圖元群組或者與其相鄰,其中該第一圖元群組的至少一個頂點對應於該第二圖元群組的至少一個頂點。
態樣10是態樣1至態樣9的任一項的裝置,其中該第一圖元群組的至少一個頂點或該第二圖元群組的至少一個頂點被儲存在該第一圖元群組或該第二圖元群組中。
態樣11是態樣1至態樣10的任一項的裝置,其中該至少一個處理器進一步被配置為:將該複數個經壓縮圖元群組儲存在緩衝器或記憶體中。
態樣12是態樣1至態樣11的任一項的裝置,其中該至少一個處理器進一步被配置為:發送該複數個經壓縮圖元群組。
態樣13是態樣1至態樣12的任一項的裝置,其中該複數個經壓縮圖元群組是經由一或多個資料封包發送的。
態樣14是態樣1至態樣13的任一項的裝置,其中該一或多個資料封包是一或多個獨立資料封包或一或多個使用者資料包通訊協定(UDP)封包。
態樣15是態樣1至態樣14的任一項的裝置,亦包括耦合到該至少一個處理器的收發器。
態樣16是用於實現態樣1至態樣15的任一項的無線通訊方法。
態樣17是一種用於無線通訊的裝置,該裝置包括用於實現態樣1至態樣15的任一項的部件。
態樣18是儲存電腦可執行代碼的電腦可讀取媒體,其中當由處理器執行代碼時,該代碼使處理器實現態樣1至態樣15的任一項。
100:系統
104:設備
107:圖形處理管線
120:處理單元
121:內部記憶體
122:內容編碼器/解碼器
123:內部記憶體
124:系統記憶體
126:通訊介面
127:顯示處理器
128:接收器
130:發送器
131:顯示器
132:收發器
198:決定部件
200:圖
210:影像網格
220:邊界框
300:示意圖
310:小網格
320:小網格
400:示意圖
410:小網格
411:小網格
412:小網格
413:邊界三角形
420:小網格
421:小網格
422:小網格
423:邊界三角形
500:通訊流程圖
502:GPU部件
504:GPU部件
506:緩衝器/記憶體
510:方塊
512:方塊
520:方塊
530:方塊
540:方塊
542:程序
550:方塊
560:方塊
570:方塊
600:流程圖
602:方塊
604:方塊
606:方塊
612:方塊
700:流程圖
702:方塊
704:方塊
706:方塊
708:方塊
710:方塊
712:方塊
714:方塊
圖1是示出根據本案的一或多個技術的實例內容產生系統的方塊圖。
圖2圖示根據本案的一或多個技術的實例編碼方法的示意圖。
圖3圖示根據本案的一或多個技術的實例網格變換的示意圖。
圖4圖示根據本案的一或多個技術的實例網格變換的示意圖。
圖5是示出根據本案的一或多個技術的部件之間的實例通訊的通訊流程圖。
圖6圖示根據本案的一或多個技術的實例方法的實例流程圖。
圖7圖示根據本案的一或多個技術的實例方法的實例流程圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
500:通訊流程圖
502:GPU部件
504:GPU部件
506:緩衝器/記憶體
510:方塊
512:方塊
520:方塊
530:方塊
540:方塊
542:程序
550:方塊
560:方塊
570:方塊
Claims (30)
- 一種用於圖形處理的裝置,包括: 一記憶體;及 至少一個處理器,該處理器耦合到該記憶體,並且被配置為: 辨識與至少一個訊框相關聯的至少一個網格; 將該至少一個網格劃分為複數個圖元群組,該複數個圖元群組中的每一者包括至少一個圖元和複數個頂點; 將該複數個圖元群組壓縮為複數個經壓縮圖元群組,該複數個經壓縮圖元群組與隨機存取相關聯;及 解壓縮該複數個經壓縮圖元群組,該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組並行地解壓縮。
- 根據請求項1之裝置,其中該至少一個處理器亦被配置為: 在解壓縮該複數個經壓縮圖元群組後即渲染與該複數個經壓縮圖元群組相對應的至少一個影像。
- 根據請求項2之裝置,其中該複數個經壓縮圖元群組中的一或多個經壓縮圖元群組在該複數個經壓縮圖元群組中的一或多個其他經壓縮圖元群組之前被解壓縮和渲染。
- 根據請求項2之裝置,其中該複數個經壓縮圖元群組由一網格著色器或一放大著色器中的至少一個進行解壓縮。
- 根據請求項4之裝置,其中該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組由該網格著色器或該放大著色器並行地解壓縮。
- 根據請求項5之裝置,其中該至少一個第一群組中的至少一個頂點與該至少一個第一群組中的至少一個其他頂點並行地解壓縮;或者 其中該至少一個第一群組中的至少一個圖元與該至少一個第一群組中的至少一個其他圖元並行地解壓縮。
- 根據請求項5之裝置,其中該至少一個第二群組中的至少一個頂點與該至少一個第二群組中的至少一個其他頂點並行地解壓縮;或者 其中該至少一個第二群組中的至少一個圖元與該至少一個第二群組中的至少一個其他圖元並行地解壓縮。
- 根據請求項1之裝置,其中該複數個圖元群組中的每一者對應於一小網格。
- 根據請求項1之裝置,其中該複數個圖元群組中的一第一圖元群組連接到該複數個圖元群組中的一第二圖元群組或者與其相鄰,其中該第一圖元群組的至少一個頂點對應於該第二圖元群組的至少一個頂點。
- 根據請求項9之裝置,其中該第一圖元群組的該至少一個頂點或者該第二圖元群組的該至少一個頂點被儲存在該第一圖元群組或該第二圖元群組中。
- 根據請求項1之裝置,其中該至少一個處理器亦被配置為: 將該複數個經壓縮圖元群組儲存在一緩衝器或記憶體中。
- 根據請求項1之裝置,其中該至少一個處理器亦被配置為: 發送該複數個經壓縮圖元群組。
- 根據請求項12之裝置,亦包括耦合到該至少一個處理器的一收發器,其中該複數個經壓縮圖元群組是經由一或多個資料封包發送的。
- 根據請求項13之裝置,其中該一或多個資料封包是一或多個獨立資料封包或一或多個使用者資料包通訊協定(UDP)封包。
- 一種圖形處理方法,包括以下步驟: 辨識與至少一個訊框相關聯的至少一個網格; 將該至少一個網格劃分為複數個圖元群組,該複數個圖元群組中的每一者包括至少一個圖元和複數個頂點; 將該複數個圖元群組壓縮為複數個經壓縮圖元群組,該複數個經壓縮圖元群組與隨機存取相關聯;及 解壓縮該複數個經壓縮圖元群組,該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組並行地解壓縮。
- 根據請求項15之方法,亦包括以下步驟: 在解壓縮該複數個經壓縮圖元群組後即渲染與該複數個經壓縮圖元群組相對應的至少一個影像。
- 根據請求項16之方法,其中該複數個經壓縮圖元群組中的一或多個經壓縮圖元群組在該複數個經壓縮圖元群組中的一或多個其他經壓縮圖元群組之前被解壓縮和渲染。
- 根據請求項16之方法,其中該複數個經壓縮圖元群組由一網格著色器或一放大著色器中的至少一個進行解壓縮。
- 根據請求項18之方法,其中該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組由該網格著色器或該放大著色器並行地解壓縮。
- 根據請求項19之方法,其中該至少一個第一群組中的至少一個頂點與該至少一個第一群組中的至少一個其他頂點並行地解壓縮;或者 其中該至少一個第一群組中的至少一個圖元與該至少一個第一群組中的至少一個其他圖元並行地解壓縮。
- 根據請求項19之方法,其中該至少一個第二群組中的至少一個頂點與該至少一個第二群組中的至少一個其他頂點並行地解壓縮;或者 其中該至少一個第二群組中的至少一個圖元與該至少一個第二群組中的至少一個其他圖元並行地解壓縮。
- 根據請求項15之方法,其中該複數個圖元群組中的每一者對應於一小網格。
- 根據請求項15之方法,其中該複數個圖元群組中的一第一圖元群組連接到該複數個圖元群組中的一第二圖元群組或者與其相鄰,其中該第一圖元群組的至少一個頂點對應於該第二圖元群組的至少一個頂點。
- 根據請求項23之方法,其中該第一圖元群組的該至少一個頂點或者該第二圖元群組的該至少一個頂點被儲存在該第一圖元群組或該第二圖元群組中。
- 根據請求項15之方法,亦包括以下步驟: 將該複數個經壓縮圖元群組儲存在一緩衝器或記憶體中。
- 根據請求項15之方法,亦包括以下步驟: 發送該複數個經壓縮圖元群組。
- 根據請求項26之方法,其中該複數個經壓縮圖元群組是經由一或多個資料封包發送的。
- 根據請求項27之方法,其中該一或多個資料封包是一或多個獨立資料封包或一或多個使用者資料包通訊協定(UDP)封包。
- 一種用於圖形處理的裝置,包括: 用於辨識與至少一個訊框相關聯的至少一個網格的部件; 用於將該至少一個網格劃分為複數個圖元群組的部件,該複數個圖元群組中的每一者包括至少一個圖元和複數個頂點; 用於將該複數個圖元群組壓縮為複數個經壓縮圖元群組的部件,該複數個經壓縮圖元群組與隨機存取相關聯;及 用於解壓縮該複數個經壓縮圖元群組的部件,該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組並行地解壓縮。
- 一種儲存用於圖形處理的電腦可執行代碼的電腦可讀取媒體,當由一處理器執行時,該代碼使該處理器: 辨識與至少一個訊框相關聯的至少一個網格; 將該至少一個網格劃分為複數個圖元群組,該複數個圖元群組中的每一者包括至少一個圖元和複數個頂點; 將該複數個圖元群組壓縮為複數個經壓縮圖元群組,該複數個經壓縮圖元群組與隨機存取相關聯;及 解壓縮該複數個經壓縮圖元群組,該複數個經壓縮圖元群組中的至少一個第一群組與該複數個經壓縮圖元群組中的至少一個第二群組並行地解壓縮。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063067129P | 2020-08-18 | 2020-08-18 | |
US63/067,129 | 2020-08-18 | ||
US17/400,065 US20220058872A1 (en) | 2020-08-18 | 2021-08-11 | Compressed geometry rendering and streaming |
US17/400,065 | 2021-08-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202213031A true TW202213031A (zh) | 2022-04-01 |
Family
ID=80269688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110129774A TW202213031A (zh) | 2020-08-18 | 2021-08-12 | 經壓縮的幾何形狀渲染與資料串流 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20220058872A1 (zh) |
EP (1) | EP4200814A1 (zh) |
KR (1) | KR20230052884A (zh) |
CN (1) | CN116529772A (zh) |
BR (1) | BR112023002342A2 (zh) |
TW (1) | TW202213031A (zh) |
WO (1) | WO2022040017A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230386133A1 (en) * | 2022-05-31 | 2023-11-30 | Microsoft Technology Licensing, Llc | Graphics processing systems and methods with geometry level of detail processing |
CN116188243A (zh) * | 2023-03-02 | 2023-05-30 | 格兰菲智能科技有限公司 | 图形绘制流水线管理方法和图形处理器 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6459429B1 (en) * | 1999-06-14 | 2002-10-01 | Sun Microsystems, Inc. | Segmenting compressed graphics data for parallel decompression and rendering |
US7081893B2 (en) * | 2001-10-10 | 2006-07-25 | Sony Computer Entertainment America Inc. | System and method for point pushing to render polygons in environments with changing levels of detail |
US8463918B2 (en) * | 2010-01-22 | 2013-06-11 | Microsoft Corporation | Loss tolerant protocol for remoting desktop graphics |
GB2477368B (en) * | 2010-10-11 | 2011-12-14 | Visual Technology Services Ltd | Triangle mesh compression |
US9532056B2 (en) * | 2011-07-18 | 2016-12-27 | Thomson Licensing | Method for adaptive entropy coding of tree structures |
US10600229B2 (en) * | 2018-01-26 | 2020-03-24 | Nvidia Corporation | Techniques for representing and processing geometry within a graphics processing pipeline |
US20200311042A1 (en) * | 2019-04-01 | 2020-10-01 | Intel Corporation | Hardware index mapping mechanism |
-
2021
- 2021-08-11 US US17/400,065 patent/US20220058872A1/en active Pending
- 2021-08-12 CN CN202180055464.0A patent/CN116529772A/zh active Pending
- 2021-08-12 WO PCT/US2021/045811 patent/WO2022040017A1/en active Application Filing
- 2021-08-12 KR KR1020237004834A patent/KR20230052884A/ko unknown
- 2021-08-12 TW TW110129774A patent/TW202213031A/zh unknown
- 2021-08-12 EP EP21765797.2A patent/EP4200814A1/en active Pending
- 2021-08-12 BR BR112023002342A patent/BR112023002342A2/pt unknown
Also Published As
Publication number | Publication date |
---|---|
WO2022040017A1 (en) | 2022-02-24 |
US20220058872A1 (en) | 2022-02-24 |
BR112023002342A2 (pt) | 2023-03-21 |
CN116529772A (zh) | 2023-08-01 |
EP4200814A1 (en) | 2023-06-28 |
KR20230052884A (ko) | 2023-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102590644B1 (ko) | 증강 현실 콘텐츠의 아틀라스 관리를 위한 방법 및 장치 | |
JP7463626B2 (ja) | 機械学習ワークロードにおけるテンソルオブジェクトサポートのための方法および装置 | |
US10719447B2 (en) | Cache and compression interoperability in a graphics processor pipeline | |
US10008034B2 (en) | System, method, and computer program product for computing indirect lighting in a cloud network | |
US8253732B2 (en) | Method and system for remote visualization client acceleration | |
US11373268B2 (en) | Apparatus and method for graphics processing unit hybrid rendering | |
TW202213031A (zh) | 經壓縮的幾何形狀渲染與資料串流 | |
CN111080505B (zh) | 一种提高图元装配效率的方法、装置及计算机存储介质 | |
TW202338739A (zh) | 用於底層層次包圍盒的各層級的儲存 | |
KR20170088687A (ko) | 컴퓨팅 시스템 및 컴퓨팅 시스템에서 타일-기반 렌더링의 그래픽스 파이프라인을 수행하는 방법 | |
TW202240539A (zh) | 注視點渲染中的內容移動 | |
TW202219885A (zh) | 利用gpu緩存用於縮小的使用simo方案最佳化gpu核心的方法和裝置 | |
TW202137141A (zh) | 用於邊緣壓縮抗混疊的方法和裝置 | |
US11080928B2 (en) | Methods and apparatus for visibility stream management | |
TW202236205A (zh) | 計算工作負載的光柵化 | |
TW202230287A (zh) | 用於遮擋處理技術的方法和裝置 | |
TW202311940A (zh) | 基於圖塊的結構中深度和陰影遍歷渲染的最佳化 | |
TW202134996A (zh) | 用於減少渲染資訊的傳輸的方法和裝置 | |
TW202322043A (zh) | 小網格著色圖譜 | |
TW202318332A (zh) | 動態可變速率著色 | |
KR20230149319A (ko) | 프리미티브들의 배치들의 지오메트리 프로세싱을 위한 스케일러블 프리미티브 레이트 아키텍처 | |
TW202334896A (zh) | 使用可壓縮性預測的葉節點壓縮 | |
TW202334895A (zh) | 用於硬體加速gpu光線追蹤的壓縮thit堆疊 | |
TW202316375A (zh) | 與取樣空間相關聯的注視點分塊渲染 | |
TW202228082A (zh) | 物件空間渲染中的佈告板層 |