目录

自适应360度视频推流方案


概述

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,以此更加精确地调整画面的细节质量。

分块策略

  • 基本完全交付

  • 高级完全交付

  • 部分交付

https://i.loli.net/2021/10/25/oi8ZDSzyFj6dtXC.png

分块模式

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的比特率适应,需要有一个推流分辨率的恰当选择,进而在流质量、空间质量方差、视口预测误差和带宽效率之间获得完美的平衡。