背景介绍
图像和视频处理在现代生活中应用广泛,影响深远,利用SoC实现成为日益广泛的解决方案。
作为本人在2022年参加的FPGA创新设计大赛的参赛项目,本方案基于PYNQ-Z2开发板,在Xilinx Vivado2019.2 EDA工具上搭建了一个基础的图像视频处理的block design框图。
如下所示为一个典型的视频处理系统:
![](https://i-blog.csdnimg.cn/blog_migrate/e00340e7e5dd9449ff59c77ea49d39cd.png)
具体设计
下图为在Vivado2019.2中实现的block design框图搭建效果:
![](https://i-blog.csdnimg.cn/blog_migrate/9a1ab9a06050dc102b23d8800713a102.png)
数据流向如图所示:数据进入Video In to AXI4-Stream模块后经过Demosaic进行预处理,存入VDMA,再进行Gaussian后处理,存入VDMA。接着两路信号进入Video Mixer模块合并为一路信号,通过AXI4-Stream to Video Out模块传入RGB2DVI模块进行输出,输出为TMDS差分信号。
![](https://i-blog.csdnimg.cn/blog_migrate/1e60c3b6370d28a6f92584a7f0215ff9.png)
ZYNQ核参数配置
其中ZYNQ核的配置总览如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/01b134501a5b5a770ea334bc63fa2e05.png)
设置一个HP0的接口:
![](https://i-blog.csdnimg.cn/blog_migrate/e16f44edc5d139705db7f7dc94d2c460.png)
100MHZ时钟信号CLK0的设置:
![](https://i-blog.csdnimg.cn/blog_migrate/a1746c60506d307d483167e32ea6e579.png)
中断的设置:
![](https://i-blog.csdnimg.cn/blog_migrate/d18cc28b54f987ebd8acf6a3e3959205.png)
IP核的使用
本设计中使用了如下若干ip核:
1.Demosaic去马赛克:
![](https://i-blog.csdnimg.cn/blog_migrate/45f066d1298230a0585093b573521b67.png)
参数配置:数据位宽为8,像素为3840x2160
![](https://i-blog.csdnimg.cn/blog_migrate/2f34177f13b3849b325b910f6bb1b791.png)
2.Gaussian图像处理:
![](https://i-blog.csdnimg.cn/blog_migrate/ff5f7c71fe725e34cee2119343cf8a37.png)
3.Viideo Mixer:
![](https://i-blog.csdnimg.cn/blog_migrate/198ba7e7ce032b0d3a132cc9d1b7fe00.png)
参数配置:2路输入数据流格式均为8位RGB,像素为1920x1080
![](https://i-blog.csdnimg.cn/blog_migrate/c12f4914e8828185db89a675ed5a0ad3.png)
4.RGB2DVI:
![](https://i-blog.csdnimg.cn/blog_migrate/bc1e8922af544a8c6c581ca311adfd2b.png)
参数配置:
![](https://i-blog.csdnimg.cn/blog_migrate/cc1b053eb799baedcd7401b89f81eac5.png)
5.AXI I2C总线:
![](https://i-blog.csdnimg.cn/blog_migrate/7700d367e6a5fd8e12c11748d8195bd8.png)
参数配置:时钟为100MHZ
![](https://i-blog.csdnimg.cn/blog_migrate/8d3752da764e2bf713eed4363ad0a033.png)
6.AXI VDMA(4个):
![](https://i-blog.csdnimg.cn/blog_migrate/79175747232b60521f70b35ea0af381f.png)
参数配置(Basic):地址位宽设为32,frame buffer设为3。
![](https://i-blog.csdnimg.cn/blog_migrate/f1c2e762105219bc9b4125ffb867e13f.png)
Adcanced:
![](https://i-blog.csdnimg.cn/blog_migrate/e75fd03bbc8cbc945cde269e82eb899f.png)
7.AXI中断控制器:
![](https://i-blog.csdnimg.cn/blog_migrate/fc18fd53da3c55672dbab41a94a6063e.png)
参数配置:设为高电平有效。
![](https://i-blog.csdnimg.cn/blog_migrate/0d583cd22ed31bb7d4f6ab1fc222e267.png)
8.VTC时间控制器:
![](https://i-blog.csdnimg.cn/blog_migrate/68d810d3f334fccb62aceb364d2797d7.png)
参数配置1:使能generation信号端口。
![](https://i-blog.csdnimg.cn/blog_migrate/376c9eb8573331d54b7c3b6c9f361663.png)
2
![](https://i-blog.csdnimg.cn/blog_migrate/9221f20a367b868e0fe8b5ad5f6c135b.png)
9.AXI4-Stream2Video Out:
![](https://i-blog.csdnimg.cn/blog_migrate/9135ba4181e23c7fb442d5ae2cb1c9e4.png)
参数配置:时钟模式设为common,FIFO深度为2048(经验值)
![](https://i-blog.csdnimg.cn/blog_migrate/9859ae22f5f5294f743356837f9ba299.png)
10.Constant常数:
![](https://i-blog.csdnimg.cn/blog_migrate/e6cd9518a48d7410913ac883bd44e445.png)
11.concat数据拼接:
![](https://i-blog.csdnimg.cn/blog_migrate/1376031eefeddae74e6f818cdaa1d0a3.png)
参数配置:输入9位信号
![](https://i-blog.csdnimg.cn/blog_migrate/0f28405259727a6ceab83dfb7fd07e6d.png)
12.Video In2AXI4-Stream:
![](https://i-blog.csdnimg.cn/blog_migrate/a9ac9f6e1cbd5af45c02bc920dd99632.png)
参数配置:FIFO深度为2048,时钟模式设为independent
![](https://i-blog.csdnimg.cn/blog_migrate/9320d446a3943a4c4da8fe2c2c55ac33.png)
资源开销
![](https://i-blog.csdnimg.cn/blog_migrate/063f111c6555d4dc2e1232d4134dcb77.jpeg)
项目使用了28k个LUT以及35k个FF,总体开销较高。