This series of patches implements intensity stereo encoding support, reimplements perceptual noise substitution in a better way and fixes some mistakes in the M/S (Mid/Side) stereo marking.
Currently, both IS and PNS are off by default, changeable via the options -aac_pns and -aac_is, respectively. Users and developers are welcome to test the options to increase the quality and efficiency of the encoder. The options do not increase filesize significantly (+-10 Kb per 3400Kb total filesize, 128kbps, reasonable activity in all frequency bands) but they offer a drastic increase in quality. Therefore, in general, to achieve the same quality as without IS or PNS users need to reduce their bitrates and therefore decrease filesizes of encoded files. The perceptual noise substitution is supposed to be on for all files encoded via the AAC LC profile and feedback and suggestions would go a long way in making this option be 'on' by default, making everyone benefit from increased encoder quality. It should be noted that the benefits of both options decay as the bitrates increase. PNS usage becomes non-existant at around 200kbps and IS could reduce quality at very high bitrates. This is V2 of the patch, notable changes from V1 are: * Change the way aacpsy sets the band spread value * Improve PNS energy calculations * Disable M/S coding for bands marked to use IS * Improve phase detection for IS bands * Improve energy calculations for IS spectral coefficients * Make the thresholds of both IS and PNS dynamic Rostislav Pehlivanov (8): aacpsy: use a different metric for the spread of a band aaccoder: remove previous PNS implementation from twoloop aaccoder: fix M/S coding aacenc: reset marked IS and M/S bands upon frame encoding aacenc: use the new function for setting special band scalefactor indices aaccoder: add a new perceptual noise substitution implementation aacenc: add support for coding of IS spectral coefficients aacenc: implement Intensity Stereo encoding support libavcodec/aaccoder.c | 207 +++++++++++++++++++++++++++++++++++++++++--------- libavcodec/aacenc.c | 59 +++++++++++--- libavcodec/aacenc.h | 4 + libavcodec/aacpsy.c | 2 +- 4 files changed, 224 insertions(+), 48 deletions(-) -- 2.1.4 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel