FFmpeg
Macros | Functions
h264dsp_init.c File Reference
#include "libavutil/attributes.h"
#include "libavutil/cpu.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/cpu.h"
#include "libavcodec/h264dsp.h"

Go to the source code of this file.

Macros

#define IDCT_ADD_FUNC(NUM, DEPTH, OPT)
 
#define IDCT_ADD_REP_FUNC(NUM, REP, DEPTH, OPT)
 
#define IDCT_ADD_REP_FUNC2(NUM, REP, DEPTH, OPT)
 
#define LF_FUNC(DIR, TYPE, DEPTH, OPT)
 
#define LF_IFUNC(DIR, TYPE, DEPTH, OPT)
 
#define LF_FUNCS(type, depth)
 
#define H264_WEIGHT(W, OPT)
 
#define H264_BIWEIGHT(W, OPT)
 
#define H264_BIWEIGHT_MMX(W)
 
#define H264_BIWEIGHT_MMX_SSE(W)
 
#define H264_WEIGHT_10(W, DEPTH, OPT)
 
#define H264_BIWEIGHT_10(W, DEPTH, OPT)
 
#define H264_BIWEIGHT_10_SSE(W, DEPTH)
 

Functions

void ff_h264_luma_dc_dequant_idct_mmx (int16_t *output, int16_t *input, int qmul)
 
void ff_h264_luma_dc_dequant_idct_sse2 (int16_t *output, int16_t *input, int qmul)
 
void ff_h264_loop_filter_strength_mmxext (int16_t bS[2][4][4], uint8_t nnz[40], int8_t ref[2][40], int16_t mv[2][40][2], int bidir, int edges, int step, int mask_mv0, int mask_mv1, int field)
 
av_cold void ff_h264dsp_init_x86 (H264DSPContext *c, const int bit_depth, const int chroma_format_idc)
 

Macro Definition Documentation

◆ IDCT_ADD_FUNC

#define IDCT_ADD_FUNC (   NUM,
  DEPTH,
  OPT 
)
Value:
void ff_h264_idct ## NUM ## _add_ ## DEPTH ## _ ## OPT(uint8_t *dst, \
int16_t *block, \
int stride);

Definition at line 29 of file h264dsp_init.c.

◆ IDCT_ADD_REP_FUNC

#define IDCT_ADD_REP_FUNC (   NUM,
  REP,
  DEPTH,
  OPT 
)
Value:
void ff_h264_idct ## NUM ## _add ## REP ## _ ## DEPTH ## _ ## OPT \
(uint8_t *dst, const int *block_offset, \
int16_t *block, int stride, const uint8_t nnzc[5 * 8]);

Definition at line 52 of file h264dsp_init.c.

◆ IDCT_ADD_REP_FUNC2

#define IDCT_ADD_REP_FUNC2 (   NUM,
  REP,
  DEPTH,
  OPT 
)
Value:
void ff_h264_idct ## NUM ## _add ## REP ## _ ## DEPTH ## _ ## OPT \
(uint8_t **dst, const int *block_offset, \
int16_t *block, int stride, const uint8_t nnzc[15 * 8]);

Definition at line 74 of file h264dsp_init.c.

◆ LF_FUNC

#define LF_FUNC (   DIR,
  TYPE,
  DEPTH,
  OPT 
)
Value:
void ff_deblock_ ## DIR ## _ ## TYPE ## _ ## DEPTH ## _ ## OPT(uint8_t *pix, \
ptrdiff_t stride, \
int alpha, \
int beta, \
int8_t *tc0);

Definition at line 102 of file h264dsp_init.c.

◆ LF_IFUNC

#define LF_IFUNC (   DIR,
  TYPE,
  DEPTH,
  OPT 
)
Value:
void ff_deblock_ ## DIR ## _ ## TYPE ## _ ## DEPTH ## _ ## OPT(uint8_t *pix, \
ptrdiff_t stride, \
int alpha, \
int beta);

Definition at line 108 of file h264dsp_init.c.

◆ LF_FUNCS

#define LF_FUNCS (   type,
  depth 
)
Value:
LF_FUNC(h, chroma, depth, mmxext) \
LF_IFUNC(h, chroma_intra, depth, mmxext) \
LF_FUNC(h, chroma422, depth, mmxext) \
LF_IFUNC(h, chroma422_intra, depth, mmxext) \
LF_FUNC(v, chroma, depth, mmxext) \
LF_IFUNC(v, chroma_intra, depth, mmxext) \
LF_FUNC(h, luma, depth, mmxext) \
LF_IFUNC(h, luma_intra, depth, mmxext) \
LF_FUNC(h, luma, depth, sse2) \
LF_IFUNC(h, luma_intra, depth, sse2) \
LF_FUNC(v, luma, depth, sse2) \
LF_IFUNC(v, luma_intra, depth, sse2) \
LF_FUNC(h, chroma, depth, sse2) \
LF_IFUNC(h, chroma_intra, depth, sse2) \
LF_FUNC(h, chroma422, depth, sse2) \
LF_IFUNC(h, chroma422_intra, depth, sse2) \
LF_FUNC(v, chroma, depth, sse2) \
LF_IFUNC(v, chroma_intra, depth, sse2) \
LF_FUNC(h, luma, depth, avx) \
LF_IFUNC(h, luma_intra, depth, avx) \
LF_FUNC(v, luma, depth, avx) \
LF_IFUNC(v, luma_intra, depth, avx) \
LF_FUNC(h, chroma, depth, avx) \
LF_IFUNC(h, chroma_intra, depth, avx) \
LF_FUNC(h, chroma422, depth, avx) \
LF_IFUNC(h, chroma422_intra, depth, avx) \
LF_FUNC(v, chroma, depth, avx) \
LF_IFUNC(v, chroma_intra, depth, avx)

Definition at line 114 of file h264dsp_init.c.

◆ H264_WEIGHT

#define H264_WEIGHT (   W,
  OPT 
)
Value:
void ff_h264_weight_ ## W ## _ ## OPT(uint8_t *dst, ptrdiff_t stride, \
int height, int log2_denom, \
int weight, int offset);

Definition at line 175 of file h264dsp_init.c.

◆ H264_BIWEIGHT

#define H264_BIWEIGHT (   W,
  OPT 
)
Value:
void ff_h264_biweight_ ## W ## _ ## OPT(uint8_t *dst, uint8_t *src, \
ptrdiff_t stride, int height, \
int log2_denom, int weightd, \
int weights, int offset);

Definition at line 180 of file h264dsp_init.c.

◆ H264_BIWEIGHT_MMX

#define H264_BIWEIGHT_MMX (   W)
Value:
H264_WEIGHT(W, mmxext) \
H264_BIWEIGHT(W, mmxext)

Definition at line 186 of file h264dsp_init.c.

◆ H264_BIWEIGHT_MMX_SSE

#define H264_BIWEIGHT_MMX_SSE (   W)
Value:
H264_WEIGHT(W, sse2) \
H264_BIWEIGHT(W, sse2) \
H264_BIWEIGHT(W, ssse3)

Definition at line 190 of file h264dsp_init.c.

◆ H264_WEIGHT_10

#define H264_WEIGHT_10 (   W,
  DEPTH,
  OPT 
)
Value:
void ff_h264_weight_ ## W ## _ ## DEPTH ## _ ## OPT(uint8_t *dst, \
ptrdiff_t stride, \
int height, \
int log2_denom, \
int weight, \
int offset);

Definition at line 200 of file h264dsp_init.c.

◆ H264_BIWEIGHT_10

#define H264_BIWEIGHT_10 (   W,
  DEPTH,
  OPT 
)
Value:
void ff_h264_biweight_ ## W ## _ ## DEPTH ## _ ## OPT(uint8_t *dst, \
uint8_t *src, \
ptrdiff_t stride, \
int height, \
int log2_denom, \
int weightd, \
int weights, \
int offset);

Definition at line 208 of file h264dsp_init.c.

◆ H264_BIWEIGHT_10_SSE

#define H264_BIWEIGHT_10_SSE (   W,
  DEPTH 
)
Value:
H264_WEIGHT_10(W, DEPTH, sse4) \
H264_BIWEIGHT_10(W, DEPTH, sse2) \
H264_BIWEIGHT_10(W, DEPTH, sse4)

Definition at line 218 of file h264dsp_init.c.

Function Documentation

◆ ff_h264_luma_dc_dequant_idct_mmx()

void ff_h264_luma_dc_dequant_idct_mmx ( int16_t *  output,
int16_t *  input,
int  qmul 
)

Referenced by ff_h264dsp_init_x86().

◆ ff_h264_luma_dc_dequant_idct_sse2()

void ff_h264_luma_dc_dequant_idct_sse2 ( int16_t *  output,
int16_t *  input,
int  qmul 
)

Referenced by ff_h264dsp_init_x86().

◆ ff_h264_loop_filter_strength_mmxext()

void ff_h264_loop_filter_strength_mmxext ( int16_t  bS[2][4][4],
uint8_t  nnz[40],
int8_t  ref[2][40],
int16_t  mv[2][40][2],
int  bidir,
int  edges,
int  step,
int  mask_mv0,
int  mask_mv1,
int  field 
)

Referenced by ff_h264dsp_init_x86().

◆ ff_h264dsp_init_x86()

av_cold void ff_h264dsp_init_x86 ( H264DSPContext c,
const int  bit_depth,
const int  chroma_format_idc 
)

Definition at line 228 of file h264dsp_init.c.

Referenced by ff_h264dsp_init().

stride
int stride
Definition: mace.c:144
W
@ W
Definition: vf_addroi.c:26
LF_FUNC
#define LF_FUNC(DIR, TYPE, DEPTH, OPT)
Definition: h264dsp_init.c:102
chroma
static av_always_inline void chroma(WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
Definition: vf_waveform.c:1634
H264_WEIGHT_10
#define H264_WEIGHT_10(W, DEPTH, OPT)
Definition: h264dsp_init.c:200
H264_WEIGHT
#define H264_WEIGHT(W, OPT)
Definition: h264dsp_init.c:175
src
#define src
Definition: vp8dsp.c:255
TYPE
#define TYPE
Definition: ffv1.h:194
weight
static int weight(int i, int blen, int offset)
Definition: diracdec.c:1561
H264_BIWEIGHT_MMX
#define H264_BIWEIGHT_MMX(W)
Definition: h264dsp_init.c:186
height
#define height
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
weights
static const int weights[]
Definition: hevc_pel.c:32
DEPTH
#define DEPTH
Definition: v210enc.c:41
_
#define _
alpha
static const int16_t alpha[]
Definition: ilbcdata.h:55
block
The exact code depends on how similar the blocks are and how related they are to the block
Definition: filter_design.txt:207
h
h
Definition: vp9dsp_template.c:2038