您的位置 首页 解答

根据FPGA的立体视频转化体系

给出了以FPGA为核心、针对自由立体显示器的立体视频格式转换系统的设计与实现方法。详细介绍了系统的硬件构成和FPGA逻辑设计,包括DVI控制、视频格式转换以及数据缓冲系统等。

自在立体显现器是一种无需佩带辅佐设备就能观看三维立体作用的显现器。因为立体显现器可以实在复原三维信息,因而在军事、商业、医疗等范畴有着宽广的发展前景[1]。

跟着立体显现器研讨的不断发展,自在立体显现技能日趋老练,不断涌现出各种新式的立体显现技能[1,2]。其间依据视差的立体图画显现技能以完结便利和技能老练的长处被广泛应用[2]。传统的立体图画源一般不能直接用于新式立体显现器显现,为立体显现器供给适宜的图画源成为立体显现研讨的一个重要环节。本文介绍一种依据视差原理的立体显现器的视频转化体系,它可以将已有的立体视频格局转化成所需的视频格局。

依据视差的立体显现器需求在屏幕上一起显现一对立体图画,因而显现器所需的图画格局也不同于平面显现器。本文将以输入左右格局(Side-by-Side)的视频信号为例,详细描述该信号格局转化为一种液晶立体显现器格局的规划与完结。该体系以FPGA为中心,选用全数字的数字视频口DVI(Digital Visual Interface)作为液晶显现器的视频接口,而且运用一片DDR SDRAM构建了高速的帧缓存体系,确保了数据的实时处理。体系可以作业在2D和3D形式下,完结显现器的平面/立体兼容,在1 280×1 024@60 Hz的19寸立体显现器上作业安稳,满意体系要求,通用性很好。

1 体系规划

1.1 方针视频格局

现在存在很多左右格局的立体图画和视频。所谓的左右格局,就是在一幅完好的图画上,将一对立体图画平行放置在图画的左半边和右半边,如图1(a)所示。观看者左眼只看到左面的图画,右眼只看到右边的图画时就能看到立体图画。一种依据液晶和视差原理的自在立体显现器,将左右图画别离放在亚像素列的偶数列和奇数列。以屏幕分辨率为1 280×1 024为例,原图第0~639列为左图,640~1 279为右图,则第0列和第640列像素组成改换后图画的第0列和第1列;第1列和第641列组合为第2第3列……顺次类推。组合的办法为交流对应像素的绿色重量。组成后的作用如图1(b)所示,左右图画的亚像素在水平方向距离摆放。

1.2 硬件体系规划

体系的硬件框图如图2所示。该体系选用DVI作为视频输入输出接口。DVI作为一种全数字的接口规范,已经成为液晶显现器必备的一种接口。与VGA比较,它的长处在于选用数字信号传输,没有A/D、D/A二次转化带来的信号丢失。其间输入输出别离选用TI公司的TFP401和TFP410芯片,该芯片支撑最高165 MHz的像素时钟,即对应1 600×1 200@60 Hz的分辨率。FPGA芯片选用Xilinx公司的Spartan3E系列的XC3S1600E,该芯片具有较为丰厚的资源,而且本钱较低。为了满意视频数据存储的需求,该体系还装备了一组位宽为32 bit、容量为64 MB的DDR SDRAM存储芯片。当体系作业在2D形式时,FPGA收集由DVI输入的视频数据,经SDRAM缓存后发送给DVI输出芯片;当体系作业在3D形式时,FPGA先对读入的数据实时进行格局转化后再写入SDRAM,然后从SDRAM读出转化好的数据发送给DVI输出芯片,立体显现器接收到的便是对应的立体格局的数据。该规划运用DVI输入输出时序上的特色,分时运用一组SDRAM完结了相似“乒乓操作”的帧缓存功用,充分运用了体系资源。

2 FPGA逻辑规划

体系规划的主要任务是完结FPGA对各个模块的操控,包含DVI数据的输入输出、SDRAM的读写操控、数据的缓存以及各模块之间的和谐等。其间,数据的缓存是整个体系规划的要害。FPGA内部的模块区分如图3所示,虚线左面的模块选用视频的像素时钟作为作业时钟,频率取决于分辨率;右边的模块选用体系本身生成的时钟作为作业时钟,频率最高为166 MHz。

2.1 DVI输入输出

DVI输入输出操控,一方面依据同步信号收集视频数据;另一方面要依据输入信号生成输出信号,包含行同步(HSYNC)、场同步(VSYNC)、数据有用信号(DE)等。以输入视频信号1 280×1 024@60Hz为例,依据VESA(Video Electronics Standards Association)规范,此刻像素时钟fp=108 MHz,每一行信号期间,当DE信号为高电平时,数据有用。所以可以在检测到DE信号的上升沿后开端收集数据,而在DE转为低电平后中止数据的收集。收集的数据写入SRAM,SRAM地址由同步信号解码发生。

为了准确生成输出DVI的同步信号,需求在收集DVI输入数据的一起计算输入信号各个特征脉冲保持的时钟数。图4所示为以行为单位计算场同步信号的参数。输出端在依据计算参数生成DVI同步信号的一起,当输出信号的DE为高电平时,从输出SRAM读取相应的数据送到数据总线。

2.2 数据缓冲

数据缓冲是整个规划的要害。数据的存储缓冲是信号处理中一般会遇到的问题。视频信号的缓冲,因为其数据量大,使得对存储器的容量和速度都提出了比较高的要求。当体系作业在1 600×1 200@60 Hz的最大分辨率时,存储一帧数据所需的容量是d0=1 600×1 200×3 B=5.49 MB,此刻的数据率为d=d0×60=329.59 MB/s,这要求存储器具有大容量和足够快的速度。常用的数据缓冲办法有FIFO、双端口RAM和乒乓操作3种。

FIFO的运用十分简略,缺陷是只能次序读写,而且容量较小。双端口RAM可以做随机存取,且速度很快,但是SRAM的价格昂贵,容量一般在几百Kbit到几Mbit巨细,所以也不适合做大容量的存储。而SDRAM有容量大且速度较快的长处,所以选用SDRAM的乒乓操作既可以满意视频数据大容量的要求,又能满意速度上的要求,是一种较好的计划。

归纳以上计划,一起依据输入输出数据时序上的相似性特色,本文提出了一种时分复用单片SDRAM的计划。该计划用一组SDRAM完结相似“乒乓操作”的帧缓冲作用。

整个存储缓冲的结构如图5所示。输入输出均选用两级缓存的办法。其间榜首级缓存可以存储一行数据,选用FPGA片内双端口SRAM完结;二级缓存是可以寄存完好两帧数据的DDR SDRAM,作为主存储器。

当某一帧数据到来时,输入端的数据不停地从双端口RAM的一个端口写入SRAM_Rx。每逢检测到DE的下降沿,阐明已经有一行的数据写入完毕,则从别的一个端口将SRAM_Rx的数据写入DDR用于保存当时帧数据的存储区。写入一行完毕时,输入端要比及下一个DE下降沿到来才会再次有读写SDRAM的需求。也就是说SDRAM此刻处于闲暇期,所以立刻从之前保存好的上一帧数据中读出相应的一行数据写入SRAM_Tx,输出端则在写入SRAM_Tx一行完毕后从SRAM_Tx的另一个端口读出数据。这样一直到一帧完毕。当下一帧数据到来时,交流读写所指向的帧存储区,这样确保了原视频信号的帧率不变。

为了使规划简略,DDR操控器模块DDR_IF使DDR作业在BL(Burst Length)即数据突发长度等于2的状况[4],而且以行为单位完结一次读写流程。每次要写入或许读出一行数据时,主操控模块MAIN_CTL向DDR_IF发送读写恳求,然后发送一行数据所需求传送的突发长度的数量BL_CNT,以及该行数据要存入DDR的bank地址、行开始地址、列开始地址。之后,MAIN_CTL和DDR_IF进入读写流程。一行数据读写操作的Modelsim时序仿真如图6所示,图中以一行数据有3个像素为例。

依据以上剖析,DDR在一行数据的时刻内被复用,理论上只需满意写入一行加读出一行数据的时刻小于一行数据的持续时刻Th即可。在1 600×1 200@60 Hz的分辨率下,行周期Th=13.3 ?滋s,当DDR作业在165 MHz时,其读一行数据加写一行数据的时刻为:Tl=1 600×2/165 M×2=9.7 ?滋sTh。即便考虑到DDR在读写之外的其他操作上花费的额定时刻,也可以满意要求。

2.3 格局转化

2.3.1 3D形式

2.3.2 2D形式

关于本文规划的体系,对程序稍作修正即可完结2D/3D兼容。只须在输入端,第k个像素抵达时,各重量别离存入地址addr=k即可。

本文介绍的立体视频转化体系可以在不影响帧率的情况下进行实时转化,而且满意2D/3D兼容的需求。该体系现在已应用于立体显现器格局转化。DVI接口的运用,使得该体系有着广泛的兼容性。此外,体系用一片SDRAM完结了帧缓冲的功用,在充分运用体系资源的一起,使得整个体系的规划更为简练,有利于减小体积和降低本钱。一起,该体系实际上构建了一个通用的视频处理架构,具有很好的扩展性,程序只需稍作修正即可用于其他尺度、其他格局视频源(如上下格局、时分格局)、其他立体完结办法(如按行或许按列切割左右图画)的立体显现器。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/196609.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部