CN103533327A - 一种基于硬件实现的dibr系统 - Google Patents
一种基于硬件实现的dibr系统 Download PDFInfo
- Publication number
- CN103533327A CN103533327A CN201310429274.8A CN201310429274A CN103533327A CN 103533327 A CN103533327 A CN 103533327A CN 201310429274 A CN201310429274 A CN 201310429274A CN 103533327 A CN103533327 A CN 103533327A
- Authority
- CN
- China
- Prior art keywords
- sub
- module
- value
- pixel
- useful signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Image Processing (AREA)
Abstract
本发明公开了一种基于硬件实现的DIBR系统,采用无需摄像机参数的三维图像变换算法以代替复杂的单应变换以及基于视差图的空洞填充算法代替图像修复算法,这样大大减小了计算的复杂程度。同时,采用行级流水处理,减少视差图以及参考图像的存储,从而节省了硬件的开销。在Xilinx开发板上进行测试,实验结果表明,本发明由于计算复杂度的降低,在实时处理全高清视频时,吞吐量可达60帧/秒,能支持全高清(1080P)视频的实时处理;并且硬件开销(不包括内部存储器)为59.8K逻辑门,内存储器的容量需求为20.25kbytes,硬件开销降低,合成结果与DIBR算法的结果相似。
Description
技术领域
本发明属于3D电视技术领域,更为具体地讲,涉及一种基于硬件实现的DIBR系统。
背景技术
随着3D显示技术和3D电视系统的快速发展与普及,视图合成引擎(viewsynthesis engine)已成为3D电视和任意视点电视(free viewpoint television)中合成单视点或多视点视频的重要组成部分。目前视图合成引擎中采用的核心算法是基于深度图像绘制(depth-image-based rendering,DIBR)算法。
DIBR算法以三维图像变换(3D image warping)为基础,实现由一幅或多幅图像及其对应的深度图(depth map)生成另一视点的图像的功能。采用DIBR算法的视图合成引擎只需要传输一路视频及对应的深度图便可得到立体图像对(stereopairs),从而可以减少传输带宽。同时,采用DIBR技术能够方便地实现2D转3D(2D-to-3D conversion)和深度调节(depth adjustment)功能,方便地支持各种自由立体显示器,因此,它已经成为3D电视中的关键技术。然而,对于全高清(fullhigh definition,FHD)的视频(1080p),DIBR算法的复杂度(complexity)会显著的增加,几乎不可能用软件来实时处理。因此,为满足全高清视频实时处理的要求,采用硬件来实现一个DIBR系统是十分必要的。
目前,DIBR系统硬件实现还研究得还较少。Chen等人设计了一个DIBR硬件加速器,在输入为720×576的立体视频时能达到25f/s的系统吞吐量。该加速器采用超大规模集成电路实现,在算法上采用了边缘依赖高斯滤波器(edge-dependent Gaussian filter),尽管相对于传统的绘制架构,该加速器的硬件开销(hardware cost)有所降低,但是仍然有较大的优化空间。Lin等人曾尝试通过线性插入近似值的方法减少单应矩阵(homography)的内存消耗,但是在支持任意视点绘制的DIBR系统中应用该架构时,仍需要考虑小数和大位宽数值运算、深度图存储、遮挡处理以及复杂的空洞填充等问题。Horng等人对视图合成参考软件(view synthesis reference software,VSRS)的算法做了优化,用Z scaling的方法来减少运算的消耗,用列序变换(column order warping)的方法代替了Z-buffer算法,采用一种简单的双线性插值来代替复杂的空洞填充算法。在此基础上,采用分级流水结构完成了整个算法的硬件实现。该算法的硬件实现可以支持1080p视频的实时处理,但是整个系统仍然显得很复杂,硬件资源需求(hardwareresource requirement)也比较大。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于硬件实现的DIBR系统,以减少计算复杂度以及硬件开销。
为实现上述目的,本发明基于硬件实现的DIBR系统,包括:
一参数设置模块,用于完成对整个DIBR系统参数的设置,包括:数据有效信号扩展模块和视差图中值滤波模块的图像分辨率Wi×Hi,其中,Wi为图像宽度,Hi为图像高度;三维图像变换模块用于深度调节以及深度值到视差值转换的查找表depth2disparity;空洞填充模块用于检测视差值跃变的阈值sharp_th以及对较大空洞进行膨胀的像素点个数l;
位于顶层的Block RAM(即块RAM),用D0表示,用于存储外部输入的参考图像的像素值Iref,并被配置成简单双端口RAM(Simple Dual-port RAM)类型;
其特征在于,还包括:
一数据有效信号扩展模块,位于DIBR系统的前端,用于接收系统外部输入深度图的深度值D以及数据有效信号data_valid;然后将深度值D原封不动地输出,数据有效信号data_valid扩展2行之后输出,其中data_valid扩展是在输入的最后一行数据有效信号结束一段时间之后、场消隐信号到来之前的时间段里,产生2行的数据有效信号,其对应的深度值置为0;
一三维图像变换模块,用于接收数据有效信号扩展模块输出的深度图的深度值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,采用3×3的掩膜对这些视差值进行中值滤波,并将结果以及数据有效信号data_valid输出给空洞填充模块;
一空洞填充模块,用于接收视差图中值滤波模块输出的视差值M以及数据有效信号data_valid,对其中的空洞点进行填充,然后连同数据有效信号data_valid输出给像素拷贝模块;空洞填充是基于视差图的空洞填充算法,修改视差值M为-128的点即空洞点的视差值;
一像素拷贝模块,用于接收空洞填充模块输出的视差值M以及数据有效信号data_valid,根据视差值M逐行计算目标图像像素点在参考图像上的匹配点(matching point)的坐标,并将该坐标作为读位于顶层的块RAM即D0的地址,读出其中的像素值Iref,构成目标图像的像素值Ides,作为整个DIBR系统的输出;在逐行计算匹配点的坐标时,是按行的逆向即从右到左的方向处理的;
LM(i)表示视差图的第i行,LI(i)表示参考图像的第i行,0≤i<Wi,当开始处理一幅参考图像及其对应的深度图时,依次将LM(0)、LM(1)、LM(2)、LM(3)存入R0、R1、R2、R3;处理完LM(0)之后,又将LM(5)存入R0,依次类推;在存储和处理LM(i)的同时,依次将LI(i)存入D0进行处理,具体为:
在t0时刻,三维图像变换模块开始将LM(0)写入R0;
在t1时刻,LM(0)已存入R0,三维图像变换模块开始将LM(1)写入R1;
在t1~t2时段,当完成LM(1)到R1的写操作后,像素拷贝模块开始将LI(0)写入D0;
在t2时刻,LM(1)已存入R1,三维图像变换模块开始将LM(2)写入R2,并开始读R0中的LM(0)输出给视差图中值滤波模块;
在t2~t3时段,像素拷贝模块根据得到的目标图像像素点地址,读出LI(0)中的像素值,得到目标图像的第0行;当完成LM(2)到R2的写操作后,开始将LI(1)写入D0;
在t3时刻,LM(2)已存入R2,三维图像变换模块开始将LM(3)写入R3,并开始同时读LM(0)、LM(1)和LM(2)输出给视差图中值滤波模块;
在t3~t4时段,像素拷贝模块根据得到的目标图像像素点地址,读出LI(1)中的像素值,得到目标图像的第1行;当完成LM(3)到R3的写操作后,开始将LI(2)写入D0;
在t4时刻,LM(3)已存入R3,三维图像变换模块开始将LM(4)写入R0,并开始同时读LM(1)、LM(2)和LM(3)输出给视差图中值滤波模块;
在t4~t5时段,像素拷贝模块根据得到的目标图像像素点地址,读出LI(2)中的像素值,得到目标图像的第2行;当完成LM(4)到R0的写操作后,开始将LI(3)写入D0;
在t5时刻,LM(4)已存入R0,三维图像变换模块开始将LM(5)写入R1,并开始同时读LM(2)、LM(3)和LM(4)输出给视差图中值滤波模块;
以上操作循环往复,形成行级流水线。
本发明的发明目的是这样实现的:
附图说明
图1是本发明基于硬件实现的DIBR系统一种具体实施方式原理图;
图2是本发明中行级流水线的调度示意图;
图3是本发明中用于行级流水线的Block RAM存储示意图;
图4是Block RAM中行级流水线的调度示意图;
图5是本发明基于硬件实现的DIBR系统顶层时序图;
图6是图像合成结果对比图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
图1是本发明基于硬件实现的DIBR系统一种具体实施方式原理图。
在本实施例中,如图1所示,本发明基于硬件实现的DIBR系统包括参数设置模块1、数据有效信号扩展模块2、三维图像变换模块3、视差图中值滤波模块4、空洞填充模块5、像素拷贝模块6以及位于顶层的Block RAM(D0)7。在本实施例中,本发明基于硬件实现的DIBR系统在FPGA架构即Xilinx开发板实施,根据输入的参考图像(这里作为左视图)和相应的深度图,合成新视图(这里作为右视图)。各个模块的时钟频率(clock frequency)均为200MHz,下面分别对各个模块进行详细说明。
1、参数设置模块
参数设置模块完成对整个DIBR系统参数的设置,包括:数据有效信号扩展模块和视差图中值滤波模块的图像分辨率Wi×Hi;三维图像变换模块用于深度调节以及深度值到视差值转换的查找表depth2disparity;空洞填充模块用于检测视差值跃变的阈值sharp_th以及对较大空洞进行膨胀的像素点个数l。
在通常情况下,参数的更新不需要关闭DIBR系统,而是由通用异步接收/发送装置(Universal Asynchronous Receiver/Transmitter,UART)把参数传给参数设置模块中的寄存器。参数设置模块在场消隐(field blanking)期对参数进行更新。因此,参数的更新只会在场消隐期发生,从而保证了在合成同一幅目标图像时所采用的参数都是不变的。而不同的目标图像,所使用的参数可能不相同。
2、数据有效信号扩展模块
数据有效信号扩展模块位于DIBR系统的前端,它接收DIBR系统外部输入深度图的深度值D以及数据有效信号data_valid;然后将深度值D原封不动地输出,数据有效信号data_valid扩展2行之后输出。其中数据有效信号data_valid扩展是在输入的最后一行数据有效信号结束一段时间之后、场消隐信号到来之前的时间段里,产生2行的数据有效信号,其对应的深度值置为0。这样做的目的是为了方便视差图中值滤波模块的处理,即将最后两行视差值输出。需要注意的是,最后一行数据有效信号与产生的第0行(除非特别说明,本文中的行、列号都从0开始编号)数据有效信号之间的时间间隔不一定是标准的时间间隔,但这不影响后面的模块正常运行。
3、三维图像变换模块
三维图像变换模块接收数据有效信号扩展模块输出的深度图的深度值D,根据深度值D计算出参考图像中的每一像素点对应的视差值M,并输出给视差图中值滤波模块。由于中值滤波时需要用到3行的视差值,因此三维图像变换模块会在内部的Block RAM中存储所需要的数据,然后每一个时钟(不是像素时钟(pixel clock))向视差图中值滤波模块输出3个视差值,作为中值滤波的掩模(mask)。这3个视差值分别处于视差图的3行。需注意的是,三维图像变换后生成的目标图像会含有空洞,这里用-128来标识空洞点。本模块在处理一帧深度图之前,便把用于存储视差值的Block RAM初始化为-128,这样后续模块便能判断出哪些点是空洞点。
三维图像变换模块中,深度值到视差值的转换是利用查找表depth2disparity实现的。该表是一个256×8bits的SRAM(由Block RAM生成),其值事先在外部根据无需摄像机参数的三维图像变换计算好,然后由参数设置模块设置。当表中的值改变时,便可实现深度调节。
4、视差图中值滤波模块
视差图中值滤波模块接收三维图像变换模块输出的视差值M,采用3×3的掩膜对这些视差值进行中值滤波,并将结果即滤波后的视差值M输出给空洞填充模块。与一般的中值滤波不同,由于视差图中可能含有空洞点(即视差值为-128的点),本模块如果发现掩模中的空洞点的个数大于等于5,则对当前点不进行中值滤波,以防止将当前的非空洞点变成空洞点。
此外为简化硬件实现,本模块对视差图的边缘(即第0行和最后1行、第0列和最后1列)不处理。
5、空洞填充模块
空洞填充模块接收视差图中值滤波模块输出的视差值M,依据视差值跃变的阈值sharp_th以及对较大空洞进行膨胀的像素点个数l,对其中的空洞点进行填充,然后输出给像素拷贝模块。空洞填充的实质是按照基于视差图的空洞填充算法,修改视差值为-128的点(即空洞点)的视差值。
6、像素拷贝模块
像素拷贝模块位于DIBR系统的末端。它接收空洞填充模块输出的视差值,根据视差值逐行计算目标图像像素点在参考图像上的匹配点(matching point)的坐标,并将该坐标作为读Block RAM即D0的地址(Block RAM即D0中存储了参考图像),读出其中的像素值Iref,构成目标图像的像素值Ides,作为整个DIBR系统的输出。注意,在逐行计算匹配点的坐标时,是按行的逆向(即从右到左的方向)处理的。
为了支持全高清视频的实时处理,本发明基于硬件实现的DIBR系统采用了流水线(pipelining)技术。与现有技术不同的是,本发明采用的是行级流水线(row-level pipelining)。下面详细介绍行级流水线。
每个模块的处理都是逐行进行的,因此可以采用行级流水线来提高DIBR系统的时钟频率。由于三维图像变换模块在内部的Block RAM中需要缓存2行,因此,图1中的行级流水线实际包含了2级(stage)——Stage1和Stage2,涉及数据有效信号扩展、三维图像变换、视差图中值滤波、空洞填充、像素拷贝等模块。图2显示的是行级流水线的调度(schedule)。当Stage1在处理第i+2行数据的时候,Stage2则是在处理第i行数据。
为了实现上述行级流水线,提高数据访问效率,DIBR系统顶层(top level)和三维图像变换模块均使用了Block RAM。其中三维图像变换模块采用了4个Block RAM(用R0,R1,R2,R3表示)来动态地存储深度图的4行视差值,位于顶层的Block RAM(用D0)则用来存储外部输入的参考图像的像素值Iref。它们被配置成简单双端口RAM(Simple Dual-port RAM)类型,大小均为1920×8bits。
图3显示了数据是如何在上述5个Block RAM中动态地存储的。设LM(i)表示视差图的第i行,LI(i)表示参考图像的第i行(0≤i<Wi)。当开始处理一幅参考图像及其对应的深度图时,依次将LM(0)、LM(1)、LM(2)、LM(3)存入R0、R1、R2、R3;处理完LM(0)之后,又将LM(5)存入R0,依次类推。因此,R0、R1、R2、R3存储的行分别如下:
R0:LM(i),i∈[0]R且0≤i<Wi;
R1:LM(i),i∈[1]R且0≤i<Wi;
R2:LM(i),i∈[2]R且0≤i<Wi;
R3:LM(i),i∈[3]R且0≤i<Wi;
其中R是整数集合I上的同余模4等价关系,[a]R(a=0,1,2,3)表示元素a形成的R的等价类。
在存储和处理LM(i)的同时,系统也会依次将LI(i)存入D0进行处理。
依照图3所示的存储架构,下面将详细阐述上述Block RAM中行级流水线的调度。如图4所示,开始处理一幅参考图像及其对应的深度图后:
在t0时刻,三维图像变换模块开始将LM(0)写入R0;
在t1时刻,LM(0)已存入R0,三维图像变换模块开始将LM(1)写入R1;
在t1~t2时段,当完成LM(1)到R1的写操作后,像素拷贝模块开始将LI(0)写入D0;
在t2时刻,LM(1)已存入R1,三维图像变换模块开始将LM(2)写入R2,并开始读R0中的LM(0)输出给视差图中值滤波模块;
在t2~t3时段,像素拷贝模块根据得到的目标图像像素点地址,读出LI(0)中的像素值,得到目标图像的第0行;当完成LM(2)到R2的写操作后,开始将LI(1)写入D0;
在t3时刻,LM(2)已存入R2,三维图像变换模块开始将LM(3)写入R3,并开始同时读LM(0)、LM(1)和LM(2)输出给视差图中值滤波模块;
在t3~t4时段,像素拷贝模块根据得到的目标图像像素点地址,读出LI(1)中的像素值,得到目标图像的第1行;当完成LM(3)到R3的写操作后,开始将LI(2)写入D0;
在t4时刻,LM(3)已存入R3,三维图像变换模块开始将LM(4)写入R0,并开始同时读LM(1)、LM(2)和LM(3)输出给视差图中值滤波模块;
在t4~t5时段,像素拷贝模块根据得到的目标图像像素点地址,读出LI(2)中的像素值,得到目标图像的第2行;当完成LM(4)到R0的写操作后,开始将LI(3)写入D0;
在t5时刻,LM(4)已存入R0,三维图像变换模块开始将LM(5)写入R1,并开始同时读LM(2)、LM(3)和LM(4)输出给视差图中值滤波模块;
以上操作循环往复,形成行级流水线;
由于像素拷贝模块处理在一行数据时是按行的逆向处理的,为了防止D0的中数据还未被读被取就新写入的数据覆盖。在向D0写入数据时,也要逆向地写。由于处理前存入D0的视差值个数为412,而本系统的最大视差值是128,因此,不会出现最开始处理时取不到数据的情况,从而在时序上满足全高清视频处理的要求。
图5是本发明基于硬件实现的DIBR系统顶层时序图。
由于采用了流水线技术(pipelining technique),每个模块都会对输入的信号延时一定的时钟周期(clock period/clock cycle)。从图5可以看出,当开始处理一幅参考图像及其对应的深度图时,data_valid变为有效(高电平有效(active high)),三维图像变换模块开始逐行地将视差图写入Block RAM。由于完成一行写操作需要W(W=Wi+行消隐(line blanking)对应的时钟周期数)个时钟周期,处理每一个深度值需要4个时钟周期,并且在开始写第2行时,才输出视差图的第0行。因此三维图像变换模块对输入的信号延时W×2+4个时钟周期。值得注意的是,如果是视差图的第0行或最后1行,三维图像变换模块只输出该行;如果是其他行,则同时输出3行。这是因为视差图中值滤波模块对边缘不处理。视差图中值滤波模块在接收到三维图像变换模块的输出之后,需要经过17个时钟周期,才能输出中值滤波后的结果。类似的,空洞填充模块经过17个时钟周期后输出空洞填充后的数据给像素拷贝模块,像素拷贝模块再经过3个时钟周期后输出目标图像的像素。
因此,整个基于硬件实现的DIBR系统需要缓存深度图的2行,从而形成2级行级流水线。从输入到最终的输出,一共需要延时W×2+42个时钟周期。错误!未找到引用源。显示了每个模块延时的时钟周期数。表1显示了每个模块延时的时钟周期数。
模块 | 延时的时钟周期 | 备注 |
数据有效信号扩展 | 1 | |
三维图像变换 | W×2+4 | W=Wi+行消隐对应的时钟周期数 |
模块 | 延时的时钟周期 | 备注 |
视差图中值滤波 | 17 | |
空洞填充 | 17 | |
像素拷贝 | 3 | |
合计 | W×2+42 |
表1
实例分析
1.1、实现结果
本实例在Xilinx开发板上,采用Verilog和Xilinx ISE Design Suite工具对上述硬件架构进行了实现。本实例的DIBR系统在200MHz时钟频率下最高支持全高清的视频(1920×1080p60Hz),此时的吞吐量(throughput)为118.65Mpixels/s,即60帧/秒。同时,本实例的DIBR系统的吞吐量仅与图像的分辨率有关,而不依赖于图像的内容。即相同的图像分辨率具有相同的吞吐量。此外,本实例的DIBR系统没有用到外存储器(external memory),因此不存在外部带宽利用率(external bandwidth usage)的问题。本实例经Xilinx ISE Design Suite工具综合(synthesize)之后,时钟频率最高可达255.5MHz,满足DIBR系统在时钟频率200MHz下运行的设计要求。表2列出了详细的硬件资源利用情况。
逻辑资源类型 | 已用资源 | 可用资源 | 使用率 |
寄存器数 | 1,741 | 207,360 | 1% |
查找表 | 1,490 | 207,360 | 1% |
逻辑单元 | 1,436 | 207,360 | 1% |
占用的slice数 | 623 | 51,840 | 1% |
输入输出端口使用数 | |||
输入输出组合端口的使用数 | 74 | 960 | 7% |
专用器件使用量 | |||
Block RAM/FIFO的使用数 | 5 | 324 | 1% |
存储器消耗的总量(KBits) | 162 | 11,664 | 1% |
表2
表3比较了本发明和其他的实现方法。其中Chen的设计采用了不同的算法,具有较低的吞吐量。Lin的设计仅仅实现了单应矩阵的计算。Horng的设计实现了对1080p视频的实时处理,吞吐量可达67.1Mpixels/s,硬件开销达到了765.2K逻辑门。本发明无需单应矩阵计算,无需外存储器,能够以较低的硬件开销实现实时处理1080p的视频,吞吐量可达118.65Mpixels/s。
表3
1.2、合成性能
本文采用“Ballet”、”Breakdancer”及其他序列进行实验。这些序列包含了相应的深度图。注意,由于像素拷贝模块处理在一行数据时是按行的逆向处理的,因此在向DIBR系统输入参考图像及深度图时,需要先将他们逐行水平翻转;在输出图像时,需要再做一次水平翻转。图1中的输入、输出缓存器(buffer)便是用于图像的水平翻转。
本实验采用对比算法和硬件实现结果的方法来衡量合成性能。本发明中的算法和硬件实现之间唯一存在精度误差的模块是三维图像变换模块。表4采用十帧图像平均的均方误差(mean square error,MSE)来衡量硬件实现的合成性能。MSE由下式计算
其中I1(u,v)、I2(u,v)分别表示算法得到的图像和硬件实现得到的图像在像素点(u,v)所对应的亮度(luminance)。MSE越小,两幅图像的差异越小。
表4是十帧图像平均的均方误差,从表4看出,本发明使用的算法和硬件实现结果之间只有6.933(MSE)的微小差异。
表4
图6是图像合成结果对比图,其中上面的图像为算法结果,下面的图像则为本发明的实验结果.(a)Ballet.(b)Breakdancers.(c)Book Arrival.(d)Lawn.(e)Alt_Moabit.(f)Car.(g)Flower.(h)Horse.(i)Room3D。从图6来看,本发明的合成的目标图像与算法结果也没有明显差异。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (2)
1.一种基于硬件实现的DIBR系统,包括:
一参数设置模块,用于完成对整个DIBR系统参数的设置,包括:数据有效信号扩展模块和视差图中值滤波模块的图像分辨率Wi×Hi,其中,Wi为图像宽度,Hi为图像高度;三维图像变换模块用于深度调节以及深度值到视差值转换的查找表depth2disparity;空洞填充模块用于检测视差值跃变的阈值sharp_th以及对较大空洞进行膨胀的像素点个数l;
位于顶层的Block RAM(即块RAM),用D0表示,用于存储外部输入的参考图像的像素值Iref,并被配置成简单双端口RAM(Simple Dual-port RAM)类型;
其特征在于,还包括:
一数据有效信号扩展模块,位于DIBR系统的前端,用于接收系统外部输入深度图的深度值D以及数据有效信号data_valid;然后将深度值D原封不动地输出,数据有效信号data_valid扩展2行之后输出,其中data_valid扩展是在输入的最后一行数据有效信号结束一段时间之后、场消隐信号到来之前的时间段里,产生2行的数据有效信号,其对应的深度值置为0;
一三维图像变换模块,用于接收数据有效信号扩展模块输出的深度图的深度值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,采用3×3的掩膜对这些视差值进行中值滤波,并将结果以及数据有效信号data_valid输出给空洞填充模块;
一空洞填充模块,用于接收视差图中值滤波模块输出的视差值M以及数据有效信号data_valid,对其中的空洞点进行填充,然后连同数据有效信号data_valid输出给像素拷贝模块;空洞填充是基于视差图的空洞填充算法,修改视差值M为-128的点即空洞点的视差值;
一像素拷贝模块,用于接收空洞填充模块输出的视差值M以及数据有效信号data_valid,根据视差值M逐行计算目标图像像素点在参考图像上的匹配点(matching point)的坐标,并将该坐标作为读位于顶层的块RAM即D0的地址,读出其中的像素值Iref,构成目标图像的像素值Ides,作为整个DIBR系统的输出;在逐行计算匹配点的坐标时,是按行的逆向即从右到左的方向处理的;
LM(i)表示视差图的第i行,LI(i)表示参考图像的第i行,0≤i<Wi,当开始处理一幅参考图像及其对应的深度图时,依次将LM(0)、LM(1)、LM(2)、LM(3)存入R0、R1、R2、R3;处理完LM(0)之后,又将LM(5)存入R0,依次类推;在存储和处理LM(i)的同时,依次将LI(i)存入D0进行处理,具体为:
在t0时刻,三维图像变换模块开始将LM(0)写入R0;
在t1时刻,LM(0)已存入R0,三维图像变换模块开始将LM(1)写入R1;
在t1~t2时段,当完成LM(1)到R1的写操作后,像素拷贝模块开始将LI(0)写入D0;
在t2时刻,LM(1)已存入R1,三维图像变换模块开始将LM(2)写入R2,并开始读R0中的LM(0)输出给视差图中值滤波模块;
在t2~t3时段,像素拷贝模块根据得到的目标图像像素点地址,读出LI(0)中的像素值,得到目标图像的第0行;当完成LM(2)到R2的写操作后,开始将LI(1)写入D0;
在t3时刻,LM(2)已存入R2,三维图像变换模块开始将LM(3)写入R3,并开始同时读LM(0)、LM(1)和LM(2)输出给视差图中值滤波模块;
在t3~t4时段,像素拷贝模块根据得到的目标图像像素点地址,读出LI(1)中的像素值,得到目标图像的第1行;当完成LM(3)到R3的写操作后,开始将LI(2)写入D0;
在t4时刻,LM(3)已存入R3,三维图像变换模块开始将LM(4)写入R0,并开始同时读LM(1)、LM(2)和LM(3)输出给视差图中值滤波模块;
在t4~t5时段,像素拷贝模块根据得到的目标图像像素点地址,读出LI(2)中的像素值,得到目标图像的第2行;当完成LM(4)到R0的写操作后,开始将LI(3)写入D0;
在t5时刻,LM(4)已存入R0,三维图像变换模块开始将LM(5)写入R1,并开始同时读LM(2)、LM(3)和LM(4)输出给视差图中值滤波模块;
以上操作循环往复,形成行级流水线。
2.根据权利要求1所示的基于硬件实现的DIBR系统,其特征在于,所述视差图中值滤波模块发现掩模中的空洞点的个数大于等于5,则对当前点不进行中值滤波。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310429274.8A CN103533327B (zh) | 2013-09-22 | 2013-09-22 | 一种基于硬件实现的dibr系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310429274.8A CN103533327B (zh) | 2013-09-22 | 2013-09-22 | 一种基于硬件实现的dibr系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103533327A true CN103533327A (zh) | 2014-01-22 |
CN103533327B CN103533327B (zh) | 2015-04-08 |
Family
ID=49934945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310429274.8A Expired - Fee Related CN103533327B (zh) | 2013-09-22 | 2013-09-22 | 一种基于硬件实现的dibr系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103533327B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103957402A (zh) * | 2014-05-07 | 2014-07-30 | 四川虹微技术有限公司 | 一种实时全高清2d转3d系统行读写时序设计方法 |
CN104038753A (zh) * | 2014-06-17 | 2014-09-10 | 四川虹微技术有限公司 | 三维图像空洞填充方法 |
CN111402152A (zh) * | 2020-03-10 | 2020-07-10 | 北京迈格威科技有限公司 | 视差图的处理方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110032328A1 (en) * | 2009-08-06 | 2011-02-10 | Qualcomm Incorporated | Transforming video data in accordance with human visual system feedback metrics |
US20110115886A1 (en) * | 2009-11-18 | 2011-05-19 | The Board Of Trustees Of The University Of Illinois | System for executing 3d propagation for depth image-based rendering |
CN102932661A (zh) * | 2012-11-29 | 2013-02-13 | 重庆大学 | 视差图的中值滤波匹配误差校正方法和实施该方法的电路 |
CN103051908A (zh) * | 2012-12-26 | 2013-04-17 | 四川虹微技术有限公司 | 一种基于视差图的空洞填充装置 |
CN103220545A (zh) * | 2013-04-28 | 2013-07-24 | 上海大学 | 一种立体视频实时深度估计系统硬件实现方法 |
-
2013
- 2013-09-22 CN CN201310429274.8A patent/CN103533327B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110032328A1 (en) * | 2009-08-06 | 2011-02-10 | Qualcomm Incorporated | Transforming video data in accordance with human visual system feedback metrics |
US20110115886A1 (en) * | 2009-11-18 | 2011-05-19 | The Board Of Trustees Of The University Of Illinois | System for executing 3d propagation for depth image-based rendering |
CN102932661A (zh) * | 2012-11-29 | 2013-02-13 | 重庆大学 | 视差图的中值滤波匹配误差校正方法和实施该方法的电路 |
CN103051908A (zh) * | 2012-12-26 | 2013-04-17 | 四川虹微技术有限公司 | 一种基于视差图的空洞填充装置 |
CN103220545A (zh) * | 2013-04-28 | 2013-07-24 | 上海大学 | 一种立体视频实时深度估计系统硬件实现方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103957402A (zh) * | 2014-05-07 | 2014-07-30 | 四川虹微技术有限公司 | 一种实时全高清2d转3d系统行读写时序设计方法 |
CN103957402B (zh) * | 2014-05-07 | 2015-10-21 | 四川虹微技术有限公司 | 一种实时全高清2d转3d系统行读写时序设计方法 |
CN104038753A (zh) * | 2014-06-17 | 2014-09-10 | 四川虹微技术有限公司 | 三维图像空洞填充方法 |
CN111402152A (zh) * | 2020-03-10 | 2020-07-10 | 北京迈格威科技有限公司 | 视差图的处理方法、装置、计算机设备和存储介质 |
CN111402152B (zh) * | 2020-03-10 | 2023-10-24 | 北京迈格威科技有限公司 | 视差图的处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103533327B (zh) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9924153B2 (en) | Parallel scaling engine for multi-view 3DTV display and method thereof | |
CN105721791B (zh) | 一种拼接显示屏的旋转显示方法及系统 | |
CN103139509B (zh) | 一种基于axi总线协议的osd控制显示方法及装置 | |
CN102547338B (zh) | 一种适用于3d电视的dibr系统 | |
CN103220545B (zh) | 一种立体视频实时深度估计系统硬件实现方法 | |
CN105049834B (zh) | 基于fpga的实时祼眼3d播放系统 | |
CN103760525B (zh) | 一种补齐式原地矩阵转置方法 | |
CN105611270B (zh) | 一种双目视觉自由立体显示系统 | |
CN102708280B (zh) | 一种图像显示方法及设备 | |
Zha et al. | A real-time global stereo-matching on FPGA | |
Li et al. | High throughput hardware architecture for accurate semi-global matching | |
CN103533327B (zh) | 一种基于硬件实现的dibr系统 | |
CN101729919A (zh) | 基于fpga的全自动平面视频转立体视频系统 | |
CN103237157A (zh) | 一种实时高清视频图像转置器 | |
CN106101712B (zh) | 一种视频流数据的处理方法及装置 | |
CN102932661A (zh) | 视差图的中值滤波匹配误差校正方法和实施该方法的电路 | |
CN104618717A (zh) | 行与块的整合转换方法及其计算机可读取存储介质 | |
Akin et al. | Real-time free viewpoint synthesis using three-camera disparity estimation hardware | |
WO2016197393A1 (zh) | 并行多相位图像插值装置和方法 | |
CN102111636A (zh) | 一种3d信号转换为2d信号的方法及系统 | |
CN104185011B (zh) | 一种多视点图像融合装置 | |
CN201075280Y (zh) | 一种显示器数字图像实时缩放集成电路 | |
CN108495070A (zh) | 实现数字视频单像素输入输出多像素处理的方法及装置 | |
CN101452572B (zh) | 基于三次平移算法的图像旋转vlsi结构 | |
Motten et al. | An on-chip parallel memory architecture for a stereo vision system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150408 |
|
CF01 | Termination of patent right due to non-payment of annual fee |