CN109983533B - 用于固定颜色及图案子帧的提取减少 - Google Patents

用于固定颜色及图案子帧的提取减少 Download PDF

Info

Publication number
CN109983533B
CN109983533B CN201780071810.8A CN201780071810A CN109983533B CN 109983533 B CN109983533 B CN 109983533B CN 201780071810 A CN201780071810 A CN 201780071810A CN 109983533 B CN109983533 B CN 109983533B
Authority
CN
China
Prior art keywords
subframe
image data
metadata
data
gpu112
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
CN201780071810.8A
Other languages
English (en)
Other versions
CN109983533A (zh
Inventor
A·E·格鲁贝尔
S·加代尔拉布
马振彪
M·瓦里亚
汪涛
T·隆戈
M·斯特恩伯格
P·周
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 Inc
Original Assignee
Qualcomm 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 Inc filed Critical Qualcomm Inc
Publication of CN109983533A publication Critical patent/CN109983533A/zh
Application granted granted Critical
Publication of CN109983533B publication Critical patent/CN109983533B/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
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • 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
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/16Determination of a pixel data signal depending on the signal applied in the previous frame
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/18Use of a frame buffer in a display terminal, inclusive of the display panel

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

本发明描述一种技术,其中装置经配置以检索用于渲染帧的子帧集中的子帧的元数据缓冲器。数据缓冲器的数据块经配置以存储用于渲染所述子帧的图像数据。响应于基于用于渲染所述子帧的所述元数据缓冲器确定所述子帧包含颜色图案、固定颜色值或其组合,所述装置避免从所述数据缓冲器的所述数据块中检索所述图像数据且基于所述元数据缓冲器确定用于渲染所述子帧的所述图像数据。

Description

用于固定颜色及图案子帧的提取减少
技术领域
本发明涉及存储器提取,包含用于由图形处理单元(GPU)进行的存储器提取的技术。
背景技术
移动装置由有限大小及/或容量的电池供电。通常,除了其它事物外,移动装置还用于进行电话呼叫、检查电子邮件、记录/播放图片/视频、收听广播、导航、网页浏览、玩游戏,管理装置以及执行计算。这些动作中的许多者利用图形处理单元(GPU)来执行一些任务。实例GPU任务包含使用系统存储器(例如,仓存储器,例如动态随机存取存储器(DRAM))将内容渲染到显示器。因此,GPU通常从系统存储器执行许多提取,这消耗功率。
发明内容
通常,本发明描述用于减少图形处理单元(GPU)对存储器进行的提取的数量的技术。在一些实例中,GPU基于存储在元数据缓冲器中的信息确定图像数据,而非在系统存储器中执行提取获得颜色图案及/或固定颜色值。例如,GPU可将固定颜色值嵌入在元数据缓冲器中,从而允许在不需要从系统存储器提取以获得固定颜色值的情况下确定固定颜色值。在一些实例中,其中特定颜色图案及/或固定颜色值在帧的多个子帧中发生,GPU可将先前子帧的指针嵌入在元数据中在先前的子帧元数据。以此方式,GPU可使用先前针对具有相似颜色图案及/或固定颜色值的另一子帧所检索的图像数据渲染当前子帧。在实例中,GPU可从高速缓冲存储器检索图像数据,而非在系统存储器中执行提取,所述图像数据用于其它子帧,但由元数据缓冲识别为包含特定颜色图案及/或固定颜色值。以此方式,GPU可使用高速缓冲存储器来存取图像数据,而非从系统存储器提取图像数据。在一些实例中,GPU可在高速缓冲存储器中生成指示固定颜色值的颜色字典,且在元数据缓冲器中指示用于渲染子帧的颜色字典的特定固定颜色值。在一些实例中,GPU可生成指示子帧集的固定颜色值的固定颜色数据流,且在元数据缓冲器中指示子帧的特定固定颜色值包含在固定颜色数据流中。
在一个实例中,本发明描述一种方法,其包含:检索用于渲染帧的子帧集中的子帧的元数据缓冲器。数据缓冲器的数据块经配置以存储用于渲染所述子帧的图像数据。所述方法进一步包含响应于基于用于渲染所述子帧的所述元数据缓冲器确定所述子帧包含颜色图案、固定颜色值或其组合,避免从所述数据缓冲器的所述数据块中检索所述图像数据且基于所述元数据缓冲器确定用于渲染所述子帧的所述图像数据。
在一个实例中,本发明描述一种装置,其包含:数据缓冲器,其经配置以存储用于渲染帧的图像数据;元数据缓冲器,其用于渲染帧的子帧集的子帧;以及处理器。数据缓冲器的数据块经配置以存储用于渲染所述子帧的图像数据。所述处理器包含集成电路,所述处理器经配置以响应于基于用于渲染所述子帧的所述元数据缓冲器确定所述子帧包含颜色图案、固定颜色值或其组合,避免从所述数据缓冲器的所述数据块中检索所述图像数据且基于所述元数据缓冲器确定用于渲染所述子帧的所述图像数据。
在一个实例中,本发明描述一种存储指令的非暂时性计算机可读存储媒体,所述指令在被执行时致使一或多个处理器检索用于渲染帧的子帧集中的子帧的元数据缓冲器。数据缓冲器的数据块经配置以存储用于渲染所述子帧的图像数据。一或多个处理器进一步致使响应于基于用于渲染所述子帧的所述元数据缓冲器确定所述子帧包含颜色图案、固定颜色值或其组合,避免从所述数据缓冲器的所述数据块中检索所述图像数据且基于所述元数据缓冲器确定用于渲染所述子帧的所述图像数据。
在一个实例中,本发明涉及一种装置,所述装置包含用于检索用于渲染帧的子帧集中的子帧的元数据缓冲器的装置。数据缓冲器的数据块经配置以存储用于渲染所述子帧的图像数据。所述装置进一步包含用于响应于基于用于渲染子帧的元数据缓冲器确定子帧包含颜色图案、固定颜色值或其组合而避免从数据缓冲器的数据块检索图像数据的装置,以及用于响应于基于用于渲染子帧的元数据缓冲器确定子帧包含颜色图案、固定颜色值,或其组合基于元数据缓冲器确定用于渲染子帧的图像数据的装置。
下文的随附图式及描述中阐明一或多个实例的细节。根据所述描述、图式以及权利要求书将明了其它特征、目的及优点。
附图说明
图1为根据本发明中所描述的一或多个示范性技术说明用于处理数据的示范性装置的框图。
图2为根据本发明中所描述的一或多个实例技术说明计算装置的框图。
图3为根据本发明中所描述的一或多个实例技术的示范性帧的子帧的压缩的说明。
图4为根据本发明中所描述的一或多个实例技术的GPU准备用于显示的图像数据的说明。
图5为根据本发明所描述的一或多个实例技术的第一示范性元数据缓冲器的说明。
图6为根据本发明所描述的一或多个实例技术的第二示范性元数据缓冲器的说明。
图7为根据本发明所描述的一或多个实例技术的第三示范性元数据缓冲器的说明。
图8为根据本发明所描述的一或多个实例技术的第四示范性元数据缓冲器的说明。
图9为根据本发明所描述的一或多个实例技术的第五示范性元数据缓冲器的说明。
图10为根据本发明所描述的一或多个实例技术的第六示范性元数据缓冲器的说明。
图11为根据本发明所描述的一或多个实例技术的第七示范性元数据缓冲器的说明。
图12为根据本发明所描述的一或多个实例技术的第八示范性元数据缓冲器的说明。
图13为根据本发明所描述的一或多个实例技术的第九示范性元数据缓冲器的说明。
图14为根据本发明所描述的一或多个实例技术的第十示范性元数据缓冲器的说明。
图15为根据本发明中所描述的一或多个实例技术说明可被压缩为透明或固定颜色的子帧的百分比的曲线图。
图16为根据本发明中所描述的一或多个实例技术说明具有固定颜色值的子帧的压缩比的曲线图。
图17为根据本发明中所描述的一或多个实例技术说明颜色子帧的聚类的图。
图18为根据本发明中所描述的技术说明产生元数据缓冲器的实例第一方法的流程图。
图19为根据本发明中所描述的技术说明产生元数据缓冲器的实例第二方法的流程图。
图20为根据本发明中所描述的技术说明确定用于渲染子帧的图像数据的实例方法的流程图。
具体实施方式
本发明涉及处理单元进行的存储器提取操作,例如图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)或可对图像或视频数据执行提取操作的其它处理单元。例如GPU的处理单元可存取存储用于显示的帧的图像数据的系统存储器(例如,仓存储器)。系统存储器的实例可包含动态随机存取存储器(DRAM)。然而,系统存储器的每一读取/写入可能有助于包含GPU的装置的功率消耗。换句话说,系统存储器的每一额外读取/写入(例如,提取)可能导致GPU的更高功率消耗。
帧可在逻辑上划分为子帧(例如,单元、压缩器块、图块等)。可为每一子帧指派固定数目个字节,例如256个字节且存储在系统存储器(例如,图像缓冲器)中。硬件及/或软件压缩器可压缩帧中的每一子帧的图像数据以生成压缩图像数据。压缩器可将每一子帧的图像数据压缩到最小可能的大小而不损失特征,使得压缩的图像数据可稍后被解压缩以产生与未经压缩图像数据相同的图像数据。例如,存储在系统存储器中的帧的每一子帧的图像数据可为256个字节。在所述实例中,可在不丢失特征的情况下压缩第一子帧集,使得子帧的压缩及未压缩图像数据相同(例如,“大小=k”)。第二子帧集可被压缩为192个字节(例如,“大小=k-68”)。第三子帧集可被压缩为128个字节(例如,“大小=k-128”)。可将第四子帧集压缩到64个字节(例如,“大小=k-192”)。
然而,压缩器可生成含有元数据缓冲器的伴随缓冲器,而不是解压缩器必须为每一压缩单元提取256个字节。元数据缓冲器可包含每一压缩单元(例如,子帧)的大小的简要描述。在一些实例中,系统存储器(例如,DRAM)提取可限于固定的字节块,称为例如64个字节的存取块大小(例如,DRAM ABS)。如此,大小可指示存取块大小的倍数。在一个实例中,用于第一子帧集的元数据缓冲器的大小部分可为4,用于第二子帧集的元数据缓冲器的大小部分可为3,用于第三子帧集的元数据缓冲器的大小部分可为2,且用于第四子帧集的元数据缓冲器的大小部分可为1。以此方式,解压缩器可使用元数据缓冲器的大小部分来确定从系统内存提取用于解压缩帧的压缩单元的数据量。
在一些实例中,元数据缓冲器除了指示大小之外还可指示其它信息。例如,元数据缓冲器可指示对应子帧的类型或属性。在一些实施方案中,元数据缓冲器可为字节(即,8位)。因此,在一些实施方案中,GPU可使用元数据缓冲器来进一步减少从系统存储器提取的数据量。也就是说,GPU可使用元数据缓冲器来减少系统存储器提取的数量或从系统存储器提取的数据量,同时存储在系统存储器中的帧的大小可保持相同,或在某些状况下可增加。换句话说,GPU可使用元数据缓冲器来在压缩及解压缩期间减少GPU与系统存储器之间的带宽(例如,提取的数量),独立于压缩与解压缩处理的压缩比。
本发明描述用于减少来自系统存储器的数据的提取量的实例技术及装置。在一些实例中,GPU(或其它处理器)基于存储在元数据缓冲器中的信息确定图像数据,而非在系统存储器中执行提取获得颜色图案及/或固定颜色值。例如,GPU可将固定颜色值嵌入在元数据缓冲器中。在一些实例中,其中特定颜色图案及/或固定颜色值发生在子帧的多个子帧(例如,图块、单元等)中,GPU可从系统存储器中检索特定颜色图案及/或固定颜色值以存储在用于由元数据缓冲器识别的子帧集的第一子帧的高速缓冲存储器中。在实例中,GPU可针对由元数据缓冲器识别包含特定颜色图案及/或固定颜色值的所述集的其它子帧从高速缓冲存储器检索图像数据而非对系统存储器的单独提取。以此方式,GPU使用高速缓冲存储器存取图像数据,而非从系统存储器提取重复图像数据,从而可能节省存储器带宽及功率消耗。在一些实例中,GPU可在局部存储器中生成指示固定颜色值的颜色字典,且在元数据缓冲器中指示用于渲染子帧的颜色字典的特定固定颜色值。在一些实例中,GPU可生成经配置以指示子帧集中的每一子帧的固定颜色值的固定的颜色数据流,且在元数据缓冲器中指示所述集中的每一子帧在固定颜色数据流中具有固定颜色值。
图1为说明可用于实施本发明的技术的实例计算装置102的框图。计算装置102可包括个人计算机、桌面式计算机、膝上型计算机、计算机工作站、视频游戏平台或控制台,无线通信装置(例如,移动电话、蜂窝电话、卫星电话,及/或移动电话手机)、陆地线电话、互联网电话,例如便携式视频游戏装置或个人数字助理(PDA)的手持装置、个人音乐播放器、视频播放器、显示装置、电视、电视机顶盒、服务器、中间网络装置、大型计算机或处理及/或显示图形数据的任何其它类型的装置。
如图1的实例中所说明,计算装置102包含用户输入接口104、CPU 106、存储器控制器108、系统存储器110、图形处理单元(GPU)112、高速缓冲存储器114、本地存储器115、显示接口116、显示器118,以及总线120。用户输入接口104、CPU 106、存储器控制器108、GPU 112及显示接口116可使用总线120彼此通信。总线120可为各种总线结构中的任何者,例如第三代总线(例如,超传输(HyperTransport)总线或无限带宽(InfiniBand)总线)、第二代总线(例如,高级图形端口总线,快速外围组件互连(PCI)总线或高级eXentisible接口(AXI)总线)或另一类型的总线或装置互连。应注意,图1中所展示的不同组件之间的总线与通信接口的具体配置仅仅为示范性的,且具有相同或不同组件的计算装置及/或其它图形处理系统的其它配置可用于实施本发明的技术。
CPU 106可包括控制计算装置102的操作的通用或专用处理器。用户可向计算装置102提供输入以致使CPU 106执行一或多个软件应用程序。在CPU 106上执行的软件应用程序可包含例如操作系统、文字处理器应用程序、电子邮件应用程序、电子表格应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户界面应用程序或另一程序。用户可经由一或多个输入装置(未展示)向计算装置102提供输入,所述输入装置例如键盘、鼠标、麦克风、触摸板或经由用户输入接口104耦合到计算装置102的另一输入装置。
在CPU 106上执行的软件应用程序可包含指示CPU 106致使图形数据渲染到显示器118的一或多个图形渲染指令。在一些实例中,软件指令可符合图形应用程序编程接口(API),例如,开放式图形库
Figure BDA0002066300420000061
API、开放式图形库嵌入式系统(OpenGL ES)API、OpenCL API、Direct3D API、X3D API、RenderMan API、WebGL API或任何其它公共或专有标准图形API。不应将这些技术视为仅限于需要特定API。
为了处理图形渲染指令,CPU 106可向GPU 112发出一或多个图形渲染命令,以致使GPU 112执行图形数据的一些或全部渲染。在一些实例中,要渲染的图形数据可包含例如点、线、三角形、四边形、三角形带等图形基元的列表。
存储器控制器108促进进出系统存储器110的数据的传送。例如,存储器控制器108可接收存储器读取及写入命令,且相对于系统存储器110服务此些命令,以便为计算装置102中的组件提供存储器服务。存储器控制器108以通信方式耦合到系统存储器110。尽管存储器控制器108在图1的实例计算装置102中经说明为是与CPU 106及系统存储器110分开的处理模块,但在其它实例中,存储器控制器108的一些或全部功能可在CPU106及系统存储器110中的一者或两者上实施。
系统存储器110可存储可存取供由CPU 106执行的程序模块及/或指令及/或由在CPU 106上执行的程序使用的数据。例如,系统存储器110可存储与应用程序相关联的用户应用程序及图形数据。系统存储器110可另外存储供计算装置102的其它组件使用及/或由其生成的信息。例如,系统存储器110可充当GPU 112的装置存储器并且可存储要由GPU 112操作的数据以及由GPU 112执行的操作产生的数据。例如,系统存储器110可存储纹理缓冲器、深度缓冲器、模具缓冲器、顶点缓冲器、帧缓冲器等的任何组合。另外,系统存储器110可存储用于由GPU 112处理的命令流。系统存储器110可包含一或多个易失性或非易失性存储器或存储装置,例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器存储器,磁数据媒体或光存储媒体。
在一些方面中,系统存储器110可包含致使CPU 106及/或GPU 112执行本发明中所描述的功能到CPU 106及GPU 112的指令。因此,系统存储器110可为其上存储有指令的计算机可读存储媒体,所述指令在被执行时致使一或多个处理器(例如,CPU 106及GPU 112)执行各种功能。
在一些实例中,系统存储器110为非暂时性存储媒体。术语“非暂时性”指示存储媒体不以载波或传播信号体现的存储媒体。然而,术语“非暂时性”不应被解释意味着系统存储器110为不可移动或其内容为静态的。作为一个实例,可将系统存储器110从计算装置102移除,且移动到另一装置。作为另一实例,可将存储器(基本上类似于系统存储器110)插入到计算装置102中。在某些实例中,非暂时存储媒体可存储可随时间改变的数据(例如,存储在RAM中)。
GPU 112可经配置以执行图形操作以将一或多个图形基元渲染到显示器118。因此,当在CPU 106上执行的软件应用程序中的一者需要图形处理时,CPU 106可向GPU 112提供图形命令及图形数据用于渲染到显示器118。图形命令可包含例如绘图命令,例如绘图调用、GPU状态编程命令、存储器传送命令、通用计算命令、内核执行命令等。在一些实例中,CPU 106可通过将命令及图形数据写入到系统存储器110来将命令及图形数据提供到GPU112,所述系统存储器可被GPU 112存取。在一些实例中,GPU 112可经进一步配置以对在CPU106上执行的应用程序执行通用计算。
GPU 112可一些情况下可以高度并行结构建构,所述高度并行结构提供比CPU 106更高效的矢量操作的处理。例如,GPU 112可包含多个处理元件,所述处理元件经配置从而以并行方式对多个顶点或像素进行操作。在一些情况下,GPU 112的高度并行性质可允许GPU 112比使用CPU 106将场景直接绘制到显示器118更快地将图形图像(例如,GUI及二维(2D)及/或三-维(3D)图形场景绘制到显示器118上。另外,GPU 112的高度并行性质可允许GPU 112比CPU106更快地处理用于通用计算应用的某些类型的矢量及矩阵操作。
在一些情况下,GPU 112可集成到计算装置102的主板中。在其它情况下,GPU 112可存在于安装在计算装置102的主板中的端口中的图形卡上,或可以其它方式并入外围装置内,所述外围装置经配置以与计算装置102交互。在其它情况下,GPU 112可位于与形成单片系统(SoC)的CPU 106相同的微芯片上。GPU 112及CPU 106可包含一或多个处理器,例如一或多个微处理器、专用集成电路(ASIC)、场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。
GPU 112可直接耦合到高速缓冲存储器114。因此,GPU 112可从高速缓冲存储器114读取(例如,提取)数据并将数据写入到高速缓冲存储器114而无需使用总线120。换句话说,GPU 112可使用本地存储器而非片外存储器(例如,总线可存取的存储器)在本地处理数据。这允许GPU 112通过消除GPU 112经由总线120读取及写入数据(这可能经历繁重的总线流量)的需要以更有效的方式操作。然而,在一些情况下,GPU 112可不包含单独的高速缓冲存储器,而是经由总线120利用系统存储器110。高速缓冲存储器114可包含一或多个易失性或非易失性存储器或存储装置,例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁数据媒体或光存储媒体。
GPU 112可直接耦合到本地存储器115。因此,GPU 112可从本地存储器115读取(例如,提取)数据并将数据写入本地存储器115而不必使用总线120。本地存储器115可包含非易失性存储器。非易失性存储器的实例可包含但不限于ROM、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁数据媒体,光存储媒体或另一非易失性存储器。
CPU 106及/或GPU 112可将所渲染图像数据存储在分配在系统存储器110内的帧缓冲器中。显示接口116可从帧缓冲器检索数据且配置显示器118以显示由所渲染图像数据表示的图像。在一些实例中,显示接口116可包含数/模转换器(DAC),其经配置以将从帧缓冲器检索的数字值转换为可由显示器118消耗的模拟信号。在其它实例中,显示接口116可将数字值直接传递到显示器118以进行处理。显示器118可包括监视器、电视、投影装置、液晶显示器(LCD)、等离子显示面板、发光二极管(LED)阵列、阴极射线管(CRT)显示器、电子纸、表面导电电子发射显示器(SED)、激光电视显示器、纳米晶体显示器或另一类型的显示单元。显示器118可集成在计算装置102中。例如,显示器118可为移动电话手机或平板计算机的屏幕。替代地,显示器118可为经由有线或无线通信链路耦合到计算装置102的单独-装置。例如,显示器118可为经由电缆或无线链路连接到个人计算机的计算机监视器或平板显示器。
如所描述,CPU 106可将图形处理卸载到GPU 112,例如需要大量并行操作的任务。作为一个实例,图形处理需要大量并行操作,且CPU 106可将此些图形处理任务卸载到GPU112。然而,例如矩阵运算的其它操作也可受益于GPU 112的并行处理能力。在这些实例中,CPU 106可利用GPU 112的并行处理能力来致使GPU 112执行非图形相关的操作。
在本发明中所描述的技术中,第一处理单元(例如,CPU 106)将某些任务卸载到第二处理单元(例如,GPU 112)。为了卸载任务,CPU 106将要由GPU 112执行的命令及作为命令的操作数的数据(例如,命令操作的数据)输出到系统存储器110及/或直接输出到GPU112。GPU 112接收命令及数据,直接来自CPU 106及/或来自系统存储器110,并执行命令。在一些实例中,CPU 106可将命令及数据操作数存储在集成电路(IC)本地的高速缓冲存取器中,而非将欲由GPU 112执行的命令,以及用于命令的数据操作数存储在系统存储器110中,所述集成电路包含GPU 112及CPU 106且由两个CPU 106及GPU112(例如,高速缓冲存储器114)共享。通常,本发明中所描述的技术适用于CPU 106可使在GPU 112上执行的命令可用的各种方式,且所述技术不限于以上实例。
在一些实例中,例如其中CPU 106将要由GPU 112执行的命令存储在存储器(例如,系统存储器110或高速缓冲存储器)中的那些实例,CPU 10 6可输出识别GPU 112将要执行的命令组的存储器地址信息。GPU 112要执行的命令组被称作为提交命令。在CPU106直接向GPU 112输出命令的实例中,提交的命令包含CPU 106指示GPU 112立即执行的那些命令。
可存在CPU 106借以对命令进行分组的各种方式。作为一个实例,一组命令包含GPU 112渲染一帧所需的所有命令。作为另一实例,一组命令可为所谓的“原子命令”,其将在没有GPU 112切换到其它命令的情况下一起执行。将提交到GPU 112的命令分组的其它方式可为可能的,且本发明不限于上述实例技术。
本发明中所描述的技术描述实例方式,借以减少对在系统存储器中缓冲的数据110的提取量。在一些实例中,GPU 112基于存储在系统存储器110中的元数据缓冲器确定图像数据,而非在系统存储器110中对颜色图案及/或固定颜色值执行提取。换句话说,元数据缓冲器可向GPU 112指示子帧的图像数据可重复使用或可在无需从系统存储器110的额外提取的情况下生成的情况。如本文中所使用,固定颜色可指子帧中的每一像素具有固定红绿蓝α(RGBa)颜色的情况。例如,固定颜色可为纯色纹理。在一些实例中,固定颜色可指子帧中的每一像素具有固定RGBa颜色及固定α(例如,不透明度)的情况。
在一个实例中,GPU 112可将固定颜色值嵌入在存储在系统存储器110中的元数据缓冲器中。在实例中,GPU 112根据存储在系统存储器110中的元数据缓冲器中的嵌入的固定颜色值来确定图像数据,而非在系统存储器110中对图像数据执行额外提取。
在其中特定颜色图案及/或固定颜色值在多个子帧中发生的一些实例中,GPU 112将指针嵌入在存储在系统存储器110中的元数据缓冲器中,所述指针指示具有类似颜色图案及/或固定颜色值的另一子帧。在实例中,GPU 112根据存储在系统存储器110中的元数据缓冲器中的嵌入指针确定图像数据,而非在系统存储器110中对图像数据执行额外提取。
在一个实例中,GPU 112可在局部存储器115中生成指示固定颜色值的颜色字典,且在存储在系统存储器110中的元数据缓冲器中指示用于渲染子帧的颜色字典的特定固定颜色值。在实例中,GPU 112根据由元数据缓冲器指示的颜色字典的特定固定颜色值来确定图像数据,而非在系统存储器110中对图像数据执行额外提取。
在一个实例中,GPU 112可生成经配置以指示子帧集中的每一子帧的固定颜色值的固定的颜色数据流,且在元数据缓冲器中指示所述子帧集中的每一子帧在固定颜色数据流中具有固定颜色值。在实例中,GPU 112根据固定颜色数据流确定图像数据,而非在系统存储器110中对图像数据执行另一提取。
如在本发明中使用的帧可指完整图像,但在一些实例中可为可呈现的完整图像的部分。例如,可能存在每次都不重新渲染的静态背景,但由GPU 112渲染的帧可与静态背景合成(例如,通过显示接口116)以生成完整图像。作为另一实例,显示接口116可组合视频及由GPU 112渲染的帧。
所述帧包含表示图形内容的多个像素,其中每一像素具有像素值。例如,在GPU112渲染帧之后,GPU 112将帧的像素(例如,子帧)的所得像素值存储在帧缓冲器中,帧缓冲器可在系统存储器110中。显示接口116从帧缓冲器接收帧的像素的像素值,并基于像素值输出值以使显示器118显示帧的图形内容。在一些实例中,显示器接口116致使显示器118以60帧/秒(fps)的速率显示帧(例如,大约每16.67ms显示一帧)。
在本发明中所描述的技术中,GPU 112可检索用于渲染帧的子帧集中的子帧的元数据缓冲器。数据缓冲器(例如,系统存储器110)的数据块经配置以存储用于渲染子帧的图像数据。响应于基于用于渲染所述子帧的所述元数据缓冲器确定所述子帧包含颜色图案、固定颜色值或其组合,GPU 112可经进一步配置以避免从所述数据缓冲器的所述数据块中检索所述图像数据且基于所述元数据缓冲器确定用于渲染所述子帧的所述图像数据。例如,GPU 112可根据存储在系统存储器110中的元数据缓冲器中的嵌入固定颜色值确定图像数据。在一些情况下,其中特定的颜色图案及/或固定颜色值中在多个子帧中发生,GPU 112可根据存储在系统存储器110中的元数据缓冲器中的嵌入指针来确定图像数据,所述嵌入指针指示具有相似颜色图案及/或固定颜色值的另一子帧。以此方式,GPU 112可通过从高速缓冲存储器存取先前从系统存储器110检索的用于另一子帧的图像数据来确定用于渲染子帧的图像数据,而非在系统存储器110中对图像数据执行另一提取。
图2为根据本发明中所描述的一或多个实例技术说明计算装置102的框图。GPU112可包含控制器230、压缩器232、解压缩器234、着色器核心236及固定功能管线238。压缩器232可为软件及/或硬件,其经配置以压缩帧中的每一子帧以生成压缩帧。压缩器232可将每一子帧压缩成最小可能大小而不损失特征,使得压缩单元可稍后被解压缩(例如,通过解压缩器234)以产生与未压缩子帧相同的图像数据。解压缩器234可为软件及/或硬件,其经配置以解压缩帧中的每一子帧的图像数据(例如,由压缩器232压缩)以用于渲染帧。在一些实例中,可组合压缩器232及解压缩器234。在一些实例中,压缩器232及/或解压缩器234的一或多个方面可由CPU 106执行。例如,CPU 106可包含压缩器232及解压缩器234。在一些实例中,压缩器232及/或解压缩器234的一或多个方面可由显示接口116执行。例如,显示接口116可包含压缩器232及解压缩器234。着色器核心236及固定功能管线238可一起形成用于执行图形或非图形相关功能的执行管线。尽管仅说明一个着色器核心236,但在一些实例中,GPU 112可包含类似于着色器核心236的一或多个着色器核心。
GPU 112要执行的命令可由着色器核心236及固定功能管线238执行,如由GPU 112的控制器230所确定的。控制器230可被实施为GPU 112上的硬件或在GPU 112的硬件上执行的软件或固件。控制器230为上文所描述的用于在其中GPU 112确定是否提取缓冲在系统存储器110的图像数据状况下执行实例技术的控制器的实例。
控制器230可接收将被执行以从系统存储器110的命令缓冲器240或直接从CPU106渲染帧的命令(例如,接收CPU 106确定现在应由GPU 112执行的所提交命令)。控制器230还可从系统存储器110的数据缓冲器242或直接从CPU 106检索命令的操作数数据。例如,命令缓冲器240可存储使‘A’及‘B’相加的命令。控制器30从命令缓冲器240检索此命令并从数据缓冲器242检索‘A’及‘B’的值。控制器230可确定着色器核心236将执行哪些命令(例如,在着色器核心236上执行软件指令)以及哪些命令将由固定功能管线238执行(例如,用于固定功能管线238的单元的命令)。
在一些实例中,来自命令缓冲器240及数据缓冲器242中的一者或两者的命令及/或数据可为GPU 112的高速缓冲存储器114的部分。例如,GPU 112可包含指令高速缓冲存储器及数据高速缓冲存储器,其可为高速缓冲存储器114的部分,其分别存储来自命令缓冲器240的命令及来自数据缓冲器242的数据。在这些实例中,控制器230可从高速缓冲存储器114中检索命令及/或数据。
着色器核心236及固定功能管线238可彼此发射及接收数据。例如,着色器核心236执行的一些命令可产生中间数据,所述中间数据为固定功能管线238的单元要执行的命令的操作数。类似地,固定功能管线238的单元执行的一些命令可产生中间数据,所述中间数据为着色器核心236要执行的命令的操作数。以此方式,以管线方式通过固定功能管线238的单元及着色器核心236逐步处理所接收的数据。因此,着色器核心236及固定功能管线238可被称作为实施执行管线。在一些实例中,GPU 112可包含一个以上的着色器核心236,且图2中的实例经提供仅仅是为了帮助理解。
通常,着色器核心236允许执行各种类型的命令,这意味着着色器核心236为可编程的且为用户提供功能灵活性,因为用户可对着色器核心236进行编程以便以大多数可想到的方式执行所期望的任务。然而,固定功能管线238的固定功能单元基本固定用于固定功能单元执行任务的方式。因此,固定功能单元可能不提供很多功能灵活性。
如上文所描述,由于GPU 112的并行处理能力,CPU 106可将任务卸载到GPU 112。例如,GPU 112可经设计有单指令、多数据(SIMD)结构。在SIMD结构中,着色器核心236包含多个SIMD处理元件,其中每一SIMD处理元件执行相同的命令,但在不同的数据上。
在特定SIMD处理元件上执行的特定命令被称作为线程。每一SIMD处理元件可被认为是执行不同的线程,因为给定线程的数据可能不同;然而,在处理元件上执行的线程与在其它处理元件上执行的命令是相同的命令。以此方式,SIMD结构允许GPU 112并行地(例如,同时)执行许多任务。
为了避免混淆,本发明使用术语“命令”来一般指由着色器核心236或固定功能管线238的单元执行的过程。例如,命令包含实际命令、组成子命令(例如,存储器调用命令)、线程或GPU 112执行特定功能的其它方式。因为GPU 112包含着色器核心236且固定功能管线238,所以GPU 112可被视为执行命令。
如图2中所说明,CPU 106执行应用程序226,如虚线框所说明。在执行期间,应用程序226生成GPU 112欲执行的命令,包含指示GPU 112检索及执行着色器程序(例如,顶点着色器、片段着色器,用于非图形应用程序的计算着色器等)的命令。另外,应用程序226生成命令操作的数据(即,命令的操作数)。CPU 106将所生成的命令存储在命令缓冲器240中,并将操作数数据存储在数据缓冲器242中。
在CPU 106将所生成的命令存储在命令缓冲器240中之后,CPU 106使命令可由GPU112执行。例如,CPU 106向GPU 112传递一组存储的命令的存储器地址及其操作数数据以及指示GPU 112欲执行所述命令集的时间的信息。以此方式,CPU 106向GPU112提交命令以执行以渲染帧。
如图2中所说明,CPU 106还可执行图形驱动器228。在一些实例中,图形驱动器228可为在CPU 106的硬件或硬件单元上执行的软件或固件。图形驱动器228可经配置以允许CPU 106及GPU 112彼此通信。例如,当CPU 106将图形或非图形处理任务卸载到GPU 112时,CPU 106经由图形驱动器228将此些处理任务卸载到GPU 112。例如,当CPU 106输出指示GPU112欲执行的命令的量的信息时,图形驱动器228可为将信息输出到GPU 112的CPU 106的单元。
作为另外实例,应用程序226产生图形数据及图形命令,且CPU 106可将此图形数据的处理卸载到GPU 112。在此实例中,CPU 106可将图形数据存储在数据缓冲器242中并且将图形命令存储在命令缓冲器240中,且图形驱动器228可指示GPU 112何时检索分别来自数据缓冲器242及命令缓冲器240的图形数据及图形命令,从哪里检索分别来自数据缓冲器242及命令缓冲器240的图形数据及图形命令,以及何时通过执行所述命令集的一或多个命令来处理图形数据。
此外,应用程序226可能需要GPU 112执行一或多个着色器程序。例如,应用程序226可能需要着色器核心236执行顶点着色器及片段着色器以生成欲显示(例如,在图1的显示器118上)的帧的像素值。图形驱动器228可指示GPU 112何时执行着色器程序并指示GPU112在何处检索来自数据缓冲器242的图形数据以及在何处检索来自命令缓冲器240或来自系统存储器110中的其它位置的命令。以此方式,图形驱动器228可形成CPU 106与GPU 112之间的链接。
可根据应用处理接口(API)来配置图形驱动器228;但图形驱动器228不需要限于根据特定API配置。在计算装置102为移动装置的实例中,可根据OpenGL ES API来配置图形驱动器228。OpenGL ES API是为移动装置特别设计的。在计算装置102为非移动装置的实例中,可根据OpenGL API来配置图形驱动器228。
本发明描述用于减少来自系统存储器110的数据的提取的数量的实例技术及装置。在一些实例中,GPU 112可使用元数据缓冲器260来确定图像数据,而非提取缓冲在系统存储器110的数据缓冲器242中的图像数据。举例来说,GPU 112可根据包含在元数据缓冲器260中的嵌入固定颜色值来确定图像数据。在一些情况下,GPU 112可根据包含在元数据缓冲器260中的指针确定图像数据,所述指针识别具有相似图像数据的另一子帧。在一些情况下,GPU 112可根据包含在元数据缓冲器260中的颜色字典或固定颜色数据流来确定图像数据。
图3为根据本发明中所描述的一或多个实例技术的示范性帧300的子帧的压缩的说明。图3经论述有图1及2的计算装置102,仅用于示范性目的。在图3的实例中,图像帧300包含子帧302、304、306及308。如暗阴影所指示,系统存储器110为子帧302、304、306及308中的每一者存储大小‘K’数据块。在图3的实例中,压缩器232将子帧302从大小‘K’压缩到具有大小‘K’(例如,无压缩)的压缩子帧352,将子帧304从大小‘K’压缩到具有大小‘K-1’的压缩子帧354(例如,轻微压缩),从大小‘K’的子帧306压缩到具有大小‘K-2’的压缩子帧356(例如,中等压缩),以及来自大小‘K’的子帧308压缩到具有尺寸‘K-4’的压缩子帧358(例如,高压缩)。
在一些实例中,系统存储器110可经配置从而以存取块大小(ABS)从数据缓冲器242提取数据。例如,GPU 112可致使系统存储器110将经压缩子帧352写入到四个数据块,将经压缩子帧354写入到三个数据块,将经压缩子帧356写入到两个数据块,并将经压缩子帧358写入到一个数据块。
GPU 112可生成元数据缓冲器360以指示帧300压缩成压缩帧350中。元数据缓冲器360可存储在系统存储器110中。如所展示,元数据缓冲器360指示子帧1(例如,压缩子帧358))具有大小‘1’,其可指示单个数据块(例如,64个字节),子帧2(例如,经压缩的子帧356)具有大小‘2’(例如,128个字节),其可指示两个数据块,子帧3(例如,经压缩子帧354)具有大小‘3’(例如,192个字节),其可指示三个数据块,以及子帧4(例如,经压缩子帧352)具有大小‘4’(例如,256个字节),其可指示四个数据块。以此方式,GPU 112可致使系统存储器110提取用于经压缩子帧352的四个数据块,用于经压缩子帧354的三个数据块,用于经压缩子帧356的两个数据块,及用于经压缩子帧358的一个数据块,而非使用最大数目的块(例如4)提取每一经压缩子帧。
图4为根据本发明中所描述的一或多个实例技术的GPU 112准备用于显示的图像数据的说明。图4经论述有图1及2的计算装置102,仅用于示范性目的。
在图4中所说明的示范性技术中,GPU 112向压缩器232输出用于压缩的图像数据(482)。压缩器232生成元数据缓冲器(483)并向GPU 112输出经压缩图像数据(484)。GPU112向系统存储器110输出经压缩图像数据以用于存储在系统存储器110中(486)。显示接口116从系统存储器110提取经压缩图像数据(488)。显示接口116可向解压缩器490输出经压缩数据(490)并从解压缩器234接收未经压缩图像数据(492)。显示接口116将未经压缩图像数据输出到显示器118(494)。根据本文所描述的一或多种技术,系统可经配置以省略从系统存储器110提取(例如,488)及/或写入到系统存储器(例如,486)以与从系统存储器110提取图像数据(例如,488)及/或写入到系统存储器(例如,486)的系统相比减少系统的功率消耗。
图5为根据本发明中所描述的一或多个实例技术的第一示范性元数据缓冲器560的说明。图5经论述有图1及2的计算装置102,仅用于示范性目的。在图5的实例中,用于渲染帧的元数据缓冲器560包含嵌入颜色值570。元数据缓冲器560可包含在图1及2的系统存储器110中。例如,响应于确定子帧中的所有像素(例如,图块X)具有固定的颜色(例如,RGBa颜色),GPU 112可在用于子帧的元数据缓冲器560中创建元数据缓冲器条目,所述元数据缓冲器条目包含对应子帧具有固定颜色的指示568,且GPU 112可将指示固定颜色值的嵌入颜色值570包含在元数据缓冲器560中。嵌入颜色值570可为8位、4位或另一数量的位。
在一些实例中,GPU 112可将由嵌入颜色值570指示的颜色值存储在系统存储器110中,例如,以准许未经配置的装置使用嵌入颜色值570来确定对应元数据缓冲器560中的条目的子帧的固定颜色值。在一些实例中,GPU 112可避免将由嵌入颜色值570指示的颜色值存储在系统存储器110中,例如,以减少由GPU 112执行的提取的数量,从而降低GPU 112的功率消耗。例如,GPU 112可根据存储在系统存储器110中的元数据缓冲器中的嵌入固定颜色值确定图像数据。更具体地,GPU 112可将嵌入颜色值570指派到子帧的每一像素(例如,图块X)。
在图5的实例中,用于渲染帧的元数据缓冲器560可省略在元数据缓冲器560中嵌入不是固定颜色的子帧的颜色值。例如,响应于确定并非子帧(例如,图块X+1)中的所有像素都具有固定颜色(例如,固定RGBa颜色),GPU 112可在元数据缓冲器560中创建用于子帧(例如,图块X+1)的元数据缓冲器条目,所述元数据缓冲器条目包含子帧不包含固定颜色的指示569,且GPU 112可避免在元数据缓冲器560中嵌入用于子帧的颜色值。
图6为根据本发明中所描述的一或多个实例技术的第一示范性元数据缓冲器660的说明。图6经论述有图1及2的计算装置102,仅用于示范性目的。元数据缓冲器660可包含在图1及2的系统存储器110中。在图6的实例中,GPU 112可使用位668在元数据缓冲器660中指示子帧(例如,图块X)中的所有像素具有固定颜色。在图6的实例中,数据缓冲器242的存取块大小为256个字节,且固定颜色为4个字节。
图7为根据本发明中所描述的一或多个实例技术的第三示范性元数据缓冲器760的说明。图7经论述有图1及2的计算装置102,仅用于示范性目的。元数据缓冲器760可包含在图1及2的系统存储器110中。在图7的实例中,用于渲染第一子帧(例如,图块X+1)的元数据缓冲器760使用嵌入指针768B指示帧的子帧集中的第二子帧(例如,图块X)包含对应于包含在第一子帧中的颜色图案、固定颜色值或其组合的颜色图案、固定颜色值或其组合。例如,GPU 112可使用元数据缓冲器760中的嵌入指针768A指示第一子帧(例如,图块X)中的所有像素具有固定颜色。在图7的实例中,GPU 112可使用嵌入指针768B在元数据缓冲器760中指示第二子帧(例如,图块X+1)中的所有像素具有第一帧(例如,图块X)的固定颜色。例如,嵌入指针768B(例如,字节中的第五位)可指示当前子帧(例如,图块X+1)的图像数据类似于先前子帧(例如,图块X)。如此,GPU 112可从系统存储器110检索指示颜色图案、固定颜色值或其组合的先前子帧的图像数据,将先前子帧的图像数据存储在高速缓冲存储器114中,以及根据缓存在高速缓冲存储器114中的图像数据确定用于渲染当前子帧的图像数据。例如,GPU 112可将先前子帧(例如,图块X)的图像数据指派给当前子帧(例如,图块X+1)。
图8为根据本发明中所描述的一或多个实例技术的第四示范性元数据缓冲器860的说明。图8经论述有图1及2的计算装置102,仅用于示范性目的。元数据缓冲器860可包含在图1及2的系统存储器110中。在图8的实例中,元数据缓冲器860可包含指示固定颜色值的部分870。例如,部分870A及870B可各自为表示固定颜色值的字节的4位部分。
GPU 112可基于部分870确定子帧的固定颜色值。例如,GPU 112可通过组合存储在子帧1的部分870A中的第一4位部分及存储在子帧2的部分870B中的第二4位部分形成表示固定颜色值的字节来确定子帧1的固定颜色值。应理解,部分可小于固定颜色值的一半。例如,GPU 112可组合对应于子帧1-3、1-4或1-n的部分870,以确定可用于渲染多个子帧中的每一者的完整固定颜色值。在实例中,GPU 112可将完整的固定颜色值指派到子帧的每一像素。例如,GPU 112可将由部分870指示的完整固定颜色值指派到子帧1、子帧2、子帧3及子帧4中的每一像素。
在一些实例中,可近似固定颜色值,而非使用8位来表示元数据缓冲器860中的固定颜色值。例如,固定颜色数据可指示颜色空间的部分(例如,一半)。例如,GPU 112可使用4个位来确定固定颜色值。在一些实例中,固定颜色值可仅包含固定颜色值的RGB且可省略α值。例如,固定颜色数据可仅指示三个RGB位。在一些实例中,固定颜色值可包含固定颜色值的RGB且仅包括α值‘0’及‘1’。在一些实例中,用于表示固定颜色的位可位于元数据缓冲器860中以允许向后兼容。例如,用于表示固定颜色的位可位于位[3:1]之外,其可用于指示元数据缓冲器860中的大小、类型或其它数据。
在一些实例中,元数据缓冲器860可指示子帧的α值。例如,元数据缓冲器[5:4]=10b(例如,元数据缓冲器860的位位置4及5处的‘10’图案)可指示对应子帧中的所有像素的α值均匀地为0xFF(例如,在翻译为1 0.0...1.0颜色空间时为1.0)。换句话说,元数据缓冲器[5:4]=10b可指示对应子帧的实体压缩w_α=1 8:1压缩状态。元数据缓冲器[5:4]=10b可能不指示对应子帧中的像素的RGB值,其可能不均匀。α值对于提取彼此重叠的多个表面的显示子系统可能为有用的。例如,如果已知前表面(例如,子帧)为不透明的,那么GPU 112可避免提取与下层表面(例如,子帧)相关联的数据,因为此些表面可能是不可见的。在实例中,GPU 112可在存储元数据缓冲器860为系统存储器110之前存储位5且将5:4==10b解释为8:1经压缩或将[5:4]==10b转换成[4:2]中的8:1压缩代码。如此,RGB值可存储在四个连续块的位[7:6]及[3:0]中。在实例中,α值可预定义为0xFF。因此,如果在所有4个块[5:4]==10位中,GPU 112可使用经编码纯色。隔离的[5:4]==10b将简单地指示‘8:1经压缩’。
图9为根据本发明中所描述的一或多个实例技术的第五示范性元数据缓冲器960的说明。图9经论述有图1及2的计算装置102,仅用于示范性目的。元数据缓冲器960可包含在图1及2的系统存储器110中。在图9的实例中,用于渲染第一子帧的元数据缓冲器960指示帧的子帧集中的第二子帧包含对应于包含在第一子帧中的颜色图案、固定颜色值或其组合的颜色图案、固定颜色值或其组合。更具体地,如所展示,指示符970A指示几何上相邻的(例如,下一个或前一个子帧)包含对应于包含在条目的子帧中的颜色图案、固定颜色值或其组合的颜色图案、固定颜色值或其组合。类似地,指示符970B指示前一个子帧包含对应于包含在条目的子帧中的颜色图案、固定颜色值或其组合的颜色图案、固定颜色值或其组合。换句话说,响应于确定下一子帧(例如,子帧2)包含对应于当前颜色图案(例如,子帧1)的颜色图案、固定颜色值或其组合,GPU 112可在元数据缓冲器960中包含指示符970A。类似地,响应于确定前一子帧(例如,子帧1)包含对应于当前颜色图案(例如,子帧2)的颜色图案、固定颜色值或其组合,GPU 112可在元数据缓冲器960中包含指示符970B。
在一些实例中,GPU 112可根据第二子帧的图像数据基于元数据缓冲器960确定第一子帧的图像数据。例如,GPU 112可存取高速缓冲存储器114中的图像数据以用于渲染子帧1,而非从系统存储器110提取子帧2的图像数据。更具体地,GPU 112可将用于子帧2的图像数据指派到子帧1。另外或替代地,GPU 112可存取高速缓冲存储器114中的图像数据用于渲染子帧2,而非从系统存储器110提取子帧1的图像数据。更具体地,GPU 112可将子帧1的图像数据指派到子帧2。
GPU 112可将子帧与指示用于渲染子帧的图像数据在系统存储器110中的位置的存储器地址相关联。例如,GPU 112可添加及/或修改存储在高速缓冲存储器114及/或系统存储器110中的表中的条目,所述条目包含子帧的指示及存储器地址的指示。例如,GPU 112可将子帧与存储器地址相关联,所述存储器地址通过添加及/或修改存储在高速缓冲存储器114及/或系统存储器110中的表中的条目指示用于渲染子帧的图像数据存储在系统110中的位置,所述条目包含子帧的标识符及指示将用于渲染子帧的图像数据存储在系统存储器110中的位置的存储器地址。
GPU 112可存储用于在高速缓冲存储器114中渲染子帧的图像数据,且通过指示用于在系统存储器110中渲染子帧的图像数据的位置的存储器地址来使图像数据标引。例如,响应于从系统存储器110提取关于子帧的图像数据,GPU 112可将用于子帧的所提取图像数据存储在高速缓冲存储器114中,且根据指示用于渲染子帧的图像数据在系统存储器110中的位置的存储器地址来使用于子帧的所提取图像数据标引。
GPU 112可经配置以当图像数据在高速缓冲存储器114中可用时从高速缓冲存储器114提取图像数据,而非从系统存储器110提取图像数据。例如,响应于接收到从系统存储器110的存储器地址提取用于子帧的图像数据的指令,GPU 112可确定存储在高速缓冲存储器114中的图像数据是否被存储器地址标引。例如,GPU 112可在从系统存储器110提取图像数据之前确定图像数据是否存储在高速缓冲存储器114中。响应于确定存储在高速缓冲存储器114中的图像数据被存储器地址标引(例如,“高速缓冲存储器命中”),GPU 112可存取存储在高速缓冲存储器114中的由存储器地址标引的图像数据,而非执行从系统存储器110的提取。
在一些实例中,GPU 112可确定元数据缓冲器960是否指示第一子帧对应于第二子帧。例如,响应于确定指示符970A指示第一子帧包含对应于第二第一子帧中所包含的颜色图案、固定颜色值或其组合的颜色图案、固定颜色值或其组合,GPU确定元数据缓冲器960指示第一子帧对应于第二子帧及/或第二子帧对应于第一第二子帧。
GPU 112可将第一子帧的图像数据指派到第二子帧。例如,响应于确定元数据缓冲器960指示第一子帧对应于第二子帧,GPU 112可通过修改用于渲染第一子帧的图像数据的第一存储器地址以匹配(例如,相同于)用于渲染第二子帧的图像数据的第二存储器地址以将用于第一子帧的图像数据指派到第二子帧。在实例中,GPU 112可先前从系统存储器110提取用于渲染第二子帧的图像数据,将用于第二子帧的所提取图像数据存储在高速缓冲存储器114中,且根据指示指示用于渲染第二子帧的图像数据在系统存储器110中的位置的第二存储器地址使第二子帧的所提取图像数据标引。如此,响应于确定用于渲染第二子帧的图像数据被存储在高速缓冲存储器114中且通过匹配第二存储器地址的经修改第一存储器地址标引,GPU 112可从高速缓冲存储器114检索用于渲染第二子帧的图像数据且通过经修改的第一存储器地址而非来自系统存储器110标引。在实例中,GPU 112可根据用于渲染存储在高速缓冲存储器114中的第二子帧的图像数据且由经修改第一存储器地址标引来确定用于渲染第一子帧的图像数据。以此方式,GPU 112可使用存储在高速缓冲存储器114中的图像数据来确定用于渲染第一子帧的图像数据,而非从系统存储器110提取用于渲染第一子帧的图像数据。
图10为根据本发明中所描述的一或多个实例技术的第六示范性元数据缓冲器1060的说明。图10经论述有图1及2的计算装置102,仅用于示范性目的。元数据缓冲器1060可包含在图1及2的系统存储器110中。在图10的实例中,用于渲染第一子帧的元数据缓冲器1060指示帧的子帧集中的第二子帧包含对应于包含在第一子帧中的颜色图案、固定颜色值或其组合的颜色图案、固定颜色值或其组合。更具体地,如所展示,指示符1070B指向包含对应于包含在即时子帧中的颜色图案、固定颜色值或其组合的颜色图案、固定颜色值或其组合的另一子帧。例如,指示符1070B指向包含对应于包含在子帧2中的颜色图案、固定颜色值或其组合的颜色图案、固定颜色值或其组合的子帧1。
指示符1070可指示子帧的相对位置。例如,指示符1070可指示子帧沿着扫描次序的相对位置(例如,光栅扫描次序)。例如,指示符1070B可指示沿着子帧1、后续接着子帧2、后续接着子帧3等等的扫描次序的从子帧2返回的一个子帧的相对位置。换句话说,响应于确定子帧相对于子帧的位置(例如,沿着扫描次序返回的1子帧)包含对应于包含在条目的子帧中的颜色图案、固定颜色值或其组合的颜色图案、固定颜色值或其组合,GPU 112可在元数据缓冲器1060中包含指示符1070B。类似地,指示符1070C指示子帧相对于子帧的位置(例如,沿着扫描次序返回的2个子帧),所述子帧包含对应于包含在条目的子帧中的颜色图案、固定颜色值或其组合的在颜色图案、固定颜色值或其组合。换句话说,响应于确定子帧相对于子帧的位置(例如,沿着扫描次序返回的2子帧)包含对应于包含在条目的子帧中的颜色图案、固定颜色值或其组合的颜色图案、固定颜色值或其组合,GPU 112可在元数据缓冲器1060中包含指示符1070C。
在一些实例中,指示符1070可用于线性地跟踪邻域子帧。例如,如果子帧在帧的行内,那么后面的子帧可具有与行的另一(例如,第一)子帧相同的颜色图案、固定颜色值或其组合。在实例中,指示符1070可为单个位,指示对应的子帧不具有在系统存储器110中缓冲的数据。替代地,如所展示,指示符1070可指示需要追溯多少个子帧以用于检索帧子的图像数据。这样,GPU 112可根据指示符1070确定用于检索子帧的图像数据的指针。例如,子帧1可不匹配其它帧,因为GPU 112可首先处理子帧1,子帧2可匹配子帧1,子帧3可匹配子帧1及2,子帧4可匹配子帧3、2及1,等等。
图11为根据本发明中所描述的一或多个实例技术的第七示范性元数据缓冲器1160的说明。图11经论述有图1及2的计算装置102,仅用于示范性目的。元数据缓冲器1160可包含在图1及2的系统存储器110中。在图11的实例中,用于渲染子帧的元数据缓冲器1160包含指示符1170A,其指示子帧对应于颜色词典1171中的条目。换句话说,响应于确定用于渲染子帧的图像数据对应于颜色字典1171中的条目,GPU 112可在元数据缓冲器1160中包含指示符1170A。
在一些实例中,元数据缓冲器1160的部分可经配置以在颜色字典1171中存储一或多个固定颜色值。例如,元数据缓冲器1160可经配置以存储8个固定颜色值。在实例中,响应于GPU 112确定子帧包含尚未存储在元数据缓冲器1160的颜色字典1171中的固定颜色值,GPU 112可将子帧的固定颜色值存储在元数据缓冲器中在颜色字典1171的槽中的元数据缓冲器1160并设置指示符1170以指示含有固定颜色值的槽。例如,固定颜色值可存储在颜色字典1171的第一槽(‘1’)中,而指示符1170可指示‘001’。在实例中,GPU 112可存储对应于颜色字典1171中的多个槽的多个固定颜色值。例如,在颜色字典1171包含8个槽且指示符1170包含3个位的那些情况下,GPU 112可存储颜色字典1171中的前8个独特固定颜色值。
在一些实例中,GPU 112在确定用于渲染第一子帧的图像数据之前,根据用于帧的所述子帧集中的第二子帧的图像数据,生成对应于颜色字典1171中的条目的图像数据。例如,GPU 112在确定用于渲染子帧4的图像数据之前根据用于子帧所述子帧集中的子帧2的图像数据生成对应于颜色字典1171中的条目(例如,颜色字典‘1’)的图像数据。在实例中,响应于确定当前子帧4对应于颜色字典中的条目(例如,颜色字典‘1’),GPU 112以在元数据缓冲器1160中包含指示子帧(例如,子帧4)对应于颜色字典中的条目(例如,颜色字典‘1’)的指示符1170D。在实例中,GPU 112可通过根据对应于颜色字典(例如,颜色字典‘1’)中的条目的图像数据确定用于渲染第一子帧的图像数据来确定用于渲染第一子帧(例如,子帧4)的图像数据。GPU 112可经配置以根据用于渲染帧中的子帧的次序用固定颜色值填充颜色字典1071。换句话说,GPU 112可根据子帧的前N个固定颜色值生成颜色字典1071,其中N为颜色字典1071中的槽的数量。
在一些实例中,GPU 112可根据用于前一帧的子帧的图像数据生成颜色字典1171。例如,GPU 112在确定用于渲染当前帧的图像数据之前,根据前一帧的一或多个子帧的图像数据生成颜色字典1171。例如,GPU 112存储用于以颜色字典1171的固定颜色值‘1’渲染前一帧的第一子帧的第一固定颜色值,用于在颜色字典1171的固定颜色值‘2’中渲染前一帧的第二子帧的第二固定颜色值。依此类推。在一些实例中,GPU 112可在颜色字典1071中存储来自前一帧的N数目个固定颜色值。在一些实例中,GPU 112可将来自前一帧的N数目个固定颜色值存储在颜色字典1071中,所述固定颜色值为前一帧的最频繁使用的固定颜色值。如此,GPU 112可避免在颜色字典1071中存储不常使用但在帧早期由GPU 112处理的固定颜色值。
图12为根据本发明中所描述的一或多个实例技术的第八示范性元数据缓冲器1260的说明。图12经论述有图1及2的计算装置102,仅用于示范性目的。元数据缓冲器1260可包含在图1及2的系统存储器110中。在图12的实例中,用于渲染子帧的元数据缓冲器1260包含固定颜色数据流1271是否指示对应于所述条目的固定颜色的指示。例如,指示符1270B可指示4字节颜色存储在固定颜色数据流1271中。换句话说,响应于确定子帧包含固定颜色值,GPU 112可将固定颜色值存储在固定颜色数据流1271中且在元数据缓冲器1260中包含指示符1270B。在实例中,GPU 112可从高速缓冲存储器114中检索固定颜色数据流1271。例如,如所展示,固定颜色数据流1271包含用于子帧(例如,图块)X+1及X+3的固定颜色值.然而,在所述实例中,指示符1270A指示子帧X不包含存储在固定颜色数据流1271中的固定颜色值。换句话说,响应于确定子帧不包含固定颜色值,GPU 112可在元数据缓冲器1260中包含指示符1270A。在实例中,GPU 112可从数据缓冲器242检索子帧X的图像数据。
在一些实例中,固定颜色数据流1271可存储在系统存储器110中。在实例中,GPU112可从系统存储器110检索固定颜色数据流1271,且将固定颜色数据流1271存储在高速缓冲存储器114中。如此,从系统存储器110的单次提取可存储用于多个子帧的图像数据。例如,32字节提取可检索8个不同子帧的图像数据,其中每一子帧具有4个字节的图像数据。如此,GPU 112可在固定颜色数据流1271中指示8个不同子帧中的每一者的不同颜色及α的任何变化。以此方式,如果所有8个子帧具有固定颜色值或固定颜色值,那么可实现1:64的压缩比。如果少于所有8个子帧具有固定颜色值或多个固定颜色值,那么可实现1:4与1:64之间的压缩比(即,如果少于8个子帧具有固定颜色值,那么压缩比不会减小)。如果8个子帧中仅1个子帧具有固定颜色值,那么GPU 112可经配置以避免提取固定颜色数据流1271。
在一些实例中,当使用固定颜色数据流1271时,当几何次序中的8或4个子帧具有相同颜色时,GPU 112可实现32:2048或32:1024压缩(1:64及1:32)。在一些实例中,GPU 112可实现1:4压缩比(MAL=32B)或以1:8比例(MAL=64B)。与省略固定颜色数据流1271的系统相比,使用固定颜色数据流1271的系统可具有更好的压缩比而不改变元数据缓冲器1260的大小。
应理解,使用固定颜色数据流1271的技术可经配置以支持所有固定颜色值及α值。在一些情况下,使用固定颜色数据流1271的技术可具有与固定颜色子帧的数目成比例的压缩比。
图13为根据本发明中所描述的一或多个实例技术的第九示范性元数据缓冲器1360的说明。图13经论述有图1及2的计算装置102,仅用于示范性目的。元数据缓冲器1360可包含在图1及2的系统存储器110中。在图13的实例中,用于渲染第一子帧的元数据缓冲器1360包含指示子帧1369的子集与颜色图案及/或固定颜色值相关联的相似子帧指示符1370。如本文中所使用的,与颜色图案相关联的子帧可指子帧具有与颜色图案相同的图像数据的情况。应理解,颜色图案可能不是均匀的或实心的。
GPU 12可确定子帧是否具有相同的图像数据。例如,GPU 112可针对每一子帧的图像数据生成表征相应子帧的内容的“签名”(例如,64位)。如果后续子帧的签名(例如,在4的组中)与初始签名匹配,那么GPU 112可指示(例如,在元数据1360中)颜色图案为相似的(例如,相同)。
GPU 112可使用来自系统存储器110的第一提取来处理子帧1369的子集,且防止读取随后子帧。例如,GPU 112可将由类似子帧指示符1370指示为具有相似子帧的多个子帧确定为且GPU 112可随机处理(例如,未在预定扫描顺序中处理)所确定的子帧(例如,子帧1369)。如本文中所使用的,当子帧具有对应的颜色图案及/或对应的固定颜色值时,子帧可为类似的。例如,GPU 112可通过将图像数据存储到系统存储器110来处理子帧1。在实例中,响应于确定子帧4类似于子帧1,GPU 112可通过以下方式处理子帧4:在类似的子帧指示符1370中指示子帧4类似于子帧1。如此,GPU 112可通过从系统存储器110提取图像数据来处理子帧1并将所提取图像数据存储到高速缓冲存储器114中,使得可使用高速缓冲存储器114中的先前提取的图像数据而非系统存储器110中的图像数据来渲染子帧4。以此方式,使用类似子帧指示符1370的系统可减少从系统存储器110提取的数目且增加由于填充减少导致的压缩比。
在示范性技术中,GPU 112可通过将子帧1的图像数据存储在系统存储器110中来渲染子帧1。响应于确定子帧4类似于子帧1(例如,子帧4具有对应于子帧1的图像数据相对应的图像数据),GPU 112使用类似的子帧指示符1370指示子帧4类似于子帧1。响应于指示子帧4类似于子帧1,GPU 112可避免在系统存储器110中写入用于子帧4的图像数据。在一些实例中,响应于指示子帧4类似于子帧1,GPU 112可避免提取系统存储器110中的用于子帧4的图像数据。在一些实例中,如果任何随后子帧(例如,子帧5及7)类似于子帧1,那么GPU112可禁止在系统存储器110中写入此类子帧的图像数据,及/或GPU 112可避免从系统存储器110提取用于此些子帧4的图像数据。以此方式,对于基本状况,GPU可实现8:1的图像数据的压缩比,当两个子帧相似(例如,相同)时,为16:1,当3个子帧相似时为24:1,当4个子帧相同时为32:1。
图14为根据本发明中所描述的一或多个实例技术的第十示范性元数据缓冲器1460的说明。图14经论述有图1及2的计算装置102,仅用于示范性目的。元数据缓冲器1460可包含在图1及2的系统存储器110中。在图14的实例中,用于渲染第一子帧的元数据缓冲器1460包含阻挡指示器1470,其指示子帧何时被阻挡(例如,完全阻塞)。例如,响应于确定阻挡指示符1470B指示子帧2被完全阻挡,GPU 112可避免从系统存储器110提取图像数据。更具体地,响应于确定更高(例如,顶部)帧的子帧为完全不透明的且子帧2被较高帧的子帧完全阻挡,GPU 112可在元数据缓冲器1460中包括指示符1470B。在实例中,GPU 112可从系统存储器110提取图像数据用于渲染高帧的子帧。以此方式,GPU 112可避免提取由不透明帧阻挡的较低帧的子帧的图像数据。
图15为根据本发明中所描述的一或多个实例技术说明可被压缩为透明或固定颜色的子帧的百分比的曲线图。如所展示,使用前15种颜色的颜色字典的第一状况1502可导致提取数量减少90%以上。使用8个子帧的分组的第二状况1504,其中每一子帧的元数据缓冲器指示固定颜色的部分可导致提取数量的减少超过80%。使用固定颜色数据流的第三状况1506可导致提取的数量减少超过90%。
图16为根据本发明中所描述的一或多个实例技术说明具有固定颜色值的子帧的压缩比的曲线图。在图16的实例中,从系统存储器(例如,图1及2的系统存储器110)提取固定颜色数据流。如所展示,如果八个子帧各自使用相同的固定颜色,那么八个子帧的最终压缩比为64。如果七个子帧各自使用相同的固定颜色,那么七个子帧的最终压缩比为56。如果六个子帧各自使用相同的固定颜色,那么六个子帧的所得压缩比为48。如果五个子帧各自使用相同的固定的颜色,那么五个子帧的所得压缩比为40。如果四个子帧各自使用相同的固定颜色,那么所述四个子帧的所得压缩比为32。如果三个子帧各自使用相同固定颜色,那么所述三个子帧的所得压缩比为24岁。如果两个子帧各自使用相同固定颜色,那么两个子帧的所得压缩比为16。如果一个子帧具有固定颜色,那么一个子帧的所得压缩比为8。
图17为根据本发明中所描述的一或多个实例技术说明颜色子帧的聚类的图。如所展示,大多数固定颜色子帧聚集在8个子帧的组中。
图18为根据本发明中所描述的技术说明产生元数据缓冲器的实例第一方法的流程图。图18经论述有图1及2的计算装置102,仅用于示范性目的。最初,GPU 112确定子帧是否包含颜色图案或固定颜色值(1802)。例如,GPU 112可处理子帧的图像数据以确定子帧中的每一像素为固定颜色值还是子帧中的每一像素是否可由颜色图案表示。响应于确定子帧包含颜色图案或固定颜色值(1802的“是”),压缩器232可压缩用于子帧的图像数据(1804)。压缩器232可在元数据缓冲器260中生成条目,所述条目指示子帧包含颜色图案或固定颜色值,并指示子帧的数据块大小(1806)。例如,压缩器232可根据子帧的图像数据的压缩率指示数据块大小,且将固定颜色值嵌入元数据缓冲器260中。在一些情况下,压缩器232可根据用于子帧的图像数据的压缩比率指示数据块大小,且在元数据缓冲器260中指示指向另一子帧的指针,所述子帧具有对应于子帧的固定颜色值或颜色图案对应的固定颜色值或颜色图案。GPU 112致使系统存储器110将用于子帧的图像数据写入到具有块大小的数据块(1808)。
然而,响应于确定子帧不包含颜色图案或固定颜色值(1802的“否”),压缩器232可压缩子帧的图像数据(1820)。压缩器232可在元数据缓冲器260中生成条目,所述条目指示子帧不包含颜色图案或固定颜色值,并指示子帧的数据块大小(1822)。GPU 112致使系统存储器110将子帧的图像数据写入到具有块大小的数据块(1824)。
图19为说明根据本发明中所描述的技术生成元数据缓冲器的示范性第二方法的流程图。图19经描述有图1及2的计算装置102,仅用于示范性目的。图19类似于图18。除了压缩器232可在元数据缓冲器中生成指示子帧包含颜色图案或固定颜色值的条目之外(1910)。例如,压缩器232可避免指示子帧的数据块大小且在元数据缓冲器中嵌入固定颜色值。在一些情况下,压缩器232可避免指示子帧的数据块大小,并指示具有对应于子帧的固定颜色值或颜色图案的固定颜色值或颜色图案的另一子帧。GPU 112避免致使系统存储器110将子帧的图像数据写入到具有块大小的数据块(1912)。以此方式,可进一步减少对系统存储器110的读取/写入操作,因为子帧的图像数据不被写入到系统存储器110。
图20为说明根据本发明中所描述的技术确定用于渲染子帧的图像数据的实例方法的流程图。图20经论述有图1及图2的计算装置102,仅用于示范性目的。最初,GPU112检索用于渲染帧的子帧集中的子帧的元数据缓冲器(2002)。例如,GPU 112检索元数据缓冲器260存储系统存储器110。GPU 112确定子帧是否包括颜色图案或固定颜色值(2004)。例如,GPU 112确定子帧的元数据缓冲器中的指示符是否指示子帧包含颜色图案或固定颜色。响应于确定子帧包含颜色图案或固定颜色值(2004的“是”),GPU 112可避免从数据缓冲器242的数据块提取图像数据(2006)并确定用于渲染子帧的图像数据(2008)。例如,GPU 112可根据包含在元数据缓冲器中的嵌入固定颜色值、包含在元数据缓冲器中的指针、包含在元数据缓冲器中的颜色字典、包含在元数据缓冲器中的固定颜色数据流、从系统存储器110提取的固定颜色数据流或使用其它信息来确定用于渲染子帧的图像数据。然而,响应于确定子帧不包含颜色图案或固定颜色值(2004的“否”),GPU 112可从数据缓冲器242的数据块检索(例如,提取)图像数据(2020)。
在一或多个实例中,所描述的功能可以硬件、软件、固件或其任何组合实施。如果以软件实施,那么所述功能可作为一或多个指令或代码存储于计算机可读媒体上且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于例如数据存储媒体的有形媒体。以此方式,计算机可读媒体通常可对应于非暂时性的有形计算机可读存储媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中所描述的技术的指令、代码及/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
通过实例的方式且非限制性,此些计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光学磁盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用于以指令或数据结构的形式存储所要代码且可由计算机存取的其它媒体。应理解,计算机可读存储媒体及数据存储媒体不包含载波、信号或其它暂时性媒体,但替代地针对非暂时性、有形存储媒体。如本文中所使用,磁盘及光盘包含光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘通过激光以光学方式再现数据。上述各项的组合还应包含在计算机可读媒体的范围内。
指令可由一或多个处理器执行,例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指前述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可提供在经配置以用于编码及解码或并入于组合式编解码器中的专用硬件及/或软件模块内。此外,技术可以一或多个电路或逻辑元件来完全实施。
本发明的技术可以广泛各种装置或装备(包含无线手机、集成电路(IC)或IC组(例如,芯片组))实施。各种组件、模块或单元在本发明中经描述以强调经配置以执行所揭示技术的装置的功能方面,而未必需要由不同硬件单元实现。确切来说,如上文所描述,各种单元可以编解码硬件单元组合或通过交互操作硬件单元(包含如上文所描述的一或多个处理器)的集合结合适合软件及/或固件提供。
已描述各种实例。这些及其它实例在以下权利要求书的范围内。

Claims (15)

1.一种方法,其包括:
检索用于渲染帧的子帧集中的第一子帧的第一元数据,其中所述第一子帧包含第一颜色图案、第一固定颜色值或其第一组合,其中所述第一元数据包含指示第二子帧包含对应于所述第一子帧中所包含的所述第一颜色图案、所述第一固定颜色值或其所述第一组合的第二颜色图案、第二固定颜色值或其第二组合的指针,且其中数据缓冲器的数据块经配置以存储用于渲染所述第一子帧的第一图像数据;及
响应于基于所述第一元数据确定所述第一子帧包含对应于所述第二颜色图案、所述第二固定颜色值或其所述第二组合的所述第一颜色图案、所述第一固定颜色值或其所述第一组合而执行以下操作:
避免从所述数据块检索所述第一图像数据;
从所述数据缓冲器检索用于所述第二子帧的第二图像数据;及
将所述第二图像数据指派到所述第一子帧。
2.根据权利要求1所述的方法,其中所述指针指示所述第二子帧在所述帧中与所述第一子帧在几何上相邻。
3.根据权利要求1所述的方法,其中所述指针指示所述第一子帧相对于所述第二子帧的位置。
4.根据权利要求1所述的方法,其中所述第一元数据指示第一子帧被阻挡,所述方法进一步包括:
响应于确定所述第一元数据指示所述第一子帧被阻挡,避免从所述数据块检索所述第一图像数据。
5.根据权利要求1所述的方法,其进一步包括:
接收用于渲染所述第一子帧的未经压缩图像数据;及
压缩用于渲染所述第一子帧的所述未经压缩图像数据以生成所述第一图像数据,其中所述第一元数据指示用以存储所述第一图像数据的所述数据块的大小。
6.根据权利要求1所述的方法,其进一步包括:
在检索所述第一元数据之前,将所述第一图像数据存储在所述数据块中。
7.一种装置,其包括:
数据缓冲器,其经配置以存储数据块,其中所述数据块经配置以存储用于渲染帧的子帧集中的第一子帧的第一图像数据,其中所述第一子帧包含第一颜色图案、第一固定颜色值或其第一组合;
元数据缓冲器,其经配置以存储用于渲染所述第一子帧的第一元数据,其中所述第一元数据包含指示第二子帧包含对应于所述第一子帧中所包含的所述第一颜色图案、所述第一固定颜色值或其所述第一组合的第二颜色图案、第二固定颜色值或其第二组合的指针;及
处理器,其包括集成电路,所述处理器经配置以:
响应于基于所述第一元数据确定所述第一子帧包含对应于所述第二颜色图案、所述第二固定颜色值或其所述第二组合的所述第一颜色图案、所述第一固定颜色值或其所述第一组合而执行以下操作:
避免从所述数据块检索所述第一图像数据;
从所述数据缓冲器检索用于所述第二子帧的第二图像数据;及
将所述第二图像数据指派到所述第一子帧。
8.根据权利要求7所述的装置,其中所述指针指示所述第二子帧在所述帧中与所述第一子帧在几何上相邻。
9.根据权利要求7所述的装置,其中所述指针指示所述第一子帧相对于所述第二子帧的位置。
10.根据权利要求7所述的装置,其中所述第一元数据指示第一子帧被阻挡,所述处理器经进一步配置以:
响应于确定所述第一元数据指示所述第一子帧被阻挡,避免从所述数据块检索所述第一图像数据。
11.根据权利要求7所述的装置,其中所述处理器经进一步配置以:
接收用于渲染所述第一子帧的未经压缩图像数据;及
压缩用于渲染所述第一子帧的所述未经压缩图像数据以生成所述第一图像数据,其中所述第一元数据指示用以存储所述第一图像数据的所述数据块的大小。
12.根据权利要求7所述的装置,其中所述处理器经进一步配置以:
在检索所述第一元数据之前,将所述第一图像数据存储在所述数据块中。
13.一种装置,其包括:
数据缓冲器,其经配置以存储数据块,其中所述数据块经配置以存储用于渲染帧的子帧集中的第一子帧的第一图像数据;
元数据缓冲器,其经配置以存储用于渲染所述第一子帧的第一元数据,其中所述第一元数据包含指示特定颜色值的一组部分中的第一部分;及
处理器,其包括集成电路,所述处理器经配置以:
响应于基于所述第一元数据确定所述第一子帧包含第一颜色图案、第一固定颜色值或其第一组合而执行以下操作:
避免从所述数据块检索所述第一图像数据;
基于用于渲染第二子帧的第二元数据,确定指示所述特定颜色值的所述一组部分中的第二部分;
基于所述第一部分及所述第二部分确定用于所述第一子帧的固定颜色值;及
将所述第一子帧的所述固定颜色值指派到所述第一子帧的每一像素。
14.一种装置,其包括:
高速缓冲存储器;
系统存储器,其包括:
数据缓冲器,其经配置以存储数据块,其中所述数据块经配置以存储用于渲染帧的子帧集中的第一子帧的第一图像数据,其中所述第一子帧与第一存储器地址相关联,所述第一存储器地址指示所述第一图像数据存储在所述系统存储器中的位置,其中第二子帧与第二存储器地址相关联,所述第二存储器地址指示用于渲染所述第二子帧的第二图像数据存储在所述系统存储器中的位置,且其中所述第二图像数据存储在所述高速缓冲存储器中并由所述第二存储器地址标引;及
元数据缓冲器,其经配置以存储用于渲染所述第一子帧的第一元数据;及
处理器,其包括集成电路,所述处理器经配置以响应于基于所述第一元数据确定所述第一子帧包含颜色图案、固定颜色值或其组合而执行以下操作:
避免从所述数据块检索所述第一图像数据;
基于所述第一元数据且基于所述第二子帧确定所述第一图像数据,其中为了确定所述第一图像数据,所述处理器经配置以:
响应于确定所述第一元数据指示所述第一子帧对应于所述第二子帧,修改所述第一子帧的所述第一存储器地址以匹配所述第二子帧的所述第二存储器地址;
响应于确定所述第二图像数据存储在所述高速缓冲存储器中且被经修改第一存储器地址标引,从所述高速缓冲存储器检索所述第二图像数据;及
根据存储在所述高速缓冲存储器中并由所述经修改第一存储器地址标引的所述第二图像数据,确定所述第一图像数据。
15.一种非暂时性计算机可读存储介质,其存储指令,所述指令在被执行时致使一或多个处理器进行以下操作:
检索用于渲染帧的子帧集中的第一子帧的第一元数据,其中所述第一子帧包含第一颜色图案、第一固定颜色值或其第一组合,其中所述第一元数据包含指示第二子帧包含对应于所述第一子帧中所包含的所述第一颜色图案、所述第一固定颜色值或其所述第一组合的第二颜色图案、第二固定颜色值或其第二组合的指针,且其中数据缓冲器的数据块经配置以存储用于渲染所述第一子帧的第一图像数据;及
响应于基于所述第一元数据确定所述第一子帧包含对应于所述第二颜色图案、所述第二固定颜色值或其所述第二组合的所述第一颜色图案、所述第一固定颜色值或其所述第一组合而执行以下操作:
避免从所述数据块检索所述第一图像数据;
从所述数据缓冲器检索用于所述第二子帧的第二图像数据;及
将所述第二图像数据指派到所述第一子帧。
CN201780071810.8A 2016-12-13 2017-10-20 用于固定颜色及图案子帧的提取减少 Active CN109983533B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/377,801 US10445902B2 (en) 2016-12-13 2016-12-13 Fetch reduction for fixed color and pattern sub-frames
US15/377,801 2016-12-13
PCT/US2017/057637 WO2018111402A1 (en) 2016-12-13 2017-10-20 Fetch reduction for fixed color and pattern sub-frames

Publications (2)

Publication Number Publication Date
CN109983533A CN109983533A (zh) 2019-07-05
CN109983533B true CN109983533B (zh) 2021-03-23

Family

ID=60268471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780071810.8A Active CN109983533B (zh) 2016-12-13 2017-10-20 用于固定颜色及图案子帧的提取减少

Country Status (3)

Country Link
US (1) US10445902B2 (zh)
CN (1) CN109983533B (zh)
WO (1) WO2018111402A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US10546393B2 (en) * 2017-12-30 2020-01-28 Intel Corporation Compression in machine learning and deep learning processing
US11200636B2 (en) * 2018-11-30 2021-12-14 Mediatek Inc. Method and apparatus for generating a series of frames with aid of synthesizer to offload graphics processing unit rendering in electronic device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7965902B1 (en) * 2006-05-19 2011-06-21 Google Inc. Large-scale image processing using mass parallelization techniques
CN105574924A (zh) * 2014-10-31 2016-05-11 三星电子株式会社 渲染方法、渲染设备和电子设备
CN106030652A (zh) * 2013-12-11 2016-10-12 Arm有限公司 针对频繁变化区域避免使用帧缓冲器显示输出面的方法和设备
CN107209923A (zh) * 2015-02-10 2017-09-26 高通股份有限公司 图形处理中的混合渲染

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7450120B1 (en) * 2003-12-19 2008-11-11 Nvidia Corporation Apparatus, system, and method for Z-culling
US9406155B2 (en) 2009-09-25 2016-08-02 Arm Limited Graphics processing systems
KR101602939B1 (ko) * 2009-10-16 2016-03-15 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
US9899007B2 (en) 2012-12-28 2018-02-20 Think Silicon Sa Adaptive lossy framebuffer compression with controllable error rate
US9460527B2 (en) 2013-02-04 2016-10-04 Qualcomm Incorporated Pattern mode for frame buffer compression
WO2014145003A1 (en) 2013-03-15 2014-09-18 Ostendo Technologies, Inc. Dynamic gamut display systems, methods, and applications thereof
WO2014193531A1 (en) 2013-05-31 2014-12-04 Intel Corporation Semi-fixed-hue gamut compression
US9947071B2 (en) 2014-06-27 2018-04-17 Samsung Electronics Co., Ltd. Texture pipeline with online variable rate dictionary compression
GB201414204D0 (en) 2014-08-11 2014-09-24 Advanced Risc Mach Ltd Data processing systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7965902B1 (en) * 2006-05-19 2011-06-21 Google Inc. Large-scale image processing using mass parallelization techniques
CN106030652A (zh) * 2013-12-11 2016-10-12 Arm有限公司 针对频繁变化区域避免使用帧缓冲器显示输出面的方法和设备
CN105574924A (zh) * 2014-10-31 2016-05-11 三星电子株式会社 渲染方法、渲染设备和电子设备
CN107209923A (zh) * 2015-02-10 2017-09-26 高通股份有限公司 图形处理中的混合渲染

Also Published As

Publication number Publication date
CN109983533A (zh) 2019-07-05
US20180165789A1 (en) 2018-06-14
WO2018111402A1 (en) 2018-06-21
US10445902B2 (en) 2019-10-15

Similar Documents

Publication Publication Date Title
US10866990B2 (en) Block-based lossless compression of geometric data
US10991127B2 (en) Index buffer block compression
CN107209923B (zh) 图形处理中的混合渲染
US8547382B2 (en) Video graphics system and method of pixel data compression
TWI582751B (zh) 避免發送未改變區域至顯示器之技術
US9159114B2 (en) Texture decompression for graphics processors
EP3350766B1 (en) Storing bandwidth-compressed graphics data
US10078883B2 (en) Writing graphics data from local memory to system memory
US10580151B2 (en) Tile-based low-resolution depth storage
US20140146064A1 (en) Graphics memory load mask for graphics processing
CN109983533B (zh) 用于固定颜色及图案子帧的提取减少
US20160180548A1 (en) Indefinite texture filter size for graphics processing
CN106575428B (zh) 图形处理单元中的高阶滤波
US20190087930A1 (en) Adding metadata to texture surfaces for bandwidth compression
CN112991143A (zh) 一种图元装配的方法、装置及计算机存储介质
US9471310B2 (en) Method, computer program product, and system for a multi-input bitwise logical operation
US10157443B1 (en) Deferred batching of incremental constant loads
US12008677B2 (en) Compatible compression for different types of image views

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