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
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to