[SCM] libav/experimental: Skip the bit allocation search if previous and current SNR offsets are the maximum value of 1023. This speeds up overall encoding depending on the content and bitrate. The most improvement is with high bitrates and/or low complexity content.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:21:13 UTC 2013


The following commit has been merged in the experimental branch:
commit 9c84a72a250d048138c5e66a8d2655fd753eb32a
Author: Justin Ruggles <justin.ruggles at gmail.com>
Date:   Fri Dec 31 23:22:08 2010 +0000

    Skip the bit allocation search if previous and current SNR offsets are the
    maximum value of 1023.
    This speeds up overall encoding depending on the content and bitrate.
    The most improvement is with high bitrates and/or low complexity content.
    
    Originally committed as revision 26181 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index 9b23f31..49fd853 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -1116,6 +1116,13 @@ static int cbr_bit_allocation(AC3EncodeContext *s)
 
     snr_offset = s->coarse_snr_offset << 4;
 
+    /* if previous frame SNR offset was 1023, check if current frame can also
+       use SNR offset of 1023. if so, skip the search. */
+    if ((snr_offset | s->fine_snr_offset[0]) == 1023) {
+        if (bit_alloc(s, 1023) <= bits_left)
+            return 0;
+    }
+
     while (snr_offset >= 0 &&
            bit_alloc(s, snr_offset) > bits_left) {
         snr_offset -= 64;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list