网站建设与制作实验报告,设计网站做什么内容好,手机wordpress登陆,网站做图尺寸大小本期作者 1 前言 为了给用户提供更清晰的画质体验#xff0c;B站自研的超分辨率算法已经在站内广泛应用#xff0c;支持了如《赛马娘》、《流浪地球2》、《权力的游戏》、英雄联盟S赛赛事直播等知名番剧、电影电视剧以及重要游戏赛事直播的 4K 视频流生产。 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 Block。REPB 有两个基本的组件分别为 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直播超分、视频画质评价、数字水印、高性能多媒体算法推理基座、自研编码器、视频插帧等诸多高质量、低成本的多媒体解决方案从系统尺度提升了整个多媒体系统的性能和效率, 助力哔哩哔哩成为体验最好的互联网视频社区。