文献标识码: A
文章编号: 0258-7998(2011)11-0020-03
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接口输出,完成遥测数据的处理。
对于接收的图像数据,则通过ADV202进行解压缩,解压缩之后的数据在SDRAM中缓存,一张照片的数据完整后,通过PCI接口将数据发送给计算机主机。
4 图像传输演示
由于4 008×5 344分辨率的Camera Link接口数码相机价格十分昂贵,因此本设计无法采用该相机来进行演示验证。为了证明设备的工作状态,可以首先采用RS422串口来传递高分辨率(4 008×5 344)图像的方法来验证图像压缩和解压缩的功能和效果,如图5(a)所示;然后再利用低分辨率(782×582)的Camera Link接口相机来演示验证Camera Link接口功能,如图5(b)所示。
4.1 串口高分辨率图像传输演示方法
目前图像压缩模块除了Camera Link接口,只有RS422接口可用来接收图像数据。因此,可以利用接收遥测数据的RS422接口来进行高分辨率图像数据的接收,具体连接关系如图5(a)所示。
如图5(a)所示,利用电脑的RS232串口向图像压缩模块发送4 008×5 344分辨率的BMP格式图像,经RS232/RS422转换器变为RS422接口数据由图像压缩模块接收。接收后,图像压缩模块对图像进行分割压缩,然后通过另一个RS422接口传递给图像解压模块。图像解压模块将接收到的图像进行解压,然后通过PCI接口传递给电脑。最终由电脑进行图像的合并及储存显示。图6为图像传输效果图,其中图6(a)为原始图像,图6(b)为接收端解压后拼接恢复的图像。
4.2 Camera Link接口图像传输演示方法
采用串口进行高分辨率图像传输大约需要30 min,而且不能验证Camera Link接口的功能是否正常。所以在通过串口完成高分辨率图像演示验证后,需要利用低分辨率(576×768)的Camera Link接口相机进行Camera Link接口的功能验证。具体连接如图5(b)所示。
如图5(b)所示图像压缩模块通过控制Camera Link接口相机的参数和快门,可以实现对该相机的操作。相机在响应快门操作后,可以利用Camera Link接口将图像数据传递给图像压缩模块。然后图像压缩模块进行图像压缩和传输;图像解压模块在完成图像解压后将图像数据通过PCI接口传递给电脑,并由电脑进行图像存储和显示。图7为图像传输效果图,其中图7(a)为原始图像中拆分后的第一张图(分辨率1 024×1 024),图7(b)为经过8倍压缩/解压后合并回复后的图像(分辨率4 008×5 344)。
本设计实现了基于Altera公司的StratixTM II系列FPGA EP2S30F484I5芯片和数码相机CV-A10CL的高分辨率数码照片的图像传输系统。通过FPGA对数码相机CV-A10CL、压缩/解压缩芯片ADV202、信道编码芯片AHA4501、存储芯片SDRAM和PCI总线的控制和数码照片图像数据的处理,完成数码照片的压缩、传输、解压缩及显示的全过程。高分辨率图像的拆分和合并技术解决了高分辨率数码照片传输难和芯片处理能力有限的问题,也利用冗余的图像数据消除了图像在拼接时的边界效应。串口高分辨率图像传输演示和Camera Link接口图像传输演示结果验证了本设计的可靠性和实用性。
参考文献
[1] PULNiX.Camera Link Specifications[S].2000.
[2] The Mechademic Company.Digital monochrome and color progressive scan cameras CV-A10CL and CV-A70cCL operation manual[S].2005.
[3] ANALOG DEVICES.ADV202 JPEG2000 Video Processor User’s Guide(Revision 3.3)[S].2005.
[4] 张德联,张帆.基于Camera Link的高速数据采集压缩系统[J].科学技术与工程,2008,8(18):5253-5255.
[5] 何中翔,杨世洪.基于Camera Link的实时显示技术研究[J].现代显示,2008(93):31-35.
[6] 杨海涛,苏涛,巫蠓.基于FPGA的SDRAM控制器的设计与实现[J].电子技术应用,2007,33(1):8-12.
[7] Micron Technology.Synchronous DRAM[S].2000.
[8] Comtech AHA Corporation.Product Specification AHA4501 Astro[S].2002.