ref: 1a1114d21c94e3e5ee3406fe871aee4e0ab477b0
parent: d72ed35374db9956a274a816c1228a8d99adedbd
author: Yunqing Wang <[email protected]>
date: Fri Apr 3 11:35:31 EDT 2015
Fix the scaling factor in UV skipping test The threshold scaling factor was calculated wrong using partition size "bsize". Thank Yaowu for pointing it out. It was fixed and no speed change was seen. Change-Id: If7a5564456f0f68d6957df3bd2d1876bbb8dfd27
--- 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])