Теоретически веб-камера USB HD, работающая со скоростью 15 кадров в секунду, потребляет полосу пропускания около 18 МБ / с - 1280 (ширина) x 960 (высота) x 3 (каналы RGB) x 15 (FPS) - без сжатия. Контроллер USB 2.0 имеет эффективную пропускную способность 35 МБ / с и способен работать с двумя камерами (что я и подтвердил на практике). Контроллер USB 3.0 имеет теоретическую максимальную скорость передачи 625 МБ / с, которая способна обрабатывать 34 камеры (625/18 = 34,72), для удобства предположим, что он может обрабатывать максимум 8 камер (пока не подтверждено). Используя оба предположения, можно оценить, что материнская плата P8B75-V может обрабатывать не менее 50 одновременных веб-камер:
- 3 слота PCIe (один PCIe x4 и два PCIe x1, исключая PCIe x16 для графической карты): преобразуйте их в USB 3.0 с помощью адаптера + концентраторы USB 3.0, в результате чего получится 24 веб-камеры
- 2 контроллера USB 3.0 (на передней и передней панели): концентраторы USB 3.0 для 16 веб-камер
- 3 слота PCI: конвертируйте каждый в USB 2.0 с помощью адаптера, в результате чего получается 6 веб-камер
- 2 контроллера USB 2.0: 4 веб-камеры
Итак, мой вопрос:
Эта конфигурация действительно возможна? Кто-нибудь пытался перегружать систему таким количеством USB-камер?
Проблемы:
- Возможно, процессор перегружен. Использование несжатого захвата изображения может решить эту проблему.
- У SO может быть много проблем с обработкой такого количества устройств.
Comentaries:
- Шина ЦП для внешних устройств - Quick Path Interconnect (QPI) для Intel и Hyper-transport for AMD - не рассматривается как проблема, поскольку 50 МБ / с * 18 МБ / с = 900 МБ / с. Это очень далеко от скорости передачи данных по шине 25,6 ГБ / с для QPI и 51,2 ГБ / с для Hyper-Transport.
- Я реализую программное обеспечение этого приложения, используя OpenCV, который оборачивает захват вокруг DirectShow.
РЕДАКТИРОВАТЬ 12/11/12:
Итак, я сделал несколько тестов, и есть некоторые моменты, которые нужно уточнить.
Потоковая передача HD-изображений со скоростью 30 кадров в секунду представляет полосу пропускания 106 МБ / с (53 МБ / с при 15 кадрах в секунду), моя математика была совершенно неверной. Это означает, что веб-камеры HD, работающие с USB 2.0, должны сжимать файл, чтобы не использовать всю полосу пропускания. Таким образом, даже если бы мне удалось подключить 50 веб-камер на одном ПК, вероятно, у ЦП было бы много проблем с распаковкой этого объема данных в режиме реального времени.
Настоящая проблема возникает, когда мы видим спецификацию USB 3.0:
Как видно на рисунке, USB 2.0 HUB полностью отделен от USB 3.0 HUB (SuperSpeed), что означает, что устройства USB 2.0 не могут использовать пропускную способность SuperSpeed. Это главный недостаток моего предположения, что я мог бы использовать больше устройств USB 2.0 с контроллером USB 3.0.
Поскольку данная спецификация устарела (около 2 лет), может ли кто-нибудь подтвердить, существует ли какая-либо новая реализация спецификации USB 3.0, которая разделяет полосу пропускания SuperSpeed между устройствами USB 2.0?