文献标识码:A
DOI:10.16157/j.issn.0258-7998.182839
中文引用格式:连佳佳,王志有,王利斌,等. 基于JPEG2000算法的图像编码装置的设计[J].电子技术应用,2019,45(3):46-49.
英文引用格式:Lian Jiajia,Wang Zhiyou,Wang Libin,et al. Design and implementation of multi-interface high frame-rate image compression device[J]. Application of Electronic Technique,2019,45(3):46-49.
0 引言
在现代遥感技术中,人们对于图像传输的要求越来越高,其中速率和质量的提高以及图像数据的实时传输是现在最主要的研究热点[1]。而伴随着远程遥感设备采集到的图像质量的不断提高,信道中携带的数据量也随之增加,增加传输信道带宽的方法仅仅是治标不治本,并且信道并不能无限制使用。因此,本文基于遥感器的特殊工作环境和模式,提出了数据压缩编码技术的硬件实现方法,从根本上解决问题[2]。
国内某研究所针对相关遥感项目提出关键指标:空间遥感图像采集、压缩速率为100帧/s,压缩倍数为75倍,对地图像传输通道波特率为2.457 6 Mb/s。基于上述指标,本文提出了基于JPEG2000算法的图像编码装置的硬件实现方法。
1 压缩编码算法介绍
相比JPEG算法,JPEG2000编码算法具有更高的压缩比和抗误码性能[3],解决了在低比特率编码时会出现的方块效应,以及比特差错时出现的严重损坏问题,其主要由四部分组成,包括预处理、DWT、均匀量化和EBCOT编码,如图1所示。
预处理:将不能满足JPEG2000压缩算法要求的原始图像数据分成矩形块,与JPEG编码相比JPEG2000中的每个矩形块的大小并不需要是规定且一致的,最小单位可以到像素大小,其中每个矩形块都单独使用自己的参数实现编码[4-5]。由于在离散小波变换之前的图像数据要求轴对称分布,因此对于无符号数需要先进行平移,再进行归一化处理,之后采取分量变换的方式以便除去彩色分量之间的相关性,以减少数据量。本文采用不可逆的实数彩色变换(ICT),这是一种将RGB图像转换为亮度和色差数据的一种变换方式,本文主要采用YCbCr4:2:2的方式,对亮度的采样率是对颜色采样率的两倍关系,并且优先传输比较重要的亮度信息,RGB到YCbCr的变换式如式(1)所示。
DWT:离散小波变换的主要作用是将图像的能量收敛到权重更高的低频子带,其本质是产生大量无限接近于0的小波系数。离散小波变换本质上是对每个矩形块先进行水平方向的滤波,再对得到的每个输出用同样的滤波器组进行垂直方向的滤波。图2为一个二级小波变换示意图,原始图像通过第一级小波变换后会被分为代表信号中低频成分的LL子带和代表信号中边缘、纹理、细节等高频成分的LH、HL、HH子带,而第二级的小波变换针对的就是经过第一级变换得到的LL低频子带,LL低频子带参照第一级小波变换进行进一步分解。以此类推,经过多级小波变换后,图像数据完成了主要信息和边缘信息的分别存储,为后面比特层扫描编码和码流优化截断提供了条件[6]。
量化:JPEG2000编码标准提供了一种死区标量量化的处理方式,所谓“死区”就是在零点附近的输入区间内量化步长宽度是其他输入区间的两倍,应注意小波变换后的子带已经是最小单元,因此每个子带都只采用一个量化步长。量化的公式如式(2)所示,该处理方式主要是根据小波子带的视觉特性或者码率控制的要求分析得出量化步长Δ,将步长Δ带入式(2)即可得到量化后的值q[7]。
EBCOT编码:经过离散小波变换和量化之后的小波系数并不能完全消除它们之间的相关性,因此需要进行EBCOT编码进一步地消除。先将经过量化的小波系数划分为尺寸是2的整数次幂大小的矩形码块,以矩形码块为最小单位编码。EBCOT编码分为两步进行:(1)Tier1部分包括比特层扫描编码和算数编码,比特层扫描编码是以码块为单位从最高有效位平面开始编码,通过对每一层分别进行3次扫描,将其根据一定的规则分为3个通道分别进行处理并生成上下文、决策位,这3个通道数据再通过算数编码器,最后针对每个码块就生成了嵌入式编码码流。(2)在Tier2部分,具有截断点的编码码流根据失真率优化原则,将权重较低的码流数据舍弃,并对截断点的位置信息进行编码,最终将保留下的各比特层的数据码流打包,输出最终的JPEG2000图像数据码流[8-10]。
2 系统设计
本图像压缩装置采用FPGA+JPEG2000标准芯片结构,以FPGA为主控芯片实现对各模块的逻辑控制以及数据通信,实现运用JPEG2000标准编码算法进行图像压缩的硬件设计。总体方案如图3所示,本装置主要包括以下5个模块:系统控制、图像接收、图像缓存、压缩编码以及数据传输。
本装置中系统采集到的原始图像数据通过图像接收模块(LVDS接口)接收,并且进行解串之后,为了解决由于传输速率过快可能导致的数据丢失问题,需要先进行数据缓存,再将数据无失真地传输给压缩编码模块。最后为了测试图像压缩编码后的效果,通过数据传输模块(RS422)把压缩编码后的数据转化为异步串行数据传输到上位机[11],再经过MATLAB解码可以查看到图片是否失真。
2.1 LVDS图像采集接口设计
采集接口采用了LCD Panel通用的接口标准LVDS低压差分信号接口,信号的传输速率可达几百Mb/s,是在TTL电平方式传输宽带高码率数据时,为了降低系统功耗以及消除EMI电磁干扰而被研究出来的一种数字视频信号传输方式。
图4为LVDS信号实际测试波形图,图中的帧同步信号、行同步信号和同步时钟信号都是高电平有效,当帧同步信号有效时读取图像数据中的一帧,行同步信号有效时读取图像数据中的一行。只有帧同步信号、行同步信号同时为高电平时,在时钟的上升沿触发下才可以读取到LVDS接口原始图像数据。
本装置中LVDS接口输入的图像为YCbCr4:2:2格式,它的主要功能是将输入的图像数据进行处理,为提升系统速度,充分利用时钟资源,使存入到SRAM的数据为16 bit,数据在FPGA内部用时钟打2拍[11]。
2.2 图像缓存设计
本装置选用两片SRAM进行乒乓缓存,以提升传输速率,数据处理流程如下:系统上电后,缓存模块初始化选择SRAM0,当检测到有数据输入时,SRAM0写请求信号使能有效,开始存储数据,数据从SRAM0的地址0开始写入,当写入的数据量达到已设置好的容量后,地址计数器给出SRAM0满标志信号,停止写入数据,同时将SRAM0的写地址计数器清零,等待压缩模块读取图像数据。此时SRAM1写请求信号使能有效写入数据,同时SRAM0读请求信号使能有效[12]。原理图如图5所示。
2.3 压缩编码模块设计
ADV212是一款专用压缩编解码芯片,具有实时压缩和解压缩的功能。在工作时具有延迟小、功耗低、工作模式灵活可控的优点[13]。
本装置中图像压缩模块的工作流程如图6所示。首先在系统正常工作前需要对ADV212进行参数配置,即对内部的直接寄存器和间接寄存器进行初始化操作,其中对间接寄存器的配置需要通过把要调用的地址写入直接寄存器IADDR和STAGE中,再把数据写入到寄存器IDATA中。本模块的主要功能是将从存储模块读取到的原始图像数据进行JPEG2000标准编码处理,然后通过接收读取数据命令,回读编码后的数据[14]。
本装置中,选用9/7滤波器将每个矩形块分解成许多子带,同时将产生的小波系数写入到相应寄存器中[15],其中输出的码流格式为包含亮度和色彩数据的YCbCr格式。在本模块中,对于YCbCr格式,样本值是每行像素值的两倍。因此,压缩一幅320×240的彩色图像,固件参数应当设置为160×120。
3 系统测试
测试和控制该装置接收和存储压缩编码数据的地面测试软件操作界面如图7所示,上位机软件正在接收经过压缩模块的图像数据。
通过地面测试台发送原始彩色图像,如图9所示,其尺寸为150 KB。再将接收到的压缩编码图像数据通过图像解码显示软件解码显示,如图10所示,一帧图像大小约为2 KB。对比发现,系统实际实现的压缩比约为75:1,通过实际测试发现,解码后的图像失真度较小,压缩效果较好,满足系统要求。
4 结束语
本文基于箭载的航天背景,设计并实现了一种基于JPEG2000算法的高帧频图像压缩编码装置。最后通过系统测试平台对压缩编码装置进行了系统测试,经过分析,该装置满足了预期要求的压缩倍数和压缩速率。结果表明,本文设计的图像压缩编码装置在满足高帧频的同时可以实现高压缩比的要求,并且系统稳定,具有极高实用价值。
参考文献
[1] 翁天阳,庄宇,于玮,等.基于HPS和FPGA的图像压缩感知编解码系统[J].电子技术应用,2017,43(5):90-93.
[2] 祁志恒,姜喆,张为.基于ADV212的雷达图像压缩传输系统[J].电子技术应用,2015,41(11):78-80,84.
[3] 朱秀昌,刘峰,胡栋.数字图像处理与图像通信[M].北京:北京邮电大学出版社,2016.
[4] 祁志恒.基于ADV212的JPEG2000图像压缩系统设计[D].天津:天津大学, 2016.
[5] CHRYSAFITS C,ORTEGA A.Line-based, reduced memory,wavelet image compression[J].IEEE Transactions on Signal Process,2000,9(3):378-389.
[6] 姜喆.高性能JPEG2000图像编码器的VLSI设计[D].天津:天津大学,2012.
[7] 王丹,杨允基.ADV212编解码芯片原理及应用[J].舰船电子工程,2008(5):106-109.
[8] 孙宝海.基于TI DM8148构架的视频编码系统的设计与实现[D].太原:中北大学,2017.
[9] 黄德祥,汤爱武,徐升,等.基于ADV212的无人机实时视频解码系统设计[J].无线电工程,2014,44(10):59-63.
[10] 晁富邦.基于ARM的嵌入式视频采集与压缩系统设计与研究[D].重庆:重庆大学,2009.
[11] 刘敏慧,高枫,刘文怡.基于FPGA和ADV212的彩色图像实时压缩系统的设计[J].现代电子技术,2017,40(22):88-90,94.
[12] 蔺志强.大容量缓存压缩装置的设计与实现[D].太原:中北大学,2013.
[13] 齐凤梅,孙立成.机载高速相机图像准实时下传方法[J].飞行器测控学报,2012,31(4):25-28.
[14] 王刚,陈晓曙.面向无线传输的实时视频压缩编码系统设计[J].合肥工业大学学报(自然科学版),2011,34(12):1819-1822.
[15] 关晓磊,孟立凡.JPEG2000的近距离无线视频传输系统设计[J].单片机与嵌入式系统应用,2011,11(11):41-44.
作者信息:
连佳佳1,王志有2,王利斌3,刘文怡1,张会新1
(1.中北大学 电子测试技术重点实验室,山西 太原030051;
2.北京宇航系统工程研究所,北京100076;3.北京强度环境研究所,北京100076)