专栏底层软件J6X vio scenario pause sample

J6X vio scenario pause sample

新手村2026-08-21
15
0

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. 代码位置及目录结构

sample代码位置在SDK工程目录 {sdk_dir}/test/samples/platform_samples/source/S83_Sample/S83E04_Module/vio_scenario_pause_sample;

目录结构如下:

根目录包含 Kconfig 和外部接口的 Makefile , Kconfig 用于控制该demo是否加入整体编译;cfg目录中包含了本sample使用到的json配置文件;src目录下的 Makefile 用于src目录下的编译;src目录下的 vio_scenario_sample.c 是main入口的所在文件。

1.4. API流程说明

API流程图如下:

主干代码:

获取数据,暂停数据流,恢复数据流,释放数据的代码:

2. 编译

2.1. 编译环境

本sample的编译环境使用SDK中的build工具,请参考: Build 环境建立

2.2. 编译说明

本sample编译需要VPS系统相关的头文件:

编译依赖的库有如下:

编译命令:

3. 运行

3.1. 支持平台

Matrix 6P/H

3.2. 硬件环境搭建

接口连接如下:

模组:HIKVISION_M24F196D4_S2R0T8E5。

连接方式:

四路ISX031C通过4合1线束的ABCD口连接到板子的DES4。

3.3. 板端部署及配置

刷写系统软件镜像后,本sample的可执行文件位于板端: /app/sample/S83_Sample/S83E04_Module/vio_scenario_pause_sample/bin/;
需要用到的配置文件位于板端: /app/sample/S83_Sample/S83E04_Module/vio_scenario_pause_sample/cfg/。

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

-v 参数是 /app/sample/S83_Sample/S83E04_Module/vio_scenario_pause_sample/cfg/Scenario_4V_cpe4_sen_isx031c_cim4_ddr_pym1_sample/vpm_config.json,代表VIO配置文件的所在位置,json里面的具体配置可参考VPS配置文件说明;
-c 参数是 /app/sample/S83_Sample/S83E04_Module/vio_scenario_pause_sample/cfg/Scenario_4V_cpe4_sen_isx031c_cim4_ddr_pym1_sample/hb_j6dev.json,代表camera的配置文件的所在位置,json里面的具体配置可参考J6X camera配置文件说明;
-m 参数是1,表示使能pipe0数据流;
-s 参数是10,表示dump前面10帧PYM的数据。
可增加 -e 参数,例如 -e 0 表示通过hbplayer看图工具显示PYM ds层第0层。

运行之后,按键盘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地址等相关参数:

以4V测试为例,可在4V测试命令后增加-e参数 -e 0 显示ds层第0层:

执行命令后,默认情况下,不按键盘p键,点击hbplayer左侧栏中的connect即可完成连接并在右侧界面看到实时4V图像:

当满足 -t 参数指定的条件后,sample将自动退出运行,也可通过 Ctrl+C 和q键手动结束运行。其他测试场景连接hbplayer工具看图的方法和效果均类似,不再赘述。
底层软件
技术深度解析社区征文官方教程征程6
评论0
0/600