Forum Linux.général Framebuffer

Posté par . Licence CC by-sa
Tags :
2
8
juil.
2015

Bonjour,

dans le cadre de notre projet, nous avons besoin de faire de l'affichage d'image très rapidement sur un écran servant à faire de la calibration de caméra.

Pour faire simple :
- nos caméras sont dans le noir, au dessus de l'écran de calibration (rétroéclairage éteint).
- les caméras acquièrent en permanence
- on affiche l'image à l'écran (les cristaux LCD de l'écran changent)
- on allume le rétroéclairage de l'écran un laps de temps nécessaire à la mesure
- on éteint le rétroéclairage
- on change d'image …
- etc …

Par ce processus, on s'assure de ce qui est affiché à l'écran, et on maitrise l’acquisition.

La configuration du PC :
- carte Nvidia Quadro NVS 300
- Linux Kernel 3.6.9
- driver Nvidia (pas driver nouveau)
- OpenSuse 12.1
- et le reste je pense pas util

Les premiers tests ont démontré qu'on ne maitrisé pas l'affichage de l'image. En effet, il y a eu des cas où l'image n'était pas complétement affichée (cristaux pas tous en place) au moment de l'allumage du rétroéclairage et de l'acquisition.

Je ne pense pas que le driver Nvidia soit capable de me dire qu'il a finit d'envoyer l'image vers l'écran et ainsi m'assurer que tout est en place. Puisqu'en plus il gère un affichage permanent, je ne vois pas vraiment comment il pourrait me dire "ouaip mon gars ton image est bien affiché, où tu voulais, quand tu voulais".

Alors quelqu'un m'a dis … utilise le framebuffer c'est plus rapide. J'ai dis "OK". Alors j'ai cherché …
Le framebuffer avec mon driver nvidia actuel ne gère que du 1280x1024 … hors mon écran de calibration fait 1920x1200. Donc pas bon …
J'ai fais un "hwinfo --framebuffer" pour savoir ça.
J'ai dis "attends mais y a celui du driver nouveau qui sait faire je crois" … oui sauf qu'il gère pas ma carte graphique.

Je me suis donc tourné vers d'autre choses mais je sèche là.

Il faudrait que je trouve un moyen en gros d'être certain que mon image (les cristaux) soit bien affichée, avant d'enclencher le process de rétroéclairage.

Je pourrai mettre une pause d'une seconde entre affichage et rétroéclairage, je serai tranquille, mais on a un total de 360 images à afficher pendant 50ms. Oui je sais ça ferait que 6min. Puis si je met une pause de 500ms, ça fait plus que trois minutes … mais c'est pas ce qu'on veut.
Enfin, c'est pas ce qu'on me demande :-)

Aujourd'hui le problème surtout c'est qu'on passe par une application Qt fait maison pour afficher l'image et qu'on ne gère pas bien le temps de chargement de cette image. C'est toujours plus rapide que tout le reste, mais pas assez. D'où l'idée du framebuffer.

Si quelqu'un a une idée/solution. Je suis preneur.

Et petite précision, le PC en question gère deux écrans : l'affichage utilisateur classique et l'écran pour la calibration.
Il faut que je puisse gérer les deux affichages en même temps bien sur.

Merci
Sylvain

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.