考虑到有损压缩格式(对于图像,音频,视频等......)并且假设它只在相同的压缩输入文件上运行,相同的解压缩算法是否始终生成相同的输出? 那么不同类型的解压缩器,它们是否会以相同的输入生成相同的输出?我已经读过某些jpeg-decompression算法以速度换取质量,这意味着它们不会产生相同的输出。
总而言之,鉴于我们可以知道正在使用的压缩和解压缩算法,我们是否能够依赖输出总是相同的。可以通过控制使用哪些算法来获得确定性行为吗?
请注意。它不一定要输出原始输入。
答案 0 :(得分:3)
这取决于压缩标准。诸如H.264之类的现代标准具有严格的规范和参考解码器,并且任何兼容的解码器应当按位输出与参考解码器完全相同的输出(当然是模数错误)。较旧的视频编解码器(例如MPEG-4第2部分)没有详细说明完整的过程,因此不同的实现可能会输出稍微不同的数据(看起来大致相似,但在舍入方面存在细微差别)。对于帧间编解码器,未来的帧依赖于更早的帧,但这样的舍入误差可以累积。
对于音频编解码器,兼容解码器通常需要接近参考信号,同时允许一些实现/舍入差异。
在大多数情况下,速度质量的交易是在编码器中完成的,但是一些解码器也有偏离标准的选项,以提高解码速度但不输出准确正确的图像。
所以这一切都归结为你正在使用的编解码器标准(他们是否已经准确地编写了足够的,以便实现它们的独立,完整的实现)和实际的解码器实现。