1. 功能概述¶
本文的demo sample实现GDC多路处理鱼眼图,最后通过STITCH拼接成鸟瞰图。
1.1. 软件架构说明¶
本文的demo sample采用回灌流程,即从系统存储中读取文件作为GDC的输入图像,调用VIO API,基于GDC配置bin文件完成GDC处理,再通过videostitch API和对应的拼接LUT表文件实现对GDC输出图像的拼接,得到鸟瞰图。
其中使用到的JSON配置文件、GDC配置bin文件和拼接LUT表等相关文件,可以由标定后的相机内外参数以及配置的拼接图范围,通过convert_tool工具自动生成,工具的具体使用方法可参考 ConvertTool工具使用指南 章节。
软件控制图如下:

1.2. 代码位置及目录结构¶
本sample的代码位于工程目录:{sdk_dir}/test/samples/platform_samples/source/S83_Sample/S83E04_Module/gdc_stitch_sample;
目录结构如下:
根目录包含 Kconfig 和外部接口的 Makefile , Kconfig 用于控制该demo是否加入整体编译;res目录中包含了资源文件,例如YUV图像、VPM配置文件、GDC配置bin文件、STITCH拼接配置文件、STITCH拼接lut文件等;src目录下的 Makefile 用于src目录下的编译, gdc_stitch_sample.c 是main入口的所在文件, utils.c 包含一些功能性代码,例如YUV图像读取和dump、配置文件解析等。
1.3. API流程说明¶
API流程图如下:

主干代码:
GDC初始化和反初始化:
STITCH初始化和反初始化:
2. 编译¶
2.1. 编译环境¶
本sample的编译环境使用SDK中的build工具,请参考: Build环境建立 章节。
2.2. 编译说明¶
本sample编译需要videostitch、hbmem和VPM系统相关的头文件:
本sample编译依赖的库:
编译命令:
3. 运行¶
3.1. 支持平台¶
J6X Matrix
1.20.3.2. 板端部署及配置¶
刷写系统软件镜像后,本sample的可执行文件位于板端: /app/sample/S83_Sample/S83E04_Module/gdc_stitch_sample/bin/libvio_hal_gdc_stitch_sample;
需要用到的资源文件均位于板端: /app/sample/S83_Sample/S83E04_Module/gdc_stitch_sample/res/, 用户也可以通过 mount -o rw,remount /app 指令将 /app 分区权限变更为可读写后对齐进行修改替换。
3.3. 运行指南¶
3.3.1. 运行方法¶
本文的demo sample执行命令如下:
3.3.2. 运行命令行说明¶
libvio_hal_gdc_stitch_sample :应用程序名字。
下面的表格是具体参数的说明:
参数名 | 用法 | 是否必需 |
|---|---|---|
-s | 指定STITCH的配置文件 | 是 |
-v | 指定VPM的配置文件 | 是 |
-d | 开启dump,1:dump STITCH输出结果,2:dump GDC输出结果,3:dump所有输出结果 | 是 |
-l | 指定循环运行次数,默认为5 | 否 |
-r | 指定资源文件位置,默认为/app/sample/S83_Sample/S83E04_Module/gdc_stitch_sample/res | 否 |
-D | 开启Debug模式,打印STITCH配置信息 | 否 |
例如上面的执行命令:
- -s 参数 /app/sample/S83_Sample/S83E04_Module/gdc_stitch_sample/res/stitch_config.json 代表STITCH配置文件所在位置。
- -v 参数 /app/sample/S83_Sample/S83E04_Module/gdc_stitch_sample/res/vpm_config.json 代表VPM配置文件所在位置,JSON里面的具体配置可参考VPS配置文件说明。
- -d 参数为3,代表dump STITCH和GDC的输出结果。
- -l 参数未配置,即默认循环运行5次。
- -r 参数未配置,即使用默认位于 /app/sample/S83_Sample/S83E04_Module/gdc_stitch_sample/res 的资源文件。
- -D 参数未配置,即不需要Debug模式打印相关配置信息。
帮助菜单:
3.3.3. 运行结果说明¶
执行命令后,打印信息如下:

dump文件将保存在当前执行目录:

GDC的四路输入图像和输出图像如下:
pipeline0:


pipeline1:


pipeline2:


pipeline3:


STITCH拼接得到的鸟瞰图如下:
