2010-03-25 5 views
1

Je cherche à connecter plusieurs webcams USB basse résolution à un seul ordinateur. Quelles implications cela pourrait-il avoir sur la performance? Comment, par exemple, quatre caméras 320x240 se comparent à une seule caméra 640x480? Je ne suis pas très versé dans l'architecture de l'interface USB, quelles sont les mises en garde de performance? Par performance, je veux dire comment cela affecterait le temps de lire les données d'image de plusieurs caméras par rapport à une seule.Implications de l'utilisation de nombreuses caméras Web USB

+1

Ne concerne pas la programmation. Aller au superutilisateur à la place –

+0

Appartient à superuser.com –

+0

Je parie que la capture des images de plusieurs caméras va submerger les CPU et les E/S disque avant que l'E/S USB soit affecté. Peut-être que la RAM aussi, mais cela dépend de combien vous traitez les images après la capture. (en référence aux implications de performance de votre question) – robault

Répondre

2

Chaque webcam est connectée à un port USB différent? Si oui, c'est bon.

Même si c'est juste 1 port avec 4 webcams connectées. Je ne pense pas que 4 320x240 aura un problème non plus. USB 2.0 = 320Mbps. Le streaming d'une vidéo 320x240 ne devrait pas dépasser 1mbps. Pire scénario, mettant un 320x240 à 2mbps + 1mb d'autres données. Ce serait 12mbps bande passante entre votre port USB et l'appareil.

donc de ce qui précède, le 1 port USB peut gérer 4 webcams reliées par un séparateur aussi vite que 1 640x480 webcam.,

Le traitement de ces images dépend de votre vitesse d'ordinateur et comment vous écrivez votre algorithme.

+0

Merci. Oui, je me demandais juste à propos de la lecture/transfert des images, ne pas les traiter. – Martin

+0

Mais les communications USB sont traitées par le CPU pas dans le matériel comme firewire. Le pilote interrompt-il pour chaque nouveau pixel/ligne/cadre, combien de temps cela prend-il? Tout n'est pas une question de bande passante. –

1

Le débit de données maximal de l'USB est bien plus élevé que ce que vous obtiendrez réellement. Les webcams utiliseront probablement le transfert isochrone, qui en USB 2 ne peut obtenir qu'environ 40% (si je me souviens bien) de la durée du bus, et cela a aussi une bonne surcharge. Je ne sais pas avec certitude, mais je soupçonne que c'est la raison pour laquelle les résolutions de la webcam USB et les débits de données semblent avoir atteint un plafond il y a plusieurs années. Ils peuvent recommencer à augmenter avec l'utilisation de l'USB 3. Je vous suggère de connecter chacune de vos caméras à son propre port USB 2, car le 40% est partagé entre toutes les connexions isochrones. Une de ces connexions partageant la bande passante avec un clavier ou même un périphérique de stockage de masse USB devrait être acceptable, car elles n'utiliseraient qu'une partie du reste de la bande passante.

1

Incorrect. D'abord, l'USB 2.0 est théorique à 480mbps, et vous devriez pouvoir en obtenir environ 80% avec une connexion directe. Deuxièmement, pour calculer la bande passante utilisée par une caméra, la profondeur de bit de l'image doit être prise en compte, par conséquent: BW = hresolution() * vresolution() * imagebitdepth (bit) * framerate (frame/s) (dans bit/sec) imagebitdepth peut être, pour les webcams, 8, 16, 24 ou 32 bits (allant de Y800 monochrome à RGBA/RGBT couleur pleine, vérifier spec)

Par conséquent, une webcam typique résolution @ 640 * 480 , 30fps, 16 bit RVB bit-masqué bit RGBA profondeur d'image nécessitera 147.456 Mbps, et par conséquent, l'un des spécifications similaires, mais @ 320 * 240 résolution nécessiterait 36,864 Mbps, par opposition à la BS majeure déclaré par Shawn ci-dessus avec ses 1mbps alors est également incompatible avec à peu près toutes ses autres données, aussi erronées.

Le fonctionnement simultané est néanmoins largement dépendant du pilote, il appartient au fabricant de prendre l'effort minimal et d'exposer des ID de périphériques uniques à DirectShow.

Questions connexes