摘 要: 介绍一种自主研发的高速计算机屏幕信息记录系统。该系统支持VGA/DVI输入,支持SVGA、XGA、SXGA、UXGA等多种计算机屏幕分辨率图像的连续压缩和存储。实验表明,本系统的单帧图像压缩性能接近JPEG2000标准,PSNR值优于JPEG标准。
关键词: FPGA;ARM;计算机屏幕;图像压缩;小波变换
随着计算机应用越来越广泛,越来越多的重要信息需要由计算机屏幕显示,因此对计算机屏幕记录的需求越来越迫切。同时, 伴随着显示器的高速发展,计算机屏幕分辨率日益增大,需要记录的图像分辨率也逐渐增大,因此,对能够记录计算机屏幕信息的设备需要日益增长。目前的图像压缩存储方案大都无法支持高分辨率图像,如ADI公司推出的图像压缩芯片ADV212[1],该芯片支持的最大分辨率为1 024×1 024,无法满足SXGA(1 280×1 024)或更高的图像分辨率。另外,在一些DSP解决方案中,因为DSP接口不灵活以及DSP本身处理能力的限制,很难支持高分辨图像压缩。
本设计开发出了一套基于双FPGA+ARM架构的高速计算机屏幕图像压缩系统。系统通过对图像压缩系统任务的划分,利用FPGA的并行计算能力和灵活的编程方式,完成图像压缩算法。对于压缩后的码流,系统采用ARM管理,基于linux的嵌入式ARM系统能够以文件的形式存储码流,另外,ARM对网络和音频常用设备能方便地管理。系统支持主流接口(VGA,DVI),压缩后的码流可以存储在本地硬盘,也可以通过网络发送到远端服务器。双FPGA的设计对计算机屏幕图像压缩更为方便,原始图像经过前端预处理FPGA进行帧间检测,以决定该帧图像进入主FPGA的压缩模式,主FPGA为核心压缩引擎,负责完成高速图像压缩算法。
1 系统架构与实现
系统整体架构如图1所示,采用双FPGA+ARM架构,主要包括图像前端预处理、图像压缩模块和码流管理部分。
前面一块FPGA完成前端预处理,如分辨率检测、色彩转换和图像分析等功能;后面一块FPGA用来实现图像实时压缩,其中ARM对系统进行管理,如压缩后码流管理、网络管理和音频录制等。 |