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

Go to the source code of this file.

Macros

#define PRED16X16_PLANE
 
#define PRED16X16_PLANE_END
 

Functions

void ff_h264_pred16x16_plane_h264_8_lasx (uint8_t *src, ptrdiff_t stride)
 
void ff_h264_pred16x16_plane_rv40_8_lasx (uint8_t *src, ptrdiff_t stride)
 
void ff_h264_pred16x16_plane_svq3_8_lasx (uint8_t *src, ptrdiff_t stride)
 

Macro Definition Documentation

◆ PRED16X16_PLANE

#define PRED16X16_PLANE

Definition at line 25 of file h264_intrapred_lasx.c.

◆ PRED16X16_PLANE_END

#define PRED16X16_PLANE_END
Value:
res2 = (src0[stride_15] + src[15 - stride] + 1) << 4; \
res3 = 7 * (res0 + res1); \
res2 -= res3; \
reg0 = __lasx_xvreplgr2vr_w(res0); \
reg1 = __lasx_xvreplgr2vr_w(res1); \
reg2 = __lasx_xvreplgr2vr_w(res2); \
reg3 = __lasx_xvmul_w(reg0, int_mult1); \
reg4 = __lasx_xvslli_w(reg0, 3); \
reg4 = __lasx_xvadd_w(reg4, reg3); \
for (cnt = 8; cnt--;) { \
tmp0 = __lasx_xvadd_w(reg2, reg3); \
tmp1 = __lasx_xvadd_w(reg2, reg4); \
tmp0 = __lasx_xvssrani_hu_w(tmp1, tmp0, 5); \
tmp0 = __lasx_xvpermi_d(tmp0, 0xD8); \
reg2 = __lasx_xvadd_w(reg2, reg1); \
tmp2 = __lasx_xvadd_w(reg2, reg3); \
tmp3 = __lasx_xvadd_w(reg2, reg4); \
tmp1 = __lasx_xvssrani_hu_w(tmp3, tmp2, 5); \
tmp1 = __lasx_xvpermi_d(tmp1, 0xD8); \
tmp0 = __lasx_xvssrani_bu_h(tmp1, tmp0, 0); \
reg2 = __lasx_xvadd_w(reg2, reg1); \
__lasx_xvstelm_d(tmp0, src, 0, 0); \
__lasx_xvstelm_d(tmp0, src, 8, 2); \
src += stride; \
__lasx_xvstelm_d(tmp0, src, 0, 1); \
__lasx_xvstelm_d(tmp0, src, 8, 3); \
src += stride; \
}

Definition at line 67 of file h264_intrapred_lasx.c.

Function Documentation

◆ ff_h264_pred16x16_plane_h264_8_lasx()

void ff_h264_pred16x16_plane_h264_8_lasx ( uint8_t *  src,
ptrdiff_t  stride 
)

Definition at line 98 of file h264_intrapred_lasx.c.

Referenced by ff_h264_pred_init_loongarch().

◆ ff_h264_pred16x16_plane_rv40_8_lasx()

void ff_h264_pred16x16_plane_rv40_8_lasx ( uint8_t *  src,
ptrdiff_t  stride 
)

Definition at line 106 of file h264_intrapred_lasx.c.

Referenced by ff_h264_pred_init_loongarch().

◆ ff_h264_pred16x16_plane_svq3_8_lasx()

void ff_h264_pred16x16_plane_svq3_8_lasx ( uint8_t *  src,
ptrdiff_t  stride 
)

Definition at line 114 of file h264_intrapred_lasx.c.

Referenced by ff_h264_pred_init_loongarch().

stride
#define stride
Definition: h264pred_template.c:537
src0
const pixel *const src0
Definition: h264pred_template.c:420
src
INIT_CLIP pixel * src
Definition: h264pred_template.c:418