-
Hintergrund
der Erfindung
-
Die
Technologie zum Manipulieren von digitalen Videos hat bis zu dem
Punkt Fortschritte gemacht, wo diese ohne weiteres auf Computern
verarbeitet und behandelt werden können. Beispielsweise ist der
Avid/1-Mediacomposer, der von Avid Technology, Inc. aus Tewksbury,
Massachusetts, erhältlich ist,
ein System, bei dem digitale Videos ohne weiteres erfasst, editiert
und für
diverse Zwecke dargestellt werden können, beispielsweise zur Fernsehübertragung
und zur Nachbearbeitung von Film- und Videoprogrammen.
-
Der
Avid/1-Mediacomposer verwendet eine Medienpipeline, um auf einer
Computeranzeige ein digitales Videoausgangssignal in Echtzeit bereitzustellen.
Diese Medienpipeline 30 ist in 1 gezeigt und
ausführlicher
im US-Patent Nr. 5,045,940, erteilt am 3. September 1991, beschrieben.
In dieser Medienpipeline 30 speichert ein permanenter Speicher 40 Sequenzen
von digitalen Standbildern, die digitale Videos repräsentieren
und die mit einer Wiederholrate wieder abgespielt werden, die für das Aussehen
eines Videos sorgt. Die Sequenzen von digitalen Standbildern umfassen
keinerlei Bildsynchronisation oder eine andere Art von Synchronisationsinformation,
die typischerweise in Fernsehsignalen vorgefunden werden. Die Standbilder
werden auch typischerweise in komprimierter Form gespeichert. Auf
die abgespeicherten Sequenzen wird Zugriff genommen und diese werden
in einem Datenpuffer 42 platziert, von wo aus diese einem
Komprimierungs-/Dekomprimierungssystem 44 bereitgestellt
werden. Das Ausgangssignal des Komprimierungs-/Dekomprimierungssystems 44 wird
an einen Bildpuffer bzw. Bildzwischenspeicher 46 angelegt,
der das Standbild in ein typisches Videosignal wandelt, das dann
an eine Eingabe-/Ausgabeeinheit 48 angelegt wird. Jedes der
Systeme 40, 42, 44, 46 und 48 arbeitet
in dieser Medienpipeline 30 bidirektional. Das heißt, der
vorstehend diskutierte Ausgabeprozess kann umgekehrt werden und
Videosignale können über die
Eingabe-/Ausgabeeinheit 48 dem Bildpuffer 46 eingegeben
werden, wo diese in eine Sequenz von digitalen Standbildern gewandelt
werden. Die Bilder in der Sequenz werden mit Hilfe des Komprimierungs-/Dekomprimierungssystems 44 komprimiert,
in dem Datenpufferspeicher 42 gespeichert und dann an den permanenten
Speicher 40 übermittelt.
-
Obwohl
die Medienpipeline für
digitale Videos viele Vorteile bereitstellt, einschließlich der
Möglichkeit
einer Übertragung
und des Editierens der gespeicherten digitalen Bilder in einem Computersystem,
ist diese Medienpipeline nicht in der Lage, digitale Videoeffekte
in Echtzeit bereitzustellen, einschließlich von komplexen, willkürlichen
dreidimensionalen Effekten, einfachen zweidimensionalen Effekten,
wie beispielsweise der erneuten Größendarstellung (resizing),
der x-y-Translation, der Rotation, eines Schichtens bzw. layering
(für ein
Aussehen Bild-in-Bild), und schließlich von einfachen Effekten, wie
beispielsweise Überblendungen,
Löschungen (wipes),
allmählichen
Einblendungen (fades) und Luma- und/oder Chroma-Tastung (keying).
Um solche Effekte auf dem Computer wahrzunehmen, wird der Effekt
grundsätzlich
zuerst erzeugt (nicht in Echtzeit), dann digitalisiert und gespeichert,
falls dieser auf einem Band erzeugt wird, und schließlich wieder
abgespielt.
-
US-A-4,698,682
beschreibt eine Vorrichtung zum Glätten einer Bewegung in einem
computerisierten Grafiksystem durch Überlenden von einem Videosignal
auf ein anderes, anstatt dass ein harter Übergang zwischen Videosignalen
bewirkt wird.
-
EP-A-480
625 offenbart eine Vorrichtung zum Interpolieren von Videobildern,
beispielsweise in einer animierten Sequenz, durch Mischen von Farbwerten
von benachbarten Bildern.
-
Die
Erfindung ist in den unabhängigen
Patentansprüchen
niedergelegt, auf die Bezug genommen werden sollte. Bevorzugte Ausführungsformen sind
in den abhängigen
Patentansprüchen
definiert.
-
Eine
Ausführungsform
stellt eine Schaltung zur Verarbeitung von Folgen digitaler Standbilder
bereit, um in Echtzeit digitale Videoeffekte bereitzustellen, umfassend:
Einen
ersten Kanal zur Übermittlung
einer ersten Folge von digitalen Standbildern bei einer Rate zum Nachbilden
eines Videos;
einen zweiten Kanal zur Übermittlung einer zweiten Folge
von digitalen Standbildern bei einer Rate zum Nachbilden eines Videos;
eine
Steuereinheit bzw. einen Regler, um die Standbilder zu dem ersten
oder zweiten Kanal zu leiten; und
einen Mischer, der einen
ersten Eingang aufweist, welcher mit dem ersten Kanal verbunden
ist, der einen zweiten Eingang aufweist, welcher mit dem zweiten
Kanal verbunden ist und der einen Ausgang aufweist, welcher eine
Kombination der ersten und zweiten Folge der digitalen Standbilder
bei einer Rate zum Nachbilden eines Videos bereitstellt.
-
Kurze Beschreibung
der Zeichnung
-
In
der Zeichnung ist:
-
1 ein
Blockschema einer Medienpipeline, wie sie im Stand der Technik verwendet
wird;
-
2 ein
Blockschema einer modifizierten Medienpipeline gemäß der vorliegenden
Erfindung;
-
3 ein
ausführlicheres
Blockschema eines modifizierten Komprimierungs-/Dekomprimierungs-Subsystems
der Medienpipeline gemäß der vorliegenden
Erfindung;
-
4 ein
Blockschema einer modifizierten Medienpipeline gemäß der vorliegenden
Erfindung, um digitale Videoeffekte in Echtzeit bereitzustellen;
-
5 ein
Blockschema des α-Generators
für Boxenlöschungen;
-
6 ein
Flussdiagramm, das die Betriebsweise der Zustandsmaschine für jede Abtastzeile
in einem Bild für
eine Boxenlöschung
beschreibt;
-
7 ein
Flussdiagramm, das die Betriebsweise einer Zustandsmaschine für jedes
Pixel in einer Abtastzeile für
eine Boxenlöschung
beschreibt; und
-
8 ein
Diagramm, das zeigt, wie α für verschiedene
Bereiche eines Bildes für
eine Boxenlöschung
bestimmt wird.
-
Ausführliche
Beschreibung
-
Die
vorliegende Erfindung wird mittels der folgenden ausführlichen
Beschreibung vollständiger verstanden
werden, die im Zusammenhang mit den beigefügten Zeichnungen gelesen werden
sollte, in denen ähnliche
Bezugszeichen ähnliche
Strukturen bezeichnen. Sämtliche
Bezugsdokumente, die hierin genannt werden, einschließlich anhängiger Patentanmeldungen,
seien hiermit ausdrücklich
im Wege der Bezugnahme mit beinhaltet.
-
Eine
Medienpipeline 35 mit zwei Kanälen von digitalen Videos zum
Bereitstellen von Effekten wird nun anhand von 2 beschrieben
werden. Die Medienpipeline 30, die in 1 gezeigt
ist, wurde modifiziert, um eine Komprimierungs-/Dekomprimierungseinheit
(CODEC) 58 zu beinhalten, die eine Modifikation des Komprimierungs-/Dekomprimierungssystems 44 gemäß 1 ist.
Die CODEC-Einheit 58 hat zwei CODEC-Kanäle 50 und 52.
Einer wird zum Komprimieren und Dekomprimieren verwendet, das heißt sowohl
zur Aufzeichnung als auch zur Wiedergabe, während der andere nur zur Wiedergabe
(playback) verwendet wird. Die Ausgangssignale dieser Kanäle werden
einem Mischer 54 zugeführt,
der diese gemäß dem gewünschten
Effekt kombiniert bzw. verknüpft.
Es ist jedoch nicht erforderlich, komprimierte Daten zu verwenden;
eine Komprimierung ist jedoch bevorzugt, um Speicheranforderungen
zu reduzieren. Diese Komprimierungs-/Dekomprimierungseinheit 58 ist
ausführlicher
in der britischen Provisionalanmeldung 9307894.7, eingereicht am
16. April 1993, unter der U.S. Foreign Filing License 504287, gewährt am 13.
April 1993, beschrieben.
-
Diese
CODEC-Einheit 58 wird nun ausführlicher im Zusammenhang mit 3 beschrieben
werden. In dieser Figur steuert eine Steuereinheit 60 zwei
Kanäle
von Kodierern/Dekodern. Die Modifikation an der Medienpipeline 30 wird
dadurch vorgenommen, dass in der Steuereinheit 60 verschiedene
Abschnitte des komprimierten Datenpufferspeichers 42 jedem
Kanal zugeordnet werden. Eine Sequenz von digitalen Standbildern
wird ebenfalls einem Kanal zugeordnet. Somit wird, wenn die Sequenz
in den Zwischen- bzw. Pufferspeicher für komprimierte Daten 42 eingelesen
wird, diese dem Abschnitt eingegeben, der dem Kanal für diese
Sequenz zugeordnet ist. Somit beruht das Lesen von Daten in den
FIFO 62 und 64 für die CODECs 66 und 68 und
das Schreiben aus diesen auf der Zuordnung eines Kanals zu einer ausgewählten Sequenz
von digitalen Standbildern.
-
Jeder
Kanal hat ein separates CODEC, entweder ein erstes CODEC 66 oder
ein zweites CODEC 68. Die CODECs verwenden typischerweise das
Joint Photographic Expert Group (JPEG), das als Norm zur Komprimierung
von Standbildern vorgeschlagen wurde. Solche CODECs sind kommerziell erhältlich,
beispielsweise als CL550, das von C-Cube aus Milpitas, Kalifornien,
erhältlich
ist. Jedes CODEC hat jeweilige Silospeicherelemente (FIFO) 62 und 64. Die
FIFO-Speicherelemente 62 und 64 führen jeweils zu
den CODECs 66 und 68, deren Ausgangssignale an
die Halbbildzwischenspeicher bzw. Halbbildpufferspeicher 70 und 72 angelegt
werden, die ebenfalls vorzugsweise FIFO-Speicherelemente sind. Diese zwei
Kanäle
können
mit Hilfe eines Mischers 74 gemischt werden, der mittels
einer Adressierungs- und Alphainformationseinheit 76 gesteuert
wird, was nachfolgend ausführlicher
beschrieben werden wird. Der Mischer 74 und die Alpha-
und Adressierungs-Informationseinheit 76 werden
vorzugsweise unter Verwendung eines frei programmierbaren Gate-Arrays realisiert,
beispielsweise mit Hilfe des XC3090, der von XiLinx hergestellt
wird.
-
Alternativ
kann eine erste Ausgangssequenz mit Hilfe des Ausgangs A des FIFO 70 für CODEC 66 bereitgestellt
werden und eine zweite Ausgangssequenz kann dann mit Hilfe des Ausgangs
des Mischers bereitgestellt werden, wenn kein Mischvorgang ausgeführt wird,
und zwar als der Ausgang B. Somit dienen der FIFO 70 und
der Mischer 74 als erste und zweite Quellen von Sequenzen
von digitalen Standbildern. Die Ausgangssignale A und B können an
ein digitales Videoeffektsystem 59 angelegt werden, wie
es in 4 gezeigt ist. Diese Ausführungsform ist nützlich,
um beliebige dreidimensionale Videoeffekte bereitzustellen, was
in der US-Patentanmeldung mit dem Titel "Media Pipeline with Mechanism for Real-Time
Addition of Digital Video Effects" beschrieben wird, eingereicht am 18.
März 1994
für Harry
Der et al. und auf Avid Technology, Inc., Tewksbury, Massachusetts übertragen.
-
Komplexere
zweidimensionale Effekte können
ebenfalls unter Verwendung von aus dem Stand der Technik bekannten
Techniken realisiert werden, einschließlich einer X-Y-Translation,
einer Rotation und einer Skalierung. Eine zusätzliche Effektetafel, vergleichbar
zu den dreidimensionalen beliebigen Effekten, kann vorgesehen sein,
um einen Vorgang an einem einzigen Datenstrom vorzunehmen. Um diesen
Vorgang bereitzustellen, wird das Ausgangssignal A, wie in 4 gezeigt,
an einen solchen Effektegenerator angelegt, dessen Ausgangssignal
an den Eingang des Mischers angelegt würde, der ursprünglich dazu
vorgesehen ist, um den Kanal A zu empfangen. Wenn diese Möglichkeit
vorgesehen ist, erzeugen die digitalen Effekte typischerweise ein
Ausgangssignal unter Verwendung des YUV-Datenformats mit vier Bits
für jeden
der Y-, U- und V-Parameter (4 : 4 : 4). Im Gegensatz dazu ist das
normale Datenformat für
die Kanäle
A und B 4 : 2 : 2. Somit sollte in diesem Fall der Mischer 76 ausgelegt
sein, um wahlweise den Kanal A entweder für das 4 : 4 : 4-Datenformat oder
für das
4 : 2 : 2-Format zu verarbeiten, in Abhängigkeit davon, ob solche digitalen
Effekte vorgesehen sind.
-
Die
Bereitstellung einfacher Videoeffekte in Echtzeit, beispielsweise
von Boxenlöschungen
und Chroma- und Luma-Schlüsseln,
unter Verwendung eines Mischers 74 und von Alpha- und Adressierungsinformation 76,
wird nun beschrieben werden. Das Mischen von zwei Datenströmen (A und
B) von Videos beinhaltet typischerweise das Anlegen der Funktion αA + (1 – α)B an die
Datenströme
von Videoinformation, wobei α ein
Wert ist, der in einem Bild von Pixel zu Pixel variieren kann, und
wobei A und B zu jedem vorgegebenen Zeitpunkt Pixel bzw. Bildpunkte
in entsprechenden Bildern in den zwei Datenströmen (A und B) des Videos sind.
Jeder Effekt wird somit an einem Bild von jedem der zwei Datenströme vorgenommen.
(Man übt
für gewöhnlich nicht
einen Effekt an nur einem Teil eines Bildes aus.) Für ein vorgegebenes α zu jedem
beliebigen Zeitpunkt und für
die Adressen für
die Pixel A und B kann das Ausgangsbild erzeugt werden. Der Mischer 74,
der diesen Vorgang ausführt
durch Festlegung des Ergebnisses der Kombination bzw. Verknüpfung αA + (1 – α)B, kann
unter Verwendung von üblichen
Entwurftechniken für
digitale Hardware realisiert werden. Vorzugsweise wird ein frei
erneut programmierbarer Gate-Array (field reprogrammable gate array)
dazu verwendet, um die Funktion (A – B)α + B zu realisieren.
-
Der
Wert von α,
der auf die zwei Pixel angewendet wird, hängt von der Art des bereitzustellenden
Effektes ab. Beispielsweise verwenden Überblendungen dasselbe α für sämtliche
Pixel in einem Bild. α wird
allmählich
für nachfolgende
Bilder in der Überblendung
herabgesetzt. Das Paar von Pixeln, die miteinander verknüpft werden
sollen, hängt
ebenfalls von der Art des bereitzustellenden Effektes ab. Der Hinweis
darauf, welches Paar von Pixeln verwendet werden soll, wird als
die Adressierungsinformation bezeichnet. Für jede Art von Effekt, der
bereitzustellen ist, kann eine Zustandsmaschine (state machine)
und können
Zustandsvariablen zur Verarbeitung eines Bilds eines Ausgabevideos
definiert werden. Die zwei grundsätzlichen Arten von Effekten sind
Chroma- und/oder Luma-Schlüssel
und Boxenlöschungen
(box wipes), welche Überblendungen und
Ausblendungen (fades) beinhalten.
-
Um
beispielsweise eine Chroma- und/oder Luma-Tastung bzw. -Verschlüsselung
zu realisieren, werden von dem Nutzer für jeden Parameter eines Pixels
zwei Schwellenwerte D1 und D2 und ein Schlüsselpunkt (key point) Kc definiert.
Diese Effekte werden typischerweise an der YUV-Darstellung eines Bildes
angewendet. Somit wird ein einlaufendes Bild durch Vergleichen der
Pixelwerte Y, U und V mit den Schlüsselpunkten und den für Y, U und
V definierten Schwellenwerten verarbeitet. Genauer gesagt wird bei
Verwendung des Parameters U als ein Beispiel ∥Kc – U∥ berechnet. Falls dieser Wert
kleiner ist als D1, wird α auf
den größtmöglichen
Wert gesetzt. Falls dieser Wert größer ist als D2, wird α auf den kleinstmöglichen
Wert gesetzt. Wenn der Wert irgendwo zwischen D1 und D2 liegt, wird
ein Wert für α entsprechend
diesem Wert festgelegt. In einer Ausführungsform der Erfindung ist
es erforderlich, dass D1 – D2
eine gewisse feste Zahl ist, beispielsweise 16. Die Größe dieser
festen Zahl repräsentiert
die gewünschte
Zahl von α.
Bei dieser Ausführungsform wird
dann, wenn der Wert von ∥Kc – U∥zwischen
D1 und D2 liegt, der Wert ∥Kc – U∥ – D1 auf
eine Nachschlagetabelle angewendet (die in einem vorzugsweise wieder
beschreibbaren RAM gespeichert ist), welche entsprechende Werte
von α speichert,
die verwendet werden sollen. Die Werte von α können irgendeine Funktion der
Eingangsgröße ∥Kc – U∥ – D1 sein,
beispielsweise eine Stufenfunktion, eine sigmoidale Funktion, eine
Rampenfunktion oder irgendeine Funktion, die von einem Nutzer gewünscht ist.
Typischerweise werden nur Y oder U, V verschlüsselt bzw. getastet und verarbeitet.
Man könnte
eine Verschlüsselung
bzw. Tastung an sämtlichen
der Größen Y, U
und V auf einmal anwenden und die sich ergebenden α-Werte verknüpfen, beispielsweise
unter Verwendung der Funktion (1/2(αu + αv)
AND αy).
-
Boxenlöschungen
mit einem Rand können ebenfalls
bereitgestellt werden. Eine Boxenlöschung ist ein Übergang
zwischen zwei Datenströmen,
der durch eine rechteckförmige
Form definiert ist. Innerhalb des Rechtecks wird Information von
einem Kanal bereitgestellt. Außerhalb
des Rechtecks wird Information von dem anderen Kanal bereitgestellt.
Der Übergangsbereich
kann streng durch den Rand des Rechtecks festgelegt werden oder
eine Randfarbe bzw. Umrandungsfarbe kann bereitgestellt werden. Der Übergang
kann als eine lineare Rampe (definiert durch das Verhältnis der
Kanäle
zueinander) beschrieben werden. Der Übergang wird somit durch den
unteren und den oberen Grenzwert der Rampe definiert, durch die
Stufengröße und durch
die Zeitdauer. Sämtliche
dieser Parameter sollten von einem Nutzer vorgebbar sein. Auch die
Koordinaten der Box sollten programmierbar sein, um eine horizontale
Löschung,
eine vertikale Löschung
oder in gewisser Art eine Löschung
von Ecke zu Ecke bereitzustellen. Typischerweise wird eine Mischung
von dem ersten Kanal zu dem Rand, von dem Rand zu dem nächsten Kanal
oder zwischen den beiden Kanälen
vorgenommen. Eine Zustandsmaschine kann in einfacher Weise entsprechend
den Variablen definiert werden, die die Löschung definieren, um so einen
Ausgangswert α für jedes
Paar miteinander zu verknüpfender
Pixel bereitzustellen. Es gibt drei Werte, die dazu verwendet werden,
um das endgültige α zu definieren.
Die αinit-Werte definieren die ursprünglichen αX-
und αY-Werte, wobei αX und αY akkumulierte
Werte entsprechend der Zustandsmaschine sind. In der einfachsten
Löschung,
einer Überblendung,
werden die ursprünglichen
Werte festgehalten, das heißt
nicht verändert,
und zwar über
das gesamte Bild. In den anderen Boxenlöschungen können αX und αY sich ändern, entsprechend
der gewünschten
Löschung.
In diesem Prozess wird der endgültige
Wert für α typischerweise
als αX genommen, der einer begrenzten Funktion
unterliegt, die durch αY definiert ist. Das heißt, das endgültige α beträgt typischerweise αX, wenn αX kleiner
ist als αY, und beträgt typischerweise αY,
wenn αX größer ist
als αY.
-
Eine
Löschung
ist durch zwei Sätze
von Parametern definiert. Der erste Satz gibt Parameter für die X-Richtung
in einem Bild vor; der zweite Satz gibt Parameter für die Y-Richtung
vor, um Änderungen zwischen
Abtastzeilen in dem Effekt zu definieren. Sowohl der X-Parameter
als auch der Y-Parameter umfasst vier Gruppen von vier Parametern,
wobei jede Gruppe eine Operation repräsentiert, einschließlich einer
Versatzinformation (offset), einer Steuerinformation, einer Intervall-
bzw. Zeitperiodeninformation und einer Delta-Information. Die Versatzinformation
definiert, wo der Mischvorgang beginnen soll. In der X-Richtung identifiziert
diese diejenigen Pixel in der Abtastzeile, wo der erste Mischvorgang beginnt.
In der Y-Richtung identifiziert diese diejenige Scanzeile, wo der
Mischvorgang beginnen soll. Die nächste Information ist eine
Steuerinformation, die festlegt, ob weitere Operationen in der Scanzeile
vorgenommen werden sollen oder in dem Bild, das folgt. Für den X-Parameter
wird diese Steuerinformation durch zwei Bits repräsentiert,
wobei das erste Bit darstellt, ob das Videosignal zwischen dem A-Kanal
und dem B-Kanal getauscht wird. Das andere Bit zeigt an, ob eine
andere Operation in der X-Richtung erscheinen wird. Nach der Steuerinformation
gibt es die Zeitperiode bzw. das Intervall, über die die Mischung ausgeführt werden
soll. Das Intervall bezeichnet entweder die Anzahl von Abtastzeilen
oder eine Anzahl von Pixeln innerhalb einer Abtastzeile. Schließlich stellt
die Delta-Information ein Inkrement dar, das für jedes Pixel während des
definierten Intervalls zu αX oder αY hinzuzufügen ist. Somit ist eine Löschung definiert
durch vier Gruppen von vier Operationen in der X-Richtung und in
der Y-Richtung. Die erste Operation bedeutet den Übergang
vom Kanal A zum Rand; die zweite von dem Rand zu dem zweiten Kanal;
die dritte von dem zweiten Kanal zu dem Rand; und die vierte von
dem Rand zu dem ersten Kanal. Falls es keinen Rand gibt, werden
nur zwei Operationen verwendet und zeigt die zweite Operation an,
dass weder für
die Abtastzeile noch für
das Bild eine weitere Operation auszuführen ist.
-
Für die vorgegebenen
Operationen, die die auszuführende
Löschung
definieren, einschließlich der
vier Gruppen von Operationsinformation für jeden der X-Parameter und Y-Parameter,
kann eine Zustandsmaschine dazu verwendet werden, um α für jedes
Pixel in dem Bild zu bestimmen. Diese Zustandsmaschinen werden nun
anhand der 5 bis 8 beschrieben
werden.
-
5 ist
ein Blockschema, das gewisse Strukturen darstellt, die von einer
Zustandsmaschine gesteuert werden. Die Operation der Zustandsmaschine
wird anhand der Flussdiagramme gemäß den 6 und 7 beschrieben
werden. In 5 speichert ein X-Parameterspeicher 82 und
ein Y-Parameterspeicher 80 die auszuführenden Operationen. Ein Adressenzeiger
wird in Registern bzw. Speichern 84 und 86 für jeden
dieser Speicher als X- und Y-Adressenzeiger gespeichert. Anfängliche
X- und Y-Delta-Werte werden ebenfalls in den Registern 88 und 90 gespeichert.
Diese werden über
Schalter 96 und 98 Akkumulatoren für die X-
und Y-Werte 92 und 94 zugeführt. Die Ausgangssignale der
Akkumulatoren 94 und 92 werden der Vergleichs-
und Schalteinheit 100 zugeführt, deren Ausgang den α-Wert in
einer Weise bereitstellt, die nachfolgend im Zusammenhang mit 8 beschrieben
werden wird. Es gibt auch einen Schleifenzähler 102, der den
Teil eines Bildes anzeigt, an dem der Effekt gerade ausgeführt wird.
Dessen Bedeutung wird ebenfalls nachfolgend ausführlicher anhand von 8 diskutiert
werden. Es gibt auch einen Y-Positionszähler 104 und einen X-Positionszähler 106,
die von der Steuerung 108 verwendet werden, die entsprechend
den Flussdiagrammen gemäß 6 und 7 arbeiten.
-
Nun
werden die 6 und 7 beschrieben
werden.
-
Auf
ein horizontales Rücksetzen
(HRST) oder ein vertikales Synchronisationssignal (VSYNC), wie bei
Schritt 110 angedeutet, werden der Y-Akkumulator 94 und der Y-Adressenzeiger 86 gelöscht bzw.
freigegeben. Ein anfänglicher
Y-Delta-Wert 90 wird dann über einen Schalter 98 in
den Akkumulator 94 geladen (Schritt 112). Ein
Versatz (offset) wird dann aus dem Y-Parameterspeicher 80 in den
Y-Positionszähler 104 gelesen
(Schritt 114). Eine Steuerinformation wird dann aus dem
Y-Parameterspeicher 80 in den Schleifenzähler 102 gelesen
(Schritt 116).
-
Wenn
gültige
Daten zur Verfügung
stehen, um verarbeitet zu werden, und solange der Y-Positionszähler 104 nicht
gleich Null ist, werden Operationen an einer Abtastzeile im Schritt 118 vorgenommen,
was nachfolgend anhand von 7 erörtert werden
wird. Nachdem jede Abtastung verarbeitet ist, wird der Y-Positionszähler 104 dekrementiert. Wenn
der Y-Positionszähler
den Wert Null erreicht, wird das Intervall bzw. die Zeitperiode
gelesen und aus dem Parameterspeicher 80 in den Y-Positionszähler 104 geladen
(Schritt 120). Ein Delta-Wert wird dann aus dem Y-Parameterspeicher 80 in
den Y-Akkumulator 94 gelesen und zu dem augenblicklichen Wert
darin addiert (Schritt 122). Dieser Wert wird für jede Abtastzeile
addiert, solange bis der Y-Positionszähler dann den Wert Null hat.
Jede Abtastzeile wird entsprechend den nachfolgend im Zusammenhang mit 7 beschriebenen
Schritten verarbeitet. Wenn der Y-Positionszähler 104 Null ist,
wird die Steuerinformation im Schritt 124 untersucht, um
festzustellen, ob weitere Y-Operationen auszuführen sind. Falls es weitere
Operationen gibt, die auszuführen
sind, kehrt die Verarbeitung zurück
zum Schritt 114. Ansonsten wartet das System solange, bis
ein weiteres horizontales Zurücksetzen
oder eine weitere vertikale Synchronisierung auftritt.
-
Die
Operationen an einer Abtastzeile werden nun anhand von 7 beschrieben
werden. Diese Operationen beginnen im Schritt 130 auf den
Empfang eines horizontalen Synchronisationssignals oder eines horizontalen
Rücksetzens
hin. Im Schritt 132 werden der X-Akkumulator 92 und
der X-Adressenzeiger 84 gelöscht und wird dann ein anfänglicher Delta-Wert
bei 88 über
den Schalter 96 in den X-Akkumulator 92 geladen.
Ein Versatz (offset) wird dann aus dem X-Parameterspeicher 82 im Schritt 134 in den
X-Positionszähler 106 geladen.
Als Nächstes wird
Steuerinformation aus dem X-Parameterspeicher 82 im Schritt 136 in
den Schleifenzähler 102 gelesen.
Der X-Positionszähler
wird dekrementiert, wenn ein gültiger
Datenwert zur Verfügung
steht, und zwar solange, bis der X-Positionszähler 106 Null ist (Schritt 138).
Das Intervall bzw. die Zeitperiode wird dann aus dem X-Parameterspeicher 82 in
den X-Positionszähler 106 im
Schritt 140 gelesen. Der Delta-Wert wird dann aus dem X-Parameterspeicher 82 in
den X-Akkumulator 92 gelesen und zu dem augenblicklichen
Wert in dem Akkumulator 92 addiert, solange bis der X-Positionszähler Null
ist (Schritt 142). Der X-Adressenzeiger und der Y-Adressenzeiger wird
dann entsprechend diesem Prozess inkrementiert, um die korrekte
Operation zu identifizieren. Falls die Steuerinformation anzeigt,
dass mehrere X-Operationen auszuführen sind, was im Schritt 144 festgelegt
wird, kehrt die Verarbeitung zurück
zum Schritt 134. Ansonsten wartet das System im Schritt 146 solange,
bis eine weitere horizontale Synchronisierung oder ein weiteres
horizontales Zurücksetzen
erfolgt.
-
Für jedes
Pixel in der Abtastzeile, wie von jedem Dekrementierungsvorgang
auf dem X-Positionszähler 106 angezeigt,
wird ein α-Wert
von der Vergleichs- und Schalteinheit 100 ausgegeben. Wie diese
Operation bereitgestellt wird, wurde vorstehend erörtert. Weitere
Details für
kompliziertere Boxenlöschungen
in dieser Auswahl werden nun anhand von 8 bereitgestellt
werden.
-
Wie
in 5 angedeutet, empfängt die Vergleichs- und Schalteinheit 100 einen αY-Wert
von dem Y-Akkumulator 94 und einen αX-Wert
von dem X-Akkumulator 92 und einem Schleifenzähler 102. Der
Schleifenzähler
zeigt an, welcher Quadrant in einer Boxenlöschung mit einem Rand gerade
verarbeitet wird. Die Anzeige eines Quadranten kann ohne weiteres
durch den Status der Zustandsmaschine und eines Zählers festgelegt
werden. Weil die X-Operationen und die Y-Operationen jeweils durch
vier Gruppen von vier Parametern definiert sind, wobei jede Gruppe
eine Operation festlegt, die an einem Abschnitt eines Bildes ausgeführt werden
soll, gibt es exakt 16 Kombinationen von X-Parametern und Y-Parametern, die jeweils
einen Quadranten des resultierenden Bildes festlegen. Der α-Wert für jeden Quadranten
hat eine vorgegebene Beziehung zu den αX-Werten
und den αY-Werten. Somit kann gemäß der Schleifensteuerung 102 die
geeignete Auswahl von αX und αY bereitgestellt werden.
-
Die
Beziehungen von α zu αX und αY für jeden
Quadranten werden nun anhand von 8 beschrieben
werden.
-
8 stellt
25 Bereiche einer Boxenlöschung
mit einem Rand und mit Übergängen zwischen
einem Bild, einer Randfarbe und einem anderen Bild dar. Es gibt
15 grundsätzliche
Arten von Bereichen, die bei diesem Effekt zu berücksichtigen sind,
von denen jeder entsprechend in der oberen linken Ecke der Box mit
einer Zahl versehen ist. Beispielsweise wird der erste Bereich 200 mit
Null bezeichnet, wie bei 202 angedeutet. Eine Box 204 ist
in jedem Bereich gezeigt, die die Quelle von Bilddaten bezeichnet
(wobei CH0 dem Kanal entspricht, der an den Eingang A des Mischers 76 angelegt
wird, und CH1 dem Eingangssignal entspricht, das an den Eingang
B des Mischers angelegt wird). Die erste Zeile in der Box 204 zeigt
den α-Wert
an, der dem Mischer bereitgestellt werden soll. "A" deutet
an, dass αX als α zur
Verfügung
gestellt wird, wie dies in den Bereichen 4, 7, 8 und 11 der Fall
ist, "AL" zeigt an, dass αY als
der α-Wert
zur Verfügung
gestellt wird, was in den Bereichen 1, 2, 13 und 14 der Fall ist. "AL : A < AL" zeigt an, dass αX bereitgestellt
wird, wenn sein Wert kleiner ist als αY, und
ansonsten wird αY bereitgestellt, was in den Bereichen 0,
3, 10, 12 und 15 der Fall ist. "AL
: > = AL" zeigt an, dass αY bereitgestellt
wird, solange nicht αX größer ist
als αY, wenn αX bereitgestellt wird, was in den Bereichen
5, 6 und 9 der Fall ist.
-
Nachdem
nun einige Ausführungsformen
der Erfindung beschrieben wurden, sollte dem Fachmann auf diesem
Gebiet ersichtlich sein, dass das Vorstehende nur von erläuternder
und nicht beschränkender
Natur war, da dies nur in beispielhafter Weise dargelegt wurde.
Zahlreiche Modifikationen und weitere Ausführungsformen liegen innerhalb
der Möglichkeiten
eines gewöhnlichen
Fachmanns auf diesem Gebiet und es ist angedacht, dass diese unter
den Schutzbereich der Erfindung fallen, wie er durch die beigefügten Patentansprüche und
den Äquivalenten
dazu festgelegt ist.