数据类型¶
相关数据类型、数据结构定义如下:
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_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_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_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值。 |
【注意事项】
无。
【相关数据类型及接口】
ss_mpi_venc_get_stream
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 |
码流高级特征信息。 |
【注意事项】
无。
【相关数据类型及接口】
ss_mpi_venc_get_stream
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时,可能会对以下功能有影响, 且该值越小理论上出现的概率越高:
P帧刷I slice可能会出现整帧刷成I块且提前结束刷I slice,涉及接口:ss_mpi_venc_set_intra_refresh;
去呼吸效应在某些帧上可能会失效,涉及接口:ss_mpi_venc_set_debreath_effect;
QPMAP表不能强制指定skip块,SkipWeight表不能强制指定skip块,强制指定skip块可能会导致系统异常,驱动内部不做检查,用户自行保证;
ROI背景低帧率编码可能会出现部分帧的非ROI区域不能编码为p_skip块,涉及接口:ss_mpi_venc_set_roi_bg_frame_rate;
某些场景指定为p_skip帧的情况下可能会失效,如编码瞬时码率超过阈值时丢帧策略,涉及接口:ss_mpi_venc_set_frame_lost_strategy;
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时,可能会对以下功能有影响, 且该值越小理论上出现的概率越高:
P帧刷I slice可能会出现整帧刷成I块且提前结束刷I slice,涉及接口:ss_mpi_venc_set_intra_refresh;
去呼吸效应在某些帧上可能会失效,涉及接口:ss_mpi_venc_set_debreath_effect;
QPMAP表不能强制指定skip块,SkipWeight表不能强制指定skip块,强制指定skip块可能会导致系统异常,驱动内部不做检查,用户自行保证;
ROI背景低帧率编码可能会出现部分帧的非ROI区域不能编码为p_skip块,涉及接口:ss_mpi_venc_set_roi_bg_frame_rate;
某些场景指定为p_skip帧的情况下可能会失效,如编码瞬时码率超过阈值时丢帧策略,涉及接口:ss_mpi_venc_set_frame_lost_strategy;
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_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_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}。
静态属性。 |
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¶
【说明】
定义编码通道的状态结构体。
【定义】
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 |
帧内预测的变换模式:
系统根据通道协议类型默认TransMode的选择。 |
inter_trans_mode |
帧间预测的变换模式:
系统根据通道协议类型默认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帧熵编码模式。
>=2没有意义。 Baseline不支持cabac。 |
entropy_coding_mode_p |
P帧熵编码模式。
>=2没有意义。 Baseline不支持cabac。 |
entropy_coding_mode_b |
B帧熵编码模式。
>=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_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_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模式。
|
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¶
【说明】
定义编码通道感兴趣区域编码高级属性。
【定义】
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模式。
|
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_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模式下CU32、CU64 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模式下CU32、CU64 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¶
【说明】
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_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_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_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_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_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_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¶
【说明】
定义运动物体拖尾和残留区域检测信息结构体
【定义】
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大小不足 |