-
Die
vorliegende Erfindung betrifft das Verbergen von Fehlern in einem
Videosignal. Fehler können beispielsweise
durch Schmutz oder Staub auf einem Film, von dem das Videosignal
erzeugt wird, oder aufgrund von Defekten in der Filmemulsion oder
in Charakteristiken der Filmemulsion wie z.B. Körnung verursacht werden. Die
Erfindung ist allgemein auf das Beseitigen bestimmter Typen von
Rausch- und Korneffekten im Signal anwendbar.
-
Es
ist hinlänglich
bekannt, dass die Qualität von
cinematografischem Film bei Anwesenheit von Staub und Schmutz auf
seiner Oberfläche
leidet. Dies kann dann auftreten, wenn der Film in ein Videosignal
in einem Telecin für
Rundfunkübertragungen oder
zum Aufzeichnen auf Videoband übertragen wird.
Der Staub oder Schmutz erzeugt dann schwarze oder dunkle Markierungen
in dem Bild. Es kann aber auch beim Kopieren von Film, besonders
von negativ auf positiv, zu Qualitätsherabsetzungen kommen, und
in diesem Fall können
weiße
oder helle Markierungen die Folge sein. Filmmaterial kann auch aus
anderen Gründen ähnliche
Defekttypen haben; so kann beispielsweise das Altern der Filmemulsion zu
,Glitzern' im Schwarz-Weiß-Film führen, wenn
das Silber vom Filmsubstrat herabfällt.
-
Es
ist wünschenswert,
diese Defekte verbergen zu können,
um die subjektive Bildqualität
der Bilder für
den Betrachter zu verbessern. Ein früheres Verfahren ist im BBC
Research Department Report RD 1985/4 „Electronic Detection and
Concealment of Film Dirt",
R. Storey, herausgegeben von The British Broadcasting Corporation,
Research Department, Kingswood Warren, Tadworth, Surrey, KT20 6NP, Großbritannien,
und in der UK-Patentanmeldung GB-A-2 139 039 beschrieben. Bei diesem
Verfahren wird Schmutz durch Vergleichen des Videosignals von entsprechenden
Bereichen in drei aufeinander folgenden Frames eines cinematografischen
Films erfasst, um zu ermitteln, ob das Signal vom mittleren der
drei Frames einen Wert hat, der sich wesentlich von den Werten für die vorherigen
und nachfolgenden Frames unterscheidet. Wenn ja, dann wird davon ausgegangen,
dass Schmutz auf diesem Bereich des mittleren Frames vorhanden ist.
Der Schwellenbetrag, um den der Wert des Signals im mittleren Frame sich
von dem auf beiden Seiten unterscheidet, kann adaptiv je nach dem
Signalinhalt justiert werden. Mittels Bewegungserkennung wird das
Vorliegen von Bewegung im Szeneninhalt erfasst und der Schwellenwert
in Anwesenheit von Bewegung erhöht.
-
Das
System ist zwar recht effektiv, hat aber trotzdem bestimmte Beschränkungen,
insbesondere:
- (i) es verbirgt keinen Schmutz
in Bereichen mit hohem Bewegungsinhalt, und
- (ii) es kann Bewegungsartefakte verursachen.
-
Ein
weiteres Fehlerverbergungsverfahren ist in der UK-Patentanmeldung GB-A-2
202 706 beschrieben. Bei diesem Vorschlag wird ein Medianselektor
verwendet. Hierbei handelt es sich um eine Schaltung mit drei Eingängen, die
als Ausgang denjenigen der Eingänge
auswählt,
der den mittleren (Median-) Wert der drei Eingangswerte hat. Der
Medianselektor empfängt
Signale von drei aufeinander folgenden Frames. Durch Wählen des
Medianwertes werden durch Fehler wie Schmutz verursachte Extremwerte
eliminiert. Es wird Bewegungskompensation angewendet. Die Signale
von den ,vorherigen' und
,nachfolgenden' Frames
werden in Abhängigkeit vom
Ausgang einer Bewegungsmessschaltung räumlich verschoben in dem Versuch,
den Effekt von Bewegung zu eliminieren, wo diese auftritt.
-
Dieses
Verfahren ergibt etwa 3 dB an Rauschunterdrückung im Ausgangssignal. Dies
ist zuweilen unerwünscht.
-
Bei
diesem Verfahren besteht keine Notwendigkeit, ein Signal zu erzeugen,
dass die Anwesenheit eines Fehlers repräsentiert, sondern stattdessen wird
der Fehler ohne eine separate Fehlererkennungsoperation verborgen.
Dies kann deshalb vorteilhaft sein, weil die Notwendigkeit vermieden
wird, ein solches Signal als Steuersignal zu erzeugen, ein Vorgang,
der schon an sich niemals perfekt sein wird.
-
Ein
weiteres Fehlerverbergungsverfahren ist in der UK-Patentanmeldung GB-A-2284960
beschrieben. Diese Anwendung offenbart die Beseitigung von Rauschsignalen
aus einem Videosignal mit Hilfe einer adaptiven Medianfilterung
mit der Aufgabe, Fehler in großen
gestörten
Bildbereichen zu maskieren, die beim Abtasten des Films durch Schmutz und
Staub verursacht werden. Um dies zu erzielen, wird der Inhalt immer
in stationäre,
bewegte, ungestörte
und gestörte
Bildbereiche eingestuft, und die Fehlermaskierung erfolgt mittels
temporaler Medianfilterung nur in den gestörten und stationären Bildbereichen.
-
Gemäß der vorliegenden
Erfindung wird in einem ersten Aspekt ein Verfahren zum Verbergen von
Fehlern in einem Videosignal bereitgestellt, in dem ein vorläufiges Videosignal
mit verborgenen Fehlern von einem Eingangsvideosignal erzeugt und ein
Ausgangssignal mit verborgenen Fehlern durch Auswählen zwischen
oder Kombinieren dem/des vorläufigen
Signal(s) und dem/des Eingangssignal(s) in Abhängigkeit von einem Flagsignal
gebildet wird, dadurch gekennzeichnet, dass das Flagsignal Differenzen
zwischen dem vorläufigen
Signal und dem Eingangssignal anzeigt und modifiziert wird, um nicht
mit Fehlern assoziierte Flags zu entfernen.
-
Gemäß der vorliegenden
Erfindung wird in einem zweiten Aspekt eine Vorrichtung zum Verbergen
von Fehlern in einem Videosignal bereitgestellt, die einen Fehler-Concealer, eine
Seitenkette zum Erzeugen eines Flagsignals und ein(en) durch das Flagsignal
gesteuerten/s Auswahlschalter oder Kombinationsmittel mit zwei Eingängen zum
Empfangen des Videosignals bzw. des vorläufigen Signals mit verborgenen
Fehlern sowie einem Ausgang zum Ausgeben eines Signals mit verborgenen
Fehlern umfasst, dadurch gekennzeichnet, dass die Seitenkette die
Aufgabe hat, das Flagsignal als Differenzen zwischen dem Videosignal,
das in den Fehler-Concealer
eingegeben wurde, und dem entsprechenden vorläufigen Signal mit verborgenen
Fehlern anzeigend zu erzeugen, das von dem Fehler-Concealer ausgegeben
wurde, und um das Flagsignal zu modifizieren, um nicht mit Fehlern
assoziierte Flags zu sperren.
-
Die
Erfindung wird beispielhaft mit Bezug auf die Zeichnungen beschrieben.
Dabei zeigt:
-
1 ein
schematisches Blockdiagramm eines bekannten Filmschmutz-Concealers
des in der GB-A-2 202 706 beschriebenen Typs;
-
2 ein
schematisches Blockdiagramm eines Filmschmutz-Concealers, der die
vorliegende Erfindung in bestimmten Aspekten ausgestaltet;
-
3 die
Bewegung von Flags, die durch Bewegung in benachbarten Frames verursacht
werden;
-
4 die
Verwendung einer Nachbarflag-Schutzschaltung
in dem System von 2;
-
5 eine
bevorzugte Nachbarflag-Schutzschaltungsform;
-
6 ein
Wellenformdiagramm, das den Betrieb der Flächenteilungsschaltungen 51 in 5 illustriert;
-
7 ein
schematisches Blockdiagramm, das eine Form der Flächenteilungsschaltungen 51 von 5 zeigt;
-
8 eine
Alternative für
einen Teil der Schaltung von 7;
-
9 ein
Blockschaltbild einer Alternative zu der Schaltung von 2,
in der Flags anhand der Neigung ihrer Flanken unterschieden werden;
-
10 den
Betrieb der Anordnung von 9;
-
11 ein
Blockschaltbild eines verbesserten Filmschmutz-Concealers mit den
Merkmalen aller vorherigen Figuren gemeinsam in Kombination;
-
12 ein
Schaltbild, das die Struktur von Logikblock 46 in 4 zeigt;
-
13 ein
Blockdiagramm eines zweidimensionalen Running-Average-Filters;
-
14 ein
Blockdiagramm eines zweidimensionalen Running-Rank-Maximum-Filters;
und
-
15 ein
Blockdiagramm eines Teils einer Final-Maximum-Schaltung, wie sie im Filter
von 14 zum Einsatz kommt.
-
In
dieser spezifischen Beschreibung sind Verweise auf Schmutz oder
andere Formen von Fehlern als Verweise auf jede beliebige passende
Fehlerform wie oben beschrieben zu verstehen.
-
Zunächst wird
mit Bezug auf 1 die bekannte Videosignalverarbeitungsvorrichtung
der GB-A-2 202 706 beschrieben. Zu weiteren Details wird auf diese
Anmeldung verwiesen. Kurz, das bekannte System 20 umfasst
zwei Frame- (oder
Bild-) Verzögerungsglieder 10, 11,
die in Serie mit einem Eingang 21 zum Empfangen eines Videoeingangssignals
verbunden sind, um drei aufeinander folgende Frames gleichzeitig
verfügbar
zu machen, und einen Medianselektor 12, der auch als Medianfilter
bezeichnet wird. Zur Erzielung von Bewegungskompensation werden
das unverzögerte
Eingangssignal und das um zwei Frames verzögerte Signal durch jeweilige
zweidimensionale variable Schieber 13, 14 geleitet,
die veränderliche
Verzögerungsglieder
umfassen. Das um einen Frame verzögerte Videosignal passiert
durch ein festes Kompensationsverzögerungsglied 15. Diese
drei Signale beinhalten, in Bezug auf einen beliebigen Objektframe
(das um einen Frame verzögerte
Signal) den vorherigen und nachfolgenden Frame, modifiziert, indem
sie für
eine evtl. stattgefundene Bewegung korrigiert wurden. Die zum Steuern
der Schieber oder Interpolatoren 13, 14 benötigten Bewegungsvektoren
werden von einer Bewegungsmess- oder Vektorzuweisungsschaltung 16 abgeleitet.
-
Der
Medianselektor oder -filter 12 wählt den an ihm anliegenden
Eingang mit dem mittleren Wert aus den drei Eingängen als das schmutzverborgene Ausgangssignal
aus und überträgt es zu
einem Ausgang 22. Dieses Ausgangssignal für einen
bestimmten Frame kann somit Teile der vorherigen und nachfolgenden
Frames enthalten, die durch Bewegungskompensation modifiziert wurden.
-
In
der Praxis wird gefunden, dass die von der Schaltung 16 erzeugten
(oder anderweitig erhaltenen) Bewegungsvektoren nicht perfekt sind.
In der Tat können
sie vollkommen uneinheitlich sein. So werden zwar Schmutz oder andere
Fehler hoffentlich im Ausgang verborgen, aber es können ,Bewegungsartefakten' eingeführt werden.
Bewegungsartefakte sind ganz einfach Beeinträchtigungen, die durch eine bewegungsabhängige Verarbeitung
verursacht werden. Außerdem
führt die
Verwendung des Medianfilters zu einer 3 dB Rauschreduzierung oder
Glättung von
Bilddetail, das nicht erforderlich oder erwünscht ist.
-
Ein
erstes die Erfindung ausgestaltendes System 30 ist in 2 dargestellt.
Auch hier wird das an einem Eingang 21 empfangene Videoeingangssignal
an einen bewegungskompensierten Medianfilter-Fehler-Concealer 20 des
mit Bezug auf 1 beschriebenen Typs angelegt,
in dem eine Verbergung direkt ohne die Notwendigkeit für einen
separaten Schmutzerkennungsschritt erzielt wird. Unter bestimmten
Umständen
könnten
alternativ auch andere Fehler-Concealer-Schaltungen
verwendet werden, z.B. von dem in der GB-A-2 139 039 beschriebenen Typ.
Der Ausgang 23 der Concealer-Schaltung 20 ist in
diesem Fall nicht direkt mit dem Ausgang 22 verbunden.
Ein Auswahlschalter 31 mit zwei Eingängen und einem Ausgang ist
mit einem Eingang verbunden, der über ein Kompensationsverzögerungsglied 100 mit
dem Ausgang 23 der Concealer-Schaltung 20 und
dessen Ausgang mit dem Schaltungsausgang 22 gekoppelt ist.
Der zweite Eingang des Auswahlschalters 31 ist mit dem
Eingang 21 gekoppelt, um das Videoeingangssignal durch
Kompensationsverzögerungsglieder 32 und 102 zu
empfangen. Der Schalter 31 hat einen Steuereingang, als
Reaktion auf den er als schmutzverborgenen Ausgang entweder den
Ausgang der Schaltung 20 oder das verzögerte Eingangssignal wählt.
-
Die
Steuerung für
den Schalter 31 wird mit einer Seitenkette 33 erzielt.
Die Seitenkette empfängt die
Ausgänge 23, 24 der
Concealer-Schaltung 20 und des Kompensationsverzögerungsgliedes 32. Diese
beiden Signale werden an einen Subtrahierer 34 angelegt,
dessen Ausgang in einem Gleichrichter 35 gleichgerichtet
wird. Indem die Differenz zwischen dem Videoeingang und dem Medianfilterausgang
genommen und das Ergebnis auf diese Weise gleichgerichtet wird,
wird ein Signal erhalten, das die Größe der durch den Medianfilter
eingeführten Änderungen repräsentiert.
Dieses ,Änderungen'-Signal C ist aufgrund
des Rauschunterdrückungseffekts
des Medianfilters verrauscht und wird daher von einem räumlichen
Tiefpassfilter 36 geglättet.
Das gefilterte Signal wird an eine Schwellenschaltung 37 angelegt,
wo es mit einem Schwellenwert t1 verglichen
wird. So entsteht ein Flagsignal S, das erhebliche Änderungen zwischen
dem ursprünglichen
Eingangssignal und dem fehlerverborgenen Ausgang des Medianfilters repräsentiert.
-
In
dem Flagsignal S werden individuelle Pixel geflaggt, um signifikante Änderungen
anzuzeigen, aber da die signifikanten Änderungen durch Fehler auf
dem ursprünglichen
Frame oder durch bewegungsabgeleitete (oder andere) Artefakte verursacht werden,
besteht die Neigung, dass Gruppen von benachbarten Pixeln geflaggt
werden, um beispielsweise Schmutzbereiche anzuzeigen. Der Einfachheit halber
werden solche Bereiche oder Gruppen von geflaggten Pixeln hierin
als „Flags" oder „Schmutzflags" bezeichnet.
-
Im
Falle von perfekten Bewegungsvektoren markieren die Flags in diesem „signifikante Änderungen" Flagsignal S die
Position von Schmutz im ursprünglichen
Frame, weil dann mit dem Objektframe die Bewegungskompensation der
vorherigen und nachfolgenden Frames perfekt ausgerichtet ist. Die Flags
werden auf eine Schaltung 38 angewendet, wo sie jeweils
um ein Pixel (oder mehr) ausgedehnt oder nach außen erweitert werden, um zu
gewährleisten, dass
die Schmutzbereiche vollständig
abgedeckt werden. Die Flagausdehnung oder -erweiterung ist an sich
beispielsweise aus den UK-Patentspezifikationen GB-A-1 547 812 und
2 124 449 (siehe 9) bekannt. Das resultierende
Signal von der Schaltung 38, das den Ausgang 39 der
Seitenkette 33 bildet, wird dann als Steuersignal an den
Steuereingang des Schalters 31 angelegt.
-
Von
der Differenz zwischen dem ursprünglichen
Eingangssignal und dem einfachen Schmutz-Concealer-Ausgang (in 2 der
Medianfilterausgang) abgeleitet, zeigt das Flagsignal somit an,
in welchen Bereichen des Bildes Gruppen von Pixeln durch den einfachen
Schmutz-Concealer verändert
wurden. In diesen Bereichen des Bildes steuert das Flagsignal den
Schalter 31 so, dass er den einfachen Schmutz-Concealer-Ausgang 23 für den Schaltungsausgang 22 wählt. Auf
diese Weise kann in diesen Bereichen Schmutz in einem hohen Maß verborgen
werden. In anderen Bereichen des Bildes, in denen das Flagsignal
anzeigt, dass das Bild von dem einfachen Schmutz-Concealer nicht
verändert
wurde, steuert das Flagsignal den Schalter 31 so, dass er
das ursprüngliche
Bildsignal 24 für
den Schaltungsausgang 22 wählt.
-
Auf
diese Weise hilft die Seitenkette 33, einen Teil der unerwünschten
Artefakte zu korrigieren, wie z.B. Bewegungsartefakte, die von dem
einfachen Schmutz-Concealer eingeführt wurden. Aufgrund von geringfügigen Unterschieden
zwischen dem Objektframe und den vorherigen und nachfolgenden Frames,
oder aufgrund von Ungenauigkeiten in der Bewegungskompensation zwischen
den Frames, wird der den Medianfilter verwendende einfache Schmutz-Concealer
fälschlicherweise
individuelle Pixel oder kleine Bereiche des Objektframe mit entsprechenden
Pixeln von einem der Nachbarframes ersetzen, wo kein Schmutz vorhanden
ist. Solche Änderungen
werden im 'Änderungen'-Signal C in der Seitenkette
angezeigt, werden aber vom Tiefpassfilter oder der Schwellenschaltung
eliminiert und erscheinen somit nicht im ,signifikante Änderungen' Signal S oder im
Flagsignal. Das Flagsignal steuert somit den Schalter 31 so,
dass er diese fälschlicherweise
ersetzten Pixel durch das verzögerte
ursprüngliche
Bildsignal ersetzt. Dieses Zurückschalten
auf das ursprüngliche
Bild in Bereichen, in denen das Flagsignal keine signifikanten Änderungen
anzeigt, reduziert das Auftreten von unerwünschten Artefakten wie Bewegungsartefakte
in ungeflaggten Bereichen erheblich. Die 3 dB Rauschunterdrückung, die im
Medianfilter eingeführt
wurden, werden durch die Verwendung des mediangefilterten (rauschreduzierten)
Signals nur dann, wenn dies notwendig ist, ebenfalls weitgehend
vermieden.
-
Man
wird sehen, dass die Schmutz-Concealer-Schaltung von 2 sowohl
direkt zum Verbergen des Schmutzes oder anderer Fehler als auch
indirekt zum Bereitstellen eines Schmutzdetektors verwendet wird,
der wiederum wählt,
ob die Schmutzverbergungsfunktion angewendet wird oder nicht.
-
Es
ist zwar ein Schalter 31 dargestellt, aber allgemeiner
können
auch andere geeignete Auswahlschaltungsformen zum Einsatz kommen.
In der Tat kann eine Kombinationsschaltung verwendet werden, in
der variable Kombinationen der beiden Eingänge genommen werden. So können beispielsweise
um die Ränder
der Schmutzflags das verzögerte
ursprüngliche
Bildsignal und das mediangefilterte Signal vorteilhafterweise jeweils
mit einem Faktor z und (1 – z)
(wobei 0 < z < 1 ist) multipliziert
und zum Bilden des schmutzverborgenen Ausgangs 22 miteinander
addiert werden. Der Faktor z könnte
mit der Distanz vom Schmutzflag variiert werden, um den Flagbereich,
in dem das mediangefilterte Signal den schmutzverborgenen Ausgang
bildet, mit dem Umgebungsbereich zu vermischen, in dem das ursprüngliche
Bildsignal den schmutzverborgenen Ausgang bildet. Dies ergäbe sanftere Übergänge am Rand
des Flags und würde
Randeffekte unterdrücken.
Der Flag-Spreader 38 könnte
dann Flags über einen
größeren Bereich
als nur ein Pixel ausdehnen oder könnte Flags über einen nichtintegrale Anzahl von
Pixeln ausdehnen.
-
Da
die von der Bewegungszuweisungsschaltung 16 in 2 erzeugten
Bewegungsvektorsignale niemals perfekt sind, enthält das ,signifikante Änderungen' Signal S weiterhin
einige bewegungsbedingte Komponenten im Eingangssignal. Wir haben
erkannt, dass eine zusätzliche
Verarbeitung einbezogen werden kann, um die Zuverlässigkeit
des Flagsignals zu verbessern.
-
Wir
gehen davon aus, dass Schmutz auf benachbarten Frames nicht an derselben
Stelle auftritt. Diese Annahme gilt für die Mehrheit von physischen Fehlern.
Es wird nunmehr auf 3 Bezug genommen. Diese Figur
zeigt zwei Beispiele für
ein in dem Bild angezeigtes, sich bewegendes Objekt. Die Positionen
b und B zeigen in jedem Fall ein sich bewegendes Objekt in einem
betrachteten Frame (dem Objektframe), die Positionen a und A zeigen
das jeweilige Objekt im vorherigen Frame und die Positionen c und
C zeigen es im nachfolgenden Frame. Es wird im Flagsignal an jeder
dieser Positionen geflaggt. Wir schlagen vor, in Bezug auf die Positionen b
und B zu prüfen,
ob in den Nachbarframes in einem kleinen Bereich um den Flag im
aktuellen Frame herum Flags vorhanden sind. Wenn ein Flag in einem solchen
Bereich in einem Nachbarframe gefunden wird, dann kann die Annahme
gemacht werden, dass es wahrscheinlich ist, dass die Flags in dem
Objektframe und dem Nachbarframe durch Bewegung und nicht durch
einen Fehler verursacht wurden. Der/die Flag(s) kann/können daher
weggenommen oder ignoriert werden. So findet man beispielsweise
in 3 in einem Bereich D um b und B ähnliche
Flags in den Nachbarframes. Diese können besonders dann, wenn die
Flags von ähnlicher
Größe und Form sind,
benutzt werden, um anzuzeigen, dass die Flags wahrscheinlich von
einem sich bewegenden Objekt anstatt durch eine Fehler verursacht
werden.
-
Die
Schaltungsanordnung, die notwendig ist, um dies zu erzielen, ist
in 4 illustriert.
-
Wie
in 4 gezeigt, befindet sich eine Schaltung 40 zwischen
der Schwellenschaltung 37 und der Flag-Spreader-Schaltung 38 in
der Nebenkette 33 von 2. Die Schaltung 40 umfasst
zwei Frame-Verzögerungsglieder 41, 42,
die in Serie mit dem Ausgang des Tiefpassfilters 37 geschaltet
sind. Wie in der einfachen Schmutz-Concealer-Schaltung, ergibt dies
Signale von drei aufeinander folgenden Frames. Der Ausgang des ersten
Verzögerungsgliedes 41 wird
an eine zweite Flag-Spreader-Schaltung 43 angelegt, die
jeden Flag über
einen Bereich von n mal n Pixeln (oder n × m Pixeln) verteilt. Die vorherigen
und nachfolgenden Felder erfahren Kompensationsverzögerungen 44, 45,
und eine Logikschaltung 46 empfängt die drei Signale von Schaltungen 43, 44 und 45 als
Steuersignale. Die Logikschaltung 46 besteht aus herkömmlichen
Gattern, z.B. wie in 12 gezeigt, um einen Ausgang 47 wie
folgt zu erzeugen:
- (i) wenn der Ausgang von
Schaltung 43 nicht die Anwesenheit eines Flags anzeigt,
dann ist der Ausgang der Logikschaltung 46 logisch tief
(d.h. kein Flag);
- (ii) wenn der Ausgang von Schaltung 43 die Anwesenheit
eines Flags anzeigt und keiner der Ausgänge der Verzögerungsglieder 44 und 45 die Anwesenheit
eines Flags anzeigt, dann ist der Ausgang der Logikschaltung 43 logisch
hoch (d.h. ein Flag ist vorhanden);
- (iii) wenn der Ausgang von Schaltung 43 die Anwesenheit
eines Flags anzeigt und der Ausgang von einem oder beiden der Verzögerungsglieder 44 und 45 die
Anwesenheit eines Flags anzeigt, dann ist der Ausgang der Logikschaltung 43 logisch
tief (d.h. kein Flag).
-
Im
Fall (iii) wird angenommen, dass aufgrund der Anwesenheit von Flags
in einer Nachbarposition des Bildes in wenigstens einem Nachbarframe
der Flag im Objektframe in der Tat keinen Fehler repräsentiert,
sondern eher eine unerwünschte
Folge von Bewegung im Bild ist. Der Flag im Objektframe wird daher
weggenommen.
-
In
einer Modifikation der in 4 gezeigten Schaltung
wird die Zuverlässigkeit
einer korrekten Identifikation von Fehlerflags anstatt von Flags,
die von Bewegungsartefakten stammen, durch Suchen nach ähnlich großen Flagbereichen
in Nachbarframes anstatt einfach nach An- oder Abwesenheit von Flags
in Nachbarframes verbessert, da sich bewegende Objekte dazu neigen,
die Größe von Frame
zu Frame erheblich zu ändern. 5 illustriert
eine Schaltung, um dies zu implementieren. Sie zeigt eine Schaltung 50,
die die Schaltung 40 von 4 ersetzt. Die
Schaltung 50 ist mit dem Ausgang der Schwellenschaltung 37 gekoppelt,
um das gefilterte ,signifikante Änderungen' Signal S zu empfangen.
Dieses Signal wird an drei Flächenteilungsschaltungen 51A, 51, 51C angelegt,
die in Kaskade geschaltet sind und die das Signal in Abhängigkeit
davon teilen, ob die geflaggten Bereiche klein, mittelgroß oder groß sind. Eine
jeweilige Nachbarflag-Schutzschaltung 40A, 40B, 40C ist
mit dem Ausgang jeder der Schaltungen 51A, 51B, 51C verbunden.
Jede Nachbarflag-Schutzschaltung ist der Schaltung 40 von 4 ähnlich,
aber in jeder davon unterscheidet sich das Ausmaß an Flagausdehnung, das in
der jeweiligen Schaltung 43 angewendet wird, wobei es für die von der
Teilungsschaltung 51C ausgegebenen großen Flagbereiche größer und
für die
von der Teilungsschaltung 51A ausgegebenen kleinen Flagbereiche kleiner
ist.
-
Die
Bereichsteilungsschaltungen 51 arbeiten nach den in 6 illustrierten
Prinzipien und können die
in 7 gezeigte Form haben. Bei (a) in 6 sind
drei Eingangsflags (jeweils mit einer Größe von 2, 4 bzw. 6 Einheiten)
in einer Dimension dargestellt. Diese werden an einen Running-Average-Filter
mit einer Apertur angelegt, deren Größe gleich dem kleinsten Flagbereich
ist, der nicht von der Bereichsteilungsschaltung zu ihrer jeweiligen
Nachbarflag-Schutzschaltung ausgegeben werden sollen. Flags mit
dieser Fläche
und größer sollten
an die in der Kaskade nächste
Bereichsteilungsschaltung ausgegeben werden. Der Running-Average-Filter
gibt in diesem Fall mit einer Aperturgröße von 3 Einheiten den Durchschnittswert
des Signals in der Apertur aus und ergibt die in 6 gezeigte
Wellenform (b). Diese Wellenform wird dann an einen Running-Rank-Maximum-Filter
mit derselben Apertur (3 Einheiten) angelegt, so dass die in 6 gezeigte Wellenform
(c) erzeugt wird. Ein Running-Rank-Maximum- Filter gibt den maximalen Signalwert
aus, der an irgendeinem Punkt in die Filterapertur fällt. Diese Wellenform
(c) wird mit dem Eingangsflagsignal (a) von der Schwellenschaltung 37 torgesteuert,
um die Wellenform (d) zu erzeugen. Dies ergibt ein Signal, dessen
Amplitude von der Größe jedes
Flagbereichs abhängig
ist. Wie in 6 zu sehen ist, erzeugen Flags
eines Bereiches, der gleich oder größer als die Aperturgröße ist,
gleiche maximale Signalamplituden, und Flags, die kleiner als die
Aperturgröße sind, erzeugen
kleinere Signalamplituden. Das torgesteuerte Signal (d) wird mit
einem Schwellenwert t2 verglichen, der auf
einen Pegel unmittelbar unterhalb der maximalen Amplitude gesetzt
wird, um ein Reststeuersignal zu bilden, Wellenform (e), und ein
Umschaltsignal, Wellenform (f). Unter Verwendung des Restsignals
und des Schaltsignals zum Steuern der beiden Ausgänge der
Bereichsteilungsschaltungen 51 kann das Eingangssignal
leicht in zwei Ausgangssignale unterteilt werden, einen, der Bereiche
enthält,
die kleiner sind als die Filteraperturen, und einen anderen, der
Bereiche enthält,
die gleich oder größer als die
Filteraperturen sind. Dazu (mittels der Bereichsteilungsschaltung 51A als
Beispiel) wird das Eingangsflagsignal, wenn das Schaltsignal (f)
logisch hoch ist, auf den Ausgang der mit der jeweiligen Nachbarflag-Schutzschaltung 40A gekoppelten
Bereichsteilungsschaltung 51A geschaltet. Wenn das Schaltsignal
(f) logisch tief ist, dann wird ein Nullsignal an die jeweilige
Nachbarflag-Schutzschaltung 40A ausgegeben. Zum Erzeugen
des Restsignals, das an die in der Kaskade nächste Bereichsteilungsschaltung
(51B) ausgegeben werden soll, wird das Eingangsflagsignal
auf die nächste
Bereichsteilungsschaltung geschaltet, während das Reststeuersignal (e)
logisch hoch ist. Wenn das Reststeuersignal logisch null ist, dann
wird ein Nullsignal an die nächste Bereichsteilungsschaltung
ausgegeben.
-
Die
Ausdehnung des oben Gesagten auf zwei Dimensionen wird dem Leser
klar sein. Der Running-Average-Filter und der Running-Rank-Maximum-Filter
werden auf herkömmliche
Weise für
das in den 13 und 14 gezeigte
Beispiel auf zwei Dimensionen ausgedehnt. 13 zeigt
ein Blockdiagramm eines zweidimensionalen Running-Average-Filters. Der Filter
umfasst, in Serie geschaltet, einen Differentiator 110,
einen Integrator 112 und einen Normalisierer 114,
die mit einer Aperturgröße von x
Abtastsignalen oder Pixeln in der X-Richtung (horizontal) arbeiten,
und einen Differentiator 116, einen Integrator 118 und
einen Normalisierer 120, die mit einer Aperturgröße von y
Zeilen in der Y-Richtung (vertikal) arbeiten. Somit sind der X-Richtungsfilter und
der Y-Richtungsfilter in Kaskade geschaltet. In jedem Fall dividiert
der Normalisierer durch die Zahl der Elemente in der Apertur. In
jedem Filter (X oder Y) können
der Differentiator, der Integrator und der Normalisierer in der
Tat in jeder beliebigen Reihenfolge geschaltet sein.
-
14 zeigt
ein Blockdiagramm eines zweidimensionalen Running-Rank-Maximum-Filters.
Der Filter umfasst eine Kaskade von (x – 1) Verzögerungsgliedern 122 für ein Abtastsignal
oder ein Pixel. Nebenketten von der Kaskade führen x Abtastwerte von x aufeinander
folgenden Pixeln zu einer Schaltung 124, die den maximalen
Abtastwert ausgibt. Die aufeinander folgenden maximalen Abtastwerte,
die von der Schaltung 124 ausgegeben werden, werden an
eine Kaskade von (y – 1)
Einzeilen-Verzögerungsgliedern 126 angelegt.
Nebenketten von der Kaskade führen
y-Abtastwerte, die jeweils der maximale Abtastwert eines Satzes
von x Abtastwerten sind, die von der Schaltung 124 ausgewählt sind,
zu einer Schaltung 128, die den maximalen der y- Abtastwerte ausgibt.
Dies ist der maximale Abtastwert innerhalb der x-mal-y-Apertur des
Filters. Jede „Maximum
suchen" Schaltung 124, 128 besteht
aus einer Kaskade von zu einer Baumstruktur geschalteten Komparatoren 130 und
Schaltern 132. Ein Teil einer solchen Baumstruktur ist
in 15 dargestellt. Jeder Baum umfasst (w – 1) Komparatoren/Schalter,
um das Maximum von w Eingängen
(wenn w eine Potenz von 2 ist) zu finden.
-
Eine
geeignete Schaltungsanordnung ist in 7 dargestellt,
die die Schaltung 51A zeigt. Der Ausgang der Schwellenschaltung 37 wird
an eine Schaltung 53 angelegt, die einen Teil der Schaltung 51A zum
Messen der Größe des Flagbereichs
bildet. Die Schaltung 53 beinhaltet einen Running-Average-Filter 54,
der über
eine Apertur mit der Größe x mal
y Pixeln filtert. Der Ausgang des Filters 54 wird an einen
Rank-Maximum-Filter 55 angelegt, der ebenso über eine
zweidimensionale Fläche
von x mal y arbeitet. Der Ausgang des Filters 55 bildet
den Ausgang der Schaltung 53 und wird an einen ersten Eingang
des Auswahlschalters 56 angelegt. Der zweite Eingang des
Auswahlschalters 56 wird auf logisch tief geschaltet. Der
Ausgang des Filters 55 wird mit dem Eingangsflagsignal
(nach einer Verzögerung
in einem entsprechenden Kompensationsverzögerungsglied 57) zum
Steuern des Auswahlschalters torgesteuert. Der Ausgang des Auswahlschalters 56 wird
an eine Schwellenschaltung 58 angelegt, die das vom Auswahlschalter 56 ausgegebene
torgesteuerte Signal mit einem Schwellenwert t2 vergleicht.
Der Ausgang der Schwellenschaltung 58 bildet den ,Rest'-Ausgang der Schaltung 51A.
Der Ausgang der Schwellenschaltung 58 wird auch zum Steuern
eines Auswahlschalters 59 angelegt, der an einem ersten
Eingang das Eingangsflagsignal durch ein Kompensationsverzögerungsglied 60 empfängt und
umgekehrt zum Auswahlschalter 65 funktioniert, um ein Ausgangssignal zu
erzeugen, das diejenigen Flächen
anzeigt, die kleiner sind als x mal y. Der zweite Eingang des Auswahlschalters 56 ist
auf logisch tief gekoppelt.
-
Dieser
Vorgang wird in Schaltungen 51B und 51C (die mit
der Schaltung 51A in Kaskade geschaltet sind) mit anderen,
zunehmenden Aperturgrößen wiederholt,
um die Flagbereiche je nach der Größe des Flagbereichs in Gruppen
zu unterteilen. Es ist zu bemerken, dass die Flagbereiche, die nahe
beieinander liegen, die Messung der Flächen der anderen beeinflussen
können,
weil eine Filterapertur, wenigstens teilweise, mehr als einen Flagbereich
abdecken kann. Die Aperturgrößendifferenz
von einer Gruppe zur nächsten
sollte nicht zu groß gemacht
werden, um diesen Effekt reduzieren zu helfen.
-
In
der Praxis ist es schwierig, den Rank-Maximum-Filter 55 für etwas anderes als die kleinste Apertur
zu machen. Wir haben gefunden, dass eine gute Näherung an eine bestimmte Aperturfläche (z.B. x
mal y) dadurch erhalten werden kann, dass die linearen Dimensionen
der Apertur verdoppelt und separate 2x und 2y Running-Average-Filtervorgänge in orthogonalen
X- und Y-Richtungen durchgeführt
werden (d.h. mit Aperturgrößen von
2x mal 1 Pixel und 1 mal 2y Pixeln in den jeweiligen Filtern). Für jedes
Pixel des Bildes wird dann der Ausgang der Flagbereichsgrößenmessschaltung
der größere, oder
maximale, der Ausgänge
der beiden eindimensionalen Running-Average-Filter mit ihren jeweiligen Aperturen
auf diesem Pixel zentriert. Eine Schaltung, um dies zu implementieren,
ist in 8 dargestellt.
-
Die
geflaggte Bereichsgrößenmessschaltung 53 von 7 kann
durch die Schaltung 63 von 8 ersetzt
werden, die einen Running-Average-Filter 64 aufweist, der
in der X-Richtung über eine
Aperturgröße von 2x
arbeitet, und einen Running-Average-Filter 65, der in der
Y-Richtung über eine Aperturgröße 2y arbeitet.
Eine Schaltung 66 wählt
das Maximum der Ausgänge
der Schaltungen 64 und 65 für jedes Pixel aus.
-
Der
Schwellenwert in der Schwellenschaltung 58 sollte dann
empirisch justiert werden, da dieses Näherungsverfahren des Erhaltens
der Flagbereichsgröße einen
Abfall des Größenwertes
in Richtung auf die Ränder
jeder der Flagbereiche bewirkt (d.h. während die Größenmessschaltung 53 theoretisch
ein Größenwertsignal
mit einem im Wesentlichen konstanten Wert über den gesamten Bereich eines
Flags erzeugt, wie in (c) in 6 illustriert
ist, erzeugt die Größenmessschaltung 63 ein
Größenwertsignal,
dessen Wert dazu neigt, in Richtung auf die Flanken eines Flags
abzufallen).
-
Auf
der Ebene jedes Flaggrößenbereichs wird
der Bereich, in dem die jeweilige Nachbarflag-Schutzschaltung nach
Flags in Nachbarframes sucht, davon abhängig, dass der größte Flagbereich in
dieser Ebene behalten wird. Es muss dann eine Annahme gemacht werden,
wie weit Objekte sich wahrscheinlich von Frame zu Frame bewegen
werden. So kann beispielsweise davon ausgegangen werden, dass sich
Objekte wahrscheinlich nicht mehr als um das Fünffache ihrer eigenen Abmessungen von
einem Frame zum nächsten
bewegen werden. Dann werden die Suchbereiche auf das Fünffache der
Abmessungen des größten Objekts
für diese Ebene
eingestellt.
-
Mit
diesem System können
Schmutzflags fälschlicherweise
beseitigt werden. Schmutzflecken von ähnlicher Größe, die nahe beieinander, aber
in benachbarten Rahmen liegen, werden als sich bewegende Objekte
in dem Bild erfasst und daher werden die entsprechenden Schmutzflags
beseitigt und der Schmutz wird nicht verborgen. Durch Hinzufügen von mehreren
Größenbereichslevels
ist es möglich,
auf diese Weise weniger Schmutzflags zu beseitigen, da die Schmutzflecken
im Hinblick auf ihre Größe immer näher zueinander
kommen müssen,
wenn sie fälschlicherweise
entfernt werden sollen. Dies hat jedoch auch zur Folge, dass weniger
Bewegung erfasst wird, wenn es eine Größenänderung des sich bewegenden
Objekts von Frame zu Frame gibt.
-
Ein
Problem mit dem beschriebenen System ist, dass sich sehr schnell
bewegende Objekte nicht geschützt
werden. Unter ,sich sehr schnell bewegende Objekte' sind Objekte zu
verstehen, die sich bezogen auf ihre Größe über eine große Distanz
zwischen Frames bewegen. Sie werden deshalb nicht geschützt, weil
sie sich aus dem Bereich hinaus bewegen, der auf Nachbarflags durchsucht
wird. Nachfolgend wird ein System beschrieben, das dieses Problem
dadurch angeht, dass es zwischen Bewegung und Fehlern wie z.B. Schmutz
auf eine ganz andere Weise differenziert. Dieses System wird vorzugsweise
in Kombination mit dem mit Bezug auf die 2 bis 8 beschriebenen
Verfahren eingesetzt. Im Prinzip könnte es jedoch separat eingesetzt
und dafür
benutzt werden, Schmutz und Bewegung für andere Zwecke zu unterscheiden.
Daher wird es zunächst
separat beschrieben.
-
Filmkameras
haben im Allgemeinen eine Blende von etwa 180 Grad, d.h., die Blende
ist etwa für
eine halbe Film-Frame-Periode
offen. Dies führt zu
einem Grad an Integration. Aufgrund dieser Kameraintegration sind
die Ränder
von sich bewegenden Objekten nicht vollkommen scharf, sondern etwas
verschwommen. In der Tat werden sie zu Rampen (die sich hauptsächlich in
der Bewegungsrichtung des Objekts erstrecken); je schneller sich
ein Objekt bewegt, desto mehr Kameraintegration liegt vor und desto
flacher ist die Rampe, die von seinen Rändern entsteht.
-
Schmutz
dagegen ist auf dem Film stationär und
neigt dazu, weitaus schärfere
Ränder
zu haben als sich bewegende Objekte. Dasselbe gilt im Allgemeinen
für andere
Fehlertypen.
-
Diese
Differenz kann zum Unterscheiden zwischen Bewegung und Fehlern mit
der in 9 gezeigten Schaltung 80 genutzt werden.
Die obere Hälfte
dieser Figur ist dieselbe wie 2 und wird
daher nicht nochmals beschrieben. Der untere Teil der Figur zeigt
eine Erkennungsschaltung 81, die die Nebenkettenschaltung 33 von 2 ersetzt.
Die Erkennungsschaltung 81 empfängt den Ausgang 23 der Medianfilterschaltung 20 und
das verzögerte
Eingangssignal 24. Diese werden auf einen Subtrahierer 82 und
Gleichrichter 83 ähnlich
wie auf den Subtrahierer 34 und den Gleichrichter 35 von 2 angewendet.
Der Ausgang des Gleichrichters 83 wird jetzt parallel an
zwei Schwellenschaltungen 84 und 85 angelegt,
die mit unterschiedlichen jeweiligen Schwellenwerten t3 und
t4 arbeiten. Die Ausgänge der Schwellenschaltungen 84 und 85 werden
jeweils an zwei Running-Average-Filter 86 und 87 angelegt,
deren Ausgänge
an die beiden jeweiligen Eingänge
eines Subtrahierers 98 angelegt werden. Der Subtrahiererausgang
wird dann in einem Gleichrichter 90 gleichgerichtet und
an eine weitere Schwellenschaltung 92 angelegt (die mit
einem Schwellenwert t5 arbeitet), deren
Ausgang im H-Zustand ist, wenn der Eingang unter t5 liegt.
Der Ausgang der Schwellenschaltung 92 wird in einem AND-Gate 104 mit
dem Ausgang der Schwellenschaltung 84 kombiniert. Der Ausgang
des AND-Gate 104 bildet das Flagsignal, das an eine Spreaderschaltung 93 angelegt
wird, die der Schaltung 38 von 2 entspricht.
-
Der
Betrieb der Detektorschaltung 81 ist in 10 illustriert.
Wie oben erwähnt,
hat aufgrund von Kameraintegration Bewegung, auf der linken Seite
in 10 gezeigt, ein weniger steiles Profil als Schmutz,
der auf der rechten Seite dargestellt ist, der ein steileres Profil im
,Änderungen'-Signal C hat. Wenn
man die Änderung
in dem abgedeckten Bereich betrachtet, wenn dieses Signal einen
Schwellenwert auf zwei unterschiedlichen Niveaus hat, dann kann
zwischen Schmutz und Bewegung unterschieden werden. Wie in 10 zu
sehen ist, erstreckt sich Bewegung über die Region a am ersten
Schwellenwert t3 und über eine beträchtlich
breitere Region b, wenn sie dem zweiten, tieferen Schwellenwert
t4 unterworfen wird. Durch das Subtrahieren
von Signalen, die Signale jeweils der Länge a und b umfassen, entsteht
ein signifikantes Differenzsignal, das den Schwellenwert t5 überschreitet.
Umgekehrt, der Schmutz verläuft über Region
c am ersten Schwellenwert t3 und über Region
d am zweiten Schwellenwert t4, wobei die
Ausmaßdifferenz
von c und d klein ist. Durch Subtrahieren von Signalen, die Signale
der Längen
c und d umfassen, entsteht jeweils ein kleines Differenzsignal,
das den Schwellenwert t5 nicht überschreitet.
Wenn ein Schmutzfleck mit einem sehr steilen Flankenprofil vorliegt,
dann können
die Regionen a und b gleich sein (innerhalb der Auflösung der Abtastung
des Bildes). Der Ausgang des Subtrahierers 90 kann dann
null sein, was dasselbe ist wie dann, wenn es überhaupt keine Differenz zwischen dem
ursprünglichen
Bildsignal und dem mediangefilterten Signal gibt. Eine Kombination
der Ausgänge der
Schwellenschaltungen 84 und 92 im AND-Gate 104 bedeutet,
dass der Flagsignalausgang vom AND-Gate nur dann hoch sein kann,
wenn die Differenz zwischen dem ursprünglichen Bild und dem mediangefilterten
Signal den Schwellenwert t3 überschreitet.
-
Die
Implementation wurde zwar in einer Dimension beschrieben, aber sie
wird wiederum vorzugsweise auch in einer zweidimensionalen Form
erzielt.
-
Schließlich werden
die übrigen
Flagbereiche um ein Pixel ausgedehnt, um zu gewährleisten, dass die Schmutzflecken
vollständig
abgedeckt werden. Das resultierende Signal wird dann, in diesem
Fall, als Steuersignal zum Umschalten zwischen dem Eingangsvideosignal
und dem bewegungskompensierten mediangefilterten Signal verwendet.
Das mediangefilterte Signal wird verwendet, wenn der die Anwesenheit
von Schmutz anzeigende Flag gesetzt ist.
-
Die
verschiedenen beschriebenen Merkmale werden vorzugsweise in Kombination
benutzt, wie in 11 illustriert ist. Dort werden
die zuvor verwendeten Bezugsziffern verwendet, und die Figur wird
nicht ausführlich
beschrieben. Nachbarflagschutz 40 ist in die Seitenkette
integriert, wie auch Kameraintegrations-Bewegungsschutz. Die Ausgänge der
Nachbarflag-Schutzschaltung 40 und
der Schwellenschaltung 92 werden von einem AND-Gate 95 vor
der Anwendung auf die Ein-Pixel-Spreader-Schaltung 38 kombiniert,
und somit wird das mediangefilterte Signal nur für einen Ausgang gewählt, wenn
sowohl die Nachbarflag-Schutzschaltung als auch die Schwellenschaltung
zum Erfassen der Flagflankensteilheit anzeigen, dass ein Flag von
einem Fehler und nicht beispielsweise von einem Bewegungsartefakt
herrührt.
Der Subtrahierer 34, der Gleichrichter 35 und die
Flagspreader-Schaltung 38 sind üblich und
brauchen nicht dupliziert zu werden. Das AND-Gate 95 erzielt
ebenfalls dieselbe Funktion wie das AND-Gate 104 in 9,
das daher nicht erforderlich ist.
-
Die
Ausgestaltungen wurden in Hardware-Form beschrieben, könnten alternativ
aber auch in Software implementiert werden. In diesem Fall können die
Hardware-Diagramme
als mit Software-Fließschemata äquivalent
angesehen werden.
-
In
den Beschreibungen der Erfindung und den Ausgestaltungen hierin
basiert die Verarbeitung vorteilhafterweise auf dem Luminanzsignal
der verarbeiteten Videosignale, kann aber auch auf anderen Parametern
wie z.B. Chrominanz basieren.
-
Wie
beschrieben, werden verschiedene Verfahren zum Verbessern der Qualität von Filmbildern in
einem Videosignal durch Beseitigen von Filmschmutz vorgeschlagen.
Die Verfahren sind auch in Bezug auf andere Fehler in Videosignalen
nützlich. Das
Niveau an Schmutzverbergung an sich ist zwar möglicherweise nicht besser oder
sogar geringer im Vergleich zu früher vorgeschlagenen Systemen,
aber wir haben gefunden, dass es eine besonders vorteilhafte subjektive
Verbesserung im schmutzverborgenen Bild aufgrund der Eliminierung
von Artefakten kommen kann, die im ursprünglichen, einfachen Schmutzverbergungsprozess
eingeführt
werden. So kann beispielsweise die erhebliche Eliminierung der Rauschreduzierung,
die in Schmutzverbergungssystemen des Standes der Technik inhärent war,
die wahrgenommene Bildqualität
signfikant verbessern.