Repository navigation
cuda: add an approximate float32 CIEDE2000 extractor - #1661
Open
BardieJoensen wants to merge 6 commits into
Open
BardieJoensen wants to merge 6 commits into
BardieJoensen wants to merge 6 commits into
Conversation
Skip CUDA extractors in the temporal flush loop to avoid duplicate final scores. Add a regression across thread counts and short clips.
Retain common cleanup after CPU dispatch and finish all-plane downloads before CPU reads. Test pool reuse, GPU completion and CPU PSNR/SSIM output.
Add ssim_cuda with scaling, L/C/S and dB options. Reuse the CUDA PSNR resource helpers and test numerical parity, callback errors and initialization cleanup.
Use horizontal subsampling for columns and vertical subsampling for rows. Check explicit expected pixels at 8, 10, 12 and 16 bits.
Use float color conversion and CIEDE arithmetic with double partial sums. Test formats, partial blocks, callback errors and initialization cleanup.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
ciede_cuda, a GPU CIEDE2000 feature extractor for 8/10/12/16-bit inputwith the same chroma handling as the CPU
ciedeextractor after #1611.Colour conversion and the CIEDE2000 arithmetic run in float32 per pixel; the
per-frame mean is accumulated in double partial sums. Against the CPU
ciede(double throughout) the per-frame score differs by at most 1e-6 on the clips
tested, which the CLI's 6-digit output shows as identical on most frames
(35 of 48 on src01). It is therefore documented as approximate, with the
accuracy scope stated in the extractor's description, rather than as bit-exact
like
psnr_cudaandssim_cuda.Tests cover all four input formats, partial blocks at odd sizes, callback
errors and initialization cleanup, plus a CPU parity test
(
test_cuda_ciede_parity) with an explicit tolerance.Depends on, and is stacked on:
cuda: add PSNR, MSE and APSNR extraction(resource helpers and chroma upload)cuda: add SSIM extraction with CPU-compatible optionsciede: fix YUV422 chroma upsampling(the CPU reference for 4:2:2)Split from #1563.