Add a new intra prediction mode "smooth".
This is added as part of ALT_INTRA experiment.
This uses interpolation between top row and estimated bottom row; as
well as left column and estimated right column to generate the
predicted block.The interpolation is done using a predefined weight
array.
Based on experiments, the currently chosen weight array was created
to represent a quadratic curve, but can be tuned further if needed.
Improvement from baseline on Derf set:
ALL Keyframes: 1.279%
Improvement from existing ALT_INTRA:
ALL Keyframes: 1.146%
Change-Id: I12637fa1b91bd836f1c59b27d6caee2004acbdd4
diff --git a/av1/encoder/rd.h b/av1/encoder/rd.h
index c9d21a8..35093e2d 100644
--- a/av1/encoder/rd.h
+++ b/av1/encoder/rd.h
@@ -45,24 +45,6 @@
#define INVALID_MV 0x80008000
#if CONFIG_EXT_REFS
-
-#if CONFIG_EXT_INTER
-#define MAX_MODES 144
-#else // CONFIG_EXT_INTER
-#define MAX_MODES 66
-#endif // CONFIG_EXT_INTER
-
-#else // CONFIG_EXT_REFS
-
-#if CONFIG_EXT_INTER
-#define MAX_MODES 57
-#else // CONFIG_EXT_INTER
-#define MAX_MODES 30
-#endif // CONFIG_EXT_INTER
-
-#endif // CONFIG_EXT_REFS
-
-#if CONFIG_EXT_REFS
#define MAX_REFS 15
#else
#define MAX_REFS 6
@@ -157,6 +139,10 @@
THR_TM,
+#if CONFIG_ALT_INTRA
+ THR_SMOOTH,
+#endif // CONFIG_ALT_INTRA
+
#if CONFIG_EXT_INTER
THR_COMP_NEAR_NEARESTLA,
@@ -327,6 +313,7 @@
THR_COMP_INTERINTRA_NEARA,
THR_COMP_INTERINTRA_NEWA,
#endif // CONFIG_EXT_INTER
+ MAX_MODES
} THR_MODES;
typedef enum {