0%

常见音频格式

电视广播离不开声音信号,随着人们对电视质量的要求越来越高,在数字电视广播、高清晰数字电视和数字电影中不仅应有高质量的图像,还要保证有高质量的伴音。

音频文件格式往往包含了对音频编码格式的表达,两者一般是一对一的关系,或者说音频文件格式也是音频编码格式。

PCM

PCM (PulseCode Modulation) 被称为脉码编码调制。PCM中的声音数据没有被压缩,如果是单声道的文件,采样数据按时间的先后顺序依次存入(它的基本组织单位是BYTE(8bit)或WORD(16bit)),如果是双声道的文件,采样数据按时间先后顺序交叉地存入。如图所示:

PCM存储方式

PCM的每个样本值包含在一个整数i中,i的长度为容纳指定样本长度所需的最小字节数。8位和16位的PCM波形样本的数据格式:

样本大小 数据格式 最小值 最大值
8bit PCM unsigned int 0 255
16bit PCM int -32768 32767

PCM没有保存元数据信息,播放时要准确指定采样格式、采样率和声道才能播放。

WAV

实现方式很多,在原 PCM 数据格式前面加上 44 字节元数据描述 PCM:采样率、声道数、数据格式等。

特点:保留原始PCM,音质好,大量软件都支持;

适合场景:高比特率下对兼容性有要求的音乐欣赏。

WAV格式符合资源交换文件格式(RIFF,ResourceInterchange File Format)规范。WAV文件分为两个部分:头信息和PCM音频数据。

有损压缩编码格式

MP3

MP3,MPEG-1 Audio Layer III,也可以是MPEG-2 Audio Layer III。

技术细节:

  • 使用MDCT算法,修正了DCT算法上的一些缺陷。
  • 使用声学心理模型:
    • 人耳听觉范围是20Hz~20kHz,去掉高频信息;
    • 人耳对2000Hz~5000Hz最灵敏,两端下降比较厉害,尤其是高频,在去掉部分高频信息;
    • 人耳有遮蔽效应,去掉频域和时域遮蔽的部分;
  • 使用哈夫曼编码压缩音频数据。

缺点:

  • CBR编码对20kHz以上的声音一刀切。当然也可以使用VBR规避。
  • 最初使用的ID3标签没有统一的文本编码。ID3 v2对此做了修正。
  • 多声道支持较差。非主流的MPEG-2 Audio Layer III才支持了5.1声道。

AAC

AAC,Advanced Audio Coding。为了取代MP3。目前较热门的有损压缩编码技术,衍生了 LC-AAC、HE-AAC、HE-AAC v2 这三种主要编码格式。

特点:在小于 128Kbit/s 的码率下表现优异,并且多用于视频中的音频编码。

适用场景:128Kbit/s 以下的音频编码,多用于视频中音频轨的编码。

技术细节:

  • 使用了完整的MDCT算法,编码效率上更胜一筹。一般同等码率下,AAC质量比MP3更好一些。
  • 支持更大的采样率(16~48kHz=>8~96kHz)。
  • 支持高达48个声道。
  • 对频率高于16kHz的音质更好。

Ogg

Ogg是Vorbis编码的容器。

  • 非常有潜力,各种码率下都有比较优秀的表现。
  • 尤其在低码率情况下,编码算法出色,可以用更小码率达到更好的音质。

特点:可以用比MP3更小的码率实现比MP3更好的音质,高中低码率下均有良好的表现,兼容不够好,流媒体特性不支持。

使用场景:语言聊天的音频消息场景

技术细节:

基于MDCT时频转换,然后通过心理声学进行频段舍弃。后续使用矢量量化算法,使得在低码率下有着很好的表现,接近AAC HE,但还没能超越。

Opus

  • 编码比Vorbis更好的低码率表现,并在同码率下超越了AAC HE。
  • 低延时。使得在数字语音通信领域中应用广泛。

AC-3

AC-3,Dolby Digital。

  • 首个使用MDCT算法进行压缩的编码,同时还使用音频心理学研究成果对压缩算法进行优化,使得最终压缩后的产物仍拥有影院基本效果。
  • DD编码一般有6个声道,称为DD 5.1。
  • 元数据中带有对解码过程进行控制的相关信息,使得它在支持的播放器上可以还原出制片方想要的效果。

缺点:

  • 只支持固定码率编码,使得码率比较高。

升级版本:E-AC-3,Dolby Digital Plus。

DTS

Dolby的竞争对手。

选择ADPCM作为算法基础,采用自适应采样大小记录电平值。对存储空间利用率更高。同时,相对于使用MDCT算法算出不同频率段再砍掉人耳不敏感部分的做法,基于AFPCM的算法虽压缩比低一些,但对声音细节保留得更好。

但也是因为使用自适应采样大小,使得体积控制比DD要差一些,这限制了它的使用。

总结

大部分编码格式都是基于PCM进行无损、有损的压缩编码。使用的编码技术都是类似的。有损压缩编码基于MDCT,然后经过心理声学模型取出人耳不敏感的信息,最后经过哈夫曼编码压缩。无损压缩编码都是基于线性预测编码。不同的格式可能更多是机构、厂商竞争的产物。

参考

欢迎关注我的其它发布渠道