Merge "Deprecate best_mv from encoder"
This commit is contained in:
@@ -122,7 +122,6 @@ typedef struct {
|
|||||||
TX_SIZE tx_size;
|
TX_SIZE tx_size;
|
||||||
int_mv mv[2]; // for each reference frame used
|
int_mv mv[2]; // for each reference frame used
|
||||||
int_mv ref_mvs[MAX_REF_FRAMES][MAX_MV_REF_CANDIDATES];
|
int_mv ref_mvs[MAX_REF_FRAMES][MAX_MV_REF_CANDIDATES];
|
||||||
int_mv best_mv[2];
|
|
||||||
|
|
||||||
uint8_t mode_context[MAX_REF_FRAMES];
|
uint8_t mode_context[MAX_REF_FRAMES];
|
||||||
|
|
||||||
|
|||||||
@@ -260,6 +260,7 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, MODE_INFO *m, vp9_writer *bc) {
|
|||||||
struct segmentation *seg = &cm->seg;
|
struct segmentation *seg = &cm->seg;
|
||||||
MB_MODE_INFO *const mi = &m->mbmi;
|
MB_MODE_INFO *const mi = &m->mbmi;
|
||||||
const MV_REFERENCE_FRAME rf = mi->ref_frame[0];
|
const MV_REFERENCE_FRAME rf = mi->ref_frame[0];
|
||||||
|
const MV_REFERENCE_FRAME sec_rf = mi->ref_frame[1];
|
||||||
const MB_PREDICTION_MODE mode = mi->mode;
|
const MB_PREDICTION_MODE mode = mi->mode;
|
||||||
const int segment_id = mi->segment_id;
|
const int segment_id = mi->segment_id;
|
||||||
int skip_coeff;
|
int skip_coeff;
|
||||||
@@ -355,11 +356,11 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, MODE_INFO *m, vp9_writer *bc) {
|
|||||||
active_section = 11;
|
active_section = 11;
|
||||||
#endif
|
#endif
|
||||||
vp9_encode_mv(cpi, bc, &m->bmi[j].as_mv[0].as_mv,
|
vp9_encode_mv(cpi, bc, &m->bmi[j].as_mv[0].as_mv,
|
||||||
&mi->best_mv[0].as_mv, nmvc, allow_hp);
|
&mi->ref_mvs[rf][0].as_mv, nmvc, allow_hp);
|
||||||
|
|
||||||
if (has_second_ref(mi))
|
if (has_second_ref(mi))
|
||||||
vp9_encode_mv(cpi, bc, &m->bmi[j].as_mv[1].as_mv,
|
vp9_encode_mv(cpi, bc, &m->bmi[j].as_mv[1].as_mv,
|
||||||
&mi->best_mv[1].as_mv, nmvc, allow_hp);
|
&mi->ref_mvs[sec_rf][0].as_mv, nmvc, allow_hp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -368,11 +369,11 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, MODE_INFO *m, vp9_writer *bc) {
|
|||||||
active_section = 5;
|
active_section = 5;
|
||||||
#endif
|
#endif
|
||||||
vp9_encode_mv(cpi, bc, &mi->mv[0].as_mv,
|
vp9_encode_mv(cpi, bc, &mi->mv[0].as_mv,
|
||||||
&mi->best_mv[0].as_mv, nmvc, allow_hp);
|
&mi->ref_mvs[rf][0].as_mv, nmvc, allow_hp);
|
||||||
|
|
||||||
if (has_second_ref(mi))
|
if (has_second_ref(mi))
|
||||||
vp9_encode_mv(cpi, bc, &mi->mv[1].as_mv,
|
vp9_encode_mv(cpi, bc, &mi->mv[1].as_mv,
|
||||||
&mi->best_mv[1].as_mv, nmvc, allow_hp);
|
&mi->ref_mvs[sec_rf][0].as_mv, nmvc, allow_hp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -500,17 +500,8 @@ static void update_state(VP9_COMP *cpi, PICK_MODE_CONTEXT *ctx,
|
|||||||
if (is_inter_block(mbmi) &&
|
if (is_inter_block(mbmi) &&
|
||||||
(mbmi->sb_type < BLOCK_8X8 || mbmi->mode == NEWMV)) {
|
(mbmi->sb_type < BLOCK_8X8 || mbmi->mode == NEWMV)) {
|
||||||
int_mv best_mv[2];
|
int_mv best_mv[2];
|
||||||
const MV_REFERENCE_FRAME rf1 = mbmi->ref_frame[0];
|
for (i = 0; i < 2; ++i)
|
||||||
const MV_REFERENCE_FRAME rf2 = mbmi->ref_frame[1];
|
best_mv[i].as_int = mbmi->ref_mvs[mbmi->ref_frame[i]][0].as_int;
|
||||||
best_mv[0].as_int = ctx->best_ref_mv[0].as_int;
|
|
||||||
best_mv[1].as_int = ctx->best_ref_mv[1].as_int;
|
|
||||||
if (mbmi->mode == NEWMV) {
|
|
||||||
best_mv[0].as_int = mbmi->ref_mvs[rf1][0].as_int;
|
|
||||||
if (rf2 > 0)
|
|
||||||
best_mv[1].as_int = mbmi->ref_mvs[rf2][0].as_int;
|
|
||||||
}
|
|
||||||
mbmi->best_mv[0].as_int = best_mv[0].as_int;
|
|
||||||
mbmi->best_mv[1].as_int = best_mv[1].as_int;
|
|
||||||
vp9_update_mv_count(cpi, x, best_mv);
|
vp9_update_mv_count(cpi, x, best_mv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user