一种液晶立体显示器格式的设计与实现

时间:2011-08-27

0  引言

  立体显示器是建立在人眼立体视觉机制上的新一代自由立体显示设备。它不需要借助任何助视设备(如3D眼睛、头盔等)即可获得具有完整深度信息的图像。自由立体显示设备能够出色的利用多通道自动立体现实技术提供逼真的3D图像。它根据视差障碍原理,利用特定的掩模算法,将展示影像交叉排列,通过特定的视差屏障后由两眼捕捉观察。视差屏障通过光栅阵列(利用摩尔干涉条纹判别法安装在显示器液晶面板上)准确控制每一个像素透过的光线,只让右眼或左眼看到,由于右眼和左眼观看液晶面板的角度不同,利用这一角度差遮住光线就可将图像分配给右眼或者左眼,经过大脑将这两幅由差别的图像合成为一副具有空间深度和维度信息的图像,从而使您不需要任何助视设备(如戴上3D眼睛)即可看到3D图像。

  基于视差的立体显示器需要在屏幕上同时显示一对立体图像,因此显示器所需的图像格式也不同于平面显示器。本文将以输入左右格式(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(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存储芯片。该设计利用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信号为高电平时,数据有效。

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

2.2  数据缓冲

  数据缓冲是整个设计的关键。数据的存储缓冲是信号处理中通常会遇到的问题。视频信号的缓冲,由于其数据量大,使得对存储器的容量和速度都提出了比较高的要求。

  FIFO的使用非常简单,缺点是只能顺序读写,并且容量较小。双端口RAM可以做随机存取,且速度很快,然而SRAM的价格昂贵,容量通常在几百Kbit到几Mbit大小,所以也不适合做大容量的存储。而SDRAM有容量大且速度较快的优点,所以采用SDRAM的乒乓操作既可以满足视频数据大容量的要求,又能满足速度上的要求,是一种较好的方案。

  综合以上方案,同时根据输入输出数据时序上的相似性特点,本文提出了一种时分复用单片SDRAM的方案。该方案用一组SDRAM实现类似“乒乓操作”的帧缓冲效果。

  整个存储缓冲的结构如图5所示。输入输出均采用两级缓存的方式。其中级缓存可以存储一行数据,采用FPGA片内双端口SRAM实现;二级缓存是可以存放完整两帧数据的DDR SDRAM,作为主存储器。

  当某一帧数据到来时,输入端的数据不停地从双端口RAM的一个端口写入SRAM_Rx。每当检测到DE的下降沿,说明已经有一行的数据写入完毕,则从另外一个端口将SRAM_Rx的数据写入DDR用于保存当前帧数据的存储区。写入一行结束时,输入端要等到下一个DE下降沿到来才会再次有读写SDRAM的需求。这样一直到一帧结束。当下一帧数据到来时,交换读写所指向的帧存储区,这样保证了原视频信号的帧率不变。

  为了使设计简单,DDR控制器模块DDR_IF使DDR工作在BL(Burst Length)即数据突发长度等于2的状态,并且以行为单位完成读写流程。一行数据读写操作的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 ?滋s<Th。即使考虑到DDR在读写之外的其他操作上花费的额外时间,也能够满足要求。

2.3  格式转换

2.3.1  3D模式

2.3.2  2D模式

  本文介绍的立体视频转换系统能够在不影响帧率的情况下进行实时转换,并且满足2D/3D兼容的需要。该系统目前已应用于立体显示器格式转换。DVI接口的使用,使得该系统有着广泛的兼容性。此外,系统用一片SDRAM实现了帧缓冲的功能,在充分利用系统资源的同时,使得整个系统的设计更为简洁,有利于减小体积和降低成本。同时,该系统实际上构建了一个通用的视频处理架构,具有很好的扩展性,程序只需稍作修改即可用于其他尺寸、其他格式视频源(如上下格式、时分格式)、其他立体实现方式(如按行或者按列分割左右图像)的立体显示器。


  
上一篇:介绍一种零磁通型霍尔电流传感器设计
下一篇:使用C8051F310器件设计锂离子电池充电器

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料