一种基于硬件实现的dibr系统的制作方法

文档序号:6512257阅读:364来源:国知局
一种基于硬件实现的dibr系统的制作方法
【专利摘要】本发明公开了一种基于硬件实现的DIBR系统,采用无需摄像机参数的三维图像变换算法以代替复杂的单应变换以及基于视差图的空洞填充算法代替图像修复算法,这样大大减小了计算的复杂程度。同时,采用行级流水处理,减少视差图以及参考图像的存储,从而节省了硬件的开销。在Xilinx开发板上进行测试,实验结果表明,本发明由于计算复杂度的降低,在实时处理全高清视频时,吞吐量可达60帧/秒,能支持全高清(1080P)视频的实时处理;并且硬件开销(不包括内部存储器)为59.8K逻辑门,内存储器的容量需求为20.25kbytes,硬件开销降低,合成结果与DIBR算法的结果相似。
【专利说明】—种基于硬件实现的DIBR系统
【技术领域】
[0001]本发明属于3D电视【技术领域】,更为具体地讲,涉及一种基于硬件实现的DIBR系统。
【背景技术】
[0002]随着3D显示技术和3D电视系统的快速发展与普及,视图合成引擎(viewsynthesis engine)已成为3D电视和任意视点电视(free viewpoint television)中合成单视点或多视点视频的重要组成部分。目前视图合成引擎中采用的核心算法是基于深度图像绘制(depth-1mage-based rendering, DIBR)算法。
[0003]DIBR算法以三维图像变换(3D image warping)为基础,实现由一幅或多幅图像及其对应的深度图(depth map)生成另一视点的图像的功能。采用DIBR算法的视图合成引擎只需要传输一路视频及对应的深度图便可得到立体图像对(stereo pairs),从而可以减少传输带宽。同时,采用DIBR技术能够方便地实现2D转3D(2D-to-3D conversion)和深度调节(depth adjustment)功能,方便地支持各种自由立体显示器,因此,它已经成为3D电视中的关键技术。然而,对于全高清(full high definition, FHD)的视频(1080p),DIBR算法的复杂度(complexity)会显著的增加,几乎不可能用软件来实时处理。因此,为满足全高清视频实时处理的要求,采用硬件来实现一个DIBR系统是十分必要的。
[0004]目前,DIBR系统硬件实现还研究得还较少。Chen等人设计了一个DIBR硬件加速器,在输入为720X576的立体视频时能达到25f/s的系统吞吐量。该加速器采用超大规模集成电路实现,在算法上采用了边缘依赖高斯滤波器(edge-dependent Gaussianfilter),尽管相对于传统的绘制架构,该加速器的硬件开销(hardware cost)有所降低,但是仍然有较大的优化空间。Lin等人曾尝试通过线性插入近似值的方法减少单应矩阵(homography)的内存消耗,但是在支持任意视点绘制的DIBR系统中应用该架构时,仍需要考虑小数和大位宽数值运算、深度图存储、遮挡处理以及复杂的空洞填充等问题。Horng等人对视图合成参考软件(view synthesis reference software, VSRS)的算法做了优化,用Z scaling的方法来减少运算的消耗,用列序变换(column order warping)的方法代替了Z-buffer算法,采用一种简单的双线性插值来代替复杂的空洞填充算法。在此基础上,采用分级流水结构完成了整个算法的硬件实现。该算法的硬件实现可以支持1080p视频的实时处理,但是整个系统仍然显得很复杂,硬件资源需求(hardware resource requirement)也比较大。

【发明内容】

[0005]本发明的目的在于克服现有技术的不足,提供一种基于硬件实现的DIBR系统,以减少计算复杂度以及硬件开销。
[0006]为实现上述目的,本发明基于硬件实现的DIBR系统,包括:
[0007]—参数设置模块,用于完成对整个DIBR系统参数的设置,包括:数据有效信号扩展模块和视差图中值滤波模块的图像分辨率Wi X Hi,其中,Wi为图像宽度,Hi为图像高度;三维图像变换模块用于深度调节以及深度值到视差值转换的查找表d印th2disparity ;空洞填充模块用于检测视差值跃变的阈值sharp_th以及对较大空洞进行膨胀的像素点个数I ;
[0008]位于顶层的Block RAM(即块RAM),用Dtl表示,用于存储外部输入的参考图像的像素值Iref,并被配置成简单双端口 RAM(Simple Dual-port RAM)类型;
[0009]其特征在于,还包括:
[0010]一数据有效信号扩展模块,位于DIBR系统的前端,用于接收系统外部输入深度图的深度值D以及数据有效信号data_valid ;然后将深度值D原封不动地输出,数据有效信号data_valid扩展2行之后输出,其中data_valid扩展是在输入的最后一行数据有效信号结束一段时间之后、场消隐信号到来之前的时间段里,产生2行的数据有效信号,其对应的深度值置为O ;
[0011]一三维图像变换模块,用于接收数据有效信号扩展模块输出的深度图的深度值D以及数据有效信号data_valid,根据深度值D计算出参考图像中的每一像素点对应的视差值M,并连同数据有效信号data_valid输出给视差图中值滤波模块;
[0012]深度值D到视差值M的转换是利用查找表depth2disparity实现的,并事先在外部根据无需摄像机参数的三维图像变换计算好,然后由参数设置模块设置,当表中的值改变时,便可实现深度调节;
[0013]三维图像变换模块采用了 4个Block RAM即块RAM,用R。,R1, R2, R3表示,该四个块RAM用来动态地存储深度图的4行视差值,并被配置成简单双端口 RAM(Simple Dual-portRAM)类型;
[0014]三维图像变换后生成的目标图像会含有空洞,用-128来标识空洞点,本模块在处理一帧深度图之前,便把用于存储视差值M的Block RAM初始化为-128,这样后续模块便能判断出哪些点是空洞点;
[0015]一视差图中值滤波模块,用于接收三维图像变换模块输出的视差值M以及数据有效信号data_valid,采用3X3的掩膜对这些视差值进行中值滤波,并将结果以及数据有效信号data_valid输出给空洞填充模块;
[0016]一空洞填充模块,用于接收视差图中值滤波模块输出的视差值M以及数据有效信号data_valid,对其中的空洞点进行填充,然后连同数据有效信号data_valid输出给像素拷贝模块;空洞填充是基于视差图的空洞填充算法,修改视差值M为-128的点即空洞点的视差值;
[0017]一像素拷贝模块,用于接收空洞填充模块输出的视差值M以及数据有效信号data_valid,根据视差值M逐行计算目标图像像素点在参考图像上的匹配点(matchingpoint)的坐标,并将该坐标作为读位于顶层的块RAM即Dtl的地址,读出其中的像素值IMf,构成目标图像的像素值Ides,作为整个DIBR系统的输出;在逐行计算匹配点的坐标时,是按行的逆向即从右到左的方向处理的;
[0018]Lm(i)表示视差图的第i行,L1(I)表示参考图像的第i行,O ( KWi,当开始处理一幅参考图像及其对应的深度图时,依次将Lm(O)、Lm(I)、Lm⑵、Lm(3)存入Rtl、R1、R2、R3 ;处理完Lm(O)之后,又将Lm(5)存入Rci,依次类推;在存储和处理LM(i)的同时,依次将L1Q)存入Dtl进行处理,具体为:[0019]在tQ时刻,三维图像变换模块开始将Lm(O)写入Rq ;
[0020]在&时刻,Lm(O)已存入R。,三维图像变换模块开始将Lm(I)写入R1 ;
[0021]在&?&时段,当完成Lm(I)到R1的写操作后,像素拷贝模块开始将L1(O)写入D0 ;
[0022]在t2时刻,Lm(I)已存入R1,三维图像变换模块开始将Lm(2)写入R2,并开始读R。中的Lm(O)输出给视差图中值滤波模块;
[0023]在t2?t3时段,像素拷贝模块根据得到的目标图像像素点地址,读出L1(O)中的像素值,得到目标图像的第O行;当完成Lm⑵到R2的写操作后,开始将L1(I)写入Dq;
[0024]在t3时刻,Lm(2)已存入R2,三维图像变换模块开始将Lm(3)写入R3,并开始同时读Lm(O)、Lm(I)和Lm(2)输出给视差图中值滤波模块;
[0025]在t3?t4时段,像素拷贝模块根据得到的目标图像像素点地址,读出L1(I)中的像素值,得到目标图像的第I行;当完成Lm(3)到R3的写操作后,开始将L1 (2)写入Dtl;
[0026]在t4时刻,Lm(3)已存入R3,三维图像变换模块开始将Lm(4)写入R。,并开始同时读Lm(I)、Lm(2)和Lm(3)输出给视差图中值滤波模块;
[0027]在t4?t5时段,像素拷贝模块根据得到的目标图像像素点地址,读出LJ2)中的像素值,得到目标图像的第2行;当完成Lm(4)到Rtl的写操作后,开始将L1 (3)写入Dtl;
[0028]在t5时刻,Lm(4)已存入R。,三维图像变换模块开始将Lm(5)写入R1,并开始同时读Lm (2)、Lm (3)和Lm (4)输出给视差图中值滤波模块;
[0029]以上操作循环往复,形成行级流水线。
[0030]本发明的发明目的是这样实现的:
[0031]本发明基于硬件实现的DIBR系统,采用无需摄像机参数的三维图像变换算法以代替复杂的单应变换以及基于视差图的空洞填充算法代替图像修复算法,这样大大减小了计算的复杂程度。同时,采用行级流水处理,减少视差图以及参考图像的存储,从而节省了
硬件的开销。在Xilinx Virtex?-5开发板上进行测试,实验结果表明,本发明由于计算复杂度的降低,在实时处理全高清视频时,吞吐量可达60帧/秒,能支持全高清(1080P)视频的实时处理;并且硬件开销(不包括内部存储器)为59.8K逻辑门,内存储器的容量需求为20.25kbytes,硬件开销降低,合成结果与DIBR算法的结果相似。
【专利附图】

【附图说明】
[0032]图1是本发明基于硬件实现的DIBR系统一种【具体实施方式】原理图;
[0033]图2是本发明中行级流水线的调度示意图;
[0034]图3是本发明中用于行级流水线的Block RAM存储示意图;
[0035]图4是Block RAM中行级流水线的调度示意图;
[0036]图5是本发明基于硬件实现的DIBR系统顶层时序图;
[0037]图6是图像合成结果对比图。
【具体实施方式】
[0038]下面结合附图对本发明的【具体实施方式】进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
[0039]图1是本发明基于硬件实现的DIBR系统一种【具体实施方式】原理图。
[0040]在本实施例中,如图1所示,本发明基于硬件实现的DIBR系统包括参数设置模块
1、数据有效信号扩展模块2、三维图像变换模块3、视差图中值滤波模块4、空洞填充模块5、像素拷贝模块6以及位于顶层的Block RAM (D0) 70在本实施例中,本发明基于硬件实现
的DIBR系统在FPGA架构即Xilinx Virtex*-5开发板实施,根据输入的参考图像(这里作
为左视图)和相应的深度图,合成新视图(这里作为右视图)。各个模块的时钟频率(clockfrequency)均为200MHz,下面分别对各个模块进行详细说明。
[0041]1、参数设置模块
[0042]参数设置模块完成对整个DIBR系统参数的设置,包括:数据有效信号扩展模块和视差图中值滤波模块的图像分辨率WiXHi ;三维图像变换模块用于深度调节以及深度值到视差值转换的查找表depth2disparity ;空洞填充模块用于检测视差值跃变的阈值sharp_th以及对较大空洞进行膨胀的像素点个数I。
[0043]在通常情况下,参数的更新不需要关闭DIBR系统,而是由通用异步接收/发送装置(Universal Asynchronous Receiver/Transmitter, UART)把参数传给参数设置模块中的寄存器。参数设置模块在场消隐(field blanking)期对参数进行更新。因此,参数的更新只会在场消隐期发生,从而保证了在合成同一幅目标图像时所采用的参数都是不变的。而不同的目标图像,所使用的参数可能不相同。
[0044]2、数据有效信号扩展模块
[0045]数据有效信号扩展模块位于DIBR系统的前端,它接收DIBR系统外部输入深度图的深度值D以及数据有效信号data_valid ;然后将深度值D原封不动地输出,数据有效信号data_valid扩展2行之后输出。其中数据有效信号data_valid扩展是在输入的最后一行数据有效信号结束一段时间之后、场消隐信号到来之前的时间段里,产生2行的数据有效信号,其对应的深度值置为O。这样做的目的是为了方便视差图中值滤波模块的处理,即将最后两行视差值输出。需要注意的是,最后一行数据有效信号与产生的第O行(除非特别说明,本文中的行、列号都从O开始编号)数据有效信号之间的时间间隔不一定是标准的时间间隔,但这不影响后面的模块正常运行。
[0046]3、三维图像变换模块
[0047]三维图像变换模块接收数据有效信号扩展模块输出的深度图的深度值D,根据深度值D计算出参考图像中的每一像素点对应的视差值M,并输出给视差图中值滤波模块。由于中值滤波时需要用到3行的视差值,因此三维图像变换模块会在内部的Block RAM中存储所需要的数据,然后每一个时钟(不是像素时钟(Pixel clock))向视差图中值滤波模块输出3个视差值,作为中值滤波的掩模(mask)。这3个视差值分别处于视差图的3行。需注意的是,三维图像变换后生成的目标图像会含有空洞,这里用-128来标识空洞点。本模块在处理一帧深度图之前,便把用于存储视差值的Block RAM初始化为-128,这样后续模块便能判断出哪些点是空洞点。
[0048]三维图像变换模块中,深度值到视差值的转换是利用查找表d印th2disparity实现的。该表是一个256X8bits的SRAM (由Block RAM生成),其值事先在外部根据无需摄像机参数的三维图像变换计算好,然后由参数设置模块设置。当表中的值改变时,便可实现深度调节。
[0049]4、视差图中值滤波模块
[0050]视差图中值滤波模块接收三维图像变换模块输出的视差值M,采用3X3的掩膜对这些视差值进行中值滤波,并将结果即滤波后的视差值M输出给空洞填充模块。与一般的中值滤波不同,由于视差图中可能含有空洞点(即视差值为-128的点),本模块如果发现掩模中的空洞点的个数大于等于5 ,则对当前点不进行中值滤波,以防止将当前的非空洞点变成空洞点。
[0051]此外为简化硬件实现,本模块对视差图的边缘(即第O行和最后I行、第O列和最后I列)不处理。
[0052]5、空洞填充模块
[0053]空洞填充模块接收视差图中值滤波模块输出的视差值M,依据视差值跃变的阈值sharp_th以及对较大空洞进行膨胀的像素点个数1,对其中的空洞点进行填充,然后输出给像素拷贝模块。空洞填充的实质是按照基于视差图的空洞填充算法,修改视差值为-128的点(即空洞点)的视差值。
[0054]6、像素拷贝模块
[0055]像素拷贝模块位于DIBR系统的末端。它接收空洞填充模块输出的视差值,根据视差值逐行计算目标图像像素点在参考图像上的匹配点(matching point)的坐标,并将该坐标作为读Block RAM即Dtl的地址(Block RAM即Dtl中存储了参考图像),读出其中的像素值Iref,构成目标图像的像素值Ides,作为整个DIBR系统的输出。注意,在逐行计算匹配点的坐标时,是按行的逆向(即从右到左的方向)处理的。
[0056]为了支持全高清视频的实时处理,本发明基于硬件实现的DIBR系统采用了流水线(pipelining)技术。与现有技术不同的是,本发明采用的是行级流水线(row-levelpipelining)。下面详细介绍行级流水线。
[0057]每个模块的处理都是逐行进行的,因此可以采用行级流水线来提高DIBR系统的时钟频率。由于三维图像变换模块在内部的Block RAM中需要缓存2行,因此,图1中的行级流水线实际包含了 2级(stage) — Stagel和Stage2,涉及数据有效信号扩展、三维图像变换、视差图中值滤波、空洞填充、像素拷贝等模块。图2显示的是行级流水线的调度(schedule)。当Stagel在处理第i+2行数据的时候,Stage2则是在处理第i行数据。
[0058]为了实现上述行级流水线,提高数据访问效率,DIBR系统顶层(top level)和三维图像变换模块均使用了 Block RAM。其中三维图像变换模块采用了 4个Block RAM (用R0, R1, R2, R3表示)来动态地存储深度图的4行视差值,位于顶层的Block RAM(用Dtl)则用来存储外部输入的参考图像的像素值IMf。它们被配置成简单双端口 RAM (Simple Dual-portRAM)类型,大小均为1920X8bits。
[0059]图3显示了数据是如何在上述5个Block RAM中动态地存储的。设LM(i)表示视差图的第i行,LJi)表示参考图像的第i行(O≤KWi)。当开始处理一幅参考图像及其对应的深度图时,依次将Lm (0)、Lm (I)、Lm(2)、Lm (3)存入R。、R1、R2、R3 ;处理完Lm (0)之后,又将Lm(5)存入Rtl,依次类推。因此,R0, H R3存储的行分别如下:
[0060]R0:LM(i),i e [0]!^0 ≤KWi ;
[0061]R1:LM(i),i e [1],且0 ≤ KWi ;[0062]R2:LM(i),i e [之^且。≤ KWi ;
[0063]R3:LM(i),i e [3]^0 ≤ KWi ;
[0064]其中R是整数集合I上的同余模4等价关系,[a]E(a=0, 1,2, 3)表示元素a形成的R的等价类。
[0065]在存储和处理Lm⑴的同时,系统也会依次将L1⑴存入Dtl进行处理。
[0066]依照图3所示的存储架构,下面将详细阐述上述Block RAM中行级流水线的调度。如图4所示,开始处理一幅参考图像及其对应的深度图后:
[0067]在h时刻,三维图像变换模块开始将Lm(O)写入Rq ;
[0068]在&时刻,Lm(O)已存入R。,三维图像变换模块开始将Lm(I)写入R1 ;
[0069]在h~t2时段,当完成Lm(I)到R1的写操作后,像素拷贝模块开始将L1(O)写入D0 ;
[0070]在t2时刻,Lm(I)已存入R1,三维图像变换模块开始将Lm(2)写入R2,并开始读R。中的Lm(O)输出给视差图中值滤波模块;
[0071]在t2~t3时段,像素拷贝模块根据得到的目标图像像素点地址,读出L1(O)中的像素值,得到目标图像的第O行;当完成Lm⑵到R2的写操作后,开始将L1(I)写入Dq;
[0072]在t3时刻,Lm(2)已存入R2,三维图像变换模块开始将Lm(3)写入R3,并开始同时读Lm(O)、Lm(I)和Lm(2)输出给视差图中值滤波模块;
[0073]在t3~t4时段,像素拷贝模块根据得到的目标图像像素点地址,读出L1(I)中的像素值,得到目标图像的第I行;当完成Lm(3)到R3的写操作后,开始将L1 (2)写入Dtl;
[0074]在t4时刻,Lm(3)已存入R3,三维图像变换模块开始将Lm(4)写入R。,并开始同时读Lm(I)、Lm(2)和Lm(3)输出给视差图中值滤波模块;
[0075]在t4~t5时段,像素拷贝模块根据得到的目标图像像素点地址,读出LJ2)中的像素值,得到目标图像的第2行;当完成Lm(4)到Rtl的写操作后,开始将L1 (3)写入Dtl;
[0076]在t5时刻,Lm(4)已存入R。,三维图像变换模块开始将Lm(5)写入R1,并开始同时读Lm (2)、Lm (3)和Lm (4)输出给视差图中值滤波模块;
[0077]以上操作循环往复,形成行级流水线;
[0078]由于像素拷贝模块处理在一行数据时是按行的逆向处理的,为了防止Dtl的中数据还未被读被取就新写入的数据覆盖。在向Dtl写入数据时,也要逆向地写。由于处理前存入D0的视差值个数为412,而本系统的最大视差值是128,因此,不会出现最开始处理时取不到数据的情况,从而在时序上满足全高清视频处理的要求。
[0079]图5是本发明基于硬件实现的DIBR系统顶层时序图。
[0080]由于采用了流水线技术(pipelining technique),每个模块都会对输入的信号延时一定的时钟周期(clock period/clock cycle)。从图5可以看出,当开始处理一幅参考图像及其对应的深度图时,data_valid变为有效(高电平有效(active high)),三维图像变换模块开始逐行地将视差图写入Block RAM。由于完成一行写操作需要W(W=Wi+行消隐(line blanking)对应的时钟周期数)个时钟周期,处理每一个深度值需要4个时钟周期,并且在开始写第2行时,才输出视差图的第O行。因此三维图像变换模块对输入的信号延时WX2+4个时钟周期。值得注意的是,如果是视差图的第O行或最后I行,三维图像变换模块只输出该行;如果是其他行,则同时输出3行。这是因为视差图中值滤波模块对边缘不处理。视差图中值滤波模块在接收到三维图像变换模块的输出之后,需要经过17个时钟周期,才能输出中值滤波后的结果。类似的,空洞填充模块经过17个时钟周期后输出空洞填充后的数据给像素拷贝模块,像素拷贝模块再经过3个时钟周期后输出目标图像的像素。
[0081]因此,整个基于硬件实现的DIBR系统需要缓存深度图的2行,从而形成2级行级流水线。从输入到最终的输出,一共需要延时WX 2+42个时钟周期。错误!未找到引用源。显示了每个模块延时的时钟周期数。表1显示了每个模块延时的时钟周期数。
[0082]
【权利要求】
1.一种基于硬件实现的DIBR系统,包括: 一参数设置模块,用于完成对整个DIBR系统参数的设置,包括:数据有效信号扩展模块和视差图中值滤波模块的图像分辨率WiXHi,其中,Wi为图像宽度,Hi为图像高度;三维图像变换模块用于深度调节以及深度值到视差值转换的查找表d印th2disparity ;空洞填充模块用于检测视差值跃变的阈值sharp_th以及对较大空洞进行膨胀的像素点个数I ; 位于顶层的Block RAM(即块RAM),用Dtl表示,用于存储外部输入的参考图像的像素值Iref,并被配置成简单双端口 RAM(Simple Dual-port RAM)类型; 其特征在于,还包括: 一数据有效信号扩展模块,位于DIBR系统的前端,用于接收系统外部输入深度图的深度值D以及数据有效信号data_valid ;然后将深度值D原封不动地输出,数据有效信号data_val id扩展2行之后输出,其中data_val id扩展是在输入的最后一行数据有效信号结束一段时间之后、场消隐信号到来之前的时间段里,产生2行的数据有效信号,其对应的深度值置为O ; 一三维图像变换模块,用于接收数据有效信号扩展模块输出的深度图的深度值D以及数据有效信号data_valid,根据深度值D计算出参考图像中的每一像素点对应的视差值M,并连同数据有效信号data_valid输出给视差图中值滤波模块; 深度值D到视差值M的转换是利用查找表depth2disparity实现的,并事先在外部根据无需摄像机参数的三维图像变换计算好,然后由参数设置模块设置,当表中的值改变时,便可实现深度调节; 三维图像变换模块采用了 4个Block RAM即块RAM,用R0, R1, R2, R3表示,该四个块RAM用来动态地存储深度图的4行视差值,并被配置成简单双端口 RAM(Simple Dual-port RAM)类型; 三维图像变换后生成的目标图像会含有空洞,用-128来标识空洞点,本模块在处理一帧深度图之前,便把用于存储视差值M的Block RAM初始化为-128,这样后续模块便能判断出哪些点是空洞点; 一视差图中值滤波模块,用于接收三维图像变换模块输出的视差值M以及数据有效信号data_valid,采用3X3的掩膜对这些视差值进行中值滤波,并将结果以及数据有效信号data_valid输出给空洞填充模块; 一空洞填充模块,用于接收视差图中值滤波模块输出的视差值M以及数据有效信号data-valid,对其中的空洞点进行填充,然后连同数据有效信号data_valid输出给像素拷贝模块;空洞填充是基于视差图的空洞填充算法,修改视差值M为-128的点即空洞点的视差值; 一像素拷贝模块,用于接收空洞填充模块输出的视差值M以及数据有效信号data_valid,根据视差值M逐行计算目标图像像素点在参考图像上的匹配点(matching point)的坐标,并将该坐标作为读位于顶层的块RAM即Dtl的地址,读出其中的像素值IMf,构成目标图像的像素值Ides,作为整个DIBR系统的输出;在逐行计算匹配点的坐标时,是按行的逆向即从右到左的方向处理的; Lm(i)表示视差图的第i行,L1(I)表示参考图像的第i行,O≤KWi,当开始处理一幅参考图像及其对应的深度图时,依次将Lm(O)、Lm(I)、Lm⑵、Lm(3)存入HRyR3 ;处理完Lm(O)之后,又将Lm (5)存入R。,依次类推;在存储和处理Lm (i)的同时,依次将L1Q)存入D。进行处理,具体为: 在h时刻,三维图像变换模块开始将Lm(O)写入Rq ; 在h时刻,Lm(O)已存入R。,三维图像变换模块开始将Lm(I)写入R1 ; 在h~t2时段,当完成Lm(I)到R1的写操作后,像素拷贝模块开始将L1(O)写入Dtl ;在t2时刻,Lm(I)已存入R1,三维图像变换模块开始将Lm(2)写入R2,并开始读Rtl中的Lm(O)输出给视差图中值滤波模块; 在t2~t3时段,像素拷贝模块根据得到的目标图像像素点地址,读出L1(O)中的像素值,得到目标图像的第O行;当完成Lm⑵到R2的写操作后,开始将L1 (I)写入Dtl; 在七3时刻,Lm(2) 已存入R2,三维图像变换模块开始将Lm(3)写入R3,并开始同时读Lm(O)、Lm(I)和Lm(2)输出给视差图中值滤波模块; 在t3~t4时段,像素拷贝模块根据得到的目标图像像素点地址,读出L1(I)中的像素值,得到目标图像的第I行;当完成Lm(3)到R3的写操作后,开始将L1 (2)写入Dtl; 在七4时刻,Lm(3)已存入R3,三维图像变换模块开始将Lm(4)写入Rtl,并开始同时读Lm(I)、Lm⑵和Lm(3)输出给视差图中值滤波模块; 在t4~t5时段,像素拷贝模块根据得到的目标图像像素点地址,读出L1 (2)中的像素值,得到目标图像的第2行;当完成Lm(4)到Rtl的写操作后,开始将L1 (3)写入Dtl; 在七5时刻,Lm(4)已存入Rtl,三维图像变换模块开始将Lm(5)写入R1,并开始同时读Lm (2)、Lm (3)和Lm (4)输出给视差图中值滤波模块; 以上操作循环往复,形成行级流水线。
2.根据权利要求1所示的基于硬件实现的DIBR系统,其特征在于,所述视差图中值滤波模块发现掩模中的空洞点的个数大于等于5,则对当前点不进行中值滤波。
【文档编号】G06T15/00GK103533327SQ201310429274
【公开日】2014年1月22日 申请日期:2013年9月22日 优先权日:2013年9月22日
【发明者】刘然, 谭伟敏, 黄振伟, 田逢春, 李博乐, 曹东华, 谭迎春 申请人:四川虹微技术有限公司, 重庆大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1