Forum: Analoge Elektronik und Schaltungstechnik Video overlay


von PhiMX (Gast)


Lesenswert?

Hallo!

Ich bin gerade dabei mal die Möglichkeiten auszuloten die sich bieten um 
ein CVBS PAL (vielleicht auch NTSC) mit einem zweiten Overlay zu 
verbinden. Wer noch die Genlocks aus Amiga/Atari Zeiten kennt... :)

Hintergrund: Bei FPV-Flugmodellen im Modellbau (Quadrocopter, Flugzeuge, 
etc..) wird dem primären Videosignal (Aus latenz- und Kostengründen 
meist analog) gerne ein OSD-Overlay zugemischt auf dem wichtige 
Informationen wie Kompass, Horizont, Batteriestand, GPS, Warnungen 
angezeigt sind.
Dazu wird gerne ein Maxim OSD-Chip MAX7456 oder ein clone dessen 
eingesetzt. Er ist billig, leicht zu bekommen und hat sich mangels 
Alternativen durchgesetzt. Leider bringt der IC etliche Nachteile mit 
sich wie etwa 1-bit Farbe :) und 255 feste Charakter die sich im eeprom 
speichern lassen..

Da hab ich mir gedacht ich mache mich mal auf die Suche nach einer 
kostengünstigen Alternative mit der mal zumindest Farbdarstellung geht.
Leider konnte ich keinen dedizierten OSD-Chip finden, der noch in 
Produktion ist und Farbdarstellung bietet.

Jetzt hab ich mal ne grundsätzliche Frage zum Thema Video-Overlay:
Angenommen ich habe mein Primärsignal, also das Bild aus der Videokamera 
und mein Sekundärsignal, also das synthetisch erzeugte Overlaybild. Das 
Overlay hat wohl am besten einen schwarzen Hintergrund. Würde es 
ausreichen das synthetische Signal einfach horizontal und vertikal 
synchron zum Primärbild auszugeben und einfach hinzuzumischen? Soweit 
ich mich erinnere war es eine Besonderheit der guten, alten 
Amiga-Computer dass es möglich war das komplette System mittels Genlock 
auf das Primärsignal zu synchronisieren (CPU und Chipsettakt abhängig 
vom Videosignal) und so Text und Grafik ganz easy ins Primärsignal 
einzublenden.

Soweit ich gesehen habe gibt es dedizierte, günstige Chips die 
Videotimings bestimmen und als Takt ausgeben.. wenn ich nun einen AVR 
oder STM32 dazu zwingen könnte ein Bild auszugeben (es gibt etliche 
beispiele dazu im netz.. sogar in Farbe) und es so zu synchronisieren 
hätte ich quasi mein Problem gelöst..

Ich hab mir auch schon überlegt einen Video-Dekoder Chip wie den TVP5150 
herzunehmen, das Signal dann als digitales RGB an einen kleinen FPGA 
oder einen großen Microcontroller mit genügend RAM weiterzugeben, das 
Overlay hinzuzumischen (in diesem Fall dann sogar mit Alphakanal!)
und wieder (eventuell umgekehrt mittels Encoder-IC wie dem TVP6000) als 
CVBS-Signal ausyugeben.. das wäre so quasi der Königsweg, allerdings 
auch recht komplex. (Die kosten würden sich auch noch in Grenzen 
halten.. ca 30€)

Habt Ihr eine Idee hierzu?


Viele Grüße!!

von Georg G. (df2au)


Lesenswert?

Um in ein FBAS Signal ein farbiges Overlay zu mischen, musst du erst aus 
dem FBAS ein RGB-AS Signal machen, dann das Overlay dazu mischen und 
dann wieder in ein FBAS kodieren.

Eine andere Möglichkeit wäre, den Burst des FBAS auszuwerten und sich 
einen lokalen Farbhilfsträger phasenrichtig zu erzeugen und damit das 
Overlay zu erzeugen und dann dazu zu mischen.

von PhiMX (Gast)


Lesenswert?

Georg G. schrieb:
> Um in ein FBAS Signal ein farbiges Overlay zu mischen, musst du
> erst aus
> dem FBAS ein RGB-AS Signal machen, dann das Overlay dazu mischen und
> dann wieder in ein FBAS kodieren.

Das wäre dann in etwa die analoge Variante zu meiner Idee mit dem Video 
A/D Wandler, dann Microcontroller mit Framebuffer und danach wieder 
daraus ein analoges Signal erzeugen...
Ich habe bloß Bedenken dass neben der Komplexität auch noch eine 
mega-Latenz dazu kommt... von daher hört sich deine Idee eigentlich ganz 
gut an.
Kannst du da ein wenig ins Detail gehen wie du so etwas grob realisieren 
Würdest?

>
> Eine andere Möglichkeit wäre, den Burst des FBAS auszuwerten und sich
> einen lokalen Farbhilfsträger phasenrichtig zu erzeugen und damit das
> Overlay zu erzeugen und dann dazu zu mischen.

Ja, einfach so dazumischen wird wohl nur bei weißem Overlay auf 
schwarzem Grund gehen. Wenn mann da etwas farbiges drüberlegt kommt 
wahrscheinlich alles mögliche dabei raus...
Das Problem bei 8-Bit Mikrokontrollern ist dass es zwar ausreicht ein 
sw-Signal zu erzeugen, aber für die Phasenverschiebung reicht die 
Bandbreite ohne Overclocking nicht aus, und dann auch nur für 45° 90° 
usw.. also in groben Schritten. Da müsste schon etwas in der 
STM32-Klasse her.


Aber mal so in den Raum gestellt: Es kann doch nicht sein dass es für so 
etwas keine dedizierte ICs gibt außer dem blöden maxim... in den späten 
90ern hatte doch so ziemlich jeder Fernseher, Videorekorder usw.. ein 
OSD! Und dass in Farbe und Bunt!
Wie haben die das gemacht? Sind die Chips alle EOL?

Gruß!

Ach ja: Wie wird eigentlich Videotext erzeugt? Ist ja auch mit 
Overlay...

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Sicher kann man das analog machen, aber das ist schon arg Horrorshow vom 
Aufwand her. Wenn du z.B. schon irgendwoher den H-Sync hast, dann 
brauchst du erstmal noch 2 Monoflops mit den richtigen Zeiten, um an den 
Burst zu kommen. Dann eine Phasenvergleichstufe, die den Burst mit 
deinem lokalen Farbhilfstraegeroszillator vergleicht und in einer 
Regelspannung umsetzt, um den Oszillator zu ziehen. Dann brauchst du 
noch die entsprechenden Synchrondemodulatoren, um an U und V zu kommen; 
dann noch ein PAL-Flipflop; die ollen Verzoegerungsleitungen fuer Chroma 
und Luminanzsignal...
Wenn du die SMD Chips verarbeiten kannst, wird das mit der von dir 
skizzierten Loesung schon hinhauen. Mit dem Speicher, dem ein kleines 
FPGA mitbringt, kann auch nicht allzuviel Delay entstehen. Also sicher 
<< 1 Halbbild.

Gruss
WK

von Georg G. (df2au)


Lesenswert?

PhiMX schrieb:
> Ach ja: Wie wird eigentlich Videotext erzeugt? Ist ja auch mit
> Overlay...

Der wird auf RGB Ebene dazu gemischt.


> Das wäre dann in etwa die analoge Variante zu meiner Idee mit dem Video
> A/D Wandler, dann Microcontroller mit Framebuffer und danach wieder
> daraus ein analoges Signal erzeugen...

Du solltest dir den Aufbau eines FBAS Signals näher ansehen. Was du hier 
beschreibst, ist bei einem SW-Signal möglich, für Farbe ist der Aufwand 
drastisch höher.


Wie wäre denn der Ansatz, einen normalen Framegrabber zu verwenden (USB, 
unter 20.-) und dazu einen Raspberry für die Datenverarbeitung.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Georg G. schrieb:
> Der wird auf RGB Ebene dazu gemischt.

Vor allem ist dadurch die Qualität des Overlays deutlich besser, als sie 
sein könnte, wenn es als PAL/NTSC-Signal erzeugt würde.
Das liegt in erster Linie an der in der RGB-Stufe nicht mehr begrenzten 
Videobandbreite und daher höheren darstellbaren Pixelzahl, und 
andererseits auch im Farbcodierungsverfahren selbst.

Insbesondere bei rotem Text auf dunklem Untergrund kann man die Defizite 
von PAL recht gut sehen (sehr unsaubere Ränder), die aber treten bei 
Videotext und OSD-Anwendungen nicht auf.

von Georg G. (df2au)


Lesenswert?

Rufus Τ. F. schrieb:
> in der RGB-Stufe nicht mehr begrenzten Videobandbreite

Räusper....

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Der SCART-Anschluss hat genau zu dem Zweck einen digitalen Eingang, um 
RGB-Signale in ein Videosinnal einzustanzen. Pin 16 müsste das sein
https://de.wikipedia.org/wiki/SCART#Steckerbelegung

von PhiMX (Gast)


Lesenswert?

Georg G. schrieb:
> PhiMX schrieb:
>> Ach ja: Wie wird eigentlich Videotext erzeugt? Ist ja auch mit
>> Overlay...
>
> Der wird auf RGB Ebene dazu gemischt.

Dann kann ich auch den Microcontroller/FPGA-Ansatz hernehmen, s.u.

>> Das wäre dann in etwa die analoge Variante zu meiner Idee mit dem Video
>> A/D Wandler, dann Microcontroller mit Framebuffer und danach wieder
>> daraus ein analoges Signal erzeugen...
>
> Du solltest dir den Aufbau eines FBAS Signals näher ansehen. Was du hier
> beschreibst, ist bei einem SW-Signal möglich, für Farbe ist der Aufwand
> drastisch höher.
>
PAL FBAS ist bekannt, ich dachte das ist die Grundvoraussetzung für so 
ein Projekt :)

Vielleicht hab ich mich zu "plump" ausgedrückt, ich hab mir das so 
gedacht:
Es gibt sog. Video-Decoder, das hab ich mit Video A/D gemeint, ich hab 
da gerade den Ti TVP5150 im Auge, der macht aus einem PAL/NTSC FBAS 
einen digitalen YUV 4:2:2 Datenstrom, also in Farbe. Den Datenstrom 
wollte ich dann an einen kleinen FPGA weiterleiten (Sowas in der 
ice40-Klasse, also weiniger als 10k Logikblöcke) der mir zumindest mal 
YUV in RGB wandelt und danach mein Overlaybild hinzurechnet. Dann muss 
ich den RGB Datenstrom wieder in FBAS wandeln (Da muss dann wieder ein 
Video-Encoder her). Das RGB-Overlaybild wollte ich in nem µC erzeugen, 
STM32 oder ähnlich. Das gute ist, der Video-Encoder gibt ein 
Genlock-Clock aus, mit dem man H-Sync und Phase für die Farbe 
synchronisieren kann.
Also insgesamt 4 ICs, allesamt recht günstig (Decoder und Encoder je 
1-5€,FPGA 10€ und 8€ für den STM32).
Leider ist das ein recht komplexes Projekt, bei dem ich bestimmt schnell 
an meine Grenzen komme, aber es gibt relativ viel Dokumentation, und ich 
will ja auch was lernen....

> Wie wäre denn der Ansatz, einen normalen Framegrabber zu verwenden (USB,
> unter 20.-) und dazu einen Raspberry für die Datenverarbeitung.

Das wäre wirklich das einfachste, es gibt da nur 1-2 Probleme:
1. Die Latenz. Ich hab mir schon gedacht das da bestimmt ein Lag 
auftritt, da der Datenstrom ja durch die arme kleine USB 
2.0-Schnittstelle gestopft werden muss. Ohne Komprimierung geht das 
nicht und die verursacht auf jeden Fall Latenz. Nun habe ich gerade 
keinen Framegrabber da um diese Theorie zu überprüfen aber ich habe das 
hier:

https://www.youtube.com/watch?v=DFI_bFxahDA

Bis ich da sehe dass ein Baum auf mich zukommt, haben sich die 
Eichhörnchen längst ein Nest aus meinem Kopter gebaut :)

Zum zweiten noch Größe und Gewicht.. ist bei nem Pi zero nicht so wild, 
aber ich wollte nur noch erwähnen dass sich der ganze OSD-Kram wegen der 
Echtzeitdaten vom Flugcontroller traditionell IM Fluggerät befindet.
Ich weiß, traditionell ist dafür auch nur ein IC nötig aber wer mehr 
will muss halt Kompromisse eingehen...

Aber deswegen wende ich mich ja an euch. Nicht das der Eindruck entsteht 
oben skizzierter Plan sei mein Masterplan, aber es ist halt das einzige 
was mir einfällt um ein zeitgemäßes OSD zu implementieren (sofern man 
von analog-Video überhaupt noch von zeitgemäß sprechen kann).
Vielleicht hat jemand eine einfachere Idee.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

PhiMX schrieb:
> ...ich hab mir das so
> gedacht:...

Jepp. Das koennt' schon so gehen. Ich wuerd' nur die Rechnerei 
YUV->RGB->YUV weglassen und das OSD-Bild auch gleich in YUV berechnen. 
Das spart einen Haufen Multiplizierer und vor allem Filterei; weil ja 
die Abtastrate von Y doppelt so hoch ist, wie von U und V.
Von YUV wieder nach PAL ist auch im FPGA eher wieder machbar, dann 
braucht's nur noch 'nen "dummen" DAC.

Gruss
WK

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.