发明名称 一种基于最小二乘的多视点视频编码视点合成预测方法
摘要 本发明涉及一种基于最小二乘的多视点视频编码视点合成预测方法。本发明首先通过三维变换找到虚拟视点帧的当前像素点在参考视点帧中的对应像素;然后,将得到的参考视点帧中的对应像素,作为虚拟视点帧的当前像素的预测像素;其次,利用先前已解码的帧及其虚拟视点帧,采用最小二乘法训练求得预测系数;再次,根据得到预测系数,将预测像素的像素值通过线性估计来得到当前像素的像素值,对于每个像素执行相同的操作,最终得到虚拟视点帧;最后,将生成的虚拟视点帧,加入到参考帧列表,编码器根据参考帧列表对当前视点待编码帧进行编码。本发明同时利用视点内和视点间的信息来增强合成视点的质量,提高了基于视点合成预测的多视点视频编码效率。
申请公布号 CN102790895B 申请公布日期 2015.03.25
申请号 CN201210266945.9 申请日期 2012.07.30
申请人 武汉大学 发明人 胡瑞敏;胡金晖;段漭;龚燕;王中元
分类号 H04N13/00(2006.01)I;H04N19/597(2014.01)I 主分类号 H04N13/00(2006.01)I
代理机构 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 代理人 鲁力
主权项 一种基于最小二乘的多视点视频编码视点合成预测方法,其特征在于,采用MVC参考软件JMVC6.0作为编码器,选取分辨率为1024×768大小的多视点标准测试序列ballet和breakdancers的第0、1、2视点进行测试,图像组设置为8,量化步长分别为22,27,32,37,包括以下步骤:步骤1,通过三维变换找到虚拟视点帧的当前像素点在参考视点帧中的对应像素;步骤2,将步骤1得到的参考视点帧中的对应像素及其邻域的八个像素,作为虚拟视点帧的当前像素的预测像素;步骤3,利用编码器中当前帧之前的重建帧及其虚拟视点帧,采用最小二乘法训练求得预测系数;步骤4,根据步骤3得到预测系数,将预测像素的像素值通过线性估计来得到当前像素的像素值,步骤5,对于每个像素重复执行步骤1至步骤4,最终得到虚拟视点帧;步骤6,将步骤5生成的虚拟视点帧,加入到参考帧列表,编码器根据参考帧列表对当前视点待编码帧进行编码;步骤1中,找到虚拟视点帧中的当前像素在参考视点帧中的对应像素的步骤采用以下步骤实现,对于虚拟视点帧中的当前像素<img file="FDA0000622850470000011.GIF" wi="151" he="71" />其在参考视点帧中的对应像素<img file="FDA0000622850470000012.GIF" wi="117" he="71" />通过式一和式二来获取:[u,v,w]=R(c)·A<sup>‑1</sup>(c)·[x,y,1]·D[c,t,x,y]+T(c)   式一[x',y',z']=A(c')·R<sup>‑1</sup>(c')·{[u,v,w]‑T(c')}   式二式一和式二中,A,R和T分别表示内参矩阵,旋转矩阵和相机的平移矢量;c和t分别表示参考视点标号与视点内时域上的序号;D为深度值;[x,y,1]是虚拟视点帧中的像素坐标,[x',y',z']是参考视点帧中的像素坐标,[u,v,w]指的是世界坐标;步骤2中,将步骤1得到的参考视点帧中的对应像素及其周围像素,作为虚拟视点帧的当前像素的预测像素,选取方式如下:虚拟视点帧的当前像素的预测像素为步骤1中获得的<img file="FDA0000622850470000026.GIF" wi="127" he="70" />与其邻域的N个像素;所述步骤3中,利用先前已解码的帧及其虚拟视点帧,采用最小二乘法训练求得预测系数,具体采用以下步骤实现,步骤3.1:将先前已解码的帧作为训练样本,训练窗口的选择如下:W(T<sub>1</sub>,T<sub>1</sub>)=[‑T<sub>1</sub>,T<sub>1</sub>]×[‑T<sub>1</sub>,T<sub>1</sub>]   式三其中T<sub>1</sub>是空间窗口的大小;W(T<sub>1</sub>,T<sub>1</sub>)表示训练窗口;步骤3.2:设在训练窗口中有M个样本,将窗口中的所有样本写成M×1向量<img file="FDA0000622850470000027.GIF" wi="57" he="53" />定义训练样本在其虚拟视点帧中的对应像素和它的N个相邻像素为1×(N+1)的向量,则训练样本产生一个大小为M×(N+1)的协方差矩阵C,于是,预测系数<img file="FDA0000622850470000021.GIF" wi="34" he="54" />由式四和五获得:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mover><mi>&alpha;</mi><mo>&RightArrow;</mo></mover><mo>=</mo><mi>arg</mi><munder><mi>min</mi><mover><mi>&alpha;</mi><mo>&RightArrow;</mo></mover></munder><mi>MSE</mi><mo>=</mo><mi>arg</mi><munder><mi>min</mi><mover><mi>&alpha;</mi><mo>&RightArrow;</mo></mover></munder><msup><mrow><mo>|</mo><mo>|</mo><msub><mover><mi>y</mi><mo>&RightArrow;</mo></mover><mrow><mi>M</mi><mo>&times;</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>C</mi><mrow><mi>M</mi><mo>&times;</mo><mrow><mo>(</mo><mi>N</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><msub><mover><mi>&alpha;</mi><mo>&RightArrow;</mo></mover><mrow><mrow><mo>(</mo><mi>N</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>&times;</mo><mn>1</mn></mrow></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup></mrow>]]></math><img file="FDA0000622850470000022.GIF" wi="855" he="104" /></maths>   式四<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mover><mi>&alpha;</mi><mo>&RightArrow;</mo></mover><mo>=</mo><msup><mrow><mo>(</mo><msup><mi>C</mi><mi>T</mi></msup><mi>C</mi><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><msup><mi>C</mi><mi>T</mi></msup><mover><mi>y</mi><mo>&RightArrow;</mo></mover></mrow>]]></math><img file="FDA0000622850470000023.GIF" wi="301" he="72" /></maths>   式五其中C<sub>M×(N+1)</sub>表示所有训练样本及其预测像素所组成的矩阵;<img file="FDA0000622850470000024.GIF" wi="99" he="69" />和<img file="FDA0000622850470000025.GIF" wi="39" he="62" />表示训练样本像素;C<sup>T</sup>表示C<sub>M×(N+1)</sub>的转置;所述步骤4中,根据步骤3得到预测系数,将预测像素的像素值通过线性估计来得到当前像素的像素值,对于每个像素执行相同的操作,最终得到虚拟视点帧,采用以下步骤实现:在得到预测系数后,对于虚拟视点帧中的当前像素,它的像素值利用其在参考视点帧中的对应像素及该像素的邻域像素线性估计得来,如式六所示:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>P</mi><mi>syn</mi></msub><mrow><mo>(</mo><msub><mover><mi>n</mi><mo>&RightArrow;</mo></mover><mn>1</mn></msub><mo>)</mo></mrow><mo>=</mo><msubsup><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>N</mi><mo>+</mo><mn>1</mn></mrow></msubsup><msub><mi>&alpha;</mi><mi>k</mi></msub><msub><mi>P</mi><mi>ref</mi></msub><mrow><mo>(</mo><msub><mover><mi>m</mi><mo>&RightArrow;</mo></mover><mi>k</mi></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000622850470000031.GIF" wi="423" he="84" /></maths>式六其中<img file="FDA0000622850470000032.GIF" wi="32" he="56" />为虚拟视点帧中的像素坐标[x,y,1],<img file="FDA0000622850470000033.GIF" wi="52" he="58" />表示对应像素及该像素的邻域像素的坐标;将步骤5生成的虚拟视点帧,加入到参考帧列表采用如下方式实现:对于P视点锚定帧,只使用LIST_0用于预测,直接在列表末尾增加虚拟视点帧,对于P视点锚定帧,只使用LIST_0预测,直接将虚拟视点帧放至参考帧列表末尾;对于P视点非锚定帧,LIST_0和LIST_1都用于层次B帧预测,因此用虚拟视点帧替换LIST_0中的第一个后向时域参考帧,以及LIST_1中的第一个前向时域参考帧,对于B视点的锚定帧,直接将虚拟视点帧加至LIST_0和LIST_1的末尾;对于B视点的非锚定帧,参考帧列表的管理方式和P视点的相同。
地址 430072 湖北省武汉市武昌区珞珈山武汉大学