summaryrefslogtreecommitdiff
path: root/libavcodec/aacenc_ltp.c
Commit message (Collapse)AuthorAge
* lavc/aacenc_ltp: remove unnecessary condition check.Jun Zhao2019-05-12
| | | | | | | Condition 'sum==2' is always true, so remove the check logic to make the code clean. Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
* avcodec/aacenc_ltp: fix use of uninitialized valuesJames Almer2017-04-12
| | | | | | | Fixes some valgrind warnings. Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* aacenc: add SIMD optimizations for abs_pow34 and quantizationRostislav Pehlivanov2016-10-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Performance improvements: quant_bands: with: 681 decicycles in quant_bands, 8388453 runs, 155 skips without: 1190 decicycles in quant_bands, 8388386 runs, 222 skips Around 42% for the function Twoloop coder: abs_pow34: with/without: 7.82s/8.17s Around 4% for the entire encoder Both: with/without: 7.15s/8.17s Around 12% for the entire encoder Fast coder: abs_pow34: with/without: 3.40s/3.77s Around 10% for the entire encoder Both: with/without: 3.02s/3.77s Around 20% faster for the entire encoder Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com> Tested-by: Michael Niedermayer <michael@niedermayer.cc> Reviewed-by: James Almer <jamrial@gmail.com>
* aacenc_ltp: disable LTP with high lambda valuesRostislav Pehlivanov2015-12-08
| | | | | | Makes no sense to enable for high bitrates, the coder does well enough. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* aacenc_ltp: fix out of bounds memory accessRostislav Pehlivanov2015-12-03
| | | | Discovered by Coverity.
* aac_ltp: actually signal LTP as off during EIGHT_SHORT windowsRostislav Pehlivanov2015-11-26
| | | | | | | | This hugely reduces the echo which was introduced with the previous commit (though likely because previously everything was broken). Makes LTP actually worthwhile now. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* aac_ltp: split, reorder and improve prediction algorithmRostislav Pehlivanov2015-11-26
| | | | | This commit attempts to mirror what the decoder does more closely in addition to fixing some shortcomings.
* aacenc_ltp: adjust and speed up autocorrelation calculationsRostislav Pehlivanov2015-10-17
| | | | | | | There were some errors in the calculation as well as an entire unnecessary loop to find the gain coefficient. Merge the two loops. Thanks to @ubitux for the suggestions and testing.
* aacenc_ltp: correct header description commentRostislav Pehlivanov2015-10-17
|
* aacenc_ltp: replace av_clip() with av_clip_uintp2()Rostislav Pehlivanov2015-10-17
| | | | | Suggested by ubitux. Convenient.
* aacenc_ltp: fix assertionRostislav Pehlivanov2015-10-17
| | | | A value of 2048 will overflow 11 bits.
* aacenc: add support for encoding files using Long Term PredictionRostislav Pehlivanov2015-10-17
Long Term Prediction allows for prediction of spectral coefficients via the previously decoded time-dependent samples. This feature works well with harmonic content 2 or more frames long, like speech, human or non-human, piano music or any constant tones at very low bitrates. It should be noted that the current coder is highly efficient and the rate control system is unable to encode files at extremely low bitrates (less than 14kbps seems to be impossible) so this extension isn't capable of optimum operation. Dramatic difference is observable with some types of audio and speech but for the most part the audiable differences are subtle. The spectrum looks better however so the encoder is able to harvest the additional bits that this feature provies, should the user choose to enable it. So it's best to enable this feature only if encoding at the absolutely lowest bitrate that the encoder is capable of.