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
DVIman schrieb: > Dabei gleich: Wie erkennt man denn beim (analogen) VGA-Signal den VBI? > Zeilen zählen.
Ich weiß aber leider vorher nicht, wie viele Zeilen das Bild hat, bzw ich kenne die Auflößung nicht. :/
> 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).
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 ;)
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
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!
> 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...
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...
@ 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.
@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).
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).
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 ;-)
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!
Man müsste die Zeilenzahl auch vorausahnen können, sobald die Pixelzahl fest steht, weil DVi keine beliebigen Kombis von BxH erlaubt.
>Man müsste die Zeilenzahl auch vorausahnen können,
Oder man vermisst einige Frames und hat dann eine Statistik ;-)
Eine FFT auf den H-Takt, dann kann man den V direkt ablesen :-)
>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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.