CN104299256B - 一种近似无损的三维体数据压缩域体绘制方法 - Google Patents
一种近似无损的三维体数据压缩域体绘制方法 Download PDFInfo
- Publication number
- CN104299256B CN104299256B CN201410525176.9A CN201410525176A CN104299256B CN 104299256 B CN104299256 B CN 104299256B CN 201410525176 A CN201410525176 A CN 201410525176A CN 104299256 B CN104299256 B CN 104299256B
- Authority
- CN
- China
- Prior art keywords
- data
- level
- volume data
- vector quantization
- volume
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000007906 compression Methods 0.000 title abstract description 40
- 230000006835 compression Effects 0.000 title abstract description 40
- 238000009877 rendering Methods 0.000 title abstract description 14
- 239000013598 vector Substances 0.000 claims abstract description 139
- 238000013139 quantization Methods 0.000 claims abstract description 69
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 68
- 238000013144 data compression Methods 0.000 claims description 10
- 238000011084 recovery Methods 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 6
- 238000007667 floating Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 8
- 230000015654 memory Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000000513 principal component analysis Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 241000196324 Embryophyta Species 0.000 description 1
- HEFNNWSXXWATRW-UHFFFAOYSA-N Ibuprofen Chemical compound CC(C)CC1=CC=C(C(C)C(O)=O)C=C1 HEFNNWSXXWATRW-UHFFFAOYSA-N 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000013517 stratification Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000007794 visualization technique Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种近似无损的三维体数据压缩域体绘制方法:将体数据分割成大小为4*4*4的块后逐块拉普拉斯分解为三个层次,在对第一、第二层次的分解数据分别构建矢量量化编码表后进行矢量量化,获取第一、第二级索引体数据,再以两级索引体数据和两级矢量量化编码表恢复体数据,将原始体数据与恢复体数据作差得到稀疏的残差体数据;使用完美空间哈希压缩该稀疏残差体数据;以两级索引体数据、两级矢量量化编码表和完美空间哈希的结果作为体绘制阶段的输入,在GPU里进行实时解码和绘制。本发明使解码数据更接近原始数据;解决了有限的存储资源、有限的CPU及GPU传输带宽与不断增加的体数据尺度及领域专家对高压缩质量的实时压缩域体绘制的需求之间的矛盾。
Description
技术领域
本发明涉及一种三维体数据压缩域体绘制方法,具体涉及一种基于层次矢量量化和完美空间哈希技术的近似无损的压缩域体绘制方法。
背景技术
体绘制技术是可视化研究中的关键技术之一,在计算流体力学、地球空间、医疗科学等各个领域中得到了广泛应用,其研究对象是三维体数据(以下简称体数据)。体数据产生于科学计算的各个领域,在现今的领域需求以及数据获取途径下,体数据的尺度越来越大、分辨率越来越高,并且经常是海量的、时变的、多属性的,太字节(TB)级甚至拍字节(PB)级的体数据已屡见不鲜。利用可视化技术分析如此大尺度的数据充满挑战性。近年来,商业图形硬件发展迅速,利用GPU加速体数据的直接体可视化已经成为分析体数据的通用方法。
然而,一般计算机的GPU显存无法一次性装载大尺度的体数据;即使可以装载,GPU和CPU之间的数据传输速度过慢,制约了硬件加速直接体绘制算法的应用,同时也阻碍用户通过可视化探求复杂大尺度数据中蕴藏的未知知识和现象。例如,大小为10243的单变量单帧浮点型体数据,其大小为32bit×1024×1024×1024=4GB,又如帧数为100帧,每帧的分辨率为5123的浮点型单变量时变体数据,其数据量大小为32bit×512×512×512×100=50GB,这些体数据的数据量远超普通计算机的GPU显存,甚至内存。压缩域体绘制(Compression domain volume rendering,CDVR)融合了体数据压缩和绘制,能有效节省存储和带宽,是解决这一矛盾的重要而有效的方法。
目前已有的CDVR方法或者数据压缩方法中,压缩比高的通常数据恢复质量不好,依据恢复数据所得到的体绘制结果图像的信噪比(Signal to Noise Ratio,SNR)或者峰值信噪比(Peak Signal to Noise Ratio,PSNR)较低,而均方差(Mean Squared Error,MSE)则较高。数据恢复质量好的(如一些无损压缩算法)压缩比太低,或者实现复杂、解码速度慢,不适合在GPU中实现,无法达到实时CDVR。矢量量化(Vector Quantization,VQ)作为一种有损的数据压缩策略,常用于图像和语音等多媒体信号的处理中。作为一种非对称的压缩方法,其压缩相对复杂而解压缩异常简单的特性使得其成为CDVR的一类重要方法。层次矢量量化(Hierarchical Vector Quantization,HVQ)是一种新的层次化的矢量量化方法,较传统的矢量量化压缩方法,能极大地改善压缩效率和绘制质量。完美空间哈希(PerfectSpatial Hashing,PSH)技术使用无冲突的静态哈希方法表达稀疏数据,其实质在于充分利用数据的空间连续性,将一个稀疏的数据转换为紧凑的哈希表进行表达,因而可以作为一种高效的稀疏数据压缩方法。
发明内容
本发明的目的在于提供一种近似无损的三维体数据压缩域体绘制方法,以克服现有技术的全部或部分缺陷。
为实现上述目的,本发明所采取的技术方案是:本发明近似无损的三维体数据压缩域体绘制方法包括如下步骤:
(1)将体数据值类型为浮点型、无符号字符型或者短整型的三维原始体数据分割成大小为4*4*4的数据块,再对分割完的数据块逐个进行拉普拉斯分解,由此将每个数据块分解为三个层次的数据:其中,每一个数据块的第一层次分解数据是一个大小为4*4*4的64维矢量,所有数据块的第一层次分解数据构成第一层次分解数据矢量集合;每一个数据块的第二层次分解数据是一个大小为2*2*2的8维矢量,所有数据块的第二层次分解数据构成第二层次分解数据矢量集合;每一个数据块的第三层次分解数据是该数据块的体数据值的算术平均值,所述第三层次分解数据的大小为1*1*1,所有数据块的第三层次分解数据构成第三层次分解数据集合;
(2)对所述第一层次分解数据矢量集合进行矢量量化,得到第一级矢量量化编码表和第一级索引体数据,所述第一级索引体数据中记录了每一个4*4*4数据块的第一层次分解数据与第一级矢量量化编码表中码元矢量的对应关系;构造第一级偏移地址表,由此确定第一级矢量量化编码表中的码元矢量的元素与每个数据块的第一层次分解数据中的体素的对应关系:
对所述第二层次分解数据矢量集合进行矢量量化,得到第二级矢量量化编码表和第二级索引体数据,所述第二级索引体数据中记录了每一个4*4*4数据块的第二层次分解数据与第二级矢量量化编码表中码元矢量的对应关系;构造第二级偏移地址表,由此确定第二级矢量量化编码表中的码元矢量的元素与每个数据块的第二层次分解数据的体素的对应关系:
(3)利用第一级矢量量化编码表、第一级索引体数据、第一级偏移地址表以及第二级矢量量化编码表、第二级索引体数据、第二级偏移地址表分别进行矢量量化解码而相应得到所有数据块的第一层次分解数据和第二层次分解数据的解码恢复值,再逐体素地对所有数据块的每个体素所对应的第一层次分解数据和第二层次分解数据的解码恢复值以及第三层次分解数据相加得到解码体数据,将原始体数据与解码体数据逐体素作差而得到稀疏的残差体数据;
(4)使用完美空间哈希压缩所述残差体数据而得到偏移表数据、位置表数据和哈希表数据;
(5)将第一级索引体数据、第二级索引体数据、第一级矢量量化编码表、第二级矢量量化编码表、第一级偏移地址表、第二级偏移地址表、偏移表数据、位置表数据和哈希表数据传入到GPU中并在GPU中进行实时解码和绘制。
进一步地,在所述步骤(2)中,按照公式(1)所示的方法构造第一级偏移地址表:
value1[i,j,k]=((i/2*4+j/2*2+k/2)*8+i%2*4+j%2*2+k%2)/64.0 (1)
公式(1)中,i,j,k分别表示待解码体素在其所属的4*4*4数据块内的三个方向上的位置,i,j,k的取值范围皆为[0,3];value1[i,j,k]表示位置为i,j,k的待解码体素在第一级矢量量化编码表中它所对应的码元矢量内部的偏移地址。
进一步地,在所述步骤(2)中,按照公式(2)所示的方法构造第二级偏移地址表:
value2[i,j,k]=(k/2+j/2*2+i/2*4)/8.0 (2)
公式(2)中,i,j,k分别表示待解码体素在其所属的4*4*4数据块内的三个方向上的位置,i,j,k的取值范围皆为[0,3];value2[i,j,k]表示位置为i,j,k的待解码体素在第二级矢量量化编码表中它所对应的码元矢量内部的偏移地址。
由上可见,本发明近似无损的三维体数据压缩域体绘制方法的主要过程为:首先使用层次矢量量化技术压缩原始体数据,再利用完美空间哈希压缩层次矢量量化后的残差数据,解码时把HVQ解码数据值加回PSH的解码数据值以达到近似无损的效果。
与传统的压缩域体绘制技术相比,本发明的有益效果在于:提出一套基于HVQ和PSH的体数据压缩域体绘制方法,对体数据进行高压缩比的近似无损压缩,解决了有限的存储资源、有限的CPU与GPU传输带宽和不断增加的体数据尺度以及领域专家对于高压缩质量的实时压缩域体绘制的需求之间的矛盾。结合HVQ以及PSH技术的特点,在绘制时利用GPU进行实时的解压缩,直接在压缩域进行体绘制,充分地利用了GPU的优势,解码端实现简洁快速,可满足实时渲染的性能要求;同时针对领域专家、用户需要更精确的解码数据和可视化效果这一实际问题,提供了近似无损的压缩效果,可明显提高解码数据的质量,使得解码数据更接近原始数据,从而提高用户对于三维数据场体绘制效果的感知,为用户准确地分析、观察体数据、发现数据特征、探索未知现象营造更好的客观环境。
附图说明
图1是本发明方法的流水线的示意图【包含本发明的步骤(1)-(5)】。
图2是本发明的步骤(1)和(2)对原始体数据进行HVQ压缩的示意图。
图3是本发明的步骤(4)对稀疏残差体数据进行PSH压缩的示意图。
图4是本发明的步骤(5)对HVQ压缩数据进行HVQ解码的示意图。
图5是对Hurricane Isabel Cloud数据使用DVR的绘制结果。
图6是对Hurricane Isabel Cloud数据使用基于HVQ的CDVR的绘制结果。
图7是对Hurricane Isabel Cloud数据使用本发明的方法的绘制结果。
具体实施方式
下面结合附图对本发明的近似无损三维体数据压缩域体绘制方法作进一步说明,具体步骤如下:
步骤(1):首先,将体数据值类型为浮点型、无符号字符型或者短整型的三维原始体数据分割成大小为4*4*4的数据块(以下简称一级数据块),然后对每一个一级数据块进行拉普拉斯分解,将块内数据分解为三个频率波段,进行分层表示,三个层次分解数据的大小分别为4*4*4、2*2*2和1*1*1,如图2所示。
以下以一个具体实例来详细说明对一级数据块进行拉普拉斯分解的过程。首先,计算一级数据块的体数据值的算术平均值M0,并将所述一级数据块分为8个大小为2*2*2的二级数据块(以下简称二级数据块),再分别计算各个二级数据块的体数据值的算术平均值M1~M8。一级数据块的64个体素的体数据值与体素各自所在的二级数据块的体数据值的算术平均值Mi(i∈[1,8])之差构成了64维的第一层次分解数据,M1~M8与M0之差构成了8维的第二层次分解数据,M0构成第三层次分解数据。最终,对原始数据逐块进行拉普拉斯分解以后,整个体数据转变为3个层次的表达,使得每个一级数据块可以用分解完成的三层数据表示。
所有数据块的第一层次分解数据构成第一层次分解数据矢量集合,所有数据块的第二层次分解数据构成第二层次分解数据矢量集合,所有数据块的第三层次分解数据构成第三层次分解数据集合。
步骤(2):使用矢量量化技术对第一层次分解数据矢量集合和第二层次分解数据矢量集合进行压缩:即分别构建第一级矢量量化编码表和第二级矢量量化编码表,以矢量维度64和8分别对第一层次分解数据矢量集合和第二层次分解数据矢量集合进行矢量量化,获取对应的第一级索引体数据和第二级索引体数据(如图2所示)。具体过程如下:
矢量量化是一种简单的、有损的数据压缩方法,其主要过程包含三个阶段:码表设计、编码和解码,其中码表设计最为重要。矢量量化的本质在于通过构造一个包含W个B维矢量的码表,将B维的输入矢量X用码表中的某一个码元矢量进行近似表示,并用所述码元矢量在码表中的索引值代替X进行存储,当W较小时,每一个索引只需要很少的比特位数,从而达到压缩的效果。解码则是利用所述索引值在码表中查询获取相应的码元矢量以重构输入矢量X。对于第一和第二层次的分解数据矢量集合,用矢量量化进行压缩,设定码表的大小为256,索引数据类型为无符号字符型(unsigned char),每个索引大小为8比特,矢量的数据维度分别为64和8。第三层的数据是每个一级数据块的体数据值的算术平均值,直接作为对应层次的索引数据。如图2中部所示,一级数据块最终可以用两个索引值和一个算术平均值替代,两个索引值所索引的码元矢量维度分别是64和8。在具体的实现过程中,采用基于主成分分析(Principal Component Analysis,PCA)的分裂策略训练初始码表,然后进行矢量量化。
主成分分析是多元统计分析中用来分析数据的一种方法,借助变量的协方差矩阵对信息进行处理,提取较少数量的特征对样本进行描述以达到降低特征空间维数的目的。通过基于主成分分析的分裂策略获得初始码表的过程如下:
1)将当前所有矢量归到一个类D中,计算类D的中心矢量Y(即矢量均值),将类D中所有矢量与Y的欧氏距离的总和记为dis。构建一个双向链表,链表中每个节点代表一个类D,节点按dis值大小的降序排列。
2)每次从链表头中取一个节点,得到一个类D0,计算其协方差矩阵M。
3)计算协方差矩阵M的特征矢量,取其最大特征矢量emax。
4)对D0中的每个矢量X,计算<X,emax>的值,若小于0,则将X归入左子节点类Dl中,否则X归入右子节点类Dr中。
5)计算类Dl、Dr的中心矢量Yl、Yr及各自类内的所有矢量距离其类中心矢量的欧式距离之和disl、disr,删除链表头节点,并将Dl、Dr插入到链表中。
6)重复2)—6)的操作直到链表大小达到码表大小。取链表中每个类的中心矢量Y作为初始码表的码元矢量,中心矢量的集合便构成了初始码表。
得到初始码表之后,对码表进行精炼,使码表更加精确。码表精炼的核心为K均值聚类(K-means)算法,其过程描述如下:
1.使用PCA生成的初始码表的码元矢量作为K-means每个类的初始中心,码表大小即为K的取值,亦即K-means分类的个数。
2.对每一个类,计算类内的每一个矢量到其中心矢量的距离之和distold;对所有的矢量,计算其和每一个类的中心矢量的欧式距离,将其归类到距离最近的中心矢量所在的类。
3.对当前所有的聚类,重新计算聚类的中心矢量。
4.计算所有矢量到其所在类的中心矢量的距离之和distnew,与上一次距离和distold做差,得到distchange,当distchange/distold绝对值小于一定的阈值,则退出得到最终码表,否则回到步骤2。
至此,得到第一级矢量量化编码表和第一级索引体数据以及第二级矢量量化编码表和第二级索引体数据,所述第一级索引体数据中记录了每一个一级数据块的第一层次分解数据与第一级矢量量化编码表中码元矢量的对应关系,所述第二级索引体数据中记录了每一个一级数据块的第二层次分解数据与第二级矢量量化编码表中码元矢量的对应关系。构造第一级偏移地址表,由此确定第一级矢量量化编码表中的码元矢量的元素与每个一级数据块的第一层次分解数据中的体素的对应关系。构造第二级偏移地址表,由此确定第二级矢量量化编码表中的码元矢量的元素与每个一级数据块的第二层次分解数据的体素的对应关系。一级偏移地址和二级偏移地址的计算分别如公式(1)和(2):
value1[i,j,k]=((i/2*4+j/2*2+k/2)*8+i%2*4+j%2*2+k%2)/64.0 (1)
value2[i,j,k]=(k/2+j/2*2+i/2*4)/8.0 (2)
其中,i,j,k分别表示待解码体素在其所属的一级数据块内的三个方向上的位置,取值范围皆为[0,3];value1[i,j,k]表示位置为i,j,k的待解码体素在第一级矢量量化编码表中它所对应的码元矢量内部的偏移地址;value2[i,j,k]表示位置为i,j,k的待解码体素在第二级矢量量化编码表中它所对应的码元矢量内部的偏移地址。
步骤(3):构建完两级矢量量化编码表和两级索引体数据以后,进行一次HVQ解码以获取恢复体数据,以便将原始体数据与恢复体数据作差得到稀疏的残差体数据,进而将该残差体数据作为PSH的输入数据进行压缩。HVQ解码过程如下:
对原始体数据的每一个体素,明确其在原始体数据中所属的一级数据块的编号以及在该一级数据块中所属的二级数据块的编号,从而即可在第一级索引体数据和第二级索引体数据中找到该体素在第一级矢量量化编码表和第二级矢量量化编码表中的索引值以及该体素所在的一级数据块的体数据值的算术平均值,再利用所述两个索引值在对应的第一级矢量量化编码表和第二级矢量量化编码表中查询到所对应的两个码元矢量,将所述两个码元矢量中与待恢复体素所对应的元素取出相加,再将相加的结果与该体素所在的一级数据块的体数据值的算术平均值相加,得到恢复体素值,从而完成HVQ解码。还原得到的恢复体素值与原始体数据对应体素值之差作为该体素的残差值。将整个残差体数据保存下来以作为完美空间哈希方法的输入数据。
步骤(4):使用完美空间哈希压缩所述残差体数据而得到偏移表数据、位置表数据和哈希表数据。具体如下:
PSH利用数据的空间连续性,将稀疏的数据转换为紧凑的哈希表,因此它是一种压缩率接近稀疏数据集密度的压缩方法。将步骤(3)中得到的稀疏残差数据用PSH进行压缩,构建哈希表的具体过程如图3所示。
图3中,p表示有效数据的体素(即有残差值的体素)在残差体数据中的空间位置,D(p)表示p上的残差数据值,S表示所有有效体素空间位置的集合,U表示整个三维残差体数据空间域,s表示哈希表中的位置,h0和h1是两个非完美哈希函数,实际的哈希操作为模寻址,模操作的对象分别为哈希表的大小ots以及偏移表的大小pts,即h0(p)=p mod ots,q=h1(p)=p mod pts,mod是模操作。最终的完美哈希函数可表示为
h(p)=h0(p)+φ(q)=h0(p)+φ(h1(p)) (3)
公式(3)中,φ(p)表示位置p处的哈希值,h(p)表示位置p处的最终的完美哈希值。在具体实现中,用三个三维纹理来实现偏移表数据、位置表数据和哈希表数据。第一个为三通道的三维偏移表纹理,每个元素分别表示三个方向的偏移值,它将非完美哈希函数h0转换成完美哈希函数;第二个为三通道的三维位置标记表纹理,表中元素存放哈希表中每个元素在原始数据中的位置;第三个是单通道的三维哈希表纹理,表中元素存放最终所要查找的数据值。
步骤(5):在本步骤中,将第一级索引体数据、第二级索引体数据、第一级矢量量化编码表、第二级矢量量化编码表、第一级偏移地址表、第二级偏移地址表、偏移表数据、位置表数据和哈希表数据传入到GPU中并在GPU中进行实时解码和绘制。具体如下:
通过步骤(1)-(4)已经得到一系列的压缩数据,其中,将第一级索引体数据、第二级索引体数据和算术平均值数据构造成一个三通道三维索引纹理,将第一级矢量量化编码表、第二级矢量量化编码表分别构造成一个二维单通道码表纹理,将偏移表数据构造成一个三通道三维偏移表纹理,将位置表数据构造成一个三通道三维位置标记表纹理,将哈希表数据构造成一个单通道三维哈希表纹理,将第一级偏移地址表和第二级偏移地址表构造成一个大小为4*4*4(即和一级数据块的大小相同)的双通道三维寻址纹理提供实际待解码体素与所索引矢量具体元素的对应关系,上述纹理数据作为体绘制阶段的输入数据,在GPU里进行实时解码和标准光线投射体绘制(以下简称体绘制),解码和体绘制是紧耦合的关系。
此外,步骤(5)中所提及的所有纹理的滤波器模式设定为GL_NEAREST,以避免插值变化。双通道三维寻址纹理的地址取样属性GL_WRAP取为GL_REPEAT,将该纹理的数据块重复平铺于原始体数据空间。
解码分成两个步骤。第一步是HVQ的GPU解码,如图4所示,在体绘制过程中,通过当前体素的空间位置确认其在三通道三维索引纹理里的纹理坐标,然后获得当前体素所属的一级数据块的体数据值的算术平均值以及第一级码表索引值和第二级码表索引值,再从双通道三维寻址纹理中获取第一级偏移地址和第二级偏移地址。使用第一级码表索引值和第一级偏移地址构造第一个纹理坐标,使用第二级码表索引值和第二级偏移地址构造第二个纹理坐标,通过上述两个纹理坐标可分别确定当前体素在两个矢量量化编码表中的码元矢量里的真实位置,再以所述的两个纹理坐标从各自对应的二维单通道码表纹理中获取码元矢量,将当前体素在两个码元矢量中的两个解码值以及该体素所在的一级数据块的体数据值的算术平均值相加得到该体素的重构体数据值。逐体素完成这一过程,HVQ解码完毕。
第二步是PSH的GPU解码,即获得当前体素的残差值。这一步的解码较简单,使用当前体素初始位置对偏移表的长度进行模操作即可获得当前体素在偏移表纹理中的纹理地址,称为偏移表纹理地址。再使用偏移表纹理地址从偏移表纹理中获取偏移地址的值,将该值与当前体素位置相加得到新的体素位置,然后使用新的体素位置对哈希表的长度进行模操作即可获得当前体素在哈希表纹理中的纹理地址,称为哈希表纹理地址,该地址同样是当前体素在位置表纹理中的纹理地址。然后先使用哈希表纹理地址从位置表纹理中进行取值,若取出的值和当前体素初始位置一致,则再使用该地址从哈希表纹理中取得实际的残差值;若不一致,则返回0值。最后将上述HVQ解码值和PSH解码值相加作为最终的解码体数据值,整个解码过程结束。以最终的解码体数据值在GPU中进一步进行标准的光线投射体绘制过程即可完成压缩域体绘制。
下面将给出本发明在一个真实体数据的应用结果以说明本发明技术的有效性。实验平台为一台个人电脑,处理器为Intel Core(TM)i7-4770,主频3.4GHz,内存16GB,显卡是NVIDIA GeForce GTX660,显存是2GB。从压缩性能角度,对两个体数据进行了实验,性能参数对比结果如表1所示,HVQ的码表大小为256,分块大小为4*4*4,索引的数据类型为无符号字符型。表1数据尺度格式为x×y×z×t,x、y和z为数据空间尺度,t是时间步,压缩比是原始数据字节数与压缩后数据字节数的比率。帧率是每个数据在每种方法下各运行十次,取算术平均值,绘制窗口分辨率为512*512。
表1压缩域体绘制性能参数对比结果
由实验结果可知,与已有的无损浮点体数据压缩方法(压缩比普遍不高,其压缩率在2-3之间)相比,本发明方法压缩率更高;而与有损的基于矢量量化的方法,如HVQ方法相比,本发明方法压缩比虽有所下降,但是在“近似无损”的前提下,取得了可观的压缩比,尤其是面对稀疏体数据,如Hurricane Isabel Cloud,压缩比更能说明本发明方法在面对此类数据时的巨大应用潜力。此外,对实验数据,本发明的方法均保持不错的绘制帧率,达到实时绘制的要求。
图5、6、7是对Hurricane Isabel Cloud分别使用DVR、基于HVQ的CDVR和本发明的方法的绘制结果。由图5-7可知,相对于HVQ方法,本发明方法解码数据更接近原始数据,误差更小,失真明显减轻,绘制结果的视觉效果更加光滑,与原始数据的DVR结果更加接近。同样地,对图6和图7的定量分析的对比结果如表2所示,由此可见,相对于HVQ方法,本发明方法对该数据的处理结果在质量上有了较大提升,红绿蓝三个颜色通道上的MSE均有明显下降,而PSNR则均有提高。
表2Hurricane Isabel Cloud压缩质量对比分析
Claims (3)
1.一种近似无损的三维体数据压缩域体绘制方法,其特征在于,包括如下步骤:
(1)将体数据值类型为浮点型、无符号字符型或者短整型的三维原始体数据分割成大小为4*4*4的数据块,再对分割完的数据块逐个进行拉普拉斯分解,由此将每个数据块分解为三个层次的数据:其中,每一个数据块的第一层次分解数据是一个大小为4*4*4的64维矢量,所有数据块的第一层次分解数据构成第一层次分解数据矢量集合;每一个数据块的第二层次分解数据是一个大小为2*2*2的8维矢量,所有数据块的第二层次分解数据构成第二层次分解数据矢量集合;每一个数据块的第三层次分解数据是该数据块的体数据值的算术平均值,所述第三层次分解数据的大小为1*1*1,所有数据块的第三层次分解数据构成第三层次分解数据集合;
(2)对所述第一层次分解数据矢量集合进行矢量量化,得到第一级矢量量化编码表和第一级索引体数据,所述第一级索引体数据中记录了每一个4*4*4数据块的第一层次分解数据与第一级矢量量化编码表中码元矢量的对应关系;构造第一级偏移地址表,由此确定第一级矢量量化编码表中的码元矢量的元素与每个数据块的第一层次分解数据中的体素的对应关系:
对所述第二层次分解数据矢量集合进行矢量量化,得到第二级矢量量化编码表和第二级索引体数据,所述第二级索引体数据中记录了每一个4*4*4数据块的第二层次分解数据与第二级矢量量化编码表中码元矢量的对应关系;构造第二级偏移地址表,由此确定第二级矢量量化编码表中的码元矢量的元素与每个数据块的第二层次分解数据的体素的对应关系:
(3)利用第一级矢量量化编码表、第一级索引体数据、第一级偏移地址表以及第二级矢量量化编码表、第二级索引体数据、第二级偏移地址表分别进行矢量量化解码而相应得到所有数据块的第一层次分解数据和第二层次分解数据的解码恢复值,再逐体素地对所有数据块的每个体素所对应的第一层次分解数据和第二层次分解数据的解码恢复值以及第三层次分解数据相加得到解码体数据,将原始体数据与解码体数据逐体素作差而得到稀疏的残差体数据;
(4)使用完美空间哈希压缩所述残差体数据而得到偏移表数据、位置表数据和哈希表数据;
(5)将第一级索引体数据、第二级索引体数据、第一级矢量量化编码表、第二级矢量量化编码表、第一级偏移地址表、第二级偏移地址表、偏移表数据、位置表数据和哈希表数据传入到GPU中并在GPU中进行实时解码和绘制。
2.根据权利要求1所述的方法,其特征在于,在所述步骤(2)中,按照公式(1)所示的方法构造第一级偏移地址表:
value1[i,j,k]=((i/2*4+j/2*2+k/2)*8+i%2*4+j%2*2+k%2)/64.0 (1)
公式(1)中,i,j,k分别表示待解码体素在其所属的4*4*4数据块内的三个方向上的位置,i,j,k的取值范围皆为[0,3];value1[i,j,k]表示位置为i,j,k的待解码体素在第一级矢量量化编码表中它所对应的码元矢量内部的偏移地址。
3.根据权利要求1或2所述的方法,其特征在于,在所述步骤(2)中,按照公式(2)所示的方法构造第二级偏移地址表:
value2[i,j,k]=(k/2+j/2*2+i/2*4)/8.0 (2)
公式(2)中,i,j,k分别表示待解码体素在其所属的4*4*4数据块内的三个方向上的位置,i,j,k的取值范围皆为[0,3];value2[i,j,k]表示位置为i,j,k的待解码体素在第二级矢量量化编码表中它所对应的码元矢量内部的偏移地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410525176.9A CN104299256B (zh) | 2014-10-05 | 2014-10-05 | 一种近似无损的三维体数据压缩域体绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410525176.9A CN104299256B (zh) | 2014-10-05 | 2014-10-05 | 一种近似无损的三维体数据压缩域体绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104299256A CN104299256A (zh) | 2015-01-21 |
CN104299256B true CN104299256B (zh) | 2017-04-12 |
Family
ID=52318978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410525176.9A Active CN104299256B (zh) | 2014-10-05 | 2014-10-05 | 一种近似无损的三维体数据压缩域体绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104299256B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3404919A1 (en) * | 2017-05-17 | 2018-11-21 | Koninklijke Philips N.V. | Vector-valued diagnostic image encoding |
CN108062532B (zh) * | 2017-12-28 | 2020-07-28 | 智慧眼科技股份有限公司 | 深度学习人脸识别网络优化方法、装置及存储介质 |
CN109189725B (zh) * | 2018-07-23 | 2020-09-18 | 广州都市圈网络科技有限公司 | 面向规则建筑物的obj文件无损压缩方法 |
CN112068791B (zh) * | 2020-09-04 | 2024-01-23 | 京东方科技集团股份有限公司 | 旋转显示设备的显示数据的存储方法、寻址方法及设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69934939T2 (de) * | 1998-06-29 | 2007-10-18 | Xerox Corp. | Kompression von Grenzen zwischen Bildern |
US6470052B1 (en) * | 1998-06-29 | 2002-10-22 | Xerox Corporation | HVQ compression combined with orthogonal rotation |
US7619623B2 (en) * | 2006-04-17 | 2009-11-17 | Microsoft Corporation | Perfect multidimensional spatial hashing |
CN1967595A (zh) * | 2006-10-26 | 2007-05-23 | 上海交通大学 | 基于分块的蒙特卡洛体绘制方法 |
CN103487833B (zh) * | 2013-09-16 | 2016-04-13 | 电子科技大学 | 一种三维地震体矢量量化压缩体绘制方法 |
-
2014
- 2014-10-05 CN CN201410525176.9A patent/CN104299256B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104299256A (zh) | 2015-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552989B2 (en) | Point cloud attribute compression method based on KD tree and optimized graph transformation | |
CN115049936B (zh) | 一种面向高分遥感影像的边界增强型语义分割方法 | |
WO2019153342A1 (zh) | 一种基于增强图变换的点云属性压缩方法 | |
CN110517329B (zh) | 一种基于语义分析的深度学习图像压缩方法 | |
CN104299256B (zh) | 一种近似无损的三维体数据压缩域体绘制方法 | |
CN109166160B (zh) | 一种采用图形预测的三维点云压缩方法 | |
CN110223231A (zh) | 一种含噪图像的快速超分辨重建算法 | |
WO2022067790A1 (zh) | 一种点云分层方法及解码器、编码器、存储介质 | |
CN112686830B (zh) | 基于图像分解的单一深度图的超分辨率方法 | |
CN114708343A (zh) | 基于图字典学习的三维点云编解码方法、压缩方法及装置 | |
CN109035318B (zh) | 一种图像风格的转换方法 | |
Huang et al. | Patch-Wise LiDAR Point Cloud Geometry Compression Based on Autoencoder | |
CN112862946B (zh) | 基于级联条件生成对抗网络的灰度岩心图像三维重建方法 | |
CN116546219A (zh) | 一种基于学习的点云几何颜色联合压缩方法 | |
Ding et al. | A near lossless compression domain volume rendering algorithm for floating-point time-varying volume data | |
CN110267049A (zh) | 一种稀疏编码的存储优化方法 | |
Shen et al. | Multipath feedforward network for single image super-resolution | |
Chen et al. | Rapid-INR: Storage Efficient CPU-free DNN Training Using Implicit Neural Representation | |
CN110349228B (zh) | 一种数据驱动最小二乘预测的三角网格压缩方法 | |
Kekre et al. | Performance Comparison of Various Pixel Window Sizes for Colorization of Grayscale Images using LBG, KPE, KFCG and KEVR in Kekre’s LUV Color Space | |
Thepade et al. | New clustering algorithm for Vector Quantization using Haar sequence | |
CN109448065B (zh) | 一种基于梯度分块自适应测量的压缩感知方法 | |
CN113556546A (zh) | 一种两阶段多假设预测视频压缩感知重构方法 | |
Pang et al. | A parallel compression framework for fractal images using DCT block classification | |
CN114998457B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |