工具与软件:
您好、由于需求原因、我们需要使用多个进程、其中进程1是捕获->显示 M2M -> shm、其他进程接收进程1的输出映像、比如:shm->scaler...、shm 是共享内存、我们发现、使用共享内存在进程之间传输图像会消耗大量性能、主要是由于对图像数据的 memcpy 操作。 我想问一下是否有其他更节能的方法来传输图像数据? 由于显示 M2M 和标量节点都位于 R5F 内核上、是否可以在 R5F 内核上执行经济实惠的进程间图像传输?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
您好、由于需求原因、我们需要使用多个进程、其中进程1是捕获->显示 M2M -> shm、其他进程接收进程1的输出映像、比如:shm->scaler...、shm 是共享内存、我们发现、使用共享内存在进程之间传输图像会消耗大量性能、主要是由于对图像数据的 memcpy 操作。 我想问一下是否有其他更节能的方法来传输图像数据? 由于显示 M2M 和标量节点都位于 R5F 内核上、是否可以在 R5F 内核上执行经济实惠的进程间图像传输?
它就像这样:
假设:然后、我将 GraphA 中 displayM2M 节点的输出图像发送到 Graph B 和 Graph C
在图 B/C 中、我可以直接使用 displayM2M_output 图像来执行排队操作吗?
在继续执行下一帧前、图形 A 是否必须等待图形 B/C 完成图像并将其返回?
是的、在 这种情况下、可以在 GraphA 和 GraphB&C 之间共享图像 本质上、您需要为 GraphA 的输出以及 GraphB 和 C 的输入创建图形参数。由于所有三个图形都在流水线模式下运行、将在它们之间分配/共享多个图像、因此当 GraphA 与 GraphB 和 C 共享缓冲器时、它将在另一个缓冲器上工作、没有块。 仅当 GraphB 和 C 未在时间上返回缓冲器并且 大多数中间缓冲器是 GraphB 和 C 的输入时、才会阻止它
此致、
Brijesh
我的理解是否正确?
有我可以参考的演示吗?
此致、
Damon
现在、进程 A 的序列后的图像缓冲区被指定为进程 B 以供使用。 在使用进程 B 期间、进程 A 无法使用此缓冲区[/QUOT]这 与两个进程无关、这也可能发生在两个节点 之间。为了以全速并行运行它们、我们需要增加它们之间的管道深度。
BTW、在这种情况下、当 Processb 中的第一个节点处理完该帧后、该帧将 从 Processb 中发布、然后即可用于处理。
此致、
Brijesh