FFmpeg
Macros | Functions
vc1dsp_lasx.c File Reference
#include "vc1dsp_loongarch.h"
#include "libavutil/loongarch/loongson_intrinsics.h"

Go to the source code of this file.

Macros

#define PUT_VC1_MSPEL_MC_LASX(hmode, vmode)
 
#define PUT_VC1_MSPEL_MC_V_LASX(vmode)
 
#define ROW_LASX(in0, in1, in2, in3, out0)
 
#define PUT_VC1_MSPEL_MC_H_LASX(hmode)
 

Functions

void ff_vc1_inv_trans_8x8_lasx (int16_t block[64])
 
void ff_vc1_inv_trans_8x8_dc_lasx (uint8_t *dest, ptrdiff_t stride, int16_t *block)
 
void ff_vc1_inv_trans_8x4_lasx (uint8_t *dest, ptrdiff_t stride, int16_t *block)
 
void ff_vc1_inv_trans_8x4_dc_lasx (uint8_t *dest, ptrdiff_t stride, int16_t *block)
 
void ff_vc1_inv_trans_4x8_dc_lasx (uint8_t *dest, ptrdiff_t stride, int16_t *block)
 
void ff_vc1_inv_trans_4x8_lasx (uint8_t *dest, ptrdiff_t stride, int16_t *block)
 
void ff_vc1_inv_trans_4x4_dc_lasx (uint8_t *dest, ptrdiff_t stride, int16_t *block)
 
void ff_vc1_inv_trans_4x4_lasx (uint8_t *dest, ptrdiff_t stride, int16_t *block)
 
static void put_vc1_mspel_mc_h_v_lasx (uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int hmode, int vmode, int rnd)
 
 PUT_VC1_MSPEL_MC_LASX (1, 1)
 
 PUT_VC1_MSPEL_MC_LASX (1, 2)
 
 PUT_VC1_MSPEL_MC_LASX (1, 3)
 
 PUT_VC1_MSPEL_MC_LASX (2, 1)
 
 PUT_VC1_MSPEL_MC_LASX (2, 2)
 
 PUT_VC1_MSPEL_MC_LASX (2, 3)
 
 PUT_VC1_MSPEL_MC_LASX (3, 1)
 
 PUT_VC1_MSPEL_MC_LASX (3, 2)
 
 PUT_VC1_MSPEL_MC_LASX (3, 3)
 
void ff_put_no_rnd_vc1_chroma_mc8_lasx (uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int h, int x, int y)
 
static void put_vc1_mspel_mc_v_lasx (uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int vmode, int rnd)
 
 PUT_VC1_MSPEL_MC_V_LASX (1)
 
 PUT_VC1_MSPEL_MC_V_LASX (2)
 
 PUT_VC1_MSPEL_MC_V_LASX (3)
 
static void put_vc1_mspel_mc_h_lasx (uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int hmode, int rnd)
 
 PUT_VC1_MSPEL_MC_H_LASX (1)
 
 PUT_VC1_MSPEL_MC_H_LASX (2)
 
 PUT_VC1_MSPEL_MC_H_LASX (3)
 

Macro Definition Documentation

◆ PUT_VC1_MSPEL_MC_LASX

#define PUT_VC1_MSPEL_MC_LASX (   hmode,
  vmode 
)
Value:
void ff_put_vc1_mspel_mc ## hmode ## vmode ## _lasx(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride, int rnd) \
{ \
put_vc1_mspel_mc_h_v_lasx(dst, src, stride, hmode, vmode, rnd); \
} \
void ff_put_vc1_mspel_mc ## hmode ## vmode ## _16_lasx(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride, int rnd) \
{ \
put_vc1_mspel_mc_h_v_lasx(dst, src, stride, hmode, vmode, rnd); \
put_vc1_mspel_mc_h_v_lasx(dst + 8, src + 8, stride, hmode, vmode, rnd); \
dst += 8 * stride, src += 8 * stride; \
put_vc1_mspel_mc_h_v_lasx(dst, src, stride, hmode, vmode, rnd); \
put_vc1_mspel_mc_h_v_lasx(dst + 8, src + 8, stride, hmode, vmode, rnd); \
}

Definition at line 670 of file vc1dsp_lasx.c.

◆ PUT_VC1_MSPEL_MC_V_LASX

#define PUT_VC1_MSPEL_MC_V_LASX (   vmode)
Value:
void ff_put_vc1_mspel_mc0 ## vmode ## _16_lasx(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride, int rnd) \
{ \
put_vc1_mspel_mc_v_lasx(dst, src, stride, vmode, rnd); \
}

Definition at line 783 of file vc1dsp_lasx.c.

◆ ROW_LASX

#define ROW_LASX (   in0,
  in1,
  in2,
  in3,
  out0 
)
Value:
DUP2_ARG2(__lasx_xvilvl_b, in2, in1, in3, in0, tmp0_m, tmp1_m); \
out0 = __lasx_xvdp2_h_bu(tmp0_m, const_para1_2); \
out0 = __lasx_xvdp2sub_h_bu(out0, tmp1_m, const_para0_3); \
out0 = __lasx_xvadd_h(out0, const_r); \
out0 = __lasx_xvsra_h(out0, const_sh); \
out0 = __lasx_xvclip255_h(out0); \
out0 = __lasx_xvpickev_b(out0, out0); \
out0 = __lasx_xvpermi_d(out0, 0xd8); \

Definition at line 795 of file vc1dsp_lasx.c.

◆ PUT_VC1_MSPEL_MC_H_LASX

#define PUT_VC1_MSPEL_MC_H_LASX (   hmode)
Value:
void ff_put_vc1_mspel_mc ## hmode ## 0_16_lasx(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride, int rnd) \
{ \
put_vc1_mspel_mc_h_lasx(dst, src, stride, hmode, rnd); \
}

Definition at line 995 of file vc1dsp_lasx.c.

Function Documentation

◆ ff_vc1_inv_trans_8x8_lasx()

void ff_vc1_inv_trans_8x8_lasx ( int16_t  block[64])

Definition at line 25 of file vc1dsp_lasx.c.

Referenced by ff_vc1dsp_init_loongarch().

◆ ff_vc1_inv_trans_8x8_dc_lasx()

void ff_vc1_inv_trans_8x8_dc_lasx ( uint8_t *  dest,
ptrdiff_t  stride,
int16_t *  block 
)

Definition at line 135 of file vc1dsp_lasx.c.

Referenced by ff_vc1dsp_init_loongarch().

◆ ff_vc1_inv_trans_8x4_lasx()

void ff_vc1_inv_trans_8x4_lasx ( uint8_t *  dest,
ptrdiff_t  stride,
int16_t *  block 
)

Definition at line 174 of file vc1dsp_lasx.c.

Referenced by ff_vc1dsp_init_loongarch().

◆ ff_vc1_inv_trans_8x4_dc_lasx()

void ff_vc1_inv_trans_8x4_dc_lasx ( uint8_t *  dest,
ptrdiff_t  stride,
int16_t *  block 
)

Definition at line 265 of file vc1dsp_lasx.c.

Referenced by ff_vc1dsp_init_loongarch().

◆ ff_vc1_inv_trans_4x8_dc_lasx()

void ff_vc1_inv_trans_4x8_dc_lasx ( uint8_t *  dest,
ptrdiff_t  stride,
int16_t *  block 
)

Definition at line 290 of file vc1dsp_lasx.c.

Referenced by ff_vc1dsp_init_loongarch().

◆ ff_vc1_inv_trans_4x8_lasx()

void ff_vc1_inv_trans_4x8_lasx ( uint8_t *  dest,
ptrdiff_t  stride,
int16_t *  block 
)

Definition at line 325 of file vc1dsp_lasx.c.

Referenced by ff_vc1dsp_init_loongarch().

◆ ff_vc1_inv_trans_4x4_dc_lasx()

void ff_vc1_inv_trans_4x4_dc_lasx ( uint8_t *  dest,
ptrdiff_t  stride,
int16_t *  block 
)

Definition at line 439 of file vc1dsp_lasx.c.

Referenced by ff_vc1dsp_init_loongarch().

◆ ff_vc1_inv_trans_4x4_lasx()

void ff_vc1_inv_trans_4x4_lasx ( uint8_t *  dest,
ptrdiff_t  stride,
int16_t *  block 
)

Definition at line 466 of file vc1dsp_lasx.c.

Referenced by ff_vc1dsp_init_loongarch().

◆ put_vc1_mspel_mc_h_v_lasx()

static void put_vc1_mspel_mc_h_v_lasx ( uint8_t *  dst,
const uint8_t *  src,
ptrdiff_t  stride,
int  hmode,
int  vmode,
int  rnd 
)
static

Definition at line 522 of file vc1dsp_lasx.c.

◆ PUT_VC1_MSPEL_MC_LASX() [1/9]

PUT_VC1_MSPEL_MC_LASX ( ,
 
)

◆ PUT_VC1_MSPEL_MC_LASX() [2/9]

PUT_VC1_MSPEL_MC_LASX ( ,
 
)

◆ PUT_VC1_MSPEL_MC_LASX() [3/9]

PUT_VC1_MSPEL_MC_LASX ( ,
 
)

◆ PUT_VC1_MSPEL_MC_LASX() [4/9]

PUT_VC1_MSPEL_MC_LASX ( ,
 
)

◆ PUT_VC1_MSPEL_MC_LASX() [5/9]

PUT_VC1_MSPEL_MC_LASX ( ,
 
)

◆ PUT_VC1_MSPEL_MC_LASX() [6/9]

PUT_VC1_MSPEL_MC_LASX ( ,
 
)

◆ PUT_VC1_MSPEL_MC_LASX() [7/9]

PUT_VC1_MSPEL_MC_LASX ( ,
 
)

◆ PUT_VC1_MSPEL_MC_LASX() [8/9]

PUT_VC1_MSPEL_MC_LASX ( ,
 
)

◆ PUT_VC1_MSPEL_MC_LASX() [9/9]

PUT_VC1_MSPEL_MC_LASX ( ,
 
)

◆ ff_put_no_rnd_vc1_chroma_mc8_lasx()

void ff_put_no_rnd_vc1_chroma_mc8_lasx ( uint8_t *  dst,
const uint8_t *  src,
ptrdiff_t  stride,
int  h,
int  x,
int  y 
)

Definition at line 700 of file vc1dsp_lasx.c.

Referenced by ff_vc1dsp_init_loongarch().

◆ put_vc1_mspel_mc_v_lasx()

static void put_vc1_mspel_mc_v_lasx ( uint8_t *  dst,
const uint8_t *  src,
ptrdiff_t  stride,
int  vmode,
int  rnd 
)
static

Definition at line 738 of file vc1dsp_lasx.c.

◆ PUT_VC1_MSPEL_MC_V_LASX() [1/3]

PUT_VC1_MSPEL_MC_V_LASX ( )

◆ PUT_VC1_MSPEL_MC_V_LASX() [2/3]

PUT_VC1_MSPEL_MC_V_LASX ( )

◆ PUT_VC1_MSPEL_MC_V_LASX() [3/3]

PUT_VC1_MSPEL_MC_V_LASX ( )

◆ put_vc1_mspel_mc_h_lasx()

static void put_vc1_mspel_mc_h_lasx ( uint8_t *  dst,
const uint8_t *  src,
ptrdiff_t  stride,
int  hmode,
int  rnd 
)
static

Definition at line 805 of file vc1dsp_lasx.c.

◆ PUT_VC1_MSPEL_MC_H_LASX() [1/3]

PUT_VC1_MSPEL_MC_H_LASX ( )

◆ PUT_VC1_MSPEL_MC_H_LASX() [2/3]

PUT_VC1_MSPEL_MC_H_LASX ( )

◆ PUT_VC1_MSPEL_MC_H_LASX() [3/3]

PUT_VC1_MSPEL_MC_H_LASX ( )
DUP2_ARG2
#define DUP2_ARG2(_INS, _IN0, _IN1, _IN2, _IN3, _OUT0, _OUT1)
Definition: loongson_intrinsics.h:58
rnd
#define rnd()
Definition: checkasm.h:166
stride
#define stride
Definition: h264pred_template.c:537
src
INIT_CLIP pixel * src
Definition: h264pred_template.c:418