MPEG4压缩如何工作?

时间:2009-02-27 05:54:47

标签: algorithm video compression video-streaming mpeg

任何人都可以用一种简单明了的方式解释MPEG4如何压缩数据。我最感兴趣的是视频。我知道它有不同的标准或部分。我只是在寻找主要的整体压缩方法,如果有一个MPEG4。

4 个答案:

答案 0 :(得分:36)

MPEG-4是一个巨大的标准,它采用了许多技术来实现它所能达到的高压缩率。

通常,视频压缩涉及丢弃尽可能多的信息,同时对最终用户的观看体验影响最小。例如,使用二次采样YUV而不是RGB将视频大小切成两半。这是可能的,因为人眼对颜色的敏感度低于对亮度的敏感度。在YUV中,Y值是亮度,U和V值表示颜色。因此,您可以丢弃一些减少文件大小的颜色信息,而不会让观察者注意到任何差异。

之后,大多数压缩技术尤其利用了2个冗余。第一个是时间冗余,第二个是空间冗余。

时间冗余指出视频序列中的连续帧非常相似。通常,视频将是每秒20-30帧的量级,并且在1/30秒内没有太大变化。拍摄任何DVD并暂停,然后在一帧上移动它,并注意两张图像的相似程度。因此,MPEG-4(和其他压缩标准)不是独立编码每个帧,而是仅对连续帧之间的差异进行编码(使用motion estimation来查找帧之间的差异)

空间冗余利用了这样的事实:通常,图像上的颜色扩散往往是非常低的频率。我的意思是相邻像素往往具有相似的颜色。例如,在您穿着红色跳线的图像中,代表您的跳线的所有像素都将具有非常相似的颜色。可以使用DCT将像素值变换到频率空间中,其中可以丢弃一些高频信息。然后,当执行反向DCT时(在解码期间),图像现在没有丢弃的高频信息。

要查看丢弃高频信息的效果,请打开MS绘画并绘制一系列重叠的水平和垂直黑线。将图像另存为JPEG(也使用DCT进行压缩)。现在放大图案,注意线条的边缘不再那么尖锐,有点模糊。这是因为在压缩过程中丢失了一些高频信息(从黑色到白色的过渡)。 Read this for an explanation with nice pictures

为了进一步阅读,this book非常好,如果对数学有点重要的话。

答案 1 :(得分:4)

与任何其他流行的视频编解码器一样,MPEG4使用discrete cosine transform的变体和各种运动补偿技术(如果有帮助,您可以将其视为运动预测),减少所需的数据量后续帧。 This page概述了普通MPEG4的功能。

它与JPEG使用的技术并不完全不同。

答案 2 :(得分:1)

MPEG4使用各种技术压缩视频。

如果你还没有看过维基百科,这将是一个很好的starting point

还有IEEE中的这篇文章更详细地解释了这些技术。

答案 3 :(得分:1)

锋利的边缘肯定包含高频。减少或消除高频会降低边缘的锐度。包括尖锐边缘在内的精细细节可以通过高频率移除来消除 - 解决2个小物体的能力被高频移除 - 然后你只看到一个。