一种通用算术编码方法及其解码方法技术

技术编号:15254081 阅读:251 留言:0更新日期:2017-05-02 20:00
本发明专利技术公开一种通用算术编码方法,没有结束符,并在编码文件开头添加信源大小信息,其步骤:1.在编码文件的开头记录信源大小信息FILELEN;2.读入一个符号的信源,用计数器统计信源字节数;编码器编码,若编码器有输出,则所述计数器清零,并重新计数;3.编码器重复步骤2的过程,在编码器编码完最后一个符号后,计数器的值除以FMod,舍掉小数部分,保留整数部分LEFTSYMBOL,编码器再额外输出LEFTSYMBOL数量的,值为0的比特;4.在编码文件末尾,添加一个值为1的比特,以标示编码文件结束。本发明专利技术还给出相应解码方法。本发明专利技术提高数据压缩率,即使数据不可压缩,其产生的冗余信息较少,所以可以代替扰码,把数据白噪声化,以利于数据在信道的传输。

General arithmetic coding method and decoding method thereof

The invention discloses a universal arithmetic encoding method, no end, and add the source size information in the beginning of the file encoding steps: 1 at the beginning of the file record source encoding size information FILELEN source; 2 reads a symbol, with the counter counts the number of bytes source; encoder encoding, if the encoder output. The counter is cleared, and re count; repeat step 3 encoder 2 process in encoding the last symbol, the counter value divided by FMod, get rid of the decimal part, keep the integer part of LEFTSYMBOL encoder, then the number of extra output value is 0 LEFTSYMBOL, the 4 bit encoding; in the end of the file. Add a value of 1 bits to indicate the end file encoding. The invention also provides a corresponding decoding method. The invention can improve the data compression rate, even if the data can not be compressed, the redundant information is less, so instead of scrambling the data, white noise, in order to facilitate the data in the transmission channel.

【技术实现步骤摘要】

本专利技术属于信息编解码
,具体而言,涉及一种通用算术编码方法,同时本专利技术还给出了相应的解码方法。
技术介绍
算术编码是一项非常成熟的无损压缩编码技术,分为静态模型和自适应模型。算术编码先把信源映射到一个符号集,如果符号的长度是8比特,则有256个符号;如果符号的长度是4比特,则有16个符号;另外,还需要一个结束符,所以算术编码总符号数相应的是257或者17。结束符在信源中并不存在,在解码时,解码到结束符时,就认为解码结束了,是解码结束标志。对静态模型来说,首先需要统计整个信源中各个符号的概率,编码过程不必更新此概率分布。对自适应模型来说,首先假定各个符号出现的概率相等,每编码一个符号更新一次概率分布。符号集初始的概率区间是大于等于0,小于1的区间[0,1),计算信源中第一个符号在[0,1)的概率区间[A1,B1),并更新概率分布,计算第二个符号在[A1,B1)的概率区间[A2,B2),并更新概率分布,注意[A2,B2)区间宽度小于[A1,B1)的区间宽度,实际上当前求出的概率区间宽度总是小于上一个概率区间宽度。以此类推,直到求出信源中的最后一个符号的概率区间[An,Bn),再更新概率分布,最后求出结束符在区间[An,Bn)的区间[Ae,Be),然后输出区间[Ae,Be)内的任意一个数值作为整个压缩编码的输出,编码完成。当前,算术编码无损压缩算法的一大技术缺陷是,如果数据不具备可压缩性,编码后,会增加相当数量的冗余信息。上述提及,算术编码需要将信源映射到符号集,符号集里面有一个特殊的符号作为结束符,解码时用来标示解码结束。实际上,信源中并没有这个符号,因为总概率是1,结束符法的出现,会降低其余各个符号的概率,相当于人为提高信源中各个符号的熵,导致编码输出需要更多的比特,而且结束符也需要消耗相当数量的比特数。这些额外的比特在信源数据量少,比重更明显,这就是传统算术编码压缩率偏低的根本原因。
技术实现思路
本专利技术需要解决的技术问题:算术编码无损压缩算法虽作为一项成熟的编码技术,如果信源数据不具备可压缩性,编码后会增加相当数量的冗余信息,这些冗余信息主要由结束符产生。为了解决上述技术缺陷,以提高数据压缩率,本专利技术对传统算术编码方法进行了优化设计,提供了一种通用的算术编码方法。本专利技术所述方法可以提高数据压缩率,即使数据不具备可压缩性,产生的冗余信息也会较少,所以可代替扰码,把数据白噪声化,以利于数据在信道的传输。为了实现上述目的,本专利技术采取如下的技术方案:首先,本专利技术给出一种通用算术编码方法,与传统算数编码相比,没有结束符,并在编码文件开头添加信源大小信息,作为一种具体的实施方法,这里约定统计信源大小的单位是字节,该方法的实现包括下述步骤:1.1)在编码文件的开头记录信源大小信息FILELEN,计算并输出信源大小信息FILELEN;1.2)读入一个符号的信源数据,用计数器统计信源字节数;1.3)编码器编码,若编码器有输出,则所述计数器清零,并重新计数;1.4)重复1.2和1.3步骤,在编码器编码完最后一个符号后,计数器的值除以FMod,舍掉小数部分,保留整数部分LEFTSYMBOL,编码器再额外输出LEFTSYMBOL数量的,值为0的比特;1.5)在编码文件末尾,添加一个值为1的比特,以标示编码文件结束。进一步地,在步骤1)中,在编码文件中添加信源大小信息FILELEN,信源大小信息并不用记录整个信源的大小,利用编码文件大小和信源大小本身存在的相关性,进一步去除冗余信息。进一步地,在步骤1)中,编码和解码过程不再需要结束符,在编码文件末尾,添加一个值为1的比特,以标示编码文件结束。进一步地,在步骤1)中,在编码器编码完最后一个符号后,编码器再额外输出LEFTSYMBOL数量的,值为0的比特,以此来保证编码结果的唯一性,不同的输入序列对应不同的编码结果。进一步地,在步骤1)中,按需求自定义信源大小信息FILELEN的比特长度BITLEN。再者,与所述算术编码方法相对应的,本专利技术还给出了所述通用算术编码方法的解码方法。所述解码方法包括下述步骤:6.1)读出编码文件中的信源大小信息FILELEN,然后开始解码;6.2)解码器统计输出信源字节数DECLEN;6.3)解码器检测到结束标志后,用DECLEN除以FMod取余数DECLEFT,如果DECLEFT小于FILELEN,继续解码,直到DECLEFT等于FILELEN为止,解码完成。作为所述解码方法的优选,其还进一步包括下述步骤:7.1)把解码得到的信源数据重新编码,并将新编码文件与原编码原文件进行比较;7.2)若新编码文件与原编码原文件相等,则解码完成;7.3)若新编码文件与原编码原文件不相等,则在原解码的基础上继续解码FMod数量的字节,再把解码得到的信源数据重新编码,并与原编码原文件比较,直至新编码文件与原编码原文件相等,解码完成。与传统技术相比,本专利技术至少具有如下的有益效果或优点:(1)根据信息论,如果数据本身具备可压缩性,对比传统算术编码,则本专利技术所述算术编码方法可以提高数据的压缩率;如果数据不具备可压缩性,产生的冗余信息比传统算术编码低。(2)本专利技术在自组网技术、物联网技术等嵌入式无线通信系统具有非常重大的意义。此类应用的无线信道传输数据量不大,但是无线通信容易受到干扰,为保证数据传输可靠性、稳定性,需要对传输的数据做很多处理,需要加扰码,将其白噪声化等。但是传统的加扰码的方式,不仅不能保证100%加扰,有些特殊的序列加扰以后,反而适得其反。本专利技术能代替扰码,实现对数据白噪声化,还能起到加密的效果,克服了传统加扰方式的缺陷,同时能对数据进行无损压缩,降低传输带宽,传输的数据少了,可靠性、稳定性也相应提高。附图说明图1是一实施例所述通用的算术编码方法的编码流程图。图2是一实施例所述解码方法的解码流程图。具体实施方式以下将结合附图和实施例对本专利技术做进一步详细阐述。为叙述方便,下文中所称的“左”、“右”、“上”、“下”与附图本身的“左”、“右”、“上”、“下”方向一致。需要说明的是,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。本实施例所述通用的算术编码方法,是对传统的算术编码的一种优化改进。关于传统算术编码的原理,这里不再赘述,在此只把原理阐述需要用的一些符号作出说明,这里作为一种具体的方案,约定信源大小单位为字节。BITLEN:信源大小信息记录在编码文件的开头,信源大小信息的比特长度用BITLEN表示,是一个约定值,与信源大小无关,最小值是1。FMod:是信源大小信息FILELEN的模,即2的BITLEN次方。如果BITLEN等于4,FMod等于16;如果BITLEN等于3,FMod等于8。FILELEN:信源大小信息。在编码文件开头,用BITLEN个比特记录,信源字节大小除以FMod,取余数,即为信源大小信息。LEFTSYMBOL:编码时,用一个计数器统计信源字节数。编码器是一个比特一个比特输出,比特组成字节,字节组成最终的输出文件,一旦编码器有输出,则该计数器清零,并重新计数。编码器编码完最后一个符号后,计数器的值除以FMod,舍掉小数部分,保留整数部分,即为LEFTSYMBOL。DECLEN:解码时,用一个计数器统计解本文档来自技高网
...

【技术保护点】
一种通用算术编码方法,与传统算数编码相比,没有结束符,并在编码文件开头添加信源大小信息,该方法的实现包括下述步骤:1.1)在编码文件的开头记录信源大小信息FILELEN,计算并输出信源大小信息FILELEN;1.2)读入一个符号的信源,用计数器统计读入的信源字节数;1.3)编码器编码,若编码器有输出,则所述计数器清零,并重新计数;1.4)重复1.2)和1.3)的过程,在编码器编码完最后一个符号后,计数器的值除以FMod,舍掉小数部分,保留整数部分LEFTSYMBOL,编码器再额外输出LEFTSYMBOL数量的,值为0的比特;1.5)在编码文件末尾,添加一个值为1的比特,以标示编码文件结束。

【技术特征摘要】
1.一种通用算术编码方法,与传统算数编码相比,没有结束符,并在编码文件开头添加信源大小信息,该方法的实现包括下述步骤:1.1)在编码文件的开头记录信源大小信息FILELEN,计算并输出信源大小信息FILELEN;1.2)读入一个符号的信源,用计数器统计读入的信源字节数;1.3)编码器编码,若编码器有输出,则所述计数器清零,并重新计数;1.4)重复1.2)和1.3)的过程,在编码器编码完最后一个符号后,计数器的值除以FMod,舍掉小数部分,保留整数部分LEFTSYMBOL,编码器再额外输出LEFTSYMBOL数量的,值为0的比特;1.5)在编码文件末尾,添加一个值为1的比特,以标示编码文件结束。2.根据权利要求1所述的通用算术编码方法,其特征在于,在步骤1)中,在编码文件中添加信源大小信息FILELEN,信源大小信息并不用记录整个信源的大小,利用编码文件大小和信源大小本身存在的相关性,进一步去除冗余信息。3.根据权利要求1所述的通用算术编码方法,其特征在于,在步骤1)中,编码和解码过程不再需要结束符,在编码文件末尾,添加一个值为1的比特,以标示编码文件结束。4.根据权利要求1所述的通用算术编码方法,其特征在于,在步骤1)中,在编码器编码完...

【专利技术属性】
技术研发人员:赵传金
申请(专利权)人:深圳市大语科技有限公司
类型:发明
国别省市:广东;44

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

1