1、前言
自从苹果公司在iPhone 4引入了视网膜屏幕的概念以来,手机的分辨率自此开始突飞猛进。当前,1920x1080甚至更高的分辨率已经成为了标配。不过当我们谈到实时音视频聊天的时候,无奈受制于上行带宽,有相当一部分用户还是只能发送码率在250kbps以下的小分辨率视频码流,这就白白浪费了用户的高清手机屏幕。
要怎么样才能不增加上行码率的情况下,让用户在接收端可以看到更高清的实时视频呢?
超分辨率(Super-Resolution)是近几年迅速发展起来的一项图像放大技术,即通过硬件或软件方法提高原有图像的分辨率,通过一幅或者多幅低分辨率的图像来得到一幅高分辨率的图像过程就是超分辨率重建。那是否可将超分辨率技术用在实时视频,在低码率甚至超低码率可以看到提升一档分辨率的实时视频?
传统的超分辨率是基于图像的纹理判断纹理的方向,并在此基础上做增强。而近一年,利用机器学习来做超分辨率越来越成为一种趋势。基于机器学习的神经网络结构,可以更好地学习低分辨率和高分辨率图像之间残差的特征,并且修复失真,还原到更高一档的分辨率。基于机器学习的超分辨率技术,像SRCNN、SRResNet、VDSR等网络模型,在超分辨率效果上体现出了不可比拟的优势。
腾讯音视频实验室和优图实验室X-lab的戴宇榮老师的团队联合开发的基于神经网络的实时视频超分辨率技术,在极小的神经网络模型大小的条件下,在手机实时视频通话上实现了基于机器学习的超分辨率技术,起到了主观上提升一档分辨率的效果。此技术即将应用在手机QQ 7.3.5的iOS版本上的实时视频聊天。
学习交流:
- 即时通讯开发交流群:320837163[推荐]
- 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM》
(本文同步发布于:http://www.52im.net/thread-1308-1-1.html)
2、技术背景
不少同学可能已经知道,在图片上做基于神经网络的超分辨率已经有不少,比如优图实验室X-lab的超分辨率技术已经在QQ空间相册的点击看大图场景落地。然而将超分辨率技术用在实时视频聊天,音视频实验室在手机QQ上双人实时视频聊天应该是公司内的第一个产品。
因为和图片的超分辨率不同,实时视频聊天时的超分辨率对性能和效果有更苛刻的要求,在很小的性能预算下达到主观提高一档分辨率的效果,确实对研发人员提出了更高的要求。下面先来看下图片超分辨率和视频超分辨率的区别。
也正是因为视频前后帧存在着一定的相似度,超分辨率视频可以利用视频前后帧的相关性,借助其统计特性,进一步提高超分辨率的效果。尤其是在超过两倍放大的场景,基于前后帧相关性的视频超分多帧模型体现出了明显超过传统放大算法的效果。
3、整体方案
多帧视频超分模型固然是有不可比拟的优势,现阶段的绝大部分手机性能还不能胜任视频多帧超分模型的计算量。为了让更多的手机用上视频超分这样的黑科技,我们经过反复实验和权衡,不断优化性能和效果,最终决定先使用实时视频聊天逐帧超分辨率的方案落地。下面是我们的超分的方案的流程图。
我们将编解码前后的视频作为输入神经网络训练,使网络学习到恢复编解码+缩放带来的两种失真特性,清晰边缘的同时不会放大编码带来的失真。同时,我们优化机器学习网络结构和前馈库的性能,做到了手机上实时逐帧超分辨放大。值得一提的是我们还创新性地在超分辨率后做了经典的增强算法。究其原因,超分辨率算法消除了锯齿效应后,再做简单增强算法,可以使得边缘更清晰,细节更丰富。综上优化,主观上有提升一档分辨率的效果。
下图是经过编解码的H.265视频码流解码后经过双立方放大和超分放大的对比截图:
我们的网络模型和别的模型在性能和效果比较情况如下:
4、性能优化
基于神经网络的超分辨率技术要用在实时视频通话,其中最大的难点就是运算量太大。优化性能是涉及到各个层面的系统工程。除了优化神经网络结构,我们还将前馈网络库全部在iPhone的GPU上实现。
下面是我们在各个层面所做的性能优化:
通过这些优化,横向比较逐帧超分当中近期最优秀的VDSR模型,在放大后的质量对齐的情况下,我们速度比VDSR快了10倍以上。
下面是最终上线版本的性能数据:
5、手机QQ中的运行效果
下图是手机QQ 7.3.5版本开关超分辨率的性能数据对比。
在帧率和码率一致、时延几乎不增加情况下,用专用清晰度测试工具测试的清晰度数据有了明显提升:
下面这个视频是超分辨率合入手机QQ 7.3.5视频通话的效果,点击可看到细节:
(点此查看在线视频)
6、未来展望
音视频实验室的实时视频超分技术,是首次将大计算量的神经网络用在手机客户端实时视频这样性能预算吃紧的场景的一次大胆尝试,目前来看取得了不错的效果。视频超分辨率除了可以提高视频质量,还可在保持相同视频质量的前提下节省上行、下行带宽。
视频超分项目接下来的工作重点主要在下面两方面:
1)实时视频的多帧超分模型还在继续优化中,目前已经取得不错的进展,同等性能消耗下将进一步提升视频超分效果,第一版预计将在下一个手机QQ版本上线;
2)在神经网络前馈库性能上继续优化,并且覆盖更多平台。
综上,我们将持续优化实时视频超分辨率技术,相信这样的黑科技也一定会为更多场景更大的赋能。
附录:更多实时音视频文章
[1] 开源实时音视频技术WebRTC的文章:
《访谈WebRTC标准之父:WebRTC的过去、现在和未来》
《良心分享:WebRTC 零基础开发者教程(中文)[附件下载]》
《新手入门:到底什么是WebRTC服务器,以及它是如何联接通话的?》
《[观点] WebRTC应该选择H.264视频编码的四大理由》
《基于开源WebRTC开发实时音视频靠谱吗?第3方SDK有哪些?》
《开源实时音视频技术WebRTC中RTP/RTCP数据传输协议的应用》
《开源实时音视频技术WebRTC在Windows下的简明编译教程》
《网页端实时音视频技术WebRTC:看起来很美,但离生产应用还有多少坑要填?》
>> 更多同类文章 ……
[2] 实时音视频开发的其它精华资料:
《腾讯音视频实验室:使用AI黑科技实现超低码率的高清实时视频聊天》
《即时通讯音视频开发(五):认识主流视频编码技术H.264》
《即时通讯音视频开发(九):实时语音通讯的回音及回音消除�概述》
《即时通讯音视频开发(十):实时语音通讯的回音消除�技术详解》
《即时通讯音视频开发(十一):实时语音通讯丢包补偿技术详解》
《即时通讯音视频开发(十三):实时视频编码H.264的特点与优势》
《即时通讯音视频开发(十五):聊聊P2P与实时音视频的应用情况》
《即时通讯音视频开发(十六):移动端实时音视频开发的几个建议》
《即时通讯音视频开发(十七):视频编码H.264、VP8的前世今生》
《学习RFC3550:RTP/RTCP实时传输协议基础知识》
《基于RTMP数据传输协议的实时流媒体技术研究(论文全文)》
《还在靠“喂喂喂”测试实时语音通话质量?本文教你科学的评测方法!》
《实现延迟低于500毫秒的1080P实时音视频直播的实践分享》
《技术揭秘:支持百万级粉丝互动的Facebook实时视频直播》
《理论联系实际:实现一个简单地基于HTML5的实时视频直播》
《首次披露:快手是如何做到百万观众同场看直播仍能秒开且不卡顿的?》
>> 更多同类文章 ……
(本文同步发布于:http://www.52im.net/thread-1308-1-1.html)