基于上述需求,开发了一套基于双FPGA+ARM架构的独立式多分辨率VGA/GVI压缩和存储系统。该系统支持DVI/VGA接口输入,并支持SVGA、XGA、SXGA、UXGA、1080p等任意分辨率的图像压缩和存储,同时能做到音视频同步。另外,该系统采用了双FPGA+ARM架构,提高了系统的灵活性及平台可升级性,拓宽了其应用场合。
本文主要介绍独立式多分辨率VGA/DVI图像压缩存储系统的核心架构,并给出系统的性能。
1系统架构与实现
该系统的整体架构如图1所示。系统采用了双FPGA+ARM的架构,主要包括四部分:图像前端接口电路、预处理模块、图像压缩模块和管理模块。它同时支持VGA和DVI图像源输入,图像源的缓存或部分运算的中间结果通过Flash和外部存储器实现。这里主要介绍该系统中涉及到前端预处理模块和图像压缩核心模块。
图1中左面一片FPGA主要完成前端预处理,如分辨率检测、色彩转换和图像分析等功能;右面一片FPGA主要用来实现图像实时压缩;ARM对系统进行管理,如压缩后码流管理、网络管理和音频录制等。
图1
1.1前端预处理模块
前端接口电路采用AD9888作为前端的视频模数转换器,TI公司推出的TFP403作为DVI接收芯片。前端预处理模块采用Xilinx公司的Virtex4[2]系列的FPGA(XC4VLX40),它主要完成的功能是分辨率的检测和色彩空间转换等,如图2所示。
图2
1.1.1分辨率检测 对于标准的VGA接口,不同分辨率下其HSYNC与VSYNC时序不同,系统设计时用一个单独的模块来检测输入端的分辨率。该模块可以通过检测两个相邻VSYNC上升沿间的HSYNC数目来识别VGA信号的分辨率,然后将检测到的分辨率参数送给后端的图像压缩模块,让系统根据对应参数来配置图像采集和图像压缩。
 
1.1.2色彩转换
标准的VGA接口输出为RGB信号,在进行压缩之前,先对图像进行色彩空间转换,将RGB信号转换为YUV信号。色彩空间转换公式为:
公式
系统实现时采用4:2:2采样模式,FPGA采用定点化处理后,将得到的Y和UV分量送给后端的编码模块进行编码。
1.2图像压缩部分
在系统设计时,考虑到不同分辨率的图像压缩和后续功能扩展,需要采用硬件资源丰富的FPGA,后端模块采用Xilinx公司的Virtex4系列的FPGA(XC4VLX100)。图像压缩的核心架构如图3所示,它主要涉及图像缓存、图像压缩和码流缓存三部分。
图3
1.2.1图像缓存模块
为了提高系统的处理速度和数据吞吐效率,图像采集模块中采用图4所示的“乒乓操作”缓存图像,即把一帧图像的Y和UV分量缓存到片外的SDRAM1中,同时,系统会从SDRAM2读取另一帧已经缓存的图像到后端的图像压缩模块。这样图像缓存和压缩可以并行处理,提高系统的压缩效率。
系统设计时采用Micron公司16MB的SDRAM[3],它包含了4个bank。其中,bank0与bank1用来缓存Y分量,bank2与bank3用来缓存UV分量,为了提高读写SDRAM的效率,采用burst读写数据方式,可以减少仲裁操作。
1.2.2图像并行压缩模块
在系统算法设计时,图像变换采用了基于离散小波变换的空间推举算法(SCLA[4]),相对常见的离散小波变换(DWT),SCLA算法的行与列变换同时进行,乘法次数最少,且重建图像的PSNR值更高。编码算法采用改进的无链表零树编码算法(SLC),它融合了多层次零树编码算法(SPIHT[5])和无链表零树编码(LZC[6])的思想,在性能上逼近SPIHT,但更易于硬件实现。
系统在实现架构上采用了图3所示的双通道并行压缩架构,即Y和UV分量的小波变换和编码并行进行,极大地提高了系统的并行度和压缩效率。兼顾数据读取效率和内存考虑,本系统设计时采用了片外SDRAM和片内SRAM结合的方法来缓存小波系数,所以小波变换和编码模块主要由FPGA和2块片外SDRAM协同完成。SCLA算法采用9/7小波的五层分解,其中SDRAM3用来缓存Y通道分解过程中产生的部分小波系数,SDRAM4用来缓存UV通道分解过程中产生的部分小波系数,向SDRAM中读写数据时仍然采用burst方式。SLC算法以一棵小波树为基本单元,且压缩比可自由控制,完成一帧图像所有小波树的编码。
【想第一时间了解安防行业的重磅新闻吗?请立即关注中安网官方微信(微信号:cpscomcn)——安防行业第一人气微信,万千精彩,千万不要错过!!!
网友评论
共有0条评论 点击查看全部>>24小时阅读排行
本周阅读排行