LabVIEWForum.de
Bildverlust bei avi über GIGe - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW Vision (/Forum-LabVIEW-Vision)
+---- Thema: Bildverlust bei avi über GIGe (/Thread-Bildverlust-bei-avi-ueber-GIGe)

Seiten: 1 2


Bildverlust bei avi über GIGe - Hummingbird - 09.10.2012 16:41

Hallo liebe LVler,

ich würde gerne mit meiner GIGe Kamera *.avis aufnehmen und gleichzeitig überprüfen, ob ich Verlust an Bildern habe. Ich bin nun so vorgegangen, dass ich das Beispiel "grab and detect skipped buffers" dahingehend adaptiert habe, dass ich gleichzeitig ein *.avi aufzeichne. Problem ist nur, dass ich schon bei geringen Bildraten, Bilder verliere. Kann mir jemand einen clevereren Weg sagen, wie man das realisieren kann, oder hat jemand ein Beispiel? Ich habe Dinge über "Consumer/Producer"-Strukturen gelesen, oder über die Möglichkeit die Bilder erst in einer Matrix abzulegen und sie am Ende der Aufnahme erst in *.avi zu konvertieren.

Ein stream der Bilder (LV) und auch das Aufnehmen von *.avis (Fremdsoftware) geht, d.h. für mich, dass es nicht an der Hardware liegt.

Hat jemand Rat? Ich wäre zu tiefst verbunden.

Liebe Grüße

Philipp


RE: Bildverlust bei avi über GIGe - Kasi - 10.10.2012 07:51

Consumer/Producer ist da auf jeden Fall eine gute Idee, damit die Abholung der Bilder nicht auf die Prozessierung warten muss.
Ich hab das Template, das du unter "new..." finden kannst, mal mit ein paar Modifikationen (hellblau) für deine Anwendung kommentiert.

Insgesamt wird das dann bei längerer Laufzeit zu einer Auffüllung der Queue führen. Wenn du das Programm dann also über den "Stop"-Button stoppst, sollte es noch eine ganze Weile weiterlaufen, bis es die Queue komplett abgearbeitet hat wird die Queue-Referenz gelöscht und somit auf der Consumer-Loop unten abgebrochen. Dein Avi enthält dann nur die Bilder, die bis zum Abbruch prozessiert werden konnten, der Rest geht verloren (oder kann noch nachträglich über die "remaining elements" der Release Queue Function oben rechts prozessiert werden).


RE: Bildverlust bei avi über GIGe - BNT - 10.10.2012 08:03

Hi Philipp
Mal eine Frage:
Hast Du die Kamera auch wirklich über eine GBit-Verbindung angeschlossen? Oder nur über ein 100MBit Leitung?

Falls letzteres der Fall sein sollte, solltest Du in den Kameraeigenschaften im MAX die maximale nutzbare Bandbeite einschänken. (Wie die Eigenschaft genau heisst, wies ich jetzt nicht auswendig. Du wirst es schon finden.) Damit kannst Du den Verlust von Daten verhindern, solange die erforderliche Bildrate und -größe das erlaubt.

Gruß Holger


RE: Bildverlust bei avi über GIGe - Hummingbird - 10.10.2012 08:53

@Kasi

Vielen dank für Deinen Tip. Ich werde mich daran versuchen. Wenn ich also einen genügend langen Nachlauf garantieren kann, dann sollte ich auf dem *.avi alles an Information finden. Mein Problem mit der Queue ist, dass die doch gehalten werden muss. Das wird dann im RAM geschehen, wenn der jetzt aber limitiert ist, dann begrenzt das automatisch meine Länge des *.avis, oder? Da ich im Moment mit der 32bit Version arbeite, komme ich dann nicht so weit..

@BNT

Vielen Dank, dass Du Deine Bedenken äußerst. Ich verwende eine mitgelieferte Schnittstelle, die zwar an PCIe 1.0 angeschlossen ist, jedoch trotzdem in der Lage sein sollte die Daten raus zu schaufeln. Wie gesagt, mit der mitgelieferten Software geht es ja ohne Verlust. Die würde ich aber nur gerne umgehen, da der restliche Aufbau schon unter LV läuft.

Kann es an der 32bit Version von LV liegen? Wie sieht es aus mit Vision unter 64 bit? Wie sieht es allgemein mit LV 64 bit aus? Manche Pakete gibt es unter 32 und manche auch unter 64. Ich verwende teilweise auch noch *.vis aus der openg library. Kann es da zu Konflikten kommen?

Liebe Grüße und danke für eure Unterstützung

Philipp


RE: Bildverlust bei avi über GIGe - Kasi - 10.10.2012 09:03

Vielleicht kann deine AVI-Software ja auch ein bisschen mehr, als immer nur Einzelbilder hinzufügen? Dann könntest du im Consumer immer die komplette Queue leerräumen (-> flush queue) und die komplette angestaute Bildserie zum Avi hinzufügen, ohne dass sich die Queue mit der Zeit immer weiter auffüllt.


RE: Bildverlust bei avi über GIGe - Hummingbird - 10.10.2012 09:18

Meine avi-Software kann mit großer Wahrscheinlichkeit mehr. Wie meinst Du das, dass ich die Queue leerräumen kann? Das doch nicht im Prozess des Aufnehmens, oder? Mit welcher Geschwindigkeit wird denn aus der Queue geschrieben, oder läuft die Queue voll, bis ich beende und dann wird erst geschrieben?

Danke!


RE: Bildverlust bei avi über GIGe - Kasi - 10.10.2012 10:00

Richtig, das hat nichts mit dem Aufnehmen zu tun.
Die Queue wird im Producer-Loop oben mit jeden Schleifendurchlauf mit einem weiteren Element gefüttert. Die Geschwindigkeit, in der das geschieht, wird allein durch das "Kamera auslesen"-vi bestimmt (das "wait" im Template würde ich dann rausschmeißen).

Statt dann im Consumer-Loop (unten) einzeln die Elemente aus dem Queue-Ende zu entnehmen, kannst du auch einfach alle vorhandenen Elemente aus der Queue in einem Schleifendurchlauf rausnehmen. Dem Producer-Loop ist das egal, der schreibt weiter seine Elemente in die (dann kurzfristig komplett leere) Queue.

Alles klar? Nein? Warte, ich verdeutliche es nochmal in einem Bild Happy


RE: Bildverlust bei avi über GIGe - Hummingbird - 10.10.2012 10:31

Big Grin, das Bild is der Hit!

Ich finde das Template nichtBlink Habe zwar die new Kategorie entdecken können(LV2009/2010/2011), doch producer/consumer is da nicht zu finden.


RE: Bildverlust bei avi über GIGe - Kasi - 10.10.2012 11:33

Ja, das ist etwas tiefer in der Hierarchie versteckt, entschuldige den knappen Hinweis:
File -> New.. -> From Template -> Framworks -> Design Patterns -> Prod/Cons Design Pattern (Data)

Oder du speicherst das von mir im alten Beitrag angehängte Snippet einfach auf deiner Festplatte und ziehst es per Drag-n-Drop in dein Blockdiagramm.


RE: Bildverlust bei avi über GIGe - Hummingbird - 10.10.2012 12:27

Ok, cool. Dann mach ich mcih mal dran und versuche mein Glück. Ich geb Bescheid, was mein System dann sagt.

Liebe Grüße

Philipp