ffmpeg/libavcodec/hevc
Jun Zhao 60b372c934 lavc/hevc: add aarch64 NEON for DC prediction
Add NEON-optimized implementation for HEVC intra DC prediction at 8-bit
depth, supporting all block sizes (4x4 to 32x32).

DC prediction computes the average of top and left reference samples
using uaddlv, with urshr for rounded division. For luma blocks smaller
than 32x32, edge smoothing is applied: the first row and column are
blended toward the reference using (ref[i] + 3*dc + 2) >> 2 computed
entirely in the NEON domain. Fill stores use pre-computed address
patterns to break dependency chains.

Also adds the aarch64 initialization framework (Makefile, pred.c/pred.h
hooks, hevcpred_init_aarch64.c).

Speedup over C on Apple M4 (checkasm --bench):

    4x4: 2.28x    8x8: 3.14x    16x16: 3.29x    32x32: 3.02x

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2026-03-30 14:32:10 +00:00
..
cabac.c all: fix whitespace/new-line issues 2025-08-03 13:48:47 +02:00
data.c
data.h
dsp.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
dsp.h avcodec/hevc/dsp: Add alignment for dequant 2026-01-29 12:25:33 +01:00
dsp_template.c avcodec/hevc/dsp_template: Optimize impossible branches away 2026-01-29 12:25:33 +01:00
filter.c lavc/hevcdec: make a HEVCFrame hold a reference to its PPS 2024-09-06 13:59:29 +02:00
hevc.h avcodec/hevc/ps: Add basic HEVC_SCALABILITY_AUXILIARY support 2025-02-17 15:08:42 +08:00
hevcdec.c avcodec/hevc/hevcdec: take into account YUV400 in block length 2026-02-14 16:23:16 +00:00
hevcdec.h avcodec/h274: Make H274FilmGrainDatabase a shared object 2025-09-22 04:54:22 +02:00
Makefile avcodec/hevc/Makefile: Move rules for lavc/* files to lavc/Makefile 2024-06-09 10:59:33 +02:00
mvs.c lavc/hevcdec: make a HEVCFrame hold a reference to its PPS 2024-09-06 13:59:29 +02:00
parse.c lavc/hevcdec/parse: process NALUs with nuh_layer_id>0 2024-09-23 17:11:40 +02:00
parse.h
parser.c avcodec/parser_internal: Remove prefix from parser_{init,parse,close} 2025-11-01 16:57:03 +01:00
pred.c lavc/hevc: add aarch64 NEON for DC prediction 2026-03-30 14:32:10 +00:00
pred.h lavc/hevc: add aarch64 NEON for DC prediction 2026-03-30 14:32:10 +00:00
pred_template.c avcodec: use the renamed av_zero_extend 2024-06-13 20:36:09 -03:00
ps.c avcodec/hevc/ps: Check bit_depth_cm in/out relation 2026-02-18 13:57:28 +00:00
ps.h avcodec/hevc: add ff_hevc_compute_poc2 which don't depend on HEVCSPS directly 2025-11-05 15:13:54 +00:00
ps_enc.c
refs.c avcodec/hevc: remove an always true condition 2025-11-10 12:22:05 +08:00
sei.c avcodec/hevc/sei: Use get_bits64() in decode_nal_sei_3d_reference_displays_info() 2026-02-05 20:20:08 +00:00
sei.h avcodec/hevc/sei: Use get_bits64() in decode_nal_sei_3d_reference_displays_info() 2026-02-05 20:20:08 +00:00