PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sensor und Kameradaten zu einem Datenstrom zusammenfassen?



GeoBot
07.07.2008, 16:28
Hallo

Kennt jemand hier im Forum eine elegante Möglichkeit digitale
Bildreihen (Video), zusammen mit Telemetriedaten in einem
File(-format) zeitlich synchron zu speichen?

Sprich ich habe eine Kamera die hinter einander Bilder je nach
Auflösung mit 1-6 fps aufnimmt. Dazu einen Kompass und einen
Neigungssensor, die mir zusammen die Blickrichtung der Kamera
angeben. Später kommt vielleicht noch eine GPS-Position hinzu.

Diese sollen in einer Datei (auf einem Stream) gemeinsam ge-
speichert werden.

Toll wäre ein Videoformat, welches sich trotz der Zusatzdaten
noch in einem Viewer zeigen ließe.

Eine direkte Einblendung der Daten (OSD?) in das Bild ist eine
Möglichkeit. Jedoch verliert man Bildinformationen und wenn man
später die Daten auswerten will, muß man erst ein OCR über das
Bild laufen lassen.

Beim Analogfernsehn gibt es ja so etwas wie Videotext. Vielleicht
kann man das nutzen?

Möglicherweise sollte noch eine zweite Kamara die Bildreihe zu
Stereobildpaaren erweiteren.

Ich habe vor die Kameras (Philips 350/µC Cam) und die Sensoren
zu einem Modul zusammenzufassen. Die Kameras und die Sensoren
werden von einem schnellen Prozessor abgefragt und die
Bilder/Messwerte werden zusammengefasst vorverarbeitet und
komprimiert kabelgebunden an einen PC übertragen.


Grüße GeoBot

PS: Ich hoffe ich habe mich in der Forenwahl nicht ganz vertan.

BastelWastel
07.07.2008, 21:59
Wenn du das Bild eh digital im Prozessor vorliegen hast bietet sich vllt Steganographie (http://de.wikipedia.org/wiki/Steganographie#Modifikation_einer_Bilddatei) an.
Wenn es das Videoformat zuläßt dass einzelne Pixel modifiziert werden könntest du jedem Frame alle Informationen wie Datum, Zeit, Telemetrie, I/O's usw. mitgeben ohne dass es im Bild auffällt..erst die Software die die Frames auswertet generiert wieder die Daten.
Für Bilder ist das relativ leicht, mit wieviel Aufwand das bei kodierten/komprimierten Streams verbunden wäre ist fraglich.

Felix G
08.07.2008, 06:58
Hmm, es gibt doch bei Videos bestimmt auch Metadaten analog zu z.B. ID3-Tags bei mp3-Dateien oder EXIF-Informationen bei Bildern...

das mal als Anhaltspunkt wonach man noch suchen könnte

BastelWastel
08.07.2008, 11:30
Die werden meines Wissens aber fuer das ganze Video gesetzt, nicht fuer jeden Frame.
Bei MP3 hast du auch nicht jede Sekunde nen anderen ID3 Tag ;)

GeoBot
08.07.2008, 14:20
Hallo BastelWastel
Hallo Felix G

Erst einmal vielen Dank für die Antworten.

Hier ein Link zu einem System das als Beispiel her halten kann.

http://www.itronx.com/pdf/Xcitex_Midas_2.0.pdf

In diese Richtung soll es prinzipiell gehen. Natürlich in der Hobby-
Gewichts.-Preisklasse.

Das mit der Kodierung der Zusatzinformationen in den Bildpixeln
ist sicher eine Möglichkeit. Es verändert jedoch die Bildinformation
und ist anfällig für einen Datenverlusst beim Bearbeiten/Konvertiern
des Videostreams.

Meine Kenntnisse bezüglich Video und Audio am PC beschränkt sich
momentan noch auf das Abspielen von DVDs und YOU-Tube Videos.

Ich hab mir jetzt ein paar oberflächliche Artikel zum Thema Video
angesehen.

Wenn ich das Richtig verstanden habe suche ich nach einem
passenden Container-Format. Die Container-Datei enthält dann
verschiedene Streams, Bild und Tonspuren in der Analogtechnik, die
zeitlich korreliert sind. Also man hat für jede Spur einen Codec und
einen Multiplexer der die Spuren in einer Datei zusammen bringt.

Momentan stelle ich mir die Frage ob es nicht bereits Standards gibt,
die neben Bild und Ton auch noch "Datenspuren" definieren. Optimal
wäre es auch wenn es schon einen entsprechenden Multiplexer als
Referenz gäbe. (Mann darf ja mal träumen) :-#

Das mit den Tags werde ich mir auch noch mal anschauen. Möglicher-
weise ist es zweckmäßig dort zu hinterlegen, welche Daten in welcher
Kodierung dort in welchen Stream gespeichert sind.

Mal schauen ob sich die nächten Wochen noch etwas an Infos ergibt.

Parallel werde ich mal schauen, was ich aus einer Philips 350/µC Cam
an Bildern heraus holen kann und welche Prozessorleistung ich
mindestens dazu brauche.

Ich "befürchte" es muß schon ein nicht gerade kleiner DSP werden wird . ](*,)

Grüße GeoBot

Thoralf
10.07.2008, 12:28
Geobot, warum nimmst du nicht die einfachste Lösung und modulierst die Meßdaten in die Vertikalaustastlücke des Bildsignals, allerdings nur so stark, daß die Austastlücke als solches noch funktioniert. Nach jedem Halbbild kommt eine, liegt also aller 1/50 s vor, was schnell genug sein sollte.
Mit einem LM1881 läßt die sich leicht ermitteln.

Empfängerseitig wird wieder über den LM1881 die Lücke ermittelt und während dieses Zeitraums wieder das Signal demoduliert.

Auf einem Viewer oder einem Kontrollmonitor sieht man die Austatslücke eh nicht (deshalb heißt sie ja auch so) und du kannst das Videobild je nach Bedarf weiter verarbeiten.

Das Datensignal sollte in jedem Fall mit Fehlersicherungscodes übertragen werden, da die Videosignale analog sind und bei Schwund somit auch die Datenübertragung gestört wird.

Mit allen irgendwelchen digitalen Bildübetragungsverfahren würde ich garnicht erst anfangen. Erstens ist der Aufwand groß und zweitens gewinnt man damit nicht viel. außerdem brauchen vollformatige digitale Videobilder reichlich Bandbreite. Deshalb muß man dann unbedingt komprimieren.

Will man unbedingt alles digital machen, nimmt man einfacher eine Netzwerkkamera und überträgt die Daten einfach separat übers Netz.

morob
12.07.2008, 21:30
Hallo,

schon mal darüber nachgedacht, die Daten in den Audiokanal zu legen per FSK Modem, bei Stereo müßtest Du sogar zwei Kanäle unterbringen.

Gruß

wkrug
13.07.2008, 09:42
Die Idee von "morob" mit den Audiokanälen halte ich schon mal für sehr gut.
Wenn Du natürlich alle Audiokanäle anderweitig nutzt wird das nicht gehen.

Wir reden hier immer über "Video".

Um welches Format geht es den hier ?
Sind es FBAS Signale ? - Dann könnte man die Informationen in den nicht sichtbaren Zeilen des Bildes unterbringen ( siehe Videotext ).

Oder geht es um ein digitales Videoformat ? - Dann muss man dort nach Lücken oder nicht benutzten Datenfeldern suchen wo man die Informationen unterbringen kann.

Wir sollten mal zuerst mal die Gegebenheiten klären, dann kann man nach entsprechenden Lösungen suchen. Hast Du schon mal einen Schaltplan deines bisherigen Aufbaues ?

Markus4004
13.07.2008, 12:28
Die bisher genannte Systembeschreibung ist doch:
- digitales Video
- digitale Messdaten
- werden digital an den PC übertragen

Damit liegt alles digital vor, man muss da nichts mehr irgendwo reinmodulieren. Ich würde deswegen das AVI-Format nehmen. Die Messdaten könnte man dann direkt z.B. als unkomprimiertes Audio speichern.

Prinzipiell arbeitet AVI mit verschiedenen Streams und soweit ich das verstanden habe könnte man auch einfach einen extra Messdatenkanal definieren ohne die Audio-Kanäle zu missbrauchen. Ich weiß aber nicht, wie aufwändig das ist; evtl. geht das nicht über die normalen API-Funktionen.

morob
13.07.2008, 14:30
Hallo,

welches Camera, USB vermute ich, verwendest Du?

Du müstest den Audio Strom dann über die Soundkarte einmischen. An die Soundkarte mußt Du dann das FSK Modem hängen.

Gruß

GeoBot
15.07.2008, 13:39
Ein Hallo an alle.

Erst einmal vielen Dank für den Input.

Momentan geht es erst einmal um die Daten als solches, wenn
sie digital im PC vorliegen.

In meiner Naivität dachte ich, daß es da schon Standardformate
und vielleicht passende Bibliotheken gibt.

Wie wie die Daten entstehen oder zum PC kommen ist erst einmal
zweitrangig (zeitlich) aber auch da bin ich schon jetzt für jede Info
dankbar.

Über die letztendlich verwendete Hardware lässt sich noch nichts
sagen,nur über die des ersten Prototypen, da werde ich ein digitales
Kameramodul mit serieller Schnittstelle verwenden.
Sprich eine DC-3840 alias Philips 350/µC Cam.
http://www.ulrichradig.de/home/index.php/projekte/uC-kamera

@ wkrug & Thoralf
Die Sache mit der Austastlücke und den nicht sichtbaren Zeilen werde
ich mir mal von einem befreundeten Fernsehtechniker genau erklären
lassen.

Weiß jemand was mit dem Videotext pasiert wenn man das
Fernsehsignal mit einer Videokarte aufnimmt?

Grüße GeoBot

MeckPommER
15.07.2008, 13:50
da werde ich ein digitales
Kameramodul mit serieller Schnittstelle verwenden.
...
Die Sache mit der Austastlücke und den nicht sichtbaren Zeilen werde
ich mir mal von einem befreundeten Fernsehtechniker genau erklären
lassen.
...
Weiß jemand was mit dem Videotext pasiert wenn man das
Fernsehsignal mit einer Videokarte aufnimmt?

Die Austastlücke hast du nur bei einem analogen TV-Signal. Sie ist also nicht vorhanden bei deinem Kameramodul mit serieller Schnittstelle.

Wenn du Video aufnimmst per TV-Karte, ist der Videotext futsch, da diese nur das sichtbare TV-Bild aufnehmen und nicht das komplette TV-Signal.

Gruß MeckPommER

morob
15.07.2008, 16:26
Hallo,

also das Prinzip mit der Kamera und den Daten per FSK Modem im Audiokanal, habe ich von der Elektor 3/2007. Wir haben es auch mal ausprobiert und es läuft, der Datenstrom darf nur nicht so groß sein.

Gruß

GeoBot
15.07.2008, 18:49
Hallo MeckPommER

Das die Austastlücke und die nicht sichtbaren Zeichen sich
auf ein Analogsignal beziehen ist mir schon klar.

Das der Videotext nicht extrahiert wird ist schade.

Momentan habe ich bei Freunden und Bekannten mal getreut
das ich Kameras suche. Ob das was ich dann später zu Ver-
fügung habe analog oder digital ist wird sich erst noch zeigen.
Auf jeden Fall sollte eine brauchbare Optik dran sein.

Die DC-3840 ist nur für die ersten Versuche gedacht, um
überhaupt mal was in der Hand zuhaben. Meist sind Sponsoren
eher bereit was locker zu machen wenn man schon etwas in
der Hand hat.

@ morob

Das mit der Tonspur ist eine Option die ich mir auf jeden Fall
offen halte. Das Verfahren hat man früher doch auch in Modems
und zum Aufzeichnen von Programmen auf Kasettenrekorder
verwendet?
Es ist also erprobt und sollte auch eine Digitalisierung überleben.

Ich glaube mich errinnen zu können, dass es in den Laborblättern
von ELRAD mal eine Schaltung auf Basis eines PLL-Bausteins ge-
geben hat.

Grüße GeoBot

Thoralf
16.07.2008, 07:42
prinzipiell gibts die 2 Wege Bilder oder Bildfolgen zu übertragen:
- analog
- digital

Nun ist die Frage, wofür man sich entscheidet.
Analog:

- Daten in der Austatstlücke, benötigt eine Schaltung, die die Digitalsignal so einmischt, daß die Austastlücke erhalten bleibt, der Empfänger muß die Digitalsignale noch sicher vom Bildinhalt unterscheiden können (Komparator)
Das Verfahren ist analog dem Videotextverfahren. Da es Videoeingabekarten gibt, die Videotext decodoeren können, würden die Daten die Digitalisierung auch "überleben". Wenn man jetzt die Daten im Videotextformat codiert, sollte der Decodieraufwand gering sein bei einer geeigneten Karte. Programmmodule, die den "Teletext" weiter verarbeiten gibts im Netz.

- Daten in der Tonspur, Modulation in Manchestercodierung, dafür gibts ausreichend Programmbeispiele, je nach verwendeter Hardware (Mikroprozessor)

Digital:
bei Einzelbildern könnte man Daten im Header unterbringen, oft werden dort nicht alle Datenfelder genutzt, so daß sie sich für Daten anbieten (aber geringe Datenrate. Allerdings stören die Daten die meisten Viewer nicht.
Bei Bildstreams (Videosequenzen) könnte man die Daten problemlos in der Tonspur unterbringen. Da die ja sowieso digital ist, ist es egal, ob dort Meßdaten stehen oder was auch immer. Ein viewer trennt die von Video ab und stellt das Video problemlos dar, da die Daten ja für ihn "Ton" sind.

Man muß auf geeignete Weise sich einen Videostream mit Daten als Ton basteln und die üblichen Codecs einsetzen. Ob es dafür Programme oder Module gibt weiß ich nicht, würde mich aber auch interessieren. Vielleicht hat jemand einen guten Link.

Man könnte ja vielleicht hier eine quasi Roboternetzstandardlösung entwickeln, die so glaube ich, viele gut gebrauchen könnten

XBert
16.07.2008, 13:58
Hi,

Meine Idee wäre:
Du könntest wenn deine Sensordaten Zahlenwerte sind (was ich mal annehme),
im Bild in einer Zeile hinzufügen (am Ende is es leichter) , danach die einzelnen Ziffern in Farbwerte kodieren (z.B.: schwarz=9,weiß=0)
und eine andere noch nicht verwendete Farbe als Trennzeichen zwischen den einzelnen Daten setzen.
Das sollte nicht allzu schwierig sein und auch nicht viel Bandbreite verbrauchen.
Auch ist dabei egal ob das ganze digital oder analog ist wenn die Farben sich genug unterscheiden

Mfg XBert

jeffrey
16.07.2008, 14:18
Hi,

Meine Idee wäre:
Du könntest wenn deine Sensordaten Zahlenwerte sind (was ich mal annehme),
im Bild in einer Zeile hinzufügen (am Ende is es leichter) , danach die einzelnen Ziffern in Farbwerte kodieren (z.B.: schwarz=9,weiß=0)
und eine andere noch nicht verwendete Farbe als Trennzeichen zwischen den einzelnen Daten setzen.
Das sollte nicht allzu schwierig sein und auch nicht viel Bandbreite verbrauchen.
Auch ist dabei egal ob das ganze digital oder analog ist wenn die Farben sich genug unterscheiden

Mfg XBert
hallo,
sowas ähnliches wollte ich gerade auch vorschlagen. du hattest ja selber schon die idee ein osd zu verwenden. allerdings würde ich das nicht ins bil machen, wg dem datenverlust, sondern das bild einfach entsprechend vergrößern und unterhalb oder an der seite anfügen, dann sieht man direkt beim schauien des videos die entsprechenden daten.
die codiette zeiel kann man ja zusätzlich machen, um die daten wieder auf dem pc zu gewinnen, ist sicher leichter auszuwerten, als ne schrifterkennung auf dem osd durchzuführen.
mfg jeffrey

XBert
16.07.2008, 14:21
Ich hab nie gesagt das über das Bild soll.
Ich hab mich ungünstig ausgedrückt, aber ich meinte natürlich in eine neue Zeile/Spalte
wobei sich eine Zeile am Ende des Bildes anbietet (in C++ leicht mit Pointerarithmetik zu realisieren).

MFG

GeoBot
18.07.2008, 12:41
Hallo


Man muß auf geeignete Weise sich einen Videostream
mit Daten als Ton basteln und die üblichen Codecs einsetzen.
Ob es dafür Programme oder Module gibt weiß ich nicht, würde
mich aber auch interessieren. Vielleicht hat jemand einen guten
Link.

Man könnte ja vielleicht hier eine quasi Roboternetzstandardlösung
entwickeln, die so glaube ich, viele gut gebrauchen könnten

Ich bin gestern abend noch über ein Containerformat und über
ein "Multimediaframework" gestolpert, die mir recht vielver-
sprechend erscheinen.

http://www.matroska.org/
http://www.gstreamer.net/

Nach einem ersten Überfliegen der Dokus meine ich, es sollte
möglich sein, damit recht einfach zu einem Ergebniss zu kommen.

Bei GStreamer gibt es wohl sogar eine Bibliothek gst-sci die Daten
als Stream hinzufügt. Leider fürt der Link zu einem Fehler und eine
Doku für das Modul hab ich noch nicht gefunden.

Am Containerformat scheint die große Anzahl an Möglichkeiten
zusätzliche Daten darin unterzubringen, recht interesant zu sein.

Grüße GeoBot

PS : Jeder weitere Hinweis ist immer noch willkommen.