sigmarstar 在sdk丰富,功能强大,但也比较繁杂。本文针对IPC的应用场景以做说明。

ipc中通用视频流程包括:sensor视频采集->isp处理->缩放->编码

      在sigmarstar中对应的模块为:sensor->vif->isp->scl->venc, 模块之间通过MI_SYS_BindChnPort2 绑定在一起,类似gstreamer的思想。要弄清楚sigmarstar的流程,必须要理解它的各个bind关系。以下图例简单示范了模块间的绑定情况。

sigmastar sdk 在IPC上的使用总结 _SYS

   其中最小单位是port,像编码通道最后都映射到Venc模块的port0,port1.....

  chn is short for channel,一般chn并不等价于一般意义中nvr/ipc中的channel,而是比一般的channel更大一级的逻辑单位。

  dev is short for device,一般代表了特定的硬件资源。

sigmarstar开发主要内容就是参数配置+端口绑定,这两步弄对了,基本上业务流程没啥大问题。不同的功能使用的dev/chn/port可能不同,一般用的是dev0,chn0,port0,port1..., 下图为2个sensor,采集编码的绑定关系。

sigmastar sdk 在IPC上的使用总结 _视频流_02

src(6-0-0-0): vif模块-dev0-chn0-port0        dst(33-0-0-0): isp-dev0-chn0-port0     表示vif模块绑定到isp模块使用的相应参数

src(6-8-0-0): vif模块-dev8-chn0-port0        dst(33-0-1-0): isp-dev0-chn1-port0     表示vif的dev8绑定到isp的dev0的chn1

src(33-0-0-0)  dst(34-0-0-0)    isp绑定到scl(缩放)模块的dev0

src(33-0-1-0)  dst(34-0-1-0)     isp绑定到scl(缩放)模块的dev1

src(34-0-0-0)  dst(2-0-0-0)    scl dev0 port0 绑定到venc dev0 chn0, 注:此模块的channel与ipc中的channel是对应关系。

src(34-0-0-1)  dst(2-0-1-0)   scl dev0 port1 绑定到venc dev0 chn1

src(34-0-0-2)  dst(2-0-2-0)   scl dev0 port1 绑定到venc dev0 chn2

后面类似,不再赘述。

另外,还有双sensor融合模式下的绑定关系图如下

sigmastar sdk 在IPC上的使用总结 _sigmarstar_03

需要注意的是此模式下用的是scl(34) dev1而不是dev0

dst(2-8-8-0)代表的是抓图通道