问题 这个存储方法叫什么?


假设我有一个包含100个随机整数值的数组。 我可以改为存储第一个,而是将每个连续整数之间的距离放在一起,而不是像它们那样清楚地存储它们。

这个方法怎么称呼?

我知道这种方法似乎完全没用,但它可能对存储3D模型数据很有用,其中彼此相邻存储的连续顶点实际上非常接近:我可以使用8位整数的数组,而不是使用32位。


4236
2018-02-28 14:13


起源

我不是按照它们之间的距离来表达你的意思......你是指内存中的字节吗?或者n和n + 1之间的差异? - MGZero
听上去像 相对编码。 - Mathew Hall
他的意思是数字之间的距离有距离的数学定义 - 它是| a - b |。 - Griwes
它并非毫无价值。它通常用于存储倒排索引。 - amit


答案:


我相信你在找 增量编码

增量编码是一种以顺序数据之间的差异形式存储或传输数据的方式......

也许最简单的例子是将字节值存储为连续值之间的差异(增量),而不是值本身。所以,而不是2,4,6,9,7,我们将存储2,2,2,3,-2。


15
2018-02-28 14:15



旁注:我不是专家,但我相信许多现代数字视频压缩编解码器都使用这个概念来压缩视频:存储整个视频帧,称为关键帧,然后存储两帧之间的差异。 (偶尔使用新的关键帧)。 - dotnetengineer
@dotnetengineer现代视频编解码器甚至比这更复杂!一些具有三种类型的帧:“L”是独立帧,“P”可以使用先前帧,“B”是双向帧。此外!他们甚至不需要使用整个框架,而是需要使用称为“切片”的空间区域。这就是为什么如果你在L帧之间裁剪H264视频而不重新编码它,你会看到几秒钟内奇怪的彩色矩形移动。 - nwellcome
@nwellcome很高兴知道:)感谢您的澄清。不过,我想我的原点 增量编码 是数字视频压缩的重要概念,还是正确的吗? - dotnetengineer
@dotnetengineer哦是的非常正确,delta编码在你有顺序数据时很有用,而视频作为一系列图像就是一个很好的例子。 - nwellcome