|
FFmpeg
|
#include "libavutil/frame.h"#include "data.h"#include "inter.h"#include "mvs.h"#include "refs.h"Go to the source code of this file.
Macros | |
| #define | PROF_TEMP_OFFSET (MAX_PB_SIZE + 32) |
| #define | MC_EMULATED_EDGE(dst, src, src_stride, x_off, y_off) |
| #define | MC_EMULATED_EDGE_DMVR(dst, src, src_stride, x_sb, y_sb, x_off, y_off) |
| #define | MC_EMULATED_EDGE_BILINEAR(dst, src, src_stride, x_off, y_off) |
| #define | INTER_FILTER(t, frac) |
| #define | SCALE_THRESHOLD_1 20480 |
| #define | SCALE_THRESHOLD_2 28672 |
| #define | INTER_FILTER_SCALED(scale) |
| #define | SCALED_CHROMA_ADDIN(scale, collocated_flag) |
| #define | SCALED_REF_SB(off, scaling_off, ref_mv, scale, add, shift) |
| #define | SCALED_REF(ref_sb, offset, shift) |
| #define | SCALED_STEP(scale) |
| #define | POS(c_idx, x, y) |
| #define | SAD_ARRAY_SIZE 5 |
Functions | |
| static void | subpic_get_rect (VVCRect *r, const VVCFrame *src_frame, const int subpic_idx, const int is_chroma) |
| static void | clip_to_subpic (int *x_off, int *y_off, int *pic_width, int *pic_height, const VVCRect *subpic, const VVCRect *sb, const int dmvr_clip) |
| static void | emulated_edge_no_wrap (const VVCLocalContext *lc, uint8_t *dst, const uint8_t **src, ptrdiff_t *src_stride, int x_off, int y_off, const int block_w, const int block_h, const int extra_before, const int extra_after, const VVCRect *subpic, const VVCRect *sb, const int dmvr_clip) |
| static void | emulated_half (const VVCLocalContext *lc, uint8_t *dst, const ptrdiff_t dst_stride, const uint8_t *src, const ptrdiff_t src_stride, const int ps, int x_off, int y_off, const int block_w, const int block_h, const VVCRect *subpic, const VVCRect *half_sb, const int dmvr_clip) |
| static void | sb_set_lr (VVCRect *sb, const int l, const int r) |
| static void | sb_wrap (VVCRect *sb, const int wrap) |
| static void | emulated_edge (const VVCLocalContext *lc, uint8_t *dst, const uint8_t **src, ptrdiff_t *src_stride, const VVCFrame *src_frame, int x_sb, int y_sb, int x_off, int y_off, int block_w, int block_h, const int wrap_enabled, const int is_chroma, const int extra_before, const int extra_after) |
| static int | derive_weight_uni (int *denom, int *wx, int *ox, const VVCLocalContext *lc, const MvField *mvf, const int c_idx) |
| static void | apply_averaging (uint8_t *dst, const ptrdiff_t dst_stride, const int16_t *src0, const int16_t *src1, int width, int height, const VVCLocalContext *lc, const MvField *mvf, const int c_idx, const int dmvr_flag) |
| static void | mc (VVCLocalContext *lc, int16_t *dst, const VVCFrame *ref, const Mv *mv, int x_off, int y_off, const int block_w, const int block_h, const int c_idx) |
| static void | mc_uni (VVCLocalContext *lc, uint8_t *dst, const ptrdiff_t dst_stride, const VVCFrame *ref, const MvField *mvf, int x_off, int y_off, const int block_w, const int block_h, const int c_idx) |
| static void | mc_bi (VVCLocalContext *lc, uint8_t *dst, const ptrdiff_t dst_stride, const VVCFrame *ref0, const VVCFrame *ref1, const MvField *mvf, const MvField *orig_mv, const int x_off, const int y_off, const int block_w, const int block_h, const int c_idx, const int sb_bdof_flag) |
| static const int8_t * | inter_filter_scaled (const int scale, const int is_chroma, const int is_affine) |
| static void | scaled_ref_pos_and_step (const VVCLocalContext *lc, const VVCRefPic *refp, const Mv *mv, const int x_off, const int y_off, const int c_idx, int *x, int *y, int *dx, int *dy) |
| static void | emulated_edge_scaled (VVCLocalContext *lc, const uint8_t **src, ptrdiff_t *src_stride, int *src_height, const VVCFrame *ref, const int x, const int y, const int dx, const int dy, const int w, const int h, const int is_chroma) |
| static void | mc_scaled (VVCLocalContext *lc, int16_t *dst, const VVCRefPic *refp, const Mv *mv, int x_off, int y_off, const int block_w, const int block_h, const int c_idx) |
| static void | mc_uni_scaled (VVCLocalContext *lc, uint8_t *dst, const ptrdiff_t dst_stride, const VVCRefPic *refp, const MvField *mvf, const int x_off, const int y_off, const int block_w, const int block_h, const int c_idx) |
| static void | mc_bi_scaled (VVCLocalContext *lc, uint8_t *dst, const ptrdiff_t dst_stride, const VVCRefPic *refp0, const VVCRefPic *refp1, const MvField *mvf, const int x_off, const int y_off, const int block_w, const int block_h, const int c_idx) |
| static void | luma_prof_uni (VVCLocalContext *lc, uint8_t *dst, const ptrdiff_t dst_stride, const VVCFrame *ref, const MvField *mvf, int x_off, int y_off, const int block_w, const int block_h, const int cb_prof_flag, const int16_t *diff_mv_x, const int16_t *diff_mv_y) |
| static void | luma_prof (VVCLocalContext *lc, int16_t *dst, const VVCFrame *ref, const Mv *mv, const int x_off, const int y_off, const int block_w, const int block_h, const int lx) |
| static void | luma_prof_bi (VVCLocalContext *lc, uint8_t *dst, const ptrdiff_t dst_stride, const VVCRefPic *ref0, const VVCRefPic *ref1, const MvField *mvf, const int x_off, const int y_off, const int block_w, const int block_h) |
| static int | pred_get_refs (const VVCLocalContext *lc, VVCRefPic *refp[2], const MvField *mv) |
| static void | pred_gpm_blk (VVCLocalContext *lc) |
| static int | ciip_derive_intra_weight (const VVCLocalContext *lc, const int x0, const int y0, const int width, const int height) |
| static void | pred_regular (VVCLocalContext *lc, const MvField *mvf, const MvField *orig_mvf, const int x0, const int y0, const int sbw, const int sbh, const int sb_bdof_flag, const int c_start) |
| static int | parametric_mv_refine (const int *sad, const int stride) |
| static void | dmvr_mv_refine (VVCLocalContext *lc, MvField *mvf, MvField *orig_mv, int *sb_bdof_flag, const VVCFrame *ref0, const VVCFrame *ref1, const int x_off, const int y_off, const int block_w, const int block_h) |
| static void | set_dmvr_info (VVCFrameContext *fc, const int x0, const int y0, const int width, const int height, const MvField *mvf) |
| static void | derive_sb_mv (VVCLocalContext *lc, MvField *mv, MvField *orig_mv, int *sb_bdof_flag, const int x0, const int y0, const int sbw, const int sbh) |
| static void | pred_regular_blk (VVCLocalContext *lc, const int skip_ciip) |
| static void | derive_affine_mvc (MvField *mvc, const VVCFrameContext *fc, const MvField *mv, const int x0, const int y0, const int sbw, const int sbh) |
| static void | pred_affine_blk (VVCLocalContext *lc) |
| static void | predict_inter (VVCLocalContext *lc) |
| static int | has_inter_luma (const CodingUnit *cu) |
| int | ff_vvc_predict_inter (VVCLocalContext *lc, const int rs) |
| Loop entire CTU to predict all inter coding blocks. | |
| void | ff_vvc_predict_ciip (VVCLocalContext *lc) |
| CIIP(Combined Inter-Intra Prediction) for a coding block. | |
Variables | |
| static const int | bcw_w_lut [] = {4, 5, 3, 10, -2} |
| #define PROF_TEMP_OFFSET (MAX_PB_SIZE + 32) |
Definition at line 30 of file inter.c.
Referenced by luma_prof(), luma_prof_uni(), and mc_bi().
Definition at line 187 of file inter.c.
Referenced by emulated_edge_scaled(), luma_prof(), luma_prof_uni(), mc(), mc_bi(), and mc_uni().
Definition at line 191 of file inter.c.
Referenced by mc_bi().
Definition at line 195 of file inter.c.
Referenced by dmvr_mv_refine().
| #define INTER_FILTER | ( | t, | |
| frac ) |
| #define SCALE_THRESHOLD_1 20480 |
Referenced by inter_filter_scaled().
| #define SCALE_THRESHOLD_2 28672 |
Referenced by inter_filter_scaled().
| #define INTER_FILTER_SCALED | ( | scale | ) |
Definition at line 377 of file inter.c.
Referenced by mc_scaled(), and mc_uni_scaled().
| #define SCALED_CHROMA_ADDIN | ( | scale, | |
| collocated_flag ) |
Definition at line 379 of file inter.c.
Referenced by scaled_ref_pos_and_step().
Definition at line 381 of file inter.c.
Referenced by scaled_ref_pos_and_step().
| #define SCALED_STEP | ( | scale | ) |
Definition at line 382 of file inter.c.
Referenced by scaled_ref_pos_and_step().
| #define POS | ( | c_idx, | |
| x, | |||
| y ) |
Definition at line 590 of file inter.c.
Referenced by pred_affine_blk(), pred_gpm_blk(), pred_regular(), and predict_inter().
| #define SAD_ARRAY_SIZE 5 |
Definition at line 769 of file inter.c.
Referenced by dmvr_mv_refine().
|
static |
Definition at line 33 of file inter.c.
Referenced by emulated_edge().
|
static |
Definition at line 47 of file inter.c.
Referenced by emulated_edge_no_wrap(), and emulated_half().
|
static |
Definition at line 60 of file inter.c.
Referenced by emulated_edge().
|
static |
Definition at line 91 of file inter.c.
Referenced by emulated_edge().
|
static |
Definition at line 107 of file inter.c.
Referenced by emulated_edge(), and sb_wrap().
|
static |
Definition at line 113 of file inter.c.
Referenced by emulated_edge().
|
static |
|
static |
Definition at line 200 of file inter.c.
Referenced by luma_prof_uni(), mc_uni(), and mc_uni_scaled().
|
static |
Definition at line 220 of file inter.c.
Referenced by luma_prof_bi(), mc_bi(), and mc_bi_scaled().
|
static |
|
static |
Definition at line 280 of file inter.c.
Referenced by pred_regular().
|
static |
Definition at line 315 of file inter.c.
Referenced by pred_regular().
|
static |
|
static |
Definition at line 384 of file inter.c.
Referenced by mc_scaled(), and mc_uni_scaled().
|
static |
Definition at line 405 of file inter.c.
Referenced by mc_scaled(), and mc_uni_scaled().
|
static |
Definition at line 421 of file inter.c.
Referenced by luma_prof_bi(), mc_bi_scaled(), and pred_gpm_blk().
|
static |
Definition at line 440 of file inter.c.
Referenced by pred_affine_blk(), and pred_regular().
|
static |
Definition at line 468 of file inter.c.
Referenced by pred_regular().
|
static |
Definition at line 488 of file inter.c.
Referenced by pred_affine_blk().
|
static |
Definition at line 527 of file inter.c.
Referenced by luma_prof_bi().
|
static |
Definition at line 555 of file inter.c.
Referenced by pred_affine_blk().
|
static |
Definition at line 575 of file inter.c.
Referenced by derive_sb_mv(), pred_affine_blk(), and pred_regular().
|
static |
Definition at line 594 of file inter.c.
Referenced by predict_inter().
|
static |
Definition at line 652 of file inter.c.
Referenced by pred_regular().
|
static |
Definition at line 673 of file inter.c.
Referenced by pred_affine_blk(), and pred_regular_blk().
|
static |
Definition at line 728 of file inter.c.
Referenced by dmvr_mv_refine().
|
static |
Definition at line 771 of file inter.c.
Referenced by derive_sb_mv().
|
static |
Definition at line 839 of file inter.c.
Referenced by derive_sb_mv().
|
static |
Definition at line 853 of file inter.c.
Referenced by pred_regular_blk().
|
static |
Definition at line 871 of file inter.c.
Referenced by ff_vvc_predict_ciip(), and predict_inter().
|
static |
Definition at line 899 of file inter.c.
Referenced by pred_affine_blk().
|
static |
Definition at line 917 of file inter.c.
Referenced by predict_inter().
|
static |
Definition at line 968 of file inter.c.
Referenced by ff_vvc_predict_inter().
|
static |
Definition at line 987 of file inter.c.
Referenced by ff_vvc_predict_inter().
| int ff_vvc_predict_inter | ( | VVCLocalContext * | lc, |
| int | rs ) |
| void ff_vvc_predict_ciip | ( | VVCLocalContext * | lc | ) |
CIIP(Combined Inter-Intra Prediction) for a coding block.
| lc | local context for CTU |
Definition at line 1007 of file inter.c.
Referenced by ff_vvc_reconstruct().
|
static |
Definition at line 31 of file inter.c.
Referenced by apply_averaging().