一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

编码方法及存储介质与流程

2021-11-09 22:48:00 来源:中国专利 TAG:


1.本技术属于数据编码技术领域,尤其涉及一种编码方法及存储介质。


背景技术:

2.数字信号编码技术旨在使二进制0/1数字数据变换成具有一定极性、幅度、比特速率及跳变规则的方波波形。信号在串行传输的过程中,传输的数据可以被编码成包含有时钟频率分量的码流,使得接收端可以从码流中提取时钟同步信息,时钟同步信息可以保证接收端按照正常的时序从接收到的信号中再生出原始数据,然而信号在传输过程中连续的0或者连续的1过多时,接收端时钟数据恢复时很容易会发生相位移位或者频率偏差,这种错误被成为误码。
3.相关的数据传输技术中信号在传输过程中容易发生误码的问题,误码率较高,从而无法保证信号传输的可靠性。


技术实现要素:

4.本技术实施例提供一种编码方法及存储介质,降低了误码率,提高了信号传输的可靠性。
5.第一方面,本技术实施例提供一种编码方法,包括:
6.获取原始编码数据的第一比特流,将所述第一比特流映射至第二比特流,其中,所述第二比特流的位数多于所述第一比特流的位数,所述第二比特流包括比对比特流,且所述比对比特流与所述第一比特流对应;
7.判断所述比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值;
8.若是,则对所述比对比特流进行第一逻辑运算,以使所述连续多个预设位的逻辑值相同的数量小于所述预设阈值,并将所述比对比特流中参考比特位的逻辑值作为所述第二比特流中第一预设位的逻辑值;
9.若否,则将所述比对比特流中参考比特位的逻辑值取反后作为所述第二比特流中第一预设位的逻辑值;
10.所述第二比特流中第二预设位的逻辑值为与其相邻的比特位的逻辑值取反,以得到目标编码数据。
11.可选的,所述第一比特流包括第一位至第十位的十位数据,所述第二比特流包括第一位至第十二位的十二位数据,所述将所述第一比特流映射至第二比特流,包括:
12.将所述第一比特流中第一位至第十位的十位数据映射至所述第二比特流中的第三位至第十二位,得到所述比对比特流,其中,所述比对比特流包括与所述第一比特流对应的十位数据;
13.所述将所述比对比特流中参考比特位的逻辑值作为所述第二比特流中第一预设位的逻辑值,包括:
14.将所述参考比特位的逻辑值作为所述第二比特流中第二位的逻辑值。
15.可选的,所述将所述比对比特流中参考比特位的逻辑值取反后作为所述第二比特流中第一预设位的逻辑值,包括:
16.将所述参考比特位的逻辑值取反后作为所述第二比特流中第二位的逻辑值。
17.可选的,所述第二比特流中第二预设位的逻辑值为与其相邻的比特位的逻辑值取反,以得到目标编码数据,包括:
18.所述第二比特流中第一位的逻辑值为与其相邻的比特流中第十二位的逻辑值取反;
19.根据所述第二比特流中第一位至第十二位的逻辑值,得到所述目标编码数据。
20.可选的,所述第一比特流包括第一位至第十位的十位数据,所述第二比特流包括第一位至第十二位的十二位数据,所述将所述第一比特流映射至第二比特流,包括:
21.将所述第一比特流中第一位至第十位的十位数据映射至所述第二比特流中的第二位至第十一位,得到所述比对比特流,其中,所述比对比特流包括与所述第一比特流对应的十位数据;
22.所述将所述比对比特流中参考比特位的逻辑值作为所述第二比特流中第一预设位的逻辑值,包括:
23.将所述参考比特位的逻辑值作为所述第二比特流中第一位的逻辑值。
24.可选的,所述将所述比对比特流中参考比特位的逻辑值取反后作为所述第二比特流中第一预设位的逻辑值,包括:
25.将所述参考比特位的逻辑值取反后作为所述第二比特流中第一位的逻辑值。
26.可选的,所述第二比特流中第二预设位的逻辑值为与其相邻的比特位的逻辑值取反,以得到目标编码数据,包括:
27.所述第二比特流中第十二位的逻辑值为与其相邻的第十一位的逻辑值取反;
28.根据所述第二比特流中第一位至第十二位的逻辑值,得到所述目标编码数据。
29.可选的,所述判断所述比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值,包括:
30.对所述比对比特流中连续多个预设位的逻辑值进行第二逻辑运算和第三逻辑运算,得到目标运算结果;
31.若所述目标运算结果为1,则所述比对比特流中连续多个预设位的逻辑值相同的数量大于或等于所述预设阈值;
32.若所述目标运算结果不为1,则所述比对比特流中连续多个预设位的逻辑值相同的数量小于所述预设阈值;
33.其中,所述第二逻辑运算为逻辑与非运算,所述第三逻辑运算为逻辑或运算;或者所述第二逻辑运算为逻辑或运算,所述第三逻辑运算为逻辑与非运算。
34.第二方面,本技术实施例提供另一种数据编码方法,包括:
35.获取原始编码数据的第一比特流,并判断所述第一比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值;
36.若是,则对所述第一比特流进行第一逻辑运算,以使所述连续多个预设位的逻辑值相同的数量小于所述预设阈值,得到比对比特流;
37.将所述比对比特流映射至第二比特流,并将所述比对比特流中参考比特位的逻辑值作为所述第二比特流中第一预设位的逻辑值;
38.若否,则将所述第一比特流映射至所述第二比特流,并将所述第一比特流中所述参考比特位的逻辑值取反后作为所述第一预设位的逻辑值,其中,所述第二比特流的位数多于所述第一比特流的位数;
39.所述第二比特流中第二预设位的逻辑值为与其相邻的比特位的逻辑值取反,以得到目标编码数据。
40.第三方面,本技术实施例还提供一种计算机可读的存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机上运行时,使得所述计算机执行如上所述的数据编码方法。
41.本技术实施例中,获取原始编码数据的第一比特流,将第一比特流映射至第二比特流,第二比特流包括比对比特流;判断比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值;若是,则对比对比特流进行第一逻辑运算,以使连续多个预设位的逻辑值相同的数量小于预设阈值,并将比对比特流中参考比特位的逻辑值作为第二比特流中第一预设位的逻辑值;若否,则将比对比特流中参考比特位的逻辑值取反后作为第二比特流中第一预设位的逻辑值;第二比特流中第二预设位的逻辑值为与其相邻的比特位的逻辑值取反,以得到目标编码数据。通过对比对比特流进行信号判断、取反处理、逻辑运算等方式,得到具有一定跳变幅度、连续相同0或1的个数低于多个预设位的编码,降低了误码率,提高了信号传输的可靠性。
附图说明
42.下面结合附图,通过对本技术的具体实施方式详细描述,将使本技术的技术方案及其有益效果显而易见。
43.图1是本技术实施例提供的编码方法的第一种流程示意图。
44.图2是本技术实施例提供的编码方法的第二种流程示意图。
45.图3是本技术实施例提供的编码方法的第三种流程示意图。
46.图4是本技术实施例提供的编码方法的第四种流程示意图。
47.图5是本技术实施例提供的编码装置的结构示意图。
具体实施方式
48.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
49.在显示产品中,数字信号在数字信道中传输时需对传输的数字信号先编码再进行基带传输,由于数据传输过程中无独立的时钟信号,为避免传输数据中连续的0或1过多导致误码发生,需要对传输数据进行编码。
50.为解决上述误码问题,本技术实施例提供一种编码方法。请参阅图1,图1是本技术实施例提供的编码方法的第一种流程示意图。该编码方法可以包括以下步骤:
51.101、获取原始编码数据的第一比特流,将第一比特流映射至第二比特流。
52.本实施例中,该原始编码数据可以是发送端传输到接收端的数据。该原始编码数据为比特流形式,比如第一比特流为10位数据,可以表示为10bit,如1010101010等等,当然也可以为其他位数的比特流。bit代表数据编码的比特深度,显示画面分为三通道表示,每个通道的强度以二进制形式表示,10bit是指使用10位二进制数表示强度,比特深度会影响显示画面色彩的表示和编码的精度。
53.当第一比特流的长度为10bit时,将其根据先后顺序,按照从右至左的顺序排列可以表示为m[9]m[8]m[7]m[6]m[5]m[4]m[3]m[2]m[1]m[0],即m[9:0]。
[0054]
其中,第二比特流的位数多于第一比特流的位数。比如第一比特流为10位数据,第二比特流为12位数据,当然第二比特流也可以为其他位数的比特流。将第一比特流映射至第二比特流是将第一比特流中的10位数据映射至第二比特流中12位数据中的连续的十位,即第一比特流中的10位数据占据第二比特流中12位数据中的连续十个位置,从而在第二比特流中形成占据连续十个位置的比对比特流,即第二比特流包括比对比特流,而比对比特流的数据是第一比特流映射至第二比特流形成的,因此比对比特流与第一比特流对应,也就是比对比特流的数据与第一比特流的数据对应。获取到的第一比特流直接映射至第二比特流,从而后续的处理过程是在第二比特流对应的位置完成的,而第一比特流在映射完成后不进行工作,即执行主体为第二比特流。
[0055]
其中,第二比特流的长度位12bit时,将其根据先后顺序按照从右至左的顺序排列可以表示为n[11]n[10]n[9]n[8]n[7]n[6]n[5]n[4]n[3]n[2]n[1]n[0],即n[11:0]。
[0056]
102,判断比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值。
[0057]
若比对比特流中出现连续多个逻辑值相同的位数时,容易产生误码,因此需要判断比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值,避免数据传输中误码的产生。其中,预设阈值可以为5个,也可以为其它个,在此不作具体限定,也就是连续多个预设位的逻辑值相同的数量小于5个就不容易产生误码,比如相同的数量为2个或3个等,均不会对数据传输产生影响。
[0058]
其中,若是,则执行步骤103;若否,则执行步骤104。
[0059]
具体地,判断比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值,可以通过对比对比特流中的连续多个预设位的逻辑值进行第二逻辑运算和第三逻辑运算,得到目标运算结果;若目标运算结果为1,则比对比特流中连续多个预设位的逻辑值相同的数量大于或等于预设阈值;若目标运算结果不为1,则比对比特流中连续多个预设位的逻辑值相同的数量小于预设阈值。其中,第二逻辑运算可以为逻辑与非运算,第三逻辑运算为逻辑或运算,或者第二逻辑运算为逻辑或运算,第三逻辑运算为逻辑与非运算。
[0060]
例如,比对比特流中连续多个预设位为5,预设阈值为5时,判断比对比特流中连续多个预设位的逻辑值相同是否大于或等于预设阈值的逻辑表达式可以为:
[0061]
nand(m[5:0]),nand(m[6:1]),nand(m[7:2]),nand(m[8:3]),nand(m[9:4]),or(m[5:0]),or(m[6:1]),or(m[7:2]),or(m[8:3]),or(m[9:4])。其中,当m[5:0]、m[6:1]、m[7:2]、m[8:3]和m[9:4全为0或1时,目标运算结果为1;当m[5:0]、m[6:1]、m[7:2]、m[8:3]和m[9:4不全为0或1时,目标运算结果不为1。nand代表逻辑与非运算,or代表逻辑或运算。
[0062]
103,对比对比特流进行第一逻辑运算,以使连续多个预设位的逻辑值相同的数量小于预设阈值,并将比对比特流中参考比特位的逻辑值作为第二比特流中第一预设位的逻辑值。
[0063]
若比对比特流中的连续多个预设位的逻辑值相同的数量大于或等于预设阈值,当第二比特流采用该数据进行数据传输时容易产生误码,因此,需要对比对比特流进行第一逻辑运算,得到连续多个预设位的逻辑值为连续的0或1的数量不超过预设阈值的数据。
[0064]
其中,第一比特流可以为10bit,即第一比特流包括第一位至第十位的十位数据,第二比特流可以为12bit,即第二比特流包括第一位至第十二位的十二位数据。
[0065]
将第一比特流映射至第二比特流,可以将第一比特流中的第一位至第十位的十位数据映射至第二比特流中的第一位至第十位、第二比特流中的第二位至第十一位或者第二比特流中的第三位至第十二位,从而得到比对比特流,其中,比对比特流包括与第一比特流对应的十位数据。
[0066]
如果将第一比特流中的第一位至第十位的十位数据映射至第二比特流中的第三位至第十二位,那么第二比特流中的第一位和第二位会存在两个空位需要数据填充。两个空位分别为第一空位和第二空位,第一空位可以为第二比特流的第一位,第二空位可以为第二比特流的第二位,可以将第二空位设置为第一预设位。
[0067]
可以理解的是,由于比对比特流中的连续多个预设位的逻辑值相同的数量大于或等于预设阈值,因此需要对比对比特流进行第一逻辑运算以保证得到连续多个预设位的逻辑值为连续的0或1的数量不超过预设阈值的数据。那么可以将比对比特流经过第一逻辑运算后的参考比特位数据作为参考数据对上述第一预设位进行赋值,该参考数据可以为比对比特流中的m[0],即对应第一比特流中的第一位数据,也可以为其它位数据。
[0068]
若参考比特位为m[0],将m[0]对应的逻辑值作为第一预设位即第二比特流中第二位n[1]的逻辑值。其中,第一预设位可以为与第一比特流映射至第二比特流中所占用位置的最低位或最高位相邻的位数。比如,第一比特流映射至第二比特流的第三位至第十二位,那么第二比特流的空位为第一位和第二位,因此,第一预设位可以为与第一比特流映射至第二比特流中的最低位即第三位相邻的第二位n[1]。
[0069]
104,将比对比特流中参考比特位的逻辑值取反后作为第二比特流中第一预设位的逻辑值。
[0070]
若比对比特流中的连续多个预设位的逻辑值相同的数量不超过预设阈值,说明连续多个预设位中连续相同的0或1不超过预设阈值,以使第二比特流在数据传输过程中不容易产生误码。
[0071]
可以将比对比特流的参考比特位数据作为参考数据通过简单的取反处理对上述第一预设位进行赋值,该参考数据可以为比对比特流中的m[0],即对应第一比特流中的第一位数据,也可以为其它位数据。
[0072]
若参考比特位为m[0],将m[0]对应的逻辑值取反处理后的~m[0]作为第一预设位即第二比特流中第二位n[1]的逻辑值。
[0073]
105,第二比特流中第二预设位的逻辑值为与其相邻的比特位的逻辑值取反,以得到目标编码数据。
[0074]
上述第二比特流中的数据包括第一比特流所映射的数据即比对比特流的数据,以
及比对比特流的参考比特位赋值给第二比特流中第一预设位的数据,然而第二比特流中还存在没有赋值的空位数据,即第二预设位。
[0075]
若第一比特流的十位数据映射至第二比特流中的第三位至第十二位,且第一预设位为第二位,那么仍没有赋值的空位即第二预设位为第二比特流的第一位即n[0]。此时,第二比特流中第二预设位的逻辑值为与其相邻的比特位的逻辑值取反。其中,与第二预设位即第一位n[0]相邻的比特位可以为与该第二比特流相邻的比特流中的最高位即第十二位,也可以为第二比特流中与第二预设位相邻的第二位即n[1]。
[0076]
比如,与第二预设位相邻的比特流中的最高位为n[12](n

1),第二预设位为n[0](n),那么n[0](n)的逻辑值为~n[12](n

1),其中,n代表第二比特流,(n

1)代表与第二比特流相邻的比特流。
[0077]
可以理解的是,第一比特流映射至第二比特流,得到比对比特流,通过对比对比特流进行第一逻辑运算及取反处理,得到了第二比特流中第一位至第十二位的数据,进而得到了目标编码数据。
[0078]
由上可知,本实施例获取原始编码数据的第一比特流,将第一比特流映射至第二比特流,第二比特流包括比对比特流,判断比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值,若是,则对比对比特流进行第一逻辑运算,以使连续多个预设位的逻辑值相同的数量小于预设阈值,并将比对比特流中参考比特位的逻辑值作为第二比特流中第一预设位的逻辑值;若否,则将比对比特流中参考比特位的逻辑值取反后作为第二比特流中第一预设位的逻辑值,第二比特流中第二预设位的逻辑值为与其相邻的比特位的逻辑值取反,以得到目标编码数据。通过对比对比特流进行信号判断、取反处理、逻辑运算等方式,得到具有一定跳变幅度、连续相同0或1的个数低于多个预设位的编码,降低了误码率,提高了信号传输的可靠性。
[0079]
为了更好实施本技术实施例中的编码方法,请参阅图2,图2是本技术实施例提供的编码方法的第二种流程示意图。该编码方法具体步骤如下:
[0080]
201,获取原始编码数据的十位比特流,将十位比特流映射至十二位比特流。
[0081]
本实施例中,该原始编码数据可以是发送端传输到接收端的数据。该原始编码数据为比特流形式。
[0082]
十位比特流为10bit,将其根据先后顺序,按照从右至左的顺序排列可以表示为m[9]m[8]m[7]m[6]m[5]m[4]m[3]m[2]m[1]m[0],即m[9:0]。
[0083]
将十位比特流映射至十二位比特流是将十位比特流中的10位数据映射至十二位比特流中12位数据中的连续的十位,即10位数据占据12位数据中的连续十个位置,从而在十二位比特流中形成占据连续十个位置的比对比特流,即十二位比特流包括比对比特流,而比对比特流的数据是十位比特流映射至十二位比特流形成的,因此比对比特流与十位比特流对应,也就是比对比特流的数据与十位比特流的数据对应。
[0084]
其中,十二位比特流的长度位12bit时,按照从右至左的顺序排列可以表示为n[11]n[10]n[9]n[8]n[7]n[6]n[5]n[4]n[3]n[2]n[1]n[0],即n[11:0]。
[0085]
202,判断比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值。
[0086]
若比对比特流中出现连续多个逻辑值相同的位数时,容易产生误码,因此需要判
断比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值,避免数据传输中误码的产生。其中,预设阈值可以为5个,也可以为其它个,在此不作具体限定,也就是连续多个预设位的逻辑值相同的数量小于5个就不容易产生误码,比如相同的数量为2个或3个等,均不会对数据传输产生影响。
[0087]
其中,若是,则执行步骤203;若否,则执行步骤204。
[0088]
例如,十位比特流中连续多个预设位为5,预设阈值为5时,判断比对比特流中连续多个预设位的逻辑值相同是否大于或等于预设阈值的逻辑表达式可以为:
[0089]
nand(m[5:0]),nand(m[6:1]),nand(m[7:2]),nand(m[8:3]),nand(m[9:4]),or(m[5:0]),or(m[6:1]),or(m[7:2]),or(m[8:3]),or(m[9:4])。其中,当m[5:0]、m[6:1]、m[7:2]、m[8:3]和m[9:4全为0或1时,目标运算结果为1;当m[5:0]、m[6:1]、m[7:2]、m[8:3]和m[9:4不全为0或1时,目标运算结果不为1。
[0090]
203,对比对比特流进行第一逻辑运算,以使连续多个预设位的逻辑值相同的数量小于预设阈值,并将十位比特流中参考比特位的逻辑值作为十二位比特流中第二位的逻辑值。
[0091]
十位比特流包括第一位至第十位的十位数据,十二位比特流包括第一位至第十二位的十二位数据。
[0092]
将十位比特流映射至十二位比特流,可以将十位比特流中的第一位至第十位的十位数据映射至十二位比特流中的第三位至第十二位,从而得到比对比特流,其中,比对比特流包括与十位比特流对应的十位数据。十二位比特流中的第一位和第二位会存在两个空位需要数据填充。
[0093]
可以理解的是,由于比对比特流中的连续多个预设位的逻辑值相同的数量大于或等于预设阈值,因此需要对比对比特流进行第一逻辑运算以保证得到连续多个预设位的逻辑值为连续的0或1的数量不超过预设阈值的数据。那么可以将比对比特流经过第一逻辑运算后的参考比特位数据作为参考数据对十二位比特流的第二位进行赋值,该参考数据可以为m[0],也可以为其它位数据。
[0094]
若参考比特位为m[0],将m[0]对应的逻辑值作为第二位即n[1]的逻辑值,即n[1]=m[0]。而十位比特流映射至十二位比特流形成的比对比特流的十位数据所占用的十二位比特流中的第三位至第十二位数据因为存在连续多个预设位相同的逻辑值的数量大于或等于预设阈值,需要进行第一逻辑运算。
[0095]
具体地,将比对比特流中第二位的逻辑值取反后作为十二位比特流中第三位的逻辑值,即n[2]=~m[1];将比对比特流中第二位的逻辑值作为十二位比特流中第四位的逻辑值,即n[3]=m[1];将比对比特流中第三位的逻辑值作为十二位比特流中第五位的逻辑值,即n[4]=m[2];将比对比特流中第六位的逻辑值取反后作为十二位比特流中第八位的逻辑值,即n[7]=~m[5];根据比对比特流进行逻辑运算,得到十二位比特流中第六位、第七位、第九位、第十位、第十一位及第十二位的逻辑值。
[0096]
具体地,对比对比特流中第一位、第二位、第四位及取反后的第一位、第二位、第四位进行多次逻辑与运算,将得到的第一运算结果作为十二位比特流中第六位的逻辑值,即:
[0097]
n[5]=~((m[3]and~m[1]and~m[0])/(~m[3]and~m[1]andm[0])/(m[3]andm[1]andm[0])/(~m[3]andm[1]and~m[0]));
[0098]
对比对比特流中第一位、第二位、第五位及取反后的第一位、第二位、第五位进行多次逻辑与运算,将得到的第二运算结果作为十二位比特流中第七位的逻辑值,即:
[0099]
n[6]=((m[4]and~m[1]and~m[0])/(~m[4]and~m[1]andm[0])/(m[4]an dm[1]andm[0])/(~m[4]andm[1]and~m[0]));
[0100]
对比对比特流中第一位、第二位、第七位及取反后的第一位、第二位、第七位进行多次逻辑与运算,将得到的第三运算结果作为十二位比特流中第九位的逻辑值,即:
[0101]
n[8]=~((m[6]and~m[1]and~m[0])/(~m[6]and~m[1]andm[0])/(m[6]andm[1]andm[0])/(~m[6]andm[1]and~m[0]));
[0102]
对比对比特流中第一位、第二位、第八位及取反后的第一位、第二位、第八位进行多次逻辑与运算,将得到的第四运算结果作为十二位比特流中第十位的逻辑值,即:
[0103]
n[9]=((m[7]and~m[1]and~m[0])/(~m[7]and~m[1]andm[0])/(m[7]an dm[1]andm[0])/(~m[7]andm[1]and~m[0]));
[0104]
对比对比特流中第一位、第二位、第九位及取反后的第一位、第二位、第九位进行多次逻辑与运算,将得到的第五运算结果作为十二位比特流中第十一位的逻辑值,即:
[0105]
n[10]=~((m[8]and~m[1]and~m[0])/(~m[8]and~m[1]andm[0])/(m[8]andm[1]andm[0])/(~m[8]andm[1]and~m[0]));
[0106]
对比对比特流中第一位、第二位、第十位及取反后的第一位、第二位、第十位进行多次逻辑与运算,将得到的第六运算结果作为十二位比特流中第十二位的逻辑值,即:
[0107]
n[11]=((m[9]and~m[1]and~m[0])/(~m[9]and~m[1]andm[0])/(m[9]andm[1]andm[0])/(~m[9]andm[1]and~m[0]))。其中,and代表逻辑与运算。
[0108]
204,将十位比特流中参考比特位的逻辑值取反后作为十二位比特流中第二位的逻辑值。
[0109]
若比对比特流中的连续多个预设位的逻辑值相同的数量不超过预设阈值,说明连续多个预设位中连续相同的0或1不超过预设阈值,以使第二比特流在数据传输过程中不容易产生误码。
[0110]
可以将比对比特流的参考比特位数据作为参考数据通过简单的取反处理对十二位比特流中的第二位进行赋值,该参考数据可以为m[0],也可以为其它位数据。若参考比特位为m[0],将m[0]对应的逻辑值取反处理后的~m[0]作为第二位n[1]的逻辑值,即n[1]=~m[0]。
[0111]
205,十二位比特流中第一位的逻辑值为与其相邻的比特流的第十二位的逻辑值取反,以得到目标编码数据。
[0112]
上述十二位比特流中的数据包括十位比特流所映射的数据即比对比特流的数据,以及比对比特流的参考比特位赋值给十二位比特流中第二位的数据,然而十二位比特流中还存在没有赋值的空位数据,即第一位n[0]。此时,可以将与十二位比特流中第一位相邻的比特流中的最高位即第十二位取反后赋值至第一位。
[0113]
比如,与第一位相邻的比特流中的最高位为n[12](n

1),第一位为n[0](n),那么n[0](n)的逻辑值为~n[12](n

1),其中,n代表十二位比特流,(n

1)代表与十二位比特流相邻的比特流。
[0114]
可以理解的是,十位比特流映射至十二位比特流,得到比对比特流,通过对比对比
特流进行第一逻辑运算及取反处理,得到了十二位比特流中第一位至第十二位的数据,进而得到了目标编码数据。
[0115]
由上可知,本实施例获取原始编码数据的十位比特流,将十位比特流映射至十二位比特流,十二位比特流包括比对比特流,判断比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值,若是,则对比对比特流进行第一逻辑运算,以使连续多个预设位的逻辑值相同的数量小于预设阈值,并将比对比特流中参考比特位的逻辑值作为十二位比特流中第二位的逻辑值;若否,则将比对比特流中参考比特位的逻辑值取反后作为十二位比特流中第二位的逻辑值,十二位比特流中第一位的逻辑值为与其相邻的比特流的第十二位的逻辑值取反,以得到目标编码数据。通过对比对比特流进行信号判断、取反处理、逻辑运算等方式,得到十二位比特流中第一位与相邻比特流的第十二位之间具有一定跳变幅度、连续相同0或1的个数低于多个预设位的编码,降低了误码率,提高了信号传输的可靠性。
[0116]
为了更好实施本技术实施例中的编码方法,请参阅图3,图3是本技术实施例提供的编码方法的第二种流程示意图。该编码方法具体步骤如下:
[0117]
301,获取原始编码数据的十位比特流,将十位比特流映射至十二位比特流。
[0118]
本实施例中,该原始编码数据可以是发送端传输到接收端的数据。该原始编码数据为比特流形式。
[0119]
十位比特流为10bit,将其根据先后顺序,按照从右至左的顺序排列可以表示为m[9]m[8]m[7]m[6]m[5]m[4]m[3]m[2]m[1]m[0],即m[9:0]。
[0120]
将十位比特流映射至十二位比特流是将十位比特流中的10位数据映射至十二位比特流中12位数据中的连续的十位,即10位数据占据12位数据中的连续十个位置,从而在十二位比特流中形成占据连续十个位置的比对比特流,即十二位比特流包括比对比特流,而比对比特流的数据是十位比特流映射至十二位比特流形成的,因此比对比特流与十位比特流对应,也就是比对比特流的数据与十位比特流的数据对应。
[0121]
其中,十二位比特流的长度位12bit时,按照从右至左的顺序排列可以表示为n[11]n[10]n[9]n[8]n[7]n[6]n[5]n[4]n[3]n[2]n[1]n[0],即n[11:0]。
[0122]
302,判断比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值。
[0123]
若比对比特流中出现连续多个逻辑值相同的位数时,容易产生误码,因此需要判断比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值,避免数据传输中误码的产生。其中,预设阈值可以为5个,也可以为其它个,在此不作具体限定,也就是连续多个预设位的逻辑值相同的数量小于5个就不容易产生误码,比如相同的数量为2个或3个等,均不会对数据传输产生影响。
[0124]
其中,若是,则执行步骤303;若否,则执行步骤304。
[0125]
例如,十位比特流中连续多个预设位为5,预设阈值为5时,判断比对比特流中连续多个预设位的逻辑值相同是否大于或等于预设阈值的逻辑表达式可以为:
[0126]
nand(m[5:0]),nand(m[6:1]),nand(m[7:2]),nand(m[8:3]),nand(m[9:4]),or(m[5:0]),or(m[6:1]),or(m[7:2]),or(m[8:3]),or(m[9:4])。其中,当m[5:0]、m[6:1]、m[7:2]、m[8:3]和m[9:4全为0或1时,目标运算结果为1;当m[5:0]、m[6:1]、m[7:2]、m[8:3]和m
[9:4不全为0或1时,目标运算结果不为1。
[0127]
303,对比对比特流进行第一逻辑运算,以使连续多个预设位的逻辑值相同的数量小于预设阈值,并将十位比特流中参考比特位的逻辑值作为十二位比特流中第一位的逻辑值。
[0128]
将十位比特流映射至十二位比特流,可以将十位比特流中的第一位至第十位的十位数据映射至十二位比特流中的第二位至第十一位,从而得到比对比特流,其中,比对比特流包括与十位比特流对应的十位数据。十二位比特流中的第一位和第十二位会存在两个空位需要数据填充。
[0129]
可以理解的是,由于比对比特流中的连续多个预设位的逻辑值相同的数量大于或等于预设阈值,因此需要对比对比特流进行第一逻辑运算以保证得到连续多个预设位的逻辑值为连续的0或1的数量不超过预设阈值的数据。那么可以将比对比特流经过第一逻辑运算后的参考比特位数据作为参考数据对十二位比特流的第一位进行赋值,该参考数据可以为m[0],也可以为其它位数据。
[0130]
若参考比特位为m[0],将m[0]对应的逻辑值作为第一位即n[0]的逻辑值,即n[0]=m[0]。而十位比特流映射至十二位比特流形成的比对比特流的十位数据所占用的十二位比特流中的第二位至第十一位数据因为存在连续多个预设位相同的逻辑值的数量大于或等于预设阈值,需要进行第一逻辑运算。
[0131]
具体地,将比对比特流中第二位的逻辑值取反后作为十二位比特流中第二位的逻辑值,即n[1]=~m[1];将比对比特流中第二位的逻辑值作为十二位比特流中第三位的逻辑值,即n[2]=m[1];将比对比特流中第三位的逻辑值作为十二位比特流中第四位的逻辑值,即n[3]=m[2];将比对比特流中第六位的逻辑值取反后作为十二位比特流中第七位的逻辑值,即n[6]=~m[5];根据比对比特流进行所述第一逻辑运算,得到十二位比特流中第五位、第六位、第八位、第九位、第十位及第十一位的逻辑值。
[0132]
具体地,对比对比特流中第一位、第二位、第四位及取反后的第一位、第二位、第四位进行多次逻辑与运算,将得到的第七运算结果作为十二位比特流中第五位的逻辑值,即:
[0133]
n[4]=~((m[3]and~m[1]and~m[0])/(~m[3]and~m[1]andm[0])/(m[3]andm[1]andm[0])/(~m[3]andm[1]and~m[0]));
[0134]
对比对比特流中第一位、第二位、第五位及取反后的第一位、第二位、第五位进行多次逻辑与运算,将得到的第八运算结果作为十二位比特流中第六位的逻辑值,即:
[0135]
n[5]=((m[4]and~m[1]and~m[0])/(~m[4]and~m[1]andm[0])/(m[4]an dm[1]andm[0])/(~m[4]andm[1]and~m[0]));
[0136]
对比对比特流中第一位、第二位、第七位及取反后的第一位、第二位、第七位进行多次逻辑与运算,将得到的第九运算结果作为十二位比特流中第八位的逻辑值,即:
[0137]
n[7]=~((m[6]and~m[1]and~m[0])/(~m[6]and~m[1]andm[0])/(m[6]andm[1]andm[0])/(~m[6]andm[1]and~m[0]));
[0138]
对比对比特流中第一位、第二位、第八位及取反后的第一位、第二位、第八位进行多次逻辑与运算,将得到的第十运算结果作为十二位比特流中第九位的逻辑值,即:
[0139]
n[8]=((m[7]and~m[1]and~m[0])/(~m[7]and~m[1]andm[0])/(m[7]an dm[1]andm[0])/(~m[7]andm[1]and~m[0]));
[0140]
对比对比特流中第一位、第二位、第九位及取反后的第一位、第二位、第九位进行多次逻辑与运算,将得到的第十一运算结果作为十二位比特流中第十位的逻辑值,即:
[0141]
n[9]=~((m[8]and~m[1]and~m[0])/(~m[8]and~m[1]andm[0])/(m[8]andm[1]andm[0])/(~m[8]andm[1]and~m[0]));
[0142]
对比对比特流中第一位、第二位、第十位及取反后的第一位、第二位、第十位进行多次逻辑与运算,将得到的第十二运算结果作为十二位比特流中第十一位的逻辑值,即:
[0143]
n[10]=((m[9]and~m[1]and~m[0])/(~m[9]and~m[1]andm[0])/(m[9]andm[1]andm[0])/(~m[9]andm[1]and~m[0]))。
[0144]
304,将十位比特流中参考比特位的逻辑值取反后作为十二位比特流中第一位的逻辑值。
[0145]
将比对比特流的参考比特位数据作为参考数据通过简单的取反处理对十二位比特流中的第一位进行赋值,该参考数据可以为m[0],也可以为其它位数据。若参考比特位为m[0],将m[0]对应的逻辑值取反处理后的~m[0]作为第一位n[1]的逻辑值,即n[0]=~m[0]。
[0146]
305,十二位比特流中第十二位的逻辑值为与其相邻的第十一位的逻辑值取反,以得到目标编码数据。
[0147]
上述十二位比特流中的数据包括十位比特流所映射的数据即比对比特流的数据,以及比对比特流的参考比特位赋值给十二位比特流中第二位的数据,然而十二位比特流中还存在没有赋值的空位数据,即第十二位n[12]。此时,可以将十二位比特流中第十一位取反后赋值至第十二位,n[11]=~m[10]。
[0148]
可以理解的是,十位比特流映射至十二位比特流,得到比对比特流,通过对比对比特流进行第一逻辑运算及取反处理,得到了十二位比特流中第一位至第十二位的数据,进而得到了目标编码数据。
[0149]
由上可知,本实施例获取原始编码数据的十位比特流,将十位比特流映射至十二位比特流,十二位比特流包括比对比特流,判断比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值,若是,则对比对比特流进行第一逻辑运算,以使连续多个预设位的逻辑值相同的数量小于预设阈值,并将比对比特流中参考比特位的逻辑值作为十二位比特流中第一位的逻辑值;若否,则将比对比特流中参考比特位的逻辑值取反后作为十二位比特流中第一位的逻辑值,十二位比特流中第十二位的逻辑值为与其相邻的第十一位的逻辑值取反,以得到目标编码数据。通过对比对比特流进行信号判断、取反处理、逻辑运算等方式,得到十二位比特流中第十一位与第十二位之间具有一定跳变幅度、连续相同0或1的个数低于多个预设位的编码,降低了误码率,提高了信号传输的可靠性。
[0150]
本技术实施例还提供另一种编码方法。请参阅图4,图4是本技术实施例提供的编码方法的第四种流程示意图。该编码方法可以包括以下步骤:
[0151]
401、获取原始编码数据的第一比特流,并判断第一比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值。
[0152]
本实施例中,该原始编码数据可以是发送端传输到接收端的数据。该原始编码数据为比特流形式,比如第一比特流为10位数据,可以表示为10bit,如1010101010等等,当然也可以为其他位数的比特流。
[0153]
当第一比特流的长度为10bit时,将其根据先后顺序,按照从右至左的顺序排列可以表示为m[9]m[8]m[7]m[6]m[5]m[4]m[3]m[2]m[1]m[0],即m[9:0]。
[0154]
若第一比特流中出现连续多个逻辑值相同的位数时,容易产生误码,因此需要判断第一比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值,避免数据传输中误码的产生。其中,预设阈值可以为5个,也可以为其它个,在此不作具体限定,也就是连续多个预设位的逻辑值相同的数量小于5个就不容易产生误码,比如相同的数量为2个或3个等,均不会对数据传输产生影响。
[0155]
其中,若是,则执行步骤402;若否,则执行步骤404。
[0156]
具体地,判断第一比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值,可以通过对第一比特流中的连续多个预设位的逻辑值进行第二逻辑运算和第三逻辑运算,得到目标运算结果;若目标运算结果为1,则第一比特流中连续多个预设位的逻辑值相同的数量大于或等于预设阈值;若目标运算结果不为1,则第一比特流中连续多个预设位的逻辑值相同的数量小于预设阈值。其中,第二逻辑运算可以为逻辑与非运算,第三逻辑运算为逻辑或运算,或者第二逻辑运算为逻辑或运算,第三逻辑运算为逻辑与非运算。
[0157]
402,对第一比特流进行第一逻辑运算,以使连续多个预设位的逻辑值相同的数量小于所述预设阈值,得到比对比特流。
[0158]
将第一比特流经过第一逻辑运算后得到比对比特流,即比对比特流中的数据是第一比特流经过处理得到的。
[0159]
403,将比对比特流映射至第二比特流,并将比对比特流中参考比特位的逻辑值作为第二比特流中第一预设位的逻辑值。
[0160]
其中,比对比特流可以为10bit,即比对比特流包括第一位至第十位的十位数据,第二比特流可以为12bit,即第二比特流包括第一位至第十二位的十二位数据。
[0161]
将比对比特流映射至第二比特流,可以将比对比特流中的第一位至第十位的十位数据映射至第二比特流中的第一位至第十位、第二比特流中的第二位至第十一位或者第二比特流中的第三位至第十二位。
[0162]
如果将比对比特流中的第一位至第十位的十位数据映射至第二比特流中的第三位至第十二位,那么第二比特流中的第一位和第二位会存在两个空位需要数据填充。两个空位分别为第一空位和第二空位,第一空位可以为第二比特流的第一位,第二空位可以为第二比特流的第二位,可以将第二空位设置为第一预设位。
[0163]
可以理解的是,可以将比对比特流的参考比特位数据作为参考数据对上述第一预设位进行赋值,该参考数据可以为比对比特流中的m[0],即对应第一比特流中的第一位数据,也可以为其它位数据。
[0164]
若参考比特位为m[0],将m[0]对应的逻辑值作为第一预设位即第二比特流中第二位n[1]的逻辑值。其中,第一预设位可以为与比对比特流映射至第二比特流中所占用位置的最低位或最高位相邻的位数。比如,比对比特流映射至第二比特流的第三位至第十二位,那么第二比特流的空位为第一位和第二位,因此,第一预设位可以为与比对比特流映射至第二比特流中的最低位即第三位相邻的第二位n[1]。
[0165]
404,将第一比特流映射至第二比特流,并将第一比特流中参考比特位的逻辑值取反后作为第一预设位的逻辑值。
[0166]
若第一比特流中的连续多个预设位的逻辑值相同的数量不超过预设阈值,说明连续多个预设位中连续相同的0或1不超过预设阈值,以使第二比特流在数据传输过程中不容易产生误码。
[0167]
可以将第一比特流的参考比特位数据作为参考数据通过简单的取反处理对上述第一预设位进行赋值,该参考数据可以为第一比特流中的m[0],也可以为其它位数据。
[0168]
若参考比特位为m[0],将m[0]对应的逻辑值取反处理后的~m[0]作为第一预设位即第二比特流中第二位n[1]的逻辑值。
[0169]
405,第二比特流中第二预设位的逻辑值为与其相邻的比特位的逻辑值取反,以得到目标编码数据。
[0170]
上述第二比特流中的数据包括第一比特流或比对比特流的数据,以及第一比特流或比对比特流的参考比特位赋值给第二比特流中第一预设位的数据,然而第二比特流中还存在没有赋值的空位数据,即第二预设位。
[0171]
若第一比特流或比对比特流的十位数据映射至第二比特流中的第三位至第十二位,且第一预设位为第二位,那么仍没有赋值的空位即第二预设位为第二比特流的第一位即n[0]。此时,第二比特流中第二预设位的逻辑值为与其相邻的比特位的逻辑值取反。其中,与第二预设位即第一位n[0]相邻的比特位可以为与该第二比特流相邻的比特流中的最高位即第十二位,也可以为第二比特流中与第二预设位相邻的第二位即n[1]。
[0172]
比如,与第二预设位相邻的比特流中的最高位为n[12](n

1),第二预设位为n[0](n),那么n[0](n)的逻辑值为~n[12](n

1),其中,n代表第二比特流,(n

1)代表与第二比特流相邻的比特流。
[0173]
可以理解的是,通过判断第一比特流中连续多个预设位的逻辑值相同的数量是否不超过预设阈值,将第一比特流或比对比特流映射至第二比特流,通过对第一比特流进行第一逻辑运算及取反处理,得到了第二比特流中第一位至第十二位的数据,进而得到了目标编码数据。
[0174]
需要说明的是,获取到的第一比特流可以直接映射至第二比特流或者经过逻辑运算得到比对比特流再映射至第二比特流,处理过程是在第一比特流对应的位置完成的,即执行主体为第一比特流。
[0175]
另外,本技术实施例还提供一种编码装置。请参阅图5,图5是本技术实施例提供的编码装置的结构示意图。其中,该编码装置500可以包括获取模块501、判断模块502、第一处理模块503、第二处理模块504和第三处理模块505。
[0176]
其中,获取模块501,用于获取原始编码数据的第一比特流,将第一比特流映射至第二比特流,其中,第二比特流的位数多于第一比特流的位数,第二比特流包括比对比特流,且比对比特流与第一比特流对应;
[0177]
判断模块502,用于判断比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值;
[0178]
第一处理模块503,用于对比对比特流进行第一逻辑运算,以使连续多个预设位的逻辑值相同的数量小于预设阈值,并将比对比特流中参考比特位的逻辑值作为第二比特流中第一预设位的逻辑值;
[0179]
第二处理模块504,用于将比对比特流中参考比特位的逻辑值取反后作为第二比
特流中第一预设位的逻辑值;
[0180]
第三处理模块505,用于第二比特流中第二预设位的逻辑值为与其相邻的比特位的逻辑值取反,以得到目标编码数据。
[0181]
上述所有的技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
[0182]
另外,本技术实施例还提供了一种计算机可读的存储介质,该存储介质存储有计算机程序,当所述计算机程序在计算机上执行时,使得所述计算机执行上述任一实施例提供的编码方法。
[0183]
在一些实施例中,当上述计算机程序在计算机上运行时,该计算机执行如下步骤:
[0184]
获取原始编码数据的第一比特流,将第一比特流映射至第二比特流,其中,第二比特流的位数多于第一比特流的位数,第二比特流包括比对比特流,且比对比特流与第一比特流对应;
[0185]
判断比对比特流中连续多个预设位的逻辑值相同的数量是否大于或等于预设阈值;
[0186]
若是,则对比对比特流进行第一逻辑运算,以使连续多个预设位的逻辑值相同的数量小于预设阈值,并将比对比特流中参考比特位的逻辑值作为第二比特流中第一预设位的逻辑值;
[0187]
若否,则将比对比特流中参考比特位的逻辑值取反后作为第二比特流中第一预设位的逻辑值;
[0188]
第二比特流中第二预设位的逻辑值为与其相邻的比特位的逻辑值取反,以得到目标编码数据。
[0189]
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
[0190]
其中,该存储介质可以包括:只读存储器(rom,read only memory)、随机存取记忆体(ram,random access memory)、磁盘或光盘等。
[0191]
由于该存储介质中所存储的指令,可以执行本技术实施例所提供的任一种编码方法中的步骤,因此,可以实现本技术实施例所提供的任一种编码方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
[0192]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0193]
以上对本技术实施例所提供的编码方法及存储介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献