快手智能处理与编码算法产品化之路

news2024/11/23 12:32:54

视频转码过程中涉及方方面面的视频图像算法,如何将算法有机地结合起来,打造成为行业领先的视频转码算法产品?通过多年的业务场景打磨和积累,快手音视频走出了一条自己的产品化之路。LiveVideoStackCon 2022北京站邀请到了快手视频图像算法引擎负责人陈宇聪,为我们介绍视频图像引擎Atlas和智能转码算法框架CAPE的发展历程,以及「质臻影音」「质臻轻流」等转码产品的推出和应用。

文/陈宇聪

编辑/LiveVideoStack

大家好,2018年我加⼊快⼿,主导了快⼿⾃研编解码算法KVC 1.0的预研、开发及上线。2020年,我开始负责视频图像算法引擎Atlas的架构研发和智能转码算法框架CAPE的设计迭代,以及StreamLake视频转码相关算法的产品化工作。

我将从以下三方面来介绍:一. 为什么要做算法产品化;二. 快手智能处理与编码算法产品化方案;三. StreamLake转码产品介绍及其应用。

-01-

为什么要做算法产品化

5f6d60ec625eef3b7c586e4910208f11.png

在探讨算法产品化的原因之前,我们先来了解一下音视频算法在业务场景中的需求。对于不同的业务场景,例如短视频、长视频、直播等,或者不同的方向,例如商业化、海外、toB客户等,这些所面临的场景都不相同,因此对算法功能及其特性的要求也不同。

就清晰度方面,点播与直播就有所差异。点播是一个头部十分聚集但对延时要求不太高的场景,可以采用异步转码,进行更加极致的压缩处理。我们可以二次甚至三次压缩非常热门的产品,以提高压缩率,并使其在下发过程中享受到算法所带来的便利。而直播则是端到端的实时场景,对算法的实时性和延迟有着苛刻的要求。

不同功能的算法在部署和迭代上也各不相同。传统的解码相关的算法主要使用CPU的运行资源,在部署时会采用规模较大的容器化方式进行部署。但在AI推理方面的算法,则会使用到GPU或者推理卡等。此外,不同业务方所能承受的成本也不同。不同场景所需要的带宽成本、资源成本以及其他成本所占比重都有所区别。

137fed1ad9ac38b270dca7742baaa87e.png

在需求明确后,接下来进行算法研发和赋能业务。为了提高压缩率,可以通过实验室指标来不断优化编解码算法。然而,如果只优化算法并不一定能提升业务体验,或者说在业务场景上获得实际收益。编解码算法从算法的指标到离线的主观验证,再到线上的AB实验存在两个gap。不仅编解码算法存在这样的gap问题,各种各样的算法包括视频图像处理和质量分析评价都会存在实验室指标和线上业务场景收益的差距。

当然一味满足业务需求也会存在问题。业务指标是非常明确的,一方面希望图像质量更好,另一方面希望码率成本和带宽成本更低。客户对整个优化路径不清楚,没办法提出具体的优化细节。

我们现在做的就是架起一座桥梁,来做算法产品化。这件事情有两个明显的好处,一方面,算法团队可以更明确地了解业务需求和场景,并通过对各个部件进行优化并计算衡量其收益,最终实现收益最大化。同时,在了解如何衡量收益之后,每个算法的优化路径以及研发方向就会非常明确。业务方也会获得完整的解决方案,而不是零散的算法。在实际业务场景中,业务方可以更好地使用算法来满足需求。同时,产品也可以基于业务进行持续打磨。

近几年,快手一直在基于产品化思路进行算法研发及迭代,在内部业务上进行持续打磨,在取得明显的收益后,团队相信这些算法能够为行业内带来更多价值,因此toB也变成了一件自然而然的事情。

-02-

快手智能处理与编解码算法产品化方案

下面具体来介绍快手智能处理与编码算法产品化方案。

675c6fb5a2d6f09fabad12b5534417d3.png

第一部分是Atlas算法引擎,主要针对工程架构方向,使算法从实验室到线上,实现从“0”到“1”的过程。另一部分是CAPE,旨在形成一个完整的框架,使算法体系更加统一和完善,从而将产品化的解决方案成功复制到更广泛的应用领域,实现从“1”到“100”。

2019年10月,快手正式启动Atlas1.0,这标志着快手智能处理与编码算法产品化的开始。

2020年初,我们上线了第一个AI增强算法,Atlas架构⽀撑的第⼀个AI修复增强+转码算法上线,为AI算法落地转码场景打开了局⾯。

2021年,我们将视频分析、处理与增强、编解码等算法融合为智能转码产品化⽅案,并在业务场景中落地应用。2021年底,我们将快手视频质量评估(Kuaishou Visual Quality, KVQ)加入到整体方案中。至此,主要算法⼯作流建设完成,并具备了对外输出产品化方案的能力。

2022年1月,CAPE 产品化⽅案开始服务海外业务,以整体算法产品⽅案提供服务,解决了海外短视频⻓期以来的带宽和体验问题。2022年8月,快⼿发布toB技术品牌StreamLake,“质臻轻流”“质臻影⾳”等转码产品正式面向市场,服务于外部客户。

1d6e79b170343d96a8847a0587b5212c.png

在2020年LVS大会上,我们也分享过Atlas算法引擎,当时是2.0版本。逻辑类似一个金字塔,塔尖面向业务方,是服务接口层,服务方可以使用统一的调用方式驱动算法框架,从而满足业务需求;底端是单独的算法能力,包括视频、音频的编解码算法,还有一些图像传统处理方法、深度网络AI推理模型等;中间层加入了Capella,用于分析及逻辑决定,形成可以实际执行的“菜谱”配置,将业务方的实际需求进行拆解和映射,来驱动下一层的算法完成全部功能。

f74a8e009556740742a7df1e37351477.png

一开始的算法框架比较简单,但加入AI推理后,整个框架就变得饱满起来。主要分为如下几层。蓝色部分是服务层,通过Atlas提供点播转码、直播转码以及AI算法服务。虚线框内是整个Atlas架构:第一层是引擎层,包括视频图像分析、评价引擎、视频离线、直播转码引擎、单点算法引擎等典型的算法场景。能力层包含算法团队研发的各种算法,如视频图像分析算法、视频质量评价算法、视频修复增强算法、视频编解码算法、视频智能⽣产算法等,涵盖了所有视频图像算法类别。

为提高算法运行效率,我们引入了非常多计算加速组件,如CPU计算加速、GPU计算加速、AI推理、编解码器等。最底层是硬件层,包括CPU、GPU、推理加速卡、编解码卡和自研芯片等。我们在图像分析和评价引擎做了非常多的优化工作,如只解码抽帧等。在解码过程中,采用智能流水组合,从而整体提升架构的性能。最后会通过统一的服务集成方案,去无缝对接和集成。

1348866a868d7f0ed0049cd452efe1ce.png

在解决了从0到1的问题后,我们需要更进一步将产品组合得更好,以应用到更广泛的场景中,这就需要解决从1到100的难题。我们开发了CAPE(Content Aware Processing and Encoding)即内容自适应处理编码来实现这一目标。算法优化一定有对应的性能曲线,曲线最高的极值点可以看作是一个“角”,我们希望在性能优化上达到这个最高点,所以取名CAPE,也带有“好望角”的寓意。

CAPE基于视频场景、运动、纹理等内容进⾏智能分析,实现⾃适应决策视频处理增强⽅式和编码参数,达到联合优化视频主观质量和码率的⽬标。它主要包含视频分析理解、算法决策、视频增强修复、视频编码和视频质量评价模块。

71cbfe84a22c823aa2a32a30703e18a8.png

视频分析理解主要有两个方面的应用。一方面是进行基础特征的分析,另一方面则是基于场景内容的理解。前者有助于识别上传视频的画质问题和业务场景,从而帮助后续算法的决策。后者则更偏向于辅助后续的编码决策分析,具有一定的抽象性。

80f14c0f23c43a29975b0421a3e4f62b.png

基础特征和内容理解都与人眼感觉特征相关,涵盖了模糊检测、块效应检测、镜头脏污、噪声检测、交错检测、大光圈检测、横竖屏检测、三段式检测、无意义检测和场景识别。模糊检测、块效应检测、镜头脏污、噪声检测和交错检测都是画质问题的识别。而大光圈检测、横竖屏检测、三段式检测、无意义检测和场景识别则偏向于场景检测。

84d89f4c5bb4563f0327791fcfcbc608.png

第二部分是对一些抽象特征的分析,主要包括复杂度和视觉特征。其目的是建立一个码率与质量的模型,通过编码和视觉分析来预测视频在不同分辨率下的的码率-质量模型。根据预测结果,可以自适应决策视频的前处理和转码参数,以达到联合优化转码质量和降低码率的目标。

我们对一个视频进行预编码,并分析其空间和时间的复杂度,以推断码率和失真的关系。此外,我们还使用CNN的视觉模型进行特征抽取,机器提取需要的Embedding特征,以推算失真与主观质量之间的关系。码率失真是传统编解码所研究的对象。失真是物理意义上的特征,人眼难以直接观察,因此需要进一步进行视觉分析,来推断失真和主观质量之间的联系。有了这两部分特征,我们就可以预测不同码率下的指标。RD曲线的纵轴是KVQ,这更接近人眼主观无参考质量的标定。在不同的分辨率下,曲线也不同,可以为自适应决定视频分辨率参数提供参考。

a2f57ade87b96efcf7acb29a8951d71d.png

79c32633d781bc263e017bce0d5e6f84.png

这张图里列出了视频增强修复功能的算法,例如超分、插帧、HDR等。在处理视频之前,我们已经对视频进行分析并获得了它的特征和一些特点。基于这些信息,共有如下三类算法。首先是修复类算法,对视频进行去噪、去划痕,闪烁等操作,以提高视频质量。然后进行时空域的增强,例如超分或者去模糊,以提升视频清晰度等。如有需求,可以再对其进行颜色调整,如色彩增强、SDR转HDR或者对比度增强。最后,我们会对视频的清晰度和流畅度进行主客观评价。

93dd4122841c8c8ffa0188a3e071803e.png

这张图片展示了低质量视频超分辨率的效果。对于低质量视频内容,快手研发了带有修复能⼒的超分辨算法SR-LQ。该算法不仅提升视频分辨率,同时,还可以重点突出视频中纹理和边缘,避免常规SR容易出现的“过度平滑”问题。

在上图对比中,可以清晰地看到右图相比左图,在经过SR4K处理后,视频的细节纹理更加丰富。

7c5ad7f6236147f4235458b664581789.png

ce4b6c4c7221c24af7cffd622462ac52.png

针对高质量视频,我们将使用更为极致的提升方式。由于受拍摄设备的限制,一些影视剧的分辨率只有1080p。在这个追求2k、4k的时代,我们需要对其进行增强处理。处理后,视频的边缘和纹理更加突出,避免出现过度平滑问题。同时,我们还将进行去模糊处理,如图中所示,会将面部、文字的边缘处理得更好。

d426f8662f50e21b493266918f5661db.png

上图展示了进行色彩增强的案例。针对风景或物体的视频,我们会微调色彩,同时输出HDR/SDR+版本,适配不同显示能⼒的⼿机设备。

bbbf4bc499be0a5c4c3f8ac80349dd5d.png

2cbb604d6fa6fab75946335356b250fb.png

在标准制定上, 快⼿是VVC技术主要贡献公司之⼀,提交了过百件JVET技术提案 ,数⼗件技术提案获采纳进⼊VVC标准,技术提案采纳数国内前五、国际前⼗。针对AVS3的标准制定,快手也积极参与并且贡献突出。

2c50c4d2ab3679d917bd240912b639d2.png

快手自2019年起上线了自研K265编解码器,相比X265 Veryslow码率降低28%。自2020年起,快手的主要方向是迭代KVC,相比X265Veryslow码率降低从最初的35%提高至今年年底的60%。目前,快手的线上效率已经达到了50%左右,压缩率相比X265提升了一倍。

1db176c1d866921a3a23dd1ceaa37127.png

左图表呈现的是压缩率的提升情况。在提升压缩率的同时,我们还需考虑移动端的部署和覆盖率的问题。虽然VVC标准已制定,但其硬件解码的芯片还未广泛应用于所有手机上。若要使用VVC标准,需先进行软件解码。然而,目前VVC软件解码的耗时和功耗仍较高,比开源的K265解码器要高出50-60%。如果要在线上大规模应用编解码标准,必须让其功耗在一个可控的合理范围内,才能对更多的用户打开解码功能。

快手自研的KVC3.0在快手主流设备上比开源的H265节省46%。KVC软解码器经过多项优化,取得显著进展。

4b3e63d7ec9e47461816a9711b6432f5.png

图中所示是快手首款自研智能视频处理芯片StreamLake - 200(简称SL200芯片),结合快⼿先进的图像与AI推理技术能⼒,最⼤限度节省带宽和提升视频⾳画质量, 编码质量和编码效率均国际领先。

a6898411e9c0c57952c6ab43a6837714.png

一个完整的算法框架是需要反馈的,如何衡量算法的好坏是一项比较困难的任务。编码压缩不需要完全保留图像的原始信息,只需尽可能和原来保持一致即可。经过增强和修复后,视频会和原始数据源产生差异,因此不适于用保真度来衡量。因此,我们研发了质量评价算法来解决这一问题。

610ff9b867544c02d1e4fe09c3a53ef0.png

依托快手大量线上数据,在不同场景下进行适配和训练,整体性能与SOTA相比具有显著提升。同时,针对不同编码器的标准,相比公开的VMAF评价指标,在性能上有很大的提升。

6d83d4c2b191e8d9d6aeb509cd65fc24.png

在模型训练方面,我们采用最新的大模型,即采用时间、空间注意⼒的Transformer⽹络结构,在公开数据集上大幅度领先SOTA。相关⼯作成果已被CVPR2023接收。

2903621f27924cce555fe7b5dafcc756.png

中间的算法决策模块是基于CAPE算法框架构建的训练模块。通过前向链路加上KVQ反馈模块,构成了可训练的模式。先进行一次前向的推理,之后通过KVQ反馈决策采取何种策略。这一训练过程可以持续进行优化和迭代,面对不同的业务场景,可以通过长期训练达到更好的效果。

3d993128f79094c8176faf2d61dd0d5c.png

在这里进行一个小结。Atlas算法引擎解决了算法落地和上线的问题,实现了从“0”到“1”,算法迭代效率得到提升,能够更好地应用到业务场景,构建体系化的⽅案。CAPE算法框架解决了算法产品化问题,实现了从“1”到“100”,算法融合优化,在同⼀个⽬标下能使业务价值最⼤化,明确算法迭代⽅向。我们从业务中来,再到业务中去,通过内部业务持续打磨产品,输出给外部客户。而外部客户需求的也加快了⽅案的迭代。

-03-

StreamLake转码产品介绍及应用

如下蓝色区域是StreamLake产品中和转码算法相关的部分——媒体处理。这里包含之前提到的转码算法、增强算法、修复算法等。

aafca2173182da7bf76eb5e45776d1ec.png

eb2aa0218287ce2500a995aba9b5723d.png

我们将这些算法打包成两个产品——质臻轻流和质臻影音。质臻轻流主打压缩率,在相同的画质下压缩更多码率,不更改视频特征参数。

0b721d8079418590e1afa4cf2d497675.png

另一个产品是质臻影音,通过使用各种各样的增强和修复算法,提升视频画质。在提升分辨率的同时,色彩、流畅度和音频都会进行相应的提升和优化。

3eef00930fb318b2c87c6f5329e10995.png

快手内部已上线质臻影⾳服务,在快手App放映厅中,用户使用质臻影音档位后,视听体验大幅提升。

3886e9dc683ac12c4ad1c96c06d95231.png

StreamLake转码部署⽅式主要有四种,分别是公有云、算法镜像、分布式转码服务和硬件编码器。公有云通过公有云的OpenAPI和控制台提供媒体处理服务。镜像算法提供转码算法(FFmpeg)镜像,包含前处理算法filter和 K264、K265编码器,用户可以进行一定的自助开发。分布式是在算法镜像基础上,提供易部署和易运维、可弹性伸缩的的分布式转码服务。

这是快手自研的硬件编码器,集成了SL200编码卡及质臻影⾳算法,利⽤快⼿领先的视频编解码及增强和修复算法,帮助客户提升多媒体处理环节的质量与效率。只需要简单的部署,即可一站式交付,开箱即用。

以上是我的分享,谢谢大家。



3587c57d381aaeeb6226d5957bc97111.jpeg

LiveVideoStackCon 2023上海讲师招募中

LiveVideoStackCon是每个人的舞台,如果你在团队、公司中独当一面,在某一领域或技术拥有多年实践,并热衷于技术交流,欢迎申请成为LiveVideoStackCon的讲师。请提交演讲内容至邮箱:speaker@livevideostack.com。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生成式AI火爆全球,你是否已经做好了准备?

2023年,随着ChatGPT的火爆全球,生成式AI也引发了各界人士的广泛关注。一时间,从国际科技巨头到国内人工智能企业,几乎所有我们耳熟能详的科技公司,都纷纷杀入了生成式AI市场。 作为全球云计算技术的开创者和领导者&…

【python中的对象存储:堆?栈?】

堆空间和栈空间 堆空间和栈空间是计算机内存中的两个存储区域,主要的区别有以下几点: 分配方式:栈空间中的内存由编译器或解释器自动分配和释放,无需手动干预。堆空间中的内存则需要由程序员手动申请和释放。内存大小&#xff1…

招商基金数字化转型下的研发管理|发布会精彩回顾

在 4 月 20 日举行的《中国企业软件研发管理白皮书》发布会上,招商基金信息技术部副总监、研发中心主管刘志昆作了《招商基金数字化转型下的研发管理》主题演讲,从数字化转型背景、研发管理所遇到的挑战出发,讲述招商基金如何摸索出适合自身环…

Java多线程与锁

前文中,我们已经了解了什么是线程,线程间常用通信方式,线程池以及其相关特性,可以看出锁在多线程环境中充当着重要作用,不管是线程间的数据通信,还是线程间的等待和唤醒,都依赖于锁,…

《编码——隐匿在计算机软硬件背后的语言》精炼——第13-14章(二进制减法器——1位存储器)

“成功不是最终的,失败不是致命的,勇气才是最关键的。” - 温斯顿丘吉尔 文章目录 如何实现减法计算机进行减法运算的逻辑借位的代替机制二进制下的替代机制 减法的电路实现 反馈与触发器电铃触发器R-S触发器 电平触发的D型触发器 如何实现减法 计算机进…

Haproxy搭建Web群集

Haproxy 支持四层和七层反向代理 LVS 支持四层反向代理 目前常见的Web集群调度器分为软件和硬件软件通常使用开源的LVS、Haproxy、Nginx硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼、绿盟等;云 SLB CLB Haproxy应用分析…

配置Docker镜像加速器-Docker命令-Docker 容器的数据卷

Docker架构 docker进程(daemon) 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件…

OpenJudge - 39:多项式输出

目录 一、题目描述 二、代码实现 一、题目描述 一元 n 次多项式可用如下的表达式表示: ​ 其中,​ 称为 i 次项,​ 称为 i 次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式&#xff…

如何在本地搭建Maven环境并整合进IDEA中?【2023最新版】

编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 Maven版本:apache-maven-3.6.3 目录 一. 为什么要使用Maven?1.1 获取jar包1.2 添加jar包1.3 使用Maven便于解决jar包冲突及依赖问题 二. 什么是Maven?三. 如何…

排序算法 - 选择排序(Selection sort)

文章目录 选择排序介绍选择排序实现选择排序的时间复杂度和稳定性选择排序时间复杂度选择排序稳定性 代码实现核心&总结 每日一道算法,提高脑力。第四天,选择排序。 选择排序介绍 它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素&#…

Three.js--》理解光源对物体产生影响的重要性

上篇文章 前端开发者掌握3d技术不再是梦,初识threejs 作为three.js入门篇讲解了许多内容但是没有深入了解其原理以及实现方法,仅仅只是展示了实现的内容及代码,本篇文章将深入讲解实现效果其背后用到的知识与原理。 目录 使用相机控件轨道控…

博途PID编程应用(状态机)

博途工艺PID的详细解读可以查看下面的博客文章,这里不再赘述 博途PLC 1200/1500PLC 工艺对象PID PID_Compact详细解读_RXXW_Dor的博客-CSDN博客这篇博文我们详细解读博途PLC自带的PID功能块PID_Compact,大部分工业闭环调节过程,我们采用系统自带的PID功能块基本都能胜任,一…

接收来自客户端的参数使用【JSR303校验框架】进行校验参数是否合法

目录 1:JSR303校验 1.1:统一校验的需求 1.2:统一校验实现 1.3:分组校验 1.4:校验规则不满足? 1:JSR303校验 1.1:统一校验的需求 前端请求后端接口传输参数,是在co…

CTFShow-Web篇详细wp(持续更新中ing)

CTFShow-Web篇详细wp web签到题web2web3web4web5web6web7web8 CTFShow 平台:https://ctf.show/ web签到题 直接F12然后Base64解码 ctfshow{19bdf375-f974-481e-8c62-0f4c3d170fb4} web2 考点:联合查询 先尝试使用万能密码登入 ‘ or 11# 登入成功&am…

搭建家庭影音媒体中心 --公网远程连接Jellyfin流媒体服务器

文章目录 前言1. 安装Home Assistant2. 配置Home Assistant3. 安装cpolar内网穿透3.1 windows系统3.2 Linux系统3.3 macOS系统 4. 映射Home Assistant端口5. 公网访问Home Assistant6. 固定公网地址6.1 保留一个固定二级子域名6.2 配置固定二级子域名 转载自远程穿透的文章&…

dig命令理解DNS域名解析中的A记录,AAAA记录,CNAME记录,MX记录,NS记录,/etc/hosts本地域名IP映射

参考博文:https://blog.csdn.net/zxl1990_ok/article/details/125432123 目录 参考资料DNS简介/etc/hosts本地域名IP映射查询过程举例直接显示DNS寻址结果向特定DNS服务器寻址查询A记录查询AAAA记录CNAME记录MX记录NS记录PTR记录SOA记录查看DNS服务器的主从关系 参考…

外网SSH远程连接linux服务器,看这一篇就够了

文章目录 视频教程1. Linux CentOS安装cpolar2. 创建TCP隧道3. 随机地址公网远程连接4. 固定TCP地址5. 使用固定公网TCP地址SSH远程 转载自内网穿透工具的文章:无公网IP,SSH远程连接Linux CentOS服务器【内网穿透】 本次教程我们来实现如何在外公网环境下…

【SWAT水文模型】SWAT水文模型建立及应用第二期:土地利用数据的准备

SWAT水文模型建立及应用:土地利用数据的准备 1 简介2 土地利用数据的下载2.1 数据下载方式2.1.1 中科院1km土地利用数据2.1.2 清华大学高精度土地利用数据 2.2 数据下载 3 土地利用数据的准备3.1 矢量转栅格3.2 土地利用类型的重分类3.3 土地利用分布图投影调整3.4 …

数据库系统-并发控制

文章目录 一、为什么要并发控制1.2 并发控制解决的问题1.2.1 脏读1.2.2 幻读1.2.3 不可重复读1.2.4 数据丢失问题 二、事务调度及可串行性2.1 事务2.1.1 事务的宏观2.1.2 事务的微观2.1.3 事务的特性 ACID 2.2 事务调度与可串行性2.3 冲突可串行化判定 三、基于封锁的并发控制方…

DNS基础:通过dig命令理解DNS域名解析中的A记录,AAAA记录,CNAME记录,MX记录,NS记录,/etc/hosts本地域名IP映射

参考博文:https://blog.csdn.net/zxl1990_ok/article/details/125432123 目录 参考资料DNS简介/etc/hosts本地域名IP映射查询过程举例直接显示DNS寻址结果向特定DNS服务器寻址查询A记录查询AAAA记录CNAME记录MX记录NS记录PTR记录SOA记录查看DNS服务器的主从关系 参考…