../../../ffmpeg/
Coverage:
low: ≥ 0%
medium: ≥ 75.0%
high: ≥ 90.0%
Lines:
793 / 1340
59.2%
Branches:
614 / 1252
49.0%
Functions:
54 / 72
75.0%

libavcodec/hevc/pred_template.c
Line Branch Exec Source
1 /*
2 * HEVC video decoder
3 *
4 * Copyright (C) 2012 - 2013 Guillaume Martres
5 *
6 * This file is part of FFmpeg.
7 *
8 * FFmpeg is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * FFmpeg is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with FFmpeg; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 */
22
23 #include "libavutil/pixdesc.h"
24
25 #include "libavcodec/bit_depth_template.c"
26 #include "pred.h"
27
28 1228396 static void FUNC(ref_filter_3tap)(uint8_t *filtered_left,
29 uint8_t *filtered_top,
30 const uint8_t *left,
31 const uint8_t *top,
32 int size)
33 {
34 1228396 pixel *filtered_left_p = (pixel *)filtered_left;
35 1228396 pixel *filtered_top_p = (pixel *)filtered_top;
36 1228396 const pixel *left_p = (const pixel *)left;
37 1228396 const pixel *top_p = (const pixel *)top;
38 int i;
39 1228396 int n = 2 * size;
40
41 1228396 filtered_left_p[n - 1] = left_p[n - 1];
42 1228396 filtered_top_p[n - 1] = top_p[n - 1];
43
6/8
ref_filter_3tap_10:
✓ Branch 4 → 3 taken 1644980 times.
✓ Branch 4 → 5 taken 60796 times.
ref_filter_3tap_12:
✓ Branch 4 → 3 taken 769400 times.
✓ Branch 4 → 5 taken 35800 times.
ref_filter_3tap_8:
✓ Branch 4 → 3 taken 31626056 times.
✓ Branch 4 → 5 taken 1131800 times.
ref_filter_3tap_9:
✗ Branch 4 → 3 not taken.
✗ Branch 4 → 5 not taken.
35268832 for (i = n - 2; i >= 0; i--)
44 34040436 filtered_left_p[i] = (left_p[i + 1] + 2 * left_p[i] + left_p[i - 1] + 2) >> 2;
45 1228396 filtered_top_p[-1] =
46 1228396 filtered_left_p[-1] = (left_p[0] + 2 * left_p[-1] + top_p[0] + 2) >> 2;
47
6/8
ref_filter_3tap_10:
✓ Branch 7 → 6 taken 1644980 times.
✓ Branch 7 → 8 taken 60796 times.
ref_filter_3tap_12:
✓ Branch 7 → 6 taken 769400 times.
✓ Branch 7 → 8 taken 35800 times.
ref_filter_3tap_8:
✓ Branch 7 → 6 taken 31626056 times.
✓ Branch 7 → 8 taken 1131800 times.
ref_filter_3tap_9:
✗ Branch 7 → 6 not taken.
✗ Branch 7 → 8 not taken.
35268832 for (i = n - 2; i >= 0; i--)
48 34040436 filtered_top_p[i] = (top_p[i + 1] + 2 * top_p[i] + top_p[i - 1] + 2) >> 2;
49 1228396 }
50
51 42637 static void FUNC(ref_filter_strong)(uint8_t *filtered_top,
52 uint8_t *left,
53 const uint8_t *top)
54 {
55 42637 pixel *filtered_top_p = (pixel *)filtered_top;
56 42637 pixel *left_p = (pixel *)left;
57 42637 const pixel *top_p = (const pixel *)top;
58 int i;
59
60 42637 filtered_top_p[-1] = top_p[-1];
61 42637 filtered_top_p[63] = top_p[63];
62
6/8
ref_filter_strong_10:
✓ Branch 4 → 3 taken 416619 times.
✓ Branch 4 → 5 taken 6613 times.
ref_filter_strong_12:
✓ Branch 4 → 3 taken 6426 times.
✓ Branch 4 → 5 taken 102 times.
ref_filter_strong_8:
✓ Branch 4 → 3 taken 2263086 times.
✓ Branch 4 → 5 taken 35922 times.
ref_filter_strong_9:
✗ Branch 4 → 3 not taken.
✗ Branch 4 → 5 not taken.
2728768 for (i = 0; i < 63; i++)
63 2686131 filtered_top_p[i] = ((64 - (i + 1)) * top_p[-1] +
64 2686131 (i + 1) * top_p[63] + 32) >> 6;
65
6/8
ref_filter_strong_10:
✓ Branch 7 → 6 taken 416619 times.
✓ Branch 7 → 8 taken 6613 times.
ref_filter_strong_12:
✓ Branch 7 → 6 taken 6426 times.
✓ Branch 7 → 8 taken 102 times.
ref_filter_strong_8:
✓ Branch 7 → 6 taken 2263086 times.
✓ Branch 7 → 8 taken 35922 times.
ref_filter_strong_9:
✗ Branch 7 → 6 not taken.
✗ Branch 7 → 8 not taken.
2728768 for (i = 0; i < 63; i++)
66 2686131 left_p[i] = ((64 - (i + 1)) * left_p[-1] +
67 2686131 (i + 1) * left_p[63] + 32) >> 6;
68 42637 }
69
70 #define POS(x, y) src[(x) + stride * (y)]
71
72 19100994 static av_always_inline void FUNC(intra_pred)(HEVCLocalContext *lc,
73 const HEVCPPS *pps,
74 int x0, int y0,
75 int log2_size, int c_idx)
76 {
77 #define PU(x) \
78 ((x) >> sps->log2_min_pu_size)
79 #define MVF(x, y) \
80 (s->cur_frame->tab_mvf[(x) + (y) * min_pu_width])
81 #define MVF_PU(x, y) \
82 MVF(PU(x0 + ((x) * (1 << hshift))), PU(y0 + ((y) * (1 << vshift))))
83 #define IS_INTRA(x, y) \
84 (MVF_PU(x, y).pred_flag == PF_INTRA)
85 #define MIN_TB_ADDR_ZS(x, y) \
86 pps->min_tb_addr_zs[(y) * (sps->tb_mask+2) + (x)]
87 #define EXTEND(ptr, val, len) \
88 do { \
89 pixel4 pix = PIXEL_SPLAT_X4(val); \
90 for (i = 0; i < (len); i += 4) \
91 AV_WN4P(ptr + i, pix); \
92 } while (0)
93
94 #define EXTEND_RIGHT_CIP(ptr, start, length) \
95 for (i = start; i < (start) + (length); i += 4) \
96 if (!IS_INTRA(i, -1)) \
97 AV_WN4P(&ptr[i], a); \
98 else \
99 a = PIXEL_SPLAT_X4(ptr[i+3])
100 #define EXTEND_LEFT_CIP(ptr, start, length) \
101 for (i = start; i > (start) - (length); i--) \
102 if (!IS_INTRA(i - 1, -1)) \
103 ptr[i - 1] = ptr[i]
104 #define EXTEND_UP_CIP(ptr, start, length) \
105 for (i = (start); i > (start) - (length); i -= 4) \
106 if (!IS_INTRA(-1, i - 3)) \
107 AV_WN4P(&ptr[i - 3], a); \
108 else \
109 a = PIXEL_SPLAT_X4(ptr[i - 3])
110 #define EXTEND_DOWN_CIP(ptr, start, length) \
111 for (i = start; i < (start) + (length); i += 4) \
112 if (!IS_INTRA(-1, i)) \
113 AV_WN4P(&ptr[i], a); \
114 else \
115 a = PIXEL_SPLAT_X4(ptr[i + 3])
116
117 19100994 const HEVCSPS *const sps = pps->sps;
118 19100994 const HEVCContext *const s = lc->parent;
119 int i;
120 19100994 int hshift = sps->hshift[c_idx];
121 19100994 int vshift = sps->vshift[c_idx];
122 19100994 int size = (1 << log2_size);
123 19100994 int size_in_luma_h = size << hshift;
124 19100994 int size_in_tbs_h = size_in_luma_h >> sps->log2_min_tb_size;
125 19100994 int size_in_luma_v = size << vshift;
126 19100994 int size_in_tbs_v = size_in_luma_v >> sps->log2_min_tb_size;
127 19100994 int x = x0 >> hshift;
128 19100994 int y = y0 >> vshift;
129 19100994 int x_tb = (x0 >> sps->log2_min_tb_size) & sps->tb_mask;
130 19100994 int y_tb = (y0 >> sps->log2_min_tb_size) & sps->tb_mask;
131
12/24
intra_pred_10:
✓ Branch 2 → 3 taken 1025238 times.
✓ Branch 2 → 6 taken 589237 times.
✓ Branch 3 → 4 taken 108448 times.
✓ Branch 3 → 6 taken 916790 times.
✓ Branch 4 → 5 taken 54224 times.
✓ Branch 4 → 6 taken 54224 times.
intra_pred_12:
✓ Branch 2 → 3 taken 185812 times.
✓ Branch 2 → 6 taken 92906 times.
✗ Branch 3 → 4 not taken.
✓ Branch 3 → 6 taken 185812 times.
✗ Branch 4 → 5 not taken.
✗ Branch 4 → 6 not taken.
intra_pred_8:
✓ Branch 2 → 3 taken 8966624 times.
✓ Branch 2 → 6 taken 8241177 times.
✗ Branch 3 → 4 not taken.
✓ Branch 3 → 6 taken 8966624 times.
✗ Branch 4 → 5 not taken.
✗ Branch 4 → 6 not taken.
intra_pred_9:
✗ Branch 2 → 3 not taken.
✗ Branch 2 → 6 not taken.
✗ Branch 3 → 4 not taken.
✗ Branch 3 → 6 not taken.
✗ Branch 4 → 5 not taken.
✗ Branch 4 → 6 not taken.
19100994 int spin = c_idx && !size_in_tbs_v && ((2 * y0) & (1 << sps->log2_min_tb_size));
132
133 19100994 int cur_tb_addr = MIN_TB_ADDR_ZS(x_tb, y_tb);
134
135 19100994 ptrdiff_t stride = s->cur_frame->f->linesize[c_idx] / sizeof(pixel);
136 19100994 pixel *src = (pixel*)s->cur_frame->f->data[c_idx] + x + y * stride;
137
138 19100994 int min_pu_width = sps->min_pu_width;
139
140
6/8
intra_pred_10:
✓ Branch 7 → 8 taken 1025238 times.
✓ Branch 7 → 9 taken 589237 times.
intra_pred_12:
✓ Branch 7 → 8 taken 185812 times.
✓ Branch 7 → 9 taken 92906 times.
intra_pred_8:
✓ Branch 7 → 8 taken 8966624 times.
✓ Branch 7 → 9 taken 8241177 times.
intra_pred_9:
✗ Branch 7 → 8 not taken.
✗ Branch 7 → 9 not taken.
19100994 enum IntraPredMode mode = c_idx ? lc->tu.intra_pred_mode_c :
141 8923320 lc->tu.intra_pred_mode;
142 pixel4 a;
143 // Extra 16 bytes of padding allow NEON 3-tap filter to do
144 // 32-byte loads without reading past the allocation.
145 pixel left_array[2 * MAX_TB_SIZE + 1 + 16];
146 pixel filtered_left_array[2 * MAX_TB_SIZE + 1];
147 pixel top_array[2 * MAX_TB_SIZE + 1 + 16];
148 pixel filtered_top_array[2 * MAX_TB_SIZE + 1];
149
150 19100994 pixel *left = left_array + 1;
151 19100994 pixel *top = top_array + 1;
152 19100994 pixel *filtered_left = filtered_left_array + 1;
153 19100994 pixel *filtered_top = filtered_top_array + 1;
154
12/16
intra_pred_10:
✓ Branch 10 → 11 taken 1304343 times.
✓ Branch 10 → 13 taken 310132 times.
✓ Branch 11 → 12 taken 732545 times.
✓ Branch 11 → 13 taken 571798 times.
intra_pred_12:
✓ Branch 10 → 11 taken 250563 times.
✓ Branch 10 → 13 taken 28155 times.
✓ Branch 11 → 12 taken 90756 times.
✓ Branch 11 → 13 taken 159807 times.
intra_pred_8:
✓ Branch 10 → 11 taken 14321637 times.
✓ Branch 10 → 13 taken 2886164 times.
✓ Branch 11 → 12 taken 5317969 times.
✓ Branch 11 → 13 taken 9003668 times.
intra_pred_9:
✗ Branch 10 → 11 not taken.
✗ Branch 10 → 13 not taken.
✗ Branch 11 → 12 not taken.
✗ Branch 11 → 13 not taken.
19100994 int cand_bottom_left = lc->na.cand_bottom_left && cur_tb_addr > MIN_TB_ADDR_ZS( x_tb - 1, (y_tb + size_in_tbs_v + spin) & sps->tb_mask);
155 19100994 int cand_left = lc->na.cand_left;
156 19100994 int cand_up_left = lc->na.cand_up_left;
157 19100994 int cand_up = lc->na.cand_up;
158
16/24
intra_pred_10:
✓ Branch 14 → 15 taken 1335898 times.
✓ Branch 14 → 18 taken 278577 times.
✓ Branch 15 → 16 taken 1295294 times.
✓ Branch 15 → 18 taken 40604 times.
✓ Branch 16 → 17 taken 834720 times.
✓ Branch 16 → 18 taken 460574 times.
intra_pred_12:
✓ Branch 14 → 15 taken 253926 times.
✓ Branch 14 → 18 taken 24792 times.
✓ Branch 15 → 16 taken 253926 times.
✗ Branch 15 → 18 not taken.
✓ Branch 16 → 17 taken 185682 times.
✓ Branch 16 → 18 taken 68244 times.
intra_pred_8:
✓ Branch 14 → 15 taken 14866508 times.
✓ Branch 14 → 18 taken 2341293 times.
✓ Branch 15 → 16 taken 14866508 times.
✗ Branch 15 → 18 not taken.
✓ Branch 16 → 17 taken 11296570 times.
✓ Branch 16 → 18 taken 3569938 times.
intra_pred_9:
✗ Branch 14 → 15 not taken.
✗ Branch 14 → 18 not taken.
✗ Branch 15 → 16 not taken.
✗ Branch 15 → 18 not taken.
✗ Branch 16 → 17 not taken.
✗ Branch 16 → 18 not taken.
19100994 int cand_up_right = lc->na.cand_up_right && !spin && cur_tb_addr > MIN_TB_ADDR_ZS((x_tb + size_in_tbs_h) & sps->tb_mask, y_tb - 1);
159
160 19100994 int bottom_left_size = (FFMIN(y0 + 2 * size_in_luma_v, sps->height) -
161 19100994 (y0 + size_in_luma_v)) >> vshift;
162 19100994 int top_right_size = (FFMIN(x0 + 2 * size_in_luma_h, sps->width) -
163 19100994 (x0 + size_in_luma_h)) >> hshift;
164
165
4/8
intra_pred_10:
✗ Branch 19 → 20 not taken.
✓ Branch 19 → 45 taken 1614475 times.
intra_pred_12:
✗ Branch 19 → 20 not taken.
✓ Branch 19 → 45 taken 278718 times.
intra_pred_8:
✓ Branch 19 → 20 taken 110067 times.
✓ Branch 19 → 45 taken 17097734 times.
intra_pred_9:
✗ Branch 19 → 20 not taken.
✗ Branch 19 → 45 not taken.
19100994 if (pps->constrained_intra_pred_flag == 1) {
166 110067 int size_in_luma_pu_v = PU(size_in_luma_v);
167 110067 int size_in_luma_pu_h = PU(size_in_luma_h);
168 110067 int on_pu_edge_x = !av_zero_extend(x0, sps->log2_min_pu_size);
169 110067 int on_pu_edge_y = !av_zero_extend(y0, sps->log2_min_pu_size);
170
1/8
intra_pred_10:
✗ Branch 20 → 21 not taken.
✗ Branch 20 → 22 not taken.
intra_pred_12:
✗ Branch 20 → 21 not taken.
✗ Branch 20 → 22 not taken.
intra_pred_8:
✗ Branch 20 → 21 not taken.
✓ Branch 20 → 22 taken 110067 times.
intra_pred_9:
✗ Branch 20 → 21 not taken.
✗ Branch 20 → 22 not taken.
110067 if (!size_in_luma_pu_h)
171 ✗ size_in_luma_pu_h++;
172
3/16
intra_pred_10:
✗ Branch 22 → 23 not taken.
✗ Branch 22 → 27 not taken.
✗ Branch 23 → 24 not taken.
✗ Branch 23 → 27 not taken.
intra_pred_12:
✗ Branch 22 → 23 not taken.
✗ Branch 22 → 27 not taken.
✗ Branch 23 → 24 not taken.
✗ Branch 23 → 27 not taken.
intra_pred_8:
✓ Branch 22 → 23 taken 34234 times.
✓ Branch 22 → 27 taken 75833 times.
✓ Branch 23 → 24 taken 34234 times.
✗ Branch 23 → 27 not taken.
intra_pred_9:
✗ Branch 22 → 23 not taken.
✗ Branch 22 → 27 not taken.
✗ Branch 23 → 24 not taken.
✗ Branch 23 → 27 not taken.
110067 if (cand_bottom_left == 1 && on_pu_edge_x) {
173 34234 int x_left_pu = PU(x0 - 1);
174 34234 int y_bottom_pu = PU(y0 + size_in_luma_v);
175 34234 int max = FFMIN(size_in_luma_pu_v, sps->min_pu_height - y_bottom_pu);
176 34234 cand_bottom_left = 0;
177
2/8
intra_pred_10:
✗ Branch 26 → 25 not taken.
✗ Branch 26 → 27 not taken.
intra_pred_12:
✗ Branch 26 → 25 not taken.
✗ Branch 26 → 27 not taken.
intra_pred_8:
✓ Branch 26 → 25 taken 38911 times.
✓ Branch 26 → 27 taken 34234 times.
intra_pred_9:
✗ Branch 26 → 25 not taken.
✗ Branch 26 → 27 not taken.
73145 for (i = 0; i < max; i += 2)
178 38911 cand_bottom_left |= (MVF(x_left_pu, y_bottom_pu + i).pred_flag == PF_INTRA);
179 }
180
3/16
intra_pred_10:
✗ Branch 27 → 28 not taken.
✗ Branch 27 → 32 not taken.
✗ Branch 28 → 29 not taken.
✗ Branch 28 → 32 not taken.
intra_pred_12:
✗ Branch 27 → 28 not taken.
✗ Branch 27 → 32 not taken.
✗ Branch 28 → 29 not taken.
✗ Branch 28 → 32 not taken.
intra_pred_8:
✓ Branch 27 → 28 taken 108167 times.
✓ Branch 27 → 32 taken 1900 times.
✓ Branch 28 → 29 taken 108167 times.
✗ Branch 28 → 32 not taken.
intra_pred_9:
✗ Branch 27 → 28 not taken.
✗ Branch 27 → 32 not taken.
✗ Branch 28 → 29 not taken.
✗ Branch 28 → 32 not taken.
110067 if (cand_left == 1 && on_pu_edge_x) {
181 108167 int x_left_pu = PU(x0 - 1);
182 108167 int y_left_pu = PU(y0);
183 108167 int max = FFMIN(size_in_luma_pu_v, sps->min_pu_height - y_left_pu);
184 108167 cand_left = 0;
185
2/8
intra_pred_10:
✗ Branch 31 → 30 not taken.
✗ Branch 31 → 32 not taken.
intra_pred_12:
✗ Branch 31 → 30 not taken.
✗ Branch 31 → 32 not taken.
intra_pred_8:
✓ Branch 31 → 30 taken 125765 times.
✓ Branch 31 → 32 taken 108167 times.
intra_pred_9:
✗ Branch 31 → 30 not taken.
✗ Branch 31 → 32 not taken.
233932 for (i = 0; i < max; i += 2)
186 125765 cand_left |= (MVF(x_left_pu, y_left_pu + i).pred_flag == PF_INTRA);
187 }
188
2/8
intra_pred_10:
✗ Branch 32 → 33 not taken.
✗ Branch 32 → 34 not taken.
intra_pred_12:
✗ Branch 32 → 33 not taken.
✗ Branch 32 → 34 not taken.
intra_pred_8:
✓ Branch 32 → 33 taken 104849 times.
✓ Branch 32 → 34 taken 5218 times.
intra_pred_9:
✗ Branch 32 → 33 not taken.
✗ Branch 32 → 34 not taken.
110067 if (cand_up_left == 1) {
189 104849 int x_left_pu = PU(x0 - 1);
190 104849 int y_top_pu = PU(y0 - 1);
191 104849 cand_up_left = MVF(x_left_pu, y_top_pu).pred_flag == PF_INTRA;
192 }
193
3/16
intra_pred_10:
✗ Branch 34 → 35 not taken.
✗ Branch 34 → 39 not taken.
✗ Branch 35 → 36 not taken.
✗ Branch 35 → 39 not taken.
intra_pred_12:
✗ Branch 34 → 35 not taken.
✗ Branch 34 → 39 not taken.
✗ Branch 35 → 36 not taken.
✗ Branch 35 → 39 not taken.
intra_pred_8:
✓ Branch 34 → 35 taken 106671 times.
✓ Branch 34 → 39 taken 3396 times.
✓ Branch 35 → 36 taken 106671 times.
✗ Branch 35 → 39 not taken.
intra_pred_9:
✗ Branch 34 → 35 not taken.
✗ Branch 34 → 39 not taken.
✗ Branch 35 → 36 not taken.
✗ Branch 35 → 39 not taken.
110067 if (cand_up == 1 && on_pu_edge_y) {
194 106671 int x_top_pu = PU(x0);
195 106671 int y_top_pu = PU(y0 - 1);
196 106671 int max = FFMIN(size_in_luma_pu_h, sps->min_pu_width - x_top_pu);
197 106671 cand_up = 0;
198
2/8
intra_pred_10:
✗ Branch 38 → 37 not taken.
✗ Branch 38 → 39 not taken.
intra_pred_12:
✗ Branch 38 → 37 not taken.
✗ Branch 38 → 39 not taken.
intra_pred_8:
✓ Branch 38 → 37 taken 123309 times.
✓ Branch 38 → 39 taken 106671 times.
intra_pred_9:
✗ Branch 38 → 37 not taken.
✗ Branch 38 → 39 not taken.
229980 for (i = 0; i < max; i += 2)
199 123309 cand_up |= (MVF(x_top_pu + i, y_top_pu).pred_flag == PF_INTRA);
200 }
201
3/16
intra_pred_10:
✗ Branch 39 → 40 not taken.
✗ Branch 39 → 44 not taken.
✗ Branch 40 → 41 not taken.
✗ Branch 40 → 44 not taken.
intra_pred_12:
✗ Branch 39 → 40 not taken.
✗ Branch 39 → 44 not taken.
✗ Branch 40 → 41 not taken.
✗ Branch 40 → 44 not taken.
intra_pred_8:
✓ Branch 39 → 40 taken 70804 times.
✓ Branch 39 → 44 taken 39263 times.
✓ Branch 40 → 41 taken 70804 times.
✗ Branch 40 → 44 not taken.
intra_pred_9:
✗ Branch 39 → 40 not taken.
✗ Branch 39 → 44 not taken.
✗ Branch 40 → 41 not taken.
✗ Branch 40 → 44 not taken.
110067 if (cand_up_right == 1 && on_pu_edge_y) {
202 70804 int y_top_pu = PU(y0 - 1);
203 70804 int x_right_pu = PU(x0 + size_in_luma_h);
204 70804 int max = FFMIN(size_in_luma_pu_h, sps->min_pu_width - x_right_pu);
205 70804 cand_up_right = 0;
206
2/8
intra_pred_10:
✗ Branch 43 → 42 not taken.
✗ Branch 43 → 44 not taken.
intra_pred_12:
✗ Branch 43 → 42 not taken.
✗ Branch 43 → 44 not taken.
intra_pred_8:
✓ Branch 43 → 42 taken 82171 times.
✓ Branch 43 → 44 taken 70804 times.
intra_pred_9:
✗ Branch 43 → 42 not taken.
✗ Branch 43 → 44 not taken.
152975 for (i = 0; i < max; i += 2)
207 82171 cand_up_right |= (MVF(x_right_pu + i, y_top_pu).pred_flag == PF_INTRA);
208 }
209 110067 memset(left, 128, 2 * MAX_TB_SIZE*sizeof(pixel));
210 110067 memset(top , 128, 2 * MAX_TB_SIZE*sizeof(pixel));
211 110067 top[-1] = 128;
212 }
213
6/8
intra_pred_10:
✓ Branch 45 → 46 taken 1571699 times.
✓ Branch 45 → 47 taken 42776 times.
intra_pred_12:
✓ Branch 45 → 46 taken 276402 times.
✓ Branch 45 → 47 taken 2316 times.
intra_pred_8:
✓ Branch 45 → 46 taken 16673071 times.
✓ Branch 45 → 47 taken 534730 times.
intra_pred_9:
✗ Branch 45 → 46 not taken.
✗ Branch 45 → 47 not taken.
19100994 if (cand_up_left) {
214 18521172 left[-1] = POS(-1, -1);
215 18521172 top[-1] = left[-1];
216 }
217
6/8
intra_pred_10:
✓ Branch 47 → 48 taken 1589121 times.
✓ Branch 47 → 49 taken 25354 times.
intra_pred_12:
✓ Branch 47 → 48 taken 277650 times.
✓ Branch 47 → 49 taken 1068 times.
intra_pred_8:
✓ Branch 47 → 48 taken 16874990 times.
✓ Branch 47 → 49 taken 332811 times.
intra_pred_9:
✗ Branch 47 → 48 not taken.
✗ Branch 47 → 49 not taken.
19100994 if (cand_up)
218 18741761 memcpy(top, src - stride, size * sizeof(pixel));
219
6/8
intra_pred_10:
✓ Branch 49 → 50 taken 834720 times.
✓ Branch 49 → 53 taken 779755 times.
intra_pred_12:
✓ Branch 49 → 50 taken 185682 times.
✓ Branch 49 → 53 taken 93036 times.
intra_pred_8:
✓ Branch 49 → 50 taken 11290983 times.
✓ Branch 49 → 53 taken 5916818 times.
intra_pred_9:
✗ Branch 49 → 50 not taken.
✗ Branch 49 → 53 not taken.
19100994 if (cand_up_right) {
220 12311385 memcpy(top + size, src - stride + size, size * sizeof(pixel));
221
5/8
intra_pred_10:
✓ Branch 52 → 51 taken 576 times.
✓ Branch 52 → 53 taken 834720 times.
intra_pred_12:
✗ Branch 52 → 51 not taken.
✓ Branch 52 → 53 taken 185682 times.
intra_pred_8:
✓ Branch 52 → 51 taken 14833 times.
✓ Branch 52 → 53 taken 11290983 times.
intra_pred_9:
✗ Branch 52 → 51 not taken.
✗ Branch 52 → 53 not taken.
12326794 EXTEND(top + size + top_right_size, POS(size + top_right_size - 1, -1),
222 size - top_right_size);
223 }
224
6/8
intra_pred_10:
✓ Branch 53 → 54 taken 1596054 times.
✓ Branch 53 → 57 taken 18421 times.
intra_pred_12:
✓ Branch 53 → 54 taken 277452 times.
✓ Branch 53 → 57 taken 1266 times.
intra_pred_8:
✓ Branch 53 → 54 taken 16994708 times.
✓ Branch 53 → 57 taken 213093 times.
intra_pred_9:
✗ Branch 53 → 54 not taken.
✗ Branch 53 → 57 not taken.
19100994 if (cand_left)
225
6/8
intra_pred_10:
✓ Branch 56 → 55 taken 10607040 times.
✓ Branch 56 → 57 taken 1596054 times.
intra_pred_12:
✓ Branch 56 → 55 taken 1703688 times.
✓ Branch 56 → 57 taken 277452 times.
intra_pred_8:
✓ Branch 56 → 55 taken 104419736 times.
✓ Branch 56 → 57 taken 16994708 times.
intra_pred_9:
✗ Branch 56 → 55 not taken.
✗ Branch 56 → 57 not taken.
135598678 for (i = 0; i < size; i++)
226 116730464 left[i] = POS(-1, i);
227
6/8
intra_pred_10:
✓ Branch 57 → 58 taken 732545 times.
✓ Branch 57 → 64 taken 881930 times.
intra_pred_12:
✓ Branch 57 → 58 taken 90756 times.
✓ Branch 57 → 64 taken 187962 times.
intra_pred_8:
✓ Branch 57 → 58 taken 5315066 times.
✓ Branch 57 → 64 taken 11892735 times.
intra_pred_9:
✗ Branch 57 → 58 not taken.
✗ Branch 57 → 64 not taken.
19100994 if (cand_bottom_left) {
228
6/8
intra_pred_10:
✓ Branch 60 → 59 taken 4398524 times.
✓ Branch 60 → 61 taken 732545 times.
intra_pred_12:
✓ Branch 60 → 59 taken 550044 times.
✓ Branch 60 → 61 taken 90756 times.
intra_pred_8:
✓ Branch 60 → 59 taken 31084560 times.
✓ Branch 60 → 61 taken 5315066 times.
intra_pred_9:
✗ Branch 60 → 59 not taken.
✗ Branch 60 → 61 not taken.
42171495 for (i = size; i < size + bottom_left_size; i++)
229 36033128 left[i] = POS(-1, i);
230
5/8
intra_pred_10:
✓ Branch 63 → 62 taken 6766 times.
✓ Branch 63 → 64 taken 732545 times.
intra_pred_12:
✗ Branch 63 → 62 not taken.
✓ Branch 63 → 64 taken 90756 times.
intra_pred_8:
✓ Branch 63 → 62 taken 25152 times.
✓ Branch 63 → 64 taken 5315066 times.
intra_pred_9:
✗ Branch 63 → 62 not taken.
✗ Branch 63 → 64 not taken.
6170285 EXTEND(left + size + bottom_left_size, POS(-1, size + bottom_left_size - 1),
231 size - bottom_left_size);
232 }
233
234
4/8
intra_pred_10:
✗ Branch 64 → 65 not taken.
✓ Branch 64 → 172 taken 1614475 times.
intra_pred_12:
✗ Branch 64 → 65 not taken.
✓ Branch 64 → 172 taken 278718 times.
intra_pred_8:
✓ Branch 64 → 65 taken 110067 times.
✓ Branch 64 → 172 taken 17097734 times.
intra_pred_9:
✗ Branch 64 → 65 not taken.
✗ Branch 64 → 172 not taken.
19100994 if (pps->constrained_intra_pred_flag == 1) {
235
10/40
intra_pred_10:
✗ Branch 65 → 66 not taken.
✗ Branch 65 → 70 not taken.
✗ Branch 66 → 67 not taken.
✗ Branch 66 → 70 not taken.
✗ Branch 67 → 68 not taken.
✗ Branch 67 → 70 not taken.
✗ Branch 68 → 69 not taken.
✗ Branch 68 → 70 not taken.
✗ Branch 69 → 70 not taken.
✗ Branch 69 → 172 not taken.
intra_pred_12:
✗ Branch 65 → 66 not taken.
✗ Branch 65 → 70 not taken.
✗ Branch 66 → 67 not taken.
✗ Branch 66 → 70 not taken.
✗ Branch 67 → 68 not taken.
✗ Branch 67 → 70 not taken.
✗ Branch 68 → 69 not taken.
✗ Branch 68 → 70 not taken.
✗ Branch 69 → 70 not taken.
✗ Branch 69 → 172 not taken.
intra_pred_8:
✓ Branch 65 → 66 taken 78736 times.
✓ Branch 65 → 70 taken 31331 times.
✓ Branch 66 → 67 taken 8154 times.
✓ Branch 66 → 70 taken 70582 times.
✓ Branch 67 → 68 taken 6990 times.
✓ Branch 67 → 70 taken 1164 times.
✓ Branch 68 → 69 taken 2032 times.
✓ Branch 68 → 70 taken 4958 times.
✓ Branch 69 → 70 taken 340 times.
✓ Branch 69 → 172 taken 1692 times.
intra_pred_9:
✗ Branch 65 → 66 not taken.
✗ Branch 65 → 70 not taken.
✗ Branch 66 → 67 not taken.
✗ Branch 66 → 70 not taken.
✗ Branch 67 → 68 not taken.
✗ Branch 67 → 70 not taken.
✗ Branch 68 → 69 not taken.
✗ Branch 68 → 70 not taken.
✗ Branch 69 → 70 not taken.
✗ Branch 69 → 172 not taken.
110067 if (cand_bottom_left || cand_left || cand_up_left || cand_up || cand_up_right) {
236 106869 int size_max_x = x0 + ((2 * size) << hshift) < sps->width ?
237
2/8
intra_pred_10:
✗ Branch 70 → 71 not taken.
✗ Branch 70 → 72 not taken.
intra_pred_12:
✗ Branch 70 → 71 not taken.
✗ Branch 70 → 72 not taken.
intra_pred_8:
✓ Branch 70 → 71 taken 106869 times.
✓ Branch 70 → 72 taken 1506 times.
intra_pred_9:
✗ Branch 70 → 71 not taken.
✗ Branch 70 → 72 not taken.
108375 2 * size : (sps->width - x0) >> hshift;
238 103706 int size_max_y = y0 + ((2 * size) << vshift) < sps->height ?
239
2/8
intra_pred_10:
✗ Branch 73 → 74 not taken.
✗ Branch 73 → 75 not taken.
intra_pred_12:
✗ Branch 73 → 74 not taken.
✗ Branch 73 → 75 not taken.
intra_pred_8:
✓ Branch 73 → 74 taken 103706 times.
✓ Branch 73 → 75 taken 4669 times.
intra_pred_9:
✗ Branch 73 → 74 not taken.
✗ Branch 73 → 75 not taken.
108375 2 * size : (sps->height - y0) >> vshift;
240
2/8
intra_pred_10:
✗ Branch 76 → 77 not taken.
✗ Branch 76 → 78 not taken.
intra_pred_12:
✗ Branch 76 → 77 not taken.
✗ Branch 76 → 78 not taken.
intra_pred_8:
✓ Branch 76 → 77 taken 31331 times.
✓ Branch 76 → 78 taken 77044 times.
intra_pred_9:
✗ Branch 76 → 77 not taken.
✗ Branch 76 → 78 not taken.
108375 int j = size + (cand_bottom_left? bottom_left_size: 0) -1;
241
2/8
intra_pred_10:
✗ Branch 79 → 80 not taken.
✗ Branch 79 → 83 not taken.
intra_pred_12:
✗ Branch 79 → 80 not taken.
✗ Branch 79 → 83 not taken.
intra_pred_8:
✓ Branch 79 → 80 taken 43158 times.
✓ Branch 79 → 83 taken 65217 times.
intra_pred_9:
✗ Branch 79 → 80 not taken.
✗ Branch 79 → 83 not taken.
108375 if (!cand_up_right) {
242 42369 size_max_x = x0 + ((size) << hshift) < sps->width ?
243
2/8
intra_pred_10:
✗ Branch 80 → 81 not taken.
✗ Branch 80 → 82 not taken.
intra_pred_12:
✗ Branch 80 → 81 not taken.
✗ Branch 80 → 82 not taken.
intra_pred_8:
✓ Branch 80 → 81 taken 789 times.
✓ Branch 80 → 82 taken 42369 times.
intra_pred_9:
✗ Branch 80 → 81 not taken.
✗ Branch 80 → 82 not taken.
43158 size : (sps->width - x0) >> hshift;
244 }
245
2/8
intra_pred_10:
✗ Branch 83 → 84 not taken.
✗ Branch 83 → 87 not taken.
intra_pred_12:
✗ Branch 83 → 84 not taken.
✗ Branch 83 → 87 not taken.
intra_pred_8:
✓ Branch 83 → 84 taken 77044 times.
✓ Branch 83 → 87 taken 31331 times.
intra_pred_9:
✗ Branch 83 → 84 not taken.
✗ Branch 83 → 87 not taken.
108375 if (!cand_bottom_left) {
246 74701 size_max_y = y0 + (( size) << vshift) < sps->height ?
247
2/8
intra_pred_10:
✗ Branch 84 → 85 not taken.
✗ Branch 84 → 86 not taken.
intra_pred_12:
✗ Branch 84 → 85 not taken.
✗ Branch 84 → 86 not taken.
intra_pred_8:
✓ Branch 84 → 85 taken 2343 times.
✓ Branch 84 → 86 taken 74701 times.
intra_pred_9:
✗ Branch 84 → 85 not taken.
✗ Branch 84 → 86 not taken.
77044 size : (sps->height - y0) >> vshift;
248 }
249
6/24
intra_pred_10:
✗ Branch 87 → 88 not taken.
✗ Branch 87 → 90 not taken.
✗ Branch 88 → 89 not taken.
✗ Branch 88 → 90 not taken.
✗ Branch 89 → 90 not taken.
✗ Branch 89 → 106 not taken.
intra_pred_12:
✗ Branch 87 → 88 not taken.
✗ Branch 87 → 90 not taken.
✗ Branch 88 → 89 not taken.
✗ Branch 88 → 90 not taken.
✗ Branch 89 → 90 not taken.
✗ Branch 89 → 106 not taken.
intra_pred_8:
✓ Branch 87 → 88 taken 77044 times.
✓ Branch 87 → 90 taken 31331 times.
✓ Branch 88 → 89 taken 6462 times.
✓ Branch 88 → 90 taken 70582 times.
✓ Branch 89 → 90 taken 1164 times.
✓ Branch 89 → 106 taken 5298 times.
intra_pred_9:
✗ Branch 87 → 88 not taken.
✗ Branch 87 → 90 not taken.
✗ Branch 88 → 89 not taken.
✗ Branch 88 → 90 not taken.
✗ Branch 89 → 90 not taken.
✗ Branch 89 → 106 not taken.
108375 if (cand_bottom_left || cand_left || cand_up_left) {
250
4/16
intra_pred_10:
✗ Branch 92 → 93 not taken.
✗ Branch 92 → 94 not taken.
✗ Branch 93 → 91 not taken.
✗ Branch 93 → 94 not taken.
intra_pred_12:
✗ Branch 92 → 93 not taken.
✗ Branch 92 → 94 not taken.
✗ Branch 93 → 91 not taken.
✗ Branch 93 → 94 not taken.
intra_pred_8:
✓ Branch 92 → 93 taken 110553 times.
✓ Branch 92 → 94 taken 1164 times.
✓ Branch 93 → 91 taken 8640 times.
✓ Branch 93 → 94 taken 101913 times.
intra_pred_9:
✗ Branch 92 → 93 not taken.
✗ Branch 92 → 94 not taken.
✗ Branch 93 → 91 not taken.
✗ Branch 93 → 94 not taken.
111717 while (j > -1 && !IS_INTRA(-1, j))
251 8640 j--;
252
1/8
intra_pred_10:
✗ Branch 94 → 95 not taken.
✗ Branch 94 → 105 not taken.
intra_pred_12:
✗ Branch 94 → 95 not taken.
✗ Branch 94 → 105 not taken.
intra_pred_8:
✗ Branch 94 → 95 not taken.
✓ Branch 94 → 105 taken 103077 times.
intra_pred_9:
✗ Branch 94 → 95 not taken.
✗ Branch 94 → 105 not taken.
103077 if (!IS_INTRA(-1, j)) {
253 ✗ j = 0;
254
0/16
intra_pred_10:
✗ Branch 97 → 98 not taken.
✗ Branch 97 → 99 not taken.
✗ Branch 98 → 96 not taken.
✗ Branch 98 → 99 not taken.
intra_pred_12:
✗ Branch 97 → 98 not taken.
✗ Branch 97 → 99 not taken.
✗ Branch 98 → 96 not taken.
✗ Branch 98 → 99 not taken.
intra_pred_8:
✗ Branch 97 → 98 not taken.
✗ Branch 97 → 99 not taken.
✗ Branch 98 → 96 not taken.
✗ Branch 98 → 99 not taken.
intra_pred_9:
✗ Branch 97 → 98 not taken.
✗ Branch 97 → 99 not taken.
✗ Branch 98 → 96 not taken.
✗ Branch 98 → 99 not taken.
✗ while (j < size_max_x && !IS_INTRA(j, -1))
255 ✗ j++;
256
0/16
intra_pred_10:
✗ Branch 100 → 101 not taken.
✗ Branch 100 → 102 not taken.
✗ Branch 103 → 100 not taken.
✗ Branch 103 → 104 not taken.
intra_pred_12:
✗ Branch 100 → 101 not taken.
✗ Branch 100 → 102 not taken.
✗ Branch 103 → 100 not taken.
✗ Branch 103 → 104 not taken.
intra_pred_8:
✗ Branch 100 → 101 not taken.
✗ Branch 100 → 102 not taken.
✗ Branch 103 → 100 not taken.
✗ Branch 103 → 104 not taken.
intra_pred_9:
✗ Branch 100 → 101 not taken.
✗ Branch 100 → 102 not taken.
✗ Branch 103 → 100 not taken.
✗ Branch 103 → 104 not taken.
✗ EXTEND_LEFT_CIP(top, j, j + 1);
257 ✗ left[-1] = top[-1];
258 }
259 } else {
260 5298 j = 0;
261
3/16
intra_pred_10:
✗ Branch 108 → 109 not taken.
✗ Branch 108 → 110 not taken.
✗ Branch 109 → 107 not taken.
✗ Branch 109 → 110 not taken.
intra_pred_12:
✗ Branch 108 → 109 not taken.
✗ Branch 108 → 110 not taken.
✗ Branch 109 → 107 not taken.
✗ Branch 109 → 110 not taken.
intra_pred_8:
✓ Branch 108 → 109 taken 8938 times.
✗ Branch 108 → 110 not taken.
✓ Branch 109 → 107 taken 3640 times.
✓ Branch 109 → 110 taken 5298 times.
intra_pred_9:
✗ Branch 108 → 109 not taken.
✗ Branch 108 → 110 not taken.
✗ Branch 109 → 107 not taken.
✗ Branch 109 → 110 not taken.
8938 while (j < size_max_x && !IS_INTRA(j, -1))
262 3640 j++;
263
2/8
intra_pred_10:
✗ Branch 110 → 111 not taken.
✗ Branch 110 → 117 not taken.
intra_pred_12:
✗ Branch 110 → 111 not taken.
✗ Branch 110 → 117 not taken.
intra_pred_8:
✓ Branch 110 → 111 taken 409 times.
✓ Branch 110 → 117 taken 4889 times.
intra_pred_9:
✗ Branch 110 → 111 not taken.
✗ Branch 110 → 117 not taken.
5298 if (j > 0) {
264
3/16
intra_pred_10:
✗ Branch 112 → 113 not taken.
✗ Branch 112 → 114 not taken.
✗ Branch 115 → 112 not taken.
✗ Branch 115 → 116 not taken.
intra_pred_12:
✗ Branch 112 → 113 not taken.
✗ Branch 112 → 114 not taken.
✗ Branch 115 → 112 not taken.
✗ Branch 115 → 116 not taken.
intra_pred_8:
✓ Branch 112 → 113 taken 3640 times.
✗ Branch 112 → 114 not taken.
✓ Branch 115 → 112 taken 3640 times.
✓ Branch 115 → 116 taken 409 times.
intra_pred_9:
✗ Branch 112 → 113 not taken.
✗ Branch 112 → 114 not taken.
✗ Branch 115 → 112 not taken.
✗ Branch 115 → 116 not taken.
4049 EXTEND_LEFT_CIP(top, j, j);
265 409 top[-1] = top[0];
266 }
267 5298 left[-1] = top[-1];
268 }
269 108375 left[-1] = top[-1];
270
4/16
intra_pred_10:
✗ Branch 118 → 119 not taken.
✗ Branch 118 → 120 not taken.
✗ Branch 119 → 120 not taken.
✗ Branch 119 → 126 not taken.
intra_pred_12:
✗ Branch 118 → 119 not taken.
✗ Branch 118 → 120 not taken.
✗ Branch 119 → 120 not taken.
✗ Branch 119 → 126 not taken.
intra_pred_8:
✓ Branch 118 → 119 taken 77044 times.
✓ Branch 118 → 120 taken 31331 times.
✓ Branch 119 → 120 taken 70582 times.
✓ Branch 119 → 126 taken 6462 times.
intra_pred_9:
✗ Branch 118 → 119 not taken.
✗ Branch 118 → 120 not taken.
✗ Branch 119 → 120 not taken.
✗ Branch 119 → 126 not taken.
108375 if (cand_bottom_left || cand_left) {
271 101913 a = PIXEL_SPLAT_X4(left[-1]);
272
4/16
intra_pred_10:
✗ Branch 121 → 122 not taken.
✗ Branch 121 → 123 not taken.
✗ Branch 125 → 121 not taken.
✗ Branch 125 → 126 not taken.
intra_pred_12:
✗ Branch 121 → 122 not taken.
✗ Branch 121 → 123 not taken.
✗ Branch 125 → 121 not taken.
✗ Branch 125 → 126 not taken.
intra_pred_8:
✓ Branch 121 → 122 taken 1258 times.
✓ Branch 121 → 123 taken 178381 times.
✓ Branch 125 → 121 taken 179639 times.
✓ Branch 125 → 126 taken 101913 times.
intra_pred_9:
✗ Branch 121 → 122 not taken.
✗ Branch 121 → 123 not taken.
✗ Branch 125 → 121 not taken.
✗ Branch 125 → 126 not taken.
281552 EXTEND_DOWN_CIP(left, 0, size_max_y);
273 }
274
2/8
intra_pred_10:
✗ Branch 126 → 127 not taken.
✗ Branch 126 → 130 not taken.
intra_pred_12:
✗ Branch 126 → 127 not taken.
✗ Branch 126 → 130 not taken.
intra_pred_8:
✓ Branch 126 → 127 taken 6810 times.
✓ Branch 126 → 130 taken 101565 times.
intra_pred_9:
✗ Branch 126 → 127 not taken.
✗ Branch 126 → 130 not taken.
108375 if (!cand_left)
275
2/8
intra_pred_10:
✗ Branch 129 → 128 not taken.
✗ Branch 129 → 130 not taken.
intra_pred_12:
✗ Branch 129 → 128 not taken.
✗ Branch 129 → 130 not taken.
intra_pred_8:
✓ Branch 129 → 128 taken 11314 times.
✓ Branch 129 → 130 taken 6810 times.
intra_pred_9:
✗ Branch 129 → 128 not taken.
✗ Branch 129 → 130 not taken.
18124 EXTEND(left, left[-1], size);
276
2/8
intra_pred_10:
✗ Branch 130 → 131 not taken.
✗ Branch 130 → 134 not taken.
intra_pred_12:
✗ Branch 130 → 131 not taken.
✗ Branch 130 → 134 not taken.
intra_pred_8:
✓ Branch 130 → 131 taken 77044 times.
✓ Branch 130 → 134 taken 31331 times.
intra_pred_9:
✗ Branch 130 → 131 not taken.
✗ Branch 130 → 134 not taken.
108375 if (!cand_bottom_left)
277
2/8
intra_pred_10:
✗ Branch 133 → 132 not taken.
✗ Branch 133 → 134 not taken.
intra_pred_12:
✗ Branch 133 → 132 not taken.
✗ Branch 133 → 134 not taken.
intra_pred_8:
✓ Branch 133 → 132 taken 107445 times.
✓ Branch 133 → 134 taken 77044 times.
intra_pred_9:
✗ Branch 133 → 132 not taken.
✗ Branch 133 → 134 not taken.
184489 EXTEND(left + size, left[size - 1], size);
278
4/16
intra_pred_10:
✗ Branch 134 → 135 not taken.
✗ Branch 134 → 145 not taken.
✗ Branch 135 → 136 not taken.
✗ Branch 135 → 145 not taken.
intra_pred_12:
✗ Branch 134 → 135 not taken.
✗ Branch 134 → 145 not taken.
✗ Branch 135 → 136 not taken.
✗ Branch 135 → 145 not taken.
intra_pred_8:
✓ Branch 134 → 135 taken 107124 times.
✓ Branch 134 → 145 taken 1251 times.
✓ Branch 135 → 136 taken 105529 times.
✓ Branch 135 → 145 taken 1595 times.
intra_pred_9:
✗ Branch 134 → 135 not taken.
✗ Branch 134 → 145 not taken.
✗ Branch 135 → 136 not taken.
✗ Branch 135 → 145 not taken.
108375 if (x0 != 0 && y0 != 0) {
279 105529 a = PIXEL_SPLAT_X4(left[size_max_y - 1]);
280
4/16
intra_pred_10:
✗ Branch 137 → 138 not taken.
✗ Branch 137 → 139 not taken.
✗ Branch 141 → 137 not taken.
✗ Branch 141 → 142 not taken.
intra_pred_12:
✗ Branch 137 → 138 not taken.
✗ Branch 137 → 139 not taken.
✗ Branch 141 → 137 not taken.
✗ Branch 141 → 142 not taken.
intra_pred_8:
✓ Branch 137 → 138 taken 8892 times.
✓ Branch 137 → 139 taken 174768 times.
✓ Branch 141 → 137 taken 183660 times.
✓ Branch 141 → 142 taken 105529 times.
intra_pred_9:
✗ Branch 137 → 138 not taken.
✗ Branch 137 → 139 not taken.
✗ Branch 141 → 137 not taken.
✗ Branch 141 → 142 not taken.
289189 EXTEND_UP_CIP(left, size_max_y - 1, size_max_y);
281
2/8
intra_pred_10:
✗ Branch 142 → 143 not taken.
✗ Branch 142 → 144 not taken.
intra_pred_12:
✗ Branch 142 → 143 not taken.
✗ Branch 142 → 144 not taken.
intra_pred_8:
✓ Branch 142 → 143 taken 7429 times.
✓ Branch 142 → 144 taken 98100 times.
intra_pred_9:
✗ Branch 142 → 143 not taken.
✗ Branch 142 → 144 not taken.
105529 if (!IS_INTRA(-1, - 1))
282 7429 left[-1] = left[0];
283
2/8
intra_pred_10:
✗ Branch 145 → 146 not taken.
✗ Branch 145 → 149 not taken.
intra_pred_12:
✗ Branch 145 → 146 not taken.
✗ Branch 145 → 149 not taken.
intra_pred_8:
✓ Branch 145 → 146 taken 1251 times.
✓ Branch 145 → 149 taken 1595 times.
intra_pred_9:
✗ Branch 145 → 146 not taken.
✗ Branch 145 → 149 not taken.
2846 } else if (x0 == 0) {
284
2/8
intra_pred_10:
✗ Branch 148 → 147 not taken.
✗ Branch 148 → 155 not taken.
intra_pred_12:
✗ Branch 148 → 147 not taken.
✗ Branch 148 → 155 not taken.
intra_pred_8:
✓ Branch 148 → 147 taken 2398 times.
✓ Branch 148 → 155 taken 1251 times.
intra_pred_9:
✗ Branch 148 → 147 not taken.
✗ Branch 148 → 155 not taken.
3649 EXTEND(left, 0, size_max_y);
285 } else {
286 1595 a = PIXEL_SPLAT_X4(left[size_max_y - 1]);
287
4/16
intra_pred_10:
✗ Branch 150 → 151 not taken.
✗ Branch 150 → 152 not taken.
✗ Branch 154 → 150 not taken.
✗ Branch 154 → 155 not taken.
intra_pred_12:
✗ Branch 150 → 151 not taken.
✗ Branch 150 → 152 not taken.
✗ Branch 154 → 150 not taken.
✗ Branch 154 → 155 not taken.
intra_pred_8:
✓ Branch 150 → 151 taken 52 times.
✓ Branch 150 → 152 taken 4277 times.
✓ Branch 154 → 150 taken 4329 times.
✓ Branch 154 → 155 taken 1595 times.
intra_pred_9:
✗ Branch 150 → 151 not taken.
✗ Branch 150 → 152 not taken.
✗ Branch 154 → 150 not taken.
✗ Branch 154 → 155 not taken.
5924 EXTEND_UP_CIP(left, size_max_y - 1, size_max_y);
288 }
289 108375 top[-1] = left[-1];
290
2/8
intra_pred_10:
✗ Branch 155 → 156 not taken.
✗ Branch 155 → 162 not taken.
intra_pred_12:
✗ Branch 155 → 156 not taken.
✗ Branch 155 → 162 not taken.
intra_pred_8:
✓ Branch 155 → 156 taken 106780 times.
✓ Branch 155 → 162 taken 1595 times.
intra_pred_9:
✗ Branch 155 → 156 not taken.
✗ Branch 155 → 162 not taken.
108375 if (y0 != 0) {
291 106780 a = PIXEL_SPLAT_X4(left[-1]);
292
4/16
intra_pred_10:
✗ Branch 157 → 158 not taken.
✗ Branch 157 → 159 not taken.
✗ Branch 161 → 157 not taken.
✗ Branch 161 → 162 not taken.
intra_pred_12:
✗ Branch 157 → 158 not taken.
✗ Branch 157 → 159 not taken.
✗ Branch 161 → 157 not taken.
✗ Branch 161 → 162 not taken.
intra_pred_8:
✓ Branch 157 → 158 taken 8339 times.
✓ Branch 157 → 159 taken 225792 times.
✓ Branch 161 → 157 taken 234131 times.
✓ Branch 161 → 162 taken 106780 times.
intra_pred_9:
✗ Branch 157 → 158 not taken.
✗ Branch 157 → 159 not taken.
✗ Branch 161 → 157 not taken.
✗ Branch 161 → 162 not taken.
340911 EXTEND_RIGHT_CIP(top, 0, size_max_x);
293 }
294 // Samples past the picture edge repeat the substituted last
295 // sample, not the one read before the substitution.
296
3/16
intra_pred_10:
✗ Branch 162 → 163 not taken.
✗ Branch 162 → 167 not taken.
✗ Branch 163 → 164 not taken.
✗ Branch 163 → 167 not taken.
intra_pred_12:
✗ Branch 162 → 163 not taken.
✗ Branch 162 → 167 not taken.
✗ Branch 163 → 164 not taken.
✗ Branch 163 → 167 not taken.
intra_pred_8:
✓ Branch 162 → 163 taken 31331 times.
✓ Branch 162 → 167 taken 77044 times.
✗ Branch 163 → 164 not taken.
✓ Branch 163 → 167 taken 31331 times.
intra_pred_9:
✗ Branch 162 → 163 not taken.
✗ Branch 162 → 167 not taken.
✗ Branch 163 → 164 not taken.
✗ Branch 163 → 167 not taken.
108375 if (cand_bottom_left && bottom_left_size < size)
297
0/8
intra_pred_10:
✗ Branch 166 → 165 not taken.
✗ Branch 166 → 167 not taken.
intra_pred_12:
✗ Branch 166 → 165 not taken.
✗ Branch 166 → 167 not taken.
intra_pred_8:
✗ Branch 166 → 165 not taken.
✗ Branch 166 → 167 not taken.
intra_pred_9:
✗ Branch 166 → 165 not taken.
✗ Branch 166 → 167 not taken.
✗ EXTEND(left + size + bottom_left_size, left[size + bottom_left_size - 1],
298 size - bottom_left_size);
299
3/16
intra_pred_10:
✗ Branch 167 → 168 not taken.
✗ Branch 167 → 172 not taken.
✗ Branch 168 → 169 not taken.
✗ Branch 168 → 172 not taken.
intra_pred_12:
✗ Branch 167 → 168 not taken.
✗ Branch 167 → 172 not taken.
✗ Branch 168 → 169 not taken.
✗ Branch 168 → 172 not taken.
intra_pred_8:
✓ Branch 167 → 168 taken 65217 times.
✓ Branch 167 → 172 taken 43158 times.
✗ Branch 168 → 169 not taken.
✓ Branch 168 → 172 taken 65217 times.
intra_pred_9:
✗ Branch 167 → 168 not taken.
✗ Branch 167 → 172 not taken.
✗ Branch 168 → 169 not taken.
✗ Branch 168 → 172 not taken.
108375 if (cand_up_right && top_right_size < size)
300
0/8
intra_pred_10:
✗ Branch 171 → 170 not taken.
✗ Branch 171 → 172 not taken.
intra_pred_12:
✗ Branch 171 → 170 not taken.
✗ Branch 171 → 172 not taken.
intra_pred_8:
✗ Branch 171 → 170 not taken.
✗ Branch 171 → 172 not taken.
intra_pred_9:
✗ Branch 171 → 170 not taken.
✗ Branch 171 → 172 not taken.
✗ EXTEND(top + size + top_right_size, top[size + top_right_size - 1],
301 size - top_right_size);
302 }
303 }
304 // Infer the unavailable samples
305
6/8
intra_pred_10:
✓ Branch 172 → 173 taken 881930 times.
✓ Branch 172 → 201 taken 732545 times.
intra_pred_12:
✓ Branch 172 → 173 taken 187962 times.
✓ Branch 172 → 201 taken 90756 times.
intra_pred_8:
✓ Branch 172 → 173 taken 11892735 times.
✓ Branch 172 → 201 taken 5315066 times.
intra_pred_9:
✗ Branch 172 → 173 not taken.
✗ Branch 172 → 201 not taken.
19100994 if (!cand_bottom_left) {
306
6/8
intra_pred_10:
✓ Branch 173 → 174 taken 863509 times.
✓ Branch 173 → 177 taken 18421 times.
intra_pred_12:
✓ Branch 173 → 174 taken 186696 times.
✓ Branch 173 → 177 taken 1266 times.
intra_pred_8:
✓ Branch 173 → 174 taken 11679990 times.
✓ Branch 173 → 177 taken 212745 times.
intra_pred_9:
✗ Branch 173 → 174 not taken.
✗ Branch 173 → 177 not taken.
12962627 if (cand_left) {
307
6/8
intra_pred_10:
✓ Branch 176 → 175 taken 1545363 times.
✓ Branch 176 → 201 taken 863509 times.
intra_pred_12:
✓ Branch 176 → 175 taken 288411 times.
✓ Branch 176 → 201 taken 186696 times.
intra_pred_8:
✓ Branch 176 → 175 taken 18309208 times.
✓ Branch 176 → 201 taken 11679990 times.
intra_pred_9:
✗ Branch 176 → 175 not taken.
✗ Branch 176 → 201 not taken.
32873177 EXTEND(left + size, left[size - 1], size);
308
4/8
intra_pred_10:
✗ Branch 177 → 178 not taken.
✓ Branch 177 → 182 taken 18421 times.
intra_pred_12:
✗ Branch 177 → 178 not taken.
✓ Branch 177 → 182 taken 1266 times.
intra_pred_8:
✓ Branch 177 → 178 taken 1164 times.
✓ Branch 177 → 182 taken 211581 times.
intra_pred_9:
✗ Branch 177 → 178 not taken.
✗ Branch 177 → 182 not taken.
232432 } else if (cand_up_left) {
309
2/8
intra_pred_10:
✗ Branch 180 → 179 not taken.
✗ Branch 180 → 181 not taken.
intra_pred_12:
✗ Branch 180 → 179 not taken.
✗ Branch 180 → 181 not taken.
intra_pred_8:
✓ Branch 180 → 179 taken 3656 times.
✓ Branch 180 → 181 taken 1164 times.
intra_pred_9:
✗ Branch 180 → 179 not taken.
✗ Branch 180 → 181 not taken.
4820 EXTEND(left, left[-1], 2 * size);
310 1164 cand_left = 1;
311
6/8
intra_pred_10:
✓ Branch 182 → 183 taken 17422 times.
✓ Branch 182 → 187 taken 999 times.
intra_pred_12:
✓ Branch 182 → 183 taken 1248 times.
✓ Branch 182 → 187 taken 18 times.
intra_pred_8:
✓ Branch 182 → 183 taken 201936 times.
✓ Branch 182 → 187 taken 9645 times.
intra_pred_9:
✗ Branch 182 → 183 not taken.
✗ Branch 182 → 187 not taken.
231268 } else if (cand_up) {
312 220606 left[-1] = top[0];
313
6/8
intra_pred_10:
✓ Branch 185 → 184 taken 87302 times.
✓ Branch 185 → 186 taken 17422 times.
intra_pred_12:
✓ Branch 185 → 184 taken 5604 times.
✓ Branch 185 → 186 taken 1248 times.
intra_pred_8:
✓ Branch 185 → 184 taken 940560 times.
✓ Branch 185 → 186 taken 201936 times.
intra_pred_9:
✗ Branch 185 → 184 not taken.
✗ Branch 185 → 186 not taken.
1254072 EXTEND(left, left[-1], 2 * size);
314 220606 cand_up_left = 1;
315 220606 cand_left = 1;
316
4/8
intra_pred_10:
✗ Branch 187 → 188 not taken.
✓ Branch 187 → 195 taken 999 times.
intra_pred_12:
✗ Branch 187 → 188 not taken.
✓ Branch 187 → 195 taken 18 times.
intra_pred_8:
✓ Branch 187 → 188 taken 340 times.
✓ Branch 187 → 195 taken 9305 times.
intra_pred_9:
✗ Branch 187 → 188 not taken.
✗ Branch 187 → 195 not taken.
10662 } else if (cand_up_right) {
317
2/8
intra_pred_10:
✗ Branch 190 → 189 not taken.
✗ Branch 190 → 191 not taken.
intra_pred_12:
✗ Branch 190 → 189 not taken.
✗ Branch 190 → 191 not taken.
intra_pred_8:
✓ Branch 190 → 189 taken 726 times.
✓ Branch 190 → 191 taken 340 times.
intra_pred_9:
✗ Branch 190 → 189 not taken.
✗ Branch 190 → 191 not taken.
1066 EXTEND(top, top[size], size);
318 340 left[-1] = top[size];
319
2/8
intra_pred_10:
✗ Branch 193 → 192 not taken.
✗ Branch 193 → 194 not taken.
intra_pred_12:
✗ Branch 193 → 192 not taken.
✗ Branch 193 → 194 not taken.
intra_pred_8:
✓ Branch 193 → 192 taken 1452 times.
✓ Branch 193 → 194 taken 340 times.
intra_pred_9:
✗ Branch 193 → 192 not taken.
✗ Branch 193 → 194 not taken.
1792 EXTEND(left, left[-1], 2 * size);
320 340 cand_up = 1;
321 340 cand_up_left = 1;
322 340 cand_left = 1;
323 } else { // No samples available
324 10322 left[-1] = (1 << (BIT_DEPTH - 1));
325
6/8
intra_pred_10:
✓ Branch 197 → 196 taken 6470 times.
✓ Branch 197 → 198 taken 999 times.
intra_pred_12:
✓ Branch 197 → 196 taken 192 times.
✓ Branch 197 → 198 taken 18 times.
intra_pred_8:
✓ Branch 197 → 196 taken 53184 times.
✓ Branch 197 → 198 taken 9305 times.
intra_pred_9:
✗ Branch 197 → 196 not taken.
✗ Branch 197 → 198 not taken.
70168 EXTEND(top, left[-1], 2 * size);
326
6/8
intra_pred_10:
✓ Branch 200 → 199 taken 6470 times.
✓ Branch 200 → 201 taken 999 times.
intra_pred_12:
✓ Branch 200 → 199 taken 192 times.
✓ Branch 200 → 201 taken 18 times.
intra_pred_8:
✓ Branch 200 → 199 taken 53184 times.
✓ Branch 200 → 201 taken 9305 times.
intra_pred_9:
✗ Branch 200 → 199 not taken.
✗ Branch 200 → 201 not taken.
70168 EXTEND(left, left[-1], 2 * size);
327 }
328 }
329
330
6/8
intra_pred_10:
✓ Branch 201 → 202 taken 999 times.
✓ Branch 201 → 205 taken 1613476 times.
intra_pred_12:
✓ Branch 201 → 202 taken 18 times.
✓ Branch 201 → 205 taken 278700 times.
intra_pred_8:
✓ Branch 201 → 202 taken 9653 times.
✓ Branch 201 → 205 taken 17198148 times.
intra_pred_9:
✗ Branch 201 → 202 not taken.
✗ Branch 201 → 205 not taken.
19100994 if (!cand_left)
331
6/8
intra_pred_10:
✓ Branch 204 → 203 taken 3235 times.
✓ Branch 204 → 205 taken 999 times.
intra_pred_12:
✓ Branch 204 → 203 taken 96 times.
✓ Branch 204 → 205 taken 18 times.
intra_pred_8:
✓ Branch 204 → 203 taken 27158 times.
✓ Branch 204 → 205 taken 9653 times.
intra_pred_9:
✗ Branch 204 → 203 not taken.
✗ Branch 204 → 205 not taken.
41159 EXTEND(left, left[size], size);
332
6/8
intra_pred_10:
✓ Branch 205 → 206 taken 25354 times.
✓ Branch 205 → 207 taken 1589121 times.
intra_pred_12:
✓ Branch 205 → 206 taken 1068 times.
✓ Branch 205 → 207 taken 277650 times.
intra_pred_8:
✓ Branch 205 → 206 taken 332454 times.
✓ Branch 205 → 207 taken 16875347 times.
intra_pred_9:
✗ Branch 205 → 206 not taken.
✗ Branch 205 → 207 not taken.
19100994 if (!cand_up_left) {
333 358876 left[-1] = left[0];
334 }
335
6/8
intra_pred_10:
✓ Branch 207 → 208 taken 25354 times.
✓ Branch 207 → 211 taken 1589121 times.
intra_pred_12:
✓ Branch 207 → 208 taken 1068 times.
✓ Branch 207 → 211 taken 277650 times.
intra_pred_8:
✓ Branch 207 → 208 taken 332471 times.
✓ Branch 207 → 211 taken 16875330 times.
intra_pred_9:
✗ Branch 207 → 208 not taken.
✗ Branch 207 → 211 not taken.
19100994 if (!cand_up)
336
6/8
intra_pred_10:
✓ Branch 210 → 209 taken 67704 times.
✓ Branch 210 → 211 taken 25354 times.
intra_pred_12:
✓ Branch 210 → 209 taken 3468 times.
✓ Branch 210 → 211 taken 1068 times.
intra_pred_8:
✓ Branch 210 → 209 taken 719366 times.
✓ Branch 210 → 211 taken 332471 times.
intra_pred_9:
✗ Branch 210 → 209 not taken.
✗ Branch 210 → 211 not taken.
1149431 EXTEND(top, left[-1], size);
337
6/8
intra_pred_10:
✓ Branch 211 → 212 taken 779755 times.
✓ Branch 211 → 215 taken 834720 times.
intra_pred_12:
✓ Branch 211 → 212 taken 93036 times.
✓ Branch 211 → 215 taken 185682 times.
intra_pred_8:
✓ Branch 211 → 212 taken 5916818 times.
✓ Branch 211 → 215 taken 11290983 times.
intra_pred_9:
✗ Branch 211 → 212 not taken.
✗ Branch 211 → 215 not taken.
19100994 if (!cand_up_right)
338
6/8
intra_pred_10:
✓ Branch 214 → 213 taken 1219250 times.
✓ Branch 214 → 215 taken 779755 times.
intra_pred_12:
✓ Branch 214 → 213 taken 142395 times.
✓ Branch 214 → 215 taken 93036 times.
intra_pred_8:
✓ Branch 214 → 213 taken 9050781 times.
✓ Branch 214 → 215 taken 5916818 times.
intra_pred_9:
✗ Branch 214 → 213 not taken.
✗ Branch 214 → 215 not taken.
17202035 EXTEND(top + size, top[size - 1], size);
339
340 19100994 top[-1] = left[-1];
341
342 // Filtering process
343
15/24
intra_pred_10:
✓ Branch 215 → 216 taken 1050472 times.
✓ Branch 215 → 231 taken 564003 times.
✓ Branch 216 → 217 taken 650286 times.
✓ Branch 216 → 218 taken 400186 times.
✗ Branch 217 → 218 not taken.
✓ Branch 217 → 231 taken 650286 times.
intra_pred_12:
✓ Branch 215 → 216 taken 273582 times.
✓ Branch 215 → 231 taken 5136 times.
✓ Branch 216 → 217 taken 182388 times.
✓ Branch 216 → 218 taken 91194 times.
✓ Branch 217 → 218 taken 182388 times.
✗ Branch 217 → 231 not taken.
intra_pred_8:
✓ Branch 215 → 216 taken 17207801 times.
✗ Branch 215 → 231 not taken.
✓ Branch 216 → 217 taken 8966624 times.
✓ Branch 216 → 218 taken 8241177 times.
✓ Branch 217 → 218 taken 139178 times.
✓ Branch 217 → 231 taken 8827446 times.
intra_pred_9:
✗ Branch 215 → 216 not taken.
✗ Branch 215 → 231 not taken.
✗ Branch 216 → 217 not taken.
✗ Branch 216 → 218 not taken.
✗ Branch 217 → 218 not taken.
✗ Branch 217 → 231 not taken.
19100994 if (!sps->intra_smoothing_disabled && (c_idx == 0 || sps->chroma_format_idc == 3)) {
344
12/16
intra_pred_10:
✓ Branch 218 → 219 taken 335888 times.
✓ Branch 218 → 231 taken 64298 times.
✓ Branch 219 → 220 taken 135226 times.
✓ Branch 219 → 231 taken 200662 times.
intra_pred_12:
✓ Branch 218 → 219 taken 243577 times.
✓ Branch 218 → 231 taken 30005 times.
✓ Branch 219 → 220 taken 86004 times.
✓ Branch 219 → 231 taken 157573 times.
intra_pred_8:
✓ Branch 218 → 219 taken 7509572 times.
✓ Branch 218 → 231 taken 870783 times.
✓ Branch 219 → 220 taken 2799743 times.
✓ Branch 219 → 231 taken 4709829 times.
intra_pred_9:
✗ Branch 218 → 219 not taken.
✗ Branch 218 → 231 not taken.
✗ Branch 219 → 220 not taken.
✗ Branch 219 → 231 not taken.
9054123 if (mode != INTRA_DC && size != 4){
345 3020973 int intra_hor_ver_dist_thresh[] = { 7, 1, 0 };
346 3020973 int min_dist_vert_hor = FFMIN(FFABS((int)(mode - 26U)),
347 FFABS((int)(mode - 10U)));
348
6/8
intra_pred_10:
✓ Branch 220 → 221 taken 67397 times.
✓ Branch 220 → 230 taken 67829 times.
intra_pred_12:
✓ Branch 220 → 221 taken 35902 times.
✓ Branch 220 → 230 taken 50102 times.
intra_pred_8:
✓ Branch 220 → 221 taken 1172431 times.
✓ Branch 220 → 230 taken 1627312 times.
intra_pred_9:
✗ Branch 220 → 221 not taken.
✗ Branch 220 → 230 not taken.
3020973 if (min_dist_vert_hor > intra_hor_ver_dist_thresh[log2_size - 3]) {
349 1275730 int threshold = 1 << (BIT_DEPTH - 5);
350
16/24
intra_pred_10:
✓ Branch 221 → 222 taken 55490 times.
✓ Branch 221 → 228 taken 11907 times.
✓ Branch 222 → 223 taken 55490 times.
✗ Branch 222 → 228 not taken.
✓ Branch 223 → 224 taken 12816 times.
✓ Branch 223 → 228 taken 42674 times.
intra_pred_12:
✓ Branch 221 → 222 taken 35902 times.
✗ Branch 221 → 228 not taken.
✓ Branch 222 → 223 taken 11424 times.
✓ Branch 222 → 228 taken 24478 times.
✓ Branch 223 → 224 taken 521 times.
✓ Branch 223 → 228 taken 10903 times.
intra_pred_8:
✓ Branch 221 → 222 taken 972460 times.
✓ Branch 221 → 228 taken 199971 times.
✓ Branch 222 → 223 taken 965646 times.
✓ Branch 222 → 228 taken 6814 times.
✓ Branch 223 → 224 taken 146766 times.
✓ Branch 223 → 228 taken 818880 times.
intra_pred_9:
✗ Branch 221 → 222 not taken.
✗ Branch 221 → 228 not taken.
✗ Branch 222 → 223 not taken.
✗ Branch 222 → 228 not taken.
✗ Branch 223 → 224 not taken.
✗ Branch 223 → 228 not taken.
1275730 if (sps->strong_intra_smoothing_enabled && c_idx == 0 &&
351 160103 log2_size == 5 &&
352
6/8
intra_pred_10:
✓ Branch 224 → 225 taken 9438 times.
✓ Branch 224 → 228 taken 3378 times.
intra_pred_12:
✓ Branch 224 → 225 taken 222 times.
✓ Branch 224 → 228 taken 299 times.
intra_pred_8:
✓ Branch 224 → 225 taken 60635 times.
✓ Branch 224 → 228 taken 86131 times.
intra_pred_9:
✗ Branch 224 → 225 not taken.
✗ Branch 224 → 228 not taken.
160103 FFABS(top[-1] + top[63] - 2 * top[31]) < threshold &&
353
6/8
intra_pred_10:
✓ Branch 225 → 226 taken 6610 times.
✓ Branch 225 → 228 taken 2828 times.
intra_pred_12:
✓ Branch 225 → 226 taken 102 times.
✓ Branch 225 → 228 taken 120 times.
intra_pred_8:
✓ Branch 225 → 226 taken 35919 times.
✓ Branch 225 → 228 taken 24716 times.
intra_pred_9:
✗ Branch 225 → 226 not taken.
✗ Branch 225 → 228 not taken.
70295 FFABS(left[-1] + left[63] - 2 * left[31]) < threshold) {
354 42631 s->hpc.ref_filter_strong((uint8_t *)filtered_top,
355 (uint8_t *)left,
356 (const uint8_t *)top);
357 42631 top = filtered_top;
358 } else {
359 1233099 s->hpc.ref_filter_3tap[log2_size - 3](
360 (uint8_t *)filtered_left, (uint8_t *)filtered_top,
361 (const uint8_t *)left, (const uint8_t *)top, size);
362 1233099 left = filtered_left;
363 1233099 top = filtered_top;
364 }
365 }
366 }
367 }
368
369
9/12
intra_pred_10:
✓ Branch 231 → 232 taken 432031 times.
✓ Branch 231 → 234 taken 359755 times.
✓ Branch 231 → 236 taken 822689 times.
intra_pred_12:
✓ Branch 231 → 232 taken 70549 times.
✓ Branch 231 → 234 taken 30837 times.
✓ Branch 231 → 236 taken 177332 times.
intra_pred_8:
✓ Branch 231 → 232 taken 3596116 times.
✓ Branch 231 → 234 taken 2087461 times.
✓ Branch 231 → 236 taken 11524224 times.
intra_pred_9:
✗ Branch 231 → 232 not taken.
✗ Branch 231 → 234 not taken.
✗ Branch 231 → 236 not taken.
19100994 switch (mode) {
370 4098696 case INTRA_PLANAR:
371 4098696 s->hpc.pred_planar[log2_size - 2]((uint8_t *)src, (uint8_t *)top,
372 (uint8_t *)left, stride);
373 4098696 break;
374 2478053 case INTRA_DC:
375 2478053 s->hpc.pred_dc((uint8_t *)src, (uint8_t *)top,
376 (uint8_t *)left, stride, log2_size, c_idx);
377 2478053 break;
378 12524245 default:
379 12524245 s->hpc.pred_angular[log2_size - 2]((uint8_t *)src, (uint8_t *)top,
380 (uint8_t *)left, stride, c_idx,
381 mode);
382 12524245 break;
383 }
384 19100994 }
385
386 #define INTRA_PRED(size) \
387 static void FUNC(intra_pred_ ## size)(HEVCLocalContext *lc, const HEVCPPS *pps, \
388 int x0, int y0, int c_idx) \
389 { \
390 FUNC(intra_pred)(lc, pps, x0, y0, size, c_idx); \
391 }
392
393 13257184 INTRA_PRED(2)
394 4073074 INTRA_PRED(3)
395 1459207 INTRA_PRED(4)
396 311529 INTRA_PRED(5)
397
398 #undef INTRA_PRED
399
400 4086346 static av_always_inline void FUNC(pred_planar)(uint8_t *_src, const uint8_t *_top,
401 const uint8_t *_left, ptrdiff_t stride,
402 int trafo_size)
403 {
404 int x, y;
405 4086346 pixel *src = (pixel *)_src;
406 4086346 const pixel *top = (const pixel *)_top;
407 4086346 const pixel *left = (const pixel *)_left;
408 4086346 int size = 1 << trafo_size;
409
6/8
pred_planar_10:
✓ Branch 7 → 3 taken 3038752 times.
✓ Branch 7 → 8 taken 432043 times.
pred_planar_12:
✓ Branch 7 → 3 taken 444216 times.
✓ Branch 7 → 8 taken 70549 times.
pred_planar_8:
✓ Branch 7 → 3 taken 23892176 times.
✓ Branch 7 → 8 taken 3583754 times.
pred_planar_9:
✗ Branch 7 → 3 not taken.
✗ Branch 7 → 8 not taken.
31461490 for (y = 0; y < size; y++)
410
6/8
pred_planar_10:
✓ Branch 5 → 4 taken 35876896 times.
✓ Branch 5 → 6 taken 3038752 times.
pred_planar_12:
✓ Branch 5 → 4 taken 4130176 times.
✓ Branch 5 → 6 taken 444216 times.
pred_planar_8:
✓ Branch 5 → 4 taken 260326016 times.
✓ Branch 5 → 6 taken 23892176 times.
pred_planar_9:
✗ Branch 5 → 4 not taken.
✗ Branch 5 → 6 not taken.
327708232 for (x = 0; x < size; x++)
411 300333088 POS(x, y) = ((size - 1 - x) * left[y] + (x + 1) * top[size] +
412 300333088 (size - 1 - y) * top[x] + (y + 1) * left[size] + size) >> (trafo_size + 1);
413 4086346 }
414
415 #define PRED_PLANAR(size)\
416 static void FUNC(pred_planar_ ## size)(uint8_t *src, const uint8_t *top, \
417 const uint8_t *left, ptrdiff_t stride) \
418 { \
419 FUNC(pred_planar)(src, top, left, stride, size + 2); \
420 }
421
422 2696554 PRED_PLANAR(0)
423 898402 PRED_PLANAR(1)
424 395173 PRED_PLANAR(2)
425 96217 PRED_PLANAR(3)
426
427 #undef PRED_PLANAR
428
429 2478093 static void FUNC(pred_dc)(uint8_t *_src, const uint8_t *_top,
430 const uint8_t *_left,
431 ptrdiff_t stride, int log2_size, int c_idx)
432 {
433 int i, j, x, y;
434 2478093 int size = (1 << log2_size);
435 2478093 pixel *src = (pixel *)_src;
436 2478093 const pixel *top = (const pixel *)_top;
437 2478093 const pixel *left = (const pixel *)_left;
438 2478093 int dc = size;
439 pixel4 a;
440
6/8
pred_dc_10:
✓ Branch 4 → 3 taken 2984492 times.
✓ Branch 4 → 5 taken 359775 times.
pred_dc_12:
✓ Branch 4 → 3 taken 226788 times.
✓ Branch 4 → 5 taken 30837 times.
pred_dc_8:
✓ Branch 4 → 3 taken 14628184 times.
✓ Branch 4 → 5 taken 2087481 times.
pred_dc_9:
✗ Branch 4 → 3 not taken.
✗ Branch 4 → 5 not taken.
20317557 for (i = 0; i < size; i++)
441 17839464 dc += left[i] + top[i];
442
443 2478093 dc >>= log2_size + 1;
444
445 2478093 a = PIXEL_SPLAT_X4(dc);
446
447
6/8
pred_dc_10:
✓ Branch 10 → 6 taken 2984492 times.
✓ Branch 10 → 11 taken 359775 times.
pred_dc_12:
✓ Branch 10 → 6 taken 226788 times.
✓ Branch 10 → 11 taken 30837 times.
pred_dc_8:
✓ Branch 10 → 6 taken 14628184 times.
✓ Branch 10 → 11 taken 2087481 times.
pred_dc_9:
✗ Branch 10 → 6 not taken.
✗ Branch 10 → 11 not taken.
20317557 for (i = 0; i < size; i++)
448
6/8
pred_dc_10:
✓ Branch 8 → 7 taken 9793116 times.
✓ Branch 8 → 9 taken 2984492 times.
pred_dc_12:
✓ Branch 8 → 7 taken 667692 times.
✓ Branch 8 → 9 taken 226788 times.
pred_dc_8:
✓ Branch 8 → 7 taken 42441600 times.
✓ Branch 8 → 9 taken 14628184 times.
pred_dc_9:
✗ Branch 8 → 7 not taken.
✗ Branch 8 → 9 not taken.
70741872 for (j = 0; j < size; j+=4)
449 52902408 AV_WN4P(&POS(j, i), a);
450
451
12/16
pred_dc_10:
✓ Branch 11 → 12 taken 90277 times.
✓ Branch 11 → 19 taken 269498 times.
✓ Branch 12 → 13 taken 78020 times.
✓ Branch 12 → 19 taken 12257 times.
pred_dc_12:
✓ Branch 11 → 12 taken 9631 times.
✓ Branch 11 → 19 taken 21206 times.
✓ Branch 12 → 13 taken 9331 times.
✓ Branch 12 → 19 taken 300 times.
pred_dc_8:
✓ Branch 11 → 12 taken 857641 times.
✓ Branch 11 → 19 taken 1229840 times.
✓ Branch 12 → 13 taken 799043 times.
✓ Branch 12 → 19 taken 58598 times.
pred_dc_9:
✗ Branch 11 → 12 not taken.
✗ Branch 11 → 19 not taken.
✗ Branch 12 → 13 not taken.
✗ Branch 12 → 19 not taken.
2478093 if (c_idx == 0 && size < 32) {
452 886394 POS(0, 0) = (left[0] + 2 * dc + top[0] + 2) >> 2;
453
6/8
pred_dc_10:
✓ Branch 15 → 14 taken 526856 times.
✓ Branch 15 → 16 taken 78020 times.
pred_dc_12:
✓ Branch 15 → 14 taken 51289 times.
✓ Branch 15 → 16 taken 9331 times.
pred_dc_8:
✓ Branch 15 → 14 taken 4546853 times.
✓ Branch 15 → 16 taken 799043 times.
pred_dc_9:
✗ Branch 15 → 14 not taken.
✗ Branch 15 → 16 not taken.
6011392 for (x = 1; x < size; x++)
454 5124998 POS(x, 0) = (top[x] + 3 * dc + 2) >> 2;
455
6/8
pred_dc_10:
✓ Branch 18 → 17 taken 526856 times.
✓ Branch 18 → 19 taken 78020 times.
pred_dc_12:
✓ Branch 18 → 17 taken 51289 times.
✓ Branch 18 → 19 taken 9331 times.
pred_dc_8:
✓ Branch 18 → 17 taken 4546853 times.
✓ Branch 18 → 19 taken 799043 times.
pred_dc_9:
✗ Branch 18 → 17 not taken.
✗ Branch 18 → 19 not taken.
6011392 for (y = 1; y < size; y++)
456 5124998 POS(0, y) = (left[y] + 3 * dc + 2) >> 2;
457 }
458 2478093 }
459
460 12525069 static av_always_inline void FUNC(pred_angular)(uint8_t *_src,
461 const uint8_t *_top,
462 const uint8_t *_left,
463 ptrdiff_t stride, int c_idx,
464 int mode, int size)
465 {
466 int x, y;
467 12525069 pixel *src = (pixel *)_src;
468 12525069 const pixel *top = (const pixel *)_top;
469 12525069 const pixel *left = (const pixel *)_left;
470
471 static const int intra_pred_angle[] = {
472 32, 26, 21, 17, 13, 9, 5, 2, 0, -2, -5, -9, -13, -17, -21, -26, -32,
473 -26, -21, -17, -13, -9, -5, -2, 0, 2, 5, 9, 13, 17, 21, 26, 32
474 };
475 static const int inv_angle[] = {
476 -4096, -1638, -910, -630, -482, -390, -315, -256, -315, -390, -482,
477 -630, -910, -1638, -4096
478 };
479
480 12525069 int angle = intra_pred_angle[mode - 2];
481 pixel ref_array[3 * MAX_TB_SIZE + 4];
482 12525069 pixel *ref_tmp = ref_array + size;
483 const pixel *ref;
484 12525069 int last = (size * angle) >> 5;
485
486
6/8
pred_angular_10:
✓ Branch 2 → 3 taken 438184 times.
✓ Branch 2 → 28 taken 384917 times.
pred_angular_12:
✓ Branch 2 → 3 taken 59150 times.
✓ Branch 2 → 28 taken 118182 times.
pred_angular_8:
✓ Branch 2 → 3 taken 6480418 times.
✓ Branch 2 → 28 taken 5044218 times.
pred_angular_9:
✗ Branch 2 → 3 not taken.
✗ Branch 2 → 28 not taken.
12525069 if (mode >= 18) {
487 6977752 ref = top - 1;
488
12/16
pred_angular_10:
✓ Branch 3 → 4 taken 173825 times.
✓ Branch 3 → 12 taken 264359 times.
✓ Branch 4 → 5 taken 114915 times.
✓ Branch 4 → 12 taken 58910 times.
pred_angular_12:
✓ Branch 3 → 4 taken 15320 times.
✓ Branch 3 → 12 taken 43830 times.
✓ Branch 4 → 5 taken 9838 times.
✓ Branch 4 → 12 taken 5482 times.
pred_angular_8:
✓ Branch 3 → 4 taken 2409768 times.
✓ Branch 3 → 12 taken 4070650 times.
✓ Branch 4 → 5 taken 1615989 times.
✓ Branch 4 → 12 taken 793779 times.
pred_angular_9:
✗ Branch 3 → 4 not taken.
✗ Branch 3 → 12 not taken.
✗ Branch 4 → 5 not taken.
✗ Branch 4 → 12 not taken.
6977752 if (angle < 0 && last < -1) {
489
6/8
pred_angular_10:
✓ Branch 7 → 6 taken 275404 times.
✓ Branch 7 → 8 taken 114915 times.
pred_angular_12:
✓ Branch 7 → 6 taken 23923 times.
✓ Branch 7 → 8 taken 9838 times.
pred_angular_8:
✓ Branch 7 → 6 taken 4106075 times.
✓ Branch 7 → 8 taken 1615989 times.
pred_angular_9:
✗ Branch 7 → 6 not taken.
✗ Branch 7 → 8 not taken.
6146144 for (x = 0; x <= size; x += 4)
490 4405402 AV_WN4P(&ref_tmp[x], AV_RN4P(&top[x - 1]));
491
6/8
pred_angular_10:
✓ Branch 10 → 9 taken 399565 times.
✓ Branch 10 → 11 taken 114915 times.
pred_angular_12:
✓ Branch 10 → 9 taken 41684 times.
✓ Branch 10 → 11 taken 9838 times.
pred_angular_8:
✓ Branch 10 → 9 taken 6100048 times.
✓ Branch 10 → 11 taken 1615989 times.
pred_angular_9:
✗ Branch 10 → 9 not taken.
✗ Branch 10 → 11 not taken.
8282039 for (x = last; x <= -1; x++)
492 6541297 ref_tmp[x] = left[-1 + ((x * inv_angle[mode - 11] + 128) >> 8)];
493 1740742 ref = ref_tmp;
494 }
495
496
6/8
pred_angular_10:
✓ Branch 21 → 13 taken 2478412 times.
✓ Branch 21 → 22 taken 438184 times.
pred_angular_12:
✓ Branch 21 → 13 taken 327340 times.
✓ Branch 21 → 22 taken 59150 times.
pred_angular_8:
✓ Branch 21 → 13 taken 37816204 times.
✓ Branch 21 → 22 taken 6480418 times.
pred_angular_9:
✗ Branch 21 → 13 not taken.
✗ Branch 21 → 22 not taken.
47599708 for (y = 0; y < size; y++) {
497 40621956 int idx = ((y + 1) * angle) >> 5;
498 40621956 int fact = ((y + 1) * angle) & 31;
499
6/8
pred_angular_10:
✓ Branch 13 → 14 taken 1603566 times.
✓ Branch 13 → 17 taken 874846 times.
pred_angular_12:
✓ Branch 13 → 14 taken 154920 times.
✓ Branch 13 → 17 taken 172420 times.
pred_angular_8:
✓ Branch 13 → 14 taken 22967392 times.
✓ Branch 13 → 17 taken 14848812 times.
pred_angular_9:
✗ Branch 13 → 14 not taken.
✗ Branch 13 → 17 not taken.
40621956 if (fact) {
500
6/8
pred_angular_10:
✓ Branch 16 → 15 taken 2995340 times.
✓ Branch 16 → 20 taken 1603566 times.
pred_angular_12:
✓ Branch 16 → 15 taken 266316 times.
✓ Branch 16 → 20 taken 154920 times.
pred_angular_8:
✓ Branch 16 → 15 taken 49398604 times.
✓ Branch 16 → 20 taken 22967392 times.
pred_angular_9:
✗ Branch 16 → 15 not taken.
✗ Branch 16 → 20 not taken.
77386138 for (x = 0; x < size; x += 4) {
501 52660260 POS(x , y) = ((32 - fact) * ref[x + idx + 1] +
502 52660260 fact * ref[x + idx + 2] + 16) >> 5;
503 52660260 POS(x + 1, y) = ((32 - fact) * ref[x + 1 + idx + 1] +
504 52660260 fact * ref[x + 1 + idx + 2] + 16) >> 5;
505 52660260 POS(x + 2, y) = ((32 - fact) * ref[x + 2 + idx + 1] +
506 52660260 fact * ref[x + 2 + idx + 2] + 16) >> 5;
507 52660260 POS(x + 3, y) = ((32 - fact) * ref[x + 3 + idx + 1] +
508 52660260 fact * ref[x + 3 + idx + 2] + 16) >> 5;
509 }
510 } else {
511
6/8
pred_angular_10:
✓ Branch 19 → 18 taken 2272016 times.
✓ Branch 19 → 20 taken 874846 times.
pred_angular_12:
✓ Branch 19 → 18 taken 328064 times.
✓ Branch 19 → 20 taken 172420 times.
pred_angular_8:
✓ Branch 19 → 18 taken 32769720 times.
✓ Branch 19 → 20 taken 14848812 times.
pred_angular_9:
✗ Branch 19 → 18 not taken.
✗ Branch 19 → 20 not taken.
51265878 for (x = 0; x < size; x += 4)
512 35369800 AV_WN4P(&POS(x, y), AV_RN4P(&ref[x + idx + 1]));
513 }
514 }
515
18/24
pred_angular_10:
✓ Branch 22 → 23 taken 116439 times.
✓ Branch 22 → 53 taken 321745 times.
✓ Branch 23 → 24 taken 39403 times.
✓ Branch 23 → 53 taken 77036 times.
✓ Branch 24 → 25 taken 36641 times.
✓ Branch 24 → 53 taken 2762 times.
pred_angular_12:
✓ Branch 22 → 23 taken 22638 times.
✓ Branch 22 → 53 taken 36512 times.
✓ Branch 23 → 24 taken 7290 times.
✓ Branch 23 → 53 taken 15348 times.
✓ Branch 24 → 25 taken 7272 times.
✓ Branch 24 → 53 taken 18 times.
pred_angular_8:
✓ Branch 22 → 23 taken 1949436 times.
✓ Branch 22 → 53 taken 4530982 times.
✓ Branch 23 → 24 taken 761892 times.
✓ Branch 23 → 53 taken 1187544 times.
✓ Branch 24 → 25 taken 741577 times.
✓ Branch 24 → 53 taken 20315 times.
pred_angular_9:
✗ Branch 22 → 23 not taken.
✗ Branch 22 → 53 not taken.
✗ Branch 23 → 24 not taken.
✗ Branch 23 → 53 not taken.
✗ Branch 24 → 25 not taken.
✗ Branch 24 → 53 not taken.
6977752 if (mode == 26 && c_idx == 0 && size < 32) {
516
6/8
pred_angular_10:
✓ Branch 27 → 26 taken 215572 times.
✓ Branch 27 → 53 taken 36641 times.
pred_angular_12:
✓ Branch 27 → 26 taken 37560 times.
✓ Branch 27 → 53 taken 7272 times.
pred_angular_8:
✓ Branch 27 → 26 taken 4480296 times.
✓ Branch 27 → 53 taken 741577 times.
pred_angular_9:
✗ Branch 27 → 26 not taken.
✗ Branch 27 → 53 not taken.
5518918 for (y = 0; y < size; y++)
517 4733428 POS(0, y) = av_clip_pixel(top[0] + ((left[y] - left[-1]) >> 1));
518 }
519 } else {
520 5547317 ref = left - 1;
521
12/16
pred_angular_10:
✓ Branch 28 → 29 taken 137761 times.
✓ Branch 28 → 37 taken 247156 times.
✓ Branch 29 → 30 taken 81939 times.
✓ Branch 29 → 37 taken 55822 times.
pred_angular_12:
✓ Branch 28 → 29 taken 32816 times.
✓ Branch 28 → 37 taken 85366 times.
✓ Branch 29 → 30 taken 11369 times.
✓ Branch 29 → 37 taken 21447 times.
pred_angular_8:
✓ Branch 28 → 29 taken 1660049 times.
✓ Branch 28 → 37 taken 3384169 times.
✓ Branch 29 → 30 taken 1063335 times.
✓ Branch 29 → 37 taken 596714 times.
pred_angular_9:
✗ Branch 28 → 29 not taken.
✗ Branch 28 → 37 not taken.
✗ Branch 29 → 30 not taken.
✗ Branch 29 → 37 not taken.
5547317 if (angle < 0 && last < -1) {
522
6/8
pred_angular_10:
✓ Branch 32 → 31 taken 212820 times.
✓ Branch 32 → 33 taken 81939 times.
pred_angular_12:
✓ Branch 32 → 31 taken 29934 times.
✓ Branch 32 → 33 taken 11369 times.
pred_angular_8:
✓ Branch 32 → 31 taken 2695497 times.
✓ Branch 32 → 33 taken 1063335 times.
pred_angular_9:
✗ Branch 32 → 31 not taken.
✗ Branch 32 → 33 not taken.
4094894 for (x = 0; x <= size; x += 4)
523 2938251 AV_WN4P(&ref_tmp[x], AV_RN4P(&left[x - 1]));
524
6/8
pred_angular_10:
✓ Branch 35 → 34 taken 273944 times.
✓ Branch 35 → 36 taken 81939 times.
pred_angular_12:
✓ Branch 35 → 34 taken 33912 times.
✓ Branch 35 → 36 taken 11369 times.
pred_angular_8:
✓ Branch 35 → 34 taken 3692107 times.
✓ Branch 35 → 36 taken 1063335 times.
pred_angular_9:
✗ Branch 35 → 34 not taken.
✗ Branch 35 → 36 not taken.
5156606 for (x = last; x <= -1; x++)
525 3999963 ref_tmp[x] = top[-1 + ((x * inv_angle[mode - 11] + 128) >> 8)];
526 1156643 ref = ref_tmp;
527 }
528
529
6/8
pred_angular_10:
✓ Branch 46 → 38 taken 2299588 times.
✓ Branch 46 → 47 taken 384917 times.
pred_angular_12:
✓ Branch 46 → 38 taken 716936 times.
✓ Branch 46 → 47 taken 118182 times.
pred_angular_8:
✓ Branch 46 → 38 taken 29945928 times.
✓ Branch 46 → 47 taken 5044218 times.
pred_angular_9:
✗ Branch 46 → 38 not taken.
✗ Branch 46 → 47 not taken.
38509769 for (x = 0; x < size; x++) {
530 32962452 int idx = ((x + 1) * angle) >> 5;
531 32962452 int fact = ((x + 1) * angle) & 31;
532
6/8
pred_angular_10:
✓ Branch 38 → 39 taken 1635612 times.
✓ Branch 38 → 42 taken 663976 times.
pred_angular_12:
✓ Branch 38 → 39 taken 489056 times.
✓ Branch 38 → 42 taken 227880 times.
pred_angular_8:
✓ Branch 38 → 39 taken 21503232 times.
✓ Branch 38 → 42 taken 8442696 times.
pred_angular_9:
✗ Branch 38 → 39 not taken.
✗ Branch 38 → 42 not taken.
32962452 if (fact) {
533
6/8
pred_angular_10:
✓ Branch 41 → 40 taken 16209968 times.
✓ Branch 41 → 45 taken 1635612 times.
pred_angular_12:
✓ Branch 41 → 40 taken 4034128 times.
✓ Branch 41 → 45 taken 489056 times.
pred_angular_8:
✓ Branch 41 → 40 taken 189767904 times.
✓ Branch 41 → 45 taken 21503232 times.
pred_angular_9:
✗ Branch 41 → 40 not taken.
✗ Branch 41 → 45 not taken.
233639900 for (y = 0; y < size; y++) {
534 210012000 POS(x, y) = ((32 - fact) * ref[y + idx + 1] +
535 210012000 fact * ref[y + idx + 2] + 16) >> 5;
536 }
537 } else {
538
6/8
pred_angular_10:
✓ Branch 44 → 43 taken 5800800 times.
✓ Branch 44 → 45 taken 663976 times.
pred_angular_12:
✓ Branch 44 → 43 taken 1777616 times.
✓ Branch 44 → 45 taken 227880 times.
pred_angular_8:
✓ Branch 44 → 43 taken 81573216 times.
✓ Branch 44 → 45 taken 8442696 times.
pred_angular_9:
✗ Branch 44 → 43 not taken.
✗ Branch 44 → 45 not taken.
98486184 for (y = 0; y < size; y++)
539 89151632 POS(x, y) = ref[y + idx + 1];
540 }
541 }
542
18/24
pred_angular_10:
✓ Branch 47 → 48 taken 86818 times.
✓ Branch 47 → 53 taken 298099 times.
✓ Branch 48 → 49 taken 28814 times.
✓ Branch 48 → 53 taken 58004 times.
✓ Branch 49 → 50 taken 27718 times.
✓ Branch 49 → 53 taken 1096 times.
pred_angular_12:
✓ Branch 47 → 48 taken 34362 times.
✓ Branch 47 → 53 taken 83820 times.
✓ Branch 48 → 49 taken 9772 times.
✓ Branch 48 → 53 taken 24590 times.
✓ Branch 49 → 50 taken 9740 times.
✓ Branch 49 → 53 taken 32 times.
pred_angular_8:
✓ Branch 47 → 48 taken 1146341 times.
✓ Branch 47 → 53 taken 3897877 times.
✓ Branch 48 → 49 taken 339605 times.
✓ Branch 48 → 53 taken 806736 times.
✓ Branch 49 → 50 taken 327497 times.
✓ Branch 49 → 53 taken 12108 times.
pred_angular_9:
✗ Branch 47 → 48 not taken.
✗ Branch 47 → 53 not taken.
✗ Branch 48 → 49 not taken.
✗ Branch 48 → 53 not taken.
✗ Branch 49 → 50 not taken.
✗ Branch 49 → 53 not taken.
5547317 if (mode == 10 && c_idx == 0 && size < 32) {
543
6/8
pred_angular_10:
✓ Branch 52 → 51 taken 36252 times.
✓ Branch 52 → 53 taken 27718 times.
pred_angular_12:
✓ Branch 52 → 51 taken 14467 times.
✓ Branch 52 → 53 taken 9740 times.
pred_angular_8:
✓ Branch 52 → 51 taken 493965 times.
✓ Branch 52 → 53 taken 327497 times.
pred_angular_9:
✗ Branch 52 → 51 not taken.
✗ Branch 52 → 53 not taken.
909639 for (x = 0; x < size; x += 4) {
544 544684 POS(x, 0) = av_clip_pixel(left[0] + ((top[x ] - top[-1]) >> 1));
545 544684 POS(x + 1, 0) = av_clip_pixel(left[0] + ((top[x + 1] - top[-1]) >> 1));
546 544684 POS(x + 2, 0) = av_clip_pixel(left[0] + ((top[x + 2] - top[-1]) >> 1));
547 544684 POS(x + 3, 0) = av_clip_pixel(left[0] + ((top[x + 3] - top[-1]) >> 1));
548 }
549 }
550 }
551 12525069 }
552
553 9036898 void FUNC(ff_hevc_pred_angular_0)(uint8_t *src, const uint8_t *top,
554 const uint8_t *left,
555 ptrdiff_t stride, int c_idx, int mode)
556 {
557 9036898 FUNC(pred_angular)(src, top, left, stride, c_idx, mode, 1 << 2);
558 9036898 }
559
560 2581614 void FUNC(ff_hevc_pred_angular_1)(uint8_t *src, const uint8_t *top,
561 const uint8_t *left,
562 ptrdiff_t stride, int c_idx, int mode)
563 {
564 2581614 FUNC(pred_angular)(src, top, left, stride, c_idx, mode, 1 << 3);
565 2581614 }
566
567 764120 void FUNC(ff_hevc_pred_angular_2)(uint8_t *src, const uint8_t *top,
568 const uint8_t *left,
569 ptrdiff_t stride, int c_idx, int mode)
570 {
571 764120 FUNC(pred_angular)(src, top, left, stride, c_idx, mode, 1 << 4);
572 764120 }
573
574 142437 void FUNC(ff_hevc_pred_angular_3)(uint8_t *src, const uint8_t *top,
575 const uint8_t *left,
576 ptrdiff_t stride, int c_idx, int mode)
577 {
578 142437 FUNC(pred_angular)(src, top, left, stride, c_idx, mode, 1 << 5);
579 142437 }
580
581 #undef EXTEND_LEFT_CIP
582 #undef EXTEND_RIGHT_CIP
583 #undef EXTEND_UP_CIP
584 #undef EXTEND_DOWN_CIP
585 #undef IS_INTRA
586 #undef MVF_PU
587 #undef MVF
588 #undef PU
589 #undef EXTEND
590 #undef MIN_TB_ADDR_ZS
591 #undef POS
592