Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: AAC Bitstream format (Read 14046 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




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