当前位置: 首页 > article >正文

「音视频处理」音频编码AAC详解,低码率提高音质?

AAC(高级音频编码)

也称为 MPEG-4 音频。数码音频压缩和编码的标准方式。AAC 编码文件可与音乐光盘的质量相匹敌,且声音质量通常等同于或高于以相同或甚至更高的位速率编码的 MP3 文件。

我们按这样的顺序讨论 :

1、 封装格式的作用

2、 AAC的一些特殊限制

3、 AAC与其他编码格式的选择

封装格式的作用

一个视频或音频文件实际上是分三层的:封装、编码、基础数据。

编码的作用是为了压缩数据,限制最终文件的大小。

我们举个例子,音频是由一个个采样组成的,如果采样的位深度为16bit的话,一个采样的大小即为16bit。

如果音频长度1分钟,采样率为48KHz、双声道的话,则理论音频文件大小为10MB左右。

一般除了无损音频文件,是没这么大的,因为音频编码阶段会压缩数据

这里顺便一提,即使是无损音频文件,编码阶段也会压缩数据,只是压缩算法是无损的,保证能还原成原始数据。

另外,一般只有对音频文件大小产生影响的基础参数才会作用在编码阶段,如码率、最大码率等。

除去无损音频编码格式外,编码阶段会按这些参数限制文件大小,但同时也可能会产生有损压缩,影响声音质量。

其他参数如采样率、位深度等,都不是编码阶段处理的,需要转码程序对原始音频数据进行处理

关于音频相关参数的讲解以及推荐设置,如音频帧、采样、位深度、采样率、声道等,这里不作展开。

AAC的一些特殊限制

音频编码格式的不同,意味着压缩算法的区别。具体压缩算法是不需要搞清楚的,但是需要清楚具体编码格式的一些特殊限制

AAC编码的话,音频采样率限制在8KHz-96KHz之间。

另外,AAC编码一般以1024个采样为一个音频帧,如果是双通道、采样率为48KHz的话,则一个音频帧的长度大约为0.01秒。

如果每个音频帧的采样数不对,则可能会造成播放过快或过慢的问题。

这里需要注意的是,AAC实际上有多种规格的,不同规格可以理解为AAC编码的不同行为,以上介绍的一些特殊限制都是基于最常用的AAC-LC规格

不同规格下,支持的采样率、最大码率、每帧采样数都是有区别的。另外,在低码率,128Kbps以下,不同模式的主观音质会有所区别,AAC-HE会比常用的AAC-LC更加优秀

但一般音频码率都会在128Kbps以上,所以一般选用常规的AAC-LC即可。

AAC与其他编码格式的选择

AAC是很常用的编码格式,无论是视频文件、还是单纯的音频文件,采用AAC编码格式,都有很高的兼容性

如果是要求无损音质,则选择PCM等编码格式。

当然,音频编码格式的选择,更多是以实际情况为依据的,在明确音质要求前提下,需要考虑数据量/流量等成本问题。

但比这些都重要的是兼容目标用户群体的播放设备/软件,毕竟编码格式再优秀,用户播不了也是没用的。

本文福利, 免费领取C++音视频学习资料包+学习路线大纲、技术视频/代码,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓ 


http://www.kler.cn/a/159947.html

相关文章:

  • Java结合ElasticSearch根据查询关键字,高亮显示全文数据。
  • Redo与Undo的区别:数据库事务的恢复与撤销机制
  • opencv常用api
  • WLAN消失或者已连接但是访问不了互联网
  • 什么时候需要复写hashcode()和compartTo方法
  • vue2+ element ui 集成pdfjs-dist
  • 【Python】Python读Excel文件生成xml文件
  • 智能优化算法应用:基于梯度算法无线传感器网络(WSN)覆盖优化 - 附代码
  • Spring boot -- 学习HttpMessageConverter
  • 【LeetCode 0170】【哈希】两数之和(3) 数据结构设计
  • Unity 加载本地或网络图片并转为精灵(Sprite)的方法
  • java WebSocket带参数处理使用
  • 逆向爬虫进阶实战:突破反爬虫机制,实现数据抓取
  • UEC++ 探索虚幻5笔记(捡金币案例) day12
  • Webgis学习总结
  • 数据增强改进,实现检测目标copypaste,增加目标数据量,提升精度
  • 安全行业招聘信息汇总
  • 浅谈Elasticsearch安全和权限管理
  • Ubuntu下应用软件安装
  • c语言函数与指针
  • Redis 入门、基础。(五种基本类型使用场景)
  • 8、Broker进一步了解
  • OracleRac跨网段修改Public IP/VIP/Private IP/Scan IP
  • c语言经典题目
  • Distilling the Knowledge in a Neural Network(2015.5)(d补)
  • ElasticSearch篇---第三篇