2023年6月6日,备受全球科技圈瞩目的Apple Vision Pro在苹果全球开发者大会(WWDC)上正式发布,宣称通过对MV-HEVC编码标准的硬件编解码支持,显著提升了3D视频主客观体验。一时间,很多开发者都在搜索,MV-HEVC又是什么,跟传统的基于HEVC的3D编码有什么区别?
3D成像技术简介
在我们的日常生活中,视频已经成为了一种无处不在的媒介。从电影、电视节目到社交媒体上的短片,视频为我们提供了丰富多彩的视觉体验。然而,随着技术的不断发展,人们不再满足普通的2D视频,而希望获得更真实富有沉浸感体验的视频效果,3D视频内容就这样逐渐进入人们的视野。3D视频通过模拟人眼的立体视觉,使我们能够感受到深度和距离,提供了一种更加真实而富有沉浸感的视觉体验。
图1 左右眼是如何产生立体视觉的
目前,常用的3D视频成像技术包括全息投影,裸眼3D屏幕和立体电影显示技术等。
1)全息投影。全息投影是一种先进的显示技术,它可以在空气中或透明介质上创建三维图像。这种技术基于全息学原理,通过记录和再现物体的光波干涉模式,从而形成一个看起来就像真实物体在那里一样的三维影像。不过这种显示技术碍于显示介质的发展,目前尚在实验室研究阶段,并未规模化商用。
图2 一种“伪全息”显示装置
2)裸眼3D。裸眼3D技术是一种无需佩戴3D眼镜就能看到3D效果的技术。它通常通过在显示屏上设置特殊的光栅或透镜阵列,使左眼和右眼看到的图像有微小的差异,从而产生立体效果。但是,这种技术需要专用显示屏且造价昂贵,目前普及度不高。
图3 裸眼3D技术原理图
3)立体电影。立体电影显示技术是最早,也是最常用的立体影像技术,它通过使用双色滤镜或者偏振镜片,使左眼和右眼看到的图像不同,从而产生立体效果。观看这种视频只需要佩戴特殊眼镜即可。
图4 红蓝3D图像
4)VR头显。VR头显将左右视点画面分别给到观众左右眼来呈现3D效果。Meta Oculus就是一款市面上广受欢迎的VR头显设备,很显然,Apple最近重磅推出的Vision pro也是同样的VR产品。除了全息投影技术外,其他的3D成像技术大多也都是是将左右两个视点的视频用不同的方法分别呈现在观众的左右眼中,因此3D视频可以看作是两路2D视频的合并显示。
图5 Apple Vision Pro
当下3D视频编码的主要方式
目前常用3D视频内容,主要是VR头显和立体影视,大都基于左右视点图像的编码、传输和显示来完成。但长期以来,大量3D视频内容并没有使用专用的视频编码标准,而是使用通用的视频编码标准进行编码。主要的做法是将3D视频以SBS(side by side)的形式,把左右两个视点合并到一帧画面中,再将合并后的序列进行编码,如图6所示:
图6 主流3D视频编码视频图像形式
以HEVC编码器为例,HEVC编码器并没有帧内远距离搜索,因此同一帧的左右半间无法相互预测;另一方面,由于运动估计搜索范围的限制,帧间预测也不能利用不同视点间的信息。如图7所示描绘了帧间预测的运动矢量,可以看到不存在跨越不同视点的帧间预测,不同视点的冗余信息并没有被消除。
图7 主流3D视频编码码流分析示意
因此如果能够消除3D视频左右视点间的信息冗余,将大大提升编码器的效率。
什么是MV-HEVC
针对3D视频、尤其是多视点拼接3D视频的新特性,JCT-3V标准专家组成立,并在2014年发表了适用于3D多视点视频编码的HEVC编码标准扩展:MV-HEVC。如图8 展示了按照MV-HEVC标准编码的3D视频右视点帧间预测的运动矢量图,图中可以看到右视点使用了大量的视点间参考模式,充分消除了视点间的冗余信息。
图8 MV-HEVC 3D视频编码右视点码流分析示意(绿色线条带IL标识表示视点间参考)
MV-HEVC的新特性
Layer的引入与参考关系的变化
MV-HEVC(MultiView-HEVC)标准中,NALU header中引入了新的语法元素:LayerId。它表示该NALU 封装的帧(或Slice)所归属的视点号。在3D视频中我们通常用LayerId 0表示该帧属于左视点(主视点),LayerId 1则表示属于右视点(辅视点)。我们称同属于一个POC但属于不同LayerId的帧为一个AU(Acess Unit)。主视点图像编码的参考规则沿用基础HEVC,辅视点每一帧图像编码在基础HEVC之上,又多了一个视点间参考帧,即主视点同poc的帧。这样的参考结构提供了视点间参考的可能。
属于不同LayerId的帧可以拥有相同的POC号,但是LayerId更大的帧可以参考相同AU的LayerId更小的帧,如图9所示:
图9 MV-HEVC双视点编码参考示意图
VPS,SPS,PPS等参数集的变化
由于Layer的引入,还需要引入新的语法内容。另外,不同LayerId理论上可以作为一路单独的视频输出,这就意味着它们需要配置属于自己的SPS和PPS。针对这些问题,MV-HEVC对VPS进行了扩展,引入了新的Profile Tier Level,并修改了PPS和SPS的部分语法,考虑到不同视点的大量SPS和PPS的参数内容(帧的宽高,色度采样等)是重复的,MV-HEVC对Layer Id不为0的帧所引用的SPS和PPS语法做了特殊约定,去掉了这些信息冗余。
Inter Layer模式的引入
为消除视点间的信息冗余,MV-HEVC将帧间预测模式扩展到了不同Layer间,称其为Inter Layer模式。
Inter Layer模式的引入带来了新的问题,例如下面这个场景:
TMVP(时域运动矢量预测)模式是HEVC的一种帧间预测技术,会选取当前块的同位块的MV,并根据其在空域上的POC距离进行相应的MV缩放,如下图所示:
图10 TMVP(时域运动矢量预测)模式示意图
缩放修正后的MV为:
但是随着inter Layer模式的引入,参考帧与当前帧的POC号可能相同,tb和td都有可能为0,这导致缩放操作可能会出现除0错误,或者缩放为0矢量,失去缩放的意义。
因此MV-HEVC规定,所有的inter Layer模式,其参考类型都标记为长期参考帧,而所有的长期参考都只能作为长期参考的的MVP,而不能作为非长期参考的MVP。通过将inter Layer和非inter Layer预测模式区分开来,避免了上面这种错误的出现。
编码端测试问题
不同于互联网应用的低密度I帧特性,JCT3V标准面向广电应用,一般使用20-30帧I帧间隔来评价工具优化带来的码率节省。由于MV-HEVC标准的layer1中不包含I帧而代之以使用视间预测的P帧、商业编码器使用的参考帧数与参考软件也有明显差别,所以MV-HEVC在参考软件下的压缩率提升将明显大于其在互联网业务上的收益。因此,需要在商业编码器上实现并实测MV-HEVC的收益。
解码端支持现状
目前,Apple Vision Pro搭载的芯片通过固件层优化已经实现了对MV-HEVC码流的硬解支持。业务团队可以对自研HEVC解码器引入MV-HEVC扩展解码能力支持,并将其适配ffmpeg,用户便可通过ffmpeg调用相关解码器解码MV-HEVC 3D视频流。
腾讯V265对MV-HEVC的支持进展
早在Vision Pro发布之前,腾讯云香农实验室就开始了对3D视频编码标准商用化的支持的调研和实现。在Vision Pro发布后不久,V265 OTEAM适时添加了对MV-HEVC扩展的支持。通过与V265内置的参考帧搜索快速算法相结合,在不降低编码速度的基础上,V265-MVHEVC取得了相比传统解决方案明显的压缩率提升。
初步是实验结果表明,在3D电影测试场景下,拥有自研MV扩展的编码器比通用编码器在辅视点(layer 1)上获得了平均50%以上的码率节省,两个视点联合获得了20%以上的码率节省。这也就意味着,我们的自研MV扩展编码器在同等画质下能减少20%的带宽开销。在后续工作中,V265在快速算法、码率控制、延迟约束等各个角度持续完善对MV-HEVC的支持能力,满足复杂多样的客户需求。
图11 V265支持MV-HEVC后的3D编码性能提升
总结
通过添加MV-HEVC编码相关的语法和模式支持,V265新增了3D视频编码能力,同画质下可减少20%的带宽 ,结合MV-HEVC标准易于硬解支持的生态优势, 将持续助力3D视频应用不断发展。
备注
V265:腾讯V265编码器是腾讯V265 OTEAM主导研发的行业领先的符合HEVC标准的视频编码软件,多年来连续在MSU视频编码器比赛HEVC编码器中全面领先。
如果您有相关业务需求或想要进一步地了解腾讯云音视频产品内容,欢迎扫描下方二维码添加音视频小姐姐微信,与我们的产研团队深入沟通交流。
腾讯云音视频在音视频领域已有超过21年的技术积累,持续支持国内90%的音视频客户实现云上创新,独家具备腾讯云RT-ONE™全球网络,在此基础上,构建了业界最完整的 PaaS 产品家族,并通过腾讯云视立方 RT-Cube™ 提供All in One 的终端SDK,助力客户一键获取众多腾讯云音视频能力。腾讯云音视频为全真互联时代,提供坚实的数字化助力。