基于VivadoHLS的DownScaler视频系统设计

 摘要:介绍一种基于FPGA的 Down Scaler视频系统设计。系统的核心部件采用Xilinx Kintex-7的板载XC7K325T 芯片,系统设计使用Vivado工具,包括使用Vivado HLS进行Down Scaler模块设计。首先按照Vivado HLS的代码规范进行Down Scaler模块的C/C++代码编写,然后利用编译工具生成RTL级代码和综合结果Down Scaler IP核,最后将Down Scaler IP核与TPG、VDMA等Xilinx视频IP核互连,构建实时视频系统。在满足实时性要求和FPGA资源消耗要求的条件下,该设计实现了对Down Scaler视频算法从PC端软件处理方式向FPGA平台硬件处理方式的移植。

 引言
在电子设计自动化领域,高层次综合工具变得越来越受欢迎,其能够将C/C++、SystemC 、Matlab等高级语言的函数转译成RTL级的代码,这一功能将数字电路设计的抽象层进一步提升。随着嵌入式系统复杂程度的增加,高层次综合工具开始深入电子系统尤其是嵌入式系统的设计流程。本文介绍一种基于Xilinx公司的高层次综合工具Vivado HLS的Down Scaler视频系统设计。

 1高层次综合概述
在过去20年,占主导地位的电子设计流程中,硬件设计人员需要手工完成从系统功能指标到RTL级代码的所有工作。如今,这样的设计流程开始变得困难,因为越来越多的功能可以被集成在一个芯片上,按照传统的设计流程,开发人员独自一人完成所有的功能变得越发困难,但因为设计功能的增多而增加设计团队的人员数量,从经济角度上看是不可行的,这意味着设计生产率必须有所提高。高层次综合能够通过从算法层到RTL层的自动化来提高设计生产率,从图1(b)中可以看到,应用高层次综合,系统设计从功能指标到自动化设计流程开端的距离缩短了。

在设计流程中,应用高层次综合工具能够给设计工作带来以下便利:首先,需要设计人员编写的代码量显著减少,在缩短开发周期的同时降低了错误率。其次,在如今的产品开发过程中,验证所需的时间往往超过设计的时间,使用高层次综合工具能够缩短验证时间,在高层次综合工具生成设计代码的同时,还能够同时生成测试平台代码,可以直接通过测试数据来验证设计代码是否正确。

 2Down Scaler模块设计
传统的Down Scaler运算是在PC架构下进行的,以汤姆逊视频网络公司的产品 THVN VS7000为例,其中的 Down Scaler模块是PC服务器中的一个C++应用程序,在进行运算处理前,视频流的获取通过一块 Black Magic板卡来实现,其接收到的每一帧图像的像素信息通过PCIe传输到PC服务器。服务器首先将像素信息存储在3个不用的内存空间Y、U、V,之后应用程序Down Scaler对这3个空间的像素信息进行运算处理。本文描述的设计目标是使用FPGA中的一个Down Scaler IP核实现对视频流的“硬件处理”,代替传统PC端的Down Scaler C++程序对图像进行“软件处理”的方案,从而取消完整帧像素信息Y、U、V成分的预储存步骤。

 基于VivadoHLS的DownScaler视频系统设计_设计制作_MEMS/传感技术

 2.1 模块参数要求
视频的缩小比例为2/3,像素的相位数为2,根据相位数、亮度色度、水平竖直的不同情况,共计有8个滤波窗,每个滤波窗包含11个参数,由 Lanczos算法提前计算确定,“镜像”处理针对图像边缘的5个像素点进行。

 2.2 模块设计关键点
 2.2.1 计算单元
根据参数要求,Down Scaler模块包括两种BRAM计算单元,分别是Window和Linebuffer。 Window是一个一维存储空间,用来存储11个像素点,Linebuffer是一个二维存储空间,用来存储11行像素点。Linebuffer在每一个工作频率上接收新的输入像素,之前的像素在每一个工作频率上向存储空间的下方移动一个位置,即最新接收的像素点总是存储在Linebuffer中的初始位置。当Linebuffer填满后,Downscaling运算开始,即通过Window 存储11个采样像素,并对像素信息进行滤波运算。相比存储一帧完整图像后再进行运算的“软件处理”方式,通过使用Linebuffer和Window作为“硬件处理”方式的存储单元大幅降低了模块对存储空间的需求。“软件处理”和“硬件处理”Down Scaler模块的计算单元大小对比如表1所列。

 基于VivadoHLS的DownScaler视频系统设计_设计制作_MEMS/传感技术

70
72
0
23

相关资讯

  1. 1、星巴克App能开发票吗?星巴克App开发票的方法4324
  2. 2、酷狗音乐蝰蛇音效制作工具怎么用?酷狗音乐蝰蛇音效制作的方法2895
  3. 3、Win11更新失败错误代码0x800f081f怎么办?6268
  4. 4、网页内容无法复制要怎么破?六个方法轻松搞定!4931
  5. 5、光学绘画如何使用?光学绘画使用方法3304
  6. 6、同桌游戏怎么邀请好友?同桌游戏邀请好友的方法483
  7. 7、酷音铃声怎么删除铃声?酷音铃声删除铃声的方法1266
  8. 8、Anydesk怎么设置固定访问密码?Anydesk设置固定访问密码的方法4234
  9. 9、小黑屋如何找丢失的稿件?小黑屋找到丢失的稿件的方法3072
  10. 10、Win10软件界面显示模糊怎么办?4626
全部评论(0)
我也有话说
0
收藏
点赞
顶部