基于Camera Link接口的图像压缩解压缩系统设计
扫描二维码
随时随地手机看文章
摘 要: 应用Altera公司的StratixTMII系列FPGA EP2S30F484I5芯片和基于Camera Link接口的数码相机CV-A10CL,设计实现了对高分辨率黑白数字图像进行拆分压缩、解压缩及PCI总线接入拼接恢复的系统。系统分为数码相片压缩单元、数码相片解压缩单元和基于MFC的图像拼接恢复程序。数码相片压缩单元完成对来自相机Camera Link接口数据的接收、缓存、图像数据压缩并发送,数码相片解压缩单元完成对接收到的已压缩的图像数据进解压缩,并将解压缩后的图像数据通过PCI总线传输至PC上显示。
关键词: FPGA;Camera Link;ADV202;PCI总线;图像的拆分压缩;解压缩拼接
Camera Link[1]是工业高速串口数据和连接协议,它由世界数码相机供应商和图像采集公司在2000年10月联合推出,旨在为数码相机和PC机间的高速、高精度数字传输提供一种标准连接。本设计就是基于Altera公司的StratixTM II系列芯片中的FPGA EP2S30F484I5芯片和数码相机CV-A10CL[2]设计的一个可以实时显示的图像传输系统。由于ADV202所能压缩的每幅图像最大样本数为1.048 M,即1 024×1 024分辨率的图像。对于本设计中的4 008×5 344分辨率的图像进行传输必须要对图像进行分割压缩,然后在接收端合并恢复出完整的图像。在本设计中,FPGA的作用是对通信的所有过程进行控制和对数据进行处理。
1 高分辨率图像拆分与合并传输原理
由于ADV202[3]所能压缩的每幅图像最大样本数为1.048 M,即1 024×1 024分辨率的图像。所以4 008×5 344分辨率的图像进行传输必须要对图像进行分割压缩,然后在接收端合并恢复出完整的图像。
按照ADV202的技术手册,在采用低压缩比对图像进行压缩时,在解压端可以不考虑图像拆分时的边界效应,直接对图像进行合并。但是在本项目中,必须支持8~80倍的图像压缩。而在80倍图像压缩时,还是会明显感觉出图像间的拼接效果,所以必须要考虑图像的边界效应。
针对以上分析,将4 008×5 344分辨率的图像水平方向拆分成4幅图,垂直方向拆分成6幅图,总共拆成24幅1 024×1 024分辨率的图像进行传输。拆分方法如图1所示。
为了解决图像间水平方向的边界效应,水平方向上每幅图都需要和相邻的图像有一定的图像数据冗余。在接收端,通过冗余的图像数据来覆盖掉边界图像。例如Pic1和Pic2为水平方向相邻的两幅图像,在它们之间引入水平方向24个像素的图像冗余。在接收端,将Pic1每行的最后12个像素点用Pic2的对应像素点替换,这样就可以消除图像间的水平边界效应。每幅图像水平方向的起始像素点和结束像素点如图1(a)所示。
同理,也可以在垂直方向采用相同的方法,每幅图像垂直方向的起始像素点和结束像素点如图1(b)所示。
采用以上方法就可以将4 008×5 344分辨率的图像拆分成如图1(c)所示的24幅具有冗余度的图像。
2 系统整体设计方案
图像传输系统由数码相片压缩单元和数码相片解压缩单元组成[4-5]。数码相片压缩单元通过Camera Link接口连接数码相机接收数码相片原始数据,并对数码相片原始数据进行压缩,然后将要测数据与压缩数据合成为数码相片数据流,最后将数码相片数据流和码同步时钟通过RS422同步接口输出到下一个设备;数码相片解压单元接收到数码相片数据流后,通过RS422同步接口传送给解压卡,解压卡进行解压后,通过PCI总线把数据传输到PC机上,最后进行数据显示、存储和网络发送等。压缩与解压缩单元组成框图如图2所示。
3 系统工作原理
3.1 图像压缩单元工作原理
即使同时使用两片图像压缩芯片ADV202,也仅仅能够支持一路高清电视的分辨率的图像,与4 008×5 344仍然存在较大差距。因此,考虑采用将一幅图片进行拆分,分为多帧压缩传送,保证整幅照片的数据传送。工作逻辑框图如图3所示。
从Camera Link接收的数据在SDRAM[6-7]中缓存,当数据存满一张完整照片时,采用连续发送的方式将数据送入ADV202压缩,ADV202返回的数据与遥测数据混合成帧,然后发送到AHA4501[8]芯片完成信道编码编码的数据,在FPGA控制下,采用同步方式从RS422数据口输出。
3.2 图像解压缩单元工作原理
在接收端,采用如图4的结构。接收到的信道数据,首先在FPGA内部进行信道解码恢复成图像数据和遥测数据帧,将遥测数据从RS422接口输出,完成遥测数据的处理。