差分编码(英语:Delta encoding),又称增量编码,是指在序列式资料之间以数据差异英语Data differencing形式储存或传送资料的方式(相对于储存传送完整档案的方式)。通常应用于目标档案和参考档案之间存在高度冗馀的情况,使压缩后档案大小比仅使用目标档案压缩小,可以提高网路和磁碟资源的使用效率。

差异储存在称为“delta”或“diff”的不连续档案中。由于改变通常很小(平均占全部大小的2%),差分编码能大幅减少资料的重复。一连串独特的delta档案在空间上要比未编码的相等档案有效率多了。

差分编码的简单例子是储存序列式资料之间的差异(而不是储存资料本身):不存“2, 4, 6, 9, 7”,而是存“2, 2, 2, 3, -2”。单独使用用处不大,但是在序列式数值常出现时可以帮助压缩资料。

应用

编辑

典型的应用场景包括管理有多版本的档案,透过网路传输软体的补丁或更新包,此时需要接收者已经拥有旧版本的资料。或是当网页有共同的布局和选单结构时可以压缩。 需要查看文件的历史更改记录(版本控制git等)、Windows中的远程差分压缩英语Remote Differential Compression在线备份等场景均用到了差分编码。 大多数使用增量编码的档案为文字或二进位档案。

RCS和SCCS是两种传统系统,为单一档案提供增量压缩的版本控制。更新的版本控制系统,如 CVS和PRCS强调对档案集合(而不是单一档案)提供版本控制的重要性,因此常使用RCS和SCCS进行后端储存而不是用于版本控制。

参考资料

编辑

Suel, Torsten. "Delta compression techniques." Encyclopedia of Big Data Technologies 63 (2019). MacDonald, Joshua. (2003). File System Support for Delta Compression.

相关条目

编辑