随着5G时代的到来,互联网短视频、电影电视剧、电商直播、游戏直播、视频会议等音视频业务呈井喷式发展。

作为通用云端转码平台,阿里云视频云的窄带高清需要处理海量、不同质量的视频。对于中高质量的视频,现有的窄带高清1.0就能提供满意的转码效果,并带来达30%的带宽成本降低;而对于有明显压缩失真和成像噪声的低质量视频,需要使用性能更好的窄带高清2.0进行去压缩失真、去噪和增强处理从而得到更好的观看体验。

在2022稀土开发者大会上,阿里云智能视频云技术专家周明才以《阿里云窄带高清的演进突破与场景实战》为主题,深度分享阿里云视频云在窄带高清上的研发思考与实践。

01 窄带高清的源起

谈及窄带高清之前,先来聊聊普通的云端转码流程。转码本质上是一个先解码再编码的过程。从下图可以看到,普通云端转码是在用户端先形成一个原始视频,经过编码之后以视频流的形式传到服务端,在服务端解码之后做转码,然后再编码通过CDN(内容分发网络)分发出去,此时普通转码主要的功能就是做视频格式的统一,并在一定程度上降低码率。

窄带高清是什么?它与普通转码的主要区别是什么?通过窄带高清的字面意思可以理解,“窄带”是指让视频经过窄带高清转码之后,对带宽的需求变得更小。同时,“高清”是指经过转码后的画质仍然能够保持高清、丰富的视觉体验。

上图的下半部分也就是窄带高清的流程,与普通转码流程不同点在于,在云端做了解码之后,窄带高清还会对视频质量做增强处理,以及利用编码信息来辅助提升视频质量。经过质量提升后,再用针对主观质量做过优化的编码器进行编码,最后进行分发。

总结来说,窄带高清本质上解决的是质量提升和压缩的问题,其主要目标是追求质量、码率和成本的最优均衡。

阿里云早在2015年就已经提出了窄带高清这一概念。在2016年正式推出窄带高清这一技术品牌并且进行了产品化。

今年,阿里云推出了窄带高清2.0极致修复生成版本。相较于先前版本,最大特点是能生成细节纹理做到极致修复。

窄带高清全景图

窄带高清在做自适应参数决策时主要考虑三个维度:业务场景、视频热度、视频内容。

由于业务场景的不同,比如电商直播、游戏直播、赛事直播,所需要的视频增强和编码参数不一样;对于一些高热内容,如:在手淘场景中可以用窄带高清2.0启动二次转码来实现质量的进一步提升和码率的节省;在视频内容维度,会针对当前的视频做一些High-level和 Low-level的分析,High-level包含语义的分析,特别是ROI的检测,Low-level包括视频压缩程度、模糊程度、噪声程度的视频质量分析。

根据以上这些维度的分析,可以得到自适应参数的决策结果。根据此结果,窄带高清再去做相应的视频修复和视频增强。具体来说,视频修复包括强压缩失真、降噪等,视频增强包含细节增强、色彩增强、对比度增强等。

02 视频内容分析

ROI

ROI的主要目的是在码率受限或码率一致的情况下,将码率尽可能分配到人眼更关注的区域,比如在电影电视剧中,观众会更多关注主角的脸。

基于ROI的处理和压缩,有以下两个难点:一是如何得到低成本的ROI算法,二是如何基于ROI进行码控决策,例如:保证ROI区域主观质量提升的同时,非ROI区域的主观质量不会明显下降;同时做到时域连续、不闪烁。

在低成本ROI计算方面,阿里云自研了自适应决策的人脸检测跟踪算法,这是一款低成本、高精度的算法。在极大部分时间只需要做计算量极小的人脸跟踪,只有少部分时间做人脸检测,从而在保证高精度的情况下,实现超低成本和快速ROI获取。

从下图表格里面可以看到,阿里云自研算法相比开源人脸检测算法,精度和召回基本上没有损失,同时复杂度和计算耗时有明显数量级的下降。

在有了ROI算法之后,需要对场景、视频质量的自适应码率分配进行决策。针对此难题,主要考虑与编码器结合,在主观和客观之间取得均衡,同时保证时域的一致。

JND

传统视频压缩方法主要基于信息理论,从预测结构的角度减小时域冗余、空间冗余、统计冗余,但这对视觉冗余挖掘是远远不够的。

在JND算法里,主要采用了两个算法,一个是空域JND算法,一个是时域JND算法,拿到这些JND算法后,我们再基于MOS的自适应码控算法,对QP做自适应的分配,最终实现在通用场景及主观情况下,码率可以节省30%以上。

03 视频修复增强

细节增强

讲到视频修复增强,提及最多的就是细节增强部分,效果确实会比较明显。

通常的细节增强基于UnSharp Mask的框架。阿里云视频云自研的细节增强算法,有以下三个特点:第一是有更精细的图像纹理细节提取方式,能提取不同尺寸,不同特征的图像纹理结构,增强效果更优;第二,算法可以通过对图像内容纹理结构分析,根据区域纹理复杂度实现局部区域自适应增强;第三个特点是算法可以和与编码结合,根据编码器的编码信息反馈来自适应调整增强策略。

色彩增强

通常采集的视频素材,因为采集的设备或者光线亮度的原因,导致素材颜色可能看起来会比较暗淡。特别是在短视频场景,这类视频会失去视觉吸引力,因此需要色彩增强。

色彩增强存在哪些难点问题?具体如何做色彩增强?

像Ffmpeg里面有EQ filter,EQ filter会用UV通道去做色彩增强。而在我们的自研算法里,实际上是在RGB颜色空间去做增强,即会根据当前颜色点的饱和度,去做一些局部的自适应。同时,也会根据当前画面整体的情况,做一个整体的自适应。

在肤色保护这块,因为传统的色彩增强完之后,人脸区域会泛红,主观视觉上不自然。为了解决这一问题,我们采用了肤色保护的方法,对肤色区域做一个额外的保护。

这是一个色彩增强前跟增强后的效果对比。可以看到增强后的绿色的蔬菜、肉,整个的颜色看着会更饱满,对于美食类视频来讲更能够激发起观众的食欲。

对比度增强

在对比度增强中,使用了经典的CLAHE算法,其思路是对一个视频帧做分块,通常分成8x8个分块,在每一块统计直方图。然后统计直方图的时候,对直方图做一个Clip,就是所谓的对比度受限的直方图均衡,这主要是克服过度放大噪声的问题。基于CLAHE的视频对比度增强其实有一个难点,就是时域闪烁问题。这在学术界也是一个较难的问题,到目前为止,还没有得到非常彻底的解决。

降噪

降噪在ffmpeg里面有很多算法,比如像BM3D、BM4D、 NLM,这些算法的去噪效果好,但是复杂度非常高,会导致速度慢成本高,可能还需要配合噪声估计模块来一起使用。

另外还有一些相对均衡的算法,速度比较快,但是效果不强。如果想要提升它的去噪强度,通常会引入一些伪影或细节丢失的问题。

基于这些调研,我们自研的降噪算法采用基于多分辨率分解在上面做滤波框架。首先是对输入图像会做小波分解,得到高频跟低频信息。对于高频做软阈值处理。对于低频采用双边滤波降噪。经过这种滤波或者软阈值之后,再重新合成回去,就可以达到去噪目的。算法的核心难点在于如何去做加速,使得成本和运算速度能够满足转码要求,尤其是实时转码场景,对速度要求是非常高的。

加速

算法团队对于小波变换加速做了包括整形化很多的尝试,总是存在一些累积误差。所以我们最后采用了浮点型加速方式,用avx2浮点加速能够达到大概三倍的提升。

另外是双边滤波这部分的加速,传统的双边滤波基于邻域像素的操作。这种基于邻域的操作其实非常慢的。因此,我们采用了RBF这个快速算法,把二维的滤波分解成一维的,同时采用递归的方式去从左到右,从右到左,从上到下,从下到上,这样的一维操作,就可以实现类似于原始双边滤波效果。通过采用RBF这个快速算法,我们可以获得大概13倍的加速。此外我们还做了这种AVX2汇编的优化,这块能够额外加速十倍左右。

上图是SDR+的整体效果图,在经过SDR+的处理之后,画面整体的对比度、亮度、清晰度会有很大的提升,以上这些是针对视频增强做的一些工作。

CDEF去振铃

首先是CDEF去振铃,CDEF本身是源自于AV 1的一个技术,在CDEF处理之前,强边缘附近会有很多的毛刺和振铃。经过CDEF处理之后,画面中的噪声得到很大的剔除。

CDEF算法的核心步骤,其实是一个平滑滤波的过程,只不过它的平滑滤波的权重、偏差都做了一些特殊的处理。特别是它的滤波权重,跟当前像素点所在的8x8像素区域的主要方向是有关系,也就是图中左下角这里展示的,它会去做一个最优方向的一个搜索。搜索完了之后,根据主方向来确定它的这个滤波器抽头的方向和权重。此外,CDEF有两部分的权重,一个是主方向的WP,另一个是辅助方向WS。然后对于邻域点和当前点的灰度偏差做截断,这可以避免过平滑。

去压缩失真

除了用CDEF基于传统的图像处理算法做去振铃之外,还做了基于深度学习的去压缩失真的算法。这个算法是基于多帧的方案,更利于帧间连续性,不易出现帧间闪烁。“窄带高清”算法分成两大块:一个是质量检测模块,一个是去压缩模块。质量检测模块可以识别不同质量视频源的压缩程度,然后输出QP MAP作为压缩强度衡量指标。另一个是去压缩模块,输入多帧视频和对应帧的QP MAP,利用QP MAP进行自适应去压缩。

极致修复生成

极致修复生成主要是针对画质比较差的场景,去除较强的压缩失真的同时,生成一些因压缩而丢失的细节。在极致修复生成研发中,有以下几个要点:一是构建训练数据(在训练数据构建时,参照了Real-ESRGAN的二阶退化思路);二是对比较敏感的人脸区域,保证人脸生成稳定性;三是做模型压缩时,使得模型计算量低的同时保持良好的效果;四是模型部署。

极致修复的场景实战

在六月份NBA决赛直播时,百视TV希望通过使用我们的窄带高清2.0修复生成技术,来提升他们赛事直播的质量。如中间这个截图所示,截图的上半部分是主播直接推过来的视频效果,下半部分是经过极致修复生成之后的效果。

可以看到修复之后,Youtube这几个字母边缘会更清晰、干净,不再毛躁。其他篮球场景相关的,比如球员身后的数字及球员的身体轮廓,也会变得特别清晰。另外也有些生成效果,比如地板上有生成一些纹理,使整体的赛事观感大大提升。

除了自研的算法,阿里云也有一些高校合作项目,字幕修复就是其中一个合作项目的成果。可以看图中右下角实际修复字幕例子。该字幕取自一个老片MV,上面一行是原始MV里的字幕,可以看到“话”字的言字旁几条横笔画会有一些粘连,此外文字边缘还有很多的噪声。下面一行是经过字幕修复之后的效果,能够看到会变得很干净、清晰。

未来,窄带高清技术也将持续升级,通过算法能力进一步提升修复生成效果、降低码率和优化成本,通过打通前后端的处理,以及探索落地更多沉浸式场景,如:针对VR领域的窄带高清。与此同时,该项技术也将应用于更多的顶级赛事活动,在成本优化调和之上,实现视效体验的全新升级。


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。公众号后台回复【技术】可加入阿里云视频云产品技术交流群,和业内大咖一起探讨音视频技术,获取更多行业最新信息。

从技术全景到场景实战,透析「窄带高清」的演进突破相关推荐

  1. NBA赛事直播超清画质背后:阿里云视频云「窄带高清2.0」技术深度解读

    在半月前结束的NBA总决赛中,百视TV作为全网唯一采用"主播陪你看NBA"模式的直播平台,以"陪看型"赛事解说来面对内容差异化竞争.与此同时,百视TV还运用了& ...

  2. 窄带高清赋能体育赛事,世界杯高清直播背后的技术变革

    为什么80%的码农都做不了架构师?>>>    摘要: 当你观看视频如遇网络不好的情况,就会出现卡顿或系统提示切换成标清或流畅的画质,这个时候你会发现视频的清析度降低了.高清意味着高 ...

  3. 淘宝直播窄带高清技术

    本文来自阿里巴巴淘系技术部 高级算法专家王立波在LiveVideoStackCon 2020线上峰会的分享,从直播背景.直播痛点分析.窄带高清.云视频技术趋势几方面详细介绍了如何在确保用户体验QOS不 ...

  4. 阿里视频云最强转码技术揭秘:窄带高清原理解析+用户接入指南

    有人说2017年是中国网络视频发展的黄金时期,根据中国互联网信息中心发布的<中国互联网发展状况统计报告>显示,截止2017上半年,网络视频用户规模已经达到5.65 亿,半年增长3.7%. ...

  5. AI Codec,视频模板技术,高效视频处理,RTC+AI,感知编码,CV-CUDA,窄带高清AI...

    AI Codec,NPU硬件加速 Topic <基于AI和NPU的Codec变革> 孔德辉  中兴微电子 多媒体技术总监 伴随通信容量(包括5G以及千兆有线网络)的发展,高带宽为更多用户接 ...

  6. 原创:《Python之路实战40篇》PDF高清版,限时下载!

    内容简介 1 <Python之路40篇实战 .pdf>包含Python篇.数据分析篇.机器学习篇等 3 大模块,目录如下: 下载方式 2 关注公众号「Python与算法社区」,后台回复一个 ...

  7. android网络游戏开发实战pdf_Python项目开发实战+第2版PDF高清文档下载

    本书来自真正的开发现场,是BePROUD公司众多极客在真实项目中的经验总结和智慧结晶.作者从Python的环境搭建开始讲起,介绍了Web应用的开发方法.项目管理及审查.测试与高效部署.服务器调试等内容 ...

  8. 【Maven实战技巧】「插件使用专题」Maven-Archetype插件创建自定义maven项目骨架

    技术推荐 自定义Archetype Maven骨架/以当前项目为模板创建maven骨架,可以参考http://maven.apache.org/archetype/maven-archetype-pl ...

  9. 读《大型网站技术架构 核心原理与案例分析+李智慧-高清》有感

    其实作为一个刚入职场的小白(今年才毕业),对于java的领域一开始我是特别喜欢.从一开始的学习ssm框架培训,到现在真正的去公司参加项目.目前为止我进公司快一个月了,先从写测试类开始,用的是testn ...

最新文章

  1. 如何判断数据库的某个字段不为空方法
  2. spark连接Oracle数据库,Spark通过jdbc采用分区的方式从oracle读数据
  3. Android log 引发的血案
  4. 计算机java语言教程,计算机JAVA教程二讲Java语言基础知识.doc
  5. MySQL之长连接、短连接、连接池(转载:http://www.ywnds.com/?p=9801)
  6. python for selenium 数据驱动测试
  7. P5068 [Ynoi2015]我回来了
  8. 获奖者:​郑纬民,男,清华大学教授、博士生导师,《大数据》杂志主编。...
  9. Ubuntu Make新版上线:支持安装Swift编程语言
  10. exchange系列(一)exchange2010邮件服务器的安装与规划
  11. css不继承上级样式_这个笔记《CSS基本概念》,让菜鸟轻松学会给网页穿外衣
  12. 微信客服我是这样管理的
  13. 2021年下种子磁力最好用的网盘
  14. node项目报错had too many unstable restarts (16). Stopped. “errored”
  15. 基于法律裁判文书的法律判决预测
  16. 二元二次方程例题_2元1次方程100道题 七年级数学下册二元二次方程组100道计算题及答案!......
  17. OEM-ODM-OBM
  18. WorldFirst如何注册?WorldFirst收款账号注册流程!
  19. WPF中的MVVM模式
  20. 解决binwalk提取需要权限问题,binwalk提取文件报错。

热门文章

  1. 怎么利用抖音引流微信?抖音吸粉到微信的方法
  2. 基于像素的皮肤检测技术
  3. 一个阿里巴巴程序员的心路历程
  4. IDEA中svn的使用(含本地代码丢失找回,收藏不亏)
  5. 金蝶EAS,扩展报表,Java数据集代码示例
  6. 关于人类参考基因组及注释文件,一篇就够了
  7. python逻辑运算最详理解
  8. 1.Spark启动时hive出现another instance of derby may have already booted the database的错误
  9. 树莓派ibus输入法无法输入中韩文
  10. 谈谈新手如何学习PHP^_^