Commit a1ec3eb3 authored by Yaowu Xu's avatar Yaowu Xu

Limit new motion vector size

This commit adds clamp of new vectors similar to the logic in RD loop.
Such clamp is not necessary from the perspective of VP8 bitstream, but
is added to improve ChromeCast mirroring's robustness.

Change-Id: I42f6adbc60ffce283b994869364230858632d6fa
parent d88ca3c3
...@@ -1240,7 +1240,10 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, ...@@ -1240,7 +1240,10 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset,
} }
mode_mv[NEWMV].as_int = d->bmi.mv.as_int; mode_mv[NEWMV].as_int = d->bmi.mv.as_int;
// The clamp below is not necessary from the perspective
// of VP8 bitstream, but is added to improve ChromeCast
// mirroring's robustness. Please do not remove.
vp8_clamp_mv2(&mode_mv[this_mode], xd);
/* mv cost; */ /* mv cost; */
rate2 += vp8_mv_bit_cost(&mode_mv[NEWMV], &best_ref_mv, rate2 += vp8_mv_bit_cost(&mode_mv[NEWMV], &best_ref_mv,
cpi->mb.mvcost, 128); cpi->mb.mvcost, 128);
...@@ -1248,7 +1251,6 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, ...@@ -1248,7 +1251,6 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset,
case NEARESTMV: case NEARESTMV:
case NEARMV: case NEARMV:
if (mode_mv[this_mode].as_int == 0) if (mode_mv[this_mode].as_int == 0)
continue; continue;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment