Merge "Removing redundant mvsadcost local variables."
This commit is contained in:
commit
908e1218cd
@ -66,7 +66,7 @@ int vp9_init_search_range(VP9_COMP *cpi, int size) {
|
||||
}
|
||||
|
||||
static INLINE int mv_cost(const MV *mv,
|
||||
const int *joint_cost, int *comp_cost[2]) {
|
||||
const int *joint_cost, int *const comp_cost[2]) {
|
||||
return joint_cost[vp9_get_mv_joint(mv)] +
|
||||
comp_cost[0][mv->row] + comp_cost[1][mv->col];
|
||||
}
|
||||
@ -90,14 +90,13 @@ static int mv_err_cost(const MV *mv, const MV *ref,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mvsad_err_cost(const MV *mv, const MV *ref,
|
||||
const int *mvjsadcost, int *mvsadcost[2],
|
||||
static int mvsad_err_cost(const MACROBLOCK *x, const MV *mv, const MV *ref,
|
||||
int error_per_bit) {
|
||||
if (mvsadcost) {
|
||||
if (x->nmvsadcost) {
|
||||
const MV diff = { mv->row - ref->row,
|
||||
mv->col - ref->col };
|
||||
return ROUND_POWER_OF_TWO(mv_cost(&diff, mvjsadcost, mvsadcost) *
|
||||
error_per_bit, 8);
|
||||
return ROUND_POWER_OF_TWO(mv_cost(&diff, x->nmvjointsadcost,
|
||||
x->nmvsadcost) * error_per_bit, 8);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -478,8 +477,7 @@ static INLINE int is_mv_in(const MACROBLOCK *x, const MV *mv) {
|
||||
{\
|
||||
if (thissad < bestsad) {\
|
||||
if (use_mvcost) \
|
||||
thissad += mvsad_err_cost(&this_mv, &fcenter_mv, \
|
||||
mvjsadcost, mvsadcost, sad_per_bit);\
|
||||
thissad += mvsad_err_cost(x, &this_mv, &fcenter_mv, sad_per_bit);\
|
||||
if (thissad < bestsad) {\
|
||||
bestsad = thissad;\
|
||||
best_site = i;\
|
||||
@ -519,9 +517,6 @@ static int vp9_pattern_search(const MACROBLOCK *x,
|
||||
int k = -1;
|
||||
const MV fcenter_mv = {center_mv->row >> 3, center_mv->col >> 3};
|
||||
int best_init_s = search_param_to_steps[search_param];
|
||||
const int *const mvjsadcost = x->nmvjointsadcost;
|
||||
int *mvsadcost[2] = {x->nmvsadcost[0], x->nmvsadcost[1]};
|
||||
|
||||
// adjust ref_mv to make sure it is within MV range
|
||||
clamp_mv(ref_mv, x->mv_col_min, x->mv_col_max, x->mv_row_min, x->mv_row_max);
|
||||
br = ref_mv->row;
|
||||
@ -530,8 +525,8 @@ static int vp9_pattern_search(const MACROBLOCK *x,
|
||||
// Work out the start point for the search
|
||||
bestsad = vfp->sdf(what->buf, what->stride,
|
||||
get_buf_from_mv(in_what, ref_mv), in_what->stride,
|
||||
0x7fffffff) + mvsad_err_cost(ref_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
0x7fffffff) + mvsad_err_cost(x, ref_mv, &fcenter_mv,
|
||||
sad_per_bit);
|
||||
|
||||
// Search all possible scales upto the search param around the center point
|
||||
// pick the scale of the point that is best as the starting scale of
|
||||
@ -891,10 +886,6 @@ int vp9_full_range_search_c(const MACROBLOCK *x, MV *ref_mv, MV *best_mv,
|
||||
|
||||
unsigned int thissad;
|
||||
const MV fcenter_mv = {center_mv->row >> 3, center_mv->col >> 3};
|
||||
|
||||
const int *mvjsadcost = x->nmvjointsadcost;
|
||||
int *mvsadcost[2] = {x->nmvsadcost[0], x->nmvsadcost[1]};
|
||||
|
||||
int tr, tc;
|
||||
int best_tr = 0;
|
||||
int best_tc = 0;
|
||||
@ -916,8 +907,7 @@ int vp9_full_range_search_c(const MACROBLOCK *x, MV *ref_mv, MV *best_mv,
|
||||
|
||||
// Check the starting position
|
||||
bestsad = fn_ptr->sdf(what, what_stride, in_what, in_what_stride, 0x7fffffff)
|
||||
+ mvsad_err_cost(best_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
+ mvsad_err_cost(x, best_mv, &fcenter_mv, sad_per_bit);
|
||||
|
||||
start_row = MAX(-range, x->mv_row_min - ref_row);
|
||||
start_col = MAX(-range, x->mv_col_min - ref_col);
|
||||
@ -938,8 +928,7 @@ int vp9_full_range_search_c(const MACROBLOCK *x, MV *ref_mv, MV *best_mv,
|
||||
if (sad_array[i] < bestsad) {
|
||||
const MV this_mv = {ref_row + tr, ref_col + tc + i};
|
||||
thissad = sad_array[i] +
|
||||
mvsad_err_cost(&this_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
mvsad_err_cost(x, &this_mv, &fcenter_mv, sad_per_bit);
|
||||
if (thissad < bestsad) {
|
||||
bestsad = thissad;
|
||||
best_tr = tr;
|
||||
@ -955,8 +944,7 @@ int vp9_full_range_search_c(const MACROBLOCK *x, MV *ref_mv, MV *best_mv,
|
||||
|
||||
if (thissad < bestsad) {
|
||||
const MV this_mv = {ref_row + tr, ref_col + tc + i};
|
||||
thissad += mvsad_err_cost(&this_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
thissad += mvsad_err_cost(x, &this_mv, &fcenter_mv, sad_per_bit);
|
||||
|
||||
if (thissad < bestsad) {
|
||||
bestsad = thissad;
|
||||
@ -988,8 +976,6 @@ int vp9_diamond_search_sad_c(const MACROBLOCK *x,
|
||||
const search_site *const ss = &x->ss[search_param * x->searches_per_step];
|
||||
const int tot_steps = (x->ss_count / x->searches_per_step) - search_param;
|
||||
const MV fcenter_mv = {center_mv->row >> 3, center_mv->col >> 3};
|
||||
const int *mvjsadcost = x->nmvjointsadcost;
|
||||
int *mvsadcost[2] = {x->nmvsadcost[0], x->nmvsadcost[1]};
|
||||
const uint8_t *best_address, *in_what_ref;
|
||||
int best_sad = INT_MAX;
|
||||
int best_site = 0;
|
||||
@ -1005,7 +991,7 @@ int vp9_diamond_search_sad_c(const MACROBLOCK *x,
|
||||
// Check the starting position
|
||||
best_sad = fn_ptr->sdf(what->buf, what->stride,
|
||||
best_address, in_what->stride, 0x7fffffff) +
|
||||
mvsad_err_cost(best_mv, &fcenter_mv, mvjsadcost, mvsadcost, sad_per_bit);
|
||||
mvsad_err_cost(x, best_mv, &fcenter_mv, sad_per_bit);
|
||||
|
||||
i = 1;
|
||||
|
||||
@ -1018,8 +1004,7 @@ int vp9_diamond_search_sad_c(const MACROBLOCK *x,
|
||||
best_address + ss[i].offset, in_what->stride,
|
||||
best_sad);
|
||||
if (sad < best_sad) {
|
||||
sad += mvsad_err_cost(&mv, &fcenter_mv, mvjsadcost, mvsadcost,
|
||||
sad_per_bit);
|
||||
sad += mvsad_err_cost(x, &mv, &fcenter_mv, sad_per_bit);
|
||||
if (sad < best_sad) {
|
||||
best_sad = sad;
|
||||
best_site = i;
|
||||
@ -1044,8 +1029,7 @@ int vp9_diamond_search_sad_c(const MACROBLOCK *x,
|
||||
best_address + ss[best_site].offset,
|
||||
in_what->stride, best_sad);
|
||||
if (sad < best_sad) {
|
||||
sad += mvsad_err_cost(&this_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
sad += mvsad_err_cost(x, &this_mv, &fcenter_mv, sad_per_bit);
|
||||
if (sad < best_sad) {
|
||||
best_sad = sad;
|
||||
best_mv->row += ss[best_site].mv.row;
|
||||
@ -1095,10 +1079,6 @@ int vp9_diamond_search_sadx4(const MACROBLOCK *x,
|
||||
const int tot_steps = (x->ss_count / x->searches_per_step) - search_param;
|
||||
|
||||
const MV fcenter_mv = {center_mv->row >> 3, center_mv->col >> 3};
|
||||
|
||||
const int *mvjsadcost = x->nmvjointsadcost;
|
||||
int *mvsadcost[2] = {x->nmvsadcost[0], x->nmvsadcost[1]};
|
||||
|
||||
clamp_mv(ref_mv, x->mv_col_min, x->mv_col_max, x->mv_row_min, x->mv_row_max);
|
||||
ref_row = ref_mv->row;
|
||||
ref_col = ref_mv->col;
|
||||
@ -1112,8 +1092,7 @@ int vp9_diamond_search_sadx4(const MACROBLOCK *x,
|
||||
|
||||
// Check the starting position
|
||||
bestsad = fn_ptr->sdf(what, what_stride, in_what, in_what_stride, 0x7fffffff)
|
||||
+ mvsad_err_cost(best_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
+ mvsad_err_cost(x, best_mv, &fcenter_mv, sad_per_bit);
|
||||
|
||||
i = 1;
|
||||
|
||||
@ -1146,9 +1125,8 @@ int vp9_diamond_search_sadx4(const MACROBLOCK *x,
|
||||
if (sad_array[t] < bestsad) {
|
||||
const MV this_mv = {best_mv->row + ss[i].mv.row,
|
||||
best_mv->col + ss[i].mv.col};
|
||||
sad_array[t] += mvsad_err_cost(&this_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
|
||||
sad_array[t] += mvsad_err_cost(x, &this_mv, &fcenter_mv,
|
||||
sad_per_bit);
|
||||
if (sad_array[t] < bestsad) {
|
||||
bestsad = sad_array[t];
|
||||
best_site = i;
|
||||
@ -1168,9 +1146,7 @@ int vp9_diamond_search_sadx4(const MACROBLOCK *x,
|
||||
in_what_stride, bestsad);
|
||||
|
||||
if (thissad < bestsad) {
|
||||
thissad += mvsad_err_cost(&this_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
|
||||
thissad += mvsad_err_cost(x, &this_mv, &fcenter_mv, sad_per_bit);
|
||||
if (thissad < bestsad) {
|
||||
bestsad = thissad;
|
||||
best_site = i;
|
||||
@ -1289,12 +1265,10 @@ int vp9_full_search_sad_c(const MACROBLOCK *x, const MV *ref_mv,
|
||||
const int row_max = MIN(ref_mv->row + distance, x->mv_row_max);
|
||||
const int col_min = MAX(ref_mv->col - distance, x->mv_col_min);
|
||||
const int col_max = MIN(ref_mv->col + distance, x->mv_col_max);
|
||||
const int *mvjsadcost = x->nmvjointsadcost;
|
||||
int *mvsadcost[2] = {x->nmvsadcost[0], x->nmvsadcost[1]};
|
||||
const MV fcenter_mv = {center_mv->row >> 3, center_mv->col >> 3};
|
||||
int best_sad = fn_ptr->sdf(what->buf, what->stride,
|
||||
get_buf_from_mv(in_what, ref_mv), in_what->stride, 0x7fffffff) +
|
||||
mvsad_err_cost(ref_mv, &fcenter_mv, mvjsadcost, mvsadcost, sad_per_bit);
|
||||
mvsad_err_cost(x, ref_mv, &fcenter_mv, sad_per_bit);
|
||||
*best_mv = *ref_mv;
|
||||
|
||||
for (r = row_min; r < row_max; ++r) {
|
||||
@ -1302,9 +1276,7 @@ int vp9_full_search_sad_c(const MACROBLOCK *x, const MV *ref_mv,
|
||||
const MV mv = {r, c};
|
||||
const int sad = fn_ptr->sdf(what->buf, what->stride,
|
||||
get_buf_from_mv(in_what, &mv), in_what->stride, best_sad) +
|
||||
mvsad_err_cost(&mv, &fcenter_mv, mvjsadcost, mvsadcost,
|
||||
sad_per_bit);
|
||||
|
||||
mvsad_err_cost(x, &mv, &fcenter_mv, sad_per_bit);
|
||||
if (sad < best_sad) {
|
||||
best_sad = sad;
|
||||
*best_mv = mv;
|
||||
@ -1338,8 +1310,6 @@ int vp9_full_search_sadx3(const MACROBLOCK *x, const MV *ref_mv,
|
||||
const int col_max = MIN(ref_col + distance, x->mv_col_max);
|
||||
unsigned int sad_array[3];
|
||||
const MV fcenter_mv = {center_mv->row >> 3, center_mv->col >> 3};
|
||||
const int *mvjsadcost = x->nmvjointsadcost;
|
||||
int *mvsadcost[2] = {x->nmvsadcost[0], x->nmvsadcost[1]};
|
||||
|
||||
// Work out the mid point for the search
|
||||
const uint8_t *bestaddress = &in_what[ref_row * in_what_stride + ref_col];
|
||||
@ -1350,8 +1320,7 @@ int vp9_full_search_sadx3(const MACROBLOCK *x, const MV *ref_mv,
|
||||
// Baseline value at the centre
|
||||
bestsad = fn_ptr->sdf(what, what_stride,
|
||||
bestaddress, in_what_stride, 0x7fffffff)
|
||||
+ mvsad_err_cost(best_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
+ mvsad_err_cost(x, best_mv, &fcenter_mv, sad_per_bit);
|
||||
|
||||
for (r = row_min; r < row_max; r++) {
|
||||
const uint8_t *check_here = &in_what[r * in_what_stride + col_min];
|
||||
@ -1368,9 +1337,7 @@ int vp9_full_search_sadx3(const MACROBLOCK *x, const MV *ref_mv,
|
||||
|
||||
if (thissad < bestsad) {
|
||||
this_mv.col = c;
|
||||
thissad += mvsad_err_cost(&this_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
|
||||
thissad += mvsad_err_cost(x, &this_mv, &fcenter_mv, sad_per_bit);
|
||||
if (thissad < bestsad) {
|
||||
bestsad = thissad;
|
||||
best_mv->row = r;
|
||||
@ -1388,9 +1355,7 @@ int vp9_full_search_sadx3(const MACROBLOCK *x, const MV *ref_mv,
|
||||
|
||||
if (thissad < bestsad) {
|
||||
this_mv.col = c;
|
||||
thissad += mvsad_err_cost(&this_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
|
||||
thissad += mvsad_err_cost(x, &this_mv, &fcenter_mv, sad_per_bit);
|
||||
if (thissad < bestsad) {
|
||||
bestsad = thissad;
|
||||
best_mv->row = r;
|
||||
@ -1430,9 +1395,6 @@ int vp9_full_search_sadx8(const MACROBLOCK *x, const MV *ref_mv,
|
||||
unsigned int sad_array[3];
|
||||
const MV fcenter_mv = {center_mv->row >> 3, center_mv->col >> 3};
|
||||
|
||||
const int *mvjsadcost = x->nmvjointsadcost;
|
||||
int *mvsadcost[2] = {x->nmvsadcost[0], x->nmvsadcost[1]};
|
||||
|
||||
// Work out the mid point for the search
|
||||
const uint8_t *bestaddress = &in_what[ref_row * in_what_stride + ref_col];
|
||||
|
||||
@ -1442,8 +1404,7 @@ int vp9_full_search_sadx8(const MACROBLOCK *x, const MV *ref_mv,
|
||||
// Baseline value at the center
|
||||
bestsad = fn_ptr->sdf(what, what_stride,
|
||||
bestaddress, in_what_stride, 0x7fffffff)
|
||||
+ mvsad_err_cost(best_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
+ mvsad_err_cost(x, best_mv, &fcenter_mv, sad_per_bit);
|
||||
|
||||
for (r = row_min; r < row_max; r++) {
|
||||
const uint8_t *check_here = &in_what[r * in_what_stride + col_min];
|
||||
@ -1460,9 +1421,7 @@ int vp9_full_search_sadx8(const MACROBLOCK *x, const MV *ref_mv,
|
||||
|
||||
if (thissad < bestsad) {
|
||||
this_mv.col = c;
|
||||
thissad += mvsad_err_cost(&this_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
|
||||
thissad += mvsad_err_cost(x, &this_mv, &fcenter_mv, sad_per_bit);
|
||||
if (thissad < bestsad) {
|
||||
bestsad = thissad;
|
||||
best_mv->row = r;
|
||||
@ -1485,9 +1444,7 @@ int vp9_full_search_sadx8(const MACROBLOCK *x, const MV *ref_mv,
|
||||
|
||||
if (thissad < bestsad) {
|
||||
this_mv.col = c;
|
||||
thissad += mvsad_err_cost(&this_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
|
||||
thissad += mvsad_err_cost(x, &this_mv, &fcenter_mv, sad_per_bit);
|
||||
if (thissad < bestsad) {
|
||||
bestsad = thissad;
|
||||
best_mv->row = r;
|
||||
@ -1506,9 +1463,7 @@ int vp9_full_search_sadx8(const MACROBLOCK *x, const MV *ref_mv,
|
||||
|
||||
if (thissad < bestsad) {
|
||||
this_mv.col = c;
|
||||
thissad += mvsad_err_cost(&this_mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, sad_per_bit);
|
||||
|
||||
thissad += mvsad_err_cost(x, &this_mv, &fcenter_mv, sad_per_bit);
|
||||
if (thissad < bestsad) {
|
||||
bestsad = thissad;
|
||||
best_mv->row = r;
|
||||
@ -1533,13 +1488,10 @@ int vp9_refining_search_sad_c(const MACROBLOCK *x,
|
||||
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};
|
||||
const int *mvjsadcost = x->nmvjointsadcost;
|
||||
int *mvsadcost[2] = {x->nmvsadcost[0], x->nmvsadcost[1]};
|
||||
|
||||
unsigned int best_sad = fn_ptr->sdf(what->buf, what->stride,
|
||||
get_buf_from_mv(in_what, ref_mv),
|
||||
in_what->stride, 0x7fffffff) +
|
||||
mvsad_err_cost(ref_mv, &fcenter_mv, mvjsadcost, mvsadcost, error_per_bit);
|
||||
mvsad_err_cost(x, ref_mv, &fcenter_mv, error_per_bit);
|
||||
int i, j;
|
||||
|
||||
for (i = 0; i < search_range; i++) {
|
||||
@ -1552,8 +1504,7 @@ int vp9_refining_search_sad_c(const MACROBLOCK *x,
|
||||
unsigned int sad = fn_ptr->sdf(what->buf, what->stride,
|
||||
get_buf_from_mv(in_what, &mv), in_what->stride, best_sad);
|
||||
if (sad < best_sad) {
|
||||
sad += mvsad_err_cost(&mv, &fcenter_mv, mvjsadcost, mvsadcost,
|
||||
error_per_bit);
|
||||
sad += mvsad_err_cost(x, &mv, &fcenter_mv, error_per_bit);
|
||||
if (sad < best_sad) {
|
||||
best_sad = sad;
|
||||
best_site = j;
|
||||
@ -1582,12 +1533,10 @@ int vp9_refining_search_sadx4(const MACROBLOCK *x,
|
||||
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};
|
||||
const int *mvjsadcost = x->nmvjointsadcost;
|
||||
int *mvsadcost[2] = {x->nmvsadcost[0], x->nmvsadcost[1]};
|
||||
const uint8_t *best_address = get_buf_from_mv(in_what, ref_mv);
|
||||
unsigned int best_sad = fn_ptr->sdf(what->buf, what->stride, best_address,
|
||||
in_what->stride, 0x7fffffff) +
|
||||
mvsad_err_cost(ref_mv, &fcenter_mv, mvjsadcost, mvsadcost, error_per_bit);
|
||||
mvsad_err_cost(x, ref_mv, &fcenter_mv, error_per_bit);
|
||||
int i, j;
|
||||
|
||||
for (i = 0; i < search_range; i++) {
|
||||
@ -1612,9 +1561,7 @@ int vp9_refining_search_sadx4(const MACROBLOCK *x,
|
||||
if (sads[j] < best_sad) {
|
||||
const MV mv = {ref_mv->row + neighbors[j].row,
|
||||
ref_mv->col + neighbors[j].col};
|
||||
sads[j] += mvsad_err_cost(&mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, error_per_bit);
|
||||
|
||||
sads[j] += mvsad_err_cost(x, &mv, &fcenter_mv, error_per_bit);
|
||||
if (sads[j] < best_sad) {
|
||||
best_sad = sads[j];
|
||||
best_site = j;
|
||||
@ -1631,9 +1578,7 @@ int vp9_refining_search_sadx4(const MACROBLOCK *x,
|
||||
get_buf_from_mv(in_what, &mv),
|
||||
in_what->stride, best_sad);
|
||||
if (sad < best_sad) {
|
||||
sad += mvsad_err_cost(&mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, error_per_bit);
|
||||
|
||||
sad += mvsad_err_cost(x, &mv, &fcenter_mv, error_per_bit);
|
||||
if (sad < best_sad) {
|
||||
best_sad = sad;
|
||||
best_site = j;
|
||||
@ -1669,12 +1614,10 @@ int vp9_refining_search_8p_c(const MACROBLOCK *x,
|
||||
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};
|
||||
const int *mvjsadcost = x->nmvjointsadcost;
|
||||
int *mvsadcost[2] = {x->nmvsadcost[0], x->nmvsadcost[1]};
|
||||
unsigned int best_sad = fn_ptr->sdaf(what->buf, what->stride,
|
||||
get_buf_from_mv(in_what, ref_mv), in_what->stride,
|
||||
second_pred, 0x7fffffff) +
|
||||
mvsad_err_cost(ref_mv, &fcenter_mv, mvjsadcost, mvsadcost, error_per_bit);
|
||||
mvsad_err_cost(x, ref_mv, &fcenter_mv, error_per_bit);
|
||||
int i, j;
|
||||
|
||||
for (i = 0; i < search_range; ++i) {
|
||||
@ -1689,8 +1632,7 @@ int vp9_refining_search_8p_c(const MACROBLOCK *x,
|
||||
get_buf_from_mv(in_what, &mv), in_what->stride,
|
||||
second_pred, best_sad);
|
||||
if (sad < best_sad) {
|
||||
sad += mvsad_err_cost(&mv, &fcenter_mv,
|
||||
mvjsadcost, mvsadcost, error_per_bit);
|
||||
sad += mvsad_err_cost(x, &mv, &fcenter_mv, error_per_bit);
|
||||
if (sad < best_sad) {
|
||||
best_sad = sad;
|
||||
best_site = j;
|
||||
|
Loading…
Reference in New Issue
Block a user