Bonjour,
Voila je suis en ce moment sur un projet de traitement d'image qui doit fonctionner avec la meilleure performance possible.
Je m'explique:
J'ai besoin de récupérer le flux vidéo d'une caméra, de traiter ce flux et de renvoyer ces nouvelles données sur le port parallèle ou y est branché un petit système électronique qui va ré-afficher ces images.
Celles ci seront de taille 100x100 et codées sur 64 niveaux de gris.
Bref, ces données envoyées sur le port parallèle doivent arriver a une fréquence extrêmement précise, puisqu'une horloge va permettre, coté électronique, de récupérer ces données a un certain intervalle de temps donné.
Je dois envoyer 25 images / secondes, ce qui fait que pour une image de taille 100x100 je dois envoyer un pixel toutes les 4 microsecondes.
Pour ce faire, je me suis orienté sur un système d'exploitation temps réel (Xenomai pour commencer).
Le problème est que les contraintes temporelles de cet OS varient de quelques centaines de nanosecondes a 1 microseconde, et que je ne peux pas me permettre d'envoyer des données toutes les 4 microsecondes quelques fois et toutes les 5 microsecondes d'autres fois. J'ai besoin d'être le plus précis possible.
De plus, j'ai remarqué que les temps d'accès et d'écriture sur le port parallèle sont à peut près de 1 à 1.5 microsecondes, or j'ai besoin d'y accéder au minimum 3 fois par pixel, ce qui ne me laisse plus de temps pour effectuer mes calculs.
Qu'en pensez vous? Que dois-je faire? Les autres OS remps réel ont-ils aussi de telles contraintes?
Je suis ouvert a toute proposition, que ce soit changement d'OS, d'architecture, ou même sur le fait que je doive utiliser autre chose que le port parallèle (carte I/O), ...
Merci