TL;DR

FFmpeg vừa merge một patchset lớn từ Tencent Global: hand-written ARM NEON (aarch64) assembly cho angular intra prediction của codec H.266 / VVC. Tốc độ kernel này hiện nhanh hơn 20 lần so với code C tham chiếu. Kết hợp với loạt module NEON trước đó (đạt mốc 12× hồi tháng 12/2025), giải mã VVC trên ARM giờ đã thực sự khả thi cho mobile và edge ở chất lượng 4K.

What's new

Trong tweet ngày 25/04/2026, account chính thức của FFmpeg công bố: "Huge patchset from Tencent Global adding hand written ARM NEON assembly for VVC angular prediction. Over 20 times faster than C." Patchset này đáp xuống thư mục libavcodec/aarch64/vvc/ và tập trung vào một trong những hot path tốn CPU nhất của VVC decoder.

Đây là tiếp nối trực tiếp của đợt NEON drop tháng 12/2025 — khi FFmpeg công bố speedup tới 12× trên các module VVC khác (DMVR, BDOF, ALF). Lần này Tencent cắm sâu vào riêng angular intra prediction và đẩy con số lên một bậc.

Why it matters

VVC (H.266) là thế hệ kế tiếp HEVC, tiết kiệm khoảng 50% bitrate ở cùng chất lượng. Nhưng cái giá là decoder phức tạp gấp nhiều lần — và phần lớn nội dung video thế giới được giải mã trên ARM (iPhone, Android, Apple Silicon, Snapdragon X, AWS Graviton, Ampere). Nếu decoder ARM không đủ nhanh, VVC chỉ là lý thuyết đẹp.

Hand-written NEON assembly thắng đậm cả intrinsics lẫn auto-vectorization vì developer tự lập lịch lệnh, sắp xếp register và che latency cho các nhân in-order phổ thông như Cortex-A55, A510, A520 — đúng những nhân chạy phần lớn video stream toàn cầu.

Technical facts

AspectDetail
Target codecH.266 / VVC
Target archaarch64 NEON (ARMv8 SIMD)
Speedup> 20× vs C reference (angular intra)
Trước đótới 12× cho các module VVC khác (12/2025)
Số mode angular65 directional + wide-angle (HEVC chỉ có 33)
Code pathlibavcodec/aarch64/vvc/intra*.S
LicenseLGPL/GPL (FFmpeg mainline)

VVC mở rộng số mode angular intra prediction lên 65, gấp đôi HEVC, cộng thêm wide-angle modes cho block không vuông. Nhiều mode = nhiều nhánh số học per-block = chỗ vàng cho SIMD viết tay.

Comparison

  • vs C reference: hơn 20× trên kernel angular intra.
  • vs đợt NEON 12/2025: nhảy từ headline "up to 12×" lên ">20×" cho riêng kernel này.
  • vs SIMDe (auto-port SSE→NEON, Fraunhofer HHI 2023): SIMDe đã cho >2× so với C; assembly tay vượt thêm cả một order of magnitude.
  • vs HEVC NEON: HEVC có hệ SIMD đã chín; VVC khoảng cách lớn hơn nhiều, nên mỗi patch có dư địa speedup cao.
  • Cross-arch: năm ngoái FFmpeg gây tiếng vang với AVX-512 đạt tới 94× ở vài kernel. Patchset NEON này khép lại khoảng cách phía ARM để mobile/edge không bị bỏ lại.

Use cases

  • Mobile playback (iOS/Android): 4K@60 VVC realtime trên nhiều phone hơn, ít xả pin, ít throttle nhiệt.
  • Streaming services: Bitmovin, MainConcept, Tencent Video... phục vụ thêm concurrent stream trên cùng CPU, giảm hoá đơn bandwidth.
  • Apple Silicon / Mac transcoding: editor và DIT chạy FFmpeg trên M-series được boost decode miễn phí.
  • ARM cloud / edge (Graviton, Ampere): pipeline ingest VVC rẻ hơn cho OTT.
  • Embedded set-top / smart TV dùng ARM SoC không có VVC hardware block.
  • Archival re-encoding: chuyển HEVC → VVC khả thi khi decoder không còn là bottleneck.

Limitations & pricing

  • Free & open source — code merge thẳng vào FFmpeg mainline.
  • aarch64 only — không có benefit cho x86 hay RISC-V; mỗi arch có path SIMD riêng (AVX2/AVX-512/RVV).
  • Decoder only — encoding VVC vẫn dựa vào hệ vvenc/vvenca riêng.
  • End-to-end gain phụ thuộc bitstream: angular intra chỉ là một hot path, ALF/MC/DBF có giới hạn riêng.
  • VVC patent: MPEG-LA, Access Advance và VVC Patent Pool — code thì free, nhưng license content thương mại là chuyện khác.
  • Cần build FFmpeg từ master hiện tại (hoặc chờ FFmpeg 8.1) để xài.

What's next

Việc tối ưu VVC decoder trên ARM sẽ tiếp tục theo từng kernel: ALF, motion compensation, deblocking. Nhánh xa hơn là Arm SVE/SVE2 cho các nhân Neoverse và Cortex-X mới — vector dài và scalable, hứa hẹn boost lần nữa cho server-class ARM. Phía encoder, khi VVC bắt đầu được production-deploy nhiều hơn (đặc biệt streaming châu Á), kỳ vọng sẽ có wave SIMD work tương tự cho vvenc.

Nguồn: @FFmpeg, FFmpeg NEON 12× drop (12/2025), Phoronix — FFmpeg 7.0, Tencent VVC mobile decoder paper.