Commit 3ce6430e authored by Rishikesh More's avatar Rishikesh More Committed by Henrik Gramner

mips: MSA deblock optimizations

Signed-off-by: 's avatarRishikesh More <rishikesh.more@imgtec.com>
parent 57618eea
......@@ -146,7 +146,8 @@ endif
# MSA optims
ifeq ($(SYS_ARCH),MIPS)
ifneq ($(findstring HAVE_MSA 1, $(CONFIG)),)
SRCS += common/mips/mc-c.c common/mips/dct-c.c
SRCS += common/mips/mc-c.c common/mips/dct-c.c \
common/mips/deblock-c.c
endif
endif
......
......@@ -751,6 +751,22 @@ void x264_deblock_v_luma_intra_neon( uint8_t *pix, intptr_t stride, int alpha, i
#endif
#endif
#if !HIGH_BIT_DEPTH
#if HAVE_MSA
void x264_deblock_v_luma_msa( uint8_t *pix, intptr_t stride, int alpha, int beta, int8_t *tc0 );
void x264_deblock_h_luma_msa( uint8_t *pix, intptr_t stride, int alpha, int beta, int8_t *tc0 );
void x264_deblock_v_chroma_msa( uint8_t *pix, intptr_t stride, int alpha, int beta, int8_t *tc0 );
void x264_deblock_h_chroma_msa( uint8_t *pix, intptr_t stride, int alpha, int beta, int8_t *tc0 );
void x264_deblock_v_luma_intra_msa( uint8_t *pix, intptr_t stride, int alpha, int beta );
void x264_deblock_h_luma_intra_msa( uint8_t *pix, intptr_t stride, int alpha, int beta );
void x264_deblock_v_chroma_intra_msa( uint8_t *pix, intptr_t stride, int alpha, int beta );
void x264_deblock_h_chroma_intra_msa( uint8_t *pix, intptr_t stride, int alpha, int beta );
void x264_deblock_strength_msa( uint8_t nnz[X264_SCAN8_SIZE], int8_t ref[2][X264_SCAN8_LUMA_SIZE],
int16_t mv[2][X264_SCAN8_LUMA_SIZE][2], uint8_t bs[2][8][4], int mvy_limit,
int bframe );
#endif
#endif
void x264_deblock_init( int cpu, x264_deblock_function_t *pf, int b_mbaff )
{
pf->deblock_luma[1] = deblock_v_luma_c;
......@@ -870,6 +886,21 @@ void x264_deblock_init( int cpu, x264_deblock_function_t *pf, int b_mbaff )
pf->deblock_strength = x264_deblock_strength_neon;
}
#endif
#if HAVE_MSA
if( cpu&X264_CPU_MSA )
{
pf->deblock_luma[1] = x264_deblock_v_luma_msa;
pf->deblock_luma[0] = x264_deblock_h_luma_msa;
pf->deblock_chroma[1] = x264_deblock_v_chroma_msa;
pf->deblock_h_chroma_420 = x264_deblock_h_chroma_msa;
pf->deblock_luma_intra[1] = x264_deblock_v_luma_intra_msa;
pf->deblock_luma_intra[0] = x264_deblock_h_luma_intra_msa;
pf->deblock_chroma_intra[1] = x264_deblock_v_chroma_intra_msa;
pf->deblock_h_chroma_420_intra = x264_deblock_h_chroma_intra_msa;
pf->deblock_strength = x264_deblock_strength_msa;
}
#endif
#endif // !HIGH_BIT_DEPTH
/* These functions are equivalent, so don't duplicate them. */
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment