shurik_pronkin
14th April 2026, 15:01
DustPort 1.0.0
A limit-clipping spatiotemporal denoiser for AviSynth+, in the philosophy of Steady's DustV5 (2003).
GitHub repository (https://github.com/schpuppa-art/dustport-avisynth-) | Releases (download the DLL) (https://github.com/schpuppa-art/dustport-avisynth-/releases/tag/v1.0)
What it does
DustPort reconstructs the four classic Dust modes (FaeryDust / PixieDust / GoldDust / SpaceDust) with modern extensions. The defining property is limit-clipping: every output pixel is guaranteed within source ± limit. No drift, no hallucinated detail, bounded deviation by construction.
This is well-suited for film restoration where modern denoisers (BM3D, KNLMeansCL) sometimes produce plausible-but-wrong output indistinguishable from real detail. DustPort cannot do this architecturally.
Features
Four classic filter names: FaeryDustPort, PixieDustPort, GoldDustPort, SpaceDustPort
Temporal radius tr 1 to 5
Mean or median temporal aggregation (SSE2/SSE4.1 sorting networks)
External motion compensation via prev / next clip arrays (compose with MVTools)
Edge-aware per-pixel limit map (Sobel-based)
Planar YUV support: 8, 10, 12, 14, 16 bit
Per-plane processing via planes parameter
YUY2 legacy support (8-bit, no edge-aware)
Quick example
LoadPlugin("DustPort.dll")
src = LWLibavVideoSource("clip.mkv").ConvertBits(16)
# Build MC clips with MVTools
sup = src.MSuper(pel=2, sharp=2, hpad=16, vpad=16)
bv1 = sup.MAnalyse(isb=true, delta=1, blksize=8, overlap=4, search=5, truemotion=true)
fv1 = sup.MAnalyse(isb=false, delta=1, blksize=8, overlap=4, search=5, truemotion=true)
p1 = src.MCompensate(sup, bv1, thSAD=300)
n1 = src.MCompensate(sup, fv1, thSAD=300)
src.PixieDustPort(limit=5, prev=[p1], next=[n1])
Or for spatial-only without MC (fastest):
src.SpaceDustPort(limit=6)
Relation to the original DustV5
DustV5.dll by Steady (2003) was a 32-bit MMX filter for AviSynth 2.0.x, YUY2 only, source never published. DustPort is an independent reimplementation based on reverse-engineering of the original binary (via pefile + capstone), the public ReadMe, and doom9 forum discussion.
Confirmed from the 2003 binary:
Faery / Pixie / Gold / Space are one class with a mode selector (0/1/2/3), not separate filters
Spatial-only path (SpaceDust, mode 3) is distinct; the other three share spatiotemporal
Default limits: Faery=2, Pixie=5, Gold=8, Space=6
An undocumented mode parameter overrides the per-name default
DustPort adds: larger temporal radius, median option, external MC, edge-aware limit, 10–16 bit planar support. DustPort is not bit-exact with the original; it reproduces the philosophy.
Requirements
AviSynth+ 3.4 or newer
Windows x86-64
CPU with SSE4.1 support (effectively any x64 CPU from 2008 onward)
Feedback
Parameter tuning advice, bug reports, and feature suggestions are welcome in this thread or as GitHub issues. Particularly interested in hearing about behaviour on genuinely noisy restoration material — the test footage I used has relatively clean sources with only synthetic grain on top.
Credits
Original DustV5 (C) 2003 Steady. DustPort is an independent implementation inspired by the same approach.
Released under MIT license.
A limit-clipping spatiotemporal denoiser for AviSynth+, in the philosophy of Steady's DustV5 (2003).
GitHub repository (https://github.com/schpuppa-art/dustport-avisynth-) | Releases (download the DLL) (https://github.com/schpuppa-art/dustport-avisynth-/releases/tag/v1.0)
What it does
DustPort reconstructs the four classic Dust modes (FaeryDust / PixieDust / GoldDust / SpaceDust) with modern extensions. The defining property is limit-clipping: every output pixel is guaranteed within source ± limit. No drift, no hallucinated detail, bounded deviation by construction.
This is well-suited for film restoration where modern denoisers (BM3D, KNLMeansCL) sometimes produce plausible-but-wrong output indistinguishable from real detail. DustPort cannot do this architecturally.
Features
Four classic filter names: FaeryDustPort, PixieDustPort, GoldDustPort, SpaceDustPort
Temporal radius tr 1 to 5
Mean or median temporal aggregation (SSE2/SSE4.1 sorting networks)
External motion compensation via prev / next clip arrays (compose with MVTools)
Edge-aware per-pixel limit map (Sobel-based)
Planar YUV support: 8, 10, 12, 14, 16 bit
Per-plane processing via planes parameter
YUY2 legacy support (8-bit, no edge-aware)
Quick example
LoadPlugin("DustPort.dll")
src = LWLibavVideoSource("clip.mkv").ConvertBits(16)
# Build MC clips with MVTools
sup = src.MSuper(pel=2, sharp=2, hpad=16, vpad=16)
bv1 = sup.MAnalyse(isb=true, delta=1, blksize=8, overlap=4, search=5, truemotion=true)
fv1 = sup.MAnalyse(isb=false, delta=1, blksize=8, overlap=4, search=5, truemotion=true)
p1 = src.MCompensate(sup, bv1, thSAD=300)
n1 = src.MCompensate(sup, fv1, thSAD=300)
src.PixieDustPort(limit=5, prev=[p1], next=[n1])
Or for spatial-only without MC (fastest):
src.SpaceDustPort(limit=6)
Relation to the original DustV5
DustV5.dll by Steady (2003) was a 32-bit MMX filter for AviSynth 2.0.x, YUY2 only, source never published. DustPort is an independent reimplementation based on reverse-engineering of the original binary (via pefile + capstone), the public ReadMe, and doom9 forum discussion.
Confirmed from the 2003 binary:
Faery / Pixie / Gold / Space are one class with a mode selector (0/1/2/3), not separate filters
Spatial-only path (SpaceDust, mode 3) is distinct; the other three share spatiotemporal
Default limits: Faery=2, Pixie=5, Gold=8, Space=6
An undocumented mode parameter overrides the per-name default
DustPort adds: larger temporal radius, median option, external MC, edge-aware limit, 10–16 bit planar support. DustPort is not bit-exact with the original; it reproduces the philosophy.
Requirements
AviSynth+ 3.4 or newer
Windows x86-64
CPU with SSE4.1 support (effectively any x64 CPU from 2008 onward)
Feedback
Parameter tuning advice, bug reports, and feature suggestions are welcome in this thread or as GitHub issues. Particularly interested in hearing about behaviour on genuinely noisy restoration material — the test footage I used has relatively clean sources with only synthetic grain on top.
Credits
Original DustV5 (C) 2003 Steady. DustPort is an independent implementation inspired by the same approach.
Released under MIT license.