Coverage Report

Created: 2025-07-23 08:18

/src/aom/av1/common/txb_common.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (c) 2017, Alliance for Open Media. All rights reserved
3
 *
4
 * This source code is subject to the terms of the BSD 2 Clause License and
5
 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6
 * was not distributed with this source code in the LICENSE file, you can
7
 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8
 * Media Patent License 1.0 was not distributed with this source code in the
9
 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
10
 */
11
12
#ifndef AOM_AV1_COMMON_TXB_COMMON_H_
13
#define AOM_AV1_COMMON_TXB_COMMON_H_
14
15
#include "av1/common/av1_common_int.h"
16
17
extern const int16_t av1_eob_group_start[12];
18
extern const int16_t av1_eob_offset_bits[12];
19
20
extern const int8_t av1_coeff_band_4x4[16];
21
22
extern const int8_t av1_coeff_band_8x8[64];
23
24
extern const int8_t av1_coeff_band_16x16[256];
25
26
extern const int8_t av1_coeff_band_32x32[1024];
27
28
extern const int8_t *av1_nz_map_ctx_offset[TX_SIZES_ALL];
29
30
typedef struct txb_ctx {
31
  int txb_skip_ctx;
32
  int dc_sign_ctx;
33
} TXB_CTX;
34
35
static const int base_level_count_to_index[13] = {
36
  0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3,
37
};
38
39
static const TX_CLASS tx_type_to_class[TX_TYPES] = {
40
  TX_CLASS_2D,     // DCT_DCT
41
  TX_CLASS_2D,     // ADST_DCT
42
  TX_CLASS_2D,     // DCT_ADST
43
  TX_CLASS_2D,     // ADST_ADST
44
  TX_CLASS_2D,     // FLIPADST_DCT
45
  TX_CLASS_2D,     // DCT_FLIPADST
46
  TX_CLASS_2D,     // FLIPADST_FLIPADST
47
  TX_CLASS_2D,     // ADST_FLIPADST
48
  TX_CLASS_2D,     // FLIPADST_ADST
49
  TX_CLASS_2D,     // IDTX
50
  TX_CLASS_VERT,   // V_DCT
51
  TX_CLASS_HORIZ,  // H_DCT
52
  TX_CLASS_VERT,   // V_ADST
53
  TX_CLASS_HORIZ,  // H_ADST
54
  TX_CLASS_VERT,   // V_FLIPADST
55
  TX_CLASS_HORIZ,  // H_FLIPADST
56
};
57
58
12.3M
static INLINE int get_txb_bwl(TX_SIZE tx_size) {
59
12.3M
  tx_size = av1_get_adjusted_tx_size(tx_size);
60
12.3M
  return tx_size_wide_log2[tx_size];
61
12.3M
}
decodetxb.c:get_txb_bwl
Line
Count
Source
58
12.3M
static INLINE int get_txb_bwl(TX_SIZE tx_size) {
59
12.3M
  tx_size = av1_get_adjusted_tx_size(tx_size);
60
12.3M
  return tx_size_wide_log2[tx_size];
61
12.3M
}
Unexecuted instantiation: av1_cx_iface.c:get_txb_bwl
Unexecuted instantiation: av1_quantize.c:get_txb_bwl
Unexecuted instantiation: bitstream.c:get_txb_bwl
Unexecuted instantiation: encodemv.c:get_txb_bwl
Unexecuted instantiation: encoder.c:get_txb_bwl
Unexecuted instantiation: encoder_utils.c:get_txb_bwl
Unexecuted instantiation: encodetxb.c:get_txb_bwl
Unexecuted instantiation: ethread.c:get_txb_bwl
Unexecuted instantiation: firstpass.c:get_txb_bwl
Unexecuted instantiation: global_motion_facade.c:get_txb_bwl
Unexecuted instantiation: level.c:get_txb_bwl
Unexecuted instantiation: lookahead.c:get_txb_bwl
Unexecuted instantiation: mcomp.c:get_txb_bwl
Unexecuted instantiation: mv_prec.c:get_txb_bwl
Unexecuted instantiation: palette.c:get_txb_bwl
Unexecuted instantiation: pass2_strategy.c:get_txb_bwl
Unexecuted instantiation: pickcdef.c:get_txb_bwl
Unexecuted instantiation: picklpf.c:get_txb_bwl
Unexecuted instantiation: pickrst.c:get_txb_bwl
Unexecuted instantiation: ratectrl.c:get_txb_bwl
Unexecuted instantiation: rd.c:get_txb_bwl
Unexecuted instantiation: rdopt.c:get_txb_bwl
Unexecuted instantiation: segmentation.c:get_txb_bwl
Unexecuted instantiation: speed_features.c:get_txb_bwl
Unexecuted instantiation: superres_scale.c:get_txb_bwl
Unexecuted instantiation: svc_layercontext.c:get_txb_bwl
Unexecuted instantiation: temporal_filter.c:get_txb_bwl
Unexecuted instantiation: thirdpass.c:get_txb_bwl
Unexecuted instantiation: tokenize.c:get_txb_bwl
Unexecuted instantiation: tpl_model.c:get_txb_bwl
Unexecuted instantiation: tx_search.c:get_txb_bwl
Unexecuted instantiation: txb_rdopt.c:get_txb_bwl
Unexecuted instantiation: intra_mode_search.c:get_txb_bwl
Unexecuted instantiation: var_based_part.c:get_txb_bwl
Unexecuted instantiation: av1_noise_estimate.c:get_txb_bwl
Unexecuted instantiation: entropy.c:get_txb_bwl
Unexecuted instantiation: entropymode.c:get_txb_bwl
Unexecuted instantiation: txb_common.c:get_txb_bwl
Unexecuted instantiation: aq_complexity.c:get_txb_bwl
Unexecuted instantiation: aq_cyclicrefresh.c:get_txb_bwl
Unexecuted instantiation: aq_variance.c:get_txb_bwl
Unexecuted instantiation: allintra_vis.c:get_txb_bwl
Unexecuted instantiation: compound_type.c:get_txb_bwl
Unexecuted instantiation: context_tree.c:get_txb_bwl
Unexecuted instantiation: encodeframe.c:get_txb_bwl
Unexecuted instantiation: encodeframe_utils.c:get_txb_bwl
Unexecuted instantiation: encodemb.c:get_txb_bwl
Unexecuted instantiation: encode_strategy.c:get_txb_bwl
Unexecuted instantiation: global_motion.c:get_txb_bwl
Unexecuted instantiation: gop_structure.c:get_txb_bwl
Unexecuted instantiation: interp_search.c:get_txb_bwl
Unexecuted instantiation: motion_search_facade.c:get_txb_bwl
Unexecuted instantiation: partition_search.c:get_txb_bwl
Unexecuted instantiation: partition_strategy.c:get_txb_bwl
Unexecuted instantiation: nonrd_pickmode.c:get_txb_bwl
62
63
12.3M
static INLINE int get_txb_wide(TX_SIZE tx_size) {
64
12.3M
  tx_size = av1_get_adjusted_tx_size(tx_size);
65
12.3M
  return tx_size_wide[tx_size];
66
12.3M
}
decodetxb.c:get_txb_wide
Line
Count
Source
63
12.3M
static INLINE int get_txb_wide(TX_SIZE tx_size) {
64
12.3M
  tx_size = av1_get_adjusted_tx_size(tx_size);
65
12.3M
  return tx_size_wide[tx_size];
66
12.3M
}
Unexecuted instantiation: av1_cx_iface.c:get_txb_wide
Unexecuted instantiation: av1_quantize.c:get_txb_wide
Unexecuted instantiation: bitstream.c:get_txb_wide
Unexecuted instantiation: encodemv.c:get_txb_wide
Unexecuted instantiation: encoder.c:get_txb_wide
Unexecuted instantiation: encoder_utils.c:get_txb_wide
Unexecuted instantiation: encodetxb.c:get_txb_wide
Unexecuted instantiation: ethread.c:get_txb_wide
Unexecuted instantiation: firstpass.c:get_txb_wide
Unexecuted instantiation: global_motion_facade.c:get_txb_wide
Unexecuted instantiation: level.c:get_txb_wide
Unexecuted instantiation: lookahead.c:get_txb_wide
Unexecuted instantiation: mcomp.c:get_txb_wide
Unexecuted instantiation: mv_prec.c:get_txb_wide
Unexecuted instantiation: palette.c:get_txb_wide
Unexecuted instantiation: pass2_strategy.c:get_txb_wide
Unexecuted instantiation: pickcdef.c:get_txb_wide
Unexecuted instantiation: picklpf.c:get_txb_wide
Unexecuted instantiation: pickrst.c:get_txb_wide
Unexecuted instantiation: ratectrl.c:get_txb_wide
Unexecuted instantiation: rd.c:get_txb_wide
Unexecuted instantiation: rdopt.c:get_txb_wide
Unexecuted instantiation: segmentation.c:get_txb_wide
Unexecuted instantiation: speed_features.c:get_txb_wide
Unexecuted instantiation: superres_scale.c:get_txb_wide
Unexecuted instantiation: svc_layercontext.c:get_txb_wide
Unexecuted instantiation: temporal_filter.c:get_txb_wide
Unexecuted instantiation: thirdpass.c:get_txb_wide
Unexecuted instantiation: tokenize.c:get_txb_wide
Unexecuted instantiation: tpl_model.c:get_txb_wide
Unexecuted instantiation: tx_search.c:get_txb_wide
Unexecuted instantiation: txb_rdopt.c:get_txb_wide
Unexecuted instantiation: intra_mode_search.c:get_txb_wide
Unexecuted instantiation: var_based_part.c:get_txb_wide
Unexecuted instantiation: av1_noise_estimate.c:get_txb_wide
Unexecuted instantiation: entropy.c:get_txb_wide
Unexecuted instantiation: entropymode.c:get_txb_wide
Unexecuted instantiation: txb_common.c:get_txb_wide
Unexecuted instantiation: aq_complexity.c:get_txb_wide
Unexecuted instantiation: aq_cyclicrefresh.c:get_txb_wide
Unexecuted instantiation: aq_variance.c:get_txb_wide
Unexecuted instantiation: allintra_vis.c:get_txb_wide
Unexecuted instantiation: compound_type.c:get_txb_wide
Unexecuted instantiation: context_tree.c:get_txb_wide
Unexecuted instantiation: encodeframe.c:get_txb_wide
Unexecuted instantiation: encodeframe_utils.c:get_txb_wide
Unexecuted instantiation: encodemb.c:get_txb_wide
Unexecuted instantiation: encode_strategy.c:get_txb_wide
Unexecuted instantiation: global_motion.c:get_txb_wide
Unexecuted instantiation: gop_structure.c:get_txb_wide
Unexecuted instantiation: interp_search.c:get_txb_wide
Unexecuted instantiation: motion_search_facade.c:get_txb_wide
Unexecuted instantiation: partition_search.c:get_txb_wide
Unexecuted instantiation: partition_strategy.c:get_txb_wide
Unexecuted instantiation: nonrd_pickmode.c:get_txb_wide
67
68
12.3M
static INLINE int get_txb_high(TX_SIZE tx_size) {
69
12.3M
  tx_size = av1_get_adjusted_tx_size(tx_size);
70
12.3M
  return tx_size_high[tx_size];
71
12.3M
}
decodetxb.c:get_txb_high
Line
Count
Source
68
12.3M
static INLINE int get_txb_high(TX_SIZE tx_size) {
69
12.3M
  tx_size = av1_get_adjusted_tx_size(tx_size);
70
12.3M
  return tx_size_high[tx_size];
71
12.3M
}
Unexecuted instantiation: av1_cx_iface.c:get_txb_high
Unexecuted instantiation: av1_quantize.c:get_txb_high
Unexecuted instantiation: bitstream.c:get_txb_high
Unexecuted instantiation: encodemv.c:get_txb_high
Unexecuted instantiation: encoder.c:get_txb_high
Unexecuted instantiation: encoder_utils.c:get_txb_high
Unexecuted instantiation: encodetxb.c:get_txb_high
Unexecuted instantiation: ethread.c:get_txb_high
Unexecuted instantiation: firstpass.c:get_txb_high
Unexecuted instantiation: global_motion_facade.c:get_txb_high
Unexecuted instantiation: level.c:get_txb_high
Unexecuted instantiation: lookahead.c:get_txb_high
Unexecuted instantiation: mcomp.c:get_txb_high
Unexecuted instantiation: mv_prec.c:get_txb_high
Unexecuted instantiation: palette.c:get_txb_high
Unexecuted instantiation: pass2_strategy.c:get_txb_high
Unexecuted instantiation: pickcdef.c:get_txb_high
Unexecuted instantiation: picklpf.c:get_txb_high
Unexecuted instantiation: pickrst.c:get_txb_high
Unexecuted instantiation: ratectrl.c:get_txb_high
Unexecuted instantiation: rd.c:get_txb_high
Unexecuted instantiation: rdopt.c:get_txb_high
Unexecuted instantiation: segmentation.c:get_txb_high
Unexecuted instantiation: speed_features.c:get_txb_high
Unexecuted instantiation: superres_scale.c:get_txb_high
Unexecuted instantiation: svc_layercontext.c:get_txb_high
Unexecuted instantiation: temporal_filter.c:get_txb_high
Unexecuted instantiation: thirdpass.c:get_txb_high
Unexecuted instantiation: tokenize.c:get_txb_high
Unexecuted instantiation: tpl_model.c:get_txb_high
Unexecuted instantiation: tx_search.c:get_txb_high
Unexecuted instantiation: txb_rdopt.c:get_txb_high
Unexecuted instantiation: intra_mode_search.c:get_txb_high
Unexecuted instantiation: var_based_part.c:get_txb_high
Unexecuted instantiation: av1_noise_estimate.c:get_txb_high
Unexecuted instantiation: entropy.c:get_txb_high
Unexecuted instantiation: entropymode.c:get_txb_high
Unexecuted instantiation: txb_common.c:get_txb_high
Unexecuted instantiation: aq_complexity.c:get_txb_high
Unexecuted instantiation: aq_cyclicrefresh.c:get_txb_high
Unexecuted instantiation: aq_variance.c:get_txb_high
Unexecuted instantiation: allintra_vis.c:get_txb_high
Unexecuted instantiation: compound_type.c:get_txb_high
Unexecuted instantiation: context_tree.c:get_txb_high
Unexecuted instantiation: encodeframe.c:get_txb_high
Unexecuted instantiation: encodeframe_utils.c:get_txb_high
Unexecuted instantiation: encodemb.c:get_txb_high
Unexecuted instantiation: encode_strategy.c:get_txb_high
Unexecuted instantiation: global_motion.c:get_txb_high
Unexecuted instantiation: gop_structure.c:get_txb_high
Unexecuted instantiation: interp_search.c:get_txb_high
Unexecuted instantiation: motion_search_facade.c:get_txb_high
Unexecuted instantiation: partition_search.c:get_txb_high
Unexecuted instantiation: partition_strategy.c:get_txb_high
Unexecuted instantiation: nonrd_pickmode.c:get_txb_high
72
73
12.3M
static INLINE uint8_t *set_levels(uint8_t *const levels_buf, const int width) {
74
12.3M
  return levels_buf + TX_PAD_TOP * (width + TX_PAD_HOR);
75
12.3M
}
decodetxb.c:set_levels
Line
Count
Source
73
12.3M
static INLINE uint8_t *set_levels(uint8_t *const levels_buf, const int width) {
74
12.3M
  return levels_buf + TX_PAD_TOP * (width + TX_PAD_HOR);
75
12.3M
}
Unexecuted instantiation: av1_cx_iface.c:set_levels
Unexecuted instantiation: av1_quantize.c:set_levels
Unexecuted instantiation: bitstream.c:set_levels
Unexecuted instantiation: encodemv.c:set_levels
Unexecuted instantiation: encoder.c:set_levels
Unexecuted instantiation: encoder_utils.c:set_levels
Unexecuted instantiation: encodetxb.c:set_levels
Unexecuted instantiation: ethread.c:set_levels
Unexecuted instantiation: firstpass.c:set_levels
Unexecuted instantiation: global_motion_facade.c:set_levels
Unexecuted instantiation: level.c:set_levels
Unexecuted instantiation: lookahead.c:set_levels
Unexecuted instantiation: mcomp.c:set_levels
Unexecuted instantiation: mv_prec.c:set_levels
Unexecuted instantiation: palette.c:set_levels
Unexecuted instantiation: pass2_strategy.c:set_levels
Unexecuted instantiation: pickcdef.c:set_levels
Unexecuted instantiation: picklpf.c:set_levels
Unexecuted instantiation: pickrst.c:set_levels
Unexecuted instantiation: ratectrl.c:set_levels
Unexecuted instantiation: rd.c:set_levels
Unexecuted instantiation: rdopt.c:set_levels
Unexecuted instantiation: segmentation.c:set_levels
Unexecuted instantiation: speed_features.c:set_levels
Unexecuted instantiation: superres_scale.c:set_levels
Unexecuted instantiation: svc_layercontext.c:set_levels
Unexecuted instantiation: temporal_filter.c:set_levels
Unexecuted instantiation: thirdpass.c:set_levels
Unexecuted instantiation: tokenize.c:set_levels
Unexecuted instantiation: tpl_model.c:set_levels
Unexecuted instantiation: tx_search.c:set_levels
Unexecuted instantiation: txb_rdopt.c:set_levels
Unexecuted instantiation: intra_mode_search.c:set_levels
Unexecuted instantiation: var_based_part.c:set_levels
Unexecuted instantiation: av1_noise_estimate.c:set_levels
Unexecuted instantiation: entropy.c:set_levels
Unexecuted instantiation: entropymode.c:set_levels
Unexecuted instantiation: txb_common.c:set_levels
Unexecuted instantiation: aq_complexity.c:set_levels
Unexecuted instantiation: aq_cyclicrefresh.c:set_levels
Unexecuted instantiation: aq_variance.c:set_levels
Unexecuted instantiation: allintra_vis.c:set_levels
Unexecuted instantiation: compound_type.c:set_levels
Unexecuted instantiation: context_tree.c:set_levels
Unexecuted instantiation: encodeframe.c:set_levels
Unexecuted instantiation: encodeframe_utils.c:set_levels
Unexecuted instantiation: encodemb.c:set_levels
Unexecuted instantiation: encode_strategy.c:set_levels
Unexecuted instantiation: global_motion.c:set_levels
Unexecuted instantiation: gop_structure.c:set_levels
Unexecuted instantiation: interp_search.c:set_levels
Unexecuted instantiation: motion_search_facade.c:set_levels
Unexecuted instantiation: partition_search.c:set_levels
Unexecuted instantiation: partition_strategy.c:set_levels
Unexecuted instantiation: nonrd_pickmode.c:set_levels
76
77
311M
static INLINE int get_padded_idx(const int idx, const int bwl) {
78
311M
  return idx + ((idx >> bwl) << TX_PAD_HOR_LOG2);
79
311M
}
decodetxb.c:get_padded_idx
Line
Count
Source
77
311M
static INLINE int get_padded_idx(const int idx, const int bwl) {
78
311M
  return idx + ((idx >> bwl) << TX_PAD_HOR_LOG2);
79
311M
}
Unexecuted instantiation: av1_cx_iface.c:get_padded_idx
Unexecuted instantiation: av1_quantize.c:get_padded_idx
Unexecuted instantiation: bitstream.c:get_padded_idx
Unexecuted instantiation: encodemv.c:get_padded_idx
Unexecuted instantiation: encoder.c:get_padded_idx
Unexecuted instantiation: encoder_utils.c:get_padded_idx
Unexecuted instantiation: encodetxb.c:get_padded_idx
Unexecuted instantiation: ethread.c:get_padded_idx
Unexecuted instantiation: firstpass.c:get_padded_idx
Unexecuted instantiation: global_motion_facade.c:get_padded_idx
Unexecuted instantiation: level.c:get_padded_idx
Unexecuted instantiation: lookahead.c:get_padded_idx
Unexecuted instantiation: mcomp.c:get_padded_idx
Unexecuted instantiation: mv_prec.c:get_padded_idx
Unexecuted instantiation: palette.c:get_padded_idx
Unexecuted instantiation: pass2_strategy.c:get_padded_idx
Unexecuted instantiation: pickcdef.c:get_padded_idx
Unexecuted instantiation: picklpf.c:get_padded_idx
Unexecuted instantiation: pickrst.c:get_padded_idx
Unexecuted instantiation: ratectrl.c:get_padded_idx
Unexecuted instantiation: rd.c:get_padded_idx
Unexecuted instantiation: rdopt.c:get_padded_idx
Unexecuted instantiation: segmentation.c:get_padded_idx
Unexecuted instantiation: speed_features.c:get_padded_idx
Unexecuted instantiation: superres_scale.c:get_padded_idx
Unexecuted instantiation: svc_layercontext.c:get_padded_idx
Unexecuted instantiation: temporal_filter.c:get_padded_idx
Unexecuted instantiation: thirdpass.c:get_padded_idx
Unexecuted instantiation: tokenize.c:get_padded_idx
Unexecuted instantiation: tpl_model.c:get_padded_idx
Unexecuted instantiation: tx_search.c:get_padded_idx
Unexecuted instantiation: txb_rdopt.c:get_padded_idx
Unexecuted instantiation: intra_mode_search.c:get_padded_idx
Unexecuted instantiation: var_based_part.c:get_padded_idx
Unexecuted instantiation: av1_noise_estimate.c:get_padded_idx
Unexecuted instantiation: entropy.c:get_padded_idx
Unexecuted instantiation: entropymode.c:get_padded_idx
Unexecuted instantiation: txb_common.c:get_padded_idx
Unexecuted instantiation: aq_complexity.c:get_padded_idx
Unexecuted instantiation: aq_cyclicrefresh.c:get_padded_idx
Unexecuted instantiation: aq_variance.c:get_padded_idx
Unexecuted instantiation: allintra_vis.c:get_padded_idx
Unexecuted instantiation: compound_type.c:get_padded_idx
Unexecuted instantiation: context_tree.c:get_padded_idx
Unexecuted instantiation: encodeframe.c:get_padded_idx
Unexecuted instantiation: encodeframe_utils.c:get_padded_idx
Unexecuted instantiation: encodemb.c:get_padded_idx
Unexecuted instantiation: encode_strategy.c:get_padded_idx
Unexecuted instantiation: global_motion.c:get_padded_idx
Unexecuted instantiation: gop_structure.c:get_padded_idx
Unexecuted instantiation: interp_search.c:get_padded_idx
Unexecuted instantiation: motion_search_facade.c:get_padded_idx
Unexecuted instantiation: partition_search.c:get_padded_idx
Unexecuted instantiation: partition_strategy.c:get_padded_idx
Unexecuted instantiation: nonrd_pickmode.c:get_padded_idx
80
81
static INLINE int get_base_ctx_from_count_mag(int row, int col, int count,
82
0
                                              int sig_mag) {
83
0
  const int ctx = base_level_count_to_index[count];
84
0
  int ctx_idx = -1;
85
0
86
0
  if (row == 0 && col == 0) {
87
0
    if (sig_mag >= 2) return 0;
88
0
89
0
    if (sig_mag == 1) {
90
0
      if (count >= 2)
91
0
        ctx_idx = 1;
92
0
      else
93
0
        ctx_idx = 2;
94
0
95
0
      return ctx_idx;
96
0
    }
97
0
98
0
    ctx_idx = 3 + ctx;
99
0
    assert(ctx_idx <= 6);
100
0
    return ctx_idx;
101
0
  } else if (row == 0) {
102
0
    if (sig_mag >= 2) return 6;
103
0
    if (sig_mag == 1) {
104
0
      if (count >= 2)
105
0
        ctx_idx = 7;
106
0
      else
107
0
        ctx_idx = 8;
108
0
      return ctx_idx;
109
0
    }
110
0
111
0
    ctx_idx = 9 + ctx;
112
0
    assert(ctx_idx <= 11);
113
0
    return ctx_idx;
114
0
  } else if (col == 0) {
115
0
    if (sig_mag >= 2) return 12;
116
0
    if (sig_mag == 1) {
117
0
      if (count >= 2)
118
0
        ctx_idx = 13;
119
0
      else
120
0
        ctx_idx = 14;
121
0
122
0
      return ctx_idx;
123
0
    }
124
0
125
0
    ctx_idx = 15 + ctx;
126
0
    assert(ctx_idx <= 17);
127
0
    // TODO(angiebird): turn this on once the optimization is finalized
128
0
    // assert(ctx_idx < 28);
129
0
  } else {
130
0
    if (sig_mag >= 2) return 18;
131
0
    if (sig_mag == 1) {
132
0
      if (count >= 2)
133
0
        ctx_idx = 19;
134
0
      else
135
0
        ctx_idx = 20;
136
0
      return ctx_idx;
137
0
    }
138
0
139
0
    ctx_idx = 21 + ctx;
140
0
141
0
    assert(ctx_idx <= 24);
142
0
  }
143
0
  return ctx_idx;
144
0
}
Unexecuted instantiation: decodetxb.c:get_base_ctx_from_count_mag
Unexecuted instantiation: av1_cx_iface.c:get_base_ctx_from_count_mag
Unexecuted instantiation: av1_quantize.c:get_base_ctx_from_count_mag
Unexecuted instantiation: bitstream.c:get_base_ctx_from_count_mag
Unexecuted instantiation: encodemv.c:get_base_ctx_from_count_mag
Unexecuted instantiation: encoder.c:get_base_ctx_from_count_mag
Unexecuted instantiation: encoder_utils.c:get_base_ctx_from_count_mag
Unexecuted instantiation: encodetxb.c:get_base_ctx_from_count_mag
Unexecuted instantiation: ethread.c:get_base_ctx_from_count_mag
Unexecuted instantiation: firstpass.c:get_base_ctx_from_count_mag
Unexecuted instantiation: global_motion_facade.c:get_base_ctx_from_count_mag
Unexecuted instantiation: level.c:get_base_ctx_from_count_mag
Unexecuted instantiation: lookahead.c:get_base_ctx_from_count_mag
Unexecuted instantiation: mcomp.c:get_base_ctx_from_count_mag
Unexecuted instantiation: mv_prec.c:get_base_ctx_from_count_mag
Unexecuted instantiation: palette.c:get_base_ctx_from_count_mag
Unexecuted instantiation: pass2_strategy.c:get_base_ctx_from_count_mag
Unexecuted instantiation: pickcdef.c:get_base_ctx_from_count_mag
Unexecuted instantiation: picklpf.c:get_base_ctx_from_count_mag
Unexecuted instantiation: pickrst.c:get_base_ctx_from_count_mag
Unexecuted instantiation: ratectrl.c:get_base_ctx_from_count_mag
Unexecuted instantiation: rd.c:get_base_ctx_from_count_mag
Unexecuted instantiation: rdopt.c:get_base_ctx_from_count_mag
Unexecuted instantiation: segmentation.c:get_base_ctx_from_count_mag
Unexecuted instantiation: speed_features.c:get_base_ctx_from_count_mag
Unexecuted instantiation: superres_scale.c:get_base_ctx_from_count_mag
Unexecuted instantiation: svc_layercontext.c:get_base_ctx_from_count_mag
Unexecuted instantiation: temporal_filter.c:get_base_ctx_from_count_mag
Unexecuted instantiation: thirdpass.c:get_base_ctx_from_count_mag
Unexecuted instantiation: tokenize.c:get_base_ctx_from_count_mag
Unexecuted instantiation: tpl_model.c:get_base_ctx_from_count_mag
Unexecuted instantiation: tx_search.c:get_base_ctx_from_count_mag
Unexecuted instantiation: txb_rdopt.c:get_base_ctx_from_count_mag
Unexecuted instantiation: intra_mode_search.c:get_base_ctx_from_count_mag
Unexecuted instantiation: var_based_part.c:get_base_ctx_from_count_mag
Unexecuted instantiation: av1_noise_estimate.c:get_base_ctx_from_count_mag
Unexecuted instantiation: entropy.c:get_base_ctx_from_count_mag
Unexecuted instantiation: entropymode.c:get_base_ctx_from_count_mag
Unexecuted instantiation: txb_common.c:get_base_ctx_from_count_mag
Unexecuted instantiation: aq_complexity.c:get_base_ctx_from_count_mag
Unexecuted instantiation: aq_cyclicrefresh.c:get_base_ctx_from_count_mag
Unexecuted instantiation: aq_variance.c:get_base_ctx_from_count_mag
Unexecuted instantiation: allintra_vis.c:get_base_ctx_from_count_mag
Unexecuted instantiation: compound_type.c:get_base_ctx_from_count_mag
Unexecuted instantiation: context_tree.c:get_base_ctx_from_count_mag
Unexecuted instantiation: encodeframe.c:get_base_ctx_from_count_mag
Unexecuted instantiation: encodeframe_utils.c:get_base_ctx_from_count_mag
Unexecuted instantiation: encodemb.c:get_base_ctx_from_count_mag
Unexecuted instantiation: encode_strategy.c:get_base_ctx_from_count_mag
Unexecuted instantiation: global_motion.c:get_base_ctx_from_count_mag
Unexecuted instantiation: gop_structure.c:get_base_ctx_from_count_mag
Unexecuted instantiation: interp_search.c:get_base_ctx_from_count_mag
Unexecuted instantiation: motion_search_facade.c:get_base_ctx_from_count_mag
Unexecuted instantiation: partition_search.c:get_base_ctx_from_count_mag
Unexecuted instantiation: partition_strategy.c:get_base_ctx_from_count_mag
Unexecuted instantiation: nonrd_pickmode.c:get_base_ctx_from_count_mag
145
146
static INLINE int get_br_ctx_2d(const uint8_t *const levels,
147
                                const int c,  // raster order
148
7.19M
                                const int bwl) {
149
7.19M
  assert(c > 0);
150
7.19M
  const int row = c >> bwl;
151
7.19M
  const int col = c - (row << bwl);
152
7.19M
  const int stride = (1 << bwl) + TX_PAD_HOR;
153
7.19M
  const int pos = row * stride + col;
154
7.19M
  int mag = AOMMIN(levels[pos + 1], MAX_BASE_BR_RANGE) +
155
7.19M
            AOMMIN(levels[pos + stride], MAX_BASE_BR_RANGE) +
156
7.19M
            AOMMIN(levels[pos + 1 + stride], MAX_BASE_BR_RANGE);
157
7.19M
  mag = AOMMIN((mag + 1) >> 1, 6);
158
  //((row | col) < 2) is equivalent to ((row < 2) && (col < 2))
159
7.19M
  if ((row | col) < 2) return mag + 7;
160
6.06M
  return mag + 14;
161
7.19M
}
decodetxb.c:get_br_ctx_2d
Line
Count
Source
148
7.19M
                                const int bwl) {
149
7.19M
  assert(c > 0);
150
7.19M
  const int row = c >> bwl;
151
7.19M
  const int col = c - (row << bwl);
152
7.19M
  const int stride = (1 << bwl) + TX_PAD_HOR;
153
7.19M
  const int pos = row * stride + col;
154
7.19M
  int mag = AOMMIN(levels[pos + 1], MAX_BASE_BR_RANGE) +
155
7.19M
            AOMMIN(levels[pos + stride], MAX_BASE_BR_RANGE) +
156
7.19M
            AOMMIN(levels[pos + 1 + stride], MAX_BASE_BR_RANGE);
157
7.19M
  mag = AOMMIN((mag + 1) >> 1, 6);
158
  //((row | col) < 2) is equivalent to ((row < 2) && (col < 2))
159
7.19M
  if ((row | col) < 2) return mag + 7;
160
6.06M
  return mag + 14;
161
7.19M
}
Unexecuted instantiation: av1_cx_iface.c:get_br_ctx_2d
Unexecuted instantiation: av1_quantize.c:get_br_ctx_2d
Unexecuted instantiation: bitstream.c:get_br_ctx_2d
Unexecuted instantiation: encodemv.c:get_br_ctx_2d
Unexecuted instantiation: encoder.c:get_br_ctx_2d
Unexecuted instantiation: encoder_utils.c:get_br_ctx_2d
Unexecuted instantiation: encodetxb.c:get_br_ctx_2d
Unexecuted instantiation: ethread.c:get_br_ctx_2d
Unexecuted instantiation: firstpass.c:get_br_ctx_2d
Unexecuted instantiation: global_motion_facade.c:get_br_ctx_2d
Unexecuted instantiation: level.c:get_br_ctx_2d
Unexecuted instantiation: lookahead.c:get_br_ctx_2d
Unexecuted instantiation: mcomp.c:get_br_ctx_2d
Unexecuted instantiation: mv_prec.c:get_br_ctx_2d
Unexecuted instantiation: palette.c:get_br_ctx_2d
Unexecuted instantiation: pass2_strategy.c:get_br_ctx_2d
Unexecuted instantiation: pickcdef.c:get_br_ctx_2d
Unexecuted instantiation: picklpf.c:get_br_ctx_2d
Unexecuted instantiation: pickrst.c:get_br_ctx_2d
Unexecuted instantiation: ratectrl.c:get_br_ctx_2d
Unexecuted instantiation: rd.c:get_br_ctx_2d
Unexecuted instantiation: rdopt.c:get_br_ctx_2d
Unexecuted instantiation: segmentation.c:get_br_ctx_2d
Unexecuted instantiation: speed_features.c:get_br_ctx_2d
Unexecuted instantiation: superres_scale.c:get_br_ctx_2d
Unexecuted instantiation: svc_layercontext.c:get_br_ctx_2d
Unexecuted instantiation: temporal_filter.c:get_br_ctx_2d
Unexecuted instantiation: thirdpass.c:get_br_ctx_2d
Unexecuted instantiation: tokenize.c:get_br_ctx_2d
Unexecuted instantiation: tpl_model.c:get_br_ctx_2d
Unexecuted instantiation: tx_search.c:get_br_ctx_2d
Unexecuted instantiation: txb_rdopt.c:get_br_ctx_2d
Unexecuted instantiation: intra_mode_search.c:get_br_ctx_2d
Unexecuted instantiation: var_based_part.c:get_br_ctx_2d
Unexecuted instantiation: av1_noise_estimate.c:get_br_ctx_2d
Unexecuted instantiation: entropy.c:get_br_ctx_2d
Unexecuted instantiation: entropymode.c:get_br_ctx_2d
Unexecuted instantiation: txb_common.c:get_br_ctx_2d
Unexecuted instantiation: aq_complexity.c:get_br_ctx_2d
Unexecuted instantiation: aq_cyclicrefresh.c:get_br_ctx_2d
Unexecuted instantiation: aq_variance.c:get_br_ctx_2d
Unexecuted instantiation: allintra_vis.c:get_br_ctx_2d
Unexecuted instantiation: compound_type.c:get_br_ctx_2d
Unexecuted instantiation: context_tree.c:get_br_ctx_2d
Unexecuted instantiation: encodeframe.c:get_br_ctx_2d
Unexecuted instantiation: encodeframe_utils.c:get_br_ctx_2d
Unexecuted instantiation: encodemb.c:get_br_ctx_2d
Unexecuted instantiation: encode_strategy.c:get_br_ctx_2d
Unexecuted instantiation: global_motion.c:get_br_ctx_2d
Unexecuted instantiation: gop_structure.c:get_br_ctx_2d
Unexecuted instantiation: interp_search.c:get_br_ctx_2d
Unexecuted instantiation: motion_search_facade.c:get_br_ctx_2d
Unexecuted instantiation: partition_search.c:get_br_ctx_2d
Unexecuted instantiation: partition_strategy.c:get_br_ctx_2d
Unexecuted instantiation: nonrd_pickmode.c:get_br_ctx_2d
162
163
static AOM_FORCE_INLINE int get_br_ctx_eob(const int c,  // raster order
164
                                           const int bwl,
165
149k
                                           const TX_CLASS tx_class) {
166
149k
  const int row = c >> bwl;
167
149k
  const int col = c - (row << bwl);
168
149k
  if (c == 0) return 0;
169
61.5k
  if ((tx_class == TX_CLASS_2D && row < 2 && col < 2) ||
170
61.5k
      (tx_class == TX_CLASS_HORIZ && col == 0) ||
171
61.5k
      (tx_class == TX_CLASS_VERT && row == 0))
172
7.63k
    return 7;
173
53.9k
  return 14;
174
61.5k
}
decodetxb.c:get_br_ctx_eob
Line
Count
Source
165
149k
                                           const TX_CLASS tx_class) {
166
149k
  const int row = c >> bwl;
167
149k
  const int col = c - (row << bwl);
168
149k
  if (c == 0) return 0;
169
61.5k
  if ((tx_class == TX_CLASS_2D && row < 2 && col < 2) ||
170
61.5k
      (tx_class == TX_CLASS_HORIZ && col == 0) ||
171
61.5k
      (tx_class == TX_CLASS_VERT && row == 0))
172
7.63k
    return 7;
173
53.9k
  return 14;
174
61.5k
}
Unexecuted instantiation: av1_cx_iface.c:get_br_ctx_eob
Unexecuted instantiation: av1_quantize.c:get_br_ctx_eob
Unexecuted instantiation: bitstream.c:get_br_ctx_eob
Unexecuted instantiation: encodemv.c:get_br_ctx_eob
Unexecuted instantiation: encoder.c:get_br_ctx_eob
Unexecuted instantiation: encoder_utils.c:get_br_ctx_eob
Unexecuted instantiation: encodetxb.c:get_br_ctx_eob
Unexecuted instantiation: ethread.c:get_br_ctx_eob
Unexecuted instantiation: firstpass.c:get_br_ctx_eob
Unexecuted instantiation: global_motion_facade.c:get_br_ctx_eob
Unexecuted instantiation: level.c:get_br_ctx_eob
Unexecuted instantiation: lookahead.c:get_br_ctx_eob
Unexecuted instantiation: mcomp.c:get_br_ctx_eob
Unexecuted instantiation: mv_prec.c:get_br_ctx_eob
Unexecuted instantiation: palette.c:get_br_ctx_eob
Unexecuted instantiation: pass2_strategy.c:get_br_ctx_eob
Unexecuted instantiation: pickcdef.c:get_br_ctx_eob
Unexecuted instantiation: picklpf.c:get_br_ctx_eob
Unexecuted instantiation: pickrst.c:get_br_ctx_eob
Unexecuted instantiation: ratectrl.c:get_br_ctx_eob
Unexecuted instantiation: rd.c:get_br_ctx_eob
Unexecuted instantiation: rdopt.c:get_br_ctx_eob
Unexecuted instantiation: segmentation.c:get_br_ctx_eob
Unexecuted instantiation: speed_features.c:get_br_ctx_eob
Unexecuted instantiation: superres_scale.c:get_br_ctx_eob
Unexecuted instantiation: svc_layercontext.c:get_br_ctx_eob
Unexecuted instantiation: temporal_filter.c:get_br_ctx_eob
Unexecuted instantiation: thirdpass.c:get_br_ctx_eob
Unexecuted instantiation: tokenize.c:get_br_ctx_eob
Unexecuted instantiation: tpl_model.c:get_br_ctx_eob
Unexecuted instantiation: tx_search.c:get_br_ctx_eob
Unexecuted instantiation: txb_rdopt.c:get_br_ctx_eob
Unexecuted instantiation: intra_mode_search.c:get_br_ctx_eob
Unexecuted instantiation: var_based_part.c:get_br_ctx_eob
Unexecuted instantiation: av1_noise_estimate.c:get_br_ctx_eob
Unexecuted instantiation: entropy.c:get_br_ctx_eob
Unexecuted instantiation: entropymode.c:get_br_ctx_eob
Unexecuted instantiation: txb_common.c:get_br_ctx_eob
Unexecuted instantiation: aq_complexity.c:get_br_ctx_eob
Unexecuted instantiation: aq_cyclicrefresh.c:get_br_ctx_eob
Unexecuted instantiation: aq_variance.c:get_br_ctx_eob
Unexecuted instantiation: allintra_vis.c:get_br_ctx_eob
Unexecuted instantiation: compound_type.c:get_br_ctx_eob
Unexecuted instantiation: context_tree.c:get_br_ctx_eob
Unexecuted instantiation: encodeframe.c:get_br_ctx_eob
Unexecuted instantiation: encodeframe_utils.c:get_br_ctx_eob
Unexecuted instantiation: encodemb.c:get_br_ctx_eob
Unexecuted instantiation: encode_strategy.c:get_br_ctx_eob
Unexecuted instantiation: global_motion.c:get_br_ctx_eob
Unexecuted instantiation: gop_structure.c:get_br_ctx_eob
Unexecuted instantiation: interp_search.c:get_br_ctx_eob
Unexecuted instantiation: motion_search_facade.c:get_br_ctx_eob
Unexecuted instantiation: partition_search.c:get_br_ctx_eob
Unexecuted instantiation: partition_strategy.c:get_br_ctx_eob
Unexecuted instantiation: nonrd_pickmode.c:get_br_ctx_eob
175
176
static AOM_FORCE_INLINE int get_br_ctx(const uint8_t *const levels,
177
                                       const int c,  // raster order
178
1.46M
                                       const int bwl, const TX_CLASS tx_class) {
179
1.46M
  const int row = c >> bwl;
180
1.46M
  const int col = c - (row << bwl);
181
1.46M
  const int stride = (1 << bwl) + TX_PAD_HOR;
182
1.46M
  const int pos = row * stride + col;
183
1.46M
  int mag = levels[pos + 1];
184
1.46M
  mag += levels[pos + stride];
185
1.46M
  switch (tx_class) {
186
1.25M
    case TX_CLASS_2D:
187
1.25M
      mag += levels[pos + stride + 1];
188
1.25M
      mag = AOMMIN((mag + 1) >> 1, 6);
189
1.25M
      if (c == 0) return mag;
190
0
      if ((row < 2) && (col < 2)) return mag + 7;
191
0
      break;
192
141k
    case TX_CLASS_HORIZ:
193
141k
      mag += levels[pos + 2];
194
141k
      mag = AOMMIN((mag + 1) >> 1, 6);
195
141k
      if (c == 0) return mag;
196
124k
      if (col == 0) return mag + 7;
197
72.2k
      break;
198
72.2k
    case TX_CLASS_VERT:
199
71.3k
      mag += levels[pos + (stride << 1)];
200
71.3k
      mag = AOMMIN((mag + 1) >> 1, 6);
201
71.3k
      if (c == 0) return mag;
202
62.0k
      if (row == 0) return mag + 7;
203
33.9k
      break;
204
33.9k
    default: break;
205
1.46M
  }
206
207
106k
  return mag + 14;
208
1.46M
}
decodetxb.c:get_br_ctx
Line
Count
Source
178
1.46M
                                       const int bwl, const TX_CLASS tx_class) {
179
1.46M
  const int row = c >> bwl;
180
1.46M
  const int col = c - (row << bwl);
181
1.46M
  const int stride = (1 << bwl) + TX_PAD_HOR;
182
1.46M
  const int pos = row * stride + col;
183
1.46M
  int mag = levels[pos + 1];
184
1.46M
  mag += levels[pos + stride];
185
1.46M
  switch (tx_class) {
186
1.25M
    case TX_CLASS_2D:
187
1.25M
      mag += levels[pos + stride + 1];
188
1.25M
      mag = AOMMIN((mag + 1) >> 1, 6);
189
1.25M
      if (c == 0) return mag;
190
0
      if ((row < 2) && (col < 2)) return mag + 7;
191
0
      break;
192
141k
    case TX_CLASS_HORIZ:
193
141k
      mag += levels[pos + 2];
194
141k
      mag = AOMMIN((mag + 1) >> 1, 6);
195
141k
      if (c == 0) return mag;
196
124k
      if (col == 0) return mag + 7;
197
72.2k
      break;
198
72.2k
    case TX_CLASS_VERT:
199
71.3k
      mag += levels[pos + (stride << 1)];
200
71.3k
      mag = AOMMIN((mag + 1) >> 1, 6);
201
71.3k
      if (c == 0) return mag;
202
62.0k
      if (row == 0) return mag + 7;
203
33.9k
      break;
204
33.9k
    default: break;
205
1.46M
  }
206
207
106k
  return mag + 14;
208
1.46M
}
Unexecuted instantiation: av1_cx_iface.c:get_br_ctx
Unexecuted instantiation: av1_quantize.c:get_br_ctx
Unexecuted instantiation: bitstream.c:get_br_ctx
Unexecuted instantiation: encodemv.c:get_br_ctx
Unexecuted instantiation: encoder.c:get_br_ctx
Unexecuted instantiation: encoder_utils.c:get_br_ctx
Unexecuted instantiation: encodetxb.c:get_br_ctx
Unexecuted instantiation: ethread.c:get_br_ctx
Unexecuted instantiation: firstpass.c:get_br_ctx
Unexecuted instantiation: global_motion_facade.c:get_br_ctx
Unexecuted instantiation: level.c:get_br_ctx
Unexecuted instantiation: lookahead.c:get_br_ctx
Unexecuted instantiation: mcomp.c:get_br_ctx
Unexecuted instantiation: mv_prec.c:get_br_ctx
Unexecuted instantiation: palette.c:get_br_ctx
Unexecuted instantiation: pass2_strategy.c:get_br_ctx
Unexecuted instantiation: pickcdef.c:get_br_ctx
Unexecuted instantiation: picklpf.c:get_br_ctx
Unexecuted instantiation: pickrst.c:get_br_ctx
Unexecuted instantiation: ratectrl.c:get_br_ctx
Unexecuted instantiation: rd.c:get_br_ctx
Unexecuted instantiation: rdopt.c:get_br_ctx
Unexecuted instantiation: segmentation.c:get_br_ctx
Unexecuted instantiation: speed_features.c:get_br_ctx
Unexecuted instantiation: superres_scale.c:get_br_ctx
Unexecuted instantiation: svc_layercontext.c:get_br_ctx
Unexecuted instantiation: temporal_filter.c:get_br_ctx
Unexecuted instantiation: thirdpass.c:get_br_ctx
Unexecuted instantiation: tokenize.c:get_br_ctx
Unexecuted instantiation: tpl_model.c:get_br_ctx
Unexecuted instantiation: tx_search.c:get_br_ctx
Unexecuted instantiation: txb_rdopt.c:get_br_ctx
Unexecuted instantiation: intra_mode_search.c:get_br_ctx
Unexecuted instantiation: var_based_part.c:get_br_ctx
Unexecuted instantiation: av1_noise_estimate.c:get_br_ctx
Unexecuted instantiation: entropy.c:get_br_ctx
Unexecuted instantiation: entropymode.c:get_br_ctx
Unexecuted instantiation: txb_common.c:get_br_ctx
Unexecuted instantiation: aq_complexity.c:get_br_ctx
Unexecuted instantiation: aq_cyclicrefresh.c:get_br_ctx
Unexecuted instantiation: aq_variance.c:get_br_ctx
Unexecuted instantiation: allintra_vis.c:get_br_ctx
Unexecuted instantiation: compound_type.c:get_br_ctx
Unexecuted instantiation: context_tree.c:get_br_ctx
Unexecuted instantiation: encodeframe.c:get_br_ctx
Unexecuted instantiation: encodeframe_utils.c:get_br_ctx
Unexecuted instantiation: encodemb.c:get_br_ctx
Unexecuted instantiation: encode_strategy.c:get_br_ctx
Unexecuted instantiation: global_motion.c:get_br_ctx
Unexecuted instantiation: gop_structure.c:get_br_ctx
Unexecuted instantiation: interp_search.c:get_br_ctx
Unexecuted instantiation: motion_search_facade.c:get_br_ctx
Unexecuted instantiation: partition_search.c:get_br_ctx
Unexecuted instantiation: partition_strategy.c:get_br_ctx
Unexecuted instantiation: nonrd_pickmode.c:get_br_ctx
209
210
static const uint8_t clip_max3[256] = {
211
  0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
212
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
213
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
214
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
215
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
216
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
217
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
218
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
219
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
220
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
221
};
222
223
static AOM_FORCE_INLINE int get_nz_mag(const uint8_t *const levels,
224
9.49M
                                       const int bwl, const TX_CLASS tx_class) {
225
9.49M
  int mag;
226
227
  // Note: AOMMIN(level, 3) is useless for decoder since level < 3.
228
9.49M
  mag = clip_max3[levels[1]];                         // { 0, 1 }
229
9.49M
  mag += clip_max3[levels[(1 << bwl) + TX_PAD_HOR]];  // { 1, 0 }
230
231
9.49M
  if (tx_class == TX_CLASS_2D) {
232
3.54M
    mag += clip_max3[levels[(1 << bwl) + TX_PAD_HOR + 1]];          // { 1, 1 }
233
3.54M
    mag += clip_max3[levels[2]];                                    // { 0, 2 }
234
3.54M
    mag += clip_max3[levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)]];  // { 2, 0 }
235
5.94M
  } else if (tx_class == TX_CLASS_VERT) {
236
2.04M
    mag += clip_max3[levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)]];  // { 2, 0 }
237
2.04M
    mag += clip_max3[levels[(3 << bwl) + (3 << TX_PAD_HOR_LOG2)]];  // { 3, 0 }
238
2.04M
    mag += clip_max3[levels[(4 << bwl) + (4 << TX_PAD_HOR_LOG2)]];  // { 4, 0 }
239
3.90M
  } else {
240
3.90M
    mag += clip_max3[levels[2]];  // { 0, 2 }
241
3.90M
    mag += clip_max3[levels[3]];  // { 0, 3 }
242
3.90M
    mag += clip_max3[levels[4]];  // { 0, 4 }
243
3.90M
  }
244
245
9.49M
  return mag;
246
9.49M
}
decodetxb.c:get_nz_mag
Line
Count
Source
224
9.49M
                                       const int bwl, const TX_CLASS tx_class) {
225
9.49M
  int mag;
226
227
  // Note: AOMMIN(level, 3) is useless for decoder since level < 3.
228
9.49M
  mag = clip_max3[levels[1]];                         // { 0, 1 }
229
9.49M
  mag += clip_max3[levels[(1 << bwl) + TX_PAD_HOR]];  // { 1, 0 }
230
231
9.49M
  if (tx_class == TX_CLASS_2D) {
232
3.54M
    mag += clip_max3[levels[(1 << bwl) + TX_PAD_HOR + 1]];          // { 1, 1 }
233
3.54M
    mag += clip_max3[levels[2]];                                    // { 0, 2 }
234
3.54M
    mag += clip_max3[levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)]];  // { 2, 0 }
235
5.94M
  } else if (tx_class == TX_CLASS_VERT) {
236
2.04M
    mag += clip_max3[levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)]];  // { 2, 0 }
237
2.04M
    mag += clip_max3[levels[(3 << bwl) + (3 << TX_PAD_HOR_LOG2)]];  // { 3, 0 }
238
2.04M
    mag += clip_max3[levels[(4 << bwl) + (4 << TX_PAD_HOR_LOG2)]];  // { 4, 0 }
239
3.90M
  } else {
240
3.90M
    mag += clip_max3[levels[2]];  // { 0, 2 }
241
3.90M
    mag += clip_max3[levels[3]];  // { 0, 3 }
242
3.90M
    mag += clip_max3[levels[4]];  // { 0, 4 }
243
3.90M
  }
244
245
9.49M
  return mag;
246
9.49M
}
Unexecuted instantiation: av1_cx_iface.c:get_nz_mag
Unexecuted instantiation: av1_quantize.c:get_nz_mag
Unexecuted instantiation: bitstream.c:get_nz_mag
Unexecuted instantiation: encodemv.c:get_nz_mag
Unexecuted instantiation: encoder.c:get_nz_mag
Unexecuted instantiation: encoder_utils.c:get_nz_mag
Unexecuted instantiation: encodetxb.c:get_nz_mag
Unexecuted instantiation: ethread.c:get_nz_mag
Unexecuted instantiation: firstpass.c:get_nz_mag
Unexecuted instantiation: global_motion_facade.c:get_nz_mag
Unexecuted instantiation: level.c:get_nz_mag
Unexecuted instantiation: lookahead.c:get_nz_mag
Unexecuted instantiation: mcomp.c:get_nz_mag
Unexecuted instantiation: mv_prec.c:get_nz_mag
Unexecuted instantiation: palette.c:get_nz_mag
Unexecuted instantiation: pass2_strategy.c:get_nz_mag
Unexecuted instantiation: pickcdef.c:get_nz_mag
Unexecuted instantiation: picklpf.c:get_nz_mag
Unexecuted instantiation: pickrst.c:get_nz_mag
Unexecuted instantiation: ratectrl.c:get_nz_mag
Unexecuted instantiation: rd.c:get_nz_mag
Unexecuted instantiation: rdopt.c:get_nz_mag
Unexecuted instantiation: segmentation.c:get_nz_mag
Unexecuted instantiation: speed_features.c:get_nz_mag
Unexecuted instantiation: superres_scale.c:get_nz_mag
Unexecuted instantiation: svc_layercontext.c:get_nz_mag
Unexecuted instantiation: temporal_filter.c:get_nz_mag
Unexecuted instantiation: thirdpass.c:get_nz_mag
Unexecuted instantiation: tokenize.c:get_nz_mag
Unexecuted instantiation: tpl_model.c:get_nz_mag
Unexecuted instantiation: tx_search.c:get_nz_mag
Unexecuted instantiation: txb_rdopt.c:get_nz_mag
Unexecuted instantiation: intra_mode_search.c:get_nz_mag
Unexecuted instantiation: var_based_part.c:get_nz_mag
Unexecuted instantiation: av1_noise_estimate.c:get_nz_mag
Unexecuted instantiation: entropy.c:get_nz_mag
Unexecuted instantiation: entropymode.c:get_nz_mag
Unexecuted instantiation: txb_common.c:get_nz_mag
Unexecuted instantiation: aq_complexity.c:get_nz_mag
Unexecuted instantiation: aq_cyclicrefresh.c:get_nz_mag
Unexecuted instantiation: aq_variance.c:get_nz_mag
Unexecuted instantiation: allintra_vis.c:get_nz_mag
Unexecuted instantiation: compound_type.c:get_nz_mag
Unexecuted instantiation: context_tree.c:get_nz_mag
Unexecuted instantiation: encodeframe.c:get_nz_mag
Unexecuted instantiation: encodeframe_utils.c:get_nz_mag
Unexecuted instantiation: encodemb.c:get_nz_mag
Unexecuted instantiation: encode_strategy.c:get_nz_mag
Unexecuted instantiation: global_motion.c:get_nz_mag
Unexecuted instantiation: gop_structure.c:get_nz_mag
Unexecuted instantiation: interp_search.c:get_nz_mag
Unexecuted instantiation: motion_search_facade.c:get_nz_mag
Unexecuted instantiation: partition_search.c:get_nz_mag
Unexecuted instantiation: partition_strategy.c:get_nz_mag
Unexecuted instantiation: nonrd_pickmode.c:get_nz_mag
247
248
#define NZ_MAP_CTX_0 SIG_COEF_CONTEXTS_2D
249
#define NZ_MAP_CTX_5 (NZ_MAP_CTX_0 + 5)
250
#define NZ_MAP_CTX_10 (NZ_MAP_CTX_0 + 10)
251
252
static const int nz_map_ctx_offset_1d[32] = {
253
  NZ_MAP_CTX_0,  NZ_MAP_CTX_5,  NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10,
254
  NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10,
255
  NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10,
256
  NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10,
257
  NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10,
258
  NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10, NZ_MAP_CTX_10,
259
  NZ_MAP_CTX_10, NZ_MAP_CTX_10,
260
};
261
262
static AOM_FORCE_INLINE int get_nz_map_ctx_from_stats(
263
    const int stats,
264
    const int coeff_idx,  // raster order
265
9.49M
    const int bwl, const TX_SIZE tx_size, const TX_CLASS tx_class) {
266
  // tx_class == 0(TX_CLASS_2D)
267
9.49M
  if ((tx_class | coeff_idx) == 0) return 0;
268
5.94M
  int ctx = (stats + 1) >> 1;
269
5.94M
  ctx = AOMMIN(ctx, 4);
270
5.94M
  switch (tx_class) {
271
0
    case TX_CLASS_2D: {
272
      // This is the algorithm to generate av1_nz_map_ctx_offset[][]
273
      //   const int width = tx_size_wide[tx_size];
274
      //   const int height = tx_size_high[tx_size];
275
      //   if (width < height) {
276
      //     if (row < 2) return 11 + ctx;
277
      //   } else if (width > height) {
278
      //     if (col < 2) return 16 + ctx;
279
      //   }
280
      //   if (row + col < 2) return ctx + 1;
281
      //   if (row + col < 4) return 5 + ctx + 1;
282
      //   return 21 + ctx;
283
0
      return ctx + av1_nz_map_ctx_offset[tx_size][coeff_idx];
284
0
    }
285
3.90M
    case TX_CLASS_HORIZ: {
286
3.90M
      const int row = coeff_idx >> bwl;
287
3.90M
      const int col = coeff_idx - (row << bwl);
288
3.90M
      return ctx + nz_map_ctx_offset_1d[col];
289
0
    }
290
2.04M
    case TX_CLASS_VERT: {
291
2.04M
      const int row = coeff_idx >> bwl;
292
2.04M
      return ctx + nz_map_ctx_offset_1d[row];
293
0
    }
294
0
    default: break;
295
5.94M
  }
296
0
  return 0;
297
5.94M
}
decodetxb.c:get_nz_map_ctx_from_stats
Line
Count
Source
265
9.49M
    const int bwl, const TX_SIZE tx_size, const TX_CLASS tx_class) {
266
  // tx_class == 0(TX_CLASS_2D)
267
9.49M
  if ((tx_class | coeff_idx) == 0) return 0;
268
5.94M
  int ctx = (stats + 1) >> 1;
269
5.94M
  ctx = AOMMIN(ctx, 4);
270
5.94M
  switch (tx_class) {
271
0
    case TX_CLASS_2D: {
272
      // This is the algorithm to generate av1_nz_map_ctx_offset[][]
273
      //   const int width = tx_size_wide[tx_size];
274
      //   const int height = tx_size_high[tx_size];
275
      //   if (width < height) {
276
      //     if (row < 2) return 11 + ctx;
277
      //   } else if (width > height) {
278
      //     if (col < 2) return 16 + ctx;
279
      //   }
280
      //   if (row + col < 2) return ctx + 1;
281
      //   if (row + col < 4) return 5 + ctx + 1;
282
      //   return 21 + ctx;
283
0
      return ctx + av1_nz_map_ctx_offset[tx_size][coeff_idx];
284
0
    }
285
3.90M
    case TX_CLASS_HORIZ: {
286
3.90M
      const int row = coeff_idx >> bwl;
287
3.90M
      const int col = coeff_idx - (row << bwl);
288
3.90M
      return ctx + nz_map_ctx_offset_1d[col];
289
0
    }
290
2.04M
    case TX_CLASS_VERT: {
291
2.04M
      const int row = coeff_idx >> bwl;
292
2.04M
      return ctx + nz_map_ctx_offset_1d[row];
293
0
    }
294
0
    default: break;
295
5.94M
  }
296
0
  return 0;
297
5.94M
}
Unexecuted instantiation: av1_cx_iface.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: av1_quantize.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: bitstream.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: encodemv.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: encoder.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: encoder_utils.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: encodetxb.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: ethread.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: firstpass.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: global_motion_facade.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: level.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: lookahead.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: mcomp.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: mv_prec.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: palette.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: pass2_strategy.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: pickcdef.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: picklpf.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: pickrst.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: ratectrl.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: rd.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: rdopt.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: segmentation.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: speed_features.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: superres_scale.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: svc_layercontext.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: temporal_filter.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: thirdpass.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: tokenize.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: tpl_model.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: tx_search.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: txb_rdopt.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: intra_mode_search.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: var_based_part.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: av1_noise_estimate.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: entropy.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: entropymode.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: txb_common.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: aq_complexity.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: aq_cyclicrefresh.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: aq_variance.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: allintra_vis.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: compound_type.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: context_tree.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: encodeframe.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: encodeframe_utils.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: encodemb.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: encode_strategy.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: global_motion.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: gop_structure.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: interp_search.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: motion_search_facade.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: partition_search.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: partition_strategy.c:get_nz_map_ctx_from_stats
Unexecuted instantiation: nonrd_pickmode.c:get_nz_map_ctx_from_stats
298
299
typedef aom_cdf_prob (*base_cdf_arr)[CDF_SIZE(4)];
300
typedef aom_cdf_prob (*br_cdf_arr)[CDF_SIZE(BR_CDF_SIZE)];
301
302
6.59M
static INLINE int get_lower_levels_ctx_eob(int bwl, int height, int scan_idx) {
303
6.59M
  if (scan_idx == 0) return 0;
304
3.84M
  if (scan_idx <= (height << bwl) / 8) return 1;
305
2.15M
  if (scan_idx <= (height << bwl) / 4) return 2;
306
1.60M
  return 3;
307
2.15M
}
decodetxb.c:get_lower_levels_ctx_eob
Line
Count
Source
302
6.59M
static INLINE int get_lower_levels_ctx_eob(int bwl, int height, int scan_idx) {
303
6.59M
  if (scan_idx == 0) return 0;
304
3.84M
  if (scan_idx <= (height << bwl) / 8) return 1;
305
2.15M
  if (scan_idx <= (height << bwl) / 4) return 2;
306
1.60M
  return 3;
307
2.15M
}
Unexecuted instantiation: av1_cx_iface.c:get_lower_levels_ctx_eob
Unexecuted instantiation: av1_quantize.c:get_lower_levels_ctx_eob
Unexecuted instantiation: bitstream.c:get_lower_levels_ctx_eob
Unexecuted instantiation: encodemv.c:get_lower_levels_ctx_eob
Unexecuted instantiation: encoder.c:get_lower_levels_ctx_eob
Unexecuted instantiation: encoder_utils.c:get_lower_levels_ctx_eob
Unexecuted instantiation: encodetxb.c:get_lower_levels_ctx_eob
Unexecuted instantiation: ethread.c:get_lower_levels_ctx_eob
Unexecuted instantiation: firstpass.c:get_lower_levels_ctx_eob
Unexecuted instantiation: global_motion_facade.c:get_lower_levels_ctx_eob
Unexecuted instantiation: level.c:get_lower_levels_ctx_eob
Unexecuted instantiation: lookahead.c:get_lower_levels_ctx_eob
Unexecuted instantiation: mcomp.c:get_lower_levels_ctx_eob
Unexecuted instantiation: mv_prec.c:get_lower_levels_ctx_eob
Unexecuted instantiation: palette.c:get_lower_levels_ctx_eob
Unexecuted instantiation: pass2_strategy.c:get_lower_levels_ctx_eob
Unexecuted instantiation: pickcdef.c:get_lower_levels_ctx_eob
Unexecuted instantiation: picklpf.c:get_lower_levels_ctx_eob
Unexecuted instantiation: pickrst.c:get_lower_levels_ctx_eob
Unexecuted instantiation: ratectrl.c:get_lower_levels_ctx_eob
Unexecuted instantiation: rd.c:get_lower_levels_ctx_eob
Unexecuted instantiation: rdopt.c:get_lower_levels_ctx_eob
Unexecuted instantiation: segmentation.c:get_lower_levels_ctx_eob
Unexecuted instantiation: speed_features.c:get_lower_levels_ctx_eob
Unexecuted instantiation: superres_scale.c:get_lower_levels_ctx_eob
Unexecuted instantiation: svc_layercontext.c:get_lower_levels_ctx_eob
Unexecuted instantiation: temporal_filter.c:get_lower_levels_ctx_eob
Unexecuted instantiation: thirdpass.c:get_lower_levels_ctx_eob
Unexecuted instantiation: tokenize.c:get_lower_levels_ctx_eob
Unexecuted instantiation: tpl_model.c:get_lower_levels_ctx_eob
Unexecuted instantiation: tx_search.c:get_lower_levels_ctx_eob
Unexecuted instantiation: txb_rdopt.c:get_lower_levels_ctx_eob
Unexecuted instantiation: intra_mode_search.c:get_lower_levels_ctx_eob
Unexecuted instantiation: var_based_part.c:get_lower_levels_ctx_eob
Unexecuted instantiation: av1_noise_estimate.c:get_lower_levels_ctx_eob
Unexecuted instantiation: entropy.c:get_lower_levels_ctx_eob
Unexecuted instantiation: entropymode.c:get_lower_levels_ctx_eob
Unexecuted instantiation: txb_common.c:get_lower_levels_ctx_eob
Unexecuted instantiation: aq_complexity.c:get_lower_levels_ctx_eob
Unexecuted instantiation: aq_cyclicrefresh.c:get_lower_levels_ctx_eob
Unexecuted instantiation: aq_variance.c:get_lower_levels_ctx_eob
Unexecuted instantiation: allintra_vis.c:get_lower_levels_ctx_eob
Unexecuted instantiation: compound_type.c:get_lower_levels_ctx_eob
Unexecuted instantiation: context_tree.c:get_lower_levels_ctx_eob
Unexecuted instantiation: encodeframe.c:get_lower_levels_ctx_eob
Unexecuted instantiation: encodeframe_utils.c:get_lower_levels_ctx_eob
Unexecuted instantiation: encodemb.c:get_lower_levels_ctx_eob
Unexecuted instantiation: encode_strategy.c:get_lower_levels_ctx_eob
Unexecuted instantiation: global_motion.c:get_lower_levels_ctx_eob
Unexecuted instantiation: gop_structure.c:get_lower_levels_ctx_eob
Unexecuted instantiation: interp_search.c:get_lower_levels_ctx_eob
Unexecuted instantiation: motion_search_facade.c:get_lower_levels_ctx_eob
Unexecuted instantiation: partition_search.c:get_lower_levels_ctx_eob
Unexecuted instantiation: partition_strategy.c:get_lower_levels_ctx_eob
Unexecuted instantiation: nonrd_pickmode.c:get_lower_levels_ctx_eob
308
309
static INLINE int get_lower_levels_ctx_2d(const uint8_t *levels, int coeff_idx,
310
89.8M
                                          int bwl, TX_SIZE tx_size) {
311
89.8M
  assert(coeff_idx > 0);
312
89.8M
  int mag;
313
  // Note: AOMMIN(level, 3) is useless for decoder since level < 3.
314
89.8M
  levels = levels + get_padded_idx(coeff_idx, bwl);
315
89.8M
  mag = AOMMIN(levels[1], 3);                                     // { 0, 1 }
316
89.8M
  mag += AOMMIN(levels[(1 << bwl) + TX_PAD_HOR], 3);              // { 1, 0 }
317
89.8M
  mag += AOMMIN(levels[(1 << bwl) + TX_PAD_HOR + 1], 3);          // { 1, 1 }
318
89.8M
  mag += AOMMIN(levels[2], 3);                                    // { 0, 2 }
319
89.8M
  mag += AOMMIN(levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)], 3);  // { 2, 0 }
320
321
89.8M
  const int ctx = AOMMIN((mag + 1) >> 1, 4);
322
89.8M
  return ctx + av1_nz_map_ctx_offset[tx_size][coeff_idx];
323
89.8M
}
decodetxb.c:get_lower_levels_ctx_2d
Line
Count
Source
310
89.8M
                                          int bwl, TX_SIZE tx_size) {
311
89.8M
  assert(coeff_idx > 0);
312
89.8M
  int mag;
313
  // Note: AOMMIN(level, 3) is useless for decoder since level < 3.
314
89.8M
  levels = levels + get_padded_idx(coeff_idx, bwl);
315
89.8M
  mag = AOMMIN(levels[1], 3);                                     // { 0, 1 }
316
89.8M
  mag += AOMMIN(levels[(1 << bwl) + TX_PAD_HOR], 3);              // { 1, 0 }
317
89.8M
  mag += AOMMIN(levels[(1 << bwl) + TX_PAD_HOR + 1], 3);          // { 1, 1 }
318
89.8M
  mag += AOMMIN(levels[2], 3);                                    // { 0, 2 }
319
89.8M
  mag += AOMMIN(levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)], 3);  // { 2, 0 }
320
321
89.8M
  const int ctx = AOMMIN((mag + 1) >> 1, 4);
322
89.8M
  return ctx + av1_nz_map_ctx_offset[tx_size][coeff_idx];
323
89.8M
}
Unexecuted instantiation: av1_cx_iface.c:get_lower_levels_ctx_2d
Unexecuted instantiation: av1_quantize.c:get_lower_levels_ctx_2d
Unexecuted instantiation: bitstream.c:get_lower_levels_ctx_2d
Unexecuted instantiation: encodemv.c:get_lower_levels_ctx_2d
Unexecuted instantiation: encoder.c:get_lower_levels_ctx_2d
Unexecuted instantiation: encoder_utils.c:get_lower_levels_ctx_2d
Unexecuted instantiation: encodetxb.c:get_lower_levels_ctx_2d
Unexecuted instantiation: ethread.c:get_lower_levels_ctx_2d
Unexecuted instantiation: firstpass.c:get_lower_levels_ctx_2d
Unexecuted instantiation: global_motion_facade.c:get_lower_levels_ctx_2d
Unexecuted instantiation: level.c:get_lower_levels_ctx_2d
Unexecuted instantiation: lookahead.c:get_lower_levels_ctx_2d
Unexecuted instantiation: mcomp.c:get_lower_levels_ctx_2d
Unexecuted instantiation: mv_prec.c:get_lower_levels_ctx_2d
Unexecuted instantiation: palette.c:get_lower_levels_ctx_2d
Unexecuted instantiation: pass2_strategy.c:get_lower_levels_ctx_2d
Unexecuted instantiation: pickcdef.c:get_lower_levels_ctx_2d
Unexecuted instantiation: picklpf.c:get_lower_levels_ctx_2d
Unexecuted instantiation: pickrst.c:get_lower_levels_ctx_2d
Unexecuted instantiation: ratectrl.c:get_lower_levels_ctx_2d
Unexecuted instantiation: rd.c:get_lower_levels_ctx_2d
Unexecuted instantiation: rdopt.c:get_lower_levels_ctx_2d
Unexecuted instantiation: segmentation.c:get_lower_levels_ctx_2d
Unexecuted instantiation: speed_features.c:get_lower_levels_ctx_2d
Unexecuted instantiation: superres_scale.c:get_lower_levels_ctx_2d
Unexecuted instantiation: svc_layercontext.c:get_lower_levels_ctx_2d
Unexecuted instantiation: temporal_filter.c:get_lower_levels_ctx_2d
Unexecuted instantiation: thirdpass.c:get_lower_levels_ctx_2d
Unexecuted instantiation: tokenize.c:get_lower_levels_ctx_2d
Unexecuted instantiation: tpl_model.c:get_lower_levels_ctx_2d
Unexecuted instantiation: tx_search.c:get_lower_levels_ctx_2d
Unexecuted instantiation: txb_rdopt.c:get_lower_levels_ctx_2d
Unexecuted instantiation: intra_mode_search.c:get_lower_levels_ctx_2d
Unexecuted instantiation: var_based_part.c:get_lower_levels_ctx_2d
Unexecuted instantiation: av1_noise_estimate.c:get_lower_levels_ctx_2d
Unexecuted instantiation: entropy.c:get_lower_levels_ctx_2d
Unexecuted instantiation: entropymode.c:get_lower_levels_ctx_2d
Unexecuted instantiation: txb_common.c:get_lower_levels_ctx_2d
Unexecuted instantiation: aq_complexity.c:get_lower_levels_ctx_2d
Unexecuted instantiation: aq_cyclicrefresh.c:get_lower_levels_ctx_2d
Unexecuted instantiation: aq_variance.c:get_lower_levels_ctx_2d
Unexecuted instantiation: allintra_vis.c:get_lower_levels_ctx_2d
Unexecuted instantiation: compound_type.c:get_lower_levels_ctx_2d
Unexecuted instantiation: context_tree.c:get_lower_levels_ctx_2d
Unexecuted instantiation: encodeframe.c:get_lower_levels_ctx_2d
Unexecuted instantiation: encodeframe_utils.c:get_lower_levels_ctx_2d
Unexecuted instantiation: encodemb.c:get_lower_levels_ctx_2d
Unexecuted instantiation: encode_strategy.c:get_lower_levels_ctx_2d
Unexecuted instantiation: global_motion.c:get_lower_levels_ctx_2d
Unexecuted instantiation: gop_structure.c:get_lower_levels_ctx_2d
Unexecuted instantiation: interp_search.c:get_lower_levels_ctx_2d
Unexecuted instantiation: motion_search_facade.c:get_lower_levels_ctx_2d
Unexecuted instantiation: partition_search.c:get_lower_levels_ctx_2d
Unexecuted instantiation: partition_strategy.c:get_lower_levels_ctx_2d
Unexecuted instantiation: nonrd_pickmode.c:get_lower_levels_ctx_2d
324
static AOM_FORCE_INLINE int get_lower_levels_ctx(const uint8_t *levels,
325
                                                 int coeff_idx, int bwl,
326
                                                 TX_SIZE tx_size,
327
9.49M
                                                 TX_CLASS tx_class) {
328
9.49M
  const int stats =
329
9.49M
      get_nz_mag(levels + get_padded_idx(coeff_idx, bwl), bwl, tx_class);
330
9.49M
  return get_nz_map_ctx_from_stats(stats, coeff_idx, bwl, tx_size, tx_class);
331
9.49M
}
decodetxb.c:get_lower_levels_ctx
Line
Count
Source
327
9.49M
                                                 TX_CLASS tx_class) {
328
9.49M
  const int stats =
329
9.49M
      get_nz_mag(levels + get_padded_idx(coeff_idx, bwl), bwl, tx_class);
330
9.49M
  return get_nz_map_ctx_from_stats(stats, coeff_idx, bwl, tx_size, tx_class);
331
9.49M
}
Unexecuted instantiation: av1_cx_iface.c:get_lower_levels_ctx
Unexecuted instantiation: av1_quantize.c:get_lower_levels_ctx
Unexecuted instantiation: bitstream.c:get_lower_levels_ctx
Unexecuted instantiation: encodemv.c:get_lower_levels_ctx
Unexecuted instantiation: encoder.c:get_lower_levels_ctx
Unexecuted instantiation: encoder_utils.c:get_lower_levels_ctx
Unexecuted instantiation: encodetxb.c:get_lower_levels_ctx
Unexecuted instantiation: ethread.c:get_lower_levels_ctx
Unexecuted instantiation: firstpass.c:get_lower_levels_ctx
Unexecuted instantiation: global_motion_facade.c:get_lower_levels_ctx
Unexecuted instantiation: level.c:get_lower_levels_ctx
Unexecuted instantiation: lookahead.c:get_lower_levels_ctx
Unexecuted instantiation: mcomp.c:get_lower_levels_ctx
Unexecuted instantiation: mv_prec.c:get_lower_levels_ctx
Unexecuted instantiation: palette.c:get_lower_levels_ctx
Unexecuted instantiation: pass2_strategy.c:get_lower_levels_ctx
Unexecuted instantiation: pickcdef.c:get_lower_levels_ctx
Unexecuted instantiation: picklpf.c:get_lower_levels_ctx
Unexecuted instantiation: pickrst.c:get_lower_levels_ctx
Unexecuted instantiation: ratectrl.c:get_lower_levels_ctx
Unexecuted instantiation: rd.c:get_lower_levels_ctx
Unexecuted instantiation: rdopt.c:get_lower_levels_ctx
Unexecuted instantiation: segmentation.c:get_lower_levels_ctx
Unexecuted instantiation: speed_features.c:get_lower_levels_ctx
Unexecuted instantiation: superres_scale.c:get_lower_levels_ctx
Unexecuted instantiation: svc_layercontext.c:get_lower_levels_ctx
Unexecuted instantiation: temporal_filter.c:get_lower_levels_ctx
Unexecuted instantiation: thirdpass.c:get_lower_levels_ctx
Unexecuted instantiation: tokenize.c:get_lower_levels_ctx
Unexecuted instantiation: tpl_model.c:get_lower_levels_ctx
Unexecuted instantiation: tx_search.c:get_lower_levels_ctx
Unexecuted instantiation: txb_rdopt.c:get_lower_levels_ctx
Unexecuted instantiation: intra_mode_search.c:get_lower_levels_ctx
Unexecuted instantiation: var_based_part.c:get_lower_levels_ctx
Unexecuted instantiation: av1_noise_estimate.c:get_lower_levels_ctx
Unexecuted instantiation: entropy.c:get_lower_levels_ctx
Unexecuted instantiation: entropymode.c:get_lower_levels_ctx
Unexecuted instantiation: txb_common.c:get_lower_levels_ctx
Unexecuted instantiation: aq_complexity.c:get_lower_levels_ctx
Unexecuted instantiation: aq_cyclicrefresh.c:get_lower_levels_ctx
Unexecuted instantiation: aq_variance.c:get_lower_levels_ctx
Unexecuted instantiation: allintra_vis.c:get_lower_levels_ctx
Unexecuted instantiation: compound_type.c:get_lower_levels_ctx
Unexecuted instantiation: context_tree.c:get_lower_levels_ctx
Unexecuted instantiation: encodeframe.c:get_lower_levels_ctx
Unexecuted instantiation: encodeframe_utils.c:get_lower_levels_ctx
Unexecuted instantiation: encodemb.c:get_lower_levels_ctx
Unexecuted instantiation: encode_strategy.c:get_lower_levels_ctx
Unexecuted instantiation: global_motion.c:get_lower_levels_ctx
Unexecuted instantiation: gop_structure.c:get_lower_levels_ctx
Unexecuted instantiation: interp_search.c:get_lower_levels_ctx
Unexecuted instantiation: motion_search_facade.c:get_lower_levels_ctx
Unexecuted instantiation: partition_search.c:get_lower_levels_ctx
Unexecuted instantiation: partition_strategy.c:get_lower_levels_ctx
Unexecuted instantiation: nonrd_pickmode.c:get_lower_levels_ctx
332
333
static INLINE int get_lower_levels_ctx_general(int is_last, int scan_idx,
334
                                               int bwl, int height,
335
                                               const uint8_t *levels,
336
                                               int coeff_idx, TX_SIZE tx_size,
337
0
                                               TX_CLASS tx_class) {
338
0
  if (is_last) {
339
0
    if (scan_idx == 0) return 0;
340
0
    if (scan_idx <= (height << bwl) >> 3) return 1;
341
0
    if (scan_idx <= (height << bwl) >> 2) return 2;
342
0
    return 3;
343
0
  }
344
0
  return get_lower_levels_ctx(levels, coeff_idx, bwl, tx_size, tx_class);
345
0
}
Unexecuted instantiation: decodetxb.c:get_lower_levels_ctx_general
Unexecuted instantiation: av1_cx_iface.c:get_lower_levels_ctx_general
Unexecuted instantiation: av1_quantize.c:get_lower_levels_ctx_general
Unexecuted instantiation: bitstream.c:get_lower_levels_ctx_general
Unexecuted instantiation: encodemv.c:get_lower_levels_ctx_general
Unexecuted instantiation: encoder.c:get_lower_levels_ctx_general
Unexecuted instantiation: encoder_utils.c:get_lower_levels_ctx_general
Unexecuted instantiation: encodetxb.c:get_lower_levels_ctx_general
Unexecuted instantiation: ethread.c:get_lower_levels_ctx_general
Unexecuted instantiation: firstpass.c:get_lower_levels_ctx_general
Unexecuted instantiation: global_motion_facade.c:get_lower_levels_ctx_general
Unexecuted instantiation: level.c:get_lower_levels_ctx_general
Unexecuted instantiation: lookahead.c:get_lower_levels_ctx_general
Unexecuted instantiation: mcomp.c:get_lower_levels_ctx_general
Unexecuted instantiation: mv_prec.c:get_lower_levels_ctx_general
Unexecuted instantiation: palette.c:get_lower_levels_ctx_general
Unexecuted instantiation: pass2_strategy.c:get_lower_levels_ctx_general
Unexecuted instantiation: pickcdef.c:get_lower_levels_ctx_general
Unexecuted instantiation: picklpf.c:get_lower_levels_ctx_general
Unexecuted instantiation: pickrst.c:get_lower_levels_ctx_general
Unexecuted instantiation: ratectrl.c:get_lower_levels_ctx_general
Unexecuted instantiation: rd.c:get_lower_levels_ctx_general
Unexecuted instantiation: rdopt.c:get_lower_levels_ctx_general
Unexecuted instantiation: segmentation.c:get_lower_levels_ctx_general
Unexecuted instantiation: speed_features.c:get_lower_levels_ctx_general
Unexecuted instantiation: superres_scale.c:get_lower_levels_ctx_general
Unexecuted instantiation: svc_layercontext.c:get_lower_levels_ctx_general
Unexecuted instantiation: temporal_filter.c:get_lower_levels_ctx_general
Unexecuted instantiation: thirdpass.c:get_lower_levels_ctx_general
Unexecuted instantiation: tokenize.c:get_lower_levels_ctx_general
Unexecuted instantiation: tpl_model.c:get_lower_levels_ctx_general
Unexecuted instantiation: tx_search.c:get_lower_levels_ctx_general
Unexecuted instantiation: txb_rdopt.c:get_lower_levels_ctx_general
Unexecuted instantiation: intra_mode_search.c:get_lower_levels_ctx_general
Unexecuted instantiation: var_based_part.c:get_lower_levels_ctx_general
Unexecuted instantiation: av1_noise_estimate.c:get_lower_levels_ctx_general
Unexecuted instantiation: entropy.c:get_lower_levels_ctx_general
Unexecuted instantiation: entropymode.c:get_lower_levels_ctx_general
Unexecuted instantiation: txb_common.c:get_lower_levels_ctx_general
Unexecuted instantiation: aq_complexity.c:get_lower_levels_ctx_general
Unexecuted instantiation: aq_cyclicrefresh.c:get_lower_levels_ctx_general
Unexecuted instantiation: aq_variance.c:get_lower_levels_ctx_general
Unexecuted instantiation: allintra_vis.c:get_lower_levels_ctx_general
Unexecuted instantiation: compound_type.c:get_lower_levels_ctx_general
Unexecuted instantiation: context_tree.c:get_lower_levels_ctx_general
Unexecuted instantiation: encodeframe.c:get_lower_levels_ctx_general
Unexecuted instantiation: encodeframe_utils.c:get_lower_levels_ctx_general
Unexecuted instantiation: encodemb.c:get_lower_levels_ctx_general
Unexecuted instantiation: encode_strategy.c:get_lower_levels_ctx_general
Unexecuted instantiation: global_motion.c:get_lower_levels_ctx_general
Unexecuted instantiation: gop_structure.c:get_lower_levels_ctx_general
Unexecuted instantiation: interp_search.c:get_lower_levels_ctx_general
Unexecuted instantiation: motion_search_facade.c:get_lower_levels_ctx_general
Unexecuted instantiation: partition_search.c:get_lower_levels_ctx_general
Unexecuted instantiation: partition_strategy.c:get_lower_levels_ctx_general
Unexecuted instantiation: nonrd_pickmode.c:get_lower_levels_ctx_general
346
347
6.59M
static INLINE void set_dc_sign(int *cul_level, int dc_val) {
348
6.59M
  if (dc_val < 0)
349
2.09M
    *cul_level |= 1 << COEFF_CONTEXT_BITS;
350
4.50M
  else if (dc_val > 0)
351
3.44M
    *cul_level += 2 << COEFF_CONTEXT_BITS;
352
6.59M
}
decodetxb.c:set_dc_sign
Line
Count
Source
347
6.59M
static INLINE void set_dc_sign(int *cul_level, int dc_val) {
348
6.59M
  if (dc_val < 0)
349
2.09M
    *cul_level |= 1 << COEFF_CONTEXT_BITS;
350
4.50M
  else if (dc_val > 0)
351
3.44M
    *cul_level += 2 << COEFF_CONTEXT_BITS;
352
6.59M
}
Unexecuted instantiation: av1_cx_iface.c:set_dc_sign
Unexecuted instantiation: av1_quantize.c:set_dc_sign
Unexecuted instantiation: bitstream.c:set_dc_sign
Unexecuted instantiation: encodemv.c:set_dc_sign
Unexecuted instantiation: encoder.c:set_dc_sign
Unexecuted instantiation: encoder_utils.c:set_dc_sign
Unexecuted instantiation: encodetxb.c:set_dc_sign
Unexecuted instantiation: ethread.c:set_dc_sign
Unexecuted instantiation: firstpass.c:set_dc_sign
Unexecuted instantiation: global_motion_facade.c:set_dc_sign
Unexecuted instantiation: level.c:set_dc_sign
Unexecuted instantiation: lookahead.c:set_dc_sign
Unexecuted instantiation: mcomp.c:set_dc_sign
Unexecuted instantiation: mv_prec.c:set_dc_sign
Unexecuted instantiation: palette.c:set_dc_sign
Unexecuted instantiation: pass2_strategy.c:set_dc_sign
Unexecuted instantiation: pickcdef.c:set_dc_sign
Unexecuted instantiation: picklpf.c:set_dc_sign
Unexecuted instantiation: pickrst.c:set_dc_sign
Unexecuted instantiation: ratectrl.c:set_dc_sign
Unexecuted instantiation: rd.c:set_dc_sign
Unexecuted instantiation: rdopt.c:set_dc_sign
Unexecuted instantiation: segmentation.c:set_dc_sign
Unexecuted instantiation: speed_features.c:set_dc_sign
Unexecuted instantiation: superres_scale.c:set_dc_sign
Unexecuted instantiation: svc_layercontext.c:set_dc_sign
Unexecuted instantiation: temporal_filter.c:set_dc_sign
Unexecuted instantiation: thirdpass.c:set_dc_sign
Unexecuted instantiation: tokenize.c:set_dc_sign
Unexecuted instantiation: tpl_model.c:set_dc_sign
Unexecuted instantiation: tx_search.c:set_dc_sign
Unexecuted instantiation: txb_rdopt.c:set_dc_sign
Unexecuted instantiation: intra_mode_search.c:set_dc_sign
Unexecuted instantiation: var_based_part.c:set_dc_sign
Unexecuted instantiation: av1_noise_estimate.c:set_dc_sign
Unexecuted instantiation: entropy.c:set_dc_sign
Unexecuted instantiation: entropymode.c:set_dc_sign
Unexecuted instantiation: txb_common.c:set_dc_sign
Unexecuted instantiation: aq_complexity.c:set_dc_sign
Unexecuted instantiation: aq_cyclicrefresh.c:set_dc_sign
Unexecuted instantiation: aq_variance.c:set_dc_sign
Unexecuted instantiation: allintra_vis.c:set_dc_sign
Unexecuted instantiation: compound_type.c:set_dc_sign
Unexecuted instantiation: context_tree.c:set_dc_sign
Unexecuted instantiation: encodeframe.c:set_dc_sign
Unexecuted instantiation: encodeframe_utils.c:set_dc_sign
Unexecuted instantiation: encodemb.c:set_dc_sign
Unexecuted instantiation: encode_strategy.c:set_dc_sign
Unexecuted instantiation: global_motion.c:set_dc_sign
Unexecuted instantiation: gop_structure.c:set_dc_sign
Unexecuted instantiation: interp_search.c:set_dc_sign
Unexecuted instantiation: motion_search_facade.c:set_dc_sign
Unexecuted instantiation: partition_search.c:set_dc_sign
Unexecuted instantiation: partition_strategy.c:set_dc_sign
Unexecuted instantiation: nonrd_pickmode.c:set_dc_sign
353
354
static INLINE void get_txb_ctx(const BLOCK_SIZE plane_bsize,
355
                               const TX_SIZE tx_size, const int plane,
356
                               const ENTROPY_CONTEXT *const a,
357
                               const ENTROPY_CONTEXT *const l,
358
12.3M
                               TXB_CTX *const txb_ctx) {
359
12.3M
#define MAX_TX_SIZE_UNIT 16
360
12.3M
  static const int8_t signs[3] = { 0, -1, 1 };
361
12.3M
  static const int8_t dc_sign_contexts[4 * MAX_TX_SIZE_UNIT + 1] = {
362
12.3M
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
363
12.3M
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
364
12.3M
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
365
12.3M
  };
366
12.3M
  const int txb_w_unit = tx_size_wide_unit[tx_size];
367
12.3M
  const int txb_h_unit = tx_size_high_unit[tx_size];
368
12.3M
  int dc_sign = 0;
369
12.3M
  int k = 0;
370
371
39.3M
  do {
372
39.3M
    const unsigned int sign = ((uint8_t)a[k]) >> COEFF_CONTEXT_BITS;
373
39.3M
    assert(sign <= 2);
374
39.3M
    dc_sign += signs[sign];
375
39.3M
  } while (++k < txb_w_unit);
376
377
12.3M
  k = 0;
378
37.7M
  do {
379
37.7M
    const unsigned int sign = ((uint8_t)l[k]) >> COEFF_CONTEXT_BITS;
380
37.7M
    assert(sign <= 2);
381
37.7M
    dc_sign += signs[sign];
382
37.7M
  } while (++k < txb_h_unit);
383
384
12.3M
  txb_ctx->dc_sign_ctx = dc_sign_contexts[dc_sign + 2 * MAX_TX_SIZE_UNIT];
385
386
12.3M
  if (plane == 0) {
387
5.71M
    if (plane_bsize == txsize_to_bsize[tx_size]) {
388
2.10M
      txb_ctx->txb_skip_ctx = 0;
389
3.61M
    } else {
390
      // This is the algorithm to generate table skip_contexts[top][left].
391
      //    const int max = AOMMIN(top | left, 4);
392
      //    const int min = AOMMIN(AOMMIN(top, left), 4);
393
      //    if (!max)
394
      //      txb_skip_ctx = 1;
395
      //    else if (!min)
396
      //      txb_skip_ctx = 2 + (max > 3);
397
      //    else if (max <= 3)
398
      //      txb_skip_ctx = 4;
399
      //    else if (min <= 3)
400
      //      txb_skip_ctx = 5;
401
      //    else
402
      //      txb_skip_ctx = 6;
403
3.61M
      static const uint8_t skip_contexts[5][5] = { { 1, 2, 2, 2, 3 },
404
3.61M
                                                   { 2, 4, 4, 4, 5 },
405
3.61M
                                                   { 2, 4, 4, 4, 5 },
406
3.61M
                                                   { 2, 4, 4, 4, 5 },
407
3.61M
                                                   { 3, 5, 5, 5, 6 } };
408
      // For top and left, we only care about which of the following three
409
      // categories they belong to: { 0 }, { 1, 2, 3 }, or { 4, 5, ... }. The
410
      // spec calculates top and left with the Max() function. We can calculate
411
      // an approximate max with bitwise OR because the real max and the
412
      // approximate max belong to the same category.
413
3.61M
      int top = 0;
414
3.61M
      int left = 0;
415
416
3.61M
      k = 0;
417
8.60M
      do {
418
8.60M
        top |= a[k];
419
8.60M
      } while (++k < txb_w_unit);
420
3.61M
      top &= COEFF_CONTEXT_MASK;
421
3.61M
      top = AOMMIN(top, 4);
422
423
3.61M
      k = 0;
424
8.54M
      do {
425
8.54M
        left |= l[k];
426
8.54M
      } while (++k < txb_h_unit);
427
3.61M
      left &= COEFF_CONTEXT_MASK;
428
3.61M
      left = AOMMIN(left, 4);
429
430
3.61M
      txb_ctx->txb_skip_ctx = skip_contexts[top][left];
431
3.61M
    }
432
6.65M
  } else {
433
6.65M
    const int ctx_base = get_entropy_context(tx_size, a, l);
434
6.65M
    const int ctx_offset = (num_pels_log2_lookup[plane_bsize] >
435
6.65M
                            num_pels_log2_lookup[txsize_to_bsize[tx_size]])
436
6.65M
                               ? 10
437
6.65M
                               : 7;
438
6.65M
    txb_ctx->txb_skip_ctx = ctx_base + ctx_offset;
439
6.65M
  }
440
12.3M
#undef MAX_TX_SIZE_UNIT
441
12.3M
}
decodetxb.c:get_txb_ctx
Line
Count
Source
358
12.3M
                               TXB_CTX *const txb_ctx) {
359
12.3M
#define MAX_TX_SIZE_UNIT 16
360
12.3M
  static const int8_t signs[3] = { 0, -1, 1 };
361
12.3M
  static const int8_t dc_sign_contexts[4 * MAX_TX_SIZE_UNIT + 1] = {
362
12.3M
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
363
12.3M
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
364
12.3M
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
365
12.3M
  };
366
12.3M
  const int txb_w_unit = tx_size_wide_unit[tx_size];
367
12.3M
  const int txb_h_unit = tx_size_high_unit[tx_size];
368
12.3M
  int dc_sign = 0;
369
12.3M
  int k = 0;
370
371
39.3M
  do {
372
39.3M
    const unsigned int sign = ((uint8_t)a[k]) >> COEFF_CONTEXT_BITS;
373
39.3M
    assert(sign <= 2);
374
39.3M
    dc_sign += signs[sign];
375
39.3M
  } while (++k < txb_w_unit);
376
377
12.3M
  k = 0;
378
37.7M
  do {
379
37.7M
    const unsigned int sign = ((uint8_t)l[k]) >> COEFF_CONTEXT_BITS;
380
37.7M
    assert(sign <= 2);
381
37.7M
    dc_sign += signs[sign];
382
37.7M
  } while (++k < txb_h_unit);
383
384
12.3M
  txb_ctx->dc_sign_ctx = dc_sign_contexts[dc_sign + 2 * MAX_TX_SIZE_UNIT];
385
386
12.3M
  if (plane == 0) {
387
5.71M
    if (plane_bsize == txsize_to_bsize[tx_size]) {
388
2.10M
      txb_ctx->txb_skip_ctx = 0;
389
3.61M
    } else {
390
      // This is the algorithm to generate table skip_contexts[top][left].
391
      //    const int max = AOMMIN(top | left, 4);
392
      //    const int min = AOMMIN(AOMMIN(top, left), 4);
393
      //    if (!max)
394
      //      txb_skip_ctx = 1;
395
      //    else if (!min)
396
      //      txb_skip_ctx = 2 + (max > 3);
397
      //    else if (max <= 3)
398
      //      txb_skip_ctx = 4;
399
      //    else if (min <= 3)
400
      //      txb_skip_ctx = 5;
401
      //    else
402
      //      txb_skip_ctx = 6;
403
3.61M
      static const uint8_t skip_contexts[5][5] = { { 1, 2, 2, 2, 3 },
404
3.61M
                                                   { 2, 4, 4, 4, 5 },
405
3.61M
                                                   { 2, 4, 4, 4, 5 },
406
3.61M
                                                   { 2, 4, 4, 4, 5 },
407
3.61M
                                                   { 3, 5, 5, 5, 6 } };
408
      // For top and left, we only care about which of the following three
409
      // categories they belong to: { 0 }, { 1, 2, 3 }, or { 4, 5, ... }. The
410
      // spec calculates top and left with the Max() function. We can calculate
411
      // an approximate max with bitwise OR because the real max and the
412
      // approximate max belong to the same category.
413
3.61M
      int top = 0;
414
3.61M
      int left = 0;
415
416
3.61M
      k = 0;
417
8.60M
      do {
418
8.60M
        top |= a[k];
419
8.60M
      } while (++k < txb_w_unit);
420
3.61M
      top &= COEFF_CONTEXT_MASK;
421
3.61M
      top = AOMMIN(top, 4);
422
423
3.61M
      k = 0;
424
8.54M
      do {
425
8.54M
        left |= l[k];
426
8.54M
      } while (++k < txb_h_unit);
427
3.61M
      left &= COEFF_CONTEXT_MASK;
428
3.61M
      left = AOMMIN(left, 4);
429
430
3.61M
      txb_ctx->txb_skip_ctx = skip_contexts[top][left];
431
3.61M
    }
432
6.65M
  } else {
433
6.65M
    const int ctx_base = get_entropy_context(tx_size, a, l);
434
6.65M
    const int ctx_offset = (num_pels_log2_lookup[plane_bsize] >
435
6.65M
                            num_pels_log2_lookup[txsize_to_bsize[tx_size]])
436
6.65M
                               ? 10
437
6.65M
                               : 7;
438
6.65M
    txb_ctx->txb_skip_ctx = ctx_base + ctx_offset;
439
6.65M
  }
440
12.3M
#undef MAX_TX_SIZE_UNIT
441
12.3M
}
Unexecuted instantiation: av1_cx_iface.c:get_txb_ctx
Unexecuted instantiation: av1_quantize.c:get_txb_ctx
Unexecuted instantiation: bitstream.c:get_txb_ctx
Unexecuted instantiation: encodemv.c:get_txb_ctx
Unexecuted instantiation: encoder.c:get_txb_ctx
Unexecuted instantiation: encoder_utils.c:get_txb_ctx
Unexecuted instantiation: encodetxb.c:get_txb_ctx
Unexecuted instantiation: ethread.c:get_txb_ctx
Unexecuted instantiation: firstpass.c:get_txb_ctx
Unexecuted instantiation: global_motion_facade.c:get_txb_ctx
Unexecuted instantiation: level.c:get_txb_ctx
Unexecuted instantiation: lookahead.c:get_txb_ctx
Unexecuted instantiation: mcomp.c:get_txb_ctx
Unexecuted instantiation: mv_prec.c:get_txb_ctx
Unexecuted instantiation: palette.c:get_txb_ctx
Unexecuted instantiation: pass2_strategy.c:get_txb_ctx
Unexecuted instantiation: pickcdef.c:get_txb_ctx
Unexecuted instantiation: picklpf.c:get_txb_ctx
Unexecuted instantiation: pickrst.c:get_txb_ctx
Unexecuted instantiation: ratectrl.c:get_txb_ctx
Unexecuted instantiation: rd.c:get_txb_ctx
Unexecuted instantiation: rdopt.c:get_txb_ctx
Unexecuted instantiation: segmentation.c:get_txb_ctx
Unexecuted instantiation: speed_features.c:get_txb_ctx
Unexecuted instantiation: superres_scale.c:get_txb_ctx
Unexecuted instantiation: svc_layercontext.c:get_txb_ctx
Unexecuted instantiation: temporal_filter.c:get_txb_ctx
Unexecuted instantiation: thirdpass.c:get_txb_ctx
Unexecuted instantiation: tokenize.c:get_txb_ctx
Unexecuted instantiation: tpl_model.c:get_txb_ctx
Unexecuted instantiation: tx_search.c:get_txb_ctx
Unexecuted instantiation: txb_rdopt.c:get_txb_ctx
Unexecuted instantiation: intra_mode_search.c:get_txb_ctx
Unexecuted instantiation: var_based_part.c:get_txb_ctx
Unexecuted instantiation: av1_noise_estimate.c:get_txb_ctx
Unexecuted instantiation: entropy.c:get_txb_ctx
Unexecuted instantiation: entropymode.c:get_txb_ctx
Unexecuted instantiation: txb_common.c:get_txb_ctx
Unexecuted instantiation: aq_complexity.c:get_txb_ctx
Unexecuted instantiation: aq_cyclicrefresh.c:get_txb_ctx
Unexecuted instantiation: aq_variance.c:get_txb_ctx
Unexecuted instantiation: allintra_vis.c:get_txb_ctx
Unexecuted instantiation: compound_type.c:get_txb_ctx
Unexecuted instantiation: context_tree.c:get_txb_ctx
Unexecuted instantiation: encodeframe.c:get_txb_ctx
Unexecuted instantiation: encodeframe_utils.c:get_txb_ctx
Unexecuted instantiation: encodemb.c:get_txb_ctx
Unexecuted instantiation: encode_strategy.c:get_txb_ctx
Unexecuted instantiation: global_motion.c:get_txb_ctx
Unexecuted instantiation: gop_structure.c:get_txb_ctx
Unexecuted instantiation: interp_search.c:get_txb_ctx
Unexecuted instantiation: motion_search_facade.c:get_txb_ctx
Unexecuted instantiation: partition_search.c:get_txb_ctx
Unexecuted instantiation: partition_strategy.c:get_txb_ctx
Unexecuted instantiation: nonrd_pickmode.c:get_txb_ctx
442
443
#endif  // AOM_AV1_COMMON_TXB_COMMON_H_