原理介绍
在该样例中,涉及的关键功能点,如下表所示。
初始化
|
- 调用aclInit接口初始化AscendCL配置。
- 调用aclFinalize接口实现AscendCL去初始化。
|
Device管理
|
- 调用aclrtSetDevice接口指定用于运算的Device。
- 调用aclrtGetRunMode接口获取软件栈的运行模式,根据运行模式的不同,内部处理流程不同。
- 调用aclrtResetDevice接口复位当前运算的Device,回收Device上的资源。
|
Context管理
|
- 调用aclrtCreateContext接口创建Context。
- 调用aclrtDestroyContext接口销毁Context。
|
内存管理
|
- 调用aclrtMallocHost接口/aclrtFreeHost接口申请/释放Host上内存。
- 执行媒体数据处理时,若需要申请Device上的内存存放输入或输出数据,需调用hi_mpi_dvpp_malloc接口/hi_mpi_dvpp_free接口申请/释放内存。
|
数据传输
|
调用aclrtMemcpy接口:
- 将数据从Host传输到Device上,作为解码的输入数据。
- 模型推理结束后,将推理结果从Device传输到Host。
如果在板端环境上运行应用,则无需进行数据传输。
|
媒体数据处理V2
|
参见VDEC视频解码功能/JPEGD图片解码功能中的接口。
|
目录结构
样例代码结构如下所示。
├── Vdec.h //声明解码函数的头文件
├── Vdec.cpp //解码函数的实现文件
├── VdecDemo.cpp //main函数的实现文件
├── CMakeLists.txt //编译脚本