0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用FPGA技术实现立体显示器的视频转换系统的设计

电子设计 来源:郭婷 作者:电子设计 2019-04-19 08:00 次阅读

自由立体显示器是一种无需佩戴辅助装置就能观看三维立体效果的显示器。由于立体显示器能够真实还原三维信息,因此在军事、商业、医疗等领域有着广阔的发展前景。

随着立体显示器研究的不断发展,自由立体显示技术日趋成熟,不断涌现出各种新型的立体显示技术。其中基于视差的立体图像显示技术以实现方便和技术成熟的优点被广泛应用。传统的立体图像源通常不能直接用于新型立体显示器显示,为立体显示器提供合适的图像源成为立体显示研究的一个重要环节。本文介绍一种基于视差原理的立体显示器的视频转换系统,它能够将已有的立体视频格式转换成所需的视频格式。

基于视差的立体显示器需要在屏幕上同时显示一对立体图像,因此显示器所需的图像格式也不同于平面显示器。本文将以输入左右格式(Side-by-Side)的视频信号为例,详细描述该信号格式转换为一种液晶立体显示器格式的设计与实现。该系统以FPGA为核心,采用全数字的数字视频口DVI(Digital Visual Interface)作为液晶显示器的视频接口,并且使用一片DDR SDRAM构建了高速的帧缓存系统,保证了数据的实时处理。系统可以工作在2D和3D模式下,实现显示器的平面/立体兼容,在1 280×1024@60 Hz的19寸立体显示器上工作稳定,满足系统要求,通用性很好。

1 系统设计

1.1 目标视频格式

目前存在大量左右格式的立体图像和视频。所谓的左右格式,就是在一幅完整的图像上,将一对立体图像平行放置在图像的左半边和右半边,如图1(a)所示。观看者左眼只看到左边的图像,右眼只看到右边的图像时就能看到立体图像。一种基于液晶和视差原理的自由立体显示器,将左右图像分别放在亚像素列的偶数列和奇数列。以屏幕分辨率为1280×1024为例,原图第0“639列为左图,640”1279为右图,则第0列和第640列像素组成变换后图像的第0列和第1列;第1列和第641列组合为第2第3列……依次类推。组合的方式为交换对应像素的绿色分量。合成后的效果如图1(b)所示,左右图像的亚像素在水平方向间隔排列。

采用FPGA技术实现立体显示器的视频转换系统的设计

1.2 硬件系统设计

系统的硬件框图如图2所示。该系统采用DVI作为视频输入输出接口。DVI作为一种全数字的接口标准,已经成为液晶显示器必备的一种接口。与VGA相比,它的优点在于采用数字信号传输,没有A/D、D/A二次转换带来的信号损失。其中输入输出分别采用TI公司TFP401和TFP410芯片,该芯片支持最高165 MHz的像素时钟,即对应1600×1200@60 Hz的分辨率。FPGA芯片采用Xilinx公司的Spartan3E系列的XC3S1600E,该芯片具有较为丰富的资源,并且成本较低。为了满足视频数据存储的需要,该系统还配备了一组位宽为32 bit、容量为64 MB的DDR SDRAM存储芯片。当系统工作在2D模式时,FPGA采集由DVI输入的视频数据,经SDRAM缓存后发送给DVI输出芯片;当系统工作在3D模式时,FPGA先对读入的数据实时进行格式转换后再写入SDRAM,然后从SDRAM读出转换好的数据发送给DVI输出芯片,立体显示器接收到的即是对应的立体格式的数据。该设计利用DVI输入输出时序上的特点,分时利用一组SDRAM实现了类似“乒乓操作”的帧缓存功能,充分利用了系统资源。

采用FPGA技术实现立体显示器的视频转换系统的设计

2 FPGA逻辑设计

系统设计的主要任务是完成FPGA对各个模块的控制,包括DVI数据的输入输出、SDRAM的读写控制、数据的缓存以及各模块之间的协调等。其中,数据的缓存是整个系统设计的关键。FPGA内部的模块划分如图3所示,虚线左边的模块采用视频的像素时钟作为工作时钟,频率取决于分辨率;右边的模块采用系统自身生成的时钟作为工作时钟,频率最高为166 MHz。

采用FPGA技术实现立体显示器的视频转换系统的设计

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读取相应的数据送到数据总线。

采用FPGA技术实现立体显示器的视频转换系统的设计

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,作为主存储器。

采用FPGA技术实现立体显示器的视频转换系统的设计

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

为了使设计简单,DDR控制器模块DDR_IF使DDR工作在BL(Burst Length)即数据突发长度等于2的状态,并且以行为单位完成一次读写流程。每次要写入或者读出一行数据时,主控制模块MAIN_CTL向DDR_IF发送读写请求,然后发送一行数据所需要传送的突发长度的数量BL_CNT,以及该行数据要存入DDR的bank地址、行起始地址、列起始地址。之后,MAIN_CTL和DDR_IF进入读写流程。一行数据读写操作的Modelsim时序仿真如图6所示,图中以一行数据有3个像素为例。

采用FPGA技术实现立体显示器的视频转换系统的设计

根据以上分析,DDR在一行数据的时间内被复用,理论上只要满足写入一行加读出一行数据的时间小于一行数据的持续时间Th即可。在1 600×1 200@60 Hz的分辨率下,行周期Th=13.3,当DDR工作在165 MHz时,其读一行数据加写一行数据的时间为:Tl=1 600×2/165 M×2=9.7<Th。即使考虑到DDR在读写之外的其他操作上花费的额外时间,也能够满足要求。

2.3 格式转换

2.3.1 3D模式

采用FPGA技术实现立体显示器的视频转换系统的设计

2.3.2 2D模式

对于本文设计的系统,对程序稍作修改即可实现2D/3D兼容。只须在输入端,第k个像素到达时,各分量分别存入地址addr=k即可。

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


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21664

    浏览量

    601679
  • 显示器
    +关注

    关注

    21

    文章

    4941

    浏览量

    139805
  • 视频
    +关注

    关注

    6

    文章

    1932

    浏览量

    72806
收藏 人收藏

    评论

    相关推荐

    从ASIC到FPGA转换系统时钟设计方案

    从ASIC到FPGA转换系统时钟设计方案
    发表于 03-02 09:37

    实现一个在视频上叠加直线并输出到显示器上的系统

    显示器上。以上系统目的是为了实现视频上叠加很细的直线,如果在步骤2中未经过视频放大,而直接在原始视频
    发表于 06-09 22:30

    基于FPGA的数字视频转换接口的设计与实现

    引言 本文从实际应用的角度出发,采用FPGA作为主控芯片,设计了一款数字视频接口转换设备,该设备针对于MT9M111这款数字图像传感产生的
    发表于 12-11 10:59

    采用FPGA的数字视频接口转换设备设计

    引言  本文从实际应用的角度出发,采用FPGA作为主控芯片,设计了一款数字视频接口转换设备,该设备针对于MT9M111这款数字图像传感产生
    发表于 04-17 07:00

    采用FPGA作为主控芯片的数字视频接口转换设备

    武汉大学物理科学与技术学院 赵东方 李雄 于心亮引言本文从实际应用的角度出发,采用FPGA作为主控芯片,设计了一款数字视频接口转换设备,该设
    发表于 04-22 07:00

    采用FPGA的数字视频接口转换设备

    作者:武汉大学物理科学与技术学院 赵东方 李雄 于心亮 程方敏引言本文从实际应用的角度出发,采用FPGA作为主控芯片,设计了一款数字视频接口转换
    发表于 04-23 07:00

    采用FPGA实现数字视频转换接口设计

    引言   本文从实际应用的角度出发,采用FPGA作为主控芯片,设计了一款数字视频接口转换设备。 该设备针对于MT9M111这款数字图像传感
    发表于 05-05 09:29

    采用FPGA的数字视频接口转换设备设计

    引言本文从实际应用的角度出发,采用FPGA作为主控芯片,设计了一款数字视频接口转换设备,该设备针对于MT9M111这款数字图像传感产生的I
    发表于 05-29 05:00

    如何采用FPGA技术实现立体显示器视频转换系统的设计

    本文介绍一种基于视差原理的立体显示器视频转换系统,它能够将已有的立体视频格式转换成所需的
    发表于 04-29 06:20

    求大佬分享一款基于单片机+ FPGA视频制式的转换系统

    本文介绍了基于单片机+ FPGA视频制式的转换系统, 利用单片机方便的嵌入性及灵活的可编程性, 再结合FPGA 强大的逻辑控制功能很好地克服了这些弊端,
    发表于 06-04 06:24

    FPGA在多制式视频转换系统中的应用

    FPGA 在多制式视频转换系统中的应用 1 引言    目前, 在军事、工业和医学领域存在着大量的非标准视频系统, 其
    发表于 01-16 09:57 883次阅读
    <b class='flag-5'>FPGA</b>在多制式<b class='flag-5'>视频</b><b class='flag-5'>转换系统</b>中的应用

    基于FPGA的多制式视频转换系统

    分析了视频转换中的关键技术,即,视频扫描转换视频图像处理的基本原理,并给出了一种实际的
    发表于 05-05 20:37 1021次阅读
    基于<b class='flag-5'>FPGA</b>的多制式<b class='flag-5'>视频</b><b class='flag-5'>转换系统</b>

    基于FPGA的高清视频采集与显示系统

    本文介绍了一种基于FPGA视频采集与显示系统的设计。系统FPGA为核心,配合高分辨率CCD图
    发表于 08-19 10:53 4797次阅读

    2D到3D视频自动转换系统

    完成系统界面的设置及控制、显示等功能,其DSP处理实现图像分割和渲染等核心算法,实现了1个高效的2D到3D
    发表于 03-06 14:20 1次下载
    2D到3D<b class='flag-5'>视频</b>自动<b class='flag-5'>转换系统</b>

    剖析FPGA的自由立体显示系统光学引擎设计

    实现了一种用于自由立体显示系统的光学引擎。该系统采用FPGA
    的头像 发表于 04-23 14:54 1620次阅读
    剖析<b class='flag-5'>FPGA</b>的自由<b class='flag-5'>立体</b><b class='flag-5'>显示</b><b class='flag-5'>系统</b>光学引擎设计