shithub: libvpx

Download patch

ref: da04312f79ef4fb858c2bbc8c0665546bd89ac1b
parent: 31ee193a9ccfccef65dad0fba3462b9f83db97fa
author: Paul Wilkins <paulwilkins@google.com>
date: Wed Apr 24 12:05:02 EDT 2013

Minor tweak to implicit segmentation experiment.

This minor tweak makes segment 0 neutral and used by
key frames and also extends beyond 4 segments.

Change-Id: Ife4744602aba66ac9432746db3113cc5cd88a482

--- a/vp9/common/vp9_seg_common.c
+++ b/vp9/common/vp9_seg_common.c
@@ -99,7 +99,7 @@
     mi = mi_ptr;
     // Experimental use of tx size to define implicit segmentation
     for (col = 0; col < cm->mb_cols; ++col, ++mi) {
-      map_ptr[col] = mi->mbmi.txfm_size;
+      map_ptr[col] = 1 + mi->mbmi.txfm_size;
     }
     mi_ptr += cm->mode_info_stride;
     map_ptr += cm->mb_cols;
--- a/vp9/encoder/vp9_onyx_if.c
+++ b/vp9/encoder/vp9_onyx_if.c
@@ -534,8 +534,8 @@
 
     xd->update_mb_segmentation_data = 1;
 
-    // Enable use of q deltas on segments
-    for (i = 0; i < MAX_MB_SEGMENTS; ++i) {
+    // Enable use of q deltas on segments 1 and up
+    for (i = 1; i < MAX_MB_SEGMENTS; ++i) {
       qi_delta = compute_qdelta(cpi, cpi->active_worst_quality, q_target);
       vp9_set_segdata(xd, i, SEG_LVL_ALT_Q, qi_delta);
       q_target *= 0.95;
--