Inter IPP库的简介与配置
1、Inter IPP库简介
IPP“Intel Integrated Performance Primitives” ( Intel IPP )是一套跨平台的软件函数库,它提供了广泛的多媒体功能,例如音频解码器(例如: H263 、 MPEG-4 )、图像处理 (JPEG) 、信号处理、语音压缩(例如: G723 、 GSM 、 AMR )和加密等。
具体包括:
(1)视频编码:用于 DV25/50/100、MPEG-2、MPEG-4、H.263 和 MPEG-4 Part 10 (H.264) 编解码器的关键算法组件。图像和 2D 信号处理:包含多种可针对图像和图像内域 (ROI) 执行的算法。
(2)计算机视觉:针对多种主要计算机视觉运算进行优化的函数,可用于安全、计算机控制、媒体管理、媒体注释等领域的应用程序。
(3)颜色转换:如今随着多种格式的数字媒体的蓬勃发展,在不同的色彩形式间转换的需求也随之产生。
(4)字符串处理:使用英特尔 IPP 优化的字符串操作,将优化的文本数据库管理、搜索与检索或文档索引处理功能集成到应用程序中。
(5)JPEG 编码:用于 JPEG、JPEG 2000 和运动 JPEG 编解码器的重要算法组件。
(6)语音编码:支持以下语音编解码器/函数的例程:、G.729、AMR-宽带、GSM 全速率和压缩扩展,回声消除等。
(7)信号处理:过滤和卷积、数组/信号初始化/处理、变换、分屏/采样、数组算术/逻辑运算和数组/信号统计。
(8)数据压缩:除了使用编解码器进行的视频、音频和图像压缩之外,还提供了无损压缩法函数。
(9)音频编码:用于 MP3 和 ACC 编解码器的重要算法组件
(10)语音识别:集成高级语音识别、IP 语音和语音注解功能
(11)矢量/矩阵运算:提供了丰富的矩阵和矢量运算,其中包括物理建模和 3D 转换/光照计算。
(12)密码技术:快速建立强大的,高性能的加密模块和应用。
(13)射线跟踪与渲染:在射线跟踪、逼真图像渲染以及物理应用中使用的核心运算。
Inter IPP包含丰富多样的函数,用于进行向量与图像处理、颜色转换、过滤、分屏、设置域值、变换,以及算术、统计、几何与图形运算。对于每个函数,
Inter IPP 均支持多种数据类型和分布,同时保持了数据结构的最小化,它提供了丰富的选项供用户在涉及与优化应用程序时选用,不必再去编写特定代码。采用一套跨平台结构的通用API,使用者除了不需要当心平台兼容性的问题,更节省了开发成本以及研发时间,使用者可以轻轻松松移植原有应用程序。
2、Qt配置使用IPP库
由于网上关于Qt使用IPP库的资料很少,本文将介绍一种较为简单的方法。
首先在官网https://software.intel.com/en-us/intel-ipp/下载IPP库的安装包,本文示例下载的是w_ipp_2018.0.124版。下载完成后解压安装。
安装完后找到安装路径,如下图

图 1 Intel IPP库安装路径

点击进入compilers_and_libraries_2018.0.124文件夹,可见如下文件夹


图 2 compilers_and_libraries_2018.0.124文件夹

点击进入linux文件夹或windows文件夹,具体选择哪个由使用者使用的平台决定,本文使用的是windows平台,下面介绍的也是windows平台下Qt配置使用IPP库的方法。
点击进入windows目录下的redist文件夹,再进入redist下的intel64_win文件夹,将其目录下的ipp文件夹中的dll文件全部拷贝到Qt工程目录中。需要注意的是,最后程序打包发布时,需要将这些dll文件拷贝到打包路径中。

图 3 找到dll文件

找到windows目录下的ipp文件夹,点击进入,在打开其目录下的include文件夹,如下图所示:


图 4 include目录下头文件

将include文件夹下的头文件全部拷贝到Qt工程目录下,并在工程中添加其中部分头文件,如下图所示。


图 5需要添加的头文件

再将lib 文件夹下的intel64_win文件夹中的lib文件全部拷贝到Qt工程目录下。
回到Qt工程界面,显示导入这些库文件,具体步骤如下:
(1) 右键点击工程文件,选择“添加库”。


图 6 选择“添加库

(2) 在弹出的对话框中选择“外部库”,并点击下一步。


图 7 添加外部库

(3) 在弹出的对话框中添加将要添加的库文件,并选择平台和链接方式。点击下一步直至完成。

图 8 添加库文件路径

完成上述工作后,在Qt程序中包含相应的头文件,便可以使用ipp库中的函数了。
ipp库中函数使用的数据类型大多是自己库中定义的,在使用时需要转换成函数所使用的数据类型,具体对应关系如下:

在使用IPP库中基本运算功能和信号处理功能方面的函数时,只需添加

#include “ipp.h”
#include “ippcore.h”
#include “ippvm.h”

头文件即可,具体函数的使用方法可参考ipp库使用文档。
下例为对一个数组的每个元素求平方:

输出如下:

Qt 配置使用IPP库相关推荐

  1. Qt Creator配置Intel IPP库并实现信号带通滤波

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 一.环境参数 二.添加步骤 1.安装IPP2018 2.配置环境变量 3.引入lib文件 三. 测试 输出结果 ...

  2. Qt调用CUDA动态库及配置

    本文配置环境:Win7(x64)+VS2012+CUDA+Qt5.5.0 1.首先保证CUDA集成到VS下(如下图顺利安装Nsight for VS2012).CUDA安装比较简单,选自定义安装,然后 ...

  3. QT Creator使用matlab库文件读取.mat文件数据

    QT Creator使用matlab库文件读取.mat文件数据 一.环境配置 二.关于编程介绍 三.关于使用函数的介绍 1:关于假设数据类型介绍 2:关于使用函数介绍 一.环境配置 第一步先点开我的电 ...

  4. IPP库的安装以及源码分析方法

    目录 第一部分 IPP环境搭建(基于win10的WSL) 1.1 WSL的几种安装方法 1.1.1 开启wsl支持 1.1.2 (可选)使用Windows store直接安装 (1)下载 (2)安装 ...

  5. Linux通过Nodejs的IPP库实现自动定时打印

    Linux通过Nodejs的IPP库实现自动定时打印 家用喷墨打印机长时间不用,会出现喷头堵塞,做一个自动打印脚本,防止长时间不打印,打印机坏掉的情况. 环境: 系统:群晖 6.4 虚机:Docker ...

  6. QT——移植官方MQTT库

    1.软件版本 QT5.12.10 Win11 mingw 2.概述 Qt开发MQTT程序有两种方式,一个是Qt官方提供的基于MQTT的封装,一个是第三方(EMQ)开发的用于Qt调用MQTT的接口,二者 ...

  7. 大疆妙算Manifold刷机换源,cuda,opencv,qt配置以及实现opencv读取usb摄像头,qmake nvcc交叉编译

    大疆妙算Manifold刷机换源,cuda,opencv,qt配置以及实现opencv读取usb摄像头,qmake nvcc交叉编译 一.刷机 1.解压安装包 2.制作镜像 3.然后按照妙算说明书进入 ...

  8. Qt配置MySql数据库驱动(Windows)

    Qt配置MySql数据库驱动(Windows) 文章目录 Qt配置MySql数据库驱动(Windows) 1.前言 2.安装MySql开发包 2.1 MySql安装包 2.2 准备MySql开发库 3 ...

  9. 亲测最详细VS2019+ITK+VTK(CMake)+Qt配置教程

    亲测最详细VS2019+ITK+VTK(CMake)+Qt配置教程 前言 综合很多教程,总结出的最详细VS2019+ITK+VTK(CMake)+Qt配置教程. 一.VS2019+ITK+VTK(CM ...

最新文章

  1. 基于旋转轮廓的点云局部浮点型和二值化特征描述(RCS)
  2. linux more 下一页_Linux学习笔记
  3. BJUI选择时间后点击导出提示未选择时间
  4. mysql中的count函数和sum函数如果条件不符合返回什么
  5. tp3.2 复合查询
  6. 计算机上的框英文,电脑打开steam平台弹出一个英文框的解决方法
  7. 在实际工作中,WPS对比office,谁更强?
  8. shell学习之awk或gawk
  9. zookeeper 进入客户端_探究—Zookeeper的启动过程
  10. Spring Boot 集成Shiro和CAS
  11. 微pe添加网络组件_为微PE添加网络组件win10 64位纯净维护系统集合常见网卡驱动支持BIOS/UEFI量产NVME...
  12. Vue秒杀倒计时插件vue2-countdown
  13. svn忽略class文件夹上传的方法
  14. 我能够入职世界顶尖的卡巴斯基,却被国内的安全公司拒之门外
  15. 高级计算机图形学建模技术与方法
  16. elasticsearch 基础 —— Parent-Child 父子关系(5.X老版本)
  17. 华为云服务器搭建个人网站/博客
  18. JAVA_抽象类和接口
  19. Vue缓存路由(keep-alive)以及新的生命周期
  20. 解决:Unknown column ‘字段名‘ in ‘field list‘报错

热门文章

  1. 交通事故的处理流程有什么规定
  2. 【开发技能】研发线上事故总结!
  3. AWVS批量操作脚本
  4. 微信搜索引擎中索引的分布式演进
  5. 在ubuntu上解包RK3288固件
  6. 生信初学者必知的镜像设置
  7. 智能血糖仪方案/案列/APP/小程序/项目
  8. 地铁三号线 - 95后的财务自由
  9. JS 对象直接量方法创建对象
  10. 基于ROS1.0的stdr simulation搭建多移动机器人(multiple robots)仿真系统