aclmdlAIPP
- aclmdlCreateAIPP
- aclmdlSetAIPPCscParams
- aclmdlSetAIPPInputFormat
- aclmdlSetAIPPRbuvSwapSwitch
- aclmdlSetAIPPAxSwapSwitch
- aclmdlSetAIPPSrcImageSize
- aclmdlSetAIPPScfParams
- aclmdlSetAIPPCropParams
- aclmdlSetAIPPPaddingParams
- aclmdlSetAIPPDtcPixelMean
- aclmdlSetAIPPDtcPixelMin
- aclmdlSetAIPPPixelVarReci
- aclmdlDestroyAIPP
aclmdlCreateAIPP
函数功能
动态AIPP场景下,根据模型支持的Batch数创建aclmdlAIPP类型的数据,用于存放动态AIPP的参数。同步接口。
如需销毁aclmdlAIPP类型的数据,请参见aclmdlDestroyAIPP。
函数原型
aclmdlAIPP *aclmdlCreateAIPP(uint64_t batchSize)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
batchSize |
输入 |
原始模型的Batch数。 |
返回值说明
返回aclmdlAIPP类型的指针。
aclmdlSetAIPPCscParams
函数功能
动态AIPP场景下,设置CSC色域转换相关的参数,若色域转换开关关闭,则调用该接口设置以下参数无效。同步接口。
YUV转BGR: | B | | cscMatrixR0C0 cscMatrixR0C1 cscMatrixR0C2 | | Y - cscInputBiasR0 | | G | = | cscMatrixR1C0 cscMatrixR1C1 cscMatrixR1C2 | | U - cscInputBiasR1 | >> 8 | R | | cscMatrixR2C0 cscMatrixR2C1 cscMatrixR2C2 | | V - cscInputBiasR2 | BGR转YUV: | Y | | cscMatrixR0C0 cscMatrixR0C1 cscMatrixR0C2 | | B | | cscOutputBiasR0 | | U | = | cscMatrixR1C0 cscMatrixR1C1 cscMatrixR1C2 | | G | >> 8 + | cscOutputBiasR1 | | V | | cscMatrixR2C0 cscMatrixR2C1 cscMatrixR2C2 | | R | | cscOutputBiasR2 |
色域转换参数值与转换前图片的格式、转换后图片的格式强相关,您可以参考《CANN 开发辅助工具指南》中的“ATC工具使用指南”章节中的“色域转换配置说明”,根据转换前图片格式、转换后图片格式来配置色域转换参数。如果手册中列举的图片格式不满足要求,您需自行根据实际需求配置色域转换参数。
约束说明
如果通过aclmdlSetAIPPInputFormat接口设置的原始图像格式为YUV400,则不支持通过本接口设置色域转换参数。
函数原型
aclError aclmdlSetAIPPCscParams(aclmdlAIPP *aippParmsSet, int8_t cscSwitch,
int16_t cscMatrixR0C0, int16_t cscMatrixR0C1, int16_t cscMatrixR0C2,
int16_t cscMatrixR1C0, int16_t cscMatrixR1C1,int16_t cscMatrixR1C2,
int16_t cscMatrixR2C0, int16_t cscMatrixR2C1, int16_t cscMatrixR2C2,
uint8_t cscOutputBiasR0, uint8_t cscOutputBiasR1, uint8_t cscOutputBiasR2,
uint8_t cscInputBiasR0, uint8_t cscInputBiasR1, uint8_t cscInputBiasR2)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
aippParmsSet |
输出 |
动态AIPP参数对象。 需提前调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据。 |
csc_switch |
输入 |
色域转换开关,取值范围:
|
cscMatrixR0C0 |
输入 |
色域转换矩阵参数。 取值范围:[-32677 ,32676] |
cscMatrixR0C1 |
输入 |
色域转换矩阵参数。 取值范围:[-32677 ,32676] |
cscMatrixR0C2 |
输入 |
色域转换矩阵参数。 取值范围:[-32677 ,32676] |
cscMatrixR1C0 |
输入 |
色域转换矩阵参数。 取值范围:[-32677 ,32676] |
cscMatrixR1C1 |
输入 |
色域转换矩阵参数。 取值范围:[-32677 ,32676] |
cscMatrixR1C2 |
输入 |
色域转换矩阵参数。 取值范围:[-32677 ,32676] |
cscMatrixR2C0 |
输入 |
色域转换矩阵参数。 取值范围:[-32677 ,32676] |
cscMatrixR2C1 |
输入 |
色域转换矩阵参数。 取值范围:[-32677 ,32676] |
cscMatrixR2C2 |
输入 |
色域转换矩阵参数。 取值范围:[-32677 ,32676] |
cscOutputBiasR0 |
输入 |
RGB转YUV时的输出偏移。 取值范围:[0, 255] |
cscOutputBiasR1 |
输入 |
RGB转YUV时的输出偏移。 取值范围:[0, 255] |
cscOutputBiasR2 |
输入 |
RGB转YUV时的输出偏移。 取值范围:[0, 255] |
cscInputBiasR0 |
输入 |
YUV转RGB时的输入偏移。 取值范围:[0, 255] |
cscInputBiasR1 |
输入 |
YUV转RGB时的输入偏移。 取值范围:[0, 255] |
cscInputBiasR2 |
输入 |
YUV转RGB时的输入偏移。 取值范围:[0, 255] |
返回值说明
返回0表示成功,返回其它值表示失败。
aclmdlSetAIPPInputFormat
函数功能
动态AIPP场景下,必须设置原始输入图像的格式,同步接口。
函数原型
aclError aclmdlSetAIPPInputFormat(aclmdlAIPP *aippParmsSet, aclAippInputFormat inputFormat)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
aippParmsSet |
输出 |
动态AIPP参数对象。 需提前调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据。 |
inputFormat |
输入 |
表示原始输入图像的格式。 |
返回值说明
返回0表示成功,返回其它值表示失败。
aclmdlSetAIPPRbuvSwapSwitch
函数功能
动态AIPP场景下,设置是否交换R通道与B通道、或者是否交换U通道与V通道,同步接口。
函数原型
aclError aclmdlSetAIPPRbuvSwapSwitch(aclmdlAIPP *aippParmsSet, int8_t rbuvSwapSwitch)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
aippParmsSet |
输出 |
动态AIPP参数对象。 需提前调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据。 |
rbuvSwapSwitch |
输入 |
表示是否交换R通道与B通道、或者是否交换U通道与V通道的开关,取值范围:
|
返回值说明
返回0表示成功,返回其它值表示失败。
aclmdlSetAIPPAxSwapSwitch
函数功能
动态AIPP场景下,设置RGBA->ARGB或者YUVA->AYUV的交换开关,同步接口。
函数原型
aclError aclmdlSetAIPPAxSwapSwitch(aclmdlAIPP *aippParmsSet, int8_t axSwapSwitch)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
aippParmsSet |
输出 |
动态AIPP参数对象。 需提前调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据。 |
axSwapSwitch |
输入 |
表示RGBA->ARGB或者YUVA->AYUV的交换开关,取值范围:
|
返回值说明
返回0表示成功,返回其它值表示失败。
aclmdlSetAIPPSrcImageSize
函数功能
动态AIPP场景下,必须设置原始图片的宽和高,同步接口。
函数原型
aclError aclmdlSetAIPPSrcImageSize(aclmdlAIPP *aippParmsSet, int32_t srcImageSizeW, int32_t srcImageSizeH)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
aippParmsSet |
输出 |
动态AIPP参数对象。 需提前调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据。 |
srcImageSizeW |
输入 |
原始图片的宽,对于YUV420SP_U8或YUV422SP_U8或YUYV_U8类型的图像,要求srcImageSizeW取值是偶数。 取值范围: [2,4096] |
srcImageSizeH |
输入 |
原始图片的高,对于YUV420SP_U8类型的图像,要求srcImageSizeH取值是偶数。 取值范围: [1,4096] |
返回值说明
返回0表示成功,返回其它值表示失败。
aclmdlSetAIPPScfParams
函数原型
aclError aclmdlSetAIPPScfParams(aclmdlAIPP *aippParmsSet, int8_t scfSwitch,
int32_t scfInputSizeW, int32_t scfInputSizeH,
int32_t scfOutputSizeW, int32_t scfOutputSizeH,
uint64_t batchIndex)
约束说明
缩放比例scfOutputSizeW/scfInputSizeW∈[1/16,16]、scfOutputSizeH/scfInputSizeH∈[1/16,16]。
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
aippParmsSet |
输出 |
动态AIPP参数对象。 需提前调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据。 |
scfSwitch |
输入 |
是否对图片执行缩放操作,取值范围:
|
scfInputSizeW |
输入 |
缩放前图片的宽。 取值范围:[16,4096] |
scfInputSizeH |
输入 |
缩放前图片的高。 取值范围:[16,4096] |
scfOutputSizeW |
输入 |
缩放后图片的宽。 取值范围:[16,1920] |
scfOutputSizeH |
输入 |
缩放后图片的高。 取值范围:[16,4096] |
batchIndex |
输入 |
指定对第几个Batch上的图片执行缩放操作。 取值范围:[0,batchSize) batchSize是在调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据时设置。 |
返回值说明
返回0表示成功,返回其它值表示失败。
aclmdlSetAIPPCropParams
函数功能
动态AIPP场景下,设置抠图相关的参数,同步接口。
函数原型
aclError aclmdlSetAIPPCropParams(aclmdlAIPP *aippParmsSet, int8_t cropSwitch,
int32_t cropStartPosW, int32_t cropStartPosH,
int32_t cropSizeW, int32_t cropSizeH,
uint64_t batchIndex)
约束说明
若开启抠图功能,则通过aclmdlSetAIPPSrcImageSize接口设置的参数与通过aclmdlSetAIPPCropParams接口设置的参数之间必须满足以下公式:
- cropSizeW+cropStartPosW ≤ srcImageSizeW
- cropSizeH+cropStartPosH ≤ srcImageSizeH
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
aippParmsSet |
输出 |
动态AIPP参数对象。 需提前调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据。 |
cropSwitch |
输入 |
是否对图片执行抠图操作,取值范围:
|
cropStartPosW |
输入 |
抠图时,坐标点起始位置在图中横向的坐标。 对于YUV420SP_U8格式的图像,参数取值要求是偶数。 取值范围:[0,4095] |
cropStartPosH |
输入 |
抠图时,坐标点起始位置在图中纵向的坐标。 对于YUV420SP_U8格式的图像,参数取值要求是偶数。 取值范围:[0,4095] |
cropSizeW |
输入 |
抠图区域的宽度。 取值范围:[1,4096] |
cropSizeH |
输入 |
抠图区域的高度。 取值范围:[1,4096] |
batchIndex |
输入 |
指定对第几个Batch上的图片执行抠图操作。 取值范围:[0,batchSize) batchSize是在调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据时设置。 |
返回值说明
返回0表示成功,返回其它值表示失败。
aclmdlSetAIPPPaddingParams
函数功能
动态AIPP场景下,设置补边相关的参数,同步接口。
函数原型
aclError aclmdlSetAIPPPaddingParams(aclmdlAIPP *aippParmsSet, int8_t paddingSwitch,
int32_t paddingSizeTop, int32_t paddingSizeBottom,
int32_t paddingSizeLeft, int32_t paddingSizeRight,
uint64_t batchIndex)
约束说明
补边之后,图片的宽必须小于等于1080。
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
aippParmsSet |
输出 |
动态AIPP参数对象。 需提前调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据。 |
paddingSwitch |
输入 |
是否对图片执行补边操作,取值范围:
|
paddingSizeTop |
输入 |
在图片上方填充的值。 取值范围:[0, 32] |
paddingSizeBottom |
输入 |
在图片下方填充的值。 取值范围:[0, 32] |
paddingSizeLeft |
输入 |
在图片左方填充的值。 取值范围:[0, 32] |
paddingSizeRight |
输入 |
在图片右方填充的值。 取值范围:[0, 32] |
batchIndex |
输入 |
指定对第几个Batch上的图片执行补边操作。 取值范围:[0,batchSize) batchSize是在调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据时设置。 |
返回值说明
返回0表示成功,返回其它值表示失败。
aclmdlSetAIPPDtcPixelMean
函数功能
动态AIPP场景下,设置通道的均值,同步接口。
函数原型
aclError aclmdlSetAIPPDtcPixelMean(aclmdlAIPP *aippParmsSet,
int16_t dtcPixelMeanChn0,
int16_t dtcPixelMeanChn1,
int16_t dtcPixelMeanChn2,
int16_t dtcPixelMeanChn3,
uint64_t batchIndex)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
aippParmsSet |
输出 |
动态AIPP参数对象。 需提前调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据。 |
dtcPixelMeanChn0 |
输入 |
通道0的均值。 取值范围:[0, 255] |
dtcPixelMeanChn1 |
输入 |
通道1的均值。 取值范围:[0, 255] |
dtcPixelMeanChn2 |
输入 |
通道2的均值。 取值范围:[0, 255] |
dtcPixelMeanChn3 |
输入 |
通道3的均值。 如果只有3个通道,将该参数设置为0。 取值范围:[0, 255] |
batchIndex |
输入 |
指定对第几个Batch上的图片设置通道均值。 取值范围:[0,batchSize) batchSize是在调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据时设置。 |
返回值说明
返回0表示成功,返回其它值表示失败。
aclmdlSetAIPPDtcPixelMin
函数功能
动态AIPP场景下,设置通道的最小值,同步接口。
函数原型
aclError aclmdlSetAIPPDtcPixelMin(aclmdlAIPP *aippParmsSet,
float dtcPixelMinChn0,
float dtcPixelMinChn1,
float dtcPixelMinChn2,
float dtcPixelMinChn3,
uint64_t batchIndex)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
aippParmsSet |
输出 |
动态AIPP参数对象。 需提前调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据。 |
dtcPixelMinChn0 |
输入 |
通道0的最小值。 取值范围:[0, 255] |
dtcPixelMinChn1 |
输入 |
通道1的最小值。 取值范围:[0, 255] |
dtcPixelMinChn2 |
输入 |
通道2的最小值。 取值范围:[0, 255] |
dtcPixelMinChn3 |
输入 |
通道3的最小值。如果只有3个通道,将该参数设置为0。 取值范围:[0, 255] |
batchIndex |
输入 |
指定对第几个Batch上的图片设置通道最小值。 取值范围:[0,batchSize) batchSize是在调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据时设置。 |
返回值说明
返回0表示成功,返回其它值表示失败。
aclmdlSetAIPPPixelVarReci
函数功能
动态AIPP场景下,设置通道的方差,同步接口。
函数原型
aclError aclmdlSetAIPPPixelVarReci(aclmdlAIPP *aippParmsSet,
float dtcPixelVarReciChn0,
float dtcPixelVarReciChn1,
float dtcPixelVarReciChn2,
float dtcPixelVarReciChn3,
uint64_t batchIndex)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
aippParmsSet |
输出 |
动态AIPP参数对象。 需提前调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据。 |
dtcPixelVarReciChn0 |
输入 |
通道0的方差的倒数,默认值为1.0。 取值范围:[-65504, 65504] |
dtcPixelVarReciChn1 |
输入 |
通道1的方差的倒数,默认值为1.0。 取值范围:[-65504, 65504] |
dtcPixelVarReciChn2 |
输入 |
通道2的方差的倒数,默认值为1.0。 取值范围:[-65504, 65504] |
dtcPixelVarReciChn3 |
输入 |
通道3的方差的倒数,默认值为1.0。如果只有3个通道,则将该参数设置为1.0。 取值范围:[-65504, 65504] |
batchIndex |
输入 |
指定对第几个Batch上的图片设置通道的方差。 取值范围:[0,batchSize) batchSize是在调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据时设置。 |
返回值说明
返回0表示成功,返回其它值表示失败。
aclmdlDestroyAIPP
函数功能
销毁通过aclmdlCreateAIPP接口创建的aclmdlAIPP类型的数据。同步接口。
函数原型
aclError aclmdlDestroyAIPP(const aclmdlAIPP *aippParmsSet)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
aippParmsSet |
输入 |
待销毁的aclmdlAIPP类型的指针。 |
返回值说明
返回0表示成功,返回非0表示失败。
- aclmdlCreateAIPP
- aclmdlSetAIPPCscParams
- aclmdlSetAIPPInputFormat
- aclmdlSetAIPPRbuvSwapSwitch
- aclmdlSetAIPPAxSwapSwitch
- aclmdlSetAIPPSrcImageSize
- aclmdlSetAIPPScfParams
- aclmdlSetAIPPCropParams
- aclmdlSetAIPPPaddingParams
- aclmdlSetAIPPDtcPixelMean
- aclmdlSetAIPPDtcPixelMin
- aclmdlSetAIPPPixelVarReci
- aclmdlDestroyAIPP