一种基于FPGA平台的静态高清图像编码系统

2018-11-09 08:28郭冬梅翁孚达
制导与引信 2018年2期
关键词:以太网内存编码

王 珺, 张 靓, 郭冬梅, 翁孚达

(上海无线电设备研究所,上海200090)

0 引言

原始的视觉图像信息形式上是连续的模拟量,随着现代计算机技术和电子技术的发展,将图像信息投影在二维平面上,并进行离散采样,得到以数字形式存储和传输的数字图像。由于图像信息是高维信息(二维或二维以上),图像信号的内容复杂,数字化后的数据量非常大,这成为图像信息采集、存储和信息处理的主要障碍[1]。例如,一幅分辨率为1 024×768的24位真彩色图像的数据量约为2 MB,一张容量为4.7 GB的DVD光盘,仅能存放约2 400幅这样的静止图像。那么,当水平和垂直分辨率都达到65 535的时候,一幅图像的数据量就将达到12.9 GB,按每次处理30幅计算,需要处理的数据量达到387 GB,如果需要按照周期处理,其数据量之巨大难以想象。如此庞大的数据量对图像的存储和传输都是非常大的困难,在存储容量和通信带宽一定的情况下,必须对图像进行压缩编码。

在图像编码领域,高性能的压缩算法一直是人们不懈追求的目标,特别是在低比特率压缩时具有低存储量、低功耗、实时的高性能编码算法是近几年的研究热点。高效图像压缩方法的硬件实现是图像压缩编码走向应用领域的关键一步,其中的JPEG 2000标准是目前静止图像压缩的标准中最新的也是性能最为优越的算法之一。本文基于Xilinx高性能FPGA开发平台,实现了一种嵌入式静态高清图像编码系统,以满足大分辨率以及超大分辨率静态高清图像压缩的需求。

1 系统方案

JPEG 2000技术是开发静态图像压缩技术的首选。JPEG 2000压缩算法采用离散小波变换,自适应算术编码和优化截断的嵌入式编码方式,具有高压缩比、有损压缩和无损压缩、感兴趣区域压缩等特点[2]。数字图像编码系统的硬件平台结构如图1所示。硬件系统主要由两部分组成,DVI接口的FMC子卡以及Xilinx公司的VC707评估板。

DVI接口的FMC子卡具备两路DVI接口,一路接收,一路发送,子卡采用TI公司的DVI接口芯片TFP401 A,实现解码和编码功能,完成并行的图像数据和DVI接口之间的转换,并将输入和输出的并行图像数据通过FMC接口和VC707评估板相连接。

VC707评估板是Xilinx公司基于V7系列高性能FPGA的评估板,板卡采用PCIE全长板型设计,具备8x PCIE总线能力,能够和主机通过PCIE总线完成高性能数据交互。评估板板载1 GB,64bits位宽的高性能DDR3动态存储器模组,同时具备千兆以太网和HDMI视频输出接口,性能强大,适合进行各种基于FPGA的算法和接口逻辑开发验证。图像压缩编码的主要功能是在VC707评估板的FPGA上通过逻辑编程实现。除了JPEG 2000编码模块外,还需要其他配套的IP,比如DDR3模块、图像处理模块、千兆以太网模块等,以及相关的驱动开发,将这些模块整合在一起,成为一个完整的图像压缩编码系统。根据功能划分,FPGA内部逻辑设计框图如图2所示。

FPGA是系统实现对高对比度图像进行编码的运算核心,FPGA内部逻辑主要包含DVI输入模块、数据编码IP核模块、DDR3 IP核模块和千兆以太网IP核模块。

2 系统处理流程

嵌入式数据编码处理系统把外部的图像信号经由子板采集后,由DVI接口模块处理后传送给数据编码IP核模块进行符合JPEG 2000标准的数据压缩处理,并通过DDR3外部存储空间寄存处理数据,然后将压缩后的图像数据通过千兆以太网传输到主机指定位置存储,并通过千兆以太网主机调试程序对以太网进行配置,用户可以使用相关开源软件查看压缩结果。嵌入式数据编码处理系统的处理流程图,如图3所示。

(1)输入原始图像数据

通过DVI图像转换芯片TFP401A实现原始图像采集,得到原始图像的数字RGB信号,将数字化后的图像数据按照期望的尺寸进行预处理,以标准格式的图像数据流传输至下一级处理模块,用于后续压缩处理。数字RGB信号并不适用于图像信号处理领域,需要先将RGB信号转换为另一种图像信号YCrCb格式,以满足压缩核对图像输入数据的格式要求。

(2)图像数据压缩编码

图像数据压缩是整个静态高清图像编码系统的核心,采用ALMA公司商用的JPEG2000压缩核JPEG2K-E完成图像数据压缩编码。在逻辑系统完成时钟和复位逻辑后,对IP核进行相应的配置,配置内容存储在FPGA的RAM配置文件中,通过修改这个文件可以修改相应的配置信息,完成IP核配置后就可以将图像数据流接入压缩核进行计算。

(3)图像数据缓存处理

缓存数据可以集中数据进行计算,也可以避免计算产生的延时而导致数据的丢失。先将接收图像数据信号缓存到DDR3存储器中,从DDR3存储器中将图像数据顺序的读出,再以图像数据流的形式传递给后级模块。JPEG2K-E内核具备独立数据读取和写入通道的外部内存接口,这使得JPEG2K-E能够不受内存类型的局限,内存接口简单灵活。采用Xilinx公司的MIG 7 Series IP核,进行模块化设计,实现DDR3的数据存储和读取。

(4)图像数据结果输出

图像数据压缩结果通过千兆以太网输出,采用Xilinx的IP核Tri Mode Ethernet MAC和1G/2.5G Ethernet PCS/PMA or SGMII实现千兆以太网的逻辑接口设计。针对千兆以太网的逻辑接口设计有寄存器模块和数据传输模块,其中寄存器模块用来完成千兆以太网的配置,主要是配置源地址、目的地址以及传输数据长度等工作参数,最终完成将压缩结果通过千兆以太网传输到主机的功能。通过主机调试程序,将压缩后的图像数据通过千兆以太网传输到主机指定位置存储,并生成图像文件,用户可以使用相关开源软件查看压缩结果。

3 关键模块简介

图像编码处理以FPGA作为系统主处理器,完成图像转换的各种处理工作。主要负责接收主机传送的图像数据,解析主机传送的控制命令,并实现相关的图像处理和转换工作。

3.1 DVI输入模块

图像数据采集模块从DVI接口采集图像信号,将采集到的信号由图像转换芯片转换为数字RGB信号后送给后续模块进行预处理。TFP401A是TI公司PanelBus平板显示产品系列中的一种TDMS信号接收芯片,应用于高速数字图像应用场合。

TFP401A支持SXGA(1280×1024,80 Hz),像素时钟可达112 MHz;支持24位(224=16.7 M)真彩色(1pixel/clock或2pixel/clock);采用4倍过采样技术,抖动抑制可以达到1 pixel/clock;有同步信号抖动抑制功能[3]。

TFP401A输出的数字RGB信号不能直接用于图像信号处理领域,需要先将其转换为另一种图像信号YCr Cb格式。从RGB到YUV的色度空间的转换为浮点运算,Xilinx公司的XC7VX485T内嵌DSP Slice,可以实现乘/除法运算,在软件开发环境VIVADO@2016.4中,提供了RGB2YCbCr色度空间转换的IP核,大大减少了开发时间。

3.2 数据编码IP核模块

数据编码IP核模块整个是整个嵌入式数据编码处理系统的核心处理模块,是完整、高性能、符合JPEG 2000(ISO/IEC 15444-1)标准的图像编码IP核,应用于图像和高带宽图像压缩。在外接内存控制器及内存芯片后,即可独立完成的图像的无损压缩编码功能。具体来说,其内核具有如下功能:层级移位、离散小波变换、熵编码、失真度量与截断长度计算、码率控制等。该模块接收有效像素数据后,根据设定的压缩率,输出符合标准协议的输出流,完成图像压缩编码,输入图像分辨率最大支持65 535*65 535。

该模块通过访问112个16位寄存器控制IP核的操作,这些寄存器配置所有的编码选项。通过“命令寄存器”可以用来复位该IP核模块,或者进入低功耗状态。在编码过程中,首先对输入图像进行预处理,分成小块的图像分量和基本的编码单元块。然后对每个编码单元块进行小波变换,将变换后的结果进行熵编码处理。最后按照一定的码流格式封装数据,输出压缩结果。

3.3 DDR3 IP核模块

在高速图像处理领域,存在对数据进行高速大容量、实时性强和高带宽的处理要求,对数据处理的速度、实时性、稳定性以及功耗等要求都越来越高。目前,在能够同时满足高带宽和大容量要求的存储器方案中,比较成熟的有DDR,DDR2以及DDR3等,其中DDR3具有更高的带宽和更低的功耗。DDR3控制储存模块完成图像数据与DDR3通信前的缓存工作,以便根据图像在处理过程的需要,完成数据编码IP核模块与DDR3存储器的读写工作,配合系统完成图像编码功能。

DDR3控制器的设计采用了Xilinx公司的IP核MIG_v2.4和用户接口模块的设计方法。设计中采用的内存核心频率为200 MHz,DDR3的内存总线位数为64位,DDR3一次可以预读取8位,根据内存带宽=内存核心频率×内存总线位数×倍增系数/8[4],在不考虑刷新和激活等操作所占用的带宽下,DDR3的内存带宽为12.8 GB/s,传输速率为1 600 MB/s,可以满足数据压缩编码IP核对内存的存储带宽、存储容量和存储速率的要求。

3.4 千兆以太网IP核模块

Xilinx公司的VC707评估板已经嵌入了PHY层芯片,型号为Marvell公司的M88E1111,MAC层以及MAC层与PHY层的SGMII接口均可以直接调用IP核来完成,开发周期短,正确性高。

采用Xilinx的IP核Tri Mode Ethernet MAC和1G/2.5G Ethernet PCS/PMA or SGMII实现千兆以太网的逻辑接口设计。针对千兆以太网的逻辑接口设计有寄存器配置模块和数据输出控制模块,其中寄存器配置模块用来配置源地址、目的地址以及传输长度等工作参数。数据输出控制模块主要是缓存获取的图像压缩数据,按照UDP协议封装数据包,完成数据发送。

在FPGA端发送数据时,采用乒乓FIFO可以明显减小帧间隔。利用Wireshark观测,当使用乒乓FIFO的情况下系统在连续发送数据时,主机每秒接收的有效数据吞吐量为812Mbps。测试结果表明,基于千兆以太网的数据传输可以满足静态高清图像编码系统的要求。

4 测试结果

本文中实现的编码系统以Xilinx公司的VC707评估板为硬件验证平台,系统综合后的资源使用情况如表1所示。其中FF(触发器)的使用率为18.2%,4-LUTs(四输入查找表)的使用率为30.1%,从逻辑资源利用率来看,XC7VX485T完全能够满足本文所设计系统的资源消耗,并为后续升级留有资源空间。

在对整个系统进行测试时,原始图像的分辨率为1 920×1 080,首先将经DVI采集模块转换后的RGB格式数据加载到图像编码系统;进行图像压缩编码,最后将图像压缩结果通过千兆以太网上传至计算机,保存为JPEG 2000格式的文件。通过实验测试,本系统能够实现图像的压缩比达到50∶1,编码功能正确,图像无失真。

表1 系统资源占用情况表

5 结论

本文提出了一种基于高性能FPGA的嵌入式静态高清图像编码系统的设计方案,采用美国Alma公司商用JPEG2K-E IP压缩处理技术,可实现分辨率1 920×1 080@30fps的静态高清图像实时压缩编码,采用DDR3实现数据的缓存功能,通过千兆以太网与主机完成结果数据的传输和存储。实际测试结果表明,各项技术指标可以满足静态高清图像压缩编码、传输和存储的技术要求。

猜你喜欢
以太网内存编码
生活中的编码
Microchip推出首款车载以太网音视频桥接(AVB)全集成解决方案
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
Genome and healthcare
三大因素驱动创新提速以太网快步迈入“灵活”时代
三大因素驱动创新提速 以太网快步迈入“灵活”时代
内存搭配DDR4、DDR3L还是DDR3?