4 Verwendete Interpolationsverfahren

4 Verwendete Interpolationsverfahren

Nach der Vorstellung der zur hochqualitativen Zwischenbildinterpolation benötigten Grundlagen im vorausgegangenen Kapitel werden in diesem Abschnitt die verwendeten Interpolationsverfahren näher beschrieben.

Zur Verdeutlichung des Interpolationsverfahrens dient das Blockschaltbild in Abbildung 4.1. Es handelt sich um eine Modifikation des in [Jostschulte94] und [Blume97] beschriebenen Verfahrens, welches zusätzlich eine Konvertierung unterschiedlicher Eingangsbildwiederholraten in verschiedene Ausgangsbildraten ermöglicht. Zudem können Sequenzen im Zeilensprungformat in ein progressives Bildformat und umgekehrt umgewandelt werden.


Interpolationsverfahren
Abbildung 4.1: Blockschaltbild des Interpolationsverfahrens

4.1 Vektorprojektion

4.1.1 Zuordnung der Vektorfelder

Die vom Bewegungsschätzer gelieferten Vektoren repräsentieren die zwischen zwei Bildern der Originalbildfolge ermittelten Bewegungen. Bei zeitlich gleichen Bildern der Originalsequenz und der interpolierten Sequenz (α- und γ-Bilder) kann das Vektorfeld direkt übernommen werden. Die Zuordnung der Vektorfelder auf die Zwischenbilder erweist sich als wesentlich komplizierter. Ein Vektor in einem Bild der Ausgangssequenz verweist auf den Ort, an dem sich das Objekt im nächsten Originalbild befinden wird. Im Zwischenbild hat sich das Objekt entlang des Vektors weiterbewegt. Die neue Position Pneu des Objektes berechnet sich aus dem Projektionsfaktor p(k), welcher der zeitlichen Position des Zwischenbildes entspricht, multipliziert mit der Vektorlänge V:

Formel

Zur Verdeutlichung dient Abbildung 4.2. Eine ausführliche Beschreibung zur Bestimmung der Projektionsfaktoren findet sich in Kapitel 3.3.


Vektorprojektion
Abbildung 4.2: Vektorprojektion

Die Vektorfelder der Zwischenbilder werden also aus der Projektion des vorausgegangenen Originalvektorfeldes erzeugt. Dazu werden die Originalvektoren entsprechend dem Projektionsfaktor verschoben und mit der gesamten Vektorlänge an diese Position gesetzt. Die Übernahme der einzelnen Vektorfelder ist in Abbildung 4.3 dargestellt.


Vektorfelder
Abbildung 4.3: Erzeugung der Vektorfelder

Bei variablen Bildwiederholratenverhältnissen kommt es vor, daß die Zielpunkte der Vektoren zwischen zwei Rasterpositionen zeigen. Damit die projizierten Vektoren jeweils auf ganze Rasterpositionen verweisen, muß entweder der Nachkommaanteil abgeschnitten werden ("Integer Part Methode") oder eine Rundung durchgeführt werden.

Durch den Zeilensprung erschwert sich die Zuordnung der Vektoren in y-Richtung. Hierbei muß zusätzlich die Rasterlage der Vektorfelder berücksichtigt werden.

4.1.2 Aufdeckungsbehandlung

Bei der Zuordnung der Vektoren ist es möglich, daß einige Positionen im Vektorfeld des Zwischenbildes unbesetzt bleiben. Abbildung 4.4 liefert dazu ein Beispiel. Übersichtshalber ist nur der eindimensionale Fall dargestellt.


Aufdeckungsbereich
Abbildung 4.4: Entstehung von Aufdeckungsbereichen

Die dunklen Punkte im Originalbild bewegen sich nach rechts, während der weiße Hintergrund unbewegt bleibt. Im Zwischenbild entstehen Bereiche, denen durch die Vektorprojektion keine Vektoren zugeordnet werden können. Diesen Aufdeckungsbereichen wird standardmäßig der Nullvektor zugeordnet, da es sich bei ihnen wahrscheinlich um die Aufdeckung eines unbewegten Hintergrundes handelt. In einer reellen Sequenz geschieht dies beispielweise bei einem vorbeifahrenden Auto.

Um die Aufdeckungsbereiche von den korrekt ermittelten Vektoren zu unterscheiden, werden sie besonders gekennzeichnet. Dadurch können sie im nachfolgenden Interpolationsverfahren entsprechend berücksichtigt werden.

4.1.3 Verdeckungsbehandlung

In einem anderen Fall der Vektorzuordnung können einem Punkt des Vektorfeldes mehrere Vektoren zugeordnet werden. Dies ist in Abbildung 4.5 dargestellt.


Verdeckungsbereiche
Abbildung 4.5: Entstehung von Verdeckungsbereichen

Der dunkle Bereich bewegt sich über einem hellen Hintergrund nach rechts. Durch die Vektorprojektion entsteht ein Gebiet, dem zwei Vektoren zugeordnet werden können. Um den korrekten Vektor zu bestimmen, werden die Luminanzwerte der Start- und Zielpunkte mit einander verglichen. Der Vektor mit der geringsten Helligkeitsdifferenz wird dem Vektorfeld zugeordnet. Dies wird durch die nachfolgende Abbildung 4.6 verdeutlicht.


Verdeckungsproblem
Abbildung 4.6: Verdeckungsproblem

Man erkennt, daß der Nullvektor von einem hellen Wert auf einen dunklen Wert zeigt, während der Verschiebungsvektor von einem dunklen auf ein anderes dunkles Pixel verweist. Aufgrund der kleineren Differenz wird dem Punkt der Verschiebungsvektor zugeordnet.

4.1.4 Sonderbehandlung bei der Vektorprojektion

Bei der Bewegungsschätzung kommt es vor, daß innerhalb einer gleichmäßig bewegten Fläche einige Punkte andere Vektoren zugewiesen bekommen. Dies kann beispielsweise durch Rauschen verursacht werden. Abbildung 4.7 zeigt einen sich nach rechts bewegenden Bereich, bei dem für die Bildpunkte im Kantenbereich ein falscher Vektor bestimmt wurde. Im projizierten Vektorfeld entsteht ein Punkt, der fälschlicherweise als Aufdeckungsbereich interpretiert wird.


Problem
Abbildung 4.7: Problem bei falsch geschätztem Vektor

Durch die übliche Aufdeckungsbehandlung würde aber der Inhalt des Pixels im zeitlich folgenden Originalbild an diese Stelle geschrieben. Dies hätte eine helle Störung im dunklen Bereich zur Folge, die als störend empfunden wird. Daher erfahren auch diese Bereiche eine Sonderbehandlung.

In [Jostschulte94] wird das Problem dadurch gelöst, daß einem Pixel, welches fälschlich als aufgedeckt erkannt wurde, der Vektor eines seiner Nachbarpixel zugewiesen wird. Dabei ist es unerheblich, welcher Nachbarpunkt verwendet wird.

Bei der Zuordnung eines Vektors wird die Umgebung nach nicht zugeordneten Vektoren untersucht und diesen dann die aktuelle Vektorgröße zugewiesen. Zusätzlich erhalten diese Punkte aber ein Aufdeckungsflag, um sie bei der Interpolation entsprechend zu behandeln. So lassen sich "Risse" im Vektorfeld des Zwischenbildes vermeiden.

4.2 Interpolation im Tiefenkanal

Die Interpolation im Tiefenkanal erfolgt nach den im dritten Kapitel vorgestellten Prinzipien. Um eine gute Bewegungsauflösung zu erzielen, werden zur Interpolation der Tiefensignale die Bereiche um die Start- und Zielpunkte der Bewegungsvektoren verstärkt berücksichtigt. Das vollständige Interpolationsschema für eine 50 Hz nach 100 Hz Konvertierung ist in Abbildung 4.8 dargestellt.


Interpolationsschema
Abbildung 4.8: Interpolationsschema des Tiefenkanals

4.2.1 Interpolation der α-Bilder

Als α-Bilder werden die Bilder der interpolierten Sequenz bezeichnet, die sowohl zeitlich als auch in der Rasterlage mit dem entsprechenden Originalbild übereinstimmen. Sie werden ohne Veränderung direkt aus der Originalbildfolge übernommen.

4.2.2 Interpolation der γ-Bilder

Die als γ-Bilder bezeichneten Bilder bei der 50 Hz nach 100 Hz-Interpolation stimmen wie die α-Bilder zeitlich mit den Originalbildern überein, weisen aber aufgrund der Zeilensprungs eine andere Rasterlage auf. Sie werden durch eine vertikale Uminterpolation in die richtige Rasterlage überführt. Da nach der Bandaufspaltung kaum noch hochfrequente Signalanteile vorhanden sind, erweist sich nach [Jostschulte94] ein cos-förmiges Filter, d.h. mit den Koeffizienten 0,5; 0,5, als ausreichend.

4.2.3 Interpolation der Zwischenbilder

Die Erzeugung der Zwischenbilder im Tiefenkanal erweist sich als aufwendiger, da zwei Originalbilder und das projizierte Vektorfeld benötigt werden. Im Unterschied zu dem in [Jostschulte94] vorgestellten Verfahren zur 50 Hz nach 100 Hz Konversion kann bei der Zwischenbildinterpolation mit variablen Bildratenverhältnissen nicht zwischen β- und δ-Bildern unterschieden werden. Es können nämlich je nach Bildratenverhältnis bis zu vier verschiedene Kombinationen zwischen den Rasterlagen der Originalbilder und des zu interpolierenden Zwischenbildes auftreten.

Abbildung 4.9 zeigt die Interpolation eines Zwischenbildes. Der Grauwert des zu bestimmenden Bildpunktes wird aus den Filtermasken in den beiden Originalbildern gebildet. Optional kann als zusätzlicher Wert der zuletzt bestimmte Bildpunkt dem Filter hinzugefügt werden. Dieses rekursive Element sorgt bei stark unterschiedlichen Luminanzen im Start- und Zielbereich des Bewegungsvektors für Werte, die sich gut in das Umfeld der bereits berechneten Bildpunkte einfügen. Denn bei einem unentschiedenen Zustand zwischen beiden Ausgangsbildern erhält der Bildpunkt den Wert des zuvor berechneten Punktes. Eine ausführliche Beschreibung des rekursiven Elements erfolgt in Kapitel 6.1.


Interpolation
Abbildung 4.9: Interpolation der Zwischenbilder im Tiefenkanal

Die Filtermasken im Tiefenkanal sind so zu entwerfen, daß Fehler in den Vektorfeldern ausgeglichen werden, um so eine möglichst gute Bewegungsdarstellung zu erzielen. Für eine 50 Hz nach 100 Hz Konversion hat sich eine kreuzförmige Filtermaske mit einer Gewichtung von fünf des zentralen Wertes als geeignet erwiesen. Eine Erläuterung zur Entwicklung der Filtermasken für andere Bildratenverhältnisse erfolgt im anschließenden fünften Kapitel. Die Filtermasken werden um den mit dem entsprechenden Projektionsfaktor plinks bzw. prechts gewichteten Vektor zurück bzw. vorwärts in den entsprechenden Originalbildern verschoben. Dadurch werden nur bewegungskompensierte Bildpunkte zur Medianfilterung verwendet.

Je nach Rasterlage der Bilder und der Länge der y-Komponente des Bewegungsvektors kann sich eine Filtermaske auf nicht im Bild vorhandenen Zwischenzeilen befinden. Dies macht eine Uminterpolation der Rasterlage, ähnlich wie bei den γ-Bildern, erforderlich. Da im Tiefenkanal die Vertikalauflösung nicht entscheidend ist, kann auch hier die lineare Uminterpolation mit einem Filter mit cosinusförmigen Frequenzgang verwendet werden.

Die Mehrzahl der in das Filter geführten Abtastwerte stammt aus der näheren örtlichen Umgebung des Bildpunktes, so daß die Interpolationsmasken die geforderte örtliche Dominanz besitzen.

4.3 Interpolation im Höhenkanal

Um eine hohe Ortsauflösung zu erzielen, werden für die Interpolation im Höhenkanal Filter verwendet, deren Abtastwerte auf den Rasterpositionen liegen. Das gesamte Interpolationsschema ist in Abbildung 4.10 dargestellt. Auch hier wird stellvertretend ein 50 Hz nach 100 Hz Formatkonversion verwendet.


Interpolationsschema
Abbildung 4.10: Interpolationsschema für den Höhenkanal

4.3.1 Interpolation der α-Bilder

Genauso wie im Tiefenkanal können die α-Bilder direkt aus der Originalsequenz übernommen werden.

4.3.2 Interpolation der γ-Bilder

Die Interpolation der γ-Bilder im Höhenkanal erweist sich als aufwendiger als im Tiefenkanal, da eine einfache Rasteruminterpolation zu einem Auflösungsverlust führen würde. Abbildung 4.11 stellt das Interpolationsschema dar.


Interpolation
Abbildung 4.11: Interpolation der γ-Bilder im Höhenkanal

Um die zeitliche Dominanz des 3-Tap-Medianfilters zu wahren, werden Informationen aus drei Bildern verwendet. Auf die Pixel in den A-Bildern wird über den Bewegungsvektor zwischen Bild Bn und Bild An+1 zugegriffen. Die Projektionsfaktoren brauchen dabei nicht berücksichtigt zu werden. Dieser Vektor wird auch für die Bewegungskompensation des Bildes An verwendet, da unter Annahme einer nicht beschleunigten Bewegung beide Vektoren identisch wären. Zudem läßt sich so der Bildspeicher für ein zusätzliches Vektorfeld einsparen.

Das Bild Bn hat die gleiche zeitliche Position wie das zu interpolierende Bild, daher kann auf seine Bildpunkte ohne Bewegungskompensation zugegriffen werden. Aufgrund der unterschiedlichen Rasterlage muß aber eine Rasteruminterpolation durchgeführt werden.

Bei korrekter Schätzung des Bewegungsvektors weisen die Punkte aus den A-Bildern die gleichen Werte auf, so daß der uminterpolierte Punkt "überstimmt" wird. Im Fall eines fehlerhaften Vektors wird der uminterpolierte Punkt als "Rückfallmodus" verwendet. Ein unscharfes Bild wirkt subjektiv besser als ein fehlinterpolierter Punkt.

4.3.3 Interpolation der Zwischenbilder

Auch für die Interpolation der Zwischenbilder werden drei Bilder der Originalsequenz herangezogen. Das Interpolationsschema ist in Abbildung 4.12 dargestellt.


Interpolation
Abbildung 4.12: Interpolation der Zwischenbilder in Höhenkanal

Als Filter wird ein 5-Tap-Medianfilter verwendet. Es werden jeweils zwei Punkte aus dem zeitlich vorherigen und nachfolgenden Bild verwendet. Dabei wird das Pixel, bei dem der projizierte Bewegungsvektor die Rasterzeile trifft, zweimal in das Filter geführt. Im anderen Bild zeigt der Vektor auf einer Zwischenzeile, so daß die Werte ober- und unterhalb der Zeile in das Filter geführt werden. Durch den Verzicht auf eine Uminterpolation bleiben die hochfrequenten Signalanteile erhalten.

Der fünfte Wert wird entsprechend der Rasterlage des zu interpolierenden Bildes entweder aus dem vorletzten oder dem zeitlich zwei Positionen davorliegendem Bild gewählt. Aus Aufwandsgründen wird auf eine Bewegungskompensation verzichtet, da für die Bewegungsvektoren zusätzliche Bildspeicher notwendig wären. Dabei wird ein leichter Schärfeverlust in bewegten Bildinhalten in Kauf genommen, der sich aber nicht negativ auswirkt, wenn das Auge nicht in die Bewegung einfällt. Durch die Wahl von nur auf Rasterpositionen liegenden Punkten wird eine hohe Ortsauflösung erzielt.

4.4 Behandlung der Aufdeckungsbereiche

4.4.1 Aufdeckungsbehandlung im Tiefenkanal

Die durch die Vektorprojektion ermittelten Aufdeckungsbereiche erfahren bei der Zwischenbildinterpolation eine gesonderte Behandlung, die sowohl "echte" Aufdeckungsbereiche als auch nach Kapitel 4.1.4 falsch detektierte Bereiche berücksichtigen muß. Abbildung 4.13 zeigt das aus [Jostschulte94] übernommene Interpolationsschema für den Tiefenkanal.


Aufdeckungsbereiche
Abbildung 4.13: Behandlung der Aufdeckungsbereiche im Tiefenkanal

Dabei wird der Punkt an der aktuellen Position aus dem folgenden Bild direkt in das Interpolationsfilter geführt oder durch eine lineare Uminterpolation an die aktuelle Rasterlage angepaßt und in das Filter geschrieben. Zusätzlich werden die bewegungskompensierten und gegebenfalls uminterpolierten Punkte aus dem vorhergehenden und folgenden Bild in das 3-Tap-Medienfilter geschrieben.

In korrekt erkannten Aufdeckungsbereichen ist der ermittelte Vektor der Nullvektor. Dadurch wird aus dem folgenden Bild zweimal der gleiche Wert übernommen, welcher somit auch Ausgangswert des Filters wird. Dadurch wird wie gewünscht der Inhalt des nächsten Bildes an diese Stelle geschrieben.

Bei einem falsch detektierten Aufdeckungsbereich ist der Bewegungsvektor ungleich Null. Dann findet eine Kombination aus Aufdeckungsbehandlung und bewegungsvektorgestützter Interpolation statt. Ist der Vektor richtig bestimmt, liefern die bewegungskompensierten Punkte den gleichen Wert, der deshalb zum Ausgangswert des 3-Tap-Medianfilters wird. Im Fall eines falsch geschätzten Bewegungsvektors ergibt sich ein geringfügig störender Wert.

4.4.2 Aufdeckungsbehandlung im Höhenkanal

Bei dem in [Blume97] und [Jostschulte94] beschriebenen Verfahren zur Zwischenbildinterpolation wird aufgezeigt, daß für den Aufdeckungsbereich im Höhenkanal kein Signalanteil erzeugt werden muß. Durch einen Programmfehler bei der Implementierung wurde aber im Höhenkanal die Position der Aufdeckungsbereiche fehlerhaft berechnet und dadurch doch ein Signal für den Höhenkanal erzeugt. In verschiedenen Simulationen hat sich gezeigt, daß bei bestimmten Bildinhalten die normale Behandlung des Höhenkanals zu besseren Resultaten führt. So wird z.B. aus abwechselnd hellen und dunklen Zeilen durch die vertikale Tiefpaßfilterung bei der Bandaufspaltung ein grauer Bereich im Tiefenkanal. Die Addition eines Nullwertes im Höhenkanal ändert den Bildinhalt nicht. Durch Hinzufügen des "normalen" Höhenkanalsignals kann das Ausgangsbild wieder hergestellt werden.

4.5 Interpolationsverfahren nach de Haan

Als Referenzverfahren wurde das in [deHaan95] beschriebene Interpolationsverfahren verwendet. Dieses Verfahren, welches bewegungskompensierende 3-Tap-Medianfilter benutzt, wurde schon von der Firma Philips realisiert. Der Aufbau ist weniger komplex als der des zuvor beschriebenen Verfahrens, da auf eine Bandaufspaltung und eine Vektorprojektion mit der daraus resultierenden Sonderbehandlung der Aufdeckungsbereiche verzichtet wird. Dadurch kann die Anzahl der Bildspeicher reduziert werden. Zudem sind die Filtergrößen erheblich kleiner, was eine schnelle Berechnung der Ausgangswerte ermöglicht.

Die α-Bilder werden wie im Interpolationsverfahren aus [Jostschulte94] direkt übernommen bzw. in die entsprechende Rasterlage umkonvertiert.

Zur Erzeugung der γ-Bilder wird ein 3-Tap-Medianfilter verwendet. Dazu werden aus dem aktuellen Bild, welches ja eine andere Rasterlage als das zu interpolierende Bild besitzt, die Punkte über- und unterhalb des zu interpolierenden Punktes in das Filter geführt. Der dritte Eingangswert ergibt sich aus dem auf einer Rasterposition liegenden Zielpunkt des Bewegungsvektors im folgenden Originalbild.

Das Prinzip der Zwischenbildinterpolation ist in Abbildung 4.14 dargestellt. Um unterschiedliche Bildratenverhältnisse zu ermöglichen, werden die auch bei diesem Verfahren verwendeten Bewegungsvektoren mit den entsprechenden Projektionsfaktoren gewichtet.


Schema
Abbildung 4.14: Schema des Interpolationsverfahrens nach de Haan

Man erkennt, daß die bewegungskompensierten Pixel aus den beiden Originalbildern und die gemittelten Abtastwerte an der aktuellen Position in das zentrale Medianfilter geführt werden. Dabei werden nur Bildpunkte verwendet, die auf einer Rasterzeile liegen. Befindet sich ein Zielpunkt zwischen den Rasterzeilen, wird er durch eine 3-Tap-Medianfilterung interpoliert. Dazu werden die im Bild oberhalb und unterhalb der Zeile liegenden Punkte in das Filter geführt. Als dritter Wert wird der im anderen Originalbild auf einer Rasterzeile liegende Punkt verwendet. Dabei muß eventuell eine Bewegungskompensation durchgeführt werden. Eine ausführliche Beschreibung des Konversionsalgorithmus findet sich in [deHaan95] und [Tuschen95].


Kapitel3 Zurück Kapitel5