APP下载

基于NiosⅡ的SPIHT算法图像压缩卡的设计

2017-12-19彭晴晴邸丽霞

火力与指挥控制 2017年11期
关键词:嵌入式总线处理器

彭晴晴,邸丽霞,张 辉,唐 杰,刘 辉

(北方自动控制技术研究所,太原 030006)

基于NiosⅡ的SPIHT算法图像压缩卡的设计

彭晴晴,邸丽霞,张 辉,唐 杰,刘 辉

(北方自动控制技术研究所,太原 030006)

针对高速传输系统中大批量数据不易传输的问题,提出了一种基于片上系统图像压缩卡的设计方法,讨论了采用软核NiosⅡ处理器的配置方式、简化SPIHT算法的硬件实现原理和LVDS图像数据接收转存的操作流程。详细论述了系统各模块的设计原理及实现方法,并对各模块进行了实际的性能测试和分析,结果表明该压缩卡性能稳定,可以高效地完成图像数据压缩。

LVDS,软核,SPIHT,图像压缩,DMA

0 引言

半导体传感技术的发展使得获取采集大批量高速实时数据变得更加容易,这就需要比传统方式更加稳定有效的数据处理技术。在数据传输中,LVDS以其低功耗高速的特点正在被广泛地采用;在数据处理中,当不需要完全精确地保留数据时,数据压缩技术在大批量数据存储方面的优势正变得越来越明显[1]。本文是在应用了Altera嵌入式软核NiosⅡ处理器的基础上,实现了一种以LVDS(低压差分信号)为传输总线的图像压缩卡的设计,系统采用分级树集合划分的SPIHT(多级树集合分裂)压缩算法,将乒乓缓存技术和DMA(直接内存存取)数据处理方法应用于高速图像数据的接收缓存中,并将压缩后的数据通过LVDS总线传送出去,简化了系统接口,增加了图像传输的实时性。

1 LVDS总线和图像压缩技术

LVDS总线是指采用低压差分信号组成输入输出接口与外部通信的实现方式。LVDS信号的传输是通过发送端恒流源驱动信号输出,在接收端通过匹配电阻产生低电压的摆幅来实现电平的高低变化,它具有抵抗外界串扰、功耗低等优异性能,是能够满足高速数据传输的可靠技术[2]。通过采用专用的线路驱动器及接收器接口芯片组能够简化电路设计,为解决高速I/O接口问题提供了新的选择。专用接口芯片组在LVDS传输时能够将时钟信号嵌入差分数据流,同时在接收端恢复时钟信号用于同步数据传输,便于接收同步,保证传输稳定可靠。

依据信息的统计性和人眼识别的有限性,图像信息现有描述中存在着一定的冗余信息,比如编码冗余、像素冗余以及视差冗余,研究图像数据压缩实际上是探索高效的方法来消除这些冗余,便于大量数据的保存和传输。压缩技术主要有无损压缩和有损压缩,其中有损压缩又分为变换、分形以及矢量化等压缩方法[3]。本文根据实际应用情况选择小波变换结合多级树划分(SPIHT)的压缩算法。小波变换具有优异的时频局部特性和去相关特性,能够将图像信息按照不同的分辨率提取出来组合成一个由高到低的细节序列,然后依据一定的分辨率来取舍这个序列来实现图像的压缩[4]。小波变换是空间和频率关系上的部分变换,它集中分析局部信息并提取重要信号,提高压缩效率。

2 基本原理和系统总体结构

可编程片上系统的嵌入式处理器按实现方式有软核和硬核之分,其中软核处理器是使用可编程器件内部的逻辑资源构建的,通过编写HDL语言或生成网表的方法应用。本次设计的压缩卡采用的是嵌入式软核处理器构成的SOPC。基于片上系统压缩卡的总体结构如图1所示,主要由接口模块LVDS总线、核心数据处理模块NiosⅡ软核及其配置IP以及用于整幅图像缓存的乒乓DDR2存储模块组成。嵌入式处理器采用Altera公司的NiosⅡ软核,主要负责图像数据的调度、压缩以及与LVDS总线的接口通信。图像数据压缩卡主要完成LVDS总线上图像数据的压缩以及压缩后数据的输出。首先,LVDS接收器在解串原始图像数据后,在同步时钟的控制下写入缓存FIFO;其次在DMA模式下将FIFO中的数据转移至乒乓DDR2中等待核心处理器读出压缩,这时总是有一个DDR2处于接收图像数据过程,另一个DDR2处于对处理器输出图像数据等待压缩的过程;最后在嵌入式处理器的控制下将压缩生成的数据码流存储在输出缓存中等待LVDS发送端的读取传输至LVDS总线。

3 NiosⅡ嵌入式处理器

基于FPGA的嵌入式片上系统主要由不同的各类型的处理器核、I/O端口、各种标准接口模块以及将它们都连接起来的片上总线。设计者可以根据设计需要灵活地选择各种不同的部件组合成可编程的软核,还可以通过编程定制不同的组件类型[5]。随着大规模逻辑器件的普及,Altera的SOPC开发平台和NiosⅡ处理器以其优异的性能和更低的资源占用得到了广泛的使用。NiosⅡ的出现为设计高性能嵌入式系统和优化系统提供了条件,使得设计以硬件描述(HDL)为中心的硬件设计转到了以C语言为中心的功能描述,形成了以C语言描述NiosⅡ的功能,而用HDL描述硬件的具体实现方法,即实现了软件和硬件的真正协同设计。NiosⅡ处理器是在SOPC Builder中按照任务需求选择不同的处理器、IO中断端口以及各种控制寄存器来配置生成的,最后在Quartus中调用的。SOPC Builder中含有各种开发者已经调试好的IP模块,并且它为第三方预留了接口,支持设计者通过描述语言或者购买专利IP定制外设和指令来完成设计需求功能[6]。

本设计NiosⅡ软核外设组件主要有:LVDS总线接口,FIFO、SRAM、DMA控制器和乒乓DDR2控制转换模块。嵌入式处理器配置组件如下页图2。

4 改进的SPIHT压缩算法

图像数据压缩是整个压缩卡设计的核心部分,基于小波变换的SPIHT压缩算法性能突出,可操作性强,便于硬件工程化实现。但是由于最初的SPIHT算法需要将小波变换后的数据分类存放于不同的链表中,处理器通过不断地扫描链表来获得信息,这就需要消耗大量的硬件存储资源和存储时间,减缓了图像处理的速度,不利于硬件压缩的快速编码。所以本文采用优化的SPIHT算法,通过建立不同的查找表的方式代替原来的链表数据存储转移,并改变小波变换的零树结构和算法中排队扫描的顺序,简化了变换后的树结构子孙关系,缩短了压缩结果产生的码流。改进后的SPIHT算法采用标志位区分每个系数和集合的重要性,并且在小波变换后的显著性处理和比特平面扫描中是以每4个像素点为一组进行判断,减少了扫描周期,有效改善了压缩效率。改进的SPIHT算法系数显著性判断流程如图3所示。

首先,变换后的每个系数的重要性检测是与其相邻的4个系数一块进行的,如果已经进行了检测,则判断这个系数是否属于上一位平面,即是否大于2倍的阈值,然后才能进行这个单个重要系数的精细化处理或者单个不重要系数的重要性测试;其次,如果这个系数没有进行过重要性检测,需要判断是否处于不重要的集合中,然后决定跳过这个零树集合或者进行分类型的集合编码。

5 高速图像数据处理

大量高速图像数据的接收和转存是影响压缩效率的关键因素。本设计中原始图像数据的接收和压缩后码流的输出都是采用LVDS总线的形式,为了增加通信接口的可靠性和方便调试,LVDS接口采用硬件物理转换的方式实现,接口芯片选用的是SN65LV1023A和SN65LV1224B芯片组。SN65LV系列LVDS接口芯片是TI公司的一款10位支持串入同步时钟的高速串行/解串芯片,最高通信速率可达660 Mbps。在压缩卡的输入端采用SN65LV1224B作为原始图像数据的接收器,实现图像数据的串行至并行的解串工作;同时在压缩卡的输出端采用SN65LV1023A作为压缩后数据流的驱动器,实现压缩码流的并行至串行的转换输出。

由于图像压缩是以整幅图像为单位进行的,这就导致大量图像数据在接收后不能立即进行压缩处理,而是要以帧为单位写入缓存,待一幅图像接收完整后读出压缩。本次设计中高速图像的接收缓存由内部FIFO和乒乓DDR2存储器两部分组成,首先在接收端口采用内部FIFO来缓冲数据,当系统数据调度模块判断到FIFO中数据后会以帧为单位将图像数据分别存入乒乓结构的DDR2存储器中,供压缩模块读出压缩。在这两者的数据转移之间采用了DMA的数据传输方法,DMA数据转移不需要CPU的参与处理,直接在两个缓存之间开辟数据传输通道,节约数据转移时间,提高了图像压缩效率。图4为数据转存流程图。

6 系统测试结果

对于有损图像压缩来说,重构的图像与原始图像总会存在一定的差异,为了定量地衡量出压缩前后图像的品质变化,相对于用眼睛观察比较,通常会再压缩后给出峰值信噪比(PSNR)定量的表示压缩效果。峰值信噪比单位为dB,它的值越大,就代表压缩后图像相比于压缩前失真越少,压缩效果越好。PSNR的计算公式为[7]:

其中 MSE 指 Mean Square Error(均方误差),I(角标n)指原始影像第n个pixel(像素)值的平方,P(角标n)指经过还原后的图像第n个pixel(像素点)值的平方。Framesize指的是图像所包含的所有像素点。

本设计中图像选用320*256像素的8bit测试图片,由试验测试可知设计中NiosⅡ处理器配合LVDS接口芯片的数据传输速度可以稳定达到100 Mbps,压缩速度大于一秒钟15帧,满足设计要求。图5和图6分别是8倍压缩及16倍压缩后重构的图像,图7中的两条曲线为算法改进前后对同一张图片在相同压缩比例下的压缩峰值信噪比PSNR对比图,其中星形曲线为原始算法的PSNR值,圆形曲线为算法改进后的PSNR值。可以看出相同压缩比例下,改进算法的PSNR值要比原始算法的大,说明改进后的压缩效果比较好,并且在压缩比例处于2到20左右时改进后算法的优势非常明显;同时也可以看出当压缩比不断变高时,PSNR值在减小,也就意味着压缩程度大图像失真严重,压缩效果优势不是特别明显。

7 结论

本文提出了一种基于片上系统的图像压缩卡的设计方法,图像压缩算法采用适合硬件实现的简化SPIHT算法,图像数据的接收和压缩后码流的发送采用LVDS接口,在数据转移过程中采用DMA技术,整个压缩卡的操作逻辑都是在片上处理器NiosⅡ的控制下实现的。基于NiosⅡ的图像压缩卡接口简单、功能升级方便灵活,测试结果表明该压缩卡压缩性能稳定,在高速数据采集传输系统中具有广阔的应用前景。

[1]陈斯斯.智能视频监控中的图像压缩与传输技术研究[D].长沙:湖南大学,2008.

[2]孙春风.基于LVDS技术的高速图像采集系统的设计[J].仪表技术与传感器,2009,46(3):46-51.

[3]傅祖芸.信息论:基础理论与应用[M].北京:电子工业出版社,2001.

[4]刘丽娟,邹雪城,雷旭,等.基于小波变换的图像压缩芯片的实现[J].半导体技术,2003,28(1):20-23.

[5]尚媛园.基于SOPC技术的高速图像采集控制系统的设计与研究[J].传感技术学报,2011,24(6):864-869.

[6]蔡伟纲.NiosⅡ软件架构解析[M].1版.西安:西安电子科技大学出版社,2007.

[7]张春田,苏玉挺,张静.数字图像压缩编码[M].北京:清华大学出版社,2006.

Design of Image Compression of SPIHT Algorithm Card Based on NiosⅡ

PENG Qing-qing,DI Li-xia,ZHANG Hui,TANG Jie,LIU Hui
(North Automatic Control Technology Institute,Taiyuan 030006,China)

Aiming at the transmission problem of large quantities of data in high speed transmission system,this paper puts forwards a design method of image compression card based on system-on-chip.The method discusses configuration mode of using soft-core Nios Ⅱ processor,hardware implementation principle of simplifying SPIHT algorithm and operation process of receiving and storing of LVDS image data.The paper discusses detailedly the design principle and realization method of each module in system and provides actual performance testing and analysis to each module.The results show that the compression card has stable performance and can efficiently complete the image data compression.

LVDS,soft-core,SPIHT,image compression,DMA

TP27

A

10.3969/j.issn.1002-0640.2017.11.37

1002-0640(2017)11-0174-04

2016-09-21

2016-10-28

彭晴晴(1984- ),男,江苏邳州人,硕士。研究方向:通信与数据传输技术。

猜你喜欢

嵌入式总线处理器
基于IMX6ULL的嵌入式根文件系统构建
时间触发通信总线监控技术研究
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
关于CAN总线的地铁屏蔽门控制思路论述
基于ARM嵌入式的关于图像处理的交通信号灯识别
TS系列红外传感器在嵌入式控制系统中的应用
基于CAN/LIN总线的LED车灯控制研究
ADI推出新一代SigmaDSP处理器
火线热讯
AItera推出Nios II系列软核处理器