LiveNas: Neural-Enhanced Live Streaming: Improving Live Video Ingest via Online Learning解读
目录
这篇文章的核心是将SR(super-resolution)应用到实时直播视频的Upstream上,也即在直播过程中从摄像头(产生数据)到服务器server的过程,SR的执行是在资源充沛的server端。该课题组之前发表过另一篇文章 Neural Adaptive Content-aware Internet Video Delivery (18 OSDI),是在点播过程中在客户端执行SR。作者为该论文建了 项目主页。
背景
在直播过程中,涉及到从ingest clients(摄像头)上传到server端的过程,再从server端发给用户。这个过程中涉及到video streaming(视频传输的码率分配),当网络带宽比较小时,那么只能上传低质量的视频到server端,从而降低用户的观看体验(因为用户只能下载这个低质量的视频)。因此,作者在server端部署SR模型,提升视频质量。
如上图所示,左边是ingest side,用户通过摄像头采集视频,由附近的基站传到CDN Server。右边是distribution server,由CDN传送给观看者。
问题出发点
由于是在直播,视频场景未曾见过,因此需要重新训练CNN(SR)模型,即online learning。如果使用训练好的模型,即pre-trained model,由于不满足iid,那么SR的效果不是很好。
因此,作者在server端部署两个ingest components。1、在服务器端,同时训练超分辨率模型train和进行推断inference。(也即同时有两个模型)2、在摄像头端,同时传输普通质量的视频和高质量的视频,因为需要提供高质量的视频作为labels去训练。
这里带来了三点挑战:
- 上传高质量视频时,会占用普通视频的带宽;
- 训练时,内容变化不大的视频SR模型可能收敛较快;内容变化较大的视频需要较大的资源;
- 应尽量减小SR模型训练和推断的时间差对质量提升效果的影响。
接下来的几个模块依次解决上面的挑战。
Quality-Optimizing Scheduler
Quality-Optimizing Scheduler的任务是平衡高质量视频和实时视频占用的带宽,目标是最大化最后获得的视频质量
max
v
t
,
p
t
Q
v
i
d
e
o
(
v
t
)
+
γ
⋅
Q
D
N
N
(
∑
k
=
0
t
p
k
)
s
.
t
,
∀
t
,
v
t
+
p
t
≤
C
t
\begin{aligned} \max _{v_{t}, p_{t}} Q_{\mathrm{video}}\left(v_{t}\right)+\gamma \cdot Q_{DNN}\left(\sum_{k=0}^{t} p_{k}\right) & \\ & s . t, \forall t, v_{t}+p_{t} \leq C_{t} \end{aligned}
vt,ptmaxQvideo(vt)+γ⋅QDNN(k=0∑tpk)s.t,∀t,vt+pt≤Ct
Q v i d e o ( v t ) Q_{video}(v_t) Qvideo(vt)表示上传普通视频时的质量, Q D N N ( ∑ k = 0 t p k ) Q_{DNN}(\sum_{k=0}^{t}p_{k}) QDNN(∑k=0tpk)表示经SR提升的质量, γ \gamma γ表示结合因子。 v t v_t vt和 p t p_t pt是普通视频和高质量视频对应的码率,是要解的变量。
作者采用了梯度上升方法。当导数越大时,说明增大
p
t
p_t
pt随质量贡献越大,则增加其值。
α
\alpha
α为学习率。
p
t
+
1
=
α
⋅
{
γ
⋅
d
Q
D
N
N
d
p
t
+
d
Q
v
i
d
e
o
d
p
t
}
+
p
t
p_{t+1}=\alpha \cdot\left\{\gamma \cdot \frac{d Q_{D N N}}{d p_{t}}+\frac{d Q_{v i d e o}}{d p_{t}}\right\}+p_{t}
pt+1=α⋅{γ⋅dptdQDNN+dptdQvideo}+pt
在求 d Q D N N dQ_{DNN} dQDNN时,作者采用最近的两个DNN质量变化值;在求 d Q v i d e o dQ_{video} dQvideo时,由于它是非线性的,作者观察到同一类型的视频在 v t v_t vt和 Q v i d e o Q_{video} Qvideo变量之间有相似的正则化曲线,因此先求出该视频类型的正则化曲线 N Q t y p e ( v t ) NQ_{type}(v_t) NQtype(vt)。然后给定 v t v_t vt、 v t − 1 v_{t-1} vt−1、 Q v i d e o ( v t − 1 ) Q_{video}(v_{t-1}) Qvideo(vt−1),就可以求出 Q v i d e o ( v t ) Q_{video}(v_{t}) Qvideo(vt)及其导数。
在训练时,作者每5s同步一次推断的SR模型的参数,每1s更新一次 p t p_t pt。
Patch Selection
Patch Selection的目标是选择部分高质量的视频帧作为label上传,使得最后SR获得的效果最好。作者首先计算整个帧编码后的质量;然后把一帧切分成 16 × 9 16 \times 9 16×9块patch,每帧随机抽取一块。最后,选取其中编码后的质量低于整体帧质量的patch出来,再从中选择少量进行传输。由于选取出来的帧质量较低,所以经过SR处理后的效果也越好。
同时,对于传输的patch,同时包含其时间戳和位置。将时间较近的patch在训练时赋予更高的权重,使模型更好地拟合最近的画面。
Content-Adaptive Online Learning
Content-Adaptive Online Learning的目的是当视频画面变动不大时,即模型提前拟合时,暂停模型的训练,节约资源。作者设置了
p
a
t
i
e
n
c
e
patience
patience变量,当两次训练之间质量的提升
Δ
Q
D
N
N
\Delta Q_{DNN}
ΔQDNN小于给定阈值
t
h
r
e
s
h
s
a
t
thresh_{sat}
threshsat时,
p
a
t
i
e
n
c
e
+
1
patience+1
patience+1;当
p
a
t
i
e
n
c
e
patience
patience达到给定阈值
c
o
u
n
t
s
a
t
count_{sat}
countsat时,则暂停训练。启动训练同理。
Super-resolution Processor
作者对近150个patches的样本赋予更高的权重。同时分为多GPU训练,在计算梯度时,越临近的批次计算得到的梯度权重越大。
最后作者提升的质量、节约的资源和用户QoE的提升等维度进行评估。
讨论
作者的核心是将SR应用到直播场景中并解决其中的需要在线训练模型、平衡lables占用的带宽、模型训练过程中拟合程度的差异等问题。作者主要讨论Upstream端视频质量、资源等的影响,但对于Downstream端用户QoE的更深入的讨论我认为还值得商榷,尤其是延时。同时,是否需要同时考虑用户的带宽、需求呢。假设大部分用户只能看1080p视频,那大费周章提升到4K是否是有意义的呢,而且看直播用户会更在意延时。Edge buffer, client SR是否都可以加进来呢。