如果你是一个常看视频的人,应该会被各种平台的小把戏欺骗到:明明设置了好几个清晰度,点开视频看却都是一样的糊;为了减轻等待缓冲时的枯燥,跳出很多吸睛小广告留住你;设置好多个线路版本,让你在想要放弃加载时仍抱着希望试试下一个(但依旧失败)。
先别急着骂骂咧咧,凑近看着视频平台内部到底在干啥——原来此时计算中心正在加足火力工作,解码视频、加载资源、和其他业务争抢带宽,完全忙不过来。
算力的世界丨giphy
(资料图片仅供参考)
看视频和使用其他网络服务一样,基础都是处理数据,这需要计算机最根本的能力——算力的支持。不过与文字或音频数据相比,视频数据的数据量更大,对压缩质量的要求更高,也更注重传输的速度,毕竟谁都不想看到又糊又卡的视频。
这苦了计算中心。计算机的算力由处理器提供,英特尔的 x86 处理器、英伟达的通用 GPU,都是经典的处理器,加上储存、内存、网络等组件后,构成可用于各种计算任务的通用计算平台。从计算机诞生那天开始,通用计算平台无差别地为各种数据处理提供计算支持。在网络服务发展还处于初期的阶段,这样的通用设置尚能应付各种需求,但在网络服务已高度细分发展的今天,事情早大变样。
我们正活在一个视频数据暴增的时代。根据 Sandvine 最新发布的《2023全球互联网现象报告》,2022 年全球娱乐与非娱乐视频数据占到全体数据流量的 70%,艾瑞咨询的数据也显示,TOP 100 的 App 中,搭载了点播、直播、实时通信三个最主流音视频功能的比例达到 69%。
不仅视频数据量暴增,边视频边连麦、边看电影边发弹幕,或是边看直播边购物,功能的扩展也在增加视频数据的复杂程度。
如果把通用计算平台比做厨房里的灶,为所有的烹饪行为(数据处理)提供火力,视频数据的暴增则会导致“灶”不够用。视频行业的通识里,视频数据正以每年增长 75% 的速度膨胀,而根据摩尔定律,芯片却还是 18-24 个月才升级一次性能——食材越堆越多,需要用更大的火候增加处理效率,灶却久久不升级,这怎么够用。
此外,不同特性的数据就像不同的食材,需要专门的火候才能处理得更好。但通用计算平台这口灶为所有的烹饪而设计,很难对视频数据进行最符合其需求的处理。如同字节跳动视频架构负责人、火山引擎视频云架构技术总监王悦的介绍,现在市面上通用的视频计算方案,就很少考虑过“加特效”这个在今天越来越常见的需求,于是原本炫酷的特效,经过无差别的计算方案处理后,呈现到用户面前却变得模糊,马赛克严重。
而这又导致另一个让视频从业者头疼的问题——今天的用户越来越“挑剔”,1G 到 5G、360P 到 4K、从耳机能听个响就行,到空间音频加杜比音效都满足不了爱好者的耳朵……技术的发展让用户“由奢入简难”。模糊、延时、卡帧,这些视频播放时的瑕疵,都会轻易影响用户的观感。
加载中......令人崩溃丨giphy
王悦提供了一组业内观察数据:“云游戏业务下,延时超过 100 毫秒用户就很难玩下去;实时通信延时超过 0.5 秒,用户就能感受到不顺畅;直播延时 2-3 秒,用户的打赏或各个业务指标就会受到很大影响。”
嗯,现在知道为什么视频平台要耍那么多小把戏了吧。
通用不行,让异构上
既然通用的“灶”难以满足不同食材的需求,那为食材专门设计灶呢?
上世纪 80 年代,GPU(图形处理器)出现,与 CPU 相比,GPU 更擅长处理图像,人们也开始探索更多样的处理器方向。而随着这些年算力需求的不断提升,集合多个不同计算单元的异构计算平台受到关注。与通用平台相比,异构计算平台能集合多个高性能处理器,并让不同的处理器执行其擅长的任务,性能更好,灵活性更高。
那专门处理视频数据的异构计算平台应该如何组合,火山引擎视频云是这样探索的:
首先是火山引擎自研的视频编解码芯片。这是一款 ASIC(专用应用集成电路)芯片,特点是可以依据不同产品的需求而专门设计和制造,并在使用时只执行预设好的固定功能。它是目前各种计算单元的选择中,能将低成本和高性能发挥到最佳的选择。火山引擎为视频转码加速场景专门设计的视频编解码芯片,重点关注其在压缩效率、计算密度、延时和成本上的表现。目前该芯片服务器一台的转码能力,就相当于百台CPU服务器的算力,能对几乎全量的点播/直播视频进行高质量转码。
ASIC 之外,则是搭配 FPGA 编码器。FPGA 是一种可编程的半定制化电路,它的计算密度(单位面积内晶体管的数量)和吞吐(单位时间内芯片能够处理的数据量)比 ASIC 稍逊,但它可擦写,在使用时更为灵活。火山引擎的这款 FPGA 编码器同样主力支持转码、直播等应用场景,整体编码性能比行业标准编码器提升 30%。
而为了应对更丰富的视频业务场景,火山引擎视频云还搭载了高密度 ARM 阵列服务器。ARM 是 Advanced RISC Machine 的缩写,是一种精简指令集计算机架构,常见于手机,平板电脑等小型设备中。它的功耗低、成本低、但同样可以根据不同的应用进行定制,是一个性价比较高的选择。经过火山引擎的设计,这款 ARM 阵列服务器相比通用的 x86 架构,成本可以节省至少 40%,同时因为实现了储存和计算的分离,也为数据的安全提供了更高保障,适合云游戏、云手机、云测试等业务场景。
大火的 GPU 也在此异构计算平台中占据一席之地,它由大量并行处理单元组成,可以使用多个处理器来执行一个任务,适合需要大量计算的任务。因此相较其他三个组件,它更能满足深度学习、视频画质检测与剖析、质量增强处理、XR 云端烘托等需求。那些未来的视频场景,比如数字人、VR、AR 等,就主要靠它。
可以看出,异构计算平台是一个搭配了各种火力的灶台中心,为不同的食材提供最适合的火力。在综合的视频业务中,各计算单元也可以各司其职,让效率和效果最大化。王悦表示,对服务提供商而言,这套计算方案在部分场景下的 TCO(总体拥有成本)成本可以下降 90%,用户也能在几乎全量的视频服务中获得高质量体验。
芯片为啥非得自己造
按需组装异构计算平台还不是最终的做法,更进一步的做法是,连芯片都自己做。
火山引擎视频云中,视频编解码芯片、FPGA 编码器、高密度 ARM 阵列服务器均为团队自研。特别是视频编解码芯片,“它的确是能把高质量和低成本做到极致的方案”,王悦说,但目前市面上的选择,在密度、成本、能力上并不能完全满足团队需求。特别是火山引擎基于抖音集团,在视频场景处理和算法上的积累,有着比第三方芯片设计更丰富的经验,于是,“只有自己做才能将优势做到极致”。
这当然不容易。算法是最难的部分,如何将压缩率做到极致,“需要一点点抠”,而自研芯片所需的固定投入、人才储备,都不是小数目。这几乎是一个不容许失败,否则损失巨大的项目。
火山引擎团队选择一步步来,先从风险较小的自研 FPGA 编码器入手,验证成功后,再往下自研 ASIC 芯片,一步步构建整个计算平台。整个研发过程花去火山引擎将近四年的时间,但好在效果不错。先行研发的 FPGA 编码器连续两年获评 MSU 最佳 FPGA 编码器,自研编解码芯片的压缩效率比行业主流硬件编码器提升30%,而高密度 ARM 阵列服务器也比同类产品在成本上节省40%。
自研的另一个好处,是能对不断增加的行业需求做出及时响应。如前文提到,视频处理需求已不局限于视频行业,各行各业都在自己的业务背景下对视频提出要求。
视像新生丨火山引擎
火山引擎视频云,则依托自研的异构算力平台,提供集视频直播、视频点播&智能处理、实时音视频、图片处理、企业直播、云游戏、云手机、慢直播等一站式音视频产品服务,针对金融、传媒、汽车、云游戏等行业沉淀了一系列的行业场景化方案。团队也准备着随时精进底层技术,以保持对视频发展新需求的回应。
*广告*
果壳商业科技传播部出品