/src/mozilla-central/third_party/aom/aom_dsp/prob.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright (c) 2016, Alliance for Open Media. All rights reserved |
3 | | * |
4 | | * 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. |
10 | | */ |
11 | | |
12 | | #ifndef AOM_AOM_DSP_PROB_H_ |
13 | | #define AOM_AOM_DSP_PROB_H_ |
14 | | |
15 | | #include <assert.h> |
16 | | #include <stdio.h> |
17 | | |
18 | | #include "config/aom_config.h" |
19 | | |
20 | | #include "aom_dsp/aom_dsp_common.h" |
21 | | #include "aom_dsp/entcode.h" |
22 | | #include "aom_ports/bitops.h" |
23 | | #include "aom_ports/mem.h" |
24 | | |
25 | | #ifdef __cplusplus |
26 | | extern "C" { |
27 | | #endif |
28 | | |
29 | | // TODO(negge): Rename this aom_prob once we remove vpxbool. |
30 | | typedef uint16_t aom_cdf_prob; |
31 | | |
32 | | #define CDF_SIZE(x) ((x) + 1) |
33 | 0 | #define CDF_PROB_BITS 15 |
34 | 0 | #define CDF_PROB_TOP (1 << CDF_PROB_BITS) |
35 | | #define CDF_INIT_TOP 32768 |
36 | 0 | #define CDF_SHIFT (15 - CDF_PROB_BITS) |
37 | | /*The value stored in an iCDF is CDF_PROB_TOP minus the actual cumulative |
38 | | probability (an "inverse" CDF). |
39 | | This function converts from one representation to the other (and is its own |
40 | | inverse).*/ |
41 | 0 | #define AOM_ICDF(x) (CDF_PROB_TOP - (x)) |
42 | | |
43 | | #if CDF_SHIFT == 0 |
44 | | |
45 | | #define AOM_CDF2(a0) AOM_ICDF(a0), AOM_ICDF(CDF_PROB_TOP), 0 |
46 | | #define AOM_CDF3(a0, a1) AOM_ICDF(a0), AOM_ICDF(a1), AOM_ICDF(CDF_PROB_TOP), 0 |
47 | | #define AOM_CDF4(a0, a1, a2) \ |
48 | | AOM_ICDF(a0), AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(CDF_PROB_TOP), 0 |
49 | | #define AOM_CDF5(a0, a1, a2, a3) \ |
50 | | AOM_ICDF(a0) \ |
51 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(CDF_PROB_TOP), 0 |
52 | | #define AOM_CDF6(a0, a1, a2, a3, a4) \ |
53 | | AOM_ICDF(a0) \ |
54 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), \ |
55 | | AOM_ICDF(CDF_PROB_TOP), 0 |
56 | | #define AOM_CDF7(a0, a1, a2, a3, a4, a5) \ |
57 | | AOM_ICDF(a0) \ |
58 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
59 | | AOM_ICDF(CDF_PROB_TOP), 0 |
60 | | #define AOM_CDF8(a0, a1, a2, a3, a4, a5, a6) \ |
61 | | AOM_ICDF(a0) \ |
62 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
63 | | AOM_ICDF(a6), AOM_ICDF(CDF_PROB_TOP), 0 |
64 | | #define AOM_CDF9(a0, a1, a2, a3, a4, a5, a6, a7) \ |
65 | | AOM_ICDF(a0) \ |
66 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
67 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(CDF_PROB_TOP), 0 |
68 | | #define AOM_CDF10(a0, a1, a2, a3, a4, a5, a6, a7, a8) \ |
69 | | AOM_ICDF(a0) \ |
70 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
71 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(a8), AOM_ICDF(CDF_PROB_TOP), 0 |
72 | | #define AOM_CDF11(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) \ |
73 | | AOM_ICDF(a0) \ |
74 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
75 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(a8), AOM_ICDF(a9), \ |
76 | | AOM_ICDF(CDF_PROB_TOP), 0 |
77 | | #define AOM_CDF12(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \ |
78 | | AOM_ICDF(a0) \ |
79 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
80 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(a8), AOM_ICDF(a9), AOM_ICDF(a10), \ |
81 | | AOM_ICDF(CDF_PROB_TOP), 0 |
82 | | #define AOM_CDF13(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) \ |
83 | | AOM_ICDF(a0) \ |
84 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
85 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(a8), AOM_ICDF(a9), AOM_ICDF(a10), \ |
86 | | AOM_ICDF(a11), AOM_ICDF(CDF_PROB_TOP), 0 |
87 | | #define AOM_CDF14(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) \ |
88 | | AOM_ICDF(a0) \ |
89 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
90 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(a8), AOM_ICDF(a9), AOM_ICDF(a10), \ |
91 | | AOM_ICDF(a11), AOM_ICDF(a12), AOM_ICDF(CDF_PROB_TOP), 0 |
92 | | #define AOM_CDF15(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) \ |
93 | | AOM_ICDF(a0) \ |
94 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
95 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(a8), AOM_ICDF(a9), AOM_ICDF(a10), \ |
96 | | AOM_ICDF(a11), AOM_ICDF(a12), AOM_ICDF(a13), AOM_ICDF(CDF_PROB_TOP), 0 |
97 | | #define AOM_CDF16(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \ |
98 | | a14) \ |
99 | | AOM_ICDF(a0) \ |
100 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
101 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(a8), AOM_ICDF(a9), AOM_ICDF(a10), \ |
102 | | AOM_ICDF(a11), AOM_ICDF(a12), AOM_ICDF(a13), AOM_ICDF(a14), \ |
103 | | AOM_ICDF(CDF_PROB_TOP), 0 |
104 | | |
105 | | #else |
106 | | #define AOM_CDF2(a0) \ |
107 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 2) + \ |
108 | | ((CDF_INIT_TOP - 2) >> 1)) / \ |
109 | | ((CDF_INIT_TOP - 2)) + \ |
110 | | 1) \ |
111 | | , AOM_ICDF(CDF_PROB_TOP), 0 |
112 | | #define AOM_CDF3(a0, a1) \ |
113 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 3) + \ |
114 | | ((CDF_INIT_TOP - 3) >> 1)) / \ |
115 | | ((CDF_INIT_TOP - 3)) + \ |
116 | | 1) \ |
117 | | , \ |
118 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 3) + \ |
119 | | ((CDF_INIT_TOP - 3) >> 1)) / \ |
120 | | ((CDF_INIT_TOP - 3)) + \ |
121 | | 2), \ |
122 | | AOM_ICDF(CDF_PROB_TOP), 0 |
123 | | #define AOM_CDF4(a0, a1, a2) \ |
124 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 4) + \ |
125 | | ((CDF_INIT_TOP - 4) >> 1)) / \ |
126 | | ((CDF_INIT_TOP - 4)) + \ |
127 | | 1) \ |
128 | | , \ |
129 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 4) + \ |
130 | | ((CDF_INIT_TOP - 4) >> 1)) / \ |
131 | | ((CDF_INIT_TOP - 4)) + \ |
132 | | 2), \ |
133 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 4) + \ |
134 | | ((CDF_INIT_TOP - 4) >> 1)) / \ |
135 | | ((CDF_INIT_TOP - 4)) + \ |
136 | | 3), \ |
137 | | AOM_ICDF(CDF_PROB_TOP), 0 |
138 | | #define AOM_CDF5(a0, a1, a2, a3) \ |
139 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 5) + \ |
140 | | ((CDF_INIT_TOP - 5) >> 1)) / \ |
141 | | ((CDF_INIT_TOP - 5)) + \ |
142 | | 1) \ |
143 | | , \ |
144 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 5) + \ |
145 | | ((CDF_INIT_TOP - 5) >> 1)) / \ |
146 | | ((CDF_INIT_TOP - 5)) + \ |
147 | | 2), \ |
148 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 5) + \ |
149 | | ((CDF_INIT_TOP - 5) >> 1)) / \ |
150 | | ((CDF_INIT_TOP - 5)) + \ |
151 | | 3), \ |
152 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 5) + \ |
153 | | ((CDF_INIT_TOP - 5) >> 1)) / \ |
154 | | ((CDF_INIT_TOP - 5)) + \ |
155 | | 4), \ |
156 | | AOM_ICDF(CDF_PROB_TOP), 0 |
157 | | #define AOM_CDF6(a0, a1, a2, a3, a4) \ |
158 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 6) + \ |
159 | | ((CDF_INIT_TOP - 6) >> 1)) / \ |
160 | | ((CDF_INIT_TOP - 6)) + \ |
161 | | 1) \ |
162 | | , \ |
163 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 6) + \ |
164 | | ((CDF_INIT_TOP - 6) >> 1)) / \ |
165 | | ((CDF_INIT_TOP - 6)) + \ |
166 | | 2), \ |
167 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 6) + \ |
168 | | ((CDF_INIT_TOP - 6) >> 1)) / \ |
169 | | ((CDF_INIT_TOP - 6)) + \ |
170 | | 3), \ |
171 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 6) + \ |
172 | | ((CDF_INIT_TOP - 6) >> 1)) / \ |
173 | | ((CDF_INIT_TOP - 6)) + \ |
174 | | 4), \ |
175 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 6) + \ |
176 | | ((CDF_INIT_TOP - 6) >> 1)) / \ |
177 | | ((CDF_INIT_TOP - 6)) + \ |
178 | | 5), \ |
179 | | AOM_ICDF(CDF_PROB_TOP), 0 |
180 | | #define AOM_CDF7(a0, a1, a2, a3, a4, a5) \ |
181 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 7) + \ |
182 | | ((CDF_INIT_TOP - 7) >> 1)) / \ |
183 | | ((CDF_INIT_TOP - 7)) + \ |
184 | | 1) \ |
185 | | , \ |
186 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 7) + \ |
187 | | ((CDF_INIT_TOP - 7) >> 1)) / \ |
188 | | ((CDF_INIT_TOP - 7)) + \ |
189 | | 2), \ |
190 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 7) + \ |
191 | | ((CDF_INIT_TOP - 7) >> 1)) / \ |
192 | | ((CDF_INIT_TOP - 7)) + \ |
193 | | 3), \ |
194 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 7) + \ |
195 | | ((CDF_INIT_TOP - 7) >> 1)) / \ |
196 | | ((CDF_INIT_TOP - 7)) + \ |
197 | | 4), \ |
198 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 7) + \ |
199 | | ((CDF_INIT_TOP - 7) >> 1)) / \ |
200 | | ((CDF_INIT_TOP - 7)) + \ |
201 | | 5), \ |
202 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 7) + \ |
203 | | ((CDF_INIT_TOP - 7) >> 1)) / \ |
204 | | ((CDF_INIT_TOP - 7)) + \ |
205 | | 6), \ |
206 | | AOM_ICDF(CDF_PROB_TOP), 0 |
207 | | #define AOM_CDF8(a0, a1, a2, a3, a4, a5, a6) \ |
208 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 8) + \ |
209 | | ((CDF_INIT_TOP - 8) >> 1)) / \ |
210 | | ((CDF_INIT_TOP - 8)) + \ |
211 | | 1) \ |
212 | | , \ |
213 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 8) + \ |
214 | | ((CDF_INIT_TOP - 8) >> 1)) / \ |
215 | | ((CDF_INIT_TOP - 8)) + \ |
216 | | 2), \ |
217 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 8) + \ |
218 | | ((CDF_INIT_TOP - 8) >> 1)) / \ |
219 | | ((CDF_INIT_TOP - 8)) + \ |
220 | | 3), \ |
221 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 8) + \ |
222 | | ((CDF_INIT_TOP - 8) >> 1)) / \ |
223 | | ((CDF_INIT_TOP - 8)) + \ |
224 | | 4), \ |
225 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 8) + \ |
226 | | ((CDF_INIT_TOP - 8) >> 1)) / \ |
227 | | ((CDF_INIT_TOP - 8)) + \ |
228 | | 5), \ |
229 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 8) + \ |
230 | | ((CDF_INIT_TOP - 8) >> 1)) / \ |
231 | | ((CDF_INIT_TOP - 8)) + \ |
232 | | 6), \ |
233 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 8) + \ |
234 | | ((CDF_INIT_TOP - 8) >> 1)) / \ |
235 | | ((CDF_INIT_TOP - 8)) + \ |
236 | | 7), \ |
237 | | AOM_ICDF(CDF_PROB_TOP), 0 |
238 | | #define AOM_CDF9(a0, a1, a2, a3, a4, a5, a6, a7) \ |
239 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
240 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
241 | | ((CDF_INIT_TOP - 9)) + \ |
242 | | 1) \ |
243 | | , \ |
244 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
245 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
246 | | ((CDF_INIT_TOP - 9)) + \ |
247 | | 2), \ |
248 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
249 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
250 | | ((CDF_INIT_TOP - 9)) + \ |
251 | | 3), \ |
252 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
253 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
254 | | ((CDF_INIT_TOP - 9)) + \ |
255 | | 4), \ |
256 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
257 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
258 | | ((CDF_INIT_TOP - 9)) + \ |
259 | | 5), \ |
260 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
261 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
262 | | ((CDF_INIT_TOP - 9)) + \ |
263 | | 6), \ |
264 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
265 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
266 | | ((CDF_INIT_TOP - 9)) + \ |
267 | | 7), \ |
268 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
269 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
270 | | ((CDF_INIT_TOP - 9)) + \ |
271 | | 8), \ |
272 | | AOM_ICDF(CDF_PROB_TOP), 0 |
273 | | #define AOM_CDF10(a0, a1, a2, a3, a4, a5, a6, a7, a8) \ |
274 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
275 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
276 | | ((CDF_INIT_TOP - 10)) + \ |
277 | | 1) \ |
278 | | , \ |
279 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
280 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
281 | | ((CDF_INIT_TOP - 10)) + \ |
282 | | 2), \ |
283 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
284 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
285 | | ((CDF_INIT_TOP - 10)) + \ |
286 | | 3), \ |
287 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
288 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
289 | | ((CDF_INIT_TOP - 10)) + \ |
290 | | 4), \ |
291 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
292 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
293 | | ((CDF_INIT_TOP - 10)) + \ |
294 | | 5), \ |
295 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
296 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
297 | | ((CDF_INIT_TOP - 10)) + \ |
298 | | 6), \ |
299 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
300 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
301 | | ((CDF_INIT_TOP - 10)) + \ |
302 | | 7), \ |
303 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
304 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
305 | | ((CDF_INIT_TOP - 10)) + \ |
306 | | 8), \ |
307 | | AOM_ICDF((((a8)-9) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
308 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
309 | | ((CDF_INIT_TOP - 10)) + \ |
310 | | 9), \ |
311 | | AOM_ICDF(CDF_PROB_TOP), 0 |
312 | | #define AOM_CDF11(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) \ |
313 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
314 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
315 | | ((CDF_INIT_TOP - 11)) + \ |
316 | | 1) \ |
317 | | , \ |
318 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
319 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
320 | | ((CDF_INIT_TOP - 11)) + \ |
321 | | 2), \ |
322 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
323 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
324 | | ((CDF_INIT_TOP - 11)) + \ |
325 | | 3), \ |
326 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
327 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
328 | | ((CDF_INIT_TOP - 11)) + \ |
329 | | 4), \ |
330 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
331 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
332 | | ((CDF_INIT_TOP - 11)) + \ |
333 | | 5), \ |
334 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
335 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
336 | | ((CDF_INIT_TOP - 11)) + \ |
337 | | 6), \ |
338 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
339 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
340 | | ((CDF_INIT_TOP - 11)) + \ |
341 | | 7), \ |
342 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
343 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
344 | | ((CDF_INIT_TOP - 11)) + \ |
345 | | 8), \ |
346 | | AOM_ICDF((((a8)-9) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
347 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
348 | | ((CDF_INIT_TOP - 11)) + \ |
349 | | 9), \ |
350 | | AOM_ICDF((((a9)-10) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
351 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
352 | | ((CDF_INIT_TOP - 11)) + \ |
353 | | 10), \ |
354 | | AOM_ICDF(CDF_PROB_TOP), 0 |
355 | | #define AOM_CDF12(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \ |
356 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
357 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
358 | | ((CDF_INIT_TOP - 12)) + \ |
359 | | 1) \ |
360 | | , \ |
361 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
362 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
363 | | ((CDF_INIT_TOP - 12)) + \ |
364 | | 2), \ |
365 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
366 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
367 | | ((CDF_INIT_TOP - 12)) + \ |
368 | | 3), \ |
369 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
370 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
371 | | ((CDF_INIT_TOP - 12)) + \ |
372 | | 4), \ |
373 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
374 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
375 | | ((CDF_INIT_TOP - 12)) + \ |
376 | | 5), \ |
377 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
378 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
379 | | ((CDF_INIT_TOP - 12)) + \ |
380 | | 6), \ |
381 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
382 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
383 | | ((CDF_INIT_TOP - 12)) + \ |
384 | | 7), \ |
385 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
386 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
387 | | ((CDF_INIT_TOP - 12)) + \ |
388 | | 8), \ |
389 | | AOM_ICDF((((a8)-9) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
390 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
391 | | ((CDF_INIT_TOP - 12)) + \ |
392 | | 9), \ |
393 | | AOM_ICDF((((a9)-10) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
394 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
395 | | ((CDF_INIT_TOP - 12)) + \ |
396 | | 10), \ |
397 | | AOM_ICDF((((a10)-11) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
398 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
399 | | ((CDF_INIT_TOP - 12)) + \ |
400 | | 11), \ |
401 | | AOM_ICDF(CDF_PROB_TOP), 0 |
402 | | #define AOM_CDF13(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) \ |
403 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
404 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
405 | | ((CDF_INIT_TOP - 13)) + \ |
406 | | 1) \ |
407 | | , \ |
408 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
409 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
410 | | ((CDF_INIT_TOP - 13)) + \ |
411 | | 2), \ |
412 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
413 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
414 | | ((CDF_INIT_TOP - 13)) + \ |
415 | | 3), \ |
416 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
417 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
418 | | ((CDF_INIT_TOP - 13)) + \ |
419 | | 4), \ |
420 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
421 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
422 | | ((CDF_INIT_TOP - 13)) + \ |
423 | | 5), \ |
424 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
425 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
426 | | ((CDF_INIT_TOP - 13)) + \ |
427 | | 6), \ |
428 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
429 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
430 | | ((CDF_INIT_TOP - 13)) + \ |
431 | | 7), \ |
432 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
433 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
434 | | ((CDF_INIT_TOP - 13)) + \ |
435 | | 8), \ |
436 | | AOM_ICDF((((a8)-9) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
437 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
438 | | ((CDF_INIT_TOP - 13)) + \ |
439 | | 9), \ |
440 | | AOM_ICDF((((a9)-10) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
441 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
442 | | ((CDF_INIT_TOP - 13)) + \ |
443 | | 10), \ |
444 | | AOM_ICDF((((a10)-11) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
445 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
446 | | ((CDF_INIT_TOP - 13)) + \ |
447 | | 11), \ |
448 | | AOM_ICDF((((a11)-12) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
449 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
450 | | ((CDF_INIT_TOP - 13)) + \ |
451 | | 12), \ |
452 | | AOM_ICDF(CDF_PROB_TOP), 0 |
453 | | #define AOM_CDF14(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) \ |
454 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
455 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
456 | | ((CDF_INIT_TOP - 14)) + \ |
457 | | 1) \ |
458 | | , \ |
459 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
460 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
461 | | ((CDF_INIT_TOP - 14)) + \ |
462 | | 2), \ |
463 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
464 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
465 | | ((CDF_INIT_TOP - 14)) + \ |
466 | | 3), \ |
467 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
468 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
469 | | ((CDF_INIT_TOP - 14)) + \ |
470 | | 4), \ |
471 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
472 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
473 | | ((CDF_INIT_TOP - 14)) + \ |
474 | | 5), \ |
475 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
476 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
477 | | ((CDF_INIT_TOP - 14)) + \ |
478 | | 6), \ |
479 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
480 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
481 | | ((CDF_INIT_TOP - 14)) + \ |
482 | | 7), \ |
483 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
484 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
485 | | ((CDF_INIT_TOP - 14)) + \ |
486 | | 8), \ |
487 | | AOM_ICDF((((a8)-9) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
488 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
489 | | ((CDF_INIT_TOP - 14)) + \ |
490 | | 9), \ |
491 | | AOM_ICDF((((a9)-10) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
492 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
493 | | ((CDF_INIT_TOP - 14)) + \ |
494 | | 10), \ |
495 | | AOM_ICDF((((a10)-11) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
496 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
497 | | ((CDF_INIT_TOP - 14)) + \ |
498 | | 11), \ |
499 | | AOM_ICDF((((a11)-12) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
500 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
501 | | ((CDF_INIT_TOP - 14)) + \ |
502 | | 12), \ |
503 | | AOM_ICDF((((a12)-13) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
504 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
505 | | ((CDF_INIT_TOP - 14)) + \ |
506 | | 13), \ |
507 | | AOM_ICDF(CDF_PROB_TOP), 0 |
508 | | #define AOM_CDF15(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) \ |
509 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
510 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
511 | | ((CDF_INIT_TOP - 15)) + \ |
512 | | 1) \ |
513 | | , \ |
514 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
515 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
516 | | ((CDF_INIT_TOP - 15)) + \ |
517 | | 2), \ |
518 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
519 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
520 | | ((CDF_INIT_TOP - 15)) + \ |
521 | | 3), \ |
522 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
523 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
524 | | ((CDF_INIT_TOP - 15)) + \ |
525 | | 4), \ |
526 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
527 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
528 | | ((CDF_INIT_TOP - 15)) + \ |
529 | | 5), \ |
530 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
531 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
532 | | ((CDF_INIT_TOP - 15)) + \ |
533 | | 6), \ |
534 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
535 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
536 | | ((CDF_INIT_TOP - 15)) + \ |
537 | | 7), \ |
538 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
539 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
540 | | ((CDF_INIT_TOP - 15)) + \ |
541 | | 8), \ |
542 | | AOM_ICDF((((a8)-9) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
543 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
544 | | ((CDF_INIT_TOP - 15)) + \ |
545 | | 9), \ |
546 | | AOM_ICDF((((a9)-10) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
547 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
548 | | ((CDF_INIT_TOP - 15)) + \ |
549 | | 10), \ |
550 | | AOM_ICDF((((a10)-11) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
551 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
552 | | ((CDF_INIT_TOP - 15)) + \ |
553 | | 11), \ |
554 | | AOM_ICDF((((a11)-12) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
555 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
556 | | ((CDF_INIT_TOP - 15)) + \ |
557 | | 12), \ |
558 | | AOM_ICDF((((a12)-13) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
559 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
560 | | ((CDF_INIT_TOP - 15)) + \ |
561 | | 13), \ |
562 | | AOM_ICDF((((a13)-14) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
563 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
564 | | ((CDF_INIT_TOP - 15)) + \ |
565 | | 14), \ |
566 | | AOM_ICDF(CDF_PROB_TOP), 0 |
567 | | #define AOM_CDF16(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \ |
568 | | a14) \ |
569 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
570 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
571 | | ((CDF_INIT_TOP - 16)) + \ |
572 | | 1) \ |
573 | | , \ |
574 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
575 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
576 | | ((CDF_INIT_TOP - 16)) + \ |
577 | | 2), \ |
578 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
579 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
580 | | ((CDF_INIT_TOP - 16)) + \ |
581 | | 3), \ |
582 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
583 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
584 | | ((CDF_INIT_TOP - 16)) + \ |
585 | | 4), \ |
586 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
587 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
588 | | ((CDF_INIT_TOP - 16)) + \ |
589 | | 5), \ |
590 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
591 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
592 | | ((CDF_INIT_TOP - 16)) + \ |
593 | | 6), \ |
594 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
595 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
596 | | ((CDF_INIT_TOP - 16)) + \ |
597 | | 7), \ |
598 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
599 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
600 | | ((CDF_INIT_TOP - 16)) + \ |
601 | | 8), \ |
602 | | AOM_ICDF((((a8)-9) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
603 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
604 | | ((CDF_INIT_TOP - 16)) + \ |
605 | | 9), \ |
606 | | AOM_ICDF((((a9)-10) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
607 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
608 | | ((CDF_INIT_TOP - 16)) + \ |
609 | | 10), \ |
610 | | AOM_ICDF((((a10)-11) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
611 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
612 | | ((CDF_INIT_TOP - 16)) + \ |
613 | | 11), \ |
614 | | AOM_ICDF((((a11)-12) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
615 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
616 | | ((CDF_INIT_TOP - 16)) + \ |
617 | | 12), \ |
618 | | AOM_ICDF((((a12)-13) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
619 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
620 | | ((CDF_INIT_TOP - 16)) + \ |
621 | | 13), \ |
622 | | AOM_ICDF((((a13)-14) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
623 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
624 | | ((CDF_INIT_TOP - 16)) + \ |
625 | | 14), \ |
626 | | AOM_ICDF((((a14)-15) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
627 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
628 | | ((CDF_INIT_TOP - 16)) + \ |
629 | | 15), \ |
630 | | AOM_ICDF(CDF_PROB_TOP), 0 |
631 | | |
632 | | #endif |
633 | | |
634 | 0 | static INLINE uint8_t get_prob(unsigned int num, unsigned int den) { |
635 | 0 | assert(den != 0); |
636 | 0 | { |
637 | 0 | const int p = (int)(((uint64_t)num * 256 + (den >> 1)) / den); |
638 | 0 | // (p > 255) ? 255 : (p < 1) ? 1 : p; |
639 | 0 | const int clipped_prob = p | ((255 - p) >> 23) | (p == 0); |
640 | 0 | return (uint8_t)clipped_prob; |
641 | 0 | } |
642 | 0 | } Unexecuted instantiation: aom_convolve.c:get_prob Unexecuted instantiation: aom_dsp_rtcd.c:get_prob Unexecuted instantiation: binary_codes_reader.c:get_prob Unexecuted instantiation: blend_a64_hmask.c:get_prob Unexecuted instantiation: blend_a64_mask.c:get_prob Unexecuted instantiation: blend_a64_vmask.c:get_prob Unexecuted instantiation: daalaboolreader.c:get_prob Unexecuted instantiation: entcode.c:get_prob Unexecuted instantiation: entdec.c:get_prob Unexecuted instantiation: intrapred.c:get_prob Unexecuted instantiation: loopfilter.c:get_prob Unexecuted instantiation: subtract.c:get_prob Unexecuted instantiation: aom_asm_stubs.c:get_prob Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:get_prob Unexecuted instantiation: aom_subpixel_8t_intrin_ssse3.c:get_prob Unexecuted instantiation: blend_a64_hmask_sse4.c:get_prob Unexecuted instantiation: blend_a64_mask_avx2.c:get_prob Unexecuted instantiation: blend_a64_mask_sse4.c:get_prob Unexecuted instantiation: blend_a64_vmask_sse4.c:get_prob Unexecuted instantiation: highbd_convolve_avx2.c:get_prob Unexecuted instantiation: highbd_convolve_ssse3.c:get_prob Unexecuted instantiation: highbd_intrapred_sse2.c:get_prob Unexecuted instantiation: highbd_loopfilter_avx2.c:get_prob Unexecuted instantiation: highbd_loopfilter_sse2.c:get_prob Unexecuted instantiation: intrapred_avx2.c:get_prob Unexecuted instantiation: intrapred_sse2.c:get_prob Unexecuted instantiation: intrapred_ssse3.c:get_prob Unexecuted instantiation: loopfilter_sse2.c:get_prob Unexecuted instantiation: debug_util.c:get_prob Unexecuted instantiation: av1_dx_iface.c:get_prob Unexecuted instantiation: alloccommon.c:get_prob Unexecuted instantiation: av1_inv_txfm1d.c:get_prob Unexecuted instantiation: av1_inv_txfm2d.c:get_prob Unexecuted instantiation: av1_loopfilter.c:get_prob Unexecuted instantiation: av1_rtcd.c:get_prob Unexecuted instantiation: av1_txfm.c:get_prob Unexecuted instantiation: blockd.c:get_prob Unexecuted instantiation: cdef.c:get_prob Unexecuted instantiation: cdef_block.c:get_prob Unexecuted instantiation: cdef_block_avx2.c:get_prob Unexecuted instantiation: cdef_block_sse2.c:get_prob Unexecuted instantiation: cdef_block_sse4.c:get_prob Unexecuted instantiation: cdef_block_ssse3.c:get_prob Unexecuted instantiation: cfl.c:get_prob Unexecuted instantiation: convolve.c:get_prob Unexecuted instantiation: debugmodes.c:get_prob Unexecuted instantiation: entropy.c:get_prob Unexecuted instantiation: entropymode.c:get_prob Unexecuted instantiation: entropymv.c:get_prob Unexecuted instantiation: idct.c:get_prob Unexecuted instantiation: mvref_common.c:get_prob Unexecuted instantiation: pred_common.c:get_prob Unexecuted instantiation: quant_common.c:get_prob Unexecuted instantiation: reconinter.c:get_prob Unexecuted instantiation: reconintra.c:get_prob Unexecuted instantiation: resize.c:get_prob Unexecuted instantiation: restoration.c:get_prob Unexecuted instantiation: scale.c:get_prob Unexecuted instantiation: scan.c:get_prob Unexecuted instantiation: seg_common.c:get_prob Unexecuted instantiation: thread_common.c:get_prob Unexecuted instantiation: tile_common.c:get_prob Unexecuted instantiation: txb_common.c:get_prob Unexecuted instantiation: warped_motion.c:get_prob Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_prob Unexecuted instantiation: av1_convolve_scale_sse4.c:get_prob Unexecuted instantiation: av1_highbd_convolve_sse4.c:get_prob Unexecuted instantiation: av1_inv_txfm_avx2.c:get_prob Unexecuted instantiation: av1_inv_txfm_ssse3.c:get_prob Unexecuted instantiation: av1_txfm_sse4.c:get_prob Unexecuted instantiation: cfl_avx2.c:get_prob Unexecuted instantiation: cfl_sse2.c:get_prob Unexecuted instantiation: cfl_ssse3.c:get_prob Unexecuted instantiation: convolve_2d_avx2.c:get_prob Unexecuted instantiation: convolve_2d_sse2.c:get_prob Unexecuted instantiation: convolve_avx2.c:get_prob Unexecuted instantiation: convolve_sse2.c:get_prob Unexecuted instantiation: filterintra_sse4.c:get_prob Unexecuted instantiation: highbd_convolve_2d_avx2.c:get_prob Unexecuted instantiation: highbd_convolve_2d_sse2.c:get_prob Unexecuted instantiation: highbd_convolve_2d_sse4.c:get_prob Unexecuted instantiation: highbd_convolve_2d_ssse3.c:get_prob Unexecuted instantiation: highbd_inv_txfm_avx2.c:get_prob Unexecuted instantiation: highbd_inv_txfm_sse4.c:get_prob Unexecuted instantiation: highbd_jnt_convolve_avx2.c:get_prob Unexecuted instantiation: highbd_jnt_convolve_sse4.c:get_prob Unexecuted instantiation: highbd_warp_plane_sse4.c:get_prob Unexecuted instantiation: highbd_wiener_convolve_avx2.c:get_prob Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:get_prob Unexecuted instantiation: intra_edge_sse4.c:get_prob Unexecuted instantiation: jnt_convolve_avx2.c:get_prob Unexecuted instantiation: jnt_convolve_sse2.c:get_prob Unexecuted instantiation: jnt_convolve_ssse3.c:get_prob Unexecuted instantiation: reconinter_avx2.c:get_prob Unexecuted instantiation: reconinter_sse4.c:get_prob Unexecuted instantiation: reconinter_ssse3.c:get_prob Unexecuted instantiation: selfguided_avx2.c:get_prob Unexecuted instantiation: selfguided_sse4.c:get_prob Unexecuted instantiation: warp_plane_sse4.c:get_prob Unexecuted instantiation: wiener_convolve_avx2.c:get_prob Unexecuted instantiation: wiener_convolve_sse2.c:get_prob Unexecuted instantiation: decodeframe.c:get_prob Unexecuted instantiation: decodemv.c:get_prob Unexecuted instantiation: decoder.c:get_prob Unexecuted instantiation: decodetxb.c:get_prob Unexecuted instantiation: detokenize.c:get_prob Unexecuted instantiation: dthread.c:get_prob Unexecuted instantiation: obu.c:get_prob |
643 | | |
644 | 0 | static INLINE void update_cdf(aom_cdf_prob *cdf, int val, int nsymbs) { |
645 | 0 | int rate; |
646 | 0 | int i, tmp; |
647 | 0 |
|
648 | 0 | static const int nsymbs2speed[17] = { 0, 0, 1, 1, 2, 2, 2, 2, 2, |
649 | 0 | 2, 2, 2, 2, 2, 2, 2, 2 }; |
650 | 0 | assert(nsymbs < 17); |
651 | 0 | rate = 3 + (cdf[nsymbs] > 15) + (cdf[nsymbs] > 31) + |
652 | 0 | nsymbs2speed[nsymbs]; // + get_msb(nsymbs); |
653 | 0 | tmp = AOM_ICDF(0); |
654 | 0 |
|
655 | 0 | // Single loop (faster) |
656 | 0 | for (i = 0; i < nsymbs - 1; ++i) { |
657 | 0 | tmp = (i == val) ? 0 : tmp; |
658 | 0 | if (tmp < cdf[i]) { |
659 | 0 | cdf[i] -= ((cdf[i] - tmp) >> rate); |
660 | 0 | } else { |
661 | 0 | cdf[i] += ((tmp - cdf[i]) >> rate); |
662 | 0 | } |
663 | 0 | } |
664 | 0 | cdf[nsymbs] += (cdf[nsymbs] < 32); |
665 | 0 | } Unexecuted instantiation: aom_convolve.c:update_cdf Unexecuted instantiation: aom_dsp_rtcd.c:update_cdf Unexecuted instantiation: binary_codes_reader.c:update_cdf Unexecuted instantiation: blend_a64_hmask.c:update_cdf Unexecuted instantiation: blend_a64_mask.c:update_cdf Unexecuted instantiation: blend_a64_vmask.c:update_cdf Unexecuted instantiation: daalaboolreader.c:update_cdf Unexecuted instantiation: entcode.c:update_cdf Unexecuted instantiation: entdec.c:update_cdf Unexecuted instantiation: intrapred.c:update_cdf Unexecuted instantiation: loopfilter.c:update_cdf Unexecuted instantiation: subtract.c:update_cdf Unexecuted instantiation: aom_asm_stubs.c:update_cdf Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:update_cdf Unexecuted instantiation: aom_subpixel_8t_intrin_ssse3.c:update_cdf Unexecuted instantiation: blend_a64_hmask_sse4.c:update_cdf Unexecuted instantiation: blend_a64_mask_avx2.c:update_cdf Unexecuted instantiation: blend_a64_mask_sse4.c:update_cdf Unexecuted instantiation: blend_a64_vmask_sse4.c:update_cdf Unexecuted instantiation: highbd_convolve_avx2.c:update_cdf Unexecuted instantiation: highbd_convolve_ssse3.c:update_cdf Unexecuted instantiation: highbd_intrapred_sse2.c:update_cdf Unexecuted instantiation: highbd_loopfilter_avx2.c:update_cdf Unexecuted instantiation: highbd_loopfilter_sse2.c:update_cdf Unexecuted instantiation: intrapred_avx2.c:update_cdf Unexecuted instantiation: intrapred_sse2.c:update_cdf Unexecuted instantiation: intrapred_ssse3.c:update_cdf Unexecuted instantiation: loopfilter_sse2.c:update_cdf Unexecuted instantiation: debug_util.c:update_cdf Unexecuted instantiation: av1_dx_iface.c:update_cdf Unexecuted instantiation: alloccommon.c:update_cdf Unexecuted instantiation: av1_inv_txfm1d.c:update_cdf Unexecuted instantiation: av1_inv_txfm2d.c:update_cdf Unexecuted instantiation: av1_loopfilter.c:update_cdf Unexecuted instantiation: av1_rtcd.c:update_cdf Unexecuted instantiation: av1_txfm.c:update_cdf Unexecuted instantiation: blockd.c:update_cdf Unexecuted instantiation: cdef.c:update_cdf Unexecuted instantiation: cdef_block.c:update_cdf Unexecuted instantiation: cdef_block_avx2.c:update_cdf Unexecuted instantiation: cdef_block_sse2.c:update_cdf Unexecuted instantiation: cdef_block_sse4.c:update_cdf Unexecuted instantiation: cdef_block_ssse3.c:update_cdf Unexecuted instantiation: cfl.c:update_cdf Unexecuted instantiation: convolve.c:update_cdf Unexecuted instantiation: debugmodes.c:update_cdf Unexecuted instantiation: entropy.c:update_cdf Unexecuted instantiation: entropymode.c:update_cdf Unexecuted instantiation: entropymv.c:update_cdf Unexecuted instantiation: idct.c:update_cdf Unexecuted instantiation: mvref_common.c:update_cdf Unexecuted instantiation: pred_common.c:update_cdf Unexecuted instantiation: quant_common.c:update_cdf Unexecuted instantiation: reconinter.c:update_cdf Unexecuted instantiation: reconintra.c:update_cdf Unexecuted instantiation: resize.c:update_cdf Unexecuted instantiation: restoration.c:update_cdf Unexecuted instantiation: scale.c:update_cdf Unexecuted instantiation: scan.c:update_cdf Unexecuted instantiation: seg_common.c:update_cdf Unexecuted instantiation: thread_common.c:update_cdf Unexecuted instantiation: tile_common.c:update_cdf Unexecuted instantiation: txb_common.c:update_cdf Unexecuted instantiation: warped_motion.c:update_cdf Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:update_cdf Unexecuted instantiation: av1_convolve_scale_sse4.c:update_cdf Unexecuted instantiation: av1_highbd_convolve_sse4.c:update_cdf Unexecuted instantiation: av1_inv_txfm_avx2.c:update_cdf Unexecuted instantiation: av1_inv_txfm_ssse3.c:update_cdf Unexecuted instantiation: av1_txfm_sse4.c:update_cdf Unexecuted instantiation: cfl_avx2.c:update_cdf Unexecuted instantiation: cfl_sse2.c:update_cdf Unexecuted instantiation: cfl_ssse3.c:update_cdf Unexecuted instantiation: convolve_2d_avx2.c:update_cdf Unexecuted instantiation: convolve_2d_sse2.c:update_cdf Unexecuted instantiation: convolve_avx2.c:update_cdf Unexecuted instantiation: convolve_sse2.c:update_cdf Unexecuted instantiation: filterintra_sse4.c:update_cdf Unexecuted instantiation: highbd_convolve_2d_avx2.c:update_cdf Unexecuted instantiation: highbd_convolve_2d_sse2.c:update_cdf Unexecuted instantiation: highbd_convolve_2d_sse4.c:update_cdf Unexecuted instantiation: highbd_convolve_2d_ssse3.c:update_cdf Unexecuted instantiation: highbd_inv_txfm_avx2.c:update_cdf Unexecuted instantiation: highbd_inv_txfm_sse4.c:update_cdf Unexecuted instantiation: highbd_jnt_convolve_avx2.c:update_cdf Unexecuted instantiation: highbd_jnt_convolve_sse4.c:update_cdf Unexecuted instantiation: highbd_warp_plane_sse4.c:update_cdf Unexecuted instantiation: highbd_wiener_convolve_avx2.c:update_cdf Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:update_cdf Unexecuted instantiation: intra_edge_sse4.c:update_cdf Unexecuted instantiation: jnt_convolve_avx2.c:update_cdf Unexecuted instantiation: jnt_convolve_sse2.c:update_cdf Unexecuted instantiation: jnt_convolve_ssse3.c:update_cdf Unexecuted instantiation: reconinter_avx2.c:update_cdf Unexecuted instantiation: reconinter_sse4.c:update_cdf Unexecuted instantiation: reconinter_ssse3.c:update_cdf Unexecuted instantiation: selfguided_avx2.c:update_cdf Unexecuted instantiation: selfguided_sse4.c:update_cdf Unexecuted instantiation: warp_plane_sse4.c:update_cdf Unexecuted instantiation: wiener_convolve_avx2.c:update_cdf Unexecuted instantiation: wiener_convolve_sse2.c:update_cdf Unexecuted instantiation: decodeframe.c:update_cdf Unexecuted instantiation: decodemv.c:update_cdf Unexecuted instantiation: decoder.c:update_cdf Unexecuted instantiation: decodetxb.c:update_cdf Unexecuted instantiation: detokenize.c:update_cdf Unexecuted instantiation: dthread.c:update_cdf Unexecuted instantiation: obu.c:update_cdf |
666 | | |
667 | | #ifdef __cplusplus |
668 | | } // extern "C" |
669 | | #endif |
670 | | |
671 | | #endif // AOM_AOM_DSP_PROB_H_ |