CN103546158B - 用于图形处理的方法、系统和装置 - Google Patents
用于图形处理的方法、系统和装置 Download PDFInfo
- Publication number
- CN103546158B CN103546158B CN201310118911.XA CN201310118911A CN103546158B CN 103546158 B CN103546158 B CN 103546158B CN 201310118911 A CN201310118911 A CN 201310118911A CN 103546158 B CN103546158 B CN 103546158B
- Authority
- CN
- China
- Prior art keywords
- depth
- residual error
- cache
- test
- data
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 25
- 230000008569 process Effects 0.000 title claims description 9
- 238000012360 testing method Methods 0.000 claims description 35
- 230000006837 decompression Effects 0.000 claims description 7
- 238000000151 deposition Methods 0.000 claims description 4
- 230000000052 comparative effect Effects 0.000 claims 1
- 238000007906 compression Methods 0.000 abstract description 33
- 230000006835 compression Effects 0.000 abstract description 30
- 239000003638 chemical reducing agent Substances 0.000 abstract description 5
- 230000008901 benefit Effects 0.000 abstract description 3
- 238000003860 storage Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000013508 migration Methods 0.000 description 5
- 230000005012 migration Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 241000256844 Apis mellifera Species 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000001994 activation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- WABPQHHGFIMREM-UHFFFAOYSA-N lead(0) Chemical compound [Pb] WABPQHHGFIMREM-UHFFFAOYSA-N 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/02—Handling of images in compressed format, e.g. JPEG, MPEG
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/122—Tiling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明提供一种压缩深度高速缓存。深度高速缓存在可能时按照压缩格式来保持深度数据。这包括更灵活的高速缓存实现方式,其中根据块可被压缩或不可被压缩,块可占据变化量的高速缓存行。一些实施例的深度高速缓存的一个优点是有效高速缓存大小随着压缩比成比例地增大。在一些实施例中,与在高速缓存之后的压缩数据的系统相比,可减小存储器带宽。替代地,与高速缓存之后的压缩器相比,在相等或更高的性能下,高速缓存之前的压缩可将有效高速缓存大小提高两倍或更多倍。
Description
技术领域
本申请涉及用于图形处理的方法、系统和装置。
背景技术
本申请涉及图形处理。
在呈现像素时,可存储颜色数据和深度数据。深度数据可用于剔除将被隐藏的对象以避免处理它们。深度测试确定两个重叠像素中的哪一个更接近照相机。深度函数确定如何对待测试结果。深度缓冲器可存储用于所呈现的每个像素的逐像素浮点或整数深度数据。深度缓冲器还可包含模板数据,该模板数据可用于进行更复杂的呈现,诸如简单阴影或轮廓。
不论从性能角度还是从功率效率角度来看,降低图形处理器中的存储器带宽使用率都变得越来越重要。去往深度缓冲器和来自深度缓冲器的数据业务量消耗了大量的带宽,因此尽可能地减少该业务量是重要的。常见手段包括Zmax-剔除、Zmin-剔除、深度高速缓存以及深度压缩。
发明内容
本发明涉及一种用于图形处理的方法,包括:对深度数据执行投机编码解码;如果所述投机编码解码失败,则对所述深度数据执行强力编码解码;所述投机编码解码包括:估计最小深度和最大深度;基于估计的最小和最大深度来计算残差,以确定残差是否足够小;如果残差足够小到能在给定编码器预算中编码则在将深度数据存储在深度高速缓存中之前,压缩所述深度数据;所述强力编码解码包括:执行深度测试;以及更新通过深度测试的深度;对于通过深度测试的深度,计算最小深度和最大深度;对于通过深度测试的深度,基于计算的最小和最大深度来计算残差,以确定残差是否足够小到能在给定编码器预算中编码;以及如果残差足够小到能在给定编码器预算中编码,在将深度数据存储在深度高速缓存中之前,压缩所述深度数据,否则,在所述深度高速缓存中存储未压缩的深度数据。
本发明还涉及相应的用于图形处理的系统和装置。
附图说明
相对于以下附图描述了一些实施例:
图1示出根据一个实施例的经压缩深度体系结构;
图2描绘根据一个实施例利用八个传入的深度值Zi,i∈{0,...,7}的比较树来计算Zmin和Zmax;
图3是根据一个实施例的用于强力编码解码器的流程图;
图4是根据一个实施例的用于投机编码解码器的流程图;
图5是根据一个实施例的两级编码解码器的描绘;
图6是用于一个实施例的系统描绘;以及
图7是一个实施例的前视图。
具体实施方式
在一个实施例中,深度高速缓存中的内容在可能时被保持压缩。其意义在于,可在高速缓存中被压缩的块(样本/像素的矩形区域)将在高速缓存中利用更少的存储,因此增大了有效高速缓存大小而获得更好性能。替代地,可减小高速缓存大小且不影响高速缓存性能。
如图1所示的深度高速缓存10在可能时将深度数据12保持于压缩格式。这包括更灵活的高速缓存实现方式,其中根据块可被压缩或不可被压缩,块可占据变化量的高速缓存行。在一些实施例中,该深度高速缓存的一个优点是有效高速缓存大小随着压缩比成比例地增大。在一些实施例中,与在高速缓存之后压缩数据的系统相比,可减小存储器带宽。替代地并且有可能更有趣地,与高速缓存之后的压缩器相比,在相等或更高的性能下,高速缓存之前的压缩可将有效高速缓存大小提高两倍或更多倍。
在可能时,将深度高速缓存中的内容保持压缩,以在组合的深度比较压缩器/解压缩器14中在像素流水线与经压缩的深度高速缓存之间高效地执行像素深度比较以及压缩/解压缩。高速缓存10可与更长效的存储或存储器层次16中的下一级交换数据。在行大小反映对于存储器事务而言高效的要素的情况下,可使用更灵活的高速缓存。
此外,压缩/解压缩逻辑被放置在高速缓存之前,称为高速缓存之前的编码解码器。在一些实施例中,该系统的益处是双重的。首先,在一些实施例中,可将经压缩块存储在该高速缓存中,由此使有效高速缓存大小与压缩比成比例地高效增加。其次,在一些实施例中,可将不可压缩的块分割成子块(每行一个子块),而且可仅更新被三角形触碰到的子块。由于现在将压缩算法放置在高速缓存之前,所以低等待时间和非常高的吞吐量是合乎需要的。
为了在同一系统中组合高速缓存之前和高速缓存之后的编码解码器,可确保整个块存在于高速缓存中,以执行高速缓存之后的压缩。此外,诸如计算每块的最小(Zmin)和最大(Zmax)深度值之类的一些操作涉及整个块数据。通过允许窥视高速缓存并在逐出整个块之前检查整个块是否存在,可实现这一目的。由于逐出相对不常见,因此这可以是高效的。
然而,替代方法是在每块的头部数据中为每个高速缓存行分配一个额外的位,并且直接标记在该高速缓存中存在哪些子块。该操作是非常高效的,但其代价是用于块头部的带宽会稍有增加。
本说明书仅集中于面编码和深度偏移压缩算法,因为它们具有简单的实现方式并且能支持增量压缩,使得它们成为高速缓存之前的编码解码器的良好候选。诸如锚编码之类的其它传统压缩算法也可能适用于高速缓存之前的压缩。在一个流水线实施例中,使用用于每个块的清除掩码以指示哪些样本被清除,从而仅利用有效样本来计算所使用的块的最小Zmin和最大Zmax深度值。
在面编码中,块的表示是一系列平面方程和指示样本属于哪个面的用于每个样本的位掩码。从驻留在高速缓存中的这样的表示来进行即时解压缩是直接的。假定解压缩某个样本/像素位置(xs,ys)的深度的意图。位掩码值被用作平面方程集合的索引i,并且平面方程被简单地赋值为其中常数和一起限定平面方程i。
当三角形被栅格化时,栅格化器将平面方程转发给高速缓存之前的编码解码器。深度比较如上所述地通过解压缩深度值来完成。如果至少一个深度值通过深度测试,则将传入的平面方程添加至高速缓存中的压缩表示,并且更新用于每个受影响的样本/像素的位掩码。未经压缩的块的大小将规定在经压缩块中可存储多少平面方程,并且在没有更多可用的索引用于新的平面方程时,该块必须被解压缩并重新被放入高速缓存中。
存在用于添加新平面的不同策略。在最简单的实现方式中,仅将平面添加至平面列表,并且在太多平面与块重叠时压缩失败。然而,通过从头部删除未使用的平面,或通过扫描用于未使用的位组合的索引位掩码,或通过保持多少样本属于每个平面的计数器,有可能实现更好的压缩。在这样的实现方式中,压缩器必须能够处理比压缩格式能表示的平面多一个的平面。
深度偏移是非常简单的压缩算法,但它出人意料地有效。它不能实现高压缩比,替代地,它是针对许多块激活的算法,并且具有适中的压缩比。这使得它在整体上尤其有效。此外,从实现角度而言,它是简单的算法。压缩表示由以下组成:两个参考值Zmin和Zmax;用于每个样本的位mxy,指示样本的残差与Zmin还是Zmax有关;然后是用于每个样本的n位残差rxy。深度值被重构为z(x,y)=zmin+rxy(若mxy=0),否则被重构为z(x,y)=zmax-rxy。
最佳位分布取决于高速缓存行大小和块大小。然而,通常将Zmin和Zmax量化为16位精度并将余下位用于残差就已足够。为了压缩,存在更多选项,下文给出当新的三角形被栅格化时用于压缩块中的深度的两个不同方法。
如图3所示的强力方法首先解压缩块中的所有深度值(框32)、执行深度测试(框34)、并且更新通过深度测试的至少一个深度(框36)。然后使用例如如图2所示的树状评估、利用在每个框针对八个传入深度值Zi,i∈{0,...,7}的比较来找出这些深度的Zmin和Zmax(框38)。
一般而言,对于s深度,这样的树将使用s/2+2(s/2-1)=3s/2-2比较来计算Zmin和Zmax二者(框40)。
残差rxy和选择器位mxy易于计算。分别根据Zmin和Zmax来计算残差(框42)。如果残差足够小而能在给定预算中编码(菱形44),则存储经压缩的块以及所有mxy和rxy和Zmin和Zmax并设置mxy(框46)。否则,该块压缩失败(框48),并且需要以未压缩形式被存储(框50)。
接着,描述用于更新Zmin和Zmax的保守的成本低的方法。不过该算法的余下部分是完整的。
该压缩器基于深度流水线支持分层Zmin和Zmax剔除的假定。这些算法要求块内的三角形的最小和最大深度的保守估计。不论实际上如何计算它们,我们可假定它们已可用,因为在流水线中,分层剔除单元被放置在深度压缩单元前面。
如图4所示,通过假定和是块的真实最小和最大值的良好估计值,这些估计值在压缩期间被充分利用。在估计Zmin和Zmax之后(框52),计算所有残差(框54)。作为小的优化,如果当前三角形重写整个块,则仅使用三角形值。然后确定该残差对于预算是否足够小(菱形56),如果是,则存储经压缩块以及所有mxy和rxy以及Zmin和Zmax(框58)。否则,压缩失败(框60)并且存储未经压缩的块(框64)。
实际上,这将可能导致深度范围增加,直到块不再可压缩,除非完全被重写。然而,该实现是更高效的,因为可避免成本相当高的Zmin和Zmax计算。本实现可与如图5所示的高速缓存之后的强力编码解码器30组合。更简单的投机编码解码器51处理高吞吐量数据,并将其保持压缩在高速缓存66中尽可能久。如果压缩失败,则成本更高的高速缓存之后的强力编码解码器30在可能时改进Zmin和Zmax值,并重新压缩该块。当该数据被读回至高速缓存时,则高速缓存之前的编码解码器可使用该改进的值作为起始点。
与深度偏移压缩类似,分层深度剔除保持更低分辨率的深度缓冲器,该深度缓冲器包含用于每个块的最大Zmax和最小Zmin深度值。假定正常的低于(less than)深度测试,每当接收到新片段时,将最小值更新为Zmin=min(Zmin,Zfrag)将是容易的。然而,更新Zmax值成本相当高,而且要求迭代该块中的所有样本。因此,当从高速缓存中驱逐块时,通常投机地更新Zmax值。这是可接受的,因为之前存储的Zmax是保守的。
利用这个更灵活的深度高速缓存系统,有可能驱逐部分块,否则子块无法被更新。在该情况下,该块的Zmax值无法被更新,因为它要求访问所有样本。在实践中,这不是个大问题,因为高效的深度系统将微调高速缓存行大小,以使经压缩的块将适配在单个高速缓存行中,从而未经压缩的块将典型地适配在仅几行中。
利用灵活的深度高速缓存可实现高速缓存之前的数据压缩,并且这样的压缩将会使高速缓存大小粗略地增大有效压缩比。这可用于减小去往随机存取存储器(RAM)的带宽,或减小高速缓存大小并且释放硅面积而不影响带宽。在我们的实现方式中,在一些实施例中,对于合理的流水线而言,当与高速缓存之后的编码解码器相比时,可实现显著的平均相对带宽减小。类似地,可将高速缓存大小减小有效压缩比,而不影响性能。实际上,当从高速缓存之后的编码解码器转到高速缓存之前的编码解码器时,有效高速缓存大小可能不止翻倍。这对于仅深度偏移配置成立,而且在更大程度上对于组合的深度偏移和平面编码配置也成立。
图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、全球定位系统(GPS)721、照相机723和/或无线电装置718的任意组合。芯片组705可在处理器710、存储器712、存储714、图形子系统715应用716和/或无线电装置718之间提供互通。例如,芯片组705可包括能提供与存储714的互通的存储适配器(未描绘)。
此外,平台702可包括操作系统770。去往处理器772的接口可对接操作系统和处理器710。
可提供固件790以实现诸如引导序列之类的功能。可提供更新模块以使该固件能从平台702外部被更新。例如,该更新模块可包括代码,用于确定更新尝试是否可信,并用于标识固件790的最近更新以便于确定何时需要更新。
在一些实施例中,平台702可由外部电源供电。在一些情况下,平台702还可包括内部电池780,在不适用外部电源的实施例中或在允许电池供电的电源或外部电源的实施例中,该内部电池780可充当电源。
例如,通过将图3、4和5中示出的序列包含在存储714内或在处理器710或图形子系统715内的存储器内,图3、4和5中示出的序列可在软件和固件实施例中实现。在一个实施例中。图形子系统715可包括图形处理单元,并且处理器710可以是中央处理单元。
处理器710可被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核或任何其它微处理器或中央处理单元(CPU)。在多个实施例中,处理器710可包括双核处理器、双核移动处理器等等。
存储器712可被实现为易失性存储设备,诸如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
存储714可被实现为非易失性存储设备,诸如但不限于磁盘驱动器、光盘驱动器、带驱动器、内部存储设备、附连存储设备、闪存、带备用电池的SDRAM(同步DRAM)和/或网络可访问存储设备。在多个实施例中,存储714可包括用于提高针对有价值数字媒体的存储性能增强保护(例如当包含多个硬盘驱动器时)的技术。
图形子系统715可执行对诸如静态图像或视频的处理以供显示。例如,图形子系统715可以是图形处理单元(GPU)或可视处理单元(VPU)。模拟或数字接口可用于通信地耦合图形子系统715和显示器720。例如,该接口可以是高清晰度多媒体接口、DisplayPort、无线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通信(例如,发送和/或接收)媒体信息并从网络760通信媒体信息。内容递送装置740可耦合至平台702和/或显示器720。
在多个实施例中,内容服务装置730可包括有线电视盒、个人计算机、网络、电话、能够递送数字信息和/或内容的启用因特网的装置或设备、以及能够经由网络760或直接在内容提供方与平台702和/或显示器720之间单向或双向地通信内容的任何其它类似装置。将理解,内容可经由网络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)、消息收发设备、数据通信设备等等。
移动计算设备的示例还可包括被设置成由人穿戴的计算机、诸如腕部计算机、手指计算机、指环计算机、眼镜计算机、带夹计算机、臂带计算机、鞋计算机、服装计算机以及其它可穿戴的计算机。例如,在多个实施例中,移动计算设备可被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。虽然已经以实现为智能电话的移动计算设备为例描述了一些实施例,但可理解其他实施例也可利用其他无线移动计算设备来实现。各实施例不限于此情境。
如图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)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或他们的任意组合。确定实施例是利用硬件元件和/或软件元件来实现可根据任意数量的因素而不同,这些因素比如所需计算速率、功率电平、热容限、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示性指令来实现,这些指令表示处理器中的各种逻辑,这些指令在被机器读取时使得该机器制造用于执行本申请中所描述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形的机器可读介质上,并被提供给各个顾客或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
各个实施例可利用硬件元件、软件元件或他们二者的组合来实现。硬件元件的示例可包括处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、程序、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或它们的任意组合。确定实施例是利用硬件元件和/或软件元件来实现可根据任意数量的因素而不同,这些因素比如所需计算速率、功率电平、热容限、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示性指令来实现,这些指令表示处理器中的各种逻辑,这些指令在被机器读取时使得该机器制造用于执行本申请中所描述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形的机器可读介质上,并被提供给各个顾客或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
本申请中所描述的图形处理技术可在各种硬件体系结构中实现。例如,图形功能可被集成在芯片组中。替代地,可使用分立的图形处理器。作为又一实施例,图形功能可由包括多核处理器的通用处理器实现。
在本说明书通篇中对“一个实施例”或“一实施例”的引用意味着结合该实施例描述的特定特征、结构或特性包括在本发明包含的至少一个实现中。因此,短语“一个实施例”或“在一实施例中”的出现不一定指代同一实施例。此外,特定特征、结构或特性可按照与所说明的特定实施例不同的其他适当形式来创立,而且所有此类形式可包含在本申请的权利要求中。
尽管已针对有限数量的实施例描述了本发明,然而本领域技术人员将会从其中领会到许多修改和变型。所附权利要求旨在覆盖落在本发明的真实精神和范围内的所有这样的修改和变型。
Claims (17)
1.一种用于图形处理的方法,包括:
对深度数据执行投机编码解码;
如果所述投机编码解码失败,则对所述深度数据执行强力编码解码;
所述投机编码解码包括:
估计最小深度和最大深度;
基于估计的最小和最大深度来计算残差,以确定残差是否足够小;
如果残差足够小到能在给定编码器预算中编码则在将深度数据存储在深度高速缓存中之前,压缩所述深度数据;
所述强力编码解码包括:
执行深度测试;以及
更新通过深度测试的深度;
对于通过深度测试的深度,计算最小深度和最大深度;
对于通过深度测试的深度,基于计算的最小和最大深度来计算残差,以确定残差是否足够小到能在给定编码器预算中编码;以及
如果残差足够小到能在给定编码器预算中编码,在将深度数据存储在深度高速缓存中之前,压缩所述深度数据,否则,在所述深度高速缓存中存储未压缩的深度数据。
2.如权利要求1所述的方法,其特征在于,包括:解压缩深度值、以及在更新所述高速缓存之前重新压缩所述解压缩深度值的结果。
3.如权利要求2所述的方法,其特征在于,包括仅解压缩所述深度数据的需要执行所述深度测试的子集。
4.如权利要求1所述的方法,其特征在于,包括确定残差与编码器预算相比较结果如何。
5.如权利要求1所述的方法,其特征在于,包括执行第一深度测试,所述第一深度测试包括估计最大和最小深度。
6.如权利要求5所述的方法,其特征在于,包括:如果所述第一深度测试失败,则执行第二深度测试,所述第二深度测试包括计算最小和最大深度并确定残差。
7.一种用于图形处理的计算机实现的系统,包括:
用于对深度数据执行投机编码解码的装置;
用于如果所述投机编码解码失败,则对所述深度数据执行强力编码解码的装置;
所述用于投机编码解码的装置包括:
用于估计最小深度和最大深度的装置;
用于基于估计的最小和最大深度来计算残差,以确定残差是否足够小到能在给定编码器预算中编码的装置;
用于如果残差足够小到能在给定编码器预算中编码则在将深度数据存储在深度高速缓存中之前,压缩所述深度数据的装置;
所述用于强力编码解码的装置包括:
用于执行深度测试的装置;
用于更新通过深度测试的深度的装置;
用于对于通过深度测试的深度,计算最小深度和最大深度的装置;
用于对于通过深度测试的深度,基于计算的最小和最大深度来计算残差,以确定残差是否足够小到能在给定编码器预算中编码的装置;以及
用于如果残差足够小到能在给定编码器预算中编码,在将深度数据存储在深度高速缓存中之前,压缩所述深度数据,否则,在所述深度高速缓存中存储未压缩的深度数据的装置。
8.如权利要求7所述的系统,其特征在于,还包括:用于解压缩深度值的装置、以及用于在更新所述高速缓存之前重新压缩所述解压缩深度值的结果的装置。
9.如权利要求8所述的系统,其特征在于,还包括:用于仅解压缩所述深度数据的需要执行深度测试的子集的装置。
10.如权利要求7所述的系统,其特征在于,还包括:用于确定所述残差与编码器预算相比较结果如何的装置。
11.如权利要求7所述的系统,其特征在于,还包括:用于执行第一深度测试,所述第一深度测试包括估计最小和最大深度的装置。
12.如权利要求11所述的系统,其特征在于,还包括:用于如果所述第一深度测试失败,则执行第二深度测试的装置,所述第二深度测试包括计算最小和最大深度并确定残差。
13.一种用于图形处理的装置,包括:
深度高速缓存;以及
处理器,用于:
对深度数据执行投机编码解码;
如果所述投机编码解码失败,则对所述深度数据执行强力编码解码;
所述投机编码解码包括:
估计最小深度和最大深度;
基于估计的最小和最大深度来计算残差,以确定残差是否足够小到能在给定编码器预算中编码;
如果残差足够小到能在给定编码器预算中编码则在将深度数据存储在深度高速缓存中之前,压缩所述深度数据;
所述强力编码解码包括:
执行深度测试;以及
更新通过深度测试的深度;
对于通过深度测试的深度,计算最小深度和最大深度;
对于通过深度测试的深度,基于计算的最小和最大深度来计算残差,以确定残差是否足够小到能在给定编码器预算中编码;
如果残差足够小到能在给定编码器预算中编码,在将深度数据存储在所述深度高速缓存中之前,压缩所述深度数据,否则,在所述深度高速缓存中存储未压缩的深度数据。
14.如权利要求13所述的装置,其特征在于,所述处理器用于解压缩深度值、以及在更新所述高速缓存之前重新压缩所述解压缩深度值的结果。
15.如权利要求14所述的装置,其特征在于,所述处理器用于仅解压缩所述深度数据的需要执行所述深度测试的子集。
16.如权利要求13所述的装置,其特征在于,所述处理器用于确定所述残差与编码器预算相比较结果如何。
17.一种存储指令的机器可读存储介质,所述指令当被机器执行时,使所述机器执行如权利要求1-6中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261620045P | 2012-04-04 | 2012-04-04 | |
US61/620,045 | 2012-04-04 | ||
US13/627,093 | 2012-09-26 | ||
US13/627,093 US20130265305A1 (en) | 2012-04-04 | 2012-09-26 | Compressed Depth Cache |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103546158A CN103546158A (zh) | 2014-01-29 |
CN103546158B true CN103546158B (zh) | 2018-04-10 |
Family
ID=49291927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310118911.XA Expired - Fee Related CN103546158B (zh) | 2012-04-04 | 2013-04-08 | 用于图形处理的方法、系统和装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US20130265305A1 (zh) |
CN (1) | CN103546158B (zh) |
TW (1) | TWI551117B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9311743B2 (en) * | 2013-10-23 | 2016-04-12 | Qualcomm Incorporated | Selectively merging partially-covered tiles to perform hierarchical z-culling |
US9501864B2 (en) * | 2013-12-27 | 2016-11-22 | Intel Corporation | Adaptive depth offset compression |
US9552620B2 (en) * | 2014-06-30 | 2017-01-24 | Intel Corporation | Depth offset compression |
US9355038B2 (en) * | 2014-09-11 | 2016-05-31 | Qualcomm Incorporated | Cache bank spreading for compression algorithms |
US20160092361A1 (en) * | 2014-09-26 | 2016-03-31 | Intel Corporation | Caching technologies employing data compression |
US20160283390A1 (en) * | 2015-03-27 | 2016-09-29 | Intel Corporation | Storage cache performance by using compressibility of the data as a criteria for cache insertion |
US10706105B2 (en) | 2017-02-09 | 2020-07-07 | Micron Technology, Inc. | Merge tree garbage metrics |
US10706106B2 (en) | 2017-02-09 | 2020-07-07 | Micron Technology, Inc. | Merge tree modifications for maintenance operations |
US10725988B2 (en) | 2017-02-09 | 2020-07-28 | Micron Technology, Inc. | KVS tree |
US10719495B2 (en) * | 2017-02-09 | 2020-07-21 | Micron Technology, Inc. | Stream selection for multi-stream storage devices |
US10410406B2 (en) * | 2017-02-27 | 2019-09-10 | Trimble Ab | Enhanced three-dimensional point cloud rendering |
US10237532B2 (en) | 2017-03-07 | 2019-03-19 | Trimble Ab | Scan colorization with an uncalibrated camera |
US10565677B2 (en) * | 2017-10-16 | 2020-02-18 | Think Silicon Sa | System and method for adaptive z-buffer compression in low power GPUS and improved memory operations with performance tracking |
US11100071B2 (en) | 2018-10-10 | 2021-08-24 | Micron Technology, Inc. | Key-value store tree data block spill with compaction |
US10915546B2 (en) | 2018-10-10 | 2021-02-09 | Micron Technology, Inc. | Counter-based compaction of key-value store tree data block |
US11048755B2 (en) | 2018-12-14 | 2021-06-29 | Micron Technology, Inc. | Key-value store tree with selective use of key portion |
US10852978B2 (en) | 2018-12-14 | 2020-12-01 | Micron Technology, Inc. | Key-value store using journaling with selective data storage format |
US10936661B2 (en) | 2018-12-26 | 2021-03-02 | Micron Technology, Inc. | Data tree with order-based node traversal |
GB2597496B (en) | 2020-07-23 | 2024-04-03 | Advanced Risc Mach Ltd | Data processing systems |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2757297B1 (fr) * | 1996-12-18 | 1999-03-05 | Thomson Multimedia Sa | Procede et dispositif d'etiquetage de region |
US6163320A (en) * | 1998-05-29 | 2000-12-19 | Silicon Graphics, Inc. | Method and apparatus for radiometrically accurate texture-based lightpoint rendering technique |
US6492987B1 (en) * | 1998-08-27 | 2002-12-10 | Ati Technologies, Inc. | Method and apparatus for processing object elements that are being rendered |
US7039241B1 (en) * | 2000-08-11 | 2006-05-02 | Ati Technologies, Inc. | Method and apparatus for compression and decompression of color data |
US6630933B1 (en) * | 2000-09-01 | 2003-10-07 | Ati Technologies Inc. | Method and apparatus for compression and decompression of Z data |
US6961057B1 (en) * | 2000-10-12 | 2005-11-01 | Nvidia Corporation | Method and apparatus for managing and accessing depth data in a computer graphics system |
US6898323B2 (en) * | 2001-02-15 | 2005-05-24 | Ricoh Company, Ltd. | Memory usage scheme for performing wavelet processing |
GB2378108B (en) * | 2001-07-24 | 2005-08-17 | Imagination Tech Ltd | Three dimensional graphics system |
US6762758B2 (en) * | 2001-08-23 | 2004-07-13 | Ati Technologies Inc. | System, method, and apparatus for compression of video data using offset values |
US7242400B2 (en) * | 2002-11-13 | 2007-07-10 | Ati Technologies Ulc | Compression and decompression of data using plane equations |
US20090118019A1 (en) * | 2002-12-10 | 2009-05-07 | Onlive, Inc. | System for streaming databases serving real-time applications used through streaming interactive video |
US7532753B2 (en) * | 2003-09-29 | 2009-05-12 | Lipsky Scott E | Method and system for specifying color of a fill area |
US8089486B2 (en) * | 2005-03-21 | 2012-01-03 | Qualcomm Incorporated | Tiled prefetched and cached depth buffer |
GB2447096B (en) * | 2007-03-01 | 2011-10-12 | Sony Comp Entertainment Europe | Entertainment device and method |
EP2191443B1 (en) * | 2007-09-12 | 2013-01-23 | Telefonaktiebolaget L M Ericsson (publ) | Depth buffer compression |
US9665951B2 (en) * | 2007-12-20 | 2017-05-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Unified compression/decompression graphics architecture |
US8311353B2 (en) * | 2008-01-21 | 2012-11-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Prediction-based image processing |
US8654135B1 (en) * | 2008-09-10 | 2014-02-18 | Nvidia Corporation | A-Buffer compression for different compression formats |
US8483285B2 (en) * | 2008-10-03 | 2013-07-09 | Qualcomm Incorporated | Video coding using transforms bigger than 4×4 and 8×8 |
US8427474B1 (en) * | 2008-10-03 | 2013-04-23 | Nvidia Corporation | System and method for temporal load balancing across GPUs |
US9406149B2 (en) * | 2009-10-07 | 2016-08-02 | Nvidia Corporation | Selecting and representing multiple compression methods |
-
2012
- 2012-09-26 US US13/627,093 patent/US20130265305A1/en not_active Abandoned
-
2013
- 2013-03-29 US US13/853,091 patent/US20130268569A1/en not_active Abandoned
- 2013-04-03 TW TW102112094A patent/TWI551117B/zh not_active IP Right Cessation
- 2013-04-08 CN CN201310118911.XA patent/CN103546158B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20130265305A1 (en) | 2013-10-10 |
TW201408070A (zh) | 2014-02-16 |
TWI551117B (zh) | 2016-09-21 |
CN103546158A (zh) | 2014-01-29 |
US20130268569A1 (en) | 2013-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103546158B (zh) | 用于图形处理的方法、系统和装置 | |
CN104704469B (zh) | 动态地重新平衡图形处理器资源 | |
CN104881367B (zh) | 处理分布式缓存组织结构中的已压缩数据的方法、计算设备、计算系统和机器可读介质 | |
CN104915916B (zh) | 使用选择性色彩变换的色彩压缩 | |
CN104756150B (zh) | 深度缓冲 | |
CN103179393B (zh) | 降低运动补偿和显示刷新中的功耗的dram压缩方案 | |
CN105279730A (zh) | 对于动态生成的图形资源的压缩技术 | |
TWI517086B (zh) | 用於去耦取樣為主描繪管線之低功率質心決定及紋理覆蓋區最佳化 | |
CN104952087A (zh) | Mipmap压缩 | |
CN103518227B (zh) | 用于随机运动模糊栅格化的深度缓冲器压缩 | |
CN104025031B (zh) | 减少应用中对共享存储器单元执行的顺序操作的数量 | |
CN105074772B (zh) | 通过使用不可达比特组合而改进的多采样抗锯齿压缩 | |
CN104584544B (zh) | 使用一般化平面编码的随机深度缓冲器压缩 | |
JP6182225B2 (ja) | カラーバッファ圧縮 | |
CN104737198B (zh) | 在输入几何对象粒度上记录可见度测试的结果 | |
CN104603844B (zh) | 减小的位计数多边形光栅化 | |
CN106133791B (zh) | 用于颜色压缩的群聚和编码 | |
CN106462936A (zh) | 深度偏移压缩 | |
CN104754348B (zh) | 用于自适应深度偏移压缩的方法和设备 | |
CN104025035B (zh) | 当执行迭代处理连续数据的程序时减少对存储器io请求的数量 | |
CN104813342A (zh) | 内容感知的改变视频大小 | |
CN104221393A (zh) | 内容自适应视频处理 | |
CN104541502A (zh) | 用于视频编码和解码的基于直方图分段的局部自适应滤波器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180410 Termination date: 20210408 |
|
CF01 | Termination of patent right due to non-payment of annual fee |