0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NEON技术如何实现移动端视频高效解码AV1?

LiveVideoStack 来源:yxw 2019-06-05 10:47 次阅读

ARM的NEON技术,其基本原理是让处理器在每个时钟周期内完成更多工作。dav1d 0.3.1中,在解码1080p视频时,基于NEON开发的dav1d可以毫不费力地达到30 fps的流畅度。

多媒体解码是一项数据规模的挑战。解码几个像素对现代处理器来说小菜一碟,但当多媒体文件升级至每秒6200万像素的数据规模时,一般的处理器就会不堪重负。

因此,ARM的NEON技术应运而生。这项基于ARMv7与ARMv8指令集的扩展技术,其基本原理是让处理器在每个时钟周期内完成更多工作;同时,支持单指令多数据(SIMD)操作也令其在单个指令中不会一次性处理一个庞大或精确的数据,而是处理多个较小的数据。

NEON允许在单个指令中处理128位数据。几乎在所有情况下,128位都是精确有用的方法。如果我们有一个128位精度的坐标系,我们甚至可以在仙女座星系指定每个点且精确度可达0.00006皮米,这是什么概念呢?要知道最小的原子氢原子的直径也才32pm,而仙女座星系距离地球有250万光年!

很明显,如果是为了清晰且流畅呈现用户上传的视频,我们并不需要如此夸张的精确度,这也就是为什么在大多数情况下每个像素的色彩深度为8位,而若想实现HDR则需要10或12位的色彩深度。使用NEON则可通过将128位的数据精度拟合成每像素8或16位色彩深度,以防止出现路由错误。

总而言之,NEON可在单个操作中适应多个数据精度,且当视频解码器需要对大量数据进行处理时,使用NEON是一个不错的主意。

dav1d中的NEON

dav1d是由VideoLAN维护的AV1解码器,VideoLAN则是VLC媒体播放器、x264与x265视频编码器的主要推动者。很多开发人员为将此项目打造成可在几乎任何CPU上运行且处理速度最快的AV1视频编码器做出了不可磨灭的贡献。

回顾2018年12月的dav1d 0.1.0,我在不同规格的ARMv8处理器上比较基于C语言开发的dav1d与基于NEON汇编的dav1d(感谢Janne Grunau和MartinStorsjö提供的这些数据),尽管当时只有少数功能通过NEON加速,但性能仍相对于平均提高了80%。

有无NEON 代码对dav1d 0.1.0的影响

几个月后,更多基于NEON的应用逐渐出现。在得到最终结果之前,让我们先来探究一下哪些让NEON的性能如此出色。

功能及其加速

解码视频需要多个步骤,每个步骤由一项单独的函数执行,多个函数组合成视频解码处理流程;这些步骤也会根据编码器、参数与视频内容酌情增减修改。dav1d的开发人员严重依赖一个名为checkasm的工具以测试特定功能所需的时间。他们使用汇编语言编写代码并用checkasm测试,如果一些步骤的处理速度足够快那么它们就会被合并。

在MartinStorsjö的测试中,他使用了两个编译器(Clang 9和GCC 7)与三个不同的内核:Arm Cortex-A53、Arm Cortex-A72和Arm Cortex-A73。第一个是一般性能的有序核心,后两个是高性能的无序核心。

下表显示了当前基于NEON加速所有功能所得到的测试结果。其中的数字表示速度——基于C语言开发的dav1d带来了5秒钟的加速而基于NEON开发的dav1d则带来了2.5秒加速。

这张表的信息量远不止这些。首先,我们可以看到加速结果的分布区间非常广泛,从几个百分点到20+都涵盖在里面;其次我们还看到在大多数情况下,Clang编译器可以更好地优化基于C代码的dav1d(可以看到NEON的加速成绩更小);除此之外我们还可以发现,一般性能且有序的A53内核,其加速成绩比高性能且无序的A73内核高,而A73的效率又高于A72,其原因可能是前者的解码带宽降低。

需要明确的是,由于NEON的多项功能并非全部满负荷运行,这里的平均加速成绩并不能完全代表其整体性能。对于当前的NEON来说,其性能取决于核心和编译器。尽管计算加权平均值可以在一定程度上从侧面反映出大致性能水平,但每个视频(编码器、编码器设置、内容都不同)却存在很大差异。

但一般来说,基于NEON汇编语言形成的大多数函数,在性能优化方面会比基于编译器优化的C语言所形成的函数快4到5倍,在某些特殊情况之下可能会超过20倍。

dav1d 0.3.1性能

我将会从以下图表开始介绍:

测试此1080p视频我们可以观察到结果存在巨大差异:基于编译器优化的C语言(使用Clang)开发的dav1d,其在Apple A7与Snapdragon 835平台甚至无法达到24 fps的帧率,而基于NEON开发的dav1d可以毫不费力地达到30 fps的流畅度,而Apple A10则从45 fps跃升至100 fps以上。如此性能提升对于移动设备来说意味着更低的功耗与更高效的资源利用。

如果将结果标准化,我们可以仔细查看确切的加速成果:

Snapdragon 835中的Cortex-A73所获得的加速最为明显,几乎是基准的3倍。其他核心平均值略低,为基准的2.5倍。这意味着从基于优化后的C语言开发的dav1d所实现的1倍性能提升到基于NEON开发的dav1d 0.1.0所实现的1.8倍性能提升,再到dav1d 0.3.1高达2.5倍的性能提升,NEON的优化成果十分显著。

展望未来

dav1d的Arm64开发还远未完成,现在需要实现的最重要功能是提高移动端的NEON整合速度(同时推广用于PC的AVX2和SSSE3),发展空间巨大。我们希望可实现比平均基准三倍以上的性能优化,同时更好的自动矢量化也可提供很多帮助,但主要的驱动程序仍然需要开发者的智慧和勤奋。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19530

    浏览量

    231797
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9203

    浏览量

    370884
  • NEON技术
    +关注

    关注

    1

    文章

    9

    浏览量

    6127

原文标题:NEON技术如何实现移动端视频高效解码AV1?

文章出处:【微信号:livevideostack,微信公众号:LiveVideoStack】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    相关推荐

    RK3588 原厂设计资料首次公开(规格书+原理图+设计说明+DDR参考),速抢

    NEON协处理器。 视频处理方面: 提供了硬件加速,RK3588支持H.265和VP9解码器通过8K@60fps, H.264解码器8K@30fps和
    发表于 02-05 16:52

    迅为iTOP-RK3576开发板/核心板适用于ARM PC、边缘计算、个人移动互联网设备及其他多媒体产品

    、PyTorch、Caffe等一系列框架的网络模型。满足多种应用场景。 iTOP-3576拥有强大的视频解码能力,支持4K@120fps的H.265、VP9、AVS2和AV1解码器,
    发表于 01-23 10:26

    迅为iTOP-RK3576开发板/核心板6TOPS算力4K视频解码

    、PyTorch、Caffe等一系列框架的网络模型。满足多种应用场景。 iTOP-3576拥有强大的视频解码能力,支持4K@120fps的H.265、VP9、AVS2和AV1解码器,
    发表于 01-20 14:56

    迅为iTOP-RK3576开发板/核心板支持Android14、Buildroot、Debian11、Ubuntu22系统

    、PyTorch、Caffe等一系列框架的网络模型。满足多种应用场景。 iTOP-3576拥有强大的视频解码能力,支持4K@120fps的H.265、VP9、AVS2和AV1解码器,
    发表于 01-16 17:03

    迅为瑞芯微RK3576开发板/核心板高性能低功耗

    、PyTorch、Caffe等一系列框架的网络模型。满足多种应用场景。 iTOP-3576拥有强大的视频解码能力,支持4K@120fps的H.265、VP9、AVS2和AV1解码器,
    发表于 01-09 11:26

    迅为RK3576开发板适用于ARM PC、边缘计算、个人移动互联网设备及其他多媒体产品

    、PyTorch、Caffe等一系列框架的网络模型。满足多种应用场景。 iTOP-3576拥有强大的视频解码能力,支持4K@120fps的H.265、VP9、AVS2和AV1解码器,
    发表于 12-27 14:18

    迅为RK3576开发板支持Android14系统稳定好用

    、PyTorch、Caffe等一系列框架的网络模型。满足多种应用场景。 iTOP-3576拥有强大的视频解码能力,支持4K@120fps的H.265、VP9、AVS2和AV1解码器,
    发表于 12-23 14:50

    基于Arm架构的珠峰芯片加速极致视频体验

    视频解码技术作为支撑超高清视频及泛音视频产业发展的基石,其重要性愈发凸显。H.264/AVC 是目前广泛使用的编
    的头像 发表于 11-01 13:54 1835次阅读
    基于Arm架构的珠峰芯片加速极致<b class='flag-5'>视频</b>体验

    教您在79元ARM平台实现H.265视频解码

    79元(1片起),可实现强劲的视频解码能力,性价比不是一般的高。创龙科技T113-i工业核心板国产化率100%,可提供中国赛宝实验室(电子五所)国产化率证明报告。 图3 本节内容基
    发表于 07-17 10:46

    【RTC程序设计:实时音视频权威指南】音视频的编解码压缩技术

    技术可以实现不同的高效压缩和解压缩,常用的就是MP4文件。 MP4是一种容器格式,包含多种类型的媒体文件,如视频,音频,静态图像等,这些媒体数据同时存在于同一个MP4文件中,MP
    发表于 04-28 21:04

    微软Teams应用整合AV1解码器,降低带宽需求,提升画面清晰度

    AVI是新一代的开源视频编码格式,因高效的压缩能力而备受推崇。借助AV1,只需极小的带宽即可保证视频的高清传输。对于要求高清晰度和流畅度的Teams应用,此时使用
    的头像 发表于 03-28 09:52 549次阅读

    网络解码矩阵:医院高清视频传输的可靠保障

    在现代医疗体系中,高清视频传输扮演着举足轻重的角色。无论是远程手术指导、实时病情监控,还是患者日常护理,高清视频都为医疗工作提供了极大的便利。而在这背后,讯维网络解码矩阵以其高效、稳定
    的头像 发表于 03-25 17:26 522次阅读
    网络<b class='flag-5'>解码</b>矩阵:医院高清<b class='flag-5'>视频</b>传输的可靠保障

    解码矩阵技术赋能电力监控,实现高效能源管理

    在现代电力系统中,高效、稳定的监控与管理对于保障能源安全、提升能源使用效率具有至关重要的意义。讯维解码矩阵技术作为一种前沿的视频解码与传输
    的头像 发表于 03-25 17:24 604次阅读

    讯维解码矩阵技术为机场监控提供高清、流畅的视频解决方案

    机场作为交通枢纽,其安全性和运行效率至关重要。高效的监控系统是保障机场安全运行的重要手段,而讯维解码矩阵技术则为机场监控提供了高清、流畅的视频解 首先,讯维
    的头像 发表于 03-25 17:22 529次阅读

    讯维网络解码矩阵构建全面视频监控系统

    随着酒店行业的快速发展,安防工作日益受到重视。为了提升酒店的安防水平,构建全面、高效视频监控系统成为了关键。而讯维网络解码矩阵作为先进的视频处理
    的头像 发表于 03-25 17:21 418次阅读