DE69028792T2 - Bewegungsabhängige Videosignalverarbeitung - Google Patents
Bewegungsabhängige VideosignalverarbeitungInfo
- Publication number
- DE69028792T2 DE69028792T2 DE69028792T DE69028792T DE69028792T2 DE 69028792 T2 DE69028792 T2 DE 69028792T2 DE 69028792 T DE69028792 T DE 69028792T DE 69028792 T DE69028792 T DE 69028792T DE 69028792 T2 DE69028792 T2 DE 69028792T2
- Authority
- DE
- Germany
- Prior art keywords
- motion vector
- block
- frame
- pixel
- search
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
- H04N7/0135—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
- H04N7/014—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes involving the use of motion vectors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
- G06T7/231—Analysis of motion using block-matching using full search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
- H04N7/0125—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level one of the standards being a high definition standard
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Television Systems (AREA)
Description
- Die Erfindung betrifft die bewegungsabhängige Videosignalverarbeitung. Sie bezieht sich insbesondere auf einen Video-Normwandler, der mit einer solchen Signalverarbeitung arbeitet, sowie auf ein Verfahren zur Gewinnung von Bewegungsvektoren, die Bewegungen zwischen Halbbildern oder Vollbildern eines Videosignals repräsentieren.
- Video-Normwandler sind bekanntlich Einrichtungen zur Umwandlung von Videosignalen aus einer Norm in eine andere Norm, z.B. aus einer Norm mit 625 Zeilen pro Vollbild und 50 Halbbildern pro Sekunde in eine Norm mit 525 Zeilen pro Vollbild und 60 Halbbildern pro Sekunde. Wegen der in einem Videosignal auftretenden zeitlichen und vertikalen Alias-Erscheinungen ist eine zufriedenstellende Normwandlung mit einfachen linearen Interpolationsverfahren allein nicht möglich. Die einfache lineare Interpolation erzeugt in dem resultierenden Bild nämlich unerwünschte Artefakte; insbesondere sind die Bilder vertikal verschmiert und zeitlich unstabil.
- Um diese Probleme zu mildern, hat man die Anwendung adaptiver Verfahren in Video- Normwandlern vorgeschlagen, bei denen die Parameter eines linearen Interpolators in Abhängigkeit vom Grad der Bewegung in dem von dem ankommenden Videosignal repräsentierten Bild umgeschaltet werden.
- Es wurde auch vorgeschlagen, z.B. zum Zwecke der Datenreduktion bei der Videosignalverarbeitung, aus einem ankommenden Videosignal Bewegungsvektoren mit Hilfe eines Blockausgleichverfahrens (Block-Matching) zu erzeugen, bei dem der Inhalt eines Suchblocks in einem Halbbild oder Vollbild mit den entsprechenden Inhalten mehrerer Suchblöcke in einem Suchareal in dem folgenden Halbbild oder Vollbild verglichen wird, um die minimale Differenz zwischen den so verglichenen Inhalten und damit die Richtung und den Abstand der (eventuellen) Bewegung des Inhalts des ursprünglichen Suchblocks zu bestimmen.
- Die europäische Patentanmeldung EP-A-0 294 955 beschreibt einen Normwandler mit den Merkmalen des Oberbegriffs von Anspruch 1.
- Die vorliegende Erfindung befaßt sich insbesondere mit dem Problem, aus den so erzeugten Bewegungsvektoren die geeigneten Bewegungsvektoren für die einzelnen Pixel eines Ausgangshalbbilds oder -vollbilds auszuwählen.
- Gemäß vorliegender Erfindung ist ein bewegungskompensierter Video-Normenwandler vorgesehen mit
- Mitteln zum Vergleichen von Suchblöcken in einem ersten Halbbild oder Vollbild eines Videosignals mit einer Mehrzahl von Blöcken in einem Suchareal des folgenden Halbbilds oder Vollbilds des Videosignals,
- Mitteln zum Ableiten einer Mehrzahl von Bewegungsvektoren für jeden Suchblock, die die Bewegung des Inhalts des Suchblocks zwischen dem ersten Halbbild oder Vollbild und dem folgenden Halbbild oder Vollbild repräsentieren, und
- Mitteln zum Ableiten eines einzelnen Bewegungsvektors aus der Mehrzahl von Bewegungsvektoren für jedes Pixel in jedem Suchblock jedes Eingangshalbbilds oder -vollbilds, wobei dieser einzelne Bewegungsvektor auf diejenigen Pixel in den vorhergehenden und folgenden Eingangshalbbildern und -vollbildern zeigt, die mit dem Pixel in dem Suchblock den besten Luminanzausgleich aufweisen, wie er durch eine Funktion von Luminanzdifferenzen zwischen ihnen bestimmt ist,
- wobei der Video-Normenwandler gekennzeichnet ist durch
- Mittel zum Prüfen des genannten Luminanzausgleichs im Hinblick auf einen Schwellwert, der in Abhängigkeit von dem lokalen Frequenzgehalt des dem Videosignal entsprechenden Bilds bestimmt wird, wobei der Luminanzausgleich als schlechter Ausgleich spezifiziert wird, wenn die genannte Funktion über dem Schwellwert liegt.
- Gemäß vorliegender Erfindung ist weiterhin ein Verfahren vorgesehen zum Ableiten von Bewegungsvektoren, die die Bewegung zwischen aufeinanderfolgenden Halbbildern oder Vollbildern eines Videosignals repräsentieren,
- mit folgenden Verfahrensschritten:
- Vergleichen von Suchblöcken in einem ersten Halbbild oder Vollbild des Videosignals mit einer Mehrzahl von Blöcken in einem Suchareal des folgenden Halbbilds oder Vollbilds des Videosignals,
- Ableiten einer Mehrzahl von Bewegungsvektoren für jeden Suchblock, die die Bewegung des Inhalts des Suchblocks zwischen dem ersten Halbbild oder Vollbild und dem folgenden Halbbild oder Vollbild repräsentieren, und
- Ableiten eines einzelnen Bewegungsvektors aus der Mehrzahl von Bewegungsvektoren für jedes Pixel in dem Suchblock jedes Eingangshalbbilds oder -vollbilds, wobei dieser einzelne Bewegungsvektor auf diejenigen Pixel in den vorhergehenden und folgenden Eingangshalbbildern und -vollbildern zeigt, die mit dem Pixel in dem Suchblock den besten Luminanzausgleich aufweisen, wie er durch eine Funktion von Luminanzdifferenzen zwischen ihnen bestimmt ist,
- wobei das Verfahren gekennzeichnet ist durch
- das Prüfen des genannten Luminanzausgleichs im Hinblick auf einen Schwellwert, der in Abhängigkeit von dem lokalen Frequenzgehalt des dem Videosignal entsprechenden Bilds bestimmt wird, wobei der Luminanzausgleich als schlechter Ausgleich spezifiziert wird, wenn die genannte Funktion über dem Schwellwert liegt.
- Im folgenden sei die Erfindung an einem Beispiel näher erläutert. Dabei wird auf die Zeichnungen Bezug genommen, in denen gleiche Teile durchgehend mit den gleichen Bezugszeichen versehen sind.
- Fig. 1 zeigt ein Ausführungsbeispiel des bewegungskompensierten Video-Normwandlers gemäß der Erfindung als Blockschaltbild,
- Fig. 2 zeigt schematisch eine Umwandlung in progressive Abtastung,
- Fig. 3 bis 6 zeigen schematisch Zeilensequenzen in Folgen von Halbbildern zur Erläuterung der Umwandlung in progressive Abtastung,
- Fig. 7 zeigt ein Blockdiagramm, in dem die Schritte bei der bewegungsadaptiven Umwandlung in progressive Abtastung dargestellt sind,
- Fig. 8 zeigt schematisch die Umwandlung in progressive Abtastung, insbesondere den erforderlichen Schätz- und Differenzwert zwischen aufeinanderfolgenden Halbbildern,
- Fig. 9 und 10 zeigen Diagramme zur detaillierteren Erläuterung des Verfahrens von Fig. 8, wobei Fig. 9 eine Normierungsfunktion für die Umwandlung in progressive Abtastung und Fig. 10 eine nichtlineare Funktion für die Umwandlung in progressive Abtastung darstellt,
- Fig. 11 zeigt schematisch die Erzeugung von Pixeln in fehlenden Zeilen bei der Umwandlung in progressive Abtastung,
- Fig. 12 und 13 zeigen schematisch Suchblöcke und Suchareale und die Beziehung zwischen diesen,
- Fig. 14 zeigt eine Korrelationsfläche,
- Fig. 1 5 und 16 zeigen schematisch die Vergrößerung eines Suchblocks,
- Fig. 17 zeigt die Bereiche eines Vollbilds, in denen ein Suchblock-Matching nicht möglich ist,
- Fig. 18 zeigt schematisch ein bewegtes Objekt, das drei Suchblöcke übergreift,
- Fig. 19 bis 21 zeigen drei resultierende Korrelationsflächen,
- Fig. 22 und 23 zeigen weitere Beispiele von Korrelationsflächen, die bei der Erläuterung eines Schwellwert-Tests benutzt werden,
- Fig. 24 und 25 zeigen weitere Beispiele von Korrelationsflächen, die zur Erläuterung eines Ring-Tests benutzt werden,
- Fig. 26 zeigt schematisch, wie die Richtung bestimmt wird, in der ein Suchblock vergrößert werden muß,
- Fig. 27 zeigt schematisch, wie eine Korrelationsfläche gewichtet wird,
- Fig. 28 zeigt die Beziehung zwischen Abtastbläcken und Suchblöcken und ein Videovollbild,
- Fig. 29 zeigt Bewegungsvektorregionen in einem Videovollbild,
- Fig. 30 bis 32 zeigen Diagramme zur Erläuterung der Bewegungsvektorreduzierung in entsprechenden Regionen eines Videovollbilds,
- Fig. 33 und 34 zeigen schematisch eine erste Stufe bei der Bewegungsvektorauswahl,
- Fig. 35 und 36 zeigen schematisch die Einrichtung eines Schwellwerts während der Bewegungsvektorauswahl,
- Fig. 37 zeigt schematisch eine zweite Stufe bei der Bewegungsvektorauswahl,
- Fig. 38 bis 41 zeigen jeweils Teile des Ausführungsbeispiels in detaillierteren Blockdiagrammen,
- Fig. 42 bis 48 zeigen Pixel-Arrays mit den zugehörigen Bewegungsvektoren zur Erläuterung der Bewegungsvektor-Nachverarbeitung,
- Fig. 49 zeigt schematisch die Wirkungsweise eines Interpolators.
- Das im folgenden beschriebene Ausführungsbeispiel des bewegungskompensierten Video- Normwandlers ist insbesondere für die Verwendung bei der Umwandlung eines hochauflösendes Videosignals (High Definition Video Signal = HDVS) mit 1125 Zeilen pro Vollbild und 60 Halbbildern pro Sekunde in einem 35 mm Film mit 24 Vollbildern pro Sekunde bestimmt. Die Erfindung ist jedoch hierauf nicht beschränkt. Der Normwandler läßt sich ohne weiteres auch so anpassen, daß er Umwandlungen zwischen anderen Normen ausführt.
- Fig. 1 zeigt ein Blockschaltbild des Normwandlers. Der Normwandler besitzt einen Eingang 1, dem ein Eingangsvideosignal zugeführt wird. Der Eingang list mit einem Wandler 2 zur Umwandlung in progressive Abtastung verbunden, der im folgenden kurz als progressiver Abtastwandler bezeichnet wird. In dem progressivem Abtastwandler werden die Eingangs- Videohalbbilder in Videovollbilder umgewandelt, die einer Vorrichtung 3 für das direkte Block-Matching zugeführt werden, die im folgenden kurz als direkter Blockausgleicher 3 bezeichnet wird. Der direkte Blockausgleicher 3 erzeugt Korrelationsflächen. Diese Korrelationsflächen werden von einem Bewegungsvektor-Schätzer 4 analysiert, der Bewegungsvektoren ableitet und einem Bewegungsvektor-Reduzierer 5 zuführt. In diesem wird die Anzahl der Bewegungsvektoren für jedes Pixel reduziert, bevor sie einem Bewegungsvektor-Wähler 6 zugeführt werden, dem außerdem das Ausgangssignal des progressiven Abtastumwandlers 2 zugeführt wird. Unregelmäßigkeiten bei der Auswahl der Bewegungsvektoren durch den Bewegungsvektor-Wähler 6 werden von einem Bewegungsvektor-Nachverarbeiter 7 beseitigt. Die verarbeiteten Bewegungsvektoren werden einem Interpolator 8 zugeführt und steuern diesen. Der Interpolator 8 nimmt außerdem ein Eingangssignal aus dem progressiven Abtastwandler 2 auf. Das Ausgangssignal des Interpolators 8, das ein normgewandeltes und bewegungskompensiertes Videosignal darstellt, wird einem Ausgang 9 zugeführt. Die einzelnen Teile des Normwandlers und ihre Funktion werden weiter unten ausführlicher erläutert.
- Der progressive Abtastwandler 2 erzeugt Ausgangs-Vollbilder, die die gleiche Frequenz haben wie die Eingangs-Halbbilder. Fig. 2 zeigt eine Folge aufeinanderfolgender Zeilen in einer Folge von aufeinanderfolgenden Halbbildern, wobei die Kreuze in den Eingangs-Halbbildern existierende Zeilen und die Quadrate interpolierte Zeilen darstellen. Jedes Ausgangs-Vollbild enthält die doppelte Anzahl von Zeilen wie ein Eingangs-Halbbild Die Zeilen wechseln ab zwischen Zeilen aus dem Eingangs-Videosignal und Zeilen, die nach einem der unten beschriebenen Verfahren interpoliert wurden. Die interpolierten Zeilen können als interpoliertes Halbbild betrachtet werden, das die entgegengesetzte Polarität des Eingangs-Halbbilds hat, sich jedoch in der gleichen zeitlichen Position befindet.
- Die Umwandlung in progressive Abtastung erfolgt vorzugsweise aus zwei Hauptgründen. Sie wird erstens zur Vereinfachung des nachfolgenden direkten Blockausgleichsprozesses, und zweitens mit Rücksicht auf das endgültige Ausgangs-Videoformat durchgeführt. Diese beiden Gründe werden nun näher betrachtet.
- Der direkte Blockausgleich soll eine genaue Schätzung der horizontalen und vertikalen Bewegung zwischen zwei aufeinanderfolgenden Video-Halbbildern ermöglichen, wie dies weiter unten näher erläutert wird. Wegen der verschachtelten Struktur des Videosignals, das dem direkten Blockausgleich unterzogen wird, können jedoch Probleme auftreten.
- Es sei das in Fig. 3 dargestellte Bild betrachtet, das eine Folge von aufeinanderfolgenden Zeilen in einer Folge von aufeinanderfolgenden Halbbildern zeigt, wobei die offenen Quadrate weiße Pixel, die schwarzen Quadrate schwarze Pixel und die schraffierten Quadrate graue Pixel darstellen. Dies stellt deshalb ein statisches Bild mit einer hohen vertikalen Frequenzkomponente dar, die in einem hochauflösenden Videosignal 1125/3 Zyklen pro Bildhöhe betragen kann. Da das Bild nach dem üblichen Zeilensprungverfahren abgetastet wurde, enthält jedes Halbbild scheinbar eine statische vertikale Frequenz-Luminanzkomponente mit 1125/6 Zyklen pro Bildhöhe, wie dies in Fig. 4 dargestellt ist. Man sieht jedoch, daß die Frequenzkomponenten in Gegenphase auftreten. Versuche, ein direktes Block-Matching zwischen diesen beiden Halbbildern durchzuführen, führen zu einer Anzahl unterschiedlicher Werte für die vertikale Bewegungskomponente, die alle ungenau sind. Dies ist in Fig. 5 dargestellt, in der die Abkürzung "ZpH" Zeilen pro Halbbild bedeutet. Aus Fig. 5 ist erkennbar, daß ein direktes Block-Matching nicht die korrekte Antwort für die vertikale Bewegungskomponente ergibt, die in Wirklichkeit den Wert Null haben sollte. Dies liegt daran, daß das direkte Block-Matching in Wirklichkeit der Alias-Komponente des Videosignals statt der tatsächlichen Bewegung folgt.
- Es sei nun Fig. 6 betrachtet, in der das gleiche statische Bild dargestellt ist wie in Fig. 3, mit der Ausnahme, daß nun jedes Eingangs-Halbbild zur Erzeugung eines Vollbildes in ein Bild mit progressiver Abtastung umgewandlet wurde, wobei die Dreiecke interpolierte Pixel darstellen. Es ist erkennbar, daß jedes Vollbild nun die gleiche statische vertikale Frequenzkomponente enthält wie die ursprünglichen Eingangs-Halbbilder, d.h. 1125/3 Zyklen pro Bildhöhe. Somit kann ein direktes Block-Matching zwischen zwei aufeinanderfolgenden Vollbildern nun den korrekten Wert für die vertikale Bewegung, d.h. den Wert Null, liefern, und die Verfolgung des vertikalen Alias wurde vermieden. Darüber hinaus ergibt das direkte Block-Matching an progressiven abtastgewandelten Vollbildern eine genauere vertikale Bewegungsabschätzung, weil der direkte Blockvergleich an Vollbildern ausgeführt wird, die die doppelte Zeilenzah haben.
- Was das endgültige Ausgangs-Videoformat betrifft, so wird das umgewandelte Videosignal beim vorliegenden Ausführungsbeispiel über ein Band einer Elektronenstrahl-Aufzeichnungsvorrichtung zugeführt und muß deshalb aus Vollbildern bestehen, die der Filmbildrate von 24 Vollbildern pro Sekunde entsprechen. Dies ist der Grund für die Umwandlung in progressiven abgetastete Vollbilder. Darüber hinaus kann auf die Vollbilder mit umgewandelter Abtastung auch als Ersatz für den Fall zurückgegriffen werden, daß man befürchten muß, daß die bewegungskompensierte Normwandlung unbrauchbare Ergebnisse liefert, z.B. wenn die Bewegung zu differenziert ist und keine zufriedenstellende Analyse ermöglicht. In diesem Fall lassen sich brauchbare Ergebnisse erzielen, wenn das nächstliegende in progressive Abtastung umgewandelte Voilbild das benötigte Ausgangs-Voilbild bildet.
- Die Umwandlung in progressiv abgetastete Bilder kann auf verschieden Art und Weise erfolgen, z.B. mittels Ersetzen durch das vorangehende Halbbild, mittels Medianfilterung, bei der drei räumlich aufeinanderfolgende Zeilen geprüft werden (zeitlich stammen diese drei Zeilen aus zwei aufeinanderfolgenden Halbbildern), oder mittels eines bewegungskompensierten Verfahrens, bei dem eine Mehrgradienten-Bewegungsdetektierung, gefolgt von einer linearen Mehrrichtungs-Interpolation, eingesetzt wird. Im vorliegenden Ausführungsbeispiel ist das bevorzugte Verfahren jedoch eine bewegungsadaptive Umwandlung in progressive Abtastung, deren einzelne Schritte in dem Blockdiagramm von Fig. 7 dargestellt sind. Das Konzept besteht darin, daß in völlig statischen Bildbereichen eine Zwischen-Halbbild-Interpolation durchgeführt wird, um möglichst viele vertikale Informationen zu gewinnen, während bei Vorhandensein signifikanter Bewegung eine Inner-Halbbild-Interpolation durchgeführt wird. Dies unterstützt auch die glatte Bewegungsabbildung. In Szenen, in denen die Bewegung irgendwo zwischen diesen beiden Extremen liegt, wird die in dem Bild vorhandene lokale Bewegung geschätzt. Die Schätzung wird dann dazu benutzt, die Zwischen-Halbbild-Interpolation und die Inner-Halbbild-Interpolation in verschiedenen Proportionen zu mischen.
- Und zwar wird zunächst der Modulus der Vollbilddifferenz zwischen dem vorangehenden und dem nächsten Halbbild erzeugt. Dies ist in Fig. 8 dargestellt. Zur Erzeugung der erforderlichen Schätzwerte wird an jedem Punkt aus dem vorhergehenden Halbbild und dem nächstfolgenden Halbbild das Modulus-Array der Zwischen-Halbbilddifferenz generiert:
- Δu (Pixel, laufende Zeile, laufendes Halbbild) = Y(Pixel, laufende Zeile, nächstes Halbbild)-Y(Pixel, laufende Zeile, vorhergehendes Halbbild)
- hierin bedeuten
- Δu das Array der nicht normierten Modulus-Differenzen,
- Y das dem 3D-Bild entsprechende Luminanz-Array.
- Der Differenz-Modulus wird dann normiert, um die Signifikanz von Änderungen in Bereichen niedriger Luminanz zu justieren:
- ΔN (Pixel, laufende Zeile, laufendes Halbbild) = F( (Pixel, laufende Zeile))*Δu (Pixel, laufende Zeile, laufendes Halbbild).
- Hierin bedeuten:
- ΔN normiertes Modulus-Differenz-Array
- mittlerer Zwischen-Vollbild-Luminanzwert.
- (Pixel, laufende Zeile) = (Y(Pixel, laufende Zeile, vorhergehendes Halbbild) + Y (Pixel, laufende Zeile, nächstes Halbbild))/2
- F( )(die Normierungsfunktion) wird, wie in Fig. 9 dargestellt, abgeleitet.
- Das Differenz-Array wird dann zusammen mit der Differenz des vorhergehenden Halbbilds mit Hilfe eines Filters mit drei Abgriffen (Beispiele der Koeffizienten sind 1/4, 1/2, 1/4 oder 0, 1, 0) vertikal gefiltert, um die vertikalen Alias-Probleme zu reduzieren und insbesondere die mit dem zeitlichem Alias zusammenhängenden Probleme zu minimieren. Somit erhält man
- ΔF (Pixel, laufende Zeile, laufendes Halbbild) = ΔN (Pixel, laufende Zeile-1, vorhergehendes Halbbild)*Ci + ΔN (Pixel, laufende Zeile, laufendes Halbbild)*C&sub2; + ΔN (Pixel, laufende Zeile+1, vorhergehendes Halbbild)* C&sub1;.
- hierin bedeuten
- ΔF das gefilterte normierte Differenz-Array und
- C&sub1; und C&sub2; Filterkoeffizienten, wobei 2C&sub1;+C&sub2;=1, so daß die Einheits-Gleichstromverstärkung beibehalten wird.
- Sodann werden mit Hilfe eines vertikalen und horizontalen Inner-Halbbild-Filters mit bis zu fünf Abgriffen mal 15 Abgriffen die Differenzwerte in dem laufenden Halbbild geglättet. In der Praxis ist ein Filter mit drei Abgriffen mal drei Abgriffen ausreichend. Schließlich wird eine nicht lineare Mapping-Funktion eingesetzt, um die tatsächliche Bewegungsschätzung zu erzeugen, wobei eine Funktion angewendet wird, die den (mit ME bezeichneten) Bewegungsschätzwert liefert:
- ME (Pixel, laufende Zeile) = γ (räumlich gefiltertes ΔF (Pixel, laufende Zeile)).
- Die nichtlineare Funktion γ wird in der in Fig. 10 dargestellten Weise abgeleitet. Der Wert ME des statischen Bildes ist gleich Null. Der Wert ME für volle Bewegung ist gleich 1. Für Zwischenbewegungen erfolgt ein gesteuerter Übergang.
- Zur Erzeugung eines interpolierten Pixels werden die Pixel in der fehlenden Zeile dadurch gewonnen, daß man Proportionalwerte der umgebenden Zeilen heranzieht, wie dies in Fig. 11 dargestellt ist. Der Bewegungsschätzwert ME wird dann auf den interpolierten Inner-Vollbildwert angewendet (der von einem Filter mit zwei, vier, sechs oder vorzugsweise acht Abgriffen erzeugt wird), der Wert 1-ME wird auf den Zwischen-Halbbild-Mittelwert (oder alternativ auf einen komplexeren Interpolationswert) angewendet. Diese Werte werden summiert, um den Pixelschätzwert für die progressive Abtastung abzuleiten:
- Yout (Pixel, laufende Zeile) =
- ME (Pixel, laufende Zeile)*
- {
- (Yin (Pixel, laufende Zeile-1-2n, laufendes Halbbild) +
- Yin(Pixel, laufende Zeile+1+2n, laufendes Halbbild))*Cn} +
- (1 - ME) (Pixel, laufende Zeile) *
- (Yin(Pixel, laufende Zeile, vorhergehendes Halbbild) +
- Yin(Pixel, laufende Zeile, nächstes Halbbild))/2.
- Hierin bedeuten
- C&sub0;, C&sub1;, C&sub2; und C&sub3; die Zwischen-Halbbild-Filterkoeffizienten,
- wobei 2(C&sub0;+C&sub1;+C&sub2;+C&sub3;)=1 ist, so daß die Einheits-Gleichstromverstärkung beibehalten wird.
- Es hat sich herausgestellt, daß sich mit Hilfe dieses Verfahrens zur progressiven Abtastwandlung aus den Eingangs-Halbbildern Vollbilder hoher Qualität erzeugen lassen, insbesondere deshalb, weil ein bewegtes Objekt isoliert und anders interpoliert werden kann als ein stationärer Hintergrund.
- Es sei noch einmal auf Fig. 1 Bezug genommen. Die von dem progressiven Abtastwandler 2 erzeugten Video-Vollbilder werden zur Ableitung von Bewegungsvektoren verwendet. Die Schätzung der Bewegungsvektoren erfolgt in zwei Schritten. Zunächst werden Korrelationsflächen erzeugt, indem Suchblöcke aus aufeinanderfolgenden Vollbildern korreliert werden. Nach der Gewinnung dieser Korrelationsflächen müssen diese dann geprüft werden, um die Position oder die Positionen zu bestimmen, die die beste Korrelation aufweisen. Es existieren mehrere verschiedene Verfahren zur Gewinnung einer Korrelationsfläche. Die beiden hauptsächlichen benutzten Verfahren sind die Phasenkorrelation und das direkte Block-Matching. Die Benutzung der Phasenkorrelation bringt jedoch eine Menge von Problemen mit sich. Es handelt sich kurz gesagt um Probleme, die mit dem Transformationsmechanismus, der Fensterfunktion, der Blockgröße und der veränderlichen Qualität der Kontur der erzeugten Fläche zusammenhängen. Deshalb wird in dem vorliegenden Ausführungsbeispiel direktes Block-Matching bevorzugt.
- Die Einrichtung 3 für direktes Block-Matching arbeitet folgendermaßen. Zwei Blöcke, die jeweils ein rechteckiges Pixel-Array aus aufeinanderfolgenden Vollbildern des umgewandelten Videosignals mit progressiver Abtastung korreliert, um eine Korrelationsfläche zu erzeugen, aus der ein Bewegungsvektor abgeleitet wird.
- In Fig. 12 wird zunächst ein als Suchblock bezeichneter kleiner Block der Größe 32 Pixel x 23 Zeilen aus einem Vollbild herausgegriffen. Sodann wird aus dem nächsten Vollbild ein als Suchareal bezeichneter größerer Block mit 28 Pixeln mal 69 Zeilen herausgegriffen. Der Suchblock (SB) wird dann, wie in Fig. 13 dargestellt, in jeder möglichen Position in dem Suchareal (SA) plaziert und es wird für jede Stelle die Summe der absoluten Differenz der Pixel-Luminanzpegel zwischen den beiden Blöcken berechnet. Dieser Wert wird dann als die Höhe der Korrelationsfläche an dem Punkt benutzt, an dem er abgeleitet wurde. Er kann dann in Verbindung mit anderen in ähnlicher Weise abgeleiteten Werten für jede mögliche Stelle des Suchblocks in dem Suchareal verwendet werden, um eine Korrelationsfläche zu gewinnen, wie sie in Fig. 14 beispielhaft dargestellt ist. Zur Verbesserung der Erkennbarkeit ist die Fläche invertiert dargestellt. Da in Wirklichkeit das Minimum benötigt wird, ist der Hauptspitzenwert in Fig. 14 der benötigte Punkt.
- Die Größe des Suchblocks wird ausgewählt, indem man die minimale Größe eines Objekts prüft, für das eine Bewegungskompensation erforderlich sein kann. Für das PAL-System mit 625 Zeilen pro Vollbild und 50 Halbbildern pro Sekunde hat sich ein Suchblock mit 16 Pixeln mal 8 Zeilen als geeignet erwiesen, um ein kleines Objekt nachzuziehen, ohne daß eine nicht innerhalb des Objekts jedoch noch in dem Suchblock liegende Umgebungsinformation das Nachziehen des Objekts beeinträchtigt. Diese Lösung wurde deshalb in dem vorliegenden Ausführungsbeispiel übernommen, jedoch modifiziert, um die unterschiedlichen Zahlen von aktiven Pixeln pro Zeilen, aktiven Zeilen pro Vollbild und das vom PAL-System 625/50 abweichende Bildseitenverhältnis eines hochauflösenden Videosignals zu berücksichtigen. Die Vergleichszahlen sind folgende (wobei die ersten Zahlen jeweils dem hochauflösenden Videosignal entsprechen): 1920 (720) aktive Pixel pro Zeile, 1035 (575) aktive Zeilen pro Vollbild und Seitenverhältnis 3:5,33 (3:4).
- Für die Verwendung eines größeren Suchblocks spricht also das Argument, daß hierbei ein großes Objekt nachgezogen werden kann. Für die Verwendung eines kleineren Suchblocks spricht andererseits das Argument, daß hierbei verhindert wird, daß ein kleines Objekt durch die Wirkung eines großen Objekts oder Hintergrundbereichs "überschattet" wird. Man hat jedoch auch den Vorteil, daß es bei kleinen Suchblöcken nicht notwendig ist, mehr als einen Bewegungsvektor pro Suchblock abzuleiten. Da es sehr viel leichter ist, mit einem einzigen Bewegungsvektor statt mehreren Bewegungsvektoren zu arbeiten, beginnt das vorliegende Ausführungsbeispiel, wie beschrieben, mit einem kleinen Suchblock, wobei man dann den Suchblock zu einem größeren Suchblock anwachsen läßt, wenn kein befriedigendes Resultat erzielt wurde. Man vereinigt so die Vorteile eines kleinen Suchblocks mit denen eines großen Suchblocks. Das Kriterium für ein befriedigendes Ergebnis wird durch den weiter unten näher erläuterten Bewegungsvektor-Schätzer 4 (Fig. 1) gesetzt, der aus einer gegebenen Korrelationsfläche den Bewegungsvektor bestimmt.
- Dieses Verfahren, bei dem man den Suchblock "wachsen" läßt, ist nicht nur für das Nachziehen großer Objekte von Vorteil. Es kann auch helfen, um der Bewegung eines Objekts zu folgen, das die Form eines regelmäßigen Musters periodischer Natur aufweist. Man betrachte Fig. 15, in der ein Suchblock A mit dem Suchbereich an den Stellen V1, V2 und V3 verglichen wird, wobei jede dieser Stellen ein scheinbar korrektes Bewegungsmaß ergibt. Die Bewegungsvektorschätzung, d.h. der Prozeß, bei dem die Korrelationsfläche tatsächlich analysiert wird, zeigt in diesem Fall jedoch, daß an drei kolinear angeordneten Stellen gute Korrelation auftritt. Man vergrößert deshalb den Suchblock in horizontaler Richtung bis auf das Dreifache seiner ursprünglichen Breite. Dies ist die Richtung, in der in diesem Fall Mehrfach-Korrelation auftritt. Auch das Suchareal wird entsprechend horizontal vergrößert. Wie Fig. 16 zeigt, existiert in dem vergrößerten Suchblock 3A nur ein einziger Korrelationspunkt, der korrekten Bezug zur Bewegung des Objekts hat.
- In diesem speziellen Fall müssen sowohl der Suchblock als auch das Suchareal in horizontaler Richtung vergrößert werden, weil die Richtung der Mehrfach-Korrelation horizontal verläuft. Es ist jedoch auch möglich, daß der Suchblock und das Suchareal in vertikaler Richtung oder auch in beiden Richtungen vergrößert werden müssen, wenn die Korrelationsfläche dies nahelegt.
- Es sei erwähnt, daß nicht auf alle Suchblöcke in dem Vollbild Block-Matching angewendet werden kann, weil im Grenzbereich nicht genug Platz vorhanden ist, um ein Suchareal zu bilden. So kann in dem in Fig. 17 schraffiert dargestellten Bereich der Grenze um das Vollbild kein Block-Matching ausgeführt werden. Dieses Problem wird durch den weiter unten näher beschriebenen Bewegungsvektor-Reduzierer 5 (Fig. 1) gelöst. Dieser versucht, in diesem schraffierten Bereich Suchblöcke mit geeigneten Bewegungsvektoren bereitzustellen.
- Aus der Korrelationsfläche (Fig. 14), die für jeden Suchblock in einem Vollbild erzeugt wird, leitet der Bewegungsvektor-Schätzer 4 (Fig. 1) die wahrscheinliche Zwischen-Vollbild-Bewegung zwischen dem Suchblock und seinem korrespondierenden Suchareal ab. Es sei noch einmal erwähnt, daß zur klareren Darstellung alle Diagramme von Korrelationsflächen invertiert, d.h. daß Minima als Spitzenwerte dargestellt sind.
- Der Bewegungsvektor-Schätzer 4 (Fig. 1) benutzt Bewegungsvektor-Schätzalgorithmen zur Detektierung des Minimumpunkts auf jeder Korrelationsfläche. Dieser Minimumpunkt stellt den Punkt maximaler Korrelation zwischen Suchblock und Suchareal dar und zeigt damit die wahrscheinliche Bewegung zwischen diesen an. Die Verschiebung des Minimums auf der Korrelationsfläche relativ zum Ursprung, im vorliegenden Fall dem Zentrum der Fläche, ist hinsichtlich der Pixel pro Vollbild ein direktes Maß für die Bewegung. Für den einfachsten Fall, daß die Korrelationsfläche ein einziges ausgeprägtes Minimum enthält genügt die Detektierung des Minimumpunkts auf der Korrelationsfläche zur genauen Bestimmung der Bewegung zwischen Suchblock und Suchareal. Wie oben erwähnt wurde, verbessert die Verwendung kleiner Suchblöcke die Detektierung der Bewegung und die Genauigkeit der Bewegungsschätzung. In einer Anzahl von Fällen, die im folgenden beschrieben werden, ermöglichen einzelne kleine Suchblöcke jedoch keine Bewegungsdetektierung.
- Fig. 18 zeigt ein Objekt mit Bewegungsvektoren (5, 0), die drei Suchblöcke 1A, 2A und 3A in einem Vollbild (t) übergreifen. Wenn die Suchblöcke 1A und 3A mit entsprechenden Sucharealen (1B und 3B) in dem nächsten Vollbild (t+1) korreliert werden, erhält man die in Fig. 19 dargestellte Korrelationsfläche, die bei (5, 0) ein Minimum aufweist. (Hierbei wird eine rauschfreie Videoquelle vorausgesetzt). Wenn der Suchblock 2A jedoch mit seinem entsprechenden Suchareal 28 korreliert wird, wird die in Fig. 20 dargestellte Korrelationsfläche erzeugt, in der der Suchblock 2A in jedem Punkt in x-Richtung mit der Suchfläche 2B korreliert ist. Deshalb gibt es in der Suchfläche kein Einzel-Minimum, so daß die Bewegung zwischen dem Suchblock 2A und dem Suchareal 2B nicht bestimmt werden kann.
- Es sei nun die Situation betrachtet, daß der Suchblock 2A so vergrößert ist, daß er alle drei ursprünglichen Suchblöcke 1A, 2A und 3A umfaßt. Wenn der vergrößerte Suchblock mit einem Suchareal korreliert wird, das die ursprünglichen Suchareale 1 B, 2B und 3B überdeckt, ergibt sich die in Fig. 21 dargestellte Korelationsfläche. Diese besitzt ein Einzel-Minimum bei (5, 0), das die korrekte Bewegung des ursprünglichen Suchblocks 2A anzeigt. Dieses Beispiel zeigt, daß in dem Quellenvideo irgendein eindeutiges Merkmal vorhanden sein muß, um die Bewegung genau detektieren zu können. So haben die beiden Suchblöcke 1A und 3A eindeutige vertikale und horizontale Merkmale, das sind die Kanten des Objekts, so daß die Bewegung bestimmt werden kann. Im Gegensatz hierzu hat der Suchblock 2A zwar ein eindeutiges vertikales Merkmal jedoch kein eindeutiges horizontales Merkmal, so daß die horizontale Bewegung nicht bestimmt werden kann. Wenn der Suchblock jedoch vergrößert wird, bis er sowohl in horizontaler als auch in vertikaler Richtung ein eindeutiges Merkmal umfaßt, kann die vollständige Bewegung für diesen Suchblock bestimmt werden. Darüber hinaus kann gezeigt werden, daß das Vergrößern des Suchblocks nützlich ist, wenn Rauschen in dem Quellenvideo zu berücksichtigen wird.
- Anhand von Fig. 22 sei nun ein weiteres Beispiel betrachtet. Fig. 22 zeigt eine Korrelationsfläche für einen Suchblock mit dem Bewegungsvektor (5, 3). Wegen zahlreicher anderer Korrelationen zwischen dem Suchblock und dem Suchareal ist es jedoch schwierig, die wahre Bewegung zu detektieren. Ein Beispiel für ein Quellenvideo, das eine solche Korrelationsfläche erzeugt, ist ein Baum mit niedrigem Kontrast, der sich im Wind bewegt. Es sei nun angenommen, daß Suchblock und Suchareal vergrößert werden. Die Vergrößerung kann, wie in dem vorangehenden Beispiel, in horizontaler Richtung oder in vertikaler Richtung oder in beiden Richtungen stattfinden. Wenn man annimmt, daß benachbarte Suchblöcke die gleiche Bewegung aufweisen, besteht die mittlere Auswirkung auf die resultierende Korrelationsfläche darin, daß die Amplitude der Minima bei (5, 3) proportional stärker wächst als die Amplitude der anderen Korrelationsspitzen. Dies ist in Fig. 23 dargestellt, die anzeigt, daß die Detektierung des korrekten Bewegungsvektors dann leichter möglich ist. Anhand von Fig. 18 sei nun näher betrachtet, in welcher Weise die Suchblöcke vergrößert werden. Es war hier notwendig, die Fläche des Suchblocks 2A so zu vergrößern, daß die Flächen der Suchblöcke 1A und 3A umfaßt werden, und dann die resultierende Korrelationsfläche zu erzeugen. In Wirklichkeit werden die resultierenden Korrelationsflächen direkt erzeugt, indem die den Suchblöcken 1A, 2A und 3A entsprechenden Elemente der drei Korrelationsflächen addiert werden. Wenn jede Korrelationsfläche als eine Matrix von Punkt- Amplituden betrachtet wird, ist die Korrelationsfläche des vergrößerten Suchblocks 2A die Matrix-Addition der Korrelationsfläche der ursprünglichen Suchblöcke 1A, 2A und 3A.
- Die Fläche des Suchblocks 2A könnte auch in vertikaler Richtung vergrößert werden, indem die Korrelationsflächen der darüber und darunter liegenden Suchblöcke hinzuaddiert werden. Wenn der Suchblock 2A sowohl in horizontaler als auch in vertikaler Richtung vergrößert werden muß, müssen auch die vier in diagonaler Richtung benachbarten Korrelationsflächen addiert werden. Hieraus erkennt man, daß der tatsächliche Prozeß der Vergrößerung eines Suchblocks derart, daß benachbarte Suchblöcke umfaßt werden, relativ einfach ist. Der schwierigere Prozeß besteht darin, zu entscheiden, wann eine Vergrößerung stattfinden soll und welche benachbarten Suchblöcke einbezogen werden sollen. Die Antwort lautet im wesentlichen, daß die Fläche der Suchbläcke soweit vergrößert werden sollte, bis ein gutes Minimum oder ein "guter" Bewegungsvektor detektiert wird. Deshalb muß im einzelnen festgelegt werden, wann ein Bewegungsvektor als ein guter Bewegungsvektor betrachtet werden kann. Dies kann in der Tat aus den oben angegebenen Beispielen abgeleitet werden.
- Bei dem in Fig. 18 bis 21 beschriebenen Beispiel war es notwendig, den Suchblock in horizontaler Richtung zu vergrößern, um ein eindeutiges horizontales Merkmal des Objekts zu erfassen und dadurch ein einziges Minimum zu gewinnen. Diese Situation war gekennzeichnet durch eine Reihe identischer Minima auf der Korrelationsfläche von Fig. 20 und ein einziges Minimum auf der Korrelationsfläche von Fig. 21. Hieraus kann das erste Kriterium für ein gutes Minimum gewonnen werden. Ein gutes Minimum ist der Punkt kleinster Größe auf der Korrelationsfläche, bei dem die Differenz zu der Größe des nächsten kleinsten Punkts einen gegebenen Wert überschreitet. Dieser gegebene Wert ist als Schwellwert bekannt. Dieser Test wird deshalb hier als Schwellwert-Test bezeichnet.
- Es sei erwähnt, daß die Entstehung des nächsten kleinsten Punkts im Rahmen eines weiteren Tests, der als Ring-Test bezeichnet und weiter unten beschrieben wird, verhindert wird. Bei einem Ring-Test, bei dem drei Ringe benutzt werden, wird verhindert, daß der nächste kleinste Punkt aus einem Punkt auftritt, der in einem Bereich innerhalb von drei Pixeln des in Rede stehenden Punkts liegt. In dem Beispiel von Fig. 18 bis 21 würde die Korrelationsfläche von Fig. 20 den Schwellwert-Test verfehlen. Deshalb wird der Suchblock 2A vergrößert, so daß die Korrelationsfläche von Fig. 21 den Schwellwert-Test besteht, wenn ein geeigneter Schwellwert gegeben ist.
- Der Schwellwert-Test kann auch dazu benutzt werden, die Vergrößerung bei dem oben anhand von Fig. 22 und 23 beschriebenen Beispiel zu veranlassen. Bevor der Suchblock vergrößert wird, ist das korrekte Minimum wegen der sehr ähnlichen Größen der umgebenden Punkte nicht detektierbar. Wenn jedoch ein geeigneter Schwellwert gegeben ist, verfehlt die Korrelationsfläche den Schwellwert-Test, und der Suchblock wird vergrößert. Infolgedessen ist es dann möglich, das Minimum unter den unechten Punkten zu detektieren.
- Es zeigt sich, daß die Verwendung eines Schwellwerts ein subjektiver Test ist. Der korrekte Schwellwert für die zu prüfende Korrelationsfläche kann jedoch ausgewählt werden, indem der Schwellwert als ein Bruchteil des Bereichs der Amplituden innerhalb der Korrelationsfläche normiert wird. Dies verringert auch die Auswirkung, die beispielsweise der Kontrast der Videoquelle haben kann.
- Im folgenden sei nun der Ring-Test näher beschrieben, der oben kurz erwähnt wurde und der weit weniger subjektiv ist. Die Grundlage des Ring-Tests besteht darin, daß man davon ausgeht, daß ein gutes Minimum (oder Maximum) von Punkten mit wachsender (oder abnehmender) Amplituden umgeben ist. Fig. 24 veranschaulicht diese Annahme. Sie zeigt ein Minimum bei (0, 0) wo die umgebenden drei Punktringe eine abnehmende mittlere Amplitude aufweisen. Bei der in Fig. 25 dargestellten Korrelationsfläche haben die Ringe, und insbesondere der zweitinnerste Ring, keine abnehmende mittlere Amplitude.
- In diesem Fall besteht das Kriterium für ein durch den Ring-Test definiertes gutes Minimum darin, daß die mittlere Steigung monoton verläuft. Deshalb muß für eine vorbestimmte Anzahl von Punktringen, die das in Rede stehende Minimum umgeben, die mittlere Amplitude jedes Rings vom innersten Ring nach außen größer sein als bei dem vorhergehenden Ring. Wenn man noch einmal das anhand von Fig. 18 bis 21 beschriebene Beispiel betrachtet, erkennt man aus Fig. 20 und 21, daß die Korrelationsfläche von Fig. 20 den Ring-Test verfehlt hätte, während die Korrelationsfläche von Fig. 21 den Ring-Test bestehen würde. Da der Ring-Test mittlere und nicht absolute Amplituden vergleicht, ist er weit weniger subjektiv als der Schwellwert-Test, und die einzige Variable in dem Ring-Test ist in der Tat die Anzahl der berücksichtigten Ringe.
- Nachdem der Mechanismus für die Vergrößerung eines Suchblocks erläutert wurde, ist nun zu untersuchen. wie sich durch Prüfen der Form der Korrelationsfläche die effektivste Richtung bestimmen läßt, in der der Suchblock vergrößert werden sollte.
- Es sei noch einmal die Korrelationsfläche von Fig. 20 betrachtet, die sich ergibt, wenn ein eindeutiges vertikales Merkmal, jedoch kein eindeutiges horizontales Merkmal vorhanden ist. Dies spiegelt sich in der Korrelationsfläche durch das Minimum, das horizontal über die Korrelationsfläche verläuft, weil in dieser Richtung Mehrfach-Korrelationen vorhanden sind. Hieraus läßt sich ableiten, daß der Suchblock in horizontaler Richtung vergrößert werden sollte. Wenn umgekehrt eine Zeile mit Mehrfach-Korrelationen in vertikaler Richtung verläuft, ist dies ein Anzeichen dafür, daß der Suchblock in vertikaler Richtung vergrößert werden muß, während eine kreisförmige Ansammlung von Mehrfach-Korrelationen anzeigt, daß der Suchblock sowohl in horizontaler als auch in vertikaler Richtung vergrößert werden muß.
- Für die Anwendung dieses Kriteriums benötigt man ein quantitatives Maß für die Form der Korrelationsfläche, um festzulegen, in welcher Richtung der Suchblock vergrößert werden soll. Dieses Maß wird folgendermaßen bestimmt: Zunächst wird ein Schwellwert festgelegt. Sodann wird irgendein Punkt auf der Korrelationsfläche betrachtet, der unterhalb des Schwellwerts liegt. Dieser Schwellwert wird, ähnlich wie der bei dem Schwellwert-Test verwendete Schwellwert, als Bruchteil des Bereichs der Amplituden innerhalb der Korrelationsfläche normiert. Unter Verwendung dieses Schwellwerts werden die Punkte auf der Korrelationsfläche der Reihe nach in vier spezifischen Sequenzen geprüft. In jeder Sequenz wird der Punkt notiert, an dem die Korrelationsfläche unter den Schwellwert abfällt. Diese vier Sequenzen sind in Fig. 26 schematisch dargestellt, in der sich die Zahlen 1, 2, 3 und 4 oben, unten, links und rechts auf die vier Sequenzen beziehen, und der schraffierte Bereich Punkte kennzeichnet, die unter dem Schwellwert abfallen:
- Sequenz 1: Suche von der oberen Seite der Korrelationsfläche nach unten nach einem Punkt A, der unter den Schwellwert abfällt.
- Sequenz 2: Suche von der unteren Seite der Korrelationsfläche nach oben nach einem Punkt C, der unter den Schwellwert abfällt.
- Sequenz 3: Suche von der linken Seite der Korrelationsfläche nach rechts nach einem Punkt D, der unter den Schwellwert abfällt.
- Sequenz 4: Suche von der rechten Seite der Korrelationsfläche nach links nach einem Punkt B, der unter den Schwellwert abfällt.
- Die Orte der vier resultierenden Punkte A, B, C und D werden zur Berechnung der beiden in Fig. 26 angegebenen Dimensionen X und Y benutzt, die die Größe des schraffierten Bereichs angeben, der die unter den Schwellwert abfallenden Punkte enthält. Aus den Dimensionen X und Y kann deshalb hergeleitet werden, ob die Form in x-Richtung länger ist als in y-Richtung oder umgekehrt, oder ob die Form annähernd kreisförmig ist. Bei der Ableitung der Form wird eine geringfügige Differenz von beispielsweise 10 % zugelassen, d.h. die Dimension X muß zumindest 10 % größer sein als die Dimension Y, damit die Form als eine in x-Richtung längere Form betrachtet wird. Das gleiche gilt für die y-Richtung. Wenn die Dimensionen X und Y nicht mehr als 10 % voneinander abweichen, wird die Form als kreisförmig betrachtet, und der Suchblock wird in beiden Richtungen vergrößert. In dem Beispiel von Fig. 26 ist die Dimension X größer als die Dimension Y. Deshalb wird der Suchblock in der x-Richtung, d.h. in horizontaler Richtung, vergrößert.
- Die Vergrößerung des Suchblocks wird solange fortgesetzt, bis eine oder mehrere Wachstumsgrenzen erreicht sind. Diese Grenzen bestehen darin, daß das Minimum in der Korrelationsfläche sowohl den Schwellwert-Test als auch den Ring-Test besteht, daß die Kante des Videorahmens erreicht wird oder daß der Suchblock bereits eine vorbestimmte Anzahl von Malen in horizontaler und vertikaler Richtung vergrößert wurde. Die letztgenannte Grenze hängt von der Hardware ab. Das heißt, sie wird bestimmt durch die in der verfügbaren Zeit mögliche Verarbeitungsmenge. In einem spezifischen Ausführungsbeispiel des Geräts gemäß der Erfindung wurde für diese Grenze zweimalige horizontale und einmalige vertikale Vergrößerung festgesetzt.
- Wenn das Minimum in der Korrelationsfläche sowohl den Schwellwert-Test als auch den Ring-Test besteht, wird unterstellt, daß ein geeigneter Bewegungsvektor bestimmt wurde, der dann dem Bewegungsvektor-Reduzierer 5 (Fig. 1) zugeführt werden kann. Falls jedoch die Kante des Vollbilds erreicht wird oder der Suchblock bereits eine vorbestimmte Anzahl von Malen sowohl in horizontaler als auch in vertikaler Richtung vergrößert wurde, wird unterstellt, daß kein geeigneter Bewegungsvektor für diesen speziellen Suchblock bestimmt wurde, und statt zu versuchen, einen guten Bewegungsvektor zu bestimmen, wird der beste verfügbare Bewegungsvektor durch Gewichtung festgelegt.
- Die Korrelationsfläche wird so gewichtet, daß die Auswahl des besten verfügbaren Bewegungsvektors in Richtung auf den stationären, d.h. den zentralen Bewegungsvektor gewichtet wird. Dies hat zwei Gründe: Erstens wird es nicht möglich sein, einen guten Bewegungsvektor zu detektieren, wenn der Suchblock auch nach der Vergrößerung Teil eines großen unaufgelästen Bereichs des Quellenvideos ist. Wenn das Quellenvideo eine unaufgelöste Fläche ist, führt jedoch ein stationärer Bewegungsvektor bei der nachfolgenden Verarbeitung zu den korrekten Ergebnissen. Zweitens ist die Gewichtung so festgelegt, daß die Möglichkeit, daß ein erheblich falscher Bewegungsvektor an den Bewegungsvektor- Reduzierer 5 (Fig. 1) übertragen wird, herabgesetzt wird. Dies geschieht deshalb, weil davon ausgegangen wird, daß dann, wenn ein guter Bewegungsvektor nicht bestimmt werden kann, ein in geringem Umfang unrichtiger Bewegungsvektor einem sehr ungenauen Bewegungsvektor vorzuziehen ist.
- Fig. 27 zeigt ein Beispiel dafür, wie die Gewichtungsfunktion auf die Korrelationsfläche angewendet werden kann. In diesem Beispiel ist das auf einen gegebenen Punkt auf der Korrelationsfläche angewendete Gewicht dem Abstand dieses Punktes von dem stationären zentralen Bewegungsvektor direkt proportional. Die Größe des Punktes auf der Korrelationsfläche wird mit dem Gewichtungsfaktor multipliziert. Der Gradient der Gewichtungsfunktion kann beispielsweise so gewählt sein, daß Punkte, die einen Abstand von plus oder minus 32 Pixeln von dem zentralen stationären Bewegungsvektor haben, mit dem Faktor 3 multipliziert werden. Mit anderen Worten, wenn der zentrale stationäre Bewegungsvektor, wie in Fig. 27 dargestellt, durch den schwarzen Kreis gekennzeichnet ist, ist die Gewichtungsfunktion ein umgekehrter Kegel, der auf dem zentralen stationären Bewegungsvektor zentriert ist.
- Nachdem die Korrelationsfläche gewichtet wurde, wird sie erneut dem Schwellwert-Test und dem Ring-Test unterzogen. Falls ein Minimum festgestellt wird, das beide Tests besteht wird davon ausgegangen, daß es sich um einen guten Bewegungsvektor handelt. Dieser wird gekennzeichnet, um anzuzeigen, daß es sich um einen guten Bewegungsvektor handelt, der jedoch durch Gewichtung bestimmt wurde. Dieses Kennzeichen wird zusammen mit dem Bewegungsvektor dem Bewegungsvektor-Reduzierer 5 (Fig. 1) zugeführt. Wenn hingegen auch nach der Gewichtung weder ein guter Bewegungsvektor noch ein bester verfügbarer Bewegungsvektor bestimmt werden kann, wird ein Kennzeichen gesetzt, um anzuzeigen, daß der dem Vektorreduzierer 5 (Fig. 1) für diesen Suchblock zugeführte Bewegungsvektor ein schlechter Bewegungsvektor ist. Dies ist notwendig, weil schlechte Bewegungsvektoren in dem Bewegungsvektor-Reduzierungsprozeß nicht verwendet werden dürfen, sondern in der weiter unten beschriebenen Weise substituiert werden müssen.
- Zusammengefaßt besteht die Funktion des Bewegungsvektor-Schätzers 4 (Fig. 1) darin, aus der von der Einrichtung 3 für das direkte Block-Matching (Fig. 1) den Punkt der besten Korrelation, d.h. das Minimum, abzuleiten. Dieses Minimum wird dann dem Schwellwert- Test und dem Ring-Test unterzogen. Das Minimum muß beide Tests bestehen, damit es als Repräsentant für die Bewegung des Suchblocks betrachtet wird. Es sei nebenbei erwähnt, daß die in dem Schwellwert-Test und in dem Ring-Test verwendeten Schwellwerte entweder Absolutwerte oder Bruchteilswerte sind. Falls das Minimum beide Tests verfehlt, wird der Suchblock vergrößert, ein neues Minimum bestimmt und der Schwellwert-Test und der Ring-Test erneut angewendet. Die wirksamste Richtung für die Vergrößerung des Suchblocks wird aus der Form der Korrelationsfläche bestimmt.
- Im folgenden sei der Prozeß der Bewegungsvektorreduzierung beschrieben, wobei zunächst auf Fig. 1 Bezug genommen wird. Wenn ein hochauflösendes Videosignal verwendet wird, wird ein Suchblock mit 32 Pixeln mal 23 Zeilen unterstellt. Es läßt sich zeigen, daß dies zu einem möglichen Maximum von 2441 Bewegungsvektoren führt. Die Auswahl des Suchblock ist ein Kompromiß zwischen der Beibehaltung der Auflösung und der Vermeidung eines exzessiv großen Hardwareaufwands. Wenn alle diese Bewegungsvektoren dem Bewegungsvektor-Wähler 6 zugeführt werden, ist wegen des erforderlichen Verarbeitungsumfangs eine Bewegungsvektorauswahl in der Praxis nicht möglich. Zur Lösung dieses Problems dient der zwischen dem Bewegungsvektor-Schätzer 4 und dem Bewegungsvektor-Wähler 6 angeordnete Bewegungsvektor-Reduzierer 5. Der Bewegungsvektor-Reduzierer 5 übernimmt die von dem Bewegungsvektor-Schätzer 4 erzeugten Bewegungsvektoren und präsentiert dem Bewegungsvektor-Wähler nicht alle für das Vollbild abgeleiteten Bewegungsvektoren sondern z.B. nur vier Bewegungsvektoren für jeden Suchblock in dem Vollbild. Dies hat eine zweifache Auswirkung: Erstens wird hierdurch die Auswahl des korrekten Bewegungsvektors erleichtert, solange dieser sich in der Gruppe der vier der Bewegungsvektor-Wähler 6 zugeführten Bewegungsvektoren befindet. Zweitens jedoch bedeutet dies auch, daß der Bewegungsvektor-Wähler 6 nicht in der Lage ist, den korrekten Bewegungsvektor auszuwählen, wenn dieser nicht als eine der vier zugeführt wird. Es muß deshalb versucht werden, sicherzustellen, daß der Bewegungsvektor-Reduzierer 5 den korrekten Bewegungsvektor unter denjenigen enthält, die dem Bewegungsvektor- Wähler 6 zugeführt werden. Es ist außerdem zu beachten, daß der Bewegungsvektor-Reduzierer 5 dem Bewegungsvektor-Wähler 6 zwar vier Bewegungsvektoren zuführt, daß jedoch nur drei von diesen tatsächlich eine Bewegung repräsentieren, während der vierte Bewegungsvektor stets der stationäre Bewegungsvektor ist, der einbezogen ist, um sicherzustellen, daß der Bewegungsvektor-Wähler 6 auf ein stationäres Pixel keinen Bewegungsvektor anwenden muß, der eine Bewegung repräsentiert. Dem Bewegungsvektor-Wähler 6 können auch andere Mengen von Bewegungsvektoren zugeführt werden. In einem alternativen Ausführungsbeispiel können es z.B. außer dem stationären Bewegungsvektor vier Bewegungsvektoren sein, die eine Bewegung repräsentieren.
- Der im folgenden verwendete Ausdruck "Abtastblock" bezieht sich auf einen Block in einem Video-Vollbild, in dem von dem Bewegungsvektor-Reduzierer 5 die gleichen vier Bewegungsvektoren angeboten werden. Somit ist ein Abtastblock das gleiche wie ein Suchblock, bevor dieser vergrößert wurde. Wie Fig. 28 zeigt, sind in einem Video-Vollbild die Anfangspositionen der Abtastblöcke und der Suchblöcke die gleichen.
- Der Bewegungsvektor-Reduzierer 5 (Fig. 1) nimmt von dem Bewegungsvektor-Schätzer 4 (Fig. 1) die Bewegungsvektoren und die Kennzeichen (Flags) auf und bestimmt die Qualität der Bewegungsvektoren durch das Prüfen der Flags. Falls der Bewegungsvektor nicht von einer mehrdeutigen Fläche abgeleitet wurde, d.h., wenn er einen hohen "Vertrauensgrad genießt", wird er als "guter" Bewegungsvektor bezeichnet. Wenn jedoch eine gewisse Mehrdeutigkeit vorhanden ist, wird der Bewegungsvektor als "schlechter" Bewegungsvektor bezeichnet. In dem Prozeß zur Bewegungsvektorreduzierung werden alle als schlecht klassifzierten Bewegungsvektoren ignoriert, weil es wichtig ist, daß keine ungenauen Bewegungsvektoren jemals zu dem Bewegungsvektor-Wähler 6 (Fig. 1) gelangen, falls von diesem ein schlechter Bewegungsvektor ausgewählt wird. Diese Auswahl würde in der Regel in dem endgültigen Bild zu einem unechten Punkt führen, der sehr gut sichtbar wäre.
- Jeder Bewegungsvektor, der dem Bewegungsvektor-Reduzierer 5 (Fig. 1) zugeführt wird, wurde aus einem speziellen Suchblock und damit aus einem speziellen Abtastblock (Fig. 28) gewonnen, deren Positionen zusammen mit dem Bewegungsvektor notiert sind. Da Bewegungsvektoren, die als schlechte Bewegungsvektoren klassifiziert wurden, ignoriert werden, besitzen nicht alle Abtastblöcke einen Bewegungsvektor, der von dem Suchblock an dieser Position abgeleitet ist. Die Bewegungsvektoren, die als gute Bewegungsvektoren klassifiziert wurden und sich auf einen speziellen Suchblock und damit auf einen speziellen Abtastblock beziehen, werden als lokale Bewegungsvektoren bezeichnet, weil sie in dem Areal abgeleitet wurden, aus dem der Abtastblock gewonnen wurde. Zusätzlich zählt ein weiterer Bewegungsvektor-Reduzierungsprozeß die Häufigkeit, mit der jeder gute Bewegungsvektor auftritt, wobei die tatsächlichen Positionen der Suchblöcke, die zu ihrer Ableitung benutzt wurden, nicht berücksichtigt werden. Diese Bewegungsvektoren werden dann in der Reihenfolge abnehmender Häufigkeit in eine Rangordnung gebracht. Sie werden als gemeinsame Bewegungsvektoren bezeichnet. Im ungünstigsten Fall sind nur drei gemeinsame Bewegungsvektoren verfügbar. Diese werden mit dem stationären Bewegungsvektor kombiniert, um die vier Bewegungsvektoren zu gewinnen, die dem Bewegungsvektor-Wähler 6 (Fig. 1) zugeführt werden sollen. Da jedoch häufig mehr als drei gemeinsame Bewegungsvektoren existieren, muß die Anzahl reduziert werden, um einen reduzierten Satz von gemeinsamen Bewegungsvektoren zu bilden, die als globale Bewegungsvektoren bezeichnet werden.
- Eine einfache Möglichkeit zur Reduzierung der Zahl der gemeinsamen Bewegungsvektoren besteht darin, die drei häufigsten gemeinsamen Bewegungsvektoren zu verwenden und die übrigen unberücksichtigt zu lassen. Die drei häufigsten gemeinsamen Bewegungsvektoren sind jedoch oft diejenigen drei Bewegungsvektoren, die anfänglich innerhalb einer vertikalen und/oder horizontalen gegenseitigen Bewegung um plus oder minus ein Pixel lagen. Mit anderen Worten, diese gemeinsamen Bewegungsvektoren folgen mit geringen Unterschieden alle der gleichen Bewegung, während die anderen gemeinsamen Bewegungsvektoren, die unberücksichtigt blieben. tatsächlich verschiedenen Bewegungen folgen.
- Um die gemeinsamen Bewegungsvektoren auszuwählen, die alle oder die meisten Bewegungen in einer Szene repräsentieren, muß man vermeiden, globale Bewegungsvektoren auszuwählen, die die gleiche Bewegung repräsentieren. Die tatsächlich angewendete Strategie besteht somit darin, zunächst die drei am häufigsten vorkommenden gemeinsamen Bewegungsvektoren heranzuziehen und zu prüfen, ob derjenige von ihnen, der am wenigsten häufig auftritt, innerhalb einer vertikalen Bewegung um plus oder minus 1 Pixel und/oder einer horizontalen Bewegung um plus oder minus 1 Pixel eines der anderen beiden gemeinsamen Bewegungsvektoren liegt. Wenn dies der Fall ist, wird er zurückgewiesen, und es wird der nächst weniger häufig auftretende gemeinsame Bewegungsvektor ausgewählt, um ihn zu ersetzen. Dieser Prozeß wird für alle am häufigsten auftretenden gemeinsamen Bewegungsvektoren fortgesetzt, bis entweder drei gemeinsame Bewegungsvektoren vorliegen, die einander nicht gleichen, oder bis drei oder weniger gemeinsame Bewegungsvektoren zurückbleiben. Wenn jedoch mehr als drei gemeinsame Bewegungsvektoren zurückbleiben, wird der Prozeß wiederholt, wobei dieses mal geprüft wird, ob der am wenigsten häufig auftretende von ihnen innerhalb der vertikalen Bewegung um plus oder minus 2 Pixel und/oder der horizontalen Bewegung um plus oder minus 2 Pixel eines anderen liegt, usw. mit wachsenden Abständen, falls dies erforderlich ist. Diese drei gemeinsamen Bewegungsvektoren sind die geforderten globalen Bewegungsvektoren, und es ist wichtig, darauf hinzuweisen, daß ihre Rangordnung noch der Reihenfolge ihrer Häufigkeit entspricht.
- Bei der Betrachtung des Prozesses zur Bewegungsvektorreduzierung und der Abtastblöcke eines Video-Vollbilds, muß man drei unterschiedliche Typen von Abtastblöcken ins Auge fassen. Diese Typen beziehen sich auf die tatsächliche Position in einem Video-Vollbild und sind in Fig. 29 als Regionen dargestellt. Die Region A umfaßt Abtastblöcke, die völlig von anderen Abtastblöcken umgeben sind und nicht in der Nähe des Bildrandes liegen. Die Region B umfaßt Abtastblöcke, die teilweise von anderen Abtastblöcken umgeben sind und nicht in der Nähe des Bildrandes liegen. Die Region C schließlich umfaßt Abtastblöcke, die in der Nähe des Bildrandes liegen. Für jede dieser Regionen muß ein anderer Algorithmus zur Bewegungsvektorreduzierung angewendet werden. Diese Algorithmen werden weiter unten beschrieben. Zunächst sei aber noch nochmals darauf hingewiesen, daß für einige der Abtastblöcke in dem Video-Vollbild gute Bewegungsvektoren existieren und daß zusätzlich auch drei globale Bewegungsvektoren vorhanden sind, die den größten Teil der vorherrschenden Bewegung in der Szene repräsentieren sollten. Eine Auswahl dieser Bewegungsvektoren dient dazu, für jeden Abtastblock drei Bewegungsvektoren zusammen mit dem stationären Bewegungsvektor weiterzugeben.
- Fig. 30 veranschaulicht schematisch die Bewegungsvektorreduzierung in der Region A. Dies ist die komplexeste der zu behandelnden Regionen, weil sie die größte Anzahl von zu prüfenden Vektoren aufweist. Fig. 30 zeigt einen schraffierten zentralen Abtastblock, der von anderen Abtastblöcken a bis h umgeben ist. Zunächst wird der lokal abgeleitete Bewegungsvektor geprüft, um festzustellen, ob er als guter Vektor klassifiziert wurde. Wenn dies der Fall ist und wenn es nicht der gleiche wie der stationäre Bewegungsvektor ist, wird er weitergegeben. Falls er jedoch einen dieser Tests verfehlt, wird er ignoriert. Dann wird der dem Abtastblock d zugeordnete Bewegungsvektor geprüft, um festzustellen, ob er als ein guter Bewegungsvektor klassifiziert wurde. Wenn dies der Fall ist und wenn er ebenfalls nicht derselbe wie ein bereits ausgewählter Bewegungsvektor ist und auch nicht derselbe wie der stationäre Bewegungsvektor ist, wird auch er weitergegeben. Falls er einen der Tests verfehlt, wird er ebenfalls ignoriert. Der Prozeß wird dann in ähnlicher Weise in der Reihenfolge e, b, g, a, h, c und f fortgesetzt. Sobald drei Bewegungsvektoren gewonnen wurden, die nicht den stationären Bewegungsvektor umfassen hält der Algorithmus an, weil dies alles ist, was für die Bewegungsvektorauswahl für diesen Abtastblock benötigt wird. Es kann jedoch auch vorkommen, daß alle oben genannten Prüfungen ausgeführt werden, ohne daß drei gute Bewegungsvektoren gewonnen werden. In diesem Fall werden die verbleibenden Stellen mit den globalen Bewegungsvektoren ausgefüllt, wobei die am häufigsten auftretenden globalen Bewegungsvektoren priorisiert werden.
- Fig. 31 veranschaulicht die Bewegungsvektorreduzierung in der Region B. Die Abtastblöcke in der Region B sind die gleichen wie in der Region A, mit der Ausnahme, daß sie nicht vollständig von anderen Abtastblöcken umgeben sind. Somit ist der auf diese Abtastblöcke angewendete Prozeß genau der gleiche wie für die Region A, mit der Ausnahme, daß nicht in allen umgebenden Abtastblöcken gesucht werden kann. So können, wie aus Fig. 31 hervorgeht nur die Bewegungsvektoren für die Abtastblöcke a bis e geprüft werden, und verbleibende Zwischenräume für Bewegungsvektoren werden wie zuvor mit globalen Bewegungsvektoren ausgefüllt. Wenn der schraffierte Abtastblock in Fig. 31 um zwei Positionen nach links verschoben würde, gäbe es, wie ersichtlich, nur drei angrenzende umgebende Bläcke, die geprüft werden müßten, bevor man auf globale Bewegungsvektoren zurückgreift.
- Fig. 32 veranschaulicht die Bewegungsvektorreduzierung der Region C. Dies ist der schwierigste Fall. weil die Abtastblöcke weder einen lokal abgeleiteten Bewegungsvektor haben noch viele umgebende Abtastblöcke besitzen, deren Bewegungsvektoren verwendet werden könnten. Der einfachste Weg zur Lösung dieses Problems besteht darin, den Abtastblöcken in der Region C einfach die globalen Bewegungsvektoren zusammen mit dem stationären Bewegungsvektor zuzuteilen. Es hat sich jedoch herausgestellt, daß dadurch ein blockartiger Effekt in dem resultierenden Bild erzeugt wird, der darauf zurückzuführen ist, daß sich die Bewegungsvektoren, die für die Abtastblöcke in der Region C präsentiert werden, im Vergleich zu den angrenzenden Abtastblöcken in der Region D plötzlich ändern. Deshalb besteht eine bevorzugte Strategie darin, für die Abtastblöcke in der Region C die Abtast-Bewegungsvektoren zu verwenden, wie sie für die Abtastblöcke in der Region B verwendet werden, da dadurch plötzliche Änderungen verhindert werden. Vorzugsweise werden jedem Abtastblock in der Region C die gleichen Bewegungsvektoren zugeordnet wie dem Abtastblock in der Region B, der ihm physisch am nächsten liegt. So werden in dem Beispiel von Fig. 32 jedem der schraffierten Abtastbläcke in der Region C die gleichen Bewegungsvektoren zugeordnet wie dem Abtastblock a in der Region B. Es hat sich herausgestellt, daß sich damit hervorragende Ergebnisse erzielen lassen.
- Es sei noch einmal auf Fig. 1 Bezug genommen. Die Aufgabe des Bewegungsvektor-Wählers 6 besteht darin, jedem individuellen Pixel in dem Abtastblock einen der vier ihm zugeführten Bewegungsvektoren zuzuteilen. Auf diese Weise können die Bewegungsvektoren korrekt an der Außenlinie von Objekten abgebildet werden. Die Art und Weise, wie diese Zuordnung erfolgt, soll insbesondere vermeiden helfen, daß der ein feines Detail umgebende Hintergrund einen besseren Ausgleich erzeugt als er durch den korrekten Bewegungsvektor erzeugt wird. Zu diesem Zweck wird der Prozeß der Bewegungsvektorauswahl in zwei Hauptstufen unterteilt. In der ersten Stufe werden für jedes Pixel in den Eingangs-Vollbildern Bewegungsvektoren erzeugt. Mit anderen Worten, es wird nicht der Versuch unternommen, die Bewegungsvektorwerte für Pixel an Positionen des Ausgangs-Vollbildes zu bestimmen. Die zweite Stufe nutzt die in der ersten Stufe erzeugten Bewegungsvektorwerte, um für jedes Pixel in dem Ausgangs-Vollbild zu den Bewegungsvektorwert bestimmen.
- Es sei nun auf Fig. 36 Bezug genommen. Jedes Pixel in dem Ausgangs-Vollbild 2 wird auf den besten Luminanzwertausgleich mit dem vorangehenden und dem folgenden Eingangs- Vollbild 1 und 3 der Videodaten geprüft, wobei jeder der vier zugeführten Bewegungsvektoren verwendet wird. Die Pixel-Luminanzdifferenz wird bestimmt als:
- Hierin bedeuten:
- P1nm der Luminanzwert eines Pixels des Vollbildes 1 innerhalb eines 4x4-Blocks von Pixeln, die das Pixel umgeben, dessen Ort dadurch gewonnen wird, daß die Koordinaten des gerade geprüften Bewegungsvektors von dem Ort des in dem Vollbild 2 getesteten Pixels subtrahiert wird,
- P2nm der Luminanzwert eines Pixels des Vollbildes 2 innerhalb eines 4x4-Blocks von Pixeln, die das gerade geprüfte Pixel umgeben,
- P3nm der Luminanzwert eines Pixels des Vollbilds 3 innerhalb eines 4x4-Blocks von Pixeln, die das Pixel umgeben, dessen Ort dadurch gewonnen wird, daß die Koordinaten des gerade getesteten Bewegungsvektors zu dem Ort des in dem Vollbild 2 getesteten Pixels hinzuaddiert werden.
- Die kleinste Pixeldifferenz zeigt dann den besten Luminanzausgleich und damit den korrekten Bewegungsvektor an, der auf das gerade getestete Pixel anzuwenden ist. Wenn der korrekte Bewegungsvektor nicht verfügbar ist oder aufgedeckte oder abgedeckte Bereiche vorhanden sind, die weiter unten im einzelnen erläutert werden, ist ein guter Ausgleich nicht möglich.
- Es wird ein unzureichender Ausgleich angezeigt, wenn die durchschnittliche Pixeldifferenz innerhalb des verwendeten Pixelblocks über einem bestimmten Schwellwert liegt. Dieser Schwellwert ist wichtig, weil hochfrequente Details selbst dann einen unzureichenden Ausgleich erzeugen können, wenn der korrekte Bewegungsvektor geprüft wird. Der Grund für diesen unzureichenden Ausgleich besteht darin, daß bei der Bewegungsvektorschätzung ein halber Pixelfehler auftreten kann. Um zu bestimmen, welcher Schwellwert einen unzureichenden Ausgleich anzeigt, muß man den Schwellwert auf den Frequenzgehalt des Bilds innerhalb des Blocks von Daten beziehen, die das Pixel umgeben, für das der Bewegungsvektor benötigt wird. Zu diesem Zweck wird ein Auto-Schwellwert bestimmt, bei dem der Schwellwert der Hälfte der maximalen horizontalen oder vertikalen Pixel-Luminanzdifferenz um das gerade getestete Pixel entspricht. Um sicherzustellen, daß der gewonnene Schwellwert für den ganzen Datenblock repräsentativ ist, der verglichen wird, wird ein Durchschnittswert für die vier zentralen Pixel eines verwendeten 4x4-Blocks gewonnen.
- In Fig. 38, in der ein 4x4-Block dargestellt ist, ist der geforderte Schwellwert T gegeben durch:
- T= (1 + T2 + T3 + T4)/8,
- worin beispielsweise T3, wie in Fig. 39 dargestellt, als ein Wert bestimmt wird, der gleich dem Maximum der vier Pixel-Luminanz-Differenzwerte ist, die
- die beiden vertikalen Differenzen B2 - B3 und B4 - B3 und
- die beiden horizontalen Differenzen A3 - B3 und C3 - B3 umfassen.
- Auf diese Weise wird für das Eingangs-Vollbild 2 ein Vollbild von Bewegungsvektoren gewonnen. In entsprechender Weise wird für das Eingangs-Vollbild 3, wie in Fig. 37 dargestellt, ein Volibild von Bewegungsvektoren gewonnen.
- Abgesehen von Szenenänderungen ist das Phänomen der aufgedeckten/abgedeckten" Flächen dafür verantwortlich, wenn in der oben beschriebenen ersten Stufe der Bewegungsvektorauswahl ein fehlerhafter Ausgleich erfolgt. Wenn ein Objekt, z.B. ein Wagen, in einen Tunnel fährt, wird er ab. Wenn der Wagen hingegen herausfährt, wird er aufgedeckt. Falls der Teil des Wagens, der in den Vollbildern 1 und 2 aufgedeckt war, in den Vollbildern 3 und 4 abgedeckt ist, ist der Basisprozeß für die Vektorauswahl nicht in der Lage, den korrekten Vektor zu bestimmen. Darüber hinaus werden die Straße und die Objekte hinter dem Wagen aufgedeckt, während der Wagen in den Tunnel fährt. In ähnlicher Weise wird der Wagen beim Verlassen des Tunnels aufgedeckt, die Straße und die Objekte hinter dem Wagen werden hingegen abgedeckt. Im allgemeinen existieren deshalb sowohl abgedeckte als auch aufgedeckte Objekte zur gleichen Zeit. Am Ende einer Szene tritt ebenfalls eine Diskontinuität in der Bewegung auf, die derjenigen gleicht, wenn ein Objekt abgedeckt wird. In dem Bestreben, auch unter diesen Umständen einen Bewegungsvektor zu bestimmen, wird der Luminanzwert-Blockausgleich auf einen Ausgleich über zwei Vollbilder reduziert, statt einen Ausgleich über drei Vollbilder durchzuführen, wie er in Fig. 36 und 37 dargestellt ist. Das Vollbild, für das die Bewegungsvektoren benötigt werden (z.B. das Vollbild 2) wird individuell einem Block-Ausgleich mit dem vorhergehenden und dem nachfolgenden Vollbild (Vollbild 1 bzw. Vollbild 3 im Falle des Vollbilds 2), wozu die vier zugeführten Bewegungsvektoren benutzt werden. Der Bewegungsvektor, der den besten Ausgleich liefert, wird als der Bewegungsvektor ausgewählt, der auf das gerade geprüfte Pixel anzuwenden ist. In diesem Fall wird jedoch ein Flag gesetzt, um anzuzeigen, daß ein Ausgleich über nur zwei Vollbild verwendet wurde.
- Insbesondere bei integrierenden Fernsehkameras treten Situationen auf, in denen kein Ausgleich erfolgt. Wenn sich ein Objekt über einen detailreichen Hintergrund bewegt, erzeugt eine integrierende Kamera eindeutige Bildbereiche, in denen die Vorder- und Hinterkanten des Objekts mit den Detail des Hintergrunds gemischt sind. Unter diesen Umständen kann selbst der Ausgleich über zwei Vollbild eine durchschnittliche Pixeldifferenz erzeugen, die über dem Schwellwert liegt. In diesen Fällen wird der Wert des Bewegungsvektors auf Null gesetzt und ein Fehler-Flag gesetzt.
- Die zweite Stufe der Bewegungsvektorauswahl benutzt die beiden Vollbildern der Bewegungsvektoren, die in der ersten Stufe hergeleitet wurden. Ein Vollbild von Bewegungsvektoren (Eingangs-Vollbild 2) wird als Referenz-Vollbild betrachtet, und das diesem folgende Vollbild (Eingangs-Vollbild 3) wird ebenfalls benutzt. Die Position des Ausgangs-Vollbilds existiert dann irgendwo zwischen diesen beiden Vollbildern von Bewegungsvektoren. Es sei nun auf Fig. 40 Bezug genommen: Hier werden für jede Ausgangs-Pixelposition die vier möglichen Bewegungsvektoren getestet, die dem Abtastblock des Eingangs-Vollbilds 2 zugeordnet sind. Eine Linie, die im Winkel des gerade getesteten Bewegungsvektors durch die Ausgangs-Pixelposition gezogen ist, zeigt auf eine Position sowohl in dem Eingangs- Vollbild 2 als auch in dem Eingangs-Vollbild 3. Im Fall von Bewegungsvektoren mit ungeradzahligem Wert, z.B. 1, 3 und 5, wird ein Punkt in der Mitte zwischen den beiden Eingangs- Vollbildpixeln angezeigt, wenn das Ausgangs-Vollbild genau zwischen den Eingangs-Vollbildem 1 und 2 liegt. Zur Berücksichtigung dieser Ungenauigkeit und auch zur Herabsetzung der Empfindlichkeit bezüglich individueller Pixel wird für jedes Vollbild ein 3x3-Block von Bewegungsvektoren gewonnen, der auf der dichtest benachbarten Pixelposition zentriert ist. Es wird dann tatsächlich ein Block-Ausgleich zwischen jedem der beiden 3x3-Blöcke von Bewegungsvektoren und einem Block ausgeführt, der den gerade getesteten Bewegungsvektor enthält. Die verwendete Bewegungsvektordifferenz stellt die räumliche Differenz der beiden Bewegungsvektorwerte dar und ist gegeben durch
- [((x1-x2)² + (y1-y2)²)
- Hierin bedeuten
- x1 und y1 die kartesischen Koordinaten des Bewegungsvektors in einem der Blöcke,
- x2 und y2 die kartesischen Koordinaten des gerade getesteten Bewegungsvektors.
- Als Ergebnis des Block-Ausgleichs wird eine mittlere Vektordifferenz pro Pixel erzeugt.
- Zunächst wird ein Bewegungsvektor-Ausgleich unter Verwendung nur derjenigen Bewegungsvektorwerte erzeugt, die unter Benutzung von drei Eingangs-Vollbildern berechnet wurden, d.h. der Eingangs-Vollbilder 1, 2 und 3 für das Eingangs-Vollbild 2 (Fig. 36) und der Eingangs-Vollbilder 2, 3 und 4 für das Eingangs-Vollbild 3 (Fig. 37), und das Ergebnis wird entsprechend skaliert. In dem Block von neun Bewegungsvektoren befinden sich vorzugsweise zumindest vier verwendbare Bewegungsvektoren. Wenn sowohl der Bewegungsvektorblock von Vollbild 2 als auch von Vollbild 3 benutzt werden kann, werden die Bewegungsvektor-Differenzwerte aus dem halben Bewegungsvektor-Differenzwert aus dem Vollbild 2 und dem halben Bewegungsvektor-Differenzwert aus dem Vollbild 3 gebildet. Derjenige Bewegungsvektor, der bei dem oben beschriebenen Verfahren den kleinsten Bewegungsvektor-Differenzwert erzeugt, wird als der Bewegungsvektor betrachtet, der auf das gerade getestete Ausgangspixel anwendbar ist. Wenn der Bewegungsvektor-Differenzwert, der von den Eingangs-Bewegungsvektor des Ausgleichs der drei Vollbilder erzeugt wird (Fig. 36 und 37) größer ist als eins, wurde eine abgedeckte oder eine aufgedeckte Fläche detektiert, und der gleiche Prozeß wird wiederholt, wobei diesmal jedoch die Fehler- Flags ignoriert werden. Das heißt, es werden Bewegungsvektorwerte benutzt, die unter Verwendung von zwei Eingangs-Vollbildern berechnet wurden. Theoretisch ist dies nur für aufgedeckte/abgedeckte Flächen erforderlich, obwohl in der Praxis Bildverbesserungen in allgemeineren Bereichen erreicht werden können.
- Wenn nach der Durchführung der beiden oben beschriebenen Tests der kleinste Bewegungsvektor-Ausgleich größer ist als zwei, wird der Bewegungsvektorwert auf Null gesetzt, und es wird ein Fehler-Flag für die Verwendung in dem Bewegungsvektor-Nachverarbeiter 7 (Fig. 1) gesetzt.
- Anhand von Fig. 38 bis 41 seien nun der Aufbau und die Wirkungsweise des Bewegungsvektorwählers 6 (Fig. 1), mit dem sich die vorliegende Erfindung insbesonderere, jedoch nicht ausschließlich, befaßt, näher beschrieben. Der gesamte Vektorauswahlprozeß erfolgt in den oben erwähnten beiden Stufen. Fig. 38 bzw. 39 entsprechen diesen beiden Stufen. Zur Vereinfachung der Hardware-Implementation wird der Vektorauswahlprozeß in diesem speziellen Ausführungsbeispiel einer Demultiplexierung in neun Stränge unterzogen, so daß die hier zu beschreibenden Schaltungsanordnungen neunmal vorgesehen sind, obwohl selbstverständlich auch andere Formen der Demultiplexierung möglich sind, um geeignete Arbeitsgeschwindigkeiten zu erreichen. Bei HDVS und "Neunweg"-Demultiplexierung müssen die zu beschreibenden Schaltungsanordnungen jeweils die Bewegungsvektoren für 115 Videozeilen erzeugen, da ein HDVS-Vollbild 1035 aktive Zeilen besitzt.
- Die Schaltungsanordnung von Fig. 38 für die Stufe 1 umfaßt einen Referenz-Leseadressengenerator 20, Adressenschiebeschaltungen 21 und 22, einen Abbildungsspeicher 23, Bildsegmentspeicher 24 bis 27, Wähler 28, 29 und 34, Blockausgleicher 30 und 31, Referenz- Abtastblockspeicher 32 und 33, einen Addierer 35, eine Minimum-Suchschaltung 36, eine automatische Schwellwertschaltung 37 und eine Schwellwerttestschaltung 38, die in der dargestellten Weise miteinander verbunden sind und deren Wirkungsweise im folgenden beschrieben wird.
- Zunächst wird aus jedem von vier aufeinanderfolgenden Eingangsvollbildern in den jeweiligen Bildsegmentspeichern 24 bis 27 ein entsprechendes Segment gewonnen. Um die geforderte Überlappung zu erreichen, umfaßt jedes Segment 256 Zeilen. In diesem speziellen Ausführungsbeispiel (andere Anordnungen sind möglich) wurde das ankommende HDVS vorverarbeitet, so daß ein Pixeltakt von 14,85 MHz verwendet werden kann. Bei 1125 Zeilen pro Vollbild, 2200 Abtastwerten pro Zeile und 60 Halbbildern pro Sekunde entspricht dies einem Fünftel der Normalfrequenz. Der Ausgang arbeitet mit einem Zehntel der Normalfrequenz, so daß in den ankommenden Vollbildern 2250 Zeilen vorhanden sind, obwohl nur 1035 Zeilen aktiv sind. Sobald alle Bildsegmentspeicher 24 bis 27 ihre 256 Zeilen gespeichert haben, beginnt die Verarbeitung der 115 zentralen Zeilen. Jedem Abtastblock werden von dem Bewegungsvektorreduzierer 5 (Fig. 1) vier Bewegungsspeicher zugeordnet, die in dem Abbildungsspeicher 23 gespeichert sind.
- Die Daten werden aus den Bildsegmentspeichern 24 bis 27 auf einer Abtastblock-für-Abtastblock-Basis ausgelesen. Das heißt, die erste Zeile eines Abtastblocks wird ausgelesen, darauffolgt die zweite Zeile usw. bis zur letzten Zeile. Dann wird die erste Zeile des nächsten Abtastblocks ausgelesen usw.. Um genügend Daten für den Blockausgleich zur Verfügung zu haben, werden 39 Pixel horizontal und 30 Zeilen vertikal ausgelesen, mit denen ein Abtastblock mit 32 Pixeln mal 23 Zeilen eine Blockausgleichgröße von bis zu 8 Pixeln mal 8 Zeilen ermöglicht.
- Da die Schaltungsanordnung von Fig. 30 nur einen kleinen Teil des ankommenden Videosignals verarbeitet, ist es möglich, jeden Abtastblock neunmal auszulesen, bevor die nächsten Vollbilddaten übernommen werden müssen, und so können bis zu neun Operationen ausgeführt werden. Um die einzelnen Operationen auf dem laufenden halten, wird ein Sequenzzählwert bis zu neun erzeugt und dem Abbildungsspeicher 23 sowie den Wählern 28 und 29 zugeführt. Im folgenden wird die Operation unter den Überschriften Sequenzzustände 1 bis 9 beschrieben.
- Der erste Abtastblock wird aus den Bildsegmentspeichern 24 bis 27 ausgelesen, wobei den Adressenschiebeschaltungen 21 und 22 eine Verschiebung Null zugeführt wird, die Wähler 28 und 29 jedoch nur Daten aus den Bildsegmentspeichern 25 bzw. 26 passieren lassen, die in den Referenz-Abtastblockspeichern 32 bzw. 33 zu speichern sind.
- Der Referenz-Abtastblockspeicher 32 wird ausgelesen, und die Daten werden den Blockausgleichern 30 und 31 sowie der automatischen Schwellwertschaltung 37 zugeführt. Gleichzeitig wird der erste Bewegungsvektor für den Abtastblock aus dem Abbildungsspeicher 23 ausgelesen, in geeigneter Weise skaliert und den Adressenschiebeschaltungen 21 und 22 zugeführt. Wenn der Bewegungsvektor den Wert x, y hatte, wird die Adresse aus der Adressenschiebeschaltung 21 so modifiziert, daß der Abtastblock x Pixel weiter nach links und y Zeilen weiter nach oben ausgelesen wird, während die Adresse aus der Adressenschiebeschaltung 22 so modifiziert wird, daß der Abtastblock x Pixel weiter nach rechts und y Pixel weiter nach unten ausgelesen wird. Die Wähler 28 und 29 werden so eingestellt, daß sie nur Daten aus den Bildsegmentspeichern 24 und 26 zu den Blockausgleichern 30 bzw. 31 passieren lassen.
- Die 4x4-Pixel-Blockausgleicher 30 und 31 erzeugen für die Abtastblöcke einen Blockausgleichwert. Die resultierenden Blockausgleichswerte werden in dem Addierer 35 kombiniert, und die Ergebnisse werden der Minimum-Suchschaltung 36 zugeführt.
- Das von den Blockausgleichern 30 und 31 gewonnene Ergebnis des Blockausgleichs ist für jedes individuelle Pixel in dem Abtastblock ein einziger Wert. Dieser Wert ist ein Maß dafür, wie gut der Luminanzwert dieses Pixels, wie es in dem Referenz-Abtastblockspeicher 32 oder 33 gespeichert ist, mit dem vorangehenden Vollbild und dem nachfolgenden Vollbild übereinstimmt, wenn unterstellt wurde, daß es sich mit der Geschwindigkeit bewegt, die der aus dem Abbildungsspeicher 23 ausgelesene Bewegungsvektorwert angibt.
- Der Referenz-Abtastblockspeicher 32 wird erneut ausgelesen, und die Daten werden den Blockausgleichern 30 und 31 zugeführt. Gleichzeitig wird der zweite Bewegungsvektor für den Abtastblock aus dem Abbildungsspeicher 23 ausgelesen, in geeigneter Weise skaliert und den Adressenschiebeschaltungen 21 und 22 zugeführt. Die Wähler 28 und 29 lassen immer noch nur Daten aus den Bildsegmentspeichern 24 und 26 zu den anderen Eingängen der Blockausgleicher 30 bzw. 31 passieren. Die Blockausgleichswerte die diesen zweiten Bewegungsvektor verwenden, werden wieder der Minimum-Suchschaltung 36 zugeführt.
- Die Minimum-Suchschaltung 36 führt Vergleiche aus, um den minimalen Pixelblock-Ausgleichswert zu ermitteln. Wenn der vorherige Zustandswert kleiner ist, wird er gehalten. Wenn jedoch der laufende Zustandswert kleiner ist, wird dieser gehalten. Zusätzlich wird die Zustandsnummer des Minimums gespeichert, um anzugeben, welcher Bewegungsvektor den besten Ausgleich geliefert hat. Dies geschieht getrennt für jedes Pixel in dem Abtastblock und für jeden der drei Busse, die zu der Minimum-Suchschaltung 36 führen.
- Der Referenz-Abtastblockspeicher 32 wird erneut ausgelesen, und die Daten werden den Blockausgleichern 30 und 31 zugeführt. Gleichzeitig wird der dritte Bewegungsvektor für den Abtastblock aus dem Abbildungsspeicher 23 ausgelesen, in geeigneter Weise skaliert und den Adressenschiebeschaltungen 21 und 22 zugeführt. Die Wähler 28 und 29 lassen immer noch nur Daten aus den Bildsegmentspeichern 24 und 26 zu den anderen Eingängen der Blockausgleicher 30 bzw. 31 passieren. Die Blockausgleichswerte, die diesen dritten Bewegungsvektor verwenden, werden wieder der Minimum-Suchschaltung 36 zugeführt.
- Die Minimum-Suchschaltung 36 führt weitere Vergleiche aus, um den minimalen Pixelblock-Ausgleichswert zu ermitteln. Falls der zuvor gespeicherte Wert der kleinste ist, wird er gehalten. Wenn der laufende Wert der kleinste ist, wird dieser gehalten. Die Statusnummer wird wieder gespeichert, um anzuzeigen, welcher Bewegungsvektor das Minimum erzeugt hat. Dies geschieht für jeden der drei Busse, die zu der Minimum-Suchschaltung 36 führen.
- Der Referenz-Abtastblockspeicher 32 wird erneut ausgelesen, und die Daten werden den Blockausgleichern 30 und 31 zugeführt. Gleichzeitig wird der vierte Bewegungsvektor für den Abtastblock aus dem Abbildungsspeicher 23 ausgelesen, in geeigneter Weise skaliert und den Adressenschiebeschaltungen 21 und 22 zugeführt. Die Wähler 28 und 29 lassen immer noch nur Daten aus den Bildsegmentspeichern 24 und 26 zu den anderen Eingängen der Blockausgleicher 30 bzw. 31 passieren. Die Blockausgleichswerte, die diesen vierten Bewegungsvektor verwenden, werden wieder der Minimum-Suchschaltung 36 zugeführt.
- Die Minimum-Suchschaltung 36 führt weitere Vergleiche aus, um den minimalen Pixelblock-Ausgleichswert zu ermitteln. Falls der zuvor gespeicherte Wert der kleinste ist, wird er gehalten. Wenn der laufende Wert der kleinste ist, wird dieser gehalten. Die Statusnummer wird wieder gespeichert, um anzuzeigen, welcher Bewegungsvektor das Minimum erzeugt hat. Dies geschieht für jeden der drei Busse, die zu der Minimum-Suchschaltung 36 führen.
- Wie zuvor wird diese Prozedur für jedes Pixel in dem Abtastblock ausgeführt, und es wird der Bewegungsvektor für jedes Pixel ausgewählt und in der Schwellwerttestschaltung 38 mit dem Wert verglichen, der (wie unten beschrieben) von der automatischen Schwellwertschaltung 37 für jedes Pixel in dem Abtastblock erzeugt wird. Wenn der von dem Addierer 35 zugeführte minimale Wert unter dem Schwellenwert liegt, wird unterstellt, daß der ausgewählte Bewegungsvektor, der durch die gespeicherte Zustandsnummer für den entsprechenden Bus gekennzeichnet wird, der korrekte Bewegungsvektor ist. Wenn er über dem Schwellenwert liegt, wird das Ergebnis des Vergleichs der Minimalwerte, die von den Blockausgleichern 30 und 31 ursprünglich geliefert wurden, individuell geprüft. Wenn der kleinere dieser beiden Werte unter dem Schwellenwert liegt, wird unterstellt, daß der ausgewählte Bewegungsvektor, der durch die gespeicherte Zustandsnummer für den entsprechenden Bus gekennzeichnet wird, der korrekte Bewegungsvektor ist. Wenn keiner unter dem Schwellenwert liegt, wird ein Fehlerflag gesetzt. Diese Ergebnisse, einschließlich der Fehlerflags, werden, wie unten beschrieben, in einem Vektornummernspeicher (Fig. 38) gespeichert.
- Nun wird der Referenz-Abtastspeicher 33 erneut ausgelesen, und die Daten werden den Blockausgleichern 30 und 31 sowie der automatischen Schwellwertschaltung 37 zugeführt. Gleichzeitig wird der erste Bewegungsvektor für den Abtastblock erneut aus dem Abbildungsspeicher 23 ausgelesen, in geeigneter Weise skaliert und den Adressenschiebeschaltungen 21 und 22 zugeführt. Die Wähler 28 und 29 lassen nun die Daten aus den Bildsegmentspeichern 25 und 27 zu den anderen Eingängen der Blockausgleicher 30 bzw. 31 passieren. Die von den Blockausgleichern 30 und 31 erzeugten Blockausgleichwerte werden direkt und über den Addierer 35 der Minimum-Suchschaltung 36 zugeführt und in de oben beschriebenen Weise gespeichert.
- Der Referenz-Abtastblock 33 wird erneut ausgelesen und die Daten werden den Blockausgleichem 30 und 31 zugeführt. Gleichzeitig wird der zweite Bewegungsvektor für den Abtastblock aus dem Abbildungsspeicher 23 ausgelesen, in geeigneter Weise skaliert und den Adressenschiebeschaltungen 21 und 22 zugeführt. Die Wähler 28 und 29 lassen immer noch nur Daten aus den Bildsegmentspeichern 25 und 27 zu den anderen Eingängen der Blockausgleicher 30 bzw. 31 passieren. Die Blockausgleichswerte, die diesen zweiten Bewegungsvektor verwenden, werden wieder der Minimum-Suchschaltung 36 zugeführt.
- Die Minimum-Suchschaltung 36 führt wieder Vergleiche aus, um den kleinsten Pixelblock- Ausgleichswert zu ermitteln. Wenn der vorhergehende Zustandswert kleiner ist, wird er gehalten, wenn jedoch der laufende Zustandswert kleiner ist, wird dieser gehalten. Zusätzlich wird die Zustandsnummer des Minimums gespeichert, um kennzeichnen, welcher Bewegungsvektor den besten Ausgleich geliefert hat. Dies geschieht getrennt für jedes Pixel in dem Abtastblock und für jeden der drei Busse, die zu der Minimum-Suchschaltung 36 führen.
- Der Referenz-Abtastblockspeicher 33 wird erneut ausgelesen, und die Daten werden den Blockausgleichern 30 und 31 sowie der automatischen Schwellwertschaltung 37 zugeführt. Gleichzeitig wird der dritte Bewegungsvektor für den Abtastblock aus dem Abbildungsspeicher 23 ausgelesen, in geeigneter Weise skaliert und den Additionsschaltungen 21 und 22 zugeführt. Die Wähler 28 und 29 lassen immer noch nur Daten aus dem Bildsegmentspeichern 25 und 27 passieren, und die Blockausgleichswerte, die den dritten Bewegungsvektor verwenden, werden wieder der Minimum-Suchschaltung zugeführt 36.
- Die Minimum-Suchschaltung 36 führt weitere Vergleiche durch, um den minimalen Pixel- Blockausgleichswert zu bestimmen. Wenn der zuvor gespeicherte Wert der kleinste ist, wird er gehalten, und wenn der laufende Wert der kleinste ist, wird dieser gehalten. Die Zustandsnummer wird wieder gespeichert, um anzuzeigen, welcher Bewegungsvektor das Minimum erzeugt hat. Dies geschieht für jeden der drei Busse, die zu der Minimum-Suchschaltung 36 führen.
- Der Referenz-Abtastblockspeicher 33 wird erneut ausgelesen, und die Daten werden den Blockausgleichern 30 und 31 zugeführt. Gleichzeitig wird der vierte Bewegungsvektor für den Abtastblock aus dem Abbildungsspeicher 23 ausgelesen, in geeigneter Weise skaliert und den Adressenschiebeschaltungen 21 und 22 zugeführt. Die Wähler lassen nur Daten aus den Bildsegmentspeichern 25 und 27 passieren, und die Blockausgleichswerte, die diesen vierten Bewegungsvektor verwenden, werden wieder der Minimum-Suchschaltung 36 zugeführt.
- Die Minimum-Suchschaltung 36 führt weitere Vergleiche durch, um den minimalen Pixel- Blockausgleichswert zu bestimmen. Wenn der zuvor gespeicherte Wert der kleinste ist, wird er gehalten, und wenn der laufende Wert der kleinste ist, wird dieser gehalten. Die Statusnummer wird wieder gespeichert, um anzuzeigen, welcher Bewegungsvektor das Minimum erzeugt hat. Dies geschieht für jeden der drei Busse, die zu der Minimum-Suchschaltung 36 führen.
- Wie zuvor wird diese Prozedur für jedes Pixel in dem Abtastblock ausgeführt, und es wird der Bewegungsvektor für jedes Pixel ausgewählt und in der Schwellwerttestschaltung 38 mit dem Wert verglichen, der (wie unten beschrieben) von der automatischen Schwellwertschaltung 37 für jedes Pixel in dem Abtastblock erzeugt wird. Wenn der von dem Addierer 35 zugeführte minimale Wert unter dem Schwellenwert liegt, wird unterstellt, daß der ausgewählte Bewegungsvektor, der durch die gespeicherte Zustandsnummer für den entsprechenden Bus gekennzeichnet wird, der korrekte Bewegungsvektor ist. Wenn er über dem Schwellenwert liegt, wird das Ergebnis des Vergleichs der Minimalwerte, die von den Blockausgleichern 30 und 31 ursprünglich geliefert wurden, individuell geprüft. Wenn der kleinere dieser beiden Werte unter dem Schwellenwert liegt, wird unterstellt, daß der ausgewählte Bewegungsvektor, der durch die gespeicherte Zustandsnummer für den entsprechenden Bus gekennzeichnet wird, der korrekte Bewegungsvektor ist. Wenn keiner unter dem Schwellenwert liegt, wird ein Fehlerflag gesetzt. Diese Ergebnisse, einschließlich der Fehlerflags, werden, wie unten beschrieben, in einem Vektornummernspeicher (Fig. 39) gespeichert.
- Die in Fig. 39 dargestellte Schaltungsanordnung für die Stufe 2 umfaßt einen Referenz-Leseadressengenerator 40, Leseadressengeneratoren 41 und 42 für das Vollbild 2 und das Vollbild 3, Vektornummernspeicher 43 und 44 mit jeweils vier Speichern, Abbildungsspeicher 45 und 48, Wähler 46 und 47, einen Blockausgleicher 49, einen Fehlerzähler 50, einen Blockausgleichs-Ergebnisspeicher 51 mit acht Speichern, eine Minimum-Suchschaltung 52 und einen Ausgangsspeicher mit wahlfreiem Zugriff (RAM) 53, die in der dargestellten Weise miteinander verbunden sind und deren Wirkungsweise im folgenden beschrieben wird.
- Zwei der Speicher in jedem der Vektornummernspeicher 43 und 44 werden über eine Vollbildperiode, wie oben beschrieben, mit Bewegungsvektoren der Stufe 1 bis 5 gefüllt, während die beiden anderen Speicher in jedem der Nummernspeicher 43 und 44, die die Bewegungsvektoren der Stufe 1 des vorhergehenden Vollbilds enthalten, ausgelesen werden.
- Die beiden Speicherpaare werden abwechselnd beschrieben und ausgelesen. Es ist ein Paar von Speichern erforderlich, weil die Stufe 2 der Bewegungsvektorauswahl den Zugriff auf die Bewegungsvektoren der Stufe 1 aus den Bildsegmenten unmittelbar über und unter dem Bildsegment erfordert, für das die endgültigen Bewegungsvektoren erzeugt werden sollen. Dies erfordert die neun Schaltungsanordnungen, die jeweils der Neunwege-Demultiplexierung entsprechen und die passend auf neun entsprechenden Schaltungsplatten 60 bis 68 montiert werden können, die in der in Fig. 40 dargestellten Weise miteinander verbunden sind. Jede der Schaltungsplatten 60 bis 68 faßt 256 Zeilen des Videosignals und verarbeitet fünf Reihen von Abtastblöcken, d. h. 115 Zeilen des Videosignals. Die verarbeiteten Zeilen sind in den entsprechenden Schaltungsplatten 60 bis 68 angegeben. Es sei noch einmal auf Fig. 39 zurückgegnffen. Während der eine aus dem Paar von Speichern in den Vektornummernspeichern 43 und 44 mit den Bewegungsvektoren der Stufe 1 aus dem ersten Teil des betreffenden Exemplars der Schaltungsplatten 60 bis 68 (Fig. 40) beschrieben wird, wird der andere Speicher zunächst von der Schaltungsplatte beschrieben, die das darüber liegende Bildsegment verarbeitet und dann von der Schaltungsplatte, die das Bildsegment darunter verarbeitet. Das Paar von Speichern wird jedoch ausgelesen, als ob es ein Speicher wäre.
- Die Bewegungsvektorwerte für jeden Abtastblock, die dem Abbildungsspeicher 23 (Fig. 38) zugeführt werden, werden um ein Vollbild verzögert und dann dem Abbildungsspeicher 45 zugeführt, dessen Funktion mit der des Abbildungsspeichers 23 übereinstimmt.
- Die Vektornummernspeicher 43 und 44 werden unter dem Steuereinfluß des Referenz-Leseadressengenerators 40 Absatzblock für Absatzblock ausgelesen. Wie in der Stufe 1 ist genügend Zeit vorhanden, um jeden Abtastblock neunmal auszulesen. Dies erlaubt weitere neun Sequenzzustände, in denen die folgenden Operationen ablaufen:
- Der erste Bewegungsvektorwert für den Abtastblock wird aus dem Abbildungsspeicher 45 ausgelesen und dem Leseadressengenerator 41 für das Vollbild 2 zugeführt, der eine Adressenschiebeschaltung darstellt, die den Adressenschiebeschaltungen 21 und 22 gleicht, obwohl der Bewegungsvektor in Abhängigkeit, ob eine Signalinterpolation niedrig oder hoch ist, mit Null oder -1/2 multipliziert wird. Wenn die Signalinterpolation niedrig ist, wird das Ausgangssignal in Übereinstimmung mit dem Referenz-Eingangsvollbild B erzeugt, wenn die Signalinterpolation hingegen hoch ist, wird das Ausgangssignal in der Mitte zwischen den Vollbildern 2 und 3 erzeugt.
- Der Wähler 47 wählt die Bewegungsvektornummern nur aus dem Vektornummernspeicher 43 und liefert sie an den Abbildungsspeicher 48, der die Bewegungsvektornummern auf dem Bewegungsvektorwert abbildet. Die Abbildungsspeicher 48 und 45 sind einander ähnlich. Der Bewegungsvektorwert aus dem Abbildungsspeicher 48 wird dem Blockausgleicher 49 zugeführt.
- Der 3x3-Bewegungsvektor-Blockausgleich erfolgt unter Berücksichtigung der Bewegungsvektorwerte aus dem Abbildungsspeicher 45. Die Vektornummernspeicher 43 und 44 enthalten auch das Fehlerflag aus der Stufe 1, und das Fehierflag wird auch von dem Wähler 47 ausgewählt und über den Abbildungsspeicher 48 zu dem Fehlerzähler 50 sowie zu dem Blockausgleicher 49 weitergeleitet. Wenn ein Fehlerflag gesetzt ist, wird die in dem Bewegungsvektor-Blockausgleich erzeugte Bewegungsvektordifferenz auf Null gesetzt. Der Fehlerzähler 50 bestimmt, wie viele gute Bewegungsvektordifferenzen zur Erzeugung des Bewegungsvektor-Blockausgleichs verwendet wurden. Das Ergebnis wird dann dazu benutzt, das Ausgangssignal des Bewegungsvektor-Blockausgleichs entsprechend zu skalieren, und das Ergebnis wird in dem Blockausgleich-Ergebnisspeicher 51 gespeichert.
- Der zweite Bewegungsvektorwert für den Abtastblock wird aus dem Abbildungsspeicher 45 ausgelesen und dem Leseadressengenerator 41 für das Vollbild 2 zugeführt. Der Vektor 47 wählt Bewegungsvektoren, die von dem Abbildungsspeicher 48 abzubilden und dem Blockausgleicher 49 zuzuführen sind, nur aus dem Vektornummernspeicher 43 aus. Der Bewegungsvektor-Blockausgleich erfolgt unter Berücksichtigung der Bewegungsvektorwerte aus dem Abbildungsspeicher 45. Das Fehlerflag aus dem Vektornummernspeicher 43 wird von dem Wähler 47 gewählt und über den Abbildungsspeicher 48 dem Fehlerzähler 50 sowie dem Blockausgleicher 49 zugeführt. Der von dem Blockausgleicher 49 erzeugte skalierte Bewegungsvektor-Blockausgleich wird ebenfalls in dem Blockausgleich-Ergebnisspeicher 51 gespeichert.
- Der dritte Bewegungsvektor wird aus dem Abbildungsspeicher 45 ausgelesen und dem Leseadressengenerator 41 für das Vollbild 2 zugeführt. Der Vektor 47 wählt Bewegungsvektoren, die von dem Abbildungsspeicher 48 abzubilden und dem Blockausgleicher 49 zuzuführen sind, nur aus dem Vektornummernspeicher 43 aus. Der Bewegungsvektor-Blockausgleich erfolgt unter Berücksichtigung der Bewegungsvektorwerte aus dem Abbildungsspeicher 45. Das Fehlerflag aus dem Vektornummernspeicher 43 wird von dem Wähler 47 gewählt und über den Abbildungsspeicher 48 dem Fehlerzähler 50 sowie dem Blockausgleicher 49 zugeführt. Der von dem Blockausgleicher 49 erzeugte skalierte Bewegungsvektor-Blockausgleich wird ebenfalls in dem Blockausgleich-Ergebnisspeicher 51 gespeichert.
- Der vierte Bewegungsvektorwert wird aus dem Abbildungsspeicher 45 ausgelesen und dem Leseadressengenerator 41 für das Vollbild 2 zugeführt. Der Vektor 47 wählt Bewegungsvektoren, die von dem Abbildungsspeicher 48 abzubilden und dem Blockausgleicher 49 zuzuführen sind, nur aus dem Vektornummernspeicher 43 aus. Der Bewegungsvektor- Blockausgleich erfolgt unter Berücksichtigung der Bewegungsvektorwerte aus dem Abbildungsspeicher 45. Das Fehlerflag aus dem Vektornummernspeicher 43 wird von dem Wähler 47 gewählt und über den Abbildungsspeicher 48 dem Fehlerzähler 50 sowie dem Blockausgleicher 49 zugeführt. Der von dem Blockausgleicher 49 erzeugte skalierte Bewegungsvektor-Blockausgleich wird ebenfalls in dem Blockausgleich-Ergebnisspeicher 51 gespeichert.
- Der erste Bewegungsvektor für den Abtastblock wird erneut aus dem Abbildungsspeicher 45 ausgelesen und dem Leseadressengenerator 42 für das Vollbild 3 zugeführt, indem der Bewegungsvektorwert in Abhängigkeit davon, ob die Signalinterpolation niedrig oder hoch ist, mit 1 bzw. 1/2 multipliziert.
- Der Wähler 47 wählt nun Bewegungsvektornummern, die von dem Abbildungsspeicher 48 abzubilden und dem Blockausgleicher 49 zuzuführen sind, ausschließlich aus dem Vektornummernspeicher 44. Der 3x3-Bewegungsvektor-Blockausgleich erfolgt im Hinblick auf die Bewegungsvektorwerte aus dem Abbildungsspeicher 45. Der Wähler 47 wählt das Fehlerflag aus dem Vektornummernspeicher 44 aus und führt es über den Abbildungsspeicher 48 dem Fehlerzähler 50 sowie dem Blockausgleicher 49 zu. Der von dem Blockausgleicher 49 erzeugte skalierte Bewegungsvektor-Blockausgleich wird wieder in dem Blockausgleich-Ergebnisspeicher 51 gespeichert.
- Der zweite Bewegungsvektorwert für den Abtastblock wird erneut aus dem Abbildungsspeicher 45 ausgelesen und dem Leseadressengenerator 42 für das Vollbild 3 zugeführt. Der Wähler 47 wählt Bewegungsvektornummern, die von dem Abbildungsspeicher 48 abzubilden und dem Blockausgleicher 49 zuzuführen sind, immer noch ausschließlich aus dem Bewegungsvektorspeicher 44. Der Bewegungsvektor-Blockausgleich erfolgt unter Berücksichtigung der Bewegungsvektorwerte aus dem Abbildungsspeicher 45. Das Fehlerflag aus dem Vektornummernspeicher 44 wird von dem Wähler 47 ausgewählt und über den Abbildungsspeicher 48 dem Fehlerzähler 50 sowie dem Blockausgleicher 49 zugeführt. Der von dem Blockausgleicher 49 erzeugte skalierte Bewegungsvektor-Blockausgleich wird ebenfalls in dem Blockausgleich-Ergebnisspeicher 51 gespeichert.
- Der dritte Bewegungsvektor für den Abtastblock wird erneut aus dem Abbildungsspeicher 45 ausgelesen und dem Leseadressengenerator 42 für das Vollbild 3 zugeführt. Der Wähler 47 wählt Bewegungsvektornummern, die von dem Abbildungsspei.cher 48 abzubilden und dem Blockausgleicher 49 zuzuführen sind, immer noch ausschließlich aus dem Bewegungsvektorspeicher 44. Der Bewegungsvektor-Blockausgleich erfolgt unter Berücksichtigung der Bewegungsvektorwerte aus dem Abbildungsspeicher 45. Das Fehlerflag aus dem Vektornummernspeicher 44 wird von dem Wähler 47 ausgewählt und über den Abbildungsspeicher 48 dem Fehlerzähler 50 sowie dem Blockausgleicher 49 zugeführt. Der von dem Blockausgleicher 49 erzeugte skalierte Bewegungsvektor-Blockausgleich wird ebenfalls in dem Blockausgleich-Ergebnisspeicher 51 gespeichert.
- Der vierte Bewegungsvektor für den Abtastblock wird erneut aus dem Abbildungsspeicher 45 ausgelesen und dem Leseadressengenerator 42 für das Vollbild 3 zugeführt. Der Wähler 47 wählt Bewegungsvektornummern, die von dem Abbildungsspeicher 48 abzubilden und dem Blockausgleicher 49 zuzuführen sind, immer noch ausschließlich aus dem Bewegungsvektorspeicher 44. Der Bewegungsvektor-Blockausgleich erfolgt unter Berücksichtigung der Bewegungsvektorwerte aus dem Abbildungsspeicher 45. Das Fehlerflag aus dem Vektornummernspeicher 44 wird von dem Wähler 47 ausgewählt und über den Abbildungsspeicher 48 dem Fehlerzähler 50 sowie dem Blockausgleicher 49 zugeführt. Der von dem Blockausgleicher 49 erzeugte skalierte Bewegungsvektor-Blockausgleich wird ebenfalls in dem Blockausgleich-Ergebnisspeicher 51 gespeichert.
- In diesem Zeitpunkt findet keine Aktion statt.
- Der Abschluß der Stufe 2 läuft dann folgendermaßen ab: Der Blockausgleich-Ergebnisspeicher 51 umfaßt zwei RAMs, so daß in einem von diesen in der oben beschriebenen Weise eingespeichert wird, während der andere, der die Ergebnisse für den vorherigen Abtastblock enthält, ausgelesen werden kann. Die acht in der oben beschriebenen Weise für jedes Pixel des Abtastblocks erzeugten Bewegungsvektorwerte werden nacheinander in die Minimum-Suchschaltung 52 ausgelesen, die das Minimum unter den acht ermittelt.
- Wenn der Minimalwert aus den ersten vier Werten gewählt wird, ist es möglich, daß die Interpolation nur das Vollbild 2 benutzen sollte, um die Ergebnisse zu erzeugen. Dies könnte für abgedeckte Flächen in dem Bild der Fall sein. Wenn der Minimalwert aus den zweiten vier Werten gewählt wird, ist es möglich, daß die Interpolation nur das Bewegungsvektor 3 benutzen sollte, um die Ergebnisse zu erzeugen. Dies könnte für aufgedeckte Flächen in dem Bild der Fall sein.
- In der Minimum-Suchschaltung 52 werden die ersten vier Werte um vier Abtastproben verzögert. Durch das Addieren dieser verzögerten Werte zu den zweiten vier Werten und Dividieren durch zwei werden vier Vektorblockausgleichsergebnisse erzeugt, für deren Gewinnung alle vier Eingangsvollbilder benutzt wurden. Das Minimum dieser vier Werte zeigt deshalb am genauesten an, welcher Bewegungsvektor aus der Auswahl der vier Repräsentanten die Bewegung des betrachteten einzelnen Pixels repräsentiert.
- Wenn der minimale Vektorblockausgleich, der durch dieses kombinierte Ergebnis erzeugt wird, jedoch über einem voreingestellten Schwellenwert liegt, wurde aus irgend einem Grund die Bewegung über die Sequenz der vier Eingangsvollbilder nicht gleich geschätzt. Ein Grund hierfür kann in abgedeckten und aufgedeckten Flächen in dem Bild oder in einem Schnitt von einer Szene zu einer anderen Szene bestehen. Wenn das erste Minimum, das aus den ursprünglichen acht Werten ermittelt wurde, in diesem Fall unter dem Schwellenwert liegt, kann man in der oben beschriebenen Weise die Angabe darüber gewinnen, ob das Pixel ein aufgedecktes oder ein abgedecktes Pixel ist.
- Wenn keiner der in der Minimum-Suchschaltung 52 ermittelten Minimalwerte unter dem Schwellenwert liegt, ist eine genaue Schätzung für das Pixel nicht möglich. In diesem Fall hat der gewählte Bewegungsvektor den Wert Null und es wird Fehlerflag gesetzt.
- Die automatische Schwellenwertschaltung 37 (Fig. 38) sei nun anhand von Fig. 41 näher beschrieben. Die Schaltungsanordnung umfaßt Verzögerungsleitungen 70, 72 und 80, Subtrahierer 71 und 76, Addierer 73, 78, 79, 81 und 83, Pixelverzögerungen 74, 75, 77 und 82 und einen Multiplizierer 84, die in der dargestellten Weise miteinander verbunden sind und deren Funktion im folgenden beschrieben wird.
- Wenn der Referenz-Abtastblock empfangen wird, wird er in der Zeilenverzögerung 70 um genau eine Abtastblockzeile verzögert. Der Modulus der Differenz zwischen den verzögerten und den nicht verzögerten Daten wird von dem Subtrahierer 71 erzeugt, dessen Ausgangssignal in der Zeilenverzögerung 72 weiter um eine Abtastblockzeile verzögert und in dem Addierer 73 zu dem direkten Ausgangssignal des Subtrahierers 71 addiert. Das Ausgangssignal des Addierers 73 ist ein Maß für die vertikale Frequenz/Amplitude um das Pixel am Ausgang der Zeilenverzögerung 70. In ähnlicher Weise repräsentiert der verzögerte Pixelwert am Ausgang der Pixelverzögerung 75 die vertikale Frequenz/Amplitude des Pixeis am Ausgang der Pixelverzögerung 74.
- Der Subtrahierer 76 bestimmt den Modulus der Differenz zwischen dem Ausgangssignal der Pixelverzögerung 74 und dem Ausgangssignal der Zeilenverzögerung 70. Das Ausgangssignal des Subtrahierers 76 wird von der Pixelverzögerung 77 verzögert und deren Ausgangssignal dann in dem Addierer 78 zu dem Ausgangssignal des Subtrahierers 76 addiert. Das Ausgangssignal des Addierers 78 ist dann ein Maß für die horizontale Frequenz/- Amplitude um das Pixel am Ausgang der Pixelverzögerung 74.
- Durch das Kombinieren des Ausgangssignals des Addierers 78 mit dem Ausgangssignal der Pixelverzögerung 75 in dem Addierer 79 wird ein Wert erzeugt, der den Frequenzlamplitudengehalt des Pixels am Ausgang der Pixelverzögerung 74 sowohl in horizontaler als auch in vertikaler Richtung repräsentiert.
- Der Wert wird dann in der Abtastblock-Zeilenverzögerung 80 weiter verzögert und in dem Addierer 81 zu dem nicht verzögerten Wert addiert. Das Ausgangssignal des Addierers 81 wird in der Pixelverzögerung 82 verzögert und in dem Addierer 83 zu dem nicht verzögerten Wert addiert. Der resultierende Wert gleicht demjenigen am Ausgang des Addierers 79, repräsentiert jedoch die mittlere vertikale/horizontale Frequenz/Amplitude einer kleinen Fläche des ankommenden Abtastblocks. Für jedes Pixel in dem Abtastblock wird ein separater Wert erzeugt. Durch geeignete Skalierung bildet das Ausgangssignal des Multiplizierers 84 die geforderten automatischen Schwellenwerte, die dem oben beschriebenen Schwellenwerttester 38 (Fig. 38) zugeführt werden.
- Im Anschluß an die Bewegungsvektorauswahl bleiben in einer realen Bildsituation fast mit Sicherheit bestimmte Pixel übrig, denen noch störende Bewegungsvektoren zugeordnet.
- Anhand von Fig. 42 bis 47 wird erlätert, was unter störenden Bewegungsvektoren zu verstehen ist. In jeder dieser Figuren stellen die Dreiecke Pixel dar, denen der gleiche Bewegungsvektor zugeordnet ist, während die Sterne Pixel darstellen, denen andere Bewegungsvektoren zugeordnet sind als den umgebenden Pixeln. Die Kreise kennzeichnen den Bewegungsvektor, der gerade geprüft wird.
- Fig. 42 zeigt eine Punktsingularität, an der ein einzelnes Pixel einen Bewegungsvektor besitzt, der von den Bewegungsvektoren aller umgebenden Pixel abweicht.
- Fig. 43 zeigt einen horizontalen Bewegungsvektorimpuls, wobei drei horizontal fluchtende Pixel einen Bewegungsvektor haben, der sich von den Bewegungsvektoren der umgebenden Pixel unterscheidet.
- Fig. 44 zeigt einen vertikalen Bewegungsvektorimpuls, wobei drei vertikal fluchtende Pixel einen Bewegungsvektor haben, der sich von den Bewegungsvektoren der umgebenden Pixel unterscheidet.
- Fig. 45 zeigt einen diagonalen Bewegungsvektorimpuls, wobei drei diagonal fluchtende Pixel einen Bewegungsvektor haben, der sich von den Bewegungsvektoren der umgebenden Pixel unterscheidet.
- Fig. 46 zeigt einen horizontalen und zusätzlich einen vertikalen Bewegungsvektorimpuls, wobei fünf in einem aufrechten Kreuz angeordnete Pixel einen Bewegungsvektor haben, der sich von den Bewegungsvektoren der umgebenden Pixel unterscheidet.
- Fig. 47 zeigt einen aus zwei Diagonalen bestehenden Bewegungsvektorimpuls, wobei fünf in einem diagonalen Kreuz angeordnete Pixel einen Bewegungsvektor haben, der sich von den Bewegungsvektoren der umgebenden Pixel unterscheidet.
- Es sei angenommen, daß Pixel-Bewegungsvektoren, die unter eine der obigen sechs Kategorien fallen, nicht wirklich zu einem realen Bild gehören und direktes Resultat einer nicht korrekten Bewegungsvektorauswahl sind. Wenn solche Bewegungsvektoren beim Interpolationsprozeß verwendet werden, erzeugen sie wahrscheinlich Punkte in dem endgültigen Ausgangsbild. Es ist deshalb empfehlenswert, daß solche Bewegungsvektoren identifiziert und eliminiert werden. Dies geschieht mit Hilfe eines Algorithmus, der alle oben genannten Bewegungsvektor-Gruppierungen detektiert und kennzeichnet.
- Dieser Algorithmus benutzt einen Prozeß, der aus zwei identischen Schritten besteht. Die Notwendigkeit, zwei Schritte zu verwenden, wird im folgenden erläutert. Fig. 48, auf die hier Bezug genommen wird, zeigt ein Array von Pixeln. Allen Pixeln, die mit einem Dreieck markiert sind, ist der gleiche Bewegungsvektor zugeordnet. Dem Block von neun Pixeln im Zentrum sind mit "Vektor 1" bis "Vektor 9" bezeichnete Bewegungsvektoren zugeordnet, die gleich sein können oder nicht. Der Vektor 5 ist der getestete Bewegungsvektor.
- In dem ersten Schritt wird der Vektor 5 geprüft, um festzustellen, ob er der gleiche ist oder innerhalb eines vorbestimmten Toleranzbereichs liegt. Der Vergleich bezieht sich
- erstens auf Vektor 1 oder Vektor 3 oder Vektor 7 oder Vektor 9 und
- zweitens auf Vektor 2 oder Vektor 4 oder Vektor 6 oder Vektor 8.
- Diese Prüfung dient dazu, festzustellen, ob der Vektor 5 der gleiche ist wie wenigstens einer seiner horizontalen oder vertikalen Nachbarn und der gleiche wie wenigstens einer seiner diagonalen Nachbarn. Wenn dies nicht der Fall ist, wird ein Flag gesetzt, um anzuzeigen, daß das Pixel 5 "schlecht" ist.
- Der erste Schritt kennzeichnet diejenigen Bewegungsvektoren als "schlecht", die sich auf Punktsingularitäten, auf horizontale Bewegungsvektorimpulse, vertikale Bewegungsvektorimpulse, diagonale Bewegungsvektorimpulse und Bewegungsvektorimpulse in zweidiagonalen Richtungen (Fig. 42 bis 45 und 47) beziehen. Die Bewegungsvektoren, die horizontalen und zusätzlich vertikalen Bewegungsvektorimpulsen entsprechen (Fig. 46) sind nicht betroffen. Für diese ist der Schritt 2 erforderlich. Der zweite Schritt prüft auf exakt die gleichen Bedingungen wie der erste Schritt, in diesem Fall sind jedoch Bewegungsvektoren, die bereits als schlecht gekennzeichnet sind, nicht in die Berechnung einbezogen. Nachdem der erste Schritt nur den zentralen Bewegungsvektor als schlecht gekennzeichnet hat (Fig. 46), werden anschließend in dem zweiten Schritt alle fünf Bewegungsvektoren, die in dem aufrecht stehenden Kreuz angeordnet sind, als schlecht gekennzeichnet.
- Nach der Identifizierung der schlechten Bewegungsvektoren müssen diese dann "repariert" werden. Auch dies wird von dem Bewegungsvektor-Nachverarbeiter 7 (Fig. 1) ausgeführt. Obwohl verschiedene Methoden, wie Interpolation oder Majoritätsersatz verwendet werden können, hat sich herausgestellt, daß in der Praxis ein einfacher Ersatz gute Resultate liefert. Dies wird folgendermaßen durchgeführt (und es sollte beachtet werden, daß die "Gleichheitszeichen"-Zeichen nicht nur exakte Gleichheit bedeuten, sondern auch innerhalb eines vorbestimmten Toleranzbereichs der betreffenden Größe liegende Werte bezeichnen können).
- Wenn der Vektor 5 als schlecht gekennzeichnet ist, wird er ersetzt
- durch Vektor 4, wenn (Vektor 4 gleich Vektor 6),
- andernfalls durch Vektor 2, wenn (Vektor 2 gleich Vektor 8),
- andernfalls durch Vektor 1, wenn (Vektor 1 gleich Vektor 9),
- andernfalls durch Vektor 3, wenn (Vektor 3 gleich Vektor 7),
- andernfalls wird nichts unternommen.
- Es sei noch einmal auf Fig. 1 Bezug genommen. Der schließlich für jedes Pixel ausgewählte Bewegungsvektor wird von dem Bewegungsvektor-Nachverarbeiter 7 zusammen mit den in progressiver Abtastung umgewandelten Vollbildern mit 60 Vollbilder pro Sekunden aus dem progressive Abtastwandler 2 dem Interpolator 8 zugeführt. Der Interpolator 8 ist relativ einfach aufgebaut und benutzt nur zwei umgewandelte Vollbilder mit progressiver Abtastung, wie dies in Fig. 49 dargestellt ist. Unter Verwendung der zeitlichen Position des Ausgangs-Vollbilds relativ zu aufeinanderfolgenden Eingangs-Vollbildern, dem Vollbild 1 und dem Vollbild 2, und dem Bewegungsvektor für das Pixel in dem Ausgangs-Vollbild bestimmt der Interpolator 8 in bekannter Weise, welcher Teil des ersten Vollbilds mit welchem Teil des zweiten Vollbild kombiniert werden soll und mit welchem Wert gewichtet werden soll, um den korrekten Ausgangspixelwert zu erzeugen. Mit anderen Worten, der Interpolator 8 interpoliert adaptiv entlang der Bewegungsrichtung in Abhängigkeit von den Bewegungsvektoren, um bewegungskompensierte Vollbilder mit progressiver Abtastung zu erzeugen, die 24 Vollbildern pro Sekunde entsprechen. Obwohl die Bewegungsvektoren unter Verwendung ausschließlich der Luminanzwerte der Pixel abgeleitet wurden, werden die gleichen Bewegungsvektoren zur Ableitung der erforderlichen Ausgangspixel-Chrominanzwerte verwendet. Aus jedem Vollbiid wird ein 8x8-Array von Pixeln zur Erzeugung des benätigten Ausgangssignals verwendet. Der Interpolator 8 ist also ein zweidimensionaler Vertikal/Horizontal-Interpolator, und die für den Interpolator 8 benutzten Koeffizienten können unter Verwendung des Remez-Austauschalgorithmus abgeleitet werden, der in der Literaturstelle "Theory and application of digital signal processing", Lawrence R Rabiner, Bernard Gold, Prentice-Hall Inc., Seiten 132 bis 139 und 227, erläutert ist.
- Fig. 49 zeigt schematisch die von dem Interpolator 8 (Fig. 1) für drei verschiedene Fälle durchgeführte Interpolationen. Der erste Fall, der links dargestellt ist, bezieht sich auf eine Situation, in der keine aufgedeckten oder abgedeckten Flächen vorhanden sind, der zweite Fall, der in der Mitte dargestellt ist, auf die Situation, in der eine abgedeckte Fläche vorhanden ist, und der dritte Fall, der rechts dargestellt ist, auf die Situation, in der eine ungedeckte Fläche vorhanden ist. Im Fall einer abgedeckten Fläche benutzt die Interpolation nur das Voilbild 1, während im Fall einer ungedeckten Fläche bei der Interpolation nur das Vollbild 2 benutzt wird.
- Der Interpolator 8 kann so ausgebildet sein, daß als Vorgabe eine bewegungslose kompensierte Interpolation vorgenommen wird. In diesem Fall wird das zeitlich am nächsten liegende, in progressiver Abtastung umgewandelte Vollbild benutzt.
- Die vorliegende Anmeldung wurde am gleichen Tag eingereicht wie unsere europäischen Anmeldungen EP-A-0 395 264, EP-A-0 395 265, EP-A-0 395 266, EP-A-0 39,5 267, EP-A- 395 268, EP-A-0 395 269, EP-A-0 395 270, EP-A-0 395 271, EP-A-0 395 272, EP-A-0 395 273, EP-A-0 395 274, EP-A-0 395 275 und EP-A-0 395 276 und betrifft ähnliche Gegenstände wie diese.
Claims (10)
1. Bewegungskompensierter Videc-Normenwandler mit
Mitteln (3) zum Vergleichen von Suchblöcken (SB) in einem ersten Halbbild oder Vollbild
eines Videosignals mit einer Mehrzahl von Blöcken in einem Suchareal (SA) des folgenden
Halbbilds oder Vollbilds des Videosignals,
Mitteln (4) zum Ableiten einer Mehrzahl von Bewegungsvektoren für jeden Suchblock
(SB), die die Bewegung des Inhalts des Suchblocks zwischen dem ersten Halbbild oder
Vollbild und dem folgenden Halbbild oder Vollbild repräsentieren, und
Mitteln (5, 6) zum Ableiten eines einzelnen Bewegungsvektors aus der Mehrzahl von
Bewegungsvektoren für jedes Pixel in jedem Suchblock (SB) jedes Eingangshalbbilds oder
-vollbilds, wobei dieser einzelne Bewegungsvektor auf diejenigen Pixel in den vorhergehenden
und folgenden Eingangshalbbildern und -vollbildern zeigt, die mit dem Pixel in dem
Suchblock (SB) den besten Luminanzausgleich aufweisen, wie er durch eine Funktion von
Luminanzdifferenzen zwischen ihnen bestimmt ist,
gekennzeichnet durch
Mittel (37, 38) zum Prüfen des genannten Luminanzausgleichs im Hinblick auf einen
Schwellwert, der in Abhängigkeit von dem lokalen Frequenzgehalt des dem Videosignal
entsprechenden Bilds bestimmt wird, wobei der Luminanzausgleich als schlechter
Ausgleich spezifiziert wird, wenn die genannte Funktion über dem Schwellwert liegt.
2. Wandler nach Anspruch 1, bei dem der Schwellwert halb so groß ist wie die maximale
horizontale oder vertikale Pixel-Luminanzdifferenz um das getestete Pixel.
3. Wandler nach Anspruch 2, bei dem der Schwellwert gleich dem Mittelwert der
Schwellwerte jedes der vier zentralen Pixel eines 4x4-Pixelblocks ist.
4. Wandler nach Anspruch 1, 2 oder 3 mit Mitteln (6) zum Ableiten jeweils eines
Bewegungsvektors für jedes Pixel in jedem aus der Mehrzahl von Blöcken jedes
Ausgangshalbbilds oder -vollbilds durch Vergleichen der auf diese Weise abgeleiteten
Bewegungsvektoren für die beiden Eingangshalbbilder oder -vollbilder, die dem genannten Ausgangshalbbild
oder -vollbild zeitlich am nächsten liegen.
5. Wandler nach einem der vorhergehenden Ansprüche, bei dem das Vergleichen von
Blöcken durchgeführt wird, indem die Summen der Luminanzpegel der Pixel in den jeweils
zu vergleichenden Blöcken miteinander verglichen werden.
6. Verfahren zum Ableiten von Bewegungsvektoren, die die Bewegung zwischen
aufeinanderfolgenden Halbbildern oder Vollbildern eines Videosignals repräsentieren,
mit folgenden Verfahrensschritten:
Vergleichen von Suchblöcken (SB) in einem ersten Halbbild oder Vollbild des Videosignals
mit einer Mehrzahl von Blöcken in einem Suchareal (SA) des folgenden Halbbilds oder
Vollbilds des Videosignals,
Ableiten einer Mehrzahl von Bewegungsvektoren für jeden Suchblock (SB), die die
Bewegung des Inhalts des Suchblocks zwischen dem ersten Halbbild oder Vollbild und dem
folgenden Halbbild oder Vollbild repräsentieren, und
Ableiten eines einzelnen Bewegungsvektors aus der Mehrzahl von Bewegungsvektoren
für jedes Pixel in dem Suchblock (SB) jedes Eingangshalbbilds oder -vollbilds, wobei dieser
einzelne Bewegungsvektor auf diejenigen Pixel in den vorhergehenden und folgenden
Eingangshalbbildern und -vollbildern zeigt, die mit dem Pixel in dem Suchblock (SB) den besten
Luminanzausgleich aufweisen, wie er durch eine Funktion von Luminanzdifferenzen
zwischen ihnen bestimmt ist,
gekennzeichnet durch
das Prüfen des genannten Luminanzausgleichs im Hinblick auf einen Schwellwert, der in
Abhängigkeit von dem lokalen Frequenzgehalt des dem Videosignal entsprechenden Bilds
bestimmt wird, wobei der Luminanzausgleich als schlechter Ausgleich spezifiziert wird,
wenn die genannte Funktion über dem Schwellwert liegt.
7. Verfahren nach Anspruch 6, bei dem der Schwellwert halb so groß ist wie die maximale
horizontale oder vertikale Pixel-Luminanzdifferenz um das getestete Pixel.
8. Verfahren nach Anspruch 7, bei dem der Schwellwert gleich dem Mittelwert der
Schwellwerte jedes der vier zentralen Pixel eines 4x4-Pixelblocks ist.
9. Verfahren nach Anspruch 6, 7 oder 8, mit dem weiteren Verfahrensschritt zum Ableiten
jeweils eines Bewegungsvektors für jedes Pixel in jedem aus der Mehrzahl von Blöcken
jedes Ausgangshalbbilds oder -vollbilds durch Vergleichen der auf diese Weise abgeleiteten
Bewegungsvektoren für die beiden Eingangshalbbilder oder -vollbilder, die dem genannten
Ausgangshalbbild oder -vollbild zeitlich am nächsten liegen.
10. Verfahren nach einem der Ansprüche 6 bis 9, bei dem das Vergleichen von Blöcken
durchgeführt wird, indem die Summen der Luminanzpegel der Pixel in den jeweils zu
vergleichenden Blöcken miteinander verglichen werden.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB8909643A GB2231225B (en) | 1989-04-27 | 1989-04-27 | Motion dependent video signal processing |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69028792D1 DE69028792D1 (de) | 1996-11-14 |
| DE69028792T2 true DE69028792T2 (de) | 1997-02-20 |
Family
ID=10655815
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69028792T Expired - Lifetime DE69028792T2 (de) | 1989-04-27 | 1990-04-11 | Bewegungsabhängige Videosignalverarbeitung |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4998168A (de) |
| EP (1) | EP0395263B1 (de) |
| JP (1) | JPH02290383A (de) |
| DE (1) | DE69028792T2 (de) |
| GB (1) | GB2231225B (de) |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE69123359T3 (de) * | 1990-09-20 | 2000-06-08 | British Broadcasting Corp., London | Videobildverarbeitung |
| FI930280L (fi) * | 1991-05-24 | 1993-01-22 | British Broadcasting Corp | Behandling av en videobild |
| DE69229146T2 (de) * | 1991-06-25 | 1999-10-28 | Canon K.K., Tokio/Tokyo | Verfahren und Vorrichtung zur Detektion eines Bewegungsvektors sowie Kodierungsverfahren und Vorrichtung zur Anwendung eines solchen Verfahrens und Vorrichtung |
| USRE39276E1 (en) * | 1991-11-08 | 2006-09-12 | Matsushita Electric Industrial Co., Ltd. | Method for determining motion compensation |
| US5369449A (en) * | 1991-11-08 | 1994-11-29 | Matsushita Electric Industrial Co., Ltd. | Method for predicting move compensation |
| USRE39279E1 (en) * | 1991-11-08 | 2006-09-12 | Matsushita Electric Industrial Co., Ltd. | Method for determining motion compensation |
| GB2266023B (en) * | 1992-03-31 | 1995-09-06 | Sony Broadcast & Communication | Motion dependent video signal processing |
| JP2636674B2 (ja) * | 1993-05-25 | 1997-07-30 | 日本電気株式会社 | 動画像の動きベクトル検出装置 |
| EP0697788A3 (de) | 1994-08-19 | 1997-03-26 | Eastman Kodak Co | Adaptive und für globale Bewegung kompensierte Aufhebung des Zeilensprungverfahrens von aufeinenanderfolgenden Videobildern mit Nachbearbeitung |
| JP3500751B2 (ja) * | 1995-01-20 | 2004-02-23 | ソニー株式会社 | 画像信号処理装置及び撮像装置 |
| JP3688377B2 (ja) * | 1996-01-31 | 2005-08-24 | 富士通株式会社 | 画像特徴追跡装置及び画像特徴追跡方法 |
| US6184899B1 (en) | 1997-03-31 | 2001-02-06 | Treyarch Invention, L.L.C. | Articulated figure animation using virtual actuators to simulate solutions for differential equations to display more realistic movements |
| US7098957B2 (en) * | 2000-12-20 | 2006-08-29 | Samsung Electronics Co., Ltd. | Method and apparatus for detecting repetitive motion in an interlaced video sequence apparatus for processing interlaced video signals |
| KR20040047963A (ko) * | 2001-10-25 | 2004-06-05 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 움직임 예측 유닛 및 방법 및 이러한 움직임 예측 유닛을구비하는 이미지 처리 장치 |
| CN1266947C (zh) * | 2001-12-25 | 2006-07-26 | 松下电器产业株式会社 | 活动图象压缩编码装置及运动矢量检测方法 |
| US20050105621A1 (en) * | 2003-11-04 | 2005-05-19 | Ju Chi-Cheng | Apparatus capable of performing both block-matching motion compensation and global motion compensation and method thereof |
| EP1589763A2 (de) * | 2004-04-20 | 2005-10-26 | Sony Corporation | Methode, Apparat und Computerprogramm zur Bildverarbeitung |
| WO2006013510A1 (en) * | 2004-07-29 | 2006-02-09 | Koninklijke Philips Electronics N.V. | De-interlacing |
| US8054344B2 (en) * | 2006-06-16 | 2011-11-08 | Raytheon Company | Imaging system and method with intelligent digital zooming |
| JP5187266B2 (ja) * | 2009-04-21 | 2013-04-24 | 株式会社Jvcケンウッド | 動きベクトル検出装置及び方法 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE3679553D1 (de) * | 1985-12-24 | 1991-07-04 | British Broadcasting Corp | Bandbreitenreduktion fuer fernsehsignale. |
| WO1987005769A1 (en) * | 1986-03-19 | 1987-09-24 | British Broadcasting Corporation | Tv picture motion measurement |
| WO1987005770A1 (en) * | 1986-03-19 | 1987-09-24 | British Broadcasting Corporation | Video signal processing for bandwidth reduction |
| EP0294956B1 (de) * | 1987-06-09 | 1994-07-20 | Sony Corporation | Reduzierung der Bewegungsvektoren in Fernsehbildern |
| DE3853554T2 (de) * | 1987-06-09 | 1995-08-24 | Sony Corp | Bewegungsvektorabschätzung in Fernsehbildern. |
-
1989
- 1989-04-27 GB GB8909643A patent/GB2231225B/en not_active Revoked
-
1990
- 1990-04-11 DE DE69028792T patent/DE69028792T2/de not_active Expired - Lifetime
- 1990-04-11 EP EP90303967A patent/EP0395263B1/de not_active Expired - Lifetime
- 1990-04-20 US US07/512,278 patent/US4998168A/en not_active Expired - Lifetime
- 1990-04-27 JP JP2114497A patent/JPH02290383A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| EP0395263A2 (de) | 1990-10-31 |
| GB2231225A (en) | 1990-11-07 |
| JPH02290383A (ja) | 1990-11-30 |
| DE69028792D1 (de) | 1996-11-14 |
| EP0395263A3 (de) | 1991-12-27 |
| US4998168A (en) | 1991-03-05 |
| GB2231225B (en) | 1993-10-20 |
| EP0395263B1 (de) | 1996-10-09 |
| GB8909643D0 (en) | 1989-06-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69027479T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
| DE69031055T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
| DE69030896T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
| DE69028651T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
| DE69022470T2 (de) | Bewegungsabhängige Videosignalverarbeitung. | |
| DE69131591T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
| DE69028792T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
| DE69021431T2 (de) | Bewegungsabhängige Videosignalverarbeitung. | |
| DE69027809T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
| DE69132475T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
| DE3850709T2 (de) | Reduzierung der Bewegungsvektoren in Fernsehbildern. | |
| DE69031144T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
| DE69015419T2 (de) | Umwandlung eines Videosignals auf einen photographischen Film. | |
| DE69027704T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
| DE69123359T2 (de) | Videobildverarbeitung | |
| DE69333103T2 (de) | Vorrichtung zur Umsetzung von digitalen Daten | |
| DE69509141T2 (de) | Verfahren und digitale Schaltung zum Aufheben des Zeilensprungverfahrens während der Darstellung von Videobildern | |
| DE69028239T2 (de) | Bewegungsabhängige Videosignalverarbeitung | |
| DE69006083T2 (de) | Interpolation eines Videosignals. | |
| DE69605936T2 (de) | Bewegungskompensierte interpolation | |
| DE69519398T2 (de) | Abtastumsetzung mit Bewegungsadaptation unter Verwendung einer richtungsabhängigen Interpolation der Kanten | |
| DE69019877T2 (de) | Räumliche Interpolation von digitalen Videobildern. | |
| DE69422255T2 (de) | Verfahren und Vorrichtung zum bewegungsausgeglichenen Interpolieren von zwischenliegenden Halbbildern oder Bildern | |
| DE69230115T2 (de) | Auswertungsvorrichtung und Methode verwendbar für ein Gerät zur Detektion von Bewegungsvektoren | |
| EP0472239B1 (de) | Verfahren zur Ermittlung horizontaler Bewegungen in den Bildinhalten eines Fernsehsignals |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition |