Neural Adaptive Content-aware Internet Video Delivery

版权声明:本文为博主[email protected](阿King)原创文章,不得以任何理由任何形式进行转载 https://blog.csdn.net/lj501886285/article/details/84306434

动机:

目前的视频传输方法存在两大缺陷:

  • 没有充分的利用客户端的计算力:客户端的计算力在逐年上升
  • 当前视频编码能力受限制
    很多视频在较大的时间区域内存在较大的信息冗余,而目前的视频编码只能减少小时间范围(GOP)内的信息冗余

目标:

提出一个新的视频传输架构,以低分辨率视频作为传输,在客户端通过DNN来提高视频的分辨率以达到高分辨率的效果。


系统设计

服务端

当视频上传时,服务器为其训练content-aware DNNs,用于提升客户端的视频质量

客户端

  1. 首先下载一个可用DNN文件列表(manifest list)
    在这里插入图片描述
  2. 根据自身的计算力选择一个合适的DNN(一个轻量级的客户端处理器)
  3. 根据integrated adaptive bitrate (ABR) algorithm去下载相应DNN chunks和video chunks
  4. DNN chunks加载到DNN processor中
  5. video chunks加载到playback buffer中,准备播放
  6. 播放器同时将video chunks也放到DNN processor中去进行super-resolution,处理结束后放回playback buffer中替换原始video chunks
  7. 高分辨率的video被播放

对于DNN processor

  1. 将video chunks解码成frames
  2. 对每一个frame应用super-resolution
  3. 重新编码成video chunks
    解码,super-resolution,编码 三个操作流水并行化处理,减少延迟
    阿King说:1和3的编解码过程是否可以通过调整架构去掉?

Content-aware DNN

NAS是基于MDSR的拓展

要求

  • DNN必须满足多分辨率输入
  • DNN的计算时间必须能够满足实时的要求
  • 为了满足前两条要求,DNN必须牺牲一些质量(layers和每个layer的通道数)来减少计算开销,这需要我们均衡DNN的品质和计算开销

MDSR的缺点

在这里插入图片描述

  • MDSR通过一个简单的网络支持多分辨率输入,并通过共享中间层来减少连接
  • 不同的分辨率对MDSR的计算开销影响非常大(高分辨率计算开销大,对分辨率计算开销小),为了满足高分辨率的实时要求,必须减小DNN的规模
  • 由于MDSR共享中间层,在降低高分辨率的DNN规模时,同样会影响低分辨率

提出

让每个分辨率的DNN独立开来
在这里插入图片描述
独立开来的各网络能够满足实时要求的最高配置如下表
在这里插入图片描述
参数为(层数layors , 通道数channels , 连接权值大小footprints size)
阿King说:各高低分辨率对之间的映射是否有共同点?即是否存在权值共享?例如是否能在240p-1080p中间抽取一部分权值即可实现720p-1080p的映射?一对一对的训练感觉好麻烦呀!!!

训练

  • 训练数据:低分辨率-高分辨率 对(训练DNN实际就是构造低分辨率到高分辨率的映射)
  • 训练目标:使得 DNN的输入出目标高分辨率 之间的差异最小化
  • 为了减少训练开销,使用微调(fine-tunning)策略
    1. 先训练一个通用的DNN模型
    2. 再在通用DNN模型权值的基础上为每个video episode训练Content-aware DNN模型

根据计算力适应性选择DNN

服务端

提供四种DNN:Low,Medium,High,Ultra-high

客户端
  • 在提供的DNN文件列表中获取四种DNN网络信息(layors , channels)
  • 根据DNN网络信息以随机权值初始化四种DNN
  • 在四种初始化的DNN中选择能够满足实时要求的最高品质的那个DNN
    阿King说:当然不能把四种DNN都先下载下来,再计算最优,再选择,这样太慢了!!!

可扩展的DNN

在这里插入图片描述

服务端
  • 完整的DNN较大,不可能全部下载下载后再去使用,可让客户端边下边播,已下载的DNN部分也可用于视频的质量提升,随着DNN的下载越来越完全,视频的质量提升的也越来越高
  • DNN的中间层由许多残差块(residual blocks)组成,每一个残差块都包含两个卷积层,DNN计算运行的时候可以绕过连续的残差块
  • 在训练的时候:
    1. 我们以50%的概率训练完整的DNN,另外50%的概率平均随机选择绕过路径(Bypassing paths)来训练DNN
    2. 计算DNN的输出与目标高分辨率之间的error,通过反向重传来更新权值
  • 在传输的时候,将DNN分成许多块(chunks)来传输,第一个DNN块由基本层(base layers)组成,可接受多种分辨率的输入
客户端
  • 下载第一个DNN块(base layers)后,构造起DNN
  • 随着DNN块的下载越来越完全,DNN的构造也越来越完全,视频质量也越来越得到提升。
  • DNN processor每个时间间隔(4s)会计算DNN的处理时间,计算满足实时要求的最大可用DNN层数

ABR算法

作用
  • 决定是取DNN chunk还是取video chunk
    • DNN优先策略则会牺牲视频流的质量
    • 视频流优先策略则会延迟DNN的下载
  • 如果第一次决定是取视频块,则改为取DNN块
    阿King说:尼玛为毛不一开始就规定先下载那个带有base layor的DNN chunks,还要用算法取决定干嘛?决定错了还有修正回来???
采用A3C的增强学习框架RL
  1. 对于算法迭代次数 t t ,有针对来自环境的状态 s t s_{t} 做出相应的反应 a t a_{t} ,随后环境产生回报 r t r_{t} 同时更新状态为 s t + 1 s_{t+1}
  2. 策略:定义一个函数,该函数计算对于状态 s t s_{t} 做出动作 a t a_{t} 的概率 π ( s t , a t ) : [ 0 , 1 ] \pi\left ( s_{t},a_{t} \right ):\rightarrow [0,1] 。其中 a t a_{t} 包含是下载DNN chunks还是下载video chunks? s t s_{t} 包含的内容如下表:(N=8)
    在这里插入图片描述
  3. 目标:学习这个策略 π \pi ,使得未来的回报总和 t = 0 γ t r t \sum_{t=0}^{\infty }\gamma ^{t }r_{t} 最大,其中表示 γ ( 0 , 1 ] \gamma\in (0,1] 回报系数, r t r_{t} 为目标QoE的度量,定义如下
    在这里插入图片描述
    N是video chunks的数量
    R n R_{n} 表示第N块video chunk下载的比特率
    T n T_{n} 表示第N块video chunk下载后的rebuffering时间
    μ \mu 表示rebuffering的惩罚
    q ( R t ) q(R_{t}) 表示接受的比特率 R n R_{n} 的质量
  4. 为了表示在使用DNN后视频质量的提升,我们定义一个 R e f f e c t i v e R_{effective} 来替代 R n R_{n} ,即对每一个video 在这里插入图片描述
    D N N M ( C n ) DNN_{M}(C_{n}) 表示video chunk C n C_{n} 在下载DNN chunk m m 后的提升的质量
    S S I M SSIM 是平均结构相似性(average structural similarity),用来视频的质量
    S S I M 1 SSIM^{-1} 将SSIM值由映射回视频比特率了
  5. 训练增强学习框架(RL framework)
    • 两个参数:actor和critic, actor表示策略,critic用于评估策略actor
    • 使用策略梯度法(policy gradient method)去训练actor和critic

例子

在这里插入图片描述

  1. player先下载一个manifest file
  2. DNN processor根据manifest file开始模拟四种DNN的开销,并选择一个可满足实时要求的最优DNN;同时player持续下载video chunks,下载了video chunk1-7
  3. DNN processor做出决定后开始下载DNN chunk1,该chunk中为DNN base layers
  4. video chunk1-5已经被播放,于是buffer中的chunk6-7使用已下载的部分DNN进行品质提升,效果为 1 s t 1^{st} DNN,此时为24sec
  5. 随后下载video chunk8-9和DNN chunk2
  6. 。。。
  7. 在32sec时达到 2 s t 2^{st} DNN
  8. 在44sec时达到 3 s t 3^{st} DNN
  9. 在52sec时达到 4 s t 4^{st} DNN
  10. 在60sec时达到full DNN

论文来源:Neural Adaptive Content-aware Internet Video Delivery
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lj501886285/article/details/84306434