Videotearing in Linux (Manjaro/Arch) und XBMC

What the heck is Videotearing?

Tearing äußert sich auf dem Monitor dadurch, dass horizontale Streifen durch das komplette Bild wahrnehmbar sind. Das ist vorallem bei Videos und Filmen ärgerlich, da das Bild anfängt zu stocken und ziemlich „zerrissen“ ausschaut. Extrem fällt das bei schnellen Kameraschwenks auf. Es vermittelt den Eindruck als würde man mehrere Bilder gleichzeitig sehen, die alle ein bisschen verschoben sind (wobei genau das auch der Grund ist, siehe unten). Es gibt mehr als genug Beispiele wirft man einfach die Google Bildersuche an. Kurzum, ein Spaßkiller möchte man einen entspannten Filmabend verbringen.

Woher kommt’s?

Das Problem liegt hierbei an der Grafikkarte, diese berechnet und schickt die Bilder schneller an den Monitor als der sie darstellen kann. Das fällt extrem auf bei den genannten schnellen Kameraschwenks. Bevor ein Bild komplett auf dem Monitor angezeigt wird, schick die Grafikkarte schon das nächste Bild, welches der Monitor dann sofort anfängt darzustellen. Dadurch wird das typische Muster erzeugt, dass auf dem Monitor untereinander gleichzeitig verschiedene Bilder dargestellt werden, die deutlich mit einem Streifen getrennt sind. Je nach Film kann dies zu extremen Rucklern oder Verzerrungen führen. Gerade bei schnellen Actionfilmen wird dadurch der Film „unschaubar“.

Was tun?

Abhilfe schafft hier die sogenannte Vertical Synchronisation, kurz VSync. Ist sie eingeschaltet wartet die Grafikkarte bis der Monitor fertig ist ein Bild darzustellen und schickt erst dann das nächste Bild an den Monitor. Diese Option kann man so gut wie bei jeder Grafikkarte in den Einstellungen aktivieren.

Wo liegt dann das Problem?

Was tun, wenn VSync aktiviert ist (in XBMC und in XFCE4) das Problem aber trotzdem noch auftritt? Ja das ist die große Frage. Ich habe sämtliche Optionen und Lösungsansätze getestet die ich im Netz gefunden. Dort habe ich die Lösung dann auch gefunden. Es stellte sich heraus, dass die aktuelle Version von XOrg das Problem war. Ab 1.15.0 ist die sogenannte „backing store function“ standardmäßig aktiviert, welche zu genau diesem Problem führt.

Lösung

Ich habe momentan Manjaro Linux (basiert auf Archlinux) mit XFCE auf meinem mini Media PC mit einer integrierten Intel Grafik am laufen.

Also hab ich zuerst versucht VSync zu aktivieren. In Manjaro muss hierzu diese Datei bearbeitet /etc/X11/mhwd.d/intel.conf (bei purem Arch wäre es: /etc/X11/xorg.conf.d/20-intel.conf) und um folgendes ergänzt/abgeändert werden:

Section "Device"
   Identifier "Intel Graphics"
   Option "SwapbuffersWait" "true"
   Option "AccelMethod"  "sna"
   Option "TearFree" "true"
EndSection

Hiermit wird VSync (TearFree) aktiviert.

Siehe Update 1.

Des weiteren habe ich über Probleme des Compositing gelesen und entschlossen dieses in den XFCE optionen komplett zu deaktivieren. Da ich den PC sowieso nur für MPD, XBMC und ähnliches benutzen möchte, brauche ich hier sowieso keine „fancy“ Effekte 😉

Der letzte Schritt in Manjaro/Arch war dann die backingstore Funktion zu deaktivieren. Das ganze ist in Arch super einfach, es muss lediglich das AUR Repository eingerichtet sein – was in Manjaro schon ab Installation vorhanden ist. Dann einfach ein kurzes:

yaourt -S sdl-nobackingstore

Und nach einem Reboot läuft alles wie man sich das wünscht. Besonders schön ist es in XBMC noch die Funktion „Adjust display refresh rate to match video“ zu aktivieren (vorausgesetzt der Fernseher unterstützt alle Videomodi wie z.B. 24p). Dadurch erhält man ein noch flüssigeres und angenehmeres Filme-Erlebnis 😉

Auch für Ubuntu Jünger gibt es hier Abhilfe (siehe Eintrag #12).

Update 1

Nach mehreren Stunden Videos ist mir aufgefallen, dass das Bild nach einer gewissen Zeit anfängt zu stottern und ab und zu kleine Lags auftauchen. Das äußert sich so, dass das Bild ganz kurz stehen bleibt und dann in doppelter Geschwindigkeit läuft bis es wieder synchron ist, danach läuft es ganz normal weiter. Komisch ist, dass es nicht durchgängig auftaucht. Nachdem ich das neuste Systemupgrade von Manjaro installiert hatte, XBMC auf 13.2 RC1 upgegraded und TearFree wieder deaktiviert hatte (nobackinstore + XBMC VSync reicht vollkommen aus um das Tearing zu verhindern), funktionierte alles einwandfrei ohne Ruckler. Was genau das Problem ausgelöst hat weiß ich nicht, aber in der Konfiguration funktioniert alles wunderbar.

Sound & Codecs – Wer blickt da noch durch?

Ich habe die letzten paar Tage viel Zeit damit verbracht in der Welt des Filmtons durch zu blicken und möchte deswegen meine Erkenntnisse veröffentlichen, vielleicht nützt es jemand anderem auch.

Grund der ganzen Aktion war eigentlich die Frage ob ich HD-Audio-Codecs auf meinem (Sound-)System abspielen kann. Mein Aufbau sieht wie folgt aus:

Ich habe einen Laptop mit HDMI-Port + Bluray Laufwerk der per HDMI-Kabel mit dem Yamaha AV-Receiver (Mit HD-Audio-Decoder) verbunden ist. An diesem hängt direkt das Teufel Soundsystem. Zu erwähnen sind die Dipolboxen, die einen unglaublich guten indirekten Sound in der Raum bringen. Es klingt als wären überall im Raum Boxen verteilt. Das war der absolute Preisknüller 🙂 . Teufel verkauft unglaublich „billig“, sehr gute Soundsysteme. Natürlich hängt auch der Fernseher mit HDMI-Kabel am AV-Receiver.

Aber jetzt möchte ich von ganz vorne beginnen und zwar mit den Codecs.

(Ich hoffe ich werde Mbit und Mb nich verwechseln 😛 und komme immer mit den Richtigen Maßen klar, falls nicht, bitte Comment 😉 Danke)

Codecs & Formate – Was gibt es denn so?

Bitstream

Auch wenn dies weder ein Codec noch ein Format ist, möchte ich kurz erklären, dass der Bitstream eine völlig unbearbeitete Weitergabe des digitalen Signals an den Ausgang ist.

PCM – Puls-Code-Modulation

PCM ist der unkomprimierte Stereo Mehrkanalton. (Also auch kein Codec)

Die bekannten Formate:

Dolby Digital 5.1

Der wohl bekannteste Codec überhaupt. Dieses Tonformat war der Standard auf allen normalen Video/Film-DVDs und wir immer noch am meisten verwendet. Bei Blurays erreicht er eine Übertragungsrate von 640 kbit/s, bei normalen DVDs beträgt sie meist 384 oder 448 kbit/s.

DTS – Digital Theater Systems

Mit Dolby Digital der bekannteste und verbreitetste Codec. Mit neueren DVDs kam auch sehr oft eine DTS-Tonspur. Er ist weniger komprimiert und bietet dadurch eine bessere Soundqualität, war aber leider nicht auf allen DVDs zu finden. Auf DVDs wird meistens eine Bitrate von 768kbit/s verwendet, auch wenn bis zu 1538kbit/s möglich wären, die es aber nur selten auf DVDs zu bewundern gab. Selbst auf Blurays hat eine normale DTS-Spurt meist 768kbit/s.

Unbekanntere Soundformate:

Dolby Digital EX

Bei diesem Format wird ein Back-Surround- oder Center-Surround-Lautsprecher hinzugefügt. Hierdurch kommt man auf 6.1. Dies wird allerdings nur benutzt wenn die beiden hinteren Lautsprecher sehr weit auseinander stehen. Habe ich persönlich noch nie gesehen.

DTS-ES Discrete 6.1

Ähnlich wie das Dolby Digital EX-Format wird hier eine 6.1 Anordnung hergestellt. Discrete bedeutet, dass jeder Kanal unabhängig von einander Aufgenommen werden kann.

„Upscaling“ Formate:

Dolby Pro Logic (II)

Durch dieses Format können Stereoquellen auf 5.1 Sound decodiert werden und wird somit vor allem bei alten Stereo-DVDs (Serien auf DVD) oder bei angeschlossenem Computer bei Spielen und Musik häufig verwendet. Sehr praktische Einstellung am AV-Receiver für Stereoquellen die kein Dolby Digital Live haben.

DTS Neo

Biete ähnliche Funktionen wie Dolby Pro Logic II. Ton wird vom AV-Receiver in ein DTS-Format verwandelt. DTS Neo beherrscht auch 6.1.

Dolby Digital Live

Es wird direkt im Computer oder der Spielekonsole das Stereosignal in ein 5.1-Kanal-Dolby-Digital-Format verwandelt.

DTS Connect

Bietet ziemlich ähnliche Funktionen wie Dolby Digital Live. Direkte codierung in ein 5.1-Kanal-DTS-Format.

HD-Soundformate:

Dolby Digital Plus

Das Format ist für Blurays und HD-DVDs entwickelt worden und kann 6Mbit/s übertragen (Vergleich zur DVD in DD 448 Kbit/s). Es war laut Netz vorallem bei HD-DVDs beliebt und wurde dort häufig verwendet. Seit dem Durchsetzten der Bluray hab ich das Format aber sehr selten gesehen. Auf Blurays wird es normaler Weiße nicht verwendet.

Dolby TrueHD

TrueHD versteht sich als Nachfolger von „Meridian Lossless Packing“ und ist ein verlustfreier Codec. Er unterstützt 7.1 Surround-Sound und erlaubt eine Übertragungsrate von bis zu 18 Mbit/s. Er ist häufig auf BluRays zu finden und führt eine Core Dolby Digital Spur mit 640 Kbit/s mit sich (Für den Fall, dass der Decoder die HD-Audio Spur nicht decodieren kann).

DTS-HD Master Audio & High Resolution Audio

DTS-HD ist im Moment (zumindest meiner Meinung nach) der beste Audiocodec, er ist ebenfalls verlustfrei und schafft eine Übertragungsrate von bis zu 64 Mbit/s. Typisch bei einer BD sind um die 2,4 Mbit, aber bei Master and Commander waren es locker 4,5. Genau wie TrueHD führt DTS-HD auch eine Core DTS Spur allerdings mit 1538 Kbit/s mit sich.

Die wichtigste Frage: Hört man das denn?

Genau diese Frage wollte ich mir beantworten. Da die Soundkarte meines Laptops keine HD-Audio-Codecs codieren oder zum AV-Receiver bringen kann wollte ich wissen ob es sich lohnt etwas zu kaufen, das diese Codecs abspielen kann. Also habe ich mir die Playstation 3 von meinem Cousin ausgeliehen, die laut Internet sowohl DTS-HD als auch TrueHD abspielen kann. An diesem Punkt möchte ich erwähnen, dass der AV-Receiver kein DTS-HD oder TrueHD Decoder benötigt um ein solches Format abspielen zu können (er kann es bloß nicht decodieren.) Er muss lediglich das „multi-channel LPCM“ Format unterstützen. Dies wusste ich bis vor kurzem auch nicht, aber ich denke das ist ein wichtiger Punkt. Die PS3 hat einen eingebauten Decoder und bringt den decodierten Sound als Lineares PCM zum Receiver. Alles was man tun muss ist die PS3 richtig einzustellen. In den HDMI Optionen muss man bei Sound „Linearer Bitstream“ auswählen und bei Soundformate muss man an alle ein Häkchen machen. Danach kann man durch drücken des Select-Knopfes direkt beim Abspielen den Codec und die Bitrate sehen.

Unsere Test Bluray war „Master and Commander“ die eine Deutsche DTS- und eine Englische DTS-HD Master Audio Spur hat. Zahlenmäßig ist ein großer Unterschied vorhanden. Die deutsche DTS Spur hat 768 Kbit/s und die englische DTS-HD Spur um die 4,5 Mbit/s. Wir waren erstaunt wie deutlich der Unterschied der beiden Spuren zu hören ist. In der deutschen Spur dominieren sehr stark die zwei Front Boxen (Links + Rechts) und der volle 5.1 Sound ist nur selten gut zu hören. In der DTS-HD Spur sieht das ganz anders aus. Es wird sehr oft der volle 5.1 Klang benutzt und man hört aus allen Richtungen (Boxen) wie die Segel im Wind flatter, wie die Mannschaft über das Deck des Schiffes trampelt und wenn die Kanonenkugeln einschlagen… Wow! Man hört das Splittern des Holzes im ganzen Raum. Eine ganz andere Atmosphäre wie beim „normalen“ DTS Klang, bei dem sehr viel vom Sound nur von Vorn zu hören ist. Hier muss ich anmerken, dass es nicht nur englische DTS-HD Tonspuren gibt. Inzwischen gibt es immer mehr deutsche HD-Audio Spuren. Lediglich unsere Master and Commander Test BD hatte DTS-HD nur im Englischen. Auch noch ein sinnvoller Test wäre es gewesen die 4,5 Mbit/s DTS-HD MA Spur mit der (vom Laptop ausgegebenen) 1,5 Mbit/s Core DTS Spur zu vergleichen, aber dazu hatte ich leider keine Zeit mehr.

Nach dem Master and Commander Test (der nur eine Szene beinhaltete), wollten wir noch einen Film ganz anschauen. Doch hier muss ich leider das erste Mal, negativ von der Playstation 3 berichten, die als BluRay-Player überall sehr hoch gelobt wird. Nach dem wir eine halbe Stunde den Film geschaut haben, ging auf einmal der Lüfter an. Ich dachte „Kein Problem, der wird sicher nur kurz runter kühlen und dann wieder ausgehen“ – Pustekuchen… Das Ding war die nächste halbe Stunde so laut, dass ich den Film lauter machen musste (und der war nicht gerade leise…). Irgendwann haben wir das nicht mehr ausgehalten und haben beschlossen lieber leiserer Lüfter und schlechtere Tonspur, als das Flugzeug im Wohnzimmer und DTS-HD.  Als haben wir den Laptop angeschmissen und dort den Film weiter geschaut. Ich wusste nicht, dass ein Lüfter so nerven kann. Echt schade, die PS3 ist an sich sonst sehr gut in Sachen BluRay.

Kann das mein Laptop auch?

Das war die nächste Frage die ich mir gestellt hab. Brauch ich wirklich ein BluRay-Player oder kann ich das auch mit meinen bisher vorhandenen Mitteln (Laptop) lösen? Nach reichlicher Recherche komme ich zu dem Schluss, dass es bisher nur eine einzige Soundkarte gibt, die die HD-Codecs decodieren kann. Nämlich die Asus Xonar HDAV 1.3. Die allerdings an die 186€ kostet und einen PCIe-Slot braucht, das heißt ich kann das decodieren am Laptop vergessen. Da mein AV-Receiver aber selbst einen Decoder hat würde es mir auch reichen wenn meine Soundkarte den Bitstream einfach weiterreicht, ohne ihn zu decodieren, aber nach stundenlangen Tests, habe ich das gestern nicht hin bekommen… Dabei ist das eine 7.1 Channel Soundkarte im Lappi, also nicht Mal so schlecht. Doch weder mit PowerDVD, WinDVD noch mit TotalTheater habe ich das geschafft…  Die maximale Leistung die ich aus meiner Soundkarte per HDMI herausholen konnte, war die Core DTS Spur des DTS-HDs mit einer Bitrate von 1538Kbit/s. Die PCM Spuren wandelt meine Soundkarte direkt mit Dolby Digital Live um, uncodiert bekommt man scheinbar nichts aus der Karte raus. Schade.

Der Player kanns!

Die nächste Stunde hab ich damit verbracht einen guten BluRay Player auszusuchen der sowohl TrueHD als auch DTS-HD abspielen kann. Mir stach sofort der LG BD 370 ins Auge, der auch gleich – soweit ich weiß so ziemlich als einziger BD Player – mkv Dateien abspielen kann, was natürlich sehr schön wäre. Der mkv Container ist heute ja eigentlich der Standard bei HD-Videos. Auch der Preis war ganz in Ordnung mit 181€. Doch nach einiger Recherche las ich folgendes:

The good:
Streams Netflix and YouTube; Profile 2.0 compatible; onboard decoding for Dolby TrueHD and DTS-HD Master Audio Essential; relatively quick load times.

The bad:
Competitors offer better image quality on Blu-ray and DVD; no Wi-Fi option.

(Quelle CNET)

Wi-Fi ist mir egal, aber dass die Bildqualität nicht so gut wie bei den Vergleichsstücken ist, das ist für mich entscheidend. Ich habe letztendlich den Player gefunden den ich mir kaufen würde. Und zwar den Panasonic DMP-BD35. Warum? Er kostet zwar ein paar Euros mehr (220€), aber dafür gehört die Bildqualität (nicht nur bei den BDs sondern auch bei den DVDs die per „Upscaling“ auf 1080p kommen) mit zu den Besten. Zudem ist er einer der einzigen Player die die HD-Audio-Codecs sowohl codieren und als LPCM an den Receiver schicken als auch direkt den Bitstream weiter zu geben und ihn vom AV-Receiver decodieren zu lassen (somit leuchtet die DTS-HD / TrueHD Lampe am Receiver – Soll aber vom Ton überhaupt keinen Unterschied machen).

The good:
Excellent image quality on Blu-ray Discs; Profile 2.0 compliant; onboard decoding for all high-resolution soundtrack formats, plus bit-stream output.

The bad:
PlayStation 3 offers much more functionality and faster navigation, although it costs more

(Quelle CNET)

Fazit

Hätte ich mir nicht schon vor ein paar Monaten einen DVD-Player gekauft der ein Upscaling-Feature hat, hätte ich jetzt sicherlich zugegriffen (ich war wohl etwas vorschnell 🙂 ). Aber jetzt lass ich das ganze erst einmal ein wenig sitzen und schaue wie sich alles entwickelt. Vielleicht gibt es ja auch bald eine externe Soundkarte die diese Audiocodecs beherrscht. Wir werden sehen was die Zeit bringt. Wer gerne BluRays schaut und ein Soundsystem hat, das wenigstens ein bisschen über dem Trash-Level liegt, dem sei nur geraten sich einem BluRay Player zuzulegen, der die HD-Audiocodecs beherrscht. Es lohnt sich wirklich!

Vielleicht bin ich nur ein Soundfreak, aber die Atmosphäre ist ganz anders, wenn der Sound stimmt. Ich liebe es einen guten Film zu sehen der ein sehr gutes Bild und ein unvergesslichen Ton liefert. Das sind schöne Abende, aber sie sind natürlich noch schöner, wenn man sie mit jemandem teilen kann 😉