当前位置:首页 » 《随便一记》 » 正文

用AI打破编解码器内卷,高通最新几篇顶会论文脑洞有点大_量子位

20 人参与  2022年03月01日 14:50  分类 : 《随便一记》  评论

点击全文阅读


萧箫 发自 凹非寺
量子位 报道 | 公众号 QbitAI

用AI搞视频编解码器,现在路子有点“野”。

插帧、过拟合、语义感知、GAN……你想过这些“脑洞”或AI算法,也能被用到编解码器上面吗?

例如,原本的算法每帧压缩到16.4KB后,树林开始变得无比模糊:

2520d75e22be2182507274ec3e23218a.png

但在用上GAN后,不仅画面更清晰,每帧图像还更小了,只需要14.5KB就能搞定!

892cb7e2ce7b94874755232e1ac26e6e.png

又例如,用插帧的思路结合神经编解码器,能让最新压缩算法效果更好……

这一系列算法的思路,背后究竟是什么原理,用AI搞编解码器,潜力究竟有多大?

我们采访了高通工程技术副总裁、高通AI研究方向负责人侯纪磊博士,了解了高通一些AI编解码器中的算法细节和原理。

编解码器标准逐渐“内卷”

当然,在了解AI算法的原理之前,需要先了解视频到底是怎么压缩的。

如果不压缩,1秒30帧、8bit单通道色深的480p视频,每秒就要传输80+Mbps数据,想在网上实时看高清视频的话,几乎是不可能的事情。

目前,主要有色度子采样、帧内预测(空间冗余)和帧间预测(时间冗余)几个维度的压缩方法。

色度子采样,主要是基于我们眼睛对亮度比对颜色更敏感的原理,压缩图像的色彩数据,但视觉上仍然能保持与原图接近的效果。

cda3d94130ca85a15b107130f62187e4.png

帧内预测,利用同一帧中的大片相同色块(下图地板等),预测图像内相邻像素的值,得出的结果比原始数据更容易压缩。

f55ba92a4804acf259c6837a8d4681d8.png

帧间预测,用来消除相邻帧之间大量重复数据(下图的背景)的方法。利用一种名叫运动补偿的方法,用运动向量(motion vector)和预测值计算两帧之间像素差:

dbbf95323eefc685084e347ebd77f495.png

这些视频压缩的方法,具体到视频编解码器上,又有不少压缩工作可以进行,包括分区、量化、熵编码等。

然而,据侯纪磊博士介绍,从H.265到H.266,压缩性能虽然提升了30%左右,但这是伴随着编码复杂度提高30倍、解码复杂度提高2倍达成的。

这意味着编解码器标准逐渐进入了一个“内卷”的状态,提升的压缩效果,本质上是用编解码器复杂度来交换的,并不算真正完成了创新。

因此,高通从已有压缩方法本身的原理、以及编解码器的构造入手,搞出了几种有意思的AI视频编解码方法。

3个方向提升压缩性能

具体来说,目前的AI研究包括帧间预测方法、降低解码复杂度和提高压缩质量三个方向。

“预判了B帧的预判”

从帧间预测来看,高通针对B帧编解码提出了一种新思路,论文已经登上ICCV 2021。

I帧:帧内编码帧(intra picture)、P帧:前向预测编码帧(predictive-frame)、B帧:双向预测内插编码帧(bi-directional interpolated prediction frame)

ad0af13dfb3ebb5f732c54ba2a2f3a3b.png

目前的编解码大多集中在I帧(帧内预测)和P帧上,而B帧则是同时利用I帧和P帧的双向运动补偿来提升压缩的性能,在H.265中正式支持(H.264没有)。

虽然用上B帧后,视频压缩性能更好,但还是有两个问题:

一个是视频需要提前加载(必须提前编码后面的P帧,才能得到B帧);另一个是仍然会存在冗余,如果I帧和P帧高度相关,那么再用双向运动补偿就显得很浪费。

打个比方,如果从I帧→B帧→P帧,视频中只有一个球直线运动了一段距离,那么再用双向运动补偿的话,就会很浪费:

e281bb34fd783d909b7fe21c6c7c5edd.png

这种情况下,用插帧似乎更好,直接通过时间戳就能预测出物体运动的状态,编码计算量也更低。

但这又会出现新的问题:如果I帧和P帧之间有个非常大的突变,例如球突然在B帧弹起来了,这时候用插帧的效果就很差了(相当于直接忽略了B帧的弹跳)。

因此,高通选择将两者结合起来,将基于神经网络的P帧压缩和插帧补偿结合起来,利用AI预测插帧后需要进行的运动补偿:

2853be7b727c1f0496c748090e72ed4a.png

别说,效果还确实不错,比谷歌之前在CVPR 2020上保持的SOTA纪录更好,也要好于当前基于H.265标准实现开源编解码器的压缩性能。

6ebdb43a31f5d6a6cb06fe8b408eb964.png

除此之外,高通也尝试了一些其他的AI算法。

用“过拟合”降低解码复杂度

针对编解码器标准内卷的情况,高通也想到了用AI做自适应算法,来像“过拟合”一样根据视频比特流更新一个模型的权重增量,已经有相关论文登上ICLR 2021。

35c8dcacaac4841984a1435d0e098e05.png

这种方法意味着针对单个模型进行“过拟合”,对比特流中的权重增量进行编码,再与原来的比特流进行一个比较。如果效果更好的话,就采用这种传输方式。

a5fb4257d6bf777dd27253872c4d0196.png

事实证明,在不降低压缩性能的情况下,这种方法能将解码复杂度降低72%,同时仍然保持之前B帧模型达到的SOTA结果。

当然,除了视频压缩性能以外,单帧图像被压缩的质量也需要考虑,毕竟视觉效果也是视频压缩追求的标准之一。

用语义感知和GAN提高压缩质量

用语义感知和GAN的思路就比较简单了。

语义感知就是让AI基于人的视觉来考虑,选出你在看视频时最关注的地方,并着重那部分的比特分配情况。

例如你在看网球比赛时,往往并不会关注比赛旁边的观众长什么样、风景如何,而是更关注球员本身的动作、击球方法等。

那么,就训练AI,将更多的比特放到目标人物身上就行,像这样:

24af217463594de58cb98f1919ad3d77.png

从结构上来讲也比较简单,也就是我们常见的语义分割Mask(掩膜):

4cb671fb6f53e0fd415c75febe9158af.png

这种方法能很好地将受关注的局部区域帧质量提升,让我们有更好的观看效果,而不是在视频被压缩时,看到的整幅图像都是“打上马赛克”的样子。

d0b8aa96887f19d667fc274adc5be6c0.png

据高通表示,这种语义感知的图像压缩,目前已经在扩展到视频压缩上了,同样是关注局部的方法,效果也非常不错。

而基于GAN的方法,则更加致力于用更少的比特数生成视觉效果同样好的图像质量:

f9cc41d557d006aa1c61228731c2a051.png

据高通表示,数据集来自CVPR中一个针对图像压缩的Workshop CLIC,提供了大约1600张的高清图片,利用自研的模型,能在上面训练出很好的效果:

4a0acd4c6a9c87dfe26261903bb92e5e.png

也就是开头的图片效果,即使在大小被压缩后,基于GAN的图像还是能取得更好的视觉质量:

3cf48f630c5c48f940417a0bc0a152bb.png

期待这些技术能马上应用到手机等设备上,让我们看视频的时候真正变得不卡。

相关论文:
[1]https://arxiv.org/abs/2104.00531
[2]https://arxiv.org/abs/2101.08687

参考链接:
[1]https://www.qualcomm.com/news/onq/2021/07/14/how-ai-research-enabling-next-gen-codecs
[2]https://github.com/leandromoreira/digital_video_introduction


点击全文阅读


本文链接:http://zhangshiyu.com/post/35591.html

压缩  预测  高通  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1