Remove marco MVC in mcomp.c
Removed MVC so that mv_err_cost() is always called while calculating the mv cost. Change-Id: I28123e05fbfc2352128e266c985d2ab093940071
This commit is contained in:
@@ -138,17 +138,6 @@ void vp9_init3smotion_compensation(search_site_config *cfg, int stride) {
|
|||||||
cfg->total_steps = ss_count / cfg->searches_per_step;
|
cfg->total_steps = ss_count / cfg->searches_per_step;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Estimated (square) error cost of a motion vector (r,c). The 14 scale comes
|
|
||||||
* from the same math as in mv_err_cost(). */
|
|
||||||
#define MVC(r, c) \
|
|
||||||
(mvcost \
|
|
||||||
? ((unsigned)(mvjcost[((r) != rr) * 2 + ((c) != rc)] + \
|
|
||||||
mvcost[0][((r)-rr)] + mvcost[1][((c)-rc)]) * \
|
|
||||||
error_per_bit + \
|
|
||||||
8192) >> \
|
|
||||||
14 \
|
|
||||||
: 0)
|
|
||||||
|
|
||||||
// convert motion vector component to offset for sv[a]f calc
|
// convert motion vector component to offset for sv[a]f calc
|
||||||
static INLINE int sp(int x) { return x & 7; }
|
static INLINE int sp(int x) { return x & 7; }
|
||||||
|
|
||||||
@@ -161,6 +150,8 @@ static INLINE const uint8_t *pre(const uint8_t *buf, int stride, int r, int c) {
|
|||||||
#define CHECK_BETTER(v, r, c) \
|
#define CHECK_BETTER(v, r, c) \
|
||||||
if (c >= minc && c <= maxc && r >= minr && r <= maxr) { \
|
if (c >= minc && c <= maxc && r >= minr && r <= maxr) { \
|
||||||
int64_t tmpmse; \
|
int64_t tmpmse; \
|
||||||
|
const MV mv = { r, c }; \
|
||||||
|
const MV ref_mv = { rr, rc }; \
|
||||||
if (second_pred == NULL) { \
|
if (second_pred == NULL) { \
|
||||||
thismse = vfp->svf(pre(y, y_stride, r, c), y_stride, sp(c), sp(r), z, \
|
thismse = vfp->svf(pre(y, y_stride, r, c), y_stride, sp(c), sp(r), z, \
|
||||||
src_stride, &sse); \
|
src_stride, &sse); \
|
||||||
@@ -169,7 +160,7 @@ static INLINE const uint8_t *pre(const uint8_t *buf, int stride, int r, int c) {
|
|||||||
src_stride, &sse, second_pred); \
|
src_stride, &sse, second_pred); \
|
||||||
} \
|
} \
|
||||||
tmpmse = thismse; \
|
tmpmse = thismse; \
|
||||||
tmpmse += MVC(r, c); \
|
tmpmse += mv_err_cost(&mv, &ref_mv, mvjcost, mvcost, error_per_bit); \
|
||||||
if (tmpmse >= INT_MAX) { \
|
if (tmpmse >= INT_MAX) { \
|
||||||
v = INT_MAX; \
|
v = INT_MAX; \
|
||||||
} else if ((v = (uint32_t)tmpmse) < besterr) { \
|
} else if ((v = (uint32_t)tmpmse) < besterr) { \
|
||||||
@@ -186,13 +177,16 @@ static INLINE const uint8_t *pre(const uint8_t *buf, int stride, int r, int c) {
|
|||||||
/* checks if (r, c) has better score than previous best */
|
/* checks if (r, c) has better score than previous best */
|
||||||
#define CHECK_BETTER(v, r, c) \
|
#define CHECK_BETTER(v, r, c) \
|
||||||
if (c >= minc && c <= maxc && r >= minr && r <= maxr) { \
|
if (c >= minc && c <= maxc && r >= minr && r <= maxr) { \
|
||||||
|
const MV mv = { r, c }; \
|
||||||
|
const MV ref_mv = { rr, rc }; \
|
||||||
if (second_pred == NULL) \
|
if (second_pred == NULL) \
|
||||||
thismse = vfp->svf(pre(y, y_stride, r, c), y_stride, sp(c), sp(r), z, \
|
thismse = vfp->svf(pre(y, y_stride, r, c), y_stride, sp(c), sp(r), z, \
|
||||||
src_stride, &sse); \
|
src_stride, &sse); \
|
||||||
else \
|
else \
|
||||||
thismse = vfp->svaf(pre(y, y_stride, r, c), y_stride, sp(c), sp(r), z, \
|
thismse = vfp->svaf(pre(y, y_stride, r, c), y_stride, sp(c), sp(r), z, \
|
||||||
src_stride, &sse, second_pred); \
|
src_stride, &sse, second_pred); \
|
||||||
if ((v = MVC(r, c) + thismse) < besterr) { \
|
if ((v = mv_err_cost(&mv, &ref_mv, mvjcost, mvcost, error_per_bit) + \
|
||||||
|
thismse) < besterr) { \
|
||||||
besterr = v; \
|
besterr = v; \
|
||||||
br = r; \
|
br = r; \
|
||||||
bc = c; \
|
bc = c; \
|
||||||
@@ -776,7 +770,6 @@ uint32_t vp9_find_best_sub_pixel_tree(
|
|||||||
return besterr;
|
return besterr;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef MVC
|
|
||||||
#undef CHECK_BETTER
|
#undef CHECK_BETTER
|
||||||
|
|
||||||
static INLINE int check_bounds(const MvLimits *mv_limits, int row, int col,
|
static INLINE int check_bounds(const MvLimits *mv_limits, int row, int col,
|
||||||
|
|||||||
Reference in New Issue
Block a user