From: Marco Date: Tue, 7 Jul 2015 18:43:15 +0000 (-0700) Subject: Update to speed 5 non-rd mode partition search. X-Git-Tag: v1.5.0~478^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=478fbc8f236ee4118e032074eb7c0a1be11d0d10;p=libvpx Update to speed 5 non-rd mode partition search. If the pre-selected partition size (from variance partition) is 32x32, also apply nonrd partition search for 32x32 and 16x16 size. Overall small positive gain in metrics, average ~1%. Some visual improvement, for lower resolutions. Change-Id: I69cb425bda94f7d13d34c451ab30e9276335a30e --- diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index b39b53d18..02d986e85 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -3349,8 +3349,13 @@ static void nonrd_select_partition(VP9_COMP *cpi, subsize = (bsize >= BLOCK_8X8) ? mi[0]->mbmi.sb_type : BLOCK_4X4; partition = partition_lookup[bsl][subsize]; - if (bsize == BLOCK_32X32 && partition != PARTITION_NONE && - subsize >= BLOCK_16X16) { + if (bsize == BLOCK_32X32 && subsize == BLOCK_32X32) { + x->max_partition_size = BLOCK_32X32; + x->min_partition_size = BLOCK_16X16; + nonrd_pick_partition(cpi, td, tile_data, tp, mi_row, mi_col, bsize, + rd_cost, 0, INT64_MAX, pc_tree); + } else if (bsize == BLOCK_32X32 && partition != PARTITION_NONE && + subsize >= BLOCK_16X16) { x->max_partition_size = BLOCK_32X32; x->min_partition_size = BLOCK_8X8; nonrd_pick_partition(cpi, td, tile_data, tp, mi_row, mi_col, bsize,