Forum: FPGA, VHDL & Co. DVI: Vertical Blanking Interval erkennen


von DVIman (Gast)


Lesenswert?

Hallo,

ich muss für eine Anwendung die Timings des VSYNC-Signals eines 
DVI-Signals bestimmen (Front Porch, Blanking Interval, Back Porch).

Wie kann ich aus den Videosignalen (DVI-Decoder spuckt Pixel Clock, 
Display Enable, VSYNC und HSYNC aus) erkennen, wann der Vertical 
Blanking Interval stattfindet?

Als Referenz: 
http://www.javiervalcarce.eu/wiki/VGA_Video_Signal_Format_and_Timing_Specifications
VSYNC und HSYNC verhalten sich bei DVI wie bei VGA.

Meine Ansatz: Hört HSYNC während dem Vertical Blanking Interval auf zu 
toggeln? Dann könnte ich daraus entscheiden, ob gerade Zeilen übertragen 
werden oder Blanking stattfindet. Ich konnte diese Information online 
nicht finden, und meine Intuition sagt, dass HSYNC weiterläuft (wäre ja 
bei VGA ein unnötiger Aufwand, das anzuhalten...)

Dabei gleich: Wie erkennt man denn beim (analogen) VGA-Signal den VBI?

Weiß hier jemand weiter?

Danke, und viele Grüße

von Lattice User (Gast)


Lesenswert?

DVIman schrieb:

> Dabei gleich: Wie erkennt man denn beim (analogen) VGA-Signal den VBI?
>

Zeilen zählen.

von DVIman (Gast)


Lesenswert?

Ich weiß aber leider vorher nicht, wie viele Zeilen das Bild hat, bzw 
ich kenne die Auflößung nicht. :/

von Georg A. (georga)


Lesenswert?

> Wie erkennt man denn beim (analogen) VGA-Signal den VBI?

Gar nicht. Der VSYNC löst den Zeilenrücklauf aus, währenddessen wird 
dunkelgetastet bzw. der Schwarzwert geklemmt. Aus dem Grund ist der 
VSYNC ja auch immer viele Zeilen lang und nicht nur eine (würde als Puls 
ja reichen).

von Georg A. (georga)


Lesenswert?

Nochwas: Wenn das Display-Enable auf der Encoderseite richtig 
angesteuert wird, kann man damit den effektiven Videobereich auch 
erkennen. Allerdings fängt das schon ein paar Zeilen vor dem VSYNC an.

Wenn du den DVI-Decoder schon hast, häng doch einfach mal das Oszi an 
DE, VSYNC und HSYNC, das sollte einiges aufklären ;)

von Duke Scarring (Gast)


Lesenswert?

DVIman schrieb:
> Ich weiß aber leider vorher nicht, wie viele Zeilen das Bild hat, bzw
> ich kenne die Auflößung nicht. :/
Du kannst zählen und davon ausgehen, daß die Zeilenzahl im nächsten Bild 
die gleiche ist. Wenn man im laufenden Betrieb die Auflösung ändert, 
kommt es zu einer kurzen Störung. Das sollte aber zu verkraften sein.

Duke

von DVIman (Gast)


Lesenswert?

Hallo,

danke für die zahlreichen Antworten!

Ich hab mir nochmal Gedanken gemacht, bin aber leider immer noch nicht 
auf die Lösung gekommen. :/

Ich suche immer noch nach einer Lösung, wie ich den Vertical Blanking 
Interval erkennen kann. Den brauche ich, um die Länge des Front Porch 
und Back Porch des VSYNC zu bestimmen (oder?).

Leider ist mir immer noch nicht ganz klar, wie ich aktives Video (dh 
Zeilen, die Videodaten enthalten) unterscheiden kann vom Vertical 
Blanking Interval (dh Zeilen, die keine Videodaten enthalten - Front 
Porch und Back Porch).
Das brauche ich auch, um die Anzahl der (aktiven) Zeilen zu bestimmen - 
oder?

Danke für eure Hilfe!

von Georg A. (georga)


Lesenswert?

> Leider ist mir immer noch nicht ganz klar, ...

Den TFT-Monitoren auch nicht ;) Deswegen können die meisten zuverlässig 
auch nur VESA-Modi darstellen, die allein über die 
HSYNC/VSYNC-Frequenzen erkannt werden. Damit ist dann schon alles 
festgelegt...

von DVIman (Gast)


Lesenswert?

Danke für deine Antwort :)
D.h. die haben die gängen Videomodi in einer Tabelle, und schlagen 
anhand den Frequenzen nach, wieviel Spalten, und Zeilen das Bild haben 
sollte, und wie die VSYNC und HSYNC Timings bzgl. Front Porch usw 
aussehen sollten?
Schade, das klingt als ob ich VSYNC nicht wirklich vermessen kann...

Eine Möglichkeit, die ich mir noch durch den Kopf gehen hab lassen, ist 
die R, G, und B Werte auszuwerten, und damit zu entscheiden ob das Pixel 
zum Video gehört oder zu einem Blanking Interval. Das geht dann aber 
auch wieder nur zuverlässig, wenn das Bild kein Schwarz enthält...

von Falk B. (falk)


Lesenswert?

@ DVIman (Gast)

>Eine Möglichkeit, die ich mir noch durch den Kopf gehen hab lassen, ist
>die R, G, und B Werte auszuwerten, und damit zu entscheiden ob das Pixel
>zum Video gehört oder zu einem Blanking Interval. Das geht dann aber
>auch wieder nur zuverlässig, wenn das Bild kein Schwarz enthält...

??? Mensch, wenn du das enable Signal hast, steckt dort doch die 
gesuchte Information drin! Nämlich wieviele "enabelte" Pixel zwischen 
zwei HSYNC/VSYN Flanken auftreten. Das kann man einfach auszählen! Du 
hast doch den Pixeltakt.

von DVIman (Gast)


Lesenswert?

@Falk:

Ja, beim HSYNC leuchtet mir das ein - da mache ich das auch so.

Aber beim VSYNC war mir das noch nicht klar - diese Info konnte ich 
bisher nicht bekommen. Während dem gesamten Vertical Blanking Interval 
bleibt Display Enable also auf low? (Tut mir leid, ich hab gerade kein 
Scope zur Verfügung, sonst würd ichs mir einfach anschauen).

von Georg A. (georga)


Lesenswert?

Theoretisch sollte DE wirklich nur den Fensterausschnitt der gültigen 
Pixeldaten übertragen. Ich bilde mir aber ein, schon mal ein Gerät 
gesehen zu haben, dass DE auf Encoderseite nicht vernünftig konfiguriert 
hatte (kann man ja entweder per Signal übertragen oder per Setup im 
Encoderchip selbst ausrechnen lassen).

von SuperWilly (Gast)


Lesenswert?

Man zähle die Pixel zwischen fallender DE-Flanke und steigender 
DE-Flanke. Wird ein (für die Auflösung ermittelter) charakteristischer 
Wert überschritten, befindest Du dich im V-Frontporch-Bereich ;-)

von DVIman (Gast)


Lesenswert?

Ich wollte das ganze so flexibel halten wie möglich, also nicht 
irgendwelche "magic numbers" verwenden :)

Ich habs jetzt mal so probiert wie @falk und @georga vorgeschlagen 
hatten, dh. unter der Annahme, dass DE während dem VBI konstant low ist 
(und während dem HBI natürlich auch). Funktioniert! Im Nachhinein 
logisch, aber die Info hab ich nirgends klar gefunden, oder überlesen :)

Danke für eure Hilfe!

von Michael W. (Gast)


Lesenswert?

Man müsste die Zeilenzahl auch vorausahnen können, sobald die Pixelzahl 
fest steht, weil DVi keine beliebigen Kombis von BxH erlaubt.

von SuperWilly (Gast)


Lesenswert?

>Man müsste die Zeilenzahl auch vorausahnen können,

Oder man vermisst einige Frames und hat dann eine Statistik ;-)

von Michael W. (Gast)


Lesenswert?

Eine FFT auf den H-Takt, dann kann man den V direkt ablesen :-)

von Dieter (Gast)


Lesenswert?

>Eine FFT auf den H-Takt, dann kann man den V direkt ablesen :-)

Quatsch mit Soße ;o)

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.