shithub: libvpx

Download patch

ref: dcb17eaefca3650f3ed5e2ef4e6d564d646ec519
parent: b6e5bb27c9dd003f6bdb1c4b42fb75ec1ad3198d
parent: f8c06fb2accc4dfad363547a752a3be210ede0f8
author: Jim Bankoski <jimbankoski@google.com>
date: Fri Dec 6 09:46:28 EST 2013

Merge "Disable early exit based on distortion in lossless"

--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -1640,7 +1640,8 @@
       }
       sum_rd = RDCOST(x->rdmult, x->rddiv, this_rate, this_dist);
       if (sum_rd < best_rd) {
-        int64_t stop_thresh = 2048;
+        int64_t stop_thresh = 4096;
+        int64_t stop_thresh_rd;
 
         best_rate = this_rate;
         best_dist = this_dist;
@@ -1652,9 +1653,10 @@
         stop_thresh >>= 8 - (b_width_log2_lookup[bsize] +
             b_height_log2_lookup[bsize]);
 
+        stop_thresh_rd = RDCOST(x->rdmult, x->rddiv, 0, stop_thresh);
         // If obtained distortion is very small, choose current partition
         // and stop splitting.
-        if (this_dist < stop_thresh) {
+        if (!x->e_mbd.lossless && best_rd < stop_thresh_rd) {
           do_split = 0;
           do_rect = 0;
         }