diff options
author | Yunqing Wang <yunqingwang@google.com> | 2011-04-01 16:41:58 -0400 |
---|---|---|
committer | Yunqing Wang <yunqingwang@google.com> | 2011-04-01 16:41:58 -0400 |
commit | 3d6815817cc0d74bbc42294f9fbca01f7840aeef (patch) | |
tree | 2d097e03587b8e501a13f5c16475c80b3d6dcdc6 /vp8/encoder/firstpass.c | |
parent | 534ea700bd690e8f3f6e0d9db930b3bf65a08cac (diff) | |
download | libvpx-3d6815817cc0d74bbc42294f9fbca01f7840aeef.tar libvpx-3d6815817cc0d74bbc42294f9fbca01f7840aeef.tar.gz libvpx-3d6815817cc0d74bbc42294f9fbca01f7840aeef.tar.bz2 libvpx-3d6815817cc0d74bbc42294f9fbca01f7840aeef.zip |
Use full-pixel MV in mvsadcost calculation
MV sad cost error is only used in full-pixel motion search,
which only need full-pixel resolution instead of quarter-pixel
resolution. This change reduced mvsadcost table size, and
removed unneccessary pamameter passing since this table is
constant once it is generated.
Change-Id: I9f931e55f6abc3c99011321f1dfb2f3562e6f6b0
Diffstat (limited to 'vp8/encoder/firstpass.c')
-rw-r--r-- | vp8/encoder/firstpass.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/vp8/encoder/firstpass.c b/vp8/encoder/firstpass.c index 6c9433b5f..dd0152dcb 100644 --- a/vp8/encoder/firstpass.c +++ b/vp8/encoder/firstpass.c @@ -446,7 +446,7 @@ static void first_pass_motion_search(VP8_COMP *cpi, MACROBLOCK *x, MV *ref_mv, M xd->pre.y_buffer = recon_buffer->y_buffer + recon_yoffset; // Initial step/diamond search centred on best mv - tmp_err = cpi->diamond_search_sad(x, b, d, ref_mv, &tmp_mv, step_param, x->errorperbit, &num00, &v_fn_ptr, x->mvsadcost, x->mvcost, ref_mv); + tmp_err = cpi->diamond_search_sad(x, b, d, ref_mv, &tmp_mv, step_param, x->errorperbit, &num00, &v_fn_ptr, x->mvcost, ref_mv); if ( tmp_err < INT_MAX-new_mv_mode_penalty ) tmp_err += new_mv_mode_penalty; @@ -469,7 +469,7 @@ static void first_pass_motion_search(VP8_COMP *cpi, MACROBLOCK *x, MV *ref_mv, M num00--; else { - tmp_err = cpi->diamond_search_sad(x, b, d, ref_mv, &tmp_mv, step_param + n, x->errorperbit, &num00, &v_fn_ptr, x->mvsadcost, x->mvcost, ref_mv); + tmp_err = cpi->diamond_search_sad(x, b, d, ref_mv, &tmp_mv, step_param + n, x->errorperbit, &num00, &v_fn_ptr, x->mvcost, ref_mv); if ( tmp_err < INT_MAX-new_mv_mode_penalty ) tmp_err += new_mv_mode_penalty; @@ -540,7 +540,7 @@ void vp8_first_pass(VP8_COMP *cpi) int flag[2] = {1, 1}; vp8_initialize_rd_consts(cpi, vp8_dc_quant(cm->base_qindex, cm->y1dc_delta_q)); vpx_memcpy(cm->fc.mvc, vp8_default_mv_context, sizeof(vp8_default_mv_context)); - vp8_build_component_cost_table(cpi->mb.mvcost, cpi->mb.mvsadcost, (const MV_CONTEXT *) cm->fc.mvc, flag); + vp8_build_component_cost_table(cpi->mb.mvcost, (const MV_CONTEXT *) cm->fc.mvc, flag); } // for each macroblock row in image |