summaryrefslogtreecommitdiff
path: root/vp9/encoder
diff options
context:
space:
mode:
authorMarco <marpan@chromium.org>2015-07-07 11:43:15 -0700
committerMarco <marpan@chromium.org>2015-07-07 11:52:01 -0700
commit478fbc8f236ee4118e032074eb7c0a1be11d0d10 (patch)
treec5bf71a9b977a806b01cda423c33d282b7a56885 /vp9/encoder
parent9cb3a13426d21a9bcfbd4d71e045fa0199ab1bbd (diff)
downloadlibvpx-478fbc8f236ee4118e032074eb7c0a1be11d0d10.tar
libvpx-478fbc8f236ee4118e032074eb7c0a1be11d0d10.tar.gz
libvpx-478fbc8f236ee4118e032074eb7c0a1be11d0d10.tar.bz2
libvpx-478fbc8f236ee4118e032074eb7c0a1be11d0d10.zip
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
Diffstat (limited to 'vp9/encoder')
-rw-r--r--vp9/encoder/vp9_encodeframe.c9
1 files changed, 7 insertions, 2 deletions
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,