您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 全景图像实时展开在FPGA上的实现
责任编辑:韩汝水64所示(1)视频采集模块将ADV7180芯片输出的数字视频信号采集到SDRAM中缓存并获取相应的控制全景图像实时展开在FPGA上的实现Omni-directionalImageReal-timeUnwarpingBasedonFPGA喻洋梁栋冯晓文马义德兰州大学信息科学与工程学院(兰州730000)摘要:全景摄像机可以使用一个摄像头获取周围360°的环境信息,与以往的多摄像机获取方法相比大大节省了硬件资源,并且在还原全景图时避免了多画面拼接产生的“鬼影”问题。但由于反射式全景摄像机获取的画面为极坐标视图,为适应人眼观察习惯需要对其进行展开。本文在FPGA上实现了对反射式全景图像的实时展开,在27MHz系统时钟的驱动,生成122万像素的展开图像达到了21.97fps的帧速。关键词:全景摄像机;FPGA;嵌入式系统DOI:10.3969/j.issn.1005-5517.2011.1.007信号(2)VGA控制模块将已经处理好的数字视频信号输出到ADV7123之后进入VGA显示器进行显示并生成VGA控制信号和坐标信号(3)展开算法模块利用VGA控制模块产生的坐标信号对极坐标数字视频信号进行展开操作生成矩形视频信号系统模块设计根据系统框图本系统可分为以下几个主要模块视频采集模块展开算法模块和VGA控制模块系统时钟为ADV7180产生的27MHz像素时钟保证了采集与处理的同步进行视频采集模块视频采集模块接收由ADV7180芯片串行输出的格式为ITU-RBT.656分辨率为720525的数字视频信号并提取信号中有效像素信息同时将其转换为分辨率为640480的数字视频信号存入SDRAM中之后再提取缓存中数据转换为适合VGA显示的RGB信号传输到后续模块ITU-RBT.656解码器ITU-RBT.656协议以27MHz速率复用传送数字视频数据其顺序是CbYCrYCbYCr其中CbYCr这三个字指的是同一个像素的亮度和色差信号之后的Y对应于下一个像素的亮度YCbCr在传输中数据量的比为Y:Cb:Cr=4:2:2另外信号同时包括相应的场行信号ITU-RBT.656解码器的目的是将ADV7180芯片产生的图1系统框图图2ITU-RBT.656解码器37责任编辑:韩汝水65时偶数地址存储{YCb}奇数地址存储{YCr}SDRAM控制器SDRAM控制器采集ITU-RBT.656解码器输出的像素信号将其存入DE2-70开发板上的IS42S16160BSDRAM中系统将其设计为一个四端口控制器包括两个读口和两个写口并且使用108MHz时钟驱动SDRAM控制器和SDRAM芯片保证在分频之后每一个读写端口的频率为27MHz与像素时钟同步由于ADV7180产生的视频数据流是隔行扫描数据分为奇数场和偶数场所以SDRAM控制器除了对数据流进行存储还要在读取数据时进行去交织操作SDRAM控制器的双读口设计可以出色地完成去交织任务在读取数据时利用VGA的行扫描信号控制这两个读口分别读取当VGA控制器扫描到奇数行时由第一个读口读取相应奇数行数据否则由第二个读口读取相应偶数行数据之后再合并这两个读口读取的数据得到逐行扫描的分辨率为640480的视频数据流YCbCr到RGB转换模块本系统的最终目的是将视频流输出到VGA显示器进行显示而从SDRAM读取得到的数据是YCbCr422格式不符合VGA显示要求所以需要将其转换为RGB数据格式首先将YCbCr422格式转换为YCbCr444格式在每一个时钟上跳沿判断当前VGA列扫描信号若当前列为奇数则将SDRAM读口得到的16位YCbCr信号的前8位赋值给Y作为当前像素的Y值后8位赋值给Cr作为当前像素的Cr值Cb保持不变若当前列为偶数则YCbCr的前8位仍为当前像素的Y值后8位为当前像素的Cb值Cr保持不变这样就保证了输出的YCbCr三个信号是当前像素的对应描述信号在确定了每个像素对应的YCbCr值之后就可以通过如下公式计算得到对应的RGB值1.16401.596161.1640.3910.8131281.1642.0180128RYGCbBCr−=−−−−DE2-70上的EP2C70FPGA芯片内嵌了150个乘法器块每一个乘法器块可以配置为两个99位的乘法器或者一个1818位的乘法器所以本系统使用QuartusⅡ中集成的MegaWizardPlug-InManager配置乘加器模块用于实现YCbCr颜色空间到RGB颜色空间的转换另外上述转换公式涉及浮点运算在Verilog中不易实现所以将公式中各浮点值左移9位变为整数从而公式调整为9596081711413159620041669370/259610330141787RYGCbBCr−=−−+−展开算法模块展开算法模块为本系统的核心模块利用EP2C70内嵌的M4K存储器和正余弦生成器实现了极坐标视图到直接坐标视图的实时展开人眼视角约为120考虑到人眼观察的习惯系统将圆形的极坐标视图分割成为第一二三四象限四个部分每部分90由使用者选取感兴趣的部分进行展开这样既符合人眼观察的习惯又节省了空间视频分块全景极坐标视图在显示器上显示时类似于图5其中矩形代表整个显示器显示的内容分辨率为640480圆形代表全景图像出现的位置半径大约为240个像素图3YCbCr422转换为YCbCr444模块图4YCbCr444转换为RGB模块图5全景图像在显示器上显示示意图38责任编辑:韩汝水66~360的所有正余弦查找表同时由于存入了全部图像信息将会有1/4左右的无效像素点浪费了宝贵的存储器资源系统利用M4K存储器精确的寻址操作将第二三四象限的信息在存入时进行翻转使得存入M4K存储器的图像仅显示为第一象限的特性则只需要生成0~90的正余弦表就可以完成对整幅图像的展开计算其次固定摄像头之后圆形全景图像在显示器中的位置是固定的所以可以确定每一行有效像素的坐标范围当行列扫描信号在此范围之内则将该像素值存入M4K存储器中否则继续寻找下一个符合条件的像素点所以对第i象限的第M行第N个像素如果为有效像素则存入M4K存储器的地址按如下规则计算240_()240(239)_()240(239)(239)_(239)240(239)_(239)MNInvalidpixelMNMInvalidpixelNMNInvalidpixelMNMInvalidpixelN×+−×+−−×−+−−−×−+−−这里的M和N取值范围均为[0,239]Invalid_pixel(K)表示在第K行第一个有效像素之前所有无效像素点总数M4K存储器读地址M4K存储器的读操作完成了全景图像的展开本系统采用极坐标与直角坐标的对应关系实现全景图像展开如图6所示全景图像中的点P(x,y)在矩形图像中对应的点为P(x,y)则x,y与x,y的对应关系应为00'',cos,sinxyrOPxyxrxyryααα===∆∆=+=+其中x∆为横坐标方向角度步长y∆为纵坐标方向上的半径步长分别由以下参数确定之前对不同象限图像的翻转存储操作已经简化了M4K中数据的读取所以只需要0~90的正余弦查找表查找表长度为640在VGA显示器上的第M行第N个像素其对应像素值在M4K存储器中的地址按如下规则进行计算240(479)_()(479)_()_[(479)_()]MsintableNMcostableNInvalidpixelMsintableN−+−−−其中sin_table(N)和cos_table(N)为正余弦查找表中第N列对应的正余弦值VGA控制模块VGA控制模块根据系统时钟生成行同步信号和场同步信号同时接收前端模块生成的RGB像素信号并参照VGA显示标准对VGA显示进行控制本系统采用640480的显示分辨率帧速为64.4fps系统性能本系统每一帧画面分辨率为640480像素时钟为27MHz在不考虑实时显示而只考虑存储的条件下一秒钟内可存储87.89帧图像另外如果忽视人眼观察习惯一次性展开整幅图像帧速将降低为原来的四分之一即21.97fps展开图像分辨率提高到2560480总结本文以Terasic公司的DE2-70开发板为平台实现了对反射式全景摄像机采集的全景视频流的实时展开系统结构清晰具有较高的稳定性和可操作性系统时钟为27MHz显示分辨率为640480帧速达到64.4fps达到了实时性的要求参考文献:[1]王宇,王涌天,刘越,等。基于全景成像的增强现实系统[J].计算机工程,2010(3):36[2]王秀芳,侯振龙,梁洪卫。基于FPGA全景视频监控的设计[J].微计算机信息,2010(7):26[3]陈旺,徐玮,张茂军,等.柱面全景图像视图合成中的关键问题研究[J].信号处理,2010(2):26[4]吴自新.全景视觉系统设计与图像处理技术研究[D].哈尔滨工程大学,2006[5]马建国,孟宪元.电子设计自动化技术基础[M].清华大学出版社,2004:486-487[6]王斌,熊志辉,程钢,等.基于FPGA的折反射全景图像查表实时展开[J].计算机应用[7]陈立栋,徐玮,张茂军,等.基于四拼图的嵌入式全景视频实时生成系统[J].信号处理,2009(12)[8]李乐,熊志辉,王斌,等.DSP+FPGA折反射全景视频处理系统中双核高速数据通信[J].电子与信息学报,2010(3)图6展开算法示意图39
本文标题:全景图像实时展开在FPGA上的实现
链接地址:https://www.777doc.com/doc-4664765 .html