CN104584544B - 使用一般化平面编码的随机深度缓冲器压缩 - Google Patents

使用一般化平面编码的随机深度缓冲器压缩 Download PDF

Info

Publication number
CN104584544B
CN104584544B CN201380044313.0A CN201380044313A CN104584544B CN 104584544 B CN104584544 B CN 104584544B CN 201380044313 A CN201380044313 A CN 201380044313A CN 104584544 B CN104584544 B CN 104584544B
Authority
CN
China
Prior art keywords
depth
devices
segment
sample
compression
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
Application number
CN201380044313.0A
Other languages
English (en)
Other versions
CN104584544A (zh
Inventor
M·安德松
C·J·蒙克贝里
T·G·阿可尼内-默勒
J·N·哈塞尔格伦
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104584544A publication Critical patent/CN104584544A/zh
Application granted granted Critical
Publication of CN104584544B publication Critical patent/CN104584544B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

与静态基元不同,在深度函数是平面处,移动和离焦三角形的深度函数是在时间和透镜参数中的有理函数。紧凑深度函数可用于设计有效的深度缓冲器压缩器/解压缩器,这明显降低总深度缓冲器带宽使用。此外,这个压缩器/解压缩器实质上在需要执行的操作的数量上更简单,这使它比以前的方法对硬件实现更经得起检验。

Description

使用一般化平面编码的随机深度缓冲器压缩
相关申请的交叉引用
本申请要求2012年9月27日提交的临时申请序列号61/706,177的优先权,该临时申请通过引用被明确地并入本文。
技术领域
概括地说,本发明涉及深度缓冲,具体地说,本发明涉及使用一般化平面编码的随机深度缓冲器压缩的方法和装置。
背景技术
深度缓冲是解决在光栅化管线中的对象之间的可见度的标准技术。深度缓冲器保存每一个样本的深度值,表示与样本重叠的所有以前渲染的三角形的当前最靠近的深度。可以用很多方式定义深度值d。
在具有每像素很多样本的随机光栅化器中,深度缓冲器带宽要求比平常高得多,且深度数据如果可能的话应被压缩。大部分深度缓冲器压缩方案利用以下的事实:来自三角形的深度值可由平面表示。不幸的是,对于移动和离焦三角形,这不再是真。
在静态(2D)光栅化器中,深度函数可被表示为平面。这由很多深度压缩方案利用。平面编码不同于其它算法,因为它利用直接来自光栅化器的信息,且因此在压缩器中使用与在光栅化器中的完全相同的平面等式表示。深度信息被存储为一组平面和每一个图块(tile)的每样本平面选择掩码(mask)。当存在与图块重叠的几个三角形时,存储平面等式和选择掩码比仅仅存储每样本深度更紧凑。然而,当太多的三角形与图块重叠时,多个深度平面的存储成本比直接存储每样本深度值高。对于每一个图块,深度压缩可接着被禁用,或另一压缩算法被应用(其通常不能压缩以及平面编码)。
虽然平面编码对静态二维光栅化非常有用,它对为较高阶光栅化使用静态平面并不是足够的,其中深度函数更加复杂。
发明内容
本发明提供了一种计算机执行的方法,包括:使用硬件处理器计算经历运动模糊或景深中的至少一个的三角形的深度函数系数;对于多个图块中的每一个,使用硬件处理器计算每样本覆盖;以及在硬件图块深度压缩器中使用所述每样本覆盖来存储图块的样本的压缩深度。
本发明还提供了一种用于深度缓冲器压缩的装置,包括:用于计算经历运动模糊或景深中的至少一个的三角形的深度函数系数的单元;用于对于多个图块中的每一个,计算每样本覆盖和深度的单元;以及用于在图块深度压缩器中使用所述每样本覆盖来存储图块的样本的压缩深度的单元。
本发明还提供了一种用于深度缓冲器压缩的装置,包括:控制装置,其计算经历运动模糊或景深中的至少一个的三角形的深度函数系数,对于多个图块中的每一个,计算每样本覆盖,并且在图块深度压缩器中使用所述每样本覆盖来存储图块的样本的压缩深度;光栅化器,其耦合到所述控制装置;以及压缩器,其耦合到控制装置。
本发明还提供了一种用于深度缓冲器压缩的方法,包括:对于多个图块中的每一个,对于经历运动模糊和景深的重叠三角形,使用硬件处理器来存储在两个不同的时间表示所述三角形的三角形顶点位置;以及在图块深度压缩器中使用这些顶点位置来计算每样本覆盖,以存储图块的样本的压缩深度。
附图说明
关于下面的附图描述了一些实施例:
图1是一个实施例的示意性描述;
图2是根据一个实施例的序列的流程图;
图3是具有由四层指示的每像素四个样本的4x 4像素的运动模糊的描绘;
图4是对离焦模糊的描绘;
图5是一个实施例的系统描绘;以及
图6是一个实施例的正视图。
具体实施方式
平面编码可被一般化以包括随机效应,例如运动模糊和景深。深度函数系数在光栅化器中被计算并传递到压缩器。标准平面编码以形式d=A*x+B*Y+C使用每深度函数(即,平面)三个系数,以表示三角形的深度。当三角形经历随机效应例如运动模糊和景深时,深度函数不再是平面。然而,我们仍然可通过存储每三角形更多的系数来得到以形式d=f(x,y,u,v,t)的深度函数。
在一些实施例中,这种方法的益处包括实质上比前面的方法更有效的压缩算法。这通过直接根据光栅化器设置来提供深度函数的分析表示而变得可能,避免了在压缩器中找到较低阶表示的成本,如在以前的方法中的。与以前的平面压缩方法不同,这种方法非常适合于运动模糊和景深效应,且对于这些情况不崩溃。此外,因为这种方法在分析表示上操作,它在一些实施例中可同样适用于浮点精度深度缓冲器。
可在运动模糊和景深的情况下分析深度函数的数学表达式。虽然表达式可能表现得有些复杂,它们可被有效地简化,且深度函数的紧凑形式可用于设计用于随机光栅化的具有实质上更好的平均压缩比的算法。
通常,压缩器和解压缩器存在于深度系统中。压缩/解压缩应用于图块,其一般是在矩形屏幕-空间区内部的深度样本的集合。
假定我们有具有裁剪空间顶点位置的三角形。在均匀(homogeneous)光栅化中,二维均匀(2DH)边缘等式ek=nk·x对应于图像平面位置x=(x,y,1)和边缘平面的距离计算,边缘平面穿过原点,例如n2=p0×p1
任意每顶点属性Ak可内插(interpolated)在三角形上。可通过估计和标准化对应的2DH边缘等式来找到三角形的每一个重心坐标B0,B1,B2,使得
可然后通过标准重心内插来找到给定的样本点x的内插属性A:
A ( x , y ) = ΣA k B k = A 0 ϵ 0 + A 1 ϵ 1 + A 2 ϵ 2 ϵ 0 + ϵ 1 + ϵ 2 - - - ( 1 )
通过单独地内插z和w来形成深度值d,且然后执行除法:
d ( x , y ) = z ( x , y ) w ( x , y ) = Σz k B k Σw k B k = Σz k e k Σw k e k - - - ( 2 )
如果我们考虑分母,我们看到:
∑wkek=(∑wkpi×pj)·x (3)=(0,0,det(pk,pi,pj))·(x,y,1)=det(pk,pi,pj),
其独立于(x,y)。这是由原点和三角形跨越的四面体的带符号体积的六倍,这可用于检测三角形是否面向背面。
如果我们使用标准保护矩阵,使得(zcam,1)到裁剪空间((z,w)的变换可被表示为(参看标准Direct3D投影矩阵):
z=azcam+b,w=zcam, (4)
然后可简化深度函数。系数a和b只取决于zne ar和zfar。组合等式2和4并简化给了我们:
d ( x , y ) = z ( x , y ) w ( x , y ) = a + bΣe k Σw k e k - - - ( 5 )
我们现在得到2D深度函数,其今天广泛用于渲染系统。然而,等式5可增大,使得它对在较高维度中采样的深度成立。例如,添加运动模糊和景深意味着z、w和边缘等式是快门时间t和透镜位置(u,v)的函数。因此我们可以更一般的形式写出深度函数:
d ( x , y , ... ) = a + bΣe k ( x , y , ... ) Σw k ( x , y , ... ) e k ( x , y , ... ) , - - - ( 6 )
其中…应以新的增加的维度代替。
对于包括运动模糊和离焦模糊的较高阶光栅化,静态平面等式不适合于表示深度函数,因为深度函数在那些情况下复杂得多。对于运动模糊,深度函数是例如三次有理多项式。因此,平面编码方法被一般化,以便也处理运动模糊和离焦模糊。
一般化平面编码(GPE)算法几乎与静态平面编码相同,除了运动模糊的平面等式和/或离焦平面等式使用更多的存储空间,以及深度函数估计起来更昂贵以外。这可在等式6中看到,等式6基于更复杂的边缘等式ek分量。然而,对特定情况的系数的所需数量可实质上减小,这使在压缩表示中适应更多的平面变得可能。这又促成更高的压缩比和更快的深度估计。
类似于静态平面编码,一般化深度(例如运动和离焦模糊)的压缩表示包括可变数量的一般化平面等式,以及每样本的平面选择器位掩码。如果在压缩表示中存在至多n个平面等式,则每一个样本对于平面选择器位掩码需要位。接着,我们对较高阶光栅化简化深度函数。
我们通过建立以矩阵形式的时间相关的属性内插来开始对运动模糊的深度函数推导。然后,我们继续前进到减小确切地表示三角形的内插深度所需的系数的数量。
存储运动模糊三角形的深度函数的一种方法是保留在t=0和t=1时的所有顶点位置,其由总共4x3x2=24个坐标值(例如浮点)组成。如果投影矩阵是已知的并可全局地被存储,则只需要3x3x2=18个坐标值,因为z然后可使用例如等式4从w得到。在下面的讨论中,我们显示深度函数可如何被重写并简化以只包含13个值,这实现更有效的存储。
在下面的推导中,我们假设顶点在每一个框架内的裁剪空间中线性地移动。因此,顶点位置pk变成时间的函数:
pk(t)=qk+tdk (7)
其中dk是顶点k的对应的运动矢量。因为顶点依赖于时间,2DH边缘等式形成t的二次多项式:
ek(x,y,t)=(pi(t)×pj(t))·x=(fkt2+gkt+hk)·x (8)
其中
hk=qi×qj,gk=qi×dj+di×qj,fk=di×dj (9)
为了方便,我们以矩阵形式重写边缘等式:
ek(x,y,t)=t2CkxT,其中
且t2=(1,t,t2),x=(x,y,1),以及Ck是如上所述的3x3矩阵。
通过组合矩阵概念和等式1,我们有如何将顶点属性Ak内插在运动模糊的三角形上的一般表达式:
A ( x , y , t ) = t 2 ( ΣA k C k ) x T t 2 ΣC k x T - - - ( 11 )
然而,如果属性本身随着t而改变,例如我们得到用于将时间相关属性内插在三角形上的一般表达式,有三次的分子:
A ( x , y , t ) = t 2 ( Σ ( A k 0 + tA k d ) C k ) x T t 2 ΣC k x T = tC A x T t 2 ΣC k x T - - - ( 12 )
其中t=(1,t,t2,t3),且顶点属性Ak与每一个Ck相乘并被求和以形成4x3系数矩阵CA。这个形式可用于将wclip属性内插在像素中心处。
为了计算深度函数我们执行裁剪空间顶点位置的z-和w-分量的重心内插,这些顶点位置现在是t的线性函数,例如z(t))=qz+tdz和w(t)=qw+tdw
让我们考虑深度函数d(x,y,t):
d ( x , y , t ) = z ( x , y , t ) w ( x , y , t ) = t 2 ( Σ ( q k + td k z ) C k ) x T t 2 ( Σ ( q k w + td k w ) C k ) x T = tC z x T t 2 C w x T , - - - ( 13 )
其中4x3矩阵:
且4x3矩阵Cw被对应地定义。我们现在有以方便的形式的深度函数,但是所需要的系数的数量不比直接存储顶点位置的少。我们现在将检查系数矩阵Cz和Cw的内容,以便简化它们的表达式。
使用等式14和Ck的定义,我们可将Cw的第一行和最后一行表示为:
C w 0 = Σq k w h k = Σq k w q i × q j = ( 0 , 0 , det ( q k , q i , q j ) ) , C w 3 = Σd k w f k = Σd k w d i × d j = ( 0 , 0 , det ( d k , d i , d j ) ) , - - - ( 15 )
其中在最后一个步骤中,项对于x和y-分量抵消到零。两个其余的行看起来有点儿更复杂,但使用类似的推导和简化,我们得到:
C w 1 = Σ q k w g k + d k w h k = Σ q k w ( d i × q j + q i × d j ) + d k w ( q i × q j ) = Σ ( 0,0 Σ det ( d k , q i q j ) )
C w 2 = Σ q k w f k + d k w g k = ( 0,0 , Σ det ( q k , d i , d j ) ) .
使用这些表达式,我们可将tCwxT公式化为独立于(x,y)的t的二次函数:
tCwxT=Δ01t+Δ2t23t3, (16)
其中:
Δ0=det(qk,qi,qj),
Δ1=∑det(qk,qi,qj)
Δ2=∑det(qk,di,dj)
Δ3=det(dk,di,dj)。
不同地表达,分母tCwxT是移动三角形的背面状态,例如独立于(x,y)的det(p0(t),p1(t),p2(t))。
作为这些简化的结果,我们揭露了tCwxT没有对x和y的相关性,并简化到只需要4个系数的t的三次多项式。因此,使用这个分析,我们显示深度函数可由12(对于Cz)+4(对于Cw)=16个系数表示,这应与存储所有顶点位置所需的24个系数比较。这个公式实质上更紧凑。
如果我们使用标准投影矩阵,根据等式4,我们可进一步简化深度函数。如果我们返回到等式14并从投影矩阵插入约束,即,qz=aqw+b和我们得到:
C z = Σ ( q k z C ‾ k + d k z C ‾ k ) = Σ ( ( aq k w + b ) C ‾ k + ad k w C ‾ k ) = aC w + b Σ C ‾ k , - - - ( 17 )
我们组合这个结果与等式13以最后得到:
d ( x , y , t ) = tC z x T tC w x T = t ( aC w + b Σ C ‾ k ) x T tC w x T = a + b t ( Σ C ‾ k ) x T tC w x T = a + b t 2 ( Σ C k ) x T Δ 0 + Δ 1 t + Δ 2 t 2 + Δ 3 t 3 - - - ( 18 )
如可在上面看到的,我们将深度函数的表示从24个标量值降至13个(假设a和b由图形应用程序接口(API)给出)。
接着,我们考虑具有公共运动矢量的所有三个三角形顶点的特殊情况的额外优化,即,纯平移(translation)。在下面的示例中,我们假设使用标准投影矩阵(即等式4)。每一个三角形顶点的所平移的裁剪空间位置p′=(p′x,p′y,p′w)是:p′=p+d,其中d=(dx,dy,dw)是裁剪空间(xyw)中的矢量。
在所有运动矢量对三角形的三个顶点相等的情况下,我们可得到简化的深度函数。注意,系数fk=0,且
det(di,dj,dk)=det(d,d,d)=0
det(qi,dj,dk)=det(qi,d,d)=0。
此外,下式成立:
∑gk=∑d×(qj-qi)=d×∑(qj-qi)=0 (19)
深度函数可接着被简化为:
d ( x , y , t ) = a + b xΣh k Δ 0 + Δ 1 t - - - ( 20 )
我们将深度函数的表示从18个标量值降至5个(再次假设a和b由图形API给出)。
没有与对运动模糊有的一样多的机会来简化离焦模糊的深度函数。如果我们简单地存储所有顶点位置,则需要4x3=12个坐标值。然而如果投影矩阵是已知的,则数量减少到3x3=9。我们假设照相机焦距和透镜高宽(aspect)是全局地已知的。在下面的章节中,我们将显示对于离焦三角形如何将深度函数的存储要求减少到8个标量系数。
当景深被启用时,裁剪空间顶点位置在xy中根据透镜坐标(u,v)的函数被修剪。顶点位置被表示为:
p=q+cu′, (21)
其中c是混淆半径的带符号裁剪空间圆圈,u′=(u,ξv,0),且ξ是调节透镜高宽比的标量系数。我们使用这些顶点来建立边缘等式:
ek(x,y,u,v)=(pi(u,v)×pj(u,v))·x=(qi×qj+u′×(ciqi×cjqi))·x=(hk+u′×mk)·x1
其中我们引入mk=(ciqj-cjqi)和hk=qi×qj以简化概念。在u=(u,kv,1)的情况下,我们可以以矩阵形式将边缘等式写为:
ek(x,y,u,v)=uCkxT, (22)
其中:
C k = 0 - m k w m k y m k w 0 - m k y h k x h k y h k w - - - ( 23 )
类似于运动模糊情况,我们可将深度函数如下表示为(x,y,u,v)的有理函数:
d ( x , y , u , v ) = z ( x , y , u , v ) w ( x , y , u , v ) = uC z x T uC w x T , - - - ( 24 )
其中通过结合观察:
Σq k w m k w = Σq k w ( c i q j w - c j q i w ) = 0 , - - - ( 25 )
和在等式15中的顶行,Cw减少到单列,类似于运动模糊情况。因此,分母可被写为:
uC w x T = 0 0 Σq k w m k w u 0 0 - Σq k w m k x ξ v 0 0 det ( q 0 , q 1 , q 2 ) x T = Δ u u + Δ v v + Δ 0 , - - - ( 26 )
再次,这等于det(p0(u,v),p1(u,v),p2(u,v)),其也是离焦三角形的背面状态。
如果我们在如在等式4中的投影矩阵上引入限制,则Cz可以用下列方式被表示:
C z = Σq k z C k = Σ ( aq k w + b ) C k = aC w + bΣC k . - - - ( 27 )
如果我们进一步假设混淆半径的裁剪空间圆圈遵循透镜模型,则它可被写为使用此,我们看到:
Σ m k w = Σ ( c i p j w - c j p i w ) = Σ ( ( αp i w + β ) p j w - ( αp j w + β ) p i w ) = α Σ ( p i w p j w - p j w p i w ) + β Σ ( p j w - p i w ) = 0
且∑Ck采取形式:
ΣC k = 0 0 Σm k y 0 0 - Σm k x Σh k x Σh k y Σh k w - - - ( 28 )
使用此,我们显示:
d ( x , y , u , v ) = uC z x T uC w x T = a + b Σ h k · x + Σ m k y u - Σ m k x ξ v Δ u u + Δ v v + Δ 0 - - - ( 29 )
其可以用8个标量系数来表示(假定a和b是已知的)。分母在每一个变量中线性的。
算法可在借助包含深度编码译码器(压缩器和解压缩器)、深度缓存、挑选(culling)数据、以及图块表的深度系统来进行扩大的软件或硬件光栅化器中实现。为了减小设计空间,我们选择512位的缓存线尺寸,即,64个字节,其对于我们的目的是合理和现实的尺寸。这个选择的含意是使用512·n位存储的图块可被一直压缩到512·m位,其中1≤m<n,以便得到带宽使用。应注意,可使用任何实际缓存线尺寸,且512位仅用作示例。
因此在一些实施例中,图1所示的图形管线10可包括至少光栅化器12,其可以是基于软件或硬件的。它向压缩器14提供深度函数系数。压缩器14得到来自深度缓存16的深度数据和来自图块表18的图块信息。在一些实施例中,压缩器14和光栅化器12可由控制装置11控制。控制装置可以是处理器或控制器,作为示例。
即使运动模糊是三维的且离焦模糊使用四维,同样的图块概念也可用于这两种情况,以便简化讨论。可在图3和4中找到我们的概念的解释。在图3中,示出4x4像素的运动模糊,其中有由四个不同的层指示的每像素四个样本。总共有4x4x4个样本。如果n层用作用于压缩的图块尺寸,则我们将这样的图块表示为4x4xn。作为示例,如果每层被压缩为单独的图块,则我们用4x4x1表示这些图块。
在图4中,相同的概念用于离焦模糊,但具有不同的含义。在这里,透镜分成2x 2个较小的透镜区,且与以前一样,每像素有四个样本。再次,由四层表示。然而对于离焦模糊,4x4xn意味着n层区一起被压缩为图块。
参考图2,可在软件、固件和/或硬件中实现序列20。在软件和固件实施例中,它可由存储在一个或多个非暂时性计算机可读介质例如磁性、光学或半导体存储设备中的计算机执行的指令实现。在一些实施例中,例如图1所示的控制装置可用于这个目的。
序列20通过向光栅化器提供三角形来开始,如在块22指示的。光栅化器设置计算直接传递到图块深度压缩器的深度函数系数,如在块24中指示的。随机光栅化器对每一个图块计算深度中的每样本覆盖,如在块26指示的。然后图块深度压缩器采用覆盖掩码、每样本深度和深度函数系数作为输入。如果样本深度可由深度函数表示,则图块以压缩形式被存储,如在块28中指示的。
对于每8x8x1个图块挑选,我们每一个使用30位存储图块的zmin和zmax,其每一个用于完成Z-最大挑选和Z-最小挑选。除了最小和最大值以外,我们还对每组16个样本分配一位,或相当于未压缩样本的一个缓存线,以指示是否它们中的全部被清除。这每8x8x1个图块共计4个清除位,且所以对于挑选和清除位,每8x8x1个图块总共需要64位。
通过小缓存访问的或存储在片上存储器中的图块表存储每一个图块的图块头部。在一个实施例中,图块头部可存储四位,其中一个组合(0000b)指示图块未压缩地被存储,而其余15个组合用于指示不同的压缩模式。这四位可使用与挑选图块尺寸比较不同的图块尺寸,因为算法通常根据哪个图块尺寸被使用而相当不同地执行。例如,对于深度偏移压缩算法,较小的图块尺寸通常是有利的,而较大的图块尺寸可能对一般化平面编码(GPE)更好,一般化平面编码是存在于这个专利申请中的方法。
一般化平面编码器的一个实现如下。对于运动模糊编码器,我们让光栅化器转发关于应用到每一个三角形的运动的类型的信息。我们支持的三种不同类型的运动是静态(无运动)、仅仅平移、以及任意线性每顶点运动。此外,光栅化器转发指示哪个样本位置在三角形内部的覆盖掩码。对这些样本估计深度,并执行深度测试。任何以前绘制的三角形的深度函数被移除,如果它们的样本索引由进入的三角形的覆盖掩码覆盖。场编码器的深度以完全相同的方式工作,除了对离焦模糊没有被转发的特殊类型以外。应注意,我们的方法也同时对运动模糊和景深起作用。然而,在这种情况下,最紧凑的表示是对三角形的所有三个顶点仅仅存储在时间0和时间1时的每顶点(x,y,w)。虽然该表示未被优化,算法起作用并提供与上面描述的相同的优点。
新三角形可如下被添加到压缩表示。三角形可被光栅化到屏幕上的每一个覆盖的图块以得到其每样本覆盖和深度值。在每一个图块内,通过对紧凑表示解压缩来执行深度测试(以得到每一个覆盖的样本的所存储的深度值)。如果任何样本通过深度测试,则通过为当前三角形添加深度函数系数并更新位掩码来更新压缩的表示。如果没有样本通过深度测试,则不更新当前压缩的表示和位掩码。
下面,我们对同时的运动模糊和景深的情况讨论深度函数的情况。与只有运动模糊或只有景深的情况相反,存储作为(x,y,u,v,t)的函数的深度函数的系数的数量大于仅仅存储当t=0和t=1的三个三角形顶点。因此,我们不明确得到和简化以这种形式的深度函数,但直接使用顶点数据来工作。
对同时的运动模糊和景深的情况表示深度函数的一种方式是仅仅存储在被表示为qi的t=0、以及表示为ri的t=1时的三个三角形顶点。当访问图块时,给定样本的深度值可接着通过下列操作从这个数据得到:
1.首先估计样本的(u,v,t)位置的顶点位置,例如
pi(u,v,t)=(1-t)qi+tdi+ci(t)(u,ξv,0)
2.使用这些顶点位置来得到以形式d(x,y)=Ax+By+C的静态深度平面等式
3.估计样本的(x,y)位置的深度平面等式
这个深度函数表示的存储成本是2x3x4=24个标量值,其可被减小到2x3x3=18个标量值,如果投影矩阵的z映射是已知的,即,zclip=azcam+b,wclip=zcam。如前面所示的,如果我们对同时的运动模糊和景深的情况得到并简化深度函数,则它可以用25个标量值表示,这从存储方面来说更昂贵。
图5示出系统300的实施例。在实施例中,系统300可以是介质系统,虽然系统300不限于这个背景。例如,系统300可合并到个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板、触控板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如智能电话、智能平板计算机或智能电视机)、移动互联网设备(MID)、消息发送设备、数据通信设备等。
在实施例中,系统300包括耦合到显示器320的平台302。平台302可从内容设备接收内容,例如内容服务设备330或内容分发设备340或其它类似的内容源。包括一个或多个导航特征的导航控制器350可用于与例如平台302和/或显示器320交互作用。下面更详细描述这些部件中的每一个。
在实施例中,平台302可包括芯片组305、处理器310、存储器312、存储设备314、图形子系统315、应用316和/或无线电装置318的任何组合。芯片组305可提供在处理器310、存储器312、存储设备314、图形子系统315、应用316和/或无线电装置318当中的相互通信。例如,芯片组305可包括能够提供与存储设备314的相互通信的存储适配器(未绘出)。
处理器310可被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核心、或任何其它微处理器或中央处理单元(CPU)。在实施例中,处理器310可包括双核处理器、双核移动处理器等。
存储器312可被实现为易失性存储器设备,例如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、或静态RAM(SRAM)。
存储设备314可被实现为非易失性存储设备,例如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附加存储设备、闪存、配有电池的SDRAM(同步DRAM)、和/或网络可访问的存储设备。在实施例中,存储设备314可包括例如当多个硬盘驱动器被包括时增加对有价值的数字媒体的存储性能增强保护的技术。
图形子系统315可执行诸如静止图像的图像或视频的处理,以用于显示。图形子系统315可以是例如图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可用于通信地耦合图形子系统315和显示器320。例如,接口可以是高清多媒体接口、DisplayPort、无线HDMI、和/或符合无线HD的技术中的任一个。图形子系统315可集成到处理器310或芯片组305中。图形子系统315可以是通信地耦合到芯片组305的独立卡。
本文描述的图形和/或视频处理技术可在各种硬件架构中实现。例如,图形和/或视频功能可集成在芯片组中。可选地,可使用分立图形和/或视频处理器。作为又一实施例,图形和/或视频功能可由通用处理器(包括多核处理器)实现。在另一实施例中,可在消费电子设备中实现功能。
无线电装置318可包括能够使用各种适当的无线通信技术发送和接收信号的一个或多个无线电装置。这样的技术可涉及跨一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个人区域网(WPAN)、无线城域网(WMAN)、蜂窝网络、以及卫星网络。在跨这样的网络的通信中,无线电装置318可根据以任何版本的一个或多个可应用的标准来操作。
在实施例中,显示器320可包括任何电视机型监视器或显示器。显示器320可包括例如计算机显示屏、触摸屏显示器、视频监视器、电视机型设备、和/或电视机。显示器320可以是数字的和/或模拟的。在实施例中,显示器320可以是全息显示器。此外,显示器320可以是可接收视觉投影的透明表面。这样的投影可传送各种形式的信息、图像、和/或对象。例如,这样的投影可以是用于移动增强显示(MAR)应用的视觉覆盖。在一个或多个软件应用316的控制下,平台302可在显示器320上显示用户界面322。
在实施例中,内容服务设备330可以由任何国家、国际和/或独立服务作为主机,且因此可由平台302经由例如互联网访问。内容服务设备330可耦合到平台302和/或显示器320。平台302和/或内容服务设备330可耦合到网络360以将媒体信息传递至/从(例如发送和/或接收)网络360。内容分发设备340也可耦合到平台302和/或显示器320。
在实施例中,内容服务设备330可包括有线电视盒、个人计算机、网络、电话、启用互联网的设备或能够分发数字信息和/或内容的电器、以及能够经由网络360或直接地在内容提供者和平台302和/或显示器320之间单向或双向地传递内容的任何其它类似设备。将认识到,可将内容经由网络360单向和/或双向地传递至/从系统300中的任一个部件和内容提供者。内容的示例可包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。
内容服务设备330接收内容,例如有线电视节目,包括媒体信息、数字信息、和/或其它内容。内容提供者的示例可包括任何有线或卫星电视或无线电或互联网内容提供者。所提供的示例并不意在限制本发明的实施例。
在实施例中,平台302可从具有一个或多个导航特征的导航控制器350接收控制信号。控制器350的导航特征可用于与例如用户界面322交互作用。在实施例中,导航控制器350可以是指点设备,其可以是允许用户将空间(例如连续和多维的)数据输入到计算机中的计算机硬件部件(特别是人机接口设备)。很多系统例如图形用户界面(GUI)和电视机和监视器允许用户使用物理手势来控制和提供数据给计算机或电视机。
可在显示器(例如显示器320)上通过指针、光标、聚焦环、或显示在显示器上的其它视觉指示器的运动来仿效控制器350的导航特征的运动。例如,在软件应用316的控制下,位于导航控制器350上的导航特征可映射到例如显示在用户界面322上的虚拟导航特征。在实施例中,控制器350可以不是单独的部件,而集成到平台302和/或显示器320中。然而实施例并不限于在本文所示或所述的元件或上下文中。
在实施例中,驱动器(未示出)可包括使用户能够像电视机一样(例如当被启动时在初始引导之后通过触摸按钮)即时地打开和关闭平台302的技术。当平台被“关闭”时,程序逻辑可允许平台302将内容流式传送到媒体适配器或其它内容服务设备330或内容分发设备340。此外,芯片组305可包括例如对5.1环绕声音频和/或高分辨率7.1环绕声音频的硬件和/或软件支持。驱动器可包括集成图形平台的图形驱动器。在实施例中,图形驱动器可包括外围部件互连(PCI)Express图形卡。
在各种实施例中,在系统300中示出的任一个或多个部件可以被集成。例如,平台302和内容服务设备330可以被集成,或平台302和内容分发设备340可以被集成,或例如平台302、内容服务设备330、以及内容分发设备340可以被集成。在各种实施例中,平台302和显示器320可以是集成单元。例如显示器320和内容服务设备330可以被集成,或显示器320和内容分发设备340可以被集成。这些示例并不意在限制本发明。
在各种实施例中,系统300可被实现为无线系统、有线系统、或这两者的组合。当被实现为无线系统时,系统300可包括适合于通过无线共享介质(例如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等)进行通信的部件和接口。无线共享介质的示例可包括无线频谱(例如RF频谱等)的部分。当被实现为有线系统时,系统300可包括适合于通过有线通信介质(例如输入/输出(I/O)适配器、使I/O适配器与对应的有线通信介质连接的物理连接器、网络接口卡(NIC)、磁盘控制器、视频控制器、音频控制器等)进行通信的部件和接口。有线通信介质的示例可包括电线、电缆、金属引线、印刷电路板(PCB)、底板、交换机结构、半导体材料、双绞线、同轴电缆、光纤等。
平台302可建立一个或多个逻辑或物理通道以传递信息。信息可包括媒体信息和控制信息。媒体信息可以指表示用来给用户的内容的任何数据。内容的示例可包括例如来自语音对话、视频会议、流式视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音对话的数据可以是例如说话信息、静默期、背景噪声、舒适噪声、音调等。控制信息可以指表示用来给自动化系统的命令、指令或控制字的任何数据。例如,控制信息可用于按规定路线发送媒体信息通过系统,或指示节点以预定方式处理媒体信息。然而实施例并不限于图5所示或所述的元件或上下文中。
如上所述,系统300可体现在变化的物理风格或形状因子中。图6示出小形状因子设备400的实施例,系统300可体现在其中。在实施例中,例如设备400可被实现为具有无线能力的移动计算设备。移动计算设备可以指例如具有处理系统和移动功率源或电源(例如一个或多个电池)的任何设备。
如上所述,移动计算设备的示例可包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板、触控板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如智能电话、智能平板计算机或智能电视机)、移动互联网设备(MID)、消息发送设备、数据通信设备等。
移动计算设备的示例也可包括布置成由人佩戴的计算机,例如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋计算机、衣服计算机、以及其它可佩戴的计算机。在实施例中,例如移动计算设备可被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。虽然作为示例可使用被实现为智能电话的移动计算设备描述一些实施例,可认识到,也可使用其它无线移动计算设备来实现其它实施例。实施例并不被限制在这个上下文中。
在一些实施例中,处理器310可与照相机322和全球定位系统传感器320进行通信。耦合到处理器310的存储器312可存储用于在软件和/或固件实施例中实现图1和2所示的序列的计算机可读指令。特别是,序列可由存储计算机实现的指令的一个或多个非暂时性存储设备实现。
如图6所示,设备400可包括壳体402、显示器404、输入/输出(I/O)设备406、以及天线408。设备400也可包括导航特征412。显示器404可包括用于显示对于移动计算设备合适的信息的任何适当的显示单元。I/O设备406可包括用于将信息输入到移动计算设备中的任何适当的I/O设备。I/O设备406的示例可包括字母数字键盘、数字小键盘、触控板、输入键、按钮、开关、摇臂开关、麦克风、扬声器、语音识别设备和软件等。信息也可通过麦克风的方式输入到设备400中。这样的信息可由语音识别设备数字化。实施例并不被限制在这个上下文中。
可使用硬件元件、软件元件、或这两者的组合来实现各种实施例。硬件元件的示例可包括处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件的示例可包括软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任何组合。确定实施例是否使用硬件元件和/或软件元件来实现可根据任何数量的因子(例如期望计算速率、功率水平、耐热性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束)而改变。
至少一个实施例的一个或多个方面可由存储在代表在处理器内的各种逻辑的机器可读介质上的代表性指令实现,指令在被机器读取时使机器制造逻辑以执行在本文描述的技术。被称为“IP核心”的这样的表示可存储在有形机器可读介质上并被提供到各种消费者或制造设施以装入实际上制造逻辑或处理器的制造机器中。
一个或多个实现的前述描述提供例证和描述,但并不意为详尽的或将本发明的范围限制到所公开的精确形式。修改和变化按照上面的教导是可能的,或可从本发明的各种实现的实践来获取。
可在各种硬件架构中实现本文描述的图形处理技术。例如,图形功能可集成在芯片组内。可选地,可使用分立图形处理器。作为又一实施例,图形功能可由通用处理器(包括多核处理器)实现。
在整个这个说明书中对“一个实施例”或“实施例”的提及意味着关于该实施例描述的特定的特征、结构、或特性被包括在本发明内包含的至少一个实现中。因此,短语“一个实施例”或“在实施例中”的出现并不一定指同一实施例。此外,特定的特征、结构、或特性可以其它适当的形式而不是在所示的特定实施例中建立,且所有这样的形式可包括在本申请的权利要求内。
虽然关于有限数量的实施例描述了本发明,本领域中的技术人员从其将认识到很多修改和变化。意图是所附权利要求涵盖如落在本发明的真实精神和范围内的所有这样的修改和变化。

Claims (30)

1.一种计算机执行的方法,包括:
使用硬件处理器计算经历运动模糊或景深中的至少一个的三角形的深度函数系数;
对于多个图块中的每一个,使用硬件处理器计算每样本覆盖;以及
在硬件图块深度压缩器中使用所述每样本覆盖来存储图块的样本的压缩深度。
2.如权利要求1所述的方法,包括使用光栅化器来进行计算。
3.如权利要求2所述的方法,包括使用软件光栅化器来进行计算。
4.如权利要求2所述的方法,包括直接根据光栅化器设置来准备深度函数的表示。
5.如权利要求2所述的方法,包括将关于运动类型的信息从所述光栅化器转发到所述压缩器。
6.如权利要求1所述的方法,包括对于运动模糊使用仅仅16个系数来表示深度函数。
7.如权利要求1所述的方法,包括对于景深使用仅仅13个系数来表示深度函数。
8.如权利要求1所述的方法,包括使用投影矩阵来减少深度函数系数的数量。
9.如权利要求1所述的方法,包括将指示压缩模式的图块头部存储在图块表中。
10.如权利要求1所述的方法,包括通过下列步骤来将三角形添加到压缩表示:将所述三角形光栅化到每一个覆盖的图块以获得其每样本覆盖和深度值;在每一个图块内执行深度测试;并且如果任何样本通过所述深度测试,则更新所述压缩表示。
11.如权利要求1所述的方法,包括减少深度函数系数的数量。
12.一种用于深度缓冲器压缩的装置,包括:
用于计算经历运动模糊或景深中的至少一个的三角形的深度函数系数的单元;
用于对于多个图块中的每一个,计算每样本覆盖和深度的单元;以及
用于在图块深度压缩器中使用所述每样本覆盖来存储图块的样本的压缩深度的单元。
13.如权利要求12所述的装置,所述装置还包括用于使用光栅化器来进行计算的单元。
14.如权利要求13所述的装置,所述装置还包括用于使用软件光栅化器来进行计算的单元。
15.如权利要求13所述的装置,所述装置还包括用于直接根据光栅化器设置来准备深度函数的表示的单元。
16.如权利要求13所述的装置,所述装置还包括用于将关于运动类型的信息从所述光栅化器转发到所述压缩器的单元。
17.如权利要求12所述的装置,所述装置还包括用于对于运动模糊使用仅仅16个系数来表示深度函数的单元。
18.如权利要求12所述的装置,所述装置还包括用于对于景深使用仅仅13个系数来表示深度函数的单元。
19.如权利要求12所述的装置,所述装置还包括用于使用投影矩阵来减少深度函数系数的数量的单元。
20.如权利要求12所述的装置,所述装置还包括用于将指示压缩模式的图块头部存储在图块表中的单元。
21.如权利要求12所述的装置,所述装置还包括用于减少深度函数系数的数量的单元。
22.一种用于深度缓冲器压缩的装置,包括:
控制装置,其计算经历运动模糊或景深中的至少一个的三角形的深度函数系数,对于多个图块中的每一个,计算每样本覆盖,并且在图块深度压缩器中使用所述每样本覆盖来存储图块的样本的压缩深度;
光栅化器,其耦合到所述控制装置;以及
压缩器,其耦合到控制装置。
23.如权利要求22所述的装置,其中所述光栅化器是软件光栅化器。
24.如权利要求22所述的装置,所述控制装置直接根据光栅化器设置来准备深度函数的表示。
25.如权利要求22所述的装置,所述光栅化器对于运动模糊使用仅仅16个系数来表示深度函数。
26.如权利要求22所述的装置,所述光栅化器对于景深使用仅仅13个系数来表示深度函数。
27.如权利要求22所述的装置,所述光栅化器使用投影矩阵来减少深度函数系数的数量。
28.如权利要求22所述的装置,所述控制装置将指示压缩模式的图块头部存储在图块表中。
29.如权利要求22所述的装置,所述光栅化器减少深度函数系数的数量。
30.一种用于深度缓冲器压缩的方法,包括:
对于多个图块中的每一个,对于经历运动模糊和景深的重叠三角形,使用硬件处理器来存储在两个不同的时间表示所述三角形的三角形顶点位置;以及
在图块深度压缩器中使用这些顶点位置来计算每样本覆盖,以存储图块的样本的压缩深度。
CN201380044313.0A 2012-09-27 2013-06-27 使用一般化平面编码的随机深度缓冲器压缩 Expired - Fee Related CN104584544B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261706177P 2012-09-27 2012-09-27
US61/706,177 2012-09-27
US13/721,163 US9111392B2 (en) 2012-09-27 2012-12-20 Stochastic depth buffer compression using generalized plane encoding
US13/721,163 2012-12-20
PCT/US2013/048034 WO2014051793A1 (en) 2012-09-27 2013-06-27 Stochastic depth buffer compression using generalized plane encoding

Publications (2)

Publication Number Publication Date
CN104584544A CN104584544A (zh) 2015-04-29
CN104584544B true CN104584544B (zh) 2016-12-07

Family

ID=50338396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380044313.0A Expired - Fee Related CN104584544B (zh) 2012-09-27 2013-06-27 使用一般化平面编码的随机深度缓冲器压缩

Country Status (5)

Country Link
US (1) US9111392B2 (zh)
KR (1) KR101713041B1 (zh)
CN (1) CN104584544B (zh)
DE (1) DE112013003714T5 (zh)
WO (1) WO2014051793A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552620B2 (en) * 2014-06-30 2017-01-24 Intel Corporation Depth offset compression
US9799091B2 (en) * 2014-11-20 2017-10-24 Intel Corporation Apparatus and method for efficient frame-to-frame coherency exploitation for sort-last architectures
GB2539509B (en) * 2015-06-19 2017-06-14 Advanced Risc Mach Ltd Method of and apparatus for processing graphics
US10282889B2 (en) 2016-11-29 2019-05-07 Samsung Electronics Co., Ltd. Vertex attribute compression and decompression in hardware
WO2019094474A1 (en) * 2017-11-07 2019-05-16 Total E&P Research And Technology Usa Llc Measurement of flow properties in pipelines
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

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6956576B1 (en) 2000-05-16 2005-10-18 Sun Microsystems, Inc. Graphics system using sample masks for motion blur, depth of field, and transparency
US8089486B2 (en) 2005-03-21 2012-01-03 Qualcomm Incorporated Tiled prefetched and cached depth buffer
US9082228B2 (en) * 2011-01-12 2015-07-14 Intel Corporation Analytical motion blur rasterization with compression
GB2487421A (en) 2011-01-21 2012-07-25 Imagination Tech Ltd Tile Based Depth Buffer Compression

Also Published As

Publication number Publication date
CN104584544A (zh) 2015-04-29
WO2014051793A1 (en) 2014-04-03
US9111392B2 (en) 2015-08-18
US20140085300A1 (en) 2014-03-27
KR20150038428A (ko) 2015-04-08
KR101713041B1 (ko) 2017-03-07
DE112013003714T5 (de) 2015-04-16

Similar Documents

Publication Publication Date Title
CN104584544B (zh) 使用一般化平面编码的随机深度缓冲器压缩
KR100519779B1 (ko) 깊이영상기반 3차원 그래픽 데이터의 고속 시각화 방법 및장치
CN104715501B (zh) 解耦的着色流水线
CN104937927B (zh) 2维图像或视频到3维立体图像或视频的实时自动转换
CN112614213B (zh) 人脸表情确定方法、表情参数确定模型、介质及设备
KR101520647B1 (ko) 3차원 메쉬 모델의 메쉬 데이터의 압축 및 복원 방법 및시스템
CN104756150B (zh) 深度缓冲
Gajer et al. GRIP: Graph drawing with intelligent placement
CN108734749A (zh) 图像的视觉风格变换
CN112819947A (zh) 三维人脸的重建方法、装置、电子设备以及存储介质
CN104704469B (zh) 动态地重新平衡图形处理器资源
EP4053799A1 (en) Compressed ray direction data in a ray tracing system
CN104040589B (zh) 使用随机光栅化生成随机采样分布的图形处理方法和设备
CN117372631B (zh) 一种多视角图像生成模型的训练方法、应用方法
CN110322571B (zh) 一种页面处理方法、装置及介质
US20090309877A1 (en) Soft shadow rendering
CN109697748A (zh) 模型压缩处理方法、模型贴图处理方法装置、存储介质
CN104603844A (zh) 减小的位计数多边形光栅化
TW202240531A (zh) 影像生成、三維人臉模型生成的方法、裝置、電子設備及儲存媒體
Dong et al. A time-critical adaptive approach for visualizing natural scenes on different devices
CN106462936A (zh) 深度偏移压缩
Mosegaard et al. Real-time Deformation of Detailed Geometry Based on Mappings to a Less Detailed Physical Simulation on the GPU.
CN115984440A (zh) 对象渲染方法、装置、计算机设备和存储介质
Song et al. Vector regression functions for texture compression
TWI601090B (zh) 用於隨機柵格化之彈性散焦模糊的技術

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161207

Termination date: 20210627

CF01 Termination of patent right due to non-payment of annual fee