远程监控系统数据传输的数据无损压缩方法

文档序号:6695446阅读:398来源:国知局
专利名称:远程监控系统数据传输的数据无损压缩方法
技术领域

本发明涉及到一种远程监控技术领域的数据压縮方法,尤其是涉及一种远程 监控系统数据传输的数据无损压縮方法。
背景技术
随着无线移动通信网络的蓬勃发展,基于移动通信网络的远程监控技术也得 到越来越多的应用,监控信息包括视频、图像、GPS经纬度、以及监控对象各种 状态参数等,希望越多越好,很多应用场合更希望能对对象进行实时监控。受到 数据传输带宽、传输成本、传输速率等限制,都希望尽量减少传输的数据量;为 了增加监控信息量,而又要减少传输数据量,必须进行数据压縮,并且希望得到 尽量大的压縮比。数据压縮方法可以分为无损压縮和有损压縮两大类。无损压縮 利用数据的统计冗余进行压縮,可完全恢复原始数据而不引入任何失真;有损压 縮是指在允许一定的精度损失的情况下,压縮掉一些无关紧要的数据,对压縮后 的数据进行分析,虽然与原来的数据有所不同,但不影响对数据分析的结果。常用 的文本无损压縮的算法有:哈夫曼编码、游程编码、算术编码等;它们都是当信 源的统计特性已确知时,能达到或接近压縮极限界限,但是对于概率统计特性无 法测定的实时监控状态数据,这些统计编码方法是失效的;LZW等通用编码方法 完全不依赖于信源的概率统计特性,适合于较长的字符流编码,并且编码复杂, 硬件实现困难。除了视频图像数据,远程监控的监控信息更多的是按设定周期连 续采集的状态数据,基于移动通信网络的数据传输,如短消息或数据业务(如GPRS 或CDMA等)等,数据是以文本格式传输的按一定的发送周期连续发送的,每次发 送一个数据包,每个数据包包含l条或多条状态参数数据。数据压缩的对象既是 此数据包。数据包具有以下特点l.每条状态数据较短,约占4-8个字节;2.不 同状态数据之间相关度很小或没有规律;3.状态数据为二进制或十进制或十六进 制的数值格式,每个数值按位以ASCII码字符形式表示;4.每条状态数据通常为
缓变数据,与其历史数据之间有很大的相似性与冗余。
现有的远程监控系统中,对于视频、声音、图像的数据传输都采用了数据压 縮方法,也有行业标准可以直接遵循,而对于上述的状态数据的实时监控传输都 是釆集后直接发送到远程监控中心,这使传输的数据有很大的冗余,传输效率低 且增加了成本;
经对现有技术的文献检索发现,中国发明专利"工程机械用的远程无线数据 传输系统及方法",申请号200510200195.5,公开号CN1716333,该专利公开了 一 种工程机械用的远程无线数据传输系统及方法,其特点是用微控制器(MCU)从工 程机械的通信接口对工程机械各子系统参数数据进行数据信号和符合特定协议 的特定信息信号的发送和接收;并由无线数据传输模块将工程机械各子系统参数 数据进行转发和接收远程无线监控;以120秒为周期,采集与发送CAN总线的发动 机数据帧,其方法是将数据帧进行解帧后,存入内存,通过GPRS方式直接传输到 监控中心。该发明存在如下不足[l]CAN总线的一个数据帧包含参数组数据总长 度、发动机转速、发动机水温、燃油油位、机油压力及整车电源电压5个参数, 占16个字节,解析后转化为10进制再传输,反而增加了数据位数;[2]对于水温、 油位、压力、电压这样的缓变的状态数据,没有利用其缓变的特点对数据压縮传 输,而是重复传输,增加了数据冗余和传输成本。

发明内容
本发明针对现有技术中的不足,提供一种远程监控系统数据传输的数据无损 压縮方法,在实时监控过程中,对监控状态信息周期循环连续采集、编码、传输, 在不减少信息量的情况下,尽量压縮传输的数据量,并且编码/解码算法简单、 快速,易于硬件编程实现,能满足远程实时监控的需要。
本发明是通过以下技术方案实现的,本发明所述方法采用历史数据寄存器与 编码字典,对实时监控的状态数据周期循环的采集、编码、传输,新数据与历史 数据逐字符比较,对连续不变的字符统计编码实现去冗余压縮。
所述的历史数据寄存器为一个可以保存26个字符的数据存储区,用于保存上 一个采集周期的历史数据,为了后述方便,将其重命名为str01d;
所述的编码字典为标准ASCII字符集的a至z, gPASCII码97至ASCII码122,分 别代表整数1至26;编码过程为将整数l至26编码为ASCII字符a至z,即对整数n的编码公式为ASCII (n+96),其中ASCII (n+96)表示ASCII码为n+96的ASCII字符; 由于编码字典可以通过上述编码公式求得,因此只传输编码字符,而无须传输字 典;编码字典采用标准ASCII字符集的a至z,主要因为状态数据通常为二进制 或十进制或十六进制数,字符为0-9或A-F,自定义的编码不能与未编码的数据冲 突,而导致解码错误,采用a-z可以避免上述错误。 本发明所述的数据无损压縮方法,包括以下步骤
步骤A:采集一条新的状态数据;
步骤B:将状态数据转化为字符串strNew;
步骤C:如果不是第一条数据,跳过此步,转到步骤D,否则,对str01d初始 化,将strNew保存到strOld,并将strNew作为编码结果直接输出,转到步骤G;
步骤D:对strNew与strOld逐个字符比较,统计连续不变的字符个数;
步骤E:根据统计结果,用编码字典的编码公式对字符个数编码,用单个编 码字符代替strNew中与strOld连续相同的多个字符,保留变化了的字符,按顺序 将编码字符与变化了的字符合并作为编码结果输出;
步骤F:将strNew保存到strOld,覆盖上一条历史数据,作为下一条数据的 参考历史数据;
步骤G:传输编码结果到远程监控中心;
步骤H:延时一个采集周期,转到步骤A,连续循环采集、编码、传输过程, 直到监控结束。
其中步骤B,在采集到的状态数据本来就是字符串时,可以简化为将新的状 态数据保持到strNew。
其中步骤E可以与步骤F交换顺序。
本发明的有益效果是本发明方法充分利用了状态数据本身为缓变数值的特 性,在不引起数据失真的情况下,通过与历史数据的比较编码,降低了数据冗余, 具有平均约70%-90%的数据压縮比,使相应的数据传输成本降低大半,而数据传 输速度也提高近两倍,每次最多能对长达26个字符的单个数据编码压縮,能满足 非常高精度的数据采集数据压縮,且编、解码算法简单快速,只需很小的数据缓 冲区,无须专门的编解码器,易于硬件编程实现,大大降低远程数据传输的数据 量与数据传输成本,并且提高数据传输的实时性与可靠性。


图l为本发明方法流程具体实施例方式
下面结合附图与具体的实施例对本发明作进一步的详细说明实施例在以本 发明技术方案为前提下进行实施,给出了详细的实施方式和过程,但本发明的保 护范围不限于下述的实施例。
在对液压履带起重机远程实时监控过程中,需要以发送周期20秒循环连续采 集与发送多个ID号的多个状态参数的CAN总线数据到远程监控中心,下面结合附 图l,以对某个ID每个周期采集1个数据连续采集、编码、传输为例说明本发明的 方法,对于多个ID的多个参数的情况只是下述方法的并列组合。
如图1所示,假设对某ID号连续采集到的3条CAN总线数据为
datal=lE0700002A120000,
data2=lElA00002C120000,
data3=lF0A00002C120000,
对其数据压縮过程步骤如下
步骤l. 101采集到第一条16位十六进制新数据dataKE0700002A120000; 步骤2. 102将16进制数值数据转化为字符串strNe^ " 1E0700002A120000"; 步骤3. 103判断是第一条数据吗?是,所以转到104;
步骤4. 104对str01d初始化,将strNew保存到strOld,并将strNew作为编码 结果strCps直接输出,转到108, str01d=strNew = " 1E0700002A120000 "; strCps=strNew = "1E0700002A120000";
步骤5. 108传输编码结果strCps到远程监控中心;
步骤6. 109延时1个采集周期20秒,转到IOI,采集下一条数据;
步骤7. 101采集到第二条16进制新数据data24ElA00002C120000;
步骤8. 102将16进制数值数据转化为字符串strNe^ "1E1A00002C120000";
步骤9. 103判断是第一条数据吗?否,所以转到105;
步骤IO. 105对strNew与str01d逐个字符比较,统计连续不变的字符个数, 得(2) 1A(5)C(6);
步骤ll. 106根据统计结果,用编码公式对字符个数编码,
(2)->ASCII(2+96) = , b' , (5)-〉ASCII(5+96) = , e, , (6)-〉ASCII(6+96):f,保 留变化的字符,按顺序合并得到编码结果strCp^ "blAeCf";
步骤12. 107将strNew保存到str01d,覆盖上一条历史数据,作为下一条 数据的参考历史数据,str01d=strNew= "1E1A00002C120000";
步骤13. 108传输编码结果strCps到远程监控中心;
步骤14. 109延时1个采集周期20秒,转到IOI,采集下一条数据;
步骤15. 101采集到第3条16进制新数据data3^F0A00002C120000;
步骤16. 102将新数据转化为字符串strNew^ " 1F0A00002C120000";
步骤17. 103判断是第一条数据吗?否,所以转到105;
步骤18. 105对strNew与str01d逐个字符比较,统计连续不变的字符个数, 得(1)F0(13);
步骤19. 106根据统计结果,用编码公式对字符个数编码, (l)-〉ASCII(l+96)=' a, , (13)-〉ASCH (13+96)=, m,,保留变化的字符,按顺 序合并得到编码结果strCps: "aF0m";
步骤20. 107将strNew保存到str01d,覆盖上一条历史数据,作为下一条 数据的参考历史数据,str01d=strNew= "1F0A00002C120000";
步骤21. 108传输编码结果strCps到远程监控中心;
步骤22. 109延时1个采集周期20秒,转到IOI,采集下一条数据,循环 101-109,直到监控结束。
可见,由于数据缓变,除了第一条数据作为初始参考历史数据不可被压縮外, 其后的数据都得到了很大的压縮,其中data2由"1E1A00002C120000"编码为 "blAeCf",从16位字符压縮到6位字符,压縮率为10/16=62. 5%; data3由 "1F0A00002C120000"编码为"aF0m",从16位字符压縮到4位字符,压縮率为 12/16=75%。如果连续两个数据完全一样,则编码为ASCII (16+96) ="p",达到最 大压縮率,即15/16=93. 75%。
对于本实施例,历史数据寄存器str01d只需要16个字符长度即可,并且由于 编码公式简单,本发明只需很少的硬件资源在单片机、DSP、 ARM等嵌入式系统中 很容易的实现,计算量小,实时性高,具有很大的应用价值。
权利要求
1、一种远程监控系统数据传输的数据无损压缩方法,其特征在于,采用历史数据寄存器与编码字典,对实时监控的状态数据周期循环的采集、编码、传输,新数据与历史数据逐字符比较,对连续不变的字符统计编码实现去冗余压缩,其中所述的历史数据寄存器为一个能保存26个字符的数据存储区,用于保存上一个采集周期的历史数据,将其重命名为strOld;所述的编码字典为标准ASCII字符集的a至z,即ASCII码97至ASCII码122,分别代表整数1至26,编码过程为将整数1至26编码为ASCII字符a至z,即对整数n的编码公式为ASCII(n+96),其中ASCII(n+96)表示ASCII码为n+96的ASCII字符。
2、 根据权利要求l所述的远程监控系统数据传输的数据无损压縮方法,其特 征是,包括以下步骤-步骤A:采集一条新的状态数据;步骤B:将状态数据转化为字符串strNew;步骤C:如果不是第一条数据,跳过此步,转到步骤D,否则,对str01d初始 化,将strNew保存到历史数据寄存器str01d,并将strNew作为编码结果直接输出, 转到步骤G;步骤D:对strNew与str01d逐个字符比较,统计连续不变的字符个数;步骤E:根据统计结果,用编码字典的编码公式对字符个数编码,用单个编 码字符代替strNew中与str01d连续相同的多个字符,保留变化了的字符,按顺序 将编码字符与变化了的字符合并作为编码结果输出;步骤F:将strNew保存到str01d,覆盖上一条历史数据,作为下一条数据的 参考历史数据;步骤G:传输编码结果到远程监控中心;步骤H:延时一个采集周期,转到步骤A,连续循环采集、编码、传输过程, 直到监控结束。
3、 根据权利要求2所述的远程监控系统数据传输的数据无损压縮方法,其特 征是,先执行步骤F,然后再执行步骤E。
4、 根据权利要求2所述的远程监控系统数据传输的数据无损压縮方法,其特 征是,所述步骤B,在采集到的状态数据本来就是字符串时,简化为将新的状态 数据保持到strNew。
5、 根据权利要求1或2所述的远程监控系统数据传输的数据无损压縮方法, 其特征是,所述一个采集周期为20秒。
全文摘要
本发明公开了一种远程监控技术领域的远程监控系统数据传输的数据无损压缩方法,具有长为26个字符的历史数据寄存器与编码字典,对实时监控的状态数据周期循环的采集、编码、传输,新数据与历史数据逐字符比较,对连续不变的字符统计编码实现去冗余压缩。本发明对缓变的监控状态数据具有很高的数据压缩比,且编、解码算法简单快速,只需很小的数据缓冲区,易于硬件编程实现,大大降低远程数据传输的数据量与数据传输成本,并且提高数据传输的实时性与可靠性。
文档编号G08C19/16GK101197071SQ20071017215
公开日2008年6月11日 申请日期2007年12月13日 优先权日2007年12月13日
发明者何创新, 刘成良, 李彦明 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1