基于fpga的全自动平面视频转立体视频系统的制作方法

文档序号:7717893阅读:150来源:国知局
专利名称:基于fpga的全自动平面视频转立体视频系统的制作方法
技术领域
本发明涉及平面视频转立体视频的领域,尤其是一种基于FPGA硬件的全自动平 面视频转立体视频系统。
背景技术
三维图像和显示是未来信息系统的一种重要表现形式,三维图像和显示层次分明 色彩鲜艳,具有很强的视觉冲击力,能给人留下深刻的印象,正因为三维图象具有这些平面 图像和视频所不具备的特点,所以在诸如电视、斟察、医疗、传媒、电子游戏等领域具有广阔 的应用前景。目前,立体显示正以惊人的速度迅速运用到人们生活中的各个领域。
我们将利用计算机视觉等技术把平面媒体资源转化为包含三维信息的媒体资源 的这一过程,称为平面转立体技术。平面视频转立体视频技术能够实现大规模的立体视频 片源制作,摆脱立体显示片源不足的困境。能够满足各个行业对立体视频的需求,加速立体 视频市场推广的速度。 目前的视频转化产品均采用计算机软件实现。在处理大数据量的视频时,处理速 度慢,要达到实时性很困难。利用专用的硬件来处理图像就有可能加快处理速度。近年来, 可编程逻辑的发展非常快,尤其是容量大、速度快的FPGA芯片,使用FPGA可以充分利用硬 件上的并行性,改善图像处理的速度,使对大数据量的图像处理达到实时性,可以在无人工 参与、无计算机的情况下实现自动转化。

发明内容
本发明的目的是克服现有技术中存在的不足,提供一种基于FPGA的全自动平面 视频转立体视频系统,充分利用FPGA芯片容量大、速度快的优点进行平面视频转立体视 频。 按照本发明提供的技术方案,所述基于FPGA的全自动平面视频转立体视频系统 包括以下部分 输入模块,对输入的平面模拟视频信号进行模数转化,生成可计算的平面数字视 频信号; 采样模块,对平面数字视频信号的每一帧进行降采样,然后把采样点RGB信息转 化为亮度信息,利用乒乓存储的机制存储在存储模块中; 计算模块,根据存储模块中所存储的采样图像信息和当前的图像信息来得到当前 图像的深度信息,从而获得深度图,然后从深度图和平面图利用DIBR算法得到八个不同视 角的图像,最后按照显示器规格把八个视角图像融合形成一张立体图像;
输出模块,对生成的立体图像进行数模转化输出给立体显示器的模拟信号端口或 者不经过模数转化而使用DVI接口输出给立体显示器的数字端口 ; 存储模块,包括两个功能使用乒乓存储机制来存储采样模块采样得到的图像,并 提供给计算模块进行计算;为输出模块提供输出的缓存;
控制模块,负责判断一帧的开始和结束,判断一帧图像数据哪些部分是有效像素 数据,在有效像素数据内对每个像素点进行计数,在每一个有效像素数据到达时,控制模块 要给出这个像素点处于当前帧图像的第几行、第几列的信息; 所述输入模块的输出连接采样模块,采样模块的输出连接计算模块和存储模块,
计算模块的输出连接存储模块,存储模块的输出分别连接计算模块和输出模块,所述控制
模块分别与输入模块、采样模块、计算模块、输出模块连接,输出控制信号给所述输入模块、
采样模块、计算模块、输出模块。 所述计算模块得到深度图的方法如下 计算模块从存储模块中获得前一帧的采样图像,并且与当前帧的采样点的数据做 差,统计出做差的结果大于阈值T的像素点的亮度的平均值,根据此平均值得到前景运动 物体的亮度范围T士D, D是预估的标准差,由此区分出前景物体和背景,最后得到深度图。
所述采样模块把采样点RGB信息转化为亮度信息的过程中使用移位相加的方法 代替浮点乘法,并且采用流水运算的方法,使计算在一个像素周期内完成。
所述存储模块对于数据的存储都使用乒乓读写机制,即对每一个存储数据都采 用两个存储器;在读写周期内,一个存储器读取数据,另一个存储器写入数据;每过一个周 期,两个存储器的"读"、"写"进行交换。 本发明的优点是本发明基于FPGA的硬件系统具有体积小、易便携、全自动和不 需要计算机参与的优点。


图1是本发明系统结构框图。 图2是RGB分量转化为亮度信号的流水线实现图。
图3是采用乒乓读写机制存储采样信号的工作时序图。
具体实施例方式
下面结合附图和实施例对本发明作进一步说明。本发明所述系统全自动对平面视 频进行立体的转化,如图1所示,主要包括输入模块、采样模块,计算模块、存储模块和输出 模块构成。 系统的基本运行流程是输入的模拟VGA视频信号首先经过AD9883芯片进行模 数转化,得到数字化的RGB信号流,采样模块对RGB信号流进行采样,并把每一帧的采样数 据转化为亮度信息采用乒乓存储机制存储到存储模块(帧缓存片上RAM)中,而计算模块 通过对比存储模块中的前一帧采样数据和当前帧的数据进行计算,得到平面图像的深度信 息,再根据当前帧的平面图像和平面图像的深度信息利用DIBR算法得到八个视角的视图, 再由八个视图按照一定的排列顺序组合生成最终的立体图像,最后把立体图像输出到输出 缓存中,而输出模块(数模转化芯片ADV7123)不断读取输出缓存中的内容,把数字视频信 号转化为模拟的VGA信号,输出给立体显示器。 以下对各个模块具体的结构和工作原理做比较详细的介绍。
输入模块 输入模块的任务是接收模拟的VGA信号,然后转化为数字的RGB信号,因此需要对
4模数转化芯片进行合理的配置,最终可以得到8位的数字RGB信号, 一帧图像按照从左至
右,从上而下的顺序依次传送每一个像素点数据,此外,一帧图像数据不仅仅包含有效的像
素数据,在像素数据之外还有一段时间传送的是消隐信息,后面要提到的计算模块会利用
这一段消隐时间来进行必要的计算已得到深度信息。 控制模块 控制模块需要精确地检测出输入视频信号中的每一帧的开始和结束信号,从而能 够准确地判断出一帧的开始和结束,可以通过检测输入的VGA信号的消隐信号VSYNC脉冲 来实现。同时控制模块也要判断一帧图像数据哪些部分是有效像素数据,而在有效数据内 也要对每个像素点进行计数,在每一个有效像素数据到达时,控制模块要给出这个像素点 处于当前帧图像的第几行、第几列的信息,这些信息可以通过设置行计数器和列计数器来 实现。这些像素位置的信息对于采样模块判断是否采样,计算模块进行计算,输出模块进行 输出都是至关重要的。
采样模块 采样模块需要按照32 : l的行采样率和32 : 1的列采样率对图像进行采样,并 且把采样之后的值传送给存储器进行存储,因此,这个模块需要产生每个采样数据的存储 器写地址。 在一帧的图像数据中,只有一部分是有效图像信息,采样过程中我们只需要对有
效的图像信息进行采样存储, 一个像素点满足以下两个条件时将会被采样存储 1、这个像素点处于一帧的有效图像区域,像素点是否处于有效图像区域由控制模
块提供。 2、这个像素点的行序号和列序号都是32的倍数,像素位置信息由控制模块提供。
当判断出一个像素点满足采样条件时就需要把该像素点进行RGB向亮度的转化, 并把亮度信息采用乒乓读写机制写入存储模块中。 RGB向亮度转化这个过程在计算模块中会再次使用,所以这一过程将会在后文的 计算模块中详述。 至于如何使用乒乓读写机制来把采样的亮度数据写入存储模块这些内容在将在
后文的存储模块中详述。 计算模块 1、 RGB分量向亮度信息转化。 从前端芯片处得来的是RGB分量值,因此需要进行颜色空间的转换,利用亮度与
RGB分量之间转化公式Y = 0. 257R+0. 504G+0. 098B 由于RGB转Y(亮度)这一过程是要对每一个像素点进行的,要求计算时间必须 小于一个像素点的周期,而这一设计的难点在于,FPGA不能直接实现浮点数乘法,对于a二
0. 5*b之类的语句,综合工具一般是认为不能被综合的,本发明采用的方法是将小数乘法 通过乘一个系数转换为整数乘法,然后,再将算法所得的结果除以这个系数。整体的算法可 以采用如下的等式表示,以系数取1024为例
Y = (1/1024) * [ (512+4) G+ (256+8) R+ (64+32) B)] 这样做使得乘法和除法都可以用移位运 然后相加减的方法来实现,使得运算速度大大加快,保证了每一个像素点都能够得到正确无误的结果。 可以把这一过程拆分为三步移位,相加,再次移位,如图2所示,第一个流水线周 期对各个分量进行向左移位(相当于做乘法),第二个流水周期进行相加操作,第三个周期 向右移位(相当于做除法),通过利用流水线的思想,每一个像素周期内只完成一步操作, 这样就能保证在延时三个周期后能得到正确的亮度信息,而且处理速度能够达到每个像素 点只需一周期。 2 、计算前景物体亮度范围 计算模块通过对比存储模块中存储的前一帧采样数据和当前帧的数据,计算前景 物体的亮度平均值,为此我们需要设定一个亮度累加器来存储运动点的亮度值,一个运动 点计数器来记录运动物体像素点的个数。 当一帧的图像到达时,判断前后两帧中对应采样点的亮度差是否大于阈值T(T一 般可以取25),如果大于,则说明该点是运动点,把本点的亮度值累加到亮度累加器中,同时 运动点计数器加一,一帧结束时,使用亮度累加器除以亮度计数器的方法求得亮度平均值 Y,得到亮度平均值Y后,我们认定亮度处于Y±D (D是预估的标准差,可以取20左右)这一 范围内像素点是运动物体的,这个亮度范围就作为下一帧图像深度信息的判定依据。在下 一帧的每一个像素点到来时,我们就可以根据这一亮度范围,判断每个点是前景还是背景, 我们定义一个前景背景区分变量FB,若像素属于此亮度范围,则属于运动的前景,FB = 1, 否则FB = O,对于FB = 1的点我们把它的深度值赋为0, FB = 0的点深度值赋为200。
3、生成8个视角的视图和立体图像 利用DIBR的算法,根据平面图像和深度图生成其它视角图像实际上就是对像素
点的搬移,在这里,计算模块需要利用行缓冲技术,每判断一个像素点的FB就把像素点数
据连同FB—起按照一行像素点的顺序存入行缓冲存储器,直至一行结束,于此同时,在判
断当前行的像素点FB的同时,并行地读取前一行(已经计算出FB的那一行)的每一个像
素点的FB,并对这一行的像素点进行搬移并最终输出为立体图像。 存储模块 本发明的存储模块主要工作有两项 —,采用乒乓读写机制存储采样信号,它的工作时序如图3所示。其中,F0 F6表 示第0帧到第6帧的图像数据。 采用乒乓读写机制的时候,对于每一个存储量都需要两个存储器, 一个存储器写 的同时另一个读,这样保证数据的读写不发生冲突,可以持续不断地给计算模块提供前一 帧的采样数据。 二,采用乒乓存储机制来存储计算模块所需的行缓冲数据,这个原理跟存储采样 信号同理,在存储本行像素点的同时,可以读取上一行的像素数据,并对它进行处理。
输出模块 输出模块使用DA转化芯片,能够将数字的RGB分量信号转化为模拟的VGA信号输 出给立体显示器。
权利要求
基于FPGA的全自动平面视频转立体视频系统,其特征是包括以下部分输入模块,对输入的平面模拟视频信号进行模数转化,生成可计算的平面数字视频信号;采样模块,对平面数字视频信号的每一帧进行降采样,然后把采样点RGB信息转化为亮度信息,利用乒乓存储的机制存储在存储模块中;计算模块,根据存储模块中所存储的采样图像信息和当前的图像信息来得到当前图像的深度信息,从而获得深度图,然后从深度图和平面图利用DIBR算法得到八个不同视角的图像,最后按照显示器规格把八个视角图像融合形成一张立体图像;输出模块,对生成的立体图像进行数模转化输出给立体显示器的模拟信号端口或者不经过模数转化而使用DVI接口输出给立体显示器的数字端口;存储模块,包括两个功能使用乒乓存储机制来存储采样模块采样得到的图像,并提供给计算模块进行计算;为输出模块提供输出的缓存;控制模块,负责判断一帧的开始和结束,判断一帧图像数据哪些部分是有效像素数据,在有效像素数据内对每个像素点进行计数,在每一个有效像素数据到达时,控制模块要给出这个像素点处于当前帧图像的第几行、第几列的信息;所述输入模块的输出连接采样模块,采样模块的输出连接计算模块和存储模块,计算模块的输出连接存储模块,存储模块的输出分别连接计算模块和输出模块,所述控制模块分别与输入模块、采样模块、计算模块、输出模块连接,输出控制信号给所述输入模块、采样模块、计算模块、输出模块。
2. 如权利要求1所述的基于FPGA的全自动平面视频转立体视频系统,其特征是所述计 算模块得到深度图的方法如下计算模块从存储模块中获得前一帧的采样图像,并且跟本帧的采样点的数据做差,统 计出做差结果大于阈值T的像素点的亮度的平均值,根据此平均值得到前景运动物体的亮 度范围T士D, D是预估的标准差,由此区分出前景物体和背景,最后得到深度图。
3. 如权利要求1所述的基于FPGA的全自动平面视频转立体视频系统,其特征是所述采 样模块把采样点RGB信息转化为亮度信息的过程中使用移位相加的方法代替浮点乘法,并 且采用流水运算的方法,使计算在一个像素周期内完成。
4. 如权利要求1所述的基于FPGA的全自动平面视频转立体视频系统,其特征是所述存 储模块对于数据的存储都使用乒乓读写机制,即对每一个存储数据都采用两个存储器;在 读写周期内,一个存储器读取数据,另一个存储器写入数据;每过一个周期,两个存储器的 "读"、"写"进行交换。
全文摘要
本发明设计了一种基于FPGA的全自动平面视频转立体视频系统,该系统主要包括输入模块、控制模块、采样模块、计算模块、输出模块。所述计算模块根据存储模块中所存储的采样图像信息和当前的图像信息来得到当前图像的深度信息,从而获得深度图,然后从深度图和平面图利用DIBR算法得到八个不同视角的图像,最后按照显示器规格把八个视角图像融合形成一张立体图像。本发明在将平面视频转换为立体视频的过程中,使用了FPGA硬件,而不需要计算机的参与,大大地减小了成本,FPGA芯片的高集成性也使得系统具有便携灵巧的特点。本系统可在无人工参与的参与下自动完成视频的转化,节约了大量人力和时间,提高了平面视频转立体视频的效率。
文档编号H04N7/30GK101729919SQ20091021282
公开日2010年6月9日 申请日期2009年10月30日 优先权日2009年10月30日
发明者刘磊, 季向阳, 戴琼海, 曹汛, 郝伟 申请人:无锡景象数字技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1