shithub: libvpx

Download patch

ref: ab2dfd22f3edb6b0571913bd27645252653520bf
parent: 1f3f18443db5820157448515579c14efd19eea1b
author: Yaowu Xu <yaowu@google.com>
date: Sat May 21 17:51:21 EDT 2011

use get8x8var directly for non-subpixel motion case in VP8_UVSSE

VP8_UVSSE mistakenly used subpixvar8x8 to calculate SSE for non-subpixl
motion cases.

Change-Id: I4a5398bb9ef39c211039f6af4540546d4972e6a9

--- a/vp8/encoder/rdopt.c
+++ b/vp8/encoder/rdopt.c
@@ -455,17 +455,21 @@
 
     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;
 
 }