[FFmpeg-devel] [PATCH v2 1/7] avcodec/la: add LSX optimization for h264 idct.

Shiyou Yin yinshiyou-hf at loongson.cn
Wed May 17 11:01:30 EEST 2023



> 2023年5月17日 15:03,Hao Chen <chenhao at loongson.cn> 写道:
> 
> From: Shiyou Yin <yinshiyou-hf at loongson.cn>
> 
> loongson_asm.S is LoongArch asm optimization helper.
> Add functions:
>  ff_h264_idct_add_8_lsx
>  ff_h264_idct8_add_8_lsx
>  ff_h264_idct_dc_add_8_lsx
>  ff_h264_idct8_dc_add_8_lsx
>  ff_h264_idct_add16_8_lsx
>  ff_h264_idct8_add4_8_lsx
>  ff_h264_idct_add8_8_lsx
>  ff_h264_idct_add8_422_8_lsx
>  ff_h264_idct_add16_intra_8_lsx
>  ff_h264_luma_dc_dequant_idct_8_lsx
> Replaced function(LSX is sufficient for these functions):
>  ff_h264_idct_add_lasx
>  ff_h264_idct4x4_addblk_dc_lasx
>  ff_h264_idct_add16_lasx
>  ff_h264_idct8_add4_lasx
>  ff_h264_idct_add8_lasx
>  ff_h264_idct_add8_422_lasx
>  ff_h264_idct_add16_intra_lasx
>  ff_h264_deq_idct_luma_dc_lasx
> Renamed functions:
>  ff_h264_idct8_addblk_lasx ==> ff_h264_idct8_add_8_lasx
>  ff_h264_idct8_dc_addblk_lasx ==> ff_h264_idct8_dc_add_8_lasx
> 
> ./configure --disable-lasx
> ffmpeg -i 1_h264_1080p_30fps_3Mbps.mp4 -f rawvideo -y /dev/null -an
> before: 155fps
> after:  161fps
> ---
> libavcodec/loongarch/Makefile                 |   3 +-
> libavcodec/loongarch/h264_deblock_lasx.c      |   2 +-
> libavcodec/loongarch/h264dsp_init_loongarch.c |  39 +-
> libavcodec/loongarch/h264dsp_lasx.c           |   2 +-
> .../{h264dsp_lasx.h => h264dsp_loongarch.h}   |  60 +-
> libavcodec/loongarch/h264idct.S               | 659 ++++++++++++
> libavcodec/loongarch/h264idct_lasx.c          | 498 ---------
> libavcodec/loongarch/h264idct_loongarch.c     | 185 ++++
> libavcodec/loongarch/loongson_asm.S           | 946 ++++++++++++++++++
> 9 files changed, 1851 insertions(+), 543 deletions(-)
> rename libavcodec/loongarch/{h264dsp_lasx.h => h264dsp_loongarch.h} (68%)
> create mode 100644 libavcodec/loongarch/h264idct.S
> delete mode 100644 libavcodec/loongarch/h264idct_lasx.c
> create mode 100644 libavcodec/loongarch/h264idct_loongarch.c
> create mode 100644 libavcodec/loongarch/loongson_asm.S
> 

LGTM


More information about the ffmpeg-devel mailing list