专栏算法工具链J6X isp sample

J6X isp sample

新手村2025-07-30
116
0

1. 功能概述

本文的demo sample实现ISP模块回灌功能,将raw图通过ISP处理后得到YUV图(支持NV12和NV16),sample默认输出NV12格式。 基本的回灌模式不加载效果库,可用来验证ISP通路性能,只支持raw12格式的raw图。 dummy sensor回灌模式通过hb_dev.json指定效果库和raw格式,可用来验证ISP处理效果,支持raw8、raw12、raw16、raw24的raw图。 sample支持帧率统计,默认100帧统计一次。

1.1. 软件架构说明

本文的demo sample采用回灌流程,即从系统存储中读取文件,作为ISP的输入图像。 调用VIO API实现整个数据通路初始化并完成ISP处理。 效果库通过sensor驱动加载,回灌关注效果时使用dummy sensor,不需要接模组。

../../_images/isp_diagram.png

1.2. 代码位置及目录结构

本sample的代码位于工程目录:{sdk_dir}/test/samples/platform_samples/source/S83_Sample/S83E04_Module/isp_sample;

目录结构如下:

根目录包含 Kconfig 和外部接口的 Makefile , Kconfig 用于控制该demo是否加入整体编译;cfg目录中包含了VPM配置文件、CAM配置文件(dummy);res目录中包含了raw图像资源文件;src目录下的Makefile用于src目录下的编译, isp_sample.c 是main入口的所在文件。

1.3. API流程说明

API流程图如下:

../../_images/isp_flowchart.png
hb_vio_get_data接口通过传入Data type获取对应buffer,支持单独获取raw、单独获取yuv、组合获取raw+yuv(组合获取时yuv数据在plane0和plane1,raw数据在plane2)。 Data type需要与json文件中的isp_dma_output_format配置匹配,请参考: VPM配置

代码主逻辑如下:

2. 编译

2.1. 编译环境

本sample的编译环境使用SDK中的build工具,请参考: Build类型介绍

2.2. 编译说明

本sample编译依赖VPS系统相关的头文件:

编译依赖的库有如下:

编译命令:

3. 运行

3.1. 支持平台

J6X Matrix

3.2. 板端部署及配置

刷写系统软件镜像后,本sample的可执行文件位于板端:/app/sample/S83_Sample/S83E04_Module/isp_sample/bin/;

可能需要用到的资源:

  • VPM配置文件 vpm_config.json CAM配置文件 hb_j6dev.json 位于板端:/app/sample/S83_Sample/S83E04_Module/isp_sample/cfg/;
  • 参考输入raw图像位于板端:/app/sample/S83_Sample/S83E04_Module/isp_sample/res/。

3.3. 运行指南

3.3.1. 运行命令行说明

isp_sample :应用程序名字。

下面的表格是具体参数的说明:

参数名

用法

是否必需

-v

指定VPM的配置文件

-c

指定CAM的配置文件

-y

指定输入的raw图像文件

-m

指定pipeline id,按bit指定

-l

指定每个pipeline运行的循环次数

-d

指定保存输出YUV图像文件次数

帮助菜单:

3.3.2. 运行方法

回灌执行命令:

dummy回灌执行命令:

3.3.3. 运行结果说明

dump文件保存在执行目录,执行日志如下:

运行结果显示:

../../_images/tpg.png
算法工具链
社区征文征程6技术深度解析底层软件官方教程
评论0
0/1000