Class VideoEffectDenoiseAdaptive
- Namespace
- VisioForge.Core.Types.VideoEffects
- Assembly
- VisioForge.Core.dll
Represents an adaptive noise reduction effect that performs spatio-temporal filtering to reduce video noise while preserving edge details.
public class VideoEffectDenoiseAdaptive : VideoEffect, IVideoEffectDenoiseAdaptive, IVideoEffectInheritance
Implements
Inherited Members
Remarks
The adaptive denoise effect analyzes both spatial (within-frame) and temporal (across-frames) information to intelligently reduce noise in video footage. Unlike simple blur filters, adaptive denoising adjusts its strength based on local image characteristics, preserving important edge details and texture while smoothing areas of uniform color or gradual transitions.
SDK Availability: This effect is available in VideoCaptureCore, MediaPlayerCore, and VideoEditCore SDKs. Windows platform only.
Platform Support: Windows only (requires Windows-specific video processing filters).
The algorithm works by comparing pixels across multiple frames and within local neighborhoods. When motion is detected (temporal difference exceeds threshold), the effect favors spatial filtering to avoid motion blur. In static or slowly-changing areas, temporal averaging is emphasized for maximum noise reduction. The blur type parameter controls the specific spatial filtering algorithm used.
Key Features:
- Spatio-temporal noise analysis for intelligent filtering
- Adjustable threshold to control sensitivity to motion and edges
- Multiple blur type options for different noise characteristics
- Preserves edge sharpness while reducing noise in smooth areas
- Effective for video from low-light or high-ISO sources
Common Use Cases:
- Cleaning up noisy footage from cameras with poor low-light performance
- Improving video quality from webcams or surveillance cameras
- Reducing compression artifacts and digital noise
- Preparing video for further processing or encoding
- Enhancing perceived quality of archived or legacy video content
Technical Details: The threshold parameter determines when pixels are considered different enough to represent actual content change versus noise. Lower thresholds preserve more fine detail but may leave more noise; higher thresholds produce smoother results but may blur fast-moving details. The effect requires buffering multiple frames for temporal analysis, which introduces a small processing delay.
For other noise reduction approaches, see also VisioForge.Core.Types.VideoEffects.VideoEffectDenoiseCAST for CAST (Content Adaptive Spatio-Temporal) filtering with extensive parameter control, and VisioForge.Core.Types.VideoEffects.VideoEffectDenoiseMosquito for reducing mosquito noise artifacts commonly found in compressed video. Also consider VisioForge.Core.Types.VideoEffects.VideoEffectBlur for simple spatial smoothing or VisioForge.Core.Types.VideoEffects.VideoEffectSmooth for general image smoothing effects.
Constructors
VideoEffectDenoiseAdaptive(bool, int, int, string, TimeSpan, TimeSpan)
Initializes a new instance of the VisioForge.Core.Types.VideoEffects.VideoEffectDenoiseAdaptive class with specified parameters.
public VideoEffectDenoiseAdaptive(bool enabled, int threshold, int blurType, string name = "DenoiseAdaptive", TimeSpan startTime = default, TimeSpan stopTime = default)Parameters
enabledbool-
trueto enable the effect immediately;falseto create the effect in a disabled state. The effect can be enabled or disabled later using the VisioForge.Core.Types.VideoEffects.VideoEffect.Enabled property. thresholdint-
The threshold value controlling noise and motion detection sensitivity. Valid range is 0-255. Default is 20, which provides balanced noise reduction for most footage. Lower values preserve more detail; higher values provide stronger denoising.
blurTypeint-
The spatial filtering algorithm to use for noise reduction. Valid range is 0-3. Default is 0 (standard averaging).
- 0: Standard averaging
- 1: Gaussian blur
- 2: Edge-preserving
- 3: Adaptive kernel
namestring-
An optional name identifier for this effect instance. Default is "DenoiseAdaptive". Used to retrieve specific effect instances from a collection via the VisioForge.Core.Types.VideoEffects.VideoEffect.Name property. Multiple effects of the same type can coexist with different names.
startTimeTimeSpan-
The time at which the effect should start being applied. Default is Zero, which applies the effect from the beginning of the video. Use a specific time value to delay the effect start (useful for applying denoising only to specific scenes).
stopTimeTimeSpan-
The time at which the effect should stop being applied. Default is Zero, which applies the effect until the end of the video. Set to a specific time to limit the effect duration (useful for processing only noisy sections).
Remarks
If both startTime and stopTime are zero (default),
the effect will be applied for the entire video duration.
Adaptive denoising requires buffering multiple frames for temporal analysis, which may introduce a small processing delay and increased memory usage. The performance impact depends on video resolution and the selected blur type.
Properties
BlurType
Gets or sets the blur type that determines the spatial filtering algorithm used for noise reduction.
public int BlurType { get; set; }Property Value
Remarks
The blur type selects different spatial filtering kernels optimized for various noise characteristics:
- 0: Standard averaging - balanced performance and quality, suitable for most sources
- 1: Gaussian blur - smoother results, better for organic noise patterns
- 2: Edge-preserving - enhanced edge detection, best for detailed content
- 3: Adaptive kernel - automatically adjusts based on local content characteristics
Choose the blur type based on your source material and desired output characteristics. Experimentation may be needed to find the optimal setting for specific footage.
Threshold
Gets or sets the threshold value that controls the sensitivity of noise detection and motion detection.
public int Threshold { get; set; }Property Value
Remarks
The threshold determines how much difference between pixels (spatially or temporally) is considered significant versus noise. Lower values make the filter more sensitive, preserving more detail but potentially leaving more noise. Higher values produce more aggressive noise reduction but may blur fast motion or fine details.
Typical threshold values:
- 5-15: Conservative denoising, preserves maximum detail, suitable for high-quality sources
- 15-25: Balanced noise reduction, good for most footage (recommended range)
- 25-40: Aggressive denoising, suitable for very noisy sources like low-light video
- 40+: Very strong noise reduction, may blur motion and fine details significantly
Methods
GetEffectType()
Gets the specific type of this video effect.
public VideoEffectType GetEffectType()Returns
- VideoEffectType
-
Returns VisioForge.Core.Types.VideoEffects.VideoEffectType.DenoiseAdaptive to identify this as an adaptive denoise effect.
Remarks
This method overrides the base class implementation to provide the concrete effect type. The effect type is used by the video processing pipeline to route the effect to the appropriate adaptive denoising filter processor.