Coverage Report

Created: 2026-01-20 07:37

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/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
567k
                               const uint8_t *above, const uint8_t *left) {
25
567k
  int r;
26
567k
  (void)left;
27
28
6.97M
  for (r = 0; r < bh; r++) {
29
6.40M
    memcpy(dst, above, bw);
30
6.40M
    dst += stride;
31
6.40M
  }
32
567k
}
33
34
static INLINE void h_predictor(uint8_t *dst, ptrdiff_t stride, int bw, int bh,
35
791k
                               const uint8_t *above, const uint8_t *left) {
36
791k
  int r;
37
791k
  (void)above;
38
39
9.27M
  for (r = 0; r < bh; r++) {
40
8.48M
    memset(dst, left[r], bw);
41
8.48M
    dst += stride;
42
8.48M
  }
43
791k
}
44
45
11.4G
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
3.82G
                                              uint16_t top_left) {
49
3.82G
  const int base = top + left - top_left;
50
3.82G
  const int p_left = abs_diff(base, left);
51
3.82G
  const int p_top = abs_diff(base, top);
52
3.82G
  const int p_top_left = abs_diff(base, top_left);
53
54
  // Return nearest to base of left, top and top_left.
55
3.82G
  return (p_left <= p_top && p_left <= p_top_left)
56
3.82G
             ? left
57
3.82G
             : (p_top <= p_top_left) ? top : top_left;
58
3.82G
}
59
60
static INLINE void paeth_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
61
                                   int bh, const uint8_t *above,
62
4.78M
                                   const uint8_t *left) {
63
4.78M
  int r, c;
64
4.78M
  const uint8_t ytop_left = above[-1];
65
66
110M
  for (r = 0; r < bh; r++) {
67
2.27G
    for (c = 0; c < bw; c++)
68
2.16G
      dst[c] = (uint8_t)paeth_predictor_single(left[r], above[c], ytop_left);
69
105M
    dst += stride;
70
105M
  }
71
4.78M
}
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
5.30M
  assert(weights_w[0] < weights_scale);                               \
77
5.30M
  assert(weights_h[0] < weights_scale);                               \
78
5.30M
  assert(weights_scale - weights_w[bw - 1] < weights_scale);          \
79
5.30M
  assert(weights_scale - weights_h[bh - 1] < weights_scale);          \
80
5.30M
  assert(pred_scale < 31)  // ensures no overflow when calculating predictor.
81
82
1.22G
#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.57M
                                    const uint8_t *left) {
87
1.57M
  const uint8_t below_pred = left[bh - 1];   // estimated by bottom-left pixel
88
1.57M
  const uint8_t right_pred = above[bw - 1];  // estimated by top-right pixel
89
1.57M
  const uint8_t *const sm_weights_w = sm_weight_arrays + bw;
90
1.57M
  const uint8_t *const sm_weights_h = sm_weight_arrays + bh;
91
  // scale = 2 * 2^sm_weight_log2_scale
92
1.57M
  const int log2_scale = 1 + sm_weight_log2_scale;
93
1.57M
  const uint16_t scale = (1 << sm_weight_log2_scale);
94
6.28M
  sm_weights_sanity_checks(sm_weights_w, sm_weights_h, scale,
95
1.57M
                           log2_scale + sizeof(*dst));
96
1.57M
  int r;
97
19.8M
  for (r = 0; r < bh; ++r) {
98
18.2M
    int c;
99
359M
    for (c = 0; c < bw; ++c) {
100
341M
      const uint8_t pixels[] = { above[c], below_pred, left[r], right_pred };
101
341M
      const uint8_t weights[] = { sm_weights_h[r], scale - sm_weights_h[r],
102
341M
                                  sm_weights_w[c], scale - sm_weights_w[c] };
103
341M
      uint32_t this_pred = 0;
104
341M
      int i;
105
341M
      assert(scale >= sm_weights_h[r] && scale >= sm_weights_w[c]);
106
1.70G
      for (i = 0; i < 4; ++i) {
107
1.36G
        this_pred += weights[i] * pixels[i];
108
1.36G
      }
109
341M
      dst[c] = divide_round(this_pred, log2_scale);
110
341M
    }
111
18.2M
    dst += stride;
112
18.2M
  }
113
1.57M
}
114
115
static INLINE void smooth_v_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
116
                                      int bh, const uint8_t *above,
117
560k
                                      const uint8_t *left) {
118
560k
  const uint8_t below_pred = left[bh - 1];  // estimated by bottom-left pixel
119
560k
  const uint8_t *const sm_weights = sm_weight_arrays + bh;
120
  // scale = 2^sm_weight_log2_scale
121
560k
  const int log2_scale = sm_weight_log2_scale;
122
560k
  const uint16_t scale = (1 << sm_weight_log2_scale);
123
2.24M
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
124
560k
                           log2_scale + sizeof(*dst));
125
126
560k
  int r;
127
7.46M
  for (r = 0; r < bh; r++) {
128
6.90M
    int c;
129
142M
    for (c = 0; c < bw; ++c) {
130
135M
      const uint8_t pixels[] = { above[c], below_pred };
131
135M
      const uint8_t weights[] = { sm_weights[r], scale - sm_weights[r] };
132
135M
      uint32_t this_pred = 0;
133
135M
      assert(scale >= sm_weights[r]);
134
135M
      int i;
135
405M
      for (i = 0; i < 2; ++i) {
136
270M
        this_pred += weights[i] * pixels[i];
137
270M
      }
138
135M
      dst[c] = divide_round(this_pred, log2_scale);
139
135M
    }
140
6.90M
    dst += stride;
141
6.90M
  }
142
560k
}
143
144
static INLINE void smooth_h_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
145
                                      int bh, const uint8_t *above,
146
759k
                                      const uint8_t *left) {
147
759k
  const uint8_t right_pred = above[bw - 1];  // estimated by top-right pixel
148
759k
  const uint8_t *const sm_weights = sm_weight_arrays + bw;
149
  // scale = 2^sm_weight_log2_scale
150
759k
  const int log2_scale = sm_weight_log2_scale;
151
759k
  const uint16_t scale = (1 << sm_weight_log2_scale);
152
3.03M
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
153
759k
                           log2_scale + sizeof(*dst));
154
155
759k
  int r;
156
9.89M
  for (r = 0; r < bh; r++) {
157
9.13M
    int c;
158
177M
    for (c = 0; c < bw; ++c) {
159
168M
      const uint8_t pixels[] = { left[r], right_pred };
160
168M
      const uint8_t weights[] = { sm_weights[c], scale - sm_weights[c] };
161
168M
      uint32_t this_pred = 0;
162
168M
      assert(scale >= sm_weights[c]);
163
168M
      int i;
164
504M
      for (i = 0; i < 2; ++i) {
165
336M
        this_pred += weights[i] * pixels[i];
166
336M
      }
167
168M
      dst[c] = divide_round(this_pred, log2_scale);
168
168M
    }
169
9.13M
    dst += stride;
170
9.13M
  }
171
759k
}
172
173
static INLINE void dc_128_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
174
                                    int bh, const uint8_t *above,
175
25.9k
                                    const uint8_t *left) {
176
25.9k
  int r;
177
25.9k
  (void)above;
178
25.9k
  (void)left;
179
180
687k
  for (r = 0; r < bh; r++) {
181
661k
    memset(dst, 128, bw);
182
661k
    dst += stride;
183
661k
  }
184
25.9k
}
185
186
static INLINE void dc_left_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
187
                                     int bh, const uint8_t *above,
188
239k
                                     const uint8_t *left) {
189
239k
  int i, r, expected_dc, sum = 0;
190
239k
  (void)above;
191
192
4.99M
  for (i = 0; i < bh; i++) sum += left[i];
193
239k
  expected_dc = (sum + (bh >> 1)) / bh;
194
195
4.99M
  for (r = 0; r < bh; r++) {
196
4.75M
    memset(dst, expected_dc, bw);
197
4.75M
    dst += stride;
198
4.75M
  }
199
239k
}
200
201
static INLINE void dc_top_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
202
                                    int bh, const uint8_t *above,
203
622k
                                    const uint8_t *left) {
204
622k
  int i, r, expected_dc, sum = 0;
205
622k
  (void)left;
206
207
11.4M
  for (i = 0; i < bw; i++) sum += above[i];
208
622k
  expected_dc = (sum + (bw >> 1)) / bw;
209
210
12.5M
  for (r = 0; r < bh; r++) {
211
11.8M
    memset(dst, expected_dc, bw);
212
11.8M
    dst += stride;
213
11.8M
  }
214
622k
}
215
216
static INLINE void dc_predictor(uint8_t *dst, ptrdiff_t stride, int bw, int bh,
217
4.04M
                                const uint8_t *above, const uint8_t *left) {
218
4.04M
  int i, r, expected_dc, sum = 0;
219
4.04M
  const int count = bw + bh;
220
221
51.0M
  for (i = 0; i < bw; i++) {
222
47.0M
    sum += above[i];
223
47.0M
  }
224
51.0M
  for (i = 0; i < bh; i++) {
225
47.0M
    sum += left[i];
226
47.0M
  }
227
228
4.04M
  expected_dc = (sum + (count >> 1)) / count;
229
230
51.0M
  for (r = 0; r < bh; r++) {
231
47.0M
    memset(dst, expected_dc, bw);
232
47.0M
    dst += stride;
233
47.0M
  }
234
4.04M
}
235
236
static INLINE int divide_using_multiply_shift(int num, int shift1,
237
4.77M
                                              int multiplier, int shift2) {
238
4.77M
  const int interm = num >> shift1;
239
4.77M
  return interm * multiplier >> shift2;
240
4.77M
}
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
1.79M
#define DC_MULTIPLIER_1X2 0x5556
261
966k
#define DC_MULTIPLIER_1X4 0x3334
262
263
2.76M
#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
2.76M
                                     int multiplier) {
269
2.76M
  int sum = 0;
270
271
37.1M
  for (int i = 0; i < bw; i++) {
272
34.3M
    sum += above[i];
273
34.3M
  }
274
35.8M
  for (int i = 0; i < bh; i++) {
275
33.0M
    sum += left[i];
276
33.0M
  }
277
278
2.76M
  const int expected_dc = divide_using_multiply_shift(
279
2.76M
      sum + ((bw + bh) >> 1), shift1, multiplier, DC_SHIFT2);
280
2.76M
  assert(expected_dc < (1 << 8));
281
282
35.8M
  for (int r = 0; r < bh; r++) {
283
33.0M
    memset(dst, expected_dc, bw);
284
33.0M
    dst += stride;
285
33.0M
  }
286
2.76M
}
287
288
#undef DC_SHIFT2
289
290
void aom_dc_predictor_4x8_c(uint8_t *dst, ptrdiff_t stride,
291
373k
                            const uint8_t *above, const uint8_t *left) {
292
373k
  dc_predictor_rect(dst, stride, 4, 8, above, left, 2, DC_MULTIPLIER_1X2);
293
373k
}
294
295
void aom_dc_predictor_8x4_c(uint8_t *dst, ptrdiff_t stride,
296
451k
                            const uint8_t *above, const uint8_t *left) {
297
451k
  dc_predictor_rect(dst, stride, 8, 4, above, left, 2, DC_MULTIPLIER_1X2);
298
451k
}
299
300
void aom_dc_predictor_4x16_c(uint8_t *dst, ptrdiff_t stride,
301
293k
                             const uint8_t *above, const uint8_t *left) {
302
293k
  dc_predictor_rect(dst, stride, 4, 16, above, left, 2, DC_MULTIPLIER_1X4);
303
293k
}
304
305
void aom_dc_predictor_16x4_c(uint8_t *dst, ptrdiff_t stride,
306
336k
                             const uint8_t *above, const uint8_t *left) {
307
336k
  dc_predictor_rect(dst, stride, 16, 4, above, left, 2, DC_MULTIPLIER_1X4);
308
336k
}
309
310
void aom_dc_predictor_8x16_c(uint8_t *dst, ptrdiff_t stride,
311
294k
                             const uint8_t *above, const uint8_t *left) {
312
294k
  dc_predictor_rect(dst, stride, 8, 16, above, left, 3, DC_MULTIPLIER_1X2);
313
294k
}
314
315
void aom_dc_predictor_16x8_c(uint8_t *dst, ptrdiff_t stride,
316
398k
                             const uint8_t *above, const uint8_t *left) {
317
398k
  dc_predictor_rect(dst, stride, 16, 8, above, left, 3, DC_MULTIPLIER_1X2);
318
398k
}
319
320
void aom_dc_predictor_8x32_c(uint8_t *dst, ptrdiff_t stride,
321
148k
                             const uint8_t *above, const uint8_t *left) {
322
148k
  dc_predictor_rect(dst, stride, 8, 32, above, left, 3, DC_MULTIPLIER_1X4);
323
148k
}
324
325
void aom_dc_predictor_32x8_c(uint8_t *dst, ptrdiff_t stride,
326
165k
                             const uint8_t *above, const uint8_t *left) {
327
165k
  dc_predictor_rect(dst, stride, 32, 8, above, left, 3, DC_MULTIPLIER_1X4);
328
165k
}
329
330
void aom_dc_predictor_16x32_c(uint8_t *dst, ptrdiff_t stride,
331
145k
                              const uint8_t *above, const uint8_t *left) {
332
145k
  dc_predictor_rect(dst, stride, 16, 32, above, left, 4, DC_MULTIPLIER_1X2);
333
145k
}
334
335
void aom_dc_predictor_32x16_c(uint8_t *dst, ptrdiff_t stride,
336
123k
                              const uint8_t *above, const uint8_t *left) {
337
123k
  dc_predictor_rect(dst, stride, 32, 16, above, left, 4, DC_MULTIPLIER_1X2);
338
123k
}
339
340
void aom_dc_predictor_16x64_c(uint8_t *dst, ptrdiff_t stride,
341
15.6k
                              const uint8_t *above, const uint8_t *left) {
342
15.6k
  dc_predictor_rect(dst, stride, 16, 64, above, left, 4, DC_MULTIPLIER_1X4);
343
15.6k
}
344
345
void aom_dc_predictor_64x16_c(uint8_t *dst, ptrdiff_t stride,
346
7.95k
                              const uint8_t *above, const uint8_t *left) {
347
7.95k
  dc_predictor_rect(dst, stride, 64, 16, above, left, 4, DC_MULTIPLIER_1X4);
348
7.95k
}
349
350
void aom_dc_predictor_32x64_c(uint8_t *dst, ptrdiff_t stride,
351
4.76k
                              const uint8_t *above, const uint8_t *left) {
352
4.76k
  dc_predictor_rect(dst, stride, 32, 64, above, left, 5, DC_MULTIPLIER_1X2);
353
4.76k
}
354
355
void aom_dc_predictor_64x32_c(uint8_t *dst, ptrdiff_t stride,
356
4.95k
                              const uint8_t *above, const uint8_t *left) {
357
4.95k
  dc_predictor_rect(dst, stride, 64, 32, above, left, 5, DC_MULTIPLIER_1X2);
358
4.95k
}
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
428k
                                      const uint16_t *left, int bd) {
366
428k
  int r;
367
428k
  (void)left;
368
428k
  (void)bd;
369
5.15M
  for (r = 0; r < bh; r++) {
370
4.72M
    memcpy(dst, above, bw * sizeof(uint16_t));
371
4.72M
    dst += stride;
372
4.72M
  }
373
428k
}
374
375
static INLINE void highbd_h_predictor(uint16_t *dst, ptrdiff_t stride, int bw,
376
                                      int bh, const uint16_t *above,
377
659k
                                      const uint16_t *left, int bd) {
378
659k
  int r;
379
659k
  (void)above;
380
659k
  (void)bd;
381
7.51M
  for (r = 0; r < bh; r++) {
382
6.85M
    aom_memset16(dst, left[r], bw);
383
6.85M
    dst += stride;
384
6.85M
  }
385
659k
}
386
387
static INLINE void highbd_paeth_predictor(uint16_t *dst, ptrdiff_t stride,
388
                                          int bw, int bh, const uint16_t *above,
389
3.80M
                                          const uint16_t *left, int bd) {
390
3.80M
  int r, c;
391
3.80M
  const uint16_t ytop_left = above[-1];
392
3.80M
  (void)bd;
393
394
95.5M
  for (r = 0; r < bh; r++) {
395
1.75G
    for (c = 0; c < bw; c++)
396
1.66G
      dst[c] = paeth_predictor_single(left[r], above[c], ytop_left);
397
91.7M
    dst += stride;
398
91.7M
  }
399
3.80M
}
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
1.32M
                                           const uint16_t *left, int bd) {
405
1.32M
  (void)bd;
406
1.32M
  const uint16_t below_pred = left[bh - 1];   // estimated by bottom-left pixel
407
1.32M
  const uint16_t right_pred = above[bw - 1];  // estimated by top-right pixel
408
1.32M
  const uint8_t *const sm_weights_w = sm_weight_arrays + bw;
409
1.32M
  const uint8_t *const sm_weights_h = sm_weight_arrays + bh;
410
  // scale = 2 * 2^sm_weight_log2_scale
411
1.32M
  const int log2_scale = 1 + sm_weight_log2_scale;
412
1.32M
  const uint16_t scale = (1 << sm_weight_log2_scale);
413
5.29M
  sm_weights_sanity_checks(sm_weights_w, sm_weights_h, scale,
414
1.32M
                           log2_scale + sizeof(*dst));
415
1.32M
  int r;
416
16.9M
  for (r = 0; r < bh; ++r) {
417
15.5M
    int c;
418
335M
    for (c = 0; c < bw; ++c) {
419
320M
      const uint16_t pixels[] = { above[c], below_pred, left[r], right_pred };
420
320M
      const uint8_t weights[] = { sm_weights_h[r], scale - sm_weights_h[r],
421
320M
                                  sm_weights_w[c], scale - sm_weights_w[c] };
422
320M
      uint32_t this_pred = 0;
423
320M
      int i;
424
320M
      assert(scale >= sm_weights_h[r] && scale >= sm_weights_w[c]);
425
1.60G
      for (i = 0; i < 4; ++i) {
426
1.28G
        this_pred += weights[i] * pixels[i];
427
1.28G
      }
428
320M
      dst[c] = divide_round(this_pred, log2_scale);
429
320M
    }
430
15.5M
    dst += stride;
431
15.5M
  }
432
1.32M
}
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
506k
                                             const uint16_t *left, int bd) {
438
506k
  (void)bd;
439
506k
  const uint16_t below_pred = left[bh - 1];  // estimated by bottom-left pixel
440
506k
  const uint8_t *const sm_weights = sm_weight_arrays + bh;
441
  // scale = 2^sm_weight_log2_scale
442
506k
  const int log2_scale = sm_weight_log2_scale;
443
506k
  const uint16_t scale = (1 << sm_weight_log2_scale);
444
2.02M
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
445
506k
                           log2_scale + sizeof(*dst));
446
447
506k
  int r;
448
6.56M
  for (r = 0; r < bh; r++) {
449
6.05M
    int c;
450
126M
    for (c = 0; c < bw; ++c) {
451
120M
      const uint16_t pixels[] = { above[c], below_pred };
452
120M
      const uint8_t weights[] = { sm_weights[r], scale - sm_weights[r] };
453
120M
      uint32_t this_pred = 0;
454
120M
      assert(scale >= sm_weights[r]);
455
120M
      int i;
456
360M
      for (i = 0; i < 2; ++i) {
457
240M
        this_pred += weights[i] * pixels[i];
458
240M
      }
459
120M
      dst[c] = divide_round(this_pred, log2_scale);
460
120M
    }
461
6.05M
    dst += stride;
462
6.05M
  }
463
506k
}
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
588k
                                             const uint16_t *left, int bd) {
469
588k
  (void)bd;
470
588k
  const uint16_t right_pred = above[bw - 1];  // estimated by top-right pixel
471
588k
  const uint8_t *const sm_weights = sm_weight_arrays + bw;
472
  // scale = 2^sm_weight_log2_scale
473
588k
  const int log2_scale = sm_weight_log2_scale;
474
588k
  const uint16_t scale = (1 << sm_weight_log2_scale);
475
2.35M
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
476
588k
                           log2_scale + sizeof(*dst));
477
478
588k
  int r;
479
7.64M
  for (r = 0; r < bh; r++) {
480
7.06M
    int c;
481
147M
    for (c = 0; c < bw; ++c) {
482
140M
      const uint16_t pixels[] = { left[r], right_pred };
483
140M
      const uint8_t weights[] = { sm_weights[c], scale - sm_weights[c] };
484
140M
      uint32_t this_pred = 0;
485
140M
      assert(scale >= sm_weights[c]);
486
140M
      int i;
487
422M
      for (i = 0; i < 2; ++i) {
488
281M
        this_pred += weights[i] * pixels[i];
489
281M
      }
490
140M
      dst[c] = divide_round(this_pred, log2_scale);
491
140M
    }
492
7.06M
    dst += stride;
493
7.06M
  }
494
588k
}
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
53.2k
                                           const uint16_t *left, int bd) {
500
53.2k
  int r;
501
53.2k
  (void)above;
502
53.2k
  (void)left;
503
504
1.70M
  for (r = 0; r < bh; r++) {
505
1.65M
    aom_memset16(dst, 128 << (bd - 8), bw);
506
1.65M
    dst += stride;
507
1.65M
  }
508
53.2k
}
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
302k
                                            const uint16_t *left, int bd) {
514
302k
  int i, r, expected_dc, sum = 0;
515
302k
  (void)above;
516
302k
  (void)bd;
517
518
7.19M
  for (i = 0; i < bh; i++) sum += left[i];
519
302k
  expected_dc = (sum + (bh >> 1)) / bh;
520
521
7.19M
  for (r = 0; r < bh; r++) {
522
6.88M
    aom_memset16(dst, expected_dc, bw);
523
6.88M
    dst += stride;
524
6.88M
  }
525
302k
}
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
636k
                                           const uint16_t *left, int bd) {
531
636k
  int i, r, expected_dc, sum = 0;
532
636k
  (void)left;
533
636k
  (void)bd;
534
535
13.9M
  for (i = 0; i < bw; i++) sum += above[i];
536
636k
  expected_dc = (sum + (bw >> 1)) / bw;
537
538
15.1M
  for (r = 0; r < bh; r++) {
539
14.4M
    aom_memset16(dst, expected_dc, bw);
540
14.4M
    dst += stride;
541
14.4M
  }
542
636k
}
543
544
static INLINE void highbd_dc_predictor(uint16_t *dst, ptrdiff_t stride, int bw,
545
                                       int bh, const uint16_t *above,
546
4.24M
                                       const uint16_t *left, int bd) {
547
4.24M
  int i, r, expected_dc, sum = 0;
548
4.24M
  const int count = bw + bh;
549
4.24M
  (void)bd;
550
551
60.2M
  for (i = 0; i < bw; i++) {
552
56.0M
    sum += above[i];
553
56.0M
  }
554
60.2M
  for (i = 0; i < bh; i++) {
555
56.0M
    sum += left[i];
556
56.0M
  }
557
558
4.24M
  expected_dc = (sum + (count >> 1)) / count;
559
560
60.2M
  for (r = 0; r < bh; r++) {
561
56.0M
    aom_memset16(dst, expected_dc, bw);
562
56.0M
    dst += stride;
563
56.0M
  }
564
4.24M
}
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
1.28M
#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
729k
#define HIGHBD_DC_MULTIPLIER_1X4 0x6667
577
578
2.01M
#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
2.01M
                                            int shift1, uint32_t multiplier) {
585
2.01M
  int sum = 0;
586
2.01M
  (void)bd;
587
588
25.3M
  for (int i = 0; i < bw; i++) {
589
23.3M
    sum += above[i];
590
23.3M
  }
591
26.0M
  for (int i = 0; i < bh; i++) {
592
24.0M
    sum += left[i];
593
24.0M
  }
594
595
2.01M
  const int expected_dc = divide_using_multiply_shift(
596
2.01M
      sum + ((bw + bh) >> 1), shift1, multiplier, HIGHBD_DC_SHIFT2);
597
2.01M
  assert(expected_dc < (1 << bd));
598
599
26.0M
  for (int r = 0; r < bh; r++) {
600
24.0M
    aom_memset16(dst, expected_dc, bw);
601
24.0M
    dst += stride;
602
24.0M
  }
603
2.01M
}
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
305k
                                   int bd) {
610
305k
  highbd_dc_predictor_rect(dst, stride, 4, 8, above, left, bd, 2,
611
305k
                           HIGHBD_DC_MULTIPLIER_1X2);
612
305k
}
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
408k
                                   int bd) {
617
408k
  highbd_dc_predictor_rect(dst, stride, 8, 4, above, left, bd, 2,
618
408k
                           HIGHBD_DC_MULTIPLIER_1X2);
619
408k
}
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
247k
                                    int bd) {
624
247k
  highbd_dc_predictor_rect(dst, stride, 4, 16, above, left, bd, 2,
625
247k
                           HIGHBD_DC_MULTIPLIER_1X4);
626
247k
}
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
237k
                                    int bd) {
631
237k
  highbd_dc_predictor_rect(dst, stride, 16, 4, above, left, bd, 2,
632
237k
                           HIGHBD_DC_MULTIPLIER_1X4);
633
237k
}
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
172k
                                    int bd) {
638
172k
  highbd_dc_predictor_rect(dst, stride, 8, 16, above, left, bd, 3,
639
172k
                           HIGHBD_DC_MULTIPLIER_1X2);
640
172k
}
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
220k
                                    int bd) {
645
220k
  highbd_dc_predictor_rect(dst, stride, 16, 8, above, left, bd, 3,
646
220k
                           HIGHBD_DC_MULTIPLIER_1X2);
647
220k
}
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
129k
                                    int bd) {
652
129k
  highbd_dc_predictor_rect(dst, stride, 8, 32, above, left, bd, 3,
653
129k
                           HIGHBD_DC_MULTIPLIER_1X4);
654
129k
}
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
92.8k
                                    int bd) {
659
92.8k
  highbd_dc_predictor_rect(dst, stride, 32, 8, above, left, bd, 3,
660
92.8k
                           HIGHBD_DC_MULTIPLIER_1X4);
661
92.8k
}
662
663
void aom_highbd_dc_predictor_16x32_c(uint16_t *dst, ptrdiff_t stride,
664
                                     const uint16_t *above,
665
87.8k
                                     const uint16_t *left, int bd) {
666
87.8k
  highbd_dc_predictor_rect(dst, stride, 16, 32, above, left, bd, 4,
667
87.8k
                           HIGHBD_DC_MULTIPLIER_1X2);
668
87.8k
}
669
670
void aom_highbd_dc_predictor_32x16_c(uint16_t *dst, ptrdiff_t stride,
671
                                     const uint16_t *above,
672
75.8k
                                     const uint16_t *left, int bd) {
673
75.8k
  highbd_dc_predictor_rect(dst, stride, 32, 16, above, left, bd, 4,
674
75.8k
                           HIGHBD_DC_MULTIPLIER_1X2);
675
75.8k
}
676
677
void aom_highbd_dc_predictor_16x64_c(uint16_t *dst, ptrdiff_t stride,
678
                                     const uint16_t *above,
679
14.2k
                                     const uint16_t *left, int bd) {
680
14.2k
  highbd_dc_predictor_rect(dst, stride, 16, 64, above, left, bd, 4,
681
14.2k
                           HIGHBD_DC_MULTIPLIER_1X4);
682
14.2k
}
683
684
void aom_highbd_dc_predictor_64x16_c(uint16_t *dst, ptrdiff_t stride,
685
                                     const uint16_t *above,
686
7.46k
                                     const uint16_t *left, int bd) {
687
7.46k
  highbd_dc_predictor_rect(dst, stride, 64, 16, above, left, bd, 4,
688
7.46k
                           HIGHBD_DC_MULTIPLIER_1X4);
689
7.46k
}
690
691
void aom_highbd_dc_predictor_32x64_c(uint16_t *dst, ptrdiff_t stride,
692
                                     const uint16_t *above,
693
5.67k
                                     const uint16_t *left, int bd) {
694
5.67k
  highbd_dc_predictor_rect(dst, stride, 32, 64, above, left, bd, 5,
695
5.67k
                           HIGHBD_DC_MULTIPLIER_1X2);
696
5.67k
}
697
698
void aom_highbd_dc_predictor_64x32_c(uint16_t *dst, ptrdiff_t stride,
699
                                     const uint16_t *above,
700
6.67k
                                     const uint16_t *left, int bd) {
701
6.67k
  highbd_dc_predictor_rect(dst, stride, 64, 32, above, left, bd, 5,
702
6.67k
                           HIGHBD_DC_MULTIPLIER_1X2);
703
6.67k
}
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
13.9M
      const uint8_t *left) {                                   \
715
13.9M
    type##_predictor(dst, stride, width, height, above, left); \
716
13.9M
  }
aom_v_predictor_4x4_c
Line
Count
Source
714
131k
      const uint8_t *left) {                                   \
715
131k
    type##_predictor(dst, stride, width, height, above, left); \
716
131k
  }
aom_v_predictor_8x8_c
Line
Count
Source
714
89.0k
      const uint8_t *left) {                                   \
715
89.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
89.0k
  }
aom_v_predictor_16x16_c
Line
Count
Source
714
49.2k
      const uint8_t *left) {                                   \
715
49.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
49.2k
  }
aom_v_predictor_32x32_c
Line
Count
Source
714
47.8k
      const uint8_t *left) {                                   \
715
47.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
47.8k
  }
aom_v_predictor_64x64_c
Line
Count
Source
714
3.48k
      const uint8_t *left) {                                   \
715
3.48k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.48k
  }
aom_v_predictor_4x8_c
Line
Count
Source
714
40.2k
      const uint8_t *left) {                                   \
715
40.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
40.2k
  }
aom_v_predictor_8x4_c
Line
Count
Source
714
59.7k
      const uint8_t *left) {                                   \
715
59.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
59.7k
  }
aom_v_predictor_8x16_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_v_predictor_16x8_c
Line
Count
Source
714
34.1k
      const uint8_t *left) {                                   \
715
34.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
34.1k
  }
aom_v_predictor_16x32_c
Line
Count
Source
714
10.7k
      const uint8_t *left) {                                   \
715
10.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
10.7k
  }
aom_v_predictor_32x16_c
Line
Count
Source
714
9.82k
      const uint8_t *left) {                                   \
715
9.82k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.82k
  }
aom_v_predictor_32x64_c
Line
Count
Source
714
584
      const uint8_t *left) {                                   \
715
584
    type##_predictor(dst, stride, width, height, above, left); \
716
584
  }
aom_v_predictor_64x32_c
Line
Count
Source
714
550
      const uint8_t *left) {                                   \
715
550
    type##_predictor(dst, stride, width, height, above, left); \
716
550
  }
aom_v_predictor_4x16_c
Line
Count
Source
714
17.0k
      const uint8_t *left) {                                   \
715
17.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
17.0k
  }
aom_v_predictor_16x4_c
Line
Count
Source
714
27.0k
      const uint8_t *left) {                                   \
715
27.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
27.0k
  }
aom_v_predictor_8x32_c
Line
Count
Source
714
7.95k
      const uint8_t *left) {                                   \
715
7.95k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.95k
  }
aom_v_predictor_32x8_c
Line
Count
Source
714
12.7k
      const uint8_t *left) {                                   \
715
12.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
12.7k
  }
aom_v_predictor_16x64_c
Line
Count
Source
714
1.64k
      const uint8_t *left) {                                   \
715
1.64k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.64k
  }
aom_v_predictor_64x16_c
Line
Count
Source
714
952
      const uint8_t *left) {                                   \
715
952
    type##_predictor(dst, stride, width, height, above, left); \
716
952
  }
aom_h_predictor_4x4_c
Line
Count
Source
714
191k
      const uint8_t *left) {                                   \
715
191k
    type##_predictor(dst, stride, width, height, above, left); \
716
191k
  }
aom_h_predictor_8x8_c
Line
Count
Source
714
132k
      const uint8_t *left) {                                   \
715
132k
    type##_predictor(dst, stride, width, height, above, left); \
716
132k
  }
aom_h_predictor_16x16_c
Line
Count
Source
714
67.5k
      const uint8_t *left) {                                   \
715
67.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
67.5k
  }
aom_h_predictor_32x32_c
Line
Count
Source
714
53.0k
      const uint8_t *left) {                                   \
715
53.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
53.0k
  }
aom_h_predictor_64x64_c
Line
Count
Source
714
5.08k
      const uint8_t *left) {                                   \
715
5.08k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.08k
  }
aom_h_predictor_4x8_c
Line
Count
Source
714
63.2k
      const uint8_t *left) {                                   \
715
63.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
63.2k
  }
aom_h_predictor_8x4_c
Line
Count
Source
714
89.9k
      const uint8_t *left) {                                   \
715
89.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
89.9k
  }
aom_h_predictor_8x16_c
Line
Count
Source
714
30.1k
      const uint8_t *left) {                                   \
715
30.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
30.1k
  }
aom_h_predictor_16x8_c
Line
Count
Source
714
42.7k
      const uint8_t *left) {                                   \
715
42.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
42.7k
  }
aom_h_predictor_16x32_c
Line
Count
Source
714
13.4k
      const uint8_t *left) {                                   \
715
13.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
13.4k
  }
aom_h_predictor_32x16_c
Line
Count
Source
714
13.0k
      const uint8_t *left) {                                   \
715
13.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
13.0k
  }
aom_h_predictor_32x64_c
Line
Count
Source
714
552
      const uint8_t *left) {                                   \
715
552
    type##_predictor(dst, stride, width, height, above, left); \
716
552
  }
aom_h_predictor_64x32_c
Line
Count
Source
714
878
      const uint8_t *left) {                                   \
715
878
    type##_predictor(dst, stride, width, height, above, left); \
716
878
  }
aom_h_predictor_4x16_c
Line
Count
Source
714
22.2k
      const uint8_t *left) {                                   \
715
22.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
22.2k
  }
aom_h_predictor_16x4_c
Line
Count
Source
714
34.4k
      const uint8_t *left) {                                   \
715
34.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
34.4k
  }
aom_h_predictor_8x32_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_h_predictor_32x8_c
Line
Count
Source
714
16.1k
      const uint8_t *left) {                                   \
715
16.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
16.1k
  }
aom_h_predictor_16x64_c
Line
Count
Source
714
2.19k
      const uint8_t *left) {                                   \
715
2.19k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.19k
  }
aom_h_predictor_64x16_c
Line
Count
Source
714
1.10k
      const uint8_t *left) {                                   \
715
1.10k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.10k
  }
aom_smooth_predictor_4x4_c
Line
Count
Source
714
316k
      const uint8_t *left) {                                   \
715
316k
    type##_predictor(dst, stride, width, height, above, left); \
716
316k
  }
aom_smooth_predictor_8x8_c
Line
Count
Source
714
306k
      const uint8_t *left) {                                   \
715
306k
    type##_predictor(dst, stride, width, height, above, left); \
716
306k
  }
aom_smooth_predictor_16x16_c
Line
Count
Source
714
166k
      const uint8_t *left) {                                   \
715
166k
    type##_predictor(dst, stride, width, height, above, left); \
716
166k
  }
aom_smooth_predictor_32x32_c
Line
Count
Source
714
100k
      const uint8_t *left) {                                   \
715
100k
    type##_predictor(dst, stride, width, height, above, left); \
716
100k
  }
aom_smooth_predictor_64x64_c
Line
Count
Source
714
15.9k
      const uint8_t *left) {                                   \
715
15.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
15.9k
  }
aom_smooth_predictor_4x8_c
Line
Count
Source
714
81.0k
      const uint8_t *left) {                                   \
715
81.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
81.0k
  }
aom_smooth_predictor_8x4_c
Line
Count
Source
714
117k
      const uint8_t *left) {                                   \
715
117k
    type##_predictor(dst, stride, width, height, above, left); \
716
117k
  }
aom_smooth_predictor_8x16_c
Line
Count
Source
714
75.3k
      const uint8_t *left) {                                   \
715
75.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
75.3k
  }
aom_smooth_predictor_16x8_c
Line
Count
Source
714
108k
      const uint8_t *left) {                                   \
715
108k
    type##_predictor(dst, stride, width, height, above, left); \
716
108k
  }
aom_smooth_predictor_16x32_c
Line
Count
Source
714
30.8k
      const uint8_t *left) {                                   \
715
30.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
30.8k
  }
aom_smooth_predictor_32x16_c
Line
Count
Source
714
30.4k
      const uint8_t *left) {                                   \
715
30.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
30.4k
  }
aom_smooth_predictor_32x64_c
Line
Count
Source
714
2.51k
      const uint8_t *left) {                                   \
715
2.51k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.51k
  }
aom_smooth_predictor_64x32_c
Line
Count
Source
714
2.33k
      const uint8_t *left) {                                   \
715
2.33k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.33k
  }
aom_smooth_predictor_4x16_c
Line
Count
Source
714
54.4k
      const uint8_t *left) {                                   \
715
54.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
54.4k
  }
aom_smooth_predictor_16x4_c
Line
Count
Source
714
87.5k
      const uint8_t *left) {                                   \
715
87.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
87.5k
  }
aom_smooth_predictor_8x32_c
Line
Count
Source
714
26.6k
      const uint8_t *left) {                                   \
715
26.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
26.6k
  }
aom_smooth_predictor_32x8_c
Line
Count
Source
714
40.4k
      const uint8_t *left) {                                   \
715
40.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
40.4k
  }
aom_smooth_predictor_16x64_c
Line
Count
Source
714
4.59k
      const uint8_t *left) {                                   \
715
4.59k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.59k
  }
aom_smooth_predictor_64x16_c
Line
Count
Source
714
3.13k
      const uint8_t *left) {                                   \
715
3.13k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.13k
  }
aom_smooth_v_predictor_4x4_c
Line
Count
Source
714
92.2k
      const uint8_t *left) {                                   \
715
92.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
92.2k
  }
aom_smooth_v_predictor_8x8_c
Line
Count
Source
714
103k
      const uint8_t *left) {                                   \
715
103k
    type##_predictor(dst, stride, width, height, above, left); \
716
103k
  }
aom_smooth_v_predictor_16x16_c
Line
Count
Source
714
51.8k
      const uint8_t *left) {                                   \
715
51.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
51.8k
  }
aom_smooth_v_predictor_32x32_c
Line
Count
Source
714
48.3k
      const uint8_t *left) {                                   \
715
48.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
48.3k
  }
aom_smooth_v_predictor_64x64_c
Line
Count
Source
714
5.49k
      const uint8_t *left) {                                   \
715
5.49k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.49k
  }
aom_smooth_v_predictor_4x8_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_v_predictor_8x4_c
Line
Count
Source
714
46.0k
      const uint8_t *left) {                                   \
715
46.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
46.0k
  }
aom_smooth_v_predictor_8x16_c
Line
Count
Source
714
29.1k
      const uint8_t *left) {                                   \
715
29.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
29.1k
  }
aom_smooth_v_predictor_16x8_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_smooth_v_predictor_16x32_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_smooth_v_predictor_32x16_c
Line
Count
Source
714
12.8k
      const uint8_t *left) {                                   \
715
12.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
12.8k
  }
aom_smooth_v_predictor_32x64_c
Line
Count
Source
714
885
      const uint8_t *left) {                                   \
715
885
    type##_predictor(dst, stride, width, height, above, left); \
716
885
  }
aom_smooth_v_predictor_64x32_c
Line
Count
Source
714
934
      const uint8_t *left) {                                   \
715
934
    type##_predictor(dst, stride, width, height, above, left); \
716
934
  }
aom_smooth_v_predictor_4x16_c
Line
Count
Source
714
21.3k
      const uint8_t *left) {                                   \
715
21.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
21.3k
  }
aom_smooth_v_predictor_16x4_c
Line
Count
Source
714
34.1k
      const uint8_t *left) {                                   \
715
34.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
34.1k
  }
aom_smooth_v_predictor_8x32_c
Line
Count
Source
714
10.4k
      const uint8_t *left) {                                   \
715
10.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
10.4k
  }
aom_smooth_v_predictor_32x8_c
Line
Count
Source
714
17.2k
      const uint8_t *left) {                                   \
715
17.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
17.2k
  }
aom_smooth_v_predictor_16x64_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_64x16_c
Line
Count
Source
714
1.34k
      const uint8_t *left) {                                   \
715
1.34k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.34k
  }
aom_smooth_h_predictor_4x4_c
Line
Count
Source
714
126k
      const uint8_t *left) {                                   \
715
126k
    type##_predictor(dst, stride, width, height, above, left); \
716
126k
  }
aom_smooth_h_predictor_8x8_c
Line
Count
Source
714
145k
      const uint8_t *left) {                                   \
715
145k
    type##_predictor(dst, stride, width, height, above, left); \
716
145k
  }
aom_smooth_h_predictor_16x16_c
Line
Count
Source
714
89.5k
      const uint8_t *left) {                                   \
715
89.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
89.5k
  }
aom_smooth_h_predictor_32x32_c
Line
Count
Source
714
55.5k
      const uint8_t *left) {                                   \
715
55.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
55.5k
  }
aom_smooth_h_predictor_64x64_c
Line
Count
Source
714
6.17k
      const uint8_t *left) {                                   \
715
6.17k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.17k
  }
aom_smooth_h_predictor_4x8_c
Line
Count
Source
714
40.8k
      const uint8_t *left) {                                   \
715
40.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
40.8k
  }
aom_smooth_h_predictor_8x4_c
Line
Count
Source
714
59.5k
      const uint8_t *left) {                                   \
715
59.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
59.5k
  }
aom_smooth_h_predictor_8x16_c
Line
Count
Source
714
40.4k
      const uint8_t *left) {                                   \
715
40.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
40.4k
  }
aom_smooth_h_predictor_16x8_c
Line
Count
Source
714
52.1k
      const uint8_t *left) {                                   \
715
52.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
52.1k
  }
aom_smooth_h_predictor_16x32_c
Line
Count
Source
714
16.1k
      const uint8_t *left) {                                   \
715
16.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
16.1k
  }
aom_smooth_h_predictor_32x16_c
Line
Count
Source
714
15.6k
      const uint8_t *left) {                                   \
715
15.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
15.6k
  }
aom_smooth_h_predictor_32x64_c
Line
Count
Source
714
781
      const uint8_t *left) {                                   \
715
781
    type##_predictor(dst, stride, width, height, above, left); \
716
781
  }
aom_smooth_h_predictor_64x32_c
Line
Count
Source
714
932
      const uint8_t *left) {                                   \
715
932
    type##_predictor(dst, stride, width, height, above, left); \
716
932
  }
aom_smooth_h_predictor_4x16_c
Line
Count
Source
714
27.4k
      const uint8_t *left) {                                   \
715
27.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
27.4k
  }
aom_smooth_h_predictor_16x4_c
Line
Count
Source
714
43.6k
      const uint8_t *left) {                                   \
715
43.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
43.6k
  }
aom_smooth_h_predictor_8x32_c
Line
Count
Source
714
13.9k
      const uint8_t *left) {                                   \
715
13.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
13.9k
  }
aom_smooth_h_predictor_32x8_c
Line
Count
Source
714
21.7k
      const uint8_t *left) {                                   \
715
21.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
21.7k
  }
aom_smooth_h_predictor_16x64_c
Line
Count
Source
714
2.16k
      const uint8_t *left) {                                   \
715
2.16k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.16k
  }
aom_smooth_h_predictor_64x16_c
Line
Count
Source
714
963
      const uint8_t *left) {                                   \
715
963
    type##_predictor(dst, stride, width, height, above, left); \
716
963
  }
aom_paeth_predictor_4x4_c
Line
Count
Source
714
825k
      const uint8_t *left) {                                   \
715
825k
    type##_predictor(dst, stride, width, height, above, left); \
716
825k
  }
aom_paeth_predictor_8x8_c
Line
Count
Source
714
438k
      const uint8_t *left) {                                   \
715
438k
    type##_predictor(dst, stride, width, height, above, left); \
716
438k
  }
aom_paeth_predictor_16x16_c
Line
Count
Source
714
205k
      const uint8_t *left) {                                   \
715
205k
    type##_predictor(dst, stride, width, height, above, left); \
716
205k
  }
aom_paeth_predictor_32x32_c
Line
Count
Source
714
705k
      const uint8_t *left) {                                   \
715
705k
    type##_predictor(dst, stride, width, height, above, left); \
716
705k
  }
aom_paeth_predictor_64x64_c
Line
Count
Source
714
92.5k
      const uint8_t *left) {                                   \
715
92.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
92.5k
  }
aom_paeth_predictor_4x8_c
Line
Count
Source
714
135k
      const uint8_t *left) {                                   \
715
135k
    type##_predictor(dst, stride, width, height, above, left); \
716
135k
  }
aom_paeth_predictor_8x4_c
Line
Count
Source
714
191k
      const uint8_t *left) {                                   \
715
191k
    type##_predictor(dst, stride, width, height, above, left); \
716
191k
  }
aom_paeth_predictor_8x16_c
Line
Count
Source
714
114k
      const uint8_t *left) {                                   \
715
114k
    type##_predictor(dst, stride, width, height, above, left); \
716
114k
  }
aom_paeth_predictor_16x8_c
Line
Count
Source
714
161k
      const uint8_t *left) {                                   \
715
161k
    type##_predictor(dst, stride, width, height, above, left); \
716
161k
  }
aom_paeth_predictor_16x32_c
Line
Count
Source
714
867k
      const uint8_t *left) {                                   \
715
867k
    type##_predictor(dst, stride, width, height, above, left); \
716
867k
  }
aom_paeth_predictor_32x16_c
Line
Count
Source
714
42.4k
      const uint8_t *left) {                                   \
715
42.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
42.4k
  }
aom_paeth_predictor_32x64_c
Line
Count
Source
714
14.1k
      const uint8_t *left) {                                   \
715
14.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
14.1k
  }
aom_paeth_predictor_64x32_c
Line
Count
Source
714
3.34k
      const uint8_t *left) {                                   \
715
3.34k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.34k
  }
aom_paeth_predictor_4x16_c
Line
Count
Source
714
207k
      const uint8_t *left) {                                   \
715
207k
    type##_predictor(dst, stride, width, height, above, left); \
716
207k
  }
aom_paeth_predictor_16x4_c
Line
Count
Source
714
134k
      const uint8_t *left) {                                   \
715
134k
    type##_predictor(dst, stride, width, height, above, left); \
716
134k
  }
aom_paeth_predictor_8x32_c
Line
Count
Source
714
285k
      const uint8_t *left) {                                   \
715
285k
    type##_predictor(dst, stride, width, height, above, left); \
716
285k
  }
aom_paeth_predictor_32x8_c
Line
Count
Source
714
51.1k
      const uint8_t *left) {                                   \
715
51.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
51.1k
  }
aom_paeth_predictor_16x64_c
Line
Count
Source
714
303k
      const uint8_t *left) {                                   \
715
303k
    type##_predictor(dst, stride, width, height, above, left); \
716
303k
  }
aom_paeth_predictor_64x16_c
Line
Count
Source
714
4.05k
      const uint8_t *left) {                                   \
715
4.05k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.05k
  }
aom_dc_128_predictor_4x4_c
Line
Count
Source
714
3.65k
      const uint8_t *left) {                                   \
715
3.65k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.65k
  }
aom_dc_128_predictor_8x8_c
Line
Count
Source
714
1.75k
      const uint8_t *left) {                                   \
715
1.75k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.75k
  }
aom_dc_128_predictor_16x16_c
Line
Count
Source
714
361
      const uint8_t *left) {                                   \
715
361
    type##_predictor(dst, stride, width, height, above, left); \
716
361
  }
aom_dc_128_predictor_32x32_c
Line
Count
Source
714
7.77k
      const uint8_t *left) {                                   \
715
7.77k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.77k
  }
aom_dc_128_predictor_64x64_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_dc_128_predictor_4x8_c
Line
Count
Source
714
462
      const uint8_t *left) {                                   \
715
462
    type##_predictor(dst, stride, width, height, above, left); \
716
462
  }
aom_dc_128_predictor_8x4_c
Line
Count
Source
714
107
      const uint8_t *left) {                                   \
715
107
    type##_predictor(dst, stride, width, height, above, left); \
716
107
  }
aom_dc_128_predictor_8x16_c
Line
Count
Source
714
420
      const uint8_t *left) {                                   \
715
420
    type##_predictor(dst, stride, width, height, above, left); \
716
420
  }
aom_dc_128_predictor_16x8_c
Line
Count
Source
714
2.24k
      const uint8_t *left) {                                   \
715
2.24k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.24k
  }
aom_dc_128_predictor_16x32_c
Line
Count
Source
714
1.71k
      const uint8_t *left) {                                   \
715
1.71k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.71k
  }
aom_dc_128_predictor_32x16_c
Line
Count
Source
714
1.35k
      const uint8_t *left) {                                   \
715
1.35k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.35k
  }
aom_dc_128_predictor_32x64_c
Line
Count
Source
714
371
      const uint8_t *left) {                                   \
715
371
    type##_predictor(dst, stride, width, height, above, left); \
716
371
  }
aom_dc_128_predictor_64x32_c
Line
Count
Source
714
261
      const uint8_t *left) {                                   \
715
261
    type##_predictor(dst, stride, width, height, above, left); \
716
261
  }
aom_dc_128_predictor_4x16_c
Line
Count
Source
714
676
      const uint8_t *left) {                                   \
715
676
    type##_predictor(dst, stride, width, height, above, left); \
716
676
  }
aom_dc_128_predictor_16x4_c
Line
Count
Source
714
42
      const uint8_t *left) {                                   \
715
42
    type##_predictor(dst, stride, width, height, above, left); \
716
42
  }
aom_dc_128_predictor_8x32_c
Line
Count
Source
714
651
      const uint8_t *left) {                                   \
715
651
    type##_predictor(dst, stride, width, height, above, left); \
716
651
  }
aom_dc_128_predictor_32x8_c
Line
Count
Source
714
960
      const uint8_t *left) {                                   \
715
960
    type##_predictor(dst, stride, width, height, above, left); \
716
960
  }
aom_dc_128_predictor_16x64_c
Line
Count
Source
714
86
      const uint8_t *left) {                                   \
715
86
    type##_predictor(dst, stride, width, height, above, left); \
716
86
  }
aom_dc_128_predictor_64x16_c
Line
Count
Source
714
9
      const uint8_t *left) {                                   \
715
9
    type##_predictor(dst, stride, width, height, above, left); \
716
9
  }
aom_dc_left_predictor_4x4_c
Line
Count
Source
714
59.0k
      const uint8_t *left) {                                   \
715
59.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
59.0k
  }
aom_dc_left_predictor_8x8_c
Line
Count
Source
714
13.3k
      const uint8_t *left) {                                   \
715
13.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
13.3k
  }
aom_dc_left_predictor_16x16_c
Line
Count
Source
714
19.6k
      const uint8_t *left) {                                   \
715
19.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
19.6k
  }
aom_dc_left_predictor_32x32_c
Line
Count
Source
714
63.5k
      const uint8_t *left) {                                   \
715
63.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
63.5k
  }
aom_dc_left_predictor_64x64_c
Line
Count
Source
714
13.8k
      const uint8_t *left) {                                   \
715
13.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
13.8k
  }
aom_dc_left_predictor_4x8_c
Line
Count
Source
714
7.33k
      const uint8_t *left) {                                   \
715
7.33k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.33k
  }
aom_dc_left_predictor_8x4_c
Line
Count
Source
714
7.60k
      const uint8_t *left) {                                   \
715
7.60k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.60k
  }
aom_dc_left_predictor_8x16_c
Line
Count
Source
714
3.82k
      const uint8_t *left) {                                   \
715
3.82k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.82k
  }
aom_dc_left_predictor_16x8_c
Line
Count
Source
714
9.99k
      const uint8_t *left) {                                   \
715
9.99k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.99k
  }
aom_dc_left_predictor_16x32_c
Line
Count
Source
714
5.27k
      const uint8_t *left) {                                   \
715
5.27k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.27k
  }
aom_dc_left_predictor_32x16_c
Line
Count
Source
714
9.50k
      const uint8_t *left) {                                   \
715
9.50k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.50k
  }
aom_dc_left_predictor_32x64_c
Line
Count
Source
714
859
      const uint8_t *left) {                                   \
715
859
    type##_predictor(dst, stride, width, height, above, left); \
716
859
  }
aom_dc_left_predictor_64x32_c
Line
Count
Source
714
2.28k
      const uint8_t *left) {                                   \
715
2.28k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.28k
  }
aom_dc_left_predictor_4x16_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_dc_left_predictor_16x4_c
Line
Count
Source
714
2.18k
      const uint8_t *left) {                                   \
715
2.18k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.18k
  }
aom_dc_left_predictor_8x32_c
Line
Count
Source
714
5.94k
      const uint8_t *left) {                                   \
715
5.94k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.94k
  }
aom_dc_left_predictor_32x8_c
Line
Count
Source
714
2.62k
      const uint8_t *left) {                                   \
715
2.62k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.62k
  }
aom_dc_left_predictor_16x64_c
Line
Count
Source
714
1.42k
      const uint8_t *left) {                                   \
715
1.42k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.42k
  }
aom_dc_left_predictor_64x16_c
Line
Count
Source
714
656
      const uint8_t *left) {                                   \
715
656
    type##_predictor(dst, stride, width, height, above, left); \
716
656
  }
aom_dc_top_predictor_4x4_c
Line
Count
Source
714
100k
      const uint8_t *left) {                                   \
715
100k
    type##_predictor(dst, stride, width, height, above, left); \
716
100k
  }
aom_dc_top_predictor_8x8_c
Line
Count
Source
714
37.3k
      const uint8_t *left) {                                   \
715
37.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
37.3k
  }
aom_dc_top_predictor_16x16_c
Line
Count
Source
714
44.2k
      const uint8_t *left) {                                   \
715
44.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
44.2k
  }
aom_dc_top_predictor_32x32_c
Line
Count
Source
714
135k
      const uint8_t *left) {                                   \
715
135k
    type##_predictor(dst, stride, width, height, above, left); \
716
135k
  }
aom_dc_top_predictor_64x64_c
Line
Count
Source
714
17.7k
      const uint8_t *left) {                                   \
715
17.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
17.7k
  }
aom_dc_top_predictor_4x8_c
Line
Count
Source
714
63.9k
      const uint8_t *left) {                                   \
715
63.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
63.9k
  }
aom_dc_top_predictor_8x4_c
Line
Count
Source
714
21.5k
      const uint8_t *left) {                                   \
715
21.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
21.5k
  }
aom_dc_top_predictor_8x16_c
Line
Count
Source
714
36.7k
      const uint8_t *left) {                                   \
715
36.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
36.7k
  }
aom_dc_top_predictor_16x8_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_top_predictor_16x32_c
Line
Count
Source
714
44.1k
      const uint8_t *left) {                                   \
715
44.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
44.1k
  }
aom_dc_top_predictor_32x16_c
Line
Count
Source
714
17.9k
      const uint8_t *left) {                                   \
715
17.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
17.9k
  }
aom_dc_top_predictor_32x64_c
Line
Count
Source
714
9.61k
      const uint8_t *left) {                                   \
715
9.61k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.61k
  }
aom_dc_top_predictor_64x32_c
Line
Count
Source
714
2.90k
      const uint8_t *left) {                                   \
715
2.90k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.90k
  }
aom_dc_top_predictor_4x16_c
Line
Count
Source
714
23.1k
      const uint8_t *left) {                                   \
715
23.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
23.1k
  }
aom_dc_top_predictor_16x4_c
Line
Count
Source
714
11.0k
      const uint8_t *left) {                                   \
715
11.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
11.0k
  }
aom_dc_top_predictor_8x32_c
Line
Count
Source
714
19.5k
      const uint8_t *left) {                                   \
715
19.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
19.5k
  }
aom_dc_top_predictor_32x8_c
Line
Count
Source
714
17.0k
      const uint8_t *left) {                                   \
715
17.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
17.0k
  }
aom_dc_top_predictor_16x64_c
Line
Count
Source
714
1.15k
      const uint8_t *left) {                                   \
715
1.15k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.15k
  }
aom_dc_top_predictor_64x16_c
Line
Count
Source
714
3.11k
      const uint8_t *left) {                                   \
715
3.11k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.11k
  }
aom_dc_predictor_4x4_c
Line
Count
Source
714
1.76M
      const uint8_t *left) {                                   \
715
1.76M
    type##_predictor(dst, stride, width, height, above, left); \
716
1.76M
  }
aom_dc_predictor_8x8_c
Line
Count
Source
714
1.05M
      const uint8_t *left) {                                   \
715
1.05M
    type##_predictor(dst, stride, width, height, above, left); \
716
1.05M
  }
aom_dc_predictor_16x16_c
Line
Count
Source
714
568k
      const uint8_t *left) {                                   \
715
568k
    type##_predictor(dst, stride, width, height, above, left); \
716
568k
  }
aom_dc_predictor_32x32_c
Line
Count
Source
714
620k
      const uint8_t *left) {                                   \
715
620k
    type##_predictor(dst, stride, width, height, above, left); \
716
620k
  }
aom_dc_predictor_64x64_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
  }
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
12.5M
      const uint16_t *left, int bd) {                                       \
722
12.5M
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
12.5M
  }
aom_highbd_v_predictor_4x4_c
Line
Count
Source
721
124k
      const uint16_t *left, int bd) {                                       \
722
124k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
124k
  }
aom_highbd_v_predictor_8x8_c
Line
Count
Source
721
71.5k
      const uint16_t *left, int bd) {                                       \
722
71.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
71.5k
  }
aom_highbd_v_predictor_16x16_c
Line
Count
Source
721
33.2k
      const uint16_t *left, int bd) {                                       \
722
33.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
33.2k
  }
aom_highbd_v_predictor_32x32_c
Line
Count
Source
721
36.7k
      const uint16_t *left, int bd) {                                       \
722
36.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
36.7k
  }
aom_highbd_v_predictor_64x64_c
Line
Count
Source
721
4.03k
      const uint16_t *left, int bd) {                                       \
722
4.03k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.03k
  }
aom_highbd_v_predictor_4x8_c
Line
Count
Source
721
28.9k
      const uint16_t *left, int bd) {                                       \
722
28.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
28.9k
  }
aom_highbd_v_predictor_8x4_c
Line
Count
Source
721
41.5k
      const uint16_t *left, int bd) {                                       \
722
41.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
41.5k
  }
aom_highbd_v_predictor_8x16_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_v_predictor_16x8_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_v_predictor_16x32_c
Line
Count
Source
721
6.60k
      const uint16_t *left, int bd) {                                       \
722
6.60k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.60k
  }
aom_highbd_v_predictor_32x16_c
Line
Count
Source
721
6.02k
      const uint16_t *left, int bd) {                                       \
722
6.02k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.02k
  }
aom_highbd_v_predictor_32x64_c
Line
Count
Source
721
564
      const uint16_t *left, int bd) {                                       \
722
564
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
564
  }
aom_highbd_v_predictor_64x32_c
Line
Count
Source
721
492
      const uint16_t *left, int bd) {                                       \
722
492
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
492
  }
aom_highbd_v_predictor_4x16_c
Line
Count
Source
721
10.0k
      const uint16_t *left, int bd) {                                       \
722
10.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
10.0k
  }
aom_highbd_v_predictor_16x4_c
Line
Count
Source
721
18.0k
      const uint16_t *left, int bd) {                                       \
722
18.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
18.0k
  }
aom_highbd_v_predictor_8x32_c
Line
Count
Source
721
6.39k
      const uint16_t *left, int bd) {                                       \
722
6.39k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.39k
  }
aom_highbd_v_predictor_32x8_c
Line
Count
Source
721
7.30k
      const uint16_t *left, int bd) {                                       \
722
7.30k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.30k
  }
aom_highbd_v_predictor_16x64_c
Line
Count
Source
721
1.23k
      const uint16_t *left, int bd) {                                       \
722
1.23k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.23k
  }
aom_highbd_v_predictor_64x16_c
Line
Count
Source
721
707
      const uint16_t *left, int bd) {                                       \
722
707
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
707
  }
aom_highbd_h_predictor_4x4_c
Line
Count
Source
721
189k
      const uint16_t *left, int bd) {                                       \
722
189k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
189k
  }
aom_highbd_h_predictor_8x8_c
Line
Count
Source
721
114k
      const uint16_t *left, int bd) {                                       \
722
114k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
114k
  }
aom_highbd_h_predictor_16x16_c
Line
Count
Source
721
57.0k
      const uint16_t *left, int bd) {                                       \
722
57.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
57.0k
  }
aom_highbd_h_predictor_32x32_c
Line
Count
Source
721
39.6k
      const uint16_t *left, int bd) {                                       \
722
39.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
39.6k
  }
aom_highbd_h_predictor_64x64_c
Line
Count
Source
721
6.40k
      const uint16_t *left, int bd) {                                       \
722
6.40k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.40k
  }
aom_highbd_h_predictor_4x8_c
Line
Count
Source
721
49.4k
      const uint16_t *left, int bd) {                                       \
722
49.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
49.4k
  }
aom_highbd_h_predictor_8x4_c
Line
Count
Source
721
69.5k
      const uint16_t *left, int bd) {                                       \
722
69.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
69.5k
  }
aom_highbd_h_predictor_8x16_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_h_predictor_16x8_c
Line
Count
Source
721
27.1k
      const uint16_t *left, int bd) {                                       \
722
27.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
27.1k
  }
aom_highbd_h_predictor_16x32_c
Line
Count
Source
721
9.17k
      const uint16_t *left, int bd) {                                       \
722
9.17k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.17k
  }
aom_highbd_h_predictor_32x16_c
Line
Count
Source
721
8.85k
      const uint16_t *left, int bd) {                                       \
722
8.85k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.85k
  }
aom_highbd_h_predictor_32x64_c
Line
Count
Source
721
579
      const uint16_t *left, int bd) {                                       \
722
579
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
579
  }
aom_highbd_h_predictor_64x32_c
Line
Count
Source
721
677
      const uint16_t *left, int bd) {                                       \
722
677
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
677
  }
aom_highbd_h_predictor_4x16_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_h_predictor_16x4_c
Line
Count
Source
721
28.4k
      const uint16_t *left, int bd) {                                       \
722
28.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
28.4k
  }
aom_highbd_h_predictor_8x32_c
Line
Count
Source
721
9.41k
      const uint16_t *left, int bd) {                                       \
722
9.41k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.41k
  }
aom_highbd_h_predictor_32x8_c
Line
Count
Source
721
11.0k
      const uint16_t *left, int bd) {                                       \
722
11.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
11.0k
  }
aom_highbd_h_predictor_16x64_c
Line
Count
Source
721
1.91k
      const uint16_t *left, int bd) {                                       \
722
1.91k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.91k
  }
aom_highbd_h_predictor_64x16_c
Line
Count
Source
721
1.03k
      const uint16_t *left, int bd) {                                       \
722
1.03k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.03k
  }
aom_highbd_smooth_predictor_4x4_c
Line
Count
Source
721
325k
      const uint16_t *left, int bd) {                                       \
722
325k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
325k
  }
aom_highbd_smooth_predictor_8x8_c
Line
Count
Source
721
240k
      const uint16_t *left, int bd) {                                       \
722
240k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
240k
  }
aom_highbd_smooth_predictor_16x16_c
Line
Count
Source
721
132k
      const uint16_t *left, int bd) {                                       \
722
132k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
132k
  }
aom_highbd_smooth_predictor_32x32_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_smooth_predictor_64x64_c
Line
Count
Source
721
19.7k
      const uint16_t *left, int bd) {                                       \
722
19.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
19.7k
  }
aom_highbd_smooth_predictor_4x8_c
Line
Count
Source
721
71.3k
      const uint16_t *left, int bd) {                                       \
722
71.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
71.3k
  }
aom_highbd_smooth_predictor_8x4_c
Line
Count
Source
721
108k
      const uint16_t *left, int bd) {                                       \
722
108k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
108k
  }
aom_highbd_smooth_predictor_8x16_c
Line
Count
Source
721
50.5k
      const uint16_t *left, int bd) {                                       \
722
50.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
50.5k
  }
aom_highbd_smooth_predictor_16x8_c
Line
Count
Source
721
67.1k
      const uint16_t *left, int bd) {                                       \
722
67.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
67.1k
  }
aom_highbd_smooth_predictor_16x32_c
Line
Count
Source
721
19.0k
      const uint16_t *left, int bd) {                                       \
722
19.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
19.0k
  }
aom_highbd_smooth_predictor_32x16_c
Line
Count
Source
721
21.1k
      const uint16_t *left, int bd) {                                       \
722
21.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
21.1k
  }
aom_highbd_smooth_predictor_32x64_c
Line
Count
Source
721
2.46k
      const uint16_t *left, int bd) {                                       \
722
2.46k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.46k
  }
aom_highbd_smooth_predictor_64x32_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_smooth_predictor_4x16_c
Line
Count
Source
721
36.9k
      const uint16_t *left, int bd) {                                       \
722
36.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
36.9k
  }
aom_highbd_smooth_predictor_16x4_c
Line
Count
Source
721
65.3k
      const uint16_t *left, int bd) {                                       \
722
65.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
65.3k
  }
aom_highbd_smooth_predictor_8x32_c
Line
Count
Source
721
20.8k
      const uint16_t *left, int bd) {                                       \
722
20.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
20.8k
  }
aom_highbd_smooth_predictor_32x8_c
Line
Count
Source
721
26.9k
      const uint16_t *left, int bd) {                                       \
722
26.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
26.9k
  }
aom_highbd_smooth_predictor_16x64_c
Line
Count
Source
721
5.19k
      const uint16_t *left, int bd) {                                       \
722
5.19k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.19k
  }
aom_highbd_smooth_predictor_64x16_c
Line
Count
Source
721
2.62k
      const uint16_t *left, int bd) {                                       \
722
2.62k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.62k
  }
aom_highbd_smooth_v_predictor_4x4_c
Line
Count
Source
721
129k
      const uint16_t *left, int bd) {                                       \
722
129k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
129k
  }
aom_highbd_smooth_v_predictor_8x8_c
Line
Count
Source
721
80.5k
      const uint16_t *left, int bd) {                                       \
722
80.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
80.5k
  }
aom_highbd_smooth_v_predictor_16x16_c
Line
Count
Source
721
49.7k
      const uint16_t *left, int bd) {                                       \
722
49.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
49.7k
  }
aom_highbd_smooth_v_predictor_32x32_c
Line
Count
Source
721
46.6k
      const uint16_t *left, int bd) {                                       \
722
46.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
46.6k
  }
aom_highbd_smooth_v_predictor_64x64_c
Line
Count
Source
721
5.24k
      const uint16_t *left, int bd) {                                       \
722
5.24k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.24k
  }
aom_highbd_smooth_v_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_smooth_v_predictor_8x4_c
Line
Count
Source
721
38.1k
      const uint16_t *left, int bd) {                                       \
722
38.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
38.1k
  }
aom_highbd_smooth_v_predictor_8x16_c
Line
Count
Source
721
20.5k
      const uint16_t *left, int bd) {                                       \
722
20.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
20.5k
  }
aom_highbd_smooth_v_predictor_16x8_c
Line
Count
Source
721
26.6k
      const uint16_t *left, int bd) {                                       \
722
26.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
26.6k
  }
aom_highbd_smooth_v_predictor_16x32_c
Line
Count
Source
721
8.44k
      const uint16_t *left, int bd) {                                       \
722
8.44k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.44k
  }
aom_highbd_smooth_v_predictor_32x16_c
Line
Count
Source
721
9.16k
      const uint16_t *left, int bd) {                                       \
722
9.16k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.16k
  }
aom_highbd_smooth_v_predictor_32x64_c
Line
Count
Source
721
711
      const uint16_t *left, int bd) {                                       \
722
711
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
711
  }
aom_highbd_smooth_v_predictor_64x32_c
Line
Count
Source
721
708
      const uint16_t *left, int bd) {                                       \
722
708
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
708
  }
aom_highbd_smooth_v_predictor_4x16_c
Line
Count
Source
721
14.1k
      const uint16_t *left, int bd) {                                       \
722
14.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
14.1k
  }
aom_highbd_smooth_v_predictor_16x4_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_smooth_v_predictor_8x32_c
Line
Count
Source
721
9.74k
      const uint16_t *left, int bd) {                                       \
722
9.74k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.74k
  }
aom_highbd_smooth_v_predictor_32x8_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_v_predictor_16x64_c
Line
Count
Source
721
2.01k
      const uint16_t *left, int bd) {                                       \
722
2.01k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.01k
  }
aom_highbd_smooth_v_predictor_64x16_c
Line
Count
Source
721
850
      const uint16_t *left, int bd) {                                       \
722
850
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
850
  }
aom_highbd_smooth_h_predictor_4x4_c
Line
Count
Source
721
138k
      const uint16_t *left, int bd) {                                       \
722
138k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
138k
  }
aom_highbd_smooth_h_predictor_8x8_c
Line
Count
Source
721
103k
      const uint16_t *left, int bd) {                                       \
722
103k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
103k
  }
aom_highbd_smooth_h_predictor_16x16_c
Line
Count
Source
721
55.0k
      const uint16_t *left, int bd) {                                       \
722
55.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
55.0k
  }
aom_highbd_smooth_h_predictor_32x32_c
Line
Count
Source
721
52.8k
      const uint16_t *left, int bd) {                                       \
722
52.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
52.8k
  }
aom_highbd_smooth_h_predictor_64x64_c
Line
Count
Source
721
6.68k
      const uint16_t *left, int bd) {                                       \
722
6.68k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.68k
  }
aom_highbd_smooth_h_predictor_4x8_c
Line
Count
Source
721
31.9k
      const uint16_t *left, int bd) {                                       \
722
31.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
31.9k
  }
aom_highbd_smooth_h_predictor_8x4_c
Line
Count
Source
721
46.6k
      const uint16_t *left, int bd) {                                       \
722
46.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
46.6k
  }
aom_highbd_smooth_h_predictor_8x16_c
Line
Count
Source
721
25.4k
      const uint16_t *left, int bd) {                                       \
722
25.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
25.4k
  }
aom_highbd_smooth_h_predictor_16x8_c
Line
Count
Source
721
30.2k
      const uint16_t *left, int bd) {                                       \
722
30.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
30.2k
  }
aom_highbd_smooth_h_predictor_16x32_c
Line
Count
Source
721
11.7k
      const uint16_t *left, int bd) {                                       \
722
11.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
11.7k
  }
aom_highbd_smooth_h_predictor_32x16_c
Line
Count
Source
721
9.28k
      const uint16_t *left, int bd) {                                       \
722
9.28k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.28k
  }
aom_highbd_smooth_h_predictor_32x64_c
Line
Count
Source
721
912
      const uint16_t *left, int bd) {                                       \
722
912
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
912
  }
aom_highbd_smooth_h_predictor_64x32_c
Line
Count
Source
721
730
      const uint16_t *left, int bd) {                                       \
722
730
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
730
  }
aom_highbd_smooth_h_predictor_4x16_c
Line
Count
Source
721
16.4k
      const uint16_t *left, int bd) {                                       \
722
16.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
16.4k
  }
aom_highbd_smooth_h_predictor_16x4_c
Line
Count
Source
721
31.4k
      const uint16_t *left, int bd) {                                       \
722
31.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
31.4k
  }
aom_highbd_smooth_h_predictor_8x32_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_h_predictor_32x8_c
Line
Count
Source
721
13.7k
      const uint16_t *left, int bd) {                                       \
722
13.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.7k
  }
aom_highbd_smooth_h_predictor_16x64_c
Line
Count
Source
721
2.56k
      const uint16_t *left, int bd) {                                       \
722
2.56k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.56k
  }
aom_highbd_smooth_h_predictor_64x16_c
Line
Count
Source
721
831
      const uint16_t *left, int bd) {                                       \
722
831
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
831
  }
aom_highbd_paeth_predictor_4x4_c
Line
Count
Source
721
528k
      const uint16_t *left, int bd) {                                       \
722
528k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
528k
  }
aom_highbd_paeth_predictor_8x8_c
Line
Count
Source
721
344k
      const uint16_t *left, int bd) {                                       \
722
344k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
344k
  }
aom_highbd_paeth_predictor_16x16_c
Line
Count
Source
721
228k
      const uint16_t *left, int bd) {                                       \
722
228k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
228k
  }
aom_highbd_paeth_predictor_32x32_c
Line
Count
Source
721
354k
      const uint16_t *left, int bd) {                                       \
722
354k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
354k
  }
aom_highbd_paeth_predictor_64x64_c
Line
Count
Source
721
49.2k
      const uint16_t *left, int bd) {                                       \
722
49.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
49.2k
  }
aom_highbd_paeth_predictor_4x8_c
Line
Count
Source
721
93.0k
      const uint16_t *left, int bd) {                                       \
722
93.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
93.0k
  }
aom_highbd_paeth_predictor_8x4_c
Line
Count
Source
721
140k
      const uint16_t *left, int bd) {                                       \
722
140k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
140k
  }
aom_highbd_paeth_predictor_8x16_c
Line
Count
Source
721
69.9k
      const uint16_t *left, int bd) {                                       \
722
69.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
69.9k
  }
aom_highbd_paeth_predictor_16x8_c
Line
Count
Source
721
92.6k
      const uint16_t *left, int bd) {                                       \
722
92.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
92.6k
  }
aom_highbd_paeth_predictor_16x32_c
Line
Count
Source
721
994k
      const uint16_t *left, int bd) {                                       \
722
994k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
994k
  }
aom_highbd_paeth_predictor_32x16_c
Line
Count
Source
721
28.9k
      const uint16_t *left, int bd) {                                       \
722
28.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
28.9k
  }
aom_highbd_paeth_predictor_32x64_c
Line
Count
Source
721
12.7k
      const uint16_t *left, int bd) {                                       \
722
12.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
12.7k
  }
aom_highbd_paeth_predictor_64x32_c
Line
Count
Source
721
2.75k
      const uint16_t *left, int bd) {                                       \
722
2.75k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.75k
  }
aom_highbd_paeth_predictor_4x16_c
Line
Count
Source
721
149k
      const uint16_t *left, int bd) {                                       \
722
149k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
149k
  }
aom_highbd_paeth_predictor_16x4_c
Line
Count
Source
721
84.1k
      const uint16_t *left, int bd) {                                       \
722
84.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
84.1k
  }
aom_highbd_paeth_predictor_8x32_c
Line
Count
Source
721
271k
      const uint16_t *left, int bd) {                                       \
722
271k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
271k
  }
aom_highbd_paeth_predictor_32x8_c
Line
Count
Source
721
31.9k
      const uint16_t *left, int bd) {                                       \
722
31.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
31.9k
  }
aom_highbd_paeth_predictor_16x64_c
Line
Count
Source
721
322k
      const uint16_t *left, int bd) {                                       \
722
322k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
322k
  }
aom_highbd_paeth_predictor_64x16_c
Line
Count
Source
721
3.02k
      const uint16_t *left, int bd) {                                       \
722
3.02k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.02k
  }
aom_highbd_dc_128_predictor_4x4_c
Line
Count
Source
721
5.45k
      const uint16_t *left, int bd) {                                       \
722
5.45k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.45k
  }
aom_highbd_dc_128_predictor_8x8_c
Line
Count
Source
721
2.23k
      const uint16_t *left, int bd) {                                       \
722
2.23k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.23k
  }
aom_highbd_dc_128_predictor_16x16_c
Line
Count
Source
721
3.56k
      const uint16_t *left, int bd) {                                       \
722
3.56k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.56k
  }
aom_highbd_dc_128_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_dc_128_predictor_64x64_c
Line
Count
Source
721
7.45k
      const uint16_t *left, int bd) {                                       \
722
7.45k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.45k
  }
aom_highbd_dc_128_predictor_4x8_c
Line
Count
Source
721
394
      const uint16_t *left, int bd) {                                       \
722
394
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
394
  }
aom_highbd_dc_128_predictor_8x4_c
Line
Count
Source
721
96
      const uint16_t *left, int bd) {                                       \
722
96
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
96
  }
aom_highbd_dc_128_predictor_8x16_c
Line
Count
Source
721
505
      const uint16_t *left, int bd) {                                       \
722
505
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
505
  }
aom_highbd_dc_128_predictor_16x8_c
Line
Count
Source
721
199
      const uint16_t *left, int bd) {                                       \
722
199
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
199
  }
aom_highbd_dc_128_predictor_16x32_c
Line
Count
Source
721
2.89k
      const uint16_t *left, int bd) {                                       \
722
2.89k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.89k
  }
aom_highbd_dc_128_predictor_32x16_c
Line
Count
Source
721
2.49k
      const uint16_t *left, int bd) {                                       \
722
2.49k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.49k
  }
aom_highbd_dc_128_predictor_32x64_c
Line
Count
Source
721
357
      const uint16_t *left, int bd) {                                       \
722
357
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
357
  }
aom_highbd_dc_128_predictor_64x32_c
Line
Count
Source
721
201
      const uint16_t *left, int bd) {                                       \
722
201
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
201
  }
aom_highbd_dc_128_predictor_4x16_c
Line
Count
Source
721
757
      const uint16_t *left, int bd) {                                       \
722
757
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
757
  }
aom_highbd_dc_128_predictor_16x4_c
Line
Count
Source
721
37
      const uint16_t *left, int bd) {                                       \
722
37
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
37
  }
aom_highbd_dc_128_predictor_8x32_c
Line
Count
Source
721
2.75k
      const uint16_t *left, int bd) {                                       \
722
2.75k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.75k
  }
aom_highbd_dc_128_predictor_32x8_c
Line
Count
Source
721
152
      const uint16_t *left, int bd) {                                       \
722
152
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
152
  }
aom_highbd_dc_128_predictor_16x64_c
Line
Count
Source
721
1.52k
      const uint16_t *left, int bd) {                                       \
722
1.52k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.52k
  }
aom_highbd_dc_128_predictor_64x16_c
Line
Count
Source
721
8
      const uint16_t *left, int bd) {                                       \
722
8
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8
  }
aom_highbd_dc_left_predictor_4x4_c
Line
Count
Source
721
68.0k
      const uint16_t *left, int bd) {                                       \
722
68.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
68.0k
  }
aom_highbd_dc_left_predictor_8x8_c
Line
Count
Source
721
13.4k
      const uint16_t *left, int bd) {                                       \
722
13.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.4k
  }
aom_highbd_dc_left_predictor_16x16_c
Line
Count
Source
721
27.7k
      const uint16_t *left, int bd) {                                       \
722
27.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
27.7k
  }
aom_highbd_dc_left_predictor_32x32_c
Line
Count
Source
721
93.1k
      const uint16_t *left, int bd) {                                       \
722
93.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
93.1k
  }
aom_highbd_dc_left_predictor_64x64_c
Line
Count
Source
721
24.2k
      const uint16_t *left, int bd) {                                       \
722
24.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
24.2k
  }
aom_highbd_dc_left_predictor_4x8_c
Line
Count
Source
721
7.70k
      const uint16_t *left, int bd) {                                       \
722
7.70k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.70k
  }
aom_highbd_dc_left_predictor_8x4_c
Line
Count
Source
721
5.82k
      const uint16_t *left, int bd) {                                       \
722
5.82k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.82k
  }
aom_highbd_dc_left_predictor_8x16_c
Line
Count
Source
721
5.41k
      const uint16_t *left, int bd) {                                       \
722
5.41k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.41k
  }
aom_highbd_dc_left_predictor_16x8_c
Line
Count
Source
721
7.13k
      const uint16_t *left, int bd) {                                       \
722
7.13k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.13k
  }
aom_highbd_dc_left_predictor_16x32_c
Line
Count
Source
721
8.47k
      const uint16_t *left, int bd) {                                       \
722
8.47k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.47k
  }
aom_highbd_dc_left_predictor_32x16_c
Line
Count
Source
721
7.29k
      const uint16_t *left, int bd) {                                       \
722
7.29k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.29k
  }
aom_highbd_dc_left_predictor_32x64_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_64x32_c
Line
Count
Source
721
1.81k
      const uint16_t *left, int bd) {                                       \
722
1.81k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.81k
  }
aom_highbd_dc_left_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_dc_left_predictor_16x4_c
Line
Count
Source
721
2.10k
      const uint16_t *left, int bd) {                                       \
722
2.10k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.10k
  }
aom_highbd_dc_left_predictor_8x32_c
Line
Count
Source
721
11.3k
      const uint16_t *left, int bd) {                                       \
722
11.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
11.3k
  }
aom_highbd_dc_left_predictor_32x8_c
Line
Count
Source
721
2.08k
      const uint16_t *left, int bd) {                                       \
722
2.08k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.08k
  }
aom_highbd_dc_left_predictor_16x64_c
Line
Count
Source
721
2.95k
      const uint16_t *left, int bd) {                                       \
722
2.95k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.95k
  }
aom_highbd_dc_left_predictor_64x16_c
Line
Count
Source
721
616
      const uint16_t *left, int bd) {                                       \
722
616
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
616
  }
aom_highbd_dc_top_predictor_4x4_c
Line
Count
Source
721
70.2k
      const uint16_t *left, int bd) {                                       \
722
70.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
70.2k
  }
aom_highbd_dc_top_predictor_8x8_c
Line
Count
Source
721
32.1k
      const uint16_t *left, int bd) {                                       \
722
32.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
32.1k
  }
aom_highbd_dc_top_predictor_16x16_c
Line
Count
Source
721
36.3k
      const uint16_t *left, int bd) {                                       \
722
36.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
36.3k
  }
aom_highbd_dc_top_predictor_32x32_c
Line
Count
Source
721
207k
      const uint16_t *left, int bd) {                                       \
722
207k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
207k
  }
aom_highbd_dc_top_predictor_64x64_c
Line
Count
Source
721
27.3k
      const uint16_t *left, int bd) {                                       \
722
27.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
27.3k
  }
aom_highbd_dc_top_predictor_4x8_c
Line
Count
Source
721
38.4k
      const uint16_t *left, int bd) {                                       \
722
38.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
38.4k
  }
aom_highbd_dc_top_predictor_8x4_c
Line
Count
Source
721
18.0k
      const uint16_t *left, int bd) {                                       \
722
18.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
18.0k
  }
aom_highbd_dc_top_predictor_8x16_c
Line
Count
Source
721
30.5k
      const uint16_t *left, int bd) {                                       \
722
30.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
30.5k
  }
aom_highbd_dc_top_predictor_16x8_c
Line
Count
Source
721
14.0k
      const uint16_t *left, int bd) {                                       \
722
14.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
14.0k
  }
aom_highbd_dc_top_predictor_16x32_c
Line
Count
Source
721
36.0k
      const uint16_t *left, int bd) {                                       \
722
36.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
36.0k
  }
aom_highbd_dc_top_predictor_32x16_c
Line
Count
Source
721
15.4k
      const uint16_t *left, int bd) {                                       \
722
15.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
15.4k
  }
aom_highbd_dc_top_predictor_32x64_c
Line
Count
Source
721
14.4k
      const uint16_t *left, int bd) {                                       \
722
14.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
14.4k
  }
aom_highbd_dc_top_predictor_64x32_c
Line
Count
Source
721
1.32k
      const uint16_t *left, int bd) {                                       \
722
1.32k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.32k
  }
aom_highbd_dc_top_predictor_4x16_c
Line
Count
Source
721
32.7k
      const uint16_t *left, int bd) {                                       \
722
32.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
32.7k
  }
aom_highbd_dc_top_predictor_16x4_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_dc_top_predictor_8x32_c
Line
Count
Source
721
24.1k
      const uint16_t *left, int bd) {                                       \
722
24.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
24.1k
  }
aom_highbd_dc_top_predictor_32x8_c
Line
Count
Source
721
19.3k
      const uint16_t *left, int bd) {                                       \
722
19.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
19.3k
  }
aom_highbd_dc_top_predictor_16x64_c
Line
Count
Source
721
695
      const uint16_t *left, int bd) {                                       \
722
695
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
695
  }
aom_highbd_dc_top_predictor_64x16_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_dc_predictor_4x4_c
Line
Count
Source
721
2.12M
      const uint16_t *left, int bd) {                                       \
722
2.12M
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.12M
  }
aom_highbd_dc_predictor_8x8_c
Line
Count
Source
721
673k
      const uint16_t *left, int bd) {                                       \
722
673k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
673k
  }
aom_highbd_dc_predictor_16x16_c
Line
Count
Source
721
446k
      const uint16_t *left, int bd) {                                       \
722
446k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
446k
  }
aom_highbd_dc_predictor_32x32_c
Line
Count
Source
721
908k
      const uint16_t *left, int bd) {                                       \
722
908k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
908k
  }
aom_highbd_dc_predictor_64x64_c
Line
Count
Source
721
92.7k
      const uint16_t *left, int bd) {                                       \
722
92.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
92.7k
  }
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