CN101068363B - 减少传输图形数据的频宽需求的系统与方法 - Google Patents

减少传输图形数据的频宽需求的系统与方法 Download PDF

Info

Publication number
CN101068363B
CN101068363B CN 200710109969 CN200710109969A CN101068363B CN 101068363 B CN101068363 B CN 101068363B CN 200710109969 CN200710109969 CN 200710109969 CN 200710109969 A CN200710109969 A CN 200710109969A CN 101068363 B CN101068363 B CN 101068363B
Authority
CN
China
Prior art keywords
mentioned
pixel
predicated error
data
frequency range
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 200710109969
Other languages
English (en)
Other versions
CN101068363A (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.)
Via Technologies Inc
Original Assignee
Via Technologies 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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN101068363A publication Critical patent/CN101068363A/zh
Application granted granted Critical
Publication of CN101068363B publication Critical patent/CN101068363B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

减少传送图形数据的外部频宽需求的多种实施例包含其中。一个实施例包含一种减少传送图形数据的外部频宽需求的系统,上述系统包括预测误差计算器用以产生像素图块的z轴数据的预测误差矩阵,位长度计算器用以计算储存所需的位数,数据编码器用以将上述预测误差矩阵编码成压缩区块,以及封包器用以在单一运算中移动上述压缩区块至外部存储器位置。

Description

减少传输图形数据的频宽需求的系统与方法
技术领域
本发明是有关于图像数据压缩,更特别是指一种z轴数据压缩与编码的系统与方法。
背景技术
如本领域技术人员所知,艺术与科学上的3D计算机图像是由3D物体的2D图像所产生或绘制,再呈现于显示装置(如阴极射线管显示器或液晶显示器)上。此物体可能为简单的几何基元(primitive),例如点、线、三角形、或是多边形。许多复杂的物体可以由一连串相连的平面多边形代表而绘制于显示装置上,举例来说,此物体可由一连串相连的平面三角形来代表。所有几何基元可能最后都以一个顶点或一组顶点来表示,举例而言,坐标(x,y,z)可能定义成一个点,或是一条线的端点,或是多边形的一角。
为了产生一组数据让一个3D基元的2D投影显示于计算机监示器或其它显示装置,此基元的顶点将在绘图管线(pipeline)中经过一连串的运算或是阶段。一个基本的管线仅是一连串处理单元或阶段的迭合,把前一个阶段的输出当成下一个阶段的输入。举例来说,在一个图形处理器中处理阶段包括有顶点运算、基元组合运算、像素运算、纹理组合运算、描绘运算、以及碎形运算。
在典型图形显示系统中,图像数据库(例如指令列)可存有场景的物体描述,这些物体被描述成覆盖在其表面的数个小多边形。同样地,数个小区块(tile)也可以同样的方式覆盖在一墙面或其它表面。每个多边形被表示成一个表,包括有顶点坐标(模形坐标里的X轴坐标、Y轴坐标、Z轴坐标),一些材质表面特性的叙述(颜色、纹理、亮度等),还可能有每个顶点构成的表面的正规向量。对于具有复杂曲度表面的3D物体而言,多边形通常必须为三角形或四边形,而后者还可被分解成一对三角形。
转换引擎对应使用者所输出的视角转换物体的坐标。此外,使用者可设定视野,产生的图像大小,以及后端的可见度,以视需要包含或移除背景。当视野被选择时,修剪逻辑电路便移除在视野外的多边形(三角形),并修剪部分在视野外但部分在视野内的多边形。这些被修剪的多边形将对应到在视野内的多边形,并且其新边将对应到视野内的边。这些多边形的顶点接着以对应屏幕视野(X,Y坐标)和深度(Z坐标)的坐标形式传送至下一阶段。在典型系统中,之后会有光源模型将光源纳入考虑。多边形的色彩值接着传送至描绘器,描绘器系产生数个区块的空白像素作为之后的可视性(visibility)决定,或隐藏表面的移除及剩余像素的纹理计算/着色。
图1表示现今的隐藏表面移除(hidden surface removal)单元的实施方式,一般称为z轴数据处理单元。如本领域技术人员所知,系统效能是经由使用两阶段隐藏表面移除管线的实现而改善。在第一阶段,ZL1单元处理一区块内多个像素的z轴数据。当一区块内像素的z轴数据超过ZL1的格式范围时,此z轴数据便必须以在像素z轴数据处理单元(有时称为ZL2)中作像素层级处理。
ZL1和ZL2的名称一般分别代表第一阶Z暂存器和第二阶Z暂存器。它们的名称会依算法的类型而有所不同,例如超Z暂存器或阶层式Z暂存器。此两阶Z单元实现允许较大像素图块的较高阶深度数据储存(如一个区块),以及最小颗粒的深度数据储存(如屏幕上的单一像素)。ZL1的优点为减少绘图管线中深度数据的计算复杂度。
区块产生器100产生像素图块(如一个8乘8的方格)的区块数据(亦即像素屏蔽),并传送请求至ZL1快取104。区块数据接着传送至ZL1102,ZL1102耦接ZL1快取104,并在区块层级定义可视度。若像素的z轴数据无法在ZL1102被处理的话,这些z轴数据将在像素层级的z轴数据处理单元ZL2 106被处理,ZL2 106耦接至ZL2快取108。在此设定下,ZL1 102可在一周期(cycle)中拒绝高达64个像素的处理,而未被拒绝的像素被标示成已接受或再测试以减少ZL2 106的存储器使用量。
随着绘图芯片的效能持续增加,当执行上述运算时,存储器的频宽需求变成整体效能的主要因素。根据摩尔定律(Moore’s Law),存储器频宽的增加通常落后于芯片运算能力的增加。于是,在许多例子中,系统中绘图引擎的整体效能最终受限于图像存储器频宽的可用量。当内部快取和数据压缩方案用于解决存储器频宽受限的问题时,快取方式的效率高度相关于存储器存取一致性。但是,其主要的问题在于,一个像素量相当大的大型三角型基元不利于绘图芯片内的快取,故提供快取的方式几乎变得无效。因此,一种前所未有的需求存在于业界中以解决上述的不足与缺陷。
发明内容
减少传输图像数据所需外部频宽的一系统实施例,包括预测误差计算器用以产生像素图块的z坐标数据的预测误差矩阵,位长度计算器用以计算储存此预测误差矩阵所需的总位数,数据编码器用以像此预测误差矩阵编码成压缩区块,以及封包器用以在单一运算中移动此压缩区块至外部存储器位置。
尚有另一实施例包含减少图像数据传输频宽需求的系统,包括解封包模块用以从外部存储器位置移动压缩区块并从此压缩区块解开预测误差矩阵,以及加法树用以导出像素图块。在一些实施例中,解封包模块还包括跳脱序列解封包器用以解压缩此预测误差矩阵里的每个跳脱序列,解封包器用于从此压缩区块还原出此预测误差矩阵,以及加法树还原出此像素图块。
尚有减少图像数据传输频宽需求的一方法实施例,包括:通过储存每个像素图块的预测误差而压缩包含数个像素图块的图像数据,计算像素图块的位长度,对压缩的z轴数据编码成压缩区块,在单一运算中移动每个压缩区块至输出总线,其中每个字组包含数个位,以及传送这些数据从输出总线至高速缓存供作往后还原之用。
本发明还提供一种减少传输图形数据的频宽需求的方法,包括:从高速缓存传送压缩数据至解封包单元;在上述解封包单元对上述压缩数据进行解压缩以取得像素图块内每个像素的预测误差;传送上述预测误差至加法树;以及在上述加法树里从上述预测误差导出图形数据。
其它本发明的系统、方法、技术特征,和/或优点,本领域技术人员可由下列叙述及所附图示得知。所有在本发明揭露范围内的其它的系统、方法、技术特征,和/或优点,将受到伴随的申请专利范围所保护。
附图说明
本发明所揭露的许多面向可由所附图示作最好诠释。图标所绘的元件并不按照比例,其用意在于清楚解释本发明的原则。此外,在这些图示中,相同的标号表示相对应的部分。虽然数个实施例相关于这些图示,但这不意味着限制本发明于这些实施例中,相反地,这意味着有许多可能的替代方案、修改、或相等物。
图1表示已知的z暂存器实施方式。
图2表示z轴数据压缩实施例的基本元件图。
图3A表示利用计算预测误差来压缩一区块内的z轴数据的一个实施例。
图3B表示区块内不同像素的预算误差。
图4A表示计算储存压缩区块所需位数的上层流程图实施例。
图4B表示代表8×8像素图块的压缩区块的的字段示意图。
图5为编码程序中配置预测误差与对应的跳脱序列的上层流程图实施例。
图6A和6B为封包器和解封包器的代表实施例。
图7为还原原始z轴数据在数个实施例中的上层流程图。
图8A说明图像处理系统810的实施例的元件方块图。
图8B表示有内嵌或电性耦接图形运算单元812的图像处理系统810的实施例方块图。
[主要元件标号说明]
100~区块产生器       102~ZL1
104~ZL1快取          106~ZL2
108~ZL2快取          202~z解编码器
204~预测误差计算器   206~位长度计算器
208~数据编码器       210~暂存器
212~封包器           214~第二阶高速缓存
216~跳脱序列解封包器 218~解封包器
220~加法树           810~图像处理系统
812~图形运算单元     814~Z解编码器
816~预测误差计算器   818~位长度计算器
820~数据编码器       822~封包器
824~第二阶高速缓存   826~解封包阶段
828~加法树           830~运算装置
832~输入/输出接口    834~存储器
836~显示装置         838~数据总线
840~绘图卡接口
具体实施方式
本发明的多种实施方式将在以下用文字叙述并伴随相关图标。当所附图标用说明文字解释时,并不意图限制本发明于这些实施例中。相反地,其意图涵盖所附申请专利范围的精神与范畴的许多替代方案、修改、以及相等物。
降低存储器频宽需求是现今绘图处理单元(GPU)架构最重要的。实现降低存储器频宽需求与通过压缩像素而改善快取效能的系统与方法的实施例于此叙述。实施例为大量减少图像处理系统在决定可视性时的存储器需求的z轴数据压缩方案。此种压缩方式的许多实施例利用基元内的z轴数据高度相关特性,并提供一个随机存取外部存储器数据的区块式数据处理方案。最后,这些实施例从另一角度看,可完美地在绘图芯片中实现此压缩方案而不需变更现存的芯片架构。
当有边角在压缩区块里时(亦即此压缩区块包含某三角形基元的其中一角),压缩会变得较无效率。然而,Z暂存解编码器(或称Z codec)的实施例则有效率地补偿这些不足。在一个区块里z值的线性改变是已知的,而此特质可用作高效率的增量z压缩方案。也就是说,许多实施例是指储存z值改变量的压缩方案。此最终结果可大量减少未压缩的z轴数据的存储器储存需求。
图形数据通常指的是在图像处理系统中绘图管线z轴数据。此外,具有三个变量的梯度函数是每个像素对于水平方向与垂直方向的z值改变的3D向量。对于每个像素,梯度向量指出预测误差最可能出现的方向,并且此梯度向量对应至该方向的改变率。三角形基元内的z轴数据就某种程度上是多余的,因此对某一三角形基元而言,大部分的z轴数据是多余的。这表示几千个像素里,只用两个梯度便可有效表示所有像素。因此,z轴数据的一个特性便是在一大三角形基元里其具有固定的梯度。也就是说,在某一三角形基元里所有像素的z轴数据通常座落于相同平面。这可允许同一区块内的像素用线性外差的方式取得其z轴数据。一般而言,这对以熵(entropy)为基础的压缩器产生非常好的熵减少。
图2表示z轴数据压缩实施例的基本元件图。图2的z解编码器202执行z压缩数据的许多功能。如图所示,z解编码器202可能包含预测误差计算器204、位长度计算器206、数据编码器208、储存所有z压缩数据长度的暂存器210、以及封包器212。这些为z压缩数据的基本元件。只要z轴数据处于压缩状态,第二阶高速缓存214就会储存z轴数据作为以后使用。当压缩的z轴数据被存取时,压缩的z轴数据从第二阶高速缓存214提取出来并送至跳脱序列解封包器216,再传送至数据解封包器218。数据接着再送至加法树220还原成原始未压缩的z轴数据。
在压缩路径中,预测误差计算器204计算一区块(8×8的像素图块)内每个像素的预测误差。先判定一个参考像素后接着导出两参考梯度。再计算该区块内剩余像素的预测误差并储存至预测误差矩阵。此预测误差矩阵之后代表该区块内所有z轴数据。
位长度计算器206计算储存此预测误差矩阵(亦即z轴数据的压缩区块)所需的位数。基于此区块内最大的预测误差,决定全长值与半长值。当预测误差不为零且超过一定量时,此二值对应预测误差矩阵所需的位数。
数据编码器208对此区块每个像素的预测误差作编码,以在处理大型三角形基元时得到效率增加并同时降低硬件复杂度。为了取得平衡,必须选择一总量(或是位长度单元)用来为z压缩数据编码。在数据编码器208内,若一区块内一像素的预测误差不为零且大于1时,则必须决定储存此预测误差所需的位数,且同时对齐所选的位长度单位。代表编码数据的压缩数据字组的长度将储存至暂存器210作为此z压缩数据的档案复原之用。
接着,编码数据传送至封包器212以移动此包含z轴数据编码的压缩区块至存储器中。视每个像素图块的最大预测误差而定,压缩区块可能会大小不一。封包器212移动整个压缩区块至存储器中。在一些实施例中,封包器是指柱形移位器(barrel shifter)。然而,此封包器的多工器皆为独立控制。在封包器212中,完整的z压缩数据输出至第二阶高速缓存214作为稍后数据复原之用。如图2所示,该压缩数据段也写入第二阶高速缓存214中。
要存取压缩数据时,从第二阶高速缓存214取得z压缩数据并送至跳脱序列解封包器216。跳脱序列解封包器216解压缩关于一区块内每个像素的跳脱序列。跳脱序列接着用在解封包器218以决定数据内每段数据的位数。此阶段的数据包含预测误差。
最后,未压缩的预测误差矩阵送至加法树220以导出储存于预测误差矩阵内的原始z轴数据。从预测误差矩阵还原出z轴数据的细节说明如下。
图3A表示利用计算预测误差来压缩一区块内的z轴数据的一个实施例。以一个压缩区块储存z轴数据的角度来看,压缩器实际储存的值为预测误差。一般来说,预测误差是指实际值和预测值之间的差异。为了说明本实施例的压缩算法,在此用8×8像素的区块作说明,这也可称为压缩区块大小,而压缩区块大小不一定要限制在8×8像素。步骤310首先找出可以计算两参考梯度的参考像素。在不同的实施例中z轴数据可能拥有不同储存单位,包含但不限制于24位的z轴数据或是32位的z轴数据。
举例而言,一个8×8像素图块具有下述z值:
Z = z 00 z 01 z 02 z 03 z 04 z 05 z 06 z 07 z 10 z 11 z 12 z 13 z 14 z 15 z 16 z 17 z 20 z 21 z 22 z 23 z 24 z 25 z 26 z 27 z 30 z 31 z 32 z 33 z 34 z 35 z 36 z 37 z 40 z 41 z 42 z 43 z 44 z 45 z 46 z 47 z 50 z 51 z 52 z 53 z 54 z 55 z 56 z 57 z 60 z 61 z 62 z 63 z 64 z 65 z 66 z 67 z 70 z 71 z 72 z 73 z 74 z 75 z 76 z 77
在步骤320和330中,参考梯度dz/dx和dz/dy被计算出来。参考梯度的公式如下:
dz dx = z ij - z i - 1 , j , 以及    [1.0]
dz dy = z ij - z i , j - 1 - - - [ 2.0 ]
从此区块中,每个像素的预测误差可由下列一组公式推得(步骤340):
σ ij = z ij , i = j = 0 z ij - z i - 1 , j , i = 1 , j = 0 z ij - z i , j - 1 , i = 0 , j = 1 ( z ij - z i - 1 , j ) - ( z i - 1 , j - z i - 2 , j ) , i > 1 , j = 0 ( z ij - z i , j - 1 ) - ( z i , j - 1 - z i , j - 2 ) , i = 0 , j > 1 ( z ij - z i , j - 1 ) - ( z i - 1 , j - z i - 1 , j - 1 ) , i > 0 , j > 0 - - - [ 3 . 0 ]
图3B表示区块内不同像素的预算误差。以此例来说,若此区块完全落于一三角形基元里(亦即落于相同平面),则预测误差矩阵可能如下列所示(步骤350)
Z = z 00 dx 0 1 0 - 1 0 0 dy 0 0 0 - 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 - 1 0 0 - 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1
此预测误差矩阵的左上角的z值,Z00,为参考像素,而dx和dy为z梯度沿x-y轴的舍入值。最后,此预测误差矩阵里偶尔出现的+1和-1表示舍入误差。值得注意的是此预测误差矩阵大多数的值皆为0,因为此像素图块完全位于一基元内。
此压缩算法在一些实施例的目的在于减少传输数据所需的外部存储器频宽,但不是减少外部的储存量。所有压缩区块在存储器固定地址与固定配置空间,其大小取决于未压缩数据的大小。此外,此压缩算法受限于因为存储器存取量化而产生的显著粒度(granularity)损失。
在某些实施例中推导数据编码方案时,有数个因素需纳入考虑。一个考虑是想在数个完全包含数个8×8像素图块的大基元(例如三角形基元)达到最大压缩效能。另一个考虑则是减少硬件复杂度。当有许多8×8像素图块完全包含在一三角形基元内时,预测误差矩阵的计算将非常相似于上述的预测误差矩阵例子。因此,因为像素图块内的像素都位于同一平面上,其预测误差大部分皆为零。
于是,在一些实施例中,编码方案可利用此架构中z轴数据的阶级性。举例而言,由检查压缩区块(例如一个8×8区块)内的z轴数据,可决定最大预测误差的范围。于是,储存像素所需的位元素可轻易由检查8×8区块的z轴数据所决定。
另一些实施例考虑的是数据编码方案的硬件实现具有最小复杂度,可导致降低成本。为了达到这件事,第一要考虑的是必须配置表示误差的位数(例如预测误差的绝对值大于1),而这将取决于事先决定的量化级数,以在压缩率最大化时减少硬件复杂度与成本。
图4A表示计算储存压缩区块所需位数的上层流程图实施例。在这个例子里,位长度单位,或称量化级别,选择为4位(步骤410)。在一些实施例中,此值提供硬件复杂度与压缩最大化的最佳平衡点。位长度单位(量化级别)是压缩数据区块可对齐的最小单位或区段。举例来说,假设位长度单位为4位,若给定一段数据为10位长,则两个额外位将加入此数据区块,因为离10位最近的4倍数为12位。
每个储存像素图块的预测误差的压缩区块包括固定长度字段与可变长度字段。也就是说,每个压缩区块永远包含一个相同长度的字段。为了配置及指示像素的预测误差所需的位数,下列步骤将说明如何决定。首先,先决定表示z轴数据所需的位数(步骤420)。接着,决定「全长值」与「半长值」(步骤430)。全长值与半长值意指大于1的位数,可用作储存预测误差之用。此处的z轴数据表示给定8×8区块中最大预测误差。举例来说,此处的z轴数据为14位长。因为位量化电平为4位,因为实际的最小长度为12位。于是,可能的长度为12、16、20、以及24位。这些长度可能对应到全长值。在一些例子中,预测误差可能只需少数位而获得较佳压缩率,在这些例子中可使用「半长值编码」。全长值12、16、20、24以及24位可分别产生半长值8、8、12、以及12位,因为位长度单位在此例中选择成4位。在下一步骤440中,可决定压缩区块的可变字段。每个压缩区有可变字段因为区块内的预测误差大小可能大于1。因此,用来替预测误差编码的全长值和半长值可能每个压缩区块彼此不同。最后,在步骤450中,决定储存压缩区块的固定字段以及加入此压缩区块的可变字段部分。压缩区块的固定字段包括有:六十四个1位屏蔽,以及对应像素z00、z01、以及z10的三个24位。
图4B表示代表8×8像素图块的压缩区块的字段示意图。第一栏460包括64个1位屏蔽,对应像素图块内的每个像素,其中「0」值表示预差误差为零,「1」值表示需要两位的跳脱序列。第二栏470包括对应像素z00、z01、以及z10的三个24位。字段460和470构成压缩区块的固定字段。第三栏480包括剩余像素(亦即z00、z01、以及z10以外的像素)的跳脱序列。此字段是可变字段,因为像素可能有也可能没有对应的跳脱序列,而这会发生在像素的预测误差为零的时候,因此不需要跳脱序列。最后一栏490包括长预测误差(亦即预测误差的大小大于1)。全长值编码或半长值编码的需求视预测误差的大小而决定。只要编码后的压缩区块长度决定了,此长度将储存在独立的暂存器里,且需要3位去说明每个8×8区块的数据长度。当还原压缩的z轴数据时,需在读取压缩数据前先读取长度字段以事先知道有多少数据要读取。可以知道的是若长度字段对应未压缩的z轴数据时(例如24位的z轴数据用六个位长度单位表示),这表示数据未被压缩。运用此项特征可避免压缩数据大于未压缩状态的可能性。
图5为编码程序中配置预测误差与对应的跳脱序列的上层流程图实施例。此阶段的位配置包括第4图步骤440的可变字段叙述。在步骤510中,在一8×8压缩区块内的每个像素的预测误差(除了左上角的三个像素之外)先与{-1,0,1}比较。在步骤520中,预测误差「0」表示没有误差,于是没有额外的位配置给此特别预测误差。若预测误差的绝对值等于1时,则只需要两个额外位表示此预测误差。然而在步骤540中,若预测误差不是1、0、或-1的话,则表示预测误差的大小大于1。因此,此像素的预测误差要全长值编码或半长值编码。这些步骤在步骤560重复直到所有预测误差处理完毕。储存预测误差的所需总位数将包括储存区块的可变字段。
步骤580的两位配置指出预测误差大小是否为1,以及是否需要全长值或半长值来编码。可能发生的情况总结在第1表中。
第1表
像素z00、z01、以及z10的预测误差绝对值一定永远大于1,z00为一像素图块左上角的参考像素。因此,这三个像素使用1位屏蔽字段指出使用半长值或是全长值,且此三像素不需跳脱序列。因为最小半长值为8位,因此有24位(3像素×8位)可表示这些像素,将字段的总长度缩小。此24位以及64位屏蔽构成压缩数据的固定字段,是储存所有区块所需要的。跳脱序列与全、半长预测误差构成可变字段。若整个跳脱序列的位数不是4的倍数时,额外的位将加在字组的后面以对齐位长度单位(量化电平)。
图6A和6B为封包器和解封包器的代表实施例。图6A为有8个输入端的封包器单元的例子。封包器将一连串的独立字组(例如独立输入的预测误差矩阵)封装起来以避免浪费多余填塞位(padding bits)让独立字组对齐字节边缘。封包器可为柱形移位器(barrel shifter)。一般来说,柱形移位器为用作数据移位的装置/电路。柱形移位器也可以用软件仿真实现。柱形移位器在单一运算中将数据字组移位任意数个位,这可避免一次只对一栏移动一个数据位,因而减少整个字组的移位所需时间。一般来说,柱形移位器可由一连串的多工器实现。一个多工器的输出视移位值而连接至下一多工器的输入。
标准柱形移位器和此处所述的封包器的不同点在于封包器的每个多工器是独立控制的。举例来说,假设封包器运算在4位的数据数组,若封包器的输入和输出为2048位,则一个有512个输入端的柱形移位器将需要九个阶段来作移位。每个输入端有对应的移位值指派给它,而每个输入端的移位值不小于前一输入端的移位值。
每个输入端的多工器受控于下一输入端的移位值的最低有效位(LSB)。每个多工器不只移位数据也同时对移位值移位,因此在每个阶段丢弃最低有效位而让下一位变成最低有效位。因此,在原始移位值上的一位对应到一2次方的移位,此2次方的移位执行在柱形移位器的对应阶段上的数据移位。
解封包器被用在还原z轴数据的原始状态(亦即解压缩z轴数据)。图6B表示解封包器利用与封包器相同长度的数据信息。解封包器计算每个输入端的移位值再传递此值至多工器。每行输入-输出的多工器使用相同的移位值,因此不需要对移位值执行多工。因此,更精简的移位器设定可用在此解封包器。最低有效位被用在最后阶段的多工器,下一位被用在先前阶段的多工器等等。更多关于封包器与解封包器的功能信息可在美国专利公开第20050093873和20050093872号找到,本文于此引用上述两者所揭露的信息。
图7为还原原始z轴数据在数个实施例中的上层流程图。在步骤710中,z轴数据的压缩区块从第二阶高速缓存214中取出。接着,从暂存器210读取此压缩区块的数据大小(步骤720)。步骤730中,压缩数据传送至跳脱序列解封包器216,在跳脱序列解封包器216亦读取每个预测误差的1位屏蔽。所有64个预测误差(对应一个8×8像素图块)的1位屏蔽被读取。1位屏蔽作为跳脱序列解封包器216的输出控制。基于1位屏蔽的值可以解出对应的跳脱序列。举例来说,若读到一个预测误差的1位屏蔽为「0」时,表示此预测误差为零且没有配置多余的位储存此预测误差。然而,若读到一个预测误差的1位屏蔽为「1」时,则表示此预测误差存在对应的2位跳脱序列。跳脱序列接着被解开并用在下一阶段中(解封包器218)。
解开的跳脱序列在此阶段中用来控制解封包器218。在步骤740中,解封包器218根据跳脱序列从压缩区块解开并重建预测误差矩阵,依据1位屏蔽和2位跳脱序列,读取全长值或半长值。另一方面,若某预测误差的1位屏蔽值为「0」的话,则不会有多余位被解出来。
根据跳脱序列的值,跳脱序列解封包器会读取更多位或是继续读取下一个1位屏蔽。举例来说,若跳脱序列的值为「10」时,对应半长值的位数将被读取以重建此预测误差。另一方面,若跳脱序列的值为「00」时,没有多余位会被读取因为此特定值指出此像素的预测误差为+1。此程序将重复执行直到64个预测误差值(对应此个8×8像素图块)被读取。
最后,重建回来的预测误差矩阵传送至最后阶段,原始的z轴数据将在加法树里用预测误差矩阵重建回来(步骤750)。为了使预测误差矩阵还原回原始的z轴数据,此矩阵的所有值将从矩阵的左上角以重复的方式计算。在此实施例中,z轴数据值Zij使用下列方程式从预测误差矩阵重建回来。
z ij = ZL 1 max - σ ij i = j = 0 σ ij + z i - 1 , j , i = 1 , j = 0 σ ij + z i , j - 1 , i = 0 , j = 1 ( σ ij + z i - 1 , j ) + ( z i - 1 , j - z i - 2 , j ) , i > 1 , j = 0 ( σ ij + z i , j - 1 ) + ( z i , j - 1 - z i , j - 2 ) i = 0 , j > 1 ( σ ij + z i , j - 1 ) + ( z i - 1 , j - z i - 1 , j - 1 ) , i > 0 , j > 0 - - - [ 4.0 ]
σij表示位于预测误差矩阵第i行第j列的预测误差,而ZL1max表示整个矩阵的预测误差最大值。
图8A说明图像处理系统810的实施例的元件方块图。在一些实施例中,图像处理系统810可能为但不限制于任何型式的计算装置如桌上型计算机或笔记型计算机。
图像处理系统810可能包含图形运算单元(GPU)812,提供某种功能如像素着色的可编程化处理。这避免需要使用专用硬件执行这些功能。图形运算单元812可作为除了主运算器之外的分离协处理器,如图像处理系统里的中央处理器执行它被设定的特定运算工作。在执行这些工作时,图形运算单元可能释放此中央处理器去执行其它工作。在一些情况下,如图形运算单元之类的协处理器可能实际存在于计算机系统的主机板上并伴随着可能是微处理器的中央处理器。然而,在其它应用中,本领域技术人员可知图形运算单元可能存在于独立但电性耦合的适配卡,如本例中的绘图卡接口840。
如图所示,图形运算单元812可能包含z解编码器814和高速缓存如用来储存第二阶z轴数据的第二阶高速缓存824。在一些实施例中,z解编码器814包含预测误差计算器816、位长度计算器、数据编码器820、以及封包器822。这些模块被用在z轴数据压缩时。对还原压缩的z轴数据而言,z解编码器814还包含解封包阶段826和加法器828以从预测误差矩阵导出z轴数据。解封包阶段826包括有跳脱序列解封包器216及解封包器218。
当z解编码器814的许多模块用软件实现时,系统可以储存在计算机可读媒介中,以供多种计算机相关系统或方法使用或连接其上。在本文中计算机可读媒介可包含电子式、磁力式、光学式、或其它实体装置,包含供计算机相关系统或方法使用或连接的计算机程序。此接口可内嵌于许多计算机可读媒介,供指令执行系统、设备、或装置(如以计算机为基础的系统、内含处理器的系统,或是其它系统可从指令执行系统、设备、或装置撷取指令并执行指令的系统)使用或连接。
本文中的计算机可读媒介储存、连接、传递、或运送供多种计算机相关系统或方法使用或连接的程序。举例而言,计算机可读媒介可包含但不限制于电子式、磁力式、光学式、电磁式、红外线式、或半导体系统、设备、装置、或传递媒介。计算机可读媒介的特定例子可包含如下:有一条或数个线的电子连接点(电子式)、可携式计算机磁盘(磁力式)、随机存取存储器(RAM)(电子式)、只读存储器(ROM)(电子式)、可抹除可编程只读存储器(EPROM、EEPROM、或闪存)(电子式)、光纤(光学式)、以及可携式只读光盘(CDROM)(光学式)。
图8B表示有内嵌或电性耦接图形运算单元812的图像处理系统810的实施例方块图。一般而言,图像处理系统810可包括任何有线/无线运算装置,如桌上型计算机、可携式计算机、专用服务器、多处理器运算装置、移动电话、个人数字助理(PDA),手持装或平板计算机,内嵌式装置等等。举例而言,无关于其特定用途,图像处理系统810可包括图形接口840、运算装置830、数个输入/输出接口832以及存储器834,其中每个装置通过数据总线838相互连接。举例而言,显示装置836可包括计算机监示器或个人计算机的电浆屏幕或手持装置的液晶屏幕。
运算装置830可包含客制或市售处理器、中央处理器或介于图像处理系统810的数个处理器的辅助处理器、以半导体为基础的微处理器(以微芯片型式)、巨型处理器、一个或数个特殊应用集成电路(ASIC)、数个适合设定的数字逻辑门、以及其它已知的电子设施,包含数个独立元件可以多种结合方式共同完成运算系统的所有操作。
存储器834可包含易失性存储器元件(如动态随机存取存储器或静态随机存取存储器等等)和非易失性存储器元件(如只读存储器、硬盘、卡带、光盘等)的组合。存储器834通常包含反向操作系统,一个或数个反向应用程序、仿真系统、或仿真应用程序,供许多操作系统和/或仿真硬件平台,仿真操作系统等使用。本领域技术人员可知存储器834通常包含其它为求简化而省略的成份。
输入/输出接口832提供数个接口供数据输入输出。举例而言,当图像处理系统810包括个人计算机时,这些元件可能连接使用者输入装置,如键盘或鼠标。当图像处理系统810包括手持装置(如个人数字助理,手机)时,这元件可能连接功能键或按钮、触碰式屏幕等等。
本发明虽以数个实施例揭露如上,然其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。
举例而言,本领域技术人员可知本说明书所提数个减少图像数据传输频宽需求的方法实施例,包括:通过储存每个像素图块的预测误差而压缩包含数个像素图块的图像数据,计算像素图块的位长度,对压缩的z轴数据编码成压缩区块,在单一运算中移动每个压缩区块至输出总线,其中每个字组包含数个位,以及传送这些数据从输出总线至高速缓存供作往后还原之用。在一些实施例中,图像数据为24位z轴数据。在其它实施例中,图像数据为32位z轴数据。在一些实施例中,z压缩数据还包括:辨别完全位于一基元内的数个像素图块,其中对每个像素图块执行下列步骤:辨别像素图块内的参考像素值z00,决定第一斜率值,决定第二值,基于第一、第二梯度值计算线性梯度,应用此线性梯度至像素图块的其余像素去计算像素图像内每个像素的预测误差,以及储存关联每个像素值的预测误差。
在一些实施例中,像素图块包括一块方格的像素。在一些实施例中,计算线性梯度包括水平成份及垂直成份。在一些实施例中,水平成份表示z坐标的数据对x坐标数据的微分。在一些实施例中,垂直成份表示z坐标的数据对y坐标数据的微分。在一些实施例中,一像素图块中最大预测误差值为像素的z轴数据。在一些实施例中,计算位长度还包括:建立位长度值用以决定储存像素图块所储的总位数的量化电平,基于此量化值计算半长值与全长值,其中像素图块的全部字段包括可变字段和固定字段。在一些实施例中,计算像素图块的可变字段还包括检查像素图块的z轴数据以决定其中最大的预测误差值并基于此最大预测误差值配置位数。在一些实施例中,利用半长值编码所产生的压缩率高于全长值编码。在一些实施例中,编码z压缩数据还包括:设定像素图块内每个像素的1位屏蔽,其中若无预测误差则此1位屏蔽设为“0”以及若预测误差不为零则此1位屏蔽设为“1”,以及设定2位跳脱序列,其中“00”表示预测误差为+1,“01”表示预测误差为-1,“10”表示预测误差需要半长值编码,以及“11”表示预测误差需要全长值编码。在一些实施例中,在单一运算中移动每个压缩区块至输出总线是通过使用具有独立控制多工器的柱形移位器。
另一个实施例包含减少图像数据传输频宽需求的方法,包括:从高速缓存传送数据至解封包单元,在此解封包单元解压缩z压缩数据以得到像素图块内每个像素的预测误差值,传送这些预测误差至加法树,以及在此加法树内从这些预测误差还原出z轴数据。在一些实施例中,解封包单元用以执行下述操作:解压缩像素图块内关联每个像素的1位屏蔽,基于这些1位屏蔽解压缩此像素图块内关联每个像素的跳脱序列,基于这些跳脱序列解压缩此像素图块内关联每个像素的预测误差值。在一些实施例中,导出z轴数据还包括基于这些预测误差值以重复的方式从预测误差矩阵的左上角开始计算z轴数据。
尚有另一实施例包含减少图像数据传输频宽需求的系统,包括:预测误差计算器用以产生像素图块的z坐标数据的预测误差矩阵,位长度计算器用以计算储存此预测误差矩阵所需的总位数,数据编码器用以像此预测误差矩阵编码成压缩区块,以及封包器用以在单一运算中移动此压缩区块至外部存储器位置。在一些实施例中,此z坐标数据为24位z轴数据。在一些实施例中,此z坐标数据为32位z轴数据。在一些实施例中,此压缩区块包括固定字段及可变字段。
尚有另一实施例包含减少图像数据传输频宽需求的系统,包括解封包模块用以从外部存储器位置移动压缩区块并从此压缩区块解开预测误差矩阵,以及加法树用以导出像素图块。在一些实施例中,解封包模块还包括跳脱序列解封包器用以解压缩此预测误差矩阵里的每个跳脱序列,以及解封包器用压从此压缩区块解压缩出此预测误差矩阵。在一些实施例中,加法树更用以从此预测误差矩阵的左上角开始以重复的型式导出此像素图块。

Claims (13)

1.一种减少传输图形数据的频宽需求的方法,包括:
通过储存每个像素图块的多个预测误差以压缩上述图形数据,其中上述图形数据包括多个像素图块;
计算上述像素图块的位长度;
将上述预测误差编码成压缩区块;
移动每个上述压缩区块至输出总线;以及
从上述输出总线传送上述压缩区块至高速缓存作为往后数据还原之用,
其中压缩上述图形数据还包括:
计算上述像素图块内每个像素的线性梯度,以决定上述预测误差。
2.根据权利要求1所述的减少传输图形数据的频宽需求的方法,其中压缩上述图形数据还包括:
辨别完全座落于基元内的每个像素图块,其中对每个上述像素图块执行下述步骤:
找出上述像素图块内的参考像素值Z00;
决定第一参考斜率值;
决定第二参考斜率值;
基于上述第一与第二参考斜率值,计算线性梯度;
对上述像素图块内的其余像素应用上述线性梯度,以计算上述像素图块内每个像素的上述预测误差;以及
储存与每个上述像素关联的上述预测误差。
3.根据权利要求1所述的减少传输图形数据的频宽需求的方法,其中上述线性梯度包括水平成份以及垂直成份。
4.根据权利要求3所述的减少传输图形数据的频宽需求的方法,其中上述水平成份代表z轴数据对x轴数据的微分,以及上述垂直成份代表z轴数据对y轴数据的微分。
5.根据权利要求1所述的减少传输图形数据的频宽需求的方法,其中给定像素图块的上述预测误差的最大值为像素的z轴数据。
6.根据权利要求1所述的减少传输图形数据的频宽需求的方法,其中计算位长度还包括:
建立位长度单位以作为决定储存给定像素图块所需的总位数的量化级别;
根据上述量化级别,计算半长字段值与全长字段值;
决定上述压缩区块的可变字段的长度,其中上述可变字段加上上述压缩区块的固定字段为总长度。
7.根据权利要求6所述的减少传输图形数据的频宽需求的方法,其中决定上述压缩区块的上述可变字段的长度还包括:
检查给定像素图块的图形数据以决定每个像素图块的最大预测误差;以及
基于上述最大预测误差分配多个位。
8.根据权利要求6所述的减少传输图形数据的频宽需求的方法,其中利用半长值编码所产生的压缩率高于利用全长值编码所产生的压缩率。
9.根据权利要求1所述的减少传输图形数据的频宽需求的方法,其中将上述预测误差编码还包括:
设定与给定像素图块内每个像素相关的1位屏蔽,其中若上述预测误差为0则上述1位屏蔽设成「0」,且若上述预测误差不为0则上述1位屏蔽设成「1」;以及
当上述1位屏蔽不为0时,设定2位跳脱序列,其中
「00」代表上述预测误差为+1;
「01」代表上述预测误差为-1;
「10」代表上述预测误差需要半长值编码;以及
「11」代表上述预测误差需要全长值编码。
10.根据权利要求1所述的减少传输图形数据的频宽需求的方法,其中在单一运算里移动每个上述压缩区块至输出总线是通过使用具有多个独立控制多工器的多个柱形移位器而执行。
11.一种减少传输图形数据的频宽需求的系统,包括:
预测误差计算器,用以产生像素图块的z轴数据的预测误差矩阵;
位长度计算器,用以计算储存上述预测误差矩阵所需的位数;
数据编码器,用以将上述预测误差矩阵编码成压缩区块;以及
封包器,用以移动上述压缩区块至外部存储器位置,
将上述预测误差矩阵编码成压缩区块包括:
计算上述像素图块内每个像素的线性梯度,以决定上述预测误差。
12.根据权利要求11所述的减少传输图形数据的频宽需求的系统,其中上述预测误差矩阵包括:
参考像素,位于上述像素图块中;
第一参考斜率值;
第二参考斜率值;以及
多个预测误差,与上述像素图块内的剩余像素有关,其中上述多个预测误差是对剩余像素应用线性梯度而获得,其中上述线性梯度是根据上述第一参考斜率值以及上述第二参考斜率值而计算。
13.根据权利要求11所述的减少传输图形数据的频宽需求的系统,其中上述压缩区块包括固定字段以及可变字段。
CN 200710109969 2006-06-09 2007-06-11 减少传输图形数据的频宽需求的系统与方法 Active CN101068363B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US81220406P 2006-06-09 2006-06-09
US60/812,204 2006-06-09

Publications (2)

Publication Number Publication Date
CN101068363A CN101068363A (zh) 2007-11-07
CN101068363B true CN101068363B (zh) 2010-08-25

Family

ID=38880772

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200710109969 Active CN101068363B (zh) 2006-06-09 2007-06-11 减少传输图形数据的频宽需求的系统与方法

Country Status (2)

Country Link
CN (1) CN101068363B (zh)
TW (1) TWI348651B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2483502B (en) * 2010-09-10 2014-05-07 Imagination Tech Ltd Random accessible lossless parameter data compression for title based 3D computer graphics system
CN102055974B (zh) * 2010-10-14 2013-04-17 华为技术有限公司 数据压缩、解压缩方法、装置及系统
GB2537659B (en) * 2015-04-22 2019-05-01 Imagination Tech Ltd Tiling a primitive in a graphics processing system
GB2537661B (en) 2015-04-22 2018-09-26 Imagination Tech Ltd Tiling a primitive in a graphics processing system
TWI708976B (zh) * 2019-08-13 2020-11-01 華碩電腦股份有限公司 顯示裝置及其控制方法
CN115114465B (zh) * 2022-07-19 2024-07-23 重庆紫光华山智安科技有限公司 图像记录关联存储方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1606038A (zh) * 2003-10-29 2005-04-13 威盛电子股份有限公司 将位样型或比特流中数据压缩的装置
CN1640149A (zh) * 2002-04-16 2005-07-13 三菱电机株式会社 影像数据转换装置以及影像数据转换方法
CN1652609A (zh) * 2003-12-02 2005-08-10 三星电子株式会社 用于处理数字运动图象的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1640149A (zh) * 2002-04-16 2005-07-13 三菱电机株式会社 影像数据转换装置以及影像数据转换方法
CN1606038A (zh) * 2003-10-29 2005-04-13 威盛电子股份有限公司 将位样型或比特流中数据压缩的装置
CN1652609A (zh) * 2003-12-02 2005-08-10 三星电子株式会社 用于处理数字运动图象的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开平8-191461A 1996.07.23

Also Published As

Publication number Publication date
TW200809688A (en) 2008-02-16
TWI348651B (en) 2011-09-11
CN101068363A (zh) 2007-11-07

Similar Documents

Publication Publication Date Title
US7898550B2 (en) System and method for memory bandwidth compressor
CN101068363B (zh) 减少传输图形数据的频宽需求的系统与方法
CN102323922B (zh) 数值数据的压缩和解压缩
US8542243B2 (en) High-compression texture mapping
Cigolle et al. A survey of efficient representations for independent unit vectors
US7599975B1 (en) Decompression of compressed 16 bit data
CN101978393A (zh) 用于图形渲染的多阶段细分
KR20160001652A (ko) 데이터 프로세싱 방법 및 디바이스
WO2001043074A1 (en) 3d transformation matrix compression and decompression
CN105229695A (zh) 图形数据的基于子集的压缩和解压缩
JP2004038451A (ja) アダマール変換処理方法及びその装置
CN114692077A (zh) 一种矩阵计算装置、方法、系统、电路、芯片及设备
KR20060087631A (ko) 3차원 삼각 메쉬의 기하 정보 데이터 단순 압축 및 해제 기술
US10186236B2 (en) Universal codec
CN106462936A (zh) 深度偏移压缩
Martel Compressed matrix computations
CN104754348A (zh) 自适应深度偏移压缩
US6831637B1 (en) Method and apparatus for compressing three dimensional surface data
Paixao et al. Matrix compression methods
WO2013075329A1 (en) Method and apparatus for generating a bitstream of repetitive structure discovery based 3d model compression
CN101458679B (zh) 统一反向离散余弦变换(idct)微码处理器引擎
US6169819B1 (en) High performance surface normal compression
CN103597467A (zh) 网格序列文件格式
US6249286B1 (en) Memory efficient surface normal compression
US6175369B1 (en) High performance surface normal decompression

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