[FFmpeg-devel] [PATCH 00/11] aac: Implement intensity stereo encoding support
atomnuker at gmail.com
Fri Jun 26 22:16:29 CEST 2015
This commit implements intensity stereo support for the encoder, as well as finalizing the Perceptual Noise Substitution encoding support. Most of the changes here conform to the official ISO 13818-7 specifications. Due to the ambiguity of the specifications, certain deviations have been taken, but nevertheless, the resulting encoded files are correctly interpreted by all of the decoders tested.
People are encouraged in testing the commits, as well as making use of the new features by enabling aac_pns and aac_is, the former of which will drastically increase the quality of the encoded files at low bitrates while the latter will allow for better encoding efficiency and thus a decrease in filesize, all while maintaining maximum quality.
Comments and tests on the perceptual noise substitution parameters added in aaccoder.c (NOISE_LAMBDA_NUMERATOR and NOISE_SPREAD_THRESHOLD) would be very appreciated and would go a long way towards making aac_pns be enabled by default.
The series of commits was developed in cooperation with Claudio Freire, who has several major quality improvements to the quantizers and coders to be added soon. As such, some the things which might not make a lot sense (particularly in marking zeroed bands with more energy than threshold as noise) are due to the future changes due.
Rostislav Pehlivanov (11):
aac: add additional fields needed by the encoder for intensity stereo
aaccoder: remove previous PNS implementation from twoloop
aaccoder: add intensity stereo coding support for the trellis
aaccoder: add intensity stereo support to encode_window_bands_info
aacenc: add support for coding of intensity stereo scalefactor indices
aacpsy: Add energy spread for each band
aacenc: add support for coding of IS spectral coefficients
aacenc: use the encode_special_band_scalefactors function
aaccoder: add a new perceptual noise substitution implementation
aaccoder: implement intensity stereo
aaccoder: zero ms_mask bands on execution
libavcodec/aac.h | 9 +-
libavcodec/aaccoder.c | 311 +++++++++++++++++++++++++++++++++++++++-----------
libavcodec/aacenc.c | 69 ++++++++---
libavcodec/aacenc.h | 4 +
libavcodec/aacpsy.c | 1 +
libavcodec/psymodel.h | 3 +-
6 files changed, 313 insertions(+), 84 deletions(-)
More information about the ffmpeg-devel