Enable adaptive motion search for ARF coding
This commit turns on adaptive motion search for ARF coding, in addition to other normal inter frame coding. It improves the average compression efficiency: stdhd 0.1% derf 0.04% For the test sequences, the speed 3 runtime is reduced: pedestrian 1080p 2000 kbps, 149932 ms -> 144580 ms, (3.3% speed-up) bus CIF 1000 kbps, 8050 ms -> 7895 ms, (1.9%) highway CIF 100 bkps, 45033 ms -> 44078 ms, (2.2%) Change-Id: I5228565b609f99e8ae04f6140a2bf2b64a831d21
This commit is contained in:
parent
3de038f396
commit
d435148fe6
@ -374,7 +374,6 @@ void vp9_mv_pred(VP9_COMP *cpi, MACROBLOCK *x,
|
||||
uint8_t *ref_y_ptr;
|
||||
const int num_mv_refs = MAX_MV_REF_CANDIDATES +
|
||||
(cpi->sf.adaptive_motion_search &&
|
||||
cpi->common.show_frame &&
|
||||
block_size < cpi->sf.max_partition_size);
|
||||
|
||||
MV pred_mv[3];
|
||||
|
@ -1398,7 +1398,7 @@ static int64_t rd_pick_best_sub8x8_mode(VP9_COMP *cpi, MACROBLOCK *x,
|
||||
mvp_full.row = bsi->mvp.as_mv.row >> 3;
|
||||
mvp_full.col = bsi->mvp.as_mv.col >> 3;
|
||||
|
||||
if (cpi->sf.adaptive_motion_search && cm->show_frame) {
|
||||
if (cpi->sf.adaptive_motion_search) {
|
||||
mvp_full.row = x->pred_mv[mbmi->ref_frame[0]].row >> 3;
|
||||
mvp_full.col = x->pred_mv[mbmi->ref_frame[0]].col >> 3;
|
||||
step_param = MAX(step_param, 8);
|
||||
@ -1815,8 +1815,7 @@ static void single_motion_search(VP9_COMP *cpi, MACROBLOCK *x,
|
||||
step_param = cpi->mv_step_param;
|
||||
}
|
||||
|
||||
if (cpi->sf.adaptive_motion_search && bsize < BLOCK_64X64 &&
|
||||
cm->show_frame) {
|
||||
if (cpi->sf.adaptive_motion_search && bsize < BLOCK_64X64) {
|
||||
int boffset = 2 * (b_width_log2(BLOCK_64X64) - MIN(b_height_log2(bsize),
|
||||
b_width_log2(bsize)));
|
||||
step_param = MAX(step_param, boffset);
|
||||
@ -1876,7 +1875,7 @@ static void single_motion_search(VP9_COMP *cpi, MACROBLOCK *x,
|
||||
*rate_mv = vp9_mv_bit_cost(&tmp_mv->as_mv, &ref_mv,
|
||||
x->nmvjointcost, x->mvcost, MV_COST_WEIGHT);
|
||||
|
||||
if (cpi->sf.adaptive_motion_search && cm->show_frame)
|
||||
if (cpi->sf.adaptive_motion_search)
|
||||
x->pred_mv[ref] = tmp_mv->as_mv;
|
||||
|
||||
if (scaled_ref_frame) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user