利用CPU和SVE2加速视讯译码和图像处理

利用CPU和SVE2加速视讯译码和图像处理
2025年01月21日 09:21 电子产品世界

随着每一代新产品的推出,ArmCPU 会实现全新一代的效能提升,并导入架构改进,以满足不断演进的运算工作负载的需求。本文重点介绍三个应用实例,以展示 Armv9 CPU 的架构特性在实际应用场景中产生的影响,尤其是在HDR 视讯译码(加速 10%),图像处理(加速 20%),以及在主要行动应用程序中的功能 LibYUV(加速 26%)。

而本文中讨论的一些 ArmSVE2 优化现已可供开发人员存取使用,有望提升热门的媒体应用程序的用户体验,进一步改善人们沟通、工作和娱乐的方式。

应用开发人员和品牌厂面临的挑战

首先,从行动装置端应用开发人员当前面临的挑战来看,目前市场上有超过200万个安卓(Android)应用程序在争夺用户青睐。这些应用程序想要保持市场竞争力,就必须迅速将创新成果推广到各种行动装置上,若只是依赖功能固定的硬件,将会面临产品上市时间和可移植性等方面的挑战。

与出色的使用者体验相关的指针,包括应用程序启动时间、UI 流畅度、每秒词元 (token) 数和每秒帧数 (FPS) 稳定性等,这些都需要切实满足使用者的期望。因此,品牌商需要在效能提升以及更广泛的使用者需求(如延长电池续航时间、减少数据使用量和装置成本)之间取得平衡。其中任何一个方面若有不足,都可能导致使用者体验打折扣,否定升级行动装置的价值。

在 Armv9 CPU 上开发软件可以解决品牌商和开发人员所面临的挑战。

SVE2 的实际应用实例

以下的三个研究案例,证明软件优化可以加速实际工作负载。首先,以下是 SVE2 的一个子集和可加速行动装置上关键工作负载的 Armv9 CPU 中的新向量指令:包括16 位点积和 8 位矩阵乘法,可加速HDR 视讯播放、视频会议;图像处理直方图指令;聚合读取和分散存入,用于摄影机镜头传感器数据的解交织处理;复数指令,用于加速视频编码器中的快速傅立叶变换。

使用这些向量指令,可使优化的软件使用更少的CPU周期,进而带来两大好处,一是CPU 周期减少使得耗能降低,增加电池续航时间;二是可提高应用程序效能。

【案例 1】SVE2 提高视讯译码速度

观看多媒体内容是行动装置上最常见的工作负载之一,也是行动装置端网络最大的流量来源。因此,厂商不断追求更高效率的编解码器,希望在节省网络带宽的同时,支持出色的图像质量。

HDR技术由于色彩准确度更高,可呈现更加逼真的细节,即使是在非常暗或非常亮的场景中也是如此。它使用 10 位而非 8 位来表示每个色彩通道。AV1 和 VP9 以及其他现代编解码器也支持 HDR 视讯。

AV1 是一种较新的格式,可提供更好的压缩效果,而 VP9 在浏览器和装置之间则具有更广泛的兼容性。像是Netflix、Instagram、Facebook 和YouTube等热门应用程序,都使用 AV1 和 VP9 格式来播放影片。例如libdav1d 作为开源的 AV1 译码器,已内嵌在 Facebook 应用中。

SVE2 优化使 HDR 视讯译码速度提高约10%,VP9 译码速度提高8%,AV1 译码速度提高 10%。这使得 CPU周期减少约10%,电量消耗也相对减少,让用户在行动装置上播放点播影片时能够获得更长的电池续航时间。如此,无论是观看例如脸书或Instagram上的短影音,还是YouTube上的长影片将更加顺畅!开发人员现可存取使用libdav1d(AV1 译码器)和 libvpx(VP9 译码器)的优化程序代码。

【案例 2】SVE2提高LibYUV 速度

值得一提的是,我们每个人都在不知不觉中使用了 LibYUV。

LibYUV 是一个开源函式库,用于RGB 和 YUV 之间的色彩空间转换、摄影机镜头传感器数据缩放,以及摄影机镜头滤除和旋转。在经由视讯译码器使用之前,它会对来自摄影机镜头传感器的数据进行处理。在很多情况下,视讯译码器中的数据会先通过 LibYUV 进行处理,然后再发送去进行显示。

SVE2 优化使 LibYUV 速度提高了 26%(Armv9 CPU 上多个核心的几何平均值)。LibYUV 中大约有 100 个核心已使用 SVE2 进行优化,其他核心的优化工作正在进行中。

LibYUV 的发表是 Chromium 的一部分。Chromium 是一个开源浏览器项目,为 Chrome 及主要手机厂商自定义的浏览器奠定了基础。它被整合到 AOSP 和 Android Jetpack 中。由于 LibYUV 对行动装置相当重要,有望对整体行动装置端体验产生深远的影响,例如带来更好的视频会议体验、更顺畅的直横式屏幕模式切换,以及更好的视讯消费体验,并且大幅地延长电池续航时间。

【案例 3】SVE2 提高运算摄影速度

图一:Halide-SVE2和Halide-NeonCPU周期数对比

Halide 是一种专门用于图像处理领域的语言,用于 Adobe Photoshop 等应用,一些品牌商也将它用于摄影机镜头管线。

SVE2 指令(例如聚合读取和分散储存指令)和 TBL(可程序设计查表,用于向量化小型查询表)加速了 Halide 中的一些关键计算机视觉 (CV) 流程。iToFDepth(用于感知深度)、双边网格(用于边缘感知色调映射)和局部拉普拉斯(用于滤除)等运算密集型算法,在采用 SVE2 后,其效能提升了近 20%。

使用 SVE2 来优化软件可以实时应用一些摄影效果,为入门级行动装置开启新的可能性,用户无需专用硬件即可获得更高质量的照片。Arm 已针对 SVE2 程序代码生成优化 Halide 后端,而一些修补程序已经上线,也正在开发其他修补程序。

图二:深度效果范例图像

图三:边缘感知色调映像范例图像

如何善用 SVE2?

SVE2 导入几个新指令,非常适合加速关键的实际工作负载和应用。Armv9 CPU 的最新进展将使开发人员能够更快的实现创新,为各类行动装置的消费者带来更好的使用者体验。

(本文作者为 Arm 终端产品事业部消费运算市场资深经理 Poulomi Dasgupta,中文版校阅者为Arm 首席应用工程师余志诚)

新浪科技公众号
新浪科技公众号

“掌”握科技鲜闻 (微信搜索techsina或扫描左侧二维码关注)

创事记

科学探索

科学大家

苹果汇

众测

专题

官方微博

新浪科技 新浪数码 新浪手机 科学探索 苹果汇 新浪众测

公众号

新浪科技

新浪科技为你带来最新鲜的科技资讯

苹果汇

苹果汇为你带来最新鲜的苹果产品新闻

新浪众测

新酷产品第一时间免费试玩

新浪探索

提供最新的科学家新闻,精彩的震撼图片