Teoricamente, uma webcam USB HD trabalhando a 15 FPS consome uma largura de banda próxima de 18 MB / s - 1280 (largura) x 960 (altura) x 3 (canais RGB) x 15 (FPS) - sem compactação. Um controlador USB 2.0 tem uma taxa de transferência efetiva de 35 MB / s , sendo capaz de lidar com 2 câmeras (o que confirmei na prática). Um controlador USB 3.0 possui uma velocidade máxima de transmissão teórica de 625MB / s, capaz de lidar com 34 câmeras (625/18 = 34,72), por conveniência, vamos supor que ele possa lidar com um máximo de 8 câmeras (ainda não confirmadas). Usando as duas premissas, é possível estimar que a placa mãe P8B75-V pode lidar com pelo menos 50 webcams simultâneas:
- 3 slots PCIe (um PCIe x4 e dois PCIe x1, excluindo o PCIe x16 na placa de vídeo): Converta-os em USB 3.0 usando um adaptador + HUBS USB 3.0 , resultando em 24 webcams
- 2 controladores USB 3.0 (ouvir e frontal): HUBS USB 3.0 para obter 16 webcams
- 3 slots PCI : converta cada um em USB 2.0 usando um adaptador , resultando em 6 webcams
- 2 controladores USB 2.0 : 4 webcams
Então, minha pergunta é:
Essa configuração é realmente possível? Alguém tentou sobrecarregar o sistema com tantas webcams USB?
Problemas:
- É possível que o processador fique sobrecarregado. O uso da captura de imagem não compactada pode resolver isso.
- A SO pode ter muitos problemas ao lidar com tantos dispositivos.
Comentários:
- O barramento da CPU para dispositivos externos - Quick Path Interconnect (QPI) para Intel e Hyper-transport para AMD - não parece ser um problema, já que 50 MB / s * 18 MB / s = 900 MB / s. Isso está muito longe da taxa de dados de barramento de 25,6 GB / s para QPI e 51,2 GB / s para Hyper-transport .
- Estou implementando o software deste aplicativo usando o OpenCV que envolve a captura no DirectShow .
EDIT 12/11/12:
Então, eu fiz alguns testes e há alguns pontos a esclarecer.
O streaming de imagens em HD a 30 FPS representa uma largura de banda de 106 MB / s (53 MB / s a 15 FPS), minha matemática estava completamente errada. Isso significa que as webcams HD que trabalham com USB 2.0 precisam compactar o arquivo para não consumir toda a largura de banda. Portanto, mesmo se eu fosse capaz de conectar 50 webcams em um único PC, provavelmente a CPU teria muitos problemas para descomprimir essa quantidade de dados em tempo real.
O verdadeiro problema surge quando vemos a especificação USB 3.0 :
Como podemos ver na imagem, o USB 2.0 HUB é completamente separado do USB 3.0 HUB (SuperSpeed), o que significa que os dispositivos USB 2.0 não podem usar a largura de banda SuperSpeed . Essa é uma grande desvantagem ao supor que eu poderia usar mais dispositivos USB 2.0 com um controlador USB 3.0.
Como essa especificação é meio antiga (cerca de 2 anos), alguém pode confirmar se há alguma nova implementação da especificação USB 3.0 que compartilhe a largura de banda SuperSpeed entre dispositivos USB 2.0?