Coverage Report

Created: 2026-05-30 06:10

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/work/svt-av1/Source/Lib/Codec/entropy_coding.h
Line
Count
Source
1
/*
2
* Copyright(c) 2019 Intel Corporation
3
* Copyright (c) 2016, Alliance for Open Media. All rights reserved
4
*
5
* This source code is subject to the terms of the BSD 2 Clause License and
6
* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
7
* was not distributed with this source code in the LICENSE file, you can
8
* obtain it at https://www.aomedia.org/license/software-license. If the Alliance for Open
9
* Media Patent License 1.0 was not distributed with this source code in the
10
* PATENTS file, you can obtain it at https://www.aomedia.org/license/patent-license.
11
*/
12
13
#ifndef EbEntropyCoding_h
14
#define EbEntropyCoding_h
15
16
#include "definitions.h"
17
#include "ec_process.h"
18
#include "coding_unit.h"
19
#include "pic_buffer_desc.h"
20
#include "sequence_control_set.h"
21
#include "pcs.h"
22
#include "cabac_context_model.h"
23
#include "mode_decision.h"
24
#include "enc_intra_prediction.h"
25
#include "bitstream_unit.h"
26
#include "packetization_process.h"
27
#include "md_process.h"
28
#include "inter_prediction.h"
29
#include "EbSvtAv1Metadata.h"
30
#include "common_utils.h"
31
#ifdef __cplusplus
32
extern "C" {
33
#endif
34
35
/**************************************
36
 * Extern Function Declarations
37
 **************************************/
38
void svt_aom_write_modes_sb(EntropyCodingContext* ec_ctx, SuperBlock* sb_ptr, PictureControlSet* pcs, uint16_t tile_idx,
39
                            EntropyCoder* ec, EbPictureBufferDesc* coeff_ptr, struct PARTITION_TREE* ptree, int mi_row,
40
                            int mi_col);
41
42
int svt_aom_get_wedge_params_bits(BlockSize bsize);
43
44
EbErrorType svt_aom_encode_slice_finish(EntropyCoder* ec);
45
46
EbErrorType svt_aom_reset_entropy_coder(EncodeContext* enc_ctx, EntropyCoder* ec, uint32_t qp, SliceType slice_type);
47
EbErrorType svt_aom_txb_estimate_coeff_bits(ModeDecisionContext* ctx, uint8_t allow_update_cdf, FRAME_CONTEXT* ec_ctx,
48
                                            PictureControlSet* pcs, ModeDecisionCandidateBuffer* cand_bf,
49
                                            uint32_t txb_origin_index, uint32_t txb_chroma_origin_index,
50
                                            EbPictureBufferDesc* coeff_buffer_sb, uint32_t y_eob, uint32_t cb_eob,
51
                                            uint32_t cr_eob, uint64_t* y_txb_coeff_bits, uint64_t* cb_txb_coeff_bits,
52
                                            uint64_t* cr_txb_coeff_bits, TxSize txsize, TxSize txsize_uv,
53
                                            TxType tx_type, TxType tx_type_uv, COMPONENT_TYPE component_type);
54
55
EbErrorType svt_aom_txb_estimate_coeff_bits_light_pd0(ModeDecisionContext* ctx, ModeDecisionCandidateBuffer* cand_bf,
56
                                                      uint32_t txb_origin_index, EbPictureBufferDesc* coeff_buffer_sb,
57
                                                      uint32_t y_eob, uint64_t* y_txb_coeff_bits, TxSize txsize);
58
59
//**********************************************************************************************************//
60
// onyxc_int.h
61
2.66k
static INLINE int32_t frame_is_intra_only(const PictureParentControlSet* const pcs) {
62
2.66k
    return pcs->frm_hdr.frame_type == KEY_FRAME || pcs->frm_hdr.frame_type == INTRA_ONLY_FRAME;
63
2.66k
}
Unexecuted instantiation: resize.c:frame_is_intra_only
Unexecuted instantiation: enc_handle.c:frame_is_intra_only
Unexecuted instantiation: enc_settings.c:frame_is_intra_only
Unexecuted instantiation: av1me.c:frame_is_intra_only
Unexecuted instantiation: cdef_process.c:frame_is_intra_only
Unexecuted instantiation: dlf_process.c:frame_is_intra_only
Unexecuted instantiation: enc_cdef.c:frame_is_intra_only
Unexecuted instantiation: enc_dec_process.c:frame_is_intra_only
Unexecuted instantiation: enc_inter_prediction.c:frame_is_intra_only
Unexecuted instantiation: enc_intra_prediction.c:frame_is_intra_only
Unexecuted instantiation: enc_mode_config.c:frame_is_intra_only
entropy_coding.c:frame_is_intra_only
Line
Count
Source
61
2.13k
static INLINE int32_t frame_is_intra_only(const PictureParentControlSet* const pcs) {
62
2.13k
    return pcs->frm_hdr.frame_type == KEY_FRAME || pcs->frm_hdr.frame_type == INTRA_ONLY_FRAME;
63
2.13k
}
Unexecuted instantiation: ec_process.c:frame_is_intra_only
Unexecuted instantiation: full_loop.c:frame_is_intra_only
Unexecuted instantiation: md_rate_estimation.c:frame_is_intra_only
Unexecuted instantiation: mode_decision.c:frame_is_intra_only
Unexecuted instantiation: md_config_process.c:frame_is_intra_only
Unexecuted instantiation: md_process.c:frame_is_intra_only
Unexecuted instantiation: motion_estimation.c:frame_is_intra_only
Unexecuted instantiation: me_process.c:frame_is_intra_only
Unexecuted instantiation: packetization_process.c:frame_is_intra_only
Unexecuted instantiation: pcs.c:frame_is_intra_only
Unexecuted instantiation: pd_process.c:frame_is_intra_only
Unexecuted instantiation: pic_manager_process.c:frame_is_intra_only
Unexecuted instantiation: product_coding_loop.c:frame_is_intra_only
Unexecuted instantiation: rc_process.c:frame_is_intra_only
Unexecuted instantiation: rc_rtc_cbr.c:frame_is_intra_only
Unexecuted instantiation: rc_vbr_cbr.c:frame_is_intra_only
Unexecuted instantiation: rd_cost.c:frame_is_intra_only
Unexecuted instantiation: reference_object.c:frame_is_intra_only
Unexecuted instantiation: resource_coordination_process.c:frame_is_intra_only
Unexecuted instantiation: rest_process.c:frame_is_intra_only
Unexecuted instantiation: restoration_pick.c:frame_is_intra_only
Unexecuted instantiation: src_ops_process.c:frame_is_intra_only
Unexecuted instantiation: transforms.c:frame_is_intra_only
Unexecuted instantiation: encode_txb_ref_c.c:frame_is_intra_only
Unexecuted instantiation: adaptive_mv_pred.c:frame_is_intra_only
Unexecuted instantiation: coding_loop.c:frame_is_intra_only
Unexecuted instantiation: coding_unit.c:frame_is_intra_only
Unexecuted instantiation: deblocking_filter.c:frame_is_intra_only
Unexecuted instantiation: global_me_cost.c:frame_is_intra_only
rc_crf_cqp.c:frame_is_intra_only
Line
Count
Source
61
533
static INLINE int32_t frame_is_intra_only(const PictureParentControlSet* const pcs) {
62
533
    return pcs->frm_hdr.frame_type == KEY_FRAME || pcs->frm_hdr.frame_type == INTRA_ONLY_FRAME;
63
533
}
64
65
1.06k
static INLINE int32_t frame_is_sframe(const PictureParentControlSet* pcs) {
66
1.06k
    return pcs->frm_hdr.frame_type == S_FRAME;
67
1.06k
}
Unexecuted instantiation: enc_handle.c:frame_is_sframe
Unexecuted instantiation: enc_settings.c:frame_is_sframe
Unexecuted instantiation: av1me.c:frame_is_sframe
Unexecuted instantiation: cdef_process.c:frame_is_sframe
Unexecuted instantiation: dlf_process.c:frame_is_sframe
Unexecuted instantiation: enc_cdef.c:frame_is_sframe
Unexecuted instantiation: enc_dec_process.c:frame_is_sframe
Unexecuted instantiation: enc_inter_prediction.c:frame_is_sframe
Unexecuted instantiation: enc_intra_prediction.c:frame_is_sframe
Unexecuted instantiation: enc_mode_config.c:frame_is_sframe
entropy_coding.c:frame_is_sframe
Line
Count
Source
65
1.06k
static INLINE int32_t frame_is_sframe(const PictureParentControlSet* pcs) {
66
1.06k
    return pcs->frm_hdr.frame_type == S_FRAME;
67
1.06k
}
Unexecuted instantiation: ec_process.c:frame_is_sframe
Unexecuted instantiation: full_loop.c:frame_is_sframe
Unexecuted instantiation: md_rate_estimation.c:frame_is_sframe
Unexecuted instantiation: mode_decision.c:frame_is_sframe
Unexecuted instantiation: md_config_process.c:frame_is_sframe
Unexecuted instantiation: md_process.c:frame_is_sframe
Unexecuted instantiation: motion_estimation.c:frame_is_sframe
Unexecuted instantiation: me_process.c:frame_is_sframe
Unexecuted instantiation: packetization_process.c:frame_is_sframe
Unexecuted instantiation: pcs.c:frame_is_sframe
Unexecuted instantiation: pd_process.c:frame_is_sframe
Unexecuted instantiation: pic_manager_process.c:frame_is_sframe
Unexecuted instantiation: product_coding_loop.c:frame_is_sframe
Unexecuted instantiation: rc_process.c:frame_is_sframe
Unexecuted instantiation: rc_rtc_cbr.c:frame_is_sframe
Unexecuted instantiation: rc_vbr_cbr.c:frame_is_sframe
Unexecuted instantiation: rd_cost.c:frame_is_sframe
Unexecuted instantiation: reference_object.c:frame_is_sframe
Unexecuted instantiation: resource_coordination_process.c:frame_is_sframe
Unexecuted instantiation: rest_process.c:frame_is_sframe
Unexecuted instantiation: restoration_pick.c:frame_is_sframe
Unexecuted instantiation: src_ops_process.c:frame_is_sframe
Unexecuted instantiation: transforms.c:frame_is_sframe
Unexecuted instantiation: encode_txb_ref_c.c:frame_is_sframe
Unexecuted instantiation: adaptive_mv_pred.c:frame_is_sframe
Unexecuted instantiation: coding_loop.c:frame_is_sframe
Unexecuted instantiation: coding_unit.c:frame_is_sframe
Unexecuted instantiation: deblocking_filter.c:frame_is_sframe
Unexecuted instantiation: global_me_cost.c:frame_is_sframe
Unexecuted instantiation: rc_crf_cqp.c:frame_is_sframe
68
69
// Returns 1 if this frame might allow mvs from some reference frame.
70
71
0
static INLINE int32_t frame_might_allow_ref_frame_mvs(const PictureParentControlSet* pcs, SequenceControlSet* scs) {
72
0
    return !pcs->frm_hdr.error_resilient_mode && scs->seq_header.order_hint_info.enable_ref_frame_mvs &&
73
0
        scs->seq_header.order_hint_info.enable_order_hint && !frame_is_intra_only(pcs);
74
0
}
Unexecuted instantiation: enc_handle.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: enc_settings.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: av1me.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: cdef_process.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: dlf_process.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: enc_cdef.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: enc_dec_process.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: enc_inter_prediction.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: enc_intra_prediction.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: enc_mode_config.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: entropy_coding.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: ec_process.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: full_loop.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: md_rate_estimation.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: mode_decision.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: md_config_process.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: md_process.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: motion_estimation.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: me_process.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: packetization_process.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: pcs.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: pd_process.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: pic_manager_process.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: product_coding_loop.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: rc_process.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: rc_rtc_cbr.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: rc_vbr_cbr.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: rd_cost.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: reference_object.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: resource_coordination_process.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: rest_process.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: restoration_pick.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: src_ops_process.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: transforms.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: encode_txb_ref_c.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: adaptive_mv_pred.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: coding_loop.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: coding_unit.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: deblocking_filter.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: global_me_cost.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: rc_crf_cqp.c:frame_might_allow_ref_frame_mvs
75
76
// Returns 1 if this frame might use warped_motion
77
1.06k
static INLINE int32_t frame_might_allow_warped_motion(const PictureParentControlSet* pcs, SequenceControlSet* scs) {
78
1.06k
    return !pcs->frm_hdr.error_resilient_mode && !frame_is_intra_only(pcs) && scs->seq_header.enable_warped_motion;
79
1.06k
}
Unexecuted instantiation: enc_handle.c:frame_might_allow_warped_motion
Unexecuted instantiation: enc_settings.c:frame_might_allow_warped_motion
Unexecuted instantiation: av1me.c:frame_might_allow_warped_motion
Unexecuted instantiation: cdef_process.c:frame_might_allow_warped_motion
Unexecuted instantiation: dlf_process.c:frame_might_allow_warped_motion
Unexecuted instantiation: enc_cdef.c:frame_might_allow_warped_motion
Unexecuted instantiation: enc_dec_process.c:frame_might_allow_warped_motion
Unexecuted instantiation: enc_inter_prediction.c:frame_might_allow_warped_motion
Unexecuted instantiation: enc_intra_prediction.c:frame_might_allow_warped_motion
Unexecuted instantiation: enc_mode_config.c:frame_might_allow_warped_motion
entropy_coding.c:frame_might_allow_warped_motion
Line
Count
Source
77
1.06k
static INLINE int32_t frame_might_allow_warped_motion(const PictureParentControlSet* pcs, SequenceControlSet* scs) {
78
1.06k
    return !pcs->frm_hdr.error_resilient_mode && !frame_is_intra_only(pcs) && scs->seq_header.enable_warped_motion;
79
1.06k
}
Unexecuted instantiation: ec_process.c:frame_might_allow_warped_motion
Unexecuted instantiation: full_loop.c:frame_might_allow_warped_motion
Unexecuted instantiation: md_rate_estimation.c:frame_might_allow_warped_motion
Unexecuted instantiation: mode_decision.c:frame_might_allow_warped_motion
Unexecuted instantiation: md_config_process.c:frame_might_allow_warped_motion
Unexecuted instantiation: md_process.c:frame_might_allow_warped_motion
Unexecuted instantiation: motion_estimation.c:frame_might_allow_warped_motion
Unexecuted instantiation: me_process.c:frame_might_allow_warped_motion
Unexecuted instantiation: packetization_process.c:frame_might_allow_warped_motion
Unexecuted instantiation: pcs.c:frame_might_allow_warped_motion
Unexecuted instantiation: pd_process.c:frame_might_allow_warped_motion
Unexecuted instantiation: pic_manager_process.c:frame_might_allow_warped_motion
Unexecuted instantiation: product_coding_loop.c:frame_might_allow_warped_motion
Unexecuted instantiation: rc_process.c:frame_might_allow_warped_motion
Unexecuted instantiation: rc_rtc_cbr.c:frame_might_allow_warped_motion
Unexecuted instantiation: rc_vbr_cbr.c:frame_might_allow_warped_motion
Unexecuted instantiation: rd_cost.c:frame_might_allow_warped_motion
Unexecuted instantiation: reference_object.c:frame_might_allow_warped_motion
Unexecuted instantiation: resource_coordination_process.c:frame_might_allow_warped_motion
Unexecuted instantiation: rest_process.c:frame_might_allow_warped_motion
Unexecuted instantiation: restoration_pick.c:frame_might_allow_warped_motion
Unexecuted instantiation: src_ops_process.c:frame_might_allow_warped_motion
Unexecuted instantiation: transforms.c:frame_might_allow_warped_motion
Unexecuted instantiation: encode_txb_ref_c.c:frame_might_allow_warped_motion
Unexecuted instantiation: adaptive_mv_pred.c:frame_might_allow_warped_motion
Unexecuted instantiation: coding_loop.c:frame_might_allow_warped_motion
Unexecuted instantiation: coding_unit.c:frame_might_allow_warped_motion
Unexecuted instantiation: deblocking_filter.c:frame_might_allow_warped_motion
Unexecuted instantiation: global_me_cost.c:frame_might_allow_warped_motion
Unexecuted instantiation: rc_crf_cqp.c:frame_might_allow_warped_motion
80
81
1.06k
static INLINE uint8_t major_minor_to_seq_level_idx(BitstreamLevel bl) {
82
1.06k
    assert(bl.major >= LEVEL_MAJOR_MIN && bl.major <= LEVEL_MAJOR_MAX);
83
1.06k
    return ((bl.major - LEVEL_MAJOR_MIN) << LEVEL_MINOR_BITS) + bl.minor;
84
1.06k
}
Unexecuted instantiation: enc_handle.c:major_minor_to_seq_level_idx
Unexecuted instantiation: enc_settings.c:major_minor_to_seq_level_idx
Unexecuted instantiation: av1me.c:major_minor_to_seq_level_idx
Unexecuted instantiation: cdef_process.c:major_minor_to_seq_level_idx
Unexecuted instantiation: dlf_process.c:major_minor_to_seq_level_idx
Unexecuted instantiation: enc_cdef.c:major_minor_to_seq_level_idx
Unexecuted instantiation: enc_dec_process.c:major_minor_to_seq_level_idx
Unexecuted instantiation: enc_inter_prediction.c:major_minor_to_seq_level_idx
Unexecuted instantiation: enc_intra_prediction.c:major_minor_to_seq_level_idx
Unexecuted instantiation: enc_mode_config.c:major_minor_to_seq_level_idx
entropy_coding.c:major_minor_to_seq_level_idx
Line
Count
Source
81
1.06k
static INLINE uint8_t major_minor_to_seq_level_idx(BitstreamLevel bl) {
82
1.06k
    assert(bl.major >= LEVEL_MAJOR_MIN && bl.major <= LEVEL_MAJOR_MAX);
83
1.06k
    return ((bl.major - LEVEL_MAJOR_MIN) << LEVEL_MINOR_BITS) + bl.minor;
84
1.06k
}
Unexecuted instantiation: ec_process.c:major_minor_to_seq_level_idx
Unexecuted instantiation: full_loop.c:major_minor_to_seq_level_idx
Unexecuted instantiation: md_rate_estimation.c:major_minor_to_seq_level_idx
Unexecuted instantiation: mode_decision.c:major_minor_to_seq_level_idx
Unexecuted instantiation: md_config_process.c:major_minor_to_seq_level_idx
Unexecuted instantiation: md_process.c:major_minor_to_seq_level_idx
Unexecuted instantiation: motion_estimation.c:major_minor_to_seq_level_idx
Unexecuted instantiation: me_process.c:major_minor_to_seq_level_idx
Unexecuted instantiation: packetization_process.c:major_minor_to_seq_level_idx
Unexecuted instantiation: pcs.c:major_minor_to_seq_level_idx
Unexecuted instantiation: pd_process.c:major_minor_to_seq_level_idx
Unexecuted instantiation: pic_manager_process.c:major_minor_to_seq_level_idx
Unexecuted instantiation: product_coding_loop.c:major_minor_to_seq_level_idx
Unexecuted instantiation: rc_process.c:major_minor_to_seq_level_idx
Unexecuted instantiation: rc_rtc_cbr.c:major_minor_to_seq_level_idx
Unexecuted instantiation: rc_vbr_cbr.c:major_minor_to_seq_level_idx
Unexecuted instantiation: rd_cost.c:major_minor_to_seq_level_idx
Unexecuted instantiation: reference_object.c:major_minor_to_seq_level_idx
Unexecuted instantiation: resize.c:major_minor_to_seq_level_idx
Unexecuted instantiation: resource_coordination_process.c:major_minor_to_seq_level_idx
Unexecuted instantiation: rest_process.c:major_minor_to_seq_level_idx
Unexecuted instantiation: restoration_pick.c:major_minor_to_seq_level_idx
Unexecuted instantiation: segmentation.c:major_minor_to_seq_level_idx
Unexecuted instantiation: src_ops_process.c:major_minor_to_seq_level_idx
Unexecuted instantiation: transforms.c:major_minor_to_seq_level_idx
Unexecuted instantiation: encode_txb_ref_c.c:major_minor_to_seq_level_idx
Unexecuted instantiation: adaptive_mv_pred.c:major_minor_to_seq_level_idx
Unexecuted instantiation: coding_loop.c:major_minor_to_seq_level_idx
Unexecuted instantiation: coding_unit.c:major_minor_to_seq_level_idx
Unexecuted instantiation: deblocking_filter.c:major_minor_to_seq_level_idx
Unexecuted instantiation: firstpass.c:major_minor_to_seq_level_idx
Unexecuted instantiation: global_me_cost.c:major_minor_to_seq_level_idx
Unexecuted instantiation: mcomp.c:major_minor_to_seq_level_idx
Unexecuted instantiation: pass2_strategy.c:major_minor_to_seq_level_idx
Unexecuted instantiation: rc_crf_cqp.c:major_minor_to_seq_level_idx
85
86
18.8k
static INLINE void set_dc_sign(int32_t* cul_level, int32_t dc_val) {
87
18.8k
    if (dc_val < 0) {
88
18.8k
        *cul_level |= 1 << COEFF_CONTEXT_BITS;
89
18.8k
    } else if (dc_val > 0) {
90
0
        *cul_level += 2 << COEFF_CONTEXT_BITS;
91
0
    }
92
18.8k
}
Unexecuted instantiation: enc_handle.c:set_dc_sign
Unexecuted instantiation: enc_settings.c:set_dc_sign
Unexecuted instantiation: av1me.c:set_dc_sign
Unexecuted instantiation: cdef_process.c:set_dc_sign
Unexecuted instantiation: dlf_process.c:set_dc_sign
Unexecuted instantiation: enc_cdef.c:set_dc_sign
Unexecuted instantiation: enc_dec_process.c:set_dc_sign
Unexecuted instantiation: enc_inter_prediction.c:set_dc_sign
Unexecuted instantiation: enc_intra_prediction.c:set_dc_sign
Unexecuted instantiation: enc_mode_config.c:set_dc_sign
entropy_coding.c:set_dc_sign
Line
Count
Source
86
18.8k
static INLINE void set_dc_sign(int32_t* cul_level, int32_t dc_val) {
87
18.8k
    if (dc_val < 0) {
88
18.8k
        *cul_level |= 1 << COEFF_CONTEXT_BITS;
89
18.8k
    } else if (dc_val > 0) {
90
0
        *cul_level += 2 << COEFF_CONTEXT_BITS;
91
0
    }
92
18.8k
}
Unexecuted instantiation: ec_process.c:set_dc_sign
Unexecuted instantiation: full_loop.c:set_dc_sign
Unexecuted instantiation: md_rate_estimation.c:set_dc_sign
Unexecuted instantiation: mode_decision.c:set_dc_sign
Unexecuted instantiation: md_config_process.c:set_dc_sign
Unexecuted instantiation: md_process.c:set_dc_sign
Unexecuted instantiation: motion_estimation.c:set_dc_sign
Unexecuted instantiation: me_process.c:set_dc_sign
Unexecuted instantiation: packetization_process.c:set_dc_sign
Unexecuted instantiation: pcs.c:set_dc_sign
Unexecuted instantiation: pd_process.c:set_dc_sign
Unexecuted instantiation: pic_manager_process.c:set_dc_sign
Unexecuted instantiation: product_coding_loop.c:set_dc_sign
Unexecuted instantiation: rc_process.c:set_dc_sign
Unexecuted instantiation: rc_rtc_cbr.c:set_dc_sign
Unexecuted instantiation: rc_vbr_cbr.c:set_dc_sign
Unexecuted instantiation: rd_cost.c:set_dc_sign
Unexecuted instantiation: reference_object.c:set_dc_sign
Unexecuted instantiation: resize.c:set_dc_sign
Unexecuted instantiation: resource_coordination_process.c:set_dc_sign
Unexecuted instantiation: rest_process.c:set_dc_sign
Unexecuted instantiation: restoration_pick.c:set_dc_sign
Unexecuted instantiation: src_ops_process.c:set_dc_sign
Unexecuted instantiation: transforms.c:set_dc_sign
Unexecuted instantiation: encode_txb_ref_c.c:set_dc_sign
Unexecuted instantiation: adaptive_mv_pred.c:set_dc_sign
Unexecuted instantiation: coding_loop.c:set_dc_sign
Unexecuted instantiation: coding_unit.c:set_dc_sign
Unexecuted instantiation: deblocking_filter.c:set_dc_sign
Unexecuted instantiation: global_me_cost.c:set_dc_sign
Unexecuted instantiation: rc_crf_cqp.c:set_dc_sign
93
94
42.9k
static INLINE int get_eob_pos_token(const int eob, int* const extra) {
95
42.9k
    if (eob < 3) {
96
42.9k
        *extra = 0;
97
42.9k
        return eob;
98
42.9k
    }
99
0
    int t  = get_msb(eob - 1);
100
0
    *extra = eob - 1 - (1 << t);
101
0
    return t + 2;
102
42.9k
}
Unexecuted instantiation: enc_handle.c:get_eob_pos_token
Unexecuted instantiation: enc_settings.c:get_eob_pos_token
Unexecuted instantiation: av1me.c:get_eob_pos_token
Unexecuted instantiation: cdef_process.c:get_eob_pos_token
Unexecuted instantiation: dlf_process.c:get_eob_pos_token
Unexecuted instantiation: enc_cdef.c:get_eob_pos_token
Unexecuted instantiation: enc_dec_process.c:get_eob_pos_token
Unexecuted instantiation: enc_inter_prediction.c:get_eob_pos_token
Unexecuted instantiation: enc_intra_prediction.c:get_eob_pos_token
Unexecuted instantiation: enc_mode_config.c:get_eob_pos_token
entropy_coding.c:get_eob_pos_token
Line
Count
Source
94
18.8k
static INLINE int get_eob_pos_token(const int eob, int* const extra) {
95
18.8k
    if (eob < 3) {
96
18.8k
        *extra = 0;
97
18.8k
        return eob;
98
18.8k
    }
99
0
    int t  = get_msb(eob - 1);
100
0
    *extra = eob - 1 - (1 << t);
101
0
    return t + 2;
102
18.8k
}
Unexecuted instantiation: ec_process.c:get_eob_pos_token
Unexecuted instantiation: full_loop.c:get_eob_pos_token
Unexecuted instantiation: md_rate_estimation.c:get_eob_pos_token
Unexecuted instantiation: mode_decision.c:get_eob_pos_token
Unexecuted instantiation: md_config_process.c:get_eob_pos_token
Unexecuted instantiation: md_process.c:get_eob_pos_token
Unexecuted instantiation: motion_estimation.c:get_eob_pos_token
Unexecuted instantiation: me_process.c:get_eob_pos_token
Unexecuted instantiation: packetization_process.c:get_eob_pos_token
Unexecuted instantiation: pcs.c:get_eob_pos_token
Unexecuted instantiation: pd_process.c:get_eob_pos_token
Unexecuted instantiation: pic_manager_process.c:get_eob_pos_token
Unexecuted instantiation: product_coding_loop.c:get_eob_pos_token
Unexecuted instantiation: rc_process.c:get_eob_pos_token
Unexecuted instantiation: rc_rtc_cbr.c:get_eob_pos_token
Unexecuted instantiation: rc_vbr_cbr.c:get_eob_pos_token
rd_cost.c:get_eob_pos_token
Line
Count
Source
94
24.0k
static INLINE int get_eob_pos_token(const int eob, int* const extra) {
95
24.0k
    if (eob < 3) {
96
24.0k
        *extra = 0;
97
24.0k
        return eob;
98
24.0k
    }
99
0
    int t  = get_msb(eob - 1);
100
0
    *extra = eob - 1 - (1 << t);
101
0
    return t + 2;
102
24.0k
}
Unexecuted instantiation: reference_object.c:get_eob_pos_token
Unexecuted instantiation: resize.c:get_eob_pos_token
Unexecuted instantiation: resource_coordination_process.c:get_eob_pos_token
Unexecuted instantiation: rest_process.c:get_eob_pos_token
Unexecuted instantiation: restoration_pick.c:get_eob_pos_token
Unexecuted instantiation: segmentation.c:get_eob_pos_token
Unexecuted instantiation: src_ops_process.c:get_eob_pos_token
Unexecuted instantiation: transforms.c:get_eob_pos_token
Unexecuted instantiation: encode_txb_ref_c.c:get_eob_pos_token
Unexecuted instantiation: adaptive_mv_pred.c:get_eob_pos_token
Unexecuted instantiation: coding_loop.c:get_eob_pos_token
Unexecuted instantiation: coding_unit.c:get_eob_pos_token
Unexecuted instantiation: deblocking_filter.c:get_eob_pos_token
Unexecuted instantiation: firstpass.c:get_eob_pos_token
Unexecuted instantiation: global_me_cost.c:get_eob_pos_token
Unexecuted instantiation: mcomp.c:get_eob_pos_token
Unexecuted instantiation: pass2_strategy.c:get_eob_pos_token
Unexecuted instantiation: rc_crf_cqp.c:get_eob_pos_token
103
104
//**********************************************************************************************************//
105
//encoder.h
106
0
static INLINE int32_t get_ref_frame_map_idx(const PictureParentControlSet* pcs, MvReferenceFrame ref_frame) {
107
0
    return pcs->av1_ref_signal.ref_dpb_index[ref_frame - LAST_FRAME]; //LAST-LAST2-LAST3-GOLDEN-BWD-ALT2-ALT
108
0
}
Unexecuted instantiation: enc_handle.c:get_ref_frame_map_idx
Unexecuted instantiation: enc_settings.c:get_ref_frame_map_idx
Unexecuted instantiation: av1me.c:get_ref_frame_map_idx
Unexecuted instantiation: cdef_process.c:get_ref_frame_map_idx
Unexecuted instantiation: dlf_process.c:get_ref_frame_map_idx
Unexecuted instantiation: enc_cdef.c:get_ref_frame_map_idx
Unexecuted instantiation: enc_dec_process.c:get_ref_frame_map_idx
Unexecuted instantiation: enc_inter_prediction.c:get_ref_frame_map_idx
Unexecuted instantiation: enc_intra_prediction.c:get_ref_frame_map_idx
Unexecuted instantiation: enc_mode_config.c:get_ref_frame_map_idx
Unexecuted instantiation: entropy_coding.c:get_ref_frame_map_idx
Unexecuted instantiation: ec_process.c:get_ref_frame_map_idx
Unexecuted instantiation: full_loop.c:get_ref_frame_map_idx
Unexecuted instantiation: md_rate_estimation.c:get_ref_frame_map_idx
Unexecuted instantiation: mode_decision.c:get_ref_frame_map_idx
Unexecuted instantiation: md_config_process.c:get_ref_frame_map_idx
Unexecuted instantiation: md_process.c:get_ref_frame_map_idx
Unexecuted instantiation: motion_estimation.c:get_ref_frame_map_idx
Unexecuted instantiation: me_process.c:get_ref_frame_map_idx
Unexecuted instantiation: packetization_process.c:get_ref_frame_map_idx
Unexecuted instantiation: pcs.c:get_ref_frame_map_idx
Unexecuted instantiation: pd_process.c:get_ref_frame_map_idx
Unexecuted instantiation: pic_manager_process.c:get_ref_frame_map_idx
Unexecuted instantiation: product_coding_loop.c:get_ref_frame_map_idx
Unexecuted instantiation: rc_process.c:get_ref_frame_map_idx
Unexecuted instantiation: rc_rtc_cbr.c:get_ref_frame_map_idx
Unexecuted instantiation: rc_vbr_cbr.c:get_ref_frame_map_idx
Unexecuted instantiation: rd_cost.c:get_ref_frame_map_idx
Unexecuted instantiation: reference_object.c:get_ref_frame_map_idx
Unexecuted instantiation: resource_coordination_process.c:get_ref_frame_map_idx
Unexecuted instantiation: rest_process.c:get_ref_frame_map_idx
Unexecuted instantiation: restoration_pick.c:get_ref_frame_map_idx
Unexecuted instantiation: src_ops_process.c:get_ref_frame_map_idx
Unexecuted instantiation: transforms.c:get_ref_frame_map_idx
Unexecuted instantiation: encode_txb_ref_c.c:get_ref_frame_map_idx
Unexecuted instantiation: adaptive_mv_pred.c:get_ref_frame_map_idx
Unexecuted instantiation: coding_loop.c:get_ref_frame_map_idx
Unexecuted instantiation: coding_unit.c:get_ref_frame_map_idx
Unexecuted instantiation: deblocking_filter.c:get_ref_frame_map_idx
Unexecuted instantiation: global_me_cost.c:get_ref_frame_map_idx
Unexecuted instantiation: rc_crf_cqp.c:get_ref_frame_map_idx
109
110
51.2k
static INLINE TxSize get_txsize_entropy_ctx(TxSize txsize) {
111
51.2k
    return (TxSize)((txsize_sqr_map[txsize] + txsize_sqr_up_map[txsize] + 1) >> 1);
112
51.2k
}
Unexecuted instantiation: enc_handle.c:get_txsize_entropy_ctx
Unexecuted instantiation: enc_settings.c:get_txsize_entropy_ctx
Unexecuted instantiation: av1me.c:get_txsize_entropy_ctx
Unexecuted instantiation: cdef_process.c:get_txsize_entropy_ctx
Unexecuted instantiation: dlf_process.c:get_txsize_entropy_ctx
Unexecuted instantiation: enc_cdef.c:get_txsize_entropy_ctx
Unexecuted instantiation: enc_dec_process.c:get_txsize_entropy_ctx
Unexecuted instantiation: enc_inter_prediction.c:get_txsize_entropy_ctx
Unexecuted instantiation: enc_intra_prediction.c:get_txsize_entropy_ctx
Unexecuted instantiation: enc_mode_config.c:get_txsize_entropy_ctx
entropy_coding.c:get_txsize_entropy_ctx
Line
Count
Source
110
27.1k
static INLINE TxSize get_txsize_entropy_ctx(TxSize txsize) {
111
27.1k
    return (TxSize)((txsize_sqr_map[txsize] + txsize_sqr_up_map[txsize] + 1) >> 1);
112
27.1k
}
Unexecuted instantiation: ec_process.c:get_txsize_entropy_ctx
full_loop.c:get_txsize_entropy_ctx
Line
Count
Source
110
11.6k
static INLINE TxSize get_txsize_entropy_ctx(TxSize txsize) {
111
11.6k
    return (TxSize)((txsize_sqr_map[txsize] + txsize_sqr_up_map[txsize] + 1) >> 1);
112
11.6k
}
Unexecuted instantiation: md_rate_estimation.c:get_txsize_entropy_ctx
Unexecuted instantiation: mode_decision.c:get_txsize_entropy_ctx
Unexecuted instantiation: md_config_process.c:get_txsize_entropy_ctx
Unexecuted instantiation: md_process.c:get_txsize_entropy_ctx
Unexecuted instantiation: motion_estimation.c:get_txsize_entropy_ctx
Unexecuted instantiation: me_process.c:get_txsize_entropy_ctx
Unexecuted instantiation: packetization_process.c:get_txsize_entropy_ctx
Unexecuted instantiation: pcs.c:get_txsize_entropy_ctx
Unexecuted instantiation: pd_process.c:get_txsize_entropy_ctx
Unexecuted instantiation: pic_manager_process.c:get_txsize_entropy_ctx
Unexecuted instantiation: product_coding_loop.c:get_txsize_entropy_ctx
Unexecuted instantiation: rc_process.c:get_txsize_entropy_ctx
Unexecuted instantiation: rc_rtc_cbr.c:get_txsize_entropy_ctx
Unexecuted instantiation: rc_vbr_cbr.c:get_txsize_entropy_ctx
rd_cost.c:get_txsize_entropy_ctx
Line
Count
Source
110
12.4k
static INLINE TxSize get_txsize_entropy_ctx(TxSize txsize) {
111
12.4k
    return (TxSize)((txsize_sqr_map[txsize] + txsize_sqr_up_map[txsize] + 1) >> 1);
112
12.4k
}
Unexecuted instantiation: reference_object.c:get_txsize_entropy_ctx
Unexecuted instantiation: resource_coordination_process.c:get_txsize_entropy_ctx
Unexecuted instantiation: rest_process.c:get_txsize_entropy_ctx
Unexecuted instantiation: restoration_pick.c:get_txsize_entropy_ctx
Unexecuted instantiation: src_ops_process.c:get_txsize_entropy_ctx
Unexecuted instantiation: transforms.c:get_txsize_entropy_ctx
Unexecuted instantiation: encode_txb_ref_c.c:get_txsize_entropy_ctx
Unexecuted instantiation: adaptive_mv_pred.c:get_txsize_entropy_ctx
Unexecuted instantiation: coding_loop.c:get_txsize_entropy_ctx
Unexecuted instantiation: coding_unit.c:get_txsize_entropy_ctx
Unexecuted instantiation: deblocking_filter.c:get_txsize_entropy_ctx
Unexecuted instantiation: global_me_cost.c:get_txsize_entropy_ctx
Unexecuted instantiation: rc_crf_cqp.c:get_txsize_entropy_ctx
113
114
//*******************************************************************************************//
115
// bitwriter_buffer.h
116
typedef struct AomWriteBitBuffer {
117
    uint8_t* bit_buffer;
118
    uint32_t bit_offset;
119
} AomWriteBitBuffer;
120
121
int32_t  svt_aom_wb_is_byte_aligned(const AomWriteBitBuffer* wb);
122
uint32_t svt_aom_wb_bytes_written(const AomWriteBitBuffer* wb);
123
124
void svt_aom_wb_write_bit(AomWriteBitBuffer* wb, int32_t bit);
125
void svt_aom_wb_write_literal(AomWriteBitBuffer* wb, int32_t data, int32_t bits);
126
127
void svt_aom_wb_write_inv_signed_literal(AomWriteBitBuffer* wb, int32_t data, int32_t bits);
128
129
//*******************************************************************************************//
130
// blockd.h
131
132
void svt_aom_get_txb_ctx(PictureControlSet* pcs, const int32_t plane,
133
                         NeighborArrayUnit* dc_sign_level_coeff_neighbor_array, uint32_t blk_org_x, uint32_t blk_org_y,
134
                         const BlockSize plane_bsize, const TxSize tx_size, int16_t* const txb_skip_ctx,
135
                         int16_t* const dc_sign_ctx);
136
137
void svt_aom_collect_neighbors_ref_counts_new(MacroBlockD* const xd);
138
139
// == Context functions for comp ref ==
140
//
141
// Returns a context number for the given MB prediction signal
142
// Signal the first reference frame for a compound mode be either
143
// GOLDEN/LAST3, or LAST/LAST2.
144
int32_t svt_av1_get_pred_context_comp_ref_p(const MacroBlockD* xd);
145
146
// Returns a context number for the given MB prediction signal
147
// Signal the first reference frame for a compound mode be LAST,
148
// conditioning on that it is known either LAST/LAST2.
149
int32_t svt_av1_get_pred_context_comp_ref_p1(const MacroBlockD* xd);
150
151
// Returns a context number for the given MB prediction signal
152
// Signal the first reference frame for a compound mode be GOLDEN,
153
// conditioning on that it is known either GOLDEN or LAST3.
154
int32_t svt_av1_get_pred_context_comp_ref_p2(const MacroBlockD* xd);
155
156
// Signal the 2nd reference frame for a compound mode be either
157
// ALTREF, or ALTREF2/BWDREF.
158
int32_t svt_av1_get_pred_context_comp_bwdref_p(const MacroBlockD* xd);
159
160
// Signal the 2nd reference frame for a compound mode be either
161
// ALTREF2 or BWDREF.
162
int32_t svt_av1_get_pred_context_comp_bwdref_p1(const MacroBlockD* xd);
163
// == Context functions for single ref ==
164
//
165
// For the bit to signal whether the single reference is a forward reference
166
// frame or a backward reference frame.
167
int32_t svt_av1_get_pred_context_single_ref_p1(const MacroBlockD* xd);
168
169
// For the bit to signal whether the single reference is ALTREF_FRAME or
170
// non-ALTREF backward reference frame, knowing that it shall be either of
171
// these 2 choices.
172
int32_t svt_av1_get_pred_context_single_ref_p2(const MacroBlockD* xd);
173
174
// For the bit to signal whether the single reference is LAST3/GOLDEN or
175
// LAST2/LAST, knowing that it shall be either of these 2 choices.
176
int32_t svt_av1_get_pred_context_single_ref_p3(const MacroBlockD* xd);
177
178
// For the bit to signal whether the single reference is LAST2_FRAME or
179
// LAST_FRAME, knowing that it shall be either of these 2 choices.
180
int32_t svt_av1_get_pred_context_single_ref_p4(const MacroBlockD* xd);
181
182
// For the bit to signal whether the single reference is GOLDEN_FRAME or
183
// LAST3_FRAME, knowing that it shall be either of these 2 choices.
184
int32_t svt_av1_get_pred_context_single_ref_p5(const MacroBlockD* xd);
185
186
// For the bit to signal whether the single reference is ALTREF2_FRAME or
187
// BWDREF_FRAME, knowing that it shall be either of these 2 choices.
188
int32_t svt_av1_get_pred_context_single_ref_p6(const MacroBlockD* xd);
189
190
/*!\brief Writes a valid metadata object to the AV1 bitstream.
191
 * \param[in]    bitstream_ptr       AV1 bitstream
192
 * \param[in]    metadata            Metadata array object
193
 * \param[in]    type                Metadata type descriptor
194
 */
195
EbErrorType svt_aom_write_metadata_av1(Bitstream* bitstream_ptr, SvtMetadataArrayT* metadata,
196
                                       const EbAv1MetadataType type);
197
EbErrorType svt_aom_write_frame_header_av1(Bitstream* bitstream_ptr, SequenceControlSet* scs, PictureControlSet* pcs,
198
                                           uint8_t show_existing);
199
EbErrorType svt_aom_encode_td_av1(uint8_t* bitstream_ptr);
200
EbErrorType svt_aom_encode_sps_av1(Bitstream* bitstream_ptr, SequenceControlSet* scs);
201
202
//*******************************************************************************************//
203
MotionMode svt_aom_motion_mode_allowed(const PictureControlSet* pcs, uint16_t num_proj_ref,
204
                                       uint32_t overlappable_neighbors, const BlockSize bsize, MvReferenceFrame rf0,
205
                                       MvReferenceFrame rf1, PredictionMode mode);
206
int        svt_aom_is_masked_compound_type(COMPOUND_TYPE type);
207
208
int32_t svt_aom_count_primitive_subexpfin(uint16_t n, uint16_t k, uint16_t v);
209
int32_t svt_aom_count_primitive_refsubexpfin(uint16_t n, uint16_t k, uint16_t ref, uint16_t v);
210
int     svt_aom_get_comp_index_context_enc(PictureParentControlSet* pcs, int cur_frame_index, int bck_frame_index,
211
                                           int fwd_frame_index, const MacroBlockD* xd);
212
int     svt_aom_get_pred_context_switchable_interp(MvReferenceFrame rf0, MvReferenceFrame rf1, const MacroBlockD* xd,
213
                                                   int dir);
214
int     svt_aom_is_nontrans_global_motion(const BlockModeInfo* block_mi, const BlockSize bsize,
215
                                          PictureParentControlSet* pcs);
216
uint8_t svt_av1_get_intra_inter_context(const MacroBlockD* xd);
217
void    svt_aom_get_kf_y_mode_ctx(const MacroBlockD* xd, uint8_t* above_ctx, uint8_t* left_ctx);
218
uint8_t av1_get_skip_mode_context(const MacroBlockD* xd);
219
uint8_t av1_get_skip_context(const MacroBlockD* xd);
220
void    svt_av1_reset_loop_restoration(EntropyCodingContext* ctx);
221
222
#ifdef __cplusplus
223
}
224
#endif
225
#endif //EbEntropyCoding_h