- 15 Apr, 2015 1 commit
-
-
Rostislav Pehlivanov authored
This commit implements the perceptual noise substitution AAC extension. This is a proof of concept implementation, and as such, is not enabled by default. This is the fourth revision of this patch, made after some problems were noted out. Any changes made since the previous revisions have been indicated. In order to extend the encoder to use an additional codebook, the array holding each codebook has been modified with two additional entries - 13 for the NOISE_BT codebook and 12 which has a placeholder function. The cost system was modified to skip the 12th entry using an array to map the input and outputs it has. It also does not accept using the 13th codebook for any band which is not marked as containing noise, thereby restricting its ability to arbitrarily choose it for bands. The use of arrays allows the system to be easily extended to allow for intensity stereo encoding, which uses additional codebooks. The 12th entry in the codebook function array points to a function which stops the execution of the program by calling an assert with an always 'false' argument. It was pointed out in an email discussion with Claudio Freire that having a 'NULL' entry can result in unexpected behaviour and could be used as a security hole. There is no danger of this function being called during encoding due to the codebook maps introduced. Another change from version 1 of the patch is the addition of an argument to the encoder, '-aac_pns' to enable and disable the PNS. This currently defaults to disable the PNS, as it is experimental. The switch will be removed in the future, when the algorithm to select noise bands has been improved. The current algorithm simply compares the energy to the threshold (multiplied by a constant) to determine noise, however the FFPsyBand structure contains other useful figures to determine which bands carry noise more accurately. Some of the sample files provided triggered an assertion when the parameter to tune the threshold was set to a value of '2.2'. Claudio Freire reported the problem's source could be in the range of the scalefactor indices for noise and advised to measure the minimal index and clip anything above the maximum allowed value. This has been implemented and all the files which used to trigger the asserion now encode without error. The third revision of the problem also removes unneded variabes and comparisons. All of them were redundant and were of little use for when the PNS implementation would be extended. The fourth revision moved the clipping of the noise scalefactors outside the second loop of the two-loop algorithm in order to prevent their redundant calculations. Also, freq_mult has been changed to a float variable due to the fact that rounding errors can prove to be a problem at low frequencies. Considerations were taken whether the entire expression could be evaluated inside the expression , but in the end it was decided that it would be for the best if just the type of the variable were to change. Claudio Freire reported the two problems. There is no change of functionality (except for low sampling frequencies) so the spectral demonstrations at the end of this commit's message were not updated. Finally, the way energy values are converted to scalefactor indices has changed since the first commit, as per the suggestion of Claudio Freire. This may still have some drawbacks, but unlike the first commit it works without having redundant offsets and outputs what the decoder expects to have, in terms of the ranges of the scalefactor indices. Some spectral comparisons: https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/Original.png (original), https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/PNS_NO.png (encoded without PNS), https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/PNS1.2.png (encoded with PNS, const = 1.2), https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/Difference1.png (spectral difference). The constant is the value which multiplies the threshold when it gets compared to the energy, larger values means more noise will be substituded by PNS values. Example when const = 2.2: https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/PNS_2.2.pngReviewed-by:
Claudio Freire <klaussfreire@gmail.com> Signed-off-by:
Michael Niedermayer <michaelni@gmx.at>
-
- 29 Nov, 2014 1 commit
-
-
Michael Niedermayer authored
Signed-off-by:
Michael Niedermayer <michaelni@gmx.at>
-
- 12 Sep, 2013 2 commits
-
-
Michael Niedermayer authored
Signed-off-by:
Michael Niedermayer <michaelni@gmx.at>
-
Timothy Gu authored
Signed-off-by:
Timothy Gu <timothygu99@gmail.com> Signed-off-by:
Michael Niedermayer <michaelni@gmx.at>
-
- 20 Mar, 2013 1 commit
-
-
Bojan Zivkovic authored
Signed-off-by:
Bojan Zivkovic <bojan@mips.com> Reviewed-by:
Nedeljko Babic <Nedeljko.Babic@imgtec.com> Signed-off-by:
Michael Niedermayer <michaelni@gmx.at>
-
- 25 Feb, 2013 1 commit
-
-
Diego Biurrun authored
-
- 22 Jan, 2013 1 commit
-
-
Ronald S. Bultje authored
Now, nellymoserenc and aacenc no longer depends on dsputil. Independent of this patch, wmaprodec also does not depend on dsputil, so I removed it from there also.
-
- 08 Jun, 2012 1 commit
-
-
Justin Ruggles authored
Move vector_fmul() from DSPContext to AVFloatDSPContext.
-
- 20 Mar, 2012 1 commit
-
-
Justin Ruggles authored
-
- 23 Jan, 2012 4 commits
-
-
Nathan Caldwell authored
Signed-off-by:
Alex Converse <alex.converse@gmail.com>
-
Nathan Caldwell authored
Signed-off-by:
Alex Converse <alex.converse@gmail.com>
-
Nathan Caldwell authored
This should be moved to tablegen at some point. Signed-off-by:
Alex Converse <alex.converse@gmail.com>
-
Nathan Caldwell authored
Signed-off-by:
Alex Converse <alex.converse@gmail.com>
-
- 27 Nov, 2011 2 commits
-
-
Michael Niedermayer authored
Signed-off-by:
Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
Signed-off-by:
Michael Niedermayer <michaelni@gmx.at>
-
- 30 Jun, 2011 1 commit
-
-
Alex Converse authored
-
- 28 Jun, 2011 1 commit
-
-
Nathan Caldwell authored
-
- 02 Jun, 2011 1 commit
-
-
Nathan Caldwell authored
ms_off is the default, until Mid/Side is no longer buggy. Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
- 26 Apr, 2011 1 commit
-
-
Vitor Sessak authored
Signed-off-by:
Reinhard Tartler <siretart@tauware.de>
-
- 19 Mar, 2011 1 commit
-
-
Mans Rullgard authored
Signed-off-by:
Mans Rullgard <mans@mansr.com>
-
- 08 Mar, 2011 3 commits
-
-
Nathan Caldwell authored
This reverts the removal of scoefs from AACEncContext. It resulted in scoefs being a NULL pointer when search_for_quantizers() is called. Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
Nathan Caldwell authored
This reverts the removal of scoefs from AACEncContext. It resulted in scoefs being a NULL pointer when search_for_quantizers() is called. Signed-off-by:
Michael Niedermayer <michaelni@gmx.at>
-
Young Han Lee authored
Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com> (cherry picked from commit 2790d7a9)
-
- 07 Mar, 2011 1 commit
-
-
Young Han Lee authored
Signed-off-by:
Ronald S. Bultje <rsbultje@gmail.com>
-
- 14 May, 2010 1 commit
-
-
Alex Converse authored
This requires us to code small escapes; we can't avoid it. Originally committed as revision 23135 to svn://svn.ffmpeg.org/ffmpeg/trunk
-
- 06 Mar, 2010 1 commit
-
-
Måns Rullgård authored
These macros are redundant. All uses are replaced with the generic DECLARE_ALIGNED macro instead. Originally committed as revision 22233 to svn://svn.ffmpeg.org/ffmpeg/trunk
-
- 22 Jan, 2010 1 commit
-
-
Måns Rullgård authored
Originally committed as revision 21377 to svn://svn.ffmpeg.org/ffmpeg/trunk
-
- 20 Sep, 2009 1 commit
-
-
Måns Rullgård authored
Originally committed as revision 19931 to svn://svn.ffmpeg.org/ffmpeg/trunk
-
- 08 Jul, 2009 2 commits
-
-
Alex Converse authored
Originally committed as revision 19376 to svn://svn.ffmpeg.org/ffmpeg/trunk
-
Alex Converse authored
Originally committed as revision 19375 to svn://svn.ffmpeg.org/ffmpeg/trunk
-