Какие механизмы межпроцессного взаимодействия (IPC) под Windows наиболее оптимальны для передачи видеокадров между двумя процессами?

Для кадров в памяти одного Windows-хоста обычно подходит shared memory с ограниченным буфером и отдельной синхронизацией. Для управляющих команд удобно использовать named pipe.

Короткий ответ

Что ответить на собеседовании

Для кадров в памяти одного Windows-хоста обычно подходит shared memory с ограниченным буфером и отдельной синхронизацией. Для управляющих команд удобно использовать named pipe.

Подробный разбор

Ответ с пояснениями

Для кадров в памяти одного Windows-хоста обычно подходит shared memory с ограниченным буфером и отдельной синхронизацией. Для управляющих команд удобно использовать named pipe.

CreateFileMapping и MapViewOfFile позволяют процессам видеть общий буфер, но не обеспечивают согласованность чтения и записи. Нужны состояния слотов, номер кадра, размер, timestamps и события/семафоры либо другой корректный протокол публикации.

Не перезаписывайте слот, который читает потребитель. Задайте политику пропуска старых кадров или backpressure. Для GPU-текстур имеет смысл изучить разделяемые графические ресурсы и fences, чтобы избежать лишнего CPU-копирования. Конкретный оптимальный вариант определяется расположением данных и требованиями к задержке.

Источник: learn.microsoft.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее