Refactor encode_superblock function
authorYunqing Wang <yunqingwang@google.com>
Fri, 12 Sep 2014 22:58:17 +0000 (15:58 -0700)
committerYunqing Wang <yunqingwang@google.com>
Fri, 12 Sep 2014 22:58:17 +0000 (15:58 -0700)
The code covers both x->skip=0 & x->skip=1 cases.

Change-Id: I09745c10e5994dc700ae4c01b4b62979cdaf3306

vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_encodemb.c

index c62b52f..21d7df6 100644 (file)
@@ -3617,16 +3617,8 @@ static void encode_superblock(VP9_COMP *cpi, TOKENEXTRA **t, int output_enabled,
 
     vp9_build_inter_predictors_sbuv(xd, mi_row, mi_col, MAX(bsize, BLOCK_8X8));
 
-    if (!x->skip) {
-      mbmi->skip = 1;
-      vp9_encode_sb(x, MAX(bsize, BLOCK_8X8));
-      vp9_tokenize_sb(cpi, t, !output_enabled, MAX(bsize, BLOCK_8X8));
-    } else {
-      mbmi->skip = 1;
-      if (output_enabled && !seg_skip)
-        cm->counts.skip[vp9_get_skip_context(xd)][1]++;
-      reset_skip_context(xd, MAX(bsize, BLOCK_8X8));
-    }
+    vp9_encode_sb(x, MAX(bsize, BLOCK_8X8));
+    vp9_tokenize_sb(cpi, t, !output_enabled, MAX(bsize, BLOCK_8X8));
   }
 
   if (output_enabled) {
index 6678450..eacfdcc 100644 (file)
@@ -563,6 +563,11 @@ void vp9_encode_sb(MACROBLOCK *x, BLOCK_SIZE bsize) {
   struct encode_b_args arg = {x, &ctx, &mbmi->skip};
   int plane;
 
+  mbmi->skip = 1;
+
+  if (x->skip)
+    return;
+
   for (plane = 0; plane < MAX_MB_PLANE; ++plane) {
     if (!x->skip_recode)
       vp9_subtract_plane(x, bsize, plane);