一种三维图像数据中顶点数据的压缩方法及装置与流程

文档序号:12041519阅读:156来源:国知局
一种三维图像数据中顶点数据的压缩方法及装置与流程
本发明涉及三维图像处理领域中的数据压缩技术,尤其涉及一种三维图像数据中顶点数据的压缩方法及装置。

背景技术:
随着图像处理技术的发展,效果更为逼真的三维图像逐渐成为图像数据处理的热点。三维图像数据处理中的一个重要技术即压缩技术,三维图像数据的压缩包括:顶点连接关系数据的压缩和顶点数据的压缩两部分;其中,顶点连接关系数据的压缩方法,目前已经可以使顶点连接关系数据的压缩效率接近理论上的极限值,所以,三维图像数据中顶点数据的压缩方法成为影响三维图像数据压缩效率的重要因素。目前顶点数据的压缩方法,包括以下步骤:首先生成压缩码书;计算待压缩的三维图像数据的各个顶点对应的残差矢量,将所得的残差矢量作为待编码残差矢量;逐个提取待编码残差矢量,利用所提取的待编码残差矢量在预置的压缩码书中搜索获取最佳匹配码字,将最佳匹配码字的码字索引值作为该顶点数据的压缩结果,依此类推,直至获取所有顶点数据对应的残差矢量的压缩结果。其中,生成压缩码书的方法为:利用平行四边形预测算法对选定的专门用于生成压缩码书的三维图像数据进行计算,得出该三维图像数据各个顶点对应的残差矢量;利用LBG算法,对上述各个顶点对应的残差矢量的模值进行训练,得到最终的码字组成的集合即为压缩码书。但是,这种方法没有充分考虑三维图像数据的残差矢量的模值的分布特性,即残差矢量的模值较小的部分较多,且相互之间差值很小,如此,生成的压缩码书中就会存储大量欧氏距离很近的 码字,从而浪费存储空间。比如:假设最终得到的压缩码书有一百个码字为{x1,y1,z1;x2,y2,z2;…;x100,y100,z100},其中八十个码字所对应的残差矢量的模值为0到150之间,且这八十个压缩码之间的欧氏距离非常小,这样,就会使用较大的存储空间存储很多类似的码字;并且,由于只有小部分压缩码书用来表示残差矢量的模值较大的顶点数据,会导致无法使图像质量提高。另外,上述顶点数据的压缩方法中,在压缩码书中搜索的方法为全搜索(FS,FullSearch)方法,包括:遍历压缩码书中的所有码字,对每个码字与待编码残差矢量进行计算获得欧氏距离,最终将欧氏距离最小的码字作为最佳匹配码字,将最佳匹配码字的码字索引值作为该顶点数据的压缩结果。但是,由于在预置压缩码书时,压缩码书中就会存储大量欧氏距离很近的码字,所以在获取最佳匹配码字时,会浪费时间来遍历大量类似码字并进行计算,因此,影响顶点数据的压缩效率;并且,由于大量类似码字会增加码字索引值的数量,从而,使码字索引值的比特(Bit)数增加,进而使由顶点数据的压缩结果与残差矢量的Bit比值计算得到的顶点数据的压缩比无法改善。可见,目前已有的顶点数据的压缩方法,由于没有充分利用三维图像数据中顶点数据的分布特点,导致无法节约码字的存储空间、无法提高编码质量、无法改善顶点数据的压缩比、并且影响压缩效率。

技术实现要素:
有鉴于此,本发明的目的在于提供一种三维图像数据中顶点数据的压缩方法及装置,能节约码字的存储空间、提高编码质量、改善顶点数据的压缩比、并且提高压缩效率。为达到上述目的,本发明的技术方案是这样实现的:本发明提供了一种三维图像数据中顶点数据的压缩装置,该装置包括:码书设计模块和码字搜索模块;其中,码书设计模块,用于将码书设计三维图像数据中顶点数据的残差矢量分组,为各组残差矢量生成对应的由指定数量码字组成的压缩子码书,将各组压 缩子码书发送给码字搜索模块;码字搜索模块,用于接收码书设计模块发来的压缩子码书,以及依次为待压缩三维图像数据中顶点数据的残差矢量选取最佳匹配码字,将所述最佳匹配码字的码字索引值、及所在压缩子码书的索引值作为所述顶点数据的压缩结果。上述方案中,所述装置还包括:顶点数据预测模块,用于计算得出码书设计三维图像数据中顶点数据的残差矢量,并将残差矢量发送给码书设计模块;相应的,所述码书设计模块,具体用于接收顶点预测模块发来的码书设计三维图像数据中顶点数据的残差矢量,根据分组数量和分组比例,逐个根据分组比例从残差矢量中按照残差矢量模值从小到大的顺序,提取相应数量的残差矢量组成一组残差矢量,记录该组门限值,依此类推,获得与分组数量一致的多组残差矢量,并按照生成顺序为每个残差矢量组编号。上述方案中,所述码书设计模块,具体用于逐个提取各组残差矢量,使用LBG算法对所提取的每组残差矢量进行训练生成指定数量的码字,组成对应的压缩子码书。上述方案中,所述顶点数据预测模块,还用于计算得出待压缩的三维图像数据中顶点数据的残差矢量,并将残差矢量发送给码字搜索模块;相应的,所述码字搜索模块,具体用于接收顶点数据预测模块发来的待压缩的三维图像数据中顶点数据的残差矢量,将残差矢量的模值与每组压缩子码书的分组门限值进行比对,选定残差矢量所要进行码字搜索的压缩子码书,从选定的压缩子码书中进行码字搜索,获取最佳匹配码字。上述方案中,所述装置还包括:控制模块,用于选择码字搜索方法为FS方法还是快速搜索方法,并将选定的码字搜索方法通知给码字搜索模块;相应的,所述码字搜索模块,还用于接收控制模块发来的选定的码字搜索方法的通知。上述方案中,所述码字搜索模块,使用快速搜索方法时,具体用于:运用主成分分析(PCA,PrincipalComponentAnalysis)算法对各组压缩子码书进行计算,分别得到各组压缩子码书对应的正交变换矩阵;利用各组压缩子码书对应的正交变换矩阵,对该压缩子码书中的所有码字进行变换,将经过正交变换的码字作为新码字保存在该压缩子码书中;当码字搜索时,根据分组门限值,逐个确定残差矢量对应的压缩子码书,使用该压缩子码书的正交变换矩阵对残差矢量进行正交变换,利用变换后的残差矢量在选定的压缩子码书中对经过正交变换的码字进行搜索,获取最佳匹配码字。本发明还提供了一种三维图像数据中顶点数据的压缩方法,该方法包括:将码书设计三维图像数据中顶点数据的残差矢量分组,为各组残差矢量生成对应的由指定数量码字组成的压缩子码书;依次为待压缩三维图像数据中顶点数据的残差矢量选取最佳匹配码字,将所述最佳匹配码字的码字索引值、及所在压缩子码书的索引值作为所述顶点数据的压缩结果。上述方案中,所述将码书设计三维图像数据中顶点数据的残差矢量分组,包括:计算得出码书设计三维图像数据中顶点数据的残差矢量;根据分组数量和分组比例,逐个根据分组比例从残差矢量中按照残差矢量模值从小到大的顺序,提取相应数量的残差矢量组成一组残差矢量,记录该组门限值,依此类推,获得与分组数量一致的多组残差矢量,并按照生成顺序为每个残差矢量组编号。上述方案中,所述为各组残差矢量生成对应的由指定数量码字组成的压缩子码书,包括:逐个提取各组残差矢量,使用LBG算法对所提取的每组残差矢量进行训练生成指定数量的码字,组成对应的压缩子码书。上述方案中,所述依次为待压缩的三维图像数据中顶点数据的残差矢量,从对应的压缩子码书中选取最佳匹配码字,包括:计算得出待压缩的三维图像数据中顶点数据的残差矢量,将残差矢量的模值与每组压缩子码书的分组门限值进行比对,选定残差矢量所要进行码字搜索的压缩子码书,从选定的压 缩子码书中进行码字搜索,获取最佳匹配码字。上述方案中,所述码字搜索为:FS方法或快速搜索方法。上述方案中,所述快速搜索方法包括:运用PCA算法对各组压缩子码书进行计算,分别得到各组压缩子码书对应的正交变换矩阵;利用各组压缩子码书对应的正交变换矩阵,对该压缩子码书中的所有码字进行变换,将经过正交变换的码字作为新码字保存在该压缩子码书中;当码字搜索时,根据分组门限值,逐个确定残差矢量对应的压缩子码书,使用该压缩子码书的正交变换矩阵对残差矢量进行正交变换,利用变换后的残差矢量在选定的压缩子码书中对经过正交变换的码字进行搜索,获取最佳匹配码字。本发明所提供的三维图像数据中顶点数据的压缩方法及装置,通过指定各组压缩子码书的码字数量分组生成压缩子码书,能够根据三维图像数据中顶点数据的残差矢量的数量随模值由小到大依次减小的分布特点,对由残差矢量模值较小的残差矢量组对应的压缩子码书指定较少的码字数量,从而能够减少总码字数量且不影响最终的压缩结果,如此,可节约码字存储空间;并且,对由残差矢量模值较大的残差矢量组对应的压缩子码书指定较多的码字数量,如此,能够增加用于表示较大残差矢量的码字,从而提高编码质量。另外,在进行码字搜索时,由于对各个残差矢量从对应的压缩子码书中选取最佳匹配码字,且生成压缩子码书时对使用频率较高的模值较小的残差矢量对应的压缩子码书中指定的码字数量较小,所以可以减少对使用频率较高的压缩子码书中的搜索时间,并且由于残差矢量模值较大的残差矢量组使用频率较低,因而针对残差矢量模值较大部分增加的码字数量不会对搜索时间产生明显影响,从而整体上提高压缩效率;进一步的,通过减少码字数量且将码字分组,使最终的压缩结果对应的压缩子码书索引值和码字索引值对应的Bit数量减少,从而改善顶点数据的压缩比。附图说明图1为本发明三维图像数据中顶点数据的压缩装置组成结构示意图;图2为本发明生成压缩子码书的流程示意图;图3为本发明使用压缩子码书获取最佳匹配码字的流程示意图。具体实施方式本发明的基本思想是:将码书设计三维图像数据中顶点数据的残差矢量分组,为各组残差矢量生成指定数量的码字组成对应的压缩子码书;依次为待压缩三维图像数据中顶点数据的残差矢量选取最佳匹配码字,将最佳匹配码字的码字索引值、及所在压缩子码书的索引值作为该顶点数据的压缩结果。下面结合附图及具体实施例对本发明再作进一步详细的说明。本发明提供的一种三维图像数据中顶点数据的压缩装置如图1所示,包括:码书设计模块102和码字搜索模块103;其中,码书设计模块102,用于将码书设计三维图像数据中顶点数据的残差矢量分组,为各组残差矢量生成指定数量的码字组成对应的压缩子码书,将各组压缩子码书发送给码字搜索模块103;码字搜索模块103,用于接收码书设计模块102发来的压缩子码书,以及依次为待压缩三维图像数据中顶点数据的残差矢量,从对应的压缩子码书中选取最佳匹配码字,将所述最佳匹配码字的码字索引值、及所在压缩子码书的索引值作为所述顶点数据的压缩结果。所述装置还包括:控制模块104和顶点数据预测模块101;控制模块104,用于设置压缩装置的操作状态,当操作状态为生成压缩子码书时,将码书设计三维图像数据发送给顶点数据预测模块101,并通知顶点数据预测模块101将残差矢量发送给码书设计模块102;顶点数据预测模块101,用于接收控制模块104发来的码书设计三维图像数据,利用平行四边形预测算法对码书设计三维图像数据进行计算,得出各个顶点对应的残差矢量,根据控制模块104发来的通知将得出的残差矢量发送 给码书设计模块102;相应的,所述码书设计模块102,还用于接收顶点数据预测模块101发来的码书设计三维图像数据中顶点数据的残差矢量;其中,所述码书设计三维图像数据为根据实际情况由用户选定的专门用于生成压缩子码书的三维图像数据。所述码书设计模块102,具体用于根据预置的分组数量和分组比例,逐个根据分组比例从残差矢量中按照残差矢量模值从小到大的顺序,提取相应数量的残差矢量组成一组残差矢量,记录该组门限值,依此类推,获得与分组数量一致的多组残差矢量,并按照生成顺序为每组残差矢量编号;其中,所述预置的分组数量为根据实际情况预置的数量;所述分组比例为:根据实际情况设定的每组残差矢量中包含的残差矢量的数量占总残差矢量的数量的比例值;所述分组门限值为:根据分配比例提取残差矢量组成残差矢量子集合时,各个分配比例所对应的残差矢量的模值;比如:可以预置分组数量为三个、分组比例分别为85%、10%和5%;分别按照分配比例为85%、10%和5%从残差矢量中按照残差矢量模值从小到大的顺序,提取相应数量的残差矢量组成三组残差矢量,并且分别记录85%、10%和5%对应的残差矢量的模值作为各组残差矢量的分组门限值。所述码书设计模块102,具体用于逐个提取各组残差矢量,使用LBG算法,对所提取的每组残差矢量进行训练生成指定数量的码字,组成对应的压缩子码书,为该压缩子码书中的码字依次设置码字索引值,并将该组残差矢量的组编号作为压缩子码书的索引值、将该组残差矢量对应的分组门限值作为压缩子码书的分组门限值,依此类推,将所有压缩子码书及各组压缩子码书对应的分组门限值发送给码字搜索模块103;相应的,所述码字搜索模块103,还用于接收并保存码书设计模块102发来的压缩子码书及各组压缩子码书对应的分组门限值;其中,所述LBG算法、以及使用LBG算法对残差矢量的模值进行训练的方法均为已有技术,这里不做赘述;所述指定数量的码字为:根据实际情况设定的每组压缩子码书中码字的数 量,可以根据已有技术中生成的压缩子码书中所包含的码字数量为依据,逐个设置压缩子码书中的码字数量、占已有技术中生成的压缩码书中的总码字数量的比例值对应的数量;比如:当有三组压缩子码书时,分别设置各组压缩子码书中的码字数量占已有技术中生成的压缩码书中的总码字数的比值为1/8、1/4和1/2。所述码书设计模块102,还用于将压缩子码书及各组压缩子码书对应的分组门限值发送给码字搜索模块103时,通知控制模块104码书设计完成;相应的,所述控制模块104,还用于接收码书设计模块102发来的码书设计完成的通知,进入使用压缩子码书获取最佳匹配码字的操作状态。所述控制模块104,还用于进入使用压缩子码书获取最佳匹配码字的操作状态后,实时根据实际情况确定是否要重新预置压缩子码书,若需要,则重新返回生成压缩子码书的操作状态,否则,保持当前操作状态。所述控制模块104,还用于当装置的操作状态为使用压缩子码书获取最佳匹配码字时,将待压缩三维图像数据发送给顶点数据预测模块101,并通知顶点数据预测模块101将残差矢量发送给码字搜索模块103;相应的,所述顶点数据预测模块101,还用于计算控制模块104发来的待压缩三维图像数据各个顶点对应的残差矢量,并根据控制模块104的通知将计算得到的所有残差矢量发送给码字搜索模块103。所述码字搜索模块103,具体用于逐个提取残差矢量,从对应的压缩子码书中进行码字搜索,获取最佳匹配码字,将该最佳匹配码字的码字索引值、及压缩子码书的索引值作为该顶点数据的压缩结果,直至获取所有顶点数据对应的残差矢量的压缩结果;其中,所述对应的压缩子码书为:根据残差矢量的模值与每组压缩子码书的分组门限值进行比对,选定残差矢量所要进行码字搜索的压缩子码书。所述控制模块104,还用于选定码字搜索方法为FS方法还是快速搜索方法,并将码字搜索方法通知给码字搜索模块103;相应的,所述码字搜索模块103,还用于接收控制模块104发来的码字搜索方法的通知。所述码字搜索模块103,具体用于当码字搜索方法为快速搜索方法时,运用PCA算法对码书设计模块102发来的各组压缩子码书进行计算,分别得到各组压缩子码书对应的正交变换矩阵,利用各组压缩子码书对应的正交变换矩阵,对该压缩子码书中的所有码字进行变换,将经过正交变换的码字作为新码字保存在该压缩子码书中;当执行码字搜索时,根据分组门限值,逐个确定残差矢量对应的码书组,再使用该码书组的正交变换矩阵对残差矢量进行正交变换,利用变换后的残差矢量在选定的码字组中对经过正交变换的码字进行搜索,获取最佳匹配码字。其中,所述在选定的码字组中对经过正交变换的码字进行搜索可以使用基于正交变换的码字搜索(OTNNS,OrthonormalTransformNearestNeighborSearch)算法进行搜索。上述三维图像数据中顶点数据的压缩装置可以作为逻辑模块,安装在移动终端或个人电脑上。本发明提出一种三维图像数据中顶点数据的压缩方法,包括生成压缩子码书和使用压缩子码书获取最佳匹配码字两部分;其中,所述生成压缩子码书的流程,如图2所示,包括以下步骤:步骤201:根据码书设计三维图像数据,生成残差矢量。这里,所述生成残差矢量为:利用平行四边形预测算法对码书设计三维图像数据进行计算,得出各个顶点对应的残差矢量;其中,所述平行四边形预测算法、以及利用平行四边形预测算法进行计算均为已有技术,这里不做赘述;所述残差矢量其数量与所述输入的三维图像数据中包含的顶点数相同。步骤202:将残差矢量划分成多组残差矢量,并记录分组门限值。具体的,根据预置的分组数量和分组比例,逐个根据分组比例从残差矢量中按照残差矢量模值从小到大的顺序,提取相应数量的残差矢量组成一组残差矢量,记录该组门限值,依此类推,获得与分组数量一致的多组残差矢量,并按照生成顺序为每组残差矢量编号。步骤203:生成各组残差矢量对应的压缩子码书。这里,所述生成各组残差矢量对应的压缩子码书为:逐个提取各组残差 矢量,使用LBG算法对所提取的每组残差矢量进行训练生成指定数量的码字,组成对应的压缩子码书,为该压缩子码书中的码字依次设置码字索引值,并将该组残差矢量的组编号作为压缩子码书的索引值、将该组残差矢量对应的分组门限值作为压缩子码书的分组门限值,依此类推。在上述步骤203之后,还可以根据实际情况确定是否重新预置压缩子码书,若需要,则选定新的专用于生成压缩子码书的三维图像数据,执行步骤201;否则,不做操作。完成上述生成压缩子码书后,使用压缩子码书获取最佳匹配码字的流程如图3所示,包括以下步骤:步骤301:计算待压缩的三维图像数据的各个顶点对应的残差矢量。这里,所述计算为使用平行四边形预测法进行计算,为已有技术,这里不做赘述。步骤302:逐个提取残差矢量,从对应的压缩子码书中进行码字搜索,获取最佳匹配码字,将该最佳匹配码字的码字索引值、及压缩子码书的索引值作为该顶点数据的压缩结果,直至获取所有顶点数据对应的残差矢量的压缩结果。步骤302完成后,还会判断是否接收到新的待压缩的三维图像数据,若是,则执行步骤301;否则,重复判断是否接收到新的待压缩的三维图像数据。另外,上述步骤302中,所述码字搜索的方法可以使用已有技术中的FS方法,还可以使用快速搜索方法;其中,所述快速搜索方法具体包括:步骤203完成之后,运用PCA算法对各组压缩子码书进行计算,分别得到各组压缩子码书对应的正交变换矩阵;利用各组压缩子码书对应的正交变换矩阵,对该压缩子码书中的所有码字进行变换,将经过正交变换的码字作为新码字保存在该压缩子码书中;当执行步骤302中的码字搜索时,根据分组门限值,逐个确定残差矢量对应的压缩子码书,使用该压缩子码书的正交变换矩阵对残差矢量进行正交 变换,利用变换后的残差矢量在选定的码字组中对经过正交变换的码字进行搜索,获取最佳匹配码字。其中,所述在选定的码字组中对经过正交变换的码字进行搜索可以使用OTNNS算法进行搜索,所述OTNNS算法为已有技术,这里不做赘述。实施例一,假设将残差矢量划分成的三组、分组比例分别为85%、10%和5%,码字搜索方法为FS方法,则实现本发明三维图像数据中顶点数据的压缩方法,包括以下步骤:步骤401:利用专用于生成压缩子码书的三维图像数据生成残差矢量。步骤402:将残差矢量分成三组残差矢量,并记录分组门限值。具体的,将残差矢量集合中的残差矢量按照模值从小到大的顺序排列,根据分配比例分别为85%、10%和5%,逐个从残差矢量集合中提取残差矢量、组成残差矢量子集合,并且记录分组门限值。步骤403:利用三组残差矢量,生成对应的三组压缩子码书。步骤404:计算待压缩的三维图像数据的各个顶点对应的残差矢量。步骤405:逐个提取残差矢量,使用FS方法从对应的压缩子码书中进行码字搜索,获取最佳匹配码字,将该最佳匹配码字的码字索引值i、及压缩子码书的索引值u作为该顶点数据的压缩结果(u,i),直至获取所有顶点数据对应的残差矢量的压缩结果。步骤406:判断是否接收到新的待压缩的三维图像数据,若是,则执行步骤404;否则,重复执行步骤406。实施例二,假设将残差矢量划分成的三组、分组比例分别为85%、10%和5%,码字搜索方法为快速搜索方法,则实现本发明三维图像数据中顶点数据的压缩方法,包括以下步骤:步骤501:利用专用于生成压缩子码书的三维图像数据生成残差矢量。步骤502:将残差矢量分成三组残差矢量,并记录分组门限值。具体的,将残差矢量集合中的残差矢量按照模值从小到大的顺序排列,根据分配比例分别为85%、10%和5%,逐个从残差矢量集合中提取残差矢量、 组成残差矢量子集合,并且记录分组门限值。步骤503:利用三组残差矢量,生成对应的三组压缩子码书。步骤504:运用PCA算法对各组压缩子码书进行计算,分别得到各组压缩子码书对应的正交变换矩阵;利用各组压缩子码书对应的正交变换矩阵,对该压缩子码书中的所有码字进行变换,将经过正交变换的码字作为新码字保存在该压缩子码书中。步骤505:计算待压缩的三维图像数据的各个顶点对应的残差矢量。步骤506:根据分组门限值,逐个确定残差矢量对应的压缩子码书,使用该压缩子码书的正交变换矩阵对残差矢量进行正交变换,使用OTNNS算法利用变换后的残差矢量在选定的码字组中对经过正交变换的码字进行搜索,获取最佳匹配码字,将该最佳匹配码字的码字索引值i、及压缩子码书的索引值u作为该顶点数据的压缩结果(u,i),直至获取所有顶点数据对应的残差矢量的压缩结果。步骤507:判断是否接收到新的待压缩的三维图像数据,若是,则执行步骤505;否则,重复执行步骤507。本发明所提供的三维图像数据中顶点数据的压缩方法及装置,通过指定各组压缩子码书的码字数量分组生成压缩子码书,对由残差矢量模值较小的残差矢量组对应的压缩子码书指定较少的码字数量,从而减少总码字数量且不影响最终的压缩结果,达到节约码字存储空间的目的;通过增加用于表示较大残差矢量的码字,提高编码质量;另外,在进行码字搜索时,可以减少对使用频率较高的压缩子码书中的搜索时间,从而提高压缩效率;通过减少最终的压缩结果对应的Bit数量减少,改善顶点数据的压缩比;进一步的,本发明在进行码字搜索时还可以选择使用快速搜索方法,快速搜索方法能够通过减少乘法计算进一步减少搜索时间,进一步提高压缩效率。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1