Skip to main content

Topic: AAC Bitstream format (Read 8979 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
AAC Bitstream format
Please let me know the AAC Bitstream format.
What is format for raw data structure?
What is format for ADTS data structure ?
What is the format ADIF data structure ?
_____________________________________________
Like for example MP3 case, I knew each frame has header and data

Header has 32 bits,  in these::::: 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|  syncword (11bits):  MPEG audio version (MPEG-1, 2, etc.) (2bits) : MPEG layer (2bit):   Protection (1bit):Bitrate index(4bits).. etc...... Emphasis (2bit) :: the mp3 data packed here |  then frame2 with same header : mp3 audio data| f2 ....| fn|
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Please explain me about AAC bitstream format.

Thanks,
MJ




  • pratheekp
  • [*][*]
AAC Bitstream format
Reply #1
hi,

In AAC raw format means it contains only the data. no header portions. Sampling Rate, channels and object type have to be specified by us via application.

ADIF: ADIF_HEADER FRAME1 FRAME2 FRAME3....

In ADIF the header is given only at the beginning. The rest is the frame data. If the header portion is lost we cannot decode it.
ADIF header has a 32 bit ADIF code, 0x41444946 at the start of the header, which helps the decoder to know that it is a ADIF encoded stream. All the data required to decode the stream such as sampling rate, channels, profile etc are all given inside the header

ADTS : ADTS_HEADER FRAME1 ADTS_HEADER FRAME2 ADTS_HEADER FRAME3...

In ADTS, each frame data is preceded by a header. So even if the header portion of any frame is lost, we can still decode the stream. It is very helpful in streaming applications. ADTS header begins with a 12 bit header sync 0xFFF, which helps the decoder to know that it is an ADTS encoded stream.
ADTS header has a fixed and variable header. Fixed header consists of general stream information like sampling rate, channels, profile etc. which remains the same in every frame. Variable header has frame related information like encoded frame size, which varies with frames.

Hope its clear. Experts please correct me if I'm wrong somewhere.

Regards
Thank you

AAC Bitstream format
Reply #2
Thanks pratheekp,
I think you are correct , I also analyzed aac raw data, adts & adif stream. My analysis result match with your explanation.

Thanks,
MJ
  • Last Edit: 27 February, 2013, 12:56:22 PM by db1989