Intel IPP的基本使用方法.doc_第1页
Intel IPP的基本使用方法.doc_第2页
Intel IPP的基本使用方法.doc_第3页
Intel IPP的基本使用方法.doc_第4页
Intel IPP的基本使用方法.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IPP“Intel 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 IPP的基本使用方法来源:网络 |时间:2010-04-15 | 点击: 341次 IPP是个好东西,里面的函数精而全,希望大家好好利用。因为IPP目前很少中文资料,我们只能靠自己摸索。下面就简单说说IPP在VC2005下的基本使用方法。 假定你的IPP是安装在“D:IntelIPP”目录下。 首先是配置VC2005的环境。打开VC2005后,点击菜单栏的“工具-选项”,在左侧找到“项目和解决方案-VC+目录”,在“可执行文件”的目录中添加“D:IntelIPPbin”,在“包含文件”的目录中添加“D:IntelIPPinclude”,在“库文件”中添加“D:IntelIPPstublib”和“D:IntelIPPlib”,确定即可。 然后就是具体的在项目中使用IPP了。我们这次的项目主要是使用IPP的图像处理函数,这些函数的具体说明可以在“D:IntelIPPdocippiman.pdf”这个文件中找到。函数的命名其实也是很有规律的,例如图像拷贝的函数,也就是手册里的“4.Image Data Exchange and Initialization Functions”中的Copy这一功能,对于不同的图像,应当使用不同的Copy函数,它的命名是这样的:首先是前缀“ippi”,所有图像处理的函数都以“ippi”开头;然后是功能名称“Copy”,连起来就是“ippiCopy”;之后连一个下划线和对应的模式“ippiCopy_”,那个“”替换成对应的颜色模式,例如“8u_C1R”,其中的“C1R”表示图像只有一个颜色通道,而“8u”表示每个象素的颜色的数据类型都是8位无符号数,也就是说这种图像是一个字节表示一个像素的。我们平时用的比较多的是“8u_C3R”,也就是三个颜色通道,每个通道的数据类型都是8位无符号数。但是显示的时候往往需要4个通道的,也就是除了RGB以外,还多了一个Alpha通道(透明度),这是因为我们的电脑一般都设成32位色深的。这时我们就需要把24位的图像转化成32位的,用“ippiCopy_8u_C3AC4R”这个函数就可以了。其中“8u_C3”就代表原始图像是8位无符号数据,3个通道,而AC4R就表示目标图像是带有Alpha通道的4通道图像。再看看函数的完整形式: 其返回值是IppStatus,这个只要看看后面的返回值说明就知道啦,其实是一个整型值来的,只不过IPP里为了方便为这些值都用宏替换赋了名称,这里不再赘述。再来看看函数的参数,其中pSrc和pDst都是指针来的,pSrc就是源图像的图像数据指针,而pDst则指向目标图像的数据。前面的Ipp*中的datatype需要替换成相应的数据类型代码,例如8位无符号数,就是“Ipp8u*”了,大家看看手册前面的Function Naming中的Data Types那一节就知道了。而srcStep和dstStep则是指行扫描宽度,也就是图像的一行占用多少字节,这个参数在许多图像处理的函数中都会用到。例如一个320*240的8u_C3R图像,它的行扫描宽度就是320*(3*8)/8=960了。需要注意的是,行扫描宽度必须是4的整数倍,也就是DWORD对齐的,对于不满足4的整数倍的,则应补零对齐。那么上面那条公式就不能适用所有图像了,不过可使用下面的代码来正确计算行扫描宽度: (width*channels*8)+31) 5) 2 其中width是图像的宽度,channels是通道数。 最后的roiSize其实是一个IppiSize结构体来的,定义如下: typedef struct int width; int height; IppiSize; 很明显就是图像的宽高了。这些结构体之类的基本类型定义都在手册的Function Naming中有详细说明。 至于要使用这个函数需要包含哪个头文件呢?我们看到Copy函数的说明里后面有一句“The function ippiCopy is declared in the ippi.h file.”很好,#include ippi.h就是了。但是如果这样就直接编译,链接器便会告诉你有ippiCopy_8u_C3AC4R这么一个无法解析的外部符号。这是因为我们还没把库文件链接进来呢。ippi.h对应的库文件就是ippi.lib了。点击菜单的“项目-xxx属性-配置属性-链接器-输入”,在右边的“附加依赖项”中填入ippi.lib即可。若有多个库要使用,则用回车隔开。另外,为了兼容VC6.0的程序,在“项目-xxx属性-配置属性-常规”,右边的“字符集”应选择“多字节字符集”。 而在“项目-xxx属性-配置属性-调试”中,“工作目录”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论