“玲珑”编解码融合架构助力视频多元化需求

news2024/11/17 11:25:58

随着近年来 AI 技术的兴起,视频监控、汽车、智能家居、移动设备及数据中心等对高清视频处理有了越来越高的要求。安谋科技全新视频处理器——“玲珑”V6/V8,针对主流市场的视频流媒体技术进行了大量投入,通过一系列智能权衡实现了极大优化,为所有合作伙伴提供灵活的组合和选择。LiveVideoStackCon 2022北京站邀请到了安谋科技多媒体产品经理董峰,为我们分享“玲珑”编解码融合架构助力视频多元化需求。

文/董峰

编辑/LiveVideoStack

ffdb7bcf10644c8cb5ba503c43475820.png

此次是安谋科技在LiveVideoStack大会的演讲首秀。安谋科技是中国最大的芯片IP设计与服务供应商,在立足全球生态、深耕本土创新的基础上,坚持以自研IP技术的创新发展与Arm IP相配合,为本土集成电路产业提供丰富的产品组合和解决方案。

b833dd8998e31f8dbeffef6315fc7ade.png

自2018年独立运营以来,安谋科技坚持开展自研IP和发展Arm IP业务,一方面是结合中国市场需求积极布局自研业务,坚持“全球标准,本土创新”,陆续推出“周易”NPU、“星辰”CPU、“山海”SPU以及“玲珑”ISP&VPU等自研IP成果,并全部实现了客户相关芯片产品的流片和量产。另一方面,安谋科技也致力于将Arm 先进的架构和技术引进国内,满足国内公司开发具有全球竞争力产品的需求。在两大支柱业务的合力之下,目前安谋科技已打造一体化、完整的异构计算IP核心矩阵,助力中国智能计算产业高速发展。

3c67fbe6cd5d00a1ca9873daa0b2cfd0.png

047636fb1bd3fda426d93ead5f264142.png

芯片IP厂商需要考虑多元化的需求,应当满足不同场景下的不同诉求。对于视频来说,无论是端、边、云都有很大的视频编解码需求。端侧手机、IPC、无人机等不同场景对视频编解码的需求存在较大差异。而云端和车载则是完全不同的方向。手机以及安防在编码和解码方面差异也较为明显,手机客户解码需求更强,但是旗舰机对于一些图传也存在不同需求。作为IP厂商如何面对复杂多变的市场需求是首当其冲的问题。

f2dafc9136a873eb086514471d273b8d.png

安谋科技VPU团队在2019年底成立,从2020年初开始研发自研产品。我们团队从Arm Mali-V52的维护开始,逐渐完成两代产品的研发。为了更好地满足行业基本格式需求,我们新增了AVS2和AV1格式,“玲珑”V5/V7花费了近三个季度完成,“玲珑”V6/V8则花费了将近一年。除了增加格式之外,还增强了整体编码能力。“玲珑”V5/V7的HEVC编码质量与Arm Mali-V52/76相比提升了15%,“玲珑”V6/V8的H.264编码质量也比“玲珑”V5/V7提升了10%。面对多样的产品需求,增加了复杂的前后处理,“玲珑”V5/V7增加了Any ratio downscaling的后处理;“玲珑”V6/V8增加了OSD的前处理,以及YUV到RGB的后处理。

e7608b4dfa069b24ae8af4f13f109e8d.png

“玲珑”VPU支持全格式,整体面积较小。“玲珑”V5全格式支持包括前后处理P&R之后是1.83。芯片IP行业一直在追求更高的性能、更小的功耗和更小的面积,产品在迭代过程中针对上述问题的改进还是颇有成效。在整体架构方面也有别于其它架构,“玲珑”VPU以单核实现编解码融合,既可以编码也可以解码,以适用于多样场景的需求。不只是硬件格式的支持,还囊括了可编程的软件部分,以满足对多种场景变化的需求。

在硬件层面上,“玲珑”VPU添加更多灵活可配的接口,其它能力通过软件层面实现扩展。该产品整体是5个MCU的结构,不同的MCU对应控制不同的硬件加速器。在spec分析阶段,需要考虑哪些可以固化、哪些可以通过灵活的软件配置实现,再将可固化的部分做成纯硬件。

尽管端和云对处理器性能要求差异巨大,但是从芯片IP角度出发,还是希望能用统一的方式来支撑不同场景的需求,基于多核的可拓展性对性能进行扩展,通过扩展核数以支持不同场景需求。例如,端侧客户单核即可满足需求,而边缘侧大致需要四核,那云端基本需要八核。在7nm制程前提下,八核基本可以实现8k@60fps编码或8k@120fps解码。

e2a16355528f7ed5397817a7fe25d8d0.png

除了上述的多核可拓展性之外,“玲珑”VPU对于MCU本身也会有所考量。不同于Arm Cortex A和Cortex M的核,其单独为视频场景进行定制优化,基本上仍然是5级的流水。而在频率方面,和整个VPU同频。16FF下至少可达到800MHz。由此可见,该核本身就可以保证其性能,在视频场景下更侧重于加速器的控制,所以不会让其触碰pixel内容,在指令集方面也做了很多优化。

除了6个加速器之外,“玲珑”VPU还有两个DMA相关的单元,一个是SDMA,另一个是VDMA。VDMA主要用于处理Frame级别的数据,包括编码的输入数据和解码的输出数据,前后处理也可以通过该单元灵活扩展。这几代产品的迭代都是把功能分散到不同的加速器以及top层上。应对不同场景的需求,除了性能和基本功能之外,系统层面仍然有差异化的需求,多路的隔离、系统访存延迟优化、降带宽、降延时等都属于系统层面的优化,也和Arm的生态保持一致。

7e3ad1adec3fd414216c1b8ad4023064.png

在系统层面,通过降带宽、降延时来应对大带宽系统的需求,基于AFBC,可与Arm GPU以及Display搭配进行,内部中间的参考帧使用AFBC压缩,可让带宽在输入和输出都不压缩的情况下降低35%。在GPU使用VPU解码数据进行纹理渲染时,整体的带宽可降低至原先的45%。在Display场景中,也可以达到类似的效果。除了整个数据流,中间的参考帧数据也可以单独拿出来为后面的单元进行相对地管理,也可以有效降低带宽。“玲珑”VPU围绕各个层面进行统一考量,以更好地降低带宽需求。

9272006ee0276fa3a57f1e3258805e0b.png

VPU不仅需要在视频场景中考量系统层面的优化,也需要从系统层面进行考量,内部的并行也可以在top ram进行优化,以减少多核之间的内存访存。VPU与CPU处理器、视频、显示的联合也可以做到类似的效果。

ecdcde750eb6fe69e340482216d749ee.png

就AFBC本身而言,也分为不同的版本。AFBC是Arm Frame Buffer Compression的缩写,简单理解就是Arm系统层面上的无损压缩,主要目的是带宽的优化。AFBC的能力是基于Arm整个IP层面来实现的,是在系统层面的整体优化。对于ISP而言,Arm也有专用的AFBC模块用来连接ISP,端侧场景也可以在视频里直接输入AFBC数据以减少带宽。AFBC的好处很多,尤其是对rotation十分友好,系统层面通过AFBC就可以绕过rotation这种耗带宽的处理,从原始数据进行rotation的访问,对于系统的总线来说存在不小的压力。但通过AFBC的方式在内部优化rotation,能够支持连续的访问,这种方式更简单高效。此外,AFBC的不同格式也对系统的随机访问有所支持。

c4575f8fbbea54028d2cd2cb23cb6a45.png

“玲珑”VPU原生就支持多路,端侧场景也需要多路,对于云端场景来说多路更是刚需。应对多路复杂多分辨率的场景,也是巨大的考验。“玲珑”VPU通过核心调度器负责多核调度,多核并行按照条带级别划分任务,任何核都可以通过核心调度器硬件直接调度。“玲珑”VPU原生硬件可支持4个上下文,4路不同场景都可以通过核心调度器进行切换。而总线仲裁器则负责系统层面的访问,与核互联以整体判决,从而优化缓存,在输出时可通过AXI进行。三步结合,一起对访存进行优化。

4cc0b33bf1930d982ebf280d3e5fb110.png

为应对云端和边缘场景,除了对核进行优化之外,硬件也要进行优化。低功率可以通过LPI接口得以实现。整体来看,多核、异步处理是优化过程中的核心部分。不同的要求可以使用不同的管理策略,灵活配置能够更好地服务客户。

04ec20a62bf6ce76397c104e041e1dff.png

REF主要用于处理参考帧的访问,可通过随机访问以达到性能的优化。

a79cfc6159446f6edd847e64c6e34cd7.png

“玲珑”VPU内部的算法十分灵活,ME的目标也很灵活。产品编码的迭代更多是在ME层面上实现。

“玲珑”VPU架构里的软件控制同样灵活,面对相应的需求可及时调整。实力强劲的厂商也可以使用自己的ME。对于ME的接口开放也是非常灵活的。

b43451f8a01af47d3c1dd11825b32a6a.png

尽管MC较为标准,但对于硬件的实现也较为灵活。

88315065ba7ffa05d54dc8da9c1884a1.png

Transform在这里主要负责所有的变换,融合了不同的格式,也可以通过参数控制。

6ec79a6e457ee2a2a1bc9fd3b7d7bd52.png

bab13fc92acde740f6d45e99b7e8ee8f.png

RASC主要负责整体的管理,数据流也是核间的IPC所控制管理的,具有较高的灵活调度性,可避免硬件本身的风险。RASC的设计比较考验整体的设计能力,“玲珑”VPU采用了一个小的MCU,基本上所有的代码和数据都在ram里,缓存也与其它同类产品有所区别,我们拥有外部模块的快速访问接口。

d00196514cbf5309e0b6c3f8e6165e76.png

MMU整体考量方向包括多路和安全,多路本身就需要完整的内存层面的隔离,MMU VA32bit和PA40bit,基本上可以满足所有场景的需求。

33e565eb964e46934d66a18fbab55e99.png

在属性管理方面, protect、可执行等方面属性与SMMU类似,但与Arm SMMU整体架构不同,此处MMU更像是GPU内的MMU,想要应对每个处理单元的访问,每个uTLB都应该有所配置,Micro uTLB和PTW也都有相应的优化。

45f443b26acc05300d3b32ceb7e9c70d.png

9ca3212464027d31000bf0269b608687.png

SDMA是一个更为标准化的DMA。除了bitstream之外,还要应对多个硬件加速单元控制结构之间的传输。所以“玲珑”VPU在硬件加速层面有很多细节处理,用以满足整体系统层面的优化。

c25261d9d45358af5e3c687113ea5ab2.png

b1cea4ca3e4c72b576ca8239aead266e.png

Frame级别的控制管理都是由VDMA进行的。可以看到与FORMATTER相关的前处理都在FORMATTER里进行,前后处理也有各自的数据通路。最新一代的“玲珑”VPU要比图中所示增加了更多新的功能,前后处理层面也有更多的扩展。

628173e5c78eed04bfd83a254eba365f.png

Deblock是滤波的模块,用以应对不同格式filter的需求。

4e6b040859e281a957e04e080c9f64d0.png

Bitstream是编码解码码流处理模块,也是用于应对不同格式。在系统层面的 Bitstream会相对独立,在系统层面划分为“和流相关”或“和frame相关”,硬件控制会在系统层面进行两步划分,无论是编码还是解码,都要先MB在级别的划分。

875a38c96c74329fa6037e0a844f75ea.png

这张图是解码的基本程序,码流、MB、MV等信息都会进行保存。

07490acd6ceec2fa1f24a54b09dcea0f.png

编码过程也与解码过程类似。以上是本次的分享,谢谢大家!


b92832fa904d092e19fa527f42963340.png

LiveVideoStackCon 2023上海讲师招募中

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

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

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

相关文章

常用数据处理方式

文章目录 缺失值处理删除法填充法基于统计学变量填充基于插值填充基于模型填充基于预测填充 不处理 异常值处理基于统计分析的方法基于聚类的方法基于树的方法基于预测的方法 数据重采样标准化min-max标准化(归一化)z-score标准化(规范化&…

基于Web的电竞赛事管理系统的设计与实现(论文+源码)_kaic

摘要 迅猛发展并日益成熟的网络已经彻底的影响了我们的方方面面。人们也确实真切的体会到了网络带给我们的便捷。本网站的设计理念在于作为一个大学生电竞赛事联盟推广网,就是能够尽可能详细地展示、介绍电竞赛事联盟资讯信息,播放视频,同时…

WhatsApp 营销:获得更多潜在客户和销售(一)

你需要了解客户的世界观才能进行有效的营销,你应该投入时间和精力来学习和实施你的业务WhatsApp营销 -因为你的客户出现在WhatsApp上,他们希望在那里联系,而不是在他们讨厌被打断的电子邮件或电话中。 SaleSmartly(ss客服&#x…

基于磁盘的Kafka为什么这么快

基于磁盘的Kafka为什么这么快 原创 Wyman 大数据技术架构 2019-05-23 18:04 Kafka是大数据领域无处不在的消息中间件,目前广泛使用在企业内部的实时数据管道,并帮助企业构建自己的流计算应用程序。Kafka虽然是基于磁盘做的数据存储,但却具有…

代码随想录算法训练营day27 | 39. 组合总和,40.组合总和II,131.分割回文串

代码随想录算法训练营day27 | 39. 组合总和,40.组合总和II,131.分割回文串 39. 组合总和解法一:回溯解法二:回溯排序剪枝 40.组合总和II解法一:回溯(使用used标记数组)解法一:回溯&a…

1688获取商品api接口

作为一名技术爱好者,我们总会遇到各种各样的技术问题,需要寻找合适的技术解决方案。而在互联网时代,我们可以快速通过搜索引擎获取丰富的技术资源和解决方案。然而,在不同的技术分享中,我们常常会遇到质量参差不齐的文…

虹科方案 | 视频和广播专业人士的存储和存档解决方案

虹科HK & Overland-Tandberg 为所有视频和广播工作流阶段提供全面的数字媒体存储解决方案组合,包括创建、复制、传输、存储、保护和归档数据和内容。 一、后期制作工作流程 后期制作是一个多任务过程,通过掌握处理原始视频和声音元素。 这个过程的前…

c++ 11标准模板(STL) std::vector (十)

定义于头文件 <vector> template< class T, class Allocator std::allocator<T> > class vector;(1)namespace pmr { template <class T> using vector std::vector<T, std::pmr::polymorphic_allocator<T>>; }(2)(C17…

adb bugreport 与adb shell getprop 详解

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c; 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想当开发的测试&#xff0c;不是一个好…

低代码行业未来如何?大家都真的看好低代码开发吗?

低代码行业未来如何&#xff1f;大家都真的看好低代码开发吗&#xff1f; 是否一定需要开发人员&#xff1f;低代码和无代码平台会取代传统编程吗&#xff1f;低代码/无代码真的是未来吗&#xff1f; 无疑是需要且重要的。今天就来解答为什么低/零代码工具越来越受欢迎&#xf…

第1章计算机系统漫游

文章目录 1、信息就是位上下文2、程序被其他程序翻译成不同的格式3、了解编译系统如何工作的益处4、处理器读并解释储存在存储器中的指令4.1 系统的硬件组成4.2 执行 hello 程序 5、高速缓存6、形成层次结构的存储设备7、操作系统管理硬件7.1 进程7.2 线程7.3 虚拟存储器7.4 文…

领英退出中国,谷歌Bard集成进安卓,陆奇最新演讲,HuggingFace网传遭禁|今日科技圈要闻

夕小瑶科技说 原创 作者 | 智商掉了一地、兔子酱 AI 新闻速递来咯&#xff01;搬好小板凳&#xff0c;一起了解近期发生了什么新鲜事~ 领英职场退出中国 领英是一个专注于职业发展、招聘和营销等方面的社交平台。Linkdein 官方公众号发布公告称&#xff0c;由于面临日趋激烈的…

Spring MVC——Rest风格

REST&#xff08;Representational State Transfer&#xff09; 当我们想表示一个网络资源的时候&#xff0c;可以使用两种方式: 我们分别用查询id为1的用户信息与保存用户信息举例传统风格资源描述形式 http://localhost/user/getById?id1http://localhost/user/saveUser RES…

第五届河南省CCPC河南省省赛题解+复盘

第五届河南省CCPC河南省省赛题解复盘 今年省赛相当有意思的一点&#xff0c;是20级第一次线下省赛&#xff0c;对于部分队也可能是最后一次&#xff0c;看队名就能看出来很多 考研就业的选手&#xff0c;一群老年人在这PK&#xff0c;氛围挺不错。 A - 小水獭游河南 — 签到 …

代码随想录算法训练营day28 | 93.复原IP地址,78.子集,90.子集II

代码随想录算法训练营day28 | 93.复原IP地址&#xff0c;78.子集&#xff0c;90.子集II 93.复原IP地址解法一&#xff1a;回溯 78.子集解法一&#xff1a;回溯&#xff08;单独处理空集&#xff09;解法二&#xff1a;回溯&#xff08;统一处理空集&#xff09; 90.子集II解法一…

Linux网络编程:socket、客户端服务器端使用socket通信(TCP)

socket socket&#xff08;套接字&#xff09;&#xff0c;用于网络中不同主机间进程的通信。 socket是一个伪文件&#xff0c;包含读缓冲区、写缓冲区。 socket必须成对出现。 socket可以建立主机进程间的通信&#xff0c;但需要协议&#xff08;IPV4、IPV6等&#xff09;…

NeurIPS 2022 | 正则化分子构象场

编译 | 于洲 今天我们介绍来自复旦大学的Lihao Wang以及其他来自字节跳动AI实验室与清华大学AI产业研究院的成员发布在NeurIPS 2022会议上的工作&#xff0c;该文章介绍了一种新方法——正则化分子构象场&#xff08;RMCF&#xff09;&#xff0c;用于从化学结构中预测最有利的…

为什么聊天机器人界面不是未来

​ 0-1之间有无限多种状态 比如&#xff1a;0 按时上下班&#xff0c;用固定时间长度获取价值1 创业&#xff0c;用非线性时间&#xff0c;获取真实价值0-1 之间有无限多种状态 shadow ChatBot目前的交互界面有非常多值得被改进的体验机会。最近看到一篇非常有启发性的文章&…

【JY】浅析基于性能的抗震分析方法——性能设计

【写在前文】 在阅读此文前&#xff0c;可先看下以下文章&#xff1a; 【JY】基于性能的抗震设计&#xff08;一&#xff09; 【JY】基于性能的抗震设计&#xff08;二&#xff09; 【JY|理念】结构概念设计之(设计理念进展) 【性能设计】 建筑结构通常使用弹性分析进行抗震设计…

ProbTransformer:应对RNA折叠等自然过程数据模糊的神秘力量

编译 | 于洲‍ 今天我们介绍来自德国弗赖堡大学计算机科学系的Jrg K.H. Franke, Frederic Runge以及Frank Hutter发表在NeurIPS 2022会议上的工作&#xff0c;该文章介绍了一种新颖的基于概率的神经网络架构ProbTransformer&#xff0c;它是Transformer生态系统的一种层级增强&…