音频AAC的各种格式

上传人:博****1 文档编号:564959602 上传时间:2024-02-04 格式:DOCX 页数:5 大小:20.24KB
返回 下载 相关 举报
音频AAC的各种格式_第1页
第1页 / 共5页
音频AAC的各种格式_第2页
第2页 / 共5页
音频AAC的各种格式_第3页
第3页 / 共5页
音频AAC的各种格式_第4页
第4页 / 共5页
音频AAC的各种格式_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《音频AAC的各种格式》由会员分享,可在线阅读,更多相关《音频AAC的各种格式(5页珍藏版)》请在金锄头文库上搜索。

1、AAC的各种规格一、规格(profile)问题:wiki上说到,AAC共有9种规格,以适应不同的场合的需要: MPEG-2 AAC LC低复杂度规格(Low Complexity)比较简单,没有增益 控制,但提高了编码效率,在中等码率的编码效率以及音质方面,都能找到平衡 点八、 MPEG-2 AAC Main 主规格 MPEG-2 AAC SSR 可变采样率规格( Scaleable Sample Rate) MPEG-4 AAC LC低复杂度规格(Low Complexity)现在的手机比较常见的MP4文件中的音频部份就包括了该规格音频文件 MPEG-4 AAC Main 主规格 包含了除增

2、益控制之外的全部功能,其音质最好 MPEG-4 AAC SSR 可变采样率规格( Scaleable Sample Rate) MPEG-4 AAC LTP 长时期预测规格(Long Term Prediction) MPEG-4 AAC LD 低延迟规格( Low Delay) MPEG-4 AAC HE高效率规格(High Efficiency)-这种规格适合用于低 码率编码,有 Nero ACC 编码器支持后来也看了 14496-3标准,里面定义的profile除了上述的一些规格,还有如 Scalable 、 TwinVQ、 CELP、 HVXC 等更多其他的 profile。目前听到用

3、的比较多的应该是LC和HE(适合低码率)。流行的Nero AAC的 命令行编码程序就支持LC,HE,HEv2这三种,试用后,用Mediainfo分析了 编码后的AAC音频,发现规格显示都是LC,当时就感到奇怪,不是说支持三 种规格吗?然后才又查资料发现,原来HE其实就是AAC (LC) +SBR技术, HEv2就是AAC(LC)+SBR+PS技术,难怪用Mediainfo分析后,HE规格的文件即显示:,哈哈,既然说到了这里,就再简单的说下HE吧:HE:“high efficiency”(高效性)。HE-AAC v1 (又称 AACPlusVl, SBR) 用容器的方法加了原AAC (LC) +

4、SBR技术。呵呵,SBR其实代表的是Spectral Band Replication(频段复制)。简单概括一下,音乐的主要频谱集中在低频段,高 频段幅度很小(但很重要,决定了音质),如果对整个频段编码,要么为了保护 高频造成低频段编码过细以致文件巨大,要么为了保存了低频的主要成分而失去 高频成分以致丧失音质。SBR把频谱切割开来,低频单独编码保存主要成分, 高频单独放大编码保存音质,“统筹兼顾”了,在减少文件大小的情况下还保存 了音质,完美的化解了一对矛盾,真是聪明透顶啊那么 HEv2 又是什么呢?这个好像更牛些,因为它用容器的方法包含了 HE-AAC v1和PS技术。PS指“paramet

5、ric stereo(参数立体声)。这个其实 好理解,原来的立体声文件,文件大小是一个声道的两倍。但是两个声道的声音 存在某种相似性,根据香农信息熵编码定理,相关性应该被去掉才能减小文件大 小。所以 PS 技术存储了一个声道的全部信息,然后,花很少的字节用参数描述 另一个声道和它不同的地方怎么咱就没想到呢?这样,HEvl和HEv2用个图简单表示下就是:(图中的AAC即指的是原来 的 AAC-LC)至此,对于 HE 和 HEv2 profile 的 AAC 序列我算是初步准备好了,但是由于 NERO AAC编码后产生的是经过MP4容器封装后的,而我们的decoder需要处 理的是未经封装的AAC

6、流,因此还需要处理从MP4封装格式中extract出AAC 流的步骤;哦,这里提到了MP4容器封装,就再把我看到的一些关于MP4容器 的心得插入在此也说下:其实.mp4格式规范是MPEG4 Part 1标准定义的。但是这个格式本身相当通 用,并不是只能用来存贮MPEG4视频格式。举个例子,一个.mp4文件中包含的 可能是H.263的视频轨及AMR的音频轨。这样它和MPEG4视频压缩算法就半 点边都沾不上。但它绝对是一个合法的.mp4文件。从这个意义上讲,.mp4是一 个独立的封包格式。也许它的原始设计意图是仅用于MPEG4,但事实上大家觉 得它很好用,已经把它扩展成可以包容其它格式了。现在市场

7、上比如某产品号称 “支持MP4播放”,至【底是什么意思呢?如果它是指可以播放*.mp4这种文件, 那里面的音频和视频格式它能支持多少种组合呢?没说清楚吧。举个极端的例 子,假设一台设备仅支持“视频为未压缩YUV以及不带音频轨的.mp4文件,但 它的文件名确实可以是*.mp4,是不是也可以在盒子上印上“支持MP4”呢?那 么,买回去,复制一个网上下载的.mp4文件(MPEG4视频和AAC音频应该是 个比较流行的组合),结果却发现根本不能播放。就算不举这么极端的例子,一 般.mp4文件中常见的视频音频格式也有多种,一个产品要做到支持所有的格式 是很难的。所以,如果要准确的描述,应该写清楚类似“支持

8、视频格式为MPEG4 或H.264/AVC,音频为AMR或AAC的*.mp4文件”。其实更严格一些,还应 该写清楚MPEG4支持到哪种profile, AMR是NB还是 WB, AAC是LC还是HE 等更多细节。当然,这种误导型的说明应该在减少,不过如果有比较确切的格式 需求,最好还是先搞清楚这些细节。看到网上还有人说到N73,其实只支持视频 为 MPEG4 Simple Profile / Advanced Simple Profile 及 H.263 Profile 0 & 3,音频为 AMR-NB/WB或者AAC-LC, HE-AAC的mp4文件。如果你放一个视频格式为H.264/AVC

9、 的 mp4 上去,是无法播放出画面来的。呵呵,扯远了。说得不准 确的请大家指教。好,回到刚才的要从MP4封装格式中extract出AAC流的步骤,在网上找了 一些工具,如 MP4UI,MP4BOX,Yamb(mp4box 的 GUI 程序),采用它们进行 extract 操作后发现,原来的SBR和PS等信息咋没有了,都变成LC规格的AAC文件 啦。好容易准备的测试流,难道还是不能用?于是一番苦寻发现,可能是 SBR 和PS等信息在ADTS头中是无法体现的,所以分析ADTS格式头的AAC,就 无法判别是否是HE和HEv2啦。但是我总觉得SBR和PS等技术信息在AAC 流中应该还是存在的。因为我

10、还在一个国外的论坛上看到这么几句话:Theres no requirement for MP4 with AAC to have SBR indicated in the headers. Its still correct not to have it marked and have SBR or PS data in the stream anyway. Likewise, decoding a frame and not seeing any SBR or PS info doesnt mean you cant find it further up in the stream anyw

11、ay (我理解就是说 SBR OR PS 信息不一定在 Header 中有,但是并不意味着你不能进一步在 stream 中发现它)。昨天,又发现了一个新的地方,就是HE-AAC的.mp4码流,经过extract出 AAC(ADTS)后,44.1KHZ 的变成了 22.05KHZ。HEv2-AAC 的.mp4 码流,经过 extract 出 AAC(ADTS)后,不但 44.1KHZ 的变成了 22.05KHZ(一半),连 2channels 也变成了 lchannels !啊,这个问题更奇怪了,在论坛上找,发现也有人有此问 题:“I get 22050Hz, 1 channel for aud

12、io that is in fact 44100Hz, 2channels and having both SBR and PS”。后来看到MSDN中的AAC Decoder的描述中有这么一小段话:The media type gives the sample rate and number of channels prior to the application of spectral band replication (SBR) and parametric stereo (PS) tools, if present. The effect of the SBR tool is to do

13、uble the decoded sample rate relative to the core AAC-LC sample rate. The effect of the PS tool is to decode stereo from a mono-channel core AAC-LC stream.我的理解是AAC的decoder如果支持SBR和PS,会将AAC-HEV1(SBR)中 的 sample rate 提高一倍,而会将 AAC-HEV2(SBR+PS)中不仅 sample rate 提高一 倍,单声道也提高至双声道了。结合前面提到的SBR(频段复制)和PS(参数立体 声)技

14、术的简单介绍,好像觉得这样是有点儿道理的哦用 IPP example 提供的解码工具 simple_player 简单试了下,对于 44.1khz, stereo 的 HEv2-AAC 的.mp4 码流,经过 extract 出 22.05KHZ,mono 的 AAC(ADTS) 后,再使用 simple_player 进行音频解码测试,解完后,果然发现又恢复了 44.1khz 和stereo。(但目前也测试了好几种extract出的HE和HEv2的aac码流,有的 能将 sample rate 和 channel 又 double 回来,有的又不能,这个具体原因是不是 由于Ipp examp

15、le提供的解码器的问题还不确定)。另外,用simple_player如果直接decoder编码出的经过封装的.mp4格式的 AAC音频的话,发现:其它都正常,只AAC-HEv2格式的.mp4音频解码后变成 了单声道。难道是解码器中的PS tools没能发挥作用?初步估计应该是IPP的那 个小解码器的问题吧。以上是关于HE和HEV2规格在学习过程中遇到的一些问题。二、ADTS&ADIF刚才上面说到了 ADTS头格式的AAC。其实,AAC的音频文件格式有以下 两种:ADIF:Audio Data Interchange Format 音频数据交换格式。这种格式的特征 是可以确定的找到这个音频数据的

16、开始,不需进行在音频数据流中间开始的解 码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。ADTS:Audio Data Transport Stream 音频数据传输流。这种格式的特征是它 是一个有同步字的比特流,解码可以在这个流中任何位置开始。它的特征类似于 mp3 数据流格式。简单说,ADTS可以在任意帧解码,也就是说它每一帧都有头信息。ADIF 只有一个统一的头,所以必须得到所有的数据后解码。且这两种的header的格 式也是不同的,具体的组织结构在这里就不详说了。我们现在目前一般编码后的和抽取出的都是ADTS格式的。三、其他规格对于那9种规格,目前使用上述的NERO AAC提供的命令行编码工具可以 得到LC,HE和HEv2的,只是需要再从MP4封包中extract出来。剩下的其他 profile目前我使用FAAC,(最终选取使用ne

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号