zoukankan      html  css  js  c++  java
  • vDSP加速的应用

    vDSP 是IOS提供一系列加速处理算法。。在优化时可以考虑应用一二。。。

    1、在项目中加入Accelerate.framework库

      点开项目属性->Build Phases->Link Binary With Libraries->+ Accelerate.framework;

    2、在应用的类头文件加上引用

    #include <Accelerate/Accelerate.h>

    3、查找对应函数应用

       所有函数可以在该文档查找 vDSP Reference.

       以下通过对图片的叠加算法进行测试.... 

    //无vDSP叠加算法
    void NormalEx( BYTE *InputPtr, BYTE *CompositePtr, floatrat,int width,int height)
    {
        for(int j=0;j<height;j++)
        {
            for(int i=0;i<width;i++)
            {
              InputPtr[BLUE] =    (1 - rat) * InputPtr[BLUE] + rat * CompositePtr[BLUE];
              InputPtr[GREEN] = (1 - rat) * InputPtr[GREEN] + rat * CompositePtr[GREEN];
              InputPtr[RED] = (1 - rat) * InputPtr[RED] + rat * CompositePtr[RED];
                InputPtr+=4;
                CompositePtr+=4;
            } 
    }
    //应用vDSP叠加算法 void NormalEx( BYTE *InputPtr, BYTE *CompositePtr, float rat,int width,int height) { int count=width*height; // alloc space for our dsp arrays float * srcAsFloat = (float*)malloc(count*sizeof(float)); float * comAsFloat = (float*)malloc(count*sizeof(float)); float inrat=1 - rat; for (int i=1; i<4; i++) { //转成float数组 vDSP_vfltu8(InputPtr+i,4,srcAsFloat,1,count); vDSP_vfltu8(CompositePtr+i,4,comAsFloat,1,count); //乘法 vDSP_vsmul(srcAsFloat, 1, &inrat, srcAsFloat, 1, count); vDSP_vsmul(comAsFloat, 1, &rat, comAsFloat, 1, count); //相加 vDSP_vadd(srcAsFloat, 1, comAsFloat, 1, srcAsFloat, 1, count); // 转回byte vDSP_vfixu8(srcAsFloat, 1, InputPtr+i, 4,count); } free(srcAsFloat); free(comAsFloat); }

    4、总结

      vDSP在实际应用需要转化成float或者double型处理....对于简单的算法而已会更加耗时(如:灰度算法)

          实际应用在需要批量重复简单操作的算法中会有显著提速效果............

  • 相关阅读:
    [APM] OneAPM 云监控部署与试用体验
    Elastic Stack 安装
    xBIM 综合使用案例与 ASP.NET MVC 集成(一)
    JQuery DataTables Selected Row
    力导向图Demo
    WPF ViewModelLocator
    Syncfusion SfDataGrid 导出Excel
    HTML Table to Json
    .net core 2.0 虚拟目录下载 Android Apk 等文件
    在BootStrap的modal中使用Select2
  • 原文地址:https://www.cnblogs.com/stratrail/p/3201109.html
Copyright © 2011-2022 走看看