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

news2025/1/18 17:09:44

动手点关注

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硬件编码器除了支持主流的转码、直播等应用外,由于具有低延时、高吞吐、低成本等特点,也为更多创新的视频应用提供可能性。

多媒体实验室简介

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

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

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

相关文章

计算机网络学习06(HTTP1.0 vs HTTP1.1)

1、响应状态码 HTTP/1.0仅定义了16种状态码。HTTP/1.1中新加入了大量的状态码,光是错误响应状态码就新增了24种。比如说,100 (Continue)——在请求大资源前的预热请求,206 (Partial Content)——范围请求的标识码,409 (Conflict)…

【C++】priority_queue使用和模拟实现——仿函数

文章目录 1. priority_queue的使用1.priority_queue的介绍2.priority_queue的结构3. 主要接口4. 使用示例 2. 仿函数1. 仿函数的概念2.尝试实现仿函数 3.priority_queue的模拟实现1.priority_queue的结构2. 接口实现1.向下调整算法2. 向上调整算法3.构造函数4.修改数据5.获取数…

机器学习 -Statsmodels

机器学习记录 Statsmodels 用于探索数据, 估计模型, 并运行统计检验. conda install -y statsmodels线性回归 import numpy as np import pandas as pd import matplotlib.pyplot as plt import statsmodels.api as sm import statsmodels.datasets.utils as du import sea…

数据结构【二】:霍夫曼编码

霍夫曼编码(Huffman Coding)是可变长编码(VLC)的一种。本质上使用变长编码表对源符号进行编码,通过评估源符号出现概率的方法进行分类,将出现几率较高的源字符使用较短的编码,出现几率较低的源字…

Hive优化补充

目录 一、表设计优化 1.通过设计分区表,增加动态分区,查询时避免全表扫描 2.设计分桶表:适用于大表join大表的情况 最后,两张大表进行join转为两张分桶表进行join: 二、文件存储 1.文件格式-概述 2.文件格式——…

学系统集成项目管理工程师(中项)系列13b_人力资源管理(下)

1. 项目团队建设 1.1. 塔克曼(Tuckman)阶梯理论 1.2. 理论基础 1.2.1. 激励理论 1.2.1.1. 马斯洛需要层次理论 1.2.1.1.1. 生理需要 1.2.1.1.2. 安全需要 1.2.1.1.3. 社会交往的需要 1.2.1.1.4. 自尊的需要 1.2.1.1.5. 自我实现的需要 1.2.1.2. 赫茨伯格的双因素理论…

Leetcode力扣秋招刷题路-0802

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 802. 找到最终的安全状态 有一个有 n 个节点的有向图,节点按 0 到 n - 1 编号。图由一个 索引从 0 开始 的 2D 整数数组 graph表示, graph[i]是与节点 i 相邻的节…

Git HEAD及detached head

背景:最近在使用git checkout重置HEAD指向,偶尔会出现Detached HEAD提示,于是想探究一下具体的原理及过程,遂写下了这篇文章。一般checkout用于切换分支和检出历史的某个节点,或恢复工作区的文件,这三个功能…

OpenHarmony JS Demo开发讲解

项目结构 打开entry→src→main→js,工程的开发目录如图所示 其中, i18n文件夹:用于存放配置不同语言场景的资源,比如应用文本词条,图片路径等资源。en-US.json文件定义了在英文模式下页面显示的变量内容&#xff0c…

Java 泛型为什么设计成是可以擦除的

Java 泛型是 Java 5 引入的一种类型安全的编程机制,它允许在编译时指定泛型类型参数,从而提高代码的类型安全性和可读性。然而,Java 泛型的实现方式是通过类型擦除来实现的,这也引发了一些争议。本文将介绍 Java 泛型为什么设计成…

2023年某科技公司前端开发初级岗的面试笔试真题(含选择题答案、问答题解析、机试题源码)

📚关于该专栏: 该专栏的发布内容是前端面试中笔试部分真题、答卷类、机试等等的题目,题目类型包括逻辑题、算法题、选择题、问答题等等,除了内容的分享,还有解析和答案。真实来自某些互联网公司,坐标广东广州。 🔥🔥🔥 持 续 更 新 🔥🔥🔥 😉专栏博主: 黛…

HCIP-7.1交换机ARP、VLAN之间的三层通信技术学习

交换机ARP、VLAN之间的三层通信技术学习 1、ARP1.1、 地址解析过程1.2、ARP报文格式1.3、ARP表项1.4、免费ARP1.5、 VLAN间ARP代理1.5.1、解决同网段,不同广播域内主机互通问题;1.5.2、解决同网段,不同VLAN之间主机互通问题。1.5.3、解决同网…

Ignore insecure directories and continue [y] or abort compinit [n]?

问题: 在Mac终端中使用Zsh作为默认shell时,有时会弹出以下提示信息: Ignore insecure directories and continue [y] or abort compinit [n]? 这个提示出现的原因是因为Zsh在加载时会检查所有的目录是否安全,并拒绝加载不安全的…

【LeetCode: 62. 不同路径 | 暴力递归=>记忆化搜索=>动态规划 】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

卡尔曼滤波器简介——概述

关于卡尔曼滤波器 大多数现代系统都有许多传感器,可以根据一系列测量来估计隐藏(未知)状态。例如,GPS接收器提供位置和速度估计,其中位置和速度是隐藏状态,卫星信号到达的差分时间是测量值。 跟踪和控制系统…

ChatGPT的进化版?AutoGPT怎么用

AutoGPT是什么 首选给大家介绍,ChatGPT与AutoGPT的区别 目前AutoGPT被称为最接近AGI的人工智能,它是ChatGPT的进化版? “ChatGPT” 只能提供2021年9月之前的信息,所以你问它告诉我今天的天气,它回答不了 “AutoGPT” …

AutoGPT不靠谱,微软推出升级版!可编辑自主规划过程

夕小瑶科技说 原创 作者 | iven 火遍全网的AutoGPT[1]在Github收藏量突破十万。这种自我规划、自我执行的智能体首次关注人工智能模型内部的自我调整与优化。 但是有不少网友发现,AutoGPT的表现不稳定,死循环是最常见的现象。此外,AutoGPT执…

输入指令为±10V或4~20mA型伺服阀控制器

工作电压 19~35 VDC(常规24VDC) 最大功率消耗 <25VA 空载电流 ≤100mA(24V) 差分信号输入 0~10 V,输入阻抗≥100KΩ 4~20 mA,输入阻抗100Ω (出厂前需指定,现场不可…

免费的ERP系统哪个好?这款让管理更高效

阅读本文你将了解:ERP是什么?解决什么问题?ERP选型的参考维度?零代码ERP系统解决哪些场景问题? 题目提到“免费”,其实很难有软件可以真正做到。 商业化市场决定了没有一家厂商可以不落俗套。因而我们要探…

[架构之路-177]-《软考-系统分析师》-17-嵌入式系统分析与设计 -2- 系统分析与设计、低功耗设计

目录 1 7 . 4 嵌 入 式 系 统 开 发 17.4.1 开发平台 1 . 交叉开发环境 2 . 交叉编译环境 17. 2 开发流程 1. 过程模型 2 . 分析与设计方法 17.4.3 软硬件协同设计 1 . 软 硬 件 协 同 设 计 方 法 2 . 协 同 设 计 工 具 17.4.4 系统分析与设计 1 . 需求分析 2 .…