---
title: HMPP函数库简介
description: "HMPP（Hyper Media Performance Primitives）是华为公司在自研鲲鹏处理器硬件平台基础上开发的加速库，通过鲲鹏处理器支持NEON加速指令集对信号处理和图像处理业务功能提供高性能加速函数接口。本文档介绍了HMPP的结构、运算以及主要函数，提供HMPP的安装指南、详细接口定义与接口调用示例，旨在帮助用户快速熟悉HMPP的使用。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/accel/kunpengaccel_hmpp_06_0001.html
sourcePath: /source/zh/kunpengboostkithistory/2300/accel/kunpengaccel_hmpp_06_0001.html
indexId: 1d3fb0a0f4ce3ae9bef75777448976dd65cae79467ccd4e460d8e29df3ac5e8d75
---
# HMPP函数库简介

HMPP（Hyper Media Performance Primitives）是华为公司在自研鲲鹏处理器硬件平台基础上开发的加速库，通过鲲鹏处理器支持NEON加速指令集对信号处理和图像处理业务功能提供高性能加速函数接口。本文档介绍了HMPP的结构、运算以及主要函数，提供HMPP的安装指南、详细接口定义与接口调用示例，旨在帮助用户快速熟悉HMPP的使用。

文档涉及的函数包括向量缓冲区的分配与释放、向量初始化、向量数学运算与统计学运算、向量采样与向量变换、滤波函数、变换函数（快速傅里叶变换），仅支持鲲鹏平台下使用。为获得最优性能，HMPP接口内部不做完整入参校验，入参合法性及合理性由调用方业务来保证。

#### HMPP接口函数说明

| 名称 | 说明 |
| --- | --- |
| 基础函数 | 该模块实现了63个基础函数，包含字节对齐、内存分配、内存释放、获取状态码描述、多线程设置及线程信息获取、获取CPU（Central Processing Unit）的缓存、时频率和CPU时间戳，以及 HMPP 版本信息、指令信息获取及设置和FlushToZero模式开闭等函数。 |
| 信号库接口函数 | 该模块实现了以下几种函数： 基础向量运算：逻辑移位运算、向量转换、向量统计、采样函数、初始化函数等。 信号变换：FFT（Fast Fourier Transform）、CZT（Chirp Z\-Transform）、功率谱、希尔伯特等。 滤波：卷积、FIR（Finite Impulse Response）滤波、重采样、中值滤波、自相关等。 窗口函数：Blackman、Hann、Kaiser、Hamming、Bartlett等。 数学运算：算数运算、三角运算、幂、根、指数运算等。 |
| 图像库接口函数 | 该模块实现了图像颜色模型转换、阈值、算术逻辑运算、图像几何变换等相关函数。 |
| 音频库接口函数 | 该模块实现了音频数据流的编码、解码功能，协议类型包括amrnb、amrwb、evrc、gsmefr、gsmfr、gsmhr、g726、g729a、silk、wav。 |


#### HMPP接口声明

如表1所示简要介绍了HMPP各个头文件的声明。
**表1 HMPP各个头文件说明**

| 文件名 | 说明 |
| --- | --- |
| hmpp.h | 定义函数库版本号。 |
| hmpp\_core.h | 定义函数库公用的字节对齐、内存分配和内存释放函数。 |
| hmpps.h | 信号库的声明文件。 |
| hmppi.h | 图像库的声明文件。 |
| hmppa.h | 音频库的声明文件。 |
| hmpp\_type.h | 定义函数库使用的结构体、枚举类型和错误码。 |
| hmpp\_typebase.h | 定义函数库的基本数据类型。 |


#### 应用场景

HMPP涉及图像处理、颜色转换、滤波、变换、几何，为计算机视觉运算、向量运算、统计、信号滤波、信号变换和固定精度运算等提供了丰富的功能接口和极致性能优化，可适用于如下相关领域：

- 数字媒体
- 数据通信
- 生物医学
- 航空航天
