blob: 7ba61984d424de572f18e04f9f4d6de0f5e51cbf [file] [log] [blame]
Yaowu Xuc27fc142016-08-22 16:08:15 -07001/*
Yaowu Xu2ab7ff02016-09-02 12:04:54 -07002 * Copyright (c) 2016, Alliance for Open Media. All rights reserved
Yaowu Xuc27fc142016-08-22 16:08:15 -07003 *
Yaowu Xu2ab7ff02016-09-02 12:04:54 -07004 * This source code is subject to the terms of the BSD 2 Clause License and
5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6 * was not distributed with this source code in the LICENSE file, you can
7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8 * Media Patent License 1.0 was not distributed with this source code in the
9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
Yaowu Xuc27fc142016-08-22 16:08:15 -070010 */
11
Yaowu Xuf883b422016-08-30 14:01:10 -070012#include "aom_mem/aom_mem.h"
Yaowu Xuc27fc142016-08-22 16:08:15 -070013
14#include "av1/common/reconinter.h"
Angie Chianged8cd9a2016-10-21 16:44:47 -070015#include "av1/common/scan.h"
Yaowu Xuc27fc142016-08-22 16:08:15 -070016#include "av1/common/onyxc_int.h"
17#include "av1/common/seg_common.h"
Angie Chiangdef11252017-08-18 14:37:32 -070018#if CONFIG_LV_MAP
19#include "av1/common/txb_common.h"
20#endif
Yaowu Xuc27fc142016-08-22 16:08:15 -070021
Angie Chiangbabf3e72017-03-20 15:32:24 -070022#if CONFIG_LV_MAP
Jingning Hanbb72caf2017-08-18 16:35:24 -070023#include "av1/common/txb_common.h"
Angie Chiangbabf3e72017-03-20 15:32:24 -070024const aom_prob default_txb_skip[TX_SIZES][TXB_SKIP_CONTEXTS] = {
25 { 252, 71, 126, 184, 178, 218, 251, 49, 133, 221, 27, 92, 197 },
26 { 252, 71, 126, 184, 178, 218, 251, 49, 133, 221, 27, 92, 197 },
27 { 252, 71, 126, 184, 178, 218, 251, 49, 133, 221, 27, 92, 197 },
28 { 252, 71, 126, 184, 178, 218, 251, 49, 133, 221, 27, 92, 197 },
29};
30const aom_prob default_dc_sign[PLANE_TYPES][DC_SIGN_CONTEXTS] = {
31 { 125, 102, 147 }, { 119, 101, 135 },
32};
33
Dake He3fe369c2017-11-16 17:56:44 -080034#if CONFIG_LV_MAP_MULTI || TRAIN_INIT_PROB
Ola Hugosson13892102017-11-06 08:01:44 +010035const aom_prob default_coeff_base
36 [TX_SIZES][PLANE_TYPES][NUM_BASE_LEVELS][COEFF_BASE_CONTEXTS] = {
Dake He3fe369c2017-11-16 17:56:44 -080037 { { { 109, 232, 199, 135, 87, 52, 239, 210, 142, 92, 63, 128,
38 128, 128, 128, 128, 128, 128, 128, 128, 128, 233, 205, 112,
39 75, 62, 226, 200, 122, 60, 29, 241, 204, 126, 70, 42,
40 238, 204, 119, 57, 128, 128, 203, 244, 246, 247 },
41 { 107, 223, 197, 147, 102, 62, 227, 205, 156, 112, 74, 128,
42 128, 128, 128, 128, 128, 128, 128, 128, 128, 212, 200, 138,
43 99, 64, 198, 184, 129, 78, 38, 219, 186, 131, 84, 56,
44 204, 184, 127, 77, 128, 128, 191, 226, 222, 223 } },
45 { { 163, 241, 224, 174, 109, 58, 248, 236, 200, 130, 75, 128,
46 128, 128, 128, 128, 128, 128, 128, 128, 128, 249, 244, 213,
47 128, 51, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
48 128, 128, 128, 128, 128, 128, 228, 248, 252, 254 },
49 { 153, 231, 211, 165, 113, 66, 236, 221, 180, 127, 88, 128,
50 128, 128, 128, 128, 128, 128, 128, 128, 128, 243, 238, 191,
51 111, 154, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
52 128, 128, 128, 128, 128, 128, 209, 237, 239, 248 } } },
53 { { { 91, 228, 196, 134, 88, 48, 242, 213, 157, 107, 63, 239,
54 202, 139, 92, 54, 236, 201, 138, 90, 53, 248, 229, 176,
55 121, 76, 231, 202, 140, 80, 37, 246, 222, 168, 110, 61,
56 248, 221, 151, 97, 60, 128, 199, 249, 252, 252 },
57 { 85, 196, 181, 138, 98, 55, 230, 206, 164, 121, 73, 219,
58 193, 144, 104, 62, 218, 192, 143, 101, 61, 237, 218, 182,
59 140, 90, 213, 191, 140, 94, 44, 224, 200, 159, 115, 68,
60 220, 199, 151, 107, 69, 128, 183, 229, 226, 230 } },
61 { { 139, 235, 211, 159, 107, 66, 247, 231, 184, 127, 79, 246,
62 226, 170, 103, 61, 236, 212, 161, 119, 76, 253, 245, 215,
63 156, 96, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
64 128, 128, 128, 128, 128, 128, 227, 249, 253, 255 },
65 { 128, 195, 197, 162, 121, 73, 236, 220, 184, 138, 86, 223,
66 208, 158, 107, 64, 222, 204, 167, 132, 86, 246, 234, 205,
67 161, 108, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
68 128, 128, 128, 128, 128, 128, 198, 228, 239, 244 } } },
69 { { { 73, 224, 186, 123, 79, 39, 240, 205, 146, 98, 53, 243,
70 209, 147, 98, 52, 241, 207, 145, 93, 44, 252, 236, 188,
71 134, 82, 227, 193, 125, 72, 32, 241, 218, 168, 112, 52,
72 251, 233, 179, 114, 62, 128, 179, 250, 254, 255 },
73 { 69, 200, 171, 127, 86, 41, 224, 193, 150, 107, 58, 218,
74 194, 150, 107, 58, 220, 193, 147, 102, 47, 239, 222, 188,
75 147, 92, 204, 183, 127, 80, 36, 211, 194, 158, 114, 57,
76 231, 209, 167, 120, 70, 128, 171, 226, 235, 232 } },
77 { { 117, 225, 196, 146, 107, 68, 246, 225, 177, 128, 81, 243,
78 217, 163, 105, 60, 247, 225, 180, 131, 84, 253, 241, 202,
79 148, 97, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
80 128, 128, 128, 128, 128, 128, 219, 251, 255, 255 },
81 { 103, 189, 166, 141, 116, 70, 234, 216, 184, 145, 92, 208,
82 195, 155, 110, 79, 226, 214, 184, 144, 90, 245, 229, 202,
83 164, 113, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
84 128, 128, 128, 128, 128, 128, 182, 221, 236, 243 } } },
85 { { { 72, 212, 172, 113, 74, 33, 238, 200, 139, 91, 44, 240,
86 208, 147, 98, 51, 244, 214, 157, 107, 51, 253, 233, 184,
87 132, 74, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
88 128, 128, 128, 128, 128, 128, 201, 250, 254, 255 },
89 { 68, 187, 154, 116, 80, 34, 217, 186, 142, 101, 47, 205,
90 187, 148, 106, 56, 218, 201, 163, 118, 55, 236, 215, 181,
91 141, 79, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
92 128, 128, 128, 128, 128, 128, 192, 219, 246, 244 } },
93 { { 80, 217, 179, 140, 106, 60, 237, 208, 165, 129, 94, 128,
94 128, 128, 128, 128, 128, 128, 128, 128, 128, 253, 240, 205,
95 158, 111, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
96 128, 128, 128, 128, 128, 128, 205, 250, 255, 254 },
97 { 66, 175, 129, 103, 89, 57, 204, 189, 164, 133, 106, 128,
98 128, 128, 128, 128, 128, 128, 128, 128, 128, 238, 228, 202,
99 166, 124, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
100 128, 128, 128, 128, 128, 128, 154, 207, 128, 226 } } }
Ola Hugosson13892102017-11-06 08:01:44 +0100101 };
102
103const aom_prob default_nz_map[TX_SIZES][PLANE_TYPES][SIG_COEF_CONTEXTS] = {
Dake He3fe369c2017-11-16 17:56:44 -0800104 { { 59, 183, 130, 76, 47, 29, 203, 154, 85, 55, 35, 128,
105 128, 128, 128, 128, 128, 128, 128, 128, 128, 202, 165, 86,
106 70, 42, 183, 132, 70, 28, 13, 212, 158, 77, 34, 22,
107 222, 172, 74, 30, 128, 128, 1, 1, 1, 1 },
108 { 97, 210, 172, 111, 61, 29, 223, 188, 131, 77, 33, 128,
109 128, 128, 128, 128, 128, 128, 128, 128, 128, 214, 192, 137,
110 63, 51, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Ola Hugossond2352ec2017-11-16 09:20:25 +0100111 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 } },
Dake He3fe369c2017-11-16 17:56:44 -0800112 { { 50, 194, 130, 72, 45, 25, 208, 150, 89, 55, 32, 206,
113 142, 80, 49, 28, 191, 137, 79, 47, 27, 224, 180, 108,
114 63, 37, 206, 137, 81, 40, 18, 229, 170, 106, 58, 30,
115 233, 180, 96, 49, 29, 128, 1, 1, 1, 1 },
116 { 84, 210, 159, 89, 55, 33, 223, 181, 114, 67, 36, 227,
117 180, 112, 58, 31, 218, 161, 95, 63, 40, 237, 208, 146,
118 88, 50, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Ola Hugossond2352ec2017-11-16 09:20:25 +0100119 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 } },
Dake He3fe369c2017-11-16 17:56:44 -0800120 { { 40, 187, 118, 65, 39, 20, 211, 142, 80, 49, 26, 226,
121 150, 83, 49, 26, 213, 146, 82, 47, 22, 237, 191, 116,
122 68, 39, 204, 124, 68, 35, 15, 226, 167, 104, 58, 26,
123 236, 195, 117, 59, 30, 128, 1, 1, 1, 1 },
124 { 69, 207, 145, 80, 53, 36, 226, 167, 98, 64, 38, 238,
125 174, 95, 54, 32, 228, 169, 103, 67, 41, 243, 201, 123,
126 77, 48, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Ola Hugossond2352ec2017-11-16 09:20:25 +0100127 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 } },
Dake He3fe369c2017-11-16 17:56:44 -0800128 { { 39, 175, 107, 58, 38, 16, 214, 135, 73, 44, 21, 235,
129 145, 80, 48, 26, 227, 149, 84, 52, 25, 247, 195, 108,
130 65, 35, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Ola Hugossond2352ec2017-11-16 09:20:25 +0100131 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 },
Dake He3fe369c2017-11-16 17:56:44 -0800132 { 44, 206, 151, 90, 60, 30, 214, 148, 92, 62, 40, 128,
133 128, 128, 128, 128, 128, 128, 128, 128, 128, 248, 197, 125,
134 80, 52, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Ola Hugossond2352ec2017-11-16 09:20:25 +0100135 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 } }
Ola Hugosson13892102017-11-06 08:01:44 +0100136};
137#else // CONFIG_LV_MAP_MULTI
Dake He03a32922017-10-31 08:06:45 -0700138#if USE_CAUSAL_BASE_CTX
139const aom_prob default_coeff_base
140 [TX_SIZES][PLANE_TYPES][NUM_BASE_LEVELS][COEFF_BASE_CONTEXTS] = {
141 { { { 139, 242, 199, 135, 87, 51, 245, 208, 138, 89, 60,
142 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 240,
143 200, 108, 70, 56, 230, 199, 126, 66, 32, 242, 204,
144 128, 74, 45, 241, 203, 120, 62, 128, 128 },
145 { 118, 230, 197, 147, 103, 60, 228, 202, 154, 110, 72,
146 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 213,
147 196, 134, 94, 58, 199, 184, 130, 82, 40, 217, 186,
148 134, 86, 57, 204, 185, 127, 74, 128, 128 } },
149 { { 203, 248, 223, 170, 105, 58, 252, 235, 195, 125, 72,
150 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 253,
151 244, 209, 110, 85, 128, 128, 128, 128, 128, 128, 128,
152 128, 128, 128, 128, 128, 128, 128, 128, 128 },
153 { 170, 239, 210, 163, 112, 68, 239, 219, 175, 127, 84,
154 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 246,
155 234, 184, 142, 154, 128, 128, 128, 128, 128, 128, 128,
156 128, 128, 128, 128, 128, 128, 128, 128, 128 } } },
157 { { { 119, 240, 196, 136, 90, 50, 247, 214, 159, 109, 64,
158 241, 201, 137, 91, 53, 239, 199, 136, 89, 52, 251,
159 230, 176, 121, 76, 231, 202, 142, 84, 39, 246, 221,
160 169, 111, 61, 248, 221, 152, 97, 60, 128 },
161 { 98, 209, 182, 140, 100, 56, 234, 207, 166, 122, 73,
162 215, 189, 142, 103, 59, 216, 188, 140, 99, 59, 235,
163 216, 179, 137, 88, 214, 189, 141, 96, 46, 224, 200,
164 159, 117, 68, 221, 199, 152, 108, 68, 128 } },
165 { { 195, 245, 212, 159, 108, 64, 251, 231, 186, 131, 80,
166 250, 228, 175, 108, 58, 244, 213, 163, 120, 82, 254,
167 245, 216, 159, 91, 128, 128, 128, 128, 128, 128, 128,
168 128, 128, 128, 128, 128, 128, 128, 128, 128 },
169 { 150, 207, 199, 164, 121, 76, 239, 221, 185, 142, 89,
170 231, 208, 162, 113, 69, 228, 205, 169, 136, 95, 246,
171 235, 204, 157, 110, 128, 128, 128, 128, 128, 128, 128,
172 128, 128, 128, 128, 128, 128, 128, 128, 128 } } },
173 { { { 93, 232, 185, 124, 81, 38, 244, 206, 147, 98, 53,
174 246, 210, 150, 100, 54, 244, 208, 146, 94, 44, 253,
175 236, 189, 135, 82, 228, 195, 130, 76, 35, 242, 220,
176 170, 114, 59, 253, 235, 184, 122, 68, 128 },
177 { 80, 203, 169, 127, 86, 41, 228, 194, 151, 108, 58,
178 221, 195, 152, 110, 60, 220, 194, 149, 103, 48, 238,
179 221, 188, 147, 92, 205, 184, 130, 85, 41, 208, 195,
180 159, 120, 62, 233, 212, 173, 126, 76, 128 } },
181 { { 187, 239, 199, 149, 109, 66, 250, 226, 179, 130, 82,
182 248, 218, 159, 100, 63, 251, 227, 184, 135, 91, 254,
183 241, 202, 150, 99, 128, 128, 128, 128, 128, 128, 128,
184 128, 128, 128, 128, 128, 128, 128, 128, 128 },
185 { 130, 202, 169, 146, 118, 73, 236, 217, 186, 146, 91,
186 215, 194, 154, 102, 77, 234, 216, 188, 145, 98, 245,
187 229, 201, 163, 110, 128, 128, 128, 128, 128, 128, 128,
188 128, 128, 128, 128, 128, 128, 128, 128, 128 } } },
189 { { { 102, 225, 171, 113, 74, 33, 243, 201, 139, 92, 44,
190 244, 208, 146, 99, 53, 247, 214, 158, 107, 52, 253,
191 233, 183, 131, 73, 128, 128, 128, 128, 128, 128, 128,
192 128, 128, 128, 128, 128, 128, 128, 128, 128 },
193 { 80, 190, 152, 116, 79, 34, 222, 187, 142, 101, 47,
194 211, 187, 148, 106, 56, 221, 200, 163, 118, 56, 236,
195 215, 181, 140, 78, 128, 128, 128, 128, 128, 128, 128,
196 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
197 { { 166, 237, 184, 144, 106, 62, 245, 211, 167, 129, 93,
198 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 254,
199 240, 205, 158, 112, 128, 128, 128, 128, 128, 128, 128,
200 128, 128, 128, 128, 128, 128, 128, 128, 128 },
201 { 91, 185, 133, 105, 95, 60, 213, 190, 164, 131, 107,
202 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 242,
203 227, 203, 160, 127, 128, 128, 128, 128, 128, 128, 128,
204 128, 128, 128, 128, 128, 128, 128, 128, 128 } } }
205 };
206
207const aom_prob default_nz_map[TX_SIZES][PLANE_TYPES][SIG_COEF_CONTEXTS] = {
208 { { 59, 183, 130, 76, 48, 28, 202, 153, 84, 54, 34, 128, 128, 128,
209 128, 128, 128, 128, 128, 128, 128, 200, 163, 84, 61, 34, 182, 131,
210 71, 31, 16, 210, 156, 78, 36, 26, 220, 170, 73, 32, 128, 128 },
211 { 96, 209, 171, 109, 59, 28, 223, 187, 128, 71, 35, 128, 128, 128,
212 128, 128, 128, 128, 128, 128, 128, 215, 192, 135, 63, 73, 128, 128,
213 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
214 { { 49, 190, 129, 74, 46, 25, 206, 150, 90, 55, 32, 205, 142, 79,
215 48, 27, 191, 137, 78, 47, 27, 223, 181, 109, 63, 37, 204, 136,
216 82, 42, 19, 226, 169, 106, 58, 30, 231, 180, 96, 49, 29, 128 },
217 { 86, 210, 159, 90, 56, 34, 223, 181, 114, 69, 40, 229, 182, 113,
218 59, 28, 218, 162, 96, 64, 42, 237, 207, 146, 92, 50, 128, 128,
219 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
220 { { 41, 187, 119, 66, 40, 20, 212, 144, 80, 49, 26, 226, 151, 84,
221 49, 27, 214, 146, 82, 47, 22, 237, 190, 115, 68, 40, 206, 126,
222 71, 37, 17, 227, 168, 103, 61, 29, 237, 197, 119, 63, 32, 128 },
223 { 70, 207, 146, 82, 54, 35, 226, 167, 99, 65, 40, 238, 176, 96,
224 57, 29, 229, 171, 108, 69, 47, 244, 201, 124, 78, 48, 128, 128,
225 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
226 { { 40, 176, 107, 57, 37, 16, 216, 136, 73, 44, 22, 235, 145, 79,
227 49, 26, 227, 149, 84, 52, 26, 247, 195, 107, 64, 35, 128, 128,
228 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
229 { 49, 210, 153, 95, 58, 31, 217, 151, 93, 64, 41, 128, 128, 128,
230 128, 128, 128, 128, 128, 128, 128, 248, 197, 123, 79, 53, 128, 128,
231 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } }
232};
233
234#else // USE_CAUSAL_BASE_CTX
235
Angie Chiangbabf3e72017-03-20 15:32:24 -0700236const aom_prob default_coeff_base
Jingning Han819f45a2017-10-30 12:11:52 -0700237 [TX_SIZES][PLANE_TYPES][NUM_BASE_LEVELS][COEFF_BASE_CONTEXTS] = {
238 { { {
239 230, 199, 168, 74, 128, 169, 213, 173, 87, 21, 60, 117, 213,
240 177, 126, 22, 64, 121, 206, 168, 67, 10, 33, 96, 140,
241 },
242 {
243 236, 218, 201, 124, 185, 219, 223, 196, 128, 65, 127, 176, 224,
244 199, 151, 75, 131, 177, 217, 190, 102, 38, 93, 161, 192,
245 } },
246 { {
247 219, 188, 161, 46, 114, 163, 198, 154, 73, 10, 43, 101, 199,
248 160, 89, 12, 49, 111, 186, 136, 62, 2, 15, 66, 123,
249 },
250 {
251 228, 210, 191, 108, 177, 215, 213, 183, 125, 58, 112, 169, 212,
252 183, 134, 65, 120, 171, 206, 166, 90, 27, 73, 140, 173,
253 } } },
Angie Chiangbabf3e72017-03-20 15:32:24 -0700254
Jingning Han819f45a2017-10-30 12:11:52 -0700255 { { {
256 232, 198, 164, 85, 124, 169, 207, 156, 49, 9, 42, 97, 208,
257 160, 90, 11, 45, 101, 198, 145, 50, 2, 15, 66, 120,
258 },
259 {
260 237, 218, 199, 123, 187, 222, 219, 187, 101, 54, 117, 167, 221,
261 189, 125, 61, 121, 171, 212, 175, 81, 27, 78, 147, 185,
262 } },
263 { {
264 204, 165, 154, 39, 100, 144, 173, 117, 42, 7, 27, 71, 156,
265 108, 52, 9, 32, 78, 165, 117, 46, 2, 12, 55, 102,
266 },
267 {
268 225, 204, 183, 99, 173, 149, 205, 167, 88, 47, 99, 160, 186,
269 149, 88, 48, 98, 157, 183, 148, 76, 34, 75, 133, 187,
270 } } },
Angie Chiangbabf3e72017-03-20 15:32:24 -0700271
Jingning Han819f45a2017-10-30 12:11:52 -0700272 { { {
273 231, 199, 182, 107, 136, 172, 200, 148, 55, 8, 35, 87, 204,
274 150, 72, 10, 37, 89, 184, 127, 36, 1, 9, 47, 103,
275 },
276 {
277 236, 217, 206, 128, 188, 222, 213, 180, 98, 51, 113, 166, 218,
278 182, 115, 55, 115, 167, 200, 162, 66, 22, 70, 135, 178,
279 } },
280 { {
281 229, 200, 220, 56, 123, 179, 184, 123, 64, 8, 24, 62, 177,
282 118, 55, 8, 27, 70, 158, 101, 8, 1, 12, 54, 107,
283 },
284 {
285 232, 222, 223, 108, 195, 154, 213, 184, 71, 41, 101, 154, 206,
286 164, 109, 42, 96, 162, 182, 137, 5, 33, 81, 146, 177,
287 } } },
288 { { {
289 232, 208, 213, 120, 151, 192, 200, 152, 57, 13, 44, 94, 200,
290 148, 87, 13, 42, 94, 181, 124, 45, 1, 9, 46, 99,
291 },
292 {
293 241, 226, 222, 129, 197, 179, 213, 184, 133, 57, 119, 168, 214,
294 178, 116, 64, 119, 162, 199, 157, 64, 24, 70, 130, 176,
295 } },
296 { {
297 233, 223, 202, 65, 131, 128, 178, 138, 128, 2, 24, 59, 99,
298 111, 73, 3, 17, 52, 149, 99, 19, 2, 18, 72, 140,
299 },
300 {
301 240, 199, 230, 79, 181, 128, 192, 198, 128, 64, 121, 171, 192,
302 148, 37, 26, 83, 85, 183, 149, 8, 33, 101, 168, 128,
303 } } }
304 };
Angie Chiangbabf3e72017-03-20 15:32:24 -0700305
Jingning Hana24a6902017-10-26 14:25:46 -0700306static const aom_prob default_nz_map[TX_SIZES][PLANE_TYPES][SIG_COEF_CONTEXTS] =
307 { { { 40, 157, 108, 70, 34, 19, 168, 98, 60, 32, 20, 128,
308 128, 128, 128, 128, 128, 128, 128, 128, 128, 125, 80, 41,
309 128, 128, 173, 120, 81, 36, 128, 188, 127, 84, 35, 128,
310 183, 128, 60, 128, 128, 128, 170, 122, 82, 35, 128, 186,
311 129, 84, 34, 128, 183, 128, 56, 128, 128, 128 },
312 { 67, 176, 120, 77, 44, 26, 182, 124, 77, 47, 32, 128,
313 128, 128, 128, 128, 128, 128, 128, 128, 128, 163, 127, 74,
314 128, 128, 203, 167, 122, 70, 128, 202, 171, 125, 72, 128,
315 198, 176, 105, 128, 128, 128, 192, 160, 108, 67, 128, 186,
316 160, 113, 74, 128, 188, 173, 121, 128, 128, 128 } },
317 { { 55, 192, 143, 93, 43, 17, 201, 155, 101, 50, 22, 171, 124, 76, 38,
318 17, 176, 123, 77, 40, 19, 205, 148, 99, 53, 26, 200, 140, 94, 52,
319 24, 218, 157, 103, 58, 28, 221, 161, 109, 63, 34, 128, 194, 144, 96,
320 52, 24, 212, 160, 104, 59, 26, 216, 161, 105, 57, 27, 128 },
321 { 84, 190, 149, 102, 59, 29, 204, 159, 111, 69, 41, 200,
322 151, 98, 54, 32, 193, 143, 98, 69, 46, 216, 167, 111,
323 65, 37, 211, 174, 123, 62, 23, 222, 184, 137, 79, 43,
324 222, 195, 148, 87, 128, 128, 199, 160, 119, 92, 55, 185,
325 147, 98, 70, 57, 197, 169, 122, 82, 68, 128 } },
326 { { 56, 204, 126, 80, 41, 16, 218, 157, 100, 50, 22, 211, 142, 92, 47,
327 21, 212, 150, 98, 50, 22, 230, 172, 118, 65, 32, 223, 134, 91, 50,
328 22, 237, 167, 109, 60, 31, 239, 182, 128, 78, 40, 128, 209, 138, 90,
329 52, 25, 223, 160, 105, 62, 30, 228, 173, 119, 72, 36, 128 },
330 { 79, 201, 140, 99, 64, 37, 225, 175, 128, 78, 35, 215,
331 151, 108, 49, 24, 211, 173, 138, 100, 44, 241, 185, 136,
332 95, 39, 210, 109, 89, 43, 128, 234, 144, 73, 85, 128,
333 252, 212, 121, 64, 128, 128, 216, 167, 127, 99, 102, 211,
334 182, 168, 129, 110, 202, 157, 101, 66, 42, 128 } },
335 { { 41, 177, 92, 53, 29, 14, 218, 137, 87, 47, 20, 201,
336 124, 80, 50, 29, 208, 151, 104, 59, 27, 244, 173, 113,
337 66, 36, 233, 105, 76, 53, 23, 249, 163, 97, 98, 128,
338 254, 192, 136, 97, 47, 128, 237, 137, 86, 54, 31, 244,
339 157, 100, 60, 33, 241, 177, 115, 68, 33, 128 },
340 { 73, 231, 149, 83, 63, 64, 242, 192, 132, 113, 114, 128,
341 128, 128, 128, 128, 128, 128, 128, 128, 128, 252, 204, 160,
342 114, 36, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Dake Hea47cd6c2017-10-13 18:09:58 -0700343 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Jingning Hana24a6902017-10-26 14:25:46 -0700344 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } } };
Dake He03a32922017-10-31 08:06:45 -0700345#endif // USE_CAUSAL_BASE_CTX
Ola Hugosson13892102017-11-06 08:01:44 +0100346#endif // CONFIG_LV_MAP_MULTI
Jingning Han480ee022017-04-03 20:31:08 -0700347
Angie Chiangf12cc4a2017-08-28 15:42:33 -0700348#if CONFIG_CTX1D
349const aom_prob default_eob_flag[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS] = {
Angie Chiangf12cc4a2017-08-28 15:42:33 -0700350 { { 220, 225, 220, 216, 233, 225, 189, 178, 222, 199, 164, 112, 207,
351 171, 115, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
352
353 147, 125, 104, 36, 117, 107, 26, 128, 128, 128, 128, 128, 128,
354 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
355
356 156, 124, 128, 128, 146, 68, 128, 128, 131, 17, 128, 128, 64,
357 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
358
359 { 146, 150, 142, 144, 178, 167, 131, 116, 150, 123, 107, 63, 119,
360 89, 74, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
361
362 117, 127, 105, 69, 53, 56, 30, 128, 128, 128, 128, 128, 128,
363 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
364
365 128, 86, 128, 128, 140, 72, 128, 128, 120, 44, 128, 128, 80,
366 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
367 { { 237, 242, 242, 219, 192, 246, 246, 243, 233, 184, 155, 234, 217,
368 188, 152, 195, 167, 114, 89, 128, 128, 128, 128, 128, 128,
369
370 180, 173, 154, 133, 112, 147, 145, 142, 102, 128, 128, 128, 128,
371 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
372
373 198, 173, 130, 200, 128, 208, 182, 160, 106, 171, 128, 144, 128,
374 128, 128, 124, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
375
376 { 140, 170, 162, 111, 94, 182, 195, 165, 153, 110, 81, 178, 169,
377 158, 83, 133, 85, 85, 38, 128, 128, 128, 128, 128, 128,
378
379 112, 127, 107, 87, 31, 57, 49, 128, 128, 128, 128, 128, 128,
380 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
381
382 160, 143, 99, 126, 128, 164, 133, 126, 59, 71, 128, 138, 128,
383 128, 128, 99, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
384 { { 229, 241, 243, 245, 247, 247, 251, 248, 235, 210, 247, 235, 208,
385 166, 245, 247, 244, 182, 236, 229, 180, 136, 128, 128, 128,
386
387 191, 197, 96, 70, 199, 128, 128, 191, 174, 117, 128, 128, 128,
388 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
389
390 211, 183, 215, 188, 138, 209, 136, 128, 170, 128, 191, 128, 161,
391 128, 182, 128, 128, 128, 164, 128, 128, 128, 128, 128, 128 },
392
393 { 106, 153, 182, 191, 186, 202, 211, 203, 166, 147, 205, 205, 195,
394 128, 206, 212, 182, 109, 192, 154, 139, 79, 128, 128, 128,
395
396 112, 133, 128, 255, 128, 128, 128, 130, 154, 98, 128, 128, 128,
397 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
398
399 144, 185, 169, 199, 85, 183, 128, 128, 64, 128, 146, 128, 128,
400 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
401 { { 169, 203, 224, 222, 220, 228, 229, 223, 234, 247, 242, 230, 222,
402 238, 246, 234, 196, 245, 249, 245, 192, 240, 235, 199, 161,
403
404 176, 148, 158, 77, 178, 128, 128, 158, 128, 128, 196, 208, 155,
405 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
406
407 232, 187, 191, 221, 116, 217, 154, 128, 203, 128, 128, 192, 128,
408 201, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
409
410 { 133, 182, 215, 204, 176, 220, 182, 168, 187, 197, 181, 145, 75,
411 164, 136, 51, 57, 156, 128, 128, 128, 85, 128, 128, 128,
412
413 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
414 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
415
416 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
417 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
418};
Jingning Han3422ac12017-10-25 20:37:53 -0700419#else // CONFIG_CTX1D
Dake Hea47cd6c2017-10-13 18:09:58 -0700420static const aom_prob
421 default_eob_flag[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS] = {
Jingning Han35deaa72017-10-26 15:36:30 -0700422 { { 225, 240, 225, 200, 128, 128, 128, 128, 128, 128, 128,
423 245, 246, 238, 203, 128, 128, 128, 128, 128, 128, 128 },
424 { 181, 219, 192, 144, 128, 128, 128, 128, 128, 128, 128,
425 218, 231, 199, 152, 128, 128, 128, 128, 128, 128, 128 } },
426 { { 233, 247, 240, 234, 211, 194, 128, 128, 128, 128, 128,
427 252, 252, 249, 242, 221, 208, 128, 128, 128, 128, 128 },
428 { 154, 222, 204, 180, 132, 128, 128, 128, 128, 128, 128,
429 216, 235, 206, 181, 121, 112, 128, 128, 128, 128, 128 } },
430 { { 233, 246, 241, 238, 231, 216, 186, 171, 128, 128, 128,
431 251, 252, 251, 244, 233, 218, 192, 191, 128, 128, 128 },
432 { 117, 221, 214, 223, 215, 202, 176, 116, 128, 128, 128,
433 205, 234, 219, 183, 195, 126, 76, 128, 128, 128, 128 } },
434 { { 194, 231, 213, 215, 207, 200, 183, 169, 135, 168, 128,
435 240, 246, 243, 238, 210, 201, 172, 133, 107, 128, 128 },
436 { 122, 232, 230, 244, 250, 247, 252, 253, 254, 52, 128,
437 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } }
Dake Hea47cd6c2017-10-13 18:09:58 -0700438 };
Jingning Han3422ac12017-10-25 20:37:53 -0700439
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700440static const aom_prob
441 default_eob_extra[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS] = {
442 { {
Jingning Han35deaa72017-10-26 15:36:30 -0700443 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
444 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700445 },
446 {
Jingning Han35deaa72017-10-26 15:36:30 -0700447 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
448 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700449 } },
450 { {
Jingning Han35deaa72017-10-26 15:36:30 -0700451 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
452 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700453 },
454 {
Jingning Han35deaa72017-10-26 15:36:30 -0700455 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
456 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700457 } },
458 { {
Jingning Han35deaa72017-10-26 15:36:30 -0700459 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
460 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700461 },
462 {
Jingning Han35deaa72017-10-26 15:36:30 -0700463 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
464 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700465 } },
466 { {
Jingning Han35deaa72017-10-26 15:36:30 -0700467 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
468 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700469 },
470 {
Jingning Han35deaa72017-10-26 15:36:30 -0700471 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
472 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700473 } }
474 };
Angie Chiangf12cc4a2017-08-28 15:42:33 -0700475#endif // CONFIG_CTX1D
Jingning Han480ee022017-04-03 20:31:08 -0700476
Angie Chiangbabf3e72017-03-20 15:32:24 -0700477const aom_prob default_coeff_lps[TX_SIZES][PLANE_TYPES][LEVEL_CONTEXTS] = {
Jingning Han87b01b52017-08-31 12:07:20 -0700478 { { 96, 128, 86, 122, 128, 84, 125, 128, 88, 99, 126, 128,
479 135, 159, 99, 130, 134, 100, 128, 144, 70, 97, 128, 139,
480 157, 168, 127, 148, 162, 121, 149, 157, 118, 127, 143, 157,
481 178, 186, 168, 171, 183, 165, 169, 180, 180, 169, 166, 177 },
482 { 81, 128, 72, 95, 128, 64, 98, 128, 42, 66, 101, 128,
483 129, 163, 97, 122, 130, 91, 119, 141, 70, 94, 118, 166,
484 157, 168, 117, 143, 151, 111, 144, 154, 76, 113, 128, 158,
485 177, 185, 165, 167, 179, 155, 166, 179, 110, 137, 115, 165 } },
486 { { 102, 128, 79, 125, 128, 74, 121, 128, 61, 98, 128, 128,
487 141, 164, 96, 132, 150, 90, 128, 153, 62, 100, 128, 153,
488 162, 172, 120, 146, 162, 113, 142, 154, 96, 113, 138, 155,
489 181, 188, 151, 170, 179, 147, 167, 181, 158, 157, 163, 176 },
490 { 103, 128, 80, 116, 128, 66, 94, 128, 35, 65, 109, 128,
491 134, 163, 104, 137, 154, 92, 128, 104, 58, 94, 129, 132,
492 156, 173, 137, 149, 165, 104, 143, 143, 112, 101, 133, 159,
493 176, 186, 134, 172, 175, 155, 169, 177, 255, 107, 137, 168 } },
494 { { 125, 128, 85, 157, 128, 82, 155, 128, 42, 83, 116, 128,
495 155, 174, 101, 144, 155, 93, 140, 155, 57, 92, 124, 149,
496 173, 178, 114, 148, 161, 111, 145, 161, 77, 101, 131, 153,
497 190, 191, 140, 169, 183, 140, 169, 179, 108, 122, 150, 171 },
498 { 136, 128, 108, 163, 128, 96, 140, 128, 48, 90, 85, 128,
499 144, 164, 113, 158, 179, 107, 159, 128, 43, 75, 133, 160,
500 157, 184, 144, 160, 189, 154, 152, 184, 128, 124, 137, 140,
501 188, 196, 148, 170, 178, 128, 177, 159, 128, 179, 135, 135 } },
502 { { 133, 128, 110, 153, 128, 101, 157, 128, 49, 91, 134, 128,
503 151, 168, 129, 158, 162, 112, 154, 168, 63, 99, 130, 158,
504 171, 178, 128, 160, 173, 111, 155, 171, 86, 108, 143, 159,
505 194, 196, 162, 177, 185, 123, 172, 181, 101, 132, 156, 178 },
Ola Hugosson52d6c892017-11-16 16:51:46 +0100506 { 133, 128, 129, 144, 128, 116, 135, 128, 43, 101, 100, 128, 140, 163, 158,
507 173, 205, 128, 165, 171, 128, 128, 210, 163, 172, 184, 192, 176, 201, 183,
508 177, 190, 128, 192, 199, 144,
509#if CONFIG_LV_MAP_MULTI
510 // TODO(olah): The 1 causes an assert in av1_cost_tokens_from_cdf.
511 // Changing to 10 is a temporary fix until the root cause is found.
512 192, 192, 10, 196, 192, 255, 171, 178, 255, 128, 171, 179 } }
513#else
514 192, 192, 1, 196, 192, 255, 171, 178, 255, 128, 171, 179 } }
515#endif
Angie Chiangbabf3e72017-03-20 15:32:24 -0700516};
Jingning Han36773c72017-10-25 16:41:49 -0700517
Ola Hugossone72a2092017-11-12 09:11:53 +0100518#if !CONFIG_LV_MAP_MULTI
Jingning Han87b01b52017-08-31 12:07:20 -0700519const aom_prob
520 default_coeff_br[TX_SIZES][PLANE_TYPES][BASE_RANGE_SETS][LEVEL_CONTEXTS] = {
Jingning Han87b01b52017-08-31 12:07:20 -0700521 { { { 62, 128, 54, 116, 128, 51, 97, 128, 59, 68, 107, 128,
522 119, 158, 68, 115, 131, 65, 112, 138, 34, 71, 118, 137,
523 171, 184, 110, 152, 178, 105, 146, 172, 89, 111, 145, 173,
524 214, 226, 201, 198, 214, 196, 193, 210, 239, 196, 186, 202 },
525 { 41, 128, 58, 52, 128, 51, 61, 128, 92, 54, 48, 128,
526 67, 113, 36, 55, 75, 30, 56, 72, 12, 25, 50, 79,
527 94, 131, 37, 75, 108, 42, 78, 103, 5, 31, 67, 103,
528 172, 192, 131, 135, 167, 129, 136, 165, 149, 144, 120, 149 },
529 { 35, 128, 74, 50, 128, 63, 59, 128, 87, 74, 38, 128,
530 32, 53, 23, 34, 50, 18, 30, 41, 15, 13, 18, 18,
531 52, 74, 18, 29, 36, 18, 31, 47, 51, 9, 15, 27,
532 96, 134, 85, 70, 93, 96, 79, 100, 108, 100, 55, 65 } },
533 { { 52, 128, 35, 79, 128, 29, 66, 128, 12, 30, 57, 128,
534 113, 156, 64, 107, 172, 54, 103, 145, 23, 57, 96, 110,
535 165, 184, 95, 138, 166, 95, 141, 184, 55, 80, 133, 165,
536 212, 222, 134, 175, 206, 158, 177, 197, 102, 61, 154, 190 },
537 { 36, 128, 18, 26, 128, 15, 29, 128, 4, 6, 30, 128,
538 63, 113, 25, 44, 66, 22, 40, 67, 9, 14, 34, 55,
539 90, 125, 26, 66, 82, 29, 73, 88, 1, 26, 34, 67,
540 158, 179, 70, 121, 134, 69, 111, 129, 1, 85, 54, 105 },
541 { 24, 128, 8, 31, 128, 15, 16, 128, 1, 1, 1, 128,
542 32, 39, 16, 18, 43, 5, 17, 13, 1, 1, 22, 1,
543 37, 65, 26, 20, 28, 16, 15, 24, 128, 1, 1, 1,
544 83, 107, 57, 56, 74, 34, 29, 73, 128, 1, 37, 47 } } },
545 { { { 72, 128, 45, 113, 128, 38, 100, 128, 26, 63, 112, 128,
546 134, 177, 65, 121, 148, 57, 111, 143, 27, 68, 116, 152,
547 181, 198, 98, 148, 173, 84, 136, 168, 53, 89, 134, 170,
548 218, 230, 173, 194, 216, 160, 188, 213, 199, 177, 183, 204 },
549 { 54, 128, 34, 55, 128, 32, 53, 128, 66, 45, 54, 128,
550 81, 128, 33, 59, 102, 26, 55, 80, 7, 23, 49, 91,
551 116, 145, 36, 79, 107, 35, 73, 102, 12, 28, 57, 95,
552 170, 201, 102, 133, 173, 105, 127, 173, 166, 132, 114, 149 },
553 { 40, 128, 25, 30, 128, 21, 31, 128, 24, 17, 24, 128,
554 51, 67, 19, 28, 40, 17, 25, 42, 15, 13, 19, 19,
555 61, 77, 19, 30, 48, 13, 33, 50, 11, 15, 21, 30,
556 103, 147, 37, 69, 111, 37, 66, 105, 18, 18, 36, 76 } },
557 { { 74, 128, 42, 99, 128, 32, 57, 128, 9, 28, 76, 128,
558 115, 187, 70, 118, 120, 52, 109, 128, 19, 60, 93, 100,
559 178, 197, 119, 147, 179, 92, 137, 178, 37, 87, 110, 158,
560 216, 227, 169, 186, 201, 128, 178, 204, 1, 96, 155, 217 },
561 { 59, 128, 26, 34, 128, 11, 20, 128, 7, 8, 24, 128,
562 73, 125, 38, 74, 96, 23, 61, 79, 15, 9, 23, 110,
563 96, 151, 49, 79, 164, 22, 70, 65, 1, 1, 9, 69,
564 156, 196, 73, 105, 181, 17, 126, 155, 128, 1, 90, 111 },
565 { 42, 128, 10, 11, 128, 13, 1, 128, 1, 1, 1, 128,
566 55, 63, 13, 17, 85, 1, 16, 64, 1, 1, 1, 1,
567 62, 58, 32, 21, 53, 1, 37, 91, 128, 128, 1, 1,
568 81, 133, 51, 48, 79, 1, 25, 81, 128, 128, 1, 54 } } },
569 { { { 103, 128, 52, 163, 128, 46, 155, 128, 12, 45, 97, 128,
570 162, 196, 69, 140, 170, 60, 130, 158, 21, 58, 109, 150,
571 205, 214, 93, 149, 178, 79, 143, 179, 38, 71, 120, 159,
572 231, 240, 150, 192, 218, 140, 188, 220, 84, 112, 159, 196 },
573 { 93, 128, 42, 143, 128, 41, 132, 128, 6, 15, 40, 128,
574 113, 172, 39, 99, 113, 33, 91, 94, 5, 15, 42, 83,
575 148, 172, 37, 91, 130, 28, 81, 121, 9, 20, 47, 87,
576 201, 223, 75, 139, 183, 77, 132, 176, 23, 41, 82, 147 },
577 { 92, 128, 45, 123, 128, 28, 88, 128, 1, 8, 20, 128,
578 85, 94, 39, 95, 83, 33, 81, 61, 4, 5, 17, 25,
579 84, 109, 17, 59, 76, 11, 46, 62, 1, 4, 13, 35,
580 139, 184, 25, 86, 129, 25, 71, 123, 26, 13, 31, 84 } },
581 { { 123, 128, 82, 169, 128, 62, 139, 128, 1, 28, 77, 128,
582 139, 167, 92, 170, 146, 76, 149, 255, 19, 68, 160, 73,
583 190, 209, 171, 165, 218, 57, 152, 209, 128, 61, 122, 164,
584 237, 240, 146, 210, 227, 128, 224, 220, 128, 128, 196, 199 },
585 { 130, 128, 52, 141, 128, 32, 101, 128, 128, 1, 85, 128,
586 94, 155, 71, 121, 255, 30, 116, 85, 1, 8, 58, 255,
587 105, 169, 110, 101, 132, 1, 77, 142, 128, 1, 54, 96,
588 166, 214, 224, 154, 198, 255, 153, 230, 128, 85, 100, 146 },
589 { 103, 128, 26, 83, 128, 20, 47, 128, 128, 128, 1, 128,
590 91, 90, 19, 76, 128, 1, 42, 1, 128, 255, 64, 128,
591 74, 77, 1, 72, 68, 128, 13, 77, 128, 128, 64, 1,
592 71, 147, 37, 99, 171, 1, 104, 151, 128, 1, 1, 96 } } },
593 { { { 113, 128, 79, 165, 128, 69, 149, 128, 14, 55, 116, 128,
594 163, 202, 104, 169, 205, 82, 159, 180, 22, 64, 121, 165,
595 207, 216, 113, 177, 215, 95, 166, 195, 35, 77, 132, 179,
596 241, 244, 173, 207, 233, 128, 202, 227, 92, 121, 169, 209 },
597 { 114, 128, 67, 136, 128, 54, 132, 128, 6, 26, 62, 128,
598 85, 129, 85, 146, 173, 64, 129, 140, 7, 19, 65, 92,
599 139, 169, 42, 147, 186, 40, 129, 170, 18, 18, 65, 117,
600 213, 230, 74, 172, 213, 69, 165, 196, 1, 40, 103, 170 },
601 { 101, 128, 61, 134, 128, 52, 97, 128, 1, 14, 26, 128,
602 79, 72, 71, 135, 152, 56, 114, 117, 1, 10, 24, 58,
603 64, 66, 60, 133, 148, 16, 126, 123, 1, 32, 26, 56,
604 143, 197, 51, 141, 176, 59, 132, 162, 128, 17, 47, 106 } },
605 { { 115, 128, 112, 135, 128, 89, 130, 128, 15, 49, 89, 128,
606 143, 238, 154, 203, 255, 138, 172, 255, 1, 98, 196, 255,
607 185, 203, 255, 211, 255, 192, 217, 235, 128, 128, 171, 255,
608 233, 233, 255, 247, 255, 1, 239, 245, 1, 128, 255, 255 },
609 { 75, 128, 76, 118, 128, 35, 74, 128, 1, 13, 23, 128,
610 63, 138, 114, 164, 140, 91, 128, 128, 128, 1, 138, 64,
611 96, 128, 255, 175, 236, 85, 166, 209, 128, 1, 128, 146,
612 196, 217, 1, 204, 206, 128, 212, 221, 128, 128, 128, 219 },
613 { 49, 128, 36, 62, 128, 37, 56, 128, 128, 1, 1, 128,
614 45, 37, 68, 102, 128, 90, 56, 1, 128, 128, 37, 1,
615 26, 27, 128, 126, 128, 255, 63, 142, 128, 128, 1, 1,
616 125, 159, 128, 173, 212, 128, 85, 189, 128, 128, 255, 171 } } }
617 };
Ola Hugossone72a2092017-11-12 09:11:53 +0100618#endif
Angie Chiangf12cc4a2017-08-28 15:42:33 -0700619#if CONFIG_CTX1D
620static const aom_prob default_eob_mode[TX_SIZES][PLANE_TYPES][TX_CLASSES] = {
Angie Chiangf12cc4a2017-08-28 15:42:33 -0700621 { { 128, 176, 157 }, { 128, 222, 198 } },
622 { { 128, 35, 56 }, { 128, 203, 225 } },
623 { { 128, 55, 136 }, { 128, 230, 253 } },
624 { { 128, 101, 188 }, { 128, 128, 128 } }
625};
626static const aom_prob default_empty_line[TX_SIZES][PLANE_TYPES][TX_CLASSES]
627 [EMPTY_LINE_CONTEXTS] = {
Angie Chiangf12cc4a2017-08-28 15:42:33 -0700628 { { { 128, 128, 128, 128, 128 },
629 { 142, 153, 211, 205, 128 },
630 { 162, 142, 203, 197, 128 } },
631 { { 128, 128, 128, 128, 128 },
632 { 133, 116, 178, 123, 128 },
633 { 139, 109, 159, 115, 128 } } },
634 { { { 128, 128, 128, 128, 128 },
635 { 185, 130, 183, 204, 227 },
636 { 171, 81, 177, 200, 221 } },
637 { { 128, 128, 128, 128, 128 },
638 { 180, 127, 175, 189, 213 },
639 { 120, 74, 129, 134, 156 } } },
640 { { { 128, 128, 128, 128, 128 },
641 { 202, 82, 183, 214, 248 },
642 { 144, 41, 163, 185, 203 } },
643 { { 128, 128, 128, 128, 128 },
644 { 151, 93, 171, 224, 160 },
645 { 128, 51, 171, 128, 1 } } },
646 { { { 128, 128, 128, 128, 128 },
647 { 154, 48, 174, 210, 233 },
648 { 123, 16, 148, 189, 197 } },
649 { { 128, 128, 128, 128, 128 },
650 { 128, 128, 128, 128, 128 },
651 { 128, 128, 128, 128, 128 } } }
652 };
653static const aom_prob
654 default_hv_eob[TX_SIZES][PLANE_TYPES][TX_CLASSES][HV_EOB_CONTEXTS] = {
Angie Chiangf12cc4a2017-08-28 15:42:33 -0700655 { { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
656 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
657 { 151, 173, 114, 128, 128, 128, 128, 128, 128, 162, 198, 128,
658 128, 128, 128, 128, 182, 198, 109, 128, 128, 128, 128, 128 },
659 { 152, 173, 119, 128, 128, 128, 128, 128, 128, 164, 193, 128,
660 128, 128, 128, 128, 198, 209, 121, 128, 128, 128, 128, 128 } },
661 { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
662 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
663 { 123, 143, 70, 128, 128, 128, 128, 128, 128, 127, 154, 128,
664 128, 128, 128, 128, 176, 148, 36, 128, 128, 128, 128, 128 },
665 { 132, 152, 73, 128, 128, 128, 128, 128, 128, 127, 159, 128,
666 128, 128, 128, 128, 186, 181, 48, 128, 128, 128, 128, 128 } } },
667 { { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
668 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
669 { 109, 105, 78, 44, 128, 128, 128, 128, 128, 146, 185, 221,
670 128, 128, 128, 128, 199, 188, 134, 69, 128, 128, 128, 128 },
671 { 124, 127, 115, 82, 128, 128, 128, 128, 128, 162, 198, 224,
672 128, 128, 128, 128, 206, 214, 177, 135, 128, 128, 128, 128 } },
673 { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
674 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
675 { 95, 102, 65, 14, 128, 128, 128, 128, 128, 132, 164, 199,
676 128, 128, 128, 128, 162, 163, 66, 27, 128, 128, 128, 128 },
677 { 83, 141, 97, 38, 128, 128, 128, 128, 128, 154, 132, 184,
678 128, 128, 128, 128, 194, 218, 112, 63, 128, 128, 128, 128 } } },
679 { { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
680 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
681 { 117, 107, 86, 61, 51, 104, 128, 128, 128, 160, 198, 238,
682 252, 251, 128, 128, 221, 223, 209, 186, 99, 81, 128, 128 },
683 { 118, 122, 121, 100, 91, 97, 128, 128, 128, 168, 190, 214,
684 233, 235, 128, 128, 197, 216, 177, 165, 147, 126, 128, 128 } },
685 { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
686 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
687 { 109, 102, 63, 51, 255, 85, 128, 128, 128, 163, 131, 175,
688 128, 128, 128, 128, 183, 102, 40, 1, 128, 128, 128, 128 },
689 { 255, 255, 1, 1, 128, 1, 128, 128, 128, 1, 128, 128,
690 128, 128, 128, 128, 255, 1, 128, 128, 128, 128, 128, 128 } } },
691 { { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
692 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
693 { 114, 108, 83, 61, 53, 28, 77, 177, 128, 161, 187, 218,
694 240, 237, 228, 234, 200, 207, 167, 136, 98, 78, 183, 128 },
695 { 117, 138, 116, 77, 75, 85, 26, 1, 128, 197, 162, 200,
696 184, 212, 225, 236, 189, 225, 168, 124, 144, 171, 128, 128 } },
697 { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
698 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
699 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
700 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
701 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
702 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } } }
703 };
704#endif // CONFIG_CTX1D
Angie Chiangbabf3e72017-03-20 15:32:24 -0700705#endif // CONFIG_LV_MAP
706
Yaowu Xuf883b422016-08-30 14:01:10 -0700707static const aom_prob default_newmv_prob[NEWMV_MODE_CONTEXTS] = {
Yue Chend1b8c2a2017-07-05 14:28:20 -0700708 155, 116, 94, 32, 96, 56, 30,
Yaowu Xuc27fc142016-08-22 16:08:15 -0700709};
710
Sarah Parker2b9ec2e2017-10-30 17:34:08 -0700711static const aom_prob default_zeromv_prob[GLOBALMV_MODE_CONTEXTS] = {
Yue Chend1b8c2a2017-07-05 14:28:20 -0700712 45, 13,
Yaowu Xuc27fc142016-08-22 16:08:15 -0700713};
714
Yaowu Xuf883b422016-08-30 14:01:10 -0700715static const aom_prob default_refmv_prob[REFMV_MODE_CONTEXTS] = {
Yue Chend1b8c2a2017-07-05 14:28:20 -0700716 178, 212, 135, 244, 203, 122, 128, 128, 128,
Yaowu Xuc27fc142016-08-22 16:08:15 -0700717};
718
Yue Chend1b8c2a2017-07-05 14:28:20 -0700719static const aom_prob default_drl_prob[DRL_MODE_CONTEXTS] = {
720 119, 128, 189, 134, 128,
721};
Thomas Davies149eda52017-06-12 18:11:55 +0100722static const aom_cdf_prob default_newmv_cdf[NEWMV_MODE_CONTEXTS][CDF_SIZE(2)] =
Thomas Daedee82e5772017-11-06 17:27:10 -0800723 { { AOM_CDF2(128 * 155) }, { AOM_CDF2(128 * 116) }, { AOM_CDF2(128 * 94) },
724 { AOM_CDF2(128 * 32) }, { AOM_CDF2(128 * 96) }, { AOM_CDF2(128 * 56) },
725 { AOM_CDF2(128 * 30) } };
Sarah Parker2b9ec2e2017-10-30 17:34:08 -0700726static const aom_cdf_prob default_zeromv_cdf[GLOBALMV_MODE_CONTEXTS][CDF_SIZE(
Thomas Daedee82e5772017-11-06 17:27:10 -0800727 2)] = { { AOM_CDF2(128 * 45) }, { AOM_CDF2(128 * 13) } };
Yue Chena9529a32017-07-10 17:53:17 -0700728static const aom_cdf_prob default_refmv_cdf[REFMV_MODE_CONTEXTS][CDF_SIZE(2)] =
Thomas Daedee82e5772017-11-06 17:27:10 -0800729 {
730 { AOM_CDF2(128 * 178) }, { AOM_CDF2(128 * 212) }, { AOM_CDF2(128 * 135) },
731 { AOM_CDF2(128 * 244) }, { AOM_CDF2(128 * 203) }, { AOM_CDF2(128 * 122) },
732 { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }
733 };
Thomas Davies149eda52017-06-12 18:11:55 +0100734static const aom_cdf_prob default_drl_cdf[DRL_MODE_CONTEXTS][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800735 { AOM_CDF2(128 * 119) },
736 { AOM_CDF2(128 * 128) },
737 { AOM_CDF2(128 * 189) },
738 { AOM_CDF2(128 * 134) },
739 { AOM_CDF2(128 * 128) }
Thomas Davies149eda52017-06-12 18:11:55 +0100740};
Yaowu Xuc27fc142016-08-22 16:08:15 -0700741
Yaowu Xuf883b422016-08-30 14:01:10 -0700742static const aom_prob default_inter_compound_mode_probs
Yaowu Xuc27fc142016-08-22 16:08:15 -0700743 [INTER_MODE_CONTEXTS][INTER_COMPOUND_MODES - 1] = {
Yue Chend1b8c2a2017-07-05 14:28:20 -0700744 { 154, 167, 233, 165, 143, 170, 167 }, // 0 = both zero mv
745 { 75, 168, 237, 155, 135, 176, 172 }, // 1 = 1 zero + 1 predicted
746 { 7, 173, 227, 128, 153, 188, 189 }, // 2 = two predicted mvs
747 { 8, 120, 214, 113, 154, 178, 174 }, // 3 = 1 pred/zero, 1 new
748 { 4, 85, 194, 94, 155, 173, 167 }, // 4 = two new mvs
749 { 23, 89, 180, 73, 157, 151, 155 }, // 5 = one intra neighbour
750 { 27, 49, 152, 91, 134, 153, 142 }, // 6 = two intra neighbours
Yaowu Xuc27fc142016-08-22 16:08:15 -0700751 };
752
Thomas Davies8c08a332017-06-26 17:30:34 +0100753static const aom_cdf_prob
754 default_inter_compound_mode_cdf[INTER_MODE_CONTEXTS][CDF_SIZE(
755 INTER_COMPOUND_MODES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800756 { AOM_CDF8(19712, 28229, 30892, 31437, 31712, 32135, 32360) },
757 { AOM_CDF8(9600, 24804, 29268, 30323, 30802, 31726, 32177) },
758 { AOM_CDF8(896, 22434, 27015, 29026, 29753, 31114, 31597) },
759 { AOM_CDF8(1024, 15904, 22127, 25421, 26864, 28996, 30001) },
760 { AOM_CDF8(512, 11222, 17217, 21445, 23473, 26133, 27550) },
761 { AOM_CDF8(2944, 13313, 17214, 20751, 23211, 25500, 26992) },
762 { AOM_CDF8(3456, 9067, 14069, 16907, 18817, 21214, 23139) }
Thomas Davies8c08a332017-06-26 17:30:34 +0100763 };
Thomas Davies8c08a332017-06-26 17:30:34 +0100764
Sarah Parker2f6ce752016-12-08 15:26:46 -0800765static const aom_prob
Rupert Swarbrick93c39e92017-07-12 11:11:02 +0100766 default_compound_type_probs[BLOCK_SIZES_ALL][COMPOUND_TYPES - 1] = {
Hui Su9fa96232017-10-23 15:46:04 -0700767 { 128, 128 }, { 128, 128 }, { 128, 128 }, { 128, 128 },
768 { 255, 128 }, { 255, 128 }, { 66, 51 }, { 72, 35 },
769 { 79, 29 }, { 71, 18 }, { 81, 29 }, { 81, 26 },
770 { 69, 19 }, { 104, 1 }, { 99, 1 }, { 75, 1 },
Sarah Parker2f6ce752016-12-08 15:26:46 -0800771#if CONFIG_EXT_PARTITION
Debargha Mukherjeef6429c92017-05-15 15:42:13 -0700772 { 255, 1 }, { 255, 1 }, { 255, 1 },
Sarah Parker2f6ce752016-12-08 15:26:46 -0800773#endif // CONFIG_EXT_PARTITION
Hui Su9fa96232017-10-23 15:46:04 -0700774 { 208, 128 }, { 208, 128 }, { 208, 128 }, { 208, 128 },
775 { 208, 1 }, { 208, 1 },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100776#if CONFIG_EXT_PARTITION
777 { 208, 1 }, { 208, 1 }
778#endif // CONFIG_EXT_PARTITION
Sarah Parker2f6ce752016-12-08 15:26:46 -0800779 };
Sarah Parker6fddd182016-11-10 20:57:20 -0800780
Thomas Daviesd8dac222017-06-27 11:23:15 +0100781static const aom_cdf_prob
Rupert Swarbrick93c39e92017-07-12 11:11:02 +0100782 default_compound_type_cdf[BLOCK_SIZES_ALL][CDF_SIZE(COMPOUND_TYPES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800783 { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
784 { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
785 { AOM_CDF3(32640, 32704) }, { AOM_CDF3(32640, 32704) },
786 { AOM_CDF3(8448, 13293) }, { AOM_CDF3(9216, 12436) },
787 { AOM_CDF3(10112, 12679) }, { AOM_CDF3(9088, 10753) },
788 { AOM_CDF3(10368, 12906) }, { AOM_CDF3(10368, 12643) },
789 { AOM_CDF3(8832, 10609) }, { AOM_CDF3(13312, 13388) },
790 { AOM_CDF3(12672, 12751) }, { AOM_CDF3(9600, 9691) },
Thomas Daviesd8dac222017-06-27 11:23:15 +0100791#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800792 { AOM_CDF3(32640, 32641) }, // 255, 1
793 { AOM_CDF3(32640, 32641) }, { AOM_CDF3(32640, 32641) },
Thomas Daviesd8dac222017-06-27 11:23:15 +0100794#endif // CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800795 { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
796 { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
797 { AOM_CDF3(26624, 26648) }, // 208, 1
798 { AOM_CDF3(26624, 26648) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100799#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800800 { AOM_CDF3(26624, 26648) }, { AOM_CDF3(26624, 26648) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100801#endif
Thomas Daviesd8dac222017-06-27 11:23:15 +0100802 };
Thomas Daviesd8dac222017-06-27 11:23:15 +0100803
Yaowu Xuf883b422016-08-30 14:01:10 -0700804static const aom_prob default_interintra_prob[BLOCK_SIZE_GROUPS] = {
Yue Chend1b8c2a2017-07-05 14:28:20 -0700805 128, 226, 244, 254,
Yaowu Xuc27fc142016-08-22 16:08:15 -0700806};
Thomas Daviescff91712017-07-07 11:49:55 +0100807static const aom_cdf_prob default_interintra_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(
Thomas Daedee82e5772017-11-06 17:27:10 -0800808 2)] = { { AOM_CDF2(128 * 128) },
809 { AOM_CDF2(226 * 128) },
810 { AOM_CDF2(244 * 128) },
811 { AOM_CDF2(254 * 128) } };
Thomas Daviescff91712017-07-07 11:49:55 +0100812
Yue Chen4d26acb2017-05-01 12:28:34 -0700813static const aom_prob
814 default_interintra_mode_prob[BLOCK_SIZE_GROUPS][INTERINTRA_MODES - 1] = {
Yue Chend1b8c2a2017-07-05 14:28:20 -0700815 { 128, 128, 128 }, // block_size < 8x8
816 { 24, 34, 119 }, // block_size < 16x16
817 { 38, 33, 95 }, // block_size < 32x32
818 { 51, 21, 110 }, // block_size >= 32x32
Yue Chen4d26acb2017-05-01 12:28:34 -0700819 };
Thomas Davies299ff042017-06-27 13:41:59 +0100820static const aom_cdf_prob
Thomas Daedee82e5772017-11-06 17:27:10 -0800821 default_interintra_mode_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(INTERINTRA_MODES)] =
822 { { AOM_CDF4(16384, 24576, 28672) },
823 { AOM_CDF4(3072, 7016, 18987) },
824 { AOM_CDF4(4864, 8461, 17481) },
825 { AOM_CDF4(6528, 8681, 19031) } };
Yaowu Xuc27fc142016-08-22 16:08:15 -0700826
Rupert Swarbrick93c39e92017-07-12 11:11:02 +0100827static const aom_prob default_wedge_interintra_prob[BLOCK_SIZES_ALL] = {
Hui Su9fa96232017-10-23 15:46:04 -0700828 128, 128, 128, 128, 128, 128, 194, 213,
829 217, 222, 224, 226, 220, 128, 128, 128,
Yaowu Xuc27fc142016-08-22 16:08:15 -0700830#if CONFIG_EXT_PARTITION
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100831 255, 255, 255,
Yaowu Xuc27fc142016-08-22 16:08:15 -0700832#endif // CONFIG_EXT_PARTITION
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100833 208, 208, 208, 208, 255, 255,
834#if CONFIG_EXT_PARTITION
835 255, 255
836#endif // CONFIG_EXT_PARTITION
Yaowu Xuc27fc142016-08-22 16:08:15 -0700837};
Thomas Davies299ff042017-06-27 13:41:59 +0100838
Thomas Daviescff91712017-07-07 11:49:55 +0100839static const aom_cdf_prob
Thomas Davies8e6267f2017-07-13 17:09:52 +0100840 default_wedge_interintra_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800841 { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
842 { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
843 { AOM_CDF2(194 * 128) }, { AOM_CDF2(213 * 128) }, { AOM_CDF2(217 * 128) },
844 { AOM_CDF2(222 * 128) }, { AOM_CDF2(224 * 128) }, { AOM_CDF2(226 * 128) },
845 { AOM_CDF2(220 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
846 { AOM_CDF2(128 * 128) },
Thomas Daviescff91712017-07-07 11:49:55 +0100847#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800848 { AOM_CDF2(255 * 128) }, { AOM_CDF2(255 * 128) }, { AOM_CDF2(255 * 128) },
Thomas Daviescff91712017-07-07 11:49:55 +0100849#endif // CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800850 { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) },
851 { AOM_CDF2(208 * 128) }, { AOM_CDF2(255 * 128) }, { AOM_CDF2(255 * 128) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100852#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800853 { AOM_CDF2(255 * 128) }, { AOM_CDF2(255 * 128) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100854#endif // CONFIG_EXT_PARTITION
Thomas Daviescff91712017-07-07 11:49:55 +0100855 };
Thomas Daviescff91712017-07-07 11:49:55 +0100856
Yue Chencb60b182016-10-13 15:18:22 -0700857const aom_tree_index av1_motion_mode_tree[TREE_SIZE(MOTION_MODES)] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -0700858 -SIMPLE_TRANSLATION, 2, -OBMC_CAUSAL, -WARPED_CAUSAL,
859};
Rupert Swarbrick93c39e92017-07-12 11:11:02 +0100860
861static const aom_prob
862 default_motion_mode_prob[BLOCK_SIZES_ALL][MOTION_MODES - 1] = {
Hui Su9fa96232017-10-23 15:46:04 -0700863 { 128, 128 }, { 128, 128 }, { 128, 128 }, { 128, 128 },
864 { 128, 128 }, { 128, 128 }, { 62, 115 }, { 39, 131 },
865 { 39, 132 }, { 118, 94 }, { 77, 125 }, { 100, 121 },
866 { 190, 66 }, { 207, 102 }, { 197, 100 }, { 239, 76 },
Yaowu Xuc27fc142016-08-22 16:08:15 -0700867#if CONFIG_EXT_PARTITION
868 { 252, 200 }, { 252, 200 }, { 252, 200 },
869#endif // CONFIG_EXT_PARTITION
Hui Su9fa96232017-10-23 15:46:04 -0700870 { 208, 200 }, { 208, 200 }, { 208, 200 }, { 208, 200 },
871 { 208, 200 }, { 208, 200 },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100872#if CONFIG_EXT_PARTITION
873 { 252, 200 }, { 252, 200 }
874#endif // CONFIG_EXT_PARTITION
Yaowu Xuc27fc142016-08-22 16:08:15 -0700875 };
Thomas Davies04e5aa72017-06-28 14:36:39 +0100876static const aom_cdf_prob
Rupert Swarbrick93c39e92017-07-12 11:11:02 +0100877 default_motion_mode_cdf[BLOCK_SIZES_ALL][CDF_SIZE(MOTION_MODES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800878 { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
879 { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
880 { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
881 { AOM_CDF3(7936, 19091) }, { AOM_CDF3(4991, 19205) },
882 { AOM_CDF3(4992, 19314) }, { AOM_CDF3(15104, 21590) },
883 { AOM_CDF3(9855, 21043) }, { AOM_CDF3(12800, 22238) },
884 { AOM_CDF3(24320, 26498) }, { AOM_CDF3(26496, 28995) },
885 { AOM_CDF3(25216, 28166) }, { AOM_CDF3(30592, 31238) },
Thomas Davies04e5aa72017-06-28 14:36:39 +0100886#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800887 { AOM_CDF3(32256, 32656) }, { AOM_CDF3(32256, 32656) },
888 { AOM_CDF3(32256, 32656) },
Thomas Davies04e5aa72017-06-28 14:36:39 +0100889#endif
Thomas Daedee82e5772017-11-06 17:27:10 -0800890 { AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
891 { AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
892 { AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100893#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800894 { AOM_CDF3(32256, 32656) }, { AOM_CDF3(32256, 32656) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100895#endif
Thomas Davies04e5aa72017-06-28 14:36:39 +0100896 };
Yue Chen80daf0c2017-11-02 17:14:18 -0700897
Yue Chen69f18e12016-09-08 14:48:15 -0700898// Probability for the case that only 1 additional motion mode is allowed
Rupert Swarbrick93c39e92017-07-12 11:11:02 +0100899static const aom_prob default_obmc_prob[BLOCK_SIZES_ALL] = {
Hui Su9fa96232017-10-23 15:46:04 -0700900 128, 128, 128, 128, 128, 128, 45, 79, 75, 130, 141, 144, 208, 201, 186, 231,
Yue Chen69f18e12016-09-08 14:48:15 -0700901#if CONFIG_EXT_PARTITION
902 252, 252, 252,
903#endif // CONFIG_EXT_PARTITION
Rupert Swarbrick72678572017-08-02 12:05:26 +0100904 208, 208, 208, 208, 208, 208,
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100905#if CONFIG_EXT_PARTITION
906 252, 252
907#endif // CONFIG_EXT_PARTITION
Yue Chen69f18e12016-09-08 14:48:15 -0700908};
Thomas Daviesd9b57262017-06-27 17:43:25 +0100909
Thomas Davies8e6267f2017-07-13 17:09:52 +0100910static const aom_cdf_prob default_obmc_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800911 { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
912 { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
913 { AOM_CDF2(45 * 128) }, { AOM_CDF2(79 * 128) }, { AOM_CDF2(75 * 128) },
914 { AOM_CDF2(130 * 128) }, { AOM_CDF2(141 * 128) }, { AOM_CDF2(144 * 128) },
915 { AOM_CDF2(208 * 128) }, { AOM_CDF2(201 * 128) }, { AOM_CDF2(186 * 128) },
916 { AOM_CDF2(231 * 128) },
Thomas Daviesd9b57262017-06-27 17:43:25 +0100917#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800918 { AOM_CDF2(252 * 128) }, { AOM_CDF2(252 * 128) }, { AOM_CDF2(252 * 128) },
Thomas Daviesd9b57262017-06-27 17:43:25 +0100919#endif // CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800920 { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) },
921 { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100922#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800923 { AOM_CDF2(252 * 128) }, { AOM_CDF2(252 * 128) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100924#endif // CONFIG_EXT_PARTITION
Thomas Daviesd9b57262017-06-27 17:43:25 +0100925};
Yaowu Xuc27fc142016-08-22 16:08:15 -0700926
Thomas Davies665cd702017-03-02 10:20:30 +0000927static const aom_prob default_delta_q_probs[DELTA_Q_PROBS] = { 220, 220, 220 };
Thomas Daviesd6ee8a82017-03-02 14:42:50 +0000928static const aom_cdf_prob default_delta_q_cdf[CDF_SIZE(DELTA_Q_PROBS + 1)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800929 AOM_CDF4(28160, 32120, 32677)
Thomas Daviesd6ee8a82017-03-02 14:42:50 +0000930};
Fangwen Fu231fe422017-04-24 17:52:29 -0700931#if CONFIG_EXT_DELTA_Q
Cheng Chena97394f2017-09-27 15:05:14 -0700932#if CONFIG_LOOPFILTER_LEVEL
Cheng Chen880166a2017-10-02 17:48:48 -0700933static const aom_prob
934 default_delta_lf_multi_probs[FRAME_LF_COUNT][DELTA_LF_PROBS] = {
935 { 220, 220, 220 }, { 220, 220, 220 }, { 220, 220, 220 }, { 220, 220, 220 }
936 };
Thomas Daedee82e5772017-11-06 17:27:10 -0800937static const aom_cdf_prob default_delta_lf_multi_cdf[FRAME_LF_COUNT][CDF_SIZE(
938 DELTA_LF_PROBS + 1)] = { { AOM_CDF4(28160, 32120, 32677) },
939 { AOM_CDF4(28160, 32120, 32677) },
940 { AOM_CDF4(28160, 32120, 32677) },
941 { AOM_CDF4(28160, 32120, 32677) } };
Cheng Chen880166a2017-10-02 17:48:48 -0700942#endif // CONFIG_LOOPFILTER_LEVEL
Fangwen Fu231fe422017-04-24 17:52:29 -0700943static const aom_prob default_delta_lf_probs[DELTA_LF_PROBS] = { 220, 220,
944 220 };
Fangwen Fu231fe422017-04-24 17:52:29 -0700945static const aom_cdf_prob default_delta_lf_cdf[CDF_SIZE(DELTA_LF_PROBS + 1)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800946 AOM_CDF4(28160, 32120, 32677)
Fangwen Fu231fe422017-04-24 17:52:29 -0700947};
948#endif
Thomas Daviesf6936102016-09-05 16:51:31 +0100949
Yaowu Xuc27fc142016-08-22 16:08:15 -0700950/* clang-format off */
Yue Chen4d26acb2017-05-01 12:28:34 -0700951const aom_tree_index av1_interintra_mode_tree[TREE_SIZE(INTERINTRA_MODES)] = {
952 -II_DC_PRED, 2, /* 0 = II_DC_NODE */
Yue Chen4d26acb2017-05-01 12:28:34 -0700953 -II_SMOOTH_PRED, 4, /* 1 = II_SMOOTH_PRED */
Yue Chen4d26acb2017-05-01 12:28:34 -0700954 -II_V_PRED, -II_H_PRED /* 2 = II_V_NODE */
955};
Yaowu Xuc27fc142016-08-22 16:08:15 -0700956
Yaowu Xuf883b422016-08-30 14:01:10 -0700957const aom_tree_index av1_inter_compound_mode_tree
Yaowu Xuc27fc142016-08-22 16:08:15 -0700958 [TREE_SIZE(INTER_COMPOUND_MODES)] = {
Sarah Parker2b9ec2e2017-10-30 17:34:08 -0700959 -INTER_COMPOUND_OFFSET(GLOBAL_GLOBALMV), 2,
Yaowu Xuc27fc142016-08-22 16:08:15 -0700960 -INTER_COMPOUND_OFFSET(NEAREST_NEARESTMV), 4,
961 6, -INTER_COMPOUND_OFFSET(NEW_NEWMV),
Debargha Mukherjeebb6e1342017-04-17 16:05:04 -0700962 -INTER_COMPOUND_OFFSET(NEAR_NEARMV), 8,
963 10, 12,
Yaowu Xuc27fc142016-08-22 16:08:15 -0700964 -INTER_COMPOUND_OFFSET(NEAREST_NEWMV), -INTER_COMPOUND_OFFSET(NEW_NEARESTMV),
965 -INTER_COMPOUND_OFFSET(NEAR_NEWMV), -INTER_COMPOUND_OFFSET(NEW_NEARMV)
966};
Sarah Parker6fddd182016-11-10 20:57:20 -0800967
Zoe Liu239f06b2017-04-20 13:10:55 -0700968
Sarah Parker2f6ce752016-12-08 15:26:46 -0800969const aom_tree_index av1_compound_type_tree[TREE_SIZE(COMPOUND_TYPES)] = {
970 -COMPOUND_AVERAGE, 2, -COMPOUND_WEDGE, -COMPOUND_SEG
971};
Yaowu Xuc27fc142016-08-22 16:08:15 -0700972/* clang-format on */
Yaowu Xuc27fc142016-08-22 16:08:15 -0700973
Yaowu Xuf883b422016-08-30 14:01:10 -0700974static const aom_prob default_intra_inter_p[INTRA_INTER_CONTEXTS] = {
Yue Chend1b8c2a2017-07-05 14:28:20 -0700975 6, 97, 151, 205,
Yaowu Xuc27fc142016-08-22 16:08:15 -0700976};
977
Thomas Daedee82e5772017-11-06 17:27:10 -0800978static const aom_cdf_prob default_intra_inter_cdf[INTRA_INTER_CONTEXTS]
979 [CDF_SIZE(2)] = {
980 { AOM_CDF2(768) },
981 { AOM_CDF2(12416) },
982 { AOM_CDF2(19328) },
983 { AOM_CDF2(26240) }
984 };
Thomas Daviesf6ad9352017-04-19 11:38:06 +0100985
Yaowu Xuf883b422016-08-30 14:01:10 -0700986static const aom_prob default_comp_inter_p[COMP_INTER_CONTEXTS] = {
Zoe Liu6905dc72017-09-26 11:16:32 -0700987 190, 156, 91, 77, 22
Yaowu Xuc27fc142016-08-22 16:08:15 -0700988};
Zoe Liufcf5fa22017-06-26 16:00:38 -0700989
Zoe Liue3c476e2017-09-29 11:32:48 -0700990static const aom_cdf_prob default_comp_inter_cdf[COMP_INTER_CONTEXTS][CDF_SIZE(
Thomas Daedee82e5772017-11-06 17:27:10 -0800991 2)] = { { AOM_CDF2(24290) },
992 { AOM_CDF2(19956) },
993 { AOM_CDF2(11641) },
994 { AOM_CDF2(9804) },
995 { AOM_CDF2(2842) } };
Yaowu Xuc27fc142016-08-22 16:08:15 -0700996
Zoe Liuc082bbc2017-05-17 13:31:37 -0700997#if CONFIG_EXT_COMP_REFS
998static const aom_prob default_comp_ref_type_p[COMP_REF_TYPE_CONTEXTS] = {
Zoe Liufcf5fa22017-06-26 16:00:38 -0700999 8, 20, 78, 91, 194
Zoe Liuc082bbc2017-05-17 13:31:37 -07001000};
Zoe Liuc082bbc2017-05-17 13:31:37 -07001001static const aom_prob
1002 default_uni_comp_ref_p[UNI_COMP_REF_CONTEXTS][UNIDIR_COMP_REFS - 1] = {
Zoe Liufcf5fa22017-06-26 16:00:38 -07001003 { 88, 30, 28 }, { 218, 97, 105 }, { 254, 180, 196 }
Zoe Liuc082bbc2017-05-17 13:31:37 -07001004 };
Zoe Liufcf5fa22017-06-26 16:00:38 -07001005
Thomas Daedee82e5772017-11-06 17:27:10 -08001006static const aom_cdf_prob default_comp_ref_type_cdf[COMP_REF_TYPE_CONTEXTS]
1007 [CDF_SIZE(2)] = {
1008 { AOM_CDF2(8 * 128) },
1009 { AOM_CDF2(20 * 128) },
1010 { AOM_CDF2(78 * 128) },
1011 { AOM_CDF2(91 * 128) },
1012 { AOM_CDF2(194 * 128) }
1013 };
Zoe Liufcf5fa22017-06-26 16:00:38 -07001014static const aom_cdf_prob
1015 default_uni_comp_ref_cdf[UNI_COMP_REF_CONTEXTS][UNIDIR_COMP_REFS - 1]
Thomas Daedee82e5772017-11-06 17:27:10 -08001016 [CDF_SIZE(2)] = { { { AOM_CDF2(88 * 128) },
1017 { AOM_CDF2(30 * 128) },
1018 { AOM_CDF2(28 * 128) } },
1019 { { AOM_CDF2(218 * 128) },
1020 { AOM_CDF2(97 * 128) },
1021 { AOM_CDF2(105 * 128) } },
1022 { { AOM_CDF2(254 * 128) },
1023 { AOM_CDF2(180 * 128) },
1024 { AOM_CDF2(196 * 128) } } };
Zoe Liuc082bbc2017-05-17 13:31:37 -07001025#endif // CONFIG_EXT_COMP_REFS
1026
Yaowu Xuf883b422016-08-30 14:01:10 -07001027static const aom_prob default_comp_ref_p[REF_CONTEXTS][FWD_REFS - 1] = {
Zoe Liu6905dc72017-09-26 11:16:32 -07001028 { 28, 10, 8 },
1029 { 77, 27, 26 },
1030 { 127, 62, 56 },
1031 { 186, 126, 160 },
1032 { 236, 143, 172 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001033};
Zoe Liu97ad0582017-02-09 10:51:00 -08001034
Yaowu Xuf883b422016-08-30 14:01:10 -07001035static const aom_prob default_comp_bwdref_p[REF_CONTEXTS][BWD_REFS - 1] = {
Zoe Liu6905dc72017-09-26 11:16:32 -07001036 { 22, 13 }, { 140, 124 }, { 241, 239 }, { 128, 128 }, { 128, 128 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001037};
Zoe Liufcf5fa22017-06-26 16:00:38 -07001038
Thomas Davies894cc812017-06-22 17:51:33 +01001039static const aom_cdf_prob
1040 default_comp_ref_cdf[REF_CONTEXTS][FWD_REFS - 1][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001041 { { AOM_CDF2(3556) }, { AOM_CDF2(1217) }, { AOM_CDF2(988) } },
1042 { { AOM_CDF2(9857) }, { AOM_CDF2(3394) }, { AOM_CDF2(3303) } },
1043 { { AOM_CDF2(16237) }, { AOM_CDF2(7946) }, { AOM_CDF2(7195) } },
1044 { { AOM_CDF2(23826) }, { AOM_CDF2(16124) }, { AOM_CDF2(20536) } },
1045 { { AOM_CDF2(30195) }, { AOM_CDF2(18344) }, { AOM_CDF2(21980) } }
Thomas Davies894cc812017-06-22 17:51:33 +01001046 };
Zoe Liu97ad0582017-02-09 10:51:00 -08001047
Thomas Davies894cc812017-06-22 17:51:33 +01001048static const aom_cdf_prob
1049 default_comp_bwdref_cdf[REF_CONTEXTS][BWD_REFS - 1][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001050 { { AOM_CDF2(2762) }, { AOM_CDF2(1614) } },
1051 { { AOM_CDF2(17976) }, { AOM_CDF2(15912) } },
1052 { { AOM_CDF2(30894) }, { AOM_CDF2(30639) } },
1053 { { AOM_CDF2(32768) }, { AOM_CDF2(32768) } },
1054 { { AOM_CDF2(32768) }, { AOM_CDF2(32768) } }
Thomas Davies894cc812017-06-22 17:51:33 +01001055 };
Zoe Liu97ad0582017-02-09 10:51:00 -08001056
Yaowu Xuf883b422016-08-30 14:01:10 -07001057static const aom_prob default_single_ref_p[REF_CONTEXTS][SINGLE_REFS - 1] = {
Zoe Liu6905dc72017-09-26 11:16:32 -07001058 { 36, 16, 32, 57, 11, 14 },
1059 { 68, 128, 73, 128, 49, 124 },
1060 { 136, 236, 127, 170, 81, 238 },
1061 { 128, 128, 191, 211, 115, 128 },
1062 { 224, 128, 230, 242, 208, 128 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001063};
Zoe Liufcf5fa22017-06-26 16:00:38 -07001064
Thomas Daedee82e5772017-11-06 17:27:10 -08001065static const aom_cdf_prob default_single_ref_cdf[REF_CONTEXTS][SINGLE_REFS - 1]
1066 [CDF_SIZE(2)] = {
1067 { { AOM_CDF2(4623) },
1068 { AOM_CDF2(2110) },
1069 { AOM_CDF2(4132) },
1070 { AOM_CDF2(7309) },
1071 { AOM_CDF2(1392) },
1072 { AOM_CDF2(1781) } },
1073 { { AOM_CDF2(8659) },
1074 { AOM_CDF2(16372) },
1075 { AOM_CDF2(9371) },
1076 { AOM_CDF2(16322) },
1077 { AOM_CDF2(6216) },
1078 { AOM_CDF2(15834) } },
1079 { { AOM_CDF2(17353) },
1080 { AOM_CDF2(30182) },
1081 { AOM_CDF2(16300) },
1082 { AOM_CDF2(21702) },
1083 { AOM_CDF2(10365) },
1084 { AOM_CDF2(30486) } },
1085 { { AOM_CDF2(32768) },
1086 { AOM_CDF2(32768) },
1087 { AOM_CDF2(24426) },
1088 { AOM_CDF2(26972) },
1089 { AOM_CDF2(14760) },
1090 { AOM_CDF2(32768) } },
1091 { { AOM_CDF2(28634) },
1092 { AOM_CDF2(32768) },
1093 { AOM_CDF2(29425) },
1094 { AOM_CDF2(30969) },
1095 { AOM_CDF2(26676) },
1096 { AOM_CDF2(32768) } }
1097 };
Yaowu Xuc27fc142016-08-22 16:08:15 -07001098
hui su466ae062017-07-25 16:55:51 -07001099// TODO(huisu): tune these cdfs
Thomas Daviesce7272d2017-07-04 16:11:08 +01001100const aom_cdf_prob
1101 default_palette_y_size_cdf[PALETTE_BLOCK_SIZES][CDF_SIZE(PALETTE_SIZES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001102 { AOM_CDF7(12288, 19408, 24627, 26662, 28499, 30667) },
1103 { AOM_CDF7(2815, 4570, 9416, 10875, 13782, 19863) },
1104 { AOM_CDF7(3839, 5986, 11949, 13413, 16286, 21823) },
1105 { AOM_CDF7(12032, 14948, 22187, 23138, 24756, 27635) },
1106 { AOM_CDF7(14847, 20167, 25433, 26751, 28278, 30119) },
1107 { AOM_CDF7(14336, 20240, 24840, 26079, 27908, 30034) },
1108 { AOM_CDF7(18816, 25574, 29030, 29877, 30656, 31506) },
1109 { AOM_CDF7(23039, 27333, 30220, 30708, 31070, 31826) },
1110 { AOM_CDF7(13696, 18911, 23620, 25371, 29821, 31617) },
1111 { AOM_CDF7(12543, 20838, 27455, 28762, 29763, 31546) },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001112 };
Thomas Daviesce7272d2017-07-04 16:11:08 +01001113
Thomas Daviesce7272d2017-07-04 16:11:08 +01001114const aom_cdf_prob default_palette_uv_size_cdf[PALETTE_BLOCK_SIZES][CDF_SIZE(
1115 PALETTE_SIZES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001116 { AOM_CDF7(20480, 29888, 32453, 32715, 32751, 32766) },
1117 { AOM_CDF7(11135, 23641, 31056, 31998, 32496, 32668) },
1118 { AOM_CDF7(9216, 23108, 30806, 31871, 32414, 32637) },
1119 { AOM_CDF7(9984, 21999, 29192, 30645, 31640, 32402) },
1120 { AOM_CDF7(7552, 16614, 24880, 27283, 29254, 31203) },
1121 { AOM_CDF7(9600, 20279, 27548, 29261, 30494, 31631) },
1122 { AOM_CDF7(11391, 18656, 23727, 26058, 27788, 30278) },
1123 { AOM_CDF7(8576, 13585, 17632, 20884, 23948, 27152) },
1124 { AOM_CDF7(15360, 24200, 26978, 30846, 31409, 32545) },
1125 { AOM_CDF7(9216, 14276, 19043, 22689, 25799, 28712) },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001126};
Thomas Daviesce7272d2017-07-04 16:11:08 +01001127
Urvang Joshi23a61112017-01-30 14:59:27 -08001128// When palette mode is enabled, following probability tables indicate the
1129// probabilities to code the "is_palette" bit (i.e. the bit that indicates
1130// if this block uses palette mode or DC_PRED mode).
Hui Su473cf892017-11-08 18:14:31 -08001131const aom_prob av1_default_palette_y_mode_prob[PALETTE_BLOCK_SIZES]
1132 [PALETTE_Y_MODE_CONTEXTS] = {
1133 { 240, 180, 100 },
1134 { 240, 180, 100 },
1135 { 240, 180, 100 },
1136 { 240, 180, 100 },
1137 { 240, 180, 100 },
1138 { 240, 180, 100 },
1139 { 240, 180, 100 },
1140 { 240, 180, 100 },
1141 { 240, 180, 100 },
1142 { 240, 180, 100 },
1143 };
Yaowu Xuc27fc142016-08-22 16:08:15 -07001144
Urvang Joshi23a61112017-01-30 14:59:27 -08001145const aom_prob av1_default_palette_uv_mode_prob[PALETTE_UV_MODE_CONTEXTS] = {
1146 253, 229
1147};
Yaowu Xuc27fc142016-08-22 16:08:15 -07001148
Thomas Daedee82e5772017-11-06 17:27:10 -08001149const aom_cdf_prob default_palette_y_mode_cdf[PALETTE_BLOCK_SIZES]
1150 [PALETTE_Y_MODE_CONTEXTS]
1151 [CDF_SIZE(2)] = {
1152 { { AOM_CDF2(128 * 240) },
1153 { AOM_CDF2(128 * 180) },
1154 { AOM_CDF2(128 * 100) } },
1155 { { AOM_CDF2(128 * 240) },
1156 { AOM_CDF2(128 * 180) },
1157 { AOM_CDF2(128 * 100) } },
1158 { { AOM_CDF2(128 * 240) },
1159 { AOM_CDF2(128 * 180) },
1160 { AOM_CDF2(128 * 100) } },
1161 { { AOM_CDF2(128 * 240) },
1162 { AOM_CDF2(128 * 180) },
1163 { AOM_CDF2(128 * 100) } },
1164 { { AOM_CDF2(128 * 240) },
1165 { AOM_CDF2(128 * 180) },
1166 { AOM_CDF2(128 * 100) } },
1167 { { AOM_CDF2(128 * 240) },
1168 { AOM_CDF2(128 * 180) },
1169 { AOM_CDF2(128 * 100) } },
1170 { { AOM_CDF2(128 * 240) },
1171 { AOM_CDF2(128 * 180) },
1172 { AOM_CDF2(128 * 100) } },
1173 { { AOM_CDF2(128 * 240) },
1174 { AOM_CDF2(128 * 180) },
1175 { AOM_CDF2(128 * 100) } },
1176 { { AOM_CDF2(128 * 240) },
1177 { AOM_CDF2(128 * 180) },
1178 { AOM_CDF2(128 * 100) } },
1179 { { AOM_CDF2(128 * 240) },
1180 { AOM_CDF2(128 * 180) },
1181 { AOM_CDF2(128 * 100) } },
Thomas Daedee82e5772017-11-06 17:27:10 -08001182 };
Thomas Davies59f92312017-08-23 00:33:12 +01001183
1184const aom_cdf_prob
1185 default_palette_uv_mode_cdf[PALETTE_UV_MODE_CONTEXTS][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001186 { AOM_CDF2(128 * 253) }, { AOM_CDF2(128 * 229) }
Thomas Davies59f92312017-08-23 00:33:12 +01001187 };
Thomas Davies59f92312017-08-23 00:33:12 +01001188
Thomas Daviesce7272d2017-07-04 16:11:08 +01001189const aom_cdf_prob default_palette_y_color_index_cdf
1190 [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = {
1191 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001192 { AOM_CDF2(29568), 0, 0, 0, 0, 0, 0 },
1193 { AOM_CDF2(16384), 0, 0, 0, 0, 0, 0 },
1194 { AOM_CDF2(8832), 0, 0, 0, 0, 0, 0 },
1195 { AOM_CDF2(28672), 0, 0, 0, 0, 0, 0 },
1196 { AOM_CDF2(31872), 0, 0, 0, 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001197 },
1198 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001199 { AOM_CDF3(28032, 30326), 0, 0, 0, 0, 0 },
1200 { AOM_CDF3(11647, 27405), 0, 0, 0, 0, 0 },
1201 { AOM_CDF3(4352, 30659), 0, 0, 0, 0, 0 },
1202 { AOM_CDF3(23552, 27800), 0, 0, 0, 0, 0 },
1203 { AOM_CDF3(32256, 32504), 0, 0, 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001204 },
1205 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001206 { AOM_CDF4(26112, 28374, 30039), 0, 0, 0, 0 },
1207 { AOM_CDF4(9472, 22576, 27712), 0, 0, 0, 0 },
1208 { AOM_CDF4(6656, 26138, 29608), 0, 0, 0, 0 },
1209 { AOM_CDF4(19328, 23791, 28946), 0, 0, 0, 0 },
1210 { AOM_CDF4(31744, 31984, 32336), 0, 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001211 },
1212 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001213 { AOM_CDF5(27904, 29215, 30075, 31190), 0, 0, 0 },
1214 { AOM_CDF5(9728, 22598, 26134, 29425), 0, 0, 0 },
1215 { AOM_CDF5(2688, 30066, 31058, 31933), 0, 0, 0 },
1216 { AOM_CDF5(22015, 25039, 27726, 29932), 0, 0, 0 },
1217 { AOM_CDF5(32383, 32482, 32554, 32660), 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001218 },
1219 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001220 { AOM_CDF6(24319, 26299, 27486, 28600, 29804), 0, 0 },
1221 { AOM_CDF6(7935, 18217, 21116, 25440, 28589), 0, 0 },
1222 { AOM_CDF6(6656, 25016, 27105, 28698, 30399), 0, 0 },
1223 { AOM_CDF6(19967, 24117, 26550, 28566, 30224), 0, 0 },
1224 { AOM_CDF6(31359, 31607, 31775, 31977, 32258), 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001225 },
1226 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001227 { AOM_CDF7(26368, 27768, 28588, 29274, 29997, 30917), 0 },
1228 { AOM_CDF7(8960, 18260, 20810, 23986, 26627, 28882), 0 },
1229 { AOM_CDF7(7295, 24111, 25836, 27515, 29033, 30769), 0 },
1230 { AOM_CDF7(22016, 25208, 27305, 28159, 29221, 30274), 0 },
1231 { AOM_CDF7(31744, 31932, 32050, 32199, 32335, 32521), 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001232 },
1233 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001234 { AOM_CDF8(26624, 27872, 28599, 29153, 29633, 30172, 30841) },
1235 { AOM_CDF8(6655, 17569, 19587, 23345, 25884, 28088, 29678) },
1236 { AOM_CDF8(3584, 27296, 28429, 29158, 30032, 30780, 31572) },
1237 { AOM_CDF8(23551, 25855, 27070, 27893, 28597, 29721, 30970) },
1238 { AOM_CDF8(32128, 32173, 32245, 32337, 32416, 32500, 32609) },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001239 },
1240 };
Thomas Daviesce7272d2017-07-04 16:11:08 +01001241
Thomas Daviesce7272d2017-07-04 16:11:08 +01001242const aom_cdf_prob default_palette_uv_color_index_cdf
1243 [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = {
1244 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001245 { AOM_CDF2(29824), 0, 0, 0, 0, 0, 0 },
1246 { AOM_CDF2(16384), 0, 0, 0, 0, 0, 0 },
1247 { AOM_CDF2(8832), 0, 0, 0, 0, 0, 0 },
1248 { AOM_CDF2(30720), 0, 0, 0, 0, 0, 0 },
1249 { AOM_CDF2(31744), 0, 0, 0, 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001250 },
1251 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001252 { AOM_CDF3(27648, 30208), 0, 0, 0, 0, 0 },
1253 { AOM_CDF3(14080, 26563), 0, 0, 0, 0, 0 },
1254 { AOM_CDF3(5120, 30932), 0, 0, 0, 0, 0 },
1255 { AOM_CDF3(24448, 27828), 0, 0, 0, 0, 0 },
1256 { AOM_CDF3(31616, 32219), 0, 0, 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001257 },
1258 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001259 { AOM_CDF4(25856, 28259, 30584), 0, 0, 0, 0 },
1260 { AOM_CDF4(11520, 22476, 27944), 0, 0, 0, 0 },
1261 { AOM_CDF4(8064, 26882, 30308), 0, 0, 0, 0 },
1262 { AOM_CDF4(19455, 23823, 29134), 0, 0, 0, 0 },
1263 { AOM_CDF4(30848, 31501, 32174), 0, 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001264 },
1265 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001266 { AOM_CDF5(26751, 28020, 29541, 31230), 0, 0, 0 },
1267 { AOM_CDF5(12032, 26045, 30772, 31497), 0, 0, 0 },
1268 { AOM_CDF5(1280, 32153, 32458, 32560), 0, 0, 0 },
1269 { AOM_CDF5(23424, 24154, 29201, 29856), 0, 0, 0 },
1270 { AOM_CDF5(32256, 32402, 32561, 32682), 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001271 },
1272 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001273 { AOM_CDF6(24576, 26720, 28114, 28950, 31694), 0, 0 },
1274 { AOM_CDF6(7551, 16613, 20462, 25269, 29077), 0, 0 },
1275 { AOM_CDF6(6272, 23039, 25623, 28163, 30861), 0, 0 },
1276 { AOM_CDF6(17024, 18808, 20771, 27941, 29845), 0, 0 },
1277 { AOM_CDF6(31616, 31936, 32079, 32321, 32546), 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001278 },
1279 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001280 { AOM_CDF7(23296, 25590, 27833, 29337, 29954, 31229), 0 },
1281 { AOM_CDF7(7552, 13659, 16570, 21695, 24506, 27701), 0 },
1282 { AOM_CDF7(6911, 24788, 26284, 27753, 29575, 30872), 0 },
1283 { AOM_CDF7(17535, 22236, 24457, 26242, 27363, 30191), 0 },
1284 { AOM_CDF7(30592, 31289, 31745, 31921, 32149, 32321), 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001285 },
1286 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001287 { AOM_CDF8(22016, 24242, 25141, 27137, 27797, 29331, 30848) },
1288 { AOM_CDF8(8063, 13564, 16940, 21948, 24568, 25689, 26989) },
1289 { AOM_CDF8(6528, 27028, 27835, 28741, 30031, 31795, 32285) },
1290 { AOM_CDF8(18047, 23797, 25444, 26274, 27111, 27929, 30367) },
1291 { AOM_CDF8(30208, 30628, 31046, 31658, 31762, 32367, 32469) },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001292 }
1293 };
Sarah Parker5c6744b2017-08-25 17:27:45 -07001294#if CONFIG_MRC_TX
1295// TODO(sarahparker) Tune these cdfs
1296const aom_cdf_prob default_mrc_mask_intra_cdf
1297 [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = {
1298 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001299 { AOM_CDF2(29568), 0, 0, 0, 0, 0, 0 },
1300 { AOM_CDF2(16384), 0, 0, 0, 0, 0, 0 },
1301 { AOM_CDF2(8832), 0, 0, 0, 0, 0, 0 },
1302 { AOM_CDF2(28672), 0, 0, 0, 0, 0, 0 },
1303 { AOM_CDF2(31872), 0, 0, 0, 0, 0, 0 },
Sarah Parker5c6744b2017-08-25 17:27:45 -07001304 },
1305 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001306 { AOM_CDF3(28032, 30326), 0, 0, 0, 0, 0 },
1307 { AOM_CDF3(11647, 27405), 0, 0, 0, 0, 0 },
1308 { AOM_CDF3(4352, 30659), 0, 0, 0, 0, 0 },
1309 { AOM_CDF3(23552, 27800), 0, 0, 0, 0, 0 },
1310 { AOM_CDF3(32256, 32504), 0, 0, 0, 0, 0 },
Sarah Parker5c6744b2017-08-25 17:27:45 -07001311 },
1312 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001313 { AOM_CDF4(26112, 28374, 30039), 0, 0, 0, 0 },
1314 { AOM_CDF4(9472, 22576, 27712), 0, 0, 0, 0 },
1315 { AOM_CDF4(6656, 26138, 29608), 0, 0, 0, 0 },
1316 { AOM_CDF4(19328, 23791, 28946), 0, 0, 0, 0 },
1317 { AOM_CDF4(31744, 31984, 32336), 0, 0, 0, 0 },
Sarah Parker5c6744b2017-08-25 17:27:45 -07001318 },
1319 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001320 { AOM_CDF5(27904, 29215, 30075, 31190), 0, 0, 0 },
1321 { AOM_CDF5(9728, 22598, 26134, 29425), 0, 0, 0 },
1322 { AOM_CDF5(2688, 30066, 31058, 31933), 0, 0, 0 },
1323 { AOM_CDF5(22015, 25039, 27726, 29932), 0, 0, 0 },
1324 { AOM_CDF5(32383, 32482, 32554, 32660), 0, 0, 0 },
Sarah Parker5c6744b2017-08-25 17:27:45 -07001325 },
1326 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001327 { AOM_CDF6(24319, 26299, 27486, 28600, 29804), 0, 0 },
1328 { AOM_CDF6(7935, 18217, 21116, 25440, 28589), 0, 0 },
1329 { AOM_CDF6(6656, 25016, 27105, 28698, 30399), 0, 0 },
1330 { AOM_CDF6(19967, 24117, 26550, 28566, 30224), 0, 0 },
1331 { AOM_CDF6(31359, 31607, 31775, 31977, 32258), 0, 0 },
Sarah Parker5c6744b2017-08-25 17:27:45 -07001332 },
1333 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001334 { AOM_CDF7(26368, 27768, 28588, 29274, 29997, 30917), 0 },
1335 { AOM_CDF7(8960, 18260, 20810, 23986, 26627, 28882), 0 },
1336 { AOM_CDF7(7295, 24111, 25836, 27515, 29033, 30769), 0 },
1337 { AOM_CDF7(22016, 25208, 27305, 28159, 29221, 30274), 0 },
1338 { AOM_CDF7(31744, 31932, 32050, 32199, 32335, 32521), 0 },
Sarah Parker5c6744b2017-08-25 17:27:45 -07001339 },
1340 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001341 { AOM_CDF8(26624, 27872, 28599, 29153, 29633, 30172, 30841) },
1342 { AOM_CDF8(6655, 17569, 19587, 23345, 25884, 28088, 29678) },
1343 { AOM_CDF8(3584, 27296, 28429, 29158, 30032, 30780, 31572) },
1344 { AOM_CDF8(23551, 25855, 27070, 27893, 28597, 29721, 30970) },
1345 { AOM_CDF8(32128, 32173, 32245, 32337, 32416, 32500, 32609) },
Sarah Parker5c6744b2017-08-25 17:27:45 -07001346 },
1347 };
1348
1349const aom_cdf_prob default_mrc_mask_inter_cdf
1350 [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = {
1351 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001352 { AOM_CDF2(29568), 0, 0, 0, 0, 0, 0 },
1353 { AOM_CDF2(16384), 0, 0, 0, 0, 0, 0 },
1354 { AOM_CDF2(8832), 0, 0, 0, 0, 0, 0 },
1355 { AOM_CDF2(28672), 0, 0, 0, 0, 0, 0 },
1356 { AOM_CDF2(31872), 0, 0, 0, 0, 0, 0 },
Sarah Parker5c6744b2017-08-25 17:27:45 -07001357 },
1358 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001359 { AOM_CDF3(28032, 30326), 0, 0, 0, 0, 0 },
1360 { AOM_CDF3(11647, 27405), 0, 0, 0, 0, 0 },
1361 { AOM_CDF3(4352, 30659), 0, 0, 0, 0, 0 },
1362 { AOM_CDF3(23552, 27800), 0, 0, 0, 0, 0 },
1363 { AOM_CDF3(32256, 32504), 0, 0, 0, 0, 0 },
Sarah Parker5c6744b2017-08-25 17:27:45 -07001364 },
1365 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001366 { AOM_CDF4(26112, 28374, 30039), 0, 0, 0, 0 },
1367 { AOM_CDF4(9472, 22576, 27712), 0, 0, 0, 0 },
1368 { AOM_CDF4(6656, 26138, 29608), 0, 0, 0, 0 },
1369 { AOM_CDF4(19328, 23791, 28946), 0, 0, 0, 0 },
1370 { AOM_CDF4(31744, 31984, 32336), 0, 0, 0, 0 },
Sarah Parker5c6744b2017-08-25 17:27:45 -07001371 },
1372 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001373 { AOM_CDF5(27904, 29215, 30075, 31190), 0, 0, 0 },
1374 { AOM_CDF5(9728, 22598, 26134, 29425), 0, 0, 0 },
1375 { AOM_CDF5(2688, 30066, 31058, 31933), 0, 0, 0 },
1376 { AOM_CDF5(22015, 25039, 27726, 29932), 0, 0, 0 },
1377 { AOM_CDF5(32383, 32482, 32554, 32660), 0, 0, 0 },
Sarah Parker5c6744b2017-08-25 17:27:45 -07001378 },
1379 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001380 { AOM_CDF6(24319, 26299, 27486, 28600, 29804), 0, 0 },
1381 { AOM_CDF6(7935, 18217, 21116, 25440, 28589), 0, 0 },
1382 { AOM_CDF6(6656, 25016, 27105, 28698, 30399), 0, 0 },
1383 { AOM_CDF6(19967, 24117, 26550, 28566, 30224), 0, 0 },
1384 { AOM_CDF6(31359, 31607, 31775, 31977, 32258), 0, 0 },
Sarah Parker5c6744b2017-08-25 17:27:45 -07001385 },
1386 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001387 { AOM_CDF7(26368, 27768, 28588, 29274, 29997, 30917), 0 },
1388 { AOM_CDF7(8960, 18260, 20810, 23986, 26627, 28882), 0 },
1389 { AOM_CDF7(7295, 24111, 25836, 27515, 29033, 30769), 0 },
1390 { AOM_CDF7(22016, 25208, 27305, 28159, 29221, 30274), 0 },
1391 { AOM_CDF7(31744, 31932, 32050, 32199, 32335, 32521), 0 },
Sarah Parker5c6744b2017-08-25 17:27:45 -07001392 },
1393 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001394 { AOM_CDF8(26624, 27872, 28599, 29153, 29633, 30172, 30841) },
1395 { AOM_CDF8(6655, 17569, 19587, 23345, 25884, 28088, 29678) },
1396 { AOM_CDF8(3584, 27296, 28429, 29158, 30032, 30780, 31572) },
1397 { AOM_CDF8(23551, 25855, 27070, 27893, 28597, 29721, 30970) },
1398 { AOM_CDF8(32128, 32173, 32245, 32337, 32416, 32500, 32609) },
Sarah Parker5c6744b2017-08-25 17:27:45 -07001399 },
1400 };
1401#endif // CONFIG_MRC_TX
Yaowu Xuc27fc142016-08-22 16:08:15 -07001402
Hui Su6c8584f2017-09-14 15:37:02 -07001403#if CONFIG_INTRABC
Thomas Daedee82e5772017-11-06 17:27:10 -08001404static const aom_cdf_prob default_intrabc_cdf[CDF_SIZE(2)] = { AOM_CDF2(192 *
1405 128) };
Hui Su6c8584f2017-09-14 15:37:02 -07001406#endif // CONFIG_INTRABC
1407
Urvang Joshicdbe7082017-01-26 13:06:49 -08001408#define MAX_COLOR_CONTEXT_HASH 8
1409// Negative values are invalid
Urvang Joshi23a61112017-01-30 14:59:27 -08001410static const int palette_color_index_context_lookup[MAX_COLOR_CONTEXT_HASH +
1411 1] = { -1, -1, 0, -1, -1,
1412 4, 3, 2, 1 };
Urvang Joshicdbe7082017-01-26 13:06:49 -08001413
Debargha Mukherjee5cd2ab92016-09-08 15:15:17 -07001414#if CONFIG_LOOP_RESTORATION
Thomas Daedee82e5772017-11-06 17:27:10 -08001415static const aom_cdf_prob default_switchable_restore_cdf[CDF_SIZE(
1416 RESTORE_SWITCHABLE_TYPES)] = { AOM_CDF3(32 * 128, 144 * 128) };
Debargha Mukherjeeb3c43bc2017-02-01 13:09:03 -08001417
Thomas Daedee82e5772017-11-06 17:27:10 -08001418static const aom_cdf_prob default_wiener_restore_cdf[CDF_SIZE(2)] = { AOM_CDF2(
1419 64 * 128) };
Debargha Mukherjeebc732ef2017-10-12 12:40:25 -07001420
Thomas Daedee82e5772017-11-06 17:27:10 -08001421static const aom_cdf_prob default_sgrproj_restore_cdf[CDF_SIZE(2)] = { AOM_CDF2(
1422 64 * 128) };
Debargha Mukherjee5cd2ab92016-09-08 15:15:17 -07001423#endif // CONFIG_LOOP_RESTORATION
1424
Urvang Joshi23a61112017-01-30 14:59:27 -08001425#define NUM_PALETTE_NEIGHBORS 3 // left, top-left and top.
1426int av1_get_palette_color_index_context(const uint8_t *color_map, int stride,
1427 int r, int c, int palette_size,
1428 uint8_t *color_order, int *color_idx) {
Urvang Joshi4f4b68e2016-10-24 17:11:10 -07001429 int i;
1430 // The +10 below should not be needed. But we get a warning "array subscript
1431 // is above array bounds [-Werror=array-bounds]" without it, possibly due to
1432 // this (or similar) bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59124
Yaowu Xuc27fc142016-08-22 16:08:15 -07001433 int scores[PALETTE_MAX_SIZE + 10];
Urvang Joshicdbe7082017-01-26 13:06:49 -08001434 const int weights[NUM_PALETTE_NEIGHBORS] = { 2, 1, 2 };
1435 const int hash_multipliers[NUM_PALETTE_NEIGHBORS] = { 1, 2, 2 };
Urvang Joshi23a61112017-01-30 14:59:27 -08001436 int color_index_ctx_hash;
1437 int color_index_ctx;
Urvang Joshicdbe7082017-01-26 13:06:49 -08001438 int color_neighbors[NUM_PALETTE_NEIGHBORS];
Urvang Joshi967ff392016-09-07 14:57:49 -07001439 int inverse_color_order[PALETTE_MAX_SIZE];
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001440 assert(palette_size <= PALETTE_MAX_SIZE);
Urvang Joshicdbe7082017-01-26 13:06:49 -08001441 assert(r > 0 || c > 0);
Yaowu Xuc27fc142016-08-22 16:08:15 -07001442
Urvang Joshi79f4fc42016-10-26 09:40:35 -07001443 // Get color indices of neighbors.
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001444 color_neighbors[0] = (c - 1 >= 0) ? color_map[r * stride + c - 1] : -1;
Urvang Joshi4f4b68e2016-10-24 17:11:10 -07001445 color_neighbors[1] =
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001446 (c - 1 >= 0 && r - 1 >= 0) ? color_map[(r - 1) * stride + c - 1] : -1;
1447 color_neighbors[2] = (r - 1 >= 0) ? color_map[(r - 1) * stride + c] : -1;
Yaowu Xuc27fc142016-08-22 16:08:15 -07001448
Urvang Joshi967ff392016-09-07 14:57:49 -07001449 for (i = 0; i < PALETTE_MAX_SIZE; ++i) {
1450 color_order[i] = i;
1451 inverse_color_order[i] = i;
1452 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001453 memset(scores, 0, PALETTE_MAX_SIZE * sizeof(scores[0]));
Urvang Joshicdbe7082017-01-26 13:06:49 -08001454 for (i = 0; i < NUM_PALETTE_NEIGHBORS; ++i) {
Urvang Joshi4f4b68e2016-10-24 17:11:10 -07001455 if (color_neighbors[i] >= 0) {
1456 scores[color_neighbors[i]] += weights[i];
1457 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001458 }
1459
Urvang Joshicdbe7082017-01-26 13:06:49 -08001460 // Get the top NUM_PALETTE_NEIGHBORS scores (sorted from large to small).
1461 for (i = 0; i < NUM_PALETTE_NEIGHBORS; ++i) {
Urvang Joshi4f4b68e2016-10-24 17:11:10 -07001462 int max = scores[i];
1463 int max_idx = i;
1464 int j;
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001465 for (j = i + 1; j < palette_size; ++j) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001466 if (scores[j] > max) {
1467 max = scores[j];
1468 max_idx = j;
1469 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001470 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001471 if (max_idx != i) {
Urvang Joshif1c06a72017-01-09 14:46:51 -08001472 // Move the score at index 'max_idx' to index 'i', and shift the scores
1473 // from 'i' to 'max_idx - 1' by 1.
1474 const int max_score = scores[max_idx];
1475 const uint8_t max_color_order = color_order[max_idx];
1476 int k;
1477 for (k = max_idx; k > i; --k) {
1478 scores[k] = scores[k - 1];
1479 color_order[k] = color_order[k - 1];
1480 inverse_color_order[color_order[k]] = k;
1481 }
1482 scores[i] = max_score;
1483 color_order[i] = max_color_order;
Urvang Joshi967ff392016-09-07 14:57:49 -07001484 inverse_color_order[color_order[i]] = i;
Yaowu Xuc27fc142016-08-22 16:08:15 -07001485 }
1486 }
1487
Urvang Joshi79f4fc42016-10-26 09:40:35 -07001488 // Get hash value of context.
Urvang Joshi23a61112017-01-30 14:59:27 -08001489 color_index_ctx_hash = 0;
Urvang Joshicdbe7082017-01-26 13:06:49 -08001490 for (i = 0; i < NUM_PALETTE_NEIGHBORS; ++i) {
Urvang Joshi23a61112017-01-30 14:59:27 -08001491 color_index_ctx_hash += scores[i] * hash_multipliers[i];
Urvang Joshicdbe7082017-01-26 13:06:49 -08001492 }
Urvang Joshi23a61112017-01-30 14:59:27 -08001493 assert(color_index_ctx_hash > 0);
1494 assert(color_index_ctx_hash <= MAX_COLOR_CONTEXT_HASH);
Yaowu Xuc27fc142016-08-22 16:08:15 -07001495
Urvang Joshi79f4fc42016-10-26 09:40:35 -07001496 // Lookup context from hash.
Urvang Joshi23a61112017-01-30 14:59:27 -08001497 color_index_ctx = palette_color_index_context_lookup[color_index_ctx_hash];
1498 assert(color_index_ctx >= 0);
1499 assert(color_index_ctx < PALETTE_COLOR_INDEX_CONTEXTS);
Yaowu Xuc27fc142016-08-22 16:08:15 -07001500
Urvang Joshi967ff392016-09-07 14:57:49 -07001501 if (color_idx != NULL) {
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001502 *color_idx = inverse_color_order[color_map[r * stride + c]];
Urvang Joshi967ff392016-09-07 14:57:49 -07001503 }
Urvang Joshi23a61112017-01-30 14:59:27 -08001504 return color_index_ctx;
Yaowu Xuc27fc142016-08-22 16:08:15 -07001505}
Urvang Joshicdbe7082017-01-26 13:06:49 -08001506#undef NUM_PALETTE_NEIGHBORS
1507#undef MAX_COLOR_CONTEXT_HASH
1508
Yaowu Xuf883b422016-08-30 14:01:10 -07001509static const aom_prob default_txfm_partition_probs[TXFM_PARTITION_CONTEXTS] = {
Urvang Joshi9136ab72017-07-28 14:15:49 -07001510#if CONFIG_TX64X64
Urvang Joshi886bfc72017-08-22 17:40:38 -07001511 249, 240, 223, 249, 229, 177, 250, 243, 208, 226, 187,
1512 145, 236, 204, 150, 183, 149, 125, 181, 146, 113, 128
1513#else
1514 250, 231, 212, 241, 166, 66, 241, 230, 135, 243, 154, 64, 248, 161, 63, 128
Urvang Joshi9136ab72017-07-28 14:15:49 -07001515#endif // CONFIG_TX64X64
Yaowu Xuc27fc142016-08-22 16:08:15 -07001516};
Thomas Davies985bfc32017-06-27 16:51:26 +01001517static const aom_cdf_prob
1518 default_txfm_partition_cdf[TXFM_PARTITION_CONTEXTS][CDF_SIZE(2)] = {
Urvang Joshi886bfc72017-08-22 17:40:38 -07001519#if CONFIG_TX64X64
Thomas Daedee82e5772017-11-06 17:27:10 -08001520 { AOM_CDF2(249 * 128) }, { AOM_CDF2(240 * 128) }, { AOM_CDF2(223 * 128) },
1521 { AOM_CDF2(249 * 128) }, { AOM_CDF2(229 * 128) }, { AOM_CDF2(177 * 128) },
1522 { AOM_CDF2(250 * 128) }, { AOM_CDF2(243 * 128) }, { AOM_CDF2(208 * 128) },
1523 { AOM_CDF2(226 * 128) }, { AOM_CDF2(187 * 128) }, { AOM_CDF2(145 * 128) },
1524 { AOM_CDF2(236 * 128) }, { AOM_CDF2(204 * 128) }, { AOM_CDF2(150 * 128) },
1525 { AOM_CDF2(183 * 128) }, { AOM_CDF2(149 * 128) }, { AOM_CDF2(125 * 128) },
1526 { AOM_CDF2(181 * 128) }, { AOM_CDF2(146 * 128) }, { AOM_CDF2(113 * 128) },
1527 { AOM_CDF2(128 * 128) }
Urvang Joshi886bfc72017-08-22 17:40:38 -07001528#else
Thomas Daedee82e5772017-11-06 17:27:10 -08001529 { AOM_CDF2(250 * 128) }, { AOM_CDF2(231 * 128) }, { AOM_CDF2(212 * 128) },
1530 { AOM_CDF2(241 * 128) }, { AOM_CDF2(166 * 128) }, { AOM_CDF2(66 * 128) },
1531 { AOM_CDF2(241 * 128) }, { AOM_CDF2(230 * 128) }, { AOM_CDF2(135 * 128) },
1532 { AOM_CDF2(243 * 128) }, { AOM_CDF2(154 * 128) }, { AOM_CDF2(64 * 128) },
1533 { AOM_CDF2(248 * 128) }, { AOM_CDF2(161 * 128) }, { AOM_CDF2(63 * 128) },
1534 { AOM_CDF2(128 * 128) },
Urvang Joshi9136ab72017-07-28 14:15:49 -07001535#endif // CONFIG_TX64X64
Thomas Davies985bfc32017-06-27 16:51:26 +01001536 };
Yaowu Xuc27fc142016-08-22 16:08:15 -07001537
Zoe Liuf704a1c2017-10-02 16:55:59 -07001538#if CONFIG_EXT_SKIP
1539static const aom_cdf_prob default_skip_mode_cdfs[SKIP_MODE_CONTEXTS][CDF_SIZE(
Thomas Daedee82e5772017-11-06 17:27:10 -08001540 2)] = { { AOM_CDF2(24576) }, { AOM_CDF2(16384) }, { AOM_CDF2(8192) } };
Zoe Liuf704a1c2017-10-02 16:55:59 -07001541#endif // CONFIG_EXT_SKIP
Thomas Davies61e3e372017-04-04 16:10:23 +01001542static const aom_cdf_prob default_skip_cdfs[SKIP_CONTEXTS][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001543 { AOM_CDF2(24576) }, { AOM_CDF2(16384) }, { AOM_CDF2(8192) }
Thomas Davies61e3e372017-04-04 16:10:23 +01001544};
Yaowu Xuc27fc142016-08-22 16:08:15 -07001545
Cheng Chen0a7f2f52017-10-10 15:16:09 -07001546#if CONFIG_JNT_COMP
Cheng Chen46970612017-10-24 14:53:36 -07001547static const aom_cdf_prob
1548 default_compound_idx_cdfs[COMP_INDEX_CONTEXTS][CDF_SIZE(2)] = {
1549 { AOM_ICDF(24576), AOM_ICDF(32768), 0 },
1550 { AOM_ICDF(16384), AOM_ICDF(32768), 0 },
1551 { AOM_ICDF(8192), AOM_ICDF(32768), 0 },
1552 { AOM_ICDF(24576), AOM_ICDF(32768), 0 },
1553 { AOM_ICDF(16384), AOM_ICDF(32768), 0 },
1554 { AOM_ICDF(8192), AOM_ICDF(32768), 0 },
Cheng Chen46970612017-10-24 14:53:36 -07001555 };
Cheng Chen0a7f2f52017-10-10 15:16:09 -07001556static const aom_prob default_compound_idx_probs[COMP_INDEX_CONTEXTS] = {
Cheng Chenc87b3402017-11-03 16:02:41 -07001557 192, 128, 64, 192, 128, 64
Cheng Chen0a7f2f52017-10-10 15:16:09 -07001558};
1559#endif // CONFIG_JNT_COMP
1560
hui su5db97432016-10-14 16:10:14 -07001561#if CONFIG_FILTER_INTRA
Thomas Daedee82e5772017-11-06 17:27:10 -08001562static const aom_cdf_prob default_filter_intra_mode_cdf[2][CDF_SIZE(
Yue Chenda2eefc2017-11-16 15:25:28 -08001563 FILTER_INTRA_MODES)] = { { AOM_CDF5(14259, 17304, 20463, 29377) },
1564 { AOM_CDF5(32768, 32768, 32768, 32768) } };
Yue Chen4eba69b2017-11-09 22:37:35 -08001565
1566static const aom_cdf_prob default_filter_intra_cdfs[TX_SIZES_ALL][CDF_SIZE(2)] =
1567 { { AOM_CDF2(10985) }, { AOM_CDF2(10985) }, { AOM_CDF2(16645) },
1568 { AOM_CDF2(27378) }, { AOM_CDF2(10985) }, { AOM_CDF2(10985) },
1569 { AOM_CDF2(15723) }, { AOM_CDF2(12373) }, { AOM_CDF2(27199) },
1570 { AOM_CDF2(24217) }, { AOM_CDF2(32767) }, { AOM_CDF2(32767) },
1571 { AOM_CDF2(32767) }, { AOM_CDF2(32767) } };
hui su5db97432016-10-14 16:10:14 -07001572#endif // CONFIG_FILTER_INTRA
1573
Yaowu Xuc27fc142016-08-22 16:08:15 -07001574// FIXME(someone) need real defaults here
Nathan E. Eggef627e582016-08-19 20:06:51 -04001575static const aom_prob default_segment_tree_probs[SEG_TREE_PROBS] = {
1576 128, 128, 128, 128, 128, 128, 128
Yaowu Xuc27fc142016-08-22 16:08:15 -07001577};
Nathan E. Eggef627e582016-08-19 20:06:51 -04001578// clang-format off
1579static const aom_prob default_segment_pred_probs[PREDICTION_PROBS] = {
1580 128, 128, 128
1581};
Thomas Davies00021352017-07-11 16:07:55 +01001582static const aom_cdf_prob
1583 default_segment_pred_cdf[PREDICTION_PROBS][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001584 { AOM_CDF2(128 * 128) },
1585 { AOM_CDF2(128 * 128) },
1586 { AOM_CDF2(128 * 128) }
Thomas Davies00021352017-07-11 16:07:55 +01001587};
Nathan E. Eggef627e582016-08-19 20:06:51 -04001588// clang-format on
Thomas Davies4ba27d02017-04-05 11:43:36 +01001589#if CONFIG_DUAL_FILTER
Angie Chiangaadbb022017-06-01 16:08:03 -07001590#if USE_EXTRA_FILTER
Thomas Davies4ba27d02017-04-05 11:43:36 +01001591static const aom_cdf_prob
1592 default_switchable_interp_cdf[SWITCHABLE_FILTER_CONTEXTS][CDF_SIZE(
1593 SWITCHABLE_FILTERS)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001594 { AOM_CDF4(30080, 31088, 31760) }, { AOM_CDF4(4608, 9620, 11050) },
1595 { AOM_CDF4(4352, 5240, 31880) }, { AOM_CDF4(4352, 5240, 31880) },
1596 { AOM_CDF4(19072, 23352, 28488) }, { AOM_CDF4(30080, 31088, 31760) },
1597 { AOM_CDF4(4608, 9620, 11050) }, { AOM_CDF4(4352, 5240, 31880) },
1598 { AOM_CDF4(4352, 5240, 31880) }, { AOM_CDF4(19072, 23352, 28488) },
1599 { AOM_CDF4(30080, 31088, 31760) }, { AOM_CDF4(4608, 9620, 11050) },
1600 { AOM_CDF4(4352, 5240, 31880) }, { AOM_CDF4(4352, 5240, 31880) },
1601 { AOM_CDF4(19072, 23352, 28488) }, { AOM_CDF4(30080, 31088, 31760) },
1602 { AOM_CDF4(4608, 9620, 11050) }, { AOM_CDF4(4352, 5240, 31880) },
1603 { AOM_CDF4(4352, 5240, 31880) }, { AOM_CDF4(19072, 23352, 28488) },
Thomas Davies4ba27d02017-04-05 11:43:36 +01001604 };
Angie Chiangaadbb022017-06-01 16:08:03 -07001605#else // USE_EXTRA_FILTER
1606static const aom_cdf_prob
1607 default_switchable_interp_cdf[SWITCHABLE_FILTER_CONTEXTS][CDF_SIZE(
1608 SWITCHABLE_FILTERS)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001609 { AOM_CDF3(32256, 32654) }, { AOM_CDF3(2816, 32651) },
1610 { AOM_CDF3(512, 764) }, { AOM_CDF3(30464, 31778) },
1611 { AOM_CDF3(32384, 32483) }, { AOM_CDF3(3072, 32652) },
1612 { AOM_CDF3(256, 383) }, { AOM_CDF3(25344, 26533) },
1613 { AOM_CDF3(32000, 32531) }, { AOM_CDF3(2048, 32648) },
1614 { AOM_CDF3(384, 890) }, { AOM_CDF3(28928, 31358) },
1615 { AOM_CDF3(31616, 31787) }, { AOM_CDF3(4224, 32433) },
1616 { AOM_CDF3(128, 256) }, { AOM_CDF3(17408, 18248) }
Angie Chiangaadbb022017-06-01 16:08:03 -07001617 };
1618#endif // USE_EXTRA_FILTER
1619#else // CONFIG_DUAL_FILTER
Thomas Davies1d7db722017-02-22 11:15:00 +00001620static const aom_cdf_prob
Thomas Daedee82e5772017-11-06 17:27:10 -08001621 default_switchable_interp_cdf[SWITCHABLE_FILTER_CONTEXTS]
1622 [CDF_SIZE(SWITCHABLE_FILTERS)] = {
1623 { AOM_CDF3(30080, 31781) },
1624 { AOM_CDF3(4608, 32658) },
1625 { AOM_CDF3(4352, 4685) },
1626 { AOM_CDF3(19072, 26776) },
1627 };
Angie Chiangaadbb022017-06-01 16:08:03 -07001628#endif // CONFIG_DUAL_FILTER
Thomas Davies1d7db722017-02-22 11:15:00 +00001629
1630static const aom_cdf_prob default_seg_tree_cdf[CDF_SIZE(MAX_SEGMENTS)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001631 AOM_CDF8(4096, 8192, 12288, 16384, 20480, 24576, 28672)
Thomas Davies1d7db722017-02-22 11:15:00 +00001632};
1633
Rostislav Pehlivanovf624dd52017-10-24 16:46:09 +01001634#if CONFIG_Q_SEGMENTATION
1635static const aom_cdf_prob
1636 default_q_seg_tree_cdf[Q_SEGMENT_CDF_COUNT][CDF_SIZE(MAX_SEGMENTS)] = {
1637 {
1638 AOM_CDF8(5622, 7893, 16093, 18233, 27809, 28373, 32533),
1639 },
1640 {
1641 AOM_CDF8(14274, 18230, 22557, 24935, 29980, 30851, 32344),
1642 },
1643 {
1644 AOM_CDF8(27527, 28487, 28723, 28890, 32397, 32647, 32679),
1645 },
1646 };
1647#endif
1648
Thomas Davies1d7db722017-02-22 11:15:00 +00001649static const aom_cdf_prob
Debargha Mukherjee6147b1b2017-11-08 08:31:09 -08001650 default_tx_size_cdf[MAX_TX_CATS][TX_SIZE_CONTEXTS][CDF_SIZE(MAX_TX_DEPTH +
1651 1)] = {
1652#if MAX_TX_DEPTH == 2
1653 { { AOM_CDF2(19968) }, { AOM_CDF2(24320) } },
1654 { { AOM_CDF3(12272, 30172) }, { AOM_CDF3(18677, 30848) } },
1655 { { AOM_CDF3(12986, 15180) }, { AOM_CDF3(24302, 25602) } },
Thomas Davies1d7db722017-02-22 11:15:00 +00001656#if CONFIG_TX64X64
Debargha Mukherjee6147b1b2017-11-08 08:31:09 -08001657 { { AOM_CDF3(5782, 11475) }, { AOM_CDF3(16803, 22759) } },
1658#endif // CONFIG_TX64X64
1659#elif MAX_TX_DEPTH == 3
1660 { { AOM_CDF2(19968) }, { AOM_CDF2(24320) } },
1661 { { AOM_CDF3(12272, 30172) }, { AOM_CDF3(18677, 30848) } },
1662 { { AOM_CDF4(12986, 15180, 32384) }, { AOM_CDF4(24302, 25602, 32128) } },
1663#if CONFIG_TX64X64
1664 { { AOM_CDF4(5782, 11475, 24480) }, { AOM_CDF4(16803, 22759, 28560) } },
1665#endif // CONFIG_TX64X64
1666#else
1667 { { AOM_CDF2(19968) }, { AOM_CDF2(24320) } },
1668 { { AOM_CDF3(12272, 30172) }, { AOM_CDF3(18677, 30848) } },
1669 { { AOM_CDF4(12986, 15180, 32384) }, { AOM_CDF4(24302, 25602, 32128) } },
1670#if CONFIG_TX64X64
1671 { { AOM_CDF5(5782, 11475, 24480, 32640) },
1672 { AOM_CDF5(16803, 22759, 28560, 32640) } },
1673#endif // CONFIG_TX64X64
1674#endif // MAX_TX_DEPTH == 2
Thomas Davies1d7db722017-02-22 11:15:00 +00001675 };
1676
Urvang Joshie6ca8e82017-03-15 14:57:41 -07001677static const aom_cdf_prob
1678 default_if_y_mode_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(INTRA_MODES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001679 { AOM_CDF13(7168, 10680, 13913, 16928, 20294, 22790, 24706, 26275, 28139,
1680 29751, 30563, 31468) },
1681 { AOM_CDF13(11776, 13823, 15307, 15725, 16638, 17406, 17994, 18814, 19634,
1682 21513, 22198, 22928) },
1683 { AOM_CDF13(14720, 16459, 18091, 18299, 18757, 19125, 19423, 19924, 20504,
1684 22922, 24063, 25577) },
1685 { AOM_CDF13(18944, 19925, 20908, 20998, 21017, 21072, 21084, 21121, 21159,
1686 22064, 22820, 24290) },
Urvang Joshie6ca8e82017-03-15 14:57:41 -07001687 };
1688
Luc Trudeau6e1cd782017-06-21 13:52:36 -04001689#if CONFIG_CFL
1690static const aom_cdf_prob
1691 default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(UV_INTRA_MODES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001692 { AOM_CDF14(18377, 18815, 19743, 20178, 20560, 20889, 21359, 22098, 22481,
1693 24563, 25781, 26662, 28396) },
1694 { AOM_CDF14(5350, 16837, 17066, 17360, 17692, 18778, 18969, 19206, 20291,
1695 22367, 23212, 24670, 27912) },
1696 { AOM_CDF14(6671, 6759, 17812, 17998, 18260, 18384, 19408, 20667, 20806,
1697 22760, 24142, 24875, 28072) },
1698 { AOM_CDF14(7461, 8082, 8515, 15013, 15583, 16098, 16522, 18519, 20348,
1699 22954, 24130, 25342, 26548) },
1700 { AOM_CDF14(3694, 4403, 5370, 5854, 17841, 19639, 21625, 22224, 22651,
1701 24613, 25399, 26143, 26599) },
1702 { AOM_CDF14(3700, 5651, 6112, 6541, 8929, 20623, 21213, 21640, 22214,
1703 24306, 25412, 26406, 27249) },
1704 { AOM_CDF14(4649, 4947, 7128, 7432, 9439, 9903, 21163, 21774, 22056,
1705 24426, 25403, 26324, 27128) },
1706 { AOM_CDF14(7208, 7375, 8779, 9683, 10072, 10284, 10796, 19786, 20152,
1707 22955, 24246, 25165, 26589) },
1708 { AOM_CDF14(5897, 7283, 7555, 8910, 9391, 9937, 10276, 11044, 19841,
1709 22620, 23784, 25060, 26418) },
1710 { AOM_CDF14(12171, 12718, 13885, 14348, 14925, 15394, 16108, 17075, 17583,
1711 21996, 23614, 25048, 27011) },
1712 { AOM_CDF14(10192, 11222, 12318, 12877, 13533, 14184, 14866, 15879, 16650,
1713 20419, 23265, 24295, 26596) },
1714 { AOM_CDF14(10776, 11387, 12899, 13471, 14088, 14575, 15366, 16456, 17040,
1715 20815, 22009, 24448, 26492) },
1716 { AOM_CDF14(4015, 6473, 9853, 10285, 10655, 11032, 11431, 12199, 12738,
1717 14760, 16121, 17263, 28612) },
Luc Trudeau6e1cd782017-06-21 13:52:36 -04001718 };
1719#else
Yue Chen57b8ff62017-10-10 23:37:31 -07001720#if CONFIG_FILTER_INTRA
1721static const aom_cdf_prob
1722 default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(UV_INTRA_MODES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001723 { AOM_CDF13(17902, 18828, 21117, 21487, 21924, 22484, 23588, 24669, 25177,
1724 28731, 29903, 31509) },
1725 { AOM_CDF13(9654, 23559, 23873, 24050, 24203, 24929, 25057, 25286, 26027,
1726 28172, 28716, 30913) },
1727 { AOM_CDF13(10012, 10124, 25394, 25540, 25665, 25752, 26567, 27761, 27876,
1728 29497, 30581, 31179) },
1729 { AOM_CDF13(15143, 15859, 16581, 21567, 21968, 22430, 22867, 24953, 26969,
1730 30310, 31125, 32329) },
1731 { AOM_CDF13(14063, 14416, 14921, 15022, 25164, 26720, 28661, 29083, 29277,
1732 31337, 31882, 32565) },
1733 { AOM_CDF13(12942, 14713, 15178, 15325, 16964, 27421, 27834, 28306, 28645,
1734 30804, 31322, 32387) },
1735 { AOM_CDF13(13687, 13993, 16776, 16912, 18338, 18648, 27557, 28140, 28359,
1736 30820, 31669, 32443) },
1737 { AOM_CDF13(14180, 14439, 16582, 17373, 17675, 17931, 18453, 26308, 26761,
1738 30058, 31293, 32156) },
1739 { AOM_CDF13(12480, 14300, 14838, 16085, 16434, 17023, 17426, 18313, 26041,
1740 29653, 30347, 32067) },
1741 { AOM_CDF13(17202, 18093, 19414, 19910, 20311, 20837, 21554, 22830, 23572,
1742 28770, 30259, 32145) },
1743 { AOM_CDF13(16336, 18149, 19485, 19927, 20365, 20924, 21524, 22561, 23421,
1744 28141, 30701, 32020) },
1745 { AOM_CDF13(16485, 17366, 19874, 20364, 20713, 21057, 21773, 23100, 23685,
1746 28079, 29091, 32028) },
1747 { AOM_CDF13(13638, 16789, 19763, 19903, 19995, 20201, 20405, 20861, 21174,
1748 22802, 23566, 24754) }
Yue Chen57b8ff62017-10-10 23:37:31 -07001749 };
1750#else
Urvang Joshie6ca8e82017-03-15 14:57:41 -07001751static const aom_cdf_prob
Luc Trudeaud6d9eee2017-07-12 12:36:50 -04001752 default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(UV_INTRA_MODES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001753 { AOM_CDF13(23552, 25936, 28623, 29033, 29395, 29892, 30252, 30905, 31370,
1754 31980, 32293, 32660) },
1755 { AOM_CDF13(2944, 26431, 27553, 27746, 28022, 29080, 29204, 29377, 30264,
1756 31206, 31613, 32418) },
1757 { AOM_CDF13(4352, 5120, 27952, 28117, 28473, 28759, 29563, 30864, 31051,
1758 31694, 32073, 32435) },
1759 { AOM_CDF13(17664, 20288, 21839, 26072, 26420, 26972, 27240, 28565, 30914,
1760 31694, 32083, 32591) },
1761 { AOM_CDF13(16640, 18390, 20233, 20557, 25162, 27789, 29397, 29895, 30369,
1762 31497, 32025, 32642) },
1763 { AOM_CDF13(13952, 17947, 18918, 19206, 21131, 30668, 31061, 31317, 31838,
1764 32137, 32342, 32547) },
1765 { AOM_CDF13(15872, 16990, 21479, 21732, 24134, 24854, 30296, 30887, 31163,
1766 31902, 32218, 32702) },
1767 { AOM_CDF13(16256, 17280, 23081, 24039, 24457, 24838, 25346, 30329, 30908,
1768 31746, 32206, 32639) },
1769 { AOM_CDF13(14720, 19249, 20501, 22079, 22439, 23218, 23463, 24107, 30308,
1770 31379, 31866, 32556) },
1771 { AOM_CDF13(16768, 19967, 22374, 22976, 23836, 24050, 24642, 25760, 26653,
1772 29585, 30937, 32518) },
1773 { AOM_CDF13(16768, 20751, 23026, 23591, 24299, 24516, 24981, 25876, 26806,
1774 29520, 31286, 32455) },
1775 { AOM_CDF13(17536, 20055, 22965, 23507, 24210, 24398, 25098, 26366, 27033,
1776 29674, 30689, 32530) },
1777 { AOM_CDF13(17536, 22753, 27126, 27353, 27571, 28139, 28505, 29198, 29886,
1778 30801, 31335, 32054) },
Urvang Joshie6ca8e82017-03-15 14:57:41 -07001779 };
Yue Chen57b8ff62017-10-10 23:37:31 -07001780#endif
Luc Trudeau6e1cd782017-06-21 13:52:36 -04001781#endif // CONFIG_CFL
Thomas Davies1d7db722017-02-22 11:15:00 +00001782
Alex Converse57795a42017-03-14 12:18:25 -07001783#if CONFIG_EXT_PARTITION_TYPES
Thomas Daedee82e5772017-11-06 17:27:10 -08001784static const aom_cdf_prob default_partition_cdf[PARTITION_CONTEXTS][CDF_SIZE(
1785 EXT_PARTITION_TYPES)] = {
1786 // 8x8 -> 4x4 only supports the four legacy partition types
1787 { AOM_CDF4(25472, 28949, 31052), 0, 0, 0, 0, 0, 0 },
1788 { AOM_CDF4(18816, 22250, 28783), 0, 0, 0, 0, 0, 0 },
1789 { AOM_CDF4(18944, 26126, 29188), 0, 0, 0, 0, 0, 0 },
1790 { AOM_CDF4(15488, 22508, 27077), 0, 0, 0, 0, 0, 0 },
1791 // 16x16 -> 8x8
1792 { AOM_CDF10(22272, 23768, 25043, 29996, 30495, 30994, 31419, 31844, 32343) },
1793 { AOM_CDF10(11776, 13457, 16315, 28229, 28789, 29349, 30302, 31255, 31816) },
1794 { AOM_CDF10(10496, 14802, 16136, 27127, 28563, 29999, 30444, 30889, 32324) },
1795 { AOM_CDF10(6784, 8763, 10440, 29110, 29770, 30430, 30989, 31548, 32208) },
1796 // 32x32 -> 16x16
1797 { AOM_CDF10(22656, 23801, 24702, 30721, 31103, 31485, 31785, 32085, 32467) },
1798 { AOM_CDF10(8704, 9926, 12586, 28885, 29292, 29699, 30586, 31473, 31881) },
1799 { AOM_CDF10(6656, 10685, 11566, 27857, 29200, 30543, 30837, 31131, 32474) },
1800 { AOM_CDF10(2176, 3012, 3690, 31253, 31532, 31811, 32037, 32263, 32542) },
1801 // 64x64 -> 32x32
1802 { AOM_CDF10(28416, 28705, 28926, 32258, 32354, 32450, 32523, 32596, 32693) },
1803 { AOM_CDF10(9216, 9952, 11849, 30134, 30379, 30624, 31256, 31888, 32134) },
1804 { AOM_CDF10(7424, 9008, 9528, 30664, 31192, 31720, 31893, 32066, 32594) },
1805 { AOM_CDF10(1280, 1710, 2069, 31978, 32121, 32264, 32383, 32502, 32647) },
Alex Converse57795a42017-03-14 12:18:25 -07001806#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -08001807 // 128x128 -> 64x64
1808 { AOM_CDF10(28416, 28705, 28926, 32258, 32354, 32450, 32523, 32596, 32693) },
1809 { AOM_CDF10(9216, 9952, 11849, 30134, 30379, 30624, 31256, 31888, 32134) },
1810 { AOM_CDF10(7424, 9008, 9528, 30664, 31192, 31720, 31893, 32066, 32594) },
1811 { AOM_CDF10(1280, 1710, 2069, 31978, 32121, 32264, 32383, 32502, 32647) },
Alex Converse57795a42017-03-14 12:18:25 -07001812#endif
Thomas Daedee82e5772017-11-06 17:27:10 -08001813};
Alex Converse57795a42017-03-14 12:18:25 -07001814#else
Thomas Davies1d7db722017-02-22 11:15:00 +00001815static const aom_cdf_prob
1816 default_partition_cdf[PARTITION_CONTEXTS][CDF_SIZE(PARTITION_TYPES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001817 { AOM_CDF4(25472, 28949, 31052) }, { AOM_CDF4(18816, 22250, 28783) },
1818 { AOM_CDF4(18944, 26126, 29188) }, { AOM_CDF4(15488, 22508, 27077) },
1819 { AOM_CDF4(22272, 25265, 27815) }, { AOM_CDF4(11776, 15138, 20854) },
1820 { AOM_CDF4(10496, 19109, 21777) }, { AOM_CDF4(6784, 10743, 14098) },
1821 { AOM_CDF4(22656, 24947, 26749) }, { AOM_CDF4(8704, 11148, 16469) },
1822 { AOM_CDF4(6656, 14714, 16477) }, { AOM_CDF4(2176, 3849, 5205) },
1823 { AOM_CDF4(28416, 28994, 29436) }, { AOM_CDF4(9216, 10688, 14483) },
1824 { AOM_CDF4(7424, 10592, 11632) }, { AOM_CDF4(1280, 2141, 2859) },
Alex Converse57795a42017-03-14 12:18:25 -07001825#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -08001826 { AOM_CDF4(28416, 28994, 29436) }, { AOM_CDF4(9216, 10688, 14483) },
1827 { AOM_CDF4(7424, 10592, 11632) }, { AOM_CDF4(1280, 2141, 2859) },
Alex Converse57795a42017-03-14 12:18:25 -07001828#endif
Thomas Davies1d7db722017-02-22 11:15:00 +00001829 };
Alex Converse57795a42017-03-14 12:18:25 -07001830#endif
Thomas Davies1d7db722017-02-22 11:15:00 +00001831
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001832static const aom_cdf_prob default_intra_ext_tx_cdf
1833 [EXT_TX_SETS_INTRA][EXT_TX_SIZES][INTRA_MODES][CDF_SIZE(TX_TYPES)] = {
1834 {
Sebastien Alaiwand8b93f52017-10-17 09:22:01 +02001835 // FIXME: unused zero positions, from uncoded trivial transform set
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001836 {
1837 { 0 },
1838 { 0 },
1839 { 0 },
1840 { 0 },
1841 { 0 },
1842 { 0 },
1843 { 0 },
1844 { 0 },
1845 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001846 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001847 { 0 },
1848 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001849 { 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001850 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001851 {
1852 { 0 },
1853 { 0 },
1854 { 0 },
1855 { 0 },
1856 { 0 },
1857 { 0 },
1858 { 0 },
1859 { 0 },
1860 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001861 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001862 { 0 },
1863 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001864 { 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001865 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001866 {
1867 { 0 },
1868 { 0 },
1869 { 0 },
1870 { 0 },
1871 { 0 },
1872 { 0 },
1873 { 0 },
1874 { 0 },
1875 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001876 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001877 { 0 },
1878 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001879 { 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001880 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001881 {
1882 { 0 },
1883 { 0 },
1884 { 0 },
1885 { 0 },
1886 { 0 },
1887 { 0 },
1888 { 0 },
1889 { 0 },
1890 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001891 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001892 { 0 },
1893 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001894 { 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001895 },
1896 },
1897 {
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001898 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001899 { AOM_CDF7(1024, 28800, 29048, 29296, 30164, 31466) },
1900 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1901 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1902 { AOM_CDF7(1152, 25852, 26284, 26717, 28230, 30499) },
1903 { AOM_CDF7(1024, 2016, 3938, 5860, 29404, 31086) },
1904 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1905 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1906 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1907 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1908 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001909 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1910 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001911 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001912 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001913 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001914 { AOM_CDF7(1024, 28800, 29048, 29296, 30164, 31466) },
1915 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1916 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1917 { AOM_CDF7(1152, 25852, 26284, 26717, 28230, 30499) },
1918 { AOM_CDF7(1024, 2016, 3938, 5860, 29404, 31086) },
1919 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1920 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1921 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1922 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1923 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001924 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1925 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001926 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001927 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001928 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001929 { AOM_CDF7(1024, 28800, 29048, 29296, 30164, 31466) },
1930 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1931 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1932 { AOM_CDF7(1152, 25852, 26284, 26717, 28230, 30499) },
1933 { AOM_CDF7(1024, 2016, 3938, 5860, 29404, 31086) },
1934 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1935 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1936 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1937 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1938 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001939 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1940 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001941 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001942 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001943 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001944 { AOM_CDF7(1024, 28800, 29048, 29296, 30164, 31466) },
1945 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1946 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1947 { AOM_CDF7(1152, 25852, 26284, 26717, 28230, 30499) },
1948 { AOM_CDF7(1024, 2016, 3938, 5860, 29404, 31086) },
1949 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1950 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1951 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1952 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1953 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001954 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1955 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001956 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001957 },
1958 },
1959 {
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001960 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001961 { AOM_CDF5(1024, 28800, 29792, 31280) },
1962 { AOM_CDF5(1280, 5216, 6938, 26310) },
1963 { AOM_CDF5(1280, 5216, 6938, 13396) },
1964 { AOM_CDF5(1152, 25852, 27581, 30174) },
1965 { AOM_CDF5(1024, 2016, 28924, 30846) },
1966 { AOM_CDF5(1280, 5216, 6938, 26310) },
1967 { AOM_CDF5(1280, 5216, 6938, 13396) },
1968 { AOM_CDF5(1280, 4109, 13065, 26611) },
1969 { AOM_CDF5(1280, 4109, 13065, 26611) },
1970 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001971 { AOM_CDF5(1280, 5216, 6938, 13396) },
1972 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001973 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001974 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001975 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001976 { AOM_CDF5(1024, 28800, 29792, 31280) },
1977 { AOM_CDF5(1280, 5216, 6938, 26310) },
1978 { AOM_CDF5(1280, 5216, 6938, 13396) },
1979 { AOM_CDF5(1152, 25852, 27581, 30174) },
1980 { AOM_CDF5(1024, 2016, 28924, 30846) },
1981 { AOM_CDF5(1280, 5216, 6938, 26310) },
1982 { AOM_CDF5(1280, 5216, 6938, 13396) },
1983 { AOM_CDF5(1280, 4109, 13065, 26611) },
1984 { AOM_CDF5(1280, 4109, 13065, 26611) },
1985 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001986 { AOM_CDF5(1280, 5216, 6938, 13396) },
1987 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001988 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001989 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001990 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001991 { AOM_CDF5(1024, 28800, 29792, 31280) },
1992 { AOM_CDF5(1280, 5216, 6938, 26310) },
1993 { AOM_CDF5(1280, 5216, 6938, 13396) },
1994 { AOM_CDF5(1152, 25852, 27581, 30174) },
1995 { AOM_CDF5(1024, 2016, 28924, 30846) },
1996 { AOM_CDF5(1280, 5216, 6938, 26310) },
1997 { AOM_CDF5(1280, 5216, 6938, 13396) },
1998 { AOM_CDF5(1280, 4109, 13065, 26611) },
1999 { AOM_CDF5(1280, 4109, 13065, 26611) },
2000 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08002001 { AOM_CDF5(1280, 5216, 6938, 13396) },
2002 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08002003 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002004 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07002005 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002006 { AOM_CDF5(1024, 28800, 29792, 31280) },
2007 { AOM_CDF5(1280, 5216, 6938, 26310) },
2008 { AOM_CDF5(1280, 5216, 6938, 13396) },
2009 { AOM_CDF5(1152, 25852, 27581, 30174) },
2010 { AOM_CDF5(1024, 2016, 28924, 30846) },
2011 { AOM_CDF5(1280, 5216, 6938, 26310) },
2012 { AOM_CDF5(1280, 5216, 6938, 13396) },
2013 { AOM_CDF5(1280, 4109, 13065, 26611) },
2014 { AOM_CDF5(1280, 4109, 13065, 26611) },
2015 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08002016 { AOM_CDF5(1280, 5216, 6938, 13396) },
2017 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08002018 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002019 },
Sarah Parker53f93db2017-07-11 17:20:04 -07002020 },
2021#if CONFIG_MRC_TX
2022 {
2023 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002024 { AOM_CDF2(1024) },
2025 { AOM_CDF2(1280) },
2026 { AOM_CDF2(1280) },
2027 { AOM_CDF2(1152) },
2028 { AOM_CDF2(1024) },
2029 { AOM_CDF2(1280) },
2030 { AOM_CDF2(1280) },
2031 { AOM_CDF2(1280) },
2032 { AOM_CDF2(1280) },
2033 { AOM_CDF2(1280) },
Thomas Daedee82e5772017-11-06 17:27:10 -08002034 { AOM_CDF2(1280) },
2035 { AOM_CDF2(1280) },
Thomas Daedee82e5772017-11-06 17:27:10 -08002036 { AOM_CDF2(1280) },
Sarah Parker53f93db2017-07-11 17:20:04 -07002037 },
2038 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002039 { AOM_CDF2(1024) },
2040 { AOM_CDF2(1280) },
2041 { AOM_CDF2(1280) },
2042 { AOM_CDF2(1152) },
2043 { AOM_CDF2(1024) },
2044 { AOM_CDF2(1280) },
2045 { AOM_CDF2(1280) },
2046 { AOM_CDF2(1280) },
2047 { AOM_CDF2(1280) },
2048 { AOM_CDF2(1280) },
Thomas Daedee82e5772017-11-06 17:27:10 -08002049 { AOM_CDF2(1280) },
2050 { AOM_CDF2(1280) },
Thomas Daedee82e5772017-11-06 17:27:10 -08002051 { AOM_CDF2(1280) },
Sarah Parker53f93db2017-07-11 17:20:04 -07002052 },
2053 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002054 { AOM_CDF2(1024) },
2055 { AOM_CDF2(1280) },
2056 { AOM_CDF2(1280) },
2057 { AOM_CDF2(1152) },
2058 { AOM_CDF2(1024) },
2059 { AOM_CDF2(1280) },
2060 { AOM_CDF2(1280) },
2061 { AOM_CDF2(1280) },
2062 { AOM_CDF2(1280) },
2063 { AOM_CDF2(1280) },
Thomas Daedee82e5772017-11-06 17:27:10 -08002064 { AOM_CDF2(1280) },
2065 { AOM_CDF2(1280) },
Thomas Daedee82e5772017-11-06 17:27:10 -08002066 { AOM_CDF2(1280) },
Sarah Parker53f93db2017-07-11 17:20:04 -07002067 },
2068 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002069 { AOM_CDF2(1024) },
2070 { AOM_CDF2(1280) },
2071 { AOM_CDF2(1280) },
2072 { AOM_CDF2(1152) },
2073 { AOM_CDF2(1024) },
2074 { AOM_CDF2(1280) },
2075 { AOM_CDF2(1280) },
2076 { AOM_CDF2(1280) },
2077 { AOM_CDF2(1280) },
2078 { AOM_CDF2(1280) },
Thomas Daedee82e5772017-11-06 17:27:10 -08002079 { AOM_CDF2(1280) },
2080 { AOM_CDF2(1280) },
Thomas Daedee82e5772017-11-06 17:27:10 -08002081 { AOM_CDF2(1280) },
Sarah Parker53f93db2017-07-11 17:20:04 -07002082 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002083 }
Sarah Parker53f93db2017-07-11 17:20:04 -07002084#endif // CONFIG_MRC_TX
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002085 };
2086static const aom_cdf_prob
2087 default_inter_ext_tx_cdf[EXT_TX_SETS_INTER][EXT_TX_SIZES][CDF_SIZE(
2088 TX_TYPES)] = {
Sebastien Alaiwand8b93f52017-10-17 09:22:01 +02002089 { { 0 }, { 0 }, { 0 }, { 0 } },
Thomas Daedee82e5772017-11-06 17:27:10 -08002090 { { AOM_CDF16(1280, 1453, 1626, 2277, 2929, 3580, 4232, 16717, 19225,
2091 21733, 24241, 26749, 28253, 29758, 31263) },
2092 { AOM_CDF16(1280, 1453, 1626, 2277, 2929, 3580, 4232, 16717, 19225,
2093 21733, 24241, 26749, 28253, 29758, 31263) },
2094 { AOM_CDF16(1280, 1453, 1626, 2277, 2929, 3580, 4232, 16717, 19225,
2095 21733, 24241, 26749, 28253, 29758, 31263) },
2096 { AOM_CDF16(1280, 1453, 1626, 2277, 2929, 3580, 4232, 16717, 19225,
2097 21733, 24241, 26749, 28253, 29758, 31263) } },
2098 { { AOM_CDF12(1280, 3125, 4970, 17132, 19575, 22018, 24461, 26904, 28370,
2099 29836, 31302) },
2100 { AOM_CDF12(1280, 3125, 4970, 17132, 19575, 22018, 24461, 26904, 28370,
2101 29836, 31302) },
2102 { AOM_CDF12(1280, 3125, 4970, 17132, 19575, 22018, 24461, 26904, 28370,
2103 29836, 31302) },
2104 { AOM_CDF12(1280, 3125, 4970, 17132, 19575, 22018, 24461, 26904, 28370,
2105 29836, 31302) } },
2106 { { AOM_CDF2(1536) },
2107 { AOM_CDF2(1536) },
2108 { AOM_CDF2(1536) },
2109 { AOM_CDF2(1536) } },
Sarah Parker53f93db2017-07-11 17:20:04 -07002110#if CONFIG_MRC_TX
Thomas Daedee82e5772017-11-06 17:27:10 -08002111 { { AOM_CDF3(30080, 31781) },
2112 { AOM_CDF3(4608, 32658) },
2113 { AOM_CDF3(4352, 4685) },
2114 { AOM_CDF3(19072, 26776) } },
Sarah Parker53f93db2017-07-11 17:20:04 -07002115#endif // CONFIG_MRC_TX
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002116 };
hui sub4e25d22017-03-09 15:32:30 -08002117
Luc Trudeauf5334002017-04-25 12:21:26 -04002118#if CONFIG_CFL
David Michael Barrf6eaa152017-07-19 19:42:28 +09002119static const aom_cdf_prob default_cfl_sign_cdf[CDF_SIZE(CFL_JOINT_SIGNS)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08002120 AOM_CDF8(1892, 2229, 11464, 14116, 25661, 26409, 32508)
Luc Trudeauf5334002017-04-25 12:21:26 -04002121};
David Michael Barrf6eaa152017-07-19 19:42:28 +09002122
2123static const aom_cdf_prob
2124 default_cfl_alpha_cdf[CFL_ALPHA_CONTEXTS][CDF_SIZE(CFL_ALPHABET_SIZE)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08002125 { AOM_CDF16(16215, 27740, 31726, 32606, 32736, 32751, 32757, 32759, 32761,
2126 32762, 32763, 32764, 32765, 32766, 32767) },
2127 { AOM_CDF16(15213, 24615, 29704, 31974, 32545, 32673, 32713, 32746, 32753,
2128 32756, 32758, 32761, 32763, 32764, 32766) },
2129 { AOM_CDF16(13250, 24677, 29113, 31666, 32408, 32578, 32628, 32711, 32730,
2130 32738, 32744, 32749, 32752, 32756, 32759) },
2131 { AOM_CDF16(24593, 30787, 32062, 32495, 32656, 32707, 32735, 32747, 32752,
2132 32757, 32760, 32763, 32764, 32765, 32767) },
2133 { AOM_CDF16(19883, 27419, 30100, 31392, 31896, 32184, 32299, 32511, 32568,
2134 32602, 32628, 32664, 32680, 32691, 32708) },
2135 { AOM_CDF16(15939, 24151, 27754, 29680, 30651, 31267, 31527, 31868, 32001,
2136 32090, 32181, 32284, 32314, 32366, 32486) }
David Michael Barrf6eaa152017-07-19 19:42:28 +09002137 };
Luc Trudeauf5334002017-04-25 12:21:26 -04002138#endif
2139
Jingning Hana45d8422017-10-05 09:57:38 -07002140#if CONFIG_KF_CTX
2141// TODO(jingning): This initial models are copied directly from the entries
2142// from the original table. The copied indexes are (0, 0), (0, 1), .. (4, 4).
2143// It is possible to re-train this model and bring back the 0.14% loss in CIF
2144// set key frame coding. This reduction in context model does not change the
2145// key frame coding stats for mid and high resolution sets.
Yue Chen4eba69b2017-11-09 22:37:35 -08002146#if CONFIG_FILTER_INTRA
2147const aom_cdf_prob
2148 default_kf_y_mode_cdf[KF_MODE_CONTEXTS][KF_MODE_CONTEXTS][CDF_SIZE(
2149 INTRA_MODES)] = {
2150 { { AOM_CDF13(13234, 14775, 17115, 18040, 18783, 19420, 20510, 22129,
2151 23183, 28738, 30120, 32138) },
2152 { AOM_CDF13(8983, 14623, 16290, 17124, 17864, 18817, 19593, 20876,
2153 22359, 27820, 29791, 31566) },
2154 { AOM_CDF13(7091, 8084, 17897, 18490, 19057, 19428, 20811, 22624, 23265,
2155 28288, 29341, 31870) },
2156 { AOM_CDF13(11191, 12808, 14120, 16182, 16785, 17440, 18159, 20280,
2157 22697, 28431, 30235, 32276) },
2158 { AOM_CDF13(8208, 9510, 11986, 12851, 15212, 16786, 19400, 22224, 23146,
2159 28889, 30200, 32375) } },
2160 { { AOM_CDF13(6308, 15986, 17454, 18110, 18739, 19867, 20479, 21575,
2161 22972, 28087, 30042, 31489) },
2162 { AOM_CDF13(3549, 21993, 22593, 22968, 23262, 24052, 24280, 24856,
2163 26026, 29057, 30818, 31543) },
2164 { AOM_CDF13(4371, 9956, 16063, 16680, 17207, 17870, 18692, 20142, 21261,
2165 26613, 28301, 30433) },
2166 { AOM_CDF13(6445, 12764, 13699, 15338, 15922, 16891, 17304, 18868,
2167 22816, 28105, 30472, 31907) },
2168 { AOM_CDF13(4300, 11014, 12466, 13258, 15028, 17584, 19170, 21448,
2169 22945, 28207, 30041, 31659) } },
2170 { { AOM_CDF13(9111, 10159, 16955, 17625, 18268, 18703, 20078, 22004,
2171 22761, 28166, 29334, 31990) },
2172 { AOM_CDF13(7107, 11104, 15591, 16340, 17066, 17802, 18721, 20303,
2173 21481, 26882, 28699, 30978) },
2174 { AOM_CDF13(4546, 4935, 22442, 22717, 22960, 23087, 24171, 25671, 25939,
2175 29333, 29866, 32023) },
2176 { AOM_CDF13(8332, 9555, 12646, 14689, 15340, 15873, 16872, 19939, 21942,
2177 27812, 29508, 31923) },
2178 { AOM_CDF13(6413, 7233, 13108, 13895, 15332, 16187, 19121, 22694, 23365,
2179 28639, 29686, 32187) } },
2180 { { AOM_CDF13(9584, 11586, 12990, 15322, 15927, 16732, 17406, 19225,
2181 22484, 28555, 30321, 32279) },
2182 { AOM_CDF13(5907, 11662, 12625, 14955, 15491, 16403, 16865, 18074,
2183 23261, 28508, 30584, 32057) },
2184 { AOM_CDF13(5759, 7323, 12581, 14779, 15363, 15946, 16851, 19330, 21902,
2185 27860, 29214, 31747) },
2186 { AOM_CDF13(7166, 8714, 9430, 14479, 14672, 14953, 15184, 17239, 24798,
2187 29350, 31021, 32371) },
2188 { AOM_CDF13(6318, 8140, 9595, 12354, 13754, 15324, 16681, 19701, 22723,
2189 28616, 30226, 32279) } },
2190 { { AOM_CDF13(8669, 9875, 12300, 13093, 15518, 17458, 19843, 22083, 22927,
2191 28780, 30271, 32364) },
2192 { AOM_CDF13(6600, 10422, 12153, 12937, 15218, 18211, 19914, 21744,
2193 22975, 28393, 30393, 31970) },
2194 { AOM_CDF13(5512, 6207, 14265, 14897, 16246, 17175, 19865, 22553, 23178,
2195 28445, 29511, 31980) },
2196 { AOM_CDF13(8195, 9407, 10830, 13261, 14443, 15761, 16922, 20311, 22151,
2197 28230, 30109, 32220) },
2198 { AOM_CDF13(5612, 6462, 8166, 8737, 14316, 17802, 21788, 25554, 26080,
2199 30083, 30983, 32457) } }
2200 };
2201#else
Jingning Hana45d8422017-10-05 09:57:38 -07002202const aom_cdf_prob
2203 default_kf_y_mode_cdf[KF_MODE_CONTEXTS][KF_MODE_CONTEXTS][CDF_SIZE(
2204 INTRA_MODES)] = {
2205 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002206 { AOM_CDF13(14208, 17049, 20482, 21400, 22520, 23261, 23963, 25010,
2207 25828, 28398, 29394, 30738) },
2208 { AOM_CDF13(10496, 18295, 19872, 20945, 21933, 22818, 23334, 24033,
2209 24996, 27652, 29060, 30071) },
2210 { AOM_CDF13(5120, 6461, 19840, 20310, 21151, 21506, 22535, 23900,
2211 24281, 26958, 27680, 29636) },
2212 { AOM_CDF13(12544, 15177, 17666, 19855, 21147, 22017, 22797, 24514,
2213 25779, 28716, 29772, 31267) },
2214 { AOM_CDF13(7552, 9909, 11908, 13141, 18765, 22029, 23872, 24920,
2215 25674, 29031, 30244, 31684) },
Jingning Hana45d8422017-10-05 09:57:38 -07002216 },
2217 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002218 { AOM_CDF13(3968, 17613, 19125, 19550, 20305, 21908, 22274, 22719,
2219 23959, 26970, 29013, 29843) },
2220 { AOM_CDF13(3072, 21231, 21863, 22306, 22674, 23414, 23517, 23798,
2221 24770, 27032, 29016, 29636) },
2222 { AOM_CDF13(2560, 9825, 15681, 16370, 17054, 17687, 18236, 19273,
2223 20311, 24863, 26825, 28756) },
2224 { AOM_CDF13(6912, 15140, 16485, 18364, 19181, 20394, 20663, 22098,
2225 23936, 27555, 29704, 30849) },
2226 { AOM_CDF13(2944, 13101, 14006, 14974, 17818, 21093, 21930, 22566,
2227 24137, 27732, 29814, 30904) },
Jingning Hana45d8422017-10-05 09:57:38 -07002228 },
2229 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002230 { AOM_CDF13(11392, 12961, 20901, 21544, 22490, 22928, 23888, 25214,
2231 25777, 28256, 29102, 30513) },
2232 { AOM_CDF13(8064, 13595, 18888, 19616, 20765, 21454, 21990, 23103,
2233 23980, 26772, 28070, 29197) },
2234 { AOM_CDF13(4352, 5059, 21705, 22099, 22703, 22846, 23679, 25469,
2235 25728, 27919, 28484, 30215) },
2236 { AOM_CDF13(10752, 12277, 16471, 18276, 19443, 19917, 21158, 23881,
2237 24892, 27709, 28771, 30274) },
2238 { AOM_CDF13(8320, 10000, 14147, 15330, 19197, 20923, 22954, 24541,
2239 25285, 28407, 29431, 30953) },
Jingning Hana45d8422017-10-05 09:57:38 -07002240 },
2241 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002242 { AOM_CDF13(10240, 12819, 15545, 18248, 19779, 20932, 21899, 23377,
2243 25448, 28730, 29936, 31536) },
2244 { AOM_CDF13(7552, 15309, 16645, 19760, 20653, 21650, 22221, 23273,
2245 25509, 28683, 30153, 31192) },
2246 { AOM_CDF13(5248, 6840, 16129, 17940, 19069, 19660, 20588, 22760,
2247 23927, 27538, 28397, 30725) },
2248 { AOM_CDF13(11008, 11903, 13794, 21320, 21931, 22310, 22546, 25375,
2249 27347, 29800, 30761, 31833) },
2250 { AOM_CDF13(6272, 8678, 10313, 13073, 16823, 19980, 21520, 23242,
2251 25344, 28797, 30405, 31940) },
Jingning Hana45d8422017-10-05 09:57:38 -07002252 },
2253 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002254 { AOM_CDF13(7296, 9304, 11772, 12529, 18014, 20418, 23076, 24662,
2255 25549, 29074, 30392, 31773) },
2256 { AOM_CDF13(7168, 11687, 13541, 14431, 18214, 20761, 22269, 23320,
2257 24633, 28339, 30193, 31268) },
2258 { AOM_CDF13(3584, 4428, 13496, 14189, 17372, 18617, 20609, 22615,
2259 23270, 27280, 28305, 30602) },
2260 { AOM_CDF13(7424, 8834, 10499, 14357, 17671, 19150, 20460, 23235,
2261 24391, 28351, 29843, 31481) },
2262 { AOM_CDF13(4480, 5888, 7093, 7902, 18290, 22123, 24511, 25532, 26360,
2263 29653, 30954, 32215) },
Jingning Hana45d8422017-10-05 09:57:38 -07002264 },
2265 };
Yue Chen4eba69b2017-11-09 22:37:35 -08002266#endif
Jingning Hana45d8422017-10-05 09:57:38 -07002267#else
Yue Chen63ce36f2017-10-10 23:37:31 -07002268const aom_cdf_prob
2269 default_kf_y_mode_cdf[INTRA_MODES][INTRA_MODES][CDF_SIZE(INTRA_MODES)] = {
Yue Chen63ce36f2017-10-10 23:37:31 -07002270#if CONFIG_FILTER_INTRA
Thomas Daedee82e5772017-11-06 17:27:10 -08002271 { { AOM_CDF13(14683, 16164, 18655, 19530, 20058, 20712, 21844, 23569,
2272 24762, 29323, 30502, 32305) },
2273 { AOM_CDF13(12656, 20348, 21294, 21804, 22202, 23095, 23587, 24461,
2274 25907, 29190, 30652, 31811) },
2275 { AOM_CDF13(9503, 9951, 23007, 23314, 23541, 23705, 24951, 26524, 26849,
2276 29605, 30141, 31999) },
2277 { AOM_CDF13(13260, 14061, 15139, 17906, 18255, 18765, 19485, 22590,
2278 24686, 29535, 30788, 32556) },
2279 { AOM_CDF13(9636, 10707, 11584, 12180, 19805, 22417, 24821, 25934,
2280 26829, 30447, 31325, 32571) },
2281 { AOM_CDF13(11503, 14182, 15005, 15716, 17312, 22822, 23813, 24939,
2282 26485, 30176, 31386, 32491) },
2283 { AOM_CDF13(10780, 11415, 14363, 14834, 16619, 17205, 23514, 24954,
2284 25580, 29808, 30651, 32535) },
2285 { AOM_CDF13(10987, 11732, 14421, 15496, 15957, 16409, 17580, 23241,
2286 24331, 29195, 30353, 32508) },
2287 { AOM_CDF13(12508, 14242, 15162, 16631, 17071, 17984, 18776, 20784,
2288 24151, 29108, 30867, 32444) },
2289 { AOM_CDF13(12829, 14161, 16064, 16898, 17478, 18230, 19432, 21587,
2290 22866, 28544, 30194, 32428) },
2291 { AOM_CDF13(12573, 14467, 16431, 17241, 17858, 18791, 19760, 21697,
2292 22982, 28322, 30394, 32214) },
2293 { AOM_CDF13(12584, 13813, 16632, 17412, 17891, 18453, 19775, 21906,
2294 22973, 28492, 29852, 32414) },
2295 { AOM_CDF13(10371, 13033, 17420, 17894, 18176, 18567, 19210, 20319,
2296 21090, 24048, 25125, 26632) } },
2297 { { AOM_CDF13(9051, 21642, 22328, 22666, 22990, 24191, 24466, 25094,
2298 26458, 29094, 30542, 31304) },
2299 { AOM_CDF13(5783, 26271, 26458, 26655, 26792, 27507, 27595, 27910,
2300 29012, 30270, 31322, 31740) },
2301 { AOM_CDF13(9084, 14570, 20536, 20922, 21174, 21685, 22190, 23274,
2302 24293, 26854, 27998, 29451) },
2303 { AOM_CDF13(9162, 15547, 16132, 18428, 19036, 19961, 20253, 22111,
2304 25468, 28977, 31151, 32108) },
2305 { AOM_CDF13(6626, 15650, 16281, 16696, 20419, 23826, 24669, 25188,
2306 26709, 29561, 31203, 31811) },
2307 { AOM_CDF13(5946, 17790, 18063, 18339, 19049, 25701, 25942, 26289,
2308 28224, 30501, 31732, 32192) },
2309 { AOM_CDF13(8247, 15710, 16700, 17083, 18600, 19891, 23303, 24149,
2310 25418, 28745, 30205, 31229) },
2311 { AOM_CDF13(7414, 14790, 16103, 17056, 17437, 18332, 18797, 23279,
2312 25024, 28630, 30385, 31627) },
2313 { AOM_CDF13(7886, 17142, 17377, 18228, 18517, 19566, 19789, 20477,
2314 26467, 29451, 31424, 32074) },
2315 { AOM_CDF13(8251, 19430, 19998, 20426, 20782, 22155, 22488, 23281,
2316 25037, 28791, 30593, 31614) },
2317 { AOM_CDF13(8042, 19117, 19777, 20139, 20462, 21878, 22212, 23083,
2318 24811, 28090, 30592, 31308) },
2319 { AOM_CDF13(8268, 19518, 20406, 20756, 21064, 22108, 22552, 23405,
2320 25111, 28731, 30343, 31534) },
2321 { AOM_CDF13(6521, 21472, 22603, 22915, 23041, 23480, 23618, 24110,
2322 25099, 26516, 27883, 28449) } },
2323 { { AOM_CDF13(12527, 13076, 21835, 22214, 22492, 22728, 23978, 25665,
2324 26165, 29466, 30247, 32239) },
2325 { AOM_CDF13(12377, 16820, 21011, 21631, 21960, 22438, 23031, 24350,
2326 25400, 28539, 29714, 31154) },
2327 { AOM_CDF13(6712, 6862, 26853, 26972, 27060, 27103, 27826, 29143, 29267,
2328 30799, 31064, 32294) },
2329 { AOM_CDF13(11320, 11776, 15386, 17447, 17768, 18066, 18973, 23664,
2330 25022, 29029, 30158, 32267) },
2331 { AOM_CDF13(10773, 11905, 15020, 15656, 20247, 21640, 24465, 25777,
2332 26419, 29685, 30762, 32481) },
2333 { AOM_CDF13(12323, 14046, 17449, 18101, 19214, 22210, 23345, 24975,
2334 26412, 29729, 30931, 32336) },
2335 { AOM_CDF13(9944, 10198, 17726, 18052, 18893, 19155, 25498, 26898,
2336 27176, 30160, 30652, 32510) },
2337 { AOM_CDF13(8721, 8970, 16785, 17446, 17649, 17826, 18746, 25927, 26396,
2338 29702, 30461, 32528) },
2339 { AOM_CDF13(11404, 12417, 15834, 17066, 17441, 18014, 18966, 21819,
2340 24083, 29077, 30376, 32213) },
2341 { AOM_CDF13(11450, 11958, 18297, 18820, 19165, 19479, 20809, 23280,
2342 23916, 28662, 29933, 32364) },
2343 { AOM_CDF13(10920, 11607, 17980, 18561, 18921, 19301, 20390, 22706,
2344 23413, 28156, 30004, 31872) },
2345 { AOM_CDF13(11462, 11962, 19642, 20131, 20369, 20530, 21898, 24152,
2346 24686, 28899, 29656, 32424) },
2347 { AOM_CDF13(8171, 9219, 21810, 22146, 22350, 22480, 22930, 24054, 24405,
2348 26437, 27109, 28397) } },
2349 { { AOM_CDF13(12474, 13429, 14740, 17535, 18021, 18752, 19551, 22163,
2350 24563, 29410, 30687, 32505) },
2351 { AOM_CDF13(9862, 15025, 15766, 18942, 19321, 20031, 20492, 21747,
2352 25671, 29272, 30926, 32270) },
2353 { AOM_CDF13(8764, 9426, 17676, 19605, 19945, 20174, 21106, 24312, 25470,
2354 29242, 30066, 31831) },
2355 { AOM_CDF13(8566, 9030, 9692, 18683, 18787, 18968, 19155, 23451, 26278,
2356 30299, 31208, 32537) },
2357 { AOM_CDF13(7535, 8616, 9353, 13056, 18938, 21199, 22627, 23971, 26022,
2358 30131, 31243, 32618) },
2359 { AOM_CDF13(9138, 11001, 11570, 14638, 16000, 20926, 21803, 23237,
2360 26287, 30063, 31128, 32599) },
2361 { AOM_CDF13(9729, 10184, 11919, 13759, 15439, 16099, 20564, 22949,
2362 24424, 29313, 30373, 32518) },
2363 { AOM_CDF13(8615, 9090, 10462, 14832, 15157, 15466, 16143, 22773, 24815,
2364 29574, 30593, 32635) },
2365 { AOM_CDF13(9258, 10308, 10884, 15905, 16092, 16466, 16802, 19277,
2366 25235, 29804, 31328, 32508) },
2367 { AOM_CDF13(10403, 11313, 12386, 15442, 15884, 16549, 17269, 20362,
2368 22913, 28783, 30284, 32578) },
2369 { AOM_CDF13(9620, 10894, 11874, 14923, 15398, 16326, 17076, 20069,
2370 23137, 28656, 30608, 32331) },
2371 { AOM_CDF13(10095, 10981, 12537, 15703, 16165, 16741, 17550, 20754,
2372 22975, 29162, 30500, 32582) },
2373 { AOM_CDF13(8858, 11204, 14847, 18228, 18741, 19060, 19629, 21234,
2374 24400, 27622, 29011, 30627) } },
2375 { { AOM_CDF13(9911, 10689, 11787, 12138, 19892, 22168, 24984, 26365,
2376 27052, 30676, 31618, 32577) },
2377 { AOM_CDF13(10405, 14007, 14667, 15051, 20542, 23567, 25261, 26243,
2378 27418, 30244, 31480, 32398) },
2379 { AOM_CDF13(7972, 8563, 16778, 17053, 20474, 21431, 24348, 26064, 26466,
2380 29456, 30241, 31822) },
2381 { AOM_CDF13(10502, 10858, 11637, 13369, 16831, 18528, 20122, 23814,
2382 25350, 29741, 31151, 32539) },
2383 { AOM_CDF13(4993, 5184, 5393, 5580, 25670, 27769, 29927, 30768, 31020,
2384 32139, 32371, 32721) },
2385 { AOM_CDF13(6994, 8042, 8425, 8775, 18573, 26670, 27998, 29060, 29741,
2386 31512, 32140, 32705) },
2387 { AOM_CDF13(6608, 6893, 7917, 8137, 18180, 19484, 27302, 28268, 28648,
2388 31184, 31688, 32604) },
2389 { AOM_CDF13(7758, 8381, 9673, 10202, 15951, 17361, 19451, 26253, 26891,
2390 30394, 31343, 32571) },
2391 { AOM_CDF13(9961, 11581, 12003, 12812, 17402, 19995, 21609, 23735,
2392 25957, 29973, 31339, 32560) },
2393 { AOM_CDF13(10245, 10965, 11887, 12326, 18409, 20778, 23127, 24779,
2394 25560, 30046, 31167, 32588) },
2395 { AOM_CDF13(9047, 10157, 11136, 11600, 17607, 20541, 22746, 24278,
2396 25239, 29844, 31296, 32466) },
2397 { AOM_CDF13(10318, 11227, 12470, 12792, 17742, 19600, 22120, 24346,
2398 25079, 29588, 30917, 32593) },
2399 { AOM_CDF13(8281, 10602, 15452, 15940, 19120, 20702, 22521, 23526,
2400 24236, 27829, 28776, 29973) } },
2401 { { AOM_CDF13(9850, 12693, 13536, 13937, 16080, 23341, 24177, 25258,
2402 26372, 30167, 31506, 32425) },
2403 { AOM_CDF13(8537, 15828, 16155, 16425, 17738, 25313, 25706, 26423,
2404 27642, 30290, 31795, 32372) },
2405 { AOM_CDF13(8805, 10168, 16679, 17136, 18480, 21724, 22707, 24501,
2406 25226, 28734, 29582, 31015) },
2407 { AOM_CDF13(11887, 13456, 14000, 16402, 17550, 20969, 21942, 24081,
2408 26141, 29735, 31365, 32610) },
2409 { AOM_CDF13(5462, 6783, 7085, 7427, 16960, 26746, 27970, 28609, 29343,
2410 31379, 32138, 32593) },
2411 { AOM_CDF13(4786, 7121, 7242, 7469, 9622, 28427, 28700, 29374, 30121,
2412 31764, 32356, 32637) },
2413 { AOM_CDF13(9172, 10388, 11156, 11527, 15483, 20332, 24727, 25954,
2414 26870, 30198, 31246, 32352) },
2415 { AOM_CDF13(8102, 9847, 11124, 11911, 13567, 18203, 19081, 24364, 25695,
2416 29586, 31057, 32380) },
2417 { AOM_CDF13(10488, 13506, 14020, 14824, 16307, 20899, 21549, 22906,
2418 25886, 29488, 31408, 32369) },
2419 { AOM_CDF13(9407, 11928, 12529, 12941, 14674, 20905, 21782, 23113,
2420 24351, 29073, 31009, 32410) },
2421 { AOM_CDF13(8764, 11728, 12298, 12713, 14609, 21424, 22115, 23419,
2422 24779, 29206, 31355, 32390) },
2423 { AOM_CDF13(9517, 11912, 12950, 13401, 15075, 20426, 21436, 23153,
2424 24539, 29531, 31132, 32469) },
2425 { AOM_CDF13(8253, 12956, 16212, 16664, 17756, 22714, 23216, 24249,
2426 25321, 28440, 29620, 30259) } },
2427 { { AOM_CDF13(11792, 12317, 15563, 16032, 17398, 17977, 23384, 25171,
2428 25807, 29850, 30737, 32541) },
2429 { AOM_CDF13(10922, 14049, 15834, 16386, 17629, 18873, 22496, 24451,
2430 25744, 29328, 30878, 32141) },
2431 { AOM_CDF13(8243, 8431, 19690, 19885, 20402, 20560, 25644, 27470, 27737,
2432 30291, 30701, 32380) },
2433 { AOM_CDF13(11266, 11746, 13215, 15105, 15916, 16497, 19044, 22912,
2434 24422, 29451, 30565, 32543) },
2435 { AOM_CDF13(7970, 8353, 8989, 9324, 18715, 20136, 27478, 28360, 28854,
2436 31356, 31910, 32687) },
2437 { AOM_CDF13(9835, 10905, 11896, 12507, 15383, 20329, 25102, 26520,
2438 27487, 30879, 31709, 32540) },
2439 { AOM_CDF13(6779, 6957, 9270, 9436, 11553, 11824, 27958, 28747, 29030,
2440 31268, 31664, 32666) },
2441 { AOM_CDF13(9125, 9475, 12773, 13383, 14285, 14691, 18620, 24633, 25338,
2442 29728, 30582, 32548) },
2443 { AOM_CDF13(11721, 12709, 14065, 15136, 16224, 17044, 20019, 22634,
2444 24974, 29533, 30976, 32540) },
2445 { AOM_CDF13(11134, 11581, 13908, 14421, 15715, 16407, 20884, 23365,
2446 24142, 29151, 30333, 32546) },
2447 { AOM_CDF13(10621, 11354, 13725, 14331, 15697, 16435, 20811, 23061,
2448 23916, 29068, 30630, 32382) },
2449 { AOM_CDF13(11037, 11497, 14490, 14987, 16009, 16447, 21140, 23683,
2450 24312, 28995, 30105, 32639) },
2451 { AOM_CDF13(9605, 11018, 17444, 17875, 18709, 19288, 22633, 24723,
2452 25518, 28726, 29835, 31394) } },
2453 { { AOM_CDF13(12284, 12942, 15497, 16898, 17400, 17937, 19136, 23012,
2454 24306, 29247, 30360, 32526) },
2455 { AOM_CDF13(11749, 15601, 16892, 18207, 18593, 19416, 20162, 22890,
2456 24773, 28978, 30525, 32157) },
2457 { AOM_CDF13(8357, 8590, 18591, 19354, 19529, 19661, 20764, 25434, 25938,
2458 29380, 29919, 32290) },
2459 { AOM_CDF13(9307, 9623, 10609, 15340, 15587, 15878, 16422, 22905, 25106,
2460 29604, 30579, 32561) },
2461 { AOM_CDF13(9511, 10303, 11146, 12396, 19000, 20742, 22883, 25043,
2462 26322, 30216, 31156, 32668) },
2463 { AOM_CDF13(11525, 12965, 13992, 15314, 16559, 21108, 22323, 24844,
2464 26765, 30376, 31351, 32576) },
2465 { AOM_CDF13(9919, 10382, 13106, 14128, 15212, 15741, 20216, 23213,
2466 24169, 29046, 29869, 32570) },
2467 { AOM_CDF13(8056, 8456, 10218, 11714, 12070, 12383, 12849, 26222, 27079,
2468 30222, 30828, 32606) },
2469 { AOM_CDF13(10700, 11453, 12659, 15291, 15677, 16240, 16902, 20777,
2470 24142, 29325, 30729, 32560) },
2471 { AOM_CDF13(10863, 11450, 13506, 14976, 15428, 15869, 17051, 21294,
2472 22705, 28406, 29836, 32553) },
2473 { AOM_CDF13(10357, 11196, 13312, 14910, 15380, 15977, 16957, 20978,
2474 22542, 28263, 30186, 32369) },
2475 { AOM_CDF13(10325, 10858, 13637, 15045, 15455, 15809, 17144, 21700,
2476 22936, 28610, 29747, 32558) },
2477 { AOM_CDF13(10032, 11356, 16324, 17851, 18191, 18525, 19241, 22933,
2478 24078, 27949, 29094, 31080) } },
2479 { { AOM_CDF13(11187, 13518, 14554, 16266, 16753, 17679, 18282, 19923,
2480 24195, 29274, 30823, 32442) },
2481 { AOM_CDF13(7948, 15152, 15579, 16934, 17200, 18121, 18405, 19130,
2482 26141, 29589, 31275, 32270) },
2483 { AOM_CDF13(8418, 9721, 16634, 18137, 18405, 18791, 19607, 22197, 24804,
2484 28838, 29667, 31725) },
2485 { AOM_CDF13(9661, 10767, 11231, 16796, 16918, 17285, 17685, 20433,
2486 25515, 29910, 31128, 32611) },
2487 { AOM_CDF13(7447, 9631, 10071, 11463, 16405, 18681, 19977, 21135, 25724,
2488 30089, 31371, 32429) },
2489 { AOM_CDF13(7732, 11142, 11643, 13157, 14285, 19050, 19568, 20445,
2490 26278, 30197, 31552, 32543) },
2491 { AOM_CDF13(8655, 9972, 11341, 12647, 14152, 15009, 18424, 20317, 23903,
2492 29129, 30367, 32348) },
2493 { AOM_CDF13(8905, 10161, 11295, 14376, 14751, 15334, 15861, 20676,
2494 24144, 29140, 30559, 32518) },
2495 { AOM_CDF13(7230, 9455, 9769, 12237, 12385, 12718, 12941, 14070, 26774,
2496 30020, 31689, 32544) },
2497 { AOM_CDF13(9676, 11840, 12666, 14444, 14854, 15790, 16395, 18289,
2498 23074, 28546, 30570, 32500) },
2499 { AOM_CDF13(8954, 11507, 12411, 14262, 14736, 15800, 16324, 17931,
2500 23370, 28692, 30899, 32304) },
2501 { AOM_CDF13(9604, 11709, 12728, 14391, 14817, 15784, 16426, 18627,
2502 22984, 28781, 30290, 32507) },
2503 { AOM_CDF13(8037, 12362, 14711, 16445, 16662, 17238, 17667, 18883,
2504 24405, 27873, 29300, 30676) } },
2505 { { AOM_CDF13(12742, 13944, 16005, 16901, 17483, 18249, 19462, 21457,
2506 22908, 28575, 30017, 32411) },
2507 { AOM_CDF13(11299, 16882, 17822, 18576, 19025, 20145, 20676, 21738,
2508 23779, 28608, 30479, 32163) },
2509 { AOM_CDF13(9373, 9807, 20454, 20912, 21134, 21315, 22536, 24523, 25027,
2510 28824, 29546, 31958) },
2511 { AOM_CDF13(10839, 11634, 12609, 15747, 16076, 16521, 17368, 20813,
2512 23179, 28736, 30250, 32547) },
2513 { AOM_CDF13(10018, 11043, 11846, 12631, 18703, 21106, 23223, 24327,
2514 25655, 29908, 31108, 32633) },
2515 { AOM_CDF13(10447, 12670, 13370, 14274, 15751, 20138, 21082, 22289,
2516 24356, 29308, 30721, 32473) },
2517 { AOM_CDF13(10304, 10858, 13242, 13826, 15409, 16080, 21225, 22983,
2518 23924, 29128, 30162, 32556) },
2519 { AOM_CDF13(9909, 10554, 12924, 14243, 14636, 15075, 16202, 21806,
2520 23067, 28721, 29942, 32552) },
2521 { AOM_CDF13(10896, 12565, 13376, 14948, 15378, 16154, 16898, 19033,
2522 22710, 28465, 30461, 32462) },
2523 { AOM_CDF13(11659, 12724, 14290, 15241, 15795, 16545, 17729, 20065,
2524 21669, 28045, 29829, 32507) },
2525 { AOM_CDF13(11351, 12806, 14382, 15343, 15955, 16885, 17916, 20033,
2526 21718, 28093, 30166, 32319) },
2527 { AOM_CDF13(11522, 12494, 14590, 15496, 15977, 16665, 17908, 20267,
2528 21743, 28115, 29581, 32452) },
2529 { AOM_CDF13(9913, 12241, 17367, 18136, 18433, 18985, 19700, 21136,
2530 22405, 26910, 28302, 30379) } },
2531 { { AOM_CDF13(12772, 14653, 16651, 17429, 17957, 18854, 19886, 21672,
2532 23234, 28792, 30500, 32399) },
2533 { AOM_CDF13(10718, 18074, 18913, 19509, 19880, 20951, 21443, 22467,
2534 24411, 28546, 30812, 32079) },
2535 { AOM_CDF13(8668, 9307, 20783, 21169, 21531, 21743, 22862, 24771, 25364,
2536 29059, 29920, 31878) },
2537 { AOM_CDF13(11352, 12585, 13504, 16428, 16801, 17365, 17969, 21427,
2538 23868, 29321, 30836, 32622) },
2539 { AOM_CDF13(9076, 10636, 11637, 12524, 18204, 20593, 22842, 23921,
2540 25465, 29951, 31401, 32575) },
2541 { AOM_CDF13(9924, 12861, 13519, 14327, 15700, 20596, 21434, 22592,
2542 24521, 29177, 30937, 32569) },
2543 { AOM_CDF13(9975, 10926, 13127, 13658, 15283, 16041, 21277, 23058,
2544 24139, 29093, 30305, 32527) },
2545 { AOM_CDF13(9782, 10733, 12976, 14251, 14721, 15295, 16279, 22181,
2546 23520, 29134, 30459, 32591) },
2547 { AOM_CDF13(10910, 13136, 13939, 15246, 15760, 16621, 17278, 19097,
2548 23321, 28756, 31030, 32520) },
2549 { AOM_CDF13(11508, 13079, 14662, 15543, 16088, 16964, 18013, 20126,
2550 21886, 28317, 30284, 32446) },
2551 { AOM_CDF13(11588, 13894, 15463, 16360, 16934, 17975, 18878, 20699,
2552 22408, 28392, 30519, 32360) },
2553 { AOM_CDF13(11198, 12680, 14726, 15620, 16098, 16861, 18056, 20172,
2554 21896, 28252, 29839, 32437) },
2555 { AOM_CDF13(9832, 13268, 17993, 18757, 19173, 19664, 20264, 21689,
2556 23011, 27552, 29216, 30566) } },
2557 { { AOM_CDF13(12350, 13494, 16423, 17219, 17721, 18280, 19569, 21557,
2558 22752, 28182, 29360, 32304) },
2559 { AOM_CDF13(10022, 16315, 17409, 18094, 18533, 19487, 20138, 21179,
2560 22977, 27630, 29129, 31612) },
2561 { AOM_CDF13(9089, 9522, 20772, 21117, 21321, 21492, 22623, 24717, 25118,
2562 28517, 28979, 31962) },
2563 { AOM_CDF13(9995, 10496, 11749, 15264, 15578, 15986, 16825, 20949,
2564 23073, 28353, 29869, 32482) },
2565 { AOM_CDF13(9679, 10801, 11768, 12705, 18527, 20477, 22915, 24165,
2566 25268, 29848, 30931, 32576) },
2567 { AOM_CDF13(9567, 11899, 12955, 13828, 15192, 19318, 20367, 21537,
2568 23628, 28952, 30125, 32358) },
2569 { AOM_CDF13(9977, 10470, 13391, 14019, 15325, 15830, 21218, 23133,
2570 23836, 28927, 29755, 32513) },
2571 { AOM_CDF13(9850, 10345, 13290, 14602, 14927, 15251, 16355, 22136,
2572 23237, 28655, 29584, 32430) },
2573 { AOM_CDF13(10404, 11783, 12735, 14400, 14849, 15513, 16394, 18648,
2574 22370, 28254, 30174, 32416) },
2575 { AOM_CDF13(11468, 12380, 14466, 15450, 15969, 16598, 17836, 20272,
2576 21618, 27769, 29346, 32367) },
2577 { AOM_CDF13(10553, 11978, 13832, 14829, 15388, 16214, 17380, 19633,
2578 21295, 27909, 29723, 32101) },
2579 { AOM_CDF13(11458, 12316, 15258, 16119, 16504, 16926, 18261, 20678,
2580 21757, 27964, 29206, 32426) },
2581 { AOM_CDF13(9827, 12420, 17601, 18357, 18643, 19019, 19747, 21072,
2582 22058, 25919, 27042, 29550) } },
2583 { { AOM_CDF13(9582, 13804, 16310, 16612, 16855, 17317, 17804, 18740,
2584 19414, 21959, 22938, 24178) },
2585 { AOM_CDF13(7931, 20318, 21429, 21817, 21997, 22345, 22526, 23105,
2586 23829, 25586, 26598, 27385) },
2587 { AOM_CDF13(6461, 7883, 22735, 22941, 23061, 23170, 23671, 24830, 25109,
2588 26711, 27168, 28668) },
2589 { AOM_CDF13(9870, 12532, 14896, 17822, 18219, 18649, 19079, 23162,
2590 24634, 28800, 30057, 31098) },
2591 { AOM_CDF13(8170, 13942, 15674, 16236, 20928, 22526, 24154, 25027,
2592 26567, 29246, 29882, 31110) },
2593 { AOM_CDF13(9833, 16669, 17894, 18429, 19535, 23506, 24053, 25052,
2594 26466, 29379, 30616, 31424) },
2595 { AOM_CDF13(9558, 13127, 16722, 16945, 18404, 18965, 23157, 24785,
2596 25444, 28879, 29715, 31451) },
2597 { AOM_CDF13(8656, 11218, 15859, 16851, 17205, 17565, 18231, 24622,
2598 25273, 28496, 29332, 31266) },
2599 { AOM_CDF13(9768, 14291, 15838, 16981, 17225, 18107, 18654, 20335,
2600 24118, 28540, 30170, 31448) },
2601 { AOM_CDF13(10347, 15055, 17791, 18218, 18600, 19290, 19932, 21554,
2602 22592, 26896, 28359, 30358) },
2603 { AOM_CDF13(9093, 14028, 17143, 17521, 17893, 18675, 19203, 20715,
2604 21674, 25422, 28036, 29528) },
2605 { AOM_CDF13(10719, 15009, 18593, 19033, 19256, 19708, 20387, 22033,
2606 22877, 26524, 27841, 30214) },
2607 { AOM_CDF13(6775, 10524, 14225, 14551, 14761, 14914, 15132, 16033,
2608 16477, 17963, 18795, 19673) } }
Urvang Joshie6ca8e82017-03-15 14:57:41 -07002609#else
Urvang Joshi63234542017-03-10 12:04:03 -08002610 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002611 { AOM_CDF13(14208, 17049, 20482, 21400, 22520, 23261, 23963, 25010,
2612 25828, 28398, 29394, 30738) },
2613 { AOM_CDF13(10496, 18295, 19872, 20945, 21933, 22818, 23334, 24033,
2614 24996, 27652, 29060, 30071) },
2615 { AOM_CDF13(5120, 6461, 19840, 20310, 21151, 21506, 22535, 23900,
2616 24281, 26958, 27680, 29636) },
2617 { AOM_CDF13(12544, 15177, 17666, 19855, 21147, 22017, 22797, 24514,
2618 25779, 28716, 29772, 31267) },
2619 { AOM_CDF13(7552, 9909, 11908, 13141, 18765, 22029, 23872, 24920,
2620 25674, 29031, 30244, 31684) },
2621 { AOM_CDF13(11008, 15004, 16534, 18158, 21515, 26668, 27834, 28735,
2622 30471, 30839, 30969, 31068) },
2623 { AOM_CDF13(6272, 7963, 11944, 12780, 17944, 19198, 24071, 25295,
2624 25834, 29014, 29949, 31733) },
2625 { AOM_CDF13(8192, 10189, 14596, 15680, 17143, 17909, 19201, 23711,
2626 24503, 28207, 29338, 31424) },
2627 { AOM_CDF13(10752, 13199, 15048, 17151, 18445, 19604, 20363, 21782,
2628 24311, 28026, 29517, 30962) },
2629 { AOM_CDF13(7424, 10301, 13245, 14307, 16021, 16257, 17265, 18739,
2630 20080, 26066, 28325, 31184) },
2631 { AOM_CDF13(6528, 10893, 13773, 14824, 16540, 16926, 17748, 18876,
2632 20396, 25974, 28795, 30820) },
2633 { AOM_CDF13(8704, 11005, 14320, 15349, 16746, 16884, 17887, 19304,
2634 20265, 26115, 27672, 31358) },
2635 { AOM_CDF13(6272, 9504, 15437, 16399, 17355, 17948, 18814, 20270,
2636 21134, 23690, 24759, 26454) },
Urvang Joshi63234542017-03-10 12:04:03 -08002637 },
2638 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002639 { AOM_CDF13(3968, 17613, 19125, 19550, 20305, 21908, 22274, 22719,
2640 23959, 26970, 29013, 29843) },
2641 { AOM_CDF13(3072, 21231, 21863, 22306, 22674, 23414, 23517, 23798,
2642 24770, 27032, 29016, 29636) },
2643 { AOM_CDF13(2560, 9825, 15681, 16370, 17054, 17687, 18236, 19273,
2644 20311, 24863, 26825, 28756) },
2645 { AOM_CDF13(6912, 15140, 16485, 18364, 19181, 20394, 20663, 22098,
2646 23936, 27555, 29704, 30849) },
2647 { AOM_CDF13(2944, 13101, 14006, 14974, 17818, 21093, 21930, 22566,
2648 24137, 27732, 29814, 30904) },
2649 { AOM_CDF13(4352, 17824, 18715, 19632, 21519, 26341, 26922, 27575,
2650 29863, 30432, 30769, 30881) },
2651 { AOM_CDF13(2944, 11971, 13509, 14295, 17202, 19005, 21605, 22458,
2652 23839, 27774, 29492, 30787) },
2653 { AOM_CDF13(4224, 13072, 15288, 16406, 17285, 18362, 19003, 21378,
2654 22942, 27093, 29381, 30872) },
2655 { AOM_CDF13(5120, 15375, 16188, 17415, 18183, 19756, 20030, 20883,
2656 23935, 27428, 29627, 30608) },
2657 { AOM_CDF13(2816, 14999, 16352, 16969, 17836, 18125, 18514, 19181,
2658 20650, 25773, 29172, 30662) },
2659 { AOM_CDF13(2560, 16158, 17320, 17839, 18545, 18848, 19130, 19599,
2660 20863, 25449, 29304, 30408) },
2661 { AOM_CDF13(3328, 15146, 16880, 17523, 18340, 18563, 18896, 19582,
2662 20944, 25914, 28759, 30583) },
2663 { AOM_CDF13(2560, 16618, 18460, 19207, 19654, 20276, 20529, 21179,
2664 22355, 25423, 27696, 28638) },
Urvang Joshi63234542017-03-10 12:04:03 -08002665 },
2666 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002667 { AOM_CDF13(11392, 12961, 20901, 21544, 22490, 22928, 23888, 25214,
2668 25777, 28256, 29102, 30513) },
2669 { AOM_CDF13(8064, 13595, 18888, 19616, 20765, 21454, 21990, 23103,
2670 23980, 26772, 28070, 29197) },
2671 { AOM_CDF13(4352, 5059, 21705, 22099, 22703, 22846, 23679, 25469,
2672 25728, 27919, 28484, 30215) },
2673 { AOM_CDF13(10752, 12277, 16471, 18276, 19443, 19917, 21158, 23881,
2674 24892, 27709, 28771, 30274) },
2675 { AOM_CDF13(8320, 10000, 14147, 15330, 19197, 20923, 22954, 24541,
2676 25285, 28407, 29431, 30953) },
2677 { AOM_CDF13(11264, 14751, 18517, 20285, 23172, 25970, 27312, 28684,
2678 29803, 30242, 30412, 30668) },
2679 { AOM_CDF13(6528, 7509, 14190, 14953, 17905, 18452, 23074, 24910,
2680 25374, 28605, 29542, 31640) },
2681 { AOM_CDF13(6784, 7644, 15953, 17055, 17945, 18242, 19351, 24705,
2682 25365, 28466, 29334, 31245) },
2683 { AOM_CDF13(8192, 9802, 14519, 15740, 17351, 18084, 18962, 20908,
2684 22937, 26847, 28284, 29888) },
2685 { AOM_CDF13(5888, 7534, 14635, 15436, 16710, 16830, 18000, 19760,
2686 20571, 25777, 27649, 30668) },
2687 { AOM_CDF13(5248, 7364, 14858, 15545, 16861, 17016, 17859, 19384,
2688 20237, 25239, 27715, 29865) },
2689 { AOM_CDF13(6656, 7989, 15472, 16265, 17271, 17334, 18563, 20327,
2690 20916, 26173, 27350, 31034) },
2691 { AOM_CDF13(4480, 6411, 17828, 18611, 19399, 19684, 20504, 21782,
2692 22335, 25286, 26352, 28016) },
Urvang Joshi63234542017-03-10 12:04:03 -08002693 },
2694 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002695 { AOM_CDF13(10240, 12819, 15545, 18248, 19779, 20932, 21899, 23377,
2696 25448, 28730, 29936, 31536) },
2697 { AOM_CDF13(7552, 15309, 16645, 19760, 20653, 21650, 22221, 23273,
2698 25509, 28683, 30153, 31192) },
2699 { AOM_CDF13(5248, 6840, 16129, 17940, 19069, 19660, 20588, 22760,
2700 23927, 27538, 28397, 30725) },
2701 { AOM_CDF13(11008, 11903, 13794, 21320, 21931, 22310, 22546, 25375,
2702 27347, 29800, 30761, 31833) },
2703 { AOM_CDF13(6272, 8678, 10313, 13073, 16823, 19980, 21520, 23242,
2704 25344, 28797, 30405, 31940) },
2705 { AOM_CDF13(7424, 10835, 12653, 16345, 19574, 24868, 25937, 27299,
2706 31104, 31448, 31580, 31679) },
2707 { AOM_CDF13(4992, 6458, 9945, 11961, 16136, 17677, 20946, 23042,
2708 24475, 28304, 29748, 31791) },
2709 { AOM_CDF13(9600, 11879, 14703, 17653, 19176, 20185, 20880, 25194,
2710 26584, 29655, 30430, 32044) },
2711 { AOM_CDF13(9856, 11385, 13457, 18705, 19577, 20266, 20746, 22207,
2712 26724, 29431, 30645, 31604) },
2713 { AOM_CDF13(6272, 9318, 11569, 14812, 16351, 16619, 17537, 19596,
2714 22025, 27384, 29277, 31422) },
2715 { AOM_CDF13(5888, 9348, 11416, 14690, 16254, 16633, 17457, 19031,
2716 21875, 27080, 29442, 31193) },
2717 { AOM_CDF13(6912, 9329, 12218, 15177, 16806, 16998, 17991, 20005,
2718 21952, 27108, 28867, 31657) },
2719 { AOM_CDF13(5120, 9098, 13132, 17701, 18739, 19534, 20415, 22136,
2720 24213, 27199, 28504, 29960) },
Urvang Joshi63234542017-03-10 12:04:03 -08002721 },
2722 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002723 { AOM_CDF13(7296, 9304, 11772, 12529, 18014, 20418, 23076, 24662,
2724 25549, 29074, 30392, 31773) },
2725 { AOM_CDF13(7168, 11687, 13541, 14431, 18214, 20761, 22269, 23320,
2726 24633, 28339, 30193, 31268) },
2727 { AOM_CDF13(3584, 4428, 13496, 14189, 17372, 18617, 20609, 22615,
2728 23270, 27280, 28305, 30602) },
2729 { AOM_CDF13(7424, 8834, 10499, 14357, 17671, 19150, 20460, 23235,
2730 24391, 28351, 29843, 31481) },
2731 { AOM_CDF13(4480, 5888, 7093, 7902, 18290, 22123, 24511, 25532, 26360,
2732 29653, 30954, 32215) },
2733 { AOM_CDF13(7296, 10176, 11780, 12824, 19608, 25882, 28520, 29445,
2734 31106, 31573, 31775, 31872) },
2735 { AOM_CDF13(3840, 4833, 7551, 8449, 16668, 18614, 23952, 25668, 26721,
2736 29888, 30697, 32090) },
2737 { AOM_CDF13(6528, 8011, 11083, 12427, 16188, 17548, 19625, 23787,
2738 24792, 28649, 29872, 31845) },
2739 { AOM_CDF13(7168, 9170, 10655, 12439, 15550, 18128, 19565, 21412,
2740 23355, 28007, 30080, 31568) },
2741 { AOM_CDF13(5504, 7636, 10174, 11056, 15562, 16252, 17931, 19598,
2742 20967, 26845, 29149, 31490) },
2743 { AOM_CDF13(5248, 7810, 10004, 11015, 15359, 16310, 17834, 19185,
2744 20903, 26728, 29585, 31478) },
2745 { AOM_CDF13(5376, 7322, 10592, 11694, 15586, 16103, 17999, 19740,
2746 20950, 26894, 28912, 31591) },
2747 { AOM_CDF13(4608, 7276, 12153, 13388, 16091, 17970, 19548, 21175,
2748 22481, 26543, 28212, 29908) },
Urvang Joshi63234542017-03-10 12:04:03 -08002749 },
2750 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002751 { AOM_CDF13(6656, 12225, 14441, 15158, 19600, 27127, 28221, 29186,
2752 30439, 30913, 31135, 31238) },
2753 { AOM_CDF13(6400, 14608, 15920, 16643, 20149, 27328, 27896, 28672,
2754 30227, 30778, 31053, 31120) },
2755 { AOM_CDF13(3840, 6925, 14671, 15709, 19830, 24216, 25507, 27459,
2756 28552, 29569, 29808, 30169) },
2757 { AOM_CDF13(9600, 13604, 15202, 17530, 20878, 24279, 25278, 28255,
2758 30651, 31170, 31343, 31410) },
2759 { AOM_CDF13(4608, 8535, 9588, 10740, 18673, 27664, 28826, 29828,
2760 31081, 31503, 31680, 31778) },
2761 { AOM_CDF13(4864, 10543, 11313, 12197, 16785, 27858, 28556, 29480,
2762 30892, 31486, 31722, 31787) },
2763 { AOM_CDF13(3968, 7492, 10283, 11318, 18486, 24061, 26761, 28456,
2764 30126, 30872, 31088, 31305) },
2765 { AOM_CDF13(6016, 10246, 12999, 15083, 18769, 22398, 23584, 27098,
2766 29574, 30609, 30898, 31200) },
2767 { AOM_CDF13(7808, 13404, 14723, 16413, 20186, 24739, 25407, 27106,
2768 29929, 30507, 30827, 30915) },
2769 { AOM_CDF13(2816, 6530, 8123, 9240, 12536, 17593, 18754, 20319, 22070,
2770 27037, 29332, 30779) },
2771 { AOM_CDF13(2432, 6577, 8010, 9215, 12657, 18898, 19588, 20953, 22766,
2772 27231, 29927, 31109) },
2773 { AOM_CDF13(3200, 6974, 9162, 10450, 13818, 17757, 19119, 20842,
2774 22269, 27170, 29271, 30804) },
2775 { AOM_CDF13(4480, 10689, 15307, 16589, 19738, 24416, 25332, 26541,
2776 28634, 29711, 29913, 30116) },
Urvang Joshi63234542017-03-10 12:04:03 -08002777 },
2778 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002779 { AOM_CDF13(9600, 11066, 15832, 16515, 18844, 19883, 24302, 25759,
2780 26358, 29290, 30262, 31682) },
2781 { AOM_CDF13(8832, 12814, 16171, 17041, 19066, 20145, 22933, 24074,
2782 25006, 28115, 29722, 30991) },
2783 { AOM_CDF13(3840, 4486, 15821, 16330, 18461, 18879, 22436, 25051,
2784 25443, 28637, 29396, 31412) },
2785 { AOM_CDF13(9856, 10863, 14050, 15920, 18783, 19531, 22502, 24577,
2786 25361, 28559, 29600, 31336) },
2787 { AOM_CDF13(6528, 7620, 10182, 11199, 17281, 19946, 23885, 25333,
2788 26130, 29425, 30332, 31948) },
2789 { AOM_CDF13(9728, 11821, 13954, 15233, 19855, 24478, 28675, 29878,
2790 31238, 31741, 31874, 32048) },
2791 { AOM_CDF13(5120, 5753, 9673, 10149, 14343, 15190, 24967, 26378,
2792 26841, 29749, 30527, 32120) },
2793 { AOM_CDF13(5888, 6606, 11498, 12538, 14737, 15425, 19549, 24047,
2794 24765, 28711, 29822, 32138) },
2795 { AOM_CDF13(10368, 11757, 14126, 15474, 18311, 19358, 21539, 23451,
2796 25034, 28791, 30035, 31280) },
2797 { AOM_CDF13(6016, 7623, 11378, 12248, 15171, 15459, 18958, 20875,
2798 21955, 27411, 29196, 31723) },
2799 { AOM_CDF13(5760, 7469, 11399, 12323, 15165, 15528, 18804, 20769,
2800 21767, 27129, 29435, 31502) },
2801 { AOM_CDF13(7040, 8295, 12298, 13035, 15194, 15357, 18976, 21100,
2802 21805, 26978, 28342, 31763) },
2803 { AOM_CDF13(5632, 7465, 14220, 15035, 17014, 18105, 21111, 23027,
2804 23934, 27207, 28293, 30330) },
Urvang Joshi63234542017-03-10 12:04:03 -08002805 },
2806 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002807 { AOM_CDF13(11008, 13089, 17144, 18425, 19954, 20624, 21658, 24229,
2808 25290, 28803, 29938, 31493) },
2809 { AOM_CDF13(9088, 14218, 16378, 17699, 18935, 19928, 20524, 22781,
2810 24155, 27523, 29068, 30270) },
2811 { AOM_CDF13(6144, 7194, 17912, 18991, 19879, 20151, 21170, 23938,
2812 24712, 27763, 28556, 30584) },
2813 { AOM_CDF13(10496, 11614, 13652, 16928, 18425, 18967, 19724, 23817,
2814 25594, 28685, 29734, 30941) },
2815 { AOM_CDF13(7296, 8915, 11163, 13821, 16951, 18507, 20180, 22423,
2816 24017, 28294, 29614, 31673) },
2817 { AOM_CDF13(9728, 13441, 15858, 18860, 21713, 24478, 25995, 28233,
2818 30347, 30853, 31081, 31328) },
2819 { AOM_CDF13(6400, 7480, 11482, 13206, 16199, 16908, 20436, 23507,
2820 24650, 28360, 29438, 31532) },
2821 { AOM_CDF13(9856, 10979, 13430, 15195, 15957, 16350, 16871, 26198,
2822 26991, 29612, 30438, 31962) },
2823 { AOM_CDF13(8960, 10529, 12640, 15350, 16987, 17859, 18590, 21400,
2824 23812, 28188, 29589, 31280) },
2825 { AOM_CDF13(7168, 8877, 12393, 14015, 15655, 15794, 16814, 19923,
2826 21086, 26723, 28669, 31468) },
2827 { AOM_CDF13(6400, 8900, 12241, 13828, 15513, 15671, 16500, 19257,
2828 20456, 25984, 28658, 31017) },
2829 { AOM_CDF13(7296, 8820, 12885, 14441, 15813, 15911, 16954, 20026,
2830 20950, 26563, 28140, 31673) },
2831 { AOM_CDF13(6272, 8455, 13328, 15907, 17026, 17464, 18267, 21436,
2832 22712, 26403, 27660, 29559) },
Urvang Joshi63234542017-03-10 12:04:03 -08002833 },
2834 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002835 { AOM_CDF13(6784, 11216, 13269, 15677, 16931, 18445, 19097, 20082,
2836 24298, 28236, 30118, 31448) },
2837 { AOM_CDF13(5760, 13240, 14110, 16966, 17743, 18916, 19281, 19848,
2838 25552, 28646, 30444, 31291) },
2839 { AOM_CDF13(4352, 6870, 14660, 16597, 17361, 18126, 18852, 20765,
2840 23526, 27670, 29096, 31214) },
2841 { AOM_CDF13(9472, 11736, 13172, 18192, 19070, 19651, 19991, 21793,
2842 26005, 29291, 30500, 31767) },
2843 { AOM_CDF13(4480, 7252, 8651, 12379, 14936, 17493, 18326, 19527,
2844 23655, 28031, 29960, 31773) },
2845 { AOM_CDF13(6016, 11561, 12864, 15793, 18765, 23040, 23640, 24415,
2846 31040, 31473, 31740, 31827) },
2847 { AOM_CDF13(4480, 6825, 8810, 11269, 14257, 15716, 18397, 20006,
2848 24020, 28230, 29780, 31773) },
2849 { AOM_CDF13(6912, 9466, 11717, 15159, 16237, 17145, 17814, 21258,
2850 24754, 28864, 30313, 32061) },
2851 { AOM_CDF13(7680, 10517, 11381, 16202, 16809, 17425, 17774, 18764,
2852 26842, 29600, 31073, 31886) },
2853 { AOM_CDF13(4992, 8626, 10531, 13103, 14495, 14784, 15365, 16657,
2854 21051, 27011, 29685, 31574) },
2855 { AOM_CDF13(4736, 9433, 10981, 13494, 14644, 15043, 15396, 16378,
2856 21506, 26869, 29824, 31454) },
2857 { AOM_CDF13(5760, 9526, 11905, 14476, 15722, 16103, 16768, 18070,
2858 21630, 27401, 29592, 31818) },
2859 { AOM_CDF13(4480, 9947, 12386, 15909, 16496, 17397, 17866, 18927,
2860 24408, 27750, 29614, 30889) },
Urvang Joshi63234542017-03-10 12:04:03 -08002861 },
2862 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002863 { AOM_CDF13(7424, 10538, 14098, 14891, 16486, 16756, 17607, 18952,
2864 20168, 26275, 28617, 31580) },
2865 { AOM_CDF13(5376, 13070, 14969, 15848, 17197, 17447, 17954, 18747,
2866 20137, 25628, 28753, 30628) },
2867 { AOM_CDF13(3584, 5287, 16141, 16840, 17670, 17760, 18532, 20387,
2868 21102, 26118, 27535, 30830) },
2869 { AOM_CDF13(7424, 9594, 11770, 14505, 16234, 16365, 17201, 20286,
2870 22128, 27371, 29426, 31580) },
2871 { AOM_CDF13(5632, 8393, 10566, 11917, 16025, 16697, 18123, 19541,
2872 21135, 27059, 29325, 31814) },
2873 { AOM_CDF13(3840, 7916, 9526, 11010, 14114, 18169, 19510, 21031,
2874 23083, 27769, 29782, 31299) },
2875 { AOM_CDF13(5376, 7338, 10657, 11699, 14780, 15070, 18291, 20170,
2876 21347, 26985, 28811, 31805) },
2877 { AOM_CDF13(5632, 7669, 11558, 12653, 13962, 14116, 15074, 19886,
2878 21123, 26953, 28755, 31708) },
2879 { AOM_CDF13(6528, 9739, 11612, 13211, 14992, 15237, 16016, 17677,
2880 20588, 26647, 29116, 31435) },
2881 { AOM_CDF13(5376, 8346, 11022, 11976, 13541, 13749, 14520, 16173,
2882 17567, 25182, 28111, 31591) },
2883 { AOM_CDF13(4736, 8894, 11294, 12220, 13753, 14029, 14645, 16065,
2884 17621, 24911, 28655, 31344) },
2885 { AOM_CDF13(5760, 8193, 11667, 12461, 13880, 14040, 14946, 16537,
2886 17642, 25117, 27333, 31713) },
2887 { AOM_CDF13(4096, 8479, 13751, 14813, 15994, 16157, 16905, 18314,
2888 19575, 25132, 27445, 30192) },
Urvang Joshi63234542017-03-10 12:04:03 -08002889 },
2890 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002891 { AOM_CDF13(7936, 12263, 15558, 16331, 17779, 18148, 18810, 19794,
2892 21046, 26644, 29417, 31507) },
2893 { AOM_CDF13(5376, 15025, 16457, 17074, 18079, 18299, 18648, 19240,
2894 20612, 25687, 29392, 30842) },
2895 { AOM_CDF13(3840, 6037, 17465, 18089, 18869, 18953, 19688, 21223,
2896 21816, 26562, 28195, 30621) },
2897 { AOM_CDF13(8448, 11255, 13307, 15676, 17392, 17603, 18268, 20783,
2898 22646, 27628, 29737, 31628) },
2899 { AOM_CDF13(5760, 9119, 11015, 12269, 16280, 17023, 18282, 19418,
2900 21325, 27309, 30004, 31818) },
2901 { AOM_CDF13(3968, 9094, 10606, 12007, 14218, 18911, 20089, 20924,
2902 23587, 27808, 30253, 31305) },
2903 { AOM_CDF13(6016, 8627, 11201, 12200, 15305, 15671, 18639, 20185,
2904 21627, 26990, 29449, 31723) },
2905 { AOM_CDF13(6272, 8768, 12320, 13296, 14643, 14970, 15760, 20545,
2906 21863, 27473, 29535, 31836) },
2907 { AOM_CDF13(6912, 10905, 12656, 14084, 15705, 16069, 16674, 17779,
2908 21041, 26586, 29539, 31253) },
2909 { AOM_CDF13(5248, 9672, 12113, 12871, 14423, 14710, 15376, 16708,
2910 18092, 25260, 28991, 31585) },
2911 { AOM_CDF13(4736, 10789, 13029, 13750, 15040, 15385, 15840, 16887,
2912 18393, 25230, 29558, 31454) },
2913 { AOM_CDF13(6016, 9916, 12938, 13741, 15030, 15297, 16116, 17333,
2914 18672, 25954, 28498, 31618) },
2915 { AOM_CDF13(4608, 10266, 15450, 16299, 17114, 17288, 17775, 18835,
2916 20227, 25199, 28098, 30018) },
Urvang Joshi63234542017-03-10 12:04:03 -08002917 },
Hui Su814f41e2017-10-02 12:21:24 -07002918 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002919 { AOM_CDF13(7296, 9951, 14124, 14806, 16181, 16377, 17485, 19069,
2920 20078, 26051, 27777, 31574) },
2921 { AOM_CDF13(5376, 13823, 15889, 16620, 17709, 17881, 18327, 19140,
2922 20374, 25685, 28160, 30521) },
2923 { AOM_CDF13(3200, 4602, 16404, 17042, 17780, 17829, 18706, 20608,
2924 21115, 25884, 26960, 30804) },
2925 { AOM_CDF13(7040, 9444, 11770, 14321, 15951, 16074, 17033, 20352,
2926 22301, 27567, 29151, 31662) },
2927 { AOM_CDF13(6016, 8316, 10849, 12136, 15860, 16430, 17935, 19659,
2928 21083, 26968, 28839, 31618) },
2929 { AOM_CDF13(3840, 7472, 9436, 11038, 13625, 17596, 18959, 20543,
2930 22879, 27487, 29351, 31186) },
2931 { AOM_CDF13(5376, 7117, 11424, 12381, 14823, 15053, 18656, 20818,
2932 21722, 27042, 28233, 31591) },
2933 { AOM_CDF13(5760, 7281, 11910, 12912, 14229, 14391, 15474, 20113,
2934 21128, 26627, 28077, 31713) },
2935 { AOM_CDF13(6656, 9452, 11526, 13288, 14861, 15062, 15909, 17695,
2936 20429, 26225, 28603, 31340) },
2937 { AOM_CDF13(5376, 7722, 10921, 11813, 13222, 13348, 14211, 15976,
2938 17110, 24634, 27176, 31484) },
2939 { AOM_CDF13(4736, 8226, 11137, 11988, 13518, 13706, 14332, 16016,
2940 17301, 24641, 27704, 31016) },
2941 { AOM_CDF13(5760, 7592, 11880, 12612, 13738, 13813, 14681, 16392,
2942 17306, 24619, 26334, 31818) },
2943 { AOM_CDF13(4096, 8524, 14316, 15392, 16295, 16433, 17197, 18718,
2944 19924, 25123, 26953, 29856) },
Hui Su814f41e2017-10-02 12:21:24 -07002945 },
2946 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002947 { AOM_CDF13(6528, 13383, 17642, 18342, 19224, 20209, 20899, 21944,
2948 23137, 25966, 27429, 28463) },
2949 { AOM_CDF13(4480, 16901, 18876, 19560, 20257, 20912, 21169, 21959,
2950 23036, 25781, 27676, 28569) },
2951 { AOM_CDF13(2688, 5337, 18178, 18829, 19344, 19628, 20267, 22135,
2952 22671, 25817, 26914, 28773) },
2953 { AOM_CDF13(8192, 11378, 14742, 17269, 18230, 19001, 19655, 22949,
2954 24337, 28025, 29503, 30848) },
2955 { AOM_CDF13(5120, 10133, 13144, 14374, 17020, 18920, 20235, 21677,
2956 23142, 27131, 28671, 30284) },
2957 { AOM_CDF13(7424, 15588, 18431, 19723, 21455, 24705, 25461, 26753,
2958 28923, 29475, 29729, 29897) },
2959 { AOM_CDF13(4224, 8689, 13024, 13658, 16637, 17307, 20836, 22665,
2960 23673, 27015, 28310, 30203) },
2961 { AOM_CDF13(5120, 7896, 13618, 14900, 15708, 16153, 16997, 23625,
2962 24466, 27719, 28892, 30500) },
2963 { AOM_CDF13(5760, 11305, 13669, 15462, 16564, 17683, 18252, 20073,
2964 22917, 27005, 28923, 30236) },
2965 { AOM_CDF13(4224, 9510, 13787, 14587, 15753, 15925, 16513, 18193,
2966 19490, 24944, 27482, 29757) },
2967 { AOM_CDF13(3840, 10052, 14106, 14887, 15827, 15996, 16522, 17939,
2968 19204, 24508, 27661, 29491) },
2969 { AOM_CDF13(4736, 9676, 14492, 15163, 16179, 16390, 17133, 18905,
2970 19864, 25185, 27191, 30030) },
2971 { AOM_CDF13(3584, 9370, 14746, 15820, 16708, 17224, 17718, 19329,
2972 20405, 23541, 25258, 26726) },
Hui Su814f41e2017-10-02 12:21:24 -07002973 },
Yue Chen63ce36f2017-10-10 23:37:31 -07002974#endif
Yue Chen63ce36f2017-10-10 23:37:31 -07002975 };
Jingning Hana45d8422017-10-05 09:57:38 -07002976#endif // CONFIG_KF_CTX
Thomas Davies1d7db722017-02-22 11:15:00 +00002977
Cheng Chen41d37c22017-09-08 19:00:21 -07002978#if CONFIG_LPF_SB
2979static const aom_cdf_prob default_lpf_reuse_cdf[LPF_REUSE_CONTEXT][CDF_SIZE(
Thomas Daedee82e5772017-11-06 17:27:10 -08002980 2)] = { { AOM_CDF2(4259) }, { AOM_CDF2(728) } };
Cheng Chen41d37c22017-09-08 19:00:21 -07002981
Thomas Daedee82e5772017-11-06 17:27:10 -08002982static const aom_cdf_prob default_lpf_delta_cdf[LPF_DELTA_CONTEXT][CDF_SIZE(
2983 DELTA_RANGE)] = { { AOM_CDF8(100, 688, 2128, 4642, 7895, 11851, 17050) },
2984 { AOM_CDF8(100, 1291, 4358, 7425, 10654, 13559, 18563) },
2985 { AOM_CDF8(100, 1086, 4982, 9134, 13031, 16991, 23123) },
2986 { AOM_CDF8(100, 1068, 3395, 7973, 12512, 17967, 22812) },
2987 { AOM_CDF8(100, 442, 2809, 7178, 12535, 17450, 22417) },
2988 { AOM_CDF8(100, 561, 2246, 6050, 11103, 16592, 21353) },
2989 { AOM_CDF8(100, 345, 2399, 5559, 9682, 13992, 20126) },
2990 { AOM_CDF8(100, 337, 1540, 3573, 6438, 10196, 16320) } };
Cheng Chen41d37c22017-09-08 19:00:21 -07002991
2992static const aom_cdf_prob
2993 default_lpf_sign_cdf[LPF_REUSE_CONTEXT][LPF_SIGN_CONTEXT][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08002994 { { AOM_CDF2(100) }, { AOM_CDF2(11932) } },
2995 { { AOM_CDF2(14785) }, { AOM_CDF2(8145) } }
Cheng Chen41d37c22017-09-08 19:00:21 -07002996 };
2997#endif // CONFIG_LPF_SB
2998
Joe Young3ca43bf2017-10-06 15:12:46 -07002999#if CONFIG_EXT_INTRA_MOD
Joe Young2edfc372017-11-01 09:08:43 -07003000static const aom_cdf_prob default_angle_delta_cdf[DIRECTIONAL_MODES][CDF_SIZE(
Joe Young3ca43bf2017-10-06 15:12:46 -07003001 2 * MAX_ANGLE_DELTA + 1)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08003002 { AOM_CDF7(2340, 5327, 7611, 23102, 27196, 30546) },
3003 { AOM_CDF7(3267, 8071, 11970, 21822, 25619, 30034) },
3004 { AOM_CDF7(3417, 9937, 12286, 16420, 19941, 30669) },
3005 { AOM_CDF7(5167, 11735, 15254, 16662, 20697, 28276) },
3006 { AOM_CDF7(1728, 10973, 14103, 18547, 22684, 27007) },
3007 { AOM_CDF7(2764, 10700, 12517, 16957, 20590, 30390) },
3008 { AOM_CDF7(2407, 12749, 16527, 20823, 22781, 29642) },
3009 { AOM_CDF7(3068, 10132, 12079, 16542, 19943, 30448) }
Joe Young3ca43bf2017-10-06 15:12:46 -07003010};
3011#endif // CONFIG_EXT_INTRA_MOD
3012
Yaowu Xuc27fc142016-08-22 16:08:15 -07003013static void init_mode_probs(FRAME_CONTEXT *fc) {
Yaowu Xuf883b422016-08-30 14:01:10 -07003014 av1_copy(fc->intra_inter_prob, default_intra_inter_p);
3015 av1_copy(fc->comp_inter_prob, default_comp_inter_p);
Thomas Daviesce7272d2017-07-04 16:11:08 +01003016 av1_copy(fc->palette_y_size_cdf, default_palette_y_size_cdf);
3017 av1_copy(fc->palette_uv_size_cdf, default_palette_uv_size_cdf);
3018 av1_copy(fc->palette_y_color_index_cdf, default_palette_y_color_index_cdf);
3019 av1_copy(fc->palette_uv_color_index_cdf, default_palette_uv_color_index_cdf);
Debargha Mukherjee801cc922017-09-22 17:22:50 -07003020 av1_copy(fc->kf_y_cdf, default_kf_y_mode_cdf);
Joe Young3ca43bf2017-10-06 15:12:46 -07003021#if CONFIG_EXT_INTRA_MOD
3022 av1_copy(fc->angle_delta_cdf, default_angle_delta_cdf);
3023#endif // CONFIG_EXT_INTRA_MOD
Sarah Parker5c6744b2017-08-25 17:27:45 -07003024#if CONFIG_MRC_TX
3025 av1_copy(fc->mrc_mask_inter_cdf, default_mrc_mask_inter_cdf);
3026 av1_copy(fc->mrc_mask_intra_cdf, default_mrc_mask_intra_cdf);
3027#endif // CONFIG_MRC_TX
hui su466ae062017-07-25 16:55:51 -07003028 av1_copy(fc->comp_inter_cdf, default_comp_inter_cdf);
Zoe Liuc082bbc2017-05-17 13:31:37 -07003029#if CONFIG_EXT_COMP_REFS
3030 av1_copy(fc->comp_ref_type_prob, default_comp_ref_type_p);
3031 av1_copy(fc->uni_comp_ref_prob, default_uni_comp_ref_p);
Zoe Liufcf5fa22017-06-26 16:00:38 -07003032 av1_copy(fc->comp_ref_type_cdf, default_comp_ref_type_cdf);
3033 av1_copy(fc->uni_comp_ref_cdf, default_uni_comp_ref_cdf);
Zoe Liuc082bbc2017-05-17 13:31:37 -07003034#endif // CONFIG_EXT_COMP_REFS
Yaowu Xuf883b422016-08-30 14:01:10 -07003035 av1_copy(fc->comp_ref_prob, default_comp_ref_p);
Thomas Davies59f92312017-08-23 00:33:12 +01003036 av1_copy(fc->palette_y_mode_cdf, default_palette_y_mode_cdf);
3037 av1_copy(fc->palette_uv_mode_cdf, default_palette_uv_mode_cdf);
Thomas Davies894cc812017-06-22 17:51:33 +01003038 av1_copy(fc->comp_ref_cdf, default_comp_ref_cdf);
Angie Chiangbabf3e72017-03-20 15:32:24 -07003039#if CONFIG_LV_MAP
3040 av1_copy(fc->txb_skip, default_txb_skip);
3041 av1_copy(fc->nz_map, default_nz_map);
3042 av1_copy(fc->eob_flag, default_eob_flag);
Jingning Han3422ac12017-10-25 20:37:53 -07003043#if !CONFIG_CTX1D
Angie Chiangfcdda9d2017-10-22 18:14:13 -07003044 av1_copy(fc->eob_extra, default_eob_extra);
3045#endif
Angie Chiangbabf3e72017-03-20 15:32:24 -07003046 av1_copy(fc->dc_sign, default_dc_sign);
3047 av1_copy(fc->coeff_base, default_coeff_base);
3048 av1_copy(fc->coeff_lps, default_coeff_lps);
Ola Hugossone72a2092017-11-12 09:11:53 +01003049#if !CONFIG_LV_MAP_MULTI
Jingning Han87b01b52017-08-31 12:07:20 -07003050 av1_copy(fc->coeff_br, default_coeff_br);
Ola Hugossone72a2092017-11-12 09:11:53 +01003051#endif
Angie Chiangf12cc4a2017-08-28 15:42:33 -07003052#if CONFIG_CTX1D
3053 av1_copy(fc->eob_mode, default_eob_mode);
3054 av1_copy(fc->empty_line, default_empty_line);
3055 av1_copy(fc->hv_eob, default_hv_eob);
3056#endif // CONFIG_CTX1D
Jingning Hanfdaa55e2017-08-18 16:21:36 -07003057
Jingning Hanfdaa55e2017-08-18 16:21:36 -07003058 av1_init_txb_probs(fc);
Angie Chiangbabf3e72017-03-20 15:32:24 -07003059#endif
Yaowu Xuf883b422016-08-30 14:01:10 -07003060 av1_copy(fc->comp_bwdref_prob, default_comp_bwdref_p);
Thomas Davies894cc812017-06-22 17:51:33 +01003061 av1_copy(fc->comp_bwdref_cdf, default_comp_bwdref_cdf);
Yaowu Xuf883b422016-08-30 14:01:10 -07003062 av1_copy(fc->single_ref_prob, default_single_ref_p);
Thomas Davies315f5782017-06-14 15:14:55 +01003063 av1_copy(fc->single_ref_cdf, default_single_ref_cdf);
Yaowu Xuf883b422016-08-30 14:01:10 -07003064 av1_copy(fc->txfm_partition_prob, default_txfm_partition_probs);
Thomas Davies985bfc32017-06-27 16:51:26 +01003065 av1_copy(fc->txfm_partition_cdf, default_txfm_partition_cdf);
Cheng Chen0a7f2f52017-10-10 15:16:09 -07003066#if CONFIG_JNT_COMP
Cheng Chen46970612017-10-24 14:53:36 -07003067 av1_copy(fc->compound_index_cdf, default_compound_idx_cdfs);
Cheng Chen0a7f2f52017-10-10 15:16:09 -07003068 av1_copy(fc->compound_index_probs, default_compound_idx_probs);
3069#endif // CONFIG_JNT_COMP
Yaowu Xuf883b422016-08-30 14:01:10 -07003070 av1_copy(fc->newmv_prob, default_newmv_prob);
3071 av1_copy(fc->zeromv_prob, default_zeromv_prob);
3072 av1_copy(fc->refmv_prob, default_refmv_prob);
3073 av1_copy(fc->drl_prob, default_drl_prob);
Thomas Davies149eda52017-06-12 18:11:55 +01003074 av1_copy(fc->newmv_cdf, default_newmv_cdf);
3075 av1_copy(fc->zeromv_cdf, default_zeromv_cdf);
3076 av1_copy(fc->refmv_cdf, default_refmv_cdf);
3077 av1_copy(fc->drl_cdf, default_drl_cdf);
Yue Chencb60b182016-10-13 15:18:22 -07003078 av1_copy(fc->motion_mode_prob, default_motion_mode_prob);
Wei-Ting Linca710d62017-07-13 11:41:02 -07003079 av1_copy(fc->motion_mode_cdf, default_motion_mode_cdf);
Yue Chen69f18e12016-09-08 14:48:15 -07003080 av1_copy(fc->obmc_prob, default_obmc_prob);
Thomas Daviesd9b57262017-06-27 17:43:25 +01003081 av1_copy(fc->obmc_cdf, default_obmc_cdf);
Yaowu Xuf883b422016-08-30 14:01:10 -07003082 av1_copy(fc->inter_compound_mode_probs, default_inter_compound_mode_probs);
Thomas Davies8c08a332017-06-26 17:30:34 +01003083 av1_copy(fc->inter_compound_mode_cdf, default_inter_compound_mode_cdf);
Sarah Parker6fddd182016-11-10 20:57:20 -08003084 av1_copy(fc->compound_type_prob, default_compound_type_probs);
Thomas Daviesd8dac222017-06-27 11:23:15 +01003085 av1_copy(fc->compound_type_cdf, default_compound_type_cdf);
Yaowu Xuf883b422016-08-30 14:01:10 -07003086 av1_copy(fc->interintra_prob, default_interintra_prob);
Yaowu Xuf883b422016-08-30 14:01:10 -07003087 av1_copy(fc->wedge_interintra_prob, default_wedge_interintra_prob);
Thomas Daviescff91712017-07-07 11:49:55 +01003088 av1_copy(fc->interintra_cdf, default_interintra_cdf);
3089 av1_copy(fc->wedge_interintra_cdf, default_wedge_interintra_cdf);
Thomas Davies299ff042017-06-27 13:41:59 +01003090 av1_copy(fc->interintra_mode_prob, default_interintra_mode_prob);
Thomas Davies299ff042017-06-27 13:41:59 +01003091 av1_copy(fc->interintra_mode_cdf, default_interintra_mode_cdf);
Nathan E. Eggef627e582016-08-19 20:06:51 -04003092 av1_copy(fc->seg.tree_probs, default_segment_tree_probs);
3093 av1_copy(fc->seg.pred_probs, default_segment_pred_probs);
Thomas Davies00021352017-07-11 16:07:55 +01003094 av1_copy(fc->seg.pred_cdf, default_segment_pred_cdf);
hui su5db97432016-10-14 16:10:14 -07003095#if CONFIG_FILTER_INTRA
Yue Chen4eba69b2017-11-09 22:37:35 -08003096 av1_copy(fc->filter_intra_cdfs, default_filter_intra_cdfs);
Yue Chen63ce36f2017-10-10 23:37:31 -07003097 av1_copy(fc->filter_intra_mode_cdf, default_filter_intra_mode_cdf);
hui su5db97432016-10-14 16:10:14 -07003098#endif // CONFIG_FILTER_INTRA
Debargha Mukherjee5cd2ab92016-09-08 15:15:17 -07003099#if CONFIG_LOOP_RESTORATION
Debargha Mukherjeebc732ef2017-10-12 12:40:25 -07003100 av1_copy(fc->switchable_restore_cdf, default_switchable_restore_cdf);
Debargha Mukherjeebc732ef2017-10-12 12:40:25 -07003101 av1_copy(fc->wiener_restore_cdf, default_wiener_restore_cdf);
3102 av1_copy(fc->sgrproj_restore_cdf, default_sgrproj_restore_cdf);
Debargha Mukherjee5cd2ab92016-09-08 15:15:17 -07003103#endif // CONFIG_LOOP_RESTORATION
Thomas Davies1d7db722017-02-22 11:15:00 +00003104 av1_copy(fc->y_mode_cdf, default_if_y_mode_cdf);
3105 av1_copy(fc->uv_mode_cdf, default_uv_mode_cdf);
3106 av1_copy(fc->switchable_interp_cdf, default_switchable_interp_cdf);
3107 av1_copy(fc->partition_cdf, default_partition_cdf);
Thomas Davies1d7db722017-02-22 11:15:00 +00003108 av1_copy(fc->intra_ext_tx_cdf, default_intra_ext_tx_cdf);
3109 av1_copy(fc->inter_ext_tx_cdf, default_inter_ext_tx_cdf);
Zoe Liuf704a1c2017-10-02 16:55:59 -07003110#if CONFIG_EXT_SKIP
3111 av1_copy(fc->skip_mode_cdfs, default_skip_mode_cdfs);
3112#endif // CONFIG_EXT_SKIP
Thomas Davies61e3e372017-04-04 16:10:23 +01003113 av1_copy(fc->skip_cdfs, default_skip_cdfs);
Thomas Daviesf6ad9352017-04-19 11:38:06 +01003114 av1_copy(fc->intra_inter_cdf, default_intra_inter_cdf);
Thomas Davies1d7db722017-02-22 11:15:00 +00003115 av1_copy(fc->seg.tree_cdf, default_seg_tree_cdf);
Rostislav Pehlivanovf624dd52017-10-24 16:46:09 +01003116#if CONFIG_Q_SEGMENTATION
3117 for (int i = 0; i < Q_SEGMENT_CDF_COUNT; i++)
3118 av1_copy(fc->seg.q_seg_cdf[i], default_q_seg_tree_cdf[i]);
3119#endif
Thomas Davies1d7db722017-02-22 11:15:00 +00003120 av1_copy(fc->tx_size_cdf, default_tx_size_cdf);
Thomas Daviesf6936102016-09-05 16:51:31 +01003121 av1_copy(fc->delta_q_prob, default_delta_q_probs);
Thomas Daviesd6ee8a82017-03-02 14:42:50 +00003122 av1_copy(fc->delta_q_cdf, default_delta_q_cdf);
Fangwen Fu231fe422017-04-24 17:52:29 -07003123#if CONFIG_EXT_DELTA_Q
3124 av1_copy(fc->delta_lf_prob, default_delta_lf_probs);
Fangwen Fu231fe422017-04-24 17:52:29 -07003125 av1_copy(fc->delta_lf_cdf, default_delta_lf_cdf);
Cheng Chen880166a2017-10-02 17:48:48 -07003126#if CONFIG_LOOPFILTER_LEVEL
Cheng Chen9ac7a0f2017-10-17 20:36:46 -07003127 av1_copy(fc->delta_lf_multi_prob, default_delta_lf_multi_probs);
Cheng Chen880166a2017-10-02 17:48:48 -07003128 av1_copy(fc->delta_lf_multi_cdf, default_delta_lf_multi_cdf);
3129#endif // CONFIG_LOOPFILTER_LEVEL
Fangwen Fu231fe422017-04-24 17:52:29 -07003130#endif
Luc Trudeauf5334002017-04-25 12:21:26 -04003131#if CONFIG_CFL
David Michael Barrf6eaa152017-07-19 19:42:28 +09003132 av1_copy(fc->cfl_sign_cdf, default_cfl_sign_cdf);
Luc Trudeauf5334002017-04-25 12:21:26 -04003133 av1_copy(fc->cfl_alpha_cdf, default_cfl_alpha_cdf);
3134#endif
Alex Converse7c412ea2017-06-01 15:16:22 -07003135#if CONFIG_INTRABC
Hui Su6c8584f2017-09-14 15:37:02 -07003136 av1_copy(fc->intrabc_cdf, default_intrabc_cdf);
Alex Converse7c412ea2017-06-01 15:16:22 -07003137#endif
Cheng Chen41d37c22017-09-08 19:00:21 -07003138#if CONFIG_LPF_SB
3139 av1_copy(fc->lpf_reuse_cdf, default_lpf_reuse_cdf);
3140 av1_copy(fc->lpf_delta_cdf, default_lpf_delta_cdf);
3141 av1_copy(fc->lpf_sign_cdf, default_lpf_sign_cdf);
3142#endif // CONFIG_LPF_SB
Yaowu Xuc27fc142016-08-22 16:08:15 -07003143}
3144
Yaowu Xuf883b422016-08-30 14:01:10 -07003145void av1_adapt_inter_frame_probs(AV1_COMMON *cm) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07003146 int i, j;
3147 FRAME_CONTEXT *fc = cm->fc;
Thomas Daede10e1da92017-04-26 13:22:21 -07003148 const FRAME_CONTEXT *pre_fc = cm->pre_fc;
Yaowu Xuc27fc142016-08-22 16:08:15 -07003149 const FRAME_COUNTS *counts = &cm->counts;
3150
3151 for (i = 0; i < INTRA_INTER_CONTEXTS; i++)
Yaowu Xuf883b422016-08-30 14:01:10 -07003152 fc->intra_inter_prob[i] = av1_mode_mv_merge_probs(
Yaowu Xuc27fc142016-08-22 16:08:15 -07003153 pre_fc->intra_inter_prob[i], counts->intra_inter[i]);
Zoe Liu239f06b2017-04-20 13:10:55 -07003154
Yaowu Xuc27fc142016-08-22 16:08:15 -07003155 for (i = 0; i < COMP_INTER_CONTEXTS; i++)
Yaowu Xuf883b422016-08-30 14:01:10 -07003156 fc->comp_inter_prob[i] = av1_mode_mv_merge_probs(pre_fc->comp_inter_prob[i],
3157 counts->comp_inter[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003158
Zoe Liuc082bbc2017-05-17 13:31:37 -07003159#if CONFIG_EXT_COMP_REFS
3160 for (i = 0; i < COMP_REF_TYPE_CONTEXTS; i++)
3161 fc->comp_ref_type_prob[i] = av1_mode_mv_merge_probs(
3162 pre_fc->comp_ref_type_prob[i], counts->comp_ref_type[i]);
3163
3164 for (i = 0; i < UNI_COMP_REF_CONTEXTS; i++)
3165 for (j = 0; j < (UNIDIR_COMP_REFS - 1); j++)
3166 fc->uni_comp_ref_prob[i][j] = av1_mode_mv_merge_probs(
3167 pre_fc->uni_comp_ref_prob[i][j], counts->uni_comp_ref[i][j]);
3168#endif // CONFIG_EXT_COMP_REFS
3169
Yaowu Xuc27fc142016-08-22 16:08:15 -07003170 for (i = 0; i < REF_CONTEXTS; i++)
3171 for (j = 0; j < (FWD_REFS - 1); j++)
3172 fc->comp_ref_prob[i][j] = mode_mv_merge_probs(pre_fc->comp_ref_prob[i][j],
3173 counts->comp_ref[i][j]);
3174 for (i = 0; i < REF_CONTEXTS; i++)
3175 for (j = 0; j < (BWD_REFS - 1); j++)
3176 fc->comp_bwdref_prob[i][j] = mode_mv_merge_probs(
3177 pre_fc->comp_bwdref_prob[i][j], counts->comp_bwdref[i][j]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003178
3179 for (i = 0; i < REF_CONTEXTS; i++)
3180 for (j = 0; j < (SINGLE_REFS - 1); j++)
Yaowu Xuf883b422016-08-30 14:01:10 -07003181 fc->single_ref_prob[i][j] = av1_mode_mv_merge_probs(
Yaowu Xuc27fc142016-08-22 16:08:15 -07003182 pre_fc->single_ref_prob[i][j], counts->single_ref[i][j]);
3183
Yaowu Xuc27fc142016-08-22 16:08:15 -07003184 for (i = 0; i < NEWMV_MODE_CONTEXTS; ++i)
3185 fc->newmv_prob[i] =
Yaowu Xuf883b422016-08-30 14:01:10 -07003186 av1_mode_mv_merge_probs(pre_fc->newmv_prob[i], counts->newmv_mode[i]);
Sarah Parker2b9ec2e2017-10-30 17:34:08 -07003187 for (i = 0; i < GLOBALMV_MODE_CONTEXTS; ++i)
Yaowu Xuf883b422016-08-30 14:01:10 -07003188 fc->zeromv_prob[i] =
3189 av1_mode_mv_merge_probs(pre_fc->zeromv_prob[i], counts->zeromv_mode[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003190 for (i = 0; i < REFMV_MODE_CONTEXTS; ++i)
3191 fc->refmv_prob[i] =
Yaowu Xuf883b422016-08-30 14:01:10 -07003192 av1_mode_mv_merge_probs(pre_fc->refmv_prob[i], counts->refmv_mode[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003193
3194 for (i = 0; i < DRL_MODE_CONTEXTS; ++i)
3195 fc->drl_prob[i] =
Yaowu Xuf883b422016-08-30 14:01:10 -07003196 av1_mode_mv_merge_probs(pre_fc->drl_prob[i], counts->drl_mode[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003197
Rupert Swarbrick93c39e92017-07-12 11:11:02 +01003198 for (i = BLOCK_8X8; i < BLOCK_SIZES_ALL; ++i)
Yue Chencb60b182016-10-13 15:18:22 -07003199 aom_tree_merge_probs(av1_motion_mode_tree, pre_fc->motion_mode_prob[i],
3200 counts->motion_mode[i], fc->motion_mode_prob[i]);
Rupert Swarbrick93c39e92017-07-12 11:11:02 +01003201 for (i = BLOCK_8X8; i < BLOCK_SIZES_ALL; ++i)
Yue Chen69f18e12016-09-08 14:48:15 -07003202 fc->obmc_prob[i] =
3203 av1_mode_mv_merge_probs(pre_fc->obmc_prob[i], counts->obmc[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003204
Yaowu Xuc27fc142016-08-22 16:08:15 -07003205 for (i = 0; i < INTER_MODE_CONTEXTS; i++)
Yaowu Xuf883b422016-08-30 14:01:10 -07003206 aom_tree_merge_probs(
3207 av1_inter_compound_mode_tree, pre_fc->inter_compound_mode_probs[i],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003208 counts->inter_compound_mode[i], fc->inter_compound_mode_probs[i]);
Debargha Mukherjee9e2c7a62017-05-23 21:18:42 -07003209 if (cm->allow_interintra_compound) {
3210 for (i = 0; i < BLOCK_SIZE_GROUPS; ++i) {
3211 if (is_interintra_allowed_bsize_group(i))
3212 fc->interintra_prob[i] = av1_mode_mv_merge_probs(
3213 pre_fc->interintra_prob[i], counts->interintra[i]);
3214 }
3215 for (i = 0; i < BLOCK_SIZE_GROUPS; i++) {
3216 aom_tree_merge_probs(
3217 av1_interintra_mode_tree, pre_fc->interintra_mode_prob[i],
3218 counts->interintra_mode[i], fc->interintra_mode_prob[i]);
3219 }
Rupert Swarbrick93c39e92017-07-12 11:11:02 +01003220 for (i = 0; i < BLOCK_SIZES_ALL; ++i) {
Debargha Mukherjee9e2c7a62017-05-23 21:18:42 -07003221 if (is_interintra_allowed_bsize(i) && is_interintra_wedge_used(i))
3222 fc->wedge_interintra_prob[i] = av1_mode_mv_merge_probs(
3223 pre_fc->wedge_interintra_prob[i], counts->wedge_interintra[i]);
3224 }
Debargha Mukherjee9e2c7a62017-05-23 21:18:42 -07003225 }
Sarah Parker6fddd182016-11-10 20:57:20 -08003226
Debargha Mukherjee9e2c7a62017-05-23 21:18:42 -07003227 if (cm->allow_masked_compound) {
Rupert Swarbrick93c39e92017-07-12 11:11:02 +01003228 for (i = 0; i < BLOCK_SIZES_ALL; ++i) {
Debargha Mukherjee9e2c7a62017-05-23 21:18:42 -07003229 aom_tree_merge_probs(
3230 av1_compound_type_tree, pre_fc->compound_type_prob[i],
3231 counts->compound_interinter[i], fc->compound_type_prob[i]);
3232 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07003233 }
Cheng Chen0a7f2f52017-10-10 15:16:09 -07003234
3235#if CONFIG_JNT_COMP
3236 for (i = 0; i < COMP_INDEX_CONTEXTS; ++i)
3237 fc->compound_index_probs[i] = av1_mode_mv_merge_probs(
3238 pre_fc->compound_index_probs[i], counts->compound_index[i]);
3239#endif // CONFIG_JNT_COMP
Yaowu Xuc27fc142016-08-22 16:08:15 -07003240}
3241
Yaowu Xuf883b422016-08-30 14:01:10 -07003242void av1_adapt_intra_frame_probs(AV1_COMMON *cm) {
Urvang Joshi355a7a72017-09-29 17:12:44 -07003243 int i;
Yaowu Xuc27fc142016-08-22 16:08:15 -07003244 FRAME_CONTEXT *fc = cm->fc;
Thomas Daede10e1da92017-04-26 13:22:21 -07003245 const FRAME_CONTEXT *pre_fc = cm->pre_fc;
Yaowu Xuc27fc142016-08-22 16:08:15 -07003246 const FRAME_COUNTS *counts = &cm->counts;
3247
3248 if (cm->tx_mode == TX_MODE_SELECT) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07003249 for (i = 0; i < TXFM_PARTITION_CONTEXTS; ++i)
Yaowu Xuf883b422016-08-30 14:01:10 -07003250 fc->txfm_partition_prob[i] = av1_mode_mv_merge_probs(
Yaowu Xuc27fc142016-08-22 16:08:15 -07003251 pre_fc->txfm_partition_prob[i], counts->txfm_partition[i]);
Yue Chena1e48dc2016-08-29 17:29:33 -07003252 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07003253
Yaowu Xuc27fc142016-08-22 16:08:15 -07003254 if (cm->seg.temporal_update) {
3255 for (i = 0; i < PREDICTION_PROBS; i++)
Yaowu Xuf883b422016-08-30 14:01:10 -07003256 fc->seg.pred_probs[i] = av1_mode_mv_merge_probs(pre_fc->seg.pred_probs[i],
3257 counts->seg.pred[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003258
Yaowu Xuf883b422016-08-30 14:01:10 -07003259 aom_tree_merge_probs(av1_segment_tree, pre_fc->seg.tree_probs,
Yaowu Xuc27fc142016-08-22 16:08:15 -07003260 counts->seg.tree_mispred, fc->seg.tree_probs);
3261 } else {
Yaowu Xuf883b422016-08-30 14:01:10 -07003262 aom_tree_merge_probs(av1_segment_tree, pre_fc->seg.tree_probs,
Yaowu Xuc27fc142016-08-22 16:08:15 -07003263 counts->seg.tree_total, fc->seg.tree_probs);
3264 }
3265
Thomas Davies665cd702017-03-02 10:20:30 +00003266 for (i = 0; i < DELTA_Q_PROBS; ++i)
Thomas Daviesf6936102016-09-05 16:51:31 +01003267 fc->delta_q_prob[i] =
3268 mode_mv_merge_probs(pre_fc->delta_q_prob[i], counts->delta_q[i]);
Fangwen Fu231fe422017-04-24 17:52:29 -07003269#if CONFIG_EXT_DELTA_Q
Cheng Chena97394f2017-09-27 15:05:14 -07003270#if CONFIG_LOOPFILTER_LEVEL
3271 for (i = 0; i < FRAME_LF_COUNT; ++i)
Cheng Chen9ac7a0f2017-10-17 20:36:46 -07003272 for (int k = 0; k < DELTA_LF_PROBS; ++k)
3273 fc->delta_lf_multi_prob[i][k] = mode_mv_merge_probs(
3274 pre_fc->delta_lf_multi_prob[i][k], counts->delta_lf_multi[i][k]);
Cheng Chen880166a2017-10-02 17:48:48 -07003275#endif // CONFIG_LOOPFILTER_LEVEL
Fangwen Fu231fe422017-04-24 17:52:29 -07003276 for (i = 0; i < DELTA_LF_PROBS; ++i)
3277 fc->delta_lf_prob[i] =
3278 mode_mv_merge_probs(pre_fc->delta_lf_prob[i], counts->delta_lf[i]);
3279#endif // CONFIG_EXT_DELTA_Q
Yaowu Xuc27fc142016-08-22 16:08:15 -07003280}
3281
3282static void set_default_lf_deltas(struct loopfilter *lf) {
3283 lf->mode_ref_delta_enabled = 1;
3284 lf->mode_ref_delta_update = 1;
3285
3286 lf->ref_deltas[INTRA_FRAME] = 1;
3287 lf->ref_deltas[LAST_FRAME] = 0;
Yaowu Xuc27fc142016-08-22 16:08:15 -07003288 lf->ref_deltas[LAST2_FRAME] = lf->ref_deltas[LAST_FRAME];
3289 lf->ref_deltas[LAST3_FRAME] = lf->ref_deltas[LAST_FRAME];
3290 lf->ref_deltas[BWDREF_FRAME] = lf->ref_deltas[LAST_FRAME];
Yaowu Xuc27fc142016-08-22 16:08:15 -07003291 lf->ref_deltas[GOLDEN_FRAME] = -1;
Zoe Liu97ad0582017-02-09 10:51:00 -08003292 lf->ref_deltas[ALTREF2_FRAME] = -1;
Yaowu Xuc27fc142016-08-22 16:08:15 -07003293 lf->ref_deltas[ALTREF_FRAME] = -1;
3294
3295 lf->mode_deltas[0] = 0;
3296 lf->mode_deltas[1] = 0;
Ryana97c8972017-09-01 14:36:30 -07003297
3298 av1_copy(lf->last_ref_deltas, lf->ref_deltas);
3299 av1_copy(lf->last_mode_deltas, lf->mode_deltas);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003300}
3301
Hui Su3694c832017-11-10 14:15:58 -08003302void av1_setup_frame_contexts(AV1_COMMON *cm) {
3303 int i;
3304#if CONFIG_NO_FRAME_CONTEXT_SIGNALING
3305 if (cm->frame_type == KEY_FRAME) {
3306 // Reset all frame contexts, as all reference frames will be lost.
3307 for (i = 0; i < FRAME_CONTEXTS; ++i) cm->frame_contexts[i] = *cm->fc;
3308 }
3309#else
3310 if (cm->frame_type == KEY_FRAME || cm->error_resilient_mode ||
3311 cm->reset_frame_context == RESET_FRAME_CONTEXT_ALL) {
3312 // Reset all frame contexts.
3313 for (i = 0; i < FRAME_CONTEXTS; ++i) cm->frame_contexts[i] = *cm->fc;
3314 } else if (cm->reset_frame_context == RESET_FRAME_CONTEXT_CURRENT) {
3315#if CONFIG_NO_FRAME_CONTEXT_SIGNALING
3316 // Reset the frame context of the first specified ref frame.
3317 if (cm->frame_refs[0].idx >= 0) {
3318 cm->frame_contexts[cm->frame_refs[0].idx] = *cm->fc;
3319 }
3320#else
3321 // Reset only the frame context specified in the frame header.
3322 cm->frame_contexts[cm->frame_context_idx] = *cm->fc;
3323#endif // CONFIG_NO_FRAME_CONTEXT_SIGNALING
3324 }
3325#endif // CONFIG_NO_FRAME_CONTEXT_SIGNALING
3326}
3327
Yaowu Xuf883b422016-08-30 14:01:10 -07003328void av1_setup_past_independence(AV1_COMMON *cm) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07003329 // Reset the segment feature data to the default stats:
3330 // Features disabled, 0, with delta coding (Default state).
3331 struct loopfilter *const lf = &cm->lf;
3332
Yaowu Xuf883b422016-08-30 14:01:10 -07003333 av1_clearall_segfeatures(&cm->seg);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003334
3335 if (cm->last_frame_seg_map && !cm->frame_parallel_decode)
3336 memset(cm->last_frame_seg_map, 0, (cm->mi_rows * cm->mi_cols));
3337
3338 if (cm->current_frame_seg_map)
3339 memset(cm->current_frame_seg_map, 0, (cm->mi_rows * cm->mi_cols));
3340
3341 // Reset the mode ref deltas for loop filter
Yaowu Xuf883b422016-08-30 14:01:10 -07003342 av1_zero(lf->last_ref_deltas);
3343 av1_zero(lf->last_mode_deltas);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003344 set_default_lf_deltas(lf);
3345
3346 // To force update of the sharpness
3347 lf->last_sharpness_level = -1;
Yaowu Xuc27fc142016-08-22 16:08:15 -07003348
Yaowu Xuf883b422016-08-30 14:01:10 -07003349 av1_default_coef_probs(cm);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003350 init_mode_probs(cm->fc);
Yaowu Xuf883b422016-08-30 14:01:10 -07003351 av1_init_mv_probs(cm);
Angie Chiangdef11252017-08-18 14:37:32 -07003352#if CONFIG_LV_MAP
3353 av1_init_lv_map(cm);
3354#endif
Angie Chianged8cd9a2016-10-21 16:44:47 -07003355#if CONFIG_ADAPT_SCAN
3356 av1_init_scan_order(cm);
3357#endif
Angie Chiang0a2c0cb2017-02-23 14:19:15 -08003358 av1_convolve_init(cm);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003359 cm->fc->initialized = 1;
Hui Su3694c832017-11-10 14:15:58 -08003360 av1_setup_frame_contexts(cm);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003361
3362 // prev_mip will only be allocated in encoder.
3363 if (frame_is_intra_only(cm) && cm->prev_mip && !cm->frame_parallel_decode)
3364 memset(cm->prev_mip, 0,
3365 cm->mi_stride * (cm->mi_rows + 1) * sizeof(*cm->prev_mip));
Thomas Daededa4d8b92017-06-05 15:44:14 -07003366#if !CONFIG_NO_FRAME_CONTEXT_SIGNALING
Yaowu Xuc27fc142016-08-22 16:08:15 -07003367 cm->frame_context_idx = 0;
Thomas Daededa4d8b92017-06-05 15:44:14 -07003368#endif // !CONFIG_NO_FRAME_CONTEXT_SIGNALING
Yaowu Xuc27fc142016-08-22 16:08:15 -07003369}