27. FSHDR

27.1. 功能描述

宽动态范围合成相关参数。

27.2. API 参考

27.2.1. CVI_ISP_SetFSHDRAttr

【描述】

设置帧合成属性参数

【语法】

CVI_S32 CVI_ISP_SetFSHDRAttr(VI_PIPE ViPipe, const ISP_FSHDR_ATTR_S *pstFSHDRAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstFSHDRAttr

帧合成属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_FSHDR_ATTR_S stAttr;
CVI_ISP_GetFSHDRAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetFSHDRAttr(ViPipe, &stAttr);

【相关主题】

27.2.2. CVI_ISP_GetFSHDRAttr

【描述】

获取帧合成属性参数

【语法】

CVI_S32 CVI_ISP_GetFSHDRAttr(VI_PIPE ViPipe, ISP_FSHDR_ATTR_S *pstFSHDRAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstFSHDRAttr

帧合成属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

27.3. 数据类型

27.3.1. ISP_FSHDR_ATTR_S

【说明】

定义帧合成属性参数

【定义】

typedef struct _ISP_FSHDR_ATTR_S {
        ISP_OP_TYPE_E enOpType;
        CVI_U8 UpdateInterval; /*Rw; Range:[0, 255]*/
        CVI_BOOL FusionEnable; /*Rw; Range:[0, 1]*/
        CVI_U8 FusionMode; /*Rw; Range:[0, 2]*/
        CVI_U8 FusionDbgMode; /*Rw; Range:[0, 4]*/
        CVI_U8 FusionYsel; /*Rw; Range:[0, 2]*/
        CVI_U8 FusionBldNsel; /*Rw; Range:[0, 1]*/
        CVI_U8 FusionBldDsel; /*Rw; Range:[0, 1]*/
        CVI_U16 FusionDS1Th; /*Rw; Range:[0, 4095]*/
        CVI_U8 FusionDS1Step; /*Rw; Range:[0, 255]*/
        CVI_U8 FusionDS1Lb; /*Rw; Range:[0, 255]*/
        CVI_U16 FusionDS2Th; /*Rw; Range:[0, 4095]*/
        CVI_U8 FusionDS2Step; /*Rw; Range:[0, 255]*/
        CVI_U8 FusionDS2Lb; /*Rw; Range:[0, 255]*/
        CVI_U16 LENormBldRange; /*Rw; Range:[0, 4095]*/
        CVI_U16 LENormBldP0; /*Rw; Range:[0, 4095]*/
        CVI_U16 SENormBldRange; /*Rw; Range:[0, 4095]*/
        CVI_U16 SENormBldP0; /*Rw; Range:[0, 4095]*/
        CVI_U16 LEDynmBldRange; /*Rw; Range:[0, 4095]*/
        CVI_U16 LEDynmBldP0; /*Rw; Range:[0, 4095]*/
        CVI_U16 SEDynmBldRange; /*Rw; Range:[0, 4095]*/
        CVI_U16 SEDynmBldP0; /*Rw; Range:[0, 4095]*/
        CVI_U16 NDBldLumTh; /*Rw; Range:[0, 256]*/
        CVI_U8 NDBldDarkWt; /*Rw; Range:[0, 16]*/
        CVI_U8 NDBldDiffLut[FS_DIFF_DW_LENGTH]; /*Rw; Range:[0, 16]*/
        CVI_BOOL MCurveEnable; /*Rw; Range:[0, 1]*/
        ISP_MCURVE_MODE_E MCurveMode;
        CVI_U16 MCurveAutoSEMin; /*Rw; Range:[0, 4095]*/
        CVI_U16 MCurveManualSEMax; /*Rw; Range:[0, 4095]*/
        CVI_U8 MCurveSmooth; /*Rw; Range:[0, 255]*/
        CVI_U16 MCurveDelta; /*Rw; Range:[0, 8560]*/
        CVI_U16 MCurveX1; /*Rw; Range:[0, 65535]*/
        CVI_U8 MCurveBldRatio; /*Rw; Range:[0, 10]*/
        CVI_U16 MCurveXMaxRatio; /*Rw; Range:[0, 256]*/
        CVI_U8 MCurveYsel; /*Rw; Range:[0, 2]*/
        CVI_U8 MCurveYvWet; /*Rw; Range:[0, 8]*/
        CVI_U8 MCurveFlumWet[FS_FLUMW_LUT_LENGTH]; /*Rw; Range:[0, 255]*/
} ISP_FSHDR_ATTR_S;

【成员】

成员名称

描述

enOpType

工作类型

OP_TYPE_AUTO:自动模式

OP_TYPE_MANUAL:手动模式

数据类型: ISP_OP_TYPE_E

UpdateInterval

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

取值范围: [0, 255]

数据类型: CVI_U8

FusionEnable

HDR Fusion使能。HDR mode设置1;linear mode设置0。

取值范围: [0, 1]

数据类型: CVI_BOOL

FusionMode

选择输出结果。

0:输出HDR Fusion的结果;

1:输出SE结果;

2:输出LE结果;

取值范围: [0, 2]

数据类型: CVI_U8

FusionDbgMode

设置调试模式

取值范围: [0, 4]

数据类型: CVI_U8

FusionYsel

用Bayer计算Luma的方式,0: RGB的平均值, 1: G的平均值, 2: 原始Bayer值

取值范围: [0, 2]

数据类型: CVI_U8

FusionBldNsel

计算静态融合权重的标准, 0: 以LE的亮度为标准计算静态融合权重,1: 以SE的亮度为标准计算静态融合权重

取值范围: [0, 1]

数据类型: CVI_U8

FusionBldDsel

计算动态融合权重的标准,0: 以LE的亮度为标准计算动态融合权重,1: 以SE的亮度为标准计算动态融合权重

取值范围: [0, 1]

数据类型: CVI_U8

FusionDS1Th

控制SE的Y和raw开始融合的范围,值越小,开始融合的亮度越低,越少的暗区被降低饱和度

取值范围: [0, 4095]

数据类型: CVI_U16

FusionDS1Step

控制SE的Y和raw融合的过渡区间,值越小,过渡越平缓

取值范围: [0, 255]

数据类型: CVI_U8

FusionDS1Lb

控制SE的Y和raw的融合权重,值越小,暗区使用更多Y,暗区饱和度越低

取值范围: [0, 255]

数据类型: CVI_U8

FusionDS2Th

控制LE的Y和raw开始融合的范围,值越小,开始融合的亮度越低,越少的暗区被降低饱和度

取值范围: [0, 4095]

数据类型: CVI_U16

FusionDS2Step

控制LE的Y和raw融合的过渡区间,值越小,过渡越平缓

取值范围: [0, 255]

数据类型: CVI_U8

FusionDS2Lb

控制LE的Y和raw的融合权重,值越小,暗区使用更多Y,暗区饱和度越低

取值范围: [0, 255]

数据类型: CVI_U8

LENormBldRange

LE Normal blending curve range,静止区长短曝融合时,以长曝为基准的过渡区域范围。高于LENormBldP0+ LENormBldRange的图像数据将只选择短曝光数据合成HDR图像。

取值范围: [0, 4095]

数据类型: CVI_U16

LENormBldP0

LE Normal blending curve P0,静止区长短曝融合时,以长曝为基准的临界值,低于该临界值的图像数据将只选择长曝光数据合成HDR图像。

取值范围: [0, 4095]

数据类型: CVI_U16

SENormBldRange

SE Normal blending curve range,静止区长短曝融合时,以短曝为基准的过渡区域范围。高于SENormBldP0+SENormBldRange的图像数据将只选择短曝光数据合成HDR图像。

取值范围: [0, 4095]

数据类型: CVI_U16

SENormBldP0

SE Normal blending curve P0,静止区长短曝融合时,以短曝为基准的临界值,低于该临界值的图像数据将只选择长曝光数据合成HDR图像。

取值范围: [0, 4095]

数据类型: CVI_U16

LEDynmBldRange

LE Dynamic blending curve range,运动区长短曝融合时,以长曝为基准的过渡区域范围。高于LENormBldP0+ LENormBldRange的图像数据将只选择短曝光数据合成HDR图像。

取值范围: [0, 4095]

数据类型: CVI_U16

LEDynmBldP0

LE Dynamic blending curve P0,运动区长短曝融合时,以长曝为基准的临界值,低于该临界值的图像数据将只选择长曝光数据合成HDR图像。

取值范围: [0, 4095]

数据类型: CVI_U16

SEDynmBldRange

SE Dynamic blending curve range,运动区长短曝融合时,以短曝为基准的过渡区域范围。高于SENormBldP0+ SENormBldRange的图像数据将只选择短曝光数据合成HDR图像。

取值范围: [0, 4095]

数据类型: CVI_U16

SEDynmBldP0

SE Dynamic blending curve P0,运动区长短曝融合时,以短曝为基准的临界值,低于该临界值的图像数据将只选择长曝光数据合成HDR图像。

取值范围: [0, 4095]

数据类型: CVI_U16

NDBldLumTh

动静区权重融合的亮度阈值,值越小,对越暗区的运动越敏感

取值范围: [0, 256]

数据类型: CVI_U16

NDBldDarkWt

动静区权重融合的最小值,值越大,最暗区使用的动态权重越大

取值范围: [0, 16]

数据类型: CVI_U8

NDBldDiffLut

动静区权重融合的查找表,值越大,对运动区越敏感,动态权重越大

取值范围: [0, 16]

数据类型: CVI_U8

MCurveEnable

Map Curve的开关。HDR mode设置1;linear mode设置0。

取值范围: [0, 1]

数据类型: CVI_BOOL

MCurveMode

Auto Map Curve的控制开关。0: Auto模式,自动生成Curve,1:Manual模式,设置MCurveManualSEMax调整Curve最大值。

数据类型: ISP_MCURVE_MODE_E

MCurveAutoSEMin

限制自动模式下参与计算的短帧最大值的下限,可以改善短帧过暗时对画面亮度抬升过大的问题

取值范围: [0, 4095]

数据类型: CVI_U16

MCurveManualSEMax

手动设置Curve横坐标最大值,在Manual模式下使用。值越小,全局提亮程度越大。

取值范围: [0, 4095]

数据类型: CVI_U16

MCurveSmooth

调整 mcurve 变化的快慢,值越大越慢

取值范围: [0, 255]

数据类型: CVI_U8

MCurveDelta

决定Map Curve暗部的斜率。值越小,暗部提亮越明显。

取值范围: [0, 8560]

数据类型: CVI_U16

MCurveX1

对于亮度大于X1的亮区做对比度保护。值越小,对比度保护区域越大。

取值范围: [0, 65535]

数据类型: CVI_U16

MCurveBldRatio

亮区对比度保护程度。值越小,保护程度越大。0: linear, 10: curve

取值范围: [0, 10]

数据类型: CVI_U8

MCurveXMaxRatio

调整暗区提亮程度。在Auto模式下使用。128表示Map Curve完全自动生成。小于128时,值越小,暗区提亮程度越大。大于128时,值越大,画面整体压暗程度越大。

取值范围: [0, 256]

数据类型: CVI_U16

MCurveYsel

用Bayer计算Luma的方式,0: RGB的平均值( 4G+2B+2R), 1: G的平均值(4G), 2: 原始Bayer值

取值范围: [0, 2]

数据类型: CVI_U8

MCurveYvWet

Y和LocalMax融合的权重,值越大越偏向LocalMax, 0:全取y,8:全取v

取值范围: [0, 8]

数据类型: CVI_U8

MCurveFlumWet

Y和Raw融合的权重表,值越大越偏向Raw, 0: 全用ymean

取值范围: [0, 255]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】