From: Yaowu Xu Date: Fri, 4 Oct 2013 21:20:26 +0000 (-0700) Subject: Change to allow less rectangular partion check X-Git-Tag: v1.3.0~271 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e29137df05dd8759b9f8757ddf79a90e717c3a87;p=libvpx Change to allow less rectangular partion check For CpuUsed 1 & 2, this commit allow to skip retangular partition check when NONE is better than SPLIT. It also changed to allow such logic on alt ref frame coding rather than use square partition all them. The change has gain compressio about .3% on yt and ythd for both 1&2, It helped .6% compression on cif and stdhd for both CpuUsed 1&2. Change-Id: I814b653baf89f59acd20e042629a12938a1bd4e5 --- diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c index 83e51cbb7..e35e5e13f 100644 --- a/vp9/encoder/vp9_onyx_if.c +++ b/vp9/encoder/vp9_onyx_if.c @@ -773,9 +773,10 @@ void vp9_set_speed_features(VP9_COMP *cpi) { if (speed == 1) { sf->use_square_partition_only = !(cpi->common.frame_type == KEY_FRAME || cpi->common.intra_only); - sf->tx_size_search_method = ((cpi->common.frame_type == KEY_FRAME || - cpi->common.intra_only) - ? USE_FULL_RD : USE_LARGESTALL); + sf->less_rectangular_check = 1; + sf->tx_size_search_method = (cpi->common.frame_type == KEY_FRAME || + cpi->common.intra_only) + ? USE_FULL_RD : USE_LARGESTALL; if (MIN(cpi->common.width, cpi->common.height) >= 720) sf->disable_split_mask = DISABLE_ALL_SPLIT; @@ -790,6 +791,7 @@ void vp9_set_speed_features(VP9_COMP *cpi) { if (speed == 2) { sf->use_square_partition_only = !(cpi->common.frame_type == KEY_FRAME || cpi->common.intra_only); + sf->less_rectangular_check = 1; sf->tx_size_search_method = ((cpi->common.frame_type == KEY_FRAME || cpi->common.intra_only) ? USE_FULL_RD : USE_LARGESTALL); @@ -897,11 +899,9 @@ void vp9_set_speed_features(VP9_COMP *cpi) { sf->comp_inter_joint_search_thresh = BLOCK_SIZES; sf->use_one_partition_size_always = 1; sf->always_this_block_size = BLOCK_16X16; - sf->tx_size_search_method = ((cpi->common.frame_type == KEY_FRAME || - cpi->common.intra_only || - cpi->common.show_frame == 0) ? - USE_FULL_RD : - USE_LARGESTALL); + sf->tx_size_search_method = (cpi->common.frame_type == KEY_FRAME || + cpi->common.intra_only) ? + USE_FULL_RD : USE_LARGESTALL; sf->mode_search_skip_flags = FLAG_SKIP_INTRA_DIRMISMATCH | FLAG_SKIP_INTRA_BESTINTER | FLAG_SKIP_COMP_BESTINTRA |