You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
graphengine/inc/common/dynamic_aipp.h

105 lines
4.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* 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 switch0: non-ratate
// 1: ratate 90° clockwise2: ratate 180° clockwise3: 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 formatYUV420SP_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_