diff options
author | Rostislav Pehlivanov <atomnuker@gmail.com> | 2016-10-08 01:47:04 +0100 |
---|---|---|
committer | Rostislav Pehlivanov <atomnuker@gmail.com> | 2016-10-12 11:15:49 +0100 |
commit | 230178dfe25ebe27934062c9fa8e2a40e6ad2b0b (patch) | |
tree | 9815d504a8744bccf622d80ad2ed4de1f1b62284 /libavcodec/aaccoder.c | |
parent | cfa3c2655ac2bafe7b76f1e68c8fe6ecee03f1a8 (diff) |
aacenc: use the decoder's lcg PRNG
Using lfg was an overkill in this case where the random numbers
were only used for encoder descisions. Should increase result
uniformity between different FPUs and gives a slight speedup.
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Diffstat (limited to 'libavcodec/aaccoder.c')
-rw-r--r-- | libavcodec/aaccoder.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/libavcodec/aaccoder.c b/libavcodec/aaccoder.c index 284b401adf..35787e841e 100644 --- a/libavcodec/aaccoder.c +++ b/libavcodec/aaccoder.c @@ -643,11 +643,9 @@ static void search_for_pns(AACEncContext *s, AVCodecContext *avctx, SingleChanne float band_energy, scale, pns_senergy; const int start_c = (w+w2)*128+sce->ics.swb_offset[g]; band = &s->psy.ch[s->cur_channel].psy_bands[(w+w2)*16+g]; - for (i = 0; i < sce->ics.swb_sizes[g]; i+=2) { - double rnd[2]; - av_bmg_get(&s->lfg, rnd); - PNS[i+0] = (float)rnd[0]; - PNS[i+1] = (float)rnd[1]; + for (i = 0; i < sce->ics.swb_sizes[g]; i++) { + s->random_state = lcg_random(s->random_state); + PNS[i] = s->random_state; } band_energy = s->fdsp->scalarproduct_float(PNS, PNS, sce->ics.swb_sizes[g]); scale = noise_amp/sqrtf(band_energy); |