ac3enc: do not right-shift fixed-point coefficients in the final MDCT stage.
authorJustin <justin.ruggles@gmail.com>
Fri, 11 Mar 2011 18:03:26 +0000 (13:03 -0500)
committerJustin Ruggles <justin.ruggles@gmail.com>
Mon, 14 Mar 2011 12:45:26 +0000 (08:45 -0400)
commit323e6fead07c75f418e4b60704a4f437bb3483b2
tree14e0886587813468e232931cc8cee782b205b44a
parent6e7cf13b6b1d0e08969b64129b9022cc1171d875
ac3enc: do not right-shift fixed-point coefficients in the final MDCT stage.

This increases the accuracy of coefficients, leading to improved quality.
Rescaling of the coefficients to full 25-bit accuracy is done rather than
offsetting the exponent values. This requires coefficient scaling to be done
before determining the rematrixing strategy. Also, the rematrixing strategy
calculation must use 64-bit math to prevent overflow due to the higher
precision coefficients.
libavcodec/ac3enc.c
libavcodec/ac3enc_fixed.c
libavcodec/ac3enc_fixed.h
libavcodec/ac3enc_float.h
tests/ref/acodec/ac3_fixed
tests/ref/lavf/rm
tests/ref/seek/ac3_rm