Для кадров в памяти одного Windows-хоста обычно подходит shared memory с ограниченным буфером и отдельной синхронизацией. Для управляющих команд удобно использовать named pipe.
Какие механизмы межпроцессного взаимодействия (IPC) под Windows наиболее оптимальны для передачи видеокадров между двумя процессами?
Для кадров в памяти одного Windows-хоста обычно подходит shared memory с ограниченным буфером и отдельной синхронизацией. Для управляющих команд удобно использовать named pipe.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для кадров в памяти одного Windows-хоста обычно подходит shared memory с ограниченным буфером и отдельной синхронизацией. Для управляющих команд удобно использовать named pipe.
CreateFileMapping и MapViewOfFile позволяют процессам видеть общий буфер, но не обеспечивают согласованность чтения и записи. Нужны состояния слотов, номер кадра, размер, timestamps и события/семафоры либо другой корректный протокол публикации.
Не перезаписывайте слот, который читает потребитель. Задайте политику пропуска старых кадров или backpressure. Для GPU-текстур имеет смысл изучить разделяемые графические ресурсы и fences, чтобы избежать лишнего CPU-копирования. Конкретный оптимальный вариант определяется расположением данных и требованиями к задержке.
Источник: learn.microsoft.com.