sophgo / sophon-stream

Other
68 stars 10 forks source link

启多个graph的时候,每个graph都有decode服务,是不是会造成统一路流重复解码 #23

Closed 1518515254 closed 3 months ago

1518515254 commented 4 months ago

您好,就是我这边想实现同一路视频流,作用在不同的算法上面,现在想到的是启多个graph的方式,但是这样是不是会造成启多个decode导致性能消耗。而且如果我加了了多路视频流,比如我的人脸识别算法只识别其中一路,这个该怎么配置,我看目前的demo里面都是多路视频一起识别的。方面您有什么好的建议吗

Yi-sir commented 4 months ago
  1. 一路视频流多个算法的需求是否可以串行?可以的话只需要一个decode,后面串联多个算法模块;
  2. 如果不能串行,可以考虑使用分发-汇聚插件,把源码流分发到不同的分支上,分支之间是并行的,可以配置不同的算法;
  3. 目前可以实现某路码流跳过某些element,但没有对所有的算法都适配。目前使用的场景一般还是一个graph里所有码流跑同样的流程。
1518515254 commented 4 months ago

分发汇聚的插件是可以分发源码流的是吧,那一个流分发多个分支,这样还是一个graph,只是一个decode的数据分到了不同的element上面是吧?那如果我不同的算法需要用到不同的流能,就是我一个decode服务里面有两路流,我算法里面只需要一路流的数据,这个通过分发服务实现吗?

Yi-sir commented 4 months ago

源码流A经过分发插件得到子码流A1和A2,它们可以各自经过不同的算法插件(或者不经过算法插件)。如果希望一个decode插件里不同的流经过不同的element,目前不能通过分发来实现,只能使用skip_elements,或者分在不同的graph/进程上。