MPEG4 压缩技术是如何工作的?

20

能否简单明了地解释一下MPEG4是如何压缩数据的,我主要关心视频方面。我知道MPEG4有不同的标准或部分,我只想了解最主要的整体压缩方法,如果有的话。

MPEG4是一种用于压缩数字媒体内容的标准,其中包括音频、视频和图像。MPEG4采用一系列复杂的算法将媒体数据转换为更小、更易存储和传输的格式。这个过程涉及到许多步骤,包括运用各种编码技术和数据压缩算法,如离散余弦变换(DCT)和运动估计。总的来说,MPEG4采用了一种将视频数据压缩到更小尺寸的高级方式,使得视频可以更轻松地在互联网上传输和共享。
4个回答

41

MPEG-4是一个庞大的标准,采用了许多技术来实现其高压缩率。

一般来说,视频压缩关注的是尽可能地丢弃信息,同时对最终用户的观看体验影响最小。例如,使用亚采样YUV而不是RGB可以立即将视频大小减半。这是可能的,因为人眼对颜色的敏感度低于对亮度的敏感度。在YUV中,Y值是亮度,U和V值代表颜色。因此,您可以丢弃一些颜色信息以减小文件大小,而观众不会注意到任何区别。

之后,大多数压缩技术利用了两种特定的冗余。第一种是时间冗余,第二种是空间冗余。

时间冗余指连续的视频帧非常相似。通常情况下,视频的帧速率约为20-30帧每秒,1/30秒内没有太多变化。拿任何DVD暂停,然后移动一帧并注意到两个图像的相似之处。因此,MPEG-4(和其他压缩标准)不是独立地编码每个帧,而仅编码连续帧之间的差异(使用motion estimation来查找帧之间的差异)。

空间冗余利用的是这样一个事实,即通常图像中颜色的分布往往是相当低频的。我的意思是相邻像素往往具有类似的颜色。例如,在一张你穿红色毛衣的照片中,代表你毛衣的所有像素都会有非常相似的颜色。可以使用DCT将像素值转换成频率空间,在那里可以丢弃一些高频信息。然后,在解码过程中执行反DCT时,图像现在不包含被丢弃的高频信息。
要查看丢弃高频信息的效果,请打开MS画图并绘制一系列重叠的水平和垂直黑线。将图像保存为JPEG格式(也使用DCT进行压缩)。现在放大图案,注意线条的边缘不再那么锐利,有点模糊。这是因为在压缩过程中丢失了一些高频信息(从黑色到白色的过渡)。阅读此处以获取带有漂亮图片的解释 如需进一步阅读,这本书非常好,尽管数学方面可能有些深奥。

3
锐利的边缘不是高频的,因为它们不会重复。实际上,它们代表了所有频率的总和,这就是为什么离散余弦变换压缩和一些图像调整软件会在线条周围添加噪音而不是模糊它们的原因。 - alex strange
1
应该补充说明的是,DCT(离散余弦变换)不是在整个图像上执行的。图像被分成8x8或16x16像素块,并对每个块执行DCT。这是因为DCT性能随着图像尺寸的增大而迅速降低。由于MPEG必须进行流传输,因此解码必须非常快。 - rcz

4
与其他流行的视频编解码器一样,MPEG4使用一种离散余弦变换和各种运动补偿技术(如果这有帮助,您可以将其视为运动预测),以减少后续帧所需的数据量。 此页面提供了普通MPEG4所做的概述。
它与JPEG使用的技术并不完全相似。

1

MPEG4使用多种技术来压缩视频。

如果你还没有查看维基百科,这将是一个很好的起点

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


1

锐利的边缘确实含有高频率。减少或消除高频率会降低边缘的锐利度。通过去除高频率来去除精细细节,包括锐利的边缘- 通过高频率的移除来去除对两个小物体进行分辨的能力 - 然后你只能看到一个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接