16. TNR¶
16.1. Function Overview¶
The time domain denoising algorithm in YUV domain is also called 3DNR.
16.2. API Reference¶
CVI_ISP_SetTNRAttr: Set TNR property parameter.
CVI_ISP_GetTNRAttr: Get TNR property parameter.
CVI_ISP_SetTNRNoiseModelAttr: Set TNR Noise Model property parameter.
CVI_ISP_GetTNRNoiseModelAttr: Get TNR Noise Model property parameter.
CVI_ISP_SetTNRLumaMotionAttr: Set TNR brightness to intensity gain characteristic table.
CVI_ISP_GetTNRLumaMotionAttr: Get TNR brightness to intensity gain characteristic table.
CVI_ISP_SetTNRGhostAttr: Set TNR momentum to tail elimination degree characteristic table.
CVI_ISP_GetTNRGhostAttr: Get TNR momentum to tail elimination degree characteristic table.
CVI_ISP_SetTNRMtPrtAttr: Set TNR momentum protection attribute parameter.
CVI_ISP_GetTNRMtPrtAttr: Get TNR momentum protection attribute parameter.
CVI_ISP_SetTNRMotionAdaptAttr: Set TNR momentum to strength gain characteristic table
CVI_ISP_GetTNRMotionAdaptAttr: Get TNR momentum to strength gain characteristic table
16.2.1. CVI_ISP_SetTNRAttr¶
【Description】
Set TNR property parameter.
【Syntax】
CVI_S32 CVI_ISP_SetTNRAttr(VI_PIPE ViPipe, const ISP_TNR_ATTR_S *pstTNRAttr);
【Parameter】
Parameter |
Description |
Input/Output |
---|---|---|
ViPipe |
VI_PIPE number |
Input |
pstTNRAttr |
TNR property parameter |
Input |
【Return Value】
Return Value |
Description |
---|---|
0 |
Success |
Non 0 |
Failure. An error code is returned. For details, see chapter Error Codes. |
【Requirement】
Header files: cvi_isp.h, cvi_comm_isp.h
Library files: libisp.so
【Note】
None.
【Example】
VI_PIPE ViPipe = 0;
ISP_TNR_ATTR_S stAttr;
CVI_ISP_GetTNRAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetTNRAttr(ViPipe, &stAttr);
【Related Topic】
16.2.2. CVI_ISP_GetTNRAttr¶
【Description】
Get TNR property parameter.
【Syntax】
CVI_S32 CVI_ISP_GetTNRAttr(VI_PIPE ViPipe, ISP_TNR_ATTR_S *pstTNRAttr);
【Parameter】
Parameter |
Description |
Input/Output |
---|---|---|
ViPipe |
VI_PIPE number |
Input |
pstTNRAttr |
TNR property parameter |
Output |
【Return Value】
Return Value |
Description |
---|---|
0 |
Success |
Non 0 |
Failure. An error code is returned. For details, see chapter Error Codes. |
【Requirement】
Header files: cvi_isp.h, cvi_comm_isp.h
Library files: libisp.so
【Note】
None.
【Example】
None.
【Related Topic】
16.2.3. CVI_ISP_SetTNRNoiseModelAttr¶
【Description】
Set TNR Noise Model property parameter.
【Syntax】
CVI_S32 CVI_ISP_SetTNRNoiseModelAttr(VI_PIPE ViPipe, const ISP_TNR_NOISE_MODEL_ATTR_S *pstTNRNoiseModelAttr);
【Parameter】
Parameter |
Description |
Input/Output |
---|---|---|
ViPipe |
VI_PIPE number |
Input |
pstTNRNoiseModelAttr |
TNR Noise Model property parameter |
Input |
【Return Value】
Return Value |
Description |
---|---|
0 |
Success |
Non 0 |
Failure. An error code is returned. For details, see chapter Error Codes. |
【Requirement】
Header files: cvi_isp.h, cvi_comm_isp.h
Library files: libisp.so
【Note】
None.
【Example】
None.
【Related Topic】
16.2.4. CVI_ISP_GetTNRNoiseModelAttr¶
【Description】
Get TNR Noise Model property parameter.
【Syntax】
CVI_S32 CVI_ISP_GetTNRNoiseModelAttr(VI_PIPE ViPipe, ISP_TNR_NOISE_MODEL_ATTR_S *pstTNRNoiseModelAttr);
【Parameter】
Parameter |
Description |
Input/Output |
---|---|---|
ViPipe |
VI_PIPE number |
Input |
pstTNRNoiseModelAttr |
TNR Noise Model property parameter |
Output |
【Return Value】
Return Value |
Description |
---|---|
0 |
Success |
Non 0 |
Failure. An error code is returned. For details, see chapter Error Codes. |
【Requirement】
Header files: cvi_isp.h, cvi_comm_isp.h
Library files: libisp.so
【Note】
None.
【Example】
None.
【Related Topic】
16.2.5. CVI_ISP_SetTNRLumaMotionAttr¶
【Description】
Set TNR brightness to intensity gain characteristic table.
【Syntax】
CVI_S32 CVI_ISP_SetTNRLumaMotionAttr(VI_PIPE ViPipe, const ISP_TNR_LUMA_MOTION_ATTR_S *pstTNRLumaMotionAttr);
【Parameter】
Parameter |
Description |
Input/Output |
---|---|---|
ViPipe |
VI_PIPE number |
Input |
pstTNRLumaMotionAttr |
TNR brightness to intensity gain characteristic table |
Input |
【Return Value】
Return Value |
Description |
---|---|
0 |
Success |
Non 0 |
Failure. An error code is returned. For details, see chapter Error Codes. |
【Requirement】
Header files: cvi_isp.h, cvi_comm_isp.h
Library files: libisp.so
【Note】
None.
【Example】
None.
【Related Topic】
16.2.6. CVI_ISP_GetTNRLumaMotionAttr¶
【Description】
Get TNR brightness to intensity gain characteristic table.
【Syntax】
CVI_S32 CVI_ISP_SetTNRLumaMotionAttr(VI_PIPE ViPipe, const ISP_TNR_LUMA_MOTION_ATTR_S *pstTNRLumaMotionAttr);
【Parameter】
Parameter |
Description |
Input/Output |
---|---|---|
ViPipe |
VI_PIPE number |
Input |
pstTNRLumaMotionAttr |
TNR brightness to intensity gain characteristic table |
Output |
【Return Value】
Return Value |
Description |
---|---|
0 |
Success |
Non 0 |
Failure. An error code is returned. For details, see chapter Error Codes. |
【Requirement】
Header files: cvi_isp.h, cvi_comm_isp.h
Library files: libisp.so
【Note】
None.
【Example】
None.
【Related Topic】
16.2.7. CVI_ISP_SetTNRGhostAttr¶
【Description】
Set TNR momentum to tail elimination degree characteristic table.
【Syntax】
CVI_S32 CVI_ISP_SetTNRGhostAttr(VI_PIPE ViPipe, const ISP_TNR_GHOST_ATTR_S *pstTNRGhostAttr);
【Parameter】
Parameter |
Description |
Input/Output |
---|---|---|
ViPipe |
VI_PIPE number |
Input |
pstTNRGhostAttr |
TNR momentum to tail elimination degree characteristic table |
Input |
【Return Value】
Return Value |
Description |
---|---|
0 |
Success |
Non 0 |
Failure. An error code is returned. For details, see chapter Error Codes. |
【Requirement】
Header files: cvi_isp.h, cvi_comm_isp.h
Library files: libisp.so
【Note】
None.
【Example】
None.
【Related Topic】
16.2.8. CVI_ISP_GetTNRGhostAttr¶
【Description】
Get TNR momentum to tail elimination degree characteristic table.
【Syntax】
CVI_S32 CVI_ISP_GetTNRGhostAttr(VI_PIPE ViPipe, ISP_TNR_GHOST_ATTR_S *pstTNRGhostAttr);
【Parameter】
Parameter |
Description |
Input/Output |
---|---|---|
ViPipe |
VI_PIPE number |
Input |
pstTNRGhostAttr |
TNR momentum to tail elimination degree characteristic table |
Output |
【Return Value】
Return Value |
Description |
---|---|
0 |
Success |
Non 0 |
Failure. An error code is returned. For details, see chapter Error Codes. |
【Requirement】
Header files: cvi_isp.h, cvi_comm_isp.h
Library files: libisp.so
【Note】
None.
【Example】
None.
【Related Topic】
16.2.9. CVI_ISP_SetTNRMtPrtAttr¶
【Description】
Set TNR momentum protection attribute parameter.
【Syntax】
CVI_S32 CVI_ISP_SetTNRMtPrtAttr(VI_PIPE ViPipe, const ISP_TNR_MT_PRT_ATTR_S *pstTNRMtPrtAttr);
【Parameter】
Parameter |
Description |
Input/Output |
---|---|---|
ViPipe |
VI_PIPE number |
Input |
pstTNRMtPrtAttr |
TNR momentum protection attribute parameter |
Input |
【Return Value】
Return Value |
Description |
---|---|
0 |
Success |
Non 0 |
Failure. An error code is returned. For details, see chapter Error Codes. |
【Requirement】
Header files: cvi_isp.h, cvi_comm_isp.h
Library files: libisp.so
【Note】
None.
【Example】
None.
【Related Topic】
16.2.10. CVI_ISP_GetTNRMtPrtAttr¶
【Description】
Get TNR momentum protection attribute parameter.
【Syntax】
CVI_S32 CVI_ISP_GetTNRMtPrtAttr(VI_PIPE ViPipe, ISP_TNR_MT_PRT_ATTR_S *pstTNRMtPrtAttr);
【Parameter】
Parameter |
Description |
Input/Output |
---|---|---|
ViPipe |
VI_PIPE number |
Input |
pstTNRMtPrtAttr |
TNR momentum protection attribute parameter |
Output |
【Return Value】
Return Value |
Description |
---|---|
0 |
Success |
Non 0 |
Failure. An error code is returned. For details, see chapter Error Codes. |
【Requirement】
Header files: cvi_isp.h, cvi_comm_isp.h
Library files: libisp.so
【Note】
None.
【Example】
None.
【Related Topic】
16.2.11. CVI_ISP_SetTNRMotionAdaptAttr¶
【Description】
Set TNR momentum to strength gain characteristic table
【Syntax】
CVI_S32 CVI_ISP_SetTNRMotionAdaptAttr(VI_PIPE ViPipe, const ISP_TNR_MOTION_ADAPT_ATTR_S *pstTNRMotionAdaptAttr);
【Parameter】
Parameter |
Description |
Input/Output |
---|---|---|
ViPipe |
VI_PIPE number |
Input |
pstTNRMotionAdaptAttr |
TNR momentum to strength gain characteristic table |
Output |
【Return Value】
Return Value |
Description |
---|---|
0 |
Success |
Non 0 |
Failure. An error code is returned. For details, see chapter Error Codes. |
【Requirement】
Header files: cvi_isp.h, cvi_comm_isp.h
Library files: libisp.so
【Note】
None.
【Example】
None.
【Related Topic】
16.2.12. CVI_ISP_GetTNRMotionAdaptAttr¶
【Description】
Get TNR momentum to strength gain characteristic table
【Syntax】
CVI_S32 CVI_ISP_GetTNRMotionAdaptAttr(VI_PIPE ViPipe, ISP_TNR_MOTION_ADAPT_ATTR_S *pstTNRMotionAdaptAttr);
【Parameter】
Parameter |
Description |
Input/Output |
---|---|---|
ViPipe |
VI_PIPE number |
Input |
pstTNRMotionAdaptAttr |
TNR momentum to strength gain characteristic table |
Output |
【Return Value】
Return Value |
Description |
---|---|
0 |
Success |
Non 0 |
Failure. An error code is returned. For details, see chapter Error Codes. |
【Requirement】
Header files: cvi_isp.h, cvi_comm_isp.h
Library files: libisp.so
【Note】
None.
【Example】
None.
【Related Topic】
16.3. Data Types¶
ISP_TNR_MANUAL_ATTR_S: TNR attribute manual parameter.
ISP_TNR_AUTO_ATTR_S: TNR attribute auto parameter.
ISP_TNR_ATTR_S: TNR attribute parameter.
ISP_TNR_NOISE_MODEL_MANUAL_ATTR_S: TNR Noise Model attribute manual parameter.
ISP_TNR_NOISE_MODEL_AUTO_ATTR_S: TNR Noise Model attribute auto parameter.
ISP_TNR_NOISE_MODEL_ATTR_S: TNR Noise Model attribute parameter.
ISP_TNR_LUMA_MOTION_MANUAL_ATTR_S: Characteristic table of brightness to intensity gain of TNR in manual mode.
ISP_TNR_LUMA_MOTION_AUTO_ATTR_S: Characteristic table of brightness to intensity gain of TNR in auto mode.
ISP_TNR_LUMA_MOTION_ATTR_S: TNR brightness to intensity gain characteristic table.
ISP_TNR_GHOST_MANUAL_ATTR_S: Characteristic table of momentum to tailing elimination degree in manual mode.
ISP_TNR_GHOST_AUTO_ATTR_S: Characteristic table of momentum to tailing elimination degree in auto mode.
ISP_TNR_GHOST_ATTR_S: Characteristic table of momentum to tailing elimination degree.
ISP_TNR_MT_PRT_MANUAL_ATTR_S: Manual mode TNR momentum protection attribute parameter.
ISP_TNR_MT_PRT_AUTO_ATTR_S: Auto mode TNR momentum protection attribute parameter.
ISP_TNR_MT_PRT_ATTR_S: TNR momentum protection attribute parameter.
ISP_TNR_MOTION_ADAPT_MANUAL_ATTR_S: Parameter Description of momentum vs. strength gain in manual mode
ISP_TNR_MOTION_ADAPT_AUTO_ATTR_S: Parameter Description for momentum vs. strength gain in automatic mode
ISP_TNR_MOTION_ADAPT_ATTR_S: Parameter Description of momentum versus strength gain
16.3.1. ISP_TNR_MANUAL_ATTR_S¶
【Description】
TNR attribute manual parameter.
【Syntax】
typedef struct _ISP_TNR_MANUAL_ATTR_S {
CVI_U8 TnrStrength0;
CVI_U8 MapThdLow0;
CVI_U8 MapThdHigh0;
CVI_U8 MtDetectUnit;
CVI_S16 BrightnessNoiseLevelLE;
CVI_S16 BrightnessNoiseLevelSE;
CVI_BOOL MtFiltMode;
CVI_U16 MtFiltWgt;
} ISP_TNR_MANUAL_ATTR_S;
【Member】
Member |
Description |
---|---|
TnrStrength0 |
Long Exposure TNR Intensity Gain Value range: [0x0, 0xff] Data type: CVI_U8 |
MapThdLow0 |
Long Exposure TNR Intensity Upper Limit Value range: [0x0, 0xff] Data type: CVI_U8 |
MapThdHigh0 |
Long exposure TNR intensity lower limit Value range: [0x0, 0xff] Data type: CVI_U8 |
MtDetectUnit |
The anti-noise ability of motion detection, the larger the value, the stronger the anti-noise ability, but the lower the fineness of detection. Value range: [0x3, 0x6] Data type: CVI_U8 |
BrightnessNoiseLevelLE |
Long Exposure Luminance Noise Tolerance Value Value range: [0x1, 0x3ff] Data type: CVI_S16 |
BrightnessNoiseLevelSE |
Short exposure luminance noise tolerance value Value range: [0x1, 0x3ff] Data type: CVI_S16 |
MtFiltMode |
Motion Detection Filter Mode Value range: [0x00, 0x01] Data type: CVI_BOOL |
MtFiltWgt |
Motion Detection Filter Weights Value range: [0x1, 0x100] Data type: CVI_U16 |
【Note】
None.
【Related Data Type and Interface】
16.3.2. ISP_TNR_AUTO_ATTR_S¶
【Description】
TNR attribute auto parameter.
【Syntax】
typedef struct _ISP_TNR_AUTO_ATTR_S {
CVI_U8 TnrStrength0[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 MapThdLow0[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 MapThdHigh0[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 MtDetectUnit[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_S16 BrightnessNoiseLevelLE[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_S16 BrightnessNoiseLevelSE[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_BOOL MtFiltMode[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 MtFiltWgt[ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_TNR_AUTO_ATTR_S;
【Member】
Member |
Description |
---|---|
TnrStrength0 |
Long Exposure TNR Intensity Gain Value range: [0x0, 0xff] Data type: CVI_U8 |
MapThdLow0 |
Long Exposure TNR Intensity Upper Limit Value range: [0x0, 0xff] Data type: CVI_U8 |
MapThdHigh0 |
Long exposure TNR intensity lower limit Value range: [0x0, 0xff] Data type: CVI_U8 |
MtDetectUnit |
The anti-noise ability of motion detection, the larger the value, the stronger the anti-noise ability, but the lower the fineness of detection. Value range: [0x3, 0x6] Data type: CVI_U8 |
BrightnessNoiseLevelLE |
Long Exposure Luminance Noise Tolerance Value Value range: [0x1, 0x3ff] Data type: CVI_S16 |
BrightnessNoiseLevelSE |
Short exposure luminance noise tolerance value Value range: [0x1, 0x3ff] Data type: CVI_S16 |
MtFiltMode |
Motion Detection Filter Mode Value range: [0x00, 0x01] Data type: CVI_BOOL |
MtFiltWgt |
Motion Detection Filter Weights Value range: [0x1, 0x100] Data type: CVI_U16 |
【Note】
None.
【Related Data Type and Interface】
16.3.3. ISP_TNR_ATTR_S¶
【Description】
TNR attribute parameter.
【Syntax】
typedef struct _ISP_TNR_ATTR_S {
CVI_BOOL Enable;
ISP_
OP_TYPE_E enOpType;
CVI_U8 UpdateInterval;
CVI_BOOL TuningMode;
CVI_BOOL TnrMtMode;
CVI_BOOL YnrCnrSharpenMtMode;
CVI_BOOL PreSharpenMtMode;
CVI_U8 ChromaScalingDownMode;
CVI_BOOL CompGainEnable;
ISP_TNR_MANUAL_ATTR_S stManual;
ISP_TNR_AUTO_ATTR_S stAuto;
} ISP_TNR_ATTR_S;
【Member】
Member |
Description |
---|---|
Enable |
The TNR module is enabled. 0: off. 1: Enabled. Value range: [0, 1] Data type: CVI_BOOL |
enOpType |
job type OP_TYPE_AUTO: automatic mode OP_TYPE_MANUAL: manual mode |
UpdateInterval |
Affects the parameter update interval, the larger the value, the slower the screen changes and the better the performance. Value range: [0x0, 0xff] Data type: CVI_U8 |
TuningMode |
Debug mode, output visual auxiliary information to help users debug 0: Do not output visual aids 1: Output the visual result of motion detection. The brighter the motion, the more obvious the motion, and the darker it is, the opposite. Value range: [0, 1] Data type: CVI_BOOL |
TnrMtMode |
TNR Motion mode: 0: Motion IIR (represents that the detected motion has been processed by IIR) 1: Motion history (meaning that the detected motion has not been processed by IIR) Value range: [0x0, 0x1] Data type: CVI_BOOL |
YnrCnrSharpenMtMode |
YNR/CNR Motion mode: 0: Motion IIR (represents that the detected motion has been processed by IIR) 1: Motion history (meaning that the detected motion has not been processed by IIR) Value range: [0x0, 0x1] Data type: CVI_BOOL |
PreSharpenMtMode |
Presharpen Motion mode: 0: Motion IIR (represents that the detected motion has been processed by IIR) 1: Motion history (meaning that the detected motion has not been processed by IIR) Value range: [0x0, 0x1] Data type: CVI_BOOL |
ChromaScalingDownMode |
Chroma downscaling mode |
CompGainEnable |
Brightness compensation function enable Value range: [0, 1] Data type: CVI_BOOL |
stManual |
Manual Mode Parameter Properties |
stAuto |
Auto Mode Parameter Properties |
【Note】
None.
【Related Data Type and Interface】
16.3.4. ISP_TNR_NOISE_MODEL_MANUAL_ATTR_S¶
【Description】
TNR Noise Model attribute auto parameter.
【Syntax】
typedef struct _ISP_TNR_NOISE_MODEL_MANUAL_ATTR_S {
CVI_U8 RNoiseLevel0;
CVI_U8 GNoiseLevel0;
CVI_U8 BNoiseLevel0;
CVI_U8 RNoiseLevel1;
CVI_U8 GNoiseLevel1;
CVI_U8 BNoiseLevel1;
CVI_U8 RNoiseHiLevel0;
CVI_U8 GNoiseHiLevel0;
CVI_U8 BNoiseHiLevel0;
CVI_U8 RNoiseHiLevel1;
CVI_U8 GNoiseHiLevel1;
CVI_U8 BNoiseHiLevel1;
} ISP_TNR_NOISE_MODEL_MANUAL_ATTR_S;
【Member】
Member |
Description |
---|---|
RNoiseLevel0 |
Noise tolerance of long exposure red channel; Value range: [0x0, 0xff] Data type: CVI_U8 |
RNoiseHiLevel0 |
Long exposure red channel brightness noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
GNoiseLevel0 |
Noise tolerance of long exposure green channel; Value range: [0x0, 0xff] Data type: CVI_U8 |
GNoiseHiLevel0 |
Long exposure green channel brightness noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
BNoiseLevel0 |
Noise tolerance of long exposure blue channel; Value range: [0x0, 0xff] Data type: CVI_U8 |
BNoiseHiLevel0 |
Long exposure blue channel brightness noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
RNoiseLevel1 |
Short exposure red channel noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
RNoiseHiLevel1 |
Short exposure red channel brightness noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
GNoiseLevel1 |
Short exposure green channel noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
GNoiseHiLevel1 |
Short exposure green channel brightness noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
BNoiseLevel1 |
Short exposure blue channel noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
BNoiseHiLevel1 |
Short exposure blue channel brightness noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
【Note】
None.
【Related Data Type and Interface】
16.3.5. ISP_TNR_NOISE_MODEL_AUTO_ATTR_S¶
【Description】
TNR Noise Model attribute auto parameter.
【Syntax】
typedef struct _ISP_TNR_NOISE_MODEL_AUTO_ATTR_S {
CVI_U8 RNoiseLevel0[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 GNoiseLevel0[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 BNoiseLevel0[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 RNoiseLevel1[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 GNoiseLevel1[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 BNoiseLevel1[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 RNoiseHiLevel0[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 GNoiseHiLevel0[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 BNoiseHiLevel0[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 RNoiseHiLevel1[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 GNoiseHiLevel1[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 BNoiseHiLevel1[ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_TNR_NOISE_MODEL_AUTO_ATTR_S;
【Member】
Member |
Description |
---|---|
RNoiseLevel0 |
Noise tolerance of long exposure red channel; Value range: [0x0, 0xff] Data type: CVI_U8 |
RNoiseHiLevel0 |
Long exposure red channel brightness noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
GNoiseLevel0 |
Noise tolerance of long exposure green channel; Value range: [0x0, 0xff] Data type: CVI_U8 |
GNoiseHiLevel0 |
Long exposure green channel brightness noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
BNoiseLevel0 |
Noise tolerance of long exposure blue channel; Value range: [0x0, 0xff] Data type: CVI_U8 |
BNoiseHiLevel0 |
Long exposure blue channel brightness noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
RNoiseLevel1 |
Short exposure red channel noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
RNoiseHiLevel1 |
Short exposure red channel brightness noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
GNoiseLevel1 |
Short exposure green channel noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
GNoiseHiLevel1 |
Short exposure green channel brightness noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
BNoiseLevel1 |
Short exposure blue channel noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
BNoiseHiLevel1 |
Short exposure blue channel brightness noise tolerance; Value range: [0x0, 0xff] Data type: CVI_U8 |
【Note】
None.
【Related Data Type and Interface】
16.3.6. ISP_TNR_NOISE_MODEL_ATTR_S¶
【Description】
TNR Noise Model attribute parameter.
【Syntax】
typedef struct _ISP_TNR_NOISE_MODEL_ATTR_S {
ISP_TNR_NOISE_MODEL_MANUAL_ATTR_S stManual;
ISP_TNR_NOISE_MODEL_AUTO_ATTR_S stAuto;
} ISP_TNR_NOISE_MODEL_ATTR_S;
【Member】
Member |
Description |
---|---|
stManual |
Manual mode parameter properties |
stAuto |
Automatic mode parameter properties |
【Note】
None.
【Related Data Type and Interface】
16.3.7. ISP_TNR_LUMA_MOTION_MANUAL_ATTR_S¶
【Description】
Characteristic table of brightness to intensity gain of TNR in manual mode.
【Syntax】
typedef struct _ISP_TNR_LUMA_MOTION_MANUAL_ATTR_S {
CVI_U16 L2mIn0[4];
CVI_U8 L2mOut0[4];
CVI_U16 L2mIn1[4];
CVI_U8 L2mOut1[4];
CVI_BOOL MtLumaMode;
} ISP_TNR_LUMA_MOTION_MANUAL_ATTR_S;
【Member】
Member |
Description |
---|---|
L2mIn0[4] |
Long exposure TNR brightness to intensity gain characteristic table; it consists of an array of four sets of values; define the gray level; the larger the value, the higher the gray level. Value range: [0x0, 0xfff] Data type: CVI_U16 |
L2mOut0[4] |
Long exposure TNR brightness to intensity gain characteristic table; it consists of an array of four sets of values; define the intensity gain; the greater the value, the stronger the intensity. Value range: [0x0, 0x3f] Data type: CVI_U8 |
L2mIn1[4] |
Short exposure TNR brightness to intensity gain characteristic table; it consists of an array of four sets of values; define the gray level; the larger the value, the higher the gray level. Value range: [0x0, 0xfff] Data type: CVI_U16 |
L2mOut1[4] |
Short exposure TNR brightness to intensity gain characteristic table; it consists of an array of four sets of values; define the intensity gain; the greater the value, the stronger the intensity. Value range: [0x0, 0x3f] Data type: CVI_U8 |
MtLumaMode |
Luma gain reference object 0: luma 1: max(R,G,B) Value range: [0x0, 0x1] Data type: CVI_BOOL |
【Note】
None.
【Related Data Type and Interface】
16.3.8. ISP_TNR_LUMA_MOTION_AUTO_ATTR_S¶
【Description】
Characteristic table of brightness to intensity gain of TNR in auto mode.
【Syntax】
typedef struct _ISP_TNR_LUMA_MOTION_AUTO_ATTR_S {
CVI_U16 L2mIn0[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 L2mOut0[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U16 L2mIn1[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 L2mOut1[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_BOOL MtLumaMode[ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_TNR_LUMA_MOTION_AUTO_ATTR_S;
【Member】
Member |
Description |
---|---|
L2mIn0[4] |
Long exposure TNR brightness to intensity gain characteristic table; it consists of an array of four sets of values; define the gray level; the larger the value, the higher the gray level. Value range: [0x0, 0xfff] Data type: CVI_U16 |
L2mOut0[4] |
Long exposure TNR brightness to intensity gain characteristic table; it consists of an array of four sets of values; define the intensity gain; the greater the value, the stronger the intensity. Value range: [0x0, 0x3f] Data type: CVI_U8 |
L2mIn1[4] |
Short exposure TNR brightness to intensity gain characteristic table; it consists of an array of four sets of values; define the gray level; the larger the value, the higher the gray level. Value range: [0x0, 0xfff] Data type: CVI_U16 |
L2mOut1[4] |
Short exposure TNR brightness to intensity gain characteristic table; it consists of an array of four sets of values; define the intensity gain; the greater the value, the stronger the intensity. Value range: [0x0, 0x3f] Data type: CVI_U8 |
MtLumaMode |
Luma gain reference object 0: luma 1: max(R,G,B) Value range: [0x0, 0x1] Data type: CVI_BOOL |
【Note】
None.
【Related Data Type and Interface】
16.3.9. ISP_TNR_LUMA_MOTION_ATTR_S¶
【Description】
TNR brightness to intensity gain characteristic table.
【Syntax】
typedef struct _ISP_TNR_LUMA_MOTION_ATTR_S {
ISP_TNR_LUMA_MOTION_MANUAL_ATTR_S stManual;
ISP_TNR_LUMA_MOTION_AUTO_ATTR_S stAuto;
} ISP_TNR_LUMA_MOTION_ATTR_S;
【Member】
Member |
Description |
---|---|
stManual |
Manual mode parameter properties |
stAuto |
Automatic mode parameter properties |
【Note】
None.
【Related Data Type and Interface】
16.3.10. ISP_TNR_GHOST_MANUAL_ATTR_S¶
【Description】
Characteristic table of momentum to tailing elimination degree in manual mode.
【Syntax】
typedef struct _ISP_TNR_GHOST_MANUAL_ATTR_S {
CVI_U8 PrvMotion0[4];
CVI_U8 PrtctWgt0[4];
CVI_U8 MotionHistoryStr;
} ISP_TNR_GHOST_MANUAL_ATTR_S;
【Member】
Member |
Description |
---|---|
PrvMotion0[4] |
Long-exposure TNR brightness versus intensity gain characteristics table. An array of four sets of values. Define the gray level, the larger the value, the higher the gray level. Value range: [0x0, 0xff] Data type: CVI_U8 |
PrtctWgt0[4] |
Long-exposure TNR brightness versus intensity gain characteristics table. An array of four sets of values. Defines the intensity gain, the larger the value, the stronger the intensity. Value range: [0x0, 0xf] Data type: CVI_U8 |
MotionHistoryStr |
Defines the degree of retention of the movement track exported to the YNR reference. The higher the value, the longer the trajectory will be retained, otherwise the shorter the trajectory will be retained Value range: [0x0, 0xf] Data type: CVI_U8 |
【Note】
None.
【Related Data Type and Interface】
16.3.11. ISP_TNR_GHOST_AUTO_ATTR_S¶
【Description】
Characteristic table of momentum to tailing elimination degree in auto mode.
【Syntax】
typedef struct _ISP_TNR_GHOST_AUTO_ATTR_S {
CVI_U8 PrvMotion0[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 PrtctWgt0[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 MotionHistoryStr[ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_TNR_GHOST_AUTO_ATTR_S;
【Member】
Member |
Description |
---|---|
PrvMotion0[4] |
Long-exposure TNR brightness versus intensity gain characteristics table. An array of four sets of values. Define the gray level, the larger the value, the higher the gray level. Value range: [0x0, 0xff] Data type: CVI_U8 |
PrtctWgt0[4] |
Long-exposure TNR brightness versus intensity gain characteristics table. An array of four sets of values. Defines the intensity gain, the larger the value, the stronger the intensity. Value range: [0x0, 0xf] Data type: CVI_U8 |
MotionHistoryStr |
Defines the degree of retention of the movement track exported to the YNR reference. The higher the value, the longer the trajectory will be retained, otherwise the shorter the trajectory will be retained Value range: [0x0, 0xf] Data type: CVI_U8 |
【Note】
None.
【Related Data Type and Interface】
16.3.12. ISP_TNR_GHOST_ATTR_S¶
【Description】
Characteristic table of momentum to tailing elimination degree.
【Syntax】
typedef struct _ISP_TNR_GHOST_ATTR_S {
ISP_TNR_GHOST_MANUAL_ATTR_S stManual;
ISP_TNR_GHOST_AUTO_ATTR_S stAuto;
} ISP_TNR_GHOST_ATTR_S;
【Member】
Member |
Description |
---|---|
stManual |
Manual mode parameter properties |
stAuto |
Automatic mode parameter properties |
【Note】
None.
【Related Data Type and Interface】
16.3.13. ISP_TNR_MT_PRT_MANUAL_ATTR_S¶
【Description】
Manual mode TNR momentum protection attribute parameter.
【Syntax】
typedef struct _ISP_TNR_MT_PRT_MANUAL_ATTR_S {
CVI_U8 LowMtPrtLevelY;
CVI_U8 LowMtPrtLevelU;
CVI_U8 LowMtPrtLevelV;
CVI_U8 LowMtPrtInY[4];
CVI_U8 LowMtPrtInU[4];
CVI_U8 LowMtPrtInV[4];
CVI_U8 LowMtPrtOutY[4];
CVI_U8 LowMtPrtOutU[4];
CVI_U8 LowMtPrtOutV[4];
CVI_U8 LowMtPrtAdvIn[4];
CVI_U8 LowMtPrtAdvOut[4];
} ISP_TNR_MT_PRT_MANUAL_ATTR_S;
【Member】
Member |
Description |
---|---|
LowMtPrtLevelY |
Y channel protection upper limit. When the value is higher, the protected motion area will be more inclined to the original pixel value output. Conversely, the lower the value, the more inclined the pixel value output after temporal noise reduction. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtLevelU |
U channel protection upper limit. When the value is higher, the protected motion area will be more inclined to the original pixel value output. Conversely, the lower the value, the more inclined the pixel value output after temporal noise reduction. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtLevelV |
V channel protection upper limit. When the value is higher, the protected motion area will be more inclined to the original pixel value output. Conversely, the lower the value, the more inclined the pixel value output after temporal noise reduction. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtInY[4] |
Define the horizontal axis of the LUT, that is, the difference between the front and rear frames in units of Y channel pixels. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtInU[4] |
Define the horizontal axis of the LUT, that is, the difference between the front and rear frames in units of U channel pixels. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtInV[4] |
Define the horizontal axis of the LUT, that is, the difference between the front and rear frames in units of V channel pixels. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtOutY[4] |
Define the vertical axis of the LUT, that is, the protection degree of the front and rear frame difference of the Y channel. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtOutU[4] |
Define the vertical axis of the LUT, that is, the degree of protection of the frame difference before and after the U channel. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtOutV[4] |
Define the vertical axis of the LUT, that is, the protection degree of the frame difference before and after the V channel. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtAdvIn[4] |
Define the horizontal axis of the LUT, that is, the difference between the front and rear frames in units of blocks Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtAdvOut[4] |
Defines the vertical axis of the LUT, i.e. the protection gain of the difference between the front and back frames Value range: [0x0, 0xff] Data type: CVI_U8 |
【Note】
None.
【Related Data Type and Interface】
16.3.14. ISP_TNR_MT_PRT_AUTO_ATTR_S¶
【Description】
Auto mode TNR momentum protection attribute parameter.
【Syntax】
typedef struct _ISP_TNR_MT_PRT_AUTO_ATTR_S {
CVI_U8 LowMtPrtLevelY[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 LowMtPrtLevelU[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 LowMtPrtLevelV[ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 LowMtPrtInY[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 LowMtPrtInU[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 LowMtPrtInV[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 LowMtPrtOutY[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 LowMtPrtOutU[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 LowMtPrtOutV[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 LowMtPrtAdvIn[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 LowMtPrtAdvOut[4][ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_TNR_MT_PRT_AUTO_ATTR_S;
【Member】
Member |
Description |
---|---|
LowMtPrtLevelY |
Y channel protection upper limit. When the value is higher, the protected motion area will be more inclined to the original pixel value output. Conversely, the lower the value, the more inclined the pixel value output after temporal noise reduction. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtLevelU |
U channel protection upper limit. When the value is higher, the protected motion area will be more inclined to the original pixel value output. Conversely, the lower the value, the more inclined the pixel value output after temporal noise reduction. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtLevelV |
V channel protection upper limit. When the value is higher, the protected motion area will be more inclined to the original pixel value output. Conversely, the lower the value, the more inclined the pixel value output after temporal noise reduction. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtInY[4] |
Define the horizontal axis of the LUT, that is, the difference between the front and rear frames in units of Y channel pixels. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtInU[4] |
Define the horizontal axis of the LUT, that is, the difference between the front and rear frames in units of U channel pixels. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtInV[4] |
Define the horizontal axis of the LUT, that is, the difference between the front and rear frames in units of V channel pixels. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtOutY[4] |
Define the vertical axis of the LUT, that is, the protection degree of the front and rear frame difference of the Y channel. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtOutU[4] |
Define the vertical axis of the LUT, that is, the degree of protection of the frame difference before and after the U channel. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtOutV[4] |
Define the vertical axis of the LUT, that is, the protection degree of the frame difference before and after the V channel. Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtAdvIn[4] |
Define the horizontal axis of the LUT, that is, the difference between the front and rear frames in units of blocks Value range: [0x0, 0xff] Data type: CVI_U8 |
LowMtPrtAdvOut[4] |
Defines the vertical axis of the LUT, i.e. the protection gain of the difference between the front and back frames Value range: [0x0, 0xff] Data type: CVI_U8 |
【Note】
None.
【Related Data Type and Interface】
16.3.15. ISP_TNR_MT_PRT_ATTR_S¶
【Description】
TNR momentum protection attribute parameter.
【Syntax】
typedef struct _ISP_TNR_MT_PRT_ATTR_S {
CVI_BOOL LowMtPrtEn; /*RW; Range:[0, 1]*/
CVI_BOOL LowMtLowPassEnable; /*RW; Range:[0, 1]*/
CVI_BOOL LowMtPrtAdvLumaEnable; /*RW; Range:[0, 1]*/
CVI_BOOL LowMtPrtAdvMode; /*RW; Range:[0, 1]*/
CVI_U8 LowMtPrtAdvMax; /*RW; Range:[0, 0xff]*/
CVI_BOOL LowMtPrtAdvDebugMode; /*RW; Range:[0, 1]*/
CVI_U8 LowMtPrtAdvDebugIn[4]; /*RW; Range:[0x0, 0xff]*/
CVI_U8 LowMtPrtAdvDebugOut[4]; /*RW; Range:[0x0, 0xff]*/
ISP_TNR_MT_PRT_MANUAL_ATTR_S stManual;
ISP_TNR_MT_PRT_AUTO_ATTR_S stAuto;
} ISP_TNR_MT_PRT_ATTR_S;
【Member】
Member |
Description |
---|---|
LowMtPrtEn |
Airspace noise reduction micro motion protection is enabled. This function can define the degree of protection according to the difference between the front and rear frames in units of pixels. The higher the degree of protection, the more inclined to output the original pixel value. Conversely, the lower the value, the more inclined the pixel value output after temporal noise reduction. Value range: [0, 1] Data type: CVI_BOOL |
LowMtLowPassEnable |
Weak motion detection is low-pass filtered using Value range: [0, 1] Data type: CVI_BOOL |
LowMtPrtAdvLumaEnable |
The airspace noise reduction micro motion protection function is enabled. This function can define the degree of protection according to the difference between the front and rear frames in units of blocks. The higher the degree of protection, the more inclined the output of the original pixel value. Conversely, the lower the value, the more inclined the pixel value output after temporal noise reduction Value range: [0, 1] Data type: CVI_BOOL |
LowMtPrtAdvMode |
Airspace Noise Reduction Micro Motion Mode Value range: [0, 1] Data type: CVI_BOOL |
LowMtPrtAdvMax |
Protection Gain Cap Value range: [0, 0xff] Data type: CVI_U8 |
LowMtPrtAdvDebugMode |
Micro motion debug mode, output visual auxiliary information to help users debug 0: Output motion detection visualization results. 1: Output motion detection visualization results according to LowMtPrtDebug LUT Value range: [0, 1] Data type: CVI_BOOL |
LowMtPrtAdvDebugIn[4] |
Debug mode, micro motion input range setting Value range: [0, 0xff] Data type: CVI_U8 |
LowMtPrtAdvDebugOut[4] |
Debug mode, micro motion output value setting Value range: [0, 0xff] Data type: CVI_U8 |
stManual |
Manual Mode Parameter Properties |
stAuto |
Auto Mode Parameter Properties |
【Note】
None.
【Related Data Type and Interface】
16.3.16. ISP_TNR_MOTION_ADAPT_MANUAL_ATTR_S¶
【Description】
Parameter Description of momentum vs.
strength gain in manual mode
【Syntax】
typedef struct _ISP_TNR_MOTION_ADAPT_MANUAL_ATTR_S {
CVI_U8 AdaptNrLumaStrIn[4];
CVI_U8 AdaptNrLumaStrOut[4];
CVI_U8 AdaptNrChromaStrIn[4];
CVI_U8 AdaptNrChromaStrOut[4];
} ISP_TNR_MOTION_ADAPT_MANUAL_ATTR_S;
【Member】
Member |
Description |
---|---|
AdaptNrLumaStrIn |
TNR Momentum vs Strength Gain Characteristics Table. An array of four sets of values. Define the gray level, the larger the value, the higher the gray level. Value range: [0x0, 0xff] Data type: CVI_U8 |
AdaptNrLumaStrOut |
TNR Momentum vs Strength Gain Characteristics Table. An array of four sets of values. When the value is higher, the protected motion area will be more inclined to the original pixel value output. Conversely, the lower the value, the more inclined the pixel value output after temporal noise reduction. Value range: [0x0, 0xff] Data type: CVI_U8 |
AdaptNrChromaStrIn |
TNR Momentum vs Strength Gain Characteristics Table. An array of four sets of values. Define the chromaticity level, the larger the value, the higher the chromaticity. Value range: [0x0, 0xff] Data type: CVI_U8 |
AdaptNrChromaStrOut |
TNR Momentum vs Strength Gain Characteristics Table. An array of four sets of values. When the value is higher, the protected motion area will be more inclined to the original pixel value output. Conversely, the lower the value, the more inclined the pixel value output after temporal noise reduction. Value range: [0x0, 0xff] Data type: CVI_U8 |
【Note】
None
【Related Data Type and Interface】
16.3.17. ISP_TNR_MOTION_ADAPT_AUTO_ATTR_S¶
【Description】
Parameter Description for momentum vs. strength gain in automatic mode
【Syntax】
typedef struct _ISP_TNR_MOTION_ADAPT_AUTO_ATTR_S {
CVI_U8 AdaptNrLumaStrIn[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 AdaptNrLumaStrOut[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 AdaptNrChromaStrIn[4][ISP_AUTO_ISO_STRENGTH_NUM];
CVI_U8 AdaptNrChromaStrOut[4][ISP_AUTO_ISO_STRENGTH_NUM];
} ISP_TNR_MOTION_ADAPT_AUTO_ATTR_S;
【Member】
Member |
Description |
---|---|
AdaptNrLumaStrIn |
TNR Momentum vs Strength Gain Characteristics Table. An array of four sets of values. Define the gray level, the larger the value, the higher the gray level. Value range: [0x0, 0xff] Data type: CVI_U8 |
AdaptNrLumaStrOut |
TNR Momentum vs Strength Gain Characteristics Table. An array of four sets of values. When the value is higher, the protected motion area will be more inclined to the original pixel value output. Conversely, the lower the value, the more inclined the pixel value output after temporal noise reduction. Value range: [0x0, 0xff] Data type: CVI_U8 |
AdaptNrChromaStrIn |
TNR Momentum vs Strength Gain Characteristics Table. An array of four sets of values. Define the chromaticity level, the larger the value, the higher the chromaticity. Value range: [0x0, 0xff] Data type: CVI_U8 |
AdaptNrChromaStrOut |
TNR Momentum vs Strength Gain Characteristics Table. An array of four sets of values. When the value is higher, the protected motion area will be more inclined to the original pixel value output. Conversely, the lower the value, the more inclined the pixel value output after temporal noise reduction. Value range: [0x0, 0xff] Data type: CVI_U8 |
【Note】
None
【Related Data Type and Interface】
16.3.18. ISP_TNR_MOTION_ADAPT_ATTR_S¶
【Description】
Parameter Description of momentum versus strength gain
【Syntax】
typedef struct _ISP_TNR_MOTION_ADAP_ATTR_S {
ISP_TNR_MOTION_ADAPT_MANUAL_ATTR_S stManual;
ISP_TNR_MOTION_ADAPT_AUTO_ATTR_S stAuto;
} ISP_TNR_MOTION_ADAPT_ATTR_S;
【Member】
Member |
Description |
---|---|
stManual |
Manual mode parameter attribute |
stAuto |
Auto mode parameter attribute |
【Note】
None
【Related Data Type and Interface】