With on demand border extension, clamping the MV

is not longer needed.

Change-Id: I40c37ef18c67ab27fc336694dfca3c43a87c47ca
This commit is contained in:
hkuang 2014-02-04 10:56:16 -08:00
parent 2b7338aca4
commit b0fec6ab4a

View File

@ -269,21 +269,15 @@ static void dec_build_inter_predictors(MACROBLOCKD *xd, int plane, int block,
? (plane == 0 ? mi->bmi[block].as_mv[ref].as_mv
: mi_mv_pred_q4(mi, ref))
: mi->mbmi.mv[ref].as_mv;
// TODO(jkoleszar): This clamping is done in the incorrect place for the
// scaling case. It needs to be done on the scaled MV, not the pre-scaling
// MV. Note however that it performs the subsampling aware scaling so
// that the result is always q4.
// mv_precision precision is MV_PRECISION_Q4.
const MV mv_q4 = clamp_mv_to_umv_border_sb(xd, &mv, bw, bh,
pd->subsampling_x,
pd->subsampling_y);
MV32 scaled_mv;
int xs, ys, x0, y0, x0_16, y0_16, x1, y1, frame_width,
frame_height, subpel_x, subpel_y, buf_stride;
uint8_t *ref_frame, *buf_ptr;
const YV12_BUFFER_CONFIG *ref_buf = xd->block_refs[ref]->buf;
const MV mv_q4 = {
mv.row * (1 << (1 - pd->subsampling_y)),
mv.col * (1 << (1 - pd->subsampling_x))
};
// Get reference frame pointer, width and height.
if (plane == 0) {