顶点数据压缩方法和装置及相关的顶点数据解压缩方法和装置制造方法及图纸

技术编号:14030346 阅读:183 留言:0更新日期:2016-11-19 19:06
本发明专利技术提出一种顶点数据压缩方法和装置及相关的顶点数据解压缩方法和装置。该顶点数据压缩方法包括:收集多个顶点组成顶点块;从顶点块中提取至少一个数据单元阵列,其中,每一数据单元阵列包括多个数据单元,多个数据单元分别从多个顶点的多个顶点组分中选取,并对应于同一通道,且每一数据单元均小于一字节;及对于每一数据单元阵列,检查数据单元阵列中的数据单元,以选取压缩算法,并根据所选取的压缩算法对数据单元阵列中的多个数据单元进行压缩。本发明专利技术提出的顶点数据压缩方法和装置及相关的顶点数据解压缩方法和装置,能够降低对存储流量和存储空间的需求。

【技术实现步骤摘要】

本专利技术涉及图形处理,更具体地,涉及一种通过分析通道特性压缩顶点数据的顶点数据压缩方法和装置,以及相关的顶点数据解压缩方法和装置。
技术介绍
如本领域所熟知的,图形处理通常是以管线(pipelined)的形式执行的,其中,多个管线级段对数据进行操作以产生最终渲染输出,如用于显示的画帧。现在,许多的图形处理管线包括一个或多个可编程处理级段,通常称为“着色器”,其执行程序来进行图形处理操作,以产生需要的图形数据。例如,图形处理管线可包括顶点着色器和像素(片段)着色器。这些着色器为可编程处理级段,其可对输入数据值执行着色器程序,以生成一组需要的输出数据值,用于图形管线的剩余级段进行进一步处理。图形处理管线的着色器可共享可编程处理电路,也可以是不同的可编程处理单元。举例来说,顶点着色操作可包括顶点位置着色操作和顶点属性着色操作,其用以对每一画帧中的图元(primitives)的顶点进行处理。对于延迟渲染方案(如基于仓的渲染方案)而言,一种传统的设计是在分仓过程(也即顶点级段(vertex phase)通道)中执行顶点位置着色操作和顶点属性着色操作,并将画帧中所有图元的顶点的顶点位置着色结果和顶点属性着色结果存储至仓存储器(bin memory)中,分仓过程完成之后,
再在渲染过程(也即像素级段(pixel phase)通道)中执行像素/片段着色操作。由于仓存储器需要用来存储许多顶点的顶点位置着色结果和顶点属性着色结果,因此,对于存储流量和存储空间的需求很大。此外,顶点级段所写入的数据流量和像素级段所读取的数据流量可导致延迟渲染方案的性能下降。因此,需要一种创新的用于顶点数据压缩的设计方案,其能够降低对存储流量和存储空间的需求。
技术实现思路
本专利技术的目标之一为提供一种通过分析通道特性压缩顶点数据的顶点数据压缩方法和装置,以及相关的顶点数据解压缩方法和装置。根据本专利技术的第一个方面,公开一种的顶点数据压缩方法。该顶点数据压缩方法包括:收集多个顶点组成顶点块;从顶点块中提取至少一个数据单元阵列,其中,每一数据单元阵列包括多个数据单元,这些数据单元分别从多个顶点的多个顶点组分中选取,并对应于同一通道,且每一数据单元均小于一字节;以及对于每一数据单元阵列,检查数据单元阵列中的数据单元,以选取压缩算法,进而根据所选取的压缩算法对数据单元阵列中的数据单元进行压缩。根据本专利技术的第二个方面,公开一种顶点数据解压缩方法。该顶点数据解压缩方法包括:接收从压缩顶点块中读取的数据,其中,压缩顶点块包括标头部分和主体部分,压缩顶点块通过对从顶点块中提取的至少一个数据单元阵列进行压缩而生成,每一数据单元阵列包括多个数据单元,这些数据单元分别从顶点块的多个顶点的多个顶点组分中选取,并对应于同一通道,且每一数据单元均小于一字节;对标头部分进行解码以获得记录值;以及至少部分地根据从标头部分所获取的记录值来生成
一顶点的至少一部分的解压缩顶点组分。根据本专利技术的第三个方面,公开一种顶点数据压缩装置。该顶点数据压缩装置包括接收电路和压缩器。接收电路用于接收多个顶点组成顶点块。压缩器用于从顶点块中提取至少一个数据单元阵列,其中,每一数据单元阵列包括多个数据单元,这些数据单元分别从多个顶点的多个顶点组分中选取,并对应于同一通道,且每一数据单元均小于一字节;并且对于每一数据单元阵列,检查数据单元阵列中的数据单元,以选取压缩算法,并根据所选取的压缩算法对数据单元阵列中的数据单元进行压缩。根据本专利技术的第四个方面,公开一种顶点数据解压缩装置。该顶点数据解压缩装置包括接收电路和解压缩器。接收电路用以接收从压缩顶点块中读取的数据,其中,压缩顶点块包括标头部分和主体部分,压缩顶点块通过对从顶点块中提取的至少一个数据单元阵列进行压缩而生成,每一数据单元阵列包括多个数据单元,这些数据单元分别从顶点块的多个顶点的多个顶点组分中选取,并对应于同一通道,且每一数据单元均小于一字节。解压缩器用于对标头部分进行解码以获取记录值,并至少部分地根据从标头部分所获取的记录值来生成顶点的至少一部分的解压缩顶点组分。本专利技术提出的顶点数据压缩方法和装置及相关的顶点数据解压缩方法和装置,能够降低对存储流量和存储空间的需求。通过阅读下述于附图中所揭露的优选实施例的详细说明书之后,本专利技术的这些以及其他的目标对本领域的普通技术人员来说无疑是很明显的。附图说明图1为本专利技术一实施例的图形处理系统的方块图。图2为从顶点块的多个顶点的多个顶点组分中提取数据单元阵列的一实例的示意图。图3为对八个顶点的多个顶点组分进行压缩的一实例的示意图。图4为本专利技术一实施例的顶点位置组分的通道化压缩率和顶点属性组分的通道化压缩率的示意图。图5为本专利技术一实施例的压缩顶点块的数据结构的示意图。图6为本专利技术一实施例的顶点数据压缩方法的流程图。图7为本专利技术一实施例的顶点数据解压缩方法的流程图。具体实施方式下面的描述中使用了一些术语,其代表特定的元件。本领域的熟练技术人员可以理解的是,电子设备制造商可用不同的名字来代表同一元件。本文件通过功能而不是名字的差异来对元件进行区分。在下面的说明书和权利要求书中,词语“包括”是开放式的,其应理解为“包括,但不限于...”。同样,词语“耦接”意为间接的或直接的电连接。相应地,如果一设备耦接至另一设备,所述连接可通过直接的电连接实现,或通过经由其他设备和连接的间接的电连接实现。图1为本专利技术一实施例的图形处理系统的方块图。图形处理系统100中至少一部分可为电子设备中使用的图形处理单元(graphics processing unit,GPU)的一部分。图形处理系统100可包括顶点着色器102、分仓模块(binning module)104、顶点数据压缩装置106、存储设备108、顶点数据解压缩装置110和像素着色器112。应该指出的是,图1仅显示与本专利技术相关的元件。在实践中,图形处理系统100可包括其他额外的元件,以实现其他的功能。顶点数据压缩装置106用于对从先前三维(three-dimentinal,3D)图形处理管线级段(如分仓模块104)中所接收的
原始顶点数据进行数据压缩,并存储压缩/编码后的顶点数据至存储设备(如片外仓存储器(off-chip bin memory))108中,顶点数据压缩装置106包括接收电路122和压缩器124。顶点数据解压缩装置110用于对从存储设备108中所读取的压缩/编码后的顶点数据执行数据解压缩,并输出解压缩/解码的顶点数据至下一3D图形处理管线级段(如像素着色器112),顶点数据解压缩装置110包括接收电路126和解压缩器128。因为压缩的顶点数据在顶点级段(vertex phase)通道中存储至存储设备108,并在像素级段(pixel phase)通道中从存储设备108中读取,因此可降低对于存储流量和存储空间的需求。顶点着色器102、分仓模块104、顶点数据压缩装置106、顶点数据解压缩装置110和像素着色器112可通过可编程处理电路来实现。顶点着色器102可用以在分仓过程(如顶点级段通道)中执行顶点位置着色(如顶点位置计算)和顶点属性着色(如顶点属性计算)。像素着色器112可用以在分仓过程之后在渲染过程(如像本文档来自技高网
...
顶点数据压缩方法和装置及相关的顶点数据解压缩方法和装置

【技术保护点】
一种顶点数据压缩方法,其特征在于,所述顶点数据压缩方法包括:收集多个顶点组成顶点块;从所述顶点块中提取至少一个数据单元阵列,其中,该至少一个数据单元阵列中的每一个包括多个数据单元,所述多个数据单元分别从所述多个顶点的多个顶点组分中选取,所述多个数据单元对应于同一通道,且所述多个数据单元中的每一个均小于一字节;及对于该至少一个数据单元阵列中的每一个,检查数据单元阵列中的所述多个数据单元,以选取压缩算法,并根据选取的所述压缩算法对所述数据单元阵列中的所述多个数据单元进行压缩。

【技术特征摘要】
2015.05.06 US 14/705,9491.一种顶点数据压缩方法,其特征在于,所述顶点数据压缩方法包括:收集多个顶点组成顶点块;从所述顶点块中提取至少一个数据单元阵列,其中,该至少一个数据单元阵列中的每一个包括多个数据单元,所述多个数据单元分别从所述多个顶点的多个顶点组分中选取,所述多个数据单元对应于同一通道,且所述多个数据单元中的每一个均小于一字节;及对于该至少一个数据单元阵列中的每一个,检查数据单元阵列中的所述多个数据单元,以选取压缩算法,并根据选取的所述压缩算法对所述数据单元阵列中的所述多个数据单元进行压缩。2.如权利要求1所述的顶点数据压缩方法,其特征在于,压缩顶点块包括多个压缩顶点,所述多个压缩顶点通过对所述顶点块中的所述多个顶点进行压缩而生成,且所述多个压缩顶点具有相同的位宽。3.如权利要求1所述的顶点数据压缩方法,其特征在于,检查所述数据单元阵列中的所述多个数据单元,以选取所述压缩算法包括:将所述多个数据单元所具有的多个值分类为至少一簇;及参照通过所述分类步骤建立的所述至少一簇以选取所述压缩算法。4.如权利要求3所述的顶点数据压缩方法,其特征在于,所述多个数据单元具有的所述多个值被分类为仅具有单一值的单一簇。5.如权利要求4所述的顶点数据压缩方法,其特征在于,压缩顶点块包括标头部分和主体部分,且所述选取的压缩算法包括:记录所述标头部分的所述单一值,其中,所述多个数据单元所具有的所述多个值均不记录至所述主体部分。6.如权利要求3所述的顶点数据压缩方法,其特征在于,所述多个数据单元具有的所述多个值被分类为具有多个连续值的单一簇。7.如权利要求6所述的顶点数据压缩方法,其特征在于,压缩顶点块包括标头部分和主体部分,且所述选取的压缩算法包括:将从所述单一簇的所述多个连续值中选取的特定值记录至所述标头部分;及对于所述多个数据单元具有的所述多个值中的每一值,将所述特定值和所述多个数据单元中的每一个所具有的值之间的偏移值记录至所述主体部分,其中,所述多个数据单元所具有的值不记录至所述主体部分。8.如权利要求3所述的顶点数据压缩方法,其特征在于,所述多个数据单元所具有的多个值被分类为多簇,每一簇均仅具有单一值。9.如权利要求8所述的顶点数据压缩方法,其特征在于,压缩顶点块包括标头部分和主体部分,且所述选取的压缩算法包括:将所述多簇的多个单一值记录至所述标头部分;及对于所述多个数据单元所具有的所述多个值中的每一值,将所述多个数据单元中的每一个所具有的值相关的簇的指引值记录至所述主体部分,其中,所述多个数据单元具有的所述值不记录至所述主体部分。10.如权利要求3所述的顶点数据压缩方法,其特征在于,所述多个数据单元具有的所述多个值被分类为多个簇,每一簇均具多个连续值。11.如权利要求10所述的顶点数据压缩方法,其特征在于,压缩顶点块包括标头部分和主体部分,且所述选取的压缩算法包括:对于每一簇,将从簇的所述多个连续值中选取的特定值记录至所述标头部分;及对于所述多个数据单元具有的所述多个值中的每一值,将所述多个数据单元中的每一个所具有的值相关的簇的指引值以及相关的簇的所述特
\t定值和所述多个数据单元的每一个所具有的值之间的偏移值记录至所述主体部分,其中,所述多个数据单元具有的所述值不记录至所述主体部分。12.如权利要求3所述的顶点数据压缩方法,其特征在于,所述多个顶点的所述多个顶点组分中的每一个均被划分为分别对应于多个通道的多个数据单元;分别按照所述多个通道提取多个数据单元阵列;且对于每一数据单元阵列,将对应于同一通道的数据单元阵列中的多个数据单元所具有的多个值分类为仅具有单一值的单一簇。13.如权利要求12所述的顶点数据压缩方法,其特征在于,压缩顶点块包括标头部分和主体部分,且所述选取的压缩算法包括:将同每一顶点组分相等的值记...

【专利技术属性】
技术研发人员:廖群峰张海林
申请(专利权)人:联发科技股份有限公司
类型:发明
国别省市:中国台湾;71

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1