egment 和 segment (s " , t " , I " ) e Segment,并 且 s " = s' +k, t " = t' +k, I " = 1' -k, 0〈k〈l',则从该相似信息集合 Segment 中消 减segment (s ",t ",I ");或/和,第二,若该字符片段segment (s, t, I)的字节 数量1必须大于等于门限值Lmin,从该相似信息集合Segment中消减字节数量1小 于门限值L min的字符片段;或/和,第三,若存在segment (s',t',1')e Segment和 segment (s",t",I" ) e Segment,并且 s"辛 s',t" =t',I"〈1',则从该相似信息集 合 Segment 中消减 segment (s",t",I" ) 〇
[0018] 在本发明数据增量更新方法另一实施例中,该门限值Lmin= 3,或者Lmin是小于10 的其他正整数值。
[0019] 在本发明数据增量更新方法另一实施例中,在该构造路径图中,对于其中 一个节点^对应的字节片段segment (s x, tx, Ix)与另一个节点Vy对应的字节片段 segment(sy,ty,ly)之间当且仅当满足(tx+l x)〈(ty+ly)时,才存在该节点Vjlj该节点Vy的 节点边,该节点V x与邻近该节点V 其他节点构建节点边,并且该构建节点边的数目不大 于节点度数MAX_C0NECTI0N。
[0020] 在本发明数据增量更新方法另一实施例中,该节点度数MAX_C0NECTI0N = 3。
[0021] 在本发明数据增量更新方法另一实施例中,该节点^到该节点节点边的边代 价的计算方法是:采用编码指令和编码数据组成表述字节,确定该节点^对应的水平线段 segx(tx,sx_tx)的右侦Ij端点转移到该节点\^对应的水平线段seg y(ty,sy-ty)右侦Ij端点所需 的该表述字节的数量,即为该边代价的值。
[0022] 在本发明数据增量更新方法另一实施例中,在该构造最小代价路径中,采用 Di jkstra算法来计算最小代价路径。
[0023] 在本发明数据增量更新方法另一实施例中,在该构造增量包中,该指令集包括"插 入"、"拷贝"、"向前跳转"、"向后跳转"指令,该数据集是由该"插入"指令操作的字符参数构 成,该指令编码包括指令标示符和指令参数。
[0024] 在本发明数据增量更新方法另一实施例中,该指令标示符占用2比特,存在00、 01、10、11四种编码,对应该"插入"、"拷贝"、"向前跳转"、"向后跳转"四种指令。
[0025] 在本发明数据增量更新方法另一实施例中,该指令编码结构是:首字节为:指令 标示符+〇+指令参数;中间字节为:〇+指令参数;尾字节为:1+指令参数。
[0026] 在本发明数据增量更新方法另一实施例中,该指令参数的值小于32时,该指令编 码长度为1个字节;该指令参数值大于等于32且小于4096时,该指令编码长度为2字节; 该指令参数大于等于4096且小于524288时,该指令编码长度为3字节。
[0027] 在本发明数据增量更新方法另一实施例中,在该构造增量包中,还包括进一步对 该增量包进行压缩,得到增量压缩包,在该应用增量包中,包括对该增量压缩包解压缩,得 到该增量包。
[0028] 在本发明数据增量更新方法另一实施例中,采用LZM压缩算法对该增量包进行 压缩,得到该增量压缩包。
[0029] 在本发明数据增量更新方法另一实施例中,采用LZM压缩算法对该增量包进行 压缩之前,返回到该构造水平线段图中,优化该水平线段图,二次构造路径图、最小代价路 径和增量包后,压缩该增量包并得到最小的增量压缩包。
[0030] 在本发明数据增量更新方法另一实施例中,该优化该水平线段图的方法包括:第 一,若该水平线段se gi(t,S-t)中的S-t = 0,则保留该水平线段segi(t,s-t);以及,第二, 若该水平线段Seg i (t,s-t)分布离散,与周围其他水平线段不能组成近似水平直线,并且该 水平线段Segi (t,s-t)的该长度1小于长度门限值N,则删除该水平线段Segi (t,s-t)。
[0031] 在本发明数据增量更新方法另一实施例中,该长度门限值N = 3,或者N是小于10 的其他正整数值。
[0032] 本发明的有益效果是:通过上述构造相似信息集合、构造水平线段图、构造路径 图、构造最小代价路径、构造增量包和应用增量包步骤,本发明将新旧文件间的相似程度用 图的形式表示,把生成最小增量包的问题转化为寻找最短路径问题,并依据该路径生成最 小的增量包,基于本发明方法进行数据增量更新,能够平均节省69. 3%的数据量,与现有技 术中的数据增量更新方法相比,压缩率最高,应用增量包的运行时间较短,本发明方法应用 范围广,不仅适用于消费电子产品,而且还能应用到其他平台和系统中。
【附图说明】
[0033] 图1是现有技术数据增量更新的流程图;
[0034] 图2是根据本发明数据增量更新方法一实施例的流程图;
[0035] 图3是根据本发明数据增量更新方法另一实施例中构造水平线段图实施例的示 意图;
[0036] 图4是根据本发明数据增量更新方法另一实施例中构造路径图实施例的示意图;
[0037] 图5是根据本发明数据增量更新方法另一实施例中计算边代价实施例的示意图;
[0038] 图6是根据本发明数据增量更新方法另一实施例中构造增量包实施例流程图;
[0039] 图7是根据本发明数据增量更新方法另一实施例中指令编码的结构组成图;
[0040] 图8是根据本发明数据增量更新方法另一实施例的流程图;
[0041] 图9是根据本发明数据增量更新方法另一实施例中优化水平线段图的实施例示 意图;
[0042] 图10是根据本发明数据增量更新方法另一实施例的增量更新压缩率对比分析 图;
[0043] 图11是根据本发明数据增量更新方法另一实施例的应用增量包的运行时间对比 分析图。
【具体实施方式】
[0044] 为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。 附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限 于本说明书所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的 理解更加透彻全面。
[0045] 需要说明的是,除非另有定义,本说明书所使用的所有的技术和科学术语与属于 本发明的技术领域的技术人员通常理解的含义相同。在本发明的说明书中所使用的术语只 是为了描述具体的实施例的目的,不是用于限制本发明。本说明书所使用的术语"和/或" 包括一个或多个相关的所列项目的任意的和所有的组合。
[0046] 图2是根据本发明数据增量更新方法一实施例的流程图,包括以下步骤:构造相 似信息集合S201 ;构造水平线段图S202 ;构造路径图S203 ;构造最小代价路径S204 ;构造 增量包S205 ;应用增量包S206。以下结合具体实施例对上述各步骤作具体说明。
[0047] 首先,在步骤S201中需要将旧文件和新文件进行对比,找到旧文件和新文件内容 之间相同的字符片段,由这些相同字符片段组成相似信息集合。为便于说明,假设一旧文 件实施例的内容是"You do not love a woman because she is beautiful,but she is beautiful because you love her. ",新文件实施例的内容是"She love a man because he do not just love her beauty. She is beautiful because a beautiful love. "。以数 组的形式表示该旧文件和新文件,分别定义旧文件数组Old和新文件数组New。其中,旧文 件数组Old中的第0个字节Old [0]对应该旧文件中的首字符"Y",第1个字节Old [1]对应 该旧文件中的字符"〇",第2个字节01d[2]对应该旧文件中的字符"u",第3个字节01d[3] 对应该旧文件中的空格字符"",向后依次类推。新文件数组New的组成具有