360 度流媒体视频框架
视频采集和拼接
使用不同的 360 度视频采集相机可以将视频内容存储为 3D 的球形内容
使用不同的投影策略实现降维
策略主要分为 2 种:视角独立型和视角依赖型
视角独立型
整个 3D 的视频内容被按照统一的质量投影到 2D 平面上
主要包括等距长方形投影和立方贴图投影
等距长方形投影(ERP)
使用左右偏向和俯仰值将观察者周围的球体展平到二维表面上
视角范围:左 180 度~右 180 度、上 90 度~下 90 度
缺点:
- 极点处会使用比赤道处更多的像素进行表示,会消耗有限的带宽
- 由于图像失真导致压缩效率不足
立方贴图投影(CMP)
六面立方体组合用于将球体的像素映射到立方体上的相关像素
在游戏中被广泛应用
优点:
- 节省空间,相比于等距长方形投影视频体积能减少 25%
缺点:
- 只能渲染有限的用户视野
视角依赖型
视角内的内容比之外的内容有更高保真度的表示
主要包括金字塔投影、截断方形金字塔投影(TSP)和偏移立方贴图投影
金字塔投影
球体被投影到一个金字塔上,基础部分有最高的质量,大多数的投影区域属于用户的视角方向
优点:
- 节省空间,降低 80%的视频体积
缺点:
- 用户以 120 度旋转视角时,视频的质量会像旋转 180 度一样急速下降
截断方形金字塔投影
大体情况和金字塔投影相同,区别在与使用了被截断的方形金字塔
优点:
- 减少了边缘数据,提高了高码率视频的推流性能
缺点:
- 使边缘更加锐利
偏移立方贴图投影
与原始的立方贴图投影类似,球体的像素点被投影到立方体的 6 个面上
优点:
- 视角方向的内容会有更高的质量,提供平滑的视频质量变化
缺点:
- 存储开销很大
编码视频内容
目前主要的编码方式有 AVC/H.264 和 HEVC/H.265。
H.264
使用 16x16 的宏块结构对帧编码。
因为使用了编码器的动作预测的特性,编码的数据大小得到减少。
H.265
相比于同质量的 H.264 编码方式,H.265 编码减少了 50%的比特率。
H.265 支持 tiling 特性来实现高效视频推流。
每个 tile 在物理上被分割然后在普通的流中拼接,并且使用一个解码器来解码。
VVC
相比于 H.265,下一代标准 VVC 有望提高 30%的压缩效率。
分包和传输
分包
使用 DASH 协议分包。
传输
依赖于雾计算和边缘计算等技术可以缩短分发中心和客户端之间的距离进而实现快速响应和低缓冲时间。
渲染和展示
客户端处理
主流方案是使用客户端处理,但是由于会处理不属于用户视角范围内的视频内容,所以会造成计算资源的浪费。
云端处理
另一种方案是使用云端处理,只有用户视角内的视频内容会被传输到客户端,没有更多的带宽和客户端硬件资源要求。