7.4. Data Types¶
Relevant data types and data structures are defined as follows:
VENC_MAX_CHN_NUM: Define the maximum number of channels.
VENC_CHN_PARAM_S: Define the Venc channel parameter structure.
VENC_PACK_S: Define frame stream packet structure .
VENC_STREAM_S: Define the frame stream type structure.
VENC_ATTR_S: Define the encoder attribute structure.
VENC_GOP_ATTR_S: Define the structure of GOP mode type.
VENC_GOP_NORMALP_S: Define the normalP structure
VENC_GOP_SMARTP_S: Define the SmartP structure
VENC_CHN_ATTR_S: Define the encoding channel attribute structure.
VENC_RECV_PIC_PARAM_S: Define the frame number structure that the coding channel continuously receives and encodes.
VENC_CHN_STATUS_S: Define the state structure of the encoding channel.
VENC_JPEG_PARAM_S: Define a set of JPEG encoding parameters.
VENC_RC_ATTR_S: Define the rate controller attribute of the coding channel.
VENC_H264_CBR_S: Define the CBR attribute structure of H.264 coding channel.
VENC_H264_VBR_S: Define the VBR attribute structure of H.264 coding channel.
VENC_H264_QVBR_S: Define the QVBR attribute structure of H.264 coding channel.
VENC_H264_FIXQP_S: Define the Fixqp attribute structure of H.264 coding channel.
VENC_H264_QPMAP_S: Define the QPMAP attribute structure of H.264 coding channel.
VENC_MJPEG_FIXQP_S: Define the Fixqp attribute structure of MJPEG encoding channel.
VENC_MJPEG_CBR_S: Define the CBR attribute structure of MJPEG encoding channel.
VENC_MJPEG_VBR_S: Define the VBR attribute structure of MJPEG encoding channel.
VENC_H265_CBR_S: Define the CBR attribute structure of H.265 coding channel.
VENC_H265_VBR_S: Define the VBR attribute structure of H.265 coding channel.
VENC_H265_AVBR_S: Define the AVBR attribute structure of H.265 coding channel.
VENC_H265_QVBR_S: Define the QVBR attribute structure of H.265 coding channel.
VENC_H265_FIXQP_S: Define the Fixqp attribute structure of H.265 coding channel.
VENC_H265_QPMAP_S: Define the QPMAP attribute structure of H.265 coding channel.
VENC_RC_PARAM_S: Define the advanced rate control parameters of the coding channel.
VENC_CHN_POOL_S: Define the VB pool structure which is bound by encoding channel
VENC_H264_ENTROPY_S: Define H.264 entropy coding information structure
VENC_CU_PREDICTION_S: Define CU prediction information structure
7.4.1. VENC_MAX_CHN_NUM¶
【Description】
Define the maximum number of channels for encoding
【Syntax】
#define VENC_MAX_CHN_NUM 16
【Member】
【Note】
Because the maximum number of channels is related to memory allocation, it is not open for expansion at present.
【Related Data Type and Interface】
None.
7.4.2. VENC_CHN_PARAM_S¶
【Description】
Define the Venc channel parameter structure.
【Syntax】
typedef struct _VENC_CHN_PARAM_S {
CVI_BOOL bColor2Grey;
CVI_U32 u32Priority
CVI_U32 u32MaxStrmCnt;
CVI_U32 u32PollWakeUpFrmCnt;
VENC_CROP_INFO_S stCropCfg;
VENC_FRAME_RATE_S stFrameRate;
} VENC_CHN_PARAM_S;
【Member】
Member |
Description |
---|---|
bColor2Grey |
Reserved, not used yet |
u32Priority |
Reserved, not used yet |
u32MaxStrmCnt |
Reserved, not used yet |
u32PollWakeUpFrmCnt |
Reserved, not used yet |
stCropCfg |
Channel intercept (Crop) parameter |
stFrameRate |
Channel frame rate control parameters |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetChnParam
7.4.3. VENC_PACK_S¶
【Description】
Define the frame stream packet structure.
【Syntax】
typedef struct _VENC_PACK_S {
CVI_U64 u64PhyAddr;
CVI_U8 ATTRIBUTE *pu8Addr;
CVI_U32 ATTRIBUTE u32Len;
CVI_U64 u64PTS;
CVI_BOOL bFrameEnd;
VENC_DATA_TYPE_U DataType;
CVI_U32 u32Offset;
CVI_U32 u32DataNum;
VENC_PACK_INFO_S stPackInfo[8];
} VENC_PACK_S;
【Member】
Member |
Description |
---|---|
u64PhyAddr |
The first physical address of the bitstream. |
pu8Addr |
The first virtual address of the bitstream. |
u32Len |
The length of the stream packet. |
DataType |
Stream type, support H.264/JPEG/H.265 protocol type packet. |
bFrameEnd |
End of frame identifier. CVI_TRUE: the stream packet is the last packet of the frame. CVI_FALSE: the stream packet is not the last packet of the frame. |
u32Offset |
The offset between the valid data in the stream packet and the first address pu8Addr of the stream packet. |
u64PTS |
Time stamp. Unit: us. |
u32DataNum |
The number of other types of code stream packets in the current code stream packet (the type of current packet is specified by DataType). |
stPackInfo[8] |
The current stream packet contains other types of stream packet information. |
【Note】
None.
【Related Data Type and Interface】
7.4.4. VENC_STREAM_S¶
【Description】
Define the frame stream type structure.
【Syntax】
typedef struct _VENC_STREAM_S {
VENC_PACK_S ATTRIBUTE *pstPack;
CVI_U32 ATTRIBUTE u32PackCount;
CVI_U32 u32Seq;
union {
VENC_STREAM_INFO_H264_S stH264Info;
VENC_STREAM_INFO_JPEG_S stJpegInfo;
VENC_STREAM_INFO_H265_S stH265Info;
VENC_STREAM_INFO_PRORES_S stProresInfo;
};
union {
VENC_STREAM_ADVANCE_INFO_H264_S stAdvanceH264Info;
VENC_STREAM_ADVANCE_INFO_JPEG_S stAdvanceJpegInfo;
VENC_STREAM_ADVANCE_INFO_H265_S stAdvanceH265Info;
VENC_STREAM_ADVANCE_INFO_PRORES_S stAdvanceProresInfo;
};
} VENC_STREAM_S;
【Member】
Member |
Description |
---|---|
pstPack |
Frame stream packet structure. |
u32PackCount |
The number of all packets in a frame stream. |
u32Seq |
Code stream sequence number. |
stH264Info/stJpegInfo/stH265Info/stProresInfo |
Stream information. |
stAdvanceH264Info/stAdvanceJpegInfo/stAdvanceH265Info/stAdvanceProresInfo |
Bit stream advanced information. |
【Note】
None.
【Related Data Type and Interface】
7.4.5. VENC_GOP_ATTR_S¶
【Description】
Define the encoder GOP attribute structure.
【Syntax】
typedef struct _VENC_GOP_ATTR_S {
VENC_GOP_MODE_E enGopMode;
union {
VENC_GOP_NORMALP_S stNormalP;
VENC_GOP_DUALP_S stDualP;
VENC_GOP_SMARTP_S stSmartP;
VENC_GOP_ADVSMARTP_S stAdvSmartP;
VENC_GOP_BIPREDB_S stBipredB;
};
} VENC_GOP_ATTR_S;
【Member】
Member |
Description |
---|---|
enGopMode |
Encoding GOP type. |
stNormalP |
Encoding single reference frame P frame GOP attribute structure. |
stDualP |
Reserved, not used yet |
stSmartP |
Encoding intelligent P-frame GOP attribute structure |
stAdvSmartP |
Reserved, not used yet |
stBipredB |
Reserved, not used yet |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.6. VENC_GOP_NORMALP_S¶
【Description】
Define the encoder NormalP GOP attribute structure
【Syntax】
typedef struct _VENC_GOP_NORMALP_S {
CVI_S32 s32IPQpDelta;
} VENC_GOP_NORMALP_S;
【Member】
Member |
Description |
---|---|
s32IPQpDelta |
QP difference between I frame and P frame |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.7. VENC_GOP_SMARTP_S¶
【Description】
Define the encoder SmartP GOP attribute structure
【Syntax】
typedef struct _VENC_GOP_SMARTP_S {
CVI_U32 u32BgInterval;
CVI_S32 s32BgQpDelta;
CVI_S32 s32ViQpDelta;
} VENC_GOP_SMARTP_S;
【Member】
Member |
Description |
---|---|
u32BgInterval |
IDR frame interval |
s32BgQpDelta |
QP difference between IDR frame and P frame |
s32ViQpDelta |
QP difference between Vi frame and P frame |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.8. VENC_RECV_PIC_PARAM_S¶
【Description】
Defines the frame number structure that the coding channel continuously receives and encodes.
【Syntax】
typedef struct _VENC_RECV_PIC_PARAM_S {
CVI_S32 s32RecvPicNum;
} VENC_RECV_PIC_PARAM_S;
【Member】
Member |
Description |
---|---|
s32RecvPicNum |
The number of frames continuously received and encoded by the encoding channel. Range: [- 1,0) ∪ (0 ∞] |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_StartRecvFrame
7.4.9. VENC_CHN_ATTR_S¶
【Description】
Define VENC_CHN_ATTR_S attribute.
【Syntax】
typedef struct _VENC_CHN_ATTR_S {
VENC_ATTR_S stVencAttr;
VENC_RC_ATTR_S stRcAttr;
VENC_GOP_ATTR_S stGopAttr;
} VENC_CHN_ATTR_S;
【Member】
Member |
Description |
---|---|
stVencAttr |
Venc attribute |
stRcAtt |
Rate controller properties. |
stGopAttr |
GOP Mode type structure. Please refer to the above typedef struct _VENC_GOP_ATTR_S |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.10. VENC_ATTR_S¶
【Description】
Define VENC_ATTR_S attribute.
【Syntax】
typedef struct _VENC_ATTR_S {
PAYLOAD_TYPE_E enType;
CVI_U32 u32MaxPicWidth;
CVI_U32 u32MaxPicHeight;
CVI_U32 u32BufSize;
CVI_U32 u32Profile;
CVI_BOOL bByFrame;
CVI_U32 u32PicWidth;
CVI_U32 u32PicHeight;
CVI_BOOL bSingleCore;
CVI_BOOL bEsBufQueueEn;
CVI_BOOL bIsoSendFrmEn;
union {
VENC_ATTR_H264_S stAttrH264e;
VENC_ATTR_H265_S stAttrH265e;
VENC_ATTR_JPEG_S stAttrJpege;
VENC_ATTR_PRORES_S stAttrProres;
};
} VENC_ATTR_S;
【Member】
Member |
Description |
---|---|
enType |
payload type. |
u32MaxPicWidth |
Maximum encoded image width |
u32MaxPicHeight |
Maximum encoded image height |
u32BufSize |
Encoded bitstream buffer size |
u32Profile |
Coding level |
bByFrame |
Encoded bitstream collection method CVI_TRUE: mainly in frame CVI_FALSE: Mainly in packets |
u32PicWidth |
Encoded image width |
u32PicHeight |
Encoded image height |
bSingleCore |
Only H264 or H265 is used |
bEsBufQueueEn |
Use an es buffer queue |
bIsoSendFrmEn |
Removes the restriction that SendFrame/GetStream must be paired |
stAttrH264e / stAttrH265e /stAttrJpege / stAttrProres |
Encoder attribute |
【Note】
Open bIsoSendFrmEn at the same time as bEsBufQueueEn, otherwise there will be a burst screen
The bIsoSendFrmEn function must be disabled in dual-system, the dual-system removes the restriction that SendFrame/GetStream must be paired by default
【Related Data Type and Interface】
7.4.11. VENC_ATTR_H264_S¶
【Description】
Define H264 encoding attribute.
【Syntax】
typedef struct _VENC_ATTR_H264_S {
CVI_BOOL bRcnRefShareBuf;
CVI_BOOL bSingleLumaBuf;
} VENC_ATTR_H264_S;
【Member】
Member |
Description |
---|---|
bRcnRefShareBuf |
Reserved |
bSingleLumaBuf |
|
【Note】
None.
【Related Data Type and Interface】
7.4.12. VENC_ATTR_H265_S¶
【Description】
Define H265 encoding attribute.
【Syntax】
typedef struct _VENC_ATTR_H265_S {
CVI_BOOL bRcnRefShareBuf;
} VENC_ATTR_H265_S;
【Member】
Member |
Description |
---|---|
bRcnRefShareBuf |
Reserved |
【Note】
None.
【Related Data Type and Interface】
7.4.13. VENC_STREAM_INFO_S¶
【Description】
Define VENC_STREAM_INFO_S attribute.
【Syntax】
typedef struct _ VENC_STREAM_INFO_S {
H265E_REF_TYPE_E enRefType;
CVI_U32 u32PicBytesNum;
CVI_U32 u32PicCnt;
CVI_U32 u32StartQp;
CVI_U32 u32MeanQp;
CVI_BOOL bPSkip;
CVI_U32 u32ResidualBitNum;
CVI_U32 u32HeadBitNum;
CVI_U32 u32MadiVal;
CVI_U32 u32MadpVal;
CVI_U32 u32MseSum;
CVI_U32 u32MseLcuCnt;
double dPSNRVal;
} VENC_STREAM_INFO_S;
【Member】
Member |
Description |
---|---|
u32MeanQp |
The average QP of the current Frame |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_QueryStatus
7.4.14. VENC_CHN_STATUS_S¶
【Description】
Define VENC_CHN_STATUS_S attribute.
【Syntax】
typedef struct _VENC_CHN_STATUS_S {
CVI_U32 u32LeftPics;
CVI_U32 u32LeftStreamBytes;
CVI_U32 u32LeftStreamFrames;
CVI_U32 u32CurPacks;
CVI_U32 u32LeftRecvPics;
CVI_U32 u32LeftEncPics;
CVI_BOOL bJpegSnapEnd;
VENC_STREAM_INFO_S stVencStrmInfo;
} VENC_CHN_STATUS_S;
【Member】
Member |
Description |
---|---|
u32LeftPics |
Reserved |
u32LeftStreamBytes |
Reserved |
u32LeftStreamFrames |
Number of remaining frames to be received |
u32CurPacks |
The number of packets currently in the Frame |
u32LeftRecvPics |
Reserved |
u32LeftEncPics |
Reserved |
bJpegSnapEnd |
Reserved |
stVencStrmInfo |
Reserved |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_QueryStatus
7.4.15. VENC_JPEG_PARAM_S¶
【Description】
Define advanced parameters for JPEG encoding protocol.
【Syntax】
typedef struct _VENC_JPEG_PARAM_S {
CVI_U32 u32Qfactor;
CVI_U8 u8YQt[64];
CVI_U8 u8CbQt[64];
CVI_U8 u8CrQt[64];
CVI_U32 U32MCUPerECS;
} VENC_JPEG_PARAM_S;
【Member】
Member |
Description |
---|---|
u32Qfactor |
For details, see RFC2435. The default value is 0. |
u8YQt |
Y quantization table. (not implemented) |
u8CbQt |
Cb quantization table. (not implemented) |
u8CrQt |
Cr quantization table. (not implemented) |
u32MCUPerECS |
How many MCU are contained in each ECS? The default value is 0, indicating that Ecs are not divided. (not implemented) |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetJpegParam
CVI_VENC_GetJpegParam
7.4.16. VENC_RC_ATTR_S¶
【Description】
Defines the rate controller attribute of the coding channel.
【Syntax】
typedef struct _VENC_RC_ATTR_S {
VENC_RC_MODE_E enRcMode;
union {
VENC_H264_CBR_S stH264Cbr;
VENC_H264_VBR_S stH264Vbr;
VENC_H264_AVBR_S stH264AVbr;
VENC_H264_QVBR_S stH264QVbr;
VENC_H264_FIXQP_S stH264FixQp;
VENC_H264_QPMAP_S stH264QpMap;
VENC_MJPEG_CBR_S stMjpegCbr;
VENC_MJPEG_VBR_S stMjpegVbr;
VENC_MJPEG_FIXQP_S stMjpegFixQp;
VENC_H265_CBR_S stH265Cbr;
VENC_H265_VBR_S stH265Vbr;
VENC_H265_AVBR_S stH265AVbr;
VENC_H265_QVBR_S stH265QVbr;
VENC_H265_FIXQP_S stH265FixQp;
VENC_H265_QPMAP_S stH265QpMap;
};
} VENC_RC_ATTR_S;
【Member】
Member |
Description |
---|---|
enRcMode |
RC mode. |
stH264Cbr |
H.264 protocol coding channel Cbr mode attribute. |
stH264Vbr |
H.264 protocol coding channel Vbr mode attribute. |
stH264AVbr |
H.264 protocol coding channel AVbr mode attribute. |
stH264QVbr |
H.264 protocol coding channel QVbr mode attribute. |
stH264CVbr |
H.264 protocol coding channel CVbr mode attribute. |
stH264FixQp |
H.264 protocol coding channel Fixqp mode attribute. |
stH264QpMap |
H.264 protocol coding channel QPMAP mode attribute. |
stMjpegeFixQp |
Mjpeg protocol coding channel Fixqp mode attribute. |
stMjpegeCbr |
Mjpeg protocol coding channel cbr mode attribute. |
stMjpegeVbr |
Mjpeg protocol coding channel vbr mode attribute. |
stH265Cbr |
H.265 protocol coding channel Cbr mode attribute. |
stH265Vbr |
H.265 protocol coding channel Vbr mode attribute. |
stH265AVbr |
H.265 protocol coding channel AVbr mode attribute. |
stH265QVbr |
H.265 protocol coding channel QVbr mode attribute. |
stH265CVbr |
H.265 protocol coding channel CVbr mode attribute. |
stH265FixQp |
H.265 protocol coding channel Fixqp mode attribute. |
stH265QpMap |
H.265 protocol coding channel QPMAP mode attribute. |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.17. VENC_H264_CBR_S¶
【Description】
Structure definition for H.264 video encoding channel’s CBR properties.
【Syntax】
typedef struct _VENC_H264_CBR_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32BitRate;
CVI_BOOL bVariFpsEn;
} VENC_H264_CBR_S;
【Member】
Member |
Description |
---|---|
u32Gop |
H.264 gop value. Range: [1, 65536]。 |
u32StatTime |
CBR rate statistics time, in seconds. Range: [1, 60]. |
u32SrcFrameRate |
Input frame rate in fps. |
fr32DstFrameRate |
Encoder output frame rate, in fps. |
u32BitRate |
Average bitrate in kbps. |
bVariFpsEn |
Enable Variable FPS. After this function is enabled, the Frame rate conversion function is enabled and disabled. |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.18. VENC_H264_VBR_S¶
【Description】
Structure definition for H.264 video encoding channel’s VBR properties.
【Syntax】
typedef struct _VENC_H264_VBR_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32MaxBitRate;
CVI_BOOL bVariFpsEn;
} VENC_H264_VBR_S;
【Member】
Member |
Description |
---|---|
u32Gop |
H.264 gop value Range: [1, 65536]。 |
u32StatTime |
VBR rate statistics time, in seconds.. Range: [1, 60]. |
u32SrcFrameRate |
Input frame rate in fps, |
fr32DstFrameRate |
Encoder output frame rate, in fps. |
u32MaxBitRate |
Maximum output bitrate of the encoder, in kbps. |
bVariFpsEn |
Enable Variable FPS. After this function is enabled, the Frame rate conversion function is enabled and disabled. |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.19. VENC_H264_AVBR_S¶
【Description】
Structure definition for H.264 video encoding channel’s AVBR properties.
【Syntax】
typedef struct _VENC_H264_AVBR_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32MaxBitRate;
CVI_BOOL bVariFpsEn;
} VENC_H264_AVBR_S;
【Member】
Member |
Description |
---|---|
u32Gop |
H.264 gop value. Range: [1, 65536]。 |
u32StatTime |
VBR rate statistics time, in seconds.. Range: [1, 60]. |
u32SrcFrameRate |
Input frame rate in fps. |
fr32DstFrameRate |
Encoder output frame rate, in fps. |
u32MaxBitRate |
Maximum output bitrate of the encoder, in kbps. |
bVariFpsEn |
Enable Variable FPS. After this function is enabled, the Frame rate conversion function is enabled and disabled. |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.20. VENC_H264_FIXQP_S¶
【Description】
Structure definition for H.264 video encoding channel’s FIXQP properties.
【Syntax】
typedef struct _VENC_H264_FIXQP_S {
CVI_U32 u32Gop;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate
CVI_U32 u32IQp;
CVI_U32 u32PQp;
CVI_U32 u32BQp;
CVI_BOOL bVariFpsEn;
} VENC_H264_FIXQP_S;
【Member】
Member |
Description |
---|---|
u32Gop |
H.264 gop value Range: [1, 65536]。 |
u32IQp |
QP value of all macroblocks in I frame. |
u32SrcFrameRate |
Input frame rate in fps. |
fr32DstFrameRate |
Encoder output frame rate, in fps. |
u32PQp |
The QP value of all macroblocks in P frame. |
u32BQp |
QP values of all macroblocks in B frame. |
bVariFpsEn |
Enable Variable FPS. After this function is enabled, the Frame rate conversion function is enabled and disabled. |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.21. VENC_H264_QPMAP_S¶
【Description】
Structure definition for H.264 video encoding channel’s QPMAP properties.
【Syntax】
typedef struct _VENC_H264_QPMAP_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_BOOL bVariFpsEn;
} VENC_H264_QPMAP_S;
【Member】
Member |
Description |
---|---|
u32Gop |
H.264 gop value Range: [1, 65536]。 |
u32SrcFrameRate |
Input frame rate in fps. |
fr32DstFrameRate |
Encoder output frame rate, in fps. |
u32StatTime |
QPMAP rate statistics time, in seconds.. |
bVariFpsEn |
Enable Variable FPS. After this function is enabled, the Frame rate conversion function is enabled and disabled. |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.22. VENC_MJPEG_FIXQP_S¶
【Description】
Structure definition for MJPEG video encoding channel’s FIXQP properties.
【Syntax】
typedef struct _VENC_MJPEG_FIXQP_S {
CVI_U32 u32SrcFrameRate
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32Qfactor;
CVI_BOOL bVariFpsEn;
} VENC_MJPEG_FIXQP_S;
【Member】
Member |
Description |
---|---|
u32SrcFrameRate |
Input frame rate in fps. |
fr32DstFrameRate |
Encoder output frame rate, in fps. |
bVariFpsEn |
Enable Variable FPS. After this function is enabled, the Frame rate conversion function is enabled and disabled. |
u32Qfactor |
Qfactor of MJPEG encoding |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.23. VENC_MJPEG_CBR_S¶
【Description】
Structure definition for MJPEG video encoding channel’s CBR properties.
【Syntax】
typedef struct _VENC_MJPEG_CBR_S {
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32BitRate;
CVI_BOOL bVariFpsEn;
} VENC_MJPEG_CBR_S;
【Member】
Member |
Description |
---|---|
u32StatTime |
CBR rate statistics time, in seconds.. |
u32BitRate |
Average bitrate in kbps. |
u32SrcFrameRate |
Input frame rate in fps. |
fr32DstFrameRate |
Encoder output frame rate, in fps. |
bVariFpsEn |
Enable Variable FPS. After this function is enabled, the Frame rate conversion function is enabled and disabled. |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.24. VENC_H265_CBR_S¶
【Description】
Structure definition for H.265 video encoding channel’s CBR properties.
【Syntax】
typedef struct _VENC_H264_CBR_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32BitRate;
CVI_BOOL bVariFpsEn;
} VENC_H264_CBR_S;
typedef struct _VENC_H264_CBR_S VENC_H265_CBR_S;
【Member】
Member |
Description |
---|---|
u32Gop |
H.265 gop value |
u32StatTime |
CBR rate statistics time, in seconds.. |
u32SrcFrameRate |
Input frame rate in fps. |
fr32DstFrameRate |
Encoder output frame rate, in fps. |
u32BitRate |
Average bitrate in kbps. |
bVariFpsEn |
Enable Variable FPS. After this function is enabled, the Frame rate conversion function is enabled and disabled. |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.25. VENC_H265_VBR_S¶
【Description】
Structure definition for H.265 video encoding channel’s VBR properties.
【Syntax】
typedef struct _VENC_H264_FIXQP_S {
CVI_U32 u32Gop;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate
CVI_U32 u32IQp;
CVI_U32 u32PQp;
CVI_U32 u32BQp;
CVI_BOOL bVariFpsEn;
} VENC_H264_FIXQP_S;
【Member】
Member |
Description |
---|---|
u32Gop |
H.265 gop value |
u32StatTime |
VBR rate statistics time, in seconds.. |
u32SrcFrameRate |
Input frame rate in fps. |
fr32DstFrameRate |
Encoder output frame rate, in fps. |
u32MaxBitRate |
Maximum output bitrate of the encoder, in kbps. |
bVariFpsEn |
Enable Variable FPS. After this function is enabled, the Frame rate conversion function is enabled and disabled. |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.26. VENC_H265_AVBR_S¶
【Description】
Structure definition for H.265 video encoding channel’s AVBR properties.
【Syntax】
typedef struct _VENC_H264_AVBR_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32MaxBitRate;
CVI_BOOL bVariFpsEn;
} VENC_H264_AVBR_S;
typedef struct _VENC_H264_AVBR_S VENC_H265_AVBR_S;
【Member】
Member |
Description |
---|---|
u32Gop |
H.265 gop value. range |
u32StatTime |
AVBR rate statistics time, in seconds. |
u32SrcFrameRate |
Input frame rate in fps. |
fr32DstFrameRate |
Encoder output frame rate, in fps. |
u32MaxBitRate |
Maximum output bitrate of the encoder, in kbps. |
bVariFpsEn |
Enable Variable FPS. After this function is enabled, the Frame rate conversion function is enabled and disabled. |
u32Gop |
H.264 gop value. Range: [1, 65536]。 |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.27. VENC_H265_FIXQP_S¶
【Description】
Structure definition for H.265 video encoding channel’s FIXQP properties.
【Syntax】
typedef struct _VENC_H264_FIXQP_S {
CVI_U32 u32Gop;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32IQp;
CVI_U32 u32PQp;
CVI_U32 u32BQp;
CVI_BOOL bVariFpsEn;
} VENC_H264_FIXQP_S;
typedef struct _VENC_H264_FIXQP_S VENC_H265_FIXQP_S;
【Member】
Member |
Description |
---|---|
u32Gop |
H.265 gop value |
u32IQp |
QP value of all macroblocks in I frame. |
u32SrcFrameRate |
Input frame rate in fps. |
fr32DstFrameRate |
Encoder output frame rate, in fps. |
u32PQp |
QP value of all macroblocks in P frame. |
u32BQp |
Reserved |
bVariFpsEn |
Enable Variable FPS. After this function is enabled, the Frame rate conversion function is enabled and disabled. |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.28. VENC_H265_QPMAP_S¶
【Description】
Structure definition for H.265 video encoding channel’s QPMAP properties.
【Syntax】
typedef struct _VENC_H265_QPMAP_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
VENC_RC_QPMAP_MODE_E enQpMapMode;
CVI_BOOL bVariFpsEn;
} VENC_H265_QPMAP_S;
【Member】
Member |
Description |
---|---|
u32Gop |
H.264 gop value Range: [1, 65536]。 |
u32StatTime |
VBR rate statistical time in seconds |
u32SrcFrameRate |
Input frame rate in fps. |
fr32DstFrameRate |
Encoder output frame rate, in fps. |
enQpMapMode |
The method of selecting the QP value as either CU32 or CU64 |
u32BQp |
QP values of all macroblocks in B frame. |
bVariFpsEn |
Enable Variable FPS. After this function is enabled, the Frame rate conversion function is enabled and disabled. |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_CreateChn
7.4.29. VENC_RC_PARAM_S¶
【Description】
Definition of advanced bitrate control parameters for encoding channels. Main structure for bitrate control.
【Syntax】
typedef struct _VENC_RC_PARAM_S {
CVI_U32 u32ThrdI[RC_TEXTURE_THR_SIZE];
CVI_U32 u32ThrdP[RC_TEXTURE_THR_SIZE];
CVI_U32 u32ThrdB[RC_TEXTURE_THR_SIZE];
CVI_U32 u32DirectionThrd;
CVI_S32 s32FirstFrameStartQp;
CVI_S32 s32InitialDelay;
CVI_U32 u32ThrdLv;
CVI_BOOL bBgEnhanceEn;
CVI_S32 s32BgDeltaQp;
union {
VENC_PARAM_H264_CBR_S stParamH264Cbr;
VENC_PARAM_H264_VBR_S stParamH264Vbr;
VENC_PARAM_H264_AVBR_S stParamH264AVbr;
VENC_PARAM_H264_QVBR_S stParamH264QVbr;
VENC_PARAM_H265_CBR_S stParamH265Cbr;
VENC_PARAM_H265_VBR_S stParamH265Vbr;
VENC_PARAM_H265_AVBR_S stParamH265AVbr;
VENC_PARAM_H265_QVBR_S stParamH265QVbr;
VENC_PARAM_MJPEG_CBR_S stParamMjpegCbr;
VENC_PARAM_MJPEG_VBR_S stParamMjpegVbr;
};
} VENC_RC_PARAM_S;
【Member】
Member |
Description |
---|---|
u32ThrdI |
Reserved |
u32ThrdP |
Reserved |
u32ThrdB |
Reserved |
u32DirectionThrd |
Reserved |
u32RowQpDelta |
The fluctuation amplitude value of the starting Qp for each row of macroblocks in macroblock-level bitrate control relative to the starting Qp of the frame. |
s32FirstFrameStartQp |
Set the initial Qp value of the first frame, CBR/VBR/AVBR/QVBR/CVBR is valid. |
stSceneChangeDetect |
Reserved |
s32InitialDelay |
Influence the frame encoding of the bitrate control. |
u32ThrdLv |
MAD threshold for macroblock level rate control |
bBgEnhanceEn |
Reserved |
s32BgDeltaQp |
The QP difference between IDR frame and P frame in smartP mode. |
stParamH264Cbr |
Advanced parameters for CBR rate control mode in H.264 channel. |
stParamH264Vbr |
Advanced parameters for VBR rate control mode in H.264 channel. |
stParamH264AVbr |
Advanced parameters for AVBR rate control mode in H.264 channel. |
stParamH264QVbr |
Reserved |
stParamH264CVbr |
Reserved |
stParamMjpegCbr |
Advanced parameters for CBR rate control mode in MJPEG channel. |
stParamMjpegVbr |
Reserved |
stParamH265Cbr |
Advanced parameters for CBR rate control mode in H.265 channel. |
stParamH265Vbr |
Advanced parameters for VBR rate control mode in H.265 channel. |
stParamH265AVbr |
Advanced parameters for AVBR rate control mode in H.265 channel. |
stParamH265QVbr |
Reserved |
stParamH265CVbr |
Reserved |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetRcParam
CVI_VENC_GetRcParam
7.4.30. VENC_PARAM_H264_CBR_S¶
【Description】
Definition of H.264 CBR advanced parameters
【Syntax】
typedef struct _VENC_PARAM_H264_CBR_S {
CVI_U32 u32MinIprop;
CVI_U32 u32MaxIprop;
CVI_U32 u32MaxQp;
CVI_U32 u32MinQp;
CVI_U32 u32MaxIQp;
CVI_U32 u32MinIQp;
CVI_S32 s32MaxReEncodeTimes;
CVI_BOOL bQpMapEn;
} VENC_PARAM_H264_CBR_S;
【Member】
Member |
Description |
---|---|
u32MinIprop |
minimum IP ratio |
u32MaxIprop |
maximum IP ratio |
u32MaxQp |
Minimum QP |
u32MinQp |
Maximum QP |
u32MaxIQp |
Maximum QP for I-frames |
u32MinIQp |
Minimum QP for I-frames |
s32MaxReEncodeTimes |
Reserved |
CVI_BOOL bQpMapEn |
Reserved |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetRcParam
CVI_VENC_GetRcParam
7.4.31. VENC_PARAM_H264_VBR_S¶
【Description】
Definition of H.264 VBR advanced parameters
【Syntax】
typedef struct _VENC_PARAM_H264_VBR_S {
CVI_S32 s32ChangePos;
CVI_U32 u32MinIprop;
CVI_U32 u32MaxIprop;
CVI_S32 s32MaxReEncodeTimes;
CVI_BOOL bQpMapEn;
CVI_U32 u32MaxQp;
CVI_U32 u32MinQp;
CVI_U32 u32MaxIQp;
CVI_U32 u32MinIQp;
} VENC_PARAM_H264_VBR_S;
【Member】
Member |
Description |
---|---|
s32ChangePos |
bitrate control threshold |
u32MinIprop |
Reserved |
u32MaxIprop |
maximum IP ratio |
s32MaxReEncodeTimes |
Reserved |
CVI_BOOL bQpMapEn |
Reserved |
u32MaxQp |
Maximum QP |
u32MinQp |
Minimum QP |
u32MaxIQp |
maximum QP for I-frames |
u32MinIQp |
minimum QP for I-frames |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetRcParam
CVI_VENC_GetRcParam
7.4.32. VENC_PARAM_H264_AVBR_S¶
【Description】
Definition of H.264 AVBR advanced parameters
【Syntax】
typedef struct _VENC_PARAM_H264_AVBR_S {
CVI_S32 s32ChangePos;
CVI_U32 u32MinIprop;
CVI_U32 u32MaxIprop;
CVI_S32 s32MaxReEncodeTimes;
CVI_BOOL bQpMapEn;
CVI_S32 s32MinStillPercent;
CVI_U32 u32MaxStillQP;
CVI_U32 u32MinStillPSNR;
CVI_U32 u32MaxQp;
CVI_U32 u32MinQp;
CVI_U32 u32MaxIQp;
CVI_U32 u32MinIQp;
CVI_U32 u32MinQpDelta;
CVI_U32 u32MotionSensitivity;
CVI_S32 s32AvbrFrmLostOpen;
CVI_S32 s32AvbrFrmGap;
CVI_S32 s32AvbrPureStillThr;
} VENC_PARAM_H264_AVBR_S;
【Member】
Member |
Description |
---|---|
s32ChangePos |
bitrate control threshold |
u32MinIprop |
Reserved |
u32MaxIprop |
maximum IP ratio |
s32MaxReEncodeTimes |
Reserved |
CVI_BOOL bQpMapEn |
Reserved |
s32MinStillPercent |
minimum bitrate percentage for static scenes |
u32MaxStillQP |
Maximum QP for static scenes |
u32MinStillPSNR |
Reserved |
u32MaxQp |
Maximum QP |
u32MinQp |
Minimum QP |
u32MaxIQp |
Maximum QP for I-frames |
u32MinIQp |
Minimum QP for I-frames |
u32MinQpDelta |
The difference between frame-level minimum QP and macroblock-level minimum QP |
u32MotionSensitivity |
Motion sensitivity |
s32AvbrFrmLostOpen |
Frame dropping enable |
s32AvbrFrmGap |
Maximum number of dropped frames |
s32AvbrPureStillThr |
Still macroblock threshold value |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetRcParam
CVI_VENC_GetRcParam
7.4.33. VENC_PARAM_H265_CBR_S¶
【Description】
Definition of H.265 CBR advanced parameters
【Syntax】
typedef struct _VENC_PARAM_H265_CBR_S {
CVI_U32 u32MinIprop;
CVI_U32 u32MaxIprop;
CVI_U32 u32MaxQp;
CVI_U32 u32MinQp;
CVI_U32 u32MaxIQp;
CVI_U32 u32MinIQp;
CVI_S32 s32MaxReEncodeTimes;
CVI_BOOL bQpMapEn;
VENC_RC_QPMAP_MODE_E enQpMapMode;
} VENC_PARAM_H265_CBR_S;
【Member】
Member |
Description |
---|---|
u32MinIprop |
Reserved |
u32MaxIprop |
Reserved |
u32MaxQp |
Maximum QP |
u32MinQp |
Minimum QP |
u32MaxIQp |
Maximum QP for I-frames |
u32MinIQp |
Minimum QP for I-frames |
s32MaxReEncodeTimes |
Reserved |
bQpMapEn |
Enable QP map feature or not |
enQpMapMode |
QpMap mode |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetRcParam
CVI_VENC_GetRcParam
7.4.34. VENC_PARAM_H265_VBR_S¶
【Description】
Definition of H.265 VBR advanced parameters
【Syntax】
typedef struct _VENC_PARAM_H265_VBR_S {
CVI_S32 s32ChangePos;
CVI_U32 u32MinIprop;
CVI_U32 u32MaxIprop;
CVI_S32 s32MaxReEncodeTimes;
CVI_U32 u32MaxQp;
CVI_U32 u32MinQp;
CVI_U32 u32MaxIQp;
CVI_U32 u32MinIQp;
CVI_BOOL bQpMapEn;
VENC_RC_QPMAP_MODE_E enQpMapMode;
} VENC_PARAM_H265_VBR_S;
【Member】
Member |
Description |
---|---|
s32ChangePos |
bitrate control threshold |
u32MinIprop |
Reserved |
u32MaxIprop |
Reserved |
s32MaxReEncodeTimes |
Reserved |
u32MaxQp |
Maximum QP |
u32MinQp |
Minimum QP |
u32MaxIQp |
Maximum QP for I-frames |
u32MinIQp |
Minimum QP for I-frames |
CVI_BOOL bQpMapEn |
Reserved |
enQpMapMode |
Reserved |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetRcParam
CVI_VENC_GetRcParam
7.4.35. VENC_PARAM_H265_AVBR_S¶
【Description】
Definition of H.265 AVBR advanced parameters
【Syntax】
typedef struct _VENC_PARAM_H265_AVBR_S {
CVI_S32 s32ChangePos;
CVI_U32 u32MinIprop;
CVI_U32 u32MaxIprop;
CVI_S32 s32MaxReEncodeTimes;
CVI_S32 s32MinStillPercent;
CVI_U32 u32MaxStillQP;
CVI_U32 u32MinStillPSNR;
CVI_U32 u32MaxQp;
CVI_U32 u32MinQp;
CVI_U32 u32MaxIQp;
CVI_U32 u32MinIQp;
CVI_U32 u32MinQpDelta;
CVI_U32 u32MotionSensitivity;
CVI_S32 s32AvbrFrmLostOpen;
CVI_S32 s32AvbrFrmGap;
CVI_S32 s32AvbrPureStillThr;
CVI_BOOL bQpMapEn;
VENC_RC_QPMAP_MODE_E enQpMapMode;
} VENC_PARAM_H265_AVBR_S;
【Member】
Member |
Description |
---|---|
s32ChangePos |
Bitrate control threshold |
u32MinIprop |
Reserved |
u32MaxIprop |
Reserved |
s32MaxReEncodeTimes |
Reserved |
s32MinStillPercent |
Minimum bitrate percentage for static scenes |
u32MaxStillQP |
Maximum QP for static scenes |
u32MinStillPSNR |
Reserved |
u32MaxQp |
Maximum QP |
u32MinQp |
Minimum QP |
u32MaxIQp |
Maximum QP for I-frames |
u32MinIQp |
Minimum QP for I-frames |
u32MinQpDelta |
The difference between frame-level minimum QP and macroblock-level minimum QP |
u32MotionSensitivity |
Motion sensitivity |
s32AvbrFrmLostOpen |
Frame dropping enable |
s32AvbrFrmGap |
Maximum number of dropped frames |
s32AvbrPureStillThr |
Still macroblock threshold value |
bQpMapEn |
Reserved |
enQpMapMode |
Reserved |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetRcParam
CVI_VENC_GetRcParam
7.4.36. VENC_PARAM_MOD_S¶
【Description】
Encoding-related module parameters
【Syntax】
typedef struct _VENC_MODPARAM_S {
VENC_MODTYPE_E enVencModType; /* RW; VencModType*/
union {
VENC_MOD_VENC_S stVencModParam;
VENC_MOD_H264E_S stH264eModParam;
VENC_MOD_H265E_S stH265eModParam;
VENC_MOD_JPEGE_S stJpegeModParam;
VENC_MOD_RC_S stRcModParam;
};
} VENC_PARAM_MOD_S;
【Member】
Member |
Description |
---|---|
enVencModType |
Types of module parameters |
stVencModParam /stH264eModParam /stH265eModParam /stJpegeModParam /stRcModParam |
Venc / H264e / H265e / Jpege / Rc module parameter structure. |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetModParam
CVI_VENC_GetModParam
7.4.37. VENC_MOD_H264E_S¶
【Description】
H.264 encoding-related module parameters
【Syntax】
typedef struct _VENC_MOD_H264E_S {
CVI_U32 u32OneStreamBuffer;
CVI_U32 u32H264eMiniBufMode;
CVI_U32 u32H264ePowerSaveEn;
VB_SOURCE_E enH264eVBSource;
CVI_BOOL bQpHstgrmEn;
CVI_U32 u32UserDataMaxLen;
CVI_BOOL bSingleEsBuf;
CVI_U32 u32SingleEsBufSize;
} VENC_MOD_H264E_S;
【Member】
Member |
Description |
---|---|
u32OneStreamBuffer |
Reserved |
u32H264eMiniBufMode |
Reserved |
u32H264ePowerSaveEn |
Reserved |
enH264eVBSource |
VB mode |
bQpHstgrmEn |
Reserved |
u32UserDataMaxLen |
Maximum user data size |
bSingleEsBuf |
Multiple channels using a shared stream buffer |
u32SingleEsBufSize |
StreamBuffer size |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetModParam
CVI_VENC_GetModParam
7.4.38. VENC_MOD_H265E_S¶
【Description】
H.265 encoding-related module parameters
【Syntax】
typedef struct _VENC_MOD_H265E_S {
CVI_U32 u32OneStreamBuffer;
CVI_U32 u32H265eMiniBufMode;
CVI_U32 u32H265ePowerSaveEn;
VB_SOURCE_E enH265eVBSource;
CVI_BOOL bQpHstgrmEn;
CVI_U32 u32UserDataMaxLen;
CVI_BOOL bSingleEsBuf;
CVI_U32 u32SingleEsBufSize;
H265E_REFRESH_TYPE_E enRefreshType;
} VENC_MOD_H265E_S;
【Member】
Member |
Description |
---|---|
u32OneStreamBuffer |
Reserved |
u32H265eMiniBufMode |
Reserved |
u32H265ePowerSaveEn |
Reserved |
enH265eVBSource |
VB mode |
bQpHstgrmEn |
Reserved |
u32UserDataMaxLen |
Maximum user data size |
bSingleEsBuf |
Multiple channels using a shared stream buffer |
u32SingleEsBufSize |
StreamBuffer size |
enRefreshType |
Refresh type |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetModParam
CVI_VENC_GetModParam
7.4.39. VENC_MOD_JPEGE_S¶
【Description】
JPEG encoding-related module parameters
【Syntax】
typedef struct _VENC_MOD_JPEGE_S {
CVI_U32 u32OneStreamBuffer;
CVI_U32 u32JpegeMiniBufMode;
CVI_U32 u32JpegClearStreamBuf;
CVI_BOOL bSingleEsBuf;
CVI_U32 u32SingleEsBufSize;
JPEGE_FORMAT_E enJpegeFormat;
JPEGE_MARKER_TYPE_E JpegMarkerOrder[JPEG_MARKER_ORDER_CNT];
} VENC_MOD_JPEGE_S;
【Member】
Member |
Description |
---|---|
u32OneStreamBuffer |
Reserved |
u32JpegeMiniBufMode |
Reserved |
u32JpegClearStreamBuf |
Reserved |
bSingleEsBuf |
Multiple channels using a shared stream buffer |
u32SingleEsBufSize |
StreamBuffer size |
enJpegeFormat |
JPEG header encoding mode |
JpegMarkerOrder |
Header encoding mark order |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetModParam
CVI_VENC_GetModParam
7.4.40. VENC_CHN_POOL_S¶
【Description】
Define the VB pool structure, which is bound to the encoding channel.
【Syntax】
typedef struct _VENC_CHN_POOL_S {
VB_POOL hPicVbPool; /* RW; vb pool id for pic buffer */
VB_POOL hPicInfoVbPool; /* RW; vb pool id for pic info buffer */
} VENC_CHN_POOL_S;
【Member】
Member |
Description |
---|---|
hPicVbPool |
VB pool Poold for storing Picture |
hPicInfoVbPool |
VB pool Poold for storing Picture information |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_AttachVbPool
7.4.41. VENC_FRAMELOST_S¶
【Description】
Define the encoding frame dropping structure.
【Syntax】
typedef struct _VENC_FRAMELOST_S {
CVI_BOOL bFrmLostOpen;
CVI_U32 u32FrmLostBpsThr;
VENC_FRAMELOST_MODE_E enFrmLostMode;
CVI_U32 u32EncFrmGaps;
} VENC_FRAMELOST_S;
【Member】
Member |
Description |
---|---|
bFrmLostOpen |
Frame dropping strategy enable |
u32FrmLostBpsThr |
Frame dropping bitrate threshold value |
enFrmLostMode |
Frame dropping mode |
u32EncFrmGaps |
Maximum consecutive dropped frames |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetFrameLostStrategy
CVI_VENC_GetFrameLostStrategy
7.4.42. VENC_H264_ENTROPY_S¶
【Description】
Define H.264 entropy coding information structure.
【Syntax】
typedef struct _VENC_H264_ENTROPY_S {
CVI_U32 u32EntropyEncModeI;
CVI_U32 u32EntropyEncModeP;
CVI_U32 u32EntropyEncModeB;
CVI_U32 cabac_init_idc;
} VENC_H264_ENTROPY_S;
【Member】
Member |
Description |
---|---|
u32EntropyEncModeI |
I-frame entropy coding mode: 0 for CAVLC and 1 for CABAC. |
u32EntropyEncModeP |
P-frame entropy coding mode: 0 for CAVLC and 1 for CABAC. |
u32EntropyEncModeB |
Reserved, not used yet |
cabac_init_idc |
Refer to H264 encoding protocol |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetH264Entropy
CVI_VENC_GetH264Entropy
7.4.43. VENC_CU_PREDICTION_S¶
【Description】
Define the structure of coding unit prediction properties
【Syntax】
typedef struct _VENC_CU_PREDICTION_S {
OPERATION_MODE_E enPredMode;
CVI_U32 u32IntraCost;
CVI_U32 u32Intra32Cost;
CVI_U32 u32Intra16Cost;
CVI_U32 u32Intra8Cost;
CVI_U32 u32Intra4Cost;
CVI_U32 u32Inter64Cost;
CVI_U32 u32Inter32Cost;
CVI_U32 u32Inter16Cost;
CVI_U32 u32Inter8Cost;
} VENC_CU_PREDICTION_S;
【Member】
Member |
Description |
---|---|
enPredMode |
Reserved, not used yet |
u32IntraCost |
Default to 0, used to reduce the probability of Intra Blocks. |
u32Intra32Cost |
Reserved, not used yet |
u32Intra16Cost |
Reserved, not used yet |
u32Intra8Cost |
Reserved, not used yet |
u32Intra4Cost |
Reserved, not used yet |
u32Inter64Cost |
Reserved, not used yet |
u32Inter32Cost |
Reserved, not used yet |
u32Inter16Cost |
Reserved, not used yet |
u32Inter8Cost |
Reserved, not used yet |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_SetCuPrediction
CVI_VENC_GetCuPrediction
7.4.44. VENC_H264_TRANS_S¶
【Description】
Define the structure of the H.264 protocol encoding channel transformation quantization.
【Syntax】
typedef struct _VENC_H264_TRANS_S {
CVI_U32 u32IntraTransMode;
CVI_U32 u32InterTransMode;
CVI_BOOL bScalingListValid;
CVI_U8 InterScalingList8X8[64];
CVI_U8 IntraScalingList8X8[64];
CVI_S32 chroma_qp_index_offset;
} VENC_H264_TRANS_S;
【Member】
Member |
Description |
---|---|
u32IntraTransMode |
Reserved, not used yet |
u32InterTransMode |
Reserved, not used yet |
bScalingListValid |
Reserved, not used yet |
InterScalingList8X8[64] |
Reserved, not used yet |
IntraScalingList8X8[64] |
Reserved, not used yet |
chroma_qp_index_offset |
For details, see H.264 Protocol. The default value is 0. Value range: [-12, 12] |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_GetH264Trans
CVI_VENC_SetH264Trans
7.4.45. VENC_H265_TRANS_S¶
【Description】
Define the structure of the H.265 protocol encoding channel transformation quantization.
【Syntax】
typedef struct _VENC_H265_TRANS_S {
CVI_S32 cb_qp_offset;
CVI_S32 cr_qp_offset;
CVI_BOOL bScalingListEnabled;
CVI_BOOL bScalingListTu4Valid;
CVI_U8 InterScalingList4X4[2][16];
CVI_U8 IntraScalingList4X4[2][16];
CVI_BOOL bScalingListTu8Valid;
CVI_U8 InterScalingList8X8[2][64];
CVI_U8 IntraScalingList8X8[2][64];
CVI_BOOL bScalingListTu16Valid;
CVI_U8 InterScalingList16X16[2][64];
CVI_U8 IntraScalingList16X16[2][64];
CVI_BOOL bScalingListTU32Valid;
CVI_U8 InterScalingList32X32[64];
CVI_U8 IntraScalingList32X32[64];
} VENC_H265_TRANS_S;
【Member】
Member |
Description |
---|---|
cb_qp_offset |
For details, see H.265 Protocol. The default value is 0. Value range: [-12, 12] |
cr_qp_offset |
For details, see H.265 Protocol. The default value is 0. Value range: [-12, 12] |
bScalingListEnabled |
Reserved, not used yet |
bScalingListTu4Valid |
Reserved, not used yet |
InterScalingList4X4[2][16] |
Reserved, not used yet |
IntraScalingList4X4[2][16] |
Reserved, not used yet |
bScalingListTu8Valid |
Reserved, not used yet |
InterScalingList8X8[2][64] |
Reserved, not used yet |
IntraScalingList8X8[2][64] |
Reserved, not used yet |
bScalingListTu16Valid |
Reserved, not used yet |
InterScalingList16X16[2][64] |
Reserved, not used yet |
IntraScalingList16X16[2][64] |
Reserved, not used yet |
bScalingListTu32Valid |
Reserved, not used yet |
InterScalingList32X32[64] |
Reserved, not used yet |
IntraScalingList32X32[64] |
Reserved, not used yet |
【Note】
None.
【Related Data Type and Interface】
CVI_VENC_GetH265Trans
CVI_VENC_SetH265Trans