CN112513937B - 分布式图形处理 - Google Patents

分布式图形处理 Download PDF

Info

Publication number
CN112513937B
CN112513937B CN201980030246.4A CN201980030246A CN112513937B CN 112513937 B CN112513937 B CN 112513937B CN 201980030246 A CN201980030246 A CN 201980030246A CN 112513937 B CN112513937 B CN 112513937B
Authority
CN
China
Prior art keywords
shadow texture
texture atlas
processing unit
content
shadow
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.)
Active
Application number
CN201980030246.4A
Other languages
English (en)
Other versions
CN112513937A (zh
Inventor
M.马卡尔
D.施马尔斯蒂格
A.V.拉奥
S.迪亚兹斯平多拉
B.弗尔塞尔杰
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
Application filed by Qualcomm Technologies Inc filed Critical Qualcomm Technologies Inc
Publication of CN112513937A publication Critical patent/CN112513937A/zh
Application granted granted Critical
Publication of CN112513937B publication Critical patent/CN112513937B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/507Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction using conditional replenishment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

提供了用于无线通信的方法、设备和计算机可读介质。在一个方面,示例方法可以包括确定控制内容编码器的比特率。该方法可以包括基于控制内容编码器的比特率的确定,生成用于由第二装置渲染第二数目的帧的第一数目的阴影纹理图集。每个相应的阴影纹理图集可以包括相应的多个阴影图元。该方法可以包括由第一装置的内容编码器对所述第一数目的阴影纹理图集的第一阴影纹理图集进行编码。该方法可以包括由所述第一装置将所编码的第一阴影纹理图集传送到第二装置。

Description

分布式图形处理
在35U.S.C.§119下要求优先权
本专利申请要求于2018年5月8日提交的题为“DISTRIBUTED GRAPHICSPROCESSING”的非临时申请号15/974,573的优先权,该申请被转让给其受让人,并且在此通过引用明确地合并于此。
技术领域
本公开一般涉及通信系统;并且,更具体地,涉及一种或多种用于通信系统中的图形处理的技术。
背景技术
计算装置通常利用图形处理单元(GPU)来加速图形数据的渲染用于显示。这样的计算装置可以包括例如计算机工作站、诸如所谓的智能电话之类的移动电话、嵌入式系统、个人计算机、平板计算机、和视频游戏控制台。GPU执行图形处理管线,该图形处理管线包括多个处理阶段,这些处理阶段一起操作以执行图形处理命令并输出帧。中央处理单元(CPU)可以通过向GPU发布一个或多个图形处理命令来控制GPU的操作。现代的CPU通常能够并发地执行多个应用,每个应用在执行期间可能需要利用GPU。提供用于在显示器上视觉呈现的内容的装置通常包括图形处理单元(GPU)。
通常,装置的GPU被配置为执行图形处理管线中的每个处理。然而,随着无线通信和内容(例如,游戏内容或使用GPU渲染的任何其他内容)的流传输的出现,已经开发了对于分布式图形处理的需求。例如,已经开发了对于将由第一装置(例如,客户端装置,诸如游戏控制台、虚拟现实装置、或任何其他装置)的GPU执行的处理卸载到第二装置(例如,服务器,例如托管移动游戏的服务器)的需求。
发明内容
以下呈现一个或多个方面的简化概述,以便提供对这些方面的基本理解。该概述不是对所有预期方面的广泛概述,并且既不旨在标识所有方面的关键或重要元素,也不旨在描绘任何或所有方面的范围。其唯一目的是以简化形式呈现一个或多个方面的一些概念,作为稍后呈现的更详细描述的序言。
在本公开的一方面,提供了一种方法、计算机可读介质、和第一设备。所述第一设备可以包括:存储器,配置为存储数据;第一处理单元,与所述存储器通信耦合;和内容编码器,与所述存储器和所述第一处理单元通信耦合。第一处理单元可被配置为确定控制内容编码器的比特率。第一处理单元可被配置为基于控制内容编码器的比特率的确定,生成用于由第二设备渲染第二数目的帧的第一数目的阴影纹理图集。每个相应的阴影纹理图集可包括相应的多个阴影图元(primitives)。内容编码器可被配置为对所述第一数目的阴影纹理图集的第一阴影纹理图集进行编码。第一设备可被配置为将所编码的第一阴影纹理图集传送到第二设备。
在附图和以下描述中阐述了本公开的一个或多个示例的细节。根据说明书和附图、以及根据权利要求,本公开的其他特征、目的和优点将是显而易见的。
附图说明
图1是图示了根据本发明的技术的实例内容生成和编码系统的框图。
图2A-2B图示了根据本文描述的技术在源装置与目的地装置之间的示例流程图。
图2C图示了根据本公开的技术的组合比特率控制技术的示例。
图3A-3D图示了根据本公开的技术的位置信息的示例。
图4A图示了根据本公开的技术的示例阴影纹理图集。
图4B图示了根据本文描述的技术的具有多个子块的块的示例。
图4C图示了根据本文描述的技术的具有多个子块的块的示例。
图4D图示了根据本公开的技术的示例阴影纹理图集。
图4E图示了根据本文描述的技术的具有多个子块的块的示例。
图4F图示了根据本文描述的技术的具有多个子块的块的示例。
图4G图示了根据本文描述的技术的具有多个子块的块的示例。
图4H图示了根据本文所述的技术的具有多个子块的块的示例。
图4I图示了根据本文描述的技术的具有多个子块的块的示例。
图4J图示了根据本公开的技术的示例阴影纹理图集。
图4K图示了根据本公开的技术的示例阴影纹理图集。
图4L图示了根据本文描述的技术的具有多个子块的块的示例。
图4M图示了根据本公开的技术的示例阴影纹理图集。
图4N图示了根据本文描述的技术的具有多个子块的块的示例。
图4O图示了根据本文描述的技术的具有多个子块的块的示例。
图4P图示了根据本文描述的技术的具有多个子块的块的示例。
图4Q图示了根据本文描述的技术的具有多个子块的块的示例。
图4R图示了根据本文描述的技术的阴影纹理图集的两个示例。
图5图示了根据本公开的一种或多种技术的内容生成和编码的方法的示例流程图。
具体实施方式
在下文中参考附图更全面地描述系统、设备、计算机程序产品、和方法的各个方面。然而,本公开可以以许多不同的形式实施,并且不应被解释为限于贯穿本公开呈现的任何特定结构或功能。而是,提供这些方面使得本公开将是透彻和完整的,并将向本领域技术人员全面传达本公开的范围。基于本文的教导,本领域的技术人员应理解,本公开的范围旨在覆盖本文所公开的系统、设备、计算机程序产品、和方法的任何方面,无论是独立于本发明的其他方面实现还是与本发明的其他方面结合实现。例如,可以使用本文阐述的任何数目的方面,来实现一种设备或可以实践一种方法。另外,本发明的范围旨在覆盖这样的设备或方法,使用除了本文阐述的本发明的各个方面之外的或不同于本文阐述的本发明的各个方面的其他结构、功能、或结构和功能,来实践所述设备或方法。本文公开的任何方面可以通过权利要求的一个或多个要素来体现。
尽管本文描述了各个方面,但是这些方面的许多变化和置换都落入本公开的范围内。尽管提到了本公开的各方面的一些潜在的益处和优点,但是本公开的范围并不旨在限于特定的益处、用途、或目的。相反,本公开的各方面旨在广泛地适用于不同的无线技术、系统配置、网络、和传输协议,其中一些以示例的方式在图中和以下描述中图示。详细描述和附图仅是对本公开的说明而不是限制,本公开的范围由所附权利要求及其等效物限定。
参照各种设备和方法呈现了几个方面。这些设备和方法在下面的详细描述中描述,并在附图中通过各种块、组件、电路、处理、算法等(统称为“元素”)图示。可以使用电子硬件、计算机软件、或其任意组合来实现这些元素。将这些元素实现为硬件还是软件取决于在整个系统上施加的特定应用和设计约束。
举例来说,元素、或元素的任何部分、或元素的任何组合可以被实现为包括一个或多个处理器(也可以称为处理单元)的“处理系统”。处理器的示例包括微处理器、微控制器、图形处理单元(GPU)、通用目的GPU(GPGPU)、中央处理单元(CPU)、应用处理器、数字信号处理器(DSP)、精简指令集计算(RISC)处理器、片上系统(SoC)、基带处理器、特定用途集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑、分立硬件电路、以及配置为执行贯穿本公开描述的各种功能的其他合适硬件。处理系统中的一个或多个处理器可以执行软件。软件应广义地解释为意味着指令、指令集、代码、代码段、程序代码、程序、子程序、软件组件、应用、软件应用、软件包、例程、子例程、对象、可执行文件、执行线程、过程、功能等等,无论是被称为软件、固件、中间件、微代码、硬件描述语言还是被称为其他。术语应用可以指代软件。如本文所述,一种或多种技术可以指代被配置为执行一种或多种功能的应用(即,软件)。在这样的示例中,应理解,该应用可以存储在存储器(例如,处理器的片上存储器、系统存储器、或任何其他存储器)上。本文所述的硬件(例如,处理器)可以被配置为执行应用。例如,该应用可以被描述为包括当由硬件执行时促使硬件执行本文描述的一种或多种技术的代码。作为示例,硬件可以从存储器访问代码,并且执行从存储器访问的代码,以执行本文描述的一种或多种技术。在一些示例中,在本公开中标识组件。在这样的示例中,组件可以是硬件、软件、或其组合。组件可以是单独的组件或单个组件的子组件。
因此,在本文描述的一个或多个示例中,描述的功能可以以硬件、软件、或其任意组合来实现。如果以软件实现,则这些功能可以被存储在计算机可读介质上,或作为一个或多个指令或代码被编码在计算机可读介质上。计算机可读介质包括计算机储存介质。储存介质可以是计算机可以访问的任何可用介质。作为示例而非限制,这种计算机可读介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、光盘储存器、磁盘储存器、其他磁储存装置、上述类型的计算机可读介质的组合、或可用于以计算机可以访问的指令或数据结构的形式存储计算机可执行代码的任何其他介质。
一般,本公开描述了用于具有跨多个装置的分布式图形处理管线、改进图形内容的编码、和/或降低处理单元(即,配置为执行一个或多个本文所述的技术的任何处理单元,例如图形处理单元(GPU))的负荷的技术。例如,本公开描述了用于通过由处理单元执行本文中描述的一种或多种技术、来控制内容编码器的比特率的技术,诸如控制自适应着色帧频和/或控制mip-map(mip映射)偏置。在一些示例中,处理单元可以被配置为执行自适应着色(shading)(即,执行本文中描述的自适应着色帧频技术)、mip-map偏置、和/或向内容编码器输出一个或多个指令以控制内容编码器的比特率。执行自适应着色或mip-map偏置可能会影响处理单元向内容编码器提供(即,输出)或向存储器(内容编码器可以配置为从中存取(例如,读取))输出什么图形内容和/或多少图形内容。由处理单元提供给内容编码器的一个或多个指令可以控制(例如,修改或调整)内容编码器的一个或多个编码参数(例如,量化参数(QP))。内容编码器的比特率可以指代内容编码器的输出,例如比特流。在一些示例中,内容编码器的比特率可以符合或以其他方式遵守诸如视频编码标准(例如,H.264、H.265、或任何其他视频编码标准)之类的内容编码标准、显示流压缩标准、或图像压缩标准。贯穿本公开描述了其他可能的示例益处。
如本文所使用的,术语“编码器”通常可以指代编码器和/或解码器。例如,对“内容编码器”的指代可以包括对内容编码器和/或内容解码器的指代。类似地,如本文所使用的,术语“编码”通常可以指代编码和/或解码。如本文所使用的,术语“编码”和“压缩”可以互换地使用。类似地,术语“解码”和“解压缩”可以互换使用。
如本文所使用的,术语“内容”的实例可以指代术语“视频”、“图形内容”、“图像”,反之亦然。不论这些术语是否被用作形容词、名词或其他词性,都是如此。例如,对“内容编码器”的指代可以包括对“视频编码器”、“图形内容编码器”、或“图像编码器”的指代;并且对“视频编码器”、“图形内容编码器”、或“图像编码器”的指代可以包括对“内容编码器”的指代。作为另一示例,对向内容编码器提供内容的处理单元的指代可以包括对向视频编码器提供图形内容的处理单元的指代。在一些示例中,如本文所使用的,术语“图形内容”可以指代由图形处理管线的一个或多个处理产生的内容。在一些示例中,如本文所使用的,术语“图形内容”可以指由被配置为执行图形处理的处理单元产生的内容。在一些示例中,如本文所使用的,术语“图形内容”可以指代由图形处理单元产生的内容。
如本文所提及的,第一组件(例如,处理单元)可以将诸如图形内容的内容提供到第二组件(例如,内容编码器)。在一些示例中,第一组件可以通过将内容存储在第二组件可访问的存储器中,来向第二组件提供内容。在这样的示例中,第二组件可以被配置为读取由第一组件在存储器中存储的内容。在其他示例中,第一组件可以在没有任何中间组件(例如,没有存储器或另一组件)的情况下,向第二组件提供内容。在这样的示例中,第一组件可以被描述为直接向第二组件提供内容。例如,第一组件可以将内容输出到第二组件,并且第二组件可以被配置为将从第一组件接收的内容存储在诸如缓冲器的存储器中。
图1是图示了被配置为实现本公开的一种或多种技术的示例内容生成和编码系统100的框图。内容生成和编码系统100包括源装置102和目的地装置104。根据本文描述的技术,源装置102可以被配置为使用内容编码器108对在传输到目的地装置104之前由处理单元106生成的图形内容进行编码。内容编码器108可以被配置为输出具有比特率的比特流。处理单元106可以被配置为基于处理单元106如何生成图形内容,来控制和/或影响内容编码器108的比特率。
源装置102可以包括用于执行本文描述的各种功能的一个或多个组件(或电路)。目的地装置104可以包括用于执行本文描述的各种功能的一个或多个组件(或电路)。在一些示例中,源装置102的一个或多个组件可以是片上系统(SOC)的组件。类似地,在一些示例中,目的地装置104的一个或多个组件可以是SOC的组件。
源装置102可以包括被配置为执行本公开的一种或多种技术的一个或多个组件。在所示的示例中,源装置102可以包括处理单元106、内容编码器108、系统存储器110、和通信接口112。处理单元106可以包括内部存储器109。处理单元106可以被配置为例如在图形处理管线107-1中执行图形处理。内容编码器108可以包括内部存储器111。
处理单元6和内容编码器108外部的存储器(例如系统存储器110)可以由处理单元6和内容编码器108访问。例如,处理单元6和内容编码器108可以被配置为从诸如系统存储器110之类的外部存储器读取和/或向其写入。处理单元6和内容编码器108可以通过总线通信地耦合至系统存储器110。在一些示例中,处理单元6和内容编码器108可以通过总线或不同的连接彼此通信地耦合。
内容编码器108可以被配置为从诸如系统存储器110和/或处理单元106的任何源接收图形内容。系统存储器110可以被配置为存储由处理单元106生成的图形内容。例如,处理单元106可以被配置为将图形内容存储在系统存储器110中。内容编码器108可以被配置为以像素数据的形式(例如,从系统存储器110和/或处理单元106)接收图形内容。如按照别的方式描述的,内容编码器108可以被配置为接收由处理单元106产生的图形内容的像素数据。例如,内容编码器108可以被配置为接收用于图形内容的一个或多个像素的每一分量(例如,每一颜色分量)的值。作为示例,RGB颜色空间中的像素可以包括红色分量的第一值、绿色分量的第二值、和蓝色分量的第三值。
内部存储器109、系统存储器110、和/或内部存储器111可以包括一个或多个易失性或非易失性存储器或储存装置。在一些示例中,内部存储器109,系统存储器110、和/或内部存储器111可以包括随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、磁数据介质或光储存介质、或任何其他类型的存储器。
根据一些示例,内部存储器109、系统存储器110、和/或内部存储器111可以是非瞬态储存介质。术语“非瞬态”可以指示储存介质没有体现在载波或传播的信号中。然而,术语“非瞬态”不应解释为意味着内部存储器109、系统存储器110、和/或内部存储器111是不可移动的或者其内容是静态的。作为一个示例,系统存储器110可以从源装置102移除并且移动到另一装置。作为另一示例,系统存储器110可能不能从源装置102移除。
处理单元106可以是中央处理单元(CPU)、图形处理单元(GPU)、通用目的GPU(GPGPU)、或可以被配置为执行图形处理的任何其他处理单元。在一些示例中,处理单元6可以被集成到源装置102的母板中。在一些示例中,处理单元6可以存在于在源装置的母板中的端口中安装的图形卡上,或者可以以其他方式并入被配置为与源装置102互操作的外围装置中。
处理单元6可以包括一个或多个处理器,例如一个或多个微处理器、特定用途集成电路(ASIC)、现场可编程门阵列(FPGA)、算术逻辑单元(ALU)、数字信号处理器(DSP)、离散逻辑、软件、硬件、固件、其他等效的集成或离散逻辑电路、或其任意组合。如果技术部分地以软件来实现,则处理单元106可以将用于软件的指令存储在适当的非瞬态计算机可读储存介质(例如,内部存储器109)中,并且可以在使用一个或多个处理器的硬件中执行指令以执行本公开的技术。前述的任一个(包括硬件、软件、硬件和软件的组合等)可以被认为是一个或多个处理器。
内容编码器108可以是被配置为执行内容编码的任何处理单元。在一些示例中,内容编码器108可以被集成到源装置102的母板上。内容编码器108可以包括一个或多个处理器,诸如一个或多个微处理器、特定用途集成电路(ASIC)、现场可编程门阵列(FPGA)、算术逻辑单元(ALU)、数字信号处理器(DSP)、离散逻辑、软件、硬件、固件、其他等效的集成或离散逻辑电路、或其任意组合。如果技术部分地以软件来实现,则内容编码器108可以将用于软件的指令存储在适当的非瞬态计算机可读储存介质(例如,内部存储器111)中,并且可以在使用一个或多个处理器的硬件中执行指令以执行本公开的技术。前述的任一个(包括硬件、软件、硬件和软件的组合等)可以被认为是一个或多个处理器。
通信接口112可以包括接收器114和发射器116。接收器114可以被配置为针对源装置102执行本文中描述的任何接收功能。例如,接收器114可以被配置为从目的地装置104接收信息,其可以包括对内容的请求。在一些示例中,响应于接收到对内容的请求,源装置102可以被配置为执行本文描述的一种或多种技术,诸如产生或以其他方式生成图形内容用于递送到目的地装置104。发射器116可以被配置为针对源装置102执行本文中所述的任何传送功能。例如,发射器116可被配置为将编码的内容传送到目的地装置104,例如由处理单元106和内容编码器108产生的编码的图形内容(即,图形内容由处理单元106产生,内容编码器108接收该图形内容作为输入,以产生或以其他方式生成编码的图形内容)。接收器114和发射器116可以组合成收发器118。在这样的示例中,收发器118可以被配置为针对源装置102执行本文中描述的任何接收功能和/或传送功能。
目的地装置104可包括被配置为执行本公开的一种或多种技术的一个或多个组件。在所示的示例中,目的地装置104可以包括处理单元120、内容解码器122、系统存储器124、通信接口126、以及一个或多个显示器131。对显示器131的指代可以指代一个或多个显示器131。例如,显示器131可以包括单个显示器或多个显示器。显示器131可以包括第一显示器和第二显示器。第一显示器可以是左眼显示器,并且第二显示器可以是右眼显示器。在一些示例中,第一和第二显示器可以接收不同的帧用于在其上呈现。在其他示例中,第一和第二显示器可以接收相同的帧用于在其上呈现。
处理单元120可以包括内部存储器121。处理单元120可以被配置为执行图形处理,例如在图形处理管线107-2中。内容解码器122可以包括内部存储器123。在一些示例中,目的地装置104可以包括显示处理器,例如显示处理器127,以对在由一个或多个显示器131呈现之前由处理单元120生成的一个或多个帧执行一种或多种显示处理技术。显示处理器127可以被配置为执行显示处理。例如,显示处理器127可以被配置为对由处理单元120生成的一个或多个帧执行一种或多种显示处理技术。一个或多个显示器131可以被配置为显示使用解码的内容生成的内容。例如,显示处理器127可以被配置为处理由处理单元120生成的一个或多个帧,其中所述一个或多个帧由处理单元120通过使用由从源装置102接收的编码的内容导出的解码的内容来生成。进而,显示处理器127可以被配置为对由处理单元120生成的一个或多个帧执行显示处理。一个或多个显示器131可以被配置为显示或按照别的方式呈现由显示处理器127处理的帧。在一些示例中,一个或多个显示装置可以包括以下一个或多个:液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器、投影显示装置、增强现实显示装置、虚拟现实显示装置、头戴式显示器、或任何其他类型的显示装置。
处理单元120和内容解码器122外部的存储器(例如系统存储器124)可以由处理单元120和内容解码器122存取。例如,处理单元120和内容解码器122可以被配置为从诸如系统存储器124之类的外部存储器读取和/或写入外部存储器。处理单元120和内容解码器122可以通过总线通信地耦合至系统存储器124。在一些示例中,处理单元120和内容解码器122可以通过总线或不同的连接彼此通信地耦合。
内容解码器122可以被配置为从诸如系统存储器124和/或通信接口126之类的任何源接收图形内容。系统存储器124可以被配置为存储所接收的编码的图形内容,诸如从源装置102接收的编码的图形内容。内容解码器122可以被配置为以编码的像素数据的形式(例如,从系统存储器124和/或通信接口126)接收编码的图形内容。内容解码器122可以被配置为对编码的图形内容进行解码。
内部存储器121、系统存储器124、和/或内部存储器123可以包括一个或多个易失性或非易失性存储器或储存装置。在一些示例中,内部存储器121、系统存储器124、和/或内部存储器123可以包括随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、磁数据介质或光储存介质、或任何其他类型的存储器。
根据一些示例,内部存储器121、系统存储器124和/或内部存储器123可以是非瞬态储存介质。术语“非瞬态”可以指示储存介质没有体现在载波或传播的信号中。然而,术语“非瞬态”不应解释为意味着内部存储器121、系统存储器124、和/或内部存储器123是不可移动的或者其内容是静态的。作为一个示例,系统存储器124可以从目的地装置104移除并且移动到另一装置。作为另一个示例,系统存储器124可能不能从目的地装置104移除。
处理单元120可以是中央处理单元(CPU)、图形处理单元(GPU)、通用目的GPU(GPGPU)、或可以被配置为执行图形处理的任何其他处理单元。在一些示例中,处理单元120可以被集成到目的地装置104的母板中。在一些示例中,处理单元120可以存在于在目的地装置104的母板中的端口中安装的图形卡上,或者可以其他方式合并到配置为与目的地装置104互操作的外围装置中。
处理单元120可以包括一个或多个处理器,例如一个或多个微处理器、特定用途集成电路(ASIC)、现场可编程门阵列(FPGA)、算术逻辑单元(ALU)、数字信号处理器(DSP)、离散逻辑、软件、硬件、固件、其他等效的集成或离散逻辑电路、或其任意组合。如果技术部分地以软件来实现,则处理单元120可以将用于软件的指令存储在适当的非瞬态计算机可读储存介质(例如,内部存储器121)中,并且可以在使用一个或多个处理器的硬件中执行指令以执行本公开的技术。前述的任一个(包括硬件、软件、硬件和软件的组合等)可以被认为是一个或多个处理器。
内容解码器122可以是被配置为执行内容解码的任何处理单元。在一些示例中,内容解码器122可以被集成到目的地装置104的母板上。内容解码器122可以包括一个或多个处理器,诸如一个或多个微处理器、特定用途集成电路(ASIC)、现场可编程门阵列(FPGA)、算术逻辑单元(ALU)、数字信号处理器(DSP)、离散逻辑、软件、硬件、固件、其他等效的集成或离散逻辑电路、或其任意组合。如果技术部分地以软件来实现,则内容解码器122可以将用于软件的指令存储在适当的非瞬态计算机可读储存介质(例如,内部存储器123)中,并且可以在使用一个或多个处理器的硬件中执行指令以执行本公开的技术。前述的任一个(包括硬件、软件、硬件和软件的组合等)可以被认为是一个或多个处理器。
通信接口126可以包括接收器128和发送器130。接收器128可以被配置为针对目的地装置104执行本文中描述的任何接收功能。例如,接收器128可以被配置为从源装置102接收信息,其可以包括编码的内容,例如由源装置102的处理单元106和内容编码器108产生或以别的方式生成的编码的图形内容(即,图形内容由处理单元106产生,内容编码器108接收该图形内容作为输入,以产生或以其他方式生成编码的图形内容)。作为另一示例,接收器128可以被配置为从源装置102接收位置信息,该位置信息可以被编码或未被编码(即,未编码)。在一些示例中,目的地装置104可以被配置为根据本文描述的技术来解码从源装置102接收的编码的图形内容。例如,内容解码器122可以被配置为解码编码的图形内容,以产生或以其他方式生成解码的图形内容。处理单元120可以被配置为使用解码的图形内容来产生或以其他方式生成一个或多个帧用于呈现在一个或多个显示器131上。发射器130可以被配置为针对目的地装置104执行本文所描述的任何传送功能。例如,发射器130可以被配置为向源装置102传送信息,该信息可以包括对内容的请求。接收器128和发射器130可以组合成收发器132。在这样的示例中,收发器132可以被配置为针对目的地装置104执行本文中描述的任何接收功能和/或传送功能。
内容生成和编码系统100的内容编码器108和内容解码器122表示计算组件(例如,处理单元)的示例,其可以被配置为分别根据本公开中描述的各种示例来执行用于编码内容和解码内容的一种或多种技术。在一些示例中,内容编码器108和内容解码器122可以被配置为根据诸如视频编码标准、显示流压缩标准、或图像压缩标准的内容编码标准进行操作。
如图1所示,源装置102可以被配置为生成编码的内容。因此,源装置102可以被称为内容编码装置或内容编码设备。目的地装置104可以被配置为对由源装置102生成的编码的内容进行解码。因此,目的地装置104可以被称为内容解码装置或内容解码设备。在一些示例中,如所示的,源装置102和目的地装置104可以是单独的装置。在其他示例中,源装置102和目的地装置104可以在同一计算装置上或作为其一部分。在任一示例中,图形处理管线可以分布在两个装置之间。例如,单个图形处理管线可以包括多个图形处理。图形处理管线107-1可以包括多个图形处理中的一个或多个图形处理。类似地,图形处理管线107-2可以包括多个图形处理中的一个或多个处理图形处理。就这一点而言,由图形处理管线107-2连接或以其他方式跟随的图形处理管线107-1可导致完整的图形处理管线。按照别的方式描述,图形处理管线107-1可以是部分图形处理管线,并且图形处理管线107-2可以是部分图形处理管线,当组合时,其导致分布式图形处理管线。
在一些示例中,在图形处理管线107-1中执行的图形处理可以在图形处理管线107-2中不被执行或以其他方式重复。例如,图形处理管线107-1可以包括确定可见和/或潜在可见图元的列表,以及将可见和/或潜在可见图元着色为纹理图集(其可以称为阴影纹理图集)。在一些示例中,处理单元106可以被配置为通过被配置为执行自适应着色(即,执行本文中描述的自适应着色帧频技术)和/或mip-map偏置,将可见和/或潜在可见的图元着色为纹理图集。图形处理管线107-2可以包括基于阴影纹理图集、帧频上采样、和/或透镜畸变和色差补偿来渲染帧。在这样的示例中,图形处理可以被描述为分布在两个不同装置之间。例如,通过将一个或多个图形处理移动到源装置102的处理单元106,可以减少和/或更有效地利用目的地装置104的处理单元120上的负载。作为另一示例,处理单元120可以具有比处理单元106更少的处理能力。通过在源装置102和目的地装置104之间分配图形处理管线,在一些示例中,目的地装置可能能够呈现其按照别的方式将无法渲染的图形;并因此不能呈现。贯穿本公开描述了其他示例益处。
如本文所述,诸如源装置102和/或目的地装置104之类的装置可以指被配置为执行本文所述的一种或多种技术的任何装置、设备或系统。例如,装置可以是服务器、基站、用户设备、客户端装置、站、接入点、计算机(例如,个人计算机、桌面计算机、膝上型计算机、平板计算机、计算机工作站、或大型计算机)、最终产品、设备、电话、智能电话、服务器、视频游戏平台或控制、手持装置(例如,便携式视频游戏装置或个人数字助理(PDA))、可穿戴计算装置(例如,智能手表、增强现实装置、或虚拟现实装置)、不可穿戴装置、增强现实装置、虚拟现实装置、显示器(例如,显示装置)、电视、电视机顶盒、中间网络装置、数字媒体播放器、视频流化装置、内容流化装置、车载计算机、任何移动装置、配置为生成图形内容的任何装置、或配置为执行本文所述的一种或多种技术的任何装置。
源装置102可以被配置为与目的地装置104通信。例如,目的地装置104可以被配置为从源装置102接收编码的内容。在一些示例中,源装置102与目的地装置104之间的通信耦合被示为链路134。链路134可以包括能够将编码的内容从源装置102移动到目的地装置104的任何类型的介质或装置。
在图1的示例中,链路134可以包括通信介质,以使源装置102能够将编码的内容实时地传送到目的地装置104。可以根据诸如无线通信协议之类的通信标准来调制编码的内容,并且将其传送到目的地装置14。通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一种或多种物理传输线路。通信介质可以形成诸如局域网、广域网的基于分组的网络、或诸如因特网之类的全球网络的一部分。通信介质可以包括路由器、交换机、基站、或对促进从源装置102到目的地装置104的通信可能有用的任何其他设备。在其他示例中,链路134可以是源装置102和目的地装置104之间的点对点连接,例如有线或无线显示链路连接(例如,HDMI链路、DisplayPort链路、MIPI DSI链路、或编码的内容可以通过其从源装置102穿越(traverse)到目的地装置104的其他链路。
在另一示例中,链路134可以包括被配置为存储由源装置102生成的编码的内容的储存介质。在该示例中,目的地装置104可以被配置为访问该储存介质。储存介质可以包括各种本地访问的数据储存介质,例如蓝光盘、DVD、CD-ROM、闪存、或用于存储编码的内容的其他合适的数字储存介质。
在另一示例中,链路134可以包括服务器或另一中间储存装置,该服务器或另一中间储存装置被配置为存储由源装置102生成的编码的内容。在该示例中,目的地装置104可以被配置为访问在服务器或其他中间储存装置处存储的编码的内容。服务器可以是能够存储编码的内容并将编码的内容传送到目的地装置104的一类服务器。
如本文中所描述,本文中所描述的装置可被配置为彼此通信,例如源装置102和目的地装置104。通信可包含信息的传送和/或接收。该信息可以被携带在一个或多个消息中。作为示例,与第二装置通信的第一装置可以被描述为与第二装置通信耦合或以其他方式与第二装置耦合。例如,客户端装置和服务器可以通信地耦合。作为另一示例,服务器可以通信地耦合到多个客户端装置。作为另一示例,本文描述的配置为执行本公开的一种或多种技术的任何装置可以通信地耦合到配置为执行本公开的一种或多种技术的一个或多个其他装置。在一些示例中,当通信耦合时,两个装置可能正在主动地传送或接收信息,或者可以被配置为传送或接收信息。如果未通信耦合,则可以将任何两个装置配置为彼此通信耦合,例如根据符合一个或多个通信标准的一个或多个通信协议。提及“任何两个装置”并不意味着可以将仅两个装置配置为彼此通信耦合;相反,任何两个装置包含两个以上的装置。例如,第一装置可以与第二装置通信耦合,并且第一装置可以与第三装置通信耦合。在这样的示例中,第一装置可以是服务器。
参考图1,源装置102可以被描述为通信地耦合到目的地装置104。在一些示例中,术语“通信地耦合”可以指代可以是直接的或间接的通信连接。在一些示例中,链路134可以表示源装置102和目的地装置104之间的通信耦合。通信连接可以是有线和/或无线的。有线连接可以指代信息可以在其上行进的导电路径、迹线、或物理介质(不包括无线物理介质)。导电路径可以指任何长度的任何导体,例如导电垫、导电通孔、导电平面、导电迹线、或任何导电介质。直接通信连接可以指其中在两个通信耦合的组件之间不存在中间组件的连接。间接通信连接可以指其中至少一个中间组件位于两个通信耦合的组件之间的连接。根据一种或多种通信协议,可通信耦合的两个装置可以通过一种或多种不同类型的网络(例如,无线网络和/或有线网络)彼此通信。在一些示例中,通信地耦合的两个装置可以通过关联处理彼此关联。在其他示例中,通信耦合的两个装置可以彼此通信而不参与关联处理。例如,诸如源装置102之类的装置可以被配置为向一个或多个其他装置(例如,一个或多个目的地装置,包括目的地装置104)单播、广播、多播、或以其他方式传送信息(例如,编码的内容)。在该示例中,目的地装置104可以被描述为与一个或多个其他装置中的每一个通信耦合。在一些示例中,通信连接可以使能信息的传送和/或接收。例如,根据本公开的技术,通信地耦合到第二装置的第一装置可以被配置为向第二装置传送信息和/或从第二装置接收信息。类似地,根据本公开的技术,该示例中的第二装置可以被配置为向第一装置传送信息和/或从第一装置接收信息。在一些示例中,术语“通信地耦合”可以指代临时的、间歇的、或永久的通信连接。
本文描述的任何装置(例如源装置102和目的地装置104)可以被配置为根据一个或多个通信协议进行操作。例如,源装置102可以被配置为使用一种或多种通信协议与目的地装置104通信(例如,从目的地装置104接收信息和/或向目的地装置104传送信息)。在这样的示例中,源装置102可以被描述为通过连接与目的地装置104通信。该连接可以遵循(compliant)或者以其他方式符合通信协议。类似地,目的地装置104可以被配置为使用一种或多种通信协议与源装置102通信(例如,从源装置102接收信息和/或向其传送信息)。在这样的示例中,目的地装置104可以被描述为通过连接与源装置102通信。该连接可以遵循或者以其他方式符合通信协议。
如本文所使用的,术语“通信协议”可以指代任何通信协议,诸如遵循通信标准等的通信协议。如本文所使用的,术语“通信标准”可以包括任何通信标准,诸如无线通信标准和/或有线通信标准。无线通信标准可以对应于无线网络。作为示例,通信标准可以包括与无线个人局域网(WPAN)标准相对应的任何无线通信标准,例如蓝牙(例如,IEEE 802.15)、蓝牙低能量(BLE)(例如,IEEE 802.15.4)。作为另一示例,通信标准可以包括对应于诸如WI-FI的无线局域网(WLAN)标准的任何无线通信标准(例如,诸如802.11a、802.11b、802.11c、802.11n、或802.11ax的任何802.11标准)。作为另一示例,通信标准可以包括对应于无线广域网(WWAN)标准的任何无线通信标准,例如3G、4G、4G LTE、或5G。
参考图1,内容编码器108可以被配置为编码图形内容。例如,内容编码器108可以被配置为编码阴影纹理图集。在这样的示例中,内容编码器108可以被描述为被配置为对与阴影纹理图集相对应的像素数据进行编码。在一些示例中,阴影纹理图集可以被描述为由处理单元106生成的图像或帧,内容编码器108可以被配置为接收所述图像或帧作为输入。阴影纹理图集不构成渲染的帧。而是,阴影纹理图集被例如目的地装置104使用用于渲染帧。在一些示例中,阴影纹理图集可包括一个或多个重新使用部分和一个或多个更新部分。这样的阴影纹理图集可以被称为部分更新的阴影纹理图集。在其他示例中,阴影纹理图集可以被完全重新使用。在这样的示例中,阴影纹理图集可以被称为重新使用阴影纹理图集。在其他示例中,阴影纹理图集可以被完全更新。在这样的示例中,阴影纹理图集可以被称为完全更新的阴影纹理图集或非重新使用的阴影纹理图集。例如,处理单元106可以被配置为生成第一阴影纹理图集,并随后生成第二阴影纹理图集,其中第二阴影纹理图集包括一个或多个重新使用部分(在该示例中,所述一个或多个重新使用部分来自所述第一阴影纹理图集)。在该示例中,第二阴影纹理图集构成部分更新的阴影纹理图集。当第二阴影纹理图集传递到内容编码器108时,与第二阴影纹理图集不包括一个或多个重新使用部分相比,内容编码器108可以被配置为更有效地编码第二阴影纹理图集。这是因为内容编码器108可以被配置为相对于第一阴影纹理图集更有效地编码第二阴影纹理图集中的一个或多个重新使用部分,这意味着内容编码器108可以被配置为利用第一和第二阴影纹理图集之间的相似性(即,相似性是第二阴影纹理图集中的一个或多个重新使用部分相对于第一阴影纹理图集中的相同一个或多个部分)。例如,当第二阴影纹理图集传递到内容编码器108时,内容编码器108可以被配置为在一个或多个重新使用部分上花费可忽略的比特率(相对于第一阴影纹理图集中的相同一个或多个部分,所述一个或多个重新使用部分的阴影没有变化)。在这样的示例中,内容编码器108可以被配置为发信号通知一个或多个重新使用部分是第一阴影纹理图集中的并置的一个或多个部分的副本或者按照别的方式与第一阴影纹理图集中的并置的一个或多个部分相同。因此,通过执行自适应着色帧频,可以引入比特率节省。
在一些示例中,内容编码器108可以被配置为将图形内容(诸如阴影纹理图集)编码为一个或多个视频帧。在一些示例中,每个视频帧可以对应于阴影纹理图集的块。按照别的方式描述,阴影纹理图集可以包括多个块。例如,阴影纹理图集可以是NxM个像素,其中N和M都是整数值。在一些示例中,N可以等于M。在其他示例中,N可以不等于M。阴影纹理图集可以由多个块表示,其中每个块具有小于NxM的大小,无论是长度和/或宽度。阴影纹理图集的每个块可以具有QxR的大小,其中Q和R都是整数值。在一些示例中,Q可以等于R。在其他示例中,Q可以不等于R。示例块大小包括8x8、16x16、32x32、64x64、256x256、或512x512像素。阴影纹理图集的每个块包含一个或多个子块。每个子块可包括一个或多个阴影图元。在一些示例中,每个子块可以包括至少两个阴影图元。每个子块可以具有S×T的大小,其中S和T都是整数值。在一些示例中,S可以等于T。在其他示例中,S可以不等于T。每个子块具有小于QxR的大小(无论是长度和/或宽度)。在一些示例中,同一块内的每个子块可以具有相同的大小。在其他示例中,同一块内的子块的大小可以变化。在一些示例中,阴影纹理图集的一部分可以包括一个或多个图元、一个或多个块、一个或多个子块、和/或阴影纹理图集的区域。如本文所述,块可包含一个或一个以上子块。例如,部分可以指代图元、图元块(如本文所述)、图元块内的图元子块(如本文所述)、或阴影纹理图集的区域。
在一些示例中,内容编码器108可以被配置为将阴影纹理图集编码为单个视频帧。例如,可以将整个阴影纹理图集作为单个视频帧提供到内容编码器108。在其他示例中,内容编码器108可以被配置为将阴影纹理图集的每个相应块编码为相应的视频帧。在其他示例中,内容编码器108可以被配置为将阴影纹理图集的两个或更多块编码为单个视频帧。
当内容编码器108对内容进行编码时,内容编码器108可以生成比特流。该比特流可以具有比特率,例如比特/时间单位,其中时间单位是任何时间单位,例如秒或分钟。比特流可以包括形成图形内容和相关数据的编码表示的比特序列。为了生成比特流,内容编码器108可以被配置为对像素数据执行编码操作,诸如与阴影纹理图集相对应的像素数据。例如,当内容编码器108对作为输入提供到内容编码器108的图像数据(例如,阴影纹理图集的一个或多个块)执行编码操作时,内容编码器108可以生成一连串编码的图像和关联数据。所述关联数据可以包括编码参数的集合,例如量化参数(QP)。
图2A和2B图示了根据本文描述的技术的在源装置102和目的地装置104之间的示例流程图200。在其他示例中,可以将本文描述的一种或多种技术添加到流程图200和/或可以去除流程图中描述的一种或多种技术。
在图2A的示例中,在块202,源装置102的处理单元106可以被配置为确定控制内容编码器108的比特率。例如,处理单元106可以通过被配置为通过根据本文描述的技术生成图形内容来增加或减少内容编码器108的比特率,而被配置为确定控制内容编码器108的比特率。在一些示例中,内容编码器108可以被配置为向处理单元106提供指示比特率的信息。指示比特率的信息可以是指示内容编码器108的当前比特率的信息,例如,内容编码器108当前正在输出的实时比特率。指示比特率的信息可以是指示内容编码器108在一段时间内的比特率的信息,其可以被称为平均比特率。处理单元106可以被配置为接收指示内容编码器108的比特率的信息,并且将该比特率与阈值进行比较。
如果处理单元106确定指示比特率的信息低于阈值,则内容编码器108未被充分利用,导致系统效率低下。响应于该确定,处理单元106可以被配置为根据本文描述的技术来增加内容编码器的比特率。例如,处理单元106可以被配置为调整图形内容的生成和/或向内容编码器108提供一个或多个指令以调整内容编码器108的一个或多个编码参数(例如,量化参数(QP)),以增加内容编码器108的比特率。
如果处理单元106确定指示比特率的信息高于阈值,则内容编码器108被过度利用,导致较低的帧频(例如,如果比特率高,则每秒更少的帧可被递送到目的地装置)。响应于该确定,处理单元106可以被配置为根据在此描述的技术来降低内容编码器的比特率。例如,处理单元106可以被配置为调整图形内容的生成和/或向内容编码器108提供一个或多个指令以调整内容编码器108的一个或多个编码参数(例如,量化参数(QP)),以降低内容编码器108的比特率。
在块204,处理单元106可以被配置为基于控制内容编码器108的比特率的确定,来生成图形内容。在一些示例中,图形内容可以包括阴影纹理图集信息206和位置信息208。阴影纹理图集信息206可以包括一个或多个阴影纹理图集。这样,阴影纹理图集信息206可以包括一个或多个阴影纹理图集的一个或多个块。
在一些示例中,基于控制内容编码器108的比特率的确定,处理单元106可以被配置为向内容编码器108提供一个或多个指令以控制内容编码器108的比特率,如图2A中的块211所示。例如,由处理单元106提供到内容编码器108的一个或多个指令可以控制(例如,修改或调整)内容编码器108的一个或多个编码参数,例如量化参数(QP)。通过调整内容编码器108的QP,在该示例中,处理单元106可以被配置为控制(例如,增加或减少)内容编码器108的比特率。
在块204,处理单元106可被配置为执行图形处理管线107-1以生成阴影纹理图集信息206和位置信息208。根据本文所述的技术,处理单元106可为配置为通过控制如何在空间和/或时间上生成阴影纹理图集信息206,来生成阴影纹理图集信息206。例如,处理单元106可以被配置为通过执行自适应着色帧频处理207和/或通过执行mip-map偏置处理209,来生成阴影纹理图集信息206。自适应着色帧频处理207和mip-map偏置处理209是图形处理管线107-1的一部分。如本文中所描述的,自适应着色帧频控制如何在时间和/或空间上生成阴影纹理图集信息206以控制内容编码器108的比特率,而mip-map偏置控制如何在空间上生成阴影纹理图集信息206以控制内容编码器108的比特率。
在块204,在已经生成图形内容之后,处理单元106可以被配置为将所生成的图形内容存储在存储器中,诸如处理单元6和内容编码器108可访问的图形内容缓冲器。管线107-1可以生成图形内容。例如,图形处理管线107-1可以包括3维(3D)场景的渲染以生成图形内容,以供目的地装置104使用以渲染一个或多个帧用于在显示器上呈现。作为示例,处理单元106可以被配置为渲染包括3D图元网格的3D场景。在一些示例中,图元可以是三角形。在其他示例中,图元可以是不同于三角形的形状。处理单元106可以被配置为从特定的视点确定哪些图元是可见的、不可见的、和/或潜在可见的。在一些示例中,术语“视点”可以指相对于3D场景的虚拟相机位置。3D图元网格中的每个图元对于每个顶点具有3D欧几里得坐标(例如x,y和z坐标)。例如,作为三角形的图元包括三个顶点,每个顶点由3D欧几里得坐标定义(即,第一顶点可具有坐标(x1,y1,z1),第二顶点可具有坐标(x2,y2,z2),第三顶点可具有坐标(x3,y3,z3)。在此示例中,图元相对于特定视点的地点由位置信息定义,该位置信息包括用于图元的每个顶点的坐标信息。
在一些示例中,处理单元106可以被配置为针对将由目的地装置104的处理单元120渲染的每个帧生成位置信息208。源装置102可以被配置为传送位置信息208而不由内容编码器108编码。按照别的方式描述,内容编码器108可以被配置为编码与一个或多个阴影纹理图集对应的一个或多个块。内容编码器108可能不接收用于其编码的位置信息208。
位置信息208可以包括相对于特定视点的3D场景中的每个可见图元和/或潜在可见图元的顶点信息。例如,位置信息208可以包括(1)相对于特定视点的3D网格中的每个可见图元和/或潜在可见图元的每个顶点的3D欧几里得坐标(例如,x,y和z坐标),以及(2)阴影纹理图集中的每个可见图元和/或潜在可见图元的每个顶点的二维(2D)欧几里德坐标(例如x和y坐标)。分别与每个图元相关联的2D坐标标识可以在阴影纹理图集中找到每个图元的阴影纹理中的相应地点。由于阴影纹理图集是2D的,因此定义图元的每个点的2D坐标也标识阴影纹理图集中与图元相对应的区域(即,每个图元的区域都由2D坐标界定)。在一些示例中,阴影纹理图集中的术语地点和区域可以是同义词。
在一些示例中,3D坐标可以是实际坐标。在其他示例中,3D坐标可以是指示先前帧的坐标改变的信息。如果与特定图元相对应的3D坐标和先前帧中与相同图元相对应的3D坐标相同,则位置信息可以不在与3D坐标信息相对应的数据结构的字段中包括任何信息。通过排除冗余信息或仅包括信息中的差异,处理单元106可以被配置为降低源装置102向目的地装置104传送的数据量。类似地,2D坐标可以是实际坐标。在其他示例中,2D坐标可以是指示先前帧的坐标改变的信息。如果与特定图元相对应的2D坐标和先前帧中与相同图元相对应的2D坐标相同,则位置信息可以不在与2D坐标信息相对应的数据结构的字段中包括任何信息。通过排除冗余信息或仅包括信息中的差异,处理单元106可以被配置为降低源装置102向目的地装置104传送的数据量。
位置信息208可以包括图元标识符以唯一地标识每个图元。在其他示例中,位置信息208不包括图元标识符。在这样的示例中,每个图元标识符的3D和/或2D坐标可以唯一地标识每个图元。
位置信息208可以包括帧标识符,该帧标识符使用位置信息来标识要渲染的特定帧。位置信息208可以包括阴影纹理图集标识符,该阴影纹理图集标识符标识与2D坐标相关联的特定阴影纹理图集以用于渲染特定帧。在一些示例中,除非要完全重新使用阴影纹理图集(即,在其他示例中,可以重新使用少于整个阴影纹理图集),否则帧标识符和阴影纹理图集标识符可以具有相同的值。关于少于整个阴影纹理图集的重新使用,这是指对先前生成的阴影纹理图集的一个或多个部分的重新使用,意味着阴影纹理图集可以包括来自先前生成的阴影纹理图集的一个或多个重新使用部分和一个或多个更新部分。在一些示例中,部分可以指代图元、图元块(如本文所述)、图元块内的图元子块(如本文所述)、或阴影纹理图集的区域。在其中阴影纹理图集包括一个或多个重新使用部分和一个或多个更新部分的这样的示例中,这种阴影纹理图集可称为部分更新的阴影纹理图集,因为一个或多个重新使用部分中的着色不被更新(即,一个或多个重新使用部分中的着色不被处理单元106重新生成,而是从先前生成的阴影纹理图集复制或以其他方式重新使用),但是一个或多个更新部分中的着色被更新(即,一个或多个更新部分中的着色由处理单元106生成,并且不从先前生成的阴影纹理图集复制或以其他方式重新使用)。
处理单元106可以被配置为生成多个阴影纹理图集。如本文所述,阴影纹理可以包括或可以不包括一个或多个重新使用部分。在其中阴影纹理不包括任何重新使用部分的示例中,这样的阴影纹理图集可以称为新的阴影纹理图集、重新使用的阴影纹理图集、或完全更新的阴影纹理图集。应当理解,完全更新的阴影纹理图集可以包括与用于先前生成的阴影纹理图集中的相同一个或多个部分的着色相同的、用于一个或多个部分的着色。但是,这种着色的重叠并不意味着可以从先前生成的阴影纹理图集复制或以其他方式重新使用重叠的阴影部分。而是,这样的重叠推断出着色在这些部分中没有改变,但是仍然由处理单元106生成。类似地,应当理解,部分更新的阴影纹理图集可以包括与用于先前生成的阴影纹理图集中的相同一个或多个部分的着色相同的、用于一个或多个更新部分的着色。但是,这种着色的重叠并不意味着可以从先前生成的阴影纹理图集复制或重新使用重叠的阴影部分。而是,这样的重叠推断出更新部分中的着色在这些部分中没有改变,但是仍然由处理单元106生成。就这一点而言,应理解,更新部分并非必须意味着与先前生成的阴影纹理图集中的一部分相比,着色不能相同或者按照别的方式具有一些重叠。相反,更新部分是指这样的部分,处理单元106对于该部分不重新使用或以其他方式复制来自先前生成的阴影纹理图集的着色;而是生成用于更新部分的着色。偶然地,用于更新部分的这种生成可以与先前生成的阴影纹理图集的一部分中的着色相同或相似。
根据本文描述的技术,处理单元106可以被配置为在生成随后阴影纹理图集时重新使用先前生成的阴影纹理图集和/或重新使用先前生成的阴影纹理图集的一个或多个部分。例如,处理单元106可以被配置为重新使用先前生成的阴影纹理图集和/或重新使用先前生成的阴影纹理图集的一个或多个部分,用于渲染多于一个帧,例如第一帧和第二帧。在其中处理单元106完全地重新使用先前生成的阴影纹理图集的示例中,处理单元106,处理单元106可以使用阴影纹理图集标识符,来确定当基于从源装置102接收的位置信息208渲染帧时、要使用哪些阴影纹理图集。因此,位置信息208包括特定于帧的信息(即3D坐标)和特定于阴影纹理图集的信息(即2D坐标)。2D坐标仍然是特定于帧的,因为它们正与要用于特定帧的阴影纹理图集结合使用。在这样的示例中,处理单元106可以被配置为不将重新使用的阴影纹理图集提供到内容编码器108。在其中处理单元106完全重新使用先前生成的阴影纹理图集的另一示例中,处理单元106,处理单元106可以被配置为仍然将重新使用的阴影纹理图集提供到内容编码器108。虽然不向内容编码器108提供完全重新使用的阴影纹理图集,但是随后的时间将提供更大的比特率节省,将完全重新使用的阴影纹理图集提供到内容编码器108仍然带来比特率节省,其仅比通过不将完全重新使用的阴影纹理图集提供到内容编码器108的比特率节省更少。
图4R图示了处理单元106可以被配置为生成的示例阴影纹理图集450。在该示例中,阴影纹理图集450包括16个块,每个块可包括一个或多个子块并且可包括一个或多个图元。图4R还图示了随后阴影纹理图集460的示例。在一些示例中,术语“随后”可以指代紧跟之后,即,在阴影纹理图集450的生成之后由处理单元106生成的下一阴影纹理图集。在其他示例中,术语“随后”可不指代紧随其后,即,处理单元106可被配置为在阴影纹理图集450和阴影纹理图集460的生成之间,生成一个或多个阴影纹理图集。在这两个示例中,阴影纹理图集450可以被称为相对于阴影纹理图集460的先前生成的阴影纹理图集。阴影纹理图集460中的阴影块是重新使用部分的示例,并且阴影纹理图集460中的无阴影块是更新部分的示例。在其他示例中,重新使用部分和更新部分可以不同。
图3A-3D图示了位置信息208的示例。在一些示例中,图3A-3D中的位置信息208的示例表示具有各种字段的数据结构。在图3A的示例中,位置信息208-1是用于渲染第一帧(即,帧1)所要使用的位置信息208的示例。类似地,在图3B的示例中,位置信息208-2是用于渲染第二帧(即,帧2)所要使用的位置信息208的示例;并且在图3C的示例中,位置信息208-3是用于渲染第三帧(即,帧3)所要使用的位置信息208的示例。图3D图示了用于渲染第M帧所要使用的第M个位置信息208-M的示例,其中M是任何整数值。在图3A-3D中所示的每个示例中的位置信息被示为包括以下一项或多项:(1)帧标识符,(2)阴影纹理图集标识符,(3)图元标识符,(4)3D网格中对应于与要渲染的各个帧相关联的特定视点的图元位置信息(即3D欧几里德坐标),或(5)与要渲染的各个帧相关联的阴影纹理图集中的图元位置信息(即2D欧几里德坐标)。
在一些示例中,每个位置信息208-1至208-M可以分别与单个相应的阴影纹理图集相关联。按照别的方式描述,处理单元6可以被配置为对于处理单元120要渲染的每个帧生成阴影纹理图集。在其他示例中,阴影纹理图集可以与对应于处理单元120要渲染的两个或更多帧的位置信息相关联,例如,当处理单元106执行如本文所述的自适应着色帧频时。
如图3A-3D所示,处理单元106可以被配置为对于处理单元120要渲染的每个帧生成3D位置信息,而不管是否对于处理单元120要渲染的每个帧生成阴影纹理图集。例如,处理单元106可以被配置为对于处理单元120要渲染的每个帧生成3D位置信息,其中每个帧与阴影纹理图集(例如,新的阴影纹理图集、部分更新的纹理图集、或完全重新使用的阴影纹理图集)关联。如本文所述,当阴影纹理图集被完全重新使用时,处理单元106可以或可以不将完全重新使用的阴影纹理图集提供到内容编码器108。在图3A中所示的位置信息208-1的示例中,2D坐标对应于与阴影纹理图集标识符1相关联的阴影纹理图集。在图3B中所示的位置信息208-2的示例中,2D坐标对应于与阴影纹理图集标识符2相关联的阴影纹理图集。按照别的方式描述,处理单元6可以被配置为生成处理单元120用于渲染帧1所要使用的第一阴影纹理图集、和处理单元120用于渲染帧2所要使用的第二阴影纹理图集。在图3C中图示的位置信息208-3的示例中,2D坐标对应于与阴影纹理图集标识符2相关联的阴影纹理图集。按照别的方式描述,处理单元6可以被配置为生成处理单元120用于渲染帧2所要使用的第二阴影纹理图集,并命令处理单元120重新使用第二阴影纹理图集用于渲染帧3。在一些示例中,位置信息208-3中的阴影纹理图集标识符2可以是重新使用第二阴影纹理图集用于渲染帧3的指令。在一些示例中,位置信息可能不包括阴影纹理图集标识符,例如在其中处理单元6向内容编码器108提供完全重新使用的阴影纹理图集的示例中。
如上所述,与要渲染的当前帧相对应的位置信息可以仅包括指示相对于与要渲染的先前帧相对应的位置信息的变化的信息。例如,处理单元106可以被配置为生成位置信息208-1,并且随后生成位置信息208-2。然而,位置信息208-2可以仅包括相对于位置信息208-1的位置信息的任何改变(例如,任何添加和/或去除)。例如,如果要渲染的第一帧的图元1的第一顶点的3D坐标是(x1,y1,z1),而要渲染的第二帧的图元1的第一顶点的3D坐标是(x2,y2,z2),则要渲染的第二帧的位置信息可以是(x2-x1,y2-y1,z2-z1)。
如在此使用的,输入到内容编码器108的帧与处理单元120要渲染的帧是可区分的。输入到内容编码器108的帧可以被称为输入帧。例如,图形处理管线107-2可以使用由图形处理管线107-1生成的图形内容,来生成渲染的帧。输入到内容编码器108的帧(即,输入帧)可以包括单个阴影纹理图集或阴影纹理图集的一部分。阴影纹理图集的一部分可以包括纹理图集的一个或多个块。在一些示例中,输入到内容编码器108的帧(即,输入帧)可以包括两个或更多阴影纹理图集。在其他示例中,输入到内容编码器108的帧(即,输入帧)可以包括来自两个或更多个阴影纹理图集的一个或多个块。
在一些示例中,处理单元106可以被配置为向内容编码器108提供指示一个或多个阴影纹理图集的信息。指示阴影纹理图集的信息可以包括标识阴影纹理图集中包括的块的数目、阴影纹理图集中包括的每个块的大小、以及阴影纹理图集的每个相应块中包括的子块的数目的信息。基于指示一个或多个阴影纹理图集的信息,内容编码器108可以被配置为从在处理单元106和内容编码器108两者均可访问的图形内容缓冲器中存储的一个或多个阴影纹理图集读取一个或多个块。从图形内容缓冲器读取的一个或多个块可以构成输入到内容编码器108的帧。例如,内容编码器108可以被配置为生成内容编码器108根据内容编码标准所要编码的输入帧(取决于示例,其包括来自一个或多个阴影纹理图集的一个或多个块)。
在其他示例中,处理单元106可以被配置为生成输入帧。例如,处理单元106可以被配置为基于指示一个或多个阴影纹理图集的信息,来生成输入帧。指示阴影纹理图集的信息可以包括标识阴影纹理图集中包括的块的数目、阴影纹理图集中包括的每个块的大小、以及阴影纹理图集的每个相应块中包括的子块的数目的信息。基于指示一个或多个纹理阴影图集的信息,处理单元106可以被配置为生成包括来自一个或多个阴影纹理图集的一个或多个块的输入帧。处理单元106可以被配置为将所生成的输入帧存储到处理单元106和内容编码器108两者都可访问的输入帧缓冲器中。内容编码器108可以被配置为从输入帧缓冲器读取输入帧,并且随后根据内容编码标准对输入帧进行编码。
参考阴影纹理图集信息206,阴影纹理图集信息206可以包括一个或多个阴影纹理图集的一个或多个块。在其他示例中,阴影纹理图集信息206可以包括一个或多个阴影纹理图集。在一些示例中,跨多个阴影纹理图集的每个图元的地点是相同的。图4A图示了处理单元106可以被配置为生成的示例阴影纹理图集400。阴影纹理图集包括多个块,如块1-16所示。在图4A的示例中,块1-16的每个块被示出为具有相同的大小。然而,在其他示例中,块1-16的大小可以变化。阴影纹理图集400的每个块包括一个或多个子块。在具有单个子块的块的示例中,块和子块是同一个。每个子块可包括一个或多个阴影图元。在一些示例中,每个子块可以包括至少两个阴影图元,例如当图元是三角形时。块可以具有不同的细节级别(LOD),其也可以被描述为不同的分辨率级别。
图4B和4C分别图示了来自具有不同LOD的阴影纹理图集400的示例块4和6。图4B和4C中带有子块的边界线的虚线表示示例图元。例如,图4B和4C中图示了阴影三角形的各种图案;但是,应该理解,这些仅仅是阴影图元的示例,并且可以使用任何布局中的阴影图元生成阴影纹理图集。在图4B和4C的示例中,块4和6具有相同的尺寸(即,x乘y个像素),这意味着在所示示例中,块4的子块的分辨率是块6中的子块的四倍。但是,块4比块6具有更高LOD,这是因为块4比块6具有更少子块。按照别的方式描述,由于块4和6具有相同大小,因此块4中的每个子块比块6中的子块具有更多像素来表示图元。由于更少的像素可用于表示块6的每个子块中的图元,因此图元具有更少细节;因此,可以认为其具有更低LOD。在子块级别,具有较低的LOD也可以被称为具有较低的分辨率,而具有较高的LOD也可以被称为具有较高的分辨率。参考图4B和4C的示例,块6中每个子块的分辨率是块4中每个子块的四分之一分辨率。相同大小的子块具有相同的LOD(即,相同的分辨率)。较大的子块比较小的子块具有更高的LOD,因为较大的子块具有更多像素;并因此,可以利用更多细节来表示图元。
参考自适应着色帧频处理207,处理单元106可以被配置为控制时域中的图元的着色,这导致控制内容编码器108的比特率。按照别的方式描述,处理单元106可以被配置为控制对于目的地装置104要渲染的多个帧生成阴影纹理图集的速率。例如,处理单元106可以被配置为避免生成用于特定帧的阴影纹理图集。代替生成用于特定帧的阴影纹理图集,处理单元106可以被配置为向目的地装置104提供关于哪个阴影纹理图集将被重新使用用于渲染特定帧的信息。通过不生成用于特定帧的阴影纹理图集,降低了内容编码器108的比特率,因为内容编码器108具有较少的要编码的内容(即,没有对于特定帧要重新使用的阴影纹理图集被编码第二次)。提供到目的地装置104的关于哪个阴影纹理图集将被重新使用用于特定帧的信息可以包括位置信息208中的信息。例如,如果特定帧是在针对图3A-D参考的示例帧中的第3帧,则阴影纹理图集标识符“2”可以构成向目的地装置104提供的关于哪个阴影纹理图集将被重新使用用于特定帧(即,该特定示例中的第3帧)的信息。在该示例中,阴影纹理图集标识符“2”向目的地装置104(即,目的地装置104的处理单元120)指示已接收并用于渲染与位置信息208-2相关联的第2帧的阴影纹理图集将被重新使用用于渲染第3帧。
因此,当由处理单元106执行自适应着色帧频处理207时,由处理单元106生成的至少一个阴影纹理图集可以对应于多于一帧。例如,用于渲染第一帧所生成的并且用于渲染第二帧所重新使用的阴影纹理图集可以被描述为对应于两个帧:第一帧和第二帧。作为另一示例,处理单元106可以被配置为生成阴影纹理图集,以供目的地装置104渲染至少两个帧。为了增加内容编码器108的比特率,处理单元106可以被配置为避免执行自适应着色帧频处理207。在该示例中,处理单元106可以被描述为确定阴影纹理图集没有被重新使用,使得增加内容编码器108的比特率(例如,当从使用自适应着色帧频过渡到不使用自适应着色帧频时)或保持不变(例如,当在确定时当前正在实现自适应着色帧频时)。然而,为了降低内容编码器108的比特率,处理单元106可以被配置为执行自适应着色帧频处理207。例如,处理单元106可以被配置为通过确定降低内容编码器108的比特率,来确定控制内容编码器108的比特率。在该示例中,处理单元106可以被描述为确定要重新使用阴影纹理图集,从而降低内容编码器108的比特率。
阴影纹理图集或阴影纹理图集的一部分可以被重新使用一次或多次。例如,阴影纹理图集或阴影纹理图集的一部分可以重新使用N次,其中N是任何整数值。作为另一示例,可以每M帧更新着色(即,每M帧生成阴影纹理图集),其中M是任何整数值。但是,随着N或M的增加,着色误差也可能增加。由于作为重新使用阴影纹理图集而未渲染的小着色改变的累积,着色误差可以称为着色漂移。场景中的运动量、场景中这种运动的速度、以及场景中的照明变化量可影响是否可以感知到阴影漂移。该信息可以被称为照明和运动信息。处理单元106可以被配置为确定照明和运动信息;并且,基于该信息,确定是对于特定帧生成阴影纹理图集还是对于特定帧重新使用先前生成的阴影纹理图集。按照别的方式描述,处理单元106可以被配置为确定场景中的运动量、场景中的这种运动的速度、和/或场景中的照明变化量。
在一些示例中,处理单元106可以被配置为通过取得与对应于要渲染的第一帧的一个或多个图元相关联的一个或多个顶点、和与对应于要渲染的第二帧的相同一个或多个图元的关联的一个或多个顶点之间的差,来确定运动信息。处理单元106可以使用该运动信息作为度量,来确定是否应用自适应着色帧频。例如,如果运动信息度量高于移动阈值(例如,指示高移动量),则处理单元106可以被配置为不应用自适应着色帧频。作为另一示例,如果运动信息度量低于移动阈值(例如,指示低移动量),则处理单元106可以被配置为应用自适应着色帧频。类似地,处理单元106可以被配置为通过取得与要渲染的第一帧相关联的照明和与要渲染的第二帧相关联的照明之间的差,来确定照明信息。处理单元106可以使用该照明信息作为度量来确定是否应用自适应着色帧频。例如,如果照明信息度量高于照明变化阈值(例如,指示照明变化大),则处理单元106可以被配置为不应用自适应着色帧频。作为另一示例,如果照明改变信息度量低于移动阈值(例如,指示照明变化小),则处理单元106可以被配置为应用自适应着色帧频。
因此,在一些示例中,处理单元106可以通过被配置为目的地装置104为了对处理单元106原始生成阴影纹理图集的原始帧不同的一个或多个帧进行渲染、已经重新使用或使用阴影纹理图集或阴影纹理图集的一部分的次数,而被配置为确定是否执行自适应着色帧频(即,是否重新使用阴影纹理图集和/或是否重新使用阴影纹理图集的一个或多个部分)。阴影纹理图集已被重新使用或使用的次数可以使用计数器跟踪。图2C图示了其中使用重新使用计数器的示例。可以理解,阴影纹理图集或阴影纹理图集的一部分已被使用的次数包括与为其生成阴影纹理图集的帧相关联的原始用途,并且阴影纹理图集或者阴影纹理图集的一部分已被重新使用的次数排除了与为其生成阴影纹理图集的帧相关联的原始用途。
在一些示例中,处理单元106可以被配置为仅当阴影纹理图集或阴影纹理图集的一部分已被重新使用的次数小于阈值时,才确定目的地装置104要重新使用阴影纹理图集或阴影纹理图集的一部分用于渲染特定帧。在其他示例中,取决于示例,处理单元106可以被配置为仅当阴影纹理图集或阴影纹理图集的一部分已被重新使用的次数小于阈值时,才确定目的地装置104要重新使用阴影纹理图集或阴影纹理图集的一部分用于渲染特定帧,该阈值可称为使用或重新使用阈值。这些示例中的阈值可以是M,其中M是任何整数值。但是,随着M的增加,着色误差也可能增加。因此,处理单元106可以被配置为使用阈值来控制着色误差,该着色误差用作对最终将由处理单元120渲染并向用户显示的内容的一类质量控制。例如,M的低值可以导致由内容编码器108产生的较高比特率,而M的高值可以导致由内容编码器108产生的较低比特率,但是在为其生成正被重新使用的阴影纹理图集或阴影纹理图集的一部分的原始帧之后的每一帧中具有更大的着色误差。
在一些示例中,处理单元106可以被配置为通过避免对于将由目的地装置104渲染的一个或多个帧生成阴影纹理图集,来执行自适应着色帧频处理207。例如,处理单元106可以被配置为针对将由目的地装置104渲染的每个帧生成位置信息208(即,处理单元106可以被配置为针对每个帧生成特定于帧的位置信息),但是可以不针对要渲染的每一帧生成阴影纹理图集(即,处理单元106可以被配置为避免对于每个帧生成特定于帧的阴影纹理图集)。在一些示例中,处理单元106可以被配置为避免根据图案来生成阴影纹理图集,诸如仅针对每隔一帧生成阴影纹理图集。在此示例中,可以对于一帧重新使用阴影纹理图集,这意味着每个阴影纹理图集可以使用两次:一次用于为其原始生成阴影纹理图集的帧,一次用于为其原始生成阴影纹理图集的帧之后的帧。在另一示例中,图案可以是针对每第M帧生成阴影纹理图集,其中M是任何整数值。作为一个示例,在M为3的情况下,可以对于两帧重新使用阴影纹理图集,这意味着每个阴影纹理图集可以使用三次:一次用于为其原始生成阴影纹理图集的帧,两次(对于为其原始生成阴影纹理图集的帧之后的两帧中的每一帧各一次)。
参照mip-map偏置处理209,处理单元106可被配置为控制空间域中图元的着色,这导致控制内容编码器108的比特率。例如,处理单元106可以被配置为使用比其他情况下更低的分辨率/更低的LOD,对阴影纹理图集的块中的较不重要的三角形(例如,更平坦的三角形)进行着色。这降低了内容编码器108的比特率。作为另一示例,处理单元106可以被配置为使用比其他情况下更高的分辨率/更高的LOD来对阴影纹理图集的块中的较重要的三角形(例如,复数三角形)进行着色。这增加了内容编码器108需要花费在这样的三角形上的比特率。在这样的示例中,处理单元106被配置为基于图元平坦度(在其中图元是三角形的示例中,其可以称为三角形平坦度)来控制阴影纹理图集中的图元的着色。在一些示例中,图元的图元平坦度可以指代图元是否位于3-D网格的相对平坦的区域中。处理单元106可以被配置为通过测量法线方向上的变化,来确定图元平坦度。如果法线方向变化不大,则图元是平坦的。按照别的方式描述,处理单元106可以被配置为通过测量跨越图元表面的法线的变化幅度,来确定图元平坦度。
处理单元106可以使用图元平坦度信息作为度量,来确定是否应用mip-map偏置。可以对于阴影纹理图集的块中要着色的每个图元确定图元平坦度。处理单元106可以被配置为通过将与块的每个图元相关联的图元平坦度相加,并且将该总和除以该块中图元的总数,来确定块的平均平坦度。块的平均平坦度也可以称为块的平坦度。如果块的平坦度高于平坦度阈值(例如,指示该块包括平均而言不平坦的图元),则处理单元106可以被配置为不应用mip-map偏置。作为另一示例,如果块的平坦度低于平坦度阈值(例如,指示该块包括平均而言平坦的图元),则处理单元106可以被配置为施加mip-map偏置。
在一些示例中,处理单元106可以被配置为基于注视点渲染(foveatedrendering)而应用或不应有mip-map偏置。如本文所述,应用mip-map偏置可增加或减小图元的分辨率。例如,处理单元106可以被配置为进行mip-map偏置,以降低场景外围的图元的LOD/分辨率。作为另一示例,处理单元106可以被配置为进行mip-map偏置,以增加在被确定为焦点的场景的地点中的图元的LOD/分辨率。
作为参考图4A-C的mip-map偏置的示例,处理单元106可被配置为通过确定降低了内容编码器108的比特率,来控制内容编码器108的比特率。在该示例中,处理单元106可以被描述为确定降低阴影纹理图集中的一个或多个图元的LOD/分辨率。作为示例,代替对图4B的块4中所示的图元进行着色,处理单元106可以被配置为将LOD/分辨率降低到例如图4C所示的分辨率。在一些示例中,执行mip-map偏置以减小LOD/分辨率可以包括增加块中包括的子块的数目,同时保持块的大小。关于图4A的示例中的块4,如果使用mip-map偏置以将LOD从LOD 1降低到LOD 2,则块4可以包括12个附加子块。因此,处理单元106可以被配置为将来自多个块的子块组合为单个子块。例如,处理单元106可以被配置为确定可以使用较低的LOD来编码与多个块相对应的图元,以降低内容编码器108的比特率。处理单元106可以调整阴影纹理图集的生成,使得与具有要使用较低LOD/分辨率进行着色的图元的每个块相对应的子块是单个块的一部分。图4D-J描绘了这样的示例。
图4D图示了根据本文描述的技术的如果处理单元106不执行mip-map偏置将生成的示例阴影纹理图集402。然而,在该示例中,处理单元106已经确定控制内容编码器108的比特率(在该示例中,降低比特率)。在生成阴影纹理图集402之前,处理单元106已经确定,将使用第二分辨率代替第一分辨率对块13-16中的图元进行着色。在此,第二分辨率小于第一分辨率。图4E-H分别图示了来自具有相同LOD 1的阴影纹理图集402的示例块13-16。在其他示例中,块13-16可以具有不同的LOD,但是仍然可以如本文所述使用mip-map偏置进行组合。图4E-H中带有子块的边界线的虚线表示示例图元。
使用mip-map偏置处理209,处理单元106可被配置为使用第二分辨率代替第一分辨率来对块13-16的图元进行着色。在该示例中,由于第二分辨率小于第一分辨率,所以处理单元106被配置为将块13-16的子块组合为单个块(即,图4J所示的块13')。在第二分辨率大于第一分辨率的示例中,处理单元106可以被配置为生成具有更多块(而不是更少块)的更大的阴影纹理图集。图4I示出了在mip-map偏置的阴影纹理图集402'的块13'中的、块13-16的每个子块。如图所示,mip-map偏置的阴影纹理图集402'比已经生成的阴影纹理图集402具有更少像素。在具有更少像素的情况下,与已经生成的阴影纹理图集402相比,当对mip-map偏置的阴影纹理图集402′进行编码时,将降低内容编码器108的比特率。
在一些示例中,执行mip-map偏置以增加LOD/分辨率可以包括减少块中包括的子块的数目,同时保持块的大小。关于图4A的示例中的块6,如果使用mip-map偏置将LOD从LOD2增加到LOD 1,则块6可以仅包括4个子块。因此,处理单元106可以被配置为生成具有附加块的阴影纹理图集,以包括块6的其他12个子块的图元。例如,处理单元106可以被配置为确定可以使用较高的LOD来编码对应于多个块的图元,以增加内容编码器108的比特率。处理单元106可以调整阴影纹理图集的生成,以便将与块6对应的子块拆分为具有较高LOD/分辨率的多个块。图4K-Q描绘了这样的示例。
图4K图示了根据本文描述的技术的如果处理单元106不执行mip-map偏置将生成的示例阴影纹理图集404。然而,在该示例中,处理单元106已经确定控制内容编码器108的比特率(在该示例中,增加比特率)。在生成阴影纹理图集404之前,处理单元106已经确定,将使用第二分辨率代替第一分辨率对块16中的图元进行着色。在此,第二分辨率大于第一分辨率。图4L图示了来自阴影纹理图集404的示例块16,因为如果处理单元106不执行mip-map偏置,将生成块16。图4L中带有子块的边界线的虚线表示示例图元。
使用mip-map偏置处理209,处理单元106可被配置为使用第二分辨率代替第一分辨率来对块16的图元进行着色。在该示例中,因为第二分辨率大于第一分辨率,所以处理单元106被配置为将块16的子块拆分或以其他方式划分为多个块(即,图4M中所示的块16'、17、18和19)。图4N-Q分别示出了mip-map偏置的阴影纹理图集404'的块16'、17、18和19的子块。如图所示,mip-map偏置的阴影纹理图集404'比已经生成的阴影纹理图集404具有更多像素。在具有更多像素的情况下,与已经生成的阴影纹理图集404相比,当对mip-map偏置的阴影纹理图集404′进行编码时,将增加内容编码器108的比特率。
如本文所述,为了控制内容编码器108的比特率,处理单元106可以被配置为(1)执行自适应着色帧频,(2)执行mip-map偏置,和/或(3)向内容编码器108提供一个或多个指令以设置一个或多个编码参数。图2C图示了组合这些各种技术的一种技术的示例,如流程图201所示。例如,图2C提供了处理单元106可以如何被配置为执行与图2A中的块204和211相关联的处理的一个示例。例如,块232、234和236可以与块207相关联,块240、242和244可以与块209相关联,并且块246可以与块211相关联。然而,也可以按照其他方式组合各种技术。
在图2C的示例中,在块230处,处理单元106可以被配置为确定针对当前帧使用哪种速率控制技术。在此上下文中,帧是指要由目的地装置104渲染的帧,但是要由目的地装置104渲染的帧的图形内容是由源装置102的处理单元106生成的。
在块232处,处理单元106可以被配置为确定是否启用自适应着色。在一些示例中,自适应着色帧频可以具有可以是第一值或第二值的对应标志(其可以被称为自适应着色帧频标志)。第一值可以指示自适应着色帧频被启用,并且第二值可以指示自适应着色帧频被禁用。自适应着色帧频标志的值可以取决于可用的比特率预算和/或与当前帧相关联的场景的内容。在一些示例中,可用比特率预算可以指的是内容编码器108可实现的最大比特率减去内容编码器108的当前比特率。在其他示例中,可用比特率预算可以指的是编码标准允许的最大比特率减去内容编码器108的当前比特率。处理单元106可以基于可用比特率预算来设置标志。例如,如果可用比特率预算低于阈值,则这意味着可以使用自适应着色帧频来减少内容编码器108的比特率。
如果处理单元106确定针对当前帧启用自适应着色帧频,则在块234处,处理单元106可以被配置为确定是否对当前帧使用自适应着色帧频。例如,处理单元106可以被配置为基于与当前帧相对应的照明和运动信息、以及指示处理单元106先前生成的阴影纹理图集或阴影纹理图集的一部分已被重新使用多少次的重新使用计数器,来确定是否对当前帧使用自适应着色帧频。如果该信息指示着色漂移量(也可以称为着色误差)是可接受的,则处理单元106可以被配置为转到对当前帧使用自适应着色帧频,并进行到块236。在块236处,处理单元106可以被配置为针对当前帧重新使用先前生成的阴影纹理图集或重新使用先前生成的阴影纹理图集的一部分,并增加重新使用计数器。在块236之后,处理单元106可以进行到块238,其中处理单元106可以被配置为重复在图2C的示例中对于随后帧阐述的处理。在一些示例中,阴影纹理图集的每个部分可以具有与其相关联的相应的重新使用计数器。
如果与当前帧相对应的照明和运动信息与重新使用计数器指示阴影漂移量是不可接受的,则处理单元106可以被配置为通过不为当前帧重新使用阴影纹理图集或不为当前帧重新使用阴影纹理图集的一部分来进行,并进行到块240。按照别的方式描述,处理单元106可以被配置为根据本文所述的技术为当前帧生成阴影纹理图集。类似地,如果处理单元106在块232处确定禁用自适应着色帧频,则处理单元106可以进行至块240,以开始根据本文所述的技术生成阴影纹理图集的处理。
在块240处,处理单元106可以被配置为确定是否启用mip-map偏置。在一些示例中,mip-map偏置可以具有对应的标志(可以称为mip-map偏置标志),其可以是第一值或第二值。第一值可以指示启用mip-map偏置,而第二值可以指示禁用mip-map偏置。mip-map偏置标志的值可以取决于可用比特率预算和/或与当前帧关联的场景的内容。处理单元106可以基于可用比特率预算来设置标志。例如,如果可用比特率预算低于阈值,则这意味着可以使用mip-map偏置来减少内容编码器108的比特率。
如果处理单元106确定针对当前帧启用mip-map偏置,则在块242,处理单元106可被配置为确定是否对当前帧使用mip-map偏置。处理单元106可以被配置为以要生成的阴影纹理图集的每个块为基础,基于与当前帧相对应的图元平坦度信息,确定是否对当前帧使用mip-map偏置。例如,处理单元106可以被配置为通过将与每个块中的每个图元相关联的图元平坦度相加并将总和除以块中的图元总数,来确定要为当前帧生成的阴影纹理图集中的每个块的平均平坦度。如果要为当前帧生成的阴影纹理图集的所有块的平坦度都高于平坦度阈值(意味着所有块均包括例如平均而言不平坦的图元),则处理单元106可以被配置为不应用mip-map偏置并前进到块246。但是,如果要生成的阴影纹理图集的至少一个块的平坦度低于该平坦度阈值(意味着该至少一个块包括例如平均而言平坦的图元),则处理单元106可以被配置为应用mip-map偏置并且前进至块244,以减小用于生成确定为平坦的至少一个块的分辨率。在其他示例中,处理单元106可以被配置为例如当可用比特率预算允许时,通过增加分辨率,对不平坦的块使用mip-map偏置。
在块244之后,处理单元106可以进行到块246。在块246,处理单元106可以被配置为向内容编码器108提供一个或多个指令,并且将重新使用计数器设置为零(或者取决于示例,将一个或多个重新使用计数器设置为零)。在一些示例中,来自处理单元106的一个或多个指令可以修改或调整内容编码器108的一个或多个编码参数,例如量化参数(QP)。可以基于阴影纹理图集中的像素总数和可用比特率预算来调整QP。在块246之后,处理单元106可以进行到块238,其中处理单元106可以被配置为重复图2C的示例中对于随后帧阐述的处理。
再次参考图2A,在块210处,内容编码器108可以被配置为对在块204处由处理单元106生成的图形内容进行编码。在一些示例中,内容编码器108被配置为编码的、由处理单元106生成的图形内容包括:阴影纹理图集信息206。内容编码器108可以被配置为基于从处理单元106接收的一个或多个指令来对图形内容(例如阴影纹理图集信息206)进行编码。例如,内容编码器108可以接收来自处理单元106的一个或多个指令,其修改或调整内容编码器108的一个或多个编码参数,例如量化参数(QP)。
根据本文描述的技术,内容编码器108可以被配置为对阴影纹理图集信息206进行编码,以生成编码的阴影纹理图集信息212。在一些示例中,内容编码器108可以被配置为根据诸如视频编码标准的内容编码标准对阴影纹理图集信息进行编码。内容编码器108可以被配置为将阴影纹理图集信息206编码为K个帧,其中K是整数值。输入到内容编码器108的帧可以被称为输入帧。在内容编码器108是视频编码器的示例中,K个帧(可以称为输入帧)可以是K个视频帧(可以称为K个视频输入帧)。例如,内容编码器108可以被配置为将阴影纹理图集信息206编码为K个视频帧。
一个或多个编码帧可以表示单个编码阴影纹理图集。在一些示例中,阴影纹理图集的每个块可以被编码为相应的帧。在其他示例中,可以将阴影纹理图集的N个块编码为帧(即,N个块构成由内容编码器108编码的帧),其中N是任何整数值。在其他示例中,来自一个或多个阴影纹理图集的一个或多个块可以被编码为帧。
不管帧包括来自单个阴影纹理图集的单个块还是来自一个或多个阴影纹理图集的多个块,内容编码器108可以被配置为将帧编码为独立帧或从属帧。独立帧独立于任何其他帧而被编码,并且可以被称为帧内编码帧。从属帧基于至少一个其他帧而被编码,并且可以称为帧间编码帧。例如,从属帧可以是预测帧(P帧)或双向预测帧(B帧)。
在一些示例中,将块或帧编码为帧内编码帧或帧间编码帧之间的判断可以基于一个或多个因素。所述一个或多个因素可以包括内容编码器108的比特率预算和网络分组丢失。例如,内容编码器108可以被配置为在分组丢失的情况下周期性地插入帧间编码的帧以停止错误传播。在这样的示例中,处理单元106可以被配置为响应于在对应的先前块或先前帧中检测到的分组丢失,而自适应地强制内容编码器108将下一块或帧编码为帧内编码帧。
内容编码器108可以被配置为根据在此描述的技术,以由处理单元106(可以是GPU)控制的比特率来输出比特流。比特流表示编码的阴影纹理图集信息212。在块214,目的地装置104可以被配置为将位置信息和编码的阴影纹理图集信息传送到目的地装置104。例如,目的地装置104可以被配置为将位置信息208和编码的阴影纹理图集信息212传送到目的地装置104。在块216,目的地装置104可以接收这样的信息。在块218,内容解码器122可以被配置为对编码的阴影纹理图集信息(例如,编码的阴影纹理图集信息212)进行解码,以生成解码的阴影纹理图集信息。与从其生成编码的阴影纹理图集信息的阴影纹理图集信息相比,解码的阴影纹理图集信息可以具有或没有损失。
在块220处,处理单元120可以被配置为基于目的地装置104从源装置102接收的位置信息和由内容解码器122生成的经解码的阴影纹理图集信息,来渲染一个或多个帧,如本文所述。处理单元120可以被配置为执行图形处理管线107-2,以使用从源装置102接收的图形内容(例如,位置信息和编码的阴影纹理图集信息)来生成用于显示的一个或多个帧。
例如,解码的阴影纹理图集信息可以包括阴影纹理图集。处理单元120可以基于从目的地装置104接收的第一位置信息,使用通过对编码信息进行解码而导出的阴影纹理图集来渲染第一帧。处理单元120可以基于从目的地装置104接收的第二位置信息,使用相同的阴影纹理图集来渲染第二帧。这是其中未生成用于第二帧的阴影纹理图集的示例。取而代之的是,与第一帧关联的阴影纹理图集被重新使用以渲染第二帧。
在块222处,目的地装置104可被配置为在由显示处理器(例如显示处理器127)处理或不处理的情况下,在显示器131上呈现由处理单元120渲染的一个或多个帧。例如,根据本文描述的技术,目的地装置104的处理单元120可以被配置为使用由处理单元106生成的图形内容来渲染一个或多个帧,该帧可以被输出到可以位于系统存储器124中的帧缓冲器。显示处理器127可以被配置为从帧缓冲器读取帧,对帧执行显示处理,并且将处理后的帧提供到显示器131用于在其上呈现。
图5图示了根据本公开的一种或多种技术的内容生成和编码的方法的示例流程图500。该方法可以由第一设备的一个或多个组件执行。第一设备可以是源装置102。在一些示例中,流程图500中图示的方法可以包括图5中未图示的本文描述的一个或多个功能,和/或可以排除一个或多个图示的功能。
在块502,第一设备的第一处理单元可以被配置为确定控制第一设备的内容编码器的比特率。在块504,第一设备的第一处理单元可以被配置为基于控制内容编码器的比特率的确定,生成用于由第二设备渲染第二数目的帧的第一数目的阴影纹理图集。第二设备可以是目的地装置104。每个相应的阴影纹理图集可以包括相应的多个阴影图元。在一些示例中,所述第一数目小于所述第二数目。在一些示例中,第一数目的阴影纹理图集中的至少一个阴影纹理图集对应于第二数目的帧中的多于一个帧。所述至少一个阴影纹理图集可以包括第一阴影纹理图集。在一些示例中,为了生成用于由第二装置渲染第二数目的帧的第一数目的阴影纹理图集,所述第一处理单元可被配置为生成用于由第二装置渲染第二数目的帧中的至少两个帧的第一阴影纹理图集。
在一些示例中,为了生成第一数目的阴影纹理图集以供第二装置渲染第二数目的帧,第一处理单元可以被配置为生成第一阴影纹理图集以供渲染第一数目的帧中的第一帧。在一些示例中,为了确定控制内容编码器的比特率,第一处理单元可以配置为确定第一阴影纹理图集将由第二装置重新使用以渲染第一数目的帧中的第二帧,或第一阴影纹理图集不被第二装置重新使用以渲染第一数目的帧中的第二帧。在这样的示例中,第一处理单元可以被配置为基于确定第一阴影纹理图集将由第二装置重新使用以渲染第二帧,而避免生成第二阴影纹理图集以供第二装置渲染第二帧。在这样的示例中,第一处理单元可以被配置为基于确定第一阴影纹理图集将不被第二装置重新使用以渲染第一数目的帧中的第二帧,而生成第二阴影纹理图集以供第二装置渲染第二帧。
在一些示例中,为了确定第一阴影纹理图集将由第二装置重新使用以渲染第一数目的帧中的第二帧,第一处理单元可以被配置为确定第一阴影纹理图集已被第二装置重新使用以渲染与第二帧不同的一个或多个帧的次数。与第二帧不同的一个或多个帧可以包括第一帧。第一处理单元可以被配置为仅当第一阴影纹理图集已被第二装置重新使用以渲染一个或多个帧的次数小于阈值时,才确定第二装置要重新使用第一阴影纹理图集以渲染第一数目的帧中的第二帧。
在一些示例中,为了确定控制内容编码器的比特率,第一处理单元可以被配置为执行以下至少一项:确定执行自适应着色帧频以控制内容编码器的比特率,在生成第一数目的阴影纹理图集的地方,第一处理单元可以被配置为通过基于执行自适应着色帧频的确定执行自适应着色帧频,来生成至少一个阴影纹理图集;或确定执行mip-map偏置以控制内容编码器的比特率,在其中生成第一数目的阴影纹理图集的地方,第一处理单元可以配置为通过基于执行mip-map偏置的确定执行mip-map偏置,来生成至少一个阴影纹理图集。
在一些示例中,为了生成第一数目的阴影纹理图集以用于渲染第二数目的帧,第一处理单元可以被配置为生成第一阴影纹理图集。第一阴影纹理图集可以包括多个块。每个块可以包括多个图元。所述多个块可以包括第一块。为了生成第一阴影纹理图集,第一处理单元可以被配置为:将用于表示第一块中的图元的第一数目的像素减少为第二数目的像素,并使用第二数目的像素代替第一数目的像素,来生成具有图元的第一块。第二数目的像素可以小于第一数目的像素。在一些示例中,所述第一数目的像素对应于第一分辨率,而所述第二数目的像素对应于第二分辨率。所述第二分辨率可以小于所述第一分辨率。在一些实例中,所述第一块包括多个子块。每个子块包括在所述第一块中包括的所述多个图元的相应子集。
在一些示例中,第一处理单元可以被配置为向内容编码器提供一个或多个指令,以调整内容编码器的一个或多个编码参数。在这样的示例中,为了编码所述第一数目的阴影纹理图集中的所述第一阴影纹理图集,所述内容编码器可以被配置为基于从所述第一装置的处理单元接收的一个或多个指令,来编码所述第一数目的阴影纹理图集中的所述第一阴影纹理图集
在块506,第一设备的内容编码器可以被配置为编码第一数目的阴影纹理图集中的第一阴影纹理图集。在块508,第一装置可以被配置为将编码的第一阴影纹理图集传送到第二设备。
根据本公开,在上下文没有另外规定的情况下,术语“或”可以被解释为“和/或”。另外,尽管诸如“一个或多个”或“至少一个”之类的短语可能已经用于本文所公开的一些特征但没有用于其他特征;但是如果上下文没有另外规定,扔可以将未使用该语言的特征解释为具有这样的含义。
在一个或多个示例中,本文描述的功能可以以硬件、软件、固件或其任何组合来实现。例如,尽管在整个本公开中已经使用了术语“处理单元”,但是应当理解,可以以硬件、软件、固件或其任何组合来实现这种处理单元。如果以软件实现本文描述的任何功能、处理单元、技术、或其他模块,则本文描述的功能、处理单元、技术、或其他模块可以作为一个或多个指令或代码存储在计算机可读介质上或通过其传输。计算机可读介质可以包括计算机数据储存介质或通信介质,该通信介质包括有助于将计算机程序从一个地方转移到另一地方的任何媒介。以这种方式,计算机可读介质通常可以对应于(1)非瞬态的有形计算机可读储存介质,或者(2)诸如信号或载波的通信介质。数据储存介质可以是可以由一台或多台计算机或一个或多个处理器访问以检索指令、代码和/或数据结构用于实现本公开中描述的技术的任何可用介质。作为示例而非限制,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM、或其他光盘储存器、磁盘储存器、或其他磁储存装置。本文所使用的磁盘和光盘包括致密盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘则通过激光以光学方式再现数据。上述的组合也应包括在计算机可读介质的范围内。计算机程序产品可以包括计算机可读介质。
该代码可以由一个或多个处理器执行,例如一个或多个数字信号处理器(DSP)、通用目的微处理器、特定用途集成电路(ASIC)、算术逻辑单元(ALU)、现场可编程逻辑阵列(FPGA)、或其他等效的集成或离散逻辑电路。因此,如本文所使用的,术语“处理器”可以指任何前述结构或适合于实现本文描述的技术的任何其他结构。同样,该技术可以在一个或多个电路或逻辑元件中完全实现。
本公开的技术可以在包括无线手持机、集成电路(IC)或一组IC(例如,芯片组)的多种装置或设备中实现。在本公开中描述各种组件、模块或单元,以强调被配置为执行所公开技术的装置的功能方面,但不一定需要由不同硬件单元来实现。而是,如上所述,各种单元可以组合在任何硬件单元中,或者由互操作的硬件单元的集合来提供,包括与合适的软件和/或固件结合的如上所述的一个或多个处理器。
已经描述了各种示例。这些和其他示例在所附权利要求的范围内。

Claims (20)

1.一种图形处理方法,包括:
由第一装置的处理单元确定控制所述第一装置的内容编码器的比特率;
由第一装置的处理单元基于控制内容编码器的比特率的确定,生成用于由第二装置渲染第二数目的帧的第一数目的阴影纹理图集,其中每个相应的阴影纹理图集包括相应的多个阴影图元,所述第一数目的阴影纹理图集包括第一阴影纹理图集,其中所述第一阴影纹理图集包括多个块,其中每个块包括多个图元,其中所述多个块包括第一块;
由第一装置的内容编码器对所述第一数目的阴影纹理图集的第一阴影纹理图集进行编码;和
由所述第一装置将所编码的第一阴影纹理图集传送到第二装置。
2.根据权利要求1所述的方法,其中所述第一数目与所述第二数目相同。
3.根据权利要求1所述的方法,其中确定控制内容编码器的比特率包括:
确定执行自适应着色帧频以控制内容编码器的比特率,其中生成第一数目的阴影纹理图集包括:通过基于执行自适应着色的确定执行自适应着色,来生成至少一个阴影纹理图集。
4.根据权利要求1所述的方法,其中确定控制内容编码器的比特率包括:
确定执行mip-map偏置以控制内容编码器的比特率,其中生成第一数目的阴影纹理图集包括:通过基于执行mip-map偏置的确定执行mip-map偏置,来生成至少一个阴影纹理图集。
5.根据权利要求1所述的方法,其中生成第一阴影纹理图集包括:
将用于表示第一块中的图元的第一数目的像素减少为第二数目的像素,其中第二数目的像素少于第一数目的像素;和
使用第二数目的像素代替第一数目的像素,来生成具有图元的第一块。
6.根据权利要求5所述的方法,其中所述第一数目的像素对应于第一分辨率,而所述第二数目的像素对应于第二分辨率,其中所述第二分辨率小于所述第一分辨率。
7.根据权利要求5所述的方法,其中所述第一块包括多个子块,其中每个子块包括在所述第一块中包括的所述多个图元的相应子集。
8.根据权利要求1所述的方法,进一步包括:
由第一装置的处理单元向内容编码器提供一个或多个指令,以调整内容编码器的一个或多个编码参数。
9.根据权利要求8所述的方法,其中编码所述第一数目的阴影纹理图集的所述第一阴影纹理图集包括:基于从所述第一装置的处理单元接收的一个或多个指令,来编码所述第一数目的阴影纹理图集的所述第一阴影纹理图集。
10.一种用于图形处理的第一装置,包括:
存储器,配置为存储数据;
第一处理单元,与所述存储器通信耦合;和
内容编码器,与所述存储器和所述第一处理单元通信耦合,
其中所述第一处理单元被配置为确定控制内容编码器的比特率,并基于控制内容编码器的比特率的确定,生成用于由第二装置渲染第二数目的帧的第一数目的阴影纹理图集,其中,所述第一数目的阴影纹理图集包括第一阴影纹理图集,所述第一阴影纹理图集包括多个块,其中每个块包括多个图元,其中所述多个块包括第一块,其中每个相应的阴影纹理图集包括相应的多个阴影图元,
其中所述内容编码器被配置为对所述第一数目的阴影纹理图集的第一阴影纹理图集进行编码;和
其中所述第一装置被配置为将所编码的第一阴影纹理图集传送到第二装置。
11.根据权利要求10所述的第一装置,其中所述第一数目与所述第二数目相同。
12.根据权利要求10所述的第一装置,其中为了确定控制内容编码器的比特率,所述第一处理单元被配置为:
确定执行自适应着色以控制内容编码器的比特率,其中为了生成第一数目的阴影纹理图集,所述第一处理单元被配置为通过基于执行自适应着色的确定执行自适应着色,来生成至少一个阴影纹理图集。
13.根据权利要求10所述的第一装置,其中为了确定控制内容编码器的比特率,所述第一处理单元被配置为:
确定执行mip-map偏置以控制内容编码器的比特率,其中为了生成第一数目的阴影纹理图集,所述第一处理单元被配置为通过基于执行mip-map偏置的确定执行mip-map偏置,来生成至少一个阴影纹理图集。
14.根据权利要求10所述的第一装置,其中每个块包括多个图元,其中所述多个块包括第一块,并且其中为了生成第一阴影纹理图集,所述第一处理单元被配置为:
将用于表示第一块中的图元的第一数目的像素减少为第二数目的像素,其中第二数目的像素少于第一数目的像素;和
使用第二数目的像素代替第一数目的像素,来生成具有图元的第一块。
15.根据权利要求14所述的第一装置,其中所述第一数目的像素对应于第一分辨率,而所述第二数目的像素对应于第二分辨率,其中所述第二分辨率小于所述第一分辨率。
16.根据权利要求14所述的第一装置,其中所述第一块包括多个子块,其中每个子块包括在所述第一块中包括的所述多个图元的相应子集。
17.根据权利要求10所述的第一装置,其中所述第一处理单元进一步被配置为:
向内容编码器提供一个或多个指令,以调整内容编码器的一个或多个编码参数。
18.根据权利要求17所述的第一装置,其中为了编码所述第一数目的阴影纹理图集的所述第一阴影纹理图集,所述内容编码器被配置为基于从所述第一装置的处理单元接收的一个或多个指令,来编码所述第一数目的阴影纹理图集的所述第一阴影纹理图集。
19.一种用于图形处理的装置,包括:
接收器,配置为接收编码的第一阴影纹理图集,其中第一数目的阴影纹理图集中的第一阴影纹理图集由第一装置的内容编码器编码;
内容解码器,与所述接收器通信耦合,其中所述内容解码器被配置为对所述第一数目的阴影纹理图集中的第一阴影纹理图集进行解码,其中所述第一阴影纹理图集被配置用于基于内容编码器的受控比特率来渲染多个帧;和
处理单元,与所述接收器和所述内容解码器通信耦合,其中所述处理单元被配置为基于所述第一阴影纹理图集渲染多个帧,其中所述第一阴影纹理图集包括多个块,其中每个块包括多个图元,其中所述多个块包括第一块,其中每个相应的阴影纹理图集包括相应的多个阴影图元。
20.根据权利要求19所述的装置,其中通过以下至少一个控制所述比特率:
所述第一数目的阴影纹理图集包括利用自适应着色生成的至少一个阴影纹理图集;或
所述第一数目的阴影纹理图集包括利用mip-map偏置生成的至少一个阴影纹理图集。
CN201980030246.4A 2018-05-08 2019-05-03 分布式图形处理 Active CN112513937B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/974,573 2018-05-08
US15/974,573 US10593097B2 (en) 2018-05-08 2018-05-08 Distributed graphics processing
PCT/US2019/030620 WO2019217236A1 (en) 2018-05-08 2019-05-03 Distributed graphics processing

Publications (2)

Publication Number Publication Date
CN112513937A CN112513937A (zh) 2021-03-16
CN112513937B true CN112513937B (zh) 2021-12-17

Family

ID=66626029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980030246.4A Active CN112513937B (zh) 2018-05-08 2019-05-03 分布式图形处理

Country Status (3)

Country Link
US (1) US10593097B2 (zh)
CN (1) CN112513937B (zh)
WO (1) WO2019217236A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2526598B (en) * 2014-05-29 2018-11-28 Imagination Tech Ltd Allocation of primitives to primitive blocks
KR20210030147A (ko) * 2019-09-09 2021-03-17 삼성전자주식회사 3d 렌더링 방법 및 장치
CN113256745A (zh) * 2020-02-13 2021-08-13 英特尔公司 用于基于重要度值来编码的方法和装置
CN113837919A (zh) * 2020-06-24 2021-12-24 英特尔公司 用于基于着色速率来编码的方法和装置
US11721064B1 (en) * 2020-12-11 2023-08-08 Meta Platforms Technologies, Llc Adaptive rate shading using texture atlas
US11514641B2 (en) 2021-03-03 2022-11-29 Qualcomm Incorporated Error concealment in split rendering using shading atlases
US11676324B2 (en) * 2021-03-30 2023-06-13 Meta Platforms Technologies, Llc Cloud rendering of texture map

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101010961A (zh) * 2004-08-27 2007-08-01 西门子公司 用于编码和解码的方法和装置
US9704270B1 (en) * 2015-07-30 2017-07-11 Teradici Corporation Method and apparatus for rasterizing and encoding vector graphics

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070019740A1 (en) 2005-07-25 2007-01-25 Texas Instruments Incorporated Video coding for 3d rendering
CN101507280B (zh) 2006-08-25 2012-12-26 汤姆逊许可公司 用于降低分辨率划分的方法和装置
US8605963B2 (en) 2007-03-19 2013-12-10 General Electric Company Atlas-based image compression
EP2380353B1 (en) 2009-01-19 2017-11-08 Telefonaktiebolaget LM Ericsson (publ) Image processing for memory compression
KR102166520B1 (ko) 2010-04-13 2020-10-16 지이 비디오 컴프레션, 엘엘씨 샘플 영역 병합
US10262455B2 (en) 2015-12-04 2019-04-16 Intel Corporation Merging fragments for coarse pixel shading using a weighted average of the attributes of triangles
US10310266B2 (en) 2016-02-10 2019-06-04 Advanced Micro Devices, Inc. Method and system for streaming information in wireless virtual reality

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101010961A (zh) * 2004-08-27 2007-08-01 西门子公司 用于编码和解码的方法和装置
US9704270B1 (en) * 2015-07-30 2017-07-11 Teradici Corporation Method and apparatus for rasterizing and encoding vector graphics

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A JPEG-LIKE TEXTURE COMPRESSION WITH ADAPTIVE QUANTIZATION FOR 3D GRAPHICS APPLICATION;C.-H. Chen等;《VISUAL COMPUTER》;20020201;第18卷(第1期);摘要 *
C.-H. Chen等.A JPEG-LIKE TEXTURE COMPRESSION WITH ADAPTIVE QUANTIZATION FOR 3D GRAPHICS APPLICATION.《VISUAL COMPUTER》.2002,第18卷(第1期),第29-40页. *

Also Published As

Publication number Publication date
US10593097B2 (en) 2020-03-17
CN112513937A (zh) 2021-03-16
US20190347845A1 (en) 2019-11-14
WO2019217236A1 (en) 2019-11-14

Similar Documents

Publication Publication Date Title
CN112513937B (zh) 分布式图形处理
US11069128B2 (en) Rendering an image from computer graphics using two rendering computing devices
KR102562877B1 (ko) 애플리케이션 계산들의 분배를 위한 방법들 및 장치들
US11481929B2 (en) System and method for compressing and decompressing images using block-based compression format
US11321905B2 (en) Error concealment in split rendering
US11468629B2 (en) Methods and apparatus for handling occlusions in split rendering
US20200105227A1 (en) Methods and apparatus for improving frame rendering
US20200104973A1 (en) Methods and apparatus for frame composition alignment
KR20230130756A (ko) 셰이딩 아틀라스를 사용한 분할 렌더링에서의 에러 은닉
TWI505717B (zh) 彩色影像之接合純量嵌入圖形寫碼
US10929954B2 (en) Methods and apparatus for inline chromatic aberration correction
US11388432B2 (en) Motion estimation through input perturbation
KR20220164484A (ko) 섀도우 정보를 이용한 렌더링
US11622113B2 (en) Image-space function transmission
CN117751387A (zh) 面元网格连通性编码
CN118043850A (zh) Meshlet着色图集
CN116998145A (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
GR01 Patent grant
GR01 Patent grant