diff options
author | John Koleszar <jkoleszar@google.com> | 2011-06-03 00:05:20 -0400 |
---|---|---|
committer | John Koleszar <jkoleszar@google.com> | 2011-06-03 00:05:21 -0400 |
commit | 480f0257540324b1ffa7579688924a881638cf8a (patch) | |
tree | 1c1946ddc0e2e3d44b59aad9d94b7b87356058b8 /vp8/encoder | |
parent | 32817d6fbe5169413ea05e33bf5a509fcf9f4218 (diff) | |
parent | 4ce6928d5b048ce5f82a97cd3d56267432fdc634 (diff) | |
download | libvpx-480f0257540324b1ffa7579688924a881638cf8a.tar libvpx-480f0257540324b1ffa7579688924a881638cf8a.tar.gz libvpx-480f0257540324b1ffa7579688924a881638cf8a.tar.bz2 libvpx-480f0257540324b1ffa7579688924a881638cf8a.zip |
Merge remote branch 'origin/master' into experimental
Change-Id: I7395011ef6c1783110ebd06305ca3d908d2457bb
Diffstat (limited to 'vp8/encoder')
-rw-r--r-- | vp8/encoder/firstpass.c | 9 | ||||
-rw-r--r-- | vp8/encoder/mcomp.c | 3 | ||||
-rw-r--r-- | vp8/encoder/pickinter.c | 8 | ||||
-rw-r--r-- | vp8/encoder/rdopt.c | 22 | ||||
-rw-r--r-- | vp8/encoder/temporal_filter.c | 2 |
5 files changed, 27 insertions, 17 deletions
diff --git a/vp8/encoder/firstpass.c b/vp8/encoder/firstpass.c index 4f88ce763..44d7d6170 100644 --- a/vp8/encoder/firstpass.c +++ b/vp8/encoder/firstpass.c @@ -449,7 +449,9 @@ static void first_pass_motion_search(VP8_COMP *cpi, MACROBLOCK *x, // Initial step/diamond search centred on best mv tmp_mv.as_int = 0; - 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); + tmp_err = cpi->diamond_search_sad(x, b, d, ref_mv, &tmp_mv, step_param, + x->sadperbit16, &num00, &v_fn_ptr, + x->mvcost, ref_mv); if ( tmp_err < INT_MAX-new_mv_mode_penalty ) tmp_err += new_mv_mode_penalty; @@ -472,7 +474,10 @@ static void first_pass_motion_search(VP8_COMP *cpi, MACROBLOCK *x, 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->mvcost, ref_mv); + tmp_err = cpi->diamond_search_sad(x, b, d, ref_mv, &tmp_mv, + step_param + n, x->sadperbit16, + &num00, &v_fn_ptr, x->mvcost, + ref_mv); if ( tmp_err < INT_MAX-new_mv_mode_penalty ) tmp_err += new_mv_mode_penalty; diff --git a/vp8/encoder/mcomp.c b/vp8/encoder/mcomp.c index aac39d582..50c4745b1 100644 --- a/vp8/encoder/mcomp.c +++ b/vp8/encoder/mcomp.c @@ -1000,7 +1000,8 @@ cal_neighbors: this_mv.as_mv.col = bc<<3; this_offset = (unsigned char *)(*(d->base_pre) + d->pre + (br * (in_what_stride)) + bc); - return vfp->vf(what, what_stride, this_offset, in_what_stride, &bestsad) + mv_err_cost(&this_mv, center_mv, mvcost, x->errorperbit) ; + return vfp->vf(what, what_stride, this_offset, in_what_stride, &bestsad) + + mv_err_cost(&this_mv, center_mv, mvcost, x->errorperbit) ; } #undef CHECK_BOUNDS #undef CHECK_POINT diff --git a/vp8/encoder/pickinter.c b/vp8/encoder/pickinter.c index 24bd245f0..77e188e30 100644 --- a/vp8/encoder/pickinter.c +++ b/vp8/encoder/pickinter.c @@ -713,7 +713,7 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int step_param; int further_steps; int n = 0; - int sadpb = x->sadperbit16/2; + int sadpb = x->sadperbit16; int col_min; int col_max; @@ -817,7 +817,11 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, } if (bestsme < INT_MAX) - cpi->find_fractional_mv_step(x, b, d, &d->bmi.mv, &best_ref_mv, x->errorperbit, &cpi->fn_ptr[BLOCK_16X16], cpi->mb.mvcost, &distortion2, &sse); + cpi->find_fractional_mv_step(x, b, d, &d->bmi.mv, &best_ref_mv, + x->errorperbit, + &cpi->fn_ptr[BLOCK_16X16], + cpi->mb.mvcost, + &distortion2,&sse); mode_mv[NEWMV].as_int = d->bmi.mv.as_int; diff --git a/vp8/encoder/rdopt.c b/vp8/encoder/rdopt.c index 268938fed..53b2ed745 100644 --- a/vp8/encoder/rdopt.c +++ b/vp8/encoder/rdopt.c @@ -240,8 +240,8 @@ static int sad_per_bit4lut[QINDEX_RANGE] = void vp8cx_initialize_me_consts(VP8_COMP *cpi, int QIndex) { - cpi->mb.sadperbit16 = sad_per_bit16lut[QIndex]; - cpi->mb.sadperbit4 = sad_per_bit4lut[QIndex]; + cpi->mb.sadperbit16 = sad_per_bit16lut[QIndex]/2; + cpi->mb.sadperbit4 = sad_per_bit4lut[QIndex]/2; } @@ -1196,7 +1196,7 @@ static void rd_check_segment(VP8_COMP *cpi, MACROBLOCK *x, further_steps = (MAX_MVSEARCH_STEPS - 1) - step_param; { - int sadpb = x->sadperbit4/2; + int sadpb = x->sadperbit4; // find first label n = vp8_mbsplit_offset[segmentation][i]; @@ -1267,13 +1267,10 @@ static void rd_check_segment(VP8_COMP *cpi, MACROBLOCK *x, { int distortion; unsigned int sse; + cpi->find_fractional_mv_step(x, c, e, &mode_mv[NEW4X4], + bsi->ref_mv, x->errorperbit, v_fn_ptr, x->mvcost, + &distortion, &sse); - if (!cpi->common.full_pixel) - cpi->find_fractional_mv_step(x, c, e, &mode_mv[NEW4X4], - bsi->ref_mv, x->errorperbit / 2, v_fn_ptr, x->mvcost, &distortion, &sse); - else - vp8_skip_fractional_mv_step(x, c, e, &mode_mv[NEW4X4], - bsi->ref_mv, x->errorperbit, v_fn_ptr, x->mvcost, &distortion, &sse); } } /* NEW4X4 */ @@ -2103,7 +2100,7 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int int do_refine=1; /* If last step (1-away) of n-step search doesn't pick the center point as the best match, we will do a final 1-away diamond refining search */ - int sadpb = x->sadperbit16/2; + int sadpb = x->sadperbit16; int col_min = (best_ref_mv.as_mv.col - MAX_FULL_PEL_VAL) >>3; int col_max = (best_ref_mv.as_mv.col + MAX_FULL_PEL_VAL) >>3; @@ -2212,7 +2209,10 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int { int dis; /* TODO: use dis in distortion calculation later. */ unsigned int sse; - cpi->find_fractional_mv_step(x, b, d, &d->bmi.mv, &best_ref_mv, x->errorperbit / 4, &cpi->fn_ptr[BLOCK_16X16], x->mvcost, &dis, &sse); + cpi->find_fractional_mv_step(x, b, d, &d->bmi.mv, &best_ref_mv, + x->errorperbit, + &cpi->fn_ptr[BLOCK_16X16], + x->mvcost, &dis, &sse); } mode_mv[NEWMV].as_int = d->bmi.mv.as_int; diff --git a/vp8/encoder/temporal_filter.c b/vp8/encoder/temporal_filter.c index 483a98ca6..2997f77d1 100644 --- a/vp8/encoder/temporal_filter.c +++ b/vp8/encoder/temporal_filter.c @@ -200,7 +200,7 @@ static int vp8_temporal_filter_find_matching_mb_c bestsme = vp8_hex_search(x, b, d, &best_ref_mv1, &d->bmi.mv, step_param, - sadpb/*x->errorperbit*/, + sadpb, &num00, &cpi->fn_ptr[BLOCK_16X16], mvsadcost, mvcost, &best_ref_mv1); |