多核信号处理下的IPP技术

上传人:飞*** 文档编号:54664149 上传时间:2018-09-17 格式:PPT 页数:38 大小:2.38MB
返回 下载 相关 举报
多核信号处理下的IPP技术_第1页
第1页 / 共38页
多核信号处理下的IPP技术_第2页
第2页 / 共38页
多核信号处理下的IPP技术_第3页
第3页 / 共38页
多核信号处理下的IPP技术_第4页
第4页 / 共38页
多核信号处理下的IPP技术_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《多核信号处理下的IPP技术》由会员分享,可在线阅读,更多相关《多核信号处理下的IPP技术(38页珍藏版)》请在金锄头文库上搜索。

1、林继鹏 编著,基于多核平台的嵌入式系统设计方法,长安大学 电子与控制工程学院,多核信号处理下的IPP技术,2,第五章 多核信号处理下的IPP技术,Intel集成高性能原件(Integrated Performance Primitives, IPP),又称Intel集成性能函数库或英特尔集成性能基元,是一个交叉架构的跨平台软件库,适用于多媒体程序开发人员的一款多核就绪的扩展函数库,提供了大量面向Intel处理器和芯片的函数库,用于多媒体、音频编码、视频编码、计算机视觉、密码系统、矩阵向量处理等的数学计算。,5.1 IPP简介及其适用环境,基于多核平台的嵌入式系统设计方法,3,第五章 多核信号处

2、理下的IPP技术,IPP可以将多媒体与基于通信的功能轻松集成到软件之中。从扩展的库中选择,增加强大的函数 针对英特尔处理器进行过优化 添加到应用程序。 (1)通用API,Intel IPP与操作系统及微处理器之间关系如图5-1所示。 (2)跨体系结构 (3)优化技术 (4)线程化应用程序支持 (5)编码器-解码器示例 (6)其他更多的特性,5.2 Intel IPP的特点和优点,基于多核平台的嵌入式系统设计方法,4,第五章 多核信号处理下的IPP技术,5.2 Intel IPP的特点和优点,基于多核平台的嵌入式系统设计方法,图5-1 Intel IPP与操作系统及微处理器之间关系,5,第五章

3、多核信号处理下的IPP技术,5.2 Intel IPP的特点和优点,基于多核平台的嵌入式系统设计方法,通过将运行时的函数调用替换为IPP,应用程序模块的性能可以得到极大的改进。总之,Intel IPP产品组件以及优点如图5-2所示。,图5-2 英特尔 IPP产品组件以及带给应用程序开发人员的益处,6,第五章 多核信号处理下的IPP技术,IPP与Intel其他组件之间的关系如图5-3所示。,5.3 Intel IPP与其他组件的关系,基于多核平台的嵌入式系统设计方法,图5-3 IPP与Intel其他组件之间的关系,7,第五章 多核信号处理下的IPP技术,5.3 Intel IPP与其他组件的关系

4、,基于多核平台的嵌入式系统设计方法,Intel IPP在面向不同的处理器和芯片组时,会自动选择处理器相关的DLL和体系结构相关的指令集,这样比较适合在多平台上开发,图5-4给出了Intel IPP与不同处理器和芯片组之间的关系。,图5-4 Intel IPP与不同处理器和芯片组之间的关系,8,第五章 多核信号处理下的IPP技术,5.4 Intel IPP编程环境设置与约定,基于多核平台的嵌入式系统设计方法,Intel IPP 与英特尔提供的其他开发工具完全兼容,如编译器、性能与线程分析器以及其他的英特尔性能库。此外,Intel IPP 简单易用,且可轻松集成到主流的开发工具与环境中,如 Mic

5、rosoft Visual Studio*、Xcode*、Eclipse* 以及 GNU 编译器集 (GCC)。Intel IPP编程语言可采用C或C+语言即可编程。 通常Intel IPP提供一些必须了解的基本信息。开始使用前,必须要学会使用这些基本信息,因此,您需要了解和描述了必要的步骤,您需要执行安装后的产品。,9,第五章 多核信号处理下的IPP技术,通常Intel IPP提供一些必须了解的基本信息。开始使用前,必须要学会使用这些基本信息,因此,您需要了解和描述了必要的步骤,您需要执行安装后的产品。 (1)IPP安装 (2)获取版本信息 (3)创建应用程序 设置环境变量 包含头文件 调用

6、Intel IPP函数 Intel IPP库文件,5.4 Intel IPP编程环境设置与约定,基于多核平台的嵌入式系统设计方法,10,第五章 多核信号处理下的IPP技术,5.4 Intel IPP编程环境设置与约定,基于多核平台的嵌入式系统设计方法,英特尔IPP由3类库文件组成,如表5-1所示。 表5-1 英特尔IPP库类型,11,第五章 多核信号处理下的IPP技术,5.5 函数库链接模式,基于多核平台的嵌入式系统设计方法,针对不同的需求,这些函数库可以提供以下四种链接模式: 动态链接 (dynamic linkage); 自定义动态链接 (custom dynamic linkage);

7、不带调度的静态链接 (static linkage without dispatching); 带调度的静态链接 (static linkage with dispatching)。,12,第五章 多核信号处理下的IPP技术,5.5.1选择链接模型 使用英特尔IPP函数时,链接模型之间的区别在于大小、发布和处理器覆盖率(processor coverage)。在做出决定之前,必须考虑的因素包括开发与目标环境、安装规格、运行时条件及应用程序的其他要求等。 用IPP建立一个应用程序或DLL的基本步骤如下: 确定必要的头文件; 包括ipp.h或一切必要的头文件; 添加相应的静态库到应用程序或DLL链

8、接步骤中,无论是stubs还是完全执行。,5.5 函数库链接模式,基于多核平台的嵌入式系统设计方法,13,第五章 多核信号处理下的IPP技术,5.5.2 动态链接 动态链接是最简单、或许最常见的链接模式。它充分利用了Windows的DLL和Linux的共享对象(shared objects,SO)的动态调用机制。,5.5 函数库链接模式,基于多核平台的嵌入式系统设计方法,图5-5 动态链接示意图,14,第五章 多核信号处理下的IPP技术,5.5.3 自定义动态链接 在使用动态链接模式时,我们希望在尽量少占用系统资源的前提下获得高性能。自定义动态链接通过抽取指定函数的优化代码组成新动态库,在保证

9、获得高性能的基础上,可减少可执行文件和库文件大小。,5.5 函数库链接模式,基于多核平台的嵌入式系统设计方法,图5-6 自定义动态链接示意图,15,第五章 多核信号处理下的IPP技术,5.5.4 不带调度的静态链接 这种模式通过直接与合并后的静态库连接,最小内存可执行文件最小,但只含适用于指定处理器的优化代码。使用步骤如下: 在#include “ipp.h”之前,对预处理程序的宏定义; 用一个IPPCALL宏将程序中用到的IPP函数打包,例如下列程序中调用ippsCopy_8u; 链接到合适的合并后静态库或库文件中,例如ippsmerged.lib或libippsmerged.a。,5.5

10、函数库链接模式,基于多核平台的嵌入式系统设计方法,16,第五章 多核信号处理下的IPP技术,5.5.5带调度的静态链接 带调度的静态链接的使用步骤如下: 包含ipp.h或相应领域的include文件; 在调用任何Intel IPP函数之前,在ippcore.h中使用ippStaticInit()函数或ippStaticInitCPU()函数来初始化静态调度器; 使用正确的IPP函数名来调用IPP函数; 链接到合并后静态库、再链接入e-merged libraries和ippcorel.lib中。要使用ippsCopy_8u()函数,就要链接ippsmerged.lib、ippsemerged.

11、lib以及ippcorel.lib库。,5.5 函数库链接模式,基于多核平台的嵌入式系统设计方法,17,第五章 多核信号处理下的IPP技术,5.5 函数库链接模式,基于多核平台的嵌入式系统设计方法,表5-4 四种链接方式的快速比较,18,第五章 多核信号处理下的IPP技术,5.6.1 Visual C+ 6.0 或Visual C+.net 2003的配置 Visual C+ 6.0的配置步骤如下: 选择ViewSolution Explorer; 选择ToolsOptionsProjectsVC+ Directores; 在下拉菜单“Show directories for:”中,选择“In

12、clude files”,再为Intel IPP头函数选择路径 (默认的是C:Program FilesIntelIPP5.2ia32include) ,如图5-7所示;,5.6 配置开发环境,基于多核平台的嵌入式系统设计方法,19,第五章 多核信号处理下的IPP技术,5.6.1 Visual C+ 6.0 或Visual C+.net 2003的配置 在下拉菜单“Show directories for:”中,选择“Library files”,再为Intel IPP头函数选择路径 (默认的是C:Program FilesIntelIPP5.2ia32stublib或C:Program Fi

13、lesIntelIPP5.2 ia32Lib) ,如图5-8所示;,5.6 配置开发环境,基于多核平台的嵌入式系统设计方法,20,第五章 多核信号处理下的IPP技术,在下拉菜单“Show directories for:”中,选择“Executable files”,再为Intel IPP头函数选择路径 (默认的是C:Program FilesIntelIPP5.2ia32bin); 在main toolbar 上选择ProjectPropertiesLinkerInput,在“Additional Dependencies”行添加所需要的库函数(例如:ipps.lib或ippsmerged.

14、lib),如图5-9所示。,5.6 配置开发环境,基于多核平台的嵌入式系统设计方法,21,第五章 多核信号处理下的IPP技术,Visual c+.net配置步骤与Visual c+ 6.0的类似。下面仅给出几个主要步骤。 VC.NET编程头文件路径设置 在主菜单中选择“工具/选项”,弹出如图5-10和图5-11所示界面。,5.6 配置开发环境,基于多核平台的嵌入式系统设计方法,图5-10 VC.NET编程头文件路径设置1,22,第五章 多核信号处理下的IPP技术,5.6 配置开发环境,基于多核平台的嵌入式系统设计方法,图5-11 VC.NET编程头文件路径设置2,23,第五章 多核信号处理下的

15、IPP技术,VC.NET编程链接时的库文件设置 在主菜单中选择“项目/xx属性”,弹出如图5-12所示界面。,5.6 配置开发环境,基于多核平台的嵌入式系统设计方法,图5-12 VC.NET编程链接时的库文件设置,24,第五章 多核信号处理下的IPP技术,5.6.2 IPP编程基础 (1) IPP函数的命名 Intel IPP函数名具有以下几个特点 容易理解; 从函数名不同要素可直接明白函数的功能; 函数名每个要素具有长度固定且预先确定的值。 Intel IPP函数的格式为: ipp基本名 _修饰语_ 数据类型_描述符,5.6 配置开发环境,基于多核平台的嵌入式系统设计方法,25,第五章 多核

16、信号处理下的IPP技术,5.6.2 IPP编程基础 (2)数据类型和布局 对数据类型的特殊优化,如8u,16s,32f; 对数据布局的特殊优化,如pixel,planer; 对数据类型和布局的转换函数的优化,如ippsConvert_8u_32f(),ippsInterleave_16s();ippiREGToYUV_8u_C3P3R()。,5.6 配置开发环境,基于多核平台的嵌入式系统设计方法,26,第五章 多核信号处理下的IPP技术,5.6 配置开发环境,基于多核平台的嵌入式系统设计方法,(3)IPP基础类型 IPP基础类型如表5-5所示。,27,第五章 多核信号处理下的IPP技术,(4)数据布局 IPP的数据布局有如图5-13所示,5.6 配置开发环境,基于多核平台的嵌入式系统设计方法,图5-13 IPP的数据布局,28,第五章 多核信号处理下的IPP技术,(5)ipps函数 ipps函数格式: ipps基本名_修饰语_ 数据类型_描述符 IPP的所有信号处理的函数都以前缀“ipps”开头,接着就是基本名。ipps函数描述符如表5-6所示。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号