IPP图像处理函数命名格式

专栏目录

一、IPP简介及windows下安装说明
二、IPP与Opencv配合使用
三、IPP图像处理函数命名格式
四、IPP图像处理常用函数说明

说明

1、IPP版本
IPP版本:IPP2021
2、官网说明
直达网址

一、函数格式

ipp<data-domain><name>_<datatype><descriptor>[<_extension>](<parameters>)

二、data-domain

数据域表示给定函数所属的功能子集。
s:1维信号数据
i:2维图像和视频
m:矩阵
r:3D数据处理
g:固定长度的信号

三、Name

<name>-<operation>[_modifier]

操作组件描述核心操作的一个或多个单词
修饰成分可有可无,表示对功能的轻微修改或者变化

1、无修饰符的名称

Add, RGBToYCbCr, MorphAddGetSize

2、有修饰符的名称

DCT8x8Inv_2x2, DCT8x8Inv_4x4, RGBToYCbCr_JPEG

四、数据类型

<bit depth><bit interpretation>

位深和位类型说明
bit depth = <1|8|16|32|64>
bit interpretation = <u|s|f>[c]
u表示无符号整型,s表示有符号整型,f表示浮点型,c表示复杂型
对于图像和视频
8u:8位无符号数据
8s:8位有符号数据
16u:16位无符号数据
16uc:16位复杂短型无符号数据
16s:16位有符号数据
32u:32位无符号数据
32s:32位有符号数据
32sc:32位复杂整型数据
32f:32位单精度浮点型数据
32fc:32位单精度复杂型浮点数据
64s:四倍长字有符号(quadword)
64f:双精度浮点数据
对于不支持1u数据类型的图像处理函数,使用ippiConvert_1u8u_C1R函数将黑白图像转换为8u灰度图像
复杂数据类型通过结构体定义

typedef struct {     Ipp16s re;     Ipp16s im; } Ipp16sc;
typedef struct {     Ipp32s re;     Ipp32s im; } Ipp32sc;
typedef struct {     Ipp32f re;     Ipp32f im; } Ipp32fc;

其中re表示实部,im表示虚部
在一些算数图像处理函数中使用复杂的数据类型。32fc格式可用于一些傅立叶变换函数中
64位格式64s和64f用于存储一些图像统计函数计算的数据
对于操作单个数据类型的函数,数据类型字段仅包含上面列出的一个值
如果函数在具有不同数据类型的源和目标映像上操作,则相应的数据类型标识符将按源和目标的顺序列在函数名中

<datatype> = <src1Datatype>[src2Datatype][dstDatatype]

8位无符号源图像数据转换为32位浮点目标图像数据的函数在数据类型字段中具有8u32f值。

五、描述符

描述符进一步描述了该操作。描述符是表示操作其他详细信息的单个字符
如果使用了多个描述符,它们将按字母顺序显示在函数名中。
每个操作图像数据的函数都有一个通道计数描述符Cn(用于交错图像)或Pn(用于平面图像)
如果输入和输出通道布局不同,则会列出源和目标布局,例如,函数ippiHLSToBGR_8u_C3p3R将三通道交错HLS图像转化为三平面BGR图像。
A:图像数据包含一个alpha通道作为最后一个通道,需要C4,alpha通道不被处理。
A0:图像数据包含一个alpha通道作为第一通道,需要C4,alpha通道不被处理。
C1、C2、C3、C4:图像数据以像素为单位,由1-4个离散的通道组成
C:操作中使用感兴趣的频道(COI)。
I:操作是就地进行的–即操作的结果被写回源文件中(默认为不就地)。
M:操作使用掩码来确定要处理的像素
P:该函数适用于非连续的体积数据(平面的位置是用平面上的指针传递给函数的)
P2\P3\P4:图像数据是按平面顺序排列的,由2、3或4个离散的平面(非交错)通道组成,每个平面都有一个单独的指针
R:该功能对每个源图像的定义感兴趣区域(ROI)进行操作
Sfs:使用饱和和固定缩放模式
s:饱和度和无比例(默认)。
V:该功能对每个源图像定义的感兴趣的体积(VOI)进行操作

六、参数

函数中的参数按以下顺序排序:所有源操作数,所有目标操作数和所有其他特定于操作数的参数。
如果有多个输入图像,则源参数命名。目标参数名位Dst。对于就地操作,输入/输出参数包含名称SrcDst。所有定义为指针的参数都以小写的p开头,例如pSrc、pMean、pSpec。

七、拓展

扩展字段表示函数所属的“英特尔IPP”扩展。“英特尔IPP图像处理”函数支持以下扩展。

八、函数原型

英特尔 IPP 中的函数名称在名称字段之后包含数据类型和描述符字段(见函数命名)。大多数用于图像处理的英特尔 IPP 函数都有一些不同的风格,这些风格在与操作相关的数据类型和一些额外的参数上有所不同。
每个函数都有其独特的原型,用于函数定义和从应用程序中调用该函数。对于一个给定函数的许多类型,这些原型看起来非常相似。
为了避免在本文的函数描述中列出所有类似的原型,可以只给出此类原型的不同模板,然后是每个函数的适用数据类型和描述符的表格。为了简单起见,在这种情况下,函数名称中的数据类型和描述符字段被表示为mod。
例如,执行非就地操作的图像扩张函数的原型模板看起来像这样

IppStatus ippiDilate_<mod>(const Ipp<datatype>* pSrc, 
							int srcStep, 
							Ipp<datatype>* pDst, 
							int dstStep, 
							IppiSize roiSize);

mod的类型有
8u_C1R
8u_C3R
8u_AC4R
这个符号意味着ippiDilate函数对于一个非就地操作有三种风格,它们处理8位无符号数据(Ipp8u类型),并且在处理图像的通道数量上有所不同。这些样式的原型如下。

IppStatus ippiDilate_8u_C1R(const Ipp8u* pSrc, 
							int srcStep,     
							Ipp8u* pDst, 
							int dstStep, 
							IppiSize roiSize);
IppStatus ippiDilate_8u_C3R(const Ipp8u* pSrc, 
							int srcStep,     
							Ipp8u* pDst, 
							int dstStep, 
							IppiSize roiSize);
IppStatus ippiDilate_8u_AC4R(const Ipp8u* pSrc, 
								int srcStep,     
								Ipp8u* pDst, 
								int dstStep, 
								IppiSize roiSize);

因此,要获得未直接列出的特定函数味道的完整名称和参数列表,请执行以下操作。
选择函数操作模式(在本文中表示为情况1、2等),并在表中查找支持的数据类型和描述符。
将函数名称中的mod字段设置为所选数据类型和描述符的连接,以下划线为界。
使用相应的模板,用所选择的数据类型替换参数列表中的所有数据类型字段。注意,Ipp前缀写在参数列表中的数据类型之前(详见数据类型)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值