ARM NEON

ARM NEON 是适用于ARM Cortex-A和Cortex-R52系列处理器的一种128位SIMD(single instruction multiple data, 单指令多数据)扩展结构。
        ARM CPU最开始只有普通的寄存器,可以进行基本数据类型的基本运算。自ARMv5开始引入了VFP(Vector Floating Point)指令,该指令用于向量化加速浮点运算。自ARMv7开始正式引入NEON指令,NEON性能远超VFP,因此VFP指令被废弃。类似于Intel CPU下的MMX/SSE/AVX/FMA指令,ARM CPU的NEON指令同样是通过向量化来进行速度优化。使用场景包含但不局限于:

 


1. 灵活的视频转码(Flexible video transcoding)
2. 声音识别、先进的语音处理(Speech Recognition,Advanced audio processing)
3. 视频捕获增强(Enhanced captured video)
4. 计算机视觉AR/VR(Computer Vision)
5. 机器学习及深度学习(Machine and deep learning)
6. 游戏及先进的人机交互界面(Gaming, Advanced user interface)

 

       关于SIMD(单指令多数据)和SISD(单指令单数据)。以加法指令为例,单指令单数据(SISD)的CPU对加法指令译码后,执行部件先访问内存,取得第一个操作数;之后再一次访问内存,取得第二个操作数;随后才能进行求和运算。而在SIMD型的CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进行运算。这个特点使SIMD特别适合于多媒体应用等数据密集型运算:

 

                                                                  

       NEON技术是从ARMv7-A和ARMv7-R指令集引入的,目前已经扩展到了ARMv8-A和ARMv8-R指令集。
       NEON技术旨在通过加速多媒体(video/audio)编解码,用户界面,2D/3D图形及游戏来提高人对多媒体的体验度。
       NEON也可以通过加速信号处理算法和函数来加快应用程序,比如音频和视频处理,语音和面部识别,计算机视觉和深度学习。

 

概述
       NEON是一个打包的SIMD架构,NEON寄存器被视为相同数据类型的向量元,并且支持多种数据类型的一种技术。
      


NEON指令在所有向量通道上执行相同操作。执行操作数是由数据类型来决定的,Neon指令遵循如下的规则:

16x8-bit, 8x16-bit,4x32-bit,2x64-bit         整形操作
8x16-bit*,4x32-bit,2x64-bit**                      浮点操作

多个并行指令的操作仅在ARMv8.2-A, ARMv8-A/R上被支持。

 

怎样使用NEON
       有多种方式来使用NEON,其中包含了以使用的库文件,编译器的自动向量化,内嵌NEON代码等方式。

 

Library

       使用NEON最简单的方式就是使用已经包含了NEON的开源库。

 

       ARM计算库用于机器学习和计算机视觉
       ARM计算库是基于ARM CPU和GPU架构且针对图像处理,计算机视觉和机器学习的低层次的函数集合。
       更多信息可参考:https://developer.arm.com/technologies/compute-library

 

       Ne10是一个基于C的开源库,由ARM托管在github上,包含了一系列在ARM上重度优化的最常用的增强处理过程。
       Ne10是有几个小型的库构成的模块化的开源库。




        Libyuv

        是一个包含YUV数据的转换和扩展功能的开源库.

        Skia

        是一个开源的2D图形库,用作谷歌Chrome和Chrome OS、Android、Mozilla Firefox和Firefox OS以及其他许多产品的图形引擎。

 

Neon生态系统

        Neon在如下表格所示的领域内有广泛的使用。其中包含了很多跨平台的开源项目:

Video Codecs Audio Codecs Voice and speech codecs Audio enhancement algorithms Computer Vision Machine and deep Learning  
VP9 OTT encoder, VP9 Consumer encoder/decoder MP3 encoder/decoder G.711 Echo cancellation Canny Edge detection On-device object recognition
H.264(AVC) encoder/decoder MPEG-2 layer I&II encoder/decoder G.722, G.722.1, G.722.2-A Noise Reduction Harris Corner On-device scene recognition
MPEG4 SP/ASP encoder/decoder MPEG-1 layer III audio encoder G.723.1 Beam Forming ORB Human pose recognition
MPEG2 decoder MPEG-1 layer III audio encoder/decoder G.726 Comfort Noise Convolution filter Defect detection
H.263 decoder HE-AACv1, v2 encoder/decoder G.727 AudioZoom Erosion/Dilation  
  WMA Standard encoder/decoder G.728 Equalization Face detection  
  WMA Pro, WMA Lossless decoder G.729, G.729A, G.729B Wind noise reduction Pedestrian detection  
  SBC Bluetooth encoder/decoder G.729AB Audomatic Gain Control Fast9/Fast12 corner detection  
  OggVorbis encoder/decoder AMR Narrowband, Wideband, Wideband+ Voice Activity Detection Object tracking  
  FLAC encoder/decoder GSM-HR, GSM-ER, GSM-EFR Key word spotting Lane departure  
  Dolby Digital AC-3 encoder/decoder Opus Voice trigger Connected components  
  Dolby Digital eAC-3 decoder iLBC Voice biometrics    
  Dolby MS10/MS11 Multistream SILK Speeker verification    
  Dolby Digital Plus 5.1/7.1 Consumer decoder SPEEX      
  Dolby Digital 5.1 Creator Consumer encoder MELPe      
  Dolby Pro Logic I&II encoder/decoder        
  iSAC encoder/decoder        
  CELT encoder/decoder        
  DTS core encoder/decoder        
  DAB+ encoder/decoder        
  Dolby Mobile encoder/decoder        
  Dolby TrueHD consumer decoder        
  Dolby UDC encoder/decoder        
---------------------
版权声明:本文为CSDN博主「rony2012」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/rony2012/article/details/76433431

转载于:https://www.cnblogs.com/wei-chen-linux/p/11319963.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值