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