具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
请参阅图1。本说明书实施例提供一种数据处理系统。所述数据处理系统可以包括数据发送端和数据接收端。
在本实施例中,所述数据发送端可以为可移动设备,例如智能手机、平板电子设备、便携式计算机、个人数字助理(PDA)、车载设备、POS机、或智能穿戴设备等。所述数据发送端还可以为桌面设备,例如电视机、服务器、工控机(工业控制计算机)、个人计算机(PC机)、一体机、或智能自助终端(kiosk)等。
在本实施例中,所述数据接收端可以为可拍摄设备。所述数据接收端可以具有拍摄组件,所述拍摄组件包括但不限于摄像头、和扫描仪等。所述数据接收端可以为可移动设备,例如智能手机、平板电子设备、便携式计算机、个人数字助理(PDA)、车载设备、POS机、或智能穿戴设备等。所述数据接收端还可以为桌面设备,例如电视机、服务器、工控机(工业控制计算机)、个人计算机(PC机)、一体机、或智能自助终端(kiosk)等。
请参阅图1。本说明书实施例提供一种数据处理方法。实现所述数据处理方法的主体可以包括数据发送端和数据接收端。所述数据处理方法可以包括以下步骤。
步骤S10:数据发送端将业务数据分割为多个数据单元。
在本实施例中,所述业务数据可以为待传输的数据。所述业务数据可以为文本数据、图片数据、音频数据、视频数据及其任意组合等。所述业务数据的分割粒度可以为数据单元。所述多个数据单元中各个数据单元的大小可以全部相同、全部不同、或部分相同。为了便于在后续过程中将数据单元置于业务码内,每个数据单元可以小于或等于所述业务码的数据容量。其中,所业务码可以包括图形化编码,所述图形化编码可以包括条形码、二维码等。
在本实施例中,所述数据发送端可以采用任意适当的方法将业务数据分割为多个数据单元,例如7、150、200、1000个数据单元。例如,所述数据发送端可以直接将业务数据分割为多个数据单元。另举一例,所述数据发送端可以根据业务数据的大小和业务码的数据容量,计算分割数量;可以将所述业务数据分割为所述分割数量个数据单元。
步骤S12:数据发送端生成所述多个数据单元对应的多个业务码。
在本实施例中,每个业务码可以对应一个或多个数据单元。每个业务码中可以包括有该业务码对应的数据单元。所述数据发送端可以基于业务码生成算法,生成多个数据单元对应的多个业务码。依据生成的业务码的不同,所述业务码生成算法可以相同或不同。例如,在生成二维码时,所述业务码生成算法可以为快速反应码(Quick Response code,QRcode)算法。本领域技术人员应当能够理解,此处的快速反应码算法仅为示例,实际上任何能够生成二维码的算法均可以应用于此。当然,在生成其它的业务码时,所述业务码生成算法还可以为其它算法,在此不再依次列举。
步骤S14:数据接收端采集所述多个业务码。
在本实施例中,可以显示所述多个业务码,所述数据接收端继而可以采集显示的业务码。
在本实施例中,所述数据发送端可以显示所述多个业务码。具体地,所述数据发送端可以直接显示出所述多个业务码。或者,所述数据发送端还可以播放所述多个业务码。所述数据发送端可以基于任意帧率播放所述多个业务码,例如24FPS(Frames Per Second,帧每秒)、30FPS、60FPS等。所述数据发送端可以直接播放所述多个业务码,或者,还可以借助于媒介播放所述多个业务码。所述媒介包括但不限于文本、图片、和视频等,所述视频例如可以为电视视频、或电影视频等。例如,所述数据发送端可以在播放电视视频的同时,在任意显示区域播放所述多个业务码。
或者,除去数据发送端和数据接收端以外的其它设备可以显示所述多个业务码。具体地,所述数据发送端可以向所述其它设备发送所述多个业务码,所述其它设备可以接收并显示所述多个业务码。所述其它设备显示业务码的过程可以和数据发送端显示业务码的过程相类似。其中,所述其它设备可以为可移动设备,例如智能手机、平板电子设备、便携式计算机、个人数字助理(PDA)、车载设备、POS机、或智能穿戴设备等。所述数据接收端还可以为桌面设备,例如电视机、服务器、工控机(工业控制计算机)、个人计算机(PC机)、一体机、或智能自助终端(kiosk)等。
在本实施例中,所述数据接收端可以录制显示的业务码。例如,所述数据接收端可以具有摄像头,所述数据接收端可以使用所述摄像头录制显示的业务码。当然,所述数据接收端还可以采用其它方式采集显示的业务码。例如,所述数据接收端可以拍摄显示的业务码。
步骤S16:数据接收端基于所述多个业务码获取多个数据单元。
在本实施例中,针对采集的每个业务码,所述数据接收端可以从该业务码中识别出一个或多个数据单元。
步骤S18:数据接收端基于获取的数据单元生成所述业务数据。
在本实施例中,所述数据接收端可以对获取的数据单元进行拼接,得到所述业务数据。当然,所述数据接收端还可以采用其它方式生成所述业务数据。例如,所述数据接收端可以使用一定的算法将获取的数据单元合成为所述业务数据。
在本实施例的一个实施方式中,所述数据发送端可以对业务数据进行压缩,得到压缩业务数据;可以将所述压缩业务数据分割为多个数据单元;可以生成所述多个数据单元对应的多个业务码。所述数据接收端可以采集所述多个业务码;可以基于所述多个业务码获取多个数据单元;可以基于获取的数据单元生成压缩业务数据;可以对所述压缩业务数据进行解压,得到所述业务数据。这样,通过对业务数据进行压缩,数据发送端可以减少生成的业务码的数量,数据接收端可以增加采集和处理业务码的速度。
在本实施例的一个实施方式中,所述数据发送端可以将业务数据封装为包括有所述业务数据的校验信息的封装业务数据;可以将所述封装业务数据分割为多个数据单元;可以生成所述多个数据单元对应的多个业务码。
所述校验信息可以包括哈希值(Hash)。其中,所述哈希值可以包括MD5(MessageDigest Algorithm,消息摘要算法)值、SHA1(Secure Hash Algorithm,安全散列算法)值、SHA256、SHA384、SHA512值、和CRC32(Cyclic Redundancy Check,循环冗余校验算法)值等。当然,所述校验信息还可以为其它值,本实施方式对此并不做具体限定。
所述数据发送端可以将业务数据与所述业务数据的校验信息进行拼接,得到所述封装业务数据。当然,所述数据发送端还可以采用其它方式生成所述封装业务数据。例如,所述数据发送端可以使用一定的算法将业务数据与所述业务数据的校验信息合成为所述封装业务数据。
在本实施方式中,所述数据接收端可以采集所述多个业务码;可以基于所述多个业务码获取多个数据单元;可以基于获取的数据单元生成封装业务数据。封装业务数据中可以包括有业务数据和业务数据的校验信息。如此,所述数据接收端可以使用所述校验信息对所述业务数据进行校验。这样,数据接收端可以对生成的业务数据进行校验,以防止业务数据在传输过程中产生错误。
在本实施例的一个实施方式中,在将业务数据分割为多个数据单元之后,所述数据发送端还可以将每个数据单元封装为包括有该数据单元的位置信息的封装数据单元;可以生成多个封装数据单元对应的多个业务码。所述位置信息可以用于表示数据单元在所述业务数据中的位置。例如,所述位置信息可以为数据单元相对于业务数据头部的偏移量,或者,还可以为数据单元的编号。
针对每个数据单元,所述数据发送端可以将该数据单元与该数据单元的位置信息进行拼接,得到封装数据单元。当然,所述数据发送端还可以采用其它方式生成封装数据单元。例如,针对每个数据单元,所述数据发送端可以使用一定的算法将该数据单元与该数据单元的位置信息合成为封装数据单元。
在本实施方式中,所述数据接收端可以采集所述多个业务码;可以基于所述多个业务码获取多个封装数据单元;可以基于获取的封装数据单元生成所述业务数据。具体地,封装数据单元中可以包括有数据单元和该数据单元的位置信息。如此,所述数据接收端可以基于获取的数据单元和数据单元的位置信息,生成所述业务数据。这样,通过数据单元的位置信息,数据接收端可以快速地对数据单元进行定位,进而可以增加业务数据的生成速度。
在本实施例中,数据发送端可以将业务数据分割为多个数据单元;可以生成所述多个数据单元对应的多个业务码。数据接收端可以采集所述多个业务码;可以基于所述多个业务码获取多个数据单元;可以基于获取的数据单元生成所述业务数据。这样,在本实施例中,业务码作为数据的载体,数据接收端采集多个业务码进而可以得到业务数据,从而实现了数据发送端和数据接收端能够在没有建立通信连接的条件下传输业务数据。
请参阅图1。以下介绍本说明书实施例的一个场景示例。
在本场景示例中,所述数据发送端可以对业务数据D1进行压缩,得到压缩业务数据D2;可以将业务数据D2与业务数据D1的MD5值进行拼接,得到封装业务数据D3;可以对封装业务数据D3进行分割,得到数据单元P1、…Pi、…Pn。其中,n为大于1的自然数;1≤i≤n。
针对每个数据单元Pi,所述数据发送端可以将数据单元Pi,与数据单元Pi相对于封装业务数据D3头部的偏移量、以及数据单元Pi的大小值进行拼接,得到封装数据单元Ki。
针对每个封装数据单元Ki,所述数据发送端可以生成对应的二维码Ci。
在本场景示例中,所述数据发送端可以播放二维码C1、…Ci、…Cn。所述数据接收端可以使用摄像头采集所述数据发送端播放的二维码,进而可以得到二维码C1、…Ci、…Cn。
在本场景示例中,针对每个二维码Ci,所述数据接收端可以从中识别出封装数据单元Ki。
所述数据接收端可以基于封装数据单元Ki中的数据单元Pi、和数据单元Pi的偏移量,生成封装业务数据D3;可以使用封装业务数据D3中的MD5值,对封装业务数据D3中的压缩业务数据D2进行校验;在校验结果为正确以后,可以对压缩业务数据D2进行解压,得到业务数据D1。
请参阅图2。本说明书实施例还提供另一种数据处理方法。所述数据处理方法以数据发送端为实施主体,可以包括以下步骤。
步骤S20:将业务数据分割为多个数据单元。
步骤S22:生成所述多个数据单元对应的多个业务码。
在本实施例中,所述业务码可以包括图形化编码。每个业务码中可以包括有该业务码对应的数据单元。所述数据发送端可以基于业务码生成算法,生成所述多个数据单元对应的多个业务码,以便于数据接收端能够基于所述多个业务码获得所述业务数据。
在本实施例的一个实施方式中,所述数据发送端可以对业务数据进行压缩,得到压缩业务数据;可以将所述压缩业务数据分割为多个数据单元;可以生成所述多个数据单元对应的多个业务码。
在本实施例的一个实施方式中,所述数据发送端可以将业务数据封装为包括有所述业务数据的校验信息的封装业务数据;可以将所述封装业务数据分割为多个数据单元;可以生成所述多个数据单元对应的多个业务码。
在本实施例的一个实施方式中,在将业务数据分割为多个数据单元之后,所述数据发送端还可以将每个数据单元封装为包括有该数据单元的位置信息的封装数据单元;可以生成多个封装数据单元对应的多个业务码。
在本实施例的一个实施方式中,所述数据发送端还可以显示所述多个业务码。
在本实施例中,所述数据发送端可以将业务数据分割为多个数据单元;可以生成所述多个数据单元对应的多个业务码。这样,数据接收端可以采集所述多个业务码;可以基于所述多个业务码获得所述业务数据;从而实现了数据发送端和数据接收端能够在没有建立通信连接的条件下传输业务数据。
请参阅图3。本说明书实施例还提供另一种数据处理方法。所述数据处理方法以数据接收端为实施主体,可以包括以下步骤。
步骤S30:采集多个业务码。
在本实施例中,所述业务码可以包括图形化编码。每个业务码中可以包括有数据单元。在所述多个业务码被显示以后,所述数据接收端可以采集显示的业务码。
步骤S32:基于所述多个业务码获取多个数据单元。
步骤S34:基于获取的数据单元生成业务数据。
在本实施例的一个实施方式中,所述数据接收端可以基于获取的数据单元生成压缩业务数据;可以对所述压缩业务数据进行解压,得到所述业务数据。
在本实施例的一个实施方式中,所述数据接收端可以基于获取的数据单元生成封装业务数据。所述封装业务数据包括有所述业务数据和所述业务数据的校验信息。如此,所述数据接收端可以使用所述校验信息对所述业务数据进行校验。
在本实施例的一个实施方式中,所述数据接收端可以基于所述多个业务码获取多个封装数据单元;可以基于获取的封装数据单元生成所述业务数据。具体地,封装数据单元中可以包括有数据单元和该数据单元的位置信息。如此,所述数据接收端可以基于获取的数据单元和数据单元的位置信息,生成所述业务数据。
在本实施例中,所述数据接收端可以采集多个业务码;可以基于所述多个业务码获取多个数据单元;可以基于获取的数据单元生成业务数据。这样,在本实施例中,业务码作为数据的载体,数据接收端采集多个业务码进而可以得到业务数据,从而实现了数据发送端和数据接收端能够在没有建立通信连接的条件下传输业务数据。
请参阅图4。本说明书实施例还提供一种终端设备。所述终端设备可以包括:
分割模块40,用于将业务数据分割为多个数据单元;
生成模块42,用于生成所述多个数据单元对应的多个业务码,以便于数据接收端能够基于所述多个业务码获得所述业务数据;其中,每个业务码中包括有该业务码对应的数据单元。
请参阅图5。本说明书实施例还提供另一种终端设备。所述终端设备可以包括存储器和处理器。
在本实施例中,所述存储器可以按任何适当的方式实现。例如,所述存储器可以为只读存储器、机械硬盘、固态硬盘、或U盘等。所述存储器可以用于存储程序指令。
在本实施例中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
所述处理器可以用于执行所述计算机程序指令实现:将业务数据分割为多个数据单元;生成所述多个数据单元对应的多个业务码,以便于数据接收端能够基于所述多个业务码获得所述业务数据;其中,每个业务码中包括有该业务码对应的数据单元。
请参阅图6。本说明书实施例还提供另一种终端设备。所述终端设备可以包括:
采集模块60,用于采集多个业务码;其中,每个业务码中包括有数据单元;
获取模块62,用于基于所述多个业务码获取多个数据单元;
生成模块64,用于基于获取的数据单元生成业务数据。
请参阅图5。本说明书实施例还提供另一种终端设备。所述终端设备可以包括存储器和处理器。
在本实施例中,所述存储器可以按任何适当的方式实现。例如,所述存储器可以为只读存储器、机械硬盘、固态硬盘、或U盘等。所述存储器可以用于存储程序指令。
在本实施例中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
所述处理器可以用于执行所述计算机程序指令实现:采集多个业务码;其中,每个业务码中包括有数据单元;基于所述多个业务码获取多个数据单元;基于获取的数据单元生成业务数据。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于终端设备实施例而言,由于其基本相似于数据处理方法实施例,所以描述的比较简单,相关之处参见数据处理方法实施例的部分说明即可。
另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。