文档
注册

样例介绍

获取样例

单击venc_image获取样例

功能描述

该样例将一张YUV420SP NV12格式的图片连续编码n次,生成一个H265格式的视频码流(n可配,通过运行应用时设置入参来配置,默认为16次)。

原理介绍

在该样例中,涉及的关键功能点,如下表所示。

初始化

  • 调用aclInit接口初始化AscendCL配置。
  • 调用aclFinalize接口实现AscendCL去初始化。

Device管理

  • 调用aclrtSetDevice接口指定用于运算的Device。
  • 调用aclrtGetRunMode接口获取软件栈的运行模式,根据运行模式的不同,内部处理流程不同。
  • 调用aclrtResetDevice接口复位当前运算的Device,回收Device上的资源。

内存管理

  • 调用acldvppMalloc接口申请device上内存。
  • 调用acldvppFree释放device上的内存。

数据传输

调用aclrtMemcpy接口:

  • 将数据从Host传输到Device上,作为编码的输入数据。
  • 编码结束后,将编码结果从Device传输到Host。

如果在板端环境上运行应用,则无需进行数据传输。

媒体数据处理

视频编码,调用aclvencSendFrame接口将将待编码的图片传到编码器进行编码。

目录结构

样例代码结构如下所示。

├── data
│   ├── dvpp_venc_128x128_nv12.yuv            //测试数据,需要按指导获取测试图片,放到data目录下

├── inc
│   ├── venc_process.h               //声明媒体数据处理相关函数的头文件
│   ├── sample_process.h               //声明模型处理相关函数的头文件                  
│   ├── utils.h                       //声明公共函数(例如:文件读取函数)的头文件

├── src
│   ├── acl.json               //系统初始化的配置文件
│   ├── CMakeLists.txt         //编译脚本
│   ├── main.cpp               //主函数,多图多框抠图功能的实现文件
│   ├── sample_process.cpp     //资源初始化/销毁相关函数的实现文件                                       
│   ├── utils.cpp              //公共函数(例如:文件读取函数)的实现文件
│   ├── venc_process.cpp       //媒体数据处理相关函数的实现文件

├── CMakeLists.txt    //编译脚本,调用src目录下的CMakeLists文件
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词