Théoriquement, une webcam USB HD fonctionnant à 15 FPS consomme une bande passante proche de 18 Mo / s - 1280 (largeur) x 960 (hauteur) x 3 (canaux RVB) x 15 (FPS) - sans compression. Un contrôleur USB 2.0 a un débit effectif de 35 Mo / s , capable de gérer 2 caméras (ce que j'ai confirmé dans la pratique). Un contrôleur USB 3.0 a une vitesse de transmission maximale théorique de 625 Mo / s qui est capable de gérer 34 caméras (625/18 = 34,72), pour plus de commodité, supposons qu'il peut gérer un maximum de 8 caméras (pas encore confirmé). En utilisant les deux hypothèses, il est possible d'estimer que la carte mère P8B75-V peut gérer au moins 50 webcams simultanées:
- 3 emplacements PCIe (un PCIe x4 et deux PCIe x1, à l'exclusion du PCIe x16 vers la carte graphique): convertissez-les en USB 3.0 à l'aide d'un adaptateur + USB 3.0 HUBS , résultant en 24 webcams
- 2 contrôleurs USB 3.0 (entendre et avant): HUBS USB 3.0 pour réaliser 16 webcams
- 3 emplacements PCI : convertissez chacun en USB 2.0 à l'aide d'un adaptateur , résultant en 6 webcams
- 2 contrôleurs USB 2.0 : 4 webcams
Donc, ma question est:
Cette configuration est-elle vraiment possible? Quelqu'un a essayé de surcharger le système avec autant de webcams USB?
Problèmes:
- Il est possible que le processeur soit surchargé. L'utilisation de la capture d'image non compressée peut résoudre ce problème.
- Le SO peut avoir beaucoup de mal à gérer autant d'appareils.
Comentaires:
- Le bus CPU vers les périphériques externes - Quick Path Interconnect (QPI) pour Intel et Hyper-transport pour AMD - ne semble pas être un problème, car 50 Mo / s * 18 Mo / s = 900 Mo / s. C'est vraiment loin du débit de données de bus de 25,6 Go / s pour QPI et 51,2 Go / s pour Hyper-transport .
- J'implémente le logiciel de cette application en utilisant OpenCV qui encapsule la capture autour de DirectShow .
EDIT 12/11/12:
J'ai donc fait quelques tests et il y a quelques points à clarifier.
Le streaming d'images HD à 30 FPS représente une bande passante de 106 Mo / s (53 Mo / s à 15 FPS), mes calculs étaient complètement faux. Cela signifie que les webcams HD fonctionnant avec USB 2.0 doivent compresser le fichier pour ne pas consommer toute la bande passante. Donc, même si je pouvais connecter 50 webcams sur un seul PC, le processeur aurait probablement beaucoup de mal à décompresser cette quantité de données en temps réel.
Le vrai problème vient quand nous voyons la spécification USB 3.0 :
Comme nous pouvons le voir sur l'image, le HUB USB 2.0 est complètement séparé du HUB USB 3.0 (SuperSpeed), ce qui signifie que les périphériques USB 2.0 ne peuvent pas utiliser la bande passante SuperSpeed . C'est un inconvénient majeur dans mon hypothèse que je pourrais utiliser plus de périphériques USB 2.0 avec un contrôleur USB 3.0.
Comme cette spécification est un peu ancienne (environ 2 ans), quelqu'un peut-il confirmer s'il existe une nouvelle implémentation de la spécification USB 3.0 qui partage la bande passante SuperSpeed entre les périphériques USB 2.0?