AAC概述
AAC是高级音频编码(Advanced Audio Coding)的缩写,出现于1997年,最初是基于MPEG-2的音频编码技术。由Fraunhofer IIS、Dolby Laboratories、AT&T、Sony等公司共同开发,目的是取代MP3格式。2000年,MPEG-4标准出台,AAC重新集成了其它技术(PS,SBR),为区别于传统的MPEG-2 AAC,故含有SBR或PS特性的AAC又称为MPEG-4 AAC。

AAC是新一代的音频有损压缩技术,它通过一些附加的编码技术(比如PS,SBR等),衍生出了LC-AAC,HE-AAC,HE-AACv2三种主要的编码,LC-AAC就是比较传统的AAC,相对而言,主要用于中高码率(>=80Kbps),HE-AAC(相当于AAC+SBR)主要用于中低码(<=80Kbps),而新近推出的HE-AACv2(相当于AAC+SBR+PS)主要用于低码率(<=48Kbps),事实上大部分编码器设成<=48Kbps自动启用PS技术,而>48Kbps就不加PS,就相当于普通的HE-AAC。

AAC特点
(1)AAC是一种高压缩比的音频压缩算法,但它的压缩比要远超过较老的音频压缩算法,如AC-3、MP3等。并且其质量可以同未压缩的CD音质相媲美。
(2)同其他类似的音频编码算法一样,AAC也是采用了变换编码算法,但AAC使用了分辨率更高的滤波器组,因此它可以达到更高的压缩比。
(3)AAC使用了临时噪声重整、后向自适应线性预测、联合立体声技术和量化哈夫曼编码等最新技术,这些新技术的使用都使压缩比得到进一步的提高
(4)AAC支持更多种采样率和比特率、支持1个到48个音轨、支持多达15个低频音轨、具有多种语言的兼容能力、还有多达15个内嵌数据流。
(5)AAC支持更宽的声音频率范围,最高可达到96kHz,最低可达8KHz,远宽于MP3的16KHz-48kHz的范围。
(6)不同于MP3及WMA,AAC几乎不损失声音频率中的甚高、甚低频率成分,并且比WMA在频谱结构上更接近于原始音频,因而声音的保真度更好。专业评测中表明,AAC比WMA声音更清晰,而且更接近原音。
(7)AAC采用优化的算法达到了更高的解码效率,解码时只需较少的处理能力。

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

ADTS:Audio Data Transport Stream 音频数据传输流。这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。它的特征类似于mp3数据流格式。
简单说,ADTS可以在任意帧解码,也就是说它每一帧都有头信息。ADIF只有一个统一的头,所以必须得到所有的数据后解码。且这两种的header的格式也是不同的,目前一般编码后的和抽取出的都是ADTS格式的音频流。

这里主要介绍AAC的ADTS格式
AAC音频文件的每一帧都由一个ADTS头和AAC ES(AAC音频数据)组成。

ADTS头包含了AAC文件的采样率、通道数、帧数据长度等信息。ADTS头分为固定头信息和可变头信息两个部分,固定头信息在每个帧中的是一样的,可变头信息在各个帧中并不是固定值。ADTS头一般是7个字节((28+28)/ 8)长度,如果需要对数据进行CRC校验,则会有2个Byte的校验码,所以ADTS头的实际长度是7个字节或9个字节。

固定头信息:adts_fixed_header()
ADTS头的固定头信息在每个帧中都是一样的。

syncword:帧同步标识一个帧的开始,固定为0xFFF
ID:MPEG 标示符。0表示MPEG-4,1表示MPEG-2
layer:固定为’00’
protection_absent:标识是否进行误码校验。0表示有CRC校验,1表示没有CRC校验
profile:标识使用哪个级别的AAC。1: AAC Main 2:AAC LC (Low Complexity) 3:AAC SSR (Scalable Sample Rate) 4:AAC LTP (Long Term Prediction)
sampling_frequency_index:标识使用的采样率的下标
private_bit:私有位,编码时设置为0,解码时忽略
channel_configuration:标识声道数
original_copy:编码时设置为0,解码时忽略
home:编码时设置为0,解码时忽略

2.2 可变头信息:adts_variable_header()

copyrighted_id_bit:编码时设置为0,解码时忽略
copyrighted_id_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个采样及相关数据)。

acc之ADTS解说一相关推荐

  1. librtmp获取视频流和音频流1

    libRTMP 库从 RTMP 直播服务器不断地获取 RTMP 包,从RTMP包中获取音频和视频数据.RTMP只是一个应用层协议,传输的数据格式都是基于FLV格式的. 我们在推送音.视频包之前,会首先 ...

  2. javascript事件列表解说

    javascript事件列表解说 事件 浏览器支持 解说 一般事件 onclick IE3.N2 鼠标点击时触发此事件 ondblclick IE4.N4 鼠标双击时触发此事件 onmousedown ...

  3. 计算机累加器有加法器功能吗,累加器-累加器ACC的作用

    ACC累加器 B用于辅助累加器做某些运算的寄存器 PSW程序状态字其中最高位是进/借位标志C:PSW.6是辅助进位标志AC,用于标识加减运算中低四位向高四位的进位:PSW.4和PSW.3是寄存器组选择 ...

  4. 计算机网络原理超详解说

    计算机网络原理超详解说 前言 大家好,我是泰斗贤若如,一个专注于用大白话讲解技术的号主,这次给大家分享计算机网络原理的相关知识,我自认为文章内容已经很通俗易懂了,祝您阅读愉快! 一.计算机网络概述 时 ...

  5. MPB:林科院袁志林组-利用acdSf3/acdSr4引物快速鉴定产ACC脱氨酶细菌

    为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...

  6. 混淆矩阵(confusion matrix)是什么?以及能从混淆矩阵中衍生出来的指标FPR、TPR、FDR、ACC、PPV、NPV分别是什么?对应的概念及公式是什么?

    混淆矩阵(confusion matrix)是什么?以及能从混淆矩阵中衍生出来的指标FPR.TPR.FDR.ACC.PPV.NPV分别是什么?对应的概念及公式是什么? 目录

  7. Keras构建前馈神经网络并使用callbacks输出acc以及loss曲线(训练接、验证集)及效果可视化

    Keras构建前馈神经网络并使用callbacks输出acc以及loss曲线(训练接.验证集)及效果可视化 在每个training/epoch/batch结束时,如果我们想执行某些任务,例如模型缓存. ...

  8. 解决KeyError: ‘acc‘ 和KeyError: ‘val_acc‘错误

    问题描述: 程序运行出现KeyError: 'acc' 和KeyError: 'val_acc'的错误. 解决方法: 在Keras 2.3.0中,矩阵的报告方式已更改为与指定的确切名称相匹配. 如果您 ...

  9. 如何根据keras的fit后返回的history绘制loss acc曲线

    model.summary() #绘制acc-loss曲线 import matplotlib.pyplot as plt plt.plot(hist.history['loss'],color='r ...

最新文章

  1. IO异常 java.net.SocketException: Connection reset
  2. Python编程基础:第二十一节 函数返回Return
  3. 大正整数排序~(结构体排序~)
  4. java hashtable keys_Java Hashtable keys()方法与示例
  5. easyui 图标_logo设计和图标设计有哪些不同?
  6. 【SpringBoot_ANNOTATIONS】自动装配 01 @Autowired @Qualifier @Primary
  7. 关于yolo3的学习
  8. 【百度地图2.5D、3D在Vue项目中的使用】嵌入二维百度地图、三维百度地图、多种显示模式风格样式颜色的百度地图
  9. 有哪些PDF分割工具?建议收藏这些工具
  10. 你吃的外卖,半年前就做好了
  11. 【今日CV 计算机视觉论文速览 第122期】Fri, 31 May 2019
  12. 聊聊3D建模行业的发展前景,这类建模师目前最吃香
  13. hackerrank初级篇之staircase
  14. 大规模机器集群-单机/集群/服务/机房/从零恢复的快速交付
  15. java求拼接后的字符串长度,java如何拼接字符串
  16. Windows 变慢原因分析及解决方法
  17. 江淮汽车回应为小米代工;腾讯起诉腾迅获赔 30 万;鸿星尔克因公司系统崩溃、恳请顾客退款 | EA周报...
  18. mysql的slow_log表_【转载】mysql 开启慢查询 清空slow_log日志或者slow_log表
  19. 修正牛顿法编程python_GitHub - Maples7/newtonMethod: 牛顿法求解复数域上x^4-1=0收敛域的程序 using Python...
  20. Excel技巧大全之具有多个搜索条件的索引匹配

热门文章

  1. Python中的打包与解包
  2. 小程序中轻松添加日期和时间的选择
  3. 上百本中文书籍中对《人月神话》的引用(4)
  4. 学mei私聊问我【DISTINCT】关键字有什么作用?查一个字段和多个字段的区别?
  5. 【devops】非必要 不要自建harbor 能力不足 真的被坑的服了 阿里云ACR不香吗?k8s接入ACR
  6. CPSR SPSR
  7. 深度学习和大数据之间,主要是什么关系?
  8. Python画地图数据可视化分析
  9. Appium+Pytest+Allure集成PO项目管理模式实现自动化测试
  10. java ligerui_[Java教程]jQuery LigerUI 使用教程入门篇_星空网