首页 > 专利 > 杭州电子科技大学 > 基于视差矢量外推的立体视频右视点B帧错误隐藏方法专利详情

基于视差矢量外推的立体视频右视点B帧错误隐藏方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2019-02-01
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2019-07-16
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2021-02-19
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2039-02-01
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201910104758.2 申请日 2019-02-01
公开/公告号 CN109922349B 公开/公告日 2021-02-19
授权日 2021-02-19 预估到期日 2039-02-01
申请年 2019年 公开/公告年 2021年
缴费截止日
分类号 H04N19/65H04N19/597H04N19/52H04N19/533H04N19/577H04N19/176H04N13/161 主分类号 H04N19/65
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 7
权利要求数量 8 非专利引证数量 0
引用专利数量 0 被引证专利数量 0
非专利引证
引用专利 被引证专利
专利权维持 3 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 周洋、谢菲、周辉、尉婉丽 第一发明人 周洋
地址 浙江省杭州市下沙高教园区2号大街 邮编 310018
申请人数量 1 发明人数量 4
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州君度专利代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
朱月芬
摘要
本发明涉及基于视差矢量外推的立体视频右视点B帧错误隐藏方法。本发明方法首先对立体视频右视点出错帧的同时刻的左视点帧建立视差矢量场;对于帧间编码块,根据帧中的运动预测信息在参考帧中找到帧间编码块对应的运动参考块,并根据运动参考块和搜索帧中的像素信息估计视差矢量;对于帧内编码块,根据周边相邻的帧间编码块的像素信息,计算像素信息最为相近的帧间编码块的视差矢量作为当前帧内编码块的视差矢量。本发明方法处理方式更为精细,在隐藏丢失块的过程中,对帧间编码块与帧内编码块提出了两种不同的隐藏方式,与传统的运动矢量外推算法中仅仅使用拷贝的方式相比,该方法在边界上的处理更为连续平滑。
  • 摘要附图
    基于视差矢量外推的立体视频右视点B帧错误隐藏方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-02-19 授权
2 2019-07-16 实质审查的生效 IPC(主分类): H04N 19/65 专利申请号: 201910104758.2 申请日: 2019.02.01
3 2019-06-21 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.基于视差矢量外推的立体视频右视点B帧错误隐藏方法,其特征在于:该方法首先对立体视频右视点出错帧的同时刻的左视点帧建立视差矢量场,根据左视点帧中块的类型不同,视差矢量的估计有两种情况:对于帧间编码块,根据帧中的运动预测信息在参考帧中找到帧间编码块对应的运动参考块,并根据运动参考块和搜索帧中的像素信息估计视差矢量;对于帧内编码块,根据周边相邻的帧间编码块的像素信息,计算像素信息最为相近的帧间编码块的视差矢量作为当前帧内编码块的视差矢量,块的大小为16×16像素;
对出错帧对应左视点帧中的各个16×16大小的编码块建立视差矢量场的具体方法是:
(1).统计出错帧中未丢失的视点间预测块,出错帧的前向、后向参考帧中的视点间预测块的数目,统计这些视点间预测块的视差矢量的模的最大值Xmax和全局视差矢量Dvglobal;
Xmax=max{|Dv1|,|Dv2|,|Dv3|…|Dvnum|},
num为出错帧中未丢失的视点间预测块和出错帧的前向、后向参考帧中的视点间预测块的个数之和,Dvi表示出错帧中未丢失的各个视点间预测块以及出错帧的前向、后向参考帧中各视点间预测块的视差矢量,k=1,2,…,num;
(2).判断出错帧对应左视点帧中的块是否为帧间编码块:在左视点帧中,根据解码块的编码信息判断当前块是否属于帧间编码块;如果当前块属于帧间编码块,则对帧间编码块进行视差矢量估计;如果当前块属于帧内编码块,则等到处理完帧间编码块后,再对帧内编码块进行视差矢量估计;
(3).处理出错帧对应左视点帧中的帧间编码块:
根据左视点帧中的帧间编码块的编码信息,将帧间编码块分为两类:单向编码块和双向编码块,所述的单向编码块为单向参考类型的帧间编码块,所述的双向编码块为双向参考类型的帧间编码块;单向编码块只参考前向参考帧或者后向参考帧中的一种,而双向编码块则会同时参考前向参考帧与后向参考帧;
(4).处理右视点出错帧的对应左视点帧中的帧内编码块:
首先在帧内编码块的相邻块中搜索与帧内编码块像素值相差最小的块;
如果此块与帧内编码块的像素值相差小于阈值Tpixel,则使用此块的视差矢量作为帧内编码块的视差矢量;如果此块与帧内编码块的像素值相差大于阈值Tpixel,则使用全局视差矢量Dvglobal作为帧内编码块的视差矢量;Tpixel为像素阈值,用于判断帧内编码块与其相邻的帧间编码块的平均像素差是否满足要求;
当视差矢量场建立后,根据所得到的各编码块的视差矢量信息,在出错帧的对应左视点帧和右视点出错帧之间进行视差矢量外推,具体方法如下:
①.遍历出错帧的对应左视点帧中的16x16块,对每个块根据其坐标和其视差矢量,外推得到该块在出错帧中的位置:
(x,y)为外推至出错帧中的左上角坐标位置,x0′与y0′为外推块在左视点帧中的左上角坐标位置,DVx与DVy分别为外推块的视差矢量的水平分量与垂直分量;
②.统计左视点当前块外推至丢失块位置后,外推块与丢失块所占区域的重叠面积;
③.选取重叠面积最大的外推块作为丢失块的匹配块,并将匹配块的视差矢量取反后赋予给丢失块;
对空洞块进行视差矢量获取,在空洞块与左视点帧中的块间建立联系,所述的空洞块是指在完成矢量外推后,出错帧中的大部分丢失块均有外推块与其重叠,但有部分块因在估计视差矢量时不够精确,将没有外推块与其重叠,没有外推块与其重叠的丢失块即为空洞块;
空洞块的视差矢量获取方法是根据空洞块左右侧的块的分布,将空洞块分为三种情况:
a.空洞块左右侧均为外推块;
b.空洞块左右侧只有一侧为外推块,另一侧为丢失块或未丢失块;
c.空洞块左右侧无外推块;
A.对于情况a:首先计算空洞块左右两侧外推块的视差矢量差,设置阈值TDv用于判断左侧块的视差矢量的模与右侧块的视差矢量的模的差值大小;当视差矢量差小于阈值TDv,则对两个视差矢量取均值作为空洞块的视差矢量;否则,根据空洞块左右两侧块的编码参考模式进行插值,插值过程如下:
如果空洞块左右两侧块均为双向编码块或均为单向编码块,则比较对应参考模式下的运动矢量差,并设置阈值TMv用于判断相同参考模式下,左侧块的运动矢量的模与右侧块的运动矢量的模的差值大小;当运动矢量差小于阈值TMv,则使用空洞块左右两侧块中视差矢量的模较小的视差矢量作为空洞块的视差矢量;如果运动矢量差大于阈值TMv,则进行下一步基于像素值的方式,即比较空洞块左右两侧块的像素值;
如果空洞块左右两侧块参考模式不同或运动矢量差大于阈值TMv,比较空洞块左右两侧块的像素值;当空洞块左右两侧块的像素差值小于像素阈值Tpixel,则使用空洞块左右两侧块中视差矢量的模较小的视差矢量作为空洞块的视差矢量;否则,则使用全局视差矢量Dvglobal作为当前空洞块的视差矢量;
B.对于情况b:在空洞块的非外推块这一侧的上方或下方寻找外推块;如果存在外推块,则使用非外推块侧上方或下方所找到的外推块和空洞块另一侧的外推块按照情况a进行处理;
如果空洞块的非外推块侧的上下方均不存在外推块,则使用全局视差矢量Dvglobal作为空洞块的视差矢量;
C.对于情况c:在空洞块的左右两侧的上方或下方寻找外推块,如果空洞块的左右两侧的上方或下方均存在外推块,则按照情况a进行处理;
如果空洞块的左右两侧只有一侧在上方或下方寻找的到外推块,则使用此块的视差矢量作为空洞块的视差矢量;
如果空洞块的左右两侧的上方或下方均不存在外推块,则使用全局视差矢量Dvglobal作为空洞块的视差矢量;
空洞块获取到对应的视差矢量后,右视点出错帧中的丢失块均能在出错帧的对应左视点帧中找到对应的匹配块,对丢失块进行错误隐藏,具体过程如下:
首先根据丢失块的视差矢量找到其位于左视点帧中的匹配块,隐藏丢失块的方式根据匹配块的不同分为两种方式:右视点运动补偿和匹配块像素值拷贝;如果匹配块为帧间编码块,则使用右视点运动补偿方式来隐藏丢失块,具体方法是:首先拷贝匹配块的运动预测信息至丢失块,匹配块的运动预测信息包括参考帧索引和运动矢量信息,运动预测信息拷贝至丢失块后,丢失块首先根据匹配块的参考帧索引定位到右视点中参考帧所处的位置,丢失块再根据所拷贝的运动矢量信息,找到丢失块在右视点参考帧中所对应的最佳参考块的位置,寻找最佳匹配块的方法为: (x′,y′)为最佳参考块在右视点参考帧中的左上角坐标位置,(x0″,y0″)为丢失块在出错帧中的左上角坐标位置,MVx和MVy分别为丢失块拷贝的运动矢量的水平分量与垂直分量;在找到最佳参考块的位置后,将最佳参考块的像素值拷贝至丢失块中,完成对丢失块的右视点运动补偿;
如果匹配块为帧内编码块,则使用匹配块像素值拷贝来隐藏丢失块;首先根据丢失块的视差矢量,找到丢失块位于左视点帧中的匹配块位置,在找到匹配块位置后,将匹配块的像素值拷贝至丢失块中,完成对丢失块的匹配块像素值拷贝。

2.如权利要求1所述的基于视差矢量外推的立体视频右视点B帧错误隐藏方法,其特征在于,所述的处理出错帧对应左视点帧中的帧间编码块中,对于单向编码块的处理方式如下:
首先根据当前块的运动矢量大小,找到当前块在参考帧中的参考块,并在右视点中找到与参考块所属帧属于同一时刻的帧,即搜索帧;在搜索帧中找到与参考块的坐标相同的位置,即参考块在搜索帧中的绝对位置;以搜索帧中的参考块绝对位置为起点,在它的水平方向上搜索与参考块的像素值最接近的块,即最佳搜索块,搜索范围设定为(0,Xmax);将最佳搜索块所处位置与参考块绝对位置二者之间的距离作为左视点帧所求的16×16单向编码块的视差矢量,即:
dvx为估计得到的最佳视差矢量,Pixelview0为参考帧在帧中某点的像素值,Pixelview1为搜索帧在帧中某点的像素值,(x0,y0)为参考块左上角像素点的坐标位置。

3.如权利要求1所述的基于视差矢量外推的立体视频右视点B帧错误隐藏方法,其特征在于,所述的处理出错帧对应左视点帧中的帧间编码块中,对于双向编码块的处理方式如下:
首先根据帧间编码块的运动信息,分别找到帧间编码块在前向和后向参考帧中的前向参考块和后向参考块;
对于前向参考块,首先在右视点中找到与帧间编码块的前向参考帧属于同一时刻的帧,即前向搜索帧;在前向搜索帧中找到前向参考块的绝对位置,以绝对位置为起点,在绝对位置的水平方向上搜索与前向参考块像素值最接近的块,即前向最佳搜索块,搜索范围与搜索方式与处理单向参考类型的帧间匹配块一致,记录前向最佳搜索块所处位置与前向参考块绝对位置二者之间的距离,即双向编码块在前向预测方向上的最佳视差矢量dvxpre;
对于后向匹配块,首先在右视点中找到与帧间编码块的后向参考帧属于同一时刻的帧,即后向搜索帧;在后向搜索帧中找到后向参考块的绝对位置,以绝对位置为起点,在绝对位置的水平方向上搜索与后向参考块像素值最接近的块,即后向最佳搜索块,搜索范围与搜索方式与处理单向参考类型的帧间匹配块一致,记录后向最佳搜索块所处位置与后向参考块绝对位置二者之间的距离,即双向编码块在后向预测方向上的最佳视差矢量dvxnext;
对记录下来的两个方向上的最佳视差矢量dvxpre和dvxnext进行加权平均,得到双向编码块的最佳估计视差矢量dvx,

4.如权利要求1所述的基于视差矢量外推的立体视频右视点B帧错误隐藏方法,其特征在于,将最佳参考块的像素值拷贝至丢失块中的像素值拷贝方式为:
Pixellost(x0″+i,y0″+j)=Pixelref(x′+i,y′+j),i,j=
0...15;
Pixellost为丢失块中某点的像素值,Pixelref为最佳参考块中某点的像素值。

5.如权利要求1所述的基于视差矢量外推的立体视频右视点B帧错误隐藏方法,其特征在于,将匹配块的像素值拷贝至丢失块中、的像素值拷贝方式为:
Pixellost(x0″+i,y0″+j)=Pixelmatch(x″+i,y″+j),i,j=
0...15;
Pixelmatch为匹配块中某点的像素值,(x″,y″)为匹配块在出错帧左视点帧中的左上角坐标位置。

6.如权利要求1所述的基于视差矢量外推的立体视频右视点B帧错误隐藏方法,其特征在于:所述的像素阈值Tpixel=6。

7.如权利要求1所述的基于视差矢量外推的立体视频右视点B帧错误隐藏方法,其特征在于:所述的阈值TDv=16。

8.如权利要求1所述的基于视差矢量外推的立体视频右视点B帧错误隐藏方法,其特征在于:所述的阈值TMv=16。
说明书

技术领域

[0001] 本发明属于视频编解码技术领域,具体涉及一种基于视差矢量外推的立体视频右视点B帧错误隐藏方法。

背景技术

[0002] 错误隐藏是针对由于多径效应和噪声造成的数据流丢包问题,利用解码端已经正确解码的信息,对丢包数据进行恢复。
[0003] 目前对立体3D视频错误隐藏的研究主要在以下方面展开:(1)利用时域上的冗余信息,由于帧与帧之间有相似性,所以可以利用时域上的信息进行恢复;(2)利用空域上的冗余信息,由于一帧画面中在空间上满足像素阶变性,所以可以通过相邻的像素进行插值;(3)利用视点间的冗余信息,对于多视点3D视频,由于不同视点间存在相当大的相似性与冗余信息,因此可以利用不同视点的可用信息进行恢复。
[0004] 立体视频编码一般采用分层B帧(HBP)预测编码结构对左右视点同时进行高效压缩,左视点是主视点,右视点是辅助视点,主视点帧利用视点内帧间时域相关性和帧内空域相关性进行压缩,右视点除了利用视点内时域/空域相关性,还利用左右视点的帧间相关性进行高效压缩。传统的基于运动矢量外推法的错误隐藏法一般应用于播放顺序与解码顺序一致的IPPP结构,而立体视频编码采用分层B帧(HBP)预测编码结构。因此建立在IPPP结构上,假设前后解码帧满足运动一致性的运动矢量外推法很难应用于立体3D视频错误隐藏中。在立体3D视频中,视差矢量外推的实用性将更好。

发明内容

[0005] 本发明的目的是提供一种基于视差矢量外推的立体视频右视点B帧错误隐藏方法。
[0006] 本发明方法首先对立体视频右视点出错帧的同时刻的邻视点帧建立视差矢量场。所述的邻视点为左视点。根据左视点帧中块的类型不同,视差矢量的估计有两种情况:对于帧间编码块,根据帧中的运动预测信息在参考帧中找到帧间编码块对应的运动参考块,并根据运动参考块和搜索帧中的像素信息估计视差矢量;对于帧内编码块,根据周边相邻的帧间编码块的像素信息,计算像素信息最为相近的帧间编码块的视差矢量作为当前帧内编码块的视差矢量,块的大小为16×16像素。
[0007] 对出错帧对应左视点帧中的各个16×16大小的编码块建立视差矢量场,具体方法是:
[0008] (1).统计出错帧中未丢失的视点间预测块,出错帧的前向、后向参考帧中的视点间预测块的数目,统计这些视点间预测块的视差矢量的模的最大值Xmax和全局视差矢量Dvglobal;
[0009]
[0010] num为出错帧中未丢失的视点间预测块和出错帧的前向、后向参考帧中的视点间预测块的个数之和,Dvi表示出错帧中未丢失的各个视点间预测块以及出错帧的前向、后向参考帧中各视点间预测块的视差矢量,k=1,2,…,num。
[0011] (2).判断出错帧对应左视点帧中的块是否为帧间编码块:在左视点帧中,根据解码块的编码信息判断当前块是否属于帧间编码块;如果当前块属于帧间编码块,则对帧间编码块进行视差矢量估计;如果当前块属于帧内编码块,则等到处理完帧间编码块后,再对帧内编码块进行视差矢量估计;
[0012] (3).处理出错帧对应左视点帧中的帧间编码块:根据左视点帧中的帧间编码块的编码信息,将帧间编码块分为两类:单向编码块和双向编码块,所述的单向编码块为单向参考类型的帧间编码块,所述的双向编码块为双向参考类型的帧间编码块;单向编码块只参考前向参考帧或者后向参考帧中的一种,而双向编码块则会同时参考前向参考帧与后向参考帧;对两种不同类型的帧间编码块,分别采用如下处理方式:
[0013] 对于单向编码块:首先根据当前块的运动矢量大小,找到当前块在参考帧(前向参考帧或者后向参考帧)中的参考块,并在右视点中找到与参考块所属帧属于同一时刻的帧,即搜索帧;在搜索帧中找到与参考块的坐标相同的位置,即参考块在搜索帧中的绝对位置;以搜索帧中的参考块绝对位置为起点,在它的水平方向上搜索与参考块的像素值最接近的块,即最佳搜索块,搜索范围设定为(0,Xmax);将最佳搜索块所处位置与参考块绝对位置二者之间的距离作为左视点帧所求的16×16单向编码块的视差矢量,即:
[0014]
[0015] dvx为估计得到的最佳视差矢量,Pixelview0为参考帧在帧中某点的像素值,Pixelview1为搜索帧在帧中某点的像素值,(x0,y0)为参考块左上角像素点的坐标位置。
[0016] 对于双向编码块:首先根据帧间编码块的运动信息,分别找到帧间编码块在前向和后向参考帧中的前向参考块和后向参考块;
[0017] 对于前向参考块,首先在右视点中找到与帧间编码块的前向参考帧属于同一时刻的帧,即前向搜索帧;在前向搜索帧中找到前向参考块的绝对位置,以绝对位置为起点,在绝对位置的水平方向上搜索与前向参考块像素值最接近的块,即前向最佳搜索块,搜索范围与搜索方式与处理单向参考类型的帧间匹配块一致,记录前向最佳搜索块所处位置与前向参考块绝对位置二者之间的距离,即双向编码块在前向预测方向上的最佳视差矢量dvxpre;
[0018] 对于后向匹配块,首先在右视点中找到与帧间编码块的后向参考帧属于同一时刻的帧,即后向搜索帧;在后向搜索帧中找到后向参考块的绝对位置,以绝对位置为起点,在绝对位置的水平方向上搜索与后向参考块像素值最接近的块,即后向最佳搜索块,搜索范围与搜索方式与处理单向参考类型的帧间匹配块一致,记录后向最佳搜索块所处位置与后向参考块绝对位置二者之间的距离,即双向编码块在后向预测方向上的最佳视差矢量dvxnext;
[0019] 对记录下来的两个方向上的最佳视差矢量dvxpre和dvxnext进行加权平均,得到双向编码块的最佳估计视差矢量
[0020] (4).处理右视点出错帧的对应左视点帧中的帧内编码块:
[0021] 首先在帧内编码块的相邻块中搜索与帧内编码块像素值相差最小的块;
[0022] 如果此块与帧内编码块的像素值相差小于阈值Tpixel,则使用此块的视差矢量作为帧内编码块的视差矢量;
[0023] 如果此块与帧内编码块的像素值相差大于阈值Tpixel,则使用全局视差矢量Dvglobal作为帧内编码块的视差矢量;
[0024] Tpixel为像素阈值,用于判断帧内编码块与其相邻的帧间编码块的平均像素差是否满足要求,Tpixel=6;
[0025] 当视差矢量场建立后,根据所得到的各编码块的视差矢量信息,在出错帧的对应左视点帧和右视点出错帧之间进行视差矢量外推,具体方法如下:
[0026] ①.遍历出错帧的对应左视点帧中的16x16块,对每个块根据其坐标和其视差矢量,外推得到该块在出错帧中的位置:
[0027] (x,y)为外推至出错帧中的左上角坐标位置,x0′与y0′为外推块在左视点帧中的左上角坐标位置,DVx与DVy分别为外推块的视差矢量的水平分量与垂直分量;
[0028] ②.统计左视点当前块外推至丢失块位置后,外推块与丢失块所占区域的重叠面积;
[0029] ③.选取重叠面积最大的外推块作为丢失块的匹配块,并将匹配块的视差矢量取反后赋予给丢失块。
[0030] 完成矢量外推后,出错帧中的大部分丢失块均有外推块与其重叠,但有部分块因在估计视差矢量时不够精确,将没有外推块与其重叠,没有外推块与其重叠的丢失块为空洞块。此时要对这些空洞块进行视差矢量获取,在空洞块与左视点帧中的块间建立联系。
[0031] 空洞块的视差矢量获取方法如下:
[0032] 根据空洞块左右侧的块的分布,将空洞块分为三种情况:
[0033] a.空洞块左右侧均为外推块;
[0034] b.空洞块左右侧只有一侧为外推块,另一侧为丢失块或未丢失块;
[0035] c.空洞块左右侧无外推块;
[0036] A.对于情况a:首先计算空洞块左右两侧外推块的视差矢量差,设置阈值TDv用于判断左侧块的视差矢量的模与右侧块的视差矢量的模的差值大小,设TDv=16;当视差矢量差小于阈值TDv,则对两个视差矢量取均值作为空洞块的视差矢量;否则,根据空洞块左右两侧块的编码参考模式进行插值,插值过程如下:
[0037] 如果空洞块左右两侧块均为双向编码块或均为单向编码块,则比较对应参考模式下的运动矢量差,并设置阈值TMv用于判断相同参考模式下,左侧块的运动矢量的模与右侧块的运动矢量的模的差值大小,设TMv=16;当运动矢量差小于阈值TMv,则使用空洞块左右两侧块中视差矢量的模较小的视差矢量作为空洞块的视差矢量;如果运动矢量差大于阈值TMv,则进行下一步基于像素值的方式,即比较空洞块左右两侧块的像素值。
[0038] 如果空洞块左右两侧块参考模式不同或运动矢量差大于阈值TMv,比较空洞块左右两侧块的像素值。当空洞块左右两侧块的像素差值小于像素阈值Tpixel,设Tpixel=6,则使用空洞块左右两侧块中视差矢量的模较小的视差矢量作为空洞块的视差矢量;否则,则使用全局视差矢量Dvglobal作为当前空洞块的视差矢量;
[0039] B.对于情况b:在空洞块的非外推块这一侧的上方或下方寻找外推块;如果存在外推块,则使用非外推块侧上方或下方所找到的外推块和空洞块另一侧的外推块按照情况a进行处理;如果空洞块的非外推块侧的上下方均不存在外推块,则使用全局视差矢量Dvglobal作为空洞块的视差矢量;
[0040] C.对于情况c:在空洞块的左右两侧的上方或下方寻找外推块,如果空洞块的左右两侧的上方或下方均存在外推块,则按照情况a进行处理;
[0041] 如果空洞块的左右两侧只有一侧在上方或下方寻找的到外推块,则使用此块的视差矢量作为空洞块的视差矢量;
[0042] 如果空洞块的左右两侧的上方或下方均不存在外推块,则使用全局视差矢量Dvglobal作为空洞块的视差矢量。
[0043] 空洞块获取到对应的视差矢量后,右视点出错帧中的丢失块均能在出错帧的对应左视点帧中找到对应的匹配块,对丢失块进行错误隐藏,具体过程如下:
[0044] 首先根据丢失块的视差矢量找到其位于左视点帧中的匹配块,隐藏丢失块的方式根据匹配块的不同分为两种方式:右视点运动补偿和匹配块像素值拷贝;如果匹配块为帧间编码块,则使用右视点运动补偿方式来隐藏丢失块,具体方法是:首先拷贝匹配块的运动预测信息至丢失块,匹配块的运动预测信息包括参考帧索引和运动矢量信息,运动预测信息拷贝至丢失块后,丢失块首先根据匹配块的参考帧索引定位到右视点中参考帧所处的位置,丢失块再根据所拷贝的运动矢量信息,找到丢失块在右视点参考帧中所对应的最佳参考块的位置,寻找最佳匹配块的方法为: (x′,y′)为最佳参考块在右视点参考帧中的左上角坐标位置,(x0″,y0″)为丢失块在出错帧中的左上角坐标位置,MVx和MVy分别为丢失块拷贝的运动矢量的水平分量与垂直分量;在找到最佳参考块的位置后,将最佳参考块的像素值拷贝至丢失块中,最佳参考块的像素值拷贝方式如下:
[0045] Pixellost(x0″+i,y0″+j)=Pixelref(x′+i,y′+j),i,j=0...15;
[0046] Pixellost为丢失块中某点的像素值,Pixelref为最佳参考块中某点的像素值;最佳参考块的像素值拷贝完成后,完成对丢失块的右视点运动补偿。
[0047] 如果匹配块为帧内编码块,则使用匹配块像素值拷贝来隐藏丢失块;首先根据丢失块的视差矢量,找到丢失块位于左视点帧中的匹配块位置,在找到匹配块位置后,将匹配块的像素值拷贝至丢失块中,匹配块的像素值拷贝方式如下:
[0048] Pixellost(x0″+i,y0″+j)=Pixelmatch(x″+i,y″+j),i,j=0...15;
[0049] Pixelmatch为匹配块中某点的像素值,(x″,y″)为匹配块在出错帧左视点帧中的左上角坐标位置;像素值拷贝完成后,即完成对丢失块的匹配块像素值拷贝。
[0050] 本发明方法针对立体视频中右视点的B帧丢包问题提出了一种基于视差矢量外推的错误隐藏方法。本算法由四部分构成:在邻视点帧中建立视差矢量场、视差矢量外推、空洞块视差矢量获取、隐藏丢失块。其中,在邻视点帧中建立视差矢量场的过程中,考虑了邻视点帧中块的参考模式不同的问题,对于帧间编码块与帧内编码块,结合了空域信息和时域信息对不同参考模式下的块进行了不同的处理。在视差矢量外推的过程中,利用了立体视频的拍摄特性,解决了传统的运动矢量外推算法在HBP编码结构下适用性差的问题。在空洞块运动矢量获取的过程中,根据空洞块的分布情况分为了三种模式进行处理,相比于传统的运动矢量外推算法中对空洞块仅仅使用零矢量拷贝的方式相比,本算法中的空洞块视差矢量获取的过程结合了视差矢量,运动矢量和像素值三种信息,处理方式更为精细。在隐藏丢失块的过程中,对帧间编码块与帧内编码块提出了两种不同的隐藏方式,与传统的运动矢量外推算法中仅仅使用拷贝的方式相比,所提算法在边界上的处理更为连续平滑。

实施方案

[0060] 结合以下具体实施例和附图,对本发明进一步的详细说明。
[0061] 如图1所示,本发明方法首先对立体视频右视点出错帧的同时刻的邻(左)视点帧建立视差矢量场。根据左视点帧中块的类型不同,视差矢量的估计有两种情况。对于帧间编码块,根据帧中的运动预测信息在参考帧中找到帧间编码块对应的匹配块,并根据运动参考块和搜索帧中的像素信息估计视差矢量。对于帧内编码块,根据周边相邻的帧间编码块的像素信息,计算像素信息最为相近的帧间编码块的视差矢量作为当前帧内编码块的视差矢量,其中块的大小为16x16像素。
[0062] 下面结合图2对建立视差矢量场的流程和具体过程进行进一步说明。
[0063] 对出错帧对应左视点帧中的各个16x16大小的编码块建立视差矢量场的具体步骤是:
[0064] 假设在右视点中F(1,n)中出现了丢包,F(0,n)为出错帧的邻视点帧,F(0,n-k)和F(0,n+k)为邻视点帧的前向参考帧和后向参考帧,F(1,n-k)为邻视点帧的前向参考帧所对应的前向搜索帧,F(1,n+k)为邻视点帧的后向参考帧所对应的后向搜索帧。由于F(0,n)中有帧间编码块与帧内编码块两种类型的块,因此先处理完帧间编码块后再对帧内编码块进行处理。
[0065] (1)统计出错帧中未丢失的视点间预测块,出错帧的前向、后向参考帧中的视点间预测块的数目,统计这些视点间预测块的视差矢量的模的最大值Xmax和全局视差矢量Dvglobal。
[0066]
[0067] num为出错帧中未丢失的视点间预测块和出错帧的前向、后向参考帧中的视点间预测块的个数之和,Dvk(k=1,2,…,num)表示出错帧中未丢失的各个视点间预测块以及出错帧的前向、后向参考帧中各视点间预测块的视差矢量。
[0068] (2)判断出错帧对应左视点帧中的块是否为帧间编码块:在左视点帧中,根据解码块的编码信息判断当前块是否属于帧间编码块。如果当前块属于帧间编码块,则对帧间编码块进行视差矢量估计;如果当前块属于帧内编码块,则等到处理完帧间编码块后再对帧内编码块进行视差矢量估计。
[0069] (3)处理出错帧对应左视点帧中的帧间编码块:根据左视点帧中的帧间编码块的编码信息,可以将帧间编码块分为两类:单向参考类型的帧间编码块(单向编码块)与双向参考类型的帧间编码块(双向编码块)。单向编码块只参考前向参考帧或者后向参考帧中的一种,而双向编码块则会同时参考前向参考帧与后向参考帧。对于两种不同类型的帧间编码块,处理方式也不同。对于单向编码块,首先根据当前块的运动矢量大小,找到当前块在参考帧(前向参考帧或者后向参考帧)中的参考块,并在右视点中找到与参考帧所属帧属于同一时刻的帧,称之为搜索帧。在搜索帧中找到与参考块的坐标相同的位置,我们称之为参考块在搜索帧中的绝对位置,以参考块在搜索帧中的绝对位置为起点,在它的水平方向上搜索与参考块的像素值最接近的块,称之为最佳搜索块,其搜索范围为(0,Xmax)。将最佳搜索块所处位置与参考块绝对位置二者之间的距离作为左视点帧所求的16x16单向编码块的视差矢量,即:dvx为估计得到的最佳视差矢量,Pixelview0为参考帧在帧中某点的像素值,Pixelview1为搜索帧在帧中某点的像素值。(x0,y0)为参考块左上角像素点的坐标位置。
[0070] 对于双向编码块:首先根据帧间编码块的运动信息,分别找到帧间编码块在前向和后向参考帧中的前向参考块和后向参考块。对于前向参考块,首先在右视点中找到与帧间编码块的前向参考帧属于同一时刻的帧,称之为前向搜索帧;在前向搜索帧中找到前向参考块的绝对位置,以绝对位置为起点,在绝对位置的水平方向上搜索与前向参考块像素值最接近的块,称之为前向最佳搜索块,搜索范围与搜索方式与处理单向参考类型的帧间匹配块一致,记录前向最佳搜索块所处位置和绝对位置二者之间的距离,这个距离为双向编码块在前向预测方向上的最佳视差矢量,记为dvxpre。
[0071] 对于后向匹配块,首先在右视点中找到与帧间编码块的后向参考帧属于同一时刻的帧,称之为后向搜索帧;在后向搜索帧中找到后向参考块的绝对位置,以绝对位置为起点,在绝对位置的水平方向上搜索与后向参考块像素值最接近的块,称之为后向最佳搜索块,搜索范围与搜索方式与处理单向参考类型的帧间匹配块一致,记录后向最佳搜索块所处位置和绝对位置二者之间的距离,这个距离为双向编码块在后向方向上的最佳视差矢量,即dvxnext。对记录下来的两个方向上的最佳视差矢量,dvxpre和dvxnext进行加权平均,加权平均后的矢量就是我们所求的双向编码块的最佳估计视差矢量, dvx为估计得到的最佳视差矢量。
[0072] (4)处理右视点出错帧的对应左视点帧中的帧内编码块:首先在帧内编码块的相邻块中搜索与帧内编码块像素值相差最小的块;如果此块与帧内编码块的像素值相差小于阈值Tpixel,则使用此块的视差矢量作为帧内编码块的视差矢量;反之如果此块与帧内编码块的像素值相差大于阈值Tpixel,则使用全局视差矢量Dvglobal作为帧内编码块的视差矢量。Tpixel为像素阈值,用于判断帧内编码块与其相邻的帧间编码块的平均像素差是否满足要求,我们设置Tpixel=6。
[0073] 在视差矢量场建立后,根据所得到的各编码块的视差矢量场信息,在出错帧的对应左视点帧和右视点出错帧之间进行视差矢量外推。结合图3,对视差矢量外推的过程进行进一步描述。
[0074] 视差矢量外推的具体步骤如下:
[0075] 图3中黑色块为丢失块,剖面线块为外推块,箭头为视差矢量场中的视差矢量,左视点帧中的块根据其计算得到的视差矢量,结合自身的块坐标,计算得出外推至出错帧中的外推块位置,再外推至对应位置。选择最佳外推块的方式以面积为判断标准。
[0076] ①.遍历出错帧的对应置:
[0077] (x,y)为外推至出错帧中的左上角坐标位置,x0′与y0′为外推块在左视点帧中的左上角坐标位置,DVx与DVy分别为外推块的视差矢量的水平分量与垂直分量。
[0078] ②统计左视点当前块外推至丢失块位置后,外推块与丢失块所占区域的重叠面积。
[0079] ③选取重叠面积最大的外推块作为该丢失块的匹配块。
[0080] 完成矢量外推后,出错帧中的大部分丢失块均有外推块与其重叠,但有部分块因在估计视差矢量时不够精确,将没有外推块与其重叠,此时要对这些空洞块进行视差矢量获取。结合图4,对空洞块的分类进行说明。
[0081] 空洞块的视差矢量获取方法如下:
[0082] 根据空洞块左右侧的块的分布,将空洞块分为三种情况:
[0083] a.空洞块左右侧均为外推块;
[0084] b.空洞块左右侧只有一侧为外推块,另一侧为丢失块或未丢失块;
[0085] c.空洞块左右侧无外推块;
[0086] A.对于情况a:首先计算空洞块左右两侧外推块的视差矢量差,设置阈值TDv用于判断左侧块的视差矢量的模与右侧块的视差矢量的模的差值大小,设TDv=16;当视差矢量差小于阈值TDv,则对两个视差矢量取均值作为空洞块的视差矢量;否则,根据空洞块左右两侧块的编码参考模式进行插值,插值过程如下:
[0087] 如果空洞块左右两侧块均为双向编码块或均为单向编码块,则比较对应参考模式下的运动矢量差,并设置阈值TMv用于判断相同参考模式下,左侧块的运动矢量的模与右侧块的运动矢量的模的差值大小,设TMv=16;当运动矢量差小于阈值TMv,则使用空洞块左右两侧块中视差矢量的模较小的视差矢量作为空洞块的视差矢量;如果运动矢量差大于阈值TMv,则进行下一步基于像素值的方式,即比较空洞块左右两侧块的像素值。
[0088] 如果空洞块左右两侧块参考模式不同或运动矢量差大于阈值TMv,比较空洞块左右两侧块的像素值。当空洞块左右两侧块的像素差值小于阈值Tpixel,设Tpixel=6,则使用空洞块左右两侧块中视差矢量的模较小的视差矢量作为空洞块的视差矢量;否则,则使用全局视差矢量Dvglobal作为当前空洞块的视差矢量;
[0089] B.对于情况b:在空洞块的非外推块这一侧的上方或下方寻找外推块;如果存在外推块,则使用非外推块侧上方或下方所找到的外推块和空洞块另一侧的外推块按照情况a进行处理;如果空洞块的非外推块侧的上下方均不存在外推块,则使用全局视差矢量Dvglobal作为空洞块的视差矢量;
[0090] C.对于情况c:在空洞块的左右两侧的上方或下方寻找外推块,如果空洞块的左右两侧的上方或下方均存在外推块,则按照情况a进行处理;
[0091] 如果空洞块的左右两侧只有一侧在上方或下方寻找的到外推块,则使用此块的视差矢量作为空洞块的视差矢量;
[0092] 如果空洞块的左右两侧的上方或下方均不存在外推块,则使用全局视差矢量Dvglobal作为空洞块的视差矢量。
[0093] 空洞块获取到对应的视差矢量后,右视点出错帧中的丢失块均能在出错帧的对应左视点帧中找到对应的匹配块,对丢失块进行错误隐藏,具体过程如下:
[0094] 首先根据丢失块的视差矢量找到其位于左视点帧中的匹配块,隐藏丢失块的方式根据匹配块的不同分为两种方式:右视点运动补偿和匹配块像素值拷贝;如果匹配块为帧间编码块,则使用右视点运动补偿方式来隐藏丢失块,具体方法是:首先拷贝匹配块的运动预测信息至丢失块,匹配块的运动预测信息包括参考帧索引和运动矢量信息,运动预测信息拷贝至丢失块后,丢失块首先根据匹配块的参考帧索引定位到右视点中参考帧所处的位置,丢失块再根据所拷贝的运动矢量信息,找到丢失块在右视点参考帧中所对应的最佳参考块的位置,寻找最佳匹配块的方法为: (x′,y′)为最佳参考块在右视点参考帧中的左上角坐标位置,(x0″,y0″)为丢失块在出错帧中的左上角坐标位置,MVx和MVy分别为丢失块拷贝的运动矢量的水平分量与垂直分量;在找到最佳参考块的位置后,将最佳参考块的像素值拷贝至丢失块中,最佳参考块的像素值拷贝方式如下:
[0095] Pixellost(x0″+i,y0″+j)=Pixelref(x′+i,y′+j),i,j=0...15;
[0096] Pixellost为丢失块中某点的像素值,Pixelref为最佳参考块中某点的像素值;最佳参考块的像素值拷贝完成后,完成对丢失块的右视点运动补偿。
[0097] 如果匹配块为帧内编码块,则使用匹配块像素值拷贝来隐藏丢失块;首先根据丢失块的视差矢量,找到丢失块位于左视点帧中的匹配块位置,在找到匹配块位置后,将匹配块的像素值拷贝至丢失块中,匹配块的像素值拷贝方式如下:
[0098] Pixellost(x0″+i,y0″+j)=Pixelmatch(x″+i,y″+j),i,j=0...15;
[0099] Pixelmatch为匹配块中某点的像素值,(x″,y″)为匹配块在出错帧左视点帧中的左上角坐标位置;像素值拷贝完成后,即完成对丢失块的匹配块像素值拷贝。
[0100] 视频的第5帧原始帧如图5-1所示,考虑到丢包方式对本发明的影响,实例中选取了两种丢包方式情况:偶数行丢包方式(如图5-2)、棋盘式丢包方式(如图5-4)。对这类情况使用本发明的错误隐藏方法进行恢复,恢复的结果如图5-3和图5-5。从实验结果验证了本发明错误隐藏算法的适用性。
[0101] 本发明的保护内容不局限于以上实例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。

附图说明

[0051] 图1是本发明方法的流程图;
[0052] 图2是本发明利用视点间和时域上的关系估计视差矢量场的示意图;
[0053] 图3是本发明在视点间进行视差矢量外推的示意图;
[0054] 图4是本发明对空洞块的分布分类示意图;
[0055] 图5-1是实施例中视频的第5帧原始帧;
[0056] 图5-2是实施例中视频的第5帧偶数行丢包的丢包图;
[0057] 图5-3是实施例中视频的第5帧偶数行丢包的丢包恢复图;
[0058] 图5-4是实施例中视频的第5帧棋盘式丢包图;
[0059] 图5-5是实施例中视频的第5帧棋盘式丢包恢复图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号