Hallo zusammen,
ich habe meinen Festplattenrekorder über chinch (Audio und Video) mit
meinem AV-Receiver verbunden. Kennt jemand eine Möglichkeit, wie ich die
AV-Signale synchron um ca. 0,4 Sekunden verzögern kann? Die Qualität
sollte selbstverständlich nicht darunter leiden!
Vielen Dank schonmal für eure Antworten
Gruß
Tach Simon!
Eine sehr seltsame Frage hast Du da!?
Die Qualität wird wohl darunter leiden, weil du die Signale ja irgendwie
zwischenspeichern musst, und das geht am einfachsten digital.
Mir fällt da gerade was ein: Wenn mann ein Videoband nimmt, das ganze
mit 10-20cm im Durchmesser zu einem Ring bastelt und 2 Abnehmer hat kann
der eine schreiben und der andere lesen. Mit einer abgestimmten Bewegung
des Bandes könnte man die 0,4s hinbekommen. Analog speichern und so auch
kaum Verluste.
Eins interressiert mich aber seit ich Dein Betreff gelesen hab:
Warum willst du ein AV-Signal verzögern?
Gruß Steven
! Nicht allzu ernst gemeint !
Vielleicht will er einem Kunden in einem Parallelbetrieb analog/digital
die Vorzüge einer digitalen Bildübertragung zeigen.
Einer der größten nachteile der digitalen Übertragung ist aber die
Zeitverzögerung. Wenn er jetzt künstlich das analoge Signal verzögert
merkt keiner was von dem Nachteil.
Jetzt interessiert mich aber nat. auch der richtige Grund !
guude
ts
Hallo,
@klodeckel: dann aber bitte einstellbare Verzögerung/Beschleunigung im
Bereich -2s bis +2s mit automatischem akustischen Abgleich...
Ich will das Tor zur gleichen Zeit sehen, wie mein Hofnachbar!!!
Sch**** digitale Fernsehwelt. :-(
Gruß aus Berlin
Michael
Vielen Dank für eure Antworten.
Der Grund: Ich habe mit einem RGB-Steuergerät und einer Software eine
Art Ambilight gebastelt. Der Festplattenrekorder gibt ein AV-Signal via
Chinch an einen AV-Receiver, der gibt das Bild an mein TV-Gerät weiter.
Parallel zu diesem Signal schickt der Festplattenrekorder ein
S-Videosignal zu einer USB-TV-Karte, die die Bildinformation an die
Ambilight-Software weitergibt. Die Verarbeitung und Übertragung an den
RGB-Controller dauern etwa 0,4 Sekunden. Und die gilt es zu
kompensieren.
Kann man so etwas selber bauen? Controller mit etwas größerem Speicher?
Bin für alle Ideen dankbar.
Gruß Simon
Sehr interessante Idee. Hab das mal bei wikipedia nachgelesen. Über
Eimerketten kommt man sehr schnell zu Verzögerungsleitungen. Könnte das
funktionieren? Kennt sich da jemand aus? Ausser den Infos bei Wiki hab
ich nämlich nichts gefunden. Für eine 400ms-Verzögerung sollte es doch
reichen???
Link: http://de.wikipedia.org/wiki/Verz%C3%B6gerungsleitung
Du hast vieleicht ne lange Leitung, aber die reicht dir trotzdem nicht
für eine Zeit von 0,4s. Du weist gar nicht wie lange 0,4s sind!!!
>>Die Verzögerungszeit ergibt sich dabei aus dem Quotienten aus Länge>>und Wellengeschwindigkeit.
Du kannst es ja mal probieren ne Verzögerungsstrecke zu basteln die für
0,4s reicht.
Gruß Steven
Wenn man annimmt, dass ein Signal sich mit 2/3 der Lichtgeschwindigkeit
in einem Kupferkabel ausbreitet.
Braucht man für 0.4s ein Kabel der Länge: 80.000km
Nur mal so ganz grob abgeschätzt :-D
Den Platz hätte ich. Die Kabel gibts beim großen C. Aber wer hilft mir
wickeln???
Im Ernst: Ich mach mich jetzt mal dran, die exakte Differenz zu messen.
Gut Möglich, dass sie etwas unter 0,4 s liegt. Wie sieht es denn mit
einem FIFO-Speicher aus. Kann man sowas mit einem mikrocontroller und
evtl. einer sd-karte realisieren?
digitalisiertes PAL/NTSC Video hat ne Bandbreite von zwischen 200 und
300MBit/s (BT.656). Kannst ja mal überlegen ob dir der Speicher eines
Mikrocontrollers reicht bzw. schnell genug ist.
Ich hatte gehofft ein bisschen Unterstützung zu bekommen. Da ich kein
Fachmann bin, kann ich mir nicht so recht vorstellen, wie aufwendig das
Ganze ist.
Wie müsste ein Controller aufgebaut sein, um ein vollstäniges
PAL/NTSC-Signal abzuspeichern und ca. 300 bis 400 ms später wieder
auszugeben. Kann man einen Controller als FIFO-Speicher nutzen? Wie
gesagt, wenn nötig auch mit externem Speicher.
Ich möchte nicht, dass sich hier jemand eine halbe Stunde hinsetzt und
einen Plan entwickelt. Ich würde mich einfach nur über eine grobe
Übersicht freuen, wie das Ganze nachher aussehen könnte. Dann kann ich
mich mit den Details beschäftigen. Aber im Moment hab ich noch keine
Vorstellung. Danke schonmal für eure Hilfe.
Hatte da noch eine Idee: wie lange glaubt ihr braucht ein AV-Signal,
wenn es per Funk übertragen wird. Wären da eventuell 400ms rauszuholen?
Hat jemand so ein Gerät? Wie heissen die genau. Hab unter av-transmitter
gesucht, aber nicht viel gefunden.
Bei der Funkübertragung verhält es sich ähnlich wie bei der Übertragung
im Kabel.
M. G. wrote:
> Wenn man annimmt, dass ein Signal sich mit 2/3 der Lichtgeschwindigkeit> in einem Kupferkabel ausbreitet.> Braucht man für 0.4s ein Kabel der Länge: 80.000km> Nur mal so ganz grob abgeschätzt :-D
Gruß,
Magnetus
Pack das Problem doch mal von der anderen Seite her an: Die
Signalauswertung für das Pseudo-Ambilight muss einfach deutlich
schneller werden. 0,4 Sekunden für die Auswertung sind einfach zu viel.
Gruß,
Magnetus
Wie soll es schneller gehen? Die Software ist gut programmiert, die
übertragung läuft über rs232 und der controller.... naja. daran kann man
nichts ändern. Ich wüsste nicht, wie ich das beschleunigen könnte.
An sich funktioniert es ja auch makellos. die qualität ist überraschend
gut. nur die zeitverzögerung stört...
habs mir nochmal genau angeschaut. (leider hab ich noch keine kamera da,
um die exakten zeiten zu messen). Die Software funktioniert in echtzeit
(verglichen mit dem Eingangsignal der TV-Karte). Allerdings kommt das
erst später an. Da liegt die Verzögerung. Und da kann man wohl nichts
dran ändern. Die Verzögerung von PC zum Steuergerät sind kaum
wahrnehmbar (wohl unter 50ms)
Also bleibt nur die Verzögerung des AV-Signals...
>leider hab ich noch keine kamera da,>um die exakten zeiten zu messen
Geht eh nicht. Kameras haben unvorhersafbare Delays zwischen Bild und
Ton. Das schwankt auch.
Vergiss das mal mit dem Verzögern. Das Band was in einer Schleife läuft
ist die einzige Lösung die bei Deinem Kentnissstand in Frage kommt.
Vergiss einfach alles andere. Oder mache das Ambilight direkt vom Bild
abhängig. Also mit Farbsensor/ Kamera!
Das mit dem Video-Band sollte eigendlich ein Witz sein.
Mach das ganze doch analog oder mit Mikrocontroller.
Hier reichlich Links dazu:
http://www.hifi-forum.de/viewthread-71-3178-2.html
Es gibts auch noch ne 1. Seite.
Dein Problem ist zum größten Teil, so glaube ich, die TV-Karte.
Kannst ja mal rausfinden, an was es liegt. Wenn wirklich die TV-Karte
ist, vieleicht mal austauschen...
Aber ich will Ergebnisse sehen!!! ;-)
Gruß Steven
Hallo,
Problem ist sicher die TV-Karte und deren Treiber.
Damit nichts ruckelt wird da mit Sicherheit auf PC-Seite
zwischengespeichert um Reserve zu schaffen.
Gute alte BT878-Karte (Hauppauge WinTV o.ä.) nehmen, selber als RAW
grabben, dann gibt es da keine Verzögerung.
Der BT878 legt das Bild per DMA in einen angegeben Speicherbereich. Da
kann man sich dann mit den Bilddaten austoben. Wenn man den BT878 noch
passend programmiert, z.B. kleinere Auflösung und nur ein Halbbild
bestellen, ein zur Bearbeitung passendes RAW-Format usw. spart das
sicher auch Rechenaufwand.
Den BT878 hab ich nur als Beispiel genommen, weil der überschaubar ist
und ich da vor Jahren mal einen Treiber unter Amithlon für AmigaOS
geschriben hatte.
Gruß aus Berlin
Michael
Danke für die Antworten!
@ Timbo: wenn ich nur die Bilder (ohne Ton) zum messen nehme, sollte es
funktionieren. Die Software stellt das Bild mit der enstprechenden Farbe
für die LEDs dar. wenn ich den PC neben den Fernseher stelle und Frame
für Frame weitergehe, dann kann ich ja die Differenz anhand der
Einzelbilder der Kamera errechnen...?!
@Steven und Magnus: Damit habe ich mich schon sehr intensiv beschäftigt.
Ich kenne keine HArdwarelösung die wirklich funktioniert. Es gibt viele
Lösungsansätze. Aber es tauchen immer Probleme auf.
@Michael U.: Das wäre noch einen Versuch wert. Ich habe die Hauppauge
WINTV-USB. Welchen Treiber müsste ich installieren, damit die Daten
nicht mehr zwischengespeichert werden? Gibt es da fertige Programme?
Gruß
Mal eine andere Lösung:
Über die TV Karte hast du Bild/Ton die du analysierst ja schon im
Computer. Jetzt könntest du sie ja über dessen TV Ausgang wieder
ausgeben.
Dadurch hast du in jedem Fall schon mal die Verzögerung durchs einlesen
in den PC gutgemacht. Wenn du jetzt noch eine eigene Verzögerung
brauchst, könntest du ein PC Softwaremodul (z.B. für den DirectShow
Filtergraph), das eine Verzögerung zwwischen Ein- und Ausgabe
realisiert.
Hallo,
die USB-Versionen werden da schon deshalb ausfallen, weil die Daten mit
Sicherheit nicht brauchbar ankommen. RGB RAW in voller Auflösung sind
letztlich run 31MB/s oder rund 248MBit/s, da wird also mit Sicherheit
gespart und vorverarbeitet wegen USB.
Die PCI-Version mit den alten Chips hat direkt DMA vom PCI ins Ram
gemacht, da war die Bandbreite da.
Über einen üblichen Windowstreiber wird es da wohl immer Probleme geben,
der ist dafür sicher nicht geschrieben worden.
Bei einer PCI-Version müßte man vermutlich nach dem Initialisieren der
Karte durch den Treiber nur noch irgendwie rausfinden, welchen
Speicherbereich der DMA zugewiesen wurde und könnte dann vermutlich
hintenrum die Daten direkt von dort zu Verarbeitung lesen.
Das wäre das eine Problem, das andere ist vermutlich, daß man so nicht
ohne weiteres rausfindet, wie der Windowstreiber den BT787
initialisiert. Man kann dem viel Versionen beibringen, wie er die Datem
in den Ram schicken soll, einfach deshalb, weil man so hinterher weniger
Aufwand hat, den Kram darzustellen.
Man konnte so z.B. das Bild direkt per DMA in den Overlayspeicher der
Grafikkarte schaufeln und anzeigen.
Das ging ja schließlich schon mit einem schnellen 486er...
Also alte PCI-Karte mit BT878 rein (der ist einfach bekannt genug und
Beispielsourcen für die Ansteuerung findet man in alten Linux-Archiven,
Dateblatt in Netz), einen eigenen minimalen PCI-Treiber für den Chip
schreiben, der diesen nur passen initalisiert (passiert teilweise über
die Register des BT878 und evtl. teilweise über Software-I2C mit 2
GPIO-Pins des BT878).
Wenn der einmal läuft, schafelt der ganz alleine die Bilder in den
zugewiesenen Speicherbereich..
Ich weiß nicht, wie aufwändig Deine Auswertung ist, wäre vurmutlich eine
(recht nutzlose... ;))) Recycling-Geschichte für hinterbliebene Pentium
200MMX oder P-II oder so.
Wäre vermutlich auch nett für irgendwelche FPGA/DPS-Freaks, wenn PCI-Bus
da machbar ist. Für Video-In braucht es nut den BT878 mit wenig drumrum,
dann wären die Bilddaten im Ram für den DSP zu Auswertung.
Gruß aus Berlin
Michael
Vielen Dank für deine ausführliche Antwort, Michael. Leider habe ich
nicht die Möglichkeit eine P>CI-Karte einzubauen (Laptop). Schade.
Die Idee vom Mathhias klingt eigentlich am einfachsten. Die Frage ist
nur, ob das funktioniert. Welche TV-Karte kann einlesen und ausgeben
gleichzeitig, ohne das Signal durchzuschleifen? Ich denke mal, dass die
Signale immer durchgeschleift werden... Aber wie ist das mit einer
zweiten TV-Karte? Könnte das funktionieren? Kann ich zwei USB-TV-Karten
parallel laufen lassen? Die eine liesst ein, die andere gibt aus? Das
Problem ist nur, wie übertrage ich die Daten an die zweite Karte?
Gruß