FFmpeg
|
#include "hevc.h"
Go to the source code of this file.
Macros | |
#define | MIN_TB_ADDR_ZS(x, y) s->pps->min_tb_addr_zs[(y) * s->sps->min_tb_width + (x)] |
#define | MATCH(x) (A.x == B.x) |
#define | CHECK_MVSET(l) |
#define | TAB_MVF(x, y) tab_mvf[(y) * min_pu_width + x] |
#define | TAB_MVF_PU(v) TAB_MVF(x ## v ## _pu, y ## v ## _pu) |
#define | DERIVE_TEMPORAL_COLOCATED_MVS |
#define | AVAILABLE(cand, v) (cand && !TAB_MVF_PU(v).is_intra) |
#define | PRED_BLOCK_AVAILABLE(v) |
#define | COMPARE_MV_REFIDX(a, b) compareMVrefidx(TAB_MVF_PU(a), TAB_MVF_PU(b)) |
#define | MP_MX(v, pred, mx) |
#define | MP_MX_LT(v, pred, mx) |
Functions | |
void | ff_hevc_set_neighbour_available (HEVCContext *s, int x0, int y0, int nPbW, int nPbH) |
static int | z_scan_block_avail (HEVCContext *s, int xCurr, int yCurr, int xN, int yN) |
static int | same_prediction_block (HEVCLocalContext *lc, int log2_cb_size, int x0, int y0, int nPbW, int nPbH, int xA1, int yA1, int partIdx) |
static int | check_prediction_block_available (HEVCContext *s, int log2_cb_size, int x0, int y0, int nPbW, int nPbH, int xA1, int yA1, int partIdx) |
static int | isDiffMER (HEVCContext *s, int xN, int yN, int xP, int yP) |
static int | compareMVrefidx (struct MvField A, struct MvField B) |
static av_always_inline void | mv_scale (Mv *dst, Mv *src, int td, int tb) |
static int | check_mvset (Mv *mvLXCol, Mv *mvCol, int colPic, int poc, RefPicList *refPicList, int X, int refIdxLx, RefPicList *refPicList_col, int listCol, int refidxCol) |
static int | derive_temporal_colocated_mvs (HEVCContext *s, MvField temp_col, int refIdxLx, Mv *mvLXCol, int X, int colPic, RefPicList *refPicList_col) |
static int | temporal_luma_motion_vector (HEVCContext *s, int x0, int y0, int nPbW, int nPbH, int refIdxLx, Mv *mvLXCol, int X) |
static void | derive_spatial_merge_candidates (HEVCContext *s, int x0, int y0, int nPbW, int nPbH, int log2_cb_size, int singleMCLFlag, int part_idx, struct MvField mergecandlist[]) |
void | ff_hevc_luma_mv_merge_mode (HEVCContext *s, int x0, int y0, int nPbW, int nPbH, int log2_cb_size, int part_idx, int merge_idx, MvField *mv) |
static av_always_inline void | dist_scale (HEVCContext *s, Mv *mv, int min_pu_width, int x, int y, int elist, int ref_idx_curr, int ref_idx) |
static int | mv_mp_mode_mx (HEVCContext *s, int x, int y, int pred_flag_index, Mv *mv, int ref_idx_curr, int ref_idx) |
static int | mv_mp_mode_mx_lt (HEVCContext *s, int x, int y, int pred_flag_index, Mv *mv, int ref_idx_curr, int ref_idx) |
void | ff_hevc_luma_mv_mvp_mode (HEVCContext *s, int x0, int y0, int nPbW, int nPbH, int log2_cb_size, int part_idx, int merge_idx, MvField *mv, int mvp_lx_flag, int LX) |
Variables | |
static const uint8_t | l0_l1_cand_idx [12][2] |
Referenced by intra_pred(), and z_scan_block_avail().
#define MATCH | ( | x | ) | (A.x == B.x) |
Definition at line 121 of file hevc_mvs.c.
Referenced by compareMVrefidx().
#define CHECK_MVSET | ( | l | ) |
Definition at line 183 of file hevc_mvs.c.
Referenced by derive_temporal_colocated_mvs().
Definition at line 232 of file hevc_mvs.c.
Referenced by dist_scale(), mv_mp_mode_mx(), mv_mp_mode_mx_lt(), and temporal_luma_motion_vector().
Definition at line 235 of file hevc_mvs.c.
Referenced by derive_spatial_merge_candidates().
#define DERIVE_TEMPORAL_COLOCATED_MVS |
Definition at line 238 of file hevc_mvs.c.
Referenced by temporal_luma_motion_vector().
#define AVAILABLE | ( | cand, | |
v | |||
) | (cand && !TAB_MVF_PU(v).is_intra) |
Definition at line 297 of file hevc_mvs.c.
Referenced by derive_spatial_merge_candidates(), and ff_hevc_luma_mv_mvp_mode().
#define PRED_BLOCK_AVAILABLE | ( | v | ) |
Definition at line 300 of file hevc_mvs.c.
Referenced by derive_spatial_merge_candidates(), and ff_hevc_luma_mv_mvp_mode().
#define COMPARE_MV_REFIDX | ( | a, | |
b | |||
) | compareMVrefidx(TAB_MVF_PU(a), TAB_MVF_PU(b)) |
Definition at line 305 of file hevc_mvs.c.
Referenced by derive_spatial_merge_candidates().
Definition at line 619 of file hevc_mvs.c.
Referenced by ff_hevc_luma_mv_mvp_mode().
Definition at line 623 of file hevc_mvs.c.
Referenced by ff_hevc_luma_mv_mvp_mode().
void ff_hevc_set_neighbour_available | ( | HEVCContext * | s, |
int | x0, | ||
int | y0, | ||
int | nPbW, | ||
int | nPbH | ||
) |
Definition at line 41 of file hevc_mvs.c.
Referenced by ff_hevc_luma_mv_merge_mode(), hls_prediction_unit(), and hls_transform_unit().
|
static |
Definition at line 64 of file hevc_mvs.c.
Referenced by check_prediction_block_available().
|
static |
Definition at line 84 of file hevc_mvs.c.
Referenced by check_prediction_block_available().
|
static |
Definition at line 97 of file hevc_mvs.c.
|
static |
Definition at line 113 of file hevc_mvs.c.
Referenced by derive_spatial_merge_candidates().
Definition at line 124 of file hevc_mvs.c.
|
static |
Definition at line 139 of file hevc_mvs.c.
Referenced by check_mvset(), decode_mb_info(), dist_scale(), estimate_motion_b(), and ivi_scale_mv().
|
static |
Definition at line 153 of file hevc_mvs.c.
|
static |
Definition at line 190 of file hevc_mvs.c.
|
static |
Definition at line 246 of file hevc_mvs.c.
Referenced by derive_spatial_merge_candidates(), and ff_hevc_luma_mv_mvp_mode().
|
static |
Definition at line 311 of file hevc_mvs.c.
Referenced by ff_hevc_luma_mv_merge_mode().
void ff_hevc_luma_mv_merge_mode | ( | HEVCContext * | s, |
int | x0, | ||
int | y0, | ||
int | nPbW, | ||
int | nPbH, | ||
int | log2_cb_size, | ||
int | part_idx, | ||
int | merge_idx, | ||
MvField * | mv | ||
) |
Definition at line 529 of file hevc_mvs.c.
Referenced by hls_prediction_unit().
|
static |
Definition at line 563 of file hevc_mvs.c.
Referenced by mv_mp_mode_mx_lt().
|
static |
Definition at line 580 of file hevc_mvs.c.
|
static |
Definition at line 596 of file hevc_mvs.c.
void ff_hevc_luma_mv_mvp_mode | ( | HEVCContext * | s, |
int | x0, | ||
int | y0, | ||
int | nPbW, | ||
int | nPbH, | ||
int | log2_cb_size, | ||
int | part_idx, | ||
int | merge_idx, | ||
MvField * | mv, | ||
int | mvp_lx_flag, | ||
int | LX | ||
) |
Definition at line 627 of file hevc_mvs.c.
Referenced by hls_prediction_unit().
|
static |
Definition at line 26 of file hevc_mvs.c.
Referenced by derive_spatial_merge_candidates().