CN105068949B - 一种数据传输方法及装置 - Google Patents
一种数据传输方法及装置 Download PDFInfo
- Publication number
- CN105068949B CN105068949B CN201510435876.3A CN201510435876A CN105068949B CN 105068949 B CN105068949 B CN 105068949B CN 201510435876 A CN201510435876 A CN 201510435876A CN 105068949 B CN105068949 B CN 105068949B
- Authority
- CN
- China
- Prior art keywords
- data
- fusion
- setting
- data stream
- binary
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种数据传输方法及装置,方法包括:设定二进制数据流与结构体的转换关系;设定结构体的融合规则,建立数据空间;将待传输的一个以上的二进制数据流,载入至数据空间中;根据设定的二进制数据流与结构体的转换关系,将载入一个以上的二进制数据流分别转换为相对应地结构体;根据设定的融合规则,将相邻结构体进行融合;将融合后的目标结构体转换为二进制的目标数据流,并发送给接收端,以使接收端将接收到的目标数据流进行解析,并执行相应操作。根据本方案,提高了数据传输的效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种数据传输方法及装置。
背景技术
随着计算机软硬件技术的不断发展,特别是云计算技术的广泛普及,传统的以二进制数据为主体的数据传输/存储方式已经无法应对越来越复杂、庞大的信息处理需求。这是因为在各部件之间进行复杂数据的传输时,可能会由于硬件带宽的制约、I/O访问速度的限制,容易造成传输通道拥挤、甚至数据丢失的问题。
传统的数据传输方式通过在各部件之间内置缓存系统来解决上述问题,在进行复杂数据的传输且造成传输通道拥挤时,可以将复杂数据缓存到该缓存系统中,当传输通道有足够带宽来传输缓存系统中的复杂数据时,则从该缓存系统中将复杂数据继续进行传输。
然而,传统的数据传输方式虽然解决了传输通道拥挤甚至数据丢失的问题,但是数据量所占用的网络带宽依然不变,因此传输效率较低。
发明内容
有鉴于此,本发明提供一种数据传输方法及装置,以提高数据传输的效率。
本发明实施例提供了一种数据传输方法,设定二进制数据流与结构体的转换关系;设定结构体的融合规则,包括:
建立数据空间;
将待传输的一个以上的二进制数据流,载入至所述数据空间中;
根据设定的二进制数据流与结构体的转换关系,将载入一个以上的二进制数据流分别转换为相对应地结构体;
根据设定的所述融合规则,将相邻结构体进行融合;
将融合后的目标结构体转换为二进制的目标数据流,并发送给接收端,以使所述接收端将接收到的所述目标数据流进行解析,并执行相应操作。
优选地,所述设定二进制数据流与结构体的转换关系,包括:
构建立方体,将数据流的每一个二进制数值按照设定标识方式标识到所述立方体的每一个个顶点上,其中,被标识的立方体为二进制数据流转换的所述结构体。
优选地,
所述建立数据空间,包括:设置数据空间的大小及起始坐标,并根据设置的数据空间的大小及起始坐标,新建数据空间;
或,
所述建立数据空间,包括:设置数据空间的大小及起始坐标,确定既有数据空间,并根据设置的数据空间的大小及起始坐标将所述既有数据空间进行修改。
优选地,
所述设定结构体的融合规则,包括:设置是否允许结构体旋转,和/或,是否允许结构体多面融合;
若设置不允许结构体旋转,所述将相邻结构体进行融合,包括:当相邻结构体上的相邻面上在设定顺序顶点数值相等时,将该相邻结构体的相邻面以对应相应顶点数值相等的方式融合为同一个融合面的目标结构体;
若设置允许结构体旋转,所述将相邻结构体进行融合,包括:当相邻结构体上分别包括在设定顺序上顶点数值相等的子融合面时,将该相邻结构体各自的子融合面以对应顶点数值相等的方式融合为同一个融合面的目标结构体;
进一步包括:若设置不允许结构体多面融合,则对于每一个结构体最多融合一次;若设置允许结构体多面融合,则对于每一个结构体最多融合两次。
优选地,
进一步包括:根据二进制数据流的类型,设置各个类型分别对应的融合轮数,在将相邻结构体进行融合之后达到对应的融合轮数时,执行所述将融合后的目标结构体转换为二进制的目标数据流;
其中,二进制数据流的类型包括:普通数据、存储数据、可执行数据和网络数据中的一种或多种;
其中,在二进制数据流的类型包括普通数据时,设置普通数据对应的融合轮数为1轮;在二进制数据流的类型包括存储数据时,设置存储数据对应的融合轮数为2轮;在二进制数据流的类型包括可执行数据时,设置可执行数据对应的融合轮数为0轮;在二进制数据流的类型包括网络数据时,设置网络数据对应的融合轮数为2轮。
优选地,进一步包括:
N=(M/2)+0.5
其中,M用于表征相邻M个结构体相邻,N用于表征在相邻M个结构体相等时进行的最大融合轮数。
本发明实施例还提供了一种数据传输装置,包括:
存储单元,用于存储二进制数据流与结构体的转换关系,以及存储结构体的融合规则;
建立单元,用于建立数据空间;
载入单元,用于将待传输的一个以上的二进制数据流,载入至所述数据空间中;
转换单元,用于根据设定的二进制数据流与结构体的转换关系,将载入一个以上的二进制数据流分别转换为相对应地结构体;
融合单元,用于根据设定的所述融合规则,将相邻结构体进行融合;
发送单元,用于将融合后的目标结构体转换为二进制的目标数据流,并发送给接收端,以使所述接收端将接收到的所述目标数据流进行解析,并执行相应操作。
优选地,
所述存储单元,用于构建立方体,将数据流的每一个二进制数值按照设定标识方式标识到所述立方体的每一个个顶点上,其中,被标识的立方体为二进制数据流转换的所述结构体;
和/或,
所述建立单元,用于设置数据空间的大小及起始坐标,并根据设置的数据空间的大小及起始坐标,新建数据空间;
或,
所述建立单元,用于设置数据空间的大小及起始坐标,确定既有数据空间,并根据设置的数据空间的大小及起始坐标将所述既有数据空间进行修改。
优选地,
所述存储单元,用于存储是否允许结构体旋转,和/或,是否允许结构体多面融合;
若设置不允许结构体旋转,所述融合单元,用于当相邻结构体上的相邻面上在设定顺序顶点数值相等时,将该相邻结构体的相邻面以对应相应顶点数值相等的方式融合为同一个融合面的目标结构体;
若设置允许结构体旋转,所述融合单元,用于当相邻结构体上分别包括在设定顺序上顶点数值相等的子融合面时,将该相邻结构体各自的子融合面以对应顶点数值相等的方式融合为同一个融合面的目标结构体;
所述融合单元,用于若设置不允许结构体多面融合,则对于每一个结构体最多融合一次;若设置允许结构体多面融合,则对于每一个结构体最多融合两次。
优选地,
所述存储单元,用于根据二进制数据流的类型,设置存储各个类型分别对应的融合轮数,在将相邻结构体进行融合之后达到对应的融合轮数时,触发所述转换单元执行所述将融合后的目标结构体转换为二进制的目标数据流;
其中,二进制数据流的类型包括:普通数据、存储数据、可执行数据和网络数据中的一种或多种;
所述存储单元,用于在二进制数据流的类型包括普通数据时,设置普通数据对应的融合轮数为1轮;在二进制数据流的类型包括存储数据时,设置存储数据对应的融合轮数为2轮;在二进制数据流的类型包括可执行数据时,设置可执行数据对应的融合轮数为0轮;在二进制数据流的类型包括网络数据时,设置网络数据对应的融合轮数为2轮;
进一步包括:
N=(M/2)+0.5
其中,M用于表征相邻M个结构体相邻,N用于表征在相邻M个结构体相等时进行的最大融合轮数。
本发明实施例提供了一种数据传输方法及装置,通过建立数据空间,以在该数据空间内将二进制数据流转换为相应地结构体,可以将不能够在进行压缩的二进制数据流以结构体的形式在数据空间中进行融合,并继续将融合后的结构体转换为二进制数据流,此时转换后的二进制数据流所占用的数据空间相对于之前更小,从而可以提高数据传输的效率。
附图说明
图1是本发明实施例提供的方法流程图;
图2是本发明另一实施例提供的方法流程图;
图3是本发明实施例提供的二进制数据转换后的结构体示意图;
图4是本发明实施例提供的相邻两个结构体的融合方式示意图;
图5是本发明另一实施例提供的相邻两个结构体的融合方式示意图;
图6是本发明实施例提供的相邻三个结构体的融合方式示意图;
图7是本发明另一实施例提供的相邻三个结构体的融合方式示意图;
图8是本发明实施例提供的第一轮融合示意图;
图9是本发明实施例提供的第二轮融合示意图;
图10是本发明实施例提供的装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种数据传输方法,设定二进制数据流与结构体的转换关系;设定结构体的融合规则,该方法可以包括以下步骤:
步骤101:建立数据空间。
步骤102:将待传输的一个以上的二进制数据流,载入至数据空间中。
步骤103:根据设定的二进制数据流与结构体的转换关系,将载入一个以上的二进制数据流分别转换为相对应地结构体。
步骤104:根据设定的融合规则,将相邻结构体进行融合。
步骤105:将融合后的目标结构体转换为二进制形式的目标数据流,并发送给接收端,以使接收端将接收到的目标数据流进行解析,并执行相应操作。
根据上述方案,通过建立数据空间,以在该数据空间内将二进制数据流转换为相应地结构体,可以将不能够在进行压缩的二进制数据流以结构体的形式在数据空间中进行融合,并继续将融合后的结构体转换为二进制数据流,此时转换后的二进制数据流所占用的数据空间相对于之前更小,从而可以提高数据传输的效率。
由于传统的数据传输是以二进制数据流进行传输的,每一个二进制数包括8位数字(0和/或1),那么可以通过构建立方体,将数据流的每一个二进制数值按照第一设定顺序标识到立方体的每一个个顶点上,其中,被标识的立方体为二进制数据流转换的结构体,从而实现了将二进制数据流抽象为结构体的形式,以实现后续结构体的融合,以减少二进制数据流所占用的数据空间。
考虑到结构体是一个在数据空间中的立方体,因此,可以设定结构体的融合规则,即,设置是否允许结构体旋转,和/或,是否允许结构体多面融合。在将相邻结构体进行融合时,需要根据上述设定的融合规则进行融合。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图2所示,本发明实施例提供了一种数据传输方法,是一种发送端向接收端发送数据的方法,该方法可以包括以下步骤:
步骤201:设置数据空间的参数,并根据该参数进行初始化为数据空间。
在本实施例中,需要设置的数据空间的参数可以包括:数据空间的大小、容积和起始坐标。其中,数据空间的大小由待传输数据流的大小所决定,数据空间的容积和起始坐标由数据空间的大小所决定。例如,数据空间的大小为10,那么可以设置数据空间的起始坐标为:a(0,10,10)、b(10,10,10)、c(10,0,10)、d(0,0,10)、e(0,10,0)、f(10,10,0)、g(10,0,0)和h(0,0,0)。其中,a、b、c、d、e、f、g和h分别代表数据空间的8个顶点。
在本实施中,可以使用初始化数据融合模块根据设置的参数进行初始化,以建立数据空间。
其中,建立数据空间的方式可以包括以下两种:1、若包括一个既有数据空间,为了节约资源利用率,可以根据设置的数据空间的大小及起始坐标,将既有数据空间进行初始化,以对既有数据空间的大小及起始坐标进行修改。2、可以根据设置的数据空间的大小及起始坐标,进行数据空间初始化为数据空间。
步骤202:将待传输的一个以上的二进制数据流,载入至数据空间中。
在本实施例中,可以由数据空间由外部存储器中读取文件的二进制数据流。本实施例中,可以设定载入数据空间中的二进制数据流的单位为文件,每次向数据空间中载入一个完整的文件,当文件的大小超过数据空间的容载上限时,才需要将该文件进行分段载入。例如,文件a大小为1000MB,设数据空间的容积为100MB,那么需要分段载入文件a,可以将文件a分成10个数据段,每一个数据段可以为100MB,并在每次处理完毕之后保存处理结果,并及时清理数据空间。
步骤203:预先设定二进制数据流与结构体的转换关系,并根据该转换关系,将数据空间中的二进制数据流转换为相对应的结构体。
由于传统的数据传输方式以二进制数据流进行传输,为了减少数据空间的占用率,传统的方式最多可以将二进制数据流压缩一次,比如,压缩为zip.或rar.格式的文件,但压缩后的文件所占用的数据空间依然较大。
为了进一步减少二进制数据流的数据空间占用率,本实施例中,可以将二进制数据流以结构体的形式进行压缩,因此,可以设定二进制数据流与结构体的转换关系。
由于传统的数据传输是以二进制数据流进行传输的,每一个二进制数由8位数字(0和/或1)组成,其范围为0-255,即00000000-11111111,那么在本实施例中,可以通过构建立方体,将数据流的每一个二进制数值按照一个设定标识方式标识到立方体的每一个个顶点上,其中,被标识的立方体为二进制数据流转换后的结构体,从而实现了将二进制数据流抽象为结构体,以实现后续结构体的融合。
其中,该设定标识方式可以包括:在标识顶点过程中,可以选定起始标识点,并以设定顺序对结构体上的顶点依次进行标识。如图3所示,本实施例中,可以选定A顶点作为起点标识点,以顺时针方向对结构体上面四个顶点进行标识,可以选定B顶点作为起始标识点,以顺时针方向对结构体下面四个顶点进行标识。在本实施例中,发送端和接收端需要保存相同的标识方式,以保证融合前的结果与分解后的结构体相同。
由于一个文件中包括一个以上的二进制数据流,因此,以其中一个二进制数据流转换为相应地结构体为例,对上述标识方式进行说明。如图3所示,为一个二进制数据转换的结构体,根据上述标识方式可知,该二进制数据流为01010111,那么该二进制数据流转换成的对应结构体为结构体_87。
在本实施例中,可以预先设置二进制数据流转换为相应结构体后的坐标,然后根据设置的坐标进行转换。
步骤204:预先设定结构体的融合规则,并根据该融合规则将相邻结构体进行融合。
在本实施例中,可以设定如下结构体的融合规则:1、设置是否允许结构体旋转;和/或,2、是否允许结构体多面融合。
其中,若设定结构体的融合规则包括:不允许结构体旋转,那么可以将相邻结构体进行如下融合:当相邻结构体上的相邻面上在设定顺序顶点数值相等时,将该相邻结构体的相邻面以对应相应顶点数值相等的方式融合为同一个融合面的目标结构体。如图4所示,对于相邻的结构体_87和结构体_237,其相邻面在相同顺序上的顶点数值相等,因此可以将结构体_87和结构体_237融合为一个结构体,相应地,融合后的结构体可以分解成该结构体_87和结构体_237。
若设定结构体的融合规则包括:允许结构体旋转,那么可以将相邻结构体进行如下融合:当相邻结构体上分别包括在一个设定顺序上顶点数值相等的子融合面时,将该相邻结构体各自的子融合面以对应顶点数值相等的方式融合为同一个融合面的目标结构体。如图5所示,对于相邻的结构体_87和结构体_109,其中,结构体_87右侧面与结构体_109后侧面在相同顺序上的顶点数值相等,因此可以将结构体_87和结构体_109融合为一个结构体,相应地,融合后的结构体可以分解成该结构体_87和结构体_109。
若设定结构体的融合规则包括:不允许结构体多面融合,那么则对于每一个结构体最多融合一次。如图6所示,结构体_87、结构体_109和结构体_199位相邻的三个结构体,其中,结构体_87和结构体_109相邻面在相同顺序上顶点数值对应相等,因此融合成一个结构体,而结构体_109和结构体_199相邻面也在相同顺序上顶点数值对应相等,然而,融合规则中不允许结构体多面融合,其中结构体_109已经与结构体_87一面进行融合了,因此,不能够再继续融合另一个面。
若设定结构体的融合规则包括:允许结构体多面融合,那么则对于每一个结构体最多融合两次。针对图6中的三个相邻结构体,可以融合为如图7所示的结构体。
步骤205:根据二进制数据流的类型,设置各个类型分别对应的融合轮数,在将相邻结构体进行融合之后达到对应的融合轮数时,执行步骤206。
在本实施例中,可以设置数据融合属性,其中,有效值为:NORMAL_DATA、BACKUP_DATA、APPLICATION_DATA、NETWORK_DATA。
在本实施例中,可以对不同类型的数据流,设置不同的融合轮数,在设置融合轮数时,需要考虑系统性能与I/O吞吐量的平衡,若系统资源占用率较高,可适当降低融合级别。其中,设置的融合轮数越大,其融合所需的时间越长。
在本实施例中,二进制数据流的类型可以包括:普通数据、存储数据、可执行数据和网络数据中的一种或多种。
其中,在二进制数据流的类型包括普通数据时,普通数据可以包括一些常见的文件类型,入:文本文件、图片、音视频等,因此,可以对普通数据设置相对少的融合轮数,例如,1轮。
在二进制数据流的类型包括存储数据时,存储数据主要是指需要长期存储,却很少被使用到的数据,因此,可以对存储数据设置相对多的融合轮数,例如,2轮。
在二进制数据流的类型包括可执行数据时,为确保可执行数据的可执行效能不受影响,可以对可执行数据对应的融合轮数为0轮,即不对可执行数据进行融合。
在二进制数据流的类型包括网络数据时,由于处于等待状态、需要经过网络进行传输的网络数据,该网络数据与存储数据融合的方式相同,因此可以对网络数据设置相对多的融合轮数,例如,2轮。需要考虑的是,网络数据是以数据包的形式进行传输的,因此,在将网络数据对应的结构体进行融合过程中,还需要标记每一个数据包的分割位置,以使接收端在对网络数据进行分解时,能够正确的分解出网络数据的各个数据包。
在本实施例中,多轮融合的方式可以包括:在相邻的多个结构体相等时,则经过最大融合轮数之后,融合后的结构体与相邻两个结构体融合后的结构体相同。如图8所示,为相邻的三个结构体_255的第一轮融合结果,如图9所示,为第二轮融合结果。
其中,在相邻M个结构体相等时,且可以通过下式计算其最大融合轮数:
N=(M/2)+0.5
其中,M用于表征相邻M个结构体相邻,N用于表征在相邻M个结构体相等时进行的最大融合轮数。
在本实施例中,可以将融合轮数作为数据融合的终止条件。
步骤206:将融合后的目标结构体转换为二进制的目标数据流,并发送给接收端。
在本实施例中,依然是以二进制数据流的形式进行传输,因此,需要将融合后的目标结构体转换为二进制的目标数据流。
为了保证后续接收端对接收到的数据解析正确,在本实施例中,每进行一次融合需要将融合方式、融合轮数、融合位置等属性信息进行标记,使得接收端能够根据这些标记的属性信息或者在哪个位置进行了多少融合轮数以及融合方式等信息,从而对数据进行正确解析。
为了获知数据空间中数据融合的进度,在本实施例中,可以根据数据融合的进度实时更新数据空间中各个结构体的坐标值。
本实施例中,上述步骤201-步骤206是由发送端执行的。
步骤207:接收端将接收到的目标数据流进行解析,并执行相应操作。
在本实施例中,在接收端接收到目标数据流之后,根据标记的属性信息,对目标数据流进行解析,从而执行相应数据流的相应操作。
根据本实施例提供的数据传输方法,可以通过调用如下函数实现数据传输:
1、调用函数D3D_SetSpaceEnvironmentParam(),设置数据空间的大小、容积、起始坐标,确定是否为新建空间,以及所指向的既有空间地址等。
2、调用函数D3D_InitSpaceDataZip(),初始化数据空间,通过设定的数据空间参数初始化为数据空间。
3、调用函数D3D_SetSpacePurpose(),设置数据融合轮数,有效值:NORMAL_DATA、BACKUP_DATA、APPLICATION_DATA、NETWORK_DATA。
4、调用函数D3D_ReadBinaryData(),将二进制数据流载入数据空间中。
5、调用函数D3D_BinaryToD3DZipModel(),创建多维数据融合进程,并设置数据融合轮数。
6、调用函数D3D_GetSpaceRules(),获取当前数据空间的融合规则。
7、调用函数D3D_BuildSpaceGeometry(),根据融合规则,在数据空间将二进制数据流转换为多维护数据空间中的结构体。
8、调用函数D3D_ArraySpaceGeometry(),设置各个结构体的坐标。
9、调用函数D3D_SetMergeEndCondition(),设置融合终止条件。
10、调用函数D3D_MergeSpaceGeometry(),在数据空间中融合后的结构体,并更新融合后的结构体的坐标。
11、循环执行10,并判断是否满足终止条件。若满足终止条件则进入12,如不满足则继续循环执行10。
12、终止融合过程,调用函数D3D_GeometryToBaniry()输出融合后的数据。
在本实施例中,上述调用的各个函数,是预先设定的,在具体实施过程中,可以直接对设定的函数进行调用,从而提高数据传输的效率。
根据上述方案,通过建立数据空间,以在该数据空间内将二进制数据流转换为相应地结构体,可以将不能够在进行压缩的二进制数据流以结构体的形式在数据空间中进行融合,并继续将融合后的结构体转换为二进制数据流,此时转换后的二进制数据流所占用的数据空间相对于之前更小,从而可以提高数据传输的效率。
如图10所示,本发明实施例提供了一种数据传输装置,包括:
存储单元1001,用于存储二进制数据流与结构体的转换关系,以及存储结构体的融合规则;
建立单元1002,用于建立数据空间;
载入单元1003,用于将待传输的一个以上的二进制数据流,载入至所述数据空间中;
转换单元1004,用于根据设定的二进制数据流与结构体的转换关系,将载入一个以上的二进制数据流分别转换为相对应地结构体;
融合单元1005,用于根据设定的所述融合规则,将相邻结构体进行融合;
发送单元1006,用于将融合后的目标结构体转换为二进制的目标数据流,并发送给接收端,以使所述接收端将接收到的所述目标数据流进行解析,并执行相应操作。
进一步地,
所述存储单元1001,用于构建立方体,将数据流的每一个二进制数值按照设定标识方式标识到所述立方体的每一个个顶点上,其中,被标识的立方体为二进制数据流转换的所述结构体;
和/或,
所述建立单元1003,用于设置数据空间的大小及起始坐标,并根据设置的数据空间的大小及起始坐标,新建数据空间;
或,
所述建立单元1003,用于设置数据空间的大小及起始坐标,确定既有数据空间,并根据设置的数据空间的大小及起始坐标将所述既有数据空间进行修改。
进一步地,
所述存储单元1001,用于存储是否允许结构体旋转,和/或,是否允许结构体多面融合;
若设置不允许结构体旋转,所述融合单元1005,用于当相邻结构体上的相邻面上在设定顺序顶点数值相等时,将该相邻结构体的相邻面以对应相应顶点数值相等的方式融合为同一个融合面的目标结构体;
若设置允许结构体旋转,所述融合单元1005,用于当相邻结构体上分别包括在设定顺序上顶点数值相等的子融合面时,将该相邻结构体各自的子融合面以对应顶点数值相等的方式融合为同一个融合面的目标结构体;
所述融合单元1005,用于若设置不允许结构体多面融合,则对于每一个结构体最多融合一次;若设置允许结构体多面融合,则对于每一个结构体最多融合两次。
进一步地,
所述存储单元1001,用于根据二进制数据流的类型,设置存储各个类型分别对应的融合轮数,在将相邻结构体进行融合之后达到对应的融合轮数时,触发所述转换单元执行所述将融合后的目标结构体转换为二进制的目标数据流;
其中,二进制数据流的类型包括:普通数据、存储数据、可执行数据和网络数据中的一种或多种;
所述存储单元1001,用于在二进制数据流的类型包括普通数据时,设置普通数据对应的融合轮数为1轮;在二进制数据流的类型包括存储数据时,设置存储数据对应的融合轮数为2轮;在二进制数据流的类型包括可执行数据时,设置可执行数据对应的融合轮数为0轮;在二进制数据流的类型包括网络数据时,设置网络数据对应的融合轮数为2轮;
进一步包括:
N=(M/2)+0.5
其中,M用于表征相邻M个结构体相邻,N用于表征在相邻M个结构体相等时进行的最大融合轮数。
综上,本发明实施例至少可以实现如下有益效果:
1、通过建立数据空间,以在该数据空间内将二进制数据流转换为相应地结构体,可以将不能够在进行压缩的二进制数据流以结构体的形式在数据空间中进行融合,并继续将融合后的结构体转换为二进制数据流,此时转换后的二进制数据流所占用的数据空间相对于之前更小,从而可以提高数据传输的效率。
2、对于多维化融合数据无论是在静态存储,还是在动态调用的过程中都可以相互融合,从而大幅度的降低其在系统设备中所占用的存储空间。
3、与传统的数据压缩算法不同,多维化融合数据不区分文件内容,对文件类型也不敏感,即使是已被其他压缩程序处理过的数据也可以进行多维化融合处理,以便进一步减少文件的体积,增强数据在系统设备间的传输速率。
4、进行多维化融合后的数据结构拥有二进制数据结构所不具备的多种空间属性,如多维度空间指针、空间几何结构等,借助这些额外的属性信息,应用程序可以轻易找到两组数据之间的不同区域(基于几何形态),从而准确而快速的获取关键数据,并保留既有的数据得到有效复用。
上述设备内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种数据传输方法,其特征在于,设定二进制数据流与结构体的转换关系;设定结构体的融合规则,包括:
建立数据空间;
将待传输的一个以上的二进制数据流,载入至所述数据空间中;
根据设定的所述二进制数据流与结构体的转换关系,将载入一个以上的二进制数据流分别转换为相对应地结构体;
根据设定的所述融合规则,将相邻结构体进行融合;
将融合后的目标结构体转换为二进制的目标数据流,并发送给接收端,以使所述接收端将接收到的所述目标数据流进行解析,并执行相应操作;
其中,所述设定结构体的融合规则,包括:设置是否允许结构体旋转,和/或,是否允许结构体多面融合;
若设置不允许结构体旋转,所述将相邻结构体进行融合,包括:当相邻结构体上的相邻面上在设定顺序顶点数值相等时,将所述相邻结构体的相邻面以对应相应顶点数值相等的方式融合为同一个融合面的目标结构体;
若设置允许结构体旋转,所述将相邻结构体进行融合,包括:当所述相邻结构体上分别包括在设定顺序上顶点数值相等的子融合面时,将所述相邻结构体各自的子融合面以对应顶点数值相等的方式融合为同一个融合面的目标结构体;
进一步包括:若设置不允许结构体多面融合,则对于每一个结构体最多融合一次;若设置允许结构体多面融合,则对于每一个结构体最多融合两次。
2.根据权利要求1所述的方法,其特征在于,所述设定二进制数据流与结构体的转换关系,包括:
构建立方体,将数据流的每一个二进制数值按照设定标识方式标识到所述立方体的每一个顶点上,其中,被标识的立方体为二进制数据流转换的所述结构体。
3.根据权利要求1所述的方法,其特征在于,
所述建立数据空间,包括:设置数据空间的大小及起始坐标,并根据设置的数据空间的大小及起始坐标,新建数据空间;
或,
所述建立数据空间,包括:设置数据空间的大小及起始坐标,确定既有数据空间,并根据设置的数据空间的大小及起始坐标将所述既有数据空间进行修改。
4.根据权利要求1-3中任一所述的方法,其特征在于,
进一步包括:根据二进制数据流的类型,设置各个类型分别对应的融合轮数,在将相邻结构体进行融合之后达到对应的融合轮数时,执行所述将融合后的目标结构体转换为二进制的目标数据流;
其中,二进制数据流的类型包括:普通数据、存储数据、可执行数据和网络数据中的一种或多种;
其中,在二进制数据流的类型包括普通数据时,设置普通数据对应的融合轮数为1轮;在二进制数据流的类型包括存储数据时,设置存储数据对应的融合轮数为2轮;在二进制数据流的类型包括可执行数据时,设置可执行数据对应的融合轮数为0轮;在二进制数据流的类型包括网络数据时,设置网络数据对应的融合轮数为2轮。
5.根据权利要求4所述的方法,其特征在于,进一步包括:
N=(M/2)+0.5
其中,M用于表征相邻M个结构体相邻,N用于表征在相邻M个结构体相等时进行的最大融合轮数。
6.一种数据传输装置,其特征在于,包括:
存储单元,用于存储二进制数据流与结构体的转换关系,以及存储结构体的融合规则;
建立单元,用于建立数据空间;
载入单元,用于将待传输的一个以上的二进制数据流,载入至所述数据空间中;
转换单元,用于根据设定的二进制数据流与结构体的转换关系,将载入一个以上的二进制数据流分别转换为相对应地结构体;
融合单元,用于根据设定的所述融合规则,将相邻结构体进行融合;
发送单元,用于将融合后的目标结构体转换为二进制的目标数据流,并发送给接收端,以使所述接收端将接收到的所述目标数据流进行解析,并执行相应操作;
其中,所述存储单元,用于存储是否允许结构体旋转,和/或,是否允许结构体多面融合;
若设置不允许结构体旋转,所述融合单元,用于当所述相邻结构体上的相邻面上在设定顺序顶点数值相等时,将所述相邻结构体的相邻面以对应相应顶点数值相等的方式融合为同一个融合面的目标结构体;
若设置允许结构体旋转,所述融合单元,用于当所述相邻结构体上分别包括在设定顺序上顶点数值相等的子融合面时,将所述相邻结构体各自的子融合面以对应顶点数值相等的方式融合为同一个融合面的目标结构体;
所述融合单元,用于若设置不允许结构体多面融合,则对于每一个结构体最多融合一次;若设置允许结构体多面融合,则对于每一个结构体最多融合两次。
7.根据权利要求6所述的装置,其特征在于,
所述存储单元,用于构建立方体,将数据流的每一个二进制数值按照设定标识方式标识到所述立方体的每一个顶点上,其中,被标识的立方体为二进制数据流转换的所述结构体;
和/或,
所述建立单元,用于设置数据空间的大小及起始坐标,并根据设置的数据空间的大小及起始坐标,新建数据空间;
或,
所述建立单元,用于设置数据空间的大小及起始坐标,确定既有数据空间,并根据设置的数据空间的大小及起始坐标将所述既有数据空间进行修改。
8.根据权利要求6-7中任一所述的装置,其特征在于,
所述存储单元,用于根据二进制数据流的类型,设置存储各个类型分别对应的融合轮数,在将相邻结构体进行融合之后达到对应的融合轮数时,触发所述转换单元执行所述将融合后的目标结构体转换为二进制的目标数据流;
其中,二进制数据流的类型包括:普通数据、存储数据、可执行数据和网络数据中的一种或多种;
所述存储单元,用于在二进制数据流的类型包括普通数据时,设置普通数据对应的融合轮数为1轮;在二进制数据流的类型包括存储数据时,设置存储数据对应的融合轮数为2轮;在二进制数据流的类型包括可执行数据时,设置可执行数据对应的融合轮数为0轮;在二进制数据流的类型包括网络数据时,设置网络数据对应的融合轮数为2轮;
进一步包括:
N=(M/2)+0.5
其中,M用于表征相邻M个结构体相邻,N用于表征在相邻M个结构体相等时进行的最大融合轮数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510435876.3A CN105068949B (zh) | 2015-07-22 | 2015-07-22 | 一种数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510435876.3A CN105068949B (zh) | 2015-07-22 | 2015-07-22 | 一种数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105068949A CN105068949A (zh) | 2015-11-18 |
CN105068949B true CN105068949B (zh) | 2018-02-06 |
Family
ID=54498326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510435876.3A Expired - Fee Related CN105068949B (zh) | 2015-07-22 | 2015-07-22 | 一种数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105068949B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106657384B (zh) * | 2017-01-12 | 2019-11-01 | 浪潮金融信息技术有限公司 | 使用多维化技术大幅降低通信数据传输量的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104202269A (zh) * | 2014-09-26 | 2014-12-10 | 浪潮软件集团有限公司 | 一种网络数据包的压缩方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8867662B2 (en) * | 2008-03-31 | 2014-10-21 | Qualcomm Incorporated | Multidimensional constellations for coded transmission |
-
2015
- 2015-07-22 CN CN201510435876.3A patent/CN105068949B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104202269A (zh) * | 2014-09-26 | 2014-12-10 | 浪潮软件集团有限公司 | 一种网络数据包的压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105068949A (zh) | 2015-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110520909B (zh) | 使用激活数据的压缩和解压缩来减少存储器带宽利用率的神经网络处理器 | |
CN109871510B (zh) | 二维卷积运算处理方法、系统、设备及计算机存储介质 | |
CN104199927B (zh) | 数据处理方法及数据处理装置 | |
CN102122960B (zh) | 一种针对二进制数据的多字符组合无损数据压缩方法 | |
CN109063824B (zh) | 深层三维卷积神经网络的创建方法、装置、存储介质及处理器 | |
CN110147252A (zh) | 一种卷积神经网络的并行计算方法及装置 | |
CN104123364A (zh) | 一种移动终端发送和接收数据的方法及装置 | |
CN110352412A (zh) | 矩阵压缩加速器系统和方法 | |
CN115880132B (zh) | 图形处理器、矩阵乘法任务处理方法、装置及存储介质 | |
CN105868194A (zh) | 文本数据压缩、解压方法及装置 | |
CN102724122A (zh) | 基于硬件系统的串口可靠传输方法及装置 | |
CN101751440A (zh) | 一种数据压缩/解压缩方法及其装置 | |
CN103139567B (zh) | 一种图像压缩和解压缩的方法和装置 | |
CN107908357A (zh) | 命名数据网转发平面pit存储结构及其数据检索方法 | |
CN105513099A (zh) | 一种骨骼动画数据的压缩方法及装置 | |
CN107330094A (zh) | 动态存储键值对的布鲁姆过滤器树结构及键值对存储方法 | |
TWI420830B (zh) | 動態解碼查詢表之產生方法與應用其之電子裝置 | |
CN104394415B (zh) | 一种视频大数据分布式解码的方法 | |
CN103209328A (zh) | 多源卫星图像实时在线处理技术方法及装置 | |
CN104536780B (zh) | 一种电子游戏资源高效加载方法及系统 | |
CN105068949B (zh) | 一种数据传输方法及装置 | |
CN110324204A (zh) | 一种在fpga中实现的高速正则表达式匹配引擎及方法 | |
CN103299298A (zh) | 处理业务的方法和系统 | |
CN111507430A (zh) | 基于矩阵乘法的特征编码方法、装置、设备及介质 | |
CN108234552B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180206 Termination date: 20190722 |
|
CF01 | Termination of patent right due to non-payment of annual fee |