可编程片上体系SoPC将软核处理器Nios II、存储器、I/O等IP核集成到单片FPGA上,它一同具有软件和硬件所固有的特色。运用SoPC Builder将自界说的IP核加入到Nios II体系中,充分发挥IP核的可移植性、复用性,进步产品规划功率[1]。IP核经过Avalon总线与Nios II进行数据交互,Avalon片内总线成为CPU与IP核沟通的桥梁,直接影响体系的全体功率。Avalon总线是Altera公司专门为SoPC而推出的一套片内总线体系,与Nios系列的处理器软核一同,二者构成了Altera公司SoPC计划中的中心部分。Avalon总线规范规则了Avalon-MM(Memory Mapped)和Avalon-ST(Strming)两种接口[2]。运用SoPC技能进行视频数据处理时,两种接口的不同运用能够进步体系的运转速度。Avalon-ST接口是一种单向点对点的高速接口,首要针对的是高速数据流的传输,削减数据流处理中的瓶颈,特别合适处理图画和视频数据,运用Avalon-ST接口进行视频处理,可极大地进步体系的处理速度[3]。
本规划研讨了如何将从外部存储器中读取的视频数据转化为满意Avalon-ST视频处理协议的视频流,针对Altera公司供给的视频及图画处理套件中Frame Reader IP核只支撑紧缩格局的运用约束,规划并完结了紧缩和平面两种帧格局的帧读取IP核。
1 Avalon-ST视频处理协议
带有Avalon-ST接口的IP核能够用来处理要求高带宽、低推迟、单向性的数据。典型运用包括多路复用数据流、数据包及DSP数据处理等。Avalon-ST接口信号既能够用来描绘传统的没有承认信号的简略数据流,也能够描绘杂乱的带有传输协议或多通道穿插存取的数据包传输。
Avalon-ST接口包括两种传输方法:一般传输方法和包传输方法[4]。一般传输方法如图1所示。
图中写明晰用到的接口信号,带箭头的横线表明端口的效果方向,省掉了端口接纳端的信号称号。当ready信号有用时,发送端经过data端口发送数据,valid信号指明晰发送的数据是否有用。channel为通道号,error信号为过错标识号,零值代表传输无误。
包传输方法是在一般传输方法的基础上增加了startofpacket、endofpacket、empty三个信号,完结了对封包型数据传输的支撑。Startofpacket信号用来标识包的开端,endofpacket表明包的完毕,empty代表了包完毕的补零个数。
Altera公司供给的视频及图画处理套件能够便利、灵敏地对视频和图画进行处理。它供给通用的Avalon-ST接口及Avalon-ST视频处理协议,运用Avalon Memory-Mapped(Avalon-MM)接口衔接外部存储器模块并进行实时操控,能够很便利地经过MegaWizard面板进行参数设置及硬件生成。视频及图画处理套件中的IP核运用Avalon-ST视频处理协议,该协议以封包的方法经过Avalon-ST接口传输操控数据和视频数据。在很大程度上减小了视频处理体系对外部操控逻辑的需求。
Avalon-ST视频处理协议将包分红若干个记号,每个记号代表一段独自数据。传输前需求确认一个周期中并行传输的记号个数及记号位宽,每个记号最小为4位。传输的视频数据包只能是未紧缩的视频数据,操控数据包用来对输入的视频数据进行装备。每个包并行传输的榜首组记号中,最低4位为包类型标识符。0代表视频数据包,1~8为用户自界说包类型,9~14保存将来运用,15表明操控数据包。
一个视频数据包包括完好的逐行扫描帧或隔行扫描场的像素值,按图画平面中从左上到右下的次序扫描发送,发送前需求确认色彩形式Color Pattern和每个像素占用的比特数。每个像素对应传输中的一个记号,其位宽也决议了记号的位宽。色彩形式是对色彩平面采样的安排形式,每种色彩形式都可按并行方法传输或串行方法传输。一般常用的色彩形式有RGB、YCbCr、YCbCr(4:2:2)和YCbCr(4:2:0)。
完好的RGB和YCbCr型视频数据包结构如图2所示。
操控数据包用来传输操控信号,除了4位的包类型标识符15外,还包括宽(Width)16位、高(Height)16位、隔行标志位(Interlacing)4位。宽为一帧图画每行所包括的像素数,高为一帧或一场中包括的行数。隔行标志位Interlacing的前两位指明晰下一个视频数据包是否为隔行扫描方法,00表明逐行扫描方法,10表明偶数场,11为奇数场。当时两位为10或11时,标志位中的后两位用于隔行数据的同步。
每次发送视频数据包之前必须先发送操控数据包,每个操控数据包一般由10个有用记号组成,每个记号只运用最低4位,其他位不运用。榜首个有用记号为包类型标识符,剩余的9个有用记号为宽、高和隔行标志位。图3为并行传输3个记号的操控数据包。
图中榜首列记号是包类型标识符,F为十六进制数,等于十进制数中的15。记号1~4的低4位一起组成16位的帧宽,记号5~8的低4位组成16的帧高,记号9的低4位为隔行标志位(Interlacing 4位)。
2 帧读取IP核的硬件规划
2.1 整体规划计划
运用SoPC技能进行视频数据处理时,待处理的原始视频数据能够是由外部设备输出的视频信号,也能够是寄存在外部存储器中的视频数据。当视频数据寄存在存储器中时,SoPC体系需求运用Avalon-MM接口从外部存储器中读取视频数据,然后经过Avalon-ST接口将本来的视频数据转为满意Avalon-ST视频处理协议的视频流,以便利之后运用Altera视频及图画处理套件对视频进行处理。因而体系中需求一个帧读取IP核来完结这种转化。
一帧完好的图画其像素数据在存储器中有多种安排形式,按色彩空间能够分为RGB型和YUV(YCbCr)型。如果是YUV模型,又能够按安排方法分为平面型和紧缩型,按采样比可分为4:4:4、4:2:2和4:2:0等。一般RGB模型均为紧缩型,按像素值的位数不同可分为RGB24、RGB32等。总的说来,常用的数据格局有RGB24、RGB32、YV12、I420等几种。
现有的Altera公司供给的视频及图画处理套件中Frame Reader模块能够将存储器中视频数据转为满意Avalon-ST视频处理协议的视频流,但该IP核只支撑紧缩格局,原始数据在存储器中必须按像素扫描次序接连寄存。而实践中有多种帧格局,例如I420是平面格局,这种状况就无法运用Frame Reader了。
在实践运用中,因为Altera的Frame Reader运用约束,作者自行研发了帧读取IP核(Frame Reader),除了完结紧缩格局的视频数据转为满意Avalon-ST视频处理协议的视频流,还能完结I420到RGB24的平面格局的转化。
该IP核应包括Avalon总线读取模块,帧格局转化模块、视频流输出模块,以及操控器和操控寄存器组。如图4所示。Avalon总线读取模块用于拜访Avalon总线,然后读取外部存储器中的视频数据。帧格局转化模块完结YUV向RGB的转化,视频流输出模块用来发生满意Avalon-ST视频处理协议的视频流。
图中实线为数据流向,虚线为操控信号流向。双向箭头一同表明晰主操控器的操控信号,以及被控模块的反应信号。
2.2 Avalon总线读取模块
Avalon总线读取模块运用根据地址读写的Avalon-MM接口,这种接口包括主端口和从端口。主端口能自动建议传输信号,从端口对传输信号进行呼应,两种接口在数据传输过程中经过Avalon交流结构相衔接。Avalon总线读取模块需求读取视频数据,并能够自动对Avalon总线建议读取信号,因而应运用Avalon-MM主端口。
当总线读取模块作业时,主操控器传入地址和读入字节数目等参数后发动该模块,该模块对总线建议数据读取操作。因为外部存储器中的视频数据为I420格局,即采样比为4:2:0,因而每读取一行视频数据,要读取两次Y重量、一次U、V重量,这样就完结了采样比4:2:0到4:4:4的转化。该模块内部包括一个FIFO作为输入缓存,当模块从总线上读取数据后,直接将数据按读入的次序输入FIFO,以便后续模块处理。
2.3 色彩空间转化模块
RGB和YUV两种色彩模型之间的转化可按下式核算[5]:
RGB24格局是紧缩型格局,在存储器中是按扫描次序接连寄存的,每个像素重量占8位,共24位。I420格局是色彩模型为YUV,采样比为4:2:0的平面格局。Y、U、V三个重量在存储器中别离占用独自的一片存储区域,Y重量的数目与原始帧的像素个数共同,U、V重量仅仅原始像素个数的1/4。把Y重量平面按2×2进行区分,相邻构成正方形的4个Y重量划为一组,每组共用一个U、V重量。例如:Y_0,0、Y_0,1、Y_1,0、Y_1,1四个重量共用U_0,0和V_0,0。
RGB24和I420转化公式需求浮点运算,而Verilog-HDL言语无法直接处理浮点数[6],因而规划中将原公式扩大2n倍后再进行处理,然后再缩小相应的倍数。色彩空间转化模块时序如图5所示。当iDVAL信号为1时,表明输入数据Y、Cb、Cr有用,模块处理完后,oDVAL信号置1,此刻输出数据Red、Green、Blue有用。
2.4 视频流输出模块
经过色彩空间转化模块处理后的数据,按次序写入作为输出缓存的FIFO。从图6中能够看出,当dout_ready信号有用时,视频流输出模块首要发送操控数据包。输出的数据流为并行传输形式,每个周期一同传输3个记号(symbol),每个记号占8位。将dout_data信号改写为并行8位形式,能够看出视频流为176×144的逐行扫描数据。
startofpacket和endofpacket别离标记了数据包的开端和完毕。操控数据包发送完毕后,第二个周期开端发送视频数据;一帧视频数据彻底发送完后,开端等候发送下一帧数据。
3 帧读取IP核的测验
测验渠道是以Altera公司Cyclone II EP2C35F 672C8 FPGA芯片为中心的SoPC开发渠道,该渠道一同装备了16 MB的Flash、2 MB的SSRAM以及16 MB的SDRAM等。建立出运用Nios II软核处理器的SoPC体系,然后将帧读取模块作为组件接入该SoPC Builder体系。
本规划运用Quartus II 9.1进行归纳与仿真,归纳后的效果如表1所示。
经过测验发现,本文规划的IP核占用的逻辑单元略少于Altera公司的Frame Reader IP核,可归纳的最高作业频率fmax也较高,且在功用上更完善。因为IP核具有色彩空间转化功用,削减了Nios II软件开发的担负,因而运用该IP核开发SoPC视频处理体系愈加便利、灵敏,体系功能可得到进一步提高。
本文针对传统的视频处理体系,研讨了一种根据Avalon-ST接口的帧读取模块的规划。该IP核突破了现有的Frame Reader模块约束,处理了传统视频处理体系的传输接口瓶颈问题。该IP核在视频处理体系的运用中,具有较大的灵敏性、优越性。SoPC的IP核复用技能使得规划效果具有很强的实用性、通用性和扩展性。