发明名称 一种用于三维立体视频的深度快速插帧方法
摘要 本发明涉及一种用于三维立体视频的深度快速插帧方法,属于视频处理领域。首先,根据深度视频的帧率选择彩色视频的编码结构,使待插帧的深度帧与彩色视频的B帧相对应;在解码端直接提取彩色视频的运动向量,用于找到待插入的深度宏块对应的参考宏块;使用改进的深度宏块填充算法对待插入的深度宏块进行填充。本发明的优点是利用了彩色视频做运动估计,并且使用改进的填充算法,极大的提高了深度视频插帧的质量,让恢复的深度视频具有更清晰的物体边缘和更好的局部平滑特性,得到更好的三维立体视觉效果。本发明直接读取的彩色视频的运动信息,从而省略了插帧时做运动估计的步骤,极大的提高了插帧的效率,更适合于实际工业应用。
申请公布号 CN102761765A 申请公布日期 2012.10.31
申请号 CN201210246790.2 申请日期 2012.07.16
申请人 清华大学 发明人 孙立峰;李彦洁
分类号 H04N13/00(2006.01)I;H04N13/02(2006.01)I 主分类号 H04N13/00(2006.01)I
代理机构 北京清亦华知识产权代理事务所(普通合伙) 11201 代理人 罗文群
主权项 1.一种用于三维立体视频的深度快速插帧方法,其特征在于该方法包括以下步骤:(1)设定一个三维立体视频中彩色视频的编码结构,使采集到的三维立体视频中深度视频帧与采集到的三维立体视频中彩色视频的I帧和P帧相对应,使待插的三维立体视频中深度视频帧与采集到的三维立体视频中彩色视频的B帧相对应,初始化待插的深度视频帧的每个像素点的深度值为-1;(2)将上述三维立体视频中彩色视频的B帧分成多个4×4的彩色像素块,从三维立体视频彩色视频的码流中,读取彩色视频的B帧中每个彩色像素块在时序相邻的I帧或P帧中的对应的彩色像素块的位置改变量,若读取到对应的彩色像素块,则进行步骤(3),若读取不到相关信息,则与该彩色像素块相对应的待插深度像素块的每个像素点的深度值保持不变;(3)根据上述读取的彩色像素块位置改变量,(Ⅰ)若在时序相邻的前后I帧或P帧中存在一个对应的彩色像素块,则采用以下方法,对与该彩色像素块相对应的深度像素块进行填充,该方法包括以下步骤:(3-1)设待插深度视频帧为D,待填充的深度像素块为K,与K对应的彩色像素块为与待插深度视频帧为D对应的彩色视频帧F中的像素块K′,从彩色视频的码流中读取K′在时序相邻的彩色视频帧F<sub>R</sub>中对应的彩色像素块K<sub>R</sub>′,设与彩色视频帧F<sub>R</sub>对应的深度视频帧为D<sub>R</sub>,得到深度视频帧D<sub>R</sub>中位置与彩色像素块K<sub>R</sub>′相同的深度像素块K<sub>R</sub>;(3-2)计算彩色像素块K′和K<sub>R</sub>′中各对应的像素点颜色值差的绝对值的和,记为SAD,<maths num="0001"><![CDATA[<math><mrow><mi>SAD</mi><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mn>3</mn></munderover><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>0</mn></mrow><mn>3</mn></munderover><mo>|</mo><mo>|</mo><msub><mi>c</mi><msup><mi>K</mi><mo>&prime;</mo></msup></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>c</mi><msup><msub><mi>K</mi><mi>R</mi></msub><mo>&prime;</mo></msup></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow></math>]]></maths>其中c<sub>K′</sub>(i,j)表示彩色像素块K′中像素点(i,j)的颜色值,i为该彩色像素点在K′中的横坐标,j为该彩色像素点在K′中的纵坐标,<img file="FDA00001893797800012.GIF" wi="163" he="68" />为彩色像素块K<sub>R</sub>′中像素点(i,j)的颜色值;(3-3)设定一个判断阈值,判断阈值的取值为10~20之间的任意数,将上述SAD与判断阈值进行比较,若SAD小于判断阈值,则将深度像素块K<sub>R</sub>填充到深度像素块K中,若SAD大于或等于判断阈值,则使用以下步骤进行填充:(3-3-1)将像素块K<sub>R</sub>扩展为8×8的超大深度像素块SB<sub>R</sub>,并在彩色视频帧F<sub>R</sub>中找的与超大深度像素块SB<sub>R</sub>位置相同的超大彩色像素块SB<sub>R</sub>′;(3-3-2)设定一个彩色值变量c,变量c的取值范围为0~255,若超大彩色像素块SB<sub>R</sub>′中至少有一个像素点的彩色值为c,则计算SB<sub>R</sub>′中所有彩色值为c的像素点在超大深度像素块SB<sub>R</sub>中对应的像素点的深度值的平均值,定义该平均值为dv[c],并记录一个标志变量m[c]为1;若超大彩色像素块SB<sub>R</sub>′中没有彩色值为c的像素点,则将平均值dv[c]赋值为零,标志变量m[c]赋值为0;(3-3-3)从与待填充的深度像素块K相对应的彩色像素块K′中,找到彩色像素点(u,v)的彩色值c(u,v),定义g为一个高斯核,Ω为以c(u,v)为中心的颜色搜索范围,根据上述计算得到的平均值dv[c]和标志变量m[c],计算两个中间变量:depthSum=∑<sub>c∈Ω</sub>dv(c)m(c)g(||c-c(u,v)||)weightSum=∑<sub>c∈Ω</sub>m(c)g(||c-c(u,v)||)对两个中间值进行判断,若weightSum≠0,则待填充的深度像素块K中深度像素点(u,v)的深度值d(u,v)为:<img file="FDA00001893797800021.GIF" wi="434" he="118" />若weightSum=0,则待填充的深度像素块K中深度像素点(u,v)的深度值d(u,v),进行步骤(4);(Ⅱ)若在时序相邻的前后I帧或P帧中同时存在两个对应的彩色像素块,则采用以下方法对与该彩色像素块对应的深度像素块进行填充:设待填充的深度像素块为K,d(x,y)表示K中的像素点(x,y)的深度值,其中x为该深度像素点在K中的横坐标,y为该深度像素点在K中的纵坐标,采用步骤(Ⅰ)的方法,计算时序相邻的前、后两个待填充深度像素块K中像素点(x,y)的深度填充值d<sub>f</sub>(x,y)和d<sub>b</sub>(x,y),对深度填充值d<sub>f</sub>(x,y)和d<sub>b</sub>(x,y)进行判断,得到待填充深度像素块K中像素点(x,y)的最终深度值d(x,y)为:若d<sub>f</sub>(x,y)和d<sub>b</sub>(x,y)都为-1,则d(x,y)保持不变;若d<sub>f</sub>(x,y)不等于-1,且d<sub>b</sub>(x,y)等于-1,则使d(x,y)等于d<sub>f</sub>(x,y);若d<sub>b</sub>(x,y)不等于-1且d<sub>f</sub>(x,y)等于-1,则使d(x,y)等于d<sub>b</sub>(x,y);若d<sub>f</sub>(x,y)和d<sub>b</sub>(x,y)同时不等于-1,则使d(x,y)为:<maths num="0002"><![CDATA[<math><mrow><mi>d</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><msub><mi>T</mi><mi>b</mi></msub><mrow><msub><mi>T</mi><mi>f</mi></msub><mo>+</mo><msub><mi>T</mi><mi>b</mi></msub></mrow></mfrac><msub><mi>d</mi><mi>f</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>+</mo><mfrac><msub><mi>T</mi><mi>f</mi></msub><mrow><msub><mi>T</mi><mi>f</mi></msub><mo>+</mo><msub><mi>T</mi><mi>b</mi></msub></mrow></mfrac><msub><mi>d</mi><mi>b</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow></math>]]></maths>其中T<sub>f</sub>和T<sub>b</sub>分别表示时序相邻的前、后I帧或P帧与彩色视频帧F的时间间隔长度;(4)对经过上述步骤(3)得到的深度视频帧中深度值为-1的像素点,使用下面方法进行填充:<img file="FDA00001893797800032.GIF" wi="1177" he="119" />其中,已知像素点[l]表示待插入像素点上、下、左、右四个方向上最相邻的深度值不为-1的像素点,l=1,2,3,4,权重[l]为已知像素点[l]的权重,该权重为归一化后的相似度,相似度的定义如下:<img file="FDA00001893797800033.GIF" wi="1064" he="208" />其中,颜色差[l]=|已知像素点[l]在彩色视频帧F中对应像素点的颜色值-待插像素点在彩色视频帧F中对应像素点的颜色值|,距离[l]=|待插像素点的行位置-已知像素点[l]的行位置|+|待插像素点的列位置-已知像素点[l]的列位置|。
地址 100084 北京市海淀区清华园1号