5

数字音频、PCM 音频格式和 AAC 音频格式

 3 years ago
source link: http://blog.danthought.com/programming/2020/12/18/digital-audio-pcm-aac/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
数字音频、PCM 音频格式和 AAC 音频格式

博客来自于但江的思考,关于编程、设计、商业和生活

数字音频、PCM 音频格式和 AAC 音频格式

本文讲解了数字音频、PCM 音频格式和 AAC 音频格式这些理论知识。

Camera Sea

要理解音频编码,首先要理解音频数据在计算机中是怎么表示的,也就是数字音频,前面说过如下的视频文件中需要关注的常见信息,这里主要关注最后一行关于音频的部分:

  • 封装格式,时长,存储大小
  • 视频编码,视频码率,分辨率,帧率
  • 音频编码,音频采样率,音频码率,声道

数字音频就是将模拟信号数字化,如下图所示:

Analog Signal To Digital Signal

首先,要对模拟信号进行采样,由此引出音频的 采样率 sampleRate,1 秒种会采样的次数,根据奈奎斯特定理(也称为采样定理),按比声音最高频率高 2 倍以上的频率对声音进行采样(也称为 AD 转换),对于高质量的音频信号,其频率范围(人耳能够听到的频率范围)是 20 Hz~20 kHz,所以采样频率一般为 44.1kHz,这样就可以保证采样声音达到 20 kHz 也能被数字化,从而使得经过数字化处理之后,人耳听到的声音质量不会被降低。

其次,量化是指在幅度轴上对信号进行数字化,由此引出音频的量化格式,比如用 16 比特的二进制信号来表示声音的一个采样,而 16 比特(一个 short)所表示的范围是 [-32768,32767],共有 65536 个可能取值,因此最终模拟的音频信号在幅度上也分为了 65536 层。

最后,编码就是按照一定的格式记录采样和量化后的数字数据,比如顺序存储或压缩存储。

声道分为单声道 mono 和立体声 stereo,也就是不分左右和分左右。

由此可以得出,音频码率 = 采样率 * 量化格式 * 声道数

脉冲编码调制 Pulse Code Modulation,简写 PCM,是非压缩数据的音频编码,原始音频数据,查看 视音频数据处理入门:PCM 音频采样数据处理 来了解如何分离声道、调节音量、调节速度、量化格式转换、音频截取等,这些基本概念很有用。

AAC ADTS Sequence

AAC 是压缩数据的音频编码,并且多用于视频中的音频编码,参考 视音频数据处理入门:AAC音频码流解析 的代码和 音视频封装格式:AAC音频基础和ADTS打包方案详解 对 AAC 格式的详细解读,我编写了 AACParser 来解析 AAC 音频文件。

如果你觉得以上思考对你有帮助,请订阅博客


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK