summaryrefslogtreecommitdiff
path: root/libavcodec/aacpsy.c
Commit message (Collapse)AuthorAge
* Move const qualifier before type nameDiego Biurrun2016-03-23
|
* lavc: AV-prefix all codec flagsVittorio Giovara2015-07-27
| | | | | | Convert doxygen to multiline and express bitfields more simply. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* aacpsy: Check memory allocationVittorio Giovara2015-05-31
|
* aacpsy: correct calculation of minath in psy_3gpp_initAndreas Cadhalpun2015-05-05
| | | | | | | | | | | | The minimum of the ath(x, ATH_ADD) function depends on ATH_ADD. This patch uses the first order approximation to determine it. For ATH_ADD = 4 this results in the value at 3407.06812 (-5.24241638) not the one at 3410 (-5.24237967). CC: libav-stabl@libav.org Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec: Don't anonymously typedef structsDiego Biurrun2015-02-14
|
* aacenc: Fix a rounding bug in aacpsy channel bitrate computationClaudio Freire2013-05-14
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec: Add av_cold attributes to init functions missing themDiego Biurrun2013-05-04
|
* silly typo fixesDiego Biurrun2013-05-03
|
* miscellaneous typo fixesDiego Biurrun2012-12-21
|
* Replace memset(0) by zero initializations.Diego Biurrun2012-03-28
| | | | Also remove one pointless zero initialization in rangecoder.c.
* aacenc: Deinterleave input samples before processing.Nathan Caldwell2012-01-23
| | | | Signed-off-by: Alex Converse <alex.converse@gmail.com>
* aacenc: Request normalized float samples instead of converting s16 samples ↵Nathan Caldwell2012-01-23
| | | | | | to float. Signed-off-by: Alex Converse <alex.converse@gmail.com>
* aacpsy: Replace an if with FFMAX in LAME windowing.Nathan Caldwell2012-01-23
| | | | Signed-off-by: Alex Converse <alex.converse@gmail.com>
* aacpsy: cosmetics, change a FIXME to a NOTE about subshort comparisonsNathan Caldwell2012-01-23
| | | | | | Also fix a typo. Signed-off-by: Alex Converse <alex.converse@gmail.com>
* doxygen: misc consistency, spelling and wording fixesDiego Biurrun2011-12-12
|
* psymodel: Remove the single channel analysis functionNathan Caldwell2011-06-29
|
* aacenc: Implement dummy channel group analysis that just calls the single ↵Nathan Caldwell2011-06-29
| | | | channel analysis for each channel.
* psymodel: Add channels and channel groups to the psymodel.Nathan Caldwell2011-06-29
|
* aacenc: Mark psy_3gpp_window() as av_unused.Diego Biurrun2011-06-25
| | | | | It is intentionally left in to allow adding 3GPP-style windowing in the future. Marking it av_unused silences an annoying unused function warning.
* aacenc: Fix whitespace after last commit.Nathan Caldwell2011-04-23
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* aacenc: Finish 3GPP psymodel analysis for non mid/side cases.Nathan Caldwell2011-04-23
| | | | | | | | | There is still are still a few sections missing relating to TNS (not present) and mid/side (contains other bugs). Overall this improves quality, and vastly improves rate-control. Signed-off-by: Martin Storsjö <martin@martin.st>
* Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-19
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* aacenc: 10l, missed a reference when refactoring the psymodel.Nathan Caldwell2011-03-17
|
* aacenc: cosmetics, indentation, and comment clarificationNathan Caldwell2011-03-16
| | | | | Correct bad indentation in aaccoder Clarify and correct comments in 3GPP psymodel, other cosmetics.
* aacenc: Refactor the parts of the AAC psymodel.Nathan Caldwell2011-03-16
| | | | | | | | | | | 3GPP: Remove ffac from and move min_snr out of AacPsyBand. Rearrange AacPsyCoeffs to make it easier to implement energy spreading. Rename the band[] array to bands[] Copy energies and thresholds at the end of analysis. LAME: Use a loop instead of an if chain in LAME windowing.
* aacenc: Correct spreading calculation for high spreading.Nathan Caldwell2010-11-01
| | | | | | | | | | | | | | | | | | | | The 3GPP spec uses the following calculation for high spreading: thr'_spr = max(thr_scaled, s_h(n) * thr_scaled(n-1)) where, n is defined as the current band, and s_h() is defined as "[...] the distance of adjacent bands in Bark and a constant slope that is 15 dB/Bark [...]". This is a little ambiguous as you would assume you want the Bark width of the previous band for this calculation. However, this assumption appears to be incorrect, and you really want the Bark width of the current band. Coincidentally this is exactly what the spec calls for! =P This noticeably improves Tom's Diner at low bitrates (I tested at 64kbps, with mid/side disabled). Patch by: Nathan Caldwell <saintdev@gmail.com> Originally committed as revision 25622 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: cosmetics: Swap spreading_hi/low name to match the 3GPP spec.Nathan Caldwell2010-11-01
| | | | | | Patch by: Nathan Caldwell <saintdev@gmail.com> Originally committed as revision 25621 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: Remove energy 'normalization' modification from the 3GPP psymodelNathan Caldwell2010-10-27
| | | | | | | | | | | | This greatly improves bitrate handling. You will now get within a few kbps of your requested bitrate instead of 20-40kbps higher. There is absolutely no analog to this line in the 3GPP spec, that I can find. patch by Nathan Caldwell saintdev (at) gmail Originally committed as revision 25589 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: Fix threshold-in-quiet calculation in the 3GPP psymodel.Nathan Caldwell2010-10-27
| | | | | | | | | | | | | | Removing the modification vastly improves quality (at a slight bitrate cost) for some samples. castanets.wav is a good example. The closest equivalent I see to the modification in the 3GPP spec is a similar modification (over a specific frequency range) when TNS is used. This also changes the threshold-in-quiet calculation to match the 3GPP spec. patch by Nathan Caldwell saintdev (at) gmail Originally committed as revision 25588 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: Fix the conditions under which 3GPP pre-echo control is run.Nathan Caldwell2010-10-27
| | | | | | | | | | | | | | According to the 3GPP spec: "Thus the pre-echo control is inactive for the first short window (but not all short windows in a short frame) after a start block and for all frames with a stop window sequence." Currently, pre-echo control is only run when the current frame is not a short frame, and the previous frame is not a short frame. patch by Nathan Caldwell saintdev (at) gmail Originally committed as revision 25587 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: Fix bug in LAME windowing where only one channel got initalizedNathan Caldwell2010-10-25
| | | | | | | | | | I used the same loop counter for the inner and outer initalization loops. This caused initalization to only run for the first channel. This in turn lead to any channel other than the first using only short blocks. Patch by Nathan Caldwell, saintdev at gmail Originally committed as revision 25566 to svn://svn.ffmpeg.org/ffmpeg/trunk
* psymodel: Const correct FFPsyWindowInfo.Alex Converse2010-08-30
| | | | Originally committed as revision 24999 to svn://svn.ffmpeg.org/ffmpeg/trunk
* acenc: LAME-inspired window decisionNathan Caldwell2010-08-23
| | | | | | | | | | | | This performs quite a bit better than the current 3GPP-inspired window decision on all the samples I have tested. On the castanets.wav sample it performs very similar to iTunes window selection, and seems to perform better than Nero. On fatboy.wav, it seems to perform at least as good as iTunes, if not better. Nero performs horribly on this sample. Patch by: Nathan Caldwell <saintdev@gmail.com> Originally committed as revision 24892 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: Rename Psy3gpp* structs to AacPsy*Nathan Caldwell2010-08-23
| | | | | | | | | | This allows cleaner implementation of other psymodels using the existing structs. It also will make it easier to interchange individual parts of the psymodel to create hybrid models. Patch by: Nathan Caldwell <saintdev@gmail.com> Originally committed as revision 24890 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: psy_3gpp_init(): Fix line_to_frequency for short windows.Alex Converse2010-07-14
| | | | Originally committed as revision 24233 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: aac_psy_init(): Factorize line_to_frequency.Alex Converse2010-07-14
| | | | Originally committed as revision 24232 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: psy_3gpp_init(): Fix ath for the first line in each sfb.Alex Converse2010-07-14
| | | | | | | Fix the MDCT line to frequency calculation for the first line in each sfb. Use this value to calculate ATH. Originally committed as revision 24231 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: psy_3gpp_init(): Calculate barks on demand.Alex Converse2010-07-14
| | | | Originally committed as revision 24230 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: Fix window decision logic.Alex Converse2010-06-28
| | | | | | | | This keeps the encoder from switching away from an wight short sequence prematurely when attacks are detected two frames in a row. It also allows for the legal and useful LONG_STOP_SEQUENCE to LONG_START_SEQUENCE transition. Originally committed as revision 23870 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: Fix psy logic.Alex Converse2010-05-14
| | | | | | | Set band info before determining scalefactors. Use the look ahead for windowing decision. Originally committed as revision 23132 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove explicit filename from Doxygen @file commands.Diego Biurrun2010-04-20
| | | | | | | | Passing an explicit filename to this command is only necessary if the documentation in the @file block refers to a file different from the one the block resides in. Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Change fminf/fmaxf to FFMIN/FFMAX to fix the build on broken operating systems.Alex Converse2009-07-09
| | | | Originally committed as revision 19391 to svn://svn.ffmpeg.org/ffmpeg/trunk
* cosmetics: Remove unnecessary {} around if/for blocks;Diego Biurrun2009-07-08
| | | | | | move statements after if/for to the next line. Originally committed as revision 19378 to svn://svn.ffmpeg.org/ffmpeg/trunk
* cosmetics: prettyprinting, K&R style, break overly long linesDiego Biurrun2009-07-08
| | | | Originally committed as revision 19377 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Cosmetics: Pretty print the AAC encoder.Alex Converse2009-07-08
| | | | Originally committed as revision 19376 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Merge the AAC encoder from SoC svn. It is still considered experimental.Alex Converse2009-07-08
| | | | Originally committed as revision 19375 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Use full internal pathname in doxygen @file directives.Diego Biurrun2009-02-01
| | | | | | | Otherwise doxygen complains about ambiguous filenames when files exist under the same name in different subdirectories. Originally committed as revision 16912 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add okayed chunks of AAC encoder psychoacoustic modelKostya Shishkov2008-08-18
Originally committed as revision 14822 to svn://svn.ffmpeg.org/ffmpeg/trunk