基于Vivado HLS的Down Scaler视频系统设计

2016-03-20 09:14
单片机与嵌入式系统应用 2016年11期
关键词:视频流镜像运算

安 航

(西安电子科技大学微电子学院,西安710126)

基于Vivado HLS的Down Scaler视频系统设计

安 航

(西安电子科技大学微电子学院,西安710126)

介绍一种基于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平台硬件处理方式的移植。

Vivado HLS;FPGA;Down Scaler;高层次综合

引 言

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

1 高层次综合概述

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

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

2 Down Scaler模块设计

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

图1 高层次综合的Gasjki-Kuhn Y-chart图描述[1]

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所列。

表1 “软件处理”和“硬件处理”Down Scaler模块的计算单元大小对比

2.2.2 像素信息计算和镜像运算整合

与传统Down Scaler算法对像素分量Y、U、V进行区分后再做镜像、滤波运算不同,本文中的Down Scaler对输入的像素点信息直接进行镜像和滤波运算,这样做是为了简化IP结构,更好地适应AXI4-Stream协议[2]。另外,传统Down Scaler算法包含4个串行过程,分别是水平镜像、水平缩小、竖直镜像和竖直缩小,使用Vivado HLS工具的Dataflow模式将串行过程并行执行后,在不改变模块工作频率的条件下,只能够满足对1920×1080P/25 fps的视频进行实时运算。为了进一步提高运算性能,需要进一步降低运算过程之间的数据依赖性。新的算法只包含两个缩小过程,即水平缩小和竖直缩小,镜像运算被整合在缩小运算中,并且只在需要的时刻进行。对镜像运算的整合虽然增加了算法编写的复杂程度,但是缩短了过程间的数据传输链路,使设计最终能够达到性能参数要求,满足对1920×1080P/60 fps的视频进行实时运算。

3 视频系统设计

3.1 系统参数要求

输入视频流为全高清视频、1920×1080P/60 fps、YUV4:4:4格式,输出视频流为高清视频、1080×720P/60 fps、YUV4:4:4格式,要求Down Scaler模块的工作频率等于输入视频像素频率,即148.5 MHz。

3.2 Down Scaler视频系统搭建

实时视频系统架构可以分为两大类,一类是不含帧缓存模块的系统,另一类是包含帧缓存模块的系统,本文中的Down Scaler视频系统属于第二类架构。

根据图2所示的系统架构,使用IP integrator搭建的Down Scaler视频系统,该系统用到以下IP核:

①Test Pattern Generator[3]——Xilinx IP核,用来产生不同格式的输入视频流;

②Down Scaler——Vivado HLS生成的IP核;

③AXI Video Direct Memory Access[4]、AXI Interconnect[5]、MIG 7 Series[6]——XilinxIP核,用来在DDR内存中构建帧缓存器;

④Clocking Wizard[7]——Xilinx IP核,用来生成系统时钟信号;

⑤Proc Sys Reset——Xilinx IP核,用来生成系统重置信号;

⑥Video In to AXI4-S[8]、AXI4-S to Video Out[9]——Xilinx IP核,用来进行AXI4-Stream和视频协议转换;

⑦VTC(Video Timing Controller[10])——Xilinx IP核,用来检测输入视频时钟周期和产生输出视频时钟周期。

图2 Down Scaler视频系统架构

至此,一个基于Vivado HLS的Down Scaler视频系统设计完成。

结 语

本设计选取Xilinx Kintex-7评估板作为开发平台,使用高层次综合工具Vivado HLS进行Down Scaler模块的设计、仿真和验证,使用Vivado进行实时视频系统构建,在满足实时性要求和FPGA资源消耗要求下,实现了对Down Scaler视频算法从PC端软件处理向FPGA平台硬件处理的移植。经测试,由TPG生成的1080P视频流经过本文设计的Down Scaler系统,成功输出了720P视频流,Down Scaler的性能满足了设计要求。

随着系统设计和算法日益复杂,新的设计方法——高层次综合开始出现并将逐渐取代传统的硬件系统设计方法,成为系统设计的主流方式。未来的设计者可以从算法的角度直接下降到硬件平台来完成硬件开发,对于复杂的算法,这一方法将大幅缩短开发周期,显著降低代码量,同时也为算法工程师和软件工程师打开了硬件设计的大门。

[1]Wim Meeus,Kristof Van Beeck,Toon Goedemé,et al.An overview of today’s high-level synthesis tools[J].Design Automation for Embedded System,2012,16(3):31-51.

[2]ARM.AMBA 4 AXI4-Stream Protocol Specification[EB/ OL].[2016-05].http://infocenter.arm.com/help/index. jsp?topic=/com.arm.doc.ihi0051a/index.html.

[3]Xilinx.LogiCORE IP Test Pattern Generator v5.0[EB/OL]. [2016-05].http://www.xilinx.com/support/answers/ 56929.html.

[4]Xilinx.LogiCORE IP AXI Video Direct Memory Access v6.0 [EB/OL].[2016-05].http://www.xilinx.com/support/documentation/ip_documentation/axi_vdma/v6_0/pg020_axi_vdma. pdf.

[5]Xilinx.LogiCORE IP AXI Interconnect v2.0[EB/OL]. [2016-05].http://www.xilinx.com/support/documentation/ip_documentation/axi_interconnect/v2_0/pg059-axi-interconnect.pdf.

[6]Xilinx.7 Series FPGAs Memory Interface Solutions v1.9 and v1. 9a[EB/OL].[2016-05].http://www.xilinx.com/support/documentation/ip_documentation/ug586_7Series_MIS.pdf.

[7]Xilinx.LogiCORE IP Clocking Wizard v5.0[EB/OL].[2016-05].http://www.xilinx.com/support/documentation/ip_ documentation/clk_wiz/v5_0/pg065-clk-wiz.pdf.

[8]Xilinx.LogiCORE IP Video In to AXI4-Stream v3.0[EB/ OL].[2016-05].http://www.xilinx.com/support/documentation/ip_documentation/v_axi4s_vid_out/v3_0/pg044_v_axis_ vid_out.pdf.

[9]Xilinx.LogiCORE IP AXI4-Stream to Video Out v3.0[EB/ OL].[2016-05].http://www.xilinx.com/support/documentation/ip_documentation/v_axi4s_vid_out/v3_0/pg044_v_axis_ vid_out.pdf.

[10]Xilinx.LogiCORE IP Video Timing Controller v6.0[EB/ OL].[2016-05].http://www.xilinx.com/support/documentation/ip_documentation/v_tc/v6_0/pg016_v_tc.pdf.

[11]徐家惠,戚海峰,高健,等.基于Vivado HLS的AC97音频系统设计[J].实验室研究与探索,2014,32(12):35-38.

安航(工程师),研究方向为嵌入式系统开发与应用。

Down Scaler Video System Based on Vivado HLS

An Hang
(School of Microelectronics,Xidian University,Xi'an 710126,China)

The design of Down Scaler video system based on FPGA is introduced.The key component of the system is XC7K325T chip on Xilinx Kintex-7 board,and Vivado design suite is used to design,including the use of Vivado HLS for Down Scaler module design.Firstly,the Down Scaler is described with C/C++language according to the specifications of Vivado HLS.Then,the RTL model and the IP core are generated by the Vivado HLS tool.Finally,a real-time video system is built by connecting the Down Scaler IP core and other Xilinx IP cores such as TPG and VDMA.The design transforms the Down Scaler video algorithm from the PC-based software processing method to the FPGA-based hardware processing method under the condition of meeting the requirementsof real-time performance and FPGA resource consumption.

Vivado HLS;FPGA;Down Scaler;high-level synthesis

TN791

:A

薛士然

2016-05-27)

猜你喜欢
视频流镜像运算
边缘实时视频流分析系统配置动态调整算法研究
重视运算与推理,解决数列求和题
基于视频流传输中的拥塞控制研究
镜像
有趣的运算
镜像
铁路货场智能大门集装箱全景图像采集方法研究
“整式的乘法与因式分解”知识归纳
美国视频流市场首现饱和征兆
镜像