【问题标题】:Where to start learning about audio or video codecs? [closed]从哪里开始学习音频或视频编解码器? [关闭]
【发布时间】:2010-03-26 11:05:00
【问题描述】:

我很困惑,不知道编解码器内部发生了什么。我想了解音频编码器和解码器中的元素。如果你能给我一些链接,我可以找到一些好的学习材料,我会很高兴。

正是我想知道编解码器如何解析媒体文件。

【问题讨论】:

  • google it.. 堆栈溢出无济于事。
  • 浏览了 wiki,能够找到可用的编解码器,但我正在探索给定媒体文件如何识别编解码器以及如何播放。
  • 这不是编码问题vamsi!!

标签: audio video codec


【解决方案1】:

您的标题询问的是 A/V 压缩,但您的其余 cmets 讨论的是解析媒体文件和识别其编解码器。这些是非常不同的任务:由不同的组织制定和实施,由大多数多媒体库中的不同 API 执行,最重要的是需要非常不同的技能集。

A/V 文件格式与任何其他文件格式没有太大区别,而其他文件格式只是formal grammars。解析、验证和生成的对象图在概念上与任何其他语法没有什么不同——实际上,它们往往比您在标准 CS 课程(编译器、有限自动机)中遇到的语法简单得多。 AVI file format 在这一点上有点过时了,但我仍然建议从那里开始,因为:

  • 当今许多更复杂的格式都完全或部分类似于 AVI,或者至少假设您熟悉它的基本结构
  • AVI 是被称为 RIFF 的更大的多媒体格式家族的成员,您会发现它在许多其他地方都有使用 such as WAVs

与此同时,编解码器是您可能会在“消费类”软件中找到的一些最复杂的算法。他们大量利用学术界和大公司研发部门(包括其庞大的专利库)的进步。要精通编解码器,您至少需要了解以下基础知识:

如果您已经有不错的背景(例如,您已经参加过一两个本科级别的“工程师数学”类课程),那么我建议您直接投入。许多最好的 A/V 编解码器都是开放的来源:

  • x264(MPEG-4 第 10 部分,又名 AVC)
  • LAME(MPEG-1 第 3 层,又名 mp3)
  • Xvid(MPEG-4 第 2 部分,与 Divx 和许多其他内容相同)
  • Vorbis(替代的、无专利的音频编解码器)
  • Dirac(基于小波变换的替代、无专利视频编解码器)

【讨论】:

    【解决方案2】:

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

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

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

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

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

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

    【讨论】:

      【解决方案3】:

      通过研究 MPEG4 解码器,我对 MPEG4 格式有了一些了解。对于视频和音频,有许多不同的参考(和开源实现)编码器和解码器。所以,看书吧——从维基百科开始:它有很好的概括性总结和链接(如果你有幸“开放规范”)。然后点击源。

      有很多不同的编码方式(许多涉及某种形式的压缩,无论是有损还是无损),而且由于还必须处理成帧容器和“子格式”,整个问题通常会变得更加复杂”。

      玩得开心。

      • 狄拉克:http://diracvideo.org/specifications/
      • MPEG-4:http://en.wikipedia.org/wiki/MPEG-4
      • JPEG:http://jpeg.org/public/jfif.pdf

      【讨论】:

        【解决方案4】:

        尝试从这里开始:

        Windows Media 编码器入门

        http://www.microsoft.com/windows/windowsmedia/howto/articles/introencoding.aspx

        更多数据请访问 codecpage.com

        【讨论】:

          猜你喜欢
          • 2011-04-09
          • 2011-03-23
          • 1970-01-01
          • 1970-01-01
          • 2010-09-10
          • 2011-06-15
          • 2011-06-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多