有损解压缩总是产生相同的输出吗?

时间:2014-08-14 08:15:52

标签: compression mp3 jpeg h.264 aac

考虑到有损压缩格式(对于图像,音频,视频等......)并且假设它只在相同的压缩输入文件上运行,相同的解压缩算法是否始终生成相同的输出? 那么不同类型的解压缩器,它们是否会以相同的输入生成相同的输出?我已经读过某些jpeg-decompression算法以速度换取质量,这意味着它们不会产生相同的输出。

总而言之,鉴于我们可以知道正在使用的压缩和解压缩算法,我们是否能够依赖输出总是相同的。可以通过控制使用哪些算法来获得确定性行为吗?

请注意。它不一定要输出原始输入。

1 个答案:

答案 0 :(得分:3)

这取决于压缩标准。诸如H.264之类的现代标准具有严格的规范和参考解码器,并且任何兼容的解码器应当按位输出与参考解码器完全相同的输出(当然是模数错误)。较旧的视频编解码器(例如MPEG-4第2部分)没有详细说明完整的过程,因此不同的实现可能会输出稍微不同的数据(看起来大致相似,但在舍入方面存在细微差别)。对于帧间编解码器,未来的帧依赖于更早的帧,但这样的舍入误差可以累积。

对于音频编解码器,兼容解码器通常需要接近参考信号,同时允许一些实现/舍入差异。

在大多数情况下,速度质量的交易是在编码器中完成的,但是一些解码器也有偏离标准的选项,以提高解码速度但不输出准确正确的图像。

所以这一切都归结为你正在使用的编解码器标准(他们是否已经准确地编写了足够的,以便实现它们的独立,完整的实现)和实际的解码器实现。