h264dsp_mmx.c File Reference
#include "libavutil/cpu.h"
#include "libavutil/x86_cpu.h"
#include "libavcodec/h264dsp.h"
#include "dsputil_mmx.h"

Go to the source code of this file.

Macros

#define IDCT_ADD_FUNC(NUM, DEPTH, OPT)   void ff_h264_idct ## NUM ## _add_ ## DEPTH ## _ ## OPT (uint8_t *dst, int16_t *block, int stride);
#define IDCT_ADD_REP_FUNC(NUM, REP, DEPTH, OPT)
#define IDCT_ADD_REP_FUNC2(NUM, REP, DEPTH, OPT)
#define h264_loop_filter_strength_iteration_mmx2(bS, nz, ref, mv, bidir, edges, step, mask_mv, dir, d_idx, mask_dir)
#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 (DCTELEM *output, DCTELEM *input, int qmul)
void ff_h264_luma_dc_dequant_idct_sse2 (DCTELEM *output, DCTELEM *input, int qmul)
static void h264_loop_filter_strength_mmx2 (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)
void ff_h264dsp_init_x86 (H264DSPContext *c, const int bit_depth, const int chroma_format_idc)

Variables

static const uint64_t ff_pb_3_1 = 0x0103010301030103ULL

Macro Definition Documentation

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

Definition at line 305 of file h264dsp_mmx.c.

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

Definition at line 328 of file h264dsp_mmx.c.

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

Definition at line 333 of file h264dsp_mmx.c.

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

Definition at line 310 of file h264dsp_mmx.c.

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

Definition at line 314 of file h264dsp_mmx.c.

#define h264_loop_filter_strength_iteration_mmx2 (   bS,
  nz,
  ref,
  mv,
  bidir,
  edges,
  step,
  mask_mv,
  dir,
  d_idx,
  mask_dir 
)

Definition at line 91 of file h264dsp_mmx.c.

Referenced by h264_loop_filter_strength_mmx2().

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

Definition at line 301 of file h264dsp_mmx.c.

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

Definition at line 324 of file h264dsp_mmx.c.

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

Definition at line 30 of file h264dsp_mmx.c.

#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, \
DCTELEM *block, int stride, const uint8_t nnzc[6*8]);

Definition at line 49 of file h264dsp_mmx.c.

#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, \
DCTELEM *block, int stride, const uint8_t nnzc[6*8]);

Definition at line 73 of file h264dsp_mmx.c.

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

Definition at line 244 of file h264dsp_mmx.c.

#define LF_FUNCS (   type,
  depth 
)
Value:
LF_FUNC (h, chroma, depth, mmxext)\
LF_IFUNC(h, chroma_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 (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 (v, chroma, depth, avx)\
LF_IFUNC(v, chroma_intra, depth, avx)

Definition at line 251 of file h264dsp_mmx.c.

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

Definition at line 247 of file h264dsp_mmx.c.

Function Documentation

void ff_h264_luma_dc_dequant_idct_mmx ( DCTELEM output,
DCTELEM input,
int  qmul 
)

Referenced by ff_h264dsp_init_x86().

void ff_h264_luma_dc_dequant_idct_sse2 ( DCTELEM output,
DCTELEM input,
int  qmul 
)

Referenced by ff_h264dsp_init_x86().

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

Definition at line 343 of file h264dsp_mmx.c.

Referenced by ff_h264dsp_init().

static void h264_loop_filter_strength_mmx2 ( 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 
)
static

Definition at line 205 of file h264dsp_mmx.c.

Referenced by ff_h264dsp_init_x86().

Variable Documentation

const uint64_t ff_pb_3_1 = 0x0103010301030103ULL
static

Definition at line 26 of file h264dsp_mmx.c.

Referenced by h264_loop_filter_strength_mmx2().