前言¶
概述
本文为使用MCF开发的程序员而写,目的是为您在开发过程中遇到的问题提供解决办法和帮助。
说明: 本文以SS928V100描述为例,未有特殊说明,SS927V100与SS928V100内容一致。
产品版本
与本文档相对应的产品版本如下。
产品名称 |
产品版本 |
|---|---|
SS928 |
V100 |
SS927 |
V100 |
读者对象
本文档(本指南)主要适用于以下工程师:
技术支持工程师
软件开发工程师
符号约定
在本文中可能出现下列标志,它们所代表的含义如下。
符号 |
说明 |
|---|---|
|
表示如不避免则将会导致死亡或严重伤害的具有高等级风险的危害。 |
|
表示如不避免则可能导致死亡或严重伤害的具有中等级风险的危害。 |
|
表示如不避免则可能导致轻微或中度伤害的具有低等级风险的危害。 |
|
用于传递设备或环境安全警示信息。如不避免则可能会导致设备损坏、数据丢失、设备性能降低或其它不可预知的结果。 “须知”不涉及人身伤害。 |
|
对正文中重点信息的补充说明。 “说明”不是安全警示信息,不涉及人身、设备及环境伤害信息。 |
修订记录
修订记录累积了每次文档更新的说明。最新版本的文档包含以前所有文档版本的更新内容。
文档版本 |
发布日期 |
修改说明 |
|---|---|---|
00B01 |
2025-09-15 |
第1次临时版本发布。 |
概述¶
在低照度场景下,RGB Sensor捕获的图像往往信噪比非常差,细节丢失严重。基于RGB + Mono双Sensor的新型结构,RGB Sensor获取的可见光图像充分保留了颜色信息,而Mono Sensor配合红外补光技术,获取的红外图像有相对较高的信噪比,且细节表现较好。
黑白彩色双路融合技术(简称MCF技术,即Mono-Color-Fusion技术)用于融合上述可见光图像和红外图像,既保留颜色信息,同时充分提升图像的细节表现和信噪比,从而提高低照度场景下的图像质量。
功能描述¶
基本概念¶
MCF
MCF为Mono-Color-Fusion的简称,即黑白彩色融合技术。
GROUP
MCF对用户提供组(GROUP)的概念。最大可用数为OT_MCF_MAX_GRP_NUM个,各GROUP分时复用MCF硬件。每个MCF GROUP包含多个PIPE和多个通道。
PIPE
MCF组的PIPE。用于输入黑白彩色双路源图像。PIPE的数目即融合路数,为OT_MCF_PIPE_NUM。用户可以通过系统绑定和前端相连或者发送图像到PIPE中融合处理。
CHN
MCF组的通道。通道分为2种:物理通道和扩展通道。MCF硬件提供多个物理通道,每个通道具有缩放、裁剪等功能。扩展通道具备裁剪、缩放功能,它通过绑定物理通道,将物理通道输出作为自己的输入,把图像裁剪、缩放成用户设置的目标分辨率输出。
FRC
帧率控制,分为2种:组帧率控制和通道帧率控制。
组帧率控制:用于控制各GROUP对输入图像的接收。
通道帧率控制:用于控制各个物理通道和扩展通道图像的处理。
CROP
裁剪,分为3种:组裁剪、物理通道裁剪以及扩展通道裁剪。
组裁剪,MCF对输入图像进行裁剪。
物理通道裁剪,MCF对各个物理通道的输出图像进行裁剪。
扩展通道裁剪,MCF调用VGS对扩展通道的输出图像进行裁剪。
Scale
缩放,对图像进行缩小放大。缩放倍数指水平、垂直各缩放多少倍。
Mirror/Flip
Mirror即水平镜像,Flip即上下翻转。可使用Mirror+Flip实现180°旋转。
Mosaic
马赛克,对MCF输出图像在指定区域填充马赛克块。
MosaicEx
马赛克,调用VGS对MCF物理通道的输出图像指定区域填充马赛克块。
Cover
视频遮挡区域,对MCF的输出图像填充纯色块。
遮挡区域坐标类型分为绝对坐标遮挡和相对坐标比例遮挡。
Coverex
视频遮挡区域,调用VGS对MCF通道的输出图像填充纯色块。
遮挡区域坐标类型分为绝对坐标遮挡和相对坐标比例遮挡。相对坐标的计算是相对原图,不是通道图像,效果与Cover相对坐标等同。
OverlayEx
视频叠加区域,调用VGS对MCF通道的输出图像叠加位图。
Line
调用VGS对MCF物理通道的输出图像画线。
压缩
MCF支持linear格式的SEG压缩。
解压
MCF支持linear格式-SEG解压。
低延时
输出低延时,通道向后端模块发送低延时帧,MCF支持VI开启低延时。
功能描述¶
MCF在系统中位置如图1所示。
图 1 MCF上下文关系

通过调用SYS模块的绑定接口,可与VI和VO/VENC/SVP等模块进行绑定,其中前者为MCF的输入源,后者为MCF的接收者。用户可通过MPI接口对GROUP进行管理。
处理流程¶
图 1 MCF场景数据流图

说明:
图示仅说明数据流关系图,不是绑定关系图。
MCF前面的2个VPSS,用作MCF预处理。在VPSS性能不够时,可以设置VPSS组号为VGS组,使用VGS做预处理。
MCF融合时,需要2帧数据pts接近。推荐使用从模式sensor。
MCF融合场景,VI和VPSS必须离线。
图 2 MCF内部处理流程图

说明: SS928V100 MCF支持8个扩展通道,图中仅画一个。扩展通道可以绑定到任意物理通道,图中仅示意性绑定到一个物理通道。
输入输出特性¶
输入像素格式仅包含OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、OT_PIXEL_FORMAT_YUV_400和OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420。
输出像素格式仅OT_PIXEL_FORMAT_YVU_SEMIPLANAR_422、OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、OT_PIXEL_FORMAT_YUV_400、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_422和OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420。
表 1 MCF输入特性
方案 |
数据位宽 |
视频格式 |
输入像素格式 |
|
|---|---|---|---|---|
8Bit |
Linear |
Tile64X16 |
||
SS928V100 |
Y |
Y |
N |
OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420、OT_PIXEL_FORMAT_YUV_400 |
表 2 MCF输入解压特性
方案 |
解压缩模式 |
||
|---|---|---|---|
SEG |
SEG_COMPACT |
TILE |
|
SS928V100 |
Y |
Y |
N |
表 3 MCF输入分辨率
方案 |
分辨率 |
|---|---|
SS928V100 |
宽[256, 8192] 高[256, 4096] 紧凑段压缩(SEG_COMPACT): 宽[256, 4096] 高[256, 4096] |
表 4 MCF物理通道输出格式特性
方案 |
数据位宽 |
视频格式 |
输出像素格式 |
||
|---|---|---|---|---|---|
8Bit |
Linear |
Tile64x16 |
Tile16x8 |
||
SS928V100 |
Y |
Y |
N |
N |
OT_PIXEL_FORMAT_YVU_SEMIPLANAR_422、OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_422、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420、OT_PIXEL_FORMAT_YUV_400 |
表 5 MCF物理通道输出压缩特性
方案 |
压缩输出模式 |
|||
|---|---|---|---|---|
SEG |
SEG_COMPACT |
LINE |
TILE |
|
SS928V100 |
仅通道0支持 |
仅通道0支持 |
不支持 |
不支持 |
表 6 MCF物理通道输出分辨率
方案 |
分辨率 |
|---|---|
SS928V100 |
宽[128, 16384] 高[64, 8192] |
表 7 MCF物理通道压缩输出时功能限制
压缩类型 |
功能 |
||||
|---|---|---|---|---|---|
Coverex/Mosaicex/Overlayex/Corner_rectEx |
Line |
Mirror/Flip |
旋转(90,270) |
亮度和统计 |
|
紧凑段压缩(SEG_COMPACT) |
不支持 |
不支持 |
支持 |
不支持 |
支持 |
非紧凑段压缩(SEG) |
支持 |
支持 |
支持 |
不支持 |
支持 |
TILE压缩 |
不支持 |
不支持 |
不支持 |
不支持 |
不支持 |
表 8 MCF扩展通道输出格式特性
方案 |
数据位宽 |
视频格式 |
输出像素格式 |
|||
|---|---|---|---|---|---|---|
8Bit |
10Bit |
Linear |
Tile64x16 |
Tile16x8 |
||
SS928V100 |
Y |
N |
Y |
N |
N |
OT_PIXEL_FORMAT_YVU_SEMIPLANAR_422、OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_422、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420、OT_PIXEL_FORMAT_YUV_400 |
表 9 MCF扩展通道输出压缩特性
方案 |
压缩输出模式 |
|||
|---|---|---|---|---|
SEG |
SEG_COMPACT |
LINE |
TILE |
|
SS928V100 |
支持 |
支持 |
不支持 |
不支持 |
表 10 MCF扩展通道输出分辨率
方案 |
分辨率 |
|---|---|
SS928V100 |
宽[64, 16384] 高[64, 8192] |
须知: SS928V100 MCF输入图像宽度大于4096时不支持紧凑段压缩输入/输出,输出宽度大于4096时不支持紧凑段压缩输出。
API参考¶
该功能模块为用户提供以下MPI:
ss_mpi_mcf_create_grp:创建一个MCF GROUP。
ss_mpi_mcf_destroy_grp:销毁一个MCF GROUP。
ss_mpi_mcf_reset_grp:复位MCF GROUP。
ss_mpi_mcf_start_grp:启用MCF GROUP。
ss_mpi_mcf_stop_grp:禁用MCF GROUP。
ss_mpi_mcf_set_grp_attr:设置MCF GROUP属性。
ss_mpi_mcf_get_grp_attr:获取MCF GROUP属性。
ss_mpi_mcf_set_alg_param:设置MCF算法参数。
ss_mpi_mcf_get_alg_param:获取MCF算法参数。
ss_mpi_mcf_set_grp_crop:设置MCF组CROP功能属性,用来裁剪MCF融合后产生的黑边。
ss_mpi_mcf_get_grp_crop:获取MCF组CROP功能属性。
ss_mpi_mcf_send_pipe_frame:用户向MCFpipe发送数据。
ss_mpi_mcf_set_chn_attr:设置MCF通道属性。
ss_mpi_mcf_get_chn_attr:获取MCF通道属性。
ss_mpi_mcf_enable_chn:启用MCF通道。
ss_mpi_mcf_disable_chn:禁用MCF通道。
ss_mpi_mcf_get_chn_frame:获取MCF通道帧数据。
ss_mpi_mcf_release_chn_frame:释放 MCF通道帧数据。
ss_mpi_mcf_set_low_delay_attr:设置低延迟输出属性。
ss_mpi_mcf_get_low_delay_attr:获取低延迟输出属性。
ss_mpi_mcf_attach_vb_pool:将MCF绑定到某个视频缓存VB池中。
ss_mpi_mcf_detach_vb_pool:将MCF的通道从某个视频缓存VB池中解绑定。
ss_mpi_mcf_set_chn_align:设置MCF通道输出YUV数据的行stride对齐。
ss_mpi_mcf_get_chn_align:获取MCF通道输出YUV数据的行stride对齐。
ss_mpi_mcf_set_chn_rotation:设置MCF通道图像固定角度旋转属性。
ss_mpi_mcf_get_chn_rotation:获取MCF通道图像固定角度旋转属性。
ss_mpi_mcf_set_ext_chn_attr:设置MCF GROUP扩展通道属性。
ss_mpi_mcf_get_ext_chn_attr:获取MCF GROUP扩展通道属性。
ss_mpi_mcf_set_chn_crop:设置MCF通道裁剪功能属性。
ss_mpi_mcf_get_chn_crop:获取MCF通道裁剪功能属性。
ss_mpi_mcf_get_chn_rgn_luma:获取指定图像区域的亮度总和。
ss_mpi_mcf_get_chn_fd:获取MCF通道对应的设备文件句柄。
ss_mpi_mcf_close_fd:关闭获取的文件句柄。
ss_mpi_mcf_calibration:标定参数接口。
ss_mpi_mcf_set_vi_attr:设置MCF场景下VI属性。
ss_mpi_mcf_get_vi_attr:获取MCF场景下VI属性。
ss_mpi_mcf_create_grp¶
【描述】
创建一个MCF GROUP。
【语法】
td_s32 ss_mpi_mcf_create_grp(ot_mcf_grp grp, const ot_mcf_grp_attr *grp_attr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
grp_attr |
MCF GROUP属性指针。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
组不支持重复创建。
目前仅支持相同幅形比的黑白图像与彩色图像进行融合,如16:9或者4:3。
黑白和彩色两路Sensor建议使用slave模式,当是主模式sensor时,两路Sensor的时序有时间差,目前当大于25ms时无法进行融合,丢掉偏差较大的那帧图,保证时间差最短的黑白、彩色各一帧图进行融合。
mcf 组输入的2个pipe 宽高可以不一样。但是2个pipe的输入图像的幅形比必须一致。mcf 组输出图像分辨率与2个pipe中大的一路图像分辨率一致。
【举例】
无
【相关主题】
ss_mpi_mcf_destroy_grp¶
【描述】
销毁一个MCF GROUP。
【语法】
td_s32 ss_mpi_mcf_destroy_grp(ot_mcf_grp grp);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已经创建,如果销毁一个没有创建的组,返回成功。
调用此接口时,会一直等待此GROUP当前任务处理结束才会真正销毁。
destroy组之前,需先stop组。
【举例】
无
【相关主题】
ss_mpi_mcf_reset_grp¶
【描述】
复位MCF GROUP。
【语法】
td_s32 ss_mpi_mcf_reset_grp(ot_mcf_grp grp);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
【举例】
请参见ss_mpi_mcf_create_grp。
【相关主题】
无
ss_mpi_mcf_start_grp¶
【描述】
启用MCF GROUP。
【语法】
td_s32 ss_mpi_mcf_start_grp(ot_mcf_grp grp);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已经创建。
重复调用该函数启用同一个GROUP返回成功。
【举例】
无
【相关主题】
ss_mpi_mcf_stop_grp¶
【描述】
禁用MCF GROUP。
【语法】
td_s32 ss_mpi_mcf_stop_grp(ot_mcf_grp grp);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已经创建,并且GROUP已经启动。
重复调用该函数禁用同一个GROUP返回成功。
结束成功后,再次调用ss_mpi_mcf_start_grp接口可返回成功。
【举例】
无
【相关主题】
ss_mpi_mcf_set_grp_attr¶
【描述】
设置MCF GROUP属性。
【语法】
td_s32 ss_mpi_mcf_set_grp_attr(ot_mcf_grp grp, const ot_mcf_grp_attr* grp_attr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
grp_attr |
MCF GROUP属性指针。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已经创建。
因MCF组属性的静态属性,不支持修改。仅frame_rate, mcf_path和depth信息不是静态属性,可修改。
GROUP属性必须合法,具体请参见ot_mcf_grp_attr。
【举例】
无
【相关主题】
ss_mpi_mcf_get_grp_attr¶
【描述】
获取MCF GROUP属性。
【语法】
td_s32 ss_mpi_mcf_get_grp_attr(ot_mcf_grp grp, ot_mcf_grp_attr* grp_attr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
grp_attr |
MCF GROUP属性指针。 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已经创建。
GROUP必须已设置属性,若未设置则返回默认属性,默认属性在创建时设置。
【举例】
无
【相关主题】
ss_mpi_mcf_set_alg_param¶
【描述】
设置MCF算法参数。
【语法】
td_s32 ss_mpi_mcf_set_alg_param(ot_mcf_grp grp, const ot_mcf_alg_param *alg_param);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
alg_param |
MCF 算法参数指针。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已经创建。
创建MCF组时,会配置默认alg_param,当需要调试效果时,可调用本接口进行调试。
算法参数调节可参考《黑白彩色双路融合 调试指南》
【举例】
无
【相关主题】
ss_mpi_mcf_get_alg_param¶
【描述】
获取MCF算法参数。
【语法】
td_s32 ss_mpi_mcf_get_alg_param(ot_mcf_grp grp, ot_mcf_alg_param *alg_param);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
alg_param |
MCF 算法参数指针。 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已经创建。
【举例】
无
【相关主题】
ss_mpi_mcf_set_grp_crop¶
【描述】
设置MCF 组CROP功能属性,用来裁剪MCF融合后产生的黑边。
【语法】
td_s32 ss_mpi_mcf_set_grp_crop(ot_mcf_grp grp, const ot_crop_info *crop_info);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
crop_info |
CROP功能参数。 具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已经创建。
裁剪图像在图像内。
crop_info需保持2像素对齐。
【举例】
无
【相关主题】
ss_mpi_mcf_get_grp_crop¶
【描述】
获取MCF组CROP功能属性。
【语法】
td_s32 ss_mpi_mcf_get_grp_crop(ot_mcf_grp grp, ot_crop_info *crop_info);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
crop_info |
CROP功能参数。 具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已经创建。
【举例】
无
【相关主题】
ss_mpi_mcf_send_pipe_frame¶
【描述】
用户向MCFpipe 发送数据。
【语法】
td_s32 ss_mpi_mcf_send_pipe_frame(ot_mcf_grp grp, ot_mcf_pipe mcf_pipe, const ot_video_frame_info *video_frame, td_s32 milli_sec);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
mcf_pipe |
MCF PIPE号。 取值范围:[0, OT_MCF_PIPE_NUM) |
输入 |
video_frame |
待发送的图像信息。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输入 |
milli_sec |
超时参数milli_sec设为-1时,为阻塞接口;0时为非阻塞接口;大于0时为超时等待时间,超时时间的单位为毫秒(ms)。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
用户使用此接口时,可以自行进行帧率控制。
【举例】
无
【相关主题】
无
ss_mpi_mcf_set_chn_attr¶
【描述】
设置MCF通道属性。
【语法】
td_s32 ss_mpi_mcf_set_chn_attr(ot_mcf_grp grp, ot_mcf_chn chn, const ot_mcf_chn_attr *chn_attr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 通道号。 取值范围:[0, OT_MCF_MAX_PHYS_CHN_NUM) |
输入 |
chn_attr |
MCF 通道属性。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
扩展通道不支持此接口。
【举例】
无
【相关主题】
无
ss_mpi_mcf_get_chn_attr¶
【描述】
获取MCF通道属性。
【语法】
td_s32 ss_mpi_mcf_get_chn_attr(ot_mcf_grp grp, ot_mcf_chn chn, ot_mcf_chn_attr *chn_attr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 通道号。 取值范围:[0, OT_MCF_MAX_PHYS_CHN_NUM) |
输入 |
chn_attr |
MCF 通道属性。 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
扩展通道不支持此接口。
【举例】
无
【相关主题】
无
ss_mpi_mcf_enable_chn¶
【描述】
启用MCF通道
【语法】
td_s32 ss_mpi_mcf_enable_chn(ot_mcf_grp grp, ot_mcf_chn chn);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 通道号。 取值范围:[0, OT_MCF_MAX_CHN_NUM) |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
多次启用通道返回成功。
【举例】
无
【相关主题】
无
ss_mpi_mcf_disable_chn¶
【描述】
禁用MCF通道。
【语法】
td_s32 ss_mpi_mcf_disable_chn(ot_mcf_grp grp, ot_mcf_chn chn);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 通道号。 取值范围:[0, OT_MCF_MAX_CHN_NUM) |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建并启动。
重复禁用通道返回成功。
【举例】
无
【相关主题】
无
ss_mpi_mcf_get_chn_frame¶
【描述】
获取MCF通道图像数据
【语法】
td_s32 ss_mpi_mcf_get_chn_frame(ot_mcf_grp grp, ot_mcf_chn chn, ot_video_frame_info *video_frame, td_s32 milli_sec);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 通道号。 取值范围:[0, OT_MCF_MAX_CHN_NUM) |
输入 |
video_frame |
图像信息。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输出 |
milli_sec |
超时时间。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
该接口适用于MCF所有通道,包括物理通道与扩展通道。
该接口只在融合路输出时支持。
只有队列深度不为0,才能获取到图像。
调用该接口获取图像,不会对后端绑定的模块有影响。如后端绑定VO显示,可以在显示过程中获取图像,VO仍正常显示,不会受到影响。
当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。
【举例】
无
【相关主题】
无
ss_mpi_mcf_release_chn_frame¶
【描述】
用户释放一帧通道图像
【语法】
td_s32 ss_mpi_mcf_release_chn_frame (ot_mcf_grp grp, ot_mcf_chn chn, ot_video_frame_info *video_frame);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 通道号。 取值范围:[0, OT_MCF_MAX_CHN_NUM) |
输入 |
video_frame |
图像信息。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
此接口需与ss_mpi_mcf_get_chn_frame配对使用。
【举例】
无
【相关主题】
无
ss_mpi_mcf_set_low_delay_attr¶
【描述】
设置通道低延时属性。
【语法】
td_s32 ss_mpi_mcf_set_low_delay_attr(ot_mcf_grp grp, ot_mcf_chn chn, const ot_low_delay_info *low_delay_info);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 通道号。 取值范围:[0, OT_MCF_MAX_CHN_NUM) |
输入 |
low_delay_info |
低延时属性。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
设置低延时参数前必须先设置通道属性。
低延时不支持Flip。
低延时通道绑编码场景下,当有多个码流时,若设置编码通道优先级,此时低延时通道行数设置不能过小,建议设置128行以上,否则可能会引起非低延时通道阻塞不编码。
在低延时通道绑编码场景下,编码不支持软件抽场。在低延时单buffer绑定编码场景下,编码不支持去呼吸效应,不能开启重复编码的功能,包含增帧模式、超大帧重编码、码率波动导致的重编码,用户应把最大重编码次数设置为0。
开启通道低延时,图像不会进入通道用户队列,无法获取通道图像。
mcf物理通道扩展通道均不支持低延时onebuf。
mcf物理通道开启低延时,再开启固定角度旋转/MosaicEx/CoverEx/OverlayEx/Corner_rectEx/Line,会自适应关闭mcf物理通道低延时。
【举例】
无
【相关主题】
无
ss_mpi_mcf_get_low_delay_attr¶
【描述】
获取通道低延时属性。
【语法】
td_s32 ss_mpi_mcf_get_low_delay_attr(ot_mcf_grp grp, ot_mcf_chn chn, ot_low_delay_info *low_delay_info);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 通道号。 取值范围:[0, OT_MCF_MAX_CHN_NUM) |
输入 |
low_delay_info |
低延时属性。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
【举例】
无
【相关主题】
无
ss_mpi_mcf_attach_vb_pool¶
【描述】
将MCF绑定到某个视频缓存VB池中。
【语法】
td_s32 ss_mpi_mcf_attach_vb_pool(ot_mcf_grp grp, ot_mcf_chn chn, ot_vb_pool vb_pool);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 通道号。 取值范围:[0, OT_MCF_MAX_CHN_NUM) |
输入 |
vb_pool |
视频缓存VB池信息。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
必须保证组已创建。用户必须调用接口ss_mpi_vb_create_pool(具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。)创建一个视频缓存VB池,再通过调用接口ss_mpi_mcf_attach_vb_pool把当前组的通道绑定到固定PoolId的VB池中。支持多个组的多个通道绑定到同一个VB池中。
当要切换当前组绑定的VB池时,只需再调一次接口ss_mpi_mcf_attach_vb_pool正确配置需要绑定到的VB池即可。
pool必须保证是已创建VB池的有效pool_id。
在调用ss_mpi_mcf_detach_vb_pool后,销毁创建的VB之前,需要保证VB没有被MCF后端绑定的模块使用,可以通过sleep或清除后端模块通道缓存的方式先把VB都释放,再销毁缓存VB池。
User_VB大小根据MCF通道输出图像计算,具体计算公式参考ot_buffer.h。
绑定后,通道申请的VB均是从此VB池中获取,解绑后从公共VB池中获取。
【举例】
无
【相关主题】
无
ss_mpi_mcf_detach_vb_pool¶
【描述】
将MCF的通道从某个视频缓存VB池中解绑定
【语法】
td_s32 ss_mpi_mcf_detach_vb_pool(ot_mcf_grp grp, ot_mcf_chn mcf_chn);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 通道号。 取值范围:[0, OT_MCF_MAX_CHN_NUM) |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
【举例】
无
【相关主题】
无
ss_mpi_mcf_set_chn_align¶
【描述】
设置MCF通道输出YUV数据的行stride对齐。
【语法】
td_s32 ss_mpi_mcf_set_chn_align(ot_mcf_grp grp, ot_mcf_chn chn, td_u32 align);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 通道号。 取值范围:[0, OT_MCF_MAX_CHN_NUM) |
输入 |
align |
MCF通道输出YUV数据的行stride对齐,单位为Byte。 取值范围:[0, 1024] |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
align 为0时stride对齐使用自动模式,对齐要求跟随系统。
align 为非0时使用指定的stride对齐。
当align 小于芯片IP要求的stride对齐时,系统分配buffer和计算stride还是以芯片IP要求stride对齐为准。
当align不等于芯片要求的stride对齐倍数时,系统分配buffer和计算stride向上对齐到芯片要求stride对齐的倍数。例:align设置为48,芯片要求32对齐时,系统分配buffer和计算stride时使用64对齐。
【举例】
无
【相关主题】
ss_mpi_mcf_get_chn_align¶
【描述】
获取MCF通道输出YUV数据的行stride对齐。
【语法】
td_s32 ss_mpi_mcf_get_chn_align(ot_mcf_grp grp, ot_mcf_chn chn, td_u32 *align);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 通道号。 取值范围[0, OT_MCF_MAX_CHN_NUM) |
输入 |
align |
MCF通道输出YUV数据的行stride对齐,单位为Byte。 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
【举例】
无
【相关主题】
ss_mpi_mcf_set_chn_rotation¶
【描述】
设置MCF通道图像固定角度旋转属性。
【语法】
td_s32 ss_mpi_mcf_set_chn_rotation(ot_mcf_grp grp, ot_mcf_chn chn, const ot_rotation_attr *rotation_attr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 通道号 取值范围:[0, OT_MCF_MAX_PHYS_CHN_NUM) |
输入 |
rotation_attr |
旋转属性。结构体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
通道属性必须已设置。
仅物理通道支持。
仅支持YVU semi-planar 420,YUV semi-planar 420和单分量像素格式。
仅支持0度、90度、180度、270度的旋转,不支持任意角度旋转。
通道旋转不支持压缩写出。
【相关主题】
无
ss_mpi_mcf_get_chn_rotation¶
【描述】
获取MCF通道图像固定角度旋转属性。
【语法】
td_s32 ss_mpi_mcf_get_chn_rotation(ot_mcf_grp grp, ot_mcf_chn chn, ot_rotation_attr *rotation_attr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 通道号 取值范围:[0, OT_MCF_MAX_PHYS_CHN_NUM) |
输入 |
rotation_attr |
旋转属性。结构体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【相关主题】
无
ss_mpi_mcf_set_ext_chn_attr¶
【描述】
设置MCF GROUP扩展通道属性,扩展通道的主要应用是进行二次缩放和帧率控制。
【语法】
td_s32 ss_mpi_mcf_set_ext_chn_attr(ot_mcf_grp grp, ot_mcf_chn chn, const ot_mcf_ext_chn_attr *ext_chn_attr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 扩展通道号。 取值范围:[OT_MCF_MAX_PHYS_CHN_NUM, OT_MCF_MAX_CHN_NUM) |
输入 |
ext_chn_attr |
MCF扩展通道属性。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
扩展通道的输入绑定源必须为物理通道,宽、高需要满足2对齐,src_frame_rate必须大于等于dst_frame_rate,若都设置成-1,表示不进行帧率控制。
注意:src_frame_rate和dst_frame_rate具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节数据类型ot_frame_rate_ctrl的成员。
扩展通道以绑定的方式连接物理通道,每个扩展通道最多绑定一个物理通道。
多个扩展通道可以绑定到同一个物理通道。
【举例】
无
【相关主题】
ss_mpi_mcf_get_ext_chn_attr¶
【描述】
获取MCF GROUP扩展通道属性。
【语法】
td_s32 ss_mpi_mcf_get_ext_chn_attr(ot_mcf_grp grp, ot_mcf_chn chn, ot_mcf_ext_chn_attr *ext_chn_attr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF 扩展通道号。 取值范围[OT_MCF_MAX_PHYS_CHN_NUM, OT_MCF_MAX_CHN_NUM) |
输入 |
ext_chn_attr |
MCF扩展通道属性。 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
【举例】
无
【相关主题】
ss_mpi_mcf_set_chn_crop¶
【描述】
设置MCF通道裁剪功能属性。
【语法】
td_s32 ss_mpi_mcf_set_chn_crop(ot_mcf_grp grp, ot_mcf_chn chn, const ot_mcf_crop_info *crop_info);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF通道号。 取值范围:[0, OT_MCF_MAX_CHN_NUM) |
输入 |
crop_info |
CROP功能参数 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
通道使能后才可以设置裁剪功能。
物理通道先做缩放后做裁剪;扩展通道先做裁剪后做缩放。
物理通道裁剪最小分辨率128x64;扩展通道裁剪最小分辨率64x64。
裁剪计算出的坐标和宽高自动向下2像素对齐。
如果裁剪区域超出图像范围,丢弃超出部分图像,优先保证裁剪坐标与所设置的参数相同。
【举例】
无
【相关主题】
ss_mpi_mcf_get_chn_crop¶
【描述】
获取MCF通道裁剪功能属性。
【语法】
td_s32 ss_mpi_mcf_get_chn_crop(ot_mcf_grp grp, ot_mcf_chn chn, ot_mcf_crop_info *crop_info);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF通道号。 取值范围:[0, OT_MCF_MAX_CHN_NUM) |
输入 |
crop_info |
CROP功能参数。 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
【举例】
无
【相关主题】
ss_mpi_mcf_get_chn_rgn_luma¶
【描述】
获取指定图像区域的亮度总和。该接口主要用于对OSD区域进行亮度和统计,根据统计的亮度,进行反色处理,使OSD区域更加明显。
【语法】
td_s32 ss_mpi_mcf_get_chn_rgn_luma(ot_mcf_grp grp, ot_mcf_chn chn, td_u32 num, const ot_rect *rgn, td_u64 *luma_data, td_s32 milli_sec);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF物理通道号。 取值范围:[0, OT_MCF_MAX_PHYS_CHN_NUM) |
输入 |
num |
统计区域个数 |
输入 |
rgn |
统计区域的区域属性,即起始位置、宽、高。 |
输入 |
luma_data |
接收区域亮度和统计信息的内存指针,该内存大小应该大于或等于sizeof(td_u64)×num。 |
输出 |
milli_sec |
超时参数milli_sec设置:
大于0时为超时等待时间。超时时间的单位为毫秒(ms)。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建并且对应的通道已经使能。
统计区域的数量范围为[1, 64]。
统计区域坐标和宽高要求2像素对齐。
统计区域宽高最小为2x2,SS928V100统计区域宽高最大为8192x8192。
亮度和区域不得超出图像。
【举例】
无
【相关主题】
ss_mpi_mcf_get_chn_fd¶
【描述】
获取MCF通道对应的设备文件句柄。
【语法】
td_s32 ss_mpi_mcf_get_chn_fd(ot_mcf_grp grp, ot_mcf_chn chn);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
chn |
MCF通道号。 取值范围:[0, OT_MCF_MAX_CHN_NUM) |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
正数值 |
有效返回值。 |
非正数值 |
无效返回值。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
无
【举例】
无
【相关主题】
无
ss_mpi_mcf_close_fd¶
【描述】
关闭获取的文件句柄。
【语法】
td_s32 ss_mpi_mcf_close_fd(td_void);
【返回值】
返回值 |
描述 |
|---|---|
正数值 |
有效返回值。 |
非正数值 |
无效返回值。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
此接口不能与其他MPI接口同时调用,用户必须保证此接口与其他接口在时间上是串行调用的。
【举例】
无
【相关主题】
ss_mpi_mcf_get_grp_frame¶
【描述】
获取mcf组图像数据。
【语法】
td_s32 ss_mpi_mcf_get_grp_frame(ot_mcf_grp grp, ot_video_frame_info *color_frame, ot_video_frame_info *mono_frame, td_s32 milli_sec);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
color_frame |
彩色路图像信息。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输出 |
mono_frame |
黑白路图像信息。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输出 |
milli_sec |
超时时间 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
只有队列深度不为0,才能获取到图像。
该接口只在融合路输出时支持。
当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。
【举例】
无
【相关主题】
无
ss_mpi_mcf_release_grp_frame¶
【描述】
释放mcf组图像数据。
【语法】
td_s32 ss_mpi_mcf_release_grp_frame(ot_mcf_grp grp, ot_video_frame_info *color_frame, ot_video_frame_info *mono_frame);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
grp |
MCF GROUP 号。 取值范围:[0, OT_MCF_MAX_GRP_NUM) |
输入 |
color_frame |
彩色路图像信息。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输入 |
mono_frame |
黑白路图像信息。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf.h、ss_mpi_mcf.h
库文件:libss_mcf.a
【注意】
GROUP必须已创建。
此接口需与ss_mpi_mcf_get_grp_frame配对使用。
【举例】
无
【相关主题】
ss_mpi_mcf_calibration¶
【描述】
标定参数接口。
【语法】
td_s32 ss_mpi_mcf_calibration(const ot_video_frame *pic_in_match, const ot_video_frame *pic_in_refer, ot_mcf_calibration_mode mode, ot_mcf_feature_info *feature_info, ot_mcf_calibration *calibration_info);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
pic_in_match |
图像信息。实际中只使用亮度,并且使用虚拟地址进行读取图像。只能输入mono图像,标定结果以color路为准,参数应用于mono路。 具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输入 |
pic_in_refer |
图像信息。实际中只使用亮度,并且使用虚拟地址进行读取图像。输入color图像,与pic_in_match相反。 具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
输入 |
mode |
标定模式选择。 |
输入 |
feature_info |
输出参数,标定的特征点信息。 |
输出 |
calibration_info |
输出参数,包括矫正矩阵,以及矩形裁剪区域,用于配置MCF标定参数。 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_common_mcf_calibration.h、ot_mpi_mcf_calibration.h
库文件:libss_mcfcalibrate.a
【注意】
标定注意事项可参考《黑白彩色双路融合 调试指南》。
标定的两路输入图像宽高不能大于4096*2160,并且宽高和stride均相等。
标定要求输入图像的像素格式是YUV400、YUV420SP、YUV422SP、YUV420P、YUV422P。但MCF的功能通路mono的像素格式仅支持YUV400和YUV420SP,color通路仅支持YUV420SP。
标定要求输入图像不支持压缩模式。
标定要求输入图像的视频格式为线性模式。
标定过程所需系统内存参考下表。当输入分辨率大于2560x1440时,标定库内部会下采样一倍,因此该分辨率下所需内存最大。
分辨率
内存
1280x720
74M
1920x1080
165M
2560x1440
294M
标定的有效区域为图像顶部、底部、左侧、右侧剪裁宽度合围成的ROI区域,两路有效区域必须相等才能进行标定。默认全图做进行标定。
输入图像的宽高以及图像顶部、底部、左侧、右侧剪裁宽度必须8对齐。
【举例】
无
【相关主题】
无
ss_mpi_mcf_set_vi_attr¶
【描述】
设置MCF 场景下VI属性。
【语法】
td_s32 ss_mpi_mcf_set_vi_attr(ot_mcf_id mcf_id, const ot_mcf_vi_attr *mcf_vi_attr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
mcf_id |
MCF组号。 |
输入 |
mcf_vi_attr |
MCF VI属性。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_mpi_mcf_vi.h
库文件:libss_mcf_vi.a
【注意】
退出VI之前,需要调用此接口ot_mcf_vi_attr的enable设置为FALSE,关闭MCF场景下VI相关属性设置。
VB属性需要置为OT_VB_SUPPLEMENT_BNR_MOT_MASK,具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。
在VI送raw数据场景,在VI停止送raw数据之前,需要调用此接口ot_mcf_vi_attr的enable设置为FALSE。
将ot_mcf_vi_attr的enable设置为TRUE之后,表示开启MCF预处理功能,该功能建议默认开启,可以更好的优化低照下彩色图像的效果;开启时不建议调用mono_pipe通路的获取通道帧接口,会导致通路性能异常。
本接口在VPSS在线模式下不可用。
开启了防抖会影响MCF预处理效果,不建议防抖和MCF预处理功能同时使能。
开启压缩会影响MCF预处理效果,仅支持非压缩模式。
本接口不支持多进程使用。
ss_mpi_mcf_get_vi_attr¶
【描述】
获取MCF 场景下VI属性。
【语法】
td_s32 ss_mpi_mcf_get_vi_attr(ot_mcf_id mcf_id, ot_mcf_vi_attr *mcf_vi_attr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
mcf_id |
MCF组号。 |
输入 |
mcf_vi_attr |
MCF场景下的VI属性。 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见错误码。 |
【需求】
头文件:ot_mpi_mcf_vi.h
库文件:libss_mcf_vi.a
【注意】
本接口不支持多进程使用。
数据类型¶
MCF模块相关数据类型定义如下:
OT_MCF_MAX_GRP_NUM:定义MCF最大GROUP个数。
OT_MCF_PIPE_NUM:定义MCF PIPE个数。
OT_MCF_MAX_CHN_NUM:定义MCF最大通道个数。
OT_MCF_MAX_PHYS_CHN_NUM: 定义MCF最大物理通道个数。
OT_MCF_MAX_EXT_CHN_NUM: 定义MCF最大扩展通道个数。
OT_MCF_MAX_PIPE_WIDTH:定义MCF组的最大宽度。
OT_MCF_MAX_PIPE_HEIGHT:定义MCF组的最大高度。
OT_MCF_MIN_PIPE_WIDTH:定义MCF组的最小宽度。
OT_MCF_MIN_PIPE_HEIGHT:定义MCF组的最小高度。
OT_MCF_MAX_CHN_WIDTH:定义MCF物理通道的最大宽度。
OT_MCF_MAX_CHN_HEIGHT:定义MCF物理通道的最大高度。
OT_MCF_MIN_CHN_WIDTH:定义MCF物理通道的最小宽度。
OT_MCF_MIN_CHN_HEIGHT:定义MCF物理通道的最小高度。
OT_MCF_MAX_EXT_CHN_WIDTH:定义MCF扩展通道的最大宽度。
OT_MCF_MAX_EXT_CHN_HEIGHT:定义MCF扩展通道的最大高度。
OT_MCF_MIN_EXT_CHN_WIDTH:定义MCF扩展物理通道的最小宽度。
OT_MCF_MIN_EXT_CHN_HEIGHT:定义MCF扩展通道的最小高度。
OT_MCF_BIAS_LUT_NUM:定义MCF 算法参数BIAS lut表长度。
OT_MCF_WEIGHT_LUT_NUM:定义MCF 算法参数权重 lut表长度。
OT_MCF_CC_UV_GAIN_LUT_NUM:定义MCF 算法参数颜色校正 lut表长度。
OT_MCF_COEF_NUM:定义MCF 标定系数长度。
ot_mcf_grp:定义MCF GROUP类型。
ot_mcf_id:定义MCF ID类型。
ot_mcf_pipe:定义MCF PIPE类型。
ot_mcf_chn:定义MCF通道类型。
ot_mcf_crop_info:定义MCF crop属性。
ot_mcf_grp_attr:定义MCF GROUP属性。
ot_mcf_pipe_attr:定义MCF PIPE属性。
ot_mcf_chn_attr:定义MCF 通道属性。
ot_mcf_feature_info:定义MCF的标定返回的特征点信息。
ot_mcf_ext_chn_attr:定义MCF 扩展通道属性。
ot_mcf_calibration_mode:定义MCF标定模式。
ot_mcf_calibration:定义MCF的标定参数。
ot_mcf_hist_adj_mode:定义MCF亮度调整模式。
ot_mcf_fusion_alpha_mode:定义MCF融合模式。
ot_mcf_color_correct_cfg:定义MCF颜色校正参数。
ot_mcf_color_hf_proc_cfg:定义MCF可见光亮度高频处理参数。
ot_mcf_hist_adj_cfg:定义MCF直方图校正参数。
ot_mcf_fusion_global_alpha_mode_cfg:定义MCF全局融合参数。
ot_mcf_fusion_adaptive_alpha_mode_cfg:定义MCF自适应融合参数。
ot_mcf_filter_proc_cfg:定义MCF的滤波处理参数。
ot_mcf_detail_proc_cfg:定义MCF细节处理参数。
ot_mcf_base_proc_cfg:定义MCF融合参数。
ot_mcf_each_freq_proc_cfg:定义MCF各频段的处理参数。
ot_mcf_alg_param:MCF 算法参数。
ot_mcf_vi_attr:定义MCF VI属性。
ot_mcf_path:定义MCF输出通路。
OT_MCF_MAX_GRP_NUM¶
【说明】
定义MCF最大GROUP个数。
【定义】
#define OT_MCF_MAX_GRP_NUM 2
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_PIPE_NUM¶
【说明】
定义MCF PIPE个数。
【定义】
#define OT_MCF_PIPE_NUM 2
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_MAX_CHN_NUM¶
【说明】
定义MCF最大通道个数。
【定义】
#define OT_MCF_MAX_CHN_NUM (OT_MCF_MAX_PHYS_CHN_NUM + OT_MCF_MAX_EXT_CHN_NUM)
【注意事项】
MCF最大通道数为物理通道与扩展通道之和。
【相关数据类型及接口】
无
OT_MCF_MAX_PHYS_CHN_NUM¶
【说明】
定义MCF物理通道的最大个数。
【定义】
#define OT_MCF_MAX_PHYS_CHN_NUM 3
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_MAX_EXT_CHN_NUM¶
【说明】
定义MCF扩展通道的最大个数。
【定义】
#define OT_MCF_MAX_EXT_CHN_NUM 8
【注意事项】
数目根据方案设计和系统能力而定。
【相关数据类型及接口】
无
OT_MCF_MAX_PIPE_WIDTH¶
【说明】
定义MCF pipe最大宽度。
【定义】
#define OT_MCF_MAX_PIPE_WIDTH 8192
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_MAX_PIPE_HEIGHT¶
【说明】
定义MCF pipe的最大高度。
【定义】
#define OT_MCF_MAX_PIPE_HEIGHT 4096
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_MIN_PIPE_WIDTH¶
【说明】
定义MCF pipe的最小宽度。
【定义】
#define OT_MCF_MIN_PIPE_WIDTH 256
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_MIN_PIPE_HEIGHT¶
【说明】
定义MCF pipe组的最小高度。
【定义】
#define OT_MCF_MIN_PIPE_HEIGHT 256
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_MAX_CHN_WIDTH¶
【说明】
定义MCF物理通道的最大宽度。
【定义】
#define OT_MCF_MAX_CHN_WIDTH 16384
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_MAX_CHN_HEIGHT¶
【说明】
定义MCF物理通道的最大高度。
【定义】
#define OT_MCF_MAX_CHN_HEIGHT 8192
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_MIN_CHN_WIDTH¶
【说明】
定义MCF物理通道的最小宽度。
【定义】
#define OT_MCF_MIN_CHN_WIDTH 128
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_MIN_CHN_HEIGHT¶
【说明】
定义MCF通道的最小高度。
【定义】
#define OT_MCF_MIN_CHN_HEIGHT 64
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_MAX_EXT_CHN_WIDTH¶
【说明】
定义MCF扩展通道的最大宽度。
【定义】
#define OT_MCF_MAX_ EXT_CHN_WIDTH 16384
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_MAX_EXT_CHN_HEIGHT¶
【说明】
定义MCF扩展通道的最大高度。
【定义】
#define OT_MCF_MAX_ EXT_CHN_HEIGHT 8192
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_MIN_EXT_CHN_WIDTH¶
【说明】
定义MCF扩展物理通道的最小宽度。
【定义】
#define OT_MCF_MIN_ EXT_CHN_WIDTH 64
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_MIN_EXT_CHN_HEIGHT¶
【说明】
定义MCF扩展通道的最小高度。
【定义】
#define OT_MCF_MIN_ EXT_CHN_HEIGHT 64
【注意事项】
无
【相关数据类型及接口】
无
OT_MCF_BIAS_LUT_NUM¶
【说明】
定义MCF 算法参数BIAS lut表长度。
【定义】
#define OT_MCF_BIAS_LUT_NUM 9
【注意事项】
无
【相关数据类型及接口】
OT_MCF_WEIGHT_LUT_NUM¶
【说明】
定义MCF 算法参数权重 lut表长度。
【定义】
#define OT_MCF_WEIGHT_LUT_NUM 33
【注意事项】
无
【相关数据类型及接口】
OT_MCF_CC_UV_GAIN_LUT_NUM¶
【说明】
定义MCF 算法参数颜色校正 lut表长度。
【定义】
#define OT_MCF_CC_UV_GAIN_LUT_NUM 256
【注意事项】
无
【相关数据类型及接口】
OT_MCF_COEF_NUM¶
【说明】
定义MCF 标定系数长度。
【定义】
#define OT_MCF_COEF_NUM 9
【注意事项】
无
【相关数据类型及接口】
ot_mcf_grp¶
【说明】
定义MCF GROUP类型。
【定义】
typedef td_s32 ot_mcf_grp;
【注意事项】
无
【相关数据类型及接口】
无
ot_mcf_id¶
【说明】
定义MCF ID类型。
【定义】
typedef td_s32 ot_mcf_id;
【注意事项】
无
【相关数据类型及接口】
无
ot_mcf_pipe¶
【说明】
定义MCF PIPE类型。
【定义】
typedef td_s32 ot_mcf_pipe;
【注意事项】
无
【相关数据类型及接口】
无
ot_mcf_chn¶
【说明】
定义MCF通道类型。
【定义】
typedef td_s32 ot_mcf_chn;
【注意事项】
无
【相关数据类型及接口】
无
ot_mcf_crop_info¶
【说明】
定义MCF crop属性。
typedef struct {
td_bool enable;
ot_coord crop_mode;
ot_rect crop_rect;
} ot_mcf_crop_info;
【成员】
成员名称 |
描述 |
|---|---|
enable |
crop 使能。 |
crop_mode |
裁剪模式。 具体描述请参见《MPP媒体处理软件V5.0开发参考》 |
crop_rect |
裁剪坐标 具体描述请参见《MPP媒体处理软件V5.0开发参考》 |
【注意事项】
无
【相关数据类型及接口】
无
ot_mcf_grp_attr¶
【说明】
定义MCF GROUP属性。
【定义】
typedef struct {
td_bool sync_pipe;
ot_mcf_pipe_attr mono_pipe_attr;
ot_mcf_pipe_attr color_pipe_attr;
ot_frame_rate_ctrl frame_rate;
td_u32 depth;
ot_mcf_path mcf_path;
} ot_mcf_grp_attr;
【成员】
成员名称 |
描述 |
|---|---|
sync_pipe |
mono/color两路输入源是否需要进行同步。 |
mono_pipe_attr |
黑白pipe 属性。 |
color_pipe_attr |
彩色pipe 属性 具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
frame_rate |
帧率控制。 |
depth |
用户获取组图像的队列长度。 取值范围:[0, 8] |
mcf_path |
输出通道类型:
|
【注意事项】
当sync_pipe配置为FALSE时,则不会进行mono和color这两路图像的时间差值进行过滤,可能出现mono和color这两路图像的时间差较大的两帧图进行融合,当这两帧图在各自时间点的图像不一样时,进行MCF融合,图像效果会不好。
当sync_pipe配置为TRUE时,则不支持MCF模式切换成彩色路后销毁黑白路,切换成黑白路后销毁彩色路。
mono_pipe_attr中的pipe_id和color_pipe_attr的pipe_id 必须不一样。
mono_pipe_attr中的vpss_grp和color_pipe_attr的vpss_grp 必须不一样。
mono_pipe_attr中的 width、height 和 color_pipe_attr中的width、height 可以不一样,但是幅形比必须一致。mcf 组的图像宽高使用 mono_pipe_attr和color_pipe_attr 2组中数值大的一路。
当需要切换到MONO输出的时候, MONO路的VB分配方式需要跟COLOR路的分配方式一样,如果明确不会切换到MONO路输出, 只会在FUSION和COLOR两种输出通道切换,则无此要求。
若不指定depth,表示不需要系统为该MCF组缓存图像,故用户获取不到该组上的图像数据。系统默认不为组缓存图像,即depth默认为0。
若指定depth>0,系统将为该组缓存depth*2个图像,用户可通过接口ss_mpi_mcf_get_grp_frame获取该通道图像数据。具体分为以下几种情况:
用户一直不获取图像。
系统将自动更新最旧的图像数据,保证用户一旦开始获取,就可获取到最近最新的depth*2个连续图像。
用户连续获取depth次并一直不释放。
系统因获取不到VB而自动停止缓存新的图像,用户也不能获取新的图像。故建议用户保证获取和释放接口配对使用。
用户获取/释放的速度比MCF组产生图像的速度慢。
系统将自动更新用户仍未获取的最旧的图像数据,保证缓存的图像队列为最近的新图像。由于用户不能保证获取速度,导致获取的可能不是连续图像。
系统为MCF组缓存的depth*2个图像数据,占用MPP内部的缓存块(简称VB)。故用户应通过接口ss_mpi_vb_set_cfg 置足够的VB,否则可能由于系统缓存图像占用过多VB,从而影响MCF的正常运行。支持动态调整depth。如用户在不需要获取该MCF组数据时,可设置depth为0,以减少占用内部VB的数量;在需要获取时,再设置depth为合适的值,即可获取到设置时刻后的连续图像。组上的图像有黑白和彩色两路,所以占用的VB内存是depth*2。
SS927V100所有的组通道的输入总面积最大为2688x1520x2,SS928V100无此限制。
【相关数据类型及接口】
ot_mcf_pipe_attr¶
【说明】
定义MCF PIPE属性。
【定义】
typedef struct {
ot_mcf_pipe pipe_id;
ot_vpss_grp vpss_grp;
td_u32 width;
td_u32 height;
} ot_mcf_pipe_attr;
【成员】
成员名称 |
描述 |
|---|---|
pipe_id |
pipe_id: mcf pipe 号,取值范围: [0, 1]。 |
vpss_grp |
mcf pipe对应的vpss 组号。 具体描述请参见《MPP媒体处理软件V5.0开发参考》“视频处理子系统”章节。 |
width |
pipe 输入图像的宽度,输入宽度需要8对齐。 |
height |
pipe 输入图像的高度,输入高度需要8对齐。 |
【注意事项】
彩色路和黑白路输入的图像的幅形比必须一致。
VPSS的组号设置为[0, 99],使用vpss做预处理,VPSS组号设置为[100, 127]时,使用VGS做预处理。如果需要在MCF之后在绑定VPSS,并且VPSS性能不够时,可以使用VGS组做预处理。
【相关数据类型及接口】
ot_mcf_chn_attr¶
【说明】
定义MCF 通道属性。
【定义】
typedef struct {
td_bool mirror_en;
td_bool flip_en;
td_u32 width;
td_u32 height;
td_u32 depth;
ot_pixel_format pixel_format;
ot_compress_mode compress_mode;
ot_frame_rate_ctrl frame_rate;
} ot_mcf_chn _attr;
【成员】
成员名称 |
描述 |
|---|---|
mirror_en |
水平镜像使能。 |
flip_en |
垂直翻转使能。 |
width |
物理通道输出图像的宽度。 |
height |
物理通道输出图像的高度。 |
depth |
用户获取通道图像的队列长度。 取值范围:[0, 8] |
pixel_format |
目标图像像素格式。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
compress_mode |
目标图像压缩模式。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
frame_rate |
帧率控制信息。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
【注意事项】
源帧率与目标帧率都为-1,则不进行帧率控制。
目标帧率不能大于源帧率。
若不指定depth,表示不需要系统为该MCF通道缓存图像,故用户获取不到该通道的图像数据。系统默认不为通道缓存图像,即depth默认为0。
若指定depth>0,系统将为该通道缓存depth个图像,用户可通过接口ss_mpi_mcf_get_chn_frame获取该通道图像数据。具体分为以下几种情况:
用户一直不获取图像。
系统将自动更新最旧的图像数据,保证用户一旦开始获取,就可获取到最近最新的depth个连续图像。
用户连续获取depth次并一直不释放。
系统因获取不到VB而自动停止缓存新的图像,用户也不能获取新的VI图像。故建议用户保证获取和释放接口配对使用。
用户获取/释放的速度比MCF通道产生图像的速度慢。
系统将自动更新用户仍未获取的最旧的图像数据,保证缓存的图像队列为最近的新图像。由于用户不能保证获取速度,导致获取的可能不是连续图像。
系统为MCF通道缓存的depth个图像数据,占用MPP内部的缓存块(简称VB)。故用户应通过接口ss_mpi_vb_set_cfg 置足够的VB,否则可能由于系统缓存图像占用过多VB,从而影响MCF的正常运行。支持动态调整depth。如用户在不需要获取该MCF通道数据时,可设置depth为0,以减少占用内部VB的数量;在需要获取时,再设置depth为合适的值,即可获取到设置时刻后的连续图像。
【相关数据类型及接口】
ot_mcf_feature_info¶
【说明】
定义MCF的标定返回的特征点信息。
【定义】
typedef struct {
td_s32 refer_feature_num;
td_s32 register_feature_num;
td_s32 match_feature_num;
} ot_mcf_feature_info;
【成员】
成员名称 |
描述 |
|---|---|
refer_feature_num |
基准图像的特征点数量 |
register_feature_num |
待校正图像的特征点数量 |
match_feature_num |
匹配的特征点数量 |
【注意事项】
无
【相关数据类型及接口】
无
ot_mcf_ext_chn_attr¶
【说明】
定义MCF 扩展通道属性。
【定义】
typedef struct {
ot_mcf_chn bind_chn;
td_u32 width;
td_u32 height;
ot_pixel_format pixel_format;
ot_compress_mode compress_mode;
td_u32 depth;
ot_frame_rate_ctrl frame_rate;
} ot_mcf_ext_chn_attr;
【成员】
成员名称 |
描述 |
|---|---|
bind_chn |
绑定源物理通道。 |
width |
扩展通道输出目标宽度,要求2对齐。 |
height |
扩展通道输出目标高度。要求2对齐。 |
pixel_format |
扩展通道输出图像数据格式。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
compress_mode |
扩展通道输出压缩模式。 |
depth |
队列长度。 取值范围: [0, 8] |
frame_rate |
帧率控制信息。具体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
【注意事项】
绑定源物理通道必须合法,范围为[0, OT_MCF_MAX_PHYS_CHN_NUM)。
宽、高必须满足2对齐。
目标帧率不能大于源帧率,源帧率与目标帧率都为-1,则不进行帧率控制。
【相关数据类型及接口】
无
ot_mcf_calibration_mode¶
【说明】
定义MCF标定模式。
【定义】
typedef enum {
OT_MCF_CALIBRATION_AFFINE = 0, /* affine Transform mode */
OT_MCF_CALIBRATION_PROJECTIVE, /* projective mode */
OT_MCF_CALIBRATION_MODE_BUTT
} ot_mcf_calibration_mode;
【成员】
成员名称 |
描述 |
|---|---|
OT_MCF_CALIBRATION_AFFINE |
仿射模式。 |
OT_MCF_CALIBRATION_PROJECTIVE |
投影模式。 |
【注意事项】
算法参数调节可参考《黑白彩色双路融合 调试指南》。
【相关数据类型及接口】
无
ot_mcf_calibration¶
【说明】
定义MCF的标定参数。
【定义】
typedef struct {
td_s64 correct_coef[OT_MCF_COEF_NUM];
ot_rect region;
} ot_mcf_calibration;
【成员】
成员名称 |
描述 |
|---|---|
correct_coef[OT_MCF_COEF_NUM] |
MCF的color图像相对于mono图像的矫正矩阵。 correct_coef [0]:取值范围为:[314572, 1782578]。 correct_coef [1]:取值范围为:[-734002, 734002]。 correct_coef [2]:取值范围为:[-2147483647, 2147483646]。 correct_coef [3]:取值范围为:[-734002, 734002]。 correct_coef [4]:取值范围为:[314572, 1782578]。 correct_coef [5]:取值范围为:[-2147483647, 2147483646]。 correct_coef [6]:取值范围为:[-52,208]。 correct_coef [7]:取值范围为:[-52,208]。correct_coef [8]:取值固定为1048576。 |
region |
双镜头/双Sensor间的重叠有效区域。 ot_rect请查看《MPP媒体处理软件 V5.0 开发参考》“系统控制”章节描述。 |
【注意事项】
算法参数调节可参考《黑白彩色双路融合 调试指南》。
【相关数据类型及接口】
无
ot_mcf_hist_adj_mode¶
【说明】
定义MCF亮度调整模式。
【定义】
typedef enum {
OT_MCF_NO_HIST_ADJ = 0,
OT_MCF_COLOR_HIST_ADJ,
OT_MCF_MONO_HIST_ADJ,
OT_MCF_HIST_ADJ_MODE_BUTT,
} ot_mcf_hist_adj_mode;
【成员】
成员名称 |
描述 |
|---|---|
OT_MCF_NO_HIST_ADJ |
不做调整 |
OT_MCF_COLOR_HIST_ADJ |
对彩色路图像做直方图调整 |
OT_MCF_MONO_HIST_ADJ |
对黑白路图像做直方图调整 |
【注意事项】
算法参数调节可参考《黑白彩色双路融合 调试指南》。
【相关数据类型及接口】
无
ot_mcf_fusion_alpha_mode¶
【说明】
定义MCF融合模式。
【定义】
typedef enum {
OT_MCF_FUSION_GLOBAL_MODE = 0,
OT_MCF_FUSION_ADAPTIVE_MODE,
OT_MCF_FUSION_ALPHA_MODE_BUTT,
} ot_mcf_fusion_alpha_mode;
【成员】
成员名称 |
描述 |
|---|---|
OT_MCF_FUSION_GLOBAL_MODE |
全局模式 |
OT_MCF_FUSION_ADAPTIVE_MODE |
自适应模式 |
【注意事项】
算法参数调节可参考《黑白彩色双路融合 调试指南》。
【相关数据类型及接口】
无
ot_mcf_color_correct_cfg¶
【说明】
定义MCF颜色校正参数。
【定义】
typedef struct {
td_bool color_correct_en;
td_u8 cc_thd_y;
td_u16 cc_uv_gain_lut[OT_MCF_CC_UV_GAIN_LUT_NUM];
} ot_mcf_color_correct_cfg;
【成员】
成员名称 |
描述 |
|---|---|
color_correct_en |
颜色校正使能。取值范围: [0, 1] |
cc_thd_y |
|
cc_uv_gain_lut |
颜色校正系数表。取值范围:[0, 511] |
【注意事项】
算法参数调节可参考《黑白彩色双路融合 调试指南》。
【相关数据类型及接口】
无
ot_mcf_color_hf_proc_cfg¶
【说明】
定义MCF可见光亮度高频处理参数。
【定义】
typedef struct {
td_bool color_hf_en;
td_u8 color_hf_gain;
td_bool color_med_en;
} ot_mcf_color_hf_proc_cfg;
【成员】
成员名称 |
描述 |
|---|---|
color_hf_en |
可见光图像的亮度高频信息叠加使能。取值范围: [0, 1] |
color_hf_gain |
可见光图像的亮度高频信息叠加增益。取值范围: [0, 255] |
color_med_en |
可见光图像的亮度中值滤波使能。取值范围: [0, 1] |
【注意事项】
算法参数调节可参考《黑白彩色双路融合 调试指南》。
【相关数据类型及接口】
无
ot_mcf_hist_adj_cfg¶
【说明】
定义MCF直方图校正参数。
【定义】
typedef struct {
td_bool hist_adj_en;
td_u8 hist_adj_str;
ot_mcf_hist_adj_mode hist_adj_mode;
} ot_mcf_hist_adj_cfg;
【成员】
成员名称 |
描述 |
|---|---|
hist_adj_en |
直方图校正使能。取值范围: [0, 1] |
hist_adj_str |
直方图校正强度。取值范围: [0, 255] |
hist_adj_mode |
直方图校正模式。 |
【注意事项】
算法参数调节可参考《黑白彩色双路融合 调试指南》。
当开启分块时,hist_adj_en关闭,hist_adj_str和hist_adj_mode无效果。
【相关数据类型及接口】
无
ot_mcf_fusion_global_alpha_mode_cfg¶
【说明】
定义MCF全局融合参数。
【定义】
typedef struct {
td_u8 fusion_global_alpha;
} ot_mcf_fusion_global_alpha_mode_cfg;
【成员】
成员名称 |
描述 |
|---|---|
fusion_global_alpha |
红外图像和可见光图像的全局融合alpha。取值范围:[0, 255] |
【注意事项】
算法参数调节可参考《黑白彩色双路融合 调试指南》。
【相关数据类型及接口】
无
ot_mcf_fusion_adaptive_alpha_mode_cfg¶
【说明】
定义MCF自适应融合参数。
【定义】
typedef struct {
td_u8 fusion_ratio_scale;
td_u8 fusion_ratio_bias_lut[OT_MCF_BIAS_LUT_NUM];
td_u8 fusion_mono_flat_bias_lut[OT_MCF_BIAS_LUT_NUM];
td_bool fusion_mono_ratio_en;
td_u8 fusion_mono_ratio_lut[OT_MCF_WEIGHT_LUT_NUM];
td_bool fusion_mono_flat_en;
td_u8 fusion_mono_flat_lut[OT_MCF_WEIGHT_LUT_NUM];
td_bool fusion_color_ratio_en;
td_u8 fusion_color_ratio_lut[OT_MCF_WEIGHT_LUT_NUM];
td_u8 fusion_alpha_lut[OT_MCF_WEIGHT_LUT_NUM];
} ot_mcf_fusion_adaptive_alpha_mode_cfg;
【成员】
成员名称 |
描述 |
|---|---|
fusion_ratio_scale |
红外图像和可见光图像的亮度比值的比例参数。取值范围:[0, 255] |
fusion_ratio_bias_lut |
亮度偏移值查找表,用于根据红外亮度调节红外图像和可见光图像的亮度比值大小。取值范围:[1, 127] |
fusion_mono_flat_bias_lut |
平坦度偏移值查找表,用于根据红外亮度的区域平坦度调节红外图像和可见光图像的亮度比值大小。取值范围:[1, 255] |
fusion_mono_ratio_en |
根据红外亮度对红外图像和可见光图像的亮度比值进行增益处理的使能信号。取值范围:[0, 1] |
fusion_mono_ratio_lut |
根据红外亮度对红外图像和可见光图像的亮度比值进行增益处理的增益查找表。取值范围:[0, 255] |
fusion_mono_flat_en |
根据红外亮度的区域平坦度对红外图像和可见光图像的亮度比值进行处理的使能信号。取值范围:[0, 1] |
fusion_mono_flat_lut |
根据红外亮度的区域平坦度对红外图像和可见光图像的亮度比值进行增益处理的增益查找表。取值范围: [0, 255] |
fusion_color_ratio_en |
根据可见光亮度对红外图像和可见光图像的亮度比值进行增益处理的使能信号。取值范围: [0, 1] |
fusion_color_ratio_lut |
根据可见光亮度对红外图像和可见光图像的亮度比值进行增益处理的增益查找表。取值范围: [0, 255] |
fusion_alpha_lut |
根据红外图像和可见光图像的亮度比值进行自适应融合的alpha查找表。取值范围: [0, 255] |
【注意事项】
算法参数调节可参考《黑白彩色双路融合 调试指南》。
【相关数据类型及接口】
无
ot_mcf_filter_proc_cfg¶
【说明】
定义MCF的滤波处理参数。
【定义】
typedef struct {
td_u8 mono_flt_radius;
td_u8 mono_flt_bias_lut[OT_MCF_BIAS_LUT_NUM];
td_u8 color_flt_radius;
td_u8 color_flt_sgms;
td_u8 color_flt_sgmr;
} ot_mcf_filter_proc_cfg;
【成员】
成员名称 |
描述 |
|---|---|
mono_flt_radius |
红外图像滤波半径。取值范围: [1, 2] |
mono_flt_bias_lut |
红外图像滤波强度查找表。取值范围: [1, 128] |
color_flt_radius |
可见光图像滤波半径。取值范围: [1, 4] |
color_flt_sgms |
可见光图像滤波器空域参数。取值范围:[1, 50] |
color_flt_sgmr |
可见光图像滤波器值域参数。取值范围:[1, 255] |
【注意事项】
算法参数调节可参考《黑白彩色双路融合 调试指南》。
【相关数据类型及接口】
无
ot_mcf_detail_proc_cfg¶
【说明】
定义MCF细节处理参数。
【定义】
typedef struct {
td_bool fusion_mono_det_adap_en;
td_u8 fusion_mono_det_lut[OT_MCF_WEIGHT_LUT_NUM];
td_u8 fusion_det_gain;
} ot_mcf_detail_proc_cfg;
【成员】
成员名称 |
描述 |
|---|---|
fusion_mono_det_adap_en |
红外细节自适应叠加使能。取值范围: [0, 1] |
fusion_mono_det_lut |
红外细节自适应叠加的强度查找表。取值范围: [0, 255] |
fusion_det_gain |
红外细节全局叠加强度。取值范围: [0, 255] |
【注意事项】
算法参数调节可参考《黑白彩色双路融合 调试指南》。
【相关数据类型及接口】
无
ot_mcf_base_proc_cfg¶
【说明】
定义MCF融合参数。
【定义】
typedef struct {
ot_mcf_fusion_alpha_mode fusion_alpha_mode;
ot_mcf_fusion_global_alpha_mode_cfg fusion_global_alpha_mode_cfg;
ot_mcf_fusion_adaptive_alpha_mode_cfg fusion_adaptive_alpha_mode_cfg;
} ot_mcf_base_proc_cfg;
【成员】
成员名称 |
描述 |
|---|---|
fusion_alpha_mode |
红外图像和可见光图像的融合模式。 |
fusion_global_alpha_mode_cfg |
红外图像和可见光图像的全局融合参数。 |
fusion_adaptive_alpha_mode_cfg |
红外图像和可见光图像的自适应融合参数。 |
【注意事项】
算法参数调节可参考《黑白彩色双路融合 调试指南》。
【相关数据类型及接口】
无
ot_mcf_each_freq_proc_cfg¶
【说明】
定义MCF各频段的处理参数。
【定义】
typedef struct {
ot_mcf_filter_proc_cfg filter_proc_cfg;
ot_mcf_detail_proc_cfg detail_proc_cfg;
ot_mcf_base_proc_cfg base_prco_cfg;
} ot_mcf_each_freq_proc_cfg;
【成员】
成员名称 |
描述 |
|---|---|
filter_proc_cfg |
MCF滤波处理参数。 |
detail_proc_cfg |
MCF细节处理参数。 |
base_proc_cfg |
MCF融合参数。 |
【注意事项】
算法参数调节可参考《黑白彩色双路融合 调试指南》。
【相关数据类型及接口】
无
ot_mcf_alg_param¶
【说明】
MCF 算法参数。
【定义】
typedef struct {
ot_mcf_color_correct_cfg mcf_color_correct_cfg;
ot_mcf_color_hf_proc_cfg mcf_color_hf_proc_cfg;
ot_mcf_hist_adj_cfg mcf_hist_adj_cfg;
ot_mcf_each_freq_proc_cfg mcf_hf_cfg;
ot_mcf_each_freq_proc_cfg mcf_mf_cfg;
ot_mcf_each_freq_proc_cfg mcf_lf_cfg;
} ot_mcf_alg_param;
【成员】
成员名称 |
描述 |
|---|---|
mcf_color_correct_cfg |
MCF颜色校正参数。 |
mcf_color_hf_proc_cfg |
MCF可见光图像亮度高频处理参数。 |
mcf_hist_adj_cfg |
MCF直方图校正参数。 |
mcf_hf_cfg |
MCF 高频参数配置,请参考ot_mcf_each_freq_proc_cfg参数说明。 |
mcf_mf_cfg |
MCF 中频参数配置,请参考ot_mcf_each_freq_proc_cfg参数说明。 |
mcf_lf_cfg |
MCF 低频参数配置,请参考ot_mcf_each_freq_proc_cfg参数说明。 |
【注意事项】
算法参数调节可参考《黑白彩色双路融合 调试指南》。
【相关数据类型及接口】
无
ot_mcf_vi_attr¶
【说明】
定义MCF VI属性。
【定义】
typedef struct {
td_bool enable;
ot_vi_pipe mono_pipe;
ot_vi_pipe color_pipe;
} ot_mcf_vi_attr;
【成员】
成员名称 |
描述 |
|---|---|
enable |
使能。 |
mono_pipe |
MCF 黑白路pipe id。结构体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
color_pipe |
MCF 彩色路pipe id。结构体描述请参见《MPP媒体处理软件V5.0开发参考》“系统控制”章节。 |
【注意事项】
无
【相关数据类型及接口】
ot_mcf_path¶
【说明】
定义MCF输出通路。
【定义】
typedef enum {
OT_MCF_PATH_FUSION = 0,
OT_MCF_PATH_COLOR,
OT_MCF_PATH_MONO,
OT_MCF_PATH_BUTT,
} ot_mcf_path;
【成员】
成员名称 |
描述 |
|---|---|
OT_MCF_PATH_FUSION |
输出融合后的图像 |
OT_MCF_PATH_COLOR |
输出彩色路的图像 |
OT_MCF_PATH_MONO |
输出黑白路的图像 |
【注意事项】
无
【相关数据类型及接口】
无
错误码¶
MCF API错误码如下所示。
表 1 MCF API错误码
错误代码 |
宏定义 |
描述 |
|---|---|---|
0xa03d800a |
OT_ERR_MCF_NULL_PTR |
输入参数空指针错误 |
0xa03f8018 |
OT_ERR_MCF_NOT_READY |
MCF系统未准备就绪 |
0xa03d8001 |
OT_ERR_MCF_INVALID_DEVID |
MCF DEV号无效 |
0xa03d8002 |
OT_ERR_MCF_INVALID_PIPEID |
MCF PIPE号无效 |
0xa03d8003 |
OT_ERR_MCF_INVALID_CHNID |
MCF通道号无效 |
0xa03d8008 |
OT_ERR_MCF_EXIST |
MCF GROUP已创建 |
0xa03d8009 |
OT_ERR_MCF_UNEXIST |
MCF GROUP未创建 |
0xa03d800c |
OT_ERR_MCF_NOT_SUPPORT |
操作不支持 |
0xa03d800d |
OT_ERR_MCF_NOT_PERM |
操作不允许 |
0xa03d8014 |
OT_ERR_MCF_NO_MEM |
分配内存失败 |
0xa03d8015 |
OT_ERR_MCF_NO_BUF |
分配BUF失败 |
0xa03d8007 |
OT_ERR_MCF_ILLEGAL_PARAM |
MCF参数设置无效 |
0xa03d8022 |
OT_ERR_MCF_BUSY |
MCF系统忙 |
0xa03d8016 |
OT_ERR_MCF_BUF_EMPTY |
图像队列为空 |
0xa03d8012 |
OT_ERR_MCF_NOT_START |
MCF状态未开启 |
0xa03d8013 |
OT_ERR_MCF_NOT_STOP |
MCF状态未停止 |
0xa03d8043 |
OT_ERR_MCF_NOT_ENCHN |
MCF通道未使能 |
0xa050800a |
OT_ERR_MCF_CALIBRATION_NULL_PTR |
MCF标定输入参数空指针错误 |
0xa050801e |
OT_ERR_MCF_CALIB_FEATURE_OVERFLOW |
MCF标定特征点数量溢出 |
0xa050801f |
OT_ERR_MCF_CALIB_FEATURE_LACK |
MCF标定特征点数量不足 |
0xa0508020 |
OT_ERR_MCF_CALIB_RANSAC_FAIL |
MCF标定的RANSAC失败 |
0xa0508021 |
OT_ERR_MCF_CALIB_ILLEGAL_MATRIX |
MCF标定矫正矩阵错误 |
0xa0508022 |
OT_ERR_MCF_CALIB_ILLEGAL_MOTION |
MCF标定裁剪区域错误 |
0xa0508023 |
OT_ERR_MCF_CALIB_FAIL |
MCF标定失败 |
0xa0508007 |
OT_ERR_MCF_CALIBRATION_ILLEGAL_PARAM |
MCF标定非法参数 |
0xa0508014 |
OT_ERR_MCF_CALIBRATION_NOMEM |
分配内存失败 |
Proc 调试信息说明¶
【调试信息】
[MCF] version: [V1.0.0.0 B010 Release], build time[Apr 14 2021, 09:52:27]
----------------------------------------------------------mcf group attr-------------------------------------------------
grp sync mcf_path src_frame_rate dst_frame_rate depth
0 y fusion -1 -1 0
-----------------------------------------------------mcf group crop attr-------------------------------------------------
grp crop_en x y width height
0 n 0 0 0 0
-----------------------------------------------------mcf pipe attr-------------------------------------------------------
grp pipe_id vpss_grp color/mono width height pixel_fmt
0 1 1 color 3840 2160 YVU-SP420
0 0 100 mono 3840 2160 YVU-SP420
-----------------------------------------------------mcf pre-process info------------------------------------------------
grp pipe_id input_num send_num recv_num output_num
0 1 204 204 202 202
0 0 204 204 203 203
----------------------------------------mcf pre-process queue info----------------------------------------
grp pipe_id input_num output_num lost_num busy_num free_num
0 1 202 200 0 0 8
0 0 203 200 0 3 5
-----------------------------------------------------mcf fusion info------------------------------------------------------
grp pipe_id input_num send_num recv_num output_num
0 1 202 200 200 200
0 0 203 200 200 200
-----------------------------------------------------mcf phys chn attr---------------------------------------------------
grp chn width height pixel_fmt cmp_mode depth src_frame_rate dst_frame_rate mirror flip
0 0 3840 2160 YVU-SP420 none 0 -1 -1 n n
-----------------------------------------------------mcf phys chn crop attr---------------------------------------------
grp chn crop_en coord x y width height trim_x trim_y trim_width trim_height
0 0 n ABS 0 0 0 0
-----------------------------------------------------mcf phys chn other attr--------------------------------------------
grp chn low_delay_en low_delay_line rotation_en rotation_fixed align pool_id
0 0 n 0 n 0 32 -1
-----------------------------------------------------mcf ext chn attr-----------------------------------------------------
grp ext_chn width height pixel_fmt cmp_mode depth src_frame_rate dst_frame_rate bind_phys_chn
----------------------------------------mcf ext chn crop attr-----------------------------------------------
grp ext_chn crop_en coord x y width height trim_x trim_y trim_width trim_height
-----------------------------------------------------mcf ext chn other attr----------------------------------------------
grp ext_chn low_delay_en low_delay_line align pool_id
-----------------------------------------------------mcf phys chn run info----------------------------------------------
grp chn width height frame_rate frame_cnt
0 0 3840 2160 29 200
----------------------------------------mcf ext chn run info------------------------------------------------
grp ext_chn width height frame_rate frame_cnt
【参数说明】
参数 |
描述 |
|
|---|---|---|
mcf group attr |
grp |
表示组号。 |
sync |
表示组属性的sync属性。 |
|
mcf_path |
表示指定的输出路。 |
|
src_frame_rate |
表示组属性中帧率控制中的源帧率。 |
|
dst_frame_rate |
表示组属性中帧率控制中的目标帧率。 |
|
depth |
表示组队列深度。 |
|
mcf group crop attr |
grp |
表示组号。 |
crop_en |
表示组属性中的crop使能。 |
|
x |
crop起始位置x。 |
|
y |
crop起始位置y。 |
|
width |
crop后图像宽度。 |
|
height |
crop后图像高度。 |
|
mcf pipe attr |
grp |
表示组号。 |
pipe_id |
表示pipe 号。 |
|
vpss_grp |
表示vpss 组号。 |
|
color/mono |
表示当前pipe是彩色路或者黑白路,color表示彩色路,mono表示黑白路。 |
|
width |
表示pipe 输入图像宽度。 |
|
height |
表示pipe 输入图像高度。 |
|
pixel_fmt |
表示pipe输入的像素格式 |
|
mcf pre-process info |
grp |
表示组号。 |
pipe_id |
表示pipe 号。 |
|
input_num |
表示预处理模块接收帧计数。 |
|
send_num |
表示预处理模块发送给硬件帧计数。 |
|
recv_num |
表示预处理模块从硬件接收帧计数。 |
|
output_num |
表示预处理模块输出帧计数。 |
|
mcf pre-process queue info |
grp |
表示组号。 |
pipe_id |
表示pipe 号。 |
|
input_num |
表示预处理模块队列接收帧计数。 |
|
output_num |
表示预处理模块队列输出帧计数。 |
|
lost_num |
表示预处理模块队列丢帧计数。 |
|
busy_num |
表示预处理模块队列忙状态计数。 |
|
free_num |
表示预处理模块队列空闲状态计数。 |
|
mcf fusion info |
grp |
表示组号。 |
pipe_id |
表示pipe 号。 |
|
input_num |
表示融合模块接收帧计数。 |
|
send_num |
表示融合模块发送给硬件做融合帧计数。 |
|
recv_num |
表示融合模块从硬件接收帧计数。 |
|
output_num |
表示融合模块输出帧计数。 |
|
mcf phys chn attr |
grp |
表示组号。 |
chn |
表示通道号。 |
|
width |
表示通道图像宽度。 |
|
height |
表示通道图像高度。 |
|
pixel_fmt |
表示通道图像像素格式。 |
|
cmp_mode |
表示通道图像压缩格式。 |
|
depth |
表示通道队列深度。 |
|
src_frame_rate |
表示通道帧率控制源帧率。 |
|
dst_frame_rate |
表示通道帧率控制目标帧率。 |
|
frame_rate |
表示通道统计帧率。 |
|
mirror |
表示是否开启mirror。 |
|
flip |
表示是否开启flip。 |
|
mcf phys chn crop attr |
grp |
表示组号。 |
chn |
表示通道号。 |
|
crop_en |
表示crop使能。 |
|
coord |
表示crop模式。 |
|
x |
crop起始位置x。 |
|
y |
crop起始位置y。 |
|
width |
crop后图像宽度。 |
|
height |
crop后图像高度。 |
|
trim_x |
crop起始绝对位置x。 |
|
trim_y |
crop起始绝对位置y。 |
|
trim_width |
crop图像绝对宽度。 |
|
trim_height |
crop图像绝对高度。 |
|
mcf phys chn other attr |
grp |
表示组号。 |
chn |
表示通道号。 |
|
low_delay_en |
表示是否开启通道低延时。 |
|
low_delay_line |
表示低延时行数。 |
|
rotation_en |
表示对否开启旋转。 |
|
rotation_fixed |
表示固定旋转的角度。 |
|
align |
表示通道对齐字节数。 |
|
pool_id |
绑定pool_Id,-1表示未绑定。 |
|
mcf ext chn attr |
grp |
表示组号。 |
ext_chn |
表示扩展通道号。 |
|
width |
表示通道图像宽度。 |
|
height |
表示扩展通道图像高度。 |
|
pixel_fmt |
表示扩展通道图像像素格式。 |
|
cmp_mode |
表示扩展通道图像压缩格式。 |
|
depth |
表示扩展通道队列深度。 |
|
src_frame_rate |
表示扩展通道帧率控制源帧率。 |
|
dst_frame_rate |
表示扩展通道帧率控制目标帧率。 |
|
bind_phys_chn |
表示扩展通道绑定的物理通道。 |
|
mcf ext chn crop attr |
grp |
表示组号。 |
ext_chn |
表示扩展通道号。 |
|
crop_en |
表示crop使能。 |
|
coord |
表示crop模式。 |
|
x |
crop起始位置x。 |
|
y |
crop起始位置y。 |
|
width |
crop后图像宽度。 |
|
height |
crop后图像高度。 |
|
trim_x |
crop起始绝对位置x。 |
|
trim_y |
crop起始绝对位置y。 |
|
trim_width |
crop图像绝对宽度。 |
|
trim_height |
crop图像绝对高度。 |
|
mcf ext chn other attr |
grp |
表示组号。 |
ext_chn |
表扩展通道号。 |
|
low_delay_en |
表示是否开启扩展通道低延时。 |
|
low_delay_line |
表示低延时行数。 |
|
align |
表示扩展通道对齐字节数。 |
|
pool_id |
绑定pool_Id,-1表示未绑定。 |
|
mcf phys chn run info |
grp |
表示组号。 |
chn |
表示通道号。 |
|
width |
表示通道输出宽度。 |
|
height |
表示通道输出高度。 |
|
frame_rate |
表示通道输出帧率。 |
|
frame_cnt |
表示通道输出帧数。 |
|
mcf ext chn run info |
grp |
表示组号。 |
ext_chn |
表示扩展通道号。 |
|
width |
表示扩展通道输出宽度。 |
|
height |
表示扩展通道输出高度。 |
|
frame_rate |
表示扩展通道输出帧率。 |
|
frame_cnt |
表示扩展通道输出帧数。 |
|
FAQ¶
如何消除2组镜头的视差¶
【现象】
如果2个组镜头存在视差,导致图像融合效果不理想。
【解决方法】
调用mcf标定工具标定,将标定结果的correct_coef数据,调用ss_mpi_vi_set_chn_fov_correction_attr(具体请参考《MPP 媒体处理软件 V5.0 开发参考》“视频输入”章节)接口做视差矫正。
如何消除视差矫正后黑边情况¶
【现象】
视差矫正后,黑白2路图像融合后存在黑边情况。
【解决方法】
调用mcf标定工具标定,将标定结果的region数据,调用ss_mpi_mcf_set_grp_crop接口把黑边裁剪掉。
如何正确配置ISP的BNR属性¶
【现象】
融合后噪声大。
【解决方法】
正确设置VB属性和调用ss_mpi_mcf_set_vi_attr接口可以提高降噪效果。具体方法请参考mcf sample 1。
注意: VB属性设置一定要设置为OT_VB_SUPPLEMENT_BNR_MOT_MASK。
黑白彩色双路融合场景和正常场景如何切换¶
【现象】
白天场景不需要黑白彩色双路融合,夜晚场景需要黑白彩色双路融合。
【解决方法】
方法1:通过调节算法参数中的fusion_alpha_lut值,可以做到输出平滑切换。fusion_alpha_lut = 0 时输出彩色路图像,fusion_alpha_lut = 255 时输出黑白图像。
优点:软切换,可以做到效果平滑切换。
缺点:切换后2路图像都在运行,带宽高,能耗高。
方法2:通过设置组属性中的mcf_path. 当mcf_path = OT_MCF_PATH_FUSION 时,MCF模块输出融合后图像,mcf_path = OT_MCF_PATH_COLOR时,输出彩色路,mcf_path = OT_MCF_PATH_MONO时,输出黑白路。当设置为OT_MCF_PATH_MONO输出时,要求黑白路输入为420格式。
可分为两种模式:开启帧同步与关闭帧同步模式。
开启同步模式:参考sample_mcf (3)
优点:切换过程中帧的pts一直是连续的。
缺点:切换模式后两路图像都在运行,不支持销毁另外一路图像。
关闭同步模式:参考sample_mcf (4)
优点:切换过程中支持销毁另外一路图像,可以关闭一路vi,节省带宽。
缺点:属于硬切换,切换效果不能平滑,切换过程中帧的pts不能保持连续。
方法3:先取消mcf和mcf后面的vpss绑定关系,再重新vi绑定vpss。
优点:切换后场景性能最优。
缺点:需要设置绑定关系,中间会丢帧。
分块场景不支持组和通道裁剪¶
【现象】
分块时不支持组和通道裁剪。
【解决方法】
分块场景下若要进行裁剪(比如7.2节描述的校正后黑边),建议后面接一个vpss来进行crop,同时前面mcf不建议缩放(放到后面vpss一起做)。




