音视频入门-5-音频编码原理、编码器、ADTS格式
1. 概念
音频压缩技术指的是对原始数字音频信号流(PCM编码)运用的数字信号处理技术。
2. 背景 和 压缩的必要性
研究发现,直接采用PCM码流进行存储和传输存在非常大的冗余度。
以CD为例,其采样率为44.1KHz,量化精度为16比特,则1分钟的立体声音频信号需占约10M字节的存储容量,也就是说,一张CD唱盘的容量只有1小时左右。
事实上,在无损的条件下对声音至少可进行4:1压缩,即只用25%的数字量保留所有的信息,而在视频领域压缩比甚至可以达到几百倍。
3. 注: 消除冗余信息是有损编码

4. 有损编码, 可以采用消除冗余信息的思路

使用傅里叶变换得到频域信息,看着该频域信息图,我们来进行遮蔽效应的概念解释:

划红线处的蓝色音源,威力很大,能把其他频率的信息覆盖,这是遮蔽源。
你可以把这个蓝色的音源理解为一个爱吵架的女生,音调很高,1KHz, 嗓门很大(即声音强度大概在70dB)。
这个女生一扯嗓子,就能把别人的声音遮蔽掉,
那么这个女生扯嗓子时候最容易把谁的声音遮蔽掉呢?
这就需要科学来解释了,上面这张图就是科学规律的总结。
频率相近的三个棕色的音源是最容易被遮蔽掉的音源了,上图也标识出了这些是被遮蔽的声音。
那是不是只要嗓门(声音强度)没这个女生大的音源,都会被覆盖呢?并不是!
上图中红圆圈所示的音源,频率大概在0.25KHz,声音强度超过了10dB, 但声音强度远远不及70dB, 你可以把这理解为一个声音低沉且嗓门也不大的魅力男嗓。
从上图可以看出,该男嗓未处在爱吵架女生声音的遮罩门槛内,
且同时也未处在静音门槛内(一些冰箱、电风扇工作时发出的声音可能处在静音门槛范围内,所以也被遮蔽了),
所以该男嗓的声音强度虽然不及该女生,但是却不会被遮蔽。
这就是频域遮蔽效应的特点了。

在同一个时间点,谁的声音强度小,就会被遮蔽。
既然我们知道存在这个遮蔽效应这条科学规律,我们就可以通过一定的算法分析出哪些声音信息是会被遮蔽的,这就是消除冗余信息,是有损编码的一种实现思路。
5. 无损编码
熵编码是无损编码,具体的编码方式有很多,如下图


哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。
Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,
有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。
6. 音频编码过程

7. 常见的音频编解码器

注:Speex包含回音消除功能。



8. AAC编码器介绍



9. ADTS格式头
AAC前面有个数据头,一般是ADTS格式的头。

对于直播系统,一般使用AAC,我们使用的都是ADTS格式。


注意,读出来Audio Object Types值还需要加1,才是对应的类型。
如果读出来Audio Object Types值是1,那么对应的是AAL LC类型。

ADTS头解析网站


PS:
1. 有时候我们无法播放一段AAC数据,可能是缺少了ADTS头信息,这是我们就需要想办法加上这个头信息。
2. 我们在使用ffmpeg时,虽然ADTS这些信息都会被封装在其内部,但是我们需要具备基本的音视频知识,以便更好地解决各类可能出现的麻烦问题。
10.

.
音视频入门-5-音频编码原理、编码器、ADTS格式的更多相关文章
- 音视频入门-14-JPEG文件格式详解
* 音视频入门文章目录 * JPEG 文件格式解析 JPEG 文件使用的数据存储方式有多种.最常用的格式称为 JPEG 文件交换格式(JPEG File Interchange Format,JFIF ...
- 音视频入门-18-手动生成一张GIF图片
* 音视频入门文章目录 * GIF 编码知识 GIF 包含的数据块: 文件头(Header) 逻辑屏幕标识符(Logical Screen Descriptor) 全局颜色表(Global Color ...
- 音视频入门-11-PNG文件格式详解
* 音视频入门文章目录 * PNG 文件格式解析 PNG 图像格式文件由一个 8 字节的 PNG 文件署名域和 3 个以上的后续数据块(IHDR.IDAT.IEND)组成. PNG 文件包括 8 字节 ...
- 音视频入门-07-认识YUV
* 音视频入门文章目录 * YUV & YCbCr 简介 YUV,是一种颜色编码方法.常使用在各个视频处理组件中. YUV 在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽. Y ...
- 音视频入门-01-认识RGB
* 音视频入门文章目录 * RGB 简介 RGB 色彩模式是工业界的一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB 即是代表红 ...
- moviepy音视频开发:音频剪辑基类AudioClip
☞ ░ 前往老猿Python博文目录 ░ 一.背景知识介绍 1.1.声音三要素: 音调:人耳对声音高低的感觉称为音调(也叫音频).音调主要与声波的频率有关.声波的频率高,则音调也高. 音量:也就是响度 ...
- 音视频入门-19-使用giflib处理GIF图片
* 音视频入门文章目录 * GIFLIB The GIFLIB project 上一篇 [手动生成一张GIF图片], 自己生成了一张 GIF 动态图 rainbow.gif. 下面,使用 GIFLIB ...
- 音视频入门-20-BMP、PNG、JPG、GIF静态图生成GIF动态图
* 音视频入门文章目录 * 静态图 -> 动态图 前面 [18-手动生成一张GIF图片] 和 [19-使用giflib处理GIF图片] 生成的 GIF 每一帧都是一个颜色,平时用到的 GIF 每 ...
- 堪称教科书级别的Android音视频入门进阶学习手册,开源分享!
概述 随着整个互联网的崛起,数据传递的形式也在不断升级变化,总的流行趋势如下: 纯文本的短信,QQ -> 空间,微博,朋友圈的图片文字结合 -> 微信语音 -> 各大直播软件 -&g ...
- 音视频入门-12-手动生成一张PNG图片
* 音视频入门文章目录 * 预热 上一篇 [PNG文件格式详解]详细介绍了 PNG 文件的格式. PNG 图像格式文件由一个 8 字节的 PNG 文件署名域和 3 个以上的后续数据块(IHDR.IDA ...
随机推荐
- Python shortuuid生成库学习小结
shortuuid生成库学习小结 by:授客 QQ:1033553122 实践环境 win10 Python 3.5.4 shortuuid-1.0.1-py3-none-any.whl 下载地址: ...
- windows中新建文件菜单消失的解决办法
具体解决办法: https://jingyan.baidu.com/article/cbcede07577f4702f40b4dfd.html 右键中新建文本文件 菜单消失: 注册表编辑器: 路径: ...
- css 蛇形排序
先看效果 需求: 一个[ 4 * ?]的网格布局,奇数行 布局 从左往右,偶数行 布局 从右往左. 思路1: js将数组按4个每份进行分割,将偶数份进行反向,然后再将分割后的数据,重新组装.( 太麻 ...
- 《最新出炉》系列初窥篇-Python+Playwright自动化测试-59 - 判断元素是否显示 - 上篇
1.简介 有些页面元素的生命周期如同流星一闪,昙花一现.我们也不知道这个元素在没在页面中出现过,为了捕获这一美好瞬间,让其成为永恒.我们就来判断元素是否显示出现过. 在操作元素之前,可以先判断元素的状 ...
- Fiddler的工作原理
Fiddler是位于客户端和服务器端中间的HTTP代理,是目前最常用的http抓包工具之一 . Fiddler抓取客户端和服务器之间的所有HTTP请求后进行分析.断点.过滤等操作. Fiddler可以 ...
- 【Java】找不到此类异常
Java.lang.classNotFoundException 找不到此类异常: java.lang.ClassNotFoundException: org.springframework.web. ...
- 【C】Re08 内存
一.概述 程序运行之后,所有的数据加载到内存上 内存会被操作系统进行分区处理, 划分的区域主要分为4个: [1.代码文本区 text] 存放开发者编写的代码文本,二进制内容形式 [2.静态全局区 St ...
- 植物大战僵尸杂交版v2.1整合包全解锁+高清工具
植物大战僵尸杂交版v2.1整合包全解锁+高清工具 引言 <植物大战僵尸>作为一款经典的塔防游戏,自2009年发布以来,就以其独特的游戏机制和幽默的风格赢得了全球玩家的喜爱.随着游戏的不 ...
- 电视家APP,从此以后电视盒子只是盒子,再与电视毫无关系
广电总局封掉了电视家APP,于是我决定把我的"当贝盒子"挂咸鱼了,从此以后电视盒子就只是个盒子. PS: 广电的一刀切简直是绝了,绝绝子.
- 【转载】 解决运行docker命令要用sudo的问题
将当前登录的用户添加到docker组中,这样以后在访问docker时就不用在sudo了 1. 查看是否创建docker 组 cat /etc/group | grep docker 2.创建docke ...