1. 功能概述¶
本文的demo sample实现4路环视鱼眼暂停和恢复数据流的功能。
4V场景下,可调用VIO API hb_vio_pause_pipeline暂停指定软件通道的CIM数据流;调用VIO API hb_vio_resume_pipeline恢复指定软件通道的CIM数据流,低功耗处理场景可参考使用。
1.1. 软件架构说明¶
调用VIO API来实现整个数据通路,实现多路camera接入。同时能够dump每一路数据的图像。 软件控制图如下:
1.2. 硬件数据流说明¶
每个场景的图中已经标明硬件连接关系。
4V 场景如下:

1.3. 代码位置及目录结构¶
目录结构如下:
1.4. API流程说明¶
API流程图如下:

主干代码:
获取数据,暂停数据流,恢复数据流,释放数据的代码:
2. 编译¶
2.1. 编译环境¶
2.2. 编译说明¶
本sample编译需要VPS系统相关的头文件:
编译依赖的库有如下:
编译命令:
3. 运行¶
3.1. 支持平台¶
Matrix 6P/H
3.2. 硬件环境搭建¶
接口连接如下:

模组:HIKVISION_M24F196D4_S2R0T8E5。
连接方式:
四路ISX031C通过4合1线束的ABCD口连接到板子的DES4。
3.3. 板端部署及配置¶
3.4. 运行指南¶
3.4.1. 运行方法¶
4V测试命令:
3.4.2. 运行命令行说明¶
vio_scenario_pause_sample:应用程序名字。
下面的表格是具体参数的说明:
参数名 | 用法 | 是否必需 |
|---|---|---|
-v | 指定VIO的配置文件 | 是 |
-c | 指定camera的配置文件 | 是 |
-m | pipeline的掩码,bit0代表pipeline0,bit1代表pipeline1,以此类推 | 是 |
-s | 开启dump,代表需要保存到当前运行目录下的数据帧数 | 否 |
-t | 程序运行时间(单位毫秒,不建议与-l参数同时使用,使用其中一个即可) | 否 |
-e | 指定hbplayer显示的PYM ds层,不设置或默认为-1,代表不使用hbplayer | 否 |
运行之后,按键盘p键,进入 pause状态,停止获取pym数据;按键盘r键,进入resume状态,继续获取pym数据,可循环交替状态切换。最后可按键盘q键退出测试程序。
3.4.3. 运行结果说明¶
程序运行时通过下面的命令可以看到每个IP的帧率,如果不开dump,帧率符合预期,则程序正常运行。
上面的命令只能间隔一秒以上执行一次,过快执行帧率数据会变成0。
4V测试结果:


程序运行中,解串器port A到port B的数据流复制已经开启。port B bypass到加串器96793,厂商可根据需求自行选择不同的加串器型号进行适配。
3.4.4. 看图结果¶
dump出的数据保存在当前目录下,由于收敛时间,各pipe的前几帧图像可能出现效果不佳情况,属于正常现象,具体帧数也与实际模组有关,用户关注和使用后续正常帧即可。
此外,由于实际分配buffer时内存需要16对齐,当用户配置文件中设置的图像尺寸非16对齐时,按分配buffer大小dump出来的图像右侧就会出现无效数据,即右侧绿边,属于正常现象,可通过调整配置文件中的图像width为16的整数倍对齐内存大小或按图像实际大小保存。
本文的demo sample也支持通过hbplayer工具进行看图。首先在hbplayer中设置平台、IP地址等相关参数:
执行命令后,默认情况下,不按键盘p键,点击hbplayer左侧栏中的connect即可完成连接并在右侧界面看到实时4V图像:
