首页 > 专利 > 杭州电子科技大学 > 一种基于显著性的立体三维视频错误隐藏方法专利详情

一种基于显著性的立体三维视频错误隐藏方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2020-06-10
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2020-10-30
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2022-09-30
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2040-06-10
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN202010523987.0 申请日 2020-06-10
公开/公告号 CN111770346B 公开/公告日 2022-09-30
授权日 2022-09-30 预估到期日 2040-06-10
申请年 2020年 公开/公告年 2022年
缴费截止日
分类号 H04N19/593H04N19/513H04N19/176H04N19/182H04N19/96H04N19/895 主分类号 H04N19/593
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 0
权利要求数量 1 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、2016.08.25陈超等.基于图像显著性的立体视频宏块重要性模型《.计算机工程》.2016,(第01期),Mingliang Zhou 等.Spatial ErrorConcealment by Jointing Gauss Bayes Modeland SVD for High Efficiency Video Coding. 《International Journal of PatterRecognition and Artificial Intelligence》.2019,;
引用专利 WO2016131270A 被引证专利
专利权维持 2 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 崔金鹏、周洋、梁文青、张博文、殷海兵、陆宇、黄晓峰 第一发明人 崔金鹏
地址 浙江省杭州市下沙高教园区2号大街 邮编 310018
申请人数量 1 发明人数量 7
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州君度专利代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
杨舟涛
摘要
本发明公开了一种基于显著性的立体三维视频错误隐藏方法。传统的错误隐藏技术在视频流在传输过程中发生整帧丢失时恢复效果差。本发明方法首先获取丢失帧的运动显著性图、深度显著性图,深度边缘显著性图,然后融合运动显著性图和深度显著性图并块化,再与深度边缘显著性图合并得到最终显著性图,并进行显著等级划分。对高显著等级的区域采用视点间搜索像素填补和候选运动矢量补偿恢复,对中显著等级的区域采用时域搜索像素填补和视点间搜索像素填补,对低显著等级区域采用时域帧像素拷贝填补。本发明方法除了结合3D—HEVC特性提出新的错误隐藏方法,考虑了视频画面的显著性,对立体视频在网络传输中发生的整帧丢失现象有很好的恢复效果。
  • 摘要附图
    一种基于显著性的立体三维视频错误隐藏方法
  • 说明书附图:图1
    一种基于显著性的立体三维视频错误隐藏方法
  • 说明书附图:图2
    一种基于显著性的立体三维视频错误隐藏方法
  • 说明书附图:图3
    一种基于显著性的立体三维视频错误隐藏方法
  • 说明书附图:图4
    一种基于显著性的立体三维视频错误隐藏方法
  • 说明书附图:图5
    一种基于显著性的立体三维视频错误隐藏方法
  • 说明书附图:图6
    一种基于显著性的立体三维视频错误隐藏方法
  • 说明书附图:图7
    一种基于显著性的立体三维视频错误隐藏方法
  • 说明书附图:图8
    一种基于显著性的立体三维视频错误隐藏方法
  • 说明书附图:图9
    一种基于显著性的立体三维视频错误隐藏方法
  • 说明书附图:图10
    一种基于显著性的立体三维视频错误隐藏方法
  • 说明书附图:图11
    一种基于显著性的立体三维视频错误隐藏方法
  • 说明书附图:图12
    一种基于显著性的立体三维视频错误隐藏方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2022-09-30 授权
2 2020-10-30 实质审查的生效 IPC(主分类): H04N 19/593 专利申请号: 202010523987.0 申请日: 2020.06.10
3 2020-10-13 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种基于显著性的立体三维视频错误隐藏方法,其特征在于,该方法具体是:
步骤(1).采用高效率视频编码HEVC默认的编码树单元CTU大小64×64,获得丢失帧中各区域的显著等级,具体如下:
(1‑1).对一个丢失块分别获取前向参考帧中同位置的像素块、后向参考帧中同位置的像素块,以及视点间当前参考帧中同位置的像素块;计算得到像素点(x0+i,y0+j)当前时刻的运动显著性图Sa的像素值Sa(x0+i,y0+j,t);其中,视点间的参考视点为当前视点的水平相邻视点;所述的丢失块是指彩色图丢失,其对应深度图Sc并未丢失;
Sa(x0+i,y0+j,t)=||pn(x0+i,y0+j,t‑1)‑pn‑1(x0+i,y0+j,t)|‑|pn(x0+i,y0+j,t+1)‑pn‑1(x0+i,y0+j,t)||;
其中,(x0,y0)是丢失块的左上角的像素坐标,(i,j)是相对于左上角像素坐标的偏移值,i,j∈Z,且i,j∈[0,63],Z表示整数;t表示当前帧所对应的时刻,t‑1、t+1分别表示对应当前帧的前向参考帧和后向参考帧所对应的时刻;n、n‑1分别表示当前视点和视点间参考视点;pn(x,y,t‑1)表示当前视点前向参考帧中丢失块对应(x,y)位置的像素值,pn(x,y,t+
1)表示当前视点后向参考帧中丢失块对应(x,y)位置的像素值,pn‑1(x,y,t)表示视点间参考视点当前参考帧中丢失块对应(x,y)位置的像素值;
(1‑2).对彩色图丢失块所对应深度图的同位置像素块进行预处理,得到预处理后深度图Sb中像素点(x0+i,y0+j)的像素值Sb(x0+i,y0+j):
其中,d(x0+i,y0+j)表示当前视点当前深度帧中对应(x0+i,y0+j)位置的像素值,dy0+j表示当前视点当前深度帧中第y0+j行像素点的平均像素值;
(1‑3).采用区域对比度提取得到深度显著性图Sd中像素点(x0+i,y0+j)的像素值Sd(x0+i,y0+j):
其中, k∈[0,255],C(k)表
示当前视点当前深度帧中64×64块内像素值为k的像素点的平均出现频率,m表示该64×64块内像素值为k的像素点的个数;
(1‑4).计算深度图Sc中像素点(x0+i,y0+j)的x方向梯度幅值Gx(x0+i,y0+j)和y方向梯度幅值Gy(x0+i,y0+j),得到(x0+i,y0+j)像素点的边缘梯度幅值G(x0+i,y0+j):
G(x0+i,y0+j)=|Gx(x0+i,y0+j)|+|Gy(x0+i,y0+j)|;
其中,d(x,y)表示深度帧中(x,y)位置像素点的像素值;
将边缘梯度幅值大于120的深度像素点所对应的像素值设为255,其余深度像素点的像素值全部设为0,得到深度边缘显著性图Se中像素点(x0+i,y0+j)的像素值Se(x0+i,y0+j):
(1‑5).采用乘法融合的方法计算融合后的显著性值:
首先将运动显著性图和深度显著性图融合,得到运动深度融合显著性图Sad中像素点(x0+i,y0+j)的像素值Sad(x0+i,y0+j):
然后将运动深度融合显著性图Sad进行块化处理,得到块化处理后运动深度融合显著性图Sad′中像素点(x0+i,y0+j)的像素值Sad′(x0+i,y0+j):
s.t.1:对于Sad中每个编码树单元CTU尺寸为64×64,存在超过6个像素值为128的像素点;
将深度边缘显著性图Se块化处理,得到块化处理后深度边缘显著性图Se′中像素点(x0+i,y0+j)的像素值Se′(x0+i,y0+j):
s.t.2:对于Se中每个编码树单元CTU,存在超过10个像素值为255的像素点;
丢失块的最终显著性图S中像素点(x0+i,y0+j)的像素值S(x0+i,y0+j)由Se′(x0+i,y0+j)和Sad′(x0+i,y0+j)合并而成:
&&表示并且;
S中所有像素值为255的像素点构成的区域的显著等级设为高,有像素值为0的像素点构成的区域的显著等级设为低,有像素值为128的像素点构成的区域的显著等级设为中,得到该丢失块各区域的显著等级;
步骤(2).不同显著等级的区域采用不同的恢复方式;
(2‑1).对于显著等级为低的区域,采用时域拷贝的方法恢复,即用前向参考帧或者后向参考帧的同位置像素直接填补;
(2‑2).对于显著等级为中的区域,采用时域搜索像素填补或视点间搜索像素填补:
将当前64×64的丢失块划分为32×32的宏块pcCU,假设pcCU是线性运动的,在搜索范围为[‑16,16]内搜索前向帧与后向帧的对应块;
对搜索的前向块pcCU_forward和后向块pcCU_back做绝对差值Diff:
其中,(i',j')是相对于左上角像素坐标的偏移值,i′,j′∈Z,且i′,j′∈[0,31];xs和ys分别为x方向和y方向的搜索值,xs,ys∈Z,xs,ys∈[‑16,16];pcCU_back(x0+i'‑xs,y0+j'‑ys)为搜索的后向块像素,即后向参考帧中对应(x0+i'‑xs,y0+j'‑ys)位置像素点的像素值;pcCU_forward(x0+i'+xs,y0+j'+ys)为搜索的前向块像素;即前向参考帧中对应(x0+i'+xs,y0+j'+ys)位置像素点的像素值;
将最小绝对值差D所对应的xs和ys分别记为xs0和ys0,D=min{Diff(xs,ys)}:
若D<2.5,采用时域搜索像素填补,即采用pcCU_forward与pcCU_back加权平均来恢复pcCU:
若D≥2.5,采用视点间搜索像素填补,具体如下:
设定视点搜索值g_f和g_b,g_f,g_b∈[‑64,64],分别计算pcCU_forward与相邻视点前向帧块pcCU_forward_view的绝对差值GF、pcCU_back与相邻视点后向帧pcCU_back_view的绝对差值GB:
得到最小GF值Gf和最小GB值Gb,Gf=min{GF(g_f)},Gb=min{GB(g_b)};
其中,pcCU_forward_view(x0+i'+xs0+g_f,y0+j'+ys0)为搜索的相邻视点前向块像素,即相邻视点前向帧中(x0+i'+xs0+g_f,y0+j'+ys0)位置像素点的像素;
pcCU_back_view(x0+i'‑xs0+g_b,y0+j'‑ys0)为搜索的相邻视点后向块像素,即相邻视点后向帧中(x0+i'‑xs0+g_b,y0+j'‑ys0)位置像素点的像素;
pcCU_view(x,y)为相邻视点当前帧中(x,y)位置像素点的像素;
计算出pcCU对应在相邻视点中的块,并用该块恢复pcCU:
pcCU(x0+i',y0+j')=pcCU_view(X0_view+i',y0+j'),X0_view=x0+g_f0;
g_f0为Gf所对应的视点搜索值g_f,g_b0为Gb所对应的视点搜索值g_b;
(2‑3).对于显著等级为高的区域,按照如下方式处理:
若Gf和Gb均小于3,采用所述的视点间搜索像素填补方法进行恢复:
pcCU(x0+i',y0+j')=pcCU_view(X0_view+i',y0+j'),X0_view=x0+g_f0;
若Gf和Gb至少一个大于等于3,通过估计得到相邻视点当前帧中与pcCU相似的像素块的左上角像素点,构建运动矢量集,并采用基于HEVC的MV运动补偿方法恢复:
x0_forward_view=x0+g_f0+xs0;
x0_back_view=x0‑xs0+g_b0;
其中x0_forward_view为在相邻视点前向帧中搜索到的像素块的左上角像素点的x坐标,x0_back_view为在相邻视点后向帧中搜索到的像素块的左上角的像素点的x坐标,x0_view为在视点间块不相似时,通过估计得到的相邻视点当前帧中与pcCU相似的像素块的左上角像素点的x坐标;
将(x0_view,y0)作为相邻视点当前帧中32×32的M宏块的左上角像素坐标,而M宏块必隶属于相邻视点当前帧中64×64的N宏块,设N宏块的左上角像素坐标为(xn,yn),y0=yn或y0=yn+32;
获得N宏块的运动矢量MV构建候选运动矢量集,运动矢量MV从HEVC中最小处理单元4×
4获得,从编码中直接获取,标记为MV1,MV2,…,MV16,分别为N宏块中左上角16个像素坐标的
4×4像素块运动矢量;
对于y0=yn情况,对应的像素坐标分别为(xn,yn+12)、(xn+12,yn+12)、(xn+16,yn+12)、(xn+28,yn+12)、(xn+32,yn+12)、(xn+44,yn+12)、(xn+48,yn+12)、(xn+60,yn+12)、(xn,yn+28)、(xn+12,yn+28)、(xn+16,yn+28)、(xn+28,yn+28)、(xn+32,yn+28)、(xn+44,yn+28)、(xn+48,yn+
28)、(xn+60,yn+28);
对于y0=yn+32情况,对应的像素坐标分别为(xn,yn+44)、(xn+12,yn+44)、(xn+16,yn+
44)、(xn+28,yn+44)、(xn+32,yn+44)、(xn+44,yn+44)、(xn+48,yn+44)、(xn+60,yn+44)、(xn,yn+
60)、(xn+12,yn+60)、(xn+16,yn+60)、(xn+28,yn+60)、(xn+32,yn+60)、(xn+44,yn+60)、(xn+48,yn+60)、(xn+60,yn+60);
将M宏块继续分为4个16×16的块,分别为左上块Ma、右上块Mb、左下块Mc、右下块Md;对各块通过运动矢量补偿进行恢复,具体如下:
①.如0≤x0_view‑xn<16:左上块Ma选用MV2补偿恢复,右上块Mb选用MV5补偿恢复,左下块Mc选用MV10补偿恢复,右下块Md选用MV13补偿恢复;
②.如16≤x0_view‑xn<32:左上块Ma选用MV4补偿恢复,右上块Mb选用MV7补偿恢复,左下块Mc选用MV12补偿恢复,右下块Md选用MV15补偿恢复;
③.如32≤x0_view‑xn<48:左上块Ma选用MV6补偿恢复,右上块Mb选用MV1补偿恢复,左下块Mc选用MV14补偿恢复,右下块Md选用MV9补偿恢复;
④.如48≤x0_view‑xn<64:左上块Ma选用MV8补偿恢复,右上块Mb选用MV3补偿恢复,左下块Mc选用MV16补偿恢复,右下块Md选用MV11补偿恢复;
结合四种情况得到恢复的M宏块,用M宏块覆盖pcCU完成恢复。
说明书

技术领域

[0001] 本发明属于计算机领域,具体是视频编解码技术领域,涉及一种基于显著性的立体三维视频错误隐藏方法。

背景技术

[0002] 错误隐藏是针对视频流传输丢包,既不用像FEC(前向纠错)那样消耗额外带宽,也不用像ARQ(自动重传)那样引入额外的延时,利用帧间和帧内的冗余性,使用已正确接受的信息来隐藏丢失帧中的错误区域。视频流在传输过程中容易因网络拥塞或者带宽受限等问题发生丢包现象,从而降低当前帧及后续帧的解码质量,使观众的视觉体验变差。为解决这一问题,在解码端应用错误隐藏技术来修复差错帧。传统的错误隐藏技术主要面向H.264标准的二维编码视频,对于立体视频的修复效果较差,因此不能直接应用于新标准HVEC及其扩展的多视点加深度框架3D‑HEVC。

发明内容

[0003] 本发明的目的是针对视频流在传输过程中发生整帧丢失时,传统的错误隐藏技术恢复效果较差的问题,提供一种基于显著性的立体三维视频错误隐藏方法,本发明方法不仅提出了新的错误隐藏方法,而且考虑了人眼感知特性显著性的提取。
[0004] 本发明方法基于3D‑HEVC框架,利用三种显著性图确定显著等级,根据显著等级的不同采用不同的恢复方式,对显著等级为高的区域使用MV补偿以及搜索视点间前后帧相似块的方法,对显著等级为中的区域使用搜索前后帧和视点帧相似块的方法,对显著等级为低的区域使用搜索前后帧相似块的方法来恢复。
[0005] 本发明方法具体是:
[0006] 步骤(1).采用高效率视频编码HEVC默认的编码树单元CTU大小64×64,获得丢失帧中各区域的显著等级,具体如下:
[0007] (1‑1).对一个丢失块分别获取前向参考帧中同位置的像素块、后向参考帧中同位置的像素块,以及视点间当前参考帧中同位置的像素块;计算得到像素点(x0+i,y0+j)当前时刻的运动显著性图Sa的像素值Sa(x0+i,y0+j,t);其中,视点间的参考视点为当前视点的水平相邻视点;所述的丢失块是指彩色图丢失,其对应深度图Sc并未丢失;
[0008] Sa(x0+i,y0+j,t)=||pn(x0+i,y0+j,t‑1)‑pn‑1(x0+i,y0+j,t)|‑|pn(x0+i,y0+j,t+1)‑pn‑1(x0+i,y0+j,t)||;
[0009] 其中,(x0,y0)是丢失块的左上角的像素坐标,(i,j)是相对于左上角像素坐标的偏移值,i,j∈Z,且i,j∈[0,63],Z表示整数;t表示当前帧所对应的时刻,t‑1、t+1分别表示对应当前帧的前向参考帧和后向参考帧所对应的时刻;n、n‑1分别表示当前视点和视点间参考视点;pn(x,y,t‑1)表示当前视点前向参考帧中丢失块对应(x,y)位置的像素值,pn(x,y,t+1)表示当前视点后向参考帧中丢失块对应(x,y)位置的像素值,pn‑1(x,y,t)表示视点间参考视点当前参考帧中丢失块对应(x,y)位置的像素值。
[0010] (1‑2).对彩色图丢失块所对应深度图的同位置像素块进行预处理,得到预处理后深度图Sb中像素点(x0+i,y0+j)的像素值Sb(x0+i,y0+j):
[0011]
[0012] 其中,d(x0+i,y0+j)表示当前视点当前深度帧中对应(x0+i,y0+j)位置的像素值,表示当前视点当前深度帧中第y0+j行像素点的平均像素值。
[0013] (1‑3).采用区域对比度提取得到深度显著性图Sd中像素点(x0+i,y0+j)的像素值Sd(x0+i,y0+j):
[0014] 其中, k∈[0,255],C(k)表示当前视点当前深度帧中该64×64块内像素值为k的像素点的平均出现频率,m表示该64×64块内像素值为k的像素点的个数。
[0015] (1‑4).计算深度图Sc中像素点(x0+i,y0+j)的x方向梯度幅值Gx(x0+i,y0+j)和y方向梯度幅值Gy(x0+i,y0+j),得到(x0+i,y0+j)像素点的边缘梯度幅值G(x0+i,y0+j):
[0016]
[0017]
[0018] G(x0+i,y0+j)=|Gx(x0+i,y0+j)|+|Gy(x0+i,y0+j)|;
[0019] 其中,d(x,y)表示深度帧中(x,y)位置像素点的像素值。
[0020] 将边缘梯度幅值大于120的深度像素点所对应的像素值设为255,其余深度像素点的像素值全部设为0,得到深度边缘显著性图Se中像素点(x0+i,y0+j)的像素值Se(x0+i,y0+j):
[0021]
[0022] (1‑5).采用乘法融合的方法计算融合后的显著性值:
[0023] 首先将运动显著性图和深度显著性图融合,得到运动深度融合显著性图Sad中像素点(x0+i,y0+j)的像素值Sad(x0+i,y0+j)
[0024]
[0025] 然后将运动深度融合显著性图Sad进行块化处理,得到块化处理后运动深度融合显著性图Sad′中像素点(x0+i,y0+j)的像素值Sad′(x0+i,y0+j):
[0026] s.t.1:对于Sad中每个编码树单元CTU尺寸为64×64,存在超过6个像素值为128的像素点;
[0027] 将深度边缘显著性图Se块化处理,得到块化处理后深度边缘显著性图Se′中像素点(x0+i,y0+j)的像素值Se′(x0+i,y0+j):
[0028] s.t.2:对于Se中每个编码树单元CTU,存在超过10个像素值为255的像素点。
[0029] 丢失块的最终显著性图S中像素点(x0+i,y0+j)的像素值S(x0+i,y0+j)由Se′(x0+i,y0+j)和Sad′(x0+i,y0+j)合并而成:
[0030] &&表示并且。
[0031] S中所有像素值为255的像素点构成的区域的显著等级设为高,有像素值为0的像素点构成的区域的显著等级设为低,有像素值为128的像素点构成的区域的显著等级设为中,得到该丢失块各区域的显著等级。
[0032] 步骤(2).不同显著等级的区域采用不同的恢复方式;
[0033] (2‑1).对于显著等级为低的区域,采用时域拷贝的方法恢复,即用前向参考帧或者后向参考帧的同位置像素直接填补。
[0034] (2‑2).对于显著等级为中的区域,采用时域搜索像素填补或视点间搜索像素填补:
[0035] 将当前64×64的丢失块划分为32×32的宏块pcCU,假设pcCU是线性运动的,在搜索范围为[‑16,16]内搜索前向帧与后向帧的对应块。
[0036] 对搜索的前向块pcCU_forward和后向块pcCU_back做绝对差值Diff:
[0037]
[0038] 其中,(i',j')是相对于左上角像素坐标的偏移值,i′,j′∈Z,且i′,j′∈[0,31];xs和ys分别为x方向和y方向的搜索值,xs,ys∈Z,xs,ys∈[‑16,16];pcCU_back(x0+i'‑xs,y0+j'‑ys)为搜索的后向块像素,即后向参考帧中对应(x0+i'‑xs,y0+j'‑ys)位置像素点的像素值;pcCU_forward(x0+i'+xs,y0+j'+ys)为搜索的前向块像素;即前向参考帧中对应(x0+i'+xs,y0+j'+ys)位置像素点的像素值。
[0039] 将最小绝对值差D所对应的xs和ys分别记为xs0和ys0,D=min{Diff(xs,ys)}:
[0040] 若D<2.5,采用时域搜索像素填补,即采用pcCU_forward与pcCU_back加权平均来恢复pcCU:
[0041]
[0042] 若D≥2.5,采用视点间搜索像素填补,具体如下:
[0043] 设定视点搜索值g_f和g_b,g_f,g_b∈[‑64,64],分别计算pcCU_forward与相邻视点前向帧块pcCU_forward_view的绝对差值GF、pcCU_back与相邻视点后向帧pcCU_back_view的绝对差值GB:
[0044]
[0045]
[0046] 得到最小GF值Gf和最小GB值Gb,Gf=min{GF(g_f)},Gb=min{GB(g_b)};
[0047] 其中,pcCU_forward_view(x0+i'+xs0+g_f,y0+j'+ys0)为搜索的相邻视点前向块像素,即相邻视点前向帧中(x0+i'+xs0+g_f,y0+j'+ys0)位置像素点的像素。
[0048] pcCU_back_view(x0+i'‑xs0+g_b,y0+j'‑ys0)为搜索的相邻视点后向块像素,即相邻视点后向帧中(x0+i'‑xs0+g_b,y0+j'‑ys0)位置像素点的像素;
[0049] pcCU_view(x,y)为相邻视点当前帧中(x,y)位置像素点的像素。
[0050] 计算出pcCU对应在相邻视点中的块,并用该块恢复pcCU:
[0051] pcCU(x0+i',y0+j')=pcCU_view(X0_view+i',y0+j'),X0_view=x0+g_f0;
[0052] g_f0为Gf所对应的视点搜索值g_f,g_b0为Gb所对应的视点搜索值g_b。
[0053] (2‑3).对于显著等级为高的区域,按照如下方式处理:
[0054] 若Gf和Gb均小于3,采用所述的视点间搜索像素填补方法进行恢复:
[0055] pcCU(x0+i',y0+j')=pcCU_view(X0_view+i',y0+j'),X0_view=x0+g_f0;
[0056] 若Gf和Gb至少一个大于等于3,通过估计得到相邻视点当前帧中与pcCU相似的像素块的左上角像素点,构建运动矢量集,并采用基于HEVC的MV运动补偿方法恢复:
[0057] x0_forward_view=x0+g_f0+xs0;
[0058] x0_back_view=x0‑xs0+g_b0;
[0059]
[0060] 其中x0_forward_view为在相邻视点前向帧中搜索到的像素块的左上角像素点的x坐标,x0_back_view为在相邻视点后向帧中搜索到的像素块的左上角的像素点的x坐标,x0_view为在视点间块不相似时,通过估计得到的相邻视点当前帧中与pcCU相似的像素块的左上角像素点的x坐标。
[0061] 将(x0_view,y0)作为相邻视点当前帧中32×32的M宏块的左上角像素坐标,而M宏块必隶属于相邻视点当前帧中64×64的N宏块,设N宏块的左上角像素坐标为(xn,yn),y0=yn或y0=yn+32。
[0062] 获得N宏块的运动矢量MV构建候选运动矢量集,运动矢量MV从HEVC中最小处理单元4×4获得,从编码中直接获取,标记为MV1,MV2,…,MV16,分别为N宏块中左上角16个像素坐标的4×4像素块运动矢量;
[0063] 对于y0=yn情况,对应的像素坐标分别为(xn,yn+12)、(xn+12,yn+12)、(xn+16,yn+12)、(xn+28,yn+12)、(xn+32,yn+12)、(xn+44,yn+12)、(xn+48,yn+12)、(xn+60,yn+12)、(xn,yn+
28)、(xn+12,yn+28)、(xn+16,yn+28)、(xn+28,yn+28)、(xn+32,yn+28)、(xn+44,yn+28)、(xn+48,yn+28)、(xn+60,yn+28);
[0064] 对于y0=yn+32情况,对应的像素坐标分别为(xn,yn+44)、(xn+12,yn+44)、(xn+16,yn+44)、(xn+28,yn+44)、(xn+32,yn+44)、(xn+44,yn+44)、(xn+48,yn+44)、(xn+60,yn+44)、(xn,yn+60)、(xn+12,yn+60)、(xn+16,yn+60)、(xn+28,yn+60)、(xn+32,yn+60)、(xn+44,yn+60)、(xn+48,yn+60)、(xn+60,yn+60)。
[0065] 将M宏块继续分为4个16×16的块,分别为左上块Ma、右上块Mb、左下块Mc、右下块Md;对各块通过运动矢量补偿进行恢复,具体如下:
[0066] ①.如0≤x0_view‑xn<16:左上块Ma选用MV2补偿恢复,右上块Mb选用MV5补偿恢复,左下块Mc选用MV10补偿恢复,右下块Md选用MV13补偿恢复;
[0067] ②.如16≤x0_view‑xn<32:左上块Ma选用MV4补偿恢复,右上块Mb选用MV7补偿恢复,左下块Mc选用MV12补偿恢复,右下块Md选用MV15补偿恢复;
[0068] ③.如32≤x0_view‑xn<48:左上块Ma选用MV6补偿恢复,右上块Mb选用MV1补偿恢复,左下块Mc选用MV14补偿恢复,右下块Md选用MV9补偿恢复;
[0069] ④.如48≤x0_view‑xn<64:左上块Ma选用MV8补偿恢复,右上块Mb选用MV3补偿恢复,左下块Mc选用MV16补偿恢复,右下块Md选用MV11补偿恢复;
[0070] 结合四种情况得到恢复的M宏块,用M宏块覆盖pcCU完成恢复。
[0071] 本发明方法方法针对基于3D‑HEVC框架对立体视频在传输过程中发生整帧丢失的情况,利用丢失帧的深度帧以及前后参考帧计算获得三种显著性图,通过融合块化及合并得到最终显著性图,对不同显著等级的区域采用不同的恢复方法,仿真实验表明该方法对立体视频流传输整帧丢失有很好的恢复效果。

实施方案

[0081] 结合以下具体实施例和附图,对本发明进一步的详细说明。
[0082] 如图1,一种基于显著性的立体三维视频错误隐藏方法,具体如下:
[0083] 步骤(1).采用高效率视频编码HEVC默认的编码树单元CTU大小64×64,获得丢失帧中各区域的显著等级,具体如下:
[0084] (1‑1).对一个丢失块分别获取前向参考帧中同位置的像素块、后向参考帧中同位置的像素块,以及视点间当前参考帧中同位置的像素块;如图2,计算得到像素点(x0+i,y0+j)当前时刻的运动显著性图Sa的像素值Sa(x0+i,y0+j,t),Sa(x0+i,y0+j,t)反映视频序列中物体的运动特征;其中,视点间的参考视点为当前视点的水平相邻视点;所述的丢失块是指彩色图丢失,其对应深度图Sc并未丢失;
[0085] Sa(x0+i,y0+j,t)=||pn(x0+i,y0+j,t‑1)‑pn‑1(x0+i,y0+j,t)|‑|pn(x0+i,y0+j,t+1)‑pn‑1(x0+i,y0+j,t)||;其中,(x0,y0)是丢失块的左上角的像素坐标,(i,j)是相对于左上角像素坐标的偏移值,i,j∈Z,且i,j∈[0,63],Z表示整数,t表示当前帧所对应的时刻,t‑
1、t+1分别表示对应当前帧的前向参考帧和后向参考帧所对应的时刻;n、n‑1分别表示当前视点和视点间参考视点;pn(x,y,t‑1)表示当前视点前向参考帧中丢失块对应(x,y)位置的像素值,pn(x,y,t+1)表示当前视点后向参考帧中丢失块对应(x,y)位置的像素值,pn‑1(x,y,t)表示视点间参考视点当前参考帧中丢失块对应(x,y)位置的像素值。
[0086] (1‑2).由于整帧丢失只是彩色图丢失,其对应深度图Sc并未丢失,对彩色图丢失块所对应深度图的同位置像素块进行预处理,得到预处理后深度图Sb中像素点(x0+i,y0+j)的像素值Sb(x0+i,y0+j):
[0087]其中,(x0,y0)是丢失块的左上角的像素坐标,(i,j)是相对于左上角像素坐标的偏移值,i,j∈Z,且i,j∈[0,63];d(x0+i,y0+j)表示当前视点当前深度帧中对应(x0+i,y0+j)位置的像素值, 表示当前视点当前深度帧中第y0+j行像素点的平均像素值。
[0088] (1‑3).如图3,采用区域对比度提取得到深度显著性图Sd中像素点(x0+i,y0+j)的像素值Sd(x0+i,y0+j),Sd(x0+i,y0+j)反映人眼在远近方面上对图像中物体的关注程度,前景区域产生的视觉刺激大,背景区域产生的视觉刺激小:其中, k∈[0,255],C(k)表示当前视点当前深度帧中该64×64块内像素值为k
的像素点的平均出现频率,m表示该64×64块内像素值为k的像素点的个数,例如在该64×
64块内有5个像素点的像素值为3,那么
[0089] (1‑4).人眼更加关注的往往是边缘比较突出的区域,显著性等级高,因而用sobel算子提取深度图中的边缘信息。计算深度图Sc中像素点(x0+i,y0+j)的x方向梯度幅值Gx(x0+i,y0+j)和y方向梯度幅值Gy(x0+i,y0+j),得到(x0+i,y0+j)像素点的边缘梯度幅值G(x0+i,y0+j):
[0090]
[0091]
[0092] G(x0+i,y0+j)=|Gx(x0+i,y0+j)|+|Gy(x0+i,y0+j)|;
[0093] 其中,(x0,y0)是丢失块的左上角的像素坐标,(i,j)是相对于左上角像素坐标的偏移值,i,j∈Z,且i,j∈[0,63];d(x,y)表示深度帧中(x,y)位置像素点的像素值。
[0094] 如图4,将边缘梯度幅值大于120的深度像素点所对应的像素值设为255,其余深度像素点的像素值全部设为0,得到深度边缘显著性图Se中像素点(x0+i,y0+j)的像素值Se(x0+i,y0+j),即对深度图进行如上sobel算子和如下二值化处理,将深度图中的边缘信息提取出来作为深度边缘显著性图:
[0095]
[0096] (1‑5).采用乘法融合的方法,即同一像素点在不同显著性图中的值的乘积作为融合后的显著性值:首先将运动显著性图和深度显著性图融合,得到运动深度融合显著性图Sad中像素点(x0+i,y0+j)的像素值Sad(x0+i,y0+j):
[0097]
[0098] 然后将运动深度融合显著性图Sad进行块化处理,得到块化处理后运动深度融合显著性图Sad′中像素点(x0+i,y0+j)的像素值Sad′(x0+i,y0+j):对于Sad中每个编码树单元CTU尺寸为64×64,如果有超过6个像素值为128的像素点,则该CTU全部像素点的像素值都设为128;
[0099]
[0100] s.t.1:对于Sad中每个编码树单元CTU尺寸为64×64,存在超过6个像素值为128的像素点;
[0101] 将深度边缘显著性图Se块化处理,得到块化处理后深度边缘显著性图Se′中像素点(x0+i,y0+j)的像素值Se′(x0+i,y0+j):对于Se中每个CTU,如果有超过10个像素值为255的像素点,则该CTU全部像素点的像素值都设为255;
[0102]
[0103] s.t.2:对于Se中每个编码树单元CTU,存在超过10个像素值为255的像素点;
[0104] 丢失块的最终显著性图S中像素点(x0+i,y0+j)的像素值S(x0+i,y0+j)由Se′(x0+i,y0+j)和Sad′(x0+i,y0+j)合并而成,如图5:
[0105] &&表示并且;其中,(x0,y0)是丢失块的左上角的像素坐标,(i,j)是相对于左上角像素坐标的偏移值,i,j∈Z,且i,j∈[0,63];
[0106] S中所有像素值为255的像素点构成的区域的显著等级设为高,有像素值为0的像素点构成的区域的显著等级设为低,有像素值为128的像素点构成的区域的显著等级设为中,得到该丢失块各区域的显著等级。
[0107] 由于整帧丢失,所以丢失帧中的每个像素块都为丢失块。该方法所有步骤均需遍历每个像素块才能完成整帧恢复,以上是以其中任意一个像素块为例。对丢失帧中所有丢失块进行上述处理,得到丢失帧各区域的显著等级。
[0108] 步骤(2).不同显著等级的区域采用不同的恢复方式。
[0109] (2‑1).对于显著等级为低的区域,人眼不关注,采用时域拷贝的方法恢复,即用前向参考帧或者后向参考帧的同位置像素直接填补。
[0110] (2‑2).对于显著等级为中的区域,人眼较为关注,恢复方法采用时域搜索像素填补或视点间搜索像素填补:
[0111] 如图6,时域搜索像素填补:将当前64×64的丢失块划分为32×32的宏块pcCU,假设pcCU是线性运动的,则在前向和后向参考帧能通过搜索找到对应块,在搜索范围为[‑16,16]内搜索前向帧与后向帧的对应块;
[0112] 对搜索的前向块pcCU_forward和后向块pcCU_back做绝对差值Diff:
[0113]
[0114] 其中,(x0,y0)是丢失块的左上角的像素坐标,(i',j')是相对于左上角像素坐标的偏移值,i′,j′∈Z,且i′,j′∈[0,31];xs和ys分别为x方向和y方向的搜索值,xs,ys∈Z,xs,ys∈[‑16,16];pcCU_back(x0+i'‑xs,y0+j'‑ys)为搜索的后向块像素,即后向参考帧中对应(x0+i'‑xs,y0+j'‑ys)位置像素点的像素值;pcCU_forward(x0+i'+xs,y0+j'+ys)为搜索的前向块像素;即前向参考帧中对应(x0+i'+xs,y0+j'+ys)位置像素点的像素值。
[0115] 将最小绝对值差D所对应的xs和ys分别记为xs0和ys0,D=min{Diff(xs,ys)}:
[0116] 若D<2.5,则认为对应的pcCU_forward和pcCU_back与pcCU相似,采用时域搜索像素填补,即采用pcCU_forward与pcCU_back加权平均来恢复pcCU:
[0117]
[0118] 若D≥2.5,则pcCU是非线性运动,认为对应的pcCU_forward和pcCU_back与pcCU不相似,采用视点间搜索像素填补,如图7,具体如下:
[0119] 设定视点搜索值g_f和g_b,g_f,g_b∈[‑64,64],分别计算pcCU_forward与相邻视点前向帧块pcCU_forward_view的绝对差值GF、pcCU_back与相邻视点后向帧pcCU_back_view的绝对差值GB:
[0120]
[0121]
[0122] 得到最小GF值Gf和最小GB值Gb,Gf=min{GF(g_f)},Gb=min{GB(g_b)};
[0123] 其中,pcCU_forward_view(x0+i'+xs0+g_f,y0+j'+ys0)为搜索的相邻视点前向块像素,即相邻视点前向帧中(x0+i'+xs0+g_f,y0+j'+ys0)位置像素点的像素;
[0124] pcCU_back_view(x0+i'‑xs0+g_b,y0+j'‑ys0)为搜索的相邻视点后向块像素,即相邻视点后向帧中(x0+i'‑xs0+g_b,y0+j'‑ys0)位置像素点的像素;
[0125] pcCU_view(x,y)为相邻视点当前帧中(x,y)位置像素点的像素;
[0126] 计算出pcCU对应在相邻视点中的块,并用该块恢复pcCU:
[0127] pcCU(x0+i',y0+j')=pcCU_view(X0_view+i',y0+j'),X0_view=x0+g_f0;
[0128] g_f0为Gf所对应的视点搜索值g_f,g_b0为Gb所对应的视点搜索值g_b。
[0129] (2‑3).对于显著等级为高的区域,按照如下方式处理:
[0130] 若Gf和Gb均小于3,则认为视点间块相似,即pcCU_view与pcCU相似,采用所述的视点间搜索像素填补方法进行恢复:
[0131] pcCU(x0+i',y0+j')=pcCU_view(X0_view+i',y0+j'),X0_view=x0+g_f0;
[0132] 若Gf和Gb至少一个大于等于3,则认为视点间块不相似,即pcCU_view与pcCU不相似,通过估计得到相邻视点当前帧中与pcCU相似的像素块的左上角像素点,构建运动矢量集,并采用基于HEVC的MV运动补偿方法恢复(该方法为成熟现有技术,即HEVC中自带的运动补偿):
[0133] x0_forward_view=x0+g_f0+xs0;
[0134] x0_back_view=x0‑xs0+g_b0;
[0135]
[0136] 其中x0_forward_view为在相邻视点前向帧中搜索到的像素块的左上角像素点的x坐标,x0_back_view为在相邻视点后向帧中搜索到的像素块的左上角的像素点的x坐标,x0_view为在视点间块不相似时,通过估计得到的相邻视点当前帧中与pcCU相似的像素块的左上角像素点的x坐标。
[0137] 将(x0_view,y0)作为相邻视点当前帧中32×32的M宏块的左上角像素坐标,而M宏块必隶属于相邻视点当前帧中64×64的N宏块,设N宏块的左上角像素坐标为(xn,yn),存在y0=yn以及y0=yn+32两种情况,两种情况的处理方法相同。
[0138] 获得N宏块的运动矢量MV构建候选运动矢量集,运动矢量MV从HEVC中最小处理单元4×4获得,从编码中直接获取,标记为MV1,MV2,…,MV16,分别为N宏块中左上角16个像素坐标的4×4像素块运动矢量。
[0139] 如图8~11,对于y0=yn情况,MV1为N宏块中左上角像素坐标为(xn,yn+12)的4×4像素块的运动矢量,MV2为N宏块中左上角像素坐标为(xn+12,yn+12)的4×4像素块的运动矢量,MV3为N宏块中左上角像素坐标为(xn+16,yn+12)的4×4像素块的运动矢量,MV4为N宏块中左上角像素坐标为(xn+28,yn+12)的4×4像素块的运动矢量,MV5为N宏块中左上角像素坐标为(xn+32,yn+12)的4×4像素块的运动矢量,MV6为N宏块中左上角像素坐标为(xn+44,yn+12)的4×4像素块的运动矢量,MV7为N宏块中左上角像素坐标为(xn+48,yn+12)的4×4像素块的运动矢量,MV8为N宏块中左上角像素坐标为(xn+60,yn+12)的4×4像素块的运动矢量,MV9为N宏块中左上角像素坐标为(xn,yn+28)的4×4像素块的运动矢量,MV10为N宏块中左上角像素坐标为(xn+12,yn+28)的4×4像素块的运动矢量,MV11为N宏块中左上角像素坐标为(xn+16,yn+28)的4×4像素块的运动矢量,MV12为N宏块中左上角像素坐标为(xn+28,yn+28)的4×4像素块的运动矢量,MV13为N宏块中左上角像素坐标为(xn+32,yn+28)的4×4像素块的运动矢量,MV14为N宏块中左上角像素坐标为(xn+44,yn+28)的4×4像素块的运动矢量,MV15为N宏块中左上角像素坐标为(xn+48,yn+28)的4×4像素块的运动矢量,MV16为N宏块中左上角像素坐标为(xn+60,yn+28)的4×4像素块的运动矢量。
[0140] 对于y0=yn+32情况,即相对于y0=yn情况下移32个像素点,此时获取MV1~MV16的像素块也都同时下移32个像素点。MV1为N宏块中左上角像素坐标为(xn,yn+44)的4×4像素块的运动矢量,MV2为N宏块中左上角像素坐标为(xn+12,yn+44)的4×4像素块的运动矢量,MV3为N宏块中左上角像素坐标为(xn+16,yn+44)的4×4像素块的运动矢量,MV4为N宏块中左上角像素坐标为(xn+28,yn+44)的4×4像素块的运动矢量,MV5为N宏块中左上角像素坐标为(xn+32,yn+44)的4×4像素块的运动矢量,MV6为N宏块中左上角像素坐标为(xn+44,yn+44)的4×4像素块的运动矢量,MV7为N宏块中左上角像素坐标为(xn+48,yn+44)的4×4像素块的运动矢量,MV8为N宏块中左上角像素坐标为(xn+60,yn+44)的4×4像素块的运动矢量,MV9为N宏块中左上角像素坐标为(xn,yn+60)的4×4像素块的运动矢量,MV10为N宏块中左上角像素坐标为(xn+12,yn+60)的4×4像素块的运动矢量,MV11为N宏块中左上角像素坐标为(xn+16,yn+60)的4×4像素块的运动矢量,MV12为N宏块中左上角像素坐标为(xn+28,yn+60)的4×4像素块的运动矢量,MV13为N宏块中左上角像素坐标为(xn+32,yn+60)的4×4像素块的运动矢量,MV14为N宏块中左上角像素坐标为(xn+44,yn+60)的4×4像素块的运动矢量,MV15为N宏块中左上角像素坐标为(xn+48,yn+60)的4×4像素块的运动矢量,MV16为N宏块中左上角像素坐标为(xn+60,yn+60)的4×4像素块的运动矢量。
[0141] 将M宏块继续分为4个16×16的块,分别为左上块Ma、右上块Mb、左下块Mc、右下块Md;对各块通过运动矢量补偿进行恢复,以y0=yn情况举例如下:
[0142] ①.如图8,0≤x0_view‑xn<16时:左上块Ma选用MV2补偿恢复,右上块Mb选用MV5补偿恢复,左下块Mc选用MV10补偿恢复,右下块Md选用MV13补偿恢复;
[0143] ②.如图9,16≤x0_view‑xn<32时:左上块Ma选用MV4补偿恢复,右上块Mb选用MV7补偿恢复,左下块Mc选用MV12补偿恢复,右下块Md选用MV15补偿恢复;
[0144] ③.如图10,32≤x0_view‑xn<48时:左上块Ma选用MV6补偿恢复,右上块Mb选用MV1补偿恢复,左下块Mc选用MV14补偿恢复,右下块Md选用MV9补偿恢复;
[0145] ④.如图11,48≤x0_view‑xn<64时:左上块Ma选用MV8补偿恢复,右上块Mb选用MV3补偿恢复,左下块Mc选用MV16补偿恢复,右下块Md选用MV11补偿恢复。
[0146] 结合四种情况得到恢复的M宏块,用M宏块覆盖pcCU完成恢复。
[0147] 为了验证该方法对于立体视频传输丢包后的视频失真重建性能,实例中进行仿真实验得到图12的整帧丢失恢复图。
[0148] 本发明的保护内容不局限于以上实例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。

附图说明

[0072] 图1是本发明方法的主要流程图;
[0073] 图2是序列中丢失帧运动显著性图;
[0074] 图3是序列中丢失帧深度显著性图;
[0075] 图4是序列中丢失帧深度边缘显著性图;
[0076] 图5是序列中丢失帧最终显著性图;
[0077] 图6是时域搜索示意图;
[0078] 图7是视点间搜索示意图;
[0079] 图8~11是MV补偿过程中四种情况下候选MV矢量集构建图;
[0080] 图12是序列中整帧丢失后的恢复图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号