Hallo Leudle,
ich würde gerne mehrere FBAS-Signale (PAL) aus semiprofessionellem
und/oder Consumer-Equipment (also ohne Genlock) miteinander
synchronisieren, und das ganze möglichst in Echtzeit. 2, 3 Frames Delay
wären kein Problem, aber eine PC-basierte Lösung ist viel zu langsam.
Ich hab mich im Bereich der Elektronik bisher auf ein paar
AVR-Spielereien beschränkt; dass es damit wohl nicht funktionieren wird,
ist mir klar ;-) womit denn eher? Schneller Controller mit viel internem
RAM (natürlich zu möglichst bastlerfreundlichen Konditionen)? Oder sind
die Datenmengen so groß, dass um externen Speicher nix drumrumführt?
Oder kann ich das ganze gleich an den Nagel hängen, weil die
Bauteilkosten die eines Fertiggeräts im Wert von mehreren Tausend Euro
schon übersteigen würden? Ich hoffe mal nicht.
Gruß,
nnnyms
Das Zauberwort heisst TBC (Time Base Corrector).
Sowas findet man in Bildmischern.
Die Frage ist, wieviele Quellen du mischen/synchronisieren willst.
Oder: Was willst du nach dem Synchronisieren mit den Signalen machen?
Mit einem AVR kommst du nicht weit. Sowas erfordert einen schnellen
AD-Wandler, eine gewisse Menge RAM und einen entsprechend schnellen
DA-Wandler.
Hallo,
einen mehrkanaligen TBC (Time Base Corrector) zu entwickeln ist
definitiv keine ganz einfache Aufgabe!
Um ein derartiges Gerät zu konstruieren, brauchst Du fundierte
Kenntnisse in Digitaler Signalverarbeitung und Videotechnik...
Hardwareseitig würde ich das mit einem FPGA machen, was um die benötigte
Peripherie ergänzt wird:
Pro zu synchronisierender FBAS-Quelle brauchst Du einen digitalen
Videodecoder (wie z.B. SAA7115) für den FBAS-Eingang und einen
Video-Encoder für den FBAS-Ausgang (z.B. SAA7129).
Die Decoder beinhalten bereits ADCs Line-Locked-Clock PLL und digitale
Decodierung des FBAS-Signals mit Kammmfilter usw...
Geliefert wird ein digitaler Datenstrom nach ITU-R656.
Das ist ein 8-Bit Datenstrom mit 27MHz Taktrate, Farbe und Luminanz
werden gemultiplext übertragen (Cb, Y, Cr, Y, ...) Synchronworte
kennzeichnen Zeilenanfang und -Ende sowie das aktive Bildfenster.
Das gleiche Format bekommen die Video-Encoder auch geliefert.
Die FPGA-Schaltung dazwischen muß für jedes zu synchronisierende Signal
einen Vollbildspeicher (+ etwas Zugabe) verwalten in den die Bilddaten
mit der Eingangsseite synchronisiert eingeschrieben werden.
Das Auslesen der Bilddaten erfolgt über alle Bildspeicher synchron mit
einem Referenztakt (kann ein Takt von einem der Videodecoder sein,
dessen Eingang damit zum Referenzeingang definiert wird - oder ein
fester 27MHz Quarzoszillator). Damit liegen alle Ausgänge mit gleicher
Phasenlage vor.
Für jeden Bildspeicher muß eine entsprechende Schreib-
/Lesepointer-Verwaltung realiert werden, die dafür sorgt, daß ggf. (bei
zu schnellem Eingangssignal) ein Eingangsbild übersprungen wird oder
(bei zu langsamem Eingangssignal) ein Bild zweimal ausgelesen wird.
Die ausgelesenen Daten werden jetzt für jeden Ausgang einem
Video-Encoder zugeführt, der daraus wieder ein PAL oder Secam oder
NTSC-Signal moduliert.
Die Videodecoder und Encoder müssen via I2C-Bus konfiguriert werden, das
kann ein Microkontroller übernehmen, der über hinreichend viele
I2C-Interfaces verfügt. (je 2 Decoder und Encoder lassen sich an einem
Interface betreiben, da zwei verschiedene Slaveadressen konfiguriert
werden können)
Als Bildspeicher hängt man am einfachsten SDRAM in hinreichender
Bitbreite ans FPGA, diese richtet sich nach dem erforderlichen
Speicherdurchsatz und dem Speichertakt:
Pro Kanal wird 2*27MByte/s Datendurchsatz benötigt.
Das RAM benötigt einen festen Takt von z.B. 150 MHz, den
SDRAM-Controller baut man im FPGA am besten so auf, daß ein fester
Zyklus abläuft, der definierte Timeslots für jeden Kanal zum Lesen und
Schreiben vorsieht. Darüber ist dann auch der Speicher-Refresh
gewährleistet.
Etwas Hirnschmalz muß man noch in die Eingangs- und Ausgangspuffer
stecken, da hier die Taktumsetzung vom Videotakt auf den Speichertakt
stattfinden muß. Hier bietet sich die Verwendung der FPGA-internen
Blockrams als FIFO-Speicher an, eine Ablaufsteuerung sorgt für jeden
Puffer durch Transferanmeldungen am SDRASM-Controller dafür, daß das
Fifo weder unter- noch überläuft.
Wenn man als Speichertakt z.B. 108MHz wählt (per DCM im FPGA durch
Vervierfachen des 27MHz Ausgangs-Quarztaktes erzeugt), kann man das
Ausgangstiming vereinfachen, da der Ausgangstakt synchron zum
Speichertakt läuft.
...
Wie schon erwähnt, so ganz einfach ist das nicht zu realisieren, aber
mit der nötigen Erfahrung durchaus machbar.
Die Leiterplatte für so ein Projekt wird allerdings auch eher ein 6-fach
Multilayer werden.
Gruß,
Thorsten
TBC ist mir bekannt. Mein Ziel ist tatsächlich, die Signale zu mischen
(harte Schnitte, mehr muss nicht sein). Zwei Kanäle würden ausreichen,
man kann ja von mehreren Eingängen immer die beiden auf die Bildspeicher
verschalten, die man gerade braucht (also je einen für die aktive und
für die Vorschauebene).
Dass ich mit einem AVR nichts anfangen kann, war mir ja schon klar. Die
"nötige Erfahrung" habe ich sicher nicht, und für dieses Hobbyprojekt in
die FPGA-Entwicklung einzusteigen, ist glaube ich weder aus zeitlicher
noch aus monetärer Sicht vertretbar. 6-fach Multilayer ... bisher
arbeite ich auf Lochraster. Hätte ja sein können, dass da irgendeine
Standardlösung für existiert, die ich nur noch nirgends finden konnte,
aber das wär ja auch zu schön um wahr zu sein.
Ich hab auch mal überlegt, ob man nicht direkt den Ausgang eines
Video-Decoders mit digitalem YUV-Out mit mehreren SDRAM-Bausteinen
verschalten könnte, und ein µC nur auf die Synchronworte vom Decoder
(die ja zumindest bei manchen Typen nicht über den seriellen Output,
sondern über Handshake-Leitungen rausgehen) reagiert und entsprechende
Write-Kommandos an den RAM verschickt. Wenn man dann 3 RAMs (die jeweils
nur mit lächerlichen 810 kB gefüllt würden) nacheinander ringweise
beschreibt, könnte man ja auf einen externen Synchronimpuls hin den
zuletzt beschriebenen (also sich im idle-Mode befindenden) per Burst
auslesen ...
Nunja, das waren meine uninformierten Überlegungen. Ich vermute das ist
ne totale Milchmädchenrechnung und das Timing haut nie hin - wenn ihr
sagt, dass das nicht klappen wird, werde ichs einfach begraben ;-)
Gruß,
nnnyms
fertige geräte gibts, schau mal in ebay, prof-video-ausrüstung. ab und
zu ist da sowas drin. schau dort nicht nach tbc, die gleichen nur jitter
in den zeilen aus, schau nach framestores. die können das.