Tune intra mode pruning feature at speed 2
Sped up the encoder while keeping the pruning threshold less aggressive
for speed 2.
Borg test results at speed 2:
avg_psnr: ovr_psnr: ssim: speedup:
lowres2: 0.021 0.028 0.037 2.1
midres2: 0.022 0.007 -0.023 2.4
hdres2: 0.015 0.016 0.044 2.7
This could be further extended to speed 1.
STATS_CHANGED
Change-Id: I77209f812e10ddc62fcd3f3083b9710307545807
diff --git a/av1/encoder/intra_mode_search.c b/av1/encoder/intra_mode_search.c
index bcadd9a..0f9ecfe 100644
--- a/av1/encoder/intra_mode_search.c
+++ b/av1/encoder/intra_mode_search.c
@@ -883,7 +883,7 @@
cpi->oxcf.intra_mode_cfg.enable_angle_delta) {
if (sf->intra_sf.intra_pruning_with_hog &&
!intra_search_state->dir_mode_skip_mask_ready) {
- const float thresh[3] = { -1.2f, 0.0f, 1.2f };
+ const float thresh[4] = { -1.2f, 0.0f, 0.0f, 1.2f };
prune_intra_mode_with_hog(x, bsize,
thresh[sf->intra_sf.intra_pruning_with_hog - 1],
intra_search_state->directional_mode_skip_mask);
@@ -1029,7 +1029,7 @@
if (cpi->sf.intra_sf.intra_pruning_with_hog) {
// Less aggressive thresholds are used here than those used in inter frame
// encoding.
- const float thresh[3] = { -1.2f, -0.6f, 0.4f };
+ const float thresh[4] = { -1.2f, -1.2f, -0.6f, 0.4f };
prune_intra_mode_with_hog(
x, bsize, thresh[cpi->sf.intra_sf.intra_pruning_with_hog - 1],
directional_mode_skip_mask);
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 03de202..c07731f 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -510,6 +510,7 @@
sf->intra_sf.disable_smooth_intra =
!frame_is_intra_only(&cpi->common) || (cpi->rc.frames_to_key != 1);
+ sf->intra_sf.intra_pruning_with_hog = 2;
sf->rd_sf.perform_coeff_opt = is_boosted_arf2_bwd_type ? 3 : 4;
@@ -556,7 +557,7 @@
sf->inter_sf.txfm_rd_gate_level =
boosted ? 0 : (is_boosted_arf2_bwd_type ? 1 : 2);
- sf->intra_sf.intra_pruning_with_hog = 2;
+ sf->intra_sf.intra_pruning_with_hog = 3;
sf->intra_sf.prune_palette_search_level = 2;
sf->tpl_sf.skip_alike_starting_mv = 2;
@@ -687,7 +688,7 @@
sf->inter_sf.prune_inter_modes_based_on_tpl = boosted ? 0 : 3;
sf->inter_sf.prune_nearmv_using_neighbors = 1;
- sf->intra_sf.intra_pruning_with_hog = 3;
+ sf->intra_sf.intra_pruning_with_hog = 4;
sf->part_sf.prune_rectangular_split_based_on_qidx =
boosted || allow_screen_content_tools ? 0 : 1;