音频编码格式——AAC简介
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长度为7或9个字节,头信息分为两部分: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简介相关推荐
- aac fhg lc哪一个模式_AAC音频编码格式简介
AAC音频编码格式,完整名称叫做"高级音频编码(Advanced Audio Codec)".这种先进而高级的编码规范,是由Fraunhofer IIS公司(前MP3标准的制定者) ...
- AAC音频编码格式介绍
一.概述及分类 AAC"Advanced Audio Coding"的缩写,中文称为"高级音频编码",被手机界称为"21世纪数据压缩方式", ...
- 音视频基础知识---音频编码格式
音视频基础知识汇总: 音视频基础知识---协议相关RTSP RTMP HLS 音视频基础知识---封装格式 音视频基础知识---视频编码格式 音视频基础知识---音频编码格式 音视频基础知识---像素 ...
- ffmpeg 解码音频(aac、mp3)输出pcm文件
ffmpeg 解码音频(aac.mp3)输出pcm文件 播放pcm可以参考: ffplay -ar 48000 -ac 2 -f f32le out.pcm main.c #include <s ...
- 常见窄带宽带音频编码格式
常见音频编码格式,有窄带编码和宽带编码,从传统的PSTN网络,到现在的IP网络,一张表格,一目了然. 常见音频编码格式 宽带语音就是扩大了采样的语音频率范围.比特率小于64Kbps的,有些适用于VOI ...
- 音频 PCM音频编码格式详解
概念 PCM(Pulse Code Modulation)音频编码格式也被称为脉冲编码调制.就是将声音等模拟信号变成符号化的脉冲列,再进行记录存储. 原理 把一个时间连续,取值连续的模拟信号变换成时间 ...
- 教你如何快速将音频文件AAC转换成MP3格式
怎么将音频文件AAC转换成MP3格式呢?电脑上我们用的最多的音乐播放器就是QQ音乐了,不管是手机还是电脑大部分的人都会选择它,听音乐享受音乐是生活中不可缺少的部分,假设我们在下载自己喜欢的音乐时候,发 ...
- 常用音频编码格式简介(PCM、G726、ADPCM、LPCM、G711、AAC)
目录 PCM.G726.ADPCM.LPCM.G711.AAC介绍 格式对比 音频帧长 音频播放过程 PCM PCM全称Pulse-Code Modulation,翻译一下是脉冲调制编码. 在音视频中 ...
- 音频编码格式介绍-AAC
目录 概述 帧格式 算法简介 开源的软件 AAC和MP3的关键性不同 参考阅读 1. 概述 AAC(Advanced Audio Coding),被认为是MP3的继任者,相对MP3有更高的压缩效率.由 ...
- 一、常见音频编码格式以及帧长计算
一.音频帧的长度 音频帧的概念没有视频帧清晰,一般来说,一帧视频帧可以认作是经过某种视频编码格式编码后的一副图像,但音频帧跟具体编码格式有关,例如PCM裸数据,就不需要音频帧的概念,只需要根据采样率和 ...
最新文章
- OpenCV | OpenCV将图像转换成黑白图像(二进制)
- mysql distinct多个字段_深入浅出Mysql索引的那些事儿
- NR 5G 密钥与安全详解
- 关于面向对象的的设计原则的使用
- python 笔记:if __name__==‘main’
- 【视频】React ReduxToolkit状态管理:创建store对象及redux调试工具的安装方法
- 解决Button设置disabled后无法执行后台代码问题
- 震后十年,他重走那条生死送货线
- 解决Connectify和校园天翼宽带L2TP客户端的不兼容问题
- 寄生电容/寄生电阻/寄生电感
- 计算几何(基础部分)
- Python修改Word文件设置所有图片都居中对齐
- 51单片机(郭天祥版)——键盘检测原理及应用实现
- 机器人建模中移动关节如何建立坐标系_简述空间机器人运动学和动力学建模
- doctrine 关系
- 何为二进制计算机语言,二进制解码时尚新青年
- 用JS制作表格的添加删除
- bzoj-1233 [Usaco2009Open]干草堆tower
- P1478 陶陶摘苹果(升级版)(C++_贪心)
- Kafka多租户(配额)管理