Skip to content

[pull] master from fraunhoferhhi:master#168

Merged
pull[bot] merged 12 commits into
chenm001:masterfrom
fraunhoferhhi:master
Jun 30, 2026
Merged

[pull] master from fraunhoferhhi:master#168
pull[bot] merged 12 commits into
chenm001:masterfrom
fraunhoferhhi:master

Conversation

@pull

@pull pull Bot commented Jun 30, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

micro-arm and others added 12 commits June 23, 2026 18:22
Add Neon implementation of the combined Cb/Cr CC-ALF filter.

The Neon kernel processes four chroma samples from one row at a time for
subsampled chroma formats 4:2:0 and 4:2:2, reusing the same luma-cross
differences for the Cb and Cr filter accumulations. The implementation
keeps the scalar virtual boundary handling, performs the signed
seven-tap accumulation in 32-bit, and clips the filtered chroma results
back to the bit-depth range.

4:4:4 chroma is left on the scalar path because it needs a different
luma load layout from the `scaleX == 1` case handled here.

This implementation improves the performance by 57% compared with the
existing SIMDe implementation when benchmarked on a Neoverse V2 using
LLVM 22.
Add unit tests for `AdaptiveLoopFilter::filterBlkCcAlf` by comparing the
scalar and SIMD implementations across chroma types.

Move the `m_filterCcAlf` function pointer from protected to public so
the unit test can invoke the selected scalar or SIMD implementation
directly.
The vvdec_unit_test has grown with additional SIMD coverage, and the
hard-coded 120s CTest timeout can expire on slower CI runners while the
test is still in progress.
Apple Silicon does not support SVE or SVE2 so just test for Neon RDM via
`sysctlbyname`.

For Windows, use the `IsProcessorFeaturePresent` function to determine
whether features are available. There is no flag to detect the Neon RDM
feature, so check `PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE` instead. This
is fine since `FEAT_RDM` is a mandatory feature from Armv8.1-A and
`FEAT_DotProd` is only available from Armv8.1-A or later (originally it
was available from Armv8.2-A or later, hence the unfortunate "V82" in
the macro name). Transitively, if `FEAT_DotProd` is available then
`FEAT_RDM` must also be!
The existing Windows build with Clang and MSYS2 on AArch64 currently
fails to pick up the SVE/SVE2 flags since the environment does not
satisfy `UNIX OR MINGW`. Adjust this to just be `NOT MSVC`.

Delete the `CMAKE_SYSTEM_PROCESSOR` guard since this function is only
called when `VVDEC_TARGET_ARCH` already matches.
Add unit tests for Picture::paddPicBorder functions 'paddPicBorderTop',
'paddPicBorderBot' and 'paddPicBorderLeftRight'.

Add a new Picture constructor with an optional `enableOpt` argument and
move the padding function pointer assignment out of `finalInit` into
it. This lets unit tests to create reference and optimized Picture
objects for testing scalar vs SIMD implementations.
Arm: Add Neon implementation of ALF filterBlkCcAlfBoth
CTest: Remove 120s vvdec_unit_test timeout
…detection

Arm: Add feature detection on Windows and Apple Silicon
…2-fixes

Arm: Fix Windows SVE compilation with Clang and MSYS2
Add unit tests for paddPicBorder functions
Add unit tests for AdaptiveLoopFilter::filterBlkCcAlf
@pull pull Bot locked and limited conversation to collaborators Jun 30, 2026
@pull pull Bot added the ⤵️ pull label Jun 30, 2026
@pull pull Bot merged commit d78d359 into chenm001:master Jun 30, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants