use get8x8var directly for non-subpixel motion case in VP8_UVSSE
authorYaowu Xu <yaowu@google.com>
Sun, 22 May 2011 04:51:21 +0000 (21:51 -0700)
committerYaowu Xu <yaowu@google.com>
Mon, 23 May 2011 16:11:28 +0000 (09:11 -0700)
VP8_UVSSE mistakenly used subpixvar8x8 to calculate SSE for non-subpixl
motion cases.

Change-Id: I4a5398bb9ef39c211039f6af4540546d4972e6a9

vp8/encoder/rdopt.c

index 12b4ee3..33563cf 100644 (file)
@@ -455,17 +455,21 @@ int VP8_UVSSE(MACROBLOCK *x, const vp8_variance_rtcd_vtable_t *rtcd)
 
     if ((mv_row | mv_col) & 7)
     {
-        VARIANCE_INVOKE(rtcd, subpixvar8x8)(uptr, pre_stride, mv_col & 7, mv_row & 7, upred_ptr, uv_stride, &sse2);
-        VARIANCE_INVOKE(rtcd, subpixvar8x8)(vptr, pre_stride, mv_col & 7, mv_row & 7, vpred_ptr, uv_stride, &sse1);
+        VARIANCE_INVOKE(rtcd, subpixvar8x8)(uptr, pre_stride,
+            mv_col & 7, mv_row & 7, upred_ptr, uv_stride, &sse2);
+        VARIANCE_INVOKE(rtcd, subpixvar8x8)(vptr, pre_stride,
+            mv_col & 7, mv_row & 7, vpred_ptr, uv_stride, &sse1);
         sse2 += sse1;
     }
     else
     {
-        VARIANCE_INVOKE(rtcd, subpixvar8x8)(uptr, pre_stride, mv_col & 7, mv_row & 7, upred_ptr, uv_stride, &sse2);
-        VARIANCE_INVOKE(rtcd, subpixvar8x8)(vptr, pre_stride, mv_col & 7, mv_row & 7, vpred_ptr, uv_stride, &sse1);
+        int sum2, sum1;
+        VARIANCE_INVOKE(rtcd, get8x8var)(uptr, pre_stride,
+            upred_ptr, uv_stride, &sse2, &sum2);
+        VARIANCE_INVOKE(rtcd, get8x8var)(vptr, pre_stride,
+            vpred_ptr, uv_stride, &sse1, &sum1);
         sse2 += sse1;
     }
-
     return sse2;
 
 }