Table of Contents

Class GPUVideoEffectDenoise

Namespace
VisioForge.Core.Types.VideoEffects
Assembly
VisioForge.Core.dll

GPU-accelerated noise reduction effect that removes visual noise and grain from video using DirectX hardware acceleration.

public class GPUVideoEffectDenoise : GPUVideoEffect, IGPUVideoEffectDenoise, IGPUVideoEffect

Inheritance

Implements

Inherited Members

Remarks

Available in: VideoCaptureCore, MediaPlayerCore, VideoEditCore (Windows only)

GPU-accelerated version using DirectX. Real-time processing with hardware acceleration for efficient noise reduction on high-resolution video. Significantly faster than CPU-based denoising algorithms, making it suitable for live video processing, real-time preview during editing, and 4K/8K content where CPU denoising would be impractical.

Video noise appears as random variation in brightness or color across pixels, typically caused by low light conditions, high ISO settings, sensor limitations, or compression artifacts. Denoising algorithms distinguish between true image detail and random noise by analyzing local pixel patterns and applying selective smoothing. The GPU implementation uses spatial filtering techniques executed in parallel via DirectX shaders, processing all pixels simultaneously to maintain real-time performance.

The GPU denoise shader employs a spatial smoothing algorithm that examines neighboring pixels and reduces random variations while attempting to preserve edges and genuine detail. This is typically achieved through bilateral filtering, non-local means, or similar techniques that weight neighboring pixels based on both spatial distance and color similarity. The parallel execution on GPU allows analysis of larger neighborhoods per pixel compared to CPU implementations, potentially improving noise reduction quality while maintaining real-time speeds.

Common applications:

  • Cleaning up low-light video footage captured with high ISO settings
  • Reducing noise from webcams or consumer cameras during live streaming
  • Improving visual quality of compressed video sources (RTSP streams, screen recordings)
  • Preprocessing video for further effects or analysis to reduce noise interference
  • Enhancing surveillance footage captured in poor lighting conditions
  • Real-time noise reduction for video conferencing and professional broadcast

The effect applies a standard-strength denoising filter optimized for typical noise levels found in consumer and prosumer video equipment. No intensity adjustment is available in this implementation - the filter strength is fixed to balance noise reduction against detail preservation. Heavier noise may require multiple passes or specialized CPU-based denoisers with adjustable parameters, while lighter noise is efficiently handled by this single-pass GPU implementation.

Important considerations: Denoising inherently involves a trade-off between noise reduction and detail preservation. Aggressive denoising can blur fine details, soften textures, or create plastic-looking skin tones. This GPU implementation uses conservative settings to minimize detail loss, making it suitable for general use. If video appears overly smoothed or lacks fine texture after denoising, the source noise may be minimal enough that denoising is unnecessary. Always compare before/after to ensure the effect improves rather than degrades visual quality.

Performance characteristics: GPU denoising typically processes full HD (1920x1080) at 60fps+ and 4K (3840x2160) at 30fps or higher on modern graphics cards. The effect requires texture memory for neighborhood sampling but maintains minimal GPU memory overhead. Suitable for real-time applications including live production, streaming encoding, and interactive editing.

The SDK also provides CPU-based denoising alternatives with different algorithms and adjustable parameters. For spatial adaptive denoising with configurable parameters, see VisioForge.Core.Types.VideoEffects.VideoEffectDenoiseAdaptive. For CAST (Color Adaptive Soft Thresholding) denoising, see VisioForge.Core.Types.VideoEffects.VideoEffectDenoiseCAST. For mosquito noise reduction specific to compressed video, see VisioForge.Core.Types.VideoEffects.VideoEffectDenoiseMosquito. Choose GPU version for real-time performance on high-resolution video; choose CPU versions when specific denoising algorithms or adjustable parameters are required.

Constructors

GPUVideoEffectDenoise(bool, string, TimeSpan, TimeSpan)

Initializes a new instance of the VisioForge.Core.Types.VideoEffects.GPUVideoEffectDenoise class with GPU-accelerated noise reduction.

public GPUVideoEffectDenoise(bool enabled, string name = "Denoise", TimeSpan startTime = default, TimeSpan stopTime = default)

Parameters

enabled bool

true to enable the GPU effect immediately; false to create the effect in a disabled state. Denoising can be toggled on/off at any time without GPU resource reallocation overhead.

name string

An optional name identifier for this effect instance. Default is "Denoise". Used to retrieve and control specific effect instances from the GPU effects collection. Multiple denoising passes can be stacked if stronger noise reduction is needed, though this increases processing time.

startTime TimeSpan

The time at which the effect should start being applied. Default is zero (from beginning). Useful for selectively denoising only portions of video where noise is problematic (e.g., low-light scenes).

stopTime TimeSpan

The time at which the effect should stop being applied. Default is zero (until end). Combined with startTime, allows time-limited noise reduction for specific scenes or segments.

Remarks

The GPU-accelerated implementation processes denoising entirely on the GPU using DirectX compute shaders, ensuring real-time performance with minimal CPU usage. The spatial filtering is applied in parallel across all pixels, with each pixel's neighborhood analyzed simultaneously for maximum throughput.

Requires DirectX-compatible GPU with shader model 3.0 or higher. Automatically falls back to CPU processing if GPU is unavailable, though performance will be significantly reduced. For live applications or real-time preview scenarios, verify GPU availability before enabling this effect.

Note: Denoising is most effective on footage with moderate noise levels. Clean footage sees minimal benefit and may actually lose fine detail. Extremely noisy footage may require multiple passes or stronger CPU-based algorithms. Always compare results with and without the effect to ensure it improves rather than degrades image quality.

Methods

GetEffectType()

Gets the specific GPU effect type identifier for this denoising effect.

public GPUVideoEffectType GetEffectType()

Returns

GPUVideoEffectType

Returns VisioForge.Core.Types.VideoEffects.GPUVideoEffectType.Denoise to identify this as a GPU-accelerated noise reduction effect.

Remarks

This method is used by the GPU video processing pipeline to route the effect to the appropriate DirectX shader processor for hardware-accelerated spatial noise filtering and reduction.