Refactor sub8x8 ref motion vector search
Take out an unnecessary use of the mode context array. Change-Id: I4032ed18464e5ec49a2160bea964bad9b716ee54
This commit is contained in:
@@ -384,7 +384,8 @@ static void find_mv_refs_idx(const VP10_COMMON *cm, const MACROBLOCKD *xd,
|
||||
}
|
||||
}
|
||||
|
||||
Done:
|
||||
Done:
|
||||
if (mode_context)
|
||||
mode_context[ref_frame] = counter_to_context[context_counter];
|
||||
for (i = refmv_count; i < MAX_MV_REF_CANDIDATES; ++i)
|
||||
mv_ref_list[i].as_int = 0;
|
||||
@@ -433,8 +434,7 @@ void vp10_find_best_ref_mvs(int allow_hp,
|
||||
|
||||
void vp10_append_sub8x8_mvs_for_idx(VP10_COMMON *cm, MACROBLOCKD *xd,
|
||||
int block, int ref, int mi_row, int mi_col,
|
||||
int_mv *nearest_mv, int_mv *near_mv,
|
||||
uint8_t *mode_context) {
|
||||
int_mv *nearest_mv, int_mv *near_mv) {
|
||||
int_mv mv_list[MAX_MV_REF_CANDIDATES];
|
||||
MODE_INFO *const mi = xd->mi[0];
|
||||
b_mode_info *bmi = mi->bmi;
|
||||
@@ -449,7 +449,7 @@ void vp10_append_sub8x8_mvs_for_idx(VP10_COMMON *cm, MACROBLOCKD *xd,
|
||||
assert(MAX_MV_REF_CANDIDATES == 2);
|
||||
|
||||
find_mv_refs_idx(cm, xd, mi, mi->mbmi.ref_frame[ref], mv_list, block,
|
||||
mi_row, mi_col, NULL, NULL, mode_context);
|
||||
mi_row, mi_col, NULL, NULL, NULL);
|
||||
|
||||
|
||||
#if CONFIG_REF_MV
|
||||
|
||||
@@ -214,8 +214,7 @@ void vp10_find_best_ref_mvs(int allow_hp,
|
||||
|
||||
void vp10_append_sub8x8_mvs_for_idx(VP10_COMMON *cm, MACROBLOCKD *xd,
|
||||
int block, int ref, int mi_row, int mi_col,
|
||||
int_mv *nearest_mv, int_mv *near_mv,
|
||||
uint8_t *mode_context);
|
||||
int_mv *nearest_mv, int_mv *near_mv);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
|
||||
@@ -834,12 +834,10 @@ static void read_inter_block_mode_info(VP10Decoder *const pbi,
|
||||
b_mode = read_inter_mode(cm, xd, r, inter_mode_ctx[mbmi->ref_frame[0]]);
|
||||
|
||||
if (b_mode == NEARESTMV || b_mode == NEARMV) {
|
||||
uint8_t dummy_mode_ctx[MAX_REF_FRAMES];
|
||||
for (ref = 0; ref < 1 + is_compound; ++ref)
|
||||
vp10_append_sub8x8_mvs_for_idx(cm, xd, j, ref, mi_row, mi_col,
|
||||
&nearest_sub8x8[ref],
|
||||
&near_sub8x8[ref],
|
||||
dummy_mode_ctx);
|
||||
&near_sub8x8[ref]);
|
||||
}
|
||||
|
||||
if (!assign_mv(cm, xd, b_mode, block, nearestmv,
|
||||
|
||||
@@ -3410,8 +3410,7 @@ static int64_t rd_pick_best_sub8x8_mode(VP10_COMP *cpi, MACROBLOCK *x,
|
||||
frame_mv[ZEROMV][frame].as_int = 0;
|
||||
vp10_append_sub8x8_mvs_for_idx(cm, xd, i, ref, mi_row, mi_col,
|
||||
&frame_mv[NEARESTMV][frame],
|
||||
&frame_mv[NEARMV][frame],
|
||||
mbmi_ext->mode_context);
|
||||
&frame_mv[NEARMV][frame]);
|
||||
}
|
||||
|
||||
// search for the best motion vector on this segment
|
||||
|
||||
Reference in New Issue
Block a user