shithub: libvpx

Download patch

ref: b2baaa215bb0fe3072b1088e9b2ac65a88c50d30
parent: 44e364092356569e89db86550557a02ffa6953f1
parent: 1a1114d21c94e3e5ee3406fe871aee4e0ab477b0
author: Yunqing Wang <yunqingwang@google.com>
date: Fri Apr 3 13:09:59 EDT 2015

Merge "Fix the scaling factor in UV skipping test"

--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -378,16 +378,18 @@
       struct macroblockd_plane *const pd = &xd->plane[i];
       const TX_SIZE uv_tx_size = get_uv_tx_size(&xd->mi[0].src_mi->mbmi, pd);
       const BLOCK_SIZE unit_size = txsize_to_bsize[uv_tx_size];
-      const int sf = (bw - b_width_log2_lookup[unit_size]) +
-          (bh - b_height_log2_lookup[unit_size]);
-      const BLOCK_SIZE bs = get_plane_block_size(bsize, pd);
+      const BLOCK_SIZE uv_bsize = get_plane_block_size(bsize, pd);
+      const int uv_bw = b_width_log2_lookup[uv_bsize];
+      const int uv_bh = b_height_log2_lookup[uv_bsize];
+      const int sf = (uv_bw - b_width_log2_lookup[unit_size]) +
+          (uv_bh - b_height_log2_lookup[unit_size]);
       const uint32_t uv_dc_thr = pd->dequant[0] * pd->dequant[0] >> (6 - sf);
       const uint32_t uv_ac_thr = pd->dequant[1] * pd->dequant[1] >> (6 - sf);
       int j = i - 1;
 
       vp9_build_inter_predictors_sbp(xd, mi_row, mi_col, bsize, i);
-      var_uv[j] = cpi->fn_ptr[bs].vf(p->src.buf, p->src.stride,
-                             pd->dst.buf, pd->dst.stride, &sse_uv[j]);
+      var_uv[j] = cpi->fn_ptr[uv_bsize].vf(p->src.buf, p->src.stride,
+          pd->dst.buf, pd->dst.stride, &sse_uv[j]);
 
       if (var_uv[j] < uv_ac_thr || var_uv[j] == 0) {
         if (sse_uv[j] - var_uv[j] < uv_dc_thr || sse_uv[j] == var_uv[j])