Apple Vision pro于6月28日面向中国区发售,腾讯视频visionOS端也在此前正式上线vision pro的App Store。其中,腾讯视频全新推出的“客厅巨幕影院”的3D放映模块由腾讯云提供技术支持,为用户带来全新沉浸体验。

为了保证3D大制作场景的“真实感”,腾讯视频和腾讯云打造了沉浸式空间播放技术,最高支持8K播放,能够呈现巨幕效果,力求将“客厅影院”做得更加逼真,让用户随时随地享受影院级的巨幕体验。在杜比视听技术的支持下,播放器还能让用户在观影时,获得视觉和听觉的双重震撼。

值得一提的事,腾讯云此次从3D内容的采集、生成,到3D编码,到3D封装和分发再到播放端对3D码流软硬解支持进行了全链路的优化,腾讯云媒体处理能力(MPS)打通了从MV-HEVC编码、ISOBMFF(ISO Base Media File Format)容器封装到HLS分发至Vision Pro上播放的完整链路,达到在节省20%带宽的基础上,进一步为用户打造更高清的观影体验。除此之外,腾讯云MPS还对3D视频内容进行了专项的编解码加速,使其支持8K@120fps的实时直播,满足超高清赛事的沉浸式观看需求。

Vision pro 3D观影概念图

3D内容采集和生成,打造沉浸视觉体验

3D视频通过模拟人眼立体视觉,使人们感受到深度和距离,提供一种更加真实而富有沉浸感的视觉体验。

通常来讲,3D视频内容采集会通过相机阵列同步采集多视角画面,或者通过深度估计加AI生成的2D转3D方案。目前,腾讯云也采用相机阵列同步采集的方法,实现腾讯会议裸眼3D视频通话的场景。

裸眼3D视频通话系统相机阵列多视角画面采集

一种基于深度估计的2D转3D算法流程

而Apple iphone 15 Pro/ Pro Max 通过主摄和超广角镜头录制的“空间视频”,将3D内容创作变得更加简单。用户只要打开手机录制横屏视频,iphone会将超广角摄像头拍摄的视域自动调整到和主摄匹配的程度,产生立体视觉效果所需的左右视图画面,再通过vision pro进行观看,让3D视频触手可及。

腾讯自研V265编码器支持MV-HEVC扩展,视频压缩率提升20%

解决了画面采集的问题,需要将画面进一步编码、传输再播放出来。目前常用的3D视频内容,大都基于左右视点图像的编码、传输和显示来完成,一般左视点被称为主视角,右视点被称为辅助视角。业界的通常做法是将3D视频以SBS(side by side)的形式,把左右两个视点合并到一帧画面中,再将合并后的序列进行编码。

SBS编码与MV-HEVC编码示意

 但这个方案存在一定弊端,比如无法利用不同视点间的信息,无法消除不同视点之间的冗余信息。而如果能够消除3D视频左右视点间的信息冗余,则将大大提升编码器的效率。

为此,针对3D视频、尤其是多视点拼接3D视频的特性,2014年,JCT-3V标准专家组发表了适用于3D多视点视频编码的HEVC编码标准扩展MV-HEVC。MV-HEVC通过将帧间预测模式扩展到了不同视点之间,大大降低3D视频左右视点间的冗余性。

具体来说, MV-HEVC在编码过程中,主视点(layerID0)图像编码的参考规则沿用基础HEVC,辅视点(layerID1)每一帧图像编码在基础HEVC之上,又多了一个视点间参考帧,即主视点同poc的帧,这样的参考结构提供了更多视点间参考的可能。

MVHEVC双视点编码参考示意图

MV-HEVC 视频编码辅视点码流分析示意(绿色线条带IL标识表示视点间参考)

据了解,腾讯云MPS在腾讯自研V265编码器的基础完成了对MV-HEVC扩展的支持(以下统称V265-3D编码器),也同步兼容普通类Side by Side这类的3D设备。并且通过与V265内置参考帧搜索快速算法相结合,V265-3D相比传统解决方案压缩率提升20%。

具体来说,腾讯云在辅视点编码引入编码单元依赖传播(cutree)算法,它是一种高效的技术手段,帮助提升编码器的整体编码压缩率。根据参考关系,该算法通过帧间运动估计预分析与代价计算和代价反向传播,去估算每个编码单元(cu)对后续编码cu的影响,并以此调整被参考cu的编码比特,有效改善后续一连串的画面质量和整体压缩率。

MV-HEVC下的cutree算法优化

在3D视频编码场景下,考虑到主视点和辅视点本身的高相似性,和辅视点总要参考主视点的事实,腾讯云引入视点间的运动估计与代价计算,为主视点中影响更大的cu块分配更多比特,最终达到主客观画质提升的目的。优化后各类场景下的压缩率均有不同程度提升。

视点间cutree优化前后编码压缩率对比

同时,基于MV-HEVC需要对双路视频进行编码的情况,在设计多线程处理架构时,除了要考虑gop结构内不同poc之间的编码顺序依赖关系,还要考虑辅视点对主视点的编码依赖关系。腾讯云基于视点间并行、层级间并行以及独立的码流控制线程,最大程度提高编码线程的并行度。

●视点间并行:左右两个视点采用独立线程池管理,并为主视点分配更高优先级。

●层级间并行:同视点内,不同层级的帧并行处理,并按照gop结构的参考关系,为低层级帧分配更高优先级。

●独立的码流控制线程:采用一个独立线程从缓冲区获取得到码流,并对左右视点产生的码流按照顺序进行拼接,以输出正确码流。

MV-V265编码并优化方案

实验结果表明,在3D电影测试场景下,拥有自研MVHEVC扩展的V265编码器在辅视点(layer 1)上获得了平均40%以上的压缩率提升,两个视点联合获得了20%以上的码率节省。这也就意味着,腾讯云的自研MV扩展编码器在同等画质下能减少20%的带宽开销。

V265 支持MV-HEVC后的3D编码性压缩率提升

全面支持APPLE-3D格式封装的流媒体协议转码

除去编码技术上的支持,容器格式和分发协议也需要更好的升级,以满足空间视频的分发支持。空间视频的容器封装方案,基于ISOBMFF标准,对MV-HEVC标准进行了扩展。

普通ISOBMFF视频使用Sample Description Box存储解码器参数信息,比如HEVC流就是HEVC Decoder Configuration Record。而在空间视频场景下,不仅需要存储主视角的参数信息,还需要辅助视角的参数信息。因此标准新增了存储辅助视角参数信息的L-HEVC Decoder Configuration Record,具体结构如下:

同时为了表示当前HEVC流为MV-HEVC,相比普通HEVC视频,HEVC Decoder Configuration Record会多加入一个名为three_dimensional_reference_displays_info的SEI信息,该SEI主要用于保存MV-HEVC左右视角ID等信息。

除了参数信息,扩展标准还在Sample Description Box写入一个名为VideoExtendedUsage的Box。该Box核心成员是StereoViewInformation Box,一个表示是否存在左视角和右视角的Box,在空间视频场景下二者都是存在的。

VideoExtendedUsageBox结构

标准还规定左右视点的NALU( Network Abstraction Layer Unit )必须放在一起作为一帧数据,也就是说拥有相同的PTS(展示时间戳)和DTS(解码时间戳)。

通过以上技术要点,完成了对MV-HEVC的容器封装支持,同时输出的ISOBMFF视频拥有后向兼容性。这代表了对于不支持MV-HEVC解码能力的播放器,可以只解析和解码Base Layer数据,相当于播放主视角显示2D画面。同时还支持了MV-HEVC的播放器可以同时解析和解码Base Layer和Secondary Stereo Layer数据,并以3D的方式显示。

除此之外,HLS已经被广泛用于视频直播和点播领域。为了支持分发空间视频,在现有HLS标准的基础上也引入了支持空间视频的特性。

多线程解码速度提升15%,确保3D视频快速转码、流畅播放

目前,Apple Vision Pro搭载的芯片通过固件层优化已经实现了对MV-HEVC格式码流的硬解支持。腾讯云也在V265 oteam的支持下对自研HEVC解码器也引入了MV-HEVC扩展解码能力支持,并将其适配FFMPEG,这意味着用户现在可以通过FFMPEG轻松调用相关解码器,实现对MV-HEVC 3D视频流的快速转码处理以及解码播放。

首先,基于MVHEVC解码标准,通过MVHEVC新的语法内容兼容、加入视点间参考帧的参考队列管理、双视点共享DPB buffer的正确建立等步骤,实现FFMPEG对MV-HEVC流的解码支持。

同时,在保证功能完善的基础之上,确保双视点解码多线程的安排调度,高效利用计算资源,让MVHEVC在多解一路视频流的情况下尽量不降低解码速度。

FFMPEG在调用解码库进行解码时,一般以packet为输入单位,以frame为输出单位。当解码HEVC单视点流时,码流中的一个packet实际包含一个待解码帧,一个线程接受一个packet,多个frame级线程并行处理。当前帧处于显示状态时,未来的几帧已在其它线程中被解码。

由于在解码MVHEVC双视点流时,一个packet实际包含左右视点两个待解码帧,如果依然采用原先的多线程解码处理流程,一个线程实际要去处理两个解码帧,工作效率就会大大降低,严重影响解码速度。

FFMPEG HEVC与未优化MV-HEVC多线程解码示意图(注:线程内数字表示解码帧poc号,视点layerID号)

为最大程度的提高解码线程效率,腾讯云借鉴了V265-3D编码中的多线程调度思想,在正式进入解码流程之前,对packet做左右视点分割操作,那么在实际的解码流程中,两个视点各自独立解码,主视点拥有更高优先级;同视点内多帧并行处理,被参考帧拥有更高优先级。

优化后的FFmpeg多线程解码示意图

这样的优化每个线程工作量与原本HEVC单视点解码的工作量相同,并且对ffmpeg原本解码流程改动最小。优化后的多线程解码速度较优化前提升4.4倍,相比去解码双路标准HEVC视频流,解码速度平均提升15%

FFmpeg MV-HEVC解码性能

目前腾讯云MPS已经完成MV-HEVC的支持,并预计在8月初完成控制台的正式上线,帮助用户大幅降低3D码流的存储和带宽成本,助力更多用户享受到沉浸式空间视频的全新体验。


「免责声明」:以上页面展示信息由第三方发布,目的在于传播更多信息,与本网站立场无关。我们不保证该信息(包括但不限于文字、数据及图表)全部或者部分内容的准确性、真实性、完整性、有效性、及时性、原创性等。相关信息并未经过本网站证实,不对您构成任何投资建议,据此操作,风险自担,以上网页呈现的图片均为自发上传,如发生图片侵权行为与我们无关,如有请直接微信联系g1002718958。 

更多推荐