跳到主要内容

样例介绍

样例介绍

获取样例

单击venc_sample获取样例

功能描述

该样例实现将YUV420SP、YVU420SP格式的视频编码成H264、H265格式的码流。

原理介绍

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

初始化- 调用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接口申请/释放内存。
数据传输如果在板端环境上运行应用,则无需进行数据传输。
媒体数据处理V2参见VENC视频编码功能/JPEGE图片编码功能中的接口。

目录结构

样例代码结构如下所示。

├── libHisiSdkCodec //示例代码文件所在的目录
│ ├── hmev_hisi_sdk_*.h //声明编码函数的头文件
│ ├── hmev_hisi_sdk_*.cpp //编码函数的实现文件

├── CMakeLists.txt //编译脚本

父主题: 媒体数据处理V2(VENC视频编码)

编译及运行应用

单击venc_sample获取样例,查看该样例下的README。

父主题: 媒体数据处理V2(VENC视频编码)

样例介绍

获取样例

单击pngd_sample获取样例

功能描述

该样例实现.png、.PNG图片的解码。

原理介绍

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

初始化- 调用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接口申请/释放内存。
数据传输如果在板端环境上运行应用,则无需进行数据传输。
媒体数据处理V2参见PNGD图片解码功能中的接口。

目录结构

样例代码结构如下所示。

├── src //示例代码文件所在的目录
│ ├── sample_comm.h //声明解码函数的头文件
│ ├── sample_comm_pngd.cpp //解码函数的实现文件
│ ├── sample_pngd.cpp //解码函数的实现文件

├── CMakeLists.txt //编译脚本

父主题: 媒体数据处理V2(PNGD图片解码)

编译及运行应用

单击pngd_sample获取样例,查看该样例下的README。

父主题: 媒体数据处理V2(PNGD图片解码)

接口版本说明

V1.1.0为第一个AscendCL接口版本,根据AscendCL接口的变更,该版本号会随之改变,您可以调用aclrtGetVersion接口获取AscendCL接口版本号、再通过本章的接口列表查阅变更接口。

AscendCL接口版本号命名采用:A.B.C模式,其中:

  • A表示有不兼容修改,从1开始,如果出现接口的不兼容变更时,加1;
  • B表示新增接口,按照迭代周期,有新增接口时加1;
  • C表示bug修复,从0开始,表示本版本仅仅解决了问题。在A、B不变的情况下,如果本版本修复了问题,则C加1;但A、B增加的时候,C一般为0。

:::note 说明 昇腾AI处理器对枚举值、数据类型及其操作接口的支持情况请参见枚举值及数据结构数据类型及其操作接口

接口的返回码说明请参见aclError,如果接口调用失败,则接口的出参无效,不可继续使用。

接口命名规则的说明请参见表达约定。 :::

父主题: 接口列表

V1.1.0及以上版本

各版本对AscendCL接口的支持情况如下所示,各标识的含义如下:

一级节点

二级节点

三级节点

系统配置

aclInit

  

aclFinalize

  

aclrtGetVersion

  

aclSetCompileopt

  

aclrtGetSocName

  

aclGetRecentErrMsg

  

Device管理

aclrtSetDevice

  

aclrtResetDevice

  

aclrtGetDevice

  

aclrtGetRunMode

  

aclrtSetTsDevice

  

aclrtGetDeviceCount

  

Context管理

aclrtCreateContext

  

aclrtDestroyContext

  

aclrtSetCurrentContext

  

aclrtGetCurrentContext

  

算力Group查询与设置

aclrtSetGroup

  

aclrtGetGroupCount

  

aclrtCreateGroupInfo

  

aclrtDestroyGroupInfo

  

aclrtGetAllGroupInfo

  

aclrtGetGroupInfoDetail

  

Stream管理

aclrtCreateStream

  

aclrtDestroyStream

  

同步等待

aclrtCreateEvent

  

aclrtCreateEventWithFlag

  

aclrtDestroyEvent

  

aclrtRecordEvent

  

aclrtResetEvent

  

aclrtQueryEvent

  

aclrtQueryEventStatus

  

aclrtQueryEventWaitStatus

  

aclrtSynchronizeEvent

  

aclrtEventElapsedTime

  

aclrtStreamWaitEvent

  

aclrtSynchronizeDevice

  

aclrtSynchronizeStream

  

aclrtSubscribeReport

  

aclrtLaunchCallback

  

aclrtProcessReport

  

aclrtUnSubscribeReport

  

aclrtSetExceptionInfoCallback

  

aclrtGetTaskIdFromExceptionInfo

  

aclrtGetStreamIdFromExceptionInfo

  

aclrtGetThreadIdFromExceptionInfo

  

aclrtGetDeviceIdFromExceptionInfo

  

aclrtSetOpWaitTimeout

  

内存管理

aclrtMalloc

  

aclrtMallocCached

  

aclrtMemFlush

  

aclrtMemInvalidate

  

aclrtFree

  

aclrtMallocHost

  

aclrtFreeHost

  

aclrtMemset

  

aclrtMemsetAsync

  

aclrtMemcpy

  

aclrtMemcpyAsync

  

aclrtGetMemInfo

  

aclrtDeviceCanAccessPeer

  

aclrtDeviceEnablePeerAccess

  

aclrtDeviceDisablePeerAccess

  

aclrtMemcpy2d

  

aclrtMemcpy2dAsync

  

模型加载与执行

aclmdlLoadFromFile

  

aclmdlLoadFromMem

  

aclmdlLoadFromFileWithMem

  

aclmdlLoadFromMemWithMem

  

aclmdlLoadFromFileWithQ

  

aclmdlLoadFromMemWithQ

  

aclmdlExecute

  

aclmdlExecuteAsync

  

aclmdlUnload

  

aclmdlQuerySize

  

aclmdlQuerySizeFromMem

  

aclmdlSetDynamicBatchSize

  

aclmdlSetDynamicHWSize

  

aclmdlSetInputAIPP

  

aclmdlGetFirstAippInfo

  

aclmdlGetAippType

  

aclmdlSetAIPPByInputIndex

  

aclmdlSetInputDynamicDims

  

aclmdlCreateAndGetOpDesc

  

aclmdlInitDump

  

aclmdlSetDump

  

aclmdlFinalizeDump

  

aclmdlSetConfigOpt

  

aclmdlLoadWithConfig

  

算子编译

aclopRegisterCompileFunc

  

aclopUnregisterCompileFunc

  

aclopCreateKernel

  

aclopSetKernelArgs

  

aclopSetKernelWorkspaceSizes

  

aclopUpdateParams

  

aclopCompile

  

aclopSetCompileFlag

  

aclGenGraphAndDumpForOp

  

算子加载与执行

aclopSetModelDir

  

aclopLoad

  

aclopExecute

  

aclopExecuteV2

  

aclopCompileAndExecute

  

aclopExecWithHandle

  

aclopInferShape

  

CBLAS接口

aclblasGemvEx

  

aclblasCreateHandleForGemvEx

  

aclblasHgemv

  

aclblasCreateHandleForHgemv

  

aclblasS8gemv

  

aclblasCreateHandleForS8gemv

  

aclblasGemmEx

  

aclblasCreateHandleForGemmEx

  

aclblasHgemm

  

aclblasCreateHandleForHgemm

  

aclblasS8gemm

  

aclblasCreateHandleForS8gemm

  

aclopCast

  

aclopCreateHandleForCast

  

媒体数据处理V1

内存申请与释放

acldvppMalloc

acldvppFree

通道创建与释放

acldvppCreateChannel

acldvppDestroyChannel

aclvdecCreateChannel

aclvdecDestroyChannel

aclvencCreateChannel

aclvencDestroyChannel

VPC功能

acldvppVpcResizeAsync

acldvppVpcCropAsync

acldvppVpcCropResizeAsync

acldvppVpcBatchCropAsync

acldvppVpcBatchCropResizeAsync

acldvppVpcCropAndPasteAsync

acldvppVpcCropResizePasteAsync

acldvppVpcBatchCropAndPasteAsync

acldvppVpcBatchCropResizePasteAsync

acldvppVpcBatchCropResizeMakeBorderAsync

acldvppVpcConvertColorAsync

acldvppVpcPyrDownAsync

acldvppVpcEqualizeHistAsync

acldvppVpcMakeBorderAsync

acldvppVpcCalcHistAsync

JPEGD功能

acldvppJpegDecodeAsync

acldvppJpegGetImageInfo

acldvppJpegGetImageInfoV2

acldvppJpegPredictDecSize

JPEGE功能

acldvppJpegEncodeAsync

acldvppJpegPredictEncSize

PNGD功能

acldvppPngDecodeAsync

acldvppPngGetImageInfo

acldvppPngPredictDecSize

VDEC功能

aclvdecSendFrame

aclvdecSendSkippedFrame

aclvdecCallback

VENC功能

aclvencSendFrame

aclvencCallback

媒体数据处理V2

公共接口

hi_mpi_sys_init

hi_mpi_sys_exit

hi_mpi_dvpp_malloc

hi_mpi_dvpp_free

hi_mpi_dvpp_get_image_info

hi_mpi_dvpp_get_version

hi_mpi_sys_create_epoll

hi_mpi_sys_ctl_epoll

hi_mpi_sys_wait_epoll

hi_mpi_sys_close_epoll

hi_mpi_sys_set_chn_csc_matrix

hi_mpi_sys_get_chn_csc_matrix

VPC功能

hi_mpi_vpc_create_chn

hi_mpi_vpc_destroy_chn

hi_mpi_vpc_resize

hi_mpi_vpc_crop

hi_mpi_vpc_crop_resize

hi_mpi_vpc_crop_resize_paste

hi_mpi_vpc_convert_color

hi_mpi_vpc_convert_color_to_yuv420

hi_mpi_vpc_copy_make_border

hi_mpi_vpc_pyrdown

hi_mpi_vpc_calc_hist

hi_mpi_vpc_equalize_hist

hi_mpi_vpc_crop_resize_make_border

hi_mpi_vpc_batch_crop_resize_paste

hi_mpi_vpc_batch_crop_resize_make_border

hi_mpi_vpc_get_process_result

hi_mpi_vpc_sys_create_chn

VDEC功能/JPEGD功能

hi_mpi_vdec_create_chn

hi_mpi_vdec_destroy_chn

hi_mpi_vdec_get_chn_attr

hi_mpi_vdec_set_chn_attr

hi_mpi_vdec_start_recv_stream

hi_mpi_vdec_stop_recv_stream

hi_mpi_vdec_query_status

hi_mpi_vdec_reset_chn

hi_mpi_vdec_set_chn_param

hi_mpi_vdec_get_chn_param

hi_mpi_vdec_set_protocol_param

hi_mpi_vdec_get_protocol_param

hi_mpi_vdec_send_stream

hi_mpi_vdec_get_frame

hi_mpi_vdec_release_frame

hi_mpi_vdec_get_fd

hi_mpi_vdec_close_fd

hi_vdec_get_pic_buf_size

hi_vdec_get_tmv_buf_size

VENC功能/JPEGE功能

hi_mpi_venc_create_chn

hi_mpi_venc_destroy_chn

hi_mpi_venc_start_chn

hi_mpi_venc_stop_chn

hi_mpi_venc_query_status

hi_mpi_venc_get_stream

hi_mpi_venc_release_stream

hi_mpi_venc_send_frame

hi_mpi_venc_set_mod_param

hi_mpi_venc_get_mod_param

hi_mpi_venc_request_idr

hi_mpi_venc_get_fd

hi_mpi_venc_close_fd

hi_mpi_venc_set_jpeg_param

hi_mpi_venc_get_jpeg_param

hi_mpi_venc_set_chn_param

hi_mpi_venc_set_scene_mode

hi_mpi_venc_set_rc_param

hi_mpi_venc_get_rc_param

hi_mpi_venc_set_jpeg_huffman_param

hi_mpi_venc_get_jpeg_huffman_param

hi_mpi_venc_compact_jpeg_tables

PNGD功能

hi_mpi_pngd_create_chn

hi_mpi_pngd_destroy_chn

hi_mpi_pngd_send_stream

hi_mpi_pngd_get_image_data

hi_mpi_png_get_image_info

日志管理

aclAppLog

  

特征向量检索

aclfvInit

  

aclfvRelease

  

aclfvRepoAdd

  

aclfvRepoDel

  

aclfvDel

  

aclfvModify

  

aclfvSearch

  

Profiling配置

aclprofInit

  

aclprofStart

  

aclprofStop

  

aclprofFinalize

  

aclprofCreateStamp

  

aclprofSetStampTraceMessage

  

aclprofMark

  

aclprofPush

  

aclprofPop

  

aclprofRangeStart

  

aclprofRangeStop

  

aclprofDestroyStamp

  

aclprofModelSubscribe

  

aclprofModelUnSubscribe

  

aclprofGetOpDescSize

  

aclprofGetOpNum

  

aclprofGetOpTypeLen

  

aclprofGetOpType

  

aclprofGetOpNameLen

  

aclprofGetOpName

  

aclprofGetOpStart

  

aclprofGetOpEnd

  

aclprofGetOpDuration

  

aclprofGetModelId

  

aclprofGetStepTimestamp

  

Tensor数据传输接口

acltdtCreateChannel

  

acltdtSendTensor

  

acltdtReceiveTensor

  

acltdtStopChannel

  

acltdtDestroyChannel

  

acltdtCreateChannelWithCapacity

  

acltdtQueryChannelSize

  

数据类型转换及获取数据大小

aclDataTypeSize

  

aclFloat16ToFloat

  

aclFloatToFloat16

  

扩展接口

aclextProcessAicpuTask

  

共享队列管理

acltdtCreateQueue

  

acltdtDestroyQueue

  

acltdtEnqueueData

  

acltdtDequeueData

  

acltdtEnqueue

  

acltdtDequeue

  

acltdtBindQueueRoutes

  

acltdtUnbindQueueRoutes

  

acltdtQueryQueueRoutes

  

acltdtGrantQueue

  

acltdtAttachQueue

  

共享Buffer管理

acltdtAllocBuf

  

acltdtFreeBuf

  

acltdtGetBufData

  

父主题: 接口列表

在线提单