FFmpeg
Macros | Functions
dsp_init.c File Reference
#include "libavutil/cpu.h"
#include "libavutil/aarch64/cpu.h"
#include "libavcodec/aarch64/h26x/dsp.h"
#include "libavcodec/vvc/dsp.h"
#include "libavcodec/vvc/dec.h"
#include "libavcodec/vvc/ctu.h"
#include "alf_template.c"
#include "of_template.c"

Go to the source code of this file.

Macros

#define BDOF_BLOCK_SIZE   16
 
#define BDOF_MIN_BLOCK_SIZE   4
 
#define BIT_DEPTH   8
 
#define BIT_DEPTH   10
 
#define BIT_DEPTH   12
 
#define W_AVG_FUN(bit_depth)
 
#define DMVR_FUN(fn, bd)
 

Functions

void ff_vvc_prof_grad_filter_8x_neon (int16_t *gradient_h, int16_t *gradient_v, ptrdiff_t gradient_stride, const int16_t *_src, ptrdiff_t src_stride, int width, int height)
 
void ff_vvc_derive_bdof_vx_vy_neon (const int16_t *_src0, const int16_t *_src1, int pad_mask, const int16_t **gradient_h, const int16_t **gradient_v, int16_t *vx, int16_t *vy)
 
int ff_vvc_sad_neon (const int16_t *src0, const int16_t *src1, int dx, int dy, const int block_w, const int block_h)
 
void ff_vvc_avg_8_neon (uint8_t *dst, ptrdiff_t dst_stride, const int16_t *src0, const int16_t *src1, int width, int height)
 
void ff_vvc_avg_10_neon (uint8_t *dst, ptrdiff_t dst_stride, const int16_t *src0, const int16_t *src1, int width, int height)
 
void ff_vvc_avg_12_neon (uint8_t *dst, ptrdiff_t dst_stride, const int16_t *src0, const int16_t *src1, int width, int height)
 
void ff_vvc_w_avg_8_neon (uint8_t *_dst, ptrdiff_t _dst_stride, const int16_t *src0, const int16_t *src1, int width, int height, uintptr_t w0_w1, uintptr_t offset_shift)
 
void ff_vvc_w_avg_10_neon (uint8_t *_dst, ptrdiff_t _dst_stride, const int16_t *src0, const int16_t *src1, int width, int height, uintptr_t w0_w1, uintptr_t offset_shift)
 
void ff_vvc_w_avg_12_neon (uint8_t *_dst, ptrdiff_t _dst_stride, const int16_t *src0, const int16_t *src1, int width, int height, uintptr_t w0_w1, uintptr_t offset_shift)
 
void ff_vvc_dsp_init_aarch64 (VVCDSPContext *const c, const int bd)
 

Macro Definition Documentation

◆ BDOF_BLOCK_SIZE

#define BDOF_BLOCK_SIZE   16

Definition at line 30 of file dsp_init.c.

◆ BDOF_MIN_BLOCK_SIZE

#define BDOF_MIN_BLOCK_SIZE   4

Definition at line 31 of file dsp_init.c.

◆ BIT_DEPTH [1/3]

#define BIT_DEPTH   8

Definition at line 55 of file dsp_init.c.

◆ BIT_DEPTH [2/3]

#define BIT_DEPTH   10

Definition at line 55 of file dsp_init.c.

◆ BIT_DEPTH [3/3]

#define BIT_DEPTH   12

Definition at line 55 of file dsp_init.c.

◆ W_AVG_FUN

#define W_AVG_FUN (   bit_depth)
Value:
static void vvc_w_avg_ ## bit_depth(uint8_t *dst, ptrdiff_t dst_stride, \
const int16_t *src0, const int16_t *src1, int width, int height, \
int denom, int w0, int w1, int o0, int o1) \
{ \
int shift = denom + FFMAX(3, 15 - bit_depth); \
int offset = ((o0 + o1) * (1 << (bit_depth - 8)) + 1) * (1 << (shift - 1)); \
uintptr_t w0_w1 = ((uintptr_t)w0 << 32) | (uint32_t)w1; \
uintptr_t offset_shift = ((uintptr_t)offset << 32) | (uint32_t)shift; \
ff_vvc_w_avg_ ## bit_depth ## _neon(dst, dst_stride, src0, src1, width, height, w0_w1, offset_shift); \
}

Definition at line 90 of file dsp_init.c.

◆ DMVR_FUN

#define DMVR_FUN (   fn,
  bd 
)
Value:
void ff_vvc_dmvr_ ## fn ## bd ## _neon(int16_t *dst, \
const uint8_t *_src, ptrdiff_t _src_stride, int height, \
intptr_t mx, intptr_t my, int width);

Definition at line 106 of file dsp_init.c.

Function Documentation

◆ ff_vvc_prof_grad_filter_8x_neon()

void ff_vvc_prof_grad_filter_8x_neon ( int16_t *  gradient_h,
int16_t *  gradient_v,
ptrdiff_t  gradient_stride,
const int16_t *  _src,
ptrdiff_t  src_stride,
int  width,
int  height 
)

Referenced by FUNC2().

◆ ff_vvc_derive_bdof_vx_vy_neon()

void ff_vvc_derive_bdof_vx_vy_neon ( const int16_t *  _src0,
const int16_t *  _src1,
int  pad_mask,
const int16_t **  gradient_h,
const int16_t **  gradient_v,
int16_t *  vx,
int16_t *  vy 
)

Referenced by FUNC2().

◆ ff_vvc_sad_neon()

int ff_vvc_sad_neon ( const int16_t *  src0,
const int16_t *  src1,
int  dx,
int  dy,
const int  block_w,
const int  block_h 
)

Referenced by ff_vvc_dsp_init_aarch64().

◆ ff_vvc_avg_8_neon()

void ff_vvc_avg_8_neon ( uint8_t *  dst,
ptrdiff_t  dst_stride,
const int16_t *  src0,
const int16_t *  src1,
int  width,
int  height 
)

Referenced by ff_vvc_dsp_init_aarch64().

◆ ff_vvc_avg_10_neon()

void ff_vvc_avg_10_neon ( uint8_t *  dst,
ptrdiff_t  dst_stride,
const int16_t *  src0,
const int16_t *  src1,
int  width,
int  height 
)

Referenced by ff_vvc_dsp_init_aarch64().

◆ ff_vvc_avg_12_neon()

void ff_vvc_avg_12_neon ( uint8_t *  dst,
ptrdiff_t  dst_stride,
const int16_t *  src0,
const int16_t *  src1,
int  width,
int  height 
)

Referenced by ff_vvc_dsp_init_aarch64().

◆ ff_vvc_w_avg_8_neon()

void ff_vvc_w_avg_8_neon ( uint8_t *  _dst,
ptrdiff_t  _dst_stride,
const int16_t *  src0,
const int16_t *  src1,
int  width,
int  height,
uintptr_t  w0_w1,
uintptr_t  offset_shift 
)

◆ ff_vvc_w_avg_10_neon()

void ff_vvc_w_avg_10_neon ( uint8_t *  _dst,
ptrdiff_t  _dst_stride,
const int16_t *  src0,
const int16_t *  src1,
int  width,
int  height,
uintptr_t  w0_w1,
uintptr_t  offset_shift 
)

◆ ff_vvc_w_avg_12_neon()

void ff_vvc_w_avg_12_neon ( uint8_t *  _dst,
ptrdiff_t  _dst_stride,
const int16_t *  src0,
const int16_t *  src1,
int  width,
int  height,
uintptr_t  w0_w1,
uintptr_t  offset_shift 
)

◆ ff_vvc_dsp_init_aarch64()

void ff_vvc_dsp_init_aarch64 ( VVCDSPContext *const  c,
const int  bd 
)

Definition at line 117 of file dsp_init.c.

Referenced by ff_vvc_dsp_init().

src1
const pixel * src1
Definition: h264pred_template.c:421
FFMAX
#define FFMAX(a, b)
Definition: macros.h:47
bit_depth
static void bit_depth(AudioStatsContext *s, const uint64_t *const mask, uint8_t *depth)
Definition: af_astats.c:246
_src
uint8_t ptrdiff_t const uint8_t * _src
Definition: dsp.h:52
mx
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t mx
Definition: dsp.h:53
my
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t my
Definition: dsp.h:53
height
#define height
Definition: dsp.h:85
shift
static int shift(int a, int b)
Definition: bonk.c:261
dst
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Definition: dsp.h:83
fn
#define fn(a)
Definition: aap_template.c:37
offset
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf offset
Definition: writing_filters.txt:86
src0
const pixel *const src0
Definition: h264pred_template.c:420
width
#define width
Definition: dsp.h:85