首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MPEG4压缩是如何工作的?

MPEG4压缩是如何工作的?
EN

Stack Overflow用户
提问于 2009-02-27 05:54:47
回答 4查看 37.6K关注 0票数 19

有没有人能简单明了地解释一下MPEG4是如何压缩数据的?我最感兴趣的是视频。我知道它有不同的标准或部分。我只是在寻找主要的整体压缩方法,如果有MPEG4的话。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-03-23 17:11:16

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

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

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

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

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

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

对于进一步的阅读,this book是相当好的,虽然在数学上有点重。

票数 38
EN

Stack Overflow用户

发布于 2009-02-27 06:18:07

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

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

票数 4
EN

Stack Overflow用户

发布于 2009-02-27 06:13:42

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/593649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档