ReClock

Aus D65

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

[bearbeiten] Was ist ReClock?

Einfach gesagt, ist der Zweck von ReClock endgültig befreit zu werden von ruckender Wiedergabe von AVI oder MPEG-Material auf einem PC (oder einem PC der an einem TV angeschlossen ist).

Da hat man nun einen schnellen PC, eine gute Grafikkarte, und wenn man eine DVD oder DivX-Film in seinem brandneuen Heimkino sehen will, bekommt man aus unerklärlichen Gründen ausgelassene Bilder oder einem komplett ruckenden und unansehbaren Film. Dies ist wirklich ärgerlich. Genau diese Frustration führte den Autor von ReClock zu der Entwicklung dieses Programms.

Die folgenden Sektionen geben dir eine komplette und hoffentlich klare Erklärung, was ruckende Wiedergabe verursacht und wie ReClock versucht diese Probleme zu beseitigen.

Die letzten Sektionen erklären wie ReClock installiert und benutzt wird.

[bearbeiten] Ursache ruckender Wiedergabe

[bearbeiten] Die Geschichte mit den Bildwiederholfrequenzen

Vereinfacht gesagt, besteht ein Video aus vielen Einzelbildern und die Bildwiederholfrequenz ist die Anzahl dieser Bilder pro Sekunde.

Wie du sicher weißt, gibt es drei geläufige Wiedergabearten: Kino, Fernsehen und Computer.

[bearbeiten] Kino-Format

Das Kino-Format ist das älteste und jeder hat es sicher schon in einem Filmtheater gesehen. Kino-Filme werden mit 24 Vollbildern (engl. frames) pro Sekunde (daher engl. „frames per second“ und als „fps“ abgekürzt) wiedergegeben. Das Prinzip ist ganz einfach: jede 24stel Sekunde sieht man ein komplett neues Bild. Dieses Verfahren nennt man auch „progressive Wiedergabe“ oder im Englischen „progressive scan“.

[bearbeiten] Fernseh-Format

Ein Fernseher arbeitet allerdings nicht mit Vollbildern, sondern mit Halbbildern. Jedes Vollbild besteht aus genau zwei Halbbildern, die auch Felder genannt werden (engl. fields). Eines der Halbbilder besteht nur aus den Bildzeilen des Vollbildes mit ungeraden Zeilennummern und enthält deshalb auch die erste Bildzeile. Man nennt es daher "ungerades Halbbild" (engl. odd field) oder auch "oberes Halbbild" (engl. top field). Das andere Halbbild besteht entsprechend aus den geraden Zeilen und wird deshalb "gerades Halbbild" (engl. even field) oder "unteres Halbbild" (engl. bottom field) genannt. Diese Art der Bildübertragung nennt man Zeilensprungverfahren (engl. interlaced scan).

Es gibt nun drei gebräuchliche Fernseh-Standards: PAL, SECAM und NTSC. Alle drei arbeiten mit dem Zeilensprungverfahren.

Fangen wir zuerst mit PAL an, welches in Europa das gebräuchlichste Verfahren ist. Es wird ebenfalls für DVD und DivX-Filme verwendet. PAL-Material wird mit 25 fps wiedergegeben (oder 50 Hallbildern pro Sekunde). Hier sieht man auch schon das erste Problem: Wie kann man einen 24 fps Kinofilm auf einem Fernseher mit 50 Halbbildern wiedergeben? Nun, zuerst kann man jedes Vollbild in genau zwei Halbbilder aufteilen und erhält so 48 Halbbilder pro Sekunde. Würde man allerdings so den Film wiedergeben, dann hätte man eine ruckende Wiedergabe, weil in jeder Sekunde genau ein Vollbild fehlen würde. Um dem zu entgegnen, spielt man den Film ein kleines Stück schneller ab, um auf genau 50 Halbbilder pro Sekunde zu kommen. Deshalb ist ein Kinofilm der genau 60 Minuten lang ist, bei der PAL-Übertragung nur noch 57 Minuten und 36 Sekunden lang. Dies ist der Grund, warum Filme im Fernsehen mit PAL immer etwas kürzer als im Kino sind.

SECAM ist der französische Bruder von PAL und arbeitet genauso. Es wird noch immer in Frankreich benutzt, da es Farben besser übertragen kann wenn über Radiowellen gesendet wird (weniger empfindlich für Rauschen).

Und nun kommt NTSC, das amerikanische Gegenstück zu PAL. NTSC wird auch bei DVD und DivX-Material benutzt und hat eine Wiedergaberate von etwa 29,97 fps (genau gesagt sind es 4,5 MHz/286/525). Hier sieht man gleich ein größeres Problem: Wie kann man einen Kinofilm mit NTSC übertragen? Ebenfalls die Geschwindigkeit erhöhen? Sicherlich nicht, denn sonst würde man sofort merken, dass der Film viel zu schnell läuft (ein 60 min Film würde in 48min 3sek laufen). Deshalb entwickelten die NTSC-Ingenieure eine Lösung die "telecine" oder auch "3:2 pulldown" genannt wird und etwas kompliziert ist. Um einen Film mit 24 fps auf die benötigten 29,97 fps zu bringen, ist es zuerst notwendig ihn um 0,1% auf 23,976 fps zu verlangsamen. Danach werden in etwa 6 Vollbilder den Video pro Sekunde hinzugefügt, wodurch sich eine Bildwiederholrate von 29,97 ergibt. Dabei wird jeweils ein zusätzliches Vollbild nach der Übertragung von vier ursprünglichen Vollbildern eingefügt. Obwohl man einfach ein Vollbild aus den Vieren duplizieren und wiederholt ausgeben könnte, wird dieses nicht gemacht. Denn eine solche Duplizierung eines Vollbildes würde dazu führen, dass man dieses Bild doppelt solange sieht wie die anderen drei und sofort als ruckende Wiedergabe auffallen. Glücklicherweise können die Film-Hersteller auf die Halbbild-Struktur des Fernsehens zurückgreifen, um eine besser abgestufte Einfügung zu bekommen. Anstatt ein ganzes Vollbild auf einmal einzufügen, können sie zwei Halbbilder für jede Gruppe von vier Vollbildern benutzen. Weil zwei Hallbilder einem Vollbild entsprechen, ist dieses der Einfügung eines Vollbildes gleichwertig. Da aber diese verdoppelten Halbbilder nicht zur gleichen Zeit eingefügt werden, ist die Wiedergabe gleichmäßiger.

[bearbeiten] Computer-Format

Schlussendlich noch zu den Computern. Hier ist die Welt wieder einfach, denn sie arbeiten genauso wie Kino-Projektoren und benutzen progressive Wiedergabe. Allerdings verwenden sie wesentlich mehr Wiederholraten für die Ansteuerung des PC-Monitors wie z.B. 60 Hz, 75 Hz, 85 Hz, 100 Hz. Bei der Benutzung eines TV-Ausganges gebrauchen sie 50 Hz für PAL und 60 Hz für NTSC. Um eine ruckelfreie Wiedergabe auf dem PC zu erreichen, muss man eigentlich nur sicherstellen, dass die Grafikkarten-Bildwiederholfrequenz ein genaues Vielfaches der Bildwiederholfrequenz des Filmes ist. Wie man also leicht ersieht, kann PAL-Material gut mit 50 Hz, 75 Hz und 100 Hz wiedergegeben werden. Aber NTSC-Material macht Probleme, da wir nur eine Frequenz von 60 Hz zur Verfügung haben, was aber nicht genau zu den 29,97 fps passt und deshalb bei der Wiedergabe Ruckler verursacht.

[bearbeiten] Der Alptraum schlecht erstellter DivX-Filme

DivX-Filme werden meistens aus DVD-Material hergestellt und DVDs wiederum kommen überwiegend von Kino-Filmen.

DivX aus PAL-Material ist in der Regel kein Problem, weil sie entweder aus von 24 fps auf 25 fps erhöhtem Kino-Material hergestellt werden oder die Quelle direkt schon 25 fps hat. PAL ist ein guter Freund.

Aber dann kommt da NTSC mit seinem Telecine. Weil Telecine nur auf einem Anzeigegerät mit Zeilensprungverfahren wirklich richtig wiedergegeben werden kann, muss man vorher die zusätzlichen Telecine-Halbbilder entfernen. Dieses Verfahren nennt man "Inverse Telecine" (Abk. IVTC). Dabei wird die Bildwiederholrate wieder zu 23,976 fps zurückgewandelt. Komischerweise wird solch ein Film auf jedem PC immer ruckeln.

Manche Leute, die DivX-Filme aus NTSC-Material herstellen, wissen nicht einmal, dass Inverse Telecine vorher angewendet werden muss. Solche DivX-Filme bleiben also bei 29,97 fps und haben störende Artefakte, weil sich die durch das Telecine-Verfahren verwobenen Bilder nicht richtig komprimieren lassen.

Und um der Geschichte noch ein Thema hinzuzufügen, haben manche DivX-Filme Probleme mit der Synchronität von Ton und Bild, die dann dadurch gelöst werden ... der Bildwiederholrate etwas zu verändern, sodass die Filmlänge wieder der Länge der Tonspur entspricht. Das ist ein einfacher, aber schlechter Weg das Problem zu lösen. Stelle dir einen 25 fps Film vor, der sozusagen auf 25,001 fps gewandelt wird: alle 1000 Vollbilder (das sind alle 40 Sekunden) wird man ein Ruckeln feststellen.

[bearbeiten] Der noch größere Alptraum der PC-Hardware

Wenn man einen normalen PAL-DVD-Spieler an seinen Fernseher anschließt, dann sind die Dinge noch einfach. Das Gerät wird den Film von der Scheibe mit 25 fps lesen und das Signal mit ebenfalls 25 fps zum Fernseher senden. Stellen wir uns nun vor, dass das Abspielgerät etwas zu schnell ist und den Film mit 25,01 fps sendet. Was wird geschehen? Fängt es an zu rucken? Nein, denn der Fernseher ist schlau genug sich dieser Geschwindigkeit anzupassen, solange sie in der Nähe von 25 fps liegt. Um genau zu sein wird kein Abspielgerät einen Film wirklich mit genau 25 fps wiedergeben, weil die eingebauten Taktgeber niemals so genau sind. Also wird jedes Wiedergabegerät "ungefähr" mit 25 fps abspielen, aber das ist kein Problem, weil der Fernseher sich mit dem Signal welches er empfängt synchronisiert.

Was passiert aber nun, wenn wir einem DivX-Film auf dem PC wiedergeben und auf dem PC-Monitor anschauen? Zuerst wird sicher ein Ruckeln festzustellen sein, wenn die Bildwiederholrate des Monitors kein Vielfaches der Bildwiederholrate des Films ist. Erinnern wir uns daran, dass ein DivX-Film eine Rate von 24 fps, 25 fps, 23,976 fps, 29,97 fps oder vielleicht sogar 25,001 fps haben kann. Dies ist also die erste und häufigste Ursache für ruckende Wiedergabe.

Die andere Quelle von ruckende Wiedergabe ist viel subtiler und schwerer zu verstehen. Stellen wir uns vor, dass wir einen 25 fps Film auf dem PC wiedergeben. Der Computer ist nicht schlauer als andere DVD-Spieler und wird mit "ungefähr" 25 fps wiedergeben, weil er seinen internen Taktgeber verwendet und dieser ist eben nicht absolut genau. Nun könnte man meinen, dass dies kein großes Problem sein sollte, weil andere DVD-Abspielgeräte es auch so machen. Tatsächlich ist es aber ein sehr großes Problem, weil die Grafikkarte des PC sich nicht mit der Geschwindigkeit des Films synchronisiert, wie es ein DVD-Player an einem Fernseher tun würde. In einem PC sind die Taktgeber der Grafikkarte (die den Film anzeigt) und des PC (der den Film wiedergibt) völlig unabhängig voneinander, deshalb gibt es immer eine kleine Abweichung zwischen ihnen und daher ist eine ruckende Wiedergabe unvermeidbar.

[bearbeiten] Die etwas bessere Geschichte von DirectShow

DirectShow ist ein Teil des DirectX Systems, welches für die Wiedergabe und Aufnahme von Audio und Video zuständig ist. DirectShow enthält viele Module ("Filter") und verbindet sie mittels eines "Filter Graph" untereinander, um zusammen einen Film wiederzugeben.

Als Beispiel sind folgende Schritte notwendig um einen DivX-Film wiederzugeben:

  • Zuerst müssen die Audio und Videodatenströme aus der AVI-Datei separiert werden. Diese Aufgabe übernimmt ein so genannter "Demux Filter".
  • Dann muss der Audiostrom (MP3 z.B.) dekodiert werden. Ein "MP3 Dekoder Filter" ist dafür zuständig.
  • Der Videostrom muss natürlich auch dekodiert werden. Dafür braucht es einen "DivX Dekoder Filter".
  • Nun müssen die dekodierten Videodaten in einem Fenster dargestellt werden. Hierfür ist ein "Video Renderer Filter" zuständig.
  • Und damit man den Ton auch hören kann, braucht man noch einen "Audio Renderer Filter" um die Daten über eine Sound-Karte auszugeben.

[noch zu übersetzen]

DirectShow was cleverly designed because it will automatically search and find what filters are the best to render a movie. For example, the audio and video renderers are completely generic (they are provided by Microsoft) and will eat the output of every decoder filter in the world. That’s one reason why there exist many DIVX players out there. A player is only a nutshell where filter graphs are built and run.

Now, DirectShow has another interesting feature. When building a filter graph, it set up a “reference clock” that is used to provide a unique time to all the filters in the graph. All filters will play their stuff at the speed of the reference clock. The default reference clock in DirectShow is provided by the Microsoft sound renderer. Why? Because in order to play sound correctly, your sound card must receive samples exactly at the speed they will be played. So the default reference clock is in fact synced to a hardware clock somewhere in your sound card. Video frames just follow this clock, making jerkiness inevitable.

You may ask why Microsoft made this choice. They could have chosen to sync the reference clock to the video and all would be nice. I suppose they didn’t for at least two reasons:

  • Video cards do not have a high-resolution hardware timer available to make a clock.
  • Sound playback would become problematic since the sound card would not receive its samples at the speed they would be played. So the sound would not stay synchronised with video.

[bearbeiten] Wie ReClock dabei helfen kann

Nun verstehst Du, was ReClock macht. Es liefert einen Referenz-Zeittakt, der sich mit Deiner Video-Hardware synchronisiert. Wie geht das? Indem das standardmäßige Klangfilter komplett gegen ein neu geschriebenes DirectShow-Filter ausgetauscht wird, was irgendwie klüger ist.

Aber wenn man es so angeht, muß ReClock zwei Probleme lösen, wie wir im letzten Abschnitt sehen konnten:

Grafikkarten besitzen keine Highend-Zeittaktgeber. Nun das ist nicht ganz wahr, da einiges vorhanden ist, was uns weiterhilft. ReClock liefert einen Referenz-Zeittakt, der sich vom Motherboard oder von der CPU ableiten läßt. Nennen wir diesen Zeittakt „system clock“. ReClock verändert nun diese system clock durch Informationen, die ReClock durch das Auswerten von Echtzeitdaten aus der Grafikkarte gewinnt. Aber auch nur dann, wenn die Daten auslesbar sind. Wie das geht, bleibt mein kleines Geheimnis. :)

Richtig, die Klangwiedergabe kann problematisch werden. Wie können wir dies lösen? Indem wir die Klanggeschwindigkeit in Echtzeit verändern, um immer synchron mit dem Video zu bleiben. Dies ist der andere Grund, weswegen wir das standardmäßige Klangfilter gegen unser eigenes Filter austauschen.

Es gibt zwei Ansatzpunkte die Klanggeschwindigkeit zu ändern: Abspielgeschwindigkeit und Tonhöhe. Normalerweise wählt ReClock die Tonhöhe als Stellgröße, um in Echtzeit die Klanggeschwindigkeit anzupassen. Die Tonhöhe wird genommen, da dies der einfachere Weg ist und sich die Klangqualität nicht zu stark verschlechtert. Es erlaubt auch ein feinfühliges Tunen der Video- und Klangsynchronisierung. Dies verändert prinzipiell etwas den Klang, was aber fast nicht heraus hörbar ist, da die Veränderungen sehr gering sind. Ab Version 1.4 kann ReClock eine Veränderung der Tonhöhe gegen eine Veränderung bei der Klanggeschwindigkeit tauschen, um so ohne Tonhöhenfehler die Abspielgeschwindigkeit anzupassen.

Desweiteren paßt ReClock die allgemeine Abspielgeschwindigkeit des Videos an, um so immer als Mehrfaches die Wiederholrate der Bildfrequenz des Monitors zu bekommen. Nun welche Varianten gibt es?

Cinema-Mode liegt vor, wenn die Bildfrequenz ein Mehrfaches von 24 Hz (48 Hz, 72 Hz, 96 Hz, etc...) ist und wenn die Bildgeschwindigkeit im Film zwischen 23,75 und 24,15 Bilder pro Sekunde (fps) beträgt. Die Bild- und Klanggeschwindigkeit wird dann synchron auf genau 24 fps eingestellt.

PAL-Mode ergibt sich, wenn eben Cinema-Mode nicht möglich ist und wenn die Bildfrequenz des Monitors ein Mehrfaches von 25 Hz ist (50 Hz, 75 Hz, 100 Hz, etc...) und wenn die Bildgeschwindigkeit im Film zwischen 23,75 und 25,25 Bilder pro Sekunde (fps) liegt. Die Bild- und Klanggeschwindigkeit wird hier auf genau 25 fps eingestellt.

NTSC-Mode ergibt sich, wenn die Bildfrequenz des Monitors ein Mehrfaches von 30 Hz ist (60 Hz, 120 Hz, etc…). Die Bild- und Klanggeschwindigkeit wird hier auf genau 30 fps fixiert.

Ein Custom-Mode liegt dann vor, wenn die Bildfrequenz des Monitors mit maximal +-2% Abweichung ein Mehrfaches der Bildgeschwindigkeit im Film ist und keiner der obigen Fälle zutrifft. Die Bild- und Klanggeschwindigkeit im Film wird hier genau auf einen Wert festgelegt, der als Mehrfaches die Bildfrequenz des Monitors ergibt.

Schlußendlich wenn gar nichts passen will, wird ReClock die Abspielgeschwindigkeit des Films nicht anpassen, aber die system clock mit der Grafikkarte synchronisieren, um so einen stabilen Zeittakt zu bekommen.

Zwischenbemerkung: Du wirst wahrscheinlich fragen, ob das NTSC-Format gut mit TV und PC zusammenarbeitet, da der PC 30 fps anbietet und der TV 29,97 fps verlangt. Das ist eine gute Frage, auf die ich aber keine vollständige Antwort geben kann: Ich habe seltsamerweise beobachtet, daß wenn ich ReClock gemeinsam mit dem TvTool einer GeForce 3 Karte benutze, erhalte ich einen Referenztakt nahe bei ... 29,97 fps. So scheint es nun zu sein, daß wenn PC und TV im NTSC-Mode laufen, liegt die Bildwiederholrate nicht genau bei 60 Hz, sondern bei 29,97*2 Hz. Ich bin mir dieser Sache nicht sicher, ob da nicht besondere Umstände vorliegen. Trotzdem wird das Abspielen von NTSC-Material mit 30 fps kein Problem geben. Wie Du vielleicht weißt, war NTSC früher ein Schwarz-Weiß-Standard mit 30 Hz und wurde erst als auf Farbe gewechselt wurde auf 29,97 Hz umgestellt.

So ist es nun möglich durch Anpassen des Referenz-Zeittaktes Bild und Klang synchron laufen zu lassen, um so ein super Kinoerlebnis am Monitor oder TV zu ermöglichen.

Aber wie bereits vorher gesagt, arbeitet ReClock nicht mit jedem PC zusammen, weil ReClock auf Funktionen zurückgreift, die nicht jeder PC hat. Erstens muß der PC hochauflösende Zeitgeber besitzen (erfüllt fast jeder heutige PC). Zweitens muß die Grafikkarte bestimmte Befehle unterstützen. Ich weiß, daß fast alle Grafikkarten von nVidia, ATI, Intel i815 und Matrox G200 diese Befehle unterstützen, aber einige ältere und billige Karten nicht. Wenn die Befehle nicht unterstützt werden, lädt ReClock das Programm nicht komplett oder wird eine Fehlermeldung anzeigen. In diesem Falle wird das Microsoft-Audiofilter benutzt.

Darüber hinaus besitzt ReClock gewisse Notwendigkeiten und Grenzen, die Du verstehen mußt:

- ReClock benötigt DirectX 9.0 oder höher. - ReClock arbeitet nur, wenn der Film auch einen Ton besitzt, da ReClock ein Audiofilter ist. - ReClock findet nicht immer die Bildwiederholrate. Zum Beispiel wird Videostreaming niemals unterstützt werden. - Wenn Du zum ersten Mal ReClock für eine bestimmte Auflösung und Bildwiederholrate laufen läßt, wird der Referenz-Zeittakt in den ersten Minuten mit dem falschen Takt arbeiten, um dann danach auf den richtigen Wert korrigiert zu werden. Das kann am Filmanfang zu ruckartigen Bildsprüngen führen. Die Zeit bis zur Korrektur auf den richtigen Zeittakt hängt von vielen Faktoren ab (anfängliche Höhe des Zeittaktfehlers, PC-Geschwindigkeit, ...). Während dieser Phase siehst Du ein blinkendes gelbes oder rotes Symbol in der System Tray. ReClock speichert den Korrekturwert in der Registry, sodaß der Zeittaktkorrekturwert aus der Registry genutzt wird, wenn ein anderes Medium (DVD) spielt. - Ein Wechsel bei der Abspielgeschwindigkeit kann bemerkbar sein, insbesondere wenn 23,976 fps Material auf 25 fps geändert wird. Dabei wird dann die Tonhöhe um 4% angehoben und der Klang wird etwas zu hoch liegen. Wenn Du so etwas nicht haben möchtest, dann kannst Du die Funktion „audio time stretching“ herausnehmen (wird später noch beschrieben).

[bearbeiten] Noch mehr technische Details

Ursprünglich hat Microsoft einen einzigen DirectShow Audio-Renderer entwickelt, genannt den "WaveOut renderer". Dieser Renderer basierter auf einer alten Audio-Technologie die auf Windows 3.0 zurückgeht (nennen wir sie mal die Wave API). Später, als DirectX aufkam entwickelte Microsoft einen neuen Audio-Renderer, genannt "DirectSound renderer". Dieser basiert auf der DirectSound-Technologie (die DirectSound API). Der letztere soll bessere Tonqualität bei geringerer CPU-Last und Latenz bieten. Auf einem "normalen" PC mit DirectX 9.0 oder besser wird der "DirectSound renderer" normalerweise automatisch benutzt. Zur selben Zeit als DirectSound aufkam, fing man an den PC zum abspielen von DVDs einzusetzen. Wie Du weißt haben fast alle DVDs eine 5.1 Dolby- oder DTS-Tonspur (also 6 eigenständige Audio-Kanäle), die von deinem PC mithilfe einer entsprechenden Soundkarte entweder auf mehreren Lautsprechern ausgeben werden können, oder direkt an einen externen AC3-Dekoder/-Verstärker mittels SPDIF gesendet werden. Du siehst, das sind zwei verschiedene Arten mit Ton umzugehen. Wenn du Medien abspielst (MP3, DivX und DVD) und deine Soundkarte die Lautsprecher direkt mit Signalen versorgt, benutzt du PCM (Pulse Coded Modulation). Das werde ich "PCM Modus" nennen. Wenn Du aber einen AC3 oder DTS Strom über SPDIF an einen externen Dekoder/Verstärker sendest, reicht du den AC3-Strom durch. Das werde ich "SPDIF Modus" nennen.

PCM und SPDIF Modus sind von Natur aus sehr verschieden: Im PCM Modus empfängt ReClock die unbearbeiteten Ton-Signalwellen in digitaler Form und sendet sie an die Soundkarte, dabei kann es diese anpassen, weil es versteht was darin kodiert ist. Der Ton kann also umgeformt werden (Tonhöhe oder Wiedergabegeschwindigkeit und die dynamische Kompression angepasst werden). Die Wiedergabegeschwindigkeit anzupassen erlaubt ReClock den Ton wieder mit dem Bild zu synchronisieren. Ein Video bei 25 FPS wiederzugeben, dessen Ton für 24 FPS "entwickelt" wurde ist kein Problem. Jetzt im SPDIF Modus empfängt ReClock einen binär kodierten AC3- oder DTS-Datenstrom und sendet diesen an den externen Dekoder/Verstärker mittels SPDIF-Verbindung. Das Problem besteht darin, dass ReClock nicht versteht was in diesem Datenstrom ist, weil der Inhalt dekodiert werden muss um verstanden zu werden (das ist schließlich Aufgabe eines AC3-/DTS-Dekoder). Also wie kann ReClock die Wiedergabegeschwindigkeit für SPDIF anpassen? Also, gut kann es das jedenfalls nicht. AC3-Rahmen sind in Stücke unterteilt die jeweils eine Spieldauer von 32 Millisekunden haben (Ein Stück wird auch Rahmen oder Paket genannt). Jeder Rahmen ist unabhängig vom vorherigen und nächsten. Um den Ton zu verkürzen verwirft ReClock Rahmen und um ihn zu Strecken wiederholt ReClock Rahmen. Das wird der Verwirf-/Wiederhol-Algorithmus genannt. Normalerweise ist das verwerfen oder wiederholen eines AC3-Rahmens nicht wahrnehmbar, solange es nicht zu oft geschieht (Erinner Dich, ein Rahmen ist nur 32 Millisekunden lang). Aber es ist so nicht möglich ein Medium mit einer Geschwindigkeit abzuspielen, die sehr weit von ihrer ursprünglichen liegt (Ein 24 FPS Medium mit 25 FPS azuspielen wurde den Verlust eines Rahmens alle 25 Rahmen bedeuten, das ist sehr wohl wahrnehmbar). Das ist der Grund, warum ReClock im SPDIF Modus die Wiedergabegeschwindigkeit von Medien nur leicht anpasst (es wird keinen 24 FPS Film auf 25 FPS beschleunigen).

Zusätzlich hat DirectShow auch seine Eigenheiten. Als der WaveOut-Renderer der einzige Weg war Töne abzuspielen wurde er erweitert um SPDIF verarbeiten zu können, damit er mit PCM oder SPDIF umgehen konnte. Als der DirectSound-Renderer aufkam, wurde er von Problemen mit dem Umgang mit SPDIF geplagt und viele Soundkarten-Hersteller hatten diese Probleme mit SPDIF und DirectSound auch. Dieser Renderer wird also weitläufig nicht für SPDIF benutzt. Daraus erkennst Du, dass der beste Weg um PCM-Ton zu behandeln DirectSound ist und der beste Weg um SPDIF-Ton zu behandeln WaveOut ist. Also da ReClock sowohl PCM als auch SPDIF Modi unterstützen muss bietet es beide Welten an: WaveOut API und die DirectSound API, Du hast also die Wahl. In Hinblick darauf ist ReClock also ein Hybrid-Renderer. Schau dir bitte den Paragraphen "Wie man die S/PDIF-Ausgabe optimiert" an, wenn du eine Methode suchst um die Verwerfungen und Wiederholungen im SPDIF Modus zu verringern.

Lass uns jetzt über Video-Renderer in DirectShow sprechen. Genauso wie beim Ton hat Microsoft über die Jahre verschiedene Video-Renderer entwickelt.

- Zuerst den "Alten Renderer": Er benutzt alte Technologie, ist langsam und sollte nicht mehr benutzt werden
- Dann den "Overlay Mixer": Dieser benutzt die "Overlay"-Fähigkeit von Grafikkarten die auf DirectDraw basieren. Overlay ist eine Technologie die einer Anwendung effizient erlaubt Bilder auf dem Bildschirm darzustellen, hat aber ihre Grenzen: Nicht alle Karten unterstützen Overlay und Du bist auf ein Video pro Bildschirm (ein "Overlay") begrenzt. Es kann außerdem zu Problemen mit TV-Ausgabe kommen. Unabhängig von seinen Grenzen, wird der "Overlay Mixer" immernoch breitflächig eingesetzt
- Als Windows XP erschien tauchte der "Video Mixing Renderer", auch VMR7 genannt auf: Dieser basiert auf Direct3D und hat keine Einschränkungen. Aber Deine Grafikkarte muß ihn unterstützen (aktuelle Karte und aktuelle Treiber). VMR7 wird benutzt vom Windows Media Player unter Windows XP.
- Und endlich als DirectX 9.0 erschien wurde eine zweite eigene Version vom VMR freigegeben, genannt VMR9: Es handelt sich dabei um einen verbesserten VMR7 mit noch mehr Fähigkeiten. Du brauchst eine gute Abspielsoftware wenn Du ihn ausprobieren möchtest (beispielsweise ZoomPlayer)
- Manche Abspielsoftware wie der BSPlayer haben auch ihren eigenen Video-Renderer

[bearbeiten] Installation und Einstellung von ReClock

Die Installation ist wirklich einfach. Starte einfach die Datei Setup.exe. Die Voreinstellung installiert ReClock in den Ordner C:\Programme\ReClock. Zusätzlich wird im Startmenü eine neue Gruppe erstellt, die Zugriff auf das Konfigurations-Programm, das ReadMe und das Deinstallations-Programm ermöglicht. Das Entfernen von ReClock ist genauso einfach. Man kann es entweder über Systemsteuerung -> Software in Windows entfernen oder die Startmenü-Gruppe von ReClock verwenden. Bitte nicht selber den ReClock-Ordner löschen oder eine manuelle De-Registrierung des Filters versuchen, weil sonst die Anwendung nicht richtig entfernt wird! Solltest du bei der De-Installation etwas falsch gemacht haben, dann installiere ReClock einfach erneut und benutze dann die normale Vorgehensweise zum Entfernen. Danach sollte alles wieder in Ordnung sein.

Nun kannst du das Konfigurations-Programm starten, um einige Einstellungen vorzunehmen. Wie gesagt befindet sich der Eintrag ("Configure ReClock") im Startmenü.

Hier ist eine Übersicht über das Konfigurations-Programm:

Bild:Audio.png

Wenn du nicht weißt was du auswählen sollst oder du dich bei der Einstellerei völlig verzettelt hast, dann benutze folgendes Vorgehen um wieder die Voreinstellungen zu erhalten:

  1. Gehe zu dem Reiter "Advanced Settings" und drücke auf "Restore default settings"
  2. Auf dem gleichen Reiter drücke einmal auf "Clean-up video timings database"
  3. Dann gehe zu dem Reiter "Video settings" und drücke auf "Clean-up manual frame rate database"

Bild:Video.png

Bild:Advanced.png

[bearbeiten] Benutzung von ReClock

Jetzt da du weißt was DirectShow und ReClock tun, werde ich hier etwas technisches Wissen erklären, dass nützlich ist um ReClock voll zu benutzen.

Ursprünglich hat Microsoft einen einzigen DirectShow Audio-Renderer entwickelt, genannt den "WaveOut renderer". Dieser Renderer basierter auf einer alten Audio-Technologie die auf Windows 3.0 zurückgeht (nennen wir sie mal die Wave API). Später, als DirectX aufkam entwickelte Microsoft einen neuen Audio-Renderer, genannt "DirectSound renderer". Dieser basiert auf der DirectSound-Technologie (die DirectSound API). Der letztere soll bessere Tonqualität bei geringerer CPU-Last und Latenz bieten. Auf einem "normalen" PC mit DirectX 9.0 oder besser wird der "DirectSound renderer" normalerweise automatisch benutzt.

Zur selben Zeit als DirectSound aufkam, fing man an den PC zum abspielen von DVDs einzusetzen. Wie Du weißt haben fast alle DVDs eine 5.1 Dolby- oder DTS-Tonspur (also 6 eigenständige Audio-Kanäle), die von deinem PC mithilfe einer entsprechenden Soundkarte entweder auf mehreren Lautsprechern ausgeben werden können, oder direkt an einen externen AC3-Dekoder/-Verstärker mittels SPDIF gesendet werden. Du siehst, das sind zwei verschiedene Arten mit Ton umzugehen. Wenn du Medien abspielst (MP3, DivX und DVD) und deine Soundkarte die Lautsprecher direkt mit Signalen versorgt, benutzt du PCM (Pulse Coded Modulation). Das werde ich "PCM Modus" nennen. Wenn Du aber einen AC3 oder DTS Strom über SPDIF an einen externen Dekoder/Verstärker sendest, reicht du den AC3-Strom durch. Das werde ich "SPDIF Modus" nennen.

PCM und SPDIF Modus sind von Natur aus sehr verschieden: Im PCM Modus empfängt ReClock die unbearbeiteten Ton-Signalwellen in digitaler Form und sendet sie an die Soundkarte, dabei kann es diese anpassen, weil es versteht was darin kodiert ist. Der Ton kann also umgeformt werden (Tonhöhe oder Wiedergabegeschwindigkeit und die dynamische Kompression angepasst werden). Die Wiedergabegeschwindigkeit anzupassen erlaubt ReClock den Ton wieder mit dem Bild zu synchronisieren. Ein Video bei 25 FPS wiederzugeben, dessen Ton für 24 FPS "entwickelt" wurde ist kein Problem. Jetzt im SPDIF Modus empfängt ReClock einen binär kodierten AC3- oder DTS-Datenstrom und sendet diesen an den externen Dekoder/Verstärker mittels SPDIF-Verbindung. Das Problem besteht darin, dass ReClock nicht versteht was in diesem Datenstrom ist, weil der Inhalt dekodiert werden muss um verstanden zu werden (das ist schließlich Aufgabe eines AC3-/DTS-Dekoder). Also wie kann ReClock die Wiedergabegeschwindigkeit für SPDIF anpassen? Also, gut kann es das jedenfalls nicht. AC3-Rahmen sind in Stücke unterteilt die jeweils eine Spieldauer von 32 Millisekunden haben (Ein Stück wird auch Rahmen oder Paket genannt). Jeder Rahmen ist unabhängig vom vorherigen und nächsten. Um den Ton zu verkürzen verwirft ReClock Rahmen und um ihn zu Strecken wiederholt ReClock Rahmen. Das wird der Verwirf-/Wiederhol-Algorithmus genannt. Normalerweise ist das verwerfen oder wiederholen eines AC3-Rahmens nicht wahrnehmbar, solange es nicht zu oft geschieht (Erinner Dich, ein Rahmen ist nur 32 Millisekunden lang). Aber es ist so nicht möglich ein Medium mit einer Geschwindigkeit abzuspielen, die sehr weit von ihrer ursprünglichen liegt (Ein 24 FPS Medium mit 25 FPS azuspielen wurde den Verlust eines Rahmens alle 25 Rahmen bedeuten, das ist sehr wohl wahrnehmbar). Das ist der Grund, warum ReClock im SPDIF Modus die Wiedergabegeschwindigkeit von Medien nur leicht anpasst (es wird keinen 24 FPS Film auf 25 FPS beschleunigen).

Zusätzlich hat DirectShow auch seine Eigenheiten. Als der WaveOut-Renderer der einzige Weg war Töne abzuspielen wurde er erweitert um SPDIF verarbeiten zu können, damit er mit PCM oder SPDIF umgehen konnte. Als der DirectSound-Renderer aufkam, wurde er von Problemen mit dem Umgang mit SPDIF geplagt und viele Soundkarten-Hersteller hatten diese Probleme mit SPDIF und DirectSound auch. Dieser Renderer wird also weitläufig nicht für SPDIF benutzt. Daraus erkennst Du, dass der beste Weg um PCM-Ton zu behandeln DirectSound ist und der beste Weg um SPDIF-Ton zu behandeln WaveOut ist. Also da ReClock sowohl PCM als auch SPDIF Modi unterstützen muss bietet es beide Welten an: WaveOut API und die DirectSound API, Du hast also die Wahl. In Hinblick darauf ist ReClock also ein Hybrid-Renderer. Schau dir bitte den Paragraphen "Wie man die S/PDIF-Ausgabe optimiert" an, wenn du eine Methode suchst um die Verwerfungen und Wiederholungen im SPDIF Modus zu verringern.

Lass uns jetzt über Video-Renderer in DirectShow sprechen. Genauso wie beim Ton hat Microsoft über die Jahre verschiedene Video-Renderer entwickelt.

- Zuerst den "Alten Renderer": Er benutzt alte Technologie, ist langsam und sollte nicht mehr benutzt werden
- Dann den "Overlay Mixer": Dieser benutzt die "Overlay"-Fähigkeit von Grafikkarten die auf DirectDraw basieren. Overlay ist eine Technologie die einer Anwendung effizient erlaubt Bilder auf dem Bildschirm darzustellen, hat aber ihre Grenzen: Nicht alle Karten unterstützen Overlay und Du bist auf ein Video pro Bildschirm (ein "Overlay") begrenzt. Es kann außerdem zu Problemen mit TV-Ausgabe kommen. Unabhängig von seinen Grenzen, wird der "Overlay Mixer" immernoch breitflächig eingesetzt
- Als Windows XP erschien tauchte der "Video Mixing Renderer", auch VMR7 genannt auf: Dieser basiert auf Direct3D und hat keine Einschränkungen. Aber Deine Grafikkarte muß ihn unterstützen (aktuelle Karte und aktuelle Treiber). VMR7 wird benutzt vom Windows Media Player unter Windows XP.
- Und endlich als DirectX 9.0 erschien wurde eine zweite eigene Version vom VMR freigegeben, genannt VMR9: Es handelt sich dabei um einen verbesserten VMR7 mit noch mehr Fähigkeiten. Du brauchst eine gute Abspielsoftware wenn Du ihn ausprobieren möchtest (beispielsweise ZoomPlayer)
- Manche Abspielsoftware wie der BSPlayer haben auch ihren eigenen Video-Renderer

[bearbeiten] Verwendung eines TV-Ausganges mit ReClock

Zuerst solltest du bei einer "dual head" Grafikkarte (eine Karte mit der Möglichkeit verschiedene Bilder auf dem PC-Monitor und dem TV gleichzeitig auszugeben, wie z.B. eine Radeon), den TV-Ausgang als primäre Ausgabe setzen oder sicherstellen, dass das Abspiel-Programm auf dem Monitor gestartet wird, der für die TV-Ausgabe zuständig ist (normalerweise der sekundäre Monitor). Benutze nicht den "theater mode". Nun aktiviere den TV-Ausgang. Wenn deine Karte ein Hilfsprogramm (wie TVTool) benutzt, dann starte es und aktiviere dort den TV-Ausgang.

Nun starte dein Abspiel-Programm und öffne eine Mediendatei. Überprüfe ob die von ReClock festgestellte Grafikkarten-Bildwiederholfrequenz (video hardware / refresh rate) folgenden Wert hat:

  • 50 Hz wenn dein TV mit PAL arbeitet
  • 60 Hz wenn er mit NTSC arbeitet

Wenn die von ReClock festgestellte Frequenz nicht der Frequenz deines TV entspricht, dann ist ReClock entweder nicht kompatibel mit deiner Grafikkarte oder hat nicht das richtige Wiedergabegerät festgestellt (vergleiche hierzu die Angaben von ReClock unter "video hardware" mit denen von Systemsteuerung -> Anzeige - > Eigenschaften von Windows).

Wichtiger Hinweis: Wenn die Größe oder Bildlage der TV-Ausgabe mit dem Bedienfeld der Grafikkarte (oder TVTool) verändert wird, vergesse hinterher nicht das Abspiel-Programm zu beenden und neu zu starten, weil ReClock dann ebenfalls neu berechnen muss, inwiefern die Taktgeber der Grafikkarte dadurch beeinflusst wurden. Vergisst man diesen Schritt, dann ist die die Gefahr groß, wieder ruckelnde Wiedergabe zu bekommen. Wenn etwas schief läuft, kannst du die ReClock Takt-Korrektur auch "erneut lernen" lassen, indem du den Knopf "Clean-up video timing database" in dem Konfigurations-Programm drückst.

Bisher wurde ReClock auf folgenden Grafikkarten erfolgreich getestet:

  • GeForce 2/3 Karten mit TVTool oder mitgelieferten Treibern
  • Radeon-Karten mit TV-Ausgang

Wenn du nicht sicher bist ob ReClock den richtigen Taktgeber deiner Grafikkarte benutzt, dann kannst du mit den "VSYNC Tools" feststellen, ob dies der Fall ist oder nicht. Lese dazu den nächsten Absatz.

[bearbeiten] Benutzung der "VSYNC Tools"

ReClock stellt sicher, dass die Einzelbilder in einer Geschwindigkeit wiedergegeben werden, die genau einem Vielfachen der Grafikkarten-Bildwiederholfrequenz entspricht. Aber wir haben noch ein weiteres Problem zu beachten: die vertikale Synchronisation der Grafikkarte (VSYNC) in Abhängigkeit mit der Bildfolge des Films. Der VSYNC ist ein Signal oder Impuls, der den Anfang der Übertragung eines neuen Einzelbildes an der TV, Monitor oder Projektor einleitet. Der VSYNC wird auch als „vertikales Synchronisationssignal“ oder „vertikales Austastlückensignal“ bezeichnet.

Jedes Mal wenn der Video-Renderer ein neues Bild auf dem Wiedergabegerät darstellen will, wartet er normalerweise solange, bis er genug Zeit hat, um dieses Bild innerhalb einer Bildwiederholung der Grafikkarte zu übertragen. Wenn ihm dieses nicht möglich ist, dann wartet er auf die nächste Bildwiederholung der Grafikkarte, bevor er mit der Übertragung beginnt. Wenn man nun Pech hat, dann kommt jedes neue Film-Bild sehr nahe an einen VSYNC und man hat plötzlich eine andauernd ruckende Wiedergabe, weil der Video-Renderer sich manchmal dafür entscheidet auf den nächsten VSYNC zu warten oder auch nicht, abhängig davon wie spät ihm das neue Bild zugespielt wird.

ReClock versucht nun dieses Problem zu beseitigen, indem es sicherstellt, dass der VSYNC nicht zur gleichen Zeit wie die Ankunft eines neuen Bildes beim Video-Renderer erfolgt.

Wenn du die VSYNC-Korrektur aktivieren möchtest, solltest du überprüfen, dass diese in der Konfigurations-Anwendung angeschaltet ist (beachte dazu die Optionen "Enable VSYNC correction with VMR9" und "Enable VSYNC correction with other renderers"). Du kannst wählen, ob es für alle Video-Renderer aktiviert werden soll, oder für alle außer VMR9 oder nur für VMR9 (dazu später mehr).

Die VSYNC-Korrektur wird sich nur aktivieren, wenn die durch die "media adaptation" angepasste Bildwiederholrate des Mediums ein ziemlich exaktes Vielfaches der Grafikkarten-Bildwiederholfrequenz ist (z.B. ein 25 fps Film, der auf einem Bildschirm mit 75 Hz Wiederholfrequenz dargestellt wird). Da sich VSYNC-Probleme nur beheben lassen, wenn man ein gemeinsames Vielfaches zwischen der Video-Frequenz und der Bildschirm-Frequenz hat, sind die VSYNC-Tools unter anderen Bedingungen deaktiviert.

Die "VSYNC Tools" haben drei vornehmliche Zwecke:

  1. Sie können auf dem Schirm anzeigen, wann ein VSYNC stattfindet. Um diese Funktion zu aktivieren, hake die Option "Show VSYNC on screen" an. Nun sollte man auf dem Schirm einen Haufen von senkrecht angeordneten Punkten sehen. Jeder Punkt steht nun für einen VSYNC der während der letzten 100 wiedergegebenen Bilder erfolgt ist. Zusätzlich sieht man eine kleine waagerechte Linie in der Mitte dieses Haufens von Punkten. Diesen Balken nennen wir ab jetzt den VSYNC-Balken.
    • Die Höhe des Haufens zeigt an, wie gleichmäßig die Bilder an den Renderer geliefert werden. Wenn die Höhe des Haufens klein ist (ca. 10-15% von der Höhe des Video), dann ist die Wiedergabe als gut anzusehen.
    • Die Position des VSYNC-Balkens ist ebenfalls wichtig. Es gibt einige Positionen an welchen man ruckende Wiedergabe feststellen wird, weil an diesen Stellen die Bilder zeitlich nahe am VSYNC zu dem Renderer geliefert werden. Wie man dieses verhindern kann wird später unter (3) beschreiben.
    • Die Bewegungen des VSYNC-Balkens ist auch aussagekräftig. Wenn er sehr ruhig und stabil an einer Position bleibt (und nicht über den Bildschirm läuft um auf der anderen Seite wieder aufzutauchen), werden die Bilder in einem exakten Vielfachen der Bildschirmfrequenz and den Renderer geliefert. Man kann dann davon ausgehen, dass ReClock den richtigen Hardware-Taktgeber gefunden hat. Insbesondere bei Mehrschirm-Betrieb könnte es nämlich u.U. zur Erkennung des falschen Bildschirms kommen.
  2. Sie können anzeigen, ob man eine ruckende Wiedergabe hat oder nicht. Um dieses Erkennen zu können muss man „Tearing test“ in den Eigenschaften von ReClock ankreuzen. Dann sieht man einen senkrechten Balken der sich von links nach rechts über das Video bewegt. Wenn dieser Balken irgendwo unterbrochen und versetzt ist, dann hat man ein „Tearing“ Problem. Dieses entsteht wenn der Renderer zwei unterschiedliche Bilder zur gleichen Zeit darstellt, da das Zusammenspiel mit dem Bildschirmspeicher nicht richtig funktioniert. In diesem Fall sollte man einen anderen Video-Renderer ausprobieren, ein anderes Abspielprogramm oder vielleicht nach einer anderen Version des Grafikkarten-Treibers Ausschau halten.. Wenn sich dieser Balken ungleichmäßig oder stotternd bewegt, dann hat man definitiv ruckende Video-Wiedergabe. Einige (von vielen) möglichen Ursachen könnten sein:
    • Der Prozessor des Rechners ist nicht ausreichend schnell um das Video reibungslos wiederzugeben.
    • Die Bilder werden während des VSYNC an den Video-Renderer geliefert. Die Lösung dieses Problems werden wir jetzt in (3) erklären.
  3. Sie können den Referenz-Zeittakt verstellen um eine Übertragung der Bilder zu einem schlechten Zeitpunkt (während des VSYNC) zu verhindern. Wenn man „Enable VSYNC correction“ in der „VSync adaption“ Gruppe der ReClock-Eigenschaften oder im ReClock-Konfigurations-Programm eingeschaltet hat, wird diese Funktion aktiviert. Wenn nun „Show VSYNC on screen“ ebenfalls aktiviert wird, dann werden zwei weitere waagerechte Balken auf der linken Seite des Video-Wiedergabefenster angezeigt. Diese beiden Balken sind die Begrenzungen die ReClock dem VSYNC-Balken auferlegen will. Sowie der VSYNC-Balken diese Grenzen überschreitet, wird ReClock eine Feineinstellung des Referenz-Zeittaktes vornehmen, um den Balken wieder in seine Begrenzung zu bringen. Diese Feineinstellung hat selber keinen sichtbaren Einfluss auf die Laufruhe der Bildwiedergabe, aber sie stellt sicher, dass es nicht zu plötzlich ruckender Wiedergabe kommt. Wie vorherigen Punkt schon erwähnt wurde, gibt es einige Positionen des VSYNC-Balkens die in der Regel zu ruckender Wiedergabe führen. Nach meiner Erfahrung hängen diese Positionen von dem verwendeten Rechner ab. Deshalb ist es möglich die Position der Begrenzung selber einzustellen durch den Schieber mit der Bezeichnung „Target VSYNC position“ im Konfigurations-Programm.


Hier nun die Prozedur um eine gute Einstellung zu finden:

  • Starte das Konfigurations-Programm, aktiviere die beiden „Enable VSYNC Correction“ Auswahlboxen und bewege den Schieber ganz nach links.
  • Starte dein Wiedergabe-Programm, lade ein Video zur Wiedergabe und aktiviere den „Tearing test“ in den ReClock-Eigenschaften. Nun verstelle langsam die VSYNC-Begrenzung (durch das Drücken von Shift+Ctrl+Alt+F11 und Shift+Ctrl+Alt+F12) um den VSYNC-Balken über den ganzen möglichen Bereich wandern zu lassen. Nicht zu schnell sein, da der VSYNC-Balken immer ein wenig Zeit braucht um der Begrenzung zu folgen. An mancher Position des VSYNC-Balkens wird man nun ein Rucken oder Stottern des laufenden Testbalkens erkennen. Diese Positionen merkt man sich.
  • Nachdem man nun die problematischen Positionen identifiziert hat, stellt man die VSYNC-Begrenzung nun so ein, dass sie die größte Entfernung zu diesen Positionen hat. Hat man zum Beispiel festgestellt, dass man eine einzige problematische Stelle (mehr sind eigentlich eher selten) bei etwa ¼ des Verstellweges hat, dann stellt man die Begrenzung auf ¾ ein. Sollte die problematische Stelle genau in der Mitte des Verstellweges auftauchen, dann stellt man die Begrenzung ganz nach oben oder unten. Und entsprechend für alle anderen Fälle.

Dennoch kann je nach dem verwendeten Video-Renderer die VSYNC-Korrektur gegen eine ähnliche Funktion kämpfen, die in dem Video-Renderer selbst implementiert ist. Hier ist die Situation soweit ich sie mit den gängigen Video-Renderern festgestellt habe (aber ich glaube, dass es auf einem Rechner mit anderer Hardware ganz anders aussehen könnte):

  • Interner Renderer von BSPlayer: Die VSYNC-Korrektur funktioniert nicht und wird deaktiviert.
  • Overlay Mixer: funktioniert gut
  • VMR7: funktioniert auch gut
  • VMR9: Dieser Renderer scheint eine interne Funktion zu haben, die etwas Ähnliches versucht und deshalb irgendwie gegen die VSYNC-Korrektur von ReClock arbeitet. Das ist der Grund, warum man für diesen Renderer die VSYNC-Korrektur in der Konfigurations-Anwendung abschalten kann.

Unter Umständen sollte die VSYNC-Korrektur mit unterschiedlichen Wiedergabe-Programmen getestet werden. Die zwei besten Programme, die ich kenne sind Zoom Player und Media Player Classic, weil sie beide die Auswahl des zu benutzenden Video-Renderer erlauben.

[bearbeiten] Wie man die S/PDIF-Ausgabe optimiert

Wie vorher schon gesagt, wird bei S/PDIF-Ausgabe der Ton mit dem Videoanteil synchronisiert, indem einzelne AC3-Pakete ausgelassen oder wiederholt werden. Dieses Verfahren kann gelegentlich als Störung des Tones durchaus wahrgenommen werden und klingt dann sehr unangenehm.

Was können wir dagegen tun? Zuerst solltest du versuchen die Mediendateien so wiederzugeben, dass sie nicht so stark „ReClocked“ werden müssen. Zum Beispiel führt das Erzwingen der Wiedergabe von 25 fps Material bei 24 fps zu einem enormen Verlust von 4% der Tonpakete. Das ist einfach zuviel und sollte vermieden werden.

Deshalb folge bitte diesen Richtlinien:

  • Wenn du ein Medium mit 25 fps (PAL DVD) wiedergeben willst, dann stelle für deinem Monitor oder Projektor eine Bildwiederholfrequenz von 50 Hz, 75 Hz oder 100 Hz ein.
  • Wenn du ein Medium mit 23,976 fps (progressive NTSC DVD) oder 24 fps wiedergeben willst, dann stelle für deinen Monitor oder Projektor eine Bildwiederholfrequenz von 48 Hz, 72 Hz, 96 Hz oder 120 Hz ein.
  • Wenn du ein Medium mit 29,970 fps oder 30 fps wiedergeben willst, dann stelle für deinen Monitor oder Projektor eine Bildwiederholfrequenz von 60 Hz oder 120 Hz ein.
  • Wenn das Medium in keine der vorgenannten Kategorien fällt, dann benutze die „media adaptation“ mit der Bezeichnung „refresh rate / x“ bei der „x“ die geringste Geschwindigkeitsdifferenz für das Medium ergibt. Zum Beispiel wenn du eine progressive NTSC DVD (23,976 fps) auf einem NTSC-Fernseher (60 Hz) wiedergeben willst, dann solltest du „refresh rate / 2.5“ auswählen, weil dadurch das Medium auf 24 fps „ReClocked“ wird.

Nachdem nun also die „media adaptation“ richtig eingestellt ist, gibt es noch eine Möglichkeit um die Sache zu verbessern. Wir können die Bildwiederholfrequenz der Grafikkarte durch Feineinstellung besser an die Taktfrequenz der Audiokarte anpassen und dadurch die Anzahl von ausgelassenen oder verdoppelten AC3-Paketen vermindern. Dafür brauchen wir ein Hilfsprogramm mit dem Namen „Powerstrip“, welches bei www.entechtaiwan.com erhältlich ist.

Die Prozedur ist etwas heikel und sollte deshalb besser von Leuten gemacht werden, die sich schon etwas mit dem Thema auskennen.

  1. Baue deine Hardware ordentlich auf und stelle die richtige Bildwiederholfrequenz deiner Grafikkarte ein.
  2. Starte die Konfigurations-Anwendung von ReClock und drücke einmal auf "Cleanup manual frame rates database".
  3. Starte dein bevorzugtes Wiedergabeprogramm, beginne mit der Wiedergabe eines Mediums mit AC3-Ton und stelle die „media adaptation“ wie benötigt ein. Nun warte bis sich die „system clock correction“ auf einem sehr niedrigen Wert stabilisiert hat (unter 10 ppm).
  4. Stoppe die Wiedergabe und starte sie erneut für 30 Minuten. Danach kannst du in dem Eigenschaften-Fenster die Anzahl der „dropped“ und „repeated“ AC3-Pakete sehen. Nun mache folgende kleine Berechnung:
    E = (Anzahl der „repeat“ Pakete) – (Anzahl der „drop“ Pakete)
    t = Länge der Testwiedergabe in Sekunden (also hier z.B. 30min * 60 = 1800)
    FAKTOR = 1 + {E * 0,032 \over t}
  5. Beende das Wiedergabeprogramm.
  6. Starte nun Powerstrip und gehe zu Display profiles -> Configure -> Advanced timing options und setze einen Haken bei "Ultra fine geometry". Nun schaue auf den Wert den Powerstrip als Bildwiederholfrequenz (refresh rate) anzeigt, multipliziere diesen mit dem vorher berechneten FAKTOR und gebe dieses Ergebnis als neuen Wert ein.
  7. Gehe zurück zu Punkt 2. und wiederhole diese Schritte, bis eine optimale Wiederholfrequenz gefunden wurde.

Anstelle einer Neuberechnung kann man alternativ auch einfach die Bildwiederholfrequenz ein kleines Stück erhöhen, wenn man ein E > 0 hat (also mehr „repeat“ Pakete) oder entsprechend verkleinern, wenn man ein E < 0 bekommt (also mehr „drop“ Pakete).

Es gibt auch noch ein anderes Verfahren, welches eine wesentlich genauere Einstellung ermöglicht. Hierfür gibt es eine eigene Seite unter "HTPC Bildfrequenz Optimierung"

[bearbeiten] Weblinks

Persönliche Werkzeuge