WO2018121108A1 - 用于更新导航数据的增量数据的生成方法及生成装置 - Google Patents

用于更新导航数据的增量数据的生成方法及生成装置 Download PDF

Info

Publication number
WO2018121108A1
WO2018121108A1 PCT/CN2017/110700 CN2017110700W WO2018121108A1 WO 2018121108 A1 WO2018121108 A1 WO 2018121108A1 CN 2017110700 W CN2017110700 W CN 2017110700W WO 2018121108 A1 WO2018121108 A1 WO 2018121108A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
target
bit
original
generating
Prior art date
Application number
PCT/CN2017/110700
Other languages
English (en)
French (fr)
Inventor
范晨星
毕世飞
Original Assignee
沈阳美行科技有限公司
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 沈阳美行科技有限公司 filed Critical 沈阳美行科技有限公司
Publication of WO2018121108A1 publication Critical patent/WO2018121108A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/387Organisation of map data, e.g. version management or database structures
    • G01C21/3881Tile-based structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Definitions

  • the invention relates to a method and a generating device for generating incremental data for updating navigation data, and belongs to the technical field of navigation incremental updating.
  • Car navigation and mobile navigation have been widely used, and its convenient navigation function brings convenience to people's travel.
  • the navigation data such as road information and traffic information are frequently updated, which causes the update frequency to increase greatly.
  • the full update method is not currently used, and the incremental update method is usually adopted, that is, only the data that has changed since the last update is updated. In this manner, incremental data is generated based on the difference between the pre-update data and the updated data for the user to download to update the navigation data on the user terminal of the user.
  • the existing incremental update method can save network bandwidth and time in theory compared with the full update mode, but in fact, the amount of data of incremental data is still large, sometimes even more than the amount of data when using the full update method. Large, so it is often difficult to update the navigation data.
  • the present invention provides a method and a generating device for generating incremental data for updating navigation data, which are used to reduce the amount of data of incremental data.
  • An embodiment of the present invention provides a method for generating incremental data for updating navigation data, including:
  • the incremental data is generated based on the bit difference information.
  • Another embodiment of the present invention provides a device for generating incremental data for updating navigation data, which can implement the above-described generating method, and the generating device includes:
  • An expansion module configured to expand the original data byte stream into a raw data bit stream, and expand the target data byte stream into a target data bit stream;
  • An identification module configured to identify bit difference information between the original data bitstream and the target data bitstream
  • a generating module configured to generate the incremental data based on the bit difference information.
  • a further embodiment of the present invention provides an apparatus for generating incremental data for updating navigation data, comprising: a processor and a memory for storing processor-executable instructions; wherein the processor is configured to:
  • the incremental data is generated based on the bit difference information.
  • Yet another embodiment of the present invention provides a non-transitory computer readable storage medium capable of causing a navigation terminal to perform an increment for updating navigation data when instructions in the storage medium are executed by a processor of a navigation terminal
  • a method of generating data comprising:
  • the incremental data is generated based on the bit difference information.
  • the method, device and readable storage medium of the invention can obtain navigation before and after update more accurately A change between data blocks, thereby reducing the amount of data of incremental data when updating navigation data.
  • FIG. 1 is a flowchart of a method for generating incremental data for updating navigation data according to an embodiment of the present invention
  • step 300 is a specific flow chart of step 300 in the method shown in FIG. 1;
  • FIG. 3 is an exemplary diagram of a specific generation process of a hash map
  • step 400 is a specific flow chart of step 400 in the method shown in FIG. 1;
  • FIG. 5 is a specific flowchart of step 410 in the method shown in FIG. 4;
  • FIG. 6 is a schematic structural diagram of an apparatus for generating incremental data for updating navigation data according to an embodiment of the present invention.
  • FIG. 7 is a schematic structural diagram of the identification module 20 in the generating apparatus shown in FIG. 6;
  • FIG. 8 is a schematic structural diagram of a generation module 40 in the generation device shown in FIG. 6.
  • the method for generating incremental data for updating navigation data includes the following steps:
  • Step 100 Read the original navigation data block to form a raw data byte stream, and read the target navigation data block to form a target data byte stream.
  • the navigation data block refers to a data block formed by using the navigation data in a square grid according to the existing navigation electronic map storage standard; the original navigation data block refers to the old navigation data block before the current update is performed.
  • the target navigation data block is a new navigation data block after this update.
  • Step 200 Expand the original data byte stream into a raw data bit stream, and expand the target data byte stream into a target data bit stream.
  • a byte stream can be formed by arranging the bytes in one data block in a certain order.
  • One data block corresponds to one byte stream.
  • Table 1 the symbol "0x” represents hexadecimal, and 1 byte is usually represented by two hexadecimal numbers, such as "0x01", which corresponds to 8 binary sequences, such as "00000001”; Values 0 and 1 are stored in an 8-byte data string, such as "0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01". This expands a byte to 8 bytes, converting bit processing to normal byte processing.
  • Step 300 Identify bit difference information of the original data bit stream and the target data bit stream.
  • the step 300 may include the following steps:
  • Step 310 forming a raw data hash map and a target hash value.
  • each target bit in the target data bitstream is a starting point, and a target hash value corresponding to the plurality of target bits in the shortest matching length is calculated.
  • the specific generation process of the original data hash mapping table is to traverse the bit stream, and calculate a hash value of the shortest matching length at a position in the bit stream, and stop if it is smaller than the shortest matching data length.
  • the hash map is a mapping table of the correspondence between each hash value and each position in the bit stream. For example, as shown in FIG. 3, the corresponding hash value is calculated by the hash algorithm with the shortest matching length at position 0 and position 1 of the bit stream, respectively.
  • the shortest matching length can be 48 bits of data.
  • the hash mapping table By using the hash mapping table to identify the bit difference information, it is beneficial to ensure the accuracy of the search result. Moreover, since the data amount of the navigation data block is usually less than 150K bytes, the operation time is still at the millisecond level, and the operation speed is fast.
  • Step 320 Find an original hash value equal to the target hash value in the original data hash map. If not found, step 330 is performed; if found, step 340 is performed.
  • Step 330 Identify a plurality of target bits corresponding to the target hash value as increasing bits.
  • a target hash value does not have an original hash value equal to that in the original data hash map, indicating that the target hash value corresponds to multiple target bits in the original data bit stream. Does not exist, requires an additional increase in the update, so it is identified as adding bits.
  • Step 340 Identify a plurality of target bits corresponding to the target hash value as copy bits.
  • a target hash value has an original hash value equal to that in the original data hash map, indicating that the target hash value corresponds to multiple target bits in the original data bitstream.
  • the plurality of consecutive target hash values are correspondingly
  • the target bits are collectively identified as consecutive bits, which are used as copy bits. Specifically, if the original pair and the target hash value of the first pair are matched, the comparison is continued until the inconsistency, and the last matched bit length is recorded, when the plurality of consecutive bits include the same bit value.
  • the consecutive bits of the longest bit are selected as the copy bits. For example, in the matching result, ABC, ABCD, and ABCDE are three consecutive pairs of matched bits, and the bit lengths are 3, 4, and 5, respectively.
  • the continuous bit ABCDE has the longest bit length of 5 bits, so the set of consecutive bits is used as a copy bit. This is because, although ABC and ABCD are also matched consecutive bits, the latter is more likely to be the target data bit that the client really wants to update than the continuous bit ABCDE with the longest bit length, while the former only has It may happen to be consistent.
  • Step 400 Generate the incremental data based on the bit difference information.
  • the incremental data may be in the form of an instruction list, and the types of the instructions may be as shown in Table 2 below.
  • the step 400 may include the following steps:
  • Step 410 Generate an add instruction and a copy instruction.
  • an increase instruction is generated based on the data content and the data length of the added bit.
  • the data content of the added bit is an expanded bit stream, which can be shrunk into a byte stream in order to facilitate the implementation of the update.
  • the specific operation is as follows: binary data with a value of 0 or 1 is converted into a bit value within one byte by a processing unit of 8 values, and then a byte value is formed, and less than 8 tails are complemented by 0.
  • a copy instruction is generated based on the location and data length of the copy bit in the original data bitstream.
  • the location may be an absolute location
  • the copy instruction may be divided into two types: a location-relative copy instruction and a recessive relative copy instruction.
  • the position-relative copy instruction means that when the copy instruction is generated, the position-relative copy instruction can be generated based on the relative position and the data length of the copy bit in the original data bit stream.
  • the relative position is a relative offset from the position at the time of the previous copy, which is advantageous for reducing the command length.
  • the previous position is the 9990th bit, and the 999th bit is copied this time. If the absolute position is recorded in the copy command, the data of "9999" is recorded; if only the relative position is recorded in the copy command, As long as the data of "10” is recorded, it is obvious that "10” greatly reduces the length of the instruction compared with "9999".
  • a recessive relative copy instruction means that a recessive relative copy instruction is generated based only on the data length of the copy bit, and the relative position or absolute position in the original data bit stream is no longer used. Specifically, the location may be successively copied immediately after the previous copy operation, or the hidden offset may be calculated by using another operation mechanism to determine the copy location, and the determined copy location does not need to be recorded in the copy instruction, thereby facilitating further reduction Instruction length.
  • Step 420 normalize the adding instruction and the copy instruction into an instruction list as the incremental data.
  • the command part of each instruction in the instruction list may be uniformly stored in the header of the incremental data, and the information part of each instruction is sequentially stored in the body part of the incremental data, and the absolute position, relative position or data length in the instruction Expressed with variable length variables. Since the command part is represented by 2 bits or 3 bits, one byte can represent multiple commands, and the command compression rate is up to 75%, thereby The amount of data for incremental data can be further reduced.
  • the instruction sequence is optimized by encoding the instruction list by using an encoding method such as instruction compression or variable length variable, so that the amount of data of the incremental data can be further reduced.
  • a sliding pointer may also be introduced to assist in generating the above instructions.
  • the method includes the following steps:
  • Step 411 setting a sliding pointer to the original data bit stream.
  • the sliding pointer is a kind of pointer variable. Specifically, the position of the sliding pointer can be assigned to 0 when initializing.
  • Step 412 When an increase instruction is to be generated, causing the slide pointer to slide backward by a length equal to the data length corresponding to the increase instruction, and generating the increase instruction.
  • Step 413 When a copy instruction is to be generated, the sliding pointer is jumped to a copy position of the original data bit stream, and the sliding pointer is slid backward by a length equal to the data length corresponding to the copy instruction.
  • step 414 it is compared whether the copy position is equal to the current position of the sliding pointer. If not, step 415 is performed, and if they are equal, step 416 is performed.
  • Step 415 When the copy position is not equal to the current position of the sliding pointer, generate a copy instruction of the position relative.
  • the relative position of the relative copy command in the original data bit stream is equal to the copy position minus the current position of the slide pointer.
  • Step 416 Generate the implicit relative copy instruction when the copy position is equal to the current position.
  • FIG. 6 is a schematic structural diagram of an apparatus for generating incremental data for updating navigation data according to an embodiment of the present invention.
  • the generating apparatus can implement the foregoing generating method. As shown in the figure, the generating apparatus at least includes: reading a template 10, The expansion module 20, the identification module 30, and the generation module 40 operate as follows:
  • the reading template 10 reads the original navigation data block to form a raw data byte stream, and reads the target navigation number. Forming a target data byte stream according to the block; the expansion module 20 expands the original data byte stream into a raw data bit stream, expanding the target data byte stream into a target data bit stream; the identification module 30 identifies the raw data stream a bit stream and bit difference information of the target data bit stream; the generating module 40 generates the delta data based on the bit difference information.
  • the foregoing identification module 30 specifically includes: a calculating unit 31, configured to calculate, by using each original bit in the original data bitstream, a plurality of original bits in a preset shortest matching length. Corresponding original hash value, forming a raw data hash map; calculating, according to each target bit in the target data bit stream, a target hash value corresponding to the plurality of target bits in the shortest matching length a searching unit 32, configured to search for an original hash value equal to the target hash value in the original data hash mapping table, and an identifying unit 33, configured to: when the searching unit is not found, A plurality of target bits corresponding to the target hash value are identified as increment bits; and when the search unit finds, the plurality of target bits corresponding to the target hash value are identified as copy bits.
  • a calculating unit 31 configured to calculate, by using each original bit in the original data bitstream, a plurality of original bits in a preset shortest matching length. Corresponding original hash value, forming a raw data
  • the generating module 40 may specifically include: the instructing unit 41 generates an adding instruction based on the data content and the data length of the added bit, and generates a position and a data length based on the copy bit in the original data bit stream. Copying instructions; the normalization unit 42 normalizes the added instructions and the copy instructions into an instruction list as the incremental data.
  • the copy instruction may include a positionally opposite copy instruction and a recessive relative copy instruction.
  • a sliding pointer can be provided to assist in generating the above instructions.
  • the bit storage feature of the navigation data is not considered. In order to reduce the amount of data, there is almost no redundant space for each value in the navigation data. For example, whether a road is a tunnel or not is stored in 1 bit. If byte storage is used, one byte (8 bits) is required.
  • Raw navigation block [0x01 0x02 0x03 0x04]
  • Target navigation data block [0x01 0x02 0x03 0x04][0x02 0x03 0x04]
  • the present invention generates incremental data based on the bit difference by converting the byte stream into the bit stream when performing incremental data creation, and improves the matching rate of the same data compared with the prior art based on the byte stream. High degree, reducing the redundancy rate of differential coding, thus reducing the amount of data of incremental data.
  • the foregoing program may be stored in a computer readable storage medium, and the program is executed when executed.
  • the foregoing steps include the steps of the foregoing method embodiments; and the foregoing storage medium includes: a medium that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disk.
  • embodiments of the present invention can be provided as a method, system, or computer program product.
  • the present invention may employ an entirely hardware embodiment, an entirely software embodiment, or a junction.
  • the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage and optical storage, etc.) including computer usable program code.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Navigation (AREA)

Abstract

提供一种用于更新导航数据的增量数据的生成方法及生成装置,其中的生成方法包括:读取原始导航数据块形成原始数据字节流,读取目标导航数据块形成目标数据字节流(100);将所述原始数据字节流扩张为原始数据比特流,将所述目标数据字节流扩张为目标数据比特流(200);识别原始数据比特流与目标数据比特流的比特差异信息(300);基于比特差异信息生成增量数据(400),能够减少增量数据的数据量。

Description

用于更新导航数据的增量数据的生成方法及生成装置 技术领域
本发明涉及一种用于更新导航数据的增量数据的生成方法及生成装置,属于导航增量更新技术领域。
背景技术
车载导航和手机导航已经被人们广泛使用,其便捷的导航功能给人们的出行带来诸多便利,然而由于城镇道路变化快等原因,为了获得更准确和丰富的导航信息,就需要对导航地图中的道路信息、交通信息等导航数据进行频繁地更新,这就会造成更新频次大大增加。
为了减少对导航数据每次进行更新时的数据量,目前并不采用完全更新方式,而通常采用增量更新方式,即只对上一次更新后又发生了变化的数据进行更新。在这种方式中,根据更新前数据与更新后数据之间的差异部分生成增量数据,供用户下载,以更新该用户的用户终端上的导航数据。
现有的增量更新方式虽然理论上与完全更新方式相比能节约网络带宽和时间,但实际上,由于增量数据的数据量仍然很大,有时甚至比采用完全更新方式时的数据量还大,因此经常对导航数据的更新造成困难。
发明内容
本发明提供一种用于更新导航数据的增量数据的生成方法及生成装置,用以减少增量数据的数据量。
本发明一实施例提供一种用于更新导航数据的增量数据的生成方法,其中包括:
将原始数据字节流扩张为原始数据比特流,将所述目标数据字节流扩张为目标数据比特流;
识别所述原始数据比特流与所述目标数据比特流的比特差异信息;
基于所述比特差异信息生成所述增量数据。
本发明另一实施例提供一种用于更新导航数据的增量数据的生成装置,能够实现上述生成方法,该生成装置包括:
读取模板,用于读取原始导航数据块形成原始数据字节流,读取目标导航数据块形成目标数据字节流;
扩张模块,用于将所述原始数据字节流扩张为原始数据比特流,将所述目标数据字节流扩张为目标数据比特流;
识别模块,用于识别所述原始数据比特流与所述目标数据比特流的比特差异信息;和
生成模块,用于基于所述比特差异信息生成所述增量数据。
本发明又一实施例提供一种用于更新导航数据的增量数据的生成装置,其中包括:处理器以及用于存储处理器可执行指令的存储器;其中的处理器被配置为:
将所述原始数据字节流扩张为原始数据比特流,将所述目标数据字节流扩张为目标数据比特流;
识别所述原始数据比特流与所述目标数据比特流的比特差异信息;
基于所述比特差异信息生成所述增量数据。
本发明再一实施例提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由导航终端的处理器执行时,使得导航终端能够执行一种用于更新导航数据的增量数据的生成方法,所述方法包括:
将所述原始数据字节流扩张为原始数据比特流,将所述目标数据字节流扩张为目标数据比特流;
识别所述原始数据比特流与所述目标数据比特流的比特差异信息;
基于所述比特差异信息生成所述增量数据。
本发明所述方法、装置及可读存储介质能够更准确地获得更新前后导航 数据块间的变化,从而在更新导航数据时减少增量数据的数据量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所述用于更新导航数据的增量数据的生成方法的流程图;
图2为图1所示方法中步骤300的具体流程图;
图3为哈希映射表的具体生成过程的举例图;
图4为图1所示方法中步骤400的具体流程图;
图5为图4所示方法中步骤410的具体流程图;
图6为本发明实施例所述用于更新导航数据的增量数据的生成装置的结构示意图;
图7为图6所示生成装置中的识别模块20的结构示意图;
图8为图6所示生成装置中的生成模块40的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本实施例所述用于更新导航数据的增量数据的生成方法包括如下步骤:
步骤100:读取原始导航数据块形成原始数据字节流,读取目标导航数据块形成目标数据字节流。
其中,导航数据块是指根据现有的导航电子地图存储标准,将导航数据以正方形网格为单位而形成的数据块;原始导航数据块是指未进行本次更新之前的旧的导航数据块;目标导航数据块是进行了本次更新之后的新的导航数据块。
步骤200:将所述原始数据字节流扩张为原始数据比特流,将所述目标数据字节流扩张为目标数据比特流。
具体地,通过将一个数据块中的字节按一定顺序排列后便可以形成字节流。1个数据块对应1个字节流。如表1所示,符号“0x”表示十六进制,1个字节通常由两位十六进制数表示,如“0x01”,其对应8个二进制序列,如“00000001”;然后以0和1为值,存储在8个字节的数据串中,如“0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01”。这样便将一个字节扩张为8个字节,将比特处理转换为正常的字节处理。
表1
Figure PCTCN2017110700-appb-000001
例如,如表1所示,为扩张前的字节流与扩张后的比特流的一例,其中,“0x01”表示一个字节,“0x”表示其后的字符为十六进制数字,“00000001”表示与该字节对应的八个比特,其中每位比特的取值为0或1。
步骤300:识别所述原始数据比特流与所述目标数据比特流的比特差异信息。
具体地,如图2所示,该步骤300可以包括如下步骤:
步骤310,形成原始数据哈希映射表和目标哈希值。
具体地,以所述原始数据比特流中的每个原始比特为起点,计算预设的最短匹配长度内的多个原始比特所对应的原始哈希值,形成原始数据哈希映射表;以所述目标数据比特流中的每个目标比特为起点,计算所述最短匹配长度内的多个目标比特所对应的目标哈希值。
其中,上述原始数据哈希映射表的具体生成过程为,遍历比特流,在比特流中的逐个位置计算最短匹配长度的哈希(hash)值,如果小于最短匹配数据长度则停止。哈希映射表是每个哈希值与比特流中的每个位置的对应关系的映射表。例如,如图3所示,分别在比特流的位置0处和位置1处以最短匹配长度通过哈希算法计算出了相应的哈希值。其中,最短匹配长度可以为48比特数据。
通过采用哈希映射表的方式来识别比特差异信息,有利于保证查找结果的准确度。并且,由于导航数据块的数据量通常都小于150K字节,因此运算时间仍在毫秒级别,运算速度很快。
步骤320,在所述原始数据哈希映射表中查找与所述目标哈希值相等的原始哈希值。若没找到则执行步骤330;若找到则执行步骤340。
步骤330,将所述目标哈希值所对应的多个目标比特识别为增加比特。
在本步骤中,如果某个目标哈希值在原始数据哈希映射表中不存在与之相等的原始哈希值,表明这个目标哈希值所对应的多个目标比特是在原始数据比特流中不存在,在更新时需要额外增加,因此识别为增加比特。
步骤340,将所述目标哈希值所对应的多个目标比特识别为拷贝比特。
在本步骤中,如果某个目标哈希值在原始数据哈希映射表中存在与之相等的原始哈希值,表明这个目标哈希值所对应的多个目标比特是在原始数据比特流中原本就存在,在更新时不需要额外增加,只要重复利用原有数据即可,因此识别为拷贝比特。
另外,若在所述原始数据哈希映射表中找到多个连续的原始哈希值分别与多个连续的目标哈希值相等,则将所述多个连续的目标哈希值所对应的多个目标比特共同识别为连续比特,将该连续比特作为拷贝比特。具体地,如果匹配到第一对相同的原始哈希值与目标哈希值时,继续比较,直到不一致,记录最后匹配到的比特长度,当多个所述连续比特中包含有相同的比特值时,选择比特位最长的所述连续比特作为所述拷贝比特。例如,在匹配结果中,ABC、ABCD和ABCDE为三组匹配到的连续比特,比特长度分别为3、4、5。其中,连续比特ABCDE的比特长度最长,为5比特,因此将该组连续比特作为拷贝比特。这是因为,ABC与ABCD虽然也是匹配得到的连续比特,但与比特长度最长的连续比特ABCDE相比,后者是客户真正想要更新的目标数据比特的可能性更大,而前者只是有可能碰巧一致。
在上述步骤300中识别完比特差异信息之后,继续执行如下步骤:
步骤400,基于所述比特差异信息生成所述增量数据。
其中,所述增量数据可以采用指令列表的形式,指令的类型可以参见如下的表2所示。
表2
Figure PCTCN2017110700-appb-000002
具体地,如图4所示,该步骤400可以包括如下步骤:
步骤410:生成增加指令和拷贝指令。
具体地,基于所述增加比特的数据内容及数据长度生成增加指令。其中,增加比特的数据内容是扩张后的比特流,为了便于实施更新,可以将其收缩为字节流。具体操作如下:将数值为0或1的二进制数据以8个数值为处理单位转换为一个字节内的比特值,而后形成一个字节数值,不足8个的尾部补0处理。
具体地,基于所述拷贝比特在所述原始数据比特流中的位置及数据长度生成拷贝指令。可选地,如表2所示,所述位置可以为绝对位置,所述拷贝指令可以分为两种:位置相对的拷贝指令和隐性相对的拷贝指令。
其中,位置相对的拷贝指令是指,在生成拷贝指令时,可以基于所述拷贝比特在所述原始数据比特流中的相对位置及数据长度生成位置相对的拷贝指令。其中,相对位置是相对于前次拷贝时的位置的相对偏移,这样有利于减少指令长度。例如,前次的位置为第9990位,本次要拷贝的是第9999位,如果在拷贝指令中记录绝对位置,则要记录“9999”这个数据;而如果在拷贝指令中只记录相对位置,则只要记录“10”这个数据即可,很显然,“10”与“9999”相比,大大减少了指令的长度。
隐性相对的拷贝指令是指,仅基于所述拷贝比特的数据长度生成隐性相对的拷贝指令,而不再使用在原始数据比特流中的相对位置或绝对位置。具体地,可以紧接着前次拷贝操作后的位置连续拷贝,或者采用其他的运算机制计算隐性偏移来确定拷贝位置,而所确定的拷贝位置无需记录在拷贝指令中,因此有利于进一步减少指令长度。
步骤420,将所述增加指令与所述拷贝指令归化成指令列表作为所述增量数据。
其中,指令列表中的各个指令的命令部分可以统一存储在增量数据的头部中,各个指令的信息部分依次存储在增量数据的本体部中,指令中的绝对位置、相对位置或数据长度用可变长变量表示。由于命令部分以2比特或3比特表示,因此一个字节能够表示多个命令,命令的压缩率最高达到75%,从而 能够进一步减少增量数据的数据量。通过采用指令压缩、可变长变量等编码方法存储指令列表,实现了指令优化和编码优化,从而能够进一步减小增量数据的数据量。
另外,在上述步骤410中,也可以引入滑动指针来辅助生成上述各指令,具体如图5所示,包括如下步骤:
步骤411,设置滑动指针指向所述原始数据比特流。
其中,滑动指针是一种指针变量,具体地,初始化时可以将滑动指针位置赋值为0。
步骤412,当要生成增加指令时,使所述滑动指针向后滑长度等于所述增加指令对应的所述数据长度,生成所述增加指令。
步骤413,当要生成拷贝指令时,使所述滑动指针跳跃至所述原始数据比特流的拷贝位置,并使所述滑动指针向后滑动长度等于所述拷贝指令对应的所述数据长度。
步骤414,比较所述拷贝位置是否等于所述滑动指针的当前位置,若不等则执行步骤415,若相等则执行步骤416。
步骤415,当所述拷贝位置不等于所述滑动指针的当前位置时,则生成所述位置相对的拷贝指令。
其中,该位置相对的拷贝指令在原始数据比特流中的相对位置等于拷贝位置减去滑动指针的当前位置。
步骤416,当所述拷贝位置等于所述当前位置,则生成所述隐性相对的拷贝指令。
图6为本发明实施例所述用于更新导航数据的增量数据的生成装置的结构示意图,该生成装置能够实现上述生成方法,如图所示,该生成装置至少包括:读取模板10、扩张模块20、识别模块30以及生成模块40,其工作原理如下:
读取模板10读取原始导航数据块形成原始数据字节流,读取目标导航数 据块形成目标数据字节流;扩张模块20将所述原始数据字节流扩张为原始数据比特流,将所述目标数据字节流扩张为目标数据比特流;识别模块30识别所述原始数据比特流与所述目标数据比特流的比特差异信息;生成模块40基于所述比特差异信息生成所述增量数据。
参照图7所示,上述识别模块30,具体包括:计算单元31,用于以所述原始数据比特流中的每个原始比特为起点,计算预设的最短匹配长度内的多个原始比特所对应的原始哈希值,形成原始数据哈希映射表;以所述目标数据比特流中的每个目标比特为起点,计算所述最短匹配长度内的多个目标比特所对应的目标哈希值;查找单元32,用于在所述原始数据哈希映射表中查找与所述目标哈希值相等的原始哈希值;识别单元33,用于当所述查找单元未找到时,将所述目标哈希值所对应的多个目标比特识别为增加比特;用于当所述查找单元找到时,将所述目标哈希值所对应的多个目标比特识别为拷贝比特。
参照图8所示,生成模块40可以具体包括:指令单元41基于所述增加比特的数据内容及数据长度生成增加指令,基于所述拷贝比特在所述原始数据比特流中的位置及数据长度生成拷贝指令;归化单元42将所述增加指令与所述拷贝指令归化成指令列表作为所述增量数据。可选地,该拷贝指令可以包括位置相对的拷贝指令和隐性相对的拷贝指令。另外也可以设置滑动指针来辅助生成上述指令。具体地,本发明所述生成装置各模块的功能可以参见前述生成方法实施例的相关说明,此处不再赘述。
在现有技术中,没有考虑导航数据的比特存储特征。为减少数据量,导航数据中的各项数值几乎没有冗余空间,比如表达一条道路是否是隧道,仅以1bit存储,如果用字节存储需要一个字节(8bit)。
如表3所示,如果以原始导航数据块为滑动窗口的基准,[0x01 0x02 0x03 0x04]比较完成后,新增的[0x02 0x03 0x04]将作为增加类型写进差异数据,但其实其可以从原始导航数据块中找到,并作为拷贝类型写进差异数据,这 部分就成了冗余。这是由于在现有算法中没有考虑导航数据的空间相似性而造成的。比如一条新建道路和已有道路相比,除了道路形状不一致外,在道路名称、道路种别、道路宽度、车道个数等可能一致,可以复用已有道路的部分数据。
表3
原始导航数据块 [0x01 0x02 0x03 0x04]
目标导航数据块 [0x01 0x02 0x03 0x04][0x02 0x03 0x04]
与上述在现有技术相比,如表1所示,如果仅将原始数据和目标数据视为字节流,以字节流中的5个字节范围为滑动窗口,其没有相同的连续数据块,差异很大;但是以比特流分析,原始数据与目标数据仅仅是整体偏移了1bit,差异非常小。因此,本发明在进行增量数据制作时,通过将字节流转换为比特流,基于比特差异生成了增量数据,与基于字节流的现有技术相比,提高了相同数据匹配率准确度高、降低了差异编码的冗余率,从而减少了增量数据的数据量。
实际运行后的结果表明,采用本发明后,中国范围数据的增量数据较现有算法减小31%。针对一个道路的导航数据块进行增量数据量比较发现,匹配度提高后,增量数据减少26%,后投入指令优化和编码优化,增量数据减少27%,总计增量数据减少53%。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结 合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (13)

  1. 一种用于更新导航数据的增量数据的生成方法,其特征在于,包括:
    将原始数据字节流扩张为原始数据比特流,将所述目标数据字节流扩张为目标数据比特流;
    识别所述原始数据比特流与所述目标数据比特流的比特差异信息;
    基于所述比特差异信息生成所述增量数据。
  2. 根据权利要求1所述的生成方法,其特征在于,识别所述比特差异信息包括:
    以所述原始数据比特流中的每个原始比特为起点,计算预设的最短匹配长度内的多个原始比特所对应的原始哈希值,形成原始数据哈希映射表;
    以所述目标数据比特流中的每个目标比特为起点,计算所述最短匹配长度内的多个目标比特所对应的目标哈希值;
    在所述原始数据哈希映射表中查找与所述目标哈希值相等的原始哈希值;
    若没找到,则将所述目标哈希值所对应的多个目标比特识别为增加比特;
    若找到,则将所述目标哈希值所对应的多个目标比特识别为拷贝比特。
  3. 根据权利要求2所述的生成方法,其特征在于,所述识别为拷贝比特包括:若在所述原始数据哈希映射表中找到多个连续的原始哈希值分别与多个连续的目标哈希值相等,则将所述多个连续的目标哈希值所对应的多个目标比特共同识别为连续比特,将该连续比特作为所述拷贝比特。
  4. 根据权利要求3所述的生成方法,其特征在于,当多组所述连续比特中包含有相同的比特值时,选择比特位最长的所述连续比特作为所述拷贝比特。
  5. 根据权利要求2~4中任一项所述的生成方法,其特征在于,生成所 述增量数据包括:
    基于所述增加比特的数据内容及数据长度生成增加指令;
    基于所述拷贝比特在所述原始数据比特流中的位置及数据长度生成拷贝指令;
    将所述增加指令与所述拷贝指令归化成指令列表作为所述增量数据。
  6. 根据权利要求5所述的生成方法,其特征在于,所述生成拷贝指令包括:
    基于所述拷贝比特在所述原始数据比特流中的相对位置及数据长度生成位置相对的拷贝指令;
    仅基于所述拷贝比特的数据长度生成隐性相对的拷贝指令。
  7. 根据权利要求6所述的生成方法,其特征在于,生成所述增量数据包括:
    设置滑动指针指向所述原始数据比特流;
    当要生成增加指令时,使所述滑动指针向后滑长度等于所述增加指令对应的所述数据长度,生成所述增加指令;
    当要生成拷贝指令时,使所述滑动指针跳跃至所述原始数据比特流的拷贝位置,并使所述滑动指针向后滑动长度等于所述拷贝指令对应的所述数据长度;
    比较所述拷贝位置是否等于所述滑动指针的当前位置,若不等则生成所述位置相对的拷贝指令;若相等则生成所述隐性相对的拷贝指令。
  8. 根据权利要求5所述的生成方法,其特征在于,所述指令列表中的命令部分存储在所述增量数据的头部中,所述指令列表中的信息部分存储在所述增量数据的本体部中;所述信息部分包括所述数据内容、所述数据长度及所述相对位置。
  9. 根据权利要求8所述的生成方法,其特征在于,所述位置或所述数据长度用可变长变量表示。
  10. 一种用于更新导航数据的增量数据的生成装置,能够实现上述权利要求1~9中任一项所述的生成方法,其特征在于,包括:
    读取模板,用于读取原始导航数据块形成原始数据字节流,读取目标导航数据块形成目标数据字节流;
    扩张模块,用于将所述原始数据字节流扩张为原始数据比特流,将所述目标数据字节流扩张为目标数据比特流;
    识别模块,用于识别所述原始数据比特流与所述目标数据比特流的比特差异信息;和
    生成模块,用于基于所述比特差异信息生成所述增量数据。
  11. 根据权利要求10所述的生成装置,其特征在于,所述识别模块包括:
    计算单元,用于以所述原始数据比特流中的每个原始比特为起点,计算预设的最短匹配长度内的多个原始比特所对应的原始哈希值,形成原始数据哈希映射表;以所述目标数据比特流中的每个目标比特为起点,计算所述最短匹配长度内的多个目标比特所对应的目标哈希值;
    查找单元,用于在所述原始数据哈希映射表中查找与所述目标哈希值相等的原始哈希值;
    识别单元,用于当所述查找单元未找到时,将所述目标哈希值所对应的多个目标比特识别为增加比特;用于当所述查找单元找到时,将所述目标哈希值所对应的多个目标比特识别为拷贝比特。
  12. 一种用于更新导航数据的增量数据的生成装置,其特征在于,包括:
    处理器;以及
    用于存储处理器可执行指令的存储器;
    其中,所述处理器被配置为:
    将所述原始数据字节流扩张为原始数据比特流,将所述目标数据字节流扩张为目标数据比特流;
    识别所述原始数据比特流与所述目标数据比特流的比特差异信息;
    基于所述比特差异信息生成所述增量数据。
  13. 一种非临时性计算机可读存储介质,当所述存储介质中的指令由导航终端的处理器执行时,使得导航终端能够执行一种用于更新导航数据的增量数据的生成方法,所述方法包括:
    将所述原始数据字节流扩张为原始数据比特流,将所述目标数据字节流扩张为目标数据比特流;
    识别所述原始数据比特流与所述目标数据比特流的比特差异信息;
    基于所述比特差异信息生成所述增量数据。
PCT/CN2017/110700 2016-12-28 2017-11-13 用于更新导航数据的增量数据的生成方法及生成装置 WO2018121108A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201611231354.2A CN108253977B (zh) 2016-12-28 2016-12-28 用于更新导航数据的增量数据的生成方法及生成装置
CN201611231354.2 2016-12-28

Publications (1)

Publication Number Publication Date
WO2018121108A1 true WO2018121108A1 (zh) 2018-07-05

Family

ID=62706914

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/110700 WO2018121108A1 (zh) 2016-12-28 2017-11-13 用于更新导航数据的增量数据的生成方法及生成装置

Country Status (2)

Country Link
CN (1) CN108253977B (zh)
WO (1) WO2018121108A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026736A (zh) * 2019-12-13 2020-04-17 中盈优创资讯科技有限公司 数据血缘管理方法及装置、数据血缘解析方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030040603A (ko) * 2001-11-15 2003-05-23 한국전자통신연구원 인피니밴드 시스템의 고속 데이터 송,수신 장치
CN101335591A (zh) * 2007-06-27 2008-12-31 联发科技股份有限公司 处理比特流的方法及装置
CN102128627A (zh) * 2010-01-19 2011-07-20 北京四维图新科技股份有限公司 电子地图的差异分析方法及差异分析装置
US20120154183A1 (en) * 2010-12-15 2012-06-21 Analog Bits, Inc. Multi-variable multi-wire interconnect
US20140013076A1 (en) * 2011-12-08 2014-01-09 Oracle International Corporation Efficient hardware instructions for single instruction multiple data processors
CN103957134A (zh) * 2014-04-22 2014-07-30 航天恒星科技有限公司 一种模块化可配置的遥测参数解析处理系统
CN105069046A (zh) * 2014-07-25 2015-11-18 沈阳美行科技有限公司 一种导航数据的更新方法、加载方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449325B1 (en) * 1998-03-13 2002-09-10 Samsung Electronics Co., Ltd. Circuitry operative on selected symbol slicing results for synchronizing data fields in a digital television receiver
KR100689551B1 (ko) * 2001-06-18 2007-03-09 삼성전자주식회사 부호분할다중접속 이동통신시스템에서 데이터 송신 및수신장치 및 방법
US7441092B2 (en) * 2006-04-20 2008-10-21 Microsoft Corporation Multi-client cluster-based backup and restore
US8533151B2 (en) * 2009-05-26 2013-09-10 Microsoft Corporation Generating a local copy of a virtualized application package from a local installation
CN102024033B (zh) * 2010-12-01 2016-01-20 北京邮电大学 一种自动检测音频模板并对视频分章的方法
CN102607577B (zh) * 2011-01-25 2015-08-12 北京四维图新科技股份有限公司 一种导航电子地图的增量更新方法、装置及系统
CN102842264A (zh) * 2011-06-23 2012-12-26 北京畅联万方科技有限公司 一种基于基础地图数据的增量更新的方法和系统
US9348592B2 (en) * 2011-12-22 2016-05-24 Intel Corporation Apparatus and method for sliding window data access
US9146950B1 (en) * 2012-12-14 2015-09-29 Symantec Corporation Systems and methods for determining file identities
CN103234549B (zh) * 2013-04-18 2015-12-02 沈阳美行科技有限公司 一种用于更新地图的差分数据生成方法
CN103744973A (zh) * 2014-01-11 2014-04-23 西安电子科技大学 基于多特征哈希的视频拷贝检测方法
CN103825682B (zh) * 2014-02-21 2015-03-25 株洲南车时代电气股份有限公司 一种高效快速的wtb多播消息数据传输方法
CN105302838B (zh) * 2014-07-31 2019-01-15 华为技术有限公司 分类方法、查找方法和设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030040603A (ko) * 2001-11-15 2003-05-23 한국전자통신연구원 인피니밴드 시스템의 고속 데이터 송,수신 장치
CN101335591A (zh) * 2007-06-27 2008-12-31 联发科技股份有限公司 处理比特流的方法及装置
CN102128627A (zh) * 2010-01-19 2011-07-20 北京四维图新科技股份有限公司 电子地图的差异分析方法及差异分析装置
US20120154183A1 (en) * 2010-12-15 2012-06-21 Analog Bits, Inc. Multi-variable multi-wire interconnect
US20140013076A1 (en) * 2011-12-08 2014-01-09 Oracle International Corporation Efficient hardware instructions for single instruction multiple data processors
CN103957134A (zh) * 2014-04-22 2014-07-30 航天恒星科技有限公司 一种模块化可配置的遥测参数解析处理系统
CN105069046A (zh) * 2014-07-25 2015-11-18 沈阳美行科技有限公司 一种导航数据的更新方法、加载方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026736A (zh) * 2019-12-13 2020-04-17 中盈优创资讯科技有限公司 数据血缘管理方法及装置、数据血缘解析方法及装置
CN111026736B (zh) * 2019-12-13 2024-03-12 中盈优创资讯科技有限公司 数据血缘管理方法及装置、数据血缘解析方法及装置

Also Published As

Publication number Publication date
CN108253977A (zh) 2018-07-06
CN108253977B (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
CA2475189C (en) Method and apparatus for window matching in delta compressors
US8078593B1 (en) Dictionary architecture and methodology for revision-tolerant data de-duplication
WO2017071431A1 (zh) 一种编码方法及装置
CN105868305A (zh) 一种支持模糊匹配的云存储数据去重复方法
WO2015139381A1 (zh) 一种终端软件升级方法及装置
WO2012033498A1 (en) Systems and methods for data compression
EP3435256A2 (en) Optimal sort key compression and index rebuilding
US10817474B2 (en) Adaptive rate compression hash processor
WO2020007288A1 (zh) 管理内存数据及在内存中维护数据的方法和系统
US9043275B2 (en) Data synchronization using string matching
CN111078672B (zh) 数据库的数据对比方法及装置
CN113760971A (zh) 用于检索图数据库的数据的方法、计算设备和存储介质
WO2011130879A1 (en) Match analysis for encoding optimized update packages
US9577666B2 (en) Method and system
CN111312333B (zh) 一种bwt查表性能改进方法、装置、设备和介质
CN114647764B (zh) 图结构的查询方法、装置及存储介质
WO2018121108A1 (zh) 用于更新导航数据的增量数据的生成方法及生成装置
JP2012164130A (ja) データ分割プログラム
US7379940B1 (en) Focal point compression method and apparatus
CN114168694A (zh) 路网融合方法、装置、计算机设备和存储介质
JP2018061166A (ja) 符号化プログラム、符号化装置および符号化方法
CN118210770A (zh) 增量数据同步方法、装置、计算机设备和存储介质
US8976048B2 (en) Efficient processing of Huffman encoded data
CN105515586A (zh) 一种快速差量压缩方法
CN115577149A (zh) 一种数据处理方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17888949

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17888949

Country of ref document: EP

Kind code of ref document: A1