summaryrefslogtreecommitdiffstats
path: root/third_party/aom/av1/common/entropymode.c
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/aom/av1/common/entropymode.c')
-rw-r--r--third_party/aom/av1/common/entropymode.c2626
1 files changed, 1513 insertions, 1113 deletions
diff --git a/third_party/aom/av1/common/entropymode.c b/third_party/aom/av1/common/entropymode.c
index 65ed163a6..9faa03e69 100644
--- a/third_party/aom/av1/common/entropymode.c
+++ b/third_party/aom/av1/common/entropymode.c
@@ -293,649 +293,52 @@ const aom_prob default_coeff_lps[TX_SIZES][PLANE_TYPES][LEVEL_CONTEXTS] = {
};
#endif // CONFIG_LV_MAP
-#if CONFIG_ALT_INTRA
-#if CONFIG_SMOOTH_HV
-const aom_prob av1_kf_y_mode_prob[INTRA_MODES][INTRA_MODES][INTRA_MODES - 1] = {
- {
- // above = dc
- { 111, 28, 44, 99, 166, 154, 28, 28, 27, 45, 134, 109 }, // left = dc
- { 82, 31, 102, 75, 117, 135, 33, 34, 21, 31, 134, 149 }, // left = v
- { 40, 29, 14, 161, 235, 180, 14, 12, 34, 52, 128, 69 }, // left = h
- { 98, 19, 36, 74, 137, 153, 49, 35, 25, 61, 137, 106 }, // left = d45
- { 59, 11, 25, 128, 47, 162, 29, 20, 53, 38, 143, 117 }, // left = d135
- { 86, 20, 51, 160, 39, 101, 69, 101, 112, 154, 158, 145 }, // left = d117
- { 49, 10, 17, 112, 98, 206, 16, 11, 104, 44, 138, 88 }, // left = d153
- { 64, 14, 22, 80, 170, 168, 19, 15, 26, 101, 137, 90 }, // left = d207
- { 84, 21, 31, 62, 110, 135, 40, 57, 22, 45, 143, 130 }, // left = d63
- { 58, 16, 31, 60, 154, 225, 17, 23, 19, 30, 138, 113 }, // left = smooth
- { 51, 19, 46, 64, 148, 209, 18, 28, 17, 25, 137,
- 149 }, // left = smooth_v
- { 68, 15, 26, 61, 175, 233, 17, 17, 19, 29, 135, 76 }, // left = smooth_h
- { 49, 61, 41, 113, 203, 158, 26, 26, 29, 55, 123, 99 }, // left = tm
- },
- {
- // above = v
- { 31, 26, 135, 81, 100, 82, 13, 40, 14, 18, 131, 182 }, // left = dc
- { 24, 27, 175, 53, 93, 85, 17, 40, 5, 14, 119, 195 }, // left = v
- { 20, 34, 71, 97, 209, 133, 15, 24, 14, 28, 138, 129 }, // left = h
- { 54, 19, 88, 55, 102, 103, 39, 45, 8, 44, 134, 167 }, // left = d45
- { 23, 16, 93, 101, 33, 119, 23, 41, 26, 22, 136, 168 }, // left = d135
- { 34, 17, 130, 149, 30, 72, 43, 129, 66, 100, 143, 192 }, // left = d117
- { 23, 17, 83, 85, 63, 158, 16, 30, 64, 28, 145, 146 }, // left = d153
- { 33, 17, 85, 60, 136, 115, 21, 32, 15, 59, 134, 155 }, // left = d207
- { 40, 20, 103, 53, 66, 84, 26, 72, 9, 29, 134, 177 }, // left = d63
- { 22, 18, 112, 41, 138, 192, 12, 30, 9, 16, 131, 178 }, // left = smooth
- { 20, 20, 125, 39, 137, 179, 11, 28, 7, 12, 123,
- 199 }, // left = smooth_v
- { 26, 19, 111, 46, 160, 201, 13, 29, 8, 17, 132,
- 156 }, // left = smooth_h
- { 20, 35, 138, 62, 162, 107, 21, 36, 9, 24, 125, 181 }, // left = tm
- },
- {
- // above = h
- { 89, 27, 21, 136, 218, 175, 20, 19, 35, 56, 134, 96 }, // left = dc
- { 63, 37, 67, 117, 190, 160, 22, 29, 20, 45, 137, 137 }, // left = v
- { 34, 23, 7, 177, 245, 207, 13, 9, 30, 73, 125, 63 }, // left = h
- { 84, 29, 20, 83, 184, 182, 38, 25, 34, 86, 134, 106 }, // left = d45
- { 65, 19, 19, 119, 109, 177, 27, 19, 56, 56, 141, 103 }, // left = d135
- { 88, 25, 46, 152, 102, 130, 70, 61, 96, 157, 130, 102 }, // left = d117
- { 51, 11, 10, 108, 168, 216, 14, 9, 93, 58, 132, 79 }, // left = d153
- { 53, 15, 9, 103, 224, 192, 20, 13, 23, 122, 135, 80 }, // left = d207
- { 64, 30, 19, 90, 171, 176, 24, 44, 23, 56, 144, 121 }, // left = d63
- { 46, 20, 17, 94, 214, 234, 14, 15, 23, 38, 132, 98 }, // left = smooth
- { 41, 27, 22, 102, 214, 229, 13, 17, 18, 35, 133,
- 137 }, // left = smooth_v
- { 52, 17, 14, 95, 224, 241, 14, 11, 24, 38, 133, 62 }, // left = smooth_h
- { 35, 43, 21, 148, 234, 188, 22, 17, 27, 47, 133, 100 }, // left = tm
- },
- {
- // above = d45
- { 80, 14, 31, 74, 129, 146, 52, 50, 29, 50, 138, 110 }, // left = dc
- { 59, 16, 84, 52, 106, 121, 63, 60, 20, 40, 143, 150 }, // left = v
- { 41, 19, 16, 118, 216, 168, 36, 27, 24, 62, 136, 69 }, // left = h
- { 86, 11, 11, 37, 168, 158, 113, 53, 8, 99, 140, 121 }, // left = d45
- { 49, 8, 24, 94, 49, 139, 48, 45, 40, 53, 134, 131 }, // left = d135
- { 58, 11, 36, 127, 45, 97, 90, 143, 91, 180, 153, 146 }, // left = d117
- { 39, 9, 14, 93, 97, 187, 32, 26, 66, 57, 134, 106 }, // left = d153
- { 75, 8, 26, 68, 135, 154, 51, 30, 17, 113, 144, 83 }, // left = d207
- { 77, 13, 18, 46, 146, 143, 81, 102, 18, 59, 142, 143 }, // left = d63
- { 49, 13, 31, 47, 142, 218, 46, 42, 19, 46, 146, 120 }, // left = smooth
- { 46, 15, 35, 47, 132, 206, 47, 50, 18, 37, 143,
- 147 }, // left = smooth_v
- { 54, 11, 25, 54, 157, 229, 43, 34, 20, 44, 136, 99 }, // left = smooth_h
- { 40, 26, 41, 72, 176, 145, 78, 51, 27, 59, 133, 121 }, // left = tm
- },
- {
- // above = d135
- { 57, 10, 21, 118, 61, 178, 16, 20, 65, 52, 145, 125 }, // left = dc
- { 56, 15, 48, 107, 58, 153, 20, 32, 42, 35, 143, 162 }, // left = v
- { 28, 19, 8, 132, 172, 184, 14, 14, 45, 55, 140, 79 }, // left = h
- { 58, 13, 15, 73, 66, 177, 61, 24, 30, 72, 143, 122 }, // left = d45
- { 35, 5, 13, 150, 20, 187, 19, 21, 66, 38, 144, 130 }, // left = d135
- { 57, 9, 30, 173, 28, 133, 38, 71, 156, 140, 156, 173 }, // left = d117
- { 30, 6, 9, 121, 54, 207, 16, 20, 110, 62, 151, 94 }, // left = d153
- { 51, 9, 15, 88, 96, 188, 22, 18, 40, 95, 140, 98 }, // left = d207
- { 56, 12, 21, 82, 53, 140, 30, 37, 32, 47, 145, 149 }, // left = d63
- { 43, 12, 21, 83, 84, 222, 14, 23, 31, 35, 143, 127 }, // left = smooth
- { 41, 12, 25, 81, 75, 210, 16, 29, 29, 29, 141, 154 }, // left = smooth_v
- { 42, 11, 19, 81, 109, 226, 17, 20, 34, 36, 143,
- 110 }, // left = smooth_h
- { 36, 26, 27, 107, 132, 151, 24, 28, 38, 46, 140, 127 }, // left = tm
- },
- {
- // above = d117
- { 52, 15, 58, 191, 40, 95, 38, 78, 98, 140, 152, 175 }, // left = dc
- { 50, 16, 85, 186, 28, 84, 41, 105, 65, 119, 158, 206 }, // left = v
- { 30, 23, 30, 179, 122, 124, 38, 47, 68, 140, 161, 102 }, // left = h
- { 75, 15, 47, 120, 49, 127, 63, 86, 54, 204, 175, 185 }, // left = d45
- { 36, 9, 37, 198, 15, 120, 56, 78, 104, 151, 155, 165 }, // left = d135
- { 38, 9, 54, 198, 12, 75, 47, 92, 71, 130, 170, 201 }, // left = d117
- { 31, 13, 33, 167, 46, 144, 32, 59, 124, 151, 162, 128 }, // left = d153
- { 47, 15, 43, 123, 70, 129, 49, 72, 48, 175, 163, 125 }, // left = d207
- { 61, 19, 62, 141, 35, 116, 55, 117, 51, 162, 150, 201 }, // left = d63
- { 22, 17, 34, 105, 41, 101, 20, 34, 26, 39, 146, 157 }, // left = smooth
- { 19, 14, 37, 116, 33, 91, 23, 38, 17, 36, 137, 178 }, // left = smooth_v
- { 25, 17, 35, 102, 59, 118, 23, 28, 30, 43, 147,
- 148 }, // left = smooth_h
- { 35, 24, 62, 164, 95, 103, 47, 94, 65, 115, 186, 128 }, // left = tm
- },
- {
- // above = d153
- { 75, 12, 17, 101, 150, 177, 14, 13, 101, 55, 141, 104 }, // left = dc
- { 69, 19, 46, 91, 133, 167, 19, 22, 72, 41, 133, 143 }, // left = v
- { 30, 12, 6, 132, 209, 214, 10, 8, 75, 78, 137, 70 }, // left = h
- { 77, 16, 12, 85, 120, 203, 35, 17, 69, 66, 137, 96 }, // left = d45
- { 51, 8, 11, 119, 58, 178, 20, 17, 90, 51, 145, 92 }, // left = d135
- { 76, 8, 24, 144, 48, 128, 37, 46, 173, 153, 159, 111 }, // left = d117
- { 40, 6, 6, 87, 112, 213, 7, 7, 152, 54, 141, 84 }, // left = d153
- { 46, 6, 7, 78, 161, 195, 15, 11, 66, 97, 137, 83 }, // left = d207
- { 81, 17, 17, 82, 97, 187, 26, 34, 54, 60, 154, 128 }, // left = d63
- { 47, 10, 16, 74, 138, 233, 13, 17, 59, 42, 143, 106 }, // left = smooth
- { 45, 12, 17, 76, 141, 227, 14, 16, 56, 43, 141,
- 135 }, // left = smooth_v
- { 55, 10, 13, 69, 162, 238, 11, 11, 59, 45, 133, 73 }, // left = smooth_h
- { 44, 23, 19, 110, 176, 165, 16, 19, 68, 59, 131, 89 }, // left = tm
- },
- {
- // above = d207
- { 86, 15, 26, 87, 166, 178, 27, 25, 27, 75, 145, 108 }, // left = dc
- { 71, 27, 62, 70, 126, 142, 29, 34, 17, 69, 141, 144 }, // left = v
- { 48, 21, 11, 130, 231, 196, 24, 19, 27, 82, 133, 72 }, // left = h
- { 82, 21, 14, 54, 128, 188, 55, 38, 19, 111, 148, 119 }, // left = d45
- { 57, 11, 17, 78, 83, 171, 43, 31, 37, 58, 143, 100 }, // left = d135
- { 76, 16, 44, 115, 77, 130, 78, 79, 82, 178, 132, 123 }, // left = d117
- { 50, 12, 11, 82, 133, 207, 27, 20, 67, 79, 138, 87 }, // left = d153
- { 77, 9, 13, 44, 174, 169, 26, 13, 9, 167, 135, 90 }, // left = d207
- { 70, 16, 18, 57, 117, 167, 43, 46, 17, 70, 150, 116 }, // left = d63
- { 56, 13, 18, 60, 170, 236, 24, 19, 18, 59, 139, 105 }, // left = smooth
- { 50, 17, 26, 60, 165, 234, 24, 20, 15, 53, 134,
- 136 }, // left = smooth_v
- { 57, 11, 16, 62, 188, 239, 23, 15, 18, 57, 134, 79 }, // left = smooth_h
- { 49, 31, 24, 78, 194, 184, 45, 27, 19, 81, 138, 102 }, // left = tm
- },
- {
- // above = d63
- { 53, 13, 46, 61, 109, 116, 40, 83, 19, 31, 141, 150 }, // left = dc
- { 45, 14, 75, 40, 79, 102, 48, 118, 14, 23, 138, 174 }, // left = v
- { 34, 14, 24, 98, 214, 128, 33, 54, 18, 51, 138, 103 }, // left = h
- { 74, 11, 26, 37, 127, 154, 75, 89, 11, 61, 146, 125 }, // left = d45
- { 35, 9, 26, 68, 55, 128, 53, 74, 21, 33, 138, 132 }, // left = d135
- { 47, 9, 55, 108, 39, 105, 64, 193, 71, 127, 141, 193 }, // left = d117
- { 35, 9, 22, 66, 79, 172, 34, 64, 57, 44, 139, 112 }, // left = d153
- { 54, 7, 26, 48, 136, 139, 48, 60, 15, 82, 144, 116 }, // left = d207
- { 60, 9, 30, 25, 106, 127, 64, 143, 14, 42, 140, 165 }, // left = d63
- { 39, 11, 35, 40, 136, 212, 34, 67, 12, 28, 145, 150 }, // left = smooth
- { 37, 12, 45, 36, 128, 190, 34, 80, 8, 23, 138, 165 }, // left = smooth_v
- { 45, 9, 37, 46, 152, 196, 36, 58, 14, 29, 145, 127 }, // left = smooth_h
- { 35, 17, 53, 48, 159, 101, 53, 104, 15, 36, 132, 152 }, // left = tm
- },
- {
- // above = smooth
- { 58, 12, 33, 66, 168, 219, 13, 21, 16, 27, 137, 113 }, // left = dc
- { 42, 20, 78, 51, 139, 216, 16, 27, 11, 18, 134, 160 }, // left = v
- { 28, 17, 16, 118, 236, 231, 13, 14, 16, 41, 132, 77 }, // left = h
- { 58, 12, 23, 47, 138, 238, 39, 31, 16, 63, 142, 125 }, // left = d45
- { 44, 9, 27, 76, 80, 220, 21, 27, 27, 30, 142, 122 }, // left = d135
- { 30, 13, 38, 96, 47, 111, 26, 40, 31, 40, 146, 146 }, // left = d117
- { 42, 9, 19, 70, 127, 234, 15, 18, 53, 39, 138, 97 }, // left = d153
- { 44, 10, 20, 57, 186, 229, 15, 18, 15, 80, 141, 97 }, // left = d207
- { 51, 13, 33, 46, 123, 225, 23, 46, 15, 34, 143, 132 }, // left = d63
- { 42, 11, 29, 49, 154, 226, 13, 20, 12, 27, 139, 117 }, // left = smooth
- { 37, 13, 40, 48, 146, 217, 13, 23, 10, 24, 136,
- 149 }, // left = smooth_v
- { 45, 10, 24, 55, 176, 230, 11, 16, 14, 26, 136, 86 }, // left = smooth_h
- { 32, 23, 43, 78, 204, 225, 18, 23, 15, 30, 134, 117 }, // left = tm
- },
- {
- // above = smooth_v
- { 62, 13, 47, 68, 165, 204, 14, 24, 14, 22, 137, 146 }, // left = dc
- { 42, 18, 97, 43, 138, 210, 12, 28, 8, 14, 127, 184 }, // left = v
- { 30, 19, 21, 128, 238, 231, 13, 13, 17, 38, 138, 103 }, // left = h
- { 66, 12, 31, 50, 132, 228, 37, 34, 14, 56, 142, 135 }, // left = d45
- { 45, 9, 33, 75, 73, 216, 20, 33, 25, 25, 146, 153 }, // left = d135
- { 31, 13, 48, 97, 46, 82, 26, 55, 31, 25, 140, 179 }, // left = d117
- { 47, 10, 26, 67, 109, 229, 15, 23, 52, 34, 136, 133 }, // left = d153
- { 49, 9, 25, 58, 174, 206, 14, 20, 13, 83, 144, 121 }, // left = d207
- { 54, 15, 42, 47, 120, 209, 22, 55, 13, 25, 139, 162 }, // left = d63
- { 41, 11, 43, 50, 146, 216, 11, 21, 11, 23, 136, 151 }, // left = smooth
- { 37, 12, 58, 48, 148, 202, 11, 24, 8, 19, 134, 178 }, // left = smooth_v
- { 47, 11, 39, 54, 169, 212, 12, 21, 14, 22, 144,
- 115 }, // left = smooth_h
- { 36, 25, 57, 80, 215, 211, 16, 28, 11, 25, 130, 154 }, // left = tm
- },
- {
- // above = smooth_h
- { 57, 12, 28, 68, 186, 224, 11, 17, 20, 31, 133, 80 }, // left = dc
- { 42, 21, 86, 51, 159, 221, 14, 25, 10, 19, 134, 131 }, // left = v
- { 25, 17, 13, 123, 240, 240, 12, 10, 18, 42, 126, 56 }, // left = h
- { 55, 11, 25, 47, 146, 238, 36, 32, 18, 67, 144, 99 }, // left = d45
- { 47, 11, 23, 75, 95, 222, 20, 24, 28, 36, 143, 103 }, // left = d135
- { 30, 14, 34, 92, 59, 101, 27, 44, 31, 41, 142, 129 }, // left = d117
- { 42, 11, 17, 73, 158, 234, 14, 14, 59, 46, 138, 67 }, // left = d153
- { 45, 10, 15, 64, 194, 228, 14, 15, 17, 78, 133, 73 }, // left = d207
- { 52, 14, 29, 45, 138, 227, 25, 43, 16, 36, 136, 119 }, // left = d63
- { 42, 12, 23, 51, 173, 235, 12, 16, 13, 28, 134, 95 }, // left = smooth
- { 37, 16, 34, 52, 161, 228, 12, 19, 10, 28, 137,
- 123 }, // left = smooth_v
- { 45, 9, 18, 58, 200, 240, 10, 13, 13, 27, 129, 61 }, // left = smooth_h
- { 32, 26, 44, 82, 217, 222, 19, 23, 16, 34, 134, 99 }, // left = tm
- },
- {
- // above = tm
- { 51, 42, 80, 104, 178, 121, 20, 37, 25, 42, 136, 150 }, // left = dc
- { 35, 38, 132, 73, 152, 132, 21, 36, 10, 32, 127, 174 }, // left = v
- { 21, 34, 26, 149, 241, 165, 17, 15, 19, 60, 132, 95 }, // left = h
- { 64, 20, 36, 67, 169, 142, 45, 30, 16, 86, 145, 134 }, // left = d45
- { 40, 23, 51, 96, 102, 149, 25, 33, 34, 43, 143, 125 }, // left = d135
- { 58, 29, 93, 140, 93, 89, 51, 107, 64, 146, 145, 154 }, // left = d117
- { 33, 23, 44, 95, 139, 209, 12, 20, 76, 56, 131, 104 }, // left = d153
- { 40, 21, 28, 79, 210, 165, 21, 15, 16, 134, 138, 108 }, // left = d207
- { 45, 24, 58, 62, 132, 127, 32, 58, 15, 51, 143, 152 }, // left = d63
- { 33, 27, 53, 71, 195, 223, 14, 24, 12, 36, 136, 135 }, // left = smooth
- { 30, 29, 62, 68, 201, 217, 14, 24, 11, 31, 132,
- 162 }, // left = smooth_v
- { 37, 25, 50, 76, 204, 212, 12, 18, 15, 38, 134,
- 106 }, // left = smooth_h
- { 28, 53, 64, 100, 203, 162, 26, 29, 15, 52, 127, 138 }, // left = tm
- },
-};
-
-static const aom_prob default_if_y_probs[BLOCK_SIZE_GROUPS][INTRA_MODES - 1] = {
- { 56, 13, 37, 112, 91, 147, 66, 55, 72, 82, 124, 121 }, // block_size < 8x8
- { 92, 120, 47, 89, 120, 139, 18, 38, 32, 51, 146,
- 124 }, // block_size < 16x16
- { 115, 102, 41, 69, 170, 142, 8, 23, 13, 23, 122,
- 110 }, // block_size < 32x32
- { 148, 157, 47, 62, 238, 64, 7, 3, 1, 3, 74, 87 }, // block_size >= 32x32
-};
-
-static const aom_prob default_uv_probs[INTRA_MODES][INTRA_MODES - 1] = {
- { 184, 3, 67, 135, 194, 108, 33, 43, 40, 86, 121, 118 }, // y = dc
- { 23, 3, 204, 105, 117, 53, 14, 68, 13, 19, 112, 86 }, // y = v
- { 34, 3, 7, 220, 249, 142, 11, 13, 59, 124, 119, 131 }, // y = h
- { 138, 3, 45, 51, 162, 99, 110, 107, 21, 113, 119, 111 }, // y = d45
- { 130, 2, 28, 163, 52, 163, 16, 25, 94, 46, 127, 118 }, // y = d135
- { 109, 3, 55, 218, 20, 43, 34, 71, 74, 68, 108, 128 }, // y = d117
- { 124, 1, 17, 124, 151, 197, 8, 9, 184, 71, 123, 101 }, // y = d153
- { 127, 2, 16, 110, 225, 134, 28, 19, 18, 190, 124, 132 }, // y = d207
- { 115, 3, 65, 46, 134, 81, 37, 170, 20, 57, 122, 106 }, // y = d63
- { 131, 4, 52, 71, 177, 205, 17, 27, 20, 41, 128, 118 }, // y = smooth
- { 131, 5, 65, 70, 182, 196, 17, 30, 17, 35, 123, 154 }, // y = smooth_v
- { 137, 4, 43, 78, 196, 202, 16, 21, 24, 48, 123, 91 }, // y = smooth_h
- { 137, 12, 92, 142, 217, 71, 14, 45, 29, 62, 108, 109 }, // y = tm
-};
-
-#else // !CONFIG_SMOOTH_HV
-
-const aom_prob av1_kf_y_mode_prob[INTRA_MODES][INTRA_MODES][INTRA_MODES - 1] = {
- {
- // above = dc
- { 121, 30, 54, 128, 164, 158, 45, 41, 57, 91 }, // left = dc
- { 91, 38, 101, 102, 124, 141, 49, 48, 45, 73 }, // left = v
- { 66, 28, 27, 177, 225, 178, 32, 27, 52, 114 }, // left = h
- { 106, 23, 50, 101, 134, 148, 64, 50, 49, 107 }, // left = d45
- { 75, 24, 32, 118, 66, 143, 42, 28, 57, 74 }, // left = d135
- { 95, 24, 40, 142, 56, 141, 72, 121, 129, 255 }, // left = d117
- { 71, 14, 25, 126, 117, 201, 28, 21, 117, 89 }, // left = d153
- { 85, 16, 37, 110, 163, 178, 41, 28, 48, 134 }, // left = d207
- { 86, 25, 32, 83, 105, 133, 58, 81, 46, 95 }, // left = d63
- { 79, 25, 38, 75, 150, 255, 30, 49, 34, 51 }, // left = smooth
- { 68, 59, 48, 122, 193, 158, 43, 46, 46, 112 }, // left = paeth
- },
- {
- // above = v
- { 66, 21, 118, 111, 145, 107, 27, 50, 27, 54 }, // left = dc
- { 52, 25, 167, 81, 120, 101, 34, 55, 19, 32 }, // left = v
- { 56, 18, 72, 134, 208, 139, 31, 34, 27, 89 }, // left = h
- { 75, 21, 94, 88, 134, 123, 49, 57, 30, 68 }, // left = d45
- { 54, 18, 95, 96, 78, 107, 33, 49, 28, 65 }, // left = d135
- { 61, 19, 121, 131, 58, 101, 56, 143, 120, 255 }, // left = d117
- { 53, 13, 78, 103, 110, 147, 31, 41, 64, 77 }, // left = d153
- { 69, 14, 78, 93, 167, 121, 31, 39, 25, 113 }, // left = d207
- { 64, 18, 103, 79, 90, 108, 34, 73, 27, 69 }, // left = d63
- { 52, 20, 103, 61, 161, 255, 22, 42, 16, 35 }, // left = smooth
- { 50, 31, 124, 92, 161, 120, 50, 53, 23, 60 }, // left = paeth
- },
- {
- // above = h
- { 94, 29, 31, 158, 214, 178, 35, 31, 72, 111 }, // left = dc
- { 72, 37, 72, 149, 184, 177, 43, 40, 53, 105 }, // left = v
- { 53, 21, 14, 196, 242, 209, 29, 19, 55, 145 }, // left = h
- { 93, 36, 36, 104, 176, 166, 56, 37, 49, 141 }, // left = d45
- { 84, 32, 27, 124, 108, 143, 38, 36, 76, 134 }, // left = d135
- { 82, 31, 47, 142, 122, 161, 83, 73, 126, 255 }, // left = d117
- { 66, 16, 20, 133, 148, 210, 30, 17, 113, 104 }, // left = d153
- { 76, 16, 17, 129, 207, 181, 41, 20, 46, 163 }, // left = d207
- { 72, 38, 21, 100, 142, 171, 37, 70, 49, 111 }, // left = d63
- { 61, 30, 27, 115, 208, 255, 27, 31, 44, 63 }, // left = smooth
- { 53, 45, 29, 157, 222, 185, 49, 37, 55, 102 }, // left = paeth
- },
- {
- // above = d45
- { 96, 18, 37, 98, 138, 154, 68, 56, 59, 96 }, // left = dc
- { 73, 18, 92, 81, 125, 132, 75, 64, 27, 67 }, // left = v
- { 73, 17, 27, 128, 213, 154, 56, 44, 32, 105 }, // left = h
- { 101, 20, 21, 75, 138, 138, 82, 56, 23, 154 }, // left = d45
- { 71, 15, 33, 91, 70, 150, 62, 55, 38, 118 }, // left = d135
- { 80, 19, 38, 116, 69, 122, 88, 132, 92, 255 }, // left = d117
- { 68, 11, 22, 101, 116, 179, 52, 44, 85, 96 }, // left = d153
- { 101, 8, 59, 77, 151, 170, 53, 41, 35, 172 }, // left = d207
- { 82, 19, 24, 81, 172, 129, 82, 128, 43, 108 }, // left = d63
- { 66, 18, 42, 64, 143, 255, 52, 52, 25, 83 }, // left = smooth
- { 57, 24, 42, 85, 169, 145, 104, 71, 34, 86 }, // left = paeth
- },
- {
- // above = d135
- { 85, 15, 29, 113, 83, 176, 26, 29, 70, 110 }, // left = dc
- { 78, 28, 49, 111, 91, 141, 30, 42, 48, 75 }, // left = v
- { 56, 21, 16, 146, 190, 178, 23, 31, 49, 92 }, // left = h
- { 70, 19, 20, 65, 90, 173, 97, 36, 57, 98 }, // left = d45
- { 77, 14, 26, 110, 51, 156, 34, 35, 54, 74 }, // left = d135
- { 78, 18, 36, 153, 47, 131, 62, 102, 155, 255 }, // left = d117
- { 56, 11, 15, 115, 85, 196, 32, 45, 81, 96 }, // left = d153
- { 90, 18, 24, 95, 126, 159, 34, 31, 46, 136 }, // left = d207
- { 80, 23, 28, 90, 75, 141, 39, 50, 46, 87 }, // left = d63
- { 63, 22, 31, 91, 110, 255, 26, 43, 51, 51 }, // left = smooth
- { 66, 32, 31, 122, 145, 165, 40, 43, 56, 79 }, // left = paeth
- },
- {
- // above = d117
- { 81, 16, 61, 170, 74, 105, 54, 105, 113, 255 }, // left = dc
- { 74, 20, 86, 163, 64, 97, 65, 129, 101, 255 }, // left = v
- { 63, 15, 47, 168, 141, 176, 69, 77, 77, 255 }, // left = h
- { 70, 17, 59, 97, 78, 114, 74, 122, 80, 255 }, // left = d45
- { 78, 13, 50, 153, 34, 126, 75, 114, 120, 255 }, // left = d135
- { 72, 16, 69, 159, 28, 108, 63, 134, 107, 255 }, // left = d117
- { 66, 9, 47, 131, 79, 148, 41, 88, 105, 255 }, // left = d153
- { 78, 12, 60, 119, 105, 133, 47, 95, 63, 255 }, // left = d207
- { 82, 21, 58, 128, 61, 98, 64, 136, 91, 255 }, // left = d63
- { 23, 26, 28, 96, 85, 128, 51, 64, 85, 128 }, // left = smooth
- { 58, 27, 62, 162, 109, 151, 75, 106, 78, 255 }, // left = paeth
- },
- {
- // above = d153
- { 91, 18, 25, 121, 166, 173, 25, 25, 128, 102 }, // left = dc
- { 80, 27, 51, 111, 141, 147, 45, 38, 70, 85 }, // left = v
- { 53, 12, 11, 154, 197, 225, 17, 17, 74, 145 }, // left = h
- { 93, 27, 23, 111, 143, 188, 43, 39, 69, 112 }, // left = d45
- { 83, 15, 21, 118, 67, 178, 40, 33, 73, 92 }, // left = d135
- { 94, 13, 31, 132, 66, 110, 61, 82, 148, 255 }, // left = d117
- { 76, 9, 11, 96, 105, 201, 16, 13, 157, 97 }, // left = d153
- { 70, 10, 12, 100, 172, 201, 23, 17, 53, 158 }, // left = d207
- { 114, 25, 21, 104, 108, 163, 30, 47, 53, 111 }, // left = d63
- { 70, 16, 21, 80, 157, 255, 25, 30, 81, 69 }, // left = smooth
- { 87, 32, 26, 120, 191, 168, 32, 33, 70, 118 }, // left = paeth
- },
- {
- // above = d207
- { 98, 20, 39, 122, 168, 188, 38, 36, 54, 132 }, // left = dc
- { 81, 37, 62, 97, 122, 153, 38, 43, 36, 118 }, // left = v
- { 71, 21, 22, 154, 227, 183, 37, 31, 46, 140 }, // left = h
- { 90, 34, 19, 93, 144, 194, 65, 47, 41, 163 }, // left = d45
- { 78, 20, 27, 91, 93, 173, 57, 52, 49, 113 }, // left = d135
- { 79, 25, 45, 121, 101, 147, 69, 56, 122, 255 }, // left = d117
- { 73, 13, 19, 105, 122, 206, 40, 28, 91, 126 }, // left = d153
- { 101, 14, 22, 87, 153, 169, 33, 25, 26, 175 }, // left = d207
- { 81, 28, 23, 86, 115, 169, 48, 56, 41, 111 }, // left = d63
- { 70, 24, 30, 90, 180, 255, 38, 26, 36, 82 }, // left = smooth
- { 61, 37, 30, 94, 189, 163, 76, 50, 36, 127 }, // left = paeth
- },
- {
- // above = d63
- { 77, 13, 46, 86, 138, 117, 55, 88, 34, 68 }, // left = dc
- { 68, 17, 80, 64, 105, 108, 66, 115, 32, 45 }, // left = v
- { 62, 13, 37, 124, 210, 131, 46, 57, 28, 103 }, // left = h
- { 88, 15, 45, 73, 134, 145, 73, 101, 37, 87 }, // left = d45
- { 68, 16, 35, 78, 81, 133, 54, 71, 33, 67 }, // left = d135
- { 71, 16, 57, 108, 61, 135, 71, 184, 113, 255 }, // left = d117
- { 55, 10, 27, 69, 107, 158, 39, 76, 82, 95 }, // left = d153
- { 80, 9, 38, 78, 153, 145, 50, 63, 28, 123 }, // left = d207
- { 86, 12, 33, 49, 107, 135, 64, 134, 57, 89 }, // left = d63
- { 56, 19, 55, 60, 163, 255, 38, 84, 22, 36 }, // left = smooth
- { 53, 17, 60, 69, 151, 126, 73, 113, 26, 80 }, // left = paeth
- },
- {
- // above = smooth
- { 79, 16, 46, 89, 167, 255, 22, 36, 29, 42 }, // left = dc
- { 63, 22, 88, 71, 131, 255, 26, 41, 21, 35 }, // left = v
- { 51, 18, 28, 142, 232, 255, 26, 25, 25, 75 }, // left = h
- { 75, 18, 43, 70, 140, 255, 37, 49, 34, 89 }, // left = d45
- { 70, 14, 35, 87, 83, 255, 30, 36, 34, 50 }, // left = d135
- { 23, 26, 28, 96, 85, 128, 51, 64, 85, 128 }, // left = d117
- { 74, 12, 33, 83, 128, 255, 27, 33, 58, 68 }, // left = d153
- { 66, 11, 30, 77, 179, 255, 21, 27, 23, 113 }, // left = d207
- { 68, 22, 40, 65, 118, 255, 28, 61, 30, 50 }, // left = d63
- { 60, 18, 44, 69, 141, 255, 18, 32, 22, 40 }, // left = smooth
- { 52, 32, 54, 96, 194, 255, 33, 37, 25, 53 }, // left = paeth
- },
- {
- // above = paeth
- { 76, 47, 67, 123, 182, 150, 41, 52, 55, 97 }, // left = dc
- { 69, 40, 125, 102, 138, 138, 42, 55, 32, 70 }, // left = v
- { 46, 28, 27, 160, 232, 169, 34, 21, 32, 122 }, // left = h
- { 78, 35, 41, 99, 128, 124, 49, 43, 35, 111 }, // left = d45
- { 66, 28, 47, 100, 113, 145, 37, 40, 72, 93 }, // left = d135
- { 77, 37, 76, 134, 124, 124, 65, 122, 88, 255 }, // left = d117
- { 53, 23, 38, 108, 128, 204, 26, 32, 115, 114 }, // left = d153
- { 65, 20, 29, 101, 202, 186, 29, 24, 29, 188 }, // left = d207
- { 71, 24, 49, 81, 126, 151, 36, 65, 28, 93 }, // left = d63
- { 54, 36, 53, 94, 193, 255, 25, 38, 20, 64 }, // left = smooth
- { 52, 54, 60, 108, 176, 168, 47, 44, 50, 105 }, // left = paeth
- },
-};
-
-static const aom_prob default_if_y_probs[BLOCK_SIZE_GROUPS][INTRA_MODES - 1] = {
- { 88, 16, 47, 133, 143, 150, 70, 48, 84, 122 }, // block_size < 8x8
- { 75, 26, 51, 120, 158, 157, 44, 45, 56, 102 }, // block_size < 16x16
- { 73, 24, 60, 115, 184, 164, 26, 36, 32, 63 }, // block_size < 32x32
- { 96, 27, 50, 107, 221, 148, 16, 22, 14, 39 }, // block_size >= 32x32
-};
-
-static const aom_prob default_uv_probs[INTRA_MODES][INTRA_MODES - 1] = {
- { 199, 3, 79, 179, 220, 109, 38, 50, 68, 138 }, // y = dc
- { 17, 2, 219, 136, 131, 58, 21, 106, 23, 41 }, // y = v
- { 26, 1, 5, 244, 253, 138, 16, 21, 68, 205 }, // y = h
- { 183, 3, 66, 94, 195, 97, 101, 104, 41, 178 }, // y = d45
- { 178, 2, 36, 158, 99, 175, 21, 29, 105, 77 }, // y = d135
- { 154, 3, 65, 219, 40, 48, 45, 95, 146, 255 }, // y = d117
- { 167, 1, 16, 160, 214, 187, 10, 10, 200, 155 }, // y = d153
- { 154, 2, 18, 178, 238, 132, 25, 21, 34, 221 }, // y = d207
- { 153, 4, 76, 85, 157, 90, 38, 165, 46, 104 }, // y = d63
- { 163, 3, 68, 87, 190, 255, 19, 27, 25, 46 }, // y = smooth
- { 185, 7, 113, 171, 203, 57, 18, 69, 49, 104 }, // y = paeth
-};
-
-#endif // CONFIG_SMOOTH_HV
-
-#else // !CONFIG_ALT_INTRA
-
-const aom_prob av1_kf_y_mode_prob[INTRA_MODES][INTRA_MODES][INTRA_MODES - 1] = {
- {
- // above = dc
- { 137, 30, 42, 148, 151, 207, 70, 52, 91 }, // left = dc
- { 92, 45, 102, 136, 116, 180, 74, 90, 100 }, // left = v
- { 73, 32, 19, 187, 222, 215, 46, 34, 100 }, // left = h
- { 91, 30, 32, 116, 121, 186, 93, 86, 94 }, // left = d45
- { 72, 35, 36, 149, 68, 206, 68, 63, 105 }, // left = d135
- { 73, 31, 28, 138, 57, 124, 55, 122, 151 }, // left = d117
- { 67, 23, 21, 140, 126, 197, 40, 37, 171 }, // left = d153
- { 86, 27, 28, 128, 154, 212, 45, 43, 53 }, // left = d207
- { 74, 32, 27, 107, 86, 160, 63, 134, 102 }, // left = d63
- { 59, 67, 44, 140, 161, 202, 78, 67, 119 } // left = tm
- },
- {
- // above = v
- { 63, 36, 126, 146, 123, 158, 60, 90, 96 }, // left = dc
- { 43, 46, 168, 134, 107, 128, 69, 142, 92 }, // left = v
- { 44, 29, 68, 159, 201, 177, 50, 57, 77 }, // left = h
- { 58, 38, 76, 114, 97, 172, 78, 133, 92 }, // left = d45
- { 46, 41, 76, 140, 63, 184, 69, 112, 57 }, // left = d135
- { 38, 32, 85, 140, 46, 112, 54, 151, 133 }, // left = d117
- { 39, 27, 61, 131, 110, 175, 44, 75, 136 }, // left = d153
- { 52, 30, 74, 113, 130, 175, 51, 64, 58 }, // left = d207
- { 47, 35, 80, 100, 74, 143, 64, 163, 74 }, // left = d63
- { 36, 61, 116, 114, 128, 162, 80, 125, 82 } // left = tm
- },
- {
- // above = h
- { 82, 26, 26, 171, 208, 204, 44, 32, 105 }, // left = dc
- { 55, 44, 68, 166, 179, 192, 57, 57, 108 }, // left = v
- { 42, 26, 11, 199, 241, 228, 23, 15, 85 }, // left = h
- { 68, 42, 19, 131, 160, 199, 55, 52, 83 }, // left = d45
- { 58, 50, 25, 139, 115, 232, 39, 52, 118 }, // left = d135
- { 50, 35, 33, 153, 104, 162, 64, 59, 131 }, // left = d117
- { 44, 24, 16, 150, 177, 202, 33, 19, 156 }, // left = d153
- { 55, 27, 12, 153, 203, 218, 26, 27, 49 }, // left = d207
- { 53, 49, 21, 110, 116, 168, 59, 80, 76 }, // left = d63
- { 38, 72, 19, 168, 203, 212, 50, 50, 107 } // left = tm
- },
- {
- // above = d45
- { 103, 26, 36, 129, 132, 201, 83, 80, 93 }, // left = dc
- { 59, 38, 83, 112, 103, 162, 98, 136, 90 }, // left = v
- { 62, 30, 23, 158, 200, 207, 59, 57, 50 }, // left = h
- { 67, 30, 29, 84, 86, 191, 102, 91, 59 }, // left = d45
- { 60, 32, 33, 112, 71, 220, 64, 89, 104 }, // left = d135
- { 53, 26, 34, 130, 56, 149, 84, 120, 103 }, // left = d117
- { 53, 21, 23, 133, 109, 210, 56, 77, 172 }, // left = d153
- { 77, 19, 29, 112, 142, 228, 55, 66, 36 }, // left = d207
- { 61, 29, 29, 93, 97, 165, 83, 175, 162 }, // left = d63
- { 47, 47, 43, 114, 137, 181, 100, 99, 95 } // left = tm
- },
- {
- // above = d135
- { 69, 23, 29, 128, 83, 199, 46, 44, 101 }, // left = dc
- { 53, 40, 55, 139, 69, 183, 61, 80, 110 }, // left = v
- { 40, 29, 19, 161, 180, 207, 43, 24, 91 }, // left = h
- { 60, 34, 19, 105, 61, 198, 53, 64, 89 }, // left = d45
- { 52, 31, 22, 158, 40, 209, 58, 62, 89 }, // left = d135
- { 44, 31, 29, 147, 46, 158, 56, 102, 198 }, // left = d117
- { 35, 19, 12, 135, 87, 209, 41, 45, 167 }, // left = d153
- { 55, 25, 21, 118, 95, 215, 38, 39, 66 }, // left = d207
- { 51, 38, 25, 113, 58, 164, 70, 93, 97 }, // left = d63
- { 47, 54, 34, 146, 108, 203, 72, 103, 151 } // left = tm
- },
- {
- // above = d117
- { 64, 19, 37, 156, 66, 138, 49, 95, 133 }, // left = dc
- { 46, 27, 80, 150, 55, 124, 55, 121, 135 }, // left = v
- { 36, 23, 27, 165, 149, 166, 54, 64, 118 }, // left = h
- { 53, 21, 36, 131, 63, 163, 60, 109, 81 }, // left = d45
- { 40, 26, 35, 154, 40, 185, 51, 97, 123 }, // left = d135
- { 35, 19, 34, 179, 19, 97, 48, 129, 124 }, // left = d117
- { 36, 20, 26, 136, 62, 164, 33, 77, 154 }, // left = d153
- { 45, 18, 32, 130, 90, 157, 40, 79, 91 }, // left = d207
- { 45, 26, 28, 129, 45, 129, 49, 147, 123 }, // left = d63
- { 38, 44, 51, 136, 74, 162, 57, 97, 121 } // left = tm
- },
- {
- // above = d153
- { 75, 17, 22, 136, 138, 185, 32, 34, 166 }, // left = dc
- { 56, 39, 58, 133, 117, 173, 48, 53, 187 }, // left = v
- { 35, 21, 12, 161, 212, 207, 20, 23, 145 }, // left = h
- { 56, 29, 19, 117, 109, 181, 55, 68, 112 }, // left = d45
- { 47, 29, 17, 153, 64, 220, 59, 51, 114 }, // left = d135
- { 46, 16, 24, 136, 76, 147, 41, 64, 172 }, // left = d117
- { 34, 17, 11, 108, 152, 187, 13, 15, 209 }, // left = d153
- { 51, 24, 14, 115, 133, 209, 32, 26, 104 }, // left = d207
- { 55, 30, 18, 122, 79, 179, 44, 88, 116 }, // left = d63
- { 37, 49, 25, 129, 168, 164, 41, 54, 148 } // left = tm
- },
- {
- // above = d207
- { 82, 22, 32, 127, 143, 213, 39, 41, 70 }, // left = dc
- { 62, 44, 61, 123, 105, 189, 48, 57, 64 }, // left = v
- { 47, 25, 17, 175, 222, 220, 24, 30, 86 }, // left = h
- { 68, 36, 17, 106, 102, 206, 59, 74, 74 }, // left = d45
- { 57, 39, 23, 151, 68, 216, 55, 63, 58 }, // left = d135
- { 49, 30, 35, 141, 70, 168, 82, 40, 115 }, // left = d117
- { 51, 25, 15, 136, 129, 202, 38, 35, 139 }, // left = d153
- { 68, 26, 16, 111, 141, 215, 29, 28, 28 }, // left = d207
- { 59, 39, 19, 114, 75, 180, 77, 104, 42 }, // left = d63
- { 40, 61, 26, 126, 152, 206, 61, 59, 93 } // left = tm
- },
- {
- // above = d63
- { 78, 23, 39, 111, 117, 170, 74, 124, 94 }, // left = dc
- { 48, 34, 86, 101, 92, 146, 78, 179, 134 }, // left = v
- { 47, 22, 24, 138, 187, 178, 68, 69, 59 }, // left = h
- { 56, 25, 33, 105, 112, 187, 95, 177, 129 }, // left = d45
- { 48, 31, 27, 114, 63, 183, 82, 116, 56 }, // left = d135
- { 43, 28, 37, 121, 63, 123, 61, 192, 169 }, // left = d117
- { 42, 17, 24, 109, 97, 177, 56, 76, 122 }, // left = d153
- { 58, 18, 28, 105, 139, 182, 70, 92, 63 }, // left = d207
- { 46, 23, 32, 74, 86, 150, 67, 183, 88 }, // left = d63
- { 36, 38, 48, 92, 122, 165, 88, 137, 91 } // left = tm
- },
- {
- // above = tm
- { 65, 70, 60, 155, 159, 199, 61, 60, 81 }, // left = dc
- { 44, 78, 115, 132, 119, 173, 71, 112, 93 }, // left = v
- { 39, 38, 21, 184, 227, 206, 42, 32, 64 }, // left = h
- { 58, 47, 36, 124, 137, 193, 80, 82, 78 }, // left = d45
- { 49, 50, 35, 144, 95, 205, 63, 78, 59 }, // left = d135
- { 41, 53, 52, 148, 71, 142, 65, 128, 51 }, // left = d117
- { 40, 36, 28, 143, 143, 202, 40, 55, 137 }, // left = d153
- { 52, 34, 29, 129, 183, 227, 42, 35, 43 }, // left = d207
- { 42, 44, 44, 104, 105, 164, 64, 130, 80 }, // left = d63
- { 43, 81, 53, 140, 169, 204, 68, 84, 72 } // left = tm
- }
-};
-
-// Default probabilities for signaling Intra mode for Y plane -- used only for
-// inter frames. ('av1_kf_y_mode_prob' is used for intra-only frames).
-// Context used: block size group.
-static const aom_prob default_if_y_probs[BLOCK_SIZE_GROUPS][INTRA_MODES - 1] = {
- { 65, 32, 18, 144, 162, 194, 41, 51, 98 }, // block_size < 8x8
- { 132, 68, 18, 165, 217, 196, 45, 40, 78 }, // block_size < 16x16
- { 173, 80, 19, 176, 240, 193, 64, 35, 46 }, // block_size < 32x32
- { 221, 135, 38, 194, 248, 121, 96, 85, 29 } // block_size >= 32x32
-};
-
-// Default probabilities for signaling Intra mode for UV plane -- common for
-// both intra and inter frames.
-// Context used: Intra mode used by Y plane of the same block.
-static const aom_prob default_uv_probs[INTRA_MODES][INTRA_MODES - 1] = {
- { 120, 7, 76, 176, 208, 126, 28, 54, 103 }, // y = dc
- { 48, 12, 154, 155, 139, 90, 34, 117, 119 }, // y = v
- { 67, 6, 25, 204, 243, 158, 13, 21, 96 }, // y = h
- { 97, 5, 44, 131, 176, 139, 48, 68, 97 }, // y = d45
- { 83, 5, 42, 156, 111, 152, 26, 49, 152 }, // y = d135
- { 80, 5, 58, 178, 74, 83, 33, 62, 145 }, // y = d117
- { 86, 5, 32, 154, 192, 168, 14, 22, 163 }, // y = d153
- { 85, 5, 32, 156, 216, 148, 19, 29, 73 }, // y = d207
- { 77, 7, 64, 116, 132, 122, 37, 126, 120 }, // y = d63
- { 101, 21, 107, 181, 192, 103, 19, 67, 125 } // y = tm
-};
-
-#endif // CONFIG_ALT_INTRA
-
#if CONFIG_EXT_PARTITION_TYPES
static const aom_prob
default_partition_probs[PARTITION_CONTEXTS][EXT_PARTITION_TYPES - 1] = {
// 8x8 -> 4x4
- { 199, 122, 141, 128, 128, 128, 128 }, // a/l both not split
- { 147, 63, 159, 128, 128, 128, 128 }, // a split, l not split
- { 148, 133, 118, 128, 128, 128, 128 }, // l split, a not split
- { 121, 104, 114, 128, 128, 128, 128 }, // a/l both split
+ { 199, 122, 141, 128, 128, 128, 255, 128, 255 }, // a/l both not split
+ { 147, 63, 159, 128, 128, 128, 255, 128, 255 }, // a split, l not split
+ { 148, 133, 118, 128, 128, 128, 255, 128, 255 }, // l split, a not split
+ { 121, 104, 114, 128, 128, 128, 255, 128, 255 }, // a/l both split
// 16x16 -> 8x8
- { 174, 73, 87, 128, 128, 128, 128 }, // a/l both not split
- { 92, 41, 83, 128, 128, 128, 128 }, // a split, l not split
- { 82, 99, 50, 128, 128, 128, 128 }, // l split, a not split
- { 53, 39, 39, 128, 128, 128, 128 }, // a/l both split
+ { 174, 73, 87, 128, 128, 128, 255, 128, 255 }, // a/l both not split
+ { 92, 41, 83, 128, 128, 128, 255, 128, 255 }, // a split, l not split
+ { 82, 99, 50, 128, 128, 128, 255, 128, 255 }, // l split, a not split
+ { 53, 39, 39, 128, 128, 128, 255, 128, 255 }, // a/l both split
// 32x32 -> 16x16
- { 177, 58, 59, 128, 128, 128, 128 }, // a/l both not split
- { 68, 26, 63, 128, 128, 128, 128 }, // a split, l not split
- { 52, 79, 25, 128, 128, 128, 128 }, // l split, a not split
- { 17, 14, 12, 128, 128, 128, 128 }, // a/l both split
+ { 177, 58, 59, 128, 128, 85, 128, 85, 128 }, // a/l both not split
+ { 68, 26, 63, 128, 128, 85, 128, 85, 128 }, // a split, l not split
+ { 52, 79, 25, 128, 128, 85, 128, 85, 128 }, // l split, a not split
+ { 17, 14, 12, 128, 128, 85, 128, 85, 128 }, // a/l both split
// 64x64 -> 32x32
- { 222, 34, 30, 128, 128, 128, 128 }, // a/l both not split
- { 72, 16, 44, 128, 128, 128, 128 }, // a split, l not split
- { 58, 32, 12, 128, 128, 128, 128 }, // l split, a not split
- { 10, 7, 6, 128, 128, 128, 128 }, // a/l both split
+ { 222, 34, 30, 128, 128, 128, 255, 128, 255 }, // a/l both not split
+ { 72, 16, 44, 128, 128, 128, 255, 128, 255 }, // a split, l not split
+ { 58, 32, 12, 128, 128, 128, 255, 128, 255 }, // l split, a not split
+ { 10, 7, 6, 128, 128, 128, 255, 128, 255 }, // a/l both split
#if CONFIG_EXT_PARTITION
// 128x128 -> 64x64
- { 222, 34, 30, 128, 128, 128, 128 }, // a/l both not split
- { 72, 16, 44, 128, 128, 128, 128 }, // a split, l not split
- { 58, 32, 12, 128, 128, 128, 128 }, // l split, a not split
- { 10, 7, 6, 128, 128, 128, 128 }, // a/l both split
-#endif // CONFIG_EXT_PARTITION
+ { 222, 34, 30, 128, 128, 128, 255, 128, 255 }, // a/l both not split
+ { 72, 16, 44, 128, 128, 128, 255, 128, 255 }, // a split, l not split
+ { 58, 32, 12, 128, 128, 128, 255, 128, 255 }, // l split, a not split
+ { 10, 7, 6, 128, 128, 128, 255, 128, 255 }, // a/l both split
+#endif // CONFIG_EXT_PARTITION
#if CONFIG_UNPOISON_PARTITION_CTX
- { 0, 0, 141, 0, 0, 0, 0 }, // 8x8 -> 4x4
- { 0, 0, 87, 0, 0, 0, 0 }, // 16x16 -> 8x8
- { 0, 0, 59, 0, 0, 0, 0 }, // 32x32 -> 16x16
- { 0, 0, 30, 0, 0, 0, 0 }, // 64x64 -> 32x32
+ { 0, 0, 141, 0, 0, 0, 0, 0, 0 }, // 8x8 -> 4x4
+ { 0, 0, 87, 0, 0, 0, 0, 0, 0 }, // 16x16 -> 8x8
+ { 0, 0, 59, 0, 0, 0, 0, 0, 0 }, // 32x32 -> 16x16
+ { 0, 0, 30, 0, 0, 0, 0, 0, 0 }, // 64x64 -> 32x32
#if CONFIG_EXT_PARTITION
- { 0, 0, 30, 0, 0, 0, 0 }, // 128x128 -> 64x64
-#endif // CONFIG_EXT_PARTITION
- { 0, 122, 0, 0, 0, 0, 0 }, // 8x8 -> 4x4
- { 0, 73, 0, 0, 0, 0, 0 }, // 16x16 -> 8x8
- { 0, 58, 0, 0, 0, 0, 0 }, // 32x32 -> 16x16
- { 0, 34, 0, 0, 0, 0, 0 }, // 64x64 -> 32x32
+ { 0, 0, 30, 0, 0, 0, 0, 0, 0 }, // 128x128 -> 64x64
+#endif // CONFIG_EXT_PARTITION
+ { 0, 122, 0, 0, 0, 0, 0, 0, 0 }, // 8x8 -> 4x4
+ { 0, 73, 0, 0, 0, 0, 0, 0, 0 }, // 16x16 -> 8x8
+ { 0, 58, 0, 0, 0, 0, 0, 0, 0 }, // 32x32 -> 16x16
+ { 0, 34, 0, 0, 0, 0, 0, 0, 0 }, // 64x64 -> 32x32
#if CONFIG_EXT_PARTITION
- { 0, 34, 0, 0, 0, 0, 0 }, // 128x128 -> 64x64
-#endif // CONFIG_EXT_PARTITION
-#endif // CONFIG_UNPOISON_PARTITION_CTX
+ { 0, 34, 0, 0, 0, 0, 0, 0, 0 }, // 128x128 -> 64x64
+#endif // CONFIG_EXT_PARTITION
+#endif // CONFIG_UNPOISON_PARTITION_CTX
};
#else
static const aom_prob
@@ -987,46 +390,86 @@ static const aom_prob
#endif // CONFIG_EXT_PARTITION_TYPES
static const aom_prob default_newmv_prob[NEWMV_MODE_CONTEXTS] = {
- 200, 180, 150, 150, 110, 70, 60,
+ 155, 116, 94, 32, 96, 56, 30,
};
static const aom_prob default_zeromv_prob[ZEROMV_MODE_CONTEXTS] = {
- 192, 64,
+ 45, 13,
};
static const aom_prob default_refmv_prob[REFMV_MODE_CONTEXTS] = {
- 220, 220, 200, 200, 180, 128, 30, 220, 30,
+ 178, 212, 135, 244, 203, 122, 128, 128, 128,
};
-static const aom_prob default_drl_prob[DRL_MODE_CONTEXTS] = { 128, 160, 180,
- 128, 160 };
-
-static const aom_prob
- default_inter_mode_probs[INTER_MODE_CONTEXTS][INTER_MODES - 1] = {
- { 2, 173, 34 }, // 0 = both zero mv
- { 7, 145, 85 }, // 1 = one zero mv + one a predicted mv
- { 7, 166, 63 }, // 2 = two predicted mvs
- { 7, 94, 66 }, // 3 = one predicted/zero and one new mv
- { 8, 64, 46 }, // 4 = two new mvs
- { 17, 81, 31 }, // 5 = one intra neighbour + x
- { 25, 29, 30 }, // 6 = two intra neighbours
- };
+static const aom_prob default_drl_prob[DRL_MODE_CONTEXTS] = {
+ 119, 128, 189, 134, 128,
+};
+#if CONFIG_NEW_MULTISYMBOL
+static const aom_cdf_prob default_newmv_cdf[NEWMV_MODE_CONTEXTS][CDF_SIZE(2)] =
+ { { AOM_ICDF(128 * 155), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 116), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 94), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 32), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 96), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 56), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 30), AOM_ICDF(32768), 0 } };
+static const aom_cdf_prob default_zeromv_cdf[ZEROMV_MODE_CONTEXTS][CDF_SIZE(
+ 2)] = { { AOM_ICDF(128 * 45), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 13), AOM_ICDF(32768), 0 } };
+static const aom_cdf_prob default_refmv_cdf[REFMV_MODE_CONTEXTS][CDF_SIZE(2)] =
+ { { AOM_ICDF(128 * 178), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 212), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 135), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 244), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 203), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 122), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 } };
+static const aom_cdf_prob default_drl_cdf[DRL_MODE_CONTEXTS][CDF_SIZE(2)] = {
+ { AOM_ICDF(128 * 119), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 189), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 134), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 }
+};
+#endif
#if CONFIG_EXT_INTER
static const aom_prob default_inter_compound_mode_probs
[INTER_MODE_CONTEXTS][INTER_COMPOUND_MODES - 1] = {
- { 2, 173, 68, 192, 128, 180, 180 }, // 0 = both zero mv
- { 7, 145, 160, 192, 128, 180, 180 }, // 1 = 1 zero + 1 predicted
- { 7, 166, 126, 192, 128, 180, 180 }, // 2 = two predicted mvs
- { 7, 94, 132, 192, 128, 180, 180 }, // 3 = 1 pred/zero, 1 new
- { 8, 64, 64, 192, 128, 180, 180 }, // 4 = two new mvs
- { 17, 81, 52, 192, 128, 180, 180 }, // 5 = one intra neighbour
- { 25, 29, 50, 192, 128, 180, 180 }, // 6 = two intra neighbours
+ { 154, 167, 233, 165, 143, 170, 167 }, // 0 = both zero mv
+ { 75, 168, 237, 155, 135, 176, 172 }, // 1 = 1 zero + 1 predicted
+ { 7, 173, 227, 128, 153, 188, 189 }, // 2 = two predicted mvs
+ { 8, 120, 214, 113, 154, 178, 174 }, // 3 = 1 pred/zero, 1 new
+ { 4, 85, 194, 94, 155, 173, 167 }, // 4 = two new mvs
+ { 23, 89, 180, 73, 157, 151, 155 }, // 5 = one intra neighbour
+ { 27, 49, 152, 91, 134, 153, 142 }, // 6 = two intra neighbours
+ };
+
+static const aom_cdf_prob
+ default_inter_compound_mode_cdf[INTER_MODE_CONTEXTS][CDF_SIZE(
+ INTER_COMPOUND_MODES)] = {
+ { AOM_ICDF(19712), AOM_ICDF(28229), AOM_ICDF(30892), AOM_ICDF(31437),
+ AOM_ICDF(31712), AOM_ICDF(32135), AOM_ICDF(32360), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(9600), AOM_ICDF(24804), AOM_ICDF(29268), AOM_ICDF(30323),
+ AOM_ICDF(30802), AOM_ICDF(31726), AOM_ICDF(32177), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(896), AOM_ICDF(22434), AOM_ICDF(27015), AOM_ICDF(29026),
+ AOM_ICDF(29753), AOM_ICDF(31114), AOM_ICDF(31597), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1024), AOM_ICDF(15904), AOM_ICDF(22127), AOM_ICDF(25421),
+ AOM_ICDF(26864), AOM_ICDF(28996), AOM_ICDF(30001), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(512), AOM_ICDF(11222), AOM_ICDF(17217), AOM_ICDF(21445),
+ AOM_ICDF(23473), AOM_ICDF(26133), AOM_ICDF(27550), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(2944), AOM_ICDF(13313), AOM_ICDF(17214), AOM_ICDF(20751),
+ AOM_ICDF(23211), AOM_ICDF(25500), AOM_ICDF(26992), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(3456), AOM_ICDF(9067), AOM_ICDF(14069), AOM_ICDF(16907),
+ AOM_ICDF(18817), AOM_ICDF(21214), AOM_ICDF(23139), AOM_ICDF(32768), 0 }
};
#if CONFIG_COMPOUND_SINGLEREF
// TODO(zoeliu): Default values to be further adjusted based on the collected
// stats.
+/*
static const aom_prob default_inter_singleref_comp_mode_probs
[INTER_MODE_CONTEXTS][INTER_SINGLEREF_COMP_MODES - 1] = {
{ 2, 173, 68, 180 }, // 0 = both zero mv
@@ -1036,26 +479,49 @@ static const aom_prob default_inter_singleref_comp_mode_probs
{ 8, 64, 64, 180 }, // 4 = two new mvs
{ 17, 81, 52, 180 }, // 5 = one intra neighbour
{ 25, 29, 50, 180 }, // 6 = two intra neighbours
+ };*/
+static const aom_prob default_inter_singleref_comp_mode_probs
+ [INTER_MODE_CONTEXTS][INTER_SINGLEREF_COMP_MODES - 1] = {
+ { 2, 173, 68 }, // 0 = both zero mv
+ { 7, 145, 160 }, // 1 = 1 zero + 1 predicted
+ { 7, 166, 126 }, // 2 = two predicted mvs
+ { 7, 94, 132 }, // 3 = 1 pred/zero, 1 new
+ { 8, 64, 64 }, // 4 = two new mvs
+ { 17, 81, 52 }, // 5 = one intra neighbour
+ { 25, 29, 50 }, // 6 = two intra neighbours
+ };
+
+static const aom_cdf_prob
+ default_inter_singleref_comp_mode_cdf[INTER_MODE_CONTEXTS][CDF_SIZE(
+ INTER_SINGLEREF_COMP_MODES)] = {
+ { AOM_ICDF(21971), AOM_ICDF(24771), AOM_ICDF(25027), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(18053), AOM_ICDF(26690), AOM_ICDF(27586), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(20667), AOM_ICDF(26182), AOM_ICDF(27078), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(11703), AOM_ICDF(22103), AOM_ICDF(22999), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(7936), AOM_ICDF(13888), AOM_ICDF(14912), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(9679), AOM_ICDF(13927), AOM_ICDF(16103), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(3349), AOM_ICDF(8470), AOM_ICDF(11670), AOM_ICDF(32768), 0 }
};
#endif // CONFIG_COMPOUND_SINGLEREF
#if CONFIG_COMPOUND_SEGMENT && CONFIG_WEDGE
static const aom_prob
- default_compound_type_probs[BLOCK_SIZES][COMPOUND_TYPES - 1] = {
-#if CONFIG_CB4X4
- { 255, 128 }, { 255, 128 }, { 255, 128 },
+ default_compound_type_probs[BLOCK_SIZES_ALL][COMPOUND_TYPES - 1] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
+ { 128, 128 }, { 128, 128 }, { 128, 128 },
#endif
- { 208, 128 }, { 208, 128 }, { 208, 128 }, { 208, 128 }, { 208, 128 },
- { 208, 128 }, { 216, 128 }, { 216, 128 }, { 216, 128 }, { 224, 128 },
- { 224, 1 }, { 240, 1 }, { 240, 1 },
+ { 128, 128 }, { 255, 128 }, { 255, 128 }, { 66, 51 }, { 72, 35 },
+ { 79, 29 }, { 71, 18 }, { 81, 29 }, { 81, 26 }, { 69, 19 },
+ { 104, 1 }, { 99, 1 }, { 75, 1 },
#if CONFIG_EXT_PARTITION
{ 255, 1 }, { 255, 1 }, { 255, 1 },
#endif // CONFIG_EXT_PARTITION
+ { 208, 128 }, { 208, 128 }, { 208, 128 }, { 208, 128 },
};
#elif !CONFIG_COMPOUND_SEGMENT && CONFIG_WEDGE
static const aom_prob
- default_compound_type_probs[BLOCK_SIZES][COMPOUND_TYPES - 1] = {
-#if CONFIG_CB4X4
+ default_compound_type_probs[BLOCK_SIZES_ALL][COMPOUND_TYPES - 1] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
{ 255 }, { 255 }, { 255 },
#endif
{ 208 }, { 208 }, { 208 }, { 208 }, { 208 }, { 208 }, { 216 },
@@ -1063,11 +529,12 @@ static const aom_prob
#if CONFIG_EXT_PARTITION
{ 255 }, { 255 }, { 255 },
#endif // CONFIG_EXT_PARTITION
+ { 208 }, { 208 }, { 208 }, { 208 },
};
#elif CONFIG_COMPOUND_SEGMENT && !CONFIG_WEDGE
static const aom_prob
- default_compound_type_probs[BLOCK_SIZES][COMPOUND_TYPES - 1] = {
-#if CONFIG_CB4X4
+ default_compound_type_probs[BLOCK_SIZES_ALL][COMPOUND_TYPES - 1] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
{ 255 }, { 255 }, { 255 },
#endif
{ 208 }, { 208 }, { 208 }, { 208 }, { 208 }, { 208 }, { 216 },
@@ -1075,45 +542,228 @@ static const aom_prob
#if CONFIG_EXT_PARTITION
{ 255 }, { 255 }, { 255 },
#endif // CONFIG_EXT_PARTITION
+ { 208 }, { 208 }, { 208 }, { 208 },
};
#else
-static const aom_prob default_compound_type_probs[BLOCK_SIZES]
+static const aom_prob default_compound_type_probs[BLOCK_SIZES_ALL]
[COMPOUND_TYPES - 1];
#endif // CONFIG_COMPOUND_SEGMENT && CONFIG_WEDGE
+#if CONFIG_COMPOUND_SEGMENT && CONFIG_WEDGE
+static const aom_cdf_prob
+ default_compound_type_cdf[BLOCK_SIZES_ALL][CDF_SIZE(COMPOUND_TYPES)] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+#endif
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32704), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32704), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(8448), AOM_ICDF(13293), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(9216), AOM_ICDF(12436), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(10112), AOM_ICDF(12679), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(9088), AOM_ICDF(10753), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(10368), AOM_ICDF(12906), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(10368), AOM_ICDF(12643), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(8832), AOM_ICDF(10609), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(13312), AOM_ICDF(13388), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(12672), AOM_ICDF(12751), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(9600), AOM_ICDF(9691), AOM_ICDF(32768), 0 },
+#if CONFIG_EXT_PARTITION
+ { AOM_ICDF(32640), AOM_ICDF(32641), AOM_ICDF(32768), 0 }, // 255, 1
+ { AOM_ICDF(32640), AOM_ICDF(32641), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32641), AOM_ICDF(32768), 0 },
+#endif // CONFIG_EXT_PARTITION
+ { 16384, 8192, 0, 0 },
+ { 16384, 8192, 0, 0 },
+ { 16384, 8192, 0, 0 },
+ { 16384, 8192, 0, 0 },
+ };
+#elif !CONFIG_COMPOUND_SEGMENT && CONFIG_WEDGE
+static const aom_cdf_prob
+ default_compound_type_cdf[BLOCK_SIZES_ALL][CDF_SIZE(COMPOUND_TYPES)] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 }, // 255
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+#endif
+ { AOM_ICDF(26624), AOM_ICDF(32768), 0 }, // 208
+ { AOM_ICDF(26624), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(26624), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(26624), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(26624), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(26624), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(27648), AOM_ICDF(32768), 0 }, // 216
+ { AOM_ICDF(27648), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(27648), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(28672), AOM_ICDF(32768), 0 }, // 224
+ { AOM_ICDF(28672), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(30720), AOM_ICDF(32768), 0 }, // 240
+ { AOM_ICDF(30720), AOM_ICDF(32768), 0 },
+#if CONFIG_EXT_PARTITION
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 }, // 255
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+#endif // CONFIG_EXT_PARTITION
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+ };
+#elif CONFIG_COMPOUND_SEGMENT && !CONFIG_WEDGE
+static const aom_cdf_prob
+ default_compound_type_cdf[BLOCK_SIZES_ALL][CDF_SIZE(COMPOUND_TYPES)] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 }, // 255
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+#endif
+ { AOM_ICDF(26624), AOM_ICDF(32768), 0 }, // 208
+ { AOM_ICDF(26624), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(26624), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(26624), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(26624), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(26624), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(27648), AOM_ICDF(32768), 0 }, // 216
+ { AOM_ICDF(27648), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(27648), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(28672), AOM_ICDF(32768), 0 }, // 224
+ { AOM_ICDF(28672), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(30720), AOM_ICDF(32768), 0 }, // 240
+ { AOM_ICDF(30720), AOM_ICDF(32768), 0 },
+#if CONFIG_EXT_PARTITION
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 }, // 255
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+#endif // CONFIG_EXT_PARTITION
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32768), 0 },
+ };
+#else
+static const aom_cdf_prob default_compound_type_cdf[BLOCK_SIZES_ALL]
+ [CDF_SIZE(COMPOUND_TYPES)];
+#endif // CONFIG_COMPOUND_SEGMENT && CONFIG_WEDGE
+
#if CONFIG_INTERINTRA
static const aom_prob default_interintra_prob[BLOCK_SIZE_GROUPS] = {
- 208, 208, 208, 208,
+ 128, 226, 244, 254,
};
+#if CONFIG_NEW_MULTISYMBOL
+static const aom_cdf_prob default_interintra_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(
+ 2)] = { { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(226 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(244 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(254 * 128), AOM_ICDF(32768), 0 } };
+#endif
static const aom_prob
default_interintra_mode_prob[BLOCK_SIZE_GROUPS][INTERINTRA_MODES - 1] = {
- { 88, 16, 150 }, // block_size < 8x8
- { 75, 26, 150 }, // block_size < 16x16
- { 73, 24, 150 }, // block_size < 32x32
- { 96, 27, 150 } // block_size >= 32x32
+ { 128, 128, 128 }, // block_size < 8x8
+ { 24, 34, 119 }, // block_size < 16x16
+ { 38, 33, 95 }, // block_size < 32x32
+ { 51, 21, 110 }, // block_size >= 32x32
+ };
+static const aom_cdf_prob
+ default_interintra_mode_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(
+ INTERINTRA_MODES)] = {
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(28672), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(3072), AOM_ICDF(7016), AOM_ICDF(18987), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(4864), AOM_ICDF(8461), AOM_ICDF(17481), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(6528), AOM_ICDF(8681), AOM_ICDF(19031), AOM_ICDF(32768), 0 }
};
-static const aom_prob default_wedge_interintra_prob[BLOCK_SIZES] = {
-#if CONFIG_CB4X4
- 208, 208, 208,
+static const aom_prob default_wedge_interintra_prob[BLOCK_SIZES_ALL] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
+ 128, 128, 128,
#endif
- 208, 208, 208, 208, 208, 208, 216, 216, 216, 224, 224, 224, 240,
+ 128, 128, 128, 194, 213, 217, 222, 224, 226, 220, 128, 128, 128,
#if CONFIG_EXT_PARTITION
- 208, 208, 208
+ 208, 208, 208,
#endif // CONFIG_EXT_PARTITION
+ 208, 208, 208, 208,
};
+
+#if CONFIG_NEW_MULTISYMBOL
+static const aom_cdf_prob
+ default_wedge_interintra_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+#endif
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(194 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(213 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(217 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(222 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(224 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(226 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(220 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+#if CONFIG_EXT_PARTITION
+ { AOM_ICDF(208 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(208 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(208 * 128), AOM_ICDF(32768), 0 },
+#endif // CONFIG_EXT_PARTITION
+ { AOM_ICDF(208 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(208 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(208 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(208 * 128), AOM_ICDF(32768), 0 },
+ };
+#endif // CONFIG_NEW_MULTISYMBOL
+
#endif // CONFIG_INTERINTRA
#endif // CONFIG_EXT_INTER
+#if CONFIG_NCOBMC_ADAPT_WEIGHT
+const aom_tree_index av1_ncobmc_mode_tree[TREE_SIZE(MAX_NCOBMC_MODES)] = {
+ -NO_OVERLAP, 2, -NCOBMC_MODE_1, 4,
+ -NCOBMC_MODE_2, 6, -NCOBMC_MODE_3, 8,
+ -NCOBMC_MODE_4, 10, -NCOBMC_MODE_5, 12,
+ -NCOBMC_MODE_6, 14, -NCOBMC_MODE_7, -NCOBMC_MODE_8
+};
+
+// TODO(weitinglin): find default prob
+static const aom_prob
+ default_ncobmc_mode_prob[ADAPT_OVERLAP_BLOCKS][MAX_NCOBMC_MODES - 1] = {
+ { 23, 37, 37, 38, 65, 71, 81, 86 }, // 8x8
+ { 28, 32, 37, 43, 51, 64, 85, 128 }, // 16X16 equal prob
+ { 86, 22, 32, 25, 10, 40, 97, 65 }, // 32X32
+ { 28, 32, 37, 43, 51, 64, 85, 128 } // 64X64 equal prob
+ };
+static const aom_cdf_prob
+ default_ncobmc_mode_cdf[ADAPT_OVERLAP_BLOCKS][CDF_SIZE(MAX_NCOBMC_MODES)] =
+ { { AOM_ICDF(127), AOM_ICDF(4207), AOM_ICDF(8287), AOM_ICDF(12367),
+ AOM_ICDF(16447), AOM_ICDF(20527), AOM_ICDF(24607), AOM_ICDF(28687),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(127), AOM_ICDF(4207), AOM_ICDF(8287), AOM_ICDF(12367),
+ AOM_ICDF(16447), AOM_ICDF(20527), AOM_ICDF(24607), AOM_ICDF(28687),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(127), AOM_ICDF(4207), AOM_ICDF(8287), AOM_ICDF(12367),
+ AOM_ICDF(16447), AOM_ICDF(20527), AOM_ICDF(24607), AOM_ICDF(28687),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(127), AOM_ICDF(4207), AOM_ICDF(8287), AOM_ICDF(12367),
+ AOM_ICDF(16447), AOM_ICDF(20527), AOM_ICDF(24607), AOM_ICDF(28687),
+ AOM_ICDF(32768), 0 } };
+#endif // CONFIG_NCOBMC_ADAPT_WEIGHT
+
// Change this section appropriately once warped motion is supported
#if CONFIG_MOTION_VAR && !CONFIG_WARPED_MOTION
+#if !CONFIG_NCOBMC_ADAPT_WEIGHT
const aom_tree_index av1_motion_mode_tree[TREE_SIZE(MOTION_MODES)] = {
-SIMPLE_TRANSLATION, -OBMC_CAUSAL
};
-static const aom_prob default_motion_mode_prob[BLOCK_SIZES][MOTION_MODES - 1] =
- {
-#if CONFIG_CB4X4
+
+static const aom_prob
+ default_motion_mode_prob[BLOCK_SIZES_ALL][MOTION_MODES - 1] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
{ 255 }, { 255 }, { 255 },
#endif
{ 255 }, { 255 }, { 255 }, { 151 }, { 153 }, { 144 }, { 178 },
@@ -1121,17 +771,103 @@ static const aom_prob default_motion_mode_prob[BLOCK_SIZES][MOTION_MODES - 1] =
#if CONFIG_EXT_PARTITION
{ 252 }, { 252 }, { 252 },
#endif // CONFIG_EXT_PARTITION
+ { 208 }, { 208 }, { 208 }, { 208 },
+ };
+
+static const aom_cdf_prob
+ default_motion_mode_cdf[BLOCK_SIZES_ALL][CDF_SIZE(MOTION_MODES)] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+#endif
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(151 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(153 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(144 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(178 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(165 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(160 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(207 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(195 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(168 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(244 * 128), AOM_ICDF(32768), 0 },
+#if CONFIG_EXT_PARTITION
+ { AOM_ICDF(252 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(252 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(252 * 128), AOM_ICDF(32768), 0 },
+#endif // CONFIG_EXT_PARTITION
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
};
+#else
+// TODO(weitinglin): The default probability is copied from warped motion right
+// now as a place holder. It needs to be fined tuned after
+// NCOBMC_ADAPT_WEIGHT is actually implemented. Also needs to
+// change this section appropriately once warped motion is
+// supported.
+const aom_tree_index av1_motion_mode_tree[TREE_SIZE(MOTION_MODES)] = {
+ -SIMPLE_TRANSLATION, 2, -OBMC_CAUSAL, -NCOBMC_ADAPT_WEIGHT,
+};
+static const aom_prob
+ default_motion_mode_prob[BLOCK_SIZES_ALL][MOTION_MODES - 1] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
+ { 255, 200 }, { 255, 200 }, { 255, 200 },
+#endif
+ { 255, 200 }, { 255, 200 }, { 255, 200 }, { 151, 200 }, { 153, 200 },
+ { 144, 200 }, { 178, 200 }, { 165, 200 }, { 160, 200 }, { 207, 200 },
+ { 195, 200 }, { 168, 200 }, { 244, 200 },
+#if CONFIG_EXT_PARTITION
+ { 252, 200 }, { 252, 200 }, { 252, 200 },
+#endif // CONFIG_EXT_PARTITION
+ { 255, 200 }, { 255, 200 }, { 255, 200 }, { 255, 200 },
+ };
+static const aom_cdf_prob
+ default_motion_mode_cdf[BLOCK_SIZES_ALL][CDF_SIZE(MOTION_MODES)] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+#endif
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(7936), AOM_ICDF(19091), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(4991), AOM_ICDF(19205), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(4992), AOM_ICDF(19314), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(15104), AOM_ICDF(21590), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(9855), AOM_ICDF(21043), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(12800), AOM_ICDF(22238), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(24320), AOM_ICDF(26498), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(26496), AOM_ICDF(28995), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(25216), AOM_ICDF(28166), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(30592), AOM_ICDF(31238), AOM_ICDF(32768), 0 },
+#if CONFIG_EXT_PARTITION
+ { AOM_ICDF(32256), AOM_ICDF(32656), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32256), AOM_ICDF(32656), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32256), AOM_ICDF(32656), AOM_ICDF(32768), 0 },
+#endif
+ { AOM_ICDF(32640), AOM_ICDF(32740), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32740), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32740), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32740), AOM_ICDF(32768), 0 },
+ };
+#endif // CONFIG_NCOBMC_ADAPT_WEIGHT
+
#elif !CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
const aom_tree_index av1_motion_mode_tree[TREE_SIZE(MOTION_MODES)] = {
-SIMPLE_TRANSLATION, -WARPED_CAUSAL
};
-static const aom_prob default_motion_mode_prob[BLOCK_SIZES][MOTION_MODES - 1] =
- {
-#if CONFIG_CB4X4
+static const aom_prob
+ default_motion_mode_prob[BLOCK_SIZES_ALL][MOTION_MODES - 1] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
{ 255 }, { 255 }, { 255 },
#endif
{ 255 }, { 255 }, { 255 }, { 151 }, { 153 }, { 144 }, { 178 },
@@ -1139,6 +875,38 @@ static const aom_prob default_motion_mode_prob[BLOCK_SIZES][MOTION_MODES - 1] =
#if CONFIG_EXT_PARTITION
{ 252 }, { 252 }, { 252 },
#endif // CONFIG_EXT_PARTITION
+ { 208 }, { 208 }, { 208 }, { 208 },
+ };
+
+static const aom_cdf_prob
+ default_motion_mode_cdf[BLOCK_SIZES_ALL][CDF_SIZE(MOTION_MODES)] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+#endif
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(151 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(153 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(144 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(178 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(165 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(160 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(207 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(195 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(168 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(244 * 128), AOM_ICDF(32768), 0 },
+#if CONFIG_EXT_PARTITION
+ { AOM_ICDF(252 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(252 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(252 * 128), AOM_ICDF(32768), 0 },
+#endif // CONFIG_EXT_PARTITION
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(255 * 128), AOM_ICDF(32768), 0 },
};
#elif CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
@@ -1146,29 +914,94 @@ static const aom_prob default_motion_mode_prob[BLOCK_SIZES][MOTION_MODES - 1] =
const aom_tree_index av1_motion_mode_tree[TREE_SIZE(MOTION_MODES)] = {
-SIMPLE_TRANSLATION, 2, -OBMC_CAUSAL, -WARPED_CAUSAL,
};
-static const aom_prob default_motion_mode_prob[BLOCK_SIZES][MOTION_MODES - 1] =
- {
-#if CONFIG_CB4X4
- { 255, 200 }, { 255, 200 }, { 255, 200 },
+
+static const aom_prob
+ default_motion_mode_prob[BLOCK_SIZES_ALL][MOTION_MODES - 1] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
+ { 128, 128 }, { 128, 128 }, { 128, 128 },
#endif
- { 255, 200 }, { 255, 200 }, { 255, 200 }, { 151, 200 }, { 153, 200 },
- { 144, 200 }, { 178, 200 }, { 165, 200 }, { 160, 200 }, { 207, 200 },
- { 195, 200 }, { 168, 200 }, { 244, 200 },
+ { 128, 128 }, { 128, 128 }, { 128, 128 }, { 62, 115 }, { 39, 131 },
+ { 39, 132 }, { 118, 94 }, { 77, 125 }, { 100, 121 }, { 190, 66 },
+ { 207, 102 }, { 197, 100 }, { 239, 76 },
#if CONFIG_EXT_PARTITION
{ 252, 200 }, { 252, 200 }, { 252, 200 },
#endif // CONFIG_EXT_PARTITION
+ { 208, 200 }, { 208, 200 }, { 208, 200 }, { 208, 200 },
+ };
+static const aom_cdf_prob
+ default_motion_mode_cdf[BLOCK_SIZES_ALL][CDF_SIZE(MOTION_MODES)] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+#endif
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16384), AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(7936), AOM_ICDF(19091), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(4991), AOM_ICDF(19205), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(4992), AOM_ICDF(19314), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(15104), AOM_ICDF(21590), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(9855), AOM_ICDF(21043), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(12800), AOM_ICDF(22238), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(24320), AOM_ICDF(26498), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(26496), AOM_ICDF(28995), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(25216), AOM_ICDF(28166), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(30592), AOM_ICDF(31238), AOM_ICDF(32768), 0 },
+#if CONFIG_EXT_PARTITION
+ { AOM_ICDF(32256), AOM_ICDF(32656), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32256), AOM_ICDF(32656), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32256), AOM_ICDF(32656), AOM_ICDF(32768), 0 },
+#endif
+ { AOM_ICDF(32640), AOM_ICDF(32740), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32740), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32740), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32640), AOM_ICDF(32740), AOM_ICDF(32768), 0 },
};
// Probability for the case that only 1 additional motion mode is allowed
-static const aom_prob default_obmc_prob[BLOCK_SIZES] = {
-#if CONFIG_CB4X4
- 255, 255, 255,
+static const aom_prob default_obmc_prob[BLOCK_SIZES_ALL] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
+ 128, 128, 128,
#endif
- 255, 255, 255, 151, 153, 144, 178, 165, 160, 207, 195, 168, 244,
+ 128, 128, 128, 45, 79, 75, 130, 141, 144, 208, 201, 186, 231,
#if CONFIG_EXT_PARTITION
252, 252, 252,
#endif // CONFIG_EXT_PARTITION
+ 208, 208, 208, 208,
+};
+
+#if CONFIG_NEW_MULTISYMBOL
+static const aom_cdf_prob default_obmc_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)] = {
+#if CONFIG_CHROMA_2X2 || CONFIG_CHROMA_SUB8X8
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+#endif
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(45 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(79 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(75 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(130 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(141 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(144 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(208 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(201 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(186 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(231 * 128), AOM_ICDF(32768), 0 },
+#if CONFIG_EXT_PARTITION
+ { AOM_ICDF(252 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(252 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(252 * 128), AOM_ICDF(32768), 0 },
+#endif // CONFIG_EXT_PARTITION
+ { AOM_ICDF(208 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(208 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(208 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(208 * 128), AOM_ICDF(32768), 0 },
};
+#endif // CONFIG_NEW_MULTISYMBOL
#endif
#if CONFIG_DELTA_Q
@@ -1184,10 +1017,6 @@ static const aom_cdf_prob default_delta_lf_cdf[CDF_SIZE(DELTA_LF_PROBS + 1)] = {
};
#endif
#endif
-int av1_intra_mode_ind[INTRA_MODES];
-int av1_intra_mode_inv[INTRA_MODES];
-int av1_inter_mode_ind[INTER_MODES];
-int av1_inter_mode_inv[INTER_MODES];
#if CONFIG_EXT_TX
int av1_ext_tx_intra_ind[EXT_TX_SETS_INTRA][TX_TYPES];
int av1_ext_tx_intra_inv[EXT_TX_SETS_INTRA][TX_TYPES];
@@ -1197,65 +1026,23 @@ int av1_ext_tx_inter_inv[EXT_TX_SETS_INTER][TX_TYPES];
#if CONFIG_ALT_INTRA
#if CONFIG_SMOOTH_HV
-const aom_tree_index av1_intra_mode_tree[TREE_SIZE(INTRA_MODES)] = {
- -DC_PRED,
- 2, /* 0 = DC_NODE */
- -TM_PRED,
- 4, /* 1 = TM_NODE */
- -V_PRED,
- 6, /* 2 = V_NODE */
- 8,
- 12, /* 3 = COM_NODE */
- -H_PRED,
- 10, /* 4 = H_NODE */
- -D135_PRED,
- -D117_PRED, /* 5 = D135_NODE */
- -D45_PRED,
- 14, /* 6 = D45_NODE */
- -D63_PRED,
- 16, /* 7 = D63_NODE */
- -D153_PRED,
- 18, /* 8 = D153_NODE */
- -D207_PRED,
- 20, /* 9 = D207_NODE */
- -SMOOTH_PRED,
- 22, /* 10 = SMOOTH_NODE */
- -SMOOTH_V_PRED,
- -SMOOTH_H_PRED /* 11 = SMOOTH_V_NODE */
-};
+const int av1_intra_mode_ind[INTRA_MODES] = { 0, 2, 3, 6, 4, 5, 8,
+ 9, 7, 10, 11, 12, 1 };
+const int av1_intra_mode_inv[INTRA_MODES] = { 0, 12, 1, 2, 4, 5, 3,
+ 8, 6, 7, 9, 10, 11 };
#else
-const aom_tree_index av1_intra_mode_tree[TREE_SIZE(INTRA_MODES)] = {
- -DC_PRED, 2, /* 0 = DC_NODE */
- -TM_PRED, 4, /* 1 = TM_NODE */
- -V_PRED, 6, /* 2 = V_NODE */
- 8, 12, /* 3 = COM_NODE */
- -H_PRED, 10, /* 4 = H_NODE */
- -D135_PRED, -D117_PRED, /* 5 = D135_NODE */
- -D45_PRED, 14, /* 6 = D45_NODE */
- -D63_PRED, 16, /* 7 = D63_NODE */
- -D153_PRED, 18, /* 8 = D153_NODE */
- -D207_PRED, -SMOOTH_PRED, /* 9 = D207_NODE */
+const int av1_intra_mode_ind[INTRA_MODES] = {
+ 0, 2, 3, 6, 4, 5, 8, 9, 7, 10, 1
+};
+const int av1_intra_mode_inv[INTRA_MODES] = {
+ 0, 10, 1, 2, 4, 5, 3, 8, 6, 7, 9
};
#endif // CONFIG_SMOOTH_HV
#else
-const aom_tree_index av1_intra_mode_tree[TREE_SIZE(INTRA_MODES)] = {
- -DC_PRED, 2, /* 0 = DC_NODE */
- -TM_PRED, 4, /* 1 = TM_NODE */
- -V_PRED, 6, /* 2 = V_NODE */
- 8, 12, /* 3 = COM_NODE */
- -H_PRED, 10, /* 4 = H_NODE */
- -D135_PRED, -D117_PRED, /* 5 = D135_NODE */
- -D45_PRED, 14, /* 6 = D45_NODE */
- -D63_PRED, 16, /* 7 = D63_NODE */
- -D153_PRED, -D207_PRED /* 8 = D153_NODE */
-};
+const int av1_intra_mode_ind[INTRA_MODES] = { 0, 2, 3, 6, 4, 5, 8, 9, 7, 1 };
+const int av1_intra_mode_inv[INTRA_MODES] = { 0, 9, 1, 2, 4, 5, 3, 8, 6, 7 };
#endif // CONFIG_ALT_INTRA
-const aom_tree_index av1_inter_mode_tree[TREE_SIZE(INTER_MODES)] = {
- -INTER_OFFSET(ZEROMV), 2, -INTER_OFFSET(NEARESTMV), 4, -INTER_OFFSET(NEARMV),
- -INTER_OFFSET(NEWMV)
-};
-
#if CONFIG_EXT_INTER
/* clang-format off */
#if CONFIG_INTERINTRA
@@ -1282,6 +1069,8 @@ const aom_tree_index av1_inter_compound_mode_tree
};
#if CONFIG_COMPOUND_SINGLEREF
+// TODO(zoeliu): To redesign the tree structure once the number of mode changes.
+/*
const aom_tree_index av1_inter_singleref_comp_mode_tree
[TREE_SIZE(INTER_SINGLEREF_COMP_MODES)] = {
-INTER_SINGLEREF_COMP_OFFSET(SR_ZERO_NEWMV), 2,
@@ -1289,6 +1078,14 @@ const aom_tree_index av1_inter_singleref_comp_mode_tree
6, -INTER_SINGLEREF_COMP_OFFSET(SR_NEW_NEWMV),
-INTER_SINGLEREF_COMP_OFFSET(SR_NEAREST_NEWMV),
-INTER_SINGLEREF_COMP_OFFSET(SR_NEAR_NEWMV)
+};*/
+
+const aom_tree_index av1_inter_singleref_comp_mode_tree
+ [TREE_SIZE(INTER_SINGLEREF_COMP_MODES)] = {
+ -INTER_SINGLEREF_COMP_OFFSET(SR_ZERO_NEWMV), 2,
+ -INTER_SINGLEREF_COMP_OFFSET(SR_NEAREST_NEARMV), 4,
+ -INTER_SINGLEREF_COMP_OFFSET(SR_NEAR_NEWMV),
+ -INTER_SINGLEREF_COMP_OFFSET(SR_NEW_NEWMV)
};
#endif // CONFIG_COMPOUND_SINGLEREF
@@ -1321,94 +1118,373 @@ const aom_tree_index av1_ext_partition_tree[TREE_SIZE(EXT_PARTITION_TYPES)] = {
6, 4,
8, -PARTITION_SPLIT,
-PARTITION_HORZ, 10,
- -PARTITION_VERT, 12,
- -PARTITION_HORZ_A, -PARTITION_HORZ_B,
- -PARTITION_VERT_A, -PARTITION_VERT_B
+ -PARTITION_VERT, 14,
+
+ -PARTITION_HORZ_A, 12,
+ -PARTITION_HORZ_B, -PARTITION_HORZ_4,
+
+ -PARTITION_VERT_A, 16,
+ -PARTITION_VERT_B, -PARTITION_VERT_4
};
/* clang-format on */
#endif // CONFIG_EXT_PARTITION_TYPES
static const aom_prob default_intra_inter_p[INTRA_INTER_CONTEXTS] = {
- 9, 102, 187, 225
+ 6, 97, 151, 205,
};
+#if CONFIG_NEW_MULTISYMBOL
+static const aom_cdf_prob
+ default_intra_inter_cdf[INTRA_INTER_CONTEXTS][CDF_SIZE(2)] = {
+ { AOM_ICDF(768), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(12416), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(19328), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(26240), AOM_ICDF(32768), 0 }
+ };
+#endif
+
static const aom_prob default_comp_inter_p[COMP_INTER_CONTEXTS] = {
- 239, 183, 119, 96, 41
+#if !CONFIG_EXT_COMP_REFS
+ 216, 170, 131, 92, 42
+#else // CONFIG_EXT_COMP_REFS
+ 206, 182, 117, 104, 32
+#endif // !CONFIG_EXT_COMP_REFS
};
+#if CONFIG_NEW_MULTISYMBOL
+static const aom_cdf_prob
+ default_comp_inter_cdf[COMP_INTER_CONTEXTS][CDF_SIZE(2)] = {
+#if !CONFIG_EXT_COMP_REFS
+ { AOM_ICDF(216 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(170 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(131 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(92 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(42 * 128), AOM_ICDF(32768), 0 }
+#else // CONFIG_EXT_COMP_REFS
+ { AOM_ICDF(206 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(182 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(117 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(104 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32 * 128), AOM_ICDF(32768), 0 }
+#endif // !CONFIG_EXT_COMP_REFS
+ };
+#endif // CONFIG_NEW_MULTISYMBOL
+
+#if CONFIG_EXT_COMP_REFS
+static const aom_prob default_comp_ref_type_p[COMP_REF_TYPE_CONTEXTS] = {
+ 8, 20, 78, 91, 194
+};
+static const aom_prob
+ default_uni_comp_ref_p[UNI_COMP_REF_CONTEXTS][UNIDIR_COMP_REFS - 1] = {
+ { 88, 30, 28 }, { 218, 97, 105 }, { 254, 180, 196 }
+ };
+
+#if CONFIG_NEW_MULTISYMBOL
+static const aom_cdf_prob
+ default_comp_ref_type_cdf[COMP_REF_TYPE_CONTEXTS][CDF_SIZE(2)] = {
+ { AOM_ICDF(8 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(20 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(78 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(91 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(194 * 128), AOM_ICDF(32768), 0 }
+ };
+static const aom_cdf_prob
+ default_uni_comp_ref_cdf[UNI_COMP_REF_CONTEXTS][UNIDIR_COMP_REFS - 1]
+ [CDF_SIZE(2)] = {
+ { { AOM_ICDF(88 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(30 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(28 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(218 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(97 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(105 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(254 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(180 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(196 * 128), AOM_ICDF(32768), 0 } }
+ };
+#endif // CONFIG_NEW_MULTISYMBOL
+#endif // CONFIG_EXT_COMP_REFS
+
#if CONFIG_EXT_REFS
static const aom_prob default_comp_ref_p[REF_CONTEXTS][FWD_REFS - 1] = {
- // TODO(zoeliu): To adjust the initial prob values.
+#if !CONFIG_EXT_COMP_REFS
{ 33, 16, 16 },
{ 77, 74, 74 },
{ 142, 142, 142 },
{ 172, 170, 170 },
{ 238, 247, 247 }
+#else // CONFIG_EXT_COMP_REFS
+ { 21, 7, 5 },
+ { 68, 20, 16 },
+ { 128, 56, 36 },
+ { 197, 111, 139 },
+ { 238, 131, 136 }
+#endif // !CONFIG_EXT_COMP_REFS
};
+
static const aom_prob default_comp_bwdref_p[REF_CONTEXTS][BWD_REFS - 1] = {
+#if CONFIG_ALTREF2
+ // TODO(zoeliu): ALTREF2 to work with EXT_COMP_REFS and NEW_MULTISYMBOL.
+ { 50, 50 },
+ { 130, 130 },
+ { 210, 210 },
+ { 128, 128 },
+ { 128, 128 }
+#else // !CONFIG_ALTREF2
+#if !CONFIG_EXT_COMP_REFS
{ 16 }, { 74 }, { 142 }, { 170 }, { 247 }
+#else // CONFIG_EXT_COMP_REFS
+ { 7 }, { 56 }, { 29 }, { 230 }, { 220 }
+#endif // CONFIG_EXT_COMP_REFS
+#endif // CONFIG_ALTREF2
};
-#else
+
+#if CONFIG_NEW_MULTISYMBOL
+static const aom_cdf_prob
+ default_comp_ref_cdf[REF_CONTEXTS][FWD_REFS - 1][CDF_SIZE(2)] = {
+#if !CONFIG_EXT_COMP_REFS
+ { { AOM_ICDF(33 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(77 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(74 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(74 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(172 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(170 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(170 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(238 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(247 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(247 * 128), AOM_ICDF(32768), 0 } }
+#else // CONFIG_EXT_COMP_REFS
+ { { AOM_ICDF(21 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(7 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(5 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(68 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(20 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(56 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(36 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(197 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(111 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(139 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(238 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(131 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(136 * 128), AOM_ICDF(32768), 0 } }
+#endif // !CONFIG_EXT_COMP_REFS
+ };
+
+static const aom_cdf_prob
+ default_comp_bwdref_cdf[REF_CONTEXTS][BWD_REFS - 1][CDF_SIZE(2)] = {
+#if !CONFIG_EXT_COMP_REFS
+ { { AOM_ICDF(16 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(74 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(170 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(247 * 128), AOM_ICDF(32768), 0 } }
+#else // CONFIG_EXT_COMP_REFS
+ { { AOM_ICDF(7 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(56 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(29 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(230 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(220 * 128), AOM_ICDF(32768), 0 } }
+#endif // !CONFIG_EXT_COMP_REFS
+ };
+#endif // CONFIG_NEW_MULTISYMBOL
+
+#else // !CONFIG_EXT_REFS
+
static const aom_prob default_comp_ref_p[REF_CONTEXTS][COMP_REFS - 1] = {
- { 50 }, { 126 }, { 123 }, { 221 }, { 226 }
+ { 43 }, { 100 }, { 137 }, { 212 }, { 229 },
};
+#if CONFIG_NEW_MULTISYMBOL
+static const aom_cdf_prob
+ default_comp_ref_cdf[REF_CONTEXTS][COMP_REFS - 1][CDF_SIZE(2)] = {
+ { { AOM_ICDF(43 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(100 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(137 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(212 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(229 * 128), AOM_ICDF(32768), 0 } }
+ };
+#endif // CONFIG_NEW_MULTISYMBOL
#endif // CONFIG_EXT_REFS
static const aom_prob default_single_ref_p[REF_CONTEXTS][SINGLE_REFS - 1] = {
#if CONFIG_EXT_REFS
+#if CONFIG_ALTREF2
+ // TODO(zoeliu): ALTREF2 to work with EXT_COMP_REFS and NEW_MULTISYMBOL.
+ { 33, 50, 16, 16, 16, 50 },
+ { 77, 130, 74, 74, 74, 130 },
+ { 142, 210, 142, 142, 142, 210 },
+ { 172, 128, 170, 170, 170, 128 },
+ { 238, 128, 247, 247, 247, 128 }
+#else // !CONFIG_ALTREF2
+#if !CONFIG_EXT_COMP_REFS
{ 33, 16, 16, 16, 16 },
{ 77, 74, 74, 74, 74 },
{ 142, 142, 142, 142, 142 },
{ 172, 170, 170, 170, 170 },
{ 238, 247, 247, 247, 247 }
-#else
- { 33, 16 }, { 77, 74 }, { 142, 142 }, { 172, 170 }, { 238, 247 }
+#else // CONFIG_EXT_COMP_REFS
+ { 36, 2, 28, 58, 9 },
+ { 64, 22, 60, 122, 40 },
+ { 153, 69, 126, 179, 71 },
+ { 128, 174, 189, 216, 101 },
+ { 233, 252, 228, 246, 200 }
+#endif // !CONFIG_EXT_COMP_REFS
+#endif // CONFIG_ALTREF2
+#else // !CONFIG_EXT_REFS
+ { 31, 25 }, { 72, 80 }, { 147, 148 }, { 197, 191 }, { 235, 247 },
#endif // CONFIG_EXT_REFS
};
+#if CONFIG_NEW_MULTISYMBOL
+static const aom_cdf_prob
+ default_single_ref_cdf[REF_CONTEXTS][SINGLE_REFS - 1][CDF_SIZE(2)] = {
+#if CONFIG_EXT_REFS
+#if !CONFIG_EXT_COMP_REFS
+ { { AOM_ICDF(33 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(77 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(74 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(74 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(74 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(74 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(172 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(170 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(170 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(170 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(170 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(238 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(247 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(247 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(247 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(247 * 128), AOM_ICDF(32768), 0 } }
+#else // CONFIG_EXT_COMP_REFS
+ { { AOM_ICDF(36 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(2 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(28 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(58 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(9 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(64 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(22 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(60 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(122 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(40 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(153 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(69 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(126 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(179 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(71 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(174 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(189 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(216 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(101 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(233 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(252 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(228 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(246 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(200 * 128), AOM_ICDF(32768), 0 } }
+#endif // !CONFIG_EXT_COMP_REFS
+#else // CONFIG_EXT_REFS
+ { { AOM_ICDF(31 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(25 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(72 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(80 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(147 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(148 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(197 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(191 * 128), AOM_ICDF(32768), 0 } },
+ { { AOM_ICDF(235 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(247 * 128), AOM_ICDF(32768), 0 } }
+#endif // CONFIG_EXT_REFS
+ };
+#endif // CONFIG_NEW_MULTISYMBOL
+
#if CONFIG_EXT_INTER && CONFIG_COMPOUND_SINGLEREF
// TODO(zoeliu): Default values to be further adjusted based on the collected
// stats.
static const aom_prob default_comp_inter_mode_p[COMP_INTER_MODE_CONTEXTS] = {
- 41, 119, 187, 225
+ 40, 110, 160, 220
};
#endif // CONFIG_EXT_INTER && CONFIG_COMPOUND_SINGLEREF
#if CONFIG_PALETTE
-
-// Tree to code palette size (number of colors in a palette) and the
-// corresponding probabilities for Y and UV planes.
-const aom_tree_index av1_palette_size_tree[TREE_SIZE(PALETTE_SIZES)] = {
- -TWO_COLORS, 2, -THREE_COLORS, 4, -FOUR_COLORS, 6,
- -FIVE_COLORS, 8, -SIX_COLORS, 10, -SEVEN_COLORS, -EIGHT_COLORS,
-};
-
-// TODO(huisu): tune these probs
-const aom_prob
- av1_default_palette_y_size_prob[PALETTE_BLOCK_SIZES][PALETTE_SIZES - 1] = {
- { 96, 89, 100, 64, 77, 130 }, { 22, 15, 44, 16, 34, 82 },
- { 30, 19, 57, 18, 38, 86 }, { 94, 36, 104, 23, 43, 92 },
- { 116, 76, 107, 46, 65, 105 }, { 112, 82, 94, 40, 70, 112 },
- { 147, 124, 123, 58, 69, 103 }, { 180, 113, 136, 49, 45, 114 },
- { 107, 70, 87, 49, 154, 156 }, { 98, 105, 142, 63, 64, 152 },
+// TODO(huisu): tune these cdfs
+const aom_cdf_prob
+ default_palette_y_size_cdf[PALETTE_BLOCK_SIZES][CDF_SIZE(PALETTE_SIZES)] = {
+ { AOM_ICDF(12288), AOM_ICDF(19408), AOM_ICDF(24627), AOM_ICDF(26662),
+ AOM_ICDF(28499), AOM_ICDF(30667), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(2815), AOM_ICDF(4570), AOM_ICDF(9416), AOM_ICDF(10875),
+ AOM_ICDF(13782), AOM_ICDF(19863), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(3839), AOM_ICDF(5986), AOM_ICDF(11949), AOM_ICDF(13413),
+ AOM_ICDF(16286), AOM_ICDF(21823), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(12032), AOM_ICDF(14948), AOM_ICDF(22187), AOM_ICDF(23138),
+ AOM_ICDF(24756), AOM_ICDF(27635), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(14847), AOM_ICDF(20167), AOM_ICDF(25433), AOM_ICDF(26751),
+ AOM_ICDF(28278), AOM_ICDF(30119), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(14336), AOM_ICDF(20240), AOM_ICDF(24840), AOM_ICDF(26079),
+ AOM_ICDF(27908), AOM_ICDF(30034), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(18816), AOM_ICDF(25574), AOM_ICDF(29030), AOM_ICDF(29877),
+ AOM_ICDF(30656), AOM_ICDF(31506), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(23039), AOM_ICDF(27333), AOM_ICDF(30220), AOM_ICDF(30708),
+ AOM_ICDF(31070), AOM_ICDF(31826), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(13696), AOM_ICDF(18911), AOM_ICDF(23620), AOM_ICDF(25371),
+ AOM_ICDF(29821), AOM_ICDF(31617), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(12543), AOM_ICDF(20838), AOM_ICDF(27455), AOM_ICDF(28762),
+ AOM_ICDF(29763), AOM_ICDF(31546), AOM_ICDF(32768), 0 },
#if CONFIG_EXT_PARTITION
- { 98, 105, 142, 63, 64, 152 }, { 98, 105, 142, 63, 64, 152 },
- { 98, 105, 142, 63, 64, 152 },
-#endif // CONFIG_EXT_PARTITION
+ { AOM_ICDF(12543), AOM_ICDF(20838), AOM_ICDF(27455), AOM_ICDF(28762),
+ AOM_ICDF(29763), AOM_ICDF(31546), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(12543), AOM_ICDF(20838), AOM_ICDF(27455), AOM_ICDF(28762),
+ AOM_ICDF(29763), AOM_ICDF(31546), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(12543), AOM_ICDF(20838), AOM_ICDF(27455), AOM_ICDF(28762),
+ AOM_ICDF(29763), AOM_ICDF(31546), AOM_ICDF(32768), 0 },
+#endif
};
-const aom_prob
- av1_default_palette_uv_size_prob[PALETTE_BLOCK_SIZES][PALETTE_SIZES - 1] = {
- { 160, 196, 228, 213, 175, 230 }, { 87, 148, 208, 141, 166, 163 },
- { 72, 151, 204, 139, 155, 161 }, { 78, 135, 171, 104, 120, 173 },
- { 59, 92, 131, 78, 92, 142 }, { 75, 118, 149, 84, 90, 128 },
- { 89, 87, 92, 66, 66, 128 }, { 67, 53, 54, 55, 66, 93 },
- { 120, 130, 83, 171, 75, 214 }, { 72, 55, 66, 68, 79, 107 },
+const aom_cdf_prob default_palette_uv_size_cdf[PALETTE_BLOCK_SIZES][CDF_SIZE(
+ PALETTE_SIZES)] = {
+ { AOM_ICDF(20480), AOM_ICDF(29888), AOM_ICDF(32453), AOM_ICDF(32715),
+ AOM_ICDF(32751), AOM_ICDF(32766), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(11135), AOM_ICDF(23641), AOM_ICDF(31056), AOM_ICDF(31998),
+ AOM_ICDF(32496), AOM_ICDF(32668), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(9216), AOM_ICDF(23108), AOM_ICDF(30806), AOM_ICDF(31871),
+ AOM_ICDF(32414), AOM_ICDF(32637), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(9984), AOM_ICDF(21999), AOM_ICDF(29192), AOM_ICDF(30645),
+ AOM_ICDF(31640), AOM_ICDF(32402), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(7552), AOM_ICDF(16614), AOM_ICDF(24880), AOM_ICDF(27283),
+ AOM_ICDF(29254), AOM_ICDF(31203), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(9600), AOM_ICDF(20279), AOM_ICDF(27548), AOM_ICDF(29261),
+ AOM_ICDF(30494), AOM_ICDF(31631), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(11391), AOM_ICDF(18656), AOM_ICDF(23727), AOM_ICDF(26058),
+ AOM_ICDF(27788), AOM_ICDF(30278), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(8576), AOM_ICDF(13585), AOM_ICDF(17632), AOM_ICDF(20884),
+ AOM_ICDF(23948), AOM_ICDF(27152), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(15360), AOM_ICDF(24200), AOM_ICDF(26978), AOM_ICDF(30846),
+ AOM_ICDF(31409), AOM_ICDF(32545), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(9216), AOM_ICDF(14276), AOM_ICDF(19043), AOM_ICDF(22689),
+ AOM_ICDF(25799), AOM_ICDF(28712), AOM_ICDF(32768), 0 },
#if CONFIG_EXT_PARTITION
- { 72, 55, 66, 68, 79, 107 }, { 72, 55, 66, 68, 79, 107 },
- { 72, 55, 66, 68, 79, 107 },
-#endif // CONFIG_EXT_PARTITION
- };
+ { AOM_ICDF(9216), AOM_ICDF(14276), AOM_ICDF(19043), AOM_ICDF(22689),
+ AOM_ICDF(25799), AOM_ICDF(28712), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(9216), AOM_ICDF(14276), AOM_ICDF(19043), AOM_ICDF(22689),
+ AOM_ICDF(25799), AOM_ICDF(28712), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(9216), AOM_ICDF(14276), AOM_ICDF(19043), AOM_ICDF(22689),
+ AOM_ICDF(25799), AOM_ICDF(28712), AOM_ICDF(32768), 0 },
+#endif
+};
// When palette mode is enabled, following probability tables indicate the
// probabilities to code the "is_palette" bit (i.e. the bit that indicates
@@ -1428,178 +1504,182 @@ const aom_prob av1_default_palette_uv_mode_prob[PALETTE_UV_MODE_CONTEXTS] = {
253, 229
};
-// Trees to code palette color indices (for various palette sizes), and the
-// corresponding probability tables for Y and UV planes.
-const aom_tree_index
- av1_palette_color_index_tree[PALETTE_SIZES][TREE_SIZE(PALETTE_COLORS)] = {
- { // 2 colors
- -PALETTE_COLOR_ONE, -PALETTE_COLOR_TWO },
- { // 3 colors
- -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, -PALETTE_COLOR_THREE },
- { // 4 colors
- -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE,
- -PALETTE_COLOR_FOUR },
- { // 5 colors
- -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE, 6,
- -PALETTE_COLOR_FOUR, -PALETTE_COLOR_FIVE },
- { // 6 colors
- -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE, 6,
- -PALETTE_COLOR_FOUR, 8, -PALETTE_COLOR_FIVE, -PALETTE_COLOR_SIX },
- { // 7 colors
- -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE, 6,
- -PALETTE_COLOR_FOUR, 8, -PALETTE_COLOR_FIVE, 10, -PALETTE_COLOR_SIX,
- -PALETTE_COLOR_SEVEN },
- { // 8 colors
- -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE, 6,
- -PALETTE_COLOR_FOUR, 8, -PALETTE_COLOR_FIVE, 10, -PALETTE_COLOR_SIX, 12,
- -PALETTE_COLOR_SEVEN, -PALETTE_COLOR_EIGHT },
- };
-
-// Note: Has to be non-zero to avoid any asserts triggering.
-#define UNUSED_PROB 128
-
-const aom_prob av1_default_palette_y_color_index_prob
- [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][PALETTE_COLORS - 1] = {
+const aom_cdf_prob default_palette_y_color_index_cdf
+ [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = {
{
- // 2 colors
- { 231, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB, UNUSED_PROB },
- { UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB, UNUSED_PROB },
- { 69, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB },
- { 224, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB, UNUSED_PROB },
- { 249, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB, UNUSED_PROB },
+ { AOM_ICDF(29568), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+ { AOM_ICDF(16384), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+ { AOM_ICDF(8832), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+ { AOM_ICDF(28672), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+ { AOM_ICDF(31872), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
},
{
- // 3 colors
- { 219, 124, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB },
- { 91, 191, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB },
- { 34, 237, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB },
- { 184, 118, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB },
- { 252, 124, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB },
+ { AOM_ICDF(28032), AOM_ICDF(30326), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+ 0 },
+ { AOM_ICDF(11647), AOM_ICDF(27405), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+ 0 },
+ { AOM_ICDF(4352), AOM_ICDF(30659), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+ 0 },
+ { AOM_ICDF(23552), AOM_ICDF(27800), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+ 0 },
+ { AOM_ICDF(32256), AOM_ICDF(32504), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+ 0 },
},
{
- // 4 colors
- { 204, 87, 97, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 74, 144, 129, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 52, 191, 134, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 151, 85, 147, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 248, 60, 115, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
+ { AOM_ICDF(26112), AOM_ICDF(28374), AOM_ICDF(30039), AOM_ICDF(32768),
+ 0, 0, 0, 0, 0 },
+ { AOM_ICDF(9472), AOM_ICDF(22576), AOM_ICDF(27712), AOM_ICDF(32768),
+ 0, 0, 0, 0, 0 },
+ { AOM_ICDF(6656), AOM_ICDF(26138), AOM_ICDF(29608), AOM_ICDF(32768),
+ 0, 0, 0, 0, 0 },
+ { AOM_ICDF(19328), AOM_ICDF(23791), AOM_ICDF(28946), AOM_ICDF(32768),
+ 0, 0, 0, 0, 0 },
+ { AOM_ICDF(31744), AOM_ICDF(31984), AOM_ICDF(32336), AOM_ICDF(32768),
+ 0, 0, 0, 0, 0 },
},
{
- // 5 colors
- { 218, 69, 62, 106, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 76, 143, 89, 127, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 21, 233, 94, 131, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 172, 72, 89, 112, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 253, 66, 65, 128, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
+ { AOM_ICDF(27904), AOM_ICDF(29215), AOM_ICDF(30075), AOM_ICDF(31190),
+ AOM_ICDF(32768), 0, 0, 0, 0 },
+ { AOM_ICDF(9728), AOM_ICDF(22598), AOM_ICDF(26134), AOM_ICDF(29425),
+ AOM_ICDF(32768), 0, 0, 0, 0 },
+ { AOM_ICDF(2688), AOM_ICDF(30066), AOM_ICDF(31058), AOM_ICDF(31933),
+ AOM_ICDF(32768), 0, 0, 0, 0 },
+ { AOM_ICDF(22015), AOM_ICDF(25039), AOM_ICDF(27726), AOM_ICDF(29932),
+ AOM_ICDF(32768), 0, 0, 0, 0 },
+ { AOM_ICDF(32383), AOM_ICDF(32482), AOM_ICDF(32554), AOM_ICDF(32660),
+ AOM_ICDF(32768), 0, 0, 0, 0 },
},
{
- // 6 colors
- { 190, 60, 47, 54, 74, UNUSED_PROB, UNUSED_PROB },
- { 62, 106, 51, 95, 110, UNUSED_PROB, UNUSED_PROB },
- { 52, 180, 69, 72, 107, UNUSED_PROB, UNUSED_PROB },
- { 156, 83, 72, 83, 101, UNUSED_PROB, UNUSED_PROB },
- { 245, 45, 37, 52, 91, UNUSED_PROB, UNUSED_PROB },
+ { AOM_ICDF(24319), AOM_ICDF(26299), AOM_ICDF(27486), AOM_ICDF(28600),
+ AOM_ICDF(29804), AOM_ICDF(32768), 0, 0, 0 },
+ { AOM_ICDF(7935), AOM_ICDF(18217), AOM_ICDF(21116), AOM_ICDF(25440),
+ AOM_ICDF(28589), AOM_ICDF(32768), 0, 0, 0 },
+ { AOM_ICDF(6656), AOM_ICDF(25016), AOM_ICDF(27105), AOM_ICDF(28698),
+ AOM_ICDF(30399), AOM_ICDF(32768), 0, 0, 0 },
+ { AOM_ICDF(19967), AOM_ICDF(24117), AOM_ICDF(26550), AOM_ICDF(28566),
+ AOM_ICDF(30224), AOM_ICDF(32768), 0, 0, 0 },
+ { AOM_ICDF(31359), AOM_ICDF(31607), AOM_ICDF(31775), AOM_ICDF(31977),
+ AOM_ICDF(32258), AOM_ICDF(32768), 0, 0, 0 },
},
{
- // 7 colors
- { 206, 56, 42, 42, 53, 85, UNUSED_PROB },
- { 70, 100, 45, 68, 77, 94, UNUSED_PROB },
- { 57, 169, 51, 62, 74, 119, UNUSED_PROB },
- { 172, 76, 71, 40, 59, 76, UNUSED_PROB },
- { 248, 47, 36, 53, 61, 110, UNUSED_PROB },
+ { AOM_ICDF(26368), AOM_ICDF(27768), AOM_ICDF(28588), AOM_ICDF(29274),
+ AOM_ICDF(29997), AOM_ICDF(30917), AOM_ICDF(32768), 0, 0 },
+ { AOM_ICDF(8960), AOM_ICDF(18260), AOM_ICDF(20810), AOM_ICDF(23986),
+ AOM_ICDF(26627), AOM_ICDF(28882), AOM_ICDF(32768), 0, 0 },
+ { AOM_ICDF(7295), AOM_ICDF(24111), AOM_ICDF(25836), AOM_ICDF(27515),
+ AOM_ICDF(29033), AOM_ICDF(30769), AOM_ICDF(32768), 0, 0 },
+ { AOM_ICDF(22016), AOM_ICDF(25208), AOM_ICDF(27305), AOM_ICDF(28159),
+ AOM_ICDF(29221), AOM_ICDF(30274), AOM_ICDF(32768), 0, 0 },
+ { AOM_ICDF(31744), AOM_ICDF(31932), AOM_ICDF(32050), AOM_ICDF(32199),
+ AOM_ICDF(32335), AOM_ICDF(32521), AOM_ICDF(32768), 0, 0 },
},
{
- // 8 colors
- { 208, 52, 38, 34, 34, 44, 66 },
- { 52, 107, 34, 73, 69, 82, 87 },
- { 28, 208, 53, 43, 62, 70, 102 },
- { 184, 64, 45, 37, 37, 69, 105 },
- { 251, 18, 31, 45, 47, 61, 104 },
+ { AOM_ICDF(26624), AOM_ICDF(27872), AOM_ICDF(28599), AOM_ICDF(29153),
+ AOM_ICDF(29633), AOM_ICDF(30172), AOM_ICDF(30841), AOM_ICDF(32768),
+ 0 },
+ { AOM_ICDF(6655), AOM_ICDF(17569), AOM_ICDF(19587), AOM_ICDF(23345),
+ AOM_ICDF(25884), AOM_ICDF(28088), AOM_ICDF(29678), AOM_ICDF(32768),
+ 0 },
+ { AOM_ICDF(3584), AOM_ICDF(27296), AOM_ICDF(28429), AOM_ICDF(29158),
+ AOM_ICDF(30032), AOM_ICDF(30780), AOM_ICDF(31572), AOM_ICDF(32768),
+ 0 },
+ { AOM_ICDF(23551), AOM_ICDF(25855), AOM_ICDF(27070), AOM_ICDF(27893),
+ AOM_ICDF(28597), AOM_ICDF(29721), AOM_ICDF(30970), AOM_ICDF(32768),
+ 0 },
+ { AOM_ICDF(32128), AOM_ICDF(32173), AOM_ICDF(32245), AOM_ICDF(32337),
+ AOM_ICDF(32416), AOM_ICDF(32500), AOM_ICDF(32609), AOM_ICDF(32768),
+ 0 },
},
};
-const aom_prob av1_default_palette_uv_color_index_prob
- [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][PALETTE_COLORS - 1] = {
+const aom_cdf_prob default_palette_uv_color_index_cdf
+ [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = {
{
- // 2 colors
- { 233, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB, UNUSED_PROB },
- { UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB, UNUSED_PROB },
- { 69, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB },
- { 240, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB, UNUSED_PROB },
- { 248, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB, UNUSED_PROB },
+ { AOM_ICDF(29824), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+ { AOM_ICDF(16384), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+ { AOM_ICDF(8832), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+ { AOM_ICDF(30720), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+ { AOM_ICDF(31744), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
},
{
- // 3 colors
- { 216, 128, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB },
- { 110, 171, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB },
- { 40, 239, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB },
- { 191, 104, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB },
- { 247, 134, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
- UNUSED_PROB },
+ { AOM_ICDF(27648), AOM_ICDF(30208), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+ 0 },
+ { AOM_ICDF(14080), AOM_ICDF(26563), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+ 0 },
+ { AOM_ICDF(5120), AOM_ICDF(30932), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+ 0 },
+ { AOM_ICDF(24448), AOM_ICDF(27828), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+ 0 },
+ { AOM_ICDF(31616), AOM_ICDF(32219), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+ 0 },
},
{
- // 4 colors
- { 202, 89, 132, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 90, 132, 136, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 63, 195, 149, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 152, 84, 152, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 241, 87, 136, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
+ { AOM_ICDF(25856), AOM_ICDF(28259), AOM_ICDF(30584), AOM_ICDF(32768),
+ 0, 0, 0, 0, 0 },
+ { AOM_ICDF(11520), AOM_ICDF(22476), AOM_ICDF(27944), AOM_ICDF(32768),
+ 0, 0, 0, 0, 0 },
+ { AOM_ICDF(8064), AOM_ICDF(26882), AOM_ICDF(30308), AOM_ICDF(32768),
+ 0, 0, 0, 0, 0 },
+ { AOM_ICDF(19455), AOM_ICDF(23823), AOM_ICDF(29134), AOM_ICDF(32768),
+ 0, 0, 0, 0, 0 },
+ { AOM_ICDF(30848), AOM_ICDF(31501), AOM_ICDF(32174), AOM_ICDF(32768),
+ 0, 0, 0, 0, 0 },
},
{
- // 5 colors
- { 209, 54, 82, 134, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 94, 173, 180, 93, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 10, 251, 127, 84, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 183, 20, 150, 47, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
- { 252, 73, 111, 150, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
+ { AOM_ICDF(26751), AOM_ICDF(28020), AOM_ICDF(29541), AOM_ICDF(31230),
+ AOM_ICDF(32768), 0, 0, 0, 0 },
+ { AOM_ICDF(12032), AOM_ICDF(26045), AOM_ICDF(30772), AOM_ICDF(31497),
+ AOM_ICDF(32768), 0, 0, 0, 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32153), AOM_ICDF(32458), AOM_ICDF(32560),
+ AOM_ICDF(32768), 0, 0, 0, 0 },
+ { AOM_ICDF(23424), AOM_ICDF(24154), AOM_ICDF(29201), AOM_ICDF(29856),
+ AOM_ICDF(32768), 0, 0, 0, 0 },
+ { AOM_ICDF(32256), AOM_ICDF(32402), AOM_ICDF(32561), AOM_ICDF(32682),
+ AOM_ICDF(32768), 0, 0, 0, 0 },
},
{
- // 6 colors
- { 192, 67, 59, 46, 184, UNUSED_PROB, UNUSED_PROB },
- { 59, 92, 61, 100, 130, UNUSED_PROB, UNUSED_PROB },
- { 49, 162, 68, 91, 150, UNUSED_PROB, UNUSED_PROB },
- { 133, 29, 36, 153, 101, UNUSED_PROB, UNUSED_PROB },
- { 247, 71, 44, 90, 129, UNUSED_PROB, UNUSED_PROB },
+ { AOM_ICDF(24576), AOM_ICDF(26720), AOM_ICDF(28114), AOM_ICDF(28950),
+ AOM_ICDF(31694), AOM_ICDF(32768), 0, 0, 0 },
+ { AOM_ICDF(7551), AOM_ICDF(16613), AOM_ICDF(20462), AOM_ICDF(25269),
+ AOM_ICDF(29077), AOM_ICDF(32768), 0, 0, 0 },
+ { AOM_ICDF(6272), AOM_ICDF(23039), AOM_ICDF(25623), AOM_ICDF(28163),
+ AOM_ICDF(30861), AOM_ICDF(32768), 0, 0, 0 },
+ { AOM_ICDF(17024), AOM_ICDF(18808), AOM_ICDF(20771), AOM_ICDF(27941),
+ AOM_ICDF(29845), AOM_ICDF(32768), 0, 0, 0 },
+ { AOM_ICDF(31616), AOM_ICDF(31936), AOM_ICDF(32079), AOM_ICDF(32321),
+ AOM_ICDF(32546), AOM_ICDF(32768), 0, 0, 0 },
},
{
- // 7 colors
- { 182, 62, 80, 78, 46, 116, UNUSED_PROB },
- { 59, 62, 39, 81, 65, 99, UNUSED_PROB },
- { 54, 177, 48, 58, 93, 104, UNUSED_PROB },
- { 137, 79, 54, 55, 44, 134, UNUSED_PROB },
- { 239, 82, 79, 44, 69, 71, UNUSED_PROB },
+ { AOM_ICDF(23296), AOM_ICDF(25590), AOM_ICDF(27833), AOM_ICDF(29337),
+ AOM_ICDF(29954), AOM_ICDF(31229), AOM_ICDF(32768), 0, 0 },
+ { AOM_ICDF(7552), AOM_ICDF(13659), AOM_ICDF(16570), AOM_ICDF(21695),
+ AOM_ICDF(24506), AOM_ICDF(27701), AOM_ICDF(32768), 0, 0 },
+ { AOM_ICDF(6911), AOM_ICDF(24788), AOM_ICDF(26284), AOM_ICDF(27753),
+ AOM_ICDF(29575), AOM_ICDF(30872), AOM_ICDF(32768), 0, 0 },
+ { AOM_ICDF(17535), AOM_ICDF(22236), AOM_ICDF(24457), AOM_ICDF(26242),
+ AOM_ICDF(27363), AOM_ICDF(30191), AOM_ICDF(32768), 0, 0 },
+ { AOM_ICDF(30592), AOM_ICDF(31289), AOM_ICDF(31745), AOM_ICDF(31921),
+ AOM_ICDF(32149), AOM_ICDF(32321), AOM_ICDF(32768), 0, 0 },
},
{
- // 8 colors
- { 172, 53, 27, 67, 30, 79, 113 },
- { 63, 57, 45, 81, 62, 35, 47 },
- { 51, 200, 36, 47, 82, 165, 129 },
- { 141, 100, 47, 29, 33, 37, 129 },
- { 236, 42, 50, 91, 24, 154, 65 },
- },
+ { AOM_ICDF(22016), AOM_ICDF(24242), AOM_ICDF(25141), AOM_ICDF(27137),
+ AOM_ICDF(27797), AOM_ICDF(29331), AOM_ICDF(30848), AOM_ICDF(32768),
+ 0 },
+ { AOM_ICDF(8063), AOM_ICDF(13564), AOM_ICDF(16940), AOM_ICDF(21948),
+ AOM_ICDF(24568), AOM_ICDF(25689), AOM_ICDF(26989), AOM_ICDF(32768),
+ 0 },
+ { AOM_ICDF(6528), AOM_ICDF(27028), AOM_ICDF(27835), AOM_ICDF(28741),
+ AOM_ICDF(30031), AOM_ICDF(31795), AOM_ICDF(32285), AOM_ICDF(32768),
+ 0 },
+ { AOM_ICDF(18047), AOM_ICDF(23797), AOM_ICDF(25444), AOM_ICDF(26274),
+ AOM_ICDF(27111), AOM_ICDF(27929), AOM_ICDF(30367), AOM_ICDF(32768),
+ 0 },
+ { AOM_ICDF(30208), AOM_ICDF(30628), AOM_ICDF(31046), AOM_ICDF(31658),
+ AOM_ICDF(31762), AOM_ICDF(32367), AOM_ICDF(32469), AOM_ICDF(32768),
+ 0 },
+ }
};
-#undef UNUSED_PROB
-
#define MAX_COLOR_CONTEXT_HASH 8
// Negative values are invalid
static const int palette_color_index_context_lookup[MAX_COLOR_CONTEXT_HASH +
@@ -1657,9 +1737,9 @@ static const aom_prob default_tx_size_prob[MAX_TX_DEPTH][TX_SIZE_CONTEXTS]
#endif // CONFIG_TX64X64
};
-#if CONFIG_EXT_TX && CONFIG_RECT_TX && CONFIG_RECT_TX_EXT
+#if CONFIG_RECT_TX_EXT && (CONFIG_EXT_TX || CONFIG_VAR_TX)
static const aom_prob default_quarter_tx_size_prob = 192;
-#endif // CONFIG_EXT_TX && CONFIG_RECT_TX && CONFIG_RECT_TX_EXT
+#endif
#if CONFIG_LOOP_RESTORATION
const aom_tree_index
@@ -1764,9 +1844,37 @@ int av1_get_palette_color_index_context(const uint8_t *color_map, int stride,
static const aom_prob default_txfm_partition_probs[TXFM_PARTITION_CONTEXTS] = {
250, 231, 212, 241, 166, 66, 241, 230, 135, 243, 154, 64, 248, 161, 63, 128,
};
+#if CONFIG_NEW_MULTISYMBOL
+static const aom_cdf_prob
+ default_txfm_partition_cdf[TXFM_PARTITION_CONTEXTS][CDF_SIZE(2)] = {
+ { AOM_ICDF(250 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(231 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(212 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(241 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(166 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(66 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(241 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(230 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(135 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(243 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(154 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(64 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(248 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(161 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(63 * 128), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 }
+ };
+#endif // CONFIG_NEW_MULTISYMBOL
#endif
static const aom_prob default_skip_probs[SKIP_CONTEXTS] = { 192, 128, 64 };
+#if CONFIG_NEW_MULTISYMBOL
+static const aom_cdf_prob default_skip_cdfs[SKIP_CONTEXTS][CDF_SIZE(2)] = {
+ { AOM_ICDF(24576), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(16384), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(8192), AOM_ICDF(32768), 0 }
+};
+#endif
#if CONFIG_DUAL_FILTER
#if USE_EXTRA_FILTER
@@ -1783,10 +1891,10 @@ static const aom_prob default_switchable_interp_prob
#else // USE_EXTRA_FILTER
static const aom_prob default_switchable_interp_prob
[SWITCHABLE_FILTER_CONTEXTS][SWITCHABLE_FILTERS - 1] = {
- { 235, 162 }, { 36, 255 }, { 34, 3 }, { 149, 144 },
- { 235, 162 }, { 36, 255 }, { 34, 3 }, { 149, 144 },
- { 235, 162 }, { 36, 255 }, { 34, 3 }, { 149, 144 },
- { 235, 162 }, { 36, 255 }, { 34, 3 }, { 149, 144 },
+ { 252, 199 }, { 22, 255 }, { 4, 2 }, { 238, 146 },
+ { 253, 66 }, { 24, 255 }, { 2, 1 }, { 198, 41 },
+ { 250, 177 }, { 16, 255 }, { 3, 4 }, { 226, 162 },
+ { 247, 38 }, { 33, 253 }, { 1, 1 }, { 136, 14 },
};
#endif // USE_EXTRA_FILTER
#else // CONFIG_DUAL_FILTER
@@ -1835,7 +1943,12 @@ const aom_tree_index av1_ext_tx_inter_tree[EXT_TX_SETS_INTER]
-ADST_FLIPADST, -FLIPADST_ADST
}, {
-IDTX, -DCT_DCT,
+ },
+#if CONFIG_MRC_TX
+ {
+ -IDTX, 2, -DCT_DCT, -MRC_DCT,
}
+#endif // CONFIG_MRC_TX
};
const aom_tree_index av1_ext_tx_intra_tree[EXT_TX_SETS_INTRA]
@@ -1854,7 +1967,12 @@ const aom_tree_index av1_ext_tx_intra_tree[EXT_TX_SETS_INTRA]
-DCT_DCT, 4,
-ADST_ADST, 6,
-ADST_DCT, -DCT_ADST,
+ },
+#if CONFIG_MRC_TX
+ {
+ -DCT_DCT, -MRC_DCT,
}
+#endif // CONFIG_MRC_TX
};
/* clang-format on */
@@ -1900,7 +2018,18 @@ static const aom_prob
{ 12 },
{ 12 },
{ 12 },
+ },
+#if CONFIG_MRC_TX
+ {
+#if CONFIG_CHROMA_2X2
+ { 0 },
+#endif
+ { 12, 128 },
+ { 12, 128 },
+ { 12, 128 },
+ { 12, 128 },
}
+#endif // CONFIG_MRC_TX
};
// TODO(urvang): 3rd context should be tx_type instead of intra mode just like
@@ -2158,20 +2287,152 @@ static const aom_prob
{ 10, 32, 16, 64 },
},
},
+#if CONFIG_MRC_TX
+ {
+// ToDo(yaowu): remove unused entry 0.
+#if CONFIG_CHROMA_2X2
+ {
+ { 0 },
+ },
+#endif
+ {
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+#if CONFIG_ALT_INTRA
+ { 128 },
+#if CONFIG_SMOOTH_HV
+ { 128 },
+ { 128 },
+#endif // CONFIG_SMOOTH_HV
+#endif // CONFIG_ALT_INTRA
+ { 128 },
+ },
+ {
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+#if CONFIG_ALT_INTRA
+ { 128 },
+#if CONFIG_SMOOTH_HV
+ { 128 },
+ { 128 },
+#endif // CONFIG_SMOOTH_HV
+#endif // CONFIG_ALT_INTRA
+ { 128 },
+ },
+ {
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+#if CONFIG_ALT_INTRA
+ { 128 },
+#if CONFIG_SMOOTH_HV
+ { 128 },
+ { 128 },
+#endif // CONFIG_SMOOTH_HV
+#endif // CONFIG_ALT_INTRA
+ { 128 },
+ },
+ {
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+ { 128 },
+#if CONFIG_ALT_INTRA
+ { 128 },
+#if CONFIG_SMOOTH_HV
+ { 128 },
+ { 128 },
+#endif // CONFIG_SMOOTH_HV
+#endif // CONFIG_ALT_INTRA
+ { 128 },
+ },
+ },
+
+#endif // CONFIG_MRC_TX
};
#else // !CONFIG_EXT_TX
/* clang-format off */
+#if CONFIG_MRC_TX
+const aom_tree_index av1_ext_tx_tree[TREE_SIZE(TX_TYPES)] = {
+ -DCT_DCT, 2,
+ -MRC_DCT, 4,
+ -ADST_ADST, 6,
+ -ADST_DCT, -DCT_ADST
+};
+#else
const aom_tree_index av1_ext_tx_tree[TREE_SIZE(TX_TYPES)] = {
-DCT_DCT, 2,
-ADST_ADST, 4,
-ADST_DCT, -DCT_ADST
};
+#endif // CONFIG_MRC_TX
/* clang-format on */
int av1_ext_tx_ind[TX_TYPES];
int av1_ext_tx_inv[TX_TYPES];
+#if CONFIG_MRC_TX
+static const aom_prob default_intra_ext_tx_prob[EXT_TX_SIZES][TX_TYPES]
+ [TX_TYPES - 1] = {
+#if CONFIG_CHROMA_2X2
+ { { 240, 1, 85, 128 },
+ { 4, 1, 1, 248 },
+ { 4, 1, 1, 8 },
+ { 4, 1, 248, 128 },
+ { 4, 1, 248, 128 } },
+#endif
+ { { 240, 1, 85, 128 },
+ { 4, 1, 1, 248 },
+ { 4, 1, 1, 8 },
+ { 4, 1, 248, 128 },
+ { 4, 1, 248, 128 } },
+ { { 244, 1, 85, 128 },
+ { 8, 1, 2, 248 },
+ { 8, 1, 2, 8 },
+ { 8, 1, 248, 128 },
+ { 4, 1, 248, 128 } },
+ { { 248, 128, 85, 128 },
+ { 16, 128, 4, 248 },
+ { 16, 128, 4, 8 },
+ { 16, 128, 248, 128 },
+ { 4, 1, 248, 128 } },
+ };
+
+static const aom_prob default_inter_ext_tx_prob[EXT_TX_SIZES][TX_TYPES - 1] = {
+#if CONFIG_CHROMA_2X2
+ { 160, 1, 85, 128 },
+#endif
+ { 160, 1, 85, 128 },
+ { 176, 1, 85, 128 },
+ { 192, 128, 85, 128 },
+};
+#else
static const aom_prob
default_intra_ext_tx_prob[EXT_TX_SIZES][TX_TYPES][TX_TYPES - 1] = {
#if CONFIG_CHROMA_2X2
@@ -2190,6 +2451,7 @@ static const aom_prob default_inter_ext_tx_prob[EXT_TX_SIZES][TX_TYPES - 1] = {
{ 176, 85, 128 },
{ 192, 85, 128 },
};
+#endif // CONFIG_MRC_TX
#endif // CONFIG_EXT_TX
#if CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
@@ -2237,6 +2499,14 @@ static const aom_prob default_segment_tree_probs[SEG_TREE_PROBS] = {
static const aom_prob default_segment_pred_probs[PREDICTION_PROBS] = {
128, 128, 128
};
+#if CONFIG_NEW_MULTISYMBOL
+static const aom_cdf_prob
+ default_segment_pred_cdf[PREDICTION_PROBS][CDF_SIZE(2)] = {
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0},
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0},
+ { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0}
+};
+#endif
// clang-format on
#if CONFIG_DUAL_FILTER
@@ -2269,22 +2539,22 @@ static const aom_cdf_prob
static const aom_cdf_prob
default_switchable_interp_cdf[SWITCHABLE_FILTER_CONTEXTS][CDF_SIZE(
SWITCHABLE_FILTERS)] = {
- { AOM_ICDF(30080), AOM_ICDF(31781), AOM_ICDF(32768), 0 },
- { AOM_ICDF(4608), AOM_ICDF(32658), AOM_ICDF(32768), 0 },
- { AOM_ICDF(4352), AOM_ICDF(4685), AOM_ICDF(32768), 0 },
- { AOM_ICDF(19072), AOM_ICDF(26776), AOM_ICDF(32768), 0 },
- { AOM_ICDF(30080), AOM_ICDF(31781), AOM_ICDF(32768), 0 },
- { AOM_ICDF(4608), AOM_ICDF(32658), AOM_ICDF(32768), 0 },
- { AOM_ICDF(4352), AOM_ICDF(4685), AOM_ICDF(32768), 0 },
- { AOM_ICDF(19072), AOM_ICDF(26776), AOM_ICDF(32768), 0 },
- { AOM_ICDF(30080), AOM_ICDF(31781), AOM_ICDF(32768), 0 },
- { AOM_ICDF(4608), AOM_ICDF(32658), AOM_ICDF(32768), 0 },
- { AOM_ICDF(4352), AOM_ICDF(4685), AOM_ICDF(32768), 0 },
- { AOM_ICDF(19072), AOM_ICDF(26776), AOM_ICDF(32768), 0 },
- { AOM_ICDF(30080), AOM_ICDF(31781), AOM_ICDF(32768), 0 },
- { AOM_ICDF(4608), AOM_ICDF(32658), AOM_ICDF(32768), 0 },
- { AOM_ICDF(4352), AOM_ICDF(4685), AOM_ICDF(32768), 0 },
- { AOM_ICDF(19072), AOM_ICDF(26776), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32256), AOM_ICDF(32654), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(2816), AOM_ICDF(32651), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(512), AOM_ICDF(764), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(30464), AOM_ICDF(31778), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32384), AOM_ICDF(32483), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(3072), AOM_ICDF(32652), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(256), AOM_ICDF(383), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(25344), AOM_ICDF(26533), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(32000), AOM_ICDF(32531), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(2048), AOM_ICDF(32648), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(384), AOM_ICDF(890), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(28928), AOM_ICDF(31358), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(31616), AOM_ICDF(31787), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(4224), AOM_ICDF(32433), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(128), AOM_ICDF(256), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(17408), AOM_ICDF(18248), AOM_ICDF(32768), 0 }
};
#endif // USE_EXTRA_FILTER
#else // CONFIG_DUAL_FILTER
@@ -2344,7 +2614,7 @@ static const aom_cdf_prob
};
static const aom_cdf_prob
- default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(INTRA_MODES)] = {
+ default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(UV_INTRA_MODES)] = {
{ AOM_ICDF(23552), AOM_ICDF(23660), AOM_ICDF(26044), AOM_ICDF(28731),
AOM_ICDF(29093), AOM_ICDF(29590), AOM_ICDF(30000), AOM_ICDF(30465),
AOM_ICDF(30825), AOM_ICDF(31478), AOM_ICDF(32088), AOM_ICDF(32401),
@@ -2416,7 +2686,7 @@ static const aom_cdf_prob
};
static const aom_cdf_prob
- default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(INTRA_MODES)] = {
+ default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(UV_INTRA_MODES)] = {
{ AOM_ICDF(25472), AOM_ICDF(25558), AOM_ICDF(27783), AOM_ICDF(30779),
AOM_ICDF(30988), AOM_ICDF(31269), AOM_ICDF(31492), AOM_ICDF(31741),
AOM_ICDF(32014), AOM_ICDF(32420), AOM_ICDF(32768), 0 },
@@ -2470,7 +2740,7 @@ static const aom_cdf_prob
};
static const aom_cdf_prob
- default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(INTRA_MODES)] = {
+ default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(UV_INTRA_MODES)] = {
{ AOM_ICDF(15360), AOM_ICDF(15836), AOM_ICDF(20863), AOM_ICDF(27513),
AOM_ICDF(28269), AOM_ICDF(29048), AOM_ICDF(29455), AOM_ICDF(30154),
AOM_ICDF(31206), AOM_ICDF(32768), 0 },
@@ -2509,46 +2779,66 @@ static const aom_cdf_prob
default_partition_cdf[PARTITION_CONTEXTS][CDF_SIZE(EXT_PARTITION_TYPES)] = {
// 8x8 -> 4x4 only supports the four legacy partition types
{ AOM_ICDF(25472), AOM_ICDF(28949), AOM_ICDF(31052), AOM_ICDF(32768), 0,
- 0, 0, 0, 0 },
+ 0, 0, 0, 0, 0, 0 },
{ AOM_ICDF(18816), AOM_ICDF(22250), AOM_ICDF(28783), AOM_ICDF(32768), 0,
- 0, 0, 0, 0 },
+ 0, 0, 0, 0, 0, 0 },
{ AOM_ICDF(18944), AOM_ICDF(26126), AOM_ICDF(29188), AOM_ICDF(32768), 0,
- 0, 0, 0, 0 },
+ 0, 0, 0, 0, 0, 0 },
{ AOM_ICDF(15488), AOM_ICDF(22508), AOM_ICDF(27077), AOM_ICDF(32768), 0,
- 0, 0, 0, 0 },
+ 0, 0, 0, 0, 0, 0 },
+ // 16x16 -> 8x8
{ AOM_ICDF(22272), AOM_ICDF(23768), AOM_ICDF(25043), AOM_ICDF(29996),
- AOM_ICDF(30744), AOM_ICDF(31493), AOM_ICDF(32130), AOM_ICDF(32768), 0 },
+ AOM_ICDF(30744), AOM_ICDF(31493), AOM_ICDF(32130), AOM_ICDF(32768), 0,
+ 0, 0 },
{ AOM_ICDF(11776), AOM_ICDF(13457), AOM_ICDF(16315), AOM_ICDF(28229),
- AOM_ICDF(29069), AOM_ICDF(29910), AOM_ICDF(31339), AOM_ICDF(32768), 0 },
+ AOM_ICDF(29069), AOM_ICDF(29910), AOM_ICDF(31339), AOM_ICDF(32768), 0,
+ 0, 0 },
{ AOM_ICDF(10496), AOM_ICDF(14802), AOM_ICDF(16136), AOM_ICDF(27127),
- AOM_ICDF(29280), AOM_ICDF(31434), AOM_ICDF(32101), AOM_ICDF(32768), 0 },
+ AOM_ICDF(29280), AOM_ICDF(31434), AOM_ICDF(32101), AOM_ICDF(32768), 0,
+ 0, 0 },
{ AOM_ICDF(6784), AOM_ICDF(8763), AOM_ICDF(10440), AOM_ICDF(29110),
- AOM_ICDF(30100), AOM_ICDF(31090), AOM_ICDF(31929), AOM_ICDF(32768), 0 },
+ AOM_ICDF(30100), AOM_ICDF(31090), AOM_ICDF(31929), AOM_ICDF(32768), 0,
+ 0, 0 },
+ // 32x32 -> 16x16
{ AOM_ICDF(22656), AOM_ICDF(23801), AOM_ICDF(24702), AOM_ICDF(30721),
- AOM_ICDF(31294), AOM_ICDF(31867), AOM_ICDF(32317), AOM_ICDF(32768), 0 },
+ AOM_ICDF(31103), AOM_ICDF(31485), AOM_ICDF(31785), AOM_ICDF(32085),
+ AOM_ICDF(32467), AOM_ICDF(32768), 0 },
{ AOM_ICDF(8704), AOM_ICDF(9926), AOM_ICDF(12586), AOM_ICDF(28885),
- AOM_ICDF(29496), AOM_ICDF(30107), AOM_ICDF(31437), AOM_ICDF(32768), 0 },
+ AOM_ICDF(29292), AOM_ICDF(29699), AOM_ICDF(30586), AOM_ICDF(31473),
+ AOM_ICDF(31881), AOM_ICDF(32768), 0 },
{ AOM_ICDF(6656), AOM_ICDF(10685), AOM_ICDF(11566), AOM_ICDF(27857),
- AOM_ICDF(29871), AOM_ICDF(31886), AOM_ICDF(32327), AOM_ICDF(32768), 0 },
+ AOM_ICDF(29200), AOM_ICDF(30543), AOM_ICDF(30837), AOM_ICDF(31131),
+ AOM_ICDF(32474), AOM_ICDF(32768), 0 },
{ AOM_ICDF(2176), AOM_ICDF(3012), AOM_ICDF(3690), AOM_ICDF(31253),
- AOM_ICDF(31671), AOM_ICDF(32090), AOM_ICDF(32429), AOM_ICDF(32768), 0 },
+ AOM_ICDF(31532), AOM_ICDF(31811), AOM_ICDF(32037), AOM_ICDF(32263),
+ AOM_ICDF(32542), AOM_ICDF(32768), 0 },
+ // 64x64 -> 32x32
{ AOM_ICDF(28416), AOM_ICDF(28705), AOM_ICDF(28926), AOM_ICDF(32258),
- AOM_ICDF(32402), AOM_ICDF(32547), AOM_ICDF(32657), AOM_ICDF(32768), 0 },
+ AOM_ICDF(32402), AOM_ICDF(32547), AOM_ICDF(32657), AOM_ICDF(32768), 0,
+ 0, 0 },
{ AOM_ICDF(9216), AOM_ICDF(9952), AOM_ICDF(11849), AOM_ICDF(30134),
- AOM_ICDF(30502), AOM_ICDF(30870), AOM_ICDF(31819), AOM_ICDF(32768), 0 },
+ AOM_ICDF(30502), AOM_ICDF(30870), AOM_ICDF(31819), AOM_ICDF(32768), 0,
+ 0, 0 },
{ AOM_ICDF(7424), AOM_ICDF(9008), AOM_ICDF(9528), AOM_ICDF(30664),
- AOM_ICDF(31456), AOM_ICDF(32248), AOM_ICDF(32508), AOM_ICDF(32768), 0 },
+ AOM_ICDF(31456), AOM_ICDF(32248), AOM_ICDF(32508), AOM_ICDF(32768), 0,
+ 0, 0 },
{ AOM_ICDF(1280), AOM_ICDF(1710), AOM_ICDF(2069), AOM_ICDF(31978),
- AOM_ICDF(32193), AOM_ICDF(32409), AOM_ICDF(32588), AOM_ICDF(32768), 0 },
+ AOM_ICDF(32193), AOM_ICDF(32409), AOM_ICDF(32588), AOM_ICDF(32768), 0,
+ 0, 0 },
#if CONFIG_EXT_PARTITION
+ // 128x128 -> 64x64
{ AOM_ICDF(28416), AOM_ICDF(28705), AOM_ICDF(28926), AOM_ICDF(32258),
- AOM_ICDF(32402), AOM_ICDF(32547), AOM_ICDF(32657), AOM_ICDF(32768), 0 },
+ AOM_ICDF(32402), AOM_ICDF(32547), AOM_ICDF(32548), AOM_ICDF(32768), 0,
+ 0, 0 },
{ AOM_ICDF(9216), AOM_ICDF(9952), AOM_ICDF(11849), AOM_ICDF(30134),
- AOM_ICDF(30502), AOM_ICDF(30870), AOM_ICDF(31819), AOM_ICDF(32768), 0 },
+ AOM_ICDF(30502), AOM_ICDF(30870), AOM_ICDF(30871), AOM_ICDF(32768), 0,
+ 0, 0 },
{ AOM_ICDF(7424), AOM_ICDF(9008), AOM_ICDF(9528), AOM_ICDF(30664),
- AOM_ICDF(31456), AOM_ICDF(32248), AOM_ICDF(32508), AOM_ICDF(32768), 0 },
+ AOM_ICDF(31456), AOM_ICDF(32248), AOM_ICDF(32249), AOM_ICDF(32768), 0,
+ 0, 0 },
{ AOM_ICDF(1280), AOM_ICDF(1710), AOM_ICDF(2069), AOM_ICDF(31978),
- AOM_ICDF(32193), AOM_ICDF(32409), AOM_ICDF(32588), AOM_ICDF(32768), 0 },
+ AOM_ICDF(32193), AOM_ICDF(32409), AOM_ICDF(32410), AOM_ICDF(32768), 0,
+ 0, 0 },
#endif
};
#else
@@ -2579,17 +2869,6 @@ static const aom_cdf_prob
};
#endif
-static const aom_cdf_prob
- default_inter_mode_cdf[INTER_MODE_CONTEXTS][CDF_SIZE(INTER_MODES)] = {
- { AOM_ICDF(256), AOM_ICDF(22227), AOM_ICDF(23627), AOM_ICDF(32768), 0 },
- { AOM_ICDF(896), AOM_ICDF(18948), AOM_ICDF(23537), AOM_ICDF(32768), 0 },
- { AOM_ICDF(896), AOM_ICDF(21563), AOM_ICDF(24320), AOM_ICDF(32768), 0 },
- { AOM_ICDF(896), AOM_ICDF(12599), AOM_ICDF(17799), AOM_ICDF(32768), 0 },
- { AOM_ICDF(1024), AOM_ICDF(8960), AOM_ICDF(13238), AOM_ICDF(32768), 0 },
- { AOM_ICDF(2176), AOM_ICDF(11856), AOM_ICDF(14388), AOM_ICDF(32768), 0 },
- { AOM_ICDF(3200), AOM_ICDF(6550), AOM_ICDF(9622), AOM_ICDF(32768), 0 },
- };
-
#if CONFIG_EXT_TX
static const aom_cdf_prob default_intra_ext_tx_cdf
[EXT_TX_SETS_INTRA][EXT_TX_SIZES][INTRA_MODES][CDF_SIZE(TX_TYPES)] = {
@@ -2944,7 +3223,87 @@ static const aom_cdf_prob default_intra_ext_tx_cdf
{ AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
AOM_ICDF(32768), 0 },
},
+ },
+#if CONFIG_MRC_TX
+ {
+ {
+ { AOM_ICDF(1024), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1152), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1024), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+#if CONFIG_ALT_INTRA
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+#if CONFIG_SMOOTH_HV
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+#endif // CONFIG_SMOOTH_HV
+#endif // CONFIG_ALT_INTRA
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ },
+ {
+ { AOM_ICDF(1024), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1152), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1024), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+#if CONFIG_ALT_INTRA
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+#if CONFIG_SMOOTH_HV
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+#endif // CONFIG_SMOOTH_HV
+#endif // CONFIG_ALT_INTRA
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ },
+ {
+ { AOM_ICDF(1024), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1152), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1024), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+#if CONFIG_ALT_INTRA
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+#if CONFIG_SMOOTH_HV
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+#endif // CONFIG_SMOOTH_HV
+#endif // CONFIG_ALT_INTRA
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ },
+ {
+ { AOM_ICDF(1024), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1152), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1024), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+#if CONFIG_ALT_INTRA
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+#if CONFIG_SMOOTH_HV
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+#endif // CONFIG_SMOOTH_HV
+#endif // CONFIG_ALT_INTRA
+ { AOM_ICDF(1280), AOM_ICDF(32768), 0 },
+ },
}
+#endif // CONFIG_MRC_TX
};
static const aom_cdf_prob
default_inter_ext_tx_cdf[EXT_TX_SETS_INTER][EXT_TX_SIZES][CDF_SIZE(
@@ -3008,9 +3367,82 @@ static const aom_cdf_prob
{ AOM_ICDF(1536), AOM_ICDF(32768), 0 },
{ AOM_ICDF(1536), AOM_ICDF(32768), 0 },
{ AOM_ICDF(1536), AOM_ICDF(32768), 0 },
- { AOM_ICDF(1536), AOM_ICDF(32768), 0 } }
+ { AOM_ICDF(1536), AOM_ICDF(32768), 0 } },
+#if CONFIG_MRC_TX
+ {
+#if CONFIG_CHROMA_2X2
+ { 0 },
+#endif
+ { AOM_ICDF(30080), AOM_ICDF(31781), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(4608), AOM_ICDF(32658), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(4352), AOM_ICDF(4685), AOM_ICDF(32768), 0 },
+ { AOM_ICDF(19072), AOM_ICDF(26776), AOM_ICDF(32768), 0 } },
+#endif // CONFIG_MRC_TX
};
#else
+#if CONFIG_MRC_TX
+static const aom_cdf_prob
+ default_intra_ext_tx_cdf[EXT_TX_SIZES][TX_TYPES][CDF_SIZE(TX_TYPES)] = {
+#if CONFIG_CHROMA_2X2
+ { { AOM_ICDF(30720), AOM_ICDF(31104), AOM_ICDF(31400), AOM_ICDF(32084),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(512), AOM_ICDF(582), AOM_ICDF(638), AOM_ICDF(31764),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(512), AOM_ICDF(582), AOM_ICDF(638), AOM_ICDF(1642),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(512), AOM_ICDF(582), AOM_ICDF(638), AOM_ICDF(1642),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(512), AOM_ICDF(1280), AOM_ICDF(31760), AOM_ICDF(32264),
+ AOM_ICDF(32768), 0 } },
+#endif
+ { { AOM_ICDF(30720), AOM_ICDF(31104), AOM_ICDF(31400), AOM_ICDF(32084),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(512), AOM_ICDF(582), AOM_ICDF(638), AOM_ICDF(31764),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(512), AOM_ICDF(582), AOM_ICDF(638), AOM_ICDF(1642),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(512), AOM_ICDF(582), AOM_ICDF(638), AOM_ICDF(1642),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(512), AOM_ICDF(1280), AOM_ICDF(31760), AOM_ICDF(32264),
+ AOM_ICDF(32768), 0 } },
+
+ { { AOM_ICDF(31232), AOM_ICDF(31488), AOM_ICDF(31742), AOM_ICDF(32255),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1024), AOM_ICDF(1152), AOM_ICDF(1272), AOM_ICDF(31784),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1024), AOM_ICDF(1152), AOM_ICDF(1272), AOM_ICDF(2256),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1024), AOM_ICDF(1052), AOM_ICDF(1272), AOM_ICDF(2256),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(1024), AOM_ICDF(1792), AOM_ICDF(31776), AOM_ICDF(32272),
+ AOM_ICDF(32768), 0 } },
+
+ { { AOM_ICDF(31744), AOM_ICDF(29440), AOM_ICDF(32084), AOM_ICDF(32426),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(2048), AOM_ICDF(2176), AOM_ICDF(2528), AOM_ICDF(31823),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(2048), AOM_ICDF(2176), AOM_ICDF(2528), AOM_ICDF(3473),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(2048), AOM_ICDF(2176), AOM_ICDF(2528), AOM_ICDF(3473),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(2048), AOM_ICDF(28160), AOM_ICDF(31808), AOM_ICDF(32288),
+ AOM_ICDF(32768), 0 } },
+ };
+
+static const aom_cdf_prob
+ default_inter_ext_tx_cdf[EXT_TX_SIZES][CDF_SIZE(TX_TYPES)] = {
+#if CONFIG_CHROMA_2X2
+ { AOM_ICDF(20480), AOM_ICDF(23040), AOM_ICDF(24560), AOM_ICDF(28664),
+ AOM_ICDF(32768), 0 },
+#endif
+ { AOM_ICDF(20480), AOM_ICDF(23040), AOM_ICDF(24560), AOM_ICDF(28664),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(22528), AOM_ICDF(24320), AOM_ICDF(25928), AOM_ICDF(29348),
+ AOM_ICDF(32768), 0 },
+ { AOM_ICDF(24576), AOM_ICDF(25600), AOM_ICDF(27296), AOM_ICDF(30032),
+ AOM_ICDF(32768), 0 },
+ };
+#else // CONFIG_MRC_TX
static const aom_cdf_prob
default_intra_ext_tx_cdf[EXT_TX_SIZES][TX_TYPES][CDF_SIZE(TX_TYPES)] = {
#if CONFIG_CHROMA_2X2
@@ -3051,6 +3483,7 @@ static const aom_cdf_prob
{ AOM_ICDF(22528), AOM_ICDF(25928), AOM_ICDF(29348), AOM_ICDF(32768), 0 },
{ AOM_ICDF(24576), AOM_ICDF(27296), AOM_ICDF(30032), AOM_ICDF(32768), 0 },
};
+#endif // CONFIG_MRC_TX
#endif // !CONFIG_EXT_TX
#if CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
@@ -3066,11 +3499,10 @@ static const aom_cdf_prob
#if CONFIG_CFL
static const aom_cdf_prob default_cfl_alpha_cdf[CDF_SIZE(CFL_ALPHABET_SIZE)] = {
- // decreasing likelihood, after 6 iterations of alpha RDO on subset 3
- AOM_ICDF(23928), AOM_ICDF(26267), AOM_ICDF(27319), AOM_ICDF(28330),
- AOM_ICDF(29341), AOM_ICDF(30160), AOM_ICDF(30581), AOM_ICDF(30983),
- AOM_ICDF(31353), AOM_ICDF(31634), AOM_ICDF(31907), AOM_ICDF(32171),
- AOM_ICDF(32407), AOM_ICDF(32558), AOM_ICDF(32669), AOM_ICDF(32768)
+ AOM_ICDF(20492), AOM_ICDF(24094), AOM_ICDF(25679), AOM_ICDF(27242),
+ AOM_ICDF(28286), AOM_ICDF(29153), AOM_ICDF(29807), AOM_ICDF(30352),
+ AOM_ICDF(30866), AOM_ICDF(31295), AOM_ICDF(31703), AOM_ICDF(32046),
+ AOM_ICDF(32317), AOM_ICDF(32534), AOM_ICDF(32663), AOM_ICDF(32768)
};
#endif
@@ -4473,13 +4905,31 @@ const aom_cdf_prob
};
static void init_mode_probs(FRAME_CONTEXT *fc) {
- av1_copy(fc->uv_mode_prob, default_uv_probs);
- av1_copy(fc->y_mode_prob, default_if_y_probs);
av1_copy(fc->switchable_interp_prob, default_switchable_interp_prob);
av1_copy(fc->partition_prob, default_partition_probs);
av1_copy(fc->intra_inter_prob, default_intra_inter_p);
av1_copy(fc->comp_inter_prob, default_comp_inter_p);
+#if CONFIG_PALETTE
+ av1_copy(fc->palette_y_size_cdf, default_palette_y_size_cdf);
+ av1_copy(fc->palette_uv_size_cdf, default_palette_uv_size_cdf);
+ av1_copy(fc->palette_y_color_index_cdf, default_palette_y_color_index_cdf);
+ av1_copy(fc->palette_uv_color_index_cdf, default_palette_uv_color_index_cdf);
+#endif // CONFIG_PALETTE
+#if CONFIG_NEW_MULTISYMBOL
+ av1_copy(fc->comp_inter_cdf, default_comp_inter_cdf);
+#endif // CONFIG_NEW_MULTISYMBOL
+#if CONFIG_EXT_COMP_REFS
+ av1_copy(fc->comp_ref_type_prob, default_comp_ref_type_p);
+ av1_copy(fc->uni_comp_ref_prob, default_uni_comp_ref_p);
+#if CONFIG_NEW_MULTISYMBOL
+ av1_copy(fc->comp_ref_type_cdf, default_comp_ref_type_cdf);
+ av1_copy(fc->uni_comp_ref_cdf, default_uni_comp_ref_cdf);
+#endif // CONFIG_NEW_MULTISYMBOL
+#endif // CONFIG_EXT_COMP_REFS
av1_copy(fc->comp_ref_prob, default_comp_ref_p);
+#if CONFIG_NEW_MULTISYMBOL
+ av1_copy(fc->comp_ref_cdf, default_comp_ref_cdf);
+#endif
#if CONFIG_LV_MAP
av1_copy(fc->txb_skip, default_txb_skip);
av1_copy(fc->nz_map, default_nz_map);
@@ -4490,48 +4940,82 @@ static void init_mode_probs(FRAME_CONTEXT *fc) {
#endif
#if CONFIG_EXT_REFS
av1_copy(fc->comp_bwdref_prob, default_comp_bwdref_p);
+#if CONFIG_NEW_MULTISYMBOL
+ av1_copy(fc->comp_bwdref_cdf, default_comp_bwdref_cdf);
+#endif
#endif // CONFIG_EXT_REFS
av1_copy(fc->single_ref_prob, default_single_ref_p);
+#if CONFIG_NEW_MULTISYMBOL
+ av1_copy(fc->single_ref_cdf, default_single_ref_cdf);
+#endif
#if CONFIG_EXT_INTER && CONFIG_COMPOUND_SINGLEREF
av1_copy(fc->comp_inter_mode_prob, default_comp_inter_mode_p);
#endif // CONFIG_EXT_INTER && CONFIG_COMPOUND_SINGLEREF
av1_copy(fc->tx_size_probs, default_tx_size_prob);
-#if CONFIG_EXT_TX && CONFIG_RECT_TX && CONFIG_RECT_TX_EXT
+#if CONFIG_RECT_TX_EXT && (CONFIG_EXT_TX || CONFIG_VAR_TX)
fc->quarter_tx_size_prob = default_quarter_tx_size_prob;
-#endif // CONFIG_EXT_TX && CONFIG_RECT_TX && CONFIG_RECT_TX_EXT
+#endif
#if CONFIG_VAR_TX
av1_copy(fc->txfm_partition_prob, default_txfm_partition_probs);
+#if CONFIG_NEW_MULTISYMBOL
+ av1_copy(fc->txfm_partition_cdf, default_txfm_partition_cdf);
+#endif
#endif
av1_copy(fc->skip_probs, default_skip_probs);
av1_copy(fc->newmv_prob, default_newmv_prob);
av1_copy(fc->zeromv_prob, default_zeromv_prob);
av1_copy(fc->refmv_prob, default_refmv_prob);
av1_copy(fc->drl_prob, default_drl_prob);
- av1_copy(fc->inter_mode_probs, default_inter_mode_probs);
+#if CONFIG_NEW_MULTISYMBOL
+ av1_copy(fc->newmv_cdf, default_newmv_cdf);
+ av1_copy(fc->zeromv_cdf, default_zeromv_cdf);
+ av1_copy(fc->refmv_cdf, default_refmv_cdf);
+ av1_copy(fc->drl_cdf, default_drl_cdf);
+#endif
#if CONFIG_MOTION_VAR || CONFIG_WARPED_MOTION
av1_copy(fc->motion_mode_prob, default_motion_mode_prob);
+ av1_copy(fc->motion_mode_cdf, default_motion_mode_cdf);
+#if CONFIG_NCOBMC_ADAPT_WEIGHT && CONFIG_MOTION_VAR
+ av1_copy(fc->ncobmc_mode_prob, default_ncobmc_mode_prob);
+ av1_copy(fc->ncobmc_mode_cdf, default_ncobmc_mode_cdf);
+#endif
#if CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
av1_copy(fc->obmc_prob, default_obmc_prob);
+#if CONFIG_NEW_MULTISYMBOL
+ av1_copy(fc->obmc_cdf, default_obmc_cdf);
+#endif
#endif // CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
#endif // CONFIG_MOTION_VAR || CONFIG_WARPED_MOTION
#if CONFIG_EXT_INTER
av1_copy(fc->inter_compound_mode_probs, default_inter_compound_mode_probs);
+ av1_copy(fc->inter_compound_mode_cdf, default_inter_compound_mode_cdf);
#if CONFIG_COMPOUND_SINGLEREF
av1_copy(fc->inter_singleref_comp_mode_probs,
default_inter_singleref_comp_mode_probs);
+ av1_copy(fc->inter_singleref_comp_mode_cdf,
+ default_inter_singleref_comp_mode_cdf);
#endif // CONFIG_COMPOUND_SINGLEREF
av1_copy(fc->compound_type_prob, default_compound_type_probs);
+ av1_copy(fc->compound_type_cdf, default_compound_type_cdf);
#if CONFIG_INTERINTRA
av1_copy(fc->interintra_prob, default_interintra_prob);
- av1_copy(fc->interintra_mode_prob, default_interintra_mode_prob);
av1_copy(fc->wedge_interintra_prob, default_wedge_interintra_prob);
-#endif
+#if CONFIG_NEW_MULTISYMBOL
+ av1_copy(fc->interintra_cdf, default_interintra_cdf);
+ av1_copy(fc->wedge_interintra_cdf, default_wedge_interintra_cdf);
+#endif // CONFIG_NEW_MULTISYMBOL
+ av1_copy(fc->interintra_mode_prob, default_interintra_mode_prob);
+ av1_copy(fc->interintra_mode_cdf, default_interintra_mode_cdf);
+#endif // CONFIG_INTERINTRA
#endif // CONFIG_EXT_INTER
#if CONFIG_SUPERTX
av1_copy(fc->supertx_prob, default_supertx_prob);
#endif // CONFIG_SUPERTX
av1_copy(fc->seg.tree_probs, default_segment_tree_probs);
av1_copy(fc->seg.pred_probs, default_segment_pred_probs);
+#if CONFIG_NEW_MULTISYMBOL
+ av1_copy(fc->seg.pred_cdf, default_segment_pred_cdf);
+#endif
#if CONFIG_EXT_INTRA
#if CONFIG_INTRA_INTERP
av1_copy(fc->intra_filter_probs, default_intra_filter_probs);
@@ -4549,9 +5033,12 @@ static void init_mode_probs(FRAME_CONTEXT *fc) {
av1_copy(fc->uv_mode_cdf, default_uv_mode_cdf);
av1_copy(fc->switchable_interp_cdf, default_switchable_interp_cdf);
av1_copy(fc->partition_cdf, default_partition_cdf);
- av1_copy(fc->inter_mode_cdf, default_inter_mode_cdf);
av1_copy(fc->intra_ext_tx_cdf, default_intra_ext_tx_cdf);
av1_copy(fc->inter_ext_tx_cdf, default_inter_ext_tx_cdf);
+#if CONFIG_NEW_MULTISYMBOL
+ av1_copy(fc->skip_cdfs, default_skip_cdfs);
+ av1_copy(fc->intra_inter_cdf, default_intra_inter_cdf);
+#endif
#if CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
av1_copy(fc->intra_filter_cdf, default_intra_filter_cdf);
#endif // CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
@@ -4576,104 +5063,6 @@ static void init_mode_probs(FRAME_CONTEXT *fc) {
int av1_switchable_interp_ind[SWITCHABLE_FILTERS];
int av1_switchable_interp_inv[SWITCHABLE_FILTERS];
-#if !CONFIG_EC_ADAPT
-void av1_set_mode_cdfs(struct AV1Common *cm) {
- FRAME_CONTEXT *fc = cm->fc;
- int i, j;
- if (cm->seg.enabled && cm->seg.update_map) {
- av1_tree_to_cdf(av1_segment_tree, cm->fc->seg.tree_probs,
- cm->fc->seg.tree_cdf);
- }
-
- for (i = 0; i < INTRA_MODES; ++i)
- av1_tree_to_cdf(av1_intra_mode_tree, fc->uv_mode_prob[i],
- fc->uv_mode_cdf[i]);
-#if CONFIG_EXT_PARTITION_TYPES
- for (i = 0; i < PARTITION_PLOFFSET; ++i)
- av1_tree_to_cdf(av1_partition_tree, fc->partition_prob[i],
- fc->partition_cdf[i]);
- // Logical index (enum value) to inorder index (tree_to_cdf order)
- aom_cdf_prob inorder_partition_cdf[CDF_SIZE(EXT_PARTITION_TYPES)] = {};
- // TODO(aconverse): Generate this dynamically. The assumptions that
- // av1_indices_from_tree() makes don't hold for this tree.
- static const uint8_t av1_ext_partition_index_map[EXT_PARTITION_TYPES] = {
- 0, 1, 4, 7, 2, 3, 5, 6,
- };
- for (; i < PARTITION_CONTEXTS; ++i) {
- av1_tree_to_cdf(av1_ext_partition_tree, fc->partition_prob[i],
- inorder_partition_cdf);
- aom_cdf_prob cum_prob = 0;
- for (j = 0; j < EXT_PARTITION_TYPES; ++j) {
- int inorder_idx = av1_ext_partition_index_map[j];
- aom_cdf_prob prob =
- AOM_ICDF(inorder_partition_cdf[inorder_idx]) -
- (inorder_idx > 0 ? AOM_ICDF(inorder_partition_cdf[inorder_idx - 1])
- : 0);
- cum_prob += prob;
- fc->partition_cdf[i][j] = AOM_ICDF(cum_prob);
- }
- assert(cum_prob == CDF_PROB_TOP);
- }
-#else
- for (i = 0; i < PARTITION_CONTEXTS; ++i)
- av1_tree_to_cdf(av1_partition_tree, fc->partition_prob[i],
- fc->partition_cdf[i]);
-#endif
-
- for (i = 0; i < INTRA_MODES; ++i)
- for (j = 0; j < INTRA_MODES; ++j)
- av1_tree_to_cdf(av1_intra_mode_tree, cm->kf_y_prob[i][j],
- cm->fc->kf_y_cdf[i][j]);
-
- for (j = 0; j < SWITCHABLE_FILTER_CONTEXTS; ++j)
- av1_tree_to_cdf(av1_switchable_interp_tree, fc->switchable_interp_prob[j],
- fc->switchable_interp_cdf[j]);
-
- for (i = 0; i < INTER_MODE_CONTEXTS; ++i)
- av1_tree_to_cdf(av1_inter_mode_tree, fc->inter_mode_probs[i],
- fc->inter_mode_cdf[i]);
-
- for (i = 0; i < BLOCK_SIZE_GROUPS; ++i)
- av1_tree_to_cdf(av1_intra_mode_tree, fc->y_mode_prob[i], fc->y_mode_cdf[i]);
-
-#if CONFIG_EXT_TX
- int s;
- for (s = 0; s < EXT_TX_SETS_INTRA; ++s)
- for (i = TX_4X4; i < EXT_TX_SIZES; ++i)
- for (j = 0; j < INTRA_MODES; ++j)
- av1_tree_to_cdf(av1_ext_tx_intra_tree[s],
- fc->intra_ext_tx_prob[s][i][j],
- fc->intra_ext_tx_cdf[s][i][j]);
-
- for (s = 0; s < EXT_TX_SETS_INTER; ++s)
- for (i = TX_4X4; i < EXT_TX_SIZES; ++i)
- av1_tree_to_cdf(av1_ext_tx_inter_tree[s], fc->inter_ext_tx_prob[s][i],
- fc->inter_ext_tx_cdf[s][i]);
-#else
- for (i = TX_4X4; i < EXT_TX_SIZES; ++i)
- for (j = 0; j < TX_TYPES; ++j)
- av1_tree_to_cdf(av1_ext_tx_tree, fc->intra_ext_tx_prob[i][j],
- fc->intra_ext_tx_cdf[i][j]);
-
- for (i = TX_4X4; i < EXT_TX_SIZES; ++i)
- av1_tree_to_cdf(av1_ext_tx_tree, fc->inter_ext_tx_prob[i],
- fc->inter_ext_tx_cdf[i]);
-#endif
- for (i = 0; i < MAX_TX_DEPTH; i++) {
- for (j = 0; j < TX_SIZE_CONTEXTS; j++) {
- av1_tree_to_cdf(av1_tx_size_tree[i], fc->tx_size_probs[i][j],
- fc->tx_size_cdf[i][j]);
- }
- }
-#if CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
- for (i = 0; i < INTRA_FILTERS + 1; ++i) {
- av1_tree_to_cdf(av1_intra_filter_tree, fc->intra_filter_probs[i],
- fc->intra_filter_cdf[i]);
- }
-#endif // CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
-}
-#endif // !CONFIG_EC_ADAPT
-
#if CONFIG_DUAL_FILTER && USE_EXTRA_FILTER
const aom_tree_index av1_switchable_interp_tree[TREE_SIZE(SWITCHABLE_FILTERS)] =
{
@@ -4699,6 +5088,17 @@ void av1_adapt_inter_frame_probs(AV1_COMMON *cm) {
fc->comp_inter_prob[i] = av1_mode_mv_merge_probs(pre_fc->comp_inter_prob[i],
counts->comp_inter[i]);
+#if CONFIG_EXT_COMP_REFS
+ for (i = 0; i < COMP_REF_TYPE_CONTEXTS; i++)
+ fc->comp_ref_type_prob[i] = av1_mode_mv_merge_probs(
+ pre_fc->comp_ref_type_prob[i], counts->comp_ref_type[i]);
+
+ for (i = 0; i < UNI_COMP_REF_CONTEXTS; i++)
+ for (j = 0; j < (UNIDIR_COMP_REFS - 1); j++)
+ fc->uni_comp_ref_prob[i][j] = av1_mode_mv_merge_probs(
+ pre_fc->uni_comp_ref_prob[i][j], counts->uni_comp_ref[i][j]);
+#endif // CONFIG_EXT_COMP_REFS
+
#if CONFIG_EXT_REFS
for (i = 0; i < REF_CONTEXTS; i++)
for (j = 0; j < (FWD_REFS - 1); j++)
@@ -4742,11 +5142,16 @@ void av1_adapt_inter_frame_probs(AV1_COMMON *cm) {
av1_mode_mv_merge_probs(pre_fc->drl_prob[i], counts->drl_mode[i]);
#if CONFIG_MOTION_VAR || CONFIG_WARPED_MOTION
- for (i = BLOCK_8X8; i < BLOCK_SIZES; ++i)
+ for (i = BLOCK_8X8; i < BLOCK_SIZES_ALL; ++i)
aom_tree_merge_probs(av1_motion_mode_tree, pre_fc->motion_mode_prob[i],
counts->motion_mode[i], fc->motion_mode_prob[i]);
+#if CONFIG_NCOBMC_ADAPT_WEIGHT
+ for (i = 0; i < ADAPT_OVERLAP_BLOCKS; ++i)
+ aom_tree_merge_probs(av1_ncobmc_mode_tree, pre_fc->ncobmc_mode_prob[i],
+ counts->ncobmc_mode[i], fc->ncobmc_mode_prob[i]);
+#endif
#if CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
- for (i = BLOCK_8X8; i < BLOCK_SIZES; ++i)
+ for (i = BLOCK_8X8; i < BLOCK_SIZES_ALL; ++i)
fc->obmc_prob[i] =
av1_mode_mv_merge_probs(pre_fc->obmc_prob[i], counts->obmc[i]);
#endif // CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
@@ -4786,7 +5191,7 @@ void av1_adapt_inter_frame_probs(AV1_COMMON *cm) {
counts->interintra_mode[i], fc->interintra_mode_prob[i]);
}
#if CONFIG_WEDGE
- for (i = 0; i < BLOCK_SIZES; ++i) {
+ for (i = 0; i < BLOCK_SIZES_ALL; ++i) {
if (is_interintra_allowed_bsize(i) && is_interintra_wedge_used(i))
fc->wedge_interintra_prob[i] = av1_mode_mv_merge_probs(
pre_fc->wedge_interintra_prob[i], counts->wedge_interintra[i]);
@@ -4797,7 +5202,7 @@ void av1_adapt_inter_frame_probs(AV1_COMMON *cm) {
#if CONFIG_COMPOUND_SEGMENT || CONFIG_WEDGE
if (cm->allow_masked_compound) {
- for (i = 0; i < BLOCK_SIZES; ++i) {
+ for (i = 0; i < BLOCK_SIZES_ALL; ++i) {
aom_tree_merge_probs(
av1_compound_type_tree, pre_fc->compound_type_prob[i],
counts->compound_interinter[i], fc->compound_type_prob[i]);
@@ -4806,10 +5211,6 @@ void av1_adapt_inter_frame_probs(AV1_COMMON *cm) {
#endif // CONFIG_COMPOUND_SEGMENT || CONFIG_WEDGE
#endif // CONFIG_EXT_INTER
- for (i = 0; i < BLOCK_SIZE_GROUPS; i++)
- aom_tree_merge_probs(av1_intra_mode_tree, pre_fc->y_mode_prob[i],
- counts->y_mode[i], fc->y_mode_prob[i]);
-
if (cm->interp_filter == SWITCHABLE) {
for (i = 0; i < SWITCHABLE_FILTER_CONTEXTS; i++)
aom_tree_merge_probs(
@@ -4830,10 +5231,10 @@ void av1_adapt_intra_frame_probs(AV1_COMMON *cm) {
aom_tree_merge_probs(av1_tx_size_tree[i], pre_fc->tx_size_probs[i][j],
counts->tx_size[i][j], fc->tx_size_probs[i][j]);
}
-#if CONFIG_EXT_TX && CONFIG_RECT_TX && CONFIG_RECT_TX_EXT
+#if CONFIG_RECT_TX_EXT && (CONFIG_EXT_TX || CONFIG_VAR_TX)
fc->quarter_tx_size_prob = av1_mode_mv_merge_probs(
pre_fc->quarter_tx_size_prob, counts->quarter_tx_size);
-#endif // CONFIG_EXT_TX && CONFIG_RECT_TX && CONFIG_RECT_TX_EXT
+#endif
}
#if CONFIG_VAR_TX
@@ -4893,10 +5294,6 @@ void av1_adapt_intra_frame_probs(AV1_COMMON *cm) {
counts->seg.tree_total, fc->seg.tree_probs);
}
- for (i = 0; i < INTRA_MODES; ++i)
- aom_tree_merge_probs(av1_intra_mode_tree, pre_fc->uv_mode_prob[i],
- counts->uv_mode[i], fc->uv_mode_prob[i]);
-
#if CONFIG_EXT_PARTITION_TYPES
for (i = 0; i < PARTITION_PLOFFSET; ++i)
aom_tree_merge_probs(av1_partition_tree, pre_fc->partition_prob[i],
@@ -4972,6 +5369,9 @@ static void set_default_lf_deltas(struct loopfilter *lf) {
lf->ref_deltas[BWDREF_FRAME] = lf->ref_deltas[LAST_FRAME];
#endif // CONFIG_EXT_REFS
lf->ref_deltas[GOLDEN_FRAME] = -1;
+#if CONFIG_ALTREF2
+ lf->ref_deltas[ALTREF2_FRAME] = -1;
+#endif // CONFIG_ALTREF2
lf->ref_deltas[ALTREF_FRAME] = -1;
lf->mode_deltas[0] = 0;