数据类型

相关数据类型、数据结构定义如下:

  • OT_VENC_MAX_CHN_NUM:定义最大通道数。

  • OT_VENC_TEXTURE_THRESHOLD_SIZE:定义纹理级码控的阈值个数。

  • OT_VENC_MAX_TILE_NUM:定义最大支持Tile的个数。

  • OT_VENC_MAX_SSE_NUM:定义SSE个数。

  • OT_VENC_VEDU_IP_NUM:定义芯片的编码逻辑个数。

  • OT_VENC_MAX_FRAME_NUM:定义用户发送多帧图像接口中图像的最大帧数

  • OT_VENC_MAX_MOSAIC_RECT_NUM:定义用户发送多帧图像接口中马赛克区域的最大个数

  • OT_VENC_QP_HIST_NUM:定义QP直方图数组大小。

  • OT_VENC_MAX_SVC_RECT_NUM:定义智能检测目标框个数。

  • OT_VENC_MD_THRESHOLD_NUM:定义MD检测阈值个数。

  • OT_VENC_MD_LEVEL_NUM:定义MD检测Level值个数。

  • OT_VENC_MAX_PACK_INFO_NUM:定义码流包包含其他数据的最大个数。

  • OT_VENC_MAX_MPF_NUM:定义MPF图像的最大个数。

  • OT_VENC_PRORES_MAX_ID_CHAR_NUM:定义PRORES厂商名最大字符个数。

  • OT_VENC_MAX_HIERARCHY_NUM:定义分层编码的最大层数。

  • OT_VENC_SCALING_LIST_SIZE_16:定义量化表相关大小。

  • OT_VENC_SCALING_LIST_SIZE_64:定义量化表相关大小。

  • OT_VENC_JPEG_QT_COEF_NUM:定义jpeg量化表大小。

  • OT_VENC_MJPEG_QT_COEF_NUM:定义mjpeg量化表大小。

  • OT_VENC_MAX_ROI_NUM:定义H.264/H.265 ROI最大个数。

  • OT_VENC_MAX_JPEG_ROI_NUM:定义JPEG ROI最大个数。

  • OT_VENC_MAX_BITRATE:定义最大码率。

  • OT_VENC_MIN_BITRATE:定义最小码率。

  • OT_VENC_MJPEG_MAX_BITRATE:定义MJPEG最大码率。

  • OT_VENC_MJPEG_MIN_BITRATE:定义MJPEG最小码率。

  • ot_venc_h264_nalu_type:定义H.264码流NALU类型。

  • ot_venc_ref_type:定义H.264跳帧参考码流的帧类型以及参考属性。

  • ot_venc_jpege_pack_type:定义JPEG码流的PACK类型。

  • ot_venc_h265_nalu_type:定义H.265码流NALU类型。

  • ot_venc_prores_pack_type:定义PRORES码流的PACK类型。

  • ot_venc_data_type:定义码流类型的联合体。

  • ot_venc_pack_info:定义当前码流包数据中包含的其他类型码流包数据的结构体。

  • ot_venc_pack:定义帧码流包结构体。

  • ot_venc_h264_stream_info:定义H.264协议码流特征信息。

  • ot_venc_jpeg_stream_info:定义JPEG/MJPEG协议码流特征信息。

  • ot_venc_h265_stream_info:定义H.265协议码流特征信息。

  • ot_venc_prores_stream_info:定义PRORES协议码流特征信息。

  • ot_venc_h264_adv_stream_info:定义H.264协议高级码流特征信息。

  • ot_venc_sse_info:定义码流信息中SSE信息。

  • ot_venc_h265_adv_stream_info:定义H.265协议高级码流特征信息。

  • ot_venc_stream:定义帧码流类型结构体。

  • ot_venc_stream_buf_info:定义码流buffer信息的结构体。

  • ot_venc_h265_attr:定义H.265编码器属性结构体。

  • ot_venc_h264_attr:定义H.264编码器属性结构体。

  • ot_venc_mpf_cfg:定义JPEG MPF结构体。

  • ot_venc_pic_recv_mode:定义RECEIVE MODE结构体。

  • ot_venc_recv_src:定义JPEG收帧方式在OT_VENC_PIC_RECV_MULTI情况下的绑定源类型。

  • ot_venc_jpeg_attr:定义JPEG/MJPEG编码器属性结构体。

  • ot_venc_prores_frame_rate:定义PRORES协议帧率。

  • ot_venc_prores_aspect_ratio:定义PRORES协议幅型比。

  • ot_venc_prores_attr:定义PRORES编码器属性结构体。

  • ot_venc_attr:定义编码器属性结构体。

  • ot_venc_gop_mode:定义Gop Mode类型。

  • ot_venc_gop_normal_p:定义单参考帧的P帧Gop属性结构体;

  • ot_venc_gop_dual_p:定义双参考帧的P帧Gop属性结构体;

  • ot_venc_gop_smart_p:定义编码智能P帧Gop属性结构体;

  • ot_venc_gop_adv_smart_p:定义编码高级智能P帧Gop属性结构体;

  • ot_venc_gop_bipred_b:定义编码B帧GOP属性结构体。

  • ot_venc_gop_attr:定义Gop Mode类型的结构体。

  • ot_venc_chn_attr:定义编码通道属性结构体。

  • ot_venc_start_param:定义编码通道连续接收并编码的帧数结构体。

  • ot_venc_stream_info:定义编码器码流特征信息,供外部查询使用。

  • ot_venc_chn_status:定义编码通道的状态结构体。

  • ot_venc_slice_split:定义H.264/ H.265编码通道slice分割属性。

  • ot_venc_search_window:定义H.264/H.265通道的搜索窗范围。

  • ot_venc_h264_intra_pred:定义H.264编码通道帧内预测属性。

  • ot_venc_h264_trans:定义H.264编码通道变换、量化属性。

  • ot_venc_h264_entropy:定义H.264编码通道熵编码属性。

  • ot_venc_h264_dblk:定义H.264编码通道Deblocking属性。

  • ot_venc_h264_vui:定义H.264编码通道VUI属性。

  • ot_venc_h265_vui:定义H.265协议编码通道Vui结构体。

  • ot_venc_vui_aspect_ratio:定义H.264/H.265协议编码通道Vui中AspectRatio信息的结构体。

  • ot_venc_h264_vui_time_info:定义H.264协议编码通道Vui中Time_Info信息的结构体。

  • ot_venc_h265_vui_time_info:定义H.265协议编码通道Vui中Time_Info信息的结构体。

  • ot_venc_vui_video_signal:定义H.264/H.265协议编码通道Vui中信息的Video_Signal结构体。

  • ot_venc_vui_bitstream_restric:定义H.264/H.265协议编码通道Vui中信息的Bitstream_Restriction结构体。

  • ot_venc_jpeg_param:定义JPEG编码参数集合。

  • ot_venc_mjpeg_param:定义MJPEG协议编码通道高级参数结构体。

  • ot_venc_roi_attr:定义编码通道感兴趣区域编码属性。

  • ot_venc_roi_for_frame:定义感兴趣区域应用类型。

  • ot_venc_roi_attr_ex:定义编码通道感兴趣区域编码高级属性。

  • ot_venc_jpeg_roi_attr:JPEG和MJPEG定义编码感兴趣区域信息。

  • ot_venc_roi_bg_frame_rate:定义非Roi区域的帧率属性。

  • ot_venc_ref_param:定义H.264/H.265编码的高级跳帧参考参数

  • ot_venc_rc_attr:定义编码通道码率控制器属性。

  • ot_venc_rc_mode:定义编码通道码率控制器模式。

  • ot_venc_rc_qpmap_mode:定义编码通道QPMAP模式下CU32、CU64 QP值的取值方式。

  • ot_venc_h264_cbr:定义H.264编码通道CBR属性结构。

  • ot_venc_h264_vbr:定义H.264编码通道VBR属性结构。

  • ot_venc_h264_avbr:定义H.264编码通道AVBR属性结构。

  • ot_venc_h264_qvbr:定义H.264编码通道QVBR属性结构。

  • ot_venc_h264_cvbr:定义H.264编码通道CVBR属性结构。

  • ot_venc_h264_fixqp:定义H.264编码通道Fixqp属性结构。

  • ot_venc_h264_qpmap:定义H.264编码通道QPMAP属性结构。

  • ot_venc_mjpeg_fixqp:定义MJPEG编码通道Fixqp属性结构。

  • ot_venc_mjpeg_cbr:定义MJPEG编码通道CBR属性结构。

  • ot_venc_mjpeg_vbr:定义MJPEG编码通道VBR属性结构。

  • ot_venc_h265_cbr:定义H.265编码通道CBR属性结构。

  • ot_venc_h265_vbr:定义H.265编码通道VBR属性结构。

  • ot_venc_h265_avbr:定义H.265编码通道AVBR属性结构。

  • ot_venc_h265_qvbr:定义H.265编码通道QVBR属性结构。

  • ot_venc_h265_cvbr:定义H.265编码通道CVBR属性结构。

  • ot_venc_h265_fixqp:定义H.265编码通道Fixqp属性结构。

  • ot_venc_h265_qpmap:定义H.265编码通道QPMAP属性结构。

  • ot_venc_super_frame_mode:定义码率控制中超大帧处理模式。

  • ot_venc_h264_vbr_param:定义H.264协议编码通道VBR码率控制模式高级参数配置。

  • ot_venc_h264_avbr_param:定义H.264协议编码通道AVBR码率控制模式高级参数配置。

  • ot_venc_h264_qvbr_param:定义H.264协议编码通道QVBR码率控制模式高级参数配置。

  • ot_venc_h264_cvbr_param:定义H.264协议编码通道CVBR码率控制模式高级参数配置。

  • ot_venc_h264_cbr_param:定义H.264协议编码通道CBR新版码率控制模式高级参数配置。

  • ot_venc_mjpeg_cbr_param:定义MJPEG协议编码通道CBR码率控制模式高级参数配置。

  • ot_venc_mjpeg_vbr_param:定义MJPEG协议编码通道VBR码率控制模式高级参数配置。

  • ot_venc_h265_vbr_param:定义H.265协议编码通道VBR码率控制模式高级参数配置。

  • ot_venc_h265_avbr_param:定义H.265协议编码通道AVBR码率控制模式高级参数配置。

  • ot_venc_h265_qvbr_param:定义H.265协议编码通道QVBR码率控制模式高级参数配置。

  • ot_venc_h265_cvbr_param:定义H.265协议编码通道CVBR码率控制模式高级参数配置。

  • ot_venc_h265_cbr_param:定义H.265协议编码通道CBR新版码率控制模式高级参数配置。

  • ot_venc_rc_param:定义编码通道的码率控制高级参数。

  • ot_venc_jpeg_enc_mode:定义JPEG编码通道的抓拍模式。

  • ot_venc_h265_pu:定义H.265编码通道PU的属性。

  • ot_venc_h265_trans:定义H.265编码通道的变换量化属性。

  • ot_venc_h265_entropy:定义H.265编码通道的熵编码属性。

  • ot_venc_h265_dblk:定义H.265编码通道Deblocking属性。

  • ot_venc_h265_sao:定义H.265编码通道Sao属性。

  • ot_venc_frame_lost_mode:定义编码通道瞬时码率超过阈值时的丢帧模式。

  • ot_venc_frame_lost_strategy:定义编码通道瞬时码率超过阈值时的丢帧策略。

  • ot_venc_reencode_priority:超大帧重编优先级枚举。

  • ot_venc_super_frame_strategy:超大帧处理策略参数。

  • ot_venc_intra_refresh_mode:P帧刷Islice模式。

  • ot_venc_intra_refresh:P帧刷Islice控制参数。

  • ot_venc_mod_param:编码相关模块参数。

  • ot_venc_mod_type:编码相关模块参数类型。

  • ot_venc_venc_mod_param:ssxx_venc.ko模块参数。

  • ot_venc_h264_mod_param:ssxx_h264e.ko模块参数。

  • ot_venc_h265_mod_param:ssxx_h265.ko模块参数。

  • ot_venc_jpeg_mod_param:ssxx_jpeg.ko模块中参数。

  • ot_venc_frame_type:编码相关模块参数类型。

  • ot_venc_user_rc_info:用户码控信息结构体。

  • ot_venc_user_roimap:用户ROI信息结构体。

  • ot_venc_user_frame_info:用户发送图像信息结构体。

  • ot_venc_mosaic_mode:马赛克模式。

  • ot_venc_mosaic_pixel_yuv:马赛克填充颜色。

  • ot_venc_mosaic_rect:马赛克rect模式参数结构体。

  • ot_venc_mosaic_map:马赛克map模式参数结构体。

  • ot_venc_mosaic_info:马赛克信息结构体。

  • ot_venc_multi_frame_info:用户发送多帧图像及马赛克信息结构体。

  • ot_venc_chn_config:编码通道复合编码配置。

  • ot_venc_sse_rgn:SSERegion模块中参数。

  • ot_venc_chn_param:定义venc通道参数结构体。

  • ot_venc_fg_protect:前景保护参数结构体。

  • ot_venc_scene_mode:编码模式场景。

  • ot_venc_scene_chg_detect:编码场景检测控制参数。

  • ot_venc_chn_pool:定义编码通道绑定的VB池结构体。

  • ot_venc_cu_pred:CU模式选择倾向性配置结构体。

  • ot_venc_skip_bias:SKIP倾向性选择配置结构体。

  • ot_venc_debreath_effect:去除呼吸效应参数结构体。

  • ot_venc_hierarchical_qp:QP分层参数结构体。

  • ot_venc_rc_adv_param:定义RC模块的高级参数。

  • ot_venc_svc_rect_type:定义智能检测目标框type类型信息。

  • ot_venc_svc_map_param:定义智能编码QpMap,SkipMap值。

  • ot_venc_svc_param:定义智能编码的控制参数。

  • ot_venc_svc_rect_info:定义检测目标框属性信息。

  • ot_venc_md_sad_mode:定义sad计算结果所用方式控制信息。

  • ot_venc_md_param:定义md检测结果信息。

  • ot_venc_deblur_param:定义背景去模糊控制参数。

  • ot_venc_param_set_id:定义参数集ID。

  • ot_venc_h264_poc:定义H.264编码通道POC类型。

  • ot_venc_jpeg_dering_level: 定义JPEG编码通道的强边去Ring效应强度等级。

  • ot_venc_deblur_far_bg:定义运动物体远区域的拖尾和残留区域检测参数结构体。

  • ot_venc_deblur_near_bg:定义运动物体近区域拖尾和残留区域检测参数结构体。

  • ot_venc_adv_deblur:定义运动物体拖尾和残留区域检测信息结构体

  • ot_venc_jpeg_roi_adv_attr:JPEG和MJPEG定义编码感兴趣区域高级属性信息。

OT_VENC_MAX_CHN_NUM

【说明】

定义最大通道个数。

【定义】

SS528V100/SS524V100

#define  OT_VENC_MAX_CHN_NUM	256

SS625V100/SS522V101/SS626V100:

#define  OT_VENC_MAX_CHN_NUM	128

SS928V100:

#define  OT_VENC_MAX_CHN_NUM	64

【注意事项】

最大通道数:不同解决方案默认值不同。由于最大通道个数涉及到内存的分配,允许用户根据实际需要重新指定最大通道个数,具体方式为:对于linux,在加载ssxx_venc.ko时设置模块参数g_venc_max_chn_num来指定实际的最大通道个数,其作用优先级比OT_VENC_MAX_CHN_NUM高。

使用方式如下:

SS528V100/SS524V100

insmod ot_venc.ko    g_venc_max_chn_num=128

【相关数据类型及接口】

无。

OT_VENC_TEXTURE_THRESHOLD_SIZE

【说明】

定义RC宏块复杂度的阈值的个数。

【定义】

#define  OT_VENC_TEXTURE_THRESHOLD_SIZE	 16

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_MAX_TILE_NUM

【说明】

定义最大支持Tile的个数。

【定义】

#define  OT_VENC_MAX_TILE_NUM	1

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_MAX_SSE_NUM

【说明】

定义SSE个数。

【定义】

#define OT_VENC_MAX_SSE_NUM   8

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_VEDU_IP_NUM

【说明】

定义解决方案的编码逻辑的个数。

【定义】

SS528V100:

#define  OT_VENC_VEDU_IP_NUM	3

SS625V100/SS524V100/SS522V101/SS928V100/SS626V100:

#define  OT_VENC_VEDU_IP_NUM	1

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_MAX_FRAME_NUM

【说明】

定义用户发送多帧图像接口中图像的最大帧数。

【定义】

#define  OT_VENC_MAX_FRAME_NUM	2

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_MAX_MOSAIC_RECT_NUM

【说明】

定义用户发送多帧图像接口中马赛克区域的最大个数。

【定义】

#define  OT_VENC_MAX_MOSAIC_RECT_NUM  200

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_QP_HIST_NUM

【说明】

定义QP直方图数组大小。

【定义】

#define  OT_VENC_QP_HIST_NUM	  52

【注意事项】

无。

【相关数据类型及接口】

OT_VENC_MAX_SVC_RECT_NUM

【说明】

定义智能检测目标框个数。

【定义】

#define OT_VENC_MAX_SVC_RECT_NUM   32

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_MD_THRESHOLD_NUM

【说明】

定义MD检测阈值个数。

【定义】

#define OT_VENC_MD_THRESHOLD_NUM   3

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_MD_LEVEL_NUM

【说明】

定义MD检测Level级别个数。

【定义】

#define OT_VENC_MD_LEVEL_NUM 4

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_MAX_PACK_INFO_NUM

【说明】

定义码流包包含其他数据的最大个数。

【定义】

#define OT_VENC_MAX_PACK_INFO_NUM 8

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_MAX_MPF_NUM

【说明】

定义MPF图像的最大个数。

【定义】

#define OT_VENC_MAX_MPF_NUM 2

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_PRORES_MAX_ID_CHAR_NUM

【说明】

定义PRORES厂商名最大字符个数。

【定义】

#define OT_VENC_PRORES_MAX_ID_CHAR_NUM 4

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_MAX_HIERARCHY_NUM

【说明】

定义分层编码的最大层数。

【定义】

#define OT_VENC_MAX_HIERARCHY_NUM 4

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_SCALING_LIST_SIZE_16

【说明】

定义量化表相关大小。

【定义】

#define OT_VENC_SCALING_LIST_SIZE_16   16

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_SCALING_LIST_SIZE_64

【说明】

定义量化表相关大小。

【定义】

#define OT_VENC_SCALING_LIST_SIZE_64 64

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_JPEG_QT_COEF_NUM

【说明】

定义jpeg量化表大小。

【定义】

#define OT_VENC_JPEG_QT_COEF_NUM 64

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_MJPEG_QT_COEF_NUM

【说明】

定义mjpeg量化表大小。

【定义】

#define OT_VENC_MJPEG_QT_COEF_NUM 64

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_MAX_ROI_NUM

【说明】

定义H.264/H.265 ROI最大个数。

【定义】

#define OT_VENC_MAX_ROI_NUM 8

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_MAX_JPEG_ROI_NUM

【说明】

定义JPEG ROI最大个数。

【定义】

#define OT_VENC_MAX_JPEG_ROI_NUM 16

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_MAX_BITRATE

【说明】

定义最大码率,以Kbps为单位。

【定义】

SS528V100/SS625V100/SS522V101:

#define  OT_VENC_MAX_BITRATE	(60 * 1024)

SS524V100/SS626V100:

#define  OT_VENC_MAX_BITRATE	(200 * 1024)

SS928V100:

#define  OT_VENC_MAX_BITRATE	(160 * 1024)

【注意事项】

SS524V100/SS626V100最大码率仅做参考,以实际码率可达到最大值为准。

【相关数据类型及接口】

无。

OT_VENC_MIN_BITRATE

【说明】

定义最小码率,以Kbps为单位。

【定义】

#define OT_VENC_MIN_BITRATE 2

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VENC_MJPEG_MAX_BITRATE

【说明】

定义MJPEG最大码率,以Kbps为单位。

【定义】

SS528V100/SS625V100/SS522V101:

#define  OT_VENC_MJPEG_MAX_BITRATE	(60 * 1024)

SS524V100/SS626V100:

#define  OT_VENC_MJPEG_MAX_BITRATE	(200 * 1024)

SS928V100:

#define  OT_VENC_MJPEG_MAX_BITRATE	(1024 * 1024)

【注意事项】

SS928V100码率越高会导致性能下降,使用高码率时需要测试是否满足性能要求。

【相关数据类型及接口】

无。

OT_VENC_MJPEG_MIN_BITRATE

【说明】

定义MJPEG最小码率,以Kbps为单位。

【定义】

#define OT_VENC_MJPEG_MIN_BITRATE    2

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_h264_nalu_type

【说明】

定义H.264码流NALU类型。

【定义】

typedef enum {
    OT_VENC_H264_NALU_B_SLICE   = 0,
    OT_VENC_H264_NALU_P_SLICE   = 1,
    OT_VENC_H264_NALU_I_SLICE   = 2,
    OT_VENC_H264_NALU_IDR_SLICE = 5,
    OT_VENC_H264_NALU_SEI       = 6,
    OT_VENC_H264_NALU_SPS       = 7,
    OT_VENC_H264_NALU_PPS       = 8,
    OT_VENC_H264_NALU_BUTT
} ot_venc_h264_nalu_type;

【成员】

成员名称

描述

OT_VENC_H264_NALU_B_SLICE

BSLICE类型。

OT_VENC_H264_NALU_P_SLICE

PSLICE类型。

OT_VENC_H264_NALU_I_SLICE

ISLICE类型,帧类型为P帧。

OT_VENC_H264_NALU_IDR_SLICE

ISLICE类型,帧类型为IDR帧。

OT_VENC_H264_NALU_SEI

SEI类型。

OT_VENC_H264_NALU_SPS

SPS类型。

OT_VENC_H264_NALU_PPS

PPS类型。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_ref_type

【说明】

定义H.264跳帧参考码流的帧类型以及参考属性。

【定义】

typedef enum {
    OT_VENC_BASE_IDR_SLICE = 0,
    OT_VENC_BASE_P_SLICE_REF_TO_IDR, 
    OT_VENC_BASE_P_SLICE_REF_BY_BASE,
    OT_VENC_BASE_P_SLICE_REF_BY_ENHANCE,
    OT_VENC_ENHANCE_P_SLICE_REF_BY_ENHANCE,
    OT_VENC_ENHANCE_P_SLICE_NOT_FOR_REF,
    OT_VENC_P_SLICE_BUTT
} ot_venc_ref_type;

【成员】

成员名称

描述

OT_VENC_BASE_IDR_SLICE

base层中的IDR帧。

OT_VENC_BASE_P_SLICE_REF_TO_IDR

base层中的P帧,用于base层中其他帧的参考且只参考IDR帧。

OT_VENC_BASE_P_SLICE_REF_BY_BASE

base层中的P帧,用于base层中其他帧的参考。

OT_VENC_BASE_P_SLICE_REF_BY_ENHANCE

base层中的P帧,用于enhance层中的帧的参考。

OT_VENC_ENHANCE_P_SLICE_REF_BY_ENHANCE

enhance层中的P帧,用于enhance层中其他帧的参考。

OT_VENC_ENHANCE_P_SLICE_NOT_FOR_REF

enhance层中的P帧,不用于参考。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_jpege_pack_type

【说明】

定义JPEG码流的PACK类型。

【定义】

typedef enum {
    OT_VENC_JPEG_PACK_ECS = 5,
    OT_VENC_JPEG_PACK_APP = 6,
    OT_VENC_JPEG_PACK_VDO = 7,
    OT_VENC_JPEG_PACK_PIC = 8,
    OT_VENC_JPEG_PACK_DCF = 9,
    OT_VENC_JPEG_PACK_DCF_PIC = 10,
    OT_VENC_JPEG_PACK_BUTT
} ot_venc_jpege_pack_type;

【成员】

成员名称

描述

OT_VENC_JPEG_PACK_ECS

ECS类型。

OT_VENC_JPEG_PACK_APP

APP类型。

OT_VENC_JPEG_PACK_VDO

VDO类型。

OT_VENC_JPEG_PACK_PIC

PIC类型。

OT_VENC_JPEG_PACK_DCF

DCF 类型。

OT_VENC_JPEG_PACK_DCF_PIC

DCF ECS类型。

【注意事项】

  • 只有JPEG属性的模式配置为多通道接收模式才会启用OT_VENC_JPEG_PACK_DCF和OT_VENC_JPEG_PACK_DCF_PIC。单通道接收模式的OT_VENC_JPEG_PACK_ECS包为多通道接收模式OT_VENC_JPEG_PACK_DCF和OT_VENC_JPEG_PACK_DCF_PIC数据包之和。

  • 多个ECS(熵编码段)组成一个完整的帧,当需要开启ECS低延时,需要开启ecs_output_en,此时逻辑编码完一个ECS就上报中断,通道属性is_by_frame必须为FALSE,即按包收流。

【相关数据类型及接口】

无。

ot_venc_h265_nalu_type

【说明】

定义H.265码流NALU类型。

【定义】

typedef enum {
    OT_VENC_H265_NALU_B_SLICE   = 0,
    OT_VENC_H265_NALU_P_SLICE   = 1,
    OT_VENC_H265_NALU_I_SLICE   = 2,
    OT_VENC_H265_NALU_IDR_SLICE = 19,
    OT_VENC_H265_NALU_VPS       = 32,
    OT_VENC_H265_NALU_SPS       = 33,
    OT_VENC_H265_NALU_PPS       = 34,
    OT_VENC_H265_NALU_SEI       = 39,
    OT_VENC_H265_NALU_BUTT
} ot_venc_h265_nalu_type;

【成员】

成员名称

描述

OT_VENC_H265_NALU_B_SLICE

BSLICE类型

OT_VENC_H265_NALU_P_SLICE

PSLICE类型。

OT_VENC_H265_NALU_I_SLICE

ISLICE类型,帧类型为P帧。

OT_VENC_H265_NALU_IDR_SLICE

ISLICE类型,帧类型为IDR帧。

OT_VENC_H265_NALU_VPS

VPS类型。

OT_VENC_H265_NALU_SPS

SPS类型。

OT_VENC_H265_NALU_PPS

PPS类型。

OT_VENC_H265_NALU_SEI

SEI类型。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_prores_pack_type

【说明】

定义PRORES码流的PACK类型。

【定义】

typedef enum {
    OT_VENC_PRORES_PACK_PIC = 1,
    OT_VENC_PRORES_PACK_BUTT
} ot_venc_prores_pack_type;

【成员】

成员名称

描述

OT_VENC_PRORES_PACK_PIC

PRORES数据包。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_data_type

【说明】

定义码流结果类型。

【定义】

typedef union {
    ot_venc_h264_nalu_type h264_type;
    ot_venc_jpege_pack_type jpeg_type;
    ot_venc_h265_nalu_type h265_type;
    ot_venc_prores_pack_type prores_type;
} ot_venc_data_type;

【成员】

成员名称

描述

h264_type

H.264码流包类型。

jpeg_type

JPEG码流包类型。

h265_type

H.265码流包类型。

prores_type

PRORES码流包类型。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_pack_info

【说明】

定义当前码流包数据中包含的其他类型码流包数据的结构体。

【定义】

typedef struct {
    ot_venc_data_type pack_type;
    td_u32 pack_offset;
    td_u32 pack_len;
} ot_venc_pack_info;

【成员】

成员名称

描述

pack_type

当前码流包数据包含其他码流包的类型。

pack_offset

当前码流包数据包含其他码流包数据的偏移。

pack_len

当前码流包数据包含其他码流包数据的大小。

ot_venc_pack

【说明】

定义帧码流包结构体。

【定义】

typedef struct {
    td_phys_addr_t phys_addr;
    td_u8 ATTRIBUTE *addr;
    td_u32 ATTRIBUTE len;
    td_u64 pts;
    td_bool is_frame_end;
    ot_venc_data_type data_type;
    td_u32 offset;
    td_u32 data_num;
    ot_venc_pack_info pack_info[OT_VENC_MAX_PACK_INFO_NUM];
} ot_venc_pack;

【成员】

成员名称

描述

phys_addr

码流包物理地址。

addr

码流包首地址。

len

码流包长度。

pts

时间戳。单位:us。

is_frame_end

帧结束标识。

取值范围:

TD_TRUE:该码流包是该帧的最后一个包。

TD_FALSE:该码流包不是该帧的最后一个包。

data_type

码流类型,支持H.264/JPEG/ H.265协议类型的数据包。

offset

码流包中有效数据与码流包首地址addr的偏移。

data_num

当前码流包(当前包的类型由data_type指定)数据中包含其他类型码流包的个数。

pack_info[]

当前码流包数据中包含其他类型码流包数据信息。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_data_type

ot_venc_h264_stream_info

【说明】

定义H.264协议码流特征信息。

【定义】

typedef struct {
    td_u32 pic_bytes;
    td_u32 inter16x16_mb_num;
    td_u32 inter8x8_mb_num;
    td_u32 intra16_mb_num;
    td_u32 intra8_mb_num;
    td_u32 intra4_mb_num;
    ot_venc_ref_type ref_type;
    td_u32 update_attr_cnt;
    td_u32 start_qp;
    td_u32 mean_qp;
    td_bool is_p_skip;
} ot_venc_h264_stream_info;

【成员】

成员名称

描述

pic_bytes

编码当前帧的字节(BYTE)数

inter16x16_mb_num

编码当前帧中采用Inter16x16预测模式的宏块数

inter8x8_mb_num

编码当前帧中采用Inter8x8预测模式的宏块数

intra16_mb_num

编码当前帧中采用Intra16预测模式的宏块数

intra8_mb_num

编码当前帧中采用 Intra8x8 预测模式的宏块数

intra4_mb_num

编码当前帧中采用Intra4预测模式的宏块数

ref_type

高级跳帧参考下的编码帧类型

update_attr_cnt

通道属性或参数(包含RC参数)被设置的次数

start_qp

编码当前帧的startqp值

mean_qp

编码当前帧的平均QP帧

is_p_skip

标识当前帧是否为p_skip帧

【注意事项】

无。

【相关数据类型及接口】

ot_venc_ref_type

ot_venc_jpeg_stream_info

【说明】

定义JPEG/MJPEG协议码流特征信息。

【定义】

typedef struct {
    td_u32 pic_bytes;
    td_u32 update_attr_cnt;
    td_u32 qfactor;
} ot_venc_jpeg_stream_info;

【成员】

成员名称

描述

pic_bytes

一帧JPEG码流大小,以字节(byte)为单位。

update_attr_cnt

通道属性或参数(包含RC参数)被设置的次数。

qfactor

编码当前帧的qfactor。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_h265_stream_info

【说明】

定义H.265协议码流特征信息。

【定义】

typedef struct {
    td_u32 pic_bytes;
    td_u32 inter64x64_cu_num;
    td_u32 inter32x32_cu_num;
    td_u32 inter16x16_cu_num;
    td_u32 inter8x8_cu_num;
    td_u32 intra32x32_cu_num;
    td_u32 intra16x16_cu_num;
    td_u32 intra8x8_cu_num;
    td_u32 intra4x4_cu_num;
    ot_venc_ref_type ref_type;
    td_u32 update_attr_cnt;
    td_u32 start_qp;
    td_u32 mean_qp;
    td_bool is_p_skip;
} ot_venc_h265_stream_info;

【成员】

成员名称

描述

pic_bytes

编码当前帧的字节(BYTE)数

inter64x64_cu_num

编码当前帧中采用Inter64x64预测模式的CU块数

inter32x32_cu_num

编码当前帧中采用Inter32x32预测模式的CU块数

inter16x16_cu_num

编码当前帧中采用Inter16x16预测模式的CU块数

inter8x8_cu_num

编码当前帧中采用Inter8x8预测模式的CU块数

intra32x32_cu_num

编码当前帧中采用Intra32x32预测模式的CU块数

intra16x16_cu_num

编码当前帧中采用Intra16x16预测模式的CU块数

intra8x8_cu_num

编码当前帧中采用Intra8x8预测模式的CU块数

intra4x4_cu_num

编码当前帧中采用Intra4x4预测模式的CU块数

ref_type

高级跳帧参考下的编码帧类型

update_attr_cnt

通道属性或参数(包含RC参数)被设置的次数

start_qp

编码当前帧的startqp值

mean_qp

编码当前帧的平均QP值

is_p_skip

标识当前帧是否为pskip帧。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_ref_type

ot_venc_prores_stream_info

【说明】

定义PRORES协议码流特征信息。

【定义】

typedef struct {
    td_u32 pic_bytes;
    td_u32 update_attr_cnt;
} ot_venc_prores_stream_info;

【成员】

成员名称

描述

pic_bytes

编码当前帧的字节(Byte)数。

update_attr_cnt

通道属性或参数被设置的次数。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_h264_adv_stream_info

【说明】

定义H.264协议码流高级特征信息。

【定义】

typedef struct {
    td_u32 residual_bits;
    td_u32 head_bits;
    td_u32 madi_val;
    td_u32 madp_val;
    td_double psnr_val;
    td_u32 sse_lcu_cnt;
    td_u64 sse_sum;
    ot_venc_sse_info sse_info[OT_VENC_MAX_SSE_NUM];
    td_u32 qp_hist[OT_VENC_QP_HIST_NUM];
    td_u32 move_scene16x16_num;
    td_u32 move_scene_bits;
    td_u32 deblur_near_bg_num;
    td_u32 deblur_far_bg_num;
} ot_venc_h264_adv_stream_info;

【成员】

成员名称

描述

residual_bits

编码当前帧残差(bit)数

head_bits

编码当前帧头信息的(bit)数

madi_val

编码当前帧空域纹理复杂度Madi值

madp_val

编码当前帧时域运动复杂度Madp值

psnr_val

编码当前帧的PSNR(峰值信噪比)值

sse_lcu_cnt

编码当前帧中LCU个数

sse_sum

编码当前帧中SSE(和方差)值

sse_info[OT_VENC_MAX_SSE_NUM]

编码当前帧中8个区域的SSE(和方差)值。

qp_hist[OT_VENC_QP_HIST_NUM]

编码当前帧Qp直方图。

move_scene16x16_num

判断为图像前景的16x16块的数目,需要开启前景宏块级码率控制。

move_scene_bits

判断为图像前景区域编码bit数,需要开启前景宏块级码控制。

deblur_near_bg_num

离运动物体较近的拖尾与残留区域的(MB(AVC)的数量。

deblur_far_bg_num

离运动物体较远的拖尾与残留区域的MB(AVC)的数量。

【注意事项】

  • move_scene16x16_num和move_scene_bits统计使能需要调用接口 ss_mpi_venc_set_fg_protect开启前景宏块级码率控制。

  • 仅SS928V100/SS626V100支持PSNR、帧SSE和SSE信息统计。

【相关数据类型及接口】

  • ss_mpi_venc_get_stream

  • ss_mpi_venc_set_fg_protect

ot_venc_sse_info

【说明】

定义H.264/H.265协议SSE信息。

【定义】

typedef struct {
    td_bool enable;
    td_u64 sse_val;
} ot_venc_sse_info;

【成员】

成员名称

描述

enable

区域SSE使能。

sse_val

区域SSE值。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_h265_adv_stream_info

【说明】

定义H.265协议码流高级特征信息。

【定义】

typedef struct {
    td_u32             residual_bits;
    td_u32             head_bits;
    td_u32             madi_val;
    td_u32             madp_val;
    td_double          psnr_val;
    td_u32             sse_lcu_cnt;
    td_u64             sse_sum;
    ot_venc_sse_info   sse_info[OT_VENC_MAX_SSE_NUM];
    td_u32             qp_hist[OT_VENC_QP_HIST_NUM];
    td_u32             move_scene32x32_num;
    td_u32             move_scene_bits;
    td_u32             deblur_near_bg_num;
    td_u32             deblur_far_bg_num;
} ot_venc_h265_adv_stream_info;

【成员】

成员名称

描述

residual_bits

编码当前帧残差(bit)数

head_bits

编码当前帧头信息的(bit)数

madi_val

编码当前帧空域纹理复杂度Madi值

madp_val

编码当前帧时域运动复杂度Madp值

psnr_val

编码当前帧的PSNR(峰值信噪比)值

sse_lcu_cnt

编码当前帧中LCU个数

sse_sum

编码当前帧中SSE(和方差)值

sse_info[OT_VENC_MAX_SSE_NUM]

编码当前帧中8个区域的SSE(和方差)值

qp_hist[OT_VENC_QP_HIST_NUM]

编码当前帧Qp直方图

move_scene32x32_num

判断为图像前景的32x32块的数目,需要开启前景宏块级码率控制。

move_scene_bits

判断为图像前景区域编码bit数,需要开启前景宏块级码率控制。

deblur_near_bg_num

离运动物体较近的拖尾与残留区域的LCU(HEVC)的数量。

deblur_far_bg_num

离运动物体较远的拖尾与残留区域的LCU(HEVC)的数量。

【注意事项】

  • move_scene32x32_num和move_scene_bits统计使能需要调用接口ss_mpi_venc_set_fg_protect开启前景宏块级码率控制。

  • sse的统计值有误差。计算sse_sum, sse_val时,未统计每一个LCU*LCU块底部4行,右边5列的像素;

  • psnr的计算过程如下:

    lcu_hor = (H265E_LCU_SIZE - 5);

    lcu_ver = (H265E_LCU_SIZE - 4);

    dl_data = (td_double)(((td_u64)255 * 255 * lcu_hor * lcu_ver * mse_lcu_cnt + 64) >> 7) / sse_sum;

    psnr = 10.0 * log10(dl_data);

  • 用户获取到的sse_sum, sse_val值,是对其统计值S进行(S * lcu_hor * lcu_ver / lcu_size / lcu_size + 64)/ 128的运算后的值。

  • sse的统计值有误差。

  • 当sse_sum为0时候,返回psnr值为99.00。

【相关数据类型及接口】

  • ss_mpi_venc_get_stream

  • ss_mpi_venc_set_fg_protect

ot_venc_stream

【说明】

定义帧码流类型结构体。

【定义】

typedef struct {
    ot_venc_pack ATTRIBUTE *pack;
    td_u32 ATTRIBUTE pack_cnt;
    td_u32 seq;
    union {
        ot_venc_h264_stream_info   h264_info;
        ot_venc_jpeg_stream_info   jpeg_info;
        ot_venc_h265_stream_info   h265_info;
        ot_venc_prores_stream_info prores_info;
    };
    union {
        ot_venc_h264_adv_stream_info   h264_adv_info;
        ot_venc_h265_adv_stream_info   h265_adv_info;
    };
} ot_venc_stream;

【成员】

成员名称

描述

pack

帧码流包结构。

pack_cnt

一帧码流的所有包的个数。

seq

码流序列号。

按帧获取帧序号;按包获取包序号。

h264_info/jpeg_info /h265_info/prores_info

码流特征信息。

h264_adv_info/ h265_adv_info

码流高级特征信息。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_stream_buf_info

【说明】

定义码流buffer信息的结构体。

【定义】

typedef struct {
    td_phys_addr_t phys_addr[OT_VENC_MAX_TILE_NUM];
    td_void ATTRIBUTE *user_addr[OT_VENC_MAX_TILE_NUM];
    td_u64 ATTRIBUTE buf_size[OT_VENC_MAX_TILE_NUM];
} ot_venc_stream_buf_info;

【成员】

成员名称

描述

phys_addr

码流buffer的起始物理地址。

user_addr

码流buffer的虚拟地址。

buf_size

码流buffer的大小。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_get_stream_buf_info

ot_venc_h265_attr

【说明】

定义H.265编码属性结构体。

【定义】

typedef struct {
    td_bool rcn_ref_share_buf_en;
    td_u32 frame_buf_ratio;
} ot_venc_h265_attr;

【成员】

成员名称

描述

rcn_ref_share_buf_en

是否使能帧节省模式。

取值范围:[0,1]

静态属性。

frame_buf_ratio

帧buffer比例。

取值范围:[70,100]

静态属性。

【注意事项】

  • SS528V100、SS625V100不支持frame_buf_ratio调节,必须设置为100。

  • frame_buf_ratio用来设置节省帧buffer比例,比如设置为80,则表示帧buffer为原始大小的80%;设置frame_buf_ratio不为100时,可能会对以下功能有影响, 且该值越小理论上出现的概率越高:

    1. P帧刷I slice可能会出现整帧刷成I块且提前结束刷I slice,涉及接口:ss_mpi_venc_set_intra_refresh;

    2. 去呼吸效应在某些帧上可能会失效,涉及接口:ss_mpi_venc_set_debreath_effect;

    3. QPMAP表不能强制指定skip块,SkipWeight表不能强制指定skip块,强制指定skip块可能会导致系统异常,驱动内部不做检查,用户自行保证;

    4. ROI背景低帧率编码可能会出现部分帧的非ROI区域不能编码为p_skip块,涉及接口:ss_mpi_venc_set_roi_bg_frame_rate;

    5. 某些场景指定为p_skip帧的情况下可能会失效,如编码瞬时码率超过阈值时丢帧策略,涉及接口:ss_mpi_venc_set_frame_lost_strategy;

    6. skip倾向性可能会失效,涉及接口:ss_mpi_venc_set_skip_bias

【相关数据类型及接口】

无。

ot_venc_h264_attr

【说明】

定义H.264编码属性结构体。

【定义】

typedef struct {
    td_bool rcn_ref_share_buf_en;
    td_u32 frame_buf_ratio;
} ot_venc_h264_attr;

【成员】

成员名称

描述

rcn_ref_share_buf_en

是否使能帧节省模式。

取值范围:[0,1]

静态属性。

frame_buf_ratio

帧buffer比例。

取值范围:[70,100]

静态属性

【注意事项】

  • SS528V100、SS625V100不支持frame_buf_ratio调节,必须设置为100。

  • frame_buf_ratio用来设置节省帧buffer比例,比如设置为80,则表示帧buffer为原始大小的80%;设置frame_buf_ratio不为100时,可能会对以下功能有影响, 且该值越小理论上出现的概率越高:

    1. P帧刷I slice可能会出现整帧刷成I块且提前结束刷I slice,涉及接口:ss_mpi_venc_set_intra_refresh;

    2. 去呼吸效应在某些帧上可能会失效,涉及接口:ss_mpi_venc_set_debreath_effect;

    3. QPMAP表不能强制指定skip块,SkipWeight表不能强制指定skip块,强制指定skip块可能会导致系统异常,驱动内部不做检查,用户自行保证;

    4. ROI背景低帧率编码可能会出现部分帧的非ROI区域不能编码为p_skip块,涉及接口:ss_mpi_venc_set_roi_bg_frame_rate;

    5. 某些场景指定为p_skip帧的情况下可能会失效,如编码瞬时码率超过阈值时丢帧策略,涉及接口:ss_mpi_venc_set_frame_lost_strategy;

    6. skip倾向性可能会失效,涉及接口:ss_mpi_venc_set_skip_bias。

【相关数据类型及接口】

无。

ot_venc_mpf_cfg

【说明】

定义JPEG MPF结构体。

【定义】

typedef struct {
    td_u8 large_thumbnail_num;
    td_size large_thumbnail_size[OT_VENC_MAX_MPF_NUM];
} ot_venc_mpf_cfg;

【成员】

成员名称

描述

large_thumbnail_num

编码mpf缩略图的个数。

取值范围:[0,2]

0代表不编码mpf。

静态属性。

large_thumbnail_size[OT_VENC_MAX_MPF_NUM]

mpf缩略图的大小。

静态属性。

【注意事项】

  • 使能Mpf后获取码流仅支持多包模式,建议调用接口ss_mpi_venc_set_mod_param设置 one_stream_buffer为多包模式。

  • Mpf的宽的范围为(160,PicWidth),高的范围为(120,PicHeight),PicWidth和PicHeight为通道属性宽高。Mpf的宽高必须按4对齐。

  • 当Mpf个数配置为2时,第2个Mpf的宽高属性必须小于第1个Mpf的宽高属性。

  • mpf图像大小受vgs缩放能力限制,通道宽高和第1个Mpf的宽高比例要小于vgs缩放能力,第1个Mpf的宽高和第2个Mpf的宽高比例要小于vgs缩放能力。

  • SS528V100、SS625V100、SS524V100、SS522V101不支持MPF。

【相关数据类型及接口】

无。

ot_venc_pic_recv_mode

【说明】

定义RECEIVE MODE结构体。

【定义】

typedef enum {
    OT_VENC_PIC_RECV_SINGLE = 0,
    OT_VENC_PIC_RECV_MULTI,
    OT_VENC_PIC_RECV_BUTT
} ot_venc_pic_recv_mode;

【成员】

成员名称

描述

OT_VENC_PIC_RECV_SINGLE

当前编码通道只允许从一个源接收图像。

静态属性。

OT_VENC_PIC_RECV_MULTI

当前编码通道允许从多个源接收图像。

静态属性。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_jpeg_attr

ot_venc_recv_src

【说明】

定义JPEG收帧方式在OT_VENC_PIC_RECV_MULTI情况下的绑定源类型。

【定义】

typedef enum {
    OT_VENC_RECV_SRC0 = 0,
    OT_VENC_RECV_SRC1,
    OT_VENC_RECV_SRC2,
    OT_VENC_RECV_SRC3,
    OT_VENC_RECV_BUTT
} ot_venc_recv_src;

【成员】

成员名称

描述

OT_VENC_RECV_SRC0

用于指定JPEG编码通道OT_VENC_PIC_RECV_MULTI模式从源0接收图像。

OT_VENC_RECV_SRC1

用于指定JPEG编码通道OT_VENC_PIC_RECV_MULTI模式从源1接收图像。

OT_VENC_RECV_SRC2

用于指定JPEG编码通道OT_VENC_PIC_RECV_MULTI模式从源2接收图像。

OT_VENC_RECV_SRC3

用于指定JPEG编码通道OT_VENC_PIC_RECV_MULTI模式从源3接收图像。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_pic_recv_mode

ot_venc_jpeg_attr

【说明】

定义JPEG抓拍属性结构体。

【定义】

typedef struct
{
    td_bool dcf_en;
    ot_venc_mpf_cfg mpf_cfg;
    ot_venc_pic_recv_mode recv_mode;
} ot_venc_jpeg_attr;

【成员】

成员名称

描述

dcf_en

是否使能DCF(Design rule for Camera File system)。

DCF信息包含拍照基本信息和缩略图。

静态属性。

mpf_cfg

编码JPEG Mpf配置。

静态属性。

recv_mode

JPEG通道的图像接收模式。

静态属性。

【注意事项】

  • 缩略图默认大小为160x120,不支持设置。

  • dcf不支持叠加osd。

  • JPEGE编码通道使用overlay方式实现osd时,osd可叠加到原图上,也可叠加到mpf图上。

  • JPEGE编码通道设置recv_mode为OT_VENC_PIC_RECV_MULTI模式时允许从多个源接收图像,须配合DCF/MPF使用。JPEGE编码通道根据接收到图像的分辨率判断该图像编码为SRC或者DCF或者MPF0或者MPF1,因此要求从多个源接收到图像的分辨率分别和通道宽高、DCF、MPF0及MPF1相等。

  • SS528V100、SS625V100、SS524V100、SS522V101、SS626V100不支持使能dcf,mpf功能;不支持OT_VENC_PIC_RECV_MULTI模式配置。

【相关数据类型及接口】

无。

ot_venc_prores_frame_rate

【说明】

定义PRORES帧率枚举。

【定义】

typedef enum {
    OT_VENC_PRORES_FRAME_RATE_UNKNOWN = 0,
    OT_VENC_PRORES_FRAME_RATE_23_976,
    OT_VENC_PRORES_FRAME_RATE_24,
    OT_VENC_PRORES_FRAME_RATE_25,
    OT_VENC_PRORES_FRAME_RATE_29_97,
    OT_VENC_PRORES_FRAME_RATE_30,
    OT_VENC_PRORES_FRAME_RATE_50,
    OT_VENC_PRORES_FRAME_RATE_59_94,
    OT_VENC_PRORES_FRAME_RATE_60,
    OT_VENC_PRORES_FRAME_RATE_100,
    OT_VENC_PRORES_FRAME_RATE_119_88,
    OT_VENC_PRORES_FRAME_RATE_120,
    OT_VENC_PRORES_FRAME_RATE_BUTT
} ot_venc_prores_frame_rate;

【成员】

成员名称

描述

OT_VENC_PRORES_FRAME_RATE_UNKNOWN

未知/未声明

OT_VENC_PRORES_FRAME_RATE_23_976

24/1.001 (23.976…)

OT_VENC_PRORES_FRAME_RATE_24

24

OT_VENC_PRORES_FRAME_RATE_25

25

OT_VENC_PRORES_FRAME_RATE_29_97

30/1.001 (29.97…)

OT_VENC_PRORES_FRAME_RATE_30

30

OT_VENC_PRORES_FRAME_RATE_50

50

OT_VENC_PRORES_FRAME_RATE_59_94

60/1.001 (59.94…)

OT_VENC_PRORES_FRAME_RATE_60

60

OT_VENC_PRORES_FRAME_RATE_100

100

OT_VENC_PRORES_FRAME_RATE_119_88

120/1.001 (119.88…)

OT_VENC_PRORES_FRAME_RATE_120

120

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_prores_aspect_ratio

【说明】

定义PRORES幅型比枚举。

【定义】

typedef enum {
    OT_VENC_PRORES_ASPECT_RATIO_UNKNOWN = 0,
    OT_VENC_PRORES_ASPECT_RATIO_SQUARE,
    OT_VENC_PRORES_ASPECT_RATIO_4_3,
    OT_VENC_PRORES_ASPECT_RATIO_16_9,
    OT_VENC_PRORES_ASPECT_RATIO_BUTT
} ot_venc_prores_aspect_ratio;

【成员】

成员名称

描述

OT_VENC_PRORES_ASPECT_RATIO_UNKNOWN

未知/未声明

OT_VENC_PRORES_ASPECT_RATIO_SQUARE

方形

OT_VENC_PRORES_ASPECT_RATIO_4_3

4:3图像幅型比

OT_VENC_PRORES_ASPECT_RATIO_16_9

16:9图像幅型比

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_prores_attr

【说明】

定义PRORES属性结构体。

【定义】

typedef struct {
    ot_char identifier[OT_VENC_PRORES_MAX_ID_CHAR_NUM];
    ot_venc_prores_frame_rate frame_rate_code;
    ot_venc_prores_aspect_ratio aspect_ratio;
} ot_venc_prores_attr;

【成员】

成员名称

描述

identifier[OT_VENC_PRORES_MAX_ID_CHAR_NUM]

厂商名称。

frame_rate_code

帧率。

aspect_ratio

幅型比。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_attr

【说明】

定义编码器属性结构体。

【定义】

typedef struct {
    ot_payload_type type;
    td_u32  max_pic_width;
    td_u32  max_pic_height;
    td_u32  buf_size;
    td_u32  profile;
    td_bool is_by_frame;
    td_u32  pic_width;
    td_u32  pic_height;
    union {
        ot_venc_h264_attr h264_attr;
        ot_venc_h265_attr h265_attr;
        ot_venc_jpeg_attr jpeg_attr;
        ot_venc_prores_attr prores_attr;
    };
} ot_venc_attr;

【成员】

成员名称

描述

type

编码协议类型。

max_pic_width

编码图像最大宽度。

取值范围:[MIN_WIDTH, MAX_WIDTH],以像素为单位。

必须是MIN_ALIGN的整数倍。

静态属性。

max_pic_height

编码图像最大高度。

取值范围:[MIN_HEIGHT, MAX_HEIGHT],以像素为单位。

必须是MIN_ALIGN的整数倍

静态属性。

buf_size

码流buffer大小。

取值范围:[Min, Max],以byte为单位。

必须是64的整数倍。

推荐值:一幅最大编码图像大小。推荐值为MaxPicWidth ´ MaxPicHeight ´1.5 byte。

静态属性。

调用接口ss_mpi_venc_set_mod_param设置模块参数min_buf_mode可以选择取值范围限制方式。

对于H.264/H.265:

1、min_buf_mode = 0:

Min:一幅最大编码图像大小的1/2。

Max:无限制,但是会消耗更多的内存。

2、min_buf_mode = 1,用户保证buffer大小合理性:

Min:32x1024 byte

Max:无限制,但是会消耗更多的内存。

对于Jpeg/Mjpeg:

1、min_buf_mode = 0:

Min:图像最大宽高16对齐后的乘积。

Max:无限制,但是会消耗更多的内存。

2、min_buf_mode = 1,用户保证buffer大小合理性:

Min:不小于32x1024 byte

Max:无限制,但是会消耗更多的内存。

对于Prores:

Min:一幅最大编码图像大小。

Max:无限制,但是会消耗更多的内存。

静态属性。

profile

编码的等级。

H.264取值范围:[0, 3]

0:Baseline。

1:Main Profile。

2:High Profile。

3:svc-t。

H.265取值范围:[0,1]

0:Main Profile。

1:Main 10 Profile。

Jpeg/Mjpeg取值范围:0

0:Baseline

静态属性。

is_by_frame

帧/包模式获取码流。

取值范围:{TD_TRUE, TD_FALSE}。

  • TD_TRUE:按帧获取。
  • TD_FALSE:按包获取。

静态属性。

pic_width

编码图像宽度。

取值范围:[MIN_WIDTH, MAX_WIDTH],以像素为单位。

必须是MIN_ALIGN的整数倍。

pic_height

编码图像高度。

取值范围:[MIN_HEIGHT, MAX_HEIGHT],以像素为单位。

必须是MIN_ALIGN的整数倍

h264_attr/ jpeg_attr/ h265_attr/ prores_attr

某种协议的编码器属性。

暂不支持prores。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_gop_mode

【说明】

定义H.264/H.265 GOP类型。

【定义】

typedef enum {
    OT_VENC_GOP_MODE_NORMAL_P   = 0,
    OT_VENC_GOP_MODE_DUAL_P     = 1,
    OT_VENC_GOP_MODE_SMART_P    = 2,
    OT_VENC_GOP_MODE_ADV_SMART_P = 3,
    OT_VENC_GOP_MODE_BIPRED_B   = 4,
    OT_VENC_GOP_MODE_LOW_DELAY_B = 5,
    OT_VENC_GOP_MODE_BUTT,
} ot_venc_gop_mode;

【成员】

成员名称

描述

OT_VENC_GOP_MODE_NORMAL_P

编码单参考帧P帧GOP类型。

OT_VENC_GOP_MODE_DUAL_P

编码双参考帧P帧GOP类型。

OT_VENC_GOP_MODE_SMART_P

编码智能P帧GOP类型。

OT_VENC_GOP_MODE_ADV_SMART_P

编码高级智能P帧GOP类型。

OT_VENC_GOP_MODE_BIPRED_B

编码B帧GOP类型。

OT_VENC_GOP_MODE_LOW_DELAY_B

编码B帧GOP类型,其中B帧只有前向参考帧。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_gop_normal_p

【说明】

定义编码单参考帧P帧GOP属性结构体。

【定义】

typedef struct {
    td_s32 ip_qp_delta;
} ot_venc_gop_normal_p;

【成员】

成员名称

描述

ip_qp_delta

I帧相对P帧的QP差值。

取值范围:[-10, 30]

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_gop_dual_p

【说明】

定义编码双参考帧P帧GOP属性结构体。

【定义】

typedef struct {
    td_u32 sp_interval;
    td_s32 sp_qp_delta;
    td_s32 ip_qp_delta;
} ot_venc_gop_dual_p;

【成员】

成员名称

描述

sp_interval

Special P帧的间隔。

取值范围:[0, 1)∪(1, gop-1],gop是I帧间隔

sp_qp_delta

Special P帧相对普通P帧的QP差值。

取值范围:[-10, 30]

ip_qp_delta

I帧相对普通P帧的QP差值。

取值范围:[-10, 30]

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_gop_smart_p

【说明】

定义编码智能P帧GOP属性结构体。

【定义】

typedef struct {
    td_u32 bg_interval;
    td_s32 bg_qp_delta;
    td_s32 vi_qp_delta;
    td_u32 vi_max_qp;
    td_u32 vi_min_qp;
} ot_venc_gop_smart_p;

【成员】

成员名称

描述

bg_interval

长期参考帧的间隔。

取值范围:[gop, 65536],且必须是gop的整数倍。

bg_qp_delta

长期参考帧和P帧的QP差值。

取值范围:[-10, 30]

备注:在调试信息中,该参数等同其他码控模式的ip_qp_delta。

vi_qp_delta

虚拟I帧相对于普通P帧的QP差值。

取值范围:[-10, 30]

vi_max_qp

虚拟I帧的最大QP。

取值范围:[0, 51]

默认值:51

vi_min_qp

虚拟I帧的最小QP。

取值范围:[0, 51]

默认值:10

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_gop_adv_smart_p

【说明】

定义编码高级智能P帧GOP属性结构体。

【定义】

typedef struct {
    td_u32 bg_interval;
    td_s32 bg_qp_delta;
    td_s32 vi_qp_delta;
} ot_venc_gop_adv_smart_p;

【成员】

成员名称

描述

bg_interval

长期参考帧的间隔。

取值范围:[gop, 65536],且必须是gop的整数倍。

bg_qp_delta

长期参考帧和P帧的QP差值。

取值范围:[-10, 30]

备注:在调试信息中,该参数等同其他码控模式的ip_qp_delta。

vi_qp_delta

虚拟I帧相对于普通P帧的QP差值。

取值范围:[-10, 30]

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_gop_bipred_b

【说明】

定义编码B帧GOP属性结构体。

【定义】

typedef struct {
    td_u32 b_frame_num;
    td_s32 b_qp_delta;
    td_s32 ip_qp_delta;
} ot_venc_gop_bipred_b;

【成员】

成员名称

描述

b_frame_num

编码B帧的个数。

取值范围:[1, 3]

b_qp_delta

B帧相对P帧的QP差值。

取值范围:[-10, 30]

ip_qp_delta

I帧相对普通P帧的QP差值。

取值范围:[-10, 30]

【注意事项】

无。

【相关数据类型及接口】

无。

ot_venc_gop_attr

【说明】

定义编码器GOP属性结构体。

【定义】

typedef struct {
    ot_venc_gop_mode gop_mode;
    union {
        ot_venc_gop_normal_p   normal_p;
        ot_venc_gop_dual_p     dual_p;
        ot_venc_gop_smart_p    smart_p;
        ot_venc_gop_adv_smart_p adv_smart_p;
        ot_venc_gop_bipred_b   bipred_b;
    };
} ot_venc_gop_attr;

【成员】

成员名称

描述

gop_mode

编码GOP类型。

normal_p

编码单参考帧P帧GOP属性结构体。

dual_p

编码双参考帧P帧GOP属性结构体。

smart_p

编码智能P帧GOP属性结构体。

adv_smart_p

编码高级智能P帧GOP属性结构体。

bipred_b

编码B帧GOP属性结构体。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_chn_attr

【说明】

定义编码通道属性结构体。

【定义】

typedef struct {
    ot_venc_attr venc_attr;
    ot_venc_rc_attr rc_attr;
    ot_venc_gop_attr gop_attr;
} ot_venc_chn_attr;

【成员】

成员名称

描述

venc_attr

编码器属性。

rc_attr

码率控制器属性。

gop_attr

GOP属性结构体(包含Gop Mode)

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_start_param

【说明】

定义编码通道连续接收并编码的帧数结构体。

【定义】

typedef struct {
    td_s32 recv_pic_num;
} ot_venc_start_param;

【成员】

成员名称

描述

recv_pic_num

编码通道连续接收并编码的帧数。

范围:[-1,0)∪(0 ∞]

-1 表示不限制帧数,0 是非法参数

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_start_chn

ot_venc_stream_info

【说明】

定义编码器码流特征信息,供外部查询使用。

【定义】

typedef struct {
    ot_venc_ref_type ref_type;
    td_u32  pic_bytes;
    td_u32  pic_cnt;
    td_u32  start_qp;
    td_u32  mean_qp;
    td_bool is_p_skip;
    td_u32  residual_bits;
    td_u32  head_bits;
    td_u32  madi_val;
    td_u32  madp_val;
    td_u64  sse_sum;
    td_u32  sse_lcu_cnt;
    td_double psnr_val;
} ot_venc_stream_info;

【成员】

成员名称

描述

ref_type

高级跳帧参考下的编码帧类型。

pic_bytes

编码当前帧的字节(BYTE)数

pic_cnt

按帧获取码流时,表示编码帧计数;

按包获取码流时,表示编码包计数。

start_qp

编码当前帧的startqp值

mean_qp

编码当前帧的平均QP值

is_p_skip

当前帧是否为p_skip帧

residual_bits

编码当前帧残差(bit)数

head_bits

编码当前帧头信息的(bit)数

madi_val

编码当前帧空域纹理复杂度Madi值

madp_val

编码当前帧时域运动复杂度Madp值

sse_sum

编码当前帧中SSE(和方差)值

sse_lcu_cnt

编码当前帧中LCU个数

psnr_val

编码当前帧的PSNR(峰值信噪比)值

【注意事项】

  • 此结构体定义是为了ss_mpi_venc_query_status接口中使用。编码特征信息的内容与ss_mpi_venc_get_stream获取到的编码特征信息一致,请参考结构体ot_venc_stream。与ss_mpi_venc_get_stream获取信息不同的是,ss_mpi_venc_query_status不必读取实际编码出来的码流,可以在不同的进程中使用。

  • 此结构体数据仅对H.264和H.265通道有效,其他协议获取到的信息为全部为0。

  • 此结构体数据与最近一次调用ss_mpi_venc_get_stream获取到的编码信息一致,在用户还未获取到任一帧码流前,此结构体中数据为全部为0。

【相关数据类型及接口】

ot_venc_chn_status

ot_venc_chn_status

【说明】

定义编码通道的状态结构体。

【定义】

typedef struct {
    td_u32 left_pics;
    td_u32 left_stream_bytes;
    td_u32 left_stream_frames;
    td_u32 cur_packs;
    td_u32 left_recv_pics;
    td_u32 left_enc_pics;
    td_bool is_jpeg_snap_end;
    td_u64 release_pic_pts;
    td_s64 cvbr_bytes_saving;
    ot_venc_stream_info stream_info;
} ot_venc_chn_status;

【成员】

成员名称

描述

left_pics

待编码的图像数。

left_stream_bytes

码流buffer剩余的byte数。

left_stream_frames

码流buffer剩余的帧数。

cur_packs

当前帧的码流包个数。

left_recv_pics

剩余待接收的帧数,在用户调用接口ss_mpi_venc_start_chn设置接收帧数后有效。

left_enc_pics

剩余待编码的帧数,在用户调用接口ss_mpi_venc_start_chn设置接收帧数后有效。

is_jpeg_snap_end

Jpege抓拍模式下指示抓拍过程是否结束。

release_pic_pts

释放码流对应图像的PTS

cvbr_bytes_saving

cvbr节省的byte数

stream_info

编码器码流特征信息。

【注意事项】

如果venc接收的抓拍帧有丢帧出现,is_jpeg_snap_end会存在不能正确标记抓拍结束的情况。

【相关数据类型及接口】

ss_mpi_venc_query_status

ot_venc_slice_split

【说明】

定义H.264,H.265协议编码通道SLICE分割结构体。

【定义】

typedef struct {
    td_bool enable;
    td_u32 split_mode;
    td_u32 split_size;
    td_bool slice_output_en;
} ot_venc_slice_split;

【成员】

成员名称

描述

enable

Slice分割是否使能。

split_mode

Slice分割模式。

0:按byte数分割。

1:按宏块行或者LCU行分割。

split_size

split_mode =0,表示每个slice的byte数。

最小值为:128;

最大值为:min((0xFFFF), pic_size/2),其中pic_size=pic_width x pic_height x 3/2

split_mode=1,H.264表示为每个slice占的宏块行数,H.265表示每个slice占的LCU行数。

最小值为:1;

最大值为:H.264为(图像高+15)/16,H.265为(图像高+LCU - 1)/LCU。

slice_output_en

仅SS928V100/SS626V100/SS524V100/SS528V100支持使能,默认值为TD_FALSE,当slice_output_en为TD_TRUE时,通道属性is_by_frame必须为TD_FALSE。

【注意事项】

当split_mode=1时,对H.265协议需要关注当前解决方案的LCU大小,SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100解决方案的LCU大小为32。

【相关数据类型及接口】

  • ss_mpi_venc_set_slice_split

  • ss_mpi_venc_get_slice_split

ot_venc_search_window

【说明】

定义H.264/H.265协议编码通道搜索窗范围。

【定义】

typedef struct {
    ot_op_mode mode;
    td_u32 hor;
    td_u32 ver;
} ot_venc_search_window;

【成员】

成员名称

描述

mode

搜索窗模式。

OT_OP_MODE_AUTO :自动模式;

OT_OP_MODE_MANUAL :手动模式。

ot_op_mode请参考“系统控制”章节。

hor

搜索窗水平范围,当mode为手动模式时有效。

最小值为32,不检查上限。

ver

搜索窗垂直范围,当mode为手动模式时有效。

最小值为32,不检查上限。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_search_window

  • ss_mpi_venc_get_search_window

ot_venc_h264_intra_pred

【说明】

定义H.264协议编码通道帧内预测结构体。

【定义】

typedef struct {
    td_u32 constrained_intra_pred_flag;
} ot_venc_h264_intra_pred;

【成员】

成员名称

描述

constrained_intra_pred_flag

默认为0。

取值范围:0或1。

【注意事项】

以上参数具体含义请参见H.264协议。

【相关数据类型及接口】

  • ss_mpi_venc_set_h264_intra_pred

  • ss_mpi_venc_get_h264_intra_pred

ot_venc_h264_trans

【说明】

定义H.264协议编码通道变换、量化结构体。

【定义】

typedef struct {
    td_u32  intra_trans_mode;
    td_u32  inter_trans_mode;
    td_bool  scaling_list_valid;
    td_u8   inter_scaling_list8x8[OT_VENC_SCALING_LIST_SIZE_64];
    td_u8   intra_scaling_list8x8[OT_VENC_SCALING_LIST_SIZE_64];
    td_s32  chroma_qp_index_offset;
} ot_venc_h264_trans;

【成员】

成员名称

描述

intra_trans_mode

帧内预测的变换模式:

  • 0:支持4x4,8x8变换,high profile,svc-t支持。
  • 1:4x4变换,baseline, main, high profile, svc-t均支持。
  • 2:8x8变换,high profile支持。

系统根据通道协议类型默认TransMode的选择。

inter_trans_mode

帧间预测的变换模式:

  • 0:支持4x4,8x8变换,high profile,svc-t支持。
  • 1:4x4变换,baseline, main, high profile,svc-t均支持。
  • 2:8x8变换,high profile支持。

系统根据通道协议类型默认TransMode的选择。

scaling_list_valid

inter_scaling_list8x8、intra_scaling_list8x8是否有效标识,只在high profile,svc-t下才有意义。

取值范围:0或1。

0:无效;

1:有效。

只支持配置0。

inter_scaling_list8x8

帧间预测8x8的量化表,在high profile,svc-t下,用户可以使用自己的量化表,保留,暂不使用。

取值范围:[1, 255]

intra_scaling_list8x8

帧内预测8x8的量化表,在high profile,svc-t下,用户可以使用自己的量化表,保留,暂不使用。

取值范围:[1, 255]

chroma_qp_index_offset

具体含义请参见H.264协议。

系统默认值为0。

取值范围:[-12, 12]

【注意事项】

  • 以上参数具体含义请参见H.264协议。

  • 不支持量化表,因此不支持设置scaling_list_valid、inter_scaling_list8x8、intra_scaling_list8x8。

【相关数据类型及接口】

  • ss_mpi_venc_set_h264_trans

  • ss_mpi_venc_get_h264_trans

ot_venc_h264_entropy

【说明】

定义H.264协议编码通道熵编码结构体。

【定义】

typedef struct {
    td_u32 entropy_coding_mode_i;
    td_u32 entropy_coding_mode_p;
    td_u32 entropy_coding_mode_b;
    td_u32 cabac_init_idc;
} ot_venc_h264_entropy;

【成员】

成员名称

描述

entropy_coding_mode_i

I帧熵编码模式。

  • 0:cavlc
  • 1:cabac

>=2没有意义。

Baseline不支持cabac。

entropy_coding_mode_p

P帧熵编码模式。

  • 0:cavlc
  • 1:cabac

>=2没有意义。

Baseline不支持cabac。

entropy_coding_mode_b

B帧熵编码模式。

  • 0:cavlc
  • 1:cabac

>=2没有意义。

Baseline不支持cabac,不支持B帧。

cabac_init_idc

取值范围:[0, 2], 默认值0,具体含义请参见H.264协议。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_h264_entropy

  • ss_mpi_venc_get_h264_entropy

ot_venc_h264_dblk

【说明】

定义H.264协议编码通道Dblk结构体。

【定义】

typedef struct {
    td_u32 disable_deblocking_filter_idc;
    td_s32 slice_alpha_c0_offset_div2;
    td_s32 slice_beta_offset_div2;
} ot_venc_h264_dblk;

【成员】

成员名称

描述

disable_deblocking_filter_idc

取值范围:[0, 2], 默认值0,具体含义请参见H.264协议。

slice_alpha_c0_offset_div2

取值范围:[-6, 6], 默认值0,具体含义请参见H.264协议。

slice_beta_offset_div2

取值范围:[-6, 6], 默认值0,具体含义请参见H.264协议。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_h264_dblk

  • ss_mpi_venc_get_h264_dblk

ot_venc_h264_vui

【说明】

定义H.264协议编码通道Vui结构体。

【定义】

typedef struct {
    ot_venc_vui_aspect_ratio      vui_aspect_ratio;
    ot_venc_h264_vui_time_info    vui_time_info;
    ot_venc_vui_video_signal      vui_video_signal;
    ot_venc_vui_bitstream_restric vui_bitstream_restric;
} ot_venc_h264_vui;

【成员】

成员名称

描述

vui_aspect_ratio

具体含义请参见H.264协议。

vui_time_info

具体含义请参见H.264协议。

vui_video_signal

具体含义请参见H.264协议。

vui_bitstream_restric

具体含义请参见H.264协议。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_h264_vui

  • ss_mpi_venc_get_h264_vui

ot_venc_h265_vui

【说明】

定义H.265协议编码通道Vui结构体。

【定义】

typedef struct {
    ot_venc_vui_aspect_ratio      vui_aspect_ratio;
    ot_venc_h265_vui_time_info    vui_time_info;
    ot_venc_vui_video_signal      vui_video_signal;
    ot_venc_vui_bitstream_restric vui_bitstream_restric;
} ot_venc_h265_vui;

【成员】

成员名称

描述

vui_aspect_ratio

具体含义请参见H.265协议。

vui_time_info

具体含义请参见H.265协议。

vui_video_signal

具体含义请参见H.265协议。

vui_bitstream_restric

具体含义请参见H.265协议。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_h265_vui

  • ss_mpi_venc_get_h265_vui

ot_venc_vui_aspect_ratio

【说明】

定义H.264/H.265协议编码通道Vui中AspectRatio信息的结构体。

【定义】

typedef struct
{
    td_u8               aspect_ratio_info_present_flag;       
    td_u8               aspect_ratio_idc;                
    td_u8               overscan_info_present_flag;                   
    td_u8               overscan_appropriate_flag;                      
    td_u16              sar_width;                            
    td_u16              sar_height;                  
} ot_venc_vui_aspect_ratio;

【成员】

成员名称

描述

aspect_ratio_info_present_flag

具体含义请参见H.264/H.265协议,系统默认为0。

取值范围:0或1。以下参数只有在该标志为1时才生效。

aspect_ratio_idc

具体含义请参见H.264/H.265协议,系统默认为1。

取值范围:[0,255],17~254 保留。

overscan_info_present_flag

具体含义请参见H.264/H.265协议,系统默认为0。

取值范围:0或1。

overscan_appropriate_flag

具体含义请参见H.264/H.265协议,系统默认为0。

取值范围:0或1。

sar_width

具体含义请参见H.264/H.265协议,系统默认为1。

取值范围:(0, 65535],并且与sar_height互质。

sar_height

具体含义请参见H.264/H.265协议,系统默认为1。

取值范围:(0, 65535],并且与sar_width互质。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_h264_vui_time_info

【说明】

定义H.264协议编码通道Vui中Time_Info信息的结构体。

【定义】

typedef struct {
    td_u8  timing_info_present_flag;
    td_u8  fixed_frame_rate_flag;
    td_u32 num_units_in_tick;
    td_u32 time_scale;
} ot_venc_h264_vui_time_info;

【成员】

成员名称

描述

timing_info_present_flag

具体含义请参见H.264协议,系统默认为0。

取值范围:0或1。以下参数只有在该标志为1时才有生效。

fixed_frame_rate_flag

具体含义请参见H.264协议,系统默认为1。

取值范围:0或1。

num_units_in_tick

具体含义请参见H.264协议,系统默认为1。

取值范围:大于0。

time_scale

具体含义请参见H.264协议,系统默认为60。

取值范围:大于0。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_h264_vui

ot_venc_h265_vui_time_info

【说明】

定义H.265协议编码通道Vui中Time_Info信息的结构体。

【定义】

typedef struct {
    td_u32 timing_info_present_flag;
    td_u32 num_units_in_tick;
    td_u32 time_scale;
    td_u32 num_ticks_poc_diff_one_minus1;
} ot_venc_h265_vui_time_info;

【成员】

成员名称

描述

timing_info_present_flag

具体含义请参见H.265协议,系统默认为0。

取值范围:0或1。以下参数只有在该标志为1时才有生效。

num_units_in_tick

具体含义请参见H.265协议,系统默认为1。

取值范围:大于0。

time_scale

具体含义请参见H.265协议,系统默认为60。

取值范围:大于0。

num_ticks_poc_diff_one_minus1

具体含义请参见H.265协议,系统默认为1。

取值范围:[0, 2^32-2]

【注意事项】

无。

【相关数据类型及接口】

ot_venc_h265_vui

ot_venc_vui_video_signal

【说明】

定义H.264/H.265协议编码通道Vui中信息的Video_Signal结构体。

【定义】

typedef struct {
    td_u8 video_signal_type_present_flag;
    td_u8 video_format;
    td_u8 video_full_range_flag;
    td_u8 colour_description_present_flag;
    td_u8 colour_primaries;
    td_u8 transfer_characteristics;
    td_u8 matrix_coefficients;
} ot_venc_vui_video_signal;

【成员】

成员名称

描述

video_signal_type_present_flag

具体含义请参见H.264/H.265协议,系统默认为1。

取值范围:0或1。以下参数只有在该标志为1时才生效。

video_format

具体含义请参见H.264/H.265协议,系统默认为5。

取值范围:H.264:[0, 7],H.265: [0, 5]

video_full_range_flag

具体含义请参见H.264/H.265协议,系统默认为1。

取值范围:0或1。

colour_description_present_flag

具体含义请参见H.264/H.265协议,系统默认为1。

该值为只读信息。

取值范围:0或1。

colour_primaries

具体含义请参见H.264/H.265协议,系统默认为1。

该值为只读信息,内部根据当前图像实际信息填写。

取值范围:[0, 255]

transfer_characteristics

具体含义请参见H.264/H.265协议,系统默认为1。

该值为只读信息,内部根据当前图像实际信息填写。

取值范围:[0, 255]

matrix_coefficients

具体含义请参见H.264/H.265协议,系统默认为1。

该值为只读信息,内部根据当前图像实际信息填写。

取值范围:[0, 255]

【注意事项】

无。

【相关数据类型及接口】

ot_venc_vui_bitstream_restric

【说明】

定义H.264/H.265协议编码通道Vui中信息的Bitstream_Restriction结构体。

【定义】

typedef struct {
    td_u8 bitstream_restriction_flag ;
} ot_venc_vui_bitstream_restric;

【成员】

成员名称

描述

bitstream_restriction_flag

具体含义请参见H.264/H.265协议,系统默认为0。

取值范围:0或1。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_jpeg_param

【说明】

定义JPEG协议编码通道高级参数结构体。

【定义】

typedef struct {
    td_u32 qfactor;
    td_u8  y_qt[OT_VENC_JPEG_QT_COEF_NUM];
    td_u8  cb_qt[OT_VENC_JPEG_QT_COEF_NUM];
    td_u8  cr_qt[OT_VENC_JPEG_QT_COEF_NUM];
    td_u32 mcu_per_ecs;
    td_bool ecs_output_en;
} ot_venc_jpeg_param;

【成员】

成员名称

描述

qfactor

具体含义请参见RFC2435协议,系统默认为90。

取值范围:[1, 99]

y_qt

Y量化表。

取值范围:[1, 255]

cb_qt

Cb量化表。

取值范围:[1, 255]

cr_qt

Cr量化表。

取值范围:[1, 255]

mcu_per_ecs

每个ECS中包含多少个MCU,系统默认为0,表示不划分Ecs。

mcu_per_ecs:[0, min{(picwidth+15)>>4 x (picheight+15)>>4 x 2, 65535}]

ecs_output_en

仅SS928V100/SS626V100支持,不支持的默认值为TD_FALSE,当ecs_output_en为TD_TRUE时,通道属性is_by_frame必须为TD_FALSE。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_jpeg_param

  • ss_mpi_venc_get_jpeg_param

ot_venc_mjpeg_param

【说明】

定义MJPEG协议编码通道高级参数结构体。

【定义】

typedef struct {
    td_u8  y_qt[OT_VENC_MJPEG_QT_COEF_NUM];
    td_u8  cb_qt[OT_VENC_MJPEG_QT_COEF_NUM];
    td_u8  cr_qt[OT_VENC_MJPEG_QT_COEF_NUM];
    td_u32 mcu_per_ecs;
    td_bool ecs_output_en;
} ot_venc_mjpeg_param;

【成员】

成员名称

描述

y_qt

Y量化表。

取值范围:[1, 255]

cb_qt

Cb量化表。

取值范围:[1, 255]

cr_qt

Cr量化表。

取值范围:[1, 255]

mcu_per_ecs

每个ECS中包含多少个MCU,系统默认为0,表示不划分ECS。

mcu_per_ecs:[0,min{(picwidth+15)>>4 x (picheight+15)>>4 x 2, 65535}]

ecs_output_en

仅SS928V100/SS626V100支持,不支持的默认值为TD_FALSE,当ecs_output_en为TD_TRUE时,通道属性is_by_frame必须为TD_FALSE。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_mjpeg_param

  • ss_mpi_venc_get_mjpeg_param

ot_venc_roi_attr

【说明】

定义编码感兴趣区域信息。

【定义】

typedef struct {
    td_u32  idx;
    td_bool enable;
    td_bool is_abs_qp;
    td_s32  qp;
    ot_rect rect;
} ot_venc_roi_attr;

【成员】

成员名称

描述

idx

ROI区域的索引,系统支持的索引范围为[0,7],不支持超出这个范围的索引。

enable

是否使能这个ROI区域。

is_abs_qp

ROI区域QP模式。

  • TD_FALSE:相对QP
  • TD_TRUE:绝对QP

qp

QP值,当QP模式为TD_FALSE时,qp为QP偏移,qp范围[-51,51],当QP模式为TD_TRUE时,qp为宏块QP值,qp范围[0,51]

rect

ROI区域。

x、y、width、height必须是16对齐。

ot_rect请参考”系统控制”章节。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_roi_attr

  • ss_mpi_venc_get_roi_attr

ot_venc_roi_for_frame

【说明】

定义感兴趣区域应用类型。

【定义】

typedef enum {
    OT_VENC_ROI_FOR_I = 0,
    OT_VENC_ROI_FOR_P_B,
    OT_VENC_ROI_FOR_VI,
    OT_VENC_ROI_FOR_BUTT,
} ot_venc_roi_for_frame;

【成员】

成员名称

描述

OT_VENC_ROI_FOR_I

应用于I帧的ROI。

OT_VENC_ROI_FOR_P_B

应用于P帧或B帧的ROI。

OT_VENC_ROI_FOR_VI

应用于VI(虚拟I)帧的ROI。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_roi_attr_ex

ot_venc_roi_attr_ex

【说明】

定义编码通道感兴趣区域编码高级属性。

【定义】

typedef struct {
    td_u32  idx;
    td_bool enable[OT_VENC_ROI_FOR_BUTT];
    td_bool is_abs_qp[OT_VENC_ROI_FOR_BUTT];
    td_s32  qp[OT_VENC_ROI_FOR_BUTT];
    ot_rect rect[OT_VENC_ROI_FOR_BUTT];
} ot_venc_roi_attr_ex;

【成员】

成员名称

描述

idx

ROI区域的索引,系统支持的索引范围为[0,7],不支持超出这个范围的索引。

enable[OT_VENC_ROI_FOR_BUTT]

是否使能这个ROI区域。

其中数值下标匹配ot_venc_roi_for_frame枚举值定义。下面的参数类同。

is_abs_qp[OT_VENC_ROI_FOR_BUTT]

ROI区域QP模式。

  • TD_FALSE:相对QP
  • TD_TURE:绝对QP

qp[OT_VENC_ROI_FOR_BUTT]

QP值。

当QP模式为TD_FALSE时,qp为QP偏移,qp范围[-51,51];

当QP模式为TD_TRUE时,qp为宏块QP值,qp范围[0,51]。

rect[OT_VENC_ROI_FOR_BUTT]

ROI区域。

x、y、width、height必须是16对齐。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_roi_attr_ex

  • ss_mpi_venc_get_roi_attr_ex

ot_venc_jpeg_roi_attr

【说明】

JPEG和MJPEG定义编码感兴趣区域信息,而 H.264/H.265 的 ROI 设置需使用其他接口。

【定义】

typedef struct {
    td_u32 idx;
    td_bool enable;
    td_u32 level;
    td_rect rect;
} td_venc_jpeg_roi_attr;

【成员】

成员名称

描述

idx

ROI的索引,系统支持的索引范围为[0,15],不支持超出这个范围的索引。

enable

是否使能这个ROI。

level

ROI降码率等级,0~3依次提高,数值越大码率降低相对越多,图像质量损失也相对越多。

rect

ROI区域。x、y、width、height必须是16对齐。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_jpeg_roi_attr

  • ss_mpi_venc_get_jpeg_roi_attr

ot_venc_roi_bg_frame_rate

【说明】

定义非编码感兴趣区域帧率。

【定义】

typedef struct {
    td_s32 src_frame_rate;
    td_s32 dst_frame_rate;
} ot_venc_roi_bg_frame_rate;

【成员】

成员名称

描述

src_frame_rate

非Roi区域的源帧率,-1或[1, 65536)

dst_frame_rate

非Roi区域的目标帧率,-1或[0, src_frame_rate)。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_roi_bg_frame_rate

  • ss_mpi_venc_get_roi_bg_frame_rate

ot_venc_ref_param

【说明】

定义H.264/H.265编码的高级跳帧参考参数。

【定义】

typedef struct {
    td_u32  base;
    td_u32  enhance;
    td_bool pred_en;
} ot_venc_ref_param;

【成员】

成员名称

描述

base

base层的周期。

取值范围:(0,+∞)

enhance

enhance层的周期。

取值范围:[0, 255]

pred_en

代表base层的帧是否被base层其他帧用作参考。当pred_en 设置为TD_FALSE时,等同于base设置为无限大,base层的所有帧都参考IDR帧。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_ref_param

  • ss_mpi_venc_get_ref_param

ot_venc_rc_attr

【说明】

定义编码通道码率控制器属性。

【定义】

typedef struct {
    ot_venc_rc_mode rc_mode;
    union {
        ot_venc_h264_cbr   h264_cbr;
        ot_venc_h264_vbr   h264_vbr;
        ot_venc_h264_avbr  h264_avbr;
        ot_venc_h264_qvbr  h264_qvbr;
        ot_venc_h264_cvbr  h264_cvbr;
        ot_venc_h264_fixqp h264_fixqp;
        ot_venc_h264_qpmap h264_qpmap;
        ot_venc_mjpeg_cbr   mjpeg_cbr;
        ot_venc_mjpeg_vbr   mjpeg_vbr;
        ot_venc_mjpeg_fixqp mjpeg_fixqp;
        ot_venc_h265_cbr   h265_cbr;
        ot_venc_h265_vbr   h265_vbr;
        ot_venc_h265_avbr  h265_avbr;
        ot_venc_h265_qvbr  h265_qvbr;
        ot_venc_h265_cvbr  h265_cvbr;
        ot_venc_h265_fixqp h265_fixqp;
        ot_venc_h265_qpmap h265_qpmap;
    };
} ot_venc_rc_attr;

【成员】

成员名称

描述

rc_mode

RC模式。

h264_cbr

H.264协议编码通道Cbr模式属性。

h264_vbr

H.264协议编码通道Vbr模式属性。

h264_avbr

H.264协议编码通道AVbr模式属性。

h264_qvbr

H.264协议编码通道QVbr模式属性。

h264_cvbr

H.264协议编码通道CVbr模式属性。

h264_fixqp

H.264协议编码通道Fixqp模式属性。

h264_qpmap

H.264协议编码通道QPMAP模式属性。

mjpeg_cbr

Mjpeg协议编码通道Cbr模式属性。

mjpeg_vbr

Mjpeg协议编码通道Vbr模式属性

mjpeg_fixqp

Mjpeg协议编码通道Fixqp模式属性。

h265_cbr

H.265协议编码通道Cbr模式属性。

h265_vbr

H.265协议编码通道Vbr模式属性。

h265_avbr

H.265协议编码通道AVbr模式属性。

h265_qvbr

H.265协议编码通道QVbr模式属性。

h265_cvbr

H.265协议编码通道CVbr模式属性。

h265_fixqp

H.265协议编码通道Fixqp模式属性。

h265_qpmap

H.265协议编码通道QPMAP模式属性。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_rc_mode

【说明】

定义编码通道码率控制器模式。

【定义】

typedef enum {
    OT_VENC_RC_MODE_H264_CBR = 1,
    OT_VENC_RC_MODE_H264_VBR,
    OT_VENC_RC_MODE_H264_AVBR,
    OT_VENC_RC_MODE_H264_QVBR,
    OT_VENC_RC_MODE_H264_CVBR,
    OT_VENC_RC_MODE_H264_FIXQP,
    OT_VENC_RC_MODE_H264_QPMAP,
    OT_VENC_RC_MODE_MJPEG_CBR,
    OT_VENC_RC_MODE_MJPEG_VBR,
    OT_VENC_RC_MODE_MJPEG_FIXQP,
    OT_VENC_RC_MODE_H265_CBR,
    OT_VENC_RC_MODE_H265_VBR,
    OT_VENC_RC_MODE_H265_AVBR,
    OT_VENC_RC_MODE_H265_QVBR,
    OT_VENC_RC_MODE_H265_CVBR,
    OT_VENC_RC_MODE_H265_FIXQP,
    OT_VENC_RC_MODE_H265_QPMAP,
    OT_VENC_RC_MODE_BUTT,
} ot_venc_rc_mode;

【成员】

成员名称

描述

OT_VENC_RC_MODE_H264_CBR

H.264 CBR模式。

OT_VENC_RC_MODE_H264_VBR

H.264 VBR模式。

OT_VENC_RC_MODE_H264_AVBR

H.264 AVBR模式。

OT_VENC_RC_MODE_H264_QVBR

H.264 QVBR模式。

OT_VENC_RC_MODE_H264_CVBR

H.264 CVBR模式。

OT_VENC_RC_MODE_H264_FIXQP

H.264 Fixqp模式。

OT_VENC_RC_MODE_H264_QPMAP

H.264 QPMAP模式。

OT_VENC_RC_MODE_MJPEG_CBR

MJPEG CBR模式。

OT_VENC_RC_MODE_MJPEG_VBR

MJPEG VBR模式。

OT_VENC_RC_MODE_MJPEG_FIXQP

MJPEG Fixqp模式。

OT_VENC_RC_MODE_H265_CBR

H.265 CBR模式。

OT_VENC_RC_MODE_H265_VBR

H.265 VBR模式。

OT_VENC_RC_MODE_H265_AVBR

H.265 AVBR模式。

OT_VENC_RC_MODE_H265_QVBR

H.265 QVBR模式。

OT_VENC_RC_MODE_H265_CVBR

H.265 CVBR模式。

OT_VENC_RC_MODE_H265_FIXQP

H.265 Fixqp模式。

OT_VENC_RC_MODE_H265_QPMAP

H.265 QPMAP模式。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_rc_qpmap_mode

【说明】

定义编码通道QPMAP模式下CU32、CU64 QP值的取值方式。

【定义】

typedef enum {
    OT_VENC_RC_QPMAP_MODE_MEAN_QP = 0,
    OT_VENC_RC_QPMAP_MODE_MIN_QP,
    OT_VENC_RC_QPMAP_MODE_MAX_QP,
    OT_VENC_RC_QPMAP_MODE_BUTT,
} ot_venc_rc_qpmap_mode;

【成员】

成员名称

描述

OT_VENC_RC_QPMAP_MODE_MEAN_QP

CU32 QP值取4个16*16块Qp值的平均值;

CU64 QP值取16个16*16块Qp值的平均值。

OT_VENC_RC_QPMAP_MODE_MIN_QP

CU32 QP值取4个16*16块Qp值的最小值;

CU64 QP值取16个16*16块Qp值的最小值。

OT_VENC_RC_QPMAP_MODE_MAX_QP

CU32 QP值取4个16*16块Qp值的最大值;

CU64 QP值取16个16*16块Qp值的最大值。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_h265_qpmap

ot_venc_h264_cbr

【说明】

定义H.264编码通道CBR属性结构。

【定义】

typedef struct {
    td_u32 gop;
    td_u32 stats_time;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate ;
    td_u32 bit_rate;
} ot_venc_h264_cbr;

【成员】

成员名称

描述

gop

H.264 gop值。

取值范围:[1, 65536]

stats_time

CBR码率统计时间,以秒为单位

取值范围:[1, 60]

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

bit_rate

平均bitrate,以kbps为单位。

取值范围:[OT_VENC_MIN_BITRATE,OT_VENC_MAX_BITRATE]

【注意事项】

  • 设置源帧率src_frame_rate时:

    • VENC帧率控制为增帧模式,则src_frame_rate应设置为VENC的输入帧率。

    • VENC帧率控制为减帧模式或不进行帧率控制,src_frame_rate应该设置为产生TimeRef的实际帧率,RC需要根据src_frame_rate统计实际的帧率以及进行码率控制。

      • 如果编码图像的源是VI时,则src_frame_rate设置为VI的实际输出帧率,因为TimeRef是在VI输出的时候产生;

      • 如果VI和VPSS在线时,则src_frame_rate设置为VPSS的实际输出帧率,因为TimeRef是在VPSS输出的时候产生;

      • 如果VI和VPSS离线时,由于VPSS只有组的帧率控制,VPSS组的源帧率设置应该和编码的src_frame_rate设置相同,src_frame_rate设置为VI的实际输出帧率,因为TimeRef是在VI输出的时候产生。

    假设VI的输出帧率是30:

    • 如果VENC不进行帧率控制,src_frame_rate应该设置为30。

    • 如果VENC进行帧率控制,VENC帧率控制如果为增帧模式,dst_frame_rate应该设置大于30,VENC帧率控制如果为减帧模式,dst_frame_rate应该设置小于30。

    • 如果VENC帧率控制为减帧模式,同时RC进行了帧率控制,那么最终的帧率将以两者的较小值为准。比如VENC设置为源帧率30帧,目标帧率6帧,而RC设置为源帧率30,目标帧率为10帧,那么最终的目标帧率为6帧。

  • 设置目标帧率dst_frame_rate时,高16位用于表示分母,低16位表示分子。

    • 如果用户设置目标帧率为整数,设置分母高16位为0即可表示整数。例如设置src_frame_rate等于25,dst_frame_rate等于12,则表示将从25帧输入图像中取出12帧进行编码,其余13帧将丢掉。

    • 如果设置ViFrmRate等于25,dst_frame_rate等于15/2,则表示要求编码器2秒钟编码15帧。

  • dst_frame_rate的设置方式如下:如果要设置为整数帧率25,则可采用以下方式dst_frame_rate= 25;如果要设置为分数帧率15/2,则采用以下方式:dst_frame_rate= 15+(2<<16)。

  • 当使用VENC和RC两级帧率控制时,VENC的目标帧率小于RC的目标帧率,比如VENC设置为源帧率30帧,目标帧率6帧,而RC设置为源帧率30,目标帧率为10帧,这种情况可能会引起码率控制不准确;建议用户设置VENC的目标帧率大于等于RC的目标帧率,以此来达到用户的目标帧率。

  • 当VPSS只绑定编码且使用AUTO模式时,使用VENC的帧率控制可以节省VPSS的性能。

  • 如果设置的码率超过芯片手册中规定的最大实时码率,则不能保证实时编码。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_h264_vbr

【说明】

定义H.264编码通道VBR属性结构。

【定义】

typedef struct {
    td_u32 gop;
    td_u32 stats_time;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate ;
    td_u32 max_bit_rate;
} ot_venc_h264_vbr;

【成员】

成员名称

描述

gop

H.264 gop值。

取值范围:[1, 65536]

stats_time

VBR码率统计时间,以秒为单位。

取值范围:[1, 60]

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

max_bit_rate

编码器输出最大码率,以kbps为单位。

取值范围:[OT_VENC_MIN_BITRATE,OT_VENC_MAX_BITRATE]

【注意事项】

请参见ot_venc_h264_cbr关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_h264_avbr

【说明】

定义H.264编码通道AVBR属性结构。

【定义】

typedef struct {
    td_u32 gop;
    td_u32 stats_time;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate;
    td_u32 max_bit_rate;
} ot_venc_h264_avbr;

【成员】

成员名称

描述

gop

H.264 gop值。

取值范围:[1, 65536]

stats_time

AVBR码率统计时间,以秒为单位。

取值范围:[1, 60]

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

max_bit_rate

编码器输出最大码率,以kbps为单位。

取值范围:[OT_VENC_MIN_BITRATE,OT_VENC_MAX_BITRATE]

【注意事项】

请参见ot_venc_h264_cbr关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_h264_qvbr

【说明】

定义H.264编码通道QVBR属性结构。

【定义】

typedef struct {
    td_u32 gop;
    td_u32 stats_time;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate;
    td_u32 target_bit_rate;
} ot_venc_h264_qvbr;

【成员】

成员名称

描述

gop

H.264 gop值。

取值范围:[1, 65536]

stats_time

AVBR码率统计时间,以秒为单位。

取值范围:[1, 60]

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

target_bit_rate

编码器输出最大码率,以kbps为单位。

取值范围:[OT_VENC_MIN_BITRATE,OT_VENC_MAX_BITRATE]

【注意事项】

请参见ot_venc_h264_cbr关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_h264_cvbr

【说明】

定义H.264编码通道CVBR属性结构。

【定义】

typedef struct {
    td_u32 gop;
    td_u32 stats_time;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate;
    td_u32 max_bit_rate;
    td_u32 short_term_stats_time;
    td_u32 long_term_stats_time;
    td_u32 long_term_max_bit_rate;
    td_u32 long_term_min_bit_rate;
} ot_venc_h264_cvbr;

【成员】

成员名称

描述

gop

H.264 gop值。

取值范围:[1, 65536]

stats_time

CVBR码率统计时间,以秒为单位。

取值范围:[1, 60]

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

max_bit_rate

编码器输出短期最大码率,以kbps为单位。

取值范围:[OT_VENC_MIN_BITRATE,OT_VENC_MAX_BITRATE]

short_term_stats_time

码率短期统计时间,以秒为单位。

取值范围:[1, 120]

long_term_stats_time

码率长期统计时间单位由高级参数long_term_stats_time_unit决定默认为分钟。

取值范围:[1, 1440]

long_term_max_bit_rate

编码器输出长期最大码率,以kbps为单位。

取值范围:[OT_VENC_MIN_BITRATE, max_bit_rate]

long_term_min_bit_rate

编码器输出长期最小码率,以kbps为单位。

取值范围:[0, long_term_max_bit_rate]

【注意事项】

请参见ot_venc_h264_cbr 关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_h264_fixqp

【说明】

定义H.264编码通道Fixqp属性结构。

【定义】

typedef struct {
    td_u32 gop;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate;
    td_u32 i_qp;
    td_u32 p_qp;
    td_u32 b_qp;
} ot_venc_h264_fixqp;

【成员】

成员名称

描述

gop

H.264 gop值。

取值范围:[1, 65536]

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

i_qp

I帧所有宏块Qp值。

取值范围:[0, 51]

p_qp

P帧所有宏块Qp值。

取值范围:[0, 51]

b_qp

B帧所有宏块Qp值。

取值范围:[0, 51]

【注意事项】

请参见ot_venc_h264_cbr 关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_h264_qpmap

【说明】

定义H.264编码通道QPMAP属性结构。

【定义】

typedef struct {
    td_u32 gop;
    td_u32 stats_time;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate;
} ot_venc_h264_qpmap;

【成员】

成员名称

描述

gop

H.264 gop值。

取值范围:[1, 65536]

stats_time

QPMAP码率统计时间,以秒为单位。

取值范围:[1, 60]

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

【注意事项】

请参见ot_venc_h264_cbr 关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_mjpeg_fixqp

【说明】

定义MJPEG编码通道Fixqp属性结构。

【定义】

typedef struct {
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate;
    td_u32 qfactor;
} ot_venc_mjpeg_fixqp;

【成员】

成员名称

描述

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

qfactor

MJPEG编码的Qfactor。

取值范围:[1, 99]

【注意事项】

请参见ot_venc_h264_cbr 关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_mjpeg_cbr

【说明】

定义MJPEG编码通道CBR属性结构。

【定义】

typedef struct {
    td_u32 stats_time;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate;
    td_u32 bit_rate;
} ot_venc_mjpeg_cbr;

【成员】

成员名称

描述

stats_time

CBR码率统计时间,以秒为单位

取值范围:[1, 60]

src_frame_rate

编码器输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

bit_rate

平均bitrate,kbps为单位。

取值范围[OT_VENC_MIN_BITRATE,OT_VENC_MAX_BITRATE]

【注意事项】

请参见ot_venc_h264_cbr 关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_mjpeg_vbr

【说明】

定义MJPEG编码通道VBR属性结构。

【定义】

typedef struct {
    td_u32 stats_time;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate;
    td_u32 max_bit_rate;
} ot_venc_mjpeg_vbr;

【成员】

成员名称

描述

stats_time

VBR码率统计时间,以秒为单位

取值范围:[1, 60]

src_frame_rate

编码器输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

max_bit_rate

最大bitrate,kbps为单位。

取值范围[OT_VENC_MIN_BITRATE,OT_VENC_MAX_BITRATE]

【注意事项】

请参见ot_venc_h264_cbr 关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_h265_cbr

【说明】

定义H.265编码通道CBR属性结构。

【定义】

typedef struct {
    td_u32 gop;
    td_u32 stats_time;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate ;
    td_u32 bit_rate;
} ot_venc_h265_cbr;

【成员】

成员名称

描述

gop

H.265 gop值。

取值范围:[1, 65536]

stats_time

CBR码率统计时间,以秒为单位

取值范围:[1, 60]

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

bit_rate

最大bitrate,以kbps为单位。

取值范围:[OT_VENC_MIN_BITRATE,OT_VENC_MAX_BITRATE]

【注意事项】

请参见ot_venc_h264_cbr 关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_h265_vbr

【说明】

定义 H.265编码通道VBR属性结构。

【定义】

typedef struct {
    td_u32 gop;
    td_u32 stats_time;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate ;
    td_u32 max_bit_rate;
} ot_venc_h265_vbr;

【成员】

成员名称

描述

gop

H.265 gop值。

取值范围:[1, 65536]

stats_time

VBR码率统计时间,以秒为单位。

取值范围:[1, 60]

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

max_bit_rate

编码器输出最大码率,以kbps为单位。

取值范围:[OT_VENC_MIN_BITRATE,OT_VENC_MAX_BITRATE]

【注意事项】

请参见ot_venc_h264_cbr 关于src_frame_rate和dst_frame_rate的说明

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_h265_avbr

【说明】

定义 H.265编码通道AVBR属性结构。

【定义】

typedef struct {
    td_u32 gop;
    td_u32 stats_time;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate;
    td_u32 max_bit_rate;
} ot_venc_h265_avbr;

【成员】

成员名称

描述

gop

H.265 gop值。

取值范围:[1, 65536]

stats_time

AVBR码率统计时间,以秒为单位。

取值范围:[1, 60]

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

max_bit_rate

编码器输出最大码率,以kbps为单位。

取值范围:[OT_VENC_MIN_BITRATE,OT_VENC_MAX_BITRATE]

【注意事项】

请参见ot_venc_h264_cbr关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_h265_qvbr

【说明】

定义H.265编码通道QVBR属性结构。

【定义】

typedef struct {
    td_u32 gop;
    td_u32 stats_time;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate;
    td_u32 target_bit_rate;
} ot_venc_h265_qvbr;

【成员】

成员名称

描述

gop

H.265 gop值。

取值范围:[1, 65536]

stats_time

AVBR码率统计时间,以秒为单位。

取值范围:[1, 60]

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

target_bit_rate

编码器输出最大码率,以kbps为单位。

取值范围:[OT_VENC_MIN_BITRATE,OT_VENC_MAX_BITRATE]

【注意事项】

请参见ot_venc_h264_cbr 关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_h265_cvbr

【说明】

定义H.265编码通道CVBR属性结构。

【定义】

typedef struct {
    td_u32 gop;
    td_u32 stats_time;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate;
    td_u32 max_bit_rate;
    td_u32 short_term_stats_time;
    td_u32 long_term_stats_time;
    td_u32 long_term_max_bit_rate;
    td_u32 long_term_min_bit_rate;
} ot_venc_h265_cvbr;

【成员】

成员名称

描述

gop

gop值。

取值范围:[1, 65536]

stats_time

AVBR码率统计时间,以秒为单位。

取值范围:[1, 60]

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

max_bit_rate

编码器输出短期最大码率,以kbps为单位。

取值范围:[OT_VENC_MIN_BITRATE,OT_VENC_MAX_BITRATE]

short_term_stats_time

码率短期统计时间,以秒为单位。

取值范围:[1, 120]

long_term_stats_time

码率长期统计时间单位由高级参数long_term_stats_time_unit决定默认为分钟。

取值范围:[1, 1440]

long_term_max_bit_rate

编码器输出长期最大码率,以kbps为单位。

取值范围:[2, max_bit_rate]

long_term_min_bit_rate

编码器输出长期最小码率,以kbps为单位。

取值范围:

[0, long_term_max_bit_rate]

【注意事项】

请参见ot_venc_h264_cbr 关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_h265_fixqp

【说明】

定义H.265编码通道Fixqp属性结构。

【定义】

typedef struct {
    td_u32 gop;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate;
    td_u32 i_qp;
    td_u32 p_qp;
    td_u32 b_qp;
} ot_venc_h265_fixqp;

【成员】

成员名称

描述

gop

H.265 gop值。

取值范围:[1, 65536]

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

i_qp

I帧所有宏块Qp值。

取值范围:[0, 51]

p_qp

P帧所有宏块Qp值。

取值范围:[0, 51]

b_qp

B帧所有宏块Qp值。

取值范围:[0, 51]

【注意事项】

请参见ot_venc_h264_cbr 关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_h265_qpmap

【说明】

定义H.265编码通道QPMAP属性结构。

【定义】

typedef struct {
    td_u32 gop;
    td_u32 stats_time;
    td_u32 src_frame_rate;
    td_u32 dst_frame_rate;
    ot_venc_rc_qpmap_mode qpmap_mode;
} ot_venc_h265_qpmap;

【成员】

成员名称

描述

gop

H.265 gop值。

取值范围:[1, 65536]

stats_time

QPMAP码率统计时间,以秒为单位。

取值范围:[1, 60]

src_frame_rate

输入帧率,以fps为单位。

取值范围:[1, 240]

dst_frame_rate

编码器输出帧率,以fps为单位。

取值范围:[1/64, src_frame_rate]

分数帧率时分母不大于64。

qpmap_mode

CU32或CU64的QP值的取值方式。

【注意事项】

请参见ot_venc_h264_cbr 关于src_frame_rate和dst_frame_rate的说明。

【相关数据类型及接口】

ss_mpi_venc_create_chn

ot_venc_super_frame_mode

【说明】

定义码率控制中超大帧处理模式。

【定义】

typedef enum {
    OT_VENC_SUPER_FRAME_NONE = 0,
    OT_VENC_SUPER_FRAME_DISCARD,                  
    OT_VENC_SUPER_FRAME_REENCODE,                    
    OT_VENC_SUPER_FRAME_BUTT
} ot_venc_super_frame_mode;

【成员】

成员名称

描述

OT_VENC_SUPER_FRAME_NONE

无特殊策略。

OT_VENC_SUPER_FRAME_DISCARD

丢弃超大帧。

OT_VENC_SUPER_FRAME_REENCODE

重编超大帧。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_get_super_frame_strategy

ot_venc_h264_vbr_param

【说明】

定义H.264协议编码通道VBR码率控制模式高级参数配置。

【定义】

typedef struct {
    td_s32  chg_pos;
    td_u32  max_i_proportion;
    td_u32  min_i_proportion;
    td_s32  max_reencode_times;
    td_bool qpmap_en;
    td_u32  max_qp;
    td_u32  min_qp;
    td_u32  max_i_qp;
    td_u32  min_i_qp;
} ot_venc_h264_vbr_param;

【成员】

成员名称

描述

chg_pos

VBR开始调整Qp时的码率相对于最大码率的比例。

取值范围:[50, 100]

默认值:90。

max_i_proportion

最大IP帧码率的比值。

取值范围:[min_i_proportion,100]

默认值:20。

min_i_proportion

最小IP帧码率的比值。

取值范围:[1,100]

默认值:1。

max_reencode_times

每帧重编码次数。0表示不进行重编码。

取值范围:[0, 3]

默认值:2。

qpmap_en

VBR模式下是否使能QpMap功能。

取值范围:TD_TRUE或TD_FALSE。

默认值:TD_FALSE。

max_qp

P、B帧的最大QP

取值范围:[0, 51]

默认值:51。

min_qp

P、B帧的最小QP

取值范围:[0, max_qp]

默认值:24。

max_i_qp

I帧的最大QP

取值范围:[0, 51]

默认值:51。

min_i_qp

I帧的最小QP

取值范围:[0, max_i_qp]

默认值:24。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_param

  • ss_mpi_venc_get_rc_param

ot_venc_h264_avbr_param

【说明】

定义H.264协议编码通道AVBR码率控制模式高级参数配置。

【定义】

typedef struct {
    td_s32  chg_pos;
    td_u32  max_i_proportion;
    td_u32  min_i_proportion;
    td_s32  max_reencode_times;
    td_bool qpmap_en;
    td_s32  min_still_percent;
    td_u32  max_still_qp;
    td_u32  min_still_psnr;
    td_u32  max_qp;
    td_u32  min_qp;
    td_u32  max_i_qp;
    td_u32  min_i_qp;
    td_u32  min_qp_delta;
    td_u32  motion_sensitivity;
    td_bool save_bitrate_en;
} ot_venc_h264_avbr_param;

【成员】

成员名称

描述

chg_pos

AVBR开始调整Qp时的码率相对于最大码率的比例。

取值范围:[50, 100]

默认值:90。

max_i_proportion

最大IP帧码率的比值。

取值范围:[min_i_proportion,100]

默认值:100。

min_i_proportion

最小IP帧码率的比值。

取值范围:[1,100]

默认值:1。

max_reencode_times

每帧重编码次数。0表示不进行重编码。

取值范围:[0, 3]

默认值:2。

qpmap_en

AVBR模式下是否使能QpMap功能。

取值范围:TD_TRUE或TD_FALSE。

默认值:TD_FALSE。

min_still_percent

静止状态下目标码率的最小百分比。此变量设置为100,AVBR将不会在判别为静止时主动调低目标码率。

取值范围:[5, 100]

默认值:25。

max_still_qp

静止状态最大QP。

取值范围:[min_i_qp, max_i_qp]

默认值:35。

min_still_psnr

暂时无效,只能设置为0.

max_qp

P、B帧的最大QP

取值范围:[0, 51]

默认值:51。

min_qp

P、B帧的最小QP

取值范围:[0, max_qp]

默认值:24。

max_i_qp

I帧的最大QP

取值范围:[0, 51]

默认值:51。

min_i_qp

I帧的最小QP

取值范围:[0, max_i_qp]

默认值:24。

min_qp_delta

帧级QP最小值和CU级QP最小值的差值。

I帧:FrameLevelMinQp = min_qp_delta +min_i_qp

P、B帧:FrameLevelMinQp= min_qp_delta+min_qp

取值范围:[0, 4];

默认值:0。

motion_sensitivity

运动敏感度。

取值范围:[0, 100]

默认值:100。

save_bitrate_en

节省码率控制开关,使能后自适应节省背景区域的码率。

取值范围:TD_TRUE或TD_FALSE。

默认值:TD_FALSE。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_param

  • ss_mpi_venc_get_rc_param

ot_venc_h264_qvbr_param

【说明】

定义H.264协议编码通道QVBR码率控制模式高级参数配置。

【定义】

typedef struct {
    td_u32  max_i_proportion;
    td_u32  min_i_proportion;
    td_s32  max_reencode_times;
    td_bool qpmap_en;
    td_u32  max_qp;
    td_u32  min_qp;
    td_u32  max_i_qp;
    td_u32  min_i_qp;
    td_s32  max_bit_percent;
    td_s32  min_bit_percent;
    td_s32  max_psnr_fluctuate;
    td_s32  min_psnr_fluctuate;
} ot_venc_h264_qvbr_param;

【成员】

成员名称

描述

max_i_proportion

最大IP帧码率的比值。

取值范围:[min_i_proportion,100]

默认值:100。

min_i_proportion

最小IP帧码率的比值。

取值范围:[1,100]

默认值:1。

max_reencode_times

每帧重编码次数。0表示不进行重编码。

取值范围:[0, 3]

默认值:2。

qpmap_en

QVBR模式下是否使能QpMap功能。

取值范围:TD_TRUE或TD_FALSE。

默认值:TD_FALSE。

max_qp

P、B帧的最大QP

取值范围:[min_qp, 51]

默认值:51。

min_qp

P、B帧的最小QP

取值范围:[0, 51]

默认值:16。

max_i_qp

I帧的最大QP

取值范围:[min_i_qp, 51]

默认值:51。

min_i_qp

I帧的最小QP

取值范围:[0, 51]

默认值:16。

max_bit_percent

码率百分比上限。

取值范围:[min_bit_percent, 180]

默认值:125。

min_bit_percent

码率百分比下限。

取值范围:[30, 180]

默认值:45。

max_psnr_fluctuate

Psnr上限。

取值范围:[min_psnr_fluctuate, 40]

默认值:30。

min_psnr_fluctuate

Psnr下限。

取值范围:[18, 40]

默认值:23。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_param

  • ss_mpi_venc_get_rc_param

ot_venc_h264_cvbr_param

【说明】

定义H.264协议编码通道CVBR码率控制模式高级参数配置。

【定义】

typedef struct {
    td_u32  max_i_proportion;
    td_u32  min_i_proportion;
    td_s32  max_reencode_times;
    td_bool qpmap_en;
    td_u32  max_qp;
    td_u32  min_qp;
    td_u32  max_i_qp;
    td_u32  min_i_qp;
    td_u32  min_qp_delta;
    td_u32  max_qp_delta;
    td_u32  extra_bit_percent;
    td_u32  long_term_stats_time_unit;
    td_bool save_bitrate_en;
} ot_venc_h264_cvbr_param;

【成员】

成员名称

描述

max_i_proportion

最大IP帧码率的比值。

取值范围:[min_i_proportion,100]

默认值:100。

min_i_proportion

最小IP帧码率的比值。

取值范围:[1,100]

默认值:1。

max_reencode_times

每帧重编码次数。0表示不进行重编码。

取值范围:[0, 3]

默认值:2。

qpmap_en

CVBR模式下是否使能QpMap功能。

取值范围:TD_TRUE或TD_FALSE。

默认值:TD_FALSE。

max_qp

P、B帧的最大QP

取值范围:[min_qp, 51]

默认值:47。

min_qp

P、B帧的最小QP

取值范围:[0, 51]

默认值:22。

max_i_qp

I帧的最大QP

取值范围:[min_i_qp, 51]

默认值:47。

min_i_qp

I帧的最小QP

取值范围:[0, 51]

默认值:20。

min_qp_delta

帧级QP最小值和CU级QP最小值的差值。

I帧:FrameLevelMinQp = min_qp_delta+ min_i_qp

P、B帧:FrameLevelMinQp= min_qp_delta+min_qp

取值范围:[0, 4];

默认值:0。

max_qp_delta

帧级QP最大值和CU级QP最大值的差值。

I帧:FrameLevelMaxQp = max_i_qp- max_qp_delta

P、B帧:FrameLevelMaxQp= max_qp-max_qp_delta

取值范围:[0, 4];

默认值:0。

extra_bit_percent

编码器输出码流最大透支bit数百分比。

在码率不足时,为保证图像质量,编码器会通过透支一定的bit数以提升图像质量,这部分透支的码率会在编码压力较小时进行偿还。

取值范围:[0, 1000]

默认值:5

long_term_stats_time_unit

码率长期统计时间参数(long_term_stats_time)的单位,本变量单位是秒(s),如配置long_term_stats_time_unit= 60,long_term_stats_time=3,代表长期统计时间为3分钟。

取值范围:[1, 1800];

默认值:60。

save_bitrate_en

节省码率控制开关,使能后自适应节省背景区域的码率。

取值范围:TD_TRUE或TD_FALSE。

默认值:TD_FALSE。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_param

  • ss_mpi_venc_get_rc_param

ot_venc_h264_cbr_param

【说明】

定义H.264协议编码通道CBR新版码率控制模式高级参数配置。

【定义】

typedef struct {
    td_u32  max_i_proportion;
    td_u32  min_i_proportion;
    td_u32  max_qp;
    td_u32  min_qp;
    td_u32  max_i_qp;
    td_u32  min_i_qp;
    td_s32  max_reencode_times;
    td_bool qpmap_en;
} ot_venc_h264_cbr_param;

【成员】

成员名称

描述

max_i_proportion

最大IP帧比例。

取值范围:[min_i_proportion, 100]

默认值:20。

min_i_proportion

最小IP帧比例。

取值范围:[1, 100]

默认值:1。

max_qp

帧最大QP,用于钳位质量。

取值范围:[0, 51]

默认值:51。

min_qp

帧最小QP,用于钳位码率波动。

取值范围:[0, max_qp]

默认值:10。

max_reencode_times

每帧重编码次数。0表示不进行重编码。

取值范围:[0, 3]

默认值:2。

min_i_qp

I帧的最小QP用于控制I帧的最大bits数。

取值范围:[0, max_i_qp]

默认值:10。

max_i_qp

I帧的最大QP用于控制I帧的最小bits数。

取值范围:[0, 51]

默认值:51。

qpmap_en

CBR码控模式下,使能QpMap功能。

取值范围:TD_TRUE或TD_FALSE。

默认值:TD_FALSE。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_param

  • ss_mpi_venc_get_rc_param

ot_venc_mjpeg_cbr_param

【说明】

定义MJPEG协议编码通道CBR码率控制模式高级参数配置。

【定义】

typedef struct {
    td_u32 max_qfactor;
    td_u32 min_qfactor;
} ot_venc_mjpeg_cbr_param;

【成员】

成员名称

描述

max_qfactor

帧最大Qfactor,用于钳位质量。

取值范围:[1, 99]

默认值:99。

min_qfactor

帧最小Qfactor,用于钳位质量

取值范围:[1, max_qfactor]

默认值:20。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_param

  • ss_mpi_venc_get_rc_param

ot_venc_mjpeg_vbr_param

【说明】

定义MJPEG协议编码通道VBR码率控制模式高级参数配置。

【定义】

typedef struct {
    td_s32 chg_pos;
    td_u32 max_qfactor;
    td_u32 min_qfactor;
} ot_venc_mjpeg_vbr_param;

【成员】

成员名称

描述

chg_pos

VBR开始调整Qfactor时的码率相对于最大码率的比例。

取值范围:[50, 100]

默认值:90。

max_qfactor

最大量化因子,取值范围:[1, 99]

默认值:99。

min_qfactor

最小量化因子,取值范围:[1, max_qfactor]

默认值:20。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_param

  • ss_mpi_venc_get_rc_param

ot_venc_h265_vbr_param

【说明】

定义H.265协议编码通道VBR码率控制模式高级参数配置。

【定义】

typedef struct {
    td_s32  chg_pos;
    td_u32  max_i_proportion;
    td_u32  min_i_proportion;
    td_s32  max_reencode_times;
    td_u32  max_qp;
    td_u32  min_qp;
    td_u32  max_i_qp;
    td_u32  min_i_qp;
    td_bool qpmap_en;
    ot_venc_rc_qpmap_mode qpmap_mode;
} ot_venc_h265_vbr_param;

【成员】

成员名称

描述

chg_pos

开始调整Qp时的码率相对于最大码率的比例。

取值范围:[50, 100]

默认值:90。

max_i_proportion

最大IP帧码率的比值。

取值范围:[min_i_proportion,100]

默认值:20。

min_i_proportion

最小IP帧码率的比值。

取值范围:[1,100]

默认值:1。

max_reencode_times

每帧重编码次数。0表示不进行重编码。

取值范围:[0, 3]

默认值:2。

max_qp

P帧的最大QP

取值范围:[0, 51]

默认值:51。

min_qp

P帧的最小QP

取值范围:[0, max_qp]

默认值:24。

max_i_qp

I帧的最大QP

取值范围:[0, 51]

默认值:51。

min_i_qp

I帧的最小QP

取值范围:[0, max_i_qp]

默认值:24。

qpmap_en

VBR模式下是否使能QpMap功能。

取值范围:TD_TRUE或TD_FALSE。

默认值:TD_FALSE。

qpmap_mode

QPMAP模式下CU32CU64 QP值的取值方式。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_param

  • ss_mpi_venc_get_rc_param

ot_venc_h265_avbr_param

【说明】

定义H.265协议编码通道AVBR码率控制模式高级参数配置。

【定义】

typedef struct {
    td_s32  chg_pos;
    td_u32  max_i_proportion;
    td_u32  min_i_proportion;
    td_s32  max_reencode_times;
    td_s32  min_still_percent;
    td_u32  max_still_qp;
    td_u32  min_still_psnr;
    td_u32  max_qp;
    td_u32  min_qp;
    td_u32  max_i_qp;
    td_u32  min_i_qp;
    td_u32  min_qp_delta;
    td_u32  motion_sensitivity;
    td_bool qpmap_en;
    ot_venc_rc_qpmap_mode qpmap_mode;
} ot_venc_h265_avbr_param;

【成员】

成员名称

描述

chg_pos

开始调整Qp时的码率相对于最大码率的比例。

取值范围:[50, 100]

默认值:90。

max_i_proportion

最大IP帧码率的比值。

取值范围:[min_i_proportion,100]

默认值:100。

min_i_proportion

最小IP帧码率的比值。

取值范围:[1,100]

默认值:1。

max_reencode_times

每帧重编码次数。0表示不进行重编码。

取值范围:[0, 3]

默认值:2。

min_still_percent

静止状态下目标码率的最小百分比。此变量设置为100,AVBR将不会在判别为静止时主动调低目标码率。

取值范围:[5, 100]

默认值:25。

max_still_qp

静止状态最大QP。

取值范围:[min_i_qp, max_i_qp]

默认值:35。

min_still_psnr

暂时无效,只能设置为0.

max_qp

P帧的最大QP

取值范围:[0, 51]

默认值:51。

min_qp

P帧的最小QP

取值范围:[0, max_qp]

默认值:24。

max_i_qp

I帧的最大QP

取值范围:[0, 51]

默认值:51。

min_i_qp

I帧的最小QP

取值范围:[0, max_i_qp]

默认值:24。

min_qp_delta

帧级QP最小值和CU级QP最小值的差值。

I帧:FrameLevelMinQp = min_qp_delta+ min_i_qp

P、B帧:FrameLevelMinQp= min_qp_delta+min_qp

取值范围:[0, 4];

默认值:0。

motion_sensitivity

运动敏感度。

取值范围:[0, 100]

默认值:100。

qpmap_en

AVBR模式下是否使能QpMap功能。

取值范围:TD_TRUE或TD_FALSE。

默认值:TD_FALSE。

qpmap_mode

QPMAP模式下CU32CU64 QP值的取值方式。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_param

  • ss_mpi_venc_get_rc_param

ot_venc_h265_qvbr_param

【说明】

定义H.265协议编码通道QVBR码率控制模式高级参数配置。

【定义】

typedef struct {
    td_u32  max_i_proportion;
    td_u32  min_i_proportion;
    td_s32  max_reencode_times;
    td_bool qpmap_en;
    ot_venc_rc_qpmap_mode qpmap_mode;
    td_u32  max_qp;
    td_u32  min_qp;
    td_u32  max_i_qp;
    td_u32  min_i_qp;
    td_s32  max_bit_percent;
    td_s32  min_bit_percent;
    td_s32  max_psnr_fluctuate;
    td_s32  min_psnr_fluctuate;
} ot_venc_h265_qvbr_param;

【成员】

成员名称

描述

max_i_proportion

最大IP帧码率的比值。

取值范围:[min_i_proportion,100]

默认值:100。

min_i_proportion

最小IP帧码率的比值。

取值范围:[1,100]

默认值:1。

max_reencode_times

每帧重编码次数。0表示不进行重编码。

取值范围:[0, 3]

默认值:2。

qpmap_en

QVBR模式下是否使能QpMap功能。

取值范围:TD_TRUE或TD_FALSE。

默认值:TD_FALSE。

qpmap_mode

QpMap模式。

取值范围:[0, 2]

默认值:0。

max_qp

P、B帧的最大QP

取值范围:[min_qp, 51]

默认值:51。

min_qp

P、B帧的最小QP

取值范围:[0, 51]

默认值:16。

max_i_qp

I帧的最大QP

取值范围:[min_i_qp, 51]

默认值:51。

min_i_qp

I帧的最小QP

取值范围:[0, 51]

默认值:16。

max_bit_percent

码率百分比上限。

取值范围:[min_bit_percent, 180]

默认值:125。

min_bit_percent

码率百分比下限。

取值范围:[30, 180]

默认值:45。

max_psnr_fluctuate

Psnr上限。

取值范围:[min_psnr_fluctuate, 40]

默认值:30。

min_psnr_fluctuate

Psnr下限。

取值范围:[18, 40]

默认值:23。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_param

  • ss_mpi_venc_get_rc_param

ot_venc_h265_cvbr_param

【说明】

定义H.265协议编码通道CVBR码率控制模式高级参数配置。

【定义】

typedef struct {
    td_u32  max_i_proportion;
    td_u32  min_i_proportion;
    td_s32  max_reencode_times;
    td_bool qpmap_en;
    ot_venc_rc_qpmap_mode qpmap_mode;
    td_u32  max_qp;
    td_u32  min_qp;
    td_u32  max_i_qp;
    td_u32  min_i_qp;
    td_u32  min_qp_delta;
    td_u32  max_qp_delta;
    td_u32  extra_bit_percent;
    td_u32  long_term_stats_time_unit;
} ot_venc_h265_cvbr_param;

【成员】

成员名称

描述

max_i_proportion

最大IP帧码率的比值。

取值范围:[min_i_proportion,100]

默认值:100。

min_i_proportion

最小IP帧码率的比值。

取值范围:[1,100]

默认值:1。

max_reencode_times

每帧重编码次数。0表示不进行重编码。

取值范围:[0, 3]

默认值:2。

qpmap_en

CVBR模式下是否使能QpMap功能。

取值范围:TD_TRUE或TD_FALSE。

默认值:TD_FALSE。

qpmap_mode

QpMap模式。

取值范围:[0, 2]

默认值:0。

max_qp

P、B帧的最大QP

取值范围:[min_qp, 51]

默认值:47。

min_qp

P、B帧的最小QP

取值范围:[0, 51]

默认值:22。

max_i_qp

I帧的最大QP

取值范围:[min_i_qp, 51]

默认值:47。

min_i_qp

I帧的最小QP

取值范围:[0, 51]

默认值:20。

min_qp_delta

帧级QP最小值和CU级QP最小值的差值。

I帧:FrameLevelMinQp = min_qp_delta+ min_i_qp

P、B帧:FrameLevelMinQp= min_qp_delta+min_qp

取值范围:[0, 4];

默认值:0。

max_qp_delta

帧级QP最大值和CU级QP最大值的差值。

I帧:FrameLevelMaxQp = max_i_qp- max_qp_delta

P、B帧:FrameLevelMaxQp= max_qp-max_qp_delta

取值范围:[0, 4];

默认值:0。

extra_bit_percent

编码器输出码流最大透支bit数百分比。

在码率不足时,为保证图像质量,编码器会通过透支一定的bit数以提升图像质量,这部分透支的码率会在编码压力较小时进行偿还。

取值范围[0, 1000]

默认值:5。

long_term_stats_time_unit

码率长期统计时间参数(long_term_stats_time)的单位,本变量单位是秒(s),如配置long_term_stats_time_unit = 60,long_term_stats_time=3,代表长期统计时间为3分钟。

取值范围:[1, 1800];

默认值:60。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_param

  • ss_mpi_venc_get_rc_param

ot_venc_h265_cbr_param

【说明】

定义H.265协议编码通道CBR新版码率控制模式高级参数配置。

【定义】

typedef struct {
    td_u32  max_i_proportion;
    td_u32  min_i_proportion;
    td_u32  max_qp;
    td_u32  min_qp;
    td_u32  max_i_qp;
    td_u32  min_i_qp;
    td_s32  max_reencode_times;
    td_bool qpmap_en;
    ot_venc_rc_qpmap_mode qpmap_mode;
} ot_venc_h265_cbr_param;

【成员】

成员名称

描述

max_i_proportion

最大IP帧比例。

取值范围:[min_i_proportion, 100]

默认值:20。

min_i_proportion

最小IP帧比例。

取值范围:[1, 100]

默认值:1。

max_qp

帧最大QP,用于钳位质量。

取值范围:[0, 51]

默认值:51。

min_qp

帧最小QP,用于钳位码率波动。

取值范围:[0, max_qp]

默认值:10。

max_i_qp

I帧的最大QP用于控制I帧的最小bits数。

取值范围:[0, 51]

默认值:51。

min_i_qp

I帧的最小QP用于控制I帧的最大bits数。

取值范围:[0, max_i_qp]

默认值:10。

max_reencode_times

每帧重编码次数。0表示不进行重编码。

取值范围:[0, 3]

默认值:2。

qpmap_en

CBR码控模式下,使能/关闭QpMap功能。

取值范围:TD_TRUE或TD_FALSE。

默认值:TD_FALSE。

qpmap_mode

使能QpMap表的情况,CU32和CU64的Qp值的取值方式。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_param

  • ss_mpi_venc_get_rc_param

ot_venc_rc_param

【说明】

定义编码通道的码率控制高级参数。

【定义】

typedef struct {
    td_u32 threshold_i[OT_VENC_TEXTURE_THRESHOLD_SIZE];
    td_u32 threshold_p[OT_VENC_TEXTURE_THRESHOLD_SIZE];
    td_u32 threshold_b[OT_VENC_TEXTURE_THRESHOLD_SIZE];
    td_u32 direction;
    td_u32 row_qp_delta;
    td_s32 first_frame_start_qp;
    ot_venc_scene_chg_detect scene_chg_detect;
    union {
        ot_venc_h264_cbr_param  h264_cbr_param;
        ot_venc_h264_vbr_param  h264_vbr_param;
        ot_venc_h264_avbr_param h264_avbr_param;
        ot_venc_h264_qvbr_param h264_qvbr_param;
        ot_venc_h264_cvbr_param h264_cvbr_param;
        ot_venc_h265_cbr_param  h265_cbr_param;
        ot_venc_h265_vbr_param  h265_vbr_param;
        ot_venc_h265_avbr_param h265_avbr_param;
        ot_venc_h265_qvbr_param h265_qvbr_param;
        ot_venc_h265_cvbr_param h265_cvbr_param;
        ot_venc_mjpeg_cbr_param mjpeg_cbr_param;
        ot_venc_mjpeg_vbr_param mjpeg_vbr_param;
    };
}  ot_venc_rc_param;

【成员】

成员名称

描述

threshold_i

I帧宏块级码率控制的mad门限。

取值范围:[0, 255]

threshold_p

P帧宏块级码率控制的mad门限。

取值范围:[0, 255]

threshold_b

B帧宏块级码率控制的mad门限。

取值范围:[0, 255]

direction

在宏块级码率控制时,用于控制减方向Thr的下标。

取值范围:[0, 16]

row_qp_delta

在宏块级码率控制时,每一行宏块的起始Qp相对于帧起始Qp的波动幅度值。

取值范围:[0, 10]

first_frame_start_qp

设置第一帧的起始Qp值,CBR/VBR/AVBR/QVBR/CVBR有效。

取值范围:[min_i_qp, max_i_qp]和-1;

first_frame_start_qp如果为-1则第一帧的起始QP由编码器内部计算,如果为其它合法值则由用户指定该值为第一帧起始QP。

scene_chg_detect

场景检测相关的控制参数。

h264_cbr_param

H.264通道CBR(Constant Bit Rate)码率控制模式高级参数。

h264_vbr_param

H.264通道VBR(Variable Bit Rate)码率控制模式高级参数。

h264_avbr_param

H.264通道AVBR(Adaptive Variable Bit Rate)码率控制模式高级参数。

h264_qvbr_param

H.264通道QVBR (Quality Variable Bit Rate)码率控制模式高级参数。

h264_cvbr_param

H.264通道CVBR (Constrained Variable Bit Rate)码率控制模式高级参数。

h265_cbr_param

H.265通道CBR(Constant Bit Rate)码率控制模式高级参数。

h265_vbr_param

H.265通道VBR(Variable Bit Rate)码率控制模式高级参数。

h265_avbr_param

H.265通道AVBR(Adaptive Variable Bit Rate)码率控制模式高级参数。

h265_qvbr_param

H.265通道QVBR (Quality Variable Bit Rate)码率控制模式高级参数。

h265_cvbr_param

H.265通道CVBR (Constrained Variable Bit Rate)码率控制模式高级参数。

mjpeg_cbr_param

MJPEG通道CBR(Constant Bit Rate)码率控制模式高级参数。

mjpeg_vbr_param

MJPEG通道VBR(Variable Bit Rate)码率控制模式高级参数。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_param

  • ss_mpi_venc_get_rc_param

ot_venc_jpeg_enc_mode

【说明】

定义JPEG编码通道的抓拍模式。

【定义】

typedef enum {
    OT_VENC_JPEG_ENC_ALL  = 0,
    OT_VENC_JPEG_ENC_SNAP = 1,
    OT_VENC_JPEG_ENC_BUTT,
} ot_venc_jpeg_encode_mode;

【成员】

成员名称

描述

OT_VENC_JPEG_ENC_ALL

全部抓拍模式,JPEG通道的默认抓拍模式。

OT_VENC_JPEG_ENC_SNAP

抓拍模式,JPEG通道仅编码已标记为抓拍帧的图像。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_jpeg_enc_mode

  • ss_mpi_venc_get_jpeg_enc_mode

ot_venc_h265_pu

【说明】

定义H.265协议编码通道PU参数结构体。

【定义】

typedef struct {
    td_u32 constrained_intra_pred_flag;
    td_u32 strong_intra_smoothing_enabled_flag;
} ot_venc_h265_pu;

【成员】

成员名称

描述

constrained_intra_pred_flag

默认为0。

取值范围:0或1。

strong_intra_smoothing_enabled_flag

默认为1。

取值范围:0或1。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_h265_pu

  • ss_mpi_venc_get_h265_pu

ot_venc_h265_trans

【说明】

定义H.265协议编码通道变换量化的结构体。

【定义】

typedef struct {
    td_s32  cb_qp_offset;
    td_s32  cr_qp_offset;
    td_bool scaling_list_en;
    td_bool scaling_list_tu4_valid;
    td_u8   inter_scaling_list4x4[2][OT_VENC_SCALING_LIST_SIZE_16];  
    td_u8   intra_scaling_list4x4[2][OT_VENC_SCALING_LIST_SIZE_16];    
    td_bool scaling_list_tu8_valid;
    td_u8   inter_scaling_list8x8[2][OT_VENC_SCALING_LIST_SIZE_64];
    td_u8   intra_scaling_list8x8[2][OT_VENC_SCALING_LIST_SIZE_64];
    td_bool scaling_list_tu16_valid;
    td_u8   inter_scaling_list16x16[2][OT_VENC_SCALING_LIST_SIZE_64];
    td_u8   intra_scaling_list16x16[2][OT_VENC_SCALING_LIST_SIZE_64];
    td_bool scaling_list_tu32_valid;
    td_u8   inter_scaling_list32x32[OT_VENC_SCALING_LIST_SIZE_64];
    td_u8   intra_scaling_list32x32[OT_VENC_SCALING_LIST_SIZE_64];
} ot_venc_h265_trans;

【成员】

成员名称

描述

cb_qp_offset

默认值根据不同的解决方案有差异,其中SS928V100默认值为-3,其他值为0。

取值范围:[-12, 12]

cr_qp_offset

默认值根据不同的解决方案有差异,其中SS928V100默认值为-3,其他值为0。

取值范围:[-12, 12]

scaling_list_en

默认值根据不同的解决方案有差异,部分场景默认为0。

取值范围:[0, 1]

scaling_list_tu4_valid

默认值根据不同的解决方案有差异,部分场景默认为0。

取值范围:[0, 1]

inter_scaling_list4x4[2][OT_VENC_SCALING_LIST_SIZE_16]

默认值根据不同的解决方案有差异。

仅支持配置为16。

intra_scaling_list4x4[2][OT_VENC_SCALING_LIST_SIZE_16]

默认值根据不同的解决方案有差异。

仅支持配置为16。

scaling_list_tu8_valid

默认为0,默认值根据不同的解决方案有差异。

取值范围:[0, 1]

inter_scaling_list8x8[2][OT_VENC_SCALING_LIST_SIZE_64]

默认值根据不同的解决方案有差异。

取值范围:[1, 255]

intra_scaling_list8x8[2][OT_VENC_SCALING_LIST_SIZE_64]

默认值根据不同的解决方案有差异。

取值范围:[1, 255]

scaling_list_tu16_valid

默认为0,默认值根据不同的解决方案有差异。

取值范围:[0, 1]

inter_scaling_list16x16[2][OT_VENC_SCALING_LIST_SIZE_64]

默认值根据不同的解决方案有差异。

取值范围:[1, 255]

intra_scaling_list16x16[2][OT_VENC_SCALING_LIST_SIZE_64]

默认值根据不同的解决方案有差异。

取值范围:[1, 255]

scaling_list_tu32_valid

默认为0,默认值根据不同的解决方案有差异。

取值范围:[0, 1]

inter_scaling_list32x32[OT_VENC_SCALING_LIST_SIZE_64]

默认值根据不同的解决方案有差异。

取值范围:[1, 255]

intra_scaling_list32x32[OT_VENC_SCALING_LIST_SIZE_64]

默认值根据不同的解决方案有差异。

取值范围:[1, 255]

【注意事项】

  • 在场景配置为OT_VENC_SCENE_1 时,为平衡图像质量,cb_qp_offset、cr_qp_offset默认配置为-3。

  • 在场景配置为OT_VENC_SCENE_0、OT_VENC_SCENE_2时,cb_qp_offset、cr_qp_offset默认值不同解决方案有差异,其中SS928V100默认值为-3,其他值为0。

  • scaling_list_en为0时为无量化表。

  • scaling_list_en为1,scaling_list_tu4_valid/scaling_list_tu8_valid/ scaling_list_tu16_valid/ scaling_list_tu32_valid为0时,为协议默认量化表。

  • scaling_list_en/scaling_list_tu4_valid/scaling_list_tu8_valid/ scaling_list_tu16_valid/ scaling_list_tu32_valid为1时,为用户自定义量化表。

  • scaling_list_tu4_valid/scaling_list_tu8_valid/ scaling_list_tu16_valid/ scaling_list_tu32_valid仅支持同时为0或1。

  • SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100仅支持无量化表。

【相关数据类型及接口】

  • ss_mpi_venc_set_h265_trans

  • ss_mpi_venc_get_h265_trans

ot_venc_h265_entropy

【说明】

定义H.265协议编码通道熵编码的结构体。

【定义】

typedef struct {
    td_u32 cabac_init_flag;
} ot_venc_h265_entropy;

【成员】

成员名称

描述

cabac_init_flag

默认为1。

取值范围:0或1。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_h265_entropy

  • ss_mpi_venc_get_h265_entropy

ot_venc_h265_dblk

【说明】

定义H.265协议编码通道Deblocking的结构体。

【定义】

typedef struct {
    td_u32 slice_deblocking_filter_disabled_flag;
    td_s32 slice_beta_offset_div2;
    td_s32 slice_tc_offset_div2;
    td_u32 loop_filter_across_tiles_enabled_flag;
    td_u32 loop_filter_across_slices_enabled_flag;
} ot_venc_h265_dblk;

【成员】

成员名称

描述

slice_deblocking_filter_disabled_flag

默认为0。

取值范围:0或1。

slice_beta_offset_div2

默认为0。

取值范围:[-6,6]

slice_tc_offset_div2

默认为0。

取值范围:[-6,6]

loop_filter_across_tiles_enabled_flag

默认为1。

取值范围:0或1。

loop_filter_across_slices_enabled_flag

默认为1。

取值范围:0或1。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_h265_dblk

  • ss_mpi_venc_get_h265_dblk

ot_venc_h265_sao

【说明】

定义H.265协议编码通道Sao的结构体。

【定义】

typedef struct {
    td_u32 slice_sao_luma_flag;
    td_u32 slice_sao_chroma_flag;
} ot_venc_h265_sao;

【成员】

成员名称

描述

slice_sao_luma_flag

默认为1。

取值范围:0或1。

slice_sao_chroma_flag

默认为1。

取值范围:0或1。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_h265_sao

  • ss_mpi_venc_get_h265_sao

ot_venc_frame_lost_mode

【说明】

瞬时码率超过阈值时的丢帧模式。

【定义】

typedef enum {
    OT_VENC_FRAME_LOST_NORMAL = 0,
    OT_VENC_FRAME_LOST_P_SKIP,
    OT_VENC_FRAME_LOST_BUTT,
} ot_venc_frame_lost_mode;

【成员】

成员名称

描述

OT_VENC_FRAME_LOST_NORMAL

瞬时码率超过阈值时正常丢帧。

OT_VENC_FRAME_LOST_P_SKIP

瞬时码率超过阈值时编码p_skip帧。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_frame_lost_strategy

  • ss_mpi_venc_get_frame_lost_strategy

ot_venc_frame_lost_strategy

【说明】

瞬时码率超过阈值时的丢帧策略参数。

【定义】

typedef struct {
    td_bool enable;
    td_u32  bit_rate_threshold;
    ot_venc_frame_lost_mode mode;
    td_u32 frame_gap;
}  ot_venc_frame_lost_strategy;

【成员】

成员名称

描述

enable

瞬时码率超过阈值时丢帧开关。

bit_rate_threshold

丢帧阈值(单位为bit/s)。

取值范围:≥ 64k

mode

瞬时码率超过阈值时丢帧模式。

frame_gap

最大允许连续丢帧帧数,默认为0。

取值范围:[0, 65535]

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_set_frame_lost_strategy

ot_venc_reencode_priority

【说明】

超大帧重编优先级枚举。

【定义】

typedef enum {
    OT_VENC_REENCODE_BIT_RATE_FIRST = 1,
    OT_VENC_REENCODE_FRAME_BITS_FIRST,
    OT_VENC_REENCODE_BUTT,
} ot_venc_reencode_priority;

【成员】

成员名称

描述

OT_VENC_REENCODE_BIT_RATE_FIRST

目标码率优先。

OT_VENC_REENCODE_FRAME_BITS_FIRST

超大帧阈值优先。

【注意事项】

此优先级只在超大帧重编时有效。

【相关数据类型及接口】

无。

ot_venc_super_frame_strategy

【说明】

超大帧处理策略参数。

【定义】

typedef struct {
    ot_venc_super_frame_mode super_frame_mode;
    td_u32 i_frame_bits_threshold;
    td_u32 p_frame_bits_threshold;
    td_u32 b_frame_bits_threshold;
    ot_venc_reencode_priority reencode_priority;
} ot_venc_super_frame_strategy;

【成员】

成员名称

描述

super_frame_mode

超大帧处理模式,默认为OT_VENC_SUPER_FRAME_NONE。

i_frame_bits_threshold

I帧超大阈值,默认为500000。

取值范围:大于等于0

p_frame_bits_threshold

P帧超大阈值,默认为500000。

取值范围:大于等于0

b_frame_bits_threshold

B帧超大阈值,默认为500000。

取值范围:大于等于0

reencode_priority

码率控制优先级,默认为OT_VENC_REENCODE_BIT_RATE_FIRST。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_set_super_frame_strategy

ot_venc_intra_refresh_mode

【说明】

P帧刷Islice模式定义。

【定义】

typedef enum {
    OT_VENC_INTRA_REFRESH_ROW = 0,
    OT_VENC_INTRA_REFRESH_COLUMN,
    OT_VENC_INTRA_REFRESH_BUTT
} ot_venc_intra_refresh_mode;

【成员】

成员名称

描述

OT_VENC_INTRA_REFRESH_ROW

按行刷新

OT_VENC_INTRA_REFRESH_COLUMN

按列刷新

【注意事项】

【相关数据类型及接口】

ot_venc_intra_refresh

ot_venc_intra_refresh

【说明】

P帧刷Islice控制参数。

【定义】

typedef struct {
    td_bool enable;
    ot_venc_intra_refresh_mode mode;
    td_u32 refresh_num;
    td_u32 request_i_qp;
} ot_venc_intra_refresh;

【成员】

成员名称

描述

enable

是否使能刷Islice功能。默认为0

0:不使能

1:使能

mode

I宏块刷新模式,分为按行刷新和按列刷新。

refresh_num

每次I宏块刷新行数或者列数,可以通过这个变量控制刷新的速度及码流的平稳程度。刷新行数或者列数越多,刷新的速度越快,但是码流平稳度越差;刷新的行数或者列数越少,刷新的速度越慢,但是码流平稳度越好。

request_i_qp

I帧QP值,在帧内刷新模式,可能方案还需要插入IDR帧,设置I帧QP用于控制插入的IDR帧的质量,质量越好IDR帧大小越大;质量越差IDR帧大小越小。

取值范围:[0, 51]

【注意事项】

【相关数据类型及接口】

  • ss_mpi_venc_get_intra_refresh

  • ss_mpi_venc_set_intra_refresh

ot_venc_mod_param

【说明】

编码相关模块参数。

【定义】

typedef struct {
    ot_venc_mod_type mod_type;
    union {
        ot_venc_venc_mod_param venc_mod_param;
        ot_venc_h264_mod_param h264_mod_param;
        ot_venc_h265_mod_param h265_mod_param;
        ot_venc_jpeg_mod_param jpeg_mod_param;
    };
} ot_venc_mod_param;

【成员】

成员名称

描述

mod_type

设置或者获取模块参数的类型。

venc_mod_param

VENC模块参数。

h264_mod_param

H.264模块参数。

h265_mod_param

H.265模块参数。

jpeg_mod_param

JPEG模块参数。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_get_mod_param

  • ss_mpi_venc_set_mod_param

ot_venc_mod_type

【说明】

编码相关模块参数类型。

【定义】

typedef enum {
    OT_VENC_MOD_VENC = 1,
    OT_VENC_MOD_H264,
    OT_VENC_MOD_H265,
    OT_VENC_MOD_JPEG,
    OT_VENC_MOD_RC,
    OT_VENC_MOD_BUTT
} ot_venc_mod_type;

【成员】

成员名称

描述

OT_VENC_MOD_VENC

ssxx_venc.ko模块参数类型

OT_VENC_MOD_H264E

ssxx_h264e.ko模块参数类型

OT_VENC_MOD_H265E

ssxx_h265e.ko模块参数类型

OT_VENC_MOD_JPEGE

ssxx_jpege.ko模块参数类型

OT_VENC_MOD_RC

ssxx_rc.ko模块参数类型

【注意事项】

无。

【相关数据类型及接口】

ot_venc_mod_param

ot_venc_venc_mod_param

【说明】

ssxx_venc.ko模块参数。

【定义】

typedef struct {
    td_u32 buf_cache;
    td_u32 frame_buf_recycle;
} ot_venc_venc_mod_param;

【成员】

成员名称

描述

buf_cache

码流获取是否支持cache方式。

0:关闭码流Buffer Cache

1:打开码流Buffer Cache

默认值:0

frame_buf_recycle

帧存是否回收。

0:关闭编码帧存回收

1:打开编码帧存回收

默认值:0

【注意事项】

无。

【相关数据类型及接口】

ot_venc_mod_param

ot_venc_h264_mod_param

【说明】

ssxx_h264e.ko模块参数。

【定义】

typedef struct {
    td_u32    one_stream_buf;
    td_u32    mini_buf_mode;
    td_u32    low_power_mode;
    td_vb_src vb_src;
    td_bool   qp_hist_en;
    td_u32    max_user_data_len;
} ot_venc_h264_mod_param;

【成员】

成员名称

描述

one_stream_buf

编码码流帧配置模式。

0:多包模式

1:单包模式

默认值:0

mini_buf_mode

编码码流buffer配置模式

0:码流buffer根据分辨率分配

1:码流buffer下限为32k,用户保证合理

默认值:0

low_power_mode

低功耗模式。

0:关闭低功耗模式

1:使能低功耗模式

2:使能极低功耗模式

默认值:1

注意:低功耗或者极低功耗使能后会导致图像质量损失。噪声大场景可能导致画面不均匀。

vb_src

参考帧和重构帧的帧存分配方式。

OT_VB_SRC_PRIVATE:私有VB方式,驱动内部完成帧存分配;

OT_VB_SRC_USER:用户VB,需由用户分配帧存。

默认值:OT_VB_SRC_PRIVATE

qp_hist_en

Qp直方图输出控制模式

0:Qp直方图不输出,即ot_venc_h264_adv_stream_info中的成员变量 qp_hist[]为全0

1:Qp直方图输出,即ot_venc_h264_adv_stream_info中的成员变量 qp_hist[]为实际的当前帧的QP直方图

默认值:0

max_user_data_len

用户数据最大字节数。

取值范围:[0, 65536]

默认值:1024。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_mod_param

ot_venc_h265_mod_param

【说明】

ssxx_h265.ko模块参数。

【定义】

typedef struct {
    td_u32    one_stream_buf;
    td_u32    mini_buf_mode;
    td_u32    low_power_mode;
    ot_vb_src vb_src;
    td_bool   qp_hist_en;
    td_u32    max_user_data_len;
} ot_venc_h265_mod_param;

【成员】

成员名称

描述

one_stream_buf

编码码流帧配置模式。

0:多包模式

1:单包模式

默认值:0

mini_buf_mode

编码码流buffer配置模式

0:码流buffer根据分辨率分配

1:码流buffer下限为32k,用户保证合理

默认值:0

low_power_mode

低功耗模式。

0:关闭低功耗模式

1:使能低功耗模式

2:使能极低功耗模式

默认值:1

注意:低功耗或者极低功耗使能后会导致图像质量损失。

vb_src

参考帧和重构帧的帧存分配方式。

OT_VB_SRC_PRIVATE:私有VB方式,驱动内部完成帧存分配;

OT_VB_SRC_USER:用户VB,需由用户分配帧存。

默认值:OT_VB_SRC_PRIVATE

qp_hist_en

Qp直方图输出控制模式

0:Qp直方图不输出,即ot_venc_h265_adv_stream_info中的成员变量 qp_hist[]为全0

1:Qp直方图输出,即ot_venc_h265_adv_stream_info中的成员变量 qp_hist[]为实际的当前帧的QP直方图。

默认值:0

max_user_data_len

用户数据最大字节数。

取值范围:[0, 65536]

默认值:1024。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_mod_param

ot_venc_jpeg_mod_param

【说明】

ssxx_jpeg.ko模块中参数。

【定义】

typedef struct {
    td_u32 one_stream_buf;
    td_u32 mini_buf_mode;
    td_u32 clear_stream_buf;
    td_u32 dering_mode;
} ot_venc_jpeg_mod_param;

【成员】

成员名称

描述

one_stream_buf

编码码流帧配置模式。

0:多包模式

1:单包模式

默认值:0

mini_buf_mode

编码码流buffer配置模式

0:码流buffer根据分辨率分配

1:码流buffer下限为32k,用户保证合理

默认值:0

clear_stream_buf

JPEG编码通道设置属性时是否清空码流buffer。

0:设置通道属性时保留码流buffer和上下文计数;

1:设置通道属性时清空码流buffer。

默认值:1

dering_mode

JPEG编码通道去Ring效应模式。

0:不使能去Ring算法;

1:使能去Ring算法,在相同量化表和qfactor的情况下能减少Ring现象并且减小图片文件大小,但也会损失一些图片清晰度和细节。

默认值:1

【注意事项】

无。

【相关数据类型及接口】

ot_venc_mod_param

ot_venc_frame_type

【说明】

定义编码帧类型枚举。

【定义】

typedef enum {
    OT_VENC_FRAME_TYPE_NONE = 1,
    OT_VENC_FRAME_TYPE_IDR,
    OT_VENC_FRAME_TYPE_P_SKIP,
    OT_VENC_FRAME_TYPE_BUTT
} ot_venc_frame_type;

【成员】

成员名称

描述

OT_VENC_FRAME_TYPE_NONE

当前帧编码类型不指定,实际帧类型由驱动内部决定。

OT_VENC_FRAME_TYPE_IDR

指定当前帧编为IDR帧。

OT_VENC_FRAME_TYPE_P_SKIP

指定当前帧编为p_skip帧。

【注意事项】

无。

【相关数据类型及接口】

ot_venc_user_rc_info

【说明】

用户码控信息结构体。

【定义】

typedef struct {
    td_bool qpmap_valid;
    td_bool skip_weight_valid;
    td_u32  blk_start_qp;
    td_phys_addr_t qpmap_phys_addr;
    td_phys_addr_t skip_weight_phys_addr;
    ot_venc_frame_type frame_type;
} ot_venc_user_rc_info;

【成员】

成员名称

描述

qpmap_valid

QPMAP模式中,Qp表是否生效。

skip_weight_valid

QPMAP模式中,SkipWeight表是否生效。

blk_start_qp

QPMAP模式中,第一个16*16块的Qp值。

取值范围:[0, 51]

qpmap_phys_addr

QPMAP模式中,Qp表的物理地址。

skip_weight_phys_addr

QPMAP模式中,SkipWeight表的物理地址。

frame_type

指定当前帧编码帧类型。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_send_frame_ex

ot_venc_user_roimap

【说明】

用户ROI信息结构体。

【定义】

typedef struct {
    td_bool valid;
    td_phys_addr_t phys_addr;
} ot_venc_user_roimap;

【成员】

成员名称

描述

valid

该图的ROIMap表是否有效

phys_addr

该图的ROIMap表的物理地址。

【注意事项】

ROIMap仅支持JPEG和MJPEG协议。

【相关数据类型及接口】

ss_mpi_venc_send_frame_ex

说明:

  • 图像中每16 * 16的块由2个bit表示,2个bit可以表示0~3共4个档位,用以表示该块的降码率等级,等级越高降码率相对越多,图像质量损失也相对越多,与设置JPEG ROI属性接口ss_mpi_venc_set_jpeg_roi_attr参数ot_venc_jpeg_roi_attr中的level意义相同。

  • JPEG ROIMap表需要内存计算如下: roimap_stride = (width + 1023) / 1024 * 1024 / 64 roimap_size = stride * ((height + 15) / 16 * 16 / 16)

ot_venc_user_frame_info

【说明】

用户发送图像信息结构体。

【定义】

typedef struct {
    ot_video_frame_info user_frame;
    ot_venc_user_rc_info user_rc_info;
    ot_venc_user_roimap user_roimap;
} ot_venc_user_frame_info;

【成员】

成员名称

描述

user_frame

用户发送图像帧信息结构体。具体描述请参见系统控制章节。

user_rc_info

用户码控信息结构体

user_roimap

用户ROIMap信息结构体。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_send_frame_ex

ot_omx_user_rc_info

【说明】

用户码控信息结构体。

【定义】

typedef struct {
    td_bool rc_info_valid;
    td_u32  target_bits;
    td_u32  max_qp;
    td_u32  min_qp;
    td_u32  start_qp;
    ot_venc_frame_type frame_type;
} ot_omx_user_rc_info;

【成员】

成员名称

描述

rc_info_valid

外部输入码率控制信息是否生效。

target_bits

目标码率

max_qp

帧最大QP,用于钳位质量。

取值范围:[0, 51]

默认值:51

min_qp

帧最小QP,用于钳位码率波动。

取值范围:[0, max_qp]

默认值:10

start_qp

编码当前帧的startqp值

frame_type

指定当前帧编码帧类型。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_omx_send_frame

ot_omx_user_frame_info

【说明】

用户发送图像信息和外部码率控制信息结构体。

【定义】

typedef struct {
    ot_video_frame_info user_frame;
    ot_omx_user_rc_info user_rc_info;
} ot_omx_user_frame_info;

【成员】

成员名称

描述

user_frame

用户发送图像帧信息结构体。具体描述请参见“系统控制”章节。

user_rc_info

外部码控信息结构体

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_omx_send_frame

ot_venc_mosaic_mode

【说明】

定义马赛克模式。

【定义】

typedef enum
{
    OT_VENC_MOSAIC_MODE_RECT = 0,
    OT_VENC_MOSAIC_MODE_MAP,
    OT_VENC_MOSAIC_MODE_BUTT
} ot_venc_mosaic_mode;

【成员】

成员名称

描述

OT_VENC_MOSAIC_MODE_RECT

马赛克模式:用户输入马赛克区域。

OT_VENC_MOSAIC_MODE_MAP

马赛克模式:用户输入马赛克表。

【注意事项】

  • SS528V100/SS625V100/SS522V101/SS524V100/SS626V100暂不支持复合编码。

  • SS928V100仅支持OT_VENC_MOSAIC_MODE_MAP模式。

【相关数据类型及接口】

ss_mpi_venc_send_multi_frame

ot_venc_mosaic_pixel_yuv

【说明】

定义纯色填充的颜色。

【定义】

typedef struct {
    td_u8 data_y;
    td_u8 data_u;
    td_u8 data_v;
} ot_venc_mosaic_pixel_yuv;

【成员】

成员名称

描述

data_y

纯色填充的Y分量数值

data_u

纯色填充的U分量数值

data_v

纯色填充的V分量数值

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_send_multi_frame

ot_venc_mosaic_rect

【说明】

马赛克rect模式的参数结构体。

【定义】

typedef struct {
    td_u32 rect_num;
    ot_rect rect[OT_VENC_MAX_MOSAIC_RECT_NUM];
} ot_venc_mosaic_rect;

【成员】

成员名称

描述

rect_num

输入马赛克区域个数

rect

每个马赛克区域的起始点及宽高

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_send_multi_frame

ot_venc_mosaic_map

【说明】

马赛克map模式的参数结构体。

【定义】

typedef struct {
    td_bool valid;
    td_phys_addr_t phys_addr;
    td_bool specified_yuv_en;
    ot_venc_mosaic_pixel_yuv pixel_yuv;
} ot_venc_mosaic_map;

【成员】

成员名称

描述

valid

马赛克表有效标志。

phys_addr

马赛克表物理地址

td_phys_addr_t具体描述请参见“系统控制”章节

specified_yuv_en

指定YUV填充有效标志。

pixel_yuv

纯色填充的YUV分量像素值

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_send_multi_frame

ot_venc_mosaic_info

【说明】

马赛克信息结构体。

【定义】

typedef struct {
    ot_venc_mosaic_mode mode;
    ot_mosaic_blk_size blk_size;
    union {
        ot_venc_mosaic_rect rect_param;        
        ot_venc_mosaic_map map_param;
    };
} ot_venc_mosaic_info;

【成员】

成员名称

描述

mode

马赛克模式。

blk_size

马赛克块大小。

ot_mosaic_blk_size请参考”系统控制”章节。

rect_param

马赛克rect模式对应的参数。

map_param

马赛克map模式对应的参数。

【注意事项】

SS528V100/SS625V100/SS522V101/SS524V100/SS626V100暂不支持复合编码。

【相关数据类型及接口】

ss_mpi_venc_send_multi_frame

ot_venc_multi_frame_info

【说明】

用户发送多帧图像及马赛克信息结构体。

【定义】

typedef struct {
    td_u32 frame_num;
    ot_video_frame_info frame[OT_VENC_MAX_FRAME_NUM];
    ot_venc_mosaic_info mosaic_info;
} ot_venc_multi_frame_info;

【成员】

成员名称

描述

frame_num

用户发送图像帧数量。仅支持发送2帧。

frame

用户发送图像帧信息结构体数组

ot_video_frame_info具体描述请参见“系统控制”章节。

mosaic_info

马赛克信息结构体

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_send_multi_frame

ot_venc_chn_config

【说明】

编码通道配置。

【定义】

typedef struct {
    td_bool mosaic_en;
    td_bool composite_enc_en;
    td_u32 quality_level
} ot_venc_chn_config;

【成员】

成员名称

描述

mosaic_en

是否在输入图像叠加马赛克。

取值范围:[0, 1]

默认值为TD_FALSE。

请参考接口ss_mpi_venc_send_multi_frame,当前固定是在ot_venc_multi_frame_info:frame[0]图像叠加马赛克。

composite_enc_en

是否使能复合编码。

取值范围:[0, 1]

默认值为TD_FALSE。

启动复合编码后需要调用接口ss_mpi_venc_send_multi_frame发送图像,一次送2个图像到编码队列。ot_venc_multi_frame_info:frame[0]为基础层图像,ot_venc_multi_frame_info:frame[1]为增强层图像。

quality_level

复合编码的质量级别。

取值范围:[0, 1]

质量等级为1时编码器提升编码质量,需要的参考帧增加一倍,重构帧数量增加一个。

质量等级为0时编码质量会降低,需要的参考帧数量不变,重构帧数量增加一个。

请参考接口ss_mpi_venc_set_chn_config描述。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_send_multi_frame

ot_venc_sse_rgn

【说明】

SSERegion模块中参数。

【定义】

typedef struct {
    td_u32  idx;
    td_bool enable;
    td_rect rect;
} ot_venc_sse_rgn;

【成员】

成员名称

描述

idx

SSE 区域的索引,系统支持的索引范围为[0,7],不支持超出这个范围的索引。

enable

是否使能这个SSE区域。

rect

SSE 区域。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_sse_rgn

  • ss_mpi_venc_get_sse_rgn

ot_venc_chn_param

【说明】

定义Venc通道参数结构体。

【定义】

typedef struct {
    td_bool color_to_grey_en;
    td_u32  priority;
    td_u32  max_stream_cnt;
    td_u32  poll_wake_up_frame_cnt;
    ot_crop_info crop_info;
    ot_frame_rate_ctrl frame_rate;
} ot_venc_chn_param;

【成员】

成员名称

描述

color_to_grey_en

开启或关闭一个通道的彩转灰功能。

priority

编码通道优先级参数。

取值范围:[0, 2)。

max_stream_cnt

最大码流缓存帧数。

取值范围:大于等于0

默认值:200

poll_wake_up_frame_cnt

当通道使用超时或阻塞获取码流,编码指定的帧poll_wake_up_frame_cnt之后唤醒阻塞接口。

取值范围:大于0

默认值:1

crop_info

通道截取(Crop)参数

frame_rate

通道帧率控制参数

【注意事项】

  • crop_info结构体的成员:

    • rect.x必须16像素对齐;

    • rect.y必须2像素对齐;

    • rect.with,rect.height满足对应编码通道的宽高约束。

  • frame_rate结构体的成员:

    • src_frame_rate:表示进入通道的帧率,以fps为单位。

      取值范围:-1或[1, 240]

    • dst_frame_rate:表示通道输出的帧率,以fps为单位。

      取值范围:Jpeg:-1或[1, src_frame_rate];H.264/H.265/Mjpeg:-1或[1, 240]

【相关数据类型及接口】

  • ss_mpi_venc_set_chn_param

  • ss_mpi_venc_get_chn_param

ot_venc_fg_protect

【说明】

前景保护参数结构体。

【定义】

typedef struct {
    td_bool enable;
    td_u32  direction;
    td_u32  gain;
    td_u32  offset;
    td_u32  threshold_p[OT_VENC_TEXTURE_THRESHOLD_SIZE];
    td_u32  threshold_b[OT_VENC_TEXTURE_THRESHOLD_SIZE];
} ot_venc_fg_protect;

【成员】

成员名称

描述

enable

开启或关闭前景宏块级码控制。默认关闭。

direction

在前景宏块级码率控制时,用于控制减方向Thr的下标。

取值范围:[0, 16]

默认值:8。

gain

前景检测中用于计算sad的阈值。

取值范围:[0, 15]

默认值:8。

offset

前景检测中用于计算sad的阈值。

取值范围:[0, 255]

默认值:8。

threshold_p

P帧在前景宏块级码率控制时的mad门限。

取值范围:[0, 255]

threshold_b

B帧在前景宏块级码率控制时的mad门限。

取值范围:[0, 255]

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_fg_protect

  • ss_mpi_venc_get_fg_protect

ot_venc_scene_mode

【说明】

定义编码场景枚举。

【定义】

typedef enum {
    OT_VENC_SCENE_0 = 0,              
    OT_VENC_SCENE_1 = 1,            
    OT_VENC_SCENE_2 = 2,            
    OT_VENC_SCENE_BUTT
} ot_venc_scene_mode;

【成员】

成员名称

描述

OT_VENC_SCENE_0

摄像机不运动或周期性连续运动的场景。

OT_VENC_SCENE_1

高码率下运动场景。

OT_VENC_SCENE_2

中等码率下有规律的连续运动,且编码压力比较大场景。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_scene_mode

  • ss_mpi_venc_get_scene_mode

ot_venc_scene_chg_detect

【说明】

编码场景检测控制参数。

【定义】

typedef struct {
    td_bool detect_scene_chg_en;
    td_bool adapt_insert_idr_frame_en;
} ot_venc_scene_chg_detect;

【成员】

成员名称

描述

detect_scene_chg_en

是否使能场景切换检测。

使能场景切换检测后,编码器会自动检测场景切换,并且在检测到场景切换后主动调整QP,提升质量;但是如果频繁的出现场景切换,会导致码率升高。云台、车载产品在镜头运动时有较大概率判断为场景切换。建议在运动时设置为TD_FALSE。

adapt_insert_idr_frame_en

是否使能自适应插入IDR帧。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_param

  • ss_mpi_venc_get_rc_param

ot_venc_chn_pool

【说明】

定义编码通道绑定的VB池结构体。

【定义】

typedef struct {
    ot_vb_pool pic_vb_pool;
    ot_vb_pool pic_info_vb_pool;
} ot_venc_chn_pool;

【成员】

成员名称

描述

pic_vb_pool

用于存储Picture的VB池pool id。

pic_info_vb_pool

用于存储Picture的信息(pme、tmv、pmeinfo)的VB池pool id。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_venc_attach_vb_pool

ot_venc_cu_pred

【说明】

CU模式选择的倾向性配置结构体

【定义】

typedef struct {
    ot_op_mode pred_mode;
    td_u32 intra32_cost;
    td_u32 intra16_cost;
    td_u32 intra8_cost;
    td_u32 intra4_cost;
    td_u32 inter64_cost;
    td_u32 inter32_cost;
    td_u32 inter16_cost;
    td_u32 inter8_cost;
} ot_venc_cu_pred;

【成员】

成员名称

描述

pred_mode

倾向性选择模式:

OT_OP_MODE_AUTO:驱动内部完成倾向性配置;

OT_OP_MODE_MANUAL:设置该接口,用户完成倾向性配置。

ot_op_mode请参考“系统控制”章节。

intra32_cost

Intra32倾向性调节,该值增大表示选择该模式的倾向性越小。

取值范围:[0, 15]

默认值:8。

H.264该值无效。

intra16_cost

Intra16倾向性调节,该值增大表示选择该模式的倾向性越小。

取值范围:[0, 15]

默认值:8。

intra8_cost

Intra8倾向性调节,该值增大表示选择该模式的倾向性越小。

取值范围:[0, 15]

默认值:8。

intra4_cost

Intra4倾向性调节,该值增大表示选择该模式的倾向性越小。

取值范围:[0, 15]

默认值:8。

inter64_cost

Inter64倾向性调节,该值增大表示选择该模式的倾向性越小。

取值范围:[0, 15]

默认值:8。

H.264该值无效。

inter32_cost

Inter32倾向性调节,该值增大表示选择该模式的倾向性越小。

取值范围:[0, 15]

默认值:8。

H.264该值无效。

inter16_cost

Inter16倾向性调节,该值增大表示选择该模式的倾向性越小。

取值范围:[0, 15]

默认值:8。

inter8_cost

Inter8倾向性调节,该值增大表示选择该模式的倾向性越小。

取值范围:[0, 15]

默认值:8。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_cu_pred

  • ss_mpi_venc_get_cu_pred

ot_venc_skip_bias

【说明】

SKIP倾向性配置结构体。

【定义】

typedef struct {
    td_bool enable;
    td_u32  gain;
    td_u32  offset;
    td_u32  bg_cost;
    td_u32  fg_cost;
} ot_venc_skip_bias;

【成员】

成员名称

描述

enable

标识skip倾向性是否使能

gain

前景检测中用于计算sad的增益系数(或比例因子)。

取值范围:[0, 15]

默认值:8。

offset

前景检测中用于计算sad的偏移量(或绝对阈值)。

取值范围:[0, 255]

默认值:8。

bg_cost

背景skip倾向性调节,该值增大表示选择skip的倾向性越小。

取值范围:[0, 15]

默认值:10。

fg_cost

前景skip倾向性调节,该值增大表示选择skip的倾向性越小。

取值范围:[0, 15]

默认值:10。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_skip_bias

  • ss_mpi_venc_get_skip_bias

ot_venc_debreath_effect

【说明】

去除呼吸效应参数结构体。

【定义】

typedef struct {
    td_bool enable;
    td_s32 strength0;
    td_s32 strength1;
} ot_venc_debreath_effect;

【成员】

成员名称

描述

enable

去除呼吸效应是否使能。

TD_TRUE:使能;

TD_FALSE:不使能。

strength0

去除呼吸效应强度调节参数0。值越大,呼吸效应改善会越弱,值越小,呼吸效应改善越明显。

取值范围:[0, 35]

默认值:6。

strength1

去除呼吸效应强度调节参数1。其值越大,I帧会越大,其值越小,I帧会越小。

取值范围:[0, 35]

默认值:16。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_debreath_effect

  • ss_mpi_venc_get_debreath_effect

ot_venc_hierarchical_qp

【说明】

QP分层参数结构体。

【定义】

typedef struct {
    td_bool enable;
    td_s32  qp_delta[OT_VENC_MAX_HIERARCHY_NUM];
    td_s32  frame_num[OT_VENC_MAX_HIERARCHY_NUM];
} ot_venc_hierarchical_qp;

【成员】

成员名称

描述

enable

QP分层是否使能。

TD_TRUE:使能;

TD_FALSE:不使能。

默认不使能。

qp_delta[OT_VENC_MAX_HIERARCHY_NUM]

每一层帧相对于第0层P帧的Qp差值。

取值范围:[-10, 10]

默认值:0。

frame_num[OT_VENC_MAX_HIERARCHY_NUM]

每一层中帧的数目。

取值范围:[0, 5]

默认值:0。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_hierarchical_qp

  • ss_mpi_venc_get_hierarchical_qp

ot_venc_rc_adv_param

【说明】

定义RC模块的高级参数,此接口会包含与码流控制算法无关的功能,并且未来版本还有可能扩展。

【定义】

typedef struct {
    td_u32 clear_stats_after_set_attr;
} ot_venc_rc_adv_param;

【成员】

成员名称

描述

clear_stats_after_set_attr

设置新的通道码率后,是否清除码率控制的统计信息,默认值为1。

0:设置通道码率后不清除RC的帧率和码率统计信息;

1:设置通道码率后清除RC的帧率和码率统计信息;

注意:当设置的参数改变统计buffer内存大小时,此时需要重新分配内存或者算法可能读取到未被赋值的内存,此时算法必须清除统计信息。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_rc_adv_param

  • ss_mpi_venc_get_rc_adv_param

ot_venc_svc_rect_type

【说明】

定义智能检测目标框type类型信息。

【定义】

typedef enum {
    SVC_RECT_TYPE0,
    SVC_RECT_TYPE1,
    SVC_RECT_TYPE2,
    SVC_RECT_TYPE3,
    SVC_RECT_TYPE4,
    SVC_RECT_TYPE_BUTT
} ot_venc_svc_rect_type;

【成员】

成员名称

描述

SVC_RECT_TYPE0

智能检测目标类型0。

SVC_RECT_TYPE1

智能检测目标类型1。

SVC_RECT_TYPE2

智能检测目标类型2。

SVC_RECT_TYPE3

智能检测目标类型3。

SVC_RECT_TYPE4

智能检测目标类型4。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_send_svc_region

  • ss_mpi_venc_get_svc_param

  • ss_mpi_venc_set_svc_param

ot_venc_svc_map_param

【说明】

定义智能编码QpMap,SkipMap值。

【定义】

typedef struct {
    td_u8 qpmap_value_i;   /* RW;Range: [0, 255] */
    td_u8 qpmap_value_p;   /* RW;Range: [0, 255] */
    td_u8 skipmap_value;   /* RW;Range: [0, 255] */
} ot_venc_svc_map_param;

【成员】

成员名称

描述

qpmap_value_i

I帧的QpMap值。取值范围:[0,255]取值说明见【注意事项】

默认值为0。

qpmap_value_p

P帧的QpMap值。取值范围:[0,255]。取值说明见【注意事项】

默认值为0。

skipmap_value

P帧前景SkipMap值。使用更强的Skip倾向性可以降低码率,但会牺牲质量

取值范围:[0,255]

默认值为0。

【注意事项】

qpmap_value_i,qpmap_value_p取值的意义:

  • 当取值为0,1,2,…,31:对应deltaQP:0,1,2,…,31

  • 当取值为32,33,34,…,63:对应deltaQP:-32,-31,…,-1

  • 当取值为64,65,…,115:对应绝对QP:0,1,2,…,51

  • 当取值为[115, 127]:对应绝对QP为51

  • 当取值为[128,255]:对应强制skip模式

skipmap_value取值的意义:

  • skipmap_value对应左右两个LCU的Skipweight值;

  • 高4bit代表左LCU的Skipweight值;

  • 低4bit代表右LCU的Skipweight值;

  • 建议高4bit与低4bit设定的skipweight一致,且为避免图像出现缺块现象,skipweight设定值不宜过强。

  • I帧时,背景与Activity区域的skipweight为0。

【相关数据类型及接口】

  • ss_mpi_venc_get_svc_param

  • ss_mpi_venc_set_svc_param

ot_venc_svc_param

【说明】

定义智能编码调节参数。

【定义】

typedef struct {
    ot_venc_svc_map_param  fg_region[SVC_RECT_TYPE_BUTT];
    ot_venc_svc_map_param  activity_region;
    ot_venc_svc_map_param  bg_region;
    td_bool fg_protect_adaptive_en; /* RW;Range: [0, 1] */
} ot_venc_svc_param;

【成员】

成员名称

描述

fg_region

前景区域的QpMap和SkipMap值。

activity_region

可能有目标区域的QpMap和SkipMap值。

bg_region

背景区域的QpMap和SkipMap值。

fg_protect_adaptive_en

对面积较大的前景物体少量升高QP,避免质量过好,以减少对码率的消耗。

取值范围:[0,1]

默认值为1。

【注意事项】

  • Activity_region:智能检测结果不稳定时内部自动生成的保护区域,区域设置为前一次智能检测覆盖的区域,整体区域的QpMapValue的值一致。若智能检测结果连续稳定,建议将对应的activity_region区域对应QpMap Value设置为0。

  • fg_protect_adaptive_en:仅在qpmap_value_i及qpmap_value_p为相对负QP下起作用,若要设定绝对QP,请根据码率、目标框大小的实际情况设定绝对QP值,以免设置不合理带来的码率剧烈波动。

【相关数据类型及接口】

  • ss_mpi_venc_get_svc_param

  • ss_mpi_venc_set_svc_param

ot_venc_svc_rect_info

【说明】

定义智能检测目标框属性信息。

【定义】

typedef struct {
    td_u32 rect_num;
    td_size base_resolution;
    ot_rect rect_attr[OT_VENC_MAX_SVC_RECT_NUM];
    ot_venc_svc_rect_type detect_type[OT_VENC_MAX_SVC_RECT_NUM];
    td_u64 pts;
} ot_venc_svc_rect_info;

【成员】

成员名称

描述

rect_num

智能检测目标个数,取值范围[0, OT_VENC_MAX_SVC_RECT_NUM]

base_resolution

智能目标识别基础分辨率,用于目标框长、宽缩放计算。

rect_attr

智能检测目标框坐标信息。

detect_type

智能目标属性类别。

pts

时间戳, 单位:us。

【注意事项】

  • base_resolution要小于或等于开启智能编码功能通道的分辨率。

  • 为保证目标框的图像质量,请自行根据目标的大小及基础分辨率的大小进行合理的扩边处理,保证目标框完全涵盖住目标。

  • rect_attr:x,y表示框左上角的坐标;width, height表示框的宽,高。需要满足:

    • x取值范围:[0, base_resolution.width )

    • y 取值范围:[0, base_resolution.height)

    • x + width <= base_resolution.width

    • y + height <= base_resolution.height

【相关数据类型及接口】

ss_mpi_venc_send_svc_region

ot_venc_md_sad_mode

【说明】

定义sad计算结果所用方式控制信息。

【定义】

typedef enum {
    OT_VENC_MD_SAD_MODE_ZERO = 0,
    OT_VENC_MD_SAD_MODE_SEARCH = 1,
    OT_VENC_MD_SAD_MODE_BUTT 
} ot_venc_md_sad_mode;

【成员】

成员名称

描述

OT_VENC_MD_SAD_MODE_ZERO

Sad计算采用无运动搜索方式。

OT_VENC_MD_SAD_MODE_SEARCH

Sad计算采用有运动搜索方式。。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_get_md

  • ss_mpi_venc_set_md

ot_venc_md_param

【说明】

定义md检测控制信息。

【定义】

typedef struct {
    td_bool online_en;
    td_bool sad_stats_en;
    td_bool level_stats_en;
    ot_venc_md_sad_mode sad_mode;
    td_s32 threshold_gain[OT_VENC_MD_THRESHOLD_NUM];
    td_s32 threshold_offset[OT_VENC_MD_THRESHOLD_NUM];
    td_s32 qp_delta[OT_VENC_MD_LEVEL_NUM];
    td_s32 md_skip_weight[OT_VENC_MD_LEVEL_NUM];
} ot_venc_md_param;

【成员】

成员名称

描述

online_en

在线模式。

sad_stats_en

上报信息为计算的SAD值使能信号。

level_stats_en

上报信息为Md Level值使能信号。

sad_mode

Sad的计算模式 0:no motion cost计算模式 1:motion cost计算模式。

threshold_gain

区分md level层级阈值的计算系数,取值范围:[0,15]

threshold_offset

区分md level层级阈值的计算偏移,取值范围:[0,255]

qp_delta

检测区域的相对Qpdelta,取值范围:[0,63]

md_skip_weight

检测区域的Skip倾向性选择权重,仅在AVBR码控下生效,取值范围:[0,15]

【注意事项】

sad_stats_en和level_stats_en暂不支持。

md检测算法在I帧下不调节QP,只在P帧调节QP。为保证图像效果,不建议与智能编码(SVC)共同使用。

qp_delta取值的意义:

  • 当取值为0,1,2,…,31:对应qp_delta:0,1,2,…,31

  • 当取值为32,33,34,…,63:对应qp_delta:-32,-31,…,-1

注意:MD算法的qp_delta会与ROI_OSD QP叠加作用,设置ROI_OSD QP时,请考虑到MD qp_delta的影响。

【相关数据类型及接口】

  • ss_mpi_venc_get_md

  • ss_mpi_venc_set_md

ot_venc_deblur_param

【说明】

定义去背景模糊控制信息。

【定义】

typedef struct {
    td_bool deblur_en;
    td_bool deblur_adaptive_en;
} ot_venc_deblur_param;

【成员】

成员名称

描述

deblur_en

去背景模糊使能开关。

deblur_adaptive_en

去背景模糊自适应调节开关。

【注意事项】

详见请参考ss_mpi_venc_set_deblur接口描述【注意】。

【相关数据类型及接口】

  • ss_mpi_venc_get_deblur

  • ss_mpi_venc_set_deblur

ot_venc_param_set_id

【说明】

定义H.264/H.265参数集ID。

【定义】

typedef struct {
   td_u32 param_set_id;
} ot_venc_param_set_id;

【成员】

成员名称

描述

param_set_id

参数集ID。

H.264取值范围:[0, 30]

H.265取值范围:[0, 15]

【注意事项】

【相关数据类型及接口】

  • ss_mpi_venc_get_param_set_id

  • ss_mpi_venc_set_param_set_id

ot_venc_h264_poc

【说明】

定义H.264协议编码通道POC类型。

【定义】

typedef struct {
    td_u32 pic_order_cnt_type;
} ot_venc_h264_poc;

【成员】

成员名称

描述

pic_order_cnt_type

取值范围:[0, 2],默认值0,具体含义参见H.264协议。

【注意事项】

【相关数据类型及接口】

  • ss_mpi_venc_get_h264_poc

  • ss_mpi_venc_set_h264_poc

ot_venc_jpeg_dering_level

【说明】

定义JPEG编码通道的强边去Ring效应强度等级。

【定义】

typedef enum {
    OT_VENC_JPEG_DERING_LEVEL_0 = 0,
    OT_VENC_JPEG_DERING_LEVEL_1,
    OT_VENC_JPEG_DERING_LEVEL_2,
    OT_VENC_JPEG_DERING_LEVEL_3,
    OT_VENC_JPEG_DERING_LEVEL_BUTT,
} ot_venc_jpeg_dering_level;

【成员】

成员名称

描述

OT_VENC_JPEG_DERING_LEVEL_0

不调用ss_mpi_venc_set_jpeg_dering_level接口对去Ring效应强度等级设置下的默认值

OT_VENC_JPEG_DERING_LEVEL_1

相比dering_level=0增加较弱的去Ring效应,相比dering_level=1增加清晰度较多

OT_VENC_JPEG_DERING_LEVEL_2

相比dering_level=0增加中等的去Ring效应,相比dering_level=1增加清晰度中等

OT_VENC_JPEG_DERING_LEVEL_3

相比dering_level=0增加较强的去Ring效应,相比dering_level=1增加清晰度较少

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_jpeg_dering_level

  • ss_mpi_venc_get_jpeg_dering_level

ot_venc_deblur_far_bg

【说明】

定义运动物体远区域的拖尾和残留区域检测参数结构体。

【定义】

typedef struct {
    td_u8 qp_delta;
    td_u8 min_qp;
    td_u8 max_qp;
} ot_venc_deblur_far_bg;

【成员】

成员名称

描述

qp_delta

对检测为离运动物体较远的拖尾与残留区域的块级QP的下调值。

取值:[0, 15]

默认值:4

min_qp

检测为离运动物体较远的拖尾与残留区域的块级QP的最终最小值(当前区域具有最高优先级,包括其它块级QP调整)。

取值:[0, 51]

默认值:0

max_qp

检测为离运动物体较远的拖尾与残留区域的块级QP的最终最大值(当前区域具有最高优先级,包括其它块级QP调整)。

取值:[0, 51]

默认值:51

【注意事项】

qp_delta的调节建议范围为【0,3】之间,调节过大对帧级码控的平稳性产生影响,产生主观图像质量的副作用。

【相关数据类型及接口】

ot_venc_adv_deblur

ot_venc_deblur_near_bg

【说明】

定义运动物体近区域拖尾和残留区域检测参数结构体。

【定义】

typedef struct {
    td_u8 gain;
    td_u8 offset;
    td_u8 qp_delta;
    td_u8 min_qp;
    td_u8 max_qp;
} ot_venc_deblur_near_bg;

【成员】

成员名称

描述

gain

检测为离运动物体较近的拖尾与残留区域的阈值调整参数,域值越小,越倾向于检测为拖尾与残留near区域

取值:[0, 15]

默认值:8

offset

检测为离运动物体较近的拖尾与残留区域的阈值调整参数,域值越小,越倾向于检测为拖尾与残留near区域

取值:[0, 255]

默认值:8

qp_delta

对检测为离运动物体较近的拖尾与残留区域的块级QP的下调值

取值:[0, 15]

默认值:1

min_qp

检测为离运动物体较近的拖尾与残留区域的块级QP的最终最小值(该最小值对比其他码控在当前区域的最小值具有最高优先级)

取值:[0, 51]

默认值:0

max_qp

检测为离运动物体较近的拖尾与残留区域的块级QP的最终最大值(该最大值对比其他码控在当前区域的最大值具有最高优先级)

取值:[0, 51]

默认值:51

【注意事项】

qp_delta的调节建议范围为【0,2】之间,调节过大对帧级码控的平稳性产生影响,产生主观图像质量的副作用。

【相关数据类型及接口】

ot_venc_adv_deblur

ot_venc_adv_deblur

【说明】

定义运动物体拖尾和残留区域检测信息结构体

【定义】

typedef struct {
    td_bool near_bg_en;
    td_bool far_bg_en;
    ot_venc_deblur_near_bg near_bg;
    ot_venc_deblur_far_bg far_bg;
    } ot_venc_adv_deblur;

【成员】

成员名称

描述

near_bg_en

离运动物体较近的拖尾与残留区域的检测使能信号:0关闭;1使能。

取值:[0, 1]

默认值:0

far_bg_en

离运动物体较远的拖尾与残留区域的检测使能信号:0关闭;1使能。

取值:[0, 1]

默认值:0

near_bg

定义运动物体近区域拖尾和残留区域检测信息

far_bg

定义运动物体远区域拖尾和残留区域检测信息

【注意事项】

  • near_bg_en使能需要打开ot_venc_deblur_param中的deblur_en和关闭deblur_adaptive_en.

  • far_bg_en使能需要打开ot_venc_deblur_param中的deblur_en和关闭deblur_adaptive_en.

【相关数据类型及接口】

  • ss_mpi_venc_set_adv_deblur

  • ss_mpi_venc_get_adv_deblur

ot_venc_jpeg_roi_adv_attr

【说明】

JPEG和MJPEG定义编码感兴趣区域高级属性信息。

【定义】

typedef struct {
    td_u32 idx;
    td_bool enable;
    td_u32 fg_level;
    td_u32 bg_level;
    td_rect rect;
} ot_venc_jpeg_roi_adv_attr;

【成员】

成员名称

描述

idx

ROI的索引,系统支持的索引范围为[0,15],不支持超出这个范围的索引。

enable

是否使能这个ROI。

fg_level

ROI区域降码率等级,0~15依次提高,数值越大码率降低相对越多,图像质量损失也相对越多。

推荐值:0

bg_level

非ROI区域降码率等级,0~15依次提高,数值越大码率降低相对越多,图像质量损失也相对越多。

推荐值:8

rect

ROI区域。x、y、width、height必须是16对齐。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_venc_set_jpeg_roi_adv_attr

  • ss_mpi_venc_get_jpeg_roi_adv_attr

错误码

视频编码API错误码如下所示。

表 1 视频编码API错误码

错误代码

宏定义

描述

0xa0088003

OT_ERR_VENC_INVALID_CHN_ID

通道ID超出合法范围

0xa0088007

OT_ERR_VENC_ILLEGAL_PARAM

参数超出合法范围

0xa0088008

OT_ERR_VENC_EXIST

试图申请或者创建已经存在的设备、通道或者资源

0xa0088009

OT_ERR_VENC_UNEXIST

试图使用或者销毁不存在的设备、通道或者资源

0xa008800a

OT_ERR_VENC_NULL_PTR

函数参数中有空指针

0xa008800b

OT_ERR_VENC_NOT_CFG

使用前未配置

0xa008800c

OT_ERR_VENC_NOT_SUPPORT

不支持的参数或者功能

0xa008800d

OT_ERR_VENC_NOT_PERM

该操作不允许如试图修改静态配置参数

0xa0088014

OT_ERR_VENC_NO_MEM

分配内存失败,如系统内存不足

0xa0088015

OT_ERR_VENC_NO_BUF

分配缓存失败,如申请的数据缓冲区太大

0xa0088016

OT_ERR_VENC_BUF_EMPTY

缓冲区中无数据

0xa0088017

OT_ERR_VENC_BUF_FULL

缓冲区中数据满

0xa0088018

OT_ERR_VENC_SYS_NOT_READY

系统没有初始化或没有加载相应模块

0xa0088022

OT_ERR_VENC_BUSY

VENC系统忙

0xa0088023

OT_ERR_VENC_SIZE_NOT_ENOUGH

buffer大小不足