一种多阈值串匹配数据压缩方法与流程

文档序号:18329851发布日期:2019-08-03 11:59阅读:206来源:国知局

本发明涉及一种对数据进行有损压缩的方法,具体涉及一种多阈值串匹配数据压缩方法。



背景技术:

5g时代,万物互联,各类新兴应用中产生的新型互联网数据具有多样性和差异性。因此,如何针对具有多样性和差异性的新型互联网数据的特点,研究出一种高效的数据编码技术成为了当今的迫切需求。为了进一步提高具有多样性和差异性的各种新类型数据的编码效率,最新的数据编码技术主要包括基于多树的、基于对称或非对称的、基于更灵活的以“块”为编解码单位的传统编码框架、以及基于以“串”为编解码单位的串匹配算法。

其中,串匹配算法中的最小匹配单位称为基元,编码基元表示编码串的最小匹配单位;参考基元表示参考串的最小匹配单位。在有损串匹配算法中,如何判断当前编码基元与参考基元是否匹配这是串匹配算法中的关键问题。现有技术中的有损串匹配算法主要通过设定一个阈值,并且该阈值为固定值,比较当前编码基元与参考基元的差的绝对值是否小于该预设的单一固定阈值,即采用单一固定阈值方法来判断是否匹配。例如:如果当前编码基元与参考基元之差的绝对值小于预设的单一固定阈值,则表明当前编码基元与参考基元匹配。

上述现有技术中采用单一固定阈值的方法主要存在以下不足:

(1)采用“单一阈值”存在的缺陷是:当阈值设置得越小,参考串与编码串的误差就越小,失真也越小,但是匹配串长度就越短,因此需要表示当前编码串和参考串编码信息的比特数就会增加,编码效率就会降低;反之,当阈值设置得越大,参考串与编码串的失真变大,匹配串长度也会变长,此时图像的重构质量就很难得到保证。

(2)采用“固定阈值”存在的缺陷是:阈值采用固定值是因为仅考虑了局部的“编码基元与参考基元”的误差值,未考虑编码串与参考串的整体误差值和之前的最佳参考串、最佳模式的误差值信息。而事实上,参考串是否能成为最终的最佳参考串,一般是根据平均率失真最小化规则来衡量的,即与整体误差值等相关。因此不能仅仅考虑局部误差值,否则编码效率也会受到影响。

为了清楚说明现有技术中采用单一且固定的阈值存在的问题,以下给出一个实施例:当编码串和参考串仅仅存在极少数量误差较大的值时(其他的误差都非常小),采用单一固定阈值方法会先将所述当前编码串分成多个编码串来处理。如:当前编码串的数值为177,23,177,23,40,177,165,165,165......、参考串的数值为177,23,177,23,45,177,165,165,165.......,设定单一固定阈值为4,则当前编码串和参考串的第5个值超出了所设定阈值范围,即为不匹配数值。因此,遇到这种情况时,采用单一固定阈值方法就需要先将编码串拆分成多个,然后逐一进行匹配确认,这会导致有损串匹配编码效率不高。

有鉴于此,本案由此而生。



技术实现要素:

鉴于上述现有技术中串匹配编码方法存在的效率低下问题,本发明通过设置多个阈值方式来达到提高编码效率的目的,具体采用的技术方案如下:

一种多阈值串匹配数据压缩方法,包括编码串、参考串、设定的阈值、以及预设的匹配条件,编码串的最小匹配单位为编码基元,参考串的最小匹配单位为参考基元;设定多个阈值以及与多个阈值相对应的多个匹配条件,比较当前编码基元与参考基元是否匹配,或者比较当前编码串与参考串是否匹配时,满足其中一个匹配条件即可判定匹配成功,或者采用同时满足多个匹配条件才判定匹配成功的方式。

进一步设置,数据压缩方法中的串匹配数据包括以下类型中的其中一种,或者是以下类型的几种组合而成,数据类型包括:一维数据;二维数据;多维数据;图形;图像;图像的序列;视频;三维场景;持续变化的三维场景的序列;虚拟现实的场景;持续变化的虚拟现实的场景的序列;像素形式的图像;图像的变换域数据;二维或二维以上字节的集合;二维或二维以上比特的集合;像素的集合;三分量像素(y,u,v)的集合;三分量像素(y,cb,cr)的集合;三分量像素(y,cg,co)的集合;三分量像素(r,g,b)的集合;四分量像素(c,m,y,k)的集合;四分量像素(r,g,b,a)的集合;四分量像素(y,u,v,a)的集合;四分量像素(y,cb,cr,a)的集合;四分量像素(y,cg,co,a)的集合。

进一步设置,所述编码基元中的基元以及参考基元中的基元,包括单个分量,或者单个像素,或者多个分量组成的串,或者多个像素组成的串。

进一步设置,多个阈值采用不同分量所对应的阈值、常数固定值、非固定值其中之一,或者由上述几种组合而成。

进一步设置,所述阈值采用非固定值时,该非固定值为当前最佳参考串误差值的绝对值的平均值,或者为当前最佳参考串误差值的绝对值的最大值,或者为当前最佳参考串误差值的绝对值的最小值,或者为当前最佳模式获得的误差值的绝对值的平均值。

进一步设置,所述阈值设定为固定值a和固定值b时,预设匹配条件为:当前编码基元与参考基元之差的绝对值小于固定值a或/和当前编码串与参考串的平均误差值的绝对值小于固定值b,或者预设匹配条件为:当前编码基元与参考基元之差的绝对值小于固定值a或/和当前编码串与参考串的最大误差值小于固定值b;所述阈值设定为固定值a和非固定值b时,预设匹配条件为:当前编码基元与参考基元之差的绝对值小于固定值a或/和当前编码串与参考串的平均误差值的绝对值小于非固定值b;所述阈值设定为非固定值a和固定值b时,预设匹配条件为:当前编码基元与参考基元之差的绝对值小于非固定值a或/和当前编码串与参考串的平均误差值的绝对值小于固定值b,或者预设匹配条件为:当前编码基元与参考基元之差的绝对值小于非固定值a或/和当前编码串与参考串的最大误差值小于固定值b;所述阈值设定为一个分量的固定值a和其他分量的固定值b时,预设匹配条件为:当前编码基元的一个分量与参考基元的一个分量之差的绝对值小于固定值a,且当前编码基元的其他分量与参考基元的其他分量之差的绝对值小于固定值b。

进一步设置,利用设定的多个阈值及对应的匹配条件来对当前编码基元或编码串进行匹配判断后,对部分阈值或者全部阈值进行调整,下一个编码基元或者编码串匹配时使用调整后的新阈值进行匹配判断。

进一步设置,对阈值的调整是通过将该阈值加/减/乘/除一个数值来实现,该数值采用固定数值或者采用非固定数值,阈值调整时可以采用加、减、乘、除其中一种运算方式,也可以采用几种混合运算方式。

进一步设置,对当前阈值的调整是通过选取一个最小值/最大值来实现。

本发明针对现有技术中采用的单一固定阈值实现的串匹配算法进行了改进,通过设定多阈值方式实现,并且多阈值既可以是固定值也可以采用非固定值,对应多个阈值的多个匹配条件既可以满足之一,也可以同时满足,这种灵活的多组合方式是基于考虑到局部与整体之间误差存在差异性,以及多个分量之间误差存在差异性而提出,该方法拓宽了数据压缩的适用范围,也可以显著提高编码的效率。

具体实施方式:

本发明是针对采用串匹配算法进行数据压缩处理而作出的改进,公开了一种多阈值串匹配数据压缩方法,旨在提高编码效率,该方法为:设定多个阈值以及与多个阈值相对应的多个匹配条件,比较当前编码基元与参考基元是否匹配,或者比较当前编码串与参考串是否匹配时,满足其中一个匹配条件即可判定匹配成功,或者采用同时满足多个匹配条件才判定匹配成功的方式。

采用串匹配方式对数据压缩处理时,一般会涉及到编码串、参考串、设定的阈值、以及预设的匹配条件,而编码串的最小匹配单位为编码基元,参考串的最小匹配单位为参考基元。本发明主要适用于有损串匹配数据的编码,而所述的数据是指以下列举出的任一一种,也可以是以下几种的任意组合而成,数据包括:

1)一维数据;

2)二维数据;

3)多维数据;

4)图形;

5)图像;

6)图像的序列;

7)视频;

8)三维场景;

9)持续变化的三维场景的序列;

10)虚拟现实的场景;

11)持续变化的虚拟现实的场景的序列;

12)像素形式的图像;

13)图像的变换域数据;

14)二维或二维以上字节的集合;

15)二维或二维以上比特的集合;

16)像素的集合;

17)三分量像素(y,u,v)的集合;

18)三分量像素(y,cb,cr)的集合;

19)三分量像素(y,cg,co)的集合;

20)三分量像素(r,g,b)的集合;

21)四分量像素(c,m,y,k)的集合;

22)四分量像素(r,g,b,a)的集合;

23)四分量像素(y,u,v,a)的集合;

24)四分量像素(y,cb,cr,a)的集合;

25)四分量像素(y,cg,co,a)的集合。

上述给出的编码基元或者参考基元中的基元主要是指以下几种:单个分量,或者单个像素,或者多个分量组成的串,或者多个像素组成的串。

上述所说的阈值是指不同分量对应的阈值,或者是一个取值为0-100之间的常数固定值,或者是一个非固定值。此处的非固定值包括以下所列举出的几种:当前最佳参考串误差值的绝对值的平均值;或者为当前最佳参考串误差值的绝对值的最大值;或者为当前最佳参考串误差值的绝对值的最小值;或者为当前最佳模式获得的误差值的绝对值的平均值。

多个阈值在设定时,对应多个阈值的多个匹配条件判断时既可以满足之一,也可以同时满足,这种灵活的多组合方式是基于考虑到局部与整体之间误差存在差异性,以及多个分量之间误差存在差异性而提出,该方法拓宽了数据压缩的适用范围,也可以显著提高编码的效率。多阈值至少设定为两个,也可以设定为两个以上,多个阈值的设定如:(1)设定固定阈值a和固定阈值b;(2)设定固定阈值a和非固定阈值b;(3)设定非固定阈值a和非固定阈值b;(4)设定一个分量对应的阈值a和其他分量对应的阈值b;(5)设定一个分量对应的阈值a、其他分量对应的阈值b、固定阈值c;(6)设定一个分量对应的阈值a、其他分量对应的阈值b、非固定阈值c,具体根据需要自行设定即可。

当阈值设定多个时,预设匹配条件为以下之一或者其组合,如:

(1)阈值设定为固定值a和固定值b时,预设匹配条件为:

(1a)当前编码基元与参考基元之差的绝对值小于固定值a或/和当前编码串与参考串的平均误差值的绝对值小于固定值b;

(1b)当前编码基元与参考基元之差的绝对值小于固定值a或/和当前编码串与参考串的最大误差值小于固定值b。

(2)阈值设定为固定值a和非固定值b时,预设匹配条件为:当前编码基元与参考基元之差的绝对值小于固定值a或/和当前编码串与参考串的平均误差值的绝对值小于非固定值b。

(3)阈值设定为非固定值a和固定值b时,预设匹配条件为:

(3a)当前编码基元与参考基元之差的绝对值小于非固定值a或/和当前编码串与参考串的平均误差值的绝对值小于固定值b;

(3b)当前编码基元与参考基元之差的绝对值小于非固定值a或/和当前编码串与参考串的最大误差值小于固定值b。

(4)阈值设定为一个分量的固定值a和其他分量的固定值b时,预设匹配条件为:当前编码基元的一个分量与参考基元的一个分量之差的绝对值小于固定值a,且当前编码基元的其他分量与参考基元的其他分量之差的绝对值小于固定值b。

进一步,在串匹配时考虑到当前匹配误差对全局误差的影响,本发明还通过对阈值进行调整来为后续基元的匹配进行全局优化处理,又进一步提高了串匹配数据编码的效率。这种对阈值的调整分为对部分设定阈值进行调整(其余阈值不进行调整),以及对所有设定阈值同时进行调整两种方式,具体可以根据需要而选择。本发明所述对阈值的调整,是通过将该阈值加/减/乘/除一个数值来实现,该数值采用固定数值或者采用非固定数值,阈值调整时可以采用加、减、乘、除其中一种运算方式,也可以采用几种混合运算方式,具体根据实际需要进行设定。涉及调整多个阈值时,对当前阈值的调整也可以选取一个最小值/最大值来实现,视具体需要进行选择。

下面给出几种具体的实施例详细说明:

实施例1:

1.1设定阈值:设固定阈值a和固定阈值b;

设定匹配条件:

条件1:当前编码基元与参考基元之差的绝对值小于阈值a;

条件2:当前编码串与参考串的平均误差值的绝对值小于阈值b;

1.2匹配判断:匹配时若满足条件1成立,或者满足条件2成立,那么表明当前编码基元与参考基元匹配,继续搜索下一个编码基元进行匹配判断;如果上述两个条件都无法满足,则表明当前编码基元与参考基元不匹配,重新搜索下一个编码基元进行匹配判断。

实施例2:

2.1设定阈值:设固定阈值a和非固定阈值b,其中非固定阈值b为当前最佳参考串获得的平均误差值;

设定匹配条件:

条件1:当前编码基元与参考基元之差的绝对值小于阈值a;

条件2:当前编码串与参考串的平均误差值的绝对值小于阈值b;

2.2匹配判断:匹配时若满足条件1成立,或者满足条件2成立,那么表明当前编码基元与参考基元匹配,继续搜索下一个编码基元进行匹配判断;如果上述两个条件都无法满足,则表明当前编码基元与参考基元不匹配,重新搜索下一个编码基元进行匹配判断。

实施例3:

3.1设定阈值:设固定阈值a和非固定阈值b,其中非固定阈值b为当前最佳参考串获得的最大误差值;

设定匹配条件:

条件1:当前编码基元与参考基元之差的绝对值小于阈值a;

条件2:当前编码串与参考串的最大误差值小于阈值b;

3.2匹配判断:匹配时若满足条件1成立,或者满足条件2成立,那么表明当前编码基元与参考基元匹配,继续搜索下一个编码基元进行匹配判断;如果上述两个条件都无法满足,则表明当前编码基元与参考基元不匹配,重新搜索下一个编码基元进行匹配判断。

实施例4:

4.1设定阈值:设一个分量对应的固定阈值a和其他分量对应的固定阈值b;

设定匹配条件:

条件1:当前编码基元的一个分量c与参考基元的一个分量c之差的绝对值小于阈值a;

条件2:当前编码基元除c以外的分量与参考基元除c以外的分量之差的绝对值小于阈值b;

4.2匹配判断:匹配时若满足条件1成立,并且同时满足条件2成立,那么表明当前编码基元与参考基元匹配,继续搜索下一个编码基元进行匹配判断;如果上述两个条件无法同时满足,则表明当前编码基元与参考基元不匹配,重新搜索下一个编码基元进行匹配判断。

实施例5:

5.1设定阈值:设非固定阈值a和非固定阈值b,其中,非固定阈值a的初始值为当前最佳参考串获得的平均误差值,非固定阈值b为当前最佳模式获得的平均误差值;

设定匹配条件:

条件1:当前编码基元与参考基元之差的绝对值小于阈值a;

条件2:当前编码串平均误差值的绝对值小于阈值b;

5.2匹配判断:如果上述条件1成立,或者条件2成立,则表明当前编码基元与参考基元匹配,如果条件1和条件2均不满足,表明当前编码基元与参考基元不匹配;

5.3对当前阈值a进行调整,调整后的阈值为a’,阈值b不进行调整,阈值a调整如下:

a’=(最佳参考串的总误差-当前编码串的总误差)/(最佳参考串的长度-当前编码串的长度);

5.4继续搜索下一个编码基元,并采用5.3中调整后的阈值a’及调整后对应的匹配条件1、以及原始阈值b及原条件2继续对下一个编码基元进行匹配判断,后续按照上述步骤循环操作。

实施例6:

6.1设定阈值:设非固定阈值a和非固定阈值b,其中,非固定阈值a为当前最佳参考串获得的平均误差值减去一个设定值,非固定阈值b为当前最佳参考串获得的平均误差值加上一个设定值,且满足a小于b;

设定匹配条件:

条件1:当前编码基元与参考基元之差的绝对值小于阈值a或者小于阈值b;

条件2:当前编码串通过阈值a获得的最佳参考串a1的平均误差值小于阈值b获得的最佳参考串b1的平均误差值;

6.2匹配判断:如果上述条件1成立,则编码基元与参考基元匹配,同时获得最佳参考串a1和最佳参考串b1;如果条件1不成立,再判断条件2是否成立,如果上述条件2成立,则表明当前编码串与最佳参考串a1匹配,按照6.3步骤对阈值a进行调整;否则,表明当前编码串与最佳参考串b1匹配,按照6.4步骤对阈值b进行调整;

6.3对当前阈值a进行调整,调整后的阈值为a’,调整如下:

a’=min(a+预设值,b);

6.4对当前阈值b进行调整,调整后的阈值为b’,调整如下:

b’=max(b-预设值,a);

6.5继续搜索下一个编码基元,并采用6.3或6.4中调整后的阈值a’或b’及调整后对应的匹配条件1和匹配条件2继续对下一个编码基元进行匹配判断,后续按照上述步骤循环操作。

以上实施例仅用以说明本发明的技术方案而非限制,本领域普通技术人员对本发明的技术方案所做的其他修改或者等同替换,只要不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1