diff options
author | James Zern <jzern@google.com> | 2014-01-22 16:50:30 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2014-01-22 16:50:30 -0800 |
commit | eb4cb4339711597cb563110e6c7505242114e205 (patch) | |
tree | af2406bf69a281f4233c3ffa04b3e918790afac9 /vp9 | |
parent | af1485380243ae8b980a3937349b28ab820e7a20 (diff) | |
parent | 20cf22a1289c01cc44ac948103fa4755293f9df3 (diff) | |
download | libvpx-eb4cb4339711597cb563110e6c7505242114e205.tar libvpx-eb4cb4339711597cb563110e6c7505242114e205.tar.gz libvpx-eb4cb4339711597cb563110e6c7505242114e205.tar.bz2 libvpx-eb4cb4339711597cb563110e6c7505242114e205.zip |
Merge "Enforce effective motion vector search range"
Diffstat (limited to 'vp9')
-rw-r--r-- | vp9/encoder/vp9_mcomp.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/vp9/encoder/vp9_mcomp.c b/vp9/encoder/vp9_mcomp.c index e81dd0db7..0f2edb55a 100644 --- a/vp9/encoder/vp9_mcomp.c +++ b/vp9/encoder/vp9_mcomp.c @@ -24,10 +24,15 @@ // #define NEW_DIAMOND_SEARCH void vp9_set_mv_search_range(MACROBLOCK *x, const MV *mv) { - const int col_min = (mv->col >> 3) - MAX_FULL_PEL_VAL + (mv->col & 7 ? 1 : 0); - const int row_min = (mv->row >> 3) - MAX_FULL_PEL_VAL + (mv->row & 7 ? 1 : 0); - const int col_max = (mv->col >> 3) + MAX_FULL_PEL_VAL; - const int row_max = (mv->row >> 3) + MAX_FULL_PEL_VAL; + int col_min = (mv->col >> 3) - MAX_FULL_PEL_VAL + (mv->col & 7 ? 1 : 0); + int row_min = (mv->row >> 3) - MAX_FULL_PEL_VAL + (mv->row & 7 ? 1 : 0); + int col_max = (mv->col >> 3) + MAX_FULL_PEL_VAL; + int row_max = (mv->row >> 3) + MAX_FULL_PEL_VAL; + + col_min = MAX(col_min, (MV_LOW >> 3) + 1); + row_min = MAX(row_min, (MV_LOW >> 3) + 1); + col_max = MIN(col_max, (MV_UPP >> 3) - 1); + row_max = MIN(row_max, (MV_UPP >> 3) - 1); // Get intersection of UMV window and valid MV window to reduce # of checks // in diamond search. |