diff options
author | Yunqing Wang <yunqingwang@google.com> | 2014-07-09 16:50:11 -0700 |
---|---|---|
committer | Yunqing Wang <yunqingwang@google.com> | 2014-07-09 16:50:11 -0700 |
commit | 30117a576dc1590d95d840bb90f95e57277a0c9d (patch) | |
tree | 6b64fb02cf18414faa65fb3f8efb887f7d02c2a1 /vp9/encoder | |
parent | a581da218e56fa9c1b2d72d124056ed412549edd (diff) | |
download | libvpx-30117a576dc1590d95d840bb90f95e57277a0c9d.tar libvpx-30117a576dc1590d95d840bb90f95e57277a0c9d.tar.gz libvpx-30117a576dc1590d95d840bb90f95e57277a0c9d.tar.bz2 libvpx-30117a576dc1590d95d840bb90f95e57277a0c9d.zip |
Refactor refining_search_sad code
There are sse2 optimization of sdx4df functions. Instead of calling
vp9_refining_search_sadx4 only when sse3 is enabled, call it always.
Change-Id: I24f93818f7d4209d1425039e0eb099ff9ff08fe9
Diffstat (limited to 'vp9/encoder')
-rw-r--r-- | vp9/encoder/vp9_mcomp.c | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/vp9/encoder/vp9_mcomp.c b/vp9/encoder/vp9_mcomp.c index 01d2b4493..287e5f739 100644 --- a/vp9/encoder/vp9_mcomp.c +++ b/vp9/encoder/vp9_mcomp.c @@ -1334,51 +1334,6 @@ int vp9_refining_search_sad_c(const MACROBLOCK *x, int search_range, const vp9_variance_fn_ptr_t *fn_ptr, const MV *center_mv) { - const MV neighbors[4] = {{ -1, 0}, {0, -1}, {0, 1}, {1, 0}}; - const MACROBLOCKD *const xd = &x->e_mbd; - const struct buf_2d *const what = &x->plane[0].src; - const struct buf_2d *const in_what = &xd->plane[0].pre[0]; - const MV fcenter_mv = {center_mv->row >> 3, center_mv->col >> 3}; - unsigned int best_sad = fn_ptr->sdf(what->buf, what->stride, - get_buf_from_mv(in_what, ref_mv), - in_what->stride) + - mvsad_err_cost(x, ref_mv, &fcenter_mv, error_per_bit); - int i, j; - - for (i = 0; i < search_range; i++) { - int best_site = -1; - - for (j = 0; j < 4; j++) { - const MV mv = {ref_mv->row + neighbors[j].row, - ref_mv->col + neighbors[j].col}; - if (is_mv_in(x, &mv)) { - unsigned int sad = fn_ptr->sdf(what->buf, what->stride, - get_buf_from_mv(in_what, &mv), in_what->stride); - if (sad < best_sad) { - sad += mvsad_err_cost(x, &mv, &fcenter_mv, error_per_bit); - if (sad < best_sad) { - best_sad = sad; - best_site = j; - } - } - } - } - - if (best_site == -1) { - break; - } else { - ref_mv->row += neighbors[best_site].row; - ref_mv->col += neighbors[best_site].col; - } - } - return best_sad; -} - -int vp9_refining_search_sadx4(const MACROBLOCK *x, - MV *ref_mv, int error_per_bit, - int search_range, - const vp9_variance_fn_ptr_t *fn_ptr, - const MV *center_mv) { const MACROBLOCKD *const xd = &x->e_mbd; const MV neighbors[4] = {{ -1, 0}, {0, -1}, {0, 1}, {1, 0}}; const struct buf_2d *const what = &x->plane[0].src; |