DE19518891C2 - Verfahren und Vorrichtung zur Durchführung einer programmierbaren Videotransformation - Google Patents

Verfahren und Vorrichtung zur Durchführung einer programmierbaren Videotransformation

Info

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
Application number
DE19518891A
Other languages
English (en)
Other versions
DE19518891A1 (de
Inventor
James A Michener
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Grass Valley Group Inc
Original Assignee
Grass Valley Group Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Grass Valley Group Inc filed Critical Grass Valley Group Inc
Publication of DE19518891A1 publication Critical patent/DE19518891A1/de
Application granted granted Critical
Publication of DE19518891C2 publication Critical patent/DE19518891C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/74Circuits for processing colour signals for obtaining special effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio 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/2628Alteration 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
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.
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)
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.
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.
DE19518891A 1994-05-25 1995-05-23 Verfahren und Vorrichtung zur Durchführung einer programmierbaren Videotransformation Expired - Fee Related DE19518891C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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