基于多数据对齐的数据发送和接收方法、装置和设备与流程

文档序号:28972118发布日期:2022-02-19 17:29阅读:84来源:国知局
基于多数据对齐的数据发送和接收方法、装置和设备与流程

1.本发明涉及数据传输技术领域,具体涉及一种基于多数据对齐的数据发送和接收方法、装置和设备。


背景技术:

2.目前,在传输数据时,为了获取更高的传输效率,通常会将数据进行压缩或拆分为多个大小相同的子数据进行传输。但是,压缩技术通过会消耗大量的计算机资源进行大量计算来压缩数据,同时,由于现代路由器的带宽增加,在不压缩的情况下直接进行数据发送通常比将数据进行压缩后再发送花费的时间更少。而现有的数据拆分方式通常是根据传输的特定需求将数据拆分为等大小的若干个子数据分别发送,再在接收端进行组合。但是,实际上由于拆分后的子数据在磁盘集群中的磁盘写入、索引等问题,不仅对网络上的数据传输没有任何帮助,反而降低了网络上的数据传输速度。因此,当前基于压缩和拆分的数据发送方法通常无法提高网络上的数据传输速度,反而会导致数据传输速度变慢。


技术实现要素:

3.为了解决现有技术中存在的上述问题,本技术实施方式提供了一种基于多数据对齐的数据发送和接收方法、装置和设备,可以提高网络上的数据传输速度。
4.第一方面,本技术的实施方式提供了一种基于多数据对齐的数据发送方法,包括:
5.获取t个待发送数据,其中,t为大于1的正整数;
6.对t个待发送数据中的每个待发送数据进行二进制转化,得到t个第一二进制数据串,其中,t个第一二进制数据串与t个待发送数据一一对应;
7.将t个第一二进制数据串竖向堆叠,得到第一矩阵;
8.对第一矩阵进行多次行位移处理,得到第二矩阵;
9.将第二矩阵按列拆分,以得到r个第二二进制数据串,其中,r为大于0的正整数;
10.分别对r个第二二进制数据串中每个第二二进制数据串进行多次字符扫描处理,得到r个简化数据串,其中,得到r个简化数据串与r个第二二进制数据串一一对应;
11.根据每个第二二进制数据串在第二矩阵中的排列位置,将r个简化数据串纵向拼接,得到目标数据串;
12.将目标数据串发送至数据接收端。
13.第二方面,本技术的实施方式提供了一种基于多数据对齐的数据接收方法,包括:
14.从数据发送端接收待还原数据,其中,待还原数据包括:目标数据串和描述文件;
15.根据描述文件对目标数据串进行数据拆分,得到x个简化数据串;
16.根据描述文件和预设的转化表,将x个简化数据串中的每个简化数据串进行数据转化,得到x个第三二进制数据串,其中,x个第三二进制数据串与x个简化数据串一一对应;
17.将x个第三二进制数据串中的每个第三二进制数据串中的元素,按照在每个第三二进制数据串中排列位置从上到下依次排列,得到x个竖向数据串,其中,x个竖向数据串与
x个第三二进制数据串一一对应;
18.根据每个第三二进制数据串的标号,将x个竖向数据串横向拼接,得到第三矩阵;
19.根据描述文件对第三矩阵进行多次行位移还原,得到第四矩阵;
20.按照从上到下的顺序,将第四矩阵按行拆分,得到y个第四二进制数据串;
21.对y个第四二进制数据串中的每个第四二进制数据串进行数据还原,得到y个原始数据,其中,y个原始数据与y个二进制数据一一对应。
22.第三方面,本技术的实施方式提供了一种基于多数据对齐的数据发送装置,包括:
23.第一接收模块、第一处理模块和发送模块;其中,
24.第一接收模块,用于获取t个待发送数据,其中,t为大于1的正整数;
25.第一处理模块,用于对t个待发送数据中的每个待发送数据进行二进制转化,得到t个第一二进制数据串,其中,t个第一二进制数据串与t个待发送数据一一对应;将t个第一二进制数据串竖向堆叠,得到第一矩阵;对第一矩阵进行多次行位移处理,得到第二矩阵;将第二矩阵按列拆分,以得到r个第二二进制数据串,其中,r为大于0的正整数;分别对r个第二二进制数据串中每个第二二进制数据串进行多次字符扫描处理,得到r个简化数据串,其中,得到r个简化数据串与r个第二二进制数据串一一对应;根据每个第二二进制数据串在第二矩阵中的排列位置,将r个简化数据串纵向拼接,得到目标数据串;
26.发送模块,用于将目标数据串发送至数据接收端。
27.第四方面,本技术的实施方式提供了一种基于多数据对齐的数据接收装置,包括:
28.第二接收模块、第二处理模块和还原模块;其中,
29.第二接收模块,用于从数据发送端接收待还原数据,其中,待还原数据包括:目标数据串和描述文件;
30.第二处理模块,用于根据描述文件对目标数据串进行数据拆分,得到x个简化数据串;根据描述文件和预设的转化表,将x个简化数据串中的每个简化数据串进行数据转化,得到x个第三二进制数据串,其中,x个第三二进制数据串与x个简化数据串一一对应;将x个第三二进制数据串中的每个第三二进制数据串中的元素,按照在每个第三二进制数据串中排列位置从上到下依次排列,得到x个竖向数据串,其中,x个竖向数据串与x个第三二进制数据串一一对应;根据每个第三二进制数据串的标号,将x个竖向数据串横向拼接,得到第三矩阵;根据描述文件对第三矩阵进行多次行位移还原,得到第四矩阵;按照从上到下的顺序,将第四矩阵按行拆分,得到y个第四二进制数据串;
31.还原模块,用于对y个第四二进制数据串中的每个第四二进制数据串进行数据还原,得到y个原始数据,其中,y个原始数据与y个二进制数据一一对应。
32.第五方面,本技术实施方式提供一种基于多数据对齐的数据发送设备,包括:处理器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得电子设备执行如第一方面的方法。
33.第六方面,本技术实施方式提供一种基于多数据对齐的数据接收设备,包括:处理器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得电子设备执行如第二方面的方法。
34.第七方面,本技术实施方式提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序使得计算机执行如第一方面和/或第二方面的方法。
35.第八方面,本技术实施方式提供一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机可操作来使计算机执行如第一方面和/或第二方面的方法。
36.实施本技术实施方式,具有如下有益效果:
37.在本技术实施方式中,通过将t个待发送数据二进制化后竖向堆叠,得到第一矩阵。再对第一矩阵进行多次行位移处理,得到元素完全相同的列的数量大于或等于第一阈值的第二矩阵。继而将第二矩阵按列拆分,以得到r个第二二进制数据串,最后将r个第二二进制数据串发送至数据接收端。由此,由于通过多次位移处理,使得得到的第二矩阵中会存在大量的同类冗余位,且同时也会存在元素完全相同的列。基于此,将第二矩阵按列拆分后,得到的r个第二二进制数据串的数据结构更为简单,规律性强,可以有效提升发送过程中对数据的处理效率,继而提升网络传输速度。此外,由于数据传输过程中,存储单元,例如内存单元(ram)能够以原始大小处理位,因此,通常是通过发送端和接收端的存储单元完成。而在本技术中,通过将待发送数据转化为二进制数据,实现了数据的对位操作,从而在发送端和接收端都不必占用额外的内存,避免了数据分割在磁盘集群中的磁盘写入、索引等问题,继而进一步提升了网络传输速度。
附图说明
38.为了更清楚地说明本技术实施方式中的技术方案,下面将对实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1为本技术实施方式提供的一种基于多数据对齐的数据发送装置或基于多数据对齐的数据接收装置的硬件结构示意图;
40.图2为本技术实施方式提供的一种基于多数据对齐的数据发送方法的流程示意图;
41.图3为本技术实施方式提供的一种对第一矩阵进行多次行位移处理,得到第二矩阵的方法的流程示意图;
42.图4为本技术实施方式提供的另一种对第一矩阵进行多次行位移处理,得到第二矩阵的方法的流程示意图;
43.图5为本技术实施方式提供的一种分别对r个第二二进制数据串中每个第二二进制数据串进行多次字符扫描处理,得到r个简化数据串的方法的流程示意图;
44.图6为本技术实施方式提供的一种将目标数据串发送至数据接收端的方法的流程示意图;
45.图7为本技术实施方式提供的一种基于多数据对齐的数据接收方法的流程示意图;
46.图8为本技术实施方式提供的一种基于多数据对齐的数据发送装置的功能模块组成框图;
47.图9为本技术实施方式提供的一种基于多数据对齐的数据接收装置的功能模块组成框图;
48.图10为本技术实施方式提供的一种基于多数据对齐的数据发送设备的结构示意图;
49.图11为本技术实施方式提供的一种基于多数据对齐的数据接收设备的结构示意图。
具体实施方式
50.下面将结合本技术实施方式中的附图,对本技术实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本技术一部分实施方式,而不是全部的实施方式。基于本技术中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本技术保护的范围。
51.本技术的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
52.在本文中提及“实施方式”意味着,结合实施方式描述的特定特征、结果或特性可以包含在本技术的至少一个实施方式中。在说明书中的各个位置出现该短语并不一定均是指相同的实施方式,也不是与其它实施方式互斥的独立的或备选的实施方式。本领域技术人员显式地和隐式地理解的是,本文所描述的实施方式可以与其它实施方式相结合。
53.首先,参阅图1,图1为本技术实施方式提供的一种基于多数据对齐的数据发送装置或基于多数据对齐的数据接收装置的硬件结构示意图。该基于多数据对齐的数据发送装置或基于多数据对齐的数据接收装置包括至少一个处理器101,通信线路102,存储器103以及至少一个通信接口104。
54.在本实施方式中,处理器101,可以是一个通用中央处理器(central processing unit,cpu),微处理器,特定应用集成电路(application-specific integrated circuit,asic),或一个或多个用于控制本技术方案程序执行的集成电路。
55.通信线路102,可以包括一通路,在上述组件之间传送信息。
56.通信接口104,可以是任何收发器一类的装置(如天线等),用于与其他设备或通信网络通信,例如以太网,ran,无线局域网(wireless local area networks,wlan)等。
57.存储器103,可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
58.在本实施方式中,存储器103可以独立存在,通过通信线路102与处理器101相连接。存储器103也可以和处理器101集成在一起。本技术实施方式提供的存储器103通常可以
具有非易失性。其中,存储器103用于存储执行本技术方案的计算机执行指令,并由处理器101来控制执行。处理器101用于执行存储器103中存储的计算机执行指令,从而实现本技术下述实施方式中提供的方法。
59.在可选的实施方式中,计算机执行指令也可以称之为应用程序代码,本技术对此不作具体限定。
60.在可选的实施方式中,处理器101可以包括一个或多个cpu,例如图1中的cpu0和cpu1。
61.在可选的实施方式中,基于多数据对齐的数据发送装置或基于多数据对齐的数据接收装置也可以包括多个处理器,例如图1中的处理器101和处理器107。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
62.在可选的实施方式中,若基于多数据对齐的数据发送装置或基于多数据对齐的数据接收装置为服务器,则基于多数据对齐的数据发送装置或基于多数据对齐的数据接收装置还可以包括输出设备105和输入设备106。输出设备105和处理器101通信,可以以多种方式来显示信息。例如,输出设备105可以是液晶显示器(liquid crystal display,lcd),发光二级管(light emitting diode,led)显示设备,阴极射线管(cathode ray tube,crt)显示设备,或投影仪(projector)等。输入设备106和处理器101通信,可以以多种方式接收用户的输入。例如,输入设备106可以是鼠标、键盘、触摸屏设备或传感设备等。
63.上述的基于多数据对齐的数据发送装置或基于多数据对齐的数据接收装置可以是一个通用设备或者是一个专用设备。本技术实施方式不限定基于多数据对齐的数据发送装置或基于多数据对齐的数据接收装置的装置类型。
64.以下,将对本技术所公开的基于多数据对齐的数据发送方法进行说明:
65.参阅图2,图2为本技术实施方式提供的一种基于多数据对齐的数据发送方法的流程示意图。该基于多数据对齐的数据发送方法包括以下步骤:
66.201:获取t个待发送数据。
67.在本实施方式中,t为大于0的正整数。简单而言,在本实施方式中,对该t个待发送数据没有任何要求,即,任意数据均可通过本技术所提供的基于多数据对齐的数据发送方法进行发送。
68.202:对t个待发送数据中的每个待发送数据进行二进制转化,得到t个第一二进制数据串。
69.在本实施方式中,该t个第一二进制数据串与t个待发送数据一一对应。
70.203:将t个第一二进制数据串竖向堆叠,得到第一矩阵。
71.在本实施方式中,将以t等于3的情况为例,对本技术所提供的基于多数据对齐的数据发送方法进行说明。示例性的,现有3个待发送数据dcm、mp4和pdf,分别对其进行二进制化后,得到如下所示的3个第一二进制数据串:
72.dcm=》01010011;
73.mp4=》10110011;
74.pdf=》00101001;
75.将该3个第一二进制数据串进行竖向堆叠后,可以得到如下所示的第一矩阵:
[0076][0077]
204:对第一矩阵进行多次行位移处理,得到第二矩阵。
[0078]
在本实施方式中,提供了一种对第一矩阵进行多次行位移处理,得到第二矩阵的方法,如图3所示,该方法包括:
[0079]
301:确定第i次行位移处理的起始矩阵a,将起始矩阵a中的任意一行向左或向右位移一位,得到位移矩阵b。
[0080]
在本实施方式中,起始矩阵a中元素完全相同的列的数量小于第一阈值,i为大于或等于1的整数,且当i=1时,起始矩阵a为第一矩阵。
[0081]
302:确定位移矩阵b中元素完全相同的列的数量。
[0082]
303:当位移矩阵b中元素完全相同的列的数量大于或等于第一阈值时,将位移矩阵b作为第二矩阵。
[0083]
304:当位移矩阵b中元素完全相同的列的数量小于第一阈值时,将位移矩阵b作为第i+1次行位移处理的起始矩阵进行第i+1次行位移处理,直至进行多次行位移处理后,得到第二矩阵。
[0084]
示例性的,现定第一阈值为4,沿用上述示例,对第一矩阵中的每一行进行位移后,可以得到如下矩阵:
[0085][0086]
其中,r表示右移一位。
[0087]
可见,其中元素完全相同的列有第三列“111”、第四列“000”、第五列“111”和第七列“000”共4列。
[0088]
在可选的实施方式中,还提供了另一种对第一矩阵进行多次行位移处理,得到第二矩阵的方法,如图4所示,该方法包括:
[0089]
401:确定第j次行位移处理的起始矩阵c,将起始矩阵c中的任意一行向左或向右位移一位,得到位移矩阵d。
[0090]
在本实施方式中,起始矩阵c中元素完全相同的列的数量小于第一阈值,j为大于或等于1的整数,且当j=1时,起始矩阵c为第一矩阵。
[0091]
402:在位移矩阵d中确定目标列的数量。
[0092]
在本实施方式中,目标列为位移矩阵d中,矩阵列中连续相同的元素的个数大于第二阈值的矩阵列。
[0093]
示例性的,对于列“0011101100000110101”,其最大的连续的相同元素分别为:【00,111,0,11,00000,11,0,1,0,1】,对应的个数分别为:【2,3,1,2,5,2,1,1,1,1】。因此,当第二阈值为4时,由于列“0011101100000110101”中包含连续的相同元素“00000”,其个数为5大于第二阈值,因此,该列可以视为符合要求的目标列。
[0094]
403:当位移矩阵d中的目标列的数量大于或等于第一阈值时,将位移矩阵d作为第二矩阵。
[0095]
404:当位移矩阵d中的目标列的数量小于第一阈值时,将位移矩阵d作为第j+1次行位移处理的起始矩阵进行第j+1次行位移处理,直至进行多次行位移处理后,得到第二矩阵。
[0096]
205:将第二矩阵按列拆分,以得到r个第二二进制数据串。
[0097]
在本实施方式中,r为大于0的正整数。示例性的,沿用上述示例,对第二矩阵按列拆分后可以得到10个第二二进制数据串,具体如下:【0,00,111,000,111,010,000,101,11,1】。
[0098]
206:分别对r个第二二进制数据串中每个第二二进制数据串进行多次字符扫描处理,得到与r个第二二进制数据串一一对应的r个简化数据串。
[0099]
在本实施方式中,由于,位移操作,使得拆分所得的r个第二二进制数据串中每个第二二进制数据串中会存在大量的同类冗余位,且同时也会存在由相同元素组成的第二二进制数据串,例如:111或000。基于此,得到的r个第二二进制数据串的数据结构更为简单,规律性强。因此,将原本的发送t个待发送数据,转化为发送r个第二二进制数据串,可以有效提升发送过程中对数据的处理效率,继而提升网络传输速度。
[0100]
基于此,在本实施方式中,可以针对每个第二二进制数据串中会存在大量的同类冗余位,且同时也会存在由相同元素组成的第二二进制数据串的特性,对每个第二二进制数据串进行简化处理,以进一步的提升网络传输速度。
[0101]
具体而言,本实施方式提供了一种分别对r个第二二进制数据串中每个第二二进制数据串进行多次字符扫描处理,得到r个简化数据串的方法,如图5所示,该方法包括:
[0102]
501:从第k次字符扫描处理的起始字符e开始,依次向右遍历每个第二二进制数据串,直至确定出结束字符f。
[0103]
在本实施方式中,结束字符f为第k次字符扫描处理过程中第一个取值与起始字符e不同的字符,或结束字符f为每个第二二进制数据串的最后一个字符,k为大于或等于1的整数,且当k=1时,起始字符e为每个第二二进制数据串的第一字符;
[0104]
502:当结束字符f为第k次字符扫描处理过程中第一个取值与起始字符e不同的字符时,设置第k次字符扫描处理的扫描结果为,起始字符e与结束字符f之间的字符数加一,并将结束字符f作为第k+1次字符扫描处理的开始字符进行第k+1次字符扫描处理,直至进行多次字符扫描处理后,得到每个第二二进制数据串对应的简化数据串。
[0105]
503:当起始字符e为每个第二二进制数据串的最后一个字符时,设置第k次字符扫描处理的扫描结果为1,并将多次字符扫描处理的处理结果按照多次字符扫描处理的处理顺序排序,得到每个第二二进制数据串对应的简化数据串。
[0106]
504:当结束字符f为每个第二二进制数据串的最后一个字符时,设置第k次字符扫描处理的扫描结果为,起始字符e与结束字符f之间的字符数加二,并将多次字符扫描处理的处理结果按照多次字符扫描处理的处理顺序排序,得到每个第二二进制数据串对应的简化数据串。
[0107]
示例性的,沿用上述n等于3的示例,得到的10个第二二进制数据串为:【0,00,111,000,111,010,000,101,11,1】。对于第一个第二二进制数据串“0”,第1次字符扫描处理的起
始字符e为第一字符“0”,同时,第一字符“0”又是最后一个字符,因此,记录第一个第二二进制数据串“0”对应的简化数据串为“1”。
[0108]
对于第二个第二二进制数据串“00”,第1次字符扫描处理的起始字符e为第一字符“0”,依次向右遍历后直到最后一个字符也未发现第一个与起始字符e不同的字符,则将第二字符“0”作为结束字符f,同时记录第二个第二二进制数据串“00”对应的简化数据串为“2”(第一字符与第二字符之间的字符数加二,即0+2)。
[0109]
对于第三个第二二进制数据串“111”,第1次字符扫描处理的起始字符e为第一字符“1”,依次向右遍历后直到最后一个字符也未发现第一个与起始字符e不同的字符,则将第三字符“1”作为结束字符f,同时记录第一个第二二进制数据串“111”对应的简化数据串为“3”(第一字符与第三字符之间的字符数加二,即1+2)。
[0110]
通过上述方法,可以依次对该10个第二二进制数据串进行简化,得到10个简化数据串:【1,2,3,3,3,111,3,111,2,1】。
[0111]
207:根据每个第二二进制数据串在第二矩阵中的排列位置,将r个简化数据串纵向拼接,得到目标数据串。
[0112]
示例性的,沿用上述示例,将10个简化数据串:【1,2,3,3,3,111,3,111,2,1】纵向拼接,即可得到目标数据串“12333111311121”。
[0113]
由此,当t为数百甚至数千时,即在同时发送数百或数千个符合要求的数据时,通过上述的拆分转化,可以对数据进行极大的压缩,且该压缩无需复杂的压缩计算,极大的降低了计算资源的消耗和压缩时间。且通过每个压缩分片也无法直接还原出对应的数据内容,提升了数据的安全性。
[0114]
在可选的实施方式中,可以将每256个数据设为一组进行发送,由此,当出现由相同元素组成的第二二进制数据串,即全由0或1组成的第二二进制数据串时,其简化结果为256,该简化结果只需占用网络中的1个字节,极大的降低了对网络的带宽需求,进一步的提升了网络传输速度。
[0115]
208:将目标数据串发送至数据接收端。
[0116]
在本实施方式中,提供了一种将目标数据串发送至数据接收端的方法,如图6所示,该方法包括:
[0117]
601:将目标数据串进行数据分割,得到至少一个数据分片。
[0118]
在本实施方式中,首先,可以确定分割位数q,然后,将该目标数据串按照分割位数q分割为位数相等的至少一个数据分片。示例性的,q可以为任意大于1的整数,在本实施方式中,将以q等于2的情况为例,对本技术所提供的将目标数据串发送至数据接收端的方法进行说明。
[0119]
具体而言,当q等于2时,说明分割位数设置为2,此时,可以将目标数据串每2位分成一组,进行数据拆分。例如,沿用上述示例,目标数据串为“12333111311121”,在分割位数为2的情况下,可以分割为【12,33,31,11,31,11,21】。
[0120]
在可选的实施方式中,分割位数也可以是一个动态的、循环的数值。例如,可以将分割位数视为一个分割序列【m,x,y】,继而对二进制数据进行数据分割时,可以先分割m位,再分割x位,再分割y位,然后再次分割m位,一直循环置该二进制数据被分割完成。具体而言,当分割序列【1,2,3】,目标数据串为“321332133312”时,可以得到分割结果【3,21,332,
1,33,312】。
[0121]
602:根据数据分片中每个数据分片的位数,确定至少一个发送频率。
[0122]
在本实施方式中,首先可以根据每个数据分片的位数,确定需要的发送频率的数量,即第一数量。示例性的,该第一数量可以与每个数据分片的位数相同,即第一数量为q。当然,该第一数量和每个数据分片的位数之间也可以是其他函数关系,例如,在一种可能的实施方式中,第一数量l与每个数据分片的位数q之间的关系可以通过公式

表示:
[0123]
l=2q.........

[0124]
在本实施方式中,将以第一数量为q的情况为例,对本技术所提供的基于多频率的数据发送方法进行说明。基于此,沿用上述q等于2的示例,可以确定第一数量也为2,因此,可以在预设的发送频率库中随机选择2个发送频率,作为该至少一个发送频率。
[0125]
603:根据每个数据分片在目标数据串中的排列位置,在至少一个发送频率中确定每个数据分片对应的第一发送频率。
[0126]
在本实施方式中,可以将通过步骤602得到的至少一个发送频率进行随机排序,从而令每个数据分片按照在目标数据串中的排列位置,依次循环选取排序后的至少一个发送频率中的一个发送频率作为自身对应的发送频率。
[0127]
具体而言,沿用上述q等于2的示例,在该示例中,选出了2个发送频率,分别命名为发送频率a和发送频率b,对其进行排序后得到序列【发送频率a,发送频率b】。目标数据串“12333111311121”,对应的数据分片序列为【12,33,31,11,31,11,21】。基于此,确定第一个数据分片“12”对应发送频率a,第二个数据分片“33”对应发送频率b,第三个数据分片“31”对应发送频率a,第四个数据分片“11”对应发送频率b,第五个数据分片“31”对应发送频率a,第六个数据分片“11”对应发送频率b,第五个数据分片“21”对应发送频率a。
[0128]
604:根据预设的转化表,以及每个数据分片对应的第一发送频率,分别对每个数据分片进行数据转换,得到至少一个转化结果。
[0129]
在本实施方式中,转化表记录了不同的数据分片在不同的发送频率下对应的转化结果,至少一个转化结果与至少一个数据分片一一对应。
[0130]
605:将至少一个转化结果中的每个转化结果按照每个转化结果对应的第一发送频率依次发送至数据接收端。
[0131]
在可选的实施方式中,也可以不对r个第二二进制数据串进行简化,直接将r个第二二进制数据串根据每个第二二进制数据串在第一矩阵中的排列位置,将r个第二二进制数据串串纵向拼接,得到目标数据串。在根据上述步骤601-605的方法将目标数据串发送至数据接收端。
[0132]
此外,参阅图7,图7为本技术实施方式提供的一种基于多数据对齐的数据接收方法的流程示意图。该基于多数据对齐的数据接收方法包括以下步骤:
[0133]
701:从数据发送端接收待还原数据。
[0134]
在本实施方式中,待还原数据可以包括:目标数据串和描述文件。
[0135]
702:根据描述文件对目标数据串进行数据拆分,得到x个简化数据串。
[0136]
703:根据描述文件和预设的转化表,将x个简化数据串中的每个简化数据串进行数据转化,得到x个第三二进制数据串。
[0137]
在本实施方式中,x个第三二进制数据串与x个简化数据串一一对应。
[0138]
704:将x个第三二进制数据串中的每个第三二进制数据串中的元素,按照在每个第三二进制数据串中排列位置从上到下依次排列,得到x个竖向数据串。
[0139]
在本实施方式中,x个竖向数据串与x个第三二进制数据串一一对应。
[0140]
705:根据每个第三二进制数据串的标号,将x个竖向数据串横向拼接,得到第三矩阵。
[0141]
706:根据描述文件对第三矩阵进行多次行位移还原,得到第四矩阵。
[0142]
707:按照从上到下的顺序,将第四矩阵按行拆分,得到y个第四二进制数据串。
[0143]
708:对y个第四二进制数据串中的每个第四二进制数据串进行数据还原,得到y个原始数据。
[0144]
在本实施方式中,y个原始数据与y个二进制数据一一对应。
[0145]
综上所述,本发明所提供的基于多数据对齐的数据发送方法中,通过将t个待发送数据二进制化后竖向堆叠,得到第一矩阵。再对第一矩阵进行多次行位移处理,得到元素完全相同的列的数量大于或等于第一阈值的第二矩阵。继而将第二矩阵按列拆分,以得到r个第二二进制数据串,最后将r个第二二进制数据串发送至数据接收端。由此,由于通过多次位移处理,使得得到的第二矩阵中会存在大量的同类冗余位,且同时也会存在元素完全相同的列。基于此,将第二矩阵按列拆分后,得到的r个第二二进制数据串的数据结构更为简单,规律性强,可以有效提升发送过程中对数据的处理效率,继而提升网络传输速度。此外,由于数据传输过程中,存储单元,例如内存单元(ram)能够以原始大小处理位,因此,通常是通过发送端和接收端的存储单元完成。而在本技术中,通过将待发送数据转化为二进制数据,实现了数据的对位操作,从而在发送端和接收端都不必占用额外的内存,避免了数据分割在磁盘集群中的磁盘写入、索引等问题,继而进一步提升了网络传输速度。
[0146]
参阅图8,图8为本技术实施方式提供的一种基于多数据对齐的数据发送装置的功能模块组成框图。如图8所示,该基于多数据对齐的数据发送装置800包括:第一接收模块801、第一处理模块802和发送模块803;其中:
[0147]
第一接收模块801,用于获取t个待发送数据,其中,t为大于1的正整数;
[0148]
第一处理模块802,用于对t个待发送数据中的每个待发送数据进行二进制转化,得到t个第一二进制数据串,其中,t个第一二进制数据串与t个待发送数据一一对应;将t个第一二进制数据串竖向堆叠,得到第一矩阵;对第一矩阵进行多次行位移处理,得到第二矩阵;将第二矩阵按列拆分,以得到r个第二二进制数据串,其中,r为大于0的正整数;分别对r个第二二进制数据串中每个第二二进制数据串进行多次字符扫描处理,得到r个简化数据串,其中,得到r个简化数据串与r个第二二进制数据串一一对应;根据每个第二二进制数据串在第二矩阵中的排列位置,将r个简化数据串纵向拼接,得到目标数据串;
[0149]
发送模块803,用于将目标数据串发送至数据接收端。
[0150]
在本发明的实施方式中,在对第一矩阵进行多次行位移处理,得到第二矩阵方面,第一处理模块802,具体用于:
[0151]
确定第i次行位移处理的起始矩阵a,将起始矩阵a中的任意一行向左或向右位移一位,得到位移矩阵b,其中,起始矩阵a中元素完全相同的列的数量小于第一阈值,i为大于或等于1的整数,且当i=1时,起始矩阵a为第一矩阵;
[0152]
确定位移矩阵b中元素完全相同的列的数量;
[0153]
当位移矩阵b中元素完全相同的列的数量大于或等于第一阈值时,将位移矩阵b作为第二矩阵;
[0154]
当位移矩阵b中元素完全相同的列的数量小于第一阈值时,将位移矩阵b作为第i+1次行位移处理的起始矩阵进行第i+1次行位移处理,直至进行多次行位移处理后,得到第二矩阵。
[0155]
在本发明的实施方式中,在对第一矩阵进行多次行位移处理,得到第二矩阵方面,第一处理模块802,具体用于:
[0156]
确定第j次行位移处理的起始矩阵c,将起始矩阵c中的任意一行向左或向右位移一位,得到位移矩阵d,其中,起始矩阵c中元素完全相同的列的数量小于第一阈值,j为大于或等于1的整数,且当j=1时,起始矩阵c为第一矩阵;
[0157]
在位移矩阵d中确定目标列的数量,其中,目标列为位移矩阵d中,矩阵列中连续相同的元素的个数大于第二阈值的矩阵列;
[0158]
当位移矩阵d中的目标列的数量大于或等于第一阈值时,将位移矩阵d作为第二矩阵;
[0159]
当位移矩阵d中的目标列的数量小于第一阈值时,将位移矩阵d作为第j+1次行位移处理的起始矩阵进行第j+1次行位移处理,直至进行多次行位移处理后,得到第二矩阵。
[0160]
在本发明的实施方式中,在分别对r个第二二进制数据串中每个第二二进制数据串进行多次字符扫描处理,得到r个简化数据串方面,第一处理模块802,具体用于:
[0161]
从第k次字符扫描处理的起始字符e开始,依次向右遍历每个第二二进制数据串,直至确定出结束字符f,其中,结束字符f为第k次字符扫描处理过程中第一个取值与起始字符e不同的字符,或结束字符f为每个第二二进制数据串的最后一个字符,k为大于或等于1的整数,且当k=1时,起始字符e为每个第二二进制数据串的第一字符;
[0162]
当结束字符f为第k次字符扫描处理过程中第一个取值与起始字符e不同的字符时,设置第k次字符扫描处理的扫描结果为,起始字符e与结束字符f之间的字符数加一,并将结束字符f作为第k+1次字符扫描处理的开始字符进行第k+1次字符扫描处理,直至进行多次字符扫描处理后,得到每个第二二进制数据串对应的简化数据串;
[0163]
当起始字符e为每个第二二进制数据串的最后一个字符时,设置第k次字符扫描处理的扫描结果为1,并将多次字符扫描处理的处理结果按照多次字符扫描处理的处理顺序排序,得到每个第二二进制数据串对应的简化数据串;
[0164]
当结束字符f为每个第二二进制数据串的最后一个字符时,设置第k次字符扫描处理的扫描结果为,起始字符e与结束字符f之间的字符数加二,并将多次字符扫描处理的处理结果按照多次字符扫描处理的处理顺序排序,得到每个第二二进制数据串对应的简化数据串。
[0165]
同时,参阅图9,图9为本技术实施方式提供的一种基于多数据对齐的数据接收装置的功能模块组成框图。如图9所示,该基于多数据对齐的数据接收装置900包括:第二接收模块901、第二处理模块902和还原模块903;其中:
[0166]
第二接收模块901,用于从数据发送端接收待还原数据,其中,待还原数据包括:目标数据串和描述文件;
[0167]
第二处理模块902,用于根据描述文件对目标数据串进行数据拆分,得到x个简化
数据串;根据描述文件和预设的转化表,将x个简化数据串中的每个简化数据串进行数据转化,得到x个第三二进制数据串,其中,x个第三二进制数据串与x个简化数据串一一对应;将x个第三二进制数据串中的每个第三二进制数据串中的元素,按照在每个第三二进制数据串中排列位置从上到下依次排列,得到x个竖向数据串,其中,x个竖向数据串与x个第三二进制数据串一一对应;根据每个第三二进制数据串的标号,将x个竖向数据串横向拼接,得到第三矩阵;根据描述文件对第三矩阵进行多次行位移还原,得到第四矩阵;按照从上到下的顺序,将第四矩阵按行拆分,得到y个第四二进制数据串;
[0168]
还原模块903,用于对y个第四二进制数据串中的每个第四二进制数据串进行数据还原,得到y个原始数据,其中,y个原始数据与y个二进制数据一一对应。
[0169]
参阅图10,图10为本技术实施方式提供的一种基于多数据对齐的数据发送设备的结构示意图。如图10所示,该基于多数据对齐的数据发送设备1000包括收发器1001、处理器1002和存储器1003。它们之间通过总线1004连接。存储器1003用于存储计算机程序和数据,并可以将存储器1003存储的数据传输给处理器1002。
[0170]
处理器1002用于读取存储器1003中的计算机程序执行以下操作:
[0171]
获取t个待发送数据,其中,t为大于1的正整数;
[0172]
对t个待发送数据中的每个待发送数据进行二进制转化,得到t个第一二进制数据串,其中,t个第一二进制数据串与t个待发送数据一一对应;
[0173]
将t个第一二进制数据串竖向堆叠,得到第一矩阵;
[0174]
对第一矩阵进行多次行位移处理,得到第二矩阵;
[0175]
将第二矩阵按列拆分,以得到r个第二二进制数据串,其中,r为大于0的正整数;
[0176]
分别对r个第二二进制数据串中每个第二二进制数据串进行多次字符扫描处理,得到r个简化数据串,其中,得到r个简化数据串与r个第二二进制数据串一一对应;
[0177]
根据每个第二二进制数据串在第二矩阵中的排列位置,将r个简化数据串纵向拼接,得到目标数据串;
[0178]
将目标数据串发送至数据接收端。
[0179]
在本发明的实施方式中,在对第一矩阵进行多次行位移处理,得到第二矩阵方面,处理器1002,具体用于执行以下操作:
[0180]
确定第i次行位移处理的起始矩阵a,将起始矩阵a中的任意一行向左或向右位移一位,得到位移矩阵b,其中,起始矩阵a中元素完全相同的列的数量小于第一阈值,i为大于或等于1的整数,且当i=1时,起始矩阵a为第一矩阵;
[0181]
确定位移矩阵b中元素完全相同的列的数量;
[0182]
当位移矩阵b中元素完全相同的列的数量大于或等于第一阈值时,将位移矩阵b作为第二矩阵;
[0183]
当位移矩阵b中元素完全相同的列的数量小于第一阈值时,将位移矩阵b作为第i+1次行位移处理的起始矩阵进行第i+1次行位移处理,直至进行多次行位移处理后,得到第二矩阵。
[0184]
在本发明的实施方式中,在对第一矩阵进行多次行位移处理,得到第二矩阵方面,处理器1002,具体用于执行以下操作:
[0185]
确定第j次行位移处理的起始矩阵c,将起始矩阵c中的任意一行向左或向右位移
一位,得到位移矩阵d,其中,起始矩阵c中元素完全相同的列的数量小于第一阈值,j为大于或等于1的整数,且当j=1时,起始矩阵c为第一矩阵;
[0186]
在位移矩阵d中确定目标列的数量,其中,目标列为位移矩阵d中,矩阵列中连续相同的元素的个数大于第二阈值的矩阵列;
[0187]
当位移矩阵d中的目标列的数量大于或等于第一阈值时,将位移矩阵d作为第二矩阵;
[0188]
当位移矩阵d中的目标列的数量小于第一阈值时,将位移矩阵d作为第j+1次行位移处理的起始矩阵进行第j+1次行位移处理,直至进行多次行位移处理后,得到第二矩阵。
[0189]
在本发明的实施方式中,在分别对r个第二二进制数据串中每个第二二进制数据串进行多次字符扫描处理,得到r个简化数据串方面,处理器1002,具体用于执行以下操作:
[0190]
从第k次字符扫描处理的起始字符e开始,依次向右遍历每个第二二进制数据串,直至确定出结束字符f,其中,结束字符f为第k次字符扫描处理过程中第一个取值与起始字符e不同的字符,或结束字符f为每个第二二进制数据串的最后一个字符,k为大于或等于1的整数,且当k=1时,起始字符e为每个第二二进制数据串的第一字符;
[0191]
当结束字符f为第k次字符扫描处理过程中第一个取值与起始字符e不同的字符时,设置第k次字符扫描处理的扫描结果为,起始字符e与结束字符f之间的字符数加一,并将结束字符f作为第k+1次字符扫描处理的开始字符进行第k+1次字符扫描处理,直至进行多次字符扫描处理后,得到每个第二二进制数据串对应的简化数据串;
[0192]
当起始字符e为每个第二二进制数据串的最后一个字符时,设置第k次字符扫描处理的扫描结果为1,并将多次字符扫描处理的处理结果按照多次字符扫描处理的处理顺序排序,得到每个第二二进制数据串对应的简化数据串;
[0193]
当结束字符f为每个第二二进制数据串的最后一个字符时,设置第k次字符扫描处理的扫描结果为,起始字符e与结束字符f之间的字符数加二,并将多次字符扫描处理的处理结果按照多次字符扫描处理的处理顺序排序,得到每个第二二进制数据串对应的简化数据串。
[0194]
同时,参阅图11,图11为本技术实施方式提供的一种基于多数据对齐的数据接收设备的结构示意图。如图11所示,该基于多数据对齐的数据接收设备1100包括收发器1101、处理器1102和存储器1103。它们之间通过总线1104连接。存储器1103用于存储计算机程序和数据,并可以将存储器1103存储的数据传输给处理器1102。
[0195]
处理器1102用于读取存储器1103中的计算机程序执行以下操作:
[0196]
从数据发送端接收待还原数据,其中,待还原数据包括:目标数据串和描述文件;
[0197]
根据描述文件对目标数据串进行数据拆分,得到x个简化数据串;
[0198]
根据描述文件和预设的转化表,将x个简化数据串中的每个简化数据串进行数据转化,得到x个第三二进制数据串,其中,x个第三二进制数据串与x个简化数据串一一对应;
[0199]
将x个第三二进制数据串中的每个第三二进制数据串中的元素,按照在每个第三二进制数据串中排列位置从上到下依次排列,得到x个竖向数据串,其中,x个竖向数据串与x个第三二进制数据串一一对应;
[0200]
根据每个第三二进制数据串的标号,将x个竖向数据串横向拼接,得到第三矩阵;
[0201]
根据描述文件对第三矩阵进行多次行位移还原,得到第四矩阵;
[0202]
按照从上到下的顺序,将第四矩阵按行拆分,得到y个第四二进制数据串;
[0203]
对y个第四二进制数据串中的每个第四二进制数据串进行数据还原,得到y个原始数据,其中,y个原始数据与y个二进制数据一一对应。
[0204]
应理解,本技术中的基于多数据对齐的数据发送装置和基于多数据对齐的数据接收装置可以包括智能手机(如android手机、ios手机、windows phone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备mid(mobile internet devices,简称:mid)、机器人或穿戴式设备等。上述基于多数据对齐的数据发送装置和基于多数据对齐的数据接收装置仅是举例,而非穷举,包含但不限于上述基于多数据对齐的数据发送装置和基于多数据对齐的数据接收装置。在实际应用中,基于多数据对齐的数据发送装置和基于多数据对齐的数据接收装置还可以包括:智能车载终端、计算机设备等等。
[0205]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施方式或者实施方式的某些部分所述的方法。
[0206]
因此,本技术实施方式还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如上述方法实施方式中记载的任何一种基于多数据对齐的数据发送方法和基于多数据对齐的数据接收方法的部分或全部步骤。例如,所述存储介质可以包括硬盘、软盘、光盘、磁带、磁盘、优盘、闪存等。
[0207]
本技术实施方式还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施方式中记载的任何一种基于多数据对齐的数据发送方法和基于多数据对齐的数据接收方法的部分或全部步骤。
[0208]
需要说明的是,对于前述的各方法实施方式,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施方式均属于可选的实施方式,所涉及的动作和模块并不一定是本技术所必须的。
[0209]
在上述实施方式中,对各个实施方式的描述都各有侧重,某个实施方式中没有详述的部分,可以参见其他实施方式的相关描述。
[0210]
在本技术所提供的几个实施方式中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
[0211]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
[0212]
另外,在本技术各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
[0213]
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施方式所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0214]
本领域普通技术人员可以理解上述实施方式的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:read-only memory,简称:rom)、随机存取器(英文:random access memory,简称:ram)、磁盘或光盘等。
[0215]
以上对本技术实施方式进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施方式的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1