Coverage Report

Created: 2026-03-08 06:41

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/work/aom/aom_dsp/intrapred.c
Line
Count
Source
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
#include <assert.h>
13
#include <math.h>
14
15
#include "config/aom_config.h"
16
#include "config/aom_dsp_rtcd.h"
17
18
#include "aom_dsp/aom_dsp_common.h"
19
#include "aom_dsp/intrapred_common.h"
20
#include "aom_mem/aom_mem.h"
21
#include "aom_ports/bitops.h"
22
23
static INLINE void v_predictor(uint8_t *dst, ptrdiff_t stride, int bw, int bh,
24
983k
                               const uint8_t *above, const uint8_t *left) {
25
983k
  int r;
26
983k
  (void)left;
27
28
7.29M
  for (r = 0; r < bh; r++) {
29
6.31M
    memcpy(dst, above, bw);
30
6.31M
    dst += stride;
31
6.31M
  }
32
983k
}
33
34
static INLINE void h_predictor(uint8_t *dst, ptrdiff_t stride, int bw, int bh,
35
1.14M
                               const uint8_t *above, const uint8_t *left) {
36
1.14M
  int r;
37
1.14M
  (void)above;
38
39
9.08M
  for (r = 0; r < bh; r++) {
40
7.93M
    memset(dst, left[r], bw);
41
7.93M
    dst += stride;
42
7.93M
  }
43
1.14M
}
44
45
883M
static INLINE int abs_diff(int a, int b) { return (a > b) ? a - b : b - a; }
46
47
static INLINE uint16_t paeth_predictor_single(uint16_t left, uint16_t top,
48
294M
                                              uint16_t top_left) {
49
294M
  const int base = top + left - top_left;
50
294M
  const int p_left = abs_diff(base, left);
51
294M
  const int p_top = abs_diff(base, top);
52
294M
  const int p_top_left = abs_diff(base, top_left);
53
54
  // Return nearest to base of left, top and top_left.
55
294M
  return (p_left <= p_top && p_left <= p_top_left)
56
294M
             ? left
57
294M
             : (p_top <= p_top_left) ? top : top_left;
58
294M
}
59
60
static INLINE void paeth_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
61
                                   int bh, const uint8_t *above,
62
1.34M
                                   const uint8_t *left) {
63
1.34M
  int r, c;
64
1.34M
  const uint8_t ytop_left = above[-1];
65
66
12.5M
  for (r = 0; r < bh; r++) {
67
202M
    for (c = 0; c < bw; c++)
68
191M
      dst[c] = (uint8_t)paeth_predictor_single(left[r], above[c], ytop_left);
69
11.2M
    dst += stride;
70
11.2M
  }
71
1.34M
}
72
73
// Some basic checks on weights for smooth predictor.
74
#define sm_weights_sanity_checks(weights_w, weights_h, weights_scale, \
75
                                 pred_scale)                          \
76
3.03M
  assert(weights_w[0] < weights_scale);                               \
77
3.03M
  assert(weights_h[0] < weights_scale);                               \
78
3.03M
  assert(weights_scale - weights_w[bw - 1] < weights_scale);          \
79
3.03M
  assert(weights_scale - weights_h[bh - 1] < weights_scale);          \
80
3.03M
  assert(pred_scale < 31)  // ensures no overflow when calculating predictor.
81
82
435M
#define divide_round(value, bits) (((value) + (1 << ((bits)-1))) >> (bits))
83
84
static INLINE void smooth_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
85
                                    int bh, const uint8_t *above,
86
1.88M
                                    const uint8_t *left) {
87
1.88M
  const uint8_t below_pred = left[bh - 1];   // estimated by bottom-left pixel
88
1.88M
  const uint8_t right_pred = above[bw - 1];  // estimated by top-right pixel
89
1.88M
  const uint8_t *const sm_weights_w = sm_weight_arrays + bw;
90
1.88M
  const uint8_t *const sm_weights_h = sm_weight_arrays + bh;
91
  // scale = 2 * 2^sm_weight_log2_scale
92
1.88M
  const int log2_scale = 1 + sm_weight_log2_scale;
93
1.88M
  const uint16_t scale = (1 << sm_weight_log2_scale);
94
1.88M
  sm_weights_sanity_checks(sm_weights_w, sm_weights_h, scale,
95
1.88M
                           log2_scale + sizeof(*dst));
96
1.88M
  int r;
97
15.5M
  for (r = 0; r < bh; ++r) {
98
13.6M
    int c;
99
198M
    for (c = 0; c < bw; ++c) {
100
185M
      const uint8_t pixels[] = { above[c], below_pred, left[r], right_pred };
101
185M
      const uint8_t weights[] = { sm_weights_h[r], scale - sm_weights_h[r],
102
185M
                                  sm_weights_w[c], scale - sm_weights_w[c] };
103
185M
      uint32_t this_pred = 0;
104
185M
      int i;
105
185M
      assert(scale >= sm_weights_h[r] && scale >= sm_weights_w[c]);
106
925M
      for (i = 0; i < 4; ++i) {
107
740M
        this_pred += weights[i] * pixels[i];
108
740M
      }
109
185M
      dst[c] = divide_round(this_pred, log2_scale);
110
185M
    }
111
13.6M
    dst += stride;
112
13.6M
  }
113
1.88M
}
114
115
static INLINE void smooth_v_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
116
                                      int bh, const uint8_t *above,
117
205k
                                      const uint8_t *left) {
118
205k
  const uint8_t below_pred = left[bh - 1];  // estimated by bottom-left pixel
119
205k
  const uint8_t *const sm_weights = sm_weight_arrays + bh;
120
  // scale = 2^sm_weight_log2_scale
121
205k
  const int log2_scale = sm_weight_log2_scale;
122
205k
  const uint16_t scale = (1 << sm_weight_log2_scale);
123
205k
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
124
205k
                           log2_scale + sizeof(*dst));
125
126
205k
  int r;
127
2.14M
  for (r = 0; r < bh; r++) {
128
1.93M
    int c;
129
33.5M
    for (c = 0; c < bw; ++c) {
130
31.5M
      const uint8_t pixels[] = { above[c], below_pred };
131
31.5M
      const uint8_t weights[] = { sm_weights[r], scale - sm_weights[r] };
132
31.5M
      uint32_t this_pred = 0;
133
31.5M
      assert(scale >= sm_weights[r]);
134
31.5M
      int i;
135
94.7M
      for (i = 0; i < 2; ++i) {
136
63.1M
        this_pred += weights[i] * pixels[i];
137
63.1M
      }
138
31.5M
      dst[c] = divide_round(this_pred, log2_scale);
139
31.5M
    }
140
1.93M
    dst += stride;
141
1.93M
  }
142
205k
}
143
144
static INLINE void smooth_h_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
145
                                      int bh, const uint8_t *above,
146
350k
                                      const uint8_t *left) {
147
350k
  const uint8_t right_pred = above[bw - 1];  // estimated by top-right pixel
148
350k
  const uint8_t *const sm_weights = sm_weight_arrays + bw;
149
  // scale = 2^sm_weight_log2_scale
150
350k
  const int log2_scale = sm_weight_log2_scale;
151
350k
  const uint16_t scale = (1 << sm_weight_log2_scale);
152
350k
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
153
350k
                           log2_scale + sizeof(*dst));
154
155
350k
  int r;
156
3.35M
  for (r = 0; r < bh; r++) {
157
3.00M
    int c;
158
46.3M
    for (c = 0; c < bw; ++c) {
159
43.3M
      const uint8_t pixels[] = { left[r], right_pred };
160
43.3M
      const uint8_t weights[] = { sm_weights[c], scale - sm_weights[c] };
161
43.3M
      uint32_t this_pred = 0;
162
43.3M
      assert(scale >= sm_weights[c]);
163
43.3M
      int i;
164
130M
      for (i = 0; i < 2; ++i) {
165
86.6M
        this_pred += weights[i] * pixels[i];
166
86.6M
      }
167
43.3M
      dst[c] = divide_round(this_pred, log2_scale);
168
43.3M
    }
169
3.00M
    dst += stride;
170
3.00M
  }
171
350k
}
172
173
static INLINE void dc_128_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
174
                                    int bh, const uint8_t *above,
175
30.4k
                                    const uint8_t *left) {
176
30.4k
  int r;
177
30.4k
  (void)above;
178
30.4k
  (void)left;
179
180
545k
  for (r = 0; r < bh; r++) {
181
515k
    memset(dst, 128, bw);
182
515k
    dst += stride;
183
515k
  }
184
30.4k
}
185
186
static INLINE void dc_left_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
187
                                     int bh, const uint8_t *above,
188
222k
                                     const uint8_t *left) {
189
222k
  int i, r, expected_dc, sum = 0;
190
222k
  (void)above;
191
192
3.23M
  for (i = 0; i < bh; i++) sum += left[i];
193
222k
  expected_dc = (sum + (bh >> 1)) / bh;
194
195
3.23M
  for (r = 0; r < bh; r++) {
196
3.01M
    memset(dst, expected_dc, bw);
197
3.01M
    dst += stride;
198
3.01M
  }
199
222k
}
200
201
static INLINE void dc_top_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
202
                                    int bh, const uint8_t *above,
203
166k
                                    const uint8_t *left) {
204
166k
  int i, r, expected_dc, sum = 0;
205
166k
  (void)left;
206
207
2.14M
  for (i = 0; i < bw; i++) sum += above[i];
208
166k
  expected_dc = (sum + (bw >> 1)) / bw;
209
210
2.08M
  for (r = 0; r < bh; r++) {
211
1.91M
    memset(dst, expected_dc, bw);
212
1.91M
    dst += stride;
213
1.91M
  }
214
166k
}
215
216
static INLINE void dc_predictor(uint8_t *dst, ptrdiff_t stride, int bw, int bh,
217
4.57M
                                const uint8_t *above, const uint8_t *left) {
218
4.57M
  int i, r, expected_dc, sum = 0;
219
4.57M
  const int count = bw + bh;
220
221
33.6M
  for (i = 0; i < bw; i++) {
222
29.1M
    sum += above[i];
223
29.1M
  }
224
33.6M
  for (i = 0; i < bh; i++) {
225
29.1M
    sum += left[i];
226
29.1M
  }
227
228
4.57M
  expected_dc = (sum + (count >> 1)) / count;
229
230
33.6M
  for (r = 0; r < bh; r++) {
231
29.1M
    memset(dst, expected_dc, bw);
232
29.1M
    dst += stride;
233
29.1M
  }
234
4.57M
}
235
236
static INLINE int divide_using_multiply_shift(int num, int shift1,
237
1.56M
                                              int multiplier, int shift2) {
238
1.56M
  const int interm = num >> shift1;
239
1.56M
  return interm * multiplier >> shift2;
240
1.56M
}
241
242
// The constants (multiplier and shifts) for a given block size are obtained
243
// as follows:
244
// - Let sum_w_h =  block width + block height.
245
// - Shift 'sum_w_h' right until we reach an odd number. Let the number of
246
// shifts for that block size be called 'shift1' (see the parameter in
247
// dc_predictor_rect() function), and let the odd number be 'd'. [d has only 2
248
// possible values: d = 3 for a 1:2 rect block and d = 5 for a 1:4 rect
249
// block].
250
// - Find multipliers for (i) dividing by 3, and (ii) dividing by 5,
251
// using the "Algorithm 1" in:
252
// http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1467632
253
// by ensuring that m + n = 16 (in that algorithm). This ensures that our 2nd
254
// shift will be 16, regardless of the block size.
255
256
// Note: For low bitdepth, assembly code may be optimized by using smaller
257
// constants for smaller block sizes, where the range of the 'sum' is
258
// restricted to fewer bits.
259
260
764k
#define DC_MULTIPLIER_1X2 0x5556
261
218k
#define DC_MULTIPLIER_1X4 0x3334
262
263
983k
#define DC_SHIFT2 16
264
265
static INLINE void dc_predictor_rect(uint8_t *dst, ptrdiff_t stride, int bw,
266
                                     int bh, const uint8_t *above,
267
                                     const uint8_t *left, int shift1,
268
983k
                                     int multiplier) {
269
983k
  int sum = 0;
270
271
10.7M
  for (int i = 0; i < bw; i++) {
272
9.79M
    sum += above[i];
273
9.79M
  }
274
9.91M
  for (int i = 0; i < bh; i++) {
275
8.92M
    sum += left[i];
276
8.92M
  }
277
278
983k
  const int expected_dc = divide_using_multiply_shift(
279
983k
      sum + ((bw + bh) >> 1), shift1, multiplier, DC_SHIFT2);
280
983k
  assert(expected_dc < (1 << 8));
281
282
9.91M
  for (int r = 0; r < bh; r++) {
283
8.92M
    memset(dst, expected_dc, bw);
284
8.92M
    dst += stride;
285
8.92M
  }
286
983k
}
287
288
#undef DC_SHIFT2
289
290
void aom_dc_predictor_4x8_c(uint8_t *dst, ptrdiff_t stride,
291
207k
                            const uint8_t *above, const uint8_t *left) {
292
207k
  dc_predictor_rect(dst, stride, 4, 8, above, left, 2, DC_MULTIPLIER_1X2);
293
207k
}
294
295
void aom_dc_predictor_8x4_c(uint8_t *dst, ptrdiff_t stride,
296
353k
                            const uint8_t *above, const uint8_t *left) {
297
353k
  dc_predictor_rect(dst, stride, 8, 4, above, left, 2, DC_MULTIPLIER_1X2);
298
353k
}
299
300
void aom_dc_predictor_4x16_c(uint8_t *dst, ptrdiff_t stride,
301
72.9k
                             const uint8_t *above, const uint8_t *left) {
302
72.9k
  dc_predictor_rect(dst, stride, 4, 16, above, left, 2, DC_MULTIPLIER_1X4);
303
72.9k
}
304
305
void aom_dc_predictor_16x4_c(uint8_t *dst, ptrdiff_t stride,
306
89.3k
                             const uint8_t *above, const uint8_t *left) {
307
89.3k
  dc_predictor_rect(dst, stride, 16, 4, above, left, 2, DC_MULTIPLIER_1X4);
308
89.3k
}
309
310
void aom_dc_predictor_8x16_c(uint8_t *dst, ptrdiff_t stride,
311
72.0k
                             const uint8_t *above, const uint8_t *left) {
312
72.0k
  dc_predictor_rect(dst, stride, 8, 16, above, left, 3, DC_MULTIPLIER_1X2);
313
72.0k
}
314
315
void aom_dc_predictor_16x8_c(uint8_t *dst, ptrdiff_t stride,
316
86.1k
                             const uint8_t *above, const uint8_t *left) {
317
86.1k
  dc_predictor_rect(dst, stride, 16, 8, above, left, 3, DC_MULTIPLIER_1X2);
318
86.1k
}
319
320
void aom_dc_predictor_8x32_c(uint8_t *dst, ptrdiff_t stride,
321
25.2k
                             const uint8_t *above, const uint8_t *left) {
322
25.2k
  dc_predictor_rect(dst, stride, 8, 32, above, left, 3, DC_MULTIPLIER_1X4);
323
25.2k
}
324
325
void aom_dc_predictor_32x8_c(uint8_t *dst, ptrdiff_t stride,
326
24.5k
                             const uint8_t *above, const uint8_t *left) {
327
24.5k
  dc_predictor_rect(dst, stride, 32, 8, above, left, 3, DC_MULTIPLIER_1X4);
328
24.5k
}
329
330
void aom_dc_predictor_16x32_c(uint8_t *dst, ptrdiff_t stride,
331
19.5k
                              const uint8_t *above, const uint8_t *left) {
332
19.5k
  dc_predictor_rect(dst, stride, 16, 32, above, left, 4, DC_MULTIPLIER_1X2);
333
19.5k
}
334
335
void aom_dc_predictor_32x16_c(uint8_t *dst, ptrdiff_t stride,
336
20.7k
                              const uint8_t *above, const uint8_t *left) {
337
20.7k
  dc_predictor_rect(dst, stride, 32, 16, above, left, 4, DC_MULTIPLIER_1X2);
338
20.7k
}
339
340
void aom_dc_predictor_16x64_c(uint8_t *dst, ptrdiff_t stride,
341
3.85k
                              const uint8_t *above, const uint8_t *left) {
342
3.85k
  dc_predictor_rect(dst, stride, 16, 64, above, left, 4, DC_MULTIPLIER_1X4);
343
3.85k
}
344
345
void aom_dc_predictor_64x16_c(uint8_t *dst, ptrdiff_t stride,
346
3.02k
                              const uint8_t *above, const uint8_t *left) {
347
3.02k
  dc_predictor_rect(dst, stride, 64, 16, above, left, 4, DC_MULTIPLIER_1X4);
348
3.02k
}
349
350
void aom_dc_predictor_32x64_c(uint8_t *dst, ptrdiff_t stride,
351
2.36k
                              const uint8_t *above, const uint8_t *left) {
352
2.36k
  dc_predictor_rect(dst, stride, 32, 64, above, left, 5, DC_MULTIPLIER_1X2);
353
2.36k
}
354
355
void aom_dc_predictor_64x32_c(uint8_t *dst, ptrdiff_t stride,
356
2.56k
                              const uint8_t *above, const uint8_t *left) {
357
2.56k
  dc_predictor_rect(dst, stride, 64, 32, above, left, 5, DC_MULTIPLIER_1X2);
358
2.56k
}
359
360
#undef DC_MULTIPLIER_1X2
361
#undef DC_MULTIPLIER_1X4
362
363
static INLINE void highbd_v_predictor(uint16_t *dst, ptrdiff_t stride, int bw,
364
                                      int bh, const uint16_t *above,
365
138k
                                      const uint16_t *left, int bd) {
366
138k
  int r;
367
138k
  (void)left;
368
138k
  (void)bd;
369
1.69M
  for (r = 0; r < bh; r++) {
370
1.56M
    memcpy(dst, above, bw * sizeof(uint16_t));
371
1.56M
    dst += stride;
372
1.56M
  }
373
138k
}
374
375
static INLINE void highbd_h_predictor(uint16_t *dst, ptrdiff_t stride, int bw,
376
                                      int bh, const uint16_t *above,
377
180k
                                      const uint16_t *left, int bd) {
378
180k
  int r;
379
180k
  (void)above;
380
180k
  (void)bd;
381
2.55M
  for (r = 0; r < bh; r++) {
382
2.37M
    aom_memset16(dst, left[r], bw);
383
2.37M
    dst += stride;
384
2.37M
  }
385
180k
}
386
387
static INLINE void highbd_paeth_predictor(uint16_t *dst, ptrdiff_t stride,
388
                                          int bw, int bh, const uint16_t *above,
389
368k
                                          const uint16_t *left, int bd) {
390
368k
  int r, c;
391
368k
  const uint16_t ytop_left = above[-1];
392
368k
  (void)bd;
393
394
5.97M
  for (r = 0; r < bh; r++) {
395
109M
    for (c = 0; c < bw; c++)
396
103M
      dst[c] = paeth_predictor_single(left[r], above[c], ytop_left);
397
5.60M
    dst += stride;
398
5.60M
  }
399
368k
}
400
401
static INLINE void highbd_smooth_predictor(uint16_t *dst, ptrdiff_t stride,
402
                                           int bw, int bh,
403
                                           const uint16_t *above,
404
352k
                                           const uint16_t *left, int bd) {
405
352k
  (void)bd;
406
352k
  const uint16_t below_pred = left[bh - 1];   // estimated by bottom-left pixel
407
352k
  const uint16_t right_pred = above[bw - 1];  // estimated by top-right pixel
408
352k
  const uint8_t *const sm_weights_w = sm_weight_arrays + bw;
409
352k
  const uint8_t *const sm_weights_h = sm_weight_arrays + bh;
410
  // scale = 2 * 2^sm_weight_log2_scale
411
352k
  const int log2_scale = 1 + sm_weight_log2_scale;
412
352k
  const uint16_t scale = (1 << sm_weight_log2_scale);
413
352k
  sm_weights_sanity_checks(sm_weights_w, sm_weights_h, scale,
414
352k
                           log2_scale + sizeof(*dst));
415
352k
  int r;
416
4.56M
  for (r = 0; r < bh; ++r) {
417
4.21M
    int c;
418
104M
    for (c = 0; c < bw; ++c) {
419
100M
      const uint16_t pixels[] = { above[c], below_pred, left[r], right_pred };
420
100M
      const uint8_t weights[] = { sm_weights_h[r], scale - sm_weights_h[r],
421
100M
                                  sm_weights_w[c], scale - sm_weights_w[c] };
422
100M
      uint32_t this_pred = 0;
423
100M
      int i;
424
100M
      assert(scale >= sm_weights_h[r] && scale >= sm_weights_w[c]);
425
500M
      for (i = 0; i < 4; ++i) {
426
400M
        this_pred += weights[i] * pixels[i];
427
400M
      }
428
100M
      dst[c] = divide_round(this_pred, log2_scale);
429
100M
    }
430
4.21M
    dst += stride;
431
4.21M
  }
432
352k
}
433
434
static INLINE void highbd_smooth_v_predictor(uint16_t *dst, ptrdiff_t stride,
435
                                             int bw, int bh,
436
                                             const uint16_t *above,
437
105k
                                             const uint16_t *left, int bd) {
438
105k
  (void)bd;
439
105k
  const uint16_t below_pred = left[bh - 1];  // estimated by bottom-left pixel
440
105k
  const uint8_t *const sm_weights = sm_weight_arrays + bh;
441
  // scale = 2^sm_weight_log2_scale
442
105k
  const int log2_scale = sm_weight_log2_scale;
443
105k
  const uint16_t scale = (1 << sm_weight_log2_scale);
444
105k
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
445
105k
                           log2_scale + sizeof(*dst));
446
447
105k
  int r;
448
1.31M
  for (r = 0; r < bh; r++) {
449
1.21M
    int c;
450
25.7M
    for (c = 0; c < bw; ++c) {
451
24.4M
      const uint16_t pixels[] = { above[c], below_pred };
452
24.4M
      const uint8_t weights[] = { sm_weights[r], scale - sm_weights[r] };
453
24.4M
      uint32_t this_pred = 0;
454
24.4M
      assert(scale >= sm_weights[r]);
455
24.4M
      int i;
456
73.4M
      for (i = 0; i < 2; ++i) {
457
48.9M
        this_pred += weights[i] * pixels[i];
458
48.9M
      }
459
24.4M
      dst[c] = divide_round(this_pred, log2_scale);
460
24.4M
    }
461
1.21M
    dst += stride;
462
1.21M
  }
463
105k
}
464
465
static INLINE void highbd_smooth_h_predictor(uint16_t *dst, ptrdiff_t stride,
466
                                             int bw, int bh,
467
                                             const uint16_t *above,
468
135k
                                             const uint16_t *left, int bd) {
469
135k
  (void)bd;
470
135k
  const uint16_t right_pred = above[bw - 1];  // estimated by top-right pixel
471
135k
  const uint8_t *const sm_weights = sm_weight_arrays + bw;
472
  // scale = 2^sm_weight_log2_scale
473
135k
  const int log2_scale = sm_weight_log2_scale;
474
135k
  const uint16_t scale = (1 << sm_weight_log2_scale);
475
135k
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
476
135k
                           log2_scale + sizeof(*dst));
477
478
135k
  int r;
479
1.97M
  for (r = 0; r < bh; r++) {
480
1.83M
    int c;
481
52.4M
    for (c = 0; c < bw; ++c) {
482
50.6M
      const uint16_t pixels[] = { left[r], right_pred };
483
50.6M
      const uint8_t weights[] = { sm_weights[c], scale - sm_weights[c] };
484
50.6M
      uint32_t this_pred = 0;
485
50.6M
      assert(scale >= sm_weights[c]);
486
50.6M
      int i;
487
151M
      for (i = 0; i < 2; ++i) {
488
101M
        this_pred += weights[i] * pixels[i];
489
101M
      }
490
50.6M
      dst[c] = divide_round(this_pred, log2_scale);
491
50.6M
    }
492
1.83M
    dst += stride;
493
1.83M
  }
494
135k
}
495
496
static INLINE void highbd_dc_128_predictor(uint16_t *dst, ptrdiff_t stride,
497
                                           int bw, int bh,
498
                                           const uint16_t *above,
499
10.8k
                                           const uint16_t *left, int bd) {
500
10.8k
  int r;
501
10.8k
  (void)above;
502
10.8k
  (void)left;
503
504
398k
  for (r = 0; r < bh; r++) {
505
387k
    aom_memset16(dst, 128 << (bd - 8), bw);
506
387k
    dst += stride;
507
387k
  }
508
10.8k
}
509
510
static INLINE void highbd_dc_left_predictor(uint16_t *dst, ptrdiff_t stride,
511
                                            int bw, int bh,
512
                                            const uint16_t *above,
513
60.9k
                                            const uint16_t *left, int bd) {
514
60.9k
  int i, r, expected_dc, sum = 0;
515
60.9k
  (void)above;
516
60.9k
  (void)bd;
517
518
1.58M
  for (i = 0; i < bh; i++) sum += left[i];
519
60.9k
  expected_dc = (sum + (bh >> 1)) / bh;
520
521
1.58M
  for (r = 0; r < bh; r++) {
522
1.51M
    aom_memset16(dst, expected_dc, bw);
523
1.51M
    dst += stride;
524
1.51M
  }
525
60.9k
}
526
527
static INLINE void highbd_dc_top_predictor(uint16_t *dst, ptrdiff_t stride,
528
                                           int bw, int bh,
529
                                           const uint16_t *above,
530
31.3k
                                           const uint16_t *left, int bd) {
531
31.3k
  int i, r, expected_dc, sum = 0;
532
31.3k
  (void)left;
533
31.3k
  (void)bd;
534
535
879k
  for (i = 0; i < bw; i++) sum += above[i];
536
31.3k
  expected_dc = (sum + (bw >> 1)) / bw;
537
538
823k
  for (r = 0; r < bh; r++) {
539
792k
    aom_memset16(dst, expected_dc, bw);
540
792k
    dst += stride;
541
792k
  }
542
31.3k
}
543
544
static INLINE void highbd_dc_predictor(uint16_t *dst, ptrdiff_t stride, int bw,
545
                                       int bh, const uint16_t *above,
546
766k
                                       const uint16_t *left, int bd) {
547
766k
  int i, r, expected_dc, sum = 0;
548
766k
  const int count = bw + bh;
549
766k
  (void)bd;
550
551
10.4M
  for (i = 0; i < bw; i++) {
552
9.63M
    sum += above[i];
553
9.63M
  }
554
10.4M
  for (i = 0; i < bh; i++) {
555
9.63M
    sum += left[i];
556
9.63M
  }
557
558
766k
  expected_dc = (sum + (count >> 1)) / count;
559
560
10.4M
  for (r = 0; r < bh; r++) {
561
9.63M
    aom_memset16(dst, expected_dc, bw);
562
9.63M
    dst += stride;
563
9.63M
  }
564
766k
}
565
566
// Obtained similarly as DC_MULTIPLIER_1X2 and DC_MULTIPLIER_1X4 above, but
567
// assume 2nd shift of 17 bits instead of 16.
568
// Note: Strictly speaking, 2nd shift needs to be 17 only when:
569
// - bit depth == 12, and
570
// - bw + bh is divisible by 5 (as opposed to divisible by 3).
571
// All other cases can use half the multipliers with a shift of 16 instead.
572
// This special optimization can be used when writing assembly code.
573
422k
#define HIGHBD_DC_MULTIPLIER_1X2 0xAAAB
574
// Note: This constant is odd, but a smaller even constant (0x199a) with the
575
// appropriate shift should work for neon in 8/10-bit.
576
155k
#define HIGHBD_DC_MULTIPLIER_1X4 0x6667
577
578
577k
#define HIGHBD_DC_SHIFT2 17
579
580
static INLINE void highbd_dc_predictor_rect(uint16_t *dst, ptrdiff_t stride,
581
                                            int bw, int bh,
582
                                            const uint16_t *above,
583
                                            const uint16_t *left, int bd,
584
577k
                                            int shift1, uint32_t multiplier) {
585
577k
  int sum = 0;
586
577k
  (void)bd;
587
588
6.74M
  for (int i = 0; i < bw; i++) {
589
6.17M
    sum += above[i];
590
6.17M
  }
591
6.11M
  for (int i = 0; i < bh; i++) {
592
5.54M
    sum += left[i];
593
5.54M
  }
594
595
577k
  const int expected_dc = divide_using_multiply_shift(
596
577k
      sum + ((bw + bh) >> 1), shift1, multiplier, HIGHBD_DC_SHIFT2);
597
577k
  assert(expected_dc < (1 << bd));
598
599
6.11M
  for (int r = 0; r < bh; r++) {
600
5.54M
    aom_memset16(dst, expected_dc, bw);
601
5.54M
    dst += stride;
602
5.54M
  }
603
577k
}
604
605
#undef HIGHBD_DC_SHIFT2
606
607
void aom_highbd_dc_predictor_4x8_c(uint16_t *dst, ptrdiff_t stride,
608
                                   const uint16_t *above, const uint16_t *left,
609
111k
                                   int bd) {
610
111k
  highbd_dc_predictor_rect(dst, stride, 4, 8, above, left, bd, 2,
611
111k
                           HIGHBD_DC_MULTIPLIER_1X2);
612
111k
}
613
614
void aom_highbd_dc_predictor_8x4_c(uint16_t *dst, ptrdiff_t stride,
615
                                   const uint16_t *above, const uint16_t *left,
616
180k
                                   int bd) {
617
180k
  highbd_dc_predictor_rect(dst, stride, 8, 4, above, left, bd, 2,
618
180k
                           HIGHBD_DC_MULTIPLIER_1X2);
619
180k
}
620
621
void aom_highbd_dc_predictor_4x16_c(uint16_t *dst, ptrdiff_t stride,
622
                                    const uint16_t *above, const uint16_t *left,
623
44.0k
                                    int bd) {
624
44.0k
  highbd_dc_predictor_rect(dst, stride, 4, 16, above, left, bd, 2,
625
44.0k
                           HIGHBD_DC_MULTIPLIER_1X4);
626
44.0k
}
627
628
void aom_highbd_dc_predictor_16x4_c(uint16_t *dst, ptrdiff_t stride,
629
                                    const uint16_t *above, const uint16_t *left,
630
66.1k
                                    int bd) {
631
66.1k
  highbd_dc_predictor_rect(dst, stride, 16, 4, above, left, bd, 2,
632
66.1k
                           HIGHBD_DC_MULTIPLIER_1X4);
633
66.1k
}
634
635
void aom_highbd_dc_predictor_8x16_c(uint16_t *dst, ptrdiff_t stride,
636
                                    const uint16_t *above, const uint16_t *left,
637
43.0k
                                    int bd) {
638
43.0k
  highbd_dc_predictor_rect(dst, stride, 8, 16, above, left, bd, 3,
639
43.0k
                           HIGHBD_DC_MULTIPLIER_1X2);
640
43.0k
}
641
642
void aom_highbd_dc_predictor_16x8_c(uint16_t *dst, ptrdiff_t stride,
643
                                    const uint16_t *above, const uint16_t *left,
644
60.5k
                                    int bd) {
645
60.5k
  highbd_dc_predictor_rect(dst, stride, 16, 8, above, left, bd, 3,
646
60.5k
                           HIGHBD_DC_MULTIPLIER_1X2);
647
60.5k
}
648
649
void aom_highbd_dc_predictor_8x32_c(uint16_t *dst, ptrdiff_t stride,
650
                                    const uint16_t *above, const uint16_t *left,
651
20.3k
                                    int bd) {
652
20.3k
  highbd_dc_predictor_rect(dst, stride, 8, 32, above, left, bd, 3,
653
20.3k
                           HIGHBD_DC_MULTIPLIER_1X4);
654
20.3k
}
655
656
void aom_highbd_dc_predictor_32x8_c(uint16_t *dst, ptrdiff_t stride,
657
                                    const uint16_t *above, const uint16_t *left,
658
18.8k
                                    int bd) {
659
18.8k
  highbd_dc_predictor_rect(dst, stride, 32, 8, above, left, bd, 3,
660
18.8k
                           HIGHBD_DC_MULTIPLIER_1X4);
661
18.8k
}
662
663
void aom_highbd_dc_predictor_16x32_c(uint16_t *dst, ptrdiff_t stride,
664
                                     const uint16_t *above,
665
10.3k
                                     const uint16_t *left, int bd) {
666
10.3k
  highbd_dc_predictor_rect(dst, stride, 16, 32, above, left, bd, 4,
667
10.3k
                           HIGHBD_DC_MULTIPLIER_1X2);
668
10.3k
}
669
670
void aom_highbd_dc_predictor_32x16_c(uint16_t *dst, ptrdiff_t stride,
671
                                     const uint16_t *above,
672
13.5k
                                     const uint16_t *left, int bd) {
673
13.5k
  highbd_dc_predictor_rect(dst, stride, 32, 16, above, left, bd, 4,
674
13.5k
                           HIGHBD_DC_MULTIPLIER_1X2);
675
13.5k
}
676
677
void aom_highbd_dc_predictor_16x64_c(uint16_t *dst, ptrdiff_t stride,
678
                                     const uint16_t *above,
679
4.18k
                                     const uint16_t *left, int bd) {
680
4.18k
  highbd_dc_predictor_rect(dst, stride, 16, 64, above, left, bd, 4,
681
4.18k
                           HIGHBD_DC_MULTIPLIER_1X4);
682
4.18k
}
683
684
void aom_highbd_dc_predictor_64x16_c(uint16_t *dst, ptrdiff_t stride,
685
                                     const uint16_t *above,
686
2.34k
                                     const uint16_t *left, int bd) {
687
2.34k
  highbd_dc_predictor_rect(dst, stride, 64, 16, above, left, bd, 4,
688
2.34k
                           HIGHBD_DC_MULTIPLIER_1X4);
689
2.34k
}
690
691
void aom_highbd_dc_predictor_32x64_c(uint16_t *dst, ptrdiff_t stride,
692
                                     const uint16_t *above,
693
1.13k
                                     const uint16_t *left, int bd) {
694
1.13k
  highbd_dc_predictor_rect(dst, stride, 32, 64, above, left, bd, 5,
695
1.13k
                           HIGHBD_DC_MULTIPLIER_1X2);
696
1.13k
}
697
698
void aom_highbd_dc_predictor_64x32_c(uint16_t *dst, ptrdiff_t stride,
699
                                     const uint16_t *above,
700
1.84k
                                     const uint16_t *left, int bd) {
701
1.84k
  highbd_dc_predictor_rect(dst, stride, 64, 32, above, left, bd, 5,
702
1.84k
                           HIGHBD_DC_MULTIPLIER_1X2);
703
1.84k
}
704
705
#undef HIGHBD_DC_MULTIPLIER_1X2
706
#undef HIGHBD_DC_MULTIPLIER_1X4
707
708
// This serves as a wrapper function, so that all the prediction functions
709
// can be unified and accessed as a pointer array. Note that the boundary
710
// above and left are not necessarily used all the time.
711
#define intra_pred_sized(type, width, height)                  \
712
  void aom_##type##_predictor_##width##x##height##_c(          \
713
      uint8_t *dst, ptrdiff_t stride, const uint8_t *above,    \
714
10.9M
      const uint8_t *left) {                                   \
715
10.9M
    type##_predictor(dst, stride, width, height, above, left); \
716
10.9M
  }
aom_v_predictor_4x4_c
Line
Count
Source
714
738k
      const uint8_t *left) {                                   \
715
738k
    type##_predictor(dst, stride, width, height, above, left); \
716
738k
  }
aom_v_predictor_8x8_c
Line
Count
Source
714
74.5k
      const uint8_t *left) {                                   \
715
74.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
74.5k
  }
aom_v_predictor_16x16_c
Line
Count
Source
714
42.1k
      const uint8_t *left) {                                   \
715
42.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
42.1k
  }
aom_v_predictor_32x32_c
Line
Count
Source
714
34.2k
      const uint8_t *left) {                                   \
715
34.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
34.2k
  }
aom_v_predictor_64x64_c
Line
Count
Source
714
1.28k
      const uint8_t *left) {                                   \
715
1.28k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.28k
  }
aom_v_predictor_4x8_c
Line
Count
Source
714
18.1k
      const uint8_t *left) {                                   \
715
18.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
18.1k
  }
aom_v_predictor_8x4_c
Line
Count
Source
714
29.0k
      const uint8_t *left) {                                   \
715
29.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
29.0k
  }
aom_v_predictor_8x16_c
Line
Count
Source
714
7.88k
      const uint8_t *left) {                                   \
715
7.88k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.88k
  }
aom_v_predictor_16x8_c
Line
Count
Source
714
10.8k
      const uint8_t *left) {                                   \
715
10.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
10.8k
  }
aom_v_predictor_16x32_c
Line
Count
Source
714
3.25k
      const uint8_t *left) {                                   \
715
3.25k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.25k
  }
aom_v_predictor_32x16_c
Line
Count
Source
714
3.94k
      const uint8_t *left) {                                   \
715
3.94k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.94k
  }
aom_v_predictor_32x64_c
Line
Count
Source
714
140
      const uint8_t *left) {                                   \
715
140
    type##_predictor(dst, stride, width, height, above, left); \
716
140
  }
aom_v_predictor_64x32_c
Line
Count
Source
714
228
      const uint8_t *left) {                                   \
715
228
    type##_predictor(dst, stride, width, height, above, left); \
716
228
  }
aom_v_predictor_4x16_c
Line
Count
Source
714
5.33k
      const uint8_t *left) {                                   \
715
5.33k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.33k
  }
aom_v_predictor_16x4_c
Line
Count
Source
714
8.74k
      const uint8_t *left) {                                   \
715
8.74k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.74k
  }
aom_v_predictor_8x32_c
Line
Count
Source
714
2.60k
      const uint8_t *left) {                                   \
715
2.60k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.60k
  }
aom_v_predictor_32x8_c
Line
Count
Source
714
2.65k
      const uint8_t *left) {                                   \
715
2.65k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.65k
  }
aom_v_predictor_16x64_c
Line
Count
Source
714
406
      const uint8_t *left) {                                   \
715
406
    type##_predictor(dst, stride, width, height, above, left); \
716
406
  }
aom_v_predictor_64x16_c
Line
Count
Source
714
310
      const uint8_t *left) {                                   \
715
310
    type##_predictor(dst, stride, width, height, above, left); \
716
310
  }
aom_h_predictor_4x4_c
Line
Count
Source
714
773k
      const uint8_t *left) {                                   \
715
773k
    type##_predictor(dst, stride, width, height, above, left); \
716
773k
  }
aom_h_predictor_8x8_c
Line
Count
Source
714
104k
      const uint8_t *left) {                                   \
715
104k
    type##_predictor(dst, stride, width, height, above, left); \
716
104k
  }
aom_h_predictor_16x16_c
Line
Count
Source
714
64.8k
      const uint8_t *left) {                                   \
715
64.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
64.8k
  }
aom_h_predictor_32x32_c
Line
Count
Source
714
40.0k
      const uint8_t *left) {                                   \
715
40.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
40.0k
  }
aom_h_predictor_64x64_c
Line
Count
Source
714
2.95k
      const uint8_t *left) {                                   \
715
2.95k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.95k
  }
aom_h_predictor_4x8_c
Line
Count
Source
714
32.1k
      const uint8_t *left) {                                   \
715
32.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
32.1k
  }
aom_h_predictor_8x4_c
Line
Count
Source
714
52.8k
      const uint8_t *left) {                                   \
715
52.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
52.8k
  }
aom_h_predictor_8x16_c
Line
Count
Source
714
12.5k
      const uint8_t *left) {                                   \
715
12.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
12.5k
  }
aom_h_predictor_16x8_c
Line
Count
Source
714
18.7k
      const uint8_t *left) {                                   \
715
18.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
18.7k
  }
aom_h_predictor_16x32_c
Line
Count
Source
714
4.25k
      const uint8_t *left) {                                   \
715
4.25k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.25k
  }
aom_h_predictor_32x16_c
Line
Count
Source
714
5.13k
      const uint8_t *left) {                                   \
715
5.13k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.13k
  }
aom_h_predictor_32x64_c
Line
Count
Source
714
431
      const uint8_t *left) {                                   \
715
431
    type##_predictor(dst, stride, width, height, above, left); \
716
431
  }
aom_h_predictor_64x32_c
Line
Count
Source
714
481
      const uint8_t *left) {                                   \
715
481
    type##_predictor(dst, stride, width, height, above, left); \
716
481
  }
aom_h_predictor_4x16_c
Line
Count
Source
714
8.55k
      const uint8_t *left) {                                   \
715
8.55k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.55k
  }
aom_h_predictor_16x4_c
Line
Count
Source
714
15.3k
      const uint8_t *left) {                                   \
715
15.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
15.3k
  }
aom_h_predictor_8x32_c
Line
Count
Source
714
4.32k
      const uint8_t *left) {                                   \
715
4.32k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.32k
  }
aom_h_predictor_32x8_c
Line
Count
Source
714
4.80k
      const uint8_t *left) {                                   \
715
4.80k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.80k
  }
aom_h_predictor_16x64_c
Line
Count
Source
714
657
      const uint8_t *left) {                                   \
715
657
    type##_predictor(dst, stride, width, height, above, left); \
716
657
  }
aom_h_predictor_64x16_c
Line
Count
Source
714
439
      const uint8_t *left) {                                   \
715
439
    type##_predictor(dst, stride, width, height, above, left); \
716
439
  }
aom_smooth_predictor_4x4_c
Line
Count
Source
714
1.18M
      const uint8_t *left) {                                   \
715
1.18M
    type##_predictor(dst, stride, width, height, above, left); \
716
1.18M
  }
aom_smooth_predictor_8x8_c
Line
Count
Source
714
188k
      const uint8_t *left) {                                   \
715
188k
    type##_predictor(dst, stride, width, height, above, left); \
716
188k
  }
aom_smooth_predictor_16x16_c
Line
Count
Source
714
138k
      const uint8_t *left) {                                   \
715
138k
    type##_predictor(dst, stride, width, height, above, left); \
716
138k
  }
aom_smooth_predictor_32x32_c
Line
Count
Source
714
56.8k
      const uint8_t *left) {                                   \
715
56.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
56.8k
  }
aom_smooth_predictor_64x64_c
Line
Count
Source
714
6.04k
      const uint8_t *left) {                                   \
715
6.04k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.04k
  }
aom_smooth_predictor_4x8_c
Line
Count
Source
714
56.1k
      const uint8_t *left) {                                   \
715
56.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
56.1k
  }
aom_smooth_predictor_8x4_c
Line
Count
Source
714
94.6k
      const uint8_t *left) {                                   \
715
94.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
94.6k
  }
aom_smooth_predictor_8x16_c
Line
Count
Source
714
27.9k
      const uint8_t *left) {                                   \
715
27.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
27.9k
  }
aom_smooth_predictor_16x8_c
Line
Count
Source
714
41.8k
      const uint8_t *left) {                                   \
715
41.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
41.8k
  }
aom_smooth_predictor_16x32_c
Line
Count
Source
714
7.73k
      const uint8_t *left) {                                   \
715
7.73k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.73k
  }
aom_smooth_predictor_32x16_c
Line
Count
Source
714
8.00k
      const uint8_t *left) {                                   \
715
8.00k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.00k
  }
aom_smooth_predictor_32x64_c
Line
Count
Source
714
878
      const uint8_t *left) {                                   \
715
878
    type##_predictor(dst, stride, width, height, above, left); \
716
878
  }
aom_smooth_predictor_64x32_c
Line
Count
Source
714
763
      const uint8_t *left) {                                   \
715
763
    type##_predictor(dst, stride, width, height, above, left); \
716
763
  }
aom_smooth_predictor_4x16_c
Line
Count
Source
714
20.2k
      const uint8_t *left) {                                   \
715
20.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
20.2k
  }
aom_smooth_predictor_16x4_c
Line
Count
Source
714
33.7k
      const uint8_t *left) {                                   \
715
33.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
33.7k
  }
aom_smooth_predictor_8x32_c
Line
Count
Source
714
8.20k
      const uint8_t *left) {                                   \
715
8.20k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.20k
  }
aom_smooth_predictor_32x8_c
Line
Count
Source
714
8.44k
      const uint8_t *left) {                                   \
715
8.44k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.44k
  }
aom_smooth_predictor_16x64_c
Line
Count
Source
714
1.28k
      const uint8_t *left) {                                   \
715
1.28k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.28k
  }
aom_smooth_predictor_64x16_c
Line
Count
Source
714
1.25k
      const uint8_t *left) {                                   \
715
1.25k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.25k
  }
aom_smooth_v_predictor_4x4_c
Line
Count
Source
714
62.2k
      const uint8_t *left) {                                   \
715
62.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
62.2k
  }
aom_smooth_v_predictor_8x8_c
Line
Count
Source
714
38.8k
      const uint8_t *left) {                                   \
715
38.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
38.8k
  }
aom_smooth_v_predictor_16x16_c
Line
Count
Source
714
18.2k
      const uint8_t *left) {                                   \
715
18.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
18.2k
  }
aom_smooth_v_predictor_32x32_c
Line
Count
Source
714
8.83k
      const uint8_t *left) {                                   \
715
8.83k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.83k
  }
aom_smooth_v_predictor_64x64_c
Line
Count
Source
714
1.41k
      const uint8_t *left) {                                   \
715
1.41k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.41k
  }
aom_smooth_v_predictor_4x8_c
Line
Count
Source
714
14.0k
      const uint8_t *left) {                                   \
715
14.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
14.0k
  }
aom_smooth_v_predictor_8x4_c
Line
Count
Source
714
23.8k
      const uint8_t *left) {                                   \
715
23.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
23.8k
  }
aom_smooth_v_predictor_8x16_c
Line
Count
Source
714
5.90k
      const uint8_t *left) {                                   \
715
5.90k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.90k
  }
aom_smooth_v_predictor_16x8_c
Line
Count
Source
714
8.62k
      const uint8_t *left) {                                   \
715
8.62k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.62k
  }
aom_smooth_v_predictor_16x32_c
Line
Count
Source
714
1.74k
      const uint8_t *left) {                                   \
715
1.74k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.74k
  }
aom_smooth_v_predictor_32x16_c
Line
Count
Source
714
1.77k
      const uint8_t *left) {                                   \
715
1.77k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.77k
  }
aom_smooth_v_predictor_32x64_c
Line
Count
Source
714
196
      const uint8_t *left) {                                   \
715
196
    type##_predictor(dst, stride, width, height, above, left); \
716
196
  }
aom_smooth_v_predictor_64x32_c
Line
Count
Source
714
251
      const uint8_t *left) {                                   \
715
251
    type##_predictor(dst, stride, width, height, above, left); \
716
251
  }
aom_smooth_v_predictor_4x16_c
Line
Count
Source
714
5.10k
      const uint8_t *left) {                                   \
715
5.10k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.10k
  }
aom_smooth_v_predictor_16x4_c
Line
Count
Source
714
8.40k
      const uint8_t *left) {                                   \
715
8.40k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.40k
  }
aom_smooth_v_predictor_8x32_c
Line
Count
Source
714
2.30k
      const uint8_t *left) {                                   \
715
2.30k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.30k
  }
aom_smooth_v_predictor_32x8_c
Line
Count
Source
714
2.60k
      const uint8_t *left) {                                   \
715
2.60k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.60k
  }
aom_smooth_v_predictor_16x64_c
Line
Count
Source
714
341
      const uint8_t *left) {                                   \
715
341
    type##_predictor(dst, stride, width, height, above, left); \
716
341
  }
aom_smooth_v_predictor_64x16_c
Line
Count
Source
714
328
      const uint8_t *left) {                                   \
715
328
    type##_predictor(dst, stride, width, height, above, left); \
716
328
  }
aom_smooth_h_predictor_4x4_c
Line
Count
Source
714
122k
      const uint8_t *left) {                                   \
715
122k
    type##_predictor(dst, stride, width, height, above, left); \
716
122k
  }
aom_smooth_h_predictor_8x8_c
Line
Count
Source
714
60.7k
      const uint8_t *left) {                                   \
715
60.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
60.7k
  }
aom_smooth_h_predictor_16x16_c
Line
Count
Source
714
28.0k
      const uint8_t *left) {                                   \
715
28.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
28.0k
  }
aom_smooth_h_predictor_32x32_c
Line
Count
Source
714
9.96k
      const uint8_t *left) {                                   \
715
9.96k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.96k
  }
aom_smooth_h_predictor_64x64_c
Line
Count
Source
714
1.81k
      const uint8_t *left) {                                   \
715
1.81k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.81k
  }
aom_smooth_h_predictor_4x8_c
Line
Count
Source
714
24.8k
      const uint8_t *left) {                                   \
715
24.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
24.8k
  }
aom_smooth_h_predictor_8x4_c
Line
Count
Source
714
42.6k
      const uint8_t *left) {                                   \
715
42.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
42.6k
  }
aom_smooth_h_predictor_8x16_c
Line
Count
Source
714
10.0k
      const uint8_t *left) {                                   \
715
10.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
10.0k
  }
aom_smooth_h_predictor_16x8_c
Line
Count
Source
714
14.0k
      const uint8_t *left) {                                   \
715
14.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
14.0k
  }
aom_smooth_h_predictor_16x32_c
Line
Count
Source
714
2.00k
      const uint8_t *left) {                                   \
715
2.00k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.00k
  }
aom_smooth_h_predictor_32x16_c
Line
Count
Source
714
2.27k
      const uint8_t *left) {                                   \
715
2.27k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.27k
  }
aom_smooth_h_predictor_32x64_c
Line
Count
Source
714
328
      const uint8_t *left) {                                   \
715
328
    type##_predictor(dst, stride, width, height, above, left); \
716
328
  }
aom_smooth_h_predictor_64x32_c
Line
Count
Source
714
263
      const uint8_t *left) {                                   \
715
263
    type##_predictor(dst, stride, width, height, above, left); \
716
263
  }
aom_smooth_h_predictor_4x16_c
Line
Count
Source
714
9.98k
      const uint8_t *left) {                                   \
715
9.98k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.98k
  }
aom_smooth_h_predictor_16x4_c
Line
Count
Source
714
13.7k
      const uint8_t *left) {                                   \
715
13.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
13.7k
  }
aom_smooth_h_predictor_8x32_c
Line
Count
Source
714
3.05k
      const uint8_t *left) {                                   \
715
3.05k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.05k
  }
aom_smooth_h_predictor_32x8_c
Line
Count
Source
714
3.18k
      const uint8_t *left) {                                   \
715
3.18k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.18k
  }
aom_smooth_h_predictor_16x64_c
Line
Count
Source
714
545
      const uint8_t *left) {                                   \
715
545
    type##_predictor(dst, stride, width, height, above, left); \
716
545
  }
aom_smooth_h_predictor_64x16_c
Line
Count
Source
714
385
      const uint8_t *left) {                                   \
715
385
    type##_predictor(dst, stride, width, height, above, left); \
716
385
  }
aom_paeth_predictor_4x4_c
Line
Count
Source
714
804k
      const uint8_t *left) {                                   \
715
804k
    type##_predictor(dst, stride, width, height, above, left); \
716
804k
  }
aom_paeth_predictor_8x8_c
Line
Count
Source
714
125k
      const uint8_t *left) {                                   \
715
125k
    type##_predictor(dst, stride, width, height, above, left); \
716
125k
  }
aom_paeth_predictor_16x16_c
Line
Count
Source
714
74.5k
      const uint8_t *left) {                                   \
715
74.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
74.5k
  }
aom_paeth_predictor_32x32_c
Line
Count
Source
714
65.2k
      const uint8_t *left) {                                   \
715
65.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
65.2k
  }
aom_paeth_predictor_64x64_c
Line
Count
Source
714
11.9k
      const uint8_t *left) {                                   \
715
11.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
11.9k
  }
aom_paeth_predictor_4x8_c
Line
Count
Source
714
43.2k
      const uint8_t *left) {                                   \
715
43.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
43.2k
  }
aom_paeth_predictor_8x4_c
Line
Count
Source
714
73.0k
      const uint8_t *left) {                                   \
715
73.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
73.0k
  }
aom_paeth_predictor_8x16_c
Line
Count
Source
714
23.3k
      const uint8_t *left) {                                   \
715
23.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
23.3k
  }
aom_paeth_predictor_16x8_c
Line
Count
Source
714
31.1k
      const uint8_t *left) {                                   \
715
31.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
31.1k
  }
aom_paeth_predictor_16x32_c
Line
Count
Source
714
7.17k
      const uint8_t *left) {                                   \
715
7.17k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.17k
  }
aom_paeth_predictor_32x16_c
Line
Count
Source
714
7.88k
      const uint8_t *left) {                                   \
715
7.88k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.88k
  }
aom_paeth_predictor_32x64_c
Line
Count
Source
714
697
      const uint8_t *left) {                                   \
715
697
    type##_predictor(dst, stride, width, height, above, left); \
716
697
  }
aom_paeth_predictor_64x32_c
Line
Count
Source
714
993
      const uint8_t *left) {                                   \
715
993
    type##_predictor(dst, stride, width, height, above, left); \
716
993
  }
aom_paeth_predictor_4x16_c
Line
Count
Source
714
20.8k
      const uint8_t *left) {                                   \
715
20.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
20.8k
  }
aom_paeth_predictor_16x4_c
Line
Count
Source
714
27.3k
      const uint8_t *left) {                                   \
715
27.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
27.3k
  }
aom_paeth_predictor_8x32_c
Line
Count
Source
714
17.6k
      const uint8_t *left) {                                   \
715
17.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
17.6k
  }
aom_paeth_predictor_32x8_c
Line
Count
Source
714
6.75k
      const uint8_t *left) {                                   \
715
6.75k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.75k
  }
aom_paeth_predictor_16x64_c
Line
Count
Source
714
3.04k
      const uint8_t *left) {                                   \
715
3.04k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.04k
  }
aom_paeth_predictor_64x16_c
Line
Count
Source
714
917
      const uint8_t *left) {                                   \
715
917
    type##_predictor(dst, stride, width, height, above, left); \
716
917
  }
aom_dc_128_predictor_4x4_c
Line
Count
Source
714
6.04k
      const uint8_t *left) {                                   \
715
6.04k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.04k
  }
aom_dc_128_predictor_8x8_c
Line
Count
Source
714
3.35k
      const uint8_t *left) {                                   \
715
3.35k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.35k
  }
aom_dc_128_predictor_16x16_c
Line
Count
Source
714
7.18k
      const uint8_t *left) {                                   \
715
7.18k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.18k
  }
aom_dc_128_predictor_32x32_c
Line
Count
Source
714
5.60k
      const uint8_t *left) {                                   \
715
5.60k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.60k
  }
aom_dc_128_predictor_64x64_c
Line
Count
Source
714
1.26k
      const uint8_t *left) {                                   \
715
1.26k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.26k
  }
aom_dc_128_predictor_4x8_c
Line
Count
Source
714
1.41k
      const uint8_t *left) {                                   \
715
1.41k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.41k
  }
aom_dc_128_predictor_8x4_c
Line
Count
Source
714
1.38k
      const uint8_t *left) {                                   \
715
1.38k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.38k
  }
aom_dc_128_predictor_8x16_c
Line
Count
Source
714
1.11k
      const uint8_t *left) {                                   \
715
1.11k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.11k
  }
aom_dc_128_predictor_16x8_c
Line
Count
Source
714
1.26k
      const uint8_t *left) {                                   \
715
1.26k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.26k
  }
aom_dc_128_predictor_16x32_c
Line
Count
Source
714
635
      const uint8_t *left) {                                   \
715
635
    type##_predictor(dst, stride, width, height, above, left); \
716
635
  }
aom_dc_128_predictor_32x16_c
Line
Count
Source
714
296
      const uint8_t *left) {                                   \
715
296
    type##_predictor(dst, stride, width, height, above, left); \
716
296
  }
aom_dc_128_predictor_32x64_c
Line
Count
Source
714
120
      const uint8_t *left) {                                   \
715
120
    type##_predictor(dst, stride, width, height, above, left); \
716
120
  }
aom_dc_128_predictor_64x32_c
Line
Count
Source
714
35
      const uint8_t *left) {                                   \
715
35
    type##_predictor(dst, stride, width, height, above, left); \
716
35
  }
aom_dc_128_predictor_4x16_c
Line
Count
Source
714
137
      const uint8_t *left) {                                   \
715
137
    type##_predictor(dst, stride, width, height, above, left); \
716
137
  }
aom_dc_128_predictor_16x4_c
Line
Count
Source
714
9
      const uint8_t *left) {                                   \
715
9
    type##_predictor(dst, stride, width, height, above, left); \
716
9
  }
aom_dc_128_predictor_8x32_c
Line
Count
Source
714
68
      const uint8_t *left) {                                   \
715
68
    type##_predictor(dst, stride, width, height, above, left); \
716
68
  }
aom_dc_128_predictor_32x8_c
Line
Count
Source
714
382
      const uint8_t *left) {                                   \
715
382
    type##_predictor(dst, stride, width, height, above, left); \
716
382
  }
aom_dc_128_predictor_16x64_c
Line
Count
Source
714
16
      const uint8_t *left) {                                   \
715
16
    type##_predictor(dst, stride, width, height, above, left); \
716
16
  }
aom_dc_128_predictor_64x16_c
Line
Count
Source
714
123
      const uint8_t *left) {                                   \
715
123
    type##_predictor(dst, stride, width, height, above, left); \
716
123
  }
aom_dc_left_predictor_4x4_c
Line
Count
Source
714
104k
      const uint8_t *left) {                                   \
715
104k
    type##_predictor(dst, stride, width, height, above, left); \
716
104k
  }
aom_dc_left_predictor_8x8_c
Line
Count
Source
714
15.5k
      const uint8_t *left) {                                   \
715
15.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
15.5k
  }
aom_dc_left_predictor_16x16_c
Line
Count
Source
714
34.7k
      const uint8_t *left) {                                   \
715
34.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
34.7k
  }
aom_dc_left_predictor_32x32_c
Line
Count
Source
714
31.7k
      const uint8_t *left) {                                   \
715
31.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
31.7k
  }
aom_dc_left_predictor_64x64_c
Line
Count
Source
714
6.22k
      const uint8_t *left) {                                   \
715
6.22k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.22k
  }
aom_dc_left_predictor_4x8_c
Line
Count
Source
714
2.76k
      const uint8_t *left) {                                   \
715
2.76k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.76k
  }
aom_dc_left_predictor_8x4_c
Line
Count
Source
714
4.18k
      const uint8_t *left) {                                   \
715
4.18k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.18k
  }
aom_dc_left_predictor_8x16_c
Line
Count
Source
714
4.77k
      const uint8_t *left) {                                   \
715
4.77k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.77k
  }
aom_dc_left_predictor_16x8_c
Line
Count
Source
714
4.20k
      const uint8_t *left) {                                   \
715
4.20k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.20k
  }
aom_dc_left_predictor_16x32_c
Line
Count
Source
714
3.33k
      const uint8_t *left) {                                   \
715
3.33k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.33k
  }
aom_dc_left_predictor_32x16_c
Line
Count
Source
714
2.01k
      const uint8_t *left) {                                   \
715
2.01k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.01k
  }
aom_dc_left_predictor_32x64_c
Line
Count
Source
714
610
      const uint8_t *left) {                                   \
715
610
    type##_predictor(dst, stride, width, height, above, left); \
716
610
  }
aom_dc_left_predictor_64x32_c
Line
Count
Source
714
242
      const uint8_t *left) {                                   \
715
242
    type##_predictor(dst, stride, width, height, above, left); \
716
242
  }
aom_dc_left_predictor_4x16_c
Line
Count
Source
714
3.25k
      const uint8_t *left) {                                   \
715
3.25k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.25k
  }
aom_dc_left_predictor_16x4_c
Line
Count
Source
714
1.12k
      const uint8_t *left) {                                   \
715
1.12k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.12k
  }
aom_dc_left_predictor_8x32_c
Line
Count
Source
714
1.99k
      const uint8_t *left) {                                   \
715
1.99k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.99k
  }
aom_dc_left_predictor_32x8_c
Line
Count
Source
714
617
      const uint8_t *left) {                                   \
715
617
    type##_predictor(dst, stride, width, height, above, left); \
716
617
  }
aom_dc_left_predictor_16x64_c
Line
Count
Source
714
554
      const uint8_t *left) {                                   \
715
554
    type##_predictor(dst, stride, width, height, above, left); \
716
554
  }
aom_dc_left_predictor_64x16_c
Line
Count
Source
714
163
      const uint8_t *left) {                                   \
715
163
    type##_predictor(dst, stride, width, height, above, left); \
716
163
  }
aom_dc_top_predictor_4x4_c
Line
Count
Source
714
90.1k
      const uint8_t *left) {                                   \
715
90.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
90.1k
  }
aom_dc_top_predictor_8x8_c
Line
Count
Source
714
9.24k
      const uint8_t *left) {                                   \
715
9.24k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.24k
  }
aom_dc_top_predictor_16x16_c
Line
Count
Source
714
24.8k
      const uint8_t *left) {                                   \
715
24.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
24.8k
  }
aom_dc_top_predictor_32x32_c
Line
Count
Source
714
20.0k
      const uint8_t *left) {                                   \
715
20.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
20.0k
  }
aom_dc_top_predictor_64x64_c
Line
Count
Source
714
2.87k
      const uint8_t *left) {                                   \
715
2.87k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.87k
  }
aom_dc_top_predictor_4x8_c
Line
Count
Source
714
1.80k
      const uint8_t *left) {                                   \
715
1.80k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.80k
  }
aom_dc_top_predictor_8x4_c
Line
Count
Source
714
1.95k
      const uint8_t *left) {                                   \
715
1.95k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.95k
  }
aom_dc_top_predictor_8x16_c
Line
Count
Source
714
2.68k
      const uint8_t *left) {                                   \
715
2.68k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.68k
  }
aom_dc_top_predictor_16x8_c
Line
Count
Source
714
4.73k
      const uint8_t *left) {                                   \
715
4.73k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.73k
  }
aom_dc_top_predictor_16x32_c
Line
Count
Source
714
1.45k
      const uint8_t *left) {                                   \
715
1.45k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.45k
  }
aom_dc_top_predictor_32x16_c
Line
Count
Source
714
2.73k
      const uint8_t *left) {                                   \
715
2.73k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.73k
  }
aom_dc_top_predictor_32x64_c
Line
Count
Source
714
215
      const uint8_t *left) {                                   \
715
215
    type##_predictor(dst, stride, width, height, above, left); \
716
215
  }
aom_dc_top_predictor_64x32_c
Line
Count
Source
714
357
      const uint8_t *left) {                                   \
715
357
    type##_predictor(dst, stride, width, height, above, left); \
716
357
  }
aom_dc_top_predictor_4x16_c
Line
Count
Source
714
555
      const uint8_t *left) {                                   \
715
555
    type##_predictor(dst, stride, width, height, above, left); \
716
555
  }
aom_dc_top_predictor_16x4_c
Line
Count
Source
714
748
      const uint8_t *left) {                                   \
715
748
    type##_predictor(dst, stride, width, height, above, left); \
716
748
  }
aom_dc_top_predictor_8x32_c
Line
Count
Source
714
376
      const uint8_t *left) {                                   \
715
376
    type##_predictor(dst, stride, width, height, above, left); \
716
376
  }
aom_dc_top_predictor_32x8_c
Line
Count
Source
714
1.05k
      const uint8_t *left) {                                   \
715
1.05k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.05k
  }
aom_dc_top_predictor_16x64_c
Line
Count
Source
714
91
      const uint8_t *left) {                                   \
715
91
    type##_predictor(dst, stride, width, height, above, left); \
716
91
  }
aom_dc_top_predictor_64x16_c
Line
Count
Source
714
222
      const uint8_t *left) {                                   \
715
222
    type##_predictor(dst, stride, width, height, above, left); \
716
222
  }
aom_dc_predictor_4x4_c
Line
Count
Source
714
3.70M
      const uint8_t *left) {                                   \
715
3.70M
    type##_predictor(dst, stride, width, height, above, left); \
716
3.70M
  }
aom_dc_predictor_8x8_c
Line
Count
Source
714
397k
      const uint8_t *left) {                                   \
715
397k
    type##_predictor(dst, stride, width, height, above, left); \
716
397k
  }
aom_dc_predictor_16x16_c
Line
Count
Source
714
297k
      const uint8_t *left) {                                   \
715
297k
    type##_predictor(dst, stride, width, height, above, left); \
716
297k
  }
aom_dc_predictor_32x32_c
Line
Count
Source
714
148k
      const uint8_t *left) {                                   \
715
148k
    type##_predictor(dst, stride, width, height, above, left); \
716
148k
  }
aom_dc_predictor_64x64_c
Line
Count
Source
714
25.3k
      const uint8_t *left) {                                   \
715
25.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
25.3k
  }
717
718
#define intra_pred_highbd_sized(type, width, height)                        \
719
  void aom_highbd_##type##_predictor_##width##x##height##_c(                \
720
      uint16_t *dst, ptrdiff_t stride, const uint16_t *above,               \
721
2.15M
      const uint16_t *left, int bd) {                                       \
722
2.15M
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.15M
  }
aom_highbd_v_predictor_4x4_c
Line
Count
Source
721
44.5k
      const uint16_t *left, int bd) {                                       \
722
44.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
44.5k
  }
aom_highbd_v_predictor_8x8_c
Line
Count
Source
721
17.6k
      const uint16_t *left, int bd) {                                       \
722
17.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
17.6k
  }
aom_highbd_v_predictor_16x16_c
Line
Count
Source
721
8.74k
      const uint16_t *left, int bd) {                                       \
722
8.74k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.74k
  }
aom_highbd_v_predictor_32x32_c
Line
Count
Source
721
8.07k
      const uint16_t *left, int bd) {                                       \
722
8.07k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.07k
  }
aom_highbd_v_predictor_64x64_c
Line
Count
Source
721
4.76k
      const uint16_t *left, int bd) {                                       \
722
4.76k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.76k
  }
aom_highbd_v_predictor_4x8_c
Line
Count
Source
721
10.6k
      const uint16_t *left, int bd) {                                       \
722
10.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
10.6k
  }
aom_highbd_v_predictor_8x4_c
Line
Count
Source
721
16.7k
      const uint16_t *left, int bd) {                                       \
722
16.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
16.7k
  }
aom_highbd_v_predictor_8x16_c
Line
Count
Source
721
4.41k
      const uint16_t *left, int bd) {                                       \
722
4.41k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.41k
  }
aom_highbd_v_predictor_16x8_c
Line
Count
Source
721
5.75k
      const uint16_t *left, int bd) {                                       \
722
5.75k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.75k
  }
aom_highbd_v_predictor_16x32_c
Line
Count
Source
721
976
      const uint16_t *left, int bd) {                                       \
722
976
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
976
  }
aom_highbd_v_predictor_32x16_c
Line
Count
Source
721
1.27k
      const uint16_t *left, int bd) {                                       \
722
1.27k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.27k
  }
aom_highbd_v_predictor_32x64_c
Line
Count
Source
721
210
      const uint16_t *left, int bd) {                                       \
722
210
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
210
  }
aom_highbd_v_predictor_64x32_c
Line
Count
Source
721
216
      const uint16_t *left, int bd) {                                       \
722
216
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
216
  }
aom_highbd_v_predictor_4x16_c
Line
Count
Source
721
3.57k
      const uint16_t *left, int bd) {                                       \
722
3.57k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.57k
  }
aom_highbd_v_predictor_16x4_c
Line
Count
Source
721
6.22k
      const uint16_t *left, int bd) {                                       \
722
6.22k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.22k
  }
aom_highbd_v_predictor_8x32_c
Line
Count
Source
721
1.90k
      const uint16_t *left, int bd) {                                       \
722
1.90k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.90k
  }
aom_highbd_v_predictor_32x8_c
Line
Count
Source
721
2.02k
      const uint16_t *left, int bd) {                                       \
722
2.02k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.02k
  }
aom_highbd_v_predictor_16x64_c
Line
Count
Source
721
521
      const uint16_t *left, int bd) {                                       \
722
521
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
521
  }
aom_highbd_v_predictor_64x16_c
Line
Count
Source
721
321
      const uint16_t *left, int bd) {                                       \
722
321
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
321
  }
aom_highbd_h_predictor_4x4_c
Line
Count
Source
721
45.3k
      const uint16_t *left, int bd) {                                       \
722
45.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
45.3k
  }
aom_highbd_h_predictor_8x8_c
Line
Count
Source
721
25.9k
      const uint16_t *left, int bd) {                                       \
722
25.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
25.9k
  }
aom_highbd_h_predictor_16x16_c
Line
Count
Source
721
13.1k
      const uint16_t *left, int bd) {                                       \
722
13.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.1k
  }
aom_highbd_h_predictor_32x32_c
Line
Count
Source
721
13.3k
      const uint16_t *left, int bd) {                                       \
722
13.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.3k
  }
aom_highbd_h_predictor_64x64_c
Line
Count
Source
721
9.82k
      const uint16_t *left, int bd) {                                       \
722
9.82k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.82k
  }
aom_highbd_h_predictor_4x8_c
Line
Count
Source
721
13.2k
      const uint16_t *left, int bd) {                                       \
722
13.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.2k
  }
aom_highbd_h_predictor_8x4_c
Line
Count
Source
721
22.2k
      const uint16_t *left, int bd) {                                       \
722
22.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
22.2k
  }
aom_highbd_h_predictor_8x16_c
Line
Count
Source
721
5.75k
      const uint16_t *left, int bd) {                                       \
722
5.75k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.75k
  }
aom_highbd_h_predictor_16x8_c
Line
Count
Source
721
8.86k
      const uint16_t *left, int bd) {                                       \
722
8.86k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.86k
  }
aom_highbd_h_predictor_16x32_c
Line
Count
Source
721
1.57k
      const uint16_t *left, int bd) {                                       \
722
1.57k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.57k
  }
aom_highbd_h_predictor_32x16_c
Line
Count
Source
721
2.20k
      const uint16_t *left, int bd) {                                       \
722
2.20k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.20k
  }
aom_highbd_h_predictor_32x64_c
Line
Count
Source
721
217
      const uint16_t *left, int bd) {                                       \
722
217
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
217
  }
aom_highbd_h_predictor_64x32_c
Line
Count
Source
721
308
      const uint16_t *left, int bd) {                                       \
722
308
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
308
  }
aom_highbd_h_predictor_4x16_c
Line
Count
Source
721
5.09k
      const uint16_t *left, int bd) {                                       \
722
5.09k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.09k
  }
aom_highbd_h_predictor_16x4_c
Line
Count
Source
721
7.24k
      const uint16_t *left, int bd) {                                       \
722
7.24k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.24k
  }
aom_highbd_h_predictor_8x32_c
Line
Count
Source
721
2.51k
      const uint16_t *left, int bd) {                                       \
722
2.51k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.51k
  }
aom_highbd_h_predictor_32x8_c
Line
Count
Source
721
2.42k
      const uint16_t *left, int bd) {                                       \
722
2.42k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.42k
  }
aom_highbd_h_predictor_16x64_c
Line
Count
Source
721
558
      const uint16_t *left, int bd) {                                       \
722
558
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
558
  }
aom_highbd_h_predictor_64x16_c
Line
Count
Source
721
435
      const uint16_t *left, int bd) {                                       \
722
435
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
435
  }
aom_highbd_smooth_predictor_4x4_c
Line
Count
Source
721
77.6k
      const uint16_t *left, int bd) {                                       \
722
77.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
77.6k
  }
aom_highbd_smooth_predictor_8x8_c
Line
Count
Source
721
60.8k
      const uint16_t *left, int bd) {                                       \
722
60.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
60.8k
  }
aom_highbd_smooth_predictor_16x16_c
Line
Count
Source
721
35.9k
      const uint16_t *left, int bd) {                                       \
722
35.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
35.9k
  }
aom_highbd_smooth_predictor_32x32_c
Line
Count
Source
721
20.9k
      const uint16_t *left, int bd) {                                       \
722
20.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
20.9k
  }
aom_highbd_smooth_predictor_64x64_c
Line
Count
Source
721
11.2k
      const uint16_t *left, int bd) {                                       \
722
11.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
11.2k
  }
aom_highbd_smooth_predictor_4x8_c
Line
Count
Source
721
25.3k
      const uint16_t *left, int bd) {                                       \
722
25.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
25.3k
  }
aom_highbd_smooth_predictor_8x4_c
Line
Count
Source
721
42.4k
      const uint16_t *left, int bd) {                                       \
722
42.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
42.4k
  }
aom_highbd_smooth_predictor_8x16_c
Line
Count
Source
721
11.4k
      const uint16_t *left, int bd) {                                       \
722
11.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
11.4k
  }
aom_highbd_smooth_predictor_16x8_c
Line
Count
Source
721
18.5k
      const uint16_t *left, int bd) {                                       \
722
18.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
18.5k
  }
aom_highbd_smooth_predictor_16x32_c
Line
Count
Source
721
3.14k
      const uint16_t *left, int bd) {                                       \
722
3.14k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.14k
  }
aom_highbd_smooth_predictor_32x16_c
Line
Count
Source
721
3.74k
      const uint16_t *left, int bd) {                                       \
722
3.74k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.74k
  }
aom_highbd_smooth_predictor_32x64_c
Line
Count
Source
721
466
      const uint16_t *left, int bd) {                                       \
722
466
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
466
  }
aom_highbd_smooth_predictor_64x32_c
Line
Count
Source
721
664
      const uint16_t *left, int bd) {                                       \
722
664
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
664
  }
aom_highbd_smooth_predictor_4x16_c
Line
Count
Source
721
10.5k
      const uint16_t *left, int bd) {                                       \
722
10.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
10.5k
  }
aom_highbd_smooth_predictor_16x4_c
Line
Count
Source
721
16.9k
      const uint16_t *left, int bd) {                                       \
722
16.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
16.9k
  }
aom_highbd_smooth_predictor_8x32_c
Line
Count
Source
721
4.99k
      const uint16_t *left, int bd) {                                       \
722
4.99k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.99k
  }
aom_highbd_smooth_predictor_32x8_c
Line
Count
Source
721
5.12k
      const uint16_t *left, int bd) {                                       \
722
5.12k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.12k
  }
aom_highbd_smooth_predictor_16x64_c
Line
Count
Source
721
1.40k
      const uint16_t *left, int bd) {                                       \
722
1.40k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.40k
  }
aom_highbd_smooth_predictor_64x16_c
Line
Count
Source
721
796
      const uint16_t *left, int bd) {                                       \
722
796
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
796
  }
aom_highbd_smooth_v_predictor_4x4_c
Line
Count
Source
721
22.6k
      const uint16_t *left, int bd) {                                       \
722
22.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
22.6k
  }
aom_highbd_smooth_v_predictor_8x8_c
Line
Count
Source
721
16.1k
      const uint16_t *left, int bd) {                                       \
722
16.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
16.1k
  }
aom_highbd_smooth_v_predictor_16x16_c
Line
Count
Source
721
8.65k
      const uint16_t *left, int bd) {                                       \
722
8.65k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.65k
  }
aom_highbd_smooth_v_predictor_32x32_c
Line
Count
Source
721
7.44k
      const uint16_t *left, int bd) {                                       \
722
7.44k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.44k
  }
aom_highbd_smooth_v_predictor_64x64_c
Line
Count
Source
721
1.54k
      const uint16_t *left, int bd) {                                       \
722
1.54k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.54k
  }
aom_highbd_smooth_v_predictor_4x8_c
Line
Count
Source
721
9.50k
      const uint16_t *left, int bd) {                                       \
722
9.50k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.50k
  }
aom_highbd_smooth_v_predictor_8x4_c
Line
Count
Source
721
12.2k
      const uint16_t *left, int bd) {                                       \
722
12.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
12.2k
  }
aom_highbd_smooth_v_predictor_8x16_c
Line
Count
Source
721
4.48k
      const uint16_t *left, int bd) {                                       \
722
4.48k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.48k
  }
aom_highbd_smooth_v_predictor_16x8_c
Line
Count
Source
721
5.60k
      const uint16_t *left, int bd) {                                       \
722
5.60k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.60k
  }
aom_highbd_smooth_v_predictor_16x32_c
Line
Count
Source
721
1.12k
      const uint16_t *left, int bd) {                                       \
722
1.12k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.12k
  }
aom_highbd_smooth_v_predictor_32x16_c
Line
Count
Source
721
1.25k
      const uint16_t *left, int bd) {                                       \
722
1.25k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.25k
  }
aom_highbd_smooth_v_predictor_32x64_c
Line
Count
Source
721
169
      const uint16_t *left, int bd) {                                       \
722
169
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
169
  }
aom_highbd_smooth_v_predictor_64x32_c
Line
Count
Source
721
354
      const uint16_t *left, int bd) {                                       \
722
354
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
354
  }
aom_highbd_smooth_v_predictor_4x16_c
Line
Count
Source
721
3.31k
      const uint16_t *left, int bd) {                                       \
722
3.31k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.31k
  }
aom_highbd_smooth_v_predictor_16x4_c
Line
Count
Source
721
5.88k
      const uint16_t *left, int bd) {                                       \
722
5.88k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.88k
  }
aom_highbd_smooth_v_predictor_8x32_c
Line
Count
Source
721
1.77k
      const uint16_t *left, int bd) {                                       \
722
1.77k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.77k
  }
aom_highbd_smooth_v_predictor_32x8_c
Line
Count
Source
721
1.84k
      const uint16_t *left, int bd) {                                       \
722
1.84k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.84k
  }
aom_highbd_smooth_v_predictor_16x64_c
Line
Count
Source
721
620
      const uint16_t *left, int bd) {                                       \
722
620
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
620
  }
aom_highbd_smooth_v_predictor_64x16_c
Line
Count
Source
721
500
      const uint16_t *left, int bd) {                                       \
722
500
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
500
  }
aom_highbd_smooth_h_predictor_4x4_c
Line
Count
Source
721
29.7k
      const uint16_t *left, int bd) {                                       \
722
29.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
29.7k
  }
aom_highbd_smooth_h_predictor_8x8_c
Line
Count
Source
721
20.9k
      const uint16_t *left, int bd) {                                       \
722
20.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
20.9k
  }
aom_highbd_smooth_h_predictor_16x16_c
Line
Count
Source
721
12.2k
      const uint16_t *left, int bd) {                                       \
722
12.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
12.2k
  }
aom_highbd_smooth_h_predictor_32x32_c
Line
Count
Source
721
10.8k
      const uint16_t *left, int bd) {                                       \
722
10.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
10.8k
  }
aom_highbd_smooth_h_predictor_64x64_c
Line
Count
Source
721
6.65k
      const uint16_t *left, int bd) {                                       \
722
6.65k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.65k
  }
aom_highbd_smooth_h_predictor_4x8_c
Line
Count
Source
721
9.24k
      const uint16_t *left, int bd) {                                       \
722
9.24k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.24k
  }
aom_highbd_smooth_h_predictor_8x4_c
Line
Count
Source
721
15.2k
      const uint16_t *left, int bd) {                                       \
722
15.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
15.2k
  }
aom_highbd_smooth_h_predictor_8x16_c
Line
Count
Source
721
4.65k
      const uint16_t *left, int bd) {                                       \
722
4.65k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.65k
  }
aom_highbd_smooth_h_predictor_16x8_c
Line
Count
Source
721
6.95k
      const uint16_t *left, int bd) {                                       \
722
6.95k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.95k
  }
aom_highbd_smooth_h_predictor_16x32_c
Line
Count
Source
721
1.27k
      const uint16_t *left, int bd) {                                       \
722
1.27k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.27k
  }
aom_highbd_smooth_h_predictor_32x16_c
Line
Count
Source
721
1.46k
      const uint16_t *left, int bd) {                                       \
722
1.46k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.46k
  }
aom_highbd_smooth_h_predictor_32x64_c
Line
Count
Source
721
168
      const uint16_t *left, int bd) {                                       \
722
168
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
168
  }
aom_highbd_smooth_h_predictor_64x32_c
Line
Count
Source
721
205
      const uint16_t *left, int bd) {                                       \
722
205
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
205
  }
aom_highbd_smooth_h_predictor_4x16_c
Line
Count
Source
721
3.75k
      const uint16_t *left, int bd) {                                       \
722
3.75k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.75k
  }
aom_highbd_smooth_h_predictor_16x4_c
Line
Count
Source
721
6.36k
      const uint16_t *left, int bd) {                                       \
722
6.36k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.36k
  }
aom_highbd_smooth_h_predictor_8x32_c
Line
Count
Source
721
3.04k
      const uint16_t *left, int bd) {                                       \
722
3.04k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.04k
  }
aom_highbd_smooth_h_predictor_32x8_c
Line
Count
Source
721
2.34k
      const uint16_t *left, int bd) {                                       \
722
2.34k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.34k
  }
aom_highbd_smooth_h_predictor_16x64_c
Line
Count
Source
721
398
      const uint16_t *left, int bd) {                                       \
722
398
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
398
  }
aom_highbd_smooth_h_predictor_64x16_c
Line
Count
Source
721
414
      const uint16_t *left, int bd) {                                       \
722
414
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
414
  }
aom_highbd_paeth_predictor_4x4_c
Line
Count
Source
721
78.8k
      const uint16_t *left, int bd) {                                       \
722
78.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
78.8k
  }
aom_highbd_paeth_predictor_8x8_c
Line
Count
Source
721
45.8k
      const uint16_t *left, int bd) {                                       \
722
45.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
45.8k
  }
aom_highbd_paeth_predictor_16x16_c
Line
Count
Source
721
32.0k
      const uint16_t *left, int bd) {                                       \
722
32.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
32.0k
  }
aom_highbd_paeth_predictor_32x32_c
Line
Count
Source
721
22.1k
      const uint16_t *left, int bd) {                                       \
722
22.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
22.1k
  }
aom_highbd_paeth_predictor_64x64_c
Line
Count
Source
721
7.23k
      const uint16_t *left, int bd) {                                       \
722
7.23k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.23k
  }
aom_highbd_paeth_predictor_4x8_c
Line
Count
Source
721
26.2k
      const uint16_t *left, int bd) {                                       \
722
26.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
26.2k
  }
aom_highbd_paeth_predictor_8x4_c
Line
Count
Source
721
37.6k
      const uint16_t *left, int bd) {                                       \
722
37.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
37.6k
  }
aom_highbd_paeth_predictor_8x16_c
Line
Count
Source
721
12.2k
      const uint16_t *left, int bd) {                                       \
722
12.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
12.2k
  }
aom_highbd_paeth_predictor_16x8_c
Line
Count
Source
721
15.6k
      const uint16_t *left, int bd) {                                       \
722
15.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
15.6k
  }
aom_highbd_paeth_predictor_16x32_c
Line
Count
Source
721
4.01k
      const uint16_t *left, int bd) {                                       \
722
4.01k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.01k
  }
aom_highbd_paeth_predictor_32x16_c
Line
Count
Source
721
2.85k
      const uint16_t *left, int bd) {                                       \
722
2.85k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.85k
  }
aom_highbd_paeth_predictor_32x64_c
Line
Count
Source
721
527
      const uint16_t *left, int bd) {                                       \
722
527
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
527
  }
aom_highbd_paeth_predictor_64x32_c
Line
Count
Source
721
419
      const uint16_t *left, int bd) {                                       \
722
419
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
419
  }
aom_highbd_paeth_predictor_4x16_c
Line
Count
Source
721
12.4k
      const uint16_t *left, int bd) {                                       \
722
12.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
12.4k
  }
aom_highbd_paeth_predictor_16x4_c
Line
Count
Source
721
15.6k
      const uint16_t *left, int bd) {                                       \
722
15.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
15.6k
  }
aom_highbd_paeth_predictor_8x32_c
Line
Count
Source
721
33.5k
      const uint16_t *left, int bd) {                                       \
722
33.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
33.5k
  }
aom_highbd_paeth_predictor_32x8_c
Line
Count
Source
721
5.99k
      const uint16_t *left, int bd) {                                       \
722
5.99k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.99k
  }
aom_highbd_paeth_predictor_16x64_c
Line
Count
Source
721
14.7k
      const uint16_t *left, int bd) {                                       \
722
14.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
14.7k
  }
aom_highbd_paeth_predictor_64x16_c
Line
Count
Source
721
818
      const uint16_t *left, int bd) {                                       \
722
818
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
818
  }
aom_highbd_dc_128_predictor_4x4_c
Line
Count
Source
721
217
      const uint16_t *left, int bd) {                                       \
722
217
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
217
  }
aom_highbd_dc_128_predictor_8x8_c
Line
Count
Source
721
45
      const uint16_t *left, int bd) {                                       \
722
45
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
45
  }
aom_highbd_dc_128_predictor_16x16_c
Line
Count
Source
721
800
      const uint16_t *left, int bd) {                                       \
722
800
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
800
  }
aom_highbd_dc_128_predictor_32x32_c
Line
Count
Source
721
5.14k
      const uint16_t *left, int bd) {                                       \
722
5.14k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.14k
  }
aom_highbd_dc_128_predictor_64x64_c
Line
Count
Source
721
2.05k
      const uint16_t *left, int bd) {                                       \
722
2.05k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.05k
  }
aom_highbd_dc_128_predictor_4x8_c
Line
Count
Source
721
30
      const uint16_t *left, int bd) {                                       \
722
30
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
30
  }
aom_highbd_dc_128_predictor_8x4_c
Line
Count
Source
721
45
      const uint16_t *left, int bd) {                                       \
722
45
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
45
  }
aom_highbd_dc_128_predictor_8x16_c
Line
Count
Source
721
24
      const uint16_t *left, int bd) {                                       \
722
24
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
24
  }
aom_highbd_dc_128_predictor_16x8_c
Line
Count
Source
721
35
      const uint16_t *left, int bd) {                                       \
722
35
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
35
  }
aom_highbd_dc_128_predictor_16x32_c
Line
Count
Source
721
123
      const uint16_t *left, int bd) {                                       \
722
123
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
123
  }
aom_highbd_dc_128_predictor_32x16_c
Line
Count
Source
721
186
      const uint16_t *left, int bd) {                                       \
722
186
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
186
  }
aom_highbd_dc_128_predictor_32x64_c
Line
Count
Source
721
57
      const uint16_t *left, int bd) {                                       \
722
57
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
57
  }
aom_highbd_dc_128_predictor_64x32_c
Line
Count
Source
721
49
      const uint16_t *left, int bd) {                                       \
722
49
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
49
  }
aom_highbd_dc_128_predictor_4x16_c
Line
Count
Source
721
68
      const uint16_t *left, int bd) {                                       \
722
68
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
68
  }
aom_highbd_dc_128_predictor_16x4_c
Line
Count
Source
721
28
      const uint16_t *left, int bd) {                                       \
722
28
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
28
  }
aom_highbd_dc_128_predictor_8x32_c
Line
Count
Source
721
865
      const uint16_t *left, int bd) {                                       \
722
865
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
865
  }
aom_highbd_dc_128_predictor_32x8_c
Line
Count
Source
721
554
      const uint16_t *left, int bd) {                                       \
722
554
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
554
  }
aom_highbd_dc_128_predictor_16x64_c
Line
Count
Source
721
454
      const uint16_t *left, int bd) {                                       \
722
454
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
454
  }
aom_highbd_dc_128_predictor_64x16_c
Line
Count
Source
721
101
      const uint16_t *left, int bd) {                                       \
722
101
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
101
  }
aom_highbd_dc_left_predictor_4x4_c
Line
Count
Source
721
7.44k
      const uint16_t *left, int bd) {                                       \
722
7.44k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.44k
  }
aom_highbd_dc_left_predictor_8x8_c
Line
Count
Source
721
2.40k
      const uint16_t *left, int bd) {                                       \
722
2.40k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.40k
  }
aom_highbd_dc_left_predictor_16x16_c
Line
Count
Source
721
5.86k
      const uint16_t *left, int bd) {                                       \
722
5.86k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.86k
  }
aom_highbd_dc_left_predictor_32x32_c
Line
Count
Source
721
20.7k
      const uint16_t *left, int bd) {                                       \
722
20.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
20.7k
  }
aom_highbd_dc_left_predictor_64x64_c
Line
Count
Source
721
3.53k
      const uint16_t *left, int bd) {                                       \
722
3.53k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.53k
  }
aom_highbd_dc_left_predictor_4x8_c
Line
Count
Source
721
1.43k
      const uint16_t *left, int bd) {                                       \
722
1.43k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.43k
  }
aom_highbd_dc_left_predictor_8x4_c
Line
Count
Source
721
2.16k
      const uint16_t *left, int bd) {                                       \
722
2.16k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.16k
  }
aom_highbd_dc_left_predictor_8x16_c
Line
Count
Source
721
1.35k
      const uint16_t *left, int bd) {                                       \
722
1.35k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.35k
  }
aom_highbd_dc_left_predictor_16x8_c
Line
Count
Source
721
1.78k
      const uint16_t *left, int bd) {                                       \
722
1.78k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.78k
  }
aom_highbd_dc_left_predictor_16x32_c
Line
Count
Source
721
2.06k
      const uint16_t *left, int bd) {                                       \
722
2.06k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.06k
  }
aom_highbd_dc_left_predictor_32x16_c
Line
Count
Source
721
1.74k
      const uint16_t *left, int bd) {                                       \
722
1.74k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.74k
  }
aom_highbd_dc_left_predictor_32x64_c
Line
Count
Source
721
491
      const uint16_t *left, int bd) {                                       \
722
491
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
491
  }
aom_highbd_dc_left_predictor_64x32_c
Line
Count
Source
721
447
      const uint16_t *left, int bd) {                                       \
722
447
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
447
  }
aom_highbd_dc_left_predictor_4x16_c
Line
Count
Source
721
1.46k
      const uint16_t *left, int bd) {                                       \
722
1.46k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.46k
  }
aom_highbd_dc_left_predictor_16x4_c
Line
Count
Source
721
1.06k
      const uint16_t *left, int bd) {                                       \
722
1.06k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.06k
  }
aom_highbd_dc_left_predictor_8x32_c
Line
Count
Source
721
4.90k
      const uint16_t *left, int bd) {                                       \
722
4.90k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.90k
  }
aom_highbd_dc_left_predictor_32x8_c
Line
Count
Source
721
450
      const uint16_t *left, int bd) {                                       \
722
450
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
450
  }
aom_highbd_dc_left_predictor_16x64_c
Line
Count
Source
721
1.60k
      const uint16_t *left, int bd) {                                       \
722
1.60k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.60k
  }
aom_highbd_dc_left_predictor_64x16_c
Line
Count
Source
721
35
      const uint16_t *left, int bd) {                                       \
722
35
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
35
  }
aom_highbd_dc_top_predictor_4x4_c
Line
Count
Source
721
3.47k
      const uint16_t *left, int bd) {                                       \
722
3.47k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.47k
  }
aom_highbd_dc_top_predictor_8x8_c
Line
Count
Source
721
1.22k
      const uint16_t *left, int bd) {                                       \
722
1.22k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.22k
  }
aom_highbd_dc_top_predictor_16x16_c
Line
Count
Source
721
3.07k
      const uint16_t *left, int bd) {                                       \
722
3.07k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.07k
  }
aom_highbd_dc_top_predictor_32x32_c
Line
Count
Source
721
11.6k
      const uint16_t *left, int bd) {                                       \
722
11.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
11.6k
  }
aom_highbd_dc_top_predictor_64x64_c
Line
Count
Source
721
3.34k
      const uint16_t *left, int bd) {                                       \
722
3.34k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.34k
  }
aom_highbd_dc_top_predictor_4x8_c
Line
Count
Source
721
675
      const uint16_t *left, int bd) {                                       \
722
675
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
675
  }
aom_highbd_dc_top_predictor_8x4_c
Line
Count
Source
721
1.02k
      const uint16_t *left, int bd) {                                       \
722
1.02k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.02k
  }
aom_highbd_dc_top_predictor_8x16_c
Line
Count
Source
721
703
      const uint16_t *left, int bd) {                                       \
722
703
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
703
  }
aom_highbd_dc_top_predictor_16x8_c
Line
Count
Source
721
821
      const uint16_t *left, int bd) {                                       \
722
821
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
821
  }
aom_highbd_dc_top_predictor_16x32_c
Line
Count
Source
721
767
      const uint16_t *left, int bd) {                                       \
722
767
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
767
  }
aom_highbd_dc_top_predictor_32x16_c
Line
Count
Source
721
1.16k
      const uint16_t *left, int bd) {                                       \
722
1.16k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.16k
  }
aom_highbd_dc_top_predictor_32x64_c
Line
Count
Source
721
237
      const uint16_t *left, int bd) {                                       \
722
237
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
237
  }
aom_highbd_dc_top_predictor_64x32_c
Line
Count
Source
721
401
      const uint16_t *left, int bd) {                                       \
722
401
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
401
  }
aom_highbd_dc_top_predictor_4x16_c
Line
Count
Source
721
251
      const uint16_t *left, int bd) {                                       \
722
251
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
251
  }
aom_highbd_dc_top_predictor_16x4_c
Line
Count
Source
721
794
      const uint16_t *left, int bd) {                                       \
722
794
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
794
  }
aom_highbd_dc_top_predictor_8x32_c
Line
Count
Source
721
266
      const uint16_t *left, int bd) {                                       \
722
266
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
266
  }
aom_highbd_dc_top_predictor_32x8_c
Line
Count
Source
721
979
      const uint16_t *left, int bd) {                                       \
722
979
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
979
  }
aom_highbd_dc_top_predictor_16x64_c
Line
Count
Source
721
63
      const uint16_t *left, int bd) {                                       \
722
63
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
63
  }
aom_highbd_dc_top_predictor_64x16_c
Line
Count
Source
721
435
      const uint16_t *left, int bd) {                                       \
722
435
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
435
  }
aom_highbd_dc_predictor_4x4_c
Line
Count
Source
721
349k
      const uint16_t *left, int bd) {                                       \
722
349k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
349k
  }
aom_highbd_dc_predictor_8x8_c
Line
Count
Source
721
180k
      const uint16_t *left, int bd) {                                       \
722
180k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
180k
  }
aom_highbd_dc_predictor_16x16_c
Line
Count
Source
721
104k
      const uint16_t *left, int bd) {                                       \
722
104k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
104k
  }
aom_highbd_dc_predictor_32x32_c
Line
Count
Source
721
102k
      const uint16_t *left, int bd) {                                       \
722
102k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
102k
  }
aom_highbd_dc_predictor_64x64_c
Line
Count
Source
721
28.3k
      const uint16_t *left, int bd) {                                       \
722
28.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
28.3k
  }
724
725
/* clang-format off */
726
#if CONFIG_REALTIME_ONLY
727
#define intra_pred_rectangular(type) \
728
  intra_pred_sized(type, 4, 8) \
729
  intra_pred_sized(type, 8, 4) \
730
  intra_pred_sized(type, 8, 16) \
731
  intra_pred_sized(type, 16, 8) \
732
  intra_pred_sized(type, 16, 32) \
733
  intra_pred_sized(type, 32, 16) \
734
  intra_pred_sized(type, 32, 64) \
735
  intra_pred_sized(type, 64, 32) \
736
  intra_pred_highbd_sized(type, 4, 8) \
737
  intra_pred_highbd_sized(type, 8, 4) \
738
  intra_pred_highbd_sized(type, 8, 16) \
739
  intra_pred_highbd_sized(type, 16, 8) \
740
  intra_pred_highbd_sized(type, 16, 32) \
741
  intra_pred_highbd_sized(type, 32, 16) \
742
  intra_pred_highbd_sized(type, 32, 64) \
743
  intra_pred_highbd_sized(type, 64, 32)
744
#else
745
#define intra_pred_rectangular(type) \
746
  intra_pred_sized(type, 4, 8) \
747
  intra_pred_sized(type, 8, 4) \
748
  intra_pred_sized(type, 8, 16) \
749
  intra_pred_sized(type, 16, 8) \
750
  intra_pred_sized(type, 16, 32) \
751
  intra_pred_sized(type, 32, 16) \
752
  intra_pred_sized(type, 32, 64) \
753
  intra_pred_sized(type, 64, 32) \
754
  intra_pred_sized(type, 4, 16) \
755
  intra_pred_sized(type, 16, 4) \
756
  intra_pred_sized(type, 8, 32) \
757
  intra_pred_sized(type, 32, 8) \
758
  intra_pred_sized(type, 16, 64) \
759
  intra_pred_sized(type, 64, 16) \
760
  intra_pred_highbd_sized(type, 4, 8) \
761
  intra_pred_highbd_sized(type, 8, 4) \
762
  intra_pred_highbd_sized(type, 8, 16) \
763
  intra_pred_highbd_sized(type, 16, 8) \
764
  intra_pred_highbd_sized(type, 16, 32) \
765
  intra_pred_highbd_sized(type, 32, 16) \
766
  intra_pred_highbd_sized(type, 32, 64) \
767
  intra_pred_highbd_sized(type, 64, 32) \
768
  intra_pred_highbd_sized(type, 4, 16) \
769
  intra_pred_highbd_sized(type, 16, 4) \
770
  intra_pred_highbd_sized(type, 8, 32) \
771
  intra_pred_highbd_sized(type, 32, 8) \
772
  intra_pred_highbd_sized(type, 16, 64) \
773
  intra_pred_highbd_sized(type, 64, 16)
774
#endif
775
776
#define intra_pred_above_4x4(type) \
777
  intra_pred_sized(type, 8, 8) \
778
  intra_pred_sized(type, 16, 16) \
779
  intra_pred_sized(type, 32, 32) \
780
  intra_pred_sized(type, 64, 64) \
781
  intra_pred_highbd_sized(type, 4, 4) \
782
  intra_pred_highbd_sized(type, 8, 8) \
783
  intra_pred_highbd_sized(type, 16, 16) \
784
  intra_pred_highbd_sized(type, 32, 32) \
785
  intra_pred_highbd_sized(type, 64, 64) \
786
  intra_pred_rectangular(type)
787
#define intra_pred_allsizes(type) \
788
  intra_pred_sized(type, 4, 4) \
789
  intra_pred_above_4x4(type)
790
#define intra_pred_square(type) \
791
  intra_pred_sized(type, 4, 4) \
792
  intra_pred_sized(type, 8, 8) \
793
  intra_pred_sized(type, 16, 16) \
794
  intra_pred_sized(type, 32, 32) \
795
  intra_pred_sized(type, 64, 64) \
796
  intra_pred_highbd_sized(type, 4, 4) \
797
  intra_pred_highbd_sized(type, 8, 8) \
798
  intra_pred_highbd_sized(type, 16, 16) \
799
  intra_pred_highbd_sized(type, 32, 32) \
800
  intra_pred_highbd_sized(type, 64, 64)
801
802
intra_pred_allsizes(v)
803
intra_pred_allsizes(h)
804
intra_pred_allsizes(smooth)
805
intra_pred_allsizes(smooth_v)
806
intra_pred_allsizes(smooth_h)
807
intra_pred_allsizes(paeth)
808
intra_pred_allsizes(dc_128)
809
intra_pred_allsizes(dc_left)
810
intra_pred_allsizes(dc_top)
811
intra_pred_square(dc)
812
/* clang-format on */
813
#undef intra_pred_allsizes