From: Yunqing Wang Date: Mon, 10 Jan 2011 22:21:55 +0000 (-0500) Subject: Add no_skip_block4x4_search flag in SPLITMV mode X-Git-Tag: 1.0_branch~730^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1546e6a8c9b34db4925781234300cadf0f2c7ecd;p=profile%2Fivi%2Flibvpx.git Add no_skip_block4x4_search flag in SPLITMV mode Add a flag to always enable block4x4 search for speed=0 (good quality) to guarantee no quality loss for speed0. Change-Id: Ie04bbc25f7e6a33a7bfa30e05775d33148731c81 --- diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index 2d9e801..9fdf618 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -592,6 +592,7 @@ void vp8_set_speed_features(VP8_COMP *cpi) sf->iterative_sub_pixel = 1; sf->optimize_coefficients = 1; sf->use_fastquant_for_pick = 0; + sf->no_skip_block4x4_search = 1; sf->first_step = 0; sf->max_step_search_steps = MAX_MVSEARCH_STEPS; @@ -794,6 +795,7 @@ void vp8_set_speed_features(VP8_COMP *cpi) sf->first_step = 1; sf->max_step_search_steps = MAX_MVSEARCH_STEPS; + sf->no_skip_block4x4_search = 0; } if (Speed > 1) diff --git a/vp8/encoder/onyx_int.h b/vp8/encoder/onyx_int.h index 05e8c4e..6bffd98 100644 --- a/vp8/encoder/onyx_int.h +++ b/vp8/encoder/onyx_int.h @@ -183,6 +183,7 @@ typedef struct int optimize_coefficients; int use_fastquant_for_pick; + int no_skip_block4x4_search; } SPEED_FEATURES; diff --git a/vp8/encoder/rdopt.c b/vp8/encoder/rdopt.c index 366b875..e751b09 100644 --- a/vp8/encoder/rdopt.c +++ b/vp8/encoder/rdopt.c @@ -1375,7 +1375,8 @@ static int vp8_rd_pick_best_mbsegmentation(VP8_COMP *cpi, MACROBLOCK *x, } /* If 8x8 is better than 16x8/8x16, then do 4x4 search */ - if (bsi.segment_num == BLOCK_8X8) /* || (sv_segment_rd8x8-bsi.segment_rd) < sv_segment_rd8x8>>5) */ + /* Not skip 4x4 if speed=0 (good quality) */ + if (cpi->sf.no_skip_block4x4_search || bsi.segment_num == BLOCK_8X8) /* || (sv_segment_rd8x8-bsi.segment_rd) < sv_segment_rd8x8>>5) */ { bsi.mvp = &bsi.sv_mvp[0]; vp8_rd_check_segment(cpi, x, &bsi, BLOCK_4X4);