AAC (Advanced Audio Coding),高级音频编码,是一种声音数据压缩格式。基于1997年,目的是为了取代MP3格式。

  • 优点:相较于mp3,AAC格式的音质更佳,文件更小。
  • 不足:AAC属于有损压缩的格式,与时下流行的APE、FLAC等无损格式相比音质存在“本质上”的差距。加之,传输速度更快的USB3.0和16G以上大容量MP3正在加速普及,也使得AAC头上“小巧”的光环不复存在。

AAC规格

AAC规格有十几种,常用的三种AAC规格:

  • LC-AAC(最基本的)
  • HE-AAC(AACPlus v1)
  • HE-AAC v2(AACPlus v2)

  • LC:(Low Complexity)低复杂度规格,现在的手机比较常见的MP4文件中的音频部份就包括了该规格音频文件

  • HE:(High Efficiency)高效性。HE-AAC v1(又称AACPlusV1,SBR),用容器的方法实现了AAC(LC)和SBR技术。SBR其实代表的是Spectral Band Replication(频段复制)。简要叙述一下,音乐的主要频谱集中在低频段,高频段幅度很小,但很重要,决定了音质。如果对整个频段编码,若是为了保护高频就会造成低频段编码过细以致文件巨大;若是保存了低频的主要成分而失去高频成分就会丧失音质。
    SBR把频谱切割开来,低频单独编码保存主要成分, 通过从低频段进行换位来实现高频段(基于对音频信号的高频范围和低频范围之间的强相关性的认识),通过SBR数据指导、补偿可能丢失的高频分量来进行高频带的重建,在低码率的情况下还保存了音质,完美的化解这一矛盾。

  • HEv2:用容器的方法包含了HE-AAC v1和PS技术。PS指“parametric
    stereo”(参数立体声)。原来的立体声文件文件大小是一个声道的两倍。但是两个声道的声音存在某种相似性,根据香农信息熵编码定理,相关性应该被去
    掉才能减小文件大小。所以PS技术存储了一个声道的全部信息,然后,花很少的字节用参数描述另一个声道和它不同的地方。


在低码率的情况下,HE-AAC,HE-AAC v2编码后的音质要明显好于LC-AAC。而在码率较大后(128kbps),其主观质量逐渐相同。

AAC文件格式

  • ADIF:Audio Data Interchange Format 音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。

  • ADTS:Audio Data Transport Stream 音频数据传输流。这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。它的特征类似于mp3数据流格式。这种格式可以用于广播电视。

ADIF只有一个文件头,ADTS每个包前面有一个文件头。

ADIF格式


头信息:

ADTS格式

ADTS的一般格式

ADTS_header AAC ES ADTS_header AAC ES

ADTS格式的AAC文件,每一帧由ADTS Header和AAC Audio Data组成。
ADTS_header长度为79个字节,头信息分为两部分:adts_fixed_header和adts_variable_header。
其中adts_fixed_header长度固定为 28bit,并且内容是固定的,不跟随包大小变化。而adts_variable_header内容、长度可变,为28bit或44bit。

ADTS 的固定头信息:

  • syncword :总是0xFFF, 代表一个ADTS帧的开始, 用于同步.
  • ID:MPEG Version: 0 for MPEG-4,1 for MPEG-2
  • Layer:always: ‘00’
  • protection_absent:Warning, set to 1 if there is no CRC and 0 if there is CRC
  • profile:表示使用哪个级别的AAC,如01 Low Complexity(LC) – AAC LC
    profile的值等于 Audio Object Type的值减1.
  • sampling_frequency_index:采样率的下标
  • private_bit:私有位,编码时设置为0,解码时忽略
  • channel_configuration:标识声道数
  • original_copy:编码时设置为0,解码时忽略
  • home:编码时设置为0,解码时忽略

当protection_absend为1时表示无crc, ADTS可变头长度 为28bit,为0时,可变头长度为44bit.

ADTS的可变头信息:

  • copyright_identification_bit:编码时设置为0,解码时忽略
  • copyright_identification_start:编码时设置为0,解码时忽略
  • aac_frame_length:ADTS帧长度包括ADTS长度和AAC声音数据长度的和。即 aac_frame_length = - (protection_absent == 0 ? 9 : 7) + audio_data_length
  • adts_buffer_fullness:固定为0x7FF。表示是码率可变的码流
  • number_of_raw_data_blocks_in_frame:表示当前帧有number_of_raw_data_blocks_in_frame + 1 个原始帧(一个AAC原始帧包含一段时间内1024个采样及相关数据)。

AAC 文件查看工具:AAC Audio ES Viewer

音频编码格式——AAC简介相关推荐

  1. aac fhg lc哪一个模式_AAC音频编码格式简介

    AAC音频编码格式,完整名称叫做"高级音频编码(Advanced Audio Codec)".这种先进而高级的编码规范,是由Fraunhofer IIS公司(前MP3标准的制定者) ...

  2. AAC音频编码格式介绍

    一.概述及分类 AAC"Advanced Audio Coding"的缩写,中文称为"高级音频编码",被手机界称为"21世纪数据压缩方式", ...

  3. 音视频基础知识---音频编码格式

    音视频基础知识汇总: 音视频基础知识---协议相关RTSP RTMP HLS 音视频基础知识---封装格式 音视频基础知识---视频编码格式 音视频基础知识---音频编码格式 音视频基础知识---像素 ...

  4. ffmpeg 解码音频(aac、mp3)输出pcm文件

    ffmpeg 解码音频(aac.mp3)输出pcm文件 播放pcm可以参考: ffplay -ar 48000 -ac 2 -f f32le out.pcm main.c #include <s ...

  5. 常见窄带宽带音频编码格式

    常见音频编码格式,有窄带编码和宽带编码,从传统的PSTN网络,到现在的IP网络,一张表格,一目了然. 常见音频编码格式 宽带语音就是扩大了采样的语音频率范围.比特率小于64Kbps的,有些适用于VOI ...

  6. 音频 PCM音频编码格式详解

    概念 PCM(Pulse Code Modulation)音频编码格式也被称为脉冲编码调制.就是将声音等模拟信号变成符号化的脉冲列,再进行记录存储. 原理 把一个时间连续,取值连续的模拟信号变换成时间 ...

  7. 教你如何快速将音频文件AAC转换成MP3格式

    怎么将音频文件AAC转换成MP3格式呢?电脑上我们用的最多的音乐播放器就是QQ音乐了,不管是手机还是电脑大部分的人都会选择它,听音乐享受音乐是生活中不可缺少的部分,假设我们在下载自己喜欢的音乐时候,发 ...

  8. 常用音频编码格式简介(PCM、G726、ADPCM、LPCM、G711、AAC)

    目录 PCM.G726.ADPCM.LPCM.G711.AAC介绍 格式对比 音频帧长 音频播放过程 PCM PCM全称Pulse-Code Modulation,翻译一下是脉冲调制编码. 在音视频中 ...

  9. 音频编码格式介绍-AAC

    目录 概述 帧格式 算法简介 开源的软件 AAC和MP3的关键性不同 参考阅读 1. 概述 AAC(Advanced Audio Coding),被认为是MP3的继任者,相对MP3有更高的压缩效率.由 ...

  10. 一、常见音频编码格式以及帧长计算

    一.音频帧的长度 音频帧的概念没有视频帧清晰,一般来说,一帧视频帧可以认作是经过某种视频编码格式编码后的一副图像,但音频帧跟具体编码格式有关,例如PCM裸数据,就不需要音频帧的概念,只需要根据采样率和 ...

最新文章

  1. OpenCV | OpenCV将图像转换成黑白图像(二进制)
  2. mysql distinct多个字段_深入浅出Mysql索引的那些事儿
  3. NR 5G 密钥与安全详解
  4. 关于面向对象的的设计原则的使用
  5. python 笔记:if __name__==‘main’
  6. 【视频】React ReduxToolkit状态管理:创建store对象及redux调试工具的安装方法
  7. 解决Button设置disabled后无法执行后台代码问题
  8. 震后十年,他重走那条生死送货线
  9. 解决Connectify和校园天翼宽带L2TP客户端的不兼容问题
  10. 寄生电容/寄生电阻/寄生电感
  11. 计算几何(基础部分)
  12. Python修改Word文件设置所有图片都居中对齐
  13. 51单片机(郭天祥版)——键盘检测原理及应用实现
  14. 机器人建模中移动关节如何建立坐标系_简述空间机器人运动学和动力学建模
  15. doctrine 关系
  16. 何为二进制计算机语言,二进制解码时尚新青年
  17. 用JS制作表格的添加删除
  18. bzoj-1233 [Usaco2009Open]干草堆tower
  19. P1478 陶陶摘苹果(升级版)(C++_贪心)
  20. Kafka多租户(配额)管理

热门文章

  1. 你们要的终极指南! 交易API接口
  2. Java IO(非常详细)
  3. 【Python Programe】使用Python发送语音验证
  4. React脚手架创建项目
  5. 如何在CAD中插入一个自定义对象?
  6. LintCode-颜色分类
  7. 机器学习常见概率模型
  8. 24V600mA限流电路的Pspice仿真实例
  9. ue4导入abc文件问题
  10. php 人民币格式化,用PHP解析时格式化货币