Properly set pointers in masked variance functions Align the address pointers used in the masked variance functions. Change-Id: I6bec5ee10fdb718f88083d11f0031f86219ddaa1
diff --git a/aom_dsp/variance.c b/aom_dsp/variance.c index ec294a9..cbe756e 100644 --- a/aom_dsp/variance.c +++ b/aom_dsp/variance.c
@@ -367,8 +367,9 @@ int ref_stride, int subpel_search) { int i, j; - aom_upsampled_pred(xd, cm, mi_row, mi_col, mv, comp_pred, width, height, - subpel_x_q3, subpel_y_q3, ref, ref_stride, subpel_search); + aom_upsampled_pred_c(xd, cm, mi_row, mi_col, mv, comp_pred, width, height, + subpel_x_q3, subpel_y_q3, ref, ref_stride, + subpel_search); for (i = 0; i < height; i++) { for (j = 0; j < width; j++) { comp_pred[j] = ROUND_POWER_OF_TWO(comp_pred[j] + pred[j], 1);
diff --git a/av1/common/reconinter.c b/av1/common/reconinter.c index 1e6b481..98e64c1 100644 --- a/av1/common/reconinter.c +++ b/av1/common/reconinter.c
@@ -713,11 +713,11 @@ } #if !CONFIG_REMOVE_DIST_WTD_COMP -static void dist_wtd_comp_weight_assign(const AV1_COMMON *cm, - const MB_MODE_INFO *mbmi, int order_idx, - int *fwd_offset, int *bck_offset, - int *use_dist_wtd_comp_avg, - int is_compound) { +void av1_dist_wtd_comp_weight_assign(const AV1_COMMON *cm, + const MB_MODE_INFO *mbmi, int order_idx, + int *fwd_offset, int *bck_offset, + int *use_dist_wtd_comp_avg, + int is_compound) { assert(fwd_offset != NULL && bck_offset != NULL); if (!is_compound || mbmi->compound_idx) { *fwd_offset = 8; @@ -924,7 +924,7 @@ ref, plane, xd->tmp_conv_dst, MAX_SB_SIZE, is_compound, xd->bd); #if !CONFIG_REMOVE_DIST_WTD_COMP - dist_wtd_comp_weight_assign( + av1_dist_wtd_comp_weight_assign( cm, mi, 0, &inter_pred_params.conv_params.fwd_offset, &inter_pred_params.conv_params.bck_offset, &inter_pred_params.conv_params.use_dist_wtd_comp_avg, is_compound);
diff --git a/av1/common/reconinter.h b/av1/common/reconinter.h index bbda4d2..be1f2fc 100644 --- a/av1/common/reconinter.h +++ b/av1/common/reconinter.h
@@ -378,6 +378,14 @@ return av1_wedge_params_lookup[sb_type].masks[wedge_sign][wedge_index]; } +#if !CONFIG_REMOVE_DIST_WTD_COMP +void av1_dist_wtd_comp_weight_assign(const AV1_COMMON *cm, + const MB_MODE_INFO *mbmi, int order_idx, + int *fwd_offset, int *bck_offset, + int *use_dist_wtd_comp_avg, + int is_compound); +#endif // !CONFIG_REMOVE_DIST_WTD_COMP + const uint8_t *av1_get_compound_type_mask( const INTERINTER_COMPOUND_DATA *const comp_data, BLOCK_SIZE sb_type);
diff --git a/av1/encoder/mcomp.c b/av1/encoder/mcomp.c index 115cc49..70cfbf7 100644 --- a/av1/encoder/mcomp.c +++ b/av1/encoder/mcomp.c
@@ -641,9 +641,9 @@ int bestsme; if (mask) { - bestsme = vfp->msvf(src_buf, src_stride, 0, 0, - get_buf_from_fullmv(ref, this_mv), ref_stride, - second_pred, mask, mask_stride, invert_mask, &unused); + bestsme = vfp->msvf(get_buf_from_fullmv(ref, this_mv), ref_stride, 0, 0, + src_buf, src_stride, second_pred, mask, mask_stride, + invert_mask, &unused); } else if (second_pred) { bestsme = vfp->svaf(get_buf_from_fullmv(ref, this_mv), ref_stride, 0, 0, src_buf, src_stride, &unused, second_pred); @@ -3644,9 +3644,9 @@ const MV mv = get_mv_from_fullmv(&best_mv); unsigned int unused; - return vfp->msvf(src->buf, src->stride, 0, 0, - get_buf_from_fullmv(pre, &best_mv), pre->stride, second_pred, - mask, mask_stride, invert_mask, &unused) + + return vfp->msvf(get_buf_from_fullmv(pre, &best_mv), pre->stride, 0, 0, + src->buf, src->stride, second_pred, mask, mask_stride, + invert_mask, &unused) + mv_err_cost_(&mv, mv_cost_params); }
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c index f6cd9a7..76573b8 100644 --- a/av1/encoder/rdopt.c +++ b/av1/encoder/rdopt.c
@@ -1053,8 +1053,8 @@ const BLOCK_SIZE bsize, int_mv *cur_mv, int *const rate_mv, HandleInterModeArgs *const args, inter_mode_info *mode_info) { - const MACROBLOCKD *const xd = &x->e_mbd; - const MB_MODE_INFO *const mbmi = xd->mi[0]; + MACROBLOCKD *const xd = &x->e_mbd; + MB_MODE_INFO *const mbmi = xd->mi[0]; const int is_comp_pred = has_second_ref(mbmi); const PREDICTION_MODE this_mode = mbmi->mode; const int refs[2] = { mbmi->ref_frame[0], @@ -1078,7 +1078,21 @@ // aomenc1 if (cpi->sf.inter_sf.comp_inter_joint_search_thresh <= bsize || !valid_mv0 || !valid_mv1) { + mbmi->compound_idx = 1; +#if !CONFIG_REMOVE_DIST_WTD_COMP + InterPredParams inter_pred_params; + av1_dist_wtd_comp_weight_assign( + &cpi->common, mbmi, 0, &inter_pred_params.conv_params.fwd_offset, + &inter_pred_params.conv_params.bck_offset, + &inter_pred_params.conv_params.use_dist_wtd_comp_avg, 1); + uint8_t mask_value = inter_pred_params.conv_params.fwd_offset * 4; + memset(xd->seg_mask, mask_value, sizeof(xd->seg_mask)); + av1_joint_motion_search(cpi, x, bsize, cur_mv, xd->seg_mask, + block_size_wide[bsize], rate_mv); +#else + // uint8_t mask_value = 32; av1_joint_motion_search(cpi, x, bsize, cur_mv, NULL, 0, rate_mv); +#endif // !CONFIG_REMOVE_DIST_WTD_COMP } else { *rate_mv = 0; for (int i = 0; i < 2; ++i) {