「」基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统( 二 )


这种方式特点是可扩展性强 。 不同时刻不同用户的视角各有不同 , 如果每一个的用户都采用一个单独的编码器 , 服务端没有如此多的计算资源实现的;而Multiple streams方式只需要采用固定数量的编码器就可以服务于海量用户 。
但是这种方式的缺点也很明显 。 首先 , 实现起来比较复杂 。 在服务端 , 全景图像的每一个区域的视频流 , 都需要严格的帧级别时间戳同步;同样 , 客户端接收到多路视频流解码之后 , 也需要进行严格的同步渲染 。
其次 , 如果对原始8K视频进行切分的粒度较小 , 会导致用户视角覆盖的区域比较多;客户端则需要同样多数目的解码器 。 而很多设备无法支持多个解码器 。 因此这种方式不太常用 。
Tiles in HEVC
「」基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
本文插图

针对上述不足 , OMAF标准提出了基于HEVC Tile来实现的全景视频 。 类似于H264 Slice , Tile是HEVC中引入的并行化编码工具 。 两者的区别在于Slice仅支持横向划分的 , 而Tile支持横向纵向的矩形的划分 。 那么Tile有什么优点呢?
第一 ,与Slice相比 , 它保留了纵向像素点的关联度 , 比Slice压缩效率更高 。 第二 ,Tile header size在bitstream中比Slice header更小 , 进一步提升了编码效率 。
在全景视频编码中 , 对原始图像的切分使用HEVC Tile来实现 。
Motion-Constrained Tile Set (MCTS)
「」基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
本文插图

在编码端 , 对每一个HEVC Tile的预测编码进行一定约束 。 帧内预测只在当前Tile进行 , 禁止tile间预测编码; 同样 , 帧间预测也约束在同样空间位置 , 不同时间序列的Tile中 。 通过对预测编码的这些约束 , 就可以实现每一个Tile的序列 , 不依赖于其它位置Tiles的独立解码 。
经过MCTS编码后 , 根据用户当前的视角 , 选择多个Tiles生成一个HEVC兼容的Bitstream 。 这种方式可以实现一次编码 , 根据不同Tiles的组合 , 产生多个不同视角的Bitstreams服务于不同的用户 。 极大的节省了服务端的视频编码计算资源 。 在客户端 , 也仅需要一路标准HEVC解码器 。 当用户视角改变导致Tiles的组合发生变化时 , 需要等到最近的IDR Frame即GOP边界 , 才能产生对应新的Bitstream 。
HEVC MCTS-based coding scheme
「」基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
本文插图

上图是所采用的HEVC Tile编码的方式 。 对8K原始图像进行原始分辨率的HEVC Tile编码;同时 , 把原始图像缩放到一个较小分辨率 , 进行另一路低分辨率HEVC Tile的编码 。
由于用户视角可以在任意时刻发生切换 , 然而HEVC Tile视频流只能在GOP的边界才能重新组合不同区域的Tiles 。 当用户切换到新的视角 , 而新区域的HEVC Tiles还来不及传输时 , 用户会体验到短时间的黑屏现象 。 为了避免视角快速切换中的黑屏 , 除了产生原始分辨率HEVC Tiles流之外 , 会额外传输覆盖全部区域的较低分辨率的流 , 作为原始分辨率HEVC Tiles的后备 。
当用户快速转动视角时 , 如果客户端还没有接收到原始分辨率的HEVC Tiles , 这部分缺失的区域会使用低分辨率的HEVC Tiles呈现给用户 。 用户会体验到一个短暂的图像从模糊到清晰的过渡 , 避免了黑屏的体验 。
原始分辨率和低分辨率的两路HEVC Tile视频流 , 通过Bitstream Rewriter合成一路HEVC兼容Mix Resolution流 。 客户端只需要一个HEVC Decoder即可实现Mix Resolution的解码 。
DASH vs WebRTC
「」基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统


推荐阅读