Skip to content

Rewrite tx NEON kernels with native intrinsics and remove sse2neon.h - #167

Merged
mpeg5 merged 1 commit into
masterfrom
tq_neon_native
Aug 7, 2026
Merged

Rewrite tx NEON kernels with native intrinsics and remove sse2neon.h#167
mpeg5 merged 1 commit into
masterfrom
tq_neon_native

Conversation

@kpchoi

@kpchoi kpchoi commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

xeve_tq_neon.c was the AVX2 kernel run through an in-file AVX emulation layer
on top of the bundled sse2neon.h. This rewrites the four transform kernels
(8/16/32/64) with native NEON intrinsics and removes sse2neon.h entirely —
it was only included by this one file (the other NEON kernels are already
native). Follow-up to the sse2neon concern raised in #161.

The second pass accumulates coefficient products in 64 bits, matching the C
version's dynamic range (the first pass is called with shift 0).

Verified with an aarch64 cross build under qemu: bit-exact bitstreams against
the x86 build across noise/flat/gradient inputs, both profiles, multiple QPs,
single- and multi-threaded, plus a function-level test against the C kernels
(sizes 8-64, lines 1-128, both steps, realistic value ranges). Real-hardware
performance numbers are welcome.

Signed-off-by: KP Choi <kp5.choi@samsung.com>

@mpeg5 mpeg5 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mpeg5
mpeg5 merged commit 323ab5f into master Aug 7, 2026
6 checks passed
@kpchoi
kpchoi deleted the tq_neon_native branch August 8, 2026 05:12
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.

2 participants