ref: 513666e78c6cd28351ff01c7dde3d578d4fe65e3
parent: ed2fba2a79efd9d32e5e082f1fbe4ca4a54ed058
author: Dmitry Kovalev <[email protected]>
date: Fri Jan 3 11:16:28 EST 2014
Converting CHECK_POINT macro to inline function. Change-Id: I08533d59a78346dac30a7dcbc12146f23ef88bbc
--- a/vp9/encoder/vp9_mcomp.c
+++ b/vp9/encoder/vp9_mcomp.c
@@ -464,7 +464,8 @@
#undef CHECK_BETTER
#undef SP
-static INLINE int check_bounds(MACROBLOCK *x, int row, int col, int range) {
+static INLINE int check_bounds(const MACROBLOCK *x, int row, int col,
+ int range) {
return ((row - range) >= x->mv_row_min) &
((row + range) <= x->mv_row_max) &
((col - range) >= x->mv_col_min) &
@@ -471,13 +472,12 @@
((col + range) <= x->mv_col_max);
}
-#define CHECK_POINT \
- {\
- if (this_mv.col < x->mv_col_min) continue;\
- if (this_mv.col > x->mv_col_max) continue;\
- if (this_mv.row < x->mv_row_min) continue;\
- if (this_mv.row > x->mv_row_max) continue;\
- }
+static INLINE int check_point(const MACROBLOCK *x, const MV *mv) {
+ return (mv->col < x->mv_col_min) |
+ (mv->col > x->mv_col_max) |
+ (mv->row < x->mv_row_min) |
+ (mv->row > x->mv_row_max);
+}
#define CHECK_BETTER \
{\
@@ -580,7 +580,8 @@
for (i = 0; i < num_candidates[t]; i++) {
this_mv.row = br + candidates[t][i].row;
this_mv.col = bc + candidates[t][i].col;
- CHECK_POINT
+ if (check_point(x, &this_mv))
+ continue;
this_offset = base_offset + (this_mv.row * in_what_stride) +
this_mv.col;
thissad = vfp->sdf(what, what_stride, this_offset, in_what_stride,
@@ -623,7 +624,8 @@
for (i = 0; i < num_candidates[s]; i++) {
this_mv.row = br + candidates[s][i].row;
this_mv.col = bc + candidates[s][i].col;
- CHECK_POINT
+ if (check_point(x, &this_mv))
+ continue;
this_offset = base_offset + (this_mv.row * in_what_stride) +
this_mv.col;
thissad = vfp->sdf(what, what_stride, this_offset, in_what_stride,
@@ -659,7 +661,8 @@
for (i = 0; i < PATTERN_CANDIDATES_REF; i++) {
this_mv.row = br + candidates[s][next_chkpts_indices[i]].row;
this_mv.col = bc + candidates[s][next_chkpts_indices[i]].col;
- CHECK_POINT
+ if (check_point(x, &this_mv))
+ continue;
this_offset = base_offset + (this_mv.row * (in_what_stride)) +
this_mv.col;
thissad = vfp->sdf(what, what_stride, this_offset, in_what_stride,
@@ -699,7 +702,8 @@
for (i = 0; i < 4; i++) {
this_mv.row = br + neighbors[i].row;
this_mv.col = bc + neighbors[i].col;
- CHECK_POINT
+ if (check_point(x, &this_mv))
+ continue;
this_offset = base_offset + (this_mv.row * (in_what_stride)) +
this_mv.col;
thissad = vfp->sdf(what, what_stride, this_offset, in_what_stride,
@@ -852,7 +856,6 @@
square_num_candidates, square_candidates);
};
-#undef CHECK_POINT
#undef CHECK_BETTER
int vp9_full_range_search_c(MACROBLOCK *x, MV *ref_mv, MV *best_mv,