定义
GROUP
VPSS 对用户提供组( GROUP)的概念。最大可用数为 VPSS_MAX_GRP_NUM个,各芯片的最大组数目有所不同,各 GROUP 分时复用 VPSS 硬件。每个 VPSSGROUP 包含多个通道,通道数目视方案实现有所不同,具体描述请参见CHANNEL。
group实际上是对VPSS硬件功能的虚拟化,即若系统里只有一个group,那么这个group实际就是VPSS;若有多个group,那么就是一会给group0用一会给group1用,这就是分时复用。
CHANNEL
VPSS 组的通道。通道分为 2 种:物理通道和扩展通道。 VPSS 硬件提供多个物理通道,每个通道具有缩放、裁剪等功能。扩展通道具备缩放功能,它通过绑定物理通道,将物理通道输出作为自己的输入,把图像缩放成用户设置的目标分辨率输出。
chn是Grp里面的通道,这个通道有物理的有扩展的,物理通道有对应的硬件,扩展通道没有对应的硬件,扩展通道其实是对应了一些功能(缩放等)
- 物理通道
视频物理通道负责将输入设备解析后得到的视频数据输出到 DDR。在真正将数据 输出到 DDR 之前,它可以实现裁剪等功能,具体功能见各芯片的详细描述。- 扩展通道
扩展通道是物理通道的扩展,主要实现缩放功能,其数据来源于物理通道。
我的理解
可以理解为VPSS是流水线,group是流水线上工作的白班和夜班两组工作人员,channel就是流水线上的工人,不同channel(工作人员)的作用不一样
Grp是一个组合,一个物理硬件VPSS在软件上的一个映射,如果我们只有一个Grp的话就是物理硬件VPSS在软件上的一个1:1的一个映射。
chn是Grp里面的通道,这个通道有物理的有扩展的,物理通道有对应的硬件,扩展通道没有对应的硬件,扩展通道其实是对应了一些功能(缩放等)
以海思为例
VI中有物理通道和扩展通道,没有组的概念。
VI中的物理通道为主码流
在VI对sensor采集完的图像做好处理后,可以让VPSS的group和VI的通道进行绑定,从而进行裁剪操作,然后VPSS的组输出多路channel产生不同分辨率的视频,用于不同操作。
实际上VPSS的作用大部分在于缩放,用于视频预览;一些帧率控制、裁剪的功能VI也能完成,那么用于功能性的视频通道,如算法处理、抓图,就可以直接使用VI出来的拓展通道,这样就能少一次传输,不用走VPSS再到算法,一定程度上节省DDR的带宽
注意:海思中的VI的chn和VPSS的chn是两回事,VI那边的chn是VI里面Dev里面的chn,VI那边DEV的地位有点类似于VPSS这边的Grp。
对接的时候是VI这边的chn去绑定VPSS这边的Grp。