B站画质补完计划(2):视频超分让像素细腻生动

本期作者

1 前言

为了给用户提供更清晰的画质体验,B站自研的超分辨率算法已经在站内广泛应用,支持了如《赛马娘》、《流浪地球2》、《权力的游戏》、英雄联盟S赛赛事直播等知名番剧、电影电视剧以及重要游戏赛事直播的 4K 视频流生产。

2 超分算法的应用背景

2.1 不同分辨率视频的画质差异

随着终端显示技术的快速发展,4K 规格的终端显示设备已经逐渐开始普及,用户对于 4K 清晰度视频的观看需求也呈现出不断增长的趋势。然而,由于制作年代久远、拍摄设备受限等原因,流媒体平台上大量视频片源还是以 1080P、720P 的规格存在,无法满足用户在高规格显示设备上观看 4K 清晰度视频的需求。

那么,1080P 视频和 4K 视频的画面质量差距有多大呢?可以参考图1中的视频画面对比,由于 1080P 视频画面里没有足够多的有效像素去描述草地的纹理、圆柱的线条,因此其呈现的草地纹理细节远没有 4K 视频画面中丰富,圆柱线条也远没有 4K 视频画面中流畅。

为了满足不断增长的 4K 清晰度视频的观看需求,可以将低分辨率视频增强提升为高分辨率视频,所使用的技术称为超分辨率( Super Resolution )。

图片

图1. 1080P 视频和 4K 视频的画面质量对比

 2.2 传统插值超分算法的局限

各类超分辨率算法中,在实际应用层面覆盖范围最广的是传统插值超分算法。传统插值超分算法(最近邻差值、双线性插值、双三次插值等等)的原理是利用原始画面中的部分像素作为原始信息并根据某些规则对新像素的像素值进行预测。传统插值超分算法解决的问题是可以将原始视频的分辨率高效地上采样到任意规格,以适应各种高规格显示设备的实际播放尺寸。

但是,传统插值超分算法缺乏足够的非线性拟合能力来复现复杂的图像特征,无法真正还原缺失的纹理细节。如图2所示,1080P 原始视频画面中缺失的草地细节在经过传统插值超分算法处理后并未被恢复。因此,其主要作用仅限于调整视频播放的尺寸,并不能改善原始视频的画面质量。

图片

图2. 传统插值超分算法的局限

2.3 深度学习超分算法的应用价值

由于插值超分算法在提升分辨率的同时并不能真正还原缺失的纹理细节,因此如果想要在高分辨率屏幕上获得更优质的观看体验,就需要一种在提升分辨率的同时又能拟合复杂纹理细节的超分算法,基于深度学习的超分算法在这方面展现了出色的效果。如图3所示,低分辨率图像块在经过插值超分算法处理后线条边缘仍存在一定程度的伪影,且整体观感较为模糊。对比之下,经过深度学习超分算法处理后的高分辨率图像块显然减少了线条附近的伪影,线条边缘更加连续。

图片

图3. 插值算法与超分算法的处理结果对比

2.4 超分算法的难点及基于深度学习的解决方案

超分辨率算法的原理如图4所示,低分辨率像素块在像素域扩充后得到高分辨率像素块,高分辨率像素块中存在诸多未知像素值的像素,而超分辨率算法的作用就是预测出合理的像素值以提升高分辨率像素块的画面质量。从原理上看,超分算法的难点在于这是一个不适定问题,其潜在的解空间可能很大,很难找出唯一的最优解。

因此,对于基于深度学习的超分算法的落地而言,需要解决两个最关键的问题:1. 如何给不同类型的输入像素块提供一个合适的优化方向?2. 如何设计一个合理的算法链路实现对输入像素块的优化?

图片

图4. 超分算法的基本原理

针对第一个问题,我们对海量视频做了基础画质特征分析,并根据画质分析的结果对视频内容进行分类,给不同类别的视频内容设定不同的优化方向,并提供了业务上落地的具体案例,这部分内容将在第三章节进行详细介绍。

对于第二个问题,我们自研了一套超分算法,完成了从数据模拟、模型结构设计到损失函数定义的整套技术链路研发,这部分内容将在第四章节进行详细介绍。

3 基础画质特征及画质优化方向分析

在本章节,我们将对站内海量视频进行了基础画质特征分析,发现不同内容的视频在基础画质特征上有明显差异。根据这种差异我们给不同内容的视频提供了专项的优化方向,并提供了业务上落地的案例。

3.1 基础画质特征分析

在实际应用超分算法提升视频清晰度的过程中,需要考虑到不同内容的视频在基础画质特征上的差异,进而可能导致优化方向的不同。如图5所示,我们对不同内容的视频画面做了离散余弦变换 ( DCT 变换),并在频域上观测其强度值的分布。需要说明的是,DCT 变换后的频域图的低频部分集中在左上角,高频部分集中在右下角。我们发现动漫、游戏和真实世界视频在频域上的响应有明显差距。

动漫视频画面的频域响应集中在低频区域,意味着动漫视频画面在像素域上主要由大面积的纯色区域以及粗粒度的线条构成。

游戏视频画面增加了高频部分的响应,但响应主要还是集中在低频区域,意味着游戏类视频画面和动漫视频在像素域上拥有相似的特点,但在此基础上增加了一些有高频属性的复杂纹理、细粒度线条结构。

真实世界视频画面的频域响应范围最广,在高频部分的响应最强,意味着这类视频在像素域上的纹理结构最为复杂,有着细腻的纹理细节,而这点在诸如动物毛发、皮肤表面的构造上也有所体现。

图片

图5. 视频画面频域变换

3.2 画质优化方向分析及落地案例展示

如图6所示,根据对海量视频进行基础画质特征分析的结果,考虑到动漫、游戏和真实世界视频在画质基础特征上呈现的不同点,我们给各类视频设计了特定的优化方向,并提供了业务上落地的具体案例进行展示。

图片

图6. 线上超分业务落地逻辑

3.2.1 动漫视频

优化方向:对于动漫视频,其画面的构成元素大多是纯色区域、粗粒度的线条结构,缺乏复杂、细腻的纹理结构。因此,针对动漫视频的重点优化方向是提升线条的锐利程度,去除大面积色块中的画面噪声。

案例一:由图7可知,《赛马娘》视频画面中人物面部线条、服饰线条在经过动漫超分模型处理后变得更加连续、锐利,大面积纯色区域中的画面噪声得到去除,整体清晰度得到大幅提升。

案例二:同样地,图8《知晓天空之蓝的人啊》视频画面中架子鼓、人物面部的轮廓线条在经过动漫超分模型的优化后变得更加平滑、锐利。

图片

图7. 《赛马娘》画面超分前后画质对比,上图为超分前,下图为超分后

图片

图8. 《知晓天空之蓝的人啊》画面超分前后画质对比,上图为超分前,下图为超分后

3.2.2 游戏视频

优化方向:对于游戏视频,其画面的构成元素与动漫视频相近,但在此基础上又有相对复杂的纹理结构。因此,对游戏视频画面的优化需要兼顾线条锐利程度的提升、噪声去除,以及对纹理结构的强化。

案例一:由图9可知,经过游戏超分模型处理,王者荣耀视频中英雄轮廓变得更加连续,画面噪声被成功去除,与此同时,草地、树木等较为复杂的纹理细节也得到了恢复,画面整体清晰度得到大幅提升。

案例二:由图10可知,经过游戏超分模型处理,炉石传说视频中蓝色宝石的观感从模糊变得清晰,同时文字边缘的锯齿得到了有效消除,呈现出更为连续、锐利的外观。

图片

图9. 王者荣耀游戏画面超分前后画质对比,上图为超分前,下图为超分后

图片

图10. 炉石传说游戏画面超分前后画质对比,上图为超分前,下图为超分后

3.2.3 真实世界视频

优化方向:对于真实世界视频而言,其画面的构成元素主要由细粒度的线条和复杂、细腻的纹理构成。因此,针对真实世界视频的优化方向是对细粒度的线条结构以及复杂纹理结构的强化。

案例一:在图11可知,经过真实世界超分模型处理后,画面中高楼建筑外立面的清晰度明显提升,马路边绿化的细节也得到大幅增强,绿化带中树叶的细节变得更加丰富。

案例二:图12中人物的头发细节在经过真实世界超分模型处理后变得更加细腻,细小的发丝也变得清晰可见。人物衣物上的纹理细节也得到强化,织物表面呈现出更为丰富的层次感。

图片

图11. 《前任4》画面超分前后画质对比,上图为超分前,下图为超分后

图片

图12. 《权力的游戏》画面超分前后画质对比,上图为超分前,下图为超分后

4 自研超分算法设计细节

本章节将介绍B站自研超分算法的实现细节。如图13所示,关键的算法包含三个部分:降质方法,模型结构,以及损失函数,每个部分的设计细节将在以下小节内作具体介绍。

图片

图13. 超分算法 Pipeline

 4.1 降质方法

4.1.1 主流降质方法

在超分辨率领域,较为主流的降质方法为 Real-ESRGAN 论文中提到的高阶降质策略。对于一个降质周期而言,其模拟的都是图像从成像、处理、编码、传输过程中可能经历的退化过程,而高阶降质策略就是将图像经过多个相似的降质周期处理,进而产生低清图像。

然而在实际生产过程中,由于不同内容视频的优化方向不同,降质的策略也会有所变化。例如,对于动漫视频,超分模型的优化方向是增强线条的锐利度和去除纯色区域的画面噪声,所以降质策略的重点在于对线条的破坏和对噪声的模拟。

但是对于真实世界视频,超分模型优化的方向是增强图像中的纹理信息,当降质过程中线条被过度破坏或噪声添加过度时,原始图像中存在的纹理信息往往会被模型当作噪声抹去,导致模型生成的高分辨率图像有涂抹感和平滑感。

因此,为了适应不同视频内容所对应的模型优化方向,需要微调高阶降质策略中的某些子模块,然而在现有的串行降质方法中,微调子模块的工作量较大且结果往往不可控。

图片

图14. Real-ESRGAN 降质方法

4.1.2 自研降质方法

因此,我们自研了一种适配实际应用的降质方法,目标是降低微调降质策略的工作量,且让微调的结果稳定可控。我们没有采用类似于 Real-ESRGAN 中串行的降质方法,而是自研了一种更有针对性的具有并行结构的降质策略。并行降质分为三个分支,分别为面向纹理增强的降质、面向线条恢复的降质以及面向噪声去除的降质。

图片

图15. 自研降质方法

面向纹理增强的降质由轻度模糊退化、上下采样和压缩退化构成,其目的是轻微破坏高清图像中的纹理结构信息,但由于降质程度较轻,原始纹理信息又有所保留,给模型提供一个稳定优化纹理的优化方向。

面向线条恢复的降质由随机模糊退化、上下采样和压缩退化构成,其目的是较大程度地破坏高清图像中的线条,使模型在训练过程中获得将扭曲断裂的线条恢复成连续流畅的能力。

面向噪声去除的降质由随机高斯噪声、随机柏松噪声以及随机压缩退化构成,其目的是给高清图像添加一定的程度的噪声,使模型在训练过程中获得去除噪声的能力。

三个分支的降质结果会被赋予相对应的权重,并最终相加形成最终的降质结果,而权重的赋值是与视频内容高度相关的。

4.2 模型结构

4.2.1 整体框架

对于模型结构,我们有针对性地设计了两个串联的模块,分别为结构信息处理模块和纹理信息处理模块。结构信息处理模块对大尺度结构信息敏感,负责去除平滑区域的噪声、修复物体的轮廓线条。纹理信息处理模块负责对细粒度的纹理细节进行一定程度的拟合和增强。

对于结构信息处理模块,由于这部分图像信息处理难度不高,所以先对输入进行 Pixel Unshuffle 下采样,并牺牲一些通道数,用较小的算力和较大感受野对粗粒度的结构信息进行处理,得到粗估计结果。

对于纹理信息处理模块,需要对细粒度的纹理细节进行拟合,故在输入尺寸上对粗估计的结果进行精调。

图片

图16. 自研超分模型结构设计

4.2.2 基本组件

实际上,结构信息处理模块和纹理信息处理模块采用的是同一种卷积模块 REPB,其全称为 Residual Efficient re-Parameterization BlockREPB 有两个基本的组件,分别为 Conv-x 和 ESA

Conv-x 是一组运用了重参数化技巧的卷积核,在训练时有三个并行的分支,分别为 3x3、5x5、1x1 卷积核和残差连接。由于卷积核的线性可加特性,故在推理时可将三个并行分支的权重合并为同一个卷积核下的权重,在不牺牲效果的条件下获得更高的推理效率。

ESA全称为 Efficient Self-Attention,是一种高效的自注意力机制,通过池化层和残差结构的组合来对局部和非局部的图像特征进行融合,并对某些重要的结构、纹理特征进行强化。

4.3 损失函数

同样地,在设计损失函数时,我们也充分考虑到了模型在处理不同内容的输入时需要有不同优化方向的需求,故有针对性地采用了像素损失函数、线条损失函数以及纹理损失函数,并通过加权的方式得到最终的损失函数,以适应不同的超分内容。

4.3.1 像素损失函数

像素损失函数计算了图像真值和模型预测值的逐像素差值之和,并通过求平均的方式得到最终的整体损失。像素损失函数衡量的是图像真值和模型预测值的整体差异,为模型提供全局的优化方向。

图片

图17. 像素损失函数

4.3.2 线条损失函数

对于线条损失函数的构建,我们先对图像真值通过 Sobel 算子提取图像内的边缘信息,进一步经过阈值分割得到初步的线条区域掩膜,将初步的线条区域进行膨胀腐蚀得到覆盖范围更大的线条掩膜。最终,将线条掩膜附加于像素损失函数上,得到对线条恢复更有针对性的线条损失函数。

图片

图18. 线条损失函数

4.3.3 纹理损失函数

对于纹理损失函数,首先将图像真值和模型预测值进行切块得到两组能更好描述图像局部纹理结构的小图像块集合,再对两组小图像块集合进行结构相似性(SSIM)的计算。SSIM 衡量了局部纹理细节的相似程度,相似程度越高,SSIM 的数值越接近1。最终,将两组小图像块集合的 SSIM 值求平均并计算与理论最优值的差距,我们就构造出了描述真值与预测值纹理相似程度的纹理损失函数。

图片

图19. 纹理损失函数

最后,根据视频内容以及优化方向的不同,像素、线条、纹理损失函数会被赋予相应的权重,并通过加权的方式得到最终的损失函数

5 总结与展望

作为B站视频画质矩阵的关键组成部分,我们的视频超分算法以提高视频画质为出发点,旨在为用户创造极致清晰的视频观看体验。在实际的算法落地实践中,我们从超分算法的基本原理出发,经过对海量视频的基础画质特征和优化方向的分析,配合算法层面的合理设计,最终实现了清晰自然的画质优化效果。

目前, 超分算法已成功投入线上点播业务,并已支持了大量视频的高分辨率视频流生产。未来,我们将持续在覆盖范围、主观效果和部署灵活度等方面进行算法的迭代更新,以在直播、点播、应用端等多个场景为视频画质提供更大的增益。

B站对画质的优化,不仅依靠的是视频超分算法的巧妙应用,我们多媒体实验室画质矩阵中的画质增强、人脸修复、HDR、插帧等技术同样发挥着至关重要的作用。关注哔哩哔哩多媒体实验室,我们将陆续分享更多画质相关技术文章,敬请期待。

哔哩哔哩多媒体实验室(bilibili mlab)是一支技术驱动的年轻队伍,具备完善的多媒体技术能力,以清晰流畅的极致视频体验为目标,通过对自研视频编码器、高效转码策略、视频图像分析与处理、画质评价等技术的持续打磨和算法创新,提出了画质可控的自适应转码算法、超实时4K60FPS直播超分、视频画质评价、数字水印、高性能多媒体算法推理基座、自研编码器、视频插帧等诸多高质量、低成本的多媒体解决方案,从系统尺度提升了整个多媒体系统的性能和效率, 助力哔哩哔哩成为体验最好的互联网视频社区。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/418972.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Excel2LaTeX插件的使用、LaTeX表格

目录 一、下载Excel2Latex 二、使用Excel2Latex 1、将Excel2LaTeX文件添加到加载项 2、导出LaTex的表格数据 3、注意事项 1)生成的latex表格断断续续问题 2)改变线形的粗细 3)表格太大,需要缩小到适应大小 4)…

CCDP.01.寄主机SSH连接虚拟机的QA

V0.0 初始版本-2024.2.29 检查VM的网卡配置 如上图,如果enp0s3网卡没有出现形如10.0.0.??/24的ip配置,说明该网卡配置存在错误,或者没有“使能”该网卡。在RockyLinux8.X中可检查“ifcfg-enp0s?” vi /etc/sysconfig/network-…

软件测试人的测试思维

系统性思维 如果以系统性思维来分析和解决问题,就不会出现: 只见树木不见森林片面地追求单个目标被表象所迷惑,看不到本质忽视某些产品质量风险千里之堤、溃于蚁穴用线性的思维方式来理解非线性的问题 而是会整体地、多角度地、多层次地分…

数据仓库与数据挖掘概述

目录 一、数据仓库概述 (一)从传统数据库到数据仓库 (二)数据仓库的4个特征 (三)数据仓库系统 (四)数据仓库系统体系结构 (五)数据仓库数据的粒度与组织…

babylonjs入门-点光源

基于babylonjs封装的一些功能和插件 ,希望有更多的小伙伴一起玩babylonjs; 欢迎加群(点击群号传送):464146715 官方文档 中文文档 案例传送门 ​ 懒得打字,粘贴复制,一气呵成

第二节:开始Sashulin Message Broker旅程

一、创建第一条消息流 1、新建工程 点击File->New Project或工具栏中的New Project按钮创建新工程,我们的示例中命名为"csdnProject",工程名后缀是epr。点击Save即可。 2、新建消息流 建立好工程后,在Project Explorer中建立…

Spring IOC在业务中常见的使用方式

目录 1、什么是IOC 2、java实现创建对象的方式有哪些 3、基于配置文件的di实现 3.1、什么是di 3.2、入门案例 3.3、环境搭建 接口和实现类 ioc配置文件 测试程序 3.4、案例总结 3.5、简单类型属性的赋值(set注入) set注入要求 JavaBean sp…

推特API(Twitter API)对接说明,用户code To Token换取

前期准备 提前准备、说明:目前对接推特api开发门户分为3个版本,分别是免费的,100美金一个月的基础版以及5000美金一个月的企业版,免费的目前就两个接口可以调用,所以想要对接和使用推特最基本的也需要付100美元一个月…

BAT三家市值总和近7000亿美元,足见它们“富可敌国”

当中国互联网拥抱共享经济时,BAT依然展现出它的雄姿。 临近年中,阿里巴巴和腾讯市值均突破3000亿美元,并持续创出历史新高。 百度也逐渐走出低迷,市值已升至600亿美元以上。 BAT这三个公司的总市值接近7000亿美元,可见…

2024阿里云数据库费用价格,2核4G配置227元一年

阿里云数据库大全:RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等,NoSQL数据库如Redis、Tair、Lindorm和MongoDB,数据仓库如AnalyticDB MySQL版、PostgreSQL、ClickHouse,阿里云还提供数据库管理工具如数…

【开源项目】自动字幕生成和字幕翻译

文章目录 1. 安装ffmpeg2. 克隆项目3. 配置项目运行环境4. 填写配置文件5. 运行项目(仅使用CPU) 项目地址:Github - qinL-cdy/auto_ai_subtitle 项目原理:使用ffmpeg提取视频的音频,使用whisper将音频转写为字幕&#…

WebService 配置与操作

WebService操作配置 本人idea 2020.3版本,会有毛病。 场景:内网环境 内网环境会导致测试麻烦,所以打个demo包给现场测试是否跑通 环境:Springboot项目 添加WebService ok会加载出来 2020.3版本会关了,找不到这窗口 可以以下…

白酒:酿造过程中的微生物群落结构与功能解析

在豪迈白酒的酿造过程中,微生物群落的结构与功能起着至关重要的作用。这些肉眼难以察觉的小生物在白酒的香气、口感和品质形成中扮演着重要角色。云仓酒庄在酿造过程中对微生物群落的结构与功能进行了深入研究与解析,旨在更好地了解和控制微生物群落&…

DVWA 靶场 SQL 注入报错 Illegal mix of collations for operation ‘UNION‘ 的解决方案

在 dvwa 靶场进行联合 SQL 注入时,遇到报错 Illegal mix of collations for operation UNION 报错如下图: 解决办法: 找到文件 MySQL.php 大致位置在 \dvwa\includes\DBMS 目录下 使用编辑器打开 检索 $create_db 第一个就是 在 {$_DVW…

TcpServer服务器管理模块(模块十)

目录 类功能 类定义 类实现 编译测试 server.cc gdb测试断点 忽略SIGPIPE信号 类功能 类定义 // TcpServer服务器管理模块(即全部模块的整合) class TcpServer { private:uint64_t _next_id; // 这是一个自动增长的连接IDint _port;i…

【详识JAVA语言】猜数字游戏

游戏规则: 系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低 了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了" . 参考代码 import java.…

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(前导)

ACM9238 高速双通道ADC模块自助服务手册AD9238 Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(一)-CSDN博客 一、AD9238 模块在各方面参数性能上与AD9226保持一致。但是在设计上优化了信号调理电路,将单端信号先转成差分信号&#xff0c…

VS2015报错:error MSB8020和MSB8036的解决方案

VS2015编译报错:error MSB8020 提示信息:error MSB8020: The build tools for v141 (Platform Toolset ‘v141’) cannot be found. To build using the v141 build tools, please install v141 build tools. Alternatively, you may upgrade to the c…

租赁回收系统开发详细流程-干货分享

1.需求分析:首先,需要明确系统的功能和特点。这包括确定租赁回收的物品类型、用户群体、业务流程等。通过需求分析,可以确保系统能够满足市场和用户的需求。 2.系统设计:在需求分析的基础上,进行系统的整体设计。这包…

最新基于SWAT-MODFLOW地表水与地下水耦合技术应用

耦合模型被应用到很多科学和工程领域来改善模型的性能、效率和结果,SWAT作为一个地表水模型可以较好的模拟主要的水文过程,包括地表径流、降水、蒸发、风速、温度、渗流、侧向径流等,但是对于地下水部分的模拟相对粗糙,考虑到SWAT…