Add a new experiment SMOOTH_HV.
This experiment extends ALT_INTRA by adding two new modes:
smooth horizontal and smooth vertical.
Improvement on *intra frames* in BDRate (PSNR):
===============================================
AWCY (high latency): -0.46%
(Also, -1.0% or more on PSNR Cb,Cr and APSNR Cb,Cr).
AWCY (low latency): -0.43%
(Also, -0.88% to -0.94% on PSNR Cb,Cr and APSNR Cb,Cr).
Google sets:
lowres: -0.454
midres: -0.484
hdres: -0.525
Improvement on *video overall* in BDRate (PSNR):
================================================
AWCY (high latency): -0.15%
Google sets:
lowres: -0.085
midres: -0.079
Change-Id: I9f4e7c1b8ded1fe244c72838f336103ccc715d50
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 2953a5e..abe1b01 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -217,6 +217,10 @@
#if CONFIG_ALT_INTRA
{ SMOOTH_PRED, { INTRA_FRAME, NONE_FRAME } },
+#if CONFIG_SMOOTH_HV
+ { SMOOTH_V_PRED, { INTRA_FRAME, NONE_FRAME } },
+ { SMOOTH_H_PRED, { INTRA_FRAME, NONE_FRAME } },
+#endif // CONFIG_SMOOTH_HV
#endif // CONFIG_ALT_INTRA
#if CONFIG_EXT_INTER
@@ -9549,12 +9553,10 @@
const int *const intra_mode_cost = cpi->mbmode_cost[size_group_lookup[bsize]];
int best_skip2 = 0;
uint8_t ref_frame_skip_mask[2] = { 0 };
-#if CONFIG_EXT_INTER
uint32_t mode_skip_mask[TOTAL_REFS_PER_FRAME] = { 0 };
+#if CONFIG_EXT_INTER
MV_REFERENCE_FRAME best_single_inter_ref = LAST_FRAME;
int64_t best_single_inter_rd = INT64_MAX;
-#else
- uint16_t mode_skip_mask[TOTAL_REFS_PER_FRAME] = { 0 };
#endif // CONFIG_EXT_INTER
int mode_skip_start = sf->mode_skip_start + 1;
const int *const rd_threshes = rd_opt->threshes[segment_id][bsize];