如何进行电子商务网站推广?,wordpress留白,asp.net建立网站吗,如何创建网站推广产品01 功能概述
本文将带大家一起实现单路、多路 MIPI CSI TX 输出、IDU 回写、IDU oneshot 模式、绑定输出 VPS 数据等功能#xff0c;此处主要介绍各 sample 的实现与使用方法。
02 软件架构说明
本文中绑定 VPS 输出功能基于 libvio API 实现#xff0c;调用 libvio 提供的…01 功能概述
本文将带大家一起实现单路、多路 MIPI CSI TX 输出、IDU 回写、IDU oneshot 模式、绑定输出 VPS 数据等功能此处主要介绍各 sample 的实现与使用方法。
02 软件架构说明
本文中绑定 VPS 输出功能基于 libvio API 实现调用 libvio 提供的 API同时通过配置文件的方式实现 pym 数据回灌输出绑定 IDU 的输入图层由 MIPI CSI TX 进行输出。
回环 sample 需要调用 libcam 提供的 camera 初始化接口用于初始化 MIPI RX 和加解串器还需要调用 libvio 的接口初始化 CIM 模块将 MIPI RX 的数据存到 DDR 中。
其余 sample 都基于 libidu 实现同时通过配置文件实现 IDU 和 MIPI CSI TX 的初始化配置调用 libidu 的 API 实现 oneshot 触发、获取回写 buffer 等功能。 2.1 硬件数据流说明
基于 Matrix 6E/M 硬件使用各项功能硬件连接及数据流通路如下
回写 sample 硬件数据流 上图为 IDU 回写和 oneshot sample 的简要硬件结构及数据流向图数据从 DRR 回灌到 IDU 输入图层通过 IDU 回写输出到 DDR可将输出数据直接 dump 到文件系统通过查看数据文件验证输出正确性。
绑定通路 sample 硬件数据流 上图为绑定 VPS 输出的 sample数据从 DDR 回灌到 PYM通过配置文件和 libvio 的接口实现 PYM 输出绑定 IDU 输入图层将 PYM 的数据通过 IDU 和 MIPI CSI TX 进行显示输出。
回环 sample 硬件数据流 上图为 MIPI CSI TX 输出回环 sample将 MIPI CSI TX 的输出通过加串器、解串器接入 RX通过 CIM 将数据输出到 DDR通过查看数据文件验证输出正确性。
此处仅标注使用了 1 个 MIPI CSI TX 和 MIPI CSI RX 接口作为示意但实际并不限于 1 条通路。
1V OVX8B 绑定 IDU 输出硬件数据流 上图为 1V OVX8B 数据通过绑定配置由 MIPI CSI TX 输出的硬件数据流。
2.2 代码位置与目录结构 2.3 API 流程说明
以下为 sample 内 API 调用流程 上图为绑定场景下 sample 的 API 调用流程。 上图为回写、oneshot、MIPI CSI TX 输出等场景下的 API 调用流程。
2.4 编译说明
本模块依赖 libvio 提供的 VIO API 头文件和 libidu 提供的 display API 头文件并且需要依赖 libhbmem 头文件用于 buffer 申请
#include hb_mem_mgr.h
#include idu_interface.h
#include hbn_idu_cfg.h
#include hbn_vpf_interface.h
#include hb_camera_interface.h
#include hb_vio_interface.h编译依赖的库有如下
LIBS -lalog -lhbmem -lgdcbin -lcam -lvpf -lidu -lvio编译命令
# 进入 SDK 所有目录{sdk_dir}并 source 构建环境。
# 编译本 sample:
bdm display-sample
# 输出文件
{sdk_dir}/out/debug-gcc_{gcc_version}/build/test/samples/platform_samples/source/S83_Sample/S83E04_Module/display_sample03 运行
环境搭建支持 Matrix 6E/M。 上图左侧二合一端子为 TX 输出右侧四合一端子为 RX0 输入
回环 sample 连接方式TX 输出 1 接 RX 输入 4TX 输出 2 接 RX 输入 31V OVX8B 绑定 IDU 输出 sample 连接方式OVX8B 接入 RX 输入 3TX 输出任意端口外接 RX。
板端部署及配置
刷写系统软件镜像后本 sample 的可执行文件位于板端/app/sample/S83_Sample/S83E04_Module/display_sample/bin/display_sample执行脚本位于板端/app/sample/S83_Sample/S83E04_Module/display_sample/script/display_sample.sh需要使用的配置文件位于板端/app/sample/S83_Sample/S83E04_Module/display_sample/cfg需要使用的图像文件位于板端/app/sample/S83_Sample/S83E04_Module/display_sample/res。
运行方法
IDU 回写运行命令display_writeback_sample数据流参考 :ref:回写数据流 writeback_flow。
/app/sample/S83_Sample/S83E04_Module/display_sample/script/display_sample.sh display_writeback_sampleIDU oneshot 运行命令display_oneshot_sample数据流参考 :ref:回写数据流 writeback_flow。
/app/sample/S83_Sample/S83E04_Module/display_sample/script/display_sample.sh display_oneshot_samplePYM 输出绑定 IDU 运行命令display_bind_sample数据流参考 :ref:绑定场景数据流 bind_flow。
/app/sample/S83_Sample/S83E04_Module/display_sample/script/display_sample.sh display_bind_sample单路 Loopback 运行命令matrix_display_loopback_sample_tx0\1其中 matrix_display_loopback_sample_tx0 输出 IDU0 的 1080P 数据matrix_display_loopback_sample_tx1 由 IDU1 两个图层拼接输出 1920x2160 数据数据流参考 :ref:回环场景数据流 loopback_flow。
/app/sample/S83_Sample/S83E04_Module/display_sample/script/display_sample.sh matrix_display_loopback_sample_tx0
/app/sample/S83_Sample/S83E04_Module/display_sample/script/display_sample.sh matrix_display_loopback_sample_tx1两路 Loopback 运行命令matrix_display_loopback_sample_tx01TX0 输出 1080P 数据TX1 输出 1920x2160 数据数据流参考 :ref:回环场景数据流 loopback_flow。
/app/sample/S83_Sample/S83E04_Module/display_sample/script/display_sample.sh matrix_display_loopback_sample_tx011V OVX8B 绑定输出运行命令1v_ovx8b_rx0_cpe0_idu0_tx0_max9295e数据流参考 :ref:1V绑定数据流 1v_bind_flow。
/app/sample/S83_Sample/S83E04_Module/display_sample/script/display_sample.sh 1v_ovx8b_rx0_cpe0_idu0_tx0_max9295e运行参数说明 可通过-h 参数查看帮助
Usage:
-v --version Display test case version
-l --loop Excute count
-V --vnode_cfg vnode config file
-D --dump_enable dump flag
-d --device idu hw device id
-p --Pattern pattern path
-M --md5 md5 check
-L --loop_back loop back
-B --vio_bind vio bind
-s --sensor with sensor
-T --tims time(s)
-m --pipe_mask pipeline mask
-g --debug enable debug log
-h --help help info
运行结果说明
以下为 display_writeback_sample 正常运行的 log
[INFO] display: display device index 1
[INFO] display: dump flag 5
[INFO] display: loop 5
[INFO] display: display cfg /app/sample/S83_Sample/S83E04_Module/display_sample/cfg/idu_plane1_nv12_wb_nv12_1080p_30fps/
[INFO] display: display pattern /app/sample/S83_Sample/S83E04_Module/display_sample/res/nv16_1920x1080.yuv
[INFO] display: Exit Display Sample[0].运行结束后可以看到当前目录有五张 yuv 图片格式为 NV12 1080P可以通过看图软件查看下图仅为示例实际情况请结合输入图片进行确认 以下为 display_oneshot_sample 正常运行的 log
[INFO] display: display device index 1
[INFO] display: dump flag 5
[INFO] display: loop 5
[INFO] display: display cfg /app/sample/S83_Sample/S83E04_Module/display_sample/cfg/idu_plane1_nv12_wb_nv12_1080p_oneshot/
[INFO] display: display pattern /app/sample/S83_Sample/S83E04_Module/display_sample/res/nv16_1920x1080.yuv
[INFO] display: Exit Display Sample[0].运行结束后可以看到当前目录有五张 yuv 图片格式为 NV12 1080P可以通过看图软件查看下图仅为示例实际情况请结合输入图片进行确认 以下为 display_bind_sample 正常运行的 log
[INFO] display: display device index 1
[INFO] display: loop 10000
[INFO] display: display cfg /app/sample/S83_Sample/S83E04_Module/display_sample/cfg/vnode_hbn_ddr_pym_idu_mipitx_1080p/
[INFO] display: Exit Display Sample[0].本文通过 MIPI CSI TX 发送 10000 帧数据可以通过 RX 收图查看。
以下为 matrix_display_loopback_sample_tx0 正常运行的 log
[INFO] display: display device index 1
[INFO] display: dump flag 5
[INFO] display: loop 5
[INFO] display: display cfg /app/sample/S83_Sample/S83E04_Module/display_sample/cfg/matrix_idu0_plane1_nv12_csi0_yuv422_max9295_max96712_rx0_1080p_30fps/
[INFO] display: display pattern /app/sample/S83_Sample/S83E04_Module/display_sample/res/nv16_1920x1080.yuv
[INFO] display: Exit Display Sample[0].本文通过 MIPI CSI TX0 发送 5 帧数据通过 MAX9295E-MAX96712 回环到 RX0通过 CIM 将数据存到 DDR然后存成文件可以通过看图软件查看下图仅为示例实际情况请结合输入图片进行确认 以下为 matrix_display_loopback_sample_tx1 正常运行的 log
[INFO] display: display device index 2
[INFO] display: dump flag 5
[INFO] display: loop 5
[INFO] display: display cfg /app/sample/S83_Sample/S83E04_Module/display_sample/cfg/matrix_idu1_plane1_nv12_csi1_yuv422_max9295_max96712_rx0_1080p_30fps/
[INFO] display: display pattern /app/sample/S83_Sample/S83E04_Module/display_sample/res/nv16_1920x1080.yuv
[INFO] display: Exit Display Sample[0].本文通过 MIPI CSI TX1 发送 5 帧数据通过 MAX9295E-MAX96712 回环到 RX0
通过 CIM 将数据存到 DDR然后存成文件可以通过看图软件查看下图仅为示例实际情况请结合输入图片进行确认 以下为 matrix_display_loopback_sample_tx01 正常运行的 log
[INFO] display: display device index 3
[INFO] display: dump flag 5
[INFO] display: loop 5
[INFO] display: display cfg /app/sample/S83_Sample/S83E04_Module/display_sample/cfg/matrix_idu01_plane1_nv12_csi01_yuv422_max9295_max96712_rx0_1080p_30fps/
[INFO] display: display pattern /app/sample/S83_Sample/S83E04_Module/display_sample/res/nv16_1920x1080.yuv
[INFO] display: Exit Display Sample[0].本文通过两路 MIPI CSI TX 发送 5 帧数据通过 MAX9295E-MAX96712 回环到 RX0通过 CIM 将数据存到 DDR然后存成文件可以通过看图软件查看本 sample 效果和 TX0、TX1 单路输出相同实际情况请结合输入图片进行确认。
以下为 1v_ovx8b_rx0_cpe0_idu0_tx0_max9295e 正常运行的 logsample 运行时长为 100 秒可以通过脚本中的-T 参数进行时长设置
[INFO] display: display cfg /app/sample/S83_Sample/S83E04_Module/display_sample/cfg/1v_ovx8b_rx0_cpe0_idu0_tx0_max9295e/
[INFO] display: Exit Display Sample[0].本文通过 MIPI CSI TX 将 OVX8B 的输入数据进行发送可以接入 MIPI RX 查看数据。在运行时可以通过命令“cat /sys/class/vps/flow/fps”查看 fps 是否正常可以看到 idu0 的 ichn0 的输入帧率为 30
----------------------------------------------------
Flow10 FPS
----------------------------------------------------
vin0 ctx 0: | ich0 30 | och0 0 | och1 30 | och3 0 | och4 0 |
isp0 ctx 0: | ich0 30 | och0 30 |
pym0 ctx 0: | ich0 30 | och0 30 |
idu0 ctx 0: | ich0 30 | ich1 0 | ich2 0 | ich3 0 | ich4 0 | ich5 0 | och0 0 | och1