|
|
/**
|
|
|
* Copyright 2019-2020 Huawei Technologies Co., Ltd
|
|
|
*
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
* You may obtain a copy of the License at
|
|
|
*
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
*
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
* See the License for the specific language governing permissions and
|
|
|
* limitations under the License.
|
|
|
*/
|
|
|
|
|
|
#ifndef INC_COMMON_DYNAMIC_AIPP_H_
|
|
|
#define INC_COMMON_DYNAMIC_AIPP_H_
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
/**
|
|
|
* @ingroup dnn
|
|
|
* @brief struct define of dynamic aipp batch parameter.
|
|
|
*/
|
|
|
typedef struct tagAippDynamicBatchPara {
|
|
|
int8_t cropSwitch; // crop switch
|
|
|
int8_t scfSwitch; // resize switch
|
|
|
int8_t paddingSwitch; // 0: unable padding
|
|
|
// 1: padding config value,sfr_filling_hblank_ch0 ~ sfr_filling_hblank_ch2
|
|
|
// 2: padding source picture data, single row/collumn copy
|
|
|
// 3: padding source picture data, block copy
|
|
|
// 4: padding source picture data, mirror copy
|
|
|
int8_t rotateSwitch; // rotate switch,0: non-ratate,
|
|
|
// 1: ratate 90° clockwise,2: ratate 180° clockwise,3: ratate 270° clockwise
|
|
|
int8_t reserve[4];
|
|
|
int32_t cropStartPosW; // the start horizontal position of cropping
|
|
|
int32_t cropStartPosH; // the start vertical position of cropping
|
|
|
int32_t cropSizeW; // crop width
|
|
|
int32_t cropSizeH; // crop height
|
|
|
|
|
|
int32_t scfInputSizeW; // input width of scf
|
|
|
int32_t scfInputSizeH; // input height of scf
|
|
|
int32_t scfOutputSizeW; // output width of scf
|
|
|
int32_t scfOutputSizeH; // output height of scf
|
|
|
|
|
|
int32_t paddingSizeTop; // top padding size
|
|
|
int32_t paddingSizeBottom; // bottom padding size
|
|
|
int32_t paddingSizeLeft; // left padding size
|
|
|
int32_t paddingSizeRight; // right padding size
|
|
|
|
|
|
int16_t dtcPixelMeanChn0; // mean value of channel 0
|
|
|
int16_t dtcPixelMeanChn1; // mean value of channel 1
|
|
|
int16_t dtcPixelMeanChn2; // mean value of channel 2
|
|
|
int16_t dtcPixelMeanChn3; // mean value of channel 3
|
|
|
|
|
|
uint16_t dtcPixelMinChn0; // min value of channel 0
|
|
|
uint16_t dtcPixelMinChn1; // min value of channel 1
|
|
|
uint16_t dtcPixelMinChn2; // min value of channel 2
|
|
|
uint16_t dtcPixelMinChn3; // min value of channel 3
|
|
|
uint16_t dtcPixelVarReciChn0; // sfr_dtc_pixel_variance_reci_ch0
|
|
|
uint16_t dtcPixelVarReciChn1; // sfr_dtc_pixel_variance_reci_ch1
|
|
|
uint16_t dtcPixelVarReciChn2; // sfr_dtc_pixel_variance_reci_ch2
|
|
|
uint16_t dtcPixelVarReciChn3; // sfr_dtc_pixel_variance_reci_ch3
|
|
|
|
|
|
int8_t reserve1[16]; // 32B assign, for ub copy
|
|
|
} kAippDynamicBatchPara;
|
|
|
|
|
|
/**
|
|
|
* @ingroup dnn
|
|
|
* @brief struct define of dynamic aipp parameter. lite:64+96*batchNum byte ; tiny:64+64*batchNum byte
|
|
|
*/
|
|
|
typedef struct tagAippDynamicPara {
|
|
|
uint8_t inputFormat; // input format:YUV420SP_U8/XRGB8888_U8/RGB888_U8
|
|
|
int8_t cscSwitch; // csc switch
|
|
|
int8_t rbuvSwapSwitch; // rb/ub swap switch
|
|
|
int8_t axSwapSwitch; // RGBA->ARGB, YUVA->AYUV swap switch
|
|
|
int8_t batchNum; // batch parameter number
|
|
|
int8_t reserve1[3];
|
|
|
int32_t srcImageSizeW; // source image width
|
|
|
int32_t srcImageSizeH; // source image height
|
|
|
int16_t cscMatrixR0C0; // csc_matrix_r0_c0
|
|
|
int16_t cscMatrixR0C1; // csc_matrix_r0_c1
|
|
|
int16_t cscMatrixR0C2; // csc_matrix_r0_c2
|
|
|
int16_t cscMatrixR1C0; // csc_matrix_r1_c0
|
|
|
int16_t cscMatrixR1C1; // csc_matrix_r1_c1
|
|
|
int16_t cscMatrixR1C2; // csc_matrix_r1_c2
|
|
|
int16_t cscMatrixR2C0; // csc_matrix_r2_c0
|
|
|
int16_t cscMatrixR2C1; // csc_matrix_r2_c1
|
|
|
int16_t cscMatrixR2C2; // csc_matrix_r2_c2
|
|
|
int16_t reserve2[3];
|
|
|
uint8_t cscOutputBiasR0; // output Bias for RGB to YUV, element of row 0, unsigned number
|
|
|
uint8_t cscOutputBiasR1; // output Bias for RGB to YUV, element of row 1, unsigned number
|
|
|
uint8_t cscOutputBiasR2; // output Bias for RGB to YUV, element of row 2, unsigned number
|
|
|
uint8_t cscInputBiasR0; // input Bias for YUV to RGB, element of row 0, unsigned number
|
|
|
uint8_t cscInputBiasR1; // input Bias for YUV to RGB, element of row 1, unsigned number
|
|
|
uint8_t cscInputBiasR2; // input Bias for YUV to RGB, element of row 2, unsigned number
|
|
|
uint8_t reserve3[2];
|
|
|
int8_t reserve4[16]; // 32B assign, for ub copy
|
|
|
|
|
|
kAippDynamicBatchPara aippBatchPara; // allow transfer several batch para.
|
|
|
} kAippDynamicPara;
|
|
|
|
|
|
#endif // INC_COMMON_DYNAMIC_AIPP_H_
|