libavcodec/x86/vp8dsp-init.c File Reference

#include "libavutil/cpu.h"
#include "libavutil/x86_cpu.h"
#include "libavcodec/vp8dsp.h"

Go to the source code of this file.

Defines

#define TAP_W16(OPT, FILTERTYPE, TAPTYPE)
#define TAP_W8(OPT, FILTERTYPE, TAPTYPE)
#define HVTAP(OPT, ALIGN, TAPNUMX, TAPNUMY, SIZE, MAXHEIGHT)
#define HVTAPMMX(x, y)
#define HVTAPSSE2(x, y, w)
#define HVBILIN(OPT, ALIGN, SIZE, MAXHEIGHT)
#define DECLARE_LOOP_FILTER(NAME)
#define VP8_LUMA_MC_FUNC(IDX, SIZE, OPT)
#define VP8_MC_FUNC(IDX, SIZE, OPT)
#define VP8_BILINEAR_MC_FUNC(IDX, SIZE, OPT)

Functions

void ff_put_vp8_epel4_h4_mmxext (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel4_h6_mmxext (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel4_v4_mmxext (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel4_v6_mmxext (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel8_h4_sse2 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel8_h6_sse2 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel8_v4_sse2 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel8_v6_sse2 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel4_h4_ssse3 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel4_h6_ssse3 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel4_v4_ssse3 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel4_v6_ssse3 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel8_h4_ssse3 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel8_h6_ssse3 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel8_v4_ssse3 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_epel8_v6_ssse3 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_bilinear4_h_mmxext (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_bilinear8_h_sse2 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_bilinear4_h_ssse3 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_bilinear8_h_ssse3 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_bilinear4_v_mmxext (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_bilinear8_v_sse2 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_bilinear4_v_ssse3 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_bilinear8_v_ssse3 (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_pixels8_mmx (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_pixels16_mmx (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_put_vp8_pixels16_sse (uint8_t *dst, int dststride, uint8_t *src, int srcstride, int height, int mx, int my)
void ff_vp8_idct_dc_add_mmx (uint8_t *dst, DCTELEM block[16], int stride)
void ff_vp8_idct_dc_add_sse4 (uint8_t *dst, DCTELEM block[16], int stride)
void ff_vp8_idct_dc_add4y_mmx (uint8_t *dst, DCTELEM block[4][16], int stride)
void ff_vp8_idct_dc_add4y_sse2 (uint8_t *dst, DCTELEM block[4][16], int stride)
void ff_vp8_idct_dc_add4uv_mmx (uint8_t *dst, DCTELEM block[2][16], int stride)
void ff_vp8_luma_dc_wht_mmx (DCTELEM block[4][4][16], DCTELEM dc[16])
void ff_vp8_luma_dc_wht_sse (DCTELEM block[4][4][16], DCTELEM dc[16])
void ff_vp8_idct_add_mmx (uint8_t *dst, DCTELEM block[16], int stride)
void ff_vp8_idct_add_sse (uint8_t *dst, DCTELEM block[16], int stride)
av_cold void ff_vp8dsp_init_x86 (VP8DSPContext *c)

Define Documentation

#define DECLARE_LOOP_FILTER (   NAME  ) 
Value:
extern void ff_vp8_v_loop_filter_simple_ ## NAME(uint8_t *dst, int stride, int flim);\
extern void ff_vp8_h_loop_filter_simple_ ## NAME(uint8_t *dst, int stride, int flim);\
extern void ff_vp8_v_loop_filter16y_inner_ ## NAME (uint8_t *dst, int stride,\
                                                    int e, int i, int hvt);\
extern void ff_vp8_h_loop_filter16y_inner_ ## NAME (uint8_t *dst, int stride,\
                                                    int e, int i, int hvt);\
extern void ff_vp8_v_loop_filter8uv_inner_ ## NAME (uint8_t *dstU, uint8_t *dstV,\
                                                    int s, int e, int i, int hvt);\
extern void ff_vp8_h_loop_filter8uv_inner_ ## NAME (uint8_t *dstU, uint8_t *dstV,\
                                                    int s, int e, int i, int hvt);\
extern void ff_vp8_v_loop_filter16y_mbedge_ ## NAME(uint8_t *dst, int stride,\
                                                    int e, int i, int hvt);\
extern void ff_vp8_h_loop_filter16y_mbedge_ ## NAME(uint8_t *dst, int stride,\
                                                    int e, int i, int hvt);\
extern void ff_vp8_v_loop_filter8uv_mbedge_ ## NAME(uint8_t *dstU, uint8_t *dstV,\
                                                    int s, int e, int i, int hvt);\
extern void ff_vp8_h_loop_filter8uv_mbedge_ ## NAME(uint8_t *dstU, uint8_t *dstV,\
                                                    int s, int e, int i, int hvt);

Definition at line 232 of file vp8dsp-init.c.

#define HVBILIN (   OPT,
  ALIGN,
  SIZE,
  MAXHEIGHT 
)
Value:
static void ff_put_vp8_bilinear ## SIZE ## _hv_ ## OPT( \
    uint8_t *dst, int dststride, uint8_t *src, \
    int srcstride, int height, int mx, int my) \
{ \
    DECLARE_ALIGNED(ALIGN, uint8_t, tmp)[SIZE * (MAXHEIGHT + 2)]; \
    ff_put_vp8_bilinear ## SIZE ## _h_ ## OPT( \
        tmp, SIZE,      src, srcstride, height + 1, mx, my); \
    ff_put_vp8_bilinear ## SIZE ## _v_ ## OPT( \
        dst, dststride, tmp, SIZE,      height,     mx, my); \
}

Definition at line 201 of file vp8dsp-init.c.

#define HVTAP (   OPT,
  ALIGN,
  TAPNUMX,
  TAPNUMY,
  SIZE,
  MAXHEIGHT 
)
Value:
static void ff_put_vp8_epel ## SIZE ## _h ## TAPNUMX ## v ## TAPNUMY ## _ ## OPT( \
    uint8_t *dst, int dststride, uint8_t *src, \
    int srcstride, int height, int mx, int my) \
{ \
    DECLARE_ALIGNED(ALIGN, uint8_t, tmp)[SIZE * (MAXHEIGHT + TAPNUMY - 1)]; \
    uint8_t *tmpptr = tmp + SIZE * (TAPNUMY / 2 - 1); \
    src -= srcstride * (TAPNUMY / 2 - 1); \
    ff_put_vp8_epel ## SIZE ## _h ## TAPNUMX ## _ ## OPT( \
        tmp, SIZE,      src,    srcstride, height + TAPNUMY - 1, mx, my); \
    ff_put_vp8_epel ## SIZE ## _v ## TAPNUMY ## _ ## OPT( \
        dst, dststride, tmpptr, SIZE,      height,               mx, my); \
}

Definition at line 162 of file vp8dsp-init.c.

#define HVTAPMMX (   x,
  y 
)
Value:
HVTAP(mmxext, 8, x, y,  4,  8) \
HVTAP(mmxext, 8, x, y,  8, 16)

Definition at line 176 of file vp8dsp-init.c.

#define HVTAPSSE2 (   x,
  y,
  w 
)
Value:
HVTAP(sse2,  16, x, y, w, 16) \
HVTAP(ssse3, 16, x, y, w, 16)

Definition at line 186 of file vp8dsp-init.c.

#define TAP_W16 (   OPT,
  FILTERTYPE,
  TAPTYPE 
)
Value:
static void ff_put_vp8_ ## FILTERTYPE ## 16_ ## TAPTYPE ## _ ## OPT( \
    uint8_t *dst,  int dststride, uint8_t *src, \
    int srcstride, int height, int mx, int my) \
{ \
    ff_put_vp8_ ## FILTERTYPE ## 8_ ## TAPTYPE ## _ ## OPT( \
        dst,     dststride, src,     srcstride, height, mx, my); \
    ff_put_vp8_ ## FILTERTYPE ## 8_ ## TAPTYPE ## _ ## OPT( \
        dst + 8, dststride, src + 8, srcstride, height, mx, my); \
}

Definition at line 120 of file vp8dsp-init.c.

#define TAP_W8 (   OPT,
  FILTERTYPE,
  TAPTYPE 
)
Value:
static void ff_put_vp8_ ## FILTERTYPE ## 8_ ## TAPTYPE ## _ ## OPT( \
    uint8_t *dst,  int dststride, uint8_t *src, \
    int srcstride, int height, int mx, int my) \
{ \
    ff_put_vp8_ ## FILTERTYPE ## 4_ ## TAPTYPE ## _ ## OPT( \
        dst,     dststride, src,     srcstride, height, mx, my); \
    ff_put_vp8_ ## FILTERTYPE ## 4_ ## TAPTYPE ## _ ## OPT( \
        dst + 4, dststride, src + 4, srcstride, height, mx, my); \
}

Definition at line 130 of file vp8dsp-init.c.

#define VP8_BILINEAR_MC_FUNC (   IDX,
  SIZE,
  OPT 
)
Value:
c->put_vp8_bilinear_pixels_tab[IDX][0][1] = ff_put_vp8_bilinear ## SIZE ## _h_ ## OPT; \
    c->put_vp8_bilinear_pixels_tab[IDX][0][2] = ff_put_vp8_bilinear ## SIZE ## _h_ ## OPT; \
    c->put_vp8_bilinear_pixels_tab[IDX][1][0] = ff_put_vp8_bilinear ## SIZE ## _v_ ## OPT; \
    c->put_vp8_bilinear_pixels_tab[IDX][1][1] = ff_put_vp8_bilinear ## SIZE ## _hv_ ## OPT; \
    c->put_vp8_bilinear_pixels_tab[IDX][1][2] = ff_put_vp8_bilinear ## SIZE ## _hv_ ## OPT; \
    c->put_vp8_bilinear_pixels_tab[IDX][2][0] = ff_put_vp8_bilinear ## SIZE ## _v_ ## OPT; \
    c->put_vp8_bilinear_pixels_tab[IDX][2][1] = ff_put_vp8_bilinear ## SIZE ## _hv_ ## OPT; \
    c->put_vp8_bilinear_pixels_tab[IDX][2][2] = ff_put_vp8_bilinear ## SIZE ## _hv_ ## OPT

Definition at line 273 of file vp8dsp-init.c.

Referenced by ff_vp8dsp_init_x86().

#define VP8_LUMA_MC_FUNC (   IDX,
  SIZE,
  OPT 
)
Value:
c->put_vp8_epel_pixels_tab[IDX][0][2] = ff_put_vp8_epel ## SIZE ## _h6_ ## OPT; \
    c->put_vp8_epel_pixels_tab[IDX][2][0] = ff_put_vp8_epel ## SIZE ## _v6_ ## OPT; \
    c->put_vp8_epel_pixels_tab[IDX][2][2] = ff_put_vp8_epel ## SIZE ## _h6v6_ ## OPT

Definition at line 260 of file vp8dsp-init.c.

Referenced by ff_vp8dsp_init_x86().

#define VP8_MC_FUNC (   IDX,
  SIZE,
  OPT 
)
Value:
c->put_vp8_epel_pixels_tab[IDX][0][1] = ff_put_vp8_epel ## SIZE ## _h4_ ## OPT; \
    c->put_vp8_epel_pixels_tab[IDX][1][0] = ff_put_vp8_epel ## SIZE ## _v4_ ## OPT; \
    c->put_vp8_epel_pixels_tab[IDX][1][1] = ff_put_vp8_epel ## SIZE ## _h4v4_ ## OPT; \
    c->put_vp8_epel_pixels_tab[IDX][1][2] = ff_put_vp8_epel ## SIZE ## _h6v4_ ## OPT; \
    c->put_vp8_epel_pixels_tab[IDX][2][1] = ff_put_vp8_epel ## SIZE ## _h4v6_ ## OPT; \
    VP8_LUMA_MC_FUNC(IDX, SIZE, OPT)

Definition at line 265 of file vp8dsp-init.c.

Referenced by ff_vp8dsp_init_x86().


Function Documentation

void ff_put_vp8_bilinear4_h_mmxext ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_bilinear4_h_ssse3 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_bilinear4_v_mmxext ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_bilinear4_v_ssse3 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_bilinear8_h_sse2 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_bilinear8_h_ssse3 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_bilinear8_v_sse2 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_bilinear8_v_ssse3 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel4_h4_mmxext ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel4_h4_ssse3 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel4_h6_mmxext ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel4_h6_ssse3 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel4_v4_mmxext ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel4_v4_ssse3 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel4_v6_mmxext ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel4_v6_ssse3 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel8_h4_sse2 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel8_h4_ssse3 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel8_h6_sse2 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel8_h6_ssse3 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel8_v4_sse2 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel8_v4_ssse3 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel8_v6_sse2 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_epel8_v6_ssse3 ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_pixels16_mmx ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_pixels16_sse ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_put_vp8_pixels8_mmx ( uint8_t *  dst,
int  dststride,
uint8_t *  src,
int  srcstride,
int  height,
int  mx,
int  my 
)
void ff_vp8_idct_add_mmx ( uint8_t *  dst,
DCTELEM  block[16],
int  stride 
)
void ff_vp8_idct_add_sse ( uint8_t *  dst,
DCTELEM  block[16],
int  stride 
)
void ff_vp8_idct_dc_add4uv_mmx ( uint8_t *  dst,
DCTELEM  block[2][16],
int  stride 
)
void ff_vp8_idct_dc_add4y_mmx ( uint8_t *  dst,
DCTELEM  block[4][16],
int  stride 
)
void ff_vp8_idct_dc_add4y_sse2 ( uint8_t *  dst,
DCTELEM  block[4][16],
int  stride 
)
void ff_vp8_idct_dc_add_mmx ( uint8_t *  dst,
DCTELEM  block[16],
int  stride 
)
void ff_vp8_idct_dc_add_sse4 ( uint8_t *  dst,
DCTELEM  block[16],
int  stride 
)
void ff_vp8_luma_dc_wht_mmx ( DCTELEM  block[4][4][16],
DCTELEM  dc[16] 
)
void ff_vp8_luma_dc_wht_sse ( DCTELEM  block[4][4][16],
DCTELEM  dc[16] 
)
av_cold void ff_vp8dsp_init_x86 ( VP8DSPContext c  ) 

Definition at line 284 of file vp8dsp-init.c.

Referenced by ff_vp8dsp_init().