Libav
Macros | Functions
hevcdsp_init.c File Reference
#include "config.h"
#include "libavutil/cpu.h"
#include "libavutil/x86/cpu.h"
#include "libavcodec/hevcdsp.h"

Go to the source code of this file.

Macros

#define LFC_FUNC(DIR, DEPTH, OPT)   void ff_hevc_ ## DIR ## _loop_filter_chroma_ ## DEPTH ## _ ## OPT(uint8_t *pix, ptrdiff_t stride, int *tc, uint8_t *no_p, uint8_t *no_q);
 
#define LFL_FUNC(DIR, DEPTH, OPT)   void ff_hevc_ ## DIR ## _loop_filter_luma_ ## DEPTH ## _ ## OPT(uint8_t *pix, ptrdiff_t stride, int beta, int *tc, uint8_t *no_p, uint8_t *no_q);
 
#define LFC_FUNCS(type, depth)
 
#define LFL_FUNCS(type, depth)
 
#define idct_dc_proto(size, bitd, opt)   void ff_hevc_idct_ ## size ## _dc_add_ ## bitd ## _ ## opt(uint8_t *dst, int16_t *coeffs, ptrdiff_t stride)
 
#define IDCT_FUNCS(W, opt)
 
#define GET_PIXELS(width, depth, cf)
 
#define INTERP_HV_FUNC(width, cf)
 
#define QPEL_FUNC_HV(width, depth, cf_h, cf_v, cf_hv)
 
#define QPEL_FUNCS(width, depth, cf_h, cf_v, cf_hv)
 
#define EPEL_FUNC_HV(width, depth, cf_h, cf_v, cf_hv)
 
#define EPEL_FUNCS(width, depth, cf_h, cf_v, cf_hv)
 
#define PUT_PRED(width, depth, cf_uw, cf_w)
 
#define SET_LUMA_FUNCS(tabname, funcname, depth, cf)
 
#define SET_CHROMA_FUNCS(tabname, funcname, depth, cf)
 
#define SET_QPEL_FUNCS(v, h, depth, cf, name)   SET_LUMA_FUNCS (put_hevc_qpel[v][h], name, depth, cf)
 
#define SET_EPEL_FUNCS(v, h, depth, cf, name)   SET_CHROMA_FUNCS(put_hevc_epel[v][h], name, depth, cf)
 

Functions

 idct_dc_proto (4, 8, mmxext)
 
 idct_dc_proto (8, 8, mmxext)
 
 idct_dc_proto (16, 8, sse2)
 
 idct_dc_proto (32, 8, sse2)
 
 idct_dc_proto (32, 8, avx2)
 
 idct_dc_proto (4, 10, mmxext)
 
 idct_dc_proto (8, 10, sse2)
 
 idct_dc_proto (16, 10, sse2)
 
 idct_dc_proto (32, 10, sse2)
 
 idct_dc_proto (8, 10, avx)
 
 idct_dc_proto (16, 10, avx)
 
 idct_dc_proto (32, 10, avx)
 
 idct_dc_proto (16, 10, avx2)
 
 idct_dc_proto (32, 10, avx2)
 
 IDCT_FUNCS (4x4, mmxext)
 
 IDCT_FUNCS (8x8, mmxext)
 
 IDCT_FUNCS (8x8, sse2)
 
 IDCT_FUNCS (16x16, sse2)
 
 IDCT_FUNCS (32x32, sse2)
 
 IDCT_FUNCS (16x16, avx2)
 
 IDCT_FUNCS (32x32, avx2)
 
void ff_hevc_dsp_init_x86 (HEVCDSPContext *c, const int bit_depth)
 

Macro Definition Documentation

◆ LFC_FUNC

#define LFC_FUNC (   DIR,
  DEPTH,
  OPT 
)    void ff_hevc_ ## DIR ## _loop_filter_chroma_ ## DEPTH ## _ ## OPT(uint8_t *pix, ptrdiff_t stride, int *tc, uint8_t *no_p, uint8_t *no_q);

Definition at line 29 of file hevcdsp_init.c.

◆ LFL_FUNC

#define LFL_FUNC (   DIR,
  DEPTH,
  OPT 
)    void ff_hevc_ ## DIR ## _loop_filter_luma_ ## DEPTH ## _ ## OPT(uint8_t *pix, ptrdiff_t stride, int beta, int *tc, uint8_t *no_p, uint8_t *no_q);

Definition at line 32 of file hevcdsp_init.c.

◆ LFC_FUNCS

#define LFC_FUNCS (   type,
  depth 
)
Value:
LFC_FUNC(h, depth, sse2) \
LFC_FUNC(v, depth, sse2)
#define LFC_FUNC(DIR, DEPTH, OPT)
Definition: hevcdsp_init.c:29

Definition at line 35 of file hevcdsp_init.c.

◆ LFL_FUNCS

#define LFL_FUNCS (   type,
  depth 
)
Value:
LFL_FUNC(h, depth, ssse3) \
LFL_FUNC(v, depth, ssse3)
#define LFL_FUNC(DIR, DEPTH, OPT)
Definition: hevcdsp_init.c:32

Definition at line 39 of file hevcdsp_init.c.

◆ idct_dc_proto

#define idct_dc_proto (   size,
  bitd,
  opt 
)    void ff_hevc_idct_ ## size ## _dc_add_ ## bitd ## _ ## opt(uint8_t *dst, int16_t *coeffs, ptrdiff_t stride)

Definition at line 48 of file hevcdsp_init.c.

◆ IDCT_FUNCS

#define IDCT_FUNCS (   W,
  opt 
)
Value:
void ff_hevc_idct_ ## W ## _dc_8_ ## opt(int16_t *coeffs); \
void ff_hevc_idct_ ## W ## _dc_10_ ## opt(int16_t *coeffs)
#define W(a, i, v)
Definition: jpegls.h:121

Definition at line 69 of file hevcdsp_init.c.

◆ GET_PIXELS

#define GET_PIXELS (   width,
  depth,
  cf 
)
Value:
void ff_hevc_get_pixels_ ## width ## _ ## depth ## _ ## cf(int16_t *dst, ptrdiff_t dststride, \
uint8_t *src, ptrdiff_t srcstride, \
int height, int mx, int my, int16_t *mcbuffer);
#define _(x)
uint8_t
#define src
Definition: vp8dsp.c:254
static int width
Definition: utils.c:156
int height
Definition: gxfenc.c:72

Definition at line 81 of file hevcdsp_init.c.

◆ INTERP_HV_FUNC

#define INTERP_HV_FUNC (   width,
  cf 
)
Value:
void ff_hevc_qpel_hv_ ## width ## _ ## cf(int16_t *dst, ptrdiff_t dststride, \
int16_t *src, ptrdiff_t srcstride, \
int height, int mx, int my, int16_t *mcbuffer); \
void ff_hevc_epel_hv_ ## width ## _ ## cf(int16_t *dst, ptrdiff_t dststride, \
int16_t *src, ptrdiff_t srcstride, \
int height, int mx, int my, int16_t *mcbuffer);
#define _(x)
#define src
Definition: vp8dsp.c:254
static int width
Definition: utils.c:156
int height
Definition: gxfenc.c:72

Definition at line 105 of file hevcdsp_init.c.

◆ QPEL_FUNC_HV

#define QPEL_FUNC_HV (   width,
  depth,
  cf_h,
  cf_v,
  cf_hv 
)

Definition at line 135 of file hevcdsp_init.c.

◆ QPEL_FUNCS

#define QPEL_FUNCS (   width,
  depth,
  cf_h,
  cf_v,
  cf_hv 
)
Value:
void ff_hevc_qpel_h_ ## width ## _ ## depth ## _ ## cf_h(int16_t *dst, ptrdiff_t dststride, \
uint8_t *src, ptrdiff_t srcstride, \
int height, int mx, int my, int16_t *mcbuffer); \
void ff_hevc_qpel_v_ ## width ## _ ## depth ## _ ## cf_v(int16_t *dst, ptrdiff_t dststride, \
uint8_t *src, ptrdiff_t srcstride, \
int height, int mx, int my, int16_t *mcbuffer); \
QPEL_FUNC_HV(width, depth, cf_h, cf_v, cf_hv)
#define _(x)
uint8_t
#define src
Definition: vp8dsp.c:254
static int width
Definition: utils.c:156
int height
Definition: gxfenc.c:72

Definition at line 138 of file hevcdsp_init.c.

◆ EPEL_FUNC_HV

#define EPEL_FUNC_HV (   width,
  depth,
  cf_h,
  cf_v,
  cf_hv 
)

Definition at line 178 of file hevcdsp_init.c.

◆ EPEL_FUNCS

#define EPEL_FUNCS (   width,
  depth,
  cf_h,
  cf_v,
  cf_hv 
)
Value:
void ff_hevc_epel_h_ ## width ## _ ## depth ## _ ## cf_h(int16_t *dst, ptrdiff_t dststride, \
uint8_t *src, ptrdiff_t srcstride, \
int height, int mx, int my, int16_t *mcbuffer); \
void ff_hevc_epel_v_ ## width ## _ ## depth ## _ ## cf_v(int16_t *dst, ptrdiff_t dststride, \
uint8_t *src, ptrdiff_t srcstride, \
int height, int mx, int my, int16_t *mcbuffer); \
EPEL_FUNC_HV(width, depth, cf_h, cf_v, cf_hv)
#define _(x)
uint8_t
#define src
Definition: vp8dsp.c:254
static int width
Definition: utils.c:156
int height
Definition: gxfenc.c:72

Definition at line 181 of file hevcdsp_init.c.

◆ PUT_PRED

#define PUT_PRED (   width,
  depth,
  cf_uw,
  cf_w 
)
Value:
void ff_hevc_put_unweighted_pred_ ## width ## _ ## depth ## _ ## cf_uw(uint8_t *dst, ptrdiff_t dststride, \
int16_t *src, ptrdiff_t srcstride, \
int height); \
void ff_hevc_put_unweighted_pred_avg_ ## width ## _ ## depth ## _ ## cf_uw(uint8_t *dst, ptrdiff_t dststride, \
int16_t *src1, int16_t *src2, \
ptrdiff_t srcstride, int height); \
void ff_hevc_put_weighted_pred_ ## width ## _ ## depth ## _ ## cf_w(uint8_t denom, int16_t weight, int16_t offset, \
uint8_t *dst, ptrdiff_t dststride, \
int16_t *src, ptrdiff_t srcstride, \
int height); \
void ff_hevc_put_weighted_pred_avg_ ## width ## _ ## depth ## _ ## cf_w(uint8_t denom, int16_t weight0, int16_t weight1, \
int16_t offset0, int16_t offset1, \
uint8_t *dst, ptrdiff_t dststride, \
int16_t *src0, int16_t *src1, ptrdiff_t srcstride, \
int height);
#define _(x)
uint8_t
#define src
Definition: vp8dsp.c:254
static int width
Definition: utils.c:156
#define src1
Definition: h264pred.c:139
#define src0
Definition: h264pred.c:138
int height
Definition: gxfenc.c:72

Definition at line 204 of file hevcdsp_init.c.

◆ SET_LUMA_FUNCS

#define SET_LUMA_FUNCS (   tabname,
  funcname,
  depth,
  cf 
)
Value:
c->tabname[0] = funcname ## _4_ ## depth ## _ ## cf; \
c->tabname[1] = funcname ## _8_ ## depth ## _ ## cf; \
c->tabname[2] = funcname ## _12_ ## depth ## _ ## cf; \
c->tabname[3] = funcname ## _16_ ## depth ## _ ## cf; \
c->tabname[4] = funcname ## _24_ ## depth ## _ ## cf; \
c->tabname[5] = funcname ## _32_ ## depth ## _ ## cf; \
c->tabname[6] = funcname ## _48_ ## depth ## _ ## cf; \
c->tabname[7] = funcname ## _64_ ## depth ## _ ## cf;
#define _(x)

Referenced by ff_hevc_dsp_init_x86().

◆ SET_CHROMA_FUNCS

#define SET_CHROMA_FUNCS (   tabname,
  funcname,
  depth,
  cf 
)
Value:
c->tabname[1] = funcname ## _4_ ## depth ## _ ## cf; \
c->tabname[3] = funcname ## _8_ ## depth ## _ ## cf; \
c->tabname[4] = funcname ## _12_ ## depth ## _ ## cf; \
c->tabname[5] = funcname ## _16_ ## depth ## _ ## cf; \
c->tabname[6] = funcname ## _24_ ## depth ## _ ## cf; \
c->tabname[7] = funcname ## _32_ ## depth ## _ ## cf;
#define _(x)

Referenced by ff_hevc_dsp_init_x86().

◆ SET_QPEL_FUNCS

#define SET_QPEL_FUNCS (   v,
  h,
  depth,
  cf,
  name 
)    SET_LUMA_FUNCS (put_hevc_qpel[v][h], name, depth, cf)

Referenced by ff_hevc_dsp_init_x86().

◆ SET_EPEL_FUNCS

#define SET_EPEL_FUNCS (   v,
  h,
  depth,
  cf,
  name 
)    SET_CHROMA_FUNCS(put_hevc_epel[v][h], name, depth, cf)

Referenced by ff_hevc_dsp_init_x86().

Function Documentation

◆ idct_dc_proto() [1/14]

idct_dc_proto ( ,
,
mmxext   
)

◆ idct_dc_proto() [2/14]

idct_dc_proto ( ,
,
mmxext   
)

◆ idct_dc_proto() [3/14]

idct_dc_proto ( 16  ,
,
sse2   
)

◆ idct_dc_proto() [4/14]

idct_dc_proto ( 32  ,
,
sse2   
)

◆ idct_dc_proto() [5/14]

idct_dc_proto ( 32  ,
,
avx2   
)

◆ idct_dc_proto() [6/14]

idct_dc_proto ( ,
10  ,
mmxext   
)

◆ idct_dc_proto() [7/14]

idct_dc_proto ( ,
10  ,
sse2   
)

◆ idct_dc_proto() [8/14]

idct_dc_proto ( 16  ,
10  ,
sse2   
)

◆ idct_dc_proto() [9/14]

idct_dc_proto ( 32  ,
10  ,
sse2   
)

◆ idct_dc_proto() [10/14]

idct_dc_proto ( ,
10  ,
avx   
)

◆ idct_dc_proto() [11/14]

idct_dc_proto ( 16  ,
10  ,
avx   
)

◆ idct_dc_proto() [12/14]

idct_dc_proto ( 32  ,
10  ,
avx   
)

◆ idct_dc_proto() [13/14]

idct_dc_proto ( 16  ,
10  ,
avx2   
)

◆ idct_dc_proto() [14/14]

idct_dc_proto ( 32  ,
10  ,
avx2   
)

◆ IDCT_FUNCS() [1/7]

IDCT_FUNCS ( 4x4  ,
mmxext   
)

◆ IDCT_FUNCS() [2/7]

IDCT_FUNCS ( 8x8  ,
mmxext   
)

◆ IDCT_FUNCS() [3/7]

IDCT_FUNCS ( 8x8  ,
sse2   
)

◆ IDCT_FUNCS() [4/7]

IDCT_FUNCS ( 16x16  ,
sse2   
)

◆ IDCT_FUNCS() [5/7]

IDCT_FUNCS ( 32x32  ,
sse2   
)

◆ IDCT_FUNCS() [6/7]

IDCT_FUNCS ( 16x16  ,
avx2   
)

◆ IDCT_FUNCS() [7/7]

IDCT_FUNCS ( 32x32  ,
avx2   
)

◆ ff_hevc_dsp_init_x86()

void ff_hevc_dsp_init_x86 ( HEVCDSPContext c,
const int  bit_depth 
)

Definition at line 239 of file hevcdsp_init.c.

Referenced by ff_hevc_dsp_init().