shithub: libvpx

Download patch

ref: 985f09fdca14c74fbd6c6dcffe260bf3132c4b7e
parent: 2b59e14a0023be9d084349d58ee156a49cc674bb
author: Jim Bankoski <jimbankoski@google.com>
date: Mon Aug 20 08:58:31 EDT 2012

static threshold fix for realtime

This code allows us to skip encoding if the sse
is less than the error we could possibly encode.

Change-Id: Iefb590dc0ee30b660495218398c7969f7d5fd19f

--- a/vp8/encoder/pickinter.c
+++ b/vp8/encoder/pickinter.c
@@ -458,7 +458,15 @@
 
 static void check_for_encode_breakout(unsigned int sse, MACROBLOCK* x)
 {
-    if (sse < x->encode_breakout)
+    MACROBLOCKD *xd = &x->e_mbd;
+
+    unsigned int threshold = (xd->block[0].dequant[1]
+        * xd->block[0].dequant[1] >>4);
+
+    if(threshold < x->encode_breakout)
+        threshold = x->encode_breakout;
+
+    if (sse < threshold )
     {
         /* Check u and v to make sure skip is ok */
         unsigned int sse2 = 0;
--