前言

概述

本文为使用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

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_create_grp

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

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_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

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_grp_attr

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

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_alg_param

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

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_set_grp_crop

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

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_align

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

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_set_chn_crop

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设置:

  • 设为-1时为阻塞接口;
  • 等于0时为非阻塞接口;

大于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_set_chn_crop

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_chn_fd

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

【注意】

【举例】

【相关主题】

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_calibration

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

输出通道类型:

  • OT_MCF_PATH_FUSION:输出彩色黑白融合路
  • OT_MCF_PATH_COLOR:仅输出彩色路
  • OT_MCF_PATH_MONO:仅输出黑白路

【注意事项】

  • 当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

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_grp_attr

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_grp_attr

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

  • 该参数为1到127时,表示当可见光图像的亮度低于该阈值时,会从该阈值开始到亮度为0的区间,逐步减小颜色校正的强度;
  • 该参数为0时,表示上述功能不使能。取值范围: [0, 127]

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_grp_attr

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一起做)。