shithub: libvpx

Download patch

ref: 8cc54d576f64bb78a8d20b9147e09036bfebb2dc
parent: 05e850cb9e75b96c0a4f656c9dbcbe4bb761e52c
parent: 5f542408b4a4db8722dab4694512ff5ceab74f68
author: Deb Mukherjee <[email protected]>
date: Mon Feb 24 08:35:56 EST 2014

Merge "Adds an intermediate speed level for rtc"

--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -965,9 +965,9 @@
 // may not be allowed in which case this code attempts to choose the largest
 // allowable partition.
 static void set_partitioning(VP9_COMP *cpi, const TileInfo *const tile,
-                             MODE_INFO **mi_8x8, int mi_row, int mi_col) {
+                             MODE_INFO **mi_8x8, int mi_row, int mi_col,
+                             BLOCK_SIZE bsize) {
   VP9_COMMON *const cm = &cpi->common;
-  BLOCK_SIZE bsize = cpi->sf.always_this_block_size;
   const int mis = cm->mode_info_stride;
   int row8x8_remaining = tile->mi_row_end - mi_row;
   int col8x8_remaining = tile->mi_col_end - mi_col;
@@ -1956,7 +1956,8 @@
       cpi->mb.source_variance = UINT_MAX;
       if (cpi->sf.use_one_partition_size_always) {
         set_offsets(cpi, tile, mi_row, mi_col, BLOCK_64X64);
-        set_partitioning(cpi, tile, mi_8x8, mi_row, mi_col);
+        set_partitioning(cpi, tile, mi_8x8, mi_row, mi_col,
+                         cpi->sf.always_this_block_size);
         rd_use_partition(cpi, tile, mi_8x8, tp, mi_row, mi_col, BLOCK_64X64,
                          &dummy_rate, &dummy_dist, 1);
       } else {
@@ -2328,8 +2329,9 @@
     MODE_INFO **mi_8x8 = cm->mi_grid_visible + idx_str;
     cpi->mb.source_variance = UINT_MAX;
 
-    rtc_use_partition(cpi, tile, mi_8x8, tp, mi_row, mi_col, BLOCK_16X16,
-                     &dummy_rate, &dummy_dist, 1);
+    rtc_use_partition(cpi, tile, mi_8x8, tp, mi_row, mi_col,
+                      cpi->sf.always_this_block_size,
+                      &dummy_rate, &dummy_dist, 1);
   }
 }
 // end RTC play code
--- a/vp9/encoder/vp9_onyx_if.c
+++ b/vp9/encoder/vp9_onyx_if.c
@@ -661,6 +661,7 @@
     sf->reference_masking = 1;
     sf->auto_mv_step_size = 1;
 
+    sf->disable_split_var_thresh = 32;
     sf->disable_filter_search_var_thresh = 100;
     sf->comp_inter_joint_search_thresh = BLOCK_SIZES;
 
@@ -696,6 +697,7 @@
     sf->reference_masking = 1;
     sf->auto_mv_step_size = 1;
 
+    sf->disable_split_var_thresh = 64;
     sf->disable_filter_search_var_thresh = 200;
     sf->comp_inter_joint_search_thresh = BLOCK_SIZES;
 
@@ -713,7 +715,7 @@
     sf->adaptive_rd_thresh = 4;
     sf->mode_skip_start = 6;
   }
-  if (speed == 5) {
+  if (speed >= 5) {
     sf->comp_inter_joint_search_thresh = BLOCK_SIZES;
     sf->use_one_partition_size_always = 1;
     sf->always_this_block_size = BLOCK_16X16;
@@ -861,9 +863,12 @@
     sf->search_method = FAST_HEX;
   }
   if (speed >= 6) {
+    sf->use_one_partition_size_always = 1;
+    sf->always_this_block_size = BLOCK_32X32;
+  }
+  if (speed >= 7) {
     sf->always_this_block_size = BLOCK_16X16;
     sf->use_pick_mode = 1;
-    sf->encode_breakout_thresh = 1000;
   }
 }