| Index: source/libvpx/vp9/encoder/vp9_rd.c
|
| ===================================================================
|
| --- source/libvpx/vp9/encoder/vp9_rd.c (revision 291857)
|
| +++ source/libvpx/vp9/encoder/vp9_rd.c (working copy)
|
| @@ -364,20 +364,16 @@
|
| int ref_frame, BLOCK_SIZE block_size) {
|
| MACROBLOCKD *xd = &x->e_mbd;
|
| MB_MODE_INFO *mbmi = &xd->mi[0]->mbmi;
|
| - int_mv this_mv;
|
| int i;
|
| int zero_seen = 0;
|
| int best_index = 0;
|
| int best_sad = INT_MAX;
|
| int this_sad = INT_MAX;
|
| int max_mv = 0;
|
| -
|
| uint8_t *src_y_ptr = x->plane[0].src.buf;
|
| uint8_t *ref_y_ptr;
|
| - int row_offset, col_offset;
|
| - int num_mv_refs = MAX_MV_REF_CANDIDATES +
|
| + const int num_mv_refs = MAX_MV_REF_CANDIDATES +
|
| (cpi->sf.adaptive_motion_search &&
|
| - cpi->common.show_frame &&
|
| block_size < cpi->sf.max_partition_size);
|
|
|
| MV pred_mv[3];
|
| @@ -387,19 +383,16 @@
|
|
|
| // Get the sad for each candidate reference mv.
|
| for (i = 0; i < num_mv_refs; ++i) {
|
| - this_mv.as_mv = pred_mv[i];
|
| + const MV *this_mv = &pred_mv[i];
|
|
|
| - max_mv = MAX(max_mv,
|
| - MAX(abs(this_mv.as_mv.row), abs(this_mv.as_mv.col)) >> 3);
|
| - // Only need to check zero mv once.
|
| - if (!this_mv.as_int && zero_seen)
|
| + max_mv = MAX(max_mv, MAX(abs(this_mv->row), abs(this_mv->col)) >> 3);
|
| + if (is_zero_mv(this_mv) && zero_seen)
|
| continue;
|
|
|
| - zero_seen = zero_seen || !this_mv.as_int;
|
| + zero_seen |= is_zero_mv(this_mv);
|
|
|
| - row_offset = this_mv.as_mv.row >> 3;
|
| - col_offset = this_mv.as_mv.col >> 3;
|
| - ref_y_ptr = ref_y_buffer + (ref_y_stride * row_offset) + col_offset;
|
| + ref_y_ptr =
|
| + &ref_y_buffer[ref_y_stride * (this_mv->row >> 3) + (this_mv->col >> 3)];
|
|
|
| // Find sad for current vector.
|
| this_sad = cpi->fn_ptr[block_size].sdf(src_y_ptr, x->plane[0].src.stride,
|
| @@ -462,7 +455,7 @@
|
|
|
| // Set baseline threshold values.
|
| for (i = 0; i < MAX_MODES; ++i)
|
| - rd->thresh_mult[i] = is_best_mode(cpi->oxcf.mode) ? -500 : 0;
|
| + rd->thresh_mult[i] = cpi->oxcf.mode == BEST ? -500 : 0;
|
|
|
| rd->thresh_mult[THR_NEARESTMV] = 0;
|
| rd->thresh_mult[THR_NEARESTG] = 0;
|
| @@ -548,7 +541,7 @@
|
| int i;
|
|
|
| for (i = 0; i < MAX_REFS; ++i)
|
| - rd->thresh_mult_sub8x8[i] = is_best_mode(cpi->oxcf.mode) ? -500 : 0;
|
| + rd->thresh_mult_sub8x8[i] = cpi->oxcf.mode == BEST ? -500 : 0;
|
|
|
| rd->thresh_mult_sub8x8[THR_LAST] += 2500;
|
| rd->thresh_mult_sub8x8[THR_GOLD] += 2500;
|
|
|