14. BNR

14.1. 功能描述

在 Bayer Domain 进行的空域去噪算法。

14.2. API 参考

14.2.1. CVI_ISP_SetBNRAttr

【描述】

设置Bayer降噪参数属性

【语法】

CVI_S32 CVI_ISP_SetBNRAttr(VI_PIPE ViPipe, const ISP_BNR_ATTR_S *pstBNRAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstBNRAttr

Bayer降噪参数属性

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_BNR_ATTR_S stAttr;
CVI_ISP_GetBNRAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetBNRAttr(ViPipe, &stAttr);

【相关主题】

14.2.2. CVI_ISP_GetBNRAttr

【描述】

获取Bayer降噪参数属性

【语法】

CVI_S32 CVI_ISP_GetBNRAttr(VI_PIPE ViPipe, ISP_BNR_ATTR_S *pstBNRAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstBNRAttr

Bayer降噪参数属性

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

14.2.3. CVI_ISP_SetBNRFilterAttr

【描述】

设置Bayer降噪滤波器属性

【语法】

CVI_S32 CVI_ISP_SetBNRFilterAttr(VI_PIPE ViPipe, const ISP_BNR_FILTER_ATTR_S *pstBNRFilterAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstBNRFilterAttr

Bayer降噪滤波器属性

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_BNR_FILTER_ATTR_S stAttr;
CVI_ISP_GetBNRFilterAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetBNRFilterAttr(ViPipe, &stAttr);

【相关主题】

14.2.4. CVI_ISP_GetBNRFilterAttr

【描述】

获取Bayer降噪滤波器属性

【语法】

CVI_S32 CVI_ISP_GetBNRFilterAttr(VI_PIPE ViPipe, ISP_BNR_FILTER_ATTR_S *pstBNRFilterAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstBNRFilterAttr

Bayer降噪滤波器属性

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

14.3. 数据类型

14.3.1. ISP_BNR_MANUAL_ATTR_S

【说明】

定义手动Bayer降噪参数属性

【定义】

typedef struct _ISP_BNR_MANUAL_ATTR_S {
        CVI_U8 FilterKsize; /*Rw; Range:[0, 1]*/
        CVI_U16 PreFilterStdThr1; /*Rw; Range:[0, 1023]*/
        CVI_U16 PreFilterStdThr2; /*Rw; Range:[0, 1023]*/
        CVI_U8 GussianKernelWt[BNR_WEIGHT_LUT_NUM]; /*Rw; Range:[0, 31]*/
        CVI_U8 NrBlendWt; /*Rw; Range:[0, 16]*/
} ISP_BNR_MANUAL_ATTR_S;

【成员】

成员名称

描述

FilterKsize

去噪滤波核大小。

取值范围: [0, 1]

数据类型: CVI_U8

PreFilterStdThr1

NR Weight TH1 in Pre filter BF。

取值范围: [0, 1023]

数据类型: CVI_U16

PreFilterStdThr2

NR Weight TH2 in Pre filter BF。

取值范围: [0, 1023]

数据类型: CVI_U16

GussianKernelWt

Spatial NR Weight LUT。

取值范围: [0, 31]

数据类型: CVI_U8

NrBlendWt

Blend Weight between NLMS&BF。

取值范围: [0, 16]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

14.3.2. ISP_BNR_AUTO_ATTR_S

【说明】

定义自动Bayer降噪参数属性

【定义】

typedef struct _ISP_BNR_AUTO_ATTR_S {
        CVI_U8 FilterKsize[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 1]*/
        CVI_U16 PreFilterStdThr1[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 1023]*/
        CVI_U16 PreFilterStdThr2[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 1023]*/
        CVI_U8 GussianKernelWt[BNR_WEIGHT_LUT_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 31]*/
        CVI_U8 NrBlendWt[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 16]*/
} ISP_BNR_AUTO_ATTR_S;

【成员】

成员名称

描述

FilterKsize

去噪滤波核大小。

取值范围: [0, 1]

数据类型: CVI_U8

PreFilterStdThr1

NR Weight TH1 in Pre filter BF。

取值范围: [0, 1023]

数据类型: CVI_U16

PreFilterStdThr2

NR Weight TH2 in Pre filter BF。

取值范围: [0, 1023]

数据类型: CVI_U16

GussianKernelWt

Spatial NR Weight LUT。

取值范围: [0, 31]

数据类型: CVI_U8

NrBlendWt

Blend Weight between NLMS&BF。

取值范围: [0, 16]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

14.3.3. ISP_BNR_ATTR_S

【说明】

定义Bayer降噪参数属性

【定义】

typedef struct _ISP_BNR_ATTR_S {
        CVI_BOOL Enable; /*Rw; Range:[0, 1]*/
        ISP_OP_TYPE_E enOpType;
        CVI_U8 UpdateInterval; /*Rw; Range:[0, 255]*/
        CVI_BOOL PreFilterEnable; /*Rw; Range:[0, 1]*/
        CVI_BOOL PreFilterModeSel; /*Rw; Range:[0, 1]*/
        ISP_BNR_MANUAL_ATTR_S stManual;
        ISP_BNR_AUTO_ATTR_S stAuto;
} ISP_BNR_ATTR_S;

【成员】

成员名称

描述

Enable

模块使能开关

取值范围: [0, 1]

数据类型: CVI_BOOL

enOpType

工作类型

OP_TYPE_AUTO:自动模式

OP_TYPE_MANUAL:手动模式

数据类型: ISP_OP_TYPE_E

UpdateInterval

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

取值范围: [0, 255]

数据类型: CVI_U8

PreFilterEnable

Pre filter BF 使能

取值范围: [0, 1]

数据类型: CVI_BOOL

PreFilterModeSel

Pre filter BF center mode sel when similar pixel cnt <= 2

取值范围: [0, 1]

数据类型: CVI_BOOL

stManual

手动参数

stAuto

自动参数

【注意事项】

【相关数据类型及接口】

14.3.4. ISP_BNR_FILTER_MANUAL_ATTR_S

【说明】

定义手动Bayer降噪滤波器属性

【定义】

typedef struct _ISP_BNR_FILTER_MANUAL_ATTR_S {
        CVI_U16 Filter1GaussianCurve[BNR_BASE_LUT_NUM]; /*Rw; Range:[0, 1023]*/
        CVI_U16 Filter1LumaOffset[BNR_LUMA_LUT_NUM]; /*Rw; Range:[0, 1023]*/
        CVI_U16 Filter2GaussianCurve[BNR_BASE_LUT_NUM]; /*Rw; Range:[0, 1023]*/
        CVI_U16 Filter2LumaOffset[BNR_LUMA_LUT_NUM]; /*Rw; Range:[0, 1023]*/
} ISP_BNR_FILTER_MANUAL_ATTR_S;

【成员】

成员名称

描述

Filter1GaussianCurve

NLMS base LUT, Gaussian。

取值范围: [0, 1023]

数据类型: CVI_U16

Filter1LumaOffset

NLMS Luma LUT, Signal independen。

取值范围: [0, 1023]

数据类型: CVI_U16

Filter2GaussianCurve

BF base LUT, Gaussian。

取值范围: [0, 1023]

数据类型: CVI_U16

Filter2LumaOffset

BF Luma LUT, Signal independen。

取值范围: [0, 1023]

数据类型: CVI_U16

【注意事项】

【相关数据类型及接口】

14.3.5. ISP_BNR_FILTER_AUTO_ATTR_S

【说明】

定义自动Bayer降噪滤波器属性

【定义】

typedef struct _ISP_BNR_FILTER_AUTO_ATTR_S {
        CVI_U16 Filter1GaussianCurve[BNR_BASE_LUT_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 1023]*/
        CVI_U16 Filter1LumaOffset[BNR_LUMA_LUT_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 1023]*/
        CVI_U16 Filter2GaussianCurve[BNR_BASE_LUT_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 1023]*/
        CVI_U16 Filter2LumaOffset[BNR_LUMA_LUT_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 1023]*/
} ISP_BNR_FILTER_AUTO_ATTR_S;

【成员】

成员名称

描述

Filter1GaussianCurve

NLMS base LUT, Gaussian。

取值范围: [0, 1023]

数据类型: CVI_U16

Filter1LumaOffset

NLMS Luma LUT, Signal independen。

取值范围: [0, 1023]

数据类型: CVI_U16

Filter2GaussianCurve

BF base LUT, Gaussian。

取值范围: [0, 1023]

数据类型: CVI_U16

Filter2LumaOffset

BF Luma LUT, Signal independen。

取值范围: [0, 1023]

数据类型: CVI_U16

【注意事项】

【相关数据类型及接口】

14.3.6. ISP_BNR_FILTER_ATTR_S

【说明】

定义Bayer降噪滤波器属性

【定义】

typedef struct _ISP_BNR_FILTER_ATTR_S {
        CVI_U8 DebugMode; /*Rw; Range:[0, 3]*/
        ISP_BNR_FILTER_MANUAL_ATTR_S stManual;
        ISP_BNR_FILTER_AUTO_ATTR_S stAuto;
} ISP_BNR_FILTER_ATTR_S;

【成员】

成员名称

描述

DebugMode

设置调试模式

取值范围: [0, 3]

数据类型: CVI_U8

stManual

手动参数

stAuto

自动参数

【注意事项】

【相关数据类型及接口】