CN104933750B - 一种紧凑深度平面表示的方法、装置及介质 - Google Patents
一种紧凑深度平面表示的方法、装置及介质 Download PDFInfo
- Publication number
- CN104933750B CN104933750B CN201510083780.5A CN201510083780A CN104933750B CN 104933750 B CN104933750 B CN 104933750B CN 201510083780 A CN201510083780 A CN 201510083780A CN 104933750 B CN104933750 B CN 104933750B
- Authority
- CN
- China
- Prior art keywords
- processor
- depth
- representation
- tile
- precision
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/12—Indexing scheme for image data processing or generation, in general involving antialiasing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/32—Indexing scheme for image data processing or generation, in general involving image mosaicing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20016—Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本发明公开了用于后排序体系结构的紧凑深度平面表示。根据一些实施例,对于瓦片内像素的子集可以使用完全每样本覆盖掩码,从而使得能够处理属于多个深度范围的像素。这使得深度更紧密适配于瓦片的真正深度范围,并且当使用MSAA时提高分层深度剔除效率。
Description
技术领域
本发明一般涉及图形处理,具体涉及遮挡剔除(occlusion culling)。
背景技术
剔除(culling)是指“从群集中去除”,在图形学中,其归结为去除不改变最终图像的工作。这包括例如视域剔除,即不对在视域之外的对象进行进一步处理,因为它们不会影响最终图像。
在最大深度剔除中,即通常所谓的分层遮挡剔除中,对于每个瓦片 (tile),存储和维持瓦片的最大深度zmax。如果瓦片内三角形的估计的保守最小深度大于瓦片的zmax,则该三角形在该瓦片内被完全遮挡。在这种情况下,无需从存储器读取每个样本深度值,并且无需在瓦片内对该三角形进行进一步处理。该技术有时称为zmax剔除。另外,还可以将深度的最小深度zmin存储在瓦片中,如果三角形完全覆盖瓦片则避免进行深度读取,三角形的估计的保守最大深度小于zmin,在该情况下,三角形将覆写瓦片中全部深度(假设没有阿尔法/模板测试等)。
根据瓦片内每个样本深度来计算zmax。理想地,每当覆写值为zmax的深度时,都应重新计算瓦片的zmax值。
深度剔除单元存储zmax表示,其可以通过例如高速缓存来存取。瓦片可以保存来自覆盖瓦片的三角形的平面等式,对于后续三角形,能够比照该表示来立即进行剔除(或者比照根据平面等式评估的深度,或者通过计算瓦片内的平面等式的zmax)。当瓦片不能再维持该表示时,由于存储要求或其他标准,对于整个瓦片或者对于瓦片的子瓦片区域,可以将平面等式替换成一个或多个的zmin值和zmax值。例如,对于4x8子瓦片区域中的每一个,8x8瓦片可以保存两个zmin和两个zmax。除非使用反馈,否则将计算出的zmax值从深度缓冲单元发送回到分层遮挡剔除单元,zmax值需要保守地更新且通常将保持不变,除非整个子瓦片被三角形完全覆盖。
多采样反锯齿(MSAA)是一种超级采样。通常,渲染器评估片段程序,每个像素进行一次,并且仅真正地对深度和模板值进行超级采样。通常,多采样是指超级采样的一种特殊情况,即,仅仅不对最终图像的一些分量进行完全地超级采样。
反锯齿是任何抵抗采样信号中的锯齿以平滑计算机生成的影像所渲染的图像的技术。试图克服本应为平滑的呈现为阶梯状线的锯齿感。
附图说明
参考下面的图来描述一些实施例:
图1是示出根据一个实施例如何由平面等式重新创建深度值的示意图;
图2是一个实施例的平面等式的图;
图3是一个实施例的流程图;
图4是一个实施例的示意图;
图5是另一实施例的流程图;
图6是根据一个实施例的系统示意图;以及
图7是一个实施例的正视图。
具体实施方式
根据一些实施例,当存储部分覆盖瓦片的深度平面值时可以使用降低的精度,而对于全部覆盖的瓦片使用全精度。然而,在一个实施例中,如果重构的深度值与使用全精度深度平面生成的深度值相同,则仅使用降低的精度。这在大多数情况下允许使用具有极少位的深度平面表示,从而释放位用于存储如覆盖掩码的附加信息或附加的深度平面。在一些实施例中,这允许在深度剔除单元中表示更多的瓦片,从而减小深度缓冲带宽。
可以用高精度浮点格式来表示深度平面等式(Ref,Dx,Dy)。当样本的深度值被评估时,平面等式被评估为z(x,y)=Ref+x·Dx+y·Dy,其中(x, y)是样本坐标。所有计算都是用类似于IEEE双精度浮点的内部高精度格式来进行的,最后将结果舍入成单精度(32位)IEEE浮点值。如果判定瓦片(通常是像素的8x4矩形)被三角形完全覆盖,则可以将该瓦片存储为平面等式形式。由于平面等式足以用来精确地重新创建全部样本的深度值,所以不对深度缓冲器进行更新,每次用平面模式存储瓦片时节约带宽。可以使用可替代的较低精度平面等式,只要在舍入成单精度浮点深度之后对于全部(覆盖的)样本所评估的深度值与通过较高精度平面等式使用的深度值相同即可。图1(A-C)是如何计算深度值的示例。
在平面等式中,差量(Dx,Dy)通常以32位单精度存储,参考值通常以较高精度存储,如图1A所示。然后,将差量转换成较高精度格式,如图 1B所示。最后,当合成深度值时,通过将尾数移位将参考值和差量正规化成相同指数,如图1C所示,最后相加在一起以合成最终深度值。在最终转换成浮点之后仅保留较高的23位,其余的位仅用来确保正确的舍入。在紧凑平面表示中,除了存储较高的23位之外,使用多个保护位来确保舍入后的正确结果。确保正确舍入所需的保护位的数量基于每样本深度数据而变化且难以计算。作为优化方法,可以从压缩瓦片的容许位预算开始,减去所有其他数据所需的存储。这直接使得保护位可用在当前预算内,然后可以测试紧凑表示是否确保舍入后的正确结果。通常,差量比参考值具有小得多的指数,因此,可以省略落在保护位范围之外的差量的尾数位。在图 1C中示出了一个例子。
图1示出了如何由平面等式来重新创建深度值。该示例图示出重新创建深度值z(1,1)=Ref+Dx+Dy。图1A显示出原始平面等式。差量(Dx,Dy) 以32位单精度存储,参考值以较高精度(例如,64位)存储。在图1B中,差量值转换成与参考值相同的高精度格式。在图1C中,将指数正规化。所有值以相同指数表示,相应地将尾数移位。在最后转换成单精度浮点之后,仅保留较高的23位。另外,存储多个额外保护位以确保舍入后的正确结果。能够移除落到保护位界限右边的位,在该示例中共节约37位。
能用6-12个保护位来表示大部分瓦片。所节约的实际位数取决于Ref、 Dx和Dy的相对指数,通常对于相关的工作负荷在10和60之间变化。所节约的位可用来存储附加数据,包括但不限于:使用压缩覆盖掩码,对重叠单个瓦片的两个平面进行编码,存储帮助剔除三角形未覆盖的区域的附加的最小/最大值或数据。
对从光栅器接收到的平面等式的值进行评估以确定符号和指数值的紧凑表示。然后,判定是否能够利用水平或垂直断裂(break)来压缩每样本覆盖掩码,水平或垂直断裂是压缩位掩码表示,下面将进行详细说明。由于位预算通常很紧张,所以可以使用具有一个或两个像素水平断裂或一个像素垂直断裂的配置。在存储符号、指数和压缩的每样本覆盖掩码之后,可以使用其余的位来对深度平面等式的较低精度尾数位进行编码。求解简单等式来确定在Ref、Dx和Dy的尾数上耗费多少保护位。然后,通过将它们舍入到所允许的位数来降低精度,类似于图1C,得到较低精度值和
在给定样本处对精确的平面等式(图2中的线G)进行评估,并舍入成浮点(图2中的叉)。计算出均将舍入成给定样本的32位深度值的全精度值的间隔利用降低精度的差量将这些间隔反投影到参考点 (x=0),以获得可能的参考值的间隔其中反投影是由下式给出的
可以通过取上至较低精度表示(通过能够承受多少保护位来表征)的最近量化值的所有样本的最大值和下至最近量化值的最小值来计算最终可能的间隔。如果间隔不为空,则能够表示瓦片,在该情况下,可以取作为中的任意量化值。如果瓦片不可压缩,则可以使用诸如zmax模式的其他一些表示,并将全部深度值发送到后端z用于进一步处理。本文所描述的用于修改(adapt)平面等式的方法仅修改值。然而,可以在平面等式中调整所有的值有可能允许压缩更多的瓦片,但是以计算量更大为代价。
参考图3,紧凑平面等式序列10可用软件、固件和/或硬件来实现。在软件和固件实施例中,可以通过存储在诸如磁存储设备、光存储设备或半导体存储设备的一个或多个非暂态计算机可读介质中的计算机执行的指令来实现。
如框11所示,序列开始于分析平面等式,以确定符号和指数值的紧凑表示,如框12所指示。然后,判定是否能够压缩每样本覆盖掩码,如菱形 13所指示。
接着,存储符号、指数和压缩的每样本覆盖掩码,如框14所指示。对深度平面等式的较低精度尾数位进行编码,如框15所指示。
能够确定耗费在尾数上的所需保护位的数量,如框16所指示。最后,修改精确的平面等式以确保所有值都是正确的,如框18所指示。
参考图4,深度缓冲体系结构20包括光栅器22,用来标识当前正在渲染三角形内的哪些像素。为了对于体系结构的其余部分最大化存储器相干性,通常有益的是首先标识哪些瓦片(WxH像素的集合)重叠三角形。当光栅器找到部分地重叠三角形的瓦片时,其将像素分配在该瓦片中的多个像素管线24上。每个像素管线的用途是计算像素的深度和颜色。每个像素管线包含深度测试单元26,负责丢弃被先前画的几何结构遮挡的像素。深度单元28包括存储器32,在一个实施例中,存储器32是随机存取存储器。深度单元28还包括:瓦片表高速缓存30,其临时存储每个瓦片的由存储器 32支持的zmax掩码表示;瓦片高速缓存41,其也被存储器32支持且临时存储每样本深度值以便进行快速存取;任选的zmax反馈计算36,每当从瓦片高速缓存41逐出瓦片时,其都更新瓦片表30中的zmax表示;压缩器35 和解压缩器37,以及覆盖掩码缓冲器34。瓦片表高速缓存存储zmax表示和报头信息,例如表示使用哪个压缩算法来与深度缓冲数据分离地压缩深度值的瓦片的一个或多个标记。
通常地,压缩器35将瓦片深度值压缩成固定位率,如果其不能在无信息丢失的情况下以给定位数表示瓦片,则会失败。当将深度瓦片写入存储器时,通常选择具有最低位率的压缩器,其能成功压缩瓦片,而不会导致丢失过多信息。用独属于压缩器的标识符来更新瓦片表中的标记,将压缩数据写入存储器。当从存储器中读取瓦片时,从瓦片表中读取压缩器标识符,并利用对应的解压算法37对数据进行解压。缓冲器34同样可存储覆盖掩码。
用来紧凑部分覆盖掩码的掩码算法可以存储在所节约的位上,其操作如下。首先,假设瓦片中的每个像素行由完全覆盖或未完全覆盖的毗邻像素区域构成,因此称为“牢固区域(solid region)”,并仅用一位来存储这些区域的掩码。每个牢固区域被“断裂区域(break region)”分开,“断裂区域”是针对每个样本都存储位以指示其是否被覆盖的区域。在每次断裂之后,存储附加位以指示其所属的后续的牢固区域是否被覆盖。
在一些实施例中,可以为断裂使用不同的配置。例如,对于所需位预算内的每行,可以支持单一两像素宽的断裂。另一可选方案是支持两个独立的断裂,其中断裂仅为一像素宽,在像素所在的地方给予了更少的像素,但是具有更大的灵活性。实际上,通过在压缩的同时测试几个不同的断裂配置,拾取适配在最小位数内的一个配置,并且存储几个报头位以指示哪种配置用于特定瓦片,来获得最佳性能。
寻找牢固区域和断裂区域的过程可实现如下。首先,设定与第一像素中的第一样本的覆盖掩码相等的变量L。然后,序列在全部像素中的所有样本上扫描,例如从左到右。一旦找到具有不同于L的覆盖掩码的样本,则将包围的像素标记为断裂B。在断裂区域中(从B开始,延伸遍及多个像素)显式地存储全部像素中的所有样本的掩码位之后,将L重新初始化为断裂区域之后的第一像素中的第一样本的掩码位,随后是对下一断裂进行迭代搜索。掩码不可压缩,任何行需要比该配置所容许的更多的断裂。
还可以交换轴且指定垂直列的断裂。按列或按行的顺序搜索断裂的另一变型例是具有完全地或部分地覆盖瓦片的其他空间填充曲线,例如 Hilbert或Morton曲线。在这些情况下无需进行任何改变,像素顺序可从模式中隐含。此外,可以假设在断裂区域左侧或右侧的全部牢固区域属于相同的Zmax层。对于这种情况常出现的方案,可以使用在单一位中对层信息进行编码的模式。
根据一些实施例,图5所示的覆盖掩码紧凑序列70可以用软件、固件和/或硬件来实现。在软件和固件实施例中,可以通过存储在诸如半导体存储设备、磁存储设备或光存储设备的一个或多个非暂态性计算机可读介质中的计算机执行指令来实现。在一个实施例中,随机存取存储设备32可以用于该目的,如图4所示。
图5所示的序列70开始于扫描每行/列以找到覆盖掩码变化的像素,如框78所指示。这些是需要用每样本掩码表示的像素。接着,如上所述改变覆盖掩码表示(框80)。
菱形82处的检查判定是否不能利用所选模式来表示瓦片。如果不能,则在框84处必须选择一个选项。一个选项是利用不同的行/列定向回到框 78。另一选项是通过不同的参数设置回到框80。如果没有更多的变量,则必须使用诸如原始、每像素Zmax模式或一些其他表示的另一种表示,如框 86所指示的。
图6示出了系统700的实施例。在实施例中,系统700可以是媒体系统,但是系统700不限于该背景。例如,系统700可合并到个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如,智能电话、智能平板电脑或智能电视机)、移动互联网设备(MID)、消息传送设备、数据通信设备等。
在实施例中,系统700包括与显示器720耦合的平台702。平台702 可以从诸如内容服务设备730或内容输送设备740或其他类似内容源的内容设备接收内容。导航控制器750包括一个或多个导航特征,其可用来例如与平台702和/或显示器720进行交互。这些部件中的每个部件将在下面进行更详细说明。
在实施例中,平台702可以包括芯片组705、处理器710、存储器712、存储设备714、图形子系统715、应用716和/或无线电设备718的任意组合。芯片组705可以提供处理器710、存储器712、存储设备714、图形子系统 715、应用716和/或无线电设备718之间的相互通信。例如,芯片组705 可以包括能够提供与存储设备714相互通信的存储适配器(未示出)。
处理器710可实现为复杂指令集计算机(CISC)或精简指令集计算机 (RISC)处理器、x86指令集兼容处理器、多核或任何其他微处理器或中央处理单元(CPU)。在实施例中,处理器710可以包括双核处理器、双核移动处理器等。处理器可以连同存储器712一起来实现图3和图5的序列。在一些实施例中,这些序列可以通过图形子系统715的图形处理器来执行。
存储器712可以实现为易失性存储器设备,诸如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
存储设备714可以实现为非易失性存储设备,诸如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接的存储设备、闪存、电池备份SDRAM(同步DRAM)、和/或网络可存取存储设备。在实施例中,存储设备714可以包括当包括例如多个硬盘驱动器时提高对于有价值数字媒体的存储性能增强保护的技术。
图形子系统715可以对诸如静像或视频的图像进行处理以进行显示。图形子系统715可以是例如图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可用来将图形子系统715和显示器720通信耦合。例如,接口可以是高清多媒体接口、显示端口、无线HDMI和/或无线HD适用技术中的任一种。图形子系统715可集成到处理器710或芯片组705中。图形子系统715可以是与芯片组705通信耦合的独立式的卡。
本文所描述的图形和/或视频处理技术可以在各种硬件体系结构中实现。例如,图形和/或视频功能可集成在芯片组内。可替代地,可以使用离散的图形和/或视频处理器。作为另一实施例,图形和/或视频功能可以由包括多核处理器的通用处理器来实现。在另一实施例中,这些功能可以在消费者电子设备中实现。
无线电设备718可以包括能够利用各种适合的无线通信技术来发送和接收信号的一个或多个无线电设备。这些技术可涉及通过一个或多个无线网络进行通信。示例性的无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在跨这些网络的通信中,无线电设备718可以根据任意版本的一个或多个可应用标准来工作。
在实施例中,显示器720可以包括任何电视机型监控器或显示器。显示器720可以包括例如计算机显示屏、触摸屏显示器、视频监控器、类似电视机的设备、和/或电视机。显示器720可以是数字的和/或模拟的。在实施例中,显示器720可以是全息显示器。而且,显示器720可以是可接收可视化投影的透明表面。这些投影可以传达各种形式的信息、图像和/或对象。例如,这些投影可以是用于移动增强现实(MAR)应用的可视化叠加。在一个或多个软件应用716的控制下,平台702可以在显示器720上显示用户界面722。
在实施例中,内容服务设备730可由任何国内的、国际的和/或独立服务来掌控,因此可便于平台702经由例如因特网访问。内容服务设备730 可与平台702和/或与显示器720耦合。平台702和/或内容服务设备730可以与网络760耦合以与网络760之间进行媒体信息的通信(例如,发送和/ 或接收)。内容输送设备740还可以与平台702和/或显示器720耦合。
在实施例中,内容服务设备730可以包括电缆电视机盒、个人计算机、网络、电话、能够输送数字信息和/或内容的因特网支持设备或器具,以及能够单向或双向地在内容提供商与平台702和/显示器720之间通过网络 760或者直接地进行内容通信的任何其他类似设备。将理解的是,可以通过网络760与系统700中的部件和内容提供商中的任一者进行单向和/或双向地传送内容。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。
内容服务设备730接收诸如电缆电视机节目的内容,包括媒体信息、数字信息和/或其他内容。内容提供商的示例可以包括任何电缆或卫星电视机或无线电或因特网内容提供商。所提供的示例不意在限制本发明的实施例。
在实施例中,平台702可以从具有一个或多个导航特征的导航控制器 750来接收控制信号。控制器750的导航特征可用来例如与用户界面722进行交互。在实施例中,导航控制器750可以是定点设备,其可以是计算机硬件部件(具体为人机接口设备),允许用户将空间(例如,连续的和多维的)数据输入给计算机。诸如图形用户界面(GUI)和电视机以及监控器的许多系统允许用户利用身体姿势来控制和提供数据给计算机或电视机。
可以通过显示在显示器上的指针、光标、聚焦环或其他可视化指示器的移动,将控制器750的导航特征的移动反映在显示器(例如显示器720) 上。例如,在软件应用716的控制下,位于导航控制器750上的导航特征可映射到例如显示在用户界面722上的虚拟导航特征上。在实施例中,控制器750可以不是单独的部件,而是集成到平台702和/或显示器720中。然而,实施例不限于图示或本文描述的元件或上下文。
在实施例中,驱动器(未显示)可以包括当启动时使用户能够在初始启动之后通过触摸按钮而立即接通和关断类似于电视机的平台702的技术。当平台被“关断”时,程序逻辑可允许平台702将内容流送给媒体适配器或其他内容服务设备730或内容输送设备740。另外,芯片组705可以包括对于例如5.1环绕立体声音频和/或高清晰7.1环绕立体声音频的硬件和/或软件支持。驱动器可以包括用于集成的图形平台的图形驱动器。在实施例中,图形驱动器可以包括外围部件互连(PCI)快速图形卡。
在各个实施例中,可以集成系统700中所示的任意一个或多个部件。例如,可以集成平台702和内容服务设备730,或者可以集成平台702和内容输送设备740,或者可以集成平台702、内容服务设备730和内容输送设备740。在各个实施例中,平台702和显示器720可以是集成单元。可以集成显示器720和内容服务设备730,或者可以集成例如显示器720和内容输送设备740。这些示例不意在限制本发明。
在各个实施例中,系统700可以实现为无线系统、有线系统或两者的组合。当实现为无线系统时,系统700可以包括适合于通过诸如一个或多个天线、发送器、接收器、收发器、放大器、滤波器、控制逻辑等无线共享介质进行通信的部件和接口。无线共享介质的示例可以包括无线频谱的部分,诸如RF频谱等。当实现为有线系统时,系统700可以包括适合于通过有线通信介质进行通信的部件和接口,诸如输入/输出(I/O)适配器、将 I/O适配器与对应的有线通信介质连接的物理连接器、网络接口卡(NIC)、磁盘控制器、视频控制器、音频控制器等。有线通信介质的示例可以包括电线、电缆、金属导线、印刷电路板(PCB)、底板、交换结构、半导体材料、双绞线、同轴电缆、光纤等。
平台702可以建立一个或多个传送信息的逻辑或物理通道。该信息可以包括媒体信息和控制信息。媒体信息可以指任何专用于用户的内容的数据。内容的示例可以包括例如来自语音对话的数据、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等。来自语音对话的数据可以是例如语言信息,沉默期间、背景噪声、舒适噪声、音调等。控制信息可是指任何专用于自动系统的命令、指令或控制字的数据。例如,控制信息可用来通过系统路由媒体信息,或者指示结点以预定方式处理媒体信息。然而,实施例不限于图6所示或所描述的元件或上下文。
如上所述,系统700可以通过不同的物理风格或者形状因数来实施。图7示出了可以具体实施系统700的小形状因数设备800的实施例。在实施例中,例如,设备800可以实现为具有无线能力的移动计算设备。移动计算设备可是指任何具有处理系统和诸如一个或多个电池的移动电源或供应的设备。
如上所述,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如,智能电话,智能平板电脑或智能电视机)、移动互联网设备(MID)、信息传送设备、数据通信设备等。
移动计算设备的示例还可以包括布置成由人佩戴的计算机,诸如手腕计算机、手指计算机、环形计算机、眼镜计算机、带夹计算机、臂带计算机、鞋计算机、衣物计算机以及其他可佩戴计算机。在实施例中,例如,移动计算设备可实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。虽然通过举例的方式描述了移动计算设备实现为智能电话的一些实施例,但可以理解的是同样可以利用其他的无线移动计算设备来实现其他实施例。实施例不限于该上下文。
在一些实施例中,处理器710可以与摄像机722和全球定位系统传感器720通信。在软件和/或固件实施例中,与处理器710耦合的存储器712 可以存储用于实现图3和图5所示的序列的计算机可读指令。
如图7所示,设备800可以包括壳体802、显示器804、输入/输出(I/O) 设备806和天线808。设备800还可以包括导航特征812。显示器804可以包括任何适合的用于显示适用于移动计算设备的信息的显示单元。I/O设备 806可以包括用于将信息输入到移动计算设备的任何适当的I/O设备。I/O 设备806的示例可以包括字母数字键盘、数字键区、触摸板、输入键、按钮、开关、摇杆开关、麦克风、扬声器、语音识别设备和软件等等。信息还可以通过麦克风输入到设备800中。这些信息可以通过语音识别设备来数字化。实施例不限于该上下文。
可以利用硬件元件、软件要素或两者的组合来实现各种实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件的示例可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、程序、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任意组合。判定是利用硬件元件和/或利用软件要素来实现实施例可以根据任意数量的因素而变化,例如所需的计算速率、功率级别、热耐受性、处理周期预算、输入数据率、输出数据率、存储器资源、数据总线速度和其他设计或性能约束。
下面的条款和/或示例涉及进一步的实施例:
一个示例性实施例可以是一种方法,包括:存储针对完全覆盖瓦片的深度平面表示,以及以比用较高精度存储的完全覆盖瓦片低的精度来存储针对部分覆盖瓦片的深度平面表示。该方法还可以包括:判定针对部分覆盖瓦片的重构深度值是否与舍入后以较高精度获得的相同。该方法还可以包括:使用通过较低精度表示所节约的位来存储压缩的覆盖掩码。该方法还可以包括:使用通过较低精度表示所节约的位来对重叠单个瓦片的两个平面进行编码。该方法还可以包括:存储符号、指数和压缩的每样本覆盖掩码。该方法还可以包括:对深度平面等式的较低精度尾数位进行编码。该方法还可以包括:修改较低精度平面表示以使样本的深度值与对应的较高精度平面表示相同。该方法还可以包括使用图形处理器来存储深度平面表示。
在另一示例性实施例中,可以是至少一个或多个非暂态性计算机可读介质,其存储由处理器执行来实施序列的指令,所述序列包括:存储由图元完全覆盖的瓦片的深度平面表示;以及以比用较高精度存储的完全覆盖瓦片低的精度来存储部分覆盖瓦片的深度平面表示。介质可以包括判定部分覆盖瓦片的重构深度值是否与舍入后的较高精度表示的值相同。介质可以包括:使用通过较低精度表示所节约的位来存储压缩覆盖掩码。介质可以包括:使用通过较低精度表示所节约的位来对重叠单个瓦片的两个平面进行编码。介质可以包括:存储符号、指数和压缩的每样本覆盖掩码。介质可以包括:对深度平面等式的较低精度尾数位进行编码。介质可以包括:修改较低精度平面表示以使样本的深度值与对应的较高精度平面表示相同。
另一示例性实施例可以是一种装置,包括:处理器,其存储针对完全覆盖瓦片的深度平面表示,且用来以比用较高精度存储的完全覆盖瓦片低的精度来存储针对部分覆盖瓦片的深度平面表示;以及与所述处理器耦合的存储器。该装置可以包括:所述处理器判定针对部分覆盖瓦片的重构深度值是否与舍入后通过较高精度获得的相同。该装置可以包括:所述处理器使用通过较低精度表示所节约的位来存储压缩的覆盖掩码。该装置可以包括:所述处理器使用通过较低精度表示所节约的位来对重叠单个瓦片的两个平面进行编码。该装置可以包括:所述处理器存储符号、指数和压缩后的每样本覆盖掩码。该装置可以包括:所述处理器对深度平面等式的较低精度尾数位进行编码。该装置可以包括:所述处理器修改较低精度平面表示以使样本的深度值与对应的较高精度平面表示相同。该装置可以包括:其中所述处理器是图形处理器。该装置可以包括光栅器。该装置可以包括与处理器通信耦合的显示器。该装置可以包括与处理器耦合的电池。该装置可以包括固件和用来更新所述固件的模块。
本文所描述的图形处理技术可以在各种硬件体系结构中实现。例如,图形功能可以集成在芯片组内。可替代地,可以使用离散的图形处理器。作为另一实施例,图形功能可通过包括多核处理器的通用处理器来实现。
在本说明书全文中提及“一个实施例”或“实施例”意指在本公开内所包含的至少一实现方式中包括结合实施例描述的特定的特征、结构或特性。因此,短语“一个实施例”或“在实施例中”的出现不一定是指同一实施例。此外,除了图示的特定实施例之外,特定的特征、结构或特性可替换成其他适合的形式,所有这些形式可以包含在本申请的权利要求内。
虽然已经描述了有限数量的实施例,但本领域技术人员将理解的是可从中得到多个改进例和变型例。目的在随附权利要求覆盖落在本公开的真正精神和范围内的全部这样的改进例和变型例。
Claims (22)
1.一种方法,包括:
存储针对完全覆盖瓦片的深度平面表示;
以比用较高精度存储的完全覆盖瓦片低的精度来存储针对部分覆盖瓦片的深度平面表示;以及
使用所述深度平面表示来渲染图像,用于在包括中央处理单元的计算机上进行显示。
2.如权利要求1所述的方法,包括:判定针对部分覆盖瓦片的重构深度值是否与在舍入后以较高精度获得的值相同。
3.如权利要求2所述的方法,包括:使用通过较低精度表示而节约的位来存储压缩覆盖掩码。
4.如权利要求3所述的方法,包括:使用通过较低精度表示而节约的位来对重叠单个瓦片的两个平面进行编码。
5.如权利要求3所述的方法,包括:存储符号、指数和压缩的每样本覆盖掩码。
6.如权利要求5所述的方法,包括:对深度平面等式的较低精度尾数位进行编码。
7.如权利要求6所述的方法,包括:修改较低精度平面表示以使样本的深度值与对应的较高精度平面表示相同。
8.如权利要求1所述的方法,包括:使用图形处理器来存储深度平面表示。
9.一种装置,包括:
处理器,其存储针对完全覆盖瓦片的深度平面表示,以比用较高精度存储的完全覆盖瓦片低的精度来存储针对部分覆盖瓦片的深度平面表示,且使用所述深度平面表示来渲染图像,用于在包括中央处理单元的计算机上进行显示;以及
存储器,其与所述处理器耦合。
10.如权利要求9所述的装置,所述处理器判定针对部分覆盖瓦片的重构深度值是否与在舍入后以较高精度获得的值相同。
11.如权利要求10所述的装置,所述处理器使用通过较低精度表示而节约的位来存储压缩覆盖掩码。
12.如权利要求11所述的装置,所述处理器使用通过较低精度表示而节约的位来对重叠单个瓦片的两个平面进行编码。
13.如权利要求11所述的装置,所述处理器存储符号、指数和压缩的每样本覆盖掩码。
14.如权利要求13所述的装置,所述处理器对深度平面等式的较低精度尾数位进行编码。
15.如权利要求14所述的装置,所述处理器修改较低精度平面表示以使样本的深度值与对应的较高精度平面表示相同。
16.如权利要求9所述的装置,其中所述处理器是图形处理器。
17.如权利要求16所述的装置,包括光栅器。
18.如权利要求9所述的装置,包括与所述处理器通信耦合的显示器。
19.如权利要求9所述的装置,包括与所述处理器耦合的电池。
20.如权利要求9所述的装置,包括固件和用来更新所述固件的模块。
21.一种具有指令的计算机可读介质,所述指令在被处理器执行时,使所述处理器执行根据权利要求1-8中的任一项所述的方法。
22.一种装置,包括用于执行根据权利要求1-8中的任一项所述的方法的单元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/217,774 US9418471B2 (en) | 2014-03-18 | 2014-03-18 | Compact depth plane representation for sort last architectures |
US14/217,774 | 2014-03-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104933750A CN104933750A (zh) | 2015-09-23 |
CN104933750B true CN104933750B (zh) | 2020-09-04 |
Family
ID=54053699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510083780.5A Active CN104933750B (zh) | 2014-03-18 | 2015-02-16 | 一种紧凑深度平面表示的方法、装置及介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9418471B2 (zh) |
CN (1) | CN104933750B (zh) |
DE (1) | DE102015002023B4 (zh) |
TW (1) | TWI571107B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9824412B2 (en) * | 2014-09-24 | 2017-11-21 | Intel Corporation | Position-only shading pipeline |
GB2539509B (en) * | 2015-06-19 | 2017-06-14 | Advanced Risc Mach Ltd | Method of and apparatus for processing graphics |
US10380789B2 (en) | 2016-09-16 | 2019-08-13 | Intel Corporation | Method and apparatus for efficient depth prepass |
US10409614B2 (en) * | 2017-04-24 | 2019-09-10 | Intel Corporation | Instructions having support for floating point and integer data types in the same register |
GB2565301A (en) * | 2017-08-08 | 2019-02-13 | Nokia Technologies Oy | Three-dimensional video processing |
GB2574361B (en) | 2017-12-18 | 2021-03-24 | Advanced Risc Mach Ltd | Graphics Processing |
US10726610B2 (en) | 2018-08-29 | 2020-07-28 | Arm Limited | Efficient graphics processing using metadata |
US20220383444A1 (en) * | 2021-05-27 | 2022-12-01 | Intel Corporation | Generation and storage of compressed z-planes in graphics processing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093578A (zh) * | 2006-06-23 | 2007-12-26 | 辉达公司 | 光栅化的方法和系统 |
CN101131768A (zh) * | 2006-07-26 | 2008-02-27 | 辉达公司 | 图形管线中基于瓦片的精度的光栅化 |
US7382368B1 (en) * | 2004-06-28 | 2008-06-03 | Nvidia Corporation | Planar z representation for z compression |
US7659893B1 (en) * | 2006-10-02 | 2010-02-09 | Nvidia Corporation | Method and apparatus to ensure consistency of depth values computed in different sections of a graphics processor |
CN103136774A (zh) * | 2011-12-05 | 2013-06-05 | Arm有限公司 | 用于处理计算机图形的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7791617B2 (en) * | 2005-12-19 | 2010-09-07 | Nvidia Corporation | Method and system for rendering polygons having abutting edges |
-
2014
- 2014-03-18 US US14/217,774 patent/US9418471B2/en active Active
-
2015
- 2015-01-15 TW TW104101336A patent/TWI571107B/zh active
- 2015-02-16 CN CN201510083780.5A patent/CN104933750B/zh active Active
- 2015-02-17 DE DE102015002023.4A patent/DE102015002023B4/de active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7382368B1 (en) * | 2004-06-28 | 2008-06-03 | Nvidia Corporation | Planar z representation for z compression |
CN101093578A (zh) * | 2006-06-23 | 2007-12-26 | 辉达公司 | 光栅化的方法和系统 |
CN101131768A (zh) * | 2006-07-26 | 2008-02-27 | 辉达公司 | 图形管线中基于瓦片的精度的光栅化 |
US7659893B1 (en) * | 2006-10-02 | 2010-02-09 | Nvidia Corporation | Method and apparatus to ensure consistency of depth values computed in different sections of a graphics processor |
CN103136774A (zh) * | 2011-12-05 | 2013-06-05 | Arm有限公司 | 用于处理计算机图形的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US9418471B2 (en) | 2016-08-16 |
DE102015002023A1 (de) | 2015-09-24 |
TW201537957A (zh) | 2015-10-01 |
DE102015002023B4 (de) | 2022-05-12 |
CN104933750A (zh) | 2015-09-23 |
US20150269771A1 (en) | 2015-09-24 |
TWI571107B (zh) | 2017-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104933750B (zh) | 一种紧凑深度平面表示的方法、装置及介质 | |
KR102154456B1 (ko) | 중간-분류 아키텍처에서 프레임 대 프레임 일관성의 활용 | |
TWI582751B (zh) | 避免發送未改變區域至顯示器之技術 | |
US20130268569A1 (en) | Selecting a tile size for the compression of depth and/or color data | |
CN110072033B (zh) | 使用选择性色彩变换的色彩压缩 | |
US9665973B2 (en) | Depth buffering | |
US9934604B2 (en) | Culling using masked depths for MSAA | |
US9324180B2 (en) | Culling using masked depths | |
US9336561B2 (en) | Color buffer caching | |
US9959643B2 (en) | Variable rasterization order for motion blur and depth of field | |
US9741154B2 (en) | Recording the results of visibility tests at the input geometry object granularity | |
JP6745020B2 (ja) | 方法、コンピュータプログラム、コンピュータ可読記録媒体および装置 | |
US9183652B2 (en) | Variable rasterization order for motion blur and depth of field | |
US9262841B2 (en) | Front to back compositing | |
KR101652885B1 (ko) | 적응적 깊이 오프셋 압축 | |
US9153008B2 (en) | Caching for reduced depth and/or color buffer bandwidth |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |