Skip to content

avcodec/riscv/hevcdsp: add RVV implementation of deblocking - #3

Open
Deng-zewen wants to merge 4 commits into
zte-riscv:baseline-ffmpeg-optfrom
Deng-zewen:baseline-ffmpeg-opt
Open

avcodec/riscv/hevcdsp: add RVV implementation of deblocking#3
Deng-zewen wants to merge 4 commits into
zte-riscv:baseline-ffmpeg-optfrom
Deng-zewen:baseline-ffmpeg-opt

Conversation

@Deng-zewen

Copy link
Copy Markdown
Collaborator

avcodec/riscv/hevcdsp: add RVV implementation of deblocking

Implement HEVC deblocking filter using RISC-V Vector extension. The RVV implementation of hevc_v_loop_filter_chroma_8 shows no performance gain over the scalar C version, so disable it for now.

All checkasm tests passed. Benchmarks were performed on Sophon SG2044 with native
FFmpeg timers:
hevc_h_loop_filter_chroma8_c: 47.2 ( 1.00x)
hevc_h_loop_filter_chroma8_rvv_i32: 24.2 ( 1.95x)
hevc_h_loop_filter_luma8_skip_c: 37.7 ( 1.00x)
hevc_h_loop_filter_luma8_skip_rvv_i32: 26.9 ( 1.40x)
hevc_h_loop_filter_luma8_strong_c: 191.3 ( 1.00x)
hevc_h_loop_filter_luma8_strong_rvv_i32: 93.5 ( 2.05x)
hevc_h_loop_filter_luma8_weak_c: 37.7 ( 1.00x)
hevc_h_loop_filter_luma8_weak_rvv_i32: 26.9 ( 1.40x)
hevc_v_loop_filter_chroma8_c: 39.6 ( 1.00x)
hevc_v_loop_filter_chroma8_rvv_i32: 61.1 ( 0.65x)
hevc_v_loop_filter_luma8_skip_c: 29.1 ( 1.00x)
hevc_v_loop_filter_luma8_skip_rvv_i32: 38.8 ( 0.75x)
hevc_v_loop_filter_luma8_strong_c: 144.3 ( 1.00x)
hevc_v_loop_filter_luma8_strong_rvv_i32: 124.6 ( 1.16x)
hevc_v_loop_filter_luma8_weak_c: 57.7 ( 1.00x)
hevc_v_loop_filter_luma8_weak_rvv_i32: 38.8 ( 1.49x)

Signed-off-by: Deng Zewen [deng.zewen@zte.com.cn]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant