/** * 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. */ syntax = "proto3"; package domi; message InsertNewOps { repeated AippOpParams aipp_op = 1; repeated MultiShapeOpParams multi_shape_op = 2; } message AippOpParams { enum InputFormat { UNDEFINED = 0; YUV420SP_U8 = 1; XRGB8888_U8 = 2; RGB888_U8 = 3; YUV400_U8 = 4; NC1HWC0DI_FP16 = 5; NC1HWC0DI_S8 = 6; ARGB8888_U8 = 7; YUYV_U8 = 8; YUV422SP_U8 = 9; AYUV444_U8 = 10; RAW10 = 11; RAW12 = 12; RAW16 = 13; RAW24 = 14; } enum AippMode { undefined = 0; static = 1; dynamic = 2; } // AIPP模式,区分静态AIPP和动态AIPP AippMode aipp_mode = 1; // related_input_rank参数为必填,类型为整型,配置范围>=0, <=输入Data算子的个数,默认值为0。 // 标识对模型的第几个输入做AIPP处理,例如模型有两个输入,需要对第2个输入做AIPP,则配置related_input_rank为1。 uint32 related_input_rank = 2; // input_edge_idx参数为可选,类型为整型,配置范围为>=0。 // 配置该参数的作用,在于对Data算子不同的输出做不同的AIPP处理,如果该参数没有配置,默认对related_input_rank指定的模型输入的所有输出边做AIPP。 // 配置值 <= Data算子输出边的个数。 repeated uint32 input_edge_idx = 3; // [Begin] 动态AIPP参数,配置静态AIPP时无效 uint32 max_src_image_size = 4; // 是否支持旋转。默认不支持,开启支持旋转时,会有额外的空间和性能损失 bool support_rotation = 5; // [End] 动态AIPP参数 // [Begin] 静态AIPP参数,配置动态AIPP时无效 InputFormat input_format = 51; bool csc_switch = 52; float cpadding_value = 53; bool rbuv_swap_switch = 54; bool ax_swap_switch = 55; bool single_line_mode = 56; int32 src_image_size_w = 57; int32 src_image_size_h = 58; bool crop = 59; int32 load_start_pos_w = 60; int32 load_start_pos_h = 61; int32 crop_size_w = 62; int32 crop_size_h = 63; bool resize = 64; int32 resize_output_w = 65; int32 resize_output_h = 66; bool padding = 67; int32 left_padding_size = 68; int32 right_padding_size = 69; int32 top_padding_size = 70; int32 bottom_padding_size = 71; int32 mean_chn_0 = 10; int32 mean_chn_1 = 11; int32 mean_chn_2 = 12; int32 mean_chn_3 = 19; float min_chn_0 = 13; float min_chn_1 = 14; float min_chn_2 = 15; float min_chn_3 = 20; repeated float var_reci_chn_0 = 16; repeated float var_reci_chn_1 = 17; repeated float var_reci_chn_2 = 18; repeated float var_reci_chn_3 = 21; repeated int32 matrix_r0c0 = 30; repeated int32 matrix_r0c1 = 31; repeated int32 matrix_r0c2 = 32; repeated int32 matrix_r1c0 = 33; repeated int32 matrix_r1c1 = 34; repeated int32 matrix_r1c2 = 35; repeated int32 matrix_r2c0 = 36; repeated int32 matrix_r2c1 = 37; repeated int32 matrix_r2c2 = 38; repeated int32 output_bias_0 = 39; repeated int32 output_bias_1 = 40; repeated int32 output_bias_2 = 41; repeated int32 input_bias_0 = 42; repeated int32 input_bias_1 = 43; repeated int32 input_bias_2 = 44; // [End] 静态AIPP参数 } message MultiShapeOpParams { enum MultiShapeMode { batch = 0; //动态batch resolution = 1; //动态分辨率,扩展用 } MultiShapeMode mode = 1; //算子模式 uint32 related_input_rank = 2; //新增算子插入到哪个输入 repeated uint32 batch_list = 11; //batch_list值,batch_list的个数是2到8之间 }