DE69930352T2 - Verfahren und Vorrichtung zur Animierung von Videospezialeffekten - Google Patents

Verfahren und Vorrichtung zur Animierung von Videospezialeffekten Download PDF

Info

Publication number
DE69930352T2
DE69930352T2 DE69930352T DE69930352T DE69930352T2 DE 69930352 T2 DE69930352 T2 DE 69930352T2 DE 69930352 T DE69930352 T DE 69930352T DE 69930352 T DE69930352 T DE 69930352T DE 69930352 T2 DE69930352 T2 DE 69930352T2
Authority
DE
Germany
Prior art keywords
effect
parameter
plug
objects
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69930352T
Other languages
English (en)
Other versions
DE69930352D1 (de
Inventor
Antony James Basingstoke Hampshire Gould
Nicholas Mark Basingstoke Hampshire Collins
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.)
Sony Europe Ltd
Original Assignee
Sony United Kingdom Ltd
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 Sony United Kingdom Ltd filed Critical Sony United Kingdom Ltd
Application granted granted Critical
Publication of DE69930352D1 publication Critical patent/DE69930352D1/de
Publication of DE69930352T2 publication Critical patent/DE69930352T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • 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

Description

  • Die vorliegende Erfindung bezieht sich auf die Animation von Videospezialeffekten.
  • Einige Videospezialeffektsysteme auf Computerbasis machen Gebrauch von einem "Kern"-Computerprogramm und einer Anzahl von möglichen Programmmodulen oder "Einschüben", die wenn erforderlich geladen werden können.
  • In einem Beispiel eines Videospezialeffektsystems kann unter Verwendung dieses Aufbaus der Benutzer allgemein einen zusammengesetzten Spezialeffekt einrichten, der für eine Videosequenz angewandt wird, indem er eine Folge von Effektmodulen von einer großen Anzahl von verfügbaren Modulen auswählt. Beispielsweise könnte eine Sequenz (oder "eine gerichtete azyklische (aperiodische) Grafik") von Effekten durch einen Benutzer aufweisen:
    • (i) einen Bildlader
    • (ii) einen Bewegungszielgeber, der mit dem Bildlader verknüpft ist
    • (iii) einen Ausleuchtungseffekt, der mit Bewegungsspurführung und dem Bildlader verknüpft ist
    • (iv) ein Bildwiederausrichtungselement, welches mit Bewegungsspurführung und dem Bildlader verknüpft ist Jeder dieser Effekte kann als ein Programmmodul oder als ein Einschub ausgeführt sein, wobei Daten zwischen den Modulen unter der Gesamtsteuerung eines Kernprogramms geleitet werden.
  • Es gibt häufig ein Erfordernis, einige der Spezialeffektmodule innerhalb eines Zusammensetzungseffekts zu "animieren". Dies bedeutet, dass Betriebsparameter des Effekts mit der Zeit variiert werden (d.h., von Bild zu Bild in einer Videosequenz). Beispielsweise können der Ausleuchtungseffekt, der oben erwähnt wurde, durch Variieren der Lichtquelle und von Bestimmungspositionen innerlalb des Bilds in Bezug auf die Zeit animiert werden, so dass das Licht so erscheint, als ob es über das Bild schwenkt.
  • "Developing a Multimedia Toolbox für the Khoros Systems", Chan Y.L., Alonso R., SPIE Proceedings on Multimedia: Full service impact on Business, education and home, 22. – 26. Oktober 1995, Seite 1–12, XP002269869, Philadelphia USA, offenbart, wie eine visuelle Programmierumgebung, Khoros, für die Multimedia-Datenverarbeitung angepasst werden kann. Das Khoros-System ist ausführlicher in "The Khoros Software Development Environment for Image and Signal Processing" Konstantinides K. et al, IEEE Transactions on Image Processing, IEEE Inc New York, US, Band 3, Nr. 3, 1. Mai 1994, Seite 243–252 XP000453362 ISSN: 1057–7149 beschrieben. Das Khoros-System liefert wirksam eine Umgebung, wo Verarbeitungsmodule (glyphs) visuell angeordnet werden können und miteinander verknüpft sein können, um einen Prozessfluss einzurichten.
  • Die vorliegende Erfindung stellt eine Videoverarbeitungsvorrichtung bereit, die aufweist:
    ein Kernprogrammobjekt; und
    mehrere Prozessor-Einschubprogrammobjekte, die auf das Kernprogrammobjekt ansprechen, wobei die Prozessor-Einschubprogrammobjekte in einem gerichteten aperiodischen Schaubild angeordnet sind, wobei jedes betreibbar ist, ein Ausgangsergebnis in Bezug auf aufeinanderfolgende Bilder eines Videosignals von Eingangsdaten, die sich auf dieses und/oder andere Bilder beziehen, welche von einem vorhergehenden Prozesseinschub-Programmobjekt im gerichteten aperiodischen Schaubild empfangen werden, und als Antwort auf Betriebsparameter, die sich auf dieses Prozessoreinschub-Programmobjekt beziehen, zu erzeugen;
    dadurch gekennzeichnet, dass jeder Betriebsparameter durch ein Parametereinschubobjekt definiert ist, das in einem gerichteten aperiodischen Schaubild angeordnet ist, um einen Parameterwert dem Prozessoreinschub-Programmobjekt mitzuteilen.
  • Die Erfindung liefert auch einen bequemen und eleganten einfachen Weg zum Steuern von Parameterwerten eines Spezialeffektsystems unter Verwendung von Einschubobjekten, wobei separate Einschubobjekte verwendet werden, um Parameterwerte zu definieren. Dieses Verfahren, welches für den Benutzer unsichtbar gemacht werden kann, erlaubt direkte Animation der Parameterwerte ohne die Notwendigkeit nach einem bestellten Animationscode innerhalb des Effekteinschubobjekts, und erlaubt außerdem einfaches Leiten des Ausgangssignals eines Effekts als Parametereingangssignal zum anderen Effekt.
  • Ausführungsformen der Erfindung werden nun – lediglich als Beispiel – mit Hilfe der beiliegenden Zeichnungen beschrieben, in denen:
  • 1 schematisch eine digitale Videospezialeffektvorrichtung zeigt;
  • 2 schematisch die Organisation von Betriebssoftware der Vorrichtung von 1 zeigt;
  • 3 eine ausführlichere schematische Darstellung der Organisation der Betriebssoftware für die Vorrichtung von 1 ist;
  • 4 schematisch die Ausbreitung eines aktualisierten Effektparameters in der Vorrichtung von 1 zeigt;
  • 5 schematisch die Ausbreitung eines Umgestaltungsbefehls in der Vorrichtung von 1 zeigt;
  • 6 schematisch ein Grafikeditorfenster und ein Palettenfenster zeigt;
  • 7 schematisch einen Grafikeditierbetrieb zeigt;
  • 8 schematisch die Bildung eines zusammengesetzten Effekticons zeigt;
  • 9 schematisch die Dateistruktur eines Zusammensetzungseffekts zeigt;
  • 10 schematisch ein Betrachterfenster zeigt;
  • 11 schematisch eine Initialisierungsanordnung der Betriebssoftware zeigt;
  • 12 schematisch einen früher vorgeschlagenen Effekteinschub zeigt;
  • 13 schematisch eine neue Form des Effekteinschubs zeigt;
  • 14 schematisch die Beziehung zwischen den Effektservern und Proxyeffekten für den Effekteinschub von 13 zeigt;
  • 15 schematisch einen System-Cachespeicher zeigt; und
  • 16 schematisch eine Einschubschnittstelle zeigt.
  • 1 zeigt schematisch eine digitale Videospezialeffektvorrichtung.
  • Ein digitales Videosignal, welches aufeinanderfolgende Videobilder aufweist, wird über eine Eingangsschnittstelle 100 empfangen und in einer Plattengruppeneinrichtung 110 gespeichert. Die Plattengruppeneinrichtung 110 speichert ebenfalls manipulierte Bilder, welche durch die Vorrichtung erzeugt werden, wobei diese zur Ausgabe über eine Ausgangsschnittstelle 120 geliefert werden können.
  • Eine Zentralverarbeitungseinheit 130 greift auf Daten zu, welche in der Plattengruppe gespeichert sind, um verschiedene Videospezialeffekte gemäß Befehlen des Benutzers auszuführen. Die CPU 130 empfängt das Eingangssignal von den Benutzereingabeeinrichtungen 140, beispielsweise einer Maus und einer Tastatur, speichert die Arbeitsdaten und den Programmcode in einem Speicher 150 und erzeugt Daten zur Ausgabe auf einem Anzeigebildschirm 160 über eine Anzeigeansteuerung 170.
  • Die Vorrichtung kann als ein Allgemeinzweckcomputer (beispielsweise als ein PC) ausgebildet sein, der geeignete Software laufen lässt, beispielsweise unter dem Microsoft Windows NT® – Betriebssystem. Bei der vorliegenden Ausführungsform ist die Plattengruppe mit der CPU 130 über eine UltraSCSI-Datenverknüpfung verbunden.
  • 2 zeigt schematisch (auf einem sehr allgemeinen Niveau) die Organisation der Betriebssoftware für die Vorrichtung von 1.
  • Die Software ist als zwei Programmcodekategorien angeordnet: ein Kerngerüst, welches auf der linken Seite von 2 gezeigt ist, und verschiedene "Einschübe", die auf der rechten Seite von 2 gezeigt sind. Wenn die Software anfangs geladen wurde, ist das Kerngerüst immer vorhanden und steuert Teile des Betriebs der Vorrichtung, die zwischen verschiedenen Spezialeffektprozessen anteilig aufgeteilt sind. Im Gegensatz dazu beziehen sich die Einschübe auf individuelle Spezialeffekte (beispielsweise einen Ausleuchtungseffekt, einen Spurführungseffekt usw.) und werden lediglich dann geladen, wenn dies benötigt wird.
  • Dies ist eine sehr effiziente Anordnung, da lediglich diejenigen Einschübe, die sich auf Effektmodule beziehen, die aktuell durch den Benutzer gefordert werden, in den Speicher geladen werden müssen. Dies spart Speicherplatz im Vergleich mit einem System, bei dem ein Programmcode für jeden möglichen Spezialeffekt geladen werden muss. Dies erlaubt auch eine schnellere Initialisierung der Vorrichtung, wobei die Notwendigkeit vermieden wird, den gesamten Programmcode in den Speicher zu laden, wenn das System hochgefahren wird, und es können Verzögerungen über das Codeladen reduziert werden, wenn zunächst ein Icon im Grafikeditor (siehe unten) ausgewählt wird. Außerdem erlaubt die Anordnung, dass eine reduzierte Teilmenge der Vorrichtung (insbesondere der Betriebssoftware)zu liefern oder zu installieren ist, wobei sie unmittelbar einen Grafikeditor und die Kernverarbeitung enthält, jedoch ohne die Einschübe. Das System erlaubt es dritten Parteien oder Benutzern, ihre eigenen Einschübe zu erzeugen, solange sie mit einem definierten Schnittstellenprotokoll zwischen den Einschüben und dem Rahmengerüst verbunden sind. Damit könnte ein Benutzer einen bestellten Effekt sehr einfach erzeugen, indem er ein relativ kleines Einschubprogramm schreibt.
  • Das Kerngerüst und die Einschübe kommunizieren miteinander unter Verwendung eines sogenannten "Objektverknüpfungs- und Einbettungs"-Protokoll (OLE), welches in dem Buch "Understanding AcitveX and OLE", David Chappell, Mirosoft Press, 1996 beschrieben wurde.
  • Bei dem OLE-System kann ein Software-Entwickler unterschiedliche Abschnitte eines Computerprogramms als sogenannte "COM1-Objekte" ausführen. Jedes COM-Objekt unterstützt eine oder mehrere COM-"Schnittstellen", wobei jede eine Anzahl von "Verfahren" aufweist. Ein Verfahren ist eine Funktion oder eine Prozedur, um eine spezifische Aktion auszuführen. COM-Verfahren können durch Software unter Verwendung dieses COM-Objekts aufgerufen werden. Das System ist beschränkt, so dass andere Teile der Software unter Verwendung eines COM-Objekts dies lediglich über die definierten Schnittstellen ausführen können, womit sie somit nicht unmittelbar auf Programmcode- oder Daten innerhalb des Objekts abweichend über die definierten COM-Schnittstellen zugreifen können.
  • Damit kommuniziert bei dem vorliegenden System das Rahmengerüst mit den Einschüben über diese COM-Schnittstellen. (In Wirklichkeit weist ein Kerngerüst eine Anzahl von Interkommunikationsobjekten auf, die in der Lage sind, eine COM-Schnittstelle bereitzustellen, was jedoch im Prinzip das gleiche ist).
  • 3 zeigt die Organisation der Betriebssoftware ausführlicher als die in 2. In 3 ist das Diagramm in vier Quadranten unterteilt. Ein oberer linker Quadrant zeigt ein sogenanntes Betrachterfenster 310; ein oberer rechter Quadrant zeigt Effektbenutzerschnittstellen (UI) 320; ein unterer rechter Quadrant zeigt Effekt-"Server" 330, die verknüpfte Parameterdaten (PD) haben; und ein unterer linker Quadrant zeigt einen Kernprozessor 340 einschließlich einer Grafik gemeinsam mit einem Objektmanager 350, einem Gestaltungsmanager 352 und einem Änderungsmanager 358. An der Schnittstelle zwischen dem unteren linken und den unteren rechten Quadranten ist eine Metadatenbank 354 angeordnet, die einen Teil des Windows-NT-Registrys bildet, und eine Palette 356, die Effekticons sowie Voreinstellungsparameterwerte enthält. Die Metadatenbank 354 wird weiter ausführlich mit Hilfe von 11 und die Palette mit Hilfe von 6 bis 9 unten beschrieben.
  • Innerhalb des Kernprozessors 340 ist ein "Diagramm", in Wirklichkeit "ein gerichtetes azyklisches Diagramm", welches eine verknüpfte Reihe individueller Spezialeffekte hat. Jeder Effekt wird in dem Diagramm als Proxy-Effekt (PE) dargestellt, der einen verknüpfen Cache (C), um Effektausgaben so weit sie verfügbar sind zu speichern, um dadurch die Wiederverwendung von Daten von Effekten in einer Kette von Effekten zuzulassen, wenn beispielsweise ein Parameter in Verbindung mit einem Effekt, der in der Kette höher ist, geändert wird. Jeder Proxy-Effekt ist mit einem entsprechenden Effektserver 330 verknüpft.
  • Der Objektmanager 350 ist dafür verantwortlich, um die Lebensdauer und die Speicherverwaltung von aktiven Objekten im System zu steuern. Der Gestaltungsmanager 352 steuert das Starten, den Fortschritt, die Prioritätsbildung und das Stoppen von Gestaltungsaufgaben. Der Änderungsmanager 358 steuert Rückgängigmachen/Wiederherstellen von Information und die Mitteilung von Änderungen bezüglich verschiedener Teile des Systems.
  • Die Basisunterteilung von 3 ist so, dass die beiden linken Quadranten (oben links und unten links) sich auf Merkmale des Kerngerüsts beziehen, die für einen bestimmten Effekt nicht spezifisch sind. Diese Objekte werden in den Speicher unabhängig davon geladen, welche Spezialeffekte der Benutzer durchzuführen wünscht. Die beiden rechten Quad ranten (oben rechts und unten rechts) beziehen sich auf die Einschübe. Jeder Einschub hat einen Server 330, der die Verarbeitung in Verbindung mit dem Effekt ausführt, die durch diesen Einschub durchgeführt wird, und eine Benutzerschnittstelle 320, welche Benutzerschnittstellensteuerungen (in Wirklichkeit zur Anzeige in einem Betrachterfenster 330) in Bezug auf diesen Effekt bereitstellt.
  • Es gibt eine ähnliche Teilung von oben nach unten in 3, wodurch die beiden oberen Quadranten (oben links und oben rechts) sich auf Benutzerschnittstellensteuerungen in Verbindung mit den Spezialeffekten beziehen, und die beiden unteren Quadranten und links und unten rechts) sich auf die Verarbeitung und Organisation beziehen, die ausgeführt werden, um diese Effekte auszuführen.
  • Die Betrachterfenster geben dem Benutzer die Gelegenheit, die Ausgabe von und Parametern für einen bestimmten Effekt in einer Kette von Effekten zu steuern, die zur Ausführung durch die Vorrichtung aufgebaut sind. Wenn somit ein Betrachterfenster durch den Benutzer geöffnet wird, muss die Ausgabe eines Effekts entweder erzeugt werden, oder, wenn verfügbar, von einem Cache-Speicher abgerufen werden.
  • Bei einem System dieser Art, bei dem mehrere COM-Objekte verwendet werden, wird es allgemein als nicht wünschenswert angesehen, dass jedes Objekt seine Arbeit oder die Ergebnisdaten in einer separaten Datendatei sichern sollte. In Wirklichkeit würde diese Anordnung sehr gegen das Argument laufen, welches zum Einrichten des OLE-Systems geführt hat. Anstelle davon werden Daten in dieser Systemart durch alle Objekte in einer einzelnen Datei oder in einem "zusammengesetzten Dokument" gespeichert, jedoch mit einer geordneten Struktur innerhalb dieses zusammengesetzten Dokuments.
  • Grundsätzlich ist innerhalb des zusammengesetzten Dokuments eine Struktur analog zu einer Datei oder einer Verzeichnisstruktur vorgesehen. Das Äquivalent eines Verzeichnisses ist ein sogenannter "Speicher", und die Analogie einer Datei wird als sogenannter "Strom" bezeichnet. Jedes zusammengesetzte Dokument enthält einen Hauptspeicher, unter dem eine Familienbaumstruktur von Speichern und Strömen sich befindet. Die COM-Stromschnittstelle ist einfacher als die COM-Speicherschnittstelle, wobei jedoch die Speicherschnittstelle mehr Flexibilität bietet.
  • Allgemein kann jedem COM-Objekt entweder sein eigener Speicher oder sein eigener Strom zugeordnet werden, in welchem seine Arbeitsdaten gespeichert werden. Bei einem hierarchischen System jedoch, wie bei dem vorliegenden Videospezial-Effektprozessor, wo der Kern 340 die Operation von einer Anzahl von Einschüben koordiniert, muss die An- Ordnung, welche bei früheren Systemen verwendet wird, einem Strom in jedem Effekt-Einschub zugeteilt werden.
  • Im Gegensatz dazu wurde bei der vorliegenden Ausführungsform erkannt, dass einfaches Zuteilen eines Speichers oder eines Stroms einem Einschub zu viele Zwänge bei der Ausbildung und bei der Arbeitsweise eines Einschubobjekts mit sich bringt. Anstelle davon kann bei der Schnittstellendefinition zwischen dem Kern und den Einschüben jeder Einschub zwischen einem Strom auswählen, so dass er, wenn durch den Einschub-Entwickler gewünscht wird, seine Arbeitsdaten in einer direkten Weise speichern kann, und einem Speicher, so dass er, wenn gewünscht, seine Arbeitsdaten unter seinem eigenen "Verzeichnis" von Strömen und Speichern speichern kann. Diese Auswahl wird vorher durch den Entwickler des Einschubs getroffen, der den Einschubprogrammcode bildet.
  • In der anschließenden Beschreibung werden Kommunikationsprotokolle zwischen den verschiedenen Objekten in Bezug auf 4 und 5 beschrieben. Die Art und Weise, in welchem der Diagrammeditorteil des Kernprogramms 340 verwendet wird, um eine Kette individueller Effekte einzurichten, um einen zusammengesetzten Effekt zu bilden, wird mit Hilfe von 6 bis 9 beschrieben. Die Betrachterfenster und seine Interaktion mit den Effekt-UIs 320 werden dann mit Hilfe von 10 beschrieben.
  • So zeigt 4 schematisch die Ausbreitung eines aktualisierten Effekt-Parameters in der Anordnung von 3.
  • Ein Beispiel dieser Situation ist, dass der Benutzer einen "Beleuchtungs"-Spezialeffekt einrichtet, wobei der Effekt einer Lichtquelle einem Bild hinzugefügt wird. Die Lichtquelle besitzt eine durch einen Benutzer definierbare Quelle und eine Bestimmungsposition in Bezug auf das Bild. Wenn der Benutzer wünscht, eine dieser Positionen zu ändern, wird dies jedes aktuell-gestaltete Ausgangssignal von dieser Wirkung ungültig machen und außerdem wird die Änderung notwendig machen, dass diese zwischen den verschiedenen Objekten ausgebreitet wird, welche in den unterschiedlichen Quadranten von 3 gezeigt sind. Dieser Prozess ist in 4 gezeigt.
  • Gemäß 4 gibt der Benutzer aktuell einen geänderten Parameter über ein Betrachterfenster 310 ein (siehe 10 unten). Das Betrachterfenster ist mit einer bestimmten Effekt-UI 320 verknüpft, die wiederum Teil eines Einschubs in Bezug auf einen individuellen Effekt ist. (In Wirklichkeit kann ein einzelnes Betrachterfenster mit mehr als einem Effekt verknüpft sein, und nicht alle Effekte müssen die Betrachterfenster in irgendeinem bestimmten Zeitpunkt geöffnet haben, wobei jedoch die vereinfachte Anordnung von 3 wird für diese Erläuterung beibehalten wird). Der Einschub gibt eine Mitteilung "im Begriff zu editieren" an den Kern aus.
  • Wenn die Änderung vorgenommen wurde, gibt der Einschub eine Information "Änderung aufgetreten" aus. Dies bringt eine Reihe von Aktionen mit sich und/oder initialisiert diese. In einem ersten Schritt 401 teilt das Betrachterfenster den aktualisierten Parameter der Effekt-UI 320 mit. Die Effekt-UI 320 gibt einen Befehl "setze" an den entsprechenden Effektserver 330 aus, wobei der überprüfte Wert in einem Parameterspeicher innerhalb des Effektservers 330 eingestellt wird. Dies ist ein Schritt 402 von 4.
  • In einem Schritt 403 schreibt der Effektserver 330 ein "Rückgängigmachen/Wiederherstellen"-Objekt in den Kern 340, wobei Details einer Handhabung oder Zeiger bereitgestellt werden, der auf eine Aufzeichnung (im Effektserver) des Parameters vor und nach der Änderung zeigt. Als Antwort auf den Empfang dieses Rückgängigmachen/Wiederherstellen-Objekts sendet in einem Schritt 404 der Kern eine Mitteilung zu allen Betrachterfenstern, dass ein Parameter geändert wurde und dass einige gespeicherte Datenausgangssignale ungültig sein können. Diese Mitteilung ist für das Betrachterfenster, in welchem die Parameteränderung stattfand, nicht spezifisch.
  • In einem Schritt 5405 gibt jedes Betrachterfenster eine Information an die entsprechende Effekt-UI 320 aus, um eine Aktualisierung ihrer Verarbeitungsparameter anzufordern. In einem Schritt 406 gibt die Effekt-UI 320 einen Befehl "erlange" an den entsprechenden Effektserver aus, um den neuen Parameter zu erlangen, wobei der neue Parameter zur Effekt-UI 320 in einem Schritt 407 zurückgebracht wird. Die Effekt-UI 320 verbreitet dann die Änderung zur Anzeige im Betrachterfenster in einem Schritt 408.
  • Wenn ein Verarbeitungsparameter geändert wird, hat dies allgemein die Notwendigkeit zur Folge, das Ausgangssignal von einem oder mehreren Effekten umzugestalten. 5 zeigt die An und Weise, in welcher ein Umgestaltungsbefehl über die Vorrichtung verbreitet wird, wobei diese auf die Verarbeitung von 4 folgt.
  • In einem Schritt 502 gibt das Betrachterfenster einen Umgestaltungsbefehl an den Gestaltungsmanager aus. Der Gestaltungsmanager gibt dann einen Umgestaltungsbefehl an den entsprechenden Effektserver 330 aus. Wenn der Effektserver das Umgestalten des Bilds beendet hat, gibt dieser eine Information "beendet" an den Kern 340 aus. Der Kern teilt dies dem Betrachtungsfenster in einem Schritt 505 mit, und in einem Schritt 506 und 507 wirkt das Betrachterfenster mit der Effekt-UI 320 aufeinander ein, um das umgestaltete Effektausgangssignal anzuzeigen.
  • Wenn mehrere Betrachtungsfenster und mehrere Rahmen in einem Bereich von Interesse offen sind (was durch den Benutzer als Hilfssatz für Testzwecke des gesamten Videoclips definiert werden kann), werden Bilder als mehrfach konkurrierende Aufgaben gestaltet, gemäß der folgenden Prioritätsreihenfolge zum Zuteilen von Verarbeitungshilfsmitteln:
    • (i) ein Bild oder Bilder, die aktuell zur Ansicht durch einen Benutzer angezeigt werden;
    • (ii) erste und letzte Bilder der Ausgabesequenz von Interesse; und
    • (iii) verbleibende Bilder der Ausgangsvideosequenz von Interesse.
  • Als ein weiteres Detail gibt, bevor der Gestaltungsmanager einen Umgestaltungsbefehl an den Effektserver ausgibt, der Gestaltungsmanager eine Information "Vorbereitung zur Gestaltung" aus, um zu spezifizieren, welches Bild in der Sequenz zu gestalten ist. Der Effektserver antwortet mit einer Information seiner "Abhängigkeiten", d.h., denjenigen gestalteten Bildern, die wesentlich sind, bevor die Anforderung durch den Gestaltungsmanager ausgeführt werden können. Diese können Bilder sein, welche durch einen anderen Effekt gestaltet wurden (beispielsweise den oder einen unmittelbar vorhergehenden Effekt in dem gerichteten azyklischen Diagramm) oder Bilder, welche durch diesen Effekt selbst gestaltet wurden. Dieser letztere Fall kann in dem Beispiel eines Bewegungs-Zielgebers auftreten, wo, um beispielsweise das Bild 5 zugestalten, der Bewegungs-Zielgeber sein eigenes gestaltetes Ausgangssignal für das Bild 4 benötigt.
  • Als Antwort auf die Informationen, welche vom Effektserver zurück empfangen werden, sendet der Gestaltungsmanager eine Information "bereite Gestaltung vor", die diese Bilder anfordert, usw., bis der Abhängigkeitsbaum beendet ist.
  • In jeder Stufe prüft der Effekt-Proxy, ob das geforderte Bild oder das gestaltete Ausgangssignal gespeichert ist, und informiert den Gestaltungsmanager.
  • Wenn beispielsweise eine Information "bereite Gestaltung vor" zum Bewegungs-Zielgeber, der das Bild 5 spezifiziert, geliefert wird, könnte dieser antworten, um zu sagen, dass er ein gestaltetes Ausgangssignal für das Bild 4 (selbst) erfordert. Der Gestaltungsmanager sendet dann eine Information "bereite Gestaltung vor" zum Bewegungs-Zielgeber für das Bild 4, und der Bewegungs-Zielgeber antwortet, um zu zeigen, dass er das Bild 3 usw. erfordert. Auf diese Weise kann eine Liste von Gestaltungsarbeiten, die erforderlich sind, bevor das erforderliche Bild (Bild 5) gestaltet werden kann, aufgebaut werden. Gestaltete Ausgangssignale, welche im Cache gehalten werden, sind in der Arbeitsliste des Gestaltungsmanagers nicht enthalten.
  • Das gleiche ereignet sich, wenn ein Effekt das gestaltete Ausgangssignal eines vorhergehenden Effekts usw. benötigt abwärts von einer Kette von Effekten.
  • An dem Ende dieses Prozesses setzt der Gestaltungsmanager alle erforderlichen Arbeiten, welche in einer umgekehrten Reihenfolge laufen, so dass das aktuell erforderliche Bild nicht gestaltet wird, bis alle abhängigen Bilder gestaltet sind.
  • Als Optimierung kann der Gestaltungsmanager aus dem Diagramm ermitteln, welches die Eingangssignale zu jedem Effekt sind. Somit kann der Effektserver einen vorher festgelegten Code (beispielsweise eine Null-Antwort) senden, um auszudrücken, "alle Eingangssignale dieses Effekts sind erforderlich".
  • Als weitere Erweiterung kann das gleiche Protokoll verwendet werden, so dass jeder Effektserver den Gestaltungsmanager informieren kann, wenn sein Ausgangssignal das gleiche zwischen benachbarten Bildern ist. Ein einfaches Beispiel davon ist ein (fester) Parametereinschub, wo das Ausgangssignal invariant ist. Ein weiteres Beispiel ist ein anderer Effekt, wo die Ausgangssignale schon vorbereitet sind und gespeichert sind, so dass eine direkte Ermittlung durchgeführt werden kann, ob aufeinanderfolgende Ausgangssignale identisch sind. Als Antwort auf eine solche Mitteilung liefert der Gestaltungsmanager die Information zu einem Effektserver, der später in dem gerichteten azyklischen Diagramm ist. Dieser Effektserver kann dann (wenn geeignet) lediglich eines von einem Bereich von Bildern gestalten und diese Ausgangssignal für andere Bilder, wo dessen Eingangssignal das gleiche bleibt, wiederholen.
  • 6 zeigt schematisch ein grafisches Editorfenster 610 und ein Palettenfenster 600. Diese werden auf dem Anzeigebildschirm 160 unter der Steuerung des Kerns 340 angezeigt.
  • Das Palettenfenster 600 enthält eine Anzahl von Icons 620, wobei jedes abgebildet ist auf und einen unterschiedlichen möglichen Effekt darstellt, für den Einschübe im System existieren. Unter Verwendung einer Maussteuerung kann der Benutzer diese Icons in ein rollbares Diagrammfenster 610"ziehen". Diese Icons werden durch den Benutzer im grafischen Fenster in Bezug zueinander angeordnet und können dann mit logischen Verknüpfungen 630 verknüpft werden, die im Fenster als grafische Linien dargestellt sind.
  • Die Verknüpfungen 630 zeigen ein Laufen des Ausgangssignals eines Effekts zum Eingangssignal eines nachfolgenden Effekts, und haben (bei dieser Ausführungsform) immer eine Richtung vom Boden des Diagramms in Richtung auf den Kopf des grafischen Fensters. So hat beispielsweise, wie in 6 gezeigt ist, ein Bildladericon 640 ein Ausgangssignal, welches zu einem Beleuchtungseffekt 650 läuft.
  • Wenn der Benutzer grafische Verknüpfungen im grafischen Fenster einrichtet, richtet der Kern 340 logische Verknüpfungen ein, um den Weg zu bestimmen, mit dem das gestaltete Ausgangssignal von einem Effekteinschub zum anderen läuft.
  • Die Art und Weise, in welcher die grafischen Verknüpfungen gebildet werden, wird nun mit Hilfe von 7 beschrieben. Die logischen Verknüpfungen werden dann mit Hilfe von 9 beschrieben.
  • In 7 hat der Benutzer den Beleuchtungseffekt ausgewählt (beispielsweise mit einem Mausklick) und hat eine bewegbare grafische Linie 720 vom Icon 650 in Richtung auf einen Mauszeiger gerichtet. Wenn sich der Mauszeiger einem Mischeffekticon 700 nähert, wird das Mischeffekticon verstärkt oder durch eine vergrößerte Linie 710 umgeben, wobei zwei Eingangsanschlüsse am Boden der Grenze 740 gezeigt werden. Wenn der Mauszeiger sich einem der Eingangsanschlüsse nähert, schnappt die grafische Linie 720 auf diesen Eingangspunkt und kann lagerichtig mit einem Mausklick fixiert werden. Damit wird eine logische und grafische Verbindung zwischen dem Effekt 650 und dem Effekt 700 eingerichtet.
  • Wenn diese logischen und grafischen Verbindungen eingerichtet sind, kann der Benutzer eine verknüpfte Gruppe 800 des Effekticons in das grafische Fenster "boxen". Hier bedeutet "boxen", eine Box rund um die Gruppe in einer Standardweise unter Verwendung einer Computermaus zu zeichnen. (Eine Art und Weise, dies auszuführen, ist zu klicken und die obere linke Ecke der Box zu halten, die Maus in die untere rechte Ecke zu ziehen und dann die Maustaste loszulassen. Dies ist die Standardweise, mehrere Bildschirmobjekte auszuwählen).
  • Der Benutzer ist dann in der Lage, die verknüpfte Effektgruppe in den Palettenbereich zu ziehen. Dies bildet ein neues zusammengesetztes Effekticon 810, welches einen Satz von Eingangssignalen hat, welche von den Eingangssignalen zur Gruppe gebildet sind, und einen Satz von Ausgangssignalen, welche von den Ausgangssignalen der Gruppe gebildet sind. Logisch ausgedrückt wird anstelle des Effekticons 810, welches auf einem bestimmten Einschub abgebildet ist, dies auf einer verknüpften Gruppe von Einschüben abgebildet, die miteinander in einer bestimmten Weise verbunden sind.
  • Das zusammengesetzte Effekticon 810 bildet dann einen Teil der Palette zur Verwendung durch den Benutzer beim Zeichnen einer Grafik. Wenn später der Benutzer wünscht, Gebrauch von dem zusammengesetzten Icon 810 zu machen, zieht er einfach dies an die Stelle auf das grafische Fenster. Vorzugsweise bleibt das Effekticon 810 wie ein einzelnes Icon auf dem grafischen Fenster, wobei dies jedoch bei anderen Ausbildungen sich heraus in die ursprüngliche Gruppe 800 erstrecken kann. Als weitere Alternative kann dies in einer komprimierten Form als einzelnes Icon angezeigt werden, jedoch mit einer angezeigten "Erweiterungs"-Taste, so dass der Benutzer auf die Erweiterungstaste klicken kann, um die ursprüngliche Gruppe von Icons 800 anzuzeigen. In jedem Fall ist der zusammengesetzte Effekt, der durch das Icon 810 bereitgestellt wird, eine Kopie der ursprünglichen Gruppe 800.
  • 9 zeigt die Datenspeicherung, die diesem Prozess zu Grunde liegt. In 9 wurde ein Icon 850 von den Palettenicons 620 in den Palettenbereich 600 in den grafischen Editorbereich 610 gezogen.
  • In Verbindung mit dem Palettenbereich 600 und gespeichert in der Palette 356, die in 3 gezeigt ist, ist eine Datenstruktur als Baum eingerichtet, der eine Wurzel 860 und individuelle Datenfelder 870 in Abhängigkeit von dieser Wurzel hat. Jedes Datenfeld 870 entspricht einem Effekticon 620, mit Ausnahme im Fall eines Zusammensetzungseffekts, beispielsweise eines Effekts 875. Hier sind die Effekticons (3a, 3b), welche diesen Effekt bilden, in einer Hilfsstruktur abhängig von diesem Datenfeld 875 angeordnet.
  • Eine ähnliche Datenstruktur existiert, um Effekte in grafischen Editorbereich zu speichern. Hier ist eine Wurzel 880 gezeigt, die unmittelbar einen Effekt 885 hat, der von ihr abhängt. Wenn eine Anzahl von Effekten miteinander im grafischen Editorbereich gruppiert ist und zur Palette gezogen sind, bilden sie eine weitere zusammengesetzte Effektstruktur ähnlich der Struktur 875.
  • 10 zeigt schematisch ein Betrachterfenster. Das Betrachterfenster umfasst einen Bildanzeigebereich 900, verschiedene "Eigenschaftsseiten" 910, und Effektsteuerungen 920 (hier als ein Positionierungsfadenkreuz im Beispiel eines Beleuchtungseffekts gezeigt), und einen "Tastenbalken" 930.
  • Die grundsätzliche Anordnung des Betrachterfensters wird durch das Kerngerüst festgelegt und ist Standard von Effekt zu Effekt. Jedoch werden die bestimmten Felder, welche eingestellt werden können, indem Eigenschaftsseiten 910 verwendet werden, durch die Effekt-UI 320 entsprechend einem bestimmten Effekt festgelegt. Die Effekt-UI liefert außerdem Anzeigedetails für die Steuerung 920.
  • Somit bestimmt im gezeigten Beispiel das Fadenkreuz 920 die Quelle oder die Zielposition des Lichts beim Beleuchtungseffekt. Der Benutzer kann das Fadenkreuz unter Verwendung einer Computermaus ziehen. Das Ziehen des Fadenkreuzes ändert die Parameterwerte (x, y) in Verbindung mit dieser Steuerung, so dass die Prozedur von 4 (Aktualisierungsparameterwerte) initialisiert wird. Als letzten Teil dieser Prozedur gibt im Schritt 408 die Effekt-UI den korrigierten Parameterwert an das Betrachterfenster aus. In diesem Zustand wird das Fadenkreuz in seine neue Position zurückgezogen. Somit erzeugte, obwohl es für den Benutzer erscheint, dass die Ziehaktion das Fadenkreuz auf seine letzte Position bewegt hat, in Wirklichkeit der Ziehbetrieb eine Parameteraktualisierung, welche durch die Route, welche in 4 gezeigt ist, die Bewegung des Fadenkreuzes zur Folge hat.
  • 11 zeigt schematisch eine Initialisierungsanordnung der Betriebssoftware. Dieses zeigt eine Situation, bevor irgendeine Gestaltung in einer bestimmten Betriebssitzung der Vorrichtung ausgeführt wurde.
  • Die Einschübe werden unter dem Windows Betriebssystem als "dynamische Ladebibliotheken" (DLL) ausgeführt. Die DLLs sind allgemein große Dateien, welche einen Programmcode, Daten und Hilfsroutinen-Bibliotheken enthalten können. Herkömmlich, um Speicher-Leistung und die Systemleistung zu verbessern, wird eine DLL in den Speicher geladen, wenn dies zunächst notwendig ist, um einen bestimmten Prozess auszuführen oder zu initialisieren, der durch diese DLL gehandhabt wird. Bei der vorliegenden Ausführungsform wird diese Idee der Speicherkonservierung und der Systemverbesserungsleistung einen Schritt weiter vorgenommen.
  • Wenn ein Effekticon zunächst vom Palettenbereich genommen wird, würde in herkömmlicher Weise die DLL entsprechend diesem Effekt in den Speicher geladen, um den Kern 340 mit ausreichender Information (beispielsweise Zwischenverbindbarkeit mit anderen Effekticons) für die aufzubauende Grafik zu versorgen.
  • Bei der vorliegenden Ausführungsform wird die DLL für diesen Effekt in dieser Stufe nicht geladen. Anstelle davon werden sogenannte "Metadata" 1000, die diesen Effekt zeigen, geladen. Die Metadata beliefern den Kern mit Information, welche die Verbindbarkeit untereinander des Effekts mit weiteren Effekten definiert (beispielsweise Nummern von Eingängen und Ausgängen). Dies ermöglicht, dass der Kern eine Grafik ohne die Notwendigkeit aufbauen kann, irgendwelche DLLs zu laden, womit somit Speicher gespart wird, da große Dateien nicht geladen werden, bis sie absolut notwendig sind.
  • Wenn ein Betrachterfenster in Bezug auf einen Effekt geöffnet ist, oder wenn der Zusammensetzungseffekt durch eine andere Einrichtung ausgeführt wird, werden die DLLs geladen und die Metadata ausrangiert oder ignoriert.
  • 12 bis 14 zeigen schematisch Merkmale der Effekteinschübe, welche (unter anderen Dingen) die Automation des Systems erleichtern.
  • 12 zeigt schematisch einen früheren vorgeschlagenen Effekteinschub. Dieser Effekt nimmt Bildinformation auf (gezeigt als "Clip" 1300) und wirkt auf Basis von drei Verarbeitungsparametern P1, P2 und P3 (beispielsweise Ausleuchtungspositionen usw.). Im Einschub von 12 werden die Parameterwerte innerhalb des Einschubs festgelegt, d.h., durch einen bestellten Programmcode, der als Teil des Einschubs geschrieben ist. Dies macht die Gesamtsteuerung der Parameter, beispielsweise für ein Animationssystem, wo die Parameter mit der Zeit variieren, oder bei einer Anordnung, wo ein Parameter, beispielsweise eine Ausleuchtungsposition, durch einen anderen Effekt, beispielsweise einen Bewegungs-Zielgeben variiert wird, sehr schwierig, was einen Zusatzcode innerhalb des Effekteinschubs und häufig Mehrfachversionen des Effekteinschubs erfordert.
  • 13 zeigt schematisch ein anderes Verfahren nach einer Ausführungsform der Erfindung. Hier ist jeder Parameter durch einen separaten Einschub 1320 definiert, die mit den "Haupt"-Effekteinschub 1330 in der gleichen Weise verknüpft ist wie die Verknüpfungen zwischen Effekten im grafischen Editor wie oben beschrieben definiert sind. In Wirklichkeit war die angegebene obige Beschreibung eine Vereinfachung des gesamten Prozesses, wobei die Vereinfachung auf dieser Stufe gemacht wird, um die Erläuterung zu unterstützen.
  • Die Parametereinschübe sind normalerweise gegenüber dem Benutzer verborgen, beispielsweise, indem diese bei Bildschirmpositionen im grafischen Editor und der Palette angezeigt werden, welche "außerhalb der Seite" sind.
  • Somit, wenn ein Effekt in einer in sich geschlossenen, nicht animierten Weise (d.h. ohne wichtige Parameterwerte von anderen Effekten) betrieben werden soll, werden diese Parameter für jeden Parametereinschub 1320 unter Verwendung des Haupteffekt-Betrachterfensters eingestellt.
  • Wenn ein Parameter durch das Ausgangssignal eines anderen Effekts definiert werden soll, beispielsweise eines Positionswerts, der durch einen Bewegungsspurnachführungseffekt bereitgestellt wird, ist dies alles, was erforderlich ist, wenn für die logische Verknüpfung zwischen dem Haupteffekteinschub 1330 und dem geeigneten Parametereinschub 1320 getrennt wird und eine Verknüpfung zum Bewegungsspurführungseffekt initialisiert wird.
  • Um zu verstehen, wie diese System bei Animation helfen kann, wird auf 14 bezuggenommen.
  • 14 zeigt die Links-Rechts-Teilung zwischen dem Kern und dem Einschub, der zuerst in 3 gezeigt wurde. Auf der linken Seite von 14 wird ein Proxy-Effekt (PE) 1340 für den "Haupt"-Effektserver 1350 bereitgestellt. Proxy-Effekte 1360 werden außerdem für jeden der Parametereinschübe 1320 vorgesehen. Diese Proxy-Effekte 1360 haben eine viel einfachere Natur als der Proxy-Effekt 1340 und die Kommunikation zwischen den Proxy-Effekten 1360 und den Parametereinschüben 1320 nutzt einen vereinfachten Hilfssatz des Kommunikationsprotokolls zwischen dem Proxy-Effekt 1340 und dem Effektserver 1350.
  • Aktuell können die Proxy-Effekte 1360 ein einfacher Datenwert (in einem nichtanimierten System) oder eine Liste von Werten in einem animierten System sein. In einem animierten System kann die Liste von Werten als "Schlüsselrahmen"-Werte ausgedrückt werden, d.h., Datenwerte, welche für bestimmte Bilder in einer Folge gesetzt sind, mit intervenierenden Werten, die durch den Kern interpoliert sind, gemäß einer linearen oder benutzerdefinierten nicht linearen Interpolation. Somit kann eine Animation in einer bestimmten einfachen und bequemen Weise eingerichtet werden, ohne bestellte Animationssoftware innerhalb jedes Einschubes schreiben zu müssen.
  • Wenn man diese Beschreibung auf die angegebenen früheren ungefähren Abhängigkeiten zwischen Effekten hernimmt, wenn eine Information "bereite Gestaltung vor" von dem Gestaltungsmanager durch einen Offsetserver 1350 empfangen wird, kann darauf geantwortet werden, zu sagen, dass dies alle die Eingangssignale erfordert, bevor dieses Ausgangssignal bereitgestellt werden kann. In den Effekteingangssignalen sind natürlich die Parametereinschübe enthalten, so dass die nächste Stufe für den Gestaltungsmanager sein würde, eine Vorbereitung zu senden, um Information für jeden Parametereinschub zu gestalten. Wenn der Parametereinschub einen einzelnen Wert enthält, oder wenn das aktuelle Bild ein Rahmenbild ist, ist der Parametereinschub bereit, den geeigneten Parameter im Gestaltungszeitpunkt bereitzustellen. Wenn jedoch der Parametereinschub Animationsdaten enthält und das laufende Bild kein Rahmenbild ist, muss der Parameter zunächst interpoliert werden, bevor er bei dem Effekt verwendet werden kann.
  • 15 zeigt schematisch einen Systemcache 1100. Diese ist eine schematische Ansicht des gesamten Cachebereichs, wobei jedoch, wie früher beschrieben ist, der Cache auch als einer von mehreren individuellen Cachespeichern in Verbindung mit entsprechenden Proxy-Effekten betrachtet werden kann, jedoch, da Speicherhilfsmittel dynamisch zwischen diesen individuellen Cachespeichern zugeordnet sind, die Darstellung von 15 ebenfalls gültig ist.
  • Der Cache ist in dem Systemspeicher 150 vorgesehen und ist in der Lage, Bilder 1110 und nicht gestaltete Ausgangssignale von Effekten (beispielsweise einen Bewegungsvektor im Fall eines Spurführungseffekts) zu speichern.
  • Die Idee des Cache ist die, das gestaltete Ausgangssignal (ob oder nicht dies ein Bild ist) jedes Effekts in einer gerichteten azyklischen Grafik zu speichern. Auf diese Weise benötigen, wenn ein Effekt an einer bestimmten Position in der gerichteten azyklischen Grafik geändert wird, Effekte unterhalb dieser Position nicht neu umgestaltet werden, um das neue Ausgangssignal bereitzustellen. Anstelle davon können die gespeicherten Ausgangssig nale wieder verwendet werden. Ein weiterer Vorteil ist darin zu sehen, bei Rückgängigmachen/Wiederherstellungs-Operationen zu helfen und diese zu beschleunigen, wobei das Ausgangssignal von bestimmten Effekten (diejenigen mit geöffneten Betrachterfenstern) gespeichert werden, vor und nachdem eine Parameteränderung ausgeführt wurde. Die entsprechende Parameteränderung wird ebenfalls gespeichert, so dass die Parameteränderung unerledigt sein kann oder einfach durch Laden des geeigneten Materials von jedem Cachespeicher 1100 wiederhergestellt werden kann. Dies geschieht unter der Steuerung der Rückgängigmachungs/Wiederherstellungs-Objekte, welche durch die Effektserver geschrieben werden, wenn eine Änderung ausgeführt wird.
  • Bilder nehmen sehr viel mehr Speicherraum als eine einfacher Datenwert, wie ein Bewegungsvektor auf, vielleicht ein Millionenfaches als der Speicherraum. Somit, wenn sich bei dieser Ausführungsform der Cachespeicher seiner Kapazitätsgrenze nähert und ein weiteres Bild gespeichert werden soll, wird das zumindest letzte zugegriffene Bild im Cache gelöscht, um Raum für das neue gespeicherte Bild zu bilden. Jedoch werden andere Daten im Cache-Parameterwerte Nicht-Bild-Gestaltungsausgangssignale usw. – während einer Betriebssitzung des Geräts nicht gelöscht, da diese einen winzigen Speicherraum verbrauchen im Vergleich zu einem Bild. Diese Information ist dann für die Wiederverwendung verfügbar, und für die Rückgängigmachungs-/Wiederherstellungs-Operation, solange die Information über eine Betriebssitzung gültig bleibt.
  • In der Praxis kann belassen werden, dass der Einschub spezifiziert, ob ein Datenfeld löschbar ist oder nicht, wobei die Bilddatenfelder durch Konvention als löschbar festgelegt sind, und die Nicht-Bild-Felder als nicht löschbar festgelegt sind.
  • 16 zeigt schematisch einen asynchronen-synchronen Umsetzer 1200 zwischen dem Kern 340 und einem Effektserver.
  • Der Umsetzer 1200 empfängt asynchrone Umgestaltungsbefehle vom Gestaltungsmanager in Form einer Schlange "tun", d.h., eine Liste von Gestaltungsaufgaben, die ausgeführt werden müssen. Wenn eine Aufgabe beendet ist, wird eine Information "beendet" vom Umsetzer 1200 zum Gestaltungsmanager zurückgeschickt.
  • Der Umsetzer 1200 empfängt die asynchronen Aufgabenanforderungen und gibt synchrone Anforderungen an den geeigneten Softwareeinschub ab. Dies bedeutet, dass die Schnittstelle 1200 eine Steuerung "thread" (ein Windows Ausdruck) zum Softwareeinschub leitet, der die Steuerung des Drahts hält, bis die Arbeit beendet ist. Lediglich dann bringt der Softwareeinschub den "thread" zur Schnittstelle, welche durch Ausgeben der Information "beendet" an den Kern antwortet.
  • Bei Initialisierung befragt der Kern jeden Einschub (oder bevorzugt die Metadaten-Verbindung mit diesem Einschub), um zu bestimmen, ob der Einschub synchrone oder asynchrone Kommunikation handhaben kann. Wenn ein Hardware-Einschub (beispielsweise eine periphere Karte zum Gestalten in einer bestimmten Weise) oder ein asynchroner Softwareeinschub, der möglich auf einer verschiedenen Maschine laufen kann, anstelle eines Softwareeinschubs installiert ist, wirkt dieser Einschub mit dem Kern (in Wirklichkeit mit dem Gestaltungsmanager, der die Gestaltungsaufgaben asynchron initialisiert) über die asynchrone Schnittstelle als Hardware-Beschleuniger viel besser für den Betrieb auf diese Weise zusammen. Somit kann in diesem Fall der Umsetzer 1200 umgangen werden.
  • Der Umsetzer kann als Teil des Kerns oder als Teil jedes relevanten Einschubs ausgebildet sein.
  • Folglich wird durch einen zähler-intuitiven Schritt zum Bereistellen eines Umsetzers 1200 zwischen zwei Softwarebereichen eine effiziente Hardware-Schnittstelle für eine spätere Aufrüstung für eine geeignete Hardware bereitgestellt.

Claims (5)

  1. Videoverarbeitungsvorrichtung, die aufweist: ein Kernprogrammobjekt; und mehrere Prozessor-Einschubprogrammobjekte (1330), die auf das Kernprogrammobjekt ansprechen, wobei die Prozessor-Einschubprogrammobjekte in einem gerichteten aperiodischen Schaubild angeordnet sind, wobei jedes betreibbar ist, ein Ausgangsergebnis in Bezug auf aufeinanderfolgende Bilder eines Videosignals von Eingangsdaten, die sich auf dieses und/oder andere Bilder beziehen, welche von einem vorhergehenden Prozesseinschub-Programmobjekt im gerichteten aperiodischen Schaubild empfangen werden, und als Antwort auf Betriebsparameter, die sich auf dieses Prozessoreinschub-Programmobjekt beziehen, zu erzeugen; dadurch gekennzeichnet, dass jeder Betriebsparameter durch ein Parametereinschubobjekt (1320) definiert ist, das in einem gerichteten aperiodischen Schaubild angeordnet ist, um einen Parameterwert dem Prozessoreinschub-Programmobjekt mitzuteilen.
  2. Vorrichtung nach Anspruch 1, bei der zumindest einer der Parametereinschubobjekte betreibbar ist, Parameterwerte bereitzustellen, welche zwischen Bildern des Videosignals variieren.
  3. Vorrichtung nach Anspruch 1, wobei zumindest einige der Parametereinschubobjekte Parameterwerte an einem Hilfssatz von Bildern des Videosignals definieren, und das Kernprogrammobjekt eine Einrichtung aufweist, die Parameterwerte für dazwischenliegende Bilder des Videosignals zu interpolieren.
  4. Vorrichtung nach einem der vorhergehenden Ansprüche, welche eine Einrichtung aufweist, um ein Ausgangssignal eines Prozessoreinschub-Programmobjekts mit einem anderen Prozessoreinschub-Programmobjekt anstelle von einem oder mehreren der Parametereinschubobjekte, welche mit diesen Prozessoreinschub-Programmobjekt verknüpft sind, zu verbinden.
  5. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Einschubprogrammobjekte COM-Objekte sind.
DE69930352T 1998-07-31 1999-07-26 Verfahren und Vorrichtung zur Animierung von Videospezialeffekten Expired - Lifetime DE69930352T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9816765 1998-07-31
GB9816765A GB2340360B (en) 1998-07-31 1998-07-31 Animation of video special effects

Publications (2)

Publication Number Publication Date
DE69930352D1 DE69930352D1 (de) 2006-05-11
DE69930352T2 true DE69930352T2 (de) 2006-12-14

Family

ID=10836540

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69930352T Expired - Lifetime DE69930352T2 (de) 1998-07-31 1999-07-26 Verfahren und Vorrichtung zur Animierung von Videospezialeffekten

Country Status (6)

Country Link
US (1) US6556205B1 (de)
EP (1) EP0977157B1 (de)
JP (1) JP3929649B2 (de)
KR (1) KR100652465B1 (de)
DE (1) DE69930352T2 (de)
GB (1) GB2340360B (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7436535B2 (en) * 2003-10-24 2008-10-14 Microsoft Corporation Real-time inking
US7417646B1 (en) * 2005-04-16 2008-08-26 Apple Inc. Background rendering in video compositing
US8024657B2 (en) * 2005-04-16 2011-09-20 Apple Inc. Visually encoding nodes representing stages in a multi-stage video compositing operation
US8026920B2 (en) 2005-09-13 2011-09-27 Microsoft Corporation Extensible visual effects on active content in user interfaces
CN101436306B (zh) * 2008-12-19 2013-03-27 北京中星微电子有限公司 一种实现图像特效的方法、装置和视频显示卡
GB2468859A (en) * 2009-03-24 2010-09-29 Nat Univ Ireland Cork Processing a condensed graph on multiple machines using proxies
US20110093092A1 (en) * 2009-10-19 2011-04-21 Bum Suk Choi Method and apparatus for creating and reproducing of motion effect
US9436685B2 (en) 2010-12-23 2016-09-06 Microsoft Technology Licensing, Llc Techniques for electronic aggregation of information
US9679404B2 (en) 2010-12-23 2017-06-13 Microsoft Technology Licensing, Llc Techniques for dynamic layout of presentation tiles on a grid
US20120166953A1 (en) * 2010-12-23 2012-06-28 Microsoft Corporation Techniques for electronic aggregation of information
US9715485B2 (en) 2011-03-28 2017-07-25 Microsoft Technology Licensing, Llc Techniques for electronic aggregation of information
CN108259496B (zh) * 2018-01-19 2021-06-04 北京市商汤科技开发有限公司 特效程序文件包的生成及特效生成方法与装置、电子设备
CN108388434B (zh) 2018-02-08 2021-03-02 北京市商汤科技开发有限公司 特效程序文件包的生成及特效生成方法与装置、电子设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2247597B (en) * 1990-08-31 1995-03-08 Canon Res Ct Europe Ltd Image processing
US5191645A (en) * 1991-02-28 1993-03-02 Sony Corporation Of America Digital signal processing system employing icon displays
GB2262365B (en) * 1991-12-10 1995-08-09 Sony Broadcast & Communication Apparatus and methods for designing,analyzing or simulating signal processing functions
US5448686A (en) 1992-01-02 1995-09-05 International Business Machines Corporation Multi-resolution graphic representation employing at least one simplified model for interactive visualization applications
CA2097232C (en) * 1993-05-28 1999-01-19 Phillip J. Beaudet Displaying partial graphs by expanding and collapsing nodes
US5485568A (en) * 1993-10-08 1996-01-16 Xerox Corporation Structured image (Sl) format for describing complex color raster images
US5561752A (en) 1994-12-22 1996-10-01 Apple Computer, Inc. Multipass graphics rendering method and apparatus with re-traverse flag
US5986667A (en) * 1994-12-22 1999-11-16 Apple Computer, Inc. Mechanism for rendering scenes using an object drawing subsystem
US5793965A (en) * 1995-03-22 1998-08-11 Sun Microsystems, Inc. Method and apparatus for determining the type of an object in a distributed object system
US5808625A (en) * 1995-08-04 1998-09-15 Silicon Graphics Incorporated System and method for using dependency graphs for the control of a graphics creation process
US6215495B1 (en) * 1997-05-30 2001-04-10 Silicon Graphics, Inc. Platform independent application program interface for interactive 3D scene management
US6295367B1 (en) * 1997-06-19 2001-09-25 Emtera Corporation System and method for tracking movement of objects in a scene using correspondence graphs
US6272650B1 (en) * 1998-02-03 2001-08-07 Amazing Media, Inc. System and method for disambiguating scene graph loads
US6166732A (en) * 1998-02-24 2000-12-26 Microsoft Corporation Distributed object oriented multi-user domain with multimedia presentations
US6266053B1 (en) * 1998-04-03 2001-07-24 Synapix, Inc. Time inheritance scene graph for representation of media content

Also Published As

Publication number Publication date
GB9816765D0 (en) 1998-09-30
EP0977157A3 (de) 2004-04-07
JP3929649B2 (ja) 2007-06-13
KR100652465B1 (ko) 2006-12-01
EP0977157A2 (de) 2000-02-02
GB2340360A (en) 2000-02-16
JP2000083195A (ja) 2000-03-21
EP0977157B1 (de) 2006-03-15
US6556205B1 (en) 2003-04-29
DE69930352D1 (de) 2006-05-11
GB2340360B (en) 2002-11-06
KR20000012136A (ko) 2000-02-25

Similar Documents

Publication Publication Date Title
DE69726167T2 (de) Verfahren zur verwaltung der darstellung von bildschirmanzeigen in einer multifenster-rechnungsumgebung
DE60319229T2 (de) Verfahren und system zur erweiterung der api eines dateisystems
DE69635337T2 (de) Erweiterbares und austauschbares system von netzwerkkomponenten
DE60109434T2 (de) Systeme und verfahren zur erzeugung von visuellen darstellungen von graphischen daten
DE69817158T2 (de) Benutzerschnittstellen-Mechanismus zur Manipulierung von Kontexten in Computerverwaltungsapplikationen
DE69434370T2 (de) Strukturiertes Bildformat zur Beschreibung eines Komplexfarbrasterbilds
DE69817634T2 (de) Vorrichtung und Verfahren zur Anzeige von Fenstern
DE69833808T2 (de) Interaktive Zeitspannenanzeige
DE10234137B4 (de) System und Verfahren, um Benutzern zu ermöglichen, graphische Bilder zu editieren
DE69732547T2 (de) Verfahren und Gerät zum Zusammenklappen und zur Ausdehnung auserwählter Bereiche von Arbeitsräumen auf einem von einem Rechner kontrollierten Anzeigesystem
DE69635403T2 (de) Grafikbibliothek auf geteilten Ebenen
DE69909886T2 (de) Elektronisches Notizbuch zum Festhalten von Entwurfsdaten
DE69930352T2 (de) Verfahren und Vorrichtung zur Animierung von Videospezialeffekten
DE10135445A1 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE19882116T5 (de) System zum Konfigurieren einer Prozesssteuerumgebung mit grafischen Elementen
DE19741358A1 (de) Verallgemeinertes Verfahren zum Trennen von charakteristischen Multimediamerkmalen von einem Multimediatitel unter Verwendung einer Multimedia-Softwaremaschine
DE19742804A1 (de) Computer-Verfahren und -Vorrichtung für interaktive Objektsteuerungen
DE3512505A1 (de) System zur bearbeitung von graphik-daten fuer einen cad-arbeitsplatz
DE69934174T2 (de) Verfahren und Vorrichtung zur digitalen Bildbearbeitung
DE202014010906U1 (de) Vorrichtung für zweidimensionale Dokumentennavigation
DE202016107451U1 (de) Systeme zur interaktiven Darstellung eines sichtbaren Teils einer Rendering-Oberfläche auf einem Benutzergerät
DE19637463A1 (de) Verfahren zur Anzeige von geometrischen Objektoberflächen
DE102019127726A1 (de) Für fernarbeitsplatz-anwendungen geeignetes streaming individueller anwendungsfenster
DE102013203526A1 (de) Verfahren und System für die Verwendung von Einstellungs-Handles zur Erleichterung der dynamischen Layout-Editierung
DE102013203831A1 (de) Verfahren und System für ein Master-Seiten-basiertes integriertes Editieren und eine dynamische Layout-Aktivierung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition