基于bcd码卫星短报文的编码方法和装置的制作方法

文档序号:7859585阅读:267来源:国知局
专利名称:基于bcd码卫星短报文的编码方法和装置的制作方法
技术领域
本发明涉及卫星通信领域,尤其涉及一种基于B⑶码卫星短报文的编码方法和装置。
背景技术
我国现有的部分卫星具备短信息通信能力,这种通信能力具有两种模式一种是卫星通信终端和终端之间的短信息通信,另一种是卫星通信终端和短信息中心站之间的通 目。B⑶码有效地利用了卫星的带宽资源,其作为一种紧凑的汉字编码常常被用于卫星通信中,每14位表示一个汉字编码,比当前Windows使用的GBK编码的汉字每个汉字少2位,比Linux缺省使用的变长汉字编码UTF-8也更适合卫星传输。因此,在卫星通行中,通常会用BCD码来编辑短报文的内容。然而,由于单个短报文的数据量非常有限,通常被限制在几百个汉字到最多一千个汉字的范围内,而现有的压缩编码方式很难适应如此短小的数据和紧凑的编码格式,通常都会产生负压缩现象,即压缩后的短报文比压缩前的数据量还要大,这制约了基于GEO短消息数据通信能力。 因此,采用传统的压缩编码方式对卫星短报文进行压缩与解压缩不仅不能节省带宽,反而浪费了更多的带宽资源。

发明内容
针对上述现有技术存在的缺陷,本发明实施例提供一种基于B⑶码卫星短报文的编码方法和装置,该编码方法和装置能够有效解决采用传统压缩方法压缩BCD码短报文时产生的负压缩现象,并且在大多数情况下都能获得一个较好的压缩比。本发明实施例提供一种基于B⑶码卫星短报文的编码方法,包括判断当前位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述当前位置上的字符的BCD码与之前具有相同BCD码的字符之间的第一回指偏移;再判断下一位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述下一位置上的字符的BCD码与之前具有相同BCD码的字符之间的第二回指偏移,若所述第一回指偏移与所述第二回指偏移相同,则将所述当前位置和下一位置的字符作为重复字符;依此类推,获取所述当前位置及后续所有连续的重复字符;若所述第一回指偏移与所述第二回指偏移不相同,则将所述当前位置以及所述下一位置上的字符分别作为重复字符,并按照RC编码格式进行编码输出;若判断出当前位置上的字符的BCD码与之前所有字符的BCD码不重复,则将所述当前位置的字符及之前所有未重复的字符作为新字符,并按照NC编码格式进行编码输出。本发明实施例提供的基于B⑶码卫星短报文的编码方法,通过判断短报文中当前位置上字符的B⑶码与之前所有字符的B⑶码是否有重复进而采取NC编码对新字符进行编码输出,用RC编码对重复的字符进行编码输出,从而使重复字符的BCD码不再进行重复输出,而是用RC编码格式代替了重复字符的BCD码,如此,便缩小了短报文中原有字符的长度,进而避免了负压缩现象的产生。同时,在大多数情况下,采用NC编码与RC编码对短报文进行编码都能获得一个较好的压缩比。本发明实施例提供了一种基于B⑶码卫星短报文的编码装置,包括第一处理模块,用于判断当前位置上的字符的B⑶码是否与之前所有字符的B⑶码重复,若重复,则获取所述当前位置上的字符的BCD码与之前具有相同BCD码的字符之间的第一回指偏移;再判断下一位置上的字符的B⑶码是否与之前所有字符的B⑶码重复,若重复,则获取所述下一位置上的字符的BCD码与之前具有相同BCD码的字符之间的第二回指偏移,若所述第一回指偏移与所述第二回指偏移相同,则将所述当前位置和下一位置的 字符作为重复字符;依此类推,获取所述当前位置及后续所有连续的重复字符;若所述第一回指偏移与所述第二回指偏移不相同,则将所述当前位置以及所述下一位置上的字符分别作为重复字符;若判断出当前位置上的字符的B⑶码与之前所有字符的B⑶码不重复,则将所述当前位置的字符及之前所有未重复的字符作为新字符; 第二处理模块,用于按照RC编码格式对所述重复字符进行编码输出,按照NC编码格式对所述新字符进行编码输出。其中,NC (New Code)编码表示未重复的汉字,即新汉字;RC (Reference Code)编码表示重复的汉字。本发明实施例提供的基于B⑶码卫星短报文的编码装置,通过第一处理模块对短报文中当前处理位置上字符的BCD码与之前所有字符的BCD码进行比较从而判断出是否有重复字符的B⑶码,第二处理模块对重复字符的B⑶码按照RC编码格式进行编码输出,对新字符的BCD码按照NC编码格式进行编码输出,由此,使得编码后的短报文位数减少,进而避免了负压缩现象的产生。同时,在大多数情况下,使用第一处理模块与第二处理模块对短报文进行压缩处理时能获得一个较好的压缩比。


图I为本发明对短报文进行压缩的实施例的流程图;图2为本发明使用散列算法对短报文进行压缩的实施例的流程图;图3为本发明短报文解压缩的实施例的流程图;图4为本发明基于B⑶码卫星短报文的编码装置的实施例的结构示意图。
具体实施例方式具体地,将短报文中当前位置上字符的B⑶码与之前所有字符的B⑶码进行比较,若有的重复BCD码,则获取所述当前位置上的字符的BCD码与之前具有相同BCD码的字符之间的第一回指偏移,再继续判断下一位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述下一位置上的字符的BCD码与之前具有相同BCD码的字符之间的第二回指偏移,若所述第一回指偏移与所述第二回指偏移相同,则将所述当前位置和下一位置上具有相同回指偏移的字符作为重复字符,依此类推,获取所述当前位置及后续所有连续的重复字符,将所述连续的重复字符按照RC编码格式进行编码输出;若所述第一回指偏移与所述第二回指偏移不相同,则将所述当前位置以及所述下一位置上的字符分别作为重复字符,并按照RC编码格式进行编码输出;若判断出当前位置上的字符的BCD码与之前所有字符的BCD码不重复,则将所述当前位置的字符及之前所有未重复的字符作为新字符,并将所述新字符按照NC编码格式进行编码输出。本发明实施例通过将新字符的B⑶码用NC编码进行编码输出,而对重复字符的BCD码用RC编码进行编码输出,从整体上缩短了短报文的位数,对短报文进行了压缩,因此,避免了负压缩现象的产生,并且在大多数情况下都能获得一个较好的压缩比。进一步,所述RC编码可分解为三部分,第一部分为编码标识,第二部分为回指偏移,第三部分为重复的字符数;其设计有如下几种编码格式10+ 二位回指偏移+ 二位重复汉字数;110+四位回指偏移+ 二位重复汉字数; 1110+五位回指偏移+四位重复汉字数;11110+六位回指偏移+四位重复汉字数;111110+七位回指偏移+五位重复汉字数;1111110+十位回指偏移+六位重复汉字数。其中,RC编码第一部分采用I开头+后续采用变长的指示编码表示不同的编码格式。以10开头的编码,最多回指8个汉字,表达的重复汉字数最多8个汉字;以110开头的编码,最多回指16个汉字,表达的重复汉字数最多8个汉字;以1110开头的编码,最多回指32个汉字,表达的重复汉字数最多16个汉字;以11110开头的编码,最多回指64个汉字,表达的重复汉字数最多16个汉字;以111110开头的编码,最多回指128个汉字,表达的重复汉字数最多32个汉字;以1111110开头的编码,最多回指1024个汉字,表达的重复汉字数最多32个汉字。RC编码的设计上,重复汉字数不可能多于回指汉字偏移数,另外根据汉语的特点,重复的汉字数多余32个的很少见,而重复汉字数8个以内的较多,本发明实施例特别针对短的重复汉字数进行了优化。进一步,所述NC编码也可分解为三部分,第一部分为编码标识,第二部分为新字符数,第三部分为新字符的BCD码序列,其按照位设计有如下几种编码格式0000+三位汉字数+不多于8个新汉字的B⑶码序列;0001+四位汉字数+不多于16个新汉字的B⑶码序列;0010+五位汉字数+不多于32个新汉字的B⑶码序列;0011+六位汉字数+不多于64个新汉字的B⑶码序列;0100+七位汉字数+不多于128个新汉字的B⑶码序列;0101+八位汉字数+不多于256个新汉字的B⑶码序列;0110+九位汉字数+不多于512个新汉字的B⑶码序列;0111+十位汉字数+不多于1024个新汉字的B⑶码序列。其中,编码标识的第一位O表不该编码为NC编码,后续二位表不具体的编码格式,新字符数部分对应的数值为后续实际BCD码字符数减1,最后一部分跟随短报文的实际新字符的BCD码序列,由此编码格式可知NC编码没有对短报文中的字符进行压缩处理,而只是在新字符的BCD码前添加了 NC编码标识和长度。
NC编码与RC编码均采用了变长编码,由于重复字符串的长度越短,那么在短报文中重复出现的概率就越高,相对的,重复字符串的长度越长,则在短报文中出现的概率就越低。因此,本发明实施例对于出现概率较高的字符的BCD码采用较短的编码格式进行编码输出,而对于出现概率较低的重复字符串的BCD码,采用相对较长的编码格式进行编码输出。并且,NC编码与RC编码的设计使得所有的新汉字的长度,回指偏移量以及重复字符的长度均限制在一个短报文的范围内,从而对短报文的压缩更加有效。进一步,在判断当前位置上的字符的B⑶码是否与之前所有字符的B⑶码重复之前,首先对当前位置上字符的BCD码进行散列运算,将获得的BCD码对应的散列值与之前所有字符对应的BCD码散列值进行比较,若散列值相同,则再继续比较相应散列值相同处的字符的BCD码序列是否相同。本发明实施例首先通过比较散列值是否相同,假若散列值不同便可以不再比较BCD码序列是否相同就可判断出对应字符的BCD码序列不同,因此,通过散列运算可以更快的得出比较结果。本发明实施例还提供了一种对短报文压缩后的压缩编码解压的方法,包括首先读取短报文压缩编码的第一位,假若第一位是1,则表示后续的编码是经过RC编码与NC编码的压缩编码。读取压缩编码中的NC编码标识与RC编码标识,根据NC编码标识获取未重复字符的长度,进而根据未从重复字符的长度输出原始的BCD码序列;根据RC编码标识获取重复字符的回指偏移及长度,根据回指偏移获取与当前位置重复的B⑶码序列,并根据重复字符的长度输出原始BCD码序列;如此反复执行上述过程直到压缩编码的最后为连续的7个1,则表示解压结束。本发明实施例还提供了一种基于B⑶码卫星短报文的编码装置,附图4为本发明基于BCD码卫星短报文的编码装置的实施例的结构示意图,该装置可用于执行上述方法实施例,如附图4所示,该装置包括第一处理模块402和第二处理模块403。其中,第一处理模块402用于判断当前位置上的字符的B⑶码是否与之前所有字符的BCD码重复,若重复,则获取所述当前位置上的字符的BCD码与之前具有相同BCD码的字符之间的第一回指偏移;再判断下一位置上的字符的B⑶码是否与之前所有字符的B⑶码重复,若重复,则获取所述下一位置上的字符的BCD码与之前具有相同BCD码的字符之间的第二回指偏移,若所述第一回指偏移与所述第二回指偏移相同,则将所述当前位置和下一位置的字符作为重复字符;依此类推,获取所述当前位置及后续所有连续的重复字符;若所述第一回指偏移与所述第二回指偏移不相同,则将所述当前位置以及所述下一位置上的字符分别作为重复字符;若判断出当前位置上的字符的BCD码与之前所有字符的BCD码不重复,则将所述当前位置的字符及之前所有未重复的字符作为新字符。第二处理模块403用于按照RC编码格式对所述重复字符进行编码输出,按照NC编码格式对所述新字符进行编码输出。本发明实施例由于通过第一处理模块402,第二处理模块403对短报文中B⑶码序列进行了压缩编码,最终输出了比原始短报文BCD码位数少的压缩编码,从而避免了负压缩现象的产生,并且在大多数情况下都能获得一个较好的压缩比。其中,第二处理模块403包括RC编码单元4031与NC编码单元4032。所述RC编码单元4031用于根据如下的RC编码格式对所述重复字符进行编码输出,所述RC编码格式包括10+ 二位回指偏移+ 二位重复汉字数;110+四位回指偏移+ 二位重复汉字数;1110+五位回指偏移+四位重复汉字数;11110+六位回指偏移+四位重复汉字数;111110+七位回指偏移+五位重复汉字数;1111110+十位回指偏移+六位重复汉字数;
所述NC编码单元4032用于根据如下的NC编码格式对所述新字符进行编码输出,所述NC编码格式包括0000+三位汉字数+不多于8个新汉字的B⑶码序列;0001+四位汉字数+不多于16个新汉字的B⑶码序列;0010+五位汉字数+不多于32个新汉字的B⑶码序列;0011+六位汉字数+不多于64个新汉字的B⑶码序列;0100+七位汉字数+不多于128个新汉字的B⑶码序列;0101+八位汉字数+不多于256个新汉字的B⑶码序列;0110+九位汉字数+不多于512个新汉字的B⑶码序列;0111+十位汉字数+不多于1024个新汉字的B⑶码序列。本发明第二处理模块402的设计使得该模块对处理短报文的压缩更加有效。进一步的,本发明实施例还包括第三处理模块401,所述第三处理模块401用于对短报文中所有字符对应的BCD码进行散列运算,获得BCD码对应的散列值。本发明实施例通过第三处理模块401对短报文进行散列运算能更快的判断出字符的BCD码序列是否相同,进一步优化了编码装置。图I为本发明对短报文进行压缩的实施例的流程图,如图I所示,基于BCD码短报文的压缩方法包括以下步骤设短报文为“少林寺是武林第一大门派,少林寺在河南”步骤101 :将当前位置汉字的B⑶码与之前所有汉字的B⑶码进行比较;当前位置从短报文的起始位置开始,即将“少”与“林”的B⑶码进行比较,将比较结果存入历史记录,将“寺”与“少”、“林”的BCD码进行比较,将比较结果存入历史记录;依此类推,将后半句“少”与前半句“少”、“林”、“寺”、“是”、“武”、“林”、“第”、“ 一 ”、“大”、“门”、“派”、“,”的B⑶码进行比较;步骤102 :经比较,后半句“少”与前半句“少”的B⑶码相同;步骤103 :获取“少”的第一回指偏移,该回指偏移为12 ;步骤104:继续将后面的“林”的B⑶码与之前所有汉字的B⑶码进行比较;步骤105 :经比较后半句“林”与前半句“林”的B⑶码相同;步骤106 :获取“林”的第二回指偏移,该回指偏移为12 ;I)继续将后面的“寺”的B⑶码与之前所有汉字的B⑶码进行比较;2)经比较后半句“寺”的B⑶码与前半句“寺”的B⑶码相同;3)获取“寺”的回指偏移,该回指偏移为12 ;步骤107 :经计算,未重复B⑶码序列的长度为12,用二进制码表示为1011 ;重复BCD码序列的长度为3,用二进制码表示为10 ;重复BCD码序列的回指偏移为12,用二进制码表示1011 ;步骤108 :比较第一回指偏移、第二回指偏移、第三回指偏移均相同;步骤109 :将历史记录中的比较结果取出,即按照最短NC编码首先输出未重复汉字的编码,即输出“少林寺是武林第一大门派”的压缩编码,此时选择最短NC编码的编码格式为0001+四位汉字数+不多于16个新汉字的B⑶码序列,具体为0001+1011+“少林寺是武林第一大门派”的BCD码序列;步骤110 :按照最短RC编码输出重复的汉字的编码,S卩“少林寺”的压缩编码,此时选择的最短RC编码的编码格式为110+四位回指偏移+三位重复汉字数,具体为110+1011+10 ; 步骤111 :经判断短报文未处理完毕;步骤112 :将当前位置移动到下一个未处理的B⑶码序列位置处;I)将“在”的 BCD 码与“少”、“林”、“寺”、“是”、“武”、“林”、“第”、“一”、“大”、“门”、“派”、“,”、“少”、“林”、“寺”的BCD码进行比较;2)经比较,比较结果不用;3)短报文所有文字未处理完毕;4)将当前位置移动到下一个未处理的B⑶码位置处,即“河”的B⑶码位置处;5)将“河”的 BCD 码与““少”、“林”、“寺”、“是”、“武”、“林”、“第”、“一”、“大”、“门”、“派” “,”、“少”、“林”、“寺”、“在”的B⑶码进行比较;6)经比较,比较结果不同;7)短报文所有文字未处理完毕;8)将当前位置移动到下一个未处理的B⑶码位置处,即“南”的B⑶码位置处;9)将“南”的 BCD 码与““少”、“林”、“寺”、“是”、“武”、“林”、“第”、“一”、“大”、“门”、“派” “,”、“少”、“林”、“寺”、“在”、“河”的B⑶码进行比较;10)经比较,比较结果不同;11)短报文所有汉字均已处理;步骤113 :计算得出未重复B⑶码序列的长度为3,用二进制表示为10 ;步骤114 :按照最短NC编码输出未重复的汉字,此时选择最短NC编码的编码格式为0000+三位汉字数+不多于8个新汉字的B⑶码序列,具体为0000+10+ “在河南”的BCD码序列;步骤115 :经比较压缩后的短报文比压缩前的短报文位数少;步骤116 :在压缩后的短报文前增加一位1,结尾增加七位1,完成短报文的编辑;其中,步骤116为若经过比较短报文所有文字均为出现重复或经过压缩编码的短报文位数与压缩前一样,则不对短报文进行压缩编码处理,直接在原始短报文开头加一位
O,完成对短报文的编辑;如果有重复的字符,则用NC编码与RC编码对短报文进行编码输出,并在开用增加一位1,结尾增加七位I表示短报文压缩结束。注当短报文编辑的最后一部分为重复字符时,可省略步骤113与114,直接由步骤111进入步骤115。在此,本发明实施例与流程图将不再赘述。优选的,为了更快的得出比较结果,在判断当前位置上的字符的BCD码是否与之前所有字符的BCD码重复之前,首先对当前位置上字符的BCD码进行散列运算,将获得的BCD码对应的散列值与之前所有字符对应的BCD码散列值进行比较,当比较结果产生冲突时即散列值相同时,再对散列值相同处的BCD码序列进行比较,即按照实施例I中的步骤进行编码输出。附图2为本发明使用散列算法对短报文进行压缩的实施例的流程图,如图I所示,基于BCD码短报文的压缩方法包括以下步骤假设短报文“少林寺是武林第一大门派,少林寺在河南”首先,根据实际内存选取一个散列表,假设其长度为65535.步骤201 :将“少”的BCD码根据防冲突散列算法进行散列,得到一个散列值,假设该散列值为286,则在散列表的第286项中记录当前汉字BCD码序列在短报文中的偏移,SP“少”在短报文中的偏移为O ;
步骤202 :将“林”的BCD码序列根据防冲突散列算法进行散列,得到一个散列值,假设该散列值为289,则在散列表的第289项中记录当前汉字BCD码序列在短报文中的偏移,即“林”在短报文中的偏移为I ;经比较,“少”与“林”的散列值不同;I)短报文的文字未处理完毕;2)将当前位置移动到下一个未处理的B⑶码位置处,即“寺”的B⑶码位置处;3)将“寺”的B⑶码进行散列运算;4)经比较,“寺”的B⑶码散列值与“少”、“林”的B⑶码散列值结果不同;5)短报文的文字未处理完毕;6)将当前位置移动到下一个未处理的B⑶码位置处,即“是”的B⑶码位置处;7)将“是”的B⑶码进行散列运算;8)经比较,“是”的B⑶码散列值与“少”、“林”、“寺”的B⑶码散列值不同;9)如此反复执行上述步骤,直到后半句“少”的BCD码散列值与前半句“少”的BCD码散列值相同;步骤203 :将后半句中“少”的BCD码与““少”、“林”、“寺”、“是”、“武”、“林”、“第”、“一”、“大”、“门”、“派” “,”的BCD码进行比较;步骤204 :经比较,结果相同;步骤205 :获取“少”的第一回指偏移,该回指偏移为12 ;步骤206 :继续将后半句中“林”的BCD码散列值与之前所有汉字的BCD码散列值进行比较;步骤207 :经比较,结果相同;步骤208 :获取“林”的第二回指偏移,该回指偏移为12 ;反复执行步骤206-208,直到比较结果不同;步骤209 :计算得未重复汉字的B⑶序列的长度为12 ;重复B⑶码序列的长度为3,重复B⑶码序列的回指偏移为12 ;步骤210 :比较第一回指偏移、第二回指偏移、第三回指偏移均相同;步骤211 :按照最短NC编码格式首先输出未重复汉字的编码,即输出“少林寺是武林第一大门派”的编码,此时选择的最短NC编码的编码格式为0001+四位汉字数+不多于16个新汉字的B⑶码序列,具体为0001+1011+ “少林寺是武林第一大门派”的B⑶码序列;
步骤212 :按照最短RC编码输出重复的汉字的编码,S卩“少林寺”的压缩编码,此时选择的最短RC编码的编码格式为110+四位回指偏移+三位重复汉字数,具体为具体为110+1011+10 ;步骤213 :经确认短报文所有汉字还未处理完毕;步骤214 :将当前位置移动到下一个未处理的B⑶码位置处;I)将“在”的BCD码根据防冲突散列算法进行散列,得到一个散列值,假设该散列值为299,在散列表的第299项·中记录当前汉字BCD码序列在短报文中的偏移,即“在”在短报文中的偏移为15 ;将“河”的BCD码散列值与““少”、“林”、“寺”、“是”、“武”、“林”、“第”、“一”、“大”、“门”、“派” “,”、“少”、“林”、“寺”、“在”的BCD码散列值进行比较;2)经比较,结果不同;3)短报文均未处理完毕;4)将当前位置移动到“南”的B⑶码位置处;5))将“南”的BCD码根据防冲突散列算法进行散列,得到一个散列值,假设该散列值为299,将该散列值与““少”、“林”、“寺”、“是”、“武”、“林”、“第”、“一”、“大”、“门”、“派‘,”、“少”、“林”、“寺”、“在”、“河”的B⑶码散列值进行比较;6)经比较,结果不同;7)短报文所有文字已处理完毕;步骤215:计算得出未重复B⑶码序列的长度为3,用二进制表示为10步骤216 :按照最短NC编码输出未重复的汉字,S卩“在河南”,此时未重复的汉字数为3,用二进制表示为10,选用的NC编码格式为,0000+三位汉字数+不多于8个新汉字的B⑶码序列,具体为0000+10+ “在河南”的B⑶码序列;步骤217 :压缩后的短报文比压缩前的短报文位数少步骤218 :在压缩后的短报文前增加一位1,结尾增加七位1,完成短报文的编辑。其中,步骤218为若经过比较短报文所有文字均为出现重复或经过压缩编码的短报文位数与压缩前一样,则不对短报文进行压缩编码处理,直接在原始短报文开头加一位0,完成对短报文的编辑。本发明实施例与流程图将不再赘述。本发明实施例还包括对压缩后的短报文进行解码输出的方法,附图3为本发明短报文解压缩的实施例的流程图,如附图3所示,对短报文的压缩编码进行解压的方法包括以下步骤设短报文“少林寺是武林第一大门派,少林寺在河南”步骤301 :读取短报文第一位;步骤302 :根据实施例I或2得知,短报文的第一位为I ;步骤303 :读取NC编码,由实施例I或2可知,此NC编码为0001+1011+“少林寺是武林第一大门派”的BCD码序列,由此得知,未重复的汉字数为12,此时,直接输出“少林寺是武林第一大门派”的BCD编码;步骤304 :经判断,后续编码为RC编码;步骤305 :读取RC编码,由实施例I或2可知,此RC编码为110+1100+10,由此得知,重复的汉字数为3,回指偏移为12,此时,根据回指偏移为12回指到当前处理位置处之前的第12个汉字位置处,即在之前未重复汉字B⑶码序列里找到重复字符的B⑶码,S卩“少林寺”位置处,此时,输出“少林寺”的B⑶编码。步骤306 :将当前位置移动到下一个未处理的汉字编码位置处;I)读取NC编码,按照最短NC编码格式输出未重复的汉字B⑶码序列,此时,未重复的汉字数为3,则直接输出“在河南”的BCD码序列;2)经判断后续再无RC编码;步骤307 :判断下一处理位置为连续的7个I ;步骤308 :完成短报文的编辑;其中,步骤308为若短报文的开头一位若为0,则表示短报文没有被压缩,那么此时直读取后续汉字的BCD码序列并直接输出。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种基于BCD码卫星短报文的编码方法,其特征在于,包括 判断当前位置上的字符的B⑶码是否与之前所有字符的B⑶码重复,若重复,则获取所述当前位置上的字符的BCD码与之前具有相同BCD码的字符之间的第一回指偏移;再判断下一位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述下一位置上的字符的BCD码与之前具有相同BCD码的字符之间的第二回指偏移,若所述第一回指偏移与所述第二回指偏移相同,则将所述当前位置和下一位置的字符作为重复字符;依此类推,获取所述当前位置及后续所有连续的重复字符;若所述第一回指偏移与所述第二回指偏移不相同,则将所述当前位置以及所述下一位置上的字符分别作为重复字符,并按照RC编码格式进行编码输出; 若判断出当前位置上的字符的BCD码与之前所有字符的BCD码不重复,则将所述当前位置的字符及之前所有未重复的字符作为新字符,并按照NC编码格式进行编码输出。
2.根据权利要求I所述的方法,其特征在于,所述RC编码格式包括 10+ 二位回指偏移+ 二位重复汉字数; 110+四位回指偏移+ 二位重复汉字数; 1110+五位回指偏移+四位重复汉字数; 11110+六位回指偏移+四位重复汉字数; 111110+七位回指偏移+五位重复汉字数; 1111110+十位回指偏移+六位重复汉字数。
3.根据权利要求I所述的方法,其特征在于,所述NC编码格式包括 0000+三位汉字数+不多于8个新汉字的B⑶码序列; 0001+四位汉字数+不多于16个新汉字的BCD码序列; 0010+五位汉字数+不多于32个新汉字的B⑶码序列; 0011+六位汉字数+不多于64个新汉字的BCD码序列; 0100+七位汉字数+不多于128个新汉字的B⑶码序列; 0101+八位汉字数+不多于256个新汉字的BCD码序列; 0110+九位汉字数+不多于512个新汉字的B⑶码序列; 0111+十位汉字数+不多于1024个新汉字的B⑶码序列。
4.根据权利要求1-3任一所述的方法,其特征在于,所述判断当前位置上的字符的BCD码是否与之前所有字符的BCD码重复之前,还包括对当前位置上字符的BCD码进行散列运算,将获得的BCD码对应的散列值与之前所有字符对应的BCD码散列值进行比较。
5.一种基于BCD码卫星短报文的编码装置,其特征在于,包括 第一处理模块,用于判断当前位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述当前位置上的字符的BCD码与之前具有相同BCD码的字符之间的第一回指偏移;再判断下一位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述下一位置上的字符的BCD码与之前具有相同BCD码的字符之间的第二回指偏移,若所述第一回指偏移与所述第二回指偏移相同,则将所述当前位置和下一位置的字符作为重复字符;依此类推,获取所述当前位置及后续所有连续的重复字符;若所述第一回指偏移与所述第二回指偏移不相同,则将所述当前位置以及所述下一位置上的字符分别作为重复字符;若判断出当前位置上的字符的B⑶码与之前所有字符的B⑶码不重复,则将所述当前位置的字符及之前所有未重复的字符作为新字符; 第二处理模块,用于按照RC编码格式对所述重复字符进行编码输出,按照NC编码格式对所述新字符进行编码输出。
6.根据权利要求5所述的装置,其特征在于,所述第二处理模块包括 RC编码单元,用于根据如下的RC编码格式对所述重复字符进行编码输出,所述RC编码格式包括 10+ 二位回指偏移+ 二位重复汉字数; 110+四位回指偏移+ 二位重复汉字数; 1110+五位回指偏移+四位重复汉字数; 11110+六位回指偏移+四位重复汉字数; 111110+七位回指偏移+五位重复汉字数; 1111110+十位回指偏移+六位重复汉字数; NC编码单元,用于根据如下的NC编码格式对所述新字符进行编码输出,所述NC编码格式包括 0000+三位汉字数+不多于8个新汉字的B⑶码序列; 0001+四位汉字数+不多于16个新汉字的BCD码序列; 0010+五位汉字数+不多于32个新汉字的B⑶码序列; 0011+六位汉字数+不多于64个新汉字的BCD码序列; 0100+七位汉字数+不多于128个新汉字的B⑶码序列; 0101+八位汉字数+不多于256个新汉字的BCD码序列; 0110+九位汉字数+不多于512个新汉字的B⑶码序列; 0111+十位汉字数+不多于1024个新汉字的B⑶码序列。
7.根据权利要求5或6所述的装置,其特征在于,还包括 第三处理模块,用于对短报文中所有字符对应的BCD码进行散列运算,获得BCD码对应的散列值。
全文摘要
本发明涉及一种基于BCD码卫星短报文的编码方法和装置。通过比较当前位置上字符的BCD码是否与之前所有字符的BCD码相同进而对新字符通过NC编码格式进行编码输出,对重复的字符通过RC编码格式进行编码输出。该编码方法和装置能够有效解决采用传统压缩方法压缩BCD码短报文时的负压缩问题,在大多数情况下都能获得一个较好的压缩比。
文档编号H04L1/00GK102891730SQ201210323510
公开日2013年1月23日 申请日期2012年9月4日 优先权日2012年9月4日
发明者黄杰, 陈琳, 苏金树, 李钢, 陶静, 吴鹏 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1