Dear visitor, welcome to VDR Portal. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.


Quoted
Originally posted by Hemonu
Wo wir meines Erachtens Verbesserungspotential haben, ist bei der Taktrückgewinnung und dem Dejitterizer.
Dazu möchte ich ein wenig rechnen. Die Toleranz für die Zeilen- und Bildfrequenzen im Fernsehsignal beträgt 10e-6. Wenn ich eine gleich genaue Videoausgabe hätte, wäre die maximale Abweichung 1 Halbbild in 166 Minuten ! Das bedeutet, es sollte grundsätzlich kein Problem sein, eine Grafikkarte selbst im Interlace-Mode frei laufen zu lassen. Man müsste nur ganz
selten ein Halbbild fallen lassen oder verdoppeln. Selbst, wenn unsere Grafikkarte nur 10e-5
Quoted
und falscher Field-order. Schaut man sich das Regelverhalten der durchflieger Patche an, sieht man, dass wir keineswegs eine konstanten Drift ausregeln, sondern es geht ziemlich hin und her. Eine Ursache dürften Schnitte und Übertragungsfehler im DVB-Signal sein, aber ich vermute, dass vor allem die schwankende Durchlaufzeit des Signals durch den VDR + xine +++ hier für viel Unruhe sorgt.
Quoted
1. Das Timing der Videoausgabe muß möglichst genau auf echte 50 Hz eingestellt werden. Dazu wäre es interessant, wenn wir mal messen würden, wie genau die Quarze auf den Karten wirklich sind, und evt. Abweichungen des Quarzes dauerhaft über die Modeline kompensieren.
Quoted
2. Der Mastertakt für die Ausgabe muss aus dem DVB-Signal der DVB-Karte gewonnen werden. Das könnte eventuell im Treiber oder möglichst früh im Signalweg des VDR erfolgen. Auf diesen Takt müssen wir unsere Ausgabe synchronisieren.
Quoted
3. Wenn wir einen vernünftigen Pufferspeicher für einige Frames so steuern, dass die Durchlaufzeit vom Mastertakt bis zur Videoausgabe konstant gehalten wird, bräuchten wir nur noch ab und zu (Halb-)Bilder zu verdoppeln oder löschen, um eine Regelung zu bekommen.
Quoted
Ich hoffe auf eine lebhafte Diskussion
Quoted
Original von durchflieger
Es wäre mal interessant wie die FF-Karten die Synchronisation genau machen. Die funktioniert ja bekannter maßen hervorragend. Sowie mir bekannt ist dort die "Master clock" per Hardware regelbar. Hier wäre interresant wie denn genau die Regelspannung gewonnen wird. Auch nur durch Überwachung des Puffersfüllstandes des DVB-Stream oder vielleicht doch durch eine Art Taktrückgewinnung?
Quoted
Zukünftig dann so:
Die xine "master clock" basiert weiterhin auf der "system clock".
Im radeon Treiber können wir die aktuelle vertikale Position des crtc bestimmen und so einen offset zur system clock berechnen damit die ersten vpts direkt so liegen das die Frame/Fields genau zum richtigen Zeitpunkt kommen. Es wären dann keine Verzögerungsroutinen im Treiber mehr notwendig und insbesondere wäre der Einregelvorgang gleich null.
Die vertikale Position wird weiterhin beobachtet und so der offset (=regelspannung) zur system clock korrigiert.
Die "Regelspannung" die aus der Überwachung des Pufferfüllstand gewonnen wird dient jetzt direkt zur Nachregelung des Graka Timing in bekannter weise. Damit wäre der Regelkreis geschlossen.

Quoted
Originally posted by durchflieger
Im radeon Treiber können wir die aktuelle vertikale Position des crtc bestimmen und so einen offset zur system clock berechnen damit die ersten vpts direkt so liegen das die Frame/Fields genau zum richtigen Zeitpunkt kommen. Es wären dann keine Verzögerungsroutinen im Treiber mehr notwendig und insbesondere wäre der Einregelvorgang gleich null.

Quoted
Originally posted by Hemonu
Dann geht es auch ohne Eingriff in den Treiber. Wenn die Taktfrequenz der Grafikkarte genau genug eingestellt werden kann, dass das nur alle paar Minuten passiert, halte ich das für einen vertretbaren Kompromiss.
. This post has been edited 3 times, last edit by "sparkie" (Mar 4th 2009, 9:42am)
Details zum VCXO der FF wurden hier schon mal diskutiert.
Quoted
Original von durchflieger
Es wäre mal interessant wie die FF-Karten die Synchronisation genau machen. Die funktioniert ja bekannter maßen hervorragend. Sowie mir bekannt ist dort die "Master clock" per Hardware regelbar. Hier wäre interresant wie denn genau die Regelspannung gewonnen wird. Auch nur durch Überwachung des Puffersfüllstandes des DVB-Stream oder vielleicht doch durch eine Art Taktrückgewinnung?
Bei einer Onboard-Graka ist nicht sicher was da eventuell noch alles an dem Oszillator hängt.
Quoted
Original von sparkie
Einzige Moeglichkeit waere in der Tat noch hardwareseitiges Trimmen des Quarzoszillators. Wobei hier unbekannt ist, welche Seiteneffekte dies wieder haben wird. Ausserdem ist es relativ aufwendig zu realisieren.
.Das Kernelmodul von NVidia ist offen, dient aber wohl nur dazu die Daten an den Closedsource-Teil weiter zu leiten (ist verdächtig wenig Code in den Funktionen). Wenn man an die Interrupts ran will müsste sich das da eigentlich machen lassen, ich verstehe davon aber nicht genug um das wirklich beurteilen zu können.
Quoted
]Original von jarny
Man kann getrost behaupten: FRC läuft in der Praxis sehr gut. Auch wenn es in der Theorie vielleicht noch besser oder anders ginge. Wünschenswert wäre eine andere Lösung eigentlich nur, wenn dadurch das Ganze unabhängig von der benuzten Grafikkarte ist. D.h. Ohne Eingriffe in die Treiber, so dass man auch noch alle NVidia-User mit an Board hätte.
Quoted
Originally posted by SHF
Quoted
Original von jarny
Man kann getrost behaupten: FRC läuft in der Praxis sehr gut. Auch wenn es in der Theorie vielleicht noch besser oder anders ginge. Wünschenswert wäre eine andere Lösung eigentlich nur, wenn dadurch das Ganze unabhängig von der benuzten Grafikkarte ist. D.h. Ohne Eingriffe in die Treiber, so dass man auch noch alle NVidia-User mit an Board hätte.
Das Kernelmodul von NVidia ist offen, dient aber wohl nur dazu die Daten an den Closedsource-Teil weiter zu leiten (ist verdächtig wenig Code in den Funktionen). Wenn man an die Interrupts ran will müsste sich das da eigentlich machen lassen, ich verstehe davon aber nicht genug um das wirklich beurteilen zu können.
This post has been edited 5 times, last edit by "sparkie" (Mar 4th 2009, 7:54am)
Das ist dann aber ein generelles Problem bei der Interlaced-Ausgabe auf nVidia?
Quoted
Original von sparkie
- Fieldpolarity kann nicht ermittelt werden
Kann man da nicht über die Schnittstelle gehen, über die die Modline zB. per "xvidtune" geändert wird oder kann man das dann sehen?
Quoted
- es ist unbekannt, welche Register sich zum Trimmen der Framerate eignen
Quoted
Originally posted by SHF
Das ist dann aber ein generelles Problem bei der Interlaced-Ausgabe auf nVidia?
Quoted
Original von sparkie
- Fieldpolarity kann nicht ermittelt werden
Quoted
Für das Synchronisieren des Taktes dürfte es ja nicht relevant sein.
Quoted
Kann man da nicht über die Schnittstelle gehen, über die die Modline zB. per "xvidtune" geändert wird oder kann man das dann sehen?
Quoted
- es ist unbekannt, welche Register sich zum Trimmen der Framerate eignen
This post has been edited 1 times, last edit by "sparkie" (Mar 5th 2009, 2:00am)
Es wird also erst deinterlaced und die Grafikkarte gibt dann jede immer nur jede zweite Zeile aus um wieder auf das Interlaced-Ausgabe-Signal zu kommen?
Quoted
Original von sparkie
Bei VGA2SCART ohne FRC bekommt der CRT Controller immer ein progressives Frame zu Gesicht => es gibt hier also gar keine Fieldpolarity mehr
Also beide Fields in eine Frame kopiert?
Quoted
Bei VGA2SCART mit FRC bekommt der CRT Controller im Gegensatz dazu ein weaved Frame angeboten.
In dem Falle muss das Frame immer zum Richtigen Zeitpunkt kommen, weil sonst die Fields vertauscht würden, das dürfte unschön aussehen.
Quoted
Das muss abhaengig von der Fieldpolarity zum genau richtigen Zeitpunkt geschehen.
xvidtune selber wird wohl nicht das wahre sein, das dachte ich mir schon.
Quoted
xvidtune programmiert alle am Videotiming beteiligten Register neu. Aufgrund der Vielzahl der Register kann dies ausserdem nicht mehr punktgenau genug erfolgen.
=> bei die Aenderung des Timing ueber xvidtune bricht kurzzeitig die Synchronisation mit dem Display (hier TV) komplett weg.
Quoted
Originally posted by SHF
Es wird also erst deinterlaced und die Grafikkarte gibt dann jede immer nur jede zweite Zeile aus um wieder auf das Interlaced-Ausgabe-Signal zu kommen?
Quoted
Also beide Fields in eine Frame kopiert?
Quoted
In dem Falle muss das Frame immer zum Richtigen Zeitpunkt kommen, weil sonst die Fields vertauscht würden, das dürfte unschön aussehen.
Quoted
Wobei sich das auch umgehen lassen dürfte in dem man immer ein zwischen Frame einschiebt, das aus dem (zeitlich) zweiten Field des letzten und dem ersten Field des nächsten Frames besteht.
Quoted
Aber klappt es denn auch nicht, wenn man sich nur der Schnittstelle bedient, die xvidtune nutzt?
This post has been edited 2 times, last edit by "sparkie" (Mar 6th 2009, 7:28am)
Quoted
Original von sparkie
Quoted
Wobei sich das auch umgehen lassen dürfte in dem man immer ein zwischen Frame einschiebt, das aus dem (zeitlich) zweiten Field des letzten und dem ersten Field des nächsten Frames besteht.
das verstehe ich jetzt nicht. Zu welchem Problem stellt das eine Loesung dar?
Quoted
Originally posted by durchflieger
Hierzu gibts im mythtv Forum eine interresante Diskusion:
http://mythtv.org/pipermail/mythtv-dev/2…ber/063105.html
|
|
Source code |
1 |
[1/2] 1/ [3/2] /2 [3/4] 3/ [5/4] /4 [5/6] 5/ |
|
|
Source code |
1 |
[1/2] 1/ [3/4] /4 [5/4] 5/ [5/6] /6 |
This post has been edited 1 times, last edit by "sparkie" (Mar 6th 2009, 11:58am)
Für das Problem die Fieldpolarity der Graka zu erkennen.
Quoted
Original von sparkie
das verstehe ich jetzt nicht. Zu welchem Problem stellt das eine Loesung dar?
Ich ging davon aus, dass sich die Fieldorder nicht dauernd ändert.
Quoted
Das Problem entsteht aber genau beim Wechsel von 'correctly synced' auf 'badly synced' und umgekehrt. Hier geht immer ein volles Frame verloren, was in jedem Fall eine sichtbare Stoerung verursacht.
Da Stimme ich voll zu.
Quoted
Ich muss deswegen leider bei meiner Feststellung von oben bleiben: es ist grundsaetzlich *nicht* moeglich nur ein einzelnes Field (bedingt durch fehlende Synchronisation etc.) auszulassen. Der Field-Verlust weitet sich immer sofort zu einem Frame-Verlust aus, damit sich die weiteren Fields oertlich und zeitlich wieder an der richtigen Stelle befinden koennen.
Quoted
Originally posted by SHF
Ich ging davon aus, dass sich die Fieldorder nicht dauernd ändert.
Quoted
Das Problem entsteht aber genau beim Wechsel von 'correctly synced' auf 'badly synced' und umgekehrt. Hier geht immer ein volles Frame verloren, was in jedem Fall eine sichtbare Stoerung verursacht.
This post has been edited 5 times, last edit by "sparkie" (Mar 7th 2009, 10:54am)
... da wir aber die Takte aus o.g. Gründen Syncronisieren wollen, sollte das nicht auftreten.
Quoted
Original von sparkie
die 'Fieldorder' aendert sich mit der 'Schwebungsfrequenz', die sich zwischen der Stream- und VGA- Framefrequenz ausbildet.
Warum es interlace überhaupt gibt hat historische Gründe, bei der Entwicklung des Fernsehens war das anders nicht möglich.
Quoted
Original von henfri
.... dann frage ich mich, warum nicht gleich progressiv gesendet wird?
This post has been edited 1 times, last edit by "durchflieger" (Mar 9th 2009, 10:18am)
Na immerhin.
Quoted
Original von durchflieger
Unsere öffentlich rechtlichen Provider haben sich bisher auf 1280x720p als Übertragsungsstandard geeinigt. Der Zug geht also Richtung progressiver Übertragung bei HDTV.