DVSDK中的AAC-LC码流分析(1):adts_fixed_header()

 

快乐虾

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

先分析第一帧的数据。

 

AAC标准中定义的数据类型

在13818-7标准中定义了几种数据类型及其存储形式:

DVSDK中的AAC-LC码流分析(1):adts_fixed_header()_第1张图片

adts_fixed_header()

依照标准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,查表:

DVSDK中的AAC-LC码流分析(1):adts_fixed_header()_第2张图片

l  sample_frequency_index:8

通过查下面的表可以得到原始数据的采样率,16000:

DVSDK中的AAC-LC码流分析(1):adts_fixed_header()_第3张图片

l  private_bit:0

l  channel_configuration:1,查表:

l  original:0

l  home:0

 

 

 

 

你可能感兴趣的:(c,工作,header,存储,layer)