【问题标题】:How does MPEG4 compression work?MPEG4 压缩是如何工作的?
【发布时间】:2010-10-10 06:26:58
【问题描述】:

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

【问题讨论】:

    标签: algorithm video compression video-streaming mpeg


    【解决方案1】:

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

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

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

    时间冗余表明视频序列中的连续帧非常相似。通常,视频的速度约为每秒 20-30 帧,并且在 1/30 秒内没有太大变化。拿起任何 DVD 并将其暂停,然后将其移至一帧并注意这 2 个图像的相似程度。因此,MPEG-4(和其他压缩标准)不是独立编码每一帧,而是只编码连续帧之间的差异(使用motion estimation 来查找帧之间的差异)

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

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

    对于进一步阅读,this book 相当不错,如果对数学有点重。

    【讨论】:

    • 锐边不是高频,因为它们不会重复。它们实际上是每个频率的总和,这就是为什么 DCT 压缩和一些图像缩放器会在线条周围添加噪点而不是模糊它们。
    • 需要补充的是,DCT(离散余弦变换)不对图像整体进行。图像被分解为 8x8 或 16x16 像素块,并对每个块执行 DCT。这是因为对于较大的图像,DCT 性能会迅速下降。由于必须流式传输 MPEG,因此解码速度必须非常快。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

        锐利的边缘肯定包含高频。减少或消除高频会降低边缘的锐度。包括尖锐边缘在内的精细细节通过高频去除 - 能够分辨 2 个小物体的能力通过高频去除 - 然后您只看到一个。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-02-28
          • 2012-04-23
          • 2012-09-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-23
          • 2011-07-24
          相关资源
          最近更新 更多