FFmpeg
Macros | Functions | Variables
vp9_idct_msa.c File Reference
#include <string.h>
#include "libavcodec/vp9dsp.h"
#include "libavutil/mips/generic_macros_msa.h"
#include "vp9dsp_mips.h"

Go to the source code of this file.

Macros

#define VP9_DCT_CONST_BITS   14
 
#define ROUND_POWER_OF_TWO(value, n)   (((value) + (1 << ((n) - 1))) >> (n))
 
#define VP9_DOTP_CONST_PAIR(reg0, reg1, cnst0, cnst1, out0, out1)
 
#define VP9_DOT_ADD_SUB_SRARI_PCK(in0, in1, in2, in3, in4, in5, in6, in7, dst0, dst1, dst2, dst3)
 
#define VP9_DOT_SHIFT_RIGHT_PCK_H(in0, in1, in2)
 
#define VP9_ADST8(in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3, out4, out5, out6, out7)
 
#define VP9_MADD_SHORT(m0, m1, c0, c1, res0, res1)
 
#define VP9_MADD_BF(inp0, inp1, inp2, inp3, cst0, cst1, cst2, cst3, out0, out1, out2, out3)
 
#define VP9_SET_COSPI_PAIR(c0_h, c1_h)
 
#define VP9_ADDBLK_ST8x4_UB(dst, dst_stride, in0, in1, in2, in3)
 
#define VP9_IDCT4x4(in0, in1, in2, in3, out0, out1, out2, out3)
 
#define VP9_IADST4x4(in0, in1, in2, in3, out0, out1, out2, out3)
 
#define TRANSPOSE4X8_SH_SH(in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3, out4, out5, out6, out7)
 
#define VP9_SET_CONST_PAIR(mask_h, idx1_h, idx2_h)
 
#define VP9_MADD(inp0, inp1, inp2, inp3, cst0, cst1, cst2, cst3, out0, out1, out2, out3)
 
#define VP9_IDCT8x8_1D(in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3, out4, out5, out6, out7)
 
#define VP9_IADST8x8_1D(in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3, out4, out5, out6, out7)
 
#define VP9_IADST8x16_1D(r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, out0, out1, out2, out3, out4, out5, out6, out7, out8, out9, out10, out11, out12, out13, out14, out15)
 

Functions

static void vp9_idct4x4_1_add_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_idct4x4_colcol_addblk_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_iadst4x4_colcol_addblk_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_iadst_idct_4x4_add_msa (int16_t *input, uint8_t *dst, int32_t dst_stride, int32_t eob)
 
static void vp9_idct_iadst_4x4_add_msa (int16_t *input, uint8_t *dst, int32_t dst_stride, int32_t eob)
 
static void vp9_idct8x8_1_add_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_idct8x8_12_colcol_addblk_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_idct8x8_colcol_addblk_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_iadst8x8_colcol_addblk_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_iadst_idct_8x8_add_msa (int16_t *input, uint8_t *dst, int32_t dst_stride, int32_t eob)
 
static void vp9_idct_iadst_8x8_add_msa (int16_t *input, uint8_t *dst, int32_t dst_stride, int32_t eob)
 
static void vp9_idct16_1d_columns_addblk_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_idct16_1d_columns_msa (int16_t *input, int16_t *output)
 
static void vp9_idct16x16_1_add_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_idct16x16_10_colcol_addblk_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_idct16x16_colcol_addblk_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_iadst16_1d_columns_msa (int16_t *input, int16_t *output)
 
static void vp9_iadst16_1d_columns_addblk_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_iadst16x16_colcol_addblk_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_iadst_idct_16x16_add_msa (int16_t *input, uint8_t *dst, int32_t dst_stride, int32_t eob)
 
static void vp9_idct_iadst_16x16_add_msa (int16_t *input, uint8_t *dst, int32_t dst_stride, int32_t eob)
 
static void vp9_idct_butterfly_transpose_store (int16_t *tmp_buf, int16_t *tmp_eve_buf, int16_t *tmp_odd_buf, int16_t *dst)
 
static void vp9_idct8x32_column_even_process_store (int16_t *tmp_buf, int16_t *tmp_eve_buf)
 
static void vp9_idct8x32_column_odd_process_store (int16_t *tmp_buf, int16_t *tmp_odd_buf)
 
static void vp9_idct8x32_column_butterfly_addblk (int16_t *tmp_eve_buf, int16_t *tmp_odd_buf, uint8_t *dst, int32_t dst_stride)
 
static void vp9_idct8x32_1d_columns_addblk_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_idct8x32_1d_columns_msa (int16_t *input, int16_t *output, int16_t *tmp_buf)
 
static void vp9_idct32x32_1_add_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_idct32x32_34_colcol_addblk_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
static void vp9_idct32x32_colcol_addblk_msa (int16_t *input, uint8_t *dst, int32_t dst_stride)
 
void ff_idct_idct_4x4_add_msa (uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob)
 
void ff_idct_idct_8x8_add_msa (uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob)
 
void ff_idct_idct_16x16_add_msa (uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob)
 
void ff_idct_idct_32x32_add_msa (uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob)
 
void ff_iadst_iadst_4x4_add_msa (uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob)
 
void ff_iadst_iadst_8x8_add_msa (uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob)
 
void ff_iadst_iadst_16x16_add_msa (uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob)
 
void ff_idct_iadst_4x4_add_msa (uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob)
 
void ff_idct_iadst_8x8_add_msa (uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob)
 
void ff_idct_iadst_16x16_add_msa (uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob)
 
void ff_iadst_idct_4x4_add_msa (uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob)
 
void ff_iadst_idct_8x8_add_msa (uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob)
 
void ff_iadst_idct_16x16_add_msa (uint8_t *dst, ptrdiff_t stride, int16_t *block, int eob)
 

Variables

static const int32_t cospi_1_64 = 16364
 
static const int32_t cospi_2_64 = 16305
 
static const int32_t cospi_3_64 = 16207
 
static const int32_t cospi_4_64 = 16069
 
static const int32_t cospi_5_64 = 15893
 
static const int32_t cospi_6_64 = 15679
 
static const int32_t cospi_7_64 = 15426
 
static const int32_t cospi_8_64 = 15137
 
static const int32_t cospi_9_64 = 14811
 
static const int32_t cospi_10_64 = 14449
 
static const int32_t cospi_11_64 = 14053
 
static const int32_t cospi_12_64 = 13623
 
static const int32_t cospi_13_64 = 13160
 
static const int32_t cospi_14_64 = 12665
 
static const int32_t cospi_15_64 = 12140
 
static const int32_t cospi_16_64 = 11585
 
static const int32_t cospi_17_64 = 11003
 
static const int32_t cospi_18_64 = 10394
 
static const int32_t cospi_19_64 = 9760
 
static const int32_t cospi_20_64 = 9102
 
static const int32_t cospi_21_64 = 8423
 
static const int32_t cospi_22_64 = 7723
 
static const int32_t cospi_23_64 = 7005
 
static const int32_t cospi_24_64 = 6270
 
static const int32_t cospi_25_64 = 5520
 
static const int32_t cospi_26_64 = 4756
 
static const int32_t cospi_27_64 = 3981
 
static const int32_t cospi_28_64 = 3196
 
static const int32_t cospi_29_64 = 2404
 
static const int32_t cospi_30_64 = 1606
 
static const int32_t cospi_31_64 = 804
 
static const int32_t sinpi_1_9 = 5283
 
static const int32_t sinpi_2_9 = 9929
 
static const int32_t sinpi_3_9 = 13377
 
static const int32_t sinpi_4_9 = 15212
 

Macro Definition Documentation

#define VP9_DCT_CONST_BITS   14
#define ROUND_POWER_OF_TWO (   value,
  n 
)    (((value) + (1 << ((n) - 1))) >> (n))
#define VP9_DOTP_CONST_PAIR (   reg0,
  reg1,
  cnst0,
  cnst1,
  out0,
  out1 
)
Value:
{ \
v8i16 k0_m = __msa_fill_h(cnst0); \
v4i32 s0_m, s1_m, s2_m, s3_m; \
\
s0_m = (v4i32) __msa_fill_h(cnst1); \
k0_m = __msa_ilvev_h((v8i16) s0_m, k0_m); \
ILVRL_H2_SW((-reg1), reg0, s1_m, s0_m); \
ILVRL_H2_SW(reg0, reg1, s3_m, s2_m); \
DOTP_SH2_SW(s1_m, s0_m, k0_m, k0_m, s1_m, s0_m); \
out0 = __msa_pckev_h((v8i16) s0_m, (v8i16) s1_m); \
DOTP_SH2_SW(s3_m, s2_m, k0_m, k0_m, s1_m, s0_m); \
out1 = __msa_pckev_h((v8i16) s0_m, (v8i16) s1_m); \
}
#define ILVRL_H2_SW(...)
#define VP9_DCT_CONST_BITS
Definition: vp9_idct_msa.c:26
#define DOTP_SH2_SW(...)
#define SRARI_W2_SW(...)

Definition at line 67 of file vp9_idct_msa.c.

Referenced by vp9_idct16_1d_columns_addblk_msa(), vp9_idct16_1d_columns_msa(), vp9_idct8x32_column_even_process_store(), and vp9_idct8x32_column_odd_process_store().

#define VP9_DOT_ADD_SUB_SRARI_PCK (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  dst0,
  dst1,
  dst2,
  dst3 
)
Value:
{ \
v4i32 tp0_m, tp1_m, tp2_m, tp3_m, tp4_m; \
v4i32 tp5_m, tp6_m, tp7_m, tp8_m, tp9_m; \
DOTP_SH4_SW(in0, in1, in0, in1, in4, in4, in5, in5, \
tp0_m, tp2_m, tp3_m, tp4_m); \
DOTP_SH4_SW(in2, in3, in2, in3, in6, in6, in7, in7, \
tp5_m, tp6_m, tp7_m, tp8_m); \
BUTTERFLY_4(tp0_m, tp3_m, tp7_m, tp5_m, tp1_m, tp9_m, tp7_m, tp5_m); \
BUTTERFLY_4(tp2_m, tp4_m, tp8_m, tp6_m, tp3_m, tp0_m, tp4_m, tp2_m); \
SRARI_W4_SW(tp1_m, tp9_m, tp7_m, tp5_m, VP9_DCT_CONST_BITS); \
SRARI_W4_SW(tp3_m, tp0_m, tp4_m, tp2_m, VP9_DCT_CONST_BITS); \
PCKEV_H4_SH(tp1_m, tp3_m, tp9_m, tp0_m, tp7_m, tp4_m, tp5_m, tp2_m, \
dst0, dst1, dst2, dst3); \
}
#define SRARI_W4_SW(...)
#define DOTP_SH4_SW(...)
#define VP9_DCT_CONST_BITS
Definition: vp9_idct_msa.c:26
#define BUTTERFLY_4(in0, in1, in2, in3, out0, out1, out2, out3)
#define PCKEV_H4_SH(...)

Definition at line 86 of file vp9_idct_msa.c.

Referenced by vp9_iadst8x8_colcol_addblk_msa().

#define VP9_DOT_SHIFT_RIGHT_PCK_H (   in0,
  in1,
  in2 
)
Value:
( { \
v8i16 dst_m; \
v4i32 tp0_m, tp1_m; \
DOTP_SH2_SW(in0, in1, in2, in2, tp1_m, tp0_m); \
dst_m = __msa_pckev_h((v8i16) tp1_m, (v8i16) tp0_m); \
\
dst_m; \
} )
#define VP9_DCT_CONST_BITS
Definition: vp9_idct_msa.c:26
#define DOTP_SH2_SW(...)
#define SRARI_W2_SW(...)

Definition at line 104 of file vp9_idct_msa.c.

Referenced by vp9_iadst8x8_colcol_addblk_msa().

#define VP9_ADST8 (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5,
  out6,
  out7 
)

Definition at line 116 of file vp9_idct_msa.c.

Referenced by vp9_iadst8x8_colcol_addblk_msa().

#define VP9_MADD_SHORT (   m0,
  m1,
  c0,
  c1,
  res0,
  res1 
)
Value:
{ \
v4i32 madd0_m, madd1_m, madd2_m, madd3_m; \
v8i16 madd_s0_m, madd_s1_m; \
ILVRL_H2_SH(m1, m0, madd_s0_m, madd_s1_m); \
DOTP_SH4_SW(madd_s0_m, madd_s1_m, madd_s0_m, madd_s1_m, \
c0, c0, c1, c1, madd0_m, madd1_m, madd2_m, madd3_m); \
SRARI_W4_SW(madd0_m, madd1_m, madd2_m, madd3_m, VP9_DCT_CONST_BITS); \
PCKEV_H2_SH(madd1_m, madd0_m, madd3_m, madd2_m, res0, res1); \
}
#define SRARI_W4_SW(...)
#define DOTP_SH4_SW(...)
#define VP9_DCT_CONST_BITS
Definition: vp9_idct_msa.c:26
static const uint64_t c1
Definition: murmur3.c:49
#define ILVRL_H2_SH(...)
#define PCKEV_H2_SH(...)

Definition at line 184 of file vp9_idct_msa.c.

Referenced by vp9_iadst16_1d_columns_addblk_msa().

#define VP9_MADD_BF (   inp0,
  inp1,
  inp2,
  inp3,
  cst0,
  cst1,
  cst2,
  cst3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
v8i16 madd_s0_m, madd_s1_m, madd_s2_m, madd_s3_m; \
v4i32 tmp0_m, tmp1_m, tmp2_m, tmp3_m, m4_m, m5_m; \
ILVRL_H2_SH(inp1, inp0, madd_s0_m, madd_s1_m); \
ILVRL_H2_SH(inp3, inp2, madd_s2_m, madd_s3_m); \
DOTP_SH4_SW(madd_s0_m, madd_s1_m, madd_s2_m, madd_s3_m, \
cst0, cst0, cst2, cst2, tmp0_m, tmp1_m, tmp2_m, tmp3_m); \
BUTTERFLY_4(tmp0_m, tmp1_m, tmp3_m, tmp2_m, \
m4_m, m5_m, tmp3_m, tmp2_m); \
SRARI_W4_SW(m4_m, m5_m, tmp2_m, tmp3_m, VP9_DCT_CONST_BITS); \
PCKEV_H2_SH(m5_m, m4_m, tmp3_m, tmp2_m, out0, out1); \
DOTP_SH4_SW(madd_s0_m, madd_s1_m, madd_s2_m, madd_s3_m, \
cst1, cst1, cst3, cst3, tmp0_m, tmp1_m, tmp2_m, tmp3_m); \
BUTTERFLY_4(tmp0_m, tmp1_m, tmp3_m, tmp2_m, \
m4_m, m5_m, tmp3_m, tmp2_m); \
SRARI_W4_SW(m4_m, m5_m, tmp2_m, tmp3_m, VP9_DCT_CONST_BITS); \
PCKEV_H2_SH(m5_m, m4_m, tmp3_m, tmp2_m, out2, out3); \
}
#define SRARI_W4_SW(...)
#define DOTP_SH4_SW(...)
#define VP9_DCT_CONST_BITS
Definition: vp9_idct_msa.c:26
#define ILVRL_H2_SH(...)
#define BUTTERFLY_4(in0, in1, in2, in3, out0, out1, out2, out3)
#define PCKEV_H2_SH(...)

Definition at line 196 of file vp9_idct_msa.c.

Referenced by vp9_iadst16_1d_columns_addblk_msa().

#define VP9_SET_COSPI_PAIR (   c0_h,
  c1_h 
)
Value:
( { \
v8i16 out0_m, r0_m, r1_m; \
\
r0_m = __msa_fill_h(c0_h); \
r1_m = __msa_fill_h(c1_h); \
out0_m = __msa_ilvev_h(r1_m, r0_m); \
\
out0_m; \
} )

Definition at line 218 of file vp9_idct_msa.c.

Referenced by vp9_iadst16_1d_columns_addblk_msa(), and vp9_idct8x8_12_colcol_addblk_msa().

#define VP9_ADDBLK_ST8x4_UB (   dst,
  dst_stride,
  in0,
  in1,
  in2,
  in3 
)
Value:
{ \
uint8_t *dst_m = (uint8_t *) (dst); \
v16u8 dst0_m, dst1_m, dst2_m, dst3_m; \
v16i8 tmp0_m, tmp1_m; \
v16i8 zero_m = { 0 }; \
v8i16 res0_m, res1_m, res2_m, res3_m; \
LD_UB4(dst_m, dst_stride, dst0_m, dst1_m, dst2_m, dst3_m); \
ILVR_B4_SH(zero_m, dst0_m, zero_m, dst1_m, zero_m, dst2_m, \
zero_m, dst3_m, res0_m, res1_m, res2_m, res3_m); \
ADD4(res0_m, in0, res1_m, in1, res2_m, in2, res3_m, in3, \
res0_m, res1_m, res2_m, res3_m); \
CLIP_SH4_0_255(res0_m, res1_m, res2_m, res3_m); \
PCKEV_B2_SB(res1_m, res0_m, res3_m, res2_m, tmp0_m, tmp1_m); \
ST_D4(tmp0_m, tmp1_m, 0, 1, 0, 1, dst_m, dst_stride); \
}
#define LD_UB4(...)
uint8_t
#define ST_D4(in0, in1, idx0, idx1, idx2, idx3, pdst, stride)
#define PCKEV_B2_SB(...)
#define ADD4(in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
#define CLIP_SH4_0_255(in0, in1, in2, in3)
#define ILVR_B4_SH(...)

Definition at line 229 of file vp9_idct_msa.c.

Referenced by vp9_iadst_idct_8x8_add_msa(), vp9_idct16_1d_columns_addblk_msa(), vp9_idct8x32_column_butterfly_addblk(), vp9_idct8x8_12_colcol_addblk_msa(), vp9_idct8x8_1_add_msa(), vp9_idct8x8_colcol_addblk_msa(), and vp9_idct_iadst_8x8_add_msa().

#define VP9_IDCT4x4 (   in0,
  in1,
  in2,
  in3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
v8i16 c0_m, c1_m, c2_m, c3_m; \
v8i16 step0_m, step1_m; \
v4i32 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \
\
step0_m = __msa_ilvr_h(in2, in0); \
DOTP_SH2_SW(step0_m, step0_m, c0_m, c1_m, tmp0_m, tmp1_m); \
\
step1_m = __msa_ilvr_h(in3, in1); \
DOTP_SH2_SW(step1_m, step1_m, c2_m, c3_m, tmp2_m, tmp3_m); \
SRARI_W4_SW(tmp0_m, tmp1_m, tmp2_m, tmp3_m, VP9_DCT_CONST_BITS); \
PCKEV_H2_SW(tmp1_m, tmp0_m, tmp3_m, tmp2_m, tmp0_m, tmp2_m); \
SLDI_B2_0_SW(tmp0_m, tmp2_m, tmp1_m, tmp3_m, 8); \
BUTTERFLY_4((v8i16) tmp0_m, (v8i16) tmp1_m, \
(v8i16) tmp2_m, (v8i16) tmp3_m, \
out0, out1, out2, out3); \
}
#define SRARI_W4_SW(...)
static const int32_t cospi_24_64
Definition: vp9_idct_msa.c:52
#define VP9_SET_COSPI_PAIR(c0_h, c1_h)
Definition: vp9_idct_msa.c:218
#define VP9_DCT_CONST_BITS
Definition: vp9_idct_msa.c:26
#define DOTP_SH2_SW(...)
#define BUTTERFLY_4(in0, in1, in2, in3, out0, out1, out2, out3)
#define SLDI_B2_0_SW(...)
#define PCKEV_H2_SW(...)
static const int32_t cospi_8_64
Definition: vp9_idct_msa.c:36
static const int32_t cospi_16_64
Definition: vp9_idct_msa.c:44

Definition at line 247 of file vp9_idct_msa.c.

Referenced by vp9_iadst_idct_4x4_add_msa(), vp9_idct4x4_colcol_addblk_msa(), and vp9_idct_iadst_4x4_add_msa().

#define VP9_IADST4x4 (   in0,
  in1,
  in2,
  in3,
  out0,
  out1,
  out2,
  out3 
)
#define TRANSPOSE4X8_SH_SH (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5,
  out6,
  out7 
)
Value:
{ \
v8i16 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \
v8i16 tmp0_n, tmp1_n, tmp2_n, tmp3_n; \
v8i16 zero_m = { 0 }; \
ILVR_H4_SH(in1, in0, in3, in2, in5, in4, in7, in6, \
tmp0_n, tmp1_n, tmp2_n, tmp3_n); \
ILVRL_W2_SH(tmp1_n, tmp0_n, tmp0_m, tmp2_m); \
ILVRL_W2_SH(tmp3_n, tmp2_n, tmp1_m, tmp3_m); \
\
out0 = (v8i16) __msa_ilvr_d((v2i64) tmp1_m, (v2i64) tmp0_m); \
out1 = (v8i16) __msa_ilvl_d((v2i64) tmp1_m, (v2i64) tmp0_m); \
out2 = (v8i16) __msa_ilvr_d((v2i64) tmp3_m, (v2i64) tmp2_m); \
out3 = (v8i16) __msa_ilvl_d((v2i64) tmp3_m, (v2i64) tmp2_m); \
\
out4 = zero_m; \
out5 = zero_m; \
out6 = zero_m; \
out7 = zero_m; \
}
#define ILVR_H4_SH(...)
#define ILVRL_W2_SH(...)

Definition at line 322 of file vp9_idct_msa.c.

Referenced by vp9_idct8x8_12_colcol_addblk_msa().

#define VP9_SET_CONST_PAIR (   mask_h,
  idx1_h,
  idx2_h 
)
Value:
( { \
v8i16 c0_m, c1_m; \
SPLATI_H2_SH(mask_h, idx1_h, idx2_h, c0_m, c1_m); \
c0_m = __msa_ilvev_h(c1_m, c0_m); \
\
c0_m; \
} )
#define SPLATI_H2_SH(...)

Definition at line 448 of file vp9_idct_msa.c.

#define VP9_MADD (   inp0,
  inp1,
  inp2,
  inp3,
  cst0,
  cst1,
  cst2,
  cst3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
v8i16 madd_s0_m, madd_s1_m, madd_s2_m, madd_s3_m; \
v4i32 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \
ILVRL_H2_SH(inp1, inp0, madd_s1_m, madd_s0_m); \
ILVRL_H2_SH(inp3, inp2, madd_s3_m, madd_s2_m); \
DOTP_SH4_SW(madd_s1_m, madd_s0_m, madd_s1_m, madd_s0_m, \
cst0, cst0, cst1, cst1, tmp0_m, tmp1_m, tmp2_m, tmp3_m); \
SRARI_W4_SW(tmp0_m, tmp1_m, tmp2_m, tmp3_m, VP9_DCT_CONST_BITS); \
PCKEV_H2_SH(tmp1_m, tmp0_m, tmp3_m, tmp2_m, out0, out1); \
DOTP_SH4_SW(madd_s3_m, madd_s2_m, madd_s3_m, madd_s2_m, \
cst2, cst2, cst3, cst3, tmp0_m, tmp1_m, tmp2_m, tmp3_m); \
SRARI_W4_SW(tmp0_m, tmp1_m, tmp2_m, tmp3_m, VP9_DCT_CONST_BITS); \
PCKEV_H2_SH(tmp1_m, tmp0_m, tmp3_m, tmp2_m, out2, out3); \
}
#define SRARI_W4_SW(...)
#define DOTP_SH4_SW(...)
#define VP9_DCT_CONST_BITS
Definition: vp9_idct_msa.c:26
#define ILVRL_H2_SH(...)
#define PCKEV_H2_SH(...)

Definition at line 459 of file vp9_idct_msa.c.

#define VP9_IDCT8x8_1D (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5,
  out6,
  out7 
)
#define VP9_IADST8x8_1D (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5,
  out6,
  out7 
)

Definition at line 512 of file vp9_idct_msa.c.

Referenced by vp9_iadst_idct_8x8_add_msa(), and vp9_idct_iadst_8x8_add_msa().

#define VP9_IADST8x16_1D (   r0,
  r1,
  r2,
  r3,
  r4,
  r5,
  r6,
  r7,
  r8,
  r9,
  r10,
  r11,
  r12,
  r13,
  r14,
  r15,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5,
  out6,
  out7,
  out8,
  out9,
  out10,
  out11,
  out12,
  out13,
  out14,
  out15 
)

Definition at line 888 of file vp9_idct_msa.c.

Referenced by vp9_iadst16_1d_columns_msa().

Function Documentation

static void vp9_idct4x4_1_add_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 345 of file vp9_idct_msa.c.

Referenced by ff_idct_idct_4x4_add_msa().

static void vp9_idct4x4_colcol_addblk_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 360 of file vp9_idct_msa.c.

Referenced by ff_idct_idct_4x4_add_msa().

static void vp9_iadst4x4_colcol_addblk_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 382 of file vp9_idct_msa.c.

Referenced by ff_iadst_iadst_4x4_add_msa().

static void vp9_iadst_idct_4x4_add_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride,
int32_t  eob 
)
static

Definition at line 404 of file vp9_idct_msa.c.

Referenced by ff_iadst_idct_4x4_add_msa().

static void vp9_idct_iadst_4x4_add_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride,
int32_t  eob 
)
static

Definition at line 426 of file vp9_idct_msa.c.

Referenced by ff_idct_iadst_4x4_add_msa().

static void vp9_idct8x8_1_add_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 598 of file vp9_idct_msa.c.

Referenced by ff_idct_idct_8x8_add_msa().

static void vp9_idct8x8_12_colcol_addblk_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 616 of file vp9_idct_msa.c.

Referenced by ff_idct_idct_8x8_add_msa().

static void vp9_idct8x8_colcol_addblk_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 680 of file vp9_idct_msa.c.

Referenced by ff_idct_idct_8x8_add_msa().

static void vp9_iadst8x8_colcol_addblk_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 707 of file vp9_idct_msa.c.

Referenced by ff_iadst_iadst_8x8_add_msa().

static void vp9_iadst_idct_8x8_add_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride,
int32_t  eob 
)
static

Definition at line 833 of file vp9_idct_msa.c.

Referenced by ff_iadst_idct_8x8_add_msa().

static void vp9_idct_iadst_8x8_add_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride,
int32_t  eob 
)
static

Definition at line 860 of file vp9_idct_msa.c.

Referenced by ff_idct_iadst_8x8_add_msa().

static void vp9_idct16_1d_columns_addblk_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static
static void vp9_idct16_1d_columns_msa ( int16_t *  input,
int16_t *  output 
)
static
static void vp9_idct16x16_1_add_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 1170 of file vp9_idct_msa.c.

Referenced by ff_idct_idct_16x16_add_msa().

static void vp9_idct16x16_10_colcol_addblk_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 1203 of file vp9_idct_msa.c.

Referenced by ff_idct_idct_16x16_add_msa().

static void vp9_idct16x16_colcol_addblk_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 1243 of file vp9_idct_msa.c.

Referenced by ff_idct_idct_16x16_add_msa().

static void vp9_iadst16_1d_columns_msa ( int16_t *  input,
int16_t *  output 
)
static
static void vp9_iadst16_1d_columns_addblk_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static
static void vp9_iadst16x16_colcol_addblk_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 1464 of file vp9_idct_msa.c.

Referenced by ff_iadst_iadst_16x16_add_msa().

static void vp9_iadst_idct_16x16_add_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride,
int32_t  eob 
)
static

Definition at line 1485 of file vp9_idct_msa.c.

Referenced by ff_iadst_idct_16x16_add_msa().

static void vp9_idct_iadst_16x16_add_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride,
int32_t  eob 
)
static

Definition at line 1506 of file vp9_idct_msa.c.

Referenced by ff_idct_iadst_16x16_add_msa().

static void vp9_idct_butterfly_transpose_store ( int16_t *  tmp_buf,
int16_t *  tmp_eve_buf,
int16_t *  tmp_odd_buf,
int16_t *  dst 
)
static

Definition at line 1527 of file vp9_idct_msa.c.

Referenced by vp9_idct8x32_1d_columns_msa().

static void vp9_idct8x32_column_even_process_store ( int16_t *  tmp_buf,
int16_t *  tmp_eve_buf 
)
static
static void vp9_idct8x32_column_odd_process_store ( int16_t *  tmp_buf,
int16_t *  tmp_odd_buf 
)
static
static void vp9_idct8x32_column_butterfly_addblk ( int16_t *  tmp_eve_buf,
int16_t *  tmp_odd_buf,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 1844 of file vp9_idct_msa.c.

Referenced by vp9_idct8x32_1d_columns_addblk_msa().

static void vp9_idct8x32_1d_columns_addblk_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static
static void vp9_idct8x32_1d_columns_msa ( int16_t *  input,
int16_t *  output,
int16_t *  tmp_buf 
)
static
static void vp9_idct32x32_1_add_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 1956 of file vp9_idct_msa.c.

Referenced by ff_idct_idct_32x32_add_msa().

static void vp9_idct32x32_34_colcol_addblk_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 1994 of file vp9_idct_msa.c.

Referenced by ff_idct_idct_32x32_add_msa().

static void vp9_idct32x32_colcol_addblk_msa ( int16_t *  input,
uint8_t dst,
int32_t  dst_stride 
)
static

Definition at line 2041 of file vp9_idct_msa.c.

Referenced by ff_idct_idct_32x32_add_msa().

void ff_idct_idct_4x4_add_msa ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  block,
int  eob 
)

Definition at line 2064 of file vp9_idct_msa.c.

void ff_idct_idct_8x8_add_msa ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  block,
int  eob 
)

Definition at line 2075 of file vp9_idct_msa.c.

void ff_idct_idct_16x16_add_msa ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  block,
int  eob 
)

Definition at line 2089 of file vp9_idct_msa.c.

void ff_idct_idct_32x32_add_msa ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  block,
int  eob 
)

Definition at line 2104 of file vp9_idct_msa.c.

void ff_iadst_iadst_4x4_add_msa ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  block,
int  eob 
)

Definition at line 2118 of file vp9_idct_msa.c.

void ff_iadst_iadst_8x8_add_msa ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  block,
int  eob 
)

Definition at line 2124 of file vp9_idct_msa.c.

void ff_iadst_iadst_16x16_add_msa ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  block,
int  eob 
)

Definition at line 2130 of file vp9_idct_msa.c.

void ff_idct_iadst_4x4_add_msa ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  block,
int  eob 
)

Definition at line 2136 of file vp9_idct_msa.c.

void ff_idct_iadst_8x8_add_msa ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  block,
int  eob 
)

Definition at line 2142 of file vp9_idct_msa.c.

void ff_idct_iadst_16x16_add_msa ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  block,
int  eob 
)

Definition at line 2148 of file vp9_idct_msa.c.

void ff_iadst_idct_4x4_add_msa ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  block,
int  eob 
)

Definition at line 2154 of file vp9_idct_msa.c.

void ff_iadst_idct_8x8_add_msa ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  block,
int  eob 
)

Definition at line 2160 of file vp9_idct_msa.c.

void ff_iadst_idct_16x16_add_msa ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  block,
int  eob 
)

Definition at line 2166 of file vp9_idct_msa.c.

Variable Documentation

const int32_t cospi_1_64 = 16364
static
const int32_t cospi_2_64 = 16305
static
const int32_t cospi_3_64 = 16207
static
const int32_t cospi_4_64 = 16069
static
const int32_t cospi_5_64 = 15893
static
const int32_t cospi_6_64 = 15679
static
const int32_t cospi_7_64 = 15426
static
const int32_t cospi_8_64 = 15137
static
const int32_t cospi_9_64 = 14811
static
const int32_t cospi_10_64 = 14449
static
const int32_t cospi_11_64 = 14053
static
const int32_t cospi_12_64 = 13623
static
const int32_t cospi_13_64 = 13160
static
const int32_t cospi_14_64 = 12665
static
const int32_t cospi_15_64 = 12140
static
const int32_t cospi_16_64 = 11585
static
const int32_t cospi_17_64 = 11003
static
const int32_t cospi_18_64 = 10394
static
const int32_t cospi_19_64 = 9760
static
const int32_t cospi_20_64 = 9102
static
const int32_t cospi_21_64 = 8423
static
const int32_t cospi_22_64 = 7723
static
const int32_t cospi_23_64 = 7005
static
const int32_t cospi_24_64 = 6270
static
const int32_t cospi_25_64 = 5520
static
const int32_t cospi_26_64 = 4756
static
const int32_t cospi_27_64 = 3981
static
const int32_t cospi_28_64 = 3196
static
const int32_t cospi_29_64 = 2404
static
const int32_t cospi_30_64 = 1606
static
const int32_t cospi_31_64 = 804
static
const int32_t sinpi_1_9 = 5283
static

Definition at line 62 of file vp9_idct_msa.c.

const int32_t sinpi_2_9 = 9929
static

Definition at line 63 of file vp9_idct_msa.c.

const int32_t sinpi_3_9 = 13377
static

Definition at line 64 of file vp9_idct_msa.c.

const int32_t sinpi_4_9 = 15212
static

Definition at line 65 of file vp9_idct_msa.c.