Fix get_prediction_mode_idx
Update table intra_to_mode_idx, single_inter_to_mode_idx, and
comp_inter_to_mode_idx using enumerator type THR_MODES so these
tables can be kept aligned with the mode ordering change.
STATS_CHANGED
Change-Id: I0967b123ff620992d7725997be462bbd23c4ede1
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index df10b15..823ac03 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -412,32 +412,36 @@
};
static const int16_t intra_to_mode_idx[INTRA_MODE_NUM] = {
- 7, // DC_PRED,
- 134, // V_PRED,
- 133, // H_PRED,
- 140, // D45_PRED,
- 135, // D135_PRED,
- 139, // D113_PRED,
- 137, // D157_PRED,
- 136, // D203_PRED,
- 138, // D67_PRED,
- 46, // SMOOTH_PRED,
- 47, // SMOOTH_V_PRED,
- 48, // SMOOTH_H_PRED,
- 45, // PAETH_PRED,
+ THR_DC, // DC_PRED,
+ THR_V_PRED, // V_PRED,
+ THR_H_PRED, // H_PRED,
+ THR_D45_PRED, // D45_PRED,
+ THR_D135_PRED, // D135_PRED,
+ THR_D113_PRED, // D113_PRED,
+ THR_D157_PRED, // D157_PRED,
+ THR_D203_PRED, // D203_PRED,
+ THR_D67_PRED, // D67_PRED,
+ THR_SMOOTH, // SMOOTH_PRED,
+ THR_SMOOTH_V, // SMOOTH_V_PRED,
+ THR_SMOOTH_H, // SMOOTH_H_PRED,
+ THR_PAETH, // PAETH_PRED,
};
/* clang-format off */
static const int16_t single_inter_to_mode_idx[SINGLE_INTER_MODE_NUM]
[REF_FRAMES] = {
// NEARESTMV,
- { -1, 0, 1, 2, 6, 3, 4, 5, },
+ { -1, THR_NEARESTMV, THR_NEARESTL2, THR_NEARESTL3,
+ THR_NEARESTG, THR_NEARESTB, THR_NEARESTA2, THR_NEARESTA, },
// NEARMV,
- { -1, 15, 16, 17, 21, 18, 19, 20, },
+ { -1, THR_NEARMV, THR_NEARL2, THR_NEARL3,
+ THR_NEARG, THR_NEARB, THR_NEARA2, THR_NEARA, },
// GLOBALMV,
- { -1, 22, 23, 24, 27, 25, 26, 28, },
+ { -1, THR_GLOBALMV, THR_GLOBALL2, THR_GLOBALL3,
+ THR_GLOBALG, THR_GLOBALB, THR_GLOBALA2, THR_GLOBALA, },
// NEWMV,
- { -1, 8, 9, 10, 14, 11, 12, 13, },
+ { -1, THR_NEWMV, THR_NEWL2, THR_NEWL3,
+ THR_NEWG, THR_NEWB, THR_NEWA2, THR_NEWA, },
};
/* clang-format on */
@@ -446,91 +450,211 @@
[REF_FRAMES] = {
// NEAREST_NEARESTMV,
{
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, 41, 42, 43, 33, 37, 29, },
- { -1, -1, -1, -1, -1, 34, 38, 30, },
- { -1, -1, -1, -1, -1, 35, 39, 31, },
- { -1, -1, -1, -1, -1, 36, 40, 32, },
- { -1, -1, -1, -1, -1, -1, -1, 44, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1,
+ THR_COMP_NEAREST_NEARESTLL2, THR_COMP_NEAREST_NEARESTLL3,
+ THR_COMP_NEAREST_NEARESTLG, THR_COMP_NEAREST_NEARESTLB,
+ THR_COMP_NEAREST_NEARESTLA2, THR_COMP_NEAREST_NEARESTLA, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAREST_NEARESTL2B,
+ THR_COMP_NEAREST_NEARESTL2A2, THR_COMP_NEAREST_NEARESTL2A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAREST_NEARESTL3B,
+ THR_COMP_NEAREST_NEARESTL3A2, THR_COMP_NEAREST_NEARESTL3A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAREST_NEARESTGB,
+ THR_COMP_NEAREST_NEARESTGA2, THR_COMP_NEAREST_NEARESTGA, },
+ { -1, -1,
+ -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAREST_NEARESTBA, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
},
// NEAR_NEARMV,
{
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, 141, 148, 155, 77, 105, 49, },
- { -1, -1, -1, -1, -1, 84, 112, 56, },
- { -1, -1, -1, -1, -1, 91, 119, 63, },
- { -1, -1, -1, -1, -1, 98, 126, 70, },
- { -1, -1, -1, -1, -1, -1, -1, 162, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1,
+ THR_COMP_NEAR_NEARLL2, THR_COMP_NEAR_NEARLL3,
+ THR_COMP_NEAR_NEARLG, THR_COMP_NEAR_NEARLB,
+ THR_COMP_NEAR_NEARLA2, THR_COMP_NEAR_NEARLA, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAR_NEARL2B,
+ THR_COMP_NEAR_NEARL2A2, THR_COMP_NEAR_NEARL2A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAR_NEARL3B,
+ THR_COMP_NEAR_NEARL3A2, THR_COMP_NEAR_NEARL3A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAR_NEARGB,
+ THR_COMP_NEAR_NEARGA2, THR_COMP_NEAR_NEARGA, },
+ { -1, -1,
+ -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAR_NEARBA, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
},
// NEAREST_NEWMV,
{
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, 143, 150, 157, 79, 107, 51, },
- { -1, -1, -1, -1, -1, 86, 114, 58, },
- { -1, -1, -1, -1, -1, 93, 121, 65, },
- { -1, -1, -1, -1, -1, 100, 128, 72, },
- { -1, -1, -1, -1, -1, -1, -1, 164, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1,
+ THR_COMP_NEAREST_NEWLL2, THR_COMP_NEAREST_NEWLL3,
+ THR_COMP_NEAREST_NEWLG, THR_COMP_NEAREST_NEWLB,
+ THR_COMP_NEAREST_NEWLA2, THR_COMP_NEAREST_NEWLA, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAREST_NEWL2B,
+ THR_COMP_NEAREST_NEWL2A2, THR_COMP_NEAREST_NEWL2A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAREST_NEWL3B,
+ THR_COMP_NEAREST_NEWL3A2, THR_COMP_NEAREST_NEWL3A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAREST_NEWGB,
+ THR_COMP_NEAREST_NEWGA2, THR_COMP_NEAREST_NEWGA, },
+ { -1, -1,
+ -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAREST_NEWBA, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
},
// NEW_NEARESTMV,
{
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, 142, 149, 156, 78, 106, 50, },
- { -1, -1, -1, -1, -1, 85, 113, 57, },
- { -1, -1, -1, -1, -1, 92, 120, 64, },
- { -1, -1, -1, -1, -1, 99, 127, 71, },
- { -1, -1, -1, -1, -1, -1, -1, 163, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1,
+ THR_COMP_NEW_NEARESTLL2, THR_COMP_NEW_NEARESTLL3,
+ THR_COMP_NEW_NEARESTLG, THR_COMP_NEW_NEARESTLB,
+ THR_COMP_NEW_NEARESTLA2, THR_COMP_NEW_NEARESTLA, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEW_NEARESTL2B,
+ THR_COMP_NEW_NEARESTL2A2, THR_COMP_NEW_NEARESTL2A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEW_NEARESTL3B,
+ THR_COMP_NEW_NEARESTL3A2, THR_COMP_NEW_NEARESTL3A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEW_NEARESTGB,
+ THR_COMP_NEW_NEARESTGA2, THR_COMP_NEW_NEARESTGA, },
+ { -1, -1,
+ -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEW_NEARESTBA, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
},
// NEAR_NEWMV,
{
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, 145, 152, 159, 81, 109, 53, },
- { -1, -1, -1, -1, -1, 88, 116, 60, },
- { -1, -1, -1, -1, -1, 95, 123, 67, },
- { -1, -1, -1, -1, -1, 102, 130, 74, },
- { -1, -1, -1, -1, -1, -1, -1, 166, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1,
+ THR_COMP_NEAR_NEWLL2, THR_COMP_NEAR_NEWLL3,
+ THR_COMP_NEAR_NEWLG, THR_COMP_NEAR_NEWLB,
+ THR_COMP_NEAR_NEWLA2, THR_COMP_NEAR_NEWLA, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAR_NEWL2B,
+ THR_COMP_NEAR_NEWL2A2, THR_COMP_NEAR_NEWL2A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAR_NEWL3B,
+ THR_COMP_NEAR_NEWL3A2, THR_COMP_NEAR_NEWL3A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAR_NEWGB,
+ THR_COMP_NEAR_NEWGA2, THR_COMP_NEAR_NEWGA, },
+ { -1, -1,
+ -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEAR_NEWBA, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
},
// NEW_NEARMV,
{
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, 144, 151, 158, 80, 108, 52, },
- { -1, -1, -1, -1, -1, 87, 115, 59, },
- { -1, -1, -1, -1, -1, 94, 122, 66, },
- { -1, -1, -1, -1, -1, 101, 129, 73, },
- { -1, -1, -1, -1, -1, -1, -1, 165, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1,
+ THR_COMP_NEW_NEARLL2, THR_COMP_NEW_NEARLL3,
+ THR_COMP_NEW_NEARLG, THR_COMP_NEW_NEARLB,
+ THR_COMP_NEW_NEARLA2, THR_COMP_NEW_NEARLA, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEW_NEARL2B,
+ THR_COMP_NEW_NEARL2A2, THR_COMP_NEW_NEARL2A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEW_NEARL3B,
+ THR_COMP_NEW_NEARL3A2, THR_COMP_NEW_NEARL3A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEW_NEARGB,
+ THR_COMP_NEW_NEARGA2, THR_COMP_NEW_NEARGA, },
+ { -1, -1,
+ -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEW_NEARBA, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
},
// GLOBAL_GLOBALMV,
{
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, 147, 154, 161, 83, 111, 55, },
- { -1, -1, -1, -1, -1, 90, 118, 62, },
- { -1, -1, -1, -1, -1, 97, 125, 69, },
- { -1, -1, -1, -1, -1, 104, 132, 76, },
- { -1, -1, -1, -1, -1, -1, -1, 168, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1,
+ THR_COMP_GLOBAL_GLOBALLL2, THR_COMP_GLOBAL_GLOBALLL3,
+ THR_COMP_GLOBAL_GLOBALLG, THR_COMP_GLOBAL_GLOBALLB,
+ THR_COMP_GLOBAL_GLOBALLA2, THR_COMP_GLOBAL_GLOBALLA, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_GLOBAL_GLOBALL2B,
+ THR_COMP_GLOBAL_GLOBALL2A2, THR_COMP_GLOBAL_GLOBALL2A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_GLOBAL_GLOBALL3B,
+ THR_COMP_GLOBAL_GLOBALL3A2, THR_COMP_GLOBAL_GLOBALL3A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_GLOBAL_GLOBALGB,
+ THR_COMP_GLOBAL_GLOBALGA2, THR_COMP_GLOBAL_GLOBALGA, },
+ { -1, -1,
+ -1, -1,
+ -1, -1,
+ -1, THR_COMP_GLOBAL_GLOBALBA, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
},
// NEW_NEWMV,
{
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, 146, 153, 160, 82, 110, 54, },
- { -1, -1, -1, -1, -1, 89, 117, 61, },
- { -1, -1, -1, -1, -1, 96, 124, 68, },
- { -1, -1, -1, -1, -1, 103, 131, 75, },
- { -1, -1, -1, -1, -1, -1, -1, 167, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
- { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1,
+ THR_COMP_NEW_NEWLL2, THR_COMP_NEW_NEWLL3,
+ THR_COMP_NEW_NEWLG, THR_COMP_NEW_NEWLB,
+ THR_COMP_NEW_NEWLA2, THR_COMP_NEW_NEWLA, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEW_NEWL2B,
+ THR_COMP_NEW_NEWL2A2, THR_COMP_NEW_NEWL2A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEW_NEWL3B,
+ THR_COMP_NEW_NEWL3A2, THR_COMP_NEW_NEWL3A, },
+ { -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEW_NEWGB,
+ THR_COMP_NEW_NEWGA2, THR_COMP_NEW_NEWGA, },
+ { -1, -1,
+ -1, -1,
+ -1, -1,
+ -1, THR_COMP_NEW_NEWBA, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
+ { -1, -1, -1, -1, -1, -1, -1, -1, },
},
};
/* clang-format on */