Coverage Report

Created: 2025-08-11 08:01

/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
493k
                               const uint8_t *above, const uint8_t *left) {
25
493k
  int r;
26
493k
  (void)left;
27
28
5.66M
  for (r = 0; r < bh; r++) {
29
5.16M
    memcpy(dst, above, bw);
30
5.16M
    dst += stride;
31
5.16M
  }
32
493k
}
33
34
static INLINE void h_predictor(uint8_t *dst, ptrdiff_t stride, int bw, int bh,
35
713k
                               const uint8_t *above, const uint8_t *left) {
36
713k
  int r;
37
713k
  (void)above;
38
39
8.28M
  for (r = 0; r < bh; r++) {
40
7.56M
    memset(dst, left[r], bw);
41
7.56M
    dst += stride;
42
7.56M
  }
43
713k
}
44
45
4.25G
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
1.41G
                                              uint16_t top_left) {
49
1.41G
  const int base = top + left - top_left;
50
1.41G
  const int p_left = abs_diff(base, left);
51
1.41G
  const int p_top = abs_diff(base, top);
52
1.41G
  const int p_top_left = abs_diff(base, top_left);
53
54
  // Return nearest to base of left, top and top_left.
55
1.41G
  return (p_left <= p_top && p_left <= p_top_left)
56
1.41G
             ? left
57
1.41G
             : (p_top <= p_top_left) ? top : top_left;
58
1.41G
}
59
60
static INLINE void paeth_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
61
                                   int bh, const uint8_t *above,
62
2.61M
                                   const uint8_t *left) {
63
2.61M
  int r, c;
64
2.61M
  const uint8_t ytop_left = above[-1];
65
66
42.9M
  for (r = 0; r < bh; r++) {
67
712M
    for (c = 0; c < bw; c++)
68
671M
      dst[c] = (uint8_t)paeth_predictor_single(left[r], above[c], ytop_left);
69
40.3M
    dst += stride;
70
40.3M
  }
71
2.61M
}
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.15M
  assert(weights_w[0] < weights_scale);                               \
77
5.15M
  assert(weights_h[0] < weights_scale);                               \
78
5.15M
  assert(weights_scale - weights_w[bw - 1] < weights_scale);          \
79
5.15M
  assert(weights_scale - weights_h[bh - 1] < weights_scale);          \
80
5.15M
  assert(pred_scale < 31)  // ensures no overflow when calculating predictor.
81
82
1.04G
#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.34M
                                    const uint8_t *left) {
87
1.34M
  const uint8_t below_pred = left[bh - 1];   // estimated by bottom-left pixel
88
1.34M
  const uint8_t right_pred = above[bw - 1];  // estimated by top-right pixel
89
1.34M
  const uint8_t *const sm_weights_w = sm_weight_arrays + bw;
90
1.34M
  const uint8_t *const sm_weights_h = sm_weight_arrays + bh;
91
  // scale = 2 * 2^sm_weight_log2_scale
92
1.34M
  const int log2_scale = 1 + sm_weight_log2_scale;
93
1.34M
  const uint16_t scale = (1 << sm_weight_log2_scale);
94
5.38M
  sm_weights_sanity_checks(sm_weights_w, sm_weights_h, scale,
95
1.34M
                           log2_scale + sizeof(*dst));
96
1.34M
  int r;
97
16.3M
  for (r = 0; r < bh; ++r) {
98
15.0M
    int c;
99
293M
    for (c = 0; c < bw; ++c) {
100
278M
      const uint8_t pixels[] = { above[c], below_pred, left[r], right_pred };
101
278M
      const uint8_t weights[] = { sm_weights_h[r], scale - sm_weights_h[r],
102
278M
                                  sm_weights_w[c], scale - sm_weights_w[c] };
103
278M
      uint32_t this_pred = 0;
104
278M
      int i;
105
278M
      assert(scale >= sm_weights_h[r] && scale >= sm_weights_w[c]);
106
1.39G
      for (i = 0; i < 4; ++i) {
107
1.11G
        this_pred += weights[i] * pixels[i];
108
1.11G
      }
109
278M
      dst[c] = divide_round(this_pred, log2_scale);
110
278M
    }
111
15.0M
    dst += stride;
112
15.0M
  }
113
1.34M
}
114
115
static INLINE void smooth_v_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
116
                                      int bh, const uint8_t *above,
117
431k
                                      const uint8_t *left) {
118
431k
  const uint8_t below_pred = left[bh - 1];  // estimated by bottom-left pixel
119
431k
  const uint8_t *const sm_weights = sm_weight_arrays + bh;
120
  // scale = 2^sm_weight_log2_scale
121
431k
  const int log2_scale = sm_weight_log2_scale;
122
431k
  const uint16_t scale = (1 << sm_weight_log2_scale);
123
1.72M
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
124
431k
                           log2_scale + sizeof(*dst));
125
126
431k
  int r;
127
5.33M
  for (r = 0; r < bh; r++) {
128
4.90M
    int c;
129
96.1M
    for (c = 0; c < bw; ++c) {
130
91.2M
      const uint8_t pixels[] = { above[c], below_pred };
131
91.2M
      const uint8_t weights[] = { sm_weights[r], scale - sm_weights[r] };
132
91.2M
      uint32_t this_pred = 0;
133
91.2M
      assert(scale >= sm_weights[r]);
134
91.2M
      int i;
135
273M
      for (i = 0; i < 2; ++i) {
136
182M
        this_pred += weights[i] * pixels[i];
137
182M
      }
138
91.2M
      dst[c] = divide_round(this_pred, log2_scale);
139
91.2M
    }
140
4.90M
    dst += stride;
141
4.90M
  }
142
431k
}
143
144
static INLINE void smooth_h_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
145
                                      int bh, const uint8_t *above,
146
667k
                                      const uint8_t *left) {
147
667k
  const uint8_t right_pred = above[bw - 1];  // estimated by top-right pixel
148
667k
  const uint8_t *const sm_weights = sm_weight_arrays + bw;
149
  // scale = 2^sm_weight_log2_scale
150
667k
  const int log2_scale = sm_weight_log2_scale;
151
667k
  const uint16_t scale = (1 << sm_weight_log2_scale);
152
2.66M
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
153
667k
                           log2_scale + sizeof(*dst));
154
155
667k
  int r;
156
8.29M
  for (r = 0; r < bh; r++) {
157
7.62M
    int c;
158
147M
    for (c = 0; c < bw; ++c) {
159
139M
      const uint8_t pixels[] = { left[r], right_pred };
160
139M
      const uint8_t weights[] = { sm_weights[c], scale - sm_weights[c] };
161
139M
      uint32_t this_pred = 0;
162
139M
      assert(scale >= sm_weights[c]);
163
139M
      int i;
164
418M
      for (i = 0; i < 2; ++i) {
165
279M
        this_pred += weights[i] * pixels[i];
166
279M
      }
167
139M
      dst[c] = divide_round(this_pred, log2_scale);
168
139M
    }
169
7.62M
    dst += stride;
170
7.62M
  }
171
667k
}
172
173
static INLINE void dc_128_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
174
                                    int bh, const uint8_t *above,
175
22.3k
                                    const uint8_t *left) {
176
22.3k
  int r;
177
22.3k
  (void)above;
178
22.3k
  (void)left;
179
180
648k
  for (r = 0; r < bh; r++) {
181
626k
    memset(dst, 128, bw);
182
626k
    dst += stride;
183
626k
  }
184
22.3k
}
185
186
static INLINE void dc_left_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
187
                                     int bh, const uint8_t *above,
188
251k
                                     const uint8_t *left) {
189
251k
  int i, r, expected_dc, sum = 0;
190
251k
  (void)above;
191
192
5.47M
  for (i = 0; i < bh; i++) sum += left[i];
193
251k
  expected_dc = (sum + (bh >> 1)) / bh;
194
195
5.47M
  for (r = 0; r < bh; r++) {
196
5.22M
    memset(dst, expected_dc, bw);
197
5.22M
    dst += stride;
198
5.22M
  }
199
251k
}
200
201
static INLINE void dc_top_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
202
                                    int bh, const uint8_t *above,
203
316k
                                    const uint8_t *left) {
204
316k
  int i, r, expected_dc, sum = 0;
205
316k
  (void)left;
206
207
5.62M
  for (i = 0; i < bw; i++) sum += above[i];
208
316k
  expected_dc = (sum + (bw >> 1)) / bw;
209
210
6.57M
  for (r = 0; r < bh; r++) {
211
6.26M
    memset(dst, expected_dc, bw);
212
6.26M
    dst += stride;
213
6.26M
  }
214
316k
}
215
216
static INLINE void dc_predictor(uint8_t *dst, ptrdiff_t stride, int bw, int bh,
217
4.36M
                                const uint8_t *above, const uint8_t *left) {
218
4.36M
  int i, r, expected_dc, sum = 0;
219
4.36M
  const int count = bw + bh;
220
221
56.7M
  for (i = 0; i < bw; i++) {
222
52.3M
    sum += above[i];
223
52.3M
  }
224
56.7M
  for (i = 0; i < bh; i++) {
225
52.3M
    sum += left[i];
226
52.3M
  }
227
228
4.36M
  expected_dc = (sum + (count >> 1)) / count;
229
230
56.7M
  for (r = 0; r < bh; r++) {
231
52.3M
    memset(dst, expected_dc, bw);
232
52.3M
    dst += stride;
233
52.3M
  }
234
4.36M
}
235
236
static INLINE int divide_using_multiply_shift(int num, int shift1,
237
4.23M
                                              int multiplier, int shift2) {
238
4.23M
  const int interm = num >> shift1;
239
4.23M
  return interm * multiplier >> shift2;
240
4.23M
}
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.33M
#define DC_MULTIPLIER_1X2 0x5556
261
729k
#define DC_MULTIPLIER_1X4 0x3334
262
263
2.06M
#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.06M
                                     int multiplier) {
269
2.06M
  int sum = 0;
270
271
27.4M
  for (int i = 0; i < bw; i++) {
272
25.3M
    sum += above[i];
273
25.3M
  }
274
25.6M
  for (int i = 0; i < bh; i++) {
275
23.5M
    sum += left[i];
276
23.5M
  }
277
278
2.06M
  const int expected_dc = divide_using_multiply_shift(
279
2.06M
      sum + ((bw + bh) >> 1), shift1, multiplier, DC_SHIFT2);
280
2.06M
  assert(expected_dc < (1 << 8));
281
282
25.6M
  for (int r = 0; r < bh; r++) {
283
23.5M
    memset(dst, expected_dc, bw);
284
23.5M
    dst += stride;
285
23.5M
  }
286
2.06M
}
287
288
#undef DC_SHIFT2
289
290
void aom_dc_predictor_4x8_c(uint8_t *dst, ptrdiff_t stride,
291
301k
                            const uint8_t *above, const uint8_t *left) {
292
301k
  dc_predictor_rect(dst, stride, 4, 8, above, left, 2, DC_MULTIPLIER_1X2);
293
301k
}
294
295
void aom_dc_predictor_8x4_c(uint8_t *dst, ptrdiff_t stride,
296
339k
                            const uint8_t *above, const uint8_t *left) {
297
339k
  dc_predictor_rect(dst, stride, 8, 4, above, left, 2, DC_MULTIPLIER_1X2);
298
339k
}
299
300
void aom_dc_predictor_4x16_c(uint8_t *dst, ptrdiff_t stride,
301
234k
                             const uint8_t *above, const uint8_t *left) {
302
234k
  dc_predictor_rect(dst, stride, 4, 16, above, left, 2, DC_MULTIPLIER_1X4);
303
234k
}
304
305
void aom_dc_predictor_16x4_c(uint8_t *dst, ptrdiff_t stride,
306
259k
                             const uint8_t *above, const uint8_t *left) {
307
259k
  dc_predictor_rect(dst, stride, 16, 4, above, left, 2, DC_MULTIPLIER_1X4);
308
259k
}
309
310
void aom_dc_predictor_8x16_c(uint8_t *dst, ptrdiff_t stride,
311
222k
                             const uint8_t *above, const uint8_t *left) {
312
222k
  dc_predictor_rect(dst, stride, 8, 16, above, left, 3, DC_MULTIPLIER_1X2);
313
222k
}
314
315
void aom_dc_predictor_16x8_c(uint8_t *dst, ptrdiff_t stride,
316
287k
                             const uint8_t *above, const uint8_t *left) {
317
287k
  dc_predictor_rect(dst, stride, 16, 8, above, left, 3, DC_MULTIPLIER_1X2);
318
287k
}
319
320
void aom_dc_predictor_8x32_c(uint8_t *dst, ptrdiff_t stride,
321
94.7k
                             const uint8_t *above, const uint8_t *left) {
322
94.7k
  dc_predictor_rect(dst, stride, 8, 32, above, left, 3, DC_MULTIPLIER_1X4);
323
94.7k
}
324
325
void aom_dc_predictor_32x8_c(uint8_t *dst, ptrdiff_t stride,
326
129k
                             const uint8_t *above, const uint8_t *left) {
327
129k
  dc_predictor_rect(dst, stride, 32, 8, above, left, 3, DC_MULTIPLIER_1X4);
328
129k
}
329
330
void aom_dc_predictor_16x32_c(uint8_t *dst, ptrdiff_t stride,
331
86.2k
                              const uint8_t *above, const uint8_t *left) {
332
86.2k
  dc_predictor_rect(dst, stride, 16, 32, above, left, 4, DC_MULTIPLIER_1X2);
333
86.2k
}
334
335
void aom_dc_predictor_32x16_c(uint8_t *dst, ptrdiff_t stride,
336
89.6k
                              const uint8_t *above, const uint8_t *left) {
337
89.6k
  dc_predictor_rect(dst, stride, 32, 16, above, left, 4, DC_MULTIPLIER_1X2);
338
89.6k
}
339
340
void aom_dc_predictor_16x64_c(uint8_t *dst, ptrdiff_t stride,
341
6.42k
                              const uint8_t *above, const uint8_t *left) {
342
6.42k
  dc_predictor_rect(dst, stride, 16, 64, above, left, 4, DC_MULTIPLIER_1X4);
343
6.42k
}
344
345
void aom_dc_predictor_64x16_c(uint8_t *dst, ptrdiff_t stride,
346
5.24k
                              const uint8_t *above, const uint8_t *left) {
347
5.24k
  dc_predictor_rect(dst, stride, 64, 16, above, left, 4, DC_MULTIPLIER_1X4);
348
5.24k
}
349
350
void aom_dc_predictor_32x64_c(uint8_t *dst, ptrdiff_t stride,
351
4.95k
                              const uint8_t *above, const uint8_t *left) {
352
4.95k
  dc_predictor_rect(dst, stride, 32, 64, above, left, 5, DC_MULTIPLIER_1X2);
353
4.95k
}
354
355
void aom_dc_predictor_64x32_c(uint8_t *dst, ptrdiff_t stride,
356
3.50k
                              const uint8_t *above, const uint8_t *left) {
357
3.50k
  dc_predictor_rect(dst, stride, 64, 32, above, left, 5, DC_MULTIPLIER_1X2);
358
3.50k
}
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
466k
                                      const uint16_t *left, int bd) {
366
466k
  int r;
367
466k
  (void)left;
368
466k
  (void)bd;
369
5.14M
  for (r = 0; r < bh; r++) {
370
4.67M
    memcpy(dst, above, bw * sizeof(uint16_t));
371
4.67M
    dst += stride;
372
4.67M
  }
373
466k
}
374
375
static INLINE void highbd_h_predictor(uint16_t *dst, ptrdiff_t stride, int bw,
376
                                      int bh, const uint16_t *above,
377
784k
                                      const uint16_t *left, int bd) {
378
784k
  int r;
379
784k
  (void)above;
380
784k
  (void)bd;
381
8.45M
  for (r = 0; r < bh; r++) {
382
7.66M
    aom_memset16(dst, left[r], bw);
383
7.66M
    dst += stride;
384
7.66M
  }
385
784k
}
386
387
static INLINE void highbd_paeth_predictor(uint16_t *dst, ptrdiff_t stride,
388
                                          int bw, int bh, const uint16_t *above,
389
2.51M
                                          const uint16_t *left, int bd) {
390
2.51M
  int r, c;
391
2.51M
  const uint16_t ytop_left = above[-1];
392
2.51M
  (void)bd;
393
394
47.6M
  for (r = 0; r < bh; r++) {
395
791M
    for (c = 0; c < bw; c++)
396
746M
      dst[c] = paeth_predictor_single(left[r], above[c], ytop_left);
397
45.1M
    dst += stride;
398
45.1M
  }
399
2.51M
}
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.55M
                                           const uint16_t *left, int bd) {
405
1.55M
  (void)bd;
406
1.55M
  const uint16_t below_pred = left[bh - 1];   // estimated by bottom-left pixel
407
1.55M
  const uint16_t right_pred = above[bw - 1];  // estimated by top-right pixel
408
1.55M
  const uint8_t *const sm_weights_w = sm_weight_arrays + bw;
409
1.55M
  const uint8_t *const sm_weights_h = sm_weight_arrays + bh;
410
  // scale = 2 * 2^sm_weight_log2_scale
411
1.55M
  const int log2_scale = 1 + sm_weight_log2_scale;
412
1.55M
  const uint16_t scale = (1 << sm_weight_log2_scale);
413
6.21M
  sm_weights_sanity_checks(sm_weights_w, sm_weights_h, scale,
414
1.55M
                           log2_scale + sizeof(*dst));
415
1.55M
  int r;
416
17.9M
  for (r = 0; r < bh; ++r) {
417
16.4M
    int c;
418
322M
    for (c = 0; c < bw; ++c) {
419
305M
      const uint16_t pixels[] = { above[c], below_pred, left[r], right_pred };
420
305M
      const uint8_t weights[] = { sm_weights_h[r], scale - sm_weights_h[r],
421
305M
                                  sm_weights_w[c], scale - sm_weights_w[c] };
422
305M
      uint32_t this_pred = 0;
423
305M
      int i;
424
305M
      assert(scale >= sm_weights_h[r] && scale >= sm_weights_w[c]);
425
1.52G
      for (i = 0; i < 4; ++i) {
426
1.22G
        this_pred += weights[i] * pixels[i];
427
1.22G
      }
428
305M
      dst[c] = divide_round(this_pred, log2_scale);
429
305M
    }
430
16.4M
    dst += stride;
431
16.4M
  }
432
1.55M
}
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
547k
                                             const uint16_t *left, int bd) {
438
547k
  (void)bd;
439
547k
  const uint16_t below_pred = left[bh - 1];  // estimated by bottom-left pixel
440
547k
  const uint8_t *const sm_weights = sm_weight_arrays + bh;
441
  // scale = 2^sm_weight_log2_scale
442
547k
  const int log2_scale = sm_weight_log2_scale;
443
547k
  const uint16_t scale = (1 << sm_weight_log2_scale);
444
2.18M
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
445
547k
                           log2_scale + sizeof(*dst));
446
447
547k
  int r;
448
6.22M
  for (r = 0; r < bh; r++) {
449
5.67M
    int c;
450
103M
    for (c = 0; c < bw; ++c) {
451
97.8M
      const uint16_t pixels[] = { above[c], below_pred };
452
97.8M
      const uint8_t weights[] = { sm_weights[r], scale - sm_weights[r] };
453
97.8M
      uint32_t this_pred = 0;
454
97.8M
      assert(scale >= sm_weights[r]);
455
97.8M
      int i;
456
293M
      for (i = 0; i < 2; ++i) {
457
195M
        this_pred += weights[i] * pixels[i];
458
195M
      }
459
97.8M
      dst[c] = divide_round(this_pred, log2_scale);
460
97.8M
    }
461
5.67M
    dst += stride;
462
5.67M
  }
463
547k
}
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
605k
                                             const uint16_t *left, int bd) {
469
605k
  (void)bd;
470
605k
  const uint16_t right_pred = above[bw - 1];  // estimated by top-right pixel
471
605k
  const uint8_t *const sm_weights = sm_weight_arrays + bw;
472
  // scale = 2^sm_weight_log2_scale
473
605k
  const int log2_scale = sm_weight_log2_scale;
474
605k
  const uint16_t scale = (1 << sm_weight_log2_scale);
475
2.42M
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
476
605k
                           log2_scale + sizeof(*dst));
477
478
605k
  int r;
479
7.40M
  for (r = 0; r < bh; r++) {
480
6.80M
    int c;
481
135M
    for (c = 0; c < bw; ++c) {
482
128M
      const uint16_t pixels[] = { left[r], right_pred };
483
128M
      const uint8_t weights[] = { sm_weights[c], scale - sm_weights[c] };
484
128M
      uint32_t this_pred = 0;
485
128M
      assert(scale >= sm_weights[c]);
486
128M
      int i;
487
384M
      for (i = 0; i < 2; ++i) {
488
256M
        this_pred += weights[i] * pixels[i];
489
256M
      }
490
128M
      dst[c] = divide_round(this_pred, log2_scale);
491
128M
    }
492
6.80M
    dst += stride;
493
6.80M
  }
494
605k
}
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
33.3k
                                           const uint16_t *left, int bd) {
500
33.3k
  int r;
501
33.3k
  (void)above;
502
33.3k
  (void)left;
503
504
1.23M
  for (r = 0; r < bh; r++) {
505
1.19M
    aom_memset16(dst, 128 << (bd - 8), bw);
506
1.19M
    dst += stride;
507
1.19M
  }
508
33.3k
}
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
317k
                                            const uint16_t *left, int bd) {
514
317k
  int i, r, expected_dc, sum = 0;
515
317k
  (void)above;
516
317k
  (void)bd;
517
518
7.44M
  for (i = 0; i < bh; i++) sum += left[i];
519
317k
  expected_dc = (sum + (bh >> 1)) / bh;
520
521
7.44M
  for (r = 0; r < bh; r++) {
522
7.12M
    aom_memset16(dst, expected_dc, bw);
523
7.12M
    dst += stride;
524
7.12M
  }
525
317k
}
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
300k
                                           const uint16_t *left, int bd) {
531
300k
  int i, r, expected_dc, sum = 0;
532
300k
  (void)left;
533
300k
  (void)bd;
534
535
6.19M
  for (i = 0; i < bw; i++) sum += above[i];
536
300k
  expected_dc = (sum + (bw >> 1)) / bw;
537
538
6.82M
  for (r = 0; r < bh; r++) {
539
6.52M
    aom_memset16(dst, expected_dc, bw);
540
6.52M
    dst += stride;
541
6.52M
  }
542
300k
}
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.72M
                                       const uint16_t *left, int bd) {
547
4.72M
  int i, r, expected_dc, sum = 0;
548
4.72M
  const int count = bw + bh;
549
4.72M
  (void)bd;
550
551
52.2M
  for (i = 0; i < bw; i++) {
552
47.5M
    sum += above[i];
553
47.5M
  }
554
52.2M
  for (i = 0; i < bh; i++) {
555
47.5M
    sum += left[i];
556
47.5M
  }
557
558
4.72M
  expected_dc = (sum + (count >> 1)) / count;
559
560
52.2M
  for (r = 0; r < bh; r++) {
561
47.5M
    aom_memset16(dst, expected_dc, bw);
562
47.5M
    dst += stride;
563
47.5M
  }
564
4.72M
}
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.42M
#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
750k
#define HIGHBD_DC_MULTIPLIER_1X4 0x6667
577
578
2.17M
#define HIGHBD_DC_SHIFT2 17
579
580
static INLINE void highbd_dc_predictor_rect(uint16_t *dst, ptrdiff_t stride,
581
                                            int bw, int bh,
582
                                            const uint16_t *above,
583
                                            const uint16_t *left, int bd,
584
2.17M
                                            int shift1, uint32_t multiplier) {
585
2.17M
  int sum = 0;
586
2.17M
  (void)bd;
587
588
26.6M
  for (int i = 0; i < bw; i++) {
589
24.5M
    sum += above[i];
590
24.5M
  }
591
25.9M
  for (int i = 0; i < bh; i++) {
592
23.7M
    sum += left[i];
593
23.7M
  }
594
595
2.17M
  const int expected_dc = divide_using_multiply_shift(
596
2.17M
      sum + ((bw + bh) >> 1), shift1, multiplier, HIGHBD_DC_SHIFT2);
597
2.17M
  assert(expected_dc < (1 << bd));
598
599
25.9M
  for (int r = 0; r < bh; r++) {
600
23.7M
    aom_memset16(dst, expected_dc, bw);
601
23.7M
    dst += stride;
602
23.7M
  }
603
2.17M
}
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
348k
                                   int bd) {
610
348k
  highbd_dc_predictor_rect(dst, stride, 4, 8, above, left, bd, 2,
611
348k
                           HIGHBD_DC_MULTIPLIER_1X2);
612
348k
}
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
500k
                                   int bd) {
617
500k
  highbd_dc_predictor_rect(dst, stride, 8, 4, above, left, bd, 2,
618
500k
                           HIGHBD_DC_MULTIPLIER_1X2);
619
500k
}
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
281k
                                    int bd) {
624
281k
  highbd_dc_predictor_rect(dst, stride, 4, 16, above, left, bd, 2,
625
281k
                           HIGHBD_DC_MULTIPLIER_1X4);
626
281k
}
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
260k
                                    int bd) {
631
260k
  highbd_dc_predictor_rect(dst, stride, 16, 4, above, left, bd, 2,
632
260k
                           HIGHBD_DC_MULTIPLIER_1X4);
633
260k
}
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
178k
                                    int bd) {
638
178k
  highbd_dc_predictor_rect(dst, stride, 8, 16, above, left, bd, 3,
639
178k
                           HIGHBD_DC_MULTIPLIER_1X2);
640
178k
}
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
234k
                                    int bd) {
645
234k
  highbd_dc_predictor_rect(dst, stride, 16, 8, above, left, bd, 3,
646
234k
                           HIGHBD_DC_MULTIPLIER_1X2);
647
234k
}
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
93.4k
                                    int bd) {
652
93.4k
  highbd_dc_predictor_rect(dst, stride, 8, 32, above, left, bd, 3,
653
93.4k
                           HIGHBD_DC_MULTIPLIER_1X4);
654
93.4k
}
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
95.6k
                                    int bd) {
659
95.6k
  highbd_dc_predictor_rect(dst, stride, 32, 8, above, left, bd, 3,
660
95.6k
                           HIGHBD_DC_MULTIPLIER_1X4);
661
95.6k
}
662
663
void aom_highbd_dc_predictor_16x32_c(uint16_t *dst, ptrdiff_t stride,
664
                                     const uint16_t *above,
665
69.0k
                                     const uint16_t *left, int bd) {
666
69.0k
  highbd_dc_predictor_rect(dst, stride, 16, 32, above, left, bd, 4,
667
69.0k
                           HIGHBD_DC_MULTIPLIER_1X2);
668
69.0k
}
669
670
void aom_highbd_dc_predictor_32x16_c(uint16_t *dst, ptrdiff_t stride,
671
                                     const uint16_t *above,
672
76.2k
                                     const uint16_t *left, int bd) {
673
76.2k
  highbd_dc_predictor_rect(dst, stride, 32, 16, above, left, bd, 4,
674
76.2k
                           HIGHBD_DC_MULTIPLIER_1X2);
675
76.2k
}
676
677
void aom_highbd_dc_predictor_16x64_c(uint16_t *dst, ptrdiff_t stride,
678
                                     const uint16_t *above,
679
11.5k
                                     const uint16_t *left, int bd) {
680
11.5k
  highbd_dc_predictor_rect(dst, stride, 16, 64, above, left, bd, 4,
681
11.5k
                           HIGHBD_DC_MULTIPLIER_1X4);
682
11.5k
}
683
684
void aom_highbd_dc_predictor_64x16_c(uint16_t *dst, ptrdiff_t stride,
685
                                     const uint16_t *above,
686
7.54k
                                     const uint16_t *left, int bd) {
687
7.54k
  highbd_dc_predictor_rect(dst, stride, 64, 16, above, left, bd, 4,
688
7.54k
                           HIGHBD_DC_MULTIPLIER_1X4);
689
7.54k
}
690
691
void aom_highbd_dc_predictor_32x64_c(uint16_t *dst, ptrdiff_t stride,
692
                                     const uint16_t *above,
693
7.53k
                                     const uint16_t *left, int bd) {
694
7.53k
  highbd_dc_predictor_rect(dst, stride, 32, 64, above, left, bd, 5,
695
7.53k
                           HIGHBD_DC_MULTIPLIER_1X2);
696
7.53k
}
697
698
void aom_highbd_dc_predictor_64x32_c(uint16_t *dst, ptrdiff_t stride,
699
                                     const uint16_t *above,
700
5.70k
                                     const uint16_t *left, int bd) {
701
5.70k
  highbd_dc_predictor_rect(dst, stride, 64, 32, above, left, bd, 5,
702
5.70k
                           HIGHBD_DC_MULTIPLIER_1X2);
703
5.70k
}
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
11.2M
      const uint8_t *left) {                                   \
715
11.2M
    type##_predictor(dst, stride, width, height, above, left); \
716
11.2M
  }
aom_v_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_v_predictor_8x8_c
Line
Count
Source
714
81.0k
      const uint8_t *left) {                                   \
715
81.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
81.0k
  }
aom_v_predictor_16x16_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_v_predictor_32x32_c
Line
Count
Source
714
37.3k
      const uint8_t *left) {                                   \
715
37.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
37.3k
  }
aom_v_predictor_64x64_c
Line
Count
Source
714
2.80k
      const uint8_t *left) {                                   \
715
2.80k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.80k
  }
aom_v_predictor_4x8_c
Line
Count
Source
714
33.4k
      const uint8_t *left) {                                   \
715
33.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
33.4k
  }
aom_v_predictor_8x4_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_v_predictor_8x16_c
Line
Count
Source
714
16.6k
      const uint8_t *left) {                                   \
715
16.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
16.6k
  }
aom_v_predictor_16x8_c
Line
Count
Source
714
20.6k
      const uint8_t *left) {                                   \
715
20.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
20.6k
  }
aom_v_predictor_16x32_c
Line
Count
Source
714
5.93k
      const uint8_t *left) {                                   \
715
5.93k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.93k
  }
aom_v_predictor_32x16_c
Line
Count
Source
714
6.44k
      const uint8_t *left) {                                   \
715
6.44k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.44k
  }
aom_v_predictor_32x64_c
Line
Count
Source
714
381
      const uint8_t *left) {                                   \
715
381
    type##_predictor(dst, stride, width, height, above, left); \
716
381
  }
aom_v_predictor_64x32_c
Line
Count
Source
714
382
      const uint8_t *left) {                                   \
715
382
    type##_predictor(dst, stride, width, height, above, left); \
716
382
  }
aom_v_predictor_4x16_c
Line
Count
Source
714
12.2k
      const uint8_t *left) {                                   \
715
12.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
12.2k
  }
aom_v_predictor_16x4_c
Line
Count
Source
714
18.3k
      const uint8_t *left) {                                   \
715
18.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
18.3k
  }
aom_v_predictor_8x32_c
Line
Count
Source
714
5.85k
      const uint8_t *left) {                                   \
715
5.85k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.85k
  }
aom_v_predictor_32x8_c
Line
Count
Source
714
9.22k
      const uint8_t *left) {                                   \
715
9.22k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.22k
  }
aom_v_predictor_16x64_c
Line
Count
Source
714
641
      const uint8_t *left) {                                   \
715
641
    type##_predictor(dst, stride, width, height, above, left); \
716
641
  }
aom_v_predictor_64x16_c
Line
Count
Source
714
508
      const uint8_t *left) {                                   \
715
508
    type##_predictor(dst, stride, width, height, above, left); \
716
508
  }
aom_h_predictor_4x4_c
Line
Count
Source
714
186k
      const uint8_t *left) {                                   \
715
186k
    type##_predictor(dst, stride, width, height, above, left); \
716
186k
  }
aom_h_predictor_8x8_c
Line
Count
Source
714
142k
      const uint8_t *left) {                                   \
715
142k
    type##_predictor(dst, stride, width, height, above, left); \
716
142k
  }
aom_h_predictor_16x16_c
Line
Count
Source
714
67.8k
      const uint8_t *left) {                                   \
715
67.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
67.8k
  }
aom_h_predictor_32x32_c
Line
Count
Source
714
53.6k
      const uint8_t *left) {                                   \
715
53.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
53.6k
  }
aom_h_predictor_64x64_c
Line
Count
Source
714
4.49k
      const uint8_t *left) {                                   \
715
4.49k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.49k
  }
aom_h_predictor_4x8_c
Line
Count
Source
714
52.2k
      const uint8_t *left) {                                   \
715
52.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
52.2k
  }
aom_h_predictor_8x4_c
Line
Count
Source
714
67.4k
      const uint8_t *left) {                                   \
715
67.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
67.4k
  }
aom_h_predictor_8x16_c
Line
Count
Source
714
21.6k
      const uint8_t *left) {                                   \
715
21.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
21.6k
  }
aom_h_predictor_16x8_c
Line
Count
Source
714
30.4k
      const uint8_t *left) {                                   \
715
30.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
30.4k
  }
aom_h_predictor_16x32_c
Line
Count
Source
714
8.34k
      const uint8_t *left) {                                   \
715
8.34k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.34k
  }
aom_h_predictor_32x16_c
Line
Count
Source
714
9.22k
      const uint8_t *left) {                                   \
715
9.22k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.22k
  }
aom_h_predictor_32x64_c
Line
Count
Source
714
511
      const uint8_t *left) {                                   \
715
511
    type##_predictor(dst, stride, width, height, above, left); \
716
511
  }
aom_h_predictor_64x32_c
Line
Count
Source
714
504
      const uint8_t *left) {                                   \
715
504
    type##_predictor(dst, stride, width, height, above, left); \
716
504
  }
aom_h_predictor_4x16_c
Line
Count
Source
714
15.7k
      const uint8_t *left) {                                   \
715
15.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
15.7k
  }
aom_h_predictor_16x4_c
Line
Count
Source
714
26.8k
      const uint8_t *left) {                                   \
715
26.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
26.8k
  }
aom_h_predictor_8x32_c
Line
Count
Source
714
9.45k
      const uint8_t *left) {                                   \
715
9.45k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.45k
  }
aom_h_predictor_32x8_c
Line
Count
Source
714
13.8k
      const uint8_t *left) {                                   \
715
13.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
13.8k
  }
aom_h_predictor_16x64_c
Line
Count
Source
714
932
      const uint8_t *left) {                                   \
715
932
    type##_predictor(dst, stride, width, height, above, left); \
716
932
  }
aom_h_predictor_64x16_c
Line
Count
Source
714
816
      const uint8_t *left) {                                   \
715
816
    type##_predictor(dst, stride, width, height, above, left); \
716
816
  }
aom_smooth_predictor_4x4_c
Line
Count
Source
714
328k
      const uint8_t *left) {                                   \
715
328k
    type##_predictor(dst, stride, width, height, above, left); \
716
328k
  }
aom_smooth_predictor_8x8_c
Line
Count
Source
714
279k
      const uint8_t *left) {                                   \
715
279k
    type##_predictor(dst, stride, width, height, above, left); \
716
279k
  }
aom_smooth_predictor_16x16_c
Line
Count
Source
714
150k
      const uint8_t *left) {                                   \
715
150k
    type##_predictor(dst, stride, width, height, above, left); \
716
150k
  }
aom_smooth_predictor_32x32_c
Line
Count
Source
714
89.7k
      const uint8_t *left) {                                   \
715
89.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
89.7k
  }
aom_smooth_predictor_64x64_c
Line
Count
Source
714
12.9k
      const uint8_t *left) {                                   \
715
12.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
12.9k
  }
aom_smooth_predictor_4x8_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
  }
aom_smooth_predictor_8x4_c
Line
Count
Source
714
86.9k
      const uint8_t *left) {                                   \
715
86.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
86.9k
  }
aom_smooth_predictor_8x16_c
Line
Count
Source
714
55.5k
      const uint8_t *left) {                                   \
715
55.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
55.5k
  }
aom_smooth_predictor_16x8_c
Line
Count
Source
714
77.7k
      const uint8_t *left) {                                   \
715
77.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
77.7k
  }
aom_smooth_predictor_16x32_c
Line
Count
Source
714
18.8k
      const uint8_t *left) {                                   \
715
18.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
18.8k
  }
aom_smooth_predictor_32x16_c
Line
Count
Source
714
20.1k
      const uint8_t *left) {                                   \
715
20.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
20.1k
  }
aom_smooth_predictor_32x64_c
Line
Count
Source
714
1.41k
      const uint8_t *left) {                                   \
715
1.41k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.41k
  }
aom_smooth_predictor_64x32_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_predictor_4x16_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_smooth_predictor_16x4_c
Line
Count
Source
714
65.5k
      const uint8_t *left) {                                   \
715
65.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
65.5k
  }
aom_smooth_predictor_8x32_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_smooth_predictor_32x8_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_16x64_c
Line
Count
Source
714
2.01k
      const uint8_t *left) {                                   \
715
2.01k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.01k
  }
aom_smooth_predictor_64x16_c
Line
Count
Source
714
1.76k
      const uint8_t *left) {                                   \
715
1.76k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.76k
  }
aom_smooth_v_predictor_4x4_c
Line
Count
Source
714
108k
      const uint8_t *left) {                                   \
715
108k
    type##_predictor(dst, stride, width, height, above, left); \
716
108k
  }
aom_smooth_v_predictor_8x8_c
Line
Count
Source
714
82.6k
      const uint8_t *left) {                                   \
715
82.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
82.6k
  }
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
29.8k
      const uint8_t *left) {                                   \
715
29.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
29.8k
  }
aom_smooth_v_predictor_64x64_c
Line
Count
Source
714
4.09k
      const uint8_t *left) {                                   \
715
4.09k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.09k
  }
aom_smooth_v_predictor_4x8_c
Line
Count
Source
714
19.5k
      const uint8_t *left) {                                   \
715
19.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
19.5k
  }
aom_smooth_v_predictor_8x4_c
Line
Count
Source
714
26.5k
      const uint8_t *left) {                                   \
715
26.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
26.5k
  }
aom_smooth_v_predictor_8x16_c
Line
Count
Source
714
17.3k
      const uint8_t *left) {                                   \
715
17.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
17.3k
  }
aom_smooth_v_predictor_16x8_c
Line
Count
Source
714
23.5k
      const uint8_t *left) {                                   \
715
23.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
23.5k
  }
aom_smooth_v_predictor_16x32_c
Line
Count
Source
714
6.03k
      const uint8_t *left) {                                   \
715
6.03k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.03k
  }
aom_smooth_v_predictor_32x16_c
Line
Count
Source
714
6.30k
      const uint8_t *left) {                                   \
715
6.30k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.30k
  }
aom_smooth_v_predictor_32x64_c
Line
Count
Source
714
378
      const uint8_t *left) {                                   \
715
378
    type##_predictor(dst, stride, width, height, above, left); \
716
378
  }
aom_smooth_v_predictor_64x32_c
Line
Count
Source
714
385
      const uint8_t *left) {                                   \
715
385
    type##_predictor(dst, stride, width, height, above, left); \
716
385
  }
aom_smooth_v_predictor_4x16_c
Line
Count
Source
714
11.2k
      const uint8_t *left) {                                   \
715
11.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
11.2k
  }
aom_smooth_v_predictor_16x4_c
Line
Count
Source
714
20.0k
      const uint8_t *left) {                                   \
715
20.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
20.0k
  }
aom_smooth_v_predictor_8x32_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_smooth_v_predictor_32x8_c
Line
Count
Source
714
9.38k
      const uint8_t *left) {                                   \
715
9.38k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.38k
  }
aom_smooth_v_predictor_16x64_c
Line
Count
Source
714
676
      const uint8_t *left) {                                   \
715
676
    type##_predictor(dst, stride, width, height, above, left); \
716
676
  }
aom_smooth_v_predictor_64x16_c
Line
Count
Source
714
428
      const uint8_t *left) {                                   \
715
428
    type##_predictor(dst, stride, width, height, above, left); \
716
428
  }
aom_smooth_h_predictor_4x4_c
Line
Count
Source
714
142k
      const uint8_t *left) {                                   \
715
142k
    type##_predictor(dst, stride, width, height, above, left); \
716
142k
  }
aom_smooth_h_predictor_8x8_c
Line
Count
Source
714
148k
      const uint8_t *left) {                                   \
715
148k
    type##_predictor(dst, stride, width, height, above, left); \
716
148k
  }
aom_smooth_h_predictor_16x16_c
Line
Count
Source
714
74.0k
      const uint8_t *left) {                                   \
715
74.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
74.0k
  }
aom_smooth_h_predictor_32x32_c
Line
Count
Source
714
49.8k
      const uint8_t *left) {                                   \
715
49.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
49.8k
  }
aom_smooth_h_predictor_64x64_c
Line
Count
Source
714
5.45k
      const uint8_t *left) {                                   \
715
5.45k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.45k
  }
aom_smooth_h_predictor_4x8_c
Line
Count
Source
714
34.4k
      const uint8_t *left) {                                   \
715
34.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
34.4k
  }
aom_smooth_h_predictor_8x4_c
Line
Count
Source
714
43.4k
      const uint8_t *left) {                                   \
715
43.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
43.4k
  }
aom_smooth_h_predictor_8x16_c
Line
Count
Source
714
28.7k
      const uint8_t *left) {                                   \
715
28.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
28.7k
  }
aom_smooth_h_predictor_16x8_c
Line
Count
Source
714
38.2k
      const uint8_t *left) {                                   \
715
38.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
38.2k
  }
aom_smooth_h_predictor_16x32_c
Line
Count
Source
714
9.93k
      const uint8_t *left) {                                   \
715
9.93k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.93k
  }
aom_smooth_h_predictor_32x16_c
Line
Count
Source
714
10.5k
      const uint8_t *left) {                                   \
715
10.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
10.5k
  }
aom_smooth_h_predictor_32x64_c
Line
Count
Source
714
469
      const uint8_t *left) {                                   \
715
469
    type##_predictor(dst, stride, width, height, above, left); \
716
469
  }
aom_smooth_h_predictor_64x32_c
Line
Count
Source
714
498
      const uint8_t *left) {                                   \
715
498
    type##_predictor(dst, stride, width, height, above, left); \
716
498
  }
aom_smooth_h_predictor_4x16_c
Line
Count
Source
714
18.5k
      const uint8_t *left) {                                   \
715
18.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
18.5k
  }
aom_smooth_h_predictor_16x4_c
Line
Count
Source
714
33.0k
      const uint8_t *left) {                                   \
715
33.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
33.0k
  }
aom_smooth_h_predictor_8x32_c
Line
Count
Source
714
11.7k
      const uint8_t *left) {                                   \
715
11.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
11.7k
  }
aom_smooth_h_predictor_32x8_c
Line
Count
Source
714
16.3k
      const uint8_t *left) {                                   \
715
16.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
16.3k
  }
aom_smooth_h_predictor_16x64_c
Line
Count
Source
714
749
      const uint8_t *left) {                                   \
715
749
    type##_predictor(dst, stride, width, height, above, left); \
716
749
  }
aom_smooth_h_predictor_64x16_c
Line
Count
Source
714
637
      const uint8_t *left) {                                   \
715
637
    type##_predictor(dst, stride, width, height, above, left); \
716
637
  }
aom_paeth_predictor_4x4_c
Line
Count
Source
714
662k
      const uint8_t *left) {                                   \
715
662k
    type##_predictor(dst, stride, width, height, above, left); \
716
662k
  }
aom_paeth_predictor_8x8_c
Line
Count
Source
714
393k
      const uint8_t *left) {                                   \
715
393k
    type##_predictor(dst, stride, width, height, above, left); \
716
393k
  }
aom_paeth_predictor_16x16_c
Line
Count
Source
714
300k
      const uint8_t *left) {                                   \
715
300k
    type##_predictor(dst, stride, width, height, above, left); \
716
300k
  }
aom_paeth_predictor_32x32_c
Line
Count
Source
714
154k
      const uint8_t *left) {                                   \
715
154k
    type##_predictor(dst, stride, width, height, above, left); \
716
154k
  }
aom_paeth_predictor_64x64_c
Line
Count
Source
714
26.1k
      const uint8_t *left) {                                   \
715
26.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
26.1k
  }
aom_paeth_predictor_4x8_c
Line
Count
Source
714
85.8k
      const uint8_t *left) {                                   \
715
85.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
85.8k
  }
aom_paeth_predictor_8x4_c
Line
Count
Source
714
115k
      const uint8_t *left) {                                   \
715
115k
    type##_predictor(dst, stride, width, height, above, left); \
716
115k
  }
aom_paeth_predictor_8x16_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_paeth_predictor_16x8_c
Line
Count
Source
714
92.4k
      const uint8_t *left) {                                   \
715
92.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
92.4k
  }
aom_paeth_predictor_16x32_c
Line
Count
Source
714
141k
      const uint8_t *left) {                                   \
715
141k
    type##_predictor(dst, stride, width, height, above, left); \
716
141k
  }
aom_paeth_predictor_32x16_c
Line
Count
Source
714
24.1k
      const uint8_t *left) {                                   \
715
24.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
24.1k
  }
aom_paeth_predictor_32x64_c
Line
Count
Source
714
6.43k
      const uint8_t *left) {                                   \
715
6.43k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.43k
  }
aom_paeth_predictor_64x32_c
Line
Count
Source
714
2.02k
      const uint8_t *left) {                                   \
715
2.02k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.02k
  }
aom_paeth_predictor_4x16_c
Line
Count
Source
714
130k
      const uint8_t *left) {                                   \
715
130k
    type##_predictor(dst, stride, width, height, above, left); \
716
130k
  }
aom_paeth_predictor_16x4_c
Line
Count
Source
714
84.1k
      const uint8_t *left) {                                   \
715
84.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
84.1k
  }
aom_paeth_predictor_8x32_c
Line
Count
Source
714
207k
      const uint8_t *left) {                                   \
715
207k
    type##_predictor(dst, stride, width, height, above, left); \
716
207k
  }
aom_paeth_predictor_32x8_c
Line
Count
Source
714
37.0k
      const uint8_t *left) {                                   \
715
37.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
37.0k
  }
aom_paeth_predictor_16x64_c
Line
Count
Source
714
84.0k
      const uint8_t *left) {                                   \
715
84.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
84.0k
  }
aom_paeth_predictor_64x16_c
Line
Count
Source
714
2.37k
      const uint8_t *left) {                                   \
715
2.37k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.37k
  }
aom_dc_128_predictor_4x4_c
Line
Count
Source
714
2.53k
      const uint8_t *left) {                                   \
715
2.53k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.53k
  }
aom_dc_128_predictor_8x8_c
Line
Count
Source
714
1.50k
      const uint8_t *left) {                                   \
715
1.50k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.50k
  }
aom_dc_128_predictor_16x16_c
Line
Count
Source
714
513
      const uint8_t *left) {                                   \
715
513
    type##_predictor(dst, stride, width, height, above, left); \
716
513
  }
aom_dc_128_predictor_32x32_c
Line
Count
Source
714
8.53k
      const uint8_t *left) {                                   \
715
8.53k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.53k
  }
aom_dc_128_predictor_64x64_c
Line
Count
Source
714
3.01k
      const uint8_t *left) {                                   \
715
3.01k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.01k
  }
aom_dc_128_predictor_4x8_c
Line
Count
Source
714
255
      const uint8_t *left) {                                   \
715
255
    type##_predictor(dst, stride, width, height, above, left); \
716
255
  }
aom_dc_128_predictor_8x4_c
Line
Count
Source
714
94
      const uint8_t *left) {                                   \
715
94
    type##_predictor(dst, stride, width, height, above, left); \
716
94
  }
aom_dc_128_predictor_8x16_c
Line
Count
Source
714
376
      const uint8_t *left) {                                   \
715
376
    type##_predictor(dst, stride, width, height, above, left); \
716
376
  }
aom_dc_128_predictor_16x8_c
Line
Count
Source
714
1.86k
      const uint8_t *left) {                                   \
715
1.86k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.86k
  }
aom_dc_128_predictor_16x32_c
Line
Count
Source
714
1.18k
      const uint8_t *left) {                                   \
715
1.18k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.18k
  }
aom_dc_128_predictor_32x16_c
Line
Count
Source
714
555
      const uint8_t *left) {                                   \
715
555
    type##_predictor(dst, stride, width, height, above, left); \
716
555
  }
aom_dc_128_predictor_32x64_c
Line
Count
Source
714
407
      const uint8_t *left) {                                   \
715
407
    type##_predictor(dst, stride, width, height, above, left); \
716
407
  }
aom_dc_128_predictor_64x32_c
Line
Count
Source
714
255
      const uint8_t *left) {                                   \
715
255
    type##_predictor(dst, stride, width, height, above, left); \
716
255
  }
aom_dc_128_predictor_4x16_c
Line
Count
Source
714
729
      const uint8_t *left) {                                   \
715
729
    type##_predictor(dst, stride, width, height, above, left); \
716
729
  }
aom_dc_128_predictor_16x4_c
Line
Count
Source
714
38
      const uint8_t *left) {                                   \
715
38
    type##_predictor(dst, stride, width, height, above, left); \
716
38
  }
aom_dc_128_predictor_8x32_c
Line
Count
Source
714
236
      const uint8_t *left) {                                   \
715
236
    type##_predictor(dst, stride, width, height, above, left); \
716
236
  }
aom_dc_128_predictor_32x8_c
Line
Count
Source
714
148
      const uint8_t *left) {                                   \
715
148
    type##_predictor(dst, stride, width, height, above, left); \
716
148
  }
aom_dc_128_predictor_16x64_c
Line
Count
Source
714
65
      const uint8_t *left) {                                   \
715
65
    type##_predictor(dst, stride, width, height, above, left); \
716
65
  }
aom_dc_128_predictor_64x16_c
Line
Count
Source
714
8
      const uint8_t *left) {                                   \
715
8
    type##_predictor(dst, stride, width, height, above, left); \
716
8
  }
aom_dc_left_predictor_4x4_c
Line
Count
Source
714
57.5k
      const uint8_t *left) {                                   \
715
57.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
57.5k
  }
aom_dc_left_predictor_8x8_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_16x16_c
Line
Count
Source
714
21.6k
      const uint8_t *left) {                                   \
715
21.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
21.6k
  }
aom_dc_left_predictor_32x32_c
Line
Count
Source
714
78.8k
      const uint8_t *left) {                                   \
715
78.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
78.8k
  }
aom_dc_left_predictor_64x64_c
Line
Count
Source
714
13.8k
      const uint8_t *left) {                                   \
715
13.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
13.8k
  }
aom_dc_left_predictor_4x8_c
Line
Count
Source
714
5.05k
      const uint8_t *left) {                                   \
715
5.05k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.05k
  }
aom_dc_left_predictor_8x4_c
Line
Count
Source
714
5.43k
      const uint8_t *left) {                                   \
715
5.43k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.43k
  }
aom_dc_left_predictor_8x16_c
Line
Count
Source
714
4.11k
      const uint8_t *left) {                                   \
715
4.11k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.11k
  }
aom_dc_left_predictor_16x8_c
Line
Count
Source
714
8.19k
      const uint8_t *left) {                                   \
715
8.19k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.19k
  }
aom_dc_left_predictor_16x32_c
Line
Count
Source
714
5.01k
      const uint8_t *left) {                                   \
715
5.01k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.01k
  }
aom_dc_left_predictor_32x16_c
Line
Count
Source
714
8.58k
      const uint8_t *left) {                                   \
715
8.58k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.58k
  }
aom_dc_left_predictor_32x64_c
Line
Count
Source
714
710
      const uint8_t *left) {                                   \
715
710
    type##_predictor(dst, stride, width, height, above, left); \
716
710
  }
aom_dc_left_predictor_64x32_c
Line
Count
Source
714
1.95k
      const uint8_t *left) {                                   \
715
1.95k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.95k
  }
aom_dc_left_predictor_4x16_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_dc_left_predictor_16x4_c
Line
Count
Source
714
1.66k
      const uint8_t *left) {                                   \
715
1.66k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.66k
  }
aom_dc_left_predictor_8x32_c
Line
Count
Source
714
5.71k
      const uint8_t *left) {                                   \
715
5.71k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.71k
  }
aom_dc_left_predictor_32x8_c
Line
Count
Source
714
2.34k
      const uint8_t *left) {                                   \
715
2.34k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.34k
  }
aom_dc_left_predictor_16x64_c
Line
Count
Source
714
810
      const uint8_t *left) {                                   \
715
810
    type##_predictor(dst, stride, width, height, above, left); \
716
810
  }
aom_dc_left_predictor_64x16_c
Line
Count
Source
714
488
      const uint8_t *left) {                                   \
715
488
    type##_predictor(dst, stride, width, height, above, left); \
716
488
  }
aom_dc_top_predictor_4x4_c
Line
Count
Source
714
48.7k
      const uint8_t *left) {                                   \
715
48.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
48.7k
  }
aom_dc_top_predictor_8x8_c
Line
Count
Source
714
18.0k
      const uint8_t *left) {                                   \
715
18.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
18.0k
  }
aom_dc_top_predictor_16x16_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_dc_top_predictor_32x32_c
Line
Count
Source
714
71.2k
      const uint8_t *left) {                                   \
715
71.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
71.2k
  }
aom_dc_top_predictor_64x64_c
Line
Count
Source
714
12.8k
      const uint8_t *left) {                                   \
715
12.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
12.8k
  }
aom_dc_top_predictor_4x8_c
Line
Count
Source
714
43.8k
      const uint8_t *left) {                                   \
715
43.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
43.8k
  }
aom_dc_top_predictor_8x4_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_dc_top_predictor_8x16_c
Line
Count
Source
714
16.6k
      const uint8_t *left) {                                   \
715
16.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
16.6k
  }
aom_dc_top_predictor_16x8_c
Line
Count
Source
714
5.63k
      const uint8_t *left) {                                   \
715
5.63k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.63k
  }
aom_dc_top_predictor_16x32_c
Line
Count
Source
714
22.4k
      const uint8_t *left) {                                   \
715
22.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
22.4k
  }
aom_dc_top_predictor_32x16_c
Line
Count
Source
714
2.97k
      const uint8_t *left) {                                   \
715
2.97k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.97k
  }
aom_dc_top_predictor_32x64_c
Line
Count
Source
714
7.11k
      const uint8_t *left) {                                   \
715
7.11k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.11k
  }
aom_dc_top_predictor_64x32_c
Line
Count
Source
714
536
      const uint8_t *left) {                                   \
715
536
    type##_predictor(dst, stride, width, height, above, left); \
716
536
  }
aom_dc_top_predictor_4x16_c
Line
Count
Source
714
22.2k
      const uint8_t *left) {                                   \
715
22.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
22.2k
  }
aom_dc_top_predictor_16x4_c
Line
Count
Source
714
5.00k
      const uint8_t *left) {                                   \
715
5.00k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.00k
  }
aom_dc_top_predictor_8x32_c
Line
Count
Source
714
3.53k
      const uint8_t *left) {                                   \
715
3.53k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.53k
  }
aom_dc_top_predictor_32x8_c
Line
Count
Source
714
3.01k
      const uint8_t *left) {                                   \
715
3.01k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.01k
  }
aom_dc_top_predictor_16x64_c
Line
Count
Source
714
361
      const uint8_t *left) {                                   \
715
361
    type##_predictor(dst, stride, width, height, above, left); \
716
361
  }
aom_dc_top_predictor_64x16_c
Line
Count
Source
714
462
      const uint8_t *left) {                                   \
715
462
    type##_predictor(dst, stride, width, height, above, left); \
716
462
  }
aom_dc_predictor_4x4_c
Line
Count
Source
714
2.04M
      const uint8_t *left) {                                   \
715
2.04M
    type##_predictor(dst, stride, width, height, above, left); \
716
2.04M
  }
aom_dc_predictor_8x8_c
Line
Count
Source
714
965k
      const uint8_t *left) {                                   \
715
965k
    type##_predictor(dst, stride, width, height, above, left); \
716
965k
  }
aom_dc_predictor_16x16_c
Line
Count
Source
714
551k
      const uint8_t *left) {                                   \
715
551k
    type##_predictor(dst, stride, width, height, above, left); \
716
551k
  }
aom_dc_predictor_32x32_c
Line
Count
Source
714
744k
      const uint8_t *left) {                                   \
715
744k
    type##_predictor(dst, stride, width, height, above, left); \
716
744k
  }
aom_dc_predictor_64x64_c
Line
Count
Source
714
59.6k
      const uint8_t *left) {                                   \
715
59.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
59.6k
  }
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
11.8M
      const uint16_t *left, int bd) {                                       \
722
11.8M
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
11.8M
  }
aom_highbd_v_predictor_4x4_c
Line
Count
Source
721
137k
      const uint16_t *left, int bd) {                                       \
722
137k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
137k
  }
aom_highbd_v_predictor_8x8_c
Line
Count
Source
721
80.9k
      const uint16_t *left, int bd) {                                       \
722
80.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
80.9k
  }
aom_highbd_v_predictor_16x16_c
Line
Count
Source
721
38.3k
      const uint16_t *left, int bd) {                                       \
722
38.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
38.3k
  }
aom_highbd_v_predictor_32x32_c
Line
Count
Source
721
29.4k
      const uint16_t *left, int bd) {                                       \
722
29.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
29.4k
  }
aom_highbd_v_predictor_64x64_c
Line
Count
Source
721
2.45k
      const uint16_t *left, int bd) {                                       \
722
2.45k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.45k
  }
aom_highbd_v_predictor_4x8_c
Line
Count
Source
721
34.4k
      const uint16_t *left, int bd) {                                       \
722
34.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
34.4k
  }
aom_highbd_v_predictor_8x4_c
Line
Count
Source
721
48.5k
      const uint16_t *left, int bd) {                                       \
722
48.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
48.5k
  }
aom_highbd_v_predictor_8x16_c
Line
Count
Source
721
14.7k
      const uint16_t *left, int bd) {                                       \
722
14.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
14.7k
  }
aom_highbd_v_predictor_16x8_c
Line
Count
Source
721
19.8k
      const uint16_t *left, int bd) {                                       \
722
19.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
19.8k
  }
aom_highbd_v_predictor_16x32_c
Line
Count
Source
721
5.31k
      const uint16_t *left, int bd) {                                       \
722
5.31k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.31k
  }
aom_highbd_v_predictor_32x16_c
Line
Count
Source
721
6.08k
      const uint16_t *left, int bd) {                                       \
722
6.08k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.08k
  }
aom_highbd_v_predictor_32x64_c
Line
Count
Source
721
545
      const uint16_t *left, int bd) {                                       \
722
545
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
545
  }
aom_highbd_v_predictor_64x32_c
Line
Count
Source
721
454
      const uint16_t *left, int bd) {                                       \
722
454
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
454
  }
aom_highbd_v_predictor_4x16_c
Line
Count
Source
721
11.4k
      const uint16_t *left, int bd) {                                       \
722
11.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
11.4k
  }
aom_highbd_v_predictor_16x4_c
Line
Count
Source
721
21.1k
      const uint16_t *left, int bd) {                                       \
722
21.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
21.1k
  }
aom_highbd_v_predictor_8x32_c
Line
Count
Source
721
5.96k
      const uint16_t *left, int bd) {                                       \
722
5.96k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.96k
  }
aom_highbd_v_predictor_32x8_c
Line
Count
Source
721
7.56k
      const uint16_t *left, int bd) {                                       \
722
7.56k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.56k
  }
aom_highbd_v_predictor_16x64_c
Line
Count
Source
721
816
      const uint16_t *left, int bd) {                                       \
722
816
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
816
  }
aom_highbd_v_predictor_64x16_c
Line
Count
Source
721
695
      const uint16_t *left, int bd) {                                       \
722
695
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
695
  }
aom_highbd_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
138k
      const uint16_t *left, int bd) {                                       \
722
138k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
138k
  }
aom_highbd_h_predictor_16x16_c
Line
Count
Source
721
62.5k
      const uint16_t *left, int bd) {                                       \
722
62.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
62.5k
  }
aom_highbd_h_predictor_32x32_c
Line
Count
Source
721
37.6k
      const uint16_t *left, int bd) {                                       \
722
37.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
37.6k
  }
aom_highbd_h_predictor_64x64_c
Line
Count
Source
721
5.97k
      const uint16_t *left, int bd) {                                       \
722
5.97k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.97k
  }
aom_highbd_h_predictor_4x8_c
Line
Count
Source
721
59.6k
      const uint16_t *left, int bd) {                                       \
722
59.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
59.6k
  }
aom_highbd_h_predictor_8x4_c
Line
Count
Source
721
84.8k
      const uint16_t *left, int bd) {                                       \
722
84.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
84.8k
  }
aom_highbd_h_predictor_8x16_c
Line
Count
Source
721
23.9k
      const uint16_t *left, int bd) {                                       \
722
23.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
23.9k
  }
aom_highbd_h_predictor_16x8_c
Line
Count
Source
721
33.8k
      const uint16_t *left, int bd) {                                       \
722
33.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
33.8k
  }
aom_highbd_h_predictor_16x32_c
Line
Count
Source
721
9.21k
      const uint16_t *left, int bd) {                                       \
722
9.21k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.21k
  }
aom_highbd_h_predictor_32x16_c
Line
Count
Source
721
10.5k
      const uint16_t *left, int bd) {                                       \
722
10.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
10.5k
  }
aom_highbd_h_predictor_32x64_c
Line
Count
Source
721
802
      const uint16_t *left, int bd) {                                       \
722
802
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
802
  }
aom_highbd_h_predictor_64x32_c
Line
Count
Source
721
819
      const uint16_t *left, int bd) {                                       \
722
819
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
819
  }
aom_highbd_h_predictor_4x16_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_h_predictor_16x4_c
Line
Count
Source
721
34.8k
      const uint16_t *left, int bd) {                                       \
722
34.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
34.8k
  }
aom_highbd_h_predictor_8x32_c
Line
Count
Source
721
10.6k
      const uint16_t *left, int bd) {                                       \
722
10.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
10.6k
  }
aom_highbd_h_predictor_32x8_c
Line
Count
Source
721
13.2k
      const uint16_t *left, int bd) {                                       \
722
13.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.2k
  }
aom_highbd_h_predictor_16x64_c
Line
Count
Source
721
1.77k
      const uint16_t *left, int bd) {                                       \
722
1.77k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.77k
  }
aom_highbd_h_predictor_64x16_c
Line
Count
Source
721
1.25k
      const uint16_t *left, int bd) {                                       \
722
1.25k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.25k
  }
aom_highbd_smooth_predictor_4x4_c
Line
Count
Source
721
437k
      const uint16_t *left, int bd) {                                       \
722
437k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
437k
  }
aom_highbd_smooth_predictor_8x8_c
Line
Count
Source
721
295k
      const uint16_t *left, int bd) {                                       \
722
295k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
295k
  }
aom_highbd_smooth_predictor_16x16_c
Line
Count
Source
721
141k
      const uint16_t *left, int bd) {                                       \
722
141k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
141k
  }
aom_highbd_smooth_predictor_32x32_c
Line
Count
Source
721
83.5k
      const uint16_t *left, int bd) {                                       \
722
83.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
83.5k
  }
aom_highbd_smooth_predictor_64x64_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_predictor_4x8_c
Line
Count
Source
721
86.7k
      const uint16_t *left, int bd) {                                       \
722
86.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
86.7k
  }
aom_highbd_smooth_predictor_8x4_c
Line
Count
Source
721
133k
      const uint16_t *left, int bd) {                                       \
722
133k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
133k
  }
aom_highbd_smooth_predictor_8x16_c
Line
Count
Source
721
57.2k
      const uint16_t *left, int bd) {                                       \
722
57.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
57.2k
  }
aom_highbd_smooth_predictor_16x8_c
Line
Count
Source
721
76.2k
      const uint16_t *left, int bd) {                                       \
722
76.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
76.2k
  }
aom_highbd_smooth_predictor_16x32_c
Line
Count
Source
721
19.0k
      const uint16_t *left, int bd) {                                       \
722
19.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
19.0k
  }
aom_highbd_smooth_predictor_32x16_c
Line
Count
Source
721
21.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.14k
      const uint16_t *left, int bd) {                                       \
722
2.14k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.14k
  }
aom_highbd_smooth_predictor_64x32_c
Line
Count
Source
721
2.36k
      const uint16_t *left, int bd) {                                       \
722
2.36k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.36k
  }
aom_highbd_smooth_predictor_4x16_c
Line
Count
Source
721
43.1k
      const uint16_t *left, int bd) {                                       \
722
43.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
43.1k
  }
aom_highbd_smooth_predictor_16x4_c
Line
Count
Source
721
75.8k
      const uint16_t *left, int bd) {                                       \
722
75.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
75.8k
  }
aom_highbd_smooth_predictor_8x32_c
Line
Count
Source
721
22.2k
      const uint16_t *left, int bd) {                                       \
722
22.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
22.2k
  }
aom_highbd_smooth_predictor_32x8_c
Line
Count
Source
721
28.3k
      const uint16_t *left, int bd) {                                       \
722
28.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
28.3k
  }
aom_highbd_smooth_predictor_16x64_c
Line
Count
Source
721
4.21k
      const uint16_t *left, int bd) {                                       \
722
4.21k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.21k
  }
aom_highbd_smooth_predictor_64x16_c
Line
Count
Source
721
2.73k
      const uint16_t *left, int bd) {                                       \
722
2.73k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.73k
  }
aom_highbd_smooth_v_predictor_4x4_c
Line
Count
Source
721
159k
      const uint16_t *left, int bd) {                                       \
722
159k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
159k
  }
aom_highbd_smooth_v_predictor_8x8_c
Line
Count
Source
721
93.0k
      const uint16_t *left, int bd) {                                       \
722
93.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
93.0k
  }
aom_highbd_smooth_v_predictor_16x16_c
Line
Count
Source
721
51.9k
      const uint16_t *left, int bd) {                                       \
722
51.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
51.9k
  }
aom_highbd_smooth_v_predictor_32x32_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_smooth_v_predictor_64x64_c
Line
Count
Source
721
4.10k
      const uint16_t *left, int bd) {                                       \
722
4.10k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.10k
  }
aom_highbd_smooth_v_predictor_4x8_c
Line
Count
Source
721
31.3k
      const uint16_t *left, int bd) {                                       \
722
31.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
31.3k
  }
aom_highbd_smooth_v_predictor_8x4_c
Line
Count
Source
721
47.0k
      const uint16_t *left, int bd) {                                       \
722
47.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
47.0k
  }
aom_highbd_smooth_v_predictor_8x16_c
Line
Count
Source
721
21.3k
      const uint16_t *left, int bd) {                                       \
722
21.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
21.3k
  }
aom_highbd_smooth_v_predictor_16x8_c
Line
Count
Source
721
28.3k
      const uint16_t *left, int bd) {                                       \
722
28.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
28.3k
  }
aom_highbd_smooth_v_predictor_16x32_c
Line
Count
Source
721
7.22k
      const uint16_t *left, int bd) {                                       \
722
7.22k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.22k
  }
aom_highbd_smooth_v_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_v_predictor_32x64_c
Line
Count
Source
721
588
      const uint16_t *left, int bd) {                                       \
722
588
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
588
  }
aom_highbd_smooth_v_predictor_64x32_c
Line
Count
Source
721
807
      const uint16_t *left, int bd) {                                       \
722
807
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
807
  }
aom_highbd_smooth_v_predictor_4x16_c
Line
Count
Source
721
16.8k
      const uint16_t *left, int bd) {                                       \
722
16.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
16.8k
  }
aom_highbd_smooth_v_predictor_16x4_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_8x32_c
Line
Count
Source
721
8.66k
      const uint16_t *left, int bd) {                                       \
722
8.66k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.66k
  }
aom_highbd_smooth_v_predictor_32x8_c
Line
Count
Source
721
10.4k
      const uint16_t *left, int bd) {                                       \
722
10.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
10.4k
  }
aom_highbd_smooth_v_predictor_16x64_c
Line
Count
Source
721
1.48k
      const uint16_t *left, int bd) {                                       \
722
1.48k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.48k
  }
aom_highbd_smooth_v_predictor_64x16_c
Line
Count
Source
721
685
      const uint16_t *left, int bd) {                                       \
722
685
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
685
  }
aom_highbd_smooth_h_predictor_4x4_c
Line
Count
Source
721
140k
      const uint16_t *left, int bd) {                                       \
722
140k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
140k
  }
aom_highbd_smooth_h_predictor_8x8_c
Line
Count
Source
721
119k
      const uint16_t *left, int bd) {                                       \
722
119k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
119k
  }
aom_highbd_smooth_h_predictor_16x16_c
Line
Count
Source
721
60.0k
      const uint16_t *left, int bd) {                                       \
722
60.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
60.0k
  }
aom_highbd_smooth_h_predictor_32x32_c
Line
Count
Source
721
42.5k
      const uint16_t *left, int bd) {                                       \
722
42.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
42.5k
  }
aom_highbd_smooth_h_predictor_64x64_c
Line
Count
Source
721
6.16k
      const uint16_t *left, int bd) {                                       \
722
6.16k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.16k
  }
aom_highbd_smooth_h_predictor_4x8_c
Line
Count
Source
721
37.2k
      const uint16_t *left, int bd) {                                       \
722
37.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
37.2k
  }
aom_highbd_smooth_h_predictor_8x4_c
Line
Count
Source
721
55.6k
      const uint16_t *left, int bd) {                                       \
722
55.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
55.6k
  }
aom_highbd_smooth_h_predictor_8x16_c
Line
Count
Source
721
21.8k
      const uint16_t *left, int bd) {                                       \
722
21.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
21.8k
  }
aom_highbd_smooth_h_predictor_16x8_c
Line
Count
Source
721
29.7k
      const uint16_t *left, int bd) {                                       \
722
29.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
29.7k
  }
aom_highbd_smooth_h_predictor_16x32_c
Line
Count
Source
721
9.31k
      const uint16_t *left, int bd) {                                       \
722
9.31k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.31k
  }
aom_highbd_smooth_h_predictor_32x16_c
Line
Count
Source
721
9.39k
      const uint16_t *left, int bd) {                                       \
722
9.39k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.39k
  }
aom_highbd_smooth_h_predictor_32x64_c
Line
Count
Source
721
800
      const uint16_t *left, int bd) {                                       \
722
800
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
800
  }
aom_highbd_smooth_h_predictor_64x32_c
Line
Count
Source
721
971
      const uint16_t *left, int bd) {                                       \
722
971
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
971
  }
aom_highbd_smooth_h_predictor_4x16_c
Line
Count
Source
721
17.5k
      const uint16_t *left, int bd) {                                       \
722
17.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
17.5k
  }
aom_highbd_smooth_h_predictor_16x4_c
Line
Count
Source
721
30.8k
      const uint16_t *left, int bd) {                                       \
722
30.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
30.8k
  }
aom_highbd_smooth_h_predictor_8x32_c
Line
Count
Source
721
8.60k
      const uint16_t *left, int bd) {                                       \
722
8.60k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.60k
  }
aom_highbd_smooth_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_smooth_h_predictor_16x64_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_h_predictor_64x16_c
Line
Count
Source
721
869
      const uint16_t *left, int bd) {                                       \
722
869
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
869
  }
aom_highbd_paeth_predictor_4x4_c
Line
Count
Source
721
563k
      const uint16_t *left, int bd) {                                       \
722
563k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
563k
  }
aom_highbd_paeth_predictor_8x8_c
Line
Count
Source
721
319k
      const uint16_t *left, int bd) {                                       \
722
319k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
319k
  }
aom_highbd_paeth_predictor_16x16_c
Line
Count
Source
721
213k
      const uint16_t *left, int bd) {                                       \
722
213k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
213k
  }
aom_highbd_paeth_predictor_32x32_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_paeth_predictor_64x64_c
Line
Count
Source
721
30.8k
      const uint16_t *left, int bd) {                                       \
722
30.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
30.8k
  }
aom_highbd_paeth_predictor_4x8_c
Line
Count
Source
721
90.2k
      const uint16_t *left, int bd) {                                       \
722
90.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
90.2k
  }
aom_highbd_paeth_predictor_8x4_c
Line
Count
Source
721
137k
      const uint16_t *left, int bd) {                                       \
722
137k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
137k
  }
aom_highbd_paeth_predictor_8x16_c
Line
Count
Source
721
57.1k
      const uint16_t *left, int bd) {                                       \
722
57.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
57.1k
  }
aom_highbd_paeth_predictor_16x8_c
Line
Count
Source
721
84.8k
      const uint16_t *left, int bd) {                                       \
722
84.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
84.8k
  }
aom_highbd_paeth_predictor_16x32_c
Line
Count
Source
721
224k
      const uint16_t *left, int bd) {                                       \
722
224k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
224k
  }
aom_highbd_paeth_predictor_32x16_c
Line
Count
Source
721
21.8k
      const uint16_t *left, int bd) {                                       \
722
21.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
21.8k
  }
aom_highbd_paeth_predictor_32x64_c
Line
Count
Source
721
5.53k
      const uint16_t *left, int bd) {                                       \
722
5.53k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.53k
  }
aom_highbd_paeth_predictor_64x32_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_paeth_predictor_4x16_c
Line
Count
Source
721
123k
      const uint16_t *left, int bd) {                                       \
722
123k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
123k
  }
aom_highbd_paeth_predictor_16x4_c
Line
Count
Source
721
78.1k
      const uint16_t *left, int bd) {                                       \
722
78.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
78.1k
  }
aom_highbd_paeth_predictor_8x32_c
Line
Count
Source
721
257k
      const uint16_t *left, int bd) {                                       \
722
257k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
257k
  }
aom_highbd_paeth_predictor_32x8_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_paeth_predictor_16x64_c
Line
Count
Source
721
145k
      const uint16_t *left, int bd) {                                       \
722
145k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
145k
  }
aom_highbd_paeth_predictor_64x16_c
Line
Count
Source
721
2.69k
      const uint16_t *left, int bd) {                                       \
722
2.69k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.69k
  }
aom_highbd_dc_128_predictor_4x4_c
Line
Count
Source
721
1.17k
      const uint16_t *left, int bd) {                                       \
722
1.17k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.17k
  }
aom_highbd_dc_128_predictor_8x8_c
Line
Count
Source
721
1.05k
      const uint16_t *left, int bd) {                                       \
722
1.05k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.05k
  }
aom_highbd_dc_128_predictor_16x16_c
Line
Count
Source
721
695
      const uint16_t *left, int bd) {                                       \
722
695
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
695
  }
aom_highbd_dc_128_predictor_32x32_c
Line
Count
Source
721
15.6k
      const uint16_t *left, int bd) {                                       \
722
15.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
15.6k
  }
aom_highbd_dc_128_predictor_64x64_c
Line
Count
Source
721
6.40k
      const uint16_t *left, int bd) {                                       \
722
6.40k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.40k
  }
aom_highbd_dc_128_predictor_4x8_c
Line
Count
Source
721
237
      const uint16_t *left, int bd) {                                       \
722
237
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
237
  }
aom_highbd_dc_128_predictor_8x4_c
Line
Count
Source
721
80
      const uint16_t *left, int bd) {                                       \
722
80
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
80
  }
aom_highbd_dc_128_predictor_8x16_c
Line
Count
Source
721
597
      const uint16_t *left, int bd) {                                       \
722
597
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
597
  }
aom_highbd_dc_128_predictor_16x8_c
Line
Count
Source
721
375
      const uint16_t *left, int bd) {                                       \
722
375
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
375
  }
aom_highbd_dc_128_predictor_16x32_c
Line
Count
Source
721
2.32k
      const uint16_t *left, int bd) {                                       \
722
2.32k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.32k
  }
aom_highbd_dc_128_predictor_32x16_c
Line
Count
Source
721
361
      const uint16_t *left, int bd) {                                       \
722
361
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
361
  }
aom_highbd_dc_128_predictor_32x64_c
Line
Count
Source
721
391
      const uint16_t *left, int bd) {                                       \
722
391
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
391
  }
aom_highbd_dc_128_predictor_64x32_c
Line
Count
Source
721
599
      const uint16_t *left, int bd) {                                       \
722
599
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
599
  }
aom_highbd_dc_128_predictor_4x16_c
Line
Count
Source
721
764
      const uint16_t *left, int bd) {                                       \
722
764
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
764
  }
aom_highbd_dc_128_predictor_16x4_c
Line
Count
Source
721
38
      const uint16_t *left, int bd) {                                       \
722
38
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
38
  }
aom_highbd_dc_128_predictor_8x32_c
Line
Count
Source
721
1.22k
      const uint16_t *left, int bd) {                                       \
722
1.22k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.22k
  }
aom_highbd_dc_128_predictor_32x8_c
Line
Count
Source
721
180
      const uint16_t *left, int bd) {                                       \
722
180
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
180
  }
aom_highbd_dc_128_predictor_16x64_c
Line
Count
Source
721
1.11k
      const uint16_t *left, int bd) {                                       \
722
1.11k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.11k
  }
aom_highbd_dc_128_predictor_64x16_c
Line
Count
Source
721
21
      const uint16_t *left, int bd) {                                       \
722
21
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
21
  }
aom_highbd_dc_left_predictor_4x4_c
Line
Count
Source
721
80.1k
      const uint16_t *left, int bd) {                                       \
722
80.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
80.1k
  }
aom_highbd_dc_left_predictor_8x8_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_16x16_c
Line
Count
Source
721
24.3k
      const uint16_t *left, int bd) {                                       \
722
24.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
24.3k
  }
aom_highbd_dc_left_predictor_32x32_c
Line
Count
Source
721
103k
      const uint16_t *left, int bd) {                                       \
722
103k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
103k
  }
aom_highbd_dc_left_predictor_64x64_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_left_predictor_4x8_c
Line
Count
Source
721
5.07k
      const uint16_t *left, int bd) {                                       \
722
5.07k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.07k
  }
aom_highbd_dc_left_predictor_8x4_c
Line
Count
Source
721
5.60k
      const uint16_t *left, int bd) {                                       \
722
5.60k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.60k
  }
aom_highbd_dc_left_predictor_8x16_c
Line
Count
Source
721
5.69k
      const uint16_t *left, int bd) {                                       \
722
5.69k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.69k
  }
aom_highbd_dc_left_predictor_16x8_c
Line
Count
Source
721
7.73k
      const uint16_t *left, int bd) {                                       \
722
7.73k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.73k
  }
aom_highbd_dc_left_predictor_16x32_c
Line
Count
Source
721
10.4k
      const uint16_t *left, int bd) {                                       \
722
10.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
10.4k
  }
aom_highbd_dc_left_predictor_32x16_c
Line
Count
Source
721
6.97k
      const uint16_t *left, int bd) {                                       \
722
6.97k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.97k
  }
aom_highbd_dc_left_predictor_32x64_c
Line
Count
Source
721
1.47k
      const uint16_t *left, int bd) {                                       \
722
1.47k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.47k
  }
aom_highbd_dc_left_predictor_64x32_c
Line
Count
Source
721
2.13k
      const uint16_t *left, int bd) {                                       \
722
2.13k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.13k
  }
aom_highbd_dc_left_predictor_4x16_c
Line
Count
Source
721
13.0k
      const uint16_t *left, int bd) {                                       \
722
13.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.0k
  }
aom_highbd_dc_left_predictor_16x4_c
Line
Count
Source
721
2.23k
      const uint16_t *left, int bd) {                                       \
722
2.23k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.23k
  }
aom_highbd_dc_left_predictor_8x32_c
Line
Count
Source
721
7.95k
      const uint16_t *left, int bd) {                                       \
722
7.95k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.95k
  }
aom_highbd_dc_left_predictor_32x8_c
Line
Count
Source
721
2.20k
      const uint16_t *left, int bd) {                                       \
722
2.20k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.20k
  }
aom_highbd_dc_left_predictor_16x64_c
Line
Count
Source
721
2.74k
      const uint16_t *left, int bd) {                                       \
722
2.74k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.74k
  }
aom_highbd_dc_left_predictor_64x16_c
Line
Count
Source
721
633
      const uint16_t *left, int bd) {                                       \
722
633
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
633
  }
aom_highbd_dc_top_predictor_4x4_c
Line
Count
Source
721
36.7k
      const uint16_t *left, int bd) {                                       \
722
36.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
36.7k
  }
aom_highbd_dc_top_predictor_8x8_c
Line
Count
Source
721
16.9k
      const uint16_t *left, int bd) {                                       \
722
16.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
16.9k
  }
aom_highbd_dc_top_predictor_16x16_c
Line
Count
Source
721
22.5k
      const uint16_t *left, int bd) {                                       \
722
22.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
22.5k
  }
aom_highbd_dc_top_predictor_32x32_c
Line
Count
Source
721
76.4k
      const uint16_t *left, int bd) {                                       \
722
76.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
76.4k
  }
aom_highbd_dc_top_predictor_64x64_c
Line
Count
Source
721
19.5k
      const uint16_t *left, int bd) {                                       \
722
19.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
19.5k
  }
aom_highbd_dc_top_predictor_4x8_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_8x4_c
Line
Count
Source
721
10.6k
      const uint16_t *left, int bd) {                                       \
722
10.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
10.6k
  }
aom_highbd_dc_top_predictor_8x16_c
Line
Count
Source
721
13.0k
      const uint16_t *left, int bd) {                                       \
722
13.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.0k
  }
aom_highbd_dc_top_predictor_16x8_c
Line
Count
Source
721
6.79k
      const uint16_t *left, int bd) {                                       \
722
6.79k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.79k
  }
aom_highbd_dc_top_predictor_16x32_c
Line
Count
Source
721
18.1k
      const uint16_t *left, int bd) {                                       \
722
18.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
18.1k
  }
aom_highbd_dc_top_predictor_32x16_c
Line
Count
Source
721
4.28k
      const uint16_t *left, int bd) {                                       \
722
4.28k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.28k
  }
aom_highbd_dc_top_predictor_32x64_c
Line
Count
Source
721
5.37k
      const uint16_t *left, int bd) {                                       \
722
5.37k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.37k
  }
aom_highbd_dc_top_predictor_64x32_c
Line
Count
Source
721
798
      const uint16_t *left, int bd) {                                       \
722
798
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
798
  }
aom_highbd_dc_top_predictor_4x16_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_dc_top_predictor_16x4_c
Line
Count
Source
721
5.57k
      const uint16_t *left, int bd) {                                       \
722
5.57k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.57k
  }
aom_highbd_dc_top_predictor_8x32_c
Line
Count
Source
721
3.16k
      const uint16_t *left, int bd) {                                       \
722
3.16k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.16k
  }
aom_highbd_dc_top_predictor_32x8_c
Line
Count
Source
721
4.44k
      const uint16_t *left, int bd) {                                       \
722
4.44k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.44k
  }
aom_highbd_dc_top_predictor_16x64_c
Line
Count
Source
721
479
      const uint16_t *left, int bd) {                                       \
722
479
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
479
  }
aom_highbd_dc_top_predictor_64x16_c
Line
Count
Source
721
2.06k
      const uint16_t *left, int bd) {                                       \
722
2.06k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.06k
  }
aom_highbd_dc_predictor_4x4_c
Line
Count
Source
721
2.84M
      const uint16_t *left, int bd) {                                       \
722
2.84M
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.84M
  }
aom_highbd_dc_predictor_8x8_c
Line
Count
Source
721
774k
      const uint16_t *left, int bd) {                                       \
722
774k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
774k
  }
aom_highbd_dc_predictor_16x16_c
Line
Count
Source
721
463k
      const uint16_t *left, int bd) {                                       \
722
463k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
463k
  }
aom_highbd_dc_predictor_32x32_c
Line
Count
Source
721
590k
      const uint16_t *left, int bd) {                                       \
722
590k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
590k
  }
aom_highbd_dc_predictor_64x64_c
Line
Count
Source
721
56.8k
      const uint16_t *left, int bd) {                                       \
722
56.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
56.8k
  }
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