swscale/la: Optimize hscale functions with lasx.

ffmpeg -i 1_h264_1080p_30fps_3Mbps.mp4 -f rawvideo -s 640x480 -y /dev/null -an
before: 101fps
after:  138fps

Signed-off-by: Hao Chen <chenhao@loongson.cn>
Reviewed-by: yinshiyou-hf@loongson.cn
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Hao Chen
2022-09-09 17:00:24 +08:00
committed by Michael Niedermayer
parent 09cce81245
commit 38cacce22a
8 changed files with 1293 additions and 1 deletions

View File

@@ -698,6 +698,7 @@ av_cold void ff_sws_init_range_convert(SwsContext *c);
SwsFunc ff_yuv2rgb_init_x86(SwsContext *c);
SwsFunc ff_yuv2rgb_init_ppc(SwsContext *c);
SwsFunc ff_yuv2rgb_init_loongarch(SwsContext *c);
static av_always_inline int is16BPS(enum AVPixelFormat pix_fmt)
{
@@ -983,6 +984,7 @@ void ff_sws_init_swscale_vsx(SwsContext *c);
void ff_sws_init_swscale_x86(SwsContext *c);
void ff_sws_init_swscale_aarch64(SwsContext *c);
void ff_sws_init_swscale_arm(SwsContext *c);
void ff_sws_init_swscale_loongarch(SwsContext *c);
void ff_hyscale_fast_c(SwsContext *c, int16_t *dst, int dstWidth,
const uint8_t *src, int srcW, int xInc);