在Atlas上做推理(3)-编解码和一点点多媒体知识

在推理过程中,一个必要的步骤是将视频转换成一张张的图片。为了使用Atlas的硬件解码功能,我们选择使用ffmpeg的库完成这个相关的功能。

题图来自GitHub上一个非常棒的教程

从题图中可以看出,在视频处理中主要分为4层(我自己的翻译):

  1. 协议层: HTTP,文件,RTMP,RTSP等
  2. 格式层: MP4,AVI,MKV等
  3. 编码层: H264,H265等等
  4. 像素层: YUV420,RGB等等

在推理应用中,我们选择使用ffmpeg帮我们处理协议层和格式层,使用DVPP完成编解码,使用NPU在像素层做推理。下图是推理中ffmpeg处理的主要流程:

省略了亿点点细节

DVPP

DVPP是Atlas上媒体处理专用的硬件单元,支持的操作可以参考官方文档[2]

DVPP解码器调用流程:

  1. 创建解码器通道
  2. 创建一个线程并且将线程绑定到解码器通道
  3. 将处理图片的回调函数绑定到解码器通道
  4. 使用aclvdecSendFrame接口将H264码流发送给解码器
  5. 解码器解码成功后将图片传给用户在第三步3中设置的回调函数

需要注意的点:

  1. 解码器只接受Annex-B格式的码流,如果输入是AVCC格式,需要先转成Annex-B格式再传给解码器
  2. 不是每次调用aclvdecSendFrame都会立即得到一帧图片,可能多次调用后才能得到一帧图片
  3. 用户设置的回调函数必须尽快处理图片,否则会阻塞解码器

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值