| 
    FFmpeg
    
   | 
 
#include "libavcodec/refstruct.h"#include "vvc_cabac.h"#include "vvc_ctu.h"#include "vvc_inter.h"#include "vvc_mvs.h"Go to the source code of this file.
Macros | |
| #define | PROF_TEMP_SIZE (PROF_BLOCK_SIZE) * sizeof(int16_t) | 
| #define | TAB_MSM(fc, depth, x, y) fc->tab.msm[(depth)][((y) >> 5) * fc->ps.pps->width32 + ((x) >> 5)] | 
| #define | TAB_ISPMF(fc, x, y) fc->tab.ispmf[((y) >> 6) * fc->ps.pps->width64 + ((x) >> 6)] | 
| #define | TRANSFORM_TREE(x, y) | 
| #define | TRANSFORM_UNIT(x, width, idx) | 
| #define | TRANSFORM_UNIT(y, height, idx) | 
| #define | SKIPPED_TRANSFORM_TREE(x, y) | 
| #define | CODING_TREE(x, idx) | 
| #define | CODING_TREE(y, idx) | 
| #define | CODING_TREE(x, w, sub_div, idx) | 
| #define | CODING_TREE(y, h, sub_div, idx) | 
| #define | CODING_TREE(x, y, idx) | 
| #define | DUAL_TREE(x, y) | 
| #define | CODING_TREE(tree_type) | 
| #define | SET_SAO(elem, value) | 
Typedefs | |
| typedef int(* | coding_tree_fn) (VVCLocalContext *lc, int x0, int y0, int cb_width, int cb_height, int qg_on_y, int qg_on_c, int cb_sub_div, int cqt_depth, int mtt_depth, int depth_offset, VVCTreeType tree_type, VVCModeType mode_type) | 
Enumerations | |
| enum | VVCModeType { MODE_TYPE_ALL, MODE_TYPE_INTER, MODE_TYPE_INTRA } | 
Functions | |
| static void | set_tb_pos (const VVCFrameContext *fc, const TransformBlock *tb) | 
| static void | set_tb_tab (uint8_t *tab, uint8_t v, const VVCFrameContext *fc, const TransformBlock *tb) | 
| static int | get_qp_y_pred (const VVCLocalContext *lc) | 
| static void | set_cb_tab (const VVCLocalContext *lc, uint8_t *tab, const uint8_t v) | 
| static int | set_qp_y (VVCLocalContext *lc, const int x0, const int y0, const int has_qp_delta) | 
| static void | set_qp_c_tab (const VVCLocalContext *lc, const TransformUnit *tu, const TransformBlock *tb) | 
| static void | set_qp_c (VVCLocalContext *lc) | 
| static TransformUnit * | alloc_tu (VVCFrameContext *fc, CodingUnit *cu) | 
| static TransformUnit * | add_tu (VVCFrameContext *fc, CodingUnit *cu, const int x0, const int y0, const int tu_width, const int tu_height) | 
| static TransformBlock * | add_tb (TransformUnit *tu, VVCLocalContext *lc, const int x0, const int y0, const int tb_width, const int tb_height, const int c_idx) | 
| static uint8_t | tu_y_coded_flag_decode (VVCLocalContext *lc, const int is_sbt_not_coded, const int sub_tu_index, const int is_isp, const int is_chroma_coded) | 
| static void | chroma_qp_offset_decode (VVCLocalContext *lc, const int is_128, const int is_chroma_coded) | 
| static int | hls_transform_unit (VVCLocalContext *lc, int x0, int y0, int tu_width, int tu_height, int sub_tu_index, int ch_type) | 
| static int | hls_transform_tree (VVCLocalContext *lc, int x0, int y0, int tu_width, int tu_height, int ch_type) | 
| static int | skipped_transform_tree (VVCLocalContext *lc, int x0, int y0, int tu_width, int tu_height) | 
| static void | can_split (const VVCLocalContext *lc, int x0, int y0, int cb_width, int cb_height, int mtt_depth, int depth_offset, int part_idx, VVCSplitMode last_split_mode, VVCTreeType tree_type, VVCModeType mode_type, VVCAllowedSplit *split) | 
| static int | get_num_intra_subpartitions (enum IspType isp_split_type, int cb_width, int cb_height) | 
| static int | get_cclm_enabled (const VVCLocalContext *lc, const int x0, const int y0) | 
| static int | less (const void *a, const void *b) | 
| static enum IntraPredMode | luma_intra_pred_mode (VVCLocalContext *lc, const int intra_subpartitions_mode_flag) | 
| static int | lfnst_idx_decode (VVCLocalContext *lc) | 
| static MtsIdx | mts_idx_decode (VVCLocalContext *lc) | 
| static enum IntraPredMode | derive_center_luma_intra_pred_mode (const VVCFrameContext *fc, const VVCSPS *sps, const VVCPPS *pps, const CodingUnit *cu) | 
| static void | derive_chroma_intra_pred_mode (VVCLocalContext *lc, const int cclm_mode_flag, const int cclm_mode_idx, const int intra_chroma_pred_mode) | 
| static void | intra_luma_pred_modes (VVCLocalContext *lc) | 
| static void | intra_chroma_pred_modes (VVCLocalContext *lc) | 
| static PredMode | pred_mode_decode (VVCLocalContext *lc, const VVCTreeType tree_type, const VVCModeType mode_type) | 
| static void | sbt_info (VVCLocalContext *lc, const VVCSPS *sps) | 
| static int | skipped_transform_tree_unit (VVCLocalContext *lc) | 
| static void | set_cb_pos (const VVCFrameContext *fc, const CodingUnit *cu) | 
| static CodingUnit * | alloc_cu (VVCLocalContext *lc, const int x0, const int y0) | 
| static CodingUnit * | add_cu (VVCLocalContext *lc, const int x0, const int y0, const int cb_width, const int cb_height, const int cqt_depth, const VVCTreeType tree_type) | 
| static void | set_cu_tabs (const VVCLocalContext *lc, const CodingUnit *cu) | 
| static void | derive_mmvd (const VVCLocalContext *lc, MvField *mvf, const Mv *mmvd_offset) | 
| static void | mvf_to_mi (const MvField *mvf, MotionInfo *mi) | 
| static void | mv_merge_refine_pred_flag (MvField *mvf, const int width, const int height) | 
| static void | merge_data_subblock (VVCLocalContext *lc) | 
| static void | merge_data_regular (VVCLocalContext *lc) | 
| static int | ciip_flag_decode (VVCLocalContext *lc, const int ciip_avaiable, const int gpm_avaiable, const int is_128) | 
| static void | merge_data_gpm (VVCLocalContext *lc) | 
| static void | merge_data_ciip (VVCLocalContext *lc) | 
| static void | merge_data_block (VVCLocalContext *lc) | 
| static void | merge_data_ibc (VVCLocalContext *lc) | 
| static int | hls_merge_data (VVCLocalContext *lc) | 
| static void | hls_mvd_coding (VVCLocalContext *lc, Mv *mvd) | 
| static int | bcw_idx_decode (VVCLocalContext *lc, const MotionInfo *mi, const int cb_width, const int cb_height) | 
| static int8_t | ref_idx_decode (VVCLocalContext *lc, const VVCSH *sh, const int sym_mvd_flag, const int lx) | 
| static int | mvds_decode (VVCLocalContext *lc, Mv mvds[2][MAX_CONTROL_POINTS], const int num_cp_mv, const int lx) | 
| static void | mvp_add_difference (MotionInfo *mi, const int num_cp_mv, const Mv mvds[2][MAX_CONTROL_POINTS], const int amvr_shift) | 
| static int | mvp_data_ibc (VVCLocalContext *lc) | 
| static int | mvp_data (VVCLocalContext *lc) | 
| static void | derive_dmvr_bdof_flag (const VVCLocalContext *lc, PredictionUnit *pu) | 
| static void | refine_regular_subblock (const VVCLocalContext *lc) | 
| static void | fill_dmvr_info (const VVCLocalContext *lc) | 
| static int | inter_data (VVCLocalContext *lc) | 
| static int | hls_coding_unit (VVCLocalContext *lc, int x0, int y0, int cb_width, int cb_height, int cqt_depth, const VVCTreeType tree_type, VVCModeType mode_type) | 
| static int | derive_mode_type_condition (const VVCLocalContext *lc, const VVCSplitMode split, const int cb_width, const int cb_height, const VVCModeType mode_type_curr) | 
| static VVCModeType | mode_type_decode (VVCLocalContext *lc, const int x0, const int y0, const int cb_width, const int cb_height, const VVCSplitMode split, const int ch_type, const VVCModeType mode_type_curr) | 
| static int | hls_coding_tree (VVCLocalContext *lc, int x0, int y0, int cb_width, int cb_height, int qg_on_y, int qg_on_c, int cb_sub_div, int cqt_depth, int mtt_depth, int depth_offset, int part_idx, VVCSplitMode last_split_mode, VVCTreeType tree_type_curr, VVCModeType mode_type_curr) | 
| static int | coding_tree_btv (VVCLocalContext *lc, int x0, int y0, int cb_width, int cb_height, int qg_on_y, int qg_on_c, int cb_sub_div, int cqt_depth, int mtt_depth, int depth_offset, VVCTreeType tree_type, VVCModeType mode_type) | 
| static int | coding_tree_bth (VVCLocalContext *lc, int x0, int y0, int cb_width, int cb_height, int qg_on_y, int qg_on_c, int cb_sub_div, int cqt_depth, int mtt_depth, int depth_offset, VVCTreeType tree_type, VVCModeType mode_type) | 
| static int | coding_tree_ttv (VVCLocalContext *lc, int x0, int y0, int cb_width, int cb_height, int qg_on_y, int qg_on_c, int cb_sub_div, int cqt_depth, int mtt_depth, int depth_offset, VVCTreeType tree_type, VVCModeType mode_type) | 
| static int | coding_tree_tth (VVCLocalContext *lc, int x0, int y0, int cb_width, int cb_height, int qg_on_y, int qg_on_c, int cb_sub_div, int cqt_depth, int mtt_depth, int depth_offset, VVCTreeType tree_type, VVCModeType mode_type) | 
| static int | coding_tree_qt (VVCLocalContext *lc, int x0, int y0, int cb_width, int cb_height, int qg_on_y, int qg_on_c, int cb_sub_div, int cqt_depth, int mtt_depth, int depth_offset, VVCTreeType tree_type, VVCModeType mode_type) | 
| static int | dual_tree_implicit_qt_split (VVCLocalContext *lc, const int x0, const int y0, const int cb_size, const int cqt_depth) | 
| static void | hls_sao (VVCLocalContext *lc, const int rx, const int ry) | 
| static void | alf_params (VVCLocalContext *lc, const int rx, const int ry) | 
| static void | deblock_params (VVCLocalContext *lc, const int rx, const int ry) | 
| static int | hls_coding_tree_unit (VVCLocalContext *lc, const int x0, const int y0, const int ctu_idx, const int rx, const int ry) | 
| static int | has_inter_luma (const CodingUnit *cu) | 
| static int | pred_get_y (const int y0, const Mv *mv, const int height) | 
| static void | cu_get_max_y (const CodingUnit *cu, int max_y[2][VVC_MAX_REF_ENTRIES], const VVCFrameContext *fc) | 
| static void | ctu_get_pred (VVCLocalContext *lc, const int rs) | 
| int | ff_vvc_coding_tree_unit (VVCLocalContext *lc, const int ctu_idx, const int rs, const int rx, const int ry) | 
| parse a CTU  More... | |
| void | ff_vvc_decode_neighbour (VVCLocalContext *lc, const int x_ctb, const int y_ctb, const int rx, const int ry, const int rs) | 
| void | ff_vvc_set_neighbour_available (VVCLocalContext *lc, const int x0, const int y0, const int w, const int h) | 
| void | ff_vvc_ctu_free_cus (CTU *ctu) | 
| int | ff_vvc_get_qPy (const VVCFrameContext *fc, const int xc, const int yc) | 
| void | ff_vvc_ep_init_stat_coeff (EntryPoint *ep, const int bit_depth, const int persistent_rice_adaptation_enabled_flag) | 
Variables | |
| const static coding_tree_fn | coding_tree [] | 
| #define PROF_TEMP_SIZE (PROF_BLOCK_SIZE) * sizeof(int16_t) | 
| #define TRANSFORM_TREE | ( | x, | |
| y | |||
| ) | 
| #define TRANSFORM_UNIT | ( | x, | |
| width, | |||
| idx | |||
| ) | 
| #define TRANSFORM_UNIT | ( | y, | |
| height, | |||
| idx | |||
| ) | 
| #define SKIPPED_TRANSFORM_TREE | ( | x, | |
| y | |||
| ) | 
| #define CODING_TREE | ( | x, | |
| idx | |||
| ) | 
| #define CODING_TREE | ( | y, | |
| idx | |||
| ) | 
| #define CODING_TREE | ( | x, | |
| w, | |||
| sub_div, | |||
| idx | |||
| ) | 
| #define CODING_TREE | ( | y, | |
| h, | |||
| sub_div, | |||
| idx | |||
| ) | 
| #define CODING_TREE | ( | x, | |
| y, | |||
| idx | |||
| ) | 
| #define DUAL_TREE | ( | x, | |
| y | |||
| ) | 
| #define CODING_TREE | ( | tree_type | ) | 
| #define SET_SAO | ( | elem, | |
| value | |||
| ) | 
| typedef int(* coding_tree_fn) (VVCLocalContext *lc, int x0, int y0, int cb_width, int cb_height, int qg_on_y, int qg_on_c, int cb_sub_div, int cqt_depth, int mtt_depth, int depth_offset, VVCTreeType tree_type, VVCModeType mode_type) | 
| enum VVCModeType | 
      
  | 
  static | 
Definition at line 41 of file vvc_ctu.c.
Referenced by hls_transform_unit(), and skipped_transform_tree().
      
  | 
  static | 
Definition at line 62 of file vvc_ctu.c.
Referenced by hls_transform_unit(), set_cu_tabs(), and set_qp_c_tab().
      
  | 
  static | 
Definition at line 77 of file vvc_ctu.c.
Referenced by set_qp_y().
      
  | 
  static | 
Definition at line 124 of file vvc_ctu.c.
Referenced by intra_luma_pred_modes(), merge_data_subblock(), mvp_data(), set_cu_tabs(), and set_qp_y().
      
  | 
  static | 
Definition at line 144 of file vvc_ctu.c.
Referenced by hls_transform_unit(), and skipped_transform_tree_unit().
      
  | 
  static | 
Definition at line 179 of file vvc_ctu.c.
Referenced by set_cu_tabs().
      
  | 
  static | 
Definition at line 187 of file vvc_ctu.c.
Referenced by hls_coding_unit(), and skipped_transform_tree_unit().
      
  | 
  static | 
      
  | 
  static | 
Definition at line 231 of file vvc_ctu.c.
Referenced by hls_transform_unit(), and skipped_transform_tree().
      
  | 
  static | 
Definition at line 249 of file vvc_ctu.c.
Referenced by hls_transform_unit(), and skipped_transform_tree().
      
  | 
  static | 
Definition at line 273 of file vvc_ctu.c.
Referenced by hls_transform_unit().
      
  | 
  static | 
Definition at line 293 of file vvc_ctu.c.
Referenced by hls_transform_unit().
      
  | 
  static | 
Definition at line 314 of file vvc_ctu.c.
Referenced by hls_transform_tree().
      
  | 
  static | 
Definition at line 406 of file vvc_ctu.c.
Referenced by hls_coding_unit().
      
  | 
  static | 
Definition at line 482 of file vvc_ctu.c.
Referenced by skipped_transform_tree_unit().
      
  | 
  static | 
Definition at line 525 of file vvc_ctu.c.
Referenced by hls_coding_tree(), and hls_write_packet().
      
  | 
  static | 
Definition at line 624 of file vvc_ctu.c.
Referenced by intra_luma_pred_modes().
      
  | 
  static | 
Definition at line 633 of file vvc_ctu.c.
Referenced by intra_chroma_pred_modes().
      
  | 
  static | 
Definition at line 678 of file vvc_ctu.c.
Referenced by luma_intra_pred_mode().
      
  | 
  static | 
Definition at line 684 of file vvc_ctu.c.
Referenced by derive_chroma_intra_pred_mode(), and intra_luma_pred_modes().
      
  | 
  static | 
Definition at line 795 of file vvc_ctu.c.
Referenced by hls_coding_unit().
      
  | 
  static | 
Definition at line 846 of file vvc_ctu.c.
Referenced by hls_coding_unit().
      
  | 
  static | 
Definition at line 867 of file vvc_ctu.c.
Referenced by derive_chroma_intra_pred_mode().
      
  | 
  static | 
Definition at line 886 of file vvc_ctu.c.
Referenced by intra_chroma_pred_modes().
      
  | 
  static | 
Definition at line 951 of file vvc_ctu.c.
Referenced by hls_coding_unit().
      
  | 
  static | 
Definition at line 1004 of file vvc_ctu.c.
Referenced by hls_coding_unit().
      
  | 
  static | 
Definition at line 1036 of file vvc_ctu.c.
Referenced by hls_coding_unit().
      
  | 
  static | 
Definition at line 1091 of file vvc_ctu.c.
Referenced by hls_coding_unit().
      
  | 
  static | 
Definition at line 1130 of file vvc_ctu.c.
Referenced by hls_coding_unit().
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
Definition at line 1195 of file vvc_ctu.c.
Referenced by hls_coding_unit().
      
  | 
  static | 
Definition at line 1232 of file vvc_ctu.c.
Referenced by hls_coding_unit().
      
  | 
  static | 
Definition at line 1257 of file vvc_ctu.c.
Referenced by merge_data_regular().
      
  | 
  static | 
Definition at line 1298 of file vvc_ctu.c.
Referenced by merge_data_ciip(), and merge_data_regular().
Definition at line 1312 of file vvc_ctu.c.
Referenced by merge_data_ciip(), and merge_data_regular().
      
  | 
  static | 
Definition at line 1321 of file vvc_ctu.c.
Referenced by hls_merge_data().
      
  | 
  static | 
Definition at line 1336 of file vvc_ctu.c.
Referenced by merge_data_block().
      
  | 
  static | 
Definition at line 1366 of file vvc_ctu.c.
Referenced by merge_data_block().
      
  | 
  static | 
Definition at line 1378 of file vvc_ctu.c.
Referenced by merge_data_block().
      
  | 
  static | 
Definition at line 1396 of file vvc_ctu.c.
Referenced by merge_data_block().
      
  | 
  static | 
Definition at line 1417 of file vvc_ctu.c.
Referenced by hls_merge_data().
      
  | 
  static | 
Definition at line 1447 of file vvc_ctu.c.
Referenced by hls_merge_data().
      
  | 
  static | 
Definition at line 1463 of file vvc_ctu.c.
Referenced by inter_data().
      
  | 
  static | 
Definition at line 1485 of file vvc_ctu.c.
Referenced by mvds_decode(), and mvp_data_ibc().
      
  | 
  static | 
Definition at line 1509 of file vvc_ctu.c.
Referenced by mvp_data().
      
  | 
  static | 
Definition at line 1530 of file vvc_ctu.c.
Referenced by mvp_data().
      
  | 
  static | 
Definition at line 1542 of file vvc_ctu.c.
Referenced by mvp_data().
      
  | 
  static | 
Definition at line 1574 of file vvc_ctu.c.
Referenced by mvp_data().
      
  | 
  static | 
Definition at line 1589 of file vvc_ctu.c.
Referenced by inter_data().
      
  | 
  static | 
Definition at line 1616 of file vvc_ctu.c.
Referenced by inter_data().
      
  | 
  static | 
Definition at line 1685 of file vvc_ctu.c.
Referenced by refine_regular_subblock().
      
  | 
  static | 
Definition at line 1724 of file vvc_ctu.c.
Referenced by inter_data().
      
  | 
  static | 
Definition at line 1736 of file vvc_ctu.c.
Referenced by inter_data().
      
  | 
  static | 
Definition at line 1757 of file vvc_ctu.c.
Referenced by hls_coding_unit().
      
  | 
  static | 
Definition at line 1789 of file vvc_ctu.c.
Referenced by hls_coding_tree().
      
  | 
  static | 
Definition at line 1880 of file vvc_ctu.c.
Referenced by mode_type_decode().
      
  | 
  static | 
Definition at line 1902 of file vvc_ctu.c.
Referenced by hls_coding_tree().
      
  | 
  static | 
Definition at line 2084 of file vvc_ctu.c.
Referenced by hls_coding_tree_unit().
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
Definition at line 2139 of file vvc_ctu.c.
Referenced by hls_coding_tree_unit().
      
  | 
  static | 
Definition at line 2201 of file vvc_ctu.c.
Referenced by hls_coding_tree_unit().
      
  | 
  static | 
Definition at line 2270 of file vvc_ctu.c.
Referenced by hls_coding_tree_unit().
      
  | 
  static | 
Definition at line 2316 of file vvc_ctu.c.
Referenced by hls_coding_tree_unit().
      
  | 
  static | 
Definition at line 2323 of file vvc_ctu.c.
Referenced by ff_vvc_coding_tree_unit().
      
  | 
  static | 
Definition at line 2371 of file vvc_ctu.c.
Referenced by ctu_get_pred().
Definition at line 2376 of file vvc_ctu.c.
Referenced by cu_get_max_y().
      
  | 
  static | 
Definition at line 2381 of file vvc_ctu.c.
Referenced by ctu_get_pred().
      
  | 
  static | 
Definition at line 2418 of file vvc_ctu.c.
Referenced by ff_vvc_coding_tree_unit().
| void ff_vvc_decode_neighbour | ( | VVCLocalContext * | lc, | 
| const int | x_ctb, | ||
| const int | y_ctb, | ||
| const int | rx, | ||
| const int | ry, | ||
| const int | rs | ||
| ) | 
Definition at line 2472 of file vvc_ctu.c.
Referenced by ff_vvc_coding_tree_unit(), ff_vvc_reconstruct(), run_alf(), run_deblock_h(), run_deblock_v(), and run_sao().
| void ff_vvc_set_neighbour_available | ( | VVCLocalContext * | lc, | 
| const int | x0, | ||
| const int | y0, | ||
| const int | w, | ||
| const int | h | ||
| ) | 
Definition at line 2501 of file vvc_ctu.c.
Referenced by ff_vvc_affine_mvp(), ff_vvc_luma_mv_merge_gpm(), ff_vvc_luma_mv_merge_mode(), ff_vvc_mvp(), ff_vvc_sb_mv_merge_mode(), hls_coding_unit(), ibc_merge_candidates(), pred_regular_blk(), and predict_intra().
| void ff_vvc_ctu_free_cus | ( | CTU * | ctu | ) | 
Definition at line 2516 of file vvc_ctu.c.
Referenced by ff_vvc_reconstruct(), and free_cus().
| int ff_vvc_get_qPy | ( | const VVCFrameContext * | fc, | 
| const int | xc, | ||
| const int | yc | ||
| ) | 
Definition at line 2536 of file vvc_ctu.c.
Referenced by get_qp_y(), and set_qp_c().
| void ff_vvc_ep_init_stat_coeff | ( | EntryPoint * | ep, | 
| const int | bit_depth, | ||
| const int | persistent_rice_adaptation_enabled_flag | ||
| ) | 
Definition at line 2544 of file vvc_ctu.c.
Referenced by cabac_init_state(), and schedule_next_parse().
      
  | 
  static | 
Definition at line 2076 of file vvc_ctu.c.
Referenced by hls_coding_tree().
 1.8.17