AAC以ADTS格式封装的分析

AAC以ADTS格式封装的分析

ID:40520463

大小:49.50 KB

页数:6页

时间:2019-08-04

AAC以ADTS格式封装的分析_第1页
AAC以ADTS格式封装的分析_第2页
AAC以ADTS格式封装的分析_第3页
AAC以ADTS格式封装的分析_第4页
AAC以ADTS格式封装的分析_第5页
资源描述:

《AAC以ADTS格式封装的分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、AACADTS格式分析一、ADTS格式:ADTS的全称是AudioDataTransportStream。是AAC音频的传输流格式。AAC音频格式在MPEG-2(ISO-13318-72003)中有定义。AAC后来又被采用到MPEG-4标准中。1.adts_sequence(){while(nextbits()==syncword){adts_frame();}}2.adts_frame(){adts_fixed_header();adts_variable_header();if(number_of_raw

2、_data_blocks_in_frame==0){adts_error_check();raw_data_block();}else{adts_header_error_check();for(i=0;i<=number_of_raw_data_blocks_in_frame;i++){raw_data_block();adts_raw_data_block_error_check();}}}3.adts_fixed_header(){syncword;12bslbfID;1bslbflayer;2uims

3、bfprotection_absent;1bslbfprofile;2uimsbfsampling_frequency_index;4uimsbfprivate_bit;1bslbfchannel_configuration;3uimsbforiginal/copy;1bslbfhome;1bslbf}adts_variable_header(){6copyright_identification_bit;1bslbfcopyright_identification_start;1bslbfframe_len

4、gth;13bslbfadts_buffer_fullness;11bslbfnumber_of_raw_data_blocks_in_frame;2uimsfb}详细说明下ADTS头的重要数据部分:syncword同步字Thebitstring‘111111111111’,说明一个ADTS帧的开始。IDMPEG标示符,设置为1.layerIndicateswhichlayerisused.Setto‘00’protection_absent表示是否误码校验profile表示使用哪个级别的AAC,如01Low

5、Complexity(LC)---AACLCsampling_frequency_index表示使用的采样率下标sampling_frequency_indexsamplingfrequeny[Hz]0x0960000x1882000x2640000x3480000x4441000x5320000x6240000x7220500x8160000x920000xa110250xb80000xcreserved0xdreserved0xereserved0xfreservedchannel_configurati

6、on表示声道数frame_length一个ADTS帧的长度包括ADTS头和rawdatablock.adts_buffer_fullness0x7FF说明是码率可变的码流number_of_raw_data_blocks_in_frame表示ADTS帧中有number_of_raw_data_blocks_in_frame+1个AAC原始帧.所以说number_of_raw_data_blocks_in_frame==0表示说ADTS帧中有一个AAC数据块并不是说没有。(一个AAC原始帧包含一段时间内1024

7、个采样及相关数据)二、封装AAC为ADTS帧一个AAC原始数据块长度是可变的,对原始帧加上ADTS头进行ADTS的封装,就形成了ADTS帧。通常我们将得到的AAC原始帧进行封装后写入文件,用常用的播放器如千千静听即可播放,这是个验证AAC数据是否正确的方法。进行封装前,需要了解相关参数,如采样率,声道数,原始数据块的长度等。下面把AAC原始数据帧加工为ADTS帧,据相关参数填写组成7字节的ADTS头。6TheADTSheaderisdefinedbelow-unsignedintobj_type=0;unsi

8、gnedintnum_data_block=frame_length/1024;//includetheheaderlengthalsoframe_length+=7;/*Wewantthesamemetadata*//*GenerateADTSheader*/if(adts_header==NULL)return;/*Syncpointoverafullbyte*/adts_header[0]=0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。