掌桥专利:专业的专利平台
掌桥专利
首页

注视点渲染中的内容移位

文献发布时间:2024-04-18 19:58:26


注视点渲染中的内容移位

相关申请的交叉引用

本申请要求于2021年4月13日提交的标题为“METHODS AND APPARATUS FORCONTENT SHIFTING IN FOVEATED RENDERING”的美国专利申请第17/229,242号的权益,该申请通过引用整体明确地并入本文。

技术领域

本公开总体上涉及处理系统,并且更具体地,涉及用于图形处理的一种或多种技术。

背景技术

计算设备通常执行图形和/或显示处理(例如,利用图形处理单元(GPU)、中央处理单元(CPU)、显示处理器等)以渲染和显示视觉内容。这样的计算设备可以包括例如计算机工作站、诸如智能电话的移动电话、嵌入式系统、个人计算机、平板计算机和视频游戏控制台。GPU被配置为执行包括一个或多个处理阶段的图形处理管线,所述一个或多个处理阶段一起操作以执行图形处理命令并输出帧。中央处理单元(CPU)可以通过向GPU发出一个或多个图形处理命令来控制GPU的操作。现代CPU通常能够同时执行多个应用,每个应用可能需要在执行期间利用GPU。显示处理器被配置为将从CPU接收的数字信息转换为模拟值,并且可以向显示面板发出用于显示视觉内容的命令。提供用于在显示器上视觉呈现的内容的设备可以利用GPU和/或显示处理器。

设备的GPU可被配置为执行图形处理管线中的进程。此外,显示处理器或显示处理单元(DPU)可以被配置为执行显示处理的进程。然而,随着无线通信和更小的手持设备的出现,对改进的图形或显示处理的需求增加。

发明内容

以下给出了一个或多个方面的简要概述,以便提供对这些方面的基本理解。该概述不是对所有预期方面的广泛概述,并且既不旨在标识所有方面的关键或重要元素,也不旨在描绘任何或所有方面的范围。其唯一目的是以简化形式呈现一个或多个方面的一些概念,作为稍后呈现的更详细描述的序言。

在本公开内容的一个方面,提供了一种方法、计算机可读介质和装置。该装置可以是图形处理单元(GPU)或可以执行图形处理的任何装置。该装置可以接收包括帧内容的至少一个帧,其中该至少一个帧在被接收之后被处理。该装置还可以处理包括与包括多个网格部分的网格相关联的帧内容的至少一个帧,帧内容的多个部分中的每个部分与多个网格部分中的至少一个网格部分的至少一部分对齐。另外,该装置可以相对于网格移位帧内容,使得帧内容的多个部分中的至少一部分与多个网格部分中的至少一个不同网格部分的至少一部分对齐。该装置还可以在相对于网格移位帧内容时存储移位的帧内容,移位的帧内容包括帧内容的、与至少一个不同网格部分的至少一部分对齐的至少一部分。该装置还可以在存储移位的帧内容时检索移位的帧内容。此外,该装置可以在检索到帧内容时重新移位检索到的帧内容,使得重新移位的帧内容对应于处理后的帧内容。该装置还可以在重新移位帧内容时渲染重新移位的帧内容。该装置还可以在重新移位帧内容时发送包括重新移位的帧内容的一个或多个帧。

在附图和以下描述中阐述本发明的一个或多个示例的细节。根据说明书和附图以及权利要求书,本公开的其他特征、目的和优点将是显而易见的。

附图说明

图1是示出根据本公开的一种或多种技术的示例内容生成系统的框图。

图2说明根据本发明的一种或多种技术的示例GPU。

图3说明根据本发明的一种或多种技术的示例图像或表面。

图4A是示出根据本发明的一种或多种技术的帧中的示例内容的图。

图4B是示出根据本发明的一种或多种技术的帧中的示例内容的图。

图5A为说明根据本发明的一种或多种技术的帧中的示例内容的图。

图5B是示出根据本发明的一种或多种技术的帧中的示例内容的图。

图6A是示出根据本发明的一种或多种技术的帧中的示例内容的图。

图6B是示出根据本发明的一种或多种技术的帧中的示例内容的图。

图7A为说明根据本发明的一种或多种技术的随时间的内容移动的曲线图。

图7B为说明根据本发明的一种或多种技术的随时间的内容移动的曲线图。

图8是示出根据本发明的一种或多种技术的GPU组件、GPU组件与存储器/缓冲器之间的示例通信的通信流程图。

图9是根据本发明的一种或多种技术的图形处理的示例方法的流程图。

具体实施方式

在图形处理的一些方面中,虚拟现实(VR)、增强现实(AR)或扩展现实(XR)应用可利用不同渲染技术以便减少渲染工作负载。例如,VR/AR/XR应用可以利用注视点渲染(foveated rendering),其是使用与耳机(headset)集成的眼睛跟踪器的渲染技术。注视点渲染技术可以通过缩放某个区域(例如,用户视觉的聚焦区域)之外的内容来帮助减少渲染工作负载。在一些方面,当注视点与网格相关联时,可能变得难以一致地移动用户的聚焦区域。此外,这可能导致转换具有显著的质量变化,即,引人注目或“爆裂”的质量变化。另外,由注视点渲染利用的眼睛跟踪(即,将焦点与用户的眼睛焦点一起移动)可能难以平滑地执行。在一些方面,某些内容可能需要被渲染多次,这与VR/AR/XR应用中的快速渲染的期望形成对比。因此,减少VR/AR/XR应用中与注视点渲染相关联的渲染时间可能是有益的。在一些情况下,在注视点渲染处理期间调整网格(例如,图块网格)可能具有负面影响性能的高可能性。例如,在注视点渲染期间调整具有不同质量的区域的形状或面积可能导致不可预测的渲染性能。当利用注视点渲染时,本公开的各方面可以允许一致的视觉质量。此外,本公开的各方面可以平滑且一致地执行与注视点渲染一起使用的某些功能,例如眼睛跟踪。本公开的各方面还可以调整与注视点渲染相关联的区域或网格,而不会对用户观察到的性能产生负面影响。例如,本公开的各方面可以在注视点渲染期间调整具有不同质量的区域的形状或面积,同时保持一致的渲染性能。此外,本公开的各方面可以减少VR/AR/XR应用中的注视点渲染的渲染时间。

在下文中参照附图更全面地描述了系统、装置、计算机程序产品和方法的各个方面。然而,本公开内容可以以许多不同的形式来体现,并且不应当被解释为限于贯穿本公开内容给出的任何特定结构或功能。相反,提供这些方面使得本公开内容将是透彻和完整的,并且将向本领域技术人员充分传达本公开内容的范围。基于本文的教导,本领域技术人员应当理解,本公开内容的范围旨在覆盖本文公开的系统、装置、计算机程序产品和方法的任何方面,无论其是独立于本公开内容的其他方面实现的还是与本公开内容的其他方面组合实现的。例如,可以使用本文阐述的任何数量的方面来实现装置或实践方法。另外,本公开内容的范围旨在覆盖使用除了本文所阐述的本公开内容的各个方面之外或不同于本文所阐述的本公开内容的各个方面的其他结构、功能或者结构和功能来实践的这种装置或方法。本文公开的任何方面可以由权利要求的一个或多个元件来体现。

尽管本文描述了各个方面,但是这些方面的许多变型和排列也落入本公开内容的范围内。尽管提及了本公开的各方面的一些潜在益处和优点,但是本公开内容的范围不旨在限于特定益处、用途或目标。相反,本公开的各方面旨在广泛地适用于不同的无线技术、系统配置、网络和传输协议,其中的一些在附图和以下描述中通过示例的方式示出。具体实施方式和附图仅仅是对本公开内容的说明而不是限制,本公开内容的范围由所附权利要求及其等同物来限定。

参照各种装置和方法给出了若干方面。这些装置和方法通过各种框、组件、电路、过程、算法等(统称为“元素”)在以下详细描述中描述并在附图中示出。这些元素可以使用电子硬件、计算机软件或其任何组合来实现。这些元素是实现为硬件还是软件取决于特定的应用和施加在整个系统上的设计约束。

作为示例,元素或元素的任何部分或元素的任何组合可被实现为包括一个或多个处理器(其也可被称为处理单元)的“处理系统”。处理器的示例包括微处理器、微控制器、图形处理单元(GPU)、通用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,以在由一个或多个显示器131呈现之前对由处理单元120生成的一个或多个帧执行一种或多种显示处理技术。显示处理器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还可以被配置为在重新移位帧内容时渲染重新移位的帧内容。确定组件198还可以被配置为在重新移位帧内容时,发送包括重新移位的帧内容的一个或多个帧。尽管以下描述可聚焦于图形处理,但本文中所描述的概念可适用于其他类似处理技术。

如本文中所描述,设备(诸如设备104)可指被配置为执行本文中所描述的一种或多种技术的任何设备、装置或系统。例如,设备可以是服务器、基站、用户设备、客户端设备、站、接入点、计算机(例如,个人计算机、台式计算机、膝上型计算机、平板计算机、计算机工作站或大型计算机)、终端产品、装置、电话、智能电话、服务器、视频游戏平台或控制台、诸如便携式视频游戏设备或个人数字助理(PDA)的手持设备、诸如智能手表的可穿戴计算设备、增强现实设备或虚拟现实设备、不可穿戴设备、显示器或显示设备、电视、电视机顶盒、中间网络设备、数字媒体播放器、视频流设备、内容流设备、车载计算机、任何移动设备、被配置为生成图形内容的任何设备或被配置为执行本文描述的一种或多种技术的任何设备。本文中的过程可以被描述为由特定组件(例如,GPU)执行,但是在另外的实施例中,可以使用与所公开的实施例一致的其他组件(例如,CPU)来执行。

GPU可以在GPU管线中处理多种类型的数据或数据分组。例如,在一些方面,GPU可以处理两种类型的数据或数据分组,例如上下文寄存器分组和绘制调用数据。上下文寄存器分组可以是一组全局状态信息,例如关于全局寄存器、着色程序或常数数据的信息,其可以调节将如何处理图形上下文。例如,上下文寄存器分组可以包括关于颜色格式的信息。在上下文寄存器分组的一些方面,可以存在指示哪个工作负载属于上下文寄存器的比特。而且,可以存在同时和/或并行运行的多个功能或编程。例如,功能或编程可以描述某个操作,例如颜色模式或颜色格式。因此,上下文寄存器可以定义GPU的多个状态。

上下文状态可用于确定各个处理单元函数(例如,顶点提取器(VFD)、顶点着色器(VS)、着色器处理器或几何处理器)如何起作用,和/或处理单元以什么模式起作用。为了这样做,GPU可以使用上下文寄存器和编程数据。在一些方面,GPU可以基于模式或状态的上下文寄存器定义在管线中生成工作负载,例如顶点或像素工作负载。特定处理单元(例如,VFD)可以使用这些状态来确定特定函数,例如,如何组装顶点。由于这些模式或状态可以改变,GPU可能需要改变对应的上下文。另外,对应于模式或状态的工作负载可以遵循变化的模式或状态。

图2示出了根据本发明的一种或多种技术的示例GPU 200。如图2所示,GPU 200包括命令处理器(CP)210、绘制调用分组212、VFD 220、VS222、顶点高速缓存(VPC)224、三角形设置引擎(TSE)226、光栅化器(RAS)228、Z处理引擎(ZPE)230、像素内插器(PI)232、片段着色器(FS)234、渲染后端(RB)236、级2(L2)高速缓存(UCHE)238和系统存储器240。尽管图2显示GPU 200包括处理单元220-238,但是GPU 200可以包括数个附加处理单元。另外,处理单元220-238仅仅是示例,并且根据本公开的GPU可以使用处理单元的任何组合或顺序。GPU200还包括命令缓冲器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可以将计算机图形图像划分为网格格式,使得网格的每个部分(即,图块)被单独渲染。在一些方面,在图格遍次(binningpass)期间,可将图像划分成不同图格或图块。在一些方面,在图格遍次期间,可构造可见性流,其中可识别可见图元或绘制调用。与平铺渲染相反,直接渲染不将帧划分为更小的图格或图块。相反,在直接渲染中,在单个时间渲染整个帧。另外,一些类型的GPU可以允许平铺渲染和直接渲染两者。

在一些方面,GPU可以将绘制或渲染过程应用于不同的图格或图块。例如,GPU可渲染到一个图格,并且对图格中的图元或像素执行所有绘制。在渲染到图格的处理期间,渲染目标可以位于GMEM中。在一些情况下,在渲染到一个图格之后,可将渲染目标的内容移动到系统存储器,并且可释放GMEM以用于渲染下一图格。另外,GPU可渲染到另一图格,并且对该图格中的图元或像素执行绘制。因此,在一些方面,可能存在少量图格,例如四个图格,其覆盖一个表面中的所有绘制。此外,GPU可以循环通过一个图格中的所有绘制,但是对可见的绘制调用(即,包括可见几何形状的绘制调用)执行绘制。在一些方面,可见性流可以例如在图格遍次中产生以确定图像或场景中的每一图元的可见性信息。例如,该可见性流可以标识某个图元是否可见。在一些方面,此信息可用以移除(例如,在渲染遍次中)不可见的图元。而且,可以在渲染遍次中渲染被标识为可见的图元中的至少一些图元。

在平铺渲染的一些方面,可以存在多个处理阶段或遍次。例如,可在两个遍次(例如,可见性或图格可见性遍次以及渲染或图格渲染遍次)中执行渲染。在可见性遍次期间,GPU可以输入渲染工作负载,记录图元或三角形的位置,然后确定哪些图元或三角形落入哪个图格或区域中。在可见性遍次的一些方面,GPU还可标识或标记可见性流中的每一图元或三角形的可见性。在渲染遍次期间,GPU可输入可见性流且一次处理一个图格或区域。在一些方面,可以分析可见性流以确定哪些图元或图元的顶点可见或不可见。因而,可以处理可见的图元或图元的顶点。通过这样做,GPU可以减少处理或渲染不可见的图元或三角形的不必要的工作量。

在一些方面,在可见性遍次期间,可以处理某些类型的图元几何形状,例如,仅位置几何形状。另外,取决于图元或三角形的位置或定位,图元可被分类到不同的图格或区域中。在一些情况下,可以通过确定这些图元或三角形的可见性信息来执行将图元或三角形分类到不同的图格中。例如,GPU可以确定或写入例如系统存储器中的每个图格或区域中的每个图元的可见性信息。该可见性信息可用于确定或生成可见性流。在渲染遍次中,每个图格中的图元可以单独渲染。在这些情况下,可以从用于丢弃对该图格不可见的图元的存储器中取出可见性流。

GPU或GPU架构的一些方面可以提供用于渲染(例如,软件渲染和硬件渲染)的数个不同选项。在软件渲染中,驱动器或CPU可以通过处理每个视图一次来复制整个帧几何形状。另外,可以取决于视图改变一些不同的状态。因此,在软件渲染中,软件可以通过改变可以用于渲染图像中的每个视点的一些状态来复制整个工作负载。在某些方面,由于GPU可能针对图像中的每个视点多次提交相同的工作负载,因此可能存在增加的开销。在硬件渲染中,硬件或GPU可以负责复制或处理图像中的每个视点的几何形状。因此,硬件可以管理图像中每个视点的图元或三角形的复制或处理。

图3示出了图像或表面300,其包括被划分为多个图格的多个图元。如图3所示,图像或表面300包括区域302,区域302包括图元321、322、323和324。图元321、322、323和324被划分或放置到不同的图格中,例如图格310、311、312、313、314和315。图3示出了使用图元321-324的多个视点的平铺渲染的示例。例如,图元321-324在第一视点350和第二视点351中。这样,处理或渲染包括区域302的图像或表面300的GPU可以利用多个视点或多视图渲染。

如本文所指示的,GPU或图形处理器单元可以使用平铺渲染架构来降低功耗或节省存储器带宽。如上文进一步陈述,此渲染方法可将场景划分成多个图格,以及包括识别在每一图格中可见的三角形的可见性遍次。因此,在平铺渲染中,全屏幕可以被划分为多个图格或图块。然后可以多次渲染场景,例如,针对每个图格渲染一次或多次。

在图形渲染的方面中,一些图形应用程序可以一或多次渲染到单个目标(即,渲染目标)。例如,在图形渲染中,可多次更新系统存储器上的帧缓冲器。帧缓冲器可以是存储器或随机存取存储器(RAM)的一部分,例如包含比特图或存储,以帮助存储GPU的显示数据。帧缓冲器也可以是包含完整数据帧的存储器缓冲器。另外,帧缓冲器可以是逻辑缓冲器。在一些方面,可在图格或图块渲染中执行更新帧缓冲器,其中如上文所论述,将表面划分成多个图格或图块,并且接着可单独渲染每一图格或图块。此外,在平铺渲染中,帧缓冲器可以被划分为多个图格或图块。

图形处理的方面与数个不同类型的内容(例如,虚拟现实(VR)内容、增强现实(AR)内容和/或扩展现实(XR)内容)相关联。在VR内容中,在用户或客户端设备处显示的内容可以对应于增强内容,例如,在主机设备、服务器或客户端设备处渲染的内容。在AR或XR内容中,在客户端设备处显示的内容的一部分可以对应于现实世界内容,例如现实世界中的对象,并且内容的一部分可以是增强内容。此外,增强内容和现实世界内容可以显示在光学透视或视频透视设备中,使得用户可以同时观看现实世界对象和增强内容。

在一些方面,在VR/AR/XR模式下,客户端或用户可以利用头戴式设备(HMD)或耳机来查看VR/AR/XR内容。例如,HMD或耳机可利用指向外的两个外部相机来捕获现实世界对象。左相机图像和右相机图像也可以显示在内部LCD或OLED显示器中。另外,一对显示透镜可以安装在显示器的前面。然后,用户可以经由显示透镜、显示器和/或外部相机观看外部世界。如本文所述,可以使用主机设备或服务器和客户端或用户设备生成或查看VR/AR/XR内容。在一些方面,主机设备可以是移动设备、智能电话、个人计算机、膝上型计算机和/或任何其他适当的设备。另外,客户端设备可以是头戴式设备(HMD)、耳机和/或任何其他适当的设备。在一种配置中,VR/AR/XR内容可以是拆分配置,例如,系连到移动设备的HMD。在这些配置中,VR/AR/XR计算可以由移动设备处理,并且HMD可以向移动设备提供传感器数据并向用户提供显示器。

在图形处理的一些方面,VR/AR/XR应用可以利用不同的渲染技术以便减少渲染工作负载。例如,VR/AR/XR应用可以利用注视点渲染,其是可以利用HMD或耳机的渲染技术。注视点渲染技术可以通过缩放某个区域(例如,用户视觉的聚焦区域)之外的内容来帮助减少渲染工作负载。也就是说,注视点渲染可以通过降低用户周边视觉(即,在由用户的注视点(视觉敏锐度最高的眼睛视网膜中的小凹陷)观看的区域之外)中的图像质量来减少渲染工作负载。注视点渲染的方法旨在模仿人眼的灵敏度,同时利用VR/AR/XR耳机中使用的透镜质量。在一些方面,可以用眼睛跟踪来补充注视点渲染或固定注视点渲染。

图4A和4B分别是帧402和帧412内的内容的图400和410。更具体地,图4A和4B显示某些类型的渲染(例如基于图块的渲染)可以包括与网格(例如,图块网格)相关联的注视点渲染。在具有注视点的基于图块的渲染中,当通过注视点渲染解释时,可以维持图块粒度。如图4A和4B所示,来自注视点渲染的内容404(图4A中的圆圈)可以被转换为内容414(图4B中的图块网格中的图块型态)。这样,图4A中的内容焦点可以被转换到图4B中的图块网格中的某些图块。在图4A和4B中,帧内容(例如,内容404和414)的虚线部分对应于更高的质量或分辨率,即,它对应于用户的聚焦区域。

在一些方面,当注视点与网格相关联时,可能变得难以一致地移动用户的聚焦区域。例如,移动用户的焦点可以将注视点对齐到网格。此外,这可能导致转换在质量上具有显著的变化,即,引人注目或“爆裂”的质量变化。在注视点渲染中使用的这些类型的转换也可能难以准确地定位在特定特征上。例如,某些类型的用户界面(UI)元件(例如,基于文本的UI元件)在外围区域中可能需要比在注视点渲染中通常提供的渲染质量更高的渲染质量。另外,由注视点渲染利用的眼睛跟踪(即,将焦点与用户的眼睛焦点一起移动)可能难以平滑地执行。在一些方面,某些内容可能需要被渲染多次,这与VR/AR/XR应用中的快速渲染的期望形成对比。因此,减少与注视点渲染相关联的VR/AR/XR应用中的渲染时间可能是有益的。

在一些情况下,在注视点渲染处理期间调整网格(例如,图块网格)可能具有负面影响性能的高可能性。例如,在注视点渲染期间调整具有不同质量的区域的形状或面积可能导致不可预测的渲染性能。基于上述,当利用注视点渲染时,提供一致的视觉质量可能是有益的。平滑地执行与注视点渲染一起使用的眼睛跟踪也可能是有益的。此外,在不负面影响性能的情况下调整与注视点渲染相关联的区域可能是有益的。例如,在注视点渲染期间调整具有不同质量的区域的形状或面积同时保持一致的渲染性能可能是有益的。

当利用注视点渲染时,本公开的各方面可以提供一致的视觉质量。此外,本公开的各方面可以平滑且一致地执行与注视点渲染一起使用的某些功能,例如眼睛跟踪。本公开的各方面还可以调整与注视点渲染相关联的区域或网格,而不会对用户观察到的性能产生负面影响。例如,本公开的各方面可以在注视点渲染期间调整具有不同质量的区域的形状或面积,同时保持一致的渲染性能。此外,本公开的各方面可以减少VR/AR/XR应用中的注视点渲染的渲染时间。

为了在调整具有不同质量的区域的形状/面积时维持一致的渲染性能,本公开的各方面可以偏移或调整网格或图块面积,即,利用网格偏移或图块偏移。在网格偏移或图块偏移中,本公开的各方面可以将网格或图块网格上的内容移位期望的偏移。例如,网格或图块网格可以是任何合适的尺寸,包括概念上无限的尺寸。在一些情况下,当偏移或调整网格或图块区域时,本公开的各方面可以不移位输入焦点本身。通过维持输入焦点,这可使注视点参数的解释保持不变。此外,这可以允许本公开的各方面利用内容的像素粒度视口移位。

在一些方面,从帧内容的角度来看,偏移或调整网格或图块区域可以在功能上等同于网格偏移,例如,图块网格的图块偏移。例如,本公开的各方面可以相对于网格对帧内容进行移位。本公开的各方面还可在帧内容已被移位之后存储该帧内容。在相对于网格移位和存储帧内容之后,本公开的各方面可以通过将帧内容移回表面原点来撤消内容移位。在一些情况下,对于某些类型的图像,例如稀疏图像,可以利用纹理采样偏移来恢复原始帧内容。

本公开的各方面可以相对于网格或图块网格平滑地移位帧内容。因此,本公开可以利用基于图块的渲染技术,但是与图块网格相比移位帧内容。因此,当相对于图块网格移位或调整时,注视点渲染的高质量焦点区域可以保持相同。例如,内容或高质量焦点区域可以保持相同的形状,但是在图块网格上移位偏移量。此外,当将移位的内容存储到系统存储器时,可以恢复内容位置并且可以撤销转换。因此,从图像或帧的角度来看,可以移位图块网格。因此,通过移位图像内容,图块网格可以看起来移动(尽管网格实际上没有移动),因此效果可以是图块网格被移位。另外,帧内容或图像内容的上述移位或调整可以应用于图块渲染之外的其他操作。例如,帧内容的前述移位以及移位的粒度可应用于不同类型的渲染操作或移位操作,例如具有对粒度的限制的操作。

图5A和5B分别是帧502和帧512内的内容的图500和510。图5A和5B显示了某些类型渲染,例如基于图块的渲染,其利用具有网格(例如图块网格)的注视点渲染。图5A描绘了帧内容504相对于图块网格的原始位置。图5B示出了帧内容514相对于图块网格的移位位置,即,在帧内容已经相对于网格移位之后。因此,图5A和5B示出了帧内容在区块网格上移位偏移量的上述示例。

本公开的各方面还可以在相对于图块网格移位或调整帧内容时减少存储器使用量。某些类型的图像(例如,稀疏图像)和存储方法可能具有防止将内容返回到原始位置的对齐限制。其他方法可能需要系统存储器的过度分配。与此相对,本公开的各方面可以在维持或减少存储器使用量的同时对内容进行移位和重新移位。在一些情况下,由于行为可以基于图块粒度,因此本公开的各方面可以基于图块大小(即,在图块的边缘处)来界定或包裹特定偏移。因此,本公开的各方面可以界定移位偏移或者对内容可以在其中移位的区域设置限制。本公开的各方面还可以将比例因子移位或调整一定量,例如,图块大小或完整图块大小的百分比。此外,本公开的各方面可将用户的视点移位一定量,例如,图块大小的百分比或完整图块的大小。该方法可以利用少量的额外存储器用于存储,例如,用于存储的额外存储器的图块大小的量。

图6A和6B分别是在帧602和帧612内移位内容的图600和610。图6A显示了从内容604中的原点(例如,图6A中的圆圈)到移位内容606的期望偏移。图6B描绘了使用非对齐移位来实现包括移位的内容616和移位的内容618的内容614的期望偏移。更具体地,图6B示出了通过使用小的非对齐移位(图6B中的实线箭头)来实现期望的偏移(图6A中的箭头),但是改变期望行为的图块对齐原点(例如,图6B中的圆圈)以实现有效偏移,即,图6B中的实线箭头加上图6B中的虚线箭头的偏移。图6A和6B示出了本公开的各方面可以包裹或界定内容可以在其中移位的移位偏移区域。

为了实现帧内容相对于图块网格的前述移位,本公开的各方面可以执行数个不同的步骤或过程。例如,本公开的各方面可以将系统存储器分配增加一定量。本公开的各方面还可以增加网格或图块网格的尺寸,即,扩大网格宽度和/或高度。此外,本发明的方面可偏移注视点比例因子读取以便使内容移位适应一定量。本公开的各方面还可以基于图块偏移量或图块大小的百分比来执行内容移位。此外,本公开的各方面可以在内容移位偏移量之后存储内容。

在一个示例中,当利用具有特定大小的图块(例如,包括96个像素的宽度的图块)的图块网格时,本公开的各方面可以将内容移位一定量的像素,例如,200个像素。在这样做时,本公开的各方面可以执行以下步骤(1)-(5):(1)在每个方向上将系统存储器分配扩大96个像素。(2)在每个方向上将图块网格宽度和高度扩大1个图块。(3)偏移注视点比例因子读取以适应移位量。为了这样做,注视点比例因子读取可以偏移2个图块,例如,展开到图块大小(200/96)*96=192个像素。此外,如果偏移在图块网格之外,即,在边界之外,则偏移可以被界定或钳位到图块网格的边缘值。(4)将视口移位一定量的像素,例如,采取(图块大小-(偏移%图块大小)%图块大小)。由于在两个图块上移动比例因子有192像素的偏移,这可能导致有效的200像素偏移。因此,200像素移位可对应于8像素视口移位。在此之后,可以渲染内容。(5)在内容被移位偏移量之后存储内容,即,存储移位的偏移量。在这样做时,本公开的各方面可以将偏移量移位特定量以移动存储上的内容。这可以避免分配全图格大小的系统存储器表面。

本公开的各方面可以包括许多益处或优点。例如,本公开的各方面可以允许帧内容被平滑地移位。图7A和7B分别是相对于网格移位帧内容的图700和710。例如,图7A和7B分别描绘了随时间702和712的内容移动。图7A示出了在不使用上述移位技术的情况下移位的帧内容。例如,图7A中的内容移动702是阶梯状且笨拙的。图7B示出了当利用本公开的各方面的前述移位技术时移位的帧内容。例如,图7B中的内容移动712是平滑且渐进的。如图7A和7B中所示,本公开的各方面的前述移位技术可更平滑地移位帧内容。因此,在本公开的各方面中,用户可以观察到利用移位技术的更高质量的内容移位。

图8是根据本公开的一种或多种技术的图形处理的通信流程图800。如图8所示,图800包括根据本公开的一种或多种技术的GPU组件802、GPU组件804和存储器或缓冲器806之间的示例通信。

在810处,GPU组件802可以接收包括帧内容的至少一个帧,例如帧812,其中该至少一个帧在被接收之后被处理。

在820处,GPU组件802可以处理包括与包括多个网格部分的网格相关联的帧内容的至少一个帧(例如,帧812),帧内容的多个部分中的每个部分与多个网格部分中的至少一个网格部分的至少一部分对齐。网格可以是图块网格,并且多个网格部分可以是多个图块,使得帧内容的多个部分中的每个部分与多个图块中的至少一个图块的至少一部分对齐。

在830处,GPU组件802可以相对于网格移位帧内容,使得帧内容的多个部分中的至少一部分与多个网格部分中的至少一个不同网格部分的至少一部分对齐。

在一些方面,移位的帧内容可以与移位距离或移位区域中的至少一个相关联。移位的帧内容的移位距离或移位区域可以由网格中的偏移区域界定。此外,移位的帧内容中的至少一些可对应于小于网格部分的区域的区域。移位的帧内容的粒度可以小于网格部分的区域的粒度。此外,可以分开地移位帧内容的多个部分中的每个部分,或者可以一起移位帧内容的多个部分中的全部。帧内容的第一部分可以对应于显示器的第一部分,并且帧内容的第二部分可以对应于显示器的第二部分,使得帧内容的第一部分与帧内容的第二部分被分开地移位。另外,帧内容可以由图形处理单元(GPU)相对于网格移位。

在840处,GPU组件802可以在相对于网格移位帧内容时存储移位的帧内容,移位的帧内容包括帧内容的、与至少一个不同网格部分的至少一部分对齐的至少一部分。移位的帧内容可以存储在存储器、图形处理单元(GPU)存储器、系统存储器或缓冲器中的至少一个中。此外,与被存储在GPU存储器中相比,如果被存储在系统存储器中,则移位的帧内容可以移位不同的量。例如,与被存储在GPU存储器中相比,如果被存储在系统存储器中,则移位的帧内容可以移位更低的量。此外,可以在存储帧内容的同时移位帧内容,使得帧内容同时被移位和存储。

在850处,GPU组件802可以在存储移位的帧内容时检索移位的帧内容。

在860处,GPU组件802可以在检索到帧内容时重新移位检索到的帧内容,使得重新移位的帧内容对应于处理后的帧内容。在一些情况下,重新移位的帧内容可以等同于处理后的帧内容。

在870处,GPU组件802可以在重新移位帧内容时渲染重新移位的帧内容。

在880处,GPU组件802可以在重新移位帧内容时发送包括重新移位的帧内容的一个或多个帧,例如帧882。

图9是根据本发明的一种或多种技术的图形处理的示例方法的流程图900。该方法可由诸如用于图形处理的装置、GPU、另一图形处理器、GPU管线、无线通信设备和/或如结合图1到8的示例所使用的可执行图形处理的任何装置的装置执行。

在902处,装置可以接收包括帧内容的至少一个帧,其中该至少一个帧在被接收之后被处理。例如,如图8的810中所描述的,GPU组件802可以接收包括帧内容的至少一个帧,其中该至少一个帧在被接收之后被处理。此外,图1中的处理单元120可以执行步骤902。

在904处,装置可以处理包括与包括多个网格部分的网格相关联的帧内容的至少一个帧,帧内容的多个部分中的每个部分与多个网格部分中的至少一个网格部分的至少一部分对齐。例如,如在图8的820中所描述的,GPU组件802可以处理包括与包括多个网格部分的网格相关联的帧内容的至少一个帧,帧内容的多个部分中的每个部分与多个网格部分中的至少一个网格部分的至少一部分对齐。此外,图1中的处理单元120可以执行步骤904。网格可以是图块网格,并且多个网格部分可以是多个图块,使得帧内容的多个部分中的每个部分与多个图块中的至少一个图块的至少一部分对齐。

在906处,装置可以相对于网格移位帧内容,使得帧内容的多个部分中的至少一部分与多个网格部分中的至少一个不同网格部分的至少一部分对齐。例如,如在图8的830中所描述的,GPU组件802可以相对于网格移位帧内容,使得帧内容的多个部分中的至少一部分与多个网格部分中的至少一个不同网格部分的至少一部分对齐。此外,图1中的处理单元120可以执行步骤906。

在一些方面,移位的帧内容可以与移位距离或移位区域中的至少一个相关联。移位的帧内容的移位距离或移位区域可以由网格中的偏移区域界定。此外,移位的帧内容中的至少一些可对应于小于网格部分的区域的区域。移位的帧内容的粒度可以小于网格部分的区域的粒度。此外,可以分开地移位帧内容的多个部分中的每个部分,或者可以一起移位帧内容的多个部分中的全部。帧内容的第一部分可以对应于显示器的第一部分,并且帧内容的第二部分可以对应于显示器的第二部分,使得帧内容的第一部分与帧内容的第二部分被分开地移位。另外,帧内容可以由图形处理单元(GPU)相对于网格移位。

在908处,装置可以在相对于网格移位帧内容时存储移位的帧内容,移位的帧内容包括帧内容的、与至少一个不同网格部分的至少一部分对齐的至少一部分。例如,如图8的840中所描述的,GPU组件802可以在相对于网格移位帧内容时存储移位的帧内容,移位的帧内容包括帧内容的、与至少一个不同网格部分的至少一部分对齐的至少一部分。此外,图1中的处理单元120可以执行步骤908。移位的帧内容可以存储在存储器、图形处理单元(GPU)存储器、系统存储器或缓冲器中的至少一个中。此外,与被存储在GPU存储器中相比,如果被存储在系统存储器中,则移位的帧内容可以移位不同的量。例如,与被存储在GPU存储器中相比,如果被存储在系统存储器中,则移位的帧内容可以移位更低的量。此外,可以在存储帧内容的同时移位帧内容,使得帧内容同时被移位和存储。

在910处,装置可以在存储移位的帧内容时检索移位的帧内容。例如,如图8的850中所描述的,GPU组件802可以在存储移位的帧内容时检索移位的帧内容。此外,图1中的处理单元120可以执行步骤910。

在912处,装置可以在检索到帧内容时重新移位检索到的帧内容,使得重新移位的帧内容对应于处理后的帧内容。例如,如图8的860中所描述的,GPU组件802可以在检索到帧内容时重新移位检索到的帧内容,使得重新移位的帧内容对应于处理后的帧内容。此外,图1中的处理单元120可以执行步骤912。在一些情况下,重新移位的帧内容可以等同于处理后的帧内容。

在914处,装置可以在重新移位帧内容时渲染重新移位的帧内容。例如,如图8的870中所描述的,GPU组件802可以在重新移位帧内容时渲染重新移位的帧内容。此外,图1中的处理单元120可以执行步骤914。

在916处,装置可以在重新移位帧内容时发送包括重新移位的帧内容的一个或多个帧。例如,如图8的880中所描述的,GPU组件802可以在重新移位帧内容时发送包括重新移位的帧内容的一个或多个帧。此外,图1中的处理单元120可以执行步骤916。

在配置中,提供了一种用于图形处理的方法或装置。该装置可以是GPU、图形处理器或可执行图形处理的某一其他处理器。在各方面中,该装置可以是设备104内的处理单元120,或者可以是设备104或另一设备内的一些其他硬件。该装置(例如,处理单元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或其他光盘存储、磁盘存储或其他磁存储设备。如本文中所使用,磁盘及光盘包含压缩光盘(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中任一项所述的方法,其中,移位的帧内容被存储在存储器、图形处理单元(GPU)存储器、系统存储器或缓冲器中的至少一个中。

方面12是根据方面1至11中任一项所述的方法,其中,与被存储在GPU存储器中相比,如果被存储在系统存储器中,则移位的帧内容被移位不同的量。

方面13是根据方面1至12中任一项所述的方法,其中,与被存储在GPU存储器中相比,如果被存储在系统存储器中,则移位的帧内容被移位更少的量。

方面14是根据方面1至13中任一项所述的方法,其中,在存储帧内容的同时移位帧内容,使得同时移位并存储帧内容。

方面15是根据方面1至14中任一项所述的方法,其中,网格是图块网格,并且多个网格部分是多个图块,使得帧内容的多个部分中的每个部分与多个图块中的至少一个图块的至少一部分对齐。

方面16是根据方面1至15中任一项所述的方法,还包括:接收包括帧内容的至少一个帧,其中,至少一个帧在被接收之后被处理。

方面17是根据方面1至16中任一项所述的方法,其中,帧内容的多个部分中的每个部分被分开地移位,或者帧内容的多个部分中的全部被一起移位。

方面18是根据方面1至17中任一项所述的方法,其中,帧内容的第一部分对应于显示器的第一部分,并且帧内容的第二部分对应于显示器的第二部分,使得帧内容的第一部分与帧内容的第二部分被分开地移位。

方面19是根据方面1至18中任一项所述的方法,其中,帧内容由图形处理单元(GPU)相对于网格移位。

方面20是一种用于图形处理的装置,包括至少一个处理器,该至少一个处理器耦合到存储器并且被配置为实现如方面1至19中任一项所述的方法。

方面21是一种用于图形处理的装置,包括用于实现如方面1至19中任一项所述的方法的部件。

方面22是一种存储计算机可执行代码的计算机可读介质,该代码在由至少一个处理器执行时使该至少一个处理器实现如方面1至19中任一项所述的方法。

相关技术
  • 利用注视点网格渲染沉浸式视频内容的方法、系统和介质
  • 个人装置辅助的TV流媒体和渲染内容的注视点优化
技术分类

06120116488350