Coverage Report

Created: 2025-12-31 07:53

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
625k
                               const uint8_t *above, const uint8_t *left) {
25
625k
  int r;
26
625k
  (void)left;
27
28
7.53M
  for (r = 0; r < bh; r++) {
29
6.91M
    memcpy(dst, above, bw);
30
6.91M
    dst += stride;
31
6.91M
  }
32
625k
}
33
34
static INLINE void h_predictor(uint8_t *dst, ptrdiff_t stride, int bw, int bh,
35
855k
                               const uint8_t *above, const uint8_t *left) {
36
855k
  int r;
37
855k
  (void)above;
38
39
10.0M
  for (r = 0; r < bh; r++) {
40
9.22M
    memset(dst, left[r], bw);
41
9.22M
    dst += stride;
42
9.22M
  }
43
855k
}
44
45
7.52G
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
2.50G
                                              uint16_t top_left) {
49
2.50G
  const int base = top + left - top_left;
50
2.50G
  const int p_left = abs_diff(base, left);
51
2.50G
  const int p_top = abs_diff(base, top);
52
2.50G
  const int p_top_left = abs_diff(base, top_left);
53
54
  // Return nearest to base of left, top and top_left.
55
2.50G
  return (p_left <= p_top && p_left <= p_top_left)
56
2.50G
             ? left
57
2.50G
             : (p_top <= p_top_left) ? top : top_left;
58
2.50G
}
59
60
static INLINE void paeth_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
61
                                   int bh, const uint8_t *above,
62
4.03M
                                   const uint8_t *left) {
63
4.03M
  int r, c;
64
4.03M
  const uint8_t ytop_left = above[-1];
65
66
78.1M
  for (r = 0; r < bh; r++) {
67
1.33G
    for (c = 0; c < bw; c++)
68
1.26G
      dst[c] = (uint8_t)paeth_predictor_single(left[r], above[c], ytop_left);
69
74.0M
    dst += stride;
70
74.0M
  }
71
4.03M
}
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.71M
  assert(weights_w[0] < weights_scale);                               \
77
5.71M
  assert(weights_h[0] < weights_scale);                               \
78
5.71M
  assert(weights_scale - weights_w[bw - 1] < weights_scale);          \
79
5.71M
  assert(weights_scale - weights_h[bh - 1] < weights_scale);          \
80
5.71M
  assert(pred_scale < 31)  // ensures no overflow when calculating predictor.
81
82
1.26G
#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.70M
                                    const uint8_t *left) {
87
1.70M
  const uint8_t below_pred = left[bh - 1];   // estimated by bottom-left pixel
88
1.70M
  const uint8_t right_pred = above[bw - 1];  // estimated by top-right pixel
89
1.70M
  const uint8_t *const sm_weights_w = sm_weight_arrays + bw;
90
1.70M
  const uint8_t *const sm_weights_h = sm_weight_arrays + bh;
91
  // scale = 2 * 2^sm_weight_log2_scale
92
1.70M
  const int log2_scale = 1 + sm_weight_log2_scale;
93
1.70M
  const uint16_t scale = (1 << sm_weight_log2_scale);
94
6.82M
  sm_weights_sanity_checks(sm_weights_w, sm_weights_h, scale,
95
1.70M
                           log2_scale + sizeof(*dst));
96
1.70M
  int r;
97
21.3M
  for (r = 0; r < bh; ++r) {
98
19.6M
    int c;
99
385M
    for (c = 0; c < bw; ++c) {
100
366M
      const uint8_t pixels[] = { above[c], below_pred, left[r], right_pred };
101
366M
      const uint8_t weights[] = { sm_weights_h[r], scale - sm_weights_h[r],
102
366M
                                  sm_weights_w[c], scale - sm_weights_w[c] };
103
366M
      uint32_t this_pred = 0;
104
366M
      int i;
105
366M
      assert(scale >= sm_weights_h[r] && scale >= sm_weights_w[c]);
106
1.83G
      for (i = 0; i < 4; ++i) {
107
1.46G
        this_pred += weights[i] * pixels[i];
108
1.46G
      }
109
366M
      dst[c] = divide_round(this_pred, log2_scale);
110
366M
    }
111
19.6M
    dst += stride;
112
19.6M
  }
113
1.70M
}
114
115
static INLINE void smooth_v_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
116
                                      int bh, const uint8_t *above,
117
583k
                                      const uint8_t *left) {
118
583k
  const uint8_t below_pred = left[bh - 1];  // estimated by bottom-left pixel
119
583k
  const uint8_t *const sm_weights = sm_weight_arrays + bh;
120
  // scale = 2^sm_weight_log2_scale
121
583k
  const int log2_scale = sm_weight_log2_scale;
122
583k
  const uint16_t scale = (1 << sm_weight_log2_scale);
123
2.33M
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
124
583k
                           log2_scale + sizeof(*dst));
125
126
583k
  int r;
127
7.59M
  for (r = 0; r < bh; r++) {
128
7.01M
    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
406M
      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
7.01M
    dst += stride;
141
7.01M
  }
142
583k
}
143
144
static INLINE void smooth_h_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
145
                                      int bh, const uint8_t *above,
146
840k
                                      const uint8_t *left) {
147
840k
  const uint8_t right_pred = above[bw - 1];  // estimated by top-right pixel
148
840k
  const uint8_t *const sm_weights = sm_weight_arrays + bw;
149
  // scale = 2^sm_weight_log2_scale
150
840k
  const int log2_scale = sm_weight_log2_scale;
151
840k
  const uint16_t scale = (1 << sm_weight_log2_scale);
152
3.36M
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
153
840k
                           log2_scale + sizeof(*dst));
154
155
840k
  int r;
156
10.8M
  for (r = 0; r < bh; r++) {
157
10.0M
    int c;
158
196M
    for (c = 0; c < bw; ++c) {
159
186M
      const uint8_t pixels[] = { left[r], right_pred };
160
186M
      const uint8_t weights[] = { sm_weights[c], scale - sm_weights[c] };
161
186M
      uint32_t this_pred = 0;
162
186M
      assert(scale >= sm_weights[c]);
163
186M
      int i;
164
559M
      for (i = 0; i < 2; ++i) {
165
372M
        this_pred += weights[i] * pixels[i];
166
372M
      }
167
186M
      dst[c] = divide_round(this_pred, log2_scale);
168
186M
    }
169
10.0M
    dst += stride;
170
10.0M
  }
171
840k
}
172
173
static INLINE void dc_128_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
174
                                    int bh, const uint8_t *above,
175
29.6k
                                    const uint8_t *left) {
176
29.6k
  int r;
177
29.6k
  (void)above;
178
29.6k
  (void)left;
179
180
827k
  for (r = 0; r < bh; r++) {
181
797k
    memset(dst, 128, bw);
182
797k
    dst += stride;
183
797k
  }
184
29.6k
}
185
186
static INLINE void dc_left_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
187
                                     int bh, const uint8_t *above,
188
273k
                                     const uint8_t *left) {
189
273k
  int i, r, expected_dc, sum = 0;
190
273k
  (void)above;
191
192
5.79M
  for (i = 0; i < bh; i++) sum += left[i];
193
273k
  expected_dc = (sum + (bh >> 1)) / bh;
194
195
5.79M
  for (r = 0; r < bh; r++) {
196
5.51M
    memset(dst, expected_dc, bw);
197
5.51M
    dst += stride;
198
5.51M
  }
199
273k
}
200
201
static INLINE void dc_top_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
202
                                    int bh, const uint8_t *above,
203
675k
                                    const uint8_t *left) {
204
675k
  int i, r, expected_dc, sum = 0;
205
675k
  (void)left;
206
207
13.1M
  for (i = 0; i < bw; i++) sum += above[i];
208
675k
  expected_dc = (sum + (bw >> 1)) / bw;
209
210
14.1M
  for (r = 0; r < bh; r++) {
211
13.4M
    memset(dst, expected_dc, bw);
212
13.4M
    dst += stride;
213
13.4M
  }
214
675k
}
215
216
static INLINE void dc_predictor(uint8_t *dst, ptrdiff_t stride, int bw, int bh,
217
5.12M
                                const uint8_t *above, const uint8_t *left) {
218
5.12M
  int i, r, expected_dc, sum = 0;
219
5.12M
  const int count = bw + bh;
220
221
67.3M
  for (i = 0; i < bw; i++) {
222
62.1M
    sum += above[i];
223
62.1M
  }
224
67.3M
  for (i = 0; i < bh; i++) {
225
62.1M
    sum += left[i];
226
62.1M
  }
227
228
5.12M
  expected_dc = (sum + (count >> 1)) / count;
229
230
67.3M
  for (r = 0; r < bh; r++) {
231
62.1M
    memset(dst, expected_dc, bw);
232
62.1M
    dst += stride;
233
62.1M
  }
234
5.12M
}
235
236
static INLINE int divide_using_multiply_shift(int num, int shift1,
237
4.86M
                                              int multiplier, int shift2) {
238
4.86M
  const int interm = num >> shift1;
239
4.86M
  return interm * multiplier >> shift2;
240
4.86M
}
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.88M
#define DC_MULTIPLIER_1X2 0x5556
261
1.03M
#define DC_MULTIPLIER_1X4 0x3334
262
263
2.91M
#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.91M
                                     int multiplier) {
269
2.91M
  int sum = 0;
270
271
39.4M
  for (int i = 0; i < bw; i++) {
272
36.5M
    sum += above[i];
273
36.5M
  }
274
37.5M
  for (int i = 0; i < bh; i++) {
275
34.6M
    sum += left[i];
276
34.6M
  }
277
278
2.91M
  const int expected_dc = divide_using_multiply_shift(
279
2.91M
      sum + ((bw + bh) >> 1), shift1, multiplier, DC_SHIFT2);
280
2.91M
  assert(expected_dc < (1 << 8));
281
282
37.5M
  for (int r = 0; r < bh; r++) {
283
34.6M
    memset(dst, expected_dc, bw);
284
34.6M
    dst += stride;
285
34.6M
  }
286
2.91M
}
287
288
#undef DC_SHIFT2
289
290
void aom_dc_predictor_4x8_c(uint8_t *dst, ptrdiff_t stride,
291
377k
                            const uint8_t *above, const uint8_t *left) {
292
377k
  dc_predictor_rect(dst, stride, 4, 8, above, left, 2, DC_MULTIPLIER_1X2);
293
377k
}
294
295
void aom_dc_predictor_8x4_c(uint8_t *dst, ptrdiff_t stride,
296
471k
                            const uint8_t *above, const uint8_t *left) {
297
471k
  dc_predictor_rect(dst, stride, 8, 4, above, left, 2, DC_MULTIPLIER_1X2);
298
471k
}
299
300
void aom_dc_predictor_4x16_c(uint8_t *dst, ptrdiff_t stride,
301
315k
                             const uint8_t *above, const uint8_t *left) {
302
315k
  dc_predictor_rect(dst, stride, 4, 16, above, left, 2, DC_MULTIPLIER_1X4);
303
315k
}
304
305
void aom_dc_predictor_16x4_c(uint8_t *dst, ptrdiff_t stride,
306
362k
                             const uint8_t *above, const uint8_t *left) {
307
362k
  dc_predictor_rect(dst, stride, 16, 4, above, left, 2, DC_MULTIPLIER_1X4);
308
362k
}
309
310
void aom_dc_predictor_8x16_c(uint8_t *dst, ptrdiff_t stride,
311
313k
                             const uint8_t *above, const uint8_t *left) {
312
313k
  dc_predictor_rect(dst, stride, 8, 16, above, left, 3, DC_MULTIPLIER_1X2);
313
313k
}
314
315
void aom_dc_predictor_16x8_c(uint8_t *dst, ptrdiff_t stride,
316
425k
                             const uint8_t *above, const uint8_t *left) {
317
425k
  dc_predictor_rect(dst, stride, 16, 8, above, left, 3, DC_MULTIPLIER_1X2);
318
425k
}
319
320
void aom_dc_predictor_8x32_c(uint8_t *dst, ptrdiff_t stride,
321
153k
                             const uint8_t *above, const uint8_t *left) {
322
153k
  dc_predictor_rect(dst, stride, 8, 32, above, left, 3, DC_MULTIPLIER_1X4);
323
153k
}
324
325
void aom_dc_predictor_32x8_c(uint8_t *dst, ptrdiff_t stride,
326
177k
                             const uint8_t *above, const uint8_t *left) {
327
177k
  dc_predictor_rect(dst, stride, 32, 8, above, left, 3, DC_MULTIPLIER_1X4);
328
177k
}
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
134k
                              const uint8_t *above, const uint8_t *left) {
337
134k
  dc_predictor_rect(dst, stride, 32, 16, above, left, 4, DC_MULTIPLIER_1X2);
338
134k
}
339
340
void aom_dc_predictor_16x64_c(uint8_t *dst, ptrdiff_t stride,
341
15.1k
                              const uint8_t *above, const uint8_t *left) {
342
15.1k
  dc_predictor_rect(dst, stride, 16, 64, above, left, 4, DC_MULTIPLIER_1X4);
343
15.1k
}
344
345
void aom_dc_predictor_64x16_c(uint8_t *dst, ptrdiff_t stride,
346
8.51k
                              const uint8_t *above, const uint8_t *left) {
347
8.51k
  dc_predictor_rect(dst, stride, 64, 16, above, left, 4, DC_MULTIPLIER_1X4);
348
8.51k
}
349
350
void aom_dc_predictor_32x64_c(uint8_t *dst, ptrdiff_t stride,
351
6.34k
                              const uint8_t *above, const uint8_t *left) {
352
6.34k
  dc_predictor_rect(dst, stride, 32, 64, above, left, 5, DC_MULTIPLIER_1X2);
353
6.34k
}
354
355
void aom_dc_predictor_64x32_c(uint8_t *dst, ptrdiff_t stride,
356
5.08k
                              const uint8_t *above, const uint8_t *left) {
357
5.08k
  dc_predictor_rect(dst, stride, 64, 32, above, left, 5, DC_MULTIPLIER_1X2);
358
5.08k
}
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
470k
                                      const uint16_t *left, int bd) {
366
470k
  int r;
367
470k
  (void)left;
368
470k
  (void)bd;
369
5.48M
  for (r = 0; r < bh; r++) {
370
5.01M
    memcpy(dst, above, bw * sizeof(uint16_t));
371
5.01M
    dst += stride;
372
5.01M
  }
373
470k
}
374
375
static INLINE void highbd_h_predictor(uint16_t *dst, ptrdiff_t stride, int bw,
376
                                      int bh, const uint16_t *above,
377
736k
                                      const uint16_t *left, int bd) {
378
736k
  int r;
379
736k
  (void)above;
380
736k
  (void)bd;
381
8.13M
  for (r = 0; r < bh; r++) {
382
7.39M
    aom_memset16(dst, left[r], bw);
383
7.39M
    dst += stride;
384
7.39M
  }
385
736k
}
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.28M
                                          const uint16_t *left, int bd) {
390
3.28M
  int r, c;
391
3.28M
  const uint16_t ytop_left = above[-1];
392
3.28M
  (void)bd;
393
394
75.5M
  for (r = 0; r < bh; r++) {
395
1.31G
    for (c = 0; c < bw; c++)
396
1.24G
      dst[c] = paeth_predictor_single(left[r], above[c], ytop_left);
397
72.2M
    dst += stride;
398
72.2M
  }
399
3.28M
}
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.47M
                                           const uint16_t *left, int bd) {
405
1.47M
  (void)bd;
406
1.47M
  const uint16_t below_pred = left[bh - 1];   // estimated by bottom-left pixel
407
1.47M
  const uint16_t right_pred = above[bw - 1];  // estimated by top-right pixel
408
1.47M
  const uint8_t *const sm_weights_w = sm_weight_arrays + bw;
409
1.47M
  const uint8_t *const sm_weights_h = sm_weight_arrays + bh;
410
  // scale = 2 * 2^sm_weight_log2_scale
411
1.47M
  const int log2_scale = 1 + sm_weight_log2_scale;
412
1.47M
  const uint16_t scale = (1 << sm_weight_log2_scale);
413
5.88M
  sm_weights_sanity_checks(sm_weights_w, sm_weights_h, scale,
414
1.47M
                           log2_scale + sizeof(*dst));
415
1.47M
  int r;
416
17.6M
  for (r = 0; r < bh; ++r) {
417
16.1M
    int c;
418
334M
    for (c = 0; c < bw; ++c) {
419
317M
      const uint16_t pixels[] = { above[c], below_pred, left[r], right_pred };
420
317M
      const uint8_t weights[] = { sm_weights_h[r], scale - sm_weights_h[r],
421
317M
                                  sm_weights_w[c], scale - sm_weights_w[c] };
422
317M
      uint32_t this_pred = 0;
423
317M
      int i;
424
317M
      assert(scale >= sm_weights_h[r] && scale >= sm_weights_w[c]);
425
1.58G
      for (i = 0; i < 4; ++i) {
426
1.27G
        this_pred += weights[i] * pixels[i];
427
1.27G
      }
428
317M
      dst[c] = divide_round(this_pred, log2_scale);
429
317M
    }
430
16.1M
    dst += stride;
431
16.1M
  }
432
1.47M
}
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
517k
                                             const uint16_t *left, int bd) {
438
517k
  (void)bd;
439
517k
  const uint16_t below_pred = left[bh - 1];  // estimated by bottom-left pixel
440
517k
  const uint8_t *const sm_weights = sm_weight_arrays + bh;
441
  // scale = 2^sm_weight_log2_scale
442
517k
  const int log2_scale = sm_weight_log2_scale;
443
517k
  const uint16_t scale = (1 << sm_weight_log2_scale);
444
2.07M
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
445
517k
                           log2_scale + sizeof(*dst));
446
447
517k
  int r;
448
6.53M
  for (r = 0; r < bh; r++) {
449
6.02M
    int c;
450
125M
    for (c = 0; c < bw; ++c) {
451
119M
      const uint16_t pixels[] = { above[c], below_pred };
452
119M
      const uint8_t weights[] = { sm_weights[r], scale - sm_weights[r] };
453
119M
      uint32_t this_pred = 0;
454
119M
      assert(scale >= sm_weights[r]);
455
119M
      int i;
456
357M
      for (i = 0; i < 2; ++i) {
457
238M
        this_pred += weights[i] * pixels[i];
458
238M
      }
459
119M
      dst[c] = divide_round(this_pred, log2_scale);
460
119M
    }
461
6.02M
    dst += stride;
462
6.02M
  }
463
517k
}
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
598k
                                             const uint16_t *left, int bd) {
469
598k
  (void)bd;
470
598k
  const uint16_t right_pred = above[bw - 1];  // estimated by top-right pixel
471
598k
  const uint8_t *const sm_weights = sm_weight_arrays + bw;
472
  // scale = 2^sm_weight_log2_scale
473
598k
  const int log2_scale = sm_weight_log2_scale;
474
598k
  const uint16_t scale = (1 << sm_weight_log2_scale);
475
2.39M
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
476
598k
                           log2_scale + sizeof(*dst));
477
478
598k
  int r;
479
7.57M
  for (r = 0; r < bh; r++) {
480
6.97M
    int c;
481
146M
    for (c = 0; c < bw; ++c) {
482
139M
      const uint16_t pixels[] = { left[r], right_pred };
483
139M
      const uint8_t weights[] = { sm_weights[c], scale - sm_weights[c] };
484
139M
      uint32_t this_pred = 0;
485
139M
      assert(scale >= sm_weights[c]);
486
139M
      int i;
487
417M
      for (i = 0; i < 2; ++i) {
488
278M
        this_pred += weights[i] * pixels[i];
489
278M
      }
490
139M
      dst[c] = divide_round(this_pred, log2_scale);
491
139M
    }
492
6.97M
    dst += stride;
493
6.97M
  }
494
598k
}
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
63.2k
                                           const uint16_t *left, int bd) {
500
63.2k
  int r;
501
63.2k
  (void)above;
502
63.2k
  (void)left;
503
504
2.07M
  for (r = 0; r < bh; r++) {
505
2.01M
    aom_memset16(dst, 128 << (bd - 8), bw);
506
2.01M
    dst += stride;
507
2.01M
  }
508
63.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
346k
                                            const uint16_t *left, int bd) {
514
346k
  int i, r, expected_dc, sum = 0;
515
346k
  (void)above;
516
346k
  (void)bd;
517
518
8.47M
  for (i = 0; i < bh; i++) sum += left[i];
519
346k
  expected_dc = (sum + (bh >> 1)) / bh;
520
521
8.47M
  for (r = 0; r < bh; r++) {
522
8.12M
    aom_memset16(dst, expected_dc, bw);
523
8.12M
    dst += stride;
524
8.12M
  }
525
346k
}
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
646k
                                           const uint16_t *left, int bd) {
531
646k
  int i, r, expected_dc, sum = 0;
532
646k
  (void)left;
533
646k
  (void)bd;
534
535
14.3M
  for (i = 0; i < bw; i++) sum += above[i];
536
646k
  expected_dc = (sum + (bw >> 1)) / bw;
537
538
15.3M
  for (r = 0; r < bh; r++) {
539
14.7M
    aom_memset16(dst, expected_dc, bw);
540
14.7M
    dst += stride;
541
14.7M
  }
542
646k
}
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.74M
                                       const uint16_t *left, int bd) {
547
4.74M
  int i, r, expected_dc, sum = 0;
548
4.74M
  const int count = bw + bh;
549
4.74M
  (void)bd;
550
551
54.0M
  for (i = 0; i < bw; i++) {
552
49.2M
    sum += above[i];
553
49.2M
  }
554
54.0M
  for (i = 0; i < bh; i++) {
555
49.2M
    sum += left[i];
556
49.2M
  }
557
558
4.74M
  expected_dc = (sum + (count >> 1)) / count;
559
560
54.0M
  for (r = 0; r < bh; r++) {
561
49.2M
    aom_memset16(dst, expected_dc, bw);
562
49.2M
    dst += stride;
563
49.2M
  }
564
4.74M
}
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.22M
#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
717k
#define HIGHBD_DC_MULTIPLIER_1X4 0x6667
577
578
1.94M
#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
1.94M
                                            int shift1, uint32_t multiplier) {
585
1.94M
  int sum = 0;
586
1.94M
  (void)bd;
587
588
23.7M
  for (int i = 0; i < bw; i++) {
589
21.7M
    sum += above[i];
590
21.7M
  }
591
25.1M
  for (int i = 0; i < bh; i++) {
592
23.2M
    sum += left[i];
593
23.2M
  }
594
595
1.94M
  const int expected_dc = divide_using_multiply_shift(
596
1.94M
      sum + ((bw + bh) >> 1), shift1, multiplier, HIGHBD_DC_SHIFT2);
597
1.94M
  assert(expected_dc < (1 << bd));
598
599
25.1M
  for (int r = 0; r < bh; r++) {
600
23.2M
    aom_memset16(dst, expected_dc, bw);
601
23.2M
    dst += stride;
602
23.2M
  }
603
1.94M
}
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
303k
                                   int bd) {
610
303k
  highbd_dc_predictor_rect(dst, stride, 4, 8, above, left, bd, 2,
611
303k
                           HIGHBD_DC_MULTIPLIER_1X2);
612
303k
}
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
417k
                                   int bd) {
617
417k
  highbd_dc_predictor_rect(dst, stride, 8, 4, above, left, bd, 2,
618
417k
                           HIGHBD_DC_MULTIPLIER_1X2);
619
417k
}
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
268k
                                    int bd) {
624
268k
  highbd_dc_predictor_rect(dst, stride, 4, 16, above, left, bd, 2,
625
268k
                           HIGHBD_DC_MULTIPLIER_1X4);
626
268k
}
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
213k
                                    int bd) {
631
213k
  highbd_dc_predictor_rect(dst, stride, 16, 4, above, left, bd, 2,
632
213k
                           HIGHBD_DC_MULTIPLIER_1X4);
633
213k
}
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
157k
                                    int bd) {
638
157k
  highbd_dc_predictor_rect(dst, stride, 8, 16, above, left, bd, 3,
639
157k
                           HIGHBD_DC_MULTIPLIER_1X2);
640
157k
}
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
195k
                                    int bd) {
645
195k
  highbd_dc_predictor_rect(dst, stride, 16, 8, above, left, bd, 3,
646
195k
                           HIGHBD_DC_MULTIPLIER_1X2);
647
195k
}
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
131k
                                    int bd) {
652
131k
  highbd_dc_predictor_rect(dst, stride, 8, 32, above, left, bd, 3,
653
131k
                           HIGHBD_DC_MULTIPLIER_1X4);
654
131k
}
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
84.3k
                                    int bd) {
659
84.3k
  highbd_dc_predictor_rect(dst, stride, 32, 8, above, left, bd, 3,
660
84.3k
                           HIGHBD_DC_MULTIPLIER_1X4);
661
84.3k
}
662
663
void aom_highbd_dc_predictor_16x32_c(uint16_t *dst, ptrdiff_t stride,
664
                                     const uint16_t *above,
665
73.5k
                                     const uint16_t *left, int bd) {
666
73.5k
  highbd_dc_predictor_rect(dst, stride, 16, 32, above, left, bd, 4,
667
73.5k
                           HIGHBD_DC_MULTIPLIER_1X2);
668
73.5k
}
669
670
void aom_highbd_dc_predictor_32x16_c(uint16_t *dst, ptrdiff_t stride,
671
                                     const uint16_t *above,
672
69.2k
                                     const uint16_t *left, int bd) {
673
69.2k
  highbd_dc_predictor_rect(dst, stride, 32, 16, above, left, bd, 4,
674
69.2k
                           HIGHBD_DC_MULTIPLIER_1X2);
675
69.2k
}
676
677
void aom_highbd_dc_predictor_16x64_c(uint16_t *dst, ptrdiff_t stride,
678
                                     const uint16_t *above,
679
12.4k
                                     const uint16_t *left, int bd) {
680
12.4k
  highbd_dc_predictor_rect(dst, stride, 16, 64, above, left, bd, 4,
681
12.4k
                           HIGHBD_DC_MULTIPLIER_1X4);
682
12.4k
}
683
684
void aom_highbd_dc_predictor_64x16_c(uint16_t *dst, ptrdiff_t stride,
685
                                     const uint16_t *above,
686
6.84k
                                     const uint16_t *left, int bd) {
687
6.84k
  highbd_dc_predictor_rect(dst, stride, 64, 16, above, left, bd, 4,
688
6.84k
                           HIGHBD_DC_MULTIPLIER_1X4);
689
6.84k
}
690
691
void aom_highbd_dc_predictor_32x64_c(uint16_t *dst, ptrdiff_t stride,
692
                                     const uint16_t *above,
693
7.14k
                                     const uint16_t *left, int bd) {
694
7.14k
  highbd_dc_predictor_rect(dst, stride, 32, 64, above, left, bd, 5,
695
7.14k
                           HIGHBD_DC_MULTIPLIER_1X2);
696
7.14k
}
697
698
void aom_highbd_dc_predictor_64x32_c(uint16_t *dst, ptrdiff_t stride,
699
                                     const uint16_t *above,
700
4.86k
                                     const uint16_t *left, int bd) {
701
4.86k
  highbd_dc_predictor_rect(dst, stride, 64, 32, above, left, bd, 5,
702
4.86k
                           HIGHBD_DC_MULTIPLIER_1X2);
703
4.86k
}
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
14.7M
      const uint8_t *left) {                                   \
715
14.7M
    type##_predictor(dst, stride, width, height, above, left); \
716
14.7M
  }
aom_v_predictor_4x4_c
Line
Count
Source
714
163k
      const uint8_t *left) {                                   \
715
163k
    type##_predictor(dst, stride, width, height, above, left); \
716
163k
  }
aom_v_predictor_8x8_c
Line
Count
Source
714
94.4k
      const uint8_t *left) {                                   \
715
94.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
94.4k
  }
aom_v_predictor_16x16_c
Line
Count
Source
714
58.3k
      const uint8_t *left) {                                   \
715
58.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
58.3k
  }
aom_v_predictor_32x32_c
Line
Count
Source
714
51.4k
      const uint8_t *left) {                                   \
715
51.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
51.4k
  }
aom_v_predictor_64x64_c
Line
Count
Source
714
3.59k
      const uint8_t *left) {                                   \
715
3.59k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.59k
  }
aom_v_predictor_4x8_c
Line
Count
Source
714
42.1k
      const uint8_t *left) {                                   \
715
42.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
42.1k
  }
aom_v_predictor_8x4_c
Line
Count
Source
714
61.9k
      const uint8_t *left) {                                   \
715
61.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
61.9k
  }
aom_v_predictor_8x16_c
Line
Count
Source
714
24.4k
      const uint8_t *left) {                                   \
715
24.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
24.4k
  }
aom_v_predictor_16x8_c
Line
Count
Source
714
34.8k
      const uint8_t *left) {                                   \
715
34.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
34.8k
  }
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
10.2k
      const uint8_t *left) {                                   \
715
10.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
10.2k
  }
aom_v_predictor_32x64_c
Line
Count
Source
714
627
      const uint8_t *left) {                                   \
715
627
    type##_predictor(dst, stride, width, height, above, left); \
716
627
  }
aom_v_predictor_64x32_c
Line
Count
Source
714
572
      const uint8_t *left) {                                   \
715
572
    type##_predictor(dst, stride, width, height, above, left); \
716
572
  }
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.6k
      const uint8_t *left) {                                   \
715
27.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
27.6k
  }
aom_v_predictor_8x32_c
Line
Count
Source
714
8.40k
      const uint8_t *left) {                                   \
715
8.40k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.40k
  }
aom_v_predictor_32x8_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_v_predictor_16x64_c
Line
Count
Source
714
1.51k
      const uint8_t *left) {                                   \
715
1.51k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.51k
  }
aom_v_predictor_64x16_c
Line
Count
Source
714
975
      const uint8_t *left) {                                   \
715
975
    type##_predictor(dst, stride, width, height, above, left); \
716
975
  }
aom_h_predictor_4x4_c
Line
Count
Source
714
212k
      const uint8_t *left) {                                   \
715
212k
    type##_predictor(dst, stride, width, height, above, left); \
716
212k
  }
aom_h_predictor_8x8_c
Line
Count
Source
714
139k
      const uint8_t *left) {                                   \
715
139k
    type##_predictor(dst, stride, width, height, above, left); \
716
139k
  }
aom_h_predictor_16x16_c
Line
Count
Source
714
73.4k
      const uint8_t *left) {                                   \
715
73.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
73.4k
  }
aom_h_predictor_32x32_c
Line
Count
Source
714
62.3k
      const uint8_t *left) {                                   \
715
62.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
62.3k
  }
aom_h_predictor_64x64_c
Line
Count
Source
714
5.13k
      const uint8_t *left) {                                   \
715
5.13k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.13k
  }
aom_h_predictor_4x8_c
Line
Count
Source
714
66.7k
      const uint8_t *left) {                                   \
715
66.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
66.7k
  }
aom_h_predictor_8x4_c
Line
Count
Source
714
94.9k
      const uint8_t *left) {                                   \
715
94.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
94.9k
  }
aom_h_predictor_8x16_c
Line
Count
Source
714
32.0k
      const uint8_t *left) {                                   \
715
32.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
32.0k
  }
aom_h_predictor_16x8_c
Line
Count
Source
714
44.4k
      const uint8_t *left) {                                   \
715
44.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
44.4k
  }
aom_h_predictor_16x32_c
Line
Count
Source
714
14.3k
      const uint8_t *left) {                                   \
715
14.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
14.3k
  }
aom_h_predictor_32x16_c
Line
Count
Source
714
14.3k
      const uint8_t *left) {                                   \
715
14.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
14.3k
  }
aom_h_predictor_32x64_c
Line
Count
Source
714
598
      const uint8_t *left) {                                   \
715
598
    type##_predictor(dst, stride, width, height, above, left); \
716
598
  }
aom_h_predictor_64x32_c
Line
Count
Source
714
880
      const uint8_t *left) {                                   \
715
880
    type##_predictor(dst, stride, width, height, above, left); \
716
880
  }
aom_h_predictor_4x16_c
Line
Count
Source
714
23.0k
      const uint8_t *left) {                                   \
715
23.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
23.0k
  }
aom_h_predictor_16x4_c
Line
Count
Source
714
36.9k
      const uint8_t *left) {                                   \
715
36.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
36.9k
  }
aom_h_predictor_8x32_c
Line
Count
Source
714
12.5k
      const uint8_t *left) {                                   \
715
12.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
12.5k
  }
aom_h_predictor_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_h_predictor_16x64_c
Line
Count
Source
714
2.20k
      const uint8_t *left) {                                   \
715
2.20k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.20k
  }
aom_h_predictor_64x16_c
Line
Count
Source
714
1.28k
      const uint8_t *left) {                                   \
715
1.28k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.28k
  }
aom_smooth_predictor_4x4_c
Line
Count
Source
714
375k
      const uint8_t *left) {                                   \
715
375k
    type##_predictor(dst, stride, width, height, above, left); \
716
375k
  }
aom_smooth_predictor_8x8_c
Line
Count
Source
714
318k
      const uint8_t *left) {                                   \
715
318k
    type##_predictor(dst, stride, width, height, above, left); \
716
318k
  }
aom_smooth_predictor_16x16_c
Line
Count
Source
714
190k
      const uint8_t *left) {                                   \
715
190k
    type##_predictor(dst, stride, width, height, above, left); \
716
190k
  }
aom_smooth_predictor_32x32_c
Line
Count
Source
714
109k
      const uint8_t *left) {                                   \
715
109k
    type##_predictor(dst, stride, width, height, above, left); \
716
109k
  }
aom_smooth_predictor_64x64_c
Line
Count
Source
714
16.9k
      const uint8_t *left) {                                   \
715
16.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
16.9k
  }
aom_smooth_predictor_4x8_c
Line
Count
Source
714
85.4k
      const uint8_t *left) {                                   \
715
85.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
85.4k
  }
aom_smooth_predictor_8x4_c
Line
Count
Source
714
119k
      const uint8_t *left) {                                   \
715
119k
    type##_predictor(dst, stride, width, height, above, left); \
716
119k
  }
aom_smooth_predictor_8x16_c
Line
Count
Source
714
80.2k
      const uint8_t *left) {                                   \
715
80.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
80.2k
  }
aom_smooth_predictor_16x8_c
Line
Count
Source
714
113k
      const uint8_t *left) {                                   \
715
113k
    type##_predictor(dst, stride, width, height, above, left); \
716
113k
  }
aom_smooth_predictor_16x32_c
Line
Count
Source
714
31.4k
      const uint8_t *left) {                                   \
715
31.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
31.4k
  }
aom_smooth_predictor_32x16_c
Line
Count
Source
714
31.8k
      const uint8_t *left) {                                   \
715
31.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
31.8k
  }
aom_smooth_predictor_32x64_c
Line
Count
Source
714
2.59k
      const uint8_t *left) {                                   \
715
2.59k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.59k
  }
aom_smooth_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_smooth_predictor_4x16_c
Line
Count
Source
714
56.3k
      const uint8_t *left) {                                   \
715
56.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
56.3k
  }
aom_smooth_predictor_16x4_c
Line
Count
Source
714
92.6k
      const uint8_t *left) {                                   \
715
92.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
92.6k
  }
aom_smooth_predictor_8x32_c
Line
Count
Source
714
28.3k
      const uint8_t *left) {                                   \
715
28.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
28.3k
  }
aom_smooth_predictor_32x8_c
Line
Count
Source
714
42.8k
      const uint8_t *left) {                                   \
715
42.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
42.8k
  }
aom_smooth_predictor_16x64_c
Line
Count
Source
714
4.36k
      const uint8_t *left) {                                   \
715
4.36k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.36k
  }
aom_smooth_predictor_64x16_c
Line
Count
Source
714
3.28k
      const uint8_t *left) {                                   \
715
3.28k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.28k
  }
aom_smooth_v_predictor_4x4_c
Line
Count
Source
714
114k
      const uint8_t *left) {                                   \
715
114k
    type##_predictor(dst, stride, width, height, above, left); \
716
114k
  }
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
59.0k
      const uint8_t *left) {                                   \
715
59.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
59.0k
  }
aom_smooth_v_predictor_32x32_c
Line
Count
Source
714
46.9k
      const uint8_t *left) {                                   \
715
46.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
46.9k
  }
aom_smooth_v_predictor_64x64_c
Line
Count
Source
714
5.40k
      const uint8_t *left) {                                   \
715
5.40k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.40k
  }
aom_smooth_v_predictor_4x8_c
Line
Count
Source
714
27.8k
      const uint8_t *left) {                                   \
715
27.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
27.8k
  }
aom_smooth_v_predictor_8x4_c
Line
Count
Source
714
44.0k
      const uint8_t *left) {                                   \
715
44.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
44.0k
  }
aom_smooth_v_predictor_8x16_c
Line
Count
Source
714
28.9k
      const uint8_t *left) {                                   \
715
28.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
28.9k
  }
aom_smooth_v_predictor_16x8_c
Line
Count
Source
714
41.0k
      const uint8_t *left) {                                   \
715
41.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
41.0k
  }
aom_smooth_v_predictor_16x32_c
Line
Count
Source
714
11.5k
      const uint8_t *left) {                                   \
715
11.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
11.5k
  }
aom_smooth_v_predictor_32x16_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_smooth_v_predictor_32x64_c
Line
Count
Source
714
919
      const uint8_t *left) {                                   \
715
919
    type##_predictor(dst, stride, width, height, above, left); \
716
919
  }
aom_smooth_v_predictor_64x32_c
Line
Count
Source
714
919
      const uint8_t *left) {                                   \
715
919
    type##_predictor(dst, stride, width, height, above, left); \
716
919
  }
aom_smooth_v_predictor_4x16_c
Line
Count
Source
714
20.9k
      const uint8_t *left) {                                   \
715
20.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
20.9k
  }
aom_smooth_v_predictor_16x4_c
Line
Count
Source
714
33.3k
      const uint8_t *left) {                                   \
715
33.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
33.3k
  }
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.73k
      const uint8_t *left) {                                   \
715
1.73k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.73k
  }
aom_smooth_v_predictor_64x16_c
Line
Count
Source
714
1.33k
      const uint8_t *left) {                                   \
715
1.33k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.33k
  }
aom_smooth_h_predictor_4x4_c
Line
Count
Source
714
151k
      const uint8_t *left) {                                   \
715
151k
    type##_predictor(dst, stride, width, height, above, left); \
716
151k
  }
aom_smooth_h_predictor_8x8_c
Line
Count
Source
714
157k
      const uint8_t *left) {                                   \
715
157k
    type##_predictor(dst, stride, width, height, above, left); \
716
157k
  }
aom_smooth_h_predictor_16x16_c
Line
Count
Source
714
106k
      const uint8_t *left) {                                   \
715
106k
    type##_predictor(dst, stride, width, height, above, left); \
716
106k
  }
aom_smooth_h_predictor_32x32_c
Line
Count
Source
714
60.6k
      const uint8_t *left) {                                   \
715
60.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
60.6k
  }
aom_smooth_h_predictor_64x64_c
Line
Count
Source
714
7.34k
      const uint8_t *left) {                                   \
715
7.34k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.34k
  }
aom_smooth_h_predictor_4x8_c
Line
Count
Source
714
42.0k
      const uint8_t *left) {                                   \
715
42.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
42.0k
  }
aom_smooth_h_predictor_8x4_c
Line
Count
Source
714
62.1k
      const uint8_t *left) {                                   \
715
62.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
62.1k
  }
aom_smooth_h_predictor_8x16_c
Line
Count
Source
714
43.2k
      const uint8_t *left) {                                   \
715
43.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
43.2k
  }
aom_smooth_h_predictor_16x8_c
Line
Count
Source
714
56.1k
      const uint8_t *left) {                                   \
715
56.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
56.1k
  }
aom_smooth_h_predictor_16x32_c
Line
Count
Source
714
16.0k
      const uint8_t *left) {                                   \
715
16.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
16.0k
  }
aom_smooth_h_predictor_32x16_c
Line
Count
Source
714
17.1k
      const uint8_t *left) {                                   \
715
17.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
17.1k
  }
aom_smooth_h_predictor_32x64_c
Line
Count
Source
714
770
      const uint8_t *left) {                                   \
715
770
    type##_predictor(dst, stride, width, height, above, left); \
716
770
  }
aom_smooth_h_predictor_64x32_c
Line
Count
Source
714
958
      const uint8_t *left) {                                   \
715
958
    type##_predictor(dst, stride, width, height, above, left); \
716
958
  }
aom_smooth_h_predictor_4x16_c
Line
Count
Source
714
29.2k
      const uint8_t *left) {                                   \
715
29.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
29.2k
  }
aom_smooth_h_predictor_16x4_c
Line
Count
Source
714
47.3k
      const uint8_t *left) {                                   \
715
47.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
47.3k
  }
aom_smooth_h_predictor_8x32_c
Line
Count
Source
714
14.8k
      const uint8_t *left) {                                   \
715
14.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
14.8k
  }
aom_smooth_h_predictor_32x8_c
Line
Count
Source
714
24.3k
      const uint8_t *left) {                                   \
715
24.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
24.3k
  }
aom_smooth_h_predictor_16x64_c
Line
Count
Source
714
1.92k
      const uint8_t *left) {                                   \
715
1.92k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.92k
  }
aom_smooth_h_predictor_64x16_c
Line
Count
Source
714
979
      const uint8_t *left) {                                   \
715
979
    type##_predictor(dst, stride, width, height, above, left); \
716
979
  }
aom_paeth_predictor_4x4_c
Line
Count
Source
714
940k
      const uint8_t *left) {                                   \
715
940k
    type##_predictor(dst, stride, width, height, above, left); \
716
940k
  }
aom_paeth_predictor_8x8_c
Line
Count
Source
714
451k
      const uint8_t *left) {                                   \
715
451k
    type##_predictor(dst, stride, width, height, above, left); \
716
451k
  }
aom_paeth_predictor_16x16_c
Line
Count
Source
714
262k
      const uint8_t *left) {                                   \
715
262k
    type##_predictor(dst, stride, width, height, above, left); \
716
262k
  }
aom_paeth_predictor_32x32_c
Line
Count
Source
714
276k
      const uint8_t *left) {                                   \
715
276k
    type##_predictor(dst, stride, width, height, above, left); \
716
276k
  }
aom_paeth_predictor_64x64_c
Line
Count
Source
714
37.6k
      const uint8_t *left) {                                   \
715
37.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
37.6k
  }
aom_paeth_predictor_4x8_c
Line
Count
Source
714
131k
      const uint8_t *left) {                                   \
715
131k
    type##_predictor(dst, stride, width, height, above, left); \
716
131k
  }
aom_paeth_predictor_8x4_c
Line
Count
Source
714
181k
      const uint8_t *left) {                                   \
715
181k
    type##_predictor(dst, stride, width, height, above, left); \
716
181k
  }
aom_paeth_predictor_8x16_c
Line
Count
Source
714
112k
      const uint8_t *left) {                                   \
715
112k
    type##_predictor(dst, stride, width, height, above, left); \
716
112k
  }
aom_paeth_predictor_16x8_c
Line
Count
Source
714
153k
      const uint8_t *left) {                                   \
715
153k
    type##_predictor(dst, stride, width, height, above, left); \
716
153k
  }
aom_paeth_predictor_16x32_c
Line
Count
Source
714
554k
      const uint8_t *left) {                                   \
715
554k
    type##_predictor(dst, stride, width, height, above, left); \
716
554k
  }
aom_paeth_predictor_32x16_c
Line
Count
Source
714
40.0k
      const uint8_t *left) {                                   \
715
40.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
40.0k
  }
aom_paeth_predictor_32x64_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_paeth_predictor_64x32_c
Line
Count
Source
714
2.81k
      const uint8_t *left) {                                   \
715
2.81k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.81k
  }
aom_paeth_predictor_4x16_c
Line
Count
Source
714
179k
      const uint8_t *left) {                                   \
715
179k
    type##_predictor(dst, stride, width, height, above, left); \
716
179k
  }
aom_paeth_predictor_16x4_c
Line
Count
Source
714
131k
      const uint8_t *left) {                                   \
715
131k
    type##_predictor(dst, stride, width, height, above, left); \
716
131k
  }
aom_paeth_predictor_8x32_c
Line
Count
Source
714
290k
      const uint8_t *left) {                                   \
715
290k
    type##_predictor(dst, stride, width, height, above, left); \
716
290k
  }
aom_paeth_predictor_32x8_c
Line
Count
Source
714
49.3k
      const uint8_t *left) {                                   \
715
49.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
49.3k
  }
aom_paeth_predictor_16x64_c
Line
Count
Source
714
218k
      const uint8_t *left) {                                   \
715
218k
    type##_predictor(dst, stride, width, height, above, left); \
716
218k
  }
aom_paeth_predictor_64x16_c
Line
Count
Source
714
3.60k
      const uint8_t *left) {                                   \
715
3.60k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.60k
  }
aom_dc_128_predictor_4x4_c
Line
Count
Source
714
3.61k
      const uint8_t *left) {                                   \
715
3.61k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.61k
  }
aom_dc_128_predictor_8x8_c
Line
Count
Source
714
1.89k
      const uint8_t *left) {                                   \
715
1.89k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.89k
  }
aom_dc_128_predictor_16x16_c
Line
Count
Source
714
583
      const uint8_t *left) {                                   \
715
583
    type##_predictor(dst, stride, width, height, above, left); \
716
583
  }
aom_dc_128_predictor_32x32_c
Line
Count
Source
714
9.91k
      const uint8_t *left) {                                   \
715
9.91k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.91k
  }
aom_dc_128_predictor_64x64_c
Line
Count
Source
714
3.70k
      const uint8_t *left) {                                   \
715
3.70k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.70k
  }
aom_dc_128_predictor_4x8_c
Line
Count
Source
714
282
      const uint8_t *left) {                                   \
715
282
    type##_predictor(dst, stride, width, height, above, left); \
716
282
  }
aom_dc_128_predictor_8x4_c
Line
Count
Source
714
108
      const uint8_t *left) {                                   \
715
108
    type##_predictor(dst, stride, width, height, above, left); \
716
108
  }
aom_dc_128_predictor_8x16_c
Line
Count
Source
714
397
      const uint8_t *left) {                                   \
715
397
    type##_predictor(dst, stride, width, height, above, left); \
716
397
  }
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
2.19k
      const uint8_t *left) {                                   \
715
2.19k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.19k
  }
aom_dc_128_predictor_32x16_c
Line
Count
Source
714
1.60k
      const uint8_t *left) {                                   \
715
1.60k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.60k
  }
aom_dc_128_predictor_32x64_c
Line
Count
Source
714
434
      const uint8_t *left) {                                   \
715
434
    type##_predictor(dst, stride, width, height, above, left); \
716
434
  }
aom_dc_128_predictor_64x32_c
Line
Count
Source
714
268
      const uint8_t *left) {                                   \
715
268
    type##_predictor(dst, stride, width, height, above, left); \
716
268
  }
aom_dc_128_predictor_4x16_c
Line
Count
Source
714
735
      const uint8_t *left) {                                   \
715
735
    type##_predictor(dst, stride, width, height, above, left); \
716
735
  }
aom_dc_128_predictor_16x4_c
Line
Count
Source
714
44
      const uint8_t *left) {                                   \
715
44
    type##_predictor(dst, stride, width, height, above, left); \
716
44
  }
aom_dc_128_predictor_8x32_c
Line
Count
Source
714
570
      const uint8_t *left) {                                   \
715
570
    type##_predictor(dst, stride, width, height, above, left); \
716
570
  }
aom_dc_128_predictor_32x8_c
Line
Count
Source
714
979
      const uint8_t *left) {                                   \
715
979
    type##_predictor(dst, stride, width, height, above, left); \
716
979
  }
aom_dc_128_predictor_16x64_c
Line
Count
Source
714
112
      const uint8_t *left) {                                   \
715
112
    type##_predictor(dst, stride, width, height, above, left); \
716
112
  }
aom_dc_128_predictor_64x16_c
Line
Count
Source
714
12
      const uint8_t *left) {                                   \
715
12
    type##_predictor(dst, stride, width, height, above, left); \
716
12
  }
aom_dc_left_predictor_4x4_c
Line
Count
Source
714
72.6k
      const uint8_t *left) {                                   \
715
72.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
72.6k
  }
aom_dc_left_predictor_8x8_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_dc_left_predictor_16x16_c
Line
Count
Source
714
19.1k
      const uint8_t *left) {                                   \
715
19.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
19.1k
  }
aom_dc_left_predictor_32x32_c
Line
Count
Source
714
80.0k
      const uint8_t *left) {                                   \
715
80.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
80.0k
  }
aom_dc_left_predictor_64x64_c
Line
Count
Source
714
15.5k
      const uint8_t *left) {                                   \
715
15.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
15.5k
  }
aom_dc_left_predictor_4x8_c
Line
Count
Source
714
6.06k
      const uint8_t *left) {                                   \
715
6.06k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.06k
  }
aom_dc_left_predictor_8x4_c
Line
Count
Source
714
6.20k
      const uint8_t *left) {                                   \
715
6.20k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.20k
  }
aom_dc_left_predictor_8x16_c
Line
Count
Source
714
4.53k
      const uint8_t *left) {                                   \
715
4.53k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.53k
  }
aom_dc_left_predictor_16x8_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_dc_left_predictor_16x32_c
Line
Count
Source
714
6.25k
      const uint8_t *left) {                                   \
715
6.25k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.25k
  }
aom_dc_left_predictor_32x16_c
Line
Count
Source
714
9.67k
      const uint8_t *left) {                                   \
715
9.67k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.67k
  }
aom_dc_left_predictor_32x64_c
Line
Count
Source
714
993
      const uint8_t *left) {                                   \
715
993
    type##_predictor(dst, stride, width, height, above, left); \
716
993
  }
aom_dc_left_predictor_64x32_c
Line
Count
Source
714
2.22k
      const uint8_t *left) {                                   \
715
2.22k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.22k
  }
aom_dc_left_predictor_4x16_c
Line
Count
Source
714
12.6k
      const uint8_t *left) {                                   \
715
12.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
12.6k
  }
aom_dc_left_predictor_16x4_c
Line
Count
Source
714
2.36k
      const uint8_t *left) {                                   \
715
2.36k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.36k
  }
aom_dc_left_predictor_8x32_c
Line
Count
Source
714
6.28k
      const uint8_t *left) {                                   \
715
6.28k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.28k
  }
aom_dc_left_predictor_32x8_c
Line
Count
Source
714
2.75k
      const uint8_t *left) {                                   \
715
2.75k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.75k
  }
aom_dc_left_predictor_16x64_c
Line
Count
Source
714
1.52k
      const uint8_t *left) {                                   \
715
1.52k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.52k
  }
aom_dc_left_predictor_64x16_c
Line
Count
Source
714
610
      const uint8_t *left) {                                   \
715
610
    type##_predictor(dst, stride, width, height, above, left); \
716
610
  }
aom_dc_top_predictor_4x4_c
Line
Count
Source
714
114k
      const uint8_t *left) {                                   \
715
114k
    type##_predictor(dst, stride, width, height, above, left); \
716
114k
  }
aom_dc_top_predictor_8x8_c
Line
Count
Source
714
39.6k
      const uint8_t *left) {                                   \
715
39.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
39.6k
  }
aom_dc_top_predictor_16x16_c
Line
Count
Source
714
51.5k
      const uint8_t *left) {                                   \
715
51.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
51.5k
  }
aom_dc_top_predictor_32x32_c
Line
Count
Source
714
170k
      const uint8_t *left) {                                   \
715
170k
    type##_predictor(dst, stride, width, height, above, left); \
716
170k
  }
aom_dc_top_predictor_64x64_c
Line
Count
Source
714
21.9k
      const uint8_t *left) {                                   \
715
21.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
21.9k
  }
aom_dc_top_predictor_4x8_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_dc_top_predictor_8x4_c
Line
Count
Source
714
21.1k
      const uint8_t *left) {                                   \
715
21.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
21.1k
  }
aom_dc_top_predictor_8x16_c
Line
Count
Source
714
36.3k
      const uint8_t *left) {                                   \
715
36.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
36.3k
  }
aom_dc_top_predictor_16x8_c
Line
Count
Source
714
16.5k
      const uint8_t *left) {                                   \
715
16.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
16.5k
  }
aom_dc_top_predictor_16x32_c
Line
Count
Source
714
45.9k
      const uint8_t *left) {                                   \
715
45.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
45.9k
  }
aom_dc_top_predictor_32x16_c
Line
Count
Source
714
19.4k
      const uint8_t *left) {                                   \
715
19.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
19.4k
  }
aom_dc_top_predictor_32x64_c
Line
Count
Source
714
9.36k
      const uint8_t *left) {                                   \
715
9.36k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.36k
  }
aom_dc_top_predictor_64x32_c
Line
Count
Source
714
3.15k
      const uint8_t *left) {                                   \
715
3.15k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.15k
  }
aom_dc_top_predictor_4x16_c
Line
Count
Source
714
25.2k
      const uint8_t *left) {                                   \
715
25.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
25.2k
  }
aom_dc_top_predictor_16x4_c
Line
Count
Source
714
11.6k
      const uint8_t *left) {                                   \
715
11.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
11.6k
  }
aom_dc_top_predictor_8x32_c
Line
Count
Source
714
18.7k
      const uint8_t *left) {                                   \
715
18.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
18.7k
  }
aom_dc_top_predictor_32x8_c
Line
Count
Source
714
16.5k
      const uint8_t *left) {                                   \
715
16.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
16.5k
  }
aom_dc_top_predictor_16x64_c
Line
Count
Source
714
1.29k
      const uint8_t *left) {                                   \
715
1.29k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.29k
  }
aom_dc_top_predictor_64x16_c
Line
Count
Source
714
3.30k
      const uint8_t *left) {                                   \
715
3.30k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.30k
  }
aom_dc_predictor_4x4_c
Line
Count
Source
714
2.37M
      const uint8_t *left) {                                   \
715
2.37M
    type##_predictor(dst, stride, width, height, above, left); \
716
2.37M
  }
aom_dc_predictor_8x8_c
Line
Count
Source
714
1.12M
      const uint8_t *left) {                                   \
715
1.12M
    type##_predictor(dst, stride, width, height, above, left); \
716
1.12M
  }
aom_dc_predictor_16x16_c
Line
Count
Source
714
649k
      const uint8_t *left) {                                   \
715
649k
    type##_predictor(dst, stride, width, height, above, left); \
716
649k
  }
aom_dc_predictor_32x32_c
Line
Count
Source
714
914k
      const uint8_t *left) {                                   \
715
914k
    type##_predictor(dst, stride, width, height, above, left); \
716
914k
  }
aom_dc_predictor_64x64_c
Line
Count
Source
714
64.1k
      const uint8_t *left) {                                   \
715
64.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
64.1k
  }
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.8M
      const uint16_t *left, int bd) {                                       \
722
12.8M
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
12.8M
  }
aom_highbd_v_predictor_4x4_c
Line
Count
Source
721
150k
      const uint16_t *left, int bd) {                                       \
722
150k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
150k
  }
aom_highbd_v_predictor_8x8_c
Line
Count
Source
721
76.3k
      const uint16_t *left, int bd) {                                       \
722
76.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
76.3k
  }
aom_highbd_v_predictor_16x16_c
Line
Count
Source
721
37.0k
      const uint16_t *left, int bd) {                                       \
722
37.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
37.0k
  }
aom_highbd_v_predictor_32x32_c
Line
Count
Source
721
38.9k
      const uint16_t *left, int bd) {                                       \
722
38.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
38.9k
  }
aom_highbd_v_predictor_64x64_c
Line
Count
Source
721
3.37k
      const uint16_t *left, int bd) {                                       \
722
3.37k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.37k
  }
aom_highbd_v_predictor_4x8_c
Line
Count
Source
721
30.0k
      const uint16_t *left, int bd) {                                       \
722
30.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
30.0k
  }
aom_highbd_v_predictor_8x4_c
Line
Count
Source
721
42.8k
      const uint16_t *left, int bd) {                                       \
722
42.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
42.8k
  }
aom_highbd_v_predictor_8x16_c
Line
Count
Source
721
13.8k
      const uint16_t *left, int bd) {                                       \
722
13.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.8k
  }
aom_highbd_v_predictor_16x8_c
Line
Count
Source
721
17.6k
      const uint16_t *left, int bd) {                                       \
722
17.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
17.6k
  }
aom_highbd_v_predictor_16x32_c
Line
Count
Source
721
6.41k
      const uint16_t *left, int bd) {                                       \
722
6.41k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.41k
  }
aom_highbd_v_predictor_32x16_c
Line
Count
Source
721
6.38k
      const uint16_t *left, int bd) {                                       \
722
6.38k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.38k
  }
aom_highbd_v_predictor_32x64_c
Line
Count
Source
721
619
      const uint16_t *left, int bd) {                                       \
722
619
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
619
  }
aom_highbd_v_predictor_64x32_c
Line
Count
Source
721
496
      const uint16_t *left, int bd) {                                       \
722
496
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
496
  }
aom_highbd_v_predictor_4x16_c
Line
Count
Source
721
10.1k
      const uint16_t *left, int bd) {                                       \
722
10.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
10.1k
  }
aom_highbd_v_predictor_16x4_c
Line
Count
Source
721
18.4k
      const uint16_t *left, int bd) {                                       \
722
18.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
18.4k
  }
aom_highbd_v_predictor_8x32_c
Line
Count
Source
721
6.94k
      const uint16_t *left, int bd) {                                       \
722
6.94k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.94k
  }
aom_highbd_v_predictor_32x8_c
Line
Count
Source
721
7.82k
      const uint16_t *left, int bd) {                                       \
722
7.82k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.82k
  }
aom_highbd_v_predictor_16x64_c
Line
Count
Source
721
1.12k
      const uint16_t *left, int bd) {                                       \
722
1.12k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.12k
  }
aom_highbd_v_predictor_64x16_c
Line
Count
Source
721
776
      const uint16_t *left, int bd) {                                       \
722
776
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
776
  }
aom_highbd_h_predictor_4x4_c
Line
Count
Source
721
236k
      const uint16_t *left, int bd) {                                       \
722
236k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
236k
  }
aom_highbd_h_predictor_8x8_c
Line
Count
Source
721
126k
      const uint16_t *left, int bd) {                                       \
722
126k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
126k
  }
aom_highbd_h_predictor_16x16_c
Line
Count
Source
721
59.4k
      const uint16_t *left, int bd) {                                       \
722
59.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
59.4k
  }
aom_highbd_h_predictor_32x32_c
Line
Count
Source
721
43.3k
      const uint16_t *left, int bd) {                                       \
722
43.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
43.3k
  }
aom_highbd_h_predictor_64x64_c
Line
Count
Source
721
6.11k
      const uint16_t *left, int bd) {                                       \
722
6.11k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.11k
  }
aom_highbd_h_predictor_4x8_c
Line
Count
Source
721
51.7k
      const uint16_t *left, int bd) {                                       \
722
51.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
51.7k
  }
aom_highbd_h_predictor_8x4_c
Line
Count
Source
721
73.0k
      const uint16_t *left, int bd) {                                       \
722
73.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
73.0k
  }
aom_highbd_h_predictor_8x16_c
Line
Count
Source
721
21.4k
      const uint16_t *left, int bd) {                                       \
722
21.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
21.4k
  }
aom_highbd_h_predictor_16x8_c
Line
Count
Source
721
28.5k
      const uint16_t *left, int bd) {                                       \
722
28.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
28.5k
  }
aom_highbd_h_predictor_16x32_c
Line
Count
Source
721
9.32k
      const uint16_t *left, int bd) {                                       \
722
9.32k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.32k
  }
aom_highbd_h_predictor_32x16_c
Line
Count
Source
721
9.11k
      const uint16_t *left, int bd) {                                       \
722
9.11k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.11k
  }
aom_highbd_h_predictor_32x64_c
Line
Count
Source
721
643
      const uint16_t *left, int bd) {                                       \
722
643
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
643
  }
aom_highbd_h_predictor_64x32_c
Line
Count
Source
721
727
      const uint16_t *left, int bd) {                                       \
722
727
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
727
  }
aom_highbd_h_predictor_4x16_c
Line
Count
Source
721
15.2k
      const uint16_t *left, int bd) {                                       \
722
15.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
15.2k
  }
aom_highbd_h_predictor_16x4_c
Line
Count
Source
721
29.9k
      const uint16_t *left, int bd) {                                       \
722
29.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
29.9k
  }
aom_highbd_h_predictor_8x32_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_h_predictor_32x8_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_h_predictor_16x64_c
Line
Count
Source
721
1.99k
      const uint16_t *left, int bd) {                                       \
722
1.99k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.99k
  }
aom_highbd_h_predictor_64x16_c
Line
Count
Source
721
1.14k
      const uint16_t *left, int bd) {                                       \
722
1.14k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.14k
  }
aom_highbd_smooth_predictor_4x4_c
Line
Count
Source
721
458k
      const uint16_t *left, int bd) {                                       \
722
458k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
458k
  }
aom_highbd_smooth_predictor_8x8_c
Line
Count
Source
721
250k
      const uint16_t *left, int bd) {                                       \
722
250k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
250k
  }
aom_highbd_smooth_predictor_16x16_c
Line
Count
Source
721
139k
      const uint16_t *left, int bd) {                                       \
722
139k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
139k
  }
aom_highbd_smooth_predictor_32x32_c
Line
Count
Source
721
102k
      const uint16_t *left, int bd) {                                       \
722
102k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
102k
  }
aom_highbd_smooth_predictor_64x64_c
Line
Count
Source
721
18.3k
      const uint16_t *left, int bd) {                                       \
722
18.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
18.3k
  }
aom_highbd_smooth_predictor_4x8_c
Line
Count
Source
721
73.3k
      const uint16_t *left, int bd) {                                       \
722
73.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
73.3k
  }
aom_highbd_smooth_predictor_8x4_c
Line
Count
Source
721
110k
      const uint16_t *left, int bd) {                                       \
722
110k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
110k
  }
aom_highbd_smooth_predictor_8x16_c
Line
Count
Source
721
50.6k
      const uint16_t *left, int bd) {                                       \
722
50.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
50.6k
  }
aom_highbd_smooth_predictor_16x8_c
Line
Count
Source
721
65.8k
      const uint16_t *left, int bd) {                                       \
722
65.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
65.8k
  }
aom_highbd_smooth_predictor_16x32_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_smooth_predictor_32x16_c
Line
Count
Source
721
21.2k
      const uint16_t *left, int bd) {                                       \
722
21.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
21.2k
  }
aom_highbd_smooth_predictor_32x64_c
Line
Count
Source
721
2.60k
      const uint16_t *left, int bd) {                                       \
722
2.60k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.60k
  }
aom_highbd_smooth_predictor_64x32_c
Line
Count
Source
721
2.15k
      const uint16_t *left, int bd) {                                       \
722
2.15k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.15k
  }
aom_highbd_smooth_predictor_4x16_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_smooth_predictor_16x4_c
Line
Count
Source
721
63.2k
      const uint16_t *left, int bd) {                                       \
722
63.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
63.2k
  }
aom_highbd_smooth_predictor_8x32_c
Line
Count
Source
721
21.4k
      const uint16_t *left, int bd) {                                       \
722
21.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
21.4k
  }
aom_highbd_smooth_predictor_32x8_c
Line
Count
Source
721
26.7k
      const uint16_t *left, int bd) {                                       \
722
26.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
26.7k
  }
aom_highbd_smooth_predictor_16x64_c
Line
Count
Source
721
4.96k
      const uint16_t *left, int bd) {                                       \
722
4.96k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.96k
  }
aom_highbd_smooth_predictor_64x16_c
Line
Count
Source
721
2.80k
      const uint16_t *left, int bd) {                                       \
722
2.80k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.80k
  }
aom_highbd_smooth_v_predictor_4x4_c
Line
Count
Source
721
152k
      const uint16_t *left, int bd) {                                       \
722
152k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
152k
  }
aom_highbd_smooth_v_predictor_8x8_c
Line
Count
Source
721
80.7k
      const uint16_t *left, int bd) {                                       \
722
80.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
80.7k
  }
aom_highbd_smooth_v_predictor_16x16_c
Line
Count
Source
721
47.6k
      const uint16_t *left, int bd) {                                       \
722
47.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
47.6k
  }
aom_highbd_smooth_v_predictor_32x32_c
Line
Count
Source
721
46.2k
      const uint16_t *left, int bd) {                                       \
722
46.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
46.2k
  }
aom_highbd_smooth_v_predictor_64x64_c
Line
Count
Source
721
5.32k
      const uint16_t *left, int bd) {                                       \
722
5.32k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.32k
  }
aom_highbd_smooth_v_predictor_4x8_c
Line
Count
Source
721
26.5k
      const uint16_t *left, int bd) {                                       \
722
26.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
26.5k
  }
aom_highbd_smooth_v_predictor_8x4_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_smooth_v_predictor_8x16_c
Line
Count
Source
721
18.6k
      const uint16_t *left, int bd) {                                       \
722
18.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
18.6k
  }
aom_highbd_smooth_v_predictor_16x8_c
Line
Count
Source
721
23.5k
      const uint16_t *left, int bd) {                                       \
722
23.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
23.5k
  }
aom_highbd_smooth_v_predictor_16x32_c
Line
Count
Source
721
8.36k
      const uint16_t *left, int bd) {                                       \
722
8.36k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.36k
  }
aom_highbd_smooth_v_predictor_32x16_c
Line
Count
Source
721
9.12k
      const uint16_t *left, int bd) {                                       \
722
9.12k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.12k
  }
aom_highbd_smooth_v_predictor_32x64_c
Line
Count
Source
721
840
      const uint16_t *left, int bd) {                                       \
722
840
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
840
  }
aom_highbd_smooth_v_predictor_64x32_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_smooth_v_predictor_4x16_c
Line
Count
Source
721
13.5k
      const uint16_t *left, int bd) {                                       \
722
13.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.5k
  }
aom_highbd_smooth_v_predictor_16x4_c
Line
Count
Source
721
22.8k
      const uint16_t *left, int bd) {                                       \
722
22.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
22.8k
  }
aom_highbd_smooth_v_predictor_8x32_c
Line
Count
Source
721
9.49k
      const uint16_t *left, int bd) {                                       \
722
9.49k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.49k
  }
aom_highbd_smooth_v_predictor_32x8_c
Line
Count
Source
721
9.97k
      const uint16_t *left, int bd) {                                       \
722
9.97k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.97k
  }
aom_highbd_smooth_v_predictor_16x64_c
Line
Count
Source
721
1.99k
      const uint16_t *left, int bd) {                                       \
722
1.99k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.99k
  }
aom_highbd_smooth_v_predictor_64x16_c
Line
Count
Source
721
907
      const uint16_t *left, int bd) {                                       \
722
907
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
907
  }
aom_highbd_smooth_h_predictor_4x4_c
Line
Count
Source
721
163k
      const uint16_t *left, int bd) {                                       \
722
163k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
163k
  }
aom_highbd_smooth_h_predictor_8x8_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_h_predictor_16x16_c
Line
Count
Source
721
55.2k
      const uint16_t *left, int bd) {                                       \
722
55.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
55.2k
  }
aom_highbd_smooth_h_predictor_32x32_c
Line
Count
Source
721
51.0k
      const uint16_t *left, int bd) {                                       \
722
51.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
51.0k
  }
aom_highbd_smooth_h_predictor_64x64_c
Line
Count
Source
721
7.06k
      const uint16_t *left, int bd) {                                       \
722
7.06k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.06k
  }
aom_highbd_smooth_h_predictor_4x8_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_smooth_h_predictor_8x4_c
Line
Count
Source
721
46.5k
      const uint16_t *left, int bd) {                                       \
722
46.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
46.5k
  }
aom_highbd_smooth_h_predictor_8x16_c
Line
Count
Source
721
23.0k
      const uint16_t *left, int bd) {                                       \
722
23.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
23.0k
  }
aom_highbd_smooth_h_predictor_16x8_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_h_predictor_16x32_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_smooth_h_predictor_32x16_c
Line
Count
Source
721
8.93k
      const uint16_t *left, int bd) {                                       \
722
8.93k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.93k
  }
aom_highbd_smooth_h_predictor_32x64_c
Line
Count
Source
721
943
      const uint16_t *left, int bd) {                                       \
722
943
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
943
  }
aom_highbd_smooth_h_predictor_64x32_c
Line
Count
Source
721
942
      const uint16_t *left, int bd) {                                       \
722
942
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
942
  }
aom_highbd_smooth_h_predictor_4x16_c
Line
Count
Source
721
15.1k
      const uint16_t *left, int bd) {                                       \
722
15.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
15.1k
  }
aom_highbd_smooth_h_predictor_16x4_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_smooth_h_predictor_8x32_c
Line
Count
Source
721
8.59k
      const uint16_t *left, int bd) {                                       \
722
8.59k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.59k
  }
aom_highbd_smooth_h_predictor_32x8_c
Line
Count
Source
721
12.0k
      const uint16_t *left, int bd) {                                       \
722
12.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
12.0k
  }
aom_highbd_smooth_h_predictor_16x64_c
Line
Count
Source
721
2.48k
      const uint16_t *left, int bd) {                                       \
722
2.48k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.48k
  }
aom_highbd_smooth_h_predictor_64x16_c
Line
Count
Source
721
904
      const uint16_t *left, int bd) {                                       \
722
904
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
904
  }
aom_highbd_paeth_predictor_4x4_c
Line
Count
Source
721
613k
      const uint16_t *left, int bd) {                                       \
722
613k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
613k
  }
aom_highbd_paeth_predictor_8x8_c
Line
Count
Source
721
330k
      const uint16_t *left, int bd) {                                       \
722
330k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
330k
  }
aom_highbd_paeth_predictor_16x16_c
Line
Count
Source
721
203k
      const uint16_t *left, int bd) {                                       \
722
203k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
203k
  }
aom_highbd_paeth_predictor_32x32_c
Line
Count
Source
721
217k
      const uint16_t *left, int bd) {                                       \
722
217k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
217k
  }
aom_highbd_paeth_predictor_64x64_c
Line
Count
Source
721
38.8k
      const uint16_t *left, int bd) {                                       \
722
38.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
38.8k
  }
aom_highbd_paeth_predictor_4x8_c
Line
Count
Source
721
87.4k
      const uint16_t *left, int bd) {                                       \
722
87.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
87.4k
  }
aom_highbd_paeth_predictor_8x4_c
Line
Count
Source
721
130k
      const uint16_t *left, int bd) {                                       \
722
130k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
130k
  }
aom_highbd_paeth_predictor_8x16_c
Line
Count
Source
721
63.9k
      const uint16_t *left, int bd) {                                       \
722
63.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
63.9k
  }
aom_highbd_paeth_predictor_16x8_c
Line
Count
Source
721
84.4k
      const uint16_t *left, int bd) {                                       \
722
84.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
84.4k
  }
aom_highbd_paeth_predictor_16x32_c
Line
Count
Source
721
672k
      const uint16_t *left, int bd) {                                       \
722
672k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
672k
  }
aom_highbd_paeth_predictor_32x16_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_paeth_predictor_32x64_c
Line
Count
Source
721
12.1k
      const uint16_t *left, int bd) {                                       \
722
12.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
12.1k
  }
aom_highbd_paeth_predictor_64x32_c
Line
Count
Source
721
2.78k
      const uint16_t *left, int bd) {                                       \
722
2.78k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.78k
  }
aom_highbd_paeth_predictor_4x16_c
Line
Count
Source
721
131k
      const uint16_t *left, int bd) {                                       \
722
131k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
131k
  }
aom_highbd_paeth_predictor_16x4_c
Line
Count
Source
721
76.6k
      const uint16_t *left, int bd) {                                       \
722
76.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
76.6k
  }
aom_highbd_paeth_predictor_8x32_c
Line
Count
Source
721
294k
      const uint16_t *left, int bd) {                                       \
722
294k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
294k
  }
aom_highbd_paeth_predictor_32x8_c
Line
Count
Source
721
30.1k
      const uint16_t *left, int bd) {                                       \
722
30.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
30.1k
  }
aom_highbd_paeth_predictor_16x64_c
Line
Count
Source
721
259k
      const uint16_t *left, int bd) {                                       \
722
259k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
259k
  }
aom_highbd_paeth_predictor_64x16_c
Line
Count
Source
721
2.88k
      const uint16_t *left, int bd) {                                       \
722
2.88k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.88k
  }
aom_highbd_dc_128_predictor_4x4_c
Line
Count
Source
721
5.88k
      const uint16_t *left, int bd) {                                       \
722
5.88k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.88k
  }
aom_highbd_dc_128_predictor_8x8_c
Line
Count
Source
721
2.41k
      const uint16_t *left, int bd) {                                       \
722
2.41k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.41k
  }
aom_highbd_dc_128_predictor_16x16_c
Line
Count
Source
721
3.73k
      const uint16_t *left, int bd) {                                       \
722
3.73k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.73k
  }
aom_highbd_dc_128_predictor_32x32_c
Line
Count
Source
721
27.9k
      const uint16_t *left, int bd) {                                       \
722
27.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
27.9k
  }
aom_highbd_dc_128_predictor_64x64_c
Line
Count
Source
721
9.43k
      const uint16_t *left, int bd) {                                       \
722
9.43k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.43k
  }
aom_highbd_dc_128_predictor_4x8_c
Line
Count
Source
721
269
      const uint16_t *left, int bd) {                                       \
722
269
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
269
  }
aom_highbd_dc_128_predictor_8x4_c
Line
Count
Source
721
101
      const uint16_t *left, int bd) {                                       \
722
101
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
101
  }
aom_highbd_dc_128_predictor_8x16_c
Line
Count
Source
721
569
      const uint16_t *left, int bd) {                                       \
722
569
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
569
  }
aom_highbd_dc_128_predictor_16x8_c
Line
Count
Source
721
562
      const uint16_t *left, int bd) {                                       \
722
562
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
562
  }
aom_highbd_dc_128_predictor_16x32_c
Line
Count
Source
721
3.09k
      const uint16_t *left, int bd) {                                       \
722
3.09k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.09k
  }
aom_highbd_dc_128_predictor_32x16_c
Line
Count
Source
721
2.57k
      const uint16_t *left, int bd) {                                       \
722
2.57k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.57k
  }
aom_highbd_dc_128_predictor_32x64_c
Line
Count
Source
721
406
      const uint16_t *left, int bd) {                                       \
722
406
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
406
  }
aom_highbd_dc_128_predictor_64x32_c
Line
Count
Source
721
880
      const uint16_t *left, int bd) {                                       \
722
880
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
880
  }
aom_highbd_dc_128_predictor_4x16_c
Line
Count
Source
721
749
      const uint16_t *left, int bd) {                                       \
722
749
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
749
  }
aom_highbd_dc_128_predictor_16x4_c
Line
Count
Source
721
49
      const uint16_t *left, int bd) {                                       \
722
49
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
49
  }
aom_highbd_dc_128_predictor_8x32_c
Line
Count
Source
721
2.84k
      const uint16_t *left, int bd) {                                       \
722
2.84k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.84k
  }
aom_highbd_dc_128_predictor_32x8_c
Line
Count
Source
721
151
      const uint16_t *left, int bd) {                                       \
722
151
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
151
  }
aom_highbd_dc_128_predictor_16x64_c
Line
Count
Source
721
1.56k
      const uint16_t *left, int bd) {                                       \
722
1.56k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.56k
  }
aom_highbd_dc_128_predictor_64x16_c
Line
Count
Source
721
25
      const uint16_t *left, int bd) {                                       \
722
25
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
25
  }
aom_highbd_dc_left_predictor_4x4_c
Line
Count
Source
721
70.5k
      const uint16_t *left, int bd) {                                       \
722
70.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
70.5k
  }
aom_highbd_dc_left_predictor_8x8_c
Line
Count
Source
721
14.9k
      const uint16_t *left, int bd) {                                       \
722
14.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
14.9k
  }
aom_highbd_dc_left_predictor_16x16_c
Line
Count
Source
721
28.5k
      const uint16_t *left, int bd) {                                       \
722
28.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
28.5k
  }
aom_highbd_dc_left_predictor_32x32_c
Line
Count
Source
721
122k
      const uint16_t *left, int bd) {                                       \
722
122k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
122k
  }
aom_highbd_dc_left_predictor_64x64_c
Line
Count
Source
721
25.0k
      const uint16_t *left, int bd) {                                       \
722
25.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
25.0k
  }
aom_highbd_dc_left_predictor_4x8_c
Line
Count
Source
721
6.50k
      const uint16_t *left, int bd) {                                       \
722
6.50k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.50k
  }
aom_highbd_dc_left_predictor_8x4_c
Line
Count
Source
721
5.88k
      const uint16_t *left, int bd) {                                       \
722
5.88k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.88k
  }
aom_highbd_dc_left_predictor_8x16_c
Line
Count
Source
721
6.26k
      const uint16_t *left, int bd) {                                       \
722
6.26k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.26k
  }
aom_highbd_dc_left_predictor_16x8_c
Line
Count
Source
721
7.82k
      const uint16_t *left, int bd) {                                       \
722
7.82k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.82k
  }
aom_highbd_dc_left_predictor_16x32_c
Line
Count
Source
721
11.8k
      const uint16_t *left, int bd) {                                       \
722
11.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
11.8k
  }
aom_highbd_dc_left_predictor_32x16_c
Line
Count
Source
721
8.15k
      const uint16_t *left, int bd) {                                       \
722
8.15k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.15k
  }
aom_highbd_dc_left_predictor_32x64_c
Line
Count
Source
721
1.29k
      const uint16_t *left, int bd) {                                       \
722
1.29k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.29k
  }
aom_highbd_dc_left_predictor_64x32_c
Line
Count
Source
721
2.76k
      const uint16_t *left, int bd) {                                       \
722
2.76k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.76k
  }
aom_highbd_dc_left_predictor_4x16_c
Line
Count
Source
721
13.6k
      const uint16_t *left, int bd) {                                       \
722
13.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.6k
  }
aom_highbd_dc_left_predictor_16x4_c
Line
Count
Source
721
2.40k
      const uint16_t *left, int bd) {                                       \
722
2.40k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.40k
  }
aom_highbd_dc_left_predictor_8x32_c
Line
Count
Source
721
11.8k
      const uint16_t *left, int bd) {                                       \
722
11.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
11.8k
  }
aom_highbd_dc_left_predictor_32x8_c
Line
Count
Source
721
2.76k
      const uint16_t *left, int bd) {                                       \
722
2.76k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.76k
  }
aom_highbd_dc_left_predictor_16x64_c
Line
Count
Source
721
3.10k
      const uint16_t *left, int bd) {                                       \
722
3.10k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.10k
  }
aom_highbd_dc_left_predictor_64x16_c
Line
Count
Source
721
667
      const uint16_t *left, int bd) {                                       \
722
667
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
667
  }
aom_highbd_dc_top_predictor_4x4_c
Line
Count
Source
721
77.9k
      const uint16_t *left, int bd) {                                       \
722
77.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
77.9k
  }
aom_highbd_dc_top_predictor_8x8_c
Line
Count
Source
721
32.6k
      const uint16_t *left, int bd) {                                       \
722
32.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
32.6k
  }
aom_highbd_dc_top_predictor_16x16_c
Line
Count
Source
721
39.1k
      const uint16_t *left, int bd) {                                       \
722
39.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
39.1k
  }
aom_highbd_dc_top_predictor_32x32_c
Line
Count
Source
721
218k
      const uint16_t *left, int bd) {                                       \
722
218k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
218k
  }
aom_highbd_dc_top_predictor_64x64_c
Line
Count
Source
721
27.0k
      const uint16_t *left, int bd) {                                       \
722
27.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
27.0k
  }
aom_highbd_dc_top_predictor_4x8_c
Line
Count
Source
721
29.9k
      const uint16_t *left, int bd) {                                       \
722
29.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
29.9k
  }
aom_highbd_dc_top_predictor_8x4_c
Line
Count
Source
721
17.9k
      const uint16_t *left, int bd) {                                       \
722
17.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
17.9k
  }
aom_highbd_dc_top_predictor_8x16_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_dc_top_predictor_16x8_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_16x32_c
Line
Count
Source
721
35.5k
      const uint16_t *left, int bd) {                                       \
722
35.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
35.5k
  }
aom_highbd_dc_top_predictor_32x16_c
Line
Count
Source
721
16.7k
      const uint16_t *left, int bd) {                                       \
722
16.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
16.7k
  }
aom_highbd_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.49k
      const uint16_t *left, int bd) {                                       \
722
1.49k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.49k
  }
aom_highbd_dc_top_predictor_4x16_c
Line
Count
Source
721
28.6k
      const uint16_t *left, int bd) {                                       \
722
28.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
28.6k
  }
aom_highbd_dc_top_predictor_16x4_c
Line
Count
Source
721
13.6k
      const uint16_t *left, int bd) {                                       \
722
13.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.6k
  }
aom_highbd_dc_top_predictor_8x32_c
Line
Count
Source
721
23.6k
      const uint16_t *left, int bd) {                                       \
722
23.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
23.6k
  }
aom_highbd_dc_top_predictor_32x8_c
Line
Count
Source
721
19.1k
      const uint16_t *left, int bd) {                                       \
722
19.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
19.1k
  }
aom_highbd_dc_top_predictor_16x64_c
Line
Count
Source
721
717
      const uint16_t *left, int bd) {                                       \
722
717
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
717
  }
aom_highbd_dc_top_predictor_64x16_c
Line
Count
Source
721
3.80k
      const uint16_t *left, int bd) {                                       \
722
3.80k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.80k
  }
aom_highbd_dc_predictor_4x4_c
Line
Count
Source
721
2.90M
      const uint16_t *left, int bd) {                                       \
722
2.90M
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.90M
  }
aom_highbd_dc_predictor_8x8_c
Line
Count
Source
721
675k
      const uint16_t *left, int bd) {                                       \
722
675k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
675k
  }
aom_highbd_dc_predictor_16x16_c
Line
Count
Source
721
435k
      const uint16_t *left, int bd) {                                       \
722
435k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
435k
  }
aom_highbd_dc_predictor_32x32_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_64x64_c
Line
Count
Source
721
58.1k
      const uint16_t *left, int bd) {                                       \
722
58.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
58.1k
  }
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