基于FPGA的立体视频转换系统
- 格式:pdf
- 大小:294.28 KB
- 文档页数:4
Embedded Technology
基于FPGA的立体视频转换系统
张金龙 ,王元庆 ,张兆扬
(1.南京大学电子科学与工程学院,江苏南京210093;
2.上海大学通信与信息工程学院,上海200072)
摘要:给出了以FPGA为核心、针对自由立体显示器的立体视频格式转换系统的设计与实现方
法。详细介绍了系统的硬件构成和FPGA逻辑设计,包括DVI控制、视频格式转换以及数据缓冲系
统等。
关键词:自由立体显示;FPGA;DVI;左右格式;SDRAM
中图分类号:TN873 文献标识码:A 文章编号:0258-7998(2010)09-0039-04
Video conversion system based on FPGA for 3D display
ZHANG Jin Long‘,WANG Yuan Qing’,ZHANG Zhao Yang2
(1.School of Electronic Science and Engineering,Nanjing University,Nanjing 210093,China; 2.School of Comuinication and Information Engineering,Shanghai Univemity,Shanghai 200072,China)
Abstract:This paper introduces the design and implementation of the video conversion system for auto—stereoscopic display. Details of the system hardware and FPGA logic design,including the control of DVI,conversion of video format and data buffering
are intmduced. Key words:auto-stereoscopic;FPGA;DVI;side-by-side format;SDRAM
自由立体显示器是一种无需佩戴辅助装置就能观
看三维立体效果的显示器。由于立体显示器能够真实还
原三维信息,因此在军事、商业、医疗等领域有着广阔的
发展前景Il1。
随着立体显示器研究的不断发展,自由立体显示技
术日趋成熟,不断涌现出各种新型的立体显示技术 。
其中基于视差的立体图像显示技术以实现方便和技术
成熟的优点被广泛应用【2】。传统的立体图像源通常不能
直接用于新型立体显示器显示,为立体显示器提供合适
的图像源成为立体显示研究的一个重要环节。本文介绍
一种基于视差原理的立体显示器的视频转换系统,它能 够将已有的立体视频格式转换成所需的视频格式。
基于视差的立体显示器需要在屏幕上同时显示一
对立体图像,因此显示器所需的图像格式也不同于平面
显示器。本文将以输入左右格式(Side—by—Side)的视频
信号为例,详细描述该信号格式转换为一种液晶立体显 示器格式的设计与实现。该系统以FPGA为核心,采用
全数字的数字视频口DVI(Digital Visual Interface)作为
液晶显示器的视频接口,并且使用一片DDR SDRAM构 建了高速的帧缓存系统,保证了数据的实时处理。系统
可以工作在2D和3D模式下,实现显示器的平面,立体
兼容,在1 280x1 024@60 Hz的19寸立体显示器上工作
稳定,满足系统要求,通用性很好。 1系统设计
1.1目标视频格式 目前存在大量左右格式的立体图像和视频。所谓的
左右格式,就是在一幅完整的图像上,将一对立体图像
平行放置在图像的左半边和右半边,如图1(a)所示。观
看者左眼只看到左边的图像,右眼只看到右边的图像时
就能看到立体图像。一种基于液晶和视差原理的自由立
体显示器,将左右图像分别放在亚像素列的偶数列和奇
数列。以屏幕分辨率为1 280 ̄1 024为例,原图第0—639
・基金项目:国家自然科学基金重点项目资助(No.60832003); 新型显示技术及应用集成教育部重点实验室(上海大学)资助(I"200902)
《电子技术应用》2010年第36卷第9期
39 Embedded Technology
(a)左右格式图像
像素0 像素1 像素2 像素3
L R L R L R L R L R L R
; (b)立体显示器图像格式示意图
图1立体格式转换示意图
列为左图,640~1 279为右图,则第O列和第
640列像素组成变换后图像的第0列和第1
列;第1列和第641列组合为第2第3列
……依次类推。组合的方式为交换对应像素
的绿色分量。合成后的效果如图1(b)所示,
左右图像的亚像素在水平方向间隔排列。 1.2硬件系统设计
系统的硬件框图如图2所示。该系统采
用DVI作为视频输人输出接口。DVI作为一
种全数字的接口标准,已经成为液晶显示器
必备的一种接口。与VGA相比,它的优点在 左图
{ l右图 较为丰富的资源,并且成本较低。为了满足视频数据存
储的需要,该系统还配备了一组位宽为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。
地 I
于采用数字信号传输,没有A/D、D/A二次转换带来的
信号损失。其中输入输出分别采用TI公司的TFP401和
TFP410芯片,该芯片支持最高165 MHz的像素时钟,即
对应1 600×1 200@60 Hz的分辨率。FPGA芯片采用
Xilinx公司的Spartan3E系列的XC3S1600E,该芯片具有
图2系统硬件框图
40 欢迎网上投稿WWW.chinaaet.com RGB 数据 SDRAM 主控制 模块
RGB数据
图3 FPGA内部模块划分及信号
2.1 DVI输入输出
DVI输人输出控制,一方面根据同步信号采集视频
数据;另一方面要根据输入信号生成输出信号,包括行
同步(HSYNC)、场同步(VSYNC)、数据有效信号(DE)等。 以输入视频信号1 280×1 024@60Hz为例,根据VESA
r Video Electronics Standards Association)标准,此时像素
时钟 =108 MHz,每一行信号期间,当DE信号为高电
平时,数据有效。于是可以在检测到DE信号的上升沿
后开始采集数据,而在DE转为低电平后停止数据的
采集。采集的数据写入SRAM,SRAM地址由同步信号
解码产生。
为了精确生成输出DVI的同步信号,需要在采集
DVI输入数据的同时统计输入信号各个特征脉冲维持
的时钟数。图4所示为以行为单位统计场同步信号的参
数。输出端在根据统计参数生成DVI同步信号的同时,
《电子技术应用》2010年第36卷第9期 Embedded Technology
VSYNC
HSYNC r]几『_1 n …--n几几n『-1
DE 丁 …』
图4同步数据及参数统计示意图
当输出信号的DE为高电平时,从输出SRAM读取相应
的数据送到数据总线。
2.2数据缓冲
数据缓冲是整个设计的关键。数据的存储缓冲是信
号处理中通常会遇到的问题。视频信号的缓冲,由于其
数据量大,使得对存储器的容量和速度都提出了比较高
的要求。当系统工作在1 600xI 200@60 Hz的最大分辨率
时,存储一帧数据所需的容量是do=1 600X1 200X3 B=
5.49 MB,此时的数据率为d=dox60=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用于保存当前帧 80o×8 bitX3 8()0×8 bit×3 RAM一 一r RAM T r RAM—Rx_g RAM_ rx_g RAM Rx b RAM x
一一一-_』三二三二 一一一一
l Ll L1 I L2 L2 I L3 L3
[二二 二][二二 二]
Fram_o
图5缓冲区结构示意图
数据的存储区。写入一行结束时,输入端要等到下一个
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所示,图中以一行数据有