diff --git a/vp9/common/vp9_entropymv.c b/vp9/common/vp9_entropymv.c index ed6af665e43ab8896fa59b50f4f87c5c765b3206..0b3f6d24e5816409ebdf94e551fd4d44244bcdf0 100644 --- a/vp9/common/vp9_entropymv.c +++ b/vp9/common/vp9_entropymv.c @@ -187,11 +187,9 @@ static void counts_to_context(nmv_component_counts *mvcomp, int usehp) { } } -void vp9_inc_mv(const MV *mv, const MV *ref, nmv_context_counts *mvctx, - int usehp) { +void vp9_inc_mv(const MV *mv, nmv_context_counts *mvctx) { const MV_JOINT_TYPE j = vp9_get_mv_joint(mv); mvctx->joints[j]++; - usehp = usehp && vp9_use_mv_hp(ref); if (mv_joint_vertical(j)) inc_mv_component_count(mv->row, &mvctx->comps[0], 1); diff --git a/vp9/common/vp9_entropymv.h b/vp9/common/vp9_entropymv.h index 0df92d0310c44ea8bf0307ca6b5b9e75685f6563..7308d55f059a9e3d6dea92a3fbde3226d8ac75d7 100644 --- a/vp9/common/vp9_entropymv.h +++ b/vp9/common/vp9_entropymv.h @@ -128,8 +128,7 @@ typedef struct { nmv_component_counts comps[2]; } nmv_context_counts; -void vp9_inc_mv(const MV *mv, const MV *ref, nmv_context_counts *mvctx, - int usehp); +void vp9_inc_mv(const MV *mv, nmv_context_counts *mvctx); void vp9_counts_process(nmv_context_counts *NMVcount, int usehp); diff --git a/vp9/decoder/vp9_decodemv.c b/vp9/decoder/vp9_decodemv.c index 6ee9a51a51862086a769a1d4b5591734667c15e7..01e0d8d771c2bea1d1005bc713b4294de04b9bec 100644 --- a/vp9/decoder/vp9_decodemv.c +++ b/vp9/decoder/vp9_decodemv.c @@ -255,7 +255,7 @@ static INLINE void read_mv(vp9_reader *r, MV *mv, const MV *ref, if (mv_joint_horizontal(j)) diff.col = read_mv_component(r, &ctx->comps[1], usehp); - vp9_inc_mv(&diff, ref, counts, usehp); + vp9_inc_mv(&diff, counts); mv->row = ref->row + diff.row; mv->col = ref->col + diff.col; diff --git a/vp9/encoder/vp9_encodemv.c b/vp9/encoder/vp9_encodemv.c index 84a9cd6887d33258256e4939edbf74f4e7dbfb2e..6dde4f5c1cc908ed1c63ef0a5e981cac74c0ea6d 100644 --- a/vp9/encoder/vp9_encodemv.c +++ b/vp9/encoder/vp9_encodemv.c @@ -581,44 +581,41 @@ void vp9_build_nmv_cost_table(int *mvjoint, void vp9_update_nmv_count(VP9_COMP *cpi, MACROBLOCK *x, int_mv *best_ref_mv, int_mv *second_best_ref_mv) { - MB_MODE_INFO * mbmi = &x->e_mbd.mode_info_context->mbmi; - MV mv; - int bwl = b_width_log2(mbmi->sb_type), bw = 1 << bwl; - int bhl = b_height_log2(mbmi->sb_type), bh = 1 << bhl; + MB_MODE_INFO *mbmi = &x->e_mbd.mode_info_context->mbmi; + MV diff; + const int bw = 1 << b_width_log2(mbmi->sb_type); + const int bh = 1 << b_height_log2(mbmi->sb_type); int idx, idy; if (mbmi->sb_type < BLOCK_SIZE_SB8X8) { - int i; PARTITION_INFO *pi = x->partition_info; for (idy = 0; idy < 2; idy += bh) { for (idx = 0; idx < 2; idx += bw) { - i = idy * 2 + idx; + const int i = idy * 2 + idx; if (pi->bmi[i].mode == NEWMV) { - mv.row = (pi->bmi[i].mv.as_mv.row - best_ref_mv->as_mv.row); - mv.col = (pi->bmi[i].mv.as_mv.col - best_ref_mv->as_mv.col); - vp9_inc_mv(&mv, &best_ref_mv->as_mv, &cpi->NMVcount, - x->e_mbd.allow_high_precision_mv); + diff.row = pi->bmi[i].mv.as_mv.row - best_ref_mv->as_mv.row; + diff.col = pi->bmi[i].mv.as_mv.col - best_ref_mv->as_mv.col; + vp9_inc_mv(&diff, &cpi->NMVcount); + if (x->e_mbd.mode_info_context->mbmi.ref_frame[1] > INTRA_FRAME) { - mv.row = pi->bmi[i].second_mv.as_mv.row - + diff.row = pi->bmi[i].second_mv.as_mv.row - second_best_ref_mv->as_mv.row; - mv.col = pi->bmi[i].second_mv.as_mv.col - + diff.col = pi->bmi[i].second_mv.as_mv.col - second_best_ref_mv->as_mv.col; - vp9_inc_mv(&mv, &second_best_ref_mv->as_mv, &cpi->NMVcount, - x->e_mbd.allow_high_precision_mv); + vp9_inc_mv(&diff, &cpi->NMVcount); } } } } } else if (mbmi->mode == NEWMV) { - mv.row = mbmi->mv[0].as_mv.row - best_ref_mv->as_mv.row; - mv.col = mbmi->mv[0].as_mv.col - best_ref_mv->as_mv.col; - vp9_inc_mv(&mv, &best_ref_mv->as_mv, &cpi->NMVcount, - x->e_mbd.allow_high_precision_mv); + diff.row = mbmi->mv[0].as_mv.row - best_ref_mv->as_mv.row; + diff.col = mbmi->mv[0].as_mv.col - best_ref_mv->as_mv.col; + vp9_inc_mv(&diff, &cpi->NMVcount); + if (mbmi->ref_frame[1] > INTRA_FRAME) { - mv.row = mbmi->mv[1].as_mv.row - second_best_ref_mv->as_mv.row; - mv.col = mbmi->mv[1].as_mv.col - second_best_ref_mv->as_mv.col; - vp9_inc_mv(&mv, &second_best_ref_mv->as_mv, &cpi->NMVcount, - x->e_mbd.allow_high_precision_mv); + diff.row = mbmi->mv[1].as_mv.row - second_best_ref_mv->as_mv.row; + diff.col = mbmi->mv[1].as_mv.col - second_best_ref_mv->as_mv.col; + vp9_inc_mv(&diff, &cpi->NMVcount); } } }