一种用于深度图视差估计的并行实现方法与流程

文档序号:20489915发布日期:2020-04-21 21:58阅读:173来源:国知局
一种用于深度图视差估计的并行实现方法与流程

本发明涉及视频处理技术领域,尤其涉及三维高效视频编码深度图视差估计算法的并行实现方法。



背景技术:

视差指同一像素点在不同视点投影中的位置偏差。视差估计(disparityestimation,简称de)就是寻找不同视点间图像数据的空域相关性,计算视差矢量(disparityvector,简称dv)的过程。采用视差估计可以大大消除多个视点间的冗余数据,是三维视频编码中进行视点间运动预测、残差预测、光照补偿和视点合成预测的重要环节。

jct-3v提出的三维高效视频编码(3dhighefficiencyvideocoding,简称3d-hevc),是基于h.264/avc的扩展部分mvc(multi-viewvideocoding,简称mvc)和h.265/hevc标准的算法基础设计的,采用多视点视频加深度(multi-viewvideoplusdepth,简称mvd)格式对多个视点的纹理图像和深度图像进行编码。在3d-hevc中,使用基于相邻块视差估计(disparityvectorfromneighboringblocks,简称nbdv)方法获得深度图的视差矢量。例如,对于一个n×n的基本视点编码块,视差矢量的获取是对基本视点的2个时域相邻块和参考视点的5个空域相邻块的搜索及匹配过程。采用这样的块匹配方式,所带来的问题是与标准二维视频编码相比,需要更多的参考帧信息,带来更高的计算量和更大的数据吞吐量,会严重影响视频编码的效率。如果为了降低计算量而选择过大的编码块,又会导致连续性预测误差,影响视点合成。

上述缺陷是本领域技术人员期望克服的。

因此,亟需一种用于三维高效视频编码的深度图视差估计并行实现方法。



技术实现要素:

(一)要解决的技术问题

为了解决现有技术的上述问题,本发明提供一种用于深度图视差估计的并行实现方法,解决现有技术中的视差估计耗时的问题。

(二)技术方案

为了达到上述目的,本发明采用的主要技术方案包括:

本发明一实施例提供一种用于深度图视差估计的并行实现方法,包括以下步骤:

s1、基于邻接互连的4×4二维处理元阵列构建用于三维高效视频编码深度图视差估计的并行结构;

s2、基于获取的视频图像读取基本视点像素值和参考视点像素值到所述并行结构的所述处理元中;

s3、在所述并行结构的所述处理元中并行地进行时域相邻块和空域相邻块的块匹配操作,计算得到各相邻块的sad值;

s4、根据所述sad值,选取时域最小sad值得到最优时域相邻块,进行运动补偿预测,选取最小空域sad值得到最优空域相邻块,进行视差补偿预测;

s5、根据所述运动补偿预测和视差补偿预测结果,计算得到深度图视差矢量。

本发明的一个实施例中,在步骤s2所述读取基本视点像素值和参考视点像素值之前,还包括:

将视频的测试序列的基本视点图像和参考视点图像转换成所述阵列能识别的二进制数据;

将所述二进制数据分布在文档中,并存储在数据输入存储dim中,作为所述基本视点当前像素值、参考视点当前像素值;

根据所述视频中的基本视点前一帧处理后的重建图像,存储在数据输出存储dom中,作为所述基本视点参考像素值。

本发明的一个实施例中,在步骤s2所述读取基本视点像素值和参考视点像素值到所述并行结构的所述处理元中,包括:

通过所述二维处理元阵列中第一行第一列的处理元pe00以邻接互连的方式访问所述dim以8×8大小读取相应的基本视点当前预测块像素值;

通过所述二维处理元阵列中第二行第一列的处理元pe10以邻接互连的方式访问所述dim以10×10大小读取5个相应的参考视点空域相邻块像素值;

通过所述二维处理元阵列中第一行第四列的处理元pe03以邻接互连的方式访问所述dom以10×10大小读取2个相应的基本视点时域相邻块像素值。

本发明的一个实施例中,在步骤s2完成后,进行步骤s3之前,还包括:

处理元pe00将所述当前预测块并行下发到处理元pe01、pe02的数据存储地址[0]-[63]中,并经由处理元pe10下发到处理元pe11、pe20、pe21、pe30和pe31的数据存储地址[0]-[63]中;

处理元pe03依次将2个所述基本视点时域相邻块下发到pe01、pe02的数据存储地址[100]-[199]中;

处理元pe10将所述5个参考视点空域相邻块分别下发到处理元pe11、pe20、pe21、pe30和pe31的数据存储地址[100]-[199]中;

完成数据下发后处理元pe01、pe02、pe11、pe20、pe21、pe30和pe31被并行地置入同一握手信号。

本发明的一个实施例中,在步骤s3中所述在所述并行结构的所述处理元中并行地进行时域相邻块和空域相邻块的块匹配操作,计算得到各相邻块的sad值,包括:

处理元pe01、pe02对各自数据存储地址[0]-[63]中的基本视点预测块,与存储地址[100]-[199]中的基本视点时域相邻块并行进行块匹配操作,并计算其sad值,将结果存入pe12中;

处理元pe11、pe20、pe21、pe30和pe31对各自数据存储地址[0]-[63]的基本视点预测块,与存储地址[100]-[199]中的参考视点空域相邻块并行进行块匹配操作,并计算其sad值,将结果存入处理元pe22中;

该方法所述sad值(sumofabsolutedifferences,简称sad)根据公式(1)计算得到,包括:

(1)

其中fk(i,j)为基本视点预测块第i行第j列的像素值,gk(i,j)为基本视点参考块或参考视点参考块第i行第j列的像素值,(i,j)为运动矢量,n为编码块的规模。

本发明的一个实施例中,在步骤s4中所述根据所述sad值,选取时域最小sad值得到最优时域相邻块,进行运动补偿预测,选取最小空域sad值得到最优空域相邻块,进行视差补偿预测,包括:

处理元pe12在收到pe01、pe02发来的sad值的同时,对其进行比较,将相对小的sad值存入处理元pe12,最后得到最优时域相邻块,进行运动补偿预测计算,然后将结果存入处理元pe32中;

处理元pe22在收到pe11、pe20、pe21、pe30和pe31发来的sad值的同时,对其进行比较,将相对小的sad值存入处理元pe22,最后得到最优空域相邻块,进行视差补偿预测计算,然后将结果存入处理元pe32中。

本发明的一个实施例中,在步骤s5中所述根据所述运动补偿预测和视差补偿预测结果,计算得到深度图视差矢量,包括:

处理元pe32收到pe12、pe22分别发来的运动补偿预测结果和视差补偿预测结果后,对其计算得到深度图视差矢量。

有益效果

本发明的有益效果是:本发明实施例提供的用于深度图视差估计的并行实现方法,通过构建并行结构,对三维高效视频编码的视差估计算法进行并行化实现,提高其视差估计过程的计算效率,能够满足视差矢量计算过程的并行计算要求,缩短深度图编码时间。

附图说明

图1为本发明一实施例中所述相邻块视差矢量nbdv方法参考视点时域相邻块和空域相邻块位置示意图;

图2为本发明一实施例提供的一种用于深度图视差估计的并行实现方法的流程图;

图3为本发明一实施例中用于深度图视差估计的并行结构架构图;

图4为本发明一实施例中10×10搜索窗示意图。

具体实施方式

为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。

本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。

在本发明相关实施例中,使用基于nbdv独立编码的方法获得深度图的视差矢量。

图1为本发明一实施例中所述相邻块视差矢量nbdv方法参考视点时域相邻块和空域相邻块位置示意图。如图1所示,对于一个n×n的基本视点编码块,视差矢量的获取是对当前视点的2个时域相邻块和参考视点的5个空域相邻块的搜索及匹配过程。图1中,t0、t1位置处是时域相邻块,a0、a1、b0、b1、b2位置是空域相邻块。在传统软件方法中,nbdv按照t0、t1、a1、b1、b0、a0、b2的顺序进行最优匹配块的搜索、sad计算。采用这样的块匹配方式,所带来的问题是编码时间长,效率不高。同时,3d-hevc深度图视差估计需要对时域相邻块进行运动补偿预测(motion-compensatedprediction,简称mcp),对空域相邻块进行视差补偿预测(disparity-compensatedprediction,简称dcp),使得深度图视点间预测的计算复杂度大大增加。

本发明一实施例为了更准确的选取合适的编码块大小,实现视差估计算法,通过对htm(3d-hevctestmodel)参考软件和官方深度图不同测试序列:balloons、kendo、newapaper和poznanstree进行了一系列对比实验,实验结果表明几乎所有测试序列在进行cu划分后65%都选择了depth=3的8×8块大小进行视点间预测。因此本发明选取8×8大小的pu用于3d-hevc的深度图视差估计并行实现,在保证预测准确度的情况下可以显著降低计算复杂度。对于8×8大小的pu,视差估计的搜索窗像素块尺寸为10×10,参与计算的像素数达到700个,导致深度图视差估计数据访问量大,计算密集。但是通过分析发现,mcp、dcp和块匹配的计算过程具有全局数据少,块间像素处理之间相对独立,同一时刻存在大量相同操作的特点,所以计算过程可以采用并行的思想,即在同一时刻并行进行多个块匹配处理。因此本发明中设计一种能够支持3d-hevc标准的深度图视差估计算法的并行结构,并不能套用原有的架构,而是要重新设计其架构,该架构可以满足视差矢量计算过程的并行计算要求。

图2为本发明一实施例提供的一种用于三维高效视频编码的深度图视差估计并行实现方法的流程图,如图2所示,该方法包括以下步骤:

如图2所示,在步骤s1中,基于邻接互连的4×4二维处理元阵列构建用于三维高效视频编码深度图视差估计的并行结构;

如图2所示,在步骤s2中,基于获取的视频图像读取基本视点像素值和参考视点像素值到所述并行结构的所述处理元中;

如图2所示,在步骤s3中,在所述并行结构的所述处理元中并行地进行时域相邻块和空域相邻块的块匹配操作,计算得到各相邻块的sad值;

如图2所示,在步骤s4中,根据所述sad值,选取时域最小sad值得到最优时域相邻块,进行运动补偿预测,选取最小空域sad值得到最优空域相邻块,进行视差补偿预测;

如图2所示,在步骤s5中,根据所述运动补偿预测和视差补偿预测结果,计算得到视差矢量。

在图2所示本发明实施例所提供的技术方案中,通过构建并行结构,对深度图视差估计算法进行并行化实现,提高其视差估计过程的计算效率,能够满足视差矢量计算过程的并行计算要求,缩短其编码时间。

以下对图2所示实施例的各个步骤的具体实现进行详细阐述:

在步骤s1中,基于邻接互连的4×4的二维处理元阵列构建用于三维高效视频编码的深度图视差估计的并行结构。

本发明一实施例中,以16个处理元(processingelement,简称pe)为例,图3为本发明一实施例中用于三维高效视频编码的深度图视差估计并行结构的架构图。如图3所示,包括4×4的pe,即第一行分别是pe00、pe01、pe02和pe03,第二行分别是pe10、pe11、pe12和pe13,第三行分别是pe20、pe21、pe22和pe23,第四行分别是pe30、pe31、pe32和pe33。

本发明的一个实施例中,在步骤s2中读取基本视点像素值和参考视点像素值之前,还包括:

首先,将视频的测试序列转换成所述阵列能识别的二进制数据;其次,将所述二进制数据以8×8编码块大小从左到右、自上而下分成396行(每行64个像素),按行存储在数据输入存储dim[0000]开始的地址中,作为所述基本视点当前图像像素值;将视频测试序列中的参考视点图像转换成所述阵列能识别的二进制数据,按照10×10搜索窗大小从左到右、自上而下分成396行(每行100个像素),存储在数据输入存储dim[1000]开始的地址中,作为所述参考视点像素值;将当前视点上一帧图像编码后的重建图像像素值按照10×10搜索窗大小按行(每行100个像素)存储再数据输出存储dom[0000]开始的地址中,作为所述当前视点参考像素值。

搜索窗是以sad目标块为中心在参考帧上确定的10×10大小的像素块,如图4所示。

在步骤s2中,基于获取的视频图像读取基本视点像素值和参考视点像素值到所述并行结构的所述处理元中。

本发明的一个实施例中,该步骤中读取基本视点像素值和参考视点像素值,包括:

a.通过所述二维处理元阵列中第一行第一列的处理元pe00以邻接互连的方式访问所述dim,从[0000]地址开始读取第x行的8×8像素到地址[0]-[63]中,作为基本视点预测块(predictionunit,简称pu);

b.通过所述二维处理元阵列中第二行第一列的处理元pe10以邻接互连的方式访问所述dim,从[1000]地址开始,依次读取行号为x-19,x-18,x-17,x-1,x+17的5行10×10空域相邻块的像素到地址[100]-[599]中,分别作为空域相邻块b2、b1、b0、a1、a0的搜索窗;

c.处理元pe03以邻接互连的方式访问所述dom,从[0000]地址开始,依次读取行号为x,x+19的2行10×10的时域相邻块像素到地址[0]-[199]中,分别作为时域相邻块t1、t0的搜索窗。

上述为数据加载过程。

本发明的一个实施例中,在步骤s2之后,执行步骤s3之前,还包括:

a.处理元pe00读取到基本视点pu后,将其以并行方式分别下发到处理元pe01、pe10和pe02的数据存储地址[0]-[63]中,再由pe10并行下发到处理元pe11、pe20、pe21、pe30和pe31的数据存储地址[0]-[63]中;

b.处理元pe10对读取的参考视点搜索窗,将地址[100]-[199]的数据下发到pe31的数据存储地址[100]-[199]中,将地址[200]-[299]的数据下发到pe21的数据存储地址[100]-[199]中,将地址[300]-[399]的数据下发到pe20的数据存储地址[100]-[199]中,将地址[400]-[499]的数据下发到pe11的数据存储地址[100]-[199]中,将地址[500]-[599]的数据下发到pe30的数据存储地址[100]-[199]中;

c.在pe10下发数据的同时,处理元pe03对读取的所述基本视点搜索窗,将地址[0]-[99]的数据下发到pe02的数据存储地址[100]-[199]中,将地址[100]-[199]的数据下发到pe01的数据存储地址[100]-[199]中;

d.完成数据下发后处理元pe01、pe02、pe11、pe20、pe21、pe30和pe31被并行地置入同一握手信号。

上述为数据下发的过程。

本发明的一个实施例中,步骤s3所述在所述并行结构的所述处理元中并行地进行时域相邻块和空域相邻块的块匹配操作,计算得到各相邻块的sad值,具体包括:

处理元pe01、pe02从各自本地数据存储地址[0]-[63]中取出基本视点pu像素值,与存储地址[100]-[199]中时域相邻块搜索窗数据按照全搜索策略进行块匹配操作,计算得到各自的最小sad值,将最小sad值和对应的匹配块像素值存入第三行第三列的处理元pe12中;

处理元pe11、pe12、pe13、pe21、pe22从各自数据存储地址[0]-[63]中取出基本视点pu像素值,与存储地址[100]-[199]中空域相邻块搜索窗数据按照全搜索策略进行块匹配操作,计算得到各自的最小sad值,将最小sad值和对应的匹配块像素值存入第三行第四列的处理元pe22中。

本发明的一个实施例中,步骤s4所述根据所述sad值,选取时域最小sad值得到最优时域相邻块,进行运动补偿预测,选取最小空域sad值得到最优空域相邻块,进行视差补偿预测,具体包括:

处理元pe12在收到pe01、pe02发来的sad值的同时,对其进行比较,将相对小的sad值及其对应的匹配块像素值存入处理元pe12,作为最优时域相邻块,然后采用mcp方法进行运动补偿计算出mv存入pe32;

处理元pe22在收到pe11、pe20、pe21、pe30和pe31发来的sad值的同时,对其进行比较,将相对小的sad值存入处理元pe22,最后得到最优空域相邻块,然后采用mvp方法进行视差补偿计算出dv存入处理元pe32中。

本发明的一个实施例中,步骤s5包括:

处理元pe32收到pe12、pe22分别发来的运动补偿mv和视差补偿dv,对其计算得到深度图视差矢量。

需要说明的是,全搜索算法是在搜索区域(searchrange,简称sr)内进行的穷尽搜索。搜索范围被称为搜索区域或搜索窗。全搜索需要预定的搜索区域内,将预测帧的给定编码块与参考帧搜索窗中所有的候选块进行比较,寻找具有最小匹配误差的匹配块。对于一个8×8大小的预测块,搜索窗大小至少为10×10,如图4所示。搜索的过程即使用当前预测块(currentblock,简称cb)与搜索窗内同样大小的参考块(referenceblock,简称rb)进行逐像素匹配,hevc中采用sad值表征cb与rb之间的匹配度,其定义如公式(1)所示:

(1)

其中fk(i,j)为基本视点预测块第i行第j列的像素值,gk(i,j)为基本视点参考块或参考视点参考块第i行第j列的像素值,n为编码块的规模。

cb与rb之间的偏移量(i,j)被称为运动矢量(motionvector,简称mv)。sad值越小说明匹配度越高,具有最小代价的参考块的位置就是最优匹配块。代价的计算公式如(2)所示:

(2)cost=distortion+λ×rate

其中distortion是当前参考块的sad值,λ为输入系数,rate是偏移量的编码代价。

对于8×8大小的cb,10×10大小搜索窗分别可以生成左上、上、右上、左、中、右、左下、下、右下共9个8×8大小的rb,也就是说需要计算9个块的sad值。

计算同一视点cb和rb间运动矢量的过程称为运动补偿预测(motion-compensatedprediction,简称mcp),预测得到的矢量成为mv。计算不同视点cb和rb间运动矢量的过程称为视差补偿预测(disparity-compensatedprediction,简称dcp),预测得到的矢量成为dv。深度图的视差矢量有水平和垂直两个分量构成,dv可以用作深度图的深度值,水平分量由公式(3)获得:

(3)dv=(s*v+o)>>n

其中,其中v是深度样本值,s是比例因子,o是位置偏移量,n是依赖于所需精度的移位参数。

本实施例是基于8×8的块大小进行设计的,因此为了基于nbdv方法的深度图视差矢量计算,对于每一个cb需要完成2个时域参考窗、5个空域参考窗共63个rb的sad匹配过程。在htm中这个计算过程是串行进行的,会带来极大的计算延迟。本发明通过并行设计,使用7个pe同时完成63个sad的计算过程,从而达到提高该算法的计算效率,缩短时间的目的。

综上所述,本发明实施例提供的方法,对深度图视差估计计算设计一种并行结构,尽可能大的提高并行度,缩短编码时间。

由于本公开的示例实施例图3的用于三维高效视频编码的深度图视差估计并行结构各个功能模块与上述图2所示的用于三维高效视频编码的深度图视差估计并行实现方法的示例实施例的步骤对应,因此对于本公开结构实施例中未披露的细节,请参照本公开上述的用于三维高效视频编码的深度图视差估计并行实现方法的实施例。

需要理解的是,以上对本发明的具体实施例进行的描述只是为了说明本发明的技术路线和特点,其目的在于让本领域内的技术人员能够了解本发明的内容并据以实施,但本发明并不限于上述特定实施方式。凡是在本发明权利要求的范围内做出的各种变化或修饰,都应涵盖在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1