思维之海

——在云端,寻找我的星匙。

阅《Neural-Enhanced Live Streaming: Improving Live Video Ingest via Online Learning》

这篇论文可以说是在蹭DL的热度Doesn’t matter though)。“Neural-Enhanced”指的就是把深度学习引入流媒体传输领域。另一个值得注意的关键词是“Online Learning”,即在线学习,这说明深度学习算法在这里面需要动态调整。从中可以感受到一点强化学习的影子。最后,“Live Streaming”说明是直播,也就是从单个用户端到群体的流媒体分发。

直播流媒体数据量如今已经占据了相当一部分的网络带宽。(Here

With its steady growth, market reports predict that live video will take up 17 percent of Internet video traffic by 2022.

流媒体传输中存在什么非常实在、紧急的问题?自然是网络带宽和计算资源的limitation,即时空限制。

论文提出了LiveNAS,可以动态调整服务器端的计算资源,并利用在线学习的方法提升实时的用户服务质量。

文章的CCS Concepts分类为:

  • Information systems → Multimedia streaming
  • Networks → Network resources allocation

本篇论文源于高等计算机网络课程的阅读任务,领域为“流媒体与网络传输 ”。

References

Neural-Enhanced Live Streaming: Improving Live Video Ingest via Online Learning

基本概念

Quality of Experience QoE

Quality of Experience (QoE or QoX)

跟服务质量(Quality of Service, QoS)的功能类似。

QoS用来度量网络服务的性能。QoE则用来度量流媒体传输的性能。

QoE采用了综合主观和客观的用户体验的测量方法。因此,QoE是user-dependent的。一般来说,一个合理的QoE度量的获取,需要基于大规模用户数据来提升准确度。

内容交付网络 Content Delivery Network CDN

Content Delivery Network: A Survey

Recent Developments in Content Delivery Network: A Survey

CDN一般作为现代网络的一个中间层。CND的设计目标是降低网络中的流量压力——传统的端到端网络传输对于内容分发来讲是低效的,并且根本不能做到大规模分发(中心服务器承担的访问压力过大)。

CDN网络中有存储节点(surrogate servers)专门用来存放高频的内容,使得内容分发更高效。

可以认为CDN借鉴了部分的分布式系统的思想。

CDN常常跟边缘计算(Edge Computing)联系在一起。

超分辨率 & 上采样

Deep Learning for Image Super-resolution: A Survey

超分辨率 | 综述!使用深度学习来实现图像超分辨率

【超分辨率】—图像超分辨率(Super-Resolution)技术研究

超分辨率(Super-resolution)是一种对低质量图像、视频的上采样(Upsampling)技术。

深度神经网络可以有效地进行超分辨率,这方面的研究也很多。

本论文中采用超分辨率技术都是基于监督学习的,意味着要有超清的图像才能进行训练。

LiveNAS简介

下图是LiveNAS分发系统:

Live Streaming System

下图是端到端的流媒体分发系统:

直播中双方实体的目的和需求是不对等的。

对于直播方(distribution side)来说,它更看重内容是否能够被有效地分发给成千上万的人;对于接收方(ingest side)而言,它更看重收到的直播流是否有足够低的延迟。

端到端的局限性

在一个端到端的系统中,对直播方的带宽和计算资源要求很高。当直播方和中心视频服务器的连接不稳定时,所有观众都会受到影响。

并且,在带宽受限的情况,观众是无法享受到诸如4K这样的实时高画质直播的。

超分辨率

NAS引入了神经网络的超分辨率技术,通过生成式模型的方法,把低画质的视频变成高画质的视频。

但是这种方法需要对每个video单独预训练一个DNN,也就是需要大量的预备时间,所以还不能直接应用到直播这样的场景中。

However, live video cannot benefit from NAS because it requires a pre-trained DNN model for each video and ten minutes of DNN training is required on GPU per minute of video.

在线训练

在线训练 + 超分辨率,(这个,加这个)就变成LiveNAS啦。

引入在线训练,原来NAS需要的预备时间就省掉了。因此可以用到直播行业。

Contribution

  • Video quality improvement for end-users
    • LiveNAS带来的用户端QoE指标的提升
  • 4K live in constrained environments
    • 利用超分辨率获得伪4K推流
  • Quality optimization with online training
    • 在线训练时,在高质量转换和实时推流两方面之间进行权衡
  • Resource optimization for online training
    • 在不同场景下自动地优化在线训练的策略;比如,当场景变化不大的时候,降低在线训练量,从而节约资源;当超分辨率质量下降时,增加更多的GPU、计算资源,加强在线学习……

Ingest Client Design

Quality-Optimizing Scheduler

LiveNAS scheduler在有限带宽的情况下,需要在以下两者之间权衡 :

  • high-quality labels $p_t$
    • 传输高质量图像用作标注数据,以启动在线训练
  • live video $v_t$
    • 传输低质量图像用于流媒体传输

这两者都需要占据带宽。

最后变成优化下面的目标:

其中,左边是video质量,右边是在线训练期望获得的质量提升。通过参数调整,让两部分之和最大。

然后弄弄梯度下降即可。

Patch Selection

因为直播带宽有限,所以一段时间内只能采样其中一部分的高画质画面打包成一个patch,然后发送给服务器上的远端DNN训练。

Patch selection就是选择最优的训练集,以期获得最大收益。

比如,把那些经过encoded失真最严重的帧作为优先训练的对象。

但是即使做了selection,图片的数据量仍然太大了。图中的Compression就是图片压缩算法,在损失一定可接受的精度(5%)的情况,把图片的大小压缩到平均1/10左右。

Media Server Design

Content-Adaptive Online Learning

Online learning也需要在GPU计算量和视频质量之间权衡。

也就是根据超分辨率结果质量来动态调整GPU资源使用量。

注意,这里调整的依据是差分质量,也就是DNN生成的质量对时间的导数。

Super-resolution Processor

这里主要介绍的是并行化技术。

  • 把一张图片切分成多个子图,分给若干GPU独立生成超分辨率子图
  • 协作学习,把图片集分给多个CPU,共同计算梯度,并让那些在最近的patch训练得到的梯度获得更大的权重

总结与展望

效果图:

LiveNAS,一种新的直播分发框架,引入超分辨率深度神经网络来提升直播视频质量,同时不致加重ingest-side的网络带宽负载。

通过引入Quality-Optimizing Scheduler、Content-Adaptive Trainer等新结构,LiveNAS很好地实现了在线学习,并取得了不错的性能。


我想,超分辨率的技术可不可以引入无监督学习?这样,对于上行流量的带宽需求就会更小了,因为不需要输送大量用于监督学习的标签样本(占用大量的流量)。但这样可能会影响整体的技术效果。

虽然超分辨率技术的研究不是本文,甚至也不是这个领域的重点,但是它的确在制约着LiveNAS及其类似框架的性能上限。因此,研究一定的超分辨率技术的机理,做出一定改进,也是未来一个可能的方向。

当然,内容分发网络是否可以更高效,底层网络传输和硬件性能的提升对整个技术的效果也会起到很好的作用。

目前看来,LiveNAS更像是一个根据已有的工具设计的一个产品。

对于一个产品的改进,除了框架的设计以外,所用到的技术才是真的核心。