Coverage Report

Created: 2026-05-16 06:41

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
1.42k
static INLINE int32_t frame_is_intra_only(const PictureParentControlSet* const pcs) {
62
1.42k
    return pcs->frm_hdr.frame_type == KEY_FRAME || pcs->frm_hdr.frame_type == INTRA_ONLY_FRAME;
63
1.42k
}
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
948
static INLINE int32_t frame_is_intra_only(const PictureParentControlSet* const pcs) {
62
948
    return pcs->frm_hdr.frame_type == KEY_FRAME || pcs->frm_hdr.frame_type == INTRA_ONLY_FRAME;
63
948
}
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
474
static INLINE int32_t frame_is_intra_only(const PictureParentControlSet* const pcs) {
62
474
    return pcs->frm_hdr.frame_type == KEY_FRAME || pcs->frm_hdr.frame_type == INTRA_ONLY_FRAME;
63
474
}
64
65
474
static INLINE int32_t frame_is_sframe(const PictureParentControlSet* pcs) {
66
474
    return pcs->frm_hdr.frame_type == S_FRAME;
67
474
}
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
474
static INLINE int32_t frame_is_sframe(const PictureParentControlSet* pcs) {
66
474
    return pcs->frm_hdr.frame_type == S_FRAME;
67
474
}
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
474
static INLINE int32_t frame_might_allow_warped_motion(const PictureParentControlSet* pcs, SequenceControlSet* scs) {
78
474
    return !pcs->frm_hdr.error_resilient_mode && !frame_is_intra_only(pcs) && scs->seq_header.enable_warped_motion;
79
474
}
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
474
static INLINE int32_t frame_might_allow_warped_motion(const PictureParentControlSet* pcs, SequenceControlSet* scs) {
78
474
    return !pcs->frm_hdr.error_resilient_mode && !frame_is_intra_only(pcs) && scs->seq_header.enable_warped_motion;
79
474
}
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
474
static INLINE uint8_t major_minor_to_seq_level_idx(BitstreamLevel bl) {
82
474
    assert(bl.major >= LEVEL_MAJOR_MIN && bl.major <= LEVEL_MAJOR_MAX);
83
474
    return ((bl.major - LEVEL_MAJOR_MIN) << LEVEL_MINOR_BITS) + bl.minor;
84
474
}
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
474
static INLINE uint8_t major_minor_to_seq_level_idx(BitstreamLevel bl) {
82
474
    assert(bl.major >= LEVEL_MAJOR_MIN && bl.major <= LEVEL_MAJOR_MAX);
83
474
    return ((bl.major - LEVEL_MAJOR_MIN) << LEVEL_MINOR_BITS) + bl.minor;
84
474
}
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
16.5k
static INLINE void set_dc_sign(int32_t* cul_level, int32_t dc_val) {
87
16.5k
    if (dc_val < 0) {
88
16.5k
        *cul_level |= 1 << COEFF_CONTEXT_BITS;
89
16.5k
    } else if (dc_val > 0) {
90
0
        *cul_level += 2 << COEFF_CONTEXT_BITS;
91
0
    }
92
16.5k
}
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
16.5k
static INLINE void set_dc_sign(int32_t* cul_level, int32_t dc_val) {
87
16.5k
    if (dc_val < 0) {
88
16.5k
        *cul_level |= 1 << COEFF_CONTEXT_BITS;
89
16.5k
    } else if (dc_val > 0) {
90
0
        *cul_level += 2 << COEFF_CONTEXT_BITS;
91
0
    }
92
16.5k
}
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
extern const uint8_t eob_to_pos_small[33];
95
extern const int16_t eob_group_start[12];
96
extern const int16_t svt_aom_eob_offset_bits[12];
97
extern const uint8_t eob_to_pos_large[17];
98
99
37.8k
static INLINE int get_eob_pos_token(const int eob, int* const extra) {
100
37.8k
    int t;
101
102
37.8k
    if (eob < 33) {
103
37.8k
        t = eob_to_pos_small[eob];
104
37.8k
    } else {
105
2
        const int e = MIN((eob - 1) >> 5, 16);
106
2
        t           = eob_to_pos_large[e];
107
2
    }
108
109
37.8k
    *extra = eob - eob_group_start[t];
110
111
37.8k
    return t;
112
37.8k
}
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
99
16.5k
static INLINE int get_eob_pos_token(const int eob, int* const extra) {
100
16.5k
    int t;
101
102
16.5k
    if (eob < 33) {
103
16.5k
        t = eob_to_pos_small[eob];
104
16.5k
    } else {
105
0
        const int e = MIN((eob - 1) >> 5, 16);
106
0
        t           = eob_to_pos_large[e];
107
0
    }
108
109
16.5k
    *extra = eob - eob_group_start[t];
110
111
16.5k
    return t;
112
16.5k
}
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
99
21.2k
static INLINE int get_eob_pos_token(const int eob, int* const extra) {
100
21.2k
    int t;
101
102
21.2k
    if (eob < 33) {
103
21.2k
        t = eob_to_pos_small[eob];
104
21.2k
    } else {
105
2
        const int e = MIN((eob - 1) >> 5, 16);
106
2
        t           = eob_to_pos_large[e];
107
2
    }
108
109
21.2k
    *extra = eob - eob_group_start[t];
110
111
21.2k
    return t;
112
21.2k
}
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
113
114
//**********************************************************************************************************//
115
//encoder.h
116
0
static INLINE int32_t get_ref_frame_map_idx(const PictureParentControlSet* pcs, MvReferenceFrame ref_frame) {
117
0
    return pcs->av1_ref_signal.ref_dpb_index[ref_frame - LAST_FRAME]; //LAST-LAST2-LAST3-GOLDEN-BWD-ALT2-ALT
118
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
119
120
34.1k
static INLINE TxSize get_txsize_entropy_ctx(TxSize txsize) {
121
34.1k
    return (TxSize)((txsize_sqr_map[txsize] + txsize_sqr_up_map[txsize] + 1) >> 1);
122
34.1k
}
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
120
23.8k
static INLINE TxSize get_txsize_entropy_ctx(TxSize txsize) {
121
23.8k
    return (TxSize)((txsize_sqr_map[txsize] + txsize_sqr_up_map[txsize] + 1) >> 1);
122
23.8k
}
Unexecuted instantiation: ec_process.c:get_txsize_entropy_ctx
full_loop.c:get_txsize_entropy_ctx
Line
Count
Source
120
10.3k
static INLINE TxSize get_txsize_entropy_ctx(TxSize txsize) {
121
10.3k
    return (TxSize)((txsize_sqr_map[txsize] + txsize_sqr_up_map[txsize] + 1) >> 1);
122
10.3k
}
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
Unexecuted instantiation: rd_cost.c:get_txsize_entropy_ctx
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
123
124
//*******************************************************************************************//
125
// bitwriter_buffer.h
126
typedef struct AomWriteBitBuffer {
127
    uint8_t* bit_buffer;
128
    uint32_t bit_offset;
129
} AomWriteBitBuffer;
130
131
int32_t  svt_aom_wb_is_byte_aligned(const AomWriteBitBuffer* wb);
132
uint32_t svt_aom_wb_bytes_written(const AomWriteBitBuffer* wb);
133
134
void svt_aom_wb_write_bit(AomWriteBitBuffer* wb, int32_t bit);
135
void svt_aom_wb_write_literal(AomWriteBitBuffer* wb, int32_t data, int32_t bits);
136
137
void svt_aom_wb_write_inv_signed_literal(AomWriteBitBuffer* wb, int32_t data, int32_t bits);
138
139
//*******************************************************************************************//
140
// blockd.h
141
142
void svt_aom_get_txb_ctx(PictureControlSet* pcs, const int32_t plane,
143
                         NeighborArrayUnit* dc_sign_level_coeff_neighbor_array, uint32_t blk_org_x, uint32_t blk_org_y,
144
                         const BlockSize plane_bsize, const TxSize tx_size, int16_t* const txb_skip_ctx,
145
                         int16_t* const dc_sign_ctx);
146
147
void svt_aom_collect_neighbors_ref_counts_new(MacroBlockD* const xd);
148
149
// == Context functions for comp ref ==
150
//
151
// Returns a context number for the given MB prediction signal
152
// Signal the first reference frame for a compound mode be either
153
// GOLDEN/LAST3, or LAST/LAST2.
154
int32_t svt_av1_get_pred_context_comp_ref_p(const MacroBlockD* xd);
155
156
// Returns a context number for the given MB prediction signal
157
// Signal the first reference frame for a compound mode be LAST,
158
// conditioning on that it is known either LAST/LAST2.
159
int32_t svt_av1_get_pred_context_comp_ref_p1(const MacroBlockD* xd);
160
161
// Returns a context number for the given MB prediction signal
162
// Signal the first reference frame for a compound mode be GOLDEN,
163
// conditioning on that it is known either GOLDEN or LAST3.
164
int32_t svt_av1_get_pred_context_comp_ref_p2(const MacroBlockD* xd);
165
166
// Signal the 2nd reference frame for a compound mode be either
167
// ALTREF, or ALTREF2/BWDREF.
168
int32_t svt_av1_get_pred_context_comp_bwdref_p(const MacroBlockD* xd);
169
170
// Signal the 2nd reference frame for a compound mode be either
171
// ALTREF2 or BWDREF.
172
int32_t svt_av1_get_pred_context_comp_bwdref_p1(const MacroBlockD* xd);
173
// == Context functions for single ref ==
174
//
175
// For the bit to signal whether the single reference is a forward reference
176
// frame or a backward reference frame.
177
int32_t svt_av1_get_pred_context_single_ref_p1(const MacroBlockD* xd);
178
179
// For the bit to signal whether the single reference is ALTREF_FRAME or
180
// non-ALTREF backward reference frame, knowing that it shall be either of
181
// these 2 choices.
182
int32_t svt_av1_get_pred_context_single_ref_p2(const MacroBlockD* xd);
183
184
// For the bit to signal whether the single reference is LAST3/GOLDEN or
185
// LAST2/LAST, knowing that it shall be either of these 2 choices.
186
int32_t svt_av1_get_pred_context_single_ref_p3(const MacroBlockD* xd);
187
188
// For the bit to signal whether the single reference is LAST2_FRAME or
189
// LAST_FRAME, knowing that it shall be either of these 2 choices.
190
int32_t svt_av1_get_pred_context_single_ref_p4(const MacroBlockD* xd);
191
192
// For the bit to signal whether the single reference is GOLDEN_FRAME or
193
// LAST3_FRAME, knowing that it shall be either of these 2 choices.
194
int32_t svt_av1_get_pred_context_single_ref_p5(const MacroBlockD* xd);
195
196
// For the bit to signal whether the single reference is ALTREF2_FRAME or
197
// BWDREF_FRAME, knowing that it shall be either of these 2 choices.
198
int32_t svt_av1_get_pred_context_single_ref_p6(const MacroBlockD* xd);
199
200
/*!\brief Writes a valid metadata object to the AV1 bitstream.
201
 * \param[in]    bitstream_ptr       AV1 bitstream
202
 * \param[in]    metadata            Metadata array object
203
 * \param[in]    type                Metadata type descriptor
204
 */
205
EbErrorType svt_aom_write_metadata_av1(Bitstream* bitstream_ptr, SvtMetadataArrayT* metadata,
206
                                       const EbAv1MetadataType type);
207
EbErrorType svt_aom_write_frame_header_av1(Bitstream* bitstream_ptr, SequenceControlSet* scs, PictureControlSet* pcs,
208
                                           uint8_t show_existing);
209
EbErrorType svt_aom_encode_td_av1(uint8_t* bitstream_ptr);
210
EbErrorType svt_aom_encode_sps_av1(Bitstream* bitstream_ptr, SequenceControlSet* scs);
211
212
//*******************************************************************************************//
213
MotionMode svt_aom_motion_mode_allowed(const PictureControlSet* pcs, uint16_t num_proj_ref,
214
                                       uint32_t overlappable_neighbors, const BlockSize bsize, MvReferenceFrame rf0,
215
                                       MvReferenceFrame rf1, PredictionMode mode);
216
int        svt_aom_is_masked_compound_type(COMPOUND_TYPE type);
217
218
int32_t svt_aom_count_primitive_subexpfin(uint16_t n, uint16_t k, uint16_t v);
219
int32_t svt_aom_count_primitive_refsubexpfin(uint16_t n, uint16_t k, uint16_t ref, uint16_t v);
220
int     svt_aom_get_comp_index_context_enc(PictureParentControlSet* pcs, int cur_frame_index, int bck_frame_index,
221
                                           int fwd_frame_index, const MacroBlockD* xd);
222
int     svt_aom_get_pred_context_switchable_interp(MvReferenceFrame rf0, MvReferenceFrame rf1, const MacroBlockD* xd,
223
                                                   int dir);
224
int     svt_aom_is_nontrans_global_motion(const BlockModeInfo* block_mi, const BlockSize bsize,
225
                                          PictureParentControlSet* pcs);
226
uint8_t svt_av1_get_intra_inter_context(const MacroBlockD* xd);
227
void    svt_aom_get_kf_y_mode_ctx(const MacroBlockD* xd, uint8_t* above_ctx, uint8_t* left_ctx);
228
uint8_t av1_get_skip_mode_context(const MacroBlockD* xd);
229
uint8_t av1_get_skip_context(const MacroBlockD* xd);
230
void    svt_av1_reset_loop_restoration(EntropyCodingContext* ctx);
231
232
#ifdef __cplusplus
233
}
234
#endif
235
#endif //EbEntropyCoding_h