FFmpeg
Macros | Functions | Variables
vp9_mc_lsx.c File Reference
#include "libavcodec/vp9dsp.h"
#include "libavutil/loongarch/loongson_intrinsics.h"
#include "vp9dsp_loongarch.h"

Go to the source code of this file.

Macros

#define HORIZ_8TAP_4WID_4VECS_FILT(_src0, _src1, _src2, _src3, _mask0, _mask1, _mask2, _mask3, _filter0, _filter1, _filter2, _filter3, _out0, _out1)
 
#define HORIZ_8TAP_8WID_4VECS_FILT(_src0, _src1, _src2, _src3, _mask0, _mask1, _mask2, _mask3, _filter0, _filter1, _filter2, _filter3, _out0, _out1, _out2, _out3)
 
#define FILT_8TAP_DPADD_S_H(_reg0, _reg1, _reg2, _reg3, _filter0, _filter1, _filter2, _filter3)
 
#define HORIZ_8TAP_FILT(_src0, _src1, _mask0, _mask1, _mask2, _mask3, _filt_h0, _filt_h1, _filt_h2, _filt_h3)
 
#define LSX_LD_4(_src, _stride, _src0, _src1, _src2, _src3)
 
#define VP9_8TAP_LOONGARCH_LSX_FUNC(SIZE, type, type_idx)
 
#define VP9_COPY_LOONGARCH_LSX_FUNC(SIZE)
 

Functions

static void common_hz_8t_4x4_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter)
 
static void common_hz_8t_4x8_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter)
 
static void common_hz_8t_4w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_hz_8t_8x4_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter)
 
static void common_hz_8t_8x8mult_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_hz_8t_8w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_hz_8t_16w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_hz_8t_32w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_hz_8t_64w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_vt_8t_4w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_vt_8t_8w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_vt_8t_16w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_vt_8t_16w_mult_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height, int32_t width)
 
static void common_vt_8t_32w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_vt_8t_64w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_hv_8ht_8vt_4w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_horiz, const int8_t *filter_vert, int32_t height)
 
static void common_hv_8ht_8vt_8w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_horiz, const int8_t *filter_vert, int32_t height)
 
static void common_hv_8ht_8vt_16w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_horiz, const int8_t *filter_vert, int32_t height)
 
static void common_hv_8ht_8vt_32w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_horiz, const int8_t *filter_vert, int32_t height)
 
static void common_hv_8ht_8vt_64w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_horiz, const int8_t *filter_vert, int32_t height)
 
static void copy_width8_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void copy_width16_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void copy_width32_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void copy_width64_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void common_hz_8t_and_aver_dst_4x4_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter)
 
static void common_hz_8t_and_aver_dst_4x8_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter)
 
static void common_hz_8t_and_aver_dst_4w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_hz_8t_and_aver_dst_8w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_hz_8t_and_aver_dst_16w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_hz_8t_and_aver_dst_32w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_hz_8t_and_aver_dst_64w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_vt_8t_and_aver_dst_4w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_vt_8t_and_aver_dst_8w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_vt_8t_and_aver_dst_16w_mult_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height, int32_t width)
 
static void common_vt_8t_and_aver_dst_16w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_vt_8t_and_aver_dst_32w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_vt_8t_and_aver_dst_64w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter, int32_t height)
 
static void common_hv_8ht_8vt_and_aver_dst_4w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_horiz, const int8_t *filter_vert, int32_t height)
 
static void common_hv_8ht_8vt_and_aver_dst_8w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_horiz, const int8_t *filter_vert, int32_t height)
 
static void common_hv_8ht_8vt_and_aver_dst_16w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_horiz, const int8_t *filter_vert, int32_t height)
 
static void common_hv_8ht_8vt_and_aver_dst_32w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_horiz, const int8_t *filter_vert, int32_t height)
 
static void common_hv_8ht_8vt_and_aver_dst_64w_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, const int8_t *filter_horiz, const int8_t *filter_vert, int32_t height)
 
static void avg_width8_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void avg_width16_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void avg_width32_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
static void avg_width64_lsx (const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride, int32_t height)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (64, regular, FILTER_8TAP_REGULAR)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (32, regular, FILTER_8TAP_REGULAR)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (16, regular, FILTER_8TAP_REGULAR)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (8, regular, FILTER_8TAP_REGULAR)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (4, regular, FILTER_8TAP_REGULAR)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (64, sharp, FILTER_8TAP_SHARP)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (32, sharp, FILTER_8TAP_SHARP)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (16, sharp, FILTER_8TAP_SHARP)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (8, sharp, FILTER_8TAP_SHARP)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (4, sharp, FILTER_8TAP_SHARP)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (64, smooth, FILTER_8TAP_SMOOTH)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (32, smooth, FILTER_8TAP_SMOOTH)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (16, smooth, FILTER_8TAP_SMOOTH)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (8, smooth, FILTER_8TAP_SMOOTH)
 
 VP9_8TAP_LOONGARCH_LSX_FUNC (4, smooth, FILTER_8TAP_SMOOTH)
 
 VP9_COPY_LOONGARCH_LSX_FUNC (64)
 
 VP9_COPY_LOONGARCH_LSX_FUNC (32)
 
 VP9_COPY_LOONGARCH_LSX_FUNC (16)
 
 VP9_COPY_LOONGARCH_LSX_FUNC (8)
 

Variables

static const uint8_t mc_filt_mask_arr [16 *3]
 
static const int8_t vp9_subpel_filters_lsx [3][15][8]
 

Macro Definition Documentation

◆ HORIZ_8TAP_4WID_4VECS_FILT

#define HORIZ_8TAP_4WID_4VECS_FILT (   _src0,
  _src1,
  _src2,
  _src3,
  _mask0,
  _mask1,
  _mask2,
  _mask3,
  _filter0,
  _filter1,
  _filter2,
  _filter3,
  _out0,
  _out1 
)
Value:
{ \
__m128i _tmp0, _tmp1, _tmp2, _tmp3, _tmp4, _tmp5, _tmp6, _tmp7; \
__m128i _reg0, _reg1, _reg2, _reg3; \
DUP2_ARG3(__lsx_vshuf_b, _src1, _src0, _mask0, _src3, _src2, _mask0, \
_tmp0, _tmp1); \
DUP2_ARG2(__lsx_vdp2_h_b, _tmp0, _filter0, _tmp1, _filter0, _reg0, _reg1); \
DUP2_ARG3(__lsx_vshuf_b, _src1, _src0, _mask1, _src3, _src2, _mask1, \
_tmp2, _tmp3); \
DUP2_ARG3(__lsx_vdp2add_h_b, _reg0, _tmp2, _filter1, _reg1, _tmp3, \
_filter1, _reg0, _reg1); \
DUP2_ARG3(__lsx_vshuf_b, _src1, _src0, _mask2, _src3, _src2, _mask2, \
_tmp4, _tmp5); \
DUP2_ARG2(__lsx_vdp2_h_b, _tmp4, _filter2, _tmp5, _filter2, _reg2, _reg3); \
DUP2_ARG3(__lsx_vshuf_b, _src1, _src0, _mask3, _src3, _src2, _mask3, \
_tmp6, _tmp7); \
DUP2_ARG3(__lsx_vdp2add_h_b, _reg2, _tmp6, _filter3, _reg3, _tmp7, \
_filter3, _reg2, _reg3); \
DUP2_ARG2(__lsx_vsadd_h, _reg0, _reg2, _reg1, _reg3, _out0, _out1); \
}

Definition at line 36 of file vp9_mc_lsx.c.

◆ HORIZ_8TAP_8WID_4VECS_FILT

#define HORIZ_8TAP_8WID_4VECS_FILT (   _src0,
  _src1,
  _src2,
  _src3,
  _mask0,
  _mask1,
  _mask2,
  _mask3,
  _filter0,
  _filter1,
  _filter2,
  _filter3,
  _out0,
  _out1,
  _out2,
  _out3 
)
Value:
{ \
__m128i _tmp0, _tmp1, _tmp2, _tmp3, _tmp4, _tmp5, _tmp6, _tmp7; \
__m128i _reg0, _reg1, _reg2, _reg3, _reg4, _reg5, _reg6, _reg7; \
DUP4_ARG3(__lsx_vshuf_b, _src0, _src0, _mask0, _src1, _src1, _mask0, _src2,\
_src2, _mask0, _src3, _src3, _mask0, _tmp0, _tmp1, _tmp2, _tmp3);\
DUP4_ARG2(__lsx_vdp2_h_b, _tmp0, _filter0, _tmp1, _filter0, _tmp2, \
_filter0, _tmp3, _filter0, _reg0, _reg1, _reg2, _reg3); \
DUP4_ARG3(__lsx_vshuf_b, _src0, _src0, _mask2, _src1, _src1, _mask2, _src2,\
_src2, _mask2, _src3, _src3, _mask2, _tmp0, _tmp1, _tmp2, _tmp3);\
DUP4_ARG2(__lsx_vdp2_h_b, _tmp0, _filter2, _tmp1, _filter2, _tmp2, \
_filter2, _tmp3, _filter2, _reg4, _reg5, _reg6, _reg7); \
DUP4_ARG3(__lsx_vshuf_b, _src0, _src0, _mask1, _src1, _src1, _mask1, _src2,\
_src2, _mask1, _src3, _src3, _mask1, _tmp4, _tmp5, _tmp6, _tmp7);\
DUP4_ARG3(__lsx_vdp2add_h_b, _reg0, _tmp4, _filter1, _reg1, _tmp5, \
_filter1, _reg2, _tmp6, _filter1, _reg3, _tmp7, _filter1, _reg0, \
_reg1, _reg2, _reg3); \
DUP4_ARG3(__lsx_vshuf_b, _src0, _src0, _mask3, _src1, _src1, _mask3, _src2,\
_src2, _mask3, _src3, _src3, _mask3, _tmp4, _tmp5, _tmp6, _tmp7);\
DUP4_ARG3(__lsx_vdp2add_h_b, _reg4, _tmp4, _filter3, _reg5, _tmp5, \
_filter3, _reg6, _tmp6, _filter3, _reg7, _tmp7, _filter3, _reg4, \
_reg5, _reg6, _reg7); \
DUP4_ARG2(__lsx_vsadd_h, _reg0, _reg4, _reg1, _reg5, _reg2, _reg6, _reg3, \
_reg7, _out0, _out1, _out2, _out3); \
}

Definition at line 61 of file vp9_mc_lsx.c.

◆ FILT_8TAP_DPADD_S_H

#define FILT_8TAP_DPADD_S_H (   _reg0,
  _reg1,
  _reg2,
  _reg3,
  _filter0,
  _filter1,
  _filter2,
  _filter3 
)
Value:
( { \
__m128i _vec0, _vec1; \
\
_vec0 = __lsx_vdp2_h_b(_reg0, _filter0); \
_vec0 = __lsx_vdp2add_h_b(_vec0, _reg1, _filter1); \
_vec1 = __lsx_vdp2_h_b(_reg2, _filter2); \
_vec1 = __lsx_vdp2add_h_b(_vec1, _reg3, _filter3); \
_vec0 = __lsx_vsadd_h(_vec0, _vec1); \
\
_vec0; \
} )

Definition at line 91 of file vp9_mc_lsx.c.

◆ HORIZ_8TAP_FILT

#define HORIZ_8TAP_FILT (   _src0,
  _src1,
  _mask0,
  _mask1,
  _mask2,
  _mask3,
  _filt_h0,
  _filt_h1,
  _filt_h2,
  _filt_h3 
)
Value:
( { \
__m128i _tmp0, _tmp1, _tmp2, _tmp3; \
__m128i _out; \
DUP4_ARG3(__lsx_vshuf_b, _src1, _src0, _mask0, _src1, _src0, _mask1, _src1,\
_src0, _mask2, _src1, _src0, _mask3, _tmp0, _tmp1, _tmp2, _tmp3);\
_out = FILT_8TAP_DPADD_S_H(_tmp0, _tmp1, _tmp2, _tmp3, _filt_h0, _filt_h1, \
_filt_h2, _filt_h3); \
_out = __lsx_vsrari_h(_out, 7); \
_out = __lsx_vsat_h(_out, 7); \
\
_out; \
} )

Definition at line 105 of file vp9_mc_lsx.c.

◆ LSX_LD_4

#define LSX_LD_4 (   _src,
  _stride,
  _src0,
  _src1,
  _src2,
  _src3 
)
Value:
{ \
_src0 = __lsx_vld(_src, 0); \
_src += _stride; \
_src1 = __lsx_vld(_src, 0); \
_src += _stride; \
_src2 = __lsx_vld(_src, 0); \
_src += _stride; \
_src3 = __lsx_vld(_src, 0); \
}

Definition at line 121 of file vp9_mc_lsx.c.

◆ VP9_8TAP_LOONGARCH_LSX_FUNC

#define VP9_8TAP_LOONGARCH_LSX_FUNC (   SIZE,
  type,
  type_idx 
)

Definition at line 2372 of file vp9_mc_lsx.c.

◆ VP9_COPY_LOONGARCH_LSX_FUNC

#define VP9_COPY_LOONGARCH_LSX_FUNC (   SIZE)
Value:
void ff_copy##SIZE##_lsx(uint8_t *dst, ptrdiff_t dststride, \
const uint8_t *src, ptrdiff_t srcstride, \
int h, int mx, int my) \
{ \
\
copy_width##SIZE##_lsx(src, srcstride, dst, dststride, h); \
} \
void ff_avg##SIZE##_lsx(uint8_t *dst, ptrdiff_t dststride, \
const uint8_t *src, ptrdiff_t srcstride, \
int h, int mx, int my) \
{ \
\
avg_width##SIZE##_lsx(src, srcstride, dst, dststride, h); \
}

Definition at line 2440 of file vp9_mc_lsx.c.

Function Documentation

◆ common_hz_8t_4x4_lsx()

static void common_hz_8t_4x4_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter 
)
static

Definition at line 132 of file vp9_mc_lsx.c.

Referenced by common_hz_8t_4w_lsx().

◆ common_hz_8t_4x8_lsx()

static void common_hz_8t_4x8_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter 
)
static

Definition at line 164 of file vp9_mc_lsx.c.

Referenced by common_hz_8t_4w_lsx().

◆ common_hz_8t_4w_lsx()

static void common_hz_8t_4w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 217 of file vp9_mc_lsx.c.

◆ common_hz_8t_8x4_lsx()

static void common_hz_8t_8x4_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter 
)
static

Definition at line 228 of file vp9_mc_lsx.c.

Referenced by common_hz_8t_8w_lsx().

◆ common_hz_8t_8x8mult_lsx()

static void common_hz_8t_8x8mult_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 260 of file vp9_mc_lsx.c.

Referenced by common_hz_8t_8w_lsx().

◆ common_hz_8t_8w_lsx()

static void common_hz_8t_8w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 302 of file vp9_mc_lsx.c.

◆ common_hz_8t_16w_lsx()

static void common_hz_8t_16w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 314 of file vp9_mc_lsx.c.

◆ common_hz_8t_32w_lsx()

static void common_hz_8t_32w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 350 of file vp9_mc_lsx.c.

◆ common_hz_8t_64w_lsx()

static void common_hz_8t_64w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 400 of file vp9_mc_lsx.c.

◆ common_vt_8t_4w_lsx()

static void common_vt_8t_4w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 447 of file vp9_mc_lsx.c.

◆ common_vt_8t_8w_lsx()

static void common_vt_8t_8w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 510 of file vp9_mc_lsx.c.

◆ common_vt_8t_16w_lsx()

static void common_vt_8t_16w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 582 of file vp9_mc_lsx.c.

◆ common_vt_8t_16w_mult_lsx()

static void common_vt_8t_16w_mult_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height,
int32_t  width 
)
static

Definition at line 673 of file vp9_mc_lsx.c.

Referenced by common_vt_8t_32w_lsx(), and common_vt_8t_64w_lsx().

◆ common_vt_8t_32w_lsx()

static void common_vt_8t_32w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 782 of file vp9_mc_lsx.c.

◆ common_vt_8t_64w_lsx()

static void common_vt_8t_64w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 789 of file vp9_mc_lsx.c.

◆ common_hv_8ht_8vt_4w_lsx()

static void common_hv_8ht_8vt_4w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_horiz,
const int8_t *  filter_vert,
int32_t  height 
)
static

Definition at line 797 of file vp9_mc_lsx.c.

◆ common_hv_8ht_8vt_8w_lsx()

static void common_hv_8ht_8vt_8w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_horiz,
const int8_t *  filter_vert,
int32_t  height 
)
static

◆ common_hv_8ht_8vt_16w_lsx()

static void common_hv_8ht_8vt_16w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_horiz,
const int8_t *  filter_vert,
int32_t  height 
)
static

Definition at line 991 of file vp9_mc_lsx.c.

◆ common_hv_8ht_8vt_32w_lsx()

static void common_hv_8ht_8vt_32w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_horiz,
const int8_t *  filter_vert,
int32_t  height 
)
static

Definition at line 1007 of file vp9_mc_lsx.c.

◆ common_hv_8ht_8vt_64w_lsx()

static void common_hv_8ht_8vt_64w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_horiz,
const int8_t *  filter_vert,
int32_t  height 
)
static

Definition at line 1023 of file vp9_mc_lsx.c.

◆ copy_width8_lsx()

static void copy_width8_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 1039 of file vp9_mc_lsx.c.

◆ copy_width16_lsx()

static void copy_width16_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 1066 of file vp9_mc_lsx.c.

◆ copy_width32_lsx()

static void copy_width32_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 1093 of file vp9_mc_lsx.c.

◆ copy_width64_lsx()

static void copy_width64_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 1136 of file vp9_mc_lsx.c.

◆ common_hz_8t_and_aver_dst_4x4_lsx()

static void common_hz_8t_and_aver_dst_4x4_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter 
)
static

Definition at line 1180 of file vp9_mc_lsx.c.

Referenced by common_hz_8t_and_aver_dst_4w_lsx().

◆ common_hz_8t_and_aver_dst_4x8_lsx()

static void common_hz_8t_and_aver_dst_4x8_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter 
)
static

Definition at line 1225 of file vp9_mc_lsx.c.

Referenced by common_hz_8t_and_aver_dst_4w_lsx().

◆ common_hz_8t_and_aver_dst_4w_lsx()

static void common_hz_8t_and_aver_dst_4w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1297 of file vp9_mc_lsx.c.

◆ common_hz_8t_and_aver_dst_8w_lsx()

static void common_hz_8t_and_aver_dst_8w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1310 of file vp9_mc_lsx.c.

◆ common_hz_8t_and_aver_dst_16w_lsx()

static void common_hz_8t_and_aver_dst_16w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1365 of file vp9_mc_lsx.c.

◆ common_hz_8t_and_aver_dst_32w_lsx()

static void common_hz_8t_and_aver_dst_32w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1423 of file vp9_mc_lsx.c.

◆ common_hz_8t_and_aver_dst_64w_lsx()

static void common_hz_8t_and_aver_dst_64w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1480 of file vp9_mc_lsx.c.

◆ common_vt_8t_and_aver_dst_4w_lsx()

static void common_vt_8t_and_aver_dst_4w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1533 of file vp9_mc_lsx.c.

◆ common_vt_8t_and_aver_dst_8w_lsx()

static void common_vt_8t_and_aver_dst_8w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1609 of file vp9_mc_lsx.c.

◆ common_vt_8t_and_aver_dst_16w_mult_lsx()

static void common_vt_8t_and_aver_dst_16w_mult_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height,
int32_t  width 
)
static

◆ common_vt_8t_and_aver_dst_16w_lsx()

static void common_vt_8t_and_aver_dst_16w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1808 of file vp9_mc_lsx.c.

◆ common_vt_8t_and_aver_dst_32w_lsx()

static void common_vt_8t_and_aver_dst_32w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1818 of file vp9_mc_lsx.c.

◆ common_vt_8t_and_aver_dst_64w_lsx()

static void common_vt_8t_and_aver_dst_64w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter,
int32_t  height 
)
static

Definition at line 1828 of file vp9_mc_lsx.c.

◆ common_hv_8ht_8vt_and_aver_dst_4w_lsx()

static void common_hv_8ht_8vt_and_aver_dst_4w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_horiz,
const int8_t *  filter_vert,
int32_t  height 
)
static

Definition at line 1838 of file vp9_mc_lsx.c.

◆ common_hv_8ht_8vt_and_aver_dst_8w_lsx()

static void common_hv_8ht_8vt_and_aver_dst_8w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_horiz,
const int8_t *  filter_vert,
int32_t  height 
)
static

◆ common_hv_8ht_8vt_and_aver_dst_16w_lsx()

static void common_hv_8ht_8vt_and_aver_dst_16w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_horiz,
const int8_t *  filter_vert,
int32_t  height 
)
static

Definition at line 2060 of file vp9_mc_lsx.c.

◆ common_hv_8ht_8vt_and_aver_dst_32w_lsx()

static void common_hv_8ht_8vt_and_aver_dst_32w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_horiz,
const int8_t *  filter_vert,
int32_t  height 
)
static

Definition at line 2080 of file vp9_mc_lsx.c.

◆ common_hv_8ht_8vt_and_aver_dst_64w_lsx()

static void common_hv_8ht_8vt_and_aver_dst_64w_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
const int8_t *  filter_horiz,
const int8_t *  filter_vert,
int32_t  height 
)
static

Definition at line 2100 of file vp9_mc_lsx.c.

◆ avg_width8_lsx()

static void avg_width8_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 2120 of file vp9_mc_lsx.c.

◆ avg_width16_lsx()

static void avg_width16_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 2160 of file vp9_mc_lsx.c.

◆ avg_width32_lsx()

static void avg_width32_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 2195 of file vp9_mc_lsx.c.

◆ avg_width64_lsx()

static void avg_width64_lsx ( const uint8_t *  src,
int32_t  src_stride,
uint8_t *  dst,
int32_t  dst_stride,
int32_t  height 
)
static

Definition at line 2253 of file vp9_mc_lsx.c.

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [1/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( 64  ,
regular  ,
FILTER_8TAP_REGULAR   
)

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [2/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( 32  ,
regular  ,
FILTER_8TAP_REGULAR   
)

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [3/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( 16  ,
regular  ,
FILTER_8TAP_REGULAR   
)

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [4/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( ,
regular  ,
FILTER_8TAP_REGULAR   
)

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [5/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( ,
regular  ,
FILTER_8TAP_REGULAR   
)

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [6/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( 64  ,
sharp  ,
FILTER_8TAP_SHARP   
)

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [7/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( 32  ,
sharp  ,
FILTER_8TAP_SHARP   
)

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [8/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( 16  ,
sharp  ,
FILTER_8TAP_SHARP   
)

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [9/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( ,
sharp  ,
FILTER_8TAP_SHARP   
)

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [10/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( ,
sharp  ,
FILTER_8TAP_SHARP   
)

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [11/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( 64  ,
smooth  ,
FILTER_8TAP_SMOOTH   
)

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [12/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( 32  ,
smooth  ,
FILTER_8TAP_SMOOTH   
)

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [13/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( 16  ,
smooth  ,
FILTER_8TAP_SMOOTH   
)

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [14/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( ,
smooth  ,
FILTER_8TAP_SMOOTH   
)

◆ VP9_8TAP_LOONGARCH_LSX_FUNC() [15/15]

VP9_8TAP_LOONGARCH_LSX_FUNC ( ,
smooth  ,
FILTER_8TAP_SMOOTH   
)

◆ VP9_COPY_LOONGARCH_LSX_FUNC() [1/4]

VP9_COPY_LOONGARCH_LSX_FUNC ( 64  )

◆ VP9_COPY_LOONGARCH_LSX_FUNC() [2/4]

VP9_COPY_LOONGARCH_LSX_FUNC ( 32  )

◆ VP9_COPY_LOONGARCH_LSX_FUNC() [3/4]

VP9_COPY_LOONGARCH_LSX_FUNC ( 16  )

◆ VP9_COPY_LOONGARCH_LSX_FUNC() [4/4]

VP9_COPY_LOONGARCH_LSX_FUNC ( )

Variable Documentation

◆ mc_filt_mask_arr

const uint8_t mc_filt_mask_arr[16 *3]
static

◆ vp9_subpel_filters_lsx

const int8_t vp9_subpel_filters_lsx[3][15][8]
static

Definition at line 2320 of file vp9_mc_lsx.c.

_stride
ptrdiff_t _stride
Definition: h264pred_template.c:411
FILT_8TAP_DPADD_S_H
#define FILT_8TAP_DPADD_S_H(_reg0, _reg1, _reg2, _reg3, _filter0, _filter1, _filter2, _filter3)
Definition: vp9_mc_lsx.c:91
DUP2_ARG3
#define DUP2_ARG3(_INS, _IN0, _IN1, _IN2, _IN3, _IN4, _IN5, _OUT0, _OUT1)
Definition: loongson_intrinsics.h:64
SIZE
#define SIZE
Definition: bitstream_template.c:36
src
INIT_CLIP pixel * src
Definition: h264pred_template.c:418
h
h
Definition: vp9dsp_template.c:2038
DUP4_ARG3
#define DUP4_ARG3(_INS, _IN0, _IN1, _IN2, _IN3, _IN4, _IN5, _IN6, _IN7, _IN8, _IN9, _IN10, _IN11, _OUT0, _OUT1, _OUT2, _OUT3)
Definition: loongson_intrinsics.h:83