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 | | typedef uint16_t aom_cdf_prob; |
30 | | |
31 | | #define CDF_SIZE(x) ((x) + 1) |
32 | 233M | #define CDF_PROB_BITS 15 |
33 | 47.6M | #define CDF_PROB_TOP (1 << CDF_PROB_BITS) |
34 | | #define CDF_INIT_TOP 32768 |
35 | 185M | #define CDF_SHIFT (15 - CDF_PROB_BITS) |
36 | | /*The value stored in an iCDF is CDF_PROB_TOP minus the actual cumulative |
37 | | probability (an "inverse" CDF). |
38 | | This function converts from one representation to the other (and is its own |
39 | | inverse).*/ |
40 | 47.6M | #define AOM_ICDF(x) (CDF_PROB_TOP - (x)) |
41 | | |
42 | | #if CDF_SHIFT == 0 |
43 | | |
44 | | #define AOM_CDF2(a0) AOM_ICDF(a0), AOM_ICDF(CDF_PROB_TOP), 0 |
45 | | #define AOM_CDF3(a0, a1) AOM_ICDF(a0), AOM_ICDF(a1), AOM_ICDF(CDF_PROB_TOP), 0 |
46 | | #define AOM_CDF4(a0, a1, a2) \ |
47 | | AOM_ICDF(a0), AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(CDF_PROB_TOP), 0 |
48 | | #define AOM_CDF5(a0, a1, a2, a3) \ |
49 | | AOM_ICDF(a0) \ |
50 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(CDF_PROB_TOP), 0 |
51 | | #define AOM_CDF6(a0, a1, a2, a3, a4) \ |
52 | | AOM_ICDF(a0) \ |
53 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), \ |
54 | | AOM_ICDF(CDF_PROB_TOP), 0 |
55 | | #define AOM_CDF7(a0, a1, a2, a3, a4, a5) \ |
56 | | AOM_ICDF(a0) \ |
57 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
58 | | AOM_ICDF(CDF_PROB_TOP), 0 |
59 | | #define AOM_CDF8(a0, a1, a2, a3, a4, a5, a6) \ |
60 | | AOM_ICDF(a0) \ |
61 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
62 | | AOM_ICDF(a6), AOM_ICDF(CDF_PROB_TOP), 0 |
63 | | #define AOM_CDF9(a0, a1, a2, a3, a4, a5, a6, a7) \ |
64 | | AOM_ICDF(a0) \ |
65 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
66 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(CDF_PROB_TOP), 0 |
67 | | #define AOM_CDF10(a0, a1, a2, a3, a4, a5, a6, a7, a8) \ |
68 | | AOM_ICDF(a0) \ |
69 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
70 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(a8), AOM_ICDF(CDF_PROB_TOP), 0 |
71 | | #define AOM_CDF11(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) \ |
72 | | AOM_ICDF(a0) \ |
73 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
74 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(a8), AOM_ICDF(a9), \ |
75 | | AOM_ICDF(CDF_PROB_TOP), 0 |
76 | | #define AOM_CDF12(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \ |
77 | | AOM_ICDF(a0) \ |
78 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
79 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(a8), AOM_ICDF(a9), AOM_ICDF(a10), \ |
80 | | AOM_ICDF(CDF_PROB_TOP), 0 |
81 | | #define AOM_CDF13(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) \ |
82 | | AOM_ICDF(a0) \ |
83 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
84 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(a8), AOM_ICDF(a9), AOM_ICDF(a10), \ |
85 | | AOM_ICDF(a11), AOM_ICDF(CDF_PROB_TOP), 0 |
86 | | #define AOM_CDF14(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) \ |
87 | | AOM_ICDF(a0) \ |
88 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
89 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(a8), AOM_ICDF(a9), AOM_ICDF(a10), \ |
90 | | AOM_ICDF(a11), AOM_ICDF(a12), AOM_ICDF(CDF_PROB_TOP), 0 |
91 | | #define AOM_CDF15(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) \ |
92 | | AOM_ICDF(a0) \ |
93 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
94 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(a8), AOM_ICDF(a9), AOM_ICDF(a10), \ |
95 | | AOM_ICDF(a11), AOM_ICDF(a12), AOM_ICDF(a13), AOM_ICDF(CDF_PROB_TOP), 0 |
96 | | #define AOM_CDF16(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \ |
97 | | a14) \ |
98 | | AOM_ICDF(a0) \ |
99 | | , AOM_ICDF(a1), AOM_ICDF(a2), AOM_ICDF(a3), AOM_ICDF(a4), AOM_ICDF(a5), \ |
100 | | AOM_ICDF(a6), AOM_ICDF(a7), AOM_ICDF(a8), AOM_ICDF(a9), AOM_ICDF(a10), \ |
101 | | AOM_ICDF(a11), AOM_ICDF(a12), AOM_ICDF(a13), AOM_ICDF(a14), \ |
102 | | AOM_ICDF(CDF_PROB_TOP), 0 |
103 | | |
104 | | #else |
105 | | #define AOM_CDF2(a0) \ |
106 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 2) + \ |
107 | | ((CDF_INIT_TOP - 2) >> 1)) / \ |
108 | | ((CDF_INIT_TOP - 2)) + \ |
109 | | 1) \ |
110 | | , AOM_ICDF(CDF_PROB_TOP), 0 |
111 | | #define AOM_CDF3(a0, a1) \ |
112 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 3) + \ |
113 | | ((CDF_INIT_TOP - 3) >> 1)) / \ |
114 | | ((CDF_INIT_TOP - 3)) + \ |
115 | | 1) \ |
116 | | , \ |
117 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 3) + \ |
118 | | ((CDF_INIT_TOP - 3) >> 1)) / \ |
119 | | ((CDF_INIT_TOP - 3)) + \ |
120 | | 2), \ |
121 | | AOM_ICDF(CDF_PROB_TOP), 0 |
122 | | #define AOM_CDF4(a0, a1, a2) \ |
123 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 4) + \ |
124 | | ((CDF_INIT_TOP - 4) >> 1)) / \ |
125 | | ((CDF_INIT_TOP - 4)) + \ |
126 | | 1) \ |
127 | | , \ |
128 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 4) + \ |
129 | | ((CDF_INIT_TOP - 4) >> 1)) / \ |
130 | | ((CDF_INIT_TOP - 4)) + \ |
131 | | 2), \ |
132 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 4) + \ |
133 | | ((CDF_INIT_TOP - 4) >> 1)) / \ |
134 | | ((CDF_INIT_TOP - 4)) + \ |
135 | | 3), \ |
136 | | AOM_ICDF(CDF_PROB_TOP), 0 |
137 | | #define AOM_CDF5(a0, a1, a2, a3) \ |
138 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 5) + \ |
139 | | ((CDF_INIT_TOP - 5) >> 1)) / \ |
140 | | ((CDF_INIT_TOP - 5)) + \ |
141 | | 1) \ |
142 | | , \ |
143 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 5) + \ |
144 | | ((CDF_INIT_TOP - 5) >> 1)) / \ |
145 | | ((CDF_INIT_TOP - 5)) + \ |
146 | | 2), \ |
147 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 5) + \ |
148 | | ((CDF_INIT_TOP - 5) >> 1)) / \ |
149 | | ((CDF_INIT_TOP - 5)) + \ |
150 | | 3), \ |
151 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 5) + \ |
152 | | ((CDF_INIT_TOP - 5) >> 1)) / \ |
153 | | ((CDF_INIT_TOP - 5)) + \ |
154 | | 4), \ |
155 | | AOM_ICDF(CDF_PROB_TOP), 0 |
156 | | #define AOM_CDF6(a0, a1, a2, a3, a4) \ |
157 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 6) + \ |
158 | | ((CDF_INIT_TOP - 6) >> 1)) / \ |
159 | | ((CDF_INIT_TOP - 6)) + \ |
160 | | 1) \ |
161 | | , \ |
162 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 6) + \ |
163 | | ((CDF_INIT_TOP - 6) >> 1)) / \ |
164 | | ((CDF_INIT_TOP - 6)) + \ |
165 | | 2), \ |
166 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 6) + \ |
167 | | ((CDF_INIT_TOP - 6) >> 1)) / \ |
168 | | ((CDF_INIT_TOP - 6)) + \ |
169 | | 3), \ |
170 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 6) + \ |
171 | | ((CDF_INIT_TOP - 6) >> 1)) / \ |
172 | | ((CDF_INIT_TOP - 6)) + \ |
173 | | 4), \ |
174 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 6) + \ |
175 | | ((CDF_INIT_TOP - 6) >> 1)) / \ |
176 | | ((CDF_INIT_TOP - 6)) + \ |
177 | | 5), \ |
178 | | AOM_ICDF(CDF_PROB_TOP), 0 |
179 | | #define AOM_CDF7(a0, a1, a2, a3, a4, a5) \ |
180 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 7) + \ |
181 | | ((CDF_INIT_TOP - 7) >> 1)) / \ |
182 | | ((CDF_INIT_TOP - 7)) + \ |
183 | | 1) \ |
184 | | , \ |
185 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 7) + \ |
186 | | ((CDF_INIT_TOP - 7) >> 1)) / \ |
187 | | ((CDF_INIT_TOP - 7)) + \ |
188 | | 2), \ |
189 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 7) + \ |
190 | | ((CDF_INIT_TOP - 7) >> 1)) / \ |
191 | | ((CDF_INIT_TOP - 7)) + \ |
192 | | 3), \ |
193 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 7) + \ |
194 | | ((CDF_INIT_TOP - 7) >> 1)) / \ |
195 | | ((CDF_INIT_TOP - 7)) + \ |
196 | | 4), \ |
197 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 7) + \ |
198 | | ((CDF_INIT_TOP - 7) >> 1)) / \ |
199 | | ((CDF_INIT_TOP - 7)) + \ |
200 | | 5), \ |
201 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 7) + \ |
202 | | ((CDF_INIT_TOP - 7) >> 1)) / \ |
203 | | ((CDF_INIT_TOP - 7)) + \ |
204 | | 6), \ |
205 | | AOM_ICDF(CDF_PROB_TOP), 0 |
206 | | #define AOM_CDF8(a0, a1, a2, a3, a4, a5, a6) \ |
207 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 8) + \ |
208 | | ((CDF_INIT_TOP - 8) >> 1)) / \ |
209 | | ((CDF_INIT_TOP - 8)) + \ |
210 | | 1) \ |
211 | | , \ |
212 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 8) + \ |
213 | | ((CDF_INIT_TOP - 8) >> 1)) / \ |
214 | | ((CDF_INIT_TOP - 8)) + \ |
215 | | 2), \ |
216 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 8) + \ |
217 | | ((CDF_INIT_TOP - 8) >> 1)) / \ |
218 | | ((CDF_INIT_TOP - 8)) + \ |
219 | | 3), \ |
220 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 8) + \ |
221 | | ((CDF_INIT_TOP - 8) >> 1)) / \ |
222 | | ((CDF_INIT_TOP - 8)) + \ |
223 | | 4), \ |
224 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 8) + \ |
225 | | ((CDF_INIT_TOP - 8) >> 1)) / \ |
226 | | ((CDF_INIT_TOP - 8)) + \ |
227 | | 5), \ |
228 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 8) + \ |
229 | | ((CDF_INIT_TOP - 8) >> 1)) / \ |
230 | | ((CDF_INIT_TOP - 8)) + \ |
231 | | 6), \ |
232 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 8) + \ |
233 | | ((CDF_INIT_TOP - 8) >> 1)) / \ |
234 | | ((CDF_INIT_TOP - 8)) + \ |
235 | | 7), \ |
236 | | AOM_ICDF(CDF_PROB_TOP), 0 |
237 | | #define AOM_CDF9(a0, a1, a2, a3, a4, a5, a6, a7) \ |
238 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
239 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
240 | | ((CDF_INIT_TOP - 9)) + \ |
241 | | 1) \ |
242 | | , \ |
243 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
244 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
245 | | ((CDF_INIT_TOP - 9)) + \ |
246 | | 2), \ |
247 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
248 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
249 | | ((CDF_INIT_TOP - 9)) + \ |
250 | | 3), \ |
251 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
252 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
253 | | ((CDF_INIT_TOP - 9)) + \ |
254 | | 4), \ |
255 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
256 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
257 | | ((CDF_INIT_TOP - 9)) + \ |
258 | | 5), \ |
259 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
260 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
261 | | ((CDF_INIT_TOP - 9)) + \ |
262 | | 6), \ |
263 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
264 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
265 | | ((CDF_INIT_TOP - 9)) + \ |
266 | | 7), \ |
267 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 9) + \ |
268 | | ((CDF_INIT_TOP - 9) >> 1)) / \ |
269 | | ((CDF_INIT_TOP - 9)) + \ |
270 | | 8), \ |
271 | | AOM_ICDF(CDF_PROB_TOP), 0 |
272 | | #define AOM_CDF10(a0, a1, a2, a3, a4, a5, a6, a7, a8) \ |
273 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
274 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
275 | | ((CDF_INIT_TOP - 10)) + \ |
276 | | 1) \ |
277 | | , \ |
278 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
279 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
280 | | ((CDF_INIT_TOP - 10)) + \ |
281 | | 2), \ |
282 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
283 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
284 | | ((CDF_INIT_TOP - 10)) + \ |
285 | | 3), \ |
286 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
287 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
288 | | ((CDF_INIT_TOP - 10)) + \ |
289 | | 4), \ |
290 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
291 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
292 | | ((CDF_INIT_TOP - 10)) + \ |
293 | | 5), \ |
294 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
295 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
296 | | ((CDF_INIT_TOP - 10)) + \ |
297 | | 6), \ |
298 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
299 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
300 | | ((CDF_INIT_TOP - 10)) + \ |
301 | | 7), \ |
302 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
303 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
304 | | ((CDF_INIT_TOP - 10)) + \ |
305 | | 8), \ |
306 | | AOM_ICDF((((a8)-9) * ((CDF_INIT_TOP >> CDF_SHIFT) - 10) + \ |
307 | | ((CDF_INIT_TOP - 10) >> 1)) / \ |
308 | | ((CDF_INIT_TOP - 10)) + \ |
309 | | 9), \ |
310 | | AOM_ICDF(CDF_PROB_TOP), 0 |
311 | | #define AOM_CDF11(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) \ |
312 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
313 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
314 | | ((CDF_INIT_TOP - 11)) + \ |
315 | | 1) \ |
316 | | , \ |
317 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
318 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
319 | | ((CDF_INIT_TOP - 11)) + \ |
320 | | 2), \ |
321 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
322 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
323 | | ((CDF_INIT_TOP - 11)) + \ |
324 | | 3), \ |
325 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
326 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
327 | | ((CDF_INIT_TOP - 11)) + \ |
328 | | 4), \ |
329 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
330 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
331 | | ((CDF_INIT_TOP - 11)) + \ |
332 | | 5), \ |
333 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
334 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
335 | | ((CDF_INIT_TOP - 11)) + \ |
336 | | 6), \ |
337 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
338 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
339 | | ((CDF_INIT_TOP - 11)) + \ |
340 | | 7), \ |
341 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
342 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
343 | | ((CDF_INIT_TOP - 11)) + \ |
344 | | 8), \ |
345 | | AOM_ICDF((((a8)-9) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
346 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
347 | | ((CDF_INIT_TOP - 11)) + \ |
348 | | 9), \ |
349 | | AOM_ICDF((((a9)-10) * ((CDF_INIT_TOP >> CDF_SHIFT) - 11) + \ |
350 | | ((CDF_INIT_TOP - 11) >> 1)) / \ |
351 | | ((CDF_INIT_TOP - 11)) + \ |
352 | | 10), \ |
353 | | AOM_ICDF(CDF_PROB_TOP), 0 |
354 | | #define AOM_CDF12(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \ |
355 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
356 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
357 | | ((CDF_INIT_TOP - 12)) + \ |
358 | | 1) \ |
359 | | , \ |
360 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
361 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
362 | | ((CDF_INIT_TOP - 12)) + \ |
363 | | 2), \ |
364 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
365 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
366 | | ((CDF_INIT_TOP - 12)) + \ |
367 | | 3), \ |
368 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
369 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
370 | | ((CDF_INIT_TOP - 12)) + \ |
371 | | 4), \ |
372 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
373 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
374 | | ((CDF_INIT_TOP - 12)) + \ |
375 | | 5), \ |
376 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
377 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
378 | | ((CDF_INIT_TOP - 12)) + \ |
379 | | 6), \ |
380 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
381 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
382 | | ((CDF_INIT_TOP - 12)) + \ |
383 | | 7), \ |
384 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
385 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
386 | | ((CDF_INIT_TOP - 12)) + \ |
387 | | 8), \ |
388 | | AOM_ICDF((((a8)-9) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
389 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
390 | | ((CDF_INIT_TOP - 12)) + \ |
391 | | 9), \ |
392 | | AOM_ICDF((((a9)-10) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
393 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
394 | | ((CDF_INIT_TOP - 12)) + \ |
395 | | 10), \ |
396 | | AOM_ICDF((((a10)-11) * ((CDF_INIT_TOP >> CDF_SHIFT) - 12) + \ |
397 | | ((CDF_INIT_TOP - 12) >> 1)) / \ |
398 | | ((CDF_INIT_TOP - 12)) + \ |
399 | | 11), \ |
400 | | AOM_ICDF(CDF_PROB_TOP), 0 |
401 | | #define AOM_CDF13(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) \ |
402 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
403 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
404 | | ((CDF_INIT_TOP - 13)) + \ |
405 | | 1) \ |
406 | | , \ |
407 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
408 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
409 | | ((CDF_INIT_TOP - 13)) + \ |
410 | | 2), \ |
411 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
412 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
413 | | ((CDF_INIT_TOP - 13)) + \ |
414 | | 3), \ |
415 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
416 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
417 | | ((CDF_INIT_TOP - 13)) + \ |
418 | | 4), \ |
419 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
420 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
421 | | ((CDF_INIT_TOP - 13)) + \ |
422 | | 5), \ |
423 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
424 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
425 | | ((CDF_INIT_TOP - 13)) + \ |
426 | | 6), \ |
427 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
428 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
429 | | ((CDF_INIT_TOP - 13)) + \ |
430 | | 7), \ |
431 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
432 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
433 | | ((CDF_INIT_TOP - 13)) + \ |
434 | | 8), \ |
435 | | AOM_ICDF((((a8)-9) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
436 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
437 | | ((CDF_INIT_TOP - 13)) + \ |
438 | | 9), \ |
439 | | AOM_ICDF((((a9)-10) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
440 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
441 | | ((CDF_INIT_TOP - 13)) + \ |
442 | | 10), \ |
443 | | AOM_ICDF((((a10)-11) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
444 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
445 | | ((CDF_INIT_TOP - 13)) + \ |
446 | | 11), \ |
447 | | AOM_ICDF((((a11)-12) * ((CDF_INIT_TOP >> CDF_SHIFT) - 13) + \ |
448 | | ((CDF_INIT_TOP - 13) >> 1)) / \ |
449 | | ((CDF_INIT_TOP - 13)) + \ |
450 | | 12), \ |
451 | | AOM_ICDF(CDF_PROB_TOP), 0 |
452 | | #define AOM_CDF14(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) \ |
453 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
454 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
455 | | ((CDF_INIT_TOP - 14)) + \ |
456 | | 1) \ |
457 | | , \ |
458 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
459 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
460 | | ((CDF_INIT_TOP - 14)) + \ |
461 | | 2), \ |
462 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
463 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
464 | | ((CDF_INIT_TOP - 14)) + \ |
465 | | 3), \ |
466 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
467 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
468 | | ((CDF_INIT_TOP - 14)) + \ |
469 | | 4), \ |
470 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
471 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
472 | | ((CDF_INIT_TOP - 14)) + \ |
473 | | 5), \ |
474 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
475 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
476 | | ((CDF_INIT_TOP - 14)) + \ |
477 | | 6), \ |
478 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
479 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
480 | | ((CDF_INIT_TOP - 14)) + \ |
481 | | 7), \ |
482 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
483 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
484 | | ((CDF_INIT_TOP - 14)) + \ |
485 | | 8), \ |
486 | | AOM_ICDF((((a8)-9) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
487 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
488 | | ((CDF_INIT_TOP - 14)) + \ |
489 | | 9), \ |
490 | | AOM_ICDF((((a9)-10) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
491 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
492 | | ((CDF_INIT_TOP - 14)) + \ |
493 | | 10), \ |
494 | | AOM_ICDF((((a10)-11) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
495 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
496 | | ((CDF_INIT_TOP - 14)) + \ |
497 | | 11), \ |
498 | | AOM_ICDF((((a11)-12) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
499 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
500 | | ((CDF_INIT_TOP - 14)) + \ |
501 | | 12), \ |
502 | | AOM_ICDF((((a12)-13) * ((CDF_INIT_TOP >> CDF_SHIFT) - 14) + \ |
503 | | ((CDF_INIT_TOP - 14) >> 1)) / \ |
504 | | ((CDF_INIT_TOP - 14)) + \ |
505 | | 13), \ |
506 | | AOM_ICDF(CDF_PROB_TOP), 0 |
507 | | #define AOM_CDF15(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) \ |
508 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
509 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
510 | | ((CDF_INIT_TOP - 15)) + \ |
511 | | 1) \ |
512 | | , \ |
513 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
514 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
515 | | ((CDF_INIT_TOP - 15)) + \ |
516 | | 2), \ |
517 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
518 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
519 | | ((CDF_INIT_TOP - 15)) + \ |
520 | | 3), \ |
521 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
522 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
523 | | ((CDF_INIT_TOP - 15)) + \ |
524 | | 4), \ |
525 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
526 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
527 | | ((CDF_INIT_TOP - 15)) + \ |
528 | | 5), \ |
529 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
530 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
531 | | ((CDF_INIT_TOP - 15)) + \ |
532 | | 6), \ |
533 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
534 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
535 | | ((CDF_INIT_TOP - 15)) + \ |
536 | | 7), \ |
537 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
538 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
539 | | ((CDF_INIT_TOP - 15)) + \ |
540 | | 8), \ |
541 | | AOM_ICDF((((a8)-9) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
542 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
543 | | ((CDF_INIT_TOP - 15)) + \ |
544 | | 9), \ |
545 | | AOM_ICDF((((a9)-10) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
546 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
547 | | ((CDF_INIT_TOP - 15)) + \ |
548 | | 10), \ |
549 | | AOM_ICDF((((a10)-11) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
550 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
551 | | ((CDF_INIT_TOP - 15)) + \ |
552 | | 11), \ |
553 | | AOM_ICDF((((a11)-12) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
554 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
555 | | ((CDF_INIT_TOP - 15)) + \ |
556 | | 12), \ |
557 | | AOM_ICDF((((a12)-13) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
558 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
559 | | ((CDF_INIT_TOP - 15)) + \ |
560 | | 13), \ |
561 | | AOM_ICDF((((a13)-14) * ((CDF_INIT_TOP >> CDF_SHIFT) - 15) + \ |
562 | | ((CDF_INIT_TOP - 15) >> 1)) / \ |
563 | | ((CDF_INIT_TOP - 15)) + \ |
564 | | 14), \ |
565 | | AOM_ICDF(CDF_PROB_TOP), 0 |
566 | | #define AOM_CDF16(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \ |
567 | | a14) \ |
568 | | AOM_ICDF((((a0)-1) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
569 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
570 | | ((CDF_INIT_TOP - 16)) + \ |
571 | | 1) \ |
572 | | , \ |
573 | | AOM_ICDF((((a1)-2) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
574 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
575 | | ((CDF_INIT_TOP - 16)) + \ |
576 | | 2), \ |
577 | | AOM_ICDF((((a2)-3) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
578 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
579 | | ((CDF_INIT_TOP - 16)) + \ |
580 | | 3), \ |
581 | | AOM_ICDF((((a3)-4) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
582 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
583 | | ((CDF_INIT_TOP - 16)) + \ |
584 | | 4), \ |
585 | | AOM_ICDF((((a4)-5) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
586 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
587 | | ((CDF_INIT_TOP - 16)) + \ |
588 | | 5), \ |
589 | | AOM_ICDF((((a5)-6) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
590 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
591 | | ((CDF_INIT_TOP - 16)) + \ |
592 | | 6), \ |
593 | | AOM_ICDF((((a6)-7) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
594 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
595 | | ((CDF_INIT_TOP - 16)) + \ |
596 | | 7), \ |
597 | | AOM_ICDF((((a7)-8) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
598 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
599 | | ((CDF_INIT_TOP - 16)) + \ |
600 | | 8), \ |
601 | | AOM_ICDF((((a8)-9) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
602 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
603 | | ((CDF_INIT_TOP - 16)) + \ |
604 | | 9), \ |
605 | | AOM_ICDF((((a9)-10) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
606 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
607 | | ((CDF_INIT_TOP - 16)) + \ |
608 | | 10), \ |
609 | | AOM_ICDF((((a10)-11) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
610 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
611 | | ((CDF_INIT_TOP - 16)) + \ |
612 | | 11), \ |
613 | | AOM_ICDF((((a11)-12) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
614 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
615 | | ((CDF_INIT_TOP - 16)) + \ |
616 | | 12), \ |
617 | | AOM_ICDF((((a12)-13) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
618 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
619 | | ((CDF_INIT_TOP - 16)) + \ |
620 | | 13), \ |
621 | | AOM_ICDF((((a13)-14) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
622 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
623 | | ((CDF_INIT_TOP - 16)) + \ |
624 | | 14), \ |
625 | | AOM_ICDF((((a14)-15) * ((CDF_INIT_TOP >> CDF_SHIFT) - 16) + \ |
626 | | ((CDF_INIT_TOP - 16) >> 1)) / \ |
627 | | ((CDF_INIT_TOP - 16)) + \ |
628 | | 15), \ |
629 | | AOM_ICDF(CDF_PROB_TOP), 0 |
630 | | |
631 | | #endif |
632 | | |
633 | 0 | static INLINE uint8_t get_prob(unsigned int num, unsigned int den) { |
634 | 0 | assert(den != 0); |
635 | 0 | { |
636 | 0 | const int p = (int)(((uint64_t)num * 256 + (den >> 1)) / den); |
637 | | // (p > 255) ? 255 : (p < 1) ? 1 : p; |
638 | 0 | const int clipped_prob = p | ((255 - p) >> 23) | (p == 0); |
639 | 0 | return (uint8_t)clipped_prob; |
640 | 0 | } |
641 | 0 | } Unexecuted instantiation: av1_dx_iface.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: obu.c:get_prob Unexecuted instantiation: av1_cx_iface.c:get_prob Unexecuted instantiation: av1_quantize.c:get_prob Unexecuted instantiation: bitstream.c:get_prob Unexecuted instantiation: encodemv.c:get_prob Unexecuted instantiation: encoder.c:get_prob Unexecuted instantiation: encoder_utils.c:get_prob Unexecuted instantiation: encodetxb.c:get_prob Unexecuted instantiation: ethread.c:get_prob Unexecuted instantiation: firstpass.c:get_prob Unexecuted instantiation: global_motion_facade.c:get_prob Unexecuted instantiation: hash_motion.c:get_prob Unexecuted instantiation: level.c:get_prob Unexecuted instantiation: lookahead.c:get_prob Unexecuted instantiation: mcomp.c:get_prob Unexecuted instantiation: mv_prec.c:get_prob Unexecuted instantiation: palette.c:get_prob Unexecuted instantiation: pass2_strategy.c:get_prob Unexecuted instantiation: pickcdef.c:get_prob Unexecuted instantiation: picklpf.c:get_prob Unexecuted instantiation: pickrst.c:get_prob Unexecuted instantiation: ratectrl.c:get_prob Unexecuted instantiation: rd.c:get_prob Unexecuted instantiation: rdopt.c:get_prob Unexecuted instantiation: reconinter_enc.c:get_prob Unexecuted instantiation: segmentation.c:get_prob Unexecuted instantiation: speed_features.c:get_prob Unexecuted instantiation: superres_scale.c:get_prob Unexecuted instantiation: svc_layercontext.c:get_prob Unexecuted instantiation: temporal_filter.c:get_prob Unexecuted instantiation: thirdpass.c:get_prob Unexecuted instantiation: tokenize.c:get_prob Unexecuted instantiation: tpl_model.c:get_prob Unexecuted instantiation: tx_search.c:get_prob Unexecuted instantiation: txb_rdopt.c:get_prob Unexecuted instantiation: intra_mode_search.c:get_prob Unexecuted instantiation: var_based_part.c:get_prob Unexecuted instantiation: av1_noise_estimate.c:get_prob Unexecuted instantiation: dwt.c:get_prob Unexecuted instantiation: aom_dsp_rtcd.c:get_prob Unexecuted instantiation: av1_rtcd.c:get_prob Unexecuted instantiation: aom_convolve.c:get_prob Unexecuted instantiation: blend_a64_mask.c:get_prob Unexecuted instantiation: avg.c:get_prob Unexecuted instantiation: binary_codes_reader.c:get_prob Unexecuted instantiation: bitreader.c:get_prob Unexecuted instantiation: entdec.c:get_prob Unexecuted instantiation: binary_codes_writer.c:get_prob Unexecuted instantiation: bitwriter.c:get_prob Unexecuted instantiation: blk_sse_sum.c:get_prob Unexecuted instantiation: entenc.c:get_prob Unexecuted instantiation: noise_util.c:get_prob Unexecuted instantiation: psnr.c:get_prob Unexecuted instantiation: sad.c:get_prob Unexecuted instantiation: sad_av1.c:get_prob Unexecuted instantiation: sse.c:get_prob Unexecuted instantiation: sum_squares.c:get_prob Unexecuted instantiation: variance.c:get_prob Unexecuted instantiation: alloccommon.c:get_prob Unexecuted instantiation: av1_loopfilter.c:get_prob Unexecuted instantiation: blockd.c:get_prob Unexecuted instantiation: cdef.c:get_prob Unexecuted instantiation: cdef_block.c:get_prob Unexecuted instantiation: cfl.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: aq_complexity.c:get_prob Unexecuted instantiation: aq_cyclicrefresh.c:get_prob Unexecuted instantiation: aq_variance.c:get_prob Unexecuted instantiation: allintra_vis.c:get_prob Unexecuted instantiation: av1_fwd_txfm2d.c:get_prob Unexecuted instantiation: compound_type.c:get_prob Unexecuted instantiation: context_tree.c:get_prob Unexecuted instantiation: cost.c:get_prob Unexecuted instantiation: encodeframe.c:get_prob Unexecuted instantiation: encodeframe_utils.c:get_prob Unexecuted instantiation: encodemb.c:get_prob Unexecuted instantiation: encode_strategy.c:get_prob Unexecuted instantiation: global_motion.c:get_prob Unexecuted instantiation: gop_structure.c:get_prob Unexecuted instantiation: hybrid_fwd_txfm.c:get_prob Unexecuted instantiation: interp_search.c:get_prob Unexecuted instantiation: ml.c:get_prob Unexecuted instantiation: motion_search_facade.c:get_prob Unexecuted instantiation: partition_search.c:get_prob Unexecuted instantiation: partition_strategy.c:get_prob Unexecuted instantiation: nonrd_pickmode.c:get_prob Unexecuted instantiation: wedge_utils.c:get_prob Unexecuted instantiation: blend_a64_hmask.c:get_prob Unexecuted instantiation: blend_a64_vmask.c:get_prob Unexecuted instantiation: entcode.c:get_prob Unexecuted instantiation: intrapred.c:get_prob Unexecuted instantiation: loopfilter.c:get_prob Unexecuted instantiation: subtract.c:get_prob Unexecuted instantiation: fwd_txfm.c:get_prob Unexecuted instantiation: av1_inv_txfm2d.c:get_prob Unexecuted instantiation: av1_txfm.c:get_prob Unexecuted instantiation: convolve.c:get_prob Unexecuted instantiation: av1_fwd_txfm1d.c:get_prob Unexecuted instantiation: cnn.c:get_prob Unexecuted instantiation: corner_match.c:get_prob Unexecuted instantiation: av1_inv_txfm1d.c:get_prob |
642 | | |
643 | 47.4M | static INLINE void update_cdf(aom_cdf_prob *cdf, int8_t val, int nsymbs) { |
644 | 47.4M | int rate; |
645 | 47.4M | int i, tmp; |
646 | | |
647 | 47.4M | static const int nsymbs2speed[17] = { 0, 0, 1, 1, 2, 2, 2, 2, 2, |
648 | 47.4M | 2, 2, 2, 2, 2, 2, 2, 2 }; |
649 | 47.4M | assert(nsymbs < 17); |
650 | 47.4M | rate = 3 + (cdf[nsymbs] > 15) + (cdf[nsymbs] > 31) + |
651 | 47.4M | nsymbs2speed[nsymbs]; // + get_msb(nsymbs); |
652 | 47.4M | tmp = AOM_ICDF(0); |
653 | | |
654 | | // Single loop (faster) |
655 | 292M | for (i = 0; i < nsymbs - 1; ++i) { |
656 | 244M | tmp = (i == val) ? 0 : tmp; |
657 | 244M | if (tmp < cdf[i]) { |
658 | 115M | cdf[i] -= ((cdf[i] - tmp) >> rate); |
659 | 129M | } else { |
660 | 129M | cdf[i] += ((tmp - cdf[i]) >> rate); |
661 | 129M | } |
662 | 244M | } |
663 | 47.4M | cdf[nsymbs] += (cdf[nsymbs] < 32); |
664 | 47.4M | } Unexecuted instantiation: av1_dx_iface.c:update_cdf Line | Count | Source | 643 | 2.51M | static INLINE void update_cdf(aom_cdf_prob *cdf, int8_t val, int nsymbs) { | 644 | 2.51M | int rate; | 645 | 2.51M | int i, tmp; | 646 | | | 647 | 2.51M | static const int nsymbs2speed[17] = { 0, 0, 1, 1, 2, 2, 2, 2, 2, | 648 | 2.51M | 2, 2, 2, 2, 2, 2, 2, 2 }; | 649 | 2.51M | assert(nsymbs < 17); | 650 | 2.51M | rate = 3 + (cdf[nsymbs] > 15) + (cdf[nsymbs] > 31) + | 651 | 2.51M | nsymbs2speed[nsymbs]; // + get_msb(nsymbs); | 652 | 2.51M | tmp = AOM_ICDF(0); | 653 | | | 654 | | // Single loop (faster) | 655 | 20.5M | for (i = 0; i < nsymbs - 1; ++i) { | 656 | 18.0M | tmp = (i == val) ? 0 : tmp; | 657 | 18.0M | if (tmp < cdf[i]) { | 658 | 10.9M | cdf[i] -= ((cdf[i] - tmp) >> rate); | 659 | 10.9M | } else { | 660 | 7.08M | cdf[i] += ((tmp - cdf[i]) >> rate); | 661 | 7.08M | } | 662 | 18.0M | } | 663 | 2.51M | cdf[nsymbs] += (cdf[nsymbs] < 32); | 664 | 2.51M | } |
Line | Count | Source | 643 | 17.1M | static INLINE void update_cdf(aom_cdf_prob *cdf, int8_t val, int nsymbs) { | 644 | 17.1M | int rate; | 645 | 17.1M | int i, tmp; | 646 | | | 647 | 17.1M | static const int nsymbs2speed[17] = { 0, 0, 1, 1, 2, 2, 2, 2, 2, | 648 | 17.1M | 2, 2, 2, 2, 2, 2, 2, 2 }; | 649 | 17.1M | assert(nsymbs < 17); | 650 | 17.1M | rate = 3 + (cdf[nsymbs] > 15) + (cdf[nsymbs] > 31) + | 651 | 17.1M | nsymbs2speed[nsymbs]; // + get_msb(nsymbs); | 652 | 17.1M | tmp = AOM_ICDF(0); | 653 | | | 654 | | // Single loop (faster) | 655 | 161M | for (i = 0; i < nsymbs - 1; ++i) { | 656 | 144M | tmp = (i == val) ? 0 : tmp; | 657 | 144M | if (tmp < cdf[i]) { | 658 | 56.7M | cdf[i] -= ((cdf[i] - tmp) >> rate); | 659 | 87.9M | } else { | 660 | 87.9M | cdf[i] += ((tmp - cdf[i]) >> rate); | 661 | 87.9M | } | 662 | 144M | } | 663 | 17.1M | cdf[nsymbs] += (cdf[nsymbs] < 32); | 664 | 17.1M | } |
Unexecuted instantiation: decoder.c:update_cdf Line | Count | Source | 643 | 25.0M | static INLINE void update_cdf(aom_cdf_prob *cdf, int8_t val, int nsymbs) { | 644 | 25.0M | int rate; | 645 | 25.0M | int i, tmp; | 646 | | | 647 | 25.0M | static const int nsymbs2speed[17] = { 0, 0, 1, 1, 2, 2, 2, 2, 2, | 648 | 25.0M | 2, 2, 2, 2, 2, 2, 2, 2 }; | 649 | 25.0M | assert(nsymbs < 17); | 650 | 25.0M | rate = 3 + (cdf[nsymbs] > 15) + (cdf[nsymbs] > 31) + | 651 | 25.0M | nsymbs2speed[nsymbs]; // + get_msb(nsymbs); | 652 | 25.0M | tmp = AOM_ICDF(0); | 653 | | | 654 | | // Single loop (faster) | 655 | 97.7M | for (i = 0; i < nsymbs - 1; ++i) { | 656 | 72.6M | tmp = (i == val) ? 0 : tmp; | 657 | 72.6M | if (tmp < cdf[i]) { | 658 | 40.3M | cdf[i] -= ((cdf[i] - tmp) >> rate); | 659 | 40.3M | } else { | 660 | 32.2M | cdf[i] += ((tmp - cdf[i]) >> rate); | 661 | 32.2M | } | 662 | 72.6M | } | 663 | 25.0M | cdf[nsymbs] += (cdf[nsymbs] < 32); | 664 | 25.0M | } |
Line | Count | Source | 643 | 2.72M | static INLINE void update_cdf(aom_cdf_prob *cdf, int8_t val, int nsymbs) { | 644 | 2.72M | int rate; | 645 | 2.72M | int i, tmp; | 646 | | | 647 | 2.72M | static const int nsymbs2speed[17] = { 0, 0, 1, 1, 2, 2, 2, 2, 2, | 648 | 2.72M | 2, 2, 2, 2, 2, 2, 2, 2 }; | 649 | 2.72M | assert(nsymbs < 17); | 650 | 2.72M | rate = 3 + (cdf[nsymbs] > 15) + (cdf[nsymbs] > 31) + | 651 | 2.72M | nsymbs2speed[nsymbs]; // + get_msb(nsymbs); | 652 | 2.72M | tmp = AOM_ICDF(0); | 653 | | | 654 | | // Single loop (faster) | 655 | 12.1M | for (i = 0; i < nsymbs - 1; ++i) { | 656 | 9.39M | tmp = (i == val) ? 0 : tmp; | 657 | 9.39M | if (tmp < cdf[i]) { | 658 | 7.69M | cdf[i] -= ((cdf[i] - tmp) >> rate); | 659 | 7.69M | } else { | 660 | 1.70M | cdf[i] += ((tmp - cdf[i]) >> rate); | 661 | 1.70M | } | 662 | 9.39M | } | 663 | 2.72M | cdf[nsymbs] += (cdf[nsymbs] < 32); | 664 | 2.72M | } |
Unexecuted instantiation: obu.c:update_cdf Unexecuted instantiation: av1_cx_iface.c:update_cdf Unexecuted instantiation: av1_quantize.c:update_cdf Unexecuted instantiation: bitstream.c:update_cdf Unexecuted instantiation: encodemv.c:update_cdf Unexecuted instantiation: encoder.c:update_cdf Unexecuted instantiation: encoder_utils.c:update_cdf Unexecuted instantiation: encodetxb.c:update_cdf Unexecuted instantiation: ethread.c:update_cdf Unexecuted instantiation: firstpass.c:update_cdf Unexecuted instantiation: global_motion_facade.c:update_cdf Unexecuted instantiation: hash_motion.c:update_cdf Unexecuted instantiation: level.c:update_cdf Unexecuted instantiation: lookahead.c:update_cdf Unexecuted instantiation: mcomp.c:update_cdf Unexecuted instantiation: mv_prec.c:update_cdf Unexecuted instantiation: palette.c:update_cdf Unexecuted instantiation: pass2_strategy.c:update_cdf Unexecuted instantiation: pickcdef.c:update_cdf Unexecuted instantiation: picklpf.c:update_cdf Unexecuted instantiation: pickrst.c:update_cdf Unexecuted instantiation: ratectrl.c:update_cdf Unexecuted instantiation: rd.c:update_cdf Unexecuted instantiation: rdopt.c:update_cdf Unexecuted instantiation: reconinter_enc.c:update_cdf Unexecuted instantiation: segmentation.c:update_cdf Unexecuted instantiation: speed_features.c:update_cdf Unexecuted instantiation: superres_scale.c:update_cdf Unexecuted instantiation: svc_layercontext.c:update_cdf Unexecuted instantiation: temporal_filter.c:update_cdf Unexecuted instantiation: thirdpass.c:update_cdf Unexecuted instantiation: tokenize.c:update_cdf Unexecuted instantiation: tpl_model.c:update_cdf Unexecuted instantiation: tx_search.c:update_cdf Unexecuted instantiation: txb_rdopt.c:update_cdf Unexecuted instantiation: intra_mode_search.c:update_cdf Unexecuted instantiation: var_based_part.c:update_cdf Unexecuted instantiation: av1_noise_estimate.c:update_cdf Unexecuted instantiation: dwt.c:update_cdf Unexecuted instantiation: aom_dsp_rtcd.c:update_cdf Unexecuted instantiation: av1_rtcd.c:update_cdf Unexecuted instantiation: aom_convolve.c:update_cdf Unexecuted instantiation: blend_a64_mask.c:update_cdf Unexecuted instantiation: avg.c:update_cdf Unexecuted instantiation: binary_codes_reader.c:update_cdf Unexecuted instantiation: bitreader.c:update_cdf Unexecuted instantiation: entdec.c:update_cdf Unexecuted instantiation: binary_codes_writer.c:update_cdf Unexecuted instantiation: bitwriter.c:update_cdf Unexecuted instantiation: blk_sse_sum.c:update_cdf Unexecuted instantiation: entenc.c:update_cdf Unexecuted instantiation: noise_util.c:update_cdf Unexecuted instantiation: psnr.c:update_cdf Unexecuted instantiation: sad.c:update_cdf Unexecuted instantiation: sad_av1.c:update_cdf Unexecuted instantiation: sse.c:update_cdf Unexecuted instantiation: sum_squares.c:update_cdf Unexecuted instantiation: variance.c:update_cdf Unexecuted instantiation: alloccommon.c:update_cdf Unexecuted instantiation: av1_loopfilter.c:update_cdf Unexecuted instantiation: blockd.c:update_cdf Unexecuted instantiation: cdef.c:update_cdf Unexecuted instantiation: cdef_block.c:update_cdf Unexecuted instantiation: cfl.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: aq_complexity.c:update_cdf Unexecuted instantiation: aq_cyclicrefresh.c:update_cdf Unexecuted instantiation: aq_variance.c:update_cdf Unexecuted instantiation: allintra_vis.c:update_cdf Unexecuted instantiation: av1_fwd_txfm2d.c:update_cdf Unexecuted instantiation: compound_type.c:update_cdf Unexecuted instantiation: context_tree.c:update_cdf Unexecuted instantiation: cost.c:update_cdf Unexecuted instantiation: encodeframe.c:update_cdf Unexecuted instantiation: encodeframe_utils.c:update_cdf Unexecuted instantiation: encodemb.c:update_cdf Unexecuted instantiation: encode_strategy.c:update_cdf Unexecuted instantiation: global_motion.c:update_cdf Unexecuted instantiation: gop_structure.c:update_cdf Unexecuted instantiation: hybrid_fwd_txfm.c:update_cdf Unexecuted instantiation: interp_search.c:update_cdf Unexecuted instantiation: ml.c:update_cdf Unexecuted instantiation: motion_search_facade.c:update_cdf Unexecuted instantiation: partition_search.c:update_cdf Unexecuted instantiation: partition_strategy.c:update_cdf Unexecuted instantiation: nonrd_pickmode.c:update_cdf Unexecuted instantiation: wedge_utils.c:update_cdf Unexecuted instantiation: blend_a64_hmask.c:update_cdf Unexecuted instantiation: blend_a64_vmask.c:update_cdf Unexecuted instantiation: entcode.c:update_cdf Unexecuted instantiation: intrapred.c:update_cdf Unexecuted instantiation: loopfilter.c:update_cdf Unexecuted instantiation: subtract.c:update_cdf Unexecuted instantiation: fwd_txfm.c:update_cdf Unexecuted instantiation: av1_inv_txfm2d.c:update_cdf Unexecuted instantiation: av1_txfm.c:update_cdf Unexecuted instantiation: convolve.c:update_cdf Unexecuted instantiation: av1_fwd_txfm1d.c:update_cdf Unexecuted instantiation: cnn.c:update_cdf Unexecuted instantiation: corner_match.c:update_cdf Unexecuted instantiation: av1_inv_txfm1d.c:update_cdf |
665 | | |
666 | | #ifdef __cplusplus |
667 | | } // extern "C" |
668 | | #endif |
669 | | |
670 | | #endif // AOM_AOM_DSP_PROB_H_ |