FFmpeg
Macros | Functions
vp8dsp_init.c File Reference
#include "libavutil/attributes.h"
#include "libavutil/cpu.h"
#include "libavutil/mem_internal.h"
#include "libavutil/x86/cpu.h"
#include "libavcodec/vp8dsp.h"

Go to the source code of this file.

Macros

#define TAP_W16(OPT, FILTERTYPE, TAPTYPE)
 
#define HVTAP(OPT, ALIGN, TAPNUMX, TAPNUMY, SIZE, MAXHEIGHT)
 
#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_epel8_h4_sse2 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_epel8_h6_sse2 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_epel8_v4_sse2 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_epel8_v6_sse2 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_epel4_h4_ssse3 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_epel4_h6_ssse3 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_epel4_v4_ssse3 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_epel4_v6_ssse3 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_epel8_h4_ssse3 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_epel8_h6_ssse3 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_epel8_v4_ssse3 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_epel8_v6_ssse3 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_bilinear8_h_sse2 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_bilinear4_h_ssse3 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_bilinear8_h_ssse3 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_bilinear8_v_sse2 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_bilinear4_v_ssse3 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_bilinear8_v_ssse3 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_pixels8_sse2 (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_put_vp8_pixels16_sse (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int height, int mx, int my)
 
void ff_vp8_idct_dc_add_sse2 (uint8_t *dst, int16_t block[16], ptrdiff_t stride)
 
void ff_vp8_idct_dc_add_sse4 (uint8_t *dst, int16_t block[16], ptrdiff_t stride)
 
void ff_vp8_idct_dc_add4y_sse2 (uint8_t *dst, int16_t block[4][16], ptrdiff_t stride)
 
void ff_vp8_idct_dc_add4uv_mmx (uint8_t *dst, int16_t block[2][16], ptrdiff_t stride)
 
void ff_vp8_luma_dc_wht_sse (int16_t block[4][4][16], int16_t dc[16])
 
void ff_vp8_idct_add_sse (uint8_t *dst, int16_t block[16], ptrdiff_t stride)
 
av_cold void ff_vp78dsp_init_x86 (VP8DSPContext *c)
 
av_cold void ff_vp8dsp_init_x86 (VP8DSPContext *c)
 

Macro Definition Documentation

◆ TAP_W16

#define TAP_W16 (   OPT,
  FILTERTYPE,
  TAPTYPE 
)
Value:
static void ff_put_vp8_ ## FILTERTYPE ## 16_ ## TAPTYPE ## _ ## OPT( \
uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, \
ptrdiff_t 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 98 of file vp8dsp_init.c.

◆ HVTAP

#define HVTAP (   OPT,
  ALIGN,
  TAPNUMX,
  TAPNUMY,
  SIZE,
  MAXHEIGHT 
)
Value:
static void ff_put_vp8_epel ## SIZE ## _h ## TAPNUMX ## v ## TAPNUMY ## _ ## OPT( \
uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, \
ptrdiff_t srcstride, int height, int mx, int my) \
{ \
LOCAL_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 119 of file vp8dsp_init.c.

◆ HVTAPSSE2

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

Definition at line 133 of file vp8dsp_init.c.

◆ HVBILIN

#define HVBILIN (   OPT,
  ALIGN,
  SIZE,
  MAXHEIGHT 
)
Value:
static void ff_put_vp8_bilinear ## SIZE ## _hv_ ## OPT( \
uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, \
ptrdiff_t srcstride, int height, int mx, int my) \
{ \
LOCAL_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 148 of file vp8dsp_init.c.

◆ DECLARE_LOOP_FILTER

#define DECLARE_LOOP_FILTER (   NAME)

Definition at line 177 of file vp8dsp_init.c.

◆ VP8_LUMA_MC_FUNC

#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 217 of file vp8dsp_init.c.

◆ VP8_MC_FUNC

#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 222 of file vp8dsp_init.c.

◆ VP8_BILINEAR_MC_FUNC

#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 230 of file vp8dsp_init.c.

Function Documentation

◆ ff_put_vp8_epel8_h4_sse2()

void ff_put_vp8_epel8_h4_sse2 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_epel8_h6_sse2()

void ff_put_vp8_epel8_h6_sse2 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_epel8_v4_sse2()

void ff_put_vp8_epel8_v4_sse2 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_epel8_v6_sse2()

void ff_put_vp8_epel8_v6_sse2 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_epel4_h4_ssse3()

void ff_put_vp8_epel4_h4_ssse3 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_epel4_h6_ssse3()

void ff_put_vp8_epel4_h6_ssse3 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_epel4_v4_ssse3()

void ff_put_vp8_epel4_v4_ssse3 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_epel4_v6_ssse3()

void ff_put_vp8_epel4_v6_ssse3 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_epel8_h4_ssse3()

void ff_put_vp8_epel8_h4_ssse3 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_epel8_h6_ssse3()

void ff_put_vp8_epel8_h6_ssse3 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_epel8_v4_ssse3()

void ff_put_vp8_epel8_v4_ssse3 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_epel8_v6_ssse3()

void ff_put_vp8_epel8_v6_ssse3 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_bilinear8_h_sse2()

void ff_put_vp8_bilinear8_h_sse2 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_bilinear4_h_ssse3()

void ff_put_vp8_bilinear4_h_ssse3 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_bilinear8_h_ssse3()

void ff_put_vp8_bilinear8_h_ssse3 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_bilinear8_v_sse2()

void ff_put_vp8_bilinear8_v_sse2 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_bilinear4_v_ssse3()

void ff_put_vp8_bilinear4_v_ssse3 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_bilinear8_v_ssse3()

void ff_put_vp8_bilinear8_v_ssse3 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

◆ ff_put_vp8_pixels8_sse2()

void ff_put_vp8_pixels8_sse2 ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

Referenced by ff_vp78dsp_init_x86().

◆ ff_put_vp8_pixels16_sse()

void ff_put_vp8_pixels16_sse ( uint8_t *  dst,
ptrdiff_t  dststride,
const uint8_t *  src,
ptrdiff_t  srcstride,
int  height,
int  mx,
int  my 
)

Referenced by ff_vp78dsp_init_x86().

◆ ff_vp8_idct_dc_add_sse2()

void ff_vp8_idct_dc_add_sse2 ( uint8_t *  dst,
int16_t  block[16],
ptrdiff_t  stride 
)

Referenced by ff_vp8dsp_init_x86().

◆ ff_vp8_idct_dc_add_sse4()

void ff_vp8_idct_dc_add_sse4 ( uint8_t *  dst,
int16_t  block[16],
ptrdiff_t  stride 
)

Referenced by ff_vp8dsp_init_x86().

◆ ff_vp8_idct_dc_add4y_sse2()

void ff_vp8_idct_dc_add4y_sse2 ( uint8_t *  dst,
int16_t  block[4][16],
ptrdiff_t  stride 
)

Referenced by ff_vp8dsp_init_x86().

◆ ff_vp8_idct_dc_add4uv_mmx()

void ff_vp8_idct_dc_add4uv_mmx ( uint8_t *  dst,
int16_t  block[2][16],
ptrdiff_t  stride 
)

Referenced by ff_vp8dsp_init_x86().

◆ ff_vp8_luma_dc_wht_sse()

void ff_vp8_luma_dc_wht_sse ( int16_t  block[4][4][16],
int16_t  dc[16] 
)

Referenced by ff_vp8dsp_init_x86().

◆ ff_vp8_idct_add_sse()

void ff_vp8_idct_add_sse ( uint8_t *  dst,
int16_t  block[16],
ptrdiff_t  stride 
)

Referenced by ff_vp8dsp_init_x86().

◆ ff_vp78dsp_init_x86()

av_cold void ff_vp78dsp_init_x86 ( VP8DSPContext c)

Definition at line 241 of file vp8dsp_init.c.

Referenced by ff_vp78dsp_init().

◆ ff_vp8dsp_init_x86()

av_cold void ff_vp8dsp_init_x86 ( VP8DSPContext c)

Definition at line 271 of file vp8dsp_init.c.

ALIGN
#define ALIGN
Definition: hashtable.c:32
w
uint8_t w
Definition: llviddspenc.c:38
OPT
#define OPT(name, field, help)
Definition: vf_drawvg.c:2517
mx
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t mx
Definition: dsp.h:57
tmp
static uint8_t tmp[40]
Definition: aes_ctr.c:52
my
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t my
Definition: dsp.h:57
srcstride
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t const uint8_t ptrdiff_t srcstride
Definition: dsp.h:88
c
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
Definition: undefined.txt:32
height
#define height
Definition: dsp.h:89
dst
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Definition: dsp.h:87
HVTAP
#define HVTAP(OPT, ALIGN, TAPNUMX, TAPNUMY, SIZE, MAXHEIGHT)
Definition: vp8dsp_init.c:119
SIZE
#define SIZE
Definition: bitstream_template.c:36
_
#define _
src
#define src
Definition: vp8dsp.c:248