基于FPGA和ADV212的彩色图像实时压缩系统的设计

刘敏慧 高枫 刘文怡
摘 要: 在JPEG2000专用编解码芯片ADV212的基础上,设计了以FPGA与ADV212为核心的彩色图像数据实时压缩系统。系统以FPGA为主控单元实现了对图像数据的接收、压缩、发送,对ADV212寄存器进行了配置、数据输入,并将压缩数据实时上传到上位机。经过实际测试,该系统满足对彩色图像压缩实时性的要求,且系统稳定,失真度小,具有较高的实用价值。
关键词: ADV212; FPGA; 彩色图像; 数据实时压缩; 上位机; JPEG2000
中图分类号: TN911.73?34; TP274 文献标识码: A 文章编号: 1004?373X(2017)22?0088?03
Abstract: On the basis of the decoding chip ADV212 dedicatedly used for JPEG2000, a color image data real?time compression system taking FPGA and ADV212 as its cores was designed. The FPGA is taken as the main control unit of the system to receive, compress and send the image data. The ADV212 register is configured, and the data is input into it. After that the compressed data is uploaded to the host computer in real time. The actual test results show that the system can meet the real?time requirement for the color image compression, which is stable, and has small distortion and high practical value.
Keywords: ADV212; FPGA; color image; data real?time compression; host computer; JPEG2000
随着我国导弹、航天事业的飞速发展,航天系统的功能更加完善,需要测试的内容不断增多,精度不断提高,数据量也以几何量级扩大,因此对无线传输带宽的要求越来越高。由于图像信息具有数据海量性的特点,尤其是彩色图像,在一定的环境条件下受传输时间、存储空间和信道带宽的影响,难以被快速传输或存储[1?2]。为了缓解带宽压力,提高遥测系统无线带宽的利用率,本文提出并设计了一种彩色图像实时压缩系统。利用FPGA实现逻辑控制,通过编解码芯片ADV212实现彩色图像压缩,具有实时性好,灵活性高,速度快、稳定性高、压缩比可灵活调整等优点。该系统可以很好地缓解现阶段图像信息难以被快速传输或存储的问题。
1 系统总体设计
该系统由前端摄像头采集图像数据,ADV212压缩芯片对采集到的数据进行实时压缩后,通过RS 422接口实时传送到上位机并显示出来。系统总体设计框图如图1所示。系统将前端摄像头已经处理成LVDS信号的图像源通过LVDS解码芯片MAX9250解码出来,FPGA判别数据帧头以读取有效图像数据,并将有效数据写入到用于缓存数据的FIFO中,经过ADV212压缩芯片压缩后,通过RS 422接口实时传送到上位机并显示出来。
2 主要硬件设计与实现
硬件设计主要包括图像接收模块、图像压缩模块、图像传输模块和电源模块4个部分。其中图像接收模块是对外部的LVDS接口信号进行处理,处理成25 f/s输出到压缩模块。图像传输模块是将压缩后的彩色图像经过RS 422接口传输至上位机软件。电源模块功能是将输入电压转化为各种芯片所需电压,为各芯片提供电源。而实现压缩功能的主要是图像压缩模块。
图像压缩模块包括帧头判别模块、图像压缩主模块。图像压缩主模块的核心是压缩芯片ADV212,负责对彩色图像进行压缩处理。
2.1 帧头判别模块
帧头选择模块由5个移位寄存器和1个比较器组成,把多个字节组成较长的字节,然后与固定的帧头值判断是否是帧的起始,如果是帧头则使能写。其中该模块的输入参数为移位时钟、移位数据,输出参数为aeb,如图2所示。
比较器的时序图如图3所示。该模块由5个移位寄存器与1个比较器组成,当判别到帧头55AAFAF9时,输出低电平。
2.2 图像压缩主模块
图像压缩主模块在QuartusⅡ中的名称为encoder。该模块的主要功能是对压缩芯片进行配置,缓存图像数据并适时写入压缩芯片,读取压缩后的数据,并把压缩后的数据写入到后续的数据选择模块中,如图4所示。
该模块的流程图如图5所示,图像压缩模块主要是初始化压缩芯片,把输入的图像数据写入到压缩芯片,再把压缩后的图像读出来写入后端的FIFO。
3 系统软件设计
系统软件主要通过FPGA内编程控制及ADV212内部固件参数定义实现,主要分为图像接收模块、图像压缩模块、图像传输模块3个功能模块。
3.1 图像接收模块
图像接收模块中LVDS接口接收的图像数据格式为640×480×8 b,即LVDS接口的数据宽度为8 b。LVDS接口的通信时序图如图6所示。
图像数据在帧同步信号为高时有效,对应图像数据的一帧,行同步信号为高时有效,每次幀同步信号有效期间的每次行同步信号有效,对应图像数据的一行。图像数据的宽度为8 b,即D0~D7。数据的同步时钟为上升沿时,读取LVDS接口图像数据。
图像接收过程中,为了确保每次都能正确地把图像数据写入后面的FIFO中,在第一个帧同步信号中添加帧头55AAFAF900,数据比较器在图像数据中识别帧头时,使能后面的FIFO,把后面的图像数据写入FIFO中。
3.2 图像压缩模块
本系统中,图像压缩模块主要通过FPGA实现对JPEG2000压缩芯片ADV212的初始化,初始化过程包括直接寄存器的配置、间接寄存器的配置以及固件的加载[3?4]。本系统中压缩芯片设置为HIPI模式,其初始化的具体流程如图7所示。
ADV212编码固件参数视频标准设置为用户自定义模式。在小波引擎中,每个图块或帧将通过9/7滤波器分解成许多自带。生成的小波系数写入内部寄存器中。输出的码流格式为YCbCr的JP2格式。ADV212仅支持YCbCr的4∶2∶2格式。在ADV212中,对于YCbCr视频,样本值是每行像素值的2倍。因此,压缩一副480×640的彩色图像,固件参数应当设置为240×320。
3.3 数据传输模块
数据传输模块主要是把前端的压缩数据转化为异步串行数据。其中TX422发送模块用于向主控机发送压缩后的图像数据或原始图像数据。
TX422发送模块的输入为FIFO的输出信号,输出为差分信号,波特率为2.457 6 Mb/s;采用异步串行口通信协议,1位起始位,8位数据位,1位停止位,无奇偶校验位;数据以数据帧的形式按周期循环发送,发送周期为40 ms,每帧最大传输量为9 830 B,而压缩后的数据量共有6 671 B,满足传输要求。
异步串行接口发送图像数据的约定如下:数据以数据帧的形式按周期循环发送,发送周期约为40 ms±0.5 ms;图像数据按帧发送,帧与帧之间间隔大于2 ms;每帧图像数据包含帧头和帧尾,用于区分图像帧;每帧图像数据包含帧计数、帧长度内容,分别用于校准该帧图像数据的相对时间信息和帧长度信息。
4 系统测试
该系统设计完成后,前端采集到的彩色图像经过压缩芯片ADV212压缩后,上传到上位机,用编写好的图像显示软件显示压缩的图像,图8(a)为原始图像,图8(b)为压缩后图像。图9为测试数据,用HexEdit软件打开,其中55AAFAF900为每包数据帧头,001A07为压缩数据长度,C000010203为状态字,FFFFFFF1为压缩格式帧头,00000131为压缩帧计数,F9FA为每包数据帧尾。
5 结 论
本文设计了以FPGA与ADV212为核心的彩色图像数据实时压缩系统。测试表明,该系统可以可靠稳定地压缩前端传来的彩色图像,系统满足对彩色图像压缩实时性的要求,且系统稳定、失真度小,具有较高的实用价值。
参考文献
[1] 郭清文,张大鹏,宋晓东.基于ADV212的图像压缩系统设计与实现[J].科技创新导报,2013(11):152?154.
[2] 张会新,曹翱翔,胡海风,等.基于FPGA和ADV212的图像实时压缩系统设计[J].电子器件,2016(2):483?486.
[3] 王丹,杨允基.ADV212编解码芯片原理及应用[J].舰船电子工程,2008(5):112?115.
[4] 王占秋.JPEG2000标准及其编解码芯片ADV212的研究[J].数字通信,2009(2):21?24.
[5] 邓宸伟,赵保军.基于ADV212的实时图像压缩系统[J].电视技术,2008(12):35?37.
[6] 欧民,谭金林,张国华.一种基于FPGA和ADV212的遥感卫星图像JPEG2000實时解压缩方法[J].空间电子技术,2014(1):11?14.
[7] 于巍巍,马晓东,孙娟,等.基于多片ADV212芯片的图像压缩系统设计[J].空间电子技术,2014(1):15?18.
[8] 祁志恒,姜喆,张为.基于ADV212的雷达图像压缩传输系统[J].电子技术应用,2015(11):78?80.
[9] 刘永征,刘学斌,胡炳樑,等.基于ADV212的JPEG2000静态图像压缩系统设计[J].电子器件,2009(3):504?508.
[10] 刘永征,刘学斌,胡炳樑,等.基于ADV212的图像压缩系统设计[J].电子设计应用,2008(12):92?95.
[11] 王振宇.基于JPEG2000的卫星图像压缩/解压技术[D].武汉:华中科技大学,2013.