支持AI视频处理的高容量流媒体加速卡方案

news2024/11/30 12:53:12

  //  

编者按: 实况直播业务随着流媒体市场的发展增长迅速。与传统流媒体“一对多”的模式不同,直播流媒体高交互的特性和 “多对多”的架构对时延的要求越来越高,传统基础设施部署和硬件已经不能高效处理这类需求。在此背景下,AMD专为直播互动流媒体处理打造的新一代Alveo™ MA35D加速卡应运而生。LiveVideoStackCon 2023 上海站邀请了来自AMD AECG的谢旻,为大家分享关于MA35D的基本架构和功能,以及该卡在各个领域视频解决方案中的应用。

文/谢旻

整理/LiveVideoStack

大家好,我是来自AMD AECG数据中心的系统架构师谢旻,AECG的前身即FPGA厂商赛灵思,我所在的小组主要负责数据中心计算、网络和存储方向的研发工作。本次要和大家分享的是AMD近期推出的新一代多媒体视频加速卡,它主要应用于视频处理场景,我们内部将它称为异构加速卡,行业同仁更认可将其称作视频处理单元(VPU)。AMD或赛灵思此前的主要业务方向是研发数据中心级加速器卡,因而大家可能对此次媒体加速卡的发布感到惊讶,实际上这背后伴随着深厚的研发背景。

赛灵思时期,我们的目标是实现FPGA在数据中心的算力落地,通过将FPGA包装为PCIE扩展卡并部署在服务器上,使客户可以按照自身需求调用加速卡的算力,最终推出了Alveo系列加速卡U200、U250和U280。

随着FaaS(FPGA as a service)的落地,我们的工作进一步转向应用化并发现了媒体加速方面的前景,因而开始进行编解码器和IP核的自研设计。赛灵思还专门收购了编解码器公司以推动VPU的开发,从而促成了上一代视频流加速器卡U30和U50的诞生。

我们认为,虽然传统的流媒体服务以及相关的视频处理、压缩是在服务器级CPU上的软件中完成的。但随着分辨率的增加,帧数要求提高,流媒体体量的增加,直播和互动流应用对低延迟的要求变得更加严格,传统的CPU不能高效地处理这种场景。因而我们开始寻求异构加速的方法,用专业的芯片/IP来处理视频流。

基于以上背景,我们认为下一代视频加速卡要支持高质量、高密度、低时延的视频处理,并要具备更好的拓展性,才能满足当前低延时、高交互、大流量多媒体应用环境的需要。

ba75269ddb382e6d78d71d98a4fcf5cb.png

我们将此次推出的新一代加速卡命名为Alveo MA35D Media Accelerator,它是业界首款基于ASIC的5nm视频加速卡,在我们内部的芯片代号为supernova。

与我们上一代产品(Alveo U30)和传统Xilinx芯片的联系不同,它完全脱离了 FPGA,是一个专门应用于交互式流媒体大规模应用场景的针对性解决方案。它内部包含很多专用视频单元和最先进的IP核,通过PCIE Gen 5.0和LPDDR5保证带宽,充分助力视频加速服务。

a0e7ef570508d57458657a30334f1928.png

Bluewave Consulting发布的调研成果促使我们下定决心推出新一代流媒体加速卡,该项研究指出了两点,一是全球视频流媒体市场正在快速增长。据预测,流媒体的市场价值将从 2022 年的略高于 600 亿美元增至 2028 年的超过 2130 亿美元,复合年增长率约为 20%。在美国这很大程度上要归功于 Netflix、Amazon Prime、Hulu、Disney+、HBO 等服务商,国内现阶段也存在诸如优酷、腾讯、爱奇艺、抖音、快手、Bilibili等大量视频平台,甚至微博、微信和知乎等应用也在逐步推出流媒体服务,几乎所有公司都在进行流媒体方向的尝试。

二是流媒体服务正在迎来转型。随着流媒体市场的增长,直播业务所占份额越来越大(例如国内的抖音等直播平台),至2021年已占到总量的70%。

34ce5ef37d712f879f06ad06aa197e91.png

传统流媒体服务架构的形式为广播流媒体,是“一对百万”的模式,该架构下视频的输入源一般较少。以体育赛事的转播场景为例,场外的转播车组织现场的数十台摄像机拍摄赛事画面,经过剪辑上传至云端数据中心/核心网,过程中传输的流相对并不多。随后视频流被分发至CDN,广大用户通过ISP访问CDN获取视频画面。

虽然整个传输路径较长,延迟相对较大,但该场景对实时性的要求不大,并且时延相对可控。同时由于输入流较少,因而对转码的要求也不高。

3a240fc92737b157865caa82c4f5683f.png

迅猛增长的直播市场与传统点播场景不同,每个人都能生成自己的流媒体,个人产生的视频流可能与其他流混同,被不同人群在不同地点使用各异的终端设备观看,过程中还伴随着低时延和高交互等等要求。

这种场景的实际应用也越来越多,如online party、远程医疗、云游戏场景和Zoom、Microsoft Teams等在线会议软件。不同用户使用的设备可能不同,导致输入源的格式、清晰度等等属性五花八门。而以上场景都具备高交互性对时延的要求相当高(如云游戏的时延要在10毫秒内),因而我们希望研发新一代芯片,能够实现低时延、高容量、多路输入(不同格式,不同速率,不同size)、多路输出、多流交互的视频处理。

a50687ee1b9160d078a3e2d6d5e76434.png

新一代直播场景是“百万对百万”的多对多模式。由于每个人都会产生视频流,流的数量将进一步增加,并且突发式的增长会越来越多。直播的高交互性使视频流传输可能将更多采用边到边传输,避免发送至云端数据中心。用户们使用的终端设备不尽相同,对视频流分辨率和码率的要求也不一样。

c7588ecc3492b2bba6eff5e22bcca2ec.png

为了应对直播场景带来的技术挑战,Alveo MA35D支持32路流的1080P60 ABR转码;每通道功耗仅有1W,峰值功耗约35W;4K编码的最低延时达到8毫秒,1080P可以做到单帧2ms;支持做成单个U.2/M.2 的子卡或是多卡集成部署,支持笔记本、平板、园区、数据中心等多种不同部署环境,适配用户的不同需求。与此同时,它还具备22 TOPS AI算力(INT8),可以通过AI技术来赋能智能视频处理。

8b298ef4933e1b48d0d01145deffb4a1.png

上一代U30的“U”代表通用,而MA35D的“MA”代表媒体加速器(Media Accelerator),表示该卡专为媒体加速场景设计。和上一代相比,MA35D实现了全面提升,它的通道密度提高了 4 倍,每通道功耗降低2倍,压缩效率效果提高2倍,时延降低4倍。在实现以上提升的基础上,功耗仅为上一代的一半。

4b638fbe3c0004c18e00be103d845c4b.png

接下来介绍该卡的技术细节。首先四个位于该卡芯片四角的独立编码器和两个解码器支持当前主流编码标准和下一代AV1标准;自适应比特率(ABR)缩放器支持变码率、恒定QP、CBR、VBR等多样化变换;合成器(Compositor)引擎支持多流分块拼接、分层叠加等视频合成处理,它是可编程的,可按照客户自身需求改变输出;VQ 前瞻(Look-Ahead)引擎用于在编码前分析视频流的动态特征,配合编码器实时优化参数;视频质量(VQ)和体验质量(QoE)引擎作为在线质量分析引擎可以将编码后视频的质量分析结果实时反馈至编码器和AI模块,动态调整编码器设置以达到更好的视频输出质量;AI处理器可以对视频进行一些简单的分类和检测处理,依据结果实时调整编码器参数,改善视频质量。

da23f72a92b85cc3de4f2e5bccea9ae2.png

我们也致力于改善编解码器的压缩效率。据AMD内部测试结果显示,在达到同等视觉质量的前提下,以X264 VeryFast为基准对比,AMD H.264编码器可实现24%的码率节省,H.265编码器可节省47%,AV1编码器可节省高达52%。如果加入AI处理环节,压缩效率还将进一步提升。

759efb41cefdbad64ddf9f7aa4cbe5fe.png

上图展示了X265和AMD AV1编码相同视频的实测VMAF测试结果。可以看到在同等条件下,AMD AV1编码视频的质量接近于X265 Slow,尤其在码率较低时表现相当好。

5f71cb8a93b7530f96b57ff3fab82628.png

AMD深度耦合前述的各类硬件单元形成了上图所示的视频处理管道,视频解码、缩放与合成、ABR缩放、AI处理、编码、质量分析等步骤全部由硬件单元完成,通过将所有视频处理功能硬化来最大限度减少CPU和加速卡之间的数据迁移。

b70704f56aa5e53eff7edc6041a07a5e.png

在云游戏和直播场景,大家可能遇到过画面内字符显示不清晰的问题,运用前述的AI技术则可对字符所在区域进行显示质量的针对性优化。

c148ce382947a0de4adbdb71072eab8f.png

用户可通过我们随卡附带的AMD媒体加速软件开发套件(SDK)访问加速卡,它带有FFmpeg、GStreamer接口,便于快速上手。高阶用户还可以通过AMD 媒体加速器接口客制化调用加速卡的各种视频处理模块。

aed44a6b63d2f6c4317259f06b15fcb1.png

接下来介绍MA35D的一次视频处理性能演示,我们使用单卡双芯片同时处理两个4k60 8Mps H264流。其中一路解码后分为四个流以不同码率和编码标准输出,四个流中的三个在同服务器上使用加速卡自带解码器进行转码、编码,传输至显示器。另一路分为三个流按不同分辨率、码率和编码标准输出,同第一路中的第四个流一并无线传输至不同设备解码显示。

b5ab8d761f65fc95114a1b073ce165ed.png

如上所示,演示过程中第一路流在同服务器下的转码和解码都达到了60fps水平,并且转码占用的CPU核1负载不大,核2到核8负责将解码后YUV数据转移至显卡,因而出现了高负载情况。处理过程中的加速卡资源占用情况支持随时调取查看。

2caf3867f695953e8dd2beacd7d24fff.png

上图展示了演示的实时多流多终端传输显示效果。我今天的分享就到这里,谢谢大家。



d65d3fa1d65c8437b33e1e51697689f9.png

扫描图中二维码或点击“阅读原文 

直通LiveVideoStackCon 2023深圳站 8折购票通道

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

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

相关文章

ELK日志收集系统(四十九)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 二、组件 1. elasticsearch 2. logstash 2.1 工作过程 2.2 INPUT 2.3 FILETER 2.4 OUTPUTS 3. kibana 三、架构类型 3.1 ELK 3.2 ELKK 3.3 ELFK 3.5 EF…

科技政策 | 浙江省科学技术厅关于组织申报2024年度“尖兵”“领雁”研发攻关计划第一批项目的通知

原创 | 文 BFT机器人 近日浙江省科技厅发布了2024年第一批“尖兵”“领雁”研发攻关计划;2024年度攻关计划将围绕三大科创高地战略领域,聚焦研发具有先发优势的关键共性技术和引领未来发展的基础前沿技术,根据战略需求、规划需求、市场需求等…

MySQL之从单机到集群

写在前面 本文一起看下MySQL是单机存在的问题,以及为了解决这些问题所提出的各种解决方案。 1:从单机到集群 并非业务发展初期我们就直接使用集群来支撑业务,而是简单的使用单机版本,但是随着业务的发展,单机的各种…

22 Linux高级篇-定制自己的Linux系统

22 Linux高级篇-定制自己的Linux系统 文章目录 22 Linux高级篇-定制自己的Linux系统22.1 Linux7启动流程介绍22.1.1 Linux7启动流程22.1.3 systemd概述 22.2 *制作min-linux思路分析22.3 操作步骤步骤1:创建新磁盘步骤2:制作启动盘步骤3:创建…

一个简单的vim例子

一.欢迎来到我的酒馆 在本章节介绍vim工具。 目录 一.欢迎来到我的酒馆二.什么是vim 二.什么是vim 2.1什么是vim vim是一种Linux命令行类型 的文本编辑器。vim指的是"vi improved",意思是vi工具的升级版。vim是基于vi实现的,它提供了…

设计模式--模板方法模式(Template Method Pattern)

一、什么是模板方法模式(Template Method Pattern) 模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤的实现延迟到子类中。模板方法模式允许在不改变算法的…

视频汇聚/视频云存储/视频监控管理平台EasyCVR新增首次登录强制修改密码

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。视频汇聚平台既具…

Quartus II安装下载驱动

Quartus II安装下载驱动 安装步骤: (1)安装完quartus后会自带USB-Blaster的驱动程序,因此不用再去网上下载。 (2)右键点脑左下角win,找到设备管理器并进入。 (3)找到…

QT 常用类与组件

0 思维导图 1 信息调试类&#xff08;QDebug&#xff09; #include "widget.h" #include<iostream> //printf #include<QDebug> //qDebuf using namespace std; //coutWidget::Widget(QWidget *parent): QWidget(parent) {//输出函数//使用…

【python爬虫】—图片爬取

图片爬取 需求分析Python实现 需求分析 从https://pic.netbian.com/4kfengjing/网站爬取图片&#xff0c;并保存 Python实现 获取待爬取网页 def get_htmls(pageslist(range(2, 5))):"""获取待爬取网页"""pages_list []for page in pages:u…

[Pandas] 求百分比并添加百分(%)号

导入数据 import pandas as pddf pd.DataFrame(data{orders: [2130,5102,3256,1297,1918,786],repeat_orders: [73,158,89,30,49,18]}) df df[repetition_rate] df[repeat_orders] / df[orders] df df[repetition_rate] df[repetition_rate].apply(lambda x: format(x, .2…

哈希表+字符串

一)知识回顾: 1)哈希表是什么?哈希表是存储数据的容器 2)哈希表有啥用?快速的查找某一个元素 3)什么时候使用哈希表?频繁的查找某一个数的时候&#xff0c;当我们快速查找某一个数的时候&#xff0c;不光要想到哈希表还需要想到二分查找&#xff0c;但是二分查找算法的局限性…

Linux——(第二章)Linux的目录结构

VMwear workstations下载及安装 Ubuntu server 18.04安装 VScode下载与安装 使用VS Code连接远程服务器 MobaXterm的下载安装及远程连接 Filezila的下载、安装与使用&#xff08;向服务器传输文件&#xff09; 目录 1.基本介绍 2.Linux目录结构 3.具体目录说明 4.补充 1.基…

从编程语言的角度来理解正则表达式

程序代码是对现实事物处理逻辑的抽象&#xff0c;而正则表达式&#xff0c;则是对复杂的字符匹配程序代码的进一步抽象&#xff1b;也就是说&#xff0c;高度简洁的正则表达式&#xff0c;可以认为其背后所对应的&#xff0c;是字符匹配程序代码&#xff0c;而字符匹配程序代码…

低代码:工业互联网从“学步”到“奔跑”的加速器

一、政策、技术合力推进&#xff0c;工业互联网发展提速 工业制造业曾经创造了我国的崛起神话&#xff0c;最近几年&#xff0c;随着新闻中一些老牌制造业厂商的闭幕&#xff0c;很多人都开始思考&#xff1a;未来工业会是什么样子&#xff1f; 放眼全球&#xff0c;各国对于工…

阿里云轻量应用服务器Linux-Centos7下Oracle19c的安装

初始环境&#xff1a;阿里云轻量应用服务器已经重置系统为CentOS7.3-64位 具体目标&#xff1a;安装Oracle Database 19c 目录 第一步&#xff1a;检查Linux系统版本第二步&#xff1a;下载Oracle19c的安装包第三步&#xff1a;下载Oracle19c的预安装包第四步&#xff1a;上传到…

react学习之路:TS报错-Its return type ‘Element[]‘ is not a valid JSX element

React报错之 Its return type ‘Element[]’ is not a valid JSX element 产生的原因&#xff1a; 1&#xff0c;函数组件返回的是Element数组&#xff0c;不是JSX元素。 2&#xff0c;如果组件返回的是JSX和null以外的值会提示类似’xxx’ cannot be used as a JSX componen…

023 - STM32学习笔记 - 扩展外部SDRAM(二) - 扩展外部SDRAM实验

023- STM32学习笔记 - 扩展外部SDRAM&#xff08;一&#xff09; - 扩展外部SDRAM实验 本节内容中要配置的引脚很多&#xff0c;如果你用的开发板跟我的不一样&#xff0c;请详细参照STM32规格书中说明对相关GPIO引脚进行配置。 先提前对本届内容的变成步骤进行总结如下&…

Breakpad交叉编译aarch64

原本是在mac os上编译的&#xff0c;但是会出现一些问题&#xff0c;因此还是开了台linux容器进行编译&#xff0c;本文可结合之前的linux下编译breakpad共同查看。 Linux下Breakpad编译_Edward.W的博客-CSDN博客https://blog.csdn.net/u013379032/article/details/130754480?…