ref: 5aeadbb4f62cb10b50722c383b47556c89fc9a07
parent: 77ffea92c5d57adb28467c4e15a4d85c18ee387f
parent: 3fc01f95da993c6353082af6cb82cd5cdb8824f5
author: Marco Paniconi <[email protected]>
date: Wed Jun 8 20:49:02 EDT 2016
Merge "vp9: Use nonrd_pick_partition on scene-cut, for speed 5 vbr mode."
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -3797,8 +3797,14 @@
break;
case REFERENCE_PARTITION:
set_offsets(cpi, tile_info, x, mi_row, mi_col, BLOCK_64X64);
- if (cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ && cm->seg.enabled &&
- xd->mi[0]->segment_id) {
+ // Use nonrd_pick_partition on scene-cut for VBR, or on qp-segment
+ // if cyclic_refresh is enabled.
+ // nonrd_pick_partition does not support 4x4 partition, so avoid it
+ // on key frame for now.
+ if ((cpi->oxcf.rc_mode == VPX_VBR && cpi->rc.high_source_sad &&
+ cm->frame_type != KEY_FRAME) ||
+ (cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ && cm->seg.enabled &&
+ xd->mi[0]->segment_id)) {
// Use lower max_partition_size for low resoultions.
if (cm->width <= 352 && cm->height <= 288)
x->max_partition_size = BLOCK_32X32;