Inhaltsverzeichnis
Abtastung, Aliasing
In der Rubrik „digital Audio“ wird die Thematik Abtasttheorem und Aliasing genau besprochen. Zusammenfassend kann man sagen, daß ein Signal mit maximalen Frequenzen bis knapp zur halben Abtastfrequenz (z.B. eines A/D- oder D/A-Wandlers) vollständig rekonstruiert werden können. Bedingung dafür sind Tiefpaßfilter vor dem A/D-Wandler und hinter dem D/A-Wandler (andere Fälle, wo nur abgetastet aber nicht A/D-gewandelt wird, lasse ich mal außen vor), die keine Frequenzen größer oder gleich der halben Abtastfrequenz durchlassen. Ist das nicht der Fall, entsteht Aliasing. Frequenzen über der halben Abtastfrequenz am A/D-Wandler, die nicht weggefiltert werden, werden in Frequenzen unterhalb der halben Abtastfrequenz umgesetzt, so daß die Summe aus Originalfrequenz und umgesetzter Frequenz die volle Abtastrate ergibt. Ein fehlendes Filter am D/A-Wandler läßt Treppenstufen entstehen, die dann ebenfalls neue Frequenzen enthalten, außerdem wird dann der Frequenzgang „verbogen“.
Bei Videosignalen sieht die Sache etwas anders aus. Die Abtastprobleme und das Aliasing ändern sich ja praktisch gar nicht, wenn man lediglich ein Standbild betrachtet, auch dann nicht, wenn das Display alle Pixel gleichzeitig und nicht nacheinander darstellt (Printerausdruck, LCD-Schirm, Plasmaschirm). Man hat es nämlich nicht mit zeitlichen Frequenzen zu tun, sondern mit örtlichen. So gibt es eine örtliche Abtastrate (Pixel pro Längeneinheit) und eine Ortfrequenz. Als Längeneinheit kann man z.B. die Höhe des Bildes nehmen (dann hat man die oft zitierte Linienauflösung, allerdings nur die Hälfte, da je eine helle und dunkle Linie erst eine volle Periode ergeben) oder die Abmessungen eines Pixels. Bei letzterem ist die Abtastfrequenz gleich Eins. Hinzu kommt, daß Bilder zweidimensional sind, Ortsfrequenzen haben deshalb auch eine Richtung. Ortsfrequenzen werden daher immer entlang einer gedachten Linie auf dem Bild gemessem, die Richtung entspricht dann der Richtung der Linie. Diese Ortsfrequenz kann dann in einen horizontalen und vertikalen Anteil aufgetrennt werden (so wie die Aufteilung von Kräften im Kräfteparallelogramm).
Die maximale horizontale Ortsfrequenz wird durch die maximale Videofrequenz und der Dauer des sichtbaren Teiles einer Zeile bestimmt:
Fo = Fv * Tv / B Fo Ortsfrequenz Fv Videofrequenz Tv Dauer des sichtbaren Zeilenanteiles B Breite des Bildes
für DVD ist Fv = 6.75MHz, Tv = 53.33µs, damit ergibt sich eine Ortsfrequenz von
F0 = 360 / B
je nach Größe des Bildschirmes, also max. 360 Linienpaare.
Die maximale vertikale Ortsfrequenz ergibt sich aus der Zeilenzahl:
Fo = Z / (2 * H) Z Zeilenzahl H Höhe des Bildes
Es ergibt sich wieder die maximale Zahl der Linienpaare.
Es gibt auch bei Video wieder zwei Arten von Aliasing: fehlende Filterung beim Abtasten und fehlende Filterung beim Rekonstruieren. Bei einer fehlenden Filterung beim Abtasten zerfallen dünne Bildelemente, z.B. dünne Linien von Gittern oder Telegraphenleitungen verschwinden abschnittsweise. Kleine Muster erzeugen Moireeffekte. Diese Fehler können bei der Herstellung einer Videoaufnahmen vermieden werden, beim Flying Spot Verfahren z.B. dadurch, daß der Spot eine etwa genau so große Ausdehnung wie ein Pixel hat, evtl. sogar etwas mehr (ca. 1.2 – 1.5-fach). Fehlende Filterung bei der Rekonstruktion führt dagegen zu den ungeliebten Treppenstufen. Dagegen hilft nur ein Tiefpaß hinter der Rekonstruktion. Dazu kann man bei Projektoren das Bild leicht defokussieren, so daß ein einzelnes Pixel durch seine Unschärfe mindstens seine eigene Ausdehnung erreicht oder man defokussiert den Elektronenstrahl entsprechend (geht dann auch bei Fernsehern, wird dort sogar so gemacht). DLPs haben vom Prinzip her schon so eine Pixeldarstellung und bei LCD-Bildschirmen hat man leider keine Chance, dort muß man mit den Treppenstufen leben.
Eine weitere Möglichkeit wäre die Überabtastung, wie es auch bei Audiowandlern gemacht wird: Das Bild wird mit 2-facher (oder auch mit 3-, 4-facher oder noch mehr) Auflösung dargestellt, die hohe Auflösung wird durch Tiefpaßfilterung des hochskalierten Bildes errechnet. Das Bild wird dadurch natürlich nicht schärfer (es ist ja auch keine Information dafür vorhanden), aber das Rekonstruktionsaliasing ist dann weg. Allerdings ist der Aufwand riesig und das Ergebnis kaum besser als das gezielt dosierte Defokussieren von Projektor oder Elektronenstrahl. Alle Versuche, z.B. bei schrägen Kanten eine scharfe Kante mit höherer Auflösung zu berechnen, müssen bei anderen Bildinhalten scheitern, z.B. bei Treppen im Bildhintergrund oder kleingemusterten Oberflächen. Nicht ohne Grund braucht man für eine größere Schärfe auch mehr Informationen, also mehr Pixel.
Einen Sonderfall stellt dann noch das Zeilensprungverfahren dar: Normalerweise wird so gefiltert, daß für das Vollbild (bei PAL also mit allen 576 Zeilen) das Abtasttheorem eingehalten wird. Jedes Halbbild für sich, daß vertikal ja nur die halbe Ortsfrequenz hat, zeigt dann Aliasing, das ist dann das Zeilenflimmern. Mit progressive Scan kann dieser Fehler wieder entfernt werden (siehe im dortigen Kapitel). Man kann beim Abtasten auch die vertikale Auflösung noch weiter reduzieren und damit auch das Zeilenflimmern, aber dann ist auch mit progressive Scan keine wesentliche Steigerung der vertikalen Auflösung mehr möglich. Deshalb bemängele ich auch keine Aufnahmen, die starkes Zeilenflimmern zeigen, solange im kompletten Vollbild noch kein Aliasing vorhanden ist.
digital Component Video BT.601
Es gibt verschiedene Methoden, ein Video zu digitalisieren. Am einfachsten ist die simple Digitalisierung des FBAS-Signals, die Nachteile von FBAS (Cross Color) bleiben aber erhalten. Ebenso kann man das Y/C-Signal digitalisieren, man erhält zwei parallele Datenströme. Cross Color fällt jetzt weg, allerdings wird unnötig hoher Aufwand getreiben, muß doch erst die Farbinformation auf einen Farbhilfsträger moduliert werden, um dann später wieder mühselig demoduliert zu werden. Es gab Ansätze für diese Technik (ITT Digivision Fernseher funktionierten mal intern so), die Abtastrate beträgt das vierfache der Farbhilfsträgerfrequenz.
Besser ist daher die Digitalisierung des RGB- oder YUV-Signals. Die Abtastrate wird so gewählt, daß eine Zeile eine ganzzahlige Anzahl von Abtastwerten enthält, das war beim obigen Verfahren nicht der Fall. Ziel war außerdem eine gleiche Abtastrate für 625/50 (PAL) und 525/60 (NTSC). In der Norm BT.601 wurden für beide Systeme die Parameter festgelegt.
Pixelauflösungen
Die Zahl der sichtbaren (aktiven) Pixel beträgt bei 625/50 (PAL) 720*576 und bei 525/60 (NTSC) 720*486. Das Seitenverhältnis des gesamten sichtbaren Bildes ist 4:3 oder bei anamorphen Video 16:9. Daraus folgt, daß in keinem Fall die Pixel quadratisch sind, das Verhältnis Breite/Höhe eines einzelnen Pixels beträgt:
| normal | anamorph | --------------+--------+----------+ 625/50 (PAL) | 1.0667 | 1.4222 | 525/60 (NTSC) | 0.9000 | 1.2000 |
Zur Darstellung auf einem Display mit Pixelstruktur (LCD, DLP, usw.) muß also skaliert werden. Bei analoger Übertragung ist es natürlich wesentlich günstiger, horizontal zu skalieren, da läuft einfach der A/D-Wandler des Displays mit einer anderen Abtastrate, die Zahl der Zeilen bleibt gleich.
Als Abtastrate hat man einheitlich 13.5MHz festgelegt. Eine PAL-Zeile enthält 864 Abtastwerte, davon 720 sichtbare Pixel, eine NTSC-Zeile enthält 858 Abtastwerte, davon ebenfalls 720 sichtbare Pixel.
PAL hat 625 Zeilen im Zeilensprungverfahren, genau so wie im analogen Videosignal, jedes Halbbild hat 288 sichtbare Zeilen. In jeder Zeile beginnt das erste sichtbare Pixel 132 Abtastwerte nach dem Beginn des entsprechenden analogen Sync-Pulses.
NTSC hat 525 Zeilen im Zeilensprungverfahren, genau so wie im analogen Videosignal, jedes Halbbild hat 243 sichtbare Zeilen. Oft enthalten aber nur 240 Zeilen aktives Bildmaterial, also insgesamt 480 Zeilen im ganzen Frame (Vollbild). In jeder Zeile beginnt das erste sichtbare Pixel 122 Abtastwerte nach dem Beginn des entsprechenden analogen Sync-Pulses.
Farbräume
Es wird eine digitale Variante der Y-, U- und V-Komponenten verwendet, U und V sind lediglich anders skaliert und heißen bei digital Video Cb und Cr. Es gibt eine 8 Bit und eine 10 Bit Variante.
Der Wertebereich für Y liegt bei 8 Bit zwischen 16 und 235 inclusive, 16 (=0x10) entspricht Schwarz und 235 (=0xEB) ist Weiß. Bei 10 Bit liegt der Bereich zwischen 64 und 940 inclusive, 64 (=0x40) entspricht Schwarz und 940 (=0x3AC) ist Weiß.
Ein Überschreiten dieser Werte ist zwar zulässig, sollte aber vermieden werden, viele Komponenten (z.B. Logik für D/A-Wandler) begrenzen auch auf diesen Bereich. Die Werte 0 (=0x00) und 255 (=0xFF) sind unzulässig, bei 10 Bit sind das die Werte 0..3 (=0x00..0x03) und 1020..1023 (=0x3FC..0x3FF)!
Cb und Cr haben bei 8 Bit einen Wertebereich von 16 (=0x10) bis 240 (=0xF0) inclusive. 128 (=0x80) entspricht dem Wert 0, kleinere Werte stellen negative Größen dar, größere Werte sind positiv. Bei 10 Bit liegt der Wertebereich zwischen 64 (=0x40) und 960 (=0x3C0) inclusive. 512 (=0x200) entspricht dem Wert 0, kleinere Werte stellen negative Größen dar, größere Werte sind positiv.
Von einem 10-Bit Signal kann man die beiden letzten Bits weglassen und erhält ein vollwertiges 8 Bit Signal. Die Grenzen der Wertebereiche für 10 Bit sind genau das 4-fache der Grenzen bei 8 Bit, die Zahl der nutzbaren Stufen ist jedoch um drei kleiner als das Vierfache, da die Grenzen inclusive sind. Bei DVD wird die 8 Bit Variante benutzt.
R,G und B haben den gleichen Wertebereich wie die Y-Komponente, also von 16 bis 235 bzw. 64 bis 940.
Y, Cb und Cr errechnen sich aus R, G und B folgendermaßen (gilt für 8 und für 10 Bit gleichermaßen):
Y = ( 77 * R + 150 * G + 29 * B) / 256 Cb = (-44 * R - 87 * G + 131 * B) / 256 + 128 Cr = (131 * R - 110 * G - 21 * B) / 256 + 128
4:4:4 4:2:2 4:2:0 4:1:1
Die Komponenten Cb und Cr müssen nicht mit der gleichen Abtastrate übertragen werden wie die Komponente Y.
- 4:4:4 bedeutet, daß jedes Pixel je einen eigene Komponente Y, Cb und Cr hat, also gleiche Abtastrate für alle Komponenten. Dieses Format wird nur selten verwendet (am ehesten in der Produktion um Verarbeitungsverluste klein zu halten). Es liefert die beste Bildqualität, so wird man sie bei allen anderen Formaten nie wieder sehen.
- 4:2:2 bedeutet, daß zwei nebeneinanderliegende Pixel jeweils getrennte Y-Werte, aber je einen gemeinsamen Cb- und Cr-Wert haben. Die Abtastrate für Cb und Cr ist nur halb so groß wie die für Y. Das ist das Standardformat für digital Video. Die Qualität ist so gut wie gar nicht vom 4:4:4-Format zu unterscheiden, erst bei Testbildern kann man bei genauem Hinsehen etwas bemerken.
- 4:2:0 bedeutet, daß vier quadratisch angeordnete nebeneinanderliegende Pixel jeweils getrennte Y-Werte, aber je einen gemeinsamen Cb- und Cr-Wert haben. Die Abtastrate für Cb und Cr ist nur halb so groß wie die für Y, allerdings sind in jeder zweiten Zeile gar keine Werte für Cb und Cr vorhanden. In diesem Format sind die Daten auf einer DVD gespeichert. Beim Abspielen wird dieses 4:2:0-Format in 4:2:2 umgewandelt, bevor es an die D/A-Wandler geht. Die Qualität ist fast genau so gut wie 4:2:2, da die horizontale Auflösung für Cb und Cr geblieben sind und lediglich die vertikale Auflösung auf etwa den gleichen Wert reduziert wurde. 4:2:0 ist zum Speichern gut geeignet, aber für die Übertragung weniger, deshalb findet man z.B. als Verbindung zum D/A-Wandler ein 4:2:2-Format vor.
- 4:1:1 bedeutet, daß vier nebeneinanderliegende Pixel jeweils getrennte Y-Werte, aber je einen gemeinsamen Cb- und Cr-Wert haben. Die Abtastrate für Cb und Cr ist nur ein Viertel so groß wie die für Y. Dieses Format wurde früher für erste digitale Videoformate verwendet, es ist gut für die Übertragung geeignet, hat die gleiche Datenrate wie 4:2:0, aber horizontal nur ein Viertel der Auflösung wie Vertikal. Deshalb wird dieses Format kaum noch verwendet. Aber selbst dieses Format ist immer noch erheblich besser als S-VHS!
BT.656
Bei BT.601 sind zwar die Bildauflösungen, Abtastraten, Farbräume usw. festgelegt worden, nicht aber das Timing der elektrischen Signale. Die Komponenten Y, Cb, Cr können z.B. parallel auf verschiedenen Leitungen kommen, oder Y auf einer und Cb/Cr gemultiplext auf einer anderen oder alle Komponenten gemultiplext (d.h. jeweils nacheinander) auf einer Leitung. Auch die sonstigen Timingsignale (HSYNC, VSYNC, BLANK, usw.) können je nach Hardware unterschiedlich aussehen.
BT.656 definiert ein einheitliches Format, das lediglich einen Takt und einen Datenstrom enthält, aus dem alle benötigten Informationen gewonnen werden können. Digitale Videokomponenten können über BT.656-Verbindungen recht einfach miteinander verbunden werden, es gibt sogar Definitionen für entsprechende Anschlußbuchsen. Es ist nur die 10 Bit Variante definiert, bei 8 Bit bleiben einfach die niedrigsten zwei Bit konstant auf Null bzw. sind gar nicht vorhanden. Es werden also 10 Bit Worte mit jedem Takt übertragen.
Mit jeder steigenden Taktflanke werden vom Empfänder die Daten übernommen, bei jeder fallenden Flanke ändern sich die Daten. Die Toleranz für das Timing beträgt jeweils 3ns.
Synchronisation, Datenformate
![]() |
BT.656 |
Es wird das 4:2:2-Format verwendet und die Komponenten werden jeweils nacheinander übertragen. Zwei Pixel haben je ein Y-Wort und gemeinsam ein Cb- und Cr-Wort. Für zwei Pixel hat man also vier Worte, deshalb ist der Takt bei BT.656 doppelt so hoch wie die Abtastrate: 27MHz.
Für die Pixel 1,2,3,4,… werden die Worte in folgender Reihenfolge übertragen:
Cb(1,2) Y(1) Cr(1,2) Y(2) Cb(3,4) Y(3) Cr(3,4) Y(4) …
Cb(1,2) bedeutet z.B., daß es sich um das gemeinsame Cb-Wort von Pixel 1 und 2 handelt.
Vor den ersten 720 Pixeldaten ist der SAV-Code (Start Of Video), hinter den letzten 720 Pixeldaten ist der EAV-Code (End Of Video), beide Codes setzen sich aus je vier Worten zusammen. Da eine Zeile 864 Pixel (PAL) oder 858 Pixel (NTSC) enthält, wird der Rest zwischen dem EAV-Code und dem SAV-Code aufgefüllt. Die Werte der Worte zwischen EAV und SAV sind beliebig, dürfen aber nicht 0..3 oder 1020..1023 sein. Normalerweise füllt man diese Worte mit schwarzen Pixeln, also mit Vierergruppen mit folgenden Inhalt 0x200,0x040,0x200,0x040 (Cb und Cr jeweils 0, Y jeweils 64 = Schwarz). Das Bild zeigt nur die obersten 8 Bits, also alle Werte dividiert durch Vier. Ein SAV- und ein EAV-Code hat folgendes Format:
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | F | V | H | P3 | P2 | P1 | P0 | 0 | 0 |
H = 0 für SAV, H = 1 für EAV
V = 0, wenn Zeile aktiven Bildinhalt enthält, sonst V = 1
F = 0 im odd-field, F = 1 im even Field
P3 = V ^ H
P2 = F ^ H
P1 = F ^ V
P0 = F ^ V ^ H
P0..P3 sind Prüfbits, sie erlauben eine Korrektur von Einzelbitfehlern. Ein BT.656 Decoder wertet für die SAV- und EAV-Erkennung nur die oberen 8 Bit aus, so daß es keine Schwierigkeiten mit dem 8 Bit Format gibt. Beim 8 Bit Format sind die beiden unteren Bits in allen Worten des SAV- oder EAV-Codes Null. Diese beiden Bits können ohne Fehlfunktion im SAV- und EAV-Code auch beliebig sein.
Für die Zeilen 1-625 im PAL-System (siehe „Videosysteme 625/50 und 525/60“ in der Rubrik analog Video) haben F und V folgende Werte:
+---------+---+---+ | Zeile | F | V | +---------+---+---+ | 1- 22 | 0 | 1 | | 23-310 | 0 | 0 | | 311-312 | 0 | 1 | | 313-335 | 1 | 1 | | 336-623 | 1 | 0 | | 624-625 | 1 | 1 | +---------+---+---+
Für die Zeilen 1-525 im NTSC-System (siehe „Videosysteme 625/50 und 525/60“ in der Rubrik analog Video) haben F und V folgende Werte:
+---------+---+---+ | Zeile | F | V | +---------+---+---+ | 4- 20 | 0 | 1 | | 21-263 | 0 | 0 | | 264-265 | 0 | 1 | | 266-282 | 1 | 1 | | 283-525 | 1 | 0 | | 1- 3 | 1 | 1 | +---------+---+---+
digitale Anschlüsse
![]() |
BT.656 Anschluß |
Für BT.656 ist als Anschlußbuchse eine 25-polige Sub-D Buchse (weiblich) festgelegt worden, es ist die gleiche Buchse, wie sie auch für parallele Schnittstellen am PC üblich sind. Takt (Clock) und Daten werden differenziell übertragen, d.h. es gibt jeweils das Signal selbst und das invertierte Signal. Auf Empfängerseite sind Differenzstufen, die daraus wieder die normalen Signale gewinnen. Die Leitungsabschlüsse auf der Eingangsseite betragen 110 Ohm. Der Vorteil ist die erheblich sicherere Datenübertragung, sonst bekommt man schon bei kurzen Kabeln (ab ca. 1m) Probleme mit der fehlerfreien Datenübertragung. So kann jedoch ein einfaches Flachbandkabel für Längen bis ca. 2-5m verwendet werden.
Ich habe diese Anschlüsse bisher noch bei keinem Gerät (außer bei meinen selbst gebauten) gesehen, wahrscheinlich findet man die nur bei professionellen Geräten. Es gibt auch noch eine serielle Variante, die dann über ein einzelnes 75Ohm Koaxkabel läuft. 27MHz-Takt und die 10-Bit Daten werden seriell aufbereitet und auf Empfangsseite wieder zurückgewonnen. Alles andere ist identisch mit der beschriebenen parallenen Variante.
Bildverarbeitung
In der digitalen Videotechnik kommen einige Bildverarbeitungsmechanismen immer wieder vor. Viele dienen zur Erzeugung irgendwelcher Trickeffekte, z.B. das Blue Box Verfahren, wo alles, was Blau (manchmal auch Grün) ist, durch ein anderes Bild ersetzt wird oder die Tricks, laufende Videos wie Papierblätter beliebig im Raum zu bewegen, knicken, rollen u.s.w.
Hier werden nur Verfahren beschrieben, die zur Bildverbesserung dienen (sollen).
Timebase-Corrector
Ein sehr unscheinbares Gerät, dessen Wirkung sich fast niemals bemerkbar macht. Erst wenn man es wegläßt, macht es sich negativ bemerkbar. Das Bild wird bei einem Timebase-Corrector überhaupt nicht angetastet.
Es ist im Grunde nichts weiter als ein großes FIFO, ein Speicher, bei dem auf einer Seite die Daten hineingeschrieben werden und auf der anderen Seite in der gleichen Reihenfolge wieder herauskommen. Der Takt zum Ein- und Auslesen muß dabei nicht gleich sein, lediglich im Mittel muß natürlich genau soviel gelesen wie geschrieben werden. Kurzzeitige Abweichungen dürfen aber auftreten. Normalerweise steuert man das Timing so, daß der Speicher im Mittel etwa halb voll ist. Der Speicher darf dabei nie leer oder ganz voll werden.
Mit einem Timebase-Corrector kann man z.B. das ungenaue Timing eines Videorecorders wieder in ein sauberes Timing umwandeln, die Synchronisation des Ausgangssignales enthält dann nahezu keinen Jitter mehr. Der Jitter, der beim Lesen des Videosignals Einfluß hat, bleibt aber als Bildinhalt bestehen, lediglich das Sync-Timing ist sauber. Nur so ist es möglich, z.B. VHS-Aufnahmen im Fernsehen zu senden. So ein Timebase-Corrector ist auch das ideale Gerät zum Ausschalten des analogen Kopierschutzes, da das Bild vollkommen neu aufgebaut wird, bleiben garantiert keinerlei Reste von Kopierschutz übrig. Einige Videorecorder haben bereits einen eingebauten Timebase-Corrector, allerdings meistens in einer Sparversion mit kleinem Speicher, der aber für diesen ausschließlichen Zweck ausreicht. Außerdem wird da der Kopierschutz mit durchgereicht oder neu erzeugt, das ist Bedingung von VHS-Lizenzgeber.
Auch für die Anpassung eines asynchronen Videosignals an ein vorgegebenes Sync-Timing wird ein Timebase-Corrector genommen. Hier muß der Speicher genau ein Vollbild fassen können. Bei Abweichungen der Bildfrequenzen muß dann gelegentlich ein Vollbild weggelassen werden oder eines doppelt gezeigt werden. Da selbst bei Videorecordern die mittlere Bildfrequenz quarzgenau ist, kommt das höchstens ca. alle 10min einmal vor, meistens noch seltener. Ich habe selbst so einen Timebase-Corrector und habe das in den vielen Jahren, seit ich ihn benutze, noch nie sichtbar feststellen können. Wenn die Quelle sich nicht extern synchronisieren läßt, ist das die einzige Möglichkeit. Bei extrener Synchronisation wird die mittlere Bildfrequenz der Bildquelle der vorgegebenen Synchronisation nachgeregelt, so daß niemals Bilder weggelassen oder verdoppelt werden müssen.
Als letzte Variante kann natürlich auch die Bildwechselfrequenz des Ausgangssignals langsam nachgeregelt werden, das macht natürlich nur Sinn, wenn nur eine Quelle vorhanden ist.
Skalierung
Bei Verwendung von Displays mit Pixelstruktur, wie z.B. LCD, DLP oder Plasmaschirmen stimmt im Allgemeinen das Pixelraster nicht mit dem der Videoquelle überein. Die Displays haben meistens quadratische Pixel, d.h. deren Höhe und Breite ist identisch. Bei digital Video ist das jedoch nie der Fall, es gibt ja sogar gleich vier verschiedene Formate (PAL/NTSC und normal/anamorph).
Folglich muß das Bild horizontal und/oder vertikal skaliert werden. Bei analoger Verbindung ist die horizontale Skalierung ganz einfach: die ohnehin vorhandenen D/A- und A/D-Wandler laufen mit der jeweils passenden Abtastrate, der D/A-Wandler also mit dem Takt der Vieopixel und der A/D-Wandler mit dem Takt der Displaypixel. Dies ist auch qualitätsmäßig die beste Methode. Die Zeilen werden 1:1 abgebildet. Für ein anamorphes PAL-Bild mit 576 Zeilen ist ein 1024*768-Display am günstigsten, von dem 4:3-Display werden vertikal nur 75% genutzt: 768 * 3 / 4 = 576. Bei nicht-anamorphen Video bleibt entweder auf allen Seiten ein ungenutzter Rand oder man muß vertikal skalieren.
Für eine beliebige Skalierung werden für jedes Displaypixel die Koordinaten im digitalen Video berechnet. Diese Koordinaten sind im Allgemeinen nicht ganzzahlig. Billige Skalierer runden diese Koordinaten einfach auf ganzzahlige Werte und schnappen sich das entsprechende Pixel aus dem digitalen Video. Das Ergebnis sind regelmäßige Zeilen-/Spaltenverdoppelungen oder (bei Verkleinerungen) es fallen Zeilen und/oder Spalten weg. So ein Ergebnis ist völlig unbefriedigend und kommt für Videoanwendungen nicht in Frage. Wer eines der oben genannten Displays (oder Projektoren) hat, will ja gerade eine bessere Qualität haben, sonst tut es ja auch ein normaler Fernseher.
Bei der besseren Variante wird interpoliert: Bei nicht ganzzahligen Koordinaten landet man in einem Rechteck, dessen Eckpunkte von vier Pixeln gebildet werden. Es wird jetzt ein gewichtetes Mittel aus diesen Werten gebildet:
![]() |
bilineare Interpolation |
Die Nachkommastellen der Koordinaten seien X und Y, sie liegen jeweils im Intervall
0 <= X < 1.
Mit den Eckpunkten A,B,C,D ergibt sich als Interpolationswert:
H = (1-X)*(1-Y)*A + X*(1-Y)*B + (1-X)*Y*C + X*Y*D
diese Interpolation muß für jede Farbkomponente RGB oder YUV getrennt vorgenommen werden.
Die Ergebnisse dieses Verfahrens sind recht gut, vor allem dann, wenn die Zahl der Pixel des Displays größer als die ursprüngliche Pixelzahl ist. Aber auch umgekehrt geht das noch ganz gut, wenn nicht zu stark verkleinert wird. So funktioniert auch die Letterboxfunktion in jedem DVD-Player, wenn er anamorphe Videos in Letterbox umrechnet. Da hier nur vertikal skaliert wird, ist X immer 0, so daß die Punkt B und D unberücksichtigt bleiben und immer nur zwei übereinander liegende Pixel miteinander verrechnet werden.
Die besten Ergebnisse erhält man, wenn man sich streng an das Abtasttheorem hält und eine Abtastratenwandlung durchführt, wie das von mir in der Rubrik „digital Audio“ beschrieben wird. Für Videosignale muß das zweidimensional gemacht werden, also erst alle Zeilen für sich alleine, danach alle Spalten. Der Aufwand ist sehr hoch, er wird vor allem bei den DVD-Herstellern getrieben (hoffentlich!), wenn nur ein Master in abweichender Auflösung zur Verfügung steht, z.B. NSTC -> PAL, oder bei digitalen Vorlagen wie „Toy Story“ oder „A Bugs Live“. Natürlich wird die Auflösung durch das gröbste beteiligte Pixelraster bestimmt, weitere Fehler tauchen bei dieser Methode aber nicht auf. Eine PAL-DVD, die durch Skalierung von einem NTSC-Master stammt, kann daher die gleiche Qualität haben, wie die NTSC-DVD vom gleichen Master.
CTI
Das Farbsignal, bestehend aus U und V (bzw. Cb und Cr), hat eine geringere Auflösung als das Helligkeitssignal. Bei 4:2:2 und bei 4:2:0, wie es bei DVD verwendet wird, macht sich das kaum bemerkbar, bei Y/C noch eher als beim RGB-Anschluß. Beim Fernsehen und ganz besonders bei Video sieht die Sache schon ganz anders aus: Die Bandbreite ist erheblich kleiner als beim Helligkeitssignal, nicht nur halb so groß. Bei Video ist das z.B. der Faktor 6 (3MHz Helligkeit, 0.5MHz Farbe). Besonders die sattsam bekannten roten Rücklichter von Autos in dunklen Szenen machen sich dann unangenehm bemerkbar. Die Helligkeit ist einigermaßen scharf begrenzt, aber die rote Farbe läuft über die Helligkeitsgrenzen aus. Auch bei farbiger Schrift macht sich dieser Effekt unangenehm bemerkbar. Bei hellem Hintergrund fällt das nicht so stark auf.
![]() |
CTI |
CTI wurde mal von Philips entwickelt und findet sich heute in den meisten Fernsehern und ist oft genug nicht abschaltbar. Da CTI nicht beim RGB-Anschluß wirkt, ist das noch ein Grund mehr, den DVD-Player dort anzuschließen. Bei CTI wird die Flankensteilheit der Farbsignale U und V beobachtet. Wenn diese eine feste Schwelle überschreitet, wird eine Sample&Hold-Schaltung aktiv, die den momentanen Wert festhält, bis die Flankensteilheit wieder kleiner wird. Dann springt die Spannung schnell auf den Endwert, wodurch die Flanke steiler wird. Das Y-Signal muß verzögert werden, damit die Flanken wieder zusammenfallen. Das Bild zeigt oben die Originalsignale und unten die manipulierten. Y ist einfach verzögert, U bzw. V wird kurz nach der Flanke eingefroren und erst verzögert losgelassen. Die Flankensteilheit von U und V ist dann auf die max. Flankensteilheit vom Y-Signal begrenzt. Diese Schaltung arbeitet meistens analog, kann natürlich auch im digitalen weiter realisiert werden.
![]() |
CTI-Fehler |
Mit Testbildern und scharf abgegrenzten Farbflächen funktioniert das recht gut, bei Farbverläufen kann die Wirkung verheerend sein, besonders, wenn eine senkrechte Kante einen sanfteren Farbverlauf hat, dann wird der Farbverlauf hart und ist infolge von Ungenauigkeiten auch noch ausgefranzt. Im Bild ist in der oberen Hälfte CTI abgeschaltet, in der unteren dagegen eingeschaltet. Dies ist natürlich der Worst-Case Fall und hier nur gezeichnet, ich habe das aber auf Fernsehern mit CTI schon genau so gesehen.
Ich selber habe für VHS und Fernsehen eine andere Methode entwickelt (ca. 1995): sobald die Helligkeit H einen einstellbaren Wert S unterschreitet, wird U und V mit (H/S) multipliziert, d.h. abgeschwächt. Über der Schwelle S bleiben U und V unverändert. Bei dunklen Flächen wird die Farbsättigung also verkleinert, bei Schwarz ist sie dann Null. Das fällt kaum auf, dafür sind die Farbverläufe, die in dunkle Flächen auslaufen, weg. Natürlich ist ein dunkler Nachthimmel dann weniger blau und dafür mehr dunkelgrau, aber das sieht gar nicht mal so viel schlechter aus. Mit S kann man die Filterwirkung einstellen, je höher S, desto größer die Wirkung. Mit S = 0 ist das Filter (z.B. bei DVD) ausgeschaltet. Das Gleiche hatte ich früher (vor 1990) schon analog realisiert, bisher habe ich so eine Schaltung noch bei keinem Gerät gesehen. Kann sein, daß bei Profigeräten so etwas zu finden ist.
Rauschunterdrückung
Eine Rauschunterdrückung ist ähnlich wie CTI oder sonstige Bildverbesserungstechniken eine zweischneidige Sache. Man kann bei schlechten Vorlagen die Qualität verbessern, aber grundsätzlich nur auf Kosten anderer Qualitätskriterien. Die Kunst besteht in der richtigen Dosierung. Das gilt in ganz besonderem Maße für eine Rauschunterdrückung.
![]() |
Rauschunterdrückung |
Das Prinzip ist relativ einfach: Es gibt einen Bildspeicher (normalerweise nur für ein Halbbild, so funktioniert das mit Filmen genau so gut wie mit TV-Programmen), der synchron zum laufenden Video adressiert wird. Genutzt wird dabei die Ähnlichkeit aufeinanderfolgender Bilder, das funktioniert auch dann mit Halbbildern, wenn die Vorlage wie bei einem Film progressiv ist. Aus den ankommenden Pixeldaten und den entsprechenden Daten im Speicher wird ein gewichteter Mittelwert gebildet und sowohl in den Speicher zurückgeschrieben als auch ausgegeben. Der Wichtungsfaktor W im Bereich 0..1 gibt an, wie hoch der Anteil des Speicherinhaltes M ist. Der Videoanteil V bildet dann den Rest:
S = W * M + (1 - W) * V
W ist dabei eine Funktion von M und V, normalerweise eine Funktion von ABS(M-V). Die Idee ist, bei kleinen Differenzen W groß zu machen, da sich der Inhalt dieses Pixels kaum verändert hat und deshalb der Speicherinhalt, der bereits gemittelte Werte enthält, höher gewichtet wird. Bei großen Differenzen wird W kleiner, so daß die Änderungen sich auch schnell auswirken können.
![]() |
Rauschfilter |
Für jedes Pixel des Bildes entsteht so ein eigenes Rauschfilter, dessen Struktur rechts zu sehen ist. Der Kasten mit der Bezeichnung Z**(-1) ist nichts weiter als eine Verzögerung um ein Halbbild. Für W = 0 werden die Daten unverändert durchgereicht, das Filter ist aus. Mit wachsendem W wird die Sache immer „träger“, es sind nur noch langsame Änderungen möglich. Da Rauschen ein relativ kleines Signal darstellt, wird man bei kleinen Differenzen zwischen M und V das Filter stark wirksam machen (also W groß, bis knapp 1.0), bei großen Differenzen jedoch W klein machen, damit die Änderung, die offensichtlich vom Nutzsignal und nicht vom Rauschen her kommt, möglichst schnell wirksam wird. Es ist ein sog. adaptives Filter, dessen Filtercharakteristik sich ständig abhängig von den Signalen ändert.
Die Funktion von W in Abhängigkeit von ABS(M-V) kann praktisch beliebig vorgegeben werden, das ist Sache des Filterdesigners. Nur sollte W mit wachsender Differenz immer kleiner werden und darf den Wert 1.0 nie erreichen. Durch Veränderung dieser Funktion kann man die Filterwirkung dosieren.
Leider funktioniert so ein Filter nicht perfekt. Bewegungen von kontrastreichen Objekten werden zwar kaum verfälscht, aber bei kontrastarmen Objekten und Bildern sind die Differenzen alle klein und das Filter kann kaum noch zwischen Rauschen und Signal unterscheiden. Die Folge sind Bewegungsunschärfen. Noch schlimmer wird es, wenn mehrere derartige Rauschfilter hintereinander geschaltet sind. Jetzt sind mehrere Speicher hintereinander vorhanden, die jeder eine zusätzliche Verzögerung mit ins Spiel bringen können. So werden Bildteile mit geringem Kontrast stärker verzögert als Teile mit hohem Kontrast. Die Folge sind Bildteile, die in ihrer Bewegung zeitlich hinter dem restlichen Videosignal hinterherhinken. Das sind dann die „wabernden Gesichter“, die man manchmal zu sehen bekommt. Das gilt auch dann, wenn eine Rauschunterdrückung an mehreren Stellen im Produktionsprozeß verwendet werden, z.B. erst eines beim Abtasten des Filmes, dann wieder beim Mastern der DVD und evtl. schließlich das Rauschfilter im Fernseher. Daraus folgt: wenn auf eine Rauschunterdrückung nicht verzichtet werden kann, dann soll man es nur einmal verwenden. Die evtl. vorhandene Rauschunterdrückung des Fernsehers muß dann unbedingt aus bleiben (und wenn bei der Produktion keines nötig war, ist auch beim Fernseher wohl keines nötig). Bei eigenen Videoaufnahmen kann so ein Filter teilweise sehr nützlich sein.
Ein weiterer Fehler kann sich einschleichen, wenn aus Kostengründen bei der Wortbreite des Speichers gespart wird. Die sollte ca. 4 Bit größer sein als die des Videosignals, also 12 Bit. sonst entstehen bei der Mittelwertbildung „Nachzieheffekte“ für das Signal, die zu mosaikförmigen Bildflächen führen können. Dazu ein Beispiel: Ein Signal springt einmal von 80 auf 100, das andere Mal von 120 auf 100, W sei 0.9, das Ausgangssignal liefert bei ganzzahliger Rundung dann folgende Folgen:
80 82 84 86 87 88 89 90 91 92 93 94 95 96 96 96 96... 120 118 116 114 113 112 111 110 109 108 107 106 105 105 105 105 105...
wie man sieht, wird in beiden Fällen nicht der Endwert von 100 erreicht. Je nachdem, ob man vorher einen höheren oder niedigeren Wert hatte, sind die Endwerte verschieden, in diesem Fall 96 und 105. Sie müssen aber gleiche Werte haben. Die Differenz zwischen Eingangswert und Ausgangswert bleibt bei ca. 5 stehen. Erst, wenn die Differenz wieder größer wird, reagiert der Ausgang. Wenn er also bei 105 angekommen ist, reagiert er erst wieder, wenn das Eingangssignal <100 oder >109 wird, sonst bleibt er konstant bei 105 stehen.
Je näher W an 1.0 heranreicht, desto schlimmer wird dieser Effekt. Ursache sind die Rundungsfehler. Wenn W maximal ca. 0.9 erreicht, reichen aber 4 Bits mehr Auflösung im Zwischenspeicher aus, um diesen Effekt zu vermeiden. Philips hatte ca. 1990 schon einmal so eine Rauschunterdrückung für Fernseher versucht, ist aber genau aus diesem Grund gescheitert. Mehr Speicherwortbreite war aber aus Kostengründen nicht drin, vor allem hatte Philips schon einen entsprechenden Spezialspeicher (auf CCD-Basis) mit 8 Bit Wortbreite fertig entwickelt (dumm gelaufen).
Progressive Scan
Dies dürfte ein in nächster Zukunft ein ganz besonders heißes Thema werden. In der Rubrik „analog Video“ im Kapitel „Interlaced Video“ wird der Zeilensprung beschrieben, wie er heutzutage bei allen Fernsehsystemen verwendet wird. Die Folge ist ein Zeilenflimmern und ein Verlust an vertikaler Auflösung.
Eine progressive Darstellung ist im Prinzip viel einfacher, es werden alle Zeilen nacheinander dargestellt. Punkt. So arbeitet z.B. auch jeder VGA-Monitor zusammen mit der Graphikkarte. Nur deshalb kann man hier auch die Unterschiede zwischen progressiv und interlaced mit Animationen darstellen.
![]() |
interlaced |
![]() |
progressiv |
Wie man sieht, flimmern einzelne Teile der dünnen, schrägen Linien, da diese Teile jeweils nur in einem Halbbild vorhanden sind und nur 25-mal pro Sekunde dargestellt werden. Das gilt auch für 100Hz-Technik, wenn jedes Halbbild zweimal gezeigt wird, es wird dann zweimal das Teil gezeigt und zweimal nicht, insgesamt wieder 25-mal pro Sekunde. 100Hz-Fernseher arbeiten allerdings anders, das wird dann dort beschrieben. Bei den farbigen Quadraten flimmert jeweils die obere und untere Kante, da die äußersten Zeilen dieser Quadrate ebenfalls nur in einem Halbbild dargestellt werden. Beim waagerecht schraffierten Quadrat wird der vertikale Schärfeverlust besonders deutlich, in einem Halbbild sind nur die weißen Schraffurlinien und im anderen die schwarzen. Bei der interlaced Wiedergabe flimmert das Quadrat lediglich mit 25Hz, es ist je 1/50sec ganz schwarz oder ganz weiß. Von der Schraffur ist nichts mehr zu sehen. Besonders gut eignet sich die Zonenplatte als Testbild für die Unterschiede progressiv – interlaced. Dort, wo bei progressiver Darstellung noch Linien zu unterscheiden sind, fängt es bei interlaced Darstellung an zu flimmern. Ein Vergleich kann hier aber aus Gründen der sehr umfangreichen Daten für so eine Darstellung nicht gezeigt werden.
Progressive Vorlagen
Jedes gescannte Foto ist zunächst einmal progressiv. Das gilt auch dann, wenn die Reihenfolge der Zeilen vertauscht wird, also auch dann, wenn zuerst alle ungeraden und dann alle geraden Zeilen kommen. Durch ein entsprechendes Zurücksortieren erhält man wieder die progressive Vorlage. Jedes Bild eines Filmes wird mit mindestens 2 Halbbildern abgetastet (siehe Rubrik „analog Video“ Kapitel „Filmtransfer“). Je zwei verschiedene Halbbilder von dem selben Filmbild ergeben zusammen die progressive Information, genau so wie bei dem eben beschriebenen Foto.
![]() |
Bewegungsphasen |
Leider sind nicht alle Vorlagen progressiv. Normale Fernsehsendungen, die mit elektronischen Kameras aufgenommen wurden, nehmen mit jedem Halbbild eine eigene neue Bewegungsphase auf. Die beiden Animationen zeigen die Bewegungsphasen für eine progressive Vorlage wie bei einem Film und für eine elektronische Kamera wie z.B. bei Sportsendungen. Die Bewegung ist flüssiger, da jetzt 50 Bewegungsphasen pro Sekunde dargestellt werden, dafür ist die vertikale Auflösung verringert und kann nicht wieder komplett hergestellt werden, wie man z.B. an den Speichen des Rades sehen kann.
De-Interlacing
Da es im Fernsehen nicht nur progressive Vorlagen wie z.B. Filme gibt, müssen beim De-Interlacing je nach Vorlage verschiedene Verfahren zum Einsatz kommen.
Leider kommt man bei den Fernsehsendern nicht auf die Idee, alle Sendungen mit progressiven Vorlagen zu produzieren. Filme werden wie bisher gesendet und sonst verwendet man progressive elektronische Kameras und setzt deren Signal in entsprechende Halbbilder um. Das Videosignal bleibt technisch das gleiche, es ist also vollkommen kompatibel. Mit normalen Fernsehern sieht man genau so wie bisher (Filme sieht man ja bereits schon immer so), aber man könnte mit entsprechend ausgestatteten Fernsehern alle Sendungen progressiv sehen. Diese Fernseher müßten lediglich das „Weave“-Verfahren beherrschen, und für alte Sender und Sendungen (Videoaufzeichnungen) den normalen 50Hz-Modus.
Weave
Das einzig wahre Verfahren, um eine echte progressive Darstellung zu erhalten! Es werden aus den Halbbildern, die zum selben Filmbild gehören, die geraden und ungeraden Zeilen zusammengesucht und komplett in einem Rutsch progressiv ausgegeben.
![]() |
Weave PAL |
Bei 656/50 (PAL) gehören immer zwei Halbbilder zu einem Filmbild. Das ist entweder das Odd-Field zusammen mit dem folgenden Even-Field oder das Even-Field und das darauffolgende Odd-Field. Eine Bildanalyse müßte jetzt diese beiden Fälle untersuchen und dann entscheiden, welcher Fall zutrifft. Normalerweise gehört das Odd- und das folgende Even-Field zum selben Filmbild, eine Garantie dafür gibt es jedoch nicht. Die Analyse muß prizipiell nur einmal am Anfang gemacht werden, danach kann die Zuordnung anhand der Odd- und Even-Fields vorgenommen werden. Sollte der Film aber elektronisch geschnitten worden sein, kann es sein, daß sich dabei die Zuordnung umkehrt (selten, da auch elektronische Schnitte meistens an Vollbildern vorgenommen werden). Deshalb muß die Analyse ständig im Hintergrund weiter laufen, um möglichst schnell korrigierend einzugreifen.
Diese Halbbilder werden nacheinander in einen Bildspeicher geschrieben, wobei das Odd-Field nur die ungeraden Zeilen beschreibt und das Even-Field die geraden. In der gleichen Zeit (1/25s) wird der Inhalt eines zweiten Bildspeichers, der mit den beiden vorherigen Halbbildern beschrieben wurde, progressiv ausgelesen, also alle Zeilen direkt nacheinander. Da nur 25 Vollbilder pro Sekunde anfallen, würde es heftig flimmern, deshalb wird das Vollbild mindestens zweimal in dieser Zeit ausgelesen. Nach jeder 1/25s tauschen die beiden Bildspeicher ihre Rollen, der Speicher, in den vorher die beiden Halbbilder geschrieben wurden, liest jetzt die Bilder aus, in den anderen werden jetzt die nächsten Halbbilder eingelesen. Das Bild zeigt die Zusammenhänge zwischen Filmbildern, Halbbildern im Videosignal und dem progressiven Signal eines De-Interlacers, letzteres wahlweise mit 50, 75 oder 100 Bildern/s. Durch die Bildspeicher entsteht eine Verzögerung von 1/25s. Strenggenommen müßte der Ton jetzt ebenfalls um diese Zeit verzögert werden, ob diese Asynchronität allerdings schon bemerkbar ist, steht auf einem anderen Blatt. Außerdem braucht auch der Schall von den Lautsprechern bis zum Hörer etwas Zeit, bei 3m ca. 1/100s.
Wenn eine progressive Vorlage vorhanden ist und die jeweils richtigen Halbbilder zusammengesetzt werden, erhält man eine echte progressive Darstellung. Das gilt unabhängig davon, ob z.B. auf DVD die Vorlage selbst progressiv oder interlaced abgespeichert ist, denn da unterscheidet sich lediglich die Reihenfolge der Zeilen, die Player-intern vom Laufwerk zum Speicher vor dem D/A-Wandler geht. Aus dem Wandler kommt jeweils das gleiche. Weave kann man deshalb auch mit Fernsehsendungen oder sogar mit Videoaufnahmen durchführen, wenn die Vorlage progressiv ist.
![]() |
Weave NTSC |
Bei 525/60 (NTSC) wird die Sache erheblich schwieriger. Durch den 3:2 Pulldown wird ein Filmbild abwechselnd mit 3 bzw. 2 Halbbildern dargestellt. Bei dem Filmbild, das mit 3 Halbbildern dargestellt wird, ist das erste und das dritte Halbbild identisch. Bei NTSC-DVDs kann (aber muß nicht!) bei Filmen auf die Speicherung des dritten Halbbildes verzichtet werden. Wenn ja, holt der Player das dritte Halbbild erneut aus dem Speicher, wo auch das erste Halbbild ist. Das ganze wird Inverse Telecine genannt und nicht, wie manchmal fälschlicherweise zu lesen, 2:3 Pullup! Die jeweils beiden zusammengehörenden Halbbilder können ihrerseits entweder als Halbbilder oder jeweils zusammen progressiv auf der DVD gespeichert sein. Egal, wie das intern auf der DVD tatsächlich abgelegt ist, aus dem D/A-Wandler kommt bei einem nicht-progressiven Player immer das selbe Videosignal heraus, selbst, wenn der Film interlaced mit 60 Halbbildern/s auf der DVD gespeichert ist. Solange die Vorlage ein Film ist, kann aber immer die progressive Information wiedergewonnen werden. Das gilt natürlich auch für PAL, dort ist die Sache sogar einfacher.
Ein NTSC De-Interlacer muß also erst einmal diesen Zyklus mit den 5 Halbbildern erkennen und dann abarbeiten, bei PAL sind das nur zwei Halbbilder, die man auch eindeutig als Odd- und Even-Fields identifizieren kann. Bei NTSC gibt es leider keine feste Beziehung zwischen Odd/Even-Fields und den Filmbildern, nach zwei Filmbildern = 5 Halbbildern beginnt der Zyklus mit genau dem anderen Halbbild als vorher. Auch hier muß eine Bildanalyse den 3-2-Rhythmus heraussuchen, im Gegensatz zu PAL muß die Analyse nach jeder Störung diesen Rhythmus neu suchen, bei PAL genügt die hardwaremäßige Erkennung der Odd- und Even-Fields. Hier muß ein Zähler, der immer von 0-4 zählt, frei mitlaufen, er kann lediglich mit der Analysefunktion nachsynchronisiert werden. Wenn die Halbbilder identifiziert sind, läuft es im folgenden wie bei PAL weiter ab. Die Halbbilder werden im Bildspeicher kombiniert und progressiv ausgegeben. Bei NTSC gibt es jedoch mehr Möglichkeiten, das zu tun.
Man kann entweder 60 oder 120 Vollbilder/s ausgeben, und zwar einmal 3/60s = 1/20s ein Filmbild und 2/60s = 1/30s das nächste Filmbild wie beim 3:2 Pulldown (die beiden rechten Spalten im Bild) oder
48, 72, 96 oder 120 Vollbilder/s, dann jeweils 1/24s ein Filmbild. Bei letzterem fällt das Bewegungsruckeln durch den 3:2 Pulldown ebenfalls weg.
Sollte durch eine Störung oder einen elektronischen Schnitt der Rhythmus unterbrochen und neu angesetzt werden, gibt es bei einigen Darstellungsarten Synchronsprünge und zwar bei PAL 75Hz, NTSC 48Hz, 72Hz und 96Hz. Da verschiebt sich der Anfang eines Zyklus‘ um ein oder mehrere Halbbilder, aber die Dauer eines Vollbildes ist kein Vielfaches dieser Zeit. Ideal sind daher bei PAL 100Hz und bei NTSC 120Hz, das erfordert aber eine Horizontalfrequenz von knapp 63KHz, die nicht jeder Projektor mehr schafft. Um Synchronsprünge zu vermeiden, bleiben einem sonst bei PAL 50Hz und bei NTSC 60Hz, bei NTSC hat man dann wieder das Bewegungsruckeln vom 3:2 Pulldown.
![]() |
Aussehen Weave oben: Darstellung mit Zeilensprung unten: Darstellung progressiv mit Weave links: Vorlage progressiv rechts: Vorlage interlaced |
Bei progressiven Vorlagen liefert Weave eine einwandfreie Wiedergabe, bei elektronischen Kameras, die in jedem Halbbild eine neue Bewegungsphase liefern, ist das Ergebnis nicht zufriedenstellend. Besonders bei horizontalen Bewegungen entstehen an senkrechten Kanten kammartige Strukturen. In der oberen Reihe sind die Bilder gezeigt, wie sie auf einem normalen Fernseher mit Zeilensprung aussehen unten auf einem Display mit progressive Scan als Weave. Links ist die Vorlage ein Film mit 2 Halbbildern pro Filmbild, rechts enthält jedes Halbbild eine eigene Bewegungsphase (elektronische Kamera).
Rechts oben, also eine interlaced Wiedergabe mit elektronischer Kamera als Quelle, ist die Bewegung flüssiger, da die Kamera 50 Bewegungsphasen pro Sekunde liefert. Wie man am Radreifen und an den Speichen sehen kann, ist bei der interlaced Wiedergabe (die beiden oberen Bilder) die vertikale Auflösung niedriger als bei einer progressiven Wiedergabe, die man unten sieht. Auch die oberen und unteren Kanten der roten Rechtecke bewegen sich, die jeweils äußerste Zeile zeigt hier indirekt ihr Zeilenflimmern. Um das Zeilenflimmern zu reduzieren, wird die Vorlage oft vertikal gefiltert und damit die vertikale Auflösung verkleinert. Jetzt sind sich die benachbarten Zeilen aus den beiden Halbbilder ähnlicher und zeigen damit weniger Zeilenflimmern, aber auch bei einer progressiven Wiedergabe bekommt man nicht mehr die volle vertikale Auflösung wieder. DVDs, die wegen ihres geringen Zeilenflimmerns gelobt werden, sind bei progressiver Wiedergabe die schlechteren, denn die Auflösung nimmt nur wenig zu. Gerade DVDs mit stärkerem Zeilenflimmern profitieren von einer progressiven Wiedergabe besonders viel. Deshalb habe ich bisher noch nie DVDs mit stärkerem Zeilenflimmern deswegen negativ beurteilt.
BOB
Bei nicht progressiven Vorlagen wie z.B. einer elektronischen Kamera, erhält man mit Weave keine vernünftige Darstellung. Die einfachste Möglichkeit, mit einem progressiven Display brauchbare Ergebnisse zu erhalten, ist die Darstellung jedes einzelnen Halbbildes, das durch Skalierung auf die doppelte Zeilenzahl des progressiven Displays angepaßt wird. Bei PAL z.B. wird jedes Halbbild mit seinen 288 Zeilen mit den 576 Zeilen des progressiven Displays dargestellt.
Es gibt zwei Möglichkeiten:
- Bei einem Odd-Field werden die ungeraden Zeilen übernommen und die geraden interpoliert, beim Even-Field werden die geraden Zeilen übernommen und die ungeraden interpoliert.
- Bei beiden Fields werden die jeweils fehlenden Zeilen durch Verdoppelung gewonnen. Das muß jedoch in gleicher Weise geschehen, es wird immer die vorhergehende, also die darüberliegende Zeile wiederholt. Jetzt muß das progressive Vollbild 577 Zeilen haben:
Beim Odd-Field werden die ungeraden Zeilen 1-575 genommen und die geraden Zeilen 2-576 durch Verdoppelung gewonnen, Zeile 577 bleibt schwarz.
Beim Even Field werden die geraden Zeilen 2-576 genommen und die ungeraden Zeilen 3-577 durch Verdoppelung eingesetzt, Zeile 1 bleibt schwarz.
Nur so sind beide Halbbilder um je einen halben Halbbildzeilenabstand gegeneinander versetzt, so wie das auf einem normalen 50Hz-Fernseher auch ist.
![]() |
Aussehen BOB links: mit Verdoppelung rechts: mit Interpoliation |
![]() |
progressive Vorlage |
Beim Interpolieren wird das Zeilenflimmern nur bei dickeren Objekten abgeschwächt, aber die vertikale Auflösung wird zu „weich“ dargestellt. Das Zeilenflimmern von dünnen horizontalen Linien bleibt dagegen voll erhalten. Beim Verdoppeln behält das Bild die Auflösung, die man auch auf einem normalen Fernseher hat, allerdings hat man auch exakt das gleiche Zeilenflimmern bei allen Kanten wie dort. Meiner Meinung nach liefert die simple Zeilenverdopplung noch das bessere Ergebnis, der Bildinhalt bleibt zumindest exakt so, wie er auf einem normalen Fernseher mit Zeilensprung auch aussieht.
![]() |
Animation BOB links oben: progressive Vorlage rechts oben: elektronische Vorlage links unten: Zeilenverdoppelung rechts unten: mit Interpolation |
Hier jetzt noch einmal BOB mit Zeilenverdoppelung und mit Interpolation bei einer Animation. Links oben nur zum Vergleich die progressive Filmvorlage. Rechts oben die Vorlage von einer elektronischen Kamera, die als Vorlage für die unteren Bilder diente. Links unten das Ergebnis mit BOB und Zeilenverdoppelung, recht unten BOB mit Interpolation. Auch hier sieht das Ergebnis mit Zeilenverdoppelung besser aus als mit Interpolation. Es ist allerdings auch kaum besser als die Originaldarstellung auf einem 50Hz-Fernseher, lediglich die Zeilenstruktur ist feiner. Bei einer Filmvorlage (also das Bild links oben) sähe das Ergebnis auch nicht besser aus, nur daß jetzt nur jedes 2. Vollbild eine neue Bewegungsphase enthält.
BOB bringt also so keine Vorteile gegenüber dem normalen Zeilensprung, allerdings kann jetzt jedes Halbbild mehrere Male dargestellt werden, so daß das Großflächenflimmern vermindert wird. Das Zeilenflimmern bleibt aber bei 25Hz. Bei 100Hz-Fernsehern gibt es jedoch kein BOB, denn dort hat jedes Bild wieder nur 288 Zeilen, es kommen eben nur 100 statt 50 Halbbilder pro Sekunde auf den Bildschirm. Näheres dazu im Kapitel „100Hz-Fernseher“. BOB ist zusammen mit Weave vor allem etwas für den Filmfreund: Der Film wird mit Weave in bester Qualität wiedergegeben, die Extras einer DVD, die oft mit elektronischen Kameras produziert sind, kann man sich dann mit dem gleichen Display im BOB-Modus ansehen, die Qualität entspricht dann einem normalen Fernseher, evtl. ohne Großflächenflimmern, wenn der Projektor 63KHz horizontal und damit 100Hz oder 120Hz schafft. Vorteil von BOB: Das Bild selber wird nicht angetastet und damit auch nicht verfälscht.
Beschrieben wurde BOB für das 625/50 (PAL) System, für 525/60 (NTSC) gelten die gleichen Überlegungen, es sind lediglich 60Halbbilder/s statt 50 und 243 Zeilen pro Halbbild und 486 Zeilen pro Vollbild.
Motion adaptive
Für den Sportfan oder den Liebhaber von Shows und sonstigen Fernsehsendungen lohnt sich die Anschaffung eines De-Interlacers nur mit Weave- und BOB-Funktion definitiv nicht, da die Bildqualität nicht besser wird und das Zeilenflimmern ebenfalls genau so bleibt wie vorher. Da bei Weave die Kammeffekte nur bei Bewegungen sichtbar werden, werden bei Motion adaptive die Bildteile ohne Bewegung mit Weave kombiniert und die restlichen mit BOB. Hierzu muß ständig der Bildinhalt analysiert werden, so daß für jedes Bildpixel eine Information „Bewegung Ja/Nein“ vorhanden ist. Weave und BOB laufen gleichzeitig, je nach der Bewegungserkennung wird das jeweils passende Signal zum Ausgang durchgeschaltet. So kommt man in unbewegten Bildteilen in den Genuß der progresiven Qualität. Das Verfahren ist wegen der Bewegungserkennung ziemlich aufwendig und bringt nur Vorteile bei nicht-progressiven Vorlagen, bei Filmen ist Weave besser, da die Bewegungserkennung nicht fälschlicherweise an einigen Bildteilen auf BOB zurückschalten kann. Die harte Umschalterei zwischen Weave und BOB innerhalb eines jeden Bildes kann auch die Bildqualität negativ beeinflussen, besonders, wenn in aufeinanderfolgenden Bildern die Entscheidungen der Bewegungserkennung leicht unterschiedlich ausfallen. Eine Variante davon wird auch in 100Hz-Fernsehern verwendet (siehe dort). Das Verfahren ist deutlich aufwendiger als Weave oder BOB wahlweise (es kommt die Bewegungserkennung hinzu) und bringt für Filme überhaupt nichts. Mein De-Interlacer wird genau aus diesem Grund nur Weave oder BOB beherrschen.
Motion Compensation
Eine Weiterentwicklung von Motion adaptive ist die Motion Compensation. Hier werden je zwei Halbbilder durch Weave miteinander kombiniert. Um bei Bewegungen die Kammstrukturen zu vermeiden, wird in den Bildern nach bewegten Bildteilen gesucht. Diese Bildteile werden dann möglichst gut zur Deckung gebracht und erst dann mit Weave kombiniert. Das Verfahren ist sehr aufwendig und nur dank spezieller ICs in Massenherstellung für die 100Hz-Fernseher (dort eine entsprechende Variante) bezahlbar geworden. Das dargestellte Bild ist komplett progressiv, aber leider nicht mehr das Originalbild! Außerdem entstehen auch ständig „Rechenfehler“, da so eine Motion Compensation nicht 100%ig perfekt möglich ist, z.B. dürften die Speichen bei dem drehenden Rad in meiner Animation so eine Motion Compensation ein großes Problem darstellen (keine reine Verschiebung). Meine Meinung: für „Big Brother“ sicher gut genug, wer aber keine verfälschten Bilder akzeptiert, wird hiermit nicht unbedingt glücklich werden. Für Filme hat dieses Verfahren ebenfalls keine Vorteile gegenüber Weave, genau wie Motion adaptive verdirbt jeder „Rechenfehler“ nur die Bildqualität, was Weave gar nicht passieren kann.
100Hz Fernseher
Die oben beschriebenen Verfahren bezogen sich auf Möglichkeiten, ein progressives Videosignal zu erhalten. Bei einem 100Hz Fernseher hat man aber lediglich die Horizontal- und Vertikalfrequenz verdoppelt. Es werden jetzt 100 Halbbilder/s statt 50 dargestellt und zwar immer noch abwechselnd Odd- und Even-Fields. Man kann jetzt nicht einfach je ein Odd- und Even-Field zweimal hintereinander zeigen, dann wird eine Bewegung nicht richtig dargestellt. Eine Halbbildfolge A,B,C,… würde dann folgendermaßen aussehen (oben Input, unten Output):
A B C D E F G H ... A B A B C D C D E F E F G H G H ...
Das würde nur bei Filmen klappen, wenn A und B, C und D usw. jeweils zu einem Filmbild gehören (näheres dazu später, siehe „Filmmode“). Denkbar wäre noch die doppelte Wiederholung eines jeden einzelnen Halbbildes, also:
A B C D E F G H ... A A B B C C D D E E F F G G H H ...
allerdings hat man dann die Reihenfolge Odd-Odd-Even-Even. Da die jeweils Odd- und Even-Fields deckungsgleich, die Even-Fields aber zeilenmäßig „auf Lücke“ zwischen die Zeilen der Odd-Fields (und umgekehrt) gesetzt werden müssen, wäre eine spezielle Korrektur der Vertikalablenkung nötig (das würde etwa dem BOB entsprechen). Das habe ich aber bisher noch bei keinem Gerät gesehen.
Deshalb kombiniert ein 100Hz-Fernseher die Halbbilder zu internen progressiven Vollbildern und gibt diese je zweimal mit je zwei Halbbildern aus. O1,E1,O2,E2,… in der oberen Zeile sind die originalen Halbbilder vom Input, in der unteren Zeile sind O1,O2,O3,… die Odd-Fields und E1,E2,E3,… die Even-Fields der progressiven Zwischenbilder, die je aus O1+E1, O2+E2, O3+E3 zusammengefaßt und als Output ausgegeben werden:
O1 E1 O2 E2 O3 E3 ... O1 E1 O1 E1 O2 E2 O2 E2 O3 E3 O3 O3
Das Kombinieren zu Vollbildern und das anschließende Aufteilen wieder in Halbbilder wird natürlich nicht in Wirklichkeit gemacht, diese Erklärung habe ich nur zum besseren Verständnis gegeben, bei 100Hz-Fernsehern werden die Berechnungen innerhalb der paarweise vorhandenen Halbbilder gemacht, das Ergebnis ist aber das gleiche. Das Zusammenfassen der Halbbilder kann wieder mit Weave, BOB, Motionadaptive oder mit Motion Compensation erfolgen.
Gut, wenn der 100Hz-Fernseher den sog. Filmmode beherrscht, dann wird bei Filmen in PAL je ein Odd- und das darauffolgende Even-Field zweimal nacheinander dargestellt, so wie oben in der ersten Folge beschrieben (Das entspricht dem Weave bei der Zusammenfassung der Halbbilder). Da zwischen diesen Halbbildern keine Bewegung ist, geht das in diesem Fall gut und es entstehen keine Artefakte. Allerdings funktioniert das nur bei PAL, nicht bei NTSC, wegen des 3:2 Pulldowns sind die Halbbilder nicht paarweise den Filmbildern zugeordnet. Außerdem muß die Programmquelle dieses auch unterstützen und den Filmmode im WSS-Signal einschalten.
Neben dem nahezu verschwundenen Großflächenflimmern geht auch bei 100Hz-Fernsehern das Zeilenflimmern zurück. Es ist zwar noch da, da der Fernseher immer noch Halbbilder darstellt, aber das Zeilenflimmern hat jetzt eine Frequenz von 50Hz und nicht wie sonst von 25Hz und fällt deshalb wesentlich weniger auf. Sobald Bewegungen ins Spiel kommen, sieht man jedoch wieder die gröbere Auflösung an den bewegten Kanten.
Kompressionsverfahren
Bei den Kompressionsverfahren gibt es zwei Ansätze: verlustlos und verlustbehaftet. Verlustlose Kompressionsverfahren nutzen Redundanzen (Abhängigkeiten untereinander oder überflüssige Fülldaten) in den Originaldaten und stellen sie in kürzerer Form dar (z.B. LZW). Die Originaldaten können auf jeden Fall vollständig rekonstruiert werden. Das funktioniert recht gut bei Text, weniger gut dagegen bei Bildern und Sounddateien, noch schlechter bei EXE-Files und praktisch gar nicht bei bereits komprimierten Daten. Bilder und Soundfiles scheinen relativ wenig Redundanz zu enthalten, das hängt damit zusammen, daß vieles dem Rauschen ähnlich ist oder sogar bei schlechter Qualität tatsächlich Rauschen ist. Rauschen enthält als Zufallssignal jedoch keine Redundanz, das Wesen von Zufallssignalen ist nun einmal die Unvorhersagbarkeit aller Ereignisse, daher enthält jedes Bit eines Rauschsignals neue Information. Daß diese Information nicht interessiert oder sogar stört, ist der Informationstheorie dann egal.
Bei Bildern und Sound verwendet man daher verlustbehaftete Kompressionsverfahren, da nimmt man in Kauf, daß das Signal nicht vollständig wieder hergestellt werden kann. Auch mit dem Rauschen wird man auf diese Weise noch besser fertig, als mit verlustlosen Verfahren.
Hier werden jetzt einige verlustbehaftete Kompressionsverfahren für Bilder vorgestellt. Zunächst aber eine Beschreibung der verlustlosen Huffman-Codierung, da die Bestandteil in fast allen Kompressionsverfahren ist.
Huffman Codierung
Textdateien verwenden für jedes Zeichen jeweils die gleiche Anzahl von Bits, bei ASCII z.B. 8 Bit = 1 Byte. Das ist auch sinnvoll, nur so kann ein Editor auch sinnvoll die Daten manipulieren. Zum Speichern ist diese Form aber nicht optimal. Einige Zeichen werden viel seltener verwendet als andere und andere überhaupt nicht. Ein Text, der z.B. max. 64 verschiedene Zeichen verwendet (z.B. A-Z,a-z,0-9,Blank und Punkt), würde auch mit 6 Bit pro Zeichen auskommen. Noch wesentlich besser sieht es aus, wenn häufig verwendete Zeichen mit wenig Bits und seltene Zeichen mit entsprechend mehr Bits codiert werden. In diesem Fall muß aber die Fano-Bedingung eingehalten werden: Kein Zeichen darf identisch mit dem Anfang eines anderen Zeichens sein, sonst ist eine Decodierung nicht möglich. Ideale Längen erhält man, wenn die Zahl der Bits eines Zeichens dem Kehrwert der relativen Häufigkeit des Zeichens entspricht:
N = 1/p N: Zahl der Bits des Zeichens p: relative Häufigkeit des Zeichens, liegt zwischen 0 und 1
Ein Zeichen mit der Häufigkeit 12.5% wäre dann z.B. 3 Bit lang. Leider geht diese Rechnung nur selten genau auf. Die Huffman-Codierung liefert für beliebig verteilte Häufigkeiten eine optimale Codierung für variable Codelängen der Zeichen.
Zunächst muß für alle vorkommenden Zeichen die Häufigkeit (wenn jede Codierung mit individueller Codierung erfolgt, die Codes müssen dann mit gegeben werden) oder die Wahrscheinlichkeit (wenn eine Huffmann-Codierung mit vorher festgelegtem Code verwendet wird) ermittelt werden.
Ich nehme mal als Beispiel nur 6 Zeichen A-F mit jeweils unterschiedlicher Häufigkeit. Die Zeichen werden untereinander nach Häufigkeiten sortiert:
A -- 40% B -- 20% C -- 15% D -- 12% E -- 8% F -- 5%
Die beiden untersten Einträge werden jetzt zusammengefaßt:
A ------------ 40% B ------------ 20% C ------------ 15% D ------------ 12% E -- 8% --+ +-- 13% F -- 5% --+
Jetzt wird neu sortiert:
A ------------ 40% B ------------ 20% C ------------ 15% E -- 8% --+ +-- 13% F -- 5% --+ D ------------ 12%
und wieder die beiden untersten Einträge zusammengefaßt. Bereits zusammengefaßte Einträge zählen als einer:
A ------------------- 40% B ------------------- 20% C ------------------- 15% E -- 8% --+ +-- 13% --+ F -- 5% --+ | +-- 25% D -- 12% ------------+
Das Spiel wird so lange fortgesetzt, bis alles zusammengefaßt ist:
A ---------------------- 40% E -- 8% --+ +-- 13% --+ F -- 5% --+ | +-- 25% D -- 12% ------------+ B ---------------------- 20% C ---------------------- 15% A ---------------------- 40% E -- 8% --+ +-- 13% --+ F -- 5% --+ | +-- 25% D -- 12% ------------+ B -- 20% --+ +------------ 35% C -- 15% --+ A ---------------------- 40% B -- 20% --+ +------------ 35% C -- 15% --+ E -- 8% --+ +-- 13% --+ F -- 5% --+ | +-- 25% D -- 12% ------------+ A -------------------------------- 40% B -- 20% --+ +------------ 35% --+ C -- 15% --+ | E -- 8% --+ +-- 60% +-- 13% --+ | F -- 5% --+ | | +-- 25% --+ D -- 12% ------------+ B -- 20% --+ +------------ 35% --+ C -- 15% --+ | E -- 8% --+ +-- 60% +-- 13% --+ | F -- 5% --+ | | +-- 25% --+ D -- 12% ------------+ A -------------------------------- 40% B -- 20% --+ +------------ 35% --+ C -- 15% --+ | E -- 8% --+ +-- 60% --+ +-- 13% --+ | | F -- 5% --+ | | +-- 100% +-- 25% --+ | D -- 12% ------------+ | A -- 40% --------------------------------+
Jetzt hat man einen Baum. Ein Zeichen wird durch den Weg von der Wurzel (rechts) bis zum Zeichen codiert. Jede Verzweigung ergibt ein Bit, der obere Weg eine 0, der untere Weg eine 1 (umgekehrt wäre genau so möglich, ergibt aber einen anderen, aber gleichwertigen Code):
B --0 +---------0 C --1 | E --0 +----0 +----0 | | F --1 | | +-- Root +----1 | D -------1 | A -----------------1
Damit ergeben sich für A-F folgende Codes:
A = 1 B = 000 C = 001 D = 011 E = 0100 F = 0101
Man sieht: kein Code ist Anfang eines anderen Codes. Das häufige A ist nur ein Bit lang, das seltene F vier Bit. Eine bessere Codierung ist nicht möglich, wenn jedes Zeichen durch eine ganze Zahl von Bits codiert werden soll. Es gibt natürlich mehrere gleichwertige Codes, man kann bei jeder Verzweigung beliebig festlegen, welche Richtung mit 0 und welche mit 1 Codiert wird.
Der „Text“ CAFAEDBABB z.B. ergibt den Code:
00110101101000110001000000 = 001 1 0101 1 0100 011 000 1 000 000 C A F A E D B A B B
Das Decodieren geht ähnlich: Man beginnt bei der Baumwurzel. Mit jedem Bit folgt man den Verzweigungen, bis man an einem Zeichen ankommt. Dieses Zeichen ist damit decodiert, mit dem nächsten Bit beginnt man wieder bei der Wurzel.
Grundprinzip Bildkompression
Es wird ausgenutzt, daß das Auge zwar geringe Helligkeitsabweichungen in einheitlichen Flächen wahrnimmt, aber weniger bei kleinen Details. Das Bild oder Bildausschnitte werden in einer geeigneten Form umgewandelt, so daß einige Werte nur die Details und andere Werte die großen Flächen enthalten. Die Werte der Details können dann ungenauer und damit mit weniger Bits codiert werden. Außerdem ist die Umwandlung so gewählt, daß möglichst viele Werte dabei Null werden. Die müssen dann gar nicht mehr codiert werden.
Farbbilder werden praktisch immer in der YUV-Darstellung verwendet, es wird dabei schon ausgenutzt, daß das Auge bei den Farbkomponenten U und V mit einer kleineren Auflösung auskommt. Y, U und V werden jeweils getrennt komprimiert.
JPEG/MJPEG
MPEG arbeitet blockweise. Y, U und V werden jeweils in Blöcke mit je 8*8 Pixeln aufgeteilt. Da normalerweise mehrere Y-Pixel je ein U und V-Pixel gemeinsam haben, setzt sich ein Basisblock (MDU = minimum data unit) aus je einem U- und V-Block und entsprechend vielen Y-Blöcken zusammen, die Reihenfolge ist dann Y,…,Y,U,V. Bei DVD haben je 4 Y-Pixel ein U- und V-Pixel gemeinsam, eine MDU enthält daher vier Y-Blöcke und je einen U- und V-Block.
Y-, U- und V-Blöcke werden zwar jeweils abwechselnd, aber völlig getrennt codiert. Die Y-Werte werden dazu erst einmal durch Subtraktion des halben max. Wertes in eine symmetrische, vorzeichenbehaftete Darstellung gebracht, die Offsetdarstellungen von U und V werden ebenso in diese Darstellung gebracht, so daß alle Werte als signed int vorliegen. Die Werte Y_alt, U_alt und V_alt werden auf Null gesetzt. Im Folgenden wird jetzt nur noch beispielhaft die Codierung der Y-Blöcke beschrieben, mit U und V läuft parallel genau das Gleiche ab.
![]() |
DCT Teilspectren |
Auf einen Block wird eine zweidimensionale diskrete Cosinustransformation angewendet. Sie liefert als Ergebnis wieder 8*8 Werte, die gewissermaßen das Spektrum dieses Bildausschnittes darstellen. Der Spektralwert links oben ist der Mittelwert aller 64 Pixel, der Wert rechts daneben ist ein Maß dafür, wie stark die Helligkeit von links nach rechts abfällt, noch ein Wert rechts davon, wie stark die Mitte dunkler als die rechte und linke Seite des 8*8-Feldes ist, usw. Nach unten hin sind die entsprechenden senkrecht ausgerichteten Spektralwerte vorhanden. Werte, die nicht ganz oben oder links sind, stellen eine Kombination von beiden dar. Das Bild zeigt für alle Spektralwerte der Cosinustransformation die Muster, auf die die entsprechenden Werte ansprechen. Würde man jedes Muster mit dem entsprechenden Spektralwerten wichten (vorzeichenbehaftet!) und alles aufsummieren, erhält man den ursprünglichen 8*8 Bildausschnitt zurück.
Diese Transformation enthält noch genau so viele Daten wie vorher (64 Zahlen), sogar noch ein bißchen mehr, da die Spektralwerte mit höherer Genauigkeit dargestellt werden müssen, um Rundungsfehler zu vermeiden. Jetzt hat man allerdings eine Darstellung, bei der man die Genauigkeit der einzelnen Spektralwerte teilweise verringern kann, ohne daß das dem Auge auffällt. Je weiter man zu den Werten nach rechts unten kommt, desto kleiner kann die Genauigkeit gewählt werden, denn das sind die Informationen für feine Details, bei denen das Auge leichte Helligkeitsänderungen nicht wahrnimmt.
Die Reduzierung erfolgt durch die sog. Quantisierung. Dazu dividiert man jeden Spektralwert durch einen dazugehörenden Quantisierungswert und rundet danach auf die nächstgelegene ganze Zahl. Dabei entstehen auch viele Nullen, vor allem rechts unten. Diese Quantisierung ist der einzige Punkt in der JPEG-Kompression, in der Verluste entstehen.
![]() |
ZIGZAG order |
Diese quantisierten Spektralwerte werden nun in eine lineare Reihe mit 64 Werten umsortiert. Das Bild zeigt die Reihenfolge, das Element links oben bildet das erste der Reihe. Wegen der Form wird das ganze dann ZIGZAG order genannt. Das erste Element, das den Mittelwert aller 8*8 Pixel enthält, wird gesondert codiert, dazu wird die Differenz zum ersten Element des vorherigen 8*8 Blockes genommen, also zu Y_alt, U_alt oder V_alt. Danach nimmt Y_alt, U_alt oder V_alt den jetzigen Wert des ersten Elementes an.
Zahlen werden nur mit so vielen Bits gespeichert, wie ihre binäre Zahl auch lang ist, negative Zahlen entstehen durch invertierung der entsprechenden positiven Zahlen und haben deshalb an erster Stelle eine „0“ stehen:
Zahl | size | Code -----+------+------ -8 | 4 | 0111 -7 | 3 | 000 -6 | 3 | 001 -5 | 3 | 010 -4 | 3 | 011 -3 | 2 | 00 -2 | 2 | 01 -1 | 1 | 0 +1 | 1 | 1 +2 | 2 | 10 +3 | 2 | 11 +4 | 3 | 100 +5 | 3 | 101 +6 | 3 | 110 +7 | 3 | 111 +8 | 4 | 1000
Null kommt in dieser Liste nicht vor, bei der Differenz des ersten Wertes wird sie durch size=0 gekennzeichnet, alle folgenden Nullen fallen durch die Runlength-Codierung weg. Für diese Differenz des ersten Wertes kommt zuerst der Huffmancode der size dieser Differenz, dahinter die Differenz selbst (der N-stellige Code davon). Die restlichen Werte werden runlength-codiert. Die Zahl der Nullen, die vor dem nächsten Wert != 0 stehen und die size dieses Wertes werden zusammengefaßt und davon wird der entsprechende Huffmancode, gefolgt von dem Code des Wertes, hinzugefügt. Bei mehr als 15 Nullen gibt es einen eigenen Huffmancode nur für 16 Nullen, danach kommt der Huffmancode der restlichen Nullen (evtl. wieder 16) usw. Es gibt auch noch einen Huffmancode für das Blockende, d.h. es folgen dann nur noch Nullen bis zum Ende. Kurz auf den Punkt gebracht: (dabei bedeutet H(X) den Huffmancode von X).
H(size(Differenz vom ersten Wert)); code(Differenz vom ersten Wert); while (bis Blockende nicht nur Nullen) { while (mehr als 15 Nullen) { H(16 Nullen); Zahl Nullen -= 16; } H(Zahl Nullen und size von Wert); code(Wert); } if (es sind nur noch Nullen bis zum Blockende) { H(Blockende); // kommt nicht, wenn letzter Wert != 0 }
Diese Prozedur wird für Y, U und V parallel bis zur letzten MDU des Bildes durchgezogen. Vor diese Nutzdaten kommen noch Header, die das Ganze als JPEG-Datei kennzeichnen und alle erforderlichen Parameter (Bildgröße, aktuell verwendete Huffmancodes, Quantisierungsfaktoren, usw.) enthalten. Die Kompression erfolgt vor allem durch das Erscheinen der vielen Nullen bei der Quantisierung (bei einem Block mit lauter gleichen Pixeln entfallen alle while-Schleifen). Um es noch einmal klar zu machen: Die Verluste entstehen nur bei der Quantisierung, nicht jedoch bei der diskreten Cosinustranformation und auch nicht bei der Huffman-Runlength Codierung der Blöcke. Die Decodierung erfolgt entsprechend in umgekehrter Reihenfolge. Bei einer erneuten JPEG-Komprimierung erhält man keine weiteren Verluste, wenn diese mit exakt den gleichen Quantisierungswerte durchgeführt wird (das ist gut z.B. für den digitalen Videoschnitt auf Festplatte). Das gilt allerdings nur, wenn das Bild nicht verändert wird, auch nicht durch A/D- und D/A-Wandler bei einer analogen Verbindung.
Bei MJPEG wird bei Filmen jedes Bild einzeln mit JPEG komprimiert. Ähnlichkeiten zwischen den Bildern werden nicht ausgenutzt. Vorteil bei dieser Codierung ist das problemlose Schneiden und von Nachbearbeiten von derartig gespeicherten Filmen, Nachteil die doch recht große Datenmenge. Bei guter Qualität in DVD-Auflösung braucht man ca. 60..80KB pro Halbbild, das sind ca. 15GB pro Stunde. Bei zukünftig erscheinenden Speichermedien von ca. 100GB und mehr ist MJPEG sicher interessant für digitale Videorecorder, besonders für Camcorder, wo man die Aufnahmen noch nachbearbeiten möchte. Die digitalen Camcorder von Sony arbeiten z.B. mit einem MJPEG-ähnlichen Verfahren bei ca. 3.5MB pro Sekunde.
MPEG
Mit MJPEG kann man zwar Filme komprimieren, nutzt aber keine Ähnlichkeiten zwischen aufeinanderfolgenden Bildern. Eine Weiterentwicklung von MJPEG für Filme ist MPEG. Es gibt drei Typen von Bildern, die jeweils anders gespeichert werden:
Intra frames (I-frames) kommen ca. zweimal pro Sekunde vor (und meistens als erstes Bild nach einem Schnitt) und sind weitgehend identisch mit JPEG-Bildern. Sie enthalten die komplette Information für dieses Bild.
Predicted frames (P-frames) ergeben sich aus dem vorhergenden I- oder P-frame und entsprechender Differenzinformation. Dazu sucht der Coder nach Blöcken, die (evtl. entsprechend verschoben) möglichst ähnlich im vorhergehenden I- oder P-frame vorhanden sind. Es wird dann nur dieser Block gekennzeichnet, seine Verschiebung („Bewegungsvektor“) und die Differenz, die dann evtl. noch übrig bleibt (weil z.B. ein Objekt sich auch gedreht hat).
Bidirectional frames (B-frames) ergeben sich aus dem vorhergehenden und nachfolgenden I- oder P-frame gemeinsam. Hier können auch noch gewichtete Mittelwerte aus beiden Bildern mit in das Ergebnis einfließen. Ansonsten wird genau so mit Blöcken und Bewegungsvektoren gearbeitet wie bei P-frames. B-frames sind noch stärker komprimiert als P-frames.
Eine typische Bildfolge bei NTSC (30 frames/s) wäre:
IBBPBBPBBPBBPBBIBBPBBPBBPBBPBB
Bei PAL (25 frames/s) würde es dann etwa so aussehen
IBBPBBPBBPBBIBBPBBPBBPBB
Das Heraussuchen der Blöcke und deren Bewegungsvektoren ist vollkommen frei dem Coder überlassen worden, der Decoder erhält ja sämtliche Informationen über die Wahl des Coders und kann stur wieder korrekt decodieren. Je nach Inteligenz des Coders, durch geeignete Wahl der Blöcke möglichst viel Qualität bei möglichst wenig Daten zu erreichen, können die Ergebnisse ganz unterschiedlich ausfallen. So ist es durchaus möglich, daß eine MPEG Widergabe mit hoher Datenrate schlechter aussieht als eine andere mit kleinerer Datenrate, weil letzere günstigere Blöcke gefunden hat. NAtürlich hängt das Ergebnis auch vom Bildinhalt ab, einfache Kameraschwenks sind einfacher zu codieren (das ganze Bild ist ein einziger großer Block) als z.B. eine Tanzszene.
Die Entscheidung, wann I-, P- und B-frames eingesetzt werden, steht dem Coder völlig frei, Low-Cost Realtime-Coder erzeugen oft nur I- und P-frames, jedoch keine B-frames. Ebenso könnte man auch ausschließlich I-frames nehmen, das wäre dann aber nur noch eine Abart von MJPEG.
Ein MPEG-Coder hat viele Freiheiten bei der Codierung, da bei MPEG nur der Decoder spezifiziert ist. Ein Coder muß eben nur einen Datenstrom liefern, der am Ausgamg des Decoders wieder das gewünschte Resultat liefert. Verschiedene Coder können also bei gleichem digitalen Rohmaterial unterschiedliche MPEG-Daten liefern aber verschiedene Decoder müssen bei gleichen MPEG-Daten exakt das gleiche Ergebnis liefern.
Wie aber leidvolle Erfahrungen mit Billig-Playern zeigen, dekodieren diese oft nicht korrekt. Das bedeutet aber nichts anderes, als daß diese Decoder nicht der Spezifikation entsprechen! Decoder, die der Spec. entsprechen, liefern alle die (bis aufs letzte Bit) gleiche, optimale Qualität. Solange verschiedene Player einen korrekt arbeitenden MPEG-Decoder haben, entstehen Qualitätsunterschiede erst ab den D/A-Wandlern, dasselbe gilt übrigens auch für den Ton. Das ist ja gerade das Geniale der Digitaltechnik!
Wavelet
Eine weitere Kompressionstechnik soll hier noch vorgestellt werden, auch wenn sie für DVD noch keine Bedeutung hat. Diese Technik erlaubt ein noch besseres Verhältnis von Qualität zur Datenmenge. Das Hauptproblem bei JPEG mit hohen Kompressionsraten (-> wenig Daten) ist die Blockbildung, da die Unterschiede zwischen den 8*8-Blöcken dann immer deutlicher werden. Innerhalb eines jeden Blocks sieht es dagegen noch ganz passabel aus. Wavelet vefolgt daher einen völlig anderen Ansatz und kommt ohne eine Aufteilung des Bildes in Blöcke aus.
Man kann ein Signal mit einem Tiefpaß und einem Hochpaß in zwei Teilbereiche aufspalten und anschließend wieder vereinigen. Mit speziellen digitalen Filerpaaren, die auf Wavelets basieren, kann jedes Teilsignal jeweils mit halb so vielen Abtastwerten gespeichert werden und trotzdem ist aus diesen beiden Teilsignalen eine exakte Rekonstruktion des Gesamtsignals möglich. Das einfachtse Filterpaar bildet aus je zwei Abtastwerten einmal die Summe (Tiefpaß) und die Differenz (Hochpaß). Von je zwei Abtastwerten wird also eine Summe und eine Differenz gebildet. Wie man daraus die ursprünglichen Werte zurück gewinnt, dürfte klar sein.
Leider sind Summen- und Differenzbildung keine besonders guten Tief- ond Hochpässe, aber es gibt bessere Filterpaare, die allerdings mehr Aufwand erfordern. Das Grundprimzip bleibt aber gleich. Für die Bildkompression wird ein Bild nacheinander entlang von Zeilen und Spalten gefiltert:
Zuerst wird jede Zeile gefiltert, man erhält zwei Teilbilder von jeweils halber Breite. Das tiefpaßgefilterte Teilbild ist praktisch um den Faktor 2 in der Breite gestaucht, das andere Teilbild enthält die Kanteninformationen, die beim Stauchen des ersten Teilbildes verloren gegangen sind.
Anschließend wird jede Spalte von jedem Teilbild gefiltert. Diesmal hat jedes Teilbild die halbe Höhe.
![]() |
Mallat Blöcke |
Damit hat man jetzt vier Teilbilder erhalten: ein um den Faktor 2 verkleinertes Bild (erst halbe Breite, dann halbe Höhe), ein Teilbild, das horizontal tiefpaßgefiltert und vertikal hochpaßgefiltet wurde, ein Teilbild, das horizontal hochpaßgefiltert und vertikal tiefpaßgefiltet wurde, und schließlich eines, das in beiden Richtungen hochpaßgefiltert wurde. Bis auf das verkleinerte Originalteilbild enthalten die anderen drei Teilbilder nur noch relativ wenig Information. Dessen Pixel werden quantisiert (siehe bei JPEG) und Huffman-Runlength Codiert. Das verkleinerte Original Bild wird jetzt wieder nach der gleichen Methode in vier Teilbilder aufgeteilt und Codiert. Das wiederholt man so lange, bis das verkleinerte Originalbild etwa eine Kantenlänge von ca. 20-40 Pixeln hat. Bei PAL-Video mit 720*576 Pixeln würde man 4- bis 5-mal filtern, so daß das verkleinerte Originalbild dann 45*36 oder 23*18 Pixel hat. Das Bild zeigt alle Teilbilder, die bei vierfacher Filterung entstehen. Dabei ist jeweils links oder oben der Tiefpaßteil, rechts oder unten der Hochpaßteil. Die Numerierung ergibt die Reihenfolge der Teilbilder, wie sie errechnet werden, wobei 1-3, 4-6, 7-9 und 10-12 jeweils gleichzeitig entstehen. Diese Teilbilder werden auch Mallat-Blöcke genannt. Der Block 13 enthält das sechzehnfach verkleinerte Originalbild (1/256 der Fläche), Block 2, 5, 8 und 11 Strukturen von senkrechten Kanten, Block 3, 6, 9 und 12 Strukturen von waagerechten Kanten und Block 1, 4, 7 und 10 nur punktförmige Strukturen. Alle Blöcke von 1 bis 12 enthalten nur sehr wenig Kontrast und können daher gut quantisiert und komprimiert werden.
Bei hohen Kompressionsraten wird das Bild einfach immer unschärfer, es entstehen aber keine Blöcke. Es gibt von Analog Devices auch Bausteine, die eine Echtzeit-Wavelet-Kompression oder Dekompression vornehmen können (ADV601, ADV611), leider zeigen diese Bausteine bei niedriger Kompression für hohe Qualität einige Schwächen, da die Teilbilder, die als Zwischenergebnisse dienen, nicht mit genügend großer Genauigkeit gespeichert werden (ist eine Kostenfrage wegen des Speichers, da ist JPEG mit lediglich 8*8 Pixeln pro Block besser dran). Es sind die ersten und bisher einzigen Chips, die es für eine Waveletkompression gibt. Mal sehen, was die Zukunft bringt, da in der neuen JPEG-2000 neben dem bisherigen Verfahren nun auch Wavelt als Alternative vorgesehen ist. Für digitale Videorecorder ist das als Ersatz von MJPEG sicher interessant.