aac
发布时间:2010-02-21 18:25:50
发布时间:2010-02-21 18:25:50
adts_sequnce()
{
while(nextbits==syncword)
{
adts_frame()
}
} //一般的syncword总是存在,则激活adts_frame()
adts_frame()
{
adts_fixed_header();
adts_variable_header();
adts_error_check();
for(i=0;i
{
raw_data_block()
}
}
adts_fixed_header()
{
Syncword; 12 bslbf
ID; 1 bslbf
Layer; 2 uimsbf
protection_absent; 1 bslbf
Profile_ObjectType; 2 uimsbf
sampling_frequency_index; 4 uimsbf
private_bit; 1 bslbf
channel_configuration; 3 uimsbf
original/copy; 1 bslbf
home; 1 bslbf
}
adts_variable_header()
{
copyright_identification_bit; 1 bslbf
copyright_identification_start; 1 bslbf
aac_frame_length; 13 bslbf
adts_buffer_fullness; 11 bslbf
number_of_raw_data_blocks_in_frame; 2 uimsfb
}
FF F1 4C 80 2B 80 24
0x(FF F1 4C 80)16=( 1111 1111 1111 0001 0100 1100 1000 0000)2
1. Syncword= (1111 1111 1111)2 12bit,被指定为12位1,标示同步标识
2. ID= (0)2 1bit,MPEG标示符,设置为1表示在ADTS中的流为MPEG-2 AAC
设置为0表示为MPEG-4
3. Layer=(00) 2 2 bit,表明所使用的layer
4. protection_absent=(1) 1 bit,标示error_check()是否存在
5. Profile_ObjectType=(01) 2 bit,依据ID值所之时的bitstream element
6. sampling_frequency_index=(0011) 4 bit,采样率的索引值
7. private_bit=(0) 1 bit,
8. channel_configuration=(010); 3 bit,声道数目
9. original/copy=(0) 1 bit,
10. home=(0) 1 bit
0x(2B 80 24)=( 0010 1011 1000 0000 0010 0100) 上面剩余4bit,即
(0000 0010 1011 1000 0000 0010 0100)
1. copyright_identification_bit=(0) 1 bit
2. copyright_identification_start=(0) 1 bit
3. aac_frame_length=(00 0010 1011 100) 13 bit,对应10进值,其为348
4. adts_buffer_fullness=(0 0000 0010 01) 11 bit,对应10进值,其为9
5. number_of_raw_data_blocks_in_frame=(00) 2 bit.