Enable hybrid intra for speed 7
Speed up on different Q on all-intra:
Q=60: VGA 12%-28% QVGA 5%-15%
Q=40: VGA 7%-18% QVGA 2.5%-5%
Q=20: VGA 2.5%-8.5% QVGA no change
Change-Id: I81bb27bc47be2d0004e4959edcf5e5225ac2235b
diff --git a/av1/encoder/nonrd_pickmode.c b/av1/encoder/nonrd_pickmode.c
index 6624da4..c194c6a 100644
--- a/av1/encoder/nonrd_pickmode.c
+++ b/av1/encoder/nonrd_pickmode.c
@@ -1382,17 +1382,9 @@
av1_invalid_rd_stats(&best_rdc);
av1_invalid_rd_stats(&this_rdc);
- mi->ref_frame[0] = INTRA_FRAME;
- mi->ref_frame[1] = NONE_FRAME;
- mi->use_intrabc = 0;
- mi->skip_mode = 0;
+ init_mbmi(mi, DC_PRED, INTRA_FRAME, NONE_FRAME, cm);
+ mi->mv[0].as_int = mi->mv[1].as_int = INVALID_MV;
- // Initialize interp_filter here so we do not have to check for inter block
- // modes in get_pred_context_switchable_interp()
- mi->interp_filters = av1_broadcast_interp_filter(SWITCHABLE_FILTERS);
-
- mi->mv[0].as_int = INVALID_MV;
- mi->uv_mode = DC_PRED;
memset(xd->tx_type_map, DCT_DCT,
sizeof(xd->tx_type_map[0]) * ctx->num_4x4_blk);
av1_zero(x->blk_skip);
@@ -1406,7 +1398,6 @@
args.skippable = 1;
args.rdc = &this_rdc;
mi->tx_size = intra_tx_size;
- init_mbmi(mi, this_mode, INTRA_FRAME, NONE_FRAME, cm);
av1_foreach_transformed_block_in_plane(xd, bsize, 0, estimate_block_intra,
&args);
if (args.skippable) {
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index a40f53d..d13e4d3 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -806,6 +806,7 @@
sf->rt_sf.use_nonrd_pick_mode = 1;
sf->rt_sf.nonrd_check_partition_merge = 1;
sf->rt_sf.nonrd_check_partition_split = 0;
+ sf->rt_sf.hybrid_intra_pickmode = 1;
}
if (speed >= 8) {
@@ -815,7 +816,6 @@
sf->rt_sf.nonrd_use_blockyrd_interp_filter = 0;
sf->rt_sf.use_nonrd_altref_frame = 0;
sf->rt_sf.nonrd_reduce_golden_mode_search = 1;
- sf->rt_sf.hybrid_intra_pickmode = 1;
sf->rt_sf.nonrd_check_partition_merge = 0;
sf->rt_sf.nonrd_check_partition_split = 0;