26. PFR

26.1. Functional Description

colordistortioncorrection, becausedifferentcolor lightrefractive indexdifferent, inheightbright regionandlowbright regionboundary objectaroundeasyshapebecomepurple fringe, usingthismoduleimplementimageremovepurple fringefunction, improveimageedge purple fringecurrentimage

26.2. API Reference

26.2.1. CVI_ISP_SetPFRAttr

[Description]

SetPFRattribute parameters

[Syntax]

CVI_S32 CVI_ISP_SetPFRAttr(VI_PIPE ViPipe, const ISP_PFR_ATTR_S *pstPFRAttr);

[Parameters]

Parameter Name

Description

Input/Output

ViPipe

VI_PIPE No.

Input

pstPFRAttr

PFRattribute parameters

Input

[Return Value]

Return Value

Description

0

Success

Non-zero

Failure, whose value is Error Code.

[Requirements]

  • Header File: cvi_isp.h, cvi_comm_isp.h

  • Library File: libisp.so

[Note]

None

[Example]

VI_PIPE ViPipe = 0;
ISP_PFR_ATTR_S stAttr;
CVI_ISP_GetPFRAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetPFRAttr(ViPipe, &stAttr);

[Related Topics]

26.2.2. CVI_ISP_GetPFRAttr

[Description]

GetPFRattribute parameters

[Syntax]

CVI_S32 CVI_ISP_GetPFRAttr(VI_PIPE ViPipe, ISP_PFR_ATTR_S *pstPFRAttr);

[Parameters]

Parameter Name

Description

Input/Output

ViPipe

VI_PIPE No.

Input

pstPFRAttr

PFRattribute parameters

output

[Return Value]

Return Value

Description

0

Success

Non-zero

Failure, whose value is Error Code.

[Requirements]

  • Header File: cvi_isp.h, cvi_comm_isp.h

  • Library File: libisp.so

[Note]

None

[Example]

None

[Related Topics]

26.3. Data Types

26.3.1. ISP_PFR_MANUAL_ATTR_S

[Description]

Manual DefinitionPFRattribute parameters

[Definition]

typedef struct _ISP_PFR_MANUAL_ATTR_S {
        CVI_U8 LumaIniVal; /*Rw; Range:[0, 255]*/
        CVI_U8 LumLevelTh; /*Rw; Range:[0, 255]*/
        CVI_U8 LumLevelLut[PFR_LUMA_LEVEL]; /*Rw; Range:[0, 255]*/
} ISP_PFR_MANUAL_ATTR_S;

[Members]

Member Name

Description

LumaIniVal

Luma initialvalue. recommendednotneedadjust.

Value Range: [0, 255]

Data Types: CVI_U8

LumLevelTh

Luma threshold. largeinthisthreshold remove in the regionpurple fringeReferenceLumainformation.

Value Range: [0, 255]

Data Types: CVI_U8

LumLevelLut

Luma level insertvalueLUTtable, Generallynotneed tomorechange.

Value Range: [0, 255]

Data Types: CVI_U8

[Precautions]

None

[Related Data Types and Interfaces]

26.3.2. ISP_PFR_AUTO_ATTR_S

[Description]

Automatic DefinitionPFRattribute parameters

[Definition]

typedef struct _ISP_PFR_AUTO_ATTR_S {
        CVI_U8 LumaIniVal[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 LumLevelTh[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 LumLevelLut[PFR_LUMA_LEVEL][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
} ISP_PFR_AUTO_ATTR_S;

[Members]

Member Name

Description

LumaIniVal

Luma initialvalue. recommendednotneedadjust.

Value Range: [0, 255]

Data Types: CVI_U8

LumLevelTh

Luma threshold. largeinthisthreshold remove in the regionpurple fringeReferenceLumainformation.

Value Range: [0, 255]

Data Types: CVI_U8

LumLevelLut

Luma level insertvalueLUTtable, Generallynotneed tomorechange.

Value Range: [0, 255]

Data Types: CVI_U8

[Precautions]

None

[Related Data Types and Interfaces]

26.3.3. ISP_PFR_ATTR_S

[Description]

Defines PFR attribute parameters

[Definition]

typedef struct _ISP_PFR_ATTR_S {
        CVI_BOOL Enable; /*Rw; Range:[0, 1]*/
        ISP_OP_TYPE_E enOpType;
        CVI_U8 UpdateInterval; /*Rw; Range:[0, 255]*/
        CVI_BOOL TuningMode; /*Rw; Range:[0, 1]*/
        CVI_BOOL LumaEN; /*Rw; Range:[0, 1]*/
        CVI_BOOL UVENLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 1]*/
        CVI_BOOL HueENLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 1]*/
        CVI_U8 ULut[PFR_COLOR_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 VLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 UVDiffThLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 UVDiffLut0[PFR_COLOR_LUT_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 UVDiffLut1[PFR_COLOR_LUT_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 RWetLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 BWetLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U16 HueLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 359]*/
        CVI_U8 HueRngLut[PFR_COLOR_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 HueTh; /*Rw; Range:[0, 255]*/
        CVI_U8 EdgeThLut[PFR_EDGE_LUT_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 GDiffLut[PFR_COLOR_LUT_NUM]; /*Rw; Range:[0, 127]*/
        ISP_PFR_MANUAL_ATTR_S stManual;
        ISP_PFR_AUTO_ATTR_S stAuto;
} ISP_PFR_ATTR_S;

[Members]

Member Name

Description

Enable

module enable switch

Value Range: [0, 1]

Data Types: CVI_BOOL

enOpType

operation type

OP_TYPE_AUTO: automatic mode

OP_TYPE_MANUAL: manual mode

Data Types: ISP_OP_TYPE_E

UpdateInterval

affects the parameter update interval,the larger the value, the slower the image changes,the better the performance.

Value Range: [0, 255]

Data Types: CVI_U8

TuningMode

None

Value Range: [0, 1]

Data Types: CVI_BOOL

LumaEN

removepurple fringeprocessingwhen, Referencelumainformationfunction enable. purple fringepassoftenandLumainformationrelated, recommendedopenenable.

0: Disable.

1: Enable.

Value Range: [0, 1]

Data Types: CVI_BOOL

UVENLut

Referencecustompurple fringeUVvalueEnable. cansupportcustomtwogroupUVvalue, byULut, VLutDefine .

0: Disable.

1: Enable.

Value Range: [0, 1]

Data Types: CVI_BOOL

HueENLut

Referencecustompurple fringeHuevalueEnable. cansupportcustomtwogroupHuevalue, byHueLutDefine .

0: Disable.

1: Enable.

Value Range: [0, 1]

Data Types: CVI_BOOL

ULut

calibration purple fringe twogroupUvalue. oneversion caseundernotrecommendedmodifydefaultvalue. differentISOordifferentsceneunder, whenpurple fringecoloranddefaultvaluedifferencerelativelylarge, canaccording tocasemodify.

Value Range: [0, 255]

Data Types: CVI_U8

VLut

calibration purple fringe twogroupVvalue. oneversion caseundernotrecommendedmodifydefaultvalue. differentISOordifferentsceneunder, whenpurple fringecoloranddefaultvaluedifferencerelativelylarge, canaccording tocasemodify.

Value Range: [0, 255]

Data Types: CVI_U8

UVDiffThLut

None

Value Range: [0, 255]

Data Types: CVI_U8

UVDiffLut0

None

Value Range: [0, 255]

Data Types: CVI_U8

UVDiffLut1

None

Value Range: [0, 255]

Data Types: CVI_U8

RWetLut

None

Value Range: [0, 255]

Data Types: CVI_U8

BWetLut

None

Value Range: [0, 255]

Data Types: CVI_U8

HueLut

calibration purple fringe twogroupHuevalue. oneversion caseundernotrecommendedmodifydefaultvalue. differentISOordifferentsceneunder, whenpurple fringeHuevalueanddefaultvaluedifferencerelativelylarge, canaccording tocasemodify.

Value Range: [0, 359]

Data Types: CVI_U16

HueRngLut

andcalibration Huevaluecanisallow differencerange. exceedoutputthisthresholdconsideriscompleteallbiasdistancecalibrationvalue; inrangeinsideandHUEcalibrationvalue distancethe morenearispurplecolor probabilityratethe morelarge. rangeadjusttoolargewilleliminatemoremultiple color, adjusttoosmallcancanwillremovenotall.

Value Range: [0, 255]

Data Types: CVI_U8

HueTh

whetheruseHuecorrectafterpixel threshold. smallinetc.inthisthresholdconsiderisuseHuecorrectafter pixel; largeinthisthresholduseoriginalpixelandcorrectafterpixelblendofafterresult

Value Range: [0, 255]

Data Types: CVI_U8

EdgeThLut

according totexturelargesmallperformpartsegment, usingthislook upcorresponding Edge Weigting.

Value Range: [0, 255]

Data Types: CVI_U8

GDiffLut

Gradient matchmoduleincalculateGchanneldifference LUT, oneversionnotneed tomorechange. wholeLUTpartsegmentopenstartandend the smaller the value, determinethe moreaggressiveenter, purple fringeeliminateeffectthe morestrong

Value Range: [0, 127]

Data Types: CVI_U8

stManual

manual parameters

stAuto

automatic parameters

[Precautions]

None

[Related Data Types and Interfaces]