一种基于熵编码的编解码方法、系统、存储介质及设备与流程

文档序号:34914564发布日期:2023-07-27 23:07阅读:30来源:国知局
一种基于熵编码的编解码方法、系统、存储介质及设备与流程

本发明涉及编解码,尤其涉及一种基于熵编码的编解码方法、系统、存储介质及设备。


背景技术:

1、随着互联网、物联网等技术高速发展,人类社会已经进入“万物互联”时代。云计算、大数据、人工智能、区块链等前沿技术的迅速发展,催生了数据爆发式增长。在产业数字化转型的持续发展中,数据成为关键生产要素。面对持续增长的海量数据,数据压缩成为减轻服务器存储负担、降低存储成本的最有效方法。

2、数据压缩在不丢失有用信息的前提下,通过缩减数据量以减少存储空间,可以提高传输、存储和处理效率。无损数据压缩一般通过两种方法来实现:一种是通过字典的方式实现压缩的算法,包括lz系列算法,这类算法能实现重复数据的搜索功能;一种是基于频率统计模型的熵编码算法,如huffman(哈夫曼)编码、算术编码、非对称数字系统(ans)等,这类算法的核心思想是依照符号出现频率分配码长,符号频率越大,码长就越短,可以用如下两个公式描述:

3、p(1)≤p(2)≤p(3)…≤p(n-1)≤p(n)

4、l(1)≥l(2)≥l(3)…≥l(n-1)≥l(n)

5、为了实现更高的压缩率,当前最常见数据压缩算法都会采用上述2种方法进行混合压缩。所有的压缩算法都需要定期(分块)对熵编码的概率分布进行更新并封装编码。deflate协议在封装哈夫曼编码时,虽然仅仅编码封装每个符号哈夫曼码长,其实码长等效于概率为2的负幂次方。对于追求更高压缩比的熵编码算法,例如算术编码和非对称数字系统,两者都追求更精确的概率,以接近于信源的信息熵。

6、数据压缩算法通常基于分块数据进行概率统计,为了能使解码端准确解码恢复压缩数据,需要将编码器统计得到的概率分布编码封装进压缩数据。解码端通过解析得到与编码端相同的概率分布,进而准确恢复原始数据。

7、关于概率分布的编码及封装方法,一般采用等长编码。顾名思义,等长编码中所有符号(概率)的编码长度都相等。

8、当前大多数压缩格式采用等长编码的方法,依次封装符号的概率,封装时每个概率采用统一的编码码长n。

9、例如:如下概率分布:{8,17,4,5,1,1,2,3,12,40,37,5,2,19,18,17,17,1,13,5,2,1,24,1,1},其概率总和为256,因此每个概率编码码长n=8,那么封装这个概率集合需要的总码长为200(即25*8)bit。

10、等长编码之所以采用概率总和对应的位宽n,是因为单个概率可能的取值较大,并且解码端无法知道概率的取值,只能以最大的位宽解码概率。然而,概率分布的封装是依次对概率进行序列封装,因此编码完成一个概率后,后续的概率取值范围(极大值)相应会减小。上例中,当编码封装完成第一个概率“8”时,第二概率的取值范围将变为[0,248]。需要说明的是这个概率的取值范围对于解码端是可感知的。

11、基于此,编码完成一个概率后,不仅可以计算后续该概率的可能取值范围(极大值),而且可以适时更新后续概率的位宽。例如当编码完37后,后续概率的取值范围更新为[0,126],此时可以将后续概率的编码位宽调整为

12、在此可以得出一个结论:后续概率编码码长实际上等于剩余概率(编码流程中尚未编码的概率总和)的位宽,与总概率无关。

13、由上述分析可知,等长编码的缺点:对于小概率编码过于冗余。但是等长编码之采用概率总和对应的位宽n,是因为解码端对于概率不感知,即解码器不知晓概率值的码长,因此只能以最大的位宽n编码概率。


技术实现思路

1、有鉴于此,本发明的目的在于提出一种基于熵编码的编解码方法、系统、存储介质及设备,用以解决现有技术中在熵编码中解码端对于概率不感知,即解码器不知晓概率值的码长,导致只能以最大的位宽编码概率,导致冗余的问题。

2、基于上述目的,本发明提供了一种基于熵编码的编解码方法,包括以下步骤:

3、对待编码符号设置标签,其中,标签包括连续若干数量的第一二进制符号和一个第二二进制符号;

4、将待编码符号和标签输入至码流进行编码,得到码字;

5、对码字进行解码,得到解码数据,并读取解码数据中第一二进制符号,直至读取到第二二进制符号时终止,并统计第一二进制符号的当前数量,并基于当前数量得到本次解码的码长。

6、在一些实施例中,方法还包括:

7、随着第一二进制符号数量的增加,待编码数据的码长的位宽增加。

8、在一些实施例中,随着第一二进制符号数量的增加,待编码数据的码长的位宽增加包括:

9、随着第一二进制符号数量的增加一个,待编码数据的码长的位宽增加一位。

10、在一些实施例中,第一二进制符号为1,第二二进制符号为0。

11、在一些实施例中,方法还包括:

12、基于第一二进制符号的数量得到对应的二进制数,并基于二进制数得到待编码符号的概率取值范围。

13、本发明的另一方面,还提供了一种基于熵编码的编解码系统,包括:

14、设置模块,配置用于对待编码符号设置标签,其中,标签包括连续若干数量的第一二进制符号和一个第二二进制符号;

15、编码模块,配置用于将待编码符号和标签输入至码流进行编码,得到码字;以及

16、解码模块,配置用于对码字进行解码,得到解码数据,并读取解码数据中第一二进制符号,直至读取到第二二进制符号时终止,并统计第一二进制符号的当前数量,并基于当前数量得到本次解码的码长。

17、在一些实施例中,系统包括增加模块,增加模块配置用于随着第一二进制符号数量的增加一个,待编码数据的码长的位宽增加一位。

18、在一些实施例中,第一二进制符号为1,第二二进制符号为0。

19、本发明的又一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述方法。

20、本发明的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述方法。

21、本发明至少具有以下有益技术效果:

22、本发明的基于熵编码的编解码方法,通过对待编码符号设置标签,标签包括连续若干数量的第一二进制符号和一个第二二进制符号,并将待编码符号和标签输入至码流进行编码,得到码字,并对码字进行解码,得到解码数据,并读取解码数据中第一二进制符号,直至读取到第二二进制符号时终止,并统计第一二进制符号的当前数量,并基于当前数量得到本次解码的码长,从而解决了在熵编码中解码端对于概率不感知,即解码器不知晓概率值的码长,导致只能以最大的位宽编码概率,导致冗余的问题,有利于减少小概率编码中的冗余问题,有助于提高编解码效率。



技术特征:

1.一种基于熵编码的编解码方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的方法,其特征在于,还包括:

3.根据权利要求2所述的方法,其特征在于,随着所述第一二进制符号数量的增加,所述待编码数据的码长的位宽增加包括:

4.根据权利要求1所述的方法,其特征在于,所述第一二进制符号为1,所述第二二进制符号为0。

5.根据权利要求1所述的方法,其特征在于,还包括:

6.一种基于熵编码的编解码系统,其特征在于,包括:

7.根据权利要求6所述的系统,其特征在于,所述系统包括增加模块,所述增加模块配置用于随着所述第一二进制符号数量的增加一个,所述待编码数据的码长的位宽增加一位。

8.根据权利要求6所述的系统,其特征在于,所述第一二进制符号为1,所述第二二进制符号为0。

9.一种计算机可读存储介质,其特征在于,存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-5任意一项所述的方法。

10.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时执行如权利要求1-5任意一项所述的方法。


技术总结
本发明提供了一种基于熵编码的编解码方法、系统、存储介质及设备,方法包括:对待编码符号设置标签,其中,标签包括连续若干数量的第一二进制符号和一个第二二进制符号;将待编码符号和标签输入至码流进行编码,得到码字;对码字进行解码,得到解码数据,并读取解码数据中第一二进制符号,直至读取到第二二进制符号时终止,并统计第一二进制符号的当前数量,并基于当前数量得到本次解码的码长。本发明解决了在熵编码中解码端对于概率不感知,即解码器不知晓概率值的码长,导致只能以最大的位宽编码概率,导致冗余的问题,有利于减少小概率编码中的冗余问题,有助于提高编解码效率。

技术研发人员:张永兴,孙华锦
受保护的技术使用者:山东云海国创云计算装备产业创新中心有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1