概述
360 度视频的推流手段逐渐从视角独立型方案变成基于 tile 的视角依赖型方案。
相比于常规视频,360 度视频被编码成全向的场景。
自适应 360 度视频推流利用 DASH 框架来实现比特率的自适应。
分类
Viewport-Independent Streaming
服务端的任务
- 使用如 ERP、CMP 等视角独立型的投影方式,360 度视频被投影到一个球体上。
客户端的任务
- 投影之后的视频直接被传送到客户端,并不需要来自传感器的方向信息。
- 客户端需要支持对应的投影格式。
- 客户端像处理传统视频一样完成比特率自适应。
- 基于网络特征向将要到来的 segment 请求相同投影格式的表示
DASH 插件需要支持相同质量视频的推流。
应用
视角独立型推流主要用于体育、教育和旅游视频内容。
优点
- 简单
缺点
- 相比于视角依赖型方案视频编码效率低了 30%。
- 为不可见的区域要求大量带宽和解码资源。
Viewport-Dependent Streaming
终端设备的任务
- 只接受特定的视频帧内容,包括等于或大于视角角度的可见信息。
- 监测相关的视角作为用户头部移动的回应,并且向服务端发送信号来精确播放器信息。
- 为服务端准备和用户方向相关的几个自适应集。
客户端的任务
- 根据网络情况和估计的视角位置决定获取哪个自适应集。
难点
- 可视区域的确定
- 与用户头部移动的同步
- 质量调整
- 提供平滑的播放体验
现有的工作
各种投影方式在实际推流中表现如何?
- 相比于金字塔格式,为视角依赖型投影方案提出的多分辨率变体有最好的研究和开发(RD)性能。
- 偏移 CMP 获得了 5.6%到 16.4%的平均可见质量。
- 提出的框架可以基于已知的网络资源和未来的视角位置适应视角的尺寸和质量。
- 相比于理想的下载过程,这种二维自适应策略可以花费 20%的额外网络带宽下载超过 57%的额外视频块。
如何在网络资源受限的情况下提供高质量的推流?
- 为视角依赖型推流产生不同质量的 segment。
- 当流中只有有限的 representation 时,利用 Quality Emphasized Regions 策略来缩放特定区域的分辨率。
- 在拥塞网络条件下,执行了基于网络回应的视角大小和比特率的联合适应,结果显示,相比于传送全部的 360 度场景,动态的视角覆盖率提供了更好的画面质量。
- 这种基于网络回应的自适应也确保基于整体拥塞变化做调整时能改善视频质量。
- 为立体视频的背景和前景视图采用不对称质量。
- 可以分别为背景块和前景块分别节省 15%和 41%的比特率。
DASH 需要做什么?
- manifest 中需要包含视角位置信息和投影元数据。
- 优化获取 random access point 的周期来优化视角分辨率自适应体验。
- 考虑低延迟和活跃的视角切换。
Tile-based Streaming
传统视频被分成多个块,360 度视频在块的基础上还被分成多个大小相等或者不等的 tile,以此更加精确地调整画面的细节质量。
分块策略
基本完全交付
高级完全交付
部分交付
分块模式
1x1,3x2,5x3,6x4,8x5
其中 6x4 的模式实现了较好的带宽消耗和编码效率的折中。
在不同的带宽条件下,基本完全交付策略获得了大约 65%的带宽节约。
具体方案
ClusTile
基于分簇的方式,推送满足最小带宽需求的 tile 来克服编码效率和计算开销。
- 相比于传统和高级的基于 tile 的推流方案,分别实现了 72%和 52%的带宽节约。
- 当实际看到的和下载的 tile 有差异时,基于分簇的 tile 选取可能会导致选择不当。
Ghosh’s work
提议以最低可获得的质量下载周围和远处的 tile。
- 相比于其他算法,视角及其周边区域的可变质量提高了 20%的 QoE 水平。
Ozcinar’s work
介绍了一种自适应 360° 视频流框架。
利用视觉注意力度量来计算每个帧的最佳平铺模式。
使用选中的模式,为不同区域的 tile 分配非统一的比特率。
比特率的选取取决于估计的视角和网络状况。
因为很大部分的带宽被用于传输非视角内的 tile,框架难以优化视角内的质量。
Xie’s work
提出了一套优化框架,以此来最小化预取 tile 的错误,改善与不同比特率相关联的 tile 边界的平滑程度。
定义了两个 QoE 函数,目标是最小化:
预期质量失真$\Phi(X)$
当考虑 tile 看到概率时视角的空间质量方差$\Psi(X)$:
$$ \Phi(X) = \frac{\sum_{i=1}^{N}\sum_{j=1}^{M}D_{i,j} * x_{i,j} * p_{i,j}}{\sum_{i=1}^{N}\sum_{j=1}^{M}x_{i,j} * s_{i}} $$
$$ \Psi(X) = \frac{\sum_{i=1}^{N}\sum_{j=1}^{M}x_{i,j}*p_i * (D_{i,j} - s_i * \Phi(X))^{2}}{\sum_{i=1}^{N}\sum_{j=1}^{M}x_{i,j}*s_i} $$
基于目标缓冲区的自适应方法用于在需要短期视口预测的小缓冲区下进行平滑播放
在自适应的第 k 步,当第 k 个 segment 集合下载完成时,缓冲区占用率$b_k$由下面的式子给出:
$$ b_k = b_{k-1} - \frac{R_k*T}{C_k} + T $$
为了避免用尽所有块,缓冲区的占用率被通过设定一个目标缓冲区水平$B_{target}$所控制,即$b_k = B_{target}$。
平均空间质量方差是 0.97,比其他基于 tile 的策略小。
所提出的概率自适应框架在感知质量上实现了约 39% 的增益,平均降低了 46% 的空间质量方差。
Vander Hooft’s work
将 360 度帧划分成视角内区域和视角外区域。
- 首先为所有区域都选择最低质量,然后提高视角内 tile 的质量。
- 如果带宽依然可用,接着提高剩下的 tile 的质量。
- 启发式的方式在带宽可用的基础上积极提高视角内 tile 的质量。
- 没有考虑视角比特率调整时视角预测的错误。
Nguyen’s work
提出了一种新的自适应机制,它在每个 segment 中同时考虑头部移动和视角的预测错误,动态地决定视角内的比特率。
- 联合适应扩展块的覆盖范围和比特率。
- 在不同记录的用户头部运动下的实验评估表明,在不获取非视角内区域过多带宽利用率的情况下,视角内容质量有所提高。
DASH SRD 扩展
DASH 的 SRD 扩展提供了多种版本的 tile 的关联来节省更多的比特率。
Le Feuvre and Concolato’s work
他们应用了这个 SRD 特性,引入了同时为独立的和运动受限的 HEVC tile 的不同优先级设定,以此来高效地实现基于 tile 的方案。
- 使用开源的 GPAC 多媒体框架开发了一个 DASH 客户端,以此来执行带有可配置参数的基于 tile 的推流。
D’Acunto’s work
提出了一种 MPEG-DASH SRD 方法来促进可缩放和可平移视频的平滑推流。
- 总是下载低分辨率的 tile 来避免用户移动视角时的重新缓冲。
- 当前视野区域被上采样并展示给用户,以此来支持高质量的缩放功能。
- 用
JavaScript
实现了 SRD 视频播放器。
Hosseini’s work
基于 SRD 实现了视角内容、相邻 tile 和剩余 tile 的优先级推流。
- 用 6 个 3D 网格构建了一套 3D 座标系来在 3D 空间中平滑地表示 tile。
- 相比于基础的方式,这种区分质量的推流方案节省了 72%的带宽。
Kim and Yang’s work
使用改进的 MPEG-DASH SRD 来在质量可变的 tile 层中作选择。
- 基于他们之前的工作设计并实现了一个支持多层渲染的 360° VR 播放器,以支持高度不可预测的头部运动数据的高分辨率和低延迟流。
Motion-Constrained TileSet
在 HEVC 中,运动约束贴图集(MCTS)是将整个帧表示为子视频的相邻分割,并为自由选择的贴图集提供解码支持。
Zare’s work
将 MCTS 的概念应用到了全景视频推流中。
- 将两个质量版本的视频分割成 tile,以原始的分辨率推流视角内的 tile,以低分辨率推流剩余的 tile。
- 它已经表明,选定图块的可变比特率会降低 30% 到 40% 的比特率。
Skupin’s work
陈述了一种使用 HEVC 编码器的基于 tile 的可变分辨率的推流系统。
- 使用立方贴图投影的 360 度视频被分割成 24 个网格,每个代表了一个独立的比特流。
- 两种不同质量的版本被推流到客户端,例如 8 个 tile 以高质量推送,16 个 tile 以低质量推送。
Son’s work
在基于视角的移动 VR 推流中,为独立的 tile 提取和传输实现了基于 MCTS 的 HEVC 和可缩放的 HEVC 编解码器。
- 节省了超过 47%的带宽。
- 相比于原始的 HM 和 SHM 编码器表现不佳,因为 MCTS 限制了时间运动信息。
Lee’s work
用 MCTS 编码 360 度视频 tile,并使用显著性检测网络将混合质量的视频 tile 推流给终端用户。
- 通过显著性模型改进 MCTS 的使用,可以在不增加任何复杂性的情况下灵活地对感兴趣的 tile 区域进行解码支持。
Scalable Video Code
可伸缩视频编码 SVC 是实现 viewport 自适应的一种替代策略。
基础层总被需要并且能从客户端预取来避免重新缓冲事件。
提高层改善 viewport 质量并且可以在带宽充足的时候被请求。
SVC 促进了一种高效的网络内缓存支持来减少多个客户端请求相同内容时的分发开销。
Nasrabadi’s work
使用了一种可伸缩编码方案来解决 360 度视频推流的重新缓冲的问题。
- 存在质量波动的问题,因为没有使用任何机制来处理 viewport 的预测错误。
Nguyen’s work
建议使用 SVC 协同 viewport 预测来克服网络信道和头部运动的随机性。
- 实验表明,所提出的平铺层更新和后期平铺终止特征可使 viewport 质量提高 17%。
AI 方法的应用
背景:传统视频推流中使用强化学习来高效调整视频比特率和实现长期的 QoE 回报。
和传统视频内容不同,360 度视频包含几个新的方面比如 tile 大小、viewport 预测等。
直接将现有的强化学习自适应策略应用到 360 度视频上可能会降低推流性能。
Fu’s work
为 360 度视频提出了称为360SRL的一种序列化强化学习方法,它基于之前决策的 QoE 回报而非估计的带宽状况做出自适应决策。
- 360SRL 使用基于 tile 的推流模拟器来增强训练阶段。
- 跟踪驱动的评估表明,360SRL 比基线适应方法取得了 12%的 QoE 改善。
Jiang’s work
基于历史带宽、缓冲区空间、tile 大小和 viewport 预测错误等,利用强化学习来做 viewport 和非 viewport 内 tile 的比特率选择。
- 所提出系统的架构由状态缓冲区、视口预测 (VPP) 和 tile 比特率选择 (TBS) 代理组成。
- 状态缓冲区向 VPP 和 TBS 代理提供用户查看模式和网络状态。
- VPP 代理然后使用 LSTM 模型估计下一个 viewport 位置。
- TBS 代理由 Asynchronous Advantage Actor-Critic (A3C)算法训练以执行合适的比特率决策。
Quan’s work
通过卷积神经网络(CNN)提取像素运动来分析用户 QoE,并使用它对 tile 动态分组,从而在视频质量和编码效率之间提供重要的平衡。
- 使用了基于强化学习的自适应代理,它可以智能地使每个图块的质量适应动态环境。
- 使用真实 LTE 带宽跟踪验证该方案,在感知质量方面表现出了卓越的性能,同时也节省了带宽资源。
背景:深度学习使强化学习能够使用多方面的状态和动作空间进一步优化聚合回报。
Kan and Xiao’s work
设计了一套深度强化学习的框架,基于对环境因素的探索和开发,自适应地调整推流策略。
- 这两种方案都采用 DRL 的 A3C 算法来进行比特率决策,因为 A3C 算法能使代理变得越来越智能化。
- 性能评估表明,所提出的系统平衡了各种 QoE 指标,包括平均视觉质量、平均质量波动和重新缓冲事件等。
Zhang’s work
提出了一个深度强化学习模型,它考虑 viewport 预测准确度和网络状况,使用基于 LSTM 的 ACTOR-CRITIC(AC)网络动态地学习适应比特率分配。
- 方案能够很好地适应广泛的动态特性,并且与传统方法相比,提供了 20%到 30%的改进 QoE 回报。
总结
基于 tile 的推流只需要少量的服务端内容版本。
与依赖视图的推流相比,它包含更低的存储和处理开销。
提出的大多数方案为 viewport 及其临近的 tile 使用不同的分辨率,这会为高效推流减少带宽开销。
但是这种区分分辨率的 tile 为了防止 viewport 预测错误会显著地降低能察觉到的视频质量。
一个 50 个用户的主观实验表明,当混合 1920x1080 和 960x540 分辨率的块时,绝大多数用户能观察到明显的质量降低。
但是当混合 1920x1080 和 1600x900 分辨率的块时,用户只会注意到微小的差别。
对于高运动内容,这种混合效应甚至会导致严重的质量下降。
因此为了动态执行 tile 的选择和基于 DRL 的比特率适应,需要有一个推流分辨率的恰当选择,进而在流质量、空间质量方差、视口预测误差和带宽效率之间获得完美的平衡。