火山引擎 BVE 视频图片硬件编码器演进之路

动手点关注

19a4c16ea5cee04c009e73086e9c32a6.gif

干货不迷路

前言

近日,第 17 届世界编码器大赛 MSU 2022 公布硬件编码器比赛结果,在 60 fps(帧率)的超快视频编码赛道上,火山引擎多媒体实验室自主研发的 BVE 1.1 编码器表现突出,荣获最佳 FPGA 编码器(各项指标大幅领先);并在所有硬件编码器中,技术指标获得一项第一和两项第二,技术能力达到行业领先水平。

MSU 编码器比赛是由国际机构主办和测评,是视频编码业内影响力最大的国际比赛。

843cbd951ada05d83d0b918af7a37c69.png

MSU 2022 视频硬件编码器大赛 60 fps 赛道比赛结果

背景

随着 5G、互联网等技术不断发展,以及半导体工艺的不断进步,电子产品的性能得到持续提升,基于视频内容的应用不断涌现,如抖音、爱奇艺、Bilibili、以及 Youtube 等。另一方面,相对于传统的文字图片内容,视频内容的传输需要更大的网络带宽。而随着消费者对于高清视频需求的指数级增长,如何解决用户需求和网络带宽的矛盾逐渐成为视频应用普及和进步的最大挑战。在众多视频技术中,视频压缩是解决带宽限制最为关键的技术。

视频压缩主要利用视频内容中存在的时间和空间冗余,以更小的码流进行视频内容的传输。视频压缩技术和标准也在不断进步中,如最新的 VVC 标准,编码性能相较前一代提升超过 50%,而计算复杂度则至少提升 5 倍以上。主流的视频压缩解决方案主要分为软件编码器和硬件编码器两种。其中软件编码器主要由 CPU 实现,硬件编码器包括 GPU,FPGA,以及 ASIC 三种方案。相较于软件编码器,硬件编码器具有更高的计算密度,更高的吞吐率,更低的延时和计算成本等优势。为了实现低延时、低码率、高画质、可持续的视频应用,采用硬件编码解决方案成为一种必然的选择。

团队简介

火山引擎多媒体实验室视频芯片团队从零开始建立了数据中心高密度硬件视频编码解决方案,包括算法开发及优化、硬件架构设计及验证、固件及软件开发等。团队在短时间内从零到一完成了多款硬件编码方案的设计以及部署,包括 FPGA HEIF 图片编码器、FPGA 视频编码器 BVE 1.0、及 BVE 1.1 等。其中 FPGA HEIF 图片编码器已经成功部署数千片,全面覆盖了抖音集团旗下抖音、头条、西瓜视频等的各个HEIF静图、动图业务场景。FPGA 视频编码器 BVE 1.0 和 BVE 1.1 连续两年获评 MSU 最佳 FPGA编码器,编码性能大幅领先行业平均水平。

架构设计

视频转码整体架构

BVE硬件编码方案设计充分考虑到了硬件方案的兼容性以及火山引擎转码服务流程,极大地简化了硬件方案实现替代的难度。自主设计的转码器架构不仅兼容业界标准FFMPEG API框架,同时支持火山引擎自研的业户调度系统,从而实现了对点播,直播,云游戏,图片编码等不同业务场景的无缝支持,减少了新产品从开发到业务落地的周期。

40c525d42610cde1927673994dcc23d3.png

视频转码整体架构图

火山引擎转码流程主要由三个核心模块组成:

  • Host Server: 运行ffmpeg,集成图片、视频相关处理API,通过PCIe 跟编码器和解码器通讯,实现对编解码的控制, 同时对解码出来的YUV做相应的前处理,例如画质增强,锐化,降噪,插帧, ROI, CAE等, 并且通过ffmpeg API对音频部分做相关的编解码,实现对音频和视频的同步耦合等;

  • 解码器(Decoder): 对于FPGA方案,采用ffmpeg自带的软件解码器,支持了不同格式的解码, 并对解出的YUV 做格式转换,缩放等后处理后存入DDR, 提供给编码器进行编码;

  • 编码器 (Encoder): 采用自研的FPGA BVE 1.1 架构设计, 加入各种自适应算法, 实现了低延时、低码率、高画质视频压缩,达到行业硬件编码器性能的领先水平。

编码核心算法

编码核心算法方面,针对移动互联网应用的特性,采用定制化以及自适应算法解决方案,加入视频图像中各种统计数据,优化编码参数配置,从而达到极致的编码效率。

BVE编码算法设计中引入了多种自适应编码算法,包括自适应色度增强、运动补偿时域滤波、ROI编码、以及锐化增强等。其中,ROI的引入能极大的提升主观质量,并有效降低码率。锐化增强可以有效地提升视频清晰度,及用户画质体验。运动补偿时域滤波可以根据帧间相关性去除用户上传视频中的原有噪声,从而提升编码效率。自适应色度增强可以根据视频内容自动调整色度分量的码率大小,保持相同视频质量的同时提升编码效率。

MSU比赛结果显示,BVE FPGA编码器整体编码性能比行业标准编码器(GPU)提升30%,与行业最优的ASIC编码器相当。在60 fps 超快视频编码的客观质量评比中,火山引擎与腾讯、快手、Intel、Bluedot等参赛队伍排名前列。在同期参赛的多款不同类型的硬件编码器产品中,火山引擎 BVE 1.1 不仅荣获最佳FPGA硬件编码器,同时在主观质量(YUV-VMAF)上更是领先其他所有硬件编码器。

ba3e94bbc7cd791fd969a115500a09dd.png

‍MSU 2022 视频硬件编码器大赛 60 fps 赛道YUV-VMAF结果

编码硬件架构

硬件架构方面,BVE编码器采用全新的编码器硬件架构设计方案,不仅内嵌多种优化的编码预分析和预处理模块,而且支持多种编码模式,如并行编码、低延时编码等,能够很好地适配多种应用场景,以较小的硬件代价实现编码性能和视频质量的最大化。

编码器架构设计方面,核心模块全面采用可配置的编码参数设计方案,支持端到端的自适应优化。首先,BVE编码器采用多层次的运动搜索方式,支持搜索范围动态调整,不仅能够实现精确的运动估计,同时优化硬件吞吐率。其次,BVE编码器支持全并行的率失真优化设计,精确的码率估计,以及优化的量化编码,能够实现最大化编码性能和吞吐率。BVE编码器硬件内部定制的DMA进一步优化内存数据存取效率,降低软硬件通信延时,提高带宽利用率和编码器吞吐率等。

BVE硬件编码器架构设计已经过大量实验以及应用验证,如HEIF以及FPGA等,不仅具有编码性能优异,吞吐率高等优点,同时具备支持自适应优化特性,可无缝衔接抖音集团主要产品。

写在最后

FPGA BVE及HEIF编码器目前已广泛应用于今日头条、抖音、西瓜视频等抖音集团旗下产品的图片和视频业务,及火山引擎图片业务toB产品veImageX中。高性能的BVE硬件编码器除了支持主流的转码、直播等应用外,由于具有低延时、高吞吐、低成本等特点,也为更多创新的视频应用提供可能性。

多媒体实验室简介

火山引擎多媒体实验室是字节跳动旗下的研究团队,致力于探索多媒体领域的前沿技术,参与国际标准化工作,其众多创新算法及软硬件解决方案已经广泛应用在抖音、西瓜视频等产品的多媒体业务,并向火山引擎的企业级客户提供技术服务。实验室成立以来,多篇论文入选国际顶会和旗舰期刊,并获得数项国际级技术赛事冠军、行业创新奖及最佳论文奖。‍

猜你喜欢

转载自blog.csdn.net/ByteDanceTech/article/details/130417979