接口调用流程

开发应用时,如果涉及抠图、缩放等图片处理,则应用程序中必须包含图片处理的代码逻辑,关于图片处理的接口调用流程,请先参见接口调用流程了解整体流程,再查看本节中的流程说明。关于VPC功能的详细介绍请参见约束说明

主要接口调用流程

图1 主要接口调用流程

当前系统支持对输入图片做抠图、缩放等处理,关键接口的说明如下:

  1. 调用hi_mpi_sys_init接口进行媒体数据处理系统初始化。
  2. 调用hi_mpi_vpc_create_chn接口创建通道。
  3. 调用hi_mpi_dvpp_malloc接口申请Device上的内存,存放输入或输出数据。
  4. 执行抠图、缩放等,此步骤以缩放为例说明,其它功能(例如格式转换、金字塔等)请参见VPC功能下的接口说明。

    调用hi_mpi_vpc_resize接口,对图片进行缩放。hi_mpi_vpc_resize接口是异步接口,调用该接口成功仅表示任务下发成功,还需要调用hi_mpi_vpc_get_process_result接口等待任务完成。

    可以跟hi_mpi_vpc_resize接口在同一个线程中调用hi_mpi_vpc_get_process_result接口,也可以新起一个线程调用hi_mpi_vpc_get_process_result接口,后者多线程并行,提高效率,但用户需自行实现线程间同步。

    在实现抠图、缩放等功能时,通过将输入图片和输出图片的格式设置成不同的,达到转换图片格式的目的。

  5. 调用hi_mpi_dvpp_free接口释放输入、输出内存。
  6. 调用hi_mpi_vpc_destroy_chn接口销毁通道。
  7. 调用hi_mpi_sys_exit接口进行媒体数据处理系统去初始化。