]> granicus.if.org Git - libvpx/commitdiff
Add bit-stream write flag to nonrd_use_partition
authorJingning Han <jingning@google.com>
Sat, 15 Mar 2014 00:10:32 +0000 (17:10 -0700)
committerJingning Han <jingning@google.com>
Sat, 15 Mar 2014 00:13:02 +0000 (17:13 -0700)
This is for the purpose to test variable partition choices for the
same 64x64 block.

Change-Id: I0fab7351a62e7d3dfccd667e908bccb996ee677e

vp9/encoder/vp9_encodeframe.c

index 1609d582db013609aa913e5293b4eee3b036b9bf..3e4abaa195c03b5c8301570de17706a69c5ae6c0 100644 (file)
@@ -2692,7 +2692,7 @@ static void nonrd_use_partition(VP9_COMP *cpi,
                                 MODE_INFO **mi_8x8,
                                 TOKENEXTRA **tp,
                                 int mi_row, int mi_col,
-                                BLOCK_SIZE bsize,
+                                BLOCK_SIZE bsize, int output_enabled,
                                 int *totrate, int64_t *totdist) {
   VP9_COMMON *const cm = &cpi->common;
   MACROBLOCK *const x = &cpi->mb;
@@ -2751,10 +2751,10 @@ static void nonrd_use_partition(VP9_COMP *cpi,
 
       *get_sb_index(x, subsize) = 0;
       nonrd_use_partition(cpi, tile, mi_8x8, tp, mi_row, mi_col,
-                          subsize, totrate, totdist);
+                          subsize, output_enabled, totrate, totdist);
       *get_sb_index(x, subsize) = 1;
       nonrd_use_partition(cpi, tile, mi_8x8 + hbs, tp,
-                          mi_row, mi_col + hbs, subsize,
+                          mi_row, mi_col + hbs, subsize, output_enabled,
                           &rate, &dist);
       if (rate != INT_MAX && dist != INT64_MAX &&
           *totrate != INT_MAX && *totdist != INT64_MAX) {
@@ -2763,7 +2763,7 @@ static void nonrd_use_partition(VP9_COMP *cpi,
       }
       *get_sb_index(x, subsize) = 2;
       nonrd_use_partition(cpi, tile, mi_8x8 + hbs * mis, tp,
-                          mi_row + hbs, mi_col, subsize,
+                          mi_row + hbs, mi_col, subsize, output_enabled,
                           &rate, &dist);
       if (rate != INT_MAX && dist != INT64_MAX &&
           *totrate != INT_MAX && *totdist != INT64_MAX) {
@@ -2772,7 +2772,7 @@ static void nonrd_use_partition(VP9_COMP *cpi,
       }
       *get_sb_index(x, subsize) = 3;
       nonrd_use_partition(cpi, tile, mi_8x8 + hbs * mis + hbs, tp,
-                          mi_row + hbs, mi_col + hbs, subsize,
+                          mi_row + hbs, mi_col + hbs, subsize, output_enabled,
                           &rate, &dist);
       if (rate != INT_MAX && dist != INT64_MAX &&
           *totrate != INT_MAX && *totdist != INT64_MAX) {
@@ -2784,7 +2784,7 @@ static void nonrd_use_partition(VP9_COMP *cpi,
       assert("Invalid partition type.");
   }
 
-  if (bsize == BLOCK_64X64)
+  if (bsize == BLOCK_64X64 && output_enabled)
     encode_sb_rt(cpi, tile, tp, mi_row, mi_col, 1, bsize);
 }
 
@@ -2816,7 +2816,7 @@ static void encode_nonrd_sb_row(VP9_COMP *cpi, const TileInfo *const tile,
     else
       set_fixed_partitioning(cpi, tile, mi_8x8, mi_row, mi_col, bsize);
 
-    nonrd_use_partition(cpi, tile, mi_8x8, tp, mi_row, mi_col, BLOCK_64X64,
+    nonrd_use_partition(cpi, tile, mi_8x8, tp, mi_row, mi_col, BLOCK_64X64, 1,
                         &dummy_rate, &dummy_dist);
   }
 }