shithub: libvpx

Download patch

ref: a81baae7c7711e0abc39a3673287c0f6b6ba5f93
parent: c498aaca2e64f75dd5be3a7f67a035510279140d
author: Yaowu Xu <yaowu@google.com>
date: Thu Jun 28 13:03:29 EDT 2012

change to enable encoder to clamp UV motion vector

This is to avoid a rare encoder/decoder mismatch for MB using SPLITMV
mode. In decoder, the UV mv can be determined to need clamp, but the
flag is never set in encoder motion vector selection process, and the
clamp is not done in encoding in encoder.

Change-Id: I60520d3f790354c7855dadf03f0978ea9b77e2c0

--- a/vp8/common/reconinter.c
+++ b/vp8/common/reconinter.c
@@ -1296,10 +1296,10 @@
 
             x->block[uoffset].bmi.as_mv.first.as_mv.col = (temp / 8) & x->fullpixel_mask;
 
-            if (x->mode_info_context->mbmi.need_to_clamp_mvs)
+            //if (x->mode_info_context->mbmi.need_to_clamp_mvs)
                 clamp_uvmv_to_umv_border(&x->block[uoffset].bmi.as_mv.first.as_mv, x);
 
-            if (x->mode_info_context->mbmi.need_to_clamp_mvs)
+            //if (x->mode_info_context->mbmi.need_to_clamp_mvs)
                 clamp_uvmv_to_umv_border(&x->block[uoffset].bmi.as_mv.first.as_mv, x);
 
             x->block[voffset].bmi.as_mv.first.as_mv.row =
@@ -1341,11 +1341,11 @@
 
                 x->block[uoffset].bmi.as_mv.second.as_mv.col = (temp / 8) & x->fullpixel_mask;
 
-                if (x->mode_info_context->mbmi.need_to_clamp_mvs)
-                    clamp_uvmv_to_umv_border(&x->block[uoffset].bmi.as_mv.second.as_mv, x);
+                //if (x->mode_info_context->mbmi.need_to_clamp_mvs)
+                clamp_uvmv_to_umv_border(&x->block[uoffset].bmi.as_mv.second.as_mv, x);
 
-                if (x->mode_info_context->mbmi.need_to_clamp_mvs)
-                    clamp_uvmv_to_umv_border(&x->block[uoffset].bmi.as_mv.second.as_mv, x);
+                //if (x->mode_info_context->mbmi.need_to_clamp_mvs)
+                clamp_uvmv_to_umv_border(&x->block[uoffset].bmi.as_mv.second.as_mv, x);
 
                 x->block[voffset].bmi.as_mv.second.as_mv.row =
                     x->block[uoffset].bmi.as_mv.second.as_mv.row ;
--