]> granicus.if.org Git - libvpx/commitdiff
New flags for masked compound inter-inter/inter-intra
authorYue Chen <yuec@google.com>
Wed, 4 Sep 2013 00:15:25 +0000 (17:15 -0700)
committerYue Chen <yuec@google.com>
Wed, 4 Sep 2013 00:15:25 +0000 (17:15 -0700)
Masked inter-inter will be enabled when CONFIG_MASKED_INTERINTER is
on. Masked inter-intra will be enabled only when both
CONFIG_MASKED_INTERINTRA and CONFIG_INTERINTRA are on.

Change-Id: I57efcfe6a3ef2d53129ef703030366503dfa3762

25 files changed:
configure
vp9/common/vp9_blockd.h
vp9/common/vp9_entropymode.c
vp9/common/vp9_entropymode.h
vp9/common/vp9_onyxc_int.h
vp9/common/vp9_reconinter.c
vp9/common/vp9_reconinter.h
vp9/common/vp9_reconintra.c
vp9/common/vp9_reconintra.h
vp9/common/vp9_rtcd_defs.sh
vp9/common/vp9_sadmxn.h
vp9/common/vp9_subpelvar.h
vp9/decoder/vp9_decodemv.c
vp9/decoder/vp9_decodframe.c
vp9/encoder/vp9_bitstream.c
vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_mcomp.c
vp9/encoder/vp9_mcomp.h
vp9/encoder/vp9_onyx_if.c
vp9/encoder/vp9_onyx_int.h
vp9/encoder/vp9_ratectrl.c
vp9/encoder/vp9_rdopt.c
vp9/encoder/vp9_sad_c.c
vp9/encoder/vp9_variance.h
vp9/encoder/vp9_variance_c.c

index cf1ca20d52d3374b542ef1b5c121e367b731fd89..493c7e1cbcbf44c323a277f1cfe825dd00ba1974 100755 (executable)
--- a/configure
+++ b/configure
@@ -252,7 +252,8 @@ EXPERIMENT_LIST="
     alpha
     interintra
     filterintra
-    masked_compound
+    masked_interintra
+    masked_interinter
 "
 CONFIG_LIST="
     external_build
index 90d2f94fe7fc6364a4ecd919923b833e1a5f310e..d92b517d47e71cbf3c59cb4863c35ae5bd973af9 100644 (file)
@@ -164,7 +164,7 @@ static INLINE int is_interintra_allowed(BLOCK_SIZE_TYPE sb_type) {
   return ((sb_type >= BLOCK_8X8) && (sb_type < BLOCK_64X64));
 }
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
 #define MASK_BITS_SML_INTERINTRA   3
 #define MASK_BITS_MED_INTERINTRA   4
 #define MASK_BITS_BIG_INTERINTRA   5
@@ -182,7 +182,7 @@ static INLINE int get_mask_bits_interintra(BLOCK_SIZE_TYPE sb_type) {
 #endif
 #endif
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
 #define MASK_BITS_SML   3
 #define MASK_BITS_MED   4
 #define MASK_BITS_BIG   5
@@ -198,13 +198,13 @@ static inline int get_mask_bits(BLOCK_SIZE_TYPE sb_type) {
   else
     return MASK_BITS_BIG;
 }
-#endif  // CONFIG_MASKED_COMPOUND
+#endif
 
 typedef struct {
   MB_PREDICTION_MODE mode, uv_mode;
 #if CONFIG_INTERINTRA
   MB_PREDICTION_MODE interintra_mode, interintra_uv_mode;
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
   int interintra_mask_index;
   int interintra_uv_mask_index;
   int use_masked_interintra;
@@ -236,7 +236,7 @@ typedef struct {
 
   BLOCK_SIZE_TYPE sb_type;
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   int use_masked_compound;
   int mask_index;
 #endif
index e968c382b9c2b892b446e0d0e5a31b4c4a9206a8..aaac4d9060cb37e7d8743fedfe4273de3674fe09 100644 (file)
@@ -339,7 +339,7 @@ static const vp9_prob default_switchable_interp_prob[VP9_SWITCHABLE_FILTERS+1]
 static const vp9_prob default_interintra_prob[BLOCK_SIZE_TYPES] = {
   192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192
 };
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
 static const vp9_prob default_masked_interintra_prob[BLOCK_SIZE_TYPES] = {
 // 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180
   192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192
@@ -347,7 +347,7 @@ static const vp9_prob default_masked_interintra_prob[BLOCK_SIZE_TYPES] = {
 #endif
 #endif
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
 static const vp9_prob default_masked_interinter_prob[BLOCK_SIZE_TYPES] = {
     192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192
 };
@@ -366,14 +366,14 @@ void vp9_init_mbmode_probs(VP9_COMMON *cm) {
   vp9_copy(cm->fc.mbskip_probs, default_mbskip_probs);
 #if CONFIG_INTERINTRA
   vp9_copy(cm->fc.interintra_prob, default_interintra_prob);
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
   vp9_copy(cm->fc.masked_interintra_prob, default_masked_interintra_prob);
 #endif
 #endif
 #if CONFIG_FILTERINTRA
   vp9_copy(cm->fc.filterintra_prob, vp9_default_filterintra_prob);
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   vp9_copy(cm->fc.masked_compound_prob, default_masked_interinter_prob);
 #endif
 }
@@ -505,7 +505,7 @@ void vp9_adapt_mode_probs(VP9_COMMON *cm) {
         fc->interintra_prob[i] = update_ct2(pre_fc->interintra_prob[i],
                                             counts->interintra[i]);
     }
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
     if (cm->use_masked_interintra) {
       for (i = 0; i < BLOCK_SIZE_TYPES; ++i) {
         if (is_interintra_allowed(i) && get_mask_bits_interintra(i))
@@ -523,7 +523,7 @@ void vp9_adapt_mode_probs(VP9_COMMON *cm) {
       fc->filterintra_prob[i][j] = update_ct2(pre_fc->filterintra_prob[i][j],
                                               counts->filterintra[i][j]);
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   if (cm->use_masked_compound) {
     for (i = 0; i < BLOCK_SIZE_TYPES; ++i) {
       if (get_mask_bits(i))
index 4e6b9670b4f3c4c650e949c97bccb71f2cf41cb8..1c24d230ce6d1c4a64bd42481ef20de3d18aa168 100644 (file)
 #if CONFIG_INTERINTRA
 #define VP9_UPD_INTERINTRA_PROB 248
 #define SEPARATE_INTERINTRA_UV  0
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
 #define VP9_UPD_MASKED_INTERINTRA_PROB 248
 #endif
 #endif
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
 #define VP9_UPD_MASKED_COMPOUND_PROB 248
 #endif
 
index 2a72f620483896b75f5aaefc716cd30baca31a15..f9a7844e3d44175b750c240609d105d4932443d3 100644 (file)
@@ -55,14 +55,14 @@ typedef struct frame_contexts {
   nmv_context nmvc;
 #if CONFIG_INTERINTRA
   vp9_prob interintra_prob[BLOCK_SIZE_TYPES];
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
   vp9_prob masked_interintra_prob[BLOCK_SIZE_TYPES];
 #endif
 #endif
 #if CONFIG_FILTERINTRA
   vp9_prob filterintra_prob[TX_SIZES][VP9_INTRA_MODES];
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   vp9_prob masked_compound_prob[BLOCK_SIZE_TYPES];
 #endif
 } FRAME_CONTEXT;
@@ -86,14 +86,14 @@ typedef struct {
   nmv_context_counts mv;
 #if CONFIG_INTERINTRA
   unsigned int interintra[BLOCK_SIZE_TYPES][2];
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
   unsigned int masked_interintra[BLOCK_SIZE_TYPES][2];
 #endif
 #endif
 #if CONFIG_FILTERINTRA
   unsigned int filterintra[TX_SIZES][VP9_INTRA_MODES][2];
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   unsigned int masked_compound[BLOCK_SIZE_TYPES][2];
 #endif
 } FRAME_COUNTS;
@@ -228,12 +228,12 @@ typedef struct VP9Common {
 
 #if CONFIG_INTERINTRA
   int use_interintra;
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
   int use_masked_interintra;
 #endif
 #endif
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   int use_masked_compound;
 #endif
 
index fbba44721ec14adf1dbd02fdb2a4f08dde637f84..e34691d20e713498d71e6f9f7587540179153e98 100644 (file)
@@ -261,7 +261,7 @@ MV clamp_mv_to_umv_border_sb(const MV *src_mv,
   return clamped_mv;
 }
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
 #define MASK_WEIGHT_BITS 6
 
 static int get_masked_weight(int m) {
@@ -617,7 +617,7 @@ static void build_inter_predictors(int plane, int block,
                                                 xd->mb_to_bottom_edge);
     scale->set_scaled_offsets(scale, arg->y + y, arg->x + x);
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
     if (which_mv && xd->mode_info_context->mbmi.use_masked_compound) {
       uint8_t tmp_dst[4096];
       vp9_build_inter_predictor(pre, pre_stride,
@@ -638,7 +638,7 @@ static void build_inter_predictors(int plane, int block,
                               &res_mv, &xd->scale_factor[which_mv],
                               4 << pred_w, 4 << pred_h, which_mv,
                               &xd->subpix, MV_PRECISION_Q4);
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
     }
 #endif
   }
index c8200421c0144836f20bc8ce760aa22038a575bb..4c5002f2172073e7142aaecdbad35d1fbe9379c8 100644 (file)
@@ -107,7 +107,7 @@ static void set_scale_factors(MACROBLOCKD *xd, int ref0, int ref1,
 
 void vp9_setup_scale_factors(VP9_COMMON *cm, int i);
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
 void vp9_generate_masked_weight(int mask_index, BLOCK_SIZE_TYPE sb_type,
                               int h, int w, uint8_t *mask, int stride);
 void vp9_generate_hard_mask(int mask_index, BLOCK_SIZE_TYPE sb_type,
index ba9dfe3e32d57e355dbe1d34a817714af9b1d89d..19f3645f094f32afea4f081f55d57aa90d7d8699 100644 (file)
@@ -602,7 +602,7 @@ static void build_intra_predictors_for_2nd_block_interintra
   }
 }
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
 #define MASK_WEIGHT_BITS_INTERINTRA 6
 
 static int get_masked_weight_interintra(int m) {
@@ -888,7 +888,7 @@ void vp9_generate_hard_mask_interintra(int mask_index, BLOCK_SIZE_TYPE sb_type,
 #endif
 
 static void combine_interintra(MB_PREDICTION_MODE mode,
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
                                int use_masked_interintra,
                                int mask_index,
                                BLOCK_SIZE_TYPE bsize,
@@ -919,7 +919,7 @@ static void combine_interintra(MB_PREDICTION_MODE mode,
                     size == 8  ? 8 : 16);
   int i, j;
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
   uint8_t mask[4096];
   if (use_masked_interintra && get_mask_bits_interintra(bsize))
     vp9_generate_masked_weight_interintra(mask_index, bsize, bh, bw, mask, bw);
@@ -931,7 +931,7 @@ static void combine_interintra(MB_PREDICTION_MODE mode,
         for (j = 0; j < bw; ++j) {
           int k = i * interstride + j;
           int scale = weights1d[i * size_scale];
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
           int m = mask[i * bw + j];
           if (use_masked_interintra && get_mask_bits_interintra(bsize))
               interpred[k] = (intrapred[i * intrastride + j] * m +
@@ -954,7 +954,7 @@ static void combine_interintra(MB_PREDICTION_MODE mode,
         for (j = 0; j < bw; ++j) {
           int k = i * interstride + j;
           int scale = weights1d[j * size_scale];
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
           int m = mask[i * bw + j];
           if (use_masked_interintra && get_mask_bits_interintra(bsize))
               interpred[k] = (intrapred[i * intrastride + j] * m +
@@ -979,7 +979,7 @@ static void combine_interintra(MB_PREDICTION_MODE mode,
           int k = i * interstride + j;
           int scale = (weights1d[i * size_scale] * 3 +
                        weights1d[j * size_scale]) >> 2;
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
           int m = mask[i * bw + j];
           if (use_masked_interintra && get_mask_bits_interintra(bsize))
               interpred[k] = (intrapred[i * intrastride + j] * m +
@@ -1004,7 +1004,7 @@ static void combine_interintra(MB_PREDICTION_MODE mode,
           int k = i * interstride + j;
           int scale = (weights1d[j * size_scale] * 3 +
                        weights1d[i * size_scale]) >> 2;
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
           int m = mask[i * bw + j];
           if (use_masked_interintra && get_mask_bits_interintra(bsize))
               interpred[k] = (intrapred[i * intrastride + j] * m +
@@ -1027,7 +1027,7 @@ static void combine_interintra(MB_PREDICTION_MODE mode,
         for (j = 0; j < bw; ++j) {
           int k = i * interstride + j;
           int scale = weights1d[(i < j ? i : j) * size_scale];
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
           int m = mask[i * bw + j];
           if (use_masked_interintra && get_mask_bits_interintra(bsize))
               interpred[k] = (intrapred[i * intrastride + j] * m +
@@ -1051,7 +1051,7 @@ static void combine_interintra(MB_PREDICTION_MODE mode,
           int k = i * interstride + j;
           int scale = (weights1d[i * size_scale] +
                        weights1d[j * size_scale]) >> 1;
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
           int m = mask[i * bw + j];
           if (use_masked_interintra && get_mask_bits_interintra(bsize))
               interpred[k] = (intrapred[i * intrastride + j] * m +
@@ -1075,7 +1075,7 @@ static void combine_interintra(MB_PREDICTION_MODE mode,
       for (i = 0; i < bh; ++i) {
         for (j = 0; j < bw; ++j) {
           int k = i * interstride + j;
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
           int m = mask[i * bw + j];
           if (use_masked_interintra && get_mask_bits_interintra(bsize))
               interpred[k] = (intrapred[i * intrastride + j] * m +
@@ -1141,7 +1141,7 @@ void vp9_build_interintra_predictors_sby(MACROBLOCKD *xd,
       xd->mode_info_context->mbmi.interintra_mode, bw, bh,
       xd->up_available, xd->left_available, xd->right_available);
   combine_interintra(xd->mode_info_context->mbmi.interintra_mode,
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
                      xd->mode_info_context->mbmi.use_masked_interintra,
                      xd->mode_info_context->mbmi.interintra_mask_index,
                      bsize,
@@ -1169,14 +1169,14 @@ void vp9_build_interintra_predictors_sbuv(MACROBLOCKD *xd,
       xd->mode_info_context->mbmi.interintra_uv_mode, bw, bh,
       xd->up_available, xd->left_available, xd->right_available);
   combine_interintra(xd->mode_info_context->mbmi.interintra_uv_mode,
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
                      xd->mode_info_context->mbmi.use_masked_interintra,
                      xd->mode_info_context->mbmi.interintra_uv_mask_index,
                      bsize,
 #endif
                      upred, uvstride, uintrapredictor, bw, bw, bh);
   combine_interintra(xd->mode_info_context->mbmi.interintra_uv_mode,
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
                      xd->mode_info_context->mbmi.use_masked_interintra,
                      xd->mode_info_context->mbmi.interintra_uv_mask_index,
                      bsize,
index 493512de149c3a88c46c3a8acb09ebe466aaed32..31b1efa463616829af7a2b13add28ff5e8bf1f5b 100644 (file)
@@ -39,7 +39,7 @@ void vp9_build_interintra_predictors(MACROBLOCKD *xd,
                                      int ystride,
                                      int uvstride,
                                      BLOCK_SIZE_TYPE bsize);
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
 void vp9_generate_masked_weight_interintra(int mask_index,
                                            BLOCK_SIZE_TYPE sb_type,
                                            int h, int w,
index 4625f9c96ee38e106f2ef26fdf4dc701ed952737..e6ead00db43af31fd30b28b5a1aa1487bfcdcf52 100644 (file)
@@ -557,7 +557,7 @@ specialize vp9_sad4x8_avg $sse_x86inc
 prototype unsigned int vp9_sad4x4_avg "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad"
 specialize vp9_sad4x4_avg $sse_x86inc
 
-if [ "$CONFIG_MASKED_COMPOUND" = "yes" ]; then
+if [ "$CONFIG_MASKED_INTERINTER" = "yes" ] || ([ "$CONFIG_MASKED_INTERINTRA" = "yes" ] && [ "$CONFIG_INTERINTRA" = "yes" ]); then
 prototype int vp9_masked_diamond_search_sad "struct macroblock *x, uint8_t *mask, int mask_stride, union int_mv *ref_mv, union int_mv *best_mv, int search_param, int sad_per_bit, int *num00, struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, union int_mv *center_mv, int is_second"
 specialize vp9_masked_diamond_search_sad
 
index b0f5d94c31da4a4fba09cccb17284f15d6b418af..2bcb68e9e91802576109f12b456364da7e436fe8 100644 (file)
@@ -35,7 +35,8 @@ static INLINE unsigned int sad_mx_n_c(const uint8_t *src_ptr,
   return sad;
 }
 
-#if CONFIG_MASKED_COMPOUND
+#if ((CONFIG_MASKED_INTERINTRA && CONFIG_INTERINTRA) || \
+    CONFIG_MASKED_INTERINTER)
 static INLINE unsigned int masked_sad_mx_n_c(const uint8_t *src_ptr,
                                            int src_stride,
                                            const uint8_t *ref_ptr,
index 8c6307053bfb51a8e67ffa96e348d663afbe4101..d9e9b155df35d37abdce331c9aab9cd489337299 100644 (file)
@@ -39,7 +39,8 @@ static void variance(const uint8_t *src_ptr,
   }
 }
 
-#if CONFIG_MASKED_COMPOUND
+#if ((CONFIG_MASKED_INTERINTRA && CONFIG_INTERINTRA) || \
+    CONFIG_MASKED_INTERINTER)
 static void masked_variance(const uint8_t *src_ptr,
                             int  src_stride,
                             const uint8_t *ref_ptr,
index 3142c17b0458900daa3cc5eef674078d79b19a22..b28c9983761e4c77037a9bd33be9d5600effe23d 100644 (file)
@@ -511,7 +511,7 @@ static void read_inter_block_mode_info(VP9D_COMP *pbi, MODE_INFO *mi,
   uint8_t inter_mode_ctx;
   MV_REFERENCE_FRAME ref0, ref1;
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   mbmi->use_masked_compound = 0;
   mbmi->mask_index = MASK_NONE;
 #endif
@@ -564,7 +564,7 @@ static void read_inter_block_mode_info(VP9D_COMP *pbi, MODE_INFO *mi,
       mbmi->ref_frame[1] = (vp9_read(r, cm->fc.interintra_prob[bsize]) ?
                             INTRA_FRAME : NONE);
       cm->counts.interintra[bsize][mbmi->ref_frame[1] == INTRA_FRAME]++;
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
       mbmi->use_masked_interintra = 0;
 #endif
       if (mbmi->ref_frame[1] == INTRA_FRAME) {
@@ -578,7 +578,7 @@ static void read_inter_block_mode_info(VP9D_COMP *pbi, MODE_INFO *mi,
 #else
         mbmi->interintra_uv_mode = mbmi->interintra_mode;
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
         if (cm->use_masked_interintra && get_mask_bits_interintra(bsize)) {
           mbmi->use_masked_interintra = vp9_read(r,
                                           cm->fc.masked_interintra_prob[bsize]);
@@ -693,7 +693,7 @@ static void read_inter_block_mode_info(VP9D_COMP *pbi, MODE_INFO *mi,
         assert(!"Invalid inter mode value");
     }
   }
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
     mbmi->use_masked_compound = 0;
     if (pbi->common.use_masked_compound &&
         pbi->common.comp_pred_mode != SINGLE_PREDICTION_ONLY &&
@@ -741,7 +741,7 @@ static void read_comp_pred(VP9_COMMON *cm, vp9_reader *r) {
       if (vp9_read(r, VP9_MODE_UPDATE_PROB))
         vp9_diff_update_prob(r, &cm->fc.comp_inter_prob[i]);
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   if (cm->comp_pred_mode != SINGLE_PREDICTION_ONLY) {
     cm->use_masked_compound = vp9_read_bit(r);
     if (cm->use_masked_compound) {
@@ -798,7 +798,7 @@ void vp9_prepare_read_mode_info(VP9D_COMP* pbi, vp9_reader *r) {
           if (vp9_read(r, VP9_UPD_INTERINTRA_PROB))
             vp9_diff_update_prob(r, &cm->fc.interintra_prob[b]);
       }
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
       if (cm->use_masked_interintra) {
         int k;
         for (k = 0; k < BLOCK_SIZE_TYPES; ++k) {
index e2efadadf85c0bb3ee6f96f16dd6ca775a6695b3..fa867514642bd7bb503e9b8e7be685fd170ad10e 100644 (file)
@@ -897,7 +897,7 @@ static size_t read_uncompressed_header(VP9D_COMP *pbi,
 
 #if CONFIG_INTERINTRA
       cm->use_interintra = vp9_rb_read_bit(rb);
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
       if (cm->use_interintra) {
         cm->use_masked_interintra = vp9_rb_read_bit(rb);
       } else {
index c06ce4d0a0c5af5455ee22f6f7e69995b19c9eb1..2c7e5d4f321abc2b9d76d9f5f30bb47bcf689578 100644 (file)
@@ -520,7 +520,7 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, MODE_INFO *m, vp9_writer *bc) {
           write_intra_mode(bc, mi->interintra_uv_mode,
                         pc->fc.uv_mode_prob[mi->interintra_mode]);
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
         if (get_mask_bits_interintra(mi->sb_type) &&
             pc->use_masked_interintra) {
           vp9_write(bc, mi->use_masked_interintra,
@@ -576,7 +576,7 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, MODE_INFO *m, vp9_writer *bc) {
         vp9_encode_mv(cpi, bc, &mi->mv[1].as_mv, &mi->best_second_mv.as_mv,
                       nmvc, allow_hp);
     }
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   if (cpi->common.use_masked_compound &&
       cpi->common.comp_pred_mode != SINGLE_PREDICTION_ONLY &&
       is_inter_mode(mode) &&
@@ -1421,7 +1421,7 @@ static void write_uncompressed_header(VP9_COMP *cpi,
       vp9_wb_write_bit(wb, cm->use_interintra);
       if (!cm->use_interintra)
         vp9_zero(cpi->interintra_count);
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
       if (!cpi->dummy_packing && cm->use_interintra
           && cm->use_masked_interintra) {
         int k;
@@ -1501,7 +1501,7 @@ static size_t write_compressed_header(VP9_COMP *cpi, uint8_t *data) {
                                     VP9_UPD_INTERINTRA_PROB,
                                     cpi->interintra_count[b]);
       }
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
       if (cm->use_masked_interintra) {
         int k;
         for (k = 0; k < BLOCK_SIZE_TYPES; ++k) {
@@ -1535,7 +1535,7 @@ static size_t write_compressed_header(VP9_COMP *cpi, uint8_t *data) {
                                       VP9_MODE_UPDATE_PROB,
                                       cpi->comp_inter_count[i]);
       }
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
       if (use_compound_pred) {
         if (!cpi->dummy_packing && cm->use_masked_compound) {
           cm->use_masked_compound = 0;
index 3bb82b012853a64068e0765e42e0ec5fcc136dc4..c0ab9eef1966915b25563e76c75265aa61922b19 100644 (file)
@@ -447,7 +447,7 @@ static void update_state(VP9_COMP *cpi, PICK_MODE_CONTEXT *ctx,
 #if SEPARATE_INTERINTRA_UV
         ++cpi->uv_mode_count[mbmi->interintra_mode][mbmi->interintra_uv_mode];
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
         if (cm->use_masked_interintra &&
             get_mask_bits_interintra(mbmi->sb_type))
           ++cpi->masked_interintra_count[mbmi->sb_type]
@@ -459,7 +459,7 @@ static void update_state(VP9_COMP *cpi, PICK_MODE_CONTEXT *ctx,
     }
 #endif
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
     if (cm->use_masked_compound &&
         cm->comp_pred_mode != SINGLE_PREDICTION_ONLY &&
         is_inter_mode(mbmi->mode) &&
@@ -2041,7 +2041,7 @@ static void init_encode_frame_mb_context(VP9_COMP *cpi) {
 #if CONFIG_INTERINTRA
   vp9_zero(cpi->interintra_count);
   vp9_zero(cpi->interintra_select_count);
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
   vp9_zero(cpi->masked_interintra_count);
   vp9_zero(cpi->masked_interintra_select_count);
 #endif
@@ -2049,7 +2049,7 @@ static void init_encode_frame_mb_context(VP9_COMP *cpi) {
 #if CONFIG_FILTERINTRA
   vp9_zero(cm->counts.filterintra);
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   vp9_zero(cpi->masked_compound_counts);
   vp9_zero(cpi->masked_compound_select_counts);
 #endif
index f7b4a83357622bab5cb57551b216c2da31a3ed24..af58f1c194a3e1adfe877f400553ca311f45659d 100644 (file)
@@ -614,7 +614,8 @@ int vp9_find_best_sub_pixel_comp_iterative(MACROBLOCK *x,
 #undef DIST
 #undef IFMVCV
 #undef CHECK_BETTER
-#if !CONFIG_MASKED_COMPOUND
+#if !((CONFIG_MASKED_INTERINTRA && CONFIG_INTERINTRA) || \
+    CONFIG_MASKED_INTERINTER)
 #undef MIN
 #undef MAX
 #endif
@@ -1167,7 +1168,8 @@ int vp9_diamond_search_sad_c(MACROBLOCK *x,
                                                    mvcost, x->errorperbit);
 }
 
-#if CONFIG_MASKED_COMPOUND
+#if ((CONFIG_MASKED_INTERINTRA && CONFIG_INTERINTRA) || \
+    CONFIG_MASKED_INTERINTER)
 
 #define MVC(r, c)                                       \
     (mvcost ?                                           \
@@ -1662,7 +1664,7 @@ int vp9_masked_full_pixel_diamond(VP9_COMP *cpi, MACROBLOCK *x,
   }
   return bestsme;
 }
-#endif  // CONFIG_MASKED_COMPOUND
+#endif
 
 int vp9_diamond_search_sadx4(MACROBLOCK *x,
                              int_mv *ref_mv, int_mv *best_mv, int search_param,
index f6d3116c9d03213c69a18c9ea569b18c42b62f10..a84dbaf132f2b2631cf0228e319748433a878e68 100644 (file)
@@ -121,7 +121,8 @@ int vp9_refining_search_8p_c(MACROBLOCK *x,
                              int_mv *center_mv, const uint8_t *second_pred,
                              int w, int h);
 
-#if CONFIG_MASKED_COMPOUND
+#if ((CONFIG_MASKED_INTERINTRA && CONFIG_INTERINTRA) || \
+    CONFIG_MASKED_INTERINTER)
 int vp9_find_best_masked_sub_pixel_step_iteratively(
     MACROBLOCK *x, uint8_t *mask, int mask_stride, int_mv *bestmv,
     int_mv *ref_mv, int error_per_bit, const vp9_variance_fn_ptr_t *vfp,
@@ -133,5 +134,5 @@ int vp9_masked_full_pixel_diamond(
     int_mv *mvp_full, int step_param, int sadpb, int further_steps,
     int do_refine, vp9_variance_fn_ptr_t *fn_ptr, int_mv *ref_mv,
     int_mv *dst_mv, int is_second);
-#endif  // CONFIG_MASKED_COMPOUND
+#endif
 #endif  // VP9_ENCODER_VP9_MCOMP_H_
index 3da60af28dd24ef04ad33f84496468a8279e3fe7..00a950b662a4f864f078c91255cf52dc2578a4e5 100644 (file)
@@ -1726,7 +1726,8 @@ VP9_PTR vp9_create_compressor(VP9_CONFIG *oxcf) {
       vp9_sub_pixel_avg_variance4x4, NULL, NULL, NULL,
       vp9_sad4x4x3, vp9_sad4x4x8, vp9_sad4x4x4d)
 
-#if CONFIG_MASKED_COMPOUND
+#if ((CONFIG_MASKED_INTERINTRA && CONFIG_INTERINTRA) || \
+    CONFIG_MASKED_INTERINTER)
 #define MBFP(BT, MSDF, MVF, MSVF) \
   cpi->fn_ptr[BT].msdf            = MSDF; \
   cpi->fn_ptr[BT].mvf             = MVF; \
@@ -2530,7 +2531,7 @@ static void select_interintra_mode(VP9_COMP *cpi) {
   }
 }
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
 static void select_masked_interintra_mode(VP9_COMP *cpi) {
   static const double threshold = 1/100.0;
   VP9_COMMON *cm = &cpi->common;
@@ -2544,7 +2545,7 @@ static void select_masked_interintra_mode(VP9_COMP *cpi) {
 #endif
 #endif
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
 static void select_masked_compound_mode(VP9_COMP *cpi) {
   static const double threshold = 1/128.0;
   VP9_COMMON *cm = &cpi->common;
@@ -2964,13 +2965,13 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi,
 #if CONFIG_INTERINTRA
   if (cm->current_video_frame == 0) {
     cm->use_interintra = 1;
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
     cm->use_masked_interintra = 1;
 #endif
   }
 #endif
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   if (cm->current_video_frame == 0) {
     cm->use_masked_compound = 0;
   }
@@ -3315,11 +3316,11 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi,
     counts->mv = cpi->NMVcount;
 #if CONFIG_INTERINTRA
     vp9_copy(counts->interintra, cpi->interintra_count);
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
     vp9_copy(counts->masked_interintra, cpi->masked_interintra_count);
 #endif
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
     vp9_copy(counts->masked_compound, cpi->masked_compound_counts);
 #endif
     if (!cpi->common.error_resilient_mode &&
@@ -3332,7 +3333,7 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi,
 #if CONFIG_INTERINTRA
   if (cm->frame_type != KEY_FRAME) {
     select_interintra_mode(cpi);
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
     if (cpi->common.use_interintra)
       select_masked_interintra_mode(cpi);
     else
@@ -3340,7 +3341,7 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi,
 #endif
   }
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   if (cm->frame_type != KEY_FRAME)
     select_masked_compound_mode(cpi);
 #endif
index 37c590ffbaec8ebfc10bb128fa72a3fd9c294f76..b4e7e3cac739803dfc2515409fbe1d15ce7e98b6 100644 (file)
@@ -98,14 +98,14 @@ typedef struct {
 
 #if CONFIG_INTERINTRA
   vp9_prob interintra_prob[BLOCK_SIZE_TYPES];
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
   vp9_prob masked_interintra_prob[BLOCK_SIZE_TYPES];
 #endif
 #endif
 #if CONFIG_FILTERINTRA
   vp9_prob filterintra_prob[TX_SIZES][VP9_INTRA_MODES];
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   vp9_prob masked_compound_prob[BLOCK_SIZE_TYPES];
 #endif
 } CODING_CONTEXT;
@@ -505,12 +505,12 @@ typedef struct VP9_COMP {
 #if CONFIG_INTERINTRA
   unsigned int interintra_count[BLOCK_SIZE_TYPES][2];
   unsigned int interintra_select_count[2];
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
   unsigned int masked_interintra_count[BLOCK_SIZE_TYPES][2];
   unsigned int masked_interintra_select_count[2];
 #endif
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   unsigned int masked_compound_counts[BLOCK_SIZE_TYPES][2];
   unsigned int masked_compound_select_counts[2];
 #endif
index aabb8e994804b1c0faf246a50f9198fecd1d0e08..1e96ae0e5dccfab0910028a9b43377a5acf3826d 100644 (file)
@@ -108,14 +108,14 @@ void vp9_save_coding_context(VP9_COMP *cpi) {
   vp9_copy(cc->mbskip_probs, cm->fc.mbskip_probs);
 #if CONFIG_INTERINTRA
   vp9_copy(cc->interintra_prob, cm->fc.interintra_prob);
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
   vp9_copy(cc->masked_interintra_prob, cm->fc.masked_interintra_prob);
 #endif
 #endif
 #if CONFIG_FILTERINTRA
   vp9_copy(cc->filterintra_prob, cm->fc.filterintra_prob);
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   vp9_copy(cc->masked_compound_prob, cm->fc.masked_compound_prob);
 #endif
 }
@@ -159,14 +159,14 @@ void vp9_restore_coding_context(VP9_COMP *cpi) {
   vp9_copy(cm->fc.mbskip_probs, cc->mbskip_probs);
 #if CONFIG_INTERINTRA
   vp9_copy(cm->fc.interintra_prob, cc->interintra_prob);
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
   vp9_copy(cm->fc.masked_interintra_prob, cc->masked_interintra_prob);
 #endif
 #endif
 #if CONFIG_FILTERINTRA
   vp9_copy(cm->fc.filterintra_prob, cc->filterintra_prob);
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   vp9_copy(cm->fc.masked_compound_prob, cc->masked_compound_prob);
 #endif
 }
index 79a75b287ebe2f29bd65868a3772f92ee013933f..d257482faffcfdc13ee2e5786d7bc260d4765045 100644 (file)
@@ -2841,7 +2841,8 @@ static void joint_motion_search(VP9_COMP *cpi, MACROBLOCK *x,
   vpx_free(second_pred);
 }
 
-#if CONFIG_MASKED_COMPOUND
+#if ((CONFIG_MASKED_INTERINTRA && CONFIG_INTERINTRA)|| \
+    CONFIG_MASKED_INTERINTER)
 static void do_masked_motion_search(VP9_COMP *cpi, MACROBLOCK *x,
                                     uint8_t *mask, int mask_stride,
                                     BLOCK_SIZE_TYPE bsize,
@@ -2930,7 +2931,9 @@ static void do_masked_motion_search(VP9_COMP *cpi, MACROBLOCK *x,
       xd->plane[i].pre[is_second] = backup_yv12[i];
   }
 }
+#endif
 
+#if CONFIG_MASKED_INTERINTER
 static void do_masked_motion_search_indexed(VP9_COMP *cpi, MACROBLOCK *x,
                                             int mask_index,
                                             BLOCK_SIZE_TYPE bsize,
@@ -2974,7 +2977,7 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
 #if CONFIG_INTERINTRA
                                  int *compmode_interintra_cost,
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
                                  int *compmode_masked_cost,
 #endif
                                  int *rate_y, int64_t *distortion_y,
@@ -2992,7 +2995,7 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
 #if CONFIG_INTERINTRA
   const int is_comp_interintra_pred = (mbmi->ref_frame[1] == INTRA_FRAME);
 #endif
-#if CONFIG_MASKED_COMPOUND || CONFIG_INTERINTRA
+#if CONFIG_MASKED_INTERINTER || CONFIG_INTERINTRA
   int rate_mv_tmp = 0;
 #endif
   const int num_refs = is_comp_pred ? 2 : 1;
@@ -3018,7 +3021,7 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
       is_interintra_allowed(mbmi->sb_type)) {
     extend_for_interintra(xd, bsize);
   }
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
   mbmi->use_masked_interintra = 0;
   mbmi->interintra_mask_index = 0;
   mbmi->interintra_uv_mask_index = 0;
@@ -3046,20 +3049,20 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
       if (frame_mv[refs[0]].as_int == INVALID_MV ||
           frame_mv[refs[1]].as_int == INVALID_MV)
         return INT64_MAX;
-#if !(CONFIG_MASKED_COMPOUND || CONFIG_INTERINTRA)
+#if !(CONFIG_MASKED_INTERINTER || CONFIG_INTERINTRA)
       *rate2 += rate_mv;
 #endif
     } else {
       int_mv tmp_mv;
       single_motion_search(cpi, x, bsize, mi_row, mi_col, &tmp_mv, &rate_mv);
-#if !(CONFIG_MASKED_COMPOUND || CONFIG_INTERINTRA)
+#if !(CONFIG_MASKED_INTERINTER || CONFIG_INTERINTRA)
       *rate2 += rate_mv;
 #endif
       frame_mv[refs[0]].as_int =
           xd->mode_info_context->bmi[0].as_mv[0].as_int = tmp_mv.as_int;
       single_newmv[refs[0]].as_int = tmp_mv.as_int;
     }
-#if CONFIG_MASKED_COMPOUND || CONFIG_INTERINTRA
+#if CONFIG_MASKED_INTERINTER || CONFIG_INTERINTRA
       rate_mv_tmp = rate_mv;
 #endif
   }
@@ -3256,7 +3259,7 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
     int64_t best_interintra_rd = INT64_MAX;
     int rmode, rate_sum;
     int64_t dist_sum;
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
 #define MASKED_INTERINTRA_REFINE_SEARCH
     int maskbits, mask_types, mask_index, best_mask_index = 0;
     int64_t best_interintra_rd_nomask, best_interintra_rd_mask = INT64_MAX;
@@ -3288,7 +3291,7 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
 #if !SEPARATE_INTERINTRA_UV
     mbmi->interintra_uv_mode = best_interintra_mode;
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
     maskbits = get_mask_bits_interintra(bsize);
     rmode = x->mbmode_cost[mbmi->interintra_mode];
     if (maskbits) {
@@ -3319,10 +3322,14 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
 #ifdef MASKED_INTERINTRA_REFINE_SEARCH
       // Refine motion vector
       if (this_mode == NEWMV) {
+        int j;
         mbmi->interintra_mask_index = best_mask_index;
         mbmi->interintra_uv_mask_index = best_mask_index;
         vp9_generate_masked_weight_interintra(best_mask_index, bsize,
                                               bh, bw, mask, bw);
+        for (i = 0; i < bh; ++i)
+            for (j = 0; j < bw; ++j)
+              mask[i * bw + j] = 64 - mask[i * bw + j];
         do_masked_motion_search(cpi, x, mask, bw, bsize, refs[0],
                                 mi_row, mi_col, &tmp_mv, &tmp_rate_mv, 0);
         mbmi->mv[0].as_int = tmp_mv.as_int;
@@ -3366,7 +3373,7 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
 #endif
       if (best_interintra_rd_mask < best_interintra_rd_nomask) {
         mbmi->use_masked_interintra = 1;
-        if (cm->use_masked_interintra) {
+        if (cm->use_interintra && cm->use_masked_interintra) {
           mbmi->interintra_mask_index = best_mask_index;
           mbmi->interintra_uv_mask_index = best_mask_index;
 #ifdef MASKED_INTERINTRA_REFINE_SEARCH
@@ -3408,7 +3415,7 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
       *compmode_interintra_cost +=
           x->intra_uv_mode_cost[xd->frame_type][mbmi->interintra_uv_mode];
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA
       if (get_mask_bits_interintra(bsize) && cm->use_masked_interintra) {
         *compmode_interintra_cost += vp9_cost_bit(
                                      cm->fc.masked_interintra_prob[bsize],
@@ -3422,7 +3429,7 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
   }
 #endif
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   if (is_comp_pred && get_mask_bits(bsize)) {
     int mask_index, best_mask_index = -1, rs;
     int rate_sum;
@@ -3562,9 +3569,9 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
       *compmode_masked_cost = vp9_cost_bit(cm->fc.masked_compound_prob[bsize],
                                            0);
   }
-#endif  // CONFIG_MASKED_COMPOUND
+#endif  // CONFIG_MASKED_INTERINTER
 
-#if CONFIG_INTERINTRA || CONFIG_MASKED_COMPOUND
+#if CONFIG_INTERINTRA || CONFIG_MASKED_INTERINTER
   *rate2 += rate_mv_tmp;
 #endif
 
@@ -3835,7 +3842,7 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
   int bhsl = b_height_log2(bsize);
   int bhs = (1 << bhsl) / 4;  // mode_info step for subsize
   int best_skip2 = 0;
-#if CONFIG_INTERINTRA || CONFIG_MASKED_COMPOUND
+#if CONFIG_INTERINTRA || CONFIG_MASKED_INTERINTER
   int64_t best_overall_rd = INT64_MAX;
 #endif
 #if CONFIG_INTERINTRA
@@ -3846,7 +3853,7 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
 #endif
   int64_t best_intra16_rd = INT64_MAX;
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
   int is_best_masked_compound = 0;
 #endif
 
@@ -3929,7 +3936,7 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
 #if CONFIG_INTERINTRA
     int compmode_interintra_cost = 0;
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
     int compmode_masked_cost = 0;
 #endif
     int rate2 = 0, rate_y = 0, rate_uv = 0;
@@ -4036,7 +4043,7 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
     mbmi->interintra_mode = (MB_PREDICTION_MODE)(DC_PRED - 1);
     mbmi->interintra_uv_mode = (MB_PREDICTION_MODE)(DC_PRED - 1);
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
     mbmi->use_masked_compound = 0;
     mbmi->mask_index = MASK_NONE;
 #endif
@@ -4437,7 +4444,7 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
 #if CONFIG_INTERINTRA
                                   &compmode_interintra_cost,
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
                                   &compmode_masked_cost,
 #endif
                                   &rate_y, &distortion_y,
@@ -4455,7 +4462,7 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
       rate2 += compmode_interintra_cost;
     }
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
     if ((cpi->common.comp_pred_mode == HYBRID_PREDICTION ||
         cpi->common.comp_pred_mode == COMP_PREDICTION_ONLY) &&
         cpi->common.use_masked_compound)
@@ -4566,13 +4573,13 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
         best_filter_rd[i] = MIN(best_filter_rd[i], this_rd);
     }
 
-#if CONFIG_INTERINTRA || CONFIG_MASKED_COMPOUND
+#if CONFIG_INTERINTRA || CONFIG_MASKED_INTERINTER
     if (this_rd < best_overall_rd) {
       best_overall_rd = this_rd;
 #if CONFIG_INTERINTRA
       is_best_interintra = (second_ref_frame == INTRA_FRAME);
 #endif
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
       is_best_masked_compound = (mbmi->mask_index != MASK_NONE);
 #endif
     }
@@ -4791,7 +4798,7 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
   ++cpi->interintra_select_count[is_best_interintra];
 #endif
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTER
 // diagnostics
   if ((cpi->common.comp_pred_mode == HYBRID_PREDICTION ||
       cpi->common.comp_pred_mode == COMP_PREDICTION_ONLY) &&
index 6cc89c8a56d4ad5a8d0f829155f618e70d59a0a1..86a68789b604cd43ff0ac8c2a8c31a459fa621d3 100644 (file)
@@ -614,7 +614,8 @@ void vp9_sad4x4x4d_c(const uint8_t *src_ptr,
                             ref_ptr[3], ref_stride, 0x7fffffff);
 }
 
-#if CONFIG_MASKED_COMPOUND
+#if ((CONFIG_MASKED_INTERINTRA && CONFIG_INTERINTRA) || \
+    CONFIG_MASKED_INTERINTER)
 unsigned int vp9_masked_sad64x64_c(const uint8_t *src_ptr,
                                    int  src_stride,
                                    const uint8_t *ref_ptr,
index 7dd8d2589d0e1a6d2607c693a26044c70f3616f8..9bef5304731921d288c422fc8fafb56f67da0b91 100644 (file)
@@ -67,7 +67,7 @@ typedef unsigned int (*vp9_subp_avg_variance_fn_t)(const uint8_t *src_ptr,
                                                    unsigned int *sse,
                                                    const uint8_t *second_pred);
 
-#if CONFIG_MASKED_COMPOUND
+#if CONFIG_MASKED_INTERINTRA || CONFIG_MASKED_INTERINTER
 typedef unsigned int(*vp9_masked_sad_fn_t)(const uint8_t *src_ptr,
                                          int source_stride,
                                          const uint8_t *ref_ptr,
@@ -118,7 +118,8 @@ typedef struct vp9_variance_vtable {
   vp9_sad_multi_fn_t         sdx3f;
   vp9_sad_multi1_fn_t        sdx8f;
   vp9_sad_multi_d_fn_t       sdx4df;
-#if CONFIG_MASKED_COMPOUND
+#if ((CONFIG_MASKED_INTERINTRA && CONFIG_INTERINTRA) || \
+    CONFIG_MASKED_INTERINTER)
   vp9_masked_sad_fn_t            msdf;
   vp9_masked_variance_fn_t       mvf;
   vp9_masked_subpixvariance_fn_t msvf;
index 9bb24067b2d750eb99efacdc4413e87f6587c365..ec473eac49cb5ce4ada6c47be67c9b12eb7a0ee5 100644 (file)
@@ -956,7 +956,8 @@ unsigned int vp9_sub_pixel_avg_variance4x8_c(const uint8_t *src_ptr,
   return vp9_variance4x8(temp3, 4, dst_ptr, dst_pixels_per_line, sse);
 }
 
-#if CONFIG_MASKED_COMPOUND
+#if ((CONFIG_MASKED_INTERINTRA && CONFIG_INTERINTRA) || \
+    CONFIG_MASKED_INTERINTER)
 unsigned int vp9_masked_variance64x64_c(const uint8_t *src_ptr,
                                         int  source_stride,
                                         const uint8_t *ref_ptr,