音频压缩编码技术—AAC编解码器

Posted 赵新政

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了音频压缩编码技术—AAC编解码器相关的知识,希望对你有一定的参考价值。

AAC介绍

AAC(Advanced Audio Coding)由Sony、杜比实验室、AT&T等共同开发,目的是取代MP3
目前常用的规格有 AAC LC/ AAC HE V1/AAC HE V2

1 对音频内容的编码格式

AAC LC (low complexity)低复杂度规格,码流128k,音质较好,但是码流太大了。

AAC HE V1:AAC LC + SBR(special band replication) 拿到频谱之后,把低频(也就是基频)保存主要成分,高频单独放大,保存音质。码流在64k左右。

AAC HE V2:AAC LC + SBR(special band replication) + PS(parametric stereo) 双声道声音有相似度,只需要存储一个声道,另一个用参数进行描述

2 对音频每个数据包的头文件格式选项

ADIF(audio data interchange format),相当于AAC前面的文件头,保证解码的顺序性,必须从音频的头开始,不能从中间。

ADTS(audio data transport stream),每一帧都有一个同步字,音频的任何地方都可以触发,比如拖动进度条,就可以向后找到第一个ADTS进行解码与播放,找不到就继续向后找

3 ADTS协议入门

通常由7-9个字节组成
1、首12位,0xFFF,每个bit位都是1才可以,所以就用来识别这是个ADTS协议头的开
2、13位,表示使用的编码规范,0用MPEG-4 ;1用MPEG-2,一般情况下都是0
3、14 15位,00,通常如此
4、16位,一般设置1,1表示没有CRC(循环冗余校验,即补齐字节),如果是0则表示有CRC
5、17-18位,表示使用的AAC文件类型,比如V1 / V2 / LC等,即Audio Object Type,其中他的值比较有趣:

1:AAC MAIN
2:AAC LC
3…
等等,存储的时候是从0开始,但是解码后,需要把类型+1,然后才去使用;编码的时候,需要把类型-1,然后取编码;这里比较特殊

6、19-23位(四位), 采样率,441000还是16000等,用这个控制,属于sample frequency index
采样率都是额定的:
0:96000
1:88200
2:64000
。。。
但是这些值太大了,所以存储下索引
具体看协议可以去:
点击查看ADTS格式头描述

以上是关于音频压缩编码技术—AAC编解码器的主要内容,如果未能解决你的问题,请参考以下文章

OGG与AAC音质比较起来哪个更好?

AAC音频编码 相关的原理和设置

音频压缩编码技术—常用编码器

音频压缩编码技术—常用编码器

AAC 音频解码类

android音视频音频硬编解码pcm&aac&wav