CN112351107A - 用于编码文件的方法、装置、电子设备及可读存储介质 - Google Patents

用于编码文件的方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN112351107A
CN112351107A CN202011277585.3A CN202011277585A CN112351107A CN 112351107 A CN112351107 A CN 112351107A CN 202011277585 A CN202011277585 A CN 202011277585A CN 112351107 A CN112351107 A CN 112351107A
Authority
CN
China
Prior art keywords
byte
double
file
encoding
data
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.)
Granted
Application number
CN202011277585.3A
Other languages
English (en)
Other versions
CN112351107B (zh
Inventor
廖覃思
陈丽敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202011277585.3A priority Critical patent/CN112351107B/zh
Publication of CN112351107A publication Critical patent/CN112351107A/zh
Application granted granted Critical
Publication of CN112351107B publication Critical patent/CN112351107B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了用于编码文件的方法、装置、电子设备及计算机可读存储介质,涉及数据编解码技术领域。该方法的一具体实施方式包括:获取待编码的差分文件的原始二进制数据;确定该原始二进制数据中符合预设要求的目标二进制数据,该预设要求为该目标二进制数据的单字节编码结果为各位数互不相同、均不大于5的5位数;按照双字节编码方式对该目标二进制数据进行双字节编码,得到双字节编码文件。该实施方式通过对数据结构较为紧凑的差分文件中符合预设要求的目标二进制数据换用双字节编码,使得目标二进制数据的双字节编码结果可比按照常规的单字节编码得到的单字节编码结果减少1个字节的数据量,进而使得双字节编码文件更小,从而降低成本。

Description

用于编码文件的方法、装置、电子设备及可读存储介质
技术领域
本申请涉及数据处理领域,具体涉及数据编解码技术领域,尤其涉及用于编码文件的方法、装置、电子设备及计算机可读存储介质。
背景技术
数据提供商、云存储提供商,往往需要通过CDN(Content Delivery Network,内容分发网络)满足各地用户的数据下载需求。而带宽提供商则按照流量线性收费,因此如何尽可能的减少流量的使用量是节省成本的重点。
发明内容
本申请实施例提出了一种用于编码文件的方法、装置、电子设备及计算机可读存储介质。
第一方面,本申请实施例提出了一种用于编码文件的方法,包括:获取待编码的差分文件的原始二进制数据;确定原始二进制数据中符合预设要求的目标二进制数据;其中,预设要求为目标二进制数据的单字节编码结果为每位数均不大于5、每位数均不相同的5位数;按照双字节编码方式对目标二进制数据进行双字节编码,得到双字节编码文件。
第二方面,本申请实施例提出了一种用于编码文件的装置,包括:待编码文件获取单元,被配置成获取待编码的差分文件的原始二进制数据;目标二进制数据确定单元,被配置成确定原始二进制数据中符合预设要求的目标二进制数据;其中,预设要求为目标二进制数据的单字节编码结果为每位数均不大于5、每位数均不相同的5位数;双字节编码单元,被配置成按照双字节编码方式对目标二进制数据进行双字节编码,得到双字节编码文件。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器执行时能够实现如第一方面中任一实现方式描述的用于编码文件的方法。
第四方面,本申请实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行时能够实现如第一方面中任一实现方式描述的用于编码文件的方法。
本申请实施例提供的用于编码文件的方法、装置、电子设备及计算机可读存储介质,首先,获取待编码的差分文件的原始二进制数据;然后,确定该原始二进制数据中符合预设要求的目标二进制数据,该预设要求为该目标二进制数据的单字节编码结果为每位数均不大于5、每位数均不相同的5位数;最后,按照双字节编码方式对该目标二进制数据进行双字节编码,得到双字节编码文件。
本申请针对数据结构较为紧凑的差分文件,提供了一种能够尽可能降低其编码结果的编码方式,即针对待编码的差分文件中符合预设要求的目标二进制数据换用双字节编码,使得目标二进制数据的双字节编码结果可比按照常规的单字节编码得到的单字节编码结果减少1个字节的数据量,进而使得双字节编码文件更小,从而降低成本。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构;
图2为本申请实施例提供的一种用于编码文件的方法的流程图;
图3为本申请实施例提供的另一种用于编码文件和一种对应的解码文件的方法的流程图;
图4为本申请实施例提供的在一应用场景下的得到的双字节编码文件的结构示意图;
图5为本申请实施例提供的一种用于编码文件的装置的结构框图;
图6为本申请实施例提供的一种适用于执行用于编码文件的方法的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于编码文件的方法、装置、电子设备及计算机可读存储介质的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括数据上传终端101、数据下载终端103和内容分发网络102。
数据上传终端101、数据下载终端103以及内容分发网络102可以表现为硬件,也可以表现为软件的运行结果。当数据上传终端101和数据下载终端103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等;当数据上传终端101和数据下载终端103为软件的运行结果时,可以是安装在上述所列举的电子设备中某款软件或基于虚拟化技术构建出的虚拟终端,在此不做具体限定。当内容分发网络102为硬件时,通常表现为多个服务器组成的分布式服务器集群;当内容分发网络102为软件的运行结果时,也可以实现成多台虚拟服务器构成的分布式虚拟服务器集群,在此不做具体限定。
数据上传终端101用于将供用户下载的数据(例如应用的差分升级包)上传至内容分发网络102供其它用户下载。内容分发网络102通常由多台分布在各地的数据存储服务器共同构成。用户可以使用安装在数据上传终端101上的应用来实现待上传数据的处理和上传,并与内容分发网络102上安装的相应应用进行配合,例如可安装有数据编码类应用、数据传输类应用、指令传输类应用等。
例如在由数据上传终端101来执行待上传数据的编码操作时,数据上传终端101可通过运行数据编码类应用实现如下效果:首先,获取待编码的差分文件的原始二进制数据;然后,将原始二进制数据中单字节编码结果为每位数均不大于5、每位数均不相同的5位数的二进制数据确定为目标二进制数据,最后,按照双字节编码方式对该目标二进制数据进行双字节编码,从而得到双字节编码文件。后续,数据上传终端101将该双字节编码文件上传至内容分发网络102供其它用户下载。
在内容分发网络102不对数据上传终端101上传的供其它广大用户下载的数据按流量计费时,还可以将上述操作转交给拥有更强大运算和数据处理能力的内容分发网络102来完成。例如内容分发网络102中专设的用于接收和处理数据上传终端101上传的数据的上传数据处理服务器,在运行数据编码类应用时实现如下效果:首先,通过网络接收到数据上传终端101发来的待编码的差分文件,此时该差分文件表现为由原始二进制数据构成的待编码状态;然后,将原始二进制数据中单字节编码结果为每位数均不大于5、每位数均不相同的5位数的二进制数据确定为目标二进制数据,最后,按照双字节编码方式对该目标二进制数据进行双字节编码,从而得到双字节编码文件。后续,上传数据处理服务器将该双字节编码文件分发至构成内容分发网络102的各个数据存储服务器中,以供其它用户就近下载。
应当理解的是,由于数据上传终端101和内容分发网络102均可以用于实现本申请所提供的用于编码文件的方法,因此用于编码文件的装置也可以设置于数据上传终端101或内容分发网络102中,甚至直接表现为数据上传终端101或构成内容分发网络102的一个服务器。也可以在特殊要求的限制下,数据上传终端101或内容分发网络102相互配合共同完成上述方案,例如数据上传终端101为了尽可能减少与内容分发网络102之间数据交互所耗费的流量,改为将按照常规编码方式编码后的文件发给内容分发网络102,再由内容分发网络102将其解码回原始二进制数据,最后再由内容分发网络102按照上述双字节编码方案编码得到双字节编码文件。
应当理解的是,图1中的数据上传终端、数据下载终端以及构成内容分发网络的具体服务器的数目仅仅是示意性的。
请参考图2,图2为本申请实施例提供的一种用于编码文件的方法的流程图,其中流程200包括以下步骤:
步骤201:获取待编码的差分文件的原始二进制数据;
本步骤旨在由用于编码文件的方法的执行主体(例如图1所示的数据上传终端101或内容分发网络102)获取待编码的差分文件的原始二进制数据。
其中,本步骤描述的差分文件通常是指利用增量升级技术得到的增量数据包,例如根据完整的1.0版本应用安装包和完整的2.0版本应用安装包生成的可由1.0版本应用升级至2.0版本应用的1.0→2.0版本应用差分升级包,即该差分升级包中仅包含完整2.0版本应用安装包中不同于完整的1.0版本应用安装包的部分数据文件,因此数据量较小,且数据结构紧凑。通常,该差分文件也被称为Patch文件,因为Patch文件主要指修补文件、补丁文件,都拥有数据结构较为紧凑的特点。因此,本申请所适用的方案也可以进一步拓展至非差分文件但同样数据结构较为紧凑的其它类型的待编码文件。
步骤202:确定原始二进制数据中符合预设要求的目标二进制数据;
在步骤201的基础上,本步骤旨在由上述执行主体将原始二进制数据中其单字节编码结果为每位数均不大于5、每位数均不相同的5位数的部分二进制数据,确定为符合预设要求的目标二进制数据。
步骤203:按照双字节编码方式对目标二进制数据进行双字节编码,得到双字节编码文件。
在步骤202的基础上,本步骤旨在由上述执行主体按照双字节编码方式对目标二进制数据进行双字节编码,得到双字节编码文件。
应当理解的是,本步骤虽然仅描述了对目标二进制数据按照双字节编码方式进行双字节编码,但并不意味着不对原始二进制数据中除目标二进制数据外的其它二进制数据进行编码,而应是对其它二进制数据采用常规的单字节编码方式来进行编码,使得所有原始二进制数据均进行了编码后,才得到该双字节编码文件。
之所以针对其单字节编码结果为每位数均不大于5、每位数均不相同的5位数的部分二进制数据(即目标二进制数据)采用双字节编码,是因为仅有这些二进制数据在采用双字节编码时才能够使编码后结果的数据量小于按常规的单字节编码后得到的编码后结果的数据量。
这是由于编码展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。展开的实质是计算当前排列在所有由小到大全排列中的顺序,因此是可逆的。公式如下:
X=an(n-1)!+an-1(n-2)!+…+a1·0!,其中an为整数,并且0<=an<=n。
举个例子,例如,5位二进制数45321的展开为96,则有:96=3*4!+3*3!+2*2!+1*1!+0*0!
其逆向推导过程为:首先,用96-1得到95,说明x之前有95个排列,即将此数本身减去1;然后,用95去除4!得到3余23,说明有3个数比第1位小,所以第一位是4;接着,用23去除3!得到3余5,说明有3个数比第2位小,所以是4,但是4是第一位,因此是5;再接着,用5去除2!得到2余1,类似地,这一位是3;最后,用1去除1!得到1余0,这一位是2,而最后一位只能是1。因此可能够得到5位二进制数45321。
45321的16位2进制编码是10110001 00001001,96的二进制编码是01100000,可明显看出减少了一个字节。
本申请实施例提供的用于编码文件的方法,针对数据结构较为紧凑的差分文件,提供了一种能够尽可能降低其编码结果的数据量的编码方式,即针对待编码的差分文件中符合预设要求的目标二进制数据换用双字节编码,使得目标二进制数据的双字节编码结果可比按照常规的单字节编码得到的单字节编码结果减少1个字节的数据量,进而使得双字节编码文件更小,从而降低成本。
上述实施例方案给出了如何将待编码的差分文件采用不同的编码方式得到双字节编码文件的方案,考虑到后续下载该双字节编码文件的用户还需要相应的解码操作才能够得到可识别的原始数据,因此为保障解码操作的正确,还需要记录采用双字节编码方式得到的双字节编码结果的位置信息,从而使得数据下载终端(例如图1所示的数据下载终端103)在解码时能够根据位置信息来采用与双字节编码方式对应的双字节解码方式解码双字节编码文件,当然,另外部分的编码结果则应采用常规的单字节家来解码。
请参考图3,图3为本申请实施例提供的另一种用于编码文件的方法的流程图,其中流程300包括以下步骤:
步骤301:获取待编码的差分文件的原始二进制数据;
步骤302:确定原始二进制数据中符合预设要求的目标二进制数据;
以上步骤301-302与如图2所示的步骤201-202一致,相同部分内容请参见上一实施例的相应部分,此处不再进行赘述。
步骤303:按照双字节编码方式对目标二进制数据进行双字节编码,按照单字节编码方式对非目标二进制数据进行单字节编码;
步骤304:获取采用双字节编码方式得到的双字节编码结果的位置信息,并将位置信息记录在编码结果的文件头中,得到双字节编码文件;
本步骤旨在由上述执行主体将获取到的位置信息记录在所形成的编码结果的文件头中,以得到包含有位置信息的双字节编码文件。
其中,位置信息可存储在文件头中的空白字段中,通常情况下,由于位置信息的数据量相对较小,而为了尽可能的减少额外加入的位置信息对数据量的影响,还可以在存入文件头之前对其进行压缩处理,只要能够使解码时可获知应使用的解码算法即可。因为即使是结构较为紧凑的差分文件中,能够采用双字节编码的目标二进制数据也占少数,因此位置信息可使用0记录未采用双字节编码,使用1记录采用双字节编码,而普通的压缩算法对包含大量0的位置信息将拥有十分良好的压缩效果,从而尽可能的缩小整体的数据量。
相较于流程200中的步骤201-步骤203,流程300中的步骤301-步骤304不仅具体给出了针对原始二进制数据中各部分分别采用何种编码方式的方案,还额外给出了记录位置信息并具体将其记录在文件头的实现方式,使得无需将位置信息以额外数据的方式进行上传,可直接双字节编码文件中的文件头中读取得到。
对应上述编码方案,流程300中的步骤305-步骤308也给出了一种相应的解码方案:
步骤305:控制数据下载终端响应于对双字节编码文件进行解码,从双字节编码文件的文件头中读取得到位置信息;
步骤306:控制数据下载终端将双字节编码文件中与位置信息对应的双字节编码结果,采用与双字节编码方式对应的双字节解码方式进行解码;
步骤307:控制数据下载终端将双字节编码文件中与除位置信息所指示位置外的其它位置对应的单字节编码结果,采用与单字节编码方式对应的单字节解码方式进行解码;
步骤308:控制数据下载终端根据分别按双字节解码方式和单字节解码方式进行解码得到的第一解码数据和第二解码数据,得到原始二进制数据。
即在解码之前,先通过步骤305从文件头中读取到记录哪些编码后结果是按照双字节编码方式进行编码得到的位置信息,然后分别通过步骤306和步骤307采用不同的解码方式进行解码,分别得到第一解码数据和第二解码数据,将其按照原始排序复原即可得到原始二进制数据。
在上述任意实施例的基础上,由于无法事先确认一个待编码的差分文件中到底包含多少个可采用双字节编码方式的目标二进制数据,以及因为采用双字节编码方式时存在的一些未知原因对数据量造成的影响,使得无法确认最终产生的双字节编码文件是否确实相较于常规的单字节编码文件的数据量更小,因此为了确保确实实现尽可能降低数据量的目的,还可以由上述执行主体在执行上述方案的操作时,也按单字节编码方式对原始二进制数据进行编码,得到单字节编码文件,然后在发现单字节编码文件的大小小于双字节编码文件的大小的情况下,将单字节编码文件通过预设路径上传至内容分发网络,即选择数据量更小的单字节编码文件来实际使用,而非继续选用双字节编码文件。
该比较哪个数据量更小的方案在待编码文件为差分文件时的适用几率较小,但更适合针对其它数据结构不够紧凑的其它类型文件。
为加深理解,本申请还结合一个具体应用场景,给出了一种具体的实现方案:
假定应用提供商A开发得到的X应用的2.0版本,但当前其存储至内容分发网络中的X应用的版本为1.6,因此为了尽可能的减少使用CDN的成本,应用提供商A将采用下述方案:
1)应用提供商A在本地制作得到1.6→2.0版本的差分升级包M;
2)应用提供商A确定出差分升级包M中共存在100个符合预设要求的目标二进制数据;
3)应用提供商A对上述100个目标二进制数据采用双字节编码方式进行编码,对剩余的二进制数据采用单字节编码方式进行编码,得到编码结果;
4)应用提供商A记录得到采用双字节编码方式进行编码得到的编码结果的在完整编码结果中的位置信息,并将该位置信息记录在如图4所示的编码文件的文件头部分(即图4中的Header部分),得到包含有文件头的双字节编码文件。
如图4所示,其最开始的4个byte(字节)记录了Header的长度,即用4个byte记录了Header共有40个byte,即Header部分共有40*8=320bits(位),而Data部分(即数据正文、编码结果)最多长度为640byte,而编码后的一个bi其实对应解码后的2个byte。
具体的,假定一段Header中记录的位置信息为:00001000,这8个bit从左至右可编号为1~8,编号1~4均为0,将说明对应的编码结果是通过单字节编码得到的,编号5为1,则说明对应的编码结果是通过双字节编码得到的,因此需要按照双字节解码方式进行解码。最终就可以完整的把文件解码回来。
5)应用提供商A将双字节编码文件作为最新的差分文件包上传至内容分发网络共广大应用下载更新;
6)用户B通过内容分发网络下载该差分文件包,并通过读取其文件头中的位置信息来采用相应的解码方式,还原得到可识别的文件来对原有的1.6版本的应用X进行增量更新。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于编码文件的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的用于编码文件的装置500可以包括:待编码文件获取单元501、目标二进制数据确定单元502、双字节编码单元503。其中,待编码文件获取单元501,被配置成获取待编码的差分文件的原始二进制数据;目标二进制数据确定单元502,被配置成确定原始二进制数据中符合预设要求的目标二进制数据;其中,预设要求为目标二进制数据的单字节编码结果为每位数均不大于5、每位数均不相同的5位数;双字节编码单元503,被配置成按照双字节编码方式对目标二进制数据进行双字节编码,得到双字节编码文件。
在本实施例中,用于编码文件的装置500中:待编码文件获取单元501、目标二进制数据确定单元502、双字节编码单元503的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201-203的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,用于编码文件的装置500中还可以包括:
位置信息记录单元,被配置成记录采用双字节编码方式得到的双字节编码结果的位置信息;
双字节解码单元,被配置成控制数据下载终端根据位置信息采用与双字节编码方式对应的双字节解码方式解码双字节编码文件。
在本实施例的一些可选的实现方式中,该位置信息记录单元可以进一步被配置成:
获取采用双字节编码方式得到的双字节编码结果的位置信息;
将位置信息记录在双字节编码文件的文件头中;
以及该双字节解码单元可以进一步被配置成:
控制数据下载终端响应于对双字节编码文件进行解码,从双字节编码文件的文件头中读取得到位置信息;
控制数据下载终端将双字节编码文件中与位置信息对应的双字节编码结果,采用与双字节编码方式对应的双字节解码方式进行解码。
在本实施例的一些可选的实现方式中,用于编码文件的装置500中还可以包括:
位置信息压缩单元,被配置成在将位置信息记录在双字节编码文件的文件头之前,压缩位置信息。
在本实施例的一些可选的实现方式中,用于编码文件的装置500中还可以包括:
单字节解码单元,被配置成控制数据下载终端将双字节编码文件中与除位置信息所指示位置外的其它位置对应的单字节编码结果,采用与单字节编码方式对应的单字节解码方式进行解码;
原始二进制数据还原单元,被配置成控制数据下载终端根据分别按双字节解码方式和单字节解码方式进行解码得到的第一解码数据和第二解码数据,得到原始二进制数据。
在本实施例的一些可选的实现方式中,用于编码文件的装置500中还可以包括:
全量单字节编码单元,被配置成按单字节编码方式对原始二进制数据进行编码,得到单字节编码文件;
大小比较及处理单元,被配置成响应于单字节编码文件的大小小于双字节编码文件的大小,将单字节编码文件通过预设路径上传至内容分发网络。
本实施例作为对应于上述方法实施例的装置实施例存在,本实施例提供的用于编码文件的装置,针对数据结构较为紧凑的差分文件,提供了一种能够尽可能降低其编码结果的数据量的编码方式,即针对待编码的差分文件中符合预设要求的目标二进制数据换用双字节编码,使得目标二进制数据的双字节编码结果可比按照常规的单字节编码得到的单字节编码结果减少1个字节的数据量,进而使得双字节编码文件更小,从而降低成本。
根据本申请的实施例,本申请还提供了一种电子设备和一种计算机可读存储介质。
图6示出了一种适于用来实现本申请实施例的用于编码文件的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的用于编码文件的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的用于编码文件的方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的用于编码文件的方法对应的程序指令/模块(例如,附图5所示的待编码文件获取单元501、目标二进制数据确定单元502、双字节编码单元503)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的用于编码文件的方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储该电子设备在执行用于编码文件的方法所创建的各类数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至适用于执行用于编码文件的方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
适用于执行用于编码文件的方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生适用于执行用于编码文件的方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(VPS,Virtual Private Server)服务中存在的管理难度大,业务扩展性弱的缺陷。
本申请实施例针对数据结构较为紧凑的差分文件,提供了一种能够尽可能降低其编码结果的数据量的编码方式,即针对待编码的差分文件中符合预设要求的目标二进制数据换用双字节编码,使得目标二进制数据的双字节编码结果可比按照常规的单字节编码得到的单字节编码结果减少1个字节的数据量,进而使得双字节编码文件更小,从而降低成本。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (14)

1.一种用于编码文件的方法,包括:
获取待编码的差分文件的原始二进制数据;
确定所述原始二进制数据中符合预设要求的目标二进制数据;其中,所述预设要求为所述目标二进制数据的单字节编码结果为每位数均不大于5、每位数均不相同的5位数;
按照双字节编码方式对所述目标二进制数据进行双字节编码,得到双字节编码文件。
2.根据权利要求1所述的方法,还包括:
记录采用所述双字节编码方式得到的双字节编码结果的位置信息;
控制数据下载终端根据所述位置信息采用与所述双字节编码方式对应的双字节解码方式解码所述双字节编码文件。
3.根据权利要求2所述的方法,其中,所述记录采用所述双字节编码方式得到的双字节编码结果的位置信息,包括:
获取采用所述双字节编码方式得到的双字节编码结果的位置信息;
将所述位置信息记录在所述双字节编码文件的文件头中;以及
所述控制数据下载根据所述位置信息采用与所述双字节编码方式对应的双字节解码方式解码所述双字节编码文件,包括:
控制所述数据下载终端响应于对所述双字节编码文件进行解码,从所述双字节编码文件的文件头中读取得到所述位置信息;
控制所述数据下载将所述双字节编码文件中与所述位置信息对应的双字节编码结果,采用与所述双字节编码方式对应的双字节解码方式进行解码。
4.根据权利要求3所述的方法,其中,在将所述位置信息记录在所述双字节编码文件的文件头之前,还包括:
压缩所述位置信息。
5.根据权利要求3所述的方法,还包括:
控制所述数据下载将所述双字节编码文件中与除所述位置信息所指示位置外的其它位置对应的单字节编码结果,采用与单字节编码方式对应的单字节解码方式进行解码;
控制所述数据下载根据分别按所述双字节解码方式和所述单字节解码方式进行解码得到的第一解码数据和第二解码数据,得到所述原始二进制数据。
6.根据权利要求1至5任一项所述的方法,还包括:
按单字节编码方式对所述原始二进制数据进行编码,得到单字节编码文件;
响应于所述单字节编码文件的大小小于所述双字节编码文件的大小,将所述单字节编码文件通过预设路径上传至内容分发网络。
7.一种用于编码文件的装置,包括:
待编码文件获取单元,被配置成获取待编码的差分文件的原始二进制数据;
目标二进制数据确定单元,被配置成确定所述原始二进制数据中符合预设要求的目标二进制数据;其中,所述预设要求为所述目标二进制数据的单字节编码结果为每位数均不大于5、每位数均不相同的5位数;
双字节编码单元,被配置成按照双字节编码方式对所述目标二进制数据进行双字节编码,得到双字节编码文件。
8.根据权利要求7所述的装置,还包括:
位置信息记录单元,被配置成记录采用所述双字节编码方式得到的双字节编码结果的位置信息;
双字节解码单元,被配置成控制数据下载终端根据所述位置信息采用与所述双字节编码方式对应的双字节解码方式解码所述双字节编码文件。
9.根据权利要求8所述的装置,其中,所述位置信息记录单元进一步被配置成:
获取采用所述双字节编码方式得到的双字节编码结果的位置信息;
将所述位置信息记录在所述双字节编码文件的文件头中;以及
所述双字节解码单元进一步被配置成:
控制所述数据下载终端响应于对所述双字节编码文件进行解码,从所述双字节编码文件的文件头中读取得到所述位置信息;
控制所述数据下载终端将所述双字节编码文件中与所述位置信息对应的双字节编码结果,采用与所述双字节编码方式对应的双字节解码方式进行解码。
10.根据权利要求9所述的装置,还包括:
位置信息压缩单元,被配置成在将所述位置信息记录在所述双字节编码文件的文件头之前,压缩所述位置信息。
11.根据权利要求9所述的装置,还包括:
单字节解码单元,被配置成控制所述数据下载终端将所述双字节编码文件中与除所述位置信息所指示位置外的其它位置对应的单字节编码结果,采用与单字节编码方式对应的单字节解码方式进行解码;
原始二进制数据还原单元,被配置成控制所述数据下载终端根据分别按所述双字节解码方式和所述单字节解码方式进行解码得到的第一解码数据和第二解码数据,得到所述原始二进制数据。
12.根据权利要求7至11任一项所述的装置,还包括:
全量单字节编码单元,被配置成按单字节编码方式对所述原始二进制数据进行编码,得到单字节编码文件;
大小比较及处理单元,被配置成响应于所述单字节编码文件的大小小于所述双字节编码文件的大小,将所述单字节编码文件通过预设路径上传至内容分发网络。
13.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的用于编码文件的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的用于编码文件的方法。
CN202011277585.3A 2020-11-16 2020-11-16 用于编码文件的方法、装置、电子设备及可读存储介质 Active CN112351107B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011277585.3A CN112351107B (zh) 2020-11-16 2020-11-16 用于编码文件的方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011277585.3A CN112351107B (zh) 2020-11-16 2020-11-16 用于编码文件的方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN112351107A true CN112351107A (zh) 2021-02-09
CN112351107B CN112351107B (zh) 2023-10-03

Family

ID=74363984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011277585.3A Active CN112351107B (zh) 2020-11-16 2020-11-16 用于编码文件的方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN112351107B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114070470A (zh) * 2021-11-17 2022-02-18 中国银行股份有限公司 编解码方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100278427A1 (en) * 2009-04-30 2010-11-04 International Business Machines Corporation Method and system for processing text
CN102314413A (zh) * 2010-07-06 2012-01-11 上海闻泰电子科技有限公司 一种移动终端的电子书跳转定位方法
CN103098094A (zh) * 2010-09-10 2013-05-08 想象技术有限公司 用于基于图块的3d计算机图形系统的可随机访问的无损参数数据压缩
CN103346800A (zh) * 2013-07-08 2013-10-09 沈阳东软医疗系统有限公司 一种数据压缩方法及装置
US20160020782A1 (en) * 2013-03-15 2016-01-21 Numbergun Llc Improvements for base64 encoding and decoding
JP2018067781A (ja) * 2016-10-18 2018-04-26 株式会社リコー 符号化装置、プログラム、符号化方法
CN109145582A (zh) * 2018-06-05 2019-01-04 中国科学院信息工程研究所 一种基于字节对编码的密码猜测集生成方法、密码破解方法及装置
CN109165001A (zh) * 2018-08-24 2019-01-08 京东方科技集团股份有限公司 编码方法、装置及显示装置
CN109871520A (zh) * 2019-02-28 2019-06-11 魏勇 一种适用于http内容内嵌的二进制数据编解码方法
CN110377666A (zh) * 2019-07-26 2019-10-25 浪潮软件股份有限公司 基于cmsp消息中间件进行异源数据库间数据同步的方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100278427A1 (en) * 2009-04-30 2010-11-04 International Business Machines Corporation Method and system for processing text
CN102314413A (zh) * 2010-07-06 2012-01-11 上海闻泰电子科技有限公司 一种移动终端的电子书跳转定位方法
CN103098094A (zh) * 2010-09-10 2013-05-08 想象技术有限公司 用于基于图块的3d计算机图形系统的可随机访问的无损参数数据压缩
US20160020782A1 (en) * 2013-03-15 2016-01-21 Numbergun Llc Improvements for base64 encoding and decoding
CN103346800A (zh) * 2013-07-08 2013-10-09 沈阳东软医疗系统有限公司 一种数据压缩方法及装置
JP2018067781A (ja) * 2016-10-18 2018-04-26 株式会社リコー 符号化装置、プログラム、符号化方法
CN109145582A (zh) * 2018-06-05 2019-01-04 中国科学院信息工程研究所 一种基于字节对编码的密码猜测集生成方法、密码破解方法及装置
CN109165001A (zh) * 2018-08-24 2019-01-08 京东方科技集团股份有限公司 编码方法、装置及显示装置
CN109871520A (zh) * 2019-02-28 2019-06-11 魏勇 一种适用于http内容内嵌的二进制数据编解码方法
CN110377666A (zh) * 2019-07-26 2019-10-25 浪潮软件股份有限公司 基于cmsp消息中间件进行异源数据库间数据同步的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张博;陶晓旭;刘宇;: "一种8 Gsps模数转换器中的8B10B编码电路设计", 西安邮电大学学报, no. 05 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114070470A (zh) * 2021-11-17 2022-02-18 中国银行股份有限公司 编解码方法及装置

Also Published As

Publication number Publication date
CN112351107B (zh) 2023-10-03

Similar Documents

Publication Publication Date Title
US20150324385A1 (en) System and method for applying an efficient data compression scheme to url parameters
US10958416B2 (en) Encrypted and compressed data transmission with padding
CN111857550B (zh) 用于数据去重的方法、设备以及计算机可读介质
US20150006475A1 (en) Data deduplication in a file system
US9225355B2 (en) Boosting decompression in the presence of reoccurring Huffman trees
US10666289B1 (en) Data compression using dictionary encoding
US10897270B2 (en) Dynamic dictionary-based data symbol encoding
JP5753946B2 (ja) フォントファイルをダウンロードする方法およびシステム
Xue et al. An optimized data hiding scheme for deflate codes
JP6647340B2 (ja) 改善されたファイルの圧縮及び暗号化
CN112351107B (zh) 用于编码文件的方法、装置、电子设备及可读存储介质
CN111178490B (zh) 数据输出方法、获取方法、装置和电子设备
CN110704232B (zh) 一种分布式系统中失效节点的修复方法、装置和设备
US10720941B2 (en) Computer system supporting migration between hardware accelerators through software interfaces
US11025272B2 (en) Real-time history-based byte stream compression
US10623016B2 (en) Accelerated compression/decompression including predefined dictionary
CN114282141A (zh) 压缩格式数据的处理方法、装置、电子设备及可读存储介质
US9654140B1 (en) Multi-dimensional run-length encoding
US20190179572A1 (en) Management of non-universal and universal encoders
CA2694720C (en) Method and apparatus for creating side information from data for use in interactive compression
CN113326459A (zh) 图片更新方法和装置
CN115905209A (zh) 编码方法及装置
CN112069140A (zh) 一种压缩、解压数据的方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant