关于NEON的一些总结

一、NEON简介

      NEON是通用的SIMD(单指令多数据)引擎。通过NEON可以加速多媒体和信号的处理算法。NEON可以处理当前和未来的多媒体格式,从而改善用户体验。

 

 

二、NEON原理

      

o     NEON 指令可执行打包的 SIMD处理:
n        寄存器被视为同一数据类型元素矢量
n        数据类型可以为:签名/未签名的 8 位、16 位、32 位、64 位单精度浮点
n
          原理图如下:
   
 
            下图通过SISD(单指令单数据)和SIMD(单指令多数据)的对比,来说明NEON的工作原理:
 
            
      从图上可以看到,对于SISD,每个指令只能处理一个数据,而SIMD一个指令可以处理多个数据,因为多个数据的处理是平行的,因此从时间来说,一个指令执行的时间,SISD和SIMD是差不多的。由于SIMD一次可以处理N个数据,所以它的处理的时间也就缩短到SISD的1/N。
     需要指出一点,NEON是需要硬件的支持的,需要有一块寄存器放到硬件上来处理这个的。
 
 
三、NEON的使用
      
o      NEON的函数是C语言风格,但是编译后成为汇编语句,这样执行的效率会提高。
o
 
四、NEON举例
   
    下面是一个用C现实的将GRB转化成灰度图的算法 
    
      
    下面是一个用NEON现实的将GRB转化成灰度图的算法 
 
    
      对以上函数进行说明如下:
    
       把权重放入 NEON寄存器
   
   
    
    一次载入 8 pixles 到三个 NOEN 寄存器,这个地方是重点可以说明NEON的高效率。
   
  
       计算结果
      
       
      
      NEON函数参考gcc工具里面的gcc.pdf文档 NEON部分。
       指令在所有通道中执行同一操作
阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dongjun7357

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值