快乐虾
http://blog.csdn.net/lights_joy/
欢迎转载,但请保留作者信息
近日开始学习AAC编码,正好在项目中用到了DVSDK中的AAC编码器,就此分析一下此编码器生成的码流。
根据TI的datasheet,此编码器支持的特性有:
AAC-LC编码器以1024个采样点为一个编码单元,生成了下面的数据:
第一帧(128字节):
0x0152A830 ff f9 60 40 10 1f fc 00 d0 40 06 f6 50 00 00 00 00 00 00 00 00 00 ..`@[email protected].........
0x0152A846 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ......................
0x0152A85C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ......................
0x0152A872 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ......................
0x0152A888 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ......................
0x0152A89E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e
第二帧(147字节):
0x0152A8B0 ff f9 60 40 12 7f fc 01 36 9a da 93 70 32 d0 f9 ..`@....6...p2..
0x0152A8C0 68 7c b6 1c 0b 00 be 49 aa 9a e2 69 ab 4b ff 8a h|.....I...i.K..
0x0152A8D0 9c 70 71 a9 69 ff 19 3f eb 86 68 04 0c cd 1e 66 .pq.i..?..h....f
0x0152A8E0 8e 06 75 ff 84 eb 6c 31 92 69 26 76 79 9e 69 26 ..u...l1.i&vy.i&
0x0152A8F0 92 68 00 d5 c8 7a b4 9e d3 95 c2 dd 93 61 e8 41 .h...z.......a.A
0x0152A900 f9 c4 f4 5c c9 c2 e8 10 ba 04 05 19 42 45 68 99 ...\........BEh.
0x0152A910 71 72 c4 21 7b a4 2e 37 83 dc e8 de 9d 1e 73 f2 qr.!{..7......s.
0x0152A920 5c 9c b9 cc 6f 26 2f d9 3d 49 c2 20 05 7a 44 11 \...o&/.=I. .zD.
0x0152A930 44 b3 86 38 82 d2 90 b8 24 01 86 a3 4c 34 63 41 D..8....$...L4cA
0x0152A940 34 00 e0
第三帧(134字节)
0x0152A953 ff f9 60 40 10 df fc 01 24 f2 2c ac 62 20 d5 bf ..`@....$.,.b ..
0x0152A963 57 53 ab d3 34 01 0a ba 44 12 80 13 3b 98 8f 33 WS..4...D.€.;..3
0x0152A973 72 dc ae da 77 48 f9 c9 10 a0 88 b2 64 2d e2 72 r...wH......d-.r
0x0152A983 11 7e 2b 35 45 96 a6 07 af b7 09 1e 44 66 c7 16 .~+5E.......Df..
0x0152A993 63 27 71 2f 79 7b cc 67 1b b2 cf 48 71 52 13 3b c'q/y{.g...HqR.;
0x0152A9A3 d1 19 a1 4b ae c6 b3 5d 77 b6 c8 bd 21 99 69 41 ...K...]w...!.iA
0x0152A9B3 cf a5 04 88 52 a8 2e 85 32 63 f2 0a 9b 30 7d b9 ....R...2c...0}.
0x0152A9C3 91 9c 88 1b 98 db d6 a9 07 ea eb 89 c7 79 cb 49 .............y.I
0x0152A9D3 27 be 88 97 3a 87
先分析第一帧的数据。
在13818-7标准中定义了几种数据类型及其存储形式:
依照标准6.2.1节的定义,每个编码帧都有一个fixed_header:
总共28位,对应前面的8个字节:
ff f9 60 40 10 df fc 01
解码出来就得到了:
l syncword:ff f // 通过在流中查找此同步头以确定一帧数据的开始
l ID:1,MPEG标记
l layer:0
l protection_absent:1,为1表示不带CRC校验。
l profile:1,查表:
l sample_frequency_index:8
通过查下面的表可以得到原始数据的采样率,16000:
l private_bit:0
l channel_configuration:1,查表:
l original:0
l home:0