开源ISP处理器 (xkISP) 发布
xkISP是基于Xilinx开发工具的开源图像信号处理器 (ISP),由复旦大学VIP实验室和阿里巴巴DAMO CTL实验室联合开发。到目前为止,xkISP支持处理任意分辨率的12位原始图像数据。欢迎访问xkISP项目官方在线论坛:http: //openasic.org/。
xkISP 简介
整个流水线包括17个功能模块,如上图所示。
文件结构如下图所示,其中:
克隆仓库
克隆github仓库:
git clone https://github.com/openasic-org/xkISP.git
cd xkISP
环境设置
修改setup_env.sh,添加当前系统下安装的vivado或vitis hls路径,然后完成环境设置。
source setup_env.sh
生成测试向量
在开始项目之前,需要使用xkISP Cmodel isp来生成测试向量。在tv中有一个测试图像input.raw和默认配置hls_param.txt .tv。
cd tv
./isp -i input.raw -c hls_param.txt
如果想自行准备测试图片,需要修改makefile\
./isp -i "your test image" -c "your configuration"
注意:每个模块级验证的配置是固定的。需要修改验证代码文件 (tb中的tb_"*module*".cpp) 以匹配 Cmodel 的配置。我们将在以后的更新中修改验证代码文件以读取配置文件。
模块级验证
对于模块级验证,可以使用tcl中的Makefile脚本,也可以根据需要修Makefile。
cd tcl
make
顶层集成验证
对于顶层集成验证,可以使用vitis GUI。示例如下所示:
1.使用vitis创建一个新项目。
在isp kernel下导入top.h在top.cpp,在主机平台 (x86) 下导入host.cpp、top.h、xcl2.cpp和xcl2.hpp。
2.设置顶层文件
在kernel目录下,双击.prj进入其配置界面,点击并设置“ isp_top ”函数为顶层函数。
3.设置测试图片路径和配置参数
将“ TOP_SRC1 ”和“ TOP_DST1 ”修改为自己的图像路径。
“ IMAGE_HEIGHT ”和“ IMAGE_WIDTH ”决定了输入图像的高度和宽度。
“ upper_left_x ”、“ upper_left_y ”、“lower_right_x *”、“ lower_right_y ”确定裁剪后图像左上角和右下角的像素位置。
“ CROP_HEIGHT ” 和 “ CROP_WIDTH ” 确定输出图像的高度和宽度。它们需要与“ upper_left_x ”、“ upper_left_y ”、“lower_right_x *”和“lower_right_y”匹配。
可以在 host.cpp中进行
4.编译和运行
点击Assistant窗口中的设置,选择我们编译的目标 ("emulation-SW”, “emulation-HW”, “HW ”)
点击Assistant窗口中的建立 ,开始编译。点击运行 ,开始执行项目。