前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vision Pro中国区正式发售,腾讯云助力腾讯视频3D放映高清画质体验

Vision Pro中国区正式发售,腾讯云助力腾讯视频3D放映高清画质体验

作者头像
腾讯云音视频
发布2024-07-08 11:20:14
2370
发布2024-07-08 11:20:14
举报
文章被收录于专栏:音视频咖
Apple Vision pro于6月28日面向中国区发售,腾讯视频visionOS端也在此前正式上线vision pro的App Store。其中,腾讯视频全新推出的“客厅巨幕影院”的3D放映模块由腾讯云提供技术支持,为用户带来全新沉浸体验。

腾讯视频visionOS端全新视听体验

https://mpvideo.qpic.cn/0bc32maaeaaar4afvdegfrtfbu6daljqaaqa.f10002.mp4?

为了保证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编码标准的介绍,可参考往期文章《助力Vision Pro等3D应用,V265新增对MV-HEVC标准的编码支持》

具体来说, 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电影测试场景下,拥有自研MV-HEVC扩展的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,具体结构如下:

代码语言:javascript
复制
aligned(8) class LHEVCDecoderConfigurationRecord {
    unsigned int(8) configurationVersion = 1;
    bit(4) reserved = ‘1111’b;
    unsigned int(12) min_spatial_segmentation_idc;
    bit(6) reserved = ‘111111’b;
    unsigned int(2) parallelismType;
    bit(2) reserved = ‘11’b;
    bit(3) numTemporalLayers;
    bit(1) temporalIdNested;
    unsigned int(2) lengthSizeMinusOne;
    unsigned int(8) numOfArrays;
    for (j=0; j < numOfArrays; j++) {
        unsigned bit(1) array_completeness;
        bit(1) reserved = 0;
        unsigned int(6) NAL_unit_type;
        unsigned int(16) numNalus;
        for (i=0; i< numNalus; i++) {
            unsigned int(16) nalUnitLength;
            bit(8*nalUnitLength) nalUnit;
        }
    }
}

同时为了表示当前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(解码时间戳)。

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

除此之外,为了支持分发空间视频,腾讯云MPS在现有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码流的存储和带宽成本,助力更多用户享受到沉浸式空间视频的全新体验。

如果您想要进一步了解或使用腾讯云相关能力,欢迎扫描下方二维码添加音视频小姐姐微信,我们将安排产研同学专门跟进您的需求。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云音视频 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档