当前位置: 首页 > news >正文

闲庭信步使用图像验证平台加速FPGA的开发:第六课——测试图案的FPGA实现

(本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程文件请关注知识星球:成工fpga,关注即送200GB学习资料,链接已置顶!)

在FPGA的视频开发中,使用测试图案能够加速开发和问题的定位,如果摄像头还没到位,可以先使用测试图案进行算法的开发和验证;再比如视频相关的信号线有问题,造成采集的图像有问题,可以是使用横条纹,竖条纹,斜条纹等快速的来定位是哪根数据线有问题,一遍快速的修复。

测试图案,就是在已有的场同步,行同步,数据有效这三个信号的控制下,用测试的数据替换真实的图像数据,最常见的测试图案就是黑白条纹和color bar,虽然简单,但是定位问题非常有效果。本篇除了实现条纹和color bar,还可以放空思维,填充任意的测试图案。

在test_pattern模块中,pattern_sel控制产生不同的测试图案,grid_size控制其它方格的大小,hsync_cnt是每一行中列的计数信号,vsync_cnt是行计数信号,active_in,hsync_in,vsync_in就是数据有效,行同步和场同步信号,hsync_cnt,vsync_cnt,active_in,hsync_in,vsync_in等信号都来自video_ctrl模块。

可以产生横条纹,竖条纹,斜条纹,彩条,棋盘,行列计数的乘除,与或异或随机数等,而且可以是每个操作的任意组合。

不同模式的任意组合,可以产生更多形形色色的图案。

在顶层的top文件中,例化test_pattern模块。

在tb_image_sim仿真文件中的第二个initial块中,保存了图像测试平台和FPGA硬件仿真产生的测试图案。需要注意的一点是,在FPGA的硬件仿真中,不同于图像测试平台可以在0时刻任意产生多副图片,一帧数据的处理时间只能产生一幅图像,也就是每次frame_done生成一幅图像,所以这儿用了repeat语句,用来产生TOTAL_NUM副图像,本例产生了22幅测试图案。

还有一点需要注意,由于用来存储图像数据的seq_r,seq_g,seq_b都是队列,如果每帧图像处理完后不清空队列,数据会继续往后面写,save_3chnl_bmp (path_seq,seq_b,seq_g,seq_r)就会生成22幅相同的图片,所以每生成一幅图片,就将队列用delete清空一次。

最后我们双击sim文件夹下的top_tb.bat文件,完成系统的自动化仿真。

可以看到在modelsim的Transcript有如下的打印信息,共保存了22幅图片(从0开始计数)。

打开img文件夹下的nseq文件下,有图像测试平台生成的9幅图片。

打开img文件夹下的seq文件夹,可以看到生成的22幅图片。

http://www.xdnf.cn/news/1091629.html

相关文章:

  • 01-elasticsearch-搭个简单的window服务-ik分词器-简单使用
  • ECR仓库CloudFormation模板完整指南
  • 网安-SSRF-pikachu
  • 小程序主体变更全攻略:流程、资料与异常处理方案
  • 使用DDR4控制器实现多通道数据读写(十九)
  • 安卓设备信息查看器 - 功能介绍
  • 【软件工程】tob和toc含义理解
  • Claude Code 环境搭建教程
  • Go语言高级面试必考:切片(slice)你真的掌握了吗?
  • 基于Spring Boot+Vue的DIY手工社预约管理系统(Echarts图形化、腾讯地图API)
  • Linux驱动05 --- TCP 服务器
  • Android网络层架构:统一错误处理的问题分析到解决方案与设计实现
  • 第九篇:信息化知识 --系统集成项目管理工程师 第3版专题知识点笔记
  • A模块 系统与网络安全 第四门课 弹性交换网络-2
  • SAP ERP与Oracle EBS对比,两个ERP系统有什么区别?
  • RAM带宽计算及分析
  • oracle ocp题库有多少道题,以及题库背诵技巧
  • 编译安装的Mysql5.7报“Couldn‘t find MySQL server (mysqld_safe)“的原因 笔记250709
  • Git 使用
  • Live555-RTSP服务器
  • Higress 上架 KubeSphere Marketplace,助力企业构建云原生流量入口
  • 【Linux】Rocky Linux 安装 Docker 与 Docker-Compose
  • React Native 状态管理方案全面对比
  • 暑假算法日记第五天
  • MySQL事务操作全解析
  • ReactNative【实战系列教程】我的小红书 6 -- 购物(含商品搜索、商品分类、商品列表)
  • uniapp真机调试“没有检测到设备,请插入设备或启动模拟器后点击刷新再试”
  • 【内核基础精讲】I2C 子系统核心概念与结构全解析
  • 从互联网电脑迁移Dify到内网部署Dify方法记录
  • 【基础算法】贪心 (四) :区间问题