我是靠谱客的博主 体贴哈密瓜,最近开发中收集的这篇文章主要介绍语音识别之IPP使用教程以及vs上配置IPP1、IPP简介2、IPP安装3、IPP使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、IPP简介

 

       IPPIntel Integrated Performance Primitives” ( Intel IPP )是一套跨平台的软件函数库,他提供了广泛的多媒体功能:音频解码器(例如: H263 、 MPEG-4 )、图像处理 (JPEG) 、信号处理、语音压缩(例如: G723 、 GSM 、 AMR )和加密机制。“Intel IPP” 包含各种的函数,用于进行向量与图像处理、颜色转换、过滤、分屏、设置域值、变换,以及算术、统计、几何与图形运算。对于每个函数, “Intel IPP” 均支持多种数据类型和分布,同时保持了数据结构的最小化,它提供了丰富的选项供用户在设计与优化应用程序时选用,不必再去编写特定代码。Intel IPP 针对大量的 Intel Microprocessor (微处理器)进行优化: Intel Pentium 4 处理器,采用 Intel Centrino 移动运算技术的 Intel Pentium M 处理器组件, Intel Itanium 2 处理器、 Intel Xeon 处理器以及采用 Intel XScale 技术的 Intel PCA 应用处理器。采用一套跨平台结构的通用 API ,使用者除了不需要担心平台兼容性的问题,更节省了开发成本以及研发时间,使用者可以轻轻松松移植原有应用程序。特性Intel IPP 功能优化多媒体函数· 不再需要以 Hard-Coding 方式针对特定的处理器进行优化· 提高应用程序的可靠性· 节省时间:内置调度器选择优化处理,并根据处理器自动调度特定的运行时代码· 在基于信号和图像的数据结构的特定约束方面,改善了应用程序的灵活性Intel IPP 节省开发时间“Intel Integrated Performance Primitives” 为软件应用程序提供了一个连接界面,它可以增强 Intel 最新微处理器的性能,同时还具有加速上市时间、降低开发成本等优势。您不必针对特定的处理器专门去编写代码,即可利用处理器的高级功能。许多使用 “Intel IPP” 的多媒体应用程序开发人员已经大大改善了他们的软件在 Intel 处理器上的性能。高度的灵活性给予您自由发挥的空间“Intel IPP” 函数库针对 Itanium 2 微处理器、 Intel Xeon 、 Pentium III 、 Pentium 4 处理器以及采用 Intel Centrino 移动计算技术的 Pentium M 处理器元件进行过优化。“Intel IPP” 还针对 Intel XScale 微处理器的 “Intel 个人客户端架构 ” ( Intel R PCA )进行优化。这一个应用程序开发界面 (API) 可以跨越许多平台使用,使得多媒体应用程序开发人员能够轻松实现跨品台兼容,并有助于降低开发成本。取得性能增强效果Intel IPP 提供优化功能,让使用者在最短的时间内能得到最佳的效能, Intel IPP4.1 提供更丰富的优化效能。要下载的话去Intel的官网下载即可。

       具体它可用于:

               信号处理(SignalProcessing),包括了语音识别、语音流编码、语音编码等的函数;

               图形与视频处理(Image andVideo Processing),包括了图像处理、视频流编码等的函数;

              Small Matrices RealisticRendering,包括了Vector、Matrix等的处理函数;

              加解密(Cryptography),包括数字认证、公钥加密等的函数;

参考教程:

http://bbs.csdn.net/topics/210061228

http://blog.csdn.net/netnote/article/details/3278275



2、IPP安装


在安装的时候会问你平台,可参考:

https://software.intel.com/en-us/articles/ia-32-intelr-64-ia-64-architecture-mean/

http://www.intel.cn/content/www/cn/zh/processors/architectures-software-developer-manuals.html

https://software.intel.com/zh-cn/blogs/2010/01/14/intel-ipp

其实版本正确的话,一下子就搞定了。我开始用的是IPP 8.2最新版本,是一个评估版本,结果第一次安装就没成功,也没有显示31天评估天,退出继续安装。令人恶心的是发现我的评估日期已经过了,这就是让人恶心的地方。痛定思痛,我就下过另外一个版本,下了8.0,本打算这个再不行我就找6.1,那个就直接破解了。不过幸好我发现这一次居然过了,这简直是太美好了。别人的电脑一次就过了,然后我的电脑折腾了这么久。之前安装portaudio也是这样,流程步骤别人的一次就过,然后我的就遇到了基本上能遇到的所有问题。反正搞这些东西的话只有一个诀窍:坚持!坚持到底就是胜利,但是不一定有奖励!



3、IPP使用

看了很多教程,全部都是在说啊!有图有真相,又一波回馈大众!我找了官网以及很多教程,我终于算是把所有的坑应该都跑过一遍了。现在是可以和大家说怎么在vs上配置IPP了。

step 1:

打开你所建项目的项目属性,从解决方案管理器或属性管理器,右击属性。

找到C/C++,点开里面的常规(General)。如下图:


点开常规之后,可以看到附加包含目录(Additional Include Directories:往里面添加:C:Program Files (x86)IntelComposer XE 2015ippinclude这条路径。



接着点开链接器(Link),打开里面的常规(General)。点击附加库目录(Additional Library Directories line)往里面添加:C:Program Files (x86)IntelComposer XE 2015ipplibintel64 这条路径。我的笔记本是x64架构的,所以得加x64。这个一定要按你的架构添加,不要以为所有的都加上去就更好,会报错。那么我们怎么看我们是选哪种ia32还是intel64呢?一般来说都是intel64的。具体的可以看intel的网站也可以看我下面给出的其中一个博客链接。


step 2:

选择链接器(Link)输入(Input),选择附加依赖项(Additional Dependencies添加所需的IPP库。有动态库和静态库之分。动态库是诸如:ippi.lib ipps.lib ippcore.lib;也有静态库:ippimt.lib ippsmt.lib ippvmmt.lib ippcoremt.lib。一般来说不要都加,有些朋友都加了会报错。具体的库的用处你可以从GetStart那里去得到。




step 3:

我选择的是动态库,对于动态库,你还需要做的就是还有一些改动。

选择配置属性(Configuration Properties)-> VC++目录(VC++ Directories)做如下改动:


——包含目录(Include Files) 往里面添加:C:Program Files (x86)IntelComposer XE 2013 SP1ippinclude


——库目录(Library Files), 往里面添加:C:Program Files (x86)IntelComposer XE 2013 SP1ipplib


——可执行文件目录(Executable Files),往里面添加:C:Program Files (x86)IntelComposer XE 2013 SP1redistintel64ipp



step 4:

这个是对以上的一些总结以及遇到的问题:

有时候我发现它告诉我会缺少什么dll,我后面发现在可执行目录那里其实是有加的,但是为什么没有反应呢?我狠下心来,把那些dll全部copy到我所建项目的Debug目录下,然后问题顺利干掉。

可能倒霉的朋友可能遇到过0xc000007的问题,接着去找DX修复器,其实你想太多了。其实问题是:你要选的是活动(x64的平台),结果你发现你是在win32的平台下。因为这个库是针对你的底层处理器进行的一些优化,所以这一块选择正确的处理器很重要。

还有就是其实一开始我运行的程序就是:

C:Program Files (x86)IntelComposer XE 2013 SP1bin 这里面三个批处理程序,把ipp加到了环境变量那里。


当我把以上问题ko之后发现可以运行了,这是一个令人高兴的事情可怜 如果你有遇到什么问题的话可以在底下提问哦,说不定我也遇到过!我就是这么命运多舛!

主要参考的就是:

https://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-for-windows-compiling-and-linking-with-microsoft-visual-c-and-intel-c-compilers

下面两篇博客就是参考一些词汇,大概熟悉一下他们碰到的坑,因为你也很可能会碰到。

http://blog.csdn.net/netnote/article/details/3278275

http://blog.sina.com.cn/s/blog_4bbcda6d0100lqcj.html

IPP使用什么的就看这个软件提供给你的GetStart,谁能比这个软件的开发者更能专业地告诉你这个软件怎么使用呢。

当然,一定要记得你的是什么平台。win32还是x64。

最后如果可以运行下面的这个代码的话,应该就没有什么问题了。在这里,ippInit()是初始化函数,这个和PortAudio很像,还有获取库的版本信息->ippiGetLibVersion()。

在看一下在运行的CPU的特征。

#include "ipp.h"
#include <stdio.h>
int main(int argc, char* argv[])
{
const IppLibraryVersion *lib;
Ipp64u fm;
IppStatus status;
status = ippInit();
//IPP initialization with the best optimization layer
if (status != ippStsNoErr) {
printf("IppInit() Error:n");
printf("%sn", ippGetStatusString(status));
return -1;
}
//Get version info
lib = ippiGetLibVersion();
printf("%s %sn", lib->Name, lib->Version);
//Get CPU features enabled with selected library level
fm = ippGetEnabledCpuFeatures();
printf("SSE
:%cn", (fm >> 1) & 1 ? 'Y' : 'N');
printf("SSE2
:%cn", (fm >> 2) & 1 ? 'Y' : 'N');
printf("SSE3
:%cn", (fm >> 3) & 1 ? 'Y' : 'N');
printf("SSSE3
:%cn", (fm >> 4) & 1 ? 'Y' : 'N');
printf("SSE41
:%cn", (fm >> 6) & 1 ? 'Y' : 'N');
printf("SSE42
:%cn", (fm >> 7) & 1 ? 'Y' : 'N');
printf("AVX
:%cn", (fm >> 8) & 1 ? 'Y' : 'N');
printf("AVX2
:%cn", (fm >> 15) & 1 ? 'Y' : 'N');
printf("----------n");
printf("OS Enabled AVX :%cn", (fm >> 9) & 1 ? 'Y' : 'N');
printf("AES
:%cn", (fm >> 10) & 1 ? 'Y' : 'N');
printf("CLMUL
:%cn", (fm >> 11) & 1 ? 'Y' : 'N');
printf("RDRAND
:%cn", (fm >> 13) & 1 ? 'Y' : 'N');
printf("F16C
:%cn", (fm >> 14) & 1 ? 'Y' : 'N');
return 0;
}


最后

以上就是体贴哈密瓜为你收集整理的语音识别之IPP使用教程以及vs上配置IPP1、IPP简介2、IPP安装3、IPP使用的全部内容,希望文章能够帮你解决语音识别之IPP使用教程以及vs上配置IPP1、IPP简介2、IPP安装3、IPP使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部