VPI - Vision Programming Interface

1.2 Release

Temporal Noise Reduction

Performs temporal noise reduction in a sequence of images. More...

Data Structures

struct  VPITNRParams
 Structure that defines the parameters for vpiSubmitTemporalNoiseReduction. More...
 

Enumerations

enum  VPITNRPreset
 Defines scene presets for temporal noise reduction. More...
 
enum  VPITNRVersion
 Defines the version of the Temporal Noise Reduction algorithm to be used. More...
 

Functions

VPIStatus vpiCreateTemporalNoiseReduction (uint32_t backends, int32_t width, int32_t height, VPIImageFormat imgFormat, VPITNRVersion version, VPIPayload *payload)
 Creates a payload for Temporal Noise Reduction algorithm. More...
 
VPIStatus vpiInitTemporalNoiseReductionParams (VPITNRParams *params)
 Initializes vpiSubmitTemporalNoiseReduction with default values. More...
 
VPIStatus vpiSubmitTemporalNoiseReduction (VPIStream stream, uint32_t backend, VPIPayload payload, VPIImage prevFrame, VPIImage curFrame, VPIImage outFrame, const VPITNRParams *params)
 Submits a Temporal Noise Reduction operation to the stream associated with the given payload. More...
 

Detailed Description

Performs temporal noise reduction in a sequence of images.


Data Structure Documentation

◆ VPITNRParams

struct VPITNRParams

Structure that defines the parameters for vpiSubmitTemporalNoiseReduction.

Definition at line 132 of file TemporalNoiseReduction.h.

+ Collaboration diagram for VPITNRParams:
Data Fields
VPITNRPreset preset Scene preset to be used.
float strength Noise reduction strength.

It's a floating point value between 0 and 1, inclusive.

Enumeration Type Documentation

◆ VPITNRPreset

#include <vpi/algo/TemporalNoiseReduction.h>

Defines scene presets for temporal noise reduction.

These presets are used by Temporal Noise Reduction to define its internal parameters suitable for noise reduction of scenes captured with given characteristics.

Enumerator
VPI_TNR_PRESET_DEFAULT 

Default preset, suitable for most scenes.

VPI_TNR_PRESET_OUTDOOR_LOW_LIGHT 

Low light outdoor scene.

VPI_TNR_PRESET_OUTDOOR_MEDIUM_LIGHT 

Medium light outdoor scene.

VPI_TNR_PRESET_OUTDOOR_HIGH_LIGHT 

Bright light outdoor scene.

VPI_TNR_PRESET_INDOOR_LOW_LIGHT 

Low light indoor scene.

VPI_TNR_PRESET_INDOOR_MEDIUM_LIGHT 

Medium light indoor scene.

VPI_TNR_PRESET_INDOOR_HIGH_LIGHT 

Bright light indoor scene.

Definition at line 82 of file TemporalNoiseReduction.h.

◆ VPITNRVersion

#include <vpi/algo/TemporalNoiseReduction.h>

Defines the version of the Temporal Noise Reduction algorithm to be used.

Higher version numbers usually achieve better quality. Some versions might not be available for a given device/backend.

Enumerator
VPI_TNR_DEFAULT 

Chooses the version with best quality available in the current device and given backend.

VPI_TNR_V1 

Version 1, without scene control and somewhat poor noise reduction capability specially in dark scenes, but runs fast.

VPI_TNR_V2 

Version 2, offers noise reduction strength control with decent processing speed.

VPI_TNR_V3 

Version 3, offers quite good quality overall, specially in dark scenes.

Definition at line 97 of file TemporalNoiseReduction.h.

Function Documentation

◆ vpiCreateTemporalNoiseReduction()

VPIStatus vpiCreateTemporalNoiseReduction ( uint32_t  backends,
int32_t  width,
int32_t  height,
VPIImageFormat  imgFormat,
VPITNRVersion  version,
VPIPayload payload 
)

#include <vpi/algo/TemporalNoiseReduction.h>

Creates a payload for Temporal Noise Reduction algorithm.

This function allocates all resources needed by the algorithm and ties the returned payload to the given backend.

Parameters
[in]backendsVPI backends that are eligible to execute the algorithm. Currently only one backend is accepted.
[in]width,heightDimensions of frames to be processed.
[in]imgFormatFormat of the images to be processed.
[in]versionVersion of the algorithm to be used.
[out]payloadPointer to memory where the created payload handle will be written to.
Returns
VPI_SUCCESS if payload was created successfully, or some other VPIStatus value in case of error.

◆ vpiInitTemporalNoiseReductionParams()

VPIStatus vpiInitTemporalNoiseReductionParams ( VPITNRParams params)

#include <vpi/algo/TemporalNoiseReduction.h>

Initializes vpiSubmitTemporalNoiseReduction with default values.

Defaults:

  • preset: VPI_TNR_PRESET_DEFAULT
  • strength: 0.5
Parameters
[in]paramsStructure to be filled with default values.
Returns
an error code on failure else VPI_SUCCESS

◆ vpiSubmitTemporalNoiseReduction()

VPIStatus vpiSubmitTemporalNoiseReduction ( VPIStream  stream,
uint32_t  backend,
VPIPayload  payload,
VPIImage  prevFrame,
VPIImage  curFrame,
VPIImage  outFrame,
const VPITNRParams params 
)

#include <vpi/algo/TemporalNoiseReduction.h>

Submits a Temporal Noise Reduction operation to the stream associated with the given payload.

Parameters
[in]streamThe stream where the operation will be queued in.
[in]backendBackend that will execute the algorithm. Must be one of the backends specified during payload creation. If 0, VPI will select one of the eligible backends from the payload that accepts the given parameters, usually the fastest one.
[in]payloadPayload to be submitted along the other parameters.
[in]prevFrameWhen processing the first frame of a video sequence, this must be NULL. For subsequent frames, user must pass the result of the previous run of the algorithm.
[in]curFrameCurrent frame to be processed.
[out]outFrameOutput frame, where de-noised image will be written to.
[in]paramsControl parameters for temporal noise reduction. If NULL, it'll use the defaults given by vpiInitTemporalNoiseReductionParams.
Returns
VPI_SUCCESS if algorithm was submitted successfully, or some other VPIStatus value in case of error. Some errors will only be reported asynchronously by synchronization functions or subsequent algorithm submissions.