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=;j<height;j++)
{
for(int i=;i<width;i++)
{
InputPtr[BLUE] = ( - rat) * InputPtr[BLUE] + rat * CompositePtr[BLUE];
InputPtr[GREEN] = ( - rat) * InputPtr[GREEN] + rat * CompositePtr[GREEN];
InputPtr[RED] = ( - rat) * InputPtr[RED] + rat * CompositePtr[RED];
InputPtr+=;
CompositePtr+=;
}
}
//应用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= - rat; for (int i=; i<; i++) {
//转成float数组
vDSP_vfltu8(InputPtr+i,,srcAsFloat,,count);
vDSP_vfltu8(CompositePtr+i,,comAsFloat,,count);
//乘法
vDSP_vsmul(srcAsFloat, , &inrat, srcAsFloat, , count);
vDSP_vsmul(comAsFloat, , &rat, comAsFloat, , count);
//相加
vDSP_vadd(srcAsFloat, , comAsFloat, , srcAsFloat, , count); // 转回byte
vDSP_vfixu8(srcAsFloat, , InputPtr+i, ,count);
} free(srcAsFloat);
free(comAsFloat);
}
4、总结
vDSP在实际应用需要转化成float或者double型处理....对于简单的算法而已会更加耗时(如:灰度算法)
实际应用在需要批量重复简单操作的算法中会有显著提速效果............
vDSP加速的应用的更多相关文章
- 百度MIP移动页面加速——不只是CDN
MIP是用CDN做加速的么?准确答案是:是,但不只是. MIP全称Mobile Instant Pages,移动网页加速器,是百度提出的页面加速解决方案.MIP从前端渲染和页面网络传输两方面进行优化, ...
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- 阿里云系列——6.给你的域名使用CDN加速(详细步骤+简单配置)
网站部署之~阿里云系列汇总 http://www.cnblogs.com/dunitian/p/4958462.html 进入管理页面:https://home.console.aliyun.com/ ...
- Signalr系列之虚拟目录详解与应用中的CDN加速实战
目录 对SignalR不了解的人可以直接移步下面的目录 SignalR系列目录 前言 前段时间一直有人问我 在用SignalR 2.0开发客服系统[系列1:实现群发通讯]这篇文章中的"/Si ...
- docker学习(2) mac中docker-machine使用vmware fusion以及配置国内镜像加速
一.前言 先回顾下上一节创建docker-machine的过程,默认情况下docker toolbox中的docker-machine使用virtual box创建虚拟机,KI首次启动时创建虚拟机的过 ...
- [转]加速Android Studio/Gradle构建
加速Android Studio/Gradle构建 android android studio gradle 已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多, ...
- 利用免费cdn加速webpack单页应用
回顾现状 在之前的学习过程中,react单页应用经过webpack打包之后会输出大概如下的目录结构,它就是站点的所有前端组成了: 1 2 3 4 5 6 MacBook-Pro:output ba ...
- ffmpeg实现dxva2硬件加速
这几天在做dxva2硬件加速,找不到什么资料,翻译了一下微软的两篇相关文档.这是第二篇,记录用ffmpeg实现dxva2. 第一篇翻译的Direct3D device manager,链接:http: ...
- 用CSS开启硬件加速来提高网站性能
国外一篇文章,有点意思,转载过来,准备尝试下~ 中文地址:http://www.cnblogs.com/rubylouvre/p/3471490.html 原文地址:http://blog.teamt ...
随机推荐
- shell下office、html、pdf文档互转方法
分类: 后台开发 版权声明:本文为博主原创文章,未经博主允许不得转载. OFFICE 文档在线预览方案很多: 服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览,比如flexp ...
- 九度OJ 1013 开门人和关门人
#include <iostream> #include <string.h> #include <sstream> #include <math.h> ...
- HTML的基本标签及语法
一.HTML基本标签head部分 HTML文档的基本结构 <!DOCTYPE html> <html> <head> <meta charset=" ...
- 集美大学网络1413第七次作业成绩(团队三) --需求改进&系统设计
题目 团队作业3--需求改进&系统设计 团队作业3成绩 团队/分值 TD BZ GJ CJ SI WBS GS JG DB SS SJ CS DC 总分 1 0.25 0.75 1 0.5 ...
- 团队作业8----第二次项目冲刺(Beta阶段) 第一天
BETA阶段冲刺第一天 1.开了个小会议 2.每个人的工作 (1) 昨天已完成的工作: 今天是第一天,所以是新的开始. (2) 今天计划完成的工作: (3) 工作中遇到的困难: 由于有新的成员加入,默 ...
- 1001.A+B Format (20)的解题
关于A+B的正确打开方式! 解题思路 gitub 也是研究了很久才学会了本地上传,中间还遇到一些问题,多亏学长的教程跟搜索引擎的帮忙解决啦! 我想还是了解题目的意思是解题的最关键,通过了查词软件跟自身 ...
- 团队作业8——Beta 阶段冲刺3rd day
一.当天站立式会议 二.每个人的工作 (1)昨天已完成的工作(具体在表格中) 添加了订单功能,并且对订单功能进行了测试 (2)今天计划完成的工作(具体如下) 添加支付功能 (3) 工作中遇到的困难(在 ...
- 201521123071 《JAVA程序设计》第十周学习总结
第十周-异常与多线程 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业:本次PTA作业题集异常.多线程 1. finally:题目4-2 1. ...
- Java并发之synchronized关键字
上篇文章我们主要介绍了并发的基本思想以及线程的基本知识,通过多线程我们可以实现对计算机资源的充分利用,但是在最后我们也说明了多线程给程序带来的两种典型的问题,针对它们,synchronize ...
- SAP中常用SM系列事务代码总结
SM01 锁定事物 SM02 系统信息 SM04 显示在线用户 SM12 删除,显示锁对象 SM13 看update request SM21 看下系统日志 SM30|SM31 维护table|vi ...