FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
vp8dsp_mmi.c File Reference
#include "vp8dsp_mips.h"
#include "constants.h"
#include "libavutil/mips/mmiutils.h"

Go to the source code of this file.

Macros

#define DECLARE_DOUBLE_1   double db_1
 
#define DECLARE_DOUBLE_2   double db_2
 
#define DECLARE_UINT32_T   uint32_t it_1
 
#define RESTRICT_ASM_DOUBLE_1   [db_1]"=&f"(db_1)
 
#define RESTRICT_ASM_DOUBLE_2   [db_2]"=&f"(db_2)
 
#define RESTRICT_ASM_UINT32_T   [it_1]"=&r"(it_1)
 
#define MMI_PCMPGTUB(dst, src1, src2)
 
#define MMI_BTOH(dst_l, dst_r, src)
 
#define MMI_VP8_LOOP_FILTER
 
#define PUT_VP8_EPEL4_H6_MMI(src, dst)
 
#define PUT_VP8_EPEL4_H4_MMI(src, dst)
 
#define PUT_VP8_EPEL4_V6_MMI(src, src1, dst, srcstride)
 
#define PUT_VP8_EPEL4_V4_MMI(src, src1, dst, srcstride)
 
#define PUT_VP8_EPEL8_H6_MMI(src, dst)
 
#define PUT_VP8_EPEL8_H4_MMI(src, dst)
 
#define PUT_VP8_EPEL8_V6_MMI(src, src1, dst, srcstride)
 
#define PUT_VP8_EPEL8_V4_MMI(src, src1, dst, srcstride)
 
#define PUT_VP8_BILINEAR8_H_MMI(src, dst)
 
#define PUT_VP8_BILINEAR4_H_MMI(src, dst)
 
#define PUT_VP8_BILINEAR8_V_MMI(src, src1, dst, sstride)
 
#define PUT_VP8_BILINEAR4_V_MMI(src, src1, dst, sstride)
 
#define clip_int8(n)   (cm[(n) + 0x80] - 0x80)
 

Functions

static av_always_inline void vp8_filter_common_is4tap (uint8_t *p, ptrdiff_t stride)
 
static av_always_inline void vp8_filter_common_isnot4tap (uint8_t *p, ptrdiff_t stride)
 
static av_always_inline int vp8_simple_limit (uint8_t *p, ptrdiff_t stride, int flim)
 
static av_always_inline int hev (uint8_t *p, ptrdiff_t stride, int thresh)
 
static av_always_inline void filter_mbedge (uint8_t *p, ptrdiff_t stride)
 
static av_always_inline int vp8_normal_limit (uint8_t *p, ptrdiff_t stride, int E, int I)
 
static av_always_inline void vp8_v_loop_filter8_mmi (uint8_t *dst, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
 
static av_always_inline void vp8_v_loop_filter8_inner_mmi (uint8_t *dst, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
 
static av_always_inline void vp8_h_loop_filter8_mmi (uint8_t *dst, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
 
static av_always_inline void vp8_h_loop_filter8_inner_mmi (uint8_t *dst, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
 
void ff_vp8_luma_dc_wht_mmi (int16_t block[4][4][16], int16_t dc[16])
 
void ff_vp8_luma_dc_wht_dc_mmi (int16_t block[4][4][16], int16_t dc[16])
 
void ff_vp8_idct_add_mmi (uint8_t *dst, int16_t block[16], ptrdiff_t stride)
 
void ff_vp8_idct_dc_add_mmi (uint8_t *dst, int16_t block[16], ptrdiff_t stride)
 
void ff_vp8_idct_dc_add4y_mmi (uint8_t *dst, int16_t block[4][16], ptrdiff_t stride)
 
void ff_vp8_idct_dc_add4uv_mmi (uint8_t *dst, int16_t block[4][16], ptrdiff_t stride)
 
void ff_vp8_v_loop_filter16_mmi (uint8_t *dst, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
 
void ff_vp8_h_loop_filter16_mmi (uint8_t *dst, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
 
void ff_vp8_v_loop_filter8uv_mmi (uint8_t *dstU, uint8_t *dstV, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
 
void ff_vp8_h_loop_filter8uv_mmi (uint8_t *dstU, uint8_t *dstV, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
 
void ff_vp8_v_loop_filter16_inner_mmi (uint8_t *dst, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
 
void ff_vp8_h_loop_filter16_inner_mmi (uint8_t *dst, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
 
void ff_vp8_v_loop_filter8uv_inner_mmi (uint8_t *dstU, uint8_t *dstV, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
 
void ff_vp8_h_loop_filter8uv_inner_mmi (uint8_t *dstU, uint8_t *dstV, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
 
void ff_vp8_v_loop_filter_simple_mmi (uint8_t *dst, ptrdiff_t stride, int flim)
 
void ff_vp8_h_loop_filter_simple_mmi (uint8_t *dst, ptrdiff_t stride, int flim)
 
void ff_put_vp8_pixels16_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int x, int y)
 
void ff_put_vp8_pixels8_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int x, int y)
 
void ff_put_vp8_pixels4_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int x, int y)
 
void ff_put_vp8_epel16_h4_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel8_h4_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel4_h4_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel16_h6_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel8_h6_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel4_h6_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel16_v4_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel8_v4_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel4_v4_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel16_v6_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel8_v6_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel4_v6_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel16_h4v4_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel8_h4v4_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel4_h4v4_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel16_h4v6_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel8_h4v6_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel4_h4v6_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel16_h6v4_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel8_h6v4_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel4_h6v4_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel16_h6v6_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel8_h6v6_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_epel4_h6v6_mmi (uint8_t *dst, ptrdiff_t dststride, uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
 
void ff_put_vp8_bilinear16_h_mmi (uint8_t *dst, ptrdiff_t dstride, uint8_t *src, ptrdiff_t sstride, int h, int mx, int my)
 
void ff_put_vp8_bilinear16_v_mmi (uint8_t *dst, ptrdiff_t dstride, uint8_t *src, ptrdiff_t sstride, int h, int mx, int my)
 
void ff_put_vp8_bilinear16_hv_mmi (uint8_t *dst, ptrdiff_t dstride, uint8_t *src, ptrdiff_t sstride, int h, int mx, int my)
 
void ff_put_vp8_bilinear8_h_mmi (uint8_t *dst, ptrdiff_t dstride, uint8_t *src, ptrdiff_t sstride, int h, int mx, int my)
 
void ff_put_vp8_bilinear8_v_mmi (uint8_t *dst, ptrdiff_t dstride, uint8_t *src, ptrdiff_t sstride, int h, int mx, int my)
 
void ff_put_vp8_bilinear8_hv_mmi (uint8_t *dst, ptrdiff_t dstride, uint8_t *src, ptrdiff_t sstride, int h, int mx, int my)
 
void ff_put_vp8_bilinear4_h_mmi (uint8_t *dst, ptrdiff_t dstride, uint8_t *src, ptrdiff_t sstride, int h, int mx, int my)
 
void ff_put_vp8_bilinear4_v_mmi (uint8_t *dst, ptrdiff_t dstride, uint8_t *src, ptrdiff_t sstride, int h, int mx, int my)
 
void ff_put_vp8_bilinear4_hv_mmi (uint8_t *dst, ptrdiff_t dstride, uint8_t *src, ptrdiff_t sstride, int h, int mx, int my)
 

Variables

static const uint64_t fourtap_subpel_filters [7][6]
 

Macro Definition Documentation

#define DECLARE_DOUBLE_1   double db_1

Definition at line 28 of file vp8dsp_mmi.c.

Referenced by vp8_h_loop_filter8_mmi(), and vp8_v_loop_filter8_mmi().

#define DECLARE_DOUBLE_2   double db_2

Definition at line 29 of file vp8dsp_mmi.c.

Referenced by vp8_h_loop_filter8_mmi(), and vp8_v_loop_filter8_mmi().

#define DECLARE_UINT32_T   uint32_t it_1

Definition at line 30 of file vp8dsp_mmi.c.

Referenced by vp8_h_loop_filter8_mmi(), and vp8_v_loop_filter8_mmi().

#define RESTRICT_ASM_DOUBLE_1   [db_1]"=&f"(db_1)

Definition at line 31 of file vp8dsp_mmi.c.

Referenced by vp8_h_loop_filter8_mmi(), and vp8_v_loop_filter8_mmi().

#define RESTRICT_ASM_DOUBLE_2   [db_2]"=&f"(db_2)

Definition at line 32 of file vp8dsp_mmi.c.

Referenced by vp8_h_loop_filter8_mmi(), and vp8_v_loop_filter8_mmi().

#define RESTRICT_ASM_UINT32_T   [it_1]"=&r"(it_1)

Definition at line 33 of file vp8dsp_mmi.c.

Referenced by vp8_h_loop_filter8_mmi(), and vp8_v_loop_filter8_mmi().

#define MMI_PCMPGTUB (   dst,
  src1,
  src2 
)
Value:
"pcmpeqb %[db_1], "#src1", "#src2" \n\t" \
"pmaxub %[db_2], "#src1", "#src2" \n\t" \
"pcmpeqb %[db_2], %[db_2], "#src1" \n\t" \
"xor "#dst", %[db_2], %[db_1] \n\t"
#define src1
Definition: h264pred.c:139

Definition at line 35 of file vp8dsp_mmi.c.

#define MMI_BTOH (   dst_l,
  dst_r,
  src 
)
Value:
"xor %[db_1], %[db_1], %[db_1] \n\t" \
"pcmpgtb %[db_2], %[db_1], "#src" \n\t" \
"punpcklbh "#dst_r", "#src", %[db_2] \n\t" \
"punpckhbh "#dst_l", "#src", %[db_2] \n\t"
#define src
Definition: vp8dsp.c:254

Definition at line 41 of file vp8dsp_mmi.c.

#define MMI_VP8_LOOP_FILTER

Definition at line 47 of file vp8dsp_mmi.c.

Referenced by vp8_h_loop_filter8_mmi(), and vp8_v_loop_filter8_mmi().

#define PUT_VP8_EPEL4_H6_MMI (   src,
  dst 
)

Definition at line 191 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel4_h6_mmi().

#define PUT_VP8_EPEL4_H4_MMI (   src,
  dst 
)
Value:
MMI_ULWC1(%[ftmp1], src, 0x00) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp3], %[ftmp2], %[filter2] \n\t" \
\
MMI_ULWC1(%[ftmp1], src, -0x01) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp2], %[ftmp2], %[filter1] \n\t" \
"psubsh %[ftmp5], %[ftmp3], %[ftmp2] \n\t" \
\
MMI_ULWC1(%[ftmp1], src, 0x01) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp3], %[ftmp2], %[filter3] \n\t" \
\
MMI_ULWC1(%[ftmp1], src, 0x02) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp2], %[ftmp2], %[filter4] \n\t" \
"psubh %[ftmp3], %[ftmp3], %[ftmp2] \n\t" \
\
"paddsh %[ftmp3], %[ftmp3], %[ftmp5] \n\t" \
\
"paddsh %[ftmp3], %[ftmp3], %[ff_pw_64] \n\t" \
"psrah %[ftmp3], %[ftmp3], %[ftmp4] \n\t" \
\
"packushb %[ftmp1], %[ftmp3], %[ftmp0] \n\t" \
MMI_SWC1(%[ftmp1], dst, 0x00)
#define src
Definition: vp8dsp.c:254

Definition at line 228 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel4_h4_mmi().

#define PUT_VP8_EPEL4_V6_MMI (   src,
  src1,
  dst,
  srcstride 
)

Definition at line 256 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel4_v6_mmi().

#define PUT_VP8_EPEL4_V4_MMI (   src,
  src1,
  dst,
  srcstride 
)
Value:
MMI_ULWC1(%[ftmp1], src, 0x00) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp3], %[ftmp2], %[filter2] \n\t" \
\
PTR_SUBU ""#src1", "#src", "#srcstride" \n\t" \
MMI_ULWC1(%[ftmp1], src1, 0x00) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp2], %[ftmp2], %[filter1] \n\t" \
"psubsh %[ftmp5], %[ftmp3], %[ftmp2] \n\t" \
\
PTR_ADDU ""#src1", "#src", "#srcstride" \n\t" \
MMI_ULWC1(%[ftmp1], src1, 0x00) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp3], %[ftmp2], %[filter3] \n\t" \
\
PTR_ADDU ""#src1", "#src1", "#srcstride" \n\t" \
MMI_ULWC1(%[ftmp1], src1, 0x00) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp2], %[ftmp2], %[filter4] \n\t" \
"psubsh %[ftmp3], %[ftmp3], %[ftmp2] \n\t" \
\
"paddsh %[ftmp3], %[ftmp3], %[ftmp5] \n\t" \
\
"paddsh %[ftmp3], %[ftmp3], %[ff_pw_64] \n\t" \
"psrah %[ftmp3], %[ftmp3], %[ftmp4] \n\t" \
"packushb %[ftmp1], %[ftmp3], %[ftmp0] \n\t" \
\
MMI_SWC1(%[ftmp1], dst, 0x00)
#define src
Definition: vp8dsp.c:254
#define PTR_SUBU
Definition: asmdefs.h:50
#define src1
Definition: h264pred.c:139
#define PTR_ADDU
Definition: asmdefs.h:47

Definition at line 299 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel4_v4_mmi().

#define PUT_VP8_EPEL8_H6_MMI (   src,
  dst 
)

Definition at line 330 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel16_h6_mmi(), and ff_put_vp8_epel8_h6_mmi().

#define PUT_VP8_EPEL8_H4_MMI (   src,
  dst 
)

Definition at line 387 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel16_h4_mmi(), and ff_put_vp8_epel8_h4_mmi().

#define PUT_VP8_EPEL8_V6_MMI (   src,
  src1,
  dst,
  srcstride 
)

Definition at line 428 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel16_v6_mmi(), and ff_put_vp8_epel8_v6_mmi().

#define PUT_VP8_EPEL8_V4_MMI (   src,
  src1,
  dst,
  srcstride 
)

Definition at line 490 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel16_v4_mmi(), and ff_put_vp8_epel8_v4_mmi().

#define PUT_VP8_BILINEAR8_H_MMI (   src,
  dst 
)
Value:
MMI_ULDC1(%[ftmp1], src, 0x00) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"punpckhbh %[ftmp3], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp5], %[ftmp2], %[a] \n\t" \
"pmullh %[ftmp6], %[ftmp3], %[a] \n\t" \
\
MMI_ULDC1(%[ftmp1], src, 0x01) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"punpckhbh %[ftmp3], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp2], %[ftmp2], %[b] \n\t" \
"pmullh %[ftmp3], %[ftmp3], %[b] \n\t" \
"paddsh %[ftmp5], %[ftmp5], %[ftmp2] \n\t" \
"paddsh %[ftmp6], %[ftmp6], %[ftmp3] \n\t" \
\
"paddsh %[ftmp5], %[ftmp5], %[ff_pw_4] \n\t" \
"paddsh %[ftmp6], %[ftmp6], %[ff_pw_4] \n\t" \
"psrah %[ftmp5], %[ftmp5], %[ftmp4] \n\t" \
"psrah %[ftmp6], %[ftmp6], %[ftmp4] \n\t" \
\
"packushb %[ftmp1], %[ftmp5], %[ftmp6] \n\t" \
MMI_SDC1(%[ftmp1], dst, 0x00)
#define src
Definition: vp8dsp.c:254

Definition at line 534 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_bilinear16_h_mmi(), and ff_put_vp8_bilinear8_h_mmi().

#define PUT_VP8_BILINEAR4_H_MMI (   src,
  dst 
)
Value:
MMI_ULWC1(%[ftmp1], src, 0x00) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp3], %[ftmp2], %[a] \n\t" \
\
MMI_ULWC1(%[ftmp1], src, 0x01) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp2], %[ftmp2], %[b] \n\t" \
"paddsh %[ftmp3], %[ftmp3], %[ftmp2] \n\t" \
\
"paddsh %[ftmp3], %[ftmp3], %[ff_pw_4] \n\t" \
"psrah %[ftmp3], %[ftmp3], %[ftmp4] \n\t" \
\
"packushb %[ftmp1], %[ftmp3], %[ftmp0] \n\t" \
MMI_SWC1(%[ftmp1], dst, 0x00)
#define src
Definition: vp8dsp.c:254

Definition at line 558 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_bilinear4_h_mmi().

#define PUT_VP8_BILINEAR8_V_MMI (   src,
  src1,
  dst,
  sstride 
)
Value:
MMI_ULDC1(%[ftmp1], src, 0x00) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"punpckhbh %[ftmp3], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp5], %[ftmp2], %[c] \n\t" \
"pmullh %[ftmp6], %[ftmp3], %[c] \n\t" \
\
PTR_ADDU ""#src1", "#src", "#sstride" \n\t" \
MMI_ULDC1(%[ftmp1], src1, 0x00) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"punpckhbh %[ftmp3], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp2], %[ftmp2], %[d] \n\t" \
"pmullh %[ftmp3], %[ftmp3], %[d] \n\t" \
"paddsh %[ftmp5], %[ftmp5], %[ftmp2] \n\t" \
"paddsh %[ftmp6], %[ftmp6], %[ftmp3] \n\t" \
\
"paddsh %[ftmp5], %[ftmp5], %[ff_pw_4] \n\t" \
"paddsh %[ftmp6], %[ftmp6], %[ff_pw_4] \n\t" \
"psrah %[ftmp5], %[ftmp5], %[ftmp4] \n\t" \
"psrah %[ftmp6], %[ftmp6], %[ftmp4] \n\t" \
\
"packushb %[ftmp1], %[ftmp5], %[ftmp6] \n\t" \
MMI_SDC1(%[ftmp1], dst, 0x00)
#define src
Definition: vp8dsp.c:254
#define src1
Definition: h264pred.c:139
#define PTR_ADDU
Definition: asmdefs.h:47

Definition at line 575 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_bilinear16_v_mmi(), and ff_put_vp8_bilinear8_v_mmi().

#define PUT_VP8_BILINEAR4_V_MMI (   src,
  src1,
  dst,
  sstride 
)
Value:
MMI_ULWC1(%[ftmp1], src, 0x00) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp3], %[ftmp2], %[c] \n\t" \
\
PTR_ADDU ""#src1", "#src", "#sstride" \n\t" \
MMI_ULWC1(%[ftmp1], src1, 0x00) \
"punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t" \
"pmullh %[ftmp2], %[ftmp2], %[d] \n\t" \
"paddsh %[ftmp3], %[ftmp3], %[ftmp2] \n\t" \
\
"paddsh %[ftmp3], %[ftmp3], %[ff_pw_4] \n\t" \
"psrah %[ftmp3], %[ftmp3], %[ftmp4] \n\t" \
\
"packushb %[ftmp1], %[ftmp3], %[ftmp0] \n\t" \
MMI_SWC1(%[ftmp1], dst, 0x00)
#define src
Definition: vp8dsp.c:254
#define src1
Definition: h264pred.c:139
#define PTR_ADDU
Definition: asmdefs.h:47

Definition at line 600 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_bilinear4_v_mmi().

#define clip_int8 (   n)    (cm[(n) + 0x80] - 0x80)

Function Documentation

static av_always_inline void vp8_filter_common_is4tap ( uint8_t p,
ptrdiff_t  stride 
)
static
static av_always_inline void vp8_filter_common_isnot4tap ( uint8_t p,
ptrdiff_t  stride 
)
static
static av_always_inline int vp8_simple_limit ( uint8_t p,
ptrdiff_t  stride,
int  flim 
)
static
static av_always_inline int hev ( uint8_t p,
ptrdiff_t  stride,
int  thresh 
)
static
static av_always_inline void filter_mbedge ( uint8_t p,
ptrdiff_t  stride 
)
static

Definition at line 739 of file vp8dsp_mmi.c.

static av_always_inline int vp8_normal_limit ( uint8_t p,
ptrdiff_t  stride,
int  E,
int  I 
)
static
static av_always_inline void vp8_v_loop_filter8_mmi ( uint8_t dst,
ptrdiff_t  stride,
int  flim_E,
int  flim_I,
int  hev_thresh 
)
static

Definition at line 784 of file vp8dsp_mmi.c.

Referenced by ff_vp8_v_loop_filter16_mmi(), and ff_vp8_v_loop_filter8uv_mmi().

static av_always_inline void vp8_v_loop_filter8_inner_mmi ( uint8_t dst,
ptrdiff_t  stride,
int  flim_E,
int  flim_I,
int  hev_thresh 
)
static

Definition at line 854 of file vp8dsp_mmi.c.

Referenced by ff_vp8_v_loop_filter8uv_inner_mmi().

static av_always_inline void vp8_h_loop_filter8_mmi ( uint8_t dst,
ptrdiff_t  stride,
int  flim_E,
int  flim_I,
int  hev_thresh 
)
static

Definition at line 869 of file vp8dsp_mmi.c.

Referenced by ff_vp8_h_loop_filter16_mmi(), and ff_vp8_h_loop_filter8uv_mmi().

static av_always_inline void vp8_h_loop_filter8_inner_mmi ( uint8_t dst,
ptrdiff_t  stride,
int  flim_E,
int  flim_I,
int  hev_thresh 
)
static

Definition at line 953 of file vp8dsp_mmi.c.

Referenced by ff_vp8_h_loop_filter8uv_inner_mmi().

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

Definition at line 968 of file vp8dsp_mmi.c.

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

Definition at line 1102 of file vp8dsp_mmi.c.

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

Definition at line 1126 of file vp8dsp_mmi.c.

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

Definition at line 1293 of file vp8dsp_mmi.c.

Referenced by ff_vp8_idct_dc_add4uv_mmi(), and ff_vp8_idct_dc_add4y_mmi().

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

Definition at line 1351 of file vp8dsp_mmi.c.

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

Definition at line 1360 of file vp8dsp_mmi.c.

void ff_vp8_v_loop_filter16_mmi ( uint8_t dst,
ptrdiff_t  stride,
int  flim_E,
int  flim_I,
int  hev_thresh 
)

Definition at line 1370 of file vp8dsp_mmi.c.

void ff_vp8_h_loop_filter16_mmi ( uint8_t dst,
ptrdiff_t  stride,
int  flim_E,
int  flim_I,
int  hev_thresh 
)

Definition at line 1377 of file vp8dsp_mmi.c.

void ff_vp8_v_loop_filter8uv_mmi ( uint8_t dstU,
uint8_t dstV,
ptrdiff_t  stride,
int  flim_E,
int  flim_I,
int  hev_thresh 
)

Definition at line 1385 of file vp8dsp_mmi.c.

void ff_vp8_h_loop_filter8uv_mmi ( uint8_t dstU,
uint8_t dstV,
ptrdiff_t  stride,
int  flim_E,
int  flim_I,
int  hev_thresh 
)

Definition at line 1392 of file vp8dsp_mmi.c.

void ff_vp8_v_loop_filter16_inner_mmi ( uint8_t dst,
ptrdiff_t  stride,
int  flim_E,
int  flim_I,
int  hev_thresh 
)

Definition at line 1400 of file vp8dsp_mmi.c.

void ff_vp8_h_loop_filter16_inner_mmi ( uint8_t dst,
ptrdiff_t  stride,
int  flim_E,
int  flim_I,
int  hev_thresh 
)

Definition at line 1415 of file vp8dsp_mmi.c.

void ff_vp8_v_loop_filter8uv_inner_mmi ( uint8_t dstU,
uint8_t dstV,
ptrdiff_t  stride,
int  flim_E,
int  flim_I,
int  hev_thresh 
)

Definition at line 1430 of file vp8dsp_mmi.c.

void ff_vp8_h_loop_filter8uv_inner_mmi ( uint8_t dstU,
uint8_t dstV,
ptrdiff_t  stride,
int  flim_E,
int  flim_I,
int  hev_thresh 
)

Definition at line 1437 of file vp8dsp_mmi.c.

void ff_vp8_v_loop_filter_simple_mmi ( uint8_t dst,
ptrdiff_t  stride,
int  flim 
)

Definition at line 1444 of file vp8dsp_mmi.c.

void ff_vp8_h_loop_filter_simple_mmi ( uint8_t dst,
ptrdiff_t  stride,
int  flim 
)

Definition at line 1453 of file vp8dsp_mmi.c.

void ff_put_vp8_pixels16_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  x,
int  y 
)

Definition at line 1462 of file vp8dsp_mmi.c.

void ff_put_vp8_pixels8_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  x,
int  y 
)

Definition at line 1509 of file vp8dsp_mmi.c.

void ff_put_vp8_pixels4_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  x,
int  y 
)

Definition at line 1549 of file vp8dsp_mmi.c.

void ff_put_vp8_epel16_h4_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 1589 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel16_h4v4_mmi(), and ff_put_vp8_epel16_h4v6_mmi().

void ff_put_vp8_epel8_h4_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 1666 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel8_h4v4_mmi(), and ff_put_vp8_epel8_h4v6_mmi().

void ff_put_vp8_epel4_h4_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 1727 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel4_h4v4_mmi(), and ff_put_vp8_epel4_h4v6_mmi().

void ff_put_vp8_epel16_h6_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 1782 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel16_h6v4_mmi(), and ff_put_vp8_epel16_h6v6_mmi().

void ff_put_vp8_epel8_h6_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 1860 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel8_h6v4_mmi(), and ff_put_vp8_epel8_h6v6_mmi().

void ff_put_vp8_epel4_h6_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 1922 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel4_h6v4_mmi(), and ff_put_vp8_epel4_h6v6_mmi().

void ff_put_vp8_epel16_v4_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 1978 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel16_h4v4_mmi(), and ff_put_vp8_epel16_h6v4_mmi().

void ff_put_vp8_epel8_v4_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2056 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel8_h4v4_mmi(), and ff_put_vp8_epel8_h6v4_mmi().

void ff_put_vp8_epel4_v4_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2119 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel4_h4v4_mmi(), and ff_put_vp8_epel4_h6v4_mmi().

void ff_put_vp8_epel16_v6_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2176 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel16_h4v6_mmi(), and ff_put_vp8_epel16_h6v6_mmi().

void ff_put_vp8_epel8_v6_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2255 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel8_h4v6_mmi(), and ff_put_vp8_epel8_h6v6_mmi().

void ff_put_vp8_epel4_v6_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2319 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel4_h4v6_mmi(), and ff_put_vp8_epel4_h6v6_mmi().

void ff_put_vp8_epel16_h4v4_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2377 of file vp8dsp_mmi.c.

void ff_put_vp8_epel8_h4v4_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2416 of file vp8dsp_mmi.c.

void ff_put_vp8_epel4_h4v4_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2455 of file vp8dsp_mmi.c.

void ff_put_vp8_epel16_h4v6_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2493 of file vp8dsp_mmi.c.

void ff_put_vp8_epel8_h4v6_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2532 of file vp8dsp_mmi.c.

void ff_put_vp8_epel4_h4v6_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2571 of file vp8dsp_mmi.c.

void ff_put_vp8_epel16_h6v4_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2610 of file vp8dsp_mmi.c.

void ff_put_vp8_epel8_h6v4_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2649 of file vp8dsp_mmi.c.

void ff_put_vp8_epel4_h6v4_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2688 of file vp8dsp_mmi.c.

void ff_put_vp8_epel16_h6v6_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2727 of file vp8dsp_mmi.c.

void ff_put_vp8_epel8_h6v6_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2766 of file vp8dsp_mmi.c.

void ff_put_vp8_epel4_h6v6_mmi ( uint8_t dst,
ptrdiff_t  dststride,
uint8_t src,
ptrdiff_t  srcstride,
int  h,
int  mx,
int  my 
)

Definition at line 2805 of file vp8dsp_mmi.c.

void ff_put_vp8_bilinear16_h_mmi ( uint8_t dst,
ptrdiff_t  dstride,
uint8_t src,
ptrdiff_t  sstride,
int  h,
int  mx,
int  my 
)

Definition at line 2844 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_bilinear16_hv_mmi().

void ff_put_vp8_bilinear16_v_mmi ( uint8_t dst,
ptrdiff_t  dstride,
uint8_t src,
ptrdiff_t  sstride,
int  h,
int  mx,
int  my 
)

Definition at line 2920 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_bilinear16_hv_mmi().

void ff_put_vp8_bilinear16_hv_mmi ( uint8_t dst,
ptrdiff_t  dstride,
uint8_t src,
ptrdiff_t  sstride,
int  h,
int  mx,
int  my 
)

Definition at line 2988 of file vp8dsp_mmi.c.

void ff_put_vp8_bilinear8_h_mmi ( uint8_t dst,
ptrdiff_t  dstride,
uint8_t src,
ptrdiff_t  sstride,
int  h,
int  mx,
int  my 
)

Definition at line 3022 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_bilinear8_hv_mmi().

void ff_put_vp8_bilinear8_v_mmi ( uint8_t dst,
ptrdiff_t  dstride,
uint8_t src,
ptrdiff_t  sstride,
int  h,
int  mx,
int  my 
)

Definition at line 3082 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_bilinear8_hv_mmi().

void ff_put_vp8_bilinear8_hv_mmi ( uint8_t dst,
ptrdiff_t  dstride,
uint8_t src,
ptrdiff_t  sstride,
int  h,
int  mx,
int  my 
)

Definition at line 3144 of file vp8dsp_mmi.c.

void ff_put_vp8_bilinear4_h_mmi ( uint8_t dst,
ptrdiff_t  dstride,
uint8_t src,
ptrdiff_t  sstride,
int  h,
int  mx,
int  my 
)

Definition at line 3178 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_bilinear4_hv_mmi().

void ff_put_vp8_bilinear4_v_mmi ( uint8_t dst,
ptrdiff_t  dstride,
uint8_t src,
ptrdiff_t  sstride,
int  h,
int  mx,
int  my 
)

Definition at line 3235 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_bilinear4_hv_mmi().

void ff_put_vp8_bilinear4_hv_mmi ( uint8_t dst,
ptrdiff_t  dstride,
uint8_t src,
ptrdiff_t  sstride,
int  h,
int  mx,
int  my 
)

Definition at line 3294 of file vp8dsp_mmi.c.

Variable Documentation

const uint64_t fourtap_subpel_filters[7][6]
static
Initial value:
= {
{0x0000000000000000, 0x0006000600060006, 0x007b007b007b007b,
0x000c000c000c000c, 0x0001000100010001, 0x0000000000000000},
{0x0002000200020002, 0x000b000b000b000b, 0x006c006c006c006c,
0x0024002400240024, 0x0008000800080008, 0x0001000100010001},
{0x0000000000000000, 0x0009000900090009, 0x005d005d005d005d,
0x0032003200320032, 0x0006000600060006, 0x0000000000000000},
{0x0003000300030003, 0x0010001000100010, 0x004d004d004d004d,
0x004d004d004d004d, 0x0010001000100010, 0x0003000300030003},
{0x0000000000000000, 0x0006000600060006, 0x0032003200320032,
0x005d005d005d005d, 0x0009000900090009, 0x0000000000000000},
{0x0001000100010001, 0x0008000800080008, 0x0024002400240024,
0x006c006c006c006c, 0x000b000b000b000b, 0x0002000200020002},
{0x0000000000000000, 0x0001000100010001, 0x000c000c000c000c,
0x007b007b007b007b, 0x0006000600060006, 0x0000000000000000}
}

Definition at line 618 of file vp8dsp_mmi.c.

Referenced by ff_put_vp8_epel16_h4_mmi(), ff_put_vp8_epel16_h6_mmi(), ff_put_vp8_epel16_v4_mmi(), ff_put_vp8_epel16_v6_mmi(), ff_put_vp8_epel4_h4_mmi(), ff_put_vp8_epel4_h6_mmi(), ff_put_vp8_epel4_v4_mmi(), ff_put_vp8_epel4_v6_mmi(), ff_put_vp8_epel8_h4_mmi(), ff_put_vp8_epel8_h6_mmi(), ff_put_vp8_epel8_v4_mmi(), and ff_put_vp8_epel8_v6_mmi().