MPEG4 压缩如何工作?
-
09-09-2019 - |
题
谁能以简单明了的方式解释 MPEG4 如何压缩数据。我最感兴趣的是视频。我知道它有不同的标准或部分。我只是在寻找主要的整体压缩方法(如果有 MPEG4 的话)。
解决方案
MPEG-4 是一个庞大的标准,采用了许多技术来实现其所能达到的高压缩率。
一般来说,视频压缩涉及丢弃尽可能多的信息,同时对最终用户的观看体验影响最小。例如,使用子采样 YUV 而不是 RGB 可以立即将视频大小减半。这是可能的,因为人眼对颜色的敏感度低于对亮度的敏感度。在YUV中,Y值代表亮度,U、V值代表颜色。因此,您可以丢弃一些颜色信息,从而减小文件大小,而观看者不会注意到任何差异。
此后,大多数压缩技术特别利用了 2 个冗余。第一个是时间冗余,第二个是空间冗余。
时间冗余表明视频序列中的连续帧非常相似。通常,视频的帧率为每秒 20-30 帧,1/30 秒内没有太大变化。拍摄任何 DVD 并将其暂停,然后将其移动到一帧上,并注意这 2 个图像的相似程度。因此,MPEG-4(和其他压缩标准)不是独立地对每个帧进行编码,而是仅对连续帧之间的差异进行编码(使用 运动估计 找出帧之间的差异)
空间冗余利用了这样一个事实:通常图像上的颜色分布往往是相当低的频率。我的意思是相邻像素往往具有相似的颜色。例如,在您穿着红色毛衣的图像中,代表您的毛衣的所有像素都将具有非常相似的颜色。可以使用 DCT 将像素值变换到频率空间,其中一些高频信息可以被丢弃。然后,当执行反向 DCT 时(在解码期间),图像现在没有被丢弃的高频信息。
要查看丢弃高频信息的效果,请打开 MS Paint 并绘制一系列重叠的水平和垂直黑线。将图像保存为 JPEG(也使用 DCT 进行压缩)。现在放大图案,请注意线条的边缘不再那么锐利并且有点模糊。这是因为一些高频信息(从黑到白的过渡)在压缩过程中被丢弃。 阅读本文以获得带有精美图片的解释
如需进一步阅读, 这本书 相当不错,虽然数学有点重。