Какой метод лучше использовать для отправки потока изображений между двумя процессами, локального соединения TCP / IP или межпроцессного взаимодействия? - PullRequest
1 голос
/ 15 апреля 2009

Предполагая, что мне нужно скопировать каждое изображение в потоке (я не могу просто получить доступ к этим данным с какой-либо защитой мьютекса, в любом случае их необходимо скопировать), какой метод лучше, плюсы / минусы?

Я также хотел бы знать, насколько это потеря производительности по сравнению с использованием изображений в том же процессе.

Спасибо

Ответы [ 5 ]

2 голосов
/ 15 апреля 2009

Для изображений наилучшим вариантом будет IPC через разделяемую память .

1 голос
/ 29 июля 2009

Я бы взял VCAM-пример устройства захвата DirectShow (доступно по адресу: http://tmhare.mvps.org/downloads/vcam.zip)

Этот драйвер отображается для O / S как устройство захвата видео и запускается в процессе назначения. Источник будет использовать буферы разделяемой памяти для подачи кадров для вставки.

Хотя это сложнее, чем минимальная схема IPC с общей памятью, она дает невероятное преимущество в том, что ваши видеотрубки могут подключаться к большинству программ медиаплеера, средствам захвата и редактирования и т. Д.

Я делал это несколько раз, включая такие функции, как приемники, смесители, плагины эффектов Freeframe и так далее. Для взлома потребуется день или два.

1 голос
/ 15 апреля 2009

Google "Memory Mapped Files"

1 голос
/ 15 апреля 2009

С точки зрения производительности, IPC через разделяемую память является лучшим вариантом, но имхо, даже если сокеты потребляют немного больше обработки, они дадут вам лучший результат с точки зрения эволюции вашего программного обеспечения.

1 голос
/ 15 апреля 2009

По крайней мере брандмауэры Windows могут создавать помехи даже для локальных соединений TCP / IP. Поэтому я бы предпочел общую память.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...