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

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

文/董峰
编辑/LiveVideoStack
原文:https://mp.weixin.qq.com/s/VxsL9jOluHics-gr1hV49g

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

图片

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

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

图片

安谋科技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的后处理。

图片

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

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

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

图片

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

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

图片

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

图片

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

图片

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

图片

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

图片

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

图片

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

图片

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

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

图片

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

图片

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

图片
图片

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

图片

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

图片

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

图片
图片

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

图片
图片

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

图片

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

图片

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

图片

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

图片

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

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论