07. Mai 2016
Nerd deluxe: Videotext von VHS auslesen – Teil 1
Während des Digitalisierens der letzten meiner alten VHS-Aufnahmen grub ich auch eine alte Idee wieder aus: das Aufnahmedatum technisch ermitteln. VHS-Aufnahmen beinhalten nämlich den damals gesendeten Videotext, dort ist das Datum und noch viel mehr gespeichert.

Aber es gibt ein Problem: da das VHS-Bild von schlechter Qualität ist, wird der Videotext von z.B. TV-Geräten in der Regel nicht oder nur unleserlich angezeigt. Schon vor vier Jahren hat jemand in England eine Möglichkeit gefunden, die kompletten Videotext-Inhalte von VHS-Aufnahmen durch pure Rechenkraft nahezu perfekt zu rekonstruieren.
Inzwischen ist die Software namens vhs-teletext weiter verbessert worden, u.a. wird, sofern vorhanden, der Prozessor der Grafikkarte (GPU) für die aufwendigen Berechnungen mit einbezogen.
Die gute Nachricht: es funktioniert tatsächlich! Das Allermeiste, was ich für meine eigenen Versuche benötigte, fand sich in alten Rechnern, gibt es kostenlos im Netz oder für wenig Geld auf dem Gebrauchtmarkt.
Die nicht ganz so gute Nachricht: vhs-teletext ist in Python geschrieben und läuft nur unter Linux und mit exakt definierten technischen Voraussetzungen. Die genaue Vorgehensweise wollte erst mühsam Schritt für Schritt in vielen Versuchen erarbeitet sein – aber falls Sie es selber ausprobieren möchten, nehme ich Ihnen einen Großteil dieser Arbeit mit dieser Artikelserie ab.
Es ist eine analoge TV-Karte mit einem speziellen Chipsatz erforderlich, die ich jedoch problemlos für sechs Euro auf dem Gebrauchtmarkt im Internet erstehen konnte.

Der Screenshot zeigt ein erstes Ergebnis meiner Versuche, der Screenshot einer von VHS ausgelesenen und als HTML-Datei umgewandelten Videotext-Seite vom 26.12.1988. Der Versuch lieferte bereits vollautomatisch ein fast perfektes Ergebnis, lediglich drei Buchstaben musste ich manuell korrigieren.
Allerdings brauchte es, um diese Informationen wiederzustellen, ohne GPU-Unterstützung eine sagenhafte Rechenzeit von 16 Stunden und 51 Minuten.
Dem Nerd sein Ego
In dieser kleinen Serie beschreibe ich jetzt also mein allerneustes Nerd-Projekt, welches zwar kein Geld bringt und wenig mit Webdesign zu tun hat, wohl aber mit Internet und Computern. Die Realisierung hat mich viel Zeit und Nerven gekostet, war aber auch eine spannende Herausforderung und eine Abwechselung zu HTML und CSS.
Als die erste Seiten Videotext vom 03. April 1988 aus der Aufnahme „Der Mann mit dem goldenen Colt“ erschienen, fühlte sich der Forscher und Bastler in mir befriedigt. Das Gefühl, diese harte Nuss geknackt zu haben, ist Balsam für das Ego und entschädigt etwas für die vielen Stunden, die ich stattdessen hätte in der Sonne liegen und dösen können.
Wofür ist das gut?
Mir persönlich ging es hauptsächlich um das Aufnahmedatum. Einige VHS-Aufnahmen aus 1988 und 1989 waren undatiert und ich wollte im Zuge der Digitalisierung genau wissen, an welchem Datum ich diese Aufnahmen machte.
Soviel sei schon verraten: das Auslesen des Datums ist das kleinste Problem. Bei meinen Versuchen klappt dies sehr zuverlässig und schnell, auch auf wirklich alten Longplay-Aufnahmen und ausgeleierten Bändern, die in den vielen Jahren und durch den uns umgebenden Magnetismus bereits fast die gesamte Farbe verloren haben.
Das Datum, der Sender und sogar die genaue Uhrzeit der Aufnahme sind über die Videotext-Header schnell und zuverlässig errechenbar.
Dann ist es natürlich interessant, in alten Videotext-Seiten zu stöbern und Nachrichten aus einer lange vergangenen Zeit zu lesen. Was lief sonst noch so am Tag der Aufnahme? Was passierte in Deutschland und in der Welt an diesem Tag?
Ich habe zufällig eine Aufnahme vom Spätabend des 09. November 1989, es wird sicher spannend, einmal nachzusehen, was ggf. zum Mauerfall im Videotext zu lesen war. Eine kleine Zeitreise also. Wenn Sie für eine vergangenheitsbezogene Sentimentalität und Retro nicht empfänglich sind lassen Sie es, mir jedenfalls hat es viel Spaß gemacht.
Denkbar wäre auch eine archivarische Anwendung; soweit mir bekannt gibt es kein Archiv der Videotext-Seiten, zumindest nicht aus dem Zeitraum des Versuchsbetriebes von ARD und ZDF zwischen 1980 und 1990. Mittels VHS-Aufnahmen könnte man ein solches Archiv theoretisch aufbauen.
Noch, denn die VHS-Kassetten altern bekanntlich und wurden / werden massenhaft entsorgt, in einigen Jahren wird das Meiste verloren sein. 2016 sind VHS-Geräte bereits zu 100% retro und praktisch in keinem Wohnzimmer mehr vertreten. Die heutige volldigitalisierte Jugend hat mit analogen Medien und VHS sowieso nie etwas zu tun gehabt.
Serie in vier Teilen
Aufgrund des Umfangs und zur Wahrung der Übersichtlichkeit teile ich den Bericht in vier Teile auf: im ersten Teil geht es um die technischen Grundlagen des Videotextes auf VHS. Teil zwei nennt und beschreibt die für das Auslesen benötigte Hard- und Software sowie einige Fachbegriffe.
In Teil drei führe ich den Software-Installationsvorgang unter Linux Schritt für Schritt durch, damit Interessierte dies möglichst einfach nachvollziehen können. Im letzten Teil wird ein Umwandlungslauf und das Betrachten der Ergebnisse besprochen.
Disclaimer
Ein Hinweis noch: dies ist ein privates, nicht-kommerzielles Projekt, alle Informationen habe ich selbst zusammengetragen. Autor der verwendeten Python-Skripte ist Alistair Buxton – Hut ab, das hätte ich nicht gekonnt.
Programme und Treiber werden ständig verändert, bei mir funktioniert das Auslesen nach meiner Anleitung mit der von mir beschriebenen beschriebenen Hard- und Software (Stand Mai 2016) einwandfrei. Ich übernehme aber keinerlei Gewähr, dass das bei Ihnen nachfolgend mit ggf. geänderter Hard- und Software auch so gelingt. Ggf. müssen Sie Anpassungen vornehmen.
Ich kann leider aus zeitlichen Gründen keinerlei Hilfestellung für Ihre eigenen Versuche leisten, da müssen Sie sich selber durchgoogeln. Auch stehe ich nicht für die Ermittlung von Daten aus fremden VHS-Kassetten zur Verfügung.
Obwohl ich mich um korrekte Informationen bemühe, können diese unzureichend, irreführend oder unkorrekt dargestellt sein. Insbesondere bei den Linux-Kommandos in dritten Teil mag es hier und da einfachere Lösungen geben. Ich war nie und werde auch nie ein Linux-Guru sein, alles hierzu musste ich mir im Schweiße des Angesichts erarbeiten.
Videotext in VHS-Aufnahmen sichtbar machen
VHS zeichnete wie gesagt sämtliche damals gesendeten Bildinhalte in analoger Form auf, jedoch ist die Qualität stark vermindert. Das wenig verbreitete S-VHS hingegen liefert übrigens mehr Bildinhalte – falls Sie solche Aufnahmen verwenden, erhalten Sie schnell sehr gute Ergebnisse.
In der VHS-Aufzeichnung sind auch alle nicht sichtbaren Zeilen der sogenannten Austastlücke (englisch „Vertical blanking interval / VBI“) enthalten, in denen sich der Videotext (international „Teletext“ genannt) versteckt. Wir beschäftigen uns hier nur mit dem Inhalt dieser „Lücke“, das eigentliche Bild und der Ton interessiert uns nicht.
Um die Austastlücke sichtbar zu machen, verwandte ich den folgenden Trick: bei meinen alten VHS-Aufnahmen verliert der Videorecorder am Bandanfang und kurz vor Bandende durch das ausgeleierte Magnetband gerne die Synchronisation, das Bild überschlägt sich dann alle paar Sekunden in der Horizontalen.

Den Vorgang des „Überschlagens“ habe ich digitalisiert, ein Bild aus einer solchen Aufnahme sehen Sie hier. Die schwarze Austastlücke mit dem weißen binären Videotext-Signal ist deutlich erkennbar. Hier verstecken sich die gesuchten Informationen.

Eine Vergrößerung, man erkennt deutlich die binär in Zeilen codierten Videotext-Daten, die leicht versetzen Zeilen der zwei Halbbilder und die aus heutiger Sicht unglaublich schlechte Qualität der Aufnahme.

Das Videotext-Signal von VHS, nochmals digital vergrößert. Sie sehen, alles andere als ein sauberes Bild, die Binärdaten sind völlig verwaschen.
Als wäre die Ausgangslage nicht schon schlecht genug sind VHS-Bänder teilweise Jahrzehnte alt, oft abgespielt und Magnetfeldern ausgesetzt worden. Im Laufe der Zeit altert auch das Trägermaterial, dass alles ist nicht unbedingt gut für die Signalqualität.
Aufbau des Videotext-Signals
Das Verständnis, wie sich das Videotext-Signal genau aufbaut, ist für die spätere Umwandlung nicht unbedingt erforderlich – trotzdem ein paar Worte hierzu.
Die Austastlücke in der PAL-Fernsehnorm, genauer gesagt die vertikale Austastlücke, umfasst 49 Zeilen. Sie war für den Rücklauf des Elektronenstrahls älterer Bildröhren vorgesehen, was sich aber durch den technischen Fortschritt schnell überlebte.
Englische Forscher ersonnen in den 70er Jahren eine Methode, in diese nun praktisch ungenutzte Lücke Daten einzubinden und zu übertragen. Dort nannte man das System „Ceefax“, es wurde 2012 zusammen mit der anlogen Übertragung abgeschaltet.
Videotext nutzt die Zeilen 7-15 und 20+21 im ersten und Zeile 320-328 sowie 333+334 im zweiten Halbbild. Wie sich das Binärsignal genau aufbaut und die Art der Codierung erfahren Sie auf der Seite „Teletext“ in der Wikipedia.

Hier die obige Vergrößerung, digital bearbeitet und mit Markierungen; man sieht den großen oberen Bereich mit Binärinformationen, ca. vier Zeilen Abstand und dann nochmals vier Zeilen mit weiteren Binärdaten.
Übrigens befindet sich das VPS-Signal ebenfalls in der Austastlücke in Zeile 16, also direkt unter dem ersten Videotext-Block. Die obige Grafik berücksichtigt das nicht, da sich durch die schlechte Auflösung die Zeilen nicht genau bestimmen lassen.
Die Sache mit dem Hausfreund
Um aus den verwaschenen unscharfen Blöcken ein auswertbares Signal zu machen, setzt die Software mit mathematischen Funktionen zur Erkennung der Zustände an.
In einem späteren Schritt läuft zur verbesserten Erkennung eine Art „Wahrscheinlichkeitsbewertung“. Dazu müssen Sie wissen, dass die Seiten im Videotext-Strom ständig wiederholt werden (Fachbegriff „Karussell“). Der Index auf Seite 100 findet sich besonders oft im Karussell.
Es liegen also, je länger mitgeschnitten wird, mehrere Kopien ein und derselben Seite vor, die unterschiedliche Fehler beinhaltet. Durch Vergleich der Kopien kann jetzt auf den wahrscheinlich korrekten Inhalt geschlossen werden.
Ein Beispiel: wenn in den meisten Kopien der Seite 313 an einer Stelle x das Wort „Hausfreund“ steht, aber nur in wenigen Kopien „HauxfreunP“ oder „(ausfSeund“, übernimmt die Software den wahrscheinlich richtigen Begriff „Hausfreund“. Daher wird das Ergebnis prinzipiell besser, je länger das VHS-Band ausgewertet wird.
Stehen genügend Daten zur Verfügung (der Autor spricht von mindestens 15, idealerweise 30 und mehr Minuten), lassen sich die Seiten durch diese Technik fast fehlerfrei wiederherstellen. Das kostet allerdings viel Rechenzeit und ist nur mit einer GPU-Unterstützung in einem vertretbaren Zeitraum zu erreichen, mehr dazu in den weiteren Teilen.
Mit nur wenigen Minuten Material erzielt man aber auch schon zumindest lesbare Ergebnisse.
Anpassung des Quelltextes
Die Software vhs-teletext stammt wie bereits erwähnt aus England, beim Einsatz der Original-Skripte werden die deutschen Umlaute falsch dargestellt. Das liegt an den Zeichen (hex)23+24, (hex)40, (hex)5B-60 und (hex)7B-7E im Teletext-Zeichensatz, die national unterschiedlich belegt sind.
Inzwischen ist es mir gelungen, den Python-Code durch Austausch einiger weniger Zeilen dergestalt zu modifizieren, dass unsere geliebten Umlaute korrekt erscheinen. Bei der Installation, die ich in Teil drei beschreiben werde, wird diese Modifikation einer der Unterpunkt sein.
Auch läuft im Original ein Rechtschreibkorrektur, welche ebenfalls auf Englisch eingestellt ist. So wird aus Wörtern wie „Als“ ein „Alt“, „durch“ zu „dutch“ und „sie“ zu „see“. Das verantwortliche Modul „Python Enchant“ lässt sich aber gottlob über eine kleine Quellcodeänderung auf das deutsche Wörterbuch umschalten, welches standardmäßig mitinstalliert wird.
Weiter im zweiten Teil
Im zweiten Teil erfahren Sie, welche Hard- und Software für das Auslesen des Videotext-Signals von VHS-Kassetten notwendig ist.