CN116529772A - 经压缩的几何形状渲染与流式传输 - Google Patents

经压缩的几何形状渲染与流式传输 Download PDF

Info

Publication number
CN116529772A
CN116529772A CN202180055464.0A CN202180055464A CN116529772A CN 116529772 A CN116529772 A CN 116529772A CN 202180055464 A CN202180055464 A CN 202180055464A CN 116529772 A CN116529772 A CN 116529772A
Authority
CN
China
Prior art keywords
primitive
compressed
group
groups
primitive groups
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202180055464.0A
Other languages
English (en)
Inventor
D·施马尔斯蒂格
M·斯坦伯格
D·姆拉卡尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Technologies Inc
Original Assignee
Qualcomm Technologies Inc
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
Priority claimed from US17/400,065 external-priority patent/US12020378B2/en
Application filed by Qualcomm Technologies Inc filed Critical Qualcomm Technologies Inc
Publication of CN116529772A publication Critical patent/CN116529772A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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
    • 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
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Image Generation (AREA)

Abstract

本公开涉及用于图形处理的方法和装置。该装置可以识别与至少一个帧相关联的至少一个网格。该装置还可以将该至少一个网格划分为多个图元群组,该多个图元群组中的每一者包括至少一个图元和多个顶点。该装置还可以将多个图元群组压缩为多个经压缩图元群组,该多个经压缩图元群组与随机访问相关联。另外,该装置可以解压缩该多个经压缩图元群组,该多个经压缩图元群组中的至少一个第一群组与该多个经压缩图元群组中的至少一个第二群组并行地解压缩。

Description

经压缩的几何形状渲染与流式传输
相关申请的交叉引用
本申请要求于2020年8月18日提交的、题为“METHODS AND APPARATUS FORCOMPRESSED GEOMETRY RENDERING AND STREAMING”的美国临时申请No.63/067,129,以及于2021年8月11日提交的、题为“COMPRESSED GEOMETRY RENDERING AND STREAMING”的美国专利申请No.17/400,065的权益,这两个申请通过引用明确地将其全部合并于本申请。
技术领域
本公开一般地涉及处理系统,并且更具体地涉及一种或多种用于图形处理的技术。
背景技术
计算设备通常利用图形处理单元(GPU)来加速对用于显示的图形数据的渲染。这样的计算设备可以包括,例如计算机工作站、诸如所谓的智能手机的移动电话、嵌入式系统、个人计算机、平板计算机和视频游戏控制台。GPU执行图形处理管线,这种管线包括一起操作以执行图形处理命令并输出帧的一个或多个处理阶段。中央处理单元(CPU)可以通过向GPU发出一个或多个图形处理命令来控制GPU的操作。现如今的CPU通常能够并发地执行多个应用,每个应用在执行期间可能需要利用该GPU。提供用于在显示器上可视化呈现的内容的设备一般包括GPU。
通常,设备的GPU被配置为执行图形处理管线中的处理。然而,随着无线通信和更小型的手持设备的出现,对改进的图形处理的需求越来越大。
发明内容
以下给出一个或多个方面的简化概要,以便提供对这些方面的基本理解。本概要不是对所有设想的方面的广泛概述,其目的既不是识别所有方面的关键元素,也不是描述任何或所有方面的范围。其唯一目的是以简化的形式给出一个或多个方面的一些概念,作为后面给出的更详细描述的序言。
在本公开的一个方面中,提供了一种方法、计算机可读介质和装置。该装置可以是服务器、客户端设备、中央处理单元(CPU)、图形处理单元(GPU)或可以执行图形处理的任何装置。该装置可以识别与至少一个帧相关联的至少一个网格。该装置还可以将该至少一个网格划分为多个图元群组,该多个图元群组中的每一者包括至少一个图元(primitive)和多个顶点(vertexs)。该装置还可以将多个图元群组压缩为多个经压缩图元群组,该多个经压缩图元群组与随机访问相关联。替代地,该装置可以将该多个经压缩图元群组存储在缓冲器或存储器中。该装置还可以发送该多个经压缩图元群组。该装置还可以解压缩该多个经压缩图元群组,该多个经压缩图元群组中的至少一个第一群组与该多个经压缩图元群组中的至少一个第二群组并行地解压缩。此外,该装置在解压缩该多个经压缩图元群组后即可渲染与该多个经压缩图元群组相对应的至少一个图像。
在附图和下面的描述中阐述本公开的一个或多个示例的细节。从该描述和附图以及权利要求,本发明的其他特征、目的和优势将显而易见。
附图说明
图1是示出根据本公开的一个或多个技术的示例内容生成系统的框图。
图2示出了根据本公开的一个或多个技术的示例编码方法的示意图。
图3示出了根据本公开的一个或多个技术的示例网格变换的示意图。
图4示出了根据本公开的一个或多个技术的示例网格变换的示意图。
图5是示出根据本公开的一个或多个技术的组件之间的示例通信的通信流程图。
图6示出了根据本公开的一个或多个技术的示例方法的示例流程图。
图7示出了根据本公开的一个或多个技术的示例方法的示例流程图。
具体实施方式
一些类型的图形处理单元(GPU)可能具有受限的存储器,使得几何建模可以变得更加详细。例如,存储器带宽(BW)可能在一些类型的GPU中是限制因素。存储器访问的局部性对于高性能而言可能是重要的,因为可能没有理由期望高速缓存一致性布局立即可用。另外,在移动设备在存储器大小和带宽方面可能比GPU有更多的限制。一些移动设备可以利用几何压缩来将很大的网格存储在存储器中。在移动设备上,存储器访问可能消耗大量的功率。在网络上流式传输几何形状可以利用将几何数据分区为封包,这可能造成计算开销。网格着色器是接近高速缓存一致性几何形状渲染的一种方法。例如,基于矩阵的网格布局优化可以是一种改进的几何形状渲染方法。本公开的多个方面可以创建具有强局部一致性的独立小网格(meshlet)。本公开的多个方面也可以利用经压缩小网格。另外,本公开的多个方面可以直接从网格着色器中的经压缩表示来进行渲染。
以下参照附图更全面地描述系统、装置、计算机程序产品和方法的各个方面。然而,本公开可以以很多不同的形式体现,并且不应被解释为限于贯穿本公开提出的任何特定结构或功能。相反,提供这些方面使得本公开将是彻底和完整的,并且将向本领域技术人员充分传达本公开的范围。基于本文的教学,本领域技术人员应当了解,本公开的范围旨在覆盖本文公开的系统、装置、计算机程序产品和方法的任何方面,无论是独立于本公开的其他方面实现还是与本公开的其他方面结合实现的。例如,可以使用本文所述的任何数量的方面来实现装置或实践方法。另外,本公开的范围旨在覆盖这样一种装置或方法,该装置或方法是使用除本文所述公开内容的各个方面之外的其他结构、功能或结构和功能实践的。本文公开的任何方面可以由权利要求的一个或多个元素来体现。
尽管本文描述了各个方面,但这些方面的很多变化和排列落入本公开的范围内。尽管提到了本公开的一些方面的一些潜在益处和优势,但本公开的范围并不意在局限于特定的益处、用途或目标。相反,本公开的多个方面旨在广泛地适用于不同的无线技术、系统配置、网络和传输协议,其中一些以示例的方式在附图和下面的描述中示出。详细描述和附图仅仅是对本公开的说明而不是限制,本公开的范围由所附的权利要求及其等效物定义。
参考各种装置和方法提出了几个方面。这些装置和方法在下面的详细描述中描述,并在附图中通过各种块、组件、电路、过程、算法等(统称为“元件”)示出。这些元件可以使用电子硬件、计算机软件或其任何组合来实现。这些元素是作为硬件还是软件来实现,取决于特定应用和对整个系统施加的设计约束。
举例而言,元件或元件的任何部分或元件的任何组合可以被实现为包括一个或多个处理器(也可以被称为处理单元)的“处理系统”。处理器的示例包括微处理器、微控制器、图形处理单元(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可以执行步骤712。
在一些方面中,该多个经压缩图元群组可以由网格着色器或放大着色器中的至少一个进行解压缩。该多个经压缩图元群组中的至少一个第一群组可与该多个经压缩图元群组中的至少一个第二群组由网格着色器或放大着色器并行地解压缩。该至少一个第一群组中的至少一个顶点可以与该至少一个第一群组中的至少一个其他顶点并行地解压缩。该至少一个第一群组中的至少一个图元可以与该至少一个第一群组中的至少一个其他图元并行地解压缩。该至少一个第二群组中的至少一个顶点可以与该至少一个第二群组中的至少一个其他顶点并行地解压缩。该至少一个第二群组中的至少一个图元可以与该至少一个第二群组中的至少一个其他图元并行地解压缩。
在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的任一项。

Claims (30)

1.一种用于图形处理的装置,包括:
存储器;以及
至少一个处理器,所述处理器耦合到所述存储器,并且被配置为:
识别与至少一个帧相关联的至少一个网格;
将所述至少一个网格划分为多个图元群组,所述多个图元群组中的每一者包括至少一个图元和多个顶点;
将所述多个图元群组压缩为多个经压缩图元群组,所述多个经压缩图元群组与随机访问相关联;以及
解压缩所述多个经压缩图元群组,所述多个经压缩图元群组中的至少一个第一群组与所述多个经压缩图元群组中的至少一个第二群组并行地解压缩。
2.根据权利要求1所述的装置,其中,所述至少一个处理器还被配置为:
在解压缩所述多个经压缩图元群组后即渲染与所述多个经压缩图元群组相对应的至少一个图像。
3.根据权利要求2所述的装置,其中,所述多个经压缩图元群组中的一个或多个经压缩图元群组在所述多个经压缩图元群组中的一个或多个其他经压缩图元群组之前被解压缩和渲染。
4.根据权利要求2所述的装置,其中,所述多个经压缩图元群组由网格着色器或放大着色器中的至少一个进行解压缩。
5.根据权利要求4所述的装置,其中,所述多个经压缩图元群组中的至少一个第一群组与所述多个经压缩图元群组中的至少一个第二群组由所述网格着色器或所述放大着色器并行地解压缩。
6.根据权利要求5所述的装置,其中,所述至少一个第一群组中的至少一个顶点与所述至少一个第一群组中的至少一个其他顶点并行地解压缩;或者
其中,所述至少一个第一群组中的至少一个图元与所述至少一个第一群组中的至少一个其他图元并行地解压缩。
7.根据权利要求5所述的装置,其中,所述至少一个第二群组中的至少一个顶点与所述至少一个第二群组中的至少一个其他顶点并行地解压缩;或者
其中,所述至少一个第二群组中的至少一个图元与所述至少一个第二群组中的至少一个其他图元并行地解压缩。
8.根据权利要求1所述的装置,其中,所述多个图元群组中的每一者对应于一小网格。
9.根据权利要求1所述的装置,其中,所述多个图元群组中的第一图元群组连接到所述多个图元群组中的第二图元群组或者与其相邻,其中,所述第一图元群组的至少一个顶点对应于所述第二图元群组的至少一个顶点。
10.根据权利要求9所述的装置,其中,所述第一图元群组的所述至少一个顶点或者所述第二图元群组的所述至少一个顶点被存储在所述第一图元群组或所述第二图元群组中。
11.根据权利要求1所述的装置,其中,所述至少一个处理器还被配置为:
将所述多个经压缩图元群组存储在缓冲器或存储器中。
12.根据权利要求1所述的装置,其中,所述至少一个处理器还被配置为:
发送所述多个经压缩图元群组。
13.根据权利要求12所述的装置,还包括耦合到所述至少一个处理器的收发器,其中,所述多个经压缩图元群组是经由一个或多个数据封包发送的。
14.根据权利要求13所述的装置,其中,所述一个或多个数据封包是一个或多个独立数据封包或一个或多个用户数据报协议(UDP)封包。
15.一种图形处理方法,包括:
识别与至少一个帧相关联的至少一个网格;
将所述至少一个网格划分为多个图元群组,所述多个图元群组中的每一者包括至少一个图元和多个顶点;
将所述多个图元群组压缩为多个经压缩图元群组,所述多个经压缩图元群组与随机访问相关联;以及
解压缩所述多个经压缩图元群组,所述多个经压缩图元群组中的至少一个第一群组与所述多个经压缩图元群组中的至少一个第二群组并行地解压缩。
16.根据权利要求15所述的方法,还包括:
在解压缩所述多个经压缩图元群组后即渲染与所述多个经压缩图元群组相对应的至少一个图像。
17.根据权利要求16所述的方法,其中,所述多个经压缩图元群组中的一个或多个经压缩图元群组在所述多个经压缩图元群组中的一个或多个其他经压缩图元群组之前被解压缩和渲染。
18.根据权利要求16所述的方法,其中,所述多个经压缩图元群组由网格着色器或放大着色器中的至少一个进行解压缩。
19.根据权利要求18所述的方法,其中,所述多个经压缩图元群组中的至少一个第一群组与所述多个经压缩图元群组中的至少一个第二群组由所述网格着色器或所述放大着色器并行地解压缩。
20.根据权利要求19所述的方法,其中,所述至少一个第一群组中的至少一个顶点与所述至少一个第一群组中的至少一个其他顶点并行地解压缩;或者
其中,所述至少一个第一群组中的至少一个图元与所述至少一个第一群组中的至少一个其他图元并行地解压缩。
21.根据权利要求19所述的方法,其中,所述至少一个第二群组中的至少一个顶点与所述至少一个第二群组中的至少一个其他顶点并行地解压缩;或者
其中,所述至少一个第二群组中的至少一个图元与所述至少一个第二群组中的至少一个其他图元并行地解压缩。
22.根据权利要求15所述的方法,其中,所述多个图元群组中的每一者对应于一小网格。
23.根据权利要求15所述的方法,其中,所述多个图元群组中的第一图元群组连接到所述多个图元群组中的第二图元群组或者与其相邻,其中,所述第一图元群组的至少一个顶点对应于所述第二图元群组的至少一个顶点。
24.根据权利要求23所述的方法,其中,所述第一图元群组的所述至少一个顶点或者所述第二图元群组的所述至少一个顶点被存储在所述第一图元群组或所述第二图元群组中。
25.根据权利要求15所述的方法,还包括:
将所述多个经压缩图元群组存储在缓冲器或存储器中。
26.根据权利要求15所述的方法,还包括:
发送所述多个经压缩图元群组。
27.根据权利要求26所述的方法,其中,所述多个经压缩图元群组是经由一个或多个数据封包发送的。
28.根据权利要求27所述的方法,其中,所述一个或多个数据封包是一个或多个独立数据封包或一个或多个用户数据报协议(UDP)封包。
29.一种用于图形处理的装置,包括:
用于识别与至少一个帧相关联的至少一个网格的部件;
用于将所述至少一个网格划分为多个图元群组的部件,所述多个图元群组中的每一者包括至少一个图元和多个顶点;
用于将所述多个图元群组压缩为多个经压缩图元群组的部件,所述多个经压缩图元群组与随机访问相关联;以及
用于解压缩所述多个经压缩图元群组的部件,所述多个经压缩图元群组中的至少一个第一群组与所述多个经压缩图元群组中的至少一个第二群组并行地解压缩。
30.一种存储用于图形处理的计算机可执行代码的计算机可读介质,当由处理器执行时,所述代码使所述处理器:
识别与至少一个帧相关联的至少一个网格;
将所述至少一个网格划分为多个图元群组,所述多个图元群组中的每一者包括至少一个图元和多个顶点;
将所述多个图元群组压缩为多个经压缩图元群组,所述多个经压缩图元群组与随机访问相关联;以及
解压缩所述多个经压缩图元群组,所述多个经压缩图元群组中的至少一个第一群组与所述多个经压缩图元群组中的至少一个第二群组并行地解压缩。
CN202180055464.0A 2020-08-18 2021-08-12 经压缩的几何形状渲染与流式传输 Pending CN116529772A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063067129P 2020-08-18 2020-08-18
US63/067,129 2020-08-18
US17/400,065 US12020378B2 (en) 2021-08-11 Compressed geometry rendering and streaming
US17/400,065 2021-08-11
PCT/US2021/045811 WO2022040017A1 (en) 2020-08-18 2021-08-12 Compressed geometry rendering and streaming

Publications (1)

Publication Number Publication Date
CN116529772A true CN116529772A (zh) 2023-08-01

Family

ID=80269688

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180055464.0A Pending CN116529772A (zh) 2020-08-18 2021-08-12 经压缩的几何形状渲染与流式传输

Country Status (6)

Country Link
EP (1) EP4200814A1 (zh)
KR (1) KR20230052884A (zh)
CN (1) CN116529772A (zh)
BR (1) BR112023002342A2 (zh)
TW (1) TW202213031A (zh)
WO (1) WO2022040017A1 (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8463918B2 (en) * 2010-01-22 2013-06-11 Microsoft Corporation Loss tolerant protocol for remoting desktop graphics
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

Also Published As

Publication number Publication date
US20220058872A1 (en) 2022-02-24
KR20230052884A (ko) 2023-04-20
BR112023002342A2 (pt) 2023-03-21
WO2022040017A1 (en) 2022-02-24
EP4200814A1 (en) 2023-06-28
TW202213031A (zh) 2022-04-01

Similar Documents

Publication Publication Date Title
KR102590644B1 (ko) 증강 현실 콘텐츠의 아틀라스 관리를 위한 방법 및 장치
JP7463626B2 (ja) 機械学習ワークロードにおけるテンソルオブジェクトサポートのための方法および装置
US20140327690A1 (en) System, method, and computer program product for computing indirect lighting in a cloud network
US11373268B2 (en) Apparatus and method for graphics processing unit hybrid rendering
EP4242972A2 (en) Methods and apparatus for edge compression anti-aliasing
CN116348904A (zh) 用simo方法优化gpu内核以用于利用gpu高速缓存进行缩小
US12020378B2 (en) Compressed geometry rendering and streaming
US11080928B2 (en) Methods and apparatus for visibility stream management
US20220058872A1 (en) Compressed geometry rendering and streaming
CN116762091A (zh) 用于计算工作负载的栅格化的方法和装置
US20230252725A1 (en) Bounding volume hierarchy leaf node compression
US20240212257A1 (en) Workload packing in graphics texture pipeline
CN117616446A (zh) 基于图块的架构中的深度和阴影通道渲染的优化
WO2023150013A1 (en) Leaf node compression with compressibility prediction
CN118043850A (zh) Meshlet着色图集
WO2024137230A1 (en) Workload packing in graphics texture pipeline
TW202134996A (zh) 用於減少渲染資訊的傳輸的方法和裝置
WO2023055655A1 (en) Meshlet shading atlas
CN117980955A (zh) 与样本空间相关联的聚焦分箱渲染
CN116075862A (zh) 对象空间渲染中的布告板层
CN114600149A (zh) 用于减少绘制命令信息的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination