NDS数据的差分处理、更新方法和装置以及电子设备与流程

文档序号:21724695发布日期:2020-08-05 01:15阅读:634来源:国知局
NDS数据的差分处理、更新方法和装置以及电子设备与流程

本发明涉及地图数据更新技术领域,尤其涉及一种nds数据的差分处理、更新方法和装置以及电子设备。



背景技术:

导航数据标准(navigationdatastandard,nds),是由汽车制造商和地图数据生产商联合发展创建的一种车载导航数据库标准格式,按该标准存储的地图数据可以支持增量更新。现有技术中,针对nds数据生成增量数据包时,一般采用传统的基于字节(byte)差分处理方式,例如,vcdiff、bsdiff等,获得增量数据包。发明人在对现有技术研究的过程中,发现现有技术至少存在如下问题:针对基于位(bit)存储的nds数据采用基于字节的差分处理方式,生成的增量数据包的数据量较大,导致增量更新速度和效率降低。



技术实现要素:

本发明实施例提供一种nds数据的差分处理、更新方法和装置以及电子设备,以解决现有技术中差分数据较大的缺陷。

为达到上述目的,本发明实施例提供了一种nds数据的差分处理方法,包括:

获取旧版本nds数据中的要素数据和新版本nds数据中的要素数据,所述要素数据为所述nds数据的最小数据对象;

基于所述要素数据,对所述旧版本nds数据和所述新版本nds数据进行差分处理,生成差分数据更新包。

本发明实施例还提供了一种nds数据的更新方法,包括:

获取差分数据更新包及旧版本nds数据;

根据所述旧版本nds数据以及所述差分数据更新包中的要素数据的比对状态,生成新版本nds数据。

本发明实施例还提供了一种nds数据的差分处理装置,包括:

要素数据获取模块,用于获取旧版本nds数据中的要素数据和新版本nds数据中的要素数据,所述要素数据为所述nds数据的最小数据对象;

差分处理模块,用于基于所述要素数据,对所述旧版本nds数据和所述新版本nds数据进行差分处理,生成差分数据更新包。

本发明实施例还提供了一种nds数据的更新装置,包括:

差分数据获取模块,用于获取差分数据更新包及旧版本nds数据;

还原模块,用于根据所述旧版本nds数据以及所述差分数据更新包中的要素数据的比对状态,生成新版本nds数据。

本发明实施例还提供了一种电子设备,包括:

存储器,用于存储程序;

处理器,用于运行所述存储器中存储的所述程序,所述程序运行时执行本发明实施例提供的nds数据的差分处理方法。

本发明实施例还提供了一种电子设备,包括:

存储器,用于存储程序;

处理器,用于运行所述存储器中存储的所述程序,所述程序运行时执行本发明实施例提供的nds数据的更新方法。

本发明实施例提供的nds数据的差分处理、更新方法和装置以及电子设备,通过获取nds数据中的要素数据,并基于要素数据进行差分处理,获得较少的差分数据,以使得生成的差分数据更新包较小,在进行nds数据更新时,能够提高差分数据更新包的下载和还原速度。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明实施例提供的nds数据的差分处理方法的原理示意图;

图2为本发明实施例提供的业务系统的系统框图;

图3为本发明提供的nds数据的差分处理方法一个实施例的流程图;

图4为本发明提供的nds数据的差分处理方法另一个实施例的流程图;

图5为本发明提供的nds数据的差分处理方法又一个实施例的流程图;

图6为本发明提供的nds数据的差分处理方法再一个实施例的流程图;

图7为本发明提供的nds数据的更新方法一个实施例的流程图;

图8为本发明提供的nds数据的更新方法另一个实施例的流程图;

图9为本发明提供的nds数据的差分处理装置一个实施例的结构示意图;

图10为本发明提供的nds数据的差分处理装置另一个实施例的结构示意图;

图11为本发明提供的nds数据的更新装置一个实施例的结构示意图;

图12为本发明提供的nds数据的更新装置另一个实施例的结构示意图;

图13为本发明提供的电子设备一个实施例的结构示意图;

图14为本发明提供的电子设备另一个实施例的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

针对现有技术中,基于字节进行差分处理,差分数据较大的缺陷。本申请提出了一种nds数据的差分处理方案,其主要原理是:针对nds数据,基于其最小数据对象--要素数据,进行差分处理。图1为本发明实施例提供的nds数据的差分处理方法的原理示意图。如图1所示,假设第一行为旧版本nds数据的部分数据段,在该数据段中包括两个要素数据,其中,第一要素数据的最后一个字节数据为11111111;第二要素数据的首个字节数据为01011111;第二行为新版本nds数据的部分数据段,在该数据段中,第一要素数据的最后一个字节数据由8位(bit)1,变成了7位1,而第二要素数据没有发生变化,只是向左顺移一位。如果采用现有技术,基于字节(byte)进行差分,则图中示出的两个字节全部发生变化,因此产生两个差分数据。而如果采用本发明实施例的方案,基于要素进行差分,则可以看出,图中示出的部分,只产生针对第一要素数据的一个差分数据。因此,获得的差分数据较少,以使得生成的差分数据更新包较小,在进行nds数据更新时,能够提高差分数据更新包的下载和还原速度。

本发明实施例提供的方法可应用于任何具有数据处理功能的业务系统。图2为本发明实施例提供的业务系统的系统框图,图2所示的结构仅仅是本发明的技术方案可以应用的业务系统的示例之一。如图2所示,业务系统中包括差分处理装置。该差分处理装置包括:要素数据获取模块和差分处理模块,可以用来执行下述图3、图4、图5和图6所示的处理流程。在该业务系统中,首先,获取旧版本nds数据中的要素数据和新版本nds数据中的要素数据,该要素数据为nds数据的最小数据对象;然后,基于要素数据,针对旧版本nds数据和新版本nds数据进行差分处理,生成差分数据更新包,使得差分数据更新包较小,在进行nds数据更新时,能够提高差分数据更新包的下载和还原速度。另一方面,为了对差分数据进行还原,该业务系统中还可包括更新装置。该更新装置包括:差分数据获取模块和还原模块,可以用来执行下述图7和图8所示的处理流程。在该业务系统进行数据还原的过程中,首先,获取差分数据更新包及旧版本nds数据;然后,根据旧版本nds数据以及差分数据更新包中的要素数据的比对状态,生成新版本nds数据。

上述实施例是对本发明实施例的技术原理和示例性的应用框架的说明,下面通过多个实施例来进一步对本发明实施例具体技术方案进行详细描述。

实施例一

图3为本发明提供的nds数据的差分处理方法一个实施例的流程图,该方法的执行主体可以为上述业务系统,也可以为具有数据处理功能的各种服务器设备,也可以为集成在这些终端设备上的装置或芯片。如图3所示,该nds数据的差分处理方法包括如下步骤:

s301,获取旧版本nds数据中的要素数据和新版本nds数据中的要素数据。

在本发明实施例中,要素数据为nds数据的最小数据对象。例如,信息点(pointofinformation;以下简称:poi)数据是以要素数据为单位进行存储的,每个poi数据为一个要素数据。针对nds数据中的poi数据,可以直接获取其要素数据。

首先,需要获取旧版本nds数据中的要素数据和新版本nds数据中的要素数据。

s302,基于要素数据,对旧版本nds数据和新版本nds数据进行差分处理,生成差分数据更新包。

在本发明实施例中,针对新旧版本的nds数据,即,旧版本nds数据和新版本nds数据,基于要素数据进行差分处理,相比较于基于字节的差分处理,能够产生较少的差分数据,以此生成的差分数据更新包较小。

本发明实施例提供的nds数据的差分处理方法,通过获取nds数据中的要素数据,并基于要素数据进行差分处理,获得较少的差分数据,以使得生成的差分数据更新包较小,在进行nds数据更新时,能够提高差分数据更新包的下载和还原速度。

实施例二

图4为本发明提供的nds数据的差分处理方法另一个实施例的流程图。如图4所示,在上述图3所示实施例的基础上,本实施例提供的nds数据的差分处理方法还可以包括以下步骤:

s401,解析出旧版本nds数据中的blob数据中的要素数据。

s402,解析出新版本nds数据中的blob数据中的要素数据。

本发明实施例可以针对如道路(routing)数据、基础地图显示(basicmapdisplay;以下简称:bmd)数据等以二进制大对象(binarylargeobject;以下简称:blob)为单位进行存储的nds数据。nds数据在嵌入式数据库中采用了分层分块的组织方式,根据地图数据的内容,分别存储在嵌入式数据库的不同数据表中。对于某一类数据,可以划分为多个比例尺的数据表达层,针对指定的比例尺,将数据进行分块(tile)表达和存储。在nds数据中,一个tile对应一个blob数据,每个blob数据中包含一系列的要素数据。

在本发明实施例中,上述步骤s401和步骤s402的执行顺序不分先后,也可以同时执行。具体地,可以采用nds协会提供的blob数据解析程序,对blob数据按照要素进行解析,以将旧版本nds数据和新版本nds数据拆分为要素数据。

s403,对每个要素数据的数据内容进行压缩处理,以获取要素数据的md5值,作为要素标识码。

在本发明实施例中,若直接对要素数据进行比对,会造成数据结构不统一,中间存储量大等缺点。因此,可以根据各要素数据的数据内容,获取用于唯一标识各要素数据的要素标识码,以简化数据的存储形式,统一比对方式。具体地,可以对各要素数据的数据内容进行压缩处理,获取各要素数据的信息-摘要算法5(message-digestalgorithm5;以下简称:md5)值,作为各要素数据的要素标识码。

s404,对旧版本nds数据和新版本nds数据中的各要素数据的md5值进行比对,以生成差分数据更新包。

在本发明实施例中,可以借助md5的签名特性,作为要素数据的比对依据。具体地,可以根据要素数据所在tile的身份识别码(tileid)和md5对各要素数据进行比对。tileid比对的主要目的是,建立旧版本nds数据与新版本nds数据的blob间的关系,让比对更具有针对性。

具体地,可以对旧版本nds数据和新版本nds数据中的各要素数据的md5值进行比对,获取各要素数据的比对状态,要素数据按其比对状态分为:不变要素、变化要素、新增要素或删除要素;获取不变要素在旧版本nds数据中的起止存储地址、变化要素的数据内容及其在新版本nds数据中的起止存储地址、新增要素的数据内容及其在新版本nds数据中的起止存储地址、以及删除要素在旧版本nds数据中的起止存储地址,以组成差分数据更新包。

还可以对旧版本nds数据和新版本nds数据中的各要素数据的md5值进行比对,获取各要素数据的比对状态,要素数据按其比对状态分为:不变要素、变化要素、新增要素或删除要素;获取不变要素在旧版本nds数据中的起止存储地址;将存储地址连续的数个不变要素进行合并,形成不变要素段,不变要素段的起始存储地址为数个不变要素中的第一个要素数据的起始存储地址,不变要素段的终止存储地址为数个不变要素中的最后一个要素数据的终止存储地址;获取不变要素段在旧版本nds数据中的起止存储地址、存储地址不连续的不变要素在旧版本nds数据中的起止存储地址、变化要素的数据内容及其在新版本nds数据中的起止存储地址、新增要素的数据内容及其在新版本nds数据中的起止存储地址、以及删除要素在旧版本nds数据中的起止存储地址,以组成差分数据更新包。

另外,由于按照nds规格,存储数据的最后一个字节中,空位是默认填充为0,因此,需要获取要素数据的长度(该数据实际占用的bit数),以确定要素数据的最后一个字节的真实内容。因此,本发明实施例中,所生成的差分数据更新包中,还包括各要素数据的数据长度,以在还原数据时,确定数据内容。

本发明实施例提供的nds数据的差分处理方法,通过解析blob数据以获取nds数据中的要素数据,并以各要素数据的md5值进行比对,以统一比对方式,从而获得较少的差分数据,以使得生成的差分数据更新包较小,在进行nds数据更新时,能够提高差分数据更新包的下载和还原速度。

实施例三

图5为本发明提供的nds数据的差分处理方法又一个实施例的流程图。如图5所示,在上述图3或图4所示实施例的基础上,本发明实施例提供的nds数据的差分处理方法包括以下步骤:

s501,获取旧版本nds数据中的要素数据和新版本nds数据中的要素数据。

s502,对旧版本nds数据和新版本nds数据中的各要素数据进行比对,获取各要素数据的比对状态。

在本发明实施例中,各要素数据按其比对状态可以分为:不变要素、变化要素、新增要素或删除要素。

s503,获取不变要素在旧版本nds数据中的起止存储地址、变化要素的数据内容及其在新版本nds数据中的起止存储地址、新增要素的数据内容及其在新版本nds数据中的起止存储地址、以及删除要素在旧版本nds数据中的起止存储地址,以组成差分数据更新包。

在本发明实施例中,基于要素数据对旧版本nds数据和新版本nds数据进行比对,可以得到不同比对状态的要素数据。新版本nds数据与旧版本nds数据相比较,产生的比对结果可以包括:要素数据不变化、要素数据变化、要素数据新增和要素数据删除。根据不同的比对结果,获取要素数据的不同存储地址,从而组成差分数据更新包。具体地,差分数据更新包中可以包括:不变要素在旧版本nds数据中的起止存储地址、变化要素的数据内容及其在新版本nds数据中的起止存储地址、新增要素的数据内容及其在新版本nds数据中的起止存储地址、以及删除要素在旧版本nds数据中的起止存储地址。

本发明实施例提供的nds数据的差分处理方法,通过获取nds数据中的要素数据,并基于要素数据进行差分处理,获得较少的差分数据,以使得生成的差分数据更新包较小,在进行nds数据更新时,能够提高差分数据更新包的下载和还原速度。

实施例四

图6为本发明提供的nds数据的差分处理方法再一个实施例的流程图。如图6所示,在上述图3或图4所示实施例的基础上,本发明实施例提供的nds数据的差分处理方法包括以下步骤:

s601,解析出旧版本nds数据中的blob数据中的要素数据。

s602,解析出新版本nds数据中的blob数据中的要素数据。

s603,对旧版本nds数据和新版本nds数据中的各要素数据进行比对,获取各要素数据的比对状态。

在本发明实施例中,各要素数据按其比对状态分为:不变要素、变化要素、新增要素或删除要素。

s604,获取不变要素在旧版本nds数据中的起止存储地址。

s605,将存储地址连续的数个不变要素进行合并,形成不变要素段。

在本发明实施例中,不变要素段的起始存储地址为存储地址连续的数个不变要素中的第一个要素数据的起始存储地址,不变要素段的终止存储地址为存储地址连续的数个不变要素中的最后一个要素数据的终止存储地址。在本发明实施例中,每个要素数据存储在一个结点中,针对连续不变要素进行合并处理,可以减少记录要素的结点个数。

s606,获取不变要素段在旧版本nds数据中的起止存储地址、存储地址不连续的不变要素在旧版本nds数据中的起止存储地址、变化要素的数据内容及其在新版本nds数据中的起止存储地址、新增要素的数据内容及其在新版本nds数据中的起止存储地址、以及删除要素在旧版本nds数据中的起止存储地址,以组成差分数据更新包。

在本发明实施例中,差分数据更新包中可以包括:不变要素段在旧版本nds数据中的起止存储地址、存储地址不连续的不变要素在旧版本nds数据中的起止存储地址、变化要素的数据内容及其在新版本nds数据中的起止存储地址、新增要素的数据内容及其在新版本nds数据中的起止存储地址、以及删除要素在旧版本nds数据中的起止存储地址。

举例说明,本发明实施例所生成的差分数据更新包格式可以定义如下部分:

1.差分类别(对比状态):新增,删除,不变,或,变化;

2.根结点:旧版本nds数据长度,新版本nds数据长度,结点个数;

3.结点列表:新版本nds数据中的要素数据可在旧版本nds数据中找到的位置;

4.变化数据块:变化要素在新版本nds数据中的位置。

具体地,在差分数据更新包的第0字节存储差分类别(对比状态):

“0”代表“新增”,其后存储新增要素;

“1”代表“删除”,其后无数据;

“2”代表“变化”,其后存储变化要素;

“3”代表“不变”,其后无数据。

其中,在存储变化要素时,第1至8字节用于定义数据信息:

22个bit用于存储旧版本nds数据中的变化要素的长度;

22个bit用于存储新版本nds数据中的变化要素的长度;

20个bit用于存储结点总数。

第9至n字节,用于存储引用位置关联结点,其为可变长结点串,其中,结点定义为:

2个bit用于存储类型:“0”代表:来自新版本nds数据;“1”代表:来自旧版本nds数据;

31个bit用于存储起始地址;

31个bit用于存储终止地址。

第n+1至datalenbyte(数据长度),用于存储新增要素,其为可变长bit串。

本发明实施例提供的nds数据的差分处理方法,通过获取nds数据中的要素数据,基于要素数据进行差分处理,并将存储地址连续的不变要素进行合并,从而进一步减小差分数据更新包,在进行nds数据更新时,能够进一步提高差分数据更新包的下载和还原速度。

实施例五

图7为本发明提供的nds数据的更新方法一个实施例的流程图,该方法的执行主体可以为上述业务系统,也可以为具有数据处理功能的各种终端设备,也可以为集成在这些终端设备上的装置或芯片。如图7所示,该nds数据的更新方法包括如下步骤:

s701,获取差分数据更新包及旧版本nds数据。

s702,根据旧版本nds数据以及差分数据更新包中的要素数据的比对状态,生成新版本nds数据。

本发明实施例提供的nds数据的更新方法,针对上述图3至图6所示实施例所提供的nds数据的差分处理方法所生成的差分数据更新包。在获取到差分数据更新包后,顺序读取并解析差分结点,按照各要素数据的不同比对状态,针对不变要素,在旧版本nds数据中获取相应数据,针对变化要素和新增要素,在差分数据更新包中获取相应的数据。当结点全部解析完毕,则合成新版本nds数据。

在车辆导航系统中,由于车机端的硬件计算能力有限,软件开发工具包(softwaredevelopmentkit;以下简称:sdk)发布更新数据后,很难进行更新,采用本发明实施例提供的nds数据的更新方法,对sdk进行还原,能够简化还原逻辑,减少计算量,从而使车机端有一个较好还原效果,提高用户体验。

本发明实施例提供的nds数据的更新方法,通过对基于要素数据进行差分得到的差分数据更新包进行还原处理,在进行nds数据更新时,提高了差分数据更新包的下载和还原速度。

实施例六

图8为本发明提供的nds数据的更新方法另一个实施例的流程图。如图8所示,在上述图7所示实施例的基础上,本发明实施例提供的nds数据的差分处理方法包括以下步骤:

s801,获取差分数据更新包及旧版本nds数据。

s802,根据旧版本nds数据、差分数据更新包中的不变要素在旧版本nds数据中的起止存储地址、变化要素的数据内容及其在新版本nds数据中的起止存储地址、新增要素的数据内容及其在新版本nds数据中的起止存储地址、以及删除要素在旧版本nds数据中的起止存储地址,生成新版本nds数据。

在本发明实施例中,要素数据按其比对状态分为:不变要素、变化要素、新增要素或删除要素。当终端对旧版本nds数据进行增量更新时,首先获取差分数据更新包,该差分数据更新包可以由服务器经过基于要素数据进行差分处理获得。然后,根据各要素数据的比对状态进行数据还原。针对不变要素,根据其在旧版本nds数据中的起止存储地址在旧版本nds数据中获取相应的数据内容,然后写入新版本nds数据中;针对变化要素,在差分数据更新包中获取相应的数据内容,并写入新版本nds数据中;针对新增要素,在差分数据更新包中获取相应的数据内容,并写入新版本nds数据中;针对删除要素,获取其在旧版本nds数据中的起止存储地址,在新版本nds数据中不写入相应数据。

进一步地,在本发明实施例中,上述步骤s802还可以为:根据旧版本nds数据、差分数据更新包中的不变要素段在旧版本nds数据中的起止存储地址、存储地址不连续的不变要素在旧版本nds数据中的起止存储地址、变化要素的数据内容及其在新版本nds数据中的起止存储地址、新增要素的数据内容及其在新版本nds数据中的起止存储地址、以及删除要素在旧版本nds数据中的起止存储地址,生成新版本nds数据。

该方案针对于图6所示实施例所生成的差分数据更新包,在该差分数据更新包中,针对连续不变要素,存储有不变要素段的相关内容。该不变要素段的起始存储地址为存储地址连续的数个不变要素中的第一个要素数据的起始存储地址,该不变要素段的终止存储地址为存储地址连续的数个不变要素中的最后一个要素数据的终止存储地址。

本发明实施例提供的nds数据的更新方法,通过对基于要素数据进行差分得到的差分数据更新包进行还原处理,在进行nds数据更新时,提高了差分数据更新包的下载和还原速度。

实施例七

图9为本发明提供的nds数据的差分处理装置一个实施例的结构示意图,可用于执行如图3所示的方法步骤。如图9所示,该装置可以包括:要素数据获取模块91和差分处理模块92。

其中,要素数据获取模块91用于获取旧版本nds数据中的要素数据和新版本nds数据中的要素数据,该要素数据为nds数据的最小数据对象;差分处理模块92用于基于要素数据,对旧版本nds数据和新版本nds数据进行差分处理,生成差分数据更新包。

在本发明实施例中,要素数据为nds数据的最小数据对象。例如,poi数据是以要素数据为单位进行存储的,每个poi数据为一个要素数据。针对nds数据中的poi数据,可以直接获取其要素数据。首先,由要素数据获取模块91获取旧版本nds数据中的要素数据和新版本nds数据中的要素数据。然后,差分处理模块92针对新旧版本的nds数据,即,旧版本nds数据和新版本nds数据,基于要素数据进行差分处理,相比较于基于字节的差分处理,能够产生较少的差分数据,以此生成的差分数据更新包较小。

本发明实施例提供的nds数据的差分处理装置,通过获取nds数据中的要素数据,并基于要素数据进行差分处理,获得较少的差分数据,以使得生成的差分数据更新包较小,在进行nds数据更新时,能够提高差分数据更新包的下载和还原速度。

实施例八

图10为本发明提供的nds数据的差分处理装置另一个实施例的结构示意图,可用于执行如图4、图5和图6所示的方法步骤。如图10所示,在上述图9所示实施例的基础上,本发明实施例提供的nds数据的差分处理装置中,要素数据获取模块91可以包括:第一获取子模块911和第二获取子模块912。

其中,第一获取子模块911用于解析出旧版本nds数据中的blob数据中的要素数据;第二获取子模块912用于解析出新版本nds数据中的blob数据中的要素数据。

本发明实施例可以针对如routing数据、bmd数据等以blob为单位进行存储的nds数据。nds数据在嵌入式数据库中采用了分层分块的组织方式,根据地图数据的内容,分别存储在嵌入式数据库的不同数据表中。对于某一类数据,可以划分为多个比例尺的数据表达层,针对指定的比例尺,将数据进行分块(tile)表达和存储。在nds数据中,一个tile对应一个blob数据,每个blob数据中包含一系列的要素数据。

在本发明实施例中,第一获取子模块911和第二获取子模块912的执行顺序不分先后,也可以同时执行。具体地,第一获取子模块911和第二获取子模块912可以采用nds协会提供的blob数据解析程序,对blob数据按照要素进行解析,以将旧版本nds数据和新版本nds数据拆分为要素数据。

进一步地,本发明实施例提供的nds数据的差分处理装置,还可以包括:标识码获取模块101,该标识码获取模块101可以用于根据要素数据的数据内容,获取用于唯一标识要素数据的要素标识码。

在本发明实施例中,若直接对要素数据进行比对,会造成数据结构不统一,中间存储量大等缺点。因此,标识码获取模块101可以根据各要素数据的数据内容,获取用于唯一标识各要素数据的要素标识码,以简化数据的存储形式,统一比对方式。具体地,标识码获取模块101可以对各要素数据的数据内容进行压缩处理,获取各要素数据的md5值,作为各要素数据的要素标识码。

在此基础上,差分处理模块92可以具体用于对旧版本nds数据和新版本nds数据中的各要素数据的md5值进行比对,以生成差分数据更新包。

在本发明实施例中,可以借助md5的签名特性,作为要素数据的比对依据。具体地,差分处理模块92,可以根据要素数据所在tile的身份识别码(tileid)和md5对各要素数据进行比对。tileid比对的主要目的是,建立旧版本nds数据与新版本nds数据的blob间的关系,让比对更具有针对性。

具体地,差分处理模块92可以对旧版本nds数据和新版本nds数据中的各要素数据的md5值进行比对,获取各要素数据的比对状态,要素数据按其比对状态分为:不变要素、变化要素、新增要素或删除要素;获取不变要素在旧版本nds数据中的起止存储地址、变化要素的数据内容及其在新版本nds数据中的起止存储地址、新增要素的数据内容及其在新版本nds数据中的起止存储地址、以及删除要素在旧版本nds数据中的起止存储地址,以组成差分数据更新包。

差分处理模块92还可以对旧版本nds数据和新版本nds数据中的各要素数据的md5值进行比对,获取各要素数据的比对状态,要素数据按其比对状态分为:不变要素、变化要素、新增要素或删除要素;获取不变要素在旧版本nds数据中的起止存储地址;将存储地址连续的数个不变要素进行合并,形成不变要素段,不变要素段的起始存储地址为数个不变要素中的第一个要素数据的起始存储地址,不变要素段的终止存储地址为数个不变要素中的最后一个要素数据的终止存储地址;获取不变要素段在旧版本nds数据中的起止存储地址、存储地址不连续的不变要素在旧版本nds数据中的起止存储地址、变化要素的数据内容及其在新版本nds数据中的起止存储地址、新增要素的数据内容及其在新版本nds数据中的起止存储地址、以及删除要素在旧版本nds数据中的起止存储地址,以组成差分数据更新包。

另外,由于按照nds规格,存储数据的最后一个字节中,空位是默认填充为0,因此,需要获取要素数据的长度(该数据实际占用的bit数),以确定要素数据的最后一个字节的真实内容。因此,本发明实施例中,所生成的差分数据更新包中,还包括各要素数据的数据长度,以在还原数据时,确定数据内容。

更进一步地,差分处理模块92可以包括:比对子模块921和差分包形成子模块922。

其中,比对子模块921可以用于对旧版本nds数据和新版本nds数据中的各要素数据进行比对,获取各要素数据的比对状态,该要素数据按其比对状态分为:不变要素、变化要素、新增要素或删除要素;差分包形成子模块922可以用于获取不变要素在旧版本nds数据中的起止存储地址、变化要素的数据内容及其在新版本nds数据中的起止存储地址、新增要素的数据内容及其在新版本nds数据中的起止存储地址、以及删除要素在旧版本nds数据中的起止存储地址,以生成差分数据更新包。

再进一步地,差分处理模块92还可以包括:第三获取子模块923和合并子模块924。

其中,第三获取子模块923可以用于获取不变要素在旧版本nds数据中的起止存储地址;合并子模块924可以用于将存储地址连续的数个不变要素进行合并,形成不变要素段,该不变要素段的起始存储地址为数个不变要素中的第一个要素数据的起始存储地址,该不变要素段的终止存储地址为数个不变要素中的最后一个要素数据的终止存储地址。

在此基础上,差分包形成子模块922还可以用于获取不变要素段在旧版本nds数据中的起止存储地址、存储地址不连续的不变要素在旧版本nds数据中的起止存储地址、变化要素的数据内容及其在新版本nds数据中的起止存储地址、新增要素的数据内容及其在新版本nds数据中的起止存储地址、以及删除要素在旧版本nds数据中的起止存储地址,以组成差分数据更新包。

在本发明实施例中,每个要素数据存储在一个结点中,合并子模块924针对连续不变要素进行合并处理,可以减少记录要素的结点个数。

本发明实施例提供的nds数据的差分处理装置,通过解析blob数据以获取nds数据中的要素数据,以各要素数据的md5值进行比对,以统一比对方式,并将存储地址连续的不变要素进行合并,从而进一步减小差分数据更新包,在进行nds数据更新时,能够进一步提高差分数据更新包的下载和还原速度。

实施例九

图11为本发明提供的nds数据的更新装置一个实施例的结构示意图,可用于执行如图8所示的方法步骤。如图11所示,该装置可以包括:差分数据获取模块111和还原模块112。

其中,差分数据获取模块111用于获取差分数据更新包及旧版本nds数据;还原模块112用于根据旧版本nds数据以及差分数据更新包中的要素数据的比对状态,生成新版本nds数据。

本发明实施例提供的nds数据的更新装置,针对上述图9和图10所示实施例所提供的nds数据的差分处理装置所生成的差分数据更新包。在差分数据获取模块111获取到差分数据更新包后,还原模块112顺序读取并解析差分结点,按照各要素数据的不同比对状态,针对不变要素,在旧版本nds数据中获取相应数据,针对变化要素和新增要素,在差分数据更新包中获取相应的数据。当结点全部解析完毕,则合成新版本nds数据。

在车辆导航系统中,由于车机端的硬件计算能力有限,sdk发布更新数据后,很难进行更新,采用本发明实施例提供的nds数据的更新方法,对sdk进行还原,能够简化还原逻辑,减少计算量,从而使车机端有一个较好还原效果,提高用户体验。

本发明实施例提供的nds数据的更新装置,通过对基于要素数据进行差分得到的差分数据更新包进行还原处理,在进行nds数据更新时,提高了差分数据更新包的下载和还原速度。

实施例十

图12为本发明提供的nds数据的更新装置另一个实施例的结构示意图,可用于执行如图8所示的方法步骤。如图12所示,在上述图11所示实施例的基础上,本发明实施例提供的nds数据的更新装置中,还原模块112可以包括:第一还原子模块1121。该第一还原子模块1121可以用于根据旧版本nds数据、差分数据更新包中的不变要素在旧版本nds数据中的起止存储地址、变化要素的数据内容及其在新版本nds数据中的起止存储地址、新增要素的数据内容及其在新版本nds数据中的起止存储地址、以及删除要素在旧版本nds数据中的起止存储地址,生成新版本nds数据。

在本发明实施例中,要素数据按其比对状态分为:不变要素、变化要素、新增要素或删除要素。当nds数据的更新装置对旧版本nds数据进行增量更新时,首先,由差分数据获取模块111获取经过基于要素数据进行差分处理得到的差分数据更新包。然后,第一还原子模块1121根据各要素数据的比对状态进行数据还原。针对不变要素,根据其在旧版本nds数据中的起止存储地址在旧版本nds数据中获取相应的数据内容,然后写入新版本nds数据中;针对变化要素,在差分数据更新包中获取相应的数据内容,并写入新版本nds数据中;针对新增要素,在差分数据更新包中获取相应的数据内容,并写入新版本nds数据中;针对删除要素,获取其在旧版本nds数据中的起止存储地址,在新版本nds数据中不写入相应数据。

进一步地,本发明实施例提供的nds数据的更新装置中,还原模块112还可以包括:第二还原子模块1122。该第二还原子模块1122可以用于根据旧版本nds数据、差分数据更新包中的不变要素段在旧版本nds数据中的起止存储地址、存储地址不连续的不变要素在旧版本nds数据中的起止存储地址、变化要素的数据内容及其在新版本nds数据中的起止存储地址、新增要素的数据内容及其在新版本nds数据中的起止存储地址、以及删除要素在旧版本nds数据中的起止存储地址,生成新版本nds数据。

该方案针对于图10所示实施例中差分包形成子模块922所生成的差分数据更新包,在该差分数据更新包中,针对连续不变要素,存储有不变要素段的相关内容。该不变要素段的起始存储地址为存储地址连续的数个不变要素中的第一个要素数据的起始存储地址,该不变要素段的终止存储地址为存储地址连续的数个不变要素中的最后一个要素数据的终止存储地址。

本发明实施例提供的nds数据的更新装置,通过对基于要素数据进行差分得到的差分数据更新包进行还原处理,在进行nds数据更新时,提高了差分数据更新包的下载和还原速度。

实施例十一

以上描述了nds数据的差分处理装置的内部功能和结构,该装置可实现为一种电子设备。图13为本发明提供的电子设备一个实施例的结构示意图。如图13所示,该电子设备包括存储器131和处理器132。

存储器131,用于存储程序。除上述程序之外,存储器131还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。

存储器131可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

处理器132,与存储器131耦合,执行存储器131所存储的程序,该程序运行时执行上述任一的nds数据的差分处理方法。

进一步,如图13所示,电子设备还可以包括:通信组件133、电源组件134、音频组件135、显示器136等其它组件。图13中仅示意性给出部分组件,并不意味着电子设备只包括图13所示组件。

通信组件133被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件133经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件133还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

电源组件134,为电子设备的各种组件提供电力。电源组件134可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。

音频组件135被配置为输出和/或输入音频信号。例如,音频组件135包括一个麦克风(mic),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器131或经由通信组件133发送。在一些实施例中,音频组件135还包括一个扬声器,用于输出音频信号。

显示器136包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

实施例八

以上描述了nds数据的差分处理装置的内部功能和结构,该装置可实现为一种电子设备。图14为本发明提供的电子设备另一个实施例的结构示意图。如图14所示,该电子设备包括存储器141和处理器142。

存储器141,用于存储程序。除上述程序之外,存储器141还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。

存储器141可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

处理器142,与存储器141耦合,执行存储器141所存储的程序该程序运行时执行上述任一的nds数据的更新方法。

进一步,如图14所示,电子设备还可以包括:通信组件143、电源组件144、音频组件145、显示器146等其它组件。图14中仅示意性给出部分组件,并不意味着电子设备只包括图14所示组件。

通信组件143被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件143经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件143还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

电源组件144,为电子设备的各种组件提供电力。电源组件144可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。

音频组件145被配置为输出和/或输入音频信号。例如,音频组件145包括一个麦克风(mic),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器141或经由通信组件143发送。在一些实施例中,音频组件145还包括一个扬声器,用于输出音频信号。

显示器146包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1