DE19518891C2 - Verfahren und Vorrichtung zur Durchführung einer programmierbaren Videotransformation - Google Patents
Verfahren und Vorrichtung zur Durchführung einer programmierbaren VideotransformationInfo
- Publication number
- DE19518891C2 DE19518891C2 DE19518891A DE19518891A DE19518891C2 DE 19518891 C2 DE19518891 C2 DE 19518891C2 DE 19518891 A DE19518891 A DE 19518891A DE 19518891 A DE19518891 A DE 19518891A DE 19518891 C2 DE19518891 C2 DE 19518891C2
- Authority
- DE
- Germany
- Prior art keywords
- image
- line segment
- address
- transformation
- parameters
- 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 - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
- H04N9/74—Circuits for processing colour signals for obtaining special effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/2628—Alteration of picture size, shape, position or orientation, e.g. zooming, rotation, rolling, perspective, translation
Description
Die vorliegende Erfindung betrifft die Videobildtransforma
tion, und insbesondere ein Verfahren und eine Vorrichtung zur
Durchführung einer programmierbaren Videotransformation, die
äußerst flexibel und daher zur potentiellen Erzeugung einer
unendlichen Anzahl von Videoeffekten anwendbar ist.
Bei Fernsehproduktionen ist es häufig sinnvoll, ein Videobild,
welches entweder direkt von einer Kamera erzeugt wird oder
mittels anderer elektronischer Geräte synthetisch produziert
wird, zu nehmen und das Bild, d. h. entweder einen Teil des
Bildes oder das gesamte Bild, in Echtzeit zu transformieren.
Eine derartige Transformation kann einfach sein, wie zum Bei
spiel die Beeinflussung des gesamten Anzeigerasters, und ein
fache Funktionen wie vertikale oder horizontale Verschiebung
oder Änderungen der Größe, der Position oder Rotationen aus
führen. Es gibt jedoch auch komplexe Transformationen, bei
denen abgegrenzte oder mehrere Bereiche des Bildes auf kompli
zierte, kreative Art und Weise verändert werden, zum Beispiel
ein "explodierendes Videobild", bei dem das Videobild in 100
scherbenartige Teile zu zerbersten scheint, und alle "Scher
ben" in jeweils verschiedene Richtungen vom Mittelpunkt weg
wirbeln.
Ein digitaler Bildmanipulator aus dem Stand der Technik, wie
er zum Beispiel im U.S.-Patent Nr. 4,689,681 "Television Spe
cial Effects System" vom 25. August 1987, Inhaber Richard A.
Jackson, beschrieben ist und in dem von The Grass Valley
Group, Inc. aus Grass Valley, Kalifornien, U.S.A. hergestell
ten Kaleidoscope Digital Picture Manipulator verwendet wird,
empfängt ein Videosignal, das ein Bild im Quellraum darstellt,
und leitet es durch ein zweidimensionales (2D) Tiefpaßfilter,
welches bisweilen auch als Unschärfefilter oder Bandbegren
zungsfilter bezeichnet wird. In Abhängigkeit von dem implemen
tierten Effekt läßt sich die Grenzfrequenz des Filters Bild
punkt für Bildpunkt einstellen. Ein Vorwärtsadressengenerator
erzeugt Schreibadressen zur Eingabe des gefilterten Videosi
gnals in einen Transformationsspeicher und erzeugt auch ent
sprechende Filterauswahlinformation für das 2D-Filter. Ein
Rückwärtsadressengenerator erzeugt Leseadressen zur Ausgabe
des Videosignals aus dem Transformationsspeicher zur Anzeige
im Zielraum. Eine Adreßgenerierung für digitale Videoeffekte
ist grundsätzlich beispielsweise aus Ruelberg, K.D.: Adreß
generierung in digitalen Video-Effektgeräten; in FERNSEH- UND
KINO-TECHNIK, 46. Jahrgang, 1992, Nr. 7-8, Seiten 487-496
bekannt. In diesem Artikel werden verschiedene Adreßgenerie
rungen, insbesondere auch die Verwendung von Vorwärts- und
Rückwärtstransformationen, genannt. Gemäß der oben zitierten
US-Patentschrift Nr. 4 689 681 wird eine Adresse sowohl für
die X- als auch die Y-Achse für jeden ausgegebenen Bildpunkt
im Zielraum erzeugt, wobei die Genauigkeit der Adresse für
beide Achsen eine ganzzahlige Bildpunktadresse übersteigt. Der
als Bruch vorliegende oder "unter einem Bildpunkt liegende"
Abschnitt der Adresse wird dazu verwendet, eine einfache
lineare 4-Punkt-Interpolation durchzuführen, um den Bild
punktwert im Zielraum zu bestimmen. Die bei einem derartigen
digitalen Bildmanipulator verfügbaren Transformationen sind
jedoch auf einen bestimmten Satz begrenzt und nicht flexibel
genug, als daß problemlos neue Transformationen ohne Modifika
tion des existierenden Produktes durchgeführt werden könnten.
Es wird daher ein äußerst flexibles Verfahren zur Durchführung
programmierbarer Videobildtransformationen in Echtzeit ge
wünscht, das eine praktisch unbegrenzte Anzahl von kreativen
Videoeffekten ermöglicht.
Dementsprechend stellt die vorliegende Erfindung ein Verfahren
zur Durchführung einer programmierbaren Videotransformation
zur Verfügung, bei dem eine beliebige Rückwärtsadressenabbil
dung für jeden Abschnitt einer Abtastzeile für ein ausgegebe
nes Bild regeneriert wird, eine passende Gleichung ausgewählt
wird und eine Gruppe entsprechender Konstanten an eine Wieder
gabeeinheit übermittelt werden. Die Abtastzeile im Zielraum
für das ausgegebene Bild wird gemäß einer stetigen Funktion
mit Gleichheit an einem vorgegebenen Satz von Punkten auf ein
kontinuierliches Liniensegment im Quellraum für das eingegebe
ne Bild angepaßt. Der Fehler zwischen der stetigen Funktion
und dem eingegebenen Bild wird an Punkten zwischen dem spezi
fizierten Satz von Punkten ermittelt, und wenn der Fehler eine
Schwelle übersteigt, wird das kontinuierliche Liniensegment
unterteilt, bis der Fehler unter der Schwelle liegt. Die sich
für jedes kontinuierliche Liniensegment ergebenden Parameter
werden kodiert, um die Gesamtzahl von Anweisungen, die zum
Laden der Parameter in ein Register für jedes kontinuierliche
Liniensegment erforderlich sind, zu verringern. Die Transfor
mationsfunktion wird unter Verwendung der Parameter im Regi
ster für jedes kontinuierliche Liniensegment durchgeführt, um
die Rückwärtsadressenabbildung zu erzeugen, die das ausgegebe
ne Bild im Zielraum wiedergibt.
Weitere Aufgaben, Vorteile und andere neuartige Merkmale der
vorliegenden Erfindung ergeben sich nachstehend aus der de
taillierten Beschreibung, in der auf die beigefügten Zeichnun
gen Bezug genommen wird.
Es zeigen
Fig. 1 eine schematische Darstellung der Übertragung eines
Bildes aus einem Quellraum in einen Zielraum gemäß
vorliegender Erfindung;
Fig. 2 eine allgemeine Blockschaltbilddarstellung eines
digitalen Bildmanipulators zur Durchführung einer
programmierbaren Videotransformation gemäß vorlie
gender Erfindung;
Fig. 3 eine detaillierte Blockschaltbilddarstellung eines
digitalen Bildmanipulators zur Durchführung einer
programmierbaren Videotransformation gemäß vorlie
gender Erfindung;
Fig. 4 eine Blockschaltbilddarstellung eines programmier
baren Transformationskanals für den digitalen Bild
manipulator gemäß Fig. 3;
Fig. 5 ein Zeitablaufdiagramm für den programmierbaren
Transformationskanal gemäß Fig. 4;
Fig. 6 eine Darstellung eines Anweisungswortes für den pro
grammierbaren Transformationskanal aus Fig. 4;
Fig. 7 eine veranschaulichende Darstellung eines Blockes
von Videodaten gemäß vorliegender Erfindung;
Fig. 8 eine Blockschaltbildansicht einer Zeitgenerators
gemäß vorliegender Erfindung;
Fig. 9 eine Zustandsdiagrammdarstellung für eine Anwei
sungsdekodier-Zustandsmaschine für den programmier
baren Transformationskanal gemäß vorliegender Erfin
dung;
Fig. 10 eine Blockschaltbildansicht eines programmierbaren
Rückwärtsadressengenerators gemäß vorliegender Er
findung;
Fig. 11 eine Blockschaltbildansicht eines programmierbaren
Vorwärtsadressengenerators gemäß vorliegender Erfin
dung;
Fig. 12 eine Blockschaltbildansicht einer programmierbaren
Filterauswahlschaltung gemäß vorliegender Erfindung;
Fig. 13 eine Blockschaltbildansicht einer Anweisungspuffer
speicher-Zustandsmaschine gemäß vorliegender Erfin
dung.
Wie in Fig. 1 dargestellt ist, soll ein Quellbild derart in
ein Zielbild umgewandelt werden, daß dabei eine Linie AB im
Quellbild in einen Abschnitt einer Abtastzeile AB im Zielbild
umgewandelt wird. Obgleich bei diesem Beispiel nur eine ein
zige Quelle und zwei Dimensionen verwendet werden, läßt sich
das zugrundeliegende Konzept auch auf mehrere Quellen und vier
Dimensionen, einschließlich Tiefe und Zeit, anwenden. Zum
Zwecke der Veranschaulichung ist jedoch nur dieser einfache
Fall dargestellt. Die Werte für die Quelladressen können unter
Verwendung einer linearen Gleichung
Y = m * X + b
berechnet werden. Die entsprechenden Konstanten sind eine
Steigung (m) und ein Schnittpunkt (b). Eine geeignetere Form
der Gleichung wäre ein Ausgangswert und eine Steigung.
In diesem Fall ist am Punkt A der Ausgangswert für X gleich
0,2 und er steigt um den 1,2fachen Betrag der X′-Verschiebung
im Zielbild. Für Y am Punkt A ist der Ausgangswert 0,8 und er
verringert sich um den 1,4fachen Betrag der X′-Verschiebung.
Daher sind die Anweisungen für dieses Liniensegment AB derart,
daß das Verhältnis zwischen X und Y unter Verwendung einer
Gleichung für eine Gerade, mit Ausgangsparametern von
Xo = 0,2, Yo = 0,8, Xsteig = 1,2 und Ysteig = -1,4, ermittelt
werden kann. Hierbei handelt es sich um einen ausreichenden
Satz von Daten, so daß eine Wiedergabeeinheit einen vollen
Satz Adreßdaten wiedererzeugen kann, um das Quellbild zur Er
zeugung des Zielbildes richtig abzutasten.
Der mögliche Satz von Gleichungen, die in diesem Verfahren
angewandt werden können, ist endlos. Jede übliche mathemati
sche Reihe, die ein kontinuierliches Zeilensegment darstellt,
kann ebenso verwendet werden wie Bruchgleichungen. Die bevor
zugte Reihe ist jedoch ein einfacher polynomischer Term, auf
grund folgender Vorteile:
- - leichte Implementierung unter Verwendung eines mini malen Aufwandes an Schaltungen zur Ausführung der Berechnungen; und
- - Verfügbarkeit relativ einfacher und effizienter Al gorithmen zum Einpassen einer gewünschten Trajekto rie aus dem Quellbild in das Zielbild.
Das voranstehend angegebene Beispiel einer Gerade ist ein Po
lynom ersten Grades. Dieses Polynom ersten Grades ist der mi
nimale Satz, der zur Ausführung allgemeiner Transformationen
erforderlich ist. Eine stückweise Annäherung kann durchgeführt
werden, um eine gewünschte Trajektorie im Quellbild besser
nachzubilden. Wenn beispielsweise Fehler aufgrund der Tatsa
che, daß geradlinige Annäherungen zur Erzeugung von sowohl X- als
auch Y-Adressen durchgeführt werden, eine Schwelle über
steigen, kann das Zeilensegment im Zielbild in zwei oder mehr
Segmente aufgeteilt werden, um den Gesamtfehler zu verringern.
In Abhängigkeit von der Trajektorie zwischen Quelle und Ziel,
die nachgebildet werden soll, können zwei Schritte unternommen
werden, um die Fehler bei polynomischen Reihen zu verringern.
Entweder kann das Zeilensegment wie oben beschrieben in klei
nere Stücke aufgeteilt werden, oder ein Polynom höheren Grades
kann verwendet werden. Eine zusätzliche Konstante ist für je
den weiteren Grad des Polynoms erforderlich. In jedem der bei
den Fälle ist mehr Information erforderlich, um die Adressen
des Quellraumes wiederzuerzeugen. Für das Beispiel der komple
xen "Scherben"-Transformation reichen Polynome zweiten oder
dritten Grades aus, um ausgezeichnete Ergebnisse zu erzielen.
Soll die Video-"Scherbe" im Zielraum ordnungsgemäß aussehen,
sollten die Adressen für den Anfangs- und den Endpunkt einer
jeden Linie nur minimalen Fehler haben. Wird ein Polynom er
sten Grades verwendet (Gerade), ist es durch diese Endpunkte
definiert. Wird ein Polynom zweiten Grades verwendet, belegen
die Endpunktkriterien zwei der drei Freiheitsgrade. Ein nume
risch einfacher Ansatz besteht darin, auch am Mittelpunkt zwi
schen den Endpunkten auf einen Fehler von Null zu kommen. Eine
einigermaßen einfache Schätzung des sich einstellenden Fehlers
wird durch eine Berechnung der Fehler an den Viertelpunkten
erhalten. Bei Verwendung eines Polynoms dritten Grades belegen
die Endpunktkriterien zwei der vier Freiheitsgrade. Ein nume
risch einfacher Ansatz besteht darin, einen Fehler von Null an
den Drittelpunkten zwischen den Endpunkten zu haben. Eine ei
nigermaßen einfache Fehlerschätzung erhält man durch Be
rechnung des Fehlers an den 1/6tel Punkten.
Ein Algorithmus zur Durchführung einer programmierbaren Trans
formation eines Zielbildes aus einem Quellbild gemäß einer
gegebenen Transformationsfunktion ist folgender:
- 1. Für eine gegebene Abtastzeile im Zielbild, finde ein kon tinuierliches Liniensegment im Quellbild, das auf die Ab tastzeile abgebildet wird.
- 2. Berechne die Rückwärtsadressen für das Liniensegment an den Endpunkten.
- 3. Wenn bekannt ist, daß sich bei einer Anpassung durch eine
Gerade Fehler entweder aufgrund von Erfahrungen bei einer
früheren Linie oder aufgrund der Art der Transformation
ergeben, springe zu Schritt 6. Ansonsten passe eine Linie
für jeden Parameter der Rückwärtsadresse auf Grundlage
der beiden Endpunkte an:
Wenn Punkt A1 (Quelle) zu X1 (Ziel) transformiert wird und A2 zu X2 transformiert wird, finde m und b für die lineare Gleichung: X = m * A + bm = (X2 - X1)/(A2-A1) . . . Steigung
b = X1 - m * A1 . . . Schnittpunkt - 4. (Optional) Wenn das Zielzeilensegment kurz ist, d. h. we niger als sechs Bildpunkte umfaßt, folge der linearen Gleichung.
- 5. Berechne die Rückwärtsadresse am Mittelpunkt: Amp = A Mittelpunkt = (A1 + A2)/2Vergleiche den aufgrund der linearen Annäherung berech neten Wert mit der linearen Gleichung aus Schritt 3. Ist die Differenz oder der Fehler gering genug, höre auf.
- 6. Für die nachstehende polynomische Gleichung:
X = a * A * A + b * A + cwobei die Gleichung an den Endpunkten und dem Mittelpunkt
erfüllt ist,
f(A) = X1, A = A1
f(A) = X2, A = A2
f(A) = Xmp, A = Amplöse den linearen Satz Gleichungen nach a, b und c auf. - 7. Berechne die Transformation für die Rückwärtsadressen an
den Viertelpunkten
Avp1 = erster Viertelpunkt = A1 + (A2 - A1)/4
Avp2 = zweiter Viertelpunkt = A1 + 3 * (A2 - A1)/4Berechne den Fehler an den Viertelpunkten. Wenn der Feh ler innerhalb bestimmter Grenzen liegt oder das Zeilen segment zu kurz ist, d. h. weniger als zehn Bildelemente beträgt, höre auf. Wenn der Fehler an einem der beiden Viertelpunkte zu groß ist, teile die Zielraum-Abtastzeile in zwei auf und kehre zu Schritt 6 zurück.
Der Algorithmus läßt sich wie folgt weiter erweitern:
- 8. Wenn der Fehler aus Schritt 7 zu groß ist, berechne die
Rückwärtsadressen an den Drittelpunkten:
Adp1 = erster Drittelpunkt = A1 + (A2 - A1)/3
Adp2 = zweiter Drittelpunkt = A1 + 2 * (A2 - A1)/3 - 9. Ist für die folgende Gleichung
X = a * A * A * A + b* A * A + c * A + dgegeben, daß diese Gleichung an den Endpunkten und Drit
telpunkten erfüllt ist:
f(A) = X1, A = A1
f(A) = X2, A = A2
f(A) = Xdp1, A = Adp1
f(A) = Xdp2, A = Adp2
löse den linearen Satz Gleichungen nach a, b, c und d auf. - 10. Berechne die Transformationsadressen an den Sechstelpunk
ten:
Asp1 = erster Sechstelpunkt = A1 + (A2 - A1)/6
Asp2 = zweiter Sechstelpunkt = A1 + 5 * (A2 - A1)/6Berechne den Fehler an den Sechstelpunkten und am Mittel punkt. Wenn der Fehler innerhalb der bestimmten Grenzen liegt oder das Liniensegment zu kurz ist, d. h. weniger als zehn Bildelemente enthält, höre auf. Wenn der Fehler bei irgendeinem der drei Liniensegmenten außerhalb der Grenzen liegt, dann sind die Endpunkte für neue Abtast zeilensegmente des Zielraumes berechnet worden, und kehre für jedes Segment zu Schritt 5 zurück.
Der obenstehende unerweiterte Algorithmus (Schritte 1-7) läßt
sich am schnellsten berechnen, es werden jedoch mehr Daten
erzeugt. Der erweiterte Algorithmus (Schritte 1-10) erzeugt
weniger Daten, aber seine Berechnung nimmt mehr Zeit in An
spruch.
Es wird nunmehr auf Fig. 2 Bezug genommen, in der ein digitaler
Bildmanipulator (DBM) zum Durchführen von Transformationen
an einem Eingangs-Videosignal, das ein Bild im Quellraum dar
stellt, gezeigt wird. Wie voranstehend mit Bezug auf U.S.-Pa
tent Nr. 4,689,681 erläutert wurde, hat der DBM ein Ein
gangsfilter 12, durch das das Videosignal läuft. Das gefilter
te Videosignal wird in einem Transformationsspeicher 14 unter
der Steuerung eines Vorwärtsadressengenerators (VAG) 16 ge
speichert, der auch das spezielle als Eingangsfilter 12 einge
stellte Filter steuern kann. Ein Rückwärtsadressengenerator
(RAG) 18 erzeugt Bildelementadressen für den Zielraum auf der
Grundlage des Platzes benachbarter Bildelemente im Quellraum
gemäß einer gewünschten Transformation zwischen dem Quell- und
dem Zielraum. Da das Bildelement im Zielraum im allgemeinen
nicht mit einem Bildelement im Quellraum übereinstimmt, hat
die Bildelementadresse vom RAG 18 einen ganzzahligen Anteil
und einen als Bruch vorliegenden Anteil, der den Platz des
Bildelementes für den Zielraum in Abhängigkeit eines Punkts im
Quellraum definiert, der in einem von vier Bildelementen im
Quellraum definierten Bereich liegt. Diese vier Bildelemente
werden gemäß dem ganzzahligen Anteil der Auslese-Adresse aus
dem Transformationsspeicher 14 ausgelesen und einem Interpola
tor 20 eingegeben, der die vier Bildelemente vom Quellraum
gemäß dem Bruch-Anteil der Auslese-Adresse zu einem Bildele
ment für den Zielraum kombiniert. Das Ausgangssignal des In
terpolators 20 ist ein transformiertes Videosignal, das das
Bild im Zielraum darstellt.
In Fig. 3 ist eine Schaltung dargestellt, die auf einer ein
zigen digitalen Videoeffekt (DVE)-Leiterplatte ausgebildet
sein kann, bei der der DBM aus Fig. 2 in einer programmierba
ren Architektur implementiert ist, um die voranstehend angege
benen Algorithmen durchzuführen. Die Schaltung kann durch eine
Steuerung (nicht dargestellt) programmiert werden, um die ge
wünschte Flexibilität zur Erzeugung einer praktisch unbegrenz
ten Palette von Videoeffekten zur Verfügung zu stellen. Damit
die Schaltung bei Verwendung des Rückwärtstransformationsmo
dells flexibel ist, muß jedes Bildelement im Zielraum mit ei
ner Rückwärtsadresse (sowohl X als auch Y) versorgt werden.
Die für sowohl die X- als auch die Y-Adresse erforderliche
Genauigkeit, um eine ausreichende, unter einem Bildpunkt lie
gende Genauigkeit zu ermöglichen, liegt in der Größenordnung
von 32 Bits pro Adresse, d. h. sie beträgt im Vergleich zu Vi
deodaten, die im allgemeinen 8 Bits pro Bildelement haben, das
Vierfache der Daten des eigentlichen Bildes. Damit die Trans
formationsschaltung auf Echtzeit- oder Fast-Echtzeit-Basis
gesteuert werden kann, ist eine Hardware-Unterstützung vorge
sehen, und Anweisungen sind hinsichtlich ihrer Daten kompri
miert, um einen Satz Rückwärtsadressen zu erzeugen. Obwohl die
Wiedererzeugung einer beliebigen Rückwärtsadressenabbildung in
ihrer einfachsten Form eine Gerade, oder ein lineares Polynom
(ersten Grades) verwendet, werden bei einem derartigen Ansatz
zu viele Daten für einen gegebenen Fehler erzeugt. Polynome
zweiten und dritten Grades ergeben gute Umsetzungen, wobei die
Polynome zweiten Grades mehr Daten ergeben als die Polynome
dritten Grades. Beim Polynom zweiten Grades läßt sich jedoch,
wie unten beschrieben, ein guter Kompromiß zwischen Berechnun
gen und Daten erzielen. Für jede Zeile oder Abschnitt einer
Zeile im Zielbild wird ein Satz Parameter für Polynome zweiten
Grades sowohl für X als auch für Y bereitgestellt, der be
schreibt, von wo im Quellbild der Zielbildpunkt abgeleitet
ist. Diese Anweisungen werden lauflängenkodiert, wie es nach
stehend beschrieben ist, was die Anzahl von Bildpunkten er
gibt, die diese Parameter enthalten, so daß es möglich ist,
mehrere verschiedene Sätze von Parametern für jede beliebige
Videolinie für komplexe Effekte zu haben.
Ein FIFO-Anweisungs-Register 22 empfängt Anweisungen gemäß
einer gewünschten Transformation von der Steuerung. Die Anwei
sungen vom FIFO 22 werden zur Verarbeitung der Videodaten an
eine anwenderspezifische integrierte Schaltung (ASIC) 24Y für
den Luminanzkanal und an eine identische ASIC 24C für den
Chrominanzkanal gelegt. Die Anweisungen enthalten sowohl Be
fehlswörter als auch Datenwörter. Die ASICs 24Y, 24C für den
Luminanz- bzw. den Chrominanzkanal umfassen VAG 16, RAG 18 und
Interpolator 20, wie in Fig. 2 gezeigt. Das eingegebene Video
signal, beispielsweise ein digitales Video im Format 4 : 2 : 2,
wird einem Demultiplexer 28 eingegeben, um die Luminanz- Y und
die Chrominanzkomponenten UV unter der Steuerung einer Zeit
taktgeneratorschaltung 30 zu trennen, wie es im Stand der
Technik wohlbekannt ist. Die Komponenten Y, UV werden an das
Eingangsfilter 12Y, 12C gelegt. Die Parameter des Eingangsfil
ters 12Y, 12C werden von einem Filterauswahl-(FA)Ausgang der
Kanal-ASICs 24Y, 24C bestimmt. Die Komponentenausgangssignale
des Eingangsfilters 12Y, 12C werden an die entsprechenden Ab
schnitte des Transformationsspeichers 14 gelegt, der in dieser
Ausführungsform in einen Chrominanzabschnitt 14C und einen
Luminanzabschnitt 14Y unterteilt ist, wobei jeder Abschnitt in
gerade G und ungerade U Speicherbereiche unterteilt ist.
Jeder Kanal-ASIC 24 hat als Eingangssignale die Anweisungen
vom Anweisungs-FIFO 22, einen Bildelementtakt PIX_CLK, einen
Takt 3 * PIX_CLK, der dreimal so hoch ist wie die Bildelemen
taktgeschwindigkeit, um vier Bildelemente zur Interpolation
innerhalb eines Bildelementintervalles auszulesen und ein
Bildelement einzuschreiben (zwei Bildelemente pro Zyklus aus
jedem Speicherbereich des Transformationsspeichers 14 und ein
Bildelement pro Zyklus in einen der Speicherbereiche des Fil
ters 12), und eine Rahmenrechteckwelle, oder einen Rahmenim
puls RI. Jeder Kanal-ASIC stellt auch Adressen und Schreib
freigabesignale zusammen mit einem Takt seinem zugehörigen
Abschnitt des Transformationsspeicher 14 bereit, empfängt
Bildelementdaten vom Transformationsspeicher zur Interpolation
und erzeugt ein transformiertes Ausgangssignal zusammen mit
einem zugehörigen Schlüsselsignal.
Über die Anweisungen werden die Polynomvariablen für den RAG
und die Filterdaten zur Wahl des Eingangsfilters in den Kanal-
ASIC 24 geladen, und zwar als benötigte Grundlage, in Form von
lauflängenkodierten Daten, jedoch mindestens einmal pro Zeile.
Wie bereits erwähnt, können für einige Effekte mehrere Parame
ter mehr als einmal pro Zeile aktualisiert werden. Die bereit
gestellten Daten sind die Parameter für ein Polynom zweiten
Grades sowohl in X als auch in Y, da sie aus dem Quellraum in
den Zielraum abbilden. Die Steuerung berechnet die Rückwärts
transformation gemäß Eingaben des Bedieners und wandelt die
Transformation in lauflängenkodierte Anweisungen um. Aufgrund
der Berechnungszeit können komplizierte Effekt nicht im lau
fenden Betrieb ablaufen, vorberechnete Effekte können jedoch
in Echtzeit abgespielt werden.
Der Kanal-ASIC 24 ist im einzelnen in Fig. 4 dargestellt. Das
Rahmenimpuls-(RI)Signal wird einem Zeitablaufgenerator 32
eingegeben, der die zur Dekodierung der Anweisungen erforder
lichen Taktsignale erzeugt. Das Taktsignal wird einer Anwei
sungsdekodierer-Zustandsmaschine 34 eingegeben. Die Anwei
sungsdekodierer-Zustandsmaschine 34 empfängt Steuersignale von
der Steuerung und liefert Statusinformationen an die Steue
rung. Die Anweisungsdekodierer-Zustandsmaschine 34 ist auch
mit einem Anweisungsbus 36 verbunden, um Anweisungen zum Deko
dieren zu empfangen und Freigabesignale zum Laden von Daten
aus den Anweisungen in verschiedene Schaltungselemente zu er
zeugen, beispielsweise in vier Anweisungspuffer-Zustandsma
schinen (ICSMs) 38, 40, 42, 56 und ein Konstantenregister 44.
Eine Filterauswahlschaltung 46, die Parameterdaten von einer
Vorwärtsadressen-ICSM 38 empfängt, und ein einzelner Euler
scher Integrator 48, der ebenfalls Parameterdaten von der Vor
wärtsadressen-ICSM empfängt, bilden den Vorwärtsadressengene
rator 16′. Ein Paar Eulerscher Integratoren 50, 52 zweiten
Grades bilden zusammen mit ihren zugehörigen ICSMs 40, 42 den
Rückwärtsadressengenerator 18′.
Die ICSMs 38, 40, 42, 56 bieten eine Speicherungsmöglichkeit
für alle Konstanten, die die Eulerschen Integratoren 48, 50,
52, 58 benötigen. Für jeden gespeicherten Konstantensatz gibt
es eine Lauflänge, oder eine Angabe darüber, wie lange die
Konstanten gültig bleiben, ausgedrückt in Zielbildelementen.
Die Eulerschen Integratoren 48, 50, 52, 58 greifen auf die
Konstanten in den ICSMs 38, 40, 42, 56 zu, um eine Rückwärts
adresse zu erzeugen. Die Adressenauflösungs- und Multiplexer
schaltung 54 verwendet die ganzzahligen Anteile der X- und Y-Rückwärtsadressen
aus den Eulerschen Integratoren 50, 52 zwei
ten Grades und inkrementiert diese Werte, um die vier Lese
adressen für den Speicher 14 (XI, YI; XI, YI+1; XI+1, Y₁; XI+1, YI+1)
zu erzeugen, die die Rückwärtsadresse im Quellraum umgeben.
Die Bildelementwerte an diesen vier Adressen aus dem Quellraum
werden vom Speicher 14 zusammen mit den als Brüche vorliegen
den Teilen der Rückwärtsadressen (XF, YF) von den Eulerschen
Integratoren 50, 52 zweiten Grades in den Integrator 20′ ein
gegeben. Der resultierende interpolierte Wert wird als der
Zielbildelementwert für diese Rückwärtsadresse ausgegeben.
Es wird nunmehr auf das Zeitablaufdiagramm aus Fig. 5 Bezug
genommen, in dem die Vorwärtsadresse einmal pro Bildelementzy
klus in der Mitte des Bildelementzyklus bereitgestellt wird,
um ein Bildelement aus dem Quellraum in den Transformations
speicher 14 einzuschreiben. Wie angegeben, gibt es zwei
Schreib- und vier Lesezyklen pro Bildelementzyklus, wobei nur
einer der Schreibzyklen verwendet wird. Vier Leseadressen wer
den pro Bildelementzyklus bereitgestellt, um vier Bildelemente
aus dem Transformationsspeicher 14 in den Interpolator 20′
einzulesen, um das entsprechende Zielbildelement zu erhalten.
Eine Adressenauflösung- und Multiplexerschaltung 54 erzeugt
das Schreibfreigabesignal WE für den entsprechenden Bereich
aus dem niedrigstwertigen Bit der Schreibadresse, und stellt
die Schreib- und Leseadressen zur passenden Zeit bereit, um
ordnungsgemäße Schreib-/Lesevorgänge zu gewährleisten. Der Ka
nal-ASIC 24 hat auch einen Schlüsselkanal, der eine Schlüssel-
ICSM 56 und einen weiteren Eulerschen Integrator 58 aufweist,
um den Schlüssel parallel zum Video zu transformieren.
Jede Anweisung für den programmierbaren digitalen Bildmanipu
lator (DBM) kann ein 16-Bit-Wort sein, wie es in Fig. 6 darge
stellt ist. Das erste Bit ist ein Paritätsbit P für die Anwei
sung, um Parität für die Anweisungsdaten bereitzustellen. Das
zweite Bit T ist ein Schalter, der zwischen dem Laden von
Laufzeitdaten und dem Laden konstanter Daten umschaltet. Das
dritte Bit F definiert, wie das nächste Anweisungswort inter
pretiert wird, entweder ein konstanter Wert oder ein Wert, der
die Anzahl der nachfolgenden konstanten Werte angibt. Das
vierte Bit G definiert, wie die nächsten drei Bits interpre
tiert werden sollen, entweder global an alle ASICs 24 oder an
einen bestimmten ASIC. Die nächsten drei Bits C definieren die
individuelle ASIC-Adresse, an die eine Anweisung gerichtet ist
und stimmt Modusleitungen ab, die mit dem ASIC festverdrahtet
sind. Die übrigen Bits A definieren eine Adresse für eine in
terne Konstante. Im Laufmodus werden die Bits A zu drei Bits
S, die angeben, welche ICSM 38, 40, 42, 56 gerade von der An
weisung adressiert wird, und Bits I, oder individuelle Flag
bits, die definieren, welche Konstanten in der adressierten
ICSM durch diese Anweisung verändert werden sollen. Für alle
Bits I mit einem Wert von "1" folgt ein Datenwort mit konstan
tem Wert. Haben alle Bits I einen Wert von "0", dann wird die
Anweisung als NOP (No Operation) für eine Lauflängenzählung
behandelt. Die Adresse wird entweder festgehalten oder springt
zu einer RAG-Festhalteadresse. Daher folgt auf eine Anweisung
eine feste Anzahl von Bytes, die von den aktivierten Bits I
bestimmt wird, und dann ein Lauflängenwert, der die Anzahl von
Bildelementen im Zielraum angibt, auf die die Laufdaten der
Anweisung anwendbar sind, ehe auf eine neue Anweisung zur Aus
führung zugegriffen wird.
Zum Beispiel lassen sich die Bits S wie folgt definieren:
0 : 000 - X - Rückwärtsadressengenerator 40
1 : 001 - Y - Rückwärtsadressengenerator 42
2 : 010 - Z - Rückwärtsadressengenerator 56
3 : 011 - Filterauswahl/VAG X & Y Generator 38
7 : 111 - Global
1 : 001 - Y - Rückwärtsadressengenerator 42
2 : 010 - Z - Rückwärtsadressengenerator 56
3 : 011 - Filterauswahl/VAG X & Y Generator 38
7 : 111 - Global
Die Bits I für die Rückwärtsadressengeneratoren 40, 42, 56
lassen sich wie folgt definieren:
I5 und I4 32-Bit Wert für einen Term zweiten Grades
des Eulerschen Integrators
I3 und I2 32-Bit Wert für einen Term ersten Grades des Eulerschen Integrators
I1 und I0 32-Bit Wert für einen Term nullten Grades des Eulerschen Integrators.
I3 und I2 32-Bit Wert für einen Term ersten Grades des Eulerschen Integrators
I1 und I0 32-Bit Wert für einen Term nullten Grades des Eulerschen Integrators.
Die Bit I für den Filterwähler/Vorwärtsadressengenerator 38
können wie folgt definiert werden:
I5 16-Bit Wert für den ersten Eulerschen Term
des Eulerschen Integrators (Filterauswahl)
I4 16-Bit Wert für den nullten Eulerschen Term des Eulerschen Integrators (Filter auswahl)
I3 16-Bit Wert für den ersten Eulerschen Term des Eulerschen Integrators (Y-Vorwärts adresse)
I2 16-Bit Wert für den nullten Eulerschen Term des Eulerschen Integrators (Y-Vor wärtsadresse)
I1 16-Bit Wert für den ersten Eulerschen Term des Eulerschen Integrators (X-Vorwärts adresse)
I0 16-Bit Wert für den nullten Eulerschen Term des Eulerschen Integrators (X-Vor wärtsadresse)
I4 16-Bit Wert für den nullten Eulerschen Term des Eulerschen Integrators (Filter auswahl)
I3 16-Bit Wert für den ersten Eulerschen Term des Eulerschen Integrators (Y-Vorwärts adresse)
I2 16-Bit Wert für den nullten Eulerschen Term des Eulerschen Integrators (Y-Vor wärtsadresse)
I1 16-Bit Wert für den ersten Eulerschen Term des Eulerschen Integrators (X-Vorwärts adresse)
I0 16-Bit Wert für den nullten Eulerschen Term des Eulerschen Integrators (X-Vor wärtsadresse)
Der Rahmenimpuls ist das grundlegende Takteingangssignal und
der gesamte Zeitablauf leitet sich von diesem Signal ab. Ein
internen Rahmen ist in Fig. 7 dargestellt und der Taktgenera
tor 32 ist im einzelnen in Fig. 8 gezeigt. Es gibt mehrere
Register, die verschiedene Konstanten bezüglich der Halbbild-
Zeitgebung speichern, und ein Paar Zähler. Eine horizontale
Abtastung von Null ist der Zählwert vor Beginn des aktiven Vi
deos, und eine vertikale Abtastung von Null ist der Zählwert
vor der ersten Zeile des aktiven Videos. Im NTSC-System gibt
es zum Beispiel 858 Abtastwerte pro Zeile, so daß HTERM auf
857 eingestellt ist. Für 720 Abtastwerte des aktiven Videos
pro Zeile gibt es 138 Austastwerte, so daß HBLANK auf 137 ein
gestellt ist. Bei den beiden Halbbildern hat das eine Halbbild
262 Zeilen und das andere 263 Zeilen, so daß VTERM1 auf 261
und VTERM2 auf 262 gesetzt ist. Beträgt die Austastbreite 20
Zeilen, dann ist VBLANK auf 20 gesetzt. HOFFSET und VOFFSET
definieren, wohin im Rahmen die Zähler springen, wenn der
Rahmenimpuls von hoch auf tief geht.
Die Register, in denen die verschiedenen Konstanten gespei
chert sind, sind Teil der konstanten Register 44, die vom An
weisungsbus während eines konstanten Ladungs- (Nichtlaufzeit)
Vorganges (T=0) geladen werden. HTERM wird in ein HTERM-Regi
ster 60 geladen, HOFFSET wird in ein HOFFSET-Register 62 ge
laden, HBLANK wird in ein HBLANK-Register 64 geladen, VTERM1
wird in ein VTERM1-Register 66 geladen, VTERM2 wird in ein
VTERM2-Register 68 geladen, VBLANK wird in ein VBLANK-Register
70 geladen und VOFFSET wird in ein VOFFSET-Register 72 gela
den. In einen H-Zähler 74 wird der Wert von HTERM, wie er am
Anfang einer jeden Zeile von HOFFSET modifiziert wurde, gela
den, während in einen V-Zähler 76 der passende Wert von VTERM,
wie er durch VOFFSET am Anfang jeden Halbbildes modifiziert
wurde, geladen wird. Der passende VTERM-Wert wird durch einen
Schalter S1 ausgewählt, der vom Zustand der Rahmenrechteckwel
le gesteuert wird. Der H-Zähler zählt in einer Bildelement
taktgeschwindigkeit herunter und wird am Ende einer jeden Zei
le neu geladen, wohingegen der V-Zähler mit einer Zeilenge
schwindigkeit herunterzählt und am Ende eines jeden Halbbildes
neu geladen wird. Das Ausgangssignal vom H-Zähler 74 wird in
einem H-Komparator 78 mit HBLANK vom HBLANK-Register 64 ver
glichen, um den aktiven Videoanteil einer jeden Zeile zu iden
tifizieren, und das Ausgangssignal vom V-Zähler 76 wird in
einem V-Komparator 80 mit VBLANK vom VBLANK-Register 70 ver
glichen, um die aktiven Videozeilen für jedes Halbbild zu
identifizieren. Die Ausgangssignale der Komparatoren 78, 80
werden einem UND-Gatter 82 eingegeben, um ein Signal bereit zu
stellen, das die aktive Videozeit für jeden Rahmen angibt.
Die Anweisungsdekodier-Zustandsmaschine 34 ist die steuernde
Zustandsmaschine für den ASIC 24. Sie überwacht die Anweisun
gen, die an den AS1C gelangen, direkte Hardware-Eingaben wie
RÜCKSETZEN, und den Status von allen ICSMs 38, 40, 42, 56 und
sie steuert ebenfalls die FIFO-Einstellungen. Die in Fig. 9
gezeigten Zustände sind RÜCKSETZEN 84, wenn die Rücksetzzeile
aktiviert ist; WARTEN 86, um alles zwischen den Anweisungen zu
halten; ANWEISUNG 88, wenn eine Anweisung empfangen wird. AN-
WEISUNG 88 ist ein aktiver Zustand, der bestimmt, welche Art
von Anweisung empfangen wird, gemäß den T- und F-Bits des An
weisungswortes: RUN 90 (T=1, F=1), SINGLE_CONSTANT 92 (T=0,
F=1), MULTI-CONSTANT 94 (T=0, F=0) oder MEMORY 96 (T=1, F=0).
Für die RUN-Anweisung wird eine Lauflänge extrahiert (Schritt
98) und anschließend werden die Daten in die adressierte ICSM
geladen (Schritt 100). Ist die ICSM erst einmal geladen, wird
(wieder) auf den ANWEISUNG-Zustand 88 zurückgegangen, um eine
weitere Anweisung zu empfangen.
Ein Beispiel einer der RAG-Eulerschen Integratoren 40, 42
zweiten Grades ist in Fig. 10 gezeigt. Ein Paar Summierschal
tungen 102, 104, ein Paar Schalter S2, S3 und ein Paar Akkumu
latorenregister 106, 108 mit passenden Rückkoppelwegen bilden
den Integrator. Das Ausgangssignal vom zweiten Akkumulatoren
register 108 wird einer Verstärkungsskalierschaltung 110 ein
gegeben, die von einem VERSTÄRKUNGs-Wert gesteuert wird, wel
cher durch eine Anweisung in ein Verstärkungsregister 112 ge
laden wird. Der skalierte Wert der Verstärkungsskalierschal
tung 110 wird einer Grenzwertschaltung 114 eingegeben, die die
Grenzen MIN und MAX für die entsprechenden Register 116, 118
hat. Die Grenzwertschaltung 114 ist für den Fall vorgesehen,
in dem das Zielbild erweitert wird, so daß ein Teil des ur
sprünglichen Quellbildes außerhalb des Zielbereiches liegt.
Die resultierende Adresse der Grenzwertschaltung 114 wird in
ein Ausgangsadressenregister 120 getaktet. Bei einer No Opera
tion (NOP) Laufanweisung bleibt entweder die aktuelle Adresse
im Ausgangsregister 120 unverändert oder eine von einem
Sprungregister 124 geladene Sprungadresse wird von der Grenz
wertschaltung 114 in das Ausgangsregister geladen, in Abhän
gigkeit vom Modusbit, das in ein RAG-Halteregister 122 geladen
wird.
Einer der VAG Eulerschen Integratoren ersten Grades zum Erzeu
gen der Schreibadressen ist in Fig. 11 dargestellt. Eine ein
zige Summierschaltung 126, Schalter S4 und Akkumulatorenregi
ster 128 mit passendem Rückkoppelweg bilden den Integrator,
und eine Verstärkungsskalierschaltung 130 mit zugehörigem Re
gister 132 und eine Grenzwertschaltung 134 mit zugehörigen
Registern 136, 138, 140, 142 stellen eine Vorwärtsadresse be
reit, die in ein Ausgangsvorwärtsadressenregister 144 getaktet
wird. Die Filterauswahlschaltung 46, von der ein Element in
Fig. 12 dargestellt ist, ist dem VAG-Integrator 48 sehr ähn
lich. Für jeden Filterabschnitt gibt es einen separaten Fil
terauswahlintegrator.
Jede ICSM 38, 40, 42, 56, wie in Fig. 13 gezeigt, ist mit ei
nem Eingangszähler 160 versehen, der von einem ICSM-Inkremen
tierfreigabebefehl inkrementiert wird. Das Ausgangssignal vom
Eingangszähler 160 gibt an, in welche Spalte der FIFOs gerade
eingeschrieben wird, wie nachstehend ausgeführt ist, und es
wird mit jedem ICSM-Inkrementierfreigabebefehl weitergeleitet,
so daß es jede Spalte durchläuft. Ein Ladefreigabegatter 162
legt einen Ladefreigabebefehl an eines der FIFOs in der Spal
te, in die gerade eingeschrieben wird, wie sie vom Eingangs
zähler 160 gemäß einem ICSM-Ladefreigabebefehl bestimmt wird.
Ebenso legt ein Kopierfreigabegatter 164 einen Kopierfreigabe
befehl an eines der FIFOs in der Spalte, in die gerade einge
schrieben wird, wie sie vom Eingangszähler 160 gemäß einem
ICSM-Kopierfreigabebefehl bestimmt wurde. Die Freigabebefehle
werden von der Anweisungsdekodier-Zustandsmaschine 34 bereit
gestellt. Jedes FIFO 166 in jeder Spalte weist ein Paar Ein
gänge, ein Paar Freigabeleitungen und einen Takteingang auf.
Die ersten sechs FIFOs in jeder Spalte stellen Parameterwerte
bereit, und das letzte FIFO in jeder Spalte stellt einen
Lauflängenwert bereit. Die Eingangssignale der Parameter-FIFOs
kommen entweder von der Datenleitung oder von dem entsprechen
den FIFO in der unmittelbar vorhergehenden Spalte. Hat das Bit
I im Anweisungsbefehl ein "1"-Bit für das gegebene Parameter-
FIFO, dann gibt das ICSM-Ladefreigabesignal dieses FIFO frei,
so daß der Parameterwert der Datenleitung entnommen wird. Hat
das Bit I im Anweisungsbefehl ein "0" -Bit für das gegebene
Parameter-FIFO, dann gibt das ICSM-Kopierfreigabesignal dieses
FIFO frei, so daß der Parameterwert vom entsprechenden FIFO in
die unmittelbar vorhergehende Spalte kopiert wird.
Die Parameterwerte aus jeder Spalte der FIFOs 166 werden einem
Parameter-Multiplexer 168 eingegeben. Die Lauflängenwerte aus
den Lauflängen-FIFOs für jede Spalte werden einem Lauflängen
multiplexer 170 eingegeben. Ein Ausgangszähler 172 stellt ein
Auswahlsignal bereit, das den Parameter- und Lauflängen-Multi
plexern 168, 170 eingegeben wird. Gemäß dem eingegebenen Aus
wahlsignal werden die Parameter aus einer Spalte von den Para
meter-Multiplexern 168 an einen Satz Register 174 weitergelei
tet, die die sechs Parameterwerte zur Verwendung durch die
korrespondierende Integrator/Filterauswahlschaltung 46, 48,
50, 52, 58 speichern. Gleichzeitig wird der korrespondierende
Lauflängenwert über den Lauflängenmultiplexer 170 in einen
Laufzähler 176 geladen. Der Laufzähler 176 zählt ab dem Anfang
der gegenwärtig ausgeführten Laufanweisung Bildelement für
Bildelement für die Zeile im Zielraum herunter. Wenn der Lauf
zähler 176 seine Endzählung erreicht hat, inkrementiert die
Endzählung den Ausgangszähler 172 derart, daß die nächste An
weisung über die Multiplexer 168, 170 an die Parameterregister
174 und Laufzähler 176 übertragen wird. Die gegenwärtig aus
führende Spalte, wie sie vom Ausgangszähler 172 angegeben
wird, wird zusammen mit der Spalte, in die gerade eingeschrie
ben wird, wie sie vom Eingangszähler 160 angegeben wird, in
eine FIFO-Logik-Schaltung 178 eingegeben. Wenn der Eingangs
zähler 160 anzeigt, daß er eine Anweisung in die vom Ausgangs
zähler als gerade ausgeführt bezeichnete Spalte einschreiben
will, wird ein FIFO VOLL Signal ausgegeben und keine weiteren
Anweisungen werden an die ICSM übertragen, bis das FIFO VOLL
Signal abbricht.
Im Betrieb berechnet eine Zentraleinheit (CPU) die zur Durch
führung jedes gegebenen digitalen Videoeffektes erforderlichen
Parameter. Für komplexe Effekte, beispielsweise die explodie
renden "Scherben", ist eine derartige Berechnung zu intensiv,
als daß sie im laufenden Betrieb durchgeführt werden könnte,
und sie wird daher systemunabhängig, d. h. "Off-Line" durchge
führt. Die Parameter werden zu Anweisungen für den gegebenen
digitalen Videoeffekt umgeformt, die mittels einer Lauflängen
kodierung komprimiert werden. Die Anweisungen enthalten Kon
stanten, die nicht häufiger aktualisiert werden als einmal pro
Rahmen, sowie Laufkonstanten, die gemäß dem besonderen kreier
ten Videoeffekt mindestens einmal pro Zeile aktualisiert wer
den. Diese Anweisungen für einen gegebenen Effekt werden von
der Zentraleinheit in das Anweisungs-FIFO 22 geladen. Die An
weisungen vom Anweisungs-FIFO 22 werden dann je nach Bedarf in
die ICSMs 38, 40, 42, 56 und Konstantenregister 44 auf jedem
Kanalchip 24 geladen. Das Eingangs-Videosignal wird gefiltert
und gemäß Filterauswahl und Schreibadressen, wie sie von den
Anweisungen in der entsprechenden Vorwärtsadressen-ICSM 38
bestimmt wurden, in den Speicher 14 geladen. Für jedes Bild
element im Zielraum auf einer Zeile werden Rückwärtsadressen X
und Y von Eulerschen Integratoren 50, 52 zweiten Grades gemäß
Parametern in den jeweiligen ICSMs 40, 42 erzeugt. Die ganz
zahligen Anteile der Rückwärtsadressen werden von der Adres
senauflösungsschaltung 54 in vier Leseadressen umgewandelt, um
vier Bildelementwerte vom Speicher 14 zur Eingabe in den In
terpolator 20′ zu erhalten. Die vier Bildelementwerte werden
gemäß den als Brüche vorliegenden Anteilen der Rückwärtsadres
sen X und Y interpoliert, um den Zielbildelementwert zu erzeu
gen, der im Zielraum ausgegeben wird.
Somit stellt die vorliegende Erfindung ein Verfahren und eine
Vorrichtung zur Durchführung einer programmierbaren Video
transformation zur Durchführung einer praktisch unbegrenzten
Anzahl digitaler Videoeffekte zur Verfügung, bei dem eine be
liebige Rückwärtsadressenabbildung als ein Satz lauflängenko
dierter Anweisungen regeneriert wird, die Parameter haben,
welche unter Verwendung von Polynomgleichungen gemäß einem
bestimmten gewünschten digitalen Videoeffekt berechnet wurden,
wobei die Parameter in Anweisungspuffer-Zustandsmaschinen ge
laden werden, die Integratoren steuern, aus denen Speicherad
ressen mindestens einmal pro Zeile, und auch häufiger, in Ab
hängigkeit von der Komplexität des digitalen Videoeffekts,
erzeugt werden.
Claims (8)
1. Verfahren zur Durchführung einer programmierbaren Video
transformation, bei dem eine beliebige Rückwärtsadressen
abbildung regeneriert wird, um gemäß einer Transforma
tionsfunktion, die einen bestimmten Videoeffekt aus einer
praktisch unbegrenzten Anzahl digitaler Videoeffekte dar
stellt, ein Zielbild aus einem Quellbild zu erzeugen,
gekennzeichnet durch
folgende Schritte:
Für eine gegebene Abtastzeile im Zielbild: Auffinden eines kontinuierlichen Liniensegments im Quellbild gemäß der Transformationsfunktion;
Anpassen der Gleichung einer stetigen Funktion an das kontinuierlichen Liniensegment, die an einem ersten spezifizierten Satz von Punkten Gleichheit hat;
Bestimmen eines Fehlers zwischen dem kontinuierli chen Liniensegment und der Gleichung der stetigen Funk tion an einem zweiten spezifizierten Satz von Punkten zwischen dem ersten spezifizierten Satz von Punkten;
wenn der Fehler an irgendeinem Punkt des zweiten spezifizierten Satzes von Punkten über einer gegebenen Grenze liegt: Aufteilen des kontinuierlichen Linienseg ments in kürzere kontinuierliche Liniensegmente;
Wiederholen der Schritte des Anpassens, Bestimmens und Aufteilens für jedes kürzere kontinuierliche Linien segment, bis der Fehler für jeden Punkt des zweiten spe zifizierten Satzes von Punkten unter der gegebenen Grenze liegt;
Speichern von Parametern für die Gleichung der ste tigen Funktion für jedes kontinuierliche Liniensegment; und
Ausführen der Transformationsfunktion gemäß den ge speicherten Parametern für jedes kontinuierliche Linien segment, um das Zielbild aus dem Quellbild zu erzeugen.
Für eine gegebene Abtastzeile im Zielbild: Auffinden eines kontinuierlichen Liniensegments im Quellbild gemäß der Transformationsfunktion;
Anpassen der Gleichung einer stetigen Funktion an das kontinuierlichen Liniensegment, die an einem ersten spezifizierten Satz von Punkten Gleichheit hat;
Bestimmen eines Fehlers zwischen dem kontinuierli chen Liniensegment und der Gleichung der stetigen Funk tion an einem zweiten spezifizierten Satz von Punkten zwischen dem ersten spezifizierten Satz von Punkten;
wenn der Fehler an irgendeinem Punkt des zweiten spezifizierten Satzes von Punkten über einer gegebenen Grenze liegt: Aufteilen des kontinuierlichen Linienseg ments in kürzere kontinuierliche Liniensegmente;
Wiederholen der Schritte des Anpassens, Bestimmens und Aufteilens für jedes kürzere kontinuierliche Linien segment, bis der Fehler für jeden Punkt des zweiten spe zifizierten Satzes von Punkten unter der gegebenen Grenze liegt;
Speichern von Parametern für die Gleichung der ste tigen Funktion für jedes kontinuierliche Liniensegment; und
Ausführen der Transformationsfunktion gemäß den ge speicherten Parametern für jedes kontinuierliche Linien segment, um das Zielbild aus dem Quellbild zu erzeugen.
2. Verfahren nach Anspruch 1, weiterhin
gekennzeichnet durch
den Schritt des Kodierens der Parameter zu lauflängenko
dierten Anweisungen, bevor sie im Speicherungsschritt
gespeichert werden.
3. Verfahren nach Anspruch 2,
dadurch gekennzeichnet,
daß die lauflängenkodierten Anweisungen für jedes konti
nuierliche Liniensegment eine Befehlanweisung mit einem
Flagbit für jeden im Speicherungsschritt zu aktualisie
renden Parameter enthalten, gefolgt von Datenanweisungen
für jeden zu aktualisierenden Parameter und einer Lauf
längendatenanweisung, die die Anzahl aufeinanderfolgender
Bildelemente angibt, die die aktualisierten Parameter im
Ausführungsschritt benutzen.
4. Verfahren nach Anspruch 1,
dadurch gekennzeichnet,
daß die Gleichung der stetigen Funktion eine Polynomfunk
tion ist.
5. Verfahren nach Anspruch 4,
dadurch gekennzeichnet,
daß die Polynomfunktion ein Polynom ersten Grades ist.
6. Verfahren nach Anspruch 4,
dadurch gekennzeichnet,
daß die Polynomfunktion ein Polynom zweiten Grades ist.
7. Verfahren nach Anspruch 4,
dadurch gekennzeichnet,
daß die Polynomfunktion ein Polynom dritten Grades ist.
8. Vorrichtung zur Durchführung einer programmierbaren
Transformation, bei der eine beliebige Rückwärtsadressen
abbildung regeneriert wird, um gemäß einer Transforma
tionsfunktion, die einen bestimmten Videoeffekt aus einer
praktisch unbegrenzten Anzahl digitaler Videoeffekte dar
stellt, ein Zielbild aus einem Quellbild zu erzeugen,
gekennzeichnet durch
einen Vorwärtsadressengenerator (16) zur Erzeugung ganzzahliger Schreibadressen;
eine Vorrichtung (14) zum Speichern des Quellbildes in einem Speicher gemäß den ganzzahligen Schreibadressen;
einen Rückwärtsadressengenerator (18) zum Erzeugen einer Leseadresse für jedes Bildelement des Zielbildes auf einer Zeile des Zielbildes gemäß den Parametern der Gleichung einer stetigen Funktion, die von der Transfor mationsfunktion abgeleitet ist, wobei die Parameter min destens einmal pro Zeile aktualisiert werden, und die Leseadresse einen ganzzahligen Teil und einen als Bruch vorliegenden Teil hat;
eine Vorrichtung (54), die auf den Speicher zu greift, um eine Vielzahl Quellbildelementwerte gemäß dem ganzzahligen Teil einer jeden Leseadresse zu erhalten; und
eine Vorrichtung (20) zum Interpolieren der Quell bildelementwerte gemäß dem als Bruch vorliegenden Teil einer jeden Leseadresse, um einen entsprechenden Bildele mentwert des Zielbildes zu erhalten.
einen Vorwärtsadressengenerator (16) zur Erzeugung ganzzahliger Schreibadressen;
eine Vorrichtung (14) zum Speichern des Quellbildes in einem Speicher gemäß den ganzzahligen Schreibadressen;
einen Rückwärtsadressengenerator (18) zum Erzeugen einer Leseadresse für jedes Bildelement des Zielbildes auf einer Zeile des Zielbildes gemäß den Parametern der Gleichung einer stetigen Funktion, die von der Transfor mationsfunktion abgeleitet ist, wobei die Parameter min destens einmal pro Zeile aktualisiert werden, und die Leseadresse einen ganzzahligen Teil und einen als Bruch vorliegenden Teil hat;
eine Vorrichtung (54), die auf den Speicher zu greift, um eine Vielzahl Quellbildelementwerte gemäß dem ganzzahligen Teil einer jeden Leseadresse zu erhalten; und
eine Vorrichtung (20) zum Interpolieren der Quell bildelementwerte gemäß dem als Bruch vorliegenden Teil einer jeden Leseadresse, um einen entsprechenden Bildele mentwert des Zielbildes zu erhalten.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/248,794 US5448301A (en) | 1994-05-25 | 1994-05-25 | Programmable video transformation rendering method and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19518891A1 DE19518891A1 (de) | 1995-11-30 |
DE19518891C2 true DE19518891C2 (de) | 1997-05-28 |
Family
ID=22940708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19518891A Expired - Fee Related DE19518891C2 (de) | 1994-05-25 | 1995-05-23 | Verfahren und Vorrichtung zur Durchführung einer programmierbaren Videotransformation |
Country Status (4)
Country | Link |
---|---|
US (1) | US5448301A (de) |
JP (1) | JPH0846865A (de) |
DE (1) | DE19518891C2 (de) |
GB (1) | GB2289818B (de) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5903281A (en) * | 1996-03-07 | 1999-05-11 | Powertv, Inc. | List controlled video operations |
GB9607541D0 (en) * | 1996-04-11 | 1996-06-12 | Discreet Logic Inc | Processing image data |
GB2312119B (en) * | 1996-04-12 | 2000-04-05 | Lightworks Editing Systems Ltd | Digital video effects apparatus and method therefor |
US6115134A (en) * | 1997-12-05 | 2000-09-05 | Hewlett-Packard Company | Scan line splitting in a multi-staged image processing pipeline |
US6061475A (en) * | 1998-03-20 | 2000-05-09 | Axcess, Inc. | Video compression apparatus and method |
GB2340363B (en) * | 1998-07-31 | 2002-09-11 | Sony Uk Ltd | Image processing and rendering |
US7133569B1 (en) * | 2000-07-31 | 2006-11-07 | Polaroid Corporation | Aliasing artifact attenuation system |
JP4465570B2 (ja) * | 2000-09-26 | 2010-05-19 | ソニー株式会社 | 画像処理装置および方法、並びに記録媒体 |
US20050231643A1 (en) * | 2004-03-26 | 2005-10-20 | Ross Video Limited | Method, system and device for real-time non-linear video transformations |
US7289084B2 (en) * | 2005-02-22 | 2007-10-30 | John Michael Lesniak | Computer display apparatus |
US8516218B2 (en) * | 2006-10-30 | 2013-08-20 | Hewlett-Packard Development Company, L.P. | Pattern-based mapping for storage space management |
US20090006657A1 (en) * | 2007-06-26 | 2009-01-01 | Asad Azam | Enabling consecutive command message transmission to different devices |
GB2470740B (en) * | 2009-06-02 | 2015-04-22 | Aptina Imaging Corp | Systems and methods for the efficient computation of image transforms |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4631750A (en) * | 1980-04-11 | 1986-12-23 | Ampex Corporation | Method and system for spacially transforming images |
DE3177295D1 (de) * | 1980-04-11 | 1993-02-04 | Ampex | Vordezimierungsfilter fuer bildveraenderungssystem. |
EP0076259B1 (de) * | 1981-04-10 | 1989-08-16 | Ampex Corporation | Steuerung für ein gerät zur räumlichen transformation von bildern |
ATE45258T1 (de) * | 1981-04-10 | 1989-08-15 | Ampex | Geraet zur raeumlichen transformation von bildern. |
US4463372A (en) * | 1982-03-24 | 1984-07-31 | Ampex Corporation | Spatial transformation system including key signal generator |
US4689682A (en) * | 1986-10-24 | 1987-08-25 | The Grass Valley Group, Inc. | Method and apparatus for carrying out television special effects |
US4689681A (en) * | 1986-10-24 | 1987-08-25 | The Grass Valley Group, Inc. | Television special effects system |
US5249267A (en) * | 1988-06-30 | 1993-09-28 | Kabushiki Kaisha Toshiba | Image processing apparatus and method |
-
1994
- 1994-05-25 US US08/248,794 patent/US5448301A/en not_active Expired - Lifetime
-
1995
- 1995-05-12 GB GB9509674A patent/GB2289818B/en not_active Expired - Fee Related
- 1995-05-15 JP JP7140035A patent/JPH0846865A/ja active Pending
- 1995-05-23 DE DE19518891A patent/DE19518891C2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB2289818A (en) | 1995-11-29 |
GB2289818B (en) | 1998-03-18 |
GB9509674D0 (en) | 1995-07-05 |
DE19518891A1 (de) | 1995-11-30 |
US5448301A (en) | 1995-09-05 |
JPH0846865A (ja) | 1996-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3814627C2 (de) | ||
DE69728247T2 (de) | Pyramidenförmiger pipeline-prozessor für ein bildverarbeitungssystem | |
DE19518891C2 (de) | Verfahren und Vorrichtung zur Durchführung einer programmierbaren Videotransformation | |
DE3512278C3 (de) | Bildsignalverarbeitungsvorrichtung | |
DE3010990A1 (de) | Digitales stehbildspeichersystem | |
DE3202365A1 (de) | Datenspeicher mit fensterabtastung | |
DD260378A5 (de) | Bildwiedergabeanordnung | |
DE3515037C2 (de) | ||
DE19681687B4 (de) | Manipulieren von Video- und Audiosignalen unter Verwendung eines Prozessors, welcher SIMD-Instruktionen unterstützt | |
DE4408522C2 (de) | Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten | |
DE4143074A1 (de) | Verfahren und einrichtung zum umformatieren verschachtelter videodaten zur darstellung auf einem computer-ausgabedisplay | |
DE4210116A1 (de) | Digitale zoomvorrichtung mit bildpufferspeichern | |
DE19946683A1 (de) | Decodiersystem für komprimierte Datenströme zum gleichzeitigen Reproduzieren stabiler Bilder, Verfahren zum Decodieren komprimierter Datenströme und Informationsspeichermedium zum Speichern von das Verfahren darstellenden Programmbefehlen | |
DE3900489C2 (de) | Einrichtung zur Erzeugung von Steuersignalen für eine Videomischeinrichtung | |
DE19545919A1 (de) | NTSC-PAL-Umsetzer | |
DE69434047T2 (de) | Medien Pipeline mit Mehrwegevideoverarbeitung und Wiedergabe | |
EP0363677A2 (de) | Schaltungsanordnung zur Schätzung von Bewegung in einem aufgenommenen Bild | |
DE69738360T2 (de) | Bildkodierungseinrichtung mit analogem Verarbeitungssystem | |
DE3512681C2 (de) | ||
DE69636139T2 (de) | Hierarchische Kodierungs- Dekodierungs-Vorrictung mit Speichervorrichtung für ein digitales Bildsignal | |
DE60022282T2 (de) | Vorrichtung zur Bewegungskompensation für digitale Videoformat-Abwärtskonvertierung | |
DE19860652A1 (de) | Videodecoder für hohe Bildqualität | |
EP0497416B1 (de) | Schaltungsanordnung zur Zeitbasis-Transformation eines digitalen Bildsignals | |
EP0366976B1 (de) | Transformationsschaltung | |
DE19853480C2 (de) | Kontexterzeugungsschaltung und zugehöriges Verfahren für kleine Bildschirme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |