2017-06-01 6 views
0

J'ai une caméra industrielle qui prend 120 images par seconde. Il se connecte à mon PC via un câble USB 3.0 et les images sont transférées de manière stable dans mon PC à une vitesse de 120 images par seconde si je les montre. Cependant, lorsque j'essaie de sauvegarder les images dans mon SSD (interface M.2 PCIE) au format jpeg, je ne peux enregistrer que 30 images par seconde. Chaque fichier jpeg est d'environ 80 Ko et il sera d'environ 10 Mbps si je sauvegarde les 120 images par seconde. J'ai testé mon SSD et il a au moins 100MBps pour écrire des données. Alors, où peut-il aller mal? Par exemple, l'API fournie par la caméra est l'API Windows C++ et j'utilise Visual Studio pour le programme de capture et d'écriture. Une façon dont je peux penser est de sauvegarder les images dans la mémoire pendant un certain temps et puis j'arrête de capturer et de vider les images sur le disque. Mon application doit continuer à capturer la caméra tout le temps. Donc je pense s'il y a un moyen de sauvegarder ces images en continu dans le SSD. Mon PC a une mémoire de 17 et 32 ​​Go.comment enregistrer rapidement des images capturées par mon appareil photo industriel dans SSD

+0

Exécutez-vous Windows ou Linux? Combien de secondes avez-vous besoin de capturer? Quel langage de programmation et quels outils utilisez-vous? –

+0

Si la lecture (via USB) et l'écriture (SSD) est en série, le col de la bouteille est votre écriture. Alors mettez la lecture dans un fil et écrivez dans le fil principal. Cela peut améliorer le FPS. – harshkn

+0

Si vous avez un processeur multi-cœurs, vous pouvez envisager d'avoir 1 trame de capture de trame et peut-être 4 threads de traitement de trame. Vous créerez les 4 threads de traitement au démarrage et les notifierez ensuite à l'arrivée d'une trame, à savoir trame 1 à fil 1, trame 2 à fil 2, trame 3 à fil 3, trame 4 à fil 4, trame 5 à fil 1 ... Les threads auraient alors quatre fois plus de temps pour convertir en JPEG et écrire avant d'être appelés à traiter une autre image. –

Répondre

1

Le goulot d'étranglement n'est pas E/S mais le traitement de la conversion raw en jpeg qui est fait par SDK sur PC. Essayez de sauvegarder les données brutes en temps réel et convertissez-les en jpeg hors ligne.