数据编码方法、装置、存储介质及计算机设备转让专利

申请号 : CN202110115432.7

文献号 : CN112947875B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘金风

申请人 : TCL华星光电技术有限公司

摘要 :

本发明公开了一种数据编码方法、装置、存储介质及计算机设备。本发明通过判断每一所述数据流是否满足预设标准,将不满足预设标准的数据流进行逻辑运算并赋值给目标数据,所述满足预设标准的数据流增加第四预设数量的数据位得到所述第一中间数据。从而可以筛选出满足预设标准的数据流,仅对不满足预设标准的数据流进行编码,降低了数据计算的复杂性,提高了数据的传输效率。另外,变换所述第二中间数据中最低数据位的数值,使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。以确保在串行传输过程中不同数据流之间有一个明显的数据跳变过程,便于接收端识别一个完整的信号。

权利要求 :

1.一种数据编码方法,其特征在于,包括步骤:

获取原始数据,所述原始数据中包括多条数据流;

判断每一所述数据流是否满足预设标准,其中所述数据流包括第一预设数量的数据位,每一所述数据位填充相应的数值,所述预设标准为连续的数据位中相同的数值不超过第二预设数量;

获取不满足预设标准的数据流并记录为待赋值数据流;

对所述待赋值数据流中每一所述数据位进行逻辑运算并赋值而得到第一中间数据;

对所述第一中间数据增加第三预设数量的数据位生成第二中间数据;

判断所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值是否相同,其中所述前一目标数据的位置与所述第二中间数据的位置相邻,并在所述第二中间数据之前传输,低数据位比高数据位优先传输;以及当所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值相同时,变换所述第二中间数据中最低数据位的数值,使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。

2.根据权利要求1所述的数据编码方法,其特征在于,包括步骤:获取满足预设标准的数据流并记录为待填充数据流;以及

对所述待填充数据流增加第四预设数量的数据位生成所述第一中间数据。

3.根据权利要求1所述的数据编码方法,其特征在于,所述第一预设数量的数值大于所述第二预设数量的数值。

4.根据权利要求1所述的数据编码方法,其特征在于,对判断所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值是否相同的步骤之后,包括:当所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值不相同时,将第二中间数据作为所述目标数据。

5.根据权利要求1所述的数据编码方法,其特征在于,所述第三预设数量的数据位位于最低数据位。

6.根据权利要求1所述的数据编码方法,其特征在于,所述目标数据中的数据位的数量大于所述数据流中数据位的数量。

7.根据权利要求1所述的数据编码方法,其特征在于,所述第二预设数量的数值不超过

5。

8.一种数据编码装置,其特征在于,包括:

数据获取单元,用于获取原始数据,所述原始数据中包括多条数据流;

离散判断单元,用于判断每一所述数据流是否满足预设标准,其中所述数据流包括第一预设数量的数据位,每一所述数据位填充相应的数值,所述预设标准为连续的数据位中相同的数值不超过第二预设数量;

赋值数据获取单元,用于获取不满足预设标准的数据流并记录为待赋值数据流;

数据赋值单元,用于对所述待赋值数据流中每一所述数据位进行逻辑运算并赋值而得到第一中间数据;

第一编码单元,用于对所述第一中间数据增加第三预设数量的数据位生成第二中间数据;

数值判断单元,用于判断所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值是否相同,其中所述前一目标数据的位置与所述第二中间数据的位置相邻,并在所述第二中间数据之前传输,低数据位比高数据位优先传输;以及第二编码单元,用于当所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值相同时,变换所述第二中间数据中最低数据位的数值,使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。

9.一种存储介质,其特征在于,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行权利要求1‑7任一所述的数据编码方法。

10.一种计算机设备,其特征在于,包括处理器和存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据,所述处理器用于执行权利要求1‑7任一所述的数据编码方法中的步骤。

说明书 :

数据编码方法、装置、存储介质及计算机设备

技术领域

[0001] 本发明涉及计算机技术,尤其涉及一种数据编码方法、装置、存储介质及计算机设备。

背景技术

[0002] 在现有薄膜晶体管液晶显示器(Thin film transistor liquid crystal display,简称TFT‑LCD)产品中,数字信号在数字信道中传输时即从控制(TCON)端传输至驱动(Driver)端,需要对传输的数字信号先编码再进行基带传输。由于数据传输过程中无独立的时钟信号,时钟信号被嵌入至数据中。当传输数据出现多个连续0或者连续1时,接收端容易误识别嵌入的时钟信号。编码的目的是为了使传输信号是具有一定跳变的方波波形,以免连续0或者连续1的个数过多致使接收端接收到的时钟同步信息容易发生错误,最终导致误码。
[0003] 现有的编码技术是针对TFT‑LCD显示面板的,通常是8bit编码至9bit或者10bit,而有机电激光显示屏幕(OrganicLight‑Emitting Diode,简称OLED)的一大特点为高色深为10bit色深,10bit数据的编码技术发展相对贫瘠。然而更高位的编码通常信号之间没有设置跳变的过程,从而导致Driver端识别不出完整的信号。

发明内容

[0004] 本发明实施例提供一种数据编码方法、装置、存储介质及计算机设备,有效解决了高位的编码通常信号之间没有设置跳变的过程,从而导致Driver端识别不出完整的信号的问题。
[0005] 根据本发明的一方面,本发明提供一种数据编码方法,所述方法包括步骤:获取原始数据,所述原始数据中包括多条数据流;判断每一所述数据流是否满足预设标准,其中所述数据流包括第一预设数量的数据位,每一所述数据位填充相应的数值,所述预设标准为连续的数据位中相同的数值不超过第二预设数量;获取不满足预设标准的数据流并记录为待赋值数据流;对所述待赋值数据流中每一所述数据位进行逻辑运算并赋值而得到第一中间数据;对所述第一中间数据增加第三预设数量的数据位生成第二中间数据;判断所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值是否相同,其中所述前一目标数据的位置与所述第二中间数据的位置相邻,并在所述第二中间数据之前传输,低数据位比高数据位优先传输;以及当所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值相同时,变换所述第二中间数据中最低数据位的数值,使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。
[0006] 进一步地,所述方法包括步骤:获取满足预设标准的数据流并记录为待填充数据流;以及对所述待填充数据流增加第四预设数量的数据位生成所述第一中间数据。
[0007] 进一步地,所述第一预设数量的数值大于所述第二预设数量的数值。
[0008] 进一步地,对判断所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值是否相同的步骤之后,包括:当所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值不相同时,将第二中间数据作为所述目标数据。
[0009] 进一步地,所述第三预设数量的数据位位于最低数据位。
[0010] 进一步地,所述目标数据中的数据位的数量大于所述数据流中数据位的数量。
[0011] 进一步地,所述第二预设数量的数值不超过5。
[0012] 根据本发明的另一方面,本发明提供一种数据编码装置,所述装置包括:数据获取单元,用于获取原始数据,所述原始数据中包括多条数据流;离散判断单元,用于判断每一所述数据流是否满足预设标准,其中所述数据流包括第一预设数量的数据位,每一所述数据位填充相应的数值,所述预设标准为连续的数据位中相同的数值不超过第二预设数量;赋值数据获取单元,用于获取不满足预设标准的数据流并记录为待赋值数据流;以及数据赋值单元,用于对所述待赋值数据流中每一所述数据位进行逻辑运算并赋值而得到第一中间数据;第一编码单元,用于对所述第一中间数据增加第三预设数量的数据位生成第二中间数据;数值判断单元,用于判断所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值是否相同,其中所述前一目标数据的位置与所述第二中间数据的位置相邻,并在所述第二中间数据之前传输,低数据位比高数据位优先传输;以及第二编码单元,用于当所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值相同时,变换所述第二中间数据中最低数据位的数值,使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。
[0013] 根据本发明的又一方面,本发明提供一种存储介质,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行如本发明任一实施例所提供的数据编码方法。
[0014] 根据本发明的又一方面,本发明提供一种移动终端,包括处理器和存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据,所述处理器用于执行如本发明任一实施例所提供的数据编码方法中的步骤。
[0015] 本发明的优点在于,通过判断每一所述数据流是否满足预设标准,将不满足预设标准的数据流进行逻辑运算并赋值给目标数据,所述满足预设标准的数据流增加第四预设数量的数据位得到所述第一中间数据。从而可以筛选出满足预设标准的数据流,仅对不满足预设标准的数据流进行编码,降低了数据计算的复杂性,提高了数据的传输效率。另外,变换所述第二中间数据中最低数据位的数值,使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。以确保在串行传输过程中不同数据流之间有一个明显的数据跳变过程,便于接收端识别一个完整的信号。

附图说明

[0016] 下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。
[0017] 图1为本发明实施例一提供的一种数据编码方法的步骤流程图。
[0018] 图2为本发明实施例二提供的一种数据编码方法的步骤流程图。
[0019] 图3为本发明实施例三提供的一种数据编码装置的结构示意图。
[0020] 图4为本发明实施例四提供的计算机设备的内部结构图。

具体实施方式

[0021] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022] 在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。在本实施例中,所述模拟显示屏触摸单元与所述头部追踪单元连接,用于获取所述显示设备中的感应光标的移动路径。
[0023] 如图1所示,为本发明实施例一提供的数据编码方法的步骤流程图。该方法包括步骤:
[0024] 步骤S110:获取原始数据。
[0025] 具体地,所述原始数据中包括多条数据流。其中数据流依次排列,在编码的过程中,按照顺序进行对数据流进行编码。当数据传输时,按照数据流编码的顺序依次对数据流进行传输。
[0026] 步骤S120:判断每一所述数据流是否满足预设标准。
[0027] 其中所述数据流包括第一预设数量的数据位,每一所述数据位填充相应的数值,所述预设标准为连续的数据位中相同的数值不超过第二预设数量。在本实施例中,所述第一预设数量的数值大于所述第二预设数量的数值,所述第一预设数量为10,因此该数据流为10Bit数据。每一所述数据位填充相应的数值,例如数据流所记录的是一种方波信号,该数据流的数据位填充相应的数值不是0就是1。
[0028] 下文将详细讲述,预设标准的运算方法。假设数据流为10Bit数据(即M0至M9个数据位),第二预设数量为5,预设标准的详细逻辑运算如下:NAND(NAND(M9‑M4),NAND(M8‑M3),NAND(M7‑M2),NAND(M6‑M1),NAND(M5‑M0),OR(M9‑M4),OR(M8‑M3),OR(M7‑M2),OR(M6‑M1),OR(M5‑M0))==1。其中(M7‑M2)表示M7,M6,M5,M4,M3和M2,其他参照(M7‑M2),NAND表示异或运算,OR表示或运算,==表示是否等于。由此可知,NAND(M9‑M4),NAND(M8‑M3),NAND(M7‑M2),NAND(M6‑M1),NAND(M5‑M0)表示M9‑M0之中每6个连续的数值中是否存在0,OR(M9‑M4),OR(M8‑M3),OR(M7‑M2),OR(M6‑M1),OR(M5‑M0)表示M9‑M0之中每6个连续的数值中是否存在1。
[0029] 步骤S130:获取不满足预设标准的数据流并记录为待赋值数据流。
[0030] 即数据流中存在连续相同的数值,例如在一个10Bit的数据流为(10 10111111),该数据流为不满足预设标准的数据流,该数据流可能会在信道传输过程中发生误码的数据信号。
[0031] 步骤S140:对所述待赋值数据流中每一所述数据位进行逻辑运算并赋值而得到第一中间数据。
[0032] 在本实施例中,所述目标数据中的数据位的数量大于数据流中数据位的数量。所述目标数据的数据位数量为12。对于待赋值数据流进行逻辑赋值时,首先要获取待赋值数据流的标记值,所述标记值用于提高数据流的离散性,具体如下:
[0033] 例如在一个8Bit的数据流为(10111111),选取M0和M1,即M0=1,M1=0。对于选取数据位的个数不做限定,为了便于计算,一般选取两个数据位。而选取的数据位也可以是任意的,一般为了使数据流的离散性更好(即数据的波形跳跃频率高),选取相邻的数据位。
[0034] 例如,选取M0=1,M1=0。假设标记值为X,X=NAND(M0,M1)。由此可知X=0,本实施例的逻辑运算如下,其中N0=~M1,N1=~M1,N2=M1,N3=M2,N4=NAND(~X,M3),N5=NAND(X,M4),N6=~M5,N7=NAND(~X,M6),N8=NAND(X,M7)。通过上述逻辑运算即可增加数据流的离散性。
[0035] 由于本实施例中的目标数据位12Bit,也可以不使用标记值进行计算,通过以下方法计算出N1‑N11的值:
[0036] N[1]=~M[1]
[0037] N[2]=~M[1]
[0038] N[3]=M[1]
[0039] N[4]=M[2]
[0040] N[5]=~((M[3]&~M[1]&~M[0])|(~M[3]&~M[1]&M[0])|(M[3]&M[1]&M[0])|(~M[3]&M[1]&~M[0]))
[0041] N[6]=((M[4]&~M[1]&~M[0])|(~M[4]&~M[1]&M[0])|(M[4]&M[1]&M[0])|(~M[4]&M[1]&~M[0]))
[0042] N[7]=~M[5]
[0043] N[8]=~((M[6]&~M[1]&~M[0])|(~M[6]&~M[1]&M[0])|(M[6]&M[1]&M[0])|(~M[6]&M[1]&~M[0]))
[0044] N[9]=((M[7]&~M[1]&~M[0])|(~M[7]&~M[1]&M[0])|(M[7]&M[1]&M[0])|(~M[7]&M[1]&~M[0]))
[0045] N[10]=~((M[8]&~M[1]&~M[0])|(~M[8]&~M[1]&M[0])|(M[8]&M[1]&M[0])|(~M[8]&M[1]&~M[0]))
[0046] N[11]=((M[9]&~M[1]&~M[0])|(~M[9]&~M[1]&M[0])|(M[9]&M[1]&M[0])|(~M[9]&M[1]&~M[0]))
[0047] 步骤S150:对所述第一中间数据增加第三预设数量的数据位生成第二中间数据。
[0048] 在本实施例中,在所述第一中间数据的最低位增加一个固定的值为1,即N0=1,以使得第二中间数据的数据位与目标数据的数据位相同。
[0049] 步骤S160:判断所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值是否相同。
[0050] 在本实施例中,所述前一目标数据的位置与所述第二中间数据的位置相邻,并在所述第二中间数据之前传输,低数据位比高数据位优先传输。例如,数据位N0表示最低数据位,N11表示最高数据位。即同一条第二中间数据中数据先从N0开始传输,到N11结束传输,转换到下一条第二中间数据。
[0051] 步骤170:变换所述第二中间数据中最低数据位的数值,使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。
[0052] 当所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值相同时,变换所述第二中间数据中最低数据位的数值。例如前一目标数据和第二中间数据均为12Bit(1110 1110 1001,1110 1110 1110),数据传输的顺序为从左向右传输,即第二中间数据中位于最低数据的为N0=1,前一目标数据中位于最高数据位N11=1,因此这种情况下两个数据流之间传输不存在跳变。使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。以确保在串行传输过程中不同数据流之间有一个明显的数据跳变过程,便于接收端识别一个完整的信号。
[0053] 如图2所示,为本发明实施例二提供的数据编码方法的步骤流程图。该方法包括步骤:
[0054] 步骤S210:获取原始数据。
[0055] 具体地,所述原始数据中包括多条数据流。其中数据流依次排列,在编码的过程中,按照顺序进行对数据流进行编码。当数据传输时,按照数据流编码的顺序依次对数据流进行传输。
[0056] 步骤S220:判断每一所述数据流是否满足预设标准。
[0057] 其中所述数据流包括第一预设数量的数据位,每一所述数据位填充相应的数值,所述预设标准为连续的数据位中相同的数值不超过第二预设数量。在本实施例中,所述第一预设数量的数值大于所述第二预设数量的数值,所述第一预设数量为10,因此该数据流为10Bit数据。每一所述数据位填充相应的数值,例如数据流所记录的是一种方波信号,该数据流的数据位填充相应的数值不是0就是1。
[0058] 下文将详细讲述,预设标准的运算方法。假设数据流为10Bit数据(即M0至M9个数据位),第二预设数量为5,预设标准的详细逻辑运算如下:NAND(NAND(M9‑M4),NAND(M8‑M3),NAND(M7‑M2),NAND(M6‑M1),NAND(M5‑M0),OR(M9‑M4),OR(M8‑M3),OR(M7‑M2),OR(M6‑M1),OR(M5‑M0))==1。其中(M7‑M2)表示M7,M6,M5,M4,M3和M2,其他参照(M7‑M2),NAND表示异或运算,OR表示或运算,==表示是否等于。由此可知,NAND(M9‑M4),NAND(M8‑M3),NAND(M7‑M2),NAND(M6‑M1),NAND(M5‑M0)表示M9‑M0之中每6个连续的数值中是否存在0,OR(M9‑M4),OR(M8‑M3),OR(M7‑M2),OR(M6‑M1),OR(M5‑M0)表示M9‑M0之中每6个连续的数值中是否存在1。
[0059] 步骤S230:获取不满足预设标准的数据流并记录为待赋值数据流。
[0060] 即数据流中存在连续相同的数值,例如在一个10Bit的数据流为(10 1011 1111),该数据流为不满足预设标准的数据流,该数据流可能会在信道传输过程中发生误码的数据信号。
[0061] 步骤S240:对所述待赋值数据流中每一所述数据位进行逻辑运算并赋值而得到第一中间数据。
[0062] 在本实施例中,所述目标数据中的数据位的数量大于数据流中数据位的数量。所述目标数据的数据位数量为12。对于待赋值数据流进行逻辑赋值时,首先要获取待赋值数据流的标记值,所述标记值用于提高数据流的离散性,具体如下:
[0063] 例如在一个8Bit的数据流为(1011 1111),选取M0和M1,即M0=1,M1=0。对于选取数据位的个数不做限定,为了便于计算,一般选取两个数据位。而选取的数据位也可以是任意的,一般为了使数据流的离散性更好(即数据的波形跳跃频率高),选取相邻的数据位。
[0064] 例如,选取M0=1,M1=0。假设标记值为X,X=NAND(M0,M1)。由此可知X=0,本实施例的逻辑运算如下,其中N0=~M1,N1=~M1,N2=M1,N3=M2,N4=NAND(~X,M3),N5=NAND(X,M4),N6=~M5,N7=NAND(~X,M6),N8=NAND(X,M7)。通过上述逻辑运算即可增加数据流的离散性。
[0065] 由于本实施例中的目标数据位12Bit,也可以不使用标记值进行计算,通过以下方法计算出N1‑N11的值:
[0066] N[1]=~M[1]
[0067] N[2]=~M[1]
[0068] N[3]=M[1]
[0069] N[4]=M[2]
[0070] N[5]=~((M[3]&~M[1]&~M[0])|(~M[3]&~M[1]&M[0])|(M[3]&M[1]&M[0])|(~M[3]&M[1]&~M[0]))
[0071] N[6]=((M[4]&~M[1]&~M[0])|(~M[4]&~M[1]&M[0])|(M[4]&M[1]&M[0])|(~M[4]&M[1]&~M[0]))
[0072] N[7]=~M[5]
[0073] N[8]=~((M[6]&~M[1]&~M[0])|(~M[6]&~M[1]&M[0])|(M[6]&M[1]&M[0])|(~M[6]&M[1]&~M[0]))
[0074] N[9]=((M[7]&~M[1]&~M[0])|(~M[7]&~M[1]&M[0])|(M[7]&M[1]&M[0])|(~M[7]&M[1]&~M[0]))
[0075] N[10]=~((M[8]&~M[1]&~M[0])|(~M[81&~M[1]&M[0])|(M[8]&M[1]&M[0])|(~M[8]&M[1]&~M[0]))
[0076] N[11]=((M[9]&~M[1]&~M[0])|(~M[9]&~M[1]&M[0])|(M[9]&M[1]&M[0])|(~M[9]&M[1]&~M[0]))
[0077] 步骤S250:对所述第一中间数据增加第三预设数量的数据位生成第二中间数据。
[0078] 在本实施例中,在所述第一中间数据的最低位增加一个固定的值为1,即N0=1,以使得第二中间数据的数据位与目标数据的数据位相同。
[0079] 步骤S260:判断所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值是否相同。
[0080] 在本实施例中,所述前一目标数据的位置与所述第二中间数据的位置相邻,并在所述第二中间数据之前传输,低数据位比高数据位优先传输。例如,数据位N0表示最低数据位,N11表示最高数据位。即同一条第二中间数据中数据先从N0开始传输,到N11结束传输,转换到下一条第二中间数据。
[0081] 步骤S270:变换所述第二中间数据中最低数据位的数值,使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。
[0082] 当所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值相同时,变换所述第二中间数据中最低数据位的数值。例如前一目标数据和第二中间数据均为12Bit(1110 1110 1001,1110 1110 1110),数据传输的顺序为从左向右传输,即第二中间数据中位于最低数据的为N0=1,前一目标数据中位于最高数据位N11=1,因此这种情况下两个数据流之间传输不存在跳变。使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。以确保在串行传输过程中不同数据流之间有一个明显的数据跳变过程,便于接收端识别一个完整的信号。
[0083] 步骤S271:将第二中间数据作为所述目标数据。
[0084] 当所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值不相同时,将第二中间数据作为所述目标数据。例如例如前一目标数据和第二中间数据均为12Bit(1110 1110 1000,1110 1110 1110),即第二中间数据中位于最低数据的为N0=1,前一目标数据中位于最高数据位N11=0,因此这种情况下两个数据流之间传输存在跳变。
[0085] 步骤S231:获取满足预设标准的数据流并记录为待填充数据流。
[0086] 在此步骤中,所述预设标准的详细计算方法请参阅步骤S120的计算方法,此处不再赘述。
[0087] 步骤S232:对所述待填充数据流增加第四预设数量的数据位生成所述第一中间数据。
[0088] 在本实施例中,所述第四预设数量为1,但不限于此,根据产品的需求,对信号的编码可以是更多位的,例如可以将8bit转换成10Bit等等。而此步骤,仅对待填充数据流增加第四预设数量的数据位,相较于待赋值数据流中每一所述数据位进行逻辑运算并赋值给目标数据中的每一所述数据位的计算量小,因此可以简化编码和解码的运算时间,提高数据的传输效率。
[0089] 如图3所示,为本发明实施例三提供的数据编码装置的结构示意图。该装置包括:数据获取单元10、离散判断单元20、赋值数据获取单元30、数据赋值单元40、第一编码单元
50、数值判断单元60及第二编码单元70。
[0090] 数据获取单元10用于获取原始数据。具体地,所述原始数据中包括多条数据流。其中数据流依次排列,在编码的过程中,按照顺序进行对数据流进行编码。当数据传输时,按照数据流编码的顺序依次对数据流进行传输。
[0091] 离散判断单元20用于判断每一所述数据流是否满足预设标准。其中所述数据流包括第一预设数量的数据位,每一所述数据位填充相应的数值,所述预设标准为连续的数据位中相同的数值不超过第二预设数量。在本实施例中,所述第一预设数量的数值大于所述第二预设数量的数值,所述第一预设数量为10,因此该数据流为10Bit数据。每一所述数据位填充相应的数值,例如数据流所记录的是一种方波信号,该数据流的数据位填充相应的数值不是0就是1。
[0092] 下文将详细讲述,预设标准的运算方法。假设数据流为10Bit数据(即M0至M9个数据位),第二预设数量为5,预设标准的详细逻辑运算如下:NAND(NAND(M9‑M4),NAND(M8‑M3),NAND(M7‑M2),NAND(M6‑M1),NAND(M5‑M0),OR(M9‑M4),OR(M8‑M3),OR(M7‑M2),OR(M6‑M1),OR(M5‑M0))==1。其中(M7‑M2)表示M7,M6,M5,M4,M3和M2,其他参照(M7‑M2),NAND表示异或运算,OR表示或运算,==表示是否等于。由此可知,NAND(M9‑M4),NAND(M8‑M3),NAND(M7‑M2),NAND(M6‑M1),NAND(M5‑M0)表示M9‑M0之中每6个连续的数值中是否存在0,OR(M9‑M4),OR(M8‑M3),OR(M7‑M2),OR(M6‑M1),OR(M5‑M0)表示M9‑M0之中每6个连续的数值中是否存在1。
[0093] 赋值数据获取单元30用于获取不满足预设标准的数据流并记录为待赋值数据流。即数据流中存在连续相同的数值,例如在一个10Bit的数据流为(10 1011 1111),该数据流为不满足预设标准的数据流,该数据流可能会在信道传输过程中发生误码的数据信号。
[0094] 数据赋值单元40用于对所述待赋值数据流中每一所述数据位进行逻辑运算并赋值而得到第一中间数据。
[0095] 在本实施例中,所述目标数据中的数据位的数量大于数据流中数据位的数量。所述目标数据的数据位数量为12。对于待赋值数据流进行逻辑赋值时,首先要获取待赋值数据流的标记值,所述标记值用于提高数据流的离散性,具体如下:
[0096] 例如在一个8Bit的数据流为(1011 1111),选取M0和M1,即M0=1,M1=0。对于选取数据位的个数不做限定,为了便于计算,一般选取两个数据位。而选取的数据位也可以是任意的,一般为了使数据流的离散性更好(即数据的波形跳跃频率高),选取相邻的数据位。
[0097] 例如,选取M0=1,M1=0。假设标记值为X,X=NAND(M0,M1)。由此可知X=0,本实施例的逻辑运算如下,其中N0=~M1,N1=~M1,N2=M1,N3=M2,N4=NAND(~X,M3),N5=NAND(X,M4),N6=~M5,N7=NAND(~X,M6),N8=NAND(X,M7)。通过上述逻辑运算即可增加数据流的离散性。
[0098] 由于本实施例中的目标数据位12Bit,也可以不使用标记值进行计算,通过以下方法计算出N1‑N11的值:
[0099] N[1]=~M[1]
[0100] N[2]=~M[1]
[0101] N[3]=M[1]
[0102] N[4]=M[2]
[0103] N[5]=~((M[3]&~M[1]&~M[0])|(~M[3]&~M[1]&M[0])|(M[3]&M[1]&M[0])|(~M[3]&M[1]&~M[0]))
[0104] N[6]=((M[4]&~M[1]&~M[0])|(~M[4]&~M[1]&M[0])|(M[4]&M[1]&M[0])|(~M[4]&M[1]&~M[0]))
[0105] N[7]=~M[5]
[0106] N[8]=~((M[6]&~M[1]&~M[0])|(~M[6]&~M[1]&M[0])|(M[6]&M[1]&M[0])|(~M[6]&M[1]&~M[0]))
[0107] N[9]=((M[7]&~M[1]&~M[0])|(~M[7]&~M[1]&M[0])|(M[7]&M[1]&M[0])|(~M[7]&M[1]&~M[0]))
[0108] N[10]=~((M[8]&~M[1]&~M[0])|(~M[8]&~M[1]&M[0])|(M[8]&M[1]&M[0])|(~M[8]&M[1]&~M[0]))
[0109] N[11]=((M[9]&~M[1]&~M[0])|(~M[9]&~M[1]&M[0])|(M[9]&M[1]&M[0])|(~M[9]&M[1]&~M[0]))
[0110] 第一编码单元50用于对所述第一中间数据增加第三预设数量的数据位生成第二中间数据。在本实施例中,在所述第一中间数据的最低位增加一个固定的值为1,即N0=1,以使得第二中间数据的数据位与目标数据的数据位相同。
[0111] 数值判断单元60用于判断所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值是否相同。在本实施例中,所述前一目标数据的位置与所述第二中间数据的位置相邻,并在所述第二中间数据之前传输,低数据位比高数据位优先传输。例如,数据位N0表示最低数据位,N11表示最高数据位。即同一条第二中间数据中数据先从N0开始传输,到N11结束传输,转换到下一条第二中间数据。
[0112] 第二编码单元70用于变换所述第二中间数据中最低数据位的数值,使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。
[0113] 当所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值相同时,变换所述第二中间数据中最低数据位的数值。例如前一目标数据和第二中间数据均为12Bit(1110 1110 1001,1110 1110 1110),数据传输的顺序为从左向右传输,即第二中间数据中位于最低数据的为N0=1,前一目标数据中位于最高数据位N11=1,因此这种情况下两个数据流之间传输不存在跳变。使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。以确保在串行传输过程中不同数据流之间有一个明显的数据跳变过程,便于接收端识别一个完整的信号。
[0114] 本发明实施例四提供了一种计算机设备400,其内部结构图可以如图4所示。该计算机设备400包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备400的处理器用于提供计算和控制能力。该计算机设备400的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的计算机设备通过网络连接通信。该计算机程序被处理器执行时以实现一种数据编码方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0115] 本领域技术人员可以理解,图4中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0116] 在一个实施例中,提供了一种计算机设备400,其包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0117] 获取原始数据,所述原始数据中包括多条数据流;
[0118] 判断每一所述数据流是否满足预设标准,其中所述数据流包括第一预设数量的数据位,每一所述数据位填充相应的数值,所述预设标准为连续的数据位中相同的数值不超过第二预设数量;
[0119] 获取不满足预设标准的数据流并记录为待赋值数据流;
[0120] 对所述待赋值数据流中每一所述数据位进行逻辑运算并赋值而得到第一中间数据;
[0121] 对所述第一中间数据增加第三预设数量的数据位生成第二中间数据;
[0122] 判断所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值是否相同,其中所述前一目标数据的位置与所述第二中间数据的位置相邻,并在所述第二中间数据之前传输,低数据位比高数据位优先传输;以及
[0123] 当所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值相同时,变换所述第二中间数据中最低数据位的数值,使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。
[0124] 在另一个实施例中,提供了一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0125] 获取原始数据,所述原始数据中包括多条数据流;
[0126] 判断每一所述数据流是否满足预设标准,其中所述数据流包括第一预设数量的数据位,每一所述数据位填充相应的数值,所述预设标准为连续的数据位中相同的数值不超过第二预设数量;
[0127] 获取不满足预设标准的数据流并记录为待赋值数据流;
[0128] 对所述待赋值数据流中每一所述数据位进行逻辑运算并赋值而得到第一中间数据;
[0129] 对所述第一中间数据增加第三预设数量的数据位生成第二中间数据;
[0130] 判断所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值是否相同,其中所述前一目标数据的位置与所述第二中间数据的位置相邻,并在所述第二中间数据之前传输,低数据位比高数据位优先传输;以及
[0131] 当所述第二中间数据中位于最低数据位的数值与前一目标数据中位于最高数据位的数值相同时,变换所述第二中间数据中最低数据位的数值,使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。
[0132] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0133] 根据上述各施例,本发明的优点在于,通过判断每一所述数据流是否满足预设标准,将不满足预设标准的数据流进行逻辑运算并赋值给目标数据,所述满足预设标准的数据流增加第四预设数量的数据位得到所述第一中间数据。从而可以筛选出满足预设标准的数据流,仅对不满足预设标准的数据流进行编码,降低了数据计算的复杂性,提高了数据的传输效率。另外,变换所述第二中间数据中最低数据位的数值,使所述第二中间数据中最低数据位的数值与所述前一目标数据中位于最高数据位的数值不相同以生成目标数据。以确保在串行传输过程中不同数据流之间有一个明显的数据跳变过程,便于接收端识别一个完整的信号。
[0134] 本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。