13. BNR¶
13.1. 功能描述¶
在 Bayer Domain 进行的空域去噪算法。
13.2. API 参考¶
CVI_ISP_SetNRAttr: 设置Bayer降噪参数属性
CVI_ISP_GetNRAttr: 获取Bayer降噪参数属性
CVI_ISP_SetNRFilterAttr: 设置Bayer降噪滤波器属性
CVI_ISP_GetNRFilterAttr: 获取Bayer降噪滤波器属性
13.2.1. CVI_ISP_SetNRAttr¶
【描述】
设置Bayer降噪参数属性
【语法】
CVI_S32 CVI_ISP_SetNRAttr(VI_PIPE ViPipe, const ISP_NR_ATTR_S *pstNRAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstNRAttr |
Bayer降噪参数属性 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无
【举例】
无
【相关主题】
13.2.2. CVI_ISP_GetNRAttr¶
【描述】
获取 NR 属性参数
【语法】
CVI_S32 CVI_ISP_GetNRAttr(VI_PIPE ViPipe, ISP_NR_ATTR_S *pstNRAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstNRAttr |
Bayer降噪参数属性 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无
【举例】
无
【相关主题】
13.2.3. CVI_ISP_SetNRFilterAttr¶
【描述】
设置Bayer降噪滤波器属性
【语法】
CVI_S32 CVI_ISP_SetNRFilterAttr(VI_PIPE ViPipe, const ISP_NR_FILTER_ATTR_S *pstNRFilterAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstNRFilterAttr |
Bayer降噪滤波器属性 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无
【举例】
无
【相关主题】
13.2.4. CVI_ISP_GetNRFilterAttr¶
【描述】
获取Bayer降噪滤波器属性
【语法】
CVI_S32 CVI_ISP_GetNRFilterAttr(VI_PIPE ViPipe, ISP_NR_FILTER_ATTR_S *pstNRFilterAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstNRFilterAttr |
Bayer降噪滤波器属性 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无
【举例】
无
【相关主题】
13.3. 数据类型¶
ISP_NR_MANUAL_ATTR_S: Bayer降噪参数手动属性
ISP_NR_AUTO_ATTR_S: Bayer降噪参数自动属性
ISP_NR_ATTR_S: Bayer降噪参数属性
ISP_NR_FILTER_MANUAL_ATTR_S: Bayer降噪滤波器手动属性
ISP_NR_FILTER_AUTO_ATTR_S: Bayer降噪滤波器自动属性
ISP_NR_FILTER_ATTR_S: Bayer降噪滤波器属性
ISP_RLSC_MANUAL_ATTR_S: Bayer降噪RLSC手动属性
ISP_RLSC_AUTO_ATTR_S: Bayer降噪RLSC自动属性
ISP_RLSC_ATTR_S: Bayer降噪RLSC属性
13.3.1. ISP_NR_MANUAL_ATTR_S¶
【说明】
Bayer降噪参数手动属性
【定义】
typedef struct _ISP_NR_MANUAL_ATTR_S {
CVI_U8 WindowType;
CVI_U8 DetailSmoothMode;
CVI_U8 NoiseSuppressStr;
CVI_U8 FilterType;
CVI_U8 NoiseSuppressStrMode;
} ISP_NR_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 |
NoiseSuppressStrMode |
亮噪去噪强度。值越大,亮噪去除强度越大。 取值范围: [0x0, 0xff] 数据类型: CVI_U8 |
【注意事项】
无
【相关数据类型及接口】
13.3.2. ISP_NR_AUTO_ATTR_S¶
【说明】
Bayer降噪参数自动属性
【定义】
typedef struct _ISP_NR_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 NoiseSuppressStrMode[ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_NR_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 |
NoiseSuppressStrMode |
亮噪去噪强度。值越大,亮噪去除强度越大。 取值范围: [0x0, 0xff] 数据类型: CVI_U8 |
【注意事项】
无
【相关数据类型及接口】
13.3.3. ISP_NR_ATTR_S¶
【说明】
Bayer降噪参数属性
【定义】
typedef struct _ISP_NR_ATTR_S {
CVI_BOOL Enable;
ISP_OP_TYPE_E enOpType;
CVI_U8 UpdateInterval;
CVI_BOOL CoringParamEnable;
ISP_NR_MANUAL_ATTR_S stManual;
ISP_NR_AUTO_ATTR_S stAuto;
} ISP_NR_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
Enable |
BNR模块使能。 0: 关闭。 1: 使能。 取值范围: [0, 1] 数据类型: CVI_BOOL |
enOpType |
工作模式 0: 自动 1: 手动 |
UpdateInterval |
影响参数更新间隔,值越大画面变化越慢,效能越好 取值范围: [0x0, 0xff] 数据类型: CVI_U8 |
CoringParamEnable |
Coring 参数使能 取值范围: [0, 1] 数据类型: CVI_BOOL |
stManual |
Bayer降噪参数手动属性 |
stAuto |
Bayer降噪参数自动属性 |
【注意事项】
无
【相关数据类型及接口】
13.3.4. ISP_NR_FILTER_MANUAL_ATTR_S¶
【说明】
Bayer降噪滤波器手动属性
【定义】
typedef struct _ISP_NR_FILTER_MANUAL_ATTR_S {
CVI_U8 LumaStr[8];
CVI_U8 VarThr;
CVI_U16 CoringWgtLF;
CVI_U16 CoringWgtHF;
CVI_U8 NonDirFiltStr;
CVI_U8 VhDirFiltStr;
CVI_U8 AaDirFiltStr;
CVI_U16 NpSlopeR; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpSlopeGr; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpSlopeGb; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpSlopeB; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpLumaThrR; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpLumaThrGr; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpLumaThrGb; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpLumaThrB; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpLowOffsetR; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpLowOffsetGr; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpLowOffsetGb; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpLowOffsetB; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpHighOffsetR; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpHighOffsetGr; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpHighOffsetGb; /*RW; Range:[0x0, 0x3ff]*/
CVI_U16 NpHighOffsetB; /*RW; Range:[0x0, 0x3ff]*/
} ISP_NR_FILTER_MANUAL_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
LumaStr[8] |
参考图像亮度从暗到亮分别调节去噪强度。值越大,亮噪去除强度越大。 取值范围: [0x0, 0x1f] 数据类型: CVI_U8 |
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 |
NpSlopeR |
Noise profile 在 R 通道的斜率 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpSlopeGr |
Noise profile 在 Gr 通道的斜率 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 - |
NpSlopeGb |
Noise profile 在 Gb 通道的斜率 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpSlopeB |
Noise profile 在 B 通道的斜率 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLumaThrR |
Noise profile 在 R 通道的亮度阈值 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLumaThrGr |
Noise profile 在 Gr 通道的亮度阈值 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLumaThrGb |
Noise profile 在 Gb 通道的亮度阈值 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLumaThrB |
Noise profile 在 B 通道的亮度阈值 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLowOffsetR |
Noise profile 在 R 通道可允许的最小 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLowOffsetGr |
Noise profile 在 Gr 通道可允许的最小 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLowOffsetGb |
Noise profile 在 Gb 通道可允许的最小 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLowOffsetB |
Noise profile 在 B 通道可允许的最小 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpHighOffsetR |
Noise profile 在 R 通道可允许的最大 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpHighOffsetGb |
Noise profile 在 Gr 通道可允许的最大 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpHighOffsetGr |
Noise profile 在 Gb 通道可允许的最大 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpHighOffsetB |
Noise profile 在 B 通道可允许的最大 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
【注意事项】
无
【相关数据类型及接口】
13.3.5. ISP_NR_FILTER_AUTO_ATTR_S¶
【说明】
Bayer降噪滤波器自动属性
【定义】
typedef struct _ISP_NR_FILTER_AUTO_ATTR_S {
CVI_U8 LumaStr[8][ISP_AUTO_ISO_STRENGTH_NUM];
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_U16 NpSlopeR[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpSlopeGr[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpSlopeGb[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpSlopeB[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpLumaThrR[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpLumaThrGr[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpLumaThrGb[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpLumaThrB[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpLowOffsetR[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpLowOffsetGr[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpLowOffsetGb[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpLowOffsetB[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpHighOffsetR[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpHighOffsetGr[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpHighOffsetGb[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 NpHighOffsetB[ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_NR_FILTER_AUTO_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
LumaStr[8] |
参考图像亮度从暗到亮分别调节去噪强度。值越大,亮噪去除强度越大。 取值范围: [0x0, 0x1f] 数据类型: CVI_U8 |
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 |
NpSlopeR |
Noise profile 在 R 通道的斜率 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpSlopeGr |
Noise profile 在 Gr 通道的斜率 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpSlopeGb |
Noise profile 在 Gb 通道的斜率 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpSlopeB |
Noise profile 在 B 通道的斜率 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLumaThrR |
Noise profile 在 R 通道的亮度阈值 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLumaThrGr |
Noise profile 在 Gr 通道的亮度阈值 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLumaThrGb |
Noise profile 在 Gb 通道的亮度阈值 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLumaThrB |
Noise profile 在 B 通道的亮度阈值 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLowOffsetR |
Noise profile 在 R 通道可允许的最小 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLowOffsetGr |
Noise profile 在 Gr 通道可允许的最小 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLowOffsetGb |
Noise profile 在 Gb 通道可允许的最小 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpLowOffsetB |
Noise profile 在 B 通道可允许的最小 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpHighOffsetR |
Noise profile 在 R 通道可允许的最大 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpHighOffsetGb |
Noise profile 在 Gr 通道可允许的最大 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpHighOffsetGr |
Noise profile 在 Gb 通道可允许的最大 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
NpHighOffsetB |
Noise profile 在 B 通道可允许的最大 noise level 取值范围: [0x0, 0x3ff] 数据类型: CVI_U8 |
【注意事项】
无
【相关数据类型及接口】
13.3.6. ISP_NR_FILTER_ATTR_S¶
【说明】
Bayer降噪滤波器属性
【定义】
typedef struct _ISP_NR_FILTER_ATTR_S {
CVI_U8 TuningMode;
ISP_NR_FILTER_MANUAL_ATTR_S stManual;
ISP_NR_FILTER_AUTO_ATTR_S stAuto;
} ISP_NR_FILTER_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
TuningMode |
输出调试方案,辅助调节参数。 8: BNR图像结果。 11: 平坦/边缘侦测图像结果。 12: 垂直边缘侦测图像结果。 13: 水平边缘侦测图像结果。 14: 反对角线边缘侦测图像结果。 15: 对角线边缘侦测图像结果。 取值范围: [0x0, 0xf] 数据类型: CVI_U8 |
stManual |
自动模式属性。 |
stAuto |
手动模式属性。 |
【注意事项】
无
【相关数据类型及接口】
13.3.7. ISP_RLSC_MANUAL_ATTR_S¶
【说明】
Bayer降噪RLSC手动属性
【定义】
typedef struct cviISP_RLSC_MANUAL_ATTR_S {
CVI_U16 RadialStr;
} ISP_RLSC_MANUAL_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
RadialStr |
用来调整RLSC标定后的强度。值越大,越接近标定后的强度。 取值范围: [0x0, 0xfff] 数据类型: CVI_U16 |
【注意事项】
无
【相关数据类型及接口】
CVI_ISP_SetRLSCAttr
CVI_ISP_GetRLSCAttr
13.3.8. ISP_RLSC_AUTO_ATTR_S¶
【说明】
Bayer降噪RLSC自动属性
【定义】
typedef struct cviISP_RLSC_AUTO_ATTR_S {
CVI_U16 RadialStr[ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_RLSC_AUTO_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
RadialStr |
用来调整RLSC标定后的强度。值越大,越接近标定后的强度。 取值范围: [0x0, 0xfff] 数据类型: CVI_U16 |
【注意事项】
无
【相关数据类型及接口】
CVI_ISP_SetRLSCAttr
CVI_ISP_GetRLSCAttr
13.3.9. ISP_RLSC_ATTR_S¶
【说明】
Bayer降噪RLSC属性
【定义】
typedef struct _ISP_RLSC_ATTR_S {
CVI_BOOL RlscEnable;
CVI_U16 RlscCenterX;
CVI_U16 RlscCenterY;
ISP_RLSC_MANUAL_ATTR_S stManual;
ISP_RLSC_AUTO_ATTR_S stAuto;
} ISP_RLSC_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
RlscEnable |
用来调整RLSC标定后的强度。值越大,越接近标定后的强度。 取值范围: [0, 1] 数据类型: CVI_BOOL |
RlscCenterX |
X 中心位置 取值范围: [0x0, 0xfff] 数据类型: CVI_U16 |
RlscCenterY |
Y 中心位置 取值范围: [0x0, 0x7ff] 数据类型: CVI_U16 |
stManual |
Bayer降噪RLSC手动模式属性 |
stAuto |
Bayer降噪RLSC自动模式属性 |
【注意事项】
无
【相关数据类型及接口】
CVI_ISP_SetRLSCAttr
CVI_ISP_GetRLSCAttr