图1:Apple VisionPro
为了实现卓越的空间视频效果,空间视频采用了MV-HEVC(Multiview HighEfficiency Video Coding)视频编码标准,传输方案选择了标准的fMP4 in HLS。为了满足潜在的客户对空间视频的需求,腾讯云MPS也迅速打通了从MV-HEVC编码、ISOBMFF(ISO Base Media File Format)容器封装到HLS分发至Vision Pro上播放的完整链路。下面就让我们一起看下腾讯云MPS是如何支持空间视频的。
MV-HEVC编码
目前常用的3D视频内容,大都基于左右视点图像的编码、传输和显示来完成,一般左视点被称为主视角,右视点被称为辅助视角。业界的通常做法是将3D视频以SBS(side by side)的形式,把左右两个视点合并到一帧画面中,再将合并后的序列进行编码,如下图2所示。该方案的不足在于无法利用不同视点间的信息,因此无法消除不同视点之间的冗余信息。
图2:SBS形式的3D视频
针对3D视频尤其是多视点拼接3D视频的特性,JCT-3V标准专家组在2014年发表了适用于3D多视点视频编码的HEVC编码标准扩展:MV-HEVC。该扩展标准通过在NALU Header中引入了新的语法元素:LayerId,通过不同的LayerId来区分不同的视点。LayerId为0的是主视角,也被称为Base Layer,LayerId大于0的为辅助视角,也被称为Secondary Stereo Layer。MV-HEVC标准也在编码过程中引入了Layer间参考模式,从而可以有效消除不同视点间的冗余信息,提升编码效率。同时该标准也对参数集(VPS/SPS/PPS)进行了语法扩展,不同的Layer有着自己的参数集信息。
图3:SBS编码与MV-HEVC编码示意
图4:MV-HEVC视点间预测(Inter Layer模式)
实际上对于空间媒体处理中的空间视频处理、MV-HEVC等编码能力,腾讯布局比较早,早在Vision Pro发布之前,腾讯就已经完成了对MV-HEVC编码的支持以帮助压缩3D视频,平均压缩收益能超20%。
ISOBMFF容器封装扩展
除去编码技术上的支持,容器格式和传输协议也需要更好的升级以满足空间视频的分发支持。空间视频的容器封装方案,基于ISOBMFF标准,对MV-HEVC的支持进行了扩展。下面介绍下核心技术要点。
普通ISOBMFF视频使用Sample Description Box存储解码器参数信息,比如HEVC流就是HEVC Decoder Configuration Record。而在空间视频场景下,我们不仅需要存储主视角的参数信息,还需要辅助视角的参数信息。因此标准新增了存储辅助视角参数信息的L-HEVC Decoder Configuration Record,具体结构如下:
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,具体结构见下表1。该Box核心成员是StereoViewInformation Box,一个表示是否存在左视角和右视角的Box,在空间视频场景下二者都是存在的。
表1 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协议是历史悠久的基于HTTP的自适应码流传输协议,已经被广泛用于视频直播和点播领域。为了支持分发空间视频,在现有HLS标准的基础之上也引入了支持空间视频的特性,具体如下:
1. EXT-X-VERSION为12;
2. Multivariant Playlist中的EXT-X-STREAM-INF新增一个字段:REQ-VIDEO-LAYOUT,当码流为MV-HEVC的时候该字段设置为:REQ-VIDEO-LAYOUT="CH-STEREO";当为普通HEVC流时,该字段无需出现。
腾讯云媒体处理(Media Processing Service,MPS)针对海量多媒体数据,提供了云端转码和音视频处理服务。可以按需将云存储中的视频文件转码为适合在 OTT、PC 或移动端播放的格式,满足在各类平台将视频文件转为不同码率和分辨率的需求。此外,也提供了叠加水印、视频截图、智能封面、智能编辑等媒体处理服务。对于以MV-HEVC为代表的空间视频技术,目前已经支持其私有化部署,公有云方案也即将上线。
想要进一步了解或使用腾讯云媒体处理相关能力,欢迎扫描下方二维码添加音视频小姐姐微信,我们将安排产研同学专门跟进您的需求。