FFmpeg
Macros | Functions
vvc_inter_template.c File Reference
#include "libavcodec/h26x/h2656_inter_template.c"

Go to the source code of this file.

Macros

#define DMVR_FILTER(src, stride)
 
#define DMVR_SHIFT(s)   ((s) << (10 - BIT_DEPTH))
 
#define PEL_FUNC(dst, C, idx1, idx2, a)
 
#define DIR_FUNCS(d, C, c)
 
#define FUNCS(C, c)
 

Functions

static void FUNC() avg (uint8_t *_dst, const ptrdiff_t _dst_stride, const int16_t *src0, const int16_t *src1, const int width, const int height)
 
static void FUNC() w_avg (uint8_t *_dst, const ptrdiff_t _dst_stride, const int16_t *src0, const int16_t *src1, const int width, const int height, const int denom, const int w0, const int w1, const int o0, const int o1)
 
static void FUNC() put_ciip (uint8_t *_dst, const ptrdiff_t _dst_stride, const int width, const int height, const uint8_t *_inter, const ptrdiff_t _inter_stride, const int intra_weight)
 
static void FUNC() put_gpm (uint8_t *_dst, ptrdiff_t dst_stride, const int width, const int height, const int16_t *src0, const int16_t *src1, const uint8_t *weights, const int step_x, const int step_y)
 
static void FUNC() bdof_fetch_samples (int16_t *_dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int x_frac, const int y_frac, const int width, const int height)
 
static void FUNC() fetch_samples (int16_t *_dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int x_frac, const int y_frac)
 
static void FUNC() prof_grad_filter (int16_t *_gradient_h, int16_t *_gradient_v, const ptrdiff_t gradient_stride, const int16_t *_src, const ptrdiff_t src_stride, const int width, const int height, const int pad)
 
static void FUNC() apply_prof (int16_t *dst, const int16_t *src, const int16_t *diff_mv_x, const int16_t *diff_mv_y)
 
static void FUNC() apply_prof_uni (uint8_t *_dst, const ptrdiff_t _dst_stride, const int16_t *src, const int16_t *diff_mv_x, const int16_t *diff_mv_y)
 
static void FUNC() apply_prof_uni_w (uint8_t *_dst, const ptrdiff_t _dst_stride, const int16_t *src, const int16_t *diff_mv_x, const int16_t *diff_mv_y, const int denom, const int wx, const int _ox)
 
static void FUNC() derive_bdof_vx_vy (const int16_t *_src0, const int16_t *_src1, const int16_t **gradient_h, const int16_t **gradient_v, ptrdiff_t gradient_stride, int *vx, int *vy)
 
static void FUNC() apply_bdof_min_block (pixel *dst, const ptrdiff_t dst_stride, const int16_t *src0, const int16_t *src1, const int16_t **gradient_h, const int16_t **gradient_v, const int vx, const int vy)
 
static void FUNC() apply_bdof (uint8_t *_dst, const ptrdiff_t _dst_stride, int16_t *_src0, int16_t *_src1, const int block_w, const int block_h)
 
static void FUNC() dmvr (int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const intptr_t mx, const intptr_t my, const int width)
 
static void FUNC() dmvr_h (int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const intptr_t mx, const intptr_t my, const int width)
 
static void FUNC() dmvr_v (int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const intptr_t mx, const intptr_t my, const int width)
 
static void FUNC() dmvr_hv (int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const intptr_t mx, const intptr_t my, const int width)
 
static void FUNC() ff_vvc_inter_dsp_init (VVCInterDSPContext *const inter)
 

Macro Definition Documentation

◆ DMVR_FILTER

#define DMVR_FILTER (   src,
  stride 
)
Value:
(filter[0] * src[x] + \
filter[1] * src[x + stride])

Definition at line 319 of file vvc_inter_template.c.

◆ DMVR_SHIFT

#define DMVR_SHIFT (   s)    ((s) << (10 - BIT_DEPTH))

◆ PEL_FUNC

#define PEL_FUNC (   dst,
  C,
  idx1,
  idx2,
  a 
)
Value:
do { \
for (int w = 0; w < 7; w++) \
inter->dst[C][w][idx1][idx2] = FUNC(a); \
} while (0) \

Definition at line 415 of file vvc_inter_template.c.

◆ DIR_FUNCS

#define DIR_FUNCS (   d,
  C,
  c 
)
Value:
PEL_FUNC(put_##d, C, 0, 0, put_##d##_pixels); \
PEL_FUNC(put_##d, C, 0, 1, put_##d##_##c##_h); \
PEL_FUNC(put_##d, C, 1, 0, put_##d##_##c##_v); \
PEL_FUNC(put_##d, C, 1, 1, put_##d##_##c##_hv); \
PEL_FUNC(put_##d##_w, C, 0, 0, put_##d##_w_pixels); \
PEL_FUNC(put_##d##_w, C, 0, 1, put_##d##_##c##_w_h); \
PEL_FUNC(put_##d##_w, C, 1, 0, put_##d##_##c##_w_v); \
PEL_FUNC(put_##d##_w, C, 1, 1, put_##d##_##c##_w_hv);

Definition at line 421 of file vvc_inter_template.c.

◆ FUNCS

#define FUNCS (   C,
  c 
)
Value:
PEL_FUNC(put, C, 0, 0, put_pixels); \
PEL_FUNC(put, C, 0, 1, put_##c##_h); \
PEL_FUNC(put, C, 1, 0, put_##c##_v); \
PEL_FUNC(put, C, 1, 1, put_##c##_hv); \
DIR_FUNCS(uni, C, c); \

Definition at line 431 of file vvc_inter_template.c.

Function Documentation

◆ avg()

static void FUNC() avg ( uint8_t *  _dst,
const ptrdiff_t  _dst_stride,
const int16_t *  src0,
const int16_t *  src1,
const int  width,
const int  height 
)
static

Definition at line 25 of file vvc_inter_template.c.

Referenced by ff_vvc_inter_dsp_init().

◆ w_avg()

static void FUNC() w_avg ( uint8_t *  _dst,
const ptrdiff_t  _dst_stride,
const int16_t *  src0,
const int16_t *  src1,
const int  width,
const int  height,
const int  denom,
const int  w0,
const int  w1,
const int  o0,
const int  o1 
)
static

Definition at line 42 of file vvc_inter_template.c.

Referenced by ff_vvc_inter_dsp_init().

◆ put_ciip()

static void FUNC() put_ciip ( uint8_t *  _dst,
const ptrdiff_t  _dst_stride,
const int  width,
const int  height,
const uint8_t *  _inter,
const ptrdiff_t  _inter_stride,
const int  intra_weight 
)
static

Definition at line 60 of file vvc_inter_template.c.

Referenced by ff_vvc_inter_dsp_init().

◆ put_gpm()

static void FUNC() put_gpm ( uint8_t *  _dst,
ptrdiff_t  dst_stride,
const int  width,
const int  height,
const int16_t *  src0,
const int16_t *  src1,
const uint8_t *  weights,
const int  step_x,
const int  step_y 
)
static

Definition at line 78 of file vvc_inter_template.c.

Referenced by ff_vvc_inter_dsp_init().

◆ bdof_fetch_samples()

static void FUNC() bdof_fetch_samples ( int16_t *  _dst,
const uint8_t *  _src,
const ptrdiff_t  _src_stride,
const int  x_frac,
const int  y_frac,
const int  width,
const int  height 
)
static

Definition at line 101 of file vvc_inter_template.c.

Referenced by fetch_samples(), and ff_vvc_inter_dsp_init().

◆ fetch_samples()

static void FUNC() fetch_samples ( int16_t *  _dst,
const uint8_t *  _src,
const ptrdiff_t  _src_stride,
const int  x_frac,
const int  y_frac 
)
static

Definition at line 130 of file vvc_inter_template.c.

Referenced by ff_vvc_inter_dsp_init().

◆ prof_grad_filter()

static void FUNC() prof_grad_filter ( int16_t *  _gradient_h,
int16_t *  _gradient_v,
const ptrdiff_t  gradient_stride,
const int16_t *  _src,
const ptrdiff_t  src_stride,
const int  width,
const int  height,
const int  pad 
)
static

◆ apply_prof()

static void FUNC() apply_prof ( int16_t *  dst,
const int16_t *  src,
const int16_t *  diff_mv_x,
const int16_t *  diff_mv_y 
)
static

< dILimit

Definition at line 160 of file vvc_inter_template.c.

Referenced by ff_vvc_inter_dsp_init().

◆ apply_prof_uni()

static void FUNC() apply_prof_uni ( uint8_t *  _dst,
const ptrdiff_t  _dst_stride,
const int16_t *  src,
const int16_t *  diff_mv_x,
const int16_t *  diff_mv_y 
)
static

< dILimit

Definition at line 181 of file vvc_inter_template.c.

Referenced by ff_vvc_inter_dsp_init().

◆ apply_prof_uni_w()

static void FUNC() apply_prof_uni_w ( uint8_t *  _dst,
const ptrdiff_t  _dst_stride,
const int16_t *  src,
const int16_t *  diff_mv_x,
const int16_t *  diff_mv_y,
const int  denom,
const int  wx,
const int  _ox 
)
static

< dILimit

Definition at line 210 of file vvc_inter_template.c.

Referenced by ff_vvc_inter_dsp_init().

◆ derive_bdof_vx_vy()

static void FUNC() derive_bdof_vx_vy ( const int16_t *  _src0,
const int16_t *  _src1,
const int16_t **  gradient_h,
const int16_t **  gradient_v,
ptrdiff_t  gradient_stride,
int vx,
int vy 
)
static

Definition at line 237 of file vvc_inter_template.c.

Referenced by apply_bdof().

◆ apply_bdof_min_block()

static void FUNC() apply_bdof_min_block ( pixel dst,
const ptrdiff_t  dst_stride,
const int16_t *  src0,
const int16_t *  src1,
const int16_t **  gradient_h,
const int16_t **  gradient_v,
const int  vx,
const int  vy 
)
static

Definition at line 267 of file vvc_inter_template.c.

Referenced by apply_bdof().

◆ apply_bdof()

static void FUNC() apply_bdof ( uint8_t *  _dst,
const ptrdiff_t  _dst_stride,
int16_t *  _src0,
int16_t *  _src1,
const int  block_w,
const int  block_h 
)
static

Definition at line 288 of file vvc_inter_template.c.

Referenced by ff_vvc_inter_dsp_init().

◆ dmvr()

static void FUNC() dmvr ( int16_t *  dst,
const uint8_t *  _src,
const ptrdiff_t  _src_stride,
const int  height,
const intptr_t  mx,
const intptr_t  my,
const int  width 
)
static

Definition at line 324 of file vvc_inter_template.c.

Referenced by ff_vvc_inter_dsp_init(), and ff_vvc_set_intra_mvf().

◆ dmvr_h()

static void FUNC() dmvr_h ( int16_t *  dst,
const uint8_t *  _src,
const ptrdiff_t  _src_stride,
const int  height,
const intptr_t  mx,
const intptr_t  my,
const int  width 
)
static

Definition at line 347 of file vvc_inter_template.c.

Referenced by ff_vvc_inter_dsp_init().

◆ dmvr_v()

static void FUNC() dmvr_v ( int16_t *  dst,
const uint8_t *  _src,
const ptrdiff_t  _src_stride,
const int  height,
const intptr_t  mx,
const intptr_t  my,
const int  width 
)
static

Definition at line 365 of file vvc_inter_template.c.

Referenced by ff_vvc_inter_dsp_init().

◆ dmvr_hv()

static void FUNC() dmvr_hv ( int16_t *  dst,
const uint8_t *  _src,
const ptrdiff_t  _src_stride,
const int  height,
const intptr_t  mx,
const intptr_t  my,
const int  width 
)
static

Definition at line 384 of file vvc_inter_template.c.

Referenced by ff_vvc_inter_dsp_init().

◆ ff_vvc_inter_dsp_init()

static void FUNC() ff_vvc_inter_dsp_init ( VVCInterDSPContext *const  inter)
static

Definition at line 438 of file vvc_inter_template.c.

w
uint8_t w
Definition: llviddspenc.c:38
filter
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce then the filter should push the output frames on the output link immediately As an exception to the previous rule if the input frame is enough to produce several output frames then the filter needs output only at least one per link The additional frames can be left buffered in the filter
Definition: filter_design.txt:228
C
s EdgeDetect Foobar g libavfilter vf_edgedetect c libavfilter vf_foobar c edit libavfilter and add an entry for foobar following the pattern of the other filters edit libavfilter allfilters and add an entry for foobar following the pattern of the other filters configure make j< whatever > ffmpeg ffmpeg i you should get a foobar png with Lena edge detected That s your new playground is ready Some little details about what s going which in turn will define variables for the build system and the C
Definition: writing_filters.txt:58
c
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
Definition: undefined.txt:32
a
The reader does not expect b to be semantically here and if the code is changed by maybe adding a a division or other the signedness will almost certainly be mistaken To avoid this confusion a new type was SUINT is the C unsigned type but it holds a signed int to use the same example SUINT a
Definition: undefined.txt:41
put_pixels
static void FUNC() put_pixels(int16_t *dst, const uint8_t *_src, const ptrdiff_t _src_stride, const int height, const int8_t *hf, const int8_t *vf, const int width)
Definition: h2656_inter_template.c:29
stride
#define stride
Definition: h264pred_template.c:537
FUNC
#define FUNC(a)
Definition: bit_depth_template.c:104
_
#define _
PEL_FUNC
#define PEL_FUNC(dst, C, idx1, idx2, a)
Definition: vvc_inter_template.c:415
src
INIT_CLIP pixel * src
Definition: h264pred_template.c:418
d
d
Definition: ffmpeg_filter.c:409