VPI - Vision Programming Interface

3.2 版本

时域噪声消除

在图像序列中执行时域噪声消除。 更多...

数据结构

struct  VPITNRParams
 定义 vpiSubmitTemporalNoiseReduction 参数的结构体。 更多...
 

枚举

enum  VPITNRPreset
 定义时域噪声消除的场景预设。 更多...
 
enum  VPITNRVersion
 定义要使用的 时域噪声消除 算法的版本。 更多...
 

函数

VPIStatus vpiCreateTemporalNoiseReduction (uint64_t backends, int32_t width, int32_t height, VPIImageFormat imgFormat, VPITNRVersion version, VPIPayload *payload)
 时域噪声消除 算法创建负载 (payload)。 更多...
 
VPIStatus vpiInitTemporalNoiseReductionParams (VPITNRParams *params)
 使用默认值初始化 vpiSubmitTemporalNoiseReduction更多...
 
VPIStatus vpiSubmitTemporalNoiseReduction (VPIStream stream, uint64_t backend, VPIPayload payload, VPIImage prevFrame, VPIImage curFrame, VPIImage outFrame, const VPITNRParams *params)
 向流 (stream) 提交 时域噪声消除 操作。 更多...
 

详细描述

在图像序列中执行时域噪声消除。

有关更多详细信息和使用示例,请参阅 时域噪声消除


数据结构文档

◆ VPITNRParams

struct VPITNRParams

定义 vpiSubmitTemporalNoiseReduction 参数的结构体。

定义于文件 TemporalNoiseReduction.h 的第 166 行。

+ VPITNRParams 的协作图
数据字段
VPITNRPreset preset 要使用的场景预设。
float strength 噪声消除强度。
  • 必须 >= 0 且 <= 1。

枚举类型文档

◆ VPITNRPreset

#include <vpi/algo/TemporalNoiseReduction.h>

定义时域噪声消除的场景预设。

这些预设由 时域噪声消除 使用,以定义其内部参数,这些参数适用于使用给定特性捕获的场景的噪声消除。

枚举器
VPI_TNR_PRESET_DEFAULT 

默认预设,适用于大多数场景。

VPI_TNR_PRESET_OUTDOOR_LOW_LIGHT 

低光户外场景。

VPI_TNR_PRESET_OUTDOOR_MEDIUM_LIGHT 

中光户外场景。

VPI_TNR_PRESET_OUTDOOR_HIGH_LIGHT 

高光户外场景。

VPI_TNR_PRESET_INDOOR_LOW_LIGHT 

低光室内场景。

VPI_TNR_PRESET_INDOOR_MEDIUM_LIGHT 

中光室内场景。

VPI_TNR_PRESET_INDOOR_HIGH_LIGHT 

高光室内场景。

定义于文件 TemporalNoiseReduction.h 的第 83 行。

◆ VPITNRVersion

#include <vpi/algo/TemporalNoiseReduction.h>

定义要使用的 时域噪声消除 算法的版本。

版本号越高,通常质量越好。

枚举器
VPI_TNR_DEFAULT 

选择当前设备和给定后端可用的最佳质量版本。

VPI_TNR_V1 

版本 1,没有场景控制,降噪能力较差,尤其是在黑暗场景中,但运行速度快。

  • 不再支持
VPI_TNR_V2 

版本 2,提供噪声消除强度控制,处理速度尚可。

  • 不再支持
VPI_TNR_V3 

版本 3,提供非常好的整体质量,尤其是在黑暗场景中。

  • 仅 CUDA VIC 和后端支持此版本。

定义于文件 TemporalNoiseReduction.h 的第 97 行。

函数文档

◆ vpiCreateTemporalNoiseReduction()

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

#include <vpi/algo/TemporalNoiseReduction.h>

时域噪声消除 算法创建负载 (payload)。

此函数分配算法所需的所有资源,并将返回的负载 (payload) 绑定到给定的后端。

参数
[in]backends有资格执行该算法的 VPI 后端。
[in]width,height要处理的帧的尺寸。
  • 必须为正数。
[in]imgFormat要处理的图像的格式。
[in]version要使用的算法版本。
[out]payload指向接收创建的句柄的负载 (payload) 变量的指针。
返回值
VPI_IMAGE_FORMAT_INVALID不支持 imgFormat
VPI_ERROR_INVALID_ARGUMENTpayload 为 NULL。
VPI_ERROR_INVALID_ARGUMENTwidthheight 超出有效范围。
VPI_ERROR_INVALID_ARGUMENT无效的 TNR version
VPI_ERROR_INVALID_ARGUMENTbackends 指的是无效的后端。
VPI_ERROR_INVALID_OPERATION没有可用的 VIC 支持。
VPI_ERROR_INVALID_OPERATION后端在当前上下文中未启用。
VPI_ERROR_NOT_IMPLEMENTED给定后端不支持时域噪声消除算法版本。
VPI_ERROR_NOT_IMPLEMENTEDVIC 硬件不支持 TNRv3。
VPI_ERROR_INVALID_CONTEXT当前上下文已销毁。
VPI_ERROR_OUT_OF_MEMORY无法分配所需资源。
VPI_SUCCESS操作成功执行。

◆ vpiInitTemporalNoiseReductionParams()

VPIStatus vpiInitTemporalNoiseReductionParams ( VPITNRParams params)

#include <vpi/algo/TemporalNoiseReduction.h>

使用默认值初始化 vpiSubmitTemporalNoiseReduction

默认值

参数
[in]params要填充默认值的结构体。
返回值
VPI_ERROR_INVALID_ARGUMENTparams 为 NULL。
VPI_SUCCESS操作成功执行。

◆ vpiSubmitTemporalNoiseReduction()

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

#include <vpi/algo/TemporalNoiseReduction.h>

向流 (stream) 提交 时域噪声消除 操作。

参数
[in]stream操作将在其中排队的流 (stream)。
  • 不得为 NULL。
  • 流 (stream) 必须已启用将执行该算法的后端。
[in]backend将执行该算法的后端。
  • 必须是在负载 (payload) 创建期间指定的后端,或者为 0 以简写形式使用此后端。
[in]payload要与其他参数一起提交的负载 (payload)。
[in]prevFrame上一次迭代的结果。如果传递的帧不是上一次迭代的结果图像,则 TNR 会将其视为空 (NULL),即内部状态将被重置,并且 curFrame 将被视为要降噪的新序列的第一帧。
  • 当处理视频序列的第一帧时,此参数必须为 NULL。
  • 必须具有与负载 (payload) 创建期间指定的格式和尺寸相同的格式和尺寸。
  • 输入必须已启用将执行该算法的后端。
[in]curFrame要处理的当前(含噪)帧。
  • 不得为 NULL。
  • 必须具有与负载 (payload) 创建期间指定的格式和尺寸相同的格式和尺寸。
  • 输入必须已启用将执行该算法的后端。
[out]outFrame输出帧,降噪后的图像将写入其中。
  • 不得为 NULL。
  • 必须具有与负载 (payload) 创建期间指定的格式和尺寸相同的格式和尺寸。
  • 输入必须已启用将执行该算法的后端。
[in]params时域噪声消除的控制参数。如果为 NULL,则将使用 vpiInitTemporalNoiseReductionParams 给出的默认值。
返回值
VPI_ERROR_INVALID_ARGUMENTstream 为 NULL。
VPI_ERROR_INVALID_ARGUMENTcurFrameoutFrame 为 NULL。
VPI_ERROR_INVALID_ARGUMENTpayload 不是使用 vpiCreateTemporalNoiseReduction 系列函数生成的。
VPI_ERROR_INVALID_ARGUMENTprevFramecurFrameoutFrame 必须具有与 payload 创建期间配置的格式和大小相同的格式和大小。
VPI_ERROR_INVALID_ARGUMENTparams 中的强度超出有效范围。
VPI_ERROR_INVALID_PAYLOAD_TYPEpayload 无效。
VPI_ERROR_INVALID_OPERATION所需的后端在 streamprevFramecurFrameoutFrame 中未启用。
VPI_SUCCESS操作成功执行。