Optimize the checking for transform skipping
authorYaowu Xu <yaowu@google.com>
Tue, 7 Apr 2015 00:53:55 +0000 (17:53 -0700)
committerYaowu Xu <yaowu@google.com>
Tue, 7 Apr 2015 00:54:05 +0000 (17:54 -0700)
If U is not skippable, then do not perform the check on V.

Change-Id: Iba5e8362bd42390197f373c44388a426a4404549

vp9/encoder/vp9_pickmode.c

index 894da9b..8dea312 100644 (file)
@@ -391,10 +391,11 @@ static void model_rd_for_sb_y_large(VP9_COMP *cpi, BLOCK_SIZE bsize,
       var_uv[j] = cpi->fn_ptr[uv_bsize].vf(p->src.buf, p->src.stride,
           pd->dst.buf, pd->dst.stride, &sse_uv[j]);
 
-      if (var_uv[j] < uv_ac_thr || var_uv[j] == 0) {
-        if (sse_uv[j] - var_uv[j] < uv_dc_thr || sse_uv[j] == var_uv[j])
-          skip_uv[j] = 1;
-      }
+      if ((var_uv[j] < uv_ac_thr || var_uv[j] == 0) &&
+          (sse_uv[j] - var_uv[j] < uv_dc_thr || sse_uv[j] == var_uv[j]))
+        skip_uv[j] = 1;
+      else
+        break;
     }
 
     // If the transform in YUV planes are skippable, the mode search checks