CN102811114B - 一种采用帧间编码的字符型通信报文压缩方法 - Google Patents
一种采用帧间编码的字符型通信报文压缩方法 Download PDFInfo
- Publication number
- CN102811114B CN102811114B CN201210242081.7A CN201210242081A CN102811114B CN 102811114 B CN102811114 B CN 102811114B CN 201210242081 A CN201210242081 A CN 201210242081A CN 102811114 B CN102811114 B CN 102811114B
- Authority
- CN
- China
- Prior art keywords
- frame
- message
- character
- coding
- residual error
- 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
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种采用帧间编码的字符型通信报文压缩方法,包括:读入一帧报文,判断是否为I帧报文,若是,则直接进行Huffman编码,若否,则求残差并对残差进行Huffman编码,然后判断是否有下一帧报文等步骤。本发明将视频压缩编码中帧内、帧间编码的思想引入到字符型报文压缩中,通过去相邻或相近报文间的冗余信息大幅提高了报文的压缩比;将动态Huffman编码具体应用到I帧报文和P帧残差部分的无损压缩上面,充分发挥了动态Huffman编码的优点,在显著减少报文数据量,降低报文长度的同时,带来延时减小、存储容量降低、对传输要求较低等好处,使报文得以快速、有效、无误地传输、共享和分发,可大幅节约存储、通信等资源。
Description
技术领域
本发明涉及一种基于字符型通信报文的有效压缩方法,根据字符型通信报文具有一个有限字符集合的特点,引入了视频压缩领域帧间、帧内压缩处理的思想,并结合Huffman编码等相关技术,取得了良好的压缩效果。
本发明适用于任何基于有限字符集合通信报文压缩的诸如共享、存储、传输等场合,尤其是对报文传输实时性要求比较高的情况下,经实际验证均可良好地满足其应用需求。
背景技术
术语解释:
数据压缩方法按照压缩前后信息量是否有损失可分为有损压缩和无损压缩两种类型。有损压缩是指使用压缩后的数据进行重构(或者叫做还原,解压缩),重构后的数据与原来的数据有所不同;而无损压缩是指使用压缩后的数据进行重构后,数据与原来的数据完全相同。
无损数据压缩按照实现技术划分,可分为预测、字典、统计三大类。预测编码主要是根据离散信号之间存在着一定关联性的特点,利用前面的一个或多个信号对下一个信号进行预测,然后对实际值和预测值的差(预测误差)进行编码,典型的方法有DPCM,ADPCM等,它们较适合用于声音、图像数据的压缩。字典编码主要是利用数据本身包含较多重复的字符串的特性,其基本原理是不断的从字符流中提取新的字符串,然后用代号来代替这个字符串,从而实现压缩,典型的方法有LZW编码等。LZW编码是通过在编码过程中动态生成一个字符串表,用较短的代号来代替较长的字符串来实现压缩。统计编码又称为熵编码方法,主要根据字符出现概率的分布特征而进行压缩,典型的方法有行程编码、Huffman编码等。1948年,Shannon在提出信息熵理论的同时,也给出了一种简单的编码方法——Shannon编码,Shannon提出将信源符号依其出现的概率进行降序排列,用符号序列累计概率的二进制作为对信源的编码,并从理论上论证了它的优越性,该编码方法揭示了变长编码的基本规律,对其后压缩算法的发展影响巨大;行程编码的基本原理是用一个符号值或串代替具有相同值的连续符号,使符号长度少于原始数据的长度,适用于同一符号连续出现多次的场合;Huffman编码是1952年由Huffman提出的一种比较常用的变长编码方法,其主导思想是根据源数据符号发生的概率进行编码,在源数据中出现概率越高的符号,相应的码长越短,出现概率越小的符号,相应的码长越长,从而达到用尽可能少的码符号表示源数据。理论研究表明,Huffman编码方法是接近压缩比上限的一种较好的编码方法,同时,该编码方法效率高、运算速度快、实现方式灵活,从20世纪60年代至今,在数据压缩领域得到了广泛的应用。
目前,视频技术应用广泛,如网上可视会议、网上政务、网上学校、远程医疗、个人网上聊天、可视咨询等,在以上应用中需要传输大量的数据,单纯用扩大存储器容量、增加通信带宽的方法是不现实的,对视频进行压缩编码是一个行之有效的方法。视频压缩编码就是将数据中的冗余信息去掉(去除数据之间的相关性),大体上分为帧内和帧间两种编码模式。帧内模式是指当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,即去除时域冗余信息,也称为空间压缩(Spatial Compression);而帧间模式通过比较时间轴上不同帧之间的数据,对相邻帧之间的冗余信息进行压缩,即去除空域冗余信息,也称为时间压缩(Temporal Compression)。具体编码过程中,对于运动缓和的图像,帧间编码模式占据主导位置,而对画面切换频繁或运动剧烈的序列图像,则帧间编码模式要频繁地向帧内模式切换。其切换通过I帧的选取来实现,主要方式有两种,一种是采用固定间隔选取I帧,比如每4秒取一次I帧,另一种是根据图像变化幅度等自适应的选取I帧。目前,在流行的视频压缩编码标准中,MPEG-4和H.264均采用上述技术,并得到了广泛的应用。
通信报文(后续简称报文)的使用非常普遍,比如雷达目标信息、位置信息、时间信息等。随着信息时代的来临,各种报文的存储呈现海量特性,为共享、存储、分发带来较大压力。比如覆盖整个城市的车辆(公交车、出租车)监控、调度系统,各车辆将自身属性(如位置、状态)等通过特定报文格式传输至中心,其移动特性决定必须通过无线方式进行通信,同时,中心会为各车辆建立历史情况数据库,数量巨大的车辆信息给通信、存储带来不便。在实际使用中,为便于观察、交互,大量使用了具有字符特征的报文格式,比如广泛使用的NMEA-0183的报文格式。
目前的主流视频压缩标准如MPEG-4、H.264等均属于有损压缩,而报文的编码与视频编码不同,其独特的性质要求其压缩必须为无损。但是,与视频相类似,在时序上相邻或相近的报文之间也存在着一定的相关性,即报文之间具有冗余信息。
目前,对于字符型报文格式的使用(如传输、存储),基本上都是未经压缩直接处理,从现有的文献和已公开材料查询,采用的压缩方案有:
1.采用BCD码对报文进行压缩
适用于对0~9这十个数字进行处理,固定使用4位二进制数来表示十个数字。
该方案适用范围有限,仅适用对数字字符进行压缩,对于字母等并不适用;
2.采用扩展BCD码对报文进行压缩
将字符集合中所有字符二进制化,并使用二进制化后的数据代表字符,以实现压缩。比如有100个字符集合,对其二进制化,则每个字符将分配7个二进制位。
该方案是一种典型的等概率的Huffman编码方法,认为各字符是等概率的,并未考虑字符概率特征,存在位浪费,压缩比有限;
3.采用LZW编码对报文进行压缩
LZW编码属于字典编码方法的一种,其编码过程为不断的从字符流中提取新的字符串,然后用代号来代替这个字符串,动态生成一个字符串表,从而实现压缩。
该方案适用于数据本身包含较多重复字符串的情况,并不适用于逐条发送的字符型报文。
4.采用Huffman编码对报文进行压缩
Huffman编码使用变长编码表对源符号进行编码,其中变长编码表是通过一种评估源符号出现频率的方法得到的,出现频率大的符号使用较短的编码,反之使用较长的编码。传统的Huffman编码是一种静态的编码方法,其主要通过统计原始数据中各字符出现的频率,并由此创建Huffman树,从而对原始数据进行编码,这种方法在实际应用系统中有很大局限性,特别在诸如通信等实时传输、处理系统中。因此,在报文压缩上并未得到广泛的应用。自适应Huffman编码是对上述方法的一种动态编码方法,已在报文压缩上得到应用,它对数据编码的依据是动态变化的Huffman树,即对第N+1个字符的编码是根据原始数据中前N个字符得到的Huffman树来进行的,每读入一个字符就要调整字符的计数,并进行Huffman树的更新,从而确保编码效率最高。
该方案对报文直接进行Huffman编码,且多采用静态Huffman编码,并未考虑报文间的冗余信息,压缩效果不明显,编码效率较低,同时造成了输出码流的浪费。
发明内容
发明目的:本发明正是基于上述问题,面向字符型报文格式,提出了一种采用帧间编码的通用无损报文压缩方法,该方法引入视频压缩编码中帧内、帧间编码的思想,把每条报文看做一帧,提出四种将其具体分为I帧和P帧的方法,通过对帧间进行无损残差设计,尽可能去除相邻帧间的冗余信息,并对帧内和帧间残差使用动态Huffman编码进行压缩,该方法能够显著减少报文数据量。同时,较小的报文长度带来传输延时减小、存储容量降低、对传输要求较低等好处,使报文得以快速、有效、无误地传输、共享和分发,可大幅节约存储、通信等资源。
技术方案:一种采用帧间编码的字符型通信报文压缩方法,包括如下步骤:
假设该字符型报文的字符集合为A,其字符个数为n,字符概率为Pi,则有ai∈A
步骤1,读入一帧报文
假设所述一帧报文为Message,字符序列为B,序列元素个数为m,即bj∈A,其中1≤j≤m;
步骤2,判断是否为I帧报文
如果为初次编码,则所述一帧报文Message必为I帧,在编码过程中,则根据I、P帧分类方法,并结合具体应用环境判决所述一帧报文是否属于I帧;若是,则跳转到步骤4,否则执行下一步骤3;
步骤3,求残差
所述一帧报文为P帧,若I、P帧分类方法选择I帧残差,则将P帧与I帧做差,求残差Residual,即
Residual=P-I
若I、P帧分类方法选择迭代残差,则将P帧与前一帧做差,求残差Residual,即
Residual=Pn-Mn-1,其中Mn-1是指Pn的前一帧报文,
其做差规则可依据残差设计方法,并结合报文格式的变化选择局部求残差或者全局求残差方法;
步骤4,Huffman编码
对I帧报文或者残差,Residual进行动态Huffman编码,并输出码流;
步骤5,判断是否有下一帧报文
若是则跳转到步骤1,否则执行下一步骤6;
步骤6,结束
结束本次编码过程。
所述步骤4,其使用动态Huffman编码的详细过程如下(详细内容可参考《数据压缩导论(英文版·第三版)》第58~65页):
步骤41,初始化编码树
动态Huffman编码只需要对数据流进行单遍扫描,不需要预先扫描报文以获取各符号的出现概率,为了对所有符号一致对待,编码树的初始状态只包含一个叶节点,包含符号NYT(Not Yet Transmitted,尚未传送),权重值为0;
步骤42,读入字符
依次读入所需编码报文Message'中各字符;
步骤43,判断是否为新字符
若是第一次遇到的字符,则执行下一步骤44,否则跳转到步骤45;
步骤44,更新NYT并编码输出
用包含新符号和新NYT的子树替换原NYT,并输出有NYT引导的编码;
步骤45,对符号编码并输出;
步骤46,更新编码树;
步骤47,判断是否有下一个字符
若是则跳转到步骤42,继续编码下一字符,否则执行下一步骤48;
步骤48,结束
结束此次编码。
依照本发明的技术方案,解码是编码的逆过程,不再赘述。
所述I帧为帧内编码帧,本发明特指进行帧内编码的报文;所述P帧为帧间编码帧,本发明特指进行帧间编码的报文。
所述报文簇是,将一I帧报文和位于下一I帧报文之前的P帧报文的集合称为一个报文簇。
所述Residual,即残差,具体指相邻或相近报文之间的差值。
有益效果:与现有技术相比,本发明所提供的采用帧间编码的字符型通信报文压缩方法,通过实际应用以及论证,具有以下有益效果:
1)本发明将视频压缩编码中帧内、帧间编码的思想引入到字符型报文压缩中,通过去相邻或相近报文间的冗余信息大幅提高了报文的压缩比;
2)本发明充分考虑报文的各种应用场合,如传输、共享、分发以及存储等,提出四种I、P帧分类方法,结合具体应用环境,可最大限度地利用报文间的冗余性对报文进行压缩;
3)本发明结合字符型报文格式的特点,提出两种帧间残差的无损设计方法,使视频压缩编码中帧内、帧间的编码思想得以成功应用到字符型报文压缩上;
4)将动态Huffman编码具体应用到I帧报文和P帧残差部分的无损压缩上面,充分发挥了动态Huffman编码的优点,相比较BCD码、LZW以及静态Huffman编码等压缩方式具有更高的压缩比和效率;
本发明在显著减少报文数据量,降低报文长度的同时,带来延时减小、存储容量降低、对传输要求较低等好处,使报文得以快速、有效、无误地传输、共享和分发,可大幅节约存储、通信等资源。
附图说明
图1为本发明实施例中的固定间隔选取I帧法;
图2为本发明实施例中的自适应选取I帧法;
图3(a)为本发明实施例中的局部求残差;
图3(b)为本发明实施例中的局部求残差;
图4为本发明实施例中的全局求残差;
图5为本发明实施例的流程图;
图6为本发明实施例中动态Huffman编码流程图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
本实施例适用于任何字符型报文,引入了视频压缩中帧内、帧间编码思想,基于字符型报文特点提出I、P帧报文的分类方法以及帧间残差设计方法,并且使用动态Huffman编码对帧内和帧间残差进行压缩。
该方案中涉及到的变量说明如下:
①I帧:帧内编码帧,本方案特指进行帧内编码的报文;
②P帧:帧间编码帧,本方案特指进行帧间编码的报文;
③报文簇:将一I帧报文和位于下一I帧报文之前的P帧报文的集合称为一个报文簇,比如图1中,I1P1P2…Pn即为一个报文簇;
④Residual:残差,具体指相邻或相近报文之间的差值。
假设该字符型报文的字符集合为A,其字符个数为n,字符概率为Pi,则有ai∈A
本专利把每一条报文看做一帧,结合视频压缩中帧内、帧间编码方法,提出如下I帧、P帧分类方法:
1)I帧残差
对于一个报文簇,比如I1P1P2…Pn,其中P1P2…Pn的编码均以I1为参照物,编码过程中残差是指P帧报文相对于I帧报文的变化部分,即
Residual=Pi-I1,其中1≤i≤n
依据这种编码思路对报文进行I、P帧的分类,具体包括以下两种方法,且其适合用于报文传输、分发、共享等场合。
a)固定间隔选取I帧法
采用固定间隔选取I帧,在I帧之间均采用P帧,如图1所示,其格式为I1P1P2…PnI2,其中n取常量,适用于报文信息量变化较为平缓的场合;
b)自适应选取I帧法
根据报文变化情况自适应的选取I帧,在I帧之间均采用P帧,如图2所示,其格式为I1P1P2…PnI2,当程序执行过程中Pn的下一帧(I2)与Pn之间残差较大时,强制将Pn下一帧设定为I帧(I2),与方式a)相比,n为变量,适用于报文信息量变化较为频繁或者剧烈的场合。
2)迭代残差
对于一个报文簇,比如I1P1P2…Pn,其中P帧的编码均以其前一帧报文为参照物,编码过程中残差是指P帧报文相对于其前一条报文的变化部分,即
Residual=P1-I1
或Residual=Pi-Pi-1,其中2≤i≤n
依据这种编码思路对报文进行I、P帧的分类,同样分为固定间隔选取I帧和自适应选取I帧两种方法,且其适合用于报文存储等场合。
a)固定间隔选取I帧法
采用固定间隔选取I帧,在I帧之间均采用P帧,如图1所示,其格式为I1P1P2…PnI2,其中n取常量,适用于报文信息量变化较为平缓的场合。此外,若n取极限值(无穷大),即只是在编码初选取一个I帧,其余均作为P帧,且编码时均以前一帧报文为参照物,这种方法对于报文存储等场合较为适用;
b)自适应选取I帧法
根据报文变化情况自适应的选取I帧,在I帧之间均采用P帧,如图2所示,其格式为I1P1P2…PnI2,当程序执行过程中Pn的下一帧(I2)与Pn之间残差较大时,强制将Pn下一帧设定为I帧(I2),与方式a)相比,n为变量,适用于报文信息量变化较为频繁或者剧烈的场合。
本专利结合字符型报文的特点,对于无损残差设计提出局部求残差和全局求残差两种方法,具体描述如下:
1)局部求残差
从局部角度求相邻或相近报文间的残差,举例如图3(a)所示,两帧报文只有结尾处相关,对P帧求残差,即
Residual=P-I=Cc1c2c3…Dd1d2
如图3(b)所示,两帧报文具有相同字符串Ee1e2e3e4(在字符型报文中表达相同信息,只是由于报文格式不同,分别位于一帧报文的不同位置),同样对P帧求残差,即
Residual=P-I=Cc1c2c3…Dd1d2
对P帧报文编码只需要编码Residual即可。
2)全局求残差
从全局角度求相邻或相近报文间的残差,举例如图4所示,两帧报文全局均相关,则对P帧求残差,即
Residual=P-I=a4a5a6b4b5b6
对P帧报文编码只需要编码Residual即可。
图3、图4给出了I帧残差的计算方法,迭代残差与其方法相同,不再赘述。
另外,由于Huffman编码是压缩比接近熵编码理论最大值的一种较好的编码方法,具有效率高、运算速度快、实现方式灵活等特点,本专利对于I帧和残差进行动态Huffman编码,取得了良好的效果。
本发明采用的技术方案步骤如下,具体流程图见附图5:
(1)读入一帧报文
假设该帧报文为Message,字符序列为B,序列元素个数为m,即
bj∈A,其中1≤j≤m。
(2)是否为I帧报文
如果为初次编码,则该帧报文Message必为I帧,在编码过程中,则根据上述I、P帧分类方法,并结合具体应用环境判决该帧报文是否属于I帧。若是,则跳转到步骤(4),否则执行下一步骤(3);
(3)求残差
此帧报文为P帧,若I、P帧分类方法选择I帧残差,则将P帧与I帧做差,求Residual,即
Residual=P-I
若I、P帧分类方法选择迭代残差,则将P帧与前一帧做差,求Residual,即
Residual=Pn-Mn-1,其中Mn-1是指Pn的前一帧报文
其做差规则可依据上述残差设计方法,并结合报文格式的变化选择局部求残差或者全局求残差方法;
(4)Huffman编码
对I帧报文或者残差(Residual)进行动态Huffman编码,并输出码流;
(5)是否有下一帧报文
若是则跳转到步骤(1),否则执行下一步骤(6);
(6)结束
结束本次编码过程。
对于本发明采用的技术方案中的步骤(4),其使用动态Huffman编码的详细过程如下(详细内容可参考《数据压缩导论(英文版·第三版)》第58~65页),具体流程图见附图6:
(1)初始化编码树
动态Huffman编码只需要对数据流进行单遍扫描,不需要预先扫描报文以获取各符号的出现概率,为了对所有符号一致对待,编码树的初始状态只包含一个叶节点,包含符号NYT(Not Yet Transmitted,尚未传送),权重值为0;
(2)读入字符
依次所需编码报文Message'中各字符;
(3)是否为新字符
若是第一次遇到的字符,则执行下一步骤(4),否则跳转到步骤(5);
(4)更新NYT并编码输出
用包含新符号和新NYT的子树替换原NYT,并输出有NYT引导的编码;
(5)对符号编码并输出;
(6)更新编码树;
(7)是否有下一个字符
若是则跳转到步骤(2),继续编码下一字符,否则执行下一步骤(8);
(8)结束
结束此次编码。
依照本节技术方案,解码是编码的逆过程,不再赘述。
下面以定位信息中广泛使用的NMEA-0183的协议格式为例,对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
该协议采用ASCⅡ码,属于本发明所阐述的字符型报文,协议帧格式形如:$aaccc,ddd,ddd,…ddd*hh<CR><LF>,各个字段以逗号隔开,各字段所代表的信息如下:
1.“$”——帧命令起始位;
2.aaccc——地址域,前两位为识别符,后三位为语句名;
3.ddd,…ddd——数据;
4.“*”——校验和前缀;
5.hh——校验和;
6.<CR><LF>——帧结束,分别为回车和换行。
具体以NMEA-0183协议中全球定位数据和运输定位数据阐述本发明的技术方案,二者具体格式说明如下:
1)全球定位数据
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*<15><CR><LF>
字段<0>:$GPGGA,语句ID,表明该语句为Global Positioning System Fix Data(GGA)全球定位数据;
字段<1>:UTC时间,hhmmss.sss格式;
字段<2>:纬度,ddmm.mmmm,度分格式(前导位数不足则补0);
字段<3>:纬度半球,N或S(北纬或南纬);
字段<4>:经度,纬度ddmm.mmmm,度分格式(前导位数不足则补0);
字段<5>:经度半球,E或W(东经或西经);
字段<6>:定位质量显示,0=定位无效,1=定位有效;
字段<7>:使用卫星数量,从00到12(前导位数不足则补0);
字段<8>:水平精确度,0.5到99.9;
字段<9>:天线离海平面的高度,-9999.9到9999.9米;
字段<10>:高度单位,M表示单位米;
字段<11>:大地椭球面相对海平面的高度(-999.9到9999.9);
字段<12>:高度单位,M表示单位米;
字段<13>:差分GPS数据期限(RTCM SC-104),最后设立RTCM传送的数据量;
字段<14>:差分参考基站标号,从0000到1023(前导位数不足补0);
字段<15>:校验值。
2)地理定位数据
$GPGLL,<1>,<2>,<3>,<4>,<5>,<6>*<7><CR><LF>
字段0:$GPGLL,语句ID,表明该语句为Geographic Position(GLL)地理定位数据;
字段1:纬度ddmm.mmmm,度分格式(前导位数不足则补0);
字段2:纬度N(北纬)或S(南纬);
字段3:经度dddmm.mmmm,度分格式(前导位数不足则补0);
字段4:经度E(东经)或W(西经);
字段5:UTC时间,hhmmss.sss格式;
字段6:状态,A=定位,V=未定位;
字段7:校验值。
假设需连续处理三帧报文,其舍去校验值字段后具体内容如下:
Mesage1:“$GPGGA,092204.012,4250.5501,S,14718.5084,E,1,04,24.4,999.7,M,888.8,M,,0236”;
Mesage2:“$GPGGA,092204.562,4250.5589,S,14718.5284,E,1,04,24.4,990.7,M,880.8,M,,0236”;
Mesage3:“$GPGLL,4250.5589,S,14718.5284,E,092204.999,A”.
依次接收Message1、Message2和Message3,则编码具体步骤如下:
(1)读入报文Message1并编码
读入报文Message1,其为I帧报文,标记为I,则对Message1使用动态Huffman编码进行帧内压缩,即全帧编码压缩,并输出码流;
(2)读入报文Message2
报文格式无变化(可从报文第一字段看出,对于其它字符型报文,可通过提取标识符或者字符(字母)串等方式观察帧间报文格式的变化),此帧报文自适应选取为P帧报文,标记为P1。
(3)求P1帧残差
将P1帧报文与前一I帧做差,求Residual1,其做差规则依据报文格式的变化自适应地选择全局求残差方法,即
Residual1=P1-I=,092204.562,4250.5589,,14718.5284,,,,990.7,880.8,,,
(4)Huffman编码
对步骤(3)中残差(Residual1)进行动态Huffman编码,并输出码流;
(5)读入报文Message3
报文格式发生变化,但是相比较P1帧,局部相关性较为明显,假设选取迭代残差的I、P帧分类方法,则将此帧自适应选取为P帧,标记为P2。
(6)求P2帧残差
将P2帧报文与P1帧做差,求Residual2,其做差规则依据报文格式的变化自适应地选择局部求残差方法,即
Residual2=P2-P1=LL,,,,,092204.999,A
(7)Huffman编码
对步骤(6)中P帧残差部分(Residual2)进行Huffman编码,并输出码流;
(8)结束
结束本次编码过程。
Claims (6)
1.一种采用帧间编码的字符型通信报文压缩方法,其特征在于,包括如下步骤:
假设该字符型报文的字符集合为A,其字符个数为q,字符概率为Zk,则有
ak∈A
步骤1,读入一帧报文
假设所述一帧报文为Message,字符序列为B,序列元素个数为m,即
bj∈A,其中1≤j≤m;
步骤2,判断是否为I帧报文
如果为初次编码,则所述一帧报文Message必为I帧,在编码过程中,则根据I、P帧分类方法,并结合具体应用环境判决所述一帧报文是否属于I帧;若是,则跳转到步骤4,否则执行下一步骤3;
步骤3,求残差
所述一帧报文为P帧,若I、P帧分类方法选择I帧残差,则将P帧与I帧做差,求残差Residual,即
Residual=P-I
且求Residual的具体过程或采用局部求残差法,即两帧报文只有局部相关,其局部报文表达相同信息,只是由于报文格式不同,分别位于一帧报文的相同或不同位置,从局部角度对两帧报文求残差;或采用全局求残差法,即两帧报文全局均相关,从全局角度对两帧报文求残差;若I、P帧分类方法选择迭代残差,则将P帧与前一帧做差,求残差Residual,即
Residual=Pn-Mn-1,其中Mn-1是指Pn的前一帧报文
且其同样或采用局部求残差法,或采用全局求残差法;
步骤4,Huffman编码
对I帧报文或者残差Residual进行动态Huffman编码,并输出码流;
使用动态Huffman编码的详细过程如下:
步骤41,初始化编码树
动态Huffman编码只需要对数据流进行单遍扫描,不需要预先扫描报文以获取各字符的出现概率,为了对所有字符一致对待,编码树的初始状态只包含一个叶节点,包含字符NYT,权重值为0;
步骤42,读入字符
依次读入所需编码报文Message'中各字符;
步骤43,判断是否为新字符
若是第一次遇到的字符,则执行下一步骤44,否则跳转到步骤45;
步骤44,更新NYT并编码输出
用包含新字符和新NYT的子树替换原NYT,并输出有NYT引导的编码;
步骤45,对字符编码并输出;
步骤46,更新编码树;
步骤47,判断是否有下一个字符
若是则跳转到步骤42,继续编码下一字符,否则执行下一步骤48;
步骤48,结束
结束此次编码;
步骤5,判断是否有下一帧报文
若是则跳转到步骤1,否则执行下一步骤6;
步骤6,结束本次编码过程。
2.如权利要求1所述的采用帧间编码的字符型通信报文压缩方法,其特征在于:解码是编码的逆过程。
3.如权利要求1所述的采用帧间编码的字符型通信报文压缩方法,其特征在于:所述I帧为帧内编码帧,本发明特指进行帧内编码的报文;所述P帧为帧间编码帧,指进行帧间编码的报文。
4.如权利要求1所述的采用帧间编码的字符型通信报文压缩方法,其特征在于:将一I帧报文和位于下一I帧报文之前的P帧报文的集合称为一个报文簇。
5.如权利要求1所述的采用帧间编码的字符型通信报文压缩方法,其特征在于:所述Residual,即残差,具体指相邻或相近报文之间的差值。
6.如权利要求1所述的采用帧间编码的字符型通信报文压缩方法,其特征在于:I帧、P帧分类方法包括I帧残差和迭代残差,其中
1)I帧残差
对于一个报文簇I1P1P2…Pn,其中P1P2…Pn的编码均以I1为参照物,编码过程中残差是指P帧报文相对于I帧报文的变化部分,即
Residual=Pi-I1,其中1≤i≤n
依据这种编码思路对报文进行I、P帧的分类,具体包括以下两种方法,且其适合用于报文传输、分发、共享场合;
a)固定间隔选取I帧法
采用固定间隔选取I帧,在I帧之间均采用P帧,其格式为I1P1P2…PnI2,其中n取常量,适用于报文信息量变化较为平缓的场合;
b)自适应选取I帧法
根据报文变化情况自适应的选取I帧,在I帧之间均采用P帧,其格式为I1P1P2…PnI2,当程序执行过程中Pn的下一帧I2与Pn之间残差较大时,强制将Pn下一帧设定为I帧I2,与方式a)相比,n为变量,适用于报文信息量变化较为频繁或者剧烈的场合;
2)迭代残差
对于一个报文簇I1P1P2…Pn,其中P帧的编码均以其前一帧报文为参照物,编码过程中残差是指P帧报文相对于其前一条报文的变化部分,即
Residual=P1-I1
或Residual=Pi-Pi-1,其中2≤i≤n
依据这种编码思路对报文进行I、P帧的分类,同样分为固定间隔选取I帧和自适应选取I帧两种方法,且其适合用于报文存储场合;
a)固定间隔选取I帧法
采用固定间隔选取I帧,在I帧之间均采用P帧,其格式为I1P1P2…PnI2,其中n取常量,适用于报文信息量变化较为平缓的场合;此外,若n取极限值,即只是在编码初选取一个I帧,其余均作为P帧,且编码时均以前一帧报文为参照物,这种方法对于报文存储场合较为适用;
b)自适应选取I帧法
根据报文变化情况自适应的选取I帧,在I帧之间均采用P帧,其格式为I1P1P2…PnI2,当程序执行过程中Pn的下一帧I2与Pn之间残差较大时,强制将Pn下一帧设定为I帧I2,与方式a)相比,n为变量,适用于报文信息量变化较为频繁或者剧烈的场合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210242081.7A CN102811114B (zh) | 2012-07-12 | 2012-07-12 | 一种采用帧间编码的字符型通信报文压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210242081.7A CN102811114B (zh) | 2012-07-12 | 2012-07-12 | 一种采用帧间编码的字符型通信报文压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102811114A CN102811114A (zh) | 2012-12-05 |
CN102811114B true CN102811114B (zh) | 2015-05-20 |
Family
ID=47234704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210242081.7A Active CN102811114B (zh) | 2012-07-12 | 2012-07-12 | 一种采用帧间编码的字符型通信报文压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102811114B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888144B (zh) * | 2014-03-04 | 2017-07-21 | 广采网络科技(上海)有限公司 | 基于信息熵优选的自适应数据预测编码算法 |
CN106790550B (zh) * | 2016-12-23 | 2019-11-08 | 华中科技大学 | 一种适用于配电网监测数据压缩的系统 |
CN107911196B (zh) * | 2017-10-27 | 2020-07-14 | 南京莱斯电子设备有限公司 | 一种雷达航迹报文传输方法 |
CN108419085B (zh) * | 2018-05-08 | 2020-03-31 | 北京理工大学 | 一种基于查表的视频传输系统及方法 |
CN109474280A (zh) * | 2018-11-07 | 2019-03-15 | 中车青岛四方车辆研究所有限公司 | 行车信息压缩算法以及多级压缩方法 |
US11362671B2 (en) | 2019-03-25 | 2022-06-14 | Ariel Scientific Innovations Ltd. | Systems and methods of data compression |
CN110611509B (zh) * | 2019-08-16 | 2023-12-29 | 宁海县雁苍山电力建设有限公司 | 一种红外温度数据压缩方法及系统 |
US11722148B2 (en) | 2019-12-23 | 2023-08-08 | Ariel Scientific Innovations Ltd. | Systems and methods of data compression |
CN113242264B (zh) * | 2021-07-09 | 2021-09-24 | 中国人民解放军国防科技大学 | 一种对大容量数据进行压缩存储的方法和系统 |
CN115114565B (zh) * | 2022-08-24 | 2022-12-27 | 启东晶尧光电科技有限公司 | 一种基于大数据分析的直线电机故障检测方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1832353A (zh) * | 2005-03-07 | 2006-09-13 | 明基电通股份有限公司 | 信息压缩方法及系统以及计算机可读取存储媒体 |
-
2012
- 2012-07-12 CN CN201210242081.7A patent/CN102811114B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1832353A (zh) * | 2005-03-07 | 2006-09-13 | 明基电通股份有限公司 | 信息压缩方法及系统以及计算机可读取存储媒体 |
Non-Patent Citations (2)
Title |
---|
常传文,茅文深.雷达数据无损压缩研究.《舰船电子工程》.2008,第28卷(第4期), * |
王志刚,等.L ZW 算法优化及在雷达数据压缩中的应用.《计算机与数字工程》.2009,第37卷(第1期), * |
Also Published As
Publication number | Publication date |
---|---|
CN102811114A (zh) | 2012-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102811114B (zh) | 一种采用帧间编码的字符型通信报文压缩方法 | |
CN100555877C (zh) | 可变长度编码方法,可变长度编码设备 | |
CN100403801C (zh) | 一种基于上下文的自适应熵编/解码方法 | |
CN103858433A (zh) | 分层熵编码及解码 | |
CN102438145A (zh) | 一种基于Huffman编码的图片无损压缩方法 | |
CN103873877A (zh) | 远程桌面的图像传输方法及装置 | |
CN101534124B (zh) | 一种用于短小自然语言的压缩算法 | |
CN102014283A (zh) | 一阶差分前缀表示的图像数据无损压缩的编码方法 | |
CN102811113B (zh) | 一种字符型报文压缩方法 | |
CN1252187A (zh) | 用于编码数据序列的一种方法和一种设备 | |
CN104935944A (zh) | 一种视频数据编码、解码的方法和装置 | |
CN111918071A (zh) | 数据压缩的方法、装置、设备及存储介质 | |
CN105100801A (zh) | 一种基于大数据的大压缩比数据压缩方法 | |
CN101657973B (zh) | 采用位精度的编码装置和编码方法 | |
CN100525262C (zh) | 一种信源信道联合编解码器及编解码方法 | |
CN103050123B (zh) | 一种传输语音信息的方法和系统 | |
KR20100089546A (ko) | 단계적인 영상 부호화, 복호화 방법 및 장치 | |
CN113453002B (zh) | 量化与熵编码方法及装置 | |
CN104682966A (zh) | 列表数据的无损压缩方法 | |
CN104079930A (zh) | 一种遥感影像压缩系统的实现方法 | |
US8938019B2 (en) | Data transmitting device and data transmitting/receiving method | |
Sasilal et al. | Arithmetic coding-A reliable implementation | |
CN104113394A (zh) | 通信调制信号的压缩及解压方法 | |
EP4354861A1 (en) | Video decoding and coding method, device and storage medium | |
CN116193113B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |