/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 | 3.02M | static INLINE int get_txb_bwl(TX_SIZE tx_size) { |
59 | 3.02M | tx_size = av1_get_adjusted_tx_size(tx_size); |
60 | 3.02M | return tx_size_wide_log2[tx_size]; |
61 | 3.02M | } Line | Count | Source | 58 | 1.70M | static INLINE int get_txb_bwl(TX_SIZE tx_size) { | 59 | 1.70M | tx_size = av1_get_adjusted_tx_size(tx_size); | 60 | 1.70M | return tx_size_wide_log2[tx_size]; | 61 | 1.70M | } |
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 Line | Count | Source | 58 | 962k | static INLINE int get_txb_bwl(TX_SIZE tx_size) { | 59 | 962k | tx_size = av1_get_adjusted_tx_size(tx_size); | 60 | 962k | return tx_size_wide_log2[tx_size]; | 61 | 962k | } |
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 Line | Count | Source | 58 | 354k | static INLINE int get_txb_bwl(TX_SIZE tx_size) { | 59 | 354k | tx_size = av1_get_adjusted_tx_size(tx_size); | 60 | 354k | return tx_size_wide_log2[tx_size]; | 61 | 354k | } |
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 | 2.85M | static INLINE int get_txb_wide(TX_SIZE tx_size) { |
64 | 2.85M | tx_size = av1_get_adjusted_tx_size(tx_size); |
65 | 2.85M | return tx_size_wide[tx_size]; |
66 | 2.85M | } Line | Count | Source | 63 | 1.70M | static INLINE int get_txb_wide(TX_SIZE tx_size) { | 64 | 1.70M | tx_size = av1_get_adjusted_tx_size(tx_size); | 65 | 1.70M | return tx_size_wide[tx_size]; | 66 | 1.70M | } |
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 Line | Count | Source | 63 | 797k | static INLINE int get_txb_wide(TX_SIZE tx_size) { | 64 | 797k | tx_size = av1_get_adjusted_tx_size(tx_size); | 65 | 797k | return tx_size_wide[tx_size]; | 66 | 797k | } |
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 Line | Count | Source | 63 | 354k | static INLINE int get_txb_wide(TX_SIZE tx_size) { | 64 | 354k | tx_size = av1_get_adjusted_tx_size(tx_size); | 65 | 354k | return tx_size_wide[tx_size]; | 66 | 354k | } |
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 | 3.02M | static INLINE int get_txb_high(TX_SIZE tx_size) { |
69 | 3.02M | tx_size = av1_get_adjusted_tx_size(tx_size); |
70 | 3.02M | return tx_size_high[tx_size]; |
71 | 3.02M | } Line | Count | Source | 68 | 1.70M | static INLINE int get_txb_high(TX_SIZE tx_size) { | 69 | 1.70M | tx_size = av1_get_adjusted_tx_size(tx_size); | 70 | 1.70M | return tx_size_high[tx_size]; | 71 | 1.70M | } |
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 Line | Count | Source | 68 | 961k | static INLINE int get_txb_high(TX_SIZE tx_size) { | 69 | 961k | tx_size = av1_get_adjusted_tx_size(tx_size); | 70 | 961k | return tx_size_high[tx_size]; | 71 | 961k | } |
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 Line | Count | Source | 68 | 354k | static INLINE int get_txb_high(TX_SIZE tx_size) { | 69 | 354k | tx_size = av1_get_adjusted_tx_size(tx_size); | 70 | 354k | return tx_size_high[tx_size]; | 71 | 354k | } |
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 | 2.06M | static INLINE uint8_t *set_levels(uint8_t *const levels_buf, const int width) { |
74 | 2.06M | return levels_buf + TX_PAD_TOP * (width + TX_PAD_HOR); |
75 | 2.06M | } Line | Count | Source | 73 | 1.70M | static INLINE uint8_t *set_levels(uint8_t *const levels_buf, const int width) { | 74 | 1.70M | return levels_buf + TX_PAD_TOP * (width + TX_PAD_HOR); | 75 | 1.70M | } |
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 Line | Count | Source | 73 | 10.4k | static INLINE uint8_t *set_levels(uint8_t *const levels_buf, const int width) { | 74 | 10.4k | return levels_buf + TX_PAD_TOP * (width + TX_PAD_HOR); | 75 | 10.4k | } |
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 Line | Count | Source | 73 | 354k | static INLINE uint8_t *set_levels(uint8_t *const levels_buf, const int width) { | 74 | 354k | return levels_buf + TX_PAD_TOP * (width + TX_PAD_HOR); | 75 | 354k | } |
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 | 52.9M | static INLINE int get_padded_idx(const int idx, const int bwl) { |
78 | 52.9M | return idx + ((idx >> bwl) << TX_PAD_HOR_LOG2); |
79 | 52.9M | } decodetxb.c:get_padded_idx Line | Count | Source | 77 | 50.1M | static INLINE int get_padded_idx(const int idx, const int bwl) { | 78 | 50.1M | return idx + ((idx >> bwl) << TX_PAD_HOR_LOG2); | 79 | 50.1M | } |
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 encodetxb.c:get_padded_idx Line | Count | Source | 77 | 1.17M | static INLINE int get_padded_idx(const int idx, const int bwl) { | 78 | 1.17M | return idx + ((idx >> bwl) << TX_PAD_HOR_LOG2); | 79 | 1.17M | } |
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 txb_rdopt.c:get_padded_idx Line | Count | Source | 77 | 1.62M | static INLINE int get_padded_idx(const int idx, const int bwl) { | 78 | 1.62M | return idx + ((idx >> bwl) << TX_PAD_HOR_LOG2); | 79 | 1.62M | } |
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 | 2.32M | const int bwl) { |
149 | 2.32M | assert(c > 0); |
150 | 2.32M | const int row = c >> bwl; |
151 | 2.32M | const int col = c - (row << bwl); |
152 | 2.32M | const int stride = (1 << bwl) + TX_PAD_HOR; |
153 | 2.32M | const int pos = row * stride + col; |
154 | 2.32M | int mag = AOMMIN(levels[pos + 1], MAX_BASE_BR_RANGE) + |
155 | 2.32M | AOMMIN(levels[pos + stride], MAX_BASE_BR_RANGE) + |
156 | 2.32M | AOMMIN(levels[pos + 1 + stride], MAX_BASE_BR_RANGE); |
157 | 2.32M | mag = AOMMIN((mag + 1) >> 1, 6); |
158 | | //((row | col) < 2) is equivalent to ((row < 2) && (col < 2)) |
159 | 2.32M | if ((row | col) < 2) return mag + 7; |
160 | 2.20M | return mag + 14; |
161 | 2.32M | } decodetxb.c:get_br_ctx_2d Line | Count | Source | 148 | 2.32M | const int bwl) { | 149 | 2.32M | assert(c > 0); | 150 | 2.32M | const int row = c >> bwl; | 151 | 2.32M | const int col = c - (row << bwl); | 152 | 2.32M | const int stride = (1 << bwl) + TX_PAD_HOR; | 153 | 2.32M | const int pos = row * stride + col; | 154 | 2.32M | int mag = AOMMIN(levels[pos + 1], MAX_BASE_BR_RANGE) + | 155 | 2.32M | AOMMIN(levels[pos + stride], MAX_BASE_BR_RANGE) + | 156 | 2.32M | AOMMIN(levels[pos + 1 + stride], MAX_BASE_BR_RANGE); | 157 | 2.32M | mag = AOMMIN((mag + 1) >> 1, 6); | 158 | | //((row | col) < 2) is equivalent to ((row < 2) && (col < 2)) | 159 | 2.32M | if ((row | col) < 2) return mag + 7; | 160 | 2.20M | return mag + 14; | 161 | 2.32M | } |
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 | 352k | const TX_CLASS tx_class) { |
166 | 352k | const int row = c >> bwl; |
167 | 352k | const int col = c - (row << bwl); |
168 | 352k | if (c == 0) return 0; |
169 | 75.1k | if ((tx_class == TX_CLASS_2D && row < 2 && col < 2) || |
170 | 75.1k | (tx_class == TX_CLASS_HORIZ && col == 0) || |
171 | 75.1k | (tx_class == TX_CLASS_VERT && row == 0)) |
172 | 12.6k | return 7; |
173 | 62.5k | return 14; |
174 | 75.1k | } decodetxb.c:get_br_ctx_eob Line | Count | Source | 165 | 17.2k | const TX_CLASS tx_class) { | 166 | 17.2k | const int row = c >> bwl; | 167 | 17.2k | const int col = c - (row << bwl); | 168 | 17.2k | if (c == 0) return 0; | 169 | 4.68k | if ((tx_class == TX_CLASS_2D && row < 2 && col < 2) || | 170 | 4.68k | (tx_class == TX_CLASS_HORIZ && col == 0) || | 171 | 4.68k | (tx_class == TX_CLASS_VERT && row == 0)) | 172 | 662 | return 7; | 173 | 4.02k | return 14; | 174 | 4.68k | } |
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 txb_rdopt.c:get_br_ctx_eob Line | Count | Source | 165 | 335k | const TX_CLASS tx_class) { | 166 | 335k | const int row = c >> bwl; | 167 | 335k | const int col = c - (row << bwl); | 168 | 335k | if (c == 0) return 0; | 169 | 70.4k | if ((tx_class == TX_CLASS_2D && row < 2 && col < 2) || | 170 | 70.4k | (tx_class == TX_CLASS_HORIZ && col == 0) || | 171 | 70.4k | (tx_class == TX_CLASS_VERT && row == 0)) | 172 | 11.9k | return 7; | 173 | 58.5k | return 14; | 174 | 70.4k | } |
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 | 623k | const int bwl, const TX_CLASS tx_class) { |
179 | 623k | const int row = c >> bwl; |
180 | 623k | const int col = c - (row << bwl); |
181 | 623k | const int stride = (1 << bwl) + TX_PAD_HOR; |
182 | 623k | const int pos = row * stride + col; |
183 | 623k | int mag = levels[pos + 1]; |
184 | 623k | mag += levels[pos + stride]; |
185 | 623k | switch (tx_class) { |
186 | 585k | case TX_CLASS_2D: |
187 | 585k | mag += levels[pos + stride + 1]; |
188 | 585k | mag = AOMMIN((mag + 1) >> 1, 6); |
189 | 585k | if (c == 0) return mag; |
190 | 331k | if ((row < 2) && (col < 2)) return mag + 7; |
191 | 283k | break; |
192 | 283k | case TX_CLASS_HORIZ: |
193 | 25.7k | mag += levels[pos + 2]; |
194 | 25.7k | mag = AOMMIN((mag + 1) >> 1, 6); |
195 | 25.7k | if (c == 0) return mag; |
196 | 21.1k | if (col == 0) return mag + 7; |
197 | 8.85k | break; |
198 | 12.5k | case TX_CLASS_VERT: |
199 | 12.5k | mag += levels[pos + (stride << 1)]; |
200 | 12.5k | mag = AOMMIN((mag + 1) >> 1, 6); |
201 | 12.5k | if (c == 0) return mag; |
202 | 11.1k | if (row == 0) return mag + 7; |
203 | 5.97k | break; |
204 | 5.97k | default: break; |
205 | 623k | } |
206 | | |
207 | 298k | return mag + 14; |
208 | 623k | } Line | Count | Source | 178 | 196k | const int bwl, const TX_CLASS tx_class) { | 179 | 196k | const int row = c >> bwl; | 180 | 196k | const int col = c - (row << bwl); | 181 | 196k | const int stride = (1 << bwl) + TX_PAD_HOR; | 182 | 196k | const int pos = row * stride + col; | 183 | 196k | int mag = levels[pos + 1]; | 184 | 196k | mag += levels[pos + stride]; | 185 | 196k | switch (tx_class) { | 186 | 166k | case TX_CLASS_2D: | 187 | 166k | mag += levels[pos + stride + 1]; | 188 | 166k | mag = AOMMIN((mag + 1) >> 1, 6); | 189 | 166k | if (c == 0) return mag; | 190 | 0 | if ((row < 2) && (col < 2)) return mag + 7; | 191 | 0 | break; | 192 | 17.6k | case TX_CLASS_HORIZ: | 193 | 17.6k | mag += levels[pos + 2]; | 194 | 17.6k | mag = AOMMIN((mag + 1) >> 1, 6); | 195 | 17.6k | if (c == 0) return mag; | 196 | 15.6k | if (col == 0) return mag + 7; | 197 | 8.85k | break; | 198 | 12.3k | case TX_CLASS_VERT: | 199 | 12.3k | mag += levels[pos + (stride << 1)]; | 200 | 12.3k | mag = AOMMIN((mag + 1) >> 1, 6); | 201 | 12.3k | if (c == 0) return mag; | 202 | 11.0k | if (row == 0) return mag + 7; | 203 | 5.97k | break; | 204 | 5.97k | default: break; | 205 | 196k | } | 206 | | | 207 | 14.8k | return mag + 14; | 208 | 196k | } |
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 Line | Count | Source | 178 | 7.57k | const int bwl, const TX_CLASS tx_class) { | 179 | 7.57k | const int row = c >> bwl; | 180 | 7.57k | const int col = c - (row << bwl); | 181 | 7.57k | const int stride = (1 << bwl) + TX_PAD_HOR; | 182 | 7.57k | const int pos = row * stride + col; | 183 | 7.57k | int mag = levels[pos + 1]; | 184 | 7.57k | mag += levels[pos + stride]; | 185 | 7.57k | switch (tx_class) { | 186 | 7.57k | case TX_CLASS_2D: | 187 | 7.57k | mag += levels[pos + stride + 1]; | 188 | 7.57k | mag = AOMMIN((mag + 1) >> 1, 6); | 189 | 7.57k | if (c == 0) return mag; | 190 | 0 | if ((row < 2) && (col < 2)) return mag + 7; | 191 | 0 | break; | 192 | 0 | case TX_CLASS_HORIZ: | 193 | 0 | mag += levels[pos + 2]; | 194 | 0 | mag = AOMMIN((mag + 1) >> 1, 6); | 195 | 0 | if (c == 0) return mag; | 196 | 0 | if (col == 0) return mag + 7; | 197 | 0 | break; | 198 | 0 | case TX_CLASS_VERT: | 199 | 0 | mag += levels[pos + (stride << 1)]; | 200 | 0 | mag = AOMMIN((mag + 1) >> 1, 6); | 201 | 0 | if (c == 0) return mag; | 202 | 0 | if (row == 0) return mag + 7; | 203 | 0 | break; | 204 | 0 | default: break; | 205 | 7.57k | } | 206 | | | 207 | 0 | return mag + 14; | 208 | 7.57k | } |
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 Line | Count | Source | 178 | 419k | const int bwl, const TX_CLASS tx_class) { | 179 | 419k | const int row = c >> bwl; | 180 | 419k | const int col = c - (row << bwl); | 181 | 419k | const int stride = (1 << bwl) + TX_PAD_HOR; | 182 | 419k | const int pos = row * stride + col; | 183 | 419k | int mag = levels[pos + 1]; | 184 | 419k | mag += levels[pos + stride]; | 185 | 419k | switch (tx_class) { | 186 | 411k | case TX_CLASS_2D: | 187 | 411k | mag += levels[pos + stride + 1]; | 188 | 411k | mag = AOMMIN((mag + 1) >> 1, 6); | 189 | 411k | if (c == 0) return mag; | 190 | 331k | if ((row < 2) && (col < 2)) return mag + 7; | 191 | 283k | break; | 192 | 283k | case TX_CLASS_HORIZ: | 193 | 8.06k | mag += levels[pos + 2]; | 194 | 8.06k | mag = AOMMIN((mag + 1) >> 1, 6); | 195 | 8.06k | if (c == 0) return mag; | 196 | 5.48k | if (col == 0) return mag + 7; | 197 | 0 | break; | 198 | 170 | case TX_CLASS_VERT: | 199 | 170 | mag += levels[pos + (stride << 1)]; | 200 | 170 | mag = AOMMIN((mag + 1) >> 1, 6); | 201 | 170 | if (c == 0) return mag; | 202 | 136 | if (row == 0) return mag + 7; | 203 | 0 | break; | 204 | 0 | default: break; | 205 | 419k | } | 206 | | | 207 | 283k | return mag + 14; | 208 | 419k | } |
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 | 4.20M | const int bwl, const TX_CLASS tx_class) { |
225 | 4.20M | int mag; |
226 | | |
227 | | // Note: AOMMIN(level, 3) is useless for decoder since level < 3. |
228 | 4.20M | mag = clip_max3[levels[1]]; // { 0, 1 } |
229 | 4.20M | mag += clip_max3[levels[(1 << bwl) + TX_PAD_HOR]]; // { 1, 0 } |
230 | | |
231 | 4.20M | if (tx_class == TX_CLASS_2D) { |
232 | 3.27M | mag += clip_max3[levels[(1 << bwl) + TX_PAD_HOR + 1]]; // { 1, 1 } |
233 | 3.27M | mag += clip_max3[levels[2]]; // { 0, 2 } |
234 | 3.27M | mag += clip_max3[levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)]]; // { 2, 0 } |
235 | 3.27M | } else if (tx_class == TX_CLASS_VERT) { |
236 | 391k | mag += clip_max3[levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)]]; // { 2, 0 } |
237 | 391k | mag += clip_max3[levels[(3 << bwl) + (3 << TX_PAD_HOR_LOG2)]]; // { 3, 0 } |
238 | 391k | mag += clip_max3[levels[(4 << bwl) + (4 << TX_PAD_HOR_LOG2)]]; // { 4, 0 } |
239 | 538k | } else { |
240 | 538k | mag += clip_max3[levels[2]]; // { 0, 2 } |
241 | 538k | mag += clip_max3[levels[3]]; // { 0, 3 } |
242 | 538k | mag += clip_max3[levels[4]]; // { 0, 4 } |
243 | 538k | } |
244 | | |
245 | 4.20M | return mag; |
246 | 4.20M | } Line | Count | Source | 224 | 1.41M | const int bwl, const TX_CLASS tx_class) { | 225 | 1.41M | int mag; | 226 | | | 227 | | // Note: AOMMIN(level, 3) is useless for decoder since level < 3. | 228 | 1.41M | mag = clip_max3[levels[1]]; // { 0, 1 } | 229 | 1.41M | mag += clip_max3[levels[(1 << bwl) + TX_PAD_HOR]]; // { 1, 0 } | 230 | | | 231 | 1.41M | if (tx_class == TX_CLASS_2D) { | 232 | 495k | mag += clip_max3[levels[(1 << bwl) + TX_PAD_HOR + 1]]; // { 1, 1 } | 233 | 495k | mag += clip_max3[levels[2]]; // { 0, 2 } | 234 | 495k | mag += clip_max3[levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)]]; // { 2, 0 } | 235 | 921k | } else if (tx_class == TX_CLASS_VERT) { | 236 | 391k | mag += clip_max3[levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)]]; // { 2, 0 } | 237 | 391k | mag += clip_max3[levels[(3 << bwl) + (3 << TX_PAD_HOR_LOG2)]]; // { 3, 0 } | 238 | 391k | mag += clip_max3[levels[(4 << bwl) + (4 << TX_PAD_HOR_LOG2)]]; // { 4, 0 } | 239 | 529k | } else { | 240 | 529k | mag += clip_max3[levels[2]]; // { 0, 2 } | 241 | 529k | mag += clip_max3[levels[3]]; // { 0, 3 } | 242 | 529k | mag += clip_max3[levels[4]]; // { 0, 4 } | 243 | 529k | } | 244 | | | 245 | 1.41M | return mag; | 246 | 1.41M | } |
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 Line | Count | Source | 224 | 1.17M | const int bwl, const TX_CLASS tx_class) { | 225 | 1.17M | int mag; | 226 | | | 227 | | // Note: AOMMIN(level, 3) is useless for decoder since level < 3. | 228 | 1.17M | mag = clip_max3[levels[1]]; // { 0, 1 } | 229 | 1.17M | mag += clip_max3[levels[(1 << bwl) + TX_PAD_HOR]]; // { 1, 0 } | 230 | | | 231 | 1.17M | if (tx_class == TX_CLASS_2D) { | 232 | 1.17M | mag += clip_max3[levels[(1 << bwl) + TX_PAD_HOR + 1]]; // { 1, 1 } | 233 | 1.17M | mag += clip_max3[levels[2]]; // { 0, 2 } | 234 | 1.17M | mag += clip_max3[levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)]]; // { 2, 0 } | 235 | 1.17M | } else if (tx_class == TX_CLASS_VERT) { | 236 | 0 | mag += clip_max3[levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)]]; // { 2, 0 } | 237 | 0 | mag += clip_max3[levels[(3 << bwl) + (3 << TX_PAD_HOR_LOG2)]]; // { 3, 0 } | 238 | 0 | mag += clip_max3[levels[(4 << bwl) + (4 << TX_PAD_HOR_LOG2)]]; // { 4, 0 } | 239 | 0 | } else { | 240 | 0 | mag += clip_max3[levels[2]]; // { 0, 2 } | 241 | 0 | mag += clip_max3[levels[3]]; // { 0, 3 } | 242 | 0 | mag += clip_max3[levels[4]]; // { 0, 4 } | 243 | 0 | } | 244 | | | 245 | 1.17M | return mag; | 246 | 1.17M | } |
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 Line | Count | Source | 224 | 1.60M | const int bwl, const TX_CLASS tx_class) { | 225 | 1.60M | int mag; | 226 | | | 227 | | // Note: AOMMIN(level, 3) is useless for decoder since level < 3. | 228 | 1.60M | mag = clip_max3[levels[1]]; // { 0, 1 } | 229 | 1.60M | mag += clip_max3[levels[(1 << bwl) + TX_PAD_HOR]]; // { 1, 0 } | 230 | | | 231 | 1.60M | if (tx_class == TX_CLASS_2D) { | 232 | 1.59M | mag += clip_max3[levels[(1 << bwl) + TX_PAD_HOR + 1]]; // { 1, 1 } | 233 | 1.59M | mag += clip_max3[levels[2]]; // { 0, 2 } | 234 | 1.59M | mag += clip_max3[levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)]]; // { 2, 0 } | 235 | 1.59M | } else if (tx_class == TX_CLASS_VERT) { | 236 | 196 | mag += clip_max3[levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)]]; // { 2, 0 } | 237 | 196 | mag += clip_max3[levels[(3 << bwl) + (3 << TX_PAD_HOR_LOG2)]]; // { 3, 0 } | 238 | 196 | mag += clip_max3[levels[(4 << bwl) + (4 << TX_PAD_HOR_LOG2)]]; // { 4, 0 } | 239 | 8.39k | } else { | 240 | 8.39k | mag += clip_max3[levels[2]]; // { 0, 2 } | 241 | 8.39k | mag += clip_max3[levels[3]]; // { 0, 3 } | 242 | 8.39k | mag += clip_max3[levels[4]]; // { 0, 4 } | 243 | 8.39k | } | 244 | | | 245 | 1.60M | return mag; | 246 | 1.60M | } |
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 | 4.20M | const int bwl, const TX_SIZE tx_size, const TX_CLASS tx_class) { |
266 | | // tx_class == 0(TX_CLASS_2D) |
267 | 4.20M | if ((tx_class | coeff_idx) == 0) return 0; |
268 | 3.65M | int ctx = (stats + 1) >> 1; |
269 | 3.65M | ctx = AOMMIN(ctx, 4); |
270 | 3.65M | switch (tx_class) { |
271 | 2.72M | 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 | 2.72M | return ctx + av1_nz_map_ctx_offset[tx_size][coeff_idx]; |
284 | 0 | } |
285 | 538k | case TX_CLASS_HORIZ: { |
286 | 538k | const int row = coeff_idx >> bwl; |
287 | 538k | const int col = coeff_idx - (row << bwl); |
288 | 538k | return ctx + nz_map_ctx_offset_1d[col]; |
289 | 0 | } |
290 | 391k | case TX_CLASS_VERT: { |
291 | 391k | const int row = coeff_idx >> bwl; |
292 | 391k | return ctx + nz_map_ctx_offset_1d[row]; |
293 | 0 | } |
294 | 0 | default: break; |
295 | 3.65M | } |
296 | 0 | return 0; |
297 | 3.65M | } decodetxb.c:get_nz_map_ctx_from_stats Line | Count | Source | 265 | 1.41M | const int bwl, const TX_SIZE tx_size, const TX_CLASS tx_class) { | 266 | | // tx_class == 0(TX_CLASS_2D) | 267 | 1.41M | if ((tx_class | coeff_idx) == 0) return 0; | 268 | 921k | int ctx = (stats + 1) >> 1; | 269 | 921k | ctx = AOMMIN(ctx, 4); | 270 | 921k | 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 | 529k | case TX_CLASS_HORIZ: { | 286 | 529k | const int row = coeff_idx >> bwl; | 287 | 529k | const int col = coeff_idx - (row << bwl); | 288 | 529k | return ctx + nz_map_ctx_offset_1d[col]; | 289 | 0 | } | 290 | 391k | case TX_CLASS_VERT: { | 291 | 391k | const int row = coeff_idx >> bwl; | 292 | 391k | return ctx + nz_map_ctx_offset_1d[row]; | 293 | 0 | } | 294 | 0 | default: break; | 295 | 921k | } | 296 | 0 | return 0; | 297 | 921k | } |
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 encodetxb.c:get_nz_map_ctx_from_stats Line | Count | Source | 265 | 1.17M | const int bwl, const TX_SIZE tx_size, const TX_CLASS tx_class) { | 266 | | // tx_class == 0(TX_CLASS_2D) | 267 | 1.17M | if ((tx_class | coeff_idx) == 0) return 0; | 268 | 1.15M | int ctx = (stats + 1) >> 1; | 269 | 1.15M | ctx = AOMMIN(ctx, 4); | 270 | 1.15M | switch (tx_class) { | 271 | 1.15M | 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 | 1.15M | return ctx + av1_nz_map_ctx_offset[tx_size][coeff_idx]; | 284 | 0 | } | 285 | 0 | case TX_CLASS_HORIZ: { | 286 | 0 | const int row = coeff_idx >> bwl; | 287 | 0 | const int col = coeff_idx - (row << bwl); | 288 | 0 | return ctx + nz_map_ctx_offset_1d[col]; | 289 | 0 | } | 290 | 0 | case TX_CLASS_VERT: { | 291 | 0 | const int row = coeff_idx >> bwl; | 292 | 0 | return ctx + nz_map_ctx_offset_1d[row]; | 293 | 0 | } | 294 | 0 | default: break; | 295 | 1.15M | } | 296 | 0 | return 0; | 297 | 1.15M | } |
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 txb_rdopt.c:get_nz_map_ctx_from_stats Line | Count | Source | 265 | 1.60M | const int bwl, const TX_SIZE tx_size, const TX_CLASS tx_class) { | 266 | | // tx_class == 0(TX_CLASS_2D) | 267 | 1.60M | if ((tx_class | coeff_idx) == 0) return 0; | 268 | 1.57M | int ctx = (stats + 1) >> 1; | 269 | 1.57M | ctx = AOMMIN(ctx, 4); | 270 | 1.57M | switch (tx_class) { | 271 | 1.56M | 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 | 1.56M | return ctx + av1_nz_map_ctx_offset[tx_size][coeff_idx]; | 284 | 0 | } | 285 | 8.39k | case TX_CLASS_HORIZ: { | 286 | 8.39k | const int row = coeff_idx >> bwl; | 287 | 8.39k | const int col = coeff_idx - (row << bwl); | 288 | 8.39k | return ctx + nz_map_ctx_offset_1d[col]; | 289 | 0 | } | 290 | 196 | case TX_CLASS_VERT: { | 291 | 196 | const int row = coeff_idx >> bwl; | 292 | 196 | return ctx + nz_map_ctx_offset_1d[row]; | 293 | 0 | } | 294 | 0 | default: break; | 295 | 1.57M | } | 296 | 0 | return 0; | 297 | 1.57M | } |
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 | 961k | static INLINE int get_lower_levels_ctx_eob(int bwl, int height, int scan_idx) { |
303 | 961k | if (scan_idx == 0) return 0; |
304 | 617k | if (scan_idx <= (height << bwl) / 8) return 1; |
305 | 306k | if (scan_idx <= (height << bwl) / 4) return 2; |
306 | 211k | return 3; |
307 | 306k | } decodetxb.c:get_lower_levels_ctx_eob Line | Count | Source | 302 | 771k | static INLINE int get_lower_levels_ctx_eob(int bwl, int height, int scan_idx) { | 303 | 771k | if (scan_idx == 0) return 0; | 304 | 540k | if (scan_idx <= (height << bwl) / 8) return 1; | 305 | 250k | if (scan_idx <= (height << bwl) / 4) return 2; | 306 | 169k | return 3; | 307 | 250k | } |
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 txb_rdopt.c:get_lower_levels_ctx_eob Line | Count | Source | 302 | 189k | static INLINE int get_lower_levels_ctx_eob(int bwl, int height, int scan_idx) { | 303 | 189k | if (scan_idx == 0) return 0; | 304 | 77.0k | if (scan_idx <= (height << bwl) / 8) return 1; | 305 | 56.7k | if (scan_idx <= (height << bwl) / 4) return 2; | 306 | 41.7k | return 3; | 307 | 56.7k | } |
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 | 14.7M | int bwl, TX_SIZE tx_size) { |
311 | 14.7M | assert(coeff_idx > 0); |
312 | 14.7M | int mag; |
313 | | // Note: AOMMIN(level, 3) is useless for decoder since level < 3. |
314 | 14.7M | levels = levels + get_padded_idx(coeff_idx, bwl); |
315 | 14.7M | mag = AOMMIN(levels[1], 3); // { 0, 1 } |
316 | 14.7M | mag += AOMMIN(levels[(1 << bwl) + TX_PAD_HOR], 3); // { 1, 0 } |
317 | 14.7M | mag += AOMMIN(levels[(1 << bwl) + TX_PAD_HOR + 1], 3); // { 1, 1 } |
318 | 14.7M | mag += AOMMIN(levels[2], 3); // { 0, 2 } |
319 | 14.7M | mag += AOMMIN(levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)], 3); // { 2, 0 } |
320 | | |
321 | 14.7M | const int ctx = AOMMIN((mag + 1) >> 1, 4); |
322 | 14.7M | return ctx + av1_nz_map_ctx_offset[tx_size][coeff_idx]; |
323 | 14.7M | } decodetxb.c:get_lower_levels_ctx_2d Line | Count | Source | 310 | 14.7M | int bwl, TX_SIZE tx_size) { | 311 | 14.7M | assert(coeff_idx > 0); | 312 | 14.7M | int mag; | 313 | | // Note: AOMMIN(level, 3) is useless for decoder since level < 3. | 314 | 14.7M | levels = levels + get_padded_idx(coeff_idx, bwl); | 315 | 14.7M | mag = AOMMIN(levels[1], 3); // { 0, 1 } | 316 | 14.7M | mag += AOMMIN(levels[(1 << bwl) + TX_PAD_HOR], 3); // { 1, 0 } | 317 | 14.7M | mag += AOMMIN(levels[(1 << bwl) + TX_PAD_HOR + 1], 3); // { 1, 1 } | 318 | 14.7M | mag += AOMMIN(levels[2], 3); // { 0, 2 } | 319 | 14.7M | mag += AOMMIN(levels[(2 << bwl) + (2 << TX_PAD_HOR_LOG2)], 3); // { 2, 0 } | 320 | | | 321 | 14.7M | const int ctx = AOMMIN((mag + 1) >> 1, 4); | 322 | 14.7M | return ctx + av1_nz_map_ctx_offset[tx_size][coeff_idx]; | 323 | 14.7M | } |
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 | 3.02M | TX_CLASS tx_class) { |
328 | 3.02M | const int stats = |
329 | 3.02M | get_nz_mag(levels + get_padded_idx(coeff_idx, bwl), bwl, tx_class); |
330 | 3.02M | return get_nz_map_ctx_from_stats(stats, coeff_idx, bwl, tx_size, tx_class); |
331 | 3.02M | } decodetxb.c:get_lower_levels_ctx Line | Count | Source | 327 | 1.41M | TX_CLASS tx_class) { | 328 | 1.41M | const int stats = | 329 | 1.41M | get_nz_mag(levels + get_padded_idx(coeff_idx, bwl), bwl, tx_class); | 330 | 1.41M | return get_nz_map_ctx_from_stats(stats, coeff_idx, bwl, tx_size, tx_class); | 331 | 1.41M | } |
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 txb_rdopt.c:get_lower_levels_ctx Line | Count | Source | 327 | 1.60M | TX_CLASS tx_class) { | 328 | 1.60M | const int stats = | 329 | 1.60M | get_nz_mag(levels + get_padded_idx(coeff_idx, bwl), bwl, tx_class); | 330 | 1.60M | return get_nz_map_ctx_from_stats(stats, coeff_idx, bwl, tx_size, tx_class); | 331 | 1.60M | } |
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 | 102k | TX_CLASS tx_class) { |
338 | 102k | if (is_last) { |
339 | 76.8k | if (scan_idx == 0) return 0; |
340 | 14.1k | if (scan_idx <= (height << bwl) >> 3) return 1; |
341 | 13.0k | if (scan_idx <= (height << bwl) >> 2) return 2; |
342 | 11.0k | return 3; |
343 | 13.0k | } |
344 | 25.3k | return get_lower_levels_ctx(levels, coeff_idx, bwl, tx_size, tx_class); |
345 | 102k | } 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 txb_rdopt.c:get_lower_levels_ctx_general Line | Count | Source | 337 | 102k | TX_CLASS tx_class) { | 338 | 102k | if (is_last) { | 339 | 76.8k | if (scan_idx == 0) return 0; | 340 | 14.1k | if (scan_idx <= (height << bwl) >> 3) return 1; | 341 | 13.0k | if (scan_idx <= (height << bwl) >> 2) return 2; | 342 | 11.0k | return 3; | 343 | 13.0k | } | 344 | 25.3k | return get_lower_levels_ctx(levels, coeff_idx, bwl, tx_size, tx_class); | 345 | 102k | } |
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 | 1.14M | static INLINE void set_dc_sign(int *cul_level, int dc_val) { |
348 | 1.14M | if (dc_val < 0) |
349 | 670k | *cul_level |= 1 << COEFF_CONTEXT_BITS; |
350 | 470k | else if (dc_val > 0) |
351 | 328k | *cul_level += 2 << COEFF_CONTEXT_BITS; |
352 | 1.14M | } Line | Count | Source | 347 | 771k | static INLINE void set_dc_sign(int *cul_level, int dc_val) { | 348 | 771k | if (dc_val < 0) | 349 | 300k | *cul_level |= 1 << COEFF_CONTEXT_BITS; | 350 | 470k | else if (dc_val > 0) | 351 | 328k | *cul_level += 2 << COEFF_CONTEXT_BITS; | 352 | 771k | } |
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 Line | Count | Source | 347 | 369k | static INLINE void set_dc_sign(int *cul_level, int dc_val) { | 348 | 369k | if (dc_val < 0) | 349 | 369k | *cul_level |= 1 << COEFF_CONTEXT_BITS; | 350 | 5 | else if (dc_val > 0) | 351 | 0 | *cul_level += 2 << COEFF_CONTEXT_BITS; | 352 | 369k | } |
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 | 47.1M | TXB_CTX *const txb_ctx) { |
359 | 47.1M | #define MAX_TX_SIZE_UNIT 16 |
360 | 47.1M | static const int8_t signs[3] = { 0, -1, 1 }; |
361 | 47.1M | static const int8_t dc_sign_contexts[4 * MAX_TX_SIZE_UNIT + 1] = { |
362 | 47.1M | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
363 | 47.1M | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
364 | 47.1M | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 |
365 | 47.1M | }; |
366 | 47.1M | const int txb_w_unit = tx_size_wide_unit[tx_size]; |
367 | 47.1M | const int txb_h_unit = tx_size_high_unit[tx_size]; |
368 | 47.1M | int dc_sign = 0; |
369 | 47.1M | int k = 0; |
370 | | |
371 | 63.7M | do { |
372 | 63.7M | const unsigned int sign = ((uint8_t)a[k]) >> COEFF_CONTEXT_BITS; |
373 | 63.7M | assert(sign <= 2); |
374 | 63.7M | dc_sign += signs[sign]; |
375 | 63.7M | } while (++k < txb_w_unit); |
376 | | |
377 | 47.1M | k = 0; |
378 | 64.0M | do { |
379 | 64.0M | const unsigned int sign = ((uint8_t)l[k]) >> COEFF_CONTEXT_BITS; |
380 | 64.0M | assert(sign <= 2); |
381 | 64.0M | dc_sign += signs[sign]; |
382 | 64.0M | } while (++k < txb_h_unit); |
383 | | |
384 | 47.1M | txb_ctx->dc_sign_ctx = dc_sign_contexts[dc_sign + 2 * MAX_TX_SIZE_UNIT]; |
385 | | |
386 | 47.1M | if (plane == 0) { |
387 | 44.5M | if (plane_bsize == txsize_to_bsize[tx_size]) { |
388 | 3.22M | txb_ctx->txb_skip_ctx = 0; |
389 | 41.3M | } 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 | 41.3M | static const uint8_t skip_contexts[5][5] = { { 1, 2, 2, 2, 3 }, |
404 | 41.3M | { 2, 4, 4, 4, 5 }, |
405 | 41.3M | { 2, 4, 4, 4, 5 }, |
406 | 41.3M | { 2, 4, 4, 4, 5 }, |
407 | 41.3M | { 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 | 41.3M | int top = 0; |
414 | 41.3M | int left = 0; |
415 | | |
416 | 41.3M | k = 0; |
417 | 42.8M | do { |
418 | 42.8M | top |= a[k]; |
419 | 42.8M | } while (++k < txb_w_unit); |
420 | 41.3M | top &= COEFF_CONTEXT_MASK; |
421 | 41.3M | top = AOMMIN(top, 4); |
422 | | |
423 | 41.3M | k = 0; |
424 | 42.8M | do { |
425 | 42.8M | left |= l[k]; |
426 | 42.8M | } while (++k < txb_h_unit); |
427 | 41.3M | left &= COEFF_CONTEXT_MASK; |
428 | 41.3M | left = AOMMIN(left, 4); |
429 | | |
430 | 41.3M | txb_ctx->txb_skip_ctx = skip_contexts[top][left]; |
431 | 41.3M | } |
432 | 44.5M | } else { |
433 | 2.57M | const int ctx_base = get_entropy_context(tx_size, a, l); |
434 | 2.57M | const int ctx_offset = (num_pels_log2_lookup[plane_bsize] > |
435 | 2.57M | num_pels_log2_lookup[txsize_to_bsize[tx_size]]) |
436 | 2.57M | ? 10 |
437 | 2.57M | : 7; |
438 | 2.57M | txb_ctx->txb_skip_ctx = ctx_base + ctx_offset; |
439 | 2.57M | } |
440 | 47.1M | #undef MAX_TX_SIZE_UNIT |
441 | 47.1M | } Line | Count | Source | 358 | 1.70M | TXB_CTX *const txb_ctx) { | 359 | 1.70M | #define MAX_TX_SIZE_UNIT 16 | 360 | 1.70M | static const int8_t signs[3] = { 0, -1, 1 }; | 361 | 1.70M | static const int8_t dc_sign_contexts[4 * MAX_TX_SIZE_UNIT + 1] = { | 362 | 1.70M | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 363 | 1.70M | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 364 | 1.70M | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 | 365 | 1.70M | }; | 366 | 1.70M | const int txb_w_unit = tx_size_wide_unit[tx_size]; | 367 | 1.70M | const int txb_h_unit = tx_size_high_unit[tx_size]; | 368 | 1.70M | int dc_sign = 0; | 369 | 1.70M | int k = 0; | 370 | | | 371 | 5.86M | do { | 372 | 5.86M | const unsigned int sign = ((uint8_t)a[k]) >> COEFF_CONTEXT_BITS; | 373 | 5.86M | assert(sign <= 2); | 374 | 5.86M | dc_sign += signs[sign]; | 375 | 5.86M | } while (++k < txb_w_unit); | 376 | | | 377 | 1.70M | k = 0; | 378 | 6.10M | do { | 379 | 6.10M | const unsigned int sign = ((uint8_t)l[k]) >> COEFF_CONTEXT_BITS; | 380 | 6.10M | assert(sign <= 2); | 381 | 6.10M | dc_sign += signs[sign]; | 382 | 6.10M | } while (++k < txb_h_unit); | 383 | | | 384 | 1.70M | txb_ctx->dc_sign_ctx = dc_sign_contexts[dc_sign + 2 * MAX_TX_SIZE_UNIT]; | 385 | | | 386 | 1.70M | if (plane == 0) { | 387 | 764k | if (plane_bsize == txsize_to_bsize[tx_size]) { | 388 | 451k | txb_ctx->txb_skip_ctx = 0; | 389 | 451k | } 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 | 312k | static const uint8_t skip_contexts[5][5] = { { 1, 2, 2, 2, 3 }, | 404 | 312k | { 2, 4, 4, 4, 5 }, | 405 | 312k | { 2, 4, 4, 4, 5 }, | 406 | 312k | { 2, 4, 4, 4, 5 }, | 407 | 312k | { 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 | 312k | int top = 0; | 414 | 312k | int left = 0; | 415 | | | 416 | 312k | k = 0; | 417 | 1.16M | do { | 418 | 1.16M | top |= a[k]; | 419 | 1.16M | } while (++k < txb_w_unit); | 420 | 312k | top &= COEFF_CONTEXT_MASK; | 421 | 312k | top = AOMMIN(top, 4); | 422 | | | 423 | 312k | k = 0; | 424 | 1.16M | do { | 425 | 1.16M | left |= l[k]; | 426 | 1.16M | } while (++k < txb_h_unit); | 427 | 312k | left &= COEFF_CONTEXT_MASK; | 428 | 312k | left = AOMMIN(left, 4); | 429 | | | 430 | 312k | txb_ctx->txb_skip_ctx = skip_contexts[top][left]; | 431 | 312k | } | 432 | 940k | } else { | 433 | 940k | const int ctx_base = get_entropy_context(tx_size, a, l); | 434 | 940k | const int ctx_offset = (num_pels_log2_lookup[plane_bsize] > | 435 | 940k | num_pels_log2_lookup[txsize_to_bsize[tx_size]]) | 436 | 940k | ? 10 | 437 | 940k | : 7; | 438 | 940k | txb_ctx->txb_skip_ctx = ctx_base + ctx_offset; | 439 | 940k | } | 440 | 1.70M | #undef MAX_TX_SIZE_UNIT | 441 | 1.70M | } |
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 Line | Count | Source | 358 | 792k | TXB_CTX *const txb_ctx) { | 359 | 792k | #define MAX_TX_SIZE_UNIT 16 | 360 | 792k | static const int8_t signs[3] = { 0, -1, 1 }; | 361 | 792k | static const int8_t dc_sign_contexts[4 * MAX_TX_SIZE_UNIT + 1] = { | 362 | 792k | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 363 | 792k | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 364 | 792k | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 | 365 | 792k | }; | 366 | 792k | const int txb_w_unit = tx_size_wide_unit[tx_size]; | 367 | 792k | const int txb_h_unit = tx_size_high_unit[tx_size]; | 368 | 792k | int dc_sign = 0; | 369 | 792k | int k = 0; | 370 | | | 371 | 1.05M | do { | 372 | 1.05M | const unsigned int sign = ((uint8_t)a[k]) >> COEFF_CONTEXT_BITS; | 373 | 1.05M | assert(sign <= 2); | 374 | 1.05M | dc_sign += signs[sign]; | 375 | 1.05M | } while (++k < txb_w_unit); | 376 | | | 377 | 792k | k = 0; | 378 | 1.05M | do { | 379 | 1.05M | const unsigned int sign = ((uint8_t)l[k]) >> COEFF_CONTEXT_BITS; | 380 | 1.05M | assert(sign <= 2); | 381 | 1.05M | dc_sign += signs[sign]; | 382 | 1.05M | } while (++k < txb_h_unit); | 383 | | | 384 | 792k | txb_ctx->dc_sign_ctx = dc_sign_contexts[dc_sign + 2 * MAX_TX_SIZE_UNIT]; | 385 | | | 386 | 792k | if (plane == 0) { | 387 | 523k | if (plane_bsize == txsize_to_bsize[tx_size]) { | 388 | 4.08k | txb_ctx->txb_skip_ctx = 0; | 389 | 519k | } 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 | 519k | static const uint8_t skip_contexts[5][5] = { { 1, 2, 2, 2, 3 }, | 404 | 519k | { 2, 4, 4, 4, 5 }, | 405 | 519k | { 2, 4, 4, 4, 5 }, | 406 | 519k | { 2, 4, 4, 4, 5 }, | 407 | 519k | { 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 | 519k | int top = 0; | 414 | 519k | int left = 0; | 415 | | | 416 | 519k | k = 0; | 417 | 620k | do { | 418 | 620k | top |= a[k]; | 419 | 620k | } while (++k < txb_w_unit); | 420 | 519k | top &= COEFF_CONTEXT_MASK; | 421 | 519k | top = AOMMIN(top, 4); | 422 | | | 423 | 519k | k = 0; | 424 | 620k | do { | 425 | 620k | left |= l[k]; | 426 | 620k | } while (++k < txb_h_unit); | 427 | 519k | left &= COEFF_CONTEXT_MASK; | 428 | 519k | left = AOMMIN(left, 4); | 429 | | | 430 | 519k | txb_ctx->txb_skip_ctx = skip_contexts[top][left]; | 431 | 519k | } | 432 | 523k | } else { | 433 | 269k | const int ctx_base = get_entropy_context(tx_size, a, l); | 434 | 269k | const int ctx_offset = (num_pels_log2_lookup[plane_bsize] > | 435 | 269k | num_pels_log2_lookup[txsize_to_bsize[tx_size]]) | 436 | 269k | ? 10 | 437 | 269k | : 7; | 438 | 269k | txb_ctx->txb_skip_ctx = ctx_base + ctx_offset; | 439 | 269k | } | 440 | 792k | #undef MAX_TX_SIZE_UNIT | 441 | 792k | } |
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 Line | Count | Source | 358 | 44.5M | TXB_CTX *const txb_ctx) { | 359 | 44.5M | #define MAX_TX_SIZE_UNIT 16 | 360 | 44.5M | static const int8_t signs[3] = { 0, -1, 1 }; | 361 | 44.5M | static const int8_t dc_sign_contexts[4 * MAX_TX_SIZE_UNIT + 1] = { | 362 | 44.5M | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 363 | 44.5M | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 364 | 44.5M | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 | 365 | 44.5M | }; | 366 | 44.5M | const int txb_w_unit = tx_size_wide_unit[tx_size]; | 367 | 44.5M | const int txb_h_unit = tx_size_high_unit[tx_size]; | 368 | 44.5M | int dc_sign = 0; | 369 | 44.5M | int k = 0; | 370 | | | 371 | 56.5M | do { | 372 | 56.5M | const unsigned int sign = ((uint8_t)a[k]) >> COEFF_CONTEXT_BITS; | 373 | 56.5M | assert(sign <= 2); | 374 | 56.5M | dc_sign += signs[sign]; | 375 | 56.5M | } while (++k < txb_w_unit); | 376 | | | 377 | 44.5M | k = 0; | 378 | 56.5M | do { | 379 | 56.5M | const unsigned int sign = ((uint8_t)l[k]) >> COEFF_CONTEXT_BITS; | 380 | 56.5M | assert(sign <= 2); | 381 | 56.5M | dc_sign += signs[sign]; | 382 | 56.5M | } while (++k < txb_h_unit); | 383 | | | 384 | 44.5M | txb_ctx->dc_sign_ctx = dc_sign_contexts[dc_sign + 2 * MAX_TX_SIZE_UNIT]; | 385 | | | 386 | 44.5M | if (plane == 0) { | 387 | 43.2M | if (plane_bsize == txsize_to_bsize[tx_size]) { | 388 | 2.75M | txb_ctx->txb_skip_ctx = 0; | 389 | 40.5M | } 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 | 40.5M | static const uint8_t skip_contexts[5][5] = { { 1, 2, 2, 2, 3 }, | 404 | 40.5M | { 2, 4, 4, 4, 5 }, | 405 | 40.5M | { 2, 4, 4, 4, 5 }, | 406 | 40.5M | { 2, 4, 4, 4, 5 }, | 407 | 40.5M | { 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 | 40.5M | int top = 0; | 414 | 40.5M | int left = 0; | 415 | | | 416 | 40.5M | k = 0; | 417 | 41.1M | do { | 418 | 41.1M | top |= a[k]; | 419 | 41.1M | } while (++k < txb_w_unit); | 420 | 40.5M | top &= COEFF_CONTEXT_MASK; | 421 | 40.5M | top = AOMMIN(top, 4); | 422 | | | 423 | 40.5M | k = 0; | 424 | 41.1M | do { | 425 | 41.1M | left |= l[k]; | 426 | 41.1M | } while (++k < txb_h_unit); | 427 | 40.5M | left &= COEFF_CONTEXT_MASK; | 428 | 40.5M | left = AOMMIN(left, 4); | 429 | | | 430 | 40.5M | txb_ctx->txb_skip_ctx = skip_contexts[top][left]; | 431 | 40.5M | } | 432 | 43.2M | } else { | 433 | 1.28M | const int ctx_base = get_entropy_context(tx_size, a, l); | 434 | 1.28M | const int ctx_offset = (num_pels_log2_lookup[plane_bsize] > | 435 | 1.28M | num_pels_log2_lookup[txsize_to_bsize[tx_size]]) | 436 | 1.28M | ? 10 | 437 | 1.28M | : 7; | 438 | 1.28M | txb_ctx->txb_skip_ctx = ctx_base + ctx_offset; | 439 | 1.28M | } | 440 | 44.5M | #undef MAX_TX_SIZE_UNIT | 441 | 44.5M | } |
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 Line | Count | Source | 358 | 90.8k | TXB_CTX *const txb_ctx) { | 359 | 90.8k | #define MAX_TX_SIZE_UNIT 16 | 360 | 90.8k | static const int8_t signs[3] = { 0, -1, 1 }; | 361 | 90.8k | static const int8_t dc_sign_contexts[4 * MAX_TX_SIZE_UNIT + 1] = { | 362 | 90.8k | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 363 | 90.8k | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 364 | 90.8k | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 | 365 | 90.8k | }; | 366 | 90.8k | const int txb_w_unit = tx_size_wide_unit[tx_size]; | 367 | 90.8k | const int txb_h_unit = tx_size_high_unit[tx_size]; | 368 | 90.8k | int dc_sign = 0; | 369 | 90.8k | int k = 0; | 370 | | | 371 | 297k | do { | 372 | 297k | const unsigned int sign = ((uint8_t)a[k]) >> COEFF_CONTEXT_BITS; | 373 | 297k | assert(sign <= 2); | 374 | 297k | dc_sign += signs[sign]; | 375 | 297k | } while (++k < txb_w_unit); | 376 | | | 377 | 90.8k | k = 0; | 378 | 297k | do { | 379 | 297k | const unsigned int sign = ((uint8_t)l[k]) >> COEFF_CONTEXT_BITS; | 380 | 297k | assert(sign <= 2); | 381 | 297k | dc_sign += signs[sign]; | 382 | 297k | } while (++k < txb_h_unit); | 383 | | | 384 | 90.8k | txb_ctx->dc_sign_ctx = dc_sign_contexts[dc_sign + 2 * MAX_TX_SIZE_UNIT]; | 385 | | | 386 | 90.8k | if (plane == 0) { | 387 | 10.1k | if (plane_bsize == txsize_to_bsize[tx_size]) { | 388 | 10.0k | txb_ctx->txb_skip_ctx = 0; | 389 | 10.0k | } 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 | 20 | static const uint8_t skip_contexts[5][5] = { { 1, 2, 2, 2, 3 }, | 404 | 20 | { 2, 4, 4, 4, 5 }, | 405 | 20 | { 2, 4, 4, 4, 5 }, | 406 | 20 | { 2, 4, 4, 4, 5 }, | 407 | 20 | { 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 | 20 | int top = 0; | 414 | 20 | int left = 0; | 415 | | | 416 | 20 | k = 0; | 417 | 40 | do { | 418 | 40 | top |= a[k]; | 419 | 40 | } while (++k < txb_w_unit); | 420 | 20 | top &= COEFF_CONTEXT_MASK; | 421 | 20 | top = AOMMIN(top, 4); | 422 | | | 423 | 20 | k = 0; | 424 | 40 | do { | 425 | 40 | left |= l[k]; | 426 | 40 | } while (++k < txb_h_unit); | 427 | 20 | left &= COEFF_CONTEXT_MASK; | 428 | 20 | left = AOMMIN(left, 4); | 429 | | | 430 | 20 | txb_ctx->txb_skip_ctx = skip_contexts[top][left]; | 431 | 20 | } | 432 | 80.7k | } else { | 433 | 80.7k | const int ctx_base = get_entropy_context(tx_size, a, l); | 434 | 80.7k | const int ctx_offset = (num_pels_log2_lookup[plane_bsize] > | 435 | 80.7k | num_pels_log2_lookup[txsize_to_bsize[tx_size]]) | 436 | 80.7k | ? 10 | 437 | 80.7k | : 7; | 438 | 80.7k | txb_ctx->txb_skip_ctx = ctx_base + ctx_offset; | 439 | 80.7k | } | 440 | 90.8k | #undef MAX_TX_SIZE_UNIT | 441 | 90.8k | } |
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_ |