Coverage Report

Created: 2022-08-24 06:17

/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
1.20M
                               const uint8_t *above, const uint8_t *left) {
25
1.20M
  int r;
26
1.20M
  (void)left;
27
28
8.86M
  for (r = 0; r < bh; r++) {
29
7.65M
    memcpy(dst, above, bw);
30
7.65M
    dst += stride;
31
7.65M
  }
32
1.20M
}
33
34
static INLINE void h_predictor(uint8_t *dst, ptrdiff_t stride, int bw, int bh,
35
1.30M
                               const uint8_t *above, const uint8_t *left) {
36
1.30M
  int r;
37
1.30M
  (void)above;
38
39
10.0M
  for (r = 0; r < bh; r++) {
40
8.76M
    memset(dst, left[r], bw);
41
8.76M
    dst += stride;
42
8.76M
  }
43
1.30M
}
44
45
5.76G
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.92G
                                              uint16_t top_left) {
49
1.92G
  const int base = top + left - top_left;
50
1.92G
  const int p_left = abs_diff(base, left);
51
1.92G
  const int p_top = abs_diff(base, top);
52
1.92G
  const int p_top_left = abs_diff(base, top_left);
53
54
  // Return nearest to base of left, top and top_left.
55
1.92G
  return (p_left <= p_top && p_left <= p_top_left)
56
1.92G
             ? left
57
1.92G
             : (p_top <= p_top_left) ? top : top_left;
58
1.92G
}
59
60
static INLINE void paeth_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
61
                                   int bh, const uint8_t *above,
62
4.77M
                                   const uint8_t *left) {
63
4.77M
  int r, c;
64
4.77M
  const uint8_t ytop_left = above[-1];
65
66
99.0M
  for (r = 0; r < bh; r++) {
67
1.28G
    for (c = 0; c < bw; c++)
68
1.18G
      dst[c] = (uint8_t)paeth_predictor_single(left[r], above[c], ytop_left);
69
94.2M
    dst += stride;
70
94.2M
  }
71
4.77M
}
72
73
// Some basic checks on weights for smooth predictor.
74
#define sm_weights_sanity_checks(weights_w, weights_h, weights_scale, \
75
                                 pred_scale)                          \
76
3.58M
  assert(weights_w[0] < weights_scale);                               \
77
3.58M
  assert(weights_h[0] < weights_scale);                               \
78
3.58M
  assert(weights_scale - weights_w[bw - 1] < weights_scale);          \
79
3.58M
  assert(weights_scale - weights_h[bh - 1] < weights_scale);          \
80
3.58M
  assert(pred_scale < 31)  // ensures no overflow when calculating predictor.
81
82
485M
#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
2.69M
                                    const uint8_t *left) {
87
2.69M
  const uint8_t below_pred = left[bh - 1];   // estimated by bottom-left pixel
88
2.69M
  const uint8_t right_pred = above[bw - 1];  // estimated by top-right pixel
89
2.69M
  const uint8_t *const sm_weights_w = sm_weight_arrays + bw;
90
2.69M
  const uint8_t *const sm_weights_h = sm_weight_arrays + bh;
91
  // scale = 2 * 2^sm_weight_log2_scale
92
2.69M
  const int log2_scale = 1 + sm_weight_log2_scale;
93
2.69M
  const uint16_t scale = (1 << sm_weight_log2_scale);
94
2.69M
  sm_weights_sanity_checks(sm_weights_w, sm_weights_h, scale,
95
2.69M
                           log2_scale + sizeof(*dst));
96
2.69M
  int r;
97
21.0M
  for (r = 0; r < bh; ++r) {
98
18.3M
    int c;
99
308M
    for (c = 0; c < bw; ++c) {
100
290M
      const uint8_t pixels[] = { above[c], below_pred, left[r], right_pred };
101
290M
      const uint8_t weights[] = { sm_weights_h[r], scale - sm_weights_h[r],
102
290M
                                  sm_weights_w[c], scale - sm_weights_w[c] };
103
290M
      uint32_t this_pred = 0;
104
290M
      int i;
105
290M
      assert(scale >= sm_weights_h[r] && scale >= sm_weights_w[c]);
106
1.45G
      for (i = 0; i < 4; ++i) {
107
1.16G
        this_pred += weights[i] * pixels[i];
108
1.16G
      }
109
290M
      dst[c] = divide_round(this_pred, log2_scale);
110
290M
    }
111
18.3M
    dst += stride;
112
18.3M
  }
113
2.69M
}
114
115
static INLINE void smooth_v_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
116
                                      int bh, const uint8_t *above,
117
126k
                                      const uint8_t *left) {
118
126k
  const uint8_t below_pred = left[bh - 1];  // estimated by bottom-left pixel
119
126k
  const uint8_t *const sm_weights = sm_weight_arrays + bh;
120
  // scale = 2^sm_weight_log2_scale
121
126k
  const int log2_scale = sm_weight_log2_scale;
122
126k
  const uint16_t scale = (1 << sm_weight_log2_scale);
123
126k
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
124
126k
                           log2_scale + sizeof(*dst));
125
126
126k
  int r;
127
1.53M
  for (r = 0; r < bh; r++) {
128
1.40M
    int c;
129
28.9M
    for (c = 0; c < bw; ++c) {
130
27.5M
      const uint8_t pixels[] = { above[c], below_pred };
131
27.5M
      const uint8_t weights[] = { sm_weights[r], scale - sm_weights[r] };
132
27.5M
      uint32_t this_pred = 0;
133
27.5M
      assert(scale >= sm_weights[r]);
134
27.5M
      int i;
135
82.6M
      for (i = 0; i < 2; ++i) {
136
55.0M
        this_pred += weights[i] * pixels[i];
137
55.0M
      }
138
27.5M
      dst[c] = divide_round(this_pred, log2_scale);
139
27.5M
    }
140
1.40M
    dst += stride;
141
1.40M
  }
142
126k
}
143
144
static INLINE void smooth_h_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
145
                                      int bh, const uint8_t *above,
146
160k
                                      const uint8_t *left) {
147
160k
  const uint8_t right_pred = above[bw - 1];  // estimated by top-right pixel
148
160k
  const uint8_t *const sm_weights = sm_weight_arrays + bw;
149
  // scale = 2^sm_weight_log2_scale
150
160k
  const int log2_scale = sm_weight_log2_scale;
151
160k
  const uint16_t scale = (1 << sm_weight_log2_scale);
152
160k
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
153
160k
                           log2_scale + sizeof(*dst));
154
155
160k
  int r;
156
1.87M
  for (r = 0; r < bh; r++) {
157
1.71M
    int c;
158
33.5M
    for (c = 0; c < bw; ++c) {
159
31.7M
      const uint8_t pixels[] = { left[r], right_pred };
160
31.7M
      const uint8_t weights[] = { sm_weights[c], scale - sm_weights[c] };
161
31.7M
      uint32_t this_pred = 0;
162
31.7M
      assert(scale >= sm_weights[c]);
163
31.7M
      int i;
164
95.3M
      for (i = 0; i < 2; ++i) {
165
63.5M
        this_pred += weights[i] * pixels[i];
166
63.5M
      }
167
31.7M
      dst[c] = divide_round(this_pred, log2_scale);
168
31.7M
    }
169
1.71M
    dst += stride;
170
1.71M
  }
171
160k
}
172
173
static INLINE void dc_128_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
174
                                    int bh, const uint8_t *above,
175
75.8k
                                    const uint8_t *left) {
176
75.8k
  int r;
177
75.8k
  (void)above;
178
75.8k
  (void)left;
179
180
1.15M
  for (r = 0; r < bh; r++) {
181
1.07M
    memset(dst, 128, bw);
182
1.07M
    dst += stride;
183
1.07M
  }
184
75.8k
}
185
186
static INLINE void dc_left_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
187
                                     int bh, const uint8_t *above,
188
317k
                                     const uint8_t *left) {
189
317k
  int i, r, expected_dc, sum = 0;
190
317k
  (void)above;
191
192
4.51M
  for (i = 0; i < bh; i++) sum += left[i];
193
317k
  expected_dc = (sum + (bh >> 1)) / bh;
194
195
4.51M
  for (r = 0; r < bh; r++) {
196
4.19M
    memset(dst, expected_dc, bw);
197
4.19M
    dst += stride;
198
4.19M
  }
199
317k
}
200
201
static INLINE void dc_top_predictor(uint8_t *dst, ptrdiff_t stride, int bw,
202
                                    int bh, const uint8_t *above,
203
216k
                                    const uint8_t *left) {
204
216k
  int i, r, expected_dc, sum = 0;
205
216k
  (void)left;
206
207
2.45M
  for (i = 0; i < bw; i++) sum += above[i];
208
216k
  expected_dc = (sum + (bw >> 1)) / bw;
209
210
2.39M
  for (r = 0; r < bh; r++) {
211
2.17M
    memset(dst, expected_dc, bw);
212
2.17M
    dst += stride;
213
2.17M
  }
214
216k
}
215
216
static INLINE void dc_predictor(uint8_t *dst, ptrdiff_t stride, int bw, int bh,
217
4.62M
                                const uint8_t *above, const uint8_t *left) {
218
4.62M
  int i, r, expected_dc, sum = 0;
219
4.62M
  const int count = bw + bh;
220
221
33.6M
  for (i = 0; i < bw; i++) {
222
28.9M
    sum += above[i];
223
28.9M
  }
224
33.6M
  for (i = 0; i < bh; i++) {
225
28.9M
    sum += left[i];
226
28.9M
  }
227
228
4.62M
  expected_dc = (sum + (count >> 1)) / count;
229
230
33.6M
  for (r = 0; r < bh; r++) {
231
28.9M
    memset(dst, expected_dc, bw);
232
28.9M
    dst += stride;
233
28.9M
  }
234
4.62M
}
235
236
static INLINE int divide_using_multiply_shift(int num, int shift1,
237
1.80M
                                              int multiplier, int shift2) {
238
1.80M
  const int interm = num >> shift1;
239
1.80M
  return interm * multiplier >> shift2;
240
1.80M
}
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
883k
#define DC_MULTIPLIER_1X2 0x5556
261
251k
#define DC_MULTIPLIER_1X4 0x3334
262
263
1.13M
#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
1.13M
                                     int multiplier) {
269
1.13M
  int sum = 0;
270
271
11.8M
  for (int i = 0; i < bw; i++) {
272
10.7M
    sum += above[i];
273
10.7M
  }
274
12.5M
  for (int i = 0; i < bh; i++) {
275
11.4M
    sum += left[i];
276
11.4M
  }
277
278
1.13M
  const int expected_dc = divide_using_multiply_shift(
279
1.13M
      sum + ((bw + bh) >> 1), shift1, multiplier, DC_SHIFT2);
280
1.13M
  assert(expected_dc < (1 << 8));
281
282
12.5M
  for (int r = 0; r < bh; r++) {
283
11.4M
    memset(dst, expected_dc, bw);
284
11.4M
    dst += stride;
285
11.4M
  }
286
1.13M
}
287
288
#undef DC_SHIFT2
289
290
void aom_dc_predictor_4x8_c(uint8_t *dst, ptrdiff_t stride,
291
292k
                            const uint8_t *above, const uint8_t *left) {
292
292k
  dc_predictor_rect(dst, stride, 4, 8, above, left, 2, DC_MULTIPLIER_1X2);
293
292k
}
294
295
void aom_dc_predictor_8x4_c(uint8_t *dst, ptrdiff_t stride,
296
407k
                            const uint8_t *above, const uint8_t *left) {
297
407k
  dc_predictor_rect(dst, stride, 8, 4, above, left, 2, DC_MULTIPLIER_1X2);
298
407k
}
299
300
void aom_dc_predictor_4x16_c(uint8_t *dst, ptrdiff_t stride,
301
65.8k
                             const uint8_t *above, const uint8_t *left) {
302
65.8k
  dc_predictor_rect(dst, stride, 4, 16, above, left, 2, DC_MULTIPLIER_1X4);
303
65.8k
}
304
305
void aom_dc_predictor_16x4_c(uint8_t *dst, ptrdiff_t stride,
306
89.1k
                             const uint8_t *above, const uint8_t *left) {
307
89.1k
  dc_predictor_rect(dst, stride, 16, 4, above, left, 2, DC_MULTIPLIER_1X4);
308
89.1k
}
309
310
void aom_dc_predictor_8x16_c(uint8_t *dst, ptrdiff_t stride,
311
61.8k
                             const uint8_t *above, const uint8_t *left) {
312
61.8k
  dc_predictor_rect(dst, stride, 8, 16, above, left, 3, DC_MULTIPLIER_1X2);
313
61.8k
}
314
315
void aom_dc_predictor_16x8_c(uint8_t *dst, ptrdiff_t stride,
316
76.6k
                             const uint8_t *above, const uint8_t *left) {
317
76.6k
  dc_predictor_rect(dst, stride, 16, 8, above, left, 3, DC_MULTIPLIER_1X2);
318
76.6k
}
319
320
void aom_dc_predictor_8x32_c(uint8_t *dst, ptrdiff_t stride,
321
54.0k
                             const uint8_t *above, const uint8_t *left) {
322
54.0k
  dc_predictor_rect(dst, stride, 8, 32, above, left, 3, DC_MULTIPLIER_1X4);
323
54.0k
}
324
325
void aom_dc_predictor_32x8_c(uint8_t *dst, ptrdiff_t stride,
326
19.3k
                             const uint8_t *above, const uint8_t *left) {
327
19.3k
  dc_predictor_rect(dst, stride, 32, 8, above, left, 3, DC_MULTIPLIER_1X4);
328
19.3k
}
329
330
void aom_dc_predictor_16x32_c(uint8_t *dst, ptrdiff_t stride,
331
18.4k
                              const uint8_t *above, const uint8_t *left) {
332
18.4k
  dc_predictor_rect(dst, stride, 16, 32, above, left, 4, DC_MULTIPLIER_1X2);
333
18.4k
}
334
335
void aom_dc_predictor_32x16_c(uint8_t *dst, ptrdiff_t stride,
336
19.7k
                              const uint8_t *above, const uint8_t *left) {
337
19.7k
  dc_predictor_rect(dst, stride, 32, 16, above, left, 4, DC_MULTIPLIER_1X2);
338
19.7k
}
339
340
void aom_dc_predictor_16x64_c(uint8_t *dst, ptrdiff_t stride,
341
19.4k
                              const uint8_t *above, const uint8_t *left) {
342
19.4k
  dc_predictor_rect(dst, stride, 16, 64, above, left, 4, DC_MULTIPLIER_1X4);
343
19.4k
}
344
345
void aom_dc_predictor_64x16_c(uint8_t *dst, ptrdiff_t stride,
346
3.53k
                              const uint8_t *above, const uint8_t *left) {
347
3.53k
  dc_predictor_rect(dst, stride, 64, 16, above, left, 4, DC_MULTIPLIER_1X4);
348
3.53k
}
349
350
void aom_dc_predictor_32x64_c(uint8_t *dst, ptrdiff_t stride,
351
3.55k
                              const uint8_t *above, const uint8_t *left) {
352
3.55k
  dc_predictor_rect(dst, stride, 32, 64, above, left, 5, DC_MULTIPLIER_1X2);
353
3.55k
}
354
355
void aom_dc_predictor_64x32_c(uint8_t *dst, ptrdiff_t stride,
356
3.80k
                              const uint8_t *above, const uint8_t *left) {
357
3.80k
  dc_predictor_rect(dst, stride, 64, 32, above, left, 5, DC_MULTIPLIER_1X2);
358
3.80k
}
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
106k
                                      const uint16_t *left, int bd) {
366
106k
  int r;
367
106k
  (void)left;
368
106k
  (void)bd;
369
1.16M
  for (r = 0; r < bh; r++) {
370
1.05M
    memcpy(dst, above, bw * sizeof(uint16_t));
371
1.05M
    dst += stride;
372
1.05M
  }
373
106k
}
374
375
static INLINE void highbd_h_predictor(uint16_t *dst, ptrdiff_t stride, int bw,
376
                                      int bh, const uint16_t *above,
377
181k
                                      const uint16_t *left, int bd) {
378
181k
  int r;
379
181k
  (void)above;
380
181k
  (void)bd;
381
2.14M
  for (r = 0; r < bh; r++) {
382
1.95M
    aom_memset16(dst, left[r], bw);
383
1.95M
    dst += stride;
384
1.95M
  }
385
181k
}
386
387
static INLINE void highbd_paeth_predictor(uint16_t *dst, ptrdiff_t stride,
388
                                          int bw, int bh, const uint16_t *above,
389
1.60M
                                          const uint16_t *left, int bd) {
390
1.60M
  int r, c;
391
1.60M
  const uint16_t ytop_left = above[-1];
392
1.60M
  (void)bd;
393
394
42.3M
  for (r = 0; r < bh; r++) {
395
773M
    for (c = 0; c < bw; c++)
396
732M
      dst[c] = paeth_predictor_single(left[r], above[c], ytop_left);
397
40.7M
    dst += stride;
398
40.7M
  }
399
1.60M
}
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
344k
                                           const uint16_t *left, int bd) {
405
344k
  (void)bd;
406
344k
  const uint16_t below_pred = left[bh - 1];   // estimated by bottom-left pixel
407
344k
  const uint16_t right_pred = above[bw - 1];  // estimated by top-right pixel
408
344k
  const uint8_t *const sm_weights_w = sm_weight_arrays + bw;
409
344k
  const uint8_t *const sm_weights_h = sm_weight_arrays + bh;
410
  // scale = 2 * 2^sm_weight_log2_scale
411
344k
  const int log2_scale = 1 + sm_weight_log2_scale;
412
344k
  const uint16_t scale = (1 << sm_weight_log2_scale);
413
344k
  sm_weights_sanity_checks(sm_weights_w, sm_weights_h, scale,
414
344k
                           log2_scale + sizeof(*dst));
415
344k
  int r;
416
4.24M
  for (r = 0; r < bh; ++r) {
417
3.89M
    int c;
418
82.0M
    for (c = 0; c < bw; ++c) {
419
78.1M
      const uint16_t pixels[] = { above[c], below_pred, left[r], right_pred };
420
78.1M
      const uint8_t weights[] = { sm_weights_h[r], scale - sm_weights_h[r],
421
78.1M
                                  sm_weights_w[c], scale - sm_weights_w[c] };
422
78.1M
      uint32_t this_pred = 0;
423
78.1M
      int i;
424
78.1M
      assert(scale >= sm_weights_h[r] && scale >= sm_weights_w[c]);
425
390M
      for (i = 0; i < 4; ++i) {
426
312M
        this_pred += weights[i] * pixels[i];
427
312M
      }
428
78.1M
      dst[c] = divide_round(this_pred, log2_scale);
429
78.1M
    }
430
3.89M
    dst += stride;
431
3.89M
  }
432
344k
}
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
111k
                                             const uint16_t *left, int bd) {
438
111k
  (void)bd;
439
111k
  const uint16_t below_pred = left[bh - 1];  // estimated by bottom-left pixel
440
111k
  const uint8_t *const sm_weights = sm_weight_arrays + bh;
441
  // scale = 2^sm_weight_log2_scale
442
111k
  const int log2_scale = sm_weight_log2_scale;
443
111k
  const uint16_t scale = (1 << sm_weight_log2_scale);
444
111k
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
445
111k
                           log2_scale + sizeof(*dst));
446
447
111k
  int r;
448
1.34M
  for (r = 0; r < bh; r++) {
449
1.22M
    int c;
450
24.2M
    for (c = 0; c < bw; ++c) {
451
23.0M
      const uint16_t pixels[] = { above[c], below_pred };
452
23.0M
      const uint8_t weights[] = { sm_weights[r], scale - sm_weights[r] };
453
23.0M
      uint32_t this_pred = 0;
454
23.0M
      assert(scale >= sm_weights[r]);
455
23.0M
      int i;
456
69.0M
      for (i = 0; i < 2; ++i) {
457
46.0M
        this_pred += weights[i] * pixels[i];
458
46.0M
      }
459
23.0M
      dst[c] = divide_round(this_pred, log2_scale);
460
23.0M
    }
461
1.22M
    dst += stride;
462
1.22M
  }
463
111k
}
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
143k
                                             const uint16_t *left, int bd) {
469
143k
  (void)bd;
470
143k
  const uint16_t right_pred = above[bw - 1];  // estimated by top-right pixel
471
143k
  const uint8_t *const sm_weights = sm_weight_arrays + bw;
472
  // scale = 2^sm_weight_log2_scale
473
143k
  const int log2_scale = sm_weight_log2_scale;
474
143k
  const uint16_t scale = (1 << sm_weight_log2_scale);
475
143k
  sm_weights_sanity_checks(sm_weights, sm_weights, scale,
476
143k
                           log2_scale + sizeof(*dst));
477
478
143k
  int r;
479
1.87M
  for (r = 0; r < bh; r++) {
480
1.72M
    int c;
481
36.8M
    for (c = 0; c < bw; ++c) {
482
35.1M
      const uint16_t pixels[] = { left[r], right_pred };
483
35.1M
      const uint8_t weights[] = { sm_weights[c], scale - sm_weights[c] };
484
35.1M
      uint32_t this_pred = 0;
485
35.1M
      assert(scale >= sm_weights[c]);
486
35.1M
      int i;
487
105M
      for (i = 0; i < 2; ++i) {
488
70.3M
        this_pred += weights[i] * pixels[i];
489
70.3M
      }
490
35.1M
      dst[c] = divide_round(this_pred, log2_scale);
491
35.1M
    }
492
1.72M
    dst += stride;
493
1.72M
  }
494
143k
}
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
2.25k
                                           const uint16_t *left, int bd) {
500
2.25k
  int r;
501
2.25k
  (void)above;
502
2.25k
  (void)left;
503
504
72.2k
  for (r = 0; r < bh; r++) {
505
70.0k
    aom_memset16(dst, 128 << (bd - 8), bw);
506
70.0k
    dst += stride;
507
70.0k
  }
508
2.25k
}
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
124k
                                            const uint16_t *left, int bd) {
514
124k
  int i, r, expected_dc, sum = 0;
515
124k
  (void)above;
516
124k
  (void)bd;
517
518
3.09M
  for (i = 0; i < bh; i++) sum += left[i];
519
124k
  expected_dc = (sum + (bh >> 1)) / bh;
520
521
3.09M
  for (r = 0; r < bh; r++) {
522
2.97M
    aom_memset16(dst, expected_dc, bw);
523
2.97M
    dst += stride;
524
2.97M
  }
525
124k
}
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
5.67k
                                           const uint16_t *left, int bd) {
531
5.67k
  int i, r, expected_dc, sum = 0;
532
5.67k
  (void)left;
533
5.67k
  (void)bd;
534
535
170k
  for (i = 0; i < bw; i++) sum += above[i];
536
5.67k
  expected_dc = (sum + (bw >> 1)) / bw;
537
538
163k
  for (r = 0; r < bh; r++) {
539
158k
    aom_memset16(dst, expected_dc, bw);
540
158k
    dst += stride;
541
158k
  }
542
5.67k
}
543
544
static INLINE void highbd_dc_predictor(uint16_t *dst, ptrdiff_t stride, int bw,
545
                                       int bh, const uint16_t *above,
546
870k
                                       const uint16_t *left, int bd) {
547
870k
  int i, r, expected_dc, sum = 0;
548
870k
  const int count = bw + bh;
549
870k
  (void)bd;
550
551
9.93M
  for (i = 0; i < bw; i++) {
552
9.06M
    sum += above[i];
553
9.06M
  }
554
9.93M
  for (i = 0; i < bh; i++) {
555
9.06M
    sum += left[i];
556
9.06M
  }
557
558
870k
  expected_dc = (sum + (count >> 1)) / count;
559
560
9.93M
  for (r = 0; r < bh; r++) {
561
9.06M
    aom_memset16(dst, expected_dc, bw);
562
9.06M
    dst += stride;
563
9.06M
  }
564
870k
}
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
479k
#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
187k
#define HIGHBD_DC_MULTIPLIER_1X4 0x6667
577
578
667k
#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
667k
                                            int shift1, uint32_t multiplier) {
585
667k
  int sum = 0;
586
667k
  (void)bd;
587
588
7.47M
  for (int i = 0; i < bw; i++) {
589
6.80M
    sum += above[i];
590
6.80M
  }
591
7.61M
  for (int i = 0; i < bh; i++) {
592
6.95M
    sum += left[i];
593
6.95M
  }
594
595
667k
  const int expected_dc = divide_using_multiply_shift(
596
667k
      sum + ((bw + bh) >> 1), shift1, multiplier, HIGHBD_DC_SHIFT2);
597
667k
  assert(expected_dc < (1 << bd));
598
599
7.61M
  for (int r = 0; r < bh; r++) {
600
6.95M
    aom_memset16(dst, expected_dc, bw);
601
6.95M
    dst += stride;
602
6.95M
  }
603
667k
}
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
151k
                                   int bd) {
610
151k
  highbd_dc_predictor_rect(dst, stride, 4, 8, above, left, bd, 2,
611
151k
                           HIGHBD_DC_MULTIPLIER_1X2);
612
151k
}
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
217k
                                   int bd) {
617
217k
  highbd_dc_predictor_rect(dst, stride, 8, 4, above, left, bd, 2,
618
217k
                           HIGHBD_DC_MULTIPLIER_1X2);
619
217k
}
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
46.5k
                                    int bd) {
624
46.5k
  highbd_dc_predictor_rect(dst, stride, 4, 16, above, left, bd, 2,
625
46.5k
                           HIGHBD_DC_MULTIPLIER_1X4);
626
46.5k
}
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
64.3k
                                    int bd) {
631
64.3k
  highbd_dc_predictor_rect(dst, stride, 16, 4, above, left, bd, 2,
632
64.3k
                           HIGHBD_DC_MULTIPLIER_1X4);
633
64.3k
}
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
36.3k
                                    int bd) {
638
36.3k
  highbd_dc_predictor_rect(dst, stride, 8, 16, above, left, bd, 3,
639
36.3k
                           HIGHBD_DC_MULTIPLIER_1X2);
640
36.3k
}
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
51.0k
                                    int bd) {
645
51.0k
  highbd_dc_predictor_rect(dst, stride, 16, 8, above, left, bd, 3,
646
51.0k
                           HIGHBD_DC_MULTIPLIER_1X2);
647
51.0k
}
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
39.2k
                                    int bd) {
652
39.2k
  highbd_dc_predictor_rect(dst, stride, 8, 32, above, left, bd, 3,
653
39.2k
                           HIGHBD_DC_MULTIPLIER_1X4);
654
39.2k
}
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
21.2k
                                    int bd) {
659
21.2k
  highbd_dc_predictor_rect(dst, stride, 32, 8, above, left, bd, 3,
660
21.2k
                           HIGHBD_DC_MULTIPLIER_1X4);
661
21.2k
}
662
663
void aom_highbd_dc_predictor_16x32_c(uint16_t *dst, ptrdiff_t stride,
664
                                     const uint16_t *above,
665
7.43k
                                     const uint16_t *left, int bd) {
666
7.43k
  highbd_dc_predictor_rect(dst, stride, 16, 32, above, left, bd, 4,
667
7.43k
                           HIGHBD_DC_MULTIPLIER_1X2);
668
7.43k
}
669
670
void aom_highbd_dc_predictor_32x16_c(uint16_t *dst, ptrdiff_t stride,
671
                                     const uint16_t *above,
672
12.1k
                                     const uint16_t *left, int bd) {
673
12.1k
  highbd_dc_predictor_rect(dst, stride, 32, 16, above, left, bd, 4,
674
12.1k
                           HIGHBD_DC_MULTIPLIER_1X2);
675
12.1k
}
676
677
void aom_highbd_dc_predictor_16x64_c(uint16_t *dst, ptrdiff_t stride,
678
                                     const uint16_t *above,
679
12.4k
                                     const uint16_t *left, int bd) {
680
12.4k
  highbd_dc_predictor_rect(dst, stride, 16, 64, above, left, bd, 4,
681
12.4k
                           HIGHBD_DC_MULTIPLIER_1X4);
682
12.4k
}
683
684
void aom_highbd_dc_predictor_64x16_c(uint16_t *dst, ptrdiff_t stride,
685
                                     const uint16_t *above,
686
3.80k
                                     const uint16_t *left, int bd) {
687
3.80k
  highbd_dc_predictor_rect(dst, stride, 64, 16, above, left, bd, 4,
688
3.80k
                           HIGHBD_DC_MULTIPLIER_1X4);
689
3.80k
}
690
691
void aom_highbd_dc_predictor_32x64_c(uint16_t *dst, ptrdiff_t stride,
692
                                     const uint16_t *above,
693
1.29k
                                     const uint16_t *left, int bd) {
694
1.29k
  highbd_dc_predictor_rect(dst, stride, 32, 64, above, left, bd, 5,
695
1.29k
                           HIGHBD_DC_MULTIPLIER_1X2);
696
1.29k
}
697
698
void aom_highbd_dc_predictor_64x32_c(uint16_t *dst, ptrdiff_t stride,
699
                                     const uint16_t *above,
700
2.36k
                                     const uint16_t *left, int bd) {
701
2.36k
  highbd_dc_predictor_rect(dst, stride, 64, 32, above, left, bd, 5,
702
2.36k
                           HIGHBD_DC_MULTIPLIER_1X2);
703
2.36k
}
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
15.5M
      const uint8_t *left) {                                   \
715
15.5M
    type##_predictor(dst, stride, width, height, above, left); \
716
15.5M
  }
aom_v_predictor_4x4_c
Line
Count
Source
714
970k
      const uint8_t *left) {                                   \
715
970k
    type##_predictor(dst, stride, width, height, above, left); \
716
970k
  }
aom_v_predictor_8x8_c
Line
Count
Source
714
78.4k
      const uint8_t *left) {                                   \
715
78.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
78.4k
  }
aom_v_predictor_16x16_c
Line
Count
Source
714
35.4k
      const uint8_t *left) {                                   \
715
35.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
35.4k
  }
aom_v_predictor_32x32_c
Line
Count
Source
714
42.1k
      const uint8_t *left) {                                   \
715
42.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
42.1k
  }
aom_v_predictor_64x64_c
Line
Count
Source
714
4.93k
      const uint8_t *left) {                                   \
715
4.93k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.93k
  }
aom_v_predictor_4x8_c
Line
Count
Source
714
13.6k
      const uint8_t *left) {                                   \
715
13.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
13.6k
  }
aom_v_predictor_8x4_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_v_predictor_8x16_c
Line
Count
Source
714
6.49k
      const uint8_t *left) {                                   \
715
6.49k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.49k
  }
aom_v_predictor_16x8_c
Line
Count
Source
714
8.44k
      const uint8_t *left) {                                   \
715
8.44k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.44k
  }
aom_v_predictor_16x32_c
Line
Count
Source
714
3.34k
      const uint8_t *left) {                                   \
715
3.34k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.34k
  }
aom_v_predictor_32x16_c
Line
Count
Source
714
3.56k
      const uint8_t *left) {                                   \
715
3.56k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.56k
  }
aom_v_predictor_32x64_c
Line
Count
Source
714
1.13k
      const uint8_t *left) {                                   \
715
1.13k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.13k
  }
aom_v_predictor_64x32_c
Line
Count
Source
714
1.37k
      const uint8_t *left) {                                   \
715
1.37k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.37k
  }
aom_v_predictor_4x16_c
Line
Count
Source
714
3.18k
      const uint8_t *left) {                                   \
715
3.18k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.18k
  }
aom_v_predictor_16x4_c
Line
Count
Source
714
5.94k
      const uint8_t *left) {                                   \
715
5.94k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.94k
  }
aom_v_predictor_8x32_c
Line
Count
Source
714
3.27k
      const uint8_t *left) {                                   \
715
3.27k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.27k
  }
aom_v_predictor_32x8_c
Line
Count
Source
714
1.61k
      const uint8_t *left) {                                   \
715
1.61k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.61k
  }
aom_v_predictor_16x64_c
Line
Count
Source
714
1.11k
      const uint8_t *left) {                                   \
715
1.11k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.11k
  }
aom_v_predictor_64x16_c
Line
Count
Source
714
292
      const uint8_t *left) {                                   \
715
292
    type##_predictor(dst, stride, width, height, above, left); \
716
292
  }
aom_h_predictor_4x4_c
Line
Count
Source
714
1.00M
      const uint8_t *left) {                                   \
715
1.00M
    type##_predictor(dst, stride, width, height, above, left); \
716
1.00M
  }
aom_h_predictor_8x8_c
Line
Count
Source
714
91.3k
      const uint8_t *left) {                                   \
715
91.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
91.3k
  }
aom_h_predictor_16x16_c
Line
Count
Source
714
42.9k
      const uint8_t *left) {                                   \
715
42.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
42.9k
  }
aom_h_predictor_32x32_c
Line
Count
Source
714
49.4k
      const uint8_t *left) {                                   \
715
49.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
49.4k
  }
aom_h_predictor_64x64_c
Line
Count
Source
714
7.07k
      const uint8_t *left) {                                   \
715
7.07k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.07k
  }
aom_h_predictor_4x8_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_h_predictor_8x4_c
Line
Count
Source
714
33.8k
      const uint8_t *left) {                                   \
715
33.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
33.8k
  }
aom_h_predictor_8x16_c
Line
Count
Source
714
9.02k
      const uint8_t *left) {                                   \
715
9.02k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.02k
  }
aom_h_predictor_16x8_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_h_predictor_16x32_c
Line
Count
Source
714
4.46k
      const uint8_t *left) {                                   \
715
4.46k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.46k
  }
aom_h_predictor_32x16_c
Line
Count
Source
714
4.48k
      const uint8_t *left) {                                   \
715
4.48k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.48k
  }
aom_h_predictor_32x64_c
Line
Count
Source
714
1.62k
      const uint8_t *left) {                                   \
715
1.62k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.62k
  }
aom_h_predictor_64x32_c
Line
Count
Source
714
1.28k
      const uint8_t *left) {                                   \
715
1.28k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.28k
  }
aom_h_predictor_4x16_c
Line
Count
Source
714
5.24k
      const uint8_t *left) {                                   \
715
5.24k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.24k
  }
aom_h_predictor_16x4_c
Line
Count
Source
714
9.39k
      const uint8_t *left) {                                   \
715
9.39k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.39k
  }
aom_h_predictor_8x32_c
Line
Count
Source
714
4.47k
      const uint8_t *left) {                                   \
715
4.47k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.47k
  }
aom_h_predictor_32x8_c
Line
Count
Source
714
2.65k
      const uint8_t *left) {                                   \
715
2.65k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.65k
  }
aom_h_predictor_16x64_c
Line
Count
Source
714
1.61k
      const uint8_t *left) {                                   \
715
1.61k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.61k
  }
aom_h_predictor_64x16_c
Line
Count
Source
714
476
      const uint8_t *left) {                                   \
715
476
    type##_predictor(dst, stride, width, height, above, left); \
716
476
  }
aom_smooth_predictor_4x4_c
Line
Count
Source
714
2.09M
      const uint8_t *left) {                                   \
715
2.09M
    type##_predictor(dst, stride, width, height, above, left); \
716
2.09M
  }
aom_smooth_predictor_8x8_c
Line
Count
Source
714
156k
      const uint8_t *left) {                                   \
715
156k
    type##_predictor(dst, stride, width, height, above, left); \
716
156k
  }
aom_smooth_predictor_16x16_c
Line
Count
Source
714
86.7k
      const uint8_t *left) {                                   \
715
86.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
86.7k
  }
aom_smooth_predictor_32x32_c
Line
Count
Source
714
98.6k
      const uint8_t *left) {                                   \
715
98.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
98.6k
  }
aom_smooth_predictor_64x64_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_smooth_predictor_4x8_c
Line
Count
Source
714
38.7k
      const uint8_t *left) {                                   \
715
38.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
38.7k
  }
aom_smooth_predictor_8x4_c
Line
Count
Source
714
58.8k
      const uint8_t *left) {                                   \
715
58.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
58.8k
  }
aom_smooth_predictor_8x16_c
Line
Count
Source
714
24.7k
      const uint8_t *left) {                                   \
715
24.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
24.7k
  }
aom_smooth_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_smooth_predictor_16x32_c
Line
Count
Source
714
12.4k
      const uint8_t *left) {                                   \
715
12.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
12.4k
  }
aom_smooth_predictor_32x16_c
Line
Count
Source
714
12.0k
      const uint8_t *left) {                                   \
715
12.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
12.0k
  }
aom_smooth_predictor_32x64_c
Line
Count
Source
714
3.65k
      const uint8_t *left) {                                   \
715
3.65k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.65k
  }
aom_smooth_predictor_64x32_c
Line
Count
Source
714
3.56k
      const uint8_t *left) {                                   \
715
3.56k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.56k
  }
aom_smooth_predictor_4x16_c
Line
Count
Source
714
12.7k
      const uint8_t *left) {                                   \
715
12.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
12.7k
  }
aom_smooth_predictor_16x4_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_8x32_c
Line
Count
Source
714
8.17k
      const uint8_t *left) {                                   \
715
8.17k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.17k
  }
aom_smooth_predictor_32x8_c
Line
Count
Source
714
5.80k
      const uint8_t *left) {                                   \
715
5.80k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.80k
  }
aom_smooth_predictor_16x64_c
Line
Count
Source
714
4.82k
      const uint8_t *left) {                                   \
715
4.82k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.82k
  }
aom_smooth_predictor_64x16_c
Line
Count
Source
714
1.41k
      const uint8_t *left) {                                   \
715
1.41k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.41k
  }
aom_smooth_v_predictor_4x4_c
Line
Count
Source
714
32.2k
      const uint8_t *left) {                                   \
715
32.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
32.2k
  }
aom_smooth_v_predictor_8x8_c
Line
Count
Source
714
16.8k
      const uint8_t *left) {                                   \
715
16.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
16.8k
  }
aom_smooth_v_predictor_16x16_c
Line
Count
Source
714
7.07k
      const uint8_t *left) {                                   \
715
7.07k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.07k
  }
aom_smooth_v_predictor_32x32_c
Line
Count
Source
714
6.88k
      const uint8_t *left) {                                   \
715
6.88k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.88k
  }
aom_smooth_v_predictor_64x64_c
Line
Count
Source
714
2.32k
      const uint8_t *left) {                                   \
715
2.32k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.32k
  }
aom_smooth_v_predictor_4x8_c
Line
Count
Source
714
11.6k
      const uint8_t *left) {                                   \
715
11.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
11.6k
  }
aom_smooth_v_predictor_8x4_c
Line
Count
Source
714
19.6k
      const uint8_t *left) {                                   \
715
19.6k
    type##_predictor(dst, stride, width, height, above, left); \
716
19.6k
  }
aom_smooth_v_predictor_8x16_c
Line
Count
Source
714
4.12k
      const uint8_t *left) {                                   \
715
4.12k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.12k
  }
aom_smooth_v_predictor_16x8_c
Line
Count
Source
714
5.82k
      const uint8_t *left) {                                   \
715
5.82k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.82k
  }
aom_smooth_v_predictor_16x32_c
Line
Count
Source
714
842
      const uint8_t *left) {                                   \
715
842
    type##_predictor(dst, stride, width, height, above, left); \
716
842
  }
aom_smooth_v_predictor_32x16_c
Line
Count
Source
714
996
      const uint8_t *left) {                                   \
715
996
    type##_predictor(dst, stride, width, height, above, left); \
716
996
  }
aom_smooth_v_predictor_32x64_c
Line
Count
Source
714
112
      const uint8_t *left) {                                   \
715
112
    type##_predictor(dst, stride, width, height, above, left); \
716
112
  }
aom_smooth_v_predictor_64x32_c
Line
Count
Source
714
134
      const uint8_t *left) {                                   \
715
134
    type##_predictor(dst, stride, width, height, above, left); \
716
134
  }
aom_smooth_v_predictor_4x16_c
Line
Count
Source
714
4.16k
      const uint8_t *left) {                                   \
715
4.16k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.16k
  }
aom_smooth_v_predictor_16x4_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_smooth_v_predictor_8x32_c
Line
Count
Source
714
3.58k
      const uint8_t *left) {                                   \
715
3.58k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.58k
  }
aom_smooth_v_predictor_32x8_c
Line
Count
Source
714
1.42k
      const uint8_t *left) {                                   \
715
1.42k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.42k
  }
aom_smooth_v_predictor_16x64_c
Line
Count
Source
714
1.58k
      const uint8_t *left) {                                   \
715
1.58k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.58k
  }
aom_smooth_v_predictor_64x16_c
Line
Count
Source
714
264
      const uint8_t *left) {                                   \
715
264
    type##_predictor(dst, stride, width, height, above, left); \
716
264
  }
aom_smooth_h_predictor_4x4_c
Line
Count
Source
714
43.3k
      const uint8_t *left) {                                   \
715
43.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
43.3k
  }
aom_smooth_h_predictor_8x8_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_h_predictor_16x16_c
Line
Count
Source
714
9.51k
      const uint8_t *left) {                                   \
715
9.51k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.51k
  }
aom_smooth_h_predictor_32x32_c
Line
Count
Source
714
6.80k
      const uint8_t *left) {                                   \
715
6.80k
    type##_predictor(dst, stride, width, height, above, left); \
716
6.80k
  }
aom_smooth_h_predictor_64x64_c
Line
Count
Source
714
2.61k
      const uint8_t *left) {                                   \
715
2.61k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.61k
  }
aom_smooth_h_predictor_4x8_c
Line
Count
Source
714
16.8k
      const uint8_t *left) {                                   \
715
16.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
16.8k
  }
aom_smooth_h_predictor_8x4_c
Line
Count
Source
714
23.9k
      const uint8_t *left) {                                   \
715
23.9k
    type##_predictor(dst, stride, width, height, above, left); \
716
23.9k
  }
aom_smooth_h_predictor_8x16_c
Line
Count
Source
714
5.17k
      const uint8_t *left) {                                   \
715
5.17k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.17k
  }
aom_smooth_h_predictor_16x8_c
Line
Count
Source
714
7.37k
      const uint8_t *left) {                                   \
715
7.37k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.37k
  }
aom_smooth_h_predictor_16x32_c
Line
Count
Source
714
1.17k
      const uint8_t *left) {                                   \
715
1.17k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.17k
  }
aom_smooth_h_predictor_32x16_c
Line
Count
Source
714
1.07k
      const uint8_t *left) {                                   \
715
1.07k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.07k
  }
aom_smooth_h_predictor_32x64_c
Line
Count
Source
714
222
      const uint8_t *left) {                                   \
715
222
    type##_predictor(dst, stride, width, height, above, left); \
716
222
  }
aom_smooth_h_predictor_64x32_c
Line
Count
Source
714
218
      const uint8_t *left) {                                   \
715
218
    type##_predictor(dst, stride, width, height, above, left); \
716
218
  }
aom_smooth_h_predictor_4x16_c
Line
Count
Source
714
5.46k
      const uint8_t *left) {                                   \
715
5.46k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.46k
  }
aom_smooth_h_predictor_16x4_c
Line
Count
Source
714
7.66k
      const uint8_t *left) {                                   \
715
7.66k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.66k
  }
aom_smooth_h_predictor_8x32_c
Line
Count
Source
714
4.21k
      const uint8_t *left) {                                   \
715
4.21k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.21k
  }
aom_smooth_h_predictor_32x8_c
Line
Count
Source
714
2.00k
      const uint8_t *left) {                                   \
715
2.00k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.00k
  }
aom_smooth_h_predictor_16x64_c
Line
Count
Source
714
1.85k
      const uint8_t *left) {                                   \
715
1.85k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.85k
  }
aom_smooth_h_predictor_64x16_c
Line
Count
Source
714
394
      const uint8_t *left) {                                   \
715
394
    type##_predictor(dst, stride, width, height, above, left); \
716
394
  }
aom_paeth_predictor_4x4_c
Line
Count
Source
714
1.39M
      const uint8_t *left) {                                   \
715
1.39M
    type##_predictor(dst, stride, width, height, above, left); \
716
1.39M
  }
aom_paeth_predictor_8x8_c
Line
Count
Source
714
392k
      const uint8_t *left) {                                   \
715
392k
    type##_predictor(dst, stride, width, height, above, left); \
716
392k
  }
aom_paeth_predictor_16x16_c
Line
Count
Source
714
191k
      const uint8_t *left) {                                   \
715
191k
    type##_predictor(dst, stride, width, height, above, left); \
716
191k
  }
aom_paeth_predictor_32x32_c
Line
Count
Source
714
94.5k
      const uint8_t *left) {                                   \
715
94.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
94.5k
  }
aom_paeth_predictor_64x64_c
Line
Count
Source
714
13.1k
      const uint8_t *left) {                                   \
715
13.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
13.1k
  }
aom_paeth_predictor_4x8_c
Line
Count
Source
714
171k
      const uint8_t *left) {                                   \
715
171k
    type##_predictor(dst, stride, width, height, above, left); \
716
171k
  }
aom_paeth_predictor_8x4_c
Line
Count
Source
714
225k
      const uint8_t *left) {                                   \
715
225k
    type##_predictor(dst, stride, width, height, above, left); \
716
225k
  }
aom_paeth_predictor_8x16_c
Line
Count
Source
714
94.7k
      const uint8_t *left) {                                   \
715
94.7k
    type##_predictor(dst, stride, width, height, above, left); \
716
94.7k
  }
aom_paeth_predictor_16x8_c
Line
Count
Source
714
159k
      const uint8_t *left) {                                   \
715
159k
    type##_predictor(dst, stride, width, height, above, left); \
716
159k
  }
aom_paeth_predictor_16x32_c
Line
Count
Source
714
29.2k
      const uint8_t *left) {                                   \
715
29.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
29.2k
  }
aom_paeth_predictor_32x16_c
Line
Count
Source
714
30.0k
      const uint8_t *left) {                                   \
715
30.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
30.0k
  }
aom_paeth_predictor_32x64_c
Line
Count
Source
714
4.61k
      const uint8_t *left) {                                   \
715
4.61k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.61k
  }
aom_paeth_predictor_64x32_c
Line
Count
Source
714
4.46k
      const uint8_t *left) {                                   \
715
4.46k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.46k
  }
aom_paeth_predictor_4x16_c
Line
Count
Source
714
174k
      const uint8_t *left) {                                   \
715
174k
    type##_predictor(dst, stride, width, height, above, left); \
716
174k
  }
aom_paeth_predictor_16x4_c
Line
Count
Source
714
137k
      const uint8_t *left) {                                   \
715
137k
    type##_predictor(dst, stride, width, height, above, left); \
716
137k
  }
aom_paeth_predictor_8x32_c
Line
Count
Source
714
1.07M
      const uint8_t *left) {                                   \
715
1.07M
    type##_predictor(dst, stride, width, height, above, left); \
716
1.07M
  }
aom_paeth_predictor_32x8_c
Line
Count
Source
714
47.0k
      const uint8_t *left) {                                   \
715
47.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
47.0k
  }
aom_paeth_predictor_16x64_c
Line
Count
Source
714
521k
      const uint8_t *left) {                                   \
715
521k
    type##_predictor(dst, stride, width, height, above, left); \
716
521k
  }
aom_paeth_predictor_64x16_c
Line
Count
Source
714
5.37k
      const uint8_t *left) {                                   \
715
5.37k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.37k
  }
aom_dc_128_predictor_4x4_c
Line
Count
Source
714
23.3k
      const uint8_t *left) {                                   \
715
23.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
23.3k
  }
aom_dc_128_predictor_8x8_c
Line
Count
Source
714
7.27k
      const uint8_t *left) {                                   \
715
7.27k
    type##_predictor(dst, stride, width, height, above, left); \
716
7.27k
  }
aom_dc_128_predictor_16x16_c
Line
Count
Source
714
9.67k
      const uint8_t *left) {                                   \
715
9.67k
    type##_predictor(dst, stride, width, height, above, left); \
716
9.67k
  }
aom_dc_128_predictor_32x32_c
Line
Count
Source
714
8.44k
      const uint8_t *left) {                                   \
715
8.44k
    type##_predictor(dst, stride, width, height, above, left); \
716
8.44k
  }
aom_dc_128_predictor_64x64_c
Line
Count
Source
714
2.23k
      const uint8_t *left) {                                   \
715
2.23k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.23k
  }
aom_dc_128_predictor_4x8_c
Line
Count
Source
714
3.59k
      const uint8_t *left) {                                   \
715
3.59k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.59k
  }
aom_dc_128_predictor_8x4_c
Line
Count
Source
714
3.41k
      const uint8_t *left) {                                   \
715
3.41k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.41k
  }
aom_dc_128_predictor_8x16_c
Line
Count
Source
714
5.34k
      const uint8_t *left) {                                   \
715
5.34k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.34k
  }
aom_dc_128_predictor_16x8_c
Line
Count
Source
714
5.39k
      const uint8_t *left) {                                   \
715
5.39k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.39k
  }
aom_dc_128_predictor_16x32_c
Line
Count
Source
714
2.93k
      const uint8_t *left) {                                   \
715
2.93k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.93k
  }
aom_dc_128_predictor_32x16_c
Line
Count
Source
714
3.07k
      const uint8_t *left) {                                   \
715
3.07k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.07k
  }
aom_dc_128_predictor_32x64_c
Line
Count
Source
714
341
      const uint8_t *left) {                                   \
715
341
    type##_predictor(dst, stride, width, height, above, left); \
716
341
  }
aom_dc_128_predictor_64x32_c
Line
Count
Source
714
399
      const uint8_t *left) {                                   \
715
399
    type##_predictor(dst, stride, width, height, above, left); \
716
399
  }
aom_dc_128_predictor_4x16_c
Line
Count
Source
714
228
      const uint8_t *left) {                                   \
715
228
    type##_predictor(dst, stride, width, height, above, left); \
716
228
  }
Unexecuted instantiation: aom_dc_128_predictor_16x4_c
aom_dc_128_predictor_8x32_c
Line
Count
Source
714
156
      const uint8_t *left) {                                   \
715
156
    type##_predictor(dst, stride, width, height, above, left); \
716
156
  }
Unexecuted instantiation: aom_dc_128_predictor_32x8_c
Unexecuted instantiation: aom_dc_128_predictor_16x64_c
Unexecuted instantiation: aom_dc_128_predictor_64x16_c
aom_dc_left_predictor_4x4_c
Line
Count
Source
714
170k
      const uint8_t *left) {                                   \
715
170k
    type##_predictor(dst, stride, width, height, above, left); \
716
170k
  }
aom_dc_left_predictor_8x8_c
Line
Count
Source
714
26.3k
      const uint8_t *left) {                                   \
715
26.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
26.3k
  }
aom_dc_left_predictor_16x16_c
Line
Count
Source
714
25.2k
      const uint8_t *left) {                                   \
715
25.2k
    type##_predictor(dst, stride, width, height, above, left); \
716
25.2k
  }
aom_dc_left_predictor_32x32_c
Line
Count
Source
714
44.4k
      const uint8_t *left) {                                   \
715
44.4k
    type##_predictor(dst, stride, width, height, above, left); \
716
44.4k
  }
aom_dc_left_predictor_64x64_c
Line
Count
Source
714
12.0k
      const uint8_t *left) {                                   \
715
12.0k
    type##_predictor(dst, stride, width, height, above, left); \
716
12.0k
  }
aom_dc_left_predictor_4x8_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_dc_left_predictor_8x4_c
Line
Count
Source
714
4.85k
      const uint8_t *left) {                                   \
715
4.85k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.85k
  }
aom_dc_left_predictor_8x16_c
Line
Count
Source
714
5.88k
      const uint8_t *left) {                                   \
715
5.88k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.88k
  }
aom_dc_left_predictor_16x8_c
Line
Count
Source
714
5.22k
      const uint8_t *left) {                                   \
715
5.22k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.22k
  }
aom_dc_left_predictor_16x32_c
Line
Count
Source
714
5.90k
      const uint8_t *left) {                                   \
715
5.90k
    type##_predictor(dst, stride, width, height, above, left); \
716
5.90k
  }
aom_dc_left_predictor_32x16_c
Line
Count
Source
714
3.96k
      const uint8_t *left) {                                   \
715
3.96k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.96k
  }
aom_dc_left_predictor_32x64_c
Line
Count
Source
714
1.67k
      const uint8_t *left) {                                   \
715
1.67k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.67k
  }
aom_dc_left_predictor_64x32_c
Line
Count
Source
714
906
      const uint8_t *left) {                                   \
715
906
    type##_predictor(dst, stride, width, height, above, left); \
716
906
  }
aom_dc_left_predictor_4x16_c
Line
Count
Source
714
934
      const uint8_t *left) {                                   \
715
934
    type##_predictor(dst, stride, width, height, above, left); \
716
934
  }
aom_dc_left_predictor_16x4_c
Line
Count
Source
714
726
      const uint8_t *left) {                                   \
715
726
    type##_predictor(dst, stride, width, height, above, left); \
716
726
  }
aom_dc_left_predictor_8x32_c
Line
Count
Source
714
1.88k
      const uint8_t *left) {                                   \
715
1.88k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.88k
  }
aom_dc_left_predictor_32x8_c
Line
Count
Source
714
916
      const uint8_t *left) {                                   \
715
916
    type##_predictor(dst, stride, width, height, above, left); \
716
916
  }
aom_dc_left_predictor_16x64_c
Line
Count
Source
714
448
      const uint8_t *left) {                                   \
715
448
    type##_predictor(dst, stride, width, height, above, left); \
716
448
  }
aom_dc_left_predictor_64x16_c
Line
Count
Source
714
274
      const uint8_t *left) {                                   \
715
274
    type##_predictor(dst, stride, width, height, above, left); \
716
274
  }
aom_dc_top_predictor_4x4_c
Line
Count
Source
714
137k
      const uint8_t *left) {                                   \
715
137k
    type##_predictor(dst, stride, width, height, above, left); \
716
137k
  }
aom_dc_top_predictor_8x8_c
Line
Count
Source
714
19.8k
      const uint8_t *left) {                                   \
715
19.8k
    type##_predictor(dst, stride, width, height, above, left); \
716
19.8k
  }
aom_dc_top_predictor_16x16_c
Line
Count
Source
714
14.5k
      const uint8_t *left) {                                   \
715
14.5k
    type##_predictor(dst, stride, width, height, above, left); \
716
14.5k
  }
aom_dc_top_predictor_32x32_c
Line
Count
Source
714
21.3k
      const uint8_t *left) {                                   \
715
21.3k
    type##_predictor(dst, stride, width, height, above, left); \
716
21.3k
  }
aom_dc_top_predictor_64x64_c
Line
Count
Source
714
3.87k
      const uint8_t *left) {                                   \
715
3.87k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.87k
  }
aom_dc_top_predictor_4x8_c
Line
Count
Source
714
1.01k
      const uint8_t *left) {                                   \
715
1.01k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.01k
  }
aom_dc_top_predictor_8x4_c
Line
Count
Source
714
3.45k
      const uint8_t *left) {                                   \
715
3.45k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.45k
  }
aom_dc_top_predictor_8x16_c
Line
Count
Source
714
2.82k
      const uint8_t *left) {                                   \
715
2.82k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.82k
  }
aom_dc_top_predictor_16x8_c
Line
Count
Source
714
4.01k
      const uint8_t *left) {                                   \
715
4.01k
    type##_predictor(dst, stride, width, height, above, left); \
716
4.01k
  }
aom_dc_top_predictor_16x32_c
Line
Count
Source
714
2.13k
      const uint8_t *left) {                                   \
715
2.13k
    type##_predictor(dst, stride, width, height, above, left); \
716
2.13k
  }
aom_dc_top_predictor_32x16_c
Line
Count
Source
714
3.69k
      const uint8_t *left) {                                   \
715
3.69k
    type##_predictor(dst, stride, width, height, above, left); \
716
3.69k
  }
aom_dc_top_predictor_32x64_c
Line
Count
Source
714
408
      const uint8_t *left) {                                   \
715
408
    type##_predictor(dst, stride, width, height, above, left); \
716
408
  }
aom_dc_top_predictor_64x32_c
Line
Count
Source
714
1.08k
      const uint8_t *left) {                                   \
715
1.08k
    type##_predictor(dst, stride, width, height, above, left); \
716
1.08k
  }
aom_dc_top_predictor_4x16_c
Line
Count
Source
714
44
      const uint8_t *left) {                                   \
715
44
    type##_predictor(dst, stride, width, height, above, left); \
716
44
  }
aom_dc_top_predictor_16x4_c
Line
Count
Source
714
236
      const uint8_t *left) {                                   \
715
236
    type##_predictor(dst, stride, width, height, above, left); \
716
236
  }
aom_dc_top_predictor_8x32_c
Line
Count
Source
714
242
      const uint8_t *left) {                                   \
715
242
    type##_predictor(dst, stride, width, height, above, left); \
716
242
  }
aom_dc_top_predictor_32x8_c
Line
Count
Source
714
134
      const uint8_t *left) {                                   \
715
134
    type##_predictor(dst, stride, width, height, above, left); \
716
134
  }
aom_dc_top_predictor_16x64_c
Line
Count
Source
714
96
      const uint8_t *left) {                                   \
715
96
    type##_predictor(dst, stride, width, height, above, left); \
716
96
  }
aom_dc_top_predictor_64x16_c
Line
Count
Source
714
48
      const uint8_t *left) {                                   \
715
48
    type##_predictor(dst, stride, width, height, above, left); \
716
48
  }
aom_dc_predictor_4x4_c
Line
Count
Source
714
3.87M
      const uint8_t *left) {                                   \
715
3.87M
    type##_predictor(dst, stride, width, height, above, left); \
716
3.87M
  }
aom_dc_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_dc_predictor_16x16_c
Line
Count
Source
714
141k
      const uint8_t *left) {                                   \
715
141k
    type##_predictor(dst, stride, width, height, above, left); \
716
141k
  }
aom_dc_predictor_32x32_c
Line
Count
Source
714
170k
      const uint8_t *left) {                                   \
715
170k
    type##_predictor(dst, stride, width, height, above, left); \
716
170k
  }
aom_dc_predictor_64x64_c
Line
Count
Source
714
41.1k
      const uint8_t *left) {                                   \
715
41.1k
    type##_predictor(dst, stride, width, height, above, left); \
716
41.1k
  }
717
718
#define intra_pred_highbd_sized(type, width, height)                        \
719
  void aom_highbd_##type##_predictor_##width##x##height##_c(                \
720
      uint16_t *dst, ptrdiff_t stride, const uint16_t *above,               \
721
3.49M
      const uint16_t *left, int bd) {                                       \
722
3.49M
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.49M
  }
aom_highbd_v_predictor_4x4_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_v_predictor_8x8_c
Line
Count
Source
721
12.9k
      const uint16_t *left, int bd) {                                       \
722
12.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
12.9k
  }
aom_highbd_v_predictor_16x16_c
Line
Count
Source
721
7.35k
      const uint16_t *left, int bd) {                                       \
722
7.35k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.35k
  }
aom_highbd_v_predictor_32x32_c
Line
Count
Source
721
3.35k
      const uint16_t *left, int bd) {                                       \
722
3.35k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.35k
  }
aom_highbd_v_predictor_64x64_c
Line
Count
Source
721
1.00k
      const uint16_t *left, int bd) {                                       \
722
1.00k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.00k
  }
aom_highbd_v_predictor_4x8_c
Line
Count
Source
721
9.76k
      const uint16_t *left, int bd) {                                       \
722
9.76k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.76k
  }
aom_highbd_v_predictor_8x4_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_8x16_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_v_predictor_16x8_c
Line
Count
Source
721
4.59k
      const uint16_t *left, int bd) {                                       \
722
4.59k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.59k
  }
aom_highbd_v_predictor_16x32_c
Line
Count
Source
721
722
      const uint16_t *left, int bd) {                                       \
722
722
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
722
  }
aom_highbd_v_predictor_32x16_c
Line
Count
Source
721
1.13k
      const uint16_t *left, int bd) {                                       \
722
1.13k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.13k
  }
aom_highbd_v_predictor_32x64_c
Line
Count
Source
721
78
      const uint16_t *left, int bd) {                                       \
722
78
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
78
  }
aom_highbd_v_predictor_64x32_c
Line
Count
Source
721
196
      const uint16_t *left, int bd) {                                       \
722
196
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
196
  }
aom_highbd_v_predictor_4x16_c
Line
Count
Source
721
3.13k
      const uint16_t *left, int bd) {                                       \
722
3.13k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.13k
  }
aom_highbd_v_predictor_16x4_c
Line
Count
Source
721
4.65k
      const uint16_t *left, int bd) {                                       \
722
4.65k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.65k
  }
aom_highbd_v_predictor_8x32_c
Line
Count
Source
721
2.86k
      const uint16_t *left, int bd) {                                       \
722
2.86k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.86k
  }
aom_highbd_v_predictor_32x8_c
Line
Count
Source
721
1.98k
      const uint16_t *left, int bd) {                                       \
722
1.98k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.98k
  }
aom_highbd_v_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_v_predictor_64x16_c
Line
Count
Source
721
284
      const uint16_t *left, int bd) {                                       \
722
284
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
284
  }
aom_highbd_h_predictor_4x4_c
Line
Count
Source
721
52.1k
      const uint16_t *left, int bd) {                                       \
722
52.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
52.1k
  }
aom_highbd_h_predictor_8x8_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_h_predictor_16x16_c
Line
Count
Source
721
15.9k
      const uint16_t *left, int bd) {                                       \
722
15.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
15.9k
  }
aom_highbd_h_predictor_32x32_c
Line
Count
Source
721
8.43k
      const uint16_t *left, int bd) {                                       \
722
8.43k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.43k
  }
aom_highbd_h_predictor_64x64_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_h_predictor_4x8_c
Line
Count
Source
721
15.4k
      const uint16_t *left, int bd) {                                       \
722
15.4k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
15.4k
  }
aom_highbd_h_predictor_8x4_c
Line
Count
Source
721
22.9k
      const uint16_t *left, int bd) {                                       \
722
22.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
22.9k
  }
aom_highbd_h_predictor_8x16_c
Line
Count
Source
721
5.66k
      const uint16_t *left, int bd) {                                       \
722
5.66k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.66k
  }
aom_highbd_h_predictor_16x8_c
Line
Count
Source
721
7.77k
      const uint16_t *left, int bd) {                                       \
722
7.77k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.77k
  }
aom_highbd_h_predictor_16x32_c
Line
Count
Source
721
1.51k
      const uint16_t *left, int bd) {                                       \
722
1.51k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.51k
  }
aom_highbd_h_predictor_32x16_c
Line
Count
Source
721
2.29k
      const uint16_t *left, int bd) {                                       \
722
2.29k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.29k
  }
aom_highbd_h_predictor_32x64_c
Line
Count
Source
721
280
      const uint16_t *left, int bd) {                                       \
722
280
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
280
  }
aom_highbd_h_predictor_64x32_c
Line
Count
Source
721
414
      const uint16_t *left, int bd) {                                       \
722
414
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
414
  }
aom_highbd_h_predictor_4x16_c
Line
Count
Source
721
5.24k
      const uint16_t *left, int bd) {                                       \
722
5.24k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.24k
  }
aom_highbd_h_predictor_16x4_c
Line
Count
Source
721
8.55k
      const uint16_t *left, int bd) {                                       \
722
8.55k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.55k
  }
aom_highbd_h_predictor_8x32_c
Line
Count
Source
721
3.86k
      const uint16_t *left, int bd) {                                       \
722
3.86k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.86k
  }
aom_highbd_h_predictor_32x8_c
Line
Count
Source
721
3.34k
      const uint16_t *left, int bd) {                                       \
722
3.34k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.34k
  }
aom_highbd_h_predictor_16x64_c
Line
Count
Source
721
1.68k
      const uint16_t *left, int bd) {                                       \
722
1.68k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.68k
  }
aom_highbd_h_predictor_64x16_c
Line
Count
Source
721
648
      const uint16_t *left, int bd) {                                       \
722
648
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
648
  }
aom_highbd_smooth_predictor_4x4_c
Line
Count
Source
721
95.2k
      const uint16_t *left, int bd) {                                       \
722
95.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
95.2k
  }
aom_highbd_smooth_predictor_8x8_c
Line
Count
Source
721
46.1k
      const uint16_t *left, int bd) {                                       \
722
46.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
46.1k
  }
aom_highbd_smooth_predictor_16x16_c
Line
Count
Source
721
37.3k
      const uint16_t *left, int bd) {                                       \
722
37.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
37.3k
  }
aom_highbd_smooth_predictor_32x32_c
Line
Count
Source
721
14.9k
      const uint16_t *left, int bd) {                                       \
722
14.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
14.9k
  }
aom_highbd_smooth_predictor_64x64_c
Line
Count
Source
721
6.36k
      const uint16_t *left, int bd) {                                       \
722
6.36k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.36k
  }
aom_highbd_smooth_predictor_4x8_c
Line
Count
Source
721
24.9k
      const uint16_t *left, int bd) {                                       \
722
24.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
24.9k
  }
aom_highbd_smooth_predictor_8x4_c
Line
Count
Source
721
36.8k
      const uint16_t *left, int bd) {                                       \
722
36.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
36.8k
  }
aom_highbd_smooth_predictor_8x16_c
Line
Count
Source
721
11.5k
      const uint16_t *left, int bd) {                                       \
722
11.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
11.5k
  }
aom_highbd_smooth_predictor_16x8_c
Line
Count
Source
721
16.6k
      const uint16_t *left, int bd) {                                       \
722
16.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
16.6k
  }
aom_highbd_smooth_predictor_16x32_c
Line
Count
Source
721
3.28k
      const uint16_t *left, int bd) {                                       \
722
3.28k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.28k
  }
aom_highbd_smooth_predictor_32x16_c
Line
Count
Source
721
4.11k
      const uint16_t *left, int bd) {                                       \
722
4.11k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.11k
  }
aom_highbd_smooth_predictor_32x64_c
Line
Count
Source
721
656
      const uint16_t *left, int bd) {                                       \
722
656
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
656
  }
aom_highbd_smooth_predictor_64x32_c
Line
Count
Source
721
970
      const uint16_t *left, int bd) {                                       \
722
970
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
970
  }
aom_highbd_smooth_predictor_4x16_c
Line
Count
Source
721
10.8k
      const uint16_t *left, int bd) {                                       \
722
10.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
10.8k
  }
aom_highbd_smooth_predictor_16x4_c
Line
Count
Source
721
16.6k
      const uint16_t *left, int bd) {                                       \
722
16.6k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
16.6k
  }
aom_highbd_smooth_predictor_8x32_c
Line
Count
Source
721
7.06k
      const uint16_t *left, int bd) {                                       \
722
7.06k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.06k
  }
aom_highbd_smooth_predictor_32x8_c
Line
Count
Source
721
6.10k
      const uint16_t *left, int bd) {                                       \
722
6.10k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.10k
  }
aom_highbd_smooth_predictor_16x64_c
Line
Count
Source
721
3.42k
      const uint16_t *left, int bd) {                                       \
722
3.42k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.42k
  }
aom_highbd_smooth_predictor_64x16_c
Line
Count
Source
721
1.31k
      const uint16_t *left, int bd) {                                       \
722
1.31k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.31k
  }
aom_highbd_smooth_v_predictor_4x4_c
Line
Count
Source
721
33.1k
      const uint16_t *left, int bd) {                                       \
722
33.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
33.1k
  }
aom_highbd_smooth_v_predictor_8x8_c
Line
Count
Source
721
13.7k
      const uint16_t *left, int bd) {                                       \
722
13.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.7k
  }
aom_highbd_smooth_v_predictor_16x16_c
Line
Count
Source
721
8.65k
      const uint16_t *left, int bd) {                                       \
722
8.65k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.65k
  }
aom_highbd_smooth_v_predictor_32x32_c
Line
Count
Source
721
5.14k
      const uint16_t *left, int bd) {                                       \
722
5.14k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.14k
  }
aom_highbd_smooth_v_predictor_64x64_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_4x8_c
Line
Count
Source
721
8.87k
      const uint16_t *left, int bd) {                                       \
722
8.87k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8.87k
  }
aom_highbd_smooth_v_predictor_8x4_c
Line
Count
Source
721
13.3k
      const uint16_t *left, int bd) {                                       \
722
13.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.3k
  }
aom_highbd_smooth_v_predictor_8x16_c
Line
Count
Source
721
3.28k
      const uint16_t *left, int bd) {                                       \
722
3.28k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.28k
  }
aom_highbd_smooth_v_predictor_16x8_c
Line
Count
Source
721
4.89k
      const uint16_t *left, int bd) {                                       \
722
4.89k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.89k
  }
aom_highbd_smooth_v_predictor_16x32_c
Line
Count
Source
721
824
      const uint16_t *left, int bd) {                                       \
722
824
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
824
  }
aom_highbd_smooth_v_predictor_32x16_c
Line
Count
Source
721
1.39k
      const uint16_t *left, int bd) {                                       \
722
1.39k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.39k
  }
aom_highbd_smooth_v_predictor_32x64_c
Line
Count
Source
721
574
      const uint16_t *left, int bd) {                                       \
722
574
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
574
  }
aom_highbd_smooth_v_predictor_64x32_c
Line
Count
Source
721
206
      const uint16_t *left, int bd) {                                       \
722
206
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
206
  }
aom_highbd_smooth_v_predictor_4x16_c
Line
Count
Source
721
3.17k
      const uint16_t *left, int bd) {                                       \
722
3.17k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.17k
  }
aom_highbd_smooth_v_predictor_16x4_c
Line
Count
Source
721
5.44k
      const uint16_t *left, int bd) {                                       \
722
5.44k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.44k
  }
aom_highbd_smooth_v_predictor_8x32_c
Line
Count
Source
721
3.48k
      const uint16_t *left, int bd) {                                       \
722
3.48k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.48k
  }
aom_highbd_smooth_v_predictor_32x8_c
Line
Count
Source
721
1.92k
      const uint16_t *left, int bd) {                                       \
722
1.92k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.92k
  }
aom_highbd_smooth_v_predictor_16x64_c
Line
Count
Source
721
1.16k
      const uint16_t *left, int bd) {                                       \
722
1.16k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.16k
  }
aom_highbd_smooth_v_predictor_64x16_c
Line
Count
Source
721
424
      const uint16_t *left, int bd) {                                       \
722
424
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
424
  }
aom_highbd_smooth_h_predictor_4x4_c
Line
Count
Source
721
34.9k
      const uint16_t *left, int bd) {                                       \
722
34.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
34.9k
  }
aom_highbd_smooth_h_predictor_8x8_c
Line
Count
Source
721
18.8k
      const uint16_t *left, int bd) {                                       \
722
18.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
18.8k
  }
aom_highbd_smooth_h_predictor_16x16_c
Line
Count
Source
721
14.2k
      const uint16_t *left, int bd) {                                       \
722
14.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
14.2k
  }
aom_highbd_smooth_h_predictor_32x32_c
Line
Count
Source
721
7.89k
      const uint16_t *left, int bd) {                                       \
722
7.89k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.89k
  }
aom_highbd_smooth_h_predictor_64x64_c
Line
Count
Source
721
2.66k
      const uint16_t *left, int bd) {                                       \
722
2.66k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.66k
  }
aom_highbd_smooth_h_predictor_4x8_c
Line
Count
Source
721
11.0k
      const uint16_t *left, int bd) {                                       \
722
11.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
11.0k
  }
aom_highbd_smooth_h_predictor_8x4_c
Line
Count
Source
721
17.0k
      const uint16_t *left, int bd) {                                       \
722
17.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
17.0k
  }
aom_highbd_smooth_h_predictor_8x16_c
Line
Count
Source
721
4.75k
      const uint16_t *left, int bd) {                                       \
722
4.75k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.75k
  }
aom_highbd_smooth_h_predictor_16x8_c
Line
Count
Source
721
6.78k
      const uint16_t *left, int bd) {                                       \
722
6.78k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
6.78k
  }
aom_highbd_smooth_h_predictor_16x32_c
Line
Count
Source
721
1.29k
      const uint16_t *left, int bd) {                                       \
722
1.29k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.29k
  }
aom_highbd_smooth_h_predictor_32x16_c
Line
Count
Source
721
1.73k
      const uint16_t *left, int bd) {                                       \
722
1.73k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.73k
  }
aom_highbd_smooth_h_predictor_32x64_c
Line
Count
Source
721
308
      const uint16_t *left, int bd) {                                       \
722
308
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
308
  }
aom_highbd_smooth_h_predictor_64x32_c
Line
Count
Source
721
504
      const uint16_t *left, int bd) {                                       \
722
504
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
504
  }
aom_highbd_smooth_h_predictor_4x16_c
Line
Count
Source
721
5.23k
      const uint16_t *left, int bd) {                                       \
722
5.23k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.23k
  }
aom_highbd_smooth_h_predictor_16x4_c
Line
Count
Source
721
7.00k
      const uint16_t *left, int bd) {                                       \
722
7.00k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.00k
  }
aom_highbd_smooth_h_predictor_8x32_c
Line
Count
Source
721
3.58k
      const uint16_t *left, int bd) {                                       \
722
3.58k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.58k
  }
aom_highbd_smooth_h_predictor_32x8_c
Line
Count
Source
721
2.51k
      const uint16_t *left, int bd) {                                       \
722
2.51k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.51k
  }
aom_highbd_smooth_h_predictor_16x64_c
Line
Count
Source
721
2.17k
      const uint16_t *left, int bd) {                                       \
722
2.17k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.17k
  }
aom_highbd_smooth_h_predictor_64x16_c
Line
Count
Source
721
580
      const uint16_t *left, int bd) {                                       \
722
580
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
580
  }
aom_highbd_paeth_predictor_4x4_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_8x8_c
Line
Count
Source
721
126k
      const uint16_t *left, int bd) {                                       \
722
126k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
126k
  }
aom_highbd_paeth_predictor_16x16_c
Line
Count
Source
721
69.0k
      const uint16_t *left, int bd) {                                       \
722
69.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
69.0k
  }
aom_highbd_paeth_predictor_32x32_c
Line
Count
Source
721
117k
      const uint16_t *left, int bd) {                                       \
722
117k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
117k
  }
aom_highbd_paeth_predictor_64x64_c
Line
Count
Source
721
50.5k
      const uint16_t *left, int bd) {                                       \
722
50.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
50.5k
  }
aom_highbd_paeth_predictor_4x8_c
Line
Count
Source
721
68.1k
      const uint16_t *left, int bd) {                                       \
722
68.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
68.1k
  }
aom_highbd_paeth_predictor_8x4_c
Line
Count
Source
721
105k
      const uint16_t *left, int bd) {                                       \
722
105k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
105k
  }
aom_highbd_paeth_predictor_8x16_c
Line
Count
Source
721
42.1k
      const uint16_t *left, int bd) {                                       \
722
42.1k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
42.1k
  }
aom_highbd_paeth_predictor_16x8_c
Line
Count
Source
721
67.8k
      const uint16_t *left, int bd) {                                       \
722
67.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
67.8k
  }
aom_highbd_paeth_predictor_16x32_c
Line
Count
Source
721
13.3k
      const uint16_t *left, int bd) {                                       \
722
13.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
13.3k
  }
aom_highbd_paeth_predictor_32x16_c
Line
Count
Source
721
15.8k
      const uint16_t *left, int bd) {                                       \
722
15.8k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
15.8k
  }
aom_highbd_paeth_predictor_32x64_c
Line
Count
Source
721
2.21k
      const uint16_t *left, int bd) {                                       \
722
2.21k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.21k
  }
aom_highbd_paeth_predictor_64x32_c
Line
Count
Source
721
2.72k
      const uint16_t *left, int bd) {                                       \
722
2.72k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.72k
  }
aom_highbd_paeth_predictor_4x16_c
Line
Count
Source
721
66.9k
      const uint16_t *left, int bd) {                                       \
722
66.9k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
66.9k
  }
aom_highbd_paeth_predictor_16x4_c
Line
Count
Source
721
59.7k
      const uint16_t *left, int bd) {                                       \
722
59.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
59.7k
  }
aom_highbd_paeth_predictor_8x32_c
Line
Count
Source
721
419k
      const uint16_t *left, int bd) {                                       \
722
419k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
419k
  }
aom_highbd_paeth_predictor_32x8_c
Line
Count
Source
721
22.3k
      const uint16_t *left, int bd) {                                       \
722
22.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
22.3k
  }
aom_highbd_paeth_predictor_16x64_c
Line
Count
Source
721
202k
      const uint16_t *left, int bd) {                                       \
722
202k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
202k
  }
aom_highbd_paeth_predictor_64x16_c
Line
Count
Source
721
4.20k
      const uint16_t *left, int bd) {                                       \
722
4.20k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.20k
  }
aom_highbd_dc_128_predictor_4x4_c
Line
Count
Source
721
8
      const uint16_t *left, int bd) {                                       \
722
8
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8
  }
Unexecuted instantiation: aom_highbd_dc_128_predictor_8x8_c
aom_highbd_dc_128_predictor_16x16_c
Line
Count
Source
721
78
      const uint16_t *left, int bd) {                                       \
722
78
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
78
  }
aom_highbd_dc_128_predictor_32x32_c
Line
Count
Source
721
1.68k
      const uint16_t *left, int bd) {                                       \
722
1.68k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.68k
  }
aom_highbd_dc_128_predictor_64x64_c
Line
Count
Source
721
176
      const uint16_t *left, int bd) {                                       \
722
176
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
176
  }
Unexecuted instantiation: aom_highbd_dc_128_predictor_4x8_c
Unexecuted instantiation: aom_highbd_dc_128_predictor_8x4_c
Unexecuted instantiation: aom_highbd_dc_128_predictor_8x16_c
Unexecuted instantiation: aom_highbd_dc_128_predictor_16x8_c
aom_highbd_dc_128_predictor_16x32_c
Line
Count
Source
721
8
      const uint16_t *left, int bd) {                                       \
722
8
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
8
  }
Unexecuted instantiation: aom_highbd_dc_128_predictor_32x16_c
Unexecuted instantiation: aom_highbd_dc_128_predictor_32x64_c
Unexecuted instantiation: aom_highbd_dc_128_predictor_64x32_c
Unexecuted instantiation: aom_highbd_dc_128_predictor_4x16_c
Unexecuted instantiation: aom_highbd_dc_128_predictor_16x4_c
aom_highbd_dc_128_predictor_8x32_c
Line
Count
Source
721
4
      const uint16_t *left, int bd) {                                       \
722
4
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4
  }
aom_highbd_dc_128_predictor_32x8_c
Line
Count
Source
721
192
      const uint16_t *left, int bd) {                                       \
722
192
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
192
  }
Unexecuted instantiation: aom_highbd_dc_128_predictor_16x64_c
aom_highbd_dc_128_predictor_64x16_c
Line
Count
Source
721
96
      const uint16_t *left, int bd) {                                       \
722
96
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
96
  }
aom_highbd_dc_left_predictor_4x4_c
Line
Count
Source
721
10.2k
      const uint16_t *left, int bd) {                                       \
722
10.2k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
10.2k
  }
aom_highbd_dc_left_predictor_8x8_c
Line
Count
Source
721
7.64k
      const uint16_t *left, int bd) {                                       \
722
7.64k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
7.64k
  }
aom_highbd_dc_left_predictor_16x16_c
Line
Count
Source
721
20.5k
      const uint16_t *left, int bd) {                                       \
722
20.5k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
20.5k
  }
aom_highbd_dc_left_predictor_32x32_c
Line
Count
Source
721
36.7k
      const uint16_t *left, int bd) {                                       \
722
36.7k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
36.7k
  }
aom_highbd_dc_left_predictor_64x64_c
Line
Count
Source
721
9.26k
      const uint16_t *left, int bd) {                                       \
722
9.26k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
9.26k
  }
aom_highbd_dc_left_predictor_4x8_c
Line
Count
Source
721
3.88k
      const uint16_t *left, int bd) {                                       \
722
3.88k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.88k
  }
aom_highbd_dc_left_predictor_8x4_c
Line
Count
Source
721
3.76k
      const uint16_t *left, int bd) {                                       \
722
3.76k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.76k
  }
aom_highbd_dc_left_predictor_8x16_c
Line
Count
Source
721
4.52k
      const uint16_t *left, int bd) {                                       \
722
4.52k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
4.52k
  }
aom_highbd_dc_left_predictor_16x8_c
Line
Count
Source
721
3.39k
      const uint16_t *left, int bd) {                                       \
722
3.39k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.39k
  }
aom_highbd_dc_left_predictor_16x32_c
Line
Count
Source
721
5.62k
      const uint16_t *left, int bd) {                                       \
722
5.62k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
5.62k
  }
aom_highbd_dc_left_predictor_32x16_c
Line
Count
Source
721
3.57k
      const uint16_t *left, int bd) {                                       \
722
3.57k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.57k
  }
aom_highbd_dc_left_predictor_32x64_c
Line
Count
Source
721
1.36k
      const uint16_t *left, int bd) {                                       \
722
1.36k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.36k
  }
aom_highbd_dc_left_predictor_64x32_c
Line
Count
Source
721
982
      const uint16_t *left, int bd) {                                       \
722
982
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
982
  }
aom_highbd_dc_left_predictor_4x16_c
Line
Count
Source
721
2.88k
      const uint16_t *left, int bd) {                                       \
722
2.88k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.88k
  }
aom_highbd_dc_left_predictor_16x4_c
Line
Count
Source
721
2.27k
      const uint16_t *left, int bd) {                                       \
722
2.27k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
2.27k
  }
aom_highbd_dc_left_predictor_8x32_c
Line
Count
Source
721
3.86k
      const uint16_t *left, int bd) {                                       \
722
3.86k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
3.86k
  }
aom_highbd_dc_left_predictor_32x8_c
Line
Count
Source
721
1.99k
      const uint16_t *left, int bd) {                                       \
722
1.99k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.99k
  }
aom_highbd_dc_left_predictor_16x64_c
Line
Count
Source
721
1.07k
      const uint16_t *left, int bd) {                                       \
722
1.07k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
1.07k
  }
aom_highbd_dc_left_predictor_64x16_c
Line
Count
Source
721
600
      const uint16_t *left, int bd) {                                       \
722
600
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
600
  }
aom_highbd_dc_top_predictor_4x4_c
Line
Count
Source
721
104
      const uint16_t *left, int bd) {                                       \
722
104
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
104
  }
aom_highbd_dc_top_predictor_8x8_c
Line
Count
Source
721
204
      const uint16_t *left, int bd) {                                       \
722
204
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
204
  }
aom_highbd_dc_top_predictor_16x16_c
Line
Count
Source
721
926
      const uint16_t *left, int bd) {                                       \
722
926
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
926
  }
aom_highbd_dc_top_predictor_32x32_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_top_predictor_64x64_c
Line
Count
Source
721
680
      const uint16_t *left, int bd) {                                       \
722
680
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
680
  }
aom_highbd_dc_top_predictor_4x8_c
Line
Count
Source
721
96
      const uint16_t *left, int bd) {                                       \
722
96
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
96
  }
aom_highbd_dc_top_predictor_8x4_c
Line
Count
Source
721
112
      const uint16_t *left, int bd) {                                       \
722
112
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
112
  }
aom_highbd_dc_top_predictor_8x16_c
Line
Count
Source
721
58
      const uint16_t *left, int bd) {                                       \
722
58
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
58
  }
aom_highbd_dc_top_predictor_16x8_c
Line
Count
Source
721
186
      const uint16_t *left, int bd) {                                       \
722
186
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
186
  }
aom_highbd_dc_top_predictor_16x32_c
Line
Count
Source
721
60
      const uint16_t *left, int bd) {                                       \
722
60
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
60
  }
aom_highbd_dc_top_predictor_32x16_c
Line
Count
Source
721
102
      const uint16_t *left, int bd) {                                       \
722
102
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
102
  }
aom_highbd_dc_top_predictor_32x64_c
Line
Count
Source
721
26
      const uint16_t *left, int bd) {                                       \
722
26
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
26
  }
aom_highbd_dc_top_predictor_64x32_c
Line
Count
Source
721
34
      const uint16_t *left, int bd) {                                       \
722
34
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
34
  }
aom_highbd_dc_top_predictor_4x16_c
Line
Count
Source
721
44
      const uint16_t *left, int bd) {                                       \
722
44
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
44
  }
aom_highbd_dc_top_predictor_16x4_c
Line
Count
Source
721
120
      const uint16_t *left, int bd) {                                       \
722
120
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
120
  }
aom_highbd_dc_top_predictor_8x32_c
Line
Count
Source
721
262
      const uint16_t *left, int bd) {                                       \
722
262
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
262
  }
aom_highbd_dc_top_predictor_32x8_c
Line
Count
Source
721
350
      const uint16_t *left, int bd) {                                       \
722
350
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
350
  }
aom_highbd_dc_top_predictor_16x64_c
Line
Count
Source
721
112
      const uint16_t *left, int bd) {                                       \
722
112
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
112
  }
aom_highbd_dc_top_predictor_64x16_c
Line
Count
Source
721
136
      const uint16_t *left, int bd) {                                       \
722
136
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
136
  }
aom_highbd_dc_predictor_4x4_c
Line
Count
Source
721
472k
      const uint16_t *left, int bd) {                                       \
722
472k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
472k
  }
aom_highbd_dc_predictor_8x8_c
Line
Count
Source
721
173k
      const uint16_t *left, int bd) {                                       \
722
173k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
173k
  }
aom_highbd_dc_predictor_16x16_c
Line
Count
Source
721
128k
      const uint16_t *left, int bd) {                                       \
722
128k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
128k
  }
aom_highbd_dc_predictor_32x32_c
Line
Count
Source
721
76.3k
      const uint16_t *left, int bd) {                                       \
722
76.3k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
76.3k
  }
aom_highbd_dc_predictor_64x64_c
Line
Count
Source
721
20.0k
      const uint16_t *left, int bd) {                                       \
722
20.0k
    highbd_##type##_predictor(dst, stride, width, height, above, left, bd); \
723
20.0k
  }
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