CN108027955A - 经带宽压缩的图形数据的存储技术 - Google Patents

经带宽压缩的图形数据的存储技术 Download PDF

Info

Publication number
CN108027955A
CN108027955A CN201680052326.6A CN201680052326A CN108027955A CN 108027955 A CN108027955 A CN 108027955A CN 201680052326 A CN201680052326 A CN 201680052326A CN 108027955 A CN108027955 A CN 108027955A
Authority
CN
China
Prior art keywords
data
bandwidth reduction
block
graph data
stored
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.)
Granted
Application number
CN201680052326.6A
Other languages
English (en)
Other versions
CN108027955B (zh
Inventor
安德鲁·埃文·格鲁贝尔
雷克斯福德·艾伦·希尔
沙姆巴富·坎德瓦勒
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 CN108027955A publication Critical patent/CN108027955A/zh
Application granted granted Critical
Publication of CN108027955B publication Critical patent/CN108027955B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/08Bandwidth reduction

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Memory System (AREA)
  • Image Processing (AREA)

Abstract

一种计算装置可在存储器中分配多个块,其中所述多个块中的每一个在所述存储器中具有一致的固定大小。所述计算装置可进一步将多个经带宽压缩的图形数据存储到所述存储器中的所述相应多个块中,其中所述多个经带宽压缩的图形数据中的一个或多个各自具有小于所述固定大小的大小。所述计算装置可进一步将与所述多个经带宽压缩的图形数据相关联的数据存储到含有所述多个经带宽压缩的图形数据中的所述相应一个或多个的所述多个块中的一个或多个的未使用空间中。

Description

经带宽压缩的图形数据的存储技术
技术领域
本发明涉及数据存储,且更特定来说涉及将经带宽压缩的图形数据存储在存储器中。
背景技术
提供用于在电子显示器上视觉呈现的内容的装置通常包含图形处理单元(GPU)。GPU在显示器上显现表示内容的像素。GPU生成显示器上的每一像素的一或多个像素值,并对显示器上的每一像素的像素值执行图形处理,以显现用于呈现的每一像素,所述图形处理对由光栅化级生成的片段执行片段着色。
发明内容
本发明的技术大体上涉及用于将多个经带宽压缩的图形数据,连同与多个经带宽压缩的图形数据相关联的额外数据存储在存储器中的技术。多个经带宽压缩的图形数据的大小可不同,且多个经带宽压缩的图形数据在存储器中被存储到可容纳多个经带宽压缩的图形数据中的最大经带宽压缩的图形数据的一致大小块中。因此,将多个经带宽压缩的图形数据存储到存储器中的一致大小块中可导致存储器中存储多个经带宽压缩的图形数据的块中的一些中剩余未使用空间。存储器中的一些块中的此类未使用空间可用以存储与多个经带宽压缩的图形数据相关联的额外数据,例如与多个经带宽压缩的图形数据相关联的深度数据或识别多个经带宽压缩的图形数据中的每一个的散列码。
在本发明的一个实例中,一种用于图形处理的方法可包含:由至少一个处理器将多个经带宽压缩的图形数据存储到存储器中的相应多个块中,其中所述多个块中的每一个在所述存储器中具有一致的固定大小,且其中所述多个经带宽压缩的图形数据中的一个或多个具有小于所述固定大小的大小。所述过程可进一步包含:由所述至少一个处理器将与所述多个经带宽压缩的图形数据相关联的数据存储到含有所述多个经带宽压缩的图形数据中的所述相应一个或多个的所述多个块中的一个或多个的未使用空间中。
在本发明的另一实例中,一种配置成处理图形数据的设备可包含存储器。所述设备可进一步包含至少一个处理器,其被配置成:将多个经带宽压缩的图形数据存储到存储器中的相应多个块中,其中所述多个块中的每一个在所述存储器中具有一致的固定大小,且其中所述多个经带宽压缩的图形数据中的一个或多个具有小于所述固定大小的大小;以及将与所述多个经带宽压缩的图形数据相关联的数据存储到含有所述多个经带宽压缩的图形数据中的所述相应一个或多个的所述多个块中的一个或多个的未使用空间中。
在本发明的另一实例中,一种设备可包含:用于将多个经带宽压缩的图形数据存储到存储器中的相应多个块中的装置,其中所述多个块中的每一个在所述存储器中具有一致的固定大小,且其中所述多个经带宽压缩的图形数据中的一个或多个具有小于所述固定大小的大小。所述设备可进一步包含:用于将与所述多个经带宽压缩的图形数据相关联的数据存储到含有所述多个经带宽压缩的图形数据中的所述相应一个或多个的所述多个块中的一个或多个的未使用空间中的装置。
附图和以下描述中阐述一或多个实例的细节。其它特征、目标和优势将从所述描述和图式以及从权利要求书而显而易见。
附图说明
图1是说明实例计算装置的框图,所述计算装置可被配置成实施用于将经带宽压缩的图形数据存储在存储器中的本发明的一或多个方面。
图2是更详细地说明图1的CPU、GPU和系统存储器的实例实施方案的框图。
图3A到3F是说明用于将经带宽压缩的图形数据存储在存储器中的实例技术的概念图。
图4是说明用于将经带宽压缩的图形数据存储在存储器中的实例过程的流程图。
具体实施方式
经带宽压缩的图形数据是受到压缩,从而使得可通过计算装置的总线更快速地进行传送的图形数据。在计算装置的图形处理单元(GPU)对图形数据(例如表面)执行图形处理操作时,计算装置可通过GPU与存储器之间或不同存储器之间的总线传送所述表面。举例来说,计算装置可通过将两个不同表面从存储器传送到GPU以执行合成操作,并将所得合成表面从GPU传送回到存储器,执行组合那两个表面的合成操作。因此,通过经由压缩来减小表面的大小,计算装置可在计算装置的组件之间更快速地传送表面,借此改进计算装置的性能。
计算装置可通过将表面划分成子区域,并压缩表面子区域中的每一个以生成多个经带宽压缩的图形数据,执行表面的带宽压缩。由于表面子区域之间存在内容差异,多个经带宽压缩的图形数据的大小可能不同。举例来说,相比含有许多不同色彩的像素的另一表面子区域,计算装置可能够将一致含有单一色彩的像素的表面子区域压缩成相对较小的大小。
计算装置可将多个经带宽压缩的图形数据存储到计算装置在存储器中分配的多个一致大小块中。块中的每一个都足够大以含有多个经带宽压缩的图形数据中的最大图形数据。因为多个块中的每一个大小相同而多个经带宽压缩的图形数据的大小可能不同,所以将多个经带宽压缩的图形数据存储到多个块中可能会导致块中的一个或多个各自具有未由存储在块中的相应经带宽压缩的图形数据所占用的未使用空间。
根据本发明的方面,计算装置可将与多个经带宽压缩的图形数据相关联的其它数据存储到块中的一个或多个的未使用空间中。举例来说,并非将与多个经带宽压缩的图形数据相关联的深度数据存储到存储器中的单独区域(例如,块)中,计算装置可实际上将此深度数据存储在块中的一个或多个的未使用空间中。类似地,计算装置可将识别多个经带宽压缩的图形数据中的每一个的散列码存储在块中的一个或多个的未使用空间中。以此方式,计算装置可利用多个块中的未使用空间来存储与多个经带宽压缩的图形数据相关联的额外数据,借此增大计算装置的存储器利用效率。
计算装置可存储到一或多个块的未使用空间中的其它数据可为优化表面,这是因为计算装置可使用此数据来优化对图形数据的图形操作的性能。举例来说,计算装置可利用深度数据来增大其显现相关联图形数据的性能,同时计算装置可利用散列码来增大其对图形数据的某些图形操作的性能。因而,计算装置可将除了深度数据或散列码的任何数目个额外数据存储到一或多个块的未使用空间中,包含存储可用于优化图形数据显现的额外优化表面。
图1是说明实例计算装置的框图,所述计算装置可被配置成实施用于将经带宽压缩的图形数据存储在存储器中的本发明的一或多个方面。如图1中所示,装置2可为包含但不限于以下各项的计算装置:视频装置、媒体播放器、机顶盒、无线手持机(例如移动电话和所谓的智能电话)、个人数字助理(PDA)、台式计算机、膝上型计算机、游戏控制台、视频会议单元、平板计算装置等。在图1的实例中,装置2可包含中央处理单元(CPU)6、系统存储器10和GPU 12。装置2还可包含显示处理器14、收发器模块3、用户接口4和显示器8。收发器模块3和显示处理器14两者可为与CPU 6和/或GPU 12相同的集成电路(IC)的一部分,两者可在包含CPU 6和/或GPU 12的一或多个IC的外部,或可形成于在包含CPU 6和/或GPU 12的IC外部的IC中。
出于清晰的目的,装置2可包含图1中未示的额外模块或单元。举例来说,装置2可包含扬声器和麦克风(均未在图1中示出),以在装置2为移动无线电话或扬声器(其中装置2为媒体播放器)的实例中实现电话通信。装置2还可包含摄像机。此外,装置2中示出的各种模块和单元可不必在装置2的每一实例中。举例来说,在装置2为台式计算机或经装备以与外部用户接口或显示器介接的其它装置的实例中,用户接口4和显示器8可在装置2外部。
用户接口4的实例包含(但不限于)轨迹球、鼠标、键盘和其它类型的输入装置。用户接口4还可为触摸屏且可并入为显示器8的一部分。收发器模块3可包含电路以允许计算装置2与另一装置或网络之间的无线或有线通信。收发器模块3可包含调制器、解调器、放大器和其它用于有线或无线通信的此类电路。
CPU 6可为配置成处理用于执行的计算机程序的指令的微处理器,例如中央处理单元(CPU)。CPU 6可包括控制计算装置2的操作的通用或专用处理器。用户可将输入提供到计算装置2以致使CPU 6执行一或多个软件应用程序。在CPU 6上执行的软件应用程序可包含(例如)操作系统、文字处理器应用程序、电子邮件应用程序、电子数据表应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。另外,CPU 6可执行GPU驱动程序22以用于控制GPU 12的操作。用户可经由一或多个输入装置(未示出)(例如,键盘、鼠标、麦克风、触摸垫或经由用户接口4耦合到计算装置2的另一输入装置)将输入提供到计算装置2。
在CPU 6上执行的软件应用程序可包含指示CPU 6将图形数据显现到显示器8的一或多个图形显现指令。在一些实例中,软件指令可符合图形应用程序编程接口(API),例如开放图形库API、开放图形库嵌入系统(OpenGL ES)API、Direct3D API、X3DAPI、RenderMan API、WebGL API或任何其它公共或专有标准图形API。
为了处理软件应用程序的图形显现指令,CPU 6可向GPU 12发布一或多个图形显现命令(例如,通过GPU驱动程序22),以致使GPU 12执行图形数据显现中的一些或全部。在一些实例中,待显现的图形数据可包含例如点、线、三角形、四边形、三角带等图形基元的列表。
GPU 12可被配置成执行图形操作以将一或多个图形基元显现到显示器8。因此,当在CPU 6上执行的软件应用程序中的一个要求图形处理时,CPU 6可将图形命令和图形数据提供到GPU 12以用于显现到显示器8。图形数据可包含(例如)绘制命令、状态信息、基元信息、纹理信息等。在一些情况下,GPU 12可内置有高度并行结构,所述结构相比CPU 6提供更高效的复杂图形相关操作处理。举例来说,GPU 12可包含配置成以并行方式对多个顶点或像素进行操作的多个处理元件,例如着色器单元。在一些情况下,GPU 12的高度并行本质允许GPU 12相比使用CPU 6直接将场景绘制到显示器8更快速地将图形图像(例如,GUI和二维(2D)和/或三维(3D)图形场景)绘制到显示器8上。
在一些情况下,可将GPU 12集成到计算装置2的主板中。在其它情况下,GPU 12可存在于安装在计算装置2的主板中的端口中的图形卡上,或可以其它方式并入于外围装置内,所述外围装置被配置成与计算装置2交互操作。GPU 12可包含一或多个处理器,例如一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。GPU 12还可包含一或多个处理器核心,从而使得GPU12可被称为多核心处理器。
GPU 12可直接耦合到图形存储器40。因此,GPU 12可在不使用总线的情况下从图形存储器40读取数据并将数据写入到所述图形存储器。换句话说,GPU 12可使用本地存储装置而非芯片外存储器在本地处理数据。此类图形存储器40可被称为芯片上存储器。通过免除GPU 12经由总线读取和写入数据(这可能经历繁重的总线通信量),这允许GPU 12以更有效的方式进行操作。然而,在一些情况下,GPU 12可能不包含单独的存储器,而是经由总线利用系统存储器10。图形存储器40可包含一或多个易失性或非易失性存储器或存储装置,例如,随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
在一些实例中,GPU 12可将完全形成的图像存储在系统存储器10中,其中所述图像可为一或多个表面。在一些实例中,表面可为二维像素块,其中像素中的每一个可具有色彩值。贯穿本发明,在非限制性实例中,术语图形数据可包含表面或表面的部分。显示处理器14可从系统存储器10检索图像,并输出致使显示器8的像素发光的值以显示图像。显示器8可为显示由GPU 12生成的图像内容的计算装置2的显示器。显示器8可为液晶显示器(LCD)、有机发光二极管显示器(OLED)、阴极射线管(CRT)显示器、等离子显示器或另一类型的显示装置。
根据本发明的方面,计算装置2可在例如系统存储器10或图形存储器40的存储器中分配多个块,其中多个块中的每一个在存储器中具有一致的固定大小。计算装置2可进一步将多个经带宽压缩的图形数据存储到存储器中的相应多个块中,其中多个经带宽压缩的图形数据中的一个或多个的大小小于所述固定大小。计算装置2可进一步将与多个经带宽压缩的图形数据相关联的数据存储到多个块中的一个或多个的未使用空间中,所述多个块含有多个经带宽压缩的图形数据中的相应一个或多个。
图2为进一步详细说明图1的CPU 6、GPU 12和系统存储器10的实例实施方案的框图。如图2中所示,CPU 6可包含至少一个软件应用程序18、图形API 20和GPU驱动程序22,其中的每一个可为在CPU 6上执行的一或多个软件应用程序或服务。
可用于CPU 6和GPU 12的存储器可包含系统存储器10、帧缓冲器16和显现目标24。帧缓冲器16可为系统存储器10的一部分或可与系统存储器10分离,且可存储经显现图像数据。GPU 12还可显现用于存储在显现目标24中的图像数据。类似于帧缓冲器16,显现目标24可为系统存储器10的一部分或可与系统存储器10分离。
软件应用程序18可为利用GPU 12的功能性的任何应用程序。举例来说,软件应用程序18可为GUI应用程序、操作系统、便携式制图应用程序、用于工程或艺术应用的计算机辅助设计程序、视频游戏应用程序或使用2D或3D图形的另一类型的软件应用程序。
软件应用程序18可包含指示GPU 12显现图形用户接口(GUI)和/或图形场景的一或多个绘制指令。举例来说,绘制指令可包含界定待由GPU 12显现的一或多个图形基元的集合的指令。在一些实例中,绘制指令可共同地界定用于GUI中的多个开窗表面的全部或部分。在额外实例中,绘制指令可共同地界定图形场景的全部或部分,所述图形场景包含在由应用程序界定的模型空间或世界空间内的一或多个图形对象。
软件应用程序18可经由图形API 20调用GPU驱动程序22,以向GPU 12发布用于将一或多个图形基元显现成可显示的图形图像的一或多个命令。举例来说,软件应用程序18可经由图形API 20调用GPU驱动程序22,以将基元定义提供到GPU 12。在一些情况下,可将基元定义以绘制基元的列表形式提供到GPU 12,所述绘制基元例如三角形、矩形、三角扇、三角带等。基元定义可包含指定与待显现的基元相关联的一或多个顶点的顶点规格。顶点规格可包含每一顶点的位置坐标,且在一些情况下,包含与顶点相关联的其它属性,例如色彩坐标、法向量和纹理坐标。基元定义还可包含基元类型信息(例如,三角形、矩形、三角扇、三角带等)、缩放信息、旋转信息等。基于软件应用程序18向GPU驱动程序22发布的指令,GPU驱动程序22可调配指定供GPU 12执行的一或多个操作以便显现基元的一或多个命令。当GPU 12从CPU 6接收到命令时,处理器集群46可执行图形处理管线以解码命令,且可配置图形处理管线以执行所述命令中指定的操作。举例来说,图形处理管线的命令引擎可读取基元数据,并将数据汇编成供图形处理管线中的其它图形管线级使用的基元。在执行指定操作之后,GPU 12将经显现数据输出到与显示装置相关联的帧缓冲器16或显现目标24中的一个。
帧缓冲器16存储用于GPU 12的目的地像素。每一目的地像素可与唯一屏幕像素位置相关联。在一些实例中,帧缓冲器16可存储每一目的地像素的色彩分量和目的地阿尔法值。举例来说,帧缓冲器16可存储每一像素的红色、绿色、蓝色、阿尔法(RGBA)分量,其中“RGB”分量对应于色彩值且“A”分量对应于目的地阿尔法值。帧缓冲器16还可存储每一目的地像素的深度值。以此方式,帧缓冲器16可被称为存储图形数据(例如,表面)。尽管帧缓冲器16和系统存储器10被说明为单独的存储器单元,但在其它实例中,帧缓冲器16可为系统存储器10的一部分。一旦GPU 12已将帧的全部像素显现到帧缓冲器16中,帧缓冲器可将已加工帧输出到显示器8以供显示。
类似于帧缓冲器16,显现目标24中的每一个也可存储用于GPU 12的目的地像素,包含像素的色彩值和/或深度值。显现目标24中的每一个可存储与帧缓冲器16相同数目个唯一像素位置的信息,或可存储帧缓冲器16的数个唯一像素位置的子集。
处理器集群46可包含一或多个可编程处理单元42和/或一或多个固定功能处理单元44。可编程处理单元42可包含(例如)配置成执行从CPU 6下载到GPU 12上的一或多个着色器程序的可编程着色器单元。在一些实例中,可编程处理单元42可被称为“着色器处理器”或“统一着色器”,且可执行几何、顶点、像素或其它着色操作以显现图形。着色器单元可各自包含用于提取和解码操作的一或多个组件、用于进行算术计算的一或多个ALU、一或多个存储器、高速缓冲存储器和寄存器。
GPU 12可通过向可编程处理单元42发送执行图形处理管线中的顶点着色器级、镶嵌级、几何着色器级、光栅化级和片段着色器级中的一个或多个的命令,指定可编程处理单元42执行例如顶点着色、外壳着色、域着色、几何着色、片段着色等的多种着色操作。在一些实例中,GPU驱动程序22可致使在CPU 6上执行的编译程序编译一或多个着色器程序,并将经编译着色器程序下载到GPU 12内含有的可编程处理单元42上。可以高级着色语言来编写着色器程序,例如OpenGL着色语言(GLSL)、高级着色语言(HLSL)、用于图形的C(Cg)着色语言、OpenCL C核等。经编译着色器程序可包含控制GPU 12内的可编程处理单元42的操作的一或多个指令。举例来说,着色器程序可包含顶点着色器程序,其可由可编程处理单元42执行以执行顶点着色器级的功能;镶嵌着色器程序,其可由可编程处理单元42执行以执行镶嵌级的功能;几何着色器程序,其可由可编程处理单元42执行以执行几何着色器级的功能;和/或片段着色器程序,其可由可编程处理单元42执行以执行片段着色器级的功能。顶点着色器程序可对可编程顶点着色器单元或统一着色器单元的执行进行控制,且包含指定一或多个逐顶点操作的指令。
处理器集群46还可包含固定功能处理单元44。固定功能处理单元44可包含经硬连线以执行某些功能的硬件。尽管可例如经由一或多个控制信号配置固定功能处理单元44以执行不同功能,但固定功能硬件通常并不包含能够接收用户编译的程序的程序存储器。在一些实例中,处理器集群46中的固定功能处理单元44可包含(例如)执行例如深度测试、剪切测试、阿尔法混合、低分辨率深度测试等的光栅操作的处理单元,以执行图形处理管线的光栅化级的功能。
图形存储器40为物理地集成到GPU 12的集成电路中的片上存储装置或存储器。在一些情况下,因为图形存储器40是片上存储器,所以相比经由系统总线从系统存储器10读取值或将值写入到所述系统存储器,GPU 12可能够更快速地从图形存储器40读取值或将值写入到所述图形存储器。
在一些实例中,GPU 12可根据延迟显现模式(也被称为分格显现或基于图像块的显现)操作以显现图形数据。当根据延迟显现模式操作时,GPU 12内的处理器集群46首先执行分格遍次(也被称作图像块遍次),以将帧划分成多个图像块并确定哪些基元在每一图像块内。在一些实例中,分格遍次可指示基元是否在图像块内。在其它实例中,分格遍次还可包含深度测试,并指示特定基元是否在经显现图像块中可见。对于多个图像块中的每一个,处理器集群46接着将图像块的图形数据(像素的色彩值)显现到位于GPU 12本地的图形存储器40,这包含执行图形处理管线以显现每一图像块,并且在完成后,将经显现图形数据从图形存储器40读取到帧缓冲器16或显现目标24中的一个。在一些实例中,因为每一经显现图像块包含二维像素块的像素的色彩值,所以图像块可被视作表面,或可被视作为由多个图像块组成的最后经显现图像的表面的部分。
GPU 12可将每一图像块划分成多个像素块。像素块的大小可与显示器8上的像素块的大小类似,所述大小对应于低分辨率缓冲器中的一个存储位置。GPU 12可将每一图像块的基元变换到屏幕空间中,且可相对于彼此从前到后地对基元进行排序,从而测试当前图像块的子图像块以确定:1)每一基元是否包含在给定子图像块内;且2)如果包含在给定子图像块中,那么基元的像素是否被特定子图像块中的任何其它基元的像素遮挡。
在一些实例中,在分格遍次期间,GPU 12还可生成用于多个图像块中的每一个的像素块的低分辨率z(LRZ)数据,且可将此LRZ数据存储到例如系统存储器10的存储器中的低分辨率缓冲器中。低分辨率z是指低分辨率缓冲器存储与多个图像块中的每一个的像素块而非每一像素相关联的深度数据的事实。低分辨率缓冲器可为具有多个存储位置的二维缓冲器。低分辨率缓冲器中的每一存储位置可对应于显示器8上所表示的像素块。在一些实例中,低分辨率缓冲器内的存储位置的数目可少于待在显示器8上表示的像素的数目。LRZ数据可为用于像素块(例如,2×2像素块)的含有用于给定像素块的最后面深度值的深度数据。图像块可与一或多个LRZ数据相关联。举例来说,在给出为8×8像素块的图像块的情况下,图像块可包含各自与图像块的给定2×2像素块相关联的16个LRZ数据,且16个LRZ数据中的每一个可含有用于图像块的相关联2×2像素块的最后面深度值。
GPU 12可基于对占用与LRZ数据相关联的像素块的基元的像素的深度值的确定来确定LRZ数据。因为LRZ数据为用于像素块而非个别像素的深度数据,所以GPU 12在确定用于每一像素块的LRZ数据时可具有保守性。举例来说,如果LRZ数据为2×2像素块(p00、p01、p10和p11),那么GPU 12可将对应LRZ数据设定为最后面像素(即,最远离相机的像素)的深度数据。如果像素p00、p01、p10和p11分别具有0.1、0.1、0.2和0.15的对应深度值,其中相比更高值,更低值表示更远离相机的深度,那么GPU 12可将用于所述像素块的LRZ数据设定为0.1。
在用组成经显现表面的像素的深度信息更新低分辨率缓冲器之后,GPU 12可基于存储在低分辨率缓冲器中的深度值,将图像逐图像块地显现到图形存储器40。为显现像素,对于显示器上的每一像素,GPU 12可基于存储在低分辨率缓冲器内的深度值,确定从图像块中的哪些基元显现哪些像素。如果GPU 12基于存储在低分辨率缓冲器内的深度值,确定基元的像素在最后场景中被遮挡,那么GPU 12可确定并不对那些被遮挡像素进一步执行像素着色或片段着色操作,借此改进GPU 12的性能。在将每一图像块显现到图形存储器40之后,GPU 12可将经显现图像块从图形存储器40传送到存储器26。以此方式,可通过来自GPU12的经显现图像块并通过将经显现图像块中的每一个从图形存储器传送到帧缓冲器16或显现目标24中的一个,逐图像块地填充帧缓冲器16或显现目标24中的一个,借此将表面显现到帧缓冲器16或显现目标24中的一个中。
当GPU 12尝试将额外基元显现到经显现表面中时,GPU 12可利用针对所述表面建构的LRZ数据来优化对那些基元的显现。GPU 12可经由本发明的技术将那些基元光栅化成像素,且可执行低分辨率深度测试以丢弃GPU 12确定被遮挡的像素。对于每一像素,GPU 12可比较像素的深度值与相关联LRZ数据(即,与正测试像素的像素位置相关联的LRZ数据)的深度值,且如果像素的深度值小于(例如,更远离于相机)相关联LRZ数据的深度值,那么可丢弃所述像素。通过丢弃这些被遮挡像素,GPU 12可省略对那些像素执行任何额外图形显现操作(例如像素着色操作等),借此改进GPU 12的图形处理性能。
在一些情况下,在GPU 12使用LRZ数据执行对必定被其它像素遮挡的像素的低分辨率测试时,GPU 12可能并不舍弃那些像素,即使那些像素在对个别像素进行像素层级深度测试期间可能被舍弃。举例来说,在给出表示2×2像素块(p00、p01、p10和p11)的LRZ数据的情况下,即使像素p01可具有0.2的实际深度值,LRZ数据可为0.1的深度值,其中相比更高值,更低值表示更远离相机的深度。随后,GPU 12可确定是否在与像素p01相同的像素位置处显现具有具0.15的深度值的新像素p01'的基元。即使像素p01的实际深度值为0.2,因为LRZ数据为0.1的深度值,所以GPU 12可仍然基于LRZ数据确定与新像素p01'相关联的基元将在最后经显现表面中可见,这是因为像素p01'的深度值0.15大于LRZ数据深度值0.1。由于GPU 12基于LRZ数据确定像素p01'可见,GPU 12可对所述像素执行图形显现操作(例如,片段着色操作),之后GPU 12对像素p01'执行像素层级深度测试,以确定像素p01'实际上并不在最后经显现场景中可见且丢弃像素p01',借此防止像素p01'的色彩值被写入到帧缓冲器16或显现目标24中的一个中。
因为GPU 12在使用LRZ数据进行低分辨率深度测试之后对每一像素执行像素层级深度测试,所以对LRZ数据的使用可被视作是任选的。虽然低分辨率深度测试可在GPU 12对像素执行像素着色操作之前丢弃那些像素,但GPU 12最后可仍在GPU 12对那些像素执行像素着色操作之后对每一未丢弃像素执行逐像素深度测试。因此,使用LRZ数据的低分辨率深度测试可被视作对GPU 12处理的优化,其免于GPU 12耗费其处理来对由于低分辨率深度测试而丢弃的某些像素执行像素着色。因而,即使GPU 12并不将低分辨率深度测试执行为其图形处理的部分,GPU 12可仍正确地执行以显现图形数据。
GPU 12还可基于包含在每一经显现图像块中的像素块的色彩数据,确定用于每一经显现图像块的基于图像块的散列码,使得基于图像块的散列码能唯一地识别其像素块具有不同色彩数据的图像块。如上文所论述,每一经显现图像块为像素块(例如,8×8),其中每一像素具有色彩值。GPU 12可将含有不同像素值图案的图像块(例如,完全填充有红色像素的图像块和完全填充有绿色像素的图像块)与基于图像块的不同散列码相关联,且可将含有相同像素值图案的图像块(例如,各自完全填充有红色像素的两个图像块)与基于图像块的相同散列码相关联。
当GPU 12确定是否执行对应于图像块的色彩数据从第一图像块到第二图像块的位块传送时,此类基于图像块的散列码可是有用的。如果第一图像块和第二图像块各自与基于图像块的相同散列码相关联,那么GPU 12可确定实际上无需发生色彩数据传送,这是因为第一和第二图像块的相应像素块含有相同色彩数据集合,借此改进计算装置2的性能。在一些实例中,GPU 12可确定用于小于图像块大小的像素块的基于图像块的散列码。举例来说,在图像块包括8×8像素块时,GPU 12可仍然能确定用于表面的每一4×4像素块的基于图像块的散列码。在此情况下,每一图像块可与用于其含有的每一4×4像素块的四个基于图像块的散列码相关联。
在将每一经显现图像块传送出图形存储器40以用于存储在帧缓冲器16或显现目标24中的一个中时,GPU 12可经由任何合适的压缩算法压缩每一图像块,以通过总线更有效地将图像块移动到帧缓冲器16或显现目标24中的一个。基于每一图像块的内容变化,经压缩图像块的所得大小可不同。虽然一些经压缩图像块可为未经压缩图像块的大小的百分率,但其它经压缩图像块可几乎不小于未经压缩图像块的大小或与其大小相同,或可能根本未经压缩。因此,多个经带宽压缩的图像块在其它经压缩图像块当中可包含一或多个未经压缩图像块。
在一些实例中,GPU 12可确定用于每一经压缩图像块的基于图像块的散列码。因此,并非生成用于未经压缩图像块的底层表面色彩值的基于图像块的散列码,GPU 12可在压缩之后基于每一图像块的数据来生成基于图像块的散列码,借此充当多个经压缩图像块的检查和。在此实例中,如果在压缩之后的两个相关联经压缩图像块相同,那么两个基于图像块的散列码可相同。
因为给定经显现图像的未经压缩图像块都大小相同,所以帧缓冲器16或显现目标24中的一个被配置成具有足够空间,以将表面的所有未经压缩图像块存储在各自与未经压缩图像块大小相同的固定大小块中。此外,因为压缩组成表面的图像块可导致不同大小的图像块中的每一特定图像块的色彩值发生变化,所以GPU 12可不能够在存储器26中分配特定用于存储经压缩图像块的大小变化的定制块。因此,GPU 12可通过将多个经压缩图像块存储到所述多个块中来利用分配为存储经显现图像的未经压缩图像块的所述相同多个块,使得每一经压缩图像块存储在所述块中的一个中。
由于存储器26在各自与未经压缩图像块大小相同的块中存储经压缩图像块,存储器26实际上并未通过存储多个经压缩图像块而非未经压缩图像块而节省任何空间。即使多个经压缩图像块在存储器26中可占据比未经压缩图像块小的空间,但不论是将经压缩图像块还是未经压缩图像块存储到多个块中,仍在存储器26中为所述多个块保留相同空间量。
因此,当GPU 12将经压缩图像块存储到多个块中时,多个块可包含通过存储多个经压缩图像块未占据的未使用空间。由于每一经压缩图像块的占据空间不到存储经压缩图像块的对应块的整个空间,对应块可具有未使用空间。因而,根据本发明的技术,GPU 12可被配置成利用未使用空间,以存储与由多个经压缩图像块组成的经显现表面相关联的额外数据。举例来说,并非在存储器26中的专用缓冲器中存储用于多个经压缩图像块的LRZ数据和基于图像块的散列码,GPU 12可在多个块的未使用空间中存储此类数据。
因为存储经压缩图像块的块中的未使用空间不能保证,所以仅当存储特定经压缩图像块的块具有未使用空间时,GPU 12可能够存储与特定经压缩图像块相关联的数据,例如LRZ数据和基于图像块的散列码。然而,如果经压缩图像块完全占用块,那么GPU 12可不能够在所述块中存储与特定经压缩图像块相关联的数据。因此,GPU 12可能够将与对应经压缩图像块相关联的表面的每一部分的任选数据存储到所述块的未使用空间中。
GPU 12可在多个块中的每一个中确定因所述多个块存储经压缩图像块而带来的可用未使用空间。举例来说,GPU 12可确定多个块中的块的大小,且可确定经压缩图像块中的每一个的大小。如果GPU 12确定特定经压缩图像块的大小小于多个块中的块的大小,那么GPU 12可确定存储特定经压缩图像块的块可具有未使用空间。
响应于GPU 12确定多个块中的一个或多个包含未使用空间,GPU 12可将GPU 12可利用以改进其性能的优化表面存储到多个块中的一个或多个的未使用空间中。举例来说,通过指示最后经显现表面中不可见的基元,从而使得GPU 12不对那些基元执行光栅化,LRZ数据是有用的。然而,在并无LRZ数据的情况下,不论那些基元是否在最后经显现表面中可见,GPU 12可仍能通过执行基元光栅化而正确地显现给定表面。因而,虽然LRZ数据可改进GPU 12显现表面的性能,但其并非GPU 12正确显现表面的至关重要信息。
基于图像块的散列码类似于LRZ数据之处在于其用于改进GPU 12的性能,但并非GPU 12正确执行图形操作的至关重要因素。在不存在基于图像块的散列码的情况下,GPU12仍可正确地执行例如色彩数据的位块传送的功能,但可在具有相同色彩数据块的表面的部分之间执行冗余色彩数据传送。
图3A到3F是说明用于将经带宽压缩的图形数据存储在存储器中的实例技术的概念图。如图3A中所示,GPU 12可将经带宽压缩的图形数据56A到56N(“经带宽压缩的图形数据56”)存储到例如系统存储器10、帧缓冲器16、显现目标24中的一个或多个等的存储器26中的块54A到54N(“块54”)中。在一些实例中,经带宽压缩的图形数据56可各自为组成经显现场景或表面的图像块(例如,图像表面的一部分),其由GPU 12压缩以便通过总线并在计算装置2的组件之间(例如,GPU 12与存储器26之间)更有效地移动图形数据。
块54可在存储器26中相邻,且可各自为相同的一致固定大小以存储经带宽压缩的图形数据56中的每一个。在一些实例中,如果经带宽压缩的图形数据56中的每一个是经带宽压缩的图像块,那么GPU 12可在存储器26中分配与组成经显现表面的图像块数目相同数目个块54,使得块54中的每一个可存储经带宽压缩的图形数据56中的对应一个。
因为块54中的每一个足够大以存储经显现表面的未经压缩图形数据,所以将经带宽压缩的图形数据56存储到块54中可导致块54中剩余未使用空间。在图3A的实例中,当块54A、54B、54C、54E和54N存储相应经带宽压缩的图形数据56A、56B、56C、56E和56N时,未使用空间58A、58B、58C、58D和58E(“未使用空间58”)可分别剩余在块54A、54B、54C、54E和54N中。
如上文所论述,GPU 12可通过比较每一经带宽压缩的图形数据56的大小与块54中的块的大小,确定块54中的每一块是否具有未使用空间58。GPU 12可产生旗标表面52A到52N(“旗标表面52”)并将其存储在存储器26中,其中旗标表面52中的每一个与块54中的一个相关联,且可指示块54中的对应块中的未使用空间的量。
在图3A的实例中,旗标表面52可存储块54中的对应块中的未使用空间的量的分数(分母为四)。旗标表面52A可指示未使用空间占据块54A的3/4。旗标表面52B可指示未使用空间占据块54B的1/2。旗标表面52C可指示未使用空间占据块54C的1/4。旗标表面52D可指示块54D并不具有未使用空间。旗标表面52E可指示未使用空间占据块54E的1/4。旗标表面52F可指示块54F并不具有未使用空间。旗标表面52N可指示未使用空间占据块54N的1/4。因为旗标表面52也存储在存储器26中,所以相比存储类似的未经压缩图形数据56,在存储器中存储经带宽压缩的图形数据56可占据存储器26中的较多空间。
如上文所论述,GPU 12可将与经带宽压缩的图形数据56相关联的数据存储到未使用空间58中。如图3B中所示,GPU 12可基于旗标表面52确定块54中具有未使用空间58的块,且可将LRZ数据60A到60E存储到块54的未使用空间58A到58E中。LRZ数据60A到60E中的每一个可具有固定大小。因为仅块54A、54B、54C、54E和54N具有相应未使用空间58A到58E,所以在图3B的实例中,GPU 12可仅将包含用于相应经带宽压缩的图形数据56A、56B、56C、56E和56N的深度信息的LRZ数据60A到60E存储到块54的未使用空间58中。因此,用于经带宽压缩的图形数据56D和56F的深度信息未被存储到块54的未使用空间58中。
LRZ数据60A可与经带宽压缩的图形数据56A相关联,这是因为LRZ数据60A可包含用于组成对应于经带宽压缩的图形数据56A的表面的部分的像素的LRZ数据。举例来说,如果经带宽压缩的图形数据56A包含关于特定8×8像素块的图形数据,那么在一个实例中,LRZ数据60A可包含用于8×8像素块中的每一2×2像素块的对应多个LRZ数据。类似地,LRZ数据60B可包含用于组成对应于经带宽压缩的图形数据56B的表面的部分的像素的LRZ数据,LRZ数据60C可包含用于组成对应于经带宽压缩的图形数据56C的表面的部分的像素的LRZ数据,LRZ数据60D可包含用于组成对应于经带宽压缩的图形数据56E的表面的部分的像素的LRZ数据,且LRZ数据60E可包含用于组成对应于经带宽压缩的图形数据56N的表面的部分的像素的LRZ数据。
对于相关联块54D和54F中未存储有相关联LRZ数据的经带宽压缩的图形数据56D和56F,GPU 12可将预设深度值与完全占用其相应块54D和54F的经带宽压缩的图形数据56D和56F中的每一个相关联。预设深度值可为最后面深度值,其指示待显现到与经带宽压缩的图形数据56D和56F相关联的表面的部分中的额外像素在与经带宽压缩的图形数据56D和56F相关联的表面的部分的像素前方,且因此将可见,而不论那些额外像素是否实际上在最后经显现场景中可见。
为了容纳用于经带宽压缩的图形数据56中的每一个的深度信息,GPU 12可将用于多个经带宽压缩的图形数据56的深度信息存储到块54中的单个块的未使用空间58中。如图3C中所示,GPU 12可将包含用于多个连续经带宽压缩的图形数据56的LRZ数据的LRZ数据60F存储到块54A的未使用空间58A中。存储到块54中的单个块的未使用空间58中的LRZ数据可包含用于经带宽压缩的图形数据56的相关联经带宽压缩的图形数据的深度信息,以及用于接下来连续指定数目个经带宽压缩的图形数据56的深度信息。举例来说,如果存储到块54中的单个块的未使用空间58中的LRZ数据可包含用于经带宽压缩的图形数据56中的六个的LRZ数据,那么LRZ数据60F可包含用于经带宽压缩的图形数据56A到56F的深度数据。类似地,LRZ数据60G可包含用于经带宽压缩的图形数据56N,以及接下来五个后续经带宽压缩的图形数据56的深度数据。以此方式,块54可存储用于每一经带宽压缩的图形数据56的深度数据。
如图3D中所示,GPU 12还可将基于图像块的散列码62A到62E存储到块54的未使用空间58A到58E中。基于图像块的散列码62A到62E中的每一个可具有相同大小。因为仅块54A、54B、54C、54E和54N具有相应未使用空间58A到58E,所以在图3B的实例中,GPU 12可仅将识别相应经带宽压缩的图形数据56A、56B、56C、56E和56N的色彩值的基于图像块的散列码62A到62E存储到块54的未使用空间58中。因此,用于经带宽压缩的图形数据56D和56F的基于图像块的散列码未被存储到块54的未使用空间58中。
为了容纳用于经带宽压缩的图形数据56中的每一个的基于图像块的散列码,GPU12可将用于多个经带宽压缩的图形数据56的基于图像块的散列码存储到块54中的单个块的未使用空间58中。如图3E中所示,GPU 12可将包含用于多个连续经带宽压缩的图形数据56的基于图像块的散列码的基于图像块的散列码62F存储到块54C的未使用空间58C中。存储到块54中的单个块的未使用空间58中的基于图像块的散列码可包含用于经带宽压缩的图形数据56的相关联经带宽压缩的图形数据的基于图像块的散列码,以及用于接下来连续指定数目个经带宽压缩的图形数据56或先前连续数目个经带宽压缩的图形数据56的基于图像块的散列码。举例来说,如果存储到块54中的单个块的未使用空间58中的基于图像块的散列码可包含用于经带宽压缩的图形数据56中的三个的LRZ数据,那么基于图像块的散列码62F可包含用于经带宽压缩的图形数据56A到56C中的每一个的基于图像块的散列码。类似地,基于图像块的散列码62G可包含用于经带宽压缩的图形数据56N,以及先前两个经带宽压缩的图形数据56的基于图像块的散列码。以此方式,块54可存储用于每一经带宽压缩的图形数据56的基于图像块的散列码。
在一些实例中,GPU 12可同时将与经带宽压缩的图形数据56相关联的多种类型数据存储到块54的未使用空间58中。举例来说,块54的未使用空间58可存储用于经带宽压缩的图形数据56中的每一个的深度数据以及基于图像块的散列码两者。如图3F中所示,GPU12可将LRZ数据60H存储到块54A的未使用空间58A中,并将LRZ数据60I存储到块54E的未使用空间58D中。GPU 12还可将基于图像块的散列码62H存储到块54A的未使用空间58C中,并将基于图像块的散列码62I存储到块54N的未使用空间58E中。因而,块54的未使用空间58可同时存储用于经带宽压缩的图形数据56的LRZ数据和基于图像块的散列码两者。
虽然图3A到3F说明GPU 12能够将LRZ数据和基于图像块的散列码存储到块54的未使用空间58中,但本发明未必限于仅将LRZ数据和基于图像块的散列码存储到块54的未使用空间58中。确切来说,GPU 12可将与经带宽压缩的图形数据56相关的任何其它数据存储到块54的未使用空间58中。
图4是说明用于将经带宽压缩的图形数据存储在存储器中的实例过程的流程图。如图4中所示,过程可包含由GPU 12将多个经带宽压缩的图形数据56存储到存储器26中的相应多个块54中,其中多个块54中的每一个在存储器26中具有一致的固定大小,且其中多个经带宽压缩的图形数据56中的一个或多个具有小于所述固定大小的大小(102)。过程可进一步包含由GPU 12将与多个经带宽压缩的图形数据56相关联的数据存储到多个块54中的一个或多个的未使用空间58中,所述块含有多个经带宽压缩的图形数据56中的相应一个或多个(104)。
在一些实例中,与多个经带宽压缩的图形数据56相关联的数据包括用于存储在多个块54中的一个或多个中的多个经带宽压缩的图形数据56中的一个或多个的深度数据。在一些实例中,多个经带宽压缩的图形数据56中的第二一个或多个可完全占用多个块54中的第二一个或多个,且所述过程可进一步包含由GPU 12将预设深度值与多个经带宽压缩的图形数据56中的第二一个或多个中的每一个相关联。在一些实例中,与多个经带宽压缩的图形数据56相关联的数据包括用于存储在多个块54中的一个或多个中的多个经带宽压缩的图形数据56中的每一个的深度数据。
在一些实例中,与多个经带宽压缩的图形数据56相关联的数据包括识别存储在多个块54中的一个或多个中的多个经带宽压缩的图形数据56中的一个或多个中的每一个的一或多个散列码。在一些实例中,与多个经带宽压缩的图形数据56相关联的数据包括识别存储在多个块54中的一个或多个中的多个经带宽压缩的图形数据56中的每一个的散列码。
在一些实例中,与多个经带宽压缩的图形数据56相关联的数据包括:识别存储在多个块54中的一个或多个中的多个经带宽压缩的图形数据56中的每一个的散列码,和用于存储在多个块54中的一个或多个中的多个经带宽压缩的图形数据56中的每一个的深度数据。
在一些实例中,与多个经带宽压缩的图形数据56相关联的数据包括与多个经带宽压缩的图形数据56相关联的优化表面。在一些实例中,多个经带宽压缩的图形数据56可包括图像表面的经带宽压缩部分。
在一些实例中,由GPU 12将与多个经带宽压缩的图形数据56相关联的数据存储到含有多个经带宽压缩的图形数据56中的相应一个或多个的多个块54中的一个或多个的未使用空间中可进一步包含:由GPU 12确定多个块54中的一个或多个包含未使用空间,并响应于确定多个块54中的一个或多个包含未使用空间,由GPU 12将与多个经带宽压缩的图形数据56相关联的数据存储到含有多个经带宽压缩的图形数据56中的相应一个或多个的多个块54中的一个或多个的未使用空间中。
在一或多个实例中,所描述功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么可将功能作为一或多个指令或代码存储在计算机可读媒体上或经由计算机可读媒体传输。计算机可读媒体可包含计算机数据存储媒体或通信媒体,所述通信媒体包含促进计算机程序从一处传送到另一处的任何媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。借助于实例而非限制,此类计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携带或存储呈指令或数据结构形式的所需程序代码且可由计算机存取的任何其它媒体。并且,适当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输软件,那么所述同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波的无线技术包含在媒体的定义中。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
代码可由一或多个处理器执行,所述一或多个处理器例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”和“处理单元”可指前述结构或适于实施本文中所描述的技术的任何其它结构中的任一个。另外,在一些方面中,本文中所描述的功能性可在配置成用于编码和解码的专用硬件和/或软件模块内提供,或并入在组合编解码器中。并且,所述技术可完全实施在一或多个电路或逻辑元件中。
本发明的技术可实施在广泛多种装置或设备中,包含无线手持机、集成电路(IC)或IC组(即,芯片组)。本发明中描述各种组件、模块或单元是为了强调配置成执行所公开技术的装置的功能方面,但未必需要通过不同的硬件单元来实现。确切来说,如上文所描述,各种单元可结合合适的软件和/或固件组合在编解码器硬件单元中,或由互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
描述了各种实例。这些和其它实例在以下权利要求书的范围内。

Claims (30)

1.一种方法,其包括:
由至少一个处理器将多个经带宽压缩的图形数据存储到存储器中的相应多个块中,其中所述多个块中的每一个在所述存储器中具有一致的固定大小,且其中所述多个经带宽压缩的图形数据中的一个或多个具有小于所述固定大小的大小;以及由所述至少一个处理器将与所述多个经带宽压缩的图形数据相关联的数据存储到含有所述多个经带宽压缩的图形数据中的所述相应一个或多个的所述多个块中的一个或多个的未使用空间中。
2.根据权利要求1所述的方法,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括用于存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的所述一个或多个的深度数据。
3.根据权利要求2所述的方法,其进一步包括:
由所述至少一个处理器将所述多个经带宽压缩的图形数据中的第二一个或多个中的每一个的预设深度值相关联,其中所述多个经带宽压缩的图形数据中的所述第二一个或多个完全占用所述多个块中的第二一个或多个。
4.根据权利要求1所述的方法,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括用于存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的每一个的深度数据。
5.根据权利要求1所述的方法,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括识别存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的所述一个或多个中的每一个的一或多个散列码。
6.根据权利要求1所述的方法,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括识别存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的每一个的散列码。
7.根据权利要求1所述的方法,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括:识别存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的每一个的散列码,和用于存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的每一个的深度数据。
8.根据权利要求1所述的方法,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括与所述多个经带宽压缩的图形数据相关联的优化表面。
9.根据权利要求1所述的方法,其中所述多个经带宽压缩的图形数据包括图像表面的经带宽压缩部分。
10.根据权利要求1所述的方法,其中由所述至少一个处理器将与所述多个经带宽压缩的图形数据相关联的所述数据存储到含有所述多个经带宽压缩的图形数据中的所述相应一个或多个的所述多个块中的所述一个或多个的所述未使用空间中进一步包括:
由所述至少一个处理器确定所述多个块中的所述一个或多个包含所述未使用空间;以及
响应于确定所述多个块中的所述一个或多个包含所述未使用空间,由所述至少一个处理器将与所述多个经带宽压缩的图形数据相关联的所述数据存储到含有所述多个经带宽压缩的图形数据中的所述相应一个或多个的所述多个块中的所述一个或多个的所述未使用空间中。
11.根据权利要求1所述的方法,其中所述至少一个处理器包含图形处理单元。
12.一种被配置成处理图形数据的设备,其包括:
存储器;以及
至少一个处理器,其被配置成:
将多个经带宽压缩的图形数据存储到存储器中的相应多个块中,其中所述多个块中的每一个在所述存储器中具有一致的固定大小,且其中所述多个经带宽压缩的图形数据中的一个或多个具有小于所述固定大小的大小;以及
将与所述多个经带宽压缩的图形数据相关联的数据存储到含有所述多个经带宽压缩的图形数据中的所述相应一个或多个的所述多个块中的一个或多个的未使用空间中。
13.根据权利要求12所述的设备,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括用于存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的所述一个或多个的深度数据。
14.根据权利要求13所述的设备,其中所述至少一个处理器被进一步配置成:
将所述多个经带宽压缩的图形数据中的第二一个或多个中的每一个的预设深度值相关联,其中所述多个经带宽压缩的图形数据中的第二一个或多个完全占用所述多个块中的第二一个或多个。
15.根据权利要求12所述的设备,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括用于存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的每一个的深度数据。
16.根据权利要求12所述的设备,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括识别存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的所述一个或多个中的每一个的一或多个散列码。
17.根据权利要求12所述的设备,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括识别存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的每一个的散列码。
18.根据权利要求12所述的设备,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括:识别存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的每一个的散列码,和用于存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的每一个的深度数据。
19.根据权利要求12所述的设备,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括与所述多个经带宽压缩的图形数据相关联的优化表面。
20.根据权利要求12所述的设备,其中所述多个经带宽压缩的图形数据包括图像表面的经带宽压缩部分。
21.根据权利要求12所述的设备,其中所述至少一个处理器被进一步配置成:
确定所述多个块中的所述一个或多个包含所述未使用空间;以及
响应于确定所述多个块中的所述一个或多个包含所述未使用空间,将与所述多个经带宽压缩的图形数据相关联的所述数据存储到含有所述多个经带宽压缩的图形数据中的所述相应一个或多个的所述多个块中的所述一个或多个的所述未使用空间中。
22.根据权利要求12所述的设备,其中所述至少一个处理器包含图形处理单元。
23.一种设备,其包括:
用于将多个经带宽压缩的图形数据存储到存储器中的相应多个块中的装置,其中所述多个块中的每一个在所述存储器中具有一致的固定大小,且其中所述多个经带宽压缩的图形数据中的一个或多个具有小于所述固定大小的大小;以及
用于将与所述多个经带宽压缩的图形数据相关联的数据存储到含有所述多个经带宽压缩的图形数据中的所述相应一个或多个的所述多个块中的一个或多个的未使用空间中的装置。
24.根据权利要求23所述的设备,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括用于存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的所述一个或多个的深度数据。
25.根据权利要求24所述的设备,其进一步包括:
用于将预设深度值与所述多个经带宽压缩的图形数据中的第二一个或多个中的每一个相关联的装置,其中所述多个经带宽压缩的图形数据中的第二一个或多个完全占用所述多个块中的第二一个或多个。
26.根据权利要求23所述的设备,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括用于存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的每一个的深度数据。
27.根据权利要求23所述的设备,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括识别存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的所述一个或多个中的每一个的一或多个散列码。
28.根据权利要求23所述的设备,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括识别存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的每一个的散列码。
29.根据权利要求23所述的设备,其中与所述多个经带宽压缩的图形数据相关联的所述数据包括:识别存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的每一个的散列码,和用于存储在所述多个块中的所述一个或多个中的所述多个经带宽压缩的图形数据中的每一个的深度数据。
30.根据权利要求23所述的设备,其中所述用于存储的装置进一步包括:
用于确定所述多个块中的所述一个或多个包含所述未使用空间的装置;以及
用于响应于确定所述多个块中的所述一个或多个包含所述未使用空间,将与所述多个经带宽压缩的图形数据相关联的所述数据存储到含有所述多个经带宽压缩的图形数据中的所述相应一个或多个的所述多个块中的所述一个或多个的所述未使用空间中的装置。
CN201680052326.6A 2015-09-17 2016-08-01 经带宽压缩的图形数据的存储技术 Active CN108027955B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/857,303 2015-09-17
US14/857,303 US10621690B2 (en) 2015-09-17 2015-09-17 Storing bandwidth-compressed graphics data
PCT/US2016/044975 WO2017048381A1 (en) 2015-09-17 2016-08-01 Storing bandwidth-compressed graphics data

Publications (2)

Publication Number Publication Date
CN108027955A true CN108027955A (zh) 2018-05-11
CN108027955B CN108027955B (zh) 2021-04-13

Family

ID=56738211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680052326.6A Active CN108027955B (zh) 2015-09-17 2016-08-01 经带宽压缩的图形数据的存储技术

Country Status (9)

Country Link
US (1) US10621690B2 (zh)
EP (1) EP3350766B1 (zh)
JP (1) JP6884766B2 (zh)
KR (1) KR102140387B1 (zh)
CN (1) CN108027955B (zh)
CA (1) CA2995581A1 (zh)
ES (1) ES2770874T3 (zh)
HU (1) HUE047446T2 (zh)
WO (1) WO2017048381A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10540808B2 (en) * 2016-09-16 2020-01-21 Intel Corporation Hierarchical Z-culling (HiZ) optimization for texture-dependent discard operations
US10331902B2 (en) 2016-12-29 2019-06-25 Noblis, Inc. Data loss prevention
US10580151B2 (en) 2017-12-05 2020-03-03 Qualcomm Incorporated Tile-based low-resolution depth storage
GB2569645B (en) * 2017-12-22 2022-02-23 Displaylink Uk Ltd Managing data for transportation
US11461869B2 (en) * 2018-03-14 2022-10-04 Samsung Electronics Co., Ltd. Slab based memory management for machine learning training
US11144284B1 (en) * 2019-02-01 2021-10-12 Epic Games, Inc. Method and system for code tile programming
US20200264970A1 (en) * 2019-02-19 2020-08-20 Nvidia Corporation Memory management system
US11600002B2 (en) * 2020-06-03 2023-03-07 Qualcomm Incorporated Bin filtering
US20230099093A1 (en) * 2021-09-24 2023-03-30 Intel Corporation Scale up and out compression

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101460992A (zh) * 2006-06-08 2009-06-17 高通股份有限公司 混合多个显示层
US7672005B1 (en) * 2004-06-30 2010-03-02 Teradici Corporation Methods and apparatus for scan block caching
US20110175907A1 (en) * 2010-01-18 2011-07-21 Sony Corporation Image processing apparatus, image processing method, and program
US20130322756A1 (en) * 2010-09-16 2013-12-05 Pixia Corp. Method of processing a viewport within large format imagery
US20150227468A1 (en) * 2014-02-11 2015-08-13 Inernational Business Machines Corporation Combining virtual mapping metadata and physical space mapping metadata

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7023437B1 (en) 1998-07-22 2006-04-04 Nvidia Corporation System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering
JP3772569B2 (ja) * 1999-02-12 2006-05-10 富士ゼロックス株式会社 画像処理装置および画像処理方法
US7245304B2 (en) 2001-11-16 2007-07-17 Lockheed Martin Corporation System and method for managing compressed graphic image data
KR101297734B1 (ko) * 2005-04-04 2013-08-20 삼성디스플레이 주식회사 디스플레이 시스템에서의 사전-서브픽셀 렌더링된 이미지 처리
US7830390B2 (en) * 2005-07-19 2010-11-09 Graphics Properties Holdings, Inc. Color computation of pixels using a plurality of vertex or fragment shader programs
US8107116B2 (en) * 2006-05-18 2012-01-31 Konica Minolta Business Technologies, Inc. Image forming apparatus
US7965296B2 (en) 2006-06-20 2011-06-21 Via Technologies, Inc. Systems and methods for storing texture map data
US7886116B1 (en) 2007-07-30 2011-02-08 Nvidia Corporation Bandwidth compression for shader engine store operations
GB2461821B (en) * 2007-09-12 2010-06-30 Imagination Tech Ltd Methods and systems for generating 3-dimensional computer images
JP5338166B2 (ja) * 2008-07-16 2013-11-13 ソニー株式会社 送信装置、立体画像データ送信方法、受信装置および立体画像データ受信方法
US9135154B2 (en) 2010-03-02 2015-09-15 Microsoft Technology Licensing, Llc Algorithm execution output cache
US8378859B2 (en) 2010-07-16 2013-02-19 Apple Inc. Memory compression technique with low latency per pixel
US9047686B2 (en) * 2011-02-10 2015-06-02 Qualcomm Incorporated Data storage address assignment for graphics processing
US8941676B2 (en) 2012-10-26 2015-01-27 Nvidia Corporation On-chip anti-alias resolve in a cache tiling architecture
US20150278981A1 (en) 2014-03-27 2015-10-01 Tomas G. Akenine-Moller Avoiding Sending Unchanged Regions to Display
US9734436B2 (en) * 2015-06-05 2017-08-15 At&T Intellectual Property I, L.P. Hash codes for images

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7672005B1 (en) * 2004-06-30 2010-03-02 Teradici Corporation Methods and apparatus for scan block caching
CN101460992A (zh) * 2006-06-08 2009-06-17 高通股份有限公司 混合多个显示层
US20110175907A1 (en) * 2010-01-18 2011-07-21 Sony Corporation Image processing apparatus, image processing method, and program
US20130322756A1 (en) * 2010-09-16 2013-12-05 Pixia Corp. Method of processing a viewport within large format imagery
US20150227468A1 (en) * 2014-02-11 2015-08-13 Inernational Business Machines Corporation Combining virtual mapping metadata and physical space mapping metadata

Also Published As

Publication number Publication date
EP3350766A1 (en) 2018-07-25
CA2995581A1 (en) 2017-03-23
HUE047446T2 (hu) 2020-04-28
JP2018529168A (ja) 2018-10-04
EP3350766B1 (en) 2019-11-06
ES2770874T3 (es) 2020-07-03
US20170083997A1 (en) 2017-03-23
WO2017048381A1 (en) 2017-03-23
CN108027955B (zh) 2021-04-13
KR102140387B1 (ko) 2020-07-31
KR20180053725A (ko) 2018-05-23
JP6884766B2 (ja) 2021-06-09
US10621690B2 (en) 2020-04-14

Similar Documents

Publication Publication Date Title
CN108027955A (zh) 经带宽压缩的图形数据的存储技术
CN106030663B (zh) 具有共享数据信道的着色器管线
CN108701366B (zh) 用于图形处理中的阴影光线的树遍历的开始节点确定的方法、设备及可读存储媒体
CN104272740B (zh) 颜色缓冲和深度缓冲压缩
US20170004647A1 (en) Rendering graphics data on demand
CN108027956B (zh) 后期深度测试与保守深度测试之间的动态切换
CN105144244B (zh) 用于基于瓦片的渲染器的查询处理的方法、设备和计算机可读存储媒体
CN109196549A (zh) 动态低分辨率z测试大小
CN108027957A (zh) 用于上下文切换的上下文信息的高效保存和恢复
CN107251133A (zh) 用于使用低质量块来减少存储器带宽的系统和方法
CN104823220B (zh) 用于图形处理的图形存储器加载掩模
US9852539B2 (en) Single pass surface splatting
CN108780582B (zh) 可见性信息修改
CN105122310A (zh) 用于基于瓦片的渲染的帧内时戳
CN113256764A (zh) 一种光栅化装置、方法及计算机存储介质
CN106796712A (zh) 透明像素格式转换器
US10504462B2 (en) Non-linear processing of two-dimensional data

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