blob: cd3918e1e99551ce49917d93c372494ffce5028b [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 },
Angie Chiang89347642017-11-28 17:00:28 -080029#if CONFIG_TX64X64
30 { 252, 71, 126, 184, 178, 218, 251, 49, 133, 221, 27, 92, 197 },
31#endif
Angie Chiangbabf3e72017-03-20 15:32:24 -070032};
33const aom_prob default_dc_sign[PLANE_TYPES][DC_SIGN_CONTEXTS] = {
34 { 125, 102, 147 }, { 119, 101, 135 },
35};
36
Dake He3fe369c2017-11-16 17:56:44 -080037#if CONFIG_LV_MAP_MULTI || TRAIN_INIT_PROB
Ola Hugosson13892102017-11-06 08:01:44 +010038const aom_prob default_coeff_base
39 [TX_SIZES][PLANE_TYPES][NUM_BASE_LEVELS][COEFF_BASE_CONTEXTS] = {
Dake He3fe369c2017-11-16 17:56:44 -080040 { { { 109, 232, 199, 135, 87, 52, 239, 210, 142, 92, 63, 128,
41 128, 128, 128, 128, 128, 128, 128, 128, 128, 233, 205, 112,
42 75, 62, 226, 200, 122, 60, 29, 241, 204, 126, 70, 42,
43 238, 204, 119, 57, 128, 128, 203, 244, 246, 247 },
44 { 107, 223, 197, 147, 102, 62, 227, 205, 156, 112, 74, 128,
45 128, 128, 128, 128, 128, 128, 128, 128, 128, 212, 200, 138,
46 99, 64, 198, 184, 129, 78, 38, 219, 186, 131, 84, 56,
47 204, 184, 127, 77, 128, 128, 191, 226, 222, 223 } },
48 { { 163, 241, 224, 174, 109, 58, 248, 236, 200, 130, 75, 128,
49 128, 128, 128, 128, 128, 128, 128, 128, 128, 249, 244, 213,
50 128, 51, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
51 128, 128, 128, 128, 128, 128, 228, 248, 252, 254 },
52 { 153, 231, 211, 165, 113, 66, 236, 221, 180, 127, 88, 128,
53 128, 128, 128, 128, 128, 128, 128, 128, 128, 243, 238, 191,
54 111, 154, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
55 128, 128, 128, 128, 128, 128, 209, 237, 239, 248 } } },
56 { { { 91, 228, 196, 134, 88, 48, 242, 213, 157, 107, 63, 239,
57 202, 139, 92, 54, 236, 201, 138, 90, 53, 248, 229, 176,
58 121, 76, 231, 202, 140, 80, 37, 246, 222, 168, 110, 61,
59 248, 221, 151, 97, 60, 128, 199, 249, 252, 252 },
60 { 85, 196, 181, 138, 98, 55, 230, 206, 164, 121, 73, 219,
61 193, 144, 104, 62, 218, 192, 143, 101, 61, 237, 218, 182,
62 140, 90, 213, 191, 140, 94, 44, 224, 200, 159, 115, 68,
63 220, 199, 151, 107, 69, 128, 183, 229, 226, 230 } },
64 { { 139, 235, 211, 159, 107, 66, 247, 231, 184, 127, 79, 246,
65 226, 170, 103, 61, 236, 212, 161, 119, 76, 253, 245, 215,
66 156, 96, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
67 128, 128, 128, 128, 128, 128, 227, 249, 253, 255 },
68 { 128, 195, 197, 162, 121, 73, 236, 220, 184, 138, 86, 223,
69 208, 158, 107, 64, 222, 204, 167, 132, 86, 246, 234, 205,
70 161, 108, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
71 128, 128, 128, 128, 128, 128, 198, 228, 239, 244 } } },
72 { { { 73, 224, 186, 123, 79, 39, 240, 205, 146, 98, 53, 243,
73 209, 147, 98, 52, 241, 207, 145, 93, 44, 252, 236, 188,
74 134, 82, 227, 193, 125, 72, 32, 241, 218, 168, 112, 52,
75 251, 233, 179, 114, 62, 128, 179, 250, 254, 255 },
76 { 69, 200, 171, 127, 86, 41, 224, 193, 150, 107, 58, 218,
77 194, 150, 107, 58, 220, 193, 147, 102, 47, 239, 222, 188,
78 147, 92, 204, 183, 127, 80, 36, 211, 194, 158, 114, 57,
79 231, 209, 167, 120, 70, 128, 171, 226, 235, 232 } },
80 { { 117, 225, 196, 146, 107, 68, 246, 225, 177, 128, 81, 243,
81 217, 163, 105, 60, 247, 225, 180, 131, 84, 253, 241, 202,
82 148, 97, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
83 128, 128, 128, 128, 128, 128, 219, 251, 255, 255 },
84 { 103, 189, 166, 141, 116, 70, 234, 216, 184, 145, 92, 208,
85 195, 155, 110, 79, 226, 214, 184, 144, 90, 245, 229, 202,
86 164, 113, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
87 128, 128, 128, 128, 128, 128, 182, 221, 236, 243 } } },
88 { { { 72, 212, 172, 113, 74, 33, 238, 200, 139, 91, 44, 240,
89 208, 147, 98, 51, 244, 214, 157, 107, 51, 253, 233, 184,
90 132, 74, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
91 128, 128, 128, 128, 128, 128, 201, 250, 254, 255 },
92 { 68, 187, 154, 116, 80, 34, 217, 186, 142, 101, 47, 205,
93 187, 148, 106, 56, 218, 201, 163, 118, 55, 236, 215, 181,
94 141, 79, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
95 128, 128, 128, 128, 128, 128, 192, 219, 246, 244 } },
96 { { 80, 217, 179, 140, 106, 60, 237, 208, 165, 129, 94, 128,
97 128, 128, 128, 128, 128, 128, 128, 128, 128, 253, 240, 205,
98 158, 111, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
99 128, 128, 128, 128, 128, 128, 205, 250, 255, 254 },
100 { 66, 175, 129, 103, 89, 57, 204, 189, 164, 133, 106, 128,
101 128, 128, 128, 128, 128, 128, 128, 128, 128, 238, 228, 202,
102 166, 124, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Angie Chiang89347642017-11-28 17:00:28 -0800103 128, 128, 128, 128, 128, 128, 154, 207, 128, 226 } } },
104#if CONFIG_TX64X64
105 { { { 72, 212, 172, 113, 74, 33, 238, 200, 139, 91, 44, 240,
106 208, 147, 98, 51, 244, 214, 157, 107, 51, 253, 233, 184,
107 132, 74, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
108 128, 128, 128, 128, 128, 128, 201, 250, 254, 255 },
109 { 68, 187, 154, 116, 80, 34, 217, 186, 142, 101, 47, 205,
110 187, 148, 106, 56, 218, 201, 163, 118, 55, 236, 215, 181,
111 141, 79, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
112 128, 128, 128, 128, 128, 128, 192, 219, 246, 244 } },
113 { { 80, 217, 179, 140, 106, 60, 237, 208, 165, 129, 94, 128,
114 128, 128, 128, 128, 128, 128, 128, 128, 128, 253, 240, 205,
115 158, 111, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
116 128, 128, 128, 128, 128, 128, 205, 250, 255, 254 },
117 { 66, 175, 129, 103, 89, 57, 204, 189, 164, 133, 106, 128,
118 128, 128, 128, 128, 128, 128, 128, 128, 128, 238, 228, 202,
119 166, 124, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
120 128, 128, 128, 128, 128, 128, 154, 207, 128, 226 } } },
121#endif
Ola Hugosson13892102017-11-06 08:01:44 +0100122 };
123
124const aom_prob default_nz_map[TX_SIZES][PLANE_TYPES][SIG_COEF_CONTEXTS] = {
Dake He3fe369c2017-11-16 17:56:44 -0800125 { { 59, 183, 130, 76, 47, 29, 203, 154, 85, 55, 35, 128,
126 128, 128, 128, 128, 128, 128, 128, 128, 128, 202, 165, 86,
127 70, 42, 183, 132, 70, 28, 13, 212, 158, 77, 34, 22,
128 222, 172, 74, 30, 128, 128, 1, 1, 1, 1 },
129 { 97, 210, 172, 111, 61, 29, 223, 188, 131, 77, 33, 128,
130 128, 128, 128, 128, 128, 128, 128, 128, 128, 214, 192, 137,
131 63, 51, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Ola Hugossond2352ec2017-11-16 09:20:25 +0100132 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 } },
Dake He3fe369c2017-11-16 17:56:44 -0800133 { { 50, 194, 130, 72, 45, 25, 208, 150, 89, 55, 32, 206,
134 142, 80, 49, 28, 191, 137, 79, 47, 27, 224, 180, 108,
135 63, 37, 206, 137, 81, 40, 18, 229, 170, 106, 58, 30,
136 233, 180, 96, 49, 29, 128, 1, 1, 1, 1 },
137 { 84, 210, 159, 89, 55, 33, 223, 181, 114, 67, 36, 227,
138 180, 112, 58, 31, 218, 161, 95, 63, 40, 237, 208, 146,
139 88, 50, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Ola Hugossond2352ec2017-11-16 09:20:25 +0100140 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 } },
Dake He3fe369c2017-11-16 17:56:44 -0800141 { { 40, 187, 118, 65, 39, 20, 211, 142, 80, 49, 26, 226,
142 150, 83, 49, 26, 213, 146, 82, 47, 22, 237, 191, 116,
143 68, 39, 204, 124, 68, 35, 15, 226, 167, 104, 58, 26,
144 236, 195, 117, 59, 30, 128, 1, 1, 1, 1 },
145 { 69, 207, 145, 80, 53, 36, 226, 167, 98, 64, 38, 238,
146 174, 95, 54, 32, 228, 169, 103, 67, 41, 243, 201, 123,
147 77, 48, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Ola Hugossond2352ec2017-11-16 09:20:25 +0100148 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 } },
Dake He3fe369c2017-11-16 17:56:44 -0800149 { { 39, 175, 107, 58, 38, 16, 214, 135, 73, 44, 21, 235,
150 145, 80, 48, 26, 227, 149, 84, 52, 25, 247, 195, 108,
151 65, 35, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Ola Hugossond2352ec2017-11-16 09:20:25 +0100152 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 },
Dake He3fe369c2017-11-16 17:56:44 -0800153 { 44, 206, 151, 90, 60, 30, 214, 148, 92, 62, 40, 128,
154 128, 128, 128, 128, 128, 128, 128, 128, 128, 248, 197, 125,
155 80, 52, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Angie Chiang89347642017-11-28 17:00:28 -0800156 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 } },
157#if CONFIG_TX64X64
158 { { 39, 175, 107, 58, 38, 16, 214, 135, 73, 44, 21, 235,
159 145, 80, 48, 26, 227, 149, 84, 52, 25, 247, 195, 108,
160 65, 35, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
161 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 },
162 { 44, 206, 151, 90, 60, 30, 214, 148, 92, 62, 40, 128,
163 128, 128, 128, 128, 128, 128, 128, 128, 128, 248, 197, 125,
164 80, 52, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
165 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 } },
166#endif
Ola Hugosson13892102017-11-06 08:01:44 +0100167};
168#else // CONFIG_LV_MAP_MULTI
Dake He03a32922017-10-31 08:06:45 -0700169#if USE_CAUSAL_BASE_CTX
170const aom_prob default_coeff_base
171 [TX_SIZES][PLANE_TYPES][NUM_BASE_LEVELS][COEFF_BASE_CONTEXTS] = {
172 { { { 139, 242, 199, 135, 87, 51, 245, 208, 138, 89, 60,
173 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 240,
174 200, 108, 70, 56, 230, 199, 126, 66, 32, 242, 204,
175 128, 74, 45, 241, 203, 120, 62, 128, 128 },
176 { 118, 230, 197, 147, 103, 60, 228, 202, 154, 110, 72,
177 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 213,
178 196, 134, 94, 58, 199, 184, 130, 82, 40, 217, 186,
179 134, 86, 57, 204, 185, 127, 74, 128, 128 } },
180 { { 203, 248, 223, 170, 105, 58, 252, 235, 195, 125, 72,
181 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 253,
182 244, 209, 110, 85, 128, 128, 128, 128, 128, 128, 128,
183 128, 128, 128, 128, 128, 128, 128, 128, 128 },
184 { 170, 239, 210, 163, 112, 68, 239, 219, 175, 127, 84,
185 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 246,
186 234, 184, 142, 154, 128, 128, 128, 128, 128, 128, 128,
187 128, 128, 128, 128, 128, 128, 128, 128, 128 } } },
188 { { { 119, 240, 196, 136, 90, 50, 247, 214, 159, 109, 64,
189 241, 201, 137, 91, 53, 239, 199, 136, 89, 52, 251,
190 230, 176, 121, 76, 231, 202, 142, 84, 39, 246, 221,
191 169, 111, 61, 248, 221, 152, 97, 60, 128 },
192 { 98, 209, 182, 140, 100, 56, 234, 207, 166, 122, 73,
193 215, 189, 142, 103, 59, 216, 188, 140, 99, 59, 235,
194 216, 179, 137, 88, 214, 189, 141, 96, 46, 224, 200,
195 159, 117, 68, 221, 199, 152, 108, 68, 128 } },
196 { { 195, 245, 212, 159, 108, 64, 251, 231, 186, 131, 80,
197 250, 228, 175, 108, 58, 244, 213, 163, 120, 82, 254,
198 245, 216, 159, 91, 128, 128, 128, 128, 128, 128, 128,
199 128, 128, 128, 128, 128, 128, 128, 128, 128 },
200 { 150, 207, 199, 164, 121, 76, 239, 221, 185, 142, 89,
201 231, 208, 162, 113, 69, 228, 205, 169, 136, 95, 246,
202 235, 204, 157, 110, 128, 128, 128, 128, 128, 128, 128,
203 128, 128, 128, 128, 128, 128, 128, 128, 128 } } },
204 { { { 93, 232, 185, 124, 81, 38, 244, 206, 147, 98, 53,
205 246, 210, 150, 100, 54, 244, 208, 146, 94, 44, 253,
206 236, 189, 135, 82, 228, 195, 130, 76, 35, 242, 220,
207 170, 114, 59, 253, 235, 184, 122, 68, 128 },
208 { 80, 203, 169, 127, 86, 41, 228, 194, 151, 108, 58,
209 221, 195, 152, 110, 60, 220, 194, 149, 103, 48, 238,
210 221, 188, 147, 92, 205, 184, 130, 85, 41, 208, 195,
211 159, 120, 62, 233, 212, 173, 126, 76, 128 } },
212 { { 187, 239, 199, 149, 109, 66, 250, 226, 179, 130, 82,
213 248, 218, 159, 100, 63, 251, 227, 184, 135, 91, 254,
214 241, 202, 150, 99, 128, 128, 128, 128, 128, 128, 128,
215 128, 128, 128, 128, 128, 128, 128, 128, 128 },
216 { 130, 202, 169, 146, 118, 73, 236, 217, 186, 146, 91,
217 215, 194, 154, 102, 77, 234, 216, 188, 145, 98, 245,
218 229, 201, 163, 110, 128, 128, 128, 128, 128, 128, 128,
219 128, 128, 128, 128, 128, 128, 128, 128, 128 } } },
220 { { { 102, 225, 171, 113, 74, 33, 243, 201, 139, 92, 44,
221 244, 208, 146, 99, 53, 247, 214, 158, 107, 52, 253,
222 233, 183, 131, 73, 128, 128, 128, 128, 128, 128, 128,
223 128, 128, 128, 128, 128, 128, 128, 128, 128 },
224 { 80, 190, 152, 116, 79, 34, 222, 187, 142, 101, 47,
225 211, 187, 148, 106, 56, 221, 200, 163, 118, 56, 236,
226 215, 181, 140, 78, 128, 128, 128, 128, 128, 128, 128,
227 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
228 { { 166, 237, 184, 144, 106, 62, 245, 211, 167, 129, 93,
229 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 254,
230 240, 205, 158, 112, 128, 128, 128, 128, 128, 128, 128,
231 128, 128, 128, 128, 128, 128, 128, 128, 128 },
232 { 91, 185, 133, 105, 95, 60, 213, 190, 164, 131, 107,
233 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 242,
234 227, 203, 160, 127, 128, 128, 128, 128, 128, 128, 128,
Angie Chiang89347642017-11-28 17:00:28 -0800235 128, 128, 128, 128, 128, 128, 128, 128, 128 } } },
236#if CONFIG_TX64X64
237 { { { 102, 225, 171, 113, 74, 33, 243, 201, 139, 92, 44,
238 244, 208, 146, 99, 53, 247, 214, 158, 107, 52, 253,
239 233, 183, 131, 73, 128, 128, 128, 128, 128, 128, 128,
240 128, 128, 128, 128, 128, 128, 128, 128, 128 },
241 { 80, 190, 152, 116, 79, 34, 222, 187, 142, 101, 47,
242 211, 187, 148, 106, 56, 221, 200, 163, 118, 56, 236,
243 215, 181, 140, 78, 128, 128, 128, 128, 128, 128, 128,
244 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
245 { { 166, 237, 184, 144, 106, 62, 245, 211, 167, 129, 93,
246 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 254,
247 240, 205, 158, 112, 128, 128, 128, 128, 128, 128, 128,
248 128, 128, 128, 128, 128, 128, 128, 128, 128 },
249 { 91, 185, 133, 105, 95, 60, 213, 190, 164, 131, 107,
250 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 242,
251 227, 203, 160, 127, 128, 128, 128, 128, 128, 128, 128,
252 128, 128, 128, 128, 128, 128, 128, 128, 128 } } },
253#endif
Dake He03a32922017-10-31 08:06:45 -0700254 };
255
256const aom_prob default_nz_map[TX_SIZES][PLANE_TYPES][SIG_COEF_CONTEXTS] = {
257 { { 59, 183, 130, 76, 48, 28, 202, 153, 84, 54, 34, 128, 128, 128,
258 128, 128, 128, 128, 128, 128, 128, 200, 163, 84, 61, 34, 182, 131,
259 71, 31, 16, 210, 156, 78, 36, 26, 220, 170, 73, 32, 128, 128 },
260 { 96, 209, 171, 109, 59, 28, 223, 187, 128, 71, 35, 128, 128, 128,
261 128, 128, 128, 128, 128, 128, 128, 215, 192, 135, 63, 73, 128, 128,
262 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
263 { { 49, 190, 129, 74, 46, 25, 206, 150, 90, 55, 32, 205, 142, 79,
264 48, 27, 191, 137, 78, 47, 27, 223, 181, 109, 63, 37, 204, 136,
265 82, 42, 19, 226, 169, 106, 58, 30, 231, 180, 96, 49, 29, 128 },
266 { 86, 210, 159, 90, 56, 34, 223, 181, 114, 69, 40, 229, 182, 113,
267 59, 28, 218, 162, 96, 64, 42, 237, 207, 146, 92, 50, 128, 128,
268 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
269 { { 41, 187, 119, 66, 40, 20, 212, 144, 80, 49, 26, 226, 151, 84,
270 49, 27, 214, 146, 82, 47, 22, 237, 190, 115, 68, 40, 206, 126,
271 71, 37, 17, 227, 168, 103, 61, 29, 237, 197, 119, 63, 32, 128 },
272 { 70, 207, 146, 82, 54, 35, 226, 167, 99, 65, 40, 238, 176, 96,
273 57, 29, 229, 171, 108, 69, 47, 244, 201, 124, 78, 48, 128, 128,
274 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
275 { { 40, 176, 107, 57, 37, 16, 216, 136, 73, 44, 22, 235, 145, 79,
276 49, 26, 227, 149, 84, 52, 26, 247, 195, 107, 64, 35, 128, 128,
277 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
278 { 49, 210, 153, 95, 58, 31, 217, 151, 93, 64, 41, 128, 128, 128,
279 128, 128, 128, 128, 128, 128, 128, 248, 197, 123, 79, 53, 128, 128,
Angie Chiang89347642017-11-28 17:00:28 -0800280 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
281#if CONFIG_TX64X64
282 { { 40, 176, 107, 57, 37, 16, 216, 136, 73, 44, 22, 235, 145, 79,
283 49, 26, 227, 149, 84, 52, 26, 247, 195, 107, 64, 35, 128, 128,
284 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
285 { 49, 210, 153, 95, 58, 31, 217, 151, 93, 64, 41, 128, 128, 128,
286 128, 128, 128, 128, 128, 128, 128, 248, 197, 123, 79, 53, 128, 128,
287 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
288#endif
Dake He03a32922017-10-31 08:06:45 -0700289};
290
Angie Chiang89347642017-11-28 17:00:28 -0800291#else // USE_CAUSAL_BASE_CTX
Dake He03a32922017-10-31 08:06:45 -0700292
Angie Chiangbabf3e72017-03-20 15:32:24 -0700293const aom_prob default_coeff_base
Jingning Han819f45a2017-10-30 12:11:52 -0700294 [TX_SIZES][PLANE_TYPES][NUM_BASE_LEVELS][COEFF_BASE_CONTEXTS] = {
295 { { {
296 230, 199, 168, 74, 128, 169, 213, 173, 87, 21, 60, 117, 213,
297 177, 126, 22, 64, 121, 206, 168, 67, 10, 33, 96, 140,
298 },
299 {
300 236, 218, 201, 124, 185, 219, 223, 196, 128, 65, 127, 176, 224,
301 199, 151, 75, 131, 177, 217, 190, 102, 38, 93, 161, 192,
302 } },
303 { {
304 219, 188, 161, 46, 114, 163, 198, 154, 73, 10, 43, 101, 199,
305 160, 89, 12, 49, 111, 186, 136, 62, 2, 15, 66, 123,
306 },
307 {
308 228, 210, 191, 108, 177, 215, 213, 183, 125, 58, 112, 169, 212,
309 183, 134, 65, 120, 171, 206, 166, 90, 27, 73, 140, 173,
310 } } },
Angie Chiangbabf3e72017-03-20 15:32:24 -0700311
Jingning Han819f45a2017-10-30 12:11:52 -0700312 { { {
313 232, 198, 164, 85, 124, 169, 207, 156, 49, 9, 42, 97, 208,
314 160, 90, 11, 45, 101, 198, 145, 50, 2, 15, 66, 120,
315 },
316 {
317 237, 218, 199, 123, 187, 222, 219, 187, 101, 54, 117, 167, 221,
318 189, 125, 61, 121, 171, 212, 175, 81, 27, 78, 147, 185,
319 } },
320 { {
321 204, 165, 154, 39, 100, 144, 173, 117, 42, 7, 27, 71, 156,
322 108, 52, 9, 32, 78, 165, 117, 46, 2, 12, 55, 102,
323 },
324 {
325 225, 204, 183, 99, 173, 149, 205, 167, 88, 47, 99, 160, 186,
326 149, 88, 48, 98, 157, 183, 148, 76, 34, 75, 133, 187,
327 } } },
Angie Chiangbabf3e72017-03-20 15:32:24 -0700328
Jingning Han819f45a2017-10-30 12:11:52 -0700329 { { {
330 231, 199, 182, 107, 136, 172, 200, 148, 55, 8, 35, 87, 204,
331 150, 72, 10, 37, 89, 184, 127, 36, 1, 9, 47, 103,
332 },
333 {
334 236, 217, 206, 128, 188, 222, 213, 180, 98, 51, 113, 166, 218,
335 182, 115, 55, 115, 167, 200, 162, 66, 22, 70, 135, 178,
336 } },
337 { {
338 229, 200, 220, 56, 123, 179, 184, 123, 64, 8, 24, 62, 177,
339 118, 55, 8, 27, 70, 158, 101, 8, 1, 12, 54, 107,
340 },
341 {
342 232, 222, 223, 108, 195, 154, 213, 184, 71, 41, 101, 154, 206,
343 164, 109, 42, 96, 162, 182, 137, 5, 33, 81, 146, 177,
344 } } },
345 { { {
346 232, 208, 213, 120, 151, 192, 200, 152, 57, 13, 44, 94, 200,
347 148, 87, 13, 42, 94, 181, 124, 45, 1, 9, 46, 99,
348 },
349 {
350 241, 226, 222, 129, 197, 179, 213, 184, 133, 57, 119, 168, 214,
351 178, 116, 64, 119, 162, 199, 157, 64, 24, 70, 130, 176,
352 } },
353 { {
354 233, 223, 202, 65, 131, 128, 178, 138, 128, 2, 24, 59, 99,
355 111, 73, 3, 17, 52, 149, 99, 19, 2, 18, 72, 140,
356 },
357 {
358 240, 199, 230, 79, 181, 128, 192, 198, 128, 64, 121, 171, 192,
359 148, 37, 26, 83, 85, 183, 149, 8, 33, 101, 168, 128,
Angie Chiang89347642017-11-28 17:00:28 -0800360 } } },
361#if CONFIG_TX64X64
362 { { {
363 232, 208, 213, 120, 151, 192, 200, 152, 57, 13, 44, 94, 200,
364 148, 87, 13, 42, 94, 181, 124, 45, 1, 9, 46, 99,
365 },
366 {
367 241, 226, 222, 129, 197, 179, 213, 184, 133, 57, 119, 168, 214,
368 178, 116, 64, 119, 162, 199, 157, 64, 24, 70, 130, 176,
369 } },
370 { {
371 233, 223, 202, 65, 131, 128, 178, 138, 128, 2, 24, 59, 99,
372 111, 73, 3, 17, 52, 149, 99, 19, 2, 18, 72, 140,
373 },
374 {
375 240, 199, 230, 79, 181, 128, 192, 198, 128, 64, 121, 171, 192,
376 148, 37, 26, 83, 85, 183, 149, 8, 33, 101, 168, 128,
377 } } },
378#endif
Jingning Han819f45a2017-10-30 12:11:52 -0700379 };
Angie Chiangbabf3e72017-03-20 15:32:24 -0700380
Jingning Hana24a6902017-10-26 14:25:46 -0700381static const aom_prob default_nz_map[TX_SIZES][PLANE_TYPES][SIG_COEF_CONTEXTS] =
Angie Chiang89347642017-11-28 17:00:28 -0800382 {
383 { { 40, 157, 108, 70, 34, 19, 168, 98, 60, 32, 20, 128,
Jingning Hana24a6902017-10-26 14:25:46 -0700384 128, 128, 128, 128, 128, 128, 128, 128, 128, 125, 80, 41,
385 128, 128, 173, 120, 81, 36, 128, 188, 127, 84, 35, 128,
386 183, 128, 60, 128, 128, 128, 170, 122, 82, 35, 128, 186,
387 129, 84, 34, 128, 183, 128, 56, 128, 128, 128 },
388 { 67, 176, 120, 77, 44, 26, 182, 124, 77, 47, 32, 128,
389 128, 128, 128, 128, 128, 128, 128, 128, 128, 163, 127, 74,
390 128, 128, 203, 167, 122, 70, 128, 202, 171, 125, 72, 128,
391 198, 176, 105, 128, 128, 128, 192, 160, 108, 67, 128, 186,
392 160, 113, 74, 128, 188, 173, 121, 128, 128, 128 } },
393 { { 55, 192, 143, 93, 43, 17, 201, 155, 101, 50, 22, 171, 124, 76, 38,
394 17, 176, 123, 77, 40, 19, 205, 148, 99, 53, 26, 200, 140, 94, 52,
395 24, 218, 157, 103, 58, 28, 221, 161, 109, 63, 34, 128, 194, 144, 96,
396 52, 24, 212, 160, 104, 59, 26, 216, 161, 105, 57, 27, 128 },
397 { 84, 190, 149, 102, 59, 29, 204, 159, 111, 69, 41, 200,
398 151, 98, 54, 32, 193, 143, 98, 69, 46, 216, 167, 111,
399 65, 37, 211, 174, 123, 62, 23, 222, 184, 137, 79, 43,
400 222, 195, 148, 87, 128, 128, 199, 160, 119, 92, 55, 185,
401 147, 98, 70, 57, 197, 169, 122, 82, 68, 128 } },
402 { { 56, 204, 126, 80, 41, 16, 218, 157, 100, 50, 22, 211, 142, 92, 47,
403 21, 212, 150, 98, 50, 22, 230, 172, 118, 65, 32, 223, 134, 91, 50,
404 22, 237, 167, 109, 60, 31, 239, 182, 128, 78, 40, 128, 209, 138, 90,
405 52, 25, 223, 160, 105, 62, 30, 228, 173, 119, 72, 36, 128 },
406 { 79, 201, 140, 99, 64, 37, 225, 175, 128, 78, 35, 215,
407 151, 108, 49, 24, 211, 173, 138, 100, 44, 241, 185, 136,
408 95, 39, 210, 109, 89, 43, 128, 234, 144, 73, 85, 128,
409 252, 212, 121, 64, 128, 128, 216, 167, 127, 99, 102, 211,
410 182, 168, 129, 110, 202, 157, 101, 66, 42, 128 } },
411 { { 41, 177, 92, 53, 29, 14, 218, 137, 87, 47, 20, 201,
412 124, 80, 50, 29, 208, 151, 104, 59, 27, 244, 173, 113,
413 66, 36, 233, 105, 76, 53, 23, 249, 163, 97, 98, 128,
414 254, 192, 136, 97, 47, 128, 237, 137, 86, 54, 31, 244,
415 157, 100, 60, 33, 241, 177, 115, 68, 33, 128 },
416 { 73, 231, 149, 83, 63, 64, 242, 192, 132, 113, 114, 128,
417 128, 128, 128, 128, 128, 128, 128, 128, 128, 252, 204, 160,
418 114, 36, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Dake Hea47cd6c2017-10-13 18:09:58 -0700419 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
Angie Chiang89347642017-11-28 17:00:28 -0800420 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
421#if CONFIG_TX64X64
422 { { 41, 177, 92, 53, 29, 14, 218, 137, 87, 47, 20, 201,
423 124, 80, 50, 29, 208, 151, 104, 59, 27, 244, 173, 113,
424 66, 36, 233, 105, 76, 53, 23, 249, 163, 97, 98, 128,
425 254, 192, 136, 97, 47, 128, 237, 137, 86, 54, 31, 244,
426 157, 100, 60, 33, 241, 177, 115, 68, 33, 128 },
427 { 73, 231, 149, 83, 63, 64, 242, 192, 132, 113, 114, 128,
428 128, 128, 128, 128, 128, 128, 128, 128, 128, 252, 204, 160,
429 114, 36, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
430 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
431 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
432#endif
433 };
Dake He03a32922017-10-31 08:06:45 -0700434#endif // USE_CAUSAL_BASE_CTX
Ola Hugosson13892102017-11-06 08:01:44 +0100435#endif // CONFIG_LV_MAP_MULTI
Jingning Han480ee022017-04-03 20:31:08 -0700436
Dake Hea47cd6c2017-10-13 18:09:58 -0700437static const aom_prob
438 default_eob_flag[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS] = {
Jingning Han35deaa72017-10-26 15:36:30 -0700439 { { 225, 240, 225, 200, 128, 128, 128, 128, 128, 128, 128,
440 245, 246, 238, 203, 128, 128, 128, 128, 128, 128, 128 },
441 { 181, 219, 192, 144, 128, 128, 128, 128, 128, 128, 128,
442 218, 231, 199, 152, 128, 128, 128, 128, 128, 128, 128 } },
443 { { 233, 247, 240, 234, 211, 194, 128, 128, 128, 128, 128,
444 252, 252, 249, 242, 221, 208, 128, 128, 128, 128, 128 },
445 { 154, 222, 204, 180, 132, 128, 128, 128, 128, 128, 128,
446 216, 235, 206, 181, 121, 112, 128, 128, 128, 128, 128 } },
447 { { 233, 246, 241, 238, 231, 216, 186, 171, 128, 128, 128,
448 251, 252, 251, 244, 233, 218, 192, 191, 128, 128, 128 },
449 { 117, 221, 214, 223, 215, 202, 176, 116, 128, 128, 128,
450 205, 234, 219, 183, 195, 126, 76, 128, 128, 128, 128 } },
451 { { 194, 231, 213, 215, 207, 200, 183, 169, 135, 168, 128,
452 240, 246, 243, 238, 210, 201, 172, 133, 107, 128, 128 },
453 { 122, 232, 230, 244, 250, 247, 252, 253, 254, 52, 128,
Angie Chiang89347642017-11-28 17:00:28 -0800454 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
455#if CONFIG_TX64X64
456 { { 194, 231, 213, 215, 207, 200, 183, 169, 135, 168, 128,
457 240, 246, 243, 238, 210, 201, 172, 133, 107, 128, 128 },
458 { 122, 232, 230, 244, 250, 247, 252, 253, 254, 52, 128,
459 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
460#endif
Dake Hea47cd6c2017-10-13 18:09:58 -0700461 };
Jingning Han3422ac12017-10-25 20:37:53 -0700462
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700463static const aom_prob
464 default_eob_extra[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS] = {
465 { {
Jingning Han35deaa72017-10-26 15:36:30 -0700466 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
467 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700468 },
469 {
Jingning Han35deaa72017-10-26 15:36:30 -0700470 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
471 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700472 } },
473 { {
Jingning Han35deaa72017-10-26 15:36:30 -0700474 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
475 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700476 },
477 {
Jingning Han35deaa72017-10-26 15:36:30 -0700478 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
479 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700480 } },
481 { {
Jingning Han35deaa72017-10-26 15:36:30 -0700482 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
483 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700484 },
485 {
Jingning Han35deaa72017-10-26 15:36:30 -0700486 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
487 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700488 } },
489 { {
Jingning Han35deaa72017-10-26 15:36:30 -0700490 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
491 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700492 },
493 {
Jingning Han35deaa72017-10-26 15:36:30 -0700494 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
495 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
Angie Chiang89347642017-11-28 17:00:28 -0800496 } },
497#if CONFIG_TX64X64
498 { {
499 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
500 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
501 },
502 {
503 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
504 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
505 } },
506#endif
Angie Chiangfcdda9d2017-10-22 18:14:13 -0700507 };
Jingning Han480ee022017-04-03 20:31:08 -0700508
Angie Chiangbabf3e72017-03-20 15:32:24 -0700509const aom_prob default_coeff_lps[TX_SIZES][PLANE_TYPES][LEVEL_CONTEXTS] = {
Jingning Han87b01b52017-08-31 12:07:20 -0700510 { { 96, 128, 86, 122, 128, 84, 125, 128, 88, 99, 126, 128,
511 135, 159, 99, 130, 134, 100, 128, 144, 70, 97, 128, 139,
512 157, 168, 127, 148, 162, 121, 149, 157, 118, 127, 143, 157,
513 178, 186, 168, 171, 183, 165, 169, 180, 180, 169, 166, 177 },
514 { 81, 128, 72, 95, 128, 64, 98, 128, 42, 66, 101, 128,
515 129, 163, 97, 122, 130, 91, 119, 141, 70, 94, 118, 166,
516 157, 168, 117, 143, 151, 111, 144, 154, 76, 113, 128, 158,
517 177, 185, 165, 167, 179, 155, 166, 179, 110, 137, 115, 165 } },
518 { { 102, 128, 79, 125, 128, 74, 121, 128, 61, 98, 128, 128,
519 141, 164, 96, 132, 150, 90, 128, 153, 62, 100, 128, 153,
520 162, 172, 120, 146, 162, 113, 142, 154, 96, 113, 138, 155,
521 181, 188, 151, 170, 179, 147, 167, 181, 158, 157, 163, 176 },
522 { 103, 128, 80, 116, 128, 66, 94, 128, 35, 65, 109, 128,
523 134, 163, 104, 137, 154, 92, 128, 104, 58, 94, 129, 132,
524 156, 173, 137, 149, 165, 104, 143, 143, 112, 101, 133, 159,
525 176, 186, 134, 172, 175, 155, 169, 177, 255, 107, 137, 168 } },
526 { { 125, 128, 85, 157, 128, 82, 155, 128, 42, 83, 116, 128,
527 155, 174, 101, 144, 155, 93, 140, 155, 57, 92, 124, 149,
528 173, 178, 114, 148, 161, 111, 145, 161, 77, 101, 131, 153,
529 190, 191, 140, 169, 183, 140, 169, 179, 108, 122, 150, 171 },
530 { 136, 128, 108, 163, 128, 96, 140, 128, 48, 90, 85, 128,
531 144, 164, 113, 158, 179, 107, 159, 128, 43, 75, 133, 160,
532 157, 184, 144, 160, 189, 154, 152, 184, 128, 124, 137, 140,
533 188, 196, 148, 170, 178, 128, 177, 159, 128, 179, 135, 135 } },
534 { { 133, 128, 110, 153, 128, 101, 157, 128, 49, 91, 134, 128,
535 151, 168, 129, 158, 162, 112, 154, 168, 63, 99, 130, 158,
536 171, 178, 128, 160, 173, 111, 155, 171, 86, 108, 143, 159,
537 194, 196, 162, 177, 185, 123, 172, 181, 101, 132, 156, 178 },
Ola Hugosson52d6c892017-11-16 16:51:46 +0100538 { 133, 128, 129, 144, 128, 116, 135, 128, 43, 101, 100, 128, 140, 163, 158,
539 173, 205, 128, 165, 171, 128, 128, 210, 163, 172, 184, 192, 176, 201, 183,
540 177, 190, 128, 192, 199, 144,
541#if CONFIG_LV_MAP_MULTI
542 // TODO(olah): The 1 causes an assert in av1_cost_tokens_from_cdf.
543 // Changing to 10 is a temporary fix until the root cause is found.
Angie Chiang89347642017-11-28 17:00:28 -0800544 192, 192, 10, 196, 192, 255, 171, 178, 255, 128, 171, 179 } },
Ola Hugosson52d6c892017-11-16 16:51:46 +0100545#else
Angie Chiang89347642017-11-28 17:00:28 -0800546 192, 192, 1, 196, 192, 255, 171, 178, 255, 128, 171, 179 } },
Ola Hugosson52d6c892017-11-16 16:51:46 +0100547#endif
Angie Chiang89347642017-11-28 17:00:28 -0800548#if CONFIG_TX64X64
549 { { 133, 128, 110, 153, 128, 101, 157, 128, 49, 91, 134, 128,
550 151, 168, 129, 158, 162, 112, 154, 168, 63, 99, 130, 158,
551 171, 178, 128, 160, 173, 111, 155, 171, 86, 108, 143, 159,
552 194, 196, 162, 177, 185, 123, 172, 181, 101, 132, 156, 178 },
553 { 133, 128, 129, 144, 128, 116, 135, 128, 43, 101, 100, 128, 140, 163, 158,
554 173, 205, 128, 165, 171, 128, 128, 210, 163, 172, 184, 192, 176, 201, 183,
555 177, 190, 128, 192, 199, 144,
556#if CONFIG_LV_MAP_MULTI
557 // TODO(olah): The 1 causes an assert in av1_cost_tokens_from_cdf.
558 // Changing to 10 is a temporary fix until the root cause is found.
559 192, 192, 10, 196, 192, 255, 171, 178, 255, 128, 171, 179 } },
560#else
561 192, 192, 1, 196, 192, 255, 171, 178, 255, 128, 171, 179 } },
562#endif
563#endif // CONFIG_TX64X64
Angie Chiangbabf3e72017-03-20 15:32:24 -0700564};
Jingning Han36773c72017-10-25 16:41:49 -0700565
Ola Hugossone72a2092017-11-12 09:11:53 +0100566#if !CONFIG_LV_MAP_MULTI
Jingning Han87b01b52017-08-31 12:07:20 -0700567const aom_prob
568 default_coeff_br[TX_SIZES][PLANE_TYPES][BASE_RANGE_SETS][LEVEL_CONTEXTS] = {
Jingning Han87b01b52017-08-31 12:07:20 -0700569 { { { 62, 128, 54, 116, 128, 51, 97, 128, 59, 68, 107, 128,
570 119, 158, 68, 115, 131, 65, 112, 138, 34, 71, 118, 137,
571 171, 184, 110, 152, 178, 105, 146, 172, 89, 111, 145, 173,
572 214, 226, 201, 198, 214, 196, 193, 210, 239, 196, 186, 202 },
573 { 41, 128, 58, 52, 128, 51, 61, 128, 92, 54, 48, 128,
574 67, 113, 36, 55, 75, 30, 56, 72, 12, 25, 50, 79,
575 94, 131, 37, 75, 108, 42, 78, 103, 5, 31, 67, 103,
576 172, 192, 131, 135, 167, 129, 136, 165, 149, 144, 120, 149 },
577 { 35, 128, 74, 50, 128, 63, 59, 128, 87, 74, 38, 128,
578 32, 53, 23, 34, 50, 18, 30, 41, 15, 13, 18, 18,
579 52, 74, 18, 29, 36, 18, 31, 47, 51, 9, 15, 27,
580 96, 134, 85, 70, 93, 96, 79, 100, 108, 100, 55, 65 } },
581 { { 52, 128, 35, 79, 128, 29, 66, 128, 12, 30, 57, 128,
582 113, 156, 64, 107, 172, 54, 103, 145, 23, 57, 96, 110,
583 165, 184, 95, 138, 166, 95, 141, 184, 55, 80, 133, 165,
584 212, 222, 134, 175, 206, 158, 177, 197, 102, 61, 154, 190 },
585 { 36, 128, 18, 26, 128, 15, 29, 128, 4, 6, 30, 128,
586 63, 113, 25, 44, 66, 22, 40, 67, 9, 14, 34, 55,
587 90, 125, 26, 66, 82, 29, 73, 88, 1, 26, 34, 67,
588 158, 179, 70, 121, 134, 69, 111, 129, 1, 85, 54, 105 },
589 { 24, 128, 8, 31, 128, 15, 16, 128, 1, 1, 1, 128,
590 32, 39, 16, 18, 43, 5, 17, 13, 1, 1, 22, 1,
591 37, 65, 26, 20, 28, 16, 15, 24, 128, 1, 1, 1,
592 83, 107, 57, 56, 74, 34, 29, 73, 128, 1, 37, 47 } } },
593 { { { 72, 128, 45, 113, 128, 38, 100, 128, 26, 63, 112, 128,
594 134, 177, 65, 121, 148, 57, 111, 143, 27, 68, 116, 152,
595 181, 198, 98, 148, 173, 84, 136, 168, 53, 89, 134, 170,
596 218, 230, 173, 194, 216, 160, 188, 213, 199, 177, 183, 204 },
597 { 54, 128, 34, 55, 128, 32, 53, 128, 66, 45, 54, 128,
598 81, 128, 33, 59, 102, 26, 55, 80, 7, 23, 49, 91,
599 116, 145, 36, 79, 107, 35, 73, 102, 12, 28, 57, 95,
600 170, 201, 102, 133, 173, 105, 127, 173, 166, 132, 114, 149 },
601 { 40, 128, 25, 30, 128, 21, 31, 128, 24, 17, 24, 128,
602 51, 67, 19, 28, 40, 17, 25, 42, 15, 13, 19, 19,
603 61, 77, 19, 30, 48, 13, 33, 50, 11, 15, 21, 30,
604 103, 147, 37, 69, 111, 37, 66, 105, 18, 18, 36, 76 } },
605 { { 74, 128, 42, 99, 128, 32, 57, 128, 9, 28, 76, 128,
606 115, 187, 70, 118, 120, 52, 109, 128, 19, 60, 93, 100,
607 178, 197, 119, 147, 179, 92, 137, 178, 37, 87, 110, 158,
608 216, 227, 169, 186, 201, 128, 178, 204, 1, 96, 155, 217 },
609 { 59, 128, 26, 34, 128, 11, 20, 128, 7, 8, 24, 128,
610 73, 125, 38, 74, 96, 23, 61, 79, 15, 9, 23, 110,
611 96, 151, 49, 79, 164, 22, 70, 65, 1, 1, 9, 69,
612 156, 196, 73, 105, 181, 17, 126, 155, 128, 1, 90, 111 },
613 { 42, 128, 10, 11, 128, 13, 1, 128, 1, 1, 1, 128,
614 55, 63, 13, 17, 85, 1, 16, 64, 1, 1, 1, 1,
615 62, 58, 32, 21, 53, 1, 37, 91, 128, 128, 1, 1,
616 81, 133, 51, 48, 79, 1, 25, 81, 128, 128, 1, 54 } } },
617 { { { 103, 128, 52, 163, 128, 46, 155, 128, 12, 45, 97, 128,
618 162, 196, 69, 140, 170, 60, 130, 158, 21, 58, 109, 150,
619 205, 214, 93, 149, 178, 79, 143, 179, 38, 71, 120, 159,
620 231, 240, 150, 192, 218, 140, 188, 220, 84, 112, 159, 196 },
621 { 93, 128, 42, 143, 128, 41, 132, 128, 6, 15, 40, 128,
622 113, 172, 39, 99, 113, 33, 91, 94, 5, 15, 42, 83,
623 148, 172, 37, 91, 130, 28, 81, 121, 9, 20, 47, 87,
624 201, 223, 75, 139, 183, 77, 132, 176, 23, 41, 82, 147 },
625 { 92, 128, 45, 123, 128, 28, 88, 128, 1, 8, 20, 128,
626 85, 94, 39, 95, 83, 33, 81, 61, 4, 5, 17, 25,
627 84, 109, 17, 59, 76, 11, 46, 62, 1, 4, 13, 35,
628 139, 184, 25, 86, 129, 25, 71, 123, 26, 13, 31, 84 } },
629 { { 123, 128, 82, 169, 128, 62, 139, 128, 1, 28, 77, 128,
630 139, 167, 92, 170, 146, 76, 149, 255, 19, 68, 160, 73,
631 190, 209, 171, 165, 218, 57, 152, 209, 128, 61, 122, 164,
632 237, 240, 146, 210, 227, 128, 224, 220, 128, 128, 196, 199 },
633 { 130, 128, 52, 141, 128, 32, 101, 128, 128, 1, 85, 128,
634 94, 155, 71, 121, 255, 30, 116, 85, 1, 8, 58, 255,
635 105, 169, 110, 101, 132, 1, 77, 142, 128, 1, 54, 96,
636 166, 214, 224, 154, 198, 255, 153, 230, 128, 85, 100, 146 },
637 { 103, 128, 26, 83, 128, 20, 47, 128, 128, 128, 1, 128,
638 91, 90, 19, 76, 128, 1, 42, 1, 128, 255, 64, 128,
639 74, 77, 1, 72, 68, 128, 13, 77, 128, 128, 64, 1,
640 71, 147, 37, 99, 171, 1, 104, 151, 128, 1, 1, 96 } } },
641 { { { 113, 128, 79, 165, 128, 69, 149, 128, 14, 55, 116, 128,
642 163, 202, 104, 169, 205, 82, 159, 180, 22, 64, 121, 165,
643 207, 216, 113, 177, 215, 95, 166, 195, 35, 77, 132, 179,
644 241, 244, 173, 207, 233, 128, 202, 227, 92, 121, 169, 209 },
645 { 114, 128, 67, 136, 128, 54, 132, 128, 6, 26, 62, 128,
646 85, 129, 85, 146, 173, 64, 129, 140, 7, 19, 65, 92,
647 139, 169, 42, 147, 186, 40, 129, 170, 18, 18, 65, 117,
648 213, 230, 74, 172, 213, 69, 165, 196, 1, 40, 103, 170 },
649 { 101, 128, 61, 134, 128, 52, 97, 128, 1, 14, 26, 128,
650 79, 72, 71, 135, 152, 56, 114, 117, 1, 10, 24, 58,
651 64, 66, 60, 133, 148, 16, 126, 123, 1, 32, 26, 56,
652 143, 197, 51, 141, 176, 59, 132, 162, 128, 17, 47, 106 } },
653 { { 115, 128, 112, 135, 128, 89, 130, 128, 15, 49, 89, 128,
654 143, 238, 154, 203, 255, 138, 172, 255, 1, 98, 196, 255,
655 185, 203, 255, 211, 255, 192, 217, 235, 128, 128, 171, 255,
656 233, 233, 255, 247, 255, 1, 239, 245, 1, 128, 255, 255 },
657 { 75, 128, 76, 118, 128, 35, 74, 128, 1, 13, 23, 128,
658 63, 138, 114, 164, 140, 91, 128, 128, 128, 1, 138, 64,
659 96, 128, 255, 175, 236, 85, 166, 209, 128, 1, 128, 146,
660 196, 217, 1, 204, 206, 128, 212, 221, 128, 128, 128, 219 },
661 { 49, 128, 36, 62, 128, 37, 56, 128, 128, 1, 1, 128,
662 45, 37, 68, 102, 128, 90, 56, 1, 128, 128, 37, 1,
663 26, 27, 128, 126, 128, 255, 63, 142, 128, 128, 1, 1,
Angie Chiang89347642017-11-28 17:00:28 -0800664 125, 159, 128, 173, 212, 128, 85, 189, 128, 128, 255, 171 } } },
665#if CONFIG_TX64X64
666 { { { 113, 128, 79, 165, 128, 69, 149, 128, 14, 55, 116, 128,
667 163, 202, 104, 169, 205, 82, 159, 180, 22, 64, 121, 165,
668 207, 216, 113, 177, 215, 95, 166, 195, 35, 77, 132, 179,
669 241, 244, 173, 207, 233, 128, 202, 227, 92, 121, 169, 209 },
670 { 114, 128, 67, 136, 128, 54, 132, 128, 6, 26, 62, 128,
671 85, 129, 85, 146, 173, 64, 129, 140, 7, 19, 65, 92,
672 139, 169, 42, 147, 186, 40, 129, 170, 18, 18, 65, 117,
673 213, 230, 74, 172, 213, 69, 165, 196, 1, 40, 103, 170 },
674 { 101, 128, 61, 134, 128, 52, 97, 128, 1, 14, 26, 128,
675 79, 72, 71, 135, 152, 56, 114, 117, 1, 10, 24, 58,
676 64, 66, 60, 133, 148, 16, 126, 123, 1, 32, 26, 56,
677 143, 197, 51, 141, 176, 59, 132, 162, 128, 17, 47, 106 } },
678 { { 115, 128, 112, 135, 128, 89, 130, 128, 15, 49, 89, 128,
679 143, 238, 154, 203, 255, 138, 172, 255, 1, 98, 196, 255,
680 185, 203, 255, 211, 255, 192, 217, 235, 128, 128, 171, 255,
681 233, 233, 255, 247, 255, 1, 239, 245, 1, 128, 255, 255 },
682 { 75, 128, 76, 118, 128, 35, 74, 128, 1, 13, 23, 128,
683 63, 138, 114, 164, 140, 91, 128, 128, 128, 1, 138, 64,
684 96, 128, 255, 175, 236, 85, 166, 209, 128, 1, 128, 146,
685 196, 217, 1, 204, 206, 128, 212, 221, 128, 128, 128, 219 },
686 { 49, 128, 36, 62, 128, 37, 56, 128, 128, 1, 1, 128,
687 45, 37, 68, 102, 128, 90, 56, 1, 128, 128, 37, 1,
688 26, 27, 128, 126, 128, 255, 63, 142, 128, 128, 1, 1,
689 125, 159, 128, 173, 212, 128, 85, 189, 128, 128, 255, 171 } } },
690#endif
Jingning Han87b01b52017-08-31 12:07:20 -0700691 };
Ola Hugossone72a2092017-11-12 09:11:53 +0100692#endif
Angie Chiangbabf3e72017-03-20 15:32:24 -0700693#endif // CONFIG_LV_MAP
694
Thomas Davies149eda52017-06-12 18:11:55 +0100695static const aom_cdf_prob default_newmv_cdf[NEWMV_MODE_CONTEXTS][CDF_SIZE(2)] =
Thomas Daedee82e5772017-11-06 17:27:10 -0800696 { { AOM_CDF2(128 * 155) }, { AOM_CDF2(128 * 116) }, { AOM_CDF2(128 * 94) },
697 { AOM_CDF2(128 * 32) }, { AOM_CDF2(128 * 96) }, { AOM_CDF2(128 * 56) },
698 { AOM_CDF2(128 * 30) } };
Sarah Parker2b9ec2e2017-10-30 17:34:08 -0700699static const aom_cdf_prob default_zeromv_cdf[GLOBALMV_MODE_CONTEXTS][CDF_SIZE(
Thomas Daedee82e5772017-11-06 17:27:10 -0800700 2)] = { { AOM_CDF2(128 * 45) }, { AOM_CDF2(128 * 13) } };
Yue Chena9529a32017-07-10 17:53:17 -0700701static const aom_cdf_prob default_refmv_cdf[REFMV_MODE_CONTEXTS][CDF_SIZE(2)] =
Thomas Daedee82e5772017-11-06 17:27:10 -0800702 {
703 { AOM_CDF2(128 * 178) }, { AOM_CDF2(128 * 212) }, { AOM_CDF2(128 * 135) },
704 { AOM_CDF2(128 * 244) }, { AOM_CDF2(128 * 203) }, { AOM_CDF2(128 * 122) },
705 { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }
706 };
Thomas Davies149eda52017-06-12 18:11:55 +0100707static const aom_cdf_prob default_drl_cdf[DRL_MODE_CONTEXTS][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800708 { AOM_CDF2(128 * 119) },
709 { AOM_CDF2(128 * 128) },
710 { AOM_CDF2(128 * 189) },
711 { AOM_CDF2(128 * 134) },
712 { AOM_CDF2(128 * 128) }
Thomas Davies149eda52017-06-12 18:11:55 +0100713};
Yaowu Xuc27fc142016-08-22 16:08:15 -0700714
Thomas Davies8c08a332017-06-26 17:30:34 +0100715static const aom_cdf_prob
716 default_inter_compound_mode_cdf[INTER_MODE_CONTEXTS][CDF_SIZE(
717 INTER_COMPOUND_MODES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800718 { AOM_CDF8(19712, 28229, 30892, 31437, 31712, 32135, 32360) },
719 { AOM_CDF8(9600, 24804, 29268, 30323, 30802, 31726, 32177) },
720 { AOM_CDF8(896, 22434, 27015, 29026, 29753, 31114, 31597) },
721 { AOM_CDF8(1024, 15904, 22127, 25421, 26864, 28996, 30001) },
722 { AOM_CDF8(512, 11222, 17217, 21445, 23473, 26133, 27550) },
723 { AOM_CDF8(2944, 13313, 17214, 20751, 23211, 25500, 26992) },
724 { AOM_CDF8(3456, 9067, 14069, 16907, 18817, 21214, 23139) }
Thomas Davies8c08a332017-06-26 17:30:34 +0100725 };
Thomas Davies8c08a332017-06-26 17:30:34 +0100726
Thomas Daviesd8dac222017-06-27 11:23:15 +0100727static const aom_cdf_prob
Rupert Swarbrick93c39e92017-07-12 11:11:02 +0100728 default_compound_type_cdf[BLOCK_SIZES_ALL][CDF_SIZE(COMPOUND_TYPES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800729 { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
730 { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
731 { AOM_CDF3(32640, 32704) }, { AOM_CDF3(32640, 32704) },
732 { AOM_CDF3(8448, 13293) }, { AOM_CDF3(9216, 12436) },
733 { AOM_CDF3(10112, 12679) }, { AOM_CDF3(9088, 10753) },
734 { AOM_CDF3(10368, 12906) }, { AOM_CDF3(10368, 12643) },
735 { AOM_CDF3(8832, 10609) }, { AOM_CDF3(13312, 13388) },
736 { AOM_CDF3(12672, 12751) }, { AOM_CDF3(9600, 9691) },
Thomas Daviesd8dac222017-06-27 11:23:15 +0100737#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800738 { AOM_CDF3(32640, 32641) }, // 255, 1
739 { AOM_CDF3(32640, 32641) }, { AOM_CDF3(32640, 32641) },
Thomas Daviesd8dac222017-06-27 11:23:15 +0100740#endif // CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800741 { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
742 { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
743 { AOM_CDF3(26624, 26648) }, // 208, 1
744 { AOM_CDF3(26624, 26648) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100745#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800746 { AOM_CDF3(26624, 26648) }, { AOM_CDF3(26624, 26648) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100747#endif
Thomas Daviesd8dac222017-06-27 11:23:15 +0100748 };
Thomas Daviesd8dac222017-06-27 11:23:15 +0100749
Thomas Daviescff91712017-07-07 11:49:55 +0100750static const aom_cdf_prob default_interintra_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(
Thomas Daedee82e5772017-11-06 17:27:10 -0800751 2)] = { { AOM_CDF2(128 * 128) },
752 { AOM_CDF2(226 * 128) },
753 { AOM_CDF2(244 * 128) },
754 { AOM_CDF2(254 * 128) } };
Thomas Daviescff91712017-07-07 11:49:55 +0100755
Thomas Davies299ff042017-06-27 13:41:59 +0100756static const aom_cdf_prob
Thomas Daedee82e5772017-11-06 17:27:10 -0800757 default_interintra_mode_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(INTERINTRA_MODES)] =
758 { { AOM_CDF4(16384, 24576, 28672) },
759 { AOM_CDF4(3072, 7016, 18987) },
760 { AOM_CDF4(4864, 8461, 17481) },
761 { AOM_CDF4(6528, 8681, 19031) } };
Yaowu Xuc27fc142016-08-22 16:08:15 -0700762
Thomas Daviescff91712017-07-07 11:49:55 +0100763static const aom_cdf_prob
Thomas Davies8e6267f2017-07-13 17:09:52 +0100764 default_wedge_interintra_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800765 { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
766 { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
767 { AOM_CDF2(194 * 128) }, { AOM_CDF2(213 * 128) }, { AOM_CDF2(217 * 128) },
768 { AOM_CDF2(222 * 128) }, { AOM_CDF2(224 * 128) }, { AOM_CDF2(226 * 128) },
769 { AOM_CDF2(220 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
770 { AOM_CDF2(128 * 128) },
Thomas Daviescff91712017-07-07 11:49:55 +0100771#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800772 { AOM_CDF2(255 * 128) }, { AOM_CDF2(255 * 128) }, { AOM_CDF2(255 * 128) },
Thomas Daviescff91712017-07-07 11:49:55 +0100773#endif // CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800774 { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) },
775 { AOM_CDF2(208 * 128) }, { AOM_CDF2(255 * 128) }, { AOM_CDF2(255 * 128) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100776#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800777 { AOM_CDF2(255 * 128) }, { AOM_CDF2(255 * 128) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100778#endif // CONFIG_EXT_PARTITION
Thomas Daviescff91712017-07-07 11:49:55 +0100779 };
Thomas Daviescff91712017-07-07 11:49:55 +0100780
Yue Chencb60b182016-10-13 15:18:22 -0700781const aom_tree_index av1_motion_mode_tree[TREE_SIZE(MOTION_MODES)] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -0700782 -SIMPLE_TRANSLATION, 2, -OBMC_CAUSAL, -WARPED_CAUSAL,
783};
Rupert Swarbrick93c39e92017-07-12 11:11:02 +0100784
785static const aom_prob
786 default_motion_mode_prob[BLOCK_SIZES_ALL][MOTION_MODES - 1] = {
Hui Su9fa96232017-10-23 15:46:04 -0700787 { 128, 128 }, { 128, 128 }, { 128, 128 }, { 128, 128 },
788 { 128, 128 }, { 128, 128 }, { 62, 115 }, { 39, 131 },
789 { 39, 132 }, { 118, 94 }, { 77, 125 }, { 100, 121 },
790 { 190, 66 }, { 207, 102 }, { 197, 100 }, { 239, 76 },
Yaowu Xuc27fc142016-08-22 16:08:15 -0700791#if CONFIG_EXT_PARTITION
792 { 252, 200 }, { 252, 200 }, { 252, 200 },
793#endif // CONFIG_EXT_PARTITION
Hui Su9fa96232017-10-23 15:46:04 -0700794 { 208, 200 }, { 208, 200 }, { 208, 200 }, { 208, 200 },
795 { 208, 200 }, { 208, 200 },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100796#if CONFIG_EXT_PARTITION
797 { 252, 200 }, { 252, 200 }
798#endif // CONFIG_EXT_PARTITION
Yaowu Xuc27fc142016-08-22 16:08:15 -0700799 };
Thomas Davies04e5aa72017-06-28 14:36:39 +0100800static const aom_cdf_prob
Rupert Swarbrick93c39e92017-07-12 11:11:02 +0100801 default_motion_mode_cdf[BLOCK_SIZES_ALL][CDF_SIZE(MOTION_MODES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800802 { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
803 { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
804 { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
805 { AOM_CDF3(7936, 19091) }, { AOM_CDF3(4991, 19205) },
806 { AOM_CDF3(4992, 19314) }, { AOM_CDF3(15104, 21590) },
807 { AOM_CDF3(9855, 21043) }, { AOM_CDF3(12800, 22238) },
808 { AOM_CDF3(24320, 26498) }, { AOM_CDF3(26496, 28995) },
809 { AOM_CDF3(25216, 28166) }, { AOM_CDF3(30592, 31238) },
Thomas Davies04e5aa72017-06-28 14:36:39 +0100810#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800811 { AOM_CDF3(32256, 32656) }, { AOM_CDF3(32256, 32656) },
812 { AOM_CDF3(32256, 32656) },
Thomas Davies04e5aa72017-06-28 14:36:39 +0100813#endif
Thomas Daedee82e5772017-11-06 17:27:10 -0800814 { AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
815 { AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
816 { AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100817#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800818 { AOM_CDF3(32256, 32656) }, { AOM_CDF3(32256, 32656) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100819#endif
Thomas Davies04e5aa72017-06-28 14:36:39 +0100820 };
Yue Chen80daf0c2017-11-02 17:14:18 -0700821
Thomas Davies8e6267f2017-07-13 17:09:52 +0100822static const aom_cdf_prob default_obmc_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800823 { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
824 { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
825 { AOM_CDF2(45 * 128) }, { AOM_CDF2(79 * 128) }, { AOM_CDF2(75 * 128) },
826 { AOM_CDF2(130 * 128) }, { AOM_CDF2(141 * 128) }, { AOM_CDF2(144 * 128) },
827 { AOM_CDF2(208 * 128) }, { AOM_CDF2(201 * 128) }, { AOM_CDF2(186 * 128) },
828 { AOM_CDF2(231 * 128) },
Thomas Daviesd9b57262017-06-27 17:43:25 +0100829#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800830 { AOM_CDF2(252 * 128) }, { AOM_CDF2(252 * 128) }, { AOM_CDF2(252 * 128) },
Thomas Daviesd9b57262017-06-27 17:43:25 +0100831#endif // CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800832 { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) },
833 { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100834#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -0800835 { AOM_CDF2(252 * 128) }, { AOM_CDF2(252 * 128) },
Rupert Swarbrick2fa6e1c2017-09-11 12:38:10 +0100836#endif // CONFIG_EXT_PARTITION
Thomas Daviesd9b57262017-06-27 17:43:25 +0100837};
Yaowu Xuc27fc142016-08-22 16:08:15 -0700838
Thomas Daviesd6ee8a82017-03-02 14:42:50 +0000839static const aom_cdf_prob default_delta_q_cdf[CDF_SIZE(DELTA_Q_PROBS + 1)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800840 AOM_CDF4(28160, 32120, 32677)
Thomas Daviesd6ee8a82017-03-02 14:42:50 +0000841};
Fangwen Fu231fe422017-04-24 17:52:29 -0700842#if CONFIG_EXT_DELTA_Q
Cheng Chena97394f2017-09-27 15:05:14 -0700843#if CONFIG_LOOPFILTER_LEVEL
Thomas Daedee82e5772017-11-06 17:27:10 -0800844static const aom_cdf_prob default_delta_lf_multi_cdf[FRAME_LF_COUNT][CDF_SIZE(
845 DELTA_LF_PROBS + 1)] = { { AOM_CDF4(28160, 32120, 32677) },
846 { AOM_CDF4(28160, 32120, 32677) },
847 { AOM_CDF4(28160, 32120, 32677) },
848 { AOM_CDF4(28160, 32120, 32677) } };
Cheng Chen880166a2017-10-02 17:48:48 -0700849#endif // CONFIG_LOOPFILTER_LEVEL
Fangwen Fu231fe422017-04-24 17:52:29 -0700850static const aom_cdf_prob default_delta_lf_cdf[CDF_SIZE(DELTA_LF_PROBS + 1)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800851 AOM_CDF4(28160, 32120, 32677)
Fangwen Fu231fe422017-04-24 17:52:29 -0700852};
853#endif
Thomas Daviesf6936102016-09-05 16:51:31 +0100854
Yaowu Xuc27fc142016-08-22 16:08:15 -0700855/* clang-format off */
Yue Chen4d26acb2017-05-01 12:28:34 -0700856const aom_tree_index av1_interintra_mode_tree[TREE_SIZE(INTERINTRA_MODES)] = {
857 -II_DC_PRED, 2, /* 0 = II_DC_NODE */
Yue Chen4d26acb2017-05-01 12:28:34 -0700858 -II_SMOOTH_PRED, 4, /* 1 = II_SMOOTH_PRED */
Yue Chen4d26acb2017-05-01 12:28:34 -0700859 -II_V_PRED, -II_H_PRED /* 2 = II_V_NODE */
860};
Yaowu Xuc27fc142016-08-22 16:08:15 -0700861
Yaowu Xuf883b422016-08-30 14:01:10 -0700862const aom_tree_index av1_inter_compound_mode_tree
Yaowu Xuc27fc142016-08-22 16:08:15 -0700863 [TREE_SIZE(INTER_COMPOUND_MODES)] = {
Sarah Parker2b9ec2e2017-10-30 17:34:08 -0700864 -INTER_COMPOUND_OFFSET(GLOBAL_GLOBALMV), 2,
Yaowu Xuc27fc142016-08-22 16:08:15 -0700865 -INTER_COMPOUND_OFFSET(NEAREST_NEARESTMV), 4,
866 6, -INTER_COMPOUND_OFFSET(NEW_NEWMV),
Debargha Mukherjeebb6e1342017-04-17 16:05:04 -0700867 -INTER_COMPOUND_OFFSET(NEAR_NEARMV), 8,
868 10, 12,
Yaowu Xuc27fc142016-08-22 16:08:15 -0700869 -INTER_COMPOUND_OFFSET(NEAREST_NEWMV), -INTER_COMPOUND_OFFSET(NEW_NEARESTMV),
870 -INTER_COMPOUND_OFFSET(NEAR_NEWMV), -INTER_COMPOUND_OFFSET(NEW_NEARMV)
871};
Sarah Parker6fddd182016-11-10 20:57:20 -0800872
Zoe Liu239f06b2017-04-20 13:10:55 -0700873
Sarah Parker2f6ce752016-12-08 15:26:46 -0800874const aom_tree_index av1_compound_type_tree[TREE_SIZE(COMPOUND_TYPES)] = {
875 -COMPOUND_AVERAGE, 2, -COMPOUND_WEDGE, -COMPOUND_SEG
876};
Yaowu Xuc27fc142016-08-22 16:08:15 -0700877/* clang-format on */
Yaowu Xuc27fc142016-08-22 16:08:15 -0700878
Thomas Daedee82e5772017-11-06 17:27:10 -0800879static const aom_cdf_prob default_intra_inter_cdf[INTRA_INTER_CONTEXTS]
880 [CDF_SIZE(2)] = {
881 { AOM_CDF2(768) },
882 { AOM_CDF2(12416) },
883 { AOM_CDF2(19328) },
884 { AOM_CDF2(26240) }
885 };
Thomas Daviesf6ad9352017-04-19 11:38:06 +0100886
Yaowu Xuf883b422016-08-30 14:01:10 -0700887static const aom_prob default_comp_inter_p[COMP_INTER_CONTEXTS] = {
Zoe Liu6905dc72017-09-26 11:16:32 -0700888 190, 156, 91, 77, 22
Yaowu Xuc27fc142016-08-22 16:08:15 -0700889};
Zoe Liufcf5fa22017-06-26 16:00:38 -0700890
Zoe Liue3c476e2017-09-29 11:32:48 -0700891static const aom_cdf_prob default_comp_inter_cdf[COMP_INTER_CONTEXTS][CDF_SIZE(
Thomas Daedee82e5772017-11-06 17:27:10 -0800892 2)] = { { AOM_CDF2(24290) },
893 { AOM_CDF2(19956) },
894 { AOM_CDF2(11641) },
895 { AOM_CDF2(9804) },
896 { AOM_CDF2(2842) } };
Yaowu Xuc27fc142016-08-22 16:08:15 -0700897
Zoe Liuc082bbc2017-05-17 13:31:37 -0700898#if CONFIG_EXT_COMP_REFS
899static const aom_prob default_comp_ref_type_p[COMP_REF_TYPE_CONTEXTS] = {
Zoe Liufcf5fa22017-06-26 16:00:38 -0700900 8, 20, 78, 91, 194
Zoe Liuc082bbc2017-05-17 13:31:37 -0700901};
Zoe Liuc082bbc2017-05-17 13:31:37 -0700902static const aom_prob
903 default_uni_comp_ref_p[UNI_COMP_REF_CONTEXTS][UNIDIR_COMP_REFS - 1] = {
Zoe Liufcf5fa22017-06-26 16:00:38 -0700904 { 88, 30, 28 }, { 218, 97, 105 }, { 254, 180, 196 }
Zoe Liuc082bbc2017-05-17 13:31:37 -0700905 };
Zoe Liufcf5fa22017-06-26 16:00:38 -0700906
Thomas Daedee82e5772017-11-06 17:27:10 -0800907static const aom_cdf_prob default_comp_ref_type_cdf[COMP_REF_TYPE_CONTEXTS]
908 [CDF_SIZE(2)] = {
909 { AOM_CDF2(8 * 128) },
910 { AOM_CDF2(20 * 128) },
911 { AOM_CDF2(78 * 128) },
912 { AOM_CDF2(91 * 128) },
913 { AOM_CDF2(194 * 128) }
914 };
Zoe Liufcf5fa22017-06-26 16:00:38 -0700915static const aom_cdf_prob
916 default_uni_comp_ref_cdf[UNI_COMP_REF_CONTEXTS][UNIDIR_COMP_REFS - 1]
Thomas Daedee82e5772017-11-06 17:27:10 -0800917 [CDF_SIZE(2)] = { { { AOM_CDF2(88 * 128) },
918 { AOM_CDF2(30 * 128) },
919 { AOM_CDF2(28 * 128) } },
920 { { AOM_CDF2(218 * 128) },
921 { AOM_CDF2(97 * 128) },
922 { AOM_CDF2(105 * 128) } },
923 { { AOM_CDF2(254 * 128) },
924 { AOM_CDF2(180 * 128) },
925 { AOM_CDF2(196 * 128) } } };
Zoe Liuc082bbc2017-05-17 13:31:37 -0700926#endif // CONFIG_EXT_COMP_REFS
927
Yaowu Xuf883b422016-08-30 14:01:10 -0700928static const aom_prob default_comp_ref_p[REF_CONTEXTS][FWD_REFS - 1] = {
Zoe Liu6905dc72017-09-26 11:16:32 -0700929 { 28, 10, 8 },
930 { 77, 27, 26 },
931 { 127, 62, 56 },
932 { 186, 126, 160 },
933 { 236, 143, 172 }
Yaowu Xuc27fc142016-08-22 16:08:15 -0700934};
Zoe Liu97ad0582017-02-09 10:51:00 -0800935
Yaowu Xuf883b422016-08-30 14:01:10 -0700936static const aom_prob default_comp_bwdref_p[REF_CONTEXTS][BWD_REFS - 1] = {
Zoe Liu6905dc72017-09-26 11:16:32 -0700937 { 22, 13 }, { 140, 124 }, { 241, 239 }, { 128, 128 }, { 128, 128 }
Yaowu Xuc27fc142016-08-22 16:08:15 -0700938};
Zoe Liufcf5fa22017-06-26 16:00:38 -0700939
Thomas Davies894cc812017-06-22 17:51:33 +0100940static const aom_cdf_prob
941 default_comp_ref_cdf[REF_CONTEXTS][FWD_REFS - 1][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800942 { { AOM_CDF2(3556) }, { AOM_CDF2(1217) }, { AOM_CDF2(988) } },
943 { { AOM_CDF2(9857) }, { AOM_CDF2(3394) }, { AOM_CDF2(3303) } },
944 { { AOM_CDF2(16237) }, { AOM_CDF2(7946) }, { AOM_CDF2(7195) } },
945 { { AOM_CDF2(23826) }, { AOM_CDF2(16124) }, { AOM_CDF2(20536) } },
946 { { AOM_CDF2(30195) }, { AOM_CDF2(18344) }, { AOM_CDF2(21980) } }
Thomas Davies894cc812017-06-22 17:51:33 +0100947 };
Zoe Liu97ad0582017-02-09 10:51:00 -0800948
Thomas Davies894cc812017-06-22 17:51:33 +0100949static const aom_cdf_prob
950 default_comp_bwdref_cdf[REF_CONTEXTS][BWD_REFS - 1][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -0800951 { { AOM_CDF2(2762) }, { AOM_CDF2(1614) } },
952 { { AOM_CDF2(17976) }, { AOM_CDF2(15912) } },
953 { { AOM_CDF2(30894) }, { AOM_CDF2(30639) } },
954 { { AOM_CDF2(32768) }, { AOM_CDF2(32768) } },
955 { { AOM_CDF2(32768) }, { AOM_CDF2(32768) } }
Thomas Davies894cc812017-06-22 17:51:33 +0100956 };
Zoe Liu97ad0582017-02-09 10:51:00 -0800957
Yaowu Xuf883b422016-08-30 14:01:10 -0700958static const aom_prob default_single_ref_p[REF_CONTEXTS][SINGLE_REFS - 1] = {
Zoe Liu6905dc72017-09-26 11:16:32 -0700959 { 36, 16, 32, 57, 11, 14 },
960 { 68, 128, 73, 128, 49, 124 },
961 { 136, 236, 127, 170, 81, 238 },
962 { 128, 128, 191, 211, 115, 128 },
963 { 224, 128, 230, 242, 208, 128 }
Yaowu Xuc27fc142016-08-22 16:08:15 -0700964};
Zoe Liufcf5fa22017-06-26 16:00:38 -0700965
Thomas Daedee82e5772017-11-06 17:27:10 -0800966static const aom_cdf_prob default_single_ref_cdf[REF_CONTEXTS][SINGLE_REFS - 1]
967 [CDF_SIZE(2)] = {
968 { { AOM_CDF2(4623) },
969 { AOM_CDF2(2110) },
970 { AOM_CDF2(4132) },
971 { AOM_CDF2(7309) },
972 { AOM_CDF2(1392) },
973 { AOM_CDF2(1781) } },
974 { { AOM_CDF2(8659) },
975 { AOM_CDF2(16372) },
976 { AOM_CDF2(9371) },
977 { AOM_CDF2(16322) },
978 { AOM_CDF2(6216) },
979 { AOM_CDF2(15834) } },
980 { { AOM_CDF2(17353) },
981 { AOM_CDF2(30182) },
982 { AOM_CDF2(16300) },
983 { AOM_CDF2(21702) },
984 { AOM_CDF2(10365) },
985 { AOM_CDF2(30486) } },
986 { { AOM_CDF2(32768) },
987 { AOM_CDF2(32768) },
988 { AOM_CDF2(24426) },
989 { AOM_CDF2(26972) },
990 { AOM_CDF2(14760) },
991 { AOM_CDF2(32768) } },
992 { { AOM_CDF2(28634) },
993 { AOM_CDF2(32768) },
994 { AOM_CDF2(29425) },
995 { AOM_CDF2(30969) },
996 { AOM_CDF2(26676) },
997 { AOM_CDF2(32768) } }
998 };
Yaowu Xuc27fc142016-08-22 16:08:15 -0700999
hui su466ae062017-07-25 16:55:51 -07001000// TODO(huisu): tune these cdfs
Thomas Daviesce7272d2017-07-04 16:11:08 +01001001const aom_cdf_prob
1002 default_palette_y_size_cdf[PALETTE_BLOCK_SIZES][CDF_SIZE(PALETTE_SIZES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001003 { AOM_CDF7(12288, 19408, 24627, 26662, 28499, 30667) },
1004 { AOM_CDF7(2815, 4570, 9416, 10875, 13782, 19863) },
1005 { AOM_CDF7(3839, 5986, 11949, 13413, 16286, 21823) },
1006 { AOM_CDF7(12032, 14948, 22187, 23138, 24756, 27635) },
1007 { AOM_CDF7(14847, 20167, 25433, 26751, 28278, 30119) },
1008 { AOM_CDF7(14336, 20240, 24840, 26079, 27908, 30034) },
1009 { AOM_CDF7(18816, 25574, 29030, 29877, 30656, 31506) },
1010 { AOM_CDF7(23039, 27333, 30220, 30708, 31070, 31826) },
1011 { AOM_CDF7(13696, 18911, 23620, 25371, 29821, 31617) },
1012 { AOM_CDF7(12543, 20838, 27455, 28762, 29763, 31546) },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001013 };
Thomas Daviesce7272d2017-07-04 16:11:08 +01001014
Thomas Daviesce7272d2017-07-04 16:11:08 +01001015const aom_cdf_prob default_palette_uv_size_cdf[PALETTE_BLOCK_SIZES][CDF_SIZE(
1016 PALETTE_SIZES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001017 { AOM_CDF7(20480, 29888, 32453, 32715, 32751, 32766) },
1018 { AOM_CDF7(11135, 23641, 31056, 31998, 32496, 32668) },
1019 { AOM_CDF7(9216, 23108, 30806, 31871, 32414, 32637) },
1020 { AOM_CDF7(9984, 21999, 29192, 30645, 31640, 32402) },
1021 { AOM_CDF7(7552, 16614, 24880, 27283, 29254, 31203) },
1022 { AOM_CDF7(9600, 20279, 27548, 29261, 30494, 31631) },
1023 { AOM_CDF7(11391, 18656, 23727, 26058, 27788, 30278) },
1024 { AOM_CDF7(8576, 13585, 17632, 20884, 23948, 27152) },
1025 { AOM_CDF7(15360, 24200, 26978, 30846, 31409, 32545) },
1026 { AOM_CDF7(9216, 14276, 19043, 22689, 25799, 28712) },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001027};
Thomas Daviesce7272d2017-07-04 16:11:08 +01001028
Urvang Joshi23a61112017-01-30 14:59:27 -08001029// When palette mode is enabled, following probability tables indicate the
1030// probabilities to code the "is_palette" bit (i.e. the bit that indicates
1031// if this block uses palette mode or DC_PRED mode).
Thomas Daedee82e5772017-11-06 17:27:10 -08001032const aom_cdf_prob default_palette_y_mode_cdf[PALETTE_BLOCK_SIZES]
1033 [PALETTE_Y_MODE_CONTEXTS]
1034 [CDF_SIZE(2)] = {
1035 { { AOM_CDF2(128 * 240) },
1036 { AOM_CDF2(128 * 180) },
1037 { AOM_CDF2(128 * 100) } },
1038 { { AOM_CDF2(128 * 240) },
1039 { AOM_CDF2(128 * 180) },
1040 { AOM_CDF2(128 * 100) } },
1041 { { AOM_CDF2(128 * 240) },
1042 { AOM_CDF2(128 * 180) },
1043 { AOM_CDF2(128 * 100) } },
1044 { { AOM_CDF2(128 * 240) },
1045 { AOM_CDF2(128 * 180) },
1046 { AOM_CDF2(128 * 100) } },
1047 { { AOM_CDF2(128 * 240) },
1048 { AOM_CDF2(128 * 180) },
1049 { AOM_CDF2(128 * 100) } },
1050 { { AOM_CDF2(128 * 240) },
1051 { AOM_CDF2(128 * 180) },
1052 { AOM_CDF2(128 * 100) } },
1053 { { AOM_CDF2(128 * 240) },
1054 { AOM_CDF2(128 * 180) },
1055 { AOM_CDF2(128 * 100) } },
1056 { { AOM_CDF2(128 * 240) },
1057 { AOM_CDF2(128 * 180) },
1058 { AOM_CDF2(128 * 100) } },
1059 { { AOM_CDF2(128 * 240) },
1060 { AOM_CDF2(128 * 180) },
1061 { AOM_CDF2(128 * 100) } },
1062 { { AOM_CDF2(128 * 240) },
1063 { AOM_CDF2(128 * 180) },
1064 { AOM_CDF2(128 * 100) } },
Thomas Daedee82e5772017-11-06 17:27:10 -08001065 };
Thomas Davies59f92312017-08-23 00:33:12 +01001066
1067const aom_cdf_prob
1068 default_palette_uv_mode_cdf[PALETTE_UV_MODE_CONTEXTS][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001069 { AOM_CDF2(128 * 253) }, { AOM_CDF2(128 * 229) }
Thomas Davies59f92312017-08-23 00:33:12 +01001070 };
Thomas Davies59f92312017-08-23 00:33:12 +01001071
Thomas Daviesce7272d2017-07-04 16:11:08 +01001072const aom_cdf_prob default_palette_y_color_index_cdf
1073 [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = {
1074 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001075 { AOM_CDF2(29568), 0, 0, 0, 0, 0, 0 },
1076 { AOM_CDF2(16384), 0, 0, 0, 0, 0, 0 },
1077 { AOM_CDF2(8832), 0, 0, 0, 0, 0, 0 },
1078 { AOM_CDF2(28672), 0, 0, 0, 0, 0, 0 },
1079 { AOM_CDF2(31872), 0, 0, 0, 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001080 },
1081 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001082 { AOM_CDF3(28032, 30326), 0, 0, 0, 0, 0 },
1083 { AOM_CDF3(11647, 27405), 0, 0, 0, 0, 0 },
1084 { AOM_CDF3(4352, 30659), 0, 0, 0, 0, 0 },
1085 { AOM_CDF3(23552, 27800), 0, 0, 0, 0, 0 },
1086 { AOM_CDF3(32256, 32504), 0, 0, 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001087 },
1088 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001089 { AOM_CDF4(26112, 28374, 30039), 0, 0, 0, 0 },
1090 { AOM_CDF4(9472, 22576, 27712), 0, 0, 0, 0 },
1091 { AOM_CDF4(6656, 26138, 29608), 0, 0, 0, 0 },
1092 { AOM_CDF4(19328, 23791, 28946), 0, 0, 0, 0 },
1093 { AOM_CDF4(31744, 31984, 32336), 0, 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001094 },
1095 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001096 { AOM_CDF5(27904, 29215, 30075, 31190), 0, 0, 0 },
1097 { AOM_CDF5(9728, 22598, 26134, 29425), 0, 0, 0 },
1098 { AOM_CDF5(2688, 30066, 31058, 31933), 0, 0, 0 },
1099 { AOM_CDF5(22015, 25039, 27726, 29932), 0, 0, 0 },
1100 { AOM_CDF5(32383, 32482, 32554, 32660), 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001101 },
1102 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001103 { AOM_CDF6(24319, 26299, 27486, 28600, 29804), 0, 0 },
1104 { AOM_CDF6(7935, 18217, 21116, 25440, 28589), 0, 0 },
1105 { AOM_CDF6(6656, 25016, 27105, 28698, 30399), 0, 0 },
1106 { AOM_CDF6(19967, 24117, 26550, 28566, 30224), 0, 0 },
1107 { AOM_CDF6(31359, 31607, 31775, 31977, 32258), 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001108 },
1109 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001110 { AOM_CDF7(26368, 27768, 28588, 29274, 29997, 30917), 0 },
1111 { AOM_CDF7(8960, 18260, 20810, 23986, 26627, 28882), 0 },
1112 { AOM_CDF7(7295, 24111, 25836, 27515, 29033, 30769), 0 },
1113 { AOM_CDF7(22016, 25208, 27305, 28159, 29221, 30274), 0 },
1114 { AOM_CDF7(31744, 31932, 32050, 32199, 32335, 32521), 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001115 },
1116 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001117 { AOM_CDF8(26624, 27872, 28599, 29153, 29633, 30172, 30841) },
1118 { AOM_CDF8(6655, 17569, 19587, 23345, 25884, 28088, 29678) },
1119 { AOM_CDF8(3584, 27296, 28429, 29158, 30032, 30780, 31572) },
1120 { AOM_CDF8(23551, 25855, 27070, 27893, 28597, 29721, 30970) },
1121 { AOM_CDF8(32128, 32173, 32245, 32337, 32416, 32500, 32609) },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001122 },
1123 };
Thomas Daviesce7272d2017-07-04 16:11:08 +01001124
Thomas Daviesce7272d2017-07-04 16:11:08 +01001125const aom_cdf_prob default_palette_uv_color_index_cdf
1126 [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = {
1127 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001128 { AOM_CDF2(29824), 0, 0, 0, 0, 0, 0 },
1129 { AOM_CDF2(16384), 0, 0, 0, 0, 0, 0 },
1130 { AOM_CDF2(8832), 0, 0, 0, 0, 0, 0 },
1131 { AOM_CDF2(30720), 0, 0, 0, 0, 0, 0 },
1132 { AOM_CDF2(31744), 0, 0, 0, 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001133 },
1134 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001135 { AOM_CDF3(27648, 30208), 0, 0, 0, 0, 0 },
1136 { AOM_CDF3(14080, 26563), 0, 0, 0, 0, 0 },
1137 { AOM_CDF3(5120, 30932), 0, 0, 0, 0, 0 },
1138 { AOM_CDF3(24448, 27828), 0, 0, 0, 0, 0 },
1139 { AOM_CDF3(31616, 32219), 0, 0, 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001140 },
1141 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001142 { AOM_CDF4(25856, 28259, 30584), 0, 0, 0, 0 },
1143 { AOM_CDF4(11520, 22476, 27944), 0, 0, 0, 0 },
1144 { AOM_CDF4(8064, 26882, 30308), 0, 0, 0, 0 },
1145 { AOM_CDF4(19455, 23823, 29134), 0, 0, 0, 0 },
1146 { AOM_CDF4(30848, 31501, 32174), 0, 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001147 },
1148 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001149 { AOM_CDF5(26751, 28020, 29541, 31230), 0, 0, 0 },
1150 { AOM_CDF5(12032, 26045, 30772, 31497), 0, 0, 0 },
1151 { AOM_CDF5(1280, 32153, 32458, 32560), 0, 0, 0 },
1152 { AOM_CDF5(23424, 24154, 29201, 29856), 0, 0, 0 },
1153 { AOM_CDF5(32256, 32402, 32561, 32682), 0, 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001154 },
1155 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001156 { AOM_CDF6(24576, 26720, 28114, 28950, 31694), 0, 0 },
1157 { AOM_CDF6(7551, 16613, 20462, 25269, 29077), 0, 0 },
1158 { AOM_CDF6(6272, 23039, 25623, 28163, 30861), 0, 0 },
1159 { AOM_CDF6(17024, 18808, 20771, 27941, 29845), 0, 0 },
1160 { AOM_CDF6(31616, 31936, 32079, 32321, 32546), 0, 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001161 },
1162 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001163 { AOM_CDF7(23296, 25590, 27833, 29337, 29954, 31229), 0 },
1164 { AOM_CDF7(7552, 13659, 16570, 21695, 24506, 27701), 0 },
1165 { AOM_CDF7(6911, 24788, 26284, 27753, 29575, 30872), 0 },
1166 { AOM_CDF7(17535, 22236, 24457, 26242, 27363, 30191), 0 },
1167 { AOM_CDF7(30592, 31289, 31745, 31921, 32149, 32321), 0 },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001168 },
1169 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001170 { AOM_CDF8(22016, 24242, 25141, 27137, 27797, 29331, 30848) },
1171 { AOM_CDF8(8063, 13564, 16940, 21948, 24568, 25689, 26989) },
1172 { AOM_CDF8(6528, 27028, 27835, 28741, 30031, 31795, 32285) },
1173 { AOM_CDF8(18047, 23797, 25444, 26274, 27111, 27929, 30367) },
1174 { AOM_CDF8(30208, 30628, 31046, 31658, 31762, 32367, 32469) },
Thomas Daviesce7272d2017-07-04 16:11:08 +01001175 }
1176 };
Yaowu Xuc27fc142016-08-22 16:08:15 -07001177
Hui Su6c8584f2017-09-14 15:37:02 -07001178#if CONFIG_INTRABC
Thomas Daedee82e5772017-11-06 17:27:10 -08001179static const aom_cdf_prob default_intrabc_cdf[CDF_SIZE(2)] = { AOM_CDF2(192 *
1180 128) };
Hui Su6c8584f2017-09-14 15:37:02 -07001181#endif // CONFIG_INTRABC
1182
Urvang Joshicdbe7082017-01-26 13:06:49 -08001183#define MAX_COLOR_CONTEXT_HASH 8
1184// Negative values are invalid
Urvang Joshi23a61112017-01-30 14:59:27 -08001185static const int palette_color_index_context_lookup[MAX_COLOR_CONTEXT_HASH +
1186 1] = { -1, -1, 0, -1, -1,
1187 4, 3, 2, 1 };
Urvang Joshicdbe7082017-01-26 13:06:49 -08001188
Debargha Mukherjee5cd2ab92016-09-08 15:15:17 -07001189#if CONFIG_LOOP_RESTORATION
Thomas Daedee82e5772017-11-06 17:27:10 -08001190static const aom_cdf_prob default_switchable_restore_cdf[CDF_SIZE(
1191 RESTORE_SWITCHABLE_TYPES)] = { AOM_CDF3(32 * 128, 144 * 128) };
Debargha Mukherjeeb3c43bc2017-02-01 13:09:03 -08001192
Thomas Daedee82e5772017-11-06 17:27:10 -08001193static const aom_cdf_prob default_wiener_restore_cdf[CDF_SIZE(2)] = { AOM_CDF2(
1194 64 * 128) };
Debargha Mukherjeebc732ef2017-10-12 12:40:25 -07001195
Thomas Daedee82e5772017-11-06 17:27:10 -08001196static const aom_cdf_prob default_sgrproj_restore_cdf[CDF_SIZE(2)] = { AOM_CDF2(
1197 64 * 128) };
Debargha Mukherjee5cd2ab92016-09-08 15:15:17 -07001198#endif // CONFIG_LOOP_RESTORATION
1199
Urvang Joshi23a61112017-01-30 14:59:27 -08001200#define NUM_PALETTE_NEIGHBORS 3 // left, top-left and top.
1201int av1_get_palette_color_index_context(const uint8_t *color_map, int stride,
1202 int r, int c, int palette_size,
1203 uint8_t *color_order, int *color_idx) {
Urvang Joshi4f4b68e2016-10-24 17:11:10 -07001204 int i;
1205 // The +10 below should not be needed. But we get a warning "array subscript
1206 // is above array bounds [-Werror=array-bounds]" without it, possibly due to
1207 // this (or similar) bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59124
Yaowu Xuc27fc142016-08-22 16:08:15 -07001208 int scores[PALETTE_MAX_SIZE + 10];
Urvang Joshicdbe7082017-01-26 13:06:49 -08001209 const int weights[NUM_PALETTE_NEIGHBORS] = { 2, 1, 2 };
1210 const int hash_multipliers[NUM_PALETTE_NEIGHBORS] = { 1, 2, 2 };
Urvang Joshi23a61112017-01-30 14:59:27 -08001211 int color_index_ctx_hash;
1212 int color_index_ctx;
Urvang Joshicdbe7082017-01-26 13:06:49 -08001213 int color_neighbors[NUM_PALETTE_NEIGHBORS];
Urvang Joshi967ff392016-09-07 14:57:49 -07001214 int inverse_color_order[PALETTE_MAX_SIZE];
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001215 assert(palette_size <= PALETTE_MAX_SIZE);
Urvang Joshicdbe7082017-01-26 13:06:49 -08001216 assert(r > 0 || c > 0);
Yaowu Xuc27fc142016-08-22 16:08:15 -07001217
Urvang Joshi79f4fc42016-10-26 09:40:35 -07001218 // Get color indices of neighbors.
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001219 color_neighbors[0] = (c - 1 >= 0) ? color_map[r * stride + c - 1] : -1;
Urvang Joshi4f4b68e2016-10-24 17:11:10 -07001220 color_neighbors[1] =
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001221 (c - 1 >= 0 && r - 1 >= 0) ? color_map[(r - 1) * stride + c - 1] : -1;
1222 color_neighbors[2] = (r - 1 >= 0) ? color_map[(r - 1) * stride + c] : -1;
Yaowu Xuc27fc142016-08-22 16:08:15 -07001223
Urvang Joshi967ff392016-09-07 14:57:49 -07001224 for (i = 0; i < PALETTE_MAX_SIZE; ++i) {
1225 color_order[i] = i;
1226 inverse_color_order[i] = i;
1227 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001228 memset(scores, 0, PALETTE_MAX_SIZE * sizeof(scores[0]));
Urvang Joshicdbe7082017-01-26 13:06:49 -08001229 for (i = 0; i < NUM_PALETTE_NEIGHBORS; ++i) {
Urvang Joshi4f4b68e2016-10-24 17:11:10 -07001230 if (color_neighbors[i] >= 0) {
1231 scores[color_neighbors[i]] += weights[i];
1232 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001233 }
1234
Urvang Joshicdbe7082017-01-26 13:06:49 -08001235 // Get the top NUM_PALETTE_NEIGHBORS scores (sorted from large to small).
1236 for (i = 0; i < NUM_PALETTE_NEIGHBORS; ++i) {
Urvang Joshi4f4b68e2016-10-24 17:11:10 -07001237 int max = scores[i];
1238 int max_idx = i;
1239 int j;
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001240 for (j = i + 1; j < palette_size; ++j) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001241 if (scores[j] > max) {
1242 max = scores[j];
1243 max_idx = j;
1244 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001245 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001246 if (max_idx != i) {
Urvang Joshif1c06a72017-01-09 14:46:51 -08001247 // Move the score at index 'max_idx' to index 'i', and shift the scores
1248 // from 'i' to 'max_idx - 1' by 1.
1249 const int max_score = scores[max_idx];
1250 const uint8_t max_color_order = color_order[max_idx];
1251 int k;
1252 for (k = max_idx; k > i; --k) {
1253 scores[k] = scores[k - 1];
1254 color_order[k] = color_order[k - 1];
1255 inverse_color_order[color_order[k]] = k;
1256 }
1257 scores[i] = max_score;
1258 color_order[i] = max_color_order;
Urvang Joshi967ff392016-09-07 14:57:49 -07001259 inverse_color_order[color_order[i]] = i;
Yaowu Xuc27fc142016-08-22 16:08:15 -07001260 }
1261 }
1262
Urvang Joshi79f4fc42016-10-26 09:40:35 -07001263 // Get hash value of context.
Urvang Joshi23a61112017-01-30 14:59:27 -08001264 color_index_ctx_hash = 0;
Urvang Joshicdbe7082017-01-26 13:06:49 -08001265 for (i = 0; i < NUM_PALETTE_NEIGHBORS; ++i) {
Urvang Joshi23a61112017-01-30 14:59:27 -08001266 color_index_ctx_hash += scores[i] * hash_multipliers[i];
Urvang Joshicdbe7082017-01-26 13:06:49 -08001267 }
Urvang Joshi23a61112017-01-30 14:59:27 -08001268 assert(color_index_ctx_hash > 0);
1269 assert(color_index_ctx_hash <= MAX_COLOR_CONTEXT_HASH);
Yaowu Xuc27fc142016-08-22 16:08:15 -07001270
Urvang Joshi79f4fc42016-10-26 09:40:35 -07001271 // Lookup context from hash.
Urvang Joshi23a61112017-01-30 14:59:27 -08001272 color_index_ctx = palette_color_index_context_lookup[color_index_ctx_hash];
1273 assert(color_index_ctx >= 0);
1274 assert(color_index_ctx < PALETTE_COLOR_INDEX_CONTEXTS);
Yaowu Xuc27fc142016-08-22 16:08:15 -07001275
Urvang Joshi967ff392016-09-07 14:57:49 -07001276 if (color_idx != NULL) {
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001277 *color_idx = inverse_color_order[color_map[r * stride + c]];
Urvang Joshi967ff392016-09-07 14:57:49 -07001278 }
Urvang Joshi23a61112017-01-30 14:59:27 -08001279 return color_index_ctx;
Yaowu Xuc27fc142016-08-22 16:08:15 -07001280}
Urvang Joshicdbe7082017-01-26 13:06:49 -08001281#undef NUM_PALETTE_NEIGHBORS
1282#undef MAX_COLOR_CONTEXT_HASH
1283
Thomas Davies985bfc32017-06-27 16:51:26 +01001284static const aom_cdf_prob
1285 default_txfm_partition_cdf[TXFM_PARTITION_CONTEXTS][CDF_SIZE(2)] = {
Urvang Joshi886bfc72017-08-22 17:40:38 -07001286#if CONFIG_TX64X64
Thomas Daedee82e5772017-11-06 17:27:10 -08001287 { AOM_CDF2(249 * 128) }, { AOM_CDF2(240 * 128) }, { AOM_CDF2(223 * 128) },
1288 { AOM_CDF2(249 * 128) }, { AOM_CDF2(229 * 128) }, { AOM_CDF2(177 * 128) },
1289 { AOM_CDF2(250 * 128) }, { AOM_CDF2(243 * 128) }, { AOM_CDF2(208 * 128) },
1290 { AOM_CDF2(226 * 128) }, { AOM_CDF2(187 * 128) }, { AOM_CDF2(145 * 128) },
1291 { AOM_CDF2(236 * 128) }, { AOM_CDF2(204 * 128) }, { AOM_CDF2(150 * 128) },
1292 { AOM_CDF2(183 * 128) }, { AOM_CDF2(149 * 128) }, { AOM_CDF2(125 * 128) },
1293 { AOM_CDF2(181 * 128) }, { AOM_CDF2(146 * 128) }, { AOM_CDF2(113 * 128) },
1294 { AOM_CDF2(128 * 128) }
Urvang Joshi886bfc72017-08-22 17:40:38 -07001295#else
Thomas Daedee82e5772017-11-06 17:27:10 -08001296 { AOM_CDF2(250 * 128) }, { AOM_CDF2(231 * 128) }, { AOM_CDF2(212 * 128) },
1297 { AOM_CDF2(241 * 128) }, { AOM_CDF2(166 * 128) }, { AOM_CDF2(66 * 128) },
1298 { AOM_CDF2(241 * 128) }, { AOM_CDF2(230 * 128) }, { AOM_CDF2(135 * 128) },
1299 { AOM_CDF2(243 * 128) }, { AOM_CDF2(154 * 128) }, { AOM_CDF2(64 * 128) },
1300 { AOM_CDF2(248 * 128) }, { AOM_CDF2(161 * 128) }, { AOM_CDF2(63 * 128) },
1301 { AOM_CDF2(128 * 128) },
Urvang Joshi9136ab72017-07-28 14:15:49 -07001302#endif // CONFIG_TX64X64
Thomas Davies985bfc32017-06-27 16:51:26 +01001303 };
Yaowu Xuc27fc142016-08-22 16:08:15 -07001304
Zoe Liuf704a1c2017-10-02 16:55:59 -07001305#if CONFIG_EXT_SKIP
1306static const aom_cdf_prob default_skip_mode_cdfs[SKIP_MODE_CONTEXTS][CDF_SIZE(
Thomas Daedee82e5772017-11-06 17:27:10 -08001307 2)] = { { AOM_CDF2(24576) }, { AOM_CDF2(16384) }, { AOM_CDF2(8192) } };
Zoe Liuf704a1c2017-10-02 16:55:59 -07001308#endif // CONFIG_EXT_SKIP
Thomas Davies61e3e372017-04-04 16:10:23 +01001309static const aom_cdf_prob default_skip_cdfs[SKIP_CONTEXTS][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001310 { AOM_CDF2(24576) }, { AOM_CDF2(16384) }, { AOM_CDF2(8192) }
Thomas Davies61e3e372017-04-04 16:10:23 +01001311};
Yaowu Xuc27fc142016-08-22 16:08:15 -07001312
Cheng Chen0a7f2f52017-10-10 15:16:09 -07001313#if CONFIG_JNT_COMP
Cheng Chen46970612017-10-24 14:53:36 -07001314static const aom_cdf_prob
1315 default_compound_idx_cdfs[COMP_INDEX_CONTEXTS][CDF_SIZE(2)] = {
1316 { AOM_ICDF(24576), AOM_ICDF(32768), 0 },
1317 { AOM_ICDF(16384), AOM_ICDF(32768), 0 },
1318 { AOM_ICDF(8192), AOM_ICDF(32768), 0 },
1319 { AOM_ICDF(24576), AOM_ICDF(32768), 0 },
1320 { AOM_ICDF(16384), AOM_ICDF(32768), 0 },
1321 { AOM_ICDF(8192), AOM_ICDF(32768), 0 },
Cheng Chen46970612017-10-24 14:53:36 -07001322 };
Cheng Chen0a7f2f52017-10-10 15:16:09 -07001323static const aom_prob default_compound_idx_probs[COMP_INDEX_CONTEXTS] = {
Cheng Chenc87b3402017-11-03 16:02:41 -07001324 192, 128, 64, 192, 128, 64
Cheng Chen0a7f2f52017-10-10 15:16:09 -07001325};
1326#endif // CONFIG_JNT_COMP
1327
hui su5db97432016-10-14 16:10:14 -07001328#if CONFIG_FILTER_INTRA
Thomas Daedee82e5772017-11-06 17:27:10 -08001329static const aom_cdf_prob default_filter_intra_mode_cdf[2][CDF_SIZE(
Yue Chenda2eefc2017-11-16 15:25:28 -08001330 FILTER_INTRA_MODES)] = { { AOM_CDF5(14259, 17304, 20463, 29377) },
1331 { AOM_CDF5(32768, 32768, 32768, 32768) } };
Yue Chen4eba69b2017-11-09 22:37:35 -08001332
1333static const aom_cdf_prob default_filter_intra_cdfs[TX_SIZES_ALL][CDF_SIZE(2)] =
1334 { { AOM_CDF2(10985) }, { AOM_CDF2(10985) }, { AOM_CDF2(16645) },
1335 { AOM_CDF2(27378) }, { AOM_CDF2(10985) }, { AOM_CDF2(10985) },
1336 { AOM_CDF2(15723) }, { AOM_CDF2(12373) }, { AOM_CDF2(27199) },
1337 { AOM_CDF2(24217) }, { AOM_CDF2(32767) }, { AOM_CDF2(32767) },
1338 { AOM_CDF2(32767) }, { AOM_CDF2(32767) } };
hui su5db97432016-10-14 16:10:14 -07001339#endif // CONFIG_FILTER_INTRA
1340
Yaowu Xuc27fc142016-08-22 16:08:15 -07001341// FIXME(someone) need real defaults here
Nathan E. Eggef627e582016-08-19 20:06:51 -04001342static const aom_prob default_segment_tree_probs[SEG_TREE_PROBS] = {
1343 128, 128, 128, 128, 128, 128, 128
Yaowu Xuc27fc142016-08-22 16:08:15 -07001344};
Nathan E. Eggef627e582016-08-19 20:06:51 -04001345// clang-format off
Thomas Davies00021352017-07-11 16:07:55 +01001346static const aom_cdf_prob
1347 default_segment_pred_cdf[PREDICTION_PROBS][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001348 { AOM_CDF2(128 * 128) },
1349 { AOM_CDF2(128 * 128) },
1350 { AOM_CDF2(128 * 128) }
Thomas Davies00021352017-07-11 16:07:55 +01001351};
Nathan E. Eggef627e582016-08-19 20:06:51 -04001352// clang-format on
Thomas Davies4ba27d02017-04-05 11:43:36 +01001353#if CONFIG_DUAL_FILTER
Angie Chiangaadbb022017-06-01 16:08:03 -07001354#if USE_EXTRA_FILTER
Thomas Davies4ba27d02017-04-05 11:43:36 +01001355static const aom_cdf_prob
1356 default_switchable_interp_cdf[SWITCHABLE_FILTER_CONTEXTS][CDF_SIZE(
1357 SWITCHABLE_FILTERS)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001358 { AOM_CDF4(30080, 31088, 31760) }, { AOM_CDF4(4608, 9620, 11050) },
1359 { AOM_CDF4(4352, 5240, 31880) }, { AOM_CDF4(4352, 5240, 31880) },
1360 { AOM_CDF4(19072, 23352, 28488) }, { AOM_CDF4(30080, 31088, 31760) },
1361 { AOM_CDF4(4608, 9620, 11050) }, { AOM_CDF4(4352, 5240, 31880) },
1362 { AOM_CDF4(4352, 5240, 31880) }, { AOM_CDF4(19072, 23352, 28488) },
1363 { AOM_CDF4(30080, 31088, 31760) }, { AOM_CDF4(4608, 9620, 11050) },
1364 { AOM_CDF4(4352, 5240, 31880) }, { AOM_CDF4(4352, 5240, 31880) },
1365 { AOM_CDF4(19072, 23352, 28488) }, { AOM_CDF4(30080, 31088, 31760) },
1366 { AOM_CDF4(4608, 9620, 11050) }, { AOM_CDF4(4352, 5240, 31880) },
1367 { AOM_CDF4(4352, 5240, 31880) }, { AOM_CDF4(19072, 23352, 28488) },
Thomas Davies4ba27d02017-04-05 11:43:36 +01001368 };
Angie Chiangaadbb022017-06-01 16:08:03 -07001369#else // USE_EXTRA_FILTER
1370static const aom_cdf_prob
1371 default_switchable_interp_cdf[SWITCHABLE_FILTER_CONTEXTS][CDF_SIZE(
1372 SWITCHABLE_FILTERS)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001373 { AOM_CDF3(32256, 32654) }, { AOM_CDF3(2816, 32651) },
1374 { AOM_CDF3(512, 764) }, { AOM_CDF3(30464, 31778) },
1375 { AOM_CDF3(32384, 32483) }, { AOM_CDF3(3072, 32652) },
1376 { AOM_CDF3(256, 383) }, { AOM_CDF3(25344, 26533) },
1377 { AOM_CDF3(32000, 32531) }, { AOM_CDF3(2048, 32648) },
1378 { AOM_CDF3(384, 890) }, { AOM_CDF3(28928, 31358) },
1379 { AOM_CDF3(31616, 31787) }, { AOM_CDF3(4224, 32433) },
1380 { AOM_CDF3(128, 256) }, { AOM_CDF3(17408, 18248) }
Angie Chiangaadbb022017-06-01 16:08:03 -07001381 };
1382#endif // USE_EXTRA_FILTER
1383#else // CONFIG_DUAL_FILTER
Thomas Davies1d7db722017-02-22 11:15:00 +00001384static const aom_cdf_prob
Thomas Daedee82e5772017-11-06 17:27:10 -08001385 default_switchable_interp_cdf[SWITCHABLE_FILTER_CONTEXTS]
1386 [CDF_SIZE(SWITCHABLE_FILTERS)] = {
1387 { AOM_CDF3(30080, 31781) },
1388 { AOM_CDF3(4608, 32658) },
1389 { AOM_CDF3(4352, 4685) },
1390 { AOM_CDF3(19072, 26776) },
1391 };
Angie Chiangaadbb022017-06-01 16:08:03 -07001392#endif // CONFIG_DUAL_FILTER
Thomas Davies1d7db722017-02-22 11:15:00 +00001393
1394static const aom_cdf_prob default_seg_tree_cdf[CDF_SIZE(MAX_SEGMENTS)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001395 AOM_CDF8(4096, 8192, 12288, 16384, 20480, 24576, 28672)
Thomas Davies1d7db722017-02-22 11:15:00 +00001396};
1397
Rostislav Pehlivanovf624dd52017-10-24 16:46:09 +01001398#if CONFIG_Q_SEGMENTATION
1399static const aom_cdf_prob
1400 default_q_seg_tree_cdf[Q_SEGMENT_CDF_COUNT][CDF_SIZE(MAX_SEGMENTS)] = {
1401 {
1402 AOM_CDF8(5622, 7893, 16093, 18233, 27809, 28373, 32533),
1403 },
1404 {
1405 AOM_CDF8(14274, 18230, 22557, 24935, 29980, 30851, 32344),
1406 },
1407 {
1408 AOM_CDF8(27527, 28487, 28723, 28890, 32397, 32647, 32679),
1409 },
1410 };
1411#endif
1412
Thomas Davies1d7db722017-02-22 11:15:00 +00001413static const aom_cdf_prob
Debargha Mukherjee6147b1b2017-11-08 08:31:09 -08001414 default_tx_size_cdf[MAX_TX_CATS][TX_SIZE_CONTEXTS][CDF_SIZE(MAX_TX_DEPTH +
1415 1)] = {
1416#if MAX_TX_DEPTH == 2
1417 { { AOM_CDF2(19968) }, { AOM_CDF2(24320) } },
1418 { { AOM_CDF3(12272, 30172) }, { AOM_CDF3(18677, 30848) } },
1419 { { AOM_CDF3(12986, 15180) }, { AOM_CDF3(24302, 25602) } },
Thomas Davies1d7db722017-02-22 11:15:00 +00001420#if CONFIG_TX64X64
Debargha Mukherjee6147b1b2017-11-08 08:31:09 -08001421 { { AOM_CDF3(5782, 11475) }, { AOM_CDF3(16803, 22759) } },
1422#endif // CONFIG_TX64X64
1423#elif MAX_TX_DEPTH == 3
1424 { { AOM_CDF2(19968) }, { AOM_CDF2(24320) } },
1425 { { AOM_CDF3(12272, 30172) }, { AOM_CDF3(18677, 30848) } },
1426 { { AOM_CDF4(12986, 15180, 32384) }, { AOM_CDF4(24302, 25602, 32128) } },
1427#if CONFIG_TX64X64
1428 { { AOM_CDF4(5782, 11475, 24480) }, { AOM_CDF4(16803, 22759, 28560) } },
1429#endif // CONFIG_TX64X64
1430#else
1431 { { AOM_CDF2(19968) }, { AOM_CDF2(24320) } },
1432 { { AOM_CDF3(12272, 30172) }, { AOM_CDF3(18677, 30848) } },
1433 { { AOM_CDF4(12986, 15180, 32384) }, { AOM_CDF4(24302, 25602, 32128) } },
1434#if CONFIG_TX64X64
1435 { { AOM_CDF5(5782, 11475, 24480, 32640) },
1436 { AOM_CDF5(16803, 22759, 28560, 32640) } },
1437#endif // CONFIG_TX64X64
1438#endif // MAX_TX_DEPTH == 2
Thomas Davies1d7db722017-02-22 11:15:00 +00001439 };
1440
Urvang Joshie6ca8e82017-03-15 14:57:41 -07001441static const aom_cdf_prob
1442 default_if_y_mode_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(INTRA_MODES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001443 { AOM_CDF13(7168, 10680, 13913, 16928, 20294, 22790, 24706, 26275, 28139,
1444 29751, 30563, 31468) },
1445 { AOM_CDF13(11776, 13823, 15307, 15725, 16638, 17406, 17994, 18814, 19634,
1446 21513, 22198, 22928) },
1447 { AOM_CDF13(14720, 16459, 18091, 18299, 18757, 19125, 19423, 19924, 20504,
1448 22922, 24063, 25577) },
1449 { AOM_CDF13(18944, 19925, 20908, 20998, 21017, 21072, 21084, 21121, 21159,
1450 22064, 22820, 24290) },
Urvang Joshie6ca8e82017-03-15 14:57:41 -07001451 };
1452
Luc Trudeau6e1cd782017-06-21 13:52:36 -04001453#if CONFIG_CFL
1454static const aom_cdf_prob
1455 default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(UV_INTRA_MODES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001456 { AOM_CDF14(18377, 18815, 19743, 20178, 20560, 20889, 21359, 22098, 22481,
1457 24563, 25781, 26662, 28396) },
1458 { AOM_CDF14(5350, 16837, 17066, 17360, 17692, 18778, 18969, 19206, 20291,
1459 22367, 23212, 24670, 27912) },
1460 { AOM_CDF14(6671, 6759, 17812, 17998, 18260, 18384, 19408, 20667, 20806,
1461 22760, 24142, 24875, 28072) },
1462 { AOM_CDF14(7461, 8082, 8515, 15013, 15583, 16098, 16522, 18519, 20348,
1463 22954, 24130, 25342, 26548) },
1464 { AOM_CDF14(3694, 4403, 5370, 5854, 17841, 19639, 21625, 22224, 22651,
1465 24613, 25399, 26143, 26599) },
1466 { AOM_CDF14(3700, 5651, 6112, 6541, 8929, 20623, 21213, 21640, 22214,
1467 24306, 25412, 26406, 27249) },
1468 { AOM_CDF14(4649, 4947, 7128, 7432, 9439, 9903, 21163, 21774, 22056,
1469 24426, 25403, 26324, 27128) },
1470 { AOM_CDF14(7208, 7375, 8779, 9683, 10072, 10284, 10796, 19786, 20152,
1471 22955, 24246, 25165, 26589) },
1472 { AOM_CDF14(5897, 7283, 7555, 8910, 9391, 9937, 10276, 11044, 19841,
1473 22620, 23784, 25060, 26418) },
1474 { AOM_CDF14(12171, 12718, 13885, 14348, 14925, 15394, 16108, 17075, 17583,
1475 21996, 23614, 25048, 27011) },
1476 { AOM_CDF14(10192, 11222, 12318, 12877, 13533, 14184, 14866, 15879, 16650,
1477 20419, 23265, 24295, 26596) },
1478 { AOM_CDF14(10776, 11387, 12899, 13471, 14088, 14575, 15366, 16456, 17040,
1479 20815, 22009, 24448, 26492) },
1480 { AOM_CDF14(4015, 6473, 9853, 10285, 10655, 11032, 11431, 12199, 12738,
1481 14760, 16121, 17263, 28612) },
Luc Trudeau6e1cd782017-06-21 13:52:36 -04001482 };
1483#else
Yue Chen57b8ff62017-10-10 23:37:31 -07001484#if CONFIG_FILTER_INTRA
1485static const aom_cdf_prob
1486 default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(UV_INTRA_MODES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001487 { AOM_CDF13(17902, 18828, 21117, 21487, 21924, 22484, 23588, 24669, 25177,
1488 28731, 29903, 31509) },
1489 { AOM_CDF13(9654, 23559, 23873, 24050, 24203, 24929, 25057, 25286, 26027,
1490 28172, 28716, 30913) },
1491 { AOM_CDF13(10012, 10124, 25394, 25540, 25665, 25752, 26567, 27761, 27876,
1492 29497, 30581, 31179) },
1493 { AOM_CDF13(15143, 15859, 16581, 21567, 21968, 22430, 22867, 24953, 26969,
1494 30310, 31125, 32329) },
1495 { AOM_CDF13(14063, 14416, 14921, 15022, 25164, 26720, 28661, 29083, 29277,
1496 31337, 31882, 32565) },
1497 { AOM_CDF13(12942, 14713, 15178, 15325, 16964, 27421, 27834, 28306, 28645,
1498 30804, 31322, 32387) },
1499 { AOM_CDF13(13687, 13993, 16776, 16912, 18338, 18648, 27557, 28140, 28359,
1500 30820, 31669, 32443) },
1501 { AOM_CDF13(14180, 14439, 16582, 17373, 17675, 17931, 18453, 26308, 26761,
1502 30058, 31293, 32156) },
1503 { AOM_CDF13(12480, 14300, 14838, 16085, 16434, 17023, 17426, 18313, 26041,
1504 29653, 30347, 32067) },
1505 { AOM_CDF13(17202, 18093, 19414, 19910, 20311, 20837, 21554, 22830, 23572,
1506 28770, 30259, 32145) },
1507 { AOM_CDF13(16336, 18149, 19485, 19927, 20365, 20924, 21524, 22561, 23421,
1508 28141, 30701, 32020) },
1509 { AOM_CDF13(16485, 17366, 19874, 20364, 20713, 21057, 21773, 23100, 23685,
1510 28079, 29091, 32028) },
1511 { AOM_CDF13(13638, 16789, 19763, 19903, 19995, 20201, 20405, 20861, 21174,
1512 22802, 23566, 24754) }
Yue Chen57b8ff62017-10-10 23:37:31 -07001513 };
1514#else
Urvang Joshie6ca8e82017-03-15 14:57:41 -07001515static const aom_cdf_prob
Luc Trudeaud6d9eee2017-07-12 12:36:50 -04001516 default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(UV_INTRA_MODES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001517 { AOM_CDF13(23552, 25936, 28623, 29033, 29395, 29892, 30252, 30905, 31370,
1518 31980, 32293, 32660) },
1519 { AOM_CDF13(2944, 26431, 27553, 27746, 28022, 29080, 29204, 29377, 30264,
1520 31206, 31613, 32418) },
1521 { AOM_CDF13(4352, 5120, 27952, 28117, 28473, 28759, 29563, 30864, 31051,
1522 31694, 32073, 32435) },
1523 { AOM_CDF13(17664, 20288, 21839, 26072, 26420, 26972, 27240, 28565, 30914,
1524 31694, 32083, 32591) },
1525 { AOM_CDF13(16640, 18390, 20233, 20557, 25162, 27789, 29397, 29895, 30369,
1526 31497, 32025, 32642) },
1527 { AOM_CDF13(13952, 17947, 18918, 19206, 21131, 30668, 31061, 31317, 31838,
1528 32137, 32342, 32547) },
1529 { AOM_CDF13(15872, 16990, 21479, 21732, 24134, 24854, 30296, 30887, 31163,
1530 31902, 32218, 32702) },
1531 { AOM_CDF13(16256, 17280, 23081, 24039, 24457, 24838, 25346, 30329, 30908,
1532 31746, 32206, 32639) },
1533 { AOM_CDF13(14720, 19249, 20501, 22079, 22439, 23218, 23463, 24107, 30308,
1534 31379, 31866, 32556) },
1535 { AOM_CDF13(16768, 19967, 22374, 22976, 23836, 24050, 24642, 25760, 26653,
1536 29585, 30937, 32518) },
1537 { AOM_CDF13(16768, 20751, 23026, 23591, 24299, 24516, 24981, 25876, 26806,
1538 29520, 31286, 32455) },
1539 { AOM_CDF13(17536, 20055, 22965, 23507, 24210, 24398, 25098, 26366, 27033,
1540 29674, 30689, 32530) },
1541 { AOM_CDF13(17536, 22753, 27126, 27353, 27571, 28139, 28505, 29198, 29886,
1542 30801, 31335, 32054) },
Urvang Joshie6ca8e82017-03-15 14:57:41 -07001543 };
Yue Chen57b8ff62017-10-10 23:37:31 -07001544#endif
Luc Trudeau6e1cd782017-06-21 13:52:36 -04001545#endif // CONFIG_CFL
Thomas Davies1d7db722017-02-22 11:15:00 +00001546
Alex Converse57795a42017-03-14 12:18:25 -07001547#if CONFIG_EXT_PARTITION_TYPES
Thomas Daedee82e5772017-11-06 17:27:10 -08001548static const aom_cdf_prob default_partition_cdf[PARTITION_CONTEXTS][CDF_SIZE(
1549 EXT_PARTITION_TYPES)] = {
1550 // 8x8 -> 4x4 only supports the four legacy partition types
1551 { AOM_CDF4(25472, 28949, 31052), 0, 0, 0, 0, 0, 0 },
1552 { AOM_CDF4(18816, 22250, 28783), 0, 0, 0, 0, 0, 0 },
1553 { AOM_CDF4(18944, 26126, 29188), 0, 0, 0, 0, 0, 0 },
1554 { AOM_CDF4(15488, 22508, 27077), 0, 0, 0, 0, 0, 0 },
1555 // 16x16 -> 8x8
1556 { AOM_CDF10(22272, 23768, 25043, 29996, 30495, 30994, 31419, 31844, 32343) },
1557 { AOM_CDF10(11776, 13457, 16315, 28229, 28789, 29349, 30302, 31255, 31816) },
1558 { AOM_CDF10(10496, 14802, 16136, 27127, 28563, 29999, 30444, 30889, 32324) },
1559 { AOM_CDF10(6784, 8763, 10440, 29110, 29770, 30430, 30989, 31548, 32208) },
1560 // 32x32 -> 16x16
1561 { AOM_CDF10(22656, 23801, 24702, 30721, 31103, 31485, 31785, 32085, 32467) },
1562 { AOM_CDF10(8704, 9926, 12586, 28885, 29292, 29699, 30586, 31473, 31881) },
1563 { AOM_CDF10(6656, 10685, 11566, 27857, 29200, 30543, 30837, 31131, 32474) },
1564 { AOM_CDF10(2176, 3012, 3690, 31253, 31532, 31811, 32037, 32263, 32542) },
1565 // 64x64 -> 32x32
1566 { AOM_CDF10(28416, 28705, 28926, 32258, 32354, 32450, 32523, 32596, 32693) },
1567 { AOM_CDF10(9216, 9952, 11849, 30134, 30379, 30624, 31256, 31888, 32134) },
1568 { AOM_CDF10(7424, 9008, 9528, 30664, 31192, 31720, 31893, 32066, 32594) },
1569 { AOM_CDF10(1280, 1710, 2069, 31978, 32121, 32264, 32383, 32502, 32647) },
Alex Converse57795a42017-03-14 12:18:25 -07001570#if CONFIG_EXT_PARTITION
Rupert Swarbrickeb123932017-11-22 15:20:47 +00001571#if ALLOW_128X32_BLOCKS
Thomas Daedee82e5772017-11-06 17:27:10 -08001572 { AOM_CDF10(28416, 28705, 28926, 32258, 32354, 32450, 32523, 32596, 32693) },
1573 { AOM_CDF10(9216, 9952, 11849, 30134, 30379, 30624, 31256, 31888, 32134) },
1574 { AOM_CDF10(7424, 9008, 9528, 30664, 31192, 31720, 31893, 32066, 32594) },
1575 { AOM_CDF10(1280, 1710, 2069, 31978, 32121, 32264, 32383, 32502, 32647) },
Rupert Swarbrickeb123932017-11-22 15:20:47 +00001576#else
1577 // 128x128 -> 64x64
1578 { AOM_CDF8(28416, 28705, 28926, 32258, 32402, 32547, 32548) },
1579 { AOM_CDF8(9216, 9952, 11849, 30134, 30502, 30870, 30871) },
1580 { AOM_CDF8(7424, 9008, 9528, 30664, 31456, 32248, 32249) },
1581 { AOM_CDF8(1280, 1710, 2069, 31978, 32193, 32409, 32410) },
1582#endif // ALLOW_128X32_BLOCKS
1583#endif // CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -08001584};
Alex Converse57795a42017-03-14 12:18:25 -07001585#else
Thomas Davies1d7db722017-02-22 11:15:00 +00001586static const aom_cdf_prob
1587 default_partition_cdf[PARTITION_CONTEXTS][CDF_SIZE(PARTITION_TYPES)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001588 { AOM_CDF4(25472, 28949, 31052) }, { AOM_CDF4(18816, 22250, 28783) },
1589 { AOM_CDF4(18944, 26126, 29188) }, { AOM_CDF4(15488, 22508, 27077) },
1590 { AOM_CDF4(22272, 25265, 27815) }, { AOM_CDF4(11776, 15138, 20854) },
1591 { AOM_CDF4(10496, 19109, 21777) }, { AOM_CDF4(6784, 10743, 14098) },
1592 { AOM_CDF4(22656, 24947, 26749) }, { AOM_CDF4(8704, 11148, 16469) },
1593 { AOM_CDF4(6656, 14714, 16477) }, { AOM_CDF4(2176, 3849, 5205) },
1594 { AOM_CDF4(28416, 28994, 29436) }, { AOM_CDF4(9216, 10688, 14483) },
1595 { AOM_CDF4(7424, 10592, 11632) }, { AOM_CDF4(1280, 2141, 2859) },
Alex Converse57795a42017-03-14 12:18:25 -07001596#if CONFIG_EXT_PARTITION
Thomas Daedee82e5772017-11-06 17:27:10 -08001597 { AOM_CDF4(28416, 28994, 29436) }, { AOM_CDF4(9216, 10688, 14483) },
1598 { AOM_CDF4(7424, 10592, 11632) }, { AOM_CDF4(1280, 2141, 2859) },
Alex Converse57795a42017-03-14 12:18:25 -07001599#endif
Thomas Davies1d7db722017-02-22 11:15:00 +00001600 };
Alex Converse57795a42017-03-14 12:18:25 -07001601#endif
Thomas Davies1d7db722017-02-22 11:15:00 +00001602
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001603static const aom_cdf_prob default_intra_ext_tx_cdf
1604 [EXT_TX_SETS_INTRA][EXT_TX_SIZES][INTRA_MODES][CDF_SIZE(TX_TYPES)] = {
1605 {
Sebastien Alaiwand8b93f52017-10-17 09:22:01 +02001606 // FIXME: unused zero positions, from uncoded trivial transform set
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001607 {
1608 { 0 },
1609 { 0 },
1610 { 0 },
1611 { 0 },
1612 { 0 },
1613 { 0 },
1614 { 0 },
1615 { 0 },
1616 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001617 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001618 { 0 },
1619 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001620 { 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001621 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001622 {
1623 { 0 },
1624 { 0 },
1625 { 0 },
1626 { 0 },
1627 { 0 },
1628 { 0 },
1629 { 0 },
1630 { 0 },
1631 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001632 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001633 { 0 },
1634 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001635 { 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001636 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001637 {
1638 { 0 },
1639 { 0 },
1640 { 0 },
1641 { 0 },
1642 { 0 },
1643 { 0 },
1644 { 0 },
1645 { 0 },
1646 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001647 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001648 { 0 },
1649 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001650 { 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001651 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001652 {
1653 { 0 },
1654 { 0 },
1655 { 0 },
1656 { 0 },
1657 { 0 },
1658 { 0 },
1659 { 0 },
1660 { 0 },
1661 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001662 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001663 { 0 },
1664 { 0 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001665 { 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001666 },
1667 },
1668 {
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001669 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001670 { AOM_CDF7(1024, 28800, 29048, 29296, 30164, 31466) },
1671 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1672 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1673 { AOM_CDF7(1152, 25852, 26284, 26717, 28230, 30499) },
1674 { AOM_CDF7(1024, 2016, 3938, 5860, 29404, 31086) },
1675 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1676 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1677 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1678 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1679 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001680 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1681 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001682 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001683 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001684 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001685 { AOM_CDF7(1024, 28800, 29048, 29296, 30164, 31466) },
1686 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1687 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1688 { AOM_CDF7(1152, 25852, 26284, 26717, 28230, 30499) },
1689 { AOM_CDF7(1024, 2016, 3938, 5860, 29404, 31086) },
1690 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1691 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1692 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1693 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1694 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001695 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1696 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001697 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001698 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001699 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001700 { AOM_CDF7(1024, 28800, 29048, 29296, 30164, 31466) },
1701 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1702 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1703 { AOM_CDF7(1152, 25852, 26284, 26717, 28230, 30499) },
1704 { AOM_CDF7(1024, 2016, 3938, 5860, 29404, 31086) },
1705 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1706 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1707 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1708 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1709 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001710 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1711 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001712 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001713 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001714 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001715 { AOM_CDF7(1024, 28800, 29048, 29296, 30164, 31466) },
1716 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1717 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1718 { AOM_CDF7(1152, 25852, 26284, 26717, 28230, 30499) },
1719 { AOM_CDF7(1024, 2016, 3938, 5860, 29404, 31086) },
1720 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
1721 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1722 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1723 { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
1724 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001725 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
1726 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001727 { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001728 },
1729 },
1730 {
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001731 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001732 { AOM_CDF5(1024, 28800, 29792, 31280) },
1733 { AOM_CDF5(1280, 5216, 6938, 26310) },
1734 { AOM_CDF5(1280, 5216, 6938, 13396) },
1735 { AOM_CDF5(1152, 25852, 27581, 30174) },
1736 { AOM_CDF5(1024, 2016, 28924, 30846) },
1737 { AOM_CDF5(1280, 5216, 6938, 26310) },
1738 { AOM_CDF5(1280, 5216, 6938, 13396) },
1739 { AOM_CDF5(1280, 4109, 13065, 26611) },
1740 { AOM_CDF5(1280, 4109, 13065, 26611) },
1741 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001742 { AOM_CDF5(1280, 5216, 6938, 13396) },
1743 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001744 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001745 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001746 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001747 { AOM_CDF5(1024, 28800, 29792, 31280) },
1748 { AOM_CDF5(1280, 5216, 6938, 26310) },
1749 { AOM_CDF5(1280, 5216, 6938, 13396) },
1750 { AOM_CDF5(1152, 25852, 27581, 30174) },
1751 { AOM_CDF5(1024, 2016, 28924, 30846) },
1752 { AOM_CDF5(1280, 5216, 6938, 26310) },
1753 { AOM_CDF5(1280, 5216, 6938, 13396) },
1754 { AOM_CDF5(1280, 4109, 13065, 26611) },
1755 { AOM_CDF5(1280, 4109, 13065, 26611) },
1756 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001757 { AOM_CDF5(1280, 5216, 6938, 13396) },
1758 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001759 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001760 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001761 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001762 { AOM_CDF5(1024, 28800, 29792, 31280) },
1763 { AOM_CDF5(1280, 5216, 6938, 26310) },
1764 { AOM_CDF5(1280, 5216, 6938, 13396) },
1765 { AOM_CDF5(1152, 25852, 27581, 30174) },
1766 { AOM_CDF5(1024, 2016, 28924, 30846) },
1767 { AOM_CDF5(1280, 5216, 6938, 26310) },
1768 { AOM_CDF5(1280, 5216, 6938, 13396) },
1769 { AOM_CDF5(1280, 4109, 13065, 26611) },
1770 { AOM_CDF5(1280, 4109, 13065, 26611) },
1771 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001772 { AOM_CDF5(1280, 5216, 6938, 13396) },
1773 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001774 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001775 },
Urvang Joshib44bc0d2017-05-22 16:10:09 -07001776 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001777 { AOM_CDF5(1024, 28800, 29792, 31280) },
1778 { AOM_CDF5(1280, 5216, 6938, 26310) },
1779 { AOM_CDF5(1280, 5216, 6938, 13396) },
1780 { AOM_CDF5(1152, 25852, 27581, 30174) },
1781 { AOM_CDF5(1024, 2016, 28924, 30846) },
1782 { AOM_CDF5(1280, 5216, 6938, 26310) },
1783 { AOM_CDF5(1280, 5216, 6938, 13396) },
1784 { AOM_CDF5(1280, 4109, 13065, 26611) },
1785 { AOM_CDF5(1280, 4109, 13065, 26611) },
1786 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001787 { AOM_CDF5(1280, 5216, 6938, 13396) },
1788 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daedee82e5772017-11-06 17:27:10 -08001789 { AOM_CDF5(1280, 5216, 6938, 13396) },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001790 },
Sarah Parker53f93db2017-07-11 17:20:04 -07001791 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001792 };
1793static const aom_cdf_prob
1794 default_inter_ext_tx_cdf[EXT_TX_SETS_INTER][EXT_TX_SIZES][CDF_SIZE(
1795 TX_TYPES)] = {
Sebastien Alaiwand8b93f52017-10-17 09:22:01 +02001796 { { 0 }, { 0 }, { 0 }, { 0 } },
Thomas Daedee82e5772017-11-06 17:27:10 -08001797 { { AOM_CDF16(1280, 1453, 1626, 2277, 2929, 3580, 4232, 16717, 19225,
1798 21733, 24241, 26749, 28253, 29758, 31263) },
1799 { AOM_CDF16(1280, 1453, 1626, 2277, 2929, 3580, 4232, 16717, 19225,
1800 21733, 24241, 26749, 28253, 29758, 31263) },
1801 { AOM_CDF16(1280, 1453, 1626, 2277, 2929, 3580, 4232, 16717, 19225,
1802 21733, 24241, 26749, 28253, 29758, 31263) },
1803 { AOM_CDF16(1280, 1453, 1626, 2277, 2929, 3580, 4232, 16717, 19225,
1804 21733, 24241, 26749, 28253, 29758, 31263) } },
1805 { { AOM_CDF12(1280, 3125, 4970, 17132, 19575, 22018, 24461, 26904, 28370,
1806 29836, 31302) },
1807 { AOM_CDF12(1280, 3125, 4970, 17132, 19575, 22018, 24461, 26904, 28370,
1808 29836, 31302) },
1809 { AOM_CDF12(1280, 3125, 4970, 17132, 19575, 22018, 24461, 26904, 28370,
1810 29836, 31302) },
1811 { AOM_CDF12(1280, 3125, 4970, 17132, 19575, 22018, 24461, 26904, 28370,
1812 29836, 31302) } },
1813 { { AOM_CDF2(1536) },
1814 { AOM_CDF2(1536) },
1815 { AOM_CDF2(1536) },
1816 { AOM_CDF2(1536) } },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00001817 };
hui sub4e25d22017-03-09 15:32:30 -08001818
Luc Trudeauf5334002017-04-25 12:21:26 -04001819#if CONFIG_CFL
David Michael Barrf6eaa152017-07-19 19:42:28 +09001820static const aom_cdf_prob default_cfl_sign_cdf[CDF_SIZE(CFL_JOINT_SIGNS)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001821 AOM_CDF8(1892, 2229, 11464, 14116, 25661, 26409, 32508)
Luc Trudeauf5334002017-04-25 12:21:26 -04001822};
David Michael Barrf6eaa152017-07-19 19:42:28 +09001823
1824static const aom_cdf_prob
1825 default_cfl_alpha_cdf[CFL_ALPHA_CONTEXTS][CDF_SIZE(CFL_ALPHABET_SIZE)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08001826 { AOM_CDF16(16215, 27740, 31726, 32606, 32736, 32751, 32757, 32759, 32761,
1827 32762, 32763, 32764, 32765, 32766, 32767) },
1828 { AOM_CDF16(15213, 24615, 29704, 31974, 32545, 32673, 32713, 32746, 32753,
1829 32756, 32758, 32761, 32763, 32764, 32766) },
1830 { AOM_CDF16(13250, 24677, 29113, 31666, 32408, 32578, 32628, 32711, 32730,
1831 32738, 32744, 32749, 32752, 32756, 32759) },
1832 { AOM_CDF16(24593, 30787, 32062, 32495, 32656, 32707, 32735, 32747, 32752,
1833 32757, 32760, 32763, 32764, 32765, 32767) },
1834 { AOM_CDF16(19883, 27419, 30100, 31392, 31896, 32184, 32299, 32511, 32568,
1835 32602, 32628, 32664, 32680, 32691, 32708) },
1836 { AOM_CDF16(15939, 24151, 27754, 29680, 30651, 31267, 31527, 31868, 32001,
1837 32090, 32181, 32284, 32314, 32366, 32486) }
David Michael Barrf6eaa152017-07-19 19:42:28 +09001838 };
Luc Trudeauf5334002017-04-25 12:21:26 -04001839#endif
1840
Jingning Hana45d8422017-10-05 09:57:38 -07001841#if CONFIG_KF_CTX
1842// TODO(jingning): This initial models are copied directly from the entries
1843// from the original table. The copied indexes are (0, 0), (0, 1), .. (4, 4).
1844// It is possible to re-train this model and bring back the 0.14% loss in CIF
1845// set key frame coding. This reduction in context model does not change the
1846// key frame coding stats for mid and high resolution sets.
Yue Chen4eba69b2017-11-09 22:37:35 -08001847#if CONFIG_FILTER_INTRA
1848const aom_cdf_prob
1849 default_kf_y_mode_cdf[KF_MODE_CONTEXTS][KF_MODE_CONTEXTS][CDF_SIZE(
1850 INTRA_MODES)] = {
1851 { { AOM_CDF13(13234, 14775, 17115, 18040, 18783, 19420, 20510, 22129,
1852 23183, 28738, 30120, 32138) },
1853 { AOM_CDF13(8983, 14623, 16290, 17124, 17864, 18817, 19593, 20876,
1854 22359, 27820, 29791, 31566) },
1855 { AOM_CDF13(7091, 8084, 17897, 18490, 19057, 19428, 20811, 22624, 23265,
1856 28288, 29341, 31870) },
1857 { AOM_CDF13(11191, 12808, 14120, 16182, 16785, 17440, 18159, 20280,
1858 22697, 28431, 30235, 32276) },
1859 { AOM_CDF13(8208, 9510, 11986, 12851, 15212, 16786, 19400, 22224, 23146,
1860 28889, 30200, 32375) } },
1861 { { AOM_CDF13(6308, 15986, 17454, 18110, 18739, 19867, 20479, 21575,
1862 22972, 28087, 30042, 31489) },
1863 { AOM_CDF13(3549, 21993, 22593, 22968, 23262, 24052, 24280, 24856,
1864 26026, 29057, 30818, 31543) },
1865 { AOM_CDF13(4371, 9956, 16063, 16680, 17207, 17870, 18692, 20142, 21261,
1866 26613, 28301, 30433) },
1867 { AOM_CDF13(6445, 12764, 13699, 15338, 15922, 16891, 17304, 18868,
1868 22816, 28105, 30472, 31907) },
1869 { AOM_CDF13(4300, 11014, 12466, 13258, 15028, 17584, 19170, 21448,
1870 22945, 28207, 30041, 31659) } },
1871 { { AOM_CDF13(9111, 10159, 16955, 17625, 18268, 18703, 20078, 22004,
1872 22761, 28166, 29334, 31990) },
1873 { AOM_CDF13(7107, 11104, 15591, 16340, 17066, 17802, 18721, 20303,
1874 21481, 26882, 28699, 30978) },
1875 { AOM_CDF13(4546, 4935, 22442, 22717, 22960, 23087, 24171, 25671, 25939,
1876 29333, 29866, 32023) },
1877 { AOM_CDF13(8332, 9555, 12646, 14689, 15340, 15873, 16872, 19939, 21942,
1878 27812, 29508, 31923) },
1879 { AOM_CDF13(6413, 7233, 13108, 13895, 15332, 16187, 19121, 22694, 23365,
1880 28639, 29686, 32187) } },
1881 { { AOM_CDF13(9584, 11586, 12990, 15322, 15927, 16732, 17406, 19225,
1882 22484, 28555, 30321, 32279) },
1883 { AOM_CDF13(5907, 11662, 12625, 14955, 15491, 16403, 16865, 18074,
1884 23261, 28508, 30584, 32057) },
1885 { AOM_CDF13(5759, 7323, 12581, 14779, 15363, 15946, 16851, 19330, 21902,
1886 27860, 29214, 31747) },
1887 { AOM_CDF13(7166, 8714, 9430, 14479, 14672, 14953, 15184, 17239, 24798,
1888 29350, 31021, 32371) },
1889 { AOM_CDF13(6318, 8140, 9595, 12354, 13754, 15324, 16681, 19701, 22723,
1890 28616, 30226, 32279) } },
1891 { { AOM_CDF13(8669, 9875, 12300, 13093, 15518, 17458, 19843, 22083, 22927,
1892 28780, 30271, 32364) },
1893 { AOM_CDF13(6600, 10422, 12153, 12937, 15218, 18211, 19914, 21744,
1894 22975, 28393, 30393, 31970) },
1895 { AOM_CDF13(5512, 6207, 14265, 14897, 16246, 17175, 19865, 22553, 23178,
1896 28445, 29511, 31980) },
1897 { AOM_CDF13(8195, 9407, 10830, 13261, 14443, 15761, 16922, 20311, 22151,
1898 28230, 30109, 32220) },
1899 { AOM_CDF13(5612, 6462, 8166, 8737, 14316, 17802, 21788, 25554, 26080,
1900 30083, 30983, 32457) } }
1901 };
1902#else
Jingning Hana45d8422017-10-05 09:57:38 -07001903const aom_cdf_prob
1904 default_kf_y_mode_cdf[KF_MODE_CONTEXTS][KF_MODE_CONTEXTS][CDF_SIZE(
1905 INTRA_MODES)] = {
1906 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001907 { AOM_CDF13(14208, 17049, 20482, 21400, 22520, 23261, 23963, 25010,
1908 25828, 28398, 29394, 30738) },
1909 { AOM_CDF13(10496, 18295, 19872, 20945, 21933, 22818, 23334, 24033,
1910 24996, 27652, 29060, 30071) },
1911 { AOM_CDF13(5120, 6461, 19840, 20310, 21151, 21506, 22535, 23900,
1912 24281, 26958, 27680, 29636) },
1913 { AOM_CDF13(12544, 15177, 17666, 19855, 21147, 22017, 22797, 24514,
1914 25779, 28716, 29772, 31267) },
1915 { AOM_CDF13(7552, 9909, 11908, 13141, 18765, 22029, 23872, 24920,
1916 25674, 29031, 30244, 31684) },
Jingning Hana45d8422017-10-05 09:57:38 -07001917 },
1918 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001919 { AOM_CDF13(3968, 17613, 19125, 19550, 20305, 21908, 22274, 22719,
1920 23959, 26970, 29013, 29843) },
1921 { AOM_CDF13(3072, 21231, 21863, 22306, 22674, 23414, 23517, 23798,
1922 24770, 27032, 29016, 29636) },
1923 { AOM_CDF13(2560, 9825, 15681, 16370, 17054, 17687, 18236, 19273,
1924 20311, 24863, 26825, 28756) },
1925 { AOM_CDF13(6912, 15140, 16485, 18364, 19181, 20394, 20663, 22098,
1926 23936, 27555, 29704, 30849) },
1927 { AOM_CDF13(2944, 13101, 14006, 14974, 17818, 21093, 21930, 22566,
1928 24137, 27732, 29814, 30904) },
Jingning Hana45d8422017-10-05 09:57:38 -07001929 },
1930 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001931 { AOM_CDF13(11392, 12961, 20901, 21544, 22490, 22928, 23888, 25214,
1932 25777, 28256, 29102, 30513) },
1933 { AOM_CDF13(8064, 13595, 18888, 19616, 20765, 21454, 21990, 23103,
1934 23980, 26772, 28070, 29197) },
1935 { AOM_CDF13(4352, 5059, 21705, 22099, 22703, 22846, 23679, 25469,
1936 25728, 27919, 28484, 30215) },
1937 { AOM_CDF13(10752, 12277, 16471, 18276, 19443, 19917, 21158, 23881,
1938 24892, 27709, 28771, 30274) },
1939 { AOM_CDF13(8320, 10000, 14147, 15330, 19197, 20923, 22954, 24541,
1940 25285, 28407, 29431, 30953) },
Jingning Hana45d8422017-10-05 09:57:38 -07001941 },
1942 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001943 { AOM_CDF13(10240, 12819, 15545, 18248, 19779, 20932, 21899, 23377,
1944 25448, 28730, 29936, 31536) },
1945 { AOM_CDF13(7552, 15309, 16645, 19760, 20653, 21650, 22221, 23273,
1946 25509, 28683, 30153, 31192) },
1947 { AOM_CDF13(5248, 6840, 16129, 17940, 19069, 19660, 20588, 22760,
1948 23927, 27538, 28397, 30725) },
1949 { AOM_CDF13(11008, 11903, 13794, 21320, 21931, 22310, 22546, 25375,
1950 27347, 29800, 30761, 31833) },
1951 { AOM_CDF13(6272, 8678, 10313, 13073, 16823, 19980, 21520, 23242,
1952 25344, 28797, 30405, 31940) },
Jingning Hana45d8422017-10-05 09:57:38 -07001953 },
1954 {
Thomas Daedee82e5772017-11-06 17:27:10 -08001955 { AOM_CDF13(7296, 9304, 11772, 12529, 18014, 20418, 23076, 24662,
1956 25549, 29074, 30392, 31773) },
1957 { AOM_CDF13(7168, 11687, 13541, 14431, 18214, 20761, 22269, 23320,
1958 24633, 28339, 30193, 31268) },
1959 { AOM_CDF13(3584, 4428, 13496, 14189, 17372, 18617, 20609, 22615,
1960 23270, 27280, 28305, 30602) },
1961 { AOM_CDF13(7424, 8834, 10499, 14357, 17671, 19150, 20460, 23235,
1962 24391, 28351, 29843, 31481) },
1963 { AOM_CDF13(4480, 5888, 7093, 7902, 18290, 22123, 24511, 25532, 26360,
1964 29653, 30954, 32215) },
Jingning Hana45d8422017-10-05 09:57:38 -07001965 },
1966 };
Yue Chen4eba69b2017-11-09 22:37:35 -08001967#endif
Jingning Hana45d8422017-10-05 09:57:38 -07001968#else
Yue Chen63ce36f2017-10-10 23:37:31 -07001969const aom_cdf_prob
1970 default_kf_y_mode_cdf[INTRA_MODES][INTRA_MODES][CDF_SIZE(INTRA_MODES)] = {
Yue Chen63ce36f2017-10-10 23:37:31 -07001971#if CONFIG_FILTER_INTRA
Thomas Daedee82e5772017-11-06 17:27:10 -08001972 { { AOM_CDF13(14683, 16164, 18655, 19530, 20058, 20712, 21844, 23569,
1973 24762, 29323, 30502, 32305) },
1974 { AOM_CDF13(12656, 20348, 21294, 21804, 22202, 23095, 23587, 24461,
1975 25907, 29190, 30652, 31811) },
1976 { AOM_CDF13(9503, 9951, 23007, 23314, 23541, 23705, 24951, 26524, 26849,
1977 29605, 30141, 31999) },
1978 { AOM_CDF13(13260, 14061, 15139, 17906, 18255, 18765, 19485, 22590,
1979 24686, 29535, 30788, 32556) },
1980 { AOM_CDF13(9636, 10707, 11584, 12180, 19805, 22417, 24821, 25934,
1981 26829, 30447, 31325, 32571) },
1982 { AOM_CDF13(11503, 14182, 15005, 15716, 17312, 22822, 23813, 24939,
1983 26485, 30176, 31386, 32491) },
1984 { AOM_CDF13(10780, 11415, 14363, 14834, 16619, 17205, 23514, 24954,
1985 25580, 29808, 30651, 32535) },
1986 { AOM_CDF13(10987, 11732, 14421, 15496, 15957, 16409, 17580, 23241,
1987 24331, 29195, 30353, 32508) },
1988 { AOM_CDF13(12508, 14242, 15162, 16631, 17071, 17984, 18776, 20784,
1989 24151, 29108, 30867, 32444) },
1990 { AOM_CDF13(12829, 14161, 16064, 16898, 17478, 18230, 19432, 21587,
1991 22866, 28544, 30194, 32428) },
1992 { AOM_CDF13(12573, 14467, 16431, 17241, 17858, 18791, 19760, 21697,
1993 22982, 28322, 30394, 32214) },
1994 { AOM_CDF13(12584, 13813, 16632, 17412, 17891, 18453, 19775, 21906,
1995 22973, 28492, 29852, 32414) },
1996 { AOM_CDF13(10371, 13033, 17420, 17894, 18176, 18567, 19210, 20319,
1997 21090, 24048, 25125, 26632) } },
1998 { { AOM_CDF13(9051, 21642, 22328, 22666, 22990, 24191, 24466, 25094,
1999 26458, 29094, 30542, 31304) },
2000 { AOM_CDF13(5783, 26271, 26458, 26655, 26792, 27507, 27595, 27910,
2001 29012, 30270, 31322, 31740) },
2002 { AOM_CDF13(9084, 14570, 20536, 20922, 21174, 21685, 22190, 23274,
2003 24293, 26854, 27998, 29451) },
2004 { AOM_CDF13(9162, 15547, 16132, 18428, 19036, 19961, 20253, 22111,
2005 25468, 28977, 31151, 32108) },
2006 { AOM_CDF13(6626, 15650, 16281, 16696, 20419, 23826, 24669, 25188,
2007 26709, 29561, 31203, 31811) },
2008 { AOM_CDF13(5946, 17790, 18063, 18339, 19049, 25701, 25942, 26289,
2009 28224, 30501, 31732, 32192) },
2010 { AOM_CDF13(8247, 15710, 16700, 17083, 18600, 19891, 23303, 24149,
2011 25418, 28745, 30205, 31229) },
2012 { AOM_CDF13(7414, 14790, 16103, 17056, 17437, 18332, 18797, 23279,
2013 25024, 28630, 30385, 31627) },
2014 { AOM_CDF13(7886, 17142, 17377, 18228, 18517, 19566, 19789, 20477,
2015 26467, 29451, 31424, 32074) },
2016 { AOM_CDF13(8251, 19430, 19998, 20426, 20782, 22155, 22488, 23281,
2017 25037, 28791, 30593, 31614) },
2018 { AOM_CDF13(8042, 19117, 19777, 20139, 20462, 21878, 22212, 23083,
2019 24811, 28090, 30592, 31308) },
2020 { AOM_CDF13(8268, 19518, 20406, 20756, 21064, 22108, 22552, 23405,
2021 25111, 28731, 30343, 31534) },
2022 { AOM_CDF13(6521, 21472, 22603, 22915, 23041, 23480, 23618, 24110,
2023 25099, 26516, 27883, 28449) } },
2024 { { AOM_CDF13(12527, 13076, 21835, 22214, 22492, 22728, 23978, 25665,
2025 26165, 29466, 30247, 32239) },
2026 { AOM_CDF13(12377, 16820, 21011, 21631, 21960, 22438, 23031, 24350,
2027 25400, 28539, 29714, 31154) },
2028 { AOM_CDF13(6712, 6862, 26853, 26972, 27060, 27103, 27826, 29143, 29267,
2029 30799, 31064, 32294) },
2030 { AOM_CDF13(11320, 11776, 15386, 17447, 17768, 18066, 18973, 23664,
2031 25022, 29029, 30158, 32267) },
2032 { AOM_CDF13(10773, 11905, 15020, 15656, 20247, 21640, 24465, 25777,
2033 26419, 29685, 30762, 32481) },
2034 { AOM_CDF13(12323, 14046, 17449, 18101, 19214, 22210, 23345, 24975,
2035 26412, 29729, 30931, 32336) },
2036 { AOM_CDF13(9944, 10198, 17726, 18052, 18893, 19155, 25498, 26898,
2037 27176, 30160, 30652, 32510) },
2038 { AOM_CDF13(8721, 8970, 16785, 17446, 17649, 17826, 18746, 25927, 26396,
2039 29702, 30461, 32528) },
2040 { AOM_CDF13(11404, 12417, 15834, 17066, 17441, 18014, 18966, 21819,
2041 24083, 29077, 30376, 32213) },
2042 { AOM_CDF13(11450, 11958, 18297, 18820, 19165, 19479, 20809, 23280,
2043 23916, 28662, 29933, 32364) },
2044 { AOM_CDF13(10920, 11607, 17980, 18561, 18921, 19301, 20390, 22706,
2045 23413, 28156, 30004, 31872) },
2046 { AOM_CDF13(11462, 11962, 19642, 20131, 20369, 20530, 21898, 24152,
2047 24686, 28899, 29656, 32424) },
2048 { AOM_CDF13(8171, 9219, 21810, 22146, 22350, 22480, 22930, 24054, 24405,
2049 26437, 27109, 28397) } },
2050 { { AOM_CDF13(12474, 13429, 14740, 17535, 18021, 18752, 19551, 22163,
2051 24563, 29410, 30687, 32505) },
2052 { AOM_CDF13(9862, 15025, 15766, 18942, 19321, 20031, 20492, 21747,
2053 25671, 29272, 30926, 32270) },
2054 { AOM_CDF13(8764, 9426, 17676, 19605, 19945, 20174, 21106, 24312, 25470,
2055 29242, 30066, 31831) },
2056 { AOM_CDF13(8566, 9030, 9692, 18683, 18787, 18968, 19155, 23451, 26278,
2057 30299, 31208, 32537) },
2058 { AOM_CDF13(7535, 8616, 9353, 13056, 18938, 21199, 22627, 23971, 26022,
2059 30131, 31243, 32618) },
2060 { AOM_CDF13(9138, 11001, 11570, 14638, 16000, 20926, 21803, 23237,
2061 26287, 30063, 31128, 32599) },
2062 { AOM_CDF13(9729, 10184, 11919, 13759, 15439, 16099, 20564, 22949,
2063 24424, 29313, 30373, 32518) },
2064 { AOM_CDF13(8615, 9090, 10462, 14832, 15157, 15466, 16143, 22773, 24815,
2065 29574, 30593, 32635) },
2066 { AOM_CDF13(9258, 10308, 10884, 15905, 16092, 16466, 16802, 19277,
2067 25235, 29804, 31328, 32508) },
2068 { AOM_CDF13(10403, 11313, 12386, 15442, 15884, 16549, 17269, 20362,
2069 22913, 28783, 30284, 32578) },
2070 { AOM_CDF13(9620, 10894, 11874, 14923, 15398, 16326, 17076, 20069,
2071 23137, 28656, 30608, 32331) },
2072 { AOM_CDF13(10095, 10981, 12537, 15703, 16165, 16741, 17550, 20754,
2073 22975, 29162, 30500, 32582) },
2074 { AOM_CDF13(8858, 11204, 14847, 18228, 18741, 19060, 19629, 21234,
2075 24400, 27622, 29011, 30627) } },
2076 { { AOM_CDF13(9911, 10689, 11787, 12138, 19892, 22168, 24984, 26365,
2077 27052, 30676, 31618, 32577) },
2078 { AOM_CDF13(10405, 14007, 14667, 15051, 20542, 23567, 25261, 26243,
2079 27418, 30244, 31480, 32398) },
2080 { AOM_CDF13(7972, 8563, 16778, 17053, 20474, 21431, 24348, 26064, 26466,
2081 29456, 30241, 31822) },
2082 { AOM_CDF13(10502, 10858, 11637, 13369, 16831, 18528, 20122, 23814,
2083 25350, 29741, 31151, 32539) },
2084 { AOM_CDF13(4993, 5184, 5393, 5580, 25670, 27769, 29927, 30768, 31020,
2085 32139, 32371, 32721) },
2086 { AOM_CDF13(6994, 8042, 8425, 8775, 18573, 26670, 27998, 29060, 29741,
2087 31512, 32140, 32705) },
2088 { AOM_CDF13(6608, 6893, 7917, 8137, 18180, 19484, 27302, 28268, 28648,
2089 31184, 31688, 32604) },
2090 { AOM_CDF13(7758, 8381, 9673, 10202, 15951, 17361, 19451, 26253, 26891,
2091 30394, 31343, 32571) },
2092 { AOM_CDF13(9961, 11581, 12003, 12812, 17402, 19995, 21609, 23735,
2093 25957, 29973, 31339, 32560) },
2094 { AOM_CDF13(10245, 10965, 11887, 12326, 18409, 20778, 23127, 24779,
2095 25560, 30046, 31167, 32588) },
2096 { AOM_CDF13(9047, 10157, 11136, 11600, 17607, 20541, 22746, 24278,
2097 25239, 29844, 31296, 32466) },
2098 { AOM_CDF13(10318, 11227, 12470, 12792, 17742, 19600, 22120, 24346,
2099 25079, 29588, 30917, 32593) },
2100 { AOM_CDF13(8281, 10602, 15452, 15940, 19120, 20702, 22521, 23526,
2101 24236, 27829, 28776, 29973) } },
2102 { { AOM_CDF13(9850, 12693, 13536, 13937, 16080, 23341, 24177, 25258,
2103 26372, 30167, 31506, 32425) },
2104 { AOM_CDF13(8537, 15828, 16155, 16425, 17738, 25313, 25706, 26423,
2105 27642, 30290, 31795, 32372) },
2106 { AOM_CDF13(8805, 10168, 16679, 17136, 18480, 21724, 22707, 24501,
2107 25226, 28734, 29582, 31015) },
2108 { AOM_CDF13(11887, 13456, 14000, 16402, 17550, 20969, 21942, 24081,
2109 26141, 29735, 31365, 32610) },
2110 { AOM_CDF13(5462, 6783, 7085, 7427, 16960, 26746, 27970, 28609, 29343,
2111 31379, 32138, 32593) },
2112 { AOM_CDF13(4786, 7121, 7242, 7469, 9622, 28427, 28700, 29374, 30121,
2113 31764, 32356, 32637) },
2114 { AOM_CDF13(9172, 10388, 11156, 11527, 15483, 20332, 24727, 25954,
2115 26870, 30198, 31246, 32352) },
2116 { AOM_CDF13(8102, 9847, 11124, 11911, 13567, 18203, 19081, 24364, 25695,
2117 29586, 31057, 32380) },
2118 { AOM_CDF13(10488, 13506, 14020, 14824, 16307, 20899, 21549, 22906,
2119 25886, 29488, 31408, 32369) },
2120 { AOM_CDF13(9407, 11928, 12529, 12941, 14674, 20905, 21782, 23113,
2121 24351, 29073, 31009, 32410) },
2122 { AOM_CDF13(8764, 11728, 12298, 12713, 14609, 21424, 22115, 23419,
2123 24779, 29206, 31355, 32390) },
2124 { AOM_CDF13(9517, 11912, 12950, 13401, 15075, 20426, 21436, 23153,
2125 24539, 29531, 31132, 32469) },
2126 { AOM_CDF13(8253, 12956, 16212, 16664, 17756, 22714, 23216, 24249,
2127 25321, 28440, 29620, 30259) } },
2128 { { AOM_CDF13(11792, 12317, 15563, 16032, 17398, 17977, 23384, 25171,
2129 25807, 29850, 30737, 32541) },
2130 { AOM_CDF13(10922, 14049, 15834, 16386, 17629, 18873, 22496, 24451,
2131 25744, 29328, 30878, 32141) },
2132 { AOM_CDF13(8243, 8431, 19690, 19885, 20402, 20560, 25644, 27470, 27737,
2133 30291, 30701, 32380) },
2134 { AOM_CDF13(11266, 11746, 13215, 15105, 15916, 16497, 19044, 22912,
2135 24422, 29451, 30565, 32543) },
2136 { AOM_CDF13(7970, 8353, 8989, 9324, 18715, 20136, 27478, 28360, 28854,
2137 31356, 31910, 32687) },
2138 { AOM_CDF13(9835, 10905, 11896, 12507, 15383, 20329, 25102, 26520,
2139 27487, 30879, 31709, 32540) },
2140 { AOM_CDF13(6779, 6957, 9270, 9436, 11553, 11824, 27958, 28747, 29030,
2141 31268, 31664, 32666) },
2142 { AOM_CDF13(9125, 9475, 12773, 13383, 14285, 14691, 18620, 24633, 25338,
2143 29728, 30582, 32548) },
2144 { AOM_CDF13(11721, 12709, 14065, 15136, 16224, 17044, 20019, 22634,
2145 24974, 29533, 30976, 32540) },
2146 { AOM_CDF13(11134, 11581, 13908, 14421, 15715, 16407, 20884, 23365,
2147 24142, 29151, 30333, 32546) },
2148 { AOM_CDF13(10621, 11354, 13725, 14331, 15697, 16435, 20811, 23061,
2149 23916, 29068, 30630, 32382) },
2150 { AOM_CDF13(11037, 11497, 14490, 14987, 16009, 16447, 21140, 23683,
2151 24312, 28995, 30105, 32639) },
2152 { AOM_CDF13(9605, 11018, 17444, 17875, 18709, 19288, 22633, 24723,
2153 25518, 28726, 29835, 31394) } },
2154 { { AOM_CDF13(12284, 12942, 15497, 16898, 17400, 17937, 19136, 23012,
2155 24306, 29247, 30360, 32526) },
2156 { AOM_CDF13(11749, 15601, 16892, 18207, 18593, 19416, 20162, 22890,
2157 24773, 28978, 30525, 32157) },
2158 { AOM_CDF13(8357, 8590, 18591, 19354, 19529, 19661, 20764, 25434, 25938,
2159 29380, 29919, 32290) },
2160 { AOM_CDF13(9307, 9623, 10609, 15340, 15587, 15878, 16422, 22905, 25106,
2161 29604, 30579, 32561) },
2162 { AOM_CDF13(9511, 10303, 11146, 12396, 19000, 20742, 22883, 25043,
2163 26322, 30216, 31156, 32668) },
2164 { AOM_CDF13(11525, 12965, 13992, 15314, 16559, 21108, 22323, 24844,
2165 26765, 30376, 31351, 32576) },
2166 { AOM_CDF13(9919, 10382, 13106, 14128, 15212, 15741, 20216, 23213,
2167 24169, 29046, 29869, 32570) },
2168 { AOM_CDF13(8056, 8456, 10218, 11714, 12070, 12383, 12849, 26222, 27079,
2169 30222, 30828, 32606) },
2170 { AOM_CDF13(10700, 11453, 12659, 15291, 15677, 16240, 16902, 20777,
2171 24142, 29325, 30729, 32560) },
2172 { AOM_CDF13(10863, 11450, 13506, 14976, 15428, 15869, 17051, 21294,
2173 22705, 28406, 29836, 32553) },
2174 { AOM_CDF13(10357, 11196, 13312, 14910, 15380, 15977, 16957, 20978,
2175 22542, 28263, 30186, 32369) },
2176 { AOM_CDF13(10325, 10858, 13637, 15045, 15455, 15809, 17144, 21700,
2177 22936, 28610, 29747, 32558) },
2178 { AOM_CDF13(10032, 11356, 16324, 17851, 18191, 18525, 19241, 22933,
2179 24078, 27949, 29094, 31080) } },
2180 { { AOM_CDF13(11187, 13518, 14554, 16266, 16753, 17679, 18282, 19923,
2181 24195, 29274, 30823, 32442) },
2182 { AOM_CDF13(7948, 15152, 15579, 16934, 17200, 18121, 18405, 19130,
2183 26141, 29589, 31275, 32270) },
2184 { AOM_CDF13(8418, 9721, 16634, 18137, 18405, 18791, 19607, 22197, 24804,
2185 28838, 29667, 31725) },
2186 { AOM_CDF13(9661, 10767, 11231, 16796, 16918, 17285, 17685, 20433,
2187 25515, 29910, 31128, 32611) },
2188 { AOM_CDF13(7447, 9631, 10071, 11463, 16405, 18681, 19977, 21135, 25724,
2189 30089, 31371, 32429) },
2190 { AOM_CDF13(7732, 11142, 11643, 13157, 14285, 19050, 19568, 20445,
2191 26278, 30197, 31552, 32543) },
2192 { AOM_CDF13(8655, 9972, 11341, 12647, 14152, 15009, 18424, 20317, 23903,
2193 29129, 30367, 32348) },
2194 { AOM_CDF13(8905, 10161, 11295, 14376, 14751, 15334, 15861, 20676,
2195 24144, 29140, 30559, 32518) },
2196 { AOM_CDF13(7230, 9455, 9769, 12237, 12385, 12718, 12941, 14070, 26774,
2197 30020, 31689, 32544) },
2198 { AOM_CDF13(9676, 11840, 12666, 14444, 14854, 15790, 16395, 18289,
2199 23074, 28546, 30570, 32500) },
2200 { AOM_CDF13(8954, 11507, 12411, 14262, 14736, 15800, 16324, 17931,
2201 23370, 28692, 30899, 32304) },
2202 { AOM_CDF13(9604, 11709, 12728, 14391, 14817, 15784, 16426, 18627,
2203 22984, 28781, 30290, 32507) },
2204 { AOM_CDF13(8037, 12362, 14711, 16445, 16662, 17238, 17667, 18883,
2205 24405, 27873, 29300, 30676) } },
2206 { { AOM_CDF13(12742, 13944, 16005, 16901, 17483, 18249, 19462, 21457,
2207 22908, 28575, 30017, 32411) },
2208 { AOM_CDF13(11299, 16882, 17822, 18576, 19025, 20145, 20676, 21738,
2209 23779, 28608, 30479, 32163) },
2210 { AOM_CDF13(9373, 9807, 20454, 20912, 21134, 21315, 22536, 24523, 25027,
2211 28824, 29546, 31958) },
2212 { AOM_CDF13(10839, 11634, 12609, 15747, 16076, 16521, 17368, 20813,
2213 23179, 28736, 30250, 32547) },
2214 { AOM_CDF13(10018, 11043, 11846, 12631, 18703, 21106, 23223, 24327,
2215 25655, 29908, 31108, 32633) },
2216 { AOM_CDF13(10447, 12670, 13370, 14274, 15751, 20138, 21082, 22289,
2217 24356, 29308, 30721, 32473) },
2218 { AOM_CDF13(10304, 10858, 13242, 13826, 15409, 16080, 21225, 22983,
2219 23924, 29128, 30162, 32556) },
2220 { AOM_CDF13(9909, 10554, 12924, 14243, 14636, 15075, 16202, 21806,
2221 23067, 28721, 29942, 32552) },
2222 { AOM_CDF13(10896, 12565, 13376, 14948, 15378, 16154, 16898, 19033,
2223 22710, 28465, 30461, 32462) },
2224 { AOM_CDF13(11659, 12724, 14290, 15241, 15795, 16545, 17729, 20065,
2225 21669, 28045, 29829, 32507) },
2226 { AOM_CDF13(11351, 12806, 14382, 15343, 15955, 16885, 17916, 20033,
2227 21718, 28093, 30166, 32319) },
2228 { AOM_CDF13(11522, 12494, 14590, 15496, 15977, 16665, 17908, 20267,
2229 21743, 28115, 29581, 32452) },
2230 { AOM_CDF13(9913, 12241, 17367, 18136, 18433, 18985, 19700, 21136,
2231 22405, 26910, 28302, 30379) } },
2232 { { AOM_CDF13(12772, 14653, 16651, 17429, 17957, 18854, 19886, 21672,
2233 23234, 28792, 30500, 32399) },
2234 { AOM_CDF13(10718, 18074, 18913, 19509, 19880, 20951, 21443, 22467,
2235 24411, 28546, 30812, 32079) },
2236 { AOM_CDF13(8668, 9307, 20783, 21169, 21531, 21743, 22862, 24771, 25364,
2237 29059, 29920, 31878) },
2238 { AOM_CDF13(11352, 12585, 13504, 16428, 16801, 17365, 17969, 21427,
2239 23868, 29321, 30836, 32622) },
2240 { AOM_CDF13(9076, 10636, 11637, 12524, 18204, 20593, 22842, 23921,
2241 25465, 29951, 31401, 32575) },
2242 { AOM_CDF13(9924, 12861, 13519, 14327, 15700, 20596, 21434, 22592,
2243 24521, 29177, 30937, 32569) },
2244 { AOM_CDF13(9975, 10926, 13127, 13658, 15283, 16041, 21277, 23058,
2245 24139, 29093, 30305, 32527) },
2246 { AOM_CDF13(9782, 10733, 12976, 14251, 14721, 15295, 16279, 22181,
2247 23520, 29134, 30459, 32591) },
2248 { AOM_CDF13(10910, 13136, 13939, 15246, 15760, 16621, 17278, 19097,
2249 23321, 28756, 31030, 32520) },
2250 { AOM_CDF13(11508, 13079, 14662, 15543, 16088, 16964, 18013, 20126,
2251 21886, 28317, 30284, 32446) },
2252 { AOM_CDF13(11588, 13894, 15463, 16360, 16934, 17975, 18878, 20699,
2253 22408, 28392, 30519, 32360) },
2254 { AOM_CDF13(11198, 12680, 14726, 15620, 16098, 16861, 18056, 20172,
2255 21896, 28252, 29839, 32437) },
2256 { AOM_CDF13(9832, 13268, 17993, 18757, 19173, 19664, 20264, 21689,
2257 23011, 27552, 29216, 30566) } },
2258 { { AOM_CDF13(12350, 13494, 16423, 17219, 17721, 18280, 19569, 21557,
2259 22752, 28182, 29360, 32304) },
2260 { AOM_CDF13(10022, 16315, 17409, 18094, 18533, 19487, 20138, 21179,
2261 22977, 27630, 29129, 31612) },
2262 { AOM_CDF13(9089, 9522, 20772, 21117, 21321, 21492, 22623, 24717, 25118,
2263 28517, 28979, 31962) },
2264 { AOM_CDF13(9995, 10496, 11749, 15264, 15578, 15986, 16825, 20949,
2265 23073, 28353, 29869, 32482) },
2266 { AOM_CDF13(9679, 10801, 11768, 12705, 18527, 20477, 22915, 24165,
2267 25268, 29848, 30931, 32576) },
2268 { AOM_CDF13(9567, 11899, 12955, 13828, 15192, 19318, 20367, 21537,
2269 23628, 28952, 30125, 32358) },
2270 { AOM_CDF13(9977, 10470, 13391, 14019, 15325, 15830, 21218, 23133,
2271 23836, 28927, 29755, 32513) },
2272 { AOM_CDF13(9850, 10345, 13290, 14602, 14927, 15251, 16355, 22136,
2273 23237, 28655, 29584, 32430) },
2274 { AOM_CDF13(10404, 11783, 12735, 14400, 14849, 15513, 16394, 18648,
2275 22370, 28254, 30174, 32416) },
2276 { AOM_CDF13(11468, 12380, 14466, 15450, 15969, 16598, 17836, 20272,
2277 21618, 27769, 29346, 32367) },
2278 { AOM_CDF13(10553, 11978, 13832, 14829, 15388, 16214, 17380, 19633,
2279 21295, 27909, 29723, 32101) },
2280 { AOM_CDF13(11458, 12316, 15258, 16119, 16504, 16926, 18261, 20678,
2281 21757, 27964, 29206, 32426) },
2282 { AOM_CDF13(9827, 12420, 17601, 18357, 18643, 19019, 19747, 21072,
2283 22058, 25919, 27042, 29550) } },
2284 { { AOM_CDF13(9582, 13804, 16310, 16612, 16855, 17317, 17804, 18740,
2285 19414, 21959, 22938, 24178) },
2286 { AOM_CDF13(7931, 20318, 21429, 21817, 21997, 22345, 22526, 23105,
2287 23829, 25586, 26598, 27385) },
2288 { AOM_CDF13(6461, 7883, 22735, 22941, 23061, 23170, 23671, 24830, 25109,
2289 26711, 27168, 28668) },
2290 { AOM_CDF13(9870, 12532, 14896, 17822, 18219, 18649, 19079, 23162,
2291 24634, 28800, 30057, 31098) },
2292 { AOM_CDF13(8170, 13942, 15674, 16236, 20928, 22526, 24154, 25027,
2293 26567, 29246, 29882, 31110) },
2294 { AOM_CDF13(9833, 16669, 17894, 18429, 19535, 23506, 24053, 25052,
2295 26466, 29379, 30616, 31424) },
2296 { AOM_CDF13(9558, 13127, 16722, 16945, 18404, 18965, 23157, 24785,
2297 25444, 28879, 29715, 31451) },
2298 { AOM_CDF13(8656, 11218, 15859, 16851, 17205, 17565, 18231, 24622,
2299 25273, 28496, 29332, 31266) },
2300 { AOM_CDF13(9768, 14291, 15838, 16981, 17225, 18107, 18654, 20335,
2301 24118, 28540, 30170, 31448) },
2302 { AOM_CDF13(10347, 15055, 17791, 18218, 18600, 19290, 19932, 21554,
2303 22592, 26896, 28359, 30358) },
2304 { AOM_CDF13(9093, 14028, 17143, 17521, 17893, 18675, 19203, 20715,
2305 21674, 25422, 28036, 29528) },
2306 { AOM_CDF13(10719, 15009, 18593, 19033, 19256, 19708, 20387, 22033,
2307 22877, 26524, 27841, 30214) },
2308 { AOM_CDF13(6775, 10524, 14225, 14551, 14761, 14914, 15132, 16033,
2309 16477, 17963, 18795, 19673) } }
Urvang Joshie6ca8e82017-03-15 14:57:41 -07002310#else
Urvang Joshi63234542017-03-10 12:04:03 -08002311 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002312 { AOM_CDF13(14208, 17049, 20482, 21400, 22520, 23261, 23963, 25010,
2313 25828, 28398, 29394, 30738) },
2314 { AOM_CDF13(10496, 18295, 19872, 20945, 21933, 22818, 23334, 24033,
2315 24996, 27652, 29060, 30071) },
2316 { AOM_CDF13(5120, 6461, 19840, 20310, 21151, 21506, 22535, 23900,
2317 24281, 26958, 27680, 29636) },
2318 { AOM_CDF13(12544, 15177, 17666, 19855, 21147, 22017, 22797, 24514,
2319 25779, 28716, 29772, 31267) },
2320 { AOM_CDF13(7552, 9909, 11908, 13141, 18765, 22029, 23872, 24920,
2321 25674, 29031, 30244, 31684) },
2322 { AOM_CDF13(11008, 15004, 16534, 18158, 21515, 26668, 27834, 28735,
2323 30471, 30839, 30969, 31068) },
2324 { AOM_CDF13(6272, 7963, 11944, 12780, 17944, 19198, 24071, 25295,
2325 25834, 29014, 29949, 31733) },
2326 { AOM_CDF13(8192, 10189, 14596, 15680, 17143, 17909, 19201, 23711,
2327 24503, 28207, 29338, 31424) },
2328 { AOM_CDF13(10752, 13199, 15048, 17151, 18445, 19604, 20363, 21782,
2329 24311, 28026, 29517, 30962) },
2330 { AOM_CDF13(7424, 10301, 13245, 14307, 16021, 16257, 17265, 18739,
2331 20080, 26066, 28325, 31184) },
2332 { AOM_CDF13(6528, 10893, 13773, 14824, 16540, 16926, 17748, 18876,
2333 20396, 25974, 28795, 30820) },
2334 { AOM_CDF13(8704, 11005, 14320, 15349, 16746, 16884, 17887, 19304,
2335 20265, 26115, 27672, 31358) },
2336 { AOM_CDF13(6272, 9504, 15437, 16399, 17355, 17948, 18814, 20270,
2337 21134, 23690, 24759, 26454) },
Urvang Joshi63234542017-03-10 12:04:03 -08002338 },
2339 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002340 { AOM_CDF13(3968, 17613, 19125, 19550, 20305, 21908, 22274, 22719,
2341 23959, 26970, 29013, 29843) },
2342 { AOM_CDF13(3072, 21231, 21863, 22306, 22674, 23414, 23517, 23798,
2343 24770, 27032, 29016, 29636) },
2344 { AOM_CDF13(2560, 9825, 15681, 16370, 17054, 17687, 18236, 19273,
2345 20311, 24863, 26825, 28756) },
2346 { AOM_CDF13(6912, 15140, 16485, 18364, 19181, 20394, 20663, 22098,
2347 23936, 27555, 29704, 30849) },
2348 { AOM_CDF13(2944, 13101, 14006, 14974, 17818, 21093, 21930, 22566,
2349 24137, 27732, 29814, 30904) },
2350 { AOM_CDF13(4352, 17824, 18715, 19632, 21519, 26341, 26922, 27575,
2351 29863, 30432, 30769, 30881) },
2352 { AOM_CDF13(2944, 11971, 13509, 14295, 17202, 19005, 21605, 22458,
2353 23839, 27774, 29492, 30787) },
2354 { AOM_CDF13(4224, 13072, 15288, 16406, 17285, 18362, 19003, 21378,
2355 22942, 27093, 29381, 30872) },
2356 { AOM_CDF13(5120, 15375, 16188, 17415, 18183, 19756, 20030, 20883,
2357 23935, 27428, 29627, 30608) },
2358 { AOM_CDF13(2816, 14999, 16352, 16969, 17836, 18125, 18514, 19181,
2359 20650, 25773, 29172, 30662) },
2360 { AOM_CDF13(2560, 16158, 17320, 17839, 18545, 18848, 19130, 19599,
2361 20863, 25449, 29304, 30408) },
2362 { AOM_CDF13(3328, 15146, 16880, 17523, 18340, 18563, 18896, 19582,
2363 20944, 25914, 28759, 30583) },
2364 { AOM_CDF13(2560, 16618, 18460, 19207, 19654, 20276, 20529, 21179,
2365 22355, 25423, 27696, 28638) },
Urvang Joshi63234542017-03-10 12:04:03 -08002366 },
2367 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002368 { AOM_CDF13(11392, 12961, 20901, 21544, 22490, 22928, 23888, 25214,
2369 25777, 28256, 29102, 30513) },
2370 { AOM_CDF13(8064, 13595, 18888, 19616, 20765, 21454, 21990, 23103,
2371 23980, 26772, 28070, 29197) },
2372 { AOM_CDF13(4352, 5059, 21705, 22099, 22703, 22846, 23679, 25469,
2373 25728, 27919, 28484, 30215) },
2374 { AOM_CDF13(10752, 12277, 16471, 18276, 19443, 19917, 21158, 23881,
2375 24892, 27709, 28771, 30274) },
2376 { AOM_CDF13(8320, 10000, 14147, 15330, 19197, 20923, 22954, 24541,
2377 25285, 28407, 29431, 30953) },
2378 { AOM_CDF13(11264, 14751, 18517, 20285, 23172, 25970, 27312, 28684,
2379 29803, 30242, 30412, 30668) },
2380 { AOM_CDF13(6528, 7509, 14190, 14953, 17905, 18452, 23074, 24910,
2381 25374, 28605, 29542, 31640) },
2382 { AOM_CDF13(6784, 7644, 15953, 17055, 17945, 18242, 19351, 24705,
2383 25365, 28466, 29334, 31245) },
2384 { AOM_CDF13(8192, 9802, 14519, 15740, 17351, 18084, 18962, 20908,
2385 22937, 26847, 28284, 29888) },
2386 { AOM_CDF13(5888, 7534, 14635, 15436, 16710, 16830, 18000, 19760,
2387 20571, 25777, 27649, 30668) },
2388 { AOM_CDF13(5248, 7364, 14858, 15545, 16861, 17016, 17859, 19384,
2389 20237, 25239, 27715, 29865) },
2390 { AOM_CDF13(6656, 7989, 15472, 16265, 17271, 17334, 18563, 20327,
2391 20916, 26173, 27350, 31034) },
2392 { AOM_CDF13(4480, 6411, 17828, 18611, 19399, 19684, 20504, 21782,
2393 22335, 25286, 26352, 28016) },
Urvang Joshi63234542017-03-10 12:04:03 -08002394 },
2395 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002396 { AOM_CDF13(10240, 12819, 15545, 18248, 19779, 20932, 21899, 23377,
2397 25448, 28730, 29936, 31536) },
2398 { AOM_CDF13(7552, 15309, 16645, 19760, 20653, 21650, 22221, 23273,
2399 25509, 28683, 30153, 31192) },
2400 { AOM_CDF13(5248, 6840, 16129, 17940, 19069, 19660, 20588, 22760,
2401 23927, 27538, 28397, 30725) },
2402 { AOM_CDF13(11008, 11903, 13794, 21320, 21931, 22310, 22546, 25375,
2403 27347, 29800, 30761, 31833) },
2404 { AOM_CDF13(6272, 8678, 10313, 13073, 16823, 19980, 21520, 23242,
2405 25344, 28797, 30405, 31940) },
2406 { AOM_CDF13(7424, 10835, 12653, 16345, 19574, 24868, 25937, 27299,
2407 31104, 31448, 31580, 31679) },
2408 { AOM_CDF13(4992, 6458, 9945, 11961, 16136, 17677, 20946, 23042,
2409 24475, 28304, 29748, 31791) },
2410 { AOM_CDF13(9600, 11879, 14703, 17653, 19176, 20185, 20880, 25194,
2411 26584, 29655, 30430, 32044) },
2412 { AOM_CDF13(9856, 11385, 13457, 18705, 19577, 20266, 20746, 22207,
2413 26724, 29431, 30645, 31604) },
2414 { AOM_CDF13(6272, 9318, 11569, 14812, 16351, 16619, 17537, 19596,
2415 22025, 27384, 29277, 31422) },
2416 { AOM_CDF13(5888, 9348, 11416, 14690, 16254, 16633, 17457, 19031,
2417 21875, 27080, 29442, 31193) },
2418 { AOM_CDF13(6912, 9329, 12218, 15177, 16806, 16998, 17991, 20005,
2419 21952, 27108, 28867, 31657) },
2420 { AOM_CDF13(5120, 9098, 13132, 17701, 18739, 19534, 20415, 22136,
2421 24213, 27199, 28504, 29960) },
Urvang Joshi63234542017-03-10 12:04:03 -08002422 },
2423 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002424 { AOM_CDF13(7296, 9304, 11772, 12529, 18014, 20418, 23076, 24662,
2425 25549, 29074, 30392, 31773) },
2426 { AOM_CDF13(7168, 11687, 13541, 14431, 18214, 20761, 22269, 23320,
2427 24633, 28339, 30193, 31268) },
2428 { AOM_CDF13(3584, 4428, 13496, 14189, 17372, 18617, 20609, 22615,
2429 23270, 27280, 28305, 30602) },
2430 { AOM_CDF13(7424, 8834, 10499, 14357, 17671, 19150, 20460, 23235,
2431 24391, 28351, 29843, 31481) },
2432 { AOM_CDF13(4480, 5888, 7093, 7902, 18290, 22123, 24511, 25532, 26360,
2433 29653, 30954, 32215) },
2434 { AOM_CDF13(7296, 10176, 11780, 12824, 19608, 25882, 28520, 29445,
2435 31106, 31573, 31775, 31872) },
2436 { AOM_CDF13(3840, 4833, 7551, 8449, 16668, 18614, 23952, 25668, 26721,
2437 29888, 30697, 32090) },
2438 { AOM_CDF13(6528, 8011, 11083, 12427, 16188, 17548, 19625, 23787,
2439 24792, 28649, 29872, 31845) },
2440 { AOM_CDF13(7168, 9170, 10655, 12439, 15550, 18128, 19565, 21412,
2441 23355, 28007, 30080, 31568) },
2442 { AOM_CDF13(5504, 7636, 10174, 11056, 15562, 16252, 17931, 19598,
2443 20967, 26845, 29149, 31490) },
2444 { AOM_CDF13(5248, 7810, 10004, 11015, 15359, 16310, 17834, 19185,
2445 20903, 26728, 29585, 31478) },
2446 { AOM_CDF13(5376, 7322, 10592, 11694, 15586, 16103, 17999, 19740,
2447 20950, 26894, 28912, 31591) },
2448 { AOM_CDF13(4608, 7276, 12153, 13388, 16091, 17970, 19548, 21175,
2449 22481, 26543, 28212, 29908) },
Urvang Joshi63234542017-03-10 12:04:03 -08002450 },
2451 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002452 { AOM_CDF13(6656, 12225, 14441, 15158, 19600, 27127, 28221, 29186,
2453 30439, 30913, 31135, 31238) },
2454 { AOM_CDF13(6400, 14608, 15920, 16643, 20149, 27328, 27896, 28672,
2455 30227, 30778, 31053, 31120) },
2456 { AOM_CDF13(3840, 6925, 14671, 15709, 19830, 24216, 25507, 27459,
2457 28552, 29569, 29808, 30169) },
2458 { AOM_CDF13(9600, 13604, 15202, 17530, 20878, 24279, 25278, 28255,
2459 30651, 31170, 31343, 31410) },
2460 { AOM_CDF13(4608, 8535, 9588, 10740, 18673, 27664, 28826, 29828,
2461 31081, 31503, 31680, 31778) },
2462 { AOM_CDF13(4864, 10543, 11313, 12197, 16785, 27858, 28556, 29480,
2463 30892, 31486, 31722, 31787) },
2464 { AOM_CDF13(3968, 7492, 10283, 11318, 18486, 24061, 26761, 28456,
2465 30126, 30872, 31088, 31305) },
2466 { AOM_CDF13(6016, 10246, 12999, 15083, 18769, 22398, 23584, 27098,
2467 29574, 30609, 30898, 31200) },
2468 { AOM_CDF13(7808, 13404, 14723, 16413, 20186, 24739, 25407, 27106,
2469 29929, 30507, 30827, 30915) },
2470 { AOM_CDF13(2816, 6530, 8123, 9240, 12536, 17593, 18754, 20319, 22070,
2471 27037, 29332, 30779) },
2472 { AOM_CDF13(2432, 6577, 8010, 9215, 12657, 18898, 19588, 20953, 22766,
2473 27231, 29927, 31109) },
2474 { AOM_CDF13(3200, 6974, 9162, 10450, 13818, 17757, 19119, 20842,
2475 22269, 27170, 29271, 30804) },
2476 { AOM_CDF13(4480, 10689, 15307, 16589, 19738, 24416, 25332, 26541,
2477 28634, 29711, 29913, 30116) },
Urvang Joshi63234542017-03-10 12:04:03 -08002478 },
2479 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002480 { AOM_CDF13(9600, 11066, 15832, 16515, 18844, 19883, 24302, 25759,
2481 26358, 29290, 30262, 31682) },
2482 { AOM_CDF13(8832, 12814, 16171, 17041, 19066, 20145, 22933, 24074,
2483 25006, 28115, 29722, 30991) },
2484 { AOM_CDF13(3840, 4486, 15821, 16330, 18461, 18879, 22436, 25051,
2485 25443, 28637, 29396, 31412) },
2486 { AOM_CDF13(9856, 10863, 14050, 15920, 18783, 19531, 22502, 24577,
2487 25361, 28559, 29600, 31336) },
2488 { AOM_CDF13(6528, 7620, 10182, 11199, 17281, 19946, 23885, 25333,
2489 26130, 29425, 30332, 31948) },
2490 { AOM_CDF13(9728, 11821, 13954, 15233, 19855, 24478, 28675, 29878,
2491 31238, 31741, 31874, 32048) },
2492 { AOM_CDF13(5120, 5753, 9673, 10149, 14343, 15190, 24967, 26378,
2493 26841, 29749, 30527, 32120) },
2494 { AOM_CDF13(5888, 6606, 11498, 12538, 14737, 15425, 19549, 24047,
2495 24765, 28711, 29822, 32138) },
2496 { AOM_CDF13(10368, 11757, 14126, 15474, 18311, 19358, 21539, 23451,
2497 25034, 28791, 30035, 31280) },
2498 { AOM_CDF13(6016, 7623, 11378, 12248, 15171, 15459, 18958, 20875,
2499 21955, 27411, 29196, 31723) },
2500 { AOM_CDF13(5760, 7469, 11399, 12323, 15165, 15528, 18804, 20769,
2501 21767, 27129, 29435, 31502) },
2502 { AOM_CDF13(7040, 8295, 12298, 13035, 15194, 15357, 18976, 21100,
2503 21805, 26978, 28342, 31763) },
2504 { AOM_CDF13(5632, 7465, 14220, 15035, 17014, 18105, 21111, 23027,
2505 23934, 27207, 28293, 30330) },
Urvang Joshi63234542017-03-10 12:04:03 -08002506 },
2507 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002508 { AOM_CDF13(11008, 13089, 17144, 18425, 19954, 20624, 21658, 24229,
2509 25290, 28803, 29938, 31493) },
2510 { AOM_CDF13(9088, 14218, 16378, 17699, 18935, 19928, 20524, 22781,
2511 24155, 27523, 29068, 30270) },
2512 { AOM_CDF13(6144, 7194, 17912, 18991, 19879, 20151, 21170, 23938,
2513 24712, 27763, 28556, 30584) },
2514 { AOM_CDF13(10496, 11614, 13652, 16928, 18425, 18967, 19724, 23817,
2515 25594, 28685, 29734, 30941) },
2516 { AOM_CDF13(7296, 8915, 11163, 13821, 16951, 18507, 20180, 22423,
2517 24017, 28294, 29614, 31673) },
2518 { AOM_CDF13(9728, 13441, 15858, 18860, 21713, 24478, 25995, 28233,
2519 30347, 30853, 31081, 31328) },
2520 { AOM_CDF13(6400, 7480, 11482, 13206, 16199, 16908, 20436, 23507,
2521 24650, 28360, 29438, 31532) },
2522 { AOM_CDF13(9856, 10979, 13430, 15195, 15957, 16350, 16871, 26198,
2523 26991, 29612, 30438, 31962) },
2524 { AOM_CDF13(8960, 10529, 12640, 15350, 16987, 17859, 18590, 21400,
2525 23812, 28188, 29589, 31280) },
2526 { AOM_CDF13(7168, 8877, 12393, 14015, 15655, 15794, 16814, 19923,
2527 21086, 26723, 28669, 31468) },
2528 { AOM_CDF13(6400, 8900, 12241, 13828, 15513, 15671, 16500, 19257,
2529 20456, 25984, 28658, 31017) },
2530 { AOM_CDF13(7296, 8820, 12885, 14441, 15813, 15911, 16954, 20026,
2531 20950, 26563, 28140, 31673) },
2532 { AOM_CDF13(6272, 8455, 13328, 15907, 17026, 17464, 18267, 21436,
2533 22712, 26403, 27660, 29559) },
Urvang Joshi63234542017-03-10 12:04:03 -08002534 },
2535 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002536 { AOM_CDF13(6784, 11216, 13269, 15677, 16931, 18445, 19097, 20082,
2537 24298, 28236, 30118, 31448) },
2538 { AOM_CDF13(5760, 13240, 14110, 16966, 17743, 18916, 19281, 19848,
2539 25552, 28646, 30444, 31291) },
2540 { AOM_CDF13(4352, 6870, 14660, 16597, 17361, 18126, 18852, 20765,
2541 23526, 27670, 29096, 31214) },
2542 { AOM_CDF13(9472, 11736, 13172, 18192, 19070, 19651, 19991, 21793,
2543 26005, 29291, 30500, 31767) },
2544 { AOM_CDF13(4480, 7252, 8651, 12379, 14936, 17493, 18326, 19527,
2545 23655, 28031, 29960, 31773) },
2546 { AOM_CDF13(6016, 11561, 12864, 15793, 18765, 23040, 23640, 24415,
2547 31040, 31473, 31740, 31827) },
2548 { AOM_CDF13(4480, 6825, 8810, 11269, 14257, 15716, 18397, 20006,
2549 24020, 28230, 29780, 31773) },
2550 { AOM_CDF13(6912, 9466, 11717, 15159, 16237, 17145, 17814, 21258,
2551 24754, 28864, 30313, 32061) },
2552 { AOM_CDF13(7680, 10517, 11381, 16202, 16809, 17425, 17774, 18764,
2553 26842, 29600, 31073, 31886) },
2554 { AOM_CDF13(4992, 8626, 10531, 13103, 14495, 14784, 15365, 16657,
2555 21051, 27011, 29685, 31574) },
2556 { AOM_CDF13(4736, 9433, 10981, 13494, 14644, 15043, 15396, 16378,
2557 21506, 26869, 29824, 31454) },
2558 { AOM_CDF13(5760, 9526, 11905, 14476, 15722, 16103, 16768, 18070,
2559 21630, 27401, 29592, 31818) },
2560 { AOM_CDF13(4480, 9947, 12386, 15909, 16496, 17397, 17866, 18927,
2561 24408, 27750, 29614, 30889) },
Urvang Joshi63234542017-03-10 12:04:03 -08002562 },
2563 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002564 { AOM_CDF13(7424, 10538, 14098, 14891, 16486, 16756, 17607, 18952,
2565 20168, 26275, 28617, 31580) },
2566 { AOM_CDF13(5376, 13070, 14969, 15848, 17197, 17447, 17954, 18747,
2567 20137, 25628, 28753, 30628) },
2568 { AOM_CDF13(3584, 5287, 16141, 16840, 17670, 17760, 18532, 20387,
2569 21102, 26118, 27535, 30830) },
2570 { AOM_CDF13(7424, 9594, 11770, 14505, 16234, 16365, 17201, 20286,
2571 22128, 27371, 29426, 31580) },
2572 { AOM_CDF13(5632, 8393, 10566, 11917, 16025, 16697, 18123, 19541,
2573 21135, 27059, 29325, 31814) },
2574 { AOM_CDF13(3840, 7916, 9526, 11010, 14114, 18169, 19510, 21031,
2575 23083, 27769, 29782, 31299) },
2576 { AOM_CDF13(5376, 7338, 10657, 11699, 14780, 15070, 18291, 20170,
2577 21347, 26985, 28811, 31805) },
2578 { AOM_CDF13(5632, 7669, 11558, 12653, 13962, 14116, 15074, 19886,
2579 21123, 26953, 28755, 31708) },
2580 { AOM_CDF13(6528, 9739, 11612, 13211, 14992, 15237, 16016, 17677,
2581 20588, 26647, 29116, 31435) },
2582 { AOM_CDF13(5376, 8346, 11022, 11976, 13541, 13749, 14520, 16173,
2583 17567, 25182, 28111, 31591) },
2584 { AOM_CDF13(4736, 8894, 11294, 12220, 13753, 14029, 14645, 16065,
2585 17621, 24911, 28655, 31344) },
2586 { AOM_CDF13(5760, 8193, 11667, 12461, 13880, 14040, 14946, 16537,
2587 17642, 25117, 27333, 31713) },
2588 { AOM_CDF13(4096, 8479, 13751, 14813, 15994, 16157, 16905, 18314,
2589 19575, 25132, 27445, 30192) },
Urvang Joshi63234542017-03-10 12:04:03 -08002590 },
2591 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002592 { AOM_CDF13(7936, 12263, 15558, 16331, 17779, 18148, 18810, 19794,
2593 21046, 26644, 29417, 31507) },
2594 { AOM_CDF13(5376, 15025, 16457, 17074, 18079, 18299, 18648, 19240,
2595 20612, 25687, 29392, 30842) },
2596 { AOM_CDF13(3840, 6037, 17465, 18089, 18869, 18953, 19688, 21223,
2597 21816, 26562, 28195, 30621) },
2598 { AOM_CDF13(8448, 11255, 13307, 15676, 17392, 17603, 18268, 20783,
2599 22646, 27628, 29737, 31628) },
2600 { AOM_CDF13(5760, 9119, 11015, 12269, 16280, 17023, 18282, 19418,
2601 21325, 27309, 30004, 31818) },
2602 { AOM_CDF13(3968, 9094, 10606, 12007, 14218, 18911, 20089, 20924,
2603 23587, 27808, 30253, 31305) },
2604 { AOM_CDF13(6016, 8627, 11201, 12200, 15305, 15671, 18639, 20185,
2605 21627, 26990, 29449, 31723) },
2606 { AOM_CDF13(6272, 8768, 12320, 13296, 14643, 14970, 15760, 20545,
2607 21863, 27473, 29535, 31836) },
2608 { AOM_CDF13(6912, 10905, 12656, 14084, 15705, 16069, 16674, 17779,
2609 21041, 26586, 29539, 31253) },
2610 { AOM_CDF13(5248, 9672, 12113, 12871, 14423, 14710, 15376, 16708,
2611 18092, 25260, 28991, 31585) },
2612 { AOM_CDF13(4736, 10789, 13029, 13750, 15040, 15385, 15840, 16887,
2613 18393, 25230, 29558, 31454) },
2614 { AOM_CDF13(6016, 9916, 12938, 13741, 15030, 15297, 16116, 17333,
2615 18672, 25954, 28498, 31618) },
2616 { AOM_CDF13(4608, 10266, 15450, 16299, 17114, 17288, 17775, 18835,
2617 20227, 25199, 28098, 30018) },
Urvang Joshi63234542017-03-10 12:04:03 -08002618 },
Hui Su814f41e2017-10-02 12:21:24 -07002619 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002620 { AOM_CDF13(7296, 9951, 14124, 14806, 16181, 16377, 17485, 19069,
2621 20078, 26051, 27777, 31574) },
2622 { AOM_CDF13(5376, 13823, 15889, 16620, 17709, 17881, 18327, 19140,
2623 20374, 25685, 28160, 30521) },
2624 { AOM_CDF13(3200, 4602, 16404, 17042, 17780, 17829, 18706, 20608,
2625 21115, 25884, 26960, 30804) },
2626 { AOM_CDF13(7040, 9444, 11770, 14321, 15951, 16074, 17033, 20352,
2627 22301, 27567, 29151, 31662) },
2628 { AOM_CDF13(6016, 8316, 10849, 12136, 15860, 16430, 17935, 19659,
2629 21083, 26968, 28839, 31618) },
2630 { AOM_CDF13(3840, 7472, 9436, 11038, 13625, 17596, 18959, 20543,
2631 22879, 27487, 29351, 31186) },
2632 { AOM_CDF13(5376, 7117, 11424, 12381, 14823, 15053, 18656, 20818,
2633 21722, 27042, 28233, 31591) },
2634 { AOM_CDF13(5760, 7281, 11910, 12912, 14229, 14391, 15474, 20113,
2635 21128, 26627, 28077, 31713) },
2636 { AOM_CDF13(6656, 9452, 11526, 13288, 14861, 15062, 15909, 17695,
2637 20429, 26225, 28603, 31340) },
2638 { AOM_CDF13(5376, 7722, 10921, 11813, 13222, 13348, 14211, 15976,
2639 17110, 24634, 27176, 31484) },
2640 { AOM_CDF13(4736, 8226, 11137, 11988, 13518, 13706, 14332, 16016,
2641 17301, 24641, 27704, 31016) },
2642 { AOM_CDF13(5760, 7592, 11880, 12612, 13738, 13813, 14681, 16392,
2643 17306, 24619, 26334, 31818) },
2644 { AOM_CDF13(4096, 8524, 14316, 15392, 16295, 16433, 17197, 18718,
2645 19924, 25123, 26953, 29856) },
Hui Su814f41e2017-10-02 12:21:24 -07002646 },
2647 {
Thomas Daedee82e5772017-11-06 17:27:10 -08002648 { AOM_CDF13(6528, 13383, 17642, 18342, 19224, 20209, 20899, 21944,
2649 23137, 25966, 27429, 28463) },
2650 { AOM_CDF13(4480, 16901, 18876, 19560, 20257, 20912, 21169, 21959,
2651 23036, 25781, 27676, 28569) },
2652 { AOM_CDF13(2688, 5337, 18178, 18829, 19344, 19628, 20267, 22135,
2653 22671, 25817, 26914, 28773) },
2654 { AOM_CDF13(8192, 11378, 14742, 17269, 18230, 19001, 19655, 22949,
2655 24337, 28025, 29503, 30848) },
2656 { AOM_CDF13(5120, 10133, 13144, 14374, 17020, 18920, 20235, 21677,
2657 23142, 27131, 28671, 30284) },
2658 { AOM_CDF13(7424, 15588, 18431, 19723, 21455, 24705, 25461, 26753,
2659 28923, 29475, 29729, 29897) },
2660 { AOM_CDF13(4224, 8689, 13024, 13658, 16637, 17307, 20836, 22665,
2661 23673, 27015, 28310, 30203) },
2662 { AOM_CDF13(5120, 7896, 13618, 14900, 15708, 16153, 16997, 23625,
2663 24466, 27719, 28892, 30500) },
2664 { AOM_CDF13(5760, 11305, 13669, 15462, 16564, 17683, 18252, 20073,
2665 22917, 27005, 28923, 30236) },
2666 { AOM_CDF13(4224, 9510, 13787, 14587, 15753, 15925, 16513, 18193,
2667 19490, 24944, 27482, 29757) },
2668 { AOM_CDF13(3840, 10052, 14106, 14887, 15827, 15996, 16522, 17939,
2669 19204, 24508, 27661, 29491) },
2670 { AOM_CDF13(4736, 9676, 14492, 15163, 16179, 16390, 17133, 18905,
2671 19864, 25185, 27191, 30030) },
2672 { AOM_CDF13(3584, 9370, 14746, 15820, 16708, 17224, 17718, 19329,
2673 20405, 23541, 25258, 26726) },
Hui Su814f41e2017-10-02 12:21:24 -07002674 },
Yue Chen63ce36f2017-10-10 23:37:31 -07002675#endif
Yue Chen63ce36f2017-10-10 23:37:31 -07002676 };
Jingning Hana45d8422017-10-05 09:57:38 -07002677#endif // CONFIG_KF_CTX
Thomas Davies1d7db722017-02-22 11:15:00 +00002678
Cheng Chen41d37c22017-09-08 19:00:21 -07002679#if CONFIG_LPF_SB
2680static const aom_cdf_prob default_lpf_reuse_cdf[LPF_REUSE_CONTEXT][CDF_SIZE(
Thomas Daedee82e5772017-11-06 17:27:10 -08002681 2)] = { { AOM_CDF2(4259) }, { AOM_CDF2(728) } };
Cheng Chen41d37c22017-09-08 19:00:21 -07002682
Thomas Daedee82e5772017-11-06 17:27:10 -08002683static const aom_cdf_prob default_lpf_delta_cdf[LPF_DELTA_CONTEXT][CDF_SIZE(
2684 DELTA_RANGE)] = { { AOM_CDF8(100, 688, 2128, 4642, 7895, 11851, 17050) },
2685 { AOM_CDF8(100, 1291, 4358, 7425, 10654, 13559, 18563) },
2686 { AOM_CDF8(100, 1086, 4982, 9134, 13031, 16991, 23123) },
2687 { AOM_CDF8(100, 1068, 3395, 7973, 12512, 17967, 22812) },
2688 { AOM_CDF8(100, 442, 2809, 7178, 12535, 17450, 22417) },
2689 { AOM_CDF8(100, 561, 2246, 6050, 11103, 16592, 21353) },
2690 { AOM_CDF8(100, 345, 2399, 5559, 9682, 13992, 20126) },
2691 { AOM_CDF8(100, 337, 1540, 3573, 6438, 10196, 16320) } };
Cheng Chen41d37c22017-09-08 19:00:21 -07002692
2693static const aom_cdf_prob
2694 default_lpf_sign_cdf[LPF_REUSE_CONTEXT][LPF_SIGN_CONTEXT][CDF_SIZE(2)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08002695 { { AOM_CDF2(100) }, { AOM_CDF2(11932) } },
2696 { { AOM_CDF2(14785) }, { AOM_CDF2(8145) } }
Cheng Chen41d37c22017-09-08 19:00:21 -07002697 };
2698#endif // CONFIG_LPF_SB
2699
Joe Young3ca43bf2017-10-06 15:12:46 -07002700#if CONFIG_EXT_INTRA_MOD
Joe Young2edfc372017-11-01 09:08:43 -07002701static const aom_cdf_prob default_angle_delta_cdf[DIRECTIONAL_MODES][CDF_SIZE(
Joe Young3ca43bf2017-10-06 15:12:46 -07002702 2 * MAX_ANGLE_DELTA + 1)] = {
Thomas Daedee82e5772017-11-06 17:27:10 -08002703 { AOM_CDF7(2340, 5327, 7611, 23102, 27196, 30546) },
2704 { AOM_CDF7(3267, 8071, 11970, 21822, 25619, 30034) },
2705 { AOM_CDF7(3417, 9937, 12286, 16420, 19941, 30669) },
2706 { AOM_CDF7(5167, 11735, 15254, 16662, 20697, 28276) },
2707 { AOM_CDF7(1728, 10973, 14103, 18547, 22684, 27007) },
2708 { AOM_CDF7(2764, 10700, 12517, 16957, 20590, 30390) },
2709 { AOM_CDF7(2407, 12749, 16527, 20823, 22781, 29642) },
2710 { AOM_CDF7(3068, 10132, 12079, 16542, 19943, 30448) }
Joe Young3ca43bf2017-10-06 15:12:46 -07002711};
2712#endif // CONFIG_EXT_INTRA_MOD
2713
Yaowu Xuc27fc142016-08-22 16:08:15 -07002714static void init_mode_probs(FRAME_CONTEXT *fc) {
Yaowu Xuf883b422016-08-30 14:01:10 -07002715 av1_copy(fc->comp_inter_prob, default_comp_inter_p);
Thomas Daviesce7272d2017-07-04 16:11:08 +01002716 av1_copy(fc->palette_y_size_cdf, default_palette_y_size_cdf);
2717 av1_copy(fc->palette_uv_size_cdf, default_palette_uv_size_cdf);
2718 av1_copy(fc->palette_y_color_index_cdf, default_palette_y_color_index_cdf);
2719 av1_copy(fc->palette_uv_color_index_cdf, default_palette_uv_color_index_cdf);
Debargha Mukherjee801cc922017-09-22 17:22:50 -07002720 av1_copy(fc->kf_y_cdf, default_kf_y_mode_cdf);
Joe Young3ca43bf2017-10-06 15:12:46 -07002721#if CONFIG_EXT_INTRA_MOD
2722 av1_copy(fc->angle_delta_cdf, default_angle_delta_cdf);
2723#endif // CONFIG_EXT_INTRA_MOD
hui su466ae062017-07-25 16:55:51 -07002724 av1_copy(fc->comp_inter_cdf, default_comp_inter_cdf);
Zoe Liuc082bbc2017-05-17 13:31:37 -07002725#if CONFIG_EXT_COMP_REFS
2726 av1_copy(fc->comp_ref_type_prob, default_comp_ref_type_p);
2727 av1_copy(fc->uni_comp_ref_prob, default_uni_comp_ref_p);
Zoe Liufcf5fa22017-06-26 16:00:38 -07002728 av1_copy(fc->comp_ref_type_cdf, default_comp_ref_type_cdf);
2729 av1_copy(fc->uni_comp_ref_cdf, default_uni_comp_ref_cdf);
Zoe Liuc082bbc2017-05-17 13:31:37 -07002730#endif // CONFIG_EXT_COMP_REFS
Yaowu Xuf883b422016-08-30 14:01:10 -07002731 av1_copy(fc->comp_ref_prob, default_comp_ref_p);
Thomas Davies59f92312017-08-23 00:33:12 +01002732 av1_copy(fc->palette_y_mode_cdf, default_palette_y_mode_cdf);
2733 av1_copy(fc->palette_uv_mode_cdf, default_palette_uv_mode_cdf);
Thomas Davies894cc812017-06-22 17:51:33 +01002734 av1_copy(fc->comp_ref_cdf, default_comp_ref_cdf);
Angie Chiangbabf3e72017-03-20 15:32:24 -07002735#if CONFIG_LV_MAP
2736 av1_copy(fc->txb_skip, default_txb_skip);
2737 av1_copy(fc->nz_map, default_nz_map);
2738 av1_copy(fc->eob_flag, default_eob_flag);
Angie Chiangfcdda9d2017-10-22 18:14:13 -07002739 av1_copy(fc->eob_extra, default_eob_extra);
Angie Chiangbabf3e72017-03-20 15:32:24 -07002740 av1_copy(fc->dc_sign, default_dc_sign);
2741 av1_copy(fc->coeff_base, default_coeff_base);
2742 av1_copy(fc->coeff_lps, default_coeff_lps);
Ola Hugossone72a2092017-11-12 09:11:53 +01002743#if !CONFIG_LV_MAP_MULTI
Jingning Han87b01b52017-08-31 12:07:20 -07002744 av1_copy(fc->coeff_br, default_coeff_br);
Ola Hugossone72a2092017-11-12 09:11:53 +01002745#endif
Jingning Hanfdaa55e2017-08-18 16:21:36 -07002746
Jingning Hanfdaa55e2017-08-18 16:21:36 -07002747 av1_init_txb_probs(fc);
Angie Chiangbabf3e72017-03-20 15:32:24 -07002748#endif
Yaowu Xuf883b422016-08-30 14:01:10 -07002749 av1_copy(fc->comp_bwdref_prob, default_comp_bwdref_p);
Thomas Davies894cc812017-06-22 17:51:33 +01002750 av1_copy(fc->comp_bwdref_cdf, default_comp_bwdref_cdf);
Yaowu Xuf883b422016-08-30 14:01:10 -07002751 av1_copy(fc->single_ref_prob, default_single_ref_p);
Thomas Davies315f5782017-06-14 15:14:55 +01002752 av1_copy(fc->single_ref_cdf, default_single_ref_cdf);
Thomas Davies985bfc32017-06-27 16:51:26 +01002753 av1_copy(fc->txfm_partition_cdf, default_txfm_partition_cdf);
Cheng Chen0a7f2f52017-10-10 15:16:09 -07002754#if CONFIG_JNT_COMP
Cheng Chen46970612017-10-24 14:53:36 -07002755 av1_copy(fc->compound_index_cdf, default_compound_idx_cdfs);
Cheng Chen0a7f2f52017-10-10 15:16:09 -07002756 av1_copy(fc->compound_index_probs, default_compound_idx_probs);
2757#endif // CONFIG_JNT_COMP
Thomas Davies149eda52017-06-12 18:11:55 +01002758 av1_copy(fc->newmv_cdf, default_newmv_cdf);
2759 av1_copy(fc->zeromv_cdf, default_zeromv_cdf);
2760 av1_copy(fc->refmv_cdf, default_refmv_cdf);
2761 av1_copy(fc->drl_cdf, default_drl_cdf);
Yue Chencb60b182016-10-13 15:18:22 -07002762 av1_copy(fc->motion_mode_prob, default_motion_mode_prob);
Wei-Ting Linca710d62017-07-13 11:41:02 -07002763 av1_copy(fc->motion_mode_cdf, default_motion_mode_cdf);
Thomas Daviesd9b57262017-06-27 17:43:25 +01002764 av1_copy(fc->obmc_cdf, default_obmc_cdf);
Thomas Davies8c08a332017-06-26 17:30:34 +01002765 av1_copy(fc->inter_compound_mode_cdf, default_inter_compound_mode_cdf);
Thomas Daviesd8dac222017-06-27 11:23:15 +01002766 av1_copy(fc->compound_type_cdf, default_compound_type_cdf);
Thomas Daviescff91712017-07-07 11:49:55 +01002767 av1_copy(fc->interintra_cdf, default_interintra_cdf);
2768 av1_copy(fc->wedge_interintra_cdf, default_wedge_interintra_cdf);
Thomas Davies299ff042017-06-27 13:41:59 +01002769 av1_copy(fc->interintra_mode_cdf, default_interintra_mode_cdf);
Nathan E. Eggef627e582016-08-19 20:06:51 -04002770 av1_copy(fc->seg.tree_probs, default_segment_tree_probs);
Thomas Davies00021352017-07-11 16:07:55 +01002771 av1_copy(fc->seg.pred_cdf, default_segment_pred_cdf);
hui su5db97432016-10-14 16:10:14 -07002772#if CONFIG_FILTER_INTRA
Yue Chen4eba69b2017-11-09 22:37:35 -08002773 av1_copy(fc->filter_intra_cdfs, default_filter_intra_cdfs);
Yue Chen63ce36f2017-10-10 23:37:31 -07002774 av1_copy(fc->filter_intra_mode_cdf, default_filter_intra_mode_cdf);
hui su5db97432016-10-14 16:10:14 -07002775#endif // CONFIG_FILTER_INTRA
Debargha Mukherjee5cd2ab92016-09-08 15:15:17 -07002776#if CONFIG_LOOP_RESTORATION
Debargha Mukherjeebc732ef2017-10-12 12:40:25 -07002777 av1_copy(fc->switchable_restore_cdf, default_switchable_restore_cdf);
Debargha Mukherjeebc732ef2017-10-12 12:40:25 -07002778 av1_copy(fc->wiener_restore_cdf, default_wiener_restore_cdf);
2779 av1_copy(fc->sgrproj_restore_cdf, default_sgrproj_restore_cdf);
Debargha Mukherjee5cd2ab92016-09-08 15:15:17 -07002780#endif // CONFIG_LOOP_RESTORATION
Thomas Davies1d7db722017-02-22 11:15:00 +00002781 av1_copy(fc->y_mode_cdf, default_if_y_mode_cdf);
2782 av1_copy(fc->uv_mode_cdf, default_uv_mode_cdf);
2783 av1_copy(fc->switchable_interp_cdf, default_switchable_interp_cdf);
2784 av1_copy(fc->partition_cdf, default_partition_cdf);
Thomas Davies1d7db722017-02-22 11:15:00 +00002785 av1_copy(fc->intra_ext_tx_cdf, default_intra_ext_tx_cdf);
2786 av1_copy(fc->inter_ext_tx_cdf, default_inter_ext_tx_cdf);
Zoe Liuf704a1c2017-10-02 16:55:59 -07002787#if CONFIG_EXT_SKIP
2788 av1_copy(fc->skip_mode_cdfs, default_skip_mode_cdfs);
2789#endif // CONFIG_EXT_SKIP
Thomas Davies61e3e372017-04-04 16:10:23 +01002790 av1_copy(fc->skip_cdfs, default_skip_cdfs);
Thomas Daviesf6ad9352017-04-19 11:38:06 +01002791 av1_copy(fc->intra_inter_cdf, default_intra_inter_cdf);
Thomas Davies1d7db722017-02-22 11:15:00 +00002792 av1_copy(fc->seg.tree_cdf, default_seg_tree_cdf);
Rostislav Pehlivanovf624dd52017-10-24 16:46:09 +01002793#if CONFIG_Q_SEGMENTATION
2794 for (int i = 0; i < Q_SEGMENT_CDF_COUNT; i++)
2795 av1_copy(fc->seg.q_seg_cdf[i], default_q_seg_tree_cdf[i]);
2796#endif
Thomas Davies1d7db722017-02-22 11:15:00 +00002797 av1_copy(fc->tx_size_cdf, default_tx_size_cdf);
Thomas Daviesd6ee8a82017-03-02 14:42:50 +00002798 av1_copy(fc->delta_q_cdf, default_delta_q_cdf);
Fangwen Fu231fe422017-04-24 17:52:29 -07002799#if CONFIG_EXT_DELTA_Q
Fangwen Fu231fe422017-04-24 17:52:29 -07002800 av1_copy(fc->delta_lf_cdf, default_delta_lf_cdf);
Cheng Chen880166a2017-10-02 17:48:48 -07002801#if CONFIG_LOOPFILTER_LEVEL
2802 av1_copy(fc->delta_lf_multi_cdf, default_delta_lf_multi_cdf);
2803#endif // CONFIG_LOOPFILTER_LEVEL
Fangwen Fu231fe422017-04-24 17:52:29 -07002804#endif
Luc Trudeauf5334002017-04-25 12:21:26 -04002805#if CONFIG_CFL
David Michael Barrf6eaa152017-07-19 19:42:28 +09002806 av1_copy(fc->cfl_sign_cdf, default_cfl_sign_cdf);
Luc Trudeauf5334002017-04-25 12:21:26 -04002807 av1_copy(fc->cfl_alpha_cdf, default_cfl_alpha_cdf);
2808#endif
Alex Converse7c412ea2017-06-01 15:16:22 -07002809#if CONFIG_INTRABC
Hui Su6c8584f2017-09-14 15:37:02 -07002810 av1_copy(fc->intrabc_cdf, default_intrabc_cdf);
Alex Converse7c412ea2017-06-01 15:16:22 -07002811#endif
Cheng Chen41d37c22017-09-08 19:00:21 -07002812#if CONFIG_LPF_SB
2813 av1_copy(fc->lpf_reuse_cdf, default_lpf_reuse_cdf);
2814 av1_copy(fc->lpf_delta_cdf, default_lpf_delta_cdf);
2815 av1_copy(fc->lpf_sign_cdf, default_lpf_sign_cdf);
2816#endif // CONFIG_LPF_SB
Yaowu Xuc27fc142016-08-22 16:08:15 -07002817}
2818
Yaowu Xuf883b422016-08-30 14:01:10 -07002819void av1_adapt_inter_frame_probs(AV1_COMMON *cm) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07002820 int i, j;
2821 FRAME_CONTEXT *fc = cm->fc;
Thomas Daede10e1da92017-04-26 13:22:21 -07002822 const FRAME_CONTEXT *pre_fc = cm->pre_fc;
Yaowu Xuc27fc142016-08-22 16:08:15 -07002823 const FRAME_COUNTS *counts = &cm->counts;
2824
Yaowu Xuc27fc142016-08-22 16:08:15 -07002825 for (i = 0; i < COMP_INTER_CONTEXTS; i++)
Yaowu Xuf883b422016-08-30 14:01:10 -07002826 fc->comp_inter_prob[i] = av1_mode_mv_merge_probs(pre_fc->comp_inter_prob[i],
2827 counts->comp_inter[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07002828
Zoe Liuc082bbc2017-05-17 13:31:37 -07002829#if CONFIG_EXT_COMP_REFS
2830 for (i = 0; i < COMP_REF_TYPE_CONTEXTS; i++)
2831 fc->comp_ref_type_prob[i] = av1_mode_mv_merge_probs(
2832 pre_fc->comp_ref_type_prob[i], counts->comp_ref_type[i]);
2833
2834 for (i = 0; i < UNI_COMP_REF_CONTEXTS; i++)
2835 for (j = 0; j < (UNIDIR_COMP_REFS - 1); j++)
2836 fc->uni_comp_ref_prob[i][j] = av1_mode_mv_merge_probs(
2837 pre_fc->uni_comp_ref_prob[i][j], counts->uni_comp_ref[i][j]);
2838#endif // CONFIG_EXT_COMP_REFS
2839
Yaowu Xuc27fc142016-08-22 16:08:15 -07002840 for (i = 0; i < REF_CONTEXTS; i++)
2841 for (j = 0; j < (FWD_REFS - 1); j++)
2842 fc->comp_ref_prob[i][j] = mode_mv_merge_probs(pre_fc->comp_ref_prob[i][j],
2843 counts->comp_ref[i][j]);
2844 for (i = 0; i < REF_CONTEXTS; i++)
2845 for (j = 0; j < (BWD_REFS - 1); j++)
2846 fc->comp_bwdref_prob[i][j] = mode_mv_merge_probs(
2847 pre_fc->comp_bwdref_prob[i][j], counts->comp_bwdref[i][j]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07002848
2849 for (i = 0; i < REF_CONTEXTS; i++)
2850 for (j = 0; j < (SINGLE_REFS - 1); j++)
Yaowu Xuf883b422016-08-30 14:01:10 -07002851 fc->single_ref_prob[i][j] = av1_mode_mv_merge_probs(
Yaowu Xuc27fc142016-08-22 16:08:15 -07002852 pre_fc->single_ref_prob[i][j], counts->single_ref[i][j]);
2853
Rupert Swarbrick93c39e92017-07-12 11:11:02 +01002854 for (i = BLOCK_8X8; i < BLOCK_SIZES_ALL; ++i)
Yue Chencb60b182016-10-13 15:18:22 -07002855 aom_tree_merge_probs(av1_motion_mode_tree, pre_fc->motion_mode_prob[i],
2856 counts->motion_mode[i], fc->motion_mode_prob[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07002857
Cheng Chen0a7f2f52017-10-10 15:16:09 -07002858#if CONFIG_JNT_COMP
2859 for (i = 0; i < COMP_INDEX_CONTEXTS; ++i)
2860 fc->compound_index_probs[i] = av1_mode_mv_merge_probs(
2861 pre_fc->compound_index_probs[i], counts->compound_index[i]);
2862#endif // CONFIG_JNT_COMP
Yaowu Xuc27fc142016-08-22 16:08:15 -07002863}
2864
Yaowu Xuf883b422016-08-30 14:01:10 -07002865void av1_adapt_intra_frame_probs(AV1_COMMON *cm) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07002866 FRAME_CONTEXT *fc = cm->fc;
Thomas Daede10e1da92017-04-26 13:22:21 -07002867 const FRAME_CONTEXT *pre_fc = cm->pre_fc;
Yaowu Xuc27fc142016-08-22 16:08:15 -07002868 const FRAME_COUNTS *counts = &cm->counts;
2869
Yaowu Xuc27fc142016-08-22 16:08:15 -07002870 if (cm->seg.temporal_update) {
Yaowu Xuf883b422016-08-30 14:01:10 -07002871 aom_tree_merge_probs(av1_segment_tree, pre_fc->seg.tree_probs,
Yaowu Xuc27fc142016-08-22 16:08:15 -07002872 counts->seg.tree_mispred, fc->seg.tree_probs);
2873 } else {
Yaowu Xuf883b422016-08-30 14:01:10 -07002874 aom_tree_merge_probs(av1_segment_tree, pre_fc->seg.tree_probs,
Yaowu Xuc27fc142016-08-22 16:08:15 -07002875 counts->seg.tree_total, fc->seg.tree_probs);
2876 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07002877}
2878
2879static void set_default_lf_deltas(struct loopfilter *lf) {
2880 lf->mode_ref_delta_enabled = 1;
2881 lf->mode_ref_delta_update = 1;
2882
2883 lf->ref_deltas[INTRA_FRAME] = 1;
2884 lf->ref_deltas[LAST_FRAME] = 0;
Yaowu Xuc27fc142016-08-22 16:08:15 -07002885 lf->ref_deltas[LAST2_FRAME] = lf->ref_deltas[LAST_FRAME];
2886 lf->ref_deltas[LAST3_FRAME] = lf->ref_deltas[LAST_FRAME];
2887 lf->ref_deltas[BWDREF_FRAME] = lf->ref_deltas[LAST_FRAME];
Yaowu Xuc27fc142016-08-22 16:08:15 -07002888 lf->ref_deltas[GOLDEN_FRAME] = -1;
Zoe Liu97ad0582017-02-09 10:51:00 -08002889 lf->ref_deltas[ALTREF2_FRAME] = -1;
Yaowu Xuc27fc142016-08-22 16:08:15 -07002890 lf->ref_deltas[ALTREF_FRAME] = -1;
2891
2892 lf->mode_deltas[0] = 0;
2893 lf->mode_deltas[1] = 0;
Ryana97c8972017-09-01 14:36:30 -07002894
2895 av1_copy(lf->last_ref_deltas, lf->ref_deltas);
2896 av1_copy(lf->last_mode_deltas, lf->mode_deltas);
Yaowu Xuc27fc142016-08-22 16:08:15 -07002897}
2898
Hui Su3694c832017-11-10 14:15:58 -08002899void av1_setup_frame_contexts(AV1_COMMON *cm) {
2900 int i;
2901#if CONFIG_NO_FRAME_CONTEXT_SIGNALING
2902 if (cm->frame_type == KEY_FRAME) {
2903 // Reset all frame contexts, as all reference frames will be lost.
2904 for (i = 0; i < FRAME_CONTEXTS; ++i) cm->frame_contexts[i] = *cm->fc;
2905 }
2906#else
2907 if (cm->frame_type == KEY_FRAME || cm->error_resilient_mode ||
2908 cm->reset_frame_context == RESET_FRAME_CONTEXT_ALL) {
2909 // Reset all frame contexts.
2910 for (i = 0; i < FRAME_CONTEXTS; ++i) cm->frame_contexts[i] = *cm->fc;
2911 } else if (cm->reset_frame_context == RESET_FRAME_CONTEXT_CURRENT) {
2912#if CONFIG_NO_FRAME_CONTEXT_SIGNALING
2913 // Reset the frame context of the first specified ref frame.
2914 if (cm->frame_refs[0].idx >= 0) {
2915 cm->frame_contexts[cm->frame_refs[0].idx] = *cm->fc;
2916 }
2917#else
2918 // Reset only the frame context specified in the frame header.
2919 cm->frame_contexts[cm->frame_context_idx] = *cm->fc;
2920#endif // CONFIG_NO_FRAME_CONTEXT_SIGNALING
2921 }
2922#endif // CONFIG_NO_FRAME_CONTEXT_SIGNALING
2923}
2924
Yaowu Xuf883b422016-08-30 14:01:10 -07002925void av1_setup_past_independence(AV1_COMMON *cm) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07002926 // Reset the segment feature data to the default stats:
2927 // Features disabled, 0, with delta coding (Default state).
2928 struct loopfilter *const lf = &cm->lf;
2929
Yaowu Xuf883b422016-08-30 14:01:10 -07002930 av1_clearall_segfeatures(&cm->seg);
Yaowu Xuc27fc142016-08-22 16:08:15 -07002931
2932 if (cm->last_frame_seg_map && !cm->frame_parallel_decode)
2933 memset(cm->last_frame_seg_map, 0, (cm->mi_rows * cm->mi_cols));
2934
2935 if (cm->current_frame_seg_map)
2936 memset(cm->current_frame_seg_map, 0, (cm->mi_rows * cm->mi_cols));
2937
2938 // Reset the mode ref deltas for loop filter
Yaowu Xuf883b422016-08-30 14:01:10 -07002939 av1_zero(lf->last_ref_deltas);
2940 av1_zero(lf->last_mode_deltas);
Yaowu Xuc27fc142016-08-22 16:08:15 -07002941 set_default_lf_deltas(lf);
2942
2943 // To force update of the sharpness
2944 lf->last_sharpness_level = -1;
Yaowu Xuc27fc142016-08-22 16:08:15 -07002945
Yaowu Xuf883b422016-08-30 14:01:10 -07002946 av1_default_coef_probs(cm);
Yaowu Xuc27fc142016-08-22 16:08:15 -07002947 init_mode_probs(cm->fc);
Yaowu Xuf883b422016-08-30 14:01:10 -07002948 av1_init_mv_probs(cm);
Angie Chiangdef11252017-08-18 14:37:32 -07002949#if CONFIG_LV_MAP
2950 av1_init_lv_map(cm);
2951#endif
Angie Chianged8cd9a2016-10-21 16:44:47 -07002952#if CONFIG_ADAPT_SCAN
2953 av1_init_scan_order(cm);
2954#endif
Angie Chiang0a2c0cb2017-02-23 14:19:15 -08002955 av1_convolve_init(cm);
Yaowu Xuc27fc142016-08-22 16:08:15 -07002956 cm->fc->initialized = 1;
Hui Su3694c832017-11-10 14:15:58 -08002957 av1_setup_frame_contexts(cm);
Yaowu Xuc27fc142016-08-22 16:08:15 -07002958
2959 // prev_mip will only be allocated in encoder.
2960 if (frame_is_intra_only(cm) && cm->prev_mip && !cm->frame_parallel_decode)
2961 memset(cm->prev_mip, 0,
2962 cm->mi_stride * (cm->mi_rows + 1) * sizeof(*cm->prev_mip));
Thomas Daededa4d8b92017-06-05 15:44:14 -07002963#if !CONFIG_NO_FRAME_CONTEXT_SIGNALING
Yaowu Xuc27fc142016-08-22 16:08:15 -07002964 cm->frame_context_idx = 0;
Thomas Daededa4d8b92017-06-05 15:44:14 -07002965#endif // !CONFIG_NO_FRAME_CONTEXT_SIGNALING
Yaowu Xuc27fc142016-08-22 16:08:15 -07002966}