压缩算法可以同时无损和有损吗?

时间:2014-09-24 09:11:54

标签: ffmpeg codec lossless-compression lossy-compression

我见过ffmpeg有一些编解码器(例如H.264)被定义为无损且同时有损耗,根据我的理解,无损和有损是相互排斥的< / strong>:压缩算法要么丢失信息要么丢失信息。

如何同时无损和有损?

运行ffmpeg -codecs 2>/dev/null| grep h264,我得到:

DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 [...]

DEV.LS代表解码器,编码器,视频,不仅仅是帧内压缩,有损压缩,无损压缩。

3 个答案:

答案 0 :(得分:2)

签入Wikipedia for H.264后说:

  尽管如此,H.264通常用于严格数学意义上的有损压缩   损失的数量有时可能难以察觉。也可以真正创造   使用它的无损编码 - 例如,在其中具有局部无损编码区域   有损编码的图片或支持整个编码无损的罕见用例。

答案 1 :(得分:0)

是的,它既可以是有损的,也可以是无损的。对于H.264,MPEG和AVC,颜色,帧受到很大影响,并且在放大视频时会产生视觉观看问题。 我还发布了一项关于它的研究--- Check it out

答案 2 :(得分:0)

@MoDJ在评论中提到了答案。

h.264编解码器与许多其他编解码器一样,具有编码选项。其中最主要的是恒定汇率因数,也称为CRF。在这种情况下,The documentation from FFmpeg(使用libx264编码h.264 / AVC的编码器)是一个很好的参考。它说:

  

CRF标度的范围是0–51,其中0是无损的,23是   默认值,而51是最差的质量。一般较低的值   导致更高的质量,主观上合理的范围是17-28。   认为17或18在视觉上无损或接近无损;它应该看起来   与输入相同或几乎相同,但在技术上不一样   无损的。

     

(...)

     

您可以使用-crf 0来创建无损视频。两个有用的预设   由于编码速度快或   最佳压缩通常是最重要的因素。 (...)
  请注意,无损输出文件可能会很大,并且大多数非FFmpeg   基础的播放器将无法解码无损。因此,如果   兼容性或文件大小是一个问题,您不应使用无损。 (...)

总结:一个特定的流不能同时具有有损和无损 ,但是可以通过编解码器设置来调整流是有损还是无损。