IPPI函数命名格式

来源:互联网 发布:自学程序员要看什么书 编辑:程序博客网 时间:2024/06/04 19:40

IPPI库中函数命名统一遵循下述格式:
ippi(name)__(datatype)(descriptors)(parameters)

其中,name部分描述函数的功能,datatype表示部分函数的输入和输出的数据类型,
具体可以参考IPPS库的函数格式。下面重点介绍一下IPPI库特有的descriptors部分。
descriptors部分用来补充说明函数使用的细节,下表列出了IPPI库中的descriptos及其相应含义说明。

这里写图片描述

如果函数名中同时使用了多个descriptor,那么按照字母表的顺序排列descriptor。每个函数名都会使用Cn或者Pn来标记所处理的图像通道数目以及数据的排列方式。如果输入和输出数据的通道排列方式不同,那么需要分别使用descriptor进行标记,例如,函数ippiHLSToBGR_8u_C3P3R把三通道的HLS图像转换成三通道BGR图像。

函数原型

函数名中在name部分之后包含datatype和descriptor部分,IPPI中执行某个功能的函数集通常包含了很多个函数,这些函数的区别在于处理的数据类型,或者是descriptor标记的细节。
为了使说明文档显得更加清楚简洁,本文档中对每个函数集只会描述一个函数原型,
把datatype和descriptor部统一标记为(mod),表示此部分可以有所变化。然后,针对具体函数实现的差异部分再做特别说明。以图像膨胀函数为例,函数原型为:
IppStatus ippiDilate_(mod)(const Ipp(datatype)* pSrc, int srcStep, Ipp(datatype)* pDst, int dstStep, IppiSize roiSize);
其中,mod部分支持的值包括:8u_C1R, 8u_C3R, 8u_AC4R。
近似规则
IPPI函数中存在需要近似的情况,通常的近似规则如下:

这里写图片描述

例如,1.5近似为2,2.5近似为2。
整型结果缩放处理
函数可以使用参数scaleFactor来指定缩放形式,scaleFactor可以设置为正数、复数或0。
缩放结果是通过对输出结果乘以2-scaleFactor得到的。使用缩放的好处是可以保留输出数据的范围与精度,下面举例说明。
当scaleFactor设置为正数时,通常使用位移操作实现的,近似处理的方式参考上面介绍的近似规则部分。例如,使用函数ippiSqr对200进行平方运算,得到的Ipp16s类型的结果是32767而非40000,这样,结果限定在了Ipp16s数据类型能存储的最大范围,导致存出结果错误。如果设置了scaleFactor为1,得到的结果为20000,没有达到Ipp16s的上限32767,准确的结果通过20000*21可以恢复。这个例子说明可以使用缩放来保留准确的结果。
再以平方根运算为例,使用函数ippiSqr对2进行平方根运算,得到的结果是1而非1.414。如果设置为scaleFactor为-3,对应输出值为11,可以通过11*2-3计算出实际结果的近似值1.375。这个例子说明可以使用缩放来保留结果的精度。

0 0
原创粉丝点击