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
quantizer
aaccoder: add intensity stereo support to encode_window_bands_info
quantizer
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(-)
--
2.1.4
_______________________________________________
ffmpeg-devel mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel