audio - 从哪里开始学习音频或视频编解码器?

标签 audio video codec

<分区>

我很困惑不知道编解码器内部发生了什么。我想了解音频编码器和解码器内部的元素。如果您能提供一些链接让我可以找到一些好的学习资料,我将非常高兴。

确切地说,我想知道编解码器如何解析媒体文件。

最佳答案

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

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

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

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

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

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

关于audio - 从哪里开始学习音频或视频编解码器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2522707/

相关文章:

java - 算术短计算中的精度损失

android - Android一次播放1个声音

audio - 从SoxSharp内部使用la脚

python - FFmpeg 裁剪 : 'Invalid too big or non positive size for width ' 230 4' or height ' 4096'

ios - 在视频 iOS 上添加标签

php - ffmpeg:如何使用 PHP 获取可用编解码器列表?

windows - Windows 7 上各个程序的峰值表

ios - 显示在 JSQMessagesViewController 中发送的视频的图像预览

audio - FFmpeg - 与音频帧大小及其计算的概念混淆

html - 视频-声音编解码器AC3(MKV)