[Mp4-tech] Mpeg4 AAC + why exp-=4 (for short windows) else e
xp-=7
Kannan GS Nambiar
kannan.g.s.nambiar celstream.com
Wed Aug 25 19:28:40 EDT 2004
Hi Shreya,
I feel the code you have given here is from FAAD AAC Decoder. THen this code
supports
conversion to fixed point by enabling "FIXED_POINT". If you see the
Quantization tables
that they use, you will find that all the values are scaled by 2^5 if I
remember correctly.
IMDCT comes after apply_scalefactors(). Now in IMDCT the number of loop
iterations are less
in EIGHT_SHORT_SEQUENCE than any long window sequence. In IMDCT there are so
many MAC operations.
So there are chances of overflow in case the fixed point numbers are big in
magnitude.
So In case of Long_Windows with more iterations, the values has to be scaled
down more. In case of
EIGHT_SHORT_SEQUENCE you can have more scaling and which will increase the
accuracy.
I think you can refer this to AudioCoding.com Forum for more information.
Cheers,
Kannan.
-----Original Message-----
From: Shreya Pathak [mailto:shreya_pathak rediffmail.com]
Sent: Wednesday, August 25, 2023 2:36 PM
To: mp4-tech lists.mpegif.org
Subject: [Mp4-tech] Mpeg4 AAC + why exp-=4 (for short windows) else
exp-=7
Hi,
In Mpeg4 AAC publicly available source code in file specrec.c and
in function apply_scalefactors()
#ifdef FIXED_POINT
exp -= 25;
/* IMDCT pre-scaling */
if (hDecoder->object_type == LD)
{
exp -= 6 /*9*/;
} else {
if (ics->window_sequence == EIGHT_SHORT_SEQUENCE)
exp -= 4 /*7*/;
else
exp -= 7 /*10*/;
}
#endif
I got exp-=25, but I didn't get why this
if (ics->window_sequence == EIGHT_SHORT_SEQUENCE)
exp -= 4 /*7*/;
else
exp -= 7 /*10*/;
is done.
Does any one have any idea on this ?
Please reply asap.
Thanks and Regards
Shreya
This message is free from Virus - IMSS
-------------- next part --------------
An HTML attachment was scrubbed...
URL: /pipermail/mp4-tech/attachments/20040825/2b718133/attachment.html
More information about the Mp4-tech
mailing list