Hi,
This series adds AArch64 NEON paths for the 10/12-bit SAO band filter
(shared h26x kernel, hooked into both VVC and HEVC) and reworks the
ALF classification to resolve both 4×4 block indices entirely in
NEON registers.
Patches are based on current master (8828574c).
1/3 aarch64/h26x: add NEON optimizations for 10/12-bit SAO band filter
Adds ff_h26x_sao_band_filter_{8x8,16x16}_{10,12}_neon alongside
the existing 8-bit routines. Offsets fit in signed bytes at both
depths so the table lookup uses a 32-byte band-offset vector built
on the stack. VVC registration wired in dsp_init.c.
checkasm: 54/54 vvc_sao, 20/20 hevc_sao
2/3 aarch64/hevc: add NEON optimizations for 10/12-bit SAO band filter
Wires the shared h26x band kernels into hevcdsp_init_aarch64.c for
HEVC 10/12-bit. This patch depends on 1/3 for the assembly and
declarations.
checkasm: 30/30 hevc_sao (includes new 10/12-bit band tests)
3/3 aarch64/vvc: resolve ALF classification indices with NEON
Combines gradient summation and index resolution into a single
helper (ff_alf_classify_sum_idx_neon), keeping summed vectors in
registers instead of round-tripping through stack arrays and a
second call back to C. Removes the superseded inline C resolver
from the AArch64 template.
Ampere-1a (GCC 13.3.0), 128×128 classification:
parent NEON
8-bit 15017.9 ns 14155.5 ns (−5.7%)
10-bit 14178.8 ns 13301.5 ns (−6.2%)
12-bit 14203.6 ns 13277.9 ns (−6.5%)
checkasm: 4032/4032 vvc_alf
I am also looking at the remaining VVC AArch64 gaps — specifically
itx.add_residual and the DCT-II/DST-VII/DCT-8 inverse transforms,
followed by intra prediction (pred_dc, pred_planar, pred_angular).
The x86 side has these covered; AArch64 has nothing yet. Will send
RFC patches for add_residual soon once I have something worth
reviewing.
Forgejo PRs for reference:
https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/25253
https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24959
https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24925
Thanks,
Aaditya
_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]