| 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 |
|
|
|