If the image width is a multiple of 64, KNLMeansCL outputs garbage. Tested with the release at https://github.com/pinterf/KNLMeansCL/releases/tag/v1.1.1e using 64-bit version, on an AMD Ryzen 7 Pro 4750U with integrated Radeon graphics.
Preview it in AvsPmod, or render it with ffmpeg -i knlbug.avs -c:v huffyuv knlbug.avi.
And here is an example output image:
Notice that the bottom row (filter output) is missing outputs whenever width is a multiple of 64.
In real-world videos, I've seen where the filter output gets stuck at a specific frame, and doesn't change when I move the AvsPmod slider bar. Other times, it will show total garbage, as if it was displaying uninitialized memory.
For reference, here's what ColorBars(width=720, height=480).ConvertToY8().KNLMeansCL(info=true) shows:
If the image width is a multiple of 64, KNLMeansCL outputs garbage. Tested with the release at https://github.com/pinterf/KNLMeansCL/releases/tag/v1.1.1e using 64-bit version, on an AMD Ryzen 7 Pro 4750U with integrated Radeon graphics.
This is a simple test case:
Preview it in AvsPmod, or render it with
ffmpeg -i knlbug.avs -c:v huffyuv knlbug.avi
.And here is an example output image:
Notice that the bottom row (filter output) is missing outputs whenever width is a multiple of 64.
In real-world videos, I've seen where the filter output gets stuck at a specific frame, and doesn't change when I move the AvsPmod slider bar. Other times, it will show total garbage, as if it was displaying uninitialized memory.
For reference, here's what
ColorBars(width=720, height=480).ConvertToY8().KNLMeansCL(info=true)
shows: