样例介绍

获取样例

单击视频编码获取样例。

功能描述

该样例将一张YUV420SP NV12格式的图片连续编码n次,生成一个H.265格式的视频码流(n可配,通过运行应用时设置入参来配置,由代码中的“venc_cnt”参数来控制,默认为16次)。

主要接口

主要接口如下表所示。

初始化

  • 调用acl.init接口初始化pyACL配置。
  • 调用acl.finalize接口实现pyACL去初始化。

Device管理

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

内存管理

  • 调用acl.dvpp.malloc接口申请device上内存。
  • 调用acl.dvpp.free释放device上的内存。

数据传输

调用acl.rt.memcpy接口:

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

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

媒体数据处理

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

目录结构

如下为模型文件转换后的示例目录结构。
venc_image
├──scripts
│ ├── host_version.conf //版本号配置文件。
│ └── testcase_300.sh //运行脚本。
├──src
│ └── acl_venc.py //视频编码实现文件。
├── README_CN.md 
└── data //测试数据,需要用户部署。
  └── dvpp_venc_128x128_nv12.yuv //用户待处理的图片文件。