海思3518E学习Notes

2019-01-23  本文已影响0人  LittlePrin_460d

本文主要介绍了海思Hi3518E的视频缓冲池的重要概念,阐述视频缓冲池VB在整个视频编解码中的地位。

一、Hi3518E的地址内存空间分布

如果您在Hi3518E上面部署好整个系统,会知道在进行烧录镜像时会在启动参数要求指定地址空间的分布。其中会涉及一个比较重要但是陌生的名词:MMZ。下文是从SDK中摘抄出来的片段。

通过官方文档,我们可以查到其具体的含义:

MMZ 驱动管理用户创建的分配池,用户程序分配内存的时候可以指定要在哪个分配池中分配内存,分配器将查找满足要求的分配池并从中分配合适的内存块给程序使用。另外还有一个重要的概念:公共缓冲池。顾名思义,公共缓冲池就是为VI部分、VPSS部分、VENC部分共用的部分,是它们操作的全局变量,当一个模块处理完后可以通知下一个模块使用,比较方便。

上图是 公共缓冲池的数据流图。我们可以看到公共缓冲池中有很多个缓冲池,每个缓冲池有很多个缓冲块(B1、B2、、、Bn)。进行视频编解码时,首先VI模块从VB中取得Bm缓冲块,处理后扔给VPSS,VPSS再根据需要(比如裁剪、缩放等)将Bm变换成Bi、Bj、Bk等缓冲块。这些缓冲块会被流向VENC、VDA、VO等模块,最后处理完成后,会释放这些缓冲块到缓冲池中,方便下一次使用。至于具体的流向,比如VPSS->VENC需要根据提供的API函数进行绑定。

(更多关于海思3518E的学习内容请参考:点击这里获取更多学习资料!)

上一篇下一篇

猜你喜欢

热点阅读