[PATCH v3 0/2] VVC: AVX2 planar intra prediction
Gudikandula Samith via ffmpeg-devel <[email protected]>
| Newsgroups | gmane.comp.video.ffmpeg.devel |
|---|---|
| Message-ID | <[email protected]> |
This series adds an AVX2 implementation of the VVC planar intra
prediction kernel, which currently has no SIMD implementation on any
architecture. Only 8-bit is implemented here; the 10 and 12-bit paths
still use the C reference and can be added in a follow-up.
Patch 1 adds a checkasm test so the second patch can be verified. The
test iterates 8, 10 and 12 bit, so it will also cover the higher depths
once SIMD for them is added.
Patch 2 adds the 8-bit kernel and wires up x86 dispatch.
Tested on AMD Ryzen 7 5825U:
- checkasm --test=vvc_intra passes (all 25 subtests): the 8-bit AVX2
kernel is bit-exact to the C reference
- fate-vvc passes, unchanged from before the series
- framemd5 output is identical with and without -cpuflags 0
Changes since v2:
- asm: align the rodata and instruction operand commas to a consistent
column and space the operators in the memory operands
([%1 + %3 * 2]). Whitespace only; the assembled .text and .rodata
are byte for byte identical to v2.
Changes since v1:
- checkasm: use separate top0/top1 and left0/left1 buffers so call_ref
cannot modify call_new's input
- checkasm: use MIN_TU_SIZE/MAX_TB_SIZE instead of magic 4/64
- checkasm: use checkasm_check_pixel instead of memcmp/fail
- asm: compute per-row A and B iteratively (faster; suggested by Frank)
- asm: index left[h] via r8 and drop r13, saving a mov
Thanks to Frank for the reviews.
Gudikandula Samith (2):
tests/checkasm: add vvc_intra test for pred_planar
lavc/vvc: add AVX2 planar intra prediction
libavcodec/x86/vvc/Makefile | 1 +
libavcodec/x86/vvc/dsp_init.c | 13 ++
libavcodec/x86/vvc/intra.asm | 232 ++++++++++++++++++++++++++++++++++
tests/checkasm/Makefile | 2 +-
tests/checkasm/checkasm.c | 7 +-
tests/checkasm/checkasm.h | 1 +
tests/checkasm/vvc_intra.c | 89 +++++++++++++
7 files changed, 341 insertions(+), 4 deletions(-)
create mode 100644 libavcodec/x86/vvc/intra.asm
create mode 100644 tests/checkasm/vvc_intra.c
--
2.53.0
_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]