Skip to content

Add NEON for highbd convolve_2d_sr, convolve_x_sr, convolve_y_sr - #5312

Open
jjustiss-apple wants to merge 1 commit into
AOMediaCodec:mainfrom
jjustiss-apple:jjustiss/neon-highbd-convolve-sr
Open

Add NEON for highbd convolve_2d_sr, convolve_x_sr, convolve_y_sr#5312
jjustiss-apple wants to merge 1 commit into
AOMediaCodec:mainfrom
jjustiss-apple:jjustiss/neon-highbd-convolve-sr

Conversation

@jjustiss-apple

Copy link
Copy Markdown
Contributor

Add NEON intrinsics for av2_highbd_convolve_2d_sr, convolve_x_sr, and
convolve_y_sr. The 2D kernel uses lane-indexed multiply-accumulate with a
register-tiled sliding-window vertical pass. The x_sr and y_sr kernels use
lane-indexed widening MAC to compute 8 output pixels simultaneously.

Micro-benchmark results (Apple Silicon M2, 10-bit, bench_kernels):

Kernel 8x8 16x16 32x32 64x64
convolve_x_sr 6.61x 8.32x 9.80x 9.47x
convolve_y_sr 11.72x 15.54x 16.18x 15.90x
convolve_2d_sr 10.30x 11.94x 12.15x 12.37x

CTC results (RA, cpu-used=1, 33 frames, A5, ARM Apple Silicon):

Metric Delta
Encode time -7.1%
Decode time -11.3%
BD-rate Y 0.000%
BD-rate Cb 0.000%
BD-rate Cr 0.000%

Unit tests included (BD 8/10/12 coverage for all three functions).

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants