Hallo,
ich grabbe mit opencv frames von 3 Kameras (je kamera 32 frames pro sec) und möchte diese, alle 32 Fames bearbeiten. Mit bearbeiten meine ich sehr rechenaufwendige Bildverarbeitung. Wenn ich das chronologisch mache dann verpasse ich natürlich ein paar frames während der Bearbeitung, die ich nicht grabben kann. Jetzt wollte ich wissen wie ich es mit threads am effizientesten hinbekomme. Ich hatte mir gedacht den Grabber-Thread mit einer niedrigen Priorität durchlaufen zu lassen und den Bildverarbeitungs-Thread schlafen zu lassen, bis 32 frames zusammen gekommen sind. Danach wollte ich den Bildverarbeitungs-Thread mit hoher Priorität seinen Job machen lassen. Ist das so am besten, oder gibt es bessere wege? Habe mal gehört das sleep() nicht wirklich toll ist für thread programmierung...
Das komische ist wenn ich meinen Threads prioritäten zuweise (THREAD_BASE_PRIORITY_MAX und THREAD_BASE_PRIORITY_IDLE) und sie ne Schleife zählen lasse ist der mit der höheren Priorität nur minimal schneller als der mit der niedrigeren... ist das normal?
Und noch eine Frage, kann man Windows 7 so einstellen, dass es so wenig wie möglich rssourcen in anspruch nimmet und den grossteil der CPU für mein Programm zur verfügung stellt? Ich möchte windows während mein Programm läuft eigentlich gar nicht nutzennutzen.
ich grabbe mit opencv frames von 3 Kameras (je kamera 32 frames pro sec) und möchte diese, alle 32 Fames bearbeiten. Mit bearbeiten meine ich sehr rechenaufwendige Bildverarbeitung. Wenn ich das chronologisch mache dann verpasse ich natürlich ein paar frames während der Bearbeitung, die ich nicht grabben kann. Jetzt wollte ich wissen wie ich es mit threads am effizientesten hinbekomme. Ich hatte mir gedacht den Grabber-Thread mit einer niedrigen Priorität durchlaufen zu lassen und den Bildverarbeitungs-Thread schlafen zu lassen, bis 32 frames zusammen gekommen sind. Danach wollte ich den Bildverarbeitungs-Thread mit hoher Priorität seinen Job machen lassen. Ist das so am besten, oder gibt es bessere wege? Habe mal gehört das sleep() nicht wirklich toll ist für thread programmierung...
Das komische ist wenn ich meinen Threads prioritäten zuweise (THREAD_BASE_PRIORITY_MAX und THREAD_BASE_PRIORITY_IDLE) und sie ne Schleife zählen lasse ist der mit der höheren Priorität nur minimal schneller als der mit der niedrigeren... ist das normal?
Und noch eine Frage, kann man Windows 7 so einstellen, dass es so wenig wie möglich rssourcen in anspruch nimmet und den grossteil der CPU für mein Programm zur verfügung stellt? Ich möchte windows während mein Programm läuft eigentlich gar nicht nutzennutzen.