16. TNR

16.1. 功能描述

在 YUV Domain 进行的时域去噪算法,又称为 3DNR。

16.2. API 参考

16.2.1. CVI_ISP_SetTNRAttr

【描述】

设置TNR 属性参数

【语法】

CVI_S32 CVI_ISP_SetTNRAttr(VI_PIPE ViPipe, const ISP_TNR_ATTR_S *pstTNRAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstTNRAttr

TNR 属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_TNR_ATTR_S stAttr;
CVI_ISP_GetTNRAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetTNRAttr(ViPipe, &stAttr);

【相关主题】

16.2.2. CVI_ISP_GetTNRAttr

【描述】

获取TNR 属性参数

【语法】

CVI_S32 CVI_ISP_GetTNRAttr(VI_PIPE ViPipe, ISP_TNR_ATTR_S *pstTNRAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstTNRAttr

TNR 属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

16.2.3. CVI_ISP_SetTNRMvAttr

【描述】

设置TNR MV 属性参数

【语法】

CVI_S32 CVI_ISP_SetTNRMvAttr(VI_PIPE ViPipe, const ISP_TNR_MV_ATTR_S *pstTNRMvAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstTNRMvAttr

TNR MV 属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_TNR_MV_ATTR_S stAttr;
CVI_ISP_GetTNRMvAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetTNRMvAttr(ViPipe, &stAttr);

【相关主题】

16.2.4. CVI_ISP_GetTNRMvAttr

【描述】

获取TNR MV 属性参数

【语法】

CVI_S32 CVI_ISP_GetTNRMvAttr(VI_PIPE ViPipe, ISP_TNR_MV_ATTR_S *pstTNRMvAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstTNRMvAttr

TNR MV 属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

16.2.5. CVI_ISP_SetTNRPsAttr

【描述】

设置TNR PS 属性参数

【语法】

CVI_S32 CVI_ISP_SetTNRPsAttr(VI_PIPE ViPipe, const ISP_TNR_PS_ATTR_S *pstTNRPsAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstTNRPsAttr

TNR PS 属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_TNR_PS_ATTR_S stAttr;
CVI_ISP_GetTNRPsAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetTNRPsAttr(ViPipe, &stAttr);

【相关主题】

16.2.6. CVI_ISP_GetTNRPsAttr

【描述】

获取TNR PS 属性参数

【语法】

CVI_S32 CVI_ISP_GetTNRPsAttr(VI_PIPE ViPipe, ISP_TNR_PS_ATTR_S *pstTNRPsAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstTNRPsAttr

TNR PS 属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

16.2.7. CVI_ISP_SetTNRNrAttr

【描述】

设置TNR NR 属性参数

【语法】

CVI_S32 CVI_ISP_SetTNRNrAttr(VI_PIPE ViPipe, const ISP_TNR_NR_ATTR_S *pstTNRNrAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstTNRNrAttr

TNR NR 属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_TNR_NR_ATTR_S stAttr;
CVI_ISP_GetTNRNrAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetTNRNrAttr(ViPipe, &stAttr);

【相关主题】

16.2.8. CVI_ISP_GetTNRNrAttr

【描述】

获取TNR NR 属性参数

【语法】

CVI_S32 CVI_ISP_GetTNRNrAttr(VI_PIPE ViPipe, ISP_TNR_NR_ATTR_S *pstTNRNrAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstTNRNrAttr

TNR NR 属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

16.3. 数据类型

16.3.1. ISP_TNR_MANUAL_ATTR_S

【说明】

定义手动TNR 属性参数

【定义】

typedef struct _ISP_TNR_MANUAL_ATTR_S {
        CVI_U8 DyBlurStr; /*Rw; Range:[0, 3]*/
        CVI_U8 DyBlurYWt[TNR_STATUS_NUM]; /*Rw; Range:[0, 15]*/
} ISP_TNR_MANUAL_ATTR_S;

【成员】

成员名称

描述

DyBlurStr

None

取值范围: [0, 3]

数据类型: CVI_U8

DyBlurYWt

调节 Y 通道时域滤波强度

取值范围: [0, 15]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

16.3.2. ISP_TNR_AUTO_ATTR_S

【说明】

定义自动TNR 属性参数

【定义】

typedef struct _ISP_TNR_AUTO_ATTR_S {
        CVI_U8 DyBlurStr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 3]*/
        CVI_U8 DyBlurYWt[TNR_STATUS_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 15]*/
} ISP_TNR_AUTO_ATTR_S;

【成员】

成员名称

描述

DyBlurStr

None

取值范围: [0, 3]

数据类型: CVI_U8

DyBlurYWt

调节 Y 通道时域滤波强度

取值范围: [0, 15]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

16.3.3. ISP_TNR_ATTR_S

【说明】

定义TNR 属性参数

【定义】

typedef struct _ISP_TNR_ATTR_S {
        CVI_BOOL Enable; /*Rw; Range:[0, 1]*/
        ISP_OP_TYPE_E enOpType;
        CVI_U8 updateInterval; /*Rw; Range:[0, 255]*/
        CVI_U8 DbgMode; /*Rw; Range:[0, 8]*/
        CVI_U8 DyBlurUVWt; /*Rw; Range:[0, 15]*/
        CVI_U8 DyBlurJndTh; /*Rw; Range:[0, 31]*/
        ISP_TNR_MANUAL_ATTR_S stManual;
        ISP_TNR_AUTO_ATTR_S stAuto;
} ISP_TNR_ATTR_S;

【成员】

成员名称

描述

Enable

模块使能开关

取值范围: [0, 1]

数据类型: CVI_BOOL

enOpType

工作类型

OP_TYPE_AUTO:自动模式

OP_TYPE_MANUAL:手动模式

数据类型: ISP_OP_TYPE_E

updateInterval

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

取值范围: [0, 255]

数据类型: CVI_U8

DbgMode

设置 debug模式,用于输出可视化辅助信息。

取值范围: [0, 8]

数据类型: CVI_U8

DyBlurUVWt

调节 UV 通道时域滤波强度

取值范围: [0, 15]

数据类型: CVI_U8

DyBlurJndTh

None

取值范围: [0, 31]

数据类型: CVI_U8

stManual

手动参数

stAuto

自动参数

【注意事项】

【相关数据类型及接口】

16.3.4. ISP_TNR_MV_MANUAL_ATTR_S

【说明】

定义手动TNR MV 属性参数

【定义】

typedef struct _ISP_TNR_MV_MANUAL_ATTR_S {
        CVI_U8 StableIntensity; /*Rw; Range:[0, 8]*/
        CVI_U8 L0YPSSBlur; /*Rw; Range:[0, 255]*/
        CVI_U16 AcbdSadAdj[TNR_ACBD_RANK]; /*Rw; Range:[0, 16383]*/
        CVI_U8 AcbdEdgeAdj[TNR_ACBD_RANK]; /*Rw; Range:[0, 16]*/
        CVI_U8 LumaJndTh[TNR_LUMA_RANK]; /*Rw; Range:[0, 255]*/
        CVI_U8 LumaJndRatio; /*Rw; Range:[0, 255]*/
        CVI_U8 JndSadWt; /*Rw; Range:[0, 15]*/
        CVI_U16 WarpB0[TNR_LUMA_RANK]; /*Rw; Range:[0, 16383]*/
        CVI_U8 WarpEdge[TNR_LUMA_RANK]; /*Rw; Range:[0, 63]*/
        CVI_U16 WarpBase[TNR_LUMA_RANK]; /*Rw; Range:[0, 16383]*/
        CVI_U16 WarpStd[TNR_LUMA_RANK]; /*Rw; Range:[0, 16383]*/
} ISP_TNR_MV_MANUAL_ATTR_S;

【成员】

成员名称

描述

StableIntensity

稳定性系数,控制运动后画面变稳定的速度,值越大,画面越稳定

取值范围: [0, 8]

数据类型: CVI_U8

L0YPSSBlur

None

取值范围: [0, 255]

数据类型: CVI_U8

AcbdSadAdj

细调节不同光流值的置信度惩罚参数,对应的值越大,越不信任该光流值。对应关系同AcbdEdgeAdj

取值范围: [0, 16383]

数据类型: CVI_U16

AcbdEdgeAdj

粗调节不同光流值的惩罚系数,对应的值越大,越不信任该光流值。AcbdEdgeAdj[0]~AcbdEdgeAdj[3]分别控制当前帧光流值、前一帧当前块光流值、前一帧非当前块光流值、随机光流值的惩罚值

取值范围: [0, 16]

数据类型: CVI_U8

LumaJndTh

自动调整光流惩罚值的亮度阈值

取值范围: [0, 255]

数据类型: CVI_U8

LumaJndRatio

自动调整光流惩罚值的比例,255为1倍不调整,小于255则等比例缩小

取值范围: [0, 255]

数据类型: CVI_U8

JndSadWt

None

取值范围: [0, 15]

数据类型: CVI_U8

WarpB0

当前后帧差异小于WarpB0时,认为该区域为静止区。值越大,越容易判定为静止

取值范围: [0, 16383]

数据类型: CVI_U16

WarpEdge

细节区域的噪声增加权重参数。值越大对噪声容忍程度越大,此时受噪声扰动的静止区域较容易被判定为静止状态。值过大会使微小移动区域被误判为静止。可以分亮度设置不同的值

取值范围: [0, 63]

数据类型: CVI_U8

WarpBase

平坦区域的噪声偏移量参数

取值范围: [0, 16383]

数据类型: CVI_U16

WarpStd

控制运动状态判断的基数,值越大,对噪声的容忍程度越大,越不容易被判断为运动区。可以分亮度设置不同的值

取值范围: [0, 16383]

数据类型: CVI_U16

【注意事项】

【相关数据类型及接口】

16.3.5. ISP_TNR_MV_AUTO_ATTR_S

【说明】

定义自动TNR MV 属性参数

【定义】

typedef struct _ISP_TNR_MV_AUTO_ATTR_S {
        CVI_U8 StableIntensity[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 8]*/
        CVI_U8 L0YPSSBlur[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U16 AcbdSadAdj[TNR_ACBD_RANK][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 16383]*/
        CVI_U8 AcbdEdgeAdj[TNR_ACBD_RANK][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 16]*/
        CVI_U8 LumaJndTh[TNR_LUMA_RANK][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 LumaJndRatio[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 JndSadWt[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 15]*/
        CVI_U16 WarpB0[TNR_LUMA_RANK][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 16383]*/
        CVI_U8 WarpEdge[TNR_LUMA_RANK][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 63]*/
        CVI_U16 WarpBase[TNR_LUMA_RANK][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 16383]*/
        CVI_U16 WarpStd[TNR_LUMA_RANK][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 16383]*/
} ISP_TNR_MV_AUTO_ATTR_S;

【成员】

成员名称

描述

StableIntensity

稳定性系数,控制运动后画面变稳定的速度,值越大,画面越稳定

取值范围: [0, 8]

数据类型: CVI_U8

L0YPSSBlur

None

取值范围: [0, 255]

数据类型: CVI_U8

AcbdSadAdj

细调节不同光流值的置信度惩罚参数,对应的值越大,越不信任该光流值。对应关系同AcbdEdgeAdj

取值范围: [0, 16383]

数据类型: CVI_U16

AcbdEdgeAdj

粗调节不同光流值的惩罚系数,对应的值越大,越不信任该光流值。AcbdEdgeAdj[0]~AcbdEdgeAdj[3]分别控制当前帧光流值、前一帧当前块光流值、前一帧非当前块光流值、随机光流值的惩罚值

取值范围: [0, 16]

数据类型: CVI_U8

LumaJndTh

自动调整光流惩罚值的亮度阈值

取值范围: [0, 255]

数据类型: CVI_U8

LumaJndRatio

自动调整光流惩罚值的比例,255为1倍不调整,小于255则等比例缩小

取值范围: [0, 255]

数据类型: CVI_U8

JndSadWt

None

取值范围: [0, 15]

数据类型: CVI_U8

WarpB0

当前后帧差异小于WarpB0时,认为该区域为静止区。值越大,越容易判定为静止

取值范围: [0, 16383]

数据类型: CVI_U16

WarpEdge

细节区域的噪声增加权重参数。值越大对噪声容忍程度越大,此时受噪声扰动的静止区域较容易被判定为静止状态。值过大会使微小移动区域被误判为静止。可以分亮度设置不同的值

取值范围: [0, 63]

数据类型: CVI_U8

WarpBase

平坦区域的噪声偏移量参数

取值范围: [0, 16383]

数据类型: CVI_U16

WarpStd

控制运动状态判断的基数,值越大,对噪声的容忍程度越大,越不容易被判断为运动区。可以分亮度设置不同的值

取值范围: [0, 16383]

数据类型: CVI_U16

【注意事项】

【相关数据类型及接口】

16.3.6. ISP_TNR_MV_ATTR_S

【说明】

定义TNR MV 属性参数

【定义】

typedef struct _ISP_TNR_MV_ATTR_S {
        CVI_BOOL NullFlowEn; /*Rw; Range:[0, 1]*/
        ISP_TNR_MV_MANUAL_ATTR_S stManual;
        ISP_TNR_MV_AUTO_ATTR_S stAuto;
} ISP_TNR_MV_ATTR_S;

【成员】

成员名称

描述

NullFlowEn

None

取值范围: [0, 1]

数据类型: CVI_BOOL

stManual

手动参数

stAuto

自动参数

【注意事项】

【相关数据类型及接口】

16.3.7. ISP_TNR_PS_MANUAL_ATTR_S

【说明】

定义手动TNR PS 属性参数

【定义】

typedef struct _ISP_TNR_PS_MANUAL_ATTR_S {
        CVI_U8 JndStdRange[TNR_STATUS_CHANGE]; /*Rw; Range:[0, 32]*/
        CVI_U8 WarpStdRange[TNR_STATUS_CHANGE]; /*Rw; Range:[0, 32]*/
        CVI_U8 NbrBldRatio[TNR_STATUS_CHANGE]; /*Rw; Range:[0, 255]*/
        CVI_U16 StillRegionTh[TNR_STATUS_CHANGE]; /*Rw; Range:[0, 65535]*/
        CVI_U8 FlowJndTh; /*Rw; Range:[0, 63]*/
} ISP_TNR_PS_MANUAL_ATTR_S;

【成员】

成员名称

描述

JndStdRange

None

取值范围: [0, 32]

数据类型: CVI_U8

WarpStdRange

根据运动补偿建立噪声模型时,控制运动状态判断的系数。WarpStdRange[0]:控制静止区与转换区的系数,值越大,越多的区域被判断为静止区;WarpStdRange[1]:控制转换区与运动区的系数,值越大,越多的区域被判断为转换区。WarpStdRange[0]需小于WarpStdRange[1]

取值范围: [0, 32]

数据类型: CVI_U8

NbrBldRatio

None

取值范围: [0, 255]

数据类型: CVI_U8

StillRegionTh

平坦区、大边缘区的划分阈值。特征值小于StillRegionTh[0]的区域认为是平坦区;特征值大于StillRegionTh[1]的区域认为是大边缘区;其余部分认为是纹理区。这部分的设定会影响静止区中滤波的处理

取值范围: [0, 65535]

数据类型: CVI_U16

FlowJndTh

将周围光流值长度>FlowJndTh的静止区,重定义为非静止区

取值范围: [0, 63]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

16.3.8. ISP_TNR_PS_AUTO_ATTR_S

【说明】

定义自动TNR PS 属性参数

【定义】

typedef struct _ISP_TNR_PS_AUTO_ATTR_S {
        CVI_U8 JndStdRange[TNR_STATUS_CHANGE][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 32]*/
        CVI_U8 WarpStdRange[TNR_STATUS_CHANGE][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 32]*/
        CVI_U8 NbrBldRatio[TNR_STATUS_CHANGE][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U16 StillRegionTh[TNR_STATUS_CHANGE][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 65535]*/
        CVI_U8 FlowJndTh[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 63]*/
} ISP_TNR_PS_AUTO_ATTR_S;

【成员】

成员名称

描述

JndStdRange

None

取值范围: [0, 32]

数据类型: CVI_U8

WarpStdRange

根据运动补偿建立噪声模型时,控制运动状态判断的系数。WarpStdRange[0]:控制静止区与转换区的系数,值越大,越多的区域被判断为静止区;WarpStdRange[1]:控制转换区与运动区的系数,值越大,越多的区域被判断为转换区。WarpStdRange[0]需小于WarpStdRange[1]

取值范围: [0, 32]

数据类型: CVI_U8

NbrBldRatio

None

取值范围: [0, 255]

数据类型: CVI_U8

StillRegionTh

平坦区、大边缘区的划分阈值。特征值小于StillRegionTh[0]的区域认为是平坦区;特征值大于StillRegionTh[1]的区域认为是大边缘区;其余部分认为是纹理区。这部分的设定会影响静止区中滤波的处理

取值范围: [0, 65535]

数据类型: CVI_U16

FlowJndTh

将周围光流值长度>FlowJndTh的静止区,重定义为非静止区

取值范围: [0, 63]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

16.3.9. ISP_TNR_PS_ATTR_S

【说明】

定义TNR PS 属性参数

【定义】

typedef struct _ISP_TNR_PS_ATTR_S {
        CVI_BOOL SadDebiasEN; /*Rw; Range:[0, 1]*/
        CVI_U8 SadLpfMode; /*Rw; Range:[0, 3]*/
        ISP_TNR_PS_MANUAL_ATTR_S stManual;
        ISP_TNR_PS_AUTO_ATTR_S stAuto;
} ISP_TNR_PS_ATTR_S;

【成员】

成员名称

描述

SadDebiasEN

None

取值范围: [0, 1]

数据类型: CVI_BOOL

SadLpfMode

None

取值范围: [0, 3]

数据类型: CVI_U8

stManual

手动参数

stAuto

自动参数

【注意事项】

【相关数据类型及接口】

16.3.10. ISP_TNR_NR_MANUAL_ATTR_S

【说明】

定义手动TNR NR 属性参数

【定义】

typedef struct _ISP_TNR_NR_MANUAL_ATTR_S {
        CVI_U8 L0YBlurStr[TNR_STATUS_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L0YSigmaStr[TNR_STATUS_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L0UVSigmaStr[TNR_STATUS_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U16 L0YGardBlurTh; /*Rw; Range:[0, 65535]*/
        CVI_U8 L0YGardBlurStr; /*Rw; Range:[0, 255]*/
        CVI_U8 L1PFTStr[TNR_FREQ_RANK]; /*Rw; Range:[0, 255]*/
        CVI_U16 L1SpaGlobalStr; /*Rw; Range:[0, 65535]*/
        CVI_U16 L1TmpGlobalStr; /*Rw; Range:[0, 65535]*/
        CVI_U8 L1LumaAdj[TNR_LUMA_RANK]; /*Rw; Range:[0, 255]*/
        CVI_U8 L1FSJndAdj[TNR_STATUS_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L1FTJndAdj[TNR_STATUS_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L1FSFreAdj[TNR_FREQ_RANK]; /*Rw; Range:[0, 255]*/
        CVI_U8 L1FTFreAdj[TNR_FREQ_RANK]; /*Rw; Range:[0, 255]*/
        CVI_U8 L1FTLumaStr; /*Rw; Range:[0, 255]*/
        CVI_U8 L1PFTDamp[TNR_STATUS_CHANGE]; /*Rw; Range:[0, 255]*/
        CVI_U8 L2YDampStr[TNR_STATUS_CHANGE]; /*Rw; Range:[0, 255]*/
        CVI_U8 L2YLut[TNR_DETAIL_RANK]; /*Rw; Range:[0, 127]*/
        CVI_U8 L2UVDampStr[TNR_STATUS_CHANGE]; /*Rw; Range:[0, 255]*/
        CVI_U8 L2UVLut[TNR_DETAIL_RANK]; /*Rw; Range:[0, 127]*/
} ISP_TNR_NR_MANUAL_ATTR_S;

【成员】

成员名称

描述

L0YBlurStr

L0滤波,Y通道第一级空域滤波强度。值越大,滤波强度越强。L0YBlurStr[0]~L0YBlurStr[2]分别对应静止区、转换区、运动区的滤波强度

取值范围: [0, 255]

数据类型: CVI_U8

L0YSigmaStr

L0滤波,Y通道第一级时域滤波强度。值越大,滤波强度越强。L0YSigmaStr[0]~L0YSigmaStr[2]分别对应静止区、转换区、运动区的滤波强度

取值范围: [0, 255]

数据类型: CVI_U8

L0UVSigmaStr

L0滤波,UV通道第一级时域滤波强度。参数趋势同L0YSigmaStr

取值范围: [0, 255]

数据类型: CVI_U8

L0YGardBlurTh

None

取值范围: [0, 65535]

数据类型: CVI_U16

L0YGardBlurStr

None

取值范围: [0, 255]

数据类型: CVI_U8

L1PFTStr

L1P滤波,静止区的滤波强度。可以分不同的频率设置不同的强度,值越大,滤波强度越强。L1PFTStr[0]~L1PFTStr[3]表示从低频率到高频率的滤波强度

取值范围: [0, 255]

数据类型: CVI_U8

L1SpaGlobalStr

L1滤波,空域滤波强度基值。值越大,滤波强度越强

取值范围: [0, 65535]

数据类型: CVI_U16

L1TmpGlobalStr

L1滤波,时域滤波强度基值。值越大,滤波强度越强

取值范围: [0, 65535]

数据类型: CVI_U16

L1LumaAdj

L1滤波,分亮度设置不同的滤波强度,时域滤波和空域滤波共用同一组设定。值越大,滤波强度越强。L1LumaAdj[0]~L1LumaAdj[7]表示从暗区到亮区的滤波强度

取值范围: [0, 255]

数据类型: CVI_U8

L1FSJndAdj

L1滤波,空域滤波分运动状态设置不同的滤波强度。值越大,滤波强度越强。L1FSJndAdj[0]~L1FSJndAdj[2]分别表示静止区、转换区、运动区的滤波强度

取值范围: [0, 255]

数据类型: CVI_U8

L1FTJndAdj

L1滤波,时域滤波分运动状态设置不同的滤波强度。参数趋势同L1FSJndAdj

取值范围: [0, 255]

数据类型: CVI_U8

L1FSFreAdj

L1滤波,空域滤波分频率设置不同的滤波强度。值越大,滤波强度越强。L1FSFreAdj[0]~L1FSFreAdj[3]表示从低频到高频的滤波强度

取值范围: [0, 255]

数据类型: CVI_U8

L1FTFreAdj

L1滤波,时域滤波分频率设置不同的滤波强度。参数趋势同L1FSFreAdj

取值范围: [0, 255]

数据类型: CVI_U8

L1FTLumaStr

None

取值范围: [0, 255]

数据类型: CVI_U8

L1PFTDamp

L1P滤波,转换区和运动区的滤波强度系数。值越大,滤波强度越强,即越接近静止区的滤波强度,也越容易造成拖影

取值范围: [0, 255]

数据类型: CVI_U8

L2YDampStr

L2滤波,Y通道降噪分运动状态设置不同的滤波强度。L2YDampStr[0]~L2YDampStr[1]分别表示转换区、运动区的滤波强度

取值范围: [0, 255]

数据类型: CVI_U8

L2YLut

L2滤波,Y通道降噪强度控制。值越小,残留的时域噪声越小。值过小,容易造成拖影以及噪声收敛慢

取值范围: [0, 127]

数据类型: CVI_U8

L2UVDampStr

L2后滤波,UV通道降噪分运动状态设置不同的滤波强度。参数趋势同L2YDampStr

取值范围: [0, 255]

数据类型: CVI_U8

L2UVLut

L2后滤波,UV通道降噪强度控制。值越小,残留的时域噪声越小

取值范围: [0, 127]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

16.3.11. ISP_TNR_NR_AUTO_ATTR_S

【说明】

定义自动TNR NR 属性参数

【定义】

typedef struct _ISP_TNR_NR_AUTO_ATTR_S {
        CVI_U8 L0YBlurStr[TNR_STATUS_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L0YSigmaStr[TNR_STATUS_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L0UVSigmaStr[TNR_STATUS_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U16 L0YGardBlurTh[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 65535]*/
        CVI_U8 L0YGardBlurStr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L1PFTStr[TNR_FREQ_RANK][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U16 L1SpaGlobalStr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 65535]*/
        CVI_U16 L1TmpGlobalStr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 65535]*/
        CVI_U8 L1LumaAdj[TNR_LUMA_RANK][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L1FSJndAdj[TNR_STATUS_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L1FTJndAdj[TNR_STATUS_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L1FSFreAdj[TNR_FREQ_RANK][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L1FTFreAdj[TNR_FREQ_RANK][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L1FTLumaStr[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L1PFTDamp[TNR_STATUS_CHANGE][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L2YDampStr[TNR_STATUS_CHANGE][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L2YLut[TNR_DETAIL_RANK][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 127]*/
        CVI_U8 L2UVDampStr[TNR_STATUS_CHANGE][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 L2UVLut[TNR_DETAIL_RANK][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 127]*/
} ISP_TNR_NR_AUTO_ATTR_S;

【成员】

成员名称

描述

L0YBlurStr

L0滤波,Y通道第一级空域滤波强度。值越大,滤波强度越强。L0YBlurStr[0]~L0YBlurStr[2]分别对应静止区、转换区、运动区的滤波强度

取值范围: [0, 255]

数据类型: CVI_U8

L0YSigmaStr

L0滤波,Y通道第一级时域滤波强度。值越大,滤波强度越强。L0YSigmaStr[0]~L0YSigmaStr[2]分别对应静止区、转换区、运动区的滤波强度

取值范围: [0, 255]

数据类型: CVI_U8

L0UVSigmaStr

L0滤波,UV通道第一级时域滤波强度。参数趋势同L0YSigmaStr

取值范围: [0, 255]

数据类型: CVI_U8

L0YGardBlurTh

None

取值范围: [0, 65535]

数据类型: CVI_U16

L0YGardBlurStr

None

取值范围: [0, 255]

数据类型: CVI_U8

L1PFTStr

L1P滤波,静止区的滤波强度。可以分不同的频率设置不同的强度,值越大,滤波强度越强。L1PFTStr[0]~L1PFTStr[3]表示从低频率到高频率的滤波强度

取值范围: [0, 255]

数据类型: CVI_U8

L1SpaGlobalStr

L1滤波,空域滤波强度基值。值越大,滤波强度越强

取值范围: [0, 65535]

数据类型: CVI_U16

L1TmpGlobalStr

L1滤波,时域滤波强度基值。值越大,滤波强度越强

取值范围: [0, 65535]

数据类型: CVI_U16

L1LumaAdj

L1滤波,分亮度设置不同的滤波强度,时域滤波和空域滤波共用同一组设定。值越大,滤波强度越强。L1LumaAdj[0]~L1LumaAdj[7]表示从暗区到亮区的滤波强度

取值范围: [0, 255]

数据类型: CVI_U8

L1FSJndAdj

L1滤波,空域滤波分运动状态设置不同的滤波强度。值越大,滤波强度越强。L1FSJndAdj[0]~L1FSJndAdj[2]分别表示静止区、转换区、运动区的滤波强度

取值范围: [0, 255]

数据类型: CVI_U8

L1FTJndAdj

L1滤波,时域滤波分运动状态设置不同的滤波强度。参数趋势同L1FSJndAdj

取值范围: [0, 255]

数据类型: CVI_U8

L1FSFreAdj

L1滤波,空域滤波分频率设置不同的滤波强度。值越大,滤波强度越强。L1FSFreAdj[0]~L1FSFreAdj[3]表示从低频到高频的滤波强度

取值范围: [0, 255]

数据类型: CVI_U8

L1FTFreAdj

L1滤波,时域滤波分频率设置不同的滤波强度。参数趋势同L1FSFreAdj

取值范围: [0, 255]

数据类型: CVI_U8

L1FTLumaStr

None

取值范围: [0, 255]

数据类型: CVI_U8

L1PFTDamp

L1P滤波,转换区和运动区的滤波强度系数。值越大,滤波强度越强,即越接近静止区的滤波强度,也越容易造成拖影

取值范围: [0, 255]

数据类型: CVI_U8

L2YDampStr

L2滤波,Y通道降噪分运动状态设置不同的滤波强度。L2YDampStr[0]~L2YDampStr[1]分别表示转换区、运动区的滤波强度

取值范围: [0, 255]

数据类型: CVI_U8

L2YLut

L2滤波,Y通道降噪强度控制。值越小,残留的时域噪声越小。值过小,容易造成拖影以及噪声收敛慢

取值范围: [0, 127]

数据类型: CVI_U8

L2UVDampStr

L2后滤波,UV通道降噪分运动状态设置不同的滤波强度。参数趋势同L2YDampStr

取值范围: [0, 255]

数据类型: CVI_U8

L2UVLut

L2后滤波,UV通道降噪强度控制。值越小,残留的时域噪声越小

取值范围: [0, 127]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

16.3.12. ISP_TNR_NR_ATTR_S

【说明】

定义TNR NR 属性参数

【定义】

typedef struct _ISP_TNR_NR_ATTR_S {
        CVI_BOOL L12NrYEN; /*Rw; Range:[0, 1]*/
        CVI_BOOL L2UVNrEN; /*Rw; Range:[0, 1]*/
        CVI_BOOL L2UVMonoEN; /*Rw; Range:[0, 1]*/
        CVI_BOOL DcEn; /*Rw; Range:[0, 1]*/
        ISP_TNR_NR_MANUAL_ATTR_S stManual;
        ISP_TNR_NR_AUTO_ATTR_S stAuto;
} ISP_TNR_NR_ATTR_S;

【成员】

成员名称

描述

L12NrYEN

前中后滤波的Y通道处理使能

0: 关闭

1: 使能

取值范围: [0, 1]

数据类型: CVI_BOOL

L2UVNrEN

后滤波的UV通道处理使能

0: 关闭

1: 使能

取值范围: [0, 1]

数据类型: CVI_BOOL

L2UVMonoEN

None

取值范围: [0, 1]

数据类型: CVI_BOOL

DcEn

None

取值范围: [0, 1]

数据类型: CVI_BOOL

stManual

手动参数

stAuto

自动参数

【注意事项】

【相关数据类型及接口】