[SCM] libav/experimental: remove a branch from an inner loop. 1% faster flac encoding.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:08:46 UTC 2013


The following commit has been merged in the experimental branch:
commit 90f03441654f85a1402a65c3dcaa3f634a24c27e
Author: Loren Merritt <lorenm at u.washington.edu>
Date:   Sat Oct 27 13:39:19 2007 +0000

    remove a branch from an inner loop.
    1% faster flac encoding.
    
    Originally committed as revision 10865 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c
index c0bd830..3e92c06 100644
--- a/libavcodec/flacenc.c
+++ b/libavcodec/flacenc.c
@@ -474,16 +474,15 @@ static uint32_t calc_optimal_rice_params(RiceContext *rc, int porder,
     uint32_t all_bits;
 
     part = (1 << porder);
-    all_bits = 0;
+    all_bits = 4 * part;
 
     cnt = (n >> porder) - pred_order;
     for(i=0; i<part; i++) {
-        if(i == 1) cnt = (n >> porder);
         k = find_optimal_param(sums[i], cnt);
         rc->params[i] = k;
         all_bits += rice_encode_count(sums[i], cnt, k);
+        cnt = n >> porder;
     }
-    all_bits += (4 * part);
 
     rc->porder = porder;
 

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list