跳到主要内容

acltdtTensorType

aclprofAicoreMetrics

typedef enum {
ACL_AICORE_ARITHMETIC_UTILIZATION = 0, //各种计算类指标占比统计,包括采集项mac_fp16_ratio、mac_int8_ratio、vec_fp32_ratio、vec_fp16_ratio、vec_int32_ratio、vec_misc_ratio
ACL_AICORE_PIPE_UTILIZATION = 1, //计算单元和搬运单元耗时占比,包括采集项vec_ratio、mac_ratio、scalar_ratio、mte1_ratio、mte2_ratio、mte3_ratio、icache_miss_rate
ACL_AICORE_MEMORY_BANDWIDTH = 2, //外部内存读写类指令占比,包括采集项ub_read_bw、ub_write_bw、l1_read_bw、l1_write_bw、、main_mem_read_bw、main_mem_write_bw
ACL_AICORE_L0B_AND_WIDTH = 3, //内部内存读写类指令占比,包括采集项scalar_ld_ratio、scalar_st_ratio、l0a_read_bw、l0a_write_bw、l0b_read_bw、l0b_write_bw、l0c_read_bw、l0c_write_bw、l0c_read_bw_cube、l0c_write_bw_cube
ACL_AICORE_RESOURCE_CONFLICT_RATIO = 4, //流水线队列类指令占比,包括采集项vec_bankgroup_cflt_ratio、vec_bank_cflt_ratio、vec_resc_cflt_ratio、mte1_iq_full_ratio、mte2_iq_full_ratio、mte3_iq_full_ratio、cube_iq_full_ratio、vec_iq_full_ratio、iq_full_ratio
ACL_AICORE_MEMORY_UB = 5, //内部内存读写指令占比,包括采集项ub_read_bw_vector、ub_write_bw_vector、ub_read_bw_scalar、ub_write_bw_scalar
ACL_AICORE_L2_CACHE = 6, //读写cache命中次数和缺失后重新分配次数, 包括采集项write_cache_hit、write_cache_miss_allocate、r*_read_cache_hit、r*_read_cache_miss_allocate ACL_AICORE_PIPE_EXECUTE_UTILIZATION = 7, //计算单元和搬运单元耗时占比,包括采集项vec_exe_ratio、mac_exe_ratio、scalar_exe_ratio、mte1_exe_ratio、mte2_exe_ratio、mte3_exe_ratio、fixpipe_exe_ratio ACL_AICORE_NONE = 0xFF
}aclprofAicoreMetrics;

父主题: 数据类型及其操作接口

acldvppBorderType

enum acldvppBorderType {
BORDER_CONSTANT = 0, //添加有颜色的常数值边界
BORDER_REPLICATE, //重复最后一个元素。举例: aaaaaa|abcdefgh|hhhhhhh
BORDER_REFLECT, //边界元素的镜像。举例:cba|abcde-fgh|hgf
BORDER_REFLECT_101 //边界元素的镜像。举例:cba|abcde-fgh|gf
};

父主题: 数据类型及其操作接口

aclmdlInputAippType

typedef enum {
ACL_DATA_WITHOUT_AIPP = 0, //该输入无AIPP信息
ACL_DATA_WITH_STATIC_AIPP, //该输入带静态AIPP信息
ACL_DATA_WITH_DYNAMIC_AIPP, //该输入有关联的动态AIPP输入
ACL_DYNAMIC_AIPP_NODE //该输入本身就是动态AIPP输入,用于配置动态AIPP参数
} aclmdlInputAippType;

父主题: 数据类型及其操作接口

acltdtTensorType

Atlas 200/500 A2推理产品,当前版本不支持该枚举值。

enum acltdtTensorType {
ACL_TENSOR_DATA_UNDEFINED = -1,
ACL_TENSOR_DATA_TENSOR,
ACL_TENSOR_DATA_END_OF_SEQUENCE,
ACL_TENSOR_DATA_ABNORMAL
};

父主题: 数据类型及其操作接口

aclCompileOpt

typedef enum {
ACL_PRECISION_MODE, // 算子精度模式
ACL_AICORE_NUM, // 模型编译时使用的AI Core数量
ACL_AUTO_TUNE_MODE, // 算子的自动调优模式
ACL_OP_SELECT_IMPL_MODE, // 选择算子是高精度实现还是高性能实现
ACL_OPTYPELIST_FOR_IMPLMODE, // 列举算子类型的列表,该列表中的算子使用ACL_OP_SELECT_IMPL_MODE指定的模式
ACL_OP_DEBUG_LEVEL, // TBE算子编译debug功能开关
ACL_DEBUG_DIR, // 保存模型转换、网络迁移过程中算子编译生成的调试相关过程文件的路径,包括算子.o/.json/.cce等文件。
ACL_OP_COMPILER_CACHE_MODE, // 算子编译磁盘缓存模式
ACL_OP_COMPILER_CACHE_DIR, // 算子编译磁盘缓存的目录
ACL_OP_PERFORMANCE_MODE, // 通过该选项设置是否按照算子执行高性能的方式编译算子
ACL_OP_JIT_COMPILE, // 选择是在线编译算子,还是使用已编译的算子二进制文件
ACL_OP_DETERMINISTIC, // 是否开启确定性计算
ACL_CUSTOMIZE_DTYPES, // 模型编译时自定义某个或某些算子的计算精度
ACL_OP_PRECISION_MODE, // 指定算子内部处理时的精度模式,支持指定一个算子或多个算子。
ACL_ALLOW_HF32 // hf32是昇腾推出的专门用于算子内部计算的精度类型,当前版本不支持
} aclCompileOpt;

表1 编译选项配置

编译选项取值说明
ACL_PRECISION_MODE用于配置算子精度模式。如果不配置该编译选项,默认采用allow_fp32_to_fp16。
- force_fp32/cube_fp16in_fp32out**:** 配置为force_fp32或cube_fp16in_fp32out,效果等同,系统内部都会根据矩阵类算子或矢量类算子,来选择不同的处理方式。cube_fp16in_fp32out为新版本中新增的,对于矩阵计算类算子,该选项语义更清晰。
- 对于矩阵计算类算子,系统内部会按算子实现的支持情况处理:
1. 优先选择输入数据类型为float16且输出数据类型为float32;
2. 如果1中的场景不支持,则选择输入数据类型为float32且输出数据类型为float32;
3. 如果2中的场景不支持,则选择输入数据类型为float16且输出数据类型为float16;
4. 如果3中的场景不支持,则报错。
- 对于矢量计算类算子,表示网络模型中算子支持float16和float32时,强制选择float32,若原图精度为float16,也会强制转为float32。 如果网络模型中存在部分算子,并且该算子实现不支持float32,比如某算子仅支持float16类型,则该参数不生效,仍然使用支持的float16;如果该算子不支持float32,且又配置了黑名单(precision_reduce = false),则会使用float32的AI CPU算子;如果AI CPU算子也不支持,则执行报错。
- force_fp16: 表示网络模型中算子支持float16和float32时,强制选择float16。
- allow_fp32_to_fp16:
- 对于矩阵类算子,使用float16。
- 对于矢量类算子,优先保持原图精度,如果网络模型中算子支持float32,则保留原始精度float32,如果网络模型中算子不支持float32,则直接降低精度到float16。
- must_keep_origin_dtype: 表示保持原图精度。
- 如果原图中某算子精度为float16,AI Core中该算子的实现不支持float16、仅支持float32,则系统内部会自动采用高精度float32。
- 如果原图中某算子精度为float32,AI Core中该算子的实现不支持float32类型、仅支持float16类型,则会使用float32的AI CPU算子;如果AI CPU算子也不支持,则执行报错。
- allow_mix_precision/allow_mix_precision_fp16: 配置为allow_mix_precision或allow_mix_precision_fp16,效果等同,均表示使用混合精度float16和float32数据类型来处理神经网络的过程。allow_mix_precision_fp16为新版本中新增的,语义更清晰,便于理解。 针对网络模型中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到float16,从而在精度损失很小的情况下提升系统性能并减少内存使用。 若配置了该种模式,则可以在OPP软件包安装路径${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/config/<soc_version>/aic-<soc_version>-ops-info.json内置优化策略文件中查看“precision_reduce”参数的取值:
- 若取值为true(白名单),则表示允许将当前float32类型的算子,降低精度到float16。
- 若取值为false(黑名单),则不允许将当前float32类型的算子降低精度到float16,相应算子仍旧使用float32精度。
- 若网络模型中算子没有配置该参数(灰名单),当前算子的混合精度处理机制和前一个算子保持一致,即如果前一个算子支持降精度处理,当前算子也支持降精度;如果前一个算子不允许降精度,当前算子也不支持降精度。
ACL_AICORE_NUM用于配置模型编译时使用的AI Core数量。 当前版本设置无效。
ACL_AUTO_TUNE_MODE**该参数后续废弃,请勿配置,否则后续版本可能存在兼容性问题。**若涉及调优,请参见《AOE工具使用指南》。 用于配置算子的自动调优模式。 不支持该参数。
ACL_OP_SELECT_IMPL_MODE用于选择算子是高精度实现还是高性能实现。如果不配置该编译选项,默认采用high_precision。
- high_precision:表示算子采用高精度实现模式。 该参数采用系统内置的配置文件设置算子实现模式,内置配置文件路径为${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/impl_mode/high_precision.ini。 为保持兼容,该参数仅对high_precision.ini文件中算子列表生效,通过该列表可以控制算子生效的范围并保证之前版本的网络模型不受影响。
- high_performance:表示算子采用高性能实现模式。 该参数采用系统内置的配置文件设置算子实现模式,内置配置文件路径为${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/impl_mode/high_performance.ini。 为保持兼容,该参数仅对high_performance.ini文件中算子列表生效,通过该列表可以控制算子生效的范围并保证之前版本的网络模型不受影响。
- high_precision_for_all:表示算子采用高精度实现模式。 该参数采用系统内置的配置文件设置算子实现模式,内置配置文件路径为${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/impl_mode/high_precision_for_all.ini,该文件中列表后续可能会跟随版本更新。 该实现模式不保证兼容,如果后续新的软件包中有算子新增了实现模式(即配置文件中新增了某个算子的实现模式),之前版本使用high_precision_for_all的网络模型,在新版本上性能可能会下降。
- high_performance_for_all:表示算子采用高性能实现模式。 该参数采用系统内置的配置文件设置算子实现模式,内置配置文件路径为${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/impl_mode/high_performance_for_all.ini,该文件中列表后续可能会跟随版本更新。 该实现模式不保证兼容,如果后续新的软件包中有算子新增了实现模式(即配置文件中新增了某个算子的实现模式),之前版本使用high_performance_for_all的网络模型,在新版本上精度可能会下降。
ACL_OPTYPELIST_FOR_IMPLMODE通过ACL_OPTYPELIST_FOR_IMPLMODE选项设置算子类型的列表(多个算子使用英文逗号进行分隔),与ACL_OP_SELECT_IMPL_MODE选项配合使用,设置列表中的算子通过高精度实现或高性能实现。
ACL_OP_DEBUG_LEVEL用于配置TBE算子编译debug功能开关。
- 0:不开启算子debug功能,在执行atc命令当前路径不生成算子编译目录kernel_meta。
- 1:开启算子debug功能,在执行atc命令的目录下,生成kernel_meta文件夹,并在该文件夹下生成.o(算子二进制文件)、.json文件(算子描述文件)以及TBE指令映射文件(算子cce文件*.cce和python-cce映射文件*_loc.json),用于后续分析AICore Error问题。
- 2:开启算子debug功能,在执行atc命令的目录下,生成kernel_meta文件夹,并在该文件夹下生成.o(算子二进制文件)、.json文件(算子描述文件)以及TBE指令映射文件(算子cce文件*.cce和python-cce映射文件*_loc.json),用于后续分析AICore Error问题,同时设置为2,还会关闭编译优化开关、开启ccec调试功能(ccec编译器选项设置为-O0-g)。
- 3:不开启算子debug功能,在执行atc命令的目录下,生成kernel_meta文件夹,并在该文件夹中生成.o(算子二进制文件)和.json文件(算子描述文件),分析算子问题时可参考。
- 4:不开启算子debug功能,在执行atc命令的目录下,生成kernel_meta文件夹,并在该文件夹下生成.o(算子二进制文件)和.json文件(算子描述文件)以及TBE指令映射文件(算子cce文件*.cce)和UB融合计算描述文件({$kernel_name}_compute.json),可在分析算子问题时进行问题复现、精度比对时使用。
(说明:配置为2(即开启ccec编译选项)时,会导致算子Kernel(*.o文件)大小增大。动态Shape场景下,由于算子编译时会遍历可能的Shape场景,因此可能会导致算子Kernel文件过大而无法进行编译,此种场景下,建议不要配置ccec编译选项。 由于算子Kernel文件过大而无法编译的报错日志示例如下: message:link error ld.lld: error: InputSection too large for range extension thunk ./kernel_meta_xxxxx.o)
ACL_DEBUG_DIR用于配置保存模型转换、网络迁移过程中算子编译生成的调试相关过程文件的路径(默认路径:执行应用的当前路径/kernel_meta),包括算子.o/.json/.cce等文件。具体生成哪些文件以ACL_OP_DEBUG_LEVEL选项设置的取值为准。 路径支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。 (说明:关于配置算子编译文件的缓存目录,除此处设置枚举值的方式,还可以配置环境变量ASCEND_WORK_PATH,几种方式的优先级为:本节设置枚举值的方式 > 设置环境变量 > 默认路径。 环境变量的详细配置说明请参见 《 环境变量参考 》 )。)
ACL_OP_COMPILER_CACHE_MODE用于配置算子编译磁盘缓存模式。该编译选项需要与ACL_OP_COMPILER_CACHE_DIR配合使用。
- enable:表示启用算子编译缓存。启用后可以避免针对相同编译参数及算子参数的算子重复编译,从而提升编译速度。
- force:启用算子编译缓存功能,区别于enable模式,force模式下会强制刷新缓存,即先删除已有缓存,再重新编译并加入缓存。比如当用户的python变更、依赖库变更、算子调优后知识库变更等,需要先指定为force用于先清理已有的缓存,后续再修改为enable模式,以避免每次编译时都强制刷新缓存。
- disable:表示禁用算子编译缓存。
该场景下,可以通过环境变量ASCEND_MAX_OP_CACHE_SIZE来限制某个芯片下缓存文件夹的磁盘空间的大小,当编译缓存空间大小达到ASCEND_MAX_OP_CACHE_SIZE设置的取值,且需要删除旧的kernel文件时,可以通过环境变量ASCEND_REMAIN_CACHE_SIZE_RATIO设置需要保留缓存的空间大小比例。配置示例如下:
ACL_OP_COMPILER_CACHE_DIR用于配置算子编译文件的缓存目录(默认路径:$HOME/atc_data)。该编译选项需要与ACL_OP_COMPILER_CACHE_MODE配合使用。 路径支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。 如果设置了ACL_OP_DEBUG_LEVEL编译选项,则只有编译选项值为0或3才会启用编译缓存功能,其它取值禁用编译缓存功能。 (说明:关于配置算子编译文件的缓存目录,除此处设置枚举值的方式,还可以配置环境变量ASCEND_CACHE_PATH,几种方式的优先级为:本节设置枚举值的方式 > 设置环境变量 > 默认路径。 环境变量的详细配置说明请参见 《 环境变量参考 》 )。)
ACL_OP_PERFORMANCE_MODE该参数已废弃,请勿配置,否则后续版本可能存在兼容性问题。 通过该选项设置是否按照算子执行高性能的方式编译算子,默认采用normal方式。 取值范围:
- normal:算子编译时按照编译性能最高的方式进行编译。
- high:算子编译时应该按照算子执行性能最好的方式去泛化编译。
ACL_OP_JIT_COMPIL选择是在线编译算子,还是使用已编译的算子二进制文件。
- enable:在线编译算子,系统根据得到的算子信息进行优化,从而编译出运行性能更优的算子。固定Shape网络场景下,建议设置为enable。
- disable:优先查找系统中的已编译好的算子二进制文件,如果能查找到,则不再编译算子,编译性能更优;如果查找不到,则再编译算子。动态Shape网络场景下,建议设置为disable。若将本参数设置为disable,则需要安装算子二进制文件包,请参见《CANN 软件安装指南》中的“安装二进制算子包”章节。
Atlas 200/500 A2推理产品,该选项默认值为enable。
ACL_OP_DETERMINISTIC是否开启确定性计算。
- 0:默认值,不开启确定性计算。
- 1:开启确定性计算。
当开启确定性计算功能时,算子在相同的硬件和输入下,多次执行将产生相同的输出。但启用确定性计算往往导致算子执行变慢。 默认情况下,不开启确定性计算,算子在相同的硬件和输入下,多次执行的结果可能不同。这个差异的来源,一般是因为在算子实现中,存在异步的多线程执行,会导致浮点数累加的顺序变化。 通常建议不开启确定性计算,因为确定性计算往往会导致算子执行变慢,进而影响性能。当发现模型多次执行结果不同,或者是进行精度调优时,可开启确定性计算,辅助模型调试、调优。
ACL_CUSTOMIZE_DTYPES*.cfg配置文件路径,包含文件名,配置文件中列举需要指定计算精度的算子名称或算子类型,每个算子单独一行。通过该配置,在模型编译时,可自定义某个或某些算子的计算精度。 配置约束:
- 路径和文件名支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、英文冒号(:)、中文字符。
- 配置文件中若为算子名称,以Opname::InputDtype:dtype1,...,OutputDtype:dtype1,...格式进行配置,每个Opname单独一行,dtype1,dtype2..需要与可设置计算精度的算子输入,算子输出的个数一一对应
- 配置文件中若为算子类型,以OpType::TypeName:InputDtype:dtype1,...,OutputDtype:dtype1,...格式进行配置,每个OpType单独一行,dtype1,dtype2..需要与可设置计算精度的算子输入,算子输出的个数一一对应,且算子OpType必须为基于Ascend IR定义的算子的OpType,OpType可查阅《算子清单》。
- 对于同一个算子,如果同时配置了
Opname
OpType的配置项,编译时以Opname的配置项为准。
- 使用该参数指定某个算子的计算精度时,如果模型转换过程中该算子被融合掉,则该算子指定的计算精度不生效。
ACL_OP_PRECISION_MODE设置算子精度模式的配置文件(.ini格式)路径以及文件名,路径和文件名:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符.
- 配置文件中支持设置如下精度模式:
- high_precision:表示高精度。
- high_performance:表示高性能。
- support_out_of_bound_index:表示对gather、scatter和segment类算子的indices输入进行越界校验, 校验会降低算子的执行性能。
- 构造算子精度模式配置文件op_precision.ini,并在该文件中按照算子类型、节点名称设置精度模式,每一行设置一个算子类型或节点名称的精度模式,按节点名称设置精度模式的优先级高于按算子类型。 配置样例如下:
text<br> [ByOpType]<br> optype1=high_precision<br> optype2=high_performance<br> optype3=support_of_bound_index<br> [ByNodeName]<br> nodename1=high_precision<br> nodename2=high_performance<br> nodename3=support_of_bound_index<br>
ACL_ALLOW_HF32当前版本不支持该参数。 算子内部计算时是否允许HF32类型替换FP32类型,true允许,false不允许,当前版本该配置仅针对Conv类算子与Matmul类算子生效。默认针对Conv类算子,启用FP32转换为HF32;默认针对Matmul类算子,关闭FP32转换为HF32。 HF32是昇腾推出的专门用于算子内部计算的单精度浮点类型,与其他常用数据类型的比较如下图所示。HF32与FP32支持相同的数值范围,但尾数位精度(11位)却接近FP16(10位)。通过降低精度让HF32单精度数据类型代替原有的FP32单精度数据类型,可大大降低数据所占空间大小,实现性能的提升。 Atlas 200/500 A2推理产品,不支持该配置。 (说明:配置为true时,哪些算子内部计算时 允许 HF32类型替换FP32类型,可在“CANN软件安装路径/opp/built-in/op_impl/ai_core/tbe/impl_mode/allow_hf32_matmul_ t conv t .ini”文件中查看; 配置为false时,哪些算子内部计算时 不允许 HF32类型替换FP32类型,可在“CANN软件安装路径/opp/built-in/op_impl/ai_core/tbe/impl_mode/allow_hf32_matmul_ f conv f .ini”文件中查看。)

父主题: 数据类型及其操作接口

acldvppChannelDescParamType

enum acldvppChannelDescParamType &#123;
ACL_DVPP_CSC_MATRIX_UINT32 = 0, // 色域转换矩阵属性,该属性类型对应的值为uint32_t类型
ACL_DVPP_MODE_UINT32, // 通道描述信息中的通道模式,该属性类型对应的值为uint32_t类型
ACL_DVPP_CHANNEL_ID_UINT64, // 通道ID,该属性类型对应的值为uint64_t类型
ACL_DVPP_CHANNEL_HEIGHT_UINT32, // 通道的高度,该属性类型对应的值为uint32_t类型
ACL_DVPP_CHANNEL_WIDTH_UINT32, // 通道的宽度,该属性类型对应的值为uint32_t类型
ACL_DVPP_JPEGD_PRECISION_MODE_ENUM // JPEGD解码输出图片的宽、高对齐模式,该属性类型对应的值为int32_t类型
&#125;

表1 属性配置

属性类型取值说明
ACL_DVPP_CSC_MATRIX_UINT32色域转换矩阵属性,属性值请参见acldvppCscMatrix
ACL_DVPP_MODE_UINT32通道描述信息中的通道模式,用于明确图片数据处理通道用于实现哪种功能,目前支持VPCJPEGDJPEGEPNGD功能。属性值请参见acldvppChannelMode
ACL_DVPP_CHANNEL_ID_UINT64通道ID。
ACL_DVPP_CHANNEL_HEIGHT_UINT32通道的高度,目前仅支持在JPEGE功能中使用该属性,其它功能中设置该属性无效。 Atlas 200/500 A2推理产品上,默认值为8192,最大值为16384,若输入图片高大于8192,则需要调用acldvppSetChannelDescParam接口设置通道高度。
ACL_DVPP_CHANNEL_WIDTH_UINT32通道的宽度,目前仅支持在JPEGE功能中使用该属性,其它功能中设置该属性无效。 默认值为8192,最大值为16384,若输入图片宽大于8192,则需要调用acldvppSetChannelDescParam接口设置通道宽度。
ACL_DVPP_JPEGD_PRECISION_MODE_ENUMJPEGD解码输出图片的宽、高对齐模式,模式选项参见acldvppJpegdPrecisionMode。 目前仅支持在JPEGD功能中使用该属性,其它功能中设置该属性无效。

父主题: 数据类型及其操作接口

aclvdecChannelDescParamType

enum aclvdecChannelDescParamType &#123;
ACL_VDEC_CSC_MATRIX_UINT32 = 0, //色域转换矩阵属性,该属性类型对应的值为uint32_t类型
ACL_VDEC_OUT_MODE_UINT32, //是否实时出帧,该属性类型对应的值为uint32_t类型
ACL_VDEC_THREAD_ID_UINT64, //回调线程ID,该属性类型对应的值为uint64_t类型
ACL_VDEC_CALLBACK_PTR, //回调函数,该属性类型对应的值是内存指针
ACL_VDEC_CHANNEL_ID_UINT32, //通道号,该属性类型对应的值为uint32_t类型
ACL_VDEC_ENCODE_TYPE_UINT32, //视频编码协议,该属性类型对应的值为uint32_t类型
ACL_VDEC_OUT_PIC_FORMAT_UINT32, //输出图片格式,该属性类型对应的值为uint32_t类型
ACL_VDEC_OUT_PIC_WIDTH_UINT32, //解码码流最大宽度,该属性类型对应的值为uint32_t类型
ACL_VDEC_OUT_PIC_HEIGHT_UINT32, //解码码流最大高度,该属性类型对应的值为uint32_t类型
ACL_VDEC_REF_FRAME_NUM_UINT32, //参考帧数量,该属性类型对应的值为uint32_t类型
ACL_VDEC_BIT_DEPTH_UINT32 //视频位宽,该属性类型对应的值为uint32_t类型
&#125;

表1 属性配置

属性类型取值说明
ACL_VDEC_CSC_MATRIX_UINT32色域转换矩阵属性,属性值请参见acldvppCscMatrix
ACL_VDEC_OUT_MODE_UINT32设置是否实时出帧(即发送一帧解码一帧,无需依赖后续帧的传入)。 取值范围如下:
- 0:默认出帧模式,由于解码过程中存在缓存帧,无法实时输出,因此VDEC需要在收到码流中的多帧数据后,才开始输出解码结果。
- 1:快速出帧模式,VDEC获取码流中的一帧数据后,就开始实时输出解码结果。只支持简单参考关系的H264/H265标准码流(无长期参考帧,无B帧)。
ACL_VDEC_THREAD_ID_UINT64回调线程ID。 (说明:同一个进程内,在不同的Device上注册VDEC解码回调函数的线程时,不能指定同一个线程ID。 同一个Device上,多路VDEC解码可以指定同一个线程ID,但相比一个线程处理一路VDEC解码任务来说,一个线程内串行处理多路VDEC解码任务时,VDEC解码性能可能下降。)
ACL_VDEC_CALLBACK_PTR解码回调函数。 请参见aclvdecCallback
ACL_VDEC_CHANNEL_ID_UINT32通道ID。 Atlas 200/500 A2推理产品,该参数值的取值范围[0, 255]。
ACL_VDEC_ENCODE_TYPE_UINT32视频编码协议H265-main level(0)、H264-baseline level(1)、H264-main level(2)、H264-high level(3)。 请参见acldvppStreamFormat
ACL_VDEC_OUT_PIC_FORMAT_UINT32YUV图像存储格式,支持如下格式:
- YUV420SP NV12
- YUV420SP NV21
- RGB888
- BGR888 如果不设置输出格式,默认使用YUV420SP NV12。
ACL_VDEC_OUT_PIC_WIDTH_UINT32解码码流最大宽度。 Atlas 200/500 A2推理产品,如果不设置解码码流最大宽度,内部默认使用4096。
ACL_VDEC_OUT_PIC_HEIGHT_UINT32解码码流最大高度。 Atlas 200/500 A2推理产品,如果不设置解码码流最大宽度,内部默认使用4096。
ACL_VDEC_REF_FRAME_NUM_UINT32参考帧数量,取值范围[0, 16]。 Atlas 200/500 A2推理产品,如果不设置参考帧数量,内部默认使用8。
ACL_VDEC_BIT_DEPTH_UINT32设置视频位宽,默认值为10-bit。 取值范围如下:
- 0:8-bit
- 1: 10-bit(默认值)

父主题: 数据类型及其操作接口

在线提单