CN102891730B - 基于bcd码卫星短报文的编码方法和装置 - Google Patents
基于bcd码卫星短报文的编码方法和装置 Download PDFInfo
- Publication number
- CN102891730B CN102891730B CN201210323510.3A CN201210323510A CN102891730B CN 102891730 B CN102891730 B CN 102891730B CN 201210323510 A CN201210323510 A CN 201210323510A CN 102891730 B CN102891730 B CN 102891730B
- Authority
- CN
- China
- Prior art keywords
- binary
- character
- coded decimal
- coded
- characters
- 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.)
- Expired - Fee Related
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及一种基于BCD码卫星短报文的编码方法和装置。通过比较当前位置上字符的BCD码是否与之前所有字符的BCD码相同进而对新字符通过NC编码格式进行编码输出,对重复的字符通过RC编码格式进行编码输出。该编码方法和装置能够有效解决采用传统压缩方法压缩BCD码短报文时的负压缩问题,在大多数情况下都能获得一个较好的压缩比。
Description
技术领域
本发明涉及卫星通信领域,尤其涉及一种基于BCD码卫星短报文的编码方法和装置。
背景技术
我国现有的部分卫星具备短信息通信能力,这种通信能力具有两种模式:一种是卫星通信终端和终端之间的短信息通信,另一种是卫星通信终端和短信息中心站之间的通信。
BCD码有效地利用了卫星的带宽资源,其作为一种紧凑的汉字编码常常被用于卫星通信中,每14位表示一个汉字编码,比当前Windows使用的GBK编码的汉字每个汉字少2位,比Linux缺省使用的变长汉字编码UTF-8也更适合卫星传输。因此,在卫星通行中,通常会用BCD码来编辑短报文的内容。然而,由于单个短报文的数据量非常有限,通常被限制在几百个汉字到最多一千个汉字的范围内,而现有的压缩编码方式很难适应如此短小的数据和紧凑的编码格式,通常都会产生负压缩现象,即压缩后的短报文比压缩前的数据量还要大,这制约了基于GEO短消息数据通信能力。
因此,采用传统的压缩编码方式对卫星短报文进行压缩与解压缩不仅不能节省带宽,反而浪费了更多的带宽资源。
发明内容
针对上述现有技术存在的缺陷,本发明实施例提供一种基于BCD码卫星短报文的编码方法和装置,该编码方法和装置能够有效解决采用传统压缩方法压缩BCD码短报文时产生的负压缩现象,并且在大多数情况下都能获得一个较好的压缩比。
本发明实施例提供一种基于BCD码卫星短报文的编码方法,包括:判断当前位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述当前位置上的字符的BCD码与之前具有相同BCD码的字符之间的第一回指偏移;再判断下一位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述下一位置上的字符的BCD码与之前具有相同BCD码的字符之间的第二回指偏移,若所述第一回指偏移与所述第二回指偏移相同,则将所述当前位置和下一位置的字符作为重复字符;依此类推,获取所述当前位置及后续所有连续的重复字符;若所述第一回指偏移与所述第二回指偏移不相同,则将所述当前位置以及所述下一位置上的字符分别作为重复字符,并按照RC编码格式进行编码输出;
若判断出当前位置上的字符的BCD码与之前所有字符的BCD码不重复,则将所述当前位置的字符及之前所有未重复的字符作为新字符,并按照NC编码格式进行编码输出。
本发明实施例提供的基于BCD码卫星短报文的编码方法,通过判断短报文中当前位置上字符的BCD码与之前所有字符的BCD码是否有重复进而采取NC编码对新字符进行编码输出,用RC编码对重复的字符进行编码输出,从而使重复字符的BCD码不再进行重复输出,而是用RC编码格式代替了重复字符的BCD码,如此,便缩小了短报文中原有字符的长度,进而避免了负压缩现象的产生。同时,在大多数情况下,采用NC编码与RC编码对短报文进行编码都能获得一个较好的压缩比。
本发明实施例提供了一种基于BCD码卫星短报文的编码装置,包括:
第一处理模块,用于判断当前位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述当前位置上的字符的BCD码与之前具有相同BCD码的字符之间的第一回指偏移;再判断下一位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述下一位置上的字符的BCD码与之前具有相同BCD码的字符之间的第二回指偏移,若所述第一回指偏移与所述第二回指偏移相同,则将所述当前位置和下一位置的字符作为重复字符;依此类推,获取所述当前位置及后续所有连续的重复字符;若所述第一回指偏移与所述第二回指偏移不相同,则将所述当前位置以及所述下一位置上的字符分别作为重复字符;若判断出当前位置上的字符的BCD码与之前所有字符的BCD码不重复,则将所述当前位置的字符及之前所有未重复的字符作为新字符;
第二处理模块,用于按照RC编码格式对所述重复字符进行编码输出,按照NC编码格式对所述新字符进行编码输出。
其中,NC(New Code)编码表示未重复的汉字,即新汉字;RC(Reference Code)编码表示重复的汉字。
本发明实施例提供的基于BCD码卫星短报文的编码装置,通过第一处理模块对短报文中当前处理位置上字符的BCD码与之前所有字符的BCD码进行比较从而判断出是否有重复字符的BCD码,第二处理模块对重复字符的BCD码按照RC编码格式进行编码输出,对新字符的BCD码按照NC编码格式进行编码输出,由此,使得编码后的短报文位数减少,进而避免了负压缩现象的产生。同时,在大多数情况下,使用第一处理模块与第二处理模块对短报文进行压缩处理时能获得一个较好的压缩比。
附图说明
图1为本发明对短报文进行压缩的实施例的流程图;
图2为本发明使用散列算法对短报文进行压缩的实施例的流程图;
图3为本发明短报文解压缩的实施例的流程图;
图4为本发明基于BCD码卫星短报文的编码装置的实施例的结构示意图。
具体实施方式
具体地,将短报文中当前位置上字符的BCD码与之前所有字符的BCD码进行比较,若有的重复BCD码,则获取所述当前位置上的字符的BCD码与之前具有相同BCD码的字符之间的第一回指偏移,再继续判断下一位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述下一位置上的字符的BCD码与之前具有相同BCD码的字符之间的第二回指偏移,若所述第一回指偏移与所述第二回指偏移相同,则将所述当前位置和下一位置上具有相同回指偏移的字符作为重复字符,依此类推,获取所述当前位置及后续所有连续的重复字符,将所述连续的重复字符按照RC编码格式进行编码输出;若所述第一回指偏移与所述第二回指偏移不相同,则将所述当前位置以及所述下一位置上的字符分别作为重复字符,并按照RC编码格式进行编码输出;
若判断出当前位置上的字符的BCD码与之前所有字符的BCD码不重复,则将所述当前位置的字符及之前所有未重复的字符作为新字符,并将所述新字符按照NC编码格式进行编码输出。
本发明实施例通过将新字符的BCD码用NC编码进行编码输出,而对重复字符的BCD码用RC编码进行编码输出,从整体上缩短了短报文的位数,对短报文进行了压缩,因此,避免了负压缩现象的产生,并且在大多数情况下都能获得一个较好的压缩比。
进一步,所述RC编码可分解为三部分,第一部分为编码标识,第二部分为回指偏移,第三部分为重复的字符数;其设计有如下几种编码格式:
10+三位回指偏移+三位重复汉字数;
110+四位回指偏移+三位重复汉字数;
1110+五位回指偏移+四位重复汉字数;
11110+六位回指偏移+四位重复汉字数;
111110+七位回指偏移+五位重复汉字数;
1111110+十位回指偏移+六位重复汉字数。
其中,RC编码第一部分采用1开头+后续采用变长的指示编码表示不同的编码格式。以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个新汉字的BCD码序列;
0001+四位汉字数+不多于16个新汉字的BCD码序列;
0010+五位汉字数+不多于32个新汉字的BCD码序列;
0011+六位汉字数+不多于64个新汉字的BCD码序列;
0100+七位汉字数+不多于128个新汉字的BCD码序列;
0101+八位汉字数+不多于256个新汉字的BCD码序列;
0110+九位汉字数+不多于512个新汉字的BCD码序列;
0111+十位汉字数+不多于1024个新汉字的BCD码序列。
其中,编码标识的第一位0表示该编码为NC编码,后续三位表示具体的编码格式,新字符数部分对应的数值为后续实际BCD码字符数减1,最后一部分跟随短报文的实际新字符的BCD码序列,由此编码格式可知NC编码没有对短报文中的字符进行压缩处理,而只是在新字符的BCD码前添加了NC编码标识和长度。
NC编码与RC编码均采用了变长编码,由于重复字符串的长度越短,那么在短报文中重复出现的概率就越高,相对的,重复字符串的长度越长,则在短报文中出现的概率就越低。因此,本发明实施例对于出现概率较高的字符的BCD码采用较短的编码格式进行编码输出,而对于出现概率较低的重复字符串的BCD码,采用相对较长的编码格式进行编码输出。并且,NC编码与RC编码的设计使得所有的新汉字的长度,回指偏移量以及重复字符的长度均限制在一个短报文的范围内,从而对短报文的压缩更加有效。
进一步,在判断当前位置上的字符的BCD码是否与之前所有字符的BCD码重复之前,首先对当前位置上字符的BCD码进行散列运算,将获得的BCD码对应的散列值与之前所有字符对应的BCD码散列值进行比较,若散列值相同,则再继续比较相应散列值相同处的字符的BCD码序列是否相同。
本发明实施例首先通过比较散列值是否相同,假若散列值不同便可以不再比较BCD码序列是否相同就可判断出对应字符的BCD码序列不同,因此,通过散列运算可以更快的得出比较结果。
本发明实施例还提供了一种对短报文压缩后的压缩编码解压的方法,包括首先读取短报文压缩编码的第一位,假若第一位是1,则表示后续的编码是经过RC编码与NC编码的压缩编码。读取压缩编码中的NC编码标识与RC编码标识,根据NC编码标识获取未重复字符的长度,进而根据未从重复字符的长度输出原始的BCD码序列;根据RC编码标识获取重复字符的回指偏移及长度,根据回指偏移获取与当前位置重复的BCD码序列,并根据重复字符的长度输出原始BCD码序列;如此反复执行上述过程直到压缩编码的最后为连续的7个1,则表示解压结束。
本发明实施例还提供了一种基于BCD码卫星短报文的编码装置,附图4为本发明基于BCD码卫星短报文的编码装置的实施例的结构示意图,该装置可用于执行上述方法实施例,如附图4所示,该装置包括:第一处理模块402和第二处理模块403。
其中,第一处理模块402用于判断当前位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述当前位置上的字符的BCD码与之前具有相同BCD码的字符之间的第一回指偏移;再判断下一位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述下一位置上的字符的BCD码与之前具有相同BCD码的字符之间的第二回指偏移,若所述第一回指偏移与所述第二回指偏移相同,则将所述当前位置和下一位置的字符作为重复字符;依此类推,获取所述当前位置及后续所有连续的重复字符;若所述第一回指偏移与所述第二回指偏移不相同,则将所述当前位置以及所述下一位置上的字符分别作为重复字符;若判断出当前位置上的字符的BCD码与之前所有字符的BCD码不重复,则将所述当前位置的字符及之前所有未重复的字符作为新字符。
第二处理模块403用于按照RC编码格式对所述重复字符进行编码输出,按照NC编码格式对所述新字符进行编码输出。
本发明实施例由于通过第一处理模块402,第二处理模块403对短报文中BCD码序列进行了压缩编码,最终输出了比原始短报文BCD码位数少的压缩编码,从而避免了负压缩现象的产生,并且在大多数情况下都能获得一个较好的压缩比。
其中,第二处理模块403包括RC编码单元4031与NC编码单元4032。所述RC编码单元4031用于根据如下的RC编码格式对所述重复字符进行编码输出,所述RC编码格式包括:
10+三位回指偏移+三位重复汉字数;
110+四位回指偏移+三位重复汉字数;
1110+五位回指偏移+四位重复汉字数;
11110+六位回指偏移+四位重复汉字数;
111110+七位回指偏移+五位重复汉字数;
1111110+十位回指偏移+六位重复汉字数;
所述NC编码单元4032用于根据如下的NC编码格式对所述新字符进行编码输出,所述NC编码格式包括:
0000+三位汉字数+不多于8个新汉字的BCD码序列;
0001+四位汉字数+不多于16个新汉字的BCD码序列;
0010+五位汉字数+不多于32个新汉字的BCD码序列;
0011+六位汉字数+不多于64个新汉字的BCD码序列;
0100+七位汉字数+不多于128个新汉字的BCD码序列;
0101+八位汉字数+不多于256个新汉字的BCD码序列;
0110+九位汉字数+不多于512个新汉字的BCD码序列;
0111+十位汉字数+不多于1024个新汉字的BCD码序列。
本发明第二处理模块402的设计使得该模块对处理短报文的压缩更加有效。
进一步的,本发明实施例还包括第三处理模块401,所述第三处理模块401用于对短报文中所有字符对应的BCD码进行散列运算,获得BCD码对应的散列值。
本发明实施例通过第三处理模块401对短报文进行散列运算能更快的判断出字符的BCD码序列是否相同,进一步优化了编码装置。
图1为本发明对短报文进行压缩的实施例的流程图,如图1所示,基于BCD码短报文的压缩方法包括以下步骤:
设短报文为“少林寺是武林第一大门派,少林寺在河南”
步骤:101:将当前位置汉字的BCD码与之前所有汉字的BCD码进行比较;当前位置从短报文的起始位置开始,即将“少”与“林”的BCD码进行比较,将比较结果存入历史记录,将“寺”与“少”、“林”的BCD码进行比较,将比较结果存入历史记录;依此类推,将后半句“少”与前半句“少”、“林”、“寺”、“是”、“武”、“林”、“第”、“一”、“大”、“门”、“派”、“,”的BCD码进行比较;
步骤102:经比较,后半句“少”与前半句“少”的BCD码相同;
步骤103:获取“少”的第一回指偏移,该回指偏移为12;
步骤104:继续将后面的“林”的BCD码与之前所有汉字的BCD码进行比较;
步骤105:经比较后半句“林”与前半句“林”的BCD码相同;
步骤106:获取“林”的第二回指偏移,该回指偏移为12;
1)继续将后面的“寺”的BCD码与之前所有汉字的BCD码进行比较;
2)经比较后半句“寺”的BCD码与前半句“寺”的BCD码相同;
3)获取“寺”的回指偏移,该回指偏移为12;
步骤107:经计算,未重复BCD码序列的长度为12,用二进制码表示为1011;重复BCD码序列的长度为3,用二进制码表示为10;重复BCD码序列的回指偏移为12,用二进制码表示1011;
步骤108:比较第一回指偏移、第二回指偏移、第三回指偏移均相同;
步骤109:将历史记录中的比较结果取出,即按照最短NC编码首先输出未重复汉字的编码,即输出“少林寺是武林第一大门派”的压缩编码,此时选择最短NC编码的编码格式为:0001+四位汉字数+不多于16个新汉字的BCD码序列,具体为:0001+1011+“少林寺是武林第一大门派”的BCD码序列;
步骤110:按照最短RC编码输出重复的汉字的编码,即“少林寺”的压缩编码,此时选择的最短RC编码的编码格式为:110+四位回指偏移+三位重复汉字数,具体为:110+1011+10;
步骤:111:经判断短报文未处理完毕;
步骤112:将当前位置移动到下一个未处理的BCD码序列位置处;
1)将“在”的BCD码与“少”、“林”、“寺”、“是”、“武”、“林”、“第”、“一”、“大”、“门”、“派”、“,”、“少”、“林”、“寺”的BCD码进行比较;
2)经比较,比较结果不用;
3)短报文所有文字未处理完毕;
4)将当前位置移动到下一个未处理的BCD码位置处,即“河”的BCD码位置处;
5)将“河”的BCD码与““少”、“林”、“寺”、“是”、“武”、“林”、“第”、“一”、“大”、“门”、“派”“,”、“少”、“林”、“寺”、“在”的BCD码进行比较;
6)经比较,比较结果不同;
7)短报文所有文字未处理完毕;
8)将当前位置移动到下一个未处理的BCD码位置处,即“南”的BCD码位置处;
9)将“南”的BCD码与““少”、“林”、“寺”、“是”、“武”、“林”、“第”、“一”、“大”、“门”、“派”“,”、“少”、“林”、“寺”、“在”、“河”的BCD码进行比较;
10)经比较,比较结果不同;
11)短报文所有汉字均已处理;
步骤113:计算得出未重复BCD码序列的长度为3,用二进制表示为10;
步骤114:按照最短NC编码输出未重复的汉字,此时选择最短NC编码的编码格式为:0000+三位汉字数+不多于8个新汉字的BCD码序列,具体为:0000+10+“在河南”的BCD码序列;
步骤115:经比较压缩后的短报文比压缩前的短报文位数少;
步骤116:在压缩后的短报文前增加一位1,结尾增加七位1,完成短报文的编辑;
其中,步骤116为若经过比较短报文所有文字均为出现重复或经过压缩编码的短报文位数与压缩前一样,则不对短报文进行压缩编码处理,直接在原始短报文开头加一位0,完成对短报文的编辑;如果有重复的字符,则用NC编码与RC编码对短报文进行编码输出,并在开用增加一位1,结尾增加七位1表示短报文压缩结束。
注:当短报文编辑的最后一部分为重复字符时,可省略步骤113与114,直接由步骤111进入步骤115。在此,本发明实施例与流程图将不再赘述。
优选的,为了更快的得出比较结果,在判断当前位置上的字符的BCD码是否与之前所有字符的BCD码重复之前,首先对当前位置上字符的BCD码进行散列运算,将获得的BCD码对应的散列值与之前所有字符对应的BCD码散列值进行比较,当比较结果产生冲突时即散列值相同时,再对散列值相同处的BCD码序列进行比较,即按照实施例1中的步骤进行编码输出。附图2为本发明使用散列算法对短报文进行压缩的实施例的流程图,如图1所示,基于BCD码短报文的压缩方法包括以下步骤:
假设短报文:“少林寺是武林第一大门派,少林寺在河南”
首先,根据实际内存选取一个散列表,假设其长度为65535.
步骤201:将“少”的BCD码根据防冲突散列算法进行散列,得到一个散列值,假设该散列值为286,则在散列表的第286项中记录当前汉字BCD码序列在短报文中的偏移,即“少”在短报文中的偏移为0;
步骤202:将“林”的BCD码序列根据防冲突散列算法进行散列,得到一个散列值,假设该散列值为289,则在散列表的第289项中记录当前汉字BCD码序列在短报文中的偏移,即“林”在短报文中的偏移为1;经比较,“少”与“林”的散列值不同;
1)短报文的文字未处理完毕;
2)将当前位置移动到下一个未处理的BCD码位置处,即“寺”的BCD码位置处;
3)将“寺”的BCD码进行散列运算;
4)经比较,“寺”的BCD码散列值与“少”、“林”的BCD码散列值结果不同;
5)短报文的文字未处理完毕;
6)将当前位置移动到下一个未处理的BCD码位置处,即“是”的BCD码位置处;
7)将“是”的BCD码进行散列运算;
8)经比较,“是”的BCD码散列值与“少”、“林”、“寺”的BCD码散列值不同;
9)如此反复执行上述步骤,直到后半句“少”的BCD码散列值与前半句“少”的BCD码散列值相同;
步骤203:将后半句中“少”的BCD码与““少”、“林”、“寺”、“是”、“武”、“林”、“第”、“一”、“大”、“门”、“派”“,”的BCD码进行比较;
步骤204:经比较,结果相同;
步骤205:获取“少”的第一回指偏移,该回指偏移为12;
步骤206:继续将后半句中“林”的BCD码散列值与之前所有汉字的BCD码散列值进行比较;
步骤207:经比较,结果相同;
步骤208:获取“林”的第二回指偏移,该回指偏移为12;反复执行步骤206-208,直到比较结果不同;
步骤209:计算得未重复汉字的BCD序列的长度为12;重复BCD码序列的长度为3,重复BCD码序列的回指偏移为12;
步骤210:比较第一回指偏移、第二回指偏移、第三回指偏移均相同;
步骤211:按照最短NC编码格式首先输出未重复汉字的编码,即输出“少林寺是武林第一大门派”的编码,此时选择的最短NC编码的编码格式为:0001+四位汉字数+不多于16个新汉字的BCD码序列,具体为:0001+1011+“少林寺是武林第一大门派”的BCD码序列;
步骤212:按照最短RC编码输出重复的汉字的编码,即“少林寺”的压缩编码,此时选择的最短RC编码的编码格式为:110+四位回指偏移+三位重复汉字数,具体为:具体为:110+1011+10;
步骤213:经确认短报文所有汉字还未处理完毕;
步骤214:将当前位置移动到下一个未处理的BCD码位置处;
1)将“在”的BCD码根据防冲突散列算法进行散列,得到一个散列值,假设该散列值为299,在散列表的第299项中记录当前汉字BCD码序列在短报文中的偏移,即“在”在短报文中的偏移为15;将“河”的BCD码散列值与““少”、“林”、“寺”、“是”、“武”、“林”、“第”、“一”、“大”、“门”、“派”“,”、“少”、“林”、“寺”、“在”的BCD码散列值进行比较;
2)经比较,结果不同;
3)短报文均未处理完毕;
4)将当前位置移动到“南”的BCD码位置处;
5))将“南”的BCD码根据防冲突散列算法进行散列,得到一个散列值,假设该散列值为299,将该散列值与““少”、“林”、“寺”、“是”、“武”、“林”、“第”、“一”、“大”、“门”、“派”“,”、“少”、“林”、“寺”、“在”、“河”的BCD码散列值进行比较;
6)经比较,结果不同;
7)短报文所有文字已处理完毕;
步骤215:计算得出未重复BCD码序列的长度为3,用二进制表示为10
步骤216:按照最短NC编码输出未重复的汉字,即“在河南”,此时未重复的汉字数为3,用二进制表示为10,选用的NC编码格式为,0000+三位汉字数+不多于8个新汉字的BCD码序列,具体为:0000+10+“在河南”的BCD码序列;
步骤217:压缩后的短报文比压缩前的短报文位数少
步骤218:在压缩后的短报文前增加一位1,结尾增加七位1,完成短报文的编辑。
其中,步骤218为若经过比较短报文所有文字均为出现重复或经过压缩编码的短报文位数与压缩前一样,则不对短报文进行压缩编码处理,直接在原始短报文开头加一位0,完成对短报文的编辑。本发明实施例与流程图将不再赘述。
本发明实施例还包括对压缩后的短报文进行解码输出的方法,附图3为本发明短报文解压缩的实施例的流程图,如附图3所示,对短报文的压缩编码进行解压的方法包括以下步骤:
设短报文“少林寺是武林第一大门派,少林寺在河南”
步骤301:读取短报文第一位;
步骤302:根据实施例1或2得知,短报文的第一位为1;
步骤303:读取NC编码,由实施例1或2可知,此NC编码为:0001+1011+“少林寺是武林第一大门派”的BCD码序列,由此得知,未重复的汉字数为12,此时,直接输出“少林寺是武林第一大门派”的BCD编码;
步骤304:经判断,后续编码为RC编码;
步骤305:读取RC编码,由实施例1或2可知,此RC编码为:110+1100+10,由此得知,重复的汉字数为3,回指偏移为12,此时,根据回指偏移为12回指到当前处理位置处之前的第12个汉字位置处,即在之前未重复汉字BCD码序列里找到重复字符的BCD码,即“少林寺”位置处,此时,输出“少林寺”的BCD编码。
步骤306:将当前位置移动到下一个未处理的汉字编码位置处;
1)读取NC编码,按照最短NC编码格式输出未重复的汉字BCD码序列,此时,未重复的汉字数为3,则直接输出“在河南”的BCD码序列;
2)经判断后续再无RC编码;
步骤307:判断下一处理位置为连续的7个1;
步骤308:完成短报文的编辑;
其中,步骤308为若短报文的开头一位若为0,则表示短报文没有被压缩,那么此时直读取后续汉字的BCD码序列并直接输出。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (4)
1.一种基于BCD码卫星短报文的编码方法,其特征在于,包括:
判断当前位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述当前位置上的字符的BCD码与之前具有相同BCD码的字符之间的第一回指偏移;再判断下一位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述下一位置上的字符的BCD码与之前具有相同BCD码的字符之间的第二回指偏移,若所述第一回指偏移与所述第二回指偏移相同,则将所述当前位置和下一位置的字符作为重复字符;依此类推,获取所述当前位置及后续所有连续的重复字符;若所述第一回指偏移与所述第二回指偏移不相同,则将所述当前位置以及所述下一位置上的字符分别作为重复字符,并按照RC编码格式进行编码输出;
若判断出当前位置上的字符的BCD码与之前所有字符的BCD码不重复,则将所述当前位置的字符及之前所有未重复的字符作为新字符,并按照NC编码格式进行编码输出;
所述RC编码格式包括:
10+三位回指偏移+三位重复汉字数;
110+四位回指偏移+三位重复汉字数;
1110+五位回指偏移+四位重复汉字数;
11110+六位回指偏移+四位重复汉字数;
111110+七位回指偏移+五位重复汉字数;
1111110+十位回指偏移+六位重复汉字数;
所述NC编码格式包括:
0000+三位汉字数+不多于8个新汉字的BCD码序列;
0001+四位汉字数+不多于16个新汉字的BCD码序列;
0010+五位汉字数+不多于32个新汉字的BCD码序列;
0011+六位汉字数+不多于64个新汉字的BCD码序列;
0100+七位汉字数+不多于128个新汉字的BCD码序列;
0101+八位汉字数+不多于256个新汉字的BCD码序列;
0110+九位汉字数+不多于512个新汉字的BCD码序列;
0111+十位汉字数+不多于1024个新汉字的BCD码序列。
2.根据权利要求1所述的方法,其特征在于,所述判断当前位置上的字符的BCD码是否与之前所有字符的BCD码重复之前,还包括:对当前位置上字符的BCD码进行散列运算,将获得的BCD码对应的散列值与之前所有字符对应的BCD码散列值进行比较。
3.一种基于BCD码卫星短报文的编码装置,其特征在于,包括:
第一处理模块,用于判断当前位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述当前位置上的字符的BCD码与之前具有相同BCD码的字符之间的第一回指偏移;再判断下一位置上的字符的BCD码是否与之前所有字符的BCD码重复,若重复,则获取所述下一位置上的字符的BCD码与之前具有相同BCD码的字符之间的第二回指偏移,若所述第一回指偏移与所述第二回指偏移相同,则将所述当前位置和下一位置的字符作为重复字符;依此类推,获取所述当前位置及后续所有连续的重复字符;若所述第一回指偏移与所述第二回指偏移不相同,则将所述当前位置以及所述下一位置上的字符分别作为重复字符;若判断出当前位置上的字符的BCD码与之前所有字符的BCD码不重复,则将所述当前位置的字符及之前所有未重复的字符作为新字符;
第二处理模块,用于按照RC编码格式对所述重复字符进行编码输出,按照NC编码格式对所述新字符进行编码输出;
所述第二处理模块包括:
RC编码单元,用于根据如下的RC编码格式对所述重复字符进行编码输出,所述RC编码格式包括:
10+三位回指偏移+三位重复汉字数;
110+四位回指偏移+三位重复汉字数;
1110+五位回指偏移+四位重复汉字数;
11110+六位回指偏移+四位重复汉字数;
111110+七位回指偏移+五位重复汉字数;
1111110+十位回指偏移+六位重复汉字数;
NC编码单元,用于根据如下的NC编码格式对所述新字符进行编码输出,所述NC编码格式包括:
0000+三位汉字数+不多于8个新汉字的BCD码序列;
0001+四位汉字数+不多于16个新汉字的BCD码序列;
0010+五位汉字数+不多于32个新汉字的BCD码序列;
0011+六位汉字数+不多于64个新汉字的BCD码序列;
0100+七位汉字数+不多于128个新汉字的BCD码序列;
0101+八位汉字数+不多于256个新汉字的BCD码序列;
0110+九位汉字数+不多于512个新汉字的BCD码序列;
0111+十位汉字数+不多于1024个新汉字的BCD码序列。
4.根据权利要求3所述的装置,其特征在于,还包括:
第三处理模块,用于对短报文中所有字符对应的BCD码进行散列运算,获得BCD码对应的散列值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210323510.3A CN102891730B (zh) | 2012-09-04 | 2012-09-04 | 基于bcd码卫星短报文的编码方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210323510.3A CN102891730B (zh) | 2012-09-04 | 2012-09-04 | 基于bcd码卫星短报文的编码方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102891730A CN102891730A (zh) | 2013-01-23 |
CN102891730B true CN102891730B (zh) | 2015-04-22 |
Family
ID=47535111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210323510.3A Expired - Fee Related CN102891730B (zh) | 2012-09-04 | 2012-09-04 | 基于bcd码卫星短报文的编码方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102891730B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630755B (zh) * | 2016-01-22 | 2018-08-14 | 上海普适导航科技股份有限公司 | 北斗卫星短报文扩大信息量传输的信源编解码方法及装置 |
CN106559180B (zh) * | 2016-12-08 | 2019-08-02 | 西安烽火电子科技有限责任公司 | 基于速率兼容ldpc码的arq短报文通信方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571572A (zh) * | 2011-12-28 | 2012-07-11 | 中国人民解放军国防科学技术大学 | 基于短报文卫星通信的数据传输方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7583627B2 (en) * | 2002-10-02 | 2009-09-01 | Nxp B.V. | Low latency radio basedband interface protocol |
-
2012
- 2012-09-04 CN CN201210323510.3A patent/CN102891730B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571572A (zh) * | 2011-12-28 | 2012-07-11 | 中国人民解放军国防科学技术大学 | 基于短报文卫星通信的数据传输方法及装置 |
Non-Patent Citations (2)
Title |
---|
应用于极低速率通信的11 bit汉字编码方法;陆挺;《指挥信息系统与技术 》;20100630;全文 * |
面向北斗短报文的中文分词及压缩编码算法;黄建华;《第三届中国卫星导航学术年会电子文集——S02卫星导航信号体制及兼容与互操作 》;20120516;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN102891730A (zh) | 2013-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9454552B2 (en) | Entropy coding and decoding using polar codes | |
CN101783788B (zh) | 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置 | |
EP1147612B1 (en) | Code book construction for variable to variable length entropy encoding | |
CN103067022B (zh) | 一种整型数据无损压缩方法、解压缩方法及装置 | |
CN100495318C (zh) | 整型数据的压缩方法、装置及解压缩方法、装置 | |
CN101534124B (zh) | 一种用于短小自然语言的压缩算法 | |
CN110518917A (zh) | 基于Huffman编码的LZW数据压缩方法及系统 | |
CN106407285A (zh) | 一种基于rle和lzw的优化比特文件压缩与解压缩方法 | |
KR20110007865A (ko) | 데이터의 압축방법 | |
CN102438145A (zh) | 一种基于Huffman编码的图片无损压缩方法 | |
CN110021369B (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
CN116610265B (zh) | 一种商务信息咨询系统的数据存储方法 | |
CN106656198A (zh) | 一种基于lz77的编码方法 | |
CN113965207B (zh) | 一种基于deflate霍夫曼编码的动态码表生成装置和方法 | |
CN102891730B (zh) | 基于bcd码卫星短报文的编码方法和装置 | |
CN103731154A (zh) | 一种基于语义分析的数据压缩算法 | |
CN114492316A (zh) | 数据交换编解码方法和系统 | |
JP2015534795A (ja) | セキュアで損失のないデータ圧縮 | |
CN116471337A (zh) | 一种基于bwt和lzw的报文压缩与解压缩方法及设备 | |
US9235610B2 (en) | Short string compression | |
CN104682966A (zh) | 列表数据的无损压缩方法 | |
Jacob et al. | Comparative analysis of lossless text compression techniques | |
RU2437148C1 (ru) | Способ сжатия и восстановления сообщений в системах обработки, передачи и хранения текстовой информации | |
CN105007083A (zh) | 一种lz77压缩算法输出结果的存储方法 | |
CN111274950A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150422 Termination date: 20150904 |
|
EXPY | Termination of patent right or utility model |