summaryrefslogtreecommitdiff
path: root/libavcodec/mips/aaccoder_mips.c
diff options
context:
space:
mode:
authorClaudio Freire <klaussfreire@gmail.com>2015-10-12 03:56:22 -0300
committerClaudio Freire <klaussfreire@gmail.com>2015-10-12 03:56:22 -0300
commitb629c67ddfceb7026e407685f04d1bb09cb08d31 (patch)
tree71bd57e7a1b2d8bd8bbc5d82b259bd847e4fb853 /libavcodec/mips/aaccoder_mips.c
parentce0834bdd6e6490d240d76ec8d7845ca0aef1e44 (diff)
AAC encoder: memoize quantize_band_cost
The bulk of calls to quantize_band_cost are replaced by a call to a version that memoizes, greatly improving performance, since during coefficient search there is a great deal of repeat work. Memoization cannot always be applied, so do this in a different function, and leave the original as-is.
Diffstat (limited to 'libavcodec/mips/aaccoder_mips.c')
-rw-r--r--libavcodec/mips/aaccoder_mips.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libavcodec/mips/aaccoder_mips.c b/libavcodec/mips/aaccoder_mips.c
index e85bf8c5ca..269a12465f 100644
--- a/libavcodec/mips/aaccoder_mips.c
+++ b/libavcodec/mips/aaccoder_mips.c
@@ -2388,6 +2388,8 @@ static float quantize_band_cost(struct AACEncContext *s, const float *in,
return get_band_cost(s, NULL, in, scaled, size, scale_idx, cb, lambda, uplim, bits, energy);
}
+#include "libavcodec/aacenc_quantization_misc.h"
+
static float find_form_factor(int group_len, int swb_size, float thresh, const float *scaled, float nzslope) {
const float iswb_size = 1.0f / swb_size;
const float iswb_sizem1 = 1.0f / (swb_size - 1);