Disable sf chroma_intra_pruning_with_hog conditionally
The sf chroma_intra_pruning_with_hog prunes the directional chroma
intra modes. Since the sf prune_chroma_modes_using_luma_winner
already constrains the number of chroma directional mode evaluations
to a maximum of 1, the HOG computation and the associated pruning
logic does not seem to help speed-up the chroma mode evaluations.
Hence, the sf chroma_intra_pruning_with_hog is
disabled when prune_chroma_modes_using_luma_winner is enabled.
For AVIF still-image encode,
Instruction Count
/ Encode Time BD-Rate Loss(%)
cpu-used Reduction(%) psnr avg.psnrCb avg.psnrCr ssim
4 -0.166 -0.1053 0.0101 -0.1264 -0.1106
5 -0.257 -0.1262 -0.2161 -0.3359 -0.1386
6 1.254 -0.1085 -0.0115 -0.1366 -0.0972
7 -0.408 -0.3400 -0.0883 -0.3082 -0.3389
8 -0.335 -0.0242 0.0423 -0.0554 -0.0218
STATS_CHANGED
Change-Id: I29517eeb79482dacc6b6a86f28b8d3b5d620c506
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index a671ea7..8786ee2 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -538,6 +538,15 @@
sf->rt_sf.var_part_split_threshold_shift = 9;
sf->rt_sf.vbp_prune_16x16_split_using_min_max_sub_blk_var = true;
}
+
+ // As the speed feature prune_chroma_modes_using_luma_winner already
+ // constrains the number of chroma directional mode evaluations to a maximum
+ // of 1, the HOG computation and the associated pruning logic does not seem to
+ // help speed-up the chroma mode evaluations. Hence disable the speed feature
+ // chroma_intra_pruning_with_hog when prune_chroma_modes_using_luma_winner is
+ // enabled.
+ if (sf->intra_sf.prune_chroma_modes_using_luma_winner)
+ sf->intra_sf.chroma_intra_pruning_with_hog = 0;
}
static void set_good_speed_feature_framesize_dependent(