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->tb_mask+2) + (x)] |
#define | MATCH_MV(x) (AV_RN32A(&A.x) == AV_RN32A(&B.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) |
#define | DERIVE_TEMPORAL_COLOCATED_MVS |
#define | AVAILABLE(cand, v) (cand && !(TAB_MVF_PU(v).pred_flag == PF_INTRA)) |
#define | PRED_BLOCK_AVAILABLE(v) z_scan_block_avail(s, x0, y0, x ## v, y ## v) |
#define | COMPARE_MV_REFIDX(a, b) compare_mv_ref_idx(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 av_always_inline int | z_scan_block_avail (HEVCContext *s, int xCurr, int yCurr, int xN, int yN) |
static av_always_inline int | is_diff_mer (HEVCContext *s, int xN, int yN, int xP, int yP) |
static av_always_inline int | compare_mv_ref_idx (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, int merge_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 z_scan_block_avail().
Definition at line 93 of file hevc_mvs.c.
Referenced by compare_mv_ref_idx().
#define MATCH | ( | x | ) | (A.x == B.x) |
Definition at line 94 of file hevc_mvs.c.
Referenced by compare_mv_ref_idx().
#define CHECK_MVSET | ( | l | ) |
Definition at line 155 of file hevc_mvs.c.
Referenced by derive_temporal_colocated_mvs().
Definition at line 202 of file hevc_mvs.c.
Referenced by dist_scale(), mv_mp_mode_mx(), mv_mp_mode_mx_lt(), and temporal_luma_motion_vector().
#define TAB_MVF_PU | ( | v | ) |
#define DERIVE_TEMPORAL_COLOCATED_MVS |
Definition at line 209 of file hevc_mvs.c.
Referenced by temporal_luma_motion_vector().
#define AVAILABLE | ( | cand, | |
v | |||
) | (cand && !(TAB_MVF_PU(v).pred_flag == PF_INTRA)) |
Definition at line 272 of file hevc_mvs.c.
Referenced by derive_spatial_merge_candidates(), and ff_hevc_luma_mv_mvp_mode().
Definition at line 275 of file hevc_mvs.c.
Referenced by derive_spatial_merge_candidates(), and ff_hevc_luma_mv_mvp_mode().
#define COMPARE_MV_REFIDX | ( | a, | |
b | |||
) | compare_mv_ref_idx(TAB_MVF_PU(a), TAB_MVF_PU(b)) |
Definition at line 278 of file hevc_mvs.c.
Referenced by derive_spatial_merge_candidates().
Definition at line 569 of file hevc_mvs.c.
Referenced by ff_hevc_luma_mv_mvp_mode().
Definition at line 575 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(), hevc_luma_mv_mvp_mode(), and hls_transform_unit().
|
static |
Definition at line 63 of file hevc_mvs.c.
|
static |
Definition at line 85 of file hevc_mvs.c.
Referenced by derive_spatial_merge_candidates().
|
static |
Definition at line 97 of file hevc_mvs.c.
|
static |
Definition at line 114 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 128 of file hevc_mvs.c.
|
static |
Definition at line 162 of file hevc_mvs.c.
|
static |
Definition at line 217 of file hevc_mvs.c.
Referenced by derive_spatial_merge_candidates(), and ff_hevc_luma_mv_mvp_mode().
|
static |
Definition at line 284 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 478 of file hevc_mvs.c.
Referenced by hls_prediction_unit().
|
static |
Definition at line 511 of file hevc_mvs.c.
Referenced by mv_mp_mode_mx_lt().
|
static |
Definition at line 528 of file hevc_mvs.c.
|
static |
Definition at line 544 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 581 of file hevc_mvs.c.
Referenced by hevc_luma_mv_mvp_mode().
|
static |
Definition at line 26 of file hevc_mvs.c.
Referenced by derive_spatial_merge_candidates().