[SCM] libav/experimental: Do not calculate psd and masking curve if exponents are being reused. Approx. 20% faster in function bit_alloc_masking().

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:20:33 UTC 2013


The following commit has been merged in the experimental branch:
commit cf7c961b1901c04464f255863f9e09b6ea1ccb13
Author: Justin Ruggles <justin.ruggles at gmail.com>
Date:   Fri Dec 17 14:16:13 2010 +0000

    Do not calculate psd and masking curve if exponents are being reused.
    Approx. 20% faster in function bit_alloc_masking().
    
    Originally committed as revision 26042 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index 3e8f08a..3495db0 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -964,11 +964,10 @@ static void bit_alloc_masking(AC3EncodeContext *s)
     for (blk = 0; blk < AC3_MAX_BLOCKS; blk++) {
         AC3Block *block = &s->blocks[blk];
         for (ch = 0; ch < s->channels; ch++) {
-            if (block->exp_strategy[ch] == EXP_REUSE) {
-                AC3Block *block1 = &s->blocks[blk-1];
-                memcpy(block->psd[ch],  block1->psd[ch],  AC3_MAX_COEFS*sizeof(block->psd[0][0]));
-                memcpy(block->mask[ch], block1->mask[ch], AC3_CRITICAL_BANDS*sizeof(block->mask[0][0]));
-            } else {
+            /* We only need psd and mask for calculating bap.
+               Since we currently do not calculate bap when exponent
+               strategy is EXP_REUSE we do not need to calculate psd or mask. */
+            if (block->exp_strategy[ch] != EXP_REUSE) {
                 ff_ac3_bit_alloc_calc_psd(block->exp[ch], 0,
                                           s->nb_coefs[ch],
                                           block->psd[ch], block->band_psd[ch]);

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list