hardware/intel/intel-driver
リビジョン | 2623285c7aac161ad89cd4f20a08f453ce5f76b7 (tree) |
---|---|
日時 | 2016-05-26 13:54:42 |
作者 | Zhao Yakui <yakui.zhao@inte...> |
コミッター | Xiang, Haihao |
Refine vp9_probs.h so that the prob table can be used for encoding
Otherwise the prob definition will be defined twice if it is included
in two files.
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Reviewed-by: Sean V Kelley <sean.v.kelley@intel.com>
@@ -97,6 +97,7 @@ source_c = \ | ||
97 | 97 | intel_memman.c \ |
98 | 98 | object_heap.c \ |
99 | 99 | intel_media_common.c \ |
100 | + vp9_probs.c \ | |
100 | 101 | $(NULL) |
101 | 102 | |
102 | 103 | source_h = \ |
@@ -0,0 +1,527 @@ | ||
1 | +/* | |
2 | + * Copyright © 2016 Intel Corporation | |
3 | + * | |
4 | + * Permission is hereby granted, free of charge, to any person obtaining a | |
5 | + * copy of this software and associated documentation files (the | |
6 | + * "Software"), to deal in the Software without restriction, including | |
7 | + * without limitation the rights to use, copy, modify, merge, publish, | |
8 | + * distribute, sub license, and/or sell copies of the Software, and to | |
9 | + * permit persons to whom the Software is furnished to do so, subject to | |
10 | + * the following conditions: | |
11 | + * | |
12 | + * The above copyright notice and this permission notice (including the | |
13 | + * next paragraph) shall be included in all copies or substantial portions | |
14 | + * of the Software. | |
15 | + * | |
16 | + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | |
17 | + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
18 | + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. | |
19 | + * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR | |
20 | + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | |
21 | + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | |
22 | + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
23 | + * | |
24 | + * Authors: | |
25 | + * Zhao Yakui <yakui.zhao@intel.com> | |
26 | + */ | |
27 | +/* | |
28 | + * This file defines some vp9 probability tables, and | |
29 | + * they are ported from libvpx (https://github.com/webmproject/libvpx/). | |
30 | + * The original copyright and licence statement as below. | |
31 | + */ | |
32 | + | |
33 | +/* | |
34 | + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. | |
35 | + * | |
36 | + * Use of this source code is governed by a BSD-style license | |
37 | + * that can be found in the LICENSE file in the root of the source | |
38 | + * tree. An additional intellectual property rights grant can be found | |
39 | + * in the file PATENTS. All contributing project authors may | |
40 | + * be found in the AUTHORS file in the root of the source tree. | |
41 | + */ | |
42 | +#include <stdio.h> | |
43 | +#include <stdint.h> | |
44 | +#include <vp9_probs.h> | |
45 | + | |
46 | + | |
47 | +struct tx_probs default_tx_probs = { | |
48 | + { { 100 }, | |
49 | + { 66 } }, | |
50 | + | |
51 | + { { 20, 152 }, | |
52 | + { 15, 101 } }, | |
53 | + | |
54 | + { { 3, 136, 37 }, | |
55 | + { 5, 52, 13 } }, | |
56 | +}; | |
57 | + | |
58 | +vp9_prob default_skip_probs[SKIP_CONTEXTS] = { | |
59 | + 192, 128, 64 | |
60 | +}; | |
61 | + | |
62 | +vp9_prob default_inter_mode_probs[INTER_MODE_CONTEXTS] | |
63 | + [INTER_MODES - 1] = { | |
64 | + {2, 173, 34}, // 0 = both zero mv | |
65 | + {7, 145, 85}, // 1 = one zero mv + one a predicted mv | |
66 | + {7, 166, 63}, // 2 = two predicted mvs | |
67 | + {7, 94, 66}, // 3 = one predicted/zero and one new mv | |
68 | + {8, 64, 46}, // 4 = two new mvs | |
69 | + {17, 81, 31}, // 5 = one intra neighbour + x | |
70 | + {25, 29, 30}, // 6 = two intra neighbours | |
71 | +}; | |
72 | + | |
73 | +vp9_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS][SWITCHABLE_FILTERS - 1] = { | |
74 | + { 235, 162, }, | |
75 | + { 36, 255, }, | |
76 | + { 34, 3, }, | |
77 | + { 149, 144, }, | |
78 | +}; | |
79 | + | |
80 | +vp9_prob default_intra_inter_p[INTRA_INTER_CONTEXTS] = { | |
81 | + 9, 102, 187, 225 | |
82 | +}; | |
83 | + | |
84 | +vp9_prob default_comp_inter_p[COMP_INTER_CONTEXTS] = { | |
85 | + 239, 183, 119, 96, 41 | |
86 | +}; | |
87 | + | |
88 | +vp9_prob default_single_ref_p[REF_CONTEXTS][2] = { | |
89 | + { 33, 16 }, | |
90 | + { 77, 74 }, | |
91 | + { 142, 142 }, | |
92 | + { 172, 170 }, | |
93 | + { 238, 247 } | |
94 | +}; | |
95 | + | |
96 | +vp9_prob default_comp_ref_p[REF_CONTEXTS] = { | |
97 | + 50, 126, 123, 221, 226 | |
98 | +}; | |
99 | + | |
100 | +vp9_prob vp9_kf_uv_mode_prob[INTRA_MODES][INTRA_MODES - 1] = { | |
101 | + { 144, 11, 54, 157, 195, 130, 46, 58, 108 }, // y = dc | |
102 | + { 118, 15, 123, 148, 131, 101, 44, 93, 131 }, // y = v | |
103 | + { 113, 12, 23, 188, 226, 142, 26, 32, 125 }, // y = h | |
104 | + { 120, 11, 50, 123, 163, 135, 64, 77, 103 }, // y = d45 | |
105 | + { 113, 9, 36, 155, 111, 157, 32, 44, 161 }, // y = d135 | |
106 | + { 116, 9, 55, 176, 76, 96, 37, 61, 149 }, // y = d117 | |
107 | + { 115, 9, 28, 141, 161, 167, 21, 25, 193 }, // y = d153 | |
108 | + { 120, 12, 32, 145, 195, 142, 32, 38, 86 }, // y = d207 | |
109 | + { 116, 12, 64, 120, 140, 125, 49, 115, 121 }, // y = d63 | |
110 | + { 102, 19, 66, 162, 182, 122, 35, 59, 128 } // y = tm | |
111 | +}; | |
112 | + | |
113 | +vp9_prob default_if_y_probs[BLOCK_SIZE_GROUPS][INTRA_MODES - 1] = { | |
114 | + { 65, 32, 18, 144, 162, 194, 41, 51, 98 }, // block_size < 8x8 | |
115 | + { 132, 68, 18, 165, 217, 196, 45, 40, 78 }, // block_size < 16x16 | |
116 | + { 173, 80, 19, 176, 240, 193, 64, 35, 46 }, // block_size < 32x32 | |
117 | + { 221, 135, 38, 194, 248, 121, 96, 85, 29 } // block_size >= 32x32 | |
118 | +}; | |
119 | + | |
120 | +vp9_prob default_if_uv_probs[INTRA_MODES][INTRA_MODES - 1] = { | |
121 | + { 120, 7, 76, 176, 208, 126, 28, 54, 103 }, // y = dc | |
122 | + { 48, 12, 154, 155, 139, 90, 34, 117, 119 }, // y = v | |
123 | + { 67, 6, 25, 204, 243, 158, 13, 21, 96 }, // y = h | |
124 | + { 97, 5, 44, 131, 176, 139, 48, 68, 97 }, // y = d45 | |
125 | + { 83, 5, 42, 156, 111, 152, 26, 49, 152 }, // y = d135 | |
126 | + { 80, 5, 58, 178, 74, 83, 33, 62, 145 }, // y = d117 | |
127 | + { 86, 5, 32, 154, 192, 168, 14, 22, 163 }, // y = d153 | |
128 | + { 85, 5, 32, 156, 216, 148, 19, 29, 73 }, // y = d207 | |
129 | + { 77, 7, 64, 116, 132, 122, 37, 126, 120 }, // y = d63 | |
130 | + { 101, 21, 107, 181, 192, 103, 19, 67, 125 } // y = tm | |
131 | +}; | |
132 | + | |
133 | +vp9_prob default_seg_tree_probs[SEG_TREE_PROBS] = { | |
134 | + 255, 255, 255, 255, 255, 255, 255 | |
135 | +}; | |
136 | + | |
137 | +vp9_prob default_seg_pred_probs[PREDICTION_PROBS] = { | |
138 | + 255, 255, 255 | |
139 | +}; | |
140 | + | |
141 | +vp9_prob vp9_kf_partition_probs[PARTITION_CONTEXTS] | |
142 | + [PARTITION_TYPES - 1] = { | |
143 | + // 8x8 -> 4x4 | |
144 | + { 158, 97, 94 }, // a/l both not split | |
145 | + { 93, 24, 99 }, // a split, l not split | |
146 | + { 85, 119, 44 }, // l split, a not split | |
147 | + { 62, 59, 67 }, // a/l both split | |
148 | + // 16x16 -> 8x8 | |
149 | + { 149, 53, 53 }, // a/l both not split | |
150 | + { 94, 20, 48 }, // a split, l not split | |
151 | + { 83, 53, 24 }, // l split, a not split | |
152 | + { 52, 18, 18 }, // a/l both split | |
153 | + // 32x32 -> 16x16 | |
154 | + { 150, 40, 39 }, // a/l both not split | |
155 | + { 78, 12, 26 }, // a split, l not split | |
156 | + { 67, 33, 11 }, // l split, a not split | |
157 | + { 24, 7, 5 }, // a/l both split | |
158 | + // 64x64 -> 32x32 | |
159 | + { 174, 35, 49 }, // a/l both not split | |
160 | + { 68, 11, 27 }, // a split, l not split | |
161 | + { 57, 15, 9 }, // l split, a not split | |
162 | + { 12, 3, 3 }, // a/l both split | |
163 | +}; | |
164 | + | |
165 | +vp9_prob default_partition_probs[PARTITION_CONTEXTS] | |
166 | + [PARTITION_TYPES - 1] = { | |
167 | + // 8x8 -> 4x4 | |
168 | + { 199, 122, 141 }, // a/l both not split | |
169 | + { 147, 63, 159 }, // a split, l not split | |
170 | + { 148, 133, 118 }, // l split, a not split | |
171 | + { 121, 104, 114 }, // a/l both split | |
172 | + // 16x16 -> 8x8 | |
173 | + { 174, 73, 87 }, // a/l both not split | |
174 | + { 92, 41, 83 }, // a split, l not split | |
175 | + { 82, 99, 50 }, // l split, a not split | |
176 | + { 53, 39, 39 }, // a/l both split | |
177 | + // 32x32 -> 16x16 | |
178 | + { 177, 58, 59 }, // a/l both not split | |
179 | + { 68, 26, 63 }, // a split, l not split | |
180 | + { 52, 79, 25 }, // l split, a not split | |
181 | + { 17, 14, 12 }, // a/l both split | |
182 | + // 64x64 -> 32x32 | |
183 | + { 222, 34, 30 }, // a/l both not split | |
184 | + { 72, 16, 44 }, // a split, l not split | |
185 | + { 58, 32, 12 }, // l split, a not split | |
186 | + { 10, 7, 6 }, // a/l both split | |
187 | +}; | |
188 | + | |
189 | +//Rearranged the values for better usage | |
190 | +nmv_context default_nmv_context = { | |
191 | + {32, 64, 96}, | |
192 | + { | |
193 | + { // Vertical component | |
194 | + 128, // sign | |
195 | + {224, 144, 192, 168, 192, 176, 192, 198, 198, 245}, // class | |
196 | + {216}, // class0 | |
197 | + {136, 140, 148, 160, 176, 192, 224, 234, 234, 240}, // bits | |
198 | + }, | |
199 | + { // Horizontal component | |
200 | + 128, // sign | |
201 | + {216, 128, 176, 160, 176, 176, 192, 198, 198, 208}, // class | |
202 | + {208}, // class0 | |
203 | + {136, 140, 148, 160, 176, 192, 224, 234, 234, 240}, // bits | |
204 | + } | |
205 | + }, | |
206 | + {{128, 128, 64}, {96, 112, 64}}, // class0_fp0 | |
207 | + {64, 96, 64}, // fp0 | |
208 | + {{128, 128, 64}, {96, 112, 64}}, // class0_fp1 | |
209 | + {64, 96, 64}, // fp1 | |
210 | + {160, 128}, // class0_hp bit | |
211 | + {160, 128} // hp | |
212 | + | |
213 | +}; | |
214 | + | |
215 | +//Rearranged the coeff probs for better usage | |
216 | +vp9_prob default_coef_probs_4x4[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { | |
217 | + // Y plane - Intra | |
218 | + // Band 0 | |
219 | + { 195, 29, 183 }, { 84, 49, 136 }, { 8, 42, 71 }, | |
220 | + // Band 1 | |
221 | + { 31, 107, 169 }, { 35, 99, 159 }, { 17, 82, 140 }, | |
222 | + { 8, 66, 114 }, { 2, 44, 76 }, { 1, 19, 32 }, | |
223 | + // Band 2 | |
224 | + { 40, 132, 201 }, { 29, 114, 187 }, { 13, 91, 157 }, | |
225 | + { 7, 75, 127 }, { 3, 58, 95 }, { 1, 28, 47 }, | |
226 | + // Band 3 | |
227 | + { 69, 142, 221 }, { 42, 122, 201 }, { 15, 91, 159 }, | |
228 | + { 6, 67, 121 }, { 1, 42, 77 }, { 1, 17, 31 }, | |
229 | + // Band 4 | |
230 | + { 102, 148, 228 }, { 67, 117, 204 }, { 17, 82, 154 }, | |
231 | + { 6, 59, 114 }, { 2, 39, 75 }, { 1, 15, 29 }, | |
232 | + // Band 5 | |
233 | + { 156, 57, 233 }, { 119, 57, 212 }, { 58, 48, 163 }, | |
234 | + { 29, 40, 124 }, { 12, 30, 81 }, { 3, 12, 31 }, | |
235 | + | |
236 | + // Y plane - Inter | |
237 | + // Band 0 | |
238 | + { 191, 107, 226 }, { 124, 117, 204 }, { 25, 99, 155 }, | |
239 | + // Band 1 | |
240 | + { 29, 148, 210 }, { 37, 126, 194 }, { 8, 93, 157 }, | |
241 | + { 2, 68, 118 }, { 1, 39, 69 }, { 1, 17, 33 }, | |
242 | + // Band 2 | |
243 | + { 41, 151, 213 }, { 27, 123, 193 }, { 3, 82, 144 }, | |
244 | + { 1, 58, 105 }, { 1, 32, 60 }, { 1, 13, 26 }, | |
245 | + // Band 3 | |
246 | + { 59, 159, 220 }, { 23, 126, 198 }, { 4, 88, 151 }, | |
247 | + { 1, 66, 114 }, { 1, 38, 71 }, { 1, 18, 34 }, | |
248 | + // Band 4 | |
249 | + { 114, 136, 232 }, { 51, 114, 207 }, { 11, 83, 155 }, | |
250 | + { 3, 56, 105 }, { 1, 33, 65 }, { 1, 17, 34 }, | |
251 | + // Band 5 | |
252 | + { 149, 65, 234 }, { 121, 57, 215 }, { 61, 49, 166 }, | |
253 | + { 28, 36, 114 }, { 12, 25, 76 }, { 3, 16, 42 }, | |
254 | + | |
255 | + // UV plane - Intra | |
256 | + // Band 0 | |
257 | + { 214, 49, 220 }, { 132, 63, 188 }, { 42, 65, 137 }, | |
258 | + // Band 1 | |
259 | + { 85, 137, 221 }, { 104, 131, 216 }, { 49, 111, 192 }, | |
260 | + { 21, 87, 155 }, { 2, 49, 87 }, { 1, 16, 28 }, | |
261 | + // Band 2 | |
262 | + { 89, 163, 230 }, { 90, 137, 220 }, { 29, 100, 183 }, | |
263 | + { 10, 70, 135 }, { 2, 42, 81 }, { 1, 17, 33 }, | |
264 | + // Band 3 | |
265 | + { 108, 167, 237 }, { 55, 133, 222 }, { 15, 97, 179 }, | |
266 | + { 4, 72, 135 }, { 1, 45, 85 }, { 1, 19, 38 }, | |
267 | + // Band 4 | |
268 | + { 124, 146, 240 }, { 66, 124, 224 }, { 17, 88, 175 }, | |
269 | + { 4, 58, 122 }, { 1, 36, 75 }, { 1, 18, 37 }, | |
270 | + // Band 5 | |
271 | + { 141, 79, 241 }, { 126, 70, 227 }, { 66, 58, 182 }, | |
272 | + { 30, 44, 136 }, { 12, 34, 96 }, { 2, 20, 47 }, | |
273 | + | |
274 | + // UV plane - Inter | |
275 | + // Band 0 | |
276 | + { 229, 99, 249 }, { 143, 111, 235 }, { 46, 109, 192 }, | |
277 | + // Band 1 | |
278 | + { 82, 158, 236 }, { 94, 146, 224 }, { 25, 117, 191 }, | |
279 | + { 9, 87, 149 }, { 3, 56, 99 }, { 1, 33, 57 }, | |
280 | + // Band 2 | |
281 | + { 83, 167, 237 }, { 68, 145, 222 }, { 10, 103, 177 }, | |
282 | + { 2, 72, 131 }, { 1, 41, 79 }, { 1, 20, 39 }, | |
283 | + // Band 3 | |
284 | + { 99, 167, 239 }, { 47, 141, 224 }, { 10, 104, 178 }, | |
285 | + { 2, 73, 133 }, { 1, 44, 85 }, { 1, 22, 47 }, | |
286 | + // Band 4 | |
287 | + { 127, 145, 243 }, { 71, 129, 228 }, { 17, 93, 177 }, | |
288 | + { 3, 61, 124 }, { 1, 41, 84 }, { 1, 21, 52 }, | |
289 | + // Band 5 | |
290 | + { 157, 78, 244 }, { 140, 72, 231 }, { 69, 58, 184 }, | |
291 | + { 31, 44, 137 }, { 14, 38, 105 }, { 8, 23, 61 } | |
292 | +}; | |
293 | + | |
294 | +vp9_prob default_coef_probs_8x8[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { | |
295 | + // Y plane - Intra | |
296 | + // Band 0 | |
297 | + { 125, 34, 187 }, { 52, 41, 133 }, { 6, 31, 56 }, | |
298 | + // Band 1 | |
299 | + { 37, 109, 153 }, { 51, 102, 147 }, { 23, 87, 128 }, | |
300 | + { 8, 67, 101 }, { 1, 41, 63 }, { 1, 19, 29 }, | |
301 | + // Band 2 | |
302 | + { 31, 154, 185 }, { 17, 127, 175 }, { 6, 96, 145 }, | |
303 | + { 2, 73, 114 }, { 1, 51, 82 }, { 1, 28, 45 }, | |
304 | + // Band 3 | |
305 | + { 23, 163, 200 }, { 10, 131, 185 }, { 2, 93, 148 }, | |
306 | + { 1, 67, 111 }, { 1, 41, 69 }, { 1, 14, 24 }, | |
307 | + // Band 4 | |
308 | + { 29, 176, 217 }, { 12, 145, 201 }, { 3, 101, 156 }, | |
309 | + { 1, 69, 111 }, { 1, 39, 63 }, { 1, 14, 23 }, | |
310 | + // Band 5 | |
311 | + { 57, 192, 233 }, { 25, 154, 215 }, { 6, 109, 167 }, | |
312 | + { 3, 78, 118 }, { 1, 48, 69 }, { 1, 21, 29 }, | |
313 | + | |
314 | + // Y plane - Inter | |
315 | + // Band 0 | |
316 | + { 202, 105, 245 }, { 108, 106, 216 }, { 18, 90, 144 }, | |
317 | + // Band 1 | |
318 | + { 33, 172, 219 }, { 64, 149, 206 }, { 14, 117, 177 }, | |
319 | + { 5, 90, 141 }, { 2, 61, 95 }, { 1, 37, 57 }, | |
320 | + // Band 2 | |
321 | + { 33, 179, 220 }, { 11, 140, 198 }, { 1, 89, 148 }, | |
322 | + { 1, 60, 104 }, { 1, 33, 57 }, { 1, 12, 21 }, | |
323 | + // Band 3 | |
324 | + { 30, 181, 221 }, { 8, 141, 198 }, { 1, 87, 145 }, | |
325 | + { 1, 58, 100 }, { 1, 31, 55 }, { 1, 12, 20 }, | |
326 | + // Band 4 | |
327 | + { 32, 186, 224 }, { 7, 142, 198 }, { 1, 86, 143 }, | |
328 | + { 1, 58, 100 }, { 1, 31, 55 }, { 1, 12, 22 }, | |
329 | + // Band 5 | |
330 | + { 57, 192, 227 }, { 20, 143, 204 }, { 3, 96, 154 }, | |
331 | + { 1, 68, 112 }, { 1, 42, 69 }, { 1, 19, 32 }, | |
332 | + | |
333 | + // UV plane - Intra | |
334 | + // Band 0 | |
335 | + { 212, 35, 215 }, { 113, 47, 169 }, { 29, 48, 105 }, | |
336 | + // Band 1 | |
337 | + { 74, 129, 203 }, { 106, 120, 203 }, { 49, 107, 178 }, | |
338 | + { 19, 84, 144 }, { 4, 50, 84 }, { 1, 15, 25 }, | |
339 | + // Band 2 | |
340 | + { 71, 172, 217 }, { 44, 141, 209 }, { 15, 102, 173 }, | |
341 | + { 6, 76, 133 }, { 2, 51, 89 }, { 1, 24, 42 }, | |
342 | + // Band 3 | |
343 | + { 64, 185, 231 }, { 31, 148, 216 }, { 8, 103, 175 }, | |
344 | + { 3, 74, 131 }, { 1, 46, 81 }, { 1, 18, 30 }, | |
345 | + // Band 4 | |
346 | + { 65, 196, 235 }, { 25, 157, 221 }, { 5, 105, 174 }, | |
347 | + { 1, 67, 120 }, { 1, 38, 69 }, { 1, 15, 30 }, | |
348 | + // Band 5 | |
349 | + { 65, 204, 238 }, { 30, 156, 224 }, { 7, 107, 177 }, | |
350 | + { 2, 70, 124 }, { 1, 42, 73 }, { 1, 18, 34 }, | |
351 | + | |
352 | + // UV Plane - Inter | |
353 | + // Band 0 | |
354 | + { 225, 86, 251 }, { 144, 104, 235 }, { 42, 99, 181 }, | |
355 | + // Band 1 | |
356 | + { 85, 175, 239 }, { 112, 165, 229 }, { 29, 136, 200 }, | |
357 | + { 12, 103, 162 }, { 6, 77, 123 }, { 2, 53, 84 }, | |
358 | + // Band 2 | |
359 | + { 75, 183, 239 }, { 30, 155, 221 }, { 3, 106, 171 }, | |
360 | + { 1, 74, 128 }, { 1, 44, 76 }, { 1, 17, 28 }, | |
361 | + // Band 3 | |
362 | + { 73, 185, 240 }, { 27, 159, 222 }, { 2, 107, 172 }, | |
363 | + { 1, 75, 127 }, { 1, 42, 73 }, { 1, 17, 29 }, | |
364 | + // Band 4 | |
365 | + { 62, 190, 238 }, { 21, 159, 222 }, { 2, 107, 172 }, | |
366 | + { 1, 72, 122 }, { 1, 40, 71 }, { 1, 18, 32 }, | |
367 | + // Band 5 | |
368 | + { 61, 199, 240 }, { 27, 161, 226 }, { 4, 113, 180 }, | |
369 | + { 1, 76, 129 }, { 1, 46, 80 }, { 1, 23, 41 } | |
370 | +}; | |
371 | + | |
372 | +vp9_prob default_coef_probs_16x16[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { | |
373 | + // Y plane - Intra | |
374 | + // Band 0 | |
375 | + { 7, 27, 153 }, { 5, 30, 95 }, { 1, 16, 30 }, | |
376 | + // Band 1 | |
377 | + { 50, 75, 127 }, { 57, 75, 124 }, { 27, 67, 108 }, | |
378 | + { 10, 54, 86 }, { 1, 33, 52 }, { 1, 12, 18 }, | |
379 | + // Band 2 | |
380 | + { 43, 125, 151 }, { 26, 108, 148 }, { 7, 83, 122 }, | |
381 | + { 2, 59, 89 }, { 1, 38, 60 }, { 1, 17, 27 }, | |
382 | + // Band 3 | |
383 | + { 23, 144, 163 }, { 13, 112, 154 }, { 2, 75, 117 }, | |
384 | + { 1, 50, 81 }, { 1, 31, 51 }, { 1, 14, 23 }, | |
385 | + // Band 4 | |
386 | + { 18, 162, 185 }, { 6, 123, 171 }, { 1, 78, 125 }, | |
387 | + { 1, 51, 86 }, { 1, 31, 54 }, { 1, 14, 23 }, | |
388 | + // Band 5 | |
389 | + { 15, 199, 227 }, { 3, 150, 204 }, { 1, 91, 146 }, | |
390 | + { 1, 55, 95 }, { 1, 30, 53 }, { 1, 11, 20 }, | |
391 | + | |
392 | + // Y plane - Inter | |
393 | + // Band 0 | |
394 | + { 19, 55, 240 }, { 19, 59, 196 }, { 3, 52, 105 }, | |
395 | + // Band 1 | |
396 | + { 41, 166, 207 }, { 104, 153, 199 }, { 31, 123, 181 }, | |
397 | + { 14, 101, 152 }, { 5, 72, 106 }, { 1, 36, 52 }, | |
398 | + // Band 2 | |
399 | + { 35, 176, 211 }, { 12, 131, 190 }, { 2, 88, 144 }, | |
400 | + { 1, 60, 101 }, { 1, 36, 60 }, { 1, 16, 28 }, | |
401 | + // Band 3 | |
402 | + { 28, 183, 213 }, { 8, 134, 191 }, { 1, 86, 142 }, | |
403 | + { 1, 56, 96 }, { 1, 30, 53 }, { 1, 12, 20 }, | |
404 | + // Band 4 | |
405 | + { 20, 190, 215 }, { 4, 135, 192 }, { 1, 84, 139 }, | |
406 | + { 1, 53, 91 }, { 1, 28, 49 }, { 1, 11, 20 }, | |
407 | + // Band 5 | |
408 | + { 13, 196, 216 }, { 2, 137, 192 }, { 1, 86, 143 }, | |
409 | + { 1, 57, 99 }, { 1, 32, 56 }, { 1, 13, 24 }, | |
410 | + | |
411 | + // UV plane - Intra | |
412 | + // Band 0 | |
413 | + { 211, 29, 217 }, { 96, 47, 156 }, { 22, 43, 87 }, | |
414 | + // Band 1 | |
415 | + { 78, 120, 193 }, { 111, 116, 186 }, { 46, 102, 164 }, | |
416 | + { 15, 80, 128 }, { 2, 49, 76 }, { 1, 18, 28 }, | |
417 | + // Band 2 | |
418 | + { 71, 161, 203 }, { 42, 132, 192 }, { 10, 98, 150 }, | |
419 | + { 3, 69, 109 }, { 1, 44, 70 }, { 1, 18, 29 }, | |
420 | + // Band 3 | |
421 | + { 57, 186, 211 }, { 30, 140, 196 }, { 4, 93, 146 }, | |
422 | + { 1, 62, 102 }, { 1, 38, 65 }, { 1, 16, 27 }, | |
423 | + // Band 4 | |
424 | + { 47, 199, 217 }, { 14, 145, 196 }, { 1, 88, 142 }, | |
425 | + { 1, 57, 98 }, { 1, 36, 62 }, { 1, 15, 26 }, | |
426 | + // Band 5 | |
427 | + { 26, 219, 229 }, { 5, 155, 207 }, { 1, 94, 151 }, | |
428 | + { 1, 60, 104 }, { 1, 36, 62 }, { 1, 16, 28 }, | |
429 | + | |
430 | + // UV plane - Inter | |
431 | + // Band 0 | |
432 | + { 233, 29, 248 }, { 146, 47, 220 }, { 43, 52, 140 }, | |
433 | + // Band 1 | |
434 | + { 100, 163, 232 }, { 179, 161, 222 }, { 63, 142, 204 }, | |
435 | + { 37, 113, 174 }, { 26, 89, 137 }, { 18, 68, 97 }, | |
436 | + // Band 2 | |
437 | + { 85, 181, 230 }, { 32, 146, 209 }, { 7, 100, 164 }, | |
438 | + { 3, 71, 121 }, { 1, 45, 77 }, { 1, 18, 30 }, | |
439 | + // Band 3 | |
440 | + { 65, 187, 230 }, { 20, 148, 207 }, { 2, 97, 159 }, | |
441 | + { 1, 68, 116 }, { 1, 40, 70 }, { 1, 14, 29 }, | |
442 | + // Band 4 | |
443 | + { 40, 194, 227 }, { 8, 147, 204 }, { 1, 94, 155 }, | |
444 | + { 1, 65, 112 }, { 1, 39, 66 }, { 1, 14, 26 }, | |
445 | + // Band 5 | |
446 | + { 16, 208, 228 }, { 3, 151, 207 }, { 1, 98, 160 }, | |
447 | + { 1, 67, 117 }, { 1, 41, 74 }, { 1, 17, 31 } | |
448 | +}; | |
449 | + | |
450 | +vp9_prob default_coef_probs_32x32[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { | |
451 | + // Y plane - Intra | |
452 | + // Band 0 | |
453 | + { 17, 38, 140 }, { 7, 34, 80 }, { 1, 17, 29 }, | |
454 | + // Band 1 | |
455 | + { 37, 75, 128 }, { 41, 76, 128 }, { 26, 66, 116 }, | |
456 | + { 12, 52, 94 }, { 2, 32, 55 }, { 1, 10, 16 }, | |
457 | + // Band 2 | |
458 | + { 50, 127, 154 }, { 37, 109, 152 }, { 16, 82, 121 }, | |
459 | + { 5, 59, 85 }, { 1, 35, 54 }, { 1, 13, 20 }, | |
460 | + //Band 3 | |
461 | + { 40, 142, 167 }, { 17, 110, 157 }, { 2, 71, 112 }, | |
462 | + { 1, 44, 72 }, { 1, 27, 45 }, { 1, 11, 17 }, | |
463 | + // Band 4 | |
464 | + { 30, 175, 188 }, { 9, 124, 169 }, { 1, 74, 116 }, | |
465 | + { 1, 48, 78 }, { 1, 30, 49 }, { 1, 11, 18 }, | |
466 | + // Band 5 | |
467 | + { 10, 222, 223 }, { 2, 150, 194 }, { 1, 83, 128 }, | |
468 | + { 1, 48, 79 }, { 1, 27, 45 }, { 1, 11, 17 }, | |
469 | + | |
470 | + // Y plane - Inter | |
471 | + // Band 0 | |
472 | + { 36, 41, 235 }, { 29, 36, 193 }, { 10, 27, 111 }, | |
473 | + // Band 1 | |
474 | + { 85, 165, 222 }, { 177, 162, 215 }, { 110, 135, 195 }, | |
475 | + { 57, 113, 168 }, { 23, 83, 120 }, { 10, 49, 61 }, | |
476 | + // Band 2 | |
477 | + { 85, 190, 223 }, { 36, 139, 200 }, { 5, 90, 146 }, | |
478 | + { 1, 60, 103 }, { 1, 38, 65 }, { 1, 18, 30 }, | |
479 | + // Band 3 | |
480 | + { 72, 202, 223 }, { 23, 141, 199 }, { 2, 86, 140 }, | |
481 | + { 1, 56, 97 }, { 1, 36, 61 }, { 1, 16, 27 }, | |
482 | + // Band 4 | |
483 | + { 55, 218, 225 }, { 13, 145, 200 }, { 1, 86, 141 }, | |
484 | + { 1, 57, 99 }, { 1, 35, 61 }, { 1, 13, 22 }, | |
485 | + // Band 5 | |
486 | + { 15, 235, 212 }, { 1, 132, 184 }, { 1, 84, 139 }, | |
487 | + { 1, 57, 97 }, { 1, 34, 56 }, { 1, 14, 23 }, | |
488 | + | |
489 | + // UV plane - Intra | |
490 | + // Band 0 | |
491 | + { 181, 21, 201 }, { 61, 37, 123 }, { 10, 38, 71 }, | |
492 | + // Band 1 | |
493 | + { 47, 106, 172 }, { 95, 104, 173 }, { 42, 93, 159 }, | |
494 | + { 18, 77, 131 }, { 4, 50, 81 }, { 1, 17, 23 }, | |
495 | + // Band 2 | |
496 | + { 62, 147, 199 }, { 44, 130, 189 }, { 28, 102, 154 }, | |
497 | + { 18, 75, 115 }, { 2, 44, 65 }, { 1, 12, 19 }, | |
498 | + // Band 3 | |
499 | + { 55, 153, 210 }, { 24, 130, 194 }, { 3, 93, 146 }, | |
500 | + { 1, 61, 97 }, { 1, 31, 50 }, { 1, 10, 16 }, | |
501 | + // Band 4 | |
502 | + { 49, 186, 223 }, { 17, 148, 204 }, { 1, 96, 142 }, | |
503 | + { 1, 53, 83 }, { 1, 26, 44 }, { 1, 11, 17 }, | |
504 | + // Band 5 | |
505 | + { 13, 217, 212 }, { 2, 136, 180 }, { 1, 78, 124 }, | |
506 | + { 1, 50, 83 }, { 1, 29, 49 }, { 1, 14, 23 }, | |
507 | + | |
508 | + // UV plane - Inter | |
509 | + // Band 0 | |
510 | + { 197, 13, 247 }, { 82, 17, 222 }, { 25, 17, 162 }, | |
511 | + // Band 1 | |
512 | + { 126, 186, 247 }, { 234, 191, 243 }, { 176, 177, 234 }, | |
513 | + { 104, 158, 220 }, { 66, 128, 186 }, { 55, 90, 137 }, | |
514 | + // Band 2 | |
515 | + { 111, 197, 242 }, { 46, 158, 219 }, { 9, 104, 171 }, | |
516 | + { 2, 65, 125 }, { 1, 44, 80 }, { 1, 17, 91 }, | |
517 | + // Band 3 | |
518 | + { 104, 208, 245 }, { 39, 168, 224 }, { 3, 109, 162 }, | |
519 | + { 1, 79, 124 }, { 1, 50, 102 }, { 1, 43, 102 }, | |
520 | + // Band 4 | |
521 | + { 84, 220, 246 }, { 31, 177, 231 }, { 2, 115, 180 }, | |
522 | + { 1, 79, 134 }, { 1, 55, 77 }, { 1, 60, 79 }, | |
523 | + // Band 5 | |
524 | + { 43, 243, 240 }, { 8, 180, 217 }, { 1, 115, 166 }, | |
525 | + { 1, 84, 121 }, { 1, 51, 67 }, { 1, 16, 6 } | |
526 | + | |
527 | +}; |
@@ -155,486 +155,48 @@ typedef struct frame_contexts { | ||
155 | 155 | } FRAME_CONTEXT; |
156 | 156 | |
157 | 157 | |
158 | -static const struct tx_probs default_tx_probs = { | |
159 | - { { 100 }, | |
160 | - { 66 } }, | |
158 | +extern struct tx_probs default_tx_probs; | |
161 | 159 | |
162 | - { { 20, 152 }, | |
163 | - { 15, 101 } }, | |
160 | +extern vp9_prob default_skip_probs[SKIP_CONTEXTS]; | |
164 | 161 | |
165 | - { { 3, 136, 37 }, | |
166 | - { 5, 52, 13 } }, | |
167 | -}; | |
168 | - | |
169 | -static const vp9_prob default_skip_probs[SKIP_CONTEXTS] = { | |
170 | - 192, 128, 64 | |
171 | -}; | |
172 | - | |
173 | -static const vp9_prob default_inter_mode_probs[INTER_MODE_CONTEXTS] | |
174 | - [INTER_MODES - 1] = { | |
175 | - {2, 173, 34}, // 0 = both zero mv | |
176 | - {7, 145, 85}, // 1 = one zero mv + one a predicted mv | |
177 | - {7, 166, 63}, // 2 = two predicted mvs | |
178 | - {7, 94, 66}, // 3 = one predicted/zero and one new mv | |
179 | - {8, 64, 46}, // 4 = two new mvs | |
180 | - {17, 81, 31}, // 5 = one intra neighbour + x | |
181 | - {25, 29, 30}, // 6 = two intra neighbours | |
182 | -}; | |
183 | - | |
184 | -static const vp9_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS][SWITCHABLE_FILTERS - 1] = { | |
185 | - { 235, 162, }, | |
186 | - { 36, 255, }, | |
187 | - { 34, 3, }, | |
188 | - { 149, 144, }, | |
189 | -}; | |
190 | - | |
191 | -static const vp9_prob default_intra_inter_p[INTRA_INTER_CONTEXTS] = { | |
192 | - 9, 102, 187, 225 | |
193 | -}; | |
162 | +extern vp9_prob default_inter_mode_probs[INTER_MODE_CONTEXTS] | |
163 | + [INTER_MODES - 1]; | |
194 | 164 | |
195 | -static const vp9_prob default_comp_inter_p[COMP_INTER_CONTEXTS] = { | |
196 | - 239, 183, 119, 96, 41 | |
197 | -}; | |
165 | +extern vp9_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS] | |
166 | + [SWITCHABLE_FILTERS - 1]; | |
198 | 167 | |
199 | -static const vp9_prob default_single_ref_p[REF_CONTEXTS][2] = { | |
200 | - { 33, 16 }, | |
201 | - { 77, 74 }, | |
202 | - { 142, 142 }, | |
203 | - { 172, 170 }, | |
204 | - { 238, 247 } | |
205 | -}; | |
168 | +extern vp9_prob default_intra_inter_p[INTRA_INTER_CONTEXTS]; | |
206 | 169 | |
207 | -static const vp9_prob default_comp_ref_p[REF_CONTEXTS] = { | |
208 | - 50, 126, 123, 221, 226 | |
209 | -}; | |
170 | +extern vp9_prob default_comp_inter_p[COMP_INTER_CONTEXTS]; | |
210 | 171 | |
211 | -const vp9_prob vp9_kf_uv_mode_prob[INTRA_MODES][INTRA_MODES - 1] = { | |
212 | - { 144, 11, 54, 157, 195, 130, 46, 58, 108 }, // y = dc | |
213 | - { 118, 15, 123, 148, 131, 101, 44, 93, 131 }, // y = v | |
214 | - { 113, 12, 23, 188, 226, 142, 26, 32, 125 }, // y = h | |
215 | - { 120, 11, 50, 123, 163, 135, 64, 77, 103 }, // y = d45 | |
216 | - { 113, 9, 36, 155, 111, 157, 32, 44, 161 }, // y = d135 | |
217 | - { 116, 9, 55, 176, 76, 96, 37, 61, 149 }, // y = d117 | |
218 | - { 115, 9, 28, 141, 161, 167, 21, 25, 193 }, // y = d153 | |
219 | - { 120, 12, 32, 145, 195, 142, 32, 38, 86 }, // y = d207 | |
220 | - { 116, 12, 64, 120, 140, 125, 49, 115, 121 }, // y = d63 | |
221 | - { 102, 19, 66, 162, 182, 122, 35, 59, 128 } // y = tm | |
222 | -}; | |
172 | +extern vp9_prob default_single_ref_p[REF_CONTEXTS][2]; | |
223 | 173 | |
224 | -static const vp9_prob default_if_y_probs[BLOCK_SIZE_GROUPS][INTRA_MODES - 1] = { | |
225 | - { 65, 32, 18, 144, 162, 194, 41, 51, 98 }, // block_size < 8x8 | |
226 | - { 132, 68, 18, 165, 217, 196, 45, 40, 78 }, // block_size < 16x16 | |
227 | - { 173, 80, 19, 176, 240, 193, 64, 35, 46 }, // block_size < 32x32 | |
228 | - { 221, 135, 38, 194, 248, 121, 96, 85, 29 } // block_size >= 32x32 | |
229 | -}; | |
174 | +extern vp9_prob default_comp_ref_p[REF_CONTEXTS]; | |
230 | 175 | |
231 | -static const vp9_prob default_if_uv_probs[INTRA_MODES][INTRA_MODES - 1] = { | |
232 | - { 120, 7, 76, 176, 208, 126, 28, 54, 103 }, // y = dc | |
233 | - { 48, 12, 154, 155, 139, 90, 34, 117, 119 }, // y = v | |
234 | - { 67, 6, 25, 204, 243, 158, 13, 21, 96 }, // y = h | |
235 | - { 97, 5, 44, 131, 176, 139, 48, 68, 97 }, // y = d45 | |
236 | - { 83, 5, 42, 156, 111, 152, 26, 49, 152 }, // y = d135 | |
237 | - { 80, 5, 58, 178, 74, 83, 33, 62, 145 }, // y = d117 | |
238 | - { 86, 5, 32, 154, 192, 168, 14, 22, 163 }, // y = d153 | |
239 | - { 85, 5, 32, 156, 216, 148, 19, 29, 73 }, // y = d207 | |
240 | - { 77, 7, 64, 116, 132, 122, 37, 126, 120 }, // y = d63 | |
241 | - { 101, 21, 107, 181, 192, 103, 19, 67, 125 } // y = tm | |
242 | -}; | |
176 | +extern vp9_prob vp9_kf_uv_mode_prob[INTRA_MODES][INTRA_MODES - 1]; | |
243 | 177 | |
244 | -static const vp9_prob default_seg_tree_probs[SEG_TREE_PROBS] = { | |
245 | - 255, 255, 255, 255, 255, 255, 255 | |
246 | -}; | |
178 | +extern vp9_prob default_if_y_probs[BLOCK_SIZE_GROUPS][INTRA_MODES - 1]; | |
247 | 179 | |
248 | -static const vp9_prob default_seg_pred_probs[PREDICTION_PROBS] = { | |
249 | - 255, 255, 255 | |
250 | -}; | |
180 | +extern vp9_prob default_if_uv_probs[INTRA_MODES][INTRA_MODES - 1]; | |
251 | 181 | |
252 | -const vp9_prob vp9_kf_partition_probs[PARTITION_CONTEXTS] | |
253 | - [PARTITION_TYPES - 1] = { | |
254 | - // 8x8 -> 4x4 | |
255 | - { 158, 97, 94 }, // a/l both not split | |
256 | - { 93, 24, 99 }, // a split, l not split | |
257 | - { 85, 119, 44 }, // l split, a not split | |
258 | - { 62, 59, 67 }, // a/l both split | |
259 | - // 16x16 -> 8x8 | |
260 | - { 149, 53, 53 }, // a/l both not split | |
261 | - { 94, 20, 48 }, // a split, l not split | |
262 | - { 83, 53, 24 }, // l split, a not split | |
263 | - { 52, 18, 18 }, // a/l both split | |
264 | - // 32x32 -> 16x16 | |
265 | - { 150, 40, 39 }, // a/l both not split | |
266 | - { 78, 12, 26 }, // a split, l not split | |
267 | - { 67, 33, 11 }, // l split, a not split | |
268 | - { 24, 7, 5 }, // a/l both split | |
269 | - // 64x64 -> 32x32 | |
270 | - { 174, 35, 49 }, // a/l both not split | |
271 | - { 68, 11, 27 }, // a split, l not split | |
272 | - { 57, 15, 9 }, // l split, a not split | |
273 | - { 12, 3, 3 }, // a/l both split | |
274 | -}; | |
182 | +extern vp9_prob default_seg_tree_probs[SEG_TREE_PROBS]; | |
275 | 183 | |
276 | -static const vp9_prob default_partition_probs[PARTITION_CONTEXTS] | |
277 | - [PARTITION_TYPES - 1] = { | |
278 | - // 8x8 -> 4x4 | |
279 | - { 199, 122, 141 }, // a/l both not split | |
280 | - { 147, 63, 159 }, // a split, l not split | |
281 | - { 148, 133, 118 }, // l split, a not split | |
282 | - { 121, 104, 114 }, // a/l both split | |
283 | - // 16x16 -> 8x8 | |
284 | - { 174, 73, 87 }, // a/l both not split | |
285 | - { 92, 41, 83 }, // a split, l not split | |
286 | - { 82, 99, 50 }, // l split, a not split | |
287 | - { 53, 39, 39 }, // a/l both split | |
288 | - // 32x32 -> 16x16 | |
289 | - { 177, 58, 59 }, // a/l both not split | |
290 | - { 68, 26, 63 }, // a split, l not split | |
291 | - { 52, 79, 25 }, // l split, a not split | |
292 | - { 17, 14, 12 }, // a/l both split | |
293 | - // 64x64 -> 32x32 | |
294 | - { 222, 34, 30 }, // a/l both not split | |
295 | - { 72, 16, 44 }, // a split, l not split | |
296 | - { 58, 32, 12 }, // l split, a not split | |
297 | - { 10, 7, 6 }, // a/l both split | |
298 | -}; | |
184 | +extern vp9_prob default_seg_pred_probs[PREDICTION_PROBS]; | |
299 | 185 | |
300 | -//Rearranged the values for better usage | |
301 | -static const nmv_context default_nmv_context = { | |
302 | - {32, 64, 96}, | |
303 | - { | |
304 | - { // Vertical component | |
305 | - 128, // sign | |
306 | - {224, 144, 192, 168, 192, 176, 192, 198, 198, 245}, // class | |
307 | - {216}, // class0 | |
308 | - {136, 140, 148, 160, 176, 192, 224, 234, 234, 240}, // bits | |
309 | - }, | |
310 | - { // Horizontal component | |
311 | - 128, // sign | |
312 | - {216, 128, 176, 160, 176, 176, 192, 198, 198, 208}, // class | |
313 | - {208}, // class0 | |
314 | - {136, 140, 148, 160, 176, 192, 224, 234, 234, 240}, // bits | |
315 | - } | |
316 | - }, | |
317 | - {{128, 128, 64}, {96, 112, 64}}, // class0_fp0 | |
318 | - {64, 96, 64}, // fp0 | |
319 | - {{128, 128, 64}, {96, 112, 64}}, // class0_fp1 | |
320 | - {64, 96, 64}, // fp1 | |
321 | - {160, 128}, // class0_hp bit | |
322 | - {160, 128} // hp | |
186 | +extern vp9_prob vp9_kf_partition_probs[PARTITION_CONTEXTS] | |
187 | + [PARTITION_TYPES - 1]; | |
323 | 188 | |
324 | -}; | |
189 | +extern vp9_prob default_partition_probs[PARTITION_CONTEXTS] | |
190 | + [PARTITION_TYPES - 1]; | |
325 | 191 | |
326 | -//Rearranged the coeff probs for better usage | |
327 | -static const vp9_prob default_coef_probs_4x4[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { | |
328 | - // Y plane - Intra | |
329 | - // Band 0 | |
330 | - { 195, 29, 183 }, { 84, 49, 136 }, { 8, 42, 71 }, | |
331 | - // Band 1 | |
332 | - { 31, 107, 169 }, { 35, 99, 159 }, { 17, 82, 140 }, | |
333 | - { 8, 66, 114 }, { 2, 44, 76 }, { 1, 19, 32 }, | |
334 | - // Band 2 | |
335 | - { 40, 132, 201 }, { 29, 114, 187 }, { 13, 91, 157 }, | |
336 | - { 7, 75, 127 }, { 3, 58, 95 }, { 1, 28, 47 }, | |
337 | - // Band 3 | |
338 | - { 69, 142, 221 }, { 42, 122, 201 }, { 15, 91, 159 }, | |
339 | - { 6, 67, 121 }, { 1, 42, 77 }, { 1, 17, 31 }, | |
340 | - // Band 4 | |
341 | - { 102, 148, 228 }, { 67, 117, 204 }, { 17, 82, 154 }, | |
342 | - { 6, 59, 114 }, { 2, 39, 75 }, { 1, 15, 29 }, | |
343 | - // Band 5 | |
344 | - { 156, 57, 233 }, { 119, 57, 212 }, { 58, 48, 163 }, | |
345 | - { 29, 40, 124 }, { 12, 30, 81 }, { 3, 12, 31 }, | |
346 | - | |
347 | - // Y plane - Inter | |
348 | - // Band 0 | |
349 | - { 191, 107, 226 }, { 124, 117, 204 }, { 25, 99, 155 }, | |
350 | - // Band 1 | |
351 | - { 29, 148, 210 }, { 37, 126, 194 }, { 8, 93, 157 }, | |
352 | - { 2, 68, 118 }, { 1, 39, 69 }, { 1, 17, 33 }, | |
353 | - // Band 2 | |
354 | - { 41, 151, 213 }, { 27, 123, 193 }, { 3, 82, 144 }, | |
355 | - { 1, 58, 105 }, { 1, 32, 60 }, { 1, 13, 26 }, | |
356 | - // Band 3 | |
357 | - { 59, 159, 220 }, { 23, 126, 198 }, { 4, 88, 151 }, | |
358 | - { 1, 66, 114 }, { 1, 38, 71 }, { 1, 18, 34 }, | |
359 | - // Band 4 | |
360 | - { 114, 136, 232 }, { 51, 114, 207 }, { 11, 83, 155 }, | |
361 | - { 3, 56, 105 }, { 1, 33, 65 }, { 1, 17, 34 }, | |
362 | - // Band 5 | |
363 | - { 149, 65, 234 }, { 121, 57, 215 }, { 61, 49, 166 }, | |
364 | - { 28, 36, 114 }, { 12, 25, 76 }, { 3, 16, 42 }, | |
365 | - | |
366 | - // UV plane - Intra | |
367 | - // Band 0 | |
368 | - { 214, 49, 220 }, { 132, 63, 188 }, { 42, 65, 137 }, | |
369 | - // Band 1 | |
370 | - { 85, 137, 221 }, { 104, 131, 216 }, { 49, 111, 192 }, | |
371 | - { 21, 87, 155 }, { 2, 49, 87 }, { 1, 16, 28 }, | |
372 | - // Band 2 | |
373 | - { 89, 163, 230 }, { 90, 137, 220 }, { 29, 100, 183 }, | |
374 | - { 10, 70, 135 }, { 2, 42, 81 }, { 1, 17, 33 }, | |
375 | - // Band 3 | |
376 | - { 108, 167, 237 }, { 55, 133, 222 }, { 15, 97, 179 }, | |
377 | - { 4, 72, 135 }, { 1, 45, 85 }, { 1, 19, 38 }, | |
378 | - // Band 4 | |
379 | - { 124, 146, 240 }, { 66, 124, 224 }, { 17, 88, 175 }, | |
380 | - { 4, 58, 122 }, { 1, 36, 75 }, { 1, 18, 37 }, | |
381 | - // Band 5 | |
382 | - { 141, 79, 241 }, { 126, 70, 227 }, { 66, 58, 182 }, | |
383 | - { 30, 44, 136 }, { 12, 34, 96 }, { 2, 20, 47 }, | |
384 | - | |
385 | - // UV plane - Inter | |
386 | - // Band 0 | |
387 | - { 229, 99, 249 }, { 143, 111, 235 }, { 46, 109, 192 }, | |
388 | - // Band 1 | |
389 | - { 82, 158, 236 }, { 94, 146, 224 }, { 25, 117, 191 }, | |
390 | - { 9, 87, 149 }, { 3, 56, 99 }, { 1, 33, 57 }, | |
391 | - // Band 2 | |
392 | - { 83, 167, 237 }, { 68, 145, 222 }, { 10, 103, 177 }, | |
393 | - { 2, 72, 131 }, { 1, 41, 79 }, { 1, 20, 39 }, | |
394 | - // Band 3 | |
395 | - { 99, 167, 239 }, { 47, 141, 224 }, { 10, 104, 178 }, | |
396 | - { 2, 73, 133 }, { 1, 44, 85 }, { 1, 22, 47 }, | |
397 | - // Band 4 | |
398 | - { 127, 145, 243 }, { 71, 129, 228 }, { 17, 93, 177 }, | |
399 | - { 3, 61, 124 }, { 1, 41, 84 }, { 1, 21, 52 }, | |
400 | - // Band 5 | |
401 | - { 157, 78, 244 }, { 140, 72, 231 }, { 69, 58, 184 }, | |
402 | - { 31, 44, 137 }, { 14, 38, 105 }, { 8, 23, 61 } | |
403 | -}; | |
192 | +extern nmv_context default_nmv_context; | |
404 | 193 | |
405 | -static const vp9_prob default_coef_probs_8x8[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { | |
406 | - // Y plane - Intra | |
407 | - // Band 0 | |
408 | - { 125, 34, 187 }, { 52, 41, 133 }, { 6, 31, 56 }, | |
409 | - // Band 1 | |
410 | - { 37, 109, 153 }, { 51, 102, 147 }, { 23, 87, 128 }, | |
411 | - { 8, 67, 101 }, { 1, 41, 63 }, { 1, 19, 29 }, | |
412 | - // Band 2 | |
413 | - { 31, 154, 185 }, { 17, 127, 175 }, { 6, 96, 145 }, | |
414 | - { 2, 73, 114 }, { 1, 51, 82 }, { 1, 28, 45 }, | |
415 | - // Band 3 | |
416 | - { 23, 163, 200 }, { 10, 131, 185 }, { 2, 93, 148 }, | |
417 | - { 1, 67, 111 }, { 1, 41, 69 }, { 1, 14, 24 }, | |
418 | - // Band 4 | |
419 | - { 29, 176, 217 }, { 12, 145, 201 }, { 3, 101, 156 }, | |
420 | - { 1, 69, 111 }, { 1, 39, 63 }, { 1, 14, 23 }, | |
421 | - // Band 5 | |
422 | - { 57, 192, 233 }, { 25, 154, 215 }, { 6, 109, 167 }, | |
423 | - { 3, 78, 118 }, { 1, 48, 69 }, { 1, 21, 29 }, | |
424 | - | |
425 | - // Y plane - Inter | |
426 | - // Band 0 | |
427 | - { 202, 105, 245 }, { 108, 106, 216 }, { 18, 90, 144 }, | |
428 | - // Band 1 | |
429 | - { 33, 172, 219 }, { 64, 149, 206 }, { 14, 117, 177 }, | |
430 | - { 5, 90, 141 }, { 2, 61, 95 }, { 1, 37, 57 }, | |
431 | - // Band 2 | |
432 | - { 33, 179, 220 }, { 11, 140, 198 }, { 1, 89, 148 }, | |
433 | - { 1, 60, 104 }, { 1, 33, 57 }, { 1, 12, 21 }, | |
434 | - // Band 3 | |
435 | - { 30, 181, 221 }, { 8, 141, 198 }, { 1, 87, 145 }, | |
436 | - { 1, 58, 100 }, { 1, 31, 55 }, { 1, 12, 20 }, | |
437 | - // Band 4 | |
438 | - { 32, 186, 224 }, { 7, 142, 198 }, { 1, 86, 143 }, | |
439 | - { 1, 58, 100 }, { 1, 31, 55 }, { 1, 12, 22 }, | |
440 | - // Band 5 | |
441 | - { 57, 192, 227 }, { 20, 143, 204 }, { 3, 96, 154 }, | |
442 | - { 1, 68, 112 }, { 1, 42, 69 }, { 1, 19, 32 }, | |
443 | - | |
444 | - // UV plane - Intra | |
445 | - // Band 0 | |
446 | - { 212, 35, 215 }, { 113, 47, 169 }, { 29, 48, 105 }, | |
447 | - // Band 1 | |
448 | - { 74, 129, 203 }, { 106, 120, 203 }, { 49, 107, 178 }, | |
449 | - { 19, 84, 144 }, { 4, 50, 84 }, { 1, 15, 25 }, | |
450 | - // Band 2 | |
451 | - { 71, 172, 217 }, { 44, 141, 209 }, { 15, 102, 173 }, | |
452 | - { 6, 76, 133 }, { 2, 51, 89 }, { 1, 24, 42 }, | |
453 | - // Band 3 | |
454 | - { 64, 185, 231 }, { 31, 148, 216 }, { 8, 103, 175 }, | |
455 | - { 3, 74, 131 }, { 1, 46, 81 }, { 1, 18, 30 }, | |
456 | - // Band 4 | |
457 | - { 65, 196, 235 }, { 25, 157, 221 }, { 5, 105, 174 }, | |
458 | - { 1, 67, 120 }, { 1, 38, 69 }, { 1, 15, 30 }, | |
459 | - // Band 5 | |
460 | - { 65, 204, 238 }, { 30, 156, 224 }, { 7, 107, 177 }, | |
461 | - { 2, 70, 124 }, { 1, 42, 73 }, { 1, 18, 34 }, | |
462 | - | |
463 | - // UV Plane - Inter | |
464 | - // Band 0 | |
465 | - { 225, 86, 251 }, { 144, 104, 235 }, { 42, 99, 181 }, | |
466 | - // Band 1 | |
467 | - { 85, 175, 239 }, { 112, 165, 229 }, { 29, 136, 200 }, | |
468 | - { 12, 103, 162 }, { 6, 77, 123 }, { 2, 53, 84 }, | |
469 | - // Band 2 | |
470 | - { 75, 183, 239 }, { 30, 155, 221 }, { 3, 106, 171 }, | |
471 | - { 1, 74, 128 }, { 1, 44, 76 }, { 1, 17, 28 }, | |
472 | - // Band 3 | |
473 | - { 73, 185, 240 }, { 27, 159, 222 }, { 2, 107, 172 }, | |
474 | - { 1, 75, 127 }, { 1, 42, 73 }, { 1, 17, 29 }, | |
475 | - // Band 4 | |
476 | - { 62, 190, 238 }, { 21, 159, 222 }, { 2, 107, 172 }, | |
477 | - { 1, 72, 122 }, { 1, 40, 71 }, { 1, 18, 32 }, | |
478 | - // Band 5 | |
479 | - { 61, 199, 240 }, { 27, 161, 226 }, { 4, 113, 180 }, | |
480 | - { 1, 76, 129 }, { 1, 46, 80 }, { 1, 23, 41 } | |
481 | -}; | |
194 | +extern vp9_prob default_coef_probs_4x4[COEFF_PROB_SIZE][COEFF_PROB_NUM]; | |
482 | 195 | |
483 | -static const vp9_prob default_coef_probs_16x16[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { | |
484 | - // Y plane - Intra | |
485 | - // Band 0 | |
486 | - { 7, 27, 153 }, { 5, 30, 95 }, { 1, 16, 30 }, | |
487 | - // Band 1 | |
488 | - { 50, 75, 127 }, { 57, 75, 124 }, { 27, 67, 108 }, | |
489 | - { 10, 54, 86 }, { 1, 33, 52 }, { 1, 12, 18 }, | |
490 | - // Band 2 | |
491 | - { 43, 125, 151 }, { 26, 108, 148 }, { 7, 83, 122 }, | |
492 | - { 2, 59, 89 }, { 1, 38, 60 }, { 1, 17, 27 }, | |
493 | - // Band 3 | |
494 | - { 23, 144, 163 }, { 13, 112, 154 }, { 2, 75, 117 }, | |
495 | - { 1, 50, 81 }, { 1, 31, 51 }, { 1, 14, 23 }, | |
496 | - // Band 4 | |
497 | - { 18, 162, 185 }, { 6, 123, 171 }, { 1, 78, 125 }, | |
498 | - { 1, 51, 86 }, { 1, 31, 54 }, { 1, 14, 23 }, | |
499 | - // Band 5 | |
500 | - { 15, 199, 227 }, { 3, 150, 204 }, { 1, 91, 146 }, | |
501 | - { 1, 55, 95 }, { 1, 30, 53 }, { 1, 11, 20 }, | |
502 | - | |
503 | - // Y plane - Inter | |
504 | - // Band 0 | |
505 | - { 19, 55, 240 }, { 19, 59, 196 }, { 3, 52, 105 }, | |
506 | - // Band 1 | |
507 | - { 41, 166, 207 }, { 104, 153, 199 }, { 31, 123, 181 }, | |
508 | - { 14, 101, 152 }, { 5, 72, 106 }, { 1, 36, 52 }, | |
509 | - // Band 2 | |
510 | - { 35, 176, 211 }, { 12, 131, 190 }, { 2, 88, 144 }, | |
511 | - { 1, 60, 101 }, { 1, 36, 60 }, { 1, 16, 28 }, | |
512 | - // Band 3 | |
513 | - { 28, 183, 213 }, { 8, 134, 191 }, { 1, 86, 142 }, | |
514 | - { 1, 56, 96 }, { 1, 30, 53 }, { 1, 12, 20 }, | |
515 | - // Band 4 | |
516 | - { 20, 190, 215 }, { 4, 135, 192 }, { 1, 84, 139 }, | |
517 | - { 1, 53, 91 }, { 1, 28, 49 }, { 1, 11, 20 }, | |
518 | - // Band 5 | |
519 | - { 13, 196, 216 }, { 2, 137, 192 }, { 1, 86, 143 }, | |
520 | - { 1, 57, 99 }, { 1, 32, 56 }, { 1, 13, 24 }, | |
521 | - | |
522 | - // UV plane - Intra | |
523 | - // Band 0 | |
524 | - { 211, 29, 217 }, { 96, 47, 156 }, { 22, 43, 87 }, | |
525 | - // Band 1 | |
526 | - { 78, 120, 193 }, { 111, 116, 186 }, { 46, 102, 164 }, | |
527 | - { 15, 80, 128 }, { 2, 49, 76 }, { 1, 18, 28 }, | |
528 | - // Band 2 | |
529 | - { 71, 161, 203 }, { 42, 132, 192 }, { 10, 98, 150 }, | |
530 | - { 3, 69, 109 }, { 1, 44, 70 }, { 1, 18, 29 }, | |
531 | - // Band 3 | |
532 | - { 57, 186, 211 }, { 30, 140, 196 }, { 4, 93, 146 }, | |
533 | - { 1, 62, 102 }, { 1, 38, 65 }, { 1, 16, 27 }, | |
534 | - // Band 4 | |
535 | - { 47, 199, 217 }, { 14, 145, 196 }, { 1, 88, 142 }, | |
536 | - { 1, 57, 98 }, { 1, 36, 62 }, { 1, 15, 26 }, | |
537 | - // Band 5 | |
538 | - { 26, 219, 229 }, { 5, 155, 207 }, { 1, 94, 151 }, | |
539 | - { 1, 60, 104 }, { 1, 36, 62 }, { 1, 16, 28 }, | |
540 | - | |
541 | - // UV plane - Inter | |
542 | - // Band 0 | |
543 | - { 233, 29, 248 }, { 146, 47, 220 }, { 43, 52, 140 }, | |
544 | - // Band 1 | |
545 | - { 100, 163, 232 }, { 179, 161, 222 }, { 63, 142, 204 }, | |
546 | - { 37, 113, 174 }, { 26, 89, 137 }, { 18, 68, 97 }, | |
547 | - // Band 2 | |
548 | - { 85, 181, 230 }, { 32, 146, 209 }, { 7, 100, 164 }, | |
549 | - { 3, 71, 121 }, { 1, 45, 77 }, { 1, 18, 30 }, | |
550 | - // Band 3 | |
551 | - { 65, 187, 230 }, { 20, 148, 207 }, { 2, 97, 159 }, | |
552 | - { 1, 68, 116 }, { 1, 40, 70 }, { 1, 14, 29 }, | |
553 | - // Band 4 | |
554 | - { 40, 194, 227 }, { 8, 147, 204 }, { 1, 94, 155 }, | |
555 | - { 1, 65, 112 }, { 1, 39, 66 }, { 1, 14, 26 }, | |
556 | - // Band 5 | |
557 | - { 16, 208, 228 }, { 3, 151, 207 }, { 1, 98, 160 }, | |
558 | - { 1, 67, 117 }, { 1, 41, 74 }, { 1, 17, 31 } | |
559 | -}; | |
196 | +extern vp9_prob default_coef_probs_8x8[COEFF_PROB_SIZE][COEFF_PROB_NUM]; | |
560 | 197 | |
561 | -static const vp9_prob default_coef_probs_32x32[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { | |
562 | - // Y plane - Intra | |
563 | - // Band 0 | |
564 | - { 17, 38, 140 }, { 7, 34, 80 }, { 1, 17, 29 }, | |
565 | - // Band 1 | |
566 | - { 37, 75, 128 }, { 41, 76, 128 }, { 26, 66, 116 }, | |
567 | - { 12, 52, 94 }, { 2, 32, 55 }, { 1, 10, 16 }, | |
568 | - // Band 2 | |
569 | - { 50, 127, 154 }, { 37, 109, 152 }, { 16, 82, 121 }, | |
570 | - { 5, 59, 85 }, { 1, 35, 54 }, { 1, 13, 20 }, | |
571 | - //Band 3 | |
572 | - { 40, 142, 167 }, { 17, 110, 157 }, { 2, 71, 112 }, | |
573 | - { 1, 44, 72 }, { 1, 27, 45 }, { 1, 11, 17 }, | |
574 | - // Band 4 | |
575 | - { 30, 175, 188 }, { 9, 124, 169 }, { 1, 74, 116 }, | |
576 | - { 1, 48, 78 }, { 1, 30, 49 }, { 1, 11, 18 }, | |
577 | - // Band 5 | |
578 | - { 10, 222, 223 }, { 2, 150, 194 }, { 1, 83, 128 }, | |
579 | - { 1, 48, 79 }, { 1, 27, 45 }, { 1, 11, 17 }, | |
580 | - | |
581 | - // Y plane - Inter | |
582 | - // Band 0 | |
583 | - { 36, 41, 235 }, { 29, 36, 193 }, { 10, 27, 111 }, | |
584 | - // Band 1 | |
585 | - { 85, 165, 222 }, { 177, 162, 215 }, { 110, 135, 195 }, | |
586 | - { 57, 113, 168 }, { 23, 83, 120 }, { 10, 49, 61 }, | |
587 | - // Band 2 | |
588 | - { 85, 190, 223 }, { 36, 139, 200 }, { 5, 90, 146 }, | |
589 | - { 1, 60, 103 }, { 1, 38, 65 }, { 1, 18, 30 }, | |
590 | - // Band 3 | |
591 | - { 72, 202, 223 }, { 23, 141, 199 }, { 2, 86, 140 }, | |
592 | - { 1, 56, 97 }, { 1, 36, 61 }, { 1, 16, 27 }, | |
593 | - // Band 4 | |
594 | - { 55, 218, 225 }, { 13, 145, 200 }, { 1, 86, 141 }, | |
595 | - { 1, 57, 99 }, { 1, 35, 61 }, { 1, 13, 22 }, | |
596 | - // Band 5 | |
597 | - { 15, 235, 212 }, { 1, 132, 184 }, { 1, 84, 139 }, | |
598 | - { 1, 57, 97 }, { 1, 34, 56 }, { 1, 14, 23 }, | |
599 | - | |
600 | - // UV plane - Intra | |
601 | - // Band 0 | |
602 | - { 181, 21, 201 }, { 61, 37, 123 }, { 10, 38, 71 }, | |
603 | - // Band 1 | |
604 | - { 47, 106, 172 }, { 95, 104, 173 }, { 42, 93, 159 }, | |
605 | - { 18, 77, 131 }, { 4, 50, 81 }, { 1, 17, 23 }, | |
606 | - // Band 2 | |
607 | - { 62, 147, 199 }, { 44, 130, 189 }, { 28, 102, 154 }, | |
608 | - { 18, 75, 115 }, { 2, 44, 65 }, { 1, 12, 19 }, | |
609 | - // Band 3 | |
610 | - { 55, 153, 210 }, { 24, 130, 194 }, { 3, 93, 146 }, | |
611 | - { 1, 61, 97 }, { 1, 31, 50 }, { 1, 10, 16 }, | |
612 | - // Band 4 | |
613 | - { 49, 186, 223 }, { 17, 148, 204 }, { 1, 96, 142 }, | |
614 | - { 1, 53, 83 }, { 1, 26, 44 }, { 1, 11, 17 }, | |
615 | - // Band 5 | |
616 | - { 13, 217, 212 }, { 2, 136, 180 }, { 1, 78, 124 }, | |
617 | - { 1, 50, 83 }, { 1, 29, 49 }, { 1, 14, 23 }, | |
618 | - | |
619 | - // UV plane - Inter | |
620 | - // Band 0 | |
621 | - { 197, 13, 247 }, { 82, 17, 222 }, { 25, 17, 162 }, | |
622 | - // Band 1 | |
623 | - { 126, 186, 247 }, { 234, 191, 243 }, { 176, 177, 234 }, | |
624 | - { 104, 158, 220 }, { 66, 128, 186 }, { 55, 90, 137 }, | |
625 | - // Band 2 | |
626 | - { 111, 197, 242 }, { 46, 158, 219 }, { 9, 104, 171 }, | |
627 | - { 2, 65, 125 }, { 1, 44, 80 }, { 1, 17, 91 }, | |
628 | - // Band 3 | |
629 | - { 104, 208, 245 }, { 39, 168, 224 }, { 3, 109, 162 }, | |
630 | - { 1, 79, 124 }, { 1, 50, 102 }, { 1, 43, 102 }, | |
631 | - // Band 4 | |
632 | - { 84, 220, 246 }, { 31, 177, 231 }, { 2, 115, 180 }, | |
633 | - { 1, 79, 134 }, { 1, 55, 77 }, { 1, 60, 79 }, | |
634 | - // Band 5 | |
635 | - { 43, 243, 240 }, { 8, 180, 217 }, { 1, 115, 166 }, | |
636 | - { 1, 84, 121 }, { 1, 51, 67 }, { 1, 16, 6 } | |
198 | +extern vp9_prob default_coef_probs_16x16[COEFF_PROB_SIZE][COEFF_PROB_NUM]; | |
637 | 199 | |
638 | -}; | |
200 | +extern vp9_prob default_coef_probs_32x32[COEFF_PROB_SIZE][COEFF_PROB_NUM]; | |
639 | 201 | |
640 | 202 | #endif /*VP9_PROBS_H */ |