VapourSynth-BilateralGPU
Copyright© 2021 WolframRhodium
Bilateral filter in CUDA for VapourSynth.
Description
Bilateral filter is a non-linear, edge-preserving and noise-reducing smoothing filter for images.
The intensity value at each pixel in an image is replaced by a weighted average of intensity values from nearby pixels. This weight can be based on a Gaussian distribution.
Special thanks to Kice for doing most of the work in previous implementation.
Requirements
-
CPU with AVX2 support.
-
CUDA-enabled GPU(s) of compute capability 5.0 or higher (Maxwell+).
-
GPU driver >= v452.39 for GeForce or
bilateral_rtcusers or >= v496.13 in general.
The plugin can run on older generation of GPUs or CPU without AVX2 support by manual compilation.
The _rtc version requires compute capability 3.5 or higher, GPU driver 465 or newer and has dependencies on nvrtc64_112_0.dll/libnvrtc.so.11.2 and nvrtc-builtins64_114.dll/libnvrtc-builtins.so.11.4.50.
Supported Formats
sample type: 8-16 bit integer or 32 bit float Gray/YUV/RGB input
Usage
core.{bilateralgpu, bilateralgpu_rtc}.Bilateral(clip clip, float[] sigma_spatial=3.0, float[] sigma_color=0.02, int[] radius=0, int device_id=0, int num_streams=4, bool use_shared_memory=True)
-
clip: The input clip.
-
sigma_spatial: (Default: 3.0) Filter sigma in the coordinate space. Use an array to assign it for each plane. If "sigma_spatial" for the second plane is not specified, it will be set according to the sigma_spatial of first plane and sub-sampling.
-
sigma_color: (Default: 0.02) Filter sigma in the color space. Use an array to assign it for each plane, otherwise the same sigma_color is used for all the planes. It will be normalized internally, so that for clips with different bit depths, the same values get similar results.
-
radius: (Default: 0) Kernel window size. 0 = automatic calculatation based on "sigma_spatial".
-
device_id: (Default: 0) CUDA device ID.
-
num_streams: (Default: 4) Number of CUDA streams, enables concurrent kernel execution and data transfer.
-
use_shared_memory: (Default: True) Use on-chip memory to reduce bandwidth requirements on memory operations.
-
The
_rtcversion has two experimental parameters:- block_x, block_y: (Default: 16, 8) Block size of launch configuration of the kernel. Don't modify it unless you know what you are doing.
Compilation
cmake -S . -B build -D CMAKE_BUILD_TYPE=Release -D CMAKE_CUDA_FLAGS="--threads 0 --use_fast_math -Wno-deprecated-gpu-targets" -D CMAKE_CUDA_ARCHITECTURES="50;61-real;75-real;86"
cmake --build build --config Release
Release files for vapoursynth-bilateralgpu 15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vapoursynth_bilateralgpu-15-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| vapoursynth_bilateralgpu-15-py3-none-manylinux_2_39_x86_64.whl | Python 3 | none | Linux glibc 2.39+ x86-64 | Details |
Total release size: 96.2 MB
Release files / vapoursynth_bilateralgpu-15-py3-none-win_amd64.whl
| Download URL | vapoursynth_bilateralgpu-15-py3-none-win_amd64.whl |
|---|---|
| Size | 47.1 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0111e106eefe6e5f9a8c72534c7c1557458877d10624639361955542c283ca96
|
|
BLAKE2b-256 checksum How to use checksums |
b67a755db9ba20ad3b7348264daf39d158fc6707856fad6b622b3e20d02f6bee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency logRelease files / vapoursynth_bilateralgpu-15-py3-none-manylinux_2_39_x86_64.whl
| Download URL | vapoursynth_bilateralgpu-15-py3-none-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 49.1 MB |
| Tags | Linux glibc 2.39+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
83bddb659e19fc972636c9d77b4ffda2c6ea6ac214fdf212f8c68ab7229c4ac6
|
|
BLAKE2b-256 checksum How to use checksums |
4c6897d8b495b677ecb4838a30815f8c303bfad9369d59a41c9df3f3c50e8340
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency log