14. YNR

14.1. 功能描述

在 YUV Domain 针对亮度噪声进行的空域去噪算法。

14.2. API 参考

14.2.1. CVI_ISP_SetYNRAttr

【描述】

设置亮度降噪属性参数

【语法】

CVI_S32 CVI_ISP_SetYNRAttr(VI_PIPE ViPipe, const ISP_YNR_ATTR_S *pstYNRAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstYNRAttr

亮度降噪属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

14.2.2. CVI_ISP_GetYNRAttr

【描述】

获取亮度降噪属性参数

【语法】

CVI_S32 CVI_ISP_GetYNRAttr(VI_PIPE ViPipe, ISP_YNR_ATTR_S *pstYNRAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstYNRAttr

亮度降噪属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

14.2.3. CVI_ISP_SetYNRMotionNRAttr

【描述】

设置亮度降噪移动物体属性参数

【语法】

CVI_S32 CVI_ISP_SetYNRMotionNRAttr(VI_PIPE ViPipe, const ISP_YNR_MOTION_NR_ATTR_S *pstYNRMotionNRAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstYNRMotionNRAttr

设置亮度降噪移动物体属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

14.2.4. CVI_ISP_GetYNRMotionNRAttr

【描述】

获取亮度降噪移动物体属性参数

【语法】

CVI_S32 CVI_ISP_GetYNRMotionNRAttr(VI_PIPE ViPipe, ISP_YNR_MOTION_NR_ATTR_S *pstYNRMotionNRAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstYNRMotionNRAttr

设置亮度降噪移动物体属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

14.2.5. CVI_ISP_SetYNRFilterAttr

【描述】

设置亮度降噪滤波器属性参数

【语法】

CVI_S32 CVI_ISP_SetYNRFilterAttr(VI_PIPE ViPipe, const ISP_YNR_FILTER_ATTR_S *pstYNRFilterAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstYNRFilterAttr

亮度降噪滤波器属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

14.2.6. CVI_ISP_GetYNRFilterAttr

【描述】

获取亮度降噪滤波器属性参数

【语法】

CVI_S32 CVI_ISP_GetYNRFilterAttr(VI_PIPE ViPipe, ISP_YNR_FILTER_ATTR_S *pstYNRFilterAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstYNRFilterAttr

亮度降噪滤波器属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

14.3. 数据类型

14.3.1. ISP_YNR_MANUAL_ATTR_S

【说明】

亮度降噪属性手动参数

【定义】

typedef struct _ISP_YNR_MANUAL_ATTR_S {
  CVI_U8 WindowType;
  CVI_U8 DetailSmoothMode;
  CVI_U8 NoiseSuppressStr;
  CVI_U8 FilterType;
  CVI_U8 NoiseCoringMax;
  CVI_U8 NoiseCoringBase;
  CVI_U8 NoiseCoringAdv;
} ISP_YNR_MANUAL_ATTR_S;

【成员】

成员名称

描述

WindowType

去噪滤波局域程度。其值越小,作用越局域。

取值范围: [0x0, 0xb]

数据类型: CVI_U8

DetailSmoothMode

去噪细节平滑功能使能。

0: 关闭。

1: 使能。

取值范围: [0x0, 0x1]

数据类型: CVI_U8

NoiseSuppressStr

噪声抑制强度。值越大,亮噪去除强度越大。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

FilterType

去噪滤波器强度。值越大,亮噪去除强度越大。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

NoiseCoringMax

噪声抑制强度可允许之最大值。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

NoiseCoringBase

运动区亮度噪声容忍值,运动区的判断与TNR运动区侦测连动。值越大,对运动区去噪强度越大。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

NoiseCoringAdv

静止区亮度噪声容忍值,静止区的判断与TNR运动区侦测连动。值越大,对静止区去噪强度越大。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

14.3.2. ISP_YNR_AUTO_ATTR_S

【说明】

亮度降噪属性自动参数

【定义】

typedef struct _ISP_YNR_AUTO_ATTR_S {
  CVI_U8 WindowType[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 DetailSmoothMode[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 NoiseSuppressStr[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 FilterType[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 NoiseCoringMax[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 NoiseCoringBase[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 NoiseCoringAdv[ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_YNR_AUTO_ATTR_S;

【成员】

成员名称

描述

WindowType

去噪滤波局域程度。其值越小,作用越局域。

取值范围: [0x0, 0xb]

数据类型: CVI_U8

DetailSmoothMode

去噪细节平滑功能使能。

0: 关闭。

1: 使能。

取值范围: [0x0, 0x1]

数据类型: CVI_U8

NoiseSuppressStr

噪声抑制强度。值越大,亮噪去除强度越大。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

FilterType

去噪滤波器强度。值越大,亮噪去除强度越大。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

NoiseCoringMax

噪声抑制强度可允许之最大值。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

NoiseCoringBase

运动区亮度噪声容忍值,运动区的判断与TNR运动区侦测连动。值越大,对运动区去噪强度越大。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

NoiseCoringAdv

静止区亮度噪声容忍值,静止区的判断与TNR运动区侦测连动。值越大,对静止区去噪强度越大。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

14.3.3. ISP_YNR_ATTR_S

【说明】

亮度降噪属性参数

【定义】

typedef struct _ISP_YNR_ATTR_S {
  CVI_BOOL Enable;
  ISP_OP_TYPE_E enOpType;
  CVI_U8 UpdateInterval;
  CVI_BOOL CoringParamEnable;
  CVI_BOOL FiltModeEnable;
  CVI_U16 FiltMode;
  CVI_U8 TuningMode;
  ISP_YNR_MANUAL_ATTR_S stManual;
  ISP_YNR_AUTO_ATTR_S stAuto;
} ISP_YNR_ATTR_S;

【成员】

成员名称

描述

Enable

YNR模块使能。

0: 关闭。

1: 使能。

取值范围: [0, 1]

数据类型: CVI_BOOL

enOpType

工作类型

OP_TYPE_AUTO: 自动模式

OP_TYPE_MANUAL: 手动模式

UpdateInterval

影响参数更新间隔,值越大画面变化越慢, 效能越好。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

CoringParamEnable

控制是否使用手动coring, 假如为0则

NoiseCoringBaseLuma[6] / NoiseCoringBaseOffset[6]

/ NoiseCoringAdvLuma[6] / NoiseCoringAdvOffset[6]

没有用。

取值范围: [0, 1]

数据类型: CVI_BOOL

FiltModeEnable

滤波器手调混和模式使能。

0: 关闭。

1: 使能。

取值范围: [0, 1]

数据类型: CVI_BOOL

FiltMode

滤波器手调混和权重。

取值范围: [0, 0x100]

数据类型: CVI_U16

TuningMode

输出元文件案,辅助调节参数。8: YNR图像结果。11: 平坦/边缘侦测图像结果。(Remove 12, 13, 14, 15) 12: 垂直边缘侦测图像结果。13: 水平边缘侦测图像结果。14: 反对角线边缘侦测图像结果。15: 对角线边缘侦测图像结果。

取值范围: [0x0, 0xf]

数据类型: CVI_U8

stManual

手动模式参数属性

stAuto

自动模式参数属性

【注意事项】

【相关数据类型及接口】

14.3.4. ISP_YNR_MOTION_NR_MANUAL_ATTR_S

【说明】

亮度降噪移动物体属性手动参数

【定义】

typedef struct _ISP_YNR_MOTION_NR_MANUAL_ATTR_S {
  CVI_U8 MotionCoringWgtMax;
  CVI_U16 MotionYnrLut[16];
  CVI_U16 MotionCoringWgt[16];
} ISP_YNR_MOTION_NR_MANUAL_ATTR_S;

【成员】

成员名称

描述

MotionCoringWgtMax

针对物体运动区域,可允许保留噪声的最大值。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

MotionYnrLut[16]

调整在不同物体运动量时对应的去亮噪强度,将运动量区分为16阶。值越大,去亮噪强度越强。

取值范围: [0x0, 0xff]

数据类型: CVI_U16

MotionCoringWgt [16]

调整在不同物体运动量时对应的噪声保留程度,将运动量区分为16阶。值越大,噪声保留越多。

取值范围: [0x0, 0x100]

数据类型: CVI_U16

【注意事项】

【相关数据类型及接口】

14.3.5. ISP_YNR_MOTION_NR_AUTO_ATTR_S

【说明】

亮度降噪移动物体属性自动参数

【定义】

typedef struct _ISP_YNR_MOTION_NR_AUTO_ATTR_S {
  CVI_U8 MotionCoringWgtMax[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U16 MotionYnrLut[16][ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U16 MotionCoringWgt[16][ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_YNR_MOTION_NR_AUTO_ATTR_S;

【成员】

成员名称

描述

MotionCoringWgtMax

针对物体运动区域,可允许保留噪声的最大值。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

MotionYnrLut[16]

调整在不同物体运动量时对应的去亮噪强度,将运动量区分为16阶。值越大,去亮噪强度越强。

取值范围: [0x0, 0xff]

数据类型: CVI_U16

MotionCoringWgt [16]

调整在不同物体运动量时对应的噪声保留程度,将运动量区分为16阶。值越大,噪声保留越多。

取值范围: [0x0, 0x100]

数据类型: CVI_U16

【注意事项】

【相关数据类型及接口】

14.3.6. ISP_YNR_MOTION_NR_ATTR_S

【说明】

亮度降噪移动物体属性参数

【定义】

typedef struct _ISP_YNR_MOTION_NR_ATTR_S {
  ISP_YNR_MOTION_NR_MANUAL_ATTR_S stManual;
  ISP_YNR_MOTION_NR_AUTO_ATTR_S stAuto;
} ISP_YNR_MOTION_NR_ATTR_S;

【成员】

成员名称

描述

stManual

手动模式参数属性

stAuto

自动模式参数属性

【注意事项】

【相关数据类型及接口】

14.3.7. ISP_YNR_FILTER_MANUAL_ATTR_S

【说明】

亮度降噪滤波器属性手动参数

【定义】

typedef struct _ISP_YNR_FILTER_MANUAL_ATTR_S {
  CVI_U8 VarThr;
  CVI_U16 CoringWgtLF;
  CVI_U16 CoringWgtHF;
  CVI_U8 NonDirFiltStr;
  CVI_U8 VhDirFiltStr;
  CVI_U8 AaDirFiltStr;
  CVI_U8 CoringWgtMax;
  CVI_U16 FilterMode;
} ISP_YNR_FILTER_MANUAL_ATTR_S;

【成员】

成员名称

描述

VarThr

侦测边缘的阈值。值越大,判断为边缘的数量越少。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

CoringWgtLF

调节在低频区域的随机噪声强度。值越大,在低频区域保留的噪声越多。

取值范围: [0x0, 0x100]

数据类型: CVI_U16

CoringWgtHF

调节在高频区域的随机噪声强度。值越大,在高频区域的保留的噪声越多。

取值范围: [0x0, 0x100]

数据类型: CVI_U16

NonDirFiltStr

调节在低频区的去噪强度。值越大,在低频区域去除的噪声越多。

取值范围: [0x0, 0x1f]

数据类型: CVI_U8

VhDirFiltStr

调节在水平和垂直区的去噪强度。值越大,在水平和垂直边缘去除的噪声越多。

取值范围: [0x0, 0x1f]

数据类型: CVI_U8

AaDirFiltStr

调节在对角线边缘的去噪强度。值越大,在对角线边缘去除的噪声越多。

取值范围: [0x0, 0x1f]

数据类型: CVI_U8

CoringWgtMax

可允许保留噪声的最大值。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

FilterMode

滤波器模式。值越小,平坦区保留的噪声均匀性越好。

取值范围: [0x0, 0x3ff]

数据类型: CVI_U16

【注意事项】

【相关数据类型及接口】

14.3.8. ISP_YNR_FILTER_AUTO_ATTR_S

【说明】

亮度降噪滤波器属性自动参数

【定义】

typedef struct _ISP_YNR_FILTER_AUTO_ATTR_S {
  CVI_U8 VarThr[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U16 CoringWgtLF[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U16 CoringWgtHF[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 NonDirFiltStr[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 VhDirFiltStr[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 AaDirFiltStr[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U8 CoringWgtMax[ISP_AUTO_ISO_STRENGTH_NUM];
  CVI_U16 FilterMode[ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_YNR_FILTER_AUTO_ATTR_S;

【成员】

成员名称

描述

VarThr

侦测边缘的阈值。值越大,判断为边缘的数量越少。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

CoringWgtLF

调节在低频区域的随机噪声强度。值越大,在低频区域保留的噪声越多。

取值范围: [0x0, 0x100]

数据类型: CVI_U16

CoringWgtHF

调节在高频区域的随机噪声强度。值越大,在高频区域的保留的噪声越多。

取值范围: [0x0, 0x100]

数据类型: CVI_U16

NonDirFiltStr

调节在低频区的去噪强度。值越大,在低频区域去除的噪声越多。

取值范围: [0x0, 0x1f]

数据类型: CVI_U8

VhDirFiltStr

调节在水平和垂直区的去噪强度。值越大,在水平和垂直边缘去除的噪声越多。

取值范围: [0x0, 0x1f]

数据类型: CVI_U8

AaDirFiltStr

调节在对角线边缘的去噪强度。值越大,在对角线边缘去除的噪声越多。

取值范围: [0x0, 0x1f]

数据类型: CVI_U8

CoringWgtMax

可允许保留噪声的最大值。

取值范围: [0x0, 0xff]

数据类型: CVI_U8

FilterMode

滤波器模式。值越小,平坦区保留的噪声均匀性越好。

取值范围: [0x0, 0x3ff]

数据类型: CVI_U16

【注意事项】

【相关数据类型及接口】

14.3.9. ISP_YNR_FILTER_ATTR_S

【说明】

亮度降噪滤波器属性参数

【定义】

typedef struct _ISP_YNR_FILTER_ATTR_S {
  ISP_YNR_FILTER_MANUAL_ATTR_S stManual;
  ISP_YNR_FILTER_AUTO_ATTR_S stAuto;
} ISP_YNR_FILTER_ATTR_S;

【成员】

成员名称

描述

stManual

手动模式参数属性

stAuto

自动模式参数属性

【注意事项】

【相关数据类型及接口】