来源:Demuxed 主讲人:Nitin Garg 内容整理:王秋文 这篇演讲针对全息视频通话进行了介绍:演讲者在对全息视频通话目前的整体架构进行了概述的基础上,指出了当前在便携式设备上实现全息视频通话面临的主要挑战和后续可以解决这些困难的思路。
目录
全息通话,从本质上来说就是 3D 通话,这种通话方式相比传统的 2D 通话来说具有更强的真实性、沉浸性和自然性。目前,全息通话在 AR 中的实现更成熟,但其也可以通过 VR 、手机和笔记本电脑实现。在这篇演讲中,演讲者主要介绍了全息通话的宏观架构和实现时需要克服的技术挑战两个方面。
在理想条件下,全息视频通话的架构应当如图 1 所示:在信号的发送端,用户被相机和传感器进行 360 度的环绕,从相机和传感器中捕获到的信息将被专门的硬件进行处理,不需要额外的算力;在接收端,将部署专门的硬件对接收到的信号进行处理、解码并在任意设备上完成渲染。
图1 理想情况下的全息系统示意图
在实际情况下,设备和网络条件可能有许多限制,如图 2 所示:用户可能仅有一到两台相机,并不能实现人体的全角度环绕覆盖,所以如果想要一个 360 度的三维模型,则需要对没有拍摄到的区域进行填充和重建;用户有可能仅使用一个算力有限的便携式设备,所以在整个流程中所使用过的压缩和处理算法需要对算力的要求更小;所使用的设备可能通过无线连接公用互联网,这意味着网络会面临着诸如受限带宽、网络波动、丢包、延迟等问题,所以在向网络中发送信息前应当对数据进行高质量的压缩。
图2 实际情况下的全息系统示意图
全息系统的整体宏观架构如图 3 所示。首先,发送端的相机和传感器分别捕捉该视角下的 RGB 纹理图像和深度数据,并将这些数据结合构成三维点云。得到的点云数据需要经过降噪、分割等预处理,并在经过数据压缩后使用实时传输发送到网络上。考虑到网络或数据源可能会有一定的波动,在接收端会设置一个数字缓冲区。接收到的数据在经过缓冲区后会进行解压,得到点云数据,并在点云的基础上重建出网格,最终渲染在显示设备上。
图3 全息系统的宏观整体架构图
每个相机和深度传感器都会捕捉到对应的 RGB 和深度数据,此外,还会有分割 mask 、视角参数、音频信息等数据。所有的这些数据都需要进行同步,并传送到网络中。RGB 图像的压缩技术已经相对很成熟了, H.264, H.265, VPx 等方法都可以在保证视频质量的同时降低码率。但深度信息的压缩技术还不成熟,作者在这里进行了一项实验来显示当使用 H.264 对深度数据进行编码时会造成的损伤。
作者使用 Kinect 相机拍摄了许多图像和深度数据样例,首先使用没有经过压缩的图像和深度数据通过全息系统进行重建,得到的结果如图 4 中左侧所示,人像的重建质量较高,几乎没有伪影和空洞;然后保持 RGB 图像依旧不被压缩,但使用 H.264 对深度数据进行压缩,同样使用全息系统进行重建,得到的效果如图 4 中右侧所示,可以明显看到有伪影、浮点、边缘模糊和空洞等问题。这个实验说明了两件事:一是深度信息相比色彩信息对量化和压缩更加敏感,二是人眼视觉系统对纹理的感知相比于深度信息来说更容易理解。
图4 深度信息压缩实验结果图(图中的背景可以忽略)
图 5 中的表格汇总了几种可以用于三维数据压缩的编码方式,其中 PCC 支持对点云进行编码,与全息系统所需要的三维数据压缩吻合,但这种方法比较新颖,目前正在进行标准化,因此算法相对并不成熟。同时没有芯片可以支持这种算法,所以现在并不了解这项算法所需的算力是否可以满足实时通信、实时传输和便携式设备的要求。
图5 可用于三维数据压缩的编码方式汇总
在 ABR 方式下,对于二维视频传输来说首先需要估计网络带宽,并在此基础上计算出视频比特率。之后,我们需要根据结果决定编码参数、分辨率、帧率和比特率。这个领域的发展已经相对成熟,整个过程是前向传播的,因此可以使用已有的模型选定合适的参数,并使用视觉质量评价指标作为标准对整个过程进行端到端的优化。
对于全息通话,我们仍从估计网络带宽开始,但需要把它分成多个视角下的视频比特率和深度信息比特率。在此基础上,我们需要决定 RGB 信息和深度信息量方面的编码参数。这一问题是一个复杂的优化问题且并不是前向传播的,因此,调节这些参数需要对不同信息流对最终全息重建结果质量的影响有着深刻的理解。此外,并没有明确的指标可以完成全息重建结果的评价。在传输部分,我们可以使用 UDP 协议进行不可靠的传输以实现拥塞控制、带宽估计、损伤修复等功能,从而保证端到端延迟可以满足实时交互的需求。就用户的体验质量而言,有延迟、平滑度、带宽利用率三个指标。在这三个指标中通常不会存在最优解,只能在三个指标中选择两个对模型进行优化。
在整个系统中,端到端时延由发送端外部延迟、网络传输延迟和接收端延迟三个部分组成。首先,处理三维数据会导致很大延迟,并对系统中的其他部分的延迟提出了更高的要求。其次,全息通话需要高比特率,这会增加空中接口延迟和排队延迟,并需要一个更大的缓冲区。因此,减少端到端时延这一问题在全息通话中相比其他环境下更具有挑战性。解决这一问题的突破口在以下几个地方:首先,可以通过使用更好的带宽估计、拥塞控制和编码率控制算法来减少比特率过冲,保证输出的比特率一直尽可能接近所估计的带宽,从而减少自身造成延迟的风险;其次,可以通过使用更好的损失修复和纠错算法来减少或取消重传次数。
在图 6 中可以观察到 WebRTC 的带宽估计算法的典型行为。其中,绿色的标签显示可用的带宽,而红色的标签显示目前实际达到的带宽。我们可以从图中发现带宽的利用率并不高。这个问题不仅出现在全息通信中,但全息通信的比特率是二维通信的两到三倍。因此,我们需要优化带宽估计算法和传输协议,以减少时延并提高带宽利用率。
图6 WebRTC 的带宽估计算法典型行为示意图
最后附上演讲视频:
http://mpvideo.qpic.cn/0bc3wmacaaaa5eakzzrimbrfbm6deczqaiaa.f10002.mp4?dis_k=1b944238e618aef6ffa182fc47a544ab&dis_t=1649675222&vid=wxv_2302375398565052418&format_id=10002&support_redirect=0&mmversion=false