[FFmpeg-devel] [PATCH 00/11] aac: Implement intensity stereo encoding support

Rostislav Pehlivanov 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
    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



More information about the ffmpeg-devel mailing list