3d视频压缩与处理

https://wenku.baidu.com/view/fc755ce584254b35eefd34aa.html

一、 三维视频概述

  • 人眼实际观测三维空间物体时左右双眼会接收到不同角度的场景图像。三维显示系统就是通过使观众的左右双眼看到两个不同视角的图像,从而模拟这一过程。人脑在观测到两个视角的图像后,通过辐合-聚焦过程,及图像中物体已有前后遮挡关系,并结合以往的经验等因素来综合构建整个三维空间的结构信息,形成不同于传统二维图像的深度感。现有的三维视频呈现方式均是利用了这一特性,通过不同的手段使观众观测到不同视角的图像,从而获得三维立体的感受。

  • 三维视频由摄像机采集得到后经过预处理,并根据纹理图像估计得到深度图像(或直接通过深度摄像机采集得到或通过三维模型生成得到);多路纹理图像和深度图像经过编码后,由信道传输至解码端;解码端解码恢复得到码流中包含的纹理与深度图像后,通过虚拟视点合成技术,生成虚拟视点的纹理图像,与解码出的纹理图像一起,通过三维显示设备显示给用户观看。

二、 三维视频格式

在三维电视系统中,三维视频的表达格式对于整个系统的设计是至关重要的。为了适应多种不同的显示方式,产业界中已出现了多种不同的三维视频格式,下面将介绍一些主流的三维视频格式。从三维视频格式中包含的内容类型来区分,可以将三维视频格式区分为纯纹理格式以及带有深度的格式。
纯纹理格式主要有:

  1. 传统的双目立体视频格式
    由于传统的两视点视频格式获取方式相对简单,这种格式在目前的三维视频应用中仍然是最主流、应用最广泛的三维视频格式。网络上的三维立体视频内容、蓝光三维电影内容等均采用了这种格式。
  2. 混合分辨率的双目立体视频格式
    双目视觉掩蔽效应的理论研究指出,当双目立体视频对中一个视点的图像质量较高,而另一视点的图像质量较低时,低质量视点的图像失真在人脑中受到抑制,观众的主观感受质量更趋近于高质量视点。根据这样的视觉原理,我们可以将立体视频对中的一个视点下采样降低分辨率后再进行压缩编码并传输,在解码端再对该视点图像进行上采样恢复后得到与高质量视点相同分辨率的图像。降低一个视点的分辨率能够减少传输三维视频内容所需要的带宽,也可以将有限的码率资源分配给更加重要的高质量视点,有助于提升三维视频内容的整体主观质量。
  3. 多视点立体视频格式
    多视点显示设备需要我们为其提供每个视点的视频内容,双目立体视频格式显然无法满足这样的视点数目要求,因此多视点立体视频格式在双目立体视频格式的基础上增加视点的数目,作为多视点显示设备各视点的显示输入信号。

带有深度的格式
深度图像通常表达为灰度图像,每一个像素点的亮度值表征了对应物体表面与当前视点摄像机的距离远近关系;

三、 三维视频编码标准发展总体概述

 随着三维视频(3D Video)图像在影视娱乐、军事通信等方面应用的不断涌现,关于三维视频标准制定也逐步开展,国际标准组织IS O/IEC的运动图像专家组MPEG (Motion Picture Expert Group)于2001年成立3D视频研究工作组,开始多步骤地进行多视点视频(Multi-View Video, MVV)、多视点加深度(Multi-View Video plus Depth, MVD)和自由视点视频(Free-viewpoint Television, FTV )的技术研究和标准化制/修订。FVV是目前三维视频的顶层格式,它可以满足观众自由选择位置欣赏立体视频,享受完美的视觉盛宴。
FVV发展历程可以分成几个阶段。
在这里插入图片描述

  • 准备阶段:三维音视频特别小组(3D Audio-Visual, 3DAV) 2003年发布了自由视点标准征求意见稿

  • 实践阶段:自由视点视频的第一阶段是多视点视频(MVV)。从2004年始,经过对三维视频需求分析与意见稿的回应,开展了自由视点的第一阶段-多视点视频的压缩编码标准研究; 2006年联合视频编解码工作组JVT提交了多视点视频编码MVC草案,2009 年完成了MVC编码标准(multiple view coding),将其作为H.264/AVC的扩展部分,增加了很多新技术与新方法。

  • 发展阶段-MVD: 自由视点第二阶段即多视点视频加深度三维视频(Multi-view Video plus Depth, MVD)。随着深度图的引入以及虚拟视合成技术的不断发展,三维视频的发展得以显著提升。2007年4月MPEG成立了自由视点视频小组,2009年MPEG成立三维视频编码特别小组(3D Video Coding, 3DVC),征求基于深度图的三维视频编码新技术与文档,逐步发展形成了目前主流的视频编码新格式(多视点视频加深度三维视频)。2012年,ISO/IEC与ITU-T成立三维视频编码联合专家组(JCT-3V)制定3DV标准,由基于H.264的MVC转向基于HEVC的3D-HEVC。2015年,完成三维视频编码标准3D-HEVC的制定。

  • 探索发展阶段: 2013年,JCT-3V提出FVV第三阶段,面向多视点加深度以及全视角全景视频等应用领域。目前,需求与技术的征求意见还在继续与加强,重点围绕需求分析、自由视点采集、自由视点建模、标准参考软件建立等进行探索发展,以期真正实现自由视点视频FVV。

由于自由视点视频由相机阵列获取,每一个相机形成单路视频流,因此其数据量非常巨大,必须进行高效的数据压缩之后才能进行传输。于是,MPEG首先对FVV系统的多视点视频编码进行标准化,现已经基本完成。虽然MVC提高了视频编码效率,但是由于需要传送多路视频所需带宽仍十分庞大,目前的商用广播系统不可能处理和传输所记录的全部视点的信号。此外用户也还无法真正的实现自由视点的观看,用户的视角被限定在了已知的N台摄像机画面内,N台摄像机只能获得N个观看视点。因此MPEG建立了促进FVV标准化的Ad Hoc组,致力于FVV的系统开发,标志着FVV研究进入第二阶段。为使自由视点电视(Free-viewpoint Television, FTV)终端在较大视角范围内的任意视点生成高质量虚拟视图,并且不需要编码、传输空间密集采样的海量多视点视频数据,可使用在多个稀疏视点位置摄像机拍摄得到的多视点视频和与之对应的多视点深度图像序列来表示三维场景信息。
例如,9视点自由视点电视,只需要3个视点的视频和与之同步的深度图像序列进行编码、传输、解码,在显示器端合成6个虚拟视图,从而大大减少多视点视频数据量。因此,MPEG提出了多视点视频+深度(Multiview Video plus Depth, MVD)视频格式,在FVV系统接收端合成虚拟视点,实现用户的任意视点选择,并给出了FVV系统的框架与要求。

3D-HEVC不同于以往的多视点编码(Multi-view Video Coding, MVC ),MVC是将采集到的多个视点的视频分别编码,解码后再把这几个视点分别显示出来,编码过程中,除了进行传统二维视频编码的帧内预测和帧间预测外,还利用视点之间的数据冗余性,进行视点间预测,估计出视差矢量(Disparity Vector, DV),提高整体的编码效率。由于MVC不包含深度图的编码,所以在显示端无法通过基于深度图的绘制技术合成额外的虚拟视点,显示范围有限,因而会影响观看体验。作为MVC的改进,MVD加入了深度视频,将捕获到的多个视点的纹理图以及对应的深度图编码以及多路复用到一个3D视频比特流中。纹理和深度数据解码后,利用DIBR合成额外的中间视点以增强显示效果。为了提高编码效率,一方面,3D-HEVC继承了HEVC的四叉树划分结构、扩展的帧内预测模式、帧间预测合并模式自适应采样偏移滤波等编码工具;另一方面,3D-HEVC针对非基本视点和深度图编码采用了一些新技术,包括应用于非基本视点的亮度补偿、视差补偿预测、视点间运动预测、高级残差预测和视点合成预测以及应用于深度图编码的深度建模模型(Depth Modeling Modes, DMM )、运动参数继承和视点合成失真优化等。这些新工具的引入,使得3D-HEVC的编码效率大大提升,在同等图像质量下,码率相对H.264的MVC减少了约60%。

MVC作为最早支持多视点纹理视频编码的标准,已经成功地普及到了大多数现有的三维视频解码终端中,一个典型的例子就是蓝光3D电影中采用了MVC标准进行双目立体视频编码。

四、 立体视频编码

立体视频中有两个重要的冗余信息—运动矢量和视差矢量。

  • 运动矢量用于描述同一个视角中相邻帧之间的时域相关性和同一帧内的空间相关性;
  • 视差矢量则描述同一时刻两个不同视角对同一场景的投影图像之间存在的空间相关

这样,相对于普通视频图像编码只能利用运动矢量信息而言,立体视频压缩有着更灵活的选择方式和优化方式。但同时应该看到,这种选择的增多也给算法在某些环节的取舍上带来了一定的困难。因此,如何有效地利用这两种有用信息进一步提高编码效率就成为立体视频编码算法研究的关键。根据现有的许多立体视频编码方案,大体上可以分为三类:独立的用运动矢量或视差矢量;优化地选择两种矢量中的一种;同时利用两种矢量,分别对用这两种矢量估计出来的预测图像进行线性组合,从而可能形成一个更优的预测图像。通过使用联合运动估计和视差估计,提高了最终的编码效率。
 独立的用运动矢量或视差矢量
在早期,人们并没有发现通过视差矢量可以部分地消除立体视频序列中存在的冗余信息,而是采用最直接的方式,也就是把立体视频看作两个独立地单目视频序列,采用现有的视频编码标准直接对两个视频序列分别进行编码,然后传输。这种算法的框图如3-1所示:
图中的箭图方向表示视频图像的编码顺序。一般来说,视频帧可被分为多个图像组(Group of Picture),每一个图像组由一个I帧和几个P帧或B帧组成。对于I帧采用帧内编码,对于P帧或B帧采用帧间编码。对于帧间编码块,需要在前一个I帧或P帧中采用运动估计寻找最佳的匹配块。其中运动估计采用标准中常用的基于块匹配的运动估计算法。
显然,这种方法只考虑了各自视点相邻帧之间时间方向上的相关性,并没有利用立体视频本身固有的特点即相邻视角间的空间相关性,所以它的压缩效率比较低。后来,随着对立体图像的进一步研究,人们发现在左右两幅图像中存在着一种固有的冗余信息—视差矢量,它表示空间中的一个点在左、右两个平面投影点之间空间上的位置差异。但这种矢量不同于运动矢量。它可以利用立体视觉的基本理论进行估计使得估计的结果更加准确。其基本思想可以用图3-2更加清楚地表达出来。
在图3-2中,左视角图像作为基本层图像,采用普通视频编码标准H.264来独立编码,而右视角图像作为增强层图像,其中每一帧图像和同一时刻的左视角中的对应帧进行视差估计。显然,这种方法利用了立体视觉的基本理论,考虑了视差矢量这种冗余信息。但同前一种方法相比,它并没有兼顾运动矢量,即没有消除同视角图像在时间方向上的冗余信息。
总体而言,这两种方法比较简单,方案比较成熟,是一些立体视频编码硬件系统的首选。但是,这两种方案都存在着明显的缺陷。视差估计和运动估计一个表示空间相关性,一个表示时域相关性,是两个互不矛盾的冗余信息。对于某些块而言,运动估计可以得到更精确的预测图像,而对另一些块而言视差估计可能优于运动估计。如下图中能形象的表达这个思想。
图3-3中,x方向上表示视角,Y方向上表示时间。图中的主要物体是一辆汽车,在对右视角t十1时刻的的图像进行编码时,可以采用上述的两种编码方案。但是当采用运动估计时,即参考右视角的t时刻图像,但是由于在t时刻汽车并没有完全投影到图像平面上,而在t+ 1时刻由于运动使得汽车全部进入图像投影平面,则估计的效果较差。而采用视差估计时,由于在t+ 1时刻左右视角中的汽车都全部进入图像投影平面,所以估计的效果较好。在这个例子中,由于时域上连续的两帧存在一些遮挡区域,所以对右视角序列使用运动估计不如视差估计好。同样,在其它一些例子中也会存在视差估计不如运动估计好的情况。
 优化的使用运动估计或视差估计立体视频编码算法
上例表明了对某些块视差估计可以获得更精确的预测图像,而对另一些块而言运动估计可能优于视差估计。所以可以通过比较两种估计的准确来动态的选择两个估计块中的最佳一个。其基本思想是对左视角序列依然采用传统的方法进行编码,对右视角图像进行分块处理,对每一个块首先和其对应的左视角图像进行视差估计,然后再利用帧内存中存储的前一帧重构图像进行运动估计。比较两种估计产生的预测图像,选择预测图像和原图像的误差较小的作为最终的重构图像。下面结合框图3-4来详细解释这一算法。
(1)左图像采用传统的编码方法,对其中的每个块采用运动估计的视频编码方式,并将其重构图像存于缓存中。
(2)右图像按照固定尺寸进行分块,对于其中的每一块,首先与相邻视角内图像进行视差估计,再通过式3-2算出视差估计误差(Disparity Compensated Difference, DCD)

其中,fr(xi.yi)表示右图像中点的像素值,dx, dy分别表示x方向上和Y方向上的视差矢量。
(3)利用缓存中同一视角上一帧的重构图像,对每一个块做运动估计,得到运动估计误差(Motion Compensated Difference, MCD)

(4)对产生的两种预测误差值进行比较,如果DCD大于MCD,那么当前块采用运动补偿;反之,采用视差补偿。最终选择的结果用一个比特来标志。
(5)循环处理所有块,产生最终的残差图像,并编码。
算法评价:
从图3-4中也可以看出,这种优化地使用视差估计和运动估计,使最终得到的残差图像能量比单独的选择其中任何一个方案都小。显然,这种方案优于前面的两种方案。但要指出的是,这种算法在以下两个方面仍存在一些不足:
(1)这种算法采用比较两种残差图像能量的方法选择估计类型,这种选择准则对图像编码而言不是非常合适的,残差能量最小并不意味着编码它花费的比特数一定少,因为同时还要考虑运动和视差信息的编码代价,所以要综合总的编码代价。
但这种算法只是优化地在两种估计形式中选择一种,并没有考虑对某些块联合的使用视差估计和运动估计,把各自产生的预测图像进行线性组合,产生一个最优的匹配块。并且在实际中,运动估计和视差估计是可以相互补偿的,进而能进一步提高编码效率。
 联合的使用运动估计和视差估计立体视频编码算法
联合使用运动估计和视差估计的编码算法具有更高的编码效率,其基本思想是联合使用运动估计和视差估计,线性组合两种预测图像,形成最终的预测图像。这种思想类似于视频编码中B帧的双向预测思想。
DV 表示视差矢量,MV 表示运动矢量
(1)左图像采用传统的编码方法,对其中的每个块采用运动估计的视频编码方式,并将其重构图像存于缓存中。
(2)右图像分块分别进行视差估计和运动估计,得到最优的视差矢量和运动矢量。
(3)对每一个块,用式3-4线性地组合视差预测图像和运动预测图像,形成最终的预测图像。
Wm和Wd分别表示两种估计的权值因子,这个参数可以根据试验统计来确定。当它们均为0.5,则认为两种估计同等重要。
(4)循环处理每一个块,形成最终的残差图像并编码

五、 MVC概述

MVC标准制定的目标主要是为三维电视(3DTV)以及自由视点电视(FTV)等应用中的多视视频提供高效的信源编码方案。

MVC是将采集到的多个视点的视频分别编码,解码后再把这几个视点分别显示出来,编码过程中,除了进行传统二维视频编码的帧内预测和帧间预测外,还利用视点之间的数据冗余性,进行视点间预测,估计出视差矢量(Disparity Vector, DV),提高整体的编码效率。由于MVC不包含深度图的编码,所以在显示端无法通过基于深度图的绘制技术合成额外的虚拟视点,显示范围有限,因而会影响观看体验。

其核心模块包括多视点视频的编码、存储/传输和解码。由摄像机阵列拍摄的N 个视点的视频并行输入到MVC 编码器,经编码后生成单个码流用于存储或传输,解码端对输入码流进行解码后恢复出多视点视频。考虑到与不同显示设备的兼容问题,解码端根据用户的需求恢复出一个或多个视点的视频。
基于MVD格式的3D视频编解码框架如图1.11所示,输入到编码器的是同一场景在少量不同视角下拍摄采集到的彩色图像序列和相应的深度图像序列,以及一些相机参数。编码后封装生成一个3D视频比特流,在解码端可支持三种情况的输出:通过提取单视点的子比特流,用传统的二维视频解码器解码,然后只显示单视点的二维视频;第二种情况是提取出任意两个视点组成立体视频(stereo video )子比特流,解码后用立体显示器播放提供双目显示;第三种情况是将所有视点的纹理和深度视频都解码出来,利用已知视点和传输的相机参数通过DIBR技术合成额外的中间视点,从而支持自由视点显示。
与单视点视频相比,多视点视频除了存在时域和空域冗余外,还有相邻视点间的视差冗余。基于H.264的MVC主要通过采取时域预测和视点间预测相结合的编码预测结构来提高编码效率。

六、 MVC代表性预测结构

  1. Simulcast预测结构 (同时联播)
    实现多视视频编码最简单的预测结构是每个视的时域/帧间预测结构均相同,如均用H.264/AVC的预测结构。如图2.17所示,S7是多视视频的8个视,这种被称为Simulcast(同时联播)的预测方案,每个视独立进行编/解码传输,不同视之间不设定参考关系。这样各个视的预测只有时域的运动补偿预测。
    Simulcast结构实现简单,视之间的并行性和随机接入容易实现,然而该结构没有利用各多视视频图像序列之间的视间相关性,因此压缩效率低。
    在MVC的时间分级结构中,关键帧采用帧内预测,同时依赖前一个关键帧作为参考的帧间运动补偿预测。GOP中剩余的图片采用分层次的B帧结构来预测,每个B帧有两个参考帧,分别是最近过去和最近将来更低时间级别的帧。在MVC编码标准中,GOP=2n(1 <= n <= 6),此外,GOP还可以等于12或者15。
    该方案是普通单通道视频编码的简单扩展,但是由于没有考虑视点间的相关性,所以编码效率低。
  2. Hierarchical B结构
1) 一维(时域)的Hierarchical B结构

Hierarchical B结构的一个GOP由关键图像(Anchor Picture)和非关键图像(Non-anchor Picture)组成;非关键图像分布在相邻两个关键图像之间,并和当前的关键图像构成一个GOP。关键图像如果是P图像的话,只能从过去的关键图像的重建编码图像(“前向参考”)获得参考。一个GOP除了关键图像,剩下的都是非关键图像,且都为B图像,采用双向预测。Hierarchical B结构大大增加了B图像的数目,编码图像和参考重建图像之间的相关性得到加强,与传统的IPPP或者IBBP编码结构相比,在编码增益上有较大的提高。Hierarchical B结构还同时实现了时域上的可分级特性,如图2.18中B的下标,"1,2, 3”代表该GOP相应的时域分层,其中所有的关键图像构成基本层,非关键图像构成各级增强层。

  1. 时域/视间二维Hierarchical B结构
    Fraunhofer-HHI将Hierarchical B结构扩展到了视域,形成了时域和视域的二维预测结构,这一结构被H.264/AVC MVC所采纳。图2.19为8个视(S0-S7),每个视的预测结构均是GOP长度为8的Hierarchical B结构。首先对每个视的第一幅图像进行编码,之后按照Z字形顺序沿时间轴对GOP中剩下的图像进行编码,多视视频序列中其它图像序列的GOP也按照相同的顺序进行编码,而SO-S7各个视之间组成类似于H.264/AVC那样的B/P帧预测结构。与Simulcast结构相比,Hierarchical B结构大大加强了视间预测,充分利用了视间的相关性,因此可得到较大的编码增益。
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值