Optimized OpenCL implementation of the Non-local means de-noising algorithm
Project description
KNLMeansCL
KNLMeansCL is an optimized OpenCL implementation of the Non-local means de-noising algorithm.
The NLMeans filter, originally proposed by Buades et al., is a very popular filter for the removal of white Gaussian noise, due to its simplicity and excellent performance. The strength of this algorithm is to exploit the repetitive character of the image in order to de-noise the image unlike conventional de-noising algorithms, which typically operate in a local neighbourhood.
Installation
Pre-compiled wheels are available on PyPI for:
- Windows: x86_64
- Linux: x86_64 and aarch64
- macOS: x86_64 and arm64 (15.0+)
pip install vapoursynth-knlmeanscl
Documentation
Detailed documentation and usage examples are available on the upstream Wiki.
Compilation
To compile KNLMeansCL, you will need:
- uv
- C++14 Compiler
- OpenCL SDK
- Boost
Windows
The easiest way to compile on Windows is using vcpkg for dependencies:
- Install dependencies:
vcpkg install --triplet x64-windows-static boost-filesystem boost-system opencl pkgconf
- Build:
# Replace path/to/vcpkg_installed with your actual installation path $vcpkgRoot = "path/to/vcpkg_installed/x64-windows-static" $env:LIB = "$vcpkgRoot/lib;$env:LIB" $env:INCLUDE = "$vcpkgRoot/include;$env:INCLUDE" $env:PKG_CONFIG_PATH = "$vcpkgRoot/lib/pkgconfig" $env:BOOST_ROOT = "$vcpkgRoot" $env:MESON_ARGS = "-Db_vscrt=mt -Denable_avs=false -Dstatic=true" uv build --wheel
Linux
Install development packages via your package manager:
- Ubuntu/Debian:
apt install ocl-icd-opencl-dev libboost-system-dev libboost-filesystem-dev pkg-config - Fedora/RHEL:
dnf install ocl-icd-devel boost-devel pkgconf-pkg-config
Then build:
export MESON_ARGS="-Denable_avs=false -Dstatic=true"
uv build --wheel
macOS
Using vcpkg:
- Install dependencies:
vcpkg install --triplet arm64-osx boost-filesystem boost-system opencl pkgconf
- Build:
export MESON_ARGS="-Denable_avs=false -Dstatic=true" export PKG_CONFIG_PATH="path/to/vcpkg_installed/arm64-osx/lib/pkgconfig" export BOOST_ROOT="path/to/vcpkg_installed/arm64-osx" uv build --wheel
The resulting wheel will be located in the dist/ directory.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vapoursynth_knlmeanscl-1.2.tar.gz.
File metadata
- Download URL: vapoursynth_knlmeanscl-1.2.tar.gz
- Upload date:
- Size: 76.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bdb596057949ef97eef0a51befb50285595856dd423cc1c2dec95b8fd5c6e6d
|
|
| MD5 |
314414ae530080289f9c15d77532ae34
|
|
| BLAKE2b-256 |
3336ffd407773473a90cf614767bea54eefc1ded29fee6711f42e025ef2d850a
|
Provenance
The following attestation bundles were made for vapoursynth_knlmeanscl-1.2.tar.gz:
Publisher:
ci.yml on Jaded-Encoding-Thaumaturgy/vapoursynth-knlmeanscl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vapoursynth_knlmeanscl-1.2.tar.gz -
Subject digest:
9bdb596057949ef97eef0a51befb50285595856dd423cc1c2dec95b8fd5c6e6d - Sigstore transparency entry: 1280954227
- Sigstore integration time:
-
Permalink:
Jaded-Encoding-Thaumaturgy/vapoursynth-knlmeanscl@d4f3c9f634a089b9c56d6c90b1eccdd89a0a61a0 -
Branch / Tag:
refs/tags/v1.2 - Owner: https://github.com/Jaded-Encoding-Thaumaturgy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@d4f3c9f634a089b9c56d6c90b1eccdd89a0a61a0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vapoursynth_knlmeanscl-1.2-py3-none-win_amd64.whl.
File metadata
- Download URL: vapoursynth_knlmeanscl-1.2-py3-none-win_amd64.whl
- Upload date:
- Size: 187.3 kB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab5f29d0d9e635f9d5a4c96c50c69773c7dd4c8a67c88e9844f98f2f431b6cad
|
|
| MD5 |
f83ea6a419411ad0f4e833ed1ef62da1
|
|
| BLAKE2b-256 |
9baa9117e912c2c44a08d581bf6ff7fa8637d10cb1d68c726f3f9dfb0fb6d344
|
Provenance
The following attestation bundles were made for vapoursynth_knlmeanscl-1.2-py3-none-win_amd64.whl:
Publisher:
ci.yml on Jaded-Encoding-Thaumaturgy/vapoursynth-knlmeanscl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vapoursynth_knlmeanscl-1.2-py3-none-win_amd64.whl -
Subject digest:
ab5f29d0d9e635f9d5a4c96c50c69773c7dd4c8a67c88e9844f98f2f431b6cad - Sigstore transparency entry: 1280954239
- Sigstore integration time:
-
Permalink:
Jaded-Encoding-Thaumaturgy/vapoursynth-knlmeanscl@d4f3c9f634a089b9c56d6c90b1eccdd89a0a61a0 -
Branch / Tag:
refs/tags/v1.2 - Owner: https://github.com/Jaded-Encoding-Thaumaturgy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@d4f3c9f634a089b9c56d6c90b1eccdd89a0a61a0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vapoursynth_knlmeanscl-1.2-py3-none-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: vapoursynth_knlmeanscl-1.2-py3-none-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 637.7 kB
- Tags: Python 3, manylinux: glibc 2.26+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d116e7857504d9346405323aa20c64a67ca257a0db923d7ff65c89f16fe8af3b
|
|
| MD5 |
ba309296fc17d79af05170d9658f6dbb
|
|
| BLAKE2b-256 |
b9529086e73a06649179a2884c0a2cf32baebb0fd9d5a4ab1689ac903d079c86
|
Provenance
The following attestation bundles were made for vapoursynth_knlmeanscl-1.2-py3-none-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
ci.yml on Jaded-Encoding-Thaumaturgy/vapoursynth-knlmeanscl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vapoursynth_knlmeanscl-1.2-py3-none-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
d116e7857504d9346405323aa20c64a67ca257a0db923d7ff65c89f16fe8af3b - Sigstore transparency entry: 1280954235
- Sigstore integration time:
-
Permalink:
Jaded-Encoding-Thaumaturgy/vapoursynth-knlmeanscl@d4f3c9f634a089b9c56d6c90b1eccdd89a0a61a0 -
Branch / Tag:
refs/tags/v1.2 - Owner: https://github.com/Jaded-Encoding-Thaumaturgy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@d4f3c9f634a089b9c56d6c90b1eccdd89a0a61a0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vapoursynth_knlmeanscl-1.2-py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: vapoursynth_knlmeanscl-1.2-py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 619.1 kB
- Tags: Python 3, manylinux: glibc 2.26+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87e0e9ea4216ccdc35a23edec9c6dd3d52451c41ce7950d3ee196da470a8675c
|
|
| MD5 |
ffd283f046b330d77f7c05d47e34f959
|
|
| BLAKE2b-256 |
b705413001a234a5b7d71693eaab086e5bbe693e78741a49ca41131e3a494982
|
Provenance
The following attestation bundles were made for vapoursynth_knlmeanscl-1.2-py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
ci.yml on Jaded-Encoding-Thaumaturgy/vapoursynth-knlmeanscl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vapoursynth_knlmeanscl-1.2-py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
87e0e9ea4216ccdc35a23edec9c6dd3d52451c41ce7950d3ee196da470a8675c - Sigstore transparency entry: 1280954237
- Sigstore integration time:
-
Permalink:
Jaded-Encoding-Thaumaturgy/vapoursynth-knlmeanscl@d4f3c9f634a089b9c56d6c90b1eccdd89a0a61a0 -
Branch / Tag:
refs/tags/v1.2 - Owner: https://github.com/Jaded-Encoding-Thaumaturgy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@d4f3c9f634a089b9c56d6c90b1eccdd89a0a61a0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vapoursynth_knlmeanscl-1.2-py3-none-macosx_15_0_x86_64.whl.
File metadata
- Download URL: vapoursynth_knlmeanscl-1.2-py3-none-macosx_15_0_x86_64.whl
- Upload date:
- Size: 39.7 kB
- Tags: Python 3, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a1bfef57ec3f903bb65b8cdeaa318815f2aebf8422437b3533372be3592790b
|
|
| MD5 |
94a1ad775e3686db962d2af168c93ac8
|
|
| BLAKE2b-256 |
ade889f001b86cdf4ff667c537381b8f26d83ce55411e3f01b658ab1bf570423
|
Provenance
The following attestation bundles were made for vapoursynth_knlmeanscl-1.2-py3-none-macosx_15_0_x86_64.whl:
Publisher:
ci.yml on Jaded-Encoding-Thaumaturgy/vapoursynth-knlmeanscl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vapoursynth_knlmeanscl-1.2-py3-none-macosx_15_0_x86_64.whl -
Subject digest:
1a1bfef57ec3f903bb65b8cdeaa318815f2aebf8422437b3533372be3592790b - Sigstore transparency entry: 1280954230
- Sigstore integration time:
-
Permalink:
Jaded-Encoding-Thaumaturgy/vapoursynth-knlmeanscl@d4f3c9f634a089b9c56d6c90b1eccdd89a0a61a0 -
Branch / Tag:
refs/tags/v1.2 - Owner: https://github.com/Jaded-Encoding-Thaumaturgy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@d4f3c9f634a089b9c56d6c90b1eccdd89a0a61a0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vapoursynth_knlmeanscl-1.2-py3-none-macosx_15_0_arm64.whl.
File metadata
- Download URL: vapoursynth_knlmeanscl-1.2-py3-none-macosx_15_0_arm64.whl
- Upload date:
- Size: 39.5 kB
- Tags: Python 3, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc0302c5f82c80d2e0893e749198f230e5061bc5f29f9e4c45d4ceb1f39364c8
|
|
| MD5 |
9b530181a716a1c74c6352de02e51fde
|
|
| BLAKE2b-256 |
945b619e951ef85c7536a1b3cbd8a763b2f8cd48b1285cb9861ff13b2ee64568
|
Provenance
The following attestation bundles were made for vapoursynth_knlmeanscl-1.2-py3-none-macosx_15_0_arm64.whl:
Publisher:
ci.yml on Jaded-Encoding-Thaumaturgy/vapoursynth-knlmeanscl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vapoursynth_knlmeanscl-1.2-py3-none-macosx_15_0_arm64.whl -
Subject digest:
dc0302c5f82c80d2e0893e749198f230e5061bc5f29f9e4c45d4ceb1f39364c8 - Sigstore transparency entry: 1280954234
- Sigstore integration time:
-
Permalink:
Jaded-Encoding-Thaumaturgy/vapoursynth-knlmeanscl@d4f3c9f634a089b9c56d6c90b1eccdd89a0a61a0 -
Branch / Tag:
refs/tags/v1.2 - Owner: https://github.com/Jaded-Encoding-Thaumaturgy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@d4f3c9f634a089b9c56d6c90b1eccdd89a0a61a0 -
Trigger Event:
push
-
Statement type: