ref: 4ce6928d5b048ce5f82a97cd3d56267432fdc634
parent: 4101b5c5edf3f1257f8f9870dc16ccd49df22708
parent: 5b2fb3296167da69ab4ad6df2e24b0b87fa1e515
author: Yaowu Xu <yaowu@google.com>
date: Thu Jun 2 04:58:03 EDT 2011
Merge "further clean up of errorperbit and sadperbit"
--- a/vp8/encoder/firstpass.c
+++ b/vp8/encoder/firstpass.c
@@ -449,7 +449,9 @@
// 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 @@
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;
--- a/vp8/encoder/mcomp.c
+++ b/vp8/encoder/mcomp.c
@@ -1000,7 +1000,8 @@
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
--- a/vp8/encoder/pickinter.c
+++ b/vp8/encoder/pickinter.c
@@ -713,7 +713,7 @@
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 @@
}
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;
--- a/vp8/encoder/rdopt.c
+++ b/vp8/encoder/rdopt.c
@@ -198,8 +198,8 @@
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;
}
void vp8_initialize_rd_consts(VP8_COMP *cpi, int Qvalue)
@@ -1131,7 +1131,7 @@
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];
@@ -1202,13 +1202,10 @@
{
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 */
@@ -2038,7 +2035,7 @@
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;
@@ -2147,7 +2144,10 @@
{
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;
--- a/vp8/encoder/temporal_filter.c
+++ b/vp8/encoder/temporal_filter.c
@@ -200,7 +200,7 @@
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);